From f36120e45c9cb3fcb9601ab0c6725ddc0fb0fd03 Mon Sep 17 00:00:00 2001 From: erickfmm Date: Thu, 15 Oct 2015 01:20:54 -0300 Subject: [PATCH 1/2] Funciona registrarse, logout y typeahead especialista. Falta combos dependientes --- app/controllers/jsonEnfermedades.js | 12 + app/controllers/login.js | 16 +- app/controllers/remedio.js | 29 +- app/controllers/signup.js | 63 ++ app/models/{enfermedades.js => enfermedad.js} | 8 +- app/models/index.js | 2 +- app/models/remedios_comenta_usuarios.js | 84 -- app/models/usuarios.js | 10 +- app/views/centrosmedicos.html | 131 --- app/views/centrosmedicos_antiguo.ejs | 125 --- app/views/especialista_antiguo.ejs | 83 -- app/views/farmacia_antiguo.ejs | 131 --- app/views/header_antiguo.ejs | 26 - app/views/index.ejs | 2 +- app/views/index_.html | 148 --- app/views/index_antiguo.ejs | 311 ------ app/views/index_original.ejs | 6 - app/views/login.ejs | 2 + app/views/login_antiguo.ejs | 42 - app/views/remedio.ejs | 3 + app/views/remedio_antiguo.ejs | 111 --- app/views/signup.ejs | 45 + otros_leer/farmautomatico-resp-10-9-2015.sql | 217 ---- otros_leer/farmautomatico.sql | 298 +++++- otros_leer/farmautomaticov2 - copia.sql | 378 ------- otros_leer/farmautomaticov2.sql | 378 ------- otros_leer/inserts enfermedad.txt | 24 - package.json | 4 +- public/imgsusuarios/Alguno.jpg | Bin 0 -> 58857 bytes public/imgsusuarios/Hola.png | Bin 0 -> 23424 bytes public/imgsusuarios/Thumbs.db | Bin 0 -> 92160 bytes public/imgsusuarios/asdf.png | Bin 0 -> 24889 bytes public/imgsusuarios/usuario1.jpg | Bin 0 -> 39924 bytes public/js/angularapp.js | 16 +- public/js/foundation/foundation.abide.js | 408 -------- public/js/foundation/foundation.accordion.js | 88 -- public/js/foundation/foundation.alert.js | 43 - public/js/foundation/foundation.clearing.js | 586 ----------- public/js/foundation/foundation.dropdown.js | 463 --------- public/js/foundation/foundation.equalizer.js | 104 -- .../js/foundation/foundation.interchange.js | 359 ------- public/js/foundation/foundation.joyride.js | 932 ------------------ public/js/foundation/foundation.js | 725 -------------- public/js/foundation/foundation.magellan.js | 215 ---- public/js/foundation/foundation.offcanvas.js | 152 --- public/js/foundation/foundation.orbit.js | 476 --------- public/js/foundation/foundation.reveal.js | 498 ---------- public/js/foundation/foundation.slider.js | 281 ------ public/js/foundation/foundation.tab.js | 249 ----- public/js/foundation/foundation.tooltip.js | 339 ------- public/js/foundation/foundation.topbar.js | 458 --------- 51 files changed, 444 insertions(+), 8637 deletions(-) create mode 100644 app/controllers/signup.js rename app/models/{enfermedades.js => enfermedad.js} (68%) delete mode 100644 app/models/remedios_comenta_usuarios.js delete mode 100644 app/views/centrosmedicos.html delete mode 100644 app/views/centrosmedicos_antiguo.ejs delete mode 100644 app/views/especialista_antiguo.ejs delete mode 100644 app/views/farmacia_antiguo.ejs delete mode 100644 app/views/header_antiguo.ejs delete mode 100644 app/views/index_.html delete mode 100644 app/views/index_antiguo.ejs delete mode 100644 app/views/index_original.ejs delete mode 100644 app/views/login_antiguo.ejs delete mode 100644 app/views/remedio_antiguo.ejs create mode 100644 app/views/signup.ejs delete mode 100644 otros_leer/farmautomatico-resp-10-9-2015.sql delete mode 100644 otros_leer/farmautomaticov2 - copia.sql delete mode 100644 otros_leer/farmautomaticov2.sql delete mode 100644 otros_leer/inserts enfermedad.txt create mode 100644 public/imgsusuarios/Alguno.jpg create mode 100644 public/imgsusuarios/Hola.png create mode 100644 public/imgsusuarios/Thumbs.db create mode 100644 public/imgsusuarios/asdf.png create mode 100644 public/imgsusuarios/usuario1.jpg delete mode 100644 public/js/foundation/foundation.abide.js delete mode 100644 public/js/foundation/foundation.accordion.js delete mode 100644 public/js/foundation/foundation.alert.js delete mode 100644 public/js/foundation/foundation.clearing.js delete mode 100644 public/js/foundation/foundation.dropdown.js delete mode 100644 public/js/foundation/foundation.equalizer.js delete mode 100644 public/js/foundation/foundation.interchange.js delete mode 100644 public/js/foundation/foundation.joyride.js delete mode 100644 public/js/foundation/foundation.js delete mode 100644 public/js/foundation/foundation.magellan.js delete mode 100644 public/js/foundation/foundation.offcanvas.js delete mode 100644 public/js/foundation/foundation.orbit.js delete mode 100644 public/js/foundation/foundation.reveal.js delete mode 100644 public/js/foundation/foundation.slider.js delete mode 100644 public/js/foundation/foundation.tab.js delete mode 100644 public/js/foundation/foundation.tooltip.js delete mode 100644 public/js/foundation/foundation.topbar.js diff --git a/app/controllers/jsonEnfermedades.js b/app/controllers/jsonEnfermedades.js index d4c8cdf..05778f7 100644 --- a/app/controllers/jsonEnfermedades.js +++ b/app/controllers/jsonEnfermedades.js @@ -12,6 +12,18 @@ module.exports = function (app) { app.use('/', router); router.get('/jsonEnfermedades', function (req, res, next) { + + db.enfermedad.encontrarEnfermedades().then(function(nombreEnfermedad) { + console.log("enfermedades"); + console.log(nombreEnfermedad); + enfermedades=[]; + for(i in nombreEnfermedad){ + enfermedades.push(nombreEnfermedad[i].nombre_enfermedad); + } + console.log(enfermedades); + res.json(JSON.stringify(enfermedades)); + + }) /*db.remedios.encontrarNombresRemedios().then(function(nombreRemedios) { remedios = []; for(i in nombreRemedios) { diff --git a/app/controllers/login.js b/app/controllers/login.js index d98f82e..5b0cf5f 100644 --- a/app/controllers/login.js +++ b/app/controllers/login.js @@ -30,12 +30,14 @@ router.post('/login', function (req, res, next) { console.log("body del post login"); remedios = req.body.remedio; console.log(req.body); +switch (req.body.submit) { +case 'Ingresar': db.usuarios.encontrarUsuarios().then(function(users) { for(i in users) { if(req.body.nombreusuario==users[i].nombre && req.body.password==users[i].contrasena){ console.log(users[i].nombre); - req.session.name = users[i].idusuario; - req.session.username = req.body.nombreusuario; + req.session.id = users[i].idusuario; + req.session.name = req.body.nombreusuario; //req.session.remedio = remediosel; req.session.remedio = remedios; res.redirect('/remedio'); @@ -45,6 +47,16 @@ console.log(req.body); req.session.remedio = remedios; res.redirect('/remedio'); }); + break; +case 'Registrarse': + res.redirect("/signup"); + break; +case 'Salir': + req.session.id=undefined; + req.session.name=undefined; + res.redirect("/remedio"); + break; +} /*console.log(req.body); console.log(req.query); diff --git a/app/controllers/remedio.js b/app/controllers/remedio.js index f43cf8a..ba66629 100644 --- a/app/controllers/remedio.js +++ b/app/controllers/remedio.js @@ -9,10 +9,12 @@ module.exports = function(app) { router.get('/remedio', function(req, res, next) { //console.log(db.regiones); - if(req.session.remedio){ - remedioseleccionado = req.session.remedio; - }else { + console.log(req.session.name); + if(req.query.remedios){ remedioseleccionado = req.query.remedios; + req.session.remedio = req.query.remedios; + }else if(req.session.remedio){ + remedioseleccionado = req.session.remedio; }; console.log(req.query); db.remedios.encontrarRemedios(remedioseleccionado).then(function(resremedio) { @@ -52,7 +54,9 @@ module.exports = function(app) { usuarios.idusuario.push(resusuarios[i].idusuario); usuarios.nombre.push(resusuarios[i].nombre); usuarios.foto.push(resusuarios[i].foto); - + if(req.session.name==resusuarios[i].nombre){ + req.session.id=resusuarios[i].idusuario; + } } @@ -74,9 +78,9 @@ module.exports = function(app) { interacciones: resremedio[0].interacciones, otros: resremedio[0].otrosdatos, logina: login, - idusuario: req.session.name, + idusuario: req.session.id, comentarios: comentarios, - usuarioingresado: req.session.name, + usuarioingresado: req.session.id, fotos: fotos, nombres_usuariosenc: nombres_usuariosenc, idcomentarios: idcomentarios, @@ -85,7 +89,7 @@ module.exports = function(app) { usuarios_idusuario: usuarios.idusuario, usuarios_foto: usuarios.foto, comiduser: comentarios_idusuarios, - nombre_usuario_logueado: req.session.username + nombre_usuario_logueado: req.session.name }); }) }) @@ -106,16 +110,25 @@ module.exports = function(app) { console.log(req.query); console.log(req.body); remediosel = req.body.remedio; + console.log(req.session.name); switch (req.body.submit){ case 'Loguearse': res.redirect('/login'); break; case 'Comentar': - db.usuarios_comenta_remedio.ingresarUnComentario(remedioseleccionado, req.session.name, req.body.comentario); + db.usuarios_comenta_remedio.ingresarUnComentario(remedioseleccionado, req.session.id, req.body.comentario); console.log(req.body); pagina = '/remedio'; res.redirect(pagina); break; + case 'Registrarse': + res.redirect("/signup"); + break; + case 'Salir': + req.session.id=undefined; + req.session.name=undefined; + res.redirect("/remedio"); + break; } /* if (req.session.name==undefined) { diff --git a/app/controllers/signup.js b/app/controllers/signup.js new file mode 100644 index 0000000..9a582c9 --- /dev/null +++ b/app/controllers/signup.js @@ -0,0 +1,63 @@ +var express = require('express'), + router = express.Router(), + db = require('../models'), + path = require('path'), + fs = require('fs'), + multipart = require('connect-multiparty'); + + +module.exports = function (app) { + + //var session = require('express-session'); + var bodyParser = require('body-parser'); + //app.use(bodyParser({uploadDir:'/public/img'})); + app.use(bodyParser.json()); + app.use(bodyParser.urlencoded({ extended: false })); + + + app.use('/', router); + router.get('/signup', function(req, res, next){ + res.render('signup', { + title: 'Farmautomatico', + error: false + }) + }) + + + router.post('/signup', multipart(), function(req, res, next) { + console.log(req.files); + console.log(req.body); + db.usuarios.encontrarUsuarios().then(function(resusuarios) { + var bandera_usuario_encontrado = false; + for (i in resusuarios) { + if(req.body.nombreusuario == resusuarios[i].nombre) { + bandera_usuario_encontrado = true; + console.log("usuario encontrado"); + } + } + if(req.body.password == req.body.password2 && req.body.password && req.body.password2 && bandera_usuario_encontrado==false) { + + + var ruta_archivo= req.files.foto_usuario.path; + var nueva_ruta = "./public/imgsusuarios/" + req.body.nombreusuario+ path.extname(ruta_archivo ).toLowerCase(); + fs.createReadStream(ruta_archivo).pipe(fs.createWriteStream(nueva_ruta)); + var nombre_foto = req.body.nombreusuario+ path.extname(ruta_archivo ).toLowerCase(); + + db.usuarios.insertarUsuario(req.body.nombreusuario, nombre_foto, req.body.password, req.body.email); + var nombre_usuario = req.body.nombreusuario; + req.session.name=nombre_usuario; + //req.session.remedio = "Omeprazol"; + res.redirect("/remedio"); + + } + else { + res.render('signup', { + title: 'Farmautomatico', + error: true + }) + } + }) + + + }); + } diff --git a/app/models/enfermedades.js b/app/models/enfermedad.js similarity index 68% rename from app/models/enfermedades.js rename to app/models/enfermedad.js index a9abd5c..01f7b26 100644 --- a/app/models/enfermedades.js +++ b/app/models/enfermedad.js @@ -1,15 +1,15 @@ module.exports = function (sequelize, DataTypes) { var enfermedad = sequelize.define('enfermedad', { - + nombre_enfermedad: DataTypes.STRING }, { classMethods: { - encontrarEnfermedades : function(){ return sequelize - .query('select nombre_enfermedad from enfermedad', { raw: true }) + encontrarEnfermedades : function(v){ return sequelize + .query('select nombre_enfermedad from enfermedad', { type: sequelize.QueryTypes.SELECT }) // .then(function(filas){console.log(filas); return filas;}); } } - }); + }) return enfermedad }; diff --git a/app/models/index.js b/app/models/index.js index d4b88b7..6ab7ad8 100644 --- a/app/models/index.js +++ b/app/models/index.js @@ -5,7 +5,7 @@ var fs = require('fs'), db = {}; //db, user, pw -var sequelize = new Sequelize('farmautomaticov2', 'farmautomatico', 'farmautomatico', { +var sequelize = new Sequelize('farmautomatico', 'farmautomatico', 'farmautomatico', { host: 'localhost', dialect: 'mysql', autoIncrement: true, diff --git a/app/models/remedios_comenta_usuarios.js b/app/models/remedios_comenta_usuarios.js deleted file mode 100644 index 8fdfe02..0000000 --- a/app/models/remedios_comenta_usuarios.js +++ /dev/null @@ -1,84 +0,0 @@ -module.exports = function (sequelize, DataTypes) { - - var remedios_comenta_usuarios = sequelize.define('remedios_comenta_usuarios', { - idcomentarios: {type: DataTypes.INTEGER, primaryKey: true, updatedAt: true, autoIncrement: true}, - remedios_nombre: DataTypes.STRING, - usuario_idusuario: DataTypes.INTEGER, - comentario: DataTypes.STRING - }, { - classMethods: { - encontrarComentarios : function(v){ return sequelize - .query('select idcomentarios, remedios_nombre, idusuario, comentario, nombre as nombre_usuario, foto as foto_usuario from remedios_comenta_usuarios join usuarios on usuarios.idusuario=remedios_comenta_usuarios.usuario_idusuario where remedios_nombre=?', - { replacements: [v], type: sequelize.QueryTypes.SELECT }) - }, - ingresarUnComentario: function(remedio, userid, comment) { - return sequelize - .query('insert into remedios_comenta_usuarios (remedios_nombre, usuario_idusuario, comentario) values (?, ?, ?);', { replacements: [remedio, userid, comment], raw: true , type: sequelize.QueryTypes.INSERT}) - }, - encontrarUnComentario: function( nombreRemedio, idComentario) { return sequelize - .query('select idcomentarios, remedios_nombre, idusuario, comentario, nombre as nombre_usuario, foto as foto_usuario from remedios_comenta_usuarios join usuarios on usuarios.idusuario=remedios_comenta_usuarios.usuario_idusuario where remedios_nombre=? && idcomentarios=?', - {replacements: [nombreRemedio, idComentario], type: sequelize.QueryTypes.SELECT}) - }, - ModificarUnComentario: function (idComentario, comentarioNuevo) { return sequelize - .query ('update remedios_comenta_usuarios set comentario=? where idcomentarios=?;', - {replacements: [comentarioNuevo, idComentario], raw: true}) - }, - EliminarUnComentario: function (idComentario) { return sequelize - .query('delete from remedios_comenta_usuarios where idcomentarios=?', - {replacements: [idComentario], raw: true}) - - } - - /* - remedios_comenta_usuarios - .create({remedios_nombre: remedio, usuario_idusuario: userid, comentario: comment}) - .then(function() { - remedios_comenta_usuarios - .findOrCreate({where: {remedios_nombre: 'remedio', usuario_idusuario: userid}, defaults: {comentario: 'asdf'}}) - console.log(user.get({ - plain: true - })) - console.log(created) - - */ - /* - { - username: 'fnord', - job: 'omnomnom', - id: 2, - createdAt: Fri Mar 22 2013 21: 28: 34 GMT + 0100(CET), - updatedAt: Fri Mar 22 2013 21: 28: 34 GMT + 0100(CET) - } - created: false - - })*/ - - /* - { - username: 'sdepold', - job: 'Technical Lead JavaScript', - id: 1, - createdAt: Fri Mar 22 2013 21: 28: 34 GMT + 0100(CET), - updatedAt: Fri Mar 22 2013 21: 28: 34 GMT + 0100(CET) - } - created: true - */ - /* - .build({ remedios_nombre: remedio, usuario_idusuario: userid, comentario: comment }) - .save() - .then(function(anotherTask) { - console.log(anotherTask); - // you can now access the currently saved task with the variable anotherTask... nice! - }).catch(function(error) { - console.log("EEEEEEEEERRRRRRRRRRRRROOOOOOOOOOOOOORRRRRRRRRRRR"); - console.log(error); - // Ooops, do some error-handling - })*/ - //('SELECT * FROM centrosmedicos where \'ciudad='+ciudad+'\'', { raw: true }) - // .then(function(filas){console.log(filas); return filas;}); - - } - }); - return remedios_comenta_usuarios - -}; \ No newline at end of file diff --git a/app/models/usuarios.js b/app/models/usuarios.js index a4db2d8..a8223cb 100644 --- a/app/models/usuarios.js +++ b/app/models/usuarios.js @@ -10,12 +10,16 @@ module.exports = function (sequelize, DataTypes) { encontrarUsuarios : function(){ return sequelize .query('select * from usuarios', { type: sequelize.QueryTypes.SELECT }) + }, + insertarUsuario : function(nombre, foto, contrasena, email){ return sequelize + .query('insert into usuarios(nombre, foto, contrasena, email) values(?, ?, ?, ?)', + { replacements: [nombre, foto, contrasena, email], raw: true , type: sequelize.QueryTypes.INSERT }) } //('SELECT * FROM centrosmedicos where \'ciudad='+ciudad+'\'', { raw: true }) - // .then(function(filas){console.log(filas); return filas;}); - + // .then(function(filas){console.log(filas); return filas;}); + } }); return usuarios -}; \ No newline at end of file +}; diff --git a/app/views/centrosmedicos.html b/app/views/centrosmedicos.html deleted file mode 100644 index a9eb4d1..0000000 --- a/app/views/centrosmedicos.html +++ /dev/null @@ -1,131 +0,0 @@ -<% include header %> - - -
-

Centros Médicos

- -
-
-
-
- -
-
- - - - -
-
- -
-
-
-
- -
-
-
    -
    - <% for(var i in cmedicos) {%> -
  1. <%-cmedicos[i][0] %>
  2. -
    Direccion: <%-cmedicos[i][1] %>
    - <% for(var tel in cmedicos[i][2]) {%> -
    Teléfono n° <%-tel %>: <%-cmedicos[i][2][tel] %>
    - <% } %> - <% } %> -
    -
-
-
-
- - -
-
- - <% include PreguntasFrecuentes %> - - - - - diff --git a/app/views/centrosmedicos_antiguo.ejs b/app/views/centrosmedicos_antiguo.ejs deleted file mode 100644 index e587131..0000000 --- a/app/views/centrosmedicos_antiguo.ejs +++ /dev/null @@ -1,125 +0,0 @@ -<% include header_antiguo %> - -
-
-
-
-

Centros Médicos

- - -
-
- - -
-
-
-
- -
-
- - -
-
- -
-
-
-
- -
-
-
    -
    - <% for(var i in cmedicos) {%> -
  1. <%-cmedicos[i][0] %>
  2. -
    Direccion: <%-cmedicos[i][1] %>
    - <% for(var tel in cmedicos[i][2]) {%> -
    Teléfono n° <%-tel %>: <%-cmedicos[i][2][tel] %>
    - <% } %> - <% } %> -
    -
-
-
- - - -
-
- - <% include PreguntasFrecuentes %> - - - - - diff --git a/app/views/especialista_antiguo.ejs b/app/views/especialista_antiguo.ejs deleted file mode 100644 index c656e77..0000000 --- a/app/views/especialista_antiguo.ejs +++ /dev/null @@ -1,83 +0,0 @@ -<% include header_antiguo %> - -
-
-
-
-

Especialista: -

- - -
- - -
-
-
-
-
-
- -
-
-
    -
    -
  1. Javier Quintana
  2. -
    Odontólogo
    -
    Teléfono: 12345678
    -
    Dirección: La casa del lado 9999
    -
  3. Rodrigo Peñaloza
  4. -
    Kinesiólogo
    -
    Teléfono: 87654321
    -
    Dirección: A la vuelta de la esquina 6666
    -
  5. José de la fuente
  6. -
    Odontólogo
    -
    Teléfono: 1829394
    -
    Dirección: Calle falsa #1234
    -
  7. Pedrito por su casa
  8. -
    Cirujano
    -
    Teléfono: 666999666
    -
    Dirección: Otra dirección 4321
    -
    -
-
-
-
- -
-
- -
- - - - - diff --git a/app/views/farmacia_antiguo.ejs b/app/views/farmacia_antiguo.ejs deleted file mode 100644 index f56a24a..0000000 --- a/app/views/farmacia_antiguo.ejs +++ /dev/null @@ -1,131 +0,0 @@ - -<% include header_antiguo %> - -
-
-
-
-

Farmacias

- - -
- - -
-
-
-
- -
-
- ? - - - ? -
-
-
-
-
-
- ? -
- -
- - -
- -
-
-
- -
- -
-
- - -
-
- -
- - - - - diff --git a/app/views/header_antiguo.ejs b/app/views/header_antiguo.ejs deleted file mode 100644 index b72ce1d..0000000 --- a/app/views/header_antiguo.ejs +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - <%-title %> - - - - - - - - - - - - - - - -
-
-

<%-title %>

-
-
diff --git a/app/views/index.ejs b/app/views/index.ejs index 5cefc5e..e2f1ab2 100644 --- a/app/views/index.ejs +++ b/app/views/index.ejs @@ -61,7 +61,7 @@
diff --git a/app/views/index_.html b/app/views/index_.html deleted file mode 100644 index 4599e2f..0000000 --- a/app/views/index_.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - - - - - - - - -
-
-
-
- - -
-
-
-
-
-
- - -
- -
-
- -
-
-
-
-
- -
-
-
-
- - -
-
- -
-
- - -
-
- -
-
-
-
- -
-
-
- -
-
- - -
-
- - -
-
- - -
-
- - -
- - -
-
-
-
- -
-
-
- -
-
- -
- -
-
-
-
-
-
- - - - - - - - - - - - - diff --git a/app/views/index_antiguo.ejs b/app/views/index_antiguo.ejs deleted file mode 100644 index 5c95565..0000000 --- a/app/views/index_antiguo.ejs +++ /dev/null @@ -1,311 +0,0 @@ -<% include header %> - -
-
-
-
-
- - -
- -
-
-
-
-
- ¿Desea saber el especialista según su enfermedad? -
- -
-
- -
-
- -
-
- - -
-
- -
- - -
- - - -
-
- -
-
-
- ¿Desea saber información sobre centro médico o farmacia? -
- - -
-
- - - -
-
- - -
-
- - -
-
-
¿Desea saber información sobre algún remedio? -
- -
-
> -
- -
-
- - - - -
-
- - -
-
-
- -
-
-
-
- -
-
-
- - - - - - - - diff --git a/app/views/index_original.ejs b/app/views/index_original.ejs deleted file mode 100644 index 306db20..0000000 --- a/app/views/index_original.ejs +++ /dev/null @@ -1,6 +0,0 @@ -<% include header %> - -

<%-title %>

-

Welcome to <%-title %>

- -<% include footer %> \ No newline at end of file diff --git a/app/views/login.ejs b/app/views/login.ejs index 8d1a73f..5e0bd2c 100644 --- a/app/views/login.ejs +++ b/app/views/login.ejs @@ -40,6 +40,8 @@
+ +
diff --git a/app/views/login_antiguo.ejs b/app/views/login_antiguo.ejs deleted file mode 100644 index 88b4366..0000000 --- a/app/views/login_antiguo.ejs +++ /dev/null @@ -1,42 +0,0 @@ -<% include header %> - -
-
-
-
-
- - - -
- -
-
- - -
- - - - diff --git a/app/views/remedio.ejs b/app/views/remedio.ejs index fa35a72..3129cb8 100644 --- a/app/views/remedio.ejs +++ b/app/views/remedio.ejs @@ -68,6 +68,7 @@ > <% if(logina == false) {%> Usted no puede comentar, por favor loguearse + @@ -82,7 +83,9 @@
+ +
diff --git a/app/views/remedio_antiguo.ejs b/app/views/remedio_antiguo.ejs deleted file mode 100644 index c562435..0000000 --- a/app/views/remedio_antiguo.ejs +++ /dev/null @@ -1,111 +0,0 @@ -<% include header %> - -
-
-
-
-

<%- nombre %>:

- - -
-
-
-
-
Indicaciones:
-
<%- indicaciones %>
-
Contraindicaciones:
-
<%- contraindicaciones %>
-
Conservación:
-
<%- conservacion %>
-
Interacciones:
-
<%- interacciones %>
-
Otros:
-
<%- otros %>
-
-
-
- -
-
-
-
- - -

Comentarios: ?

-
-
- -
-
- -
-
- -
-
- - -
-
-
- <%-usuarioingresado%> -
-
- - <% for(var i=0; i -
-
- >Ir al comentario - <%=nombres_usuariosenc[i]%> - class="right inline"> -
-
- <%=comentarios[i] %> -
-
-
- <% } %> -
- - -
-
- - - - - -
-
- -
- - - - diff --git a/app/views/signup.ejs b/app/views/signup.ejs new file mode 100644 index 0000000..1d30ed7 --- /dev/null +++ b/app/views/signup.ejs @@ -0,0 +1,45 @@ +<% include header %> + + +<%if(error == true) {%> + + <%}%> +
+
+ + +
+
+ + + + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + + +<% include PreguntasFrecuentes %> diff --git a/otros_leer/farmautomatico-resp-10-9-2015.sql b/otros_leer/farmautomatico-resp-10-9-2015.sql deleted file mode 100644 index d159278..0000000 --- a/otros_leer/farmautomatico-resp-10-9-2015.sql +++ /dev/null @@ -1,217 +0,0 @@ --- MySQL dump 10.13 Distrib 5.6.25, for Win64 (x86_64) --- --- Host: localhost Database: farmautomatico --- ------------------------------------------------------ --- Server version 5.6.25-log - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `centrosmedicos` --- - -DROP TABLE IF EXISTS `centrosmedicos`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `centrosmedicos` ( - `idCentrosMedicos` int(11) NOT NULL AUTO_INCREMENT, - `nombre` varchar(45) DEFAULT NULL, - `comunas_idcomunas` int(11) NOT NULL, - `Direccion` varchar(100) DEFAULT NULL, - `esPublico` tinyint(1) DEFAULT NULL, - PRIMARY KEY (`idCentrosMedicos`), - KEY `fk_CentrosMedicos_comunas1_idx` (`comunas_idcomunas`), - CONSTRAINT `fk_CentrosMedicos_comunas1` FOREIGN KEY (`comunas_idcomunas`) REFERENCES `comunas` (`idcomunas`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `centrosmedicos` --- - -LOCK TABLES `centrosmedicos` WRITE; -/*!40000 ALTER TABLE `centrosmedicos` DISABLE KEYS */; -INSERT INTO `centrosmedicos` VALUES (1,'ACHS ACONCAGUA - SEDE CABILDO',48,'Humeres 371',0),(2,'ACHS ACONCAGUA - SEDE LA LIGUA',59,'Portales 746',0),(3,'ACHS ACONCAGUA - SEDE LOS ANDES',66,'Av. Argentina 50',0),(4,'ACHS ACONCAGUA - SEDE SAN FELIPE',60,'San Martin 120',0),(5,'ACHS SAN ANTONIO - SEDE SAN ANTONIO',42,'Barros Luco 1575',0),(6,'ACHS VALPARAISO - SEDE VALPARAISO',34,'Edwards 150',0),(7,'ACHS VIÑA DEL MAR - SEDE LA CALERA',50,'Avenida Latorre 98',0),(8,'ACHS VIÑA DEL MAR - SEDE VIÑA DEL MAR',37,'7 Norte 550',0),(9,'ASOMEL ASOCIACION DE MEDICOS LTDA',34,'Colon 2020',0),(10,'ASOMEL DE REÑACA',37,'Angamos 185 Of. 21',0); -/*!40000 ALTER TABLE `centrosmedicos` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `comunas` --- - -DROP TABLE IF EXISTS `comunas`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `comunas` ( - `idcomunas` int(11) NOT NULL, - `nombre` varchar(255) DEFAULT NULL, - `regiones_idregiones` int(11) NOT NULL, - PRIMARY KEY (`idcomunas`), - KEY `fk_comunas_regiones1_idx` (`regiones_idregiones`), - CONSTRAINT `fk_comunas_regiones1` FOREIGN KEY (`regiones_idregiones`) REFERENCES `regiones` (`idregiones`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `comunas` --- - -LOCK TABLES `comunas` WRITE; -/*!40000 ALTER TABLE `comunas` DISABLE KEYS */; -INSERT INTO `comunas` VALUES (1,'ARICA',15),(2,'IQUIQUE',1),(3,'HUARA',1),(4,'PICA',1),(5,'POZO ALMONTE',1),(6,'TOCOPILLA',2),(7,'ANTOFAGASTA',2),(8,'MEJILLONES',2),(9,'TALTAL',2),(10,'CALAMA',2),(11,'CHAÑARAL',3),(12,'DIEGO DE ALMAGRO',3),(13,'COPIAPO',3),(14,'CALDERA',3),(15,'TIERRA AMARILLA',3),(16,'VALLENAR',3),(17,'FREIRINA',3),(18,'HUASCO',3),(19,'LA SERENA',4),(20,'LA HIGUERA',4),(21,'COQUIMBO',4),(22,'ANDACOLLO',4),(23,'VICUÑA',4),(24,'PAIHUANO',4),(25,'OVALLE',4),(26,'MONTE PATRIA',4),(27,'PUNITAQUI',4),(28,'RIO HURTADO',4),(29,'COMBARBALA',4),(30,'ILLAPEL',4),(31,'CANELA',4),(32,'SALAMANCA',4),(33,'LOS VILOS',4),(34,'VALPARAISO',5),(35,'QUINTERO',5),(36,'PUCHUNCAVI',5),(37,'VIÑA DEL MAR',5),(38,'QUILPUE',5),(39,'VILLA ALEMANA',5),(40,'CASABLANCA',5),(41,'ISLA DE PASCUA',5),(42,'SAN ANTONIO',5),(43,'SANTO DOMINGO',5),(44,'ALGARROBO',5),(45,'EL QUISCO',5),(46,'CARTAGENA',5),(47,'EL TABO',5),(48,'QUILLOTA',5),(49,'LA CRUZ',5),(50,'LA CALERA',5),(51,'HIJUELAS',5),(52,'NOGALES',5),(53,'LIMACHE',5),(54,'OLMUE',5),(55,'PETORCA',5),(56,'CABILDO',5),(57,'PAPUDO',5),(58,'ZAPALLAR',5),(59,'LA LIGUA',5),(60,'SAN FELIPE',5),(61,'PUTAENDO',5),(62,'PANQUEHUE',5),(63,'CATEMU',5),(64,'SANTA MARIA',5),(65,'LLAY LLAY',5),(66,'LOS ANDES',5),(67,'CALLE LARGA',5),(68,'RINCONADA',5),(69,'SAN ESTEBAN',5),(70,'SANTIAGO CENTRO',13),(71,'LAS CONDES',13),(72,'PROVIDENCIA',13),(73,'SANTIAGO OESTE',13),(75,'CONCHALI',13),(76,'COLINA',13),(77,'RENCA',13),(78,'LAMPA',13),(79,'QUILICURA',13),(80,'TIL-TIL',13),(81,'QUINTA NORMAL',13),(82,'PUDAHUEL',13),(83,'CURACAVI',13),(84,'SANTIAGO SUR',13),(85,'PEÑAFLOR',13),(86,'TALAGANTE',13),(87,'ISLA DE MAIPO',13),(88,'MELIPILLA',13),(89,'EL MONTE',13),(90,'MARIA PINTO',13),(91,'ÑUÑOA',13),(92,'LA REINA',13),(93,'LA FLORIDA',13),(94,'MAIPU',13),(95,'SAN MIGUEL',13),(96,'LA CISTERNA',13),(97,'LA GRANJA',13),(98,'SAN BERNARDO',13),(99,'CALERA DE TANGO',13),(100,'PUENTE ALTO',13),(101,'PIRQUE',13),(102,'SAN JOSE DE MAIPO',13),(103,'BUIN',13),(104,'PAINE',13),(105,'RANCAGUA',6),(106,'MACHALI',6),(107,'GRANEROS',6),(108,'SAN PEDRO',13),(109,'ALHUE',13),(110,'CODEGUA',6),(111,'SAN FRANCISCO DE MOSTAZAL',6),(112,'DOÑIHUE',6),(113,'COLTAUCO',6),(114,'COINCO',6),(115,'PEUMO',6),(116,'LAS CABRAS',6),(117,'SAN VICENTE',6),(118,'PICHIDEGUA',6),(119,'REQUINOA',6),(120,'OLIVAR',6),(121,'RENGO',6),(122,'MALLOA',6),(123,'QUINTA DE TILCOCO',6),(124,'SAN FERNANDO',6),(125,'CHIMBARONGO',6),(126,'NANCAGUA',6),(127,'PLACILLA',6),(128,'SANTA CRUZ',6),(129,'LOLOL',6),(130,'PALMILLA',6),(131,'PERALILLO',6),(132,'CHEPICA',6),(133,'PAREDONES',6),(134,'MARCHIGUE',6),(135,'PUMANQUE',6),(136,'LITUECHE',6),(137,'PICHILEMU',6),(138,'NAVIDAD',6),(139,'LA ESTRELLA',6),(140,'CURICO',7),(141,'ROMERAL',7),(142,'TENO',7),(143,'RAUCO',7),(144,'HUALA?âÔÇÿE',7),(145,'LICANTEN',7),(146,'VICHUQUEN',7),(147,'MOLINA',7),(148,'SAGRADA FAMILIA',7),(149,'RIO CLARO',7),(150,'TALCA',7),(151,'SAN CLEMENTE',7),(152,'PELARCO',7),(153,'PENCAHUE',7),(154,'MAULE',7),(155,'CUREPTO',7),(156,'SAN JAVIER',7),(157,'CONSTITUCION',7),(158,'EMPEDRADO',7),(159,'LINARES',7),(160,'YERBAS BUENAS',7),(161,'COLBUN',7),(162,'LONGAVI',7),(163,'VILLA ALEGRE',7),(164,'PARRAL',7),(165,'RETIRO',7),(166,'CAUQUENES',7),(167,'CHANCO',7),(168,'CHILLAN',8),(169,'PINTO',8),(170,'COIHUECO',8),(171,'PORTEZUELO',8),(172,'QUIRIHUE',8),(173,'TREHUACO',8),(174,'NINHUE',8),(175,'COBQUECURA',8),(176,'SAN CARLOS',8),(177,'SAN GREGORIO DE ÑIQUEN',8),(178,'SAN FABIAN',8),(179,'SAN NICOLAS',8),(180,'BULNES',8),(181,'SAN IGNACIO',8),(182,'QUILLON',8),(183,'YUNGAY',8),(184,'PEMUCO',8),(185,'EL CARMEN',8),(186,'COELEMU',8),(187,'RANQUIL',8),(188,'CONCEPCION',8),(189,'TALCAHUANO',8),(190,'TOME',8),(191,'PENCO',8),(192,'HUALQUI',8),(193,'FLORIDA',8),(194,'CORONEL',8),(195,'LOTA',8),(196,'SANTA JUANA',8),(197,'CURANILAHUE',8),(198,'ARAUCO',8),(199,'LEBU',8),(200,'LOS ALAMOS',8),(201,'CAÑETE',8),(202,'CONTULMO',8),(203,'TIRUA',8),(204,'LOS ANGELES',8),(205,'SANTA BARBARA',8),(206,'QUILLECO',8),(207,'YUMBEL',8),(208,'CABRERO',8),(209,'TUCAPEL',8),(210,'LAJA',8),(211,'SAN ROSENDO',8),(212,'NACIMIENTO',8),(213,'NEGRETE',8),(214,'MULCHEN',8),(215,'QUILACO',8),(216,'ANGOL',9),(217,'PUREN',9),(218,'LOS SAUCES',9),(219,'RENAICO',9),(220,'COLLIPULLI',9),(221,'ERCILLA',9),(222,'TRAIGUEN',9),(223,'LUMACO',9),(224,'VICTORIA',9),(225,'CURACAUTIN',9),(226,'LONQUIMAY',9),(227,'TEMUCO',9),(228,'VILCUN',9),(229,'FREIRE',9),(230,'CUNCO',9),(231,'LAUTARO',9),(232,'GALVARINO',9),(233,'PERQUENCO',9),(234,'NUEVA IMPERIAL',9),(235,'CARAHUE',9),(236,'PUERTO SAAVEDRA',9),(237,'PITRUFQUEN',9),(238,'GORBEA',9),(239,'TOLTEN',9),(240,'LONCOCHE',9),(241,'VILLARRICA',9),(242,'PUCON',9),(243,'VALDIVIA',14),(244,'CORRAL',14),(245,'MARIQUINA',14),(246,'MAFIL',14),(247,'LOS LAGOS',14),(248,'FUTRONO',14),(249,'LANCO',14),(250,'PANGUIPULLI',14),(251,'LA UNION',14),(252,'PAILLACO',14),(253,'RIO BUENO',14),(254,'LAGO RANCO',14),(255,'OSORNO',10),(256,'PUYEHUE',10),(257,'SAN PABLO',10),(258,'PUERTO OCTAY',10),(259,'RIO NEGRO',10),(260,'PURRANQUE',10),(261,'PUERTO MONTT',10),(262,'COCHAMO',10),(263,'MAULLIN',10),(264,'LOS MUERMOS',10),(265,'CALBUCO',10),(266,'PUERTO VARAS',10),(267,'LLANQUIHUE',10),(268,'FRESIA',10),(269,'FRUTILLAR',10),(270,'CASTRO',10),(271,'CHONCHI',10),(272,'QUEILEN',10),(273,'QUELLON',10),(274,'PUQUELDON',10),(275,'QUINCHAO',10),(276,'CURACO DE VELEZ',10),(277,'ANCUD',10),(278,'QUEMCHI',10),(279,'DALCAHUE',10),(280,'CHAITEN',10),(281,'FUTALEUFU',10),(282,'PALENA',10),(284,'COYHAIQUE',11),(285,'AYSEN',11),(286,'CISNES',11),(287,'CHILE CHICO',11),(288,'RIO IBAÑEZ',11),(289,'COCHRANE',11),(290,'PUNTA ARENAS',12),(291,'PUERTO NATALES',12),(292,'PORVENIR',12),(293,'GENERAL LAGOS',15),(294,'PUTRE',15),(295,'CAMARONES',15),(296,'CAMINA',1),(297,'COLCHANE',1),(298,'MARIA ELENA',2),(299,'SIERRA GORDA',2),(300,'OLLAGÜE',2),(301,'SAN PEDRO DE ATACAMA',2),(302,'ALTO DEL CARMEN',3),(303,'ANTUCO',8),(304,'MELIPEUCO',9),(305,'CURARREHUE',9),(306,'TEODORO SCHMIDT',9),(307,'SAN JUAN DE LA COSTA',10),(308,'HUALAIHUE',10),(309,'GUAITECAS',11),(310,'O\'HIGGINS',11),(311,'TORTEL',11),(312,'LAGO VERDE',11),(313,'TORRES DEL PAINE',12),(314,'RIO VERDE',12),(315,'SAN GREGORIO',12),(316,'LAGUNA BLANCA',12),(317,'PRIMAVERA',12),(318,'TIMAUKEL',12),(319,'NAVARINO',12),(320,'PELLUHUE',7),(321,'JUAN FERNANDEZ',5),(322,'PEÑALOLEN',13),(323,'MACUL',13),(324,'CERRO NAVIA',13),(325,'LO PRADO',13),(326,'SAN RAMON',13),(327,'LA PINTANA',13),(328,'ESTACION CENTRAL',13),(329,'RECOLETA',13),(330,'INDEPENDENCIA',13),(331,'VITACURA',13),(332,'LO BARNECHEA',13),(333,'CERRILLOS',13),(334,'HUECHURABA',13),(335,'SAN JOAQUIN',13),(336,'PEDRO AGUIRRE CERDA',13),(337,'LO ESPEJO',13),(338,'EL BOSQUE',13),(339,'PADRE HURTADO',13),(340,'CONCON',5),(341,'SAN RAFAEL',7),(342,'CHILLAN VIEJO',8),(343,'SAN PEDRO DE LA PAZ',8),(344,'CHIGUAYANTE',8),(345,'PADRE LAS CASAS',9),(346,'ALTO HOSPICIO',1); -/*!40000 ALTER TABLE `comunas` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `regiones` --- - -DROP TABLE IF EXISTS `regiones`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `regiones` ( - `idregiones` int(11) NOT NULL, - `nombre` varchar(50) DEFAULT NULL, - PRIMARY KEY (`idregiones`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `regiones` --- - -LOCK TABLES `regiones` WRITE; -/*!40000 ALTER TABLE `regiones` DISABLE KEYS */; -INSERT INTO `regiones` VALUES (1,'Tarapacá'),(2,'Antofagasta'),(3,'Atacama'),(4,'Coquimbo'),(5,'Valparaíso'),(6,'Región del Libertador Gral. Bernardo O\'Higgins'),(7,'Región del Maule'),(8,'Región del Biobío'),(9,'Región de la Araucanía'),(10,'Región de Los Lagos'),(11,'Región Aisén del Gral. Carlos Ibáñez del Campo'),(12,'Región de Magallanes y de la Antártica Chilena'),(13,'Región Metropolitana de Santiago'),(14,'Región de Los Ríos'),(15,'Arica y Parinacota'); -/*!40000 ALTER TABLE `regiones` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `remedios` --- - -DROP TABLE IF EXISTS `remedios`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `remedios` ( - `nombre` varchar(100) NOT NULL, - `indicaciones` varchar(1000) DEFAULT NULL, - `contraindicaciones` varchar(1000) DEFAULT NULL, - `conservacion` varchar(1000) DEFAULT NULL, - `interacciones` varchar(1000) DEFAULT NULL, - `otrosdatos` varchar(2000) DEFAULT NULL, - PRIMARY KEY (`nombre`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `remedios` --- - -LOCK TABLES `remedios` WRITE; -/*!40000 ALTER TABLE `remedios` DISABLE KEYS */; -INSERT INTO `remedios` VALUES ('Aspirina','para el dolor de cabeza','no tomar con alcohol','En lugar fresco y seco','con el alcohol','muy usado'),('Loratadina','para la alergia','no se','En lugar Fresco y seco','ninguna',NULL),('Omeprazol','Para el reflujo','No comer por un rato','En lugar Fresco y seco','Con la comida','ninguno'); -/*!40000 ALTER TABLE `remedios` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `remedios_comenta_usuarios` --- - -DROP TABLE IF EXISTS `remedios_comenta_usuarios`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `remedios_comenta_usuarios` ( - `idcomentarios` int(11) NOT NULL AUTO_INCREMENT, - `remedios_nombre` varchar(100) NOT NULL, - `usuario_idusuario` int(11) NOT NULL, - `comentario` varchar(500) DEFAULT NULL, - PRIMARY KEY (`idcomentarios`,`remedios_nombre`,`usuario_idusuario`), - KEY `fk_remedios_has_usuario_usuario1_idx` (`usuario_idusuario`), - KEY `fk_remedios_comenta_usuarios_remedios1_idx` (`remedios_nombre`), - CONSTRAINT `fk_remedios_comenta_usuarios_remedios1` FOREIGN KEY (`remedios_nombre`) REFERENCES `remedios` (`nombre`) ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT `fk_remedios_has_usuario_usuario1` FOREIGN KEY (`usuario_idusuario`) REFERENCES `usuarios` (`idusuario`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `remedios_comenta_usuarios` --- - -LOCK TABLES `remedios_comenta_usuarios` WRITE; -/*!40000 ALTER TABLE `remedios_comenta_usuarios` DISABLE KEYS */; -INSERT INTO `remedios_comenta_usuarios` VALUES (1,'Loratadina',1,'Este es mi primer comentario en loratadina'),(3,'Omeprazol',2,'Este es mi primer comentario aburrido'),(4,'Loratadina',2,'Modificado desde consola'),(5,'Omeprazol',1,'Ingrese su comentario lml'),(8,'Loratadina',2,'Blablabla ingresado desde la página'),(10,'Omeprazol',2,'Este es un ultimo comentario del dia espero xD hoy es sabado'),(11,'Omeprazol',1,'Hola, esto lo vio el César'),(17,'Omeprazol',1,'jajajaja'),(18,'Loratadina',1,'loratadina rulz'),(19,'Loratadina',1,'hola'),(20,'Loratadina',1,'había una vez un erick comentando'),(21,'Omeprazol',1,'holasdaldasd'),(22,'Loratadina',1,'dbjasdasjdbaskjdansdkjas'),(23,'Omeprazol',3,'Hola soy yo :D y esto fue modificado :3'); -/*!40000 ALTER TABLE `remedios_comenta_usuarios` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `telefonocm` --- - -DROP TABLE IF EXISTS `telefonocm`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `telefonocm` ( - `telefono` varchar(20) NOT NULL, - `CentrosMedicos_idCentrosMedicos` int(11) NOT NULL, - PRIMARY KEY (`telefono`,`CentrosMedicos_idCentrosMedicos`), - KEY `fk_telefonoCM_CentrosMedicos_idx` (`CentrosMedicos_idCentrosMedicos`), - CONSTRAINT `fk_telefonoCM_CentrosMedicos` FOREIGN KEY (`CentrosMedicos_idCentrosMedicos`) REFERENCES `centrosmedicos` (`idCentrosMedicos`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `telefonocm` --- - -LOCK TABLES `telefonocm` WRITE; -/*!40000 ALTER TABLE `telefonocm` DISABLE KEYS */; -INSERT INTO `telefonocm` VALUES ('2761551',1),('2711265',2),('2422797',3),('2511482',4),('2261000',5),('2206210',6),('2221686',7),('2657700',8),('2217194',9),('(32) 2890133',10),('2685758',10); -/*!40000 ALTER TABLE `telefonocm` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `usuarios` --- - -DROP TABLE IF EXISTS `usuarios`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `usuarios` ( - `idusuario` int(11) NOT NULL AUTO_INCREMENT, - `nombre` varchar(45) DEFAULT NULL, - `foto` varchar(45) DEFAULT NULL, - `contrasena` varchar(45) DEFAULT NULL, - PRIMARY KEY (`idusuario`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `usuarios` --- - -LOCK TABLES `usuarios` WRITE; -/*!40000 ALTER TABLE `usuarios` DISABLE KEYS */; -INSERT INTO `usuarios` VALUES (1,'Erick','fotoerick.jpg','farmautomatico'),(2,'Jorge','fotojorge.jpg','farmautomatico'),(3,'Yo','fotoyo.jpg','metodologias'); -/*!40000 ALTER TABLE `usuarios` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2015-09-10 16:48:59 diff --git a/otros_leer/farmautomatico.sql b/otros_leer/farmautomatico.sql index 2fc24da..d316bd8 100644 --- a/otros_leer/farmautomatico.sql +++ b/otros_leer/farmautomatico.sql @@ -1,8 +1,8 @@ --- MySQL dump 10.13 Distrib 5.6.25, for Win64 (x86_64) +-- MySQL dump 10.13 Distrib 5.6.26, for Win64 (x86_64) -- -- Host: localhost Database: farmautomatico -- ------------------------------------------------------ --- Server version 5.6.25-log +-- Server version 5.6.26-log /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; @@ -24,9 +24,9 @@ DROP TABLE IF EXISTS `centrosmedicos`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `centrosmedicos` ( `idCentrosMedicos` int(11) NOT NULL AUTO_INCREMENT, - `nombre` varchar(45) DEFAULT NULL, + `nombre` varchar(100) DEFAULT NULL, `comunas_idcomunas` int(11) NOT NULL, - `Direccion` varchar(100) DEFAULT NULL, + `direccion` varchar(100) DEFAULT NULL, `esPublico` tinyint(1) DEFAULT NULL, PRIMARY KEY (`idCentrosMedicos`), KEY `fk_CentrosMedicos_comunas1_idx` (`comunas_idcomunas`), @@ -71,6 +71,141 @@ INSERT INTO `comunas` VALUES (1,'ARICA',15),(2,'IQUIQUE',1),(3,'HUARA',1),(4,'PI /*!40000 ALTER TABLE `comunas` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `enfermedad` +-- + +DROP TABLE IF EXISTS `enfermedad`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `enfermedad` ( + `nombre_enfermedad` varchar(45) NOT NULL, + PRIMARY KEY (`nombre_enfermedad`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `enfermedad` +-- + +LOCK TABLES `enfermedad` WRITE; +/*!40000 ALTER TABLE `enfermedad` DISABLE KEYS */; +INSERT INTO `enfermedad` VALUES ('Asma'),('Astigmatismo'),('Autismo'),('Ciática'),('Cirrosis'),('Cistitis'),('Cólera'),('Daltinismo'),('Ébola'),('Faringitis'),('Gastritis'),('Hipotermia'),('Insomnio'),('Juanetes'),('Lumbalgia'),('Migraña'),('Neumonía'),('Osteoporosis'),('Pancreatitis'),('Párkinson'),('Quemaduras'),('Rabia'),('Resfriado'),('Sarampión'),('Sindrome de Raynaud'),('Terremotos'),('Úlcera'),('Vértigo'); +/*!40000 ALTER TABLE `enfermedad` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `enfermedades_tiene_especialistas` +-- + +DROP TABLE IF EXISTS `enfermedades_tiene_especialistas`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `enfermedades_tiene_especialistas` ( + `enfermedad_nombre_enfermedad` varchar(45) NOT NULL, + `especialistas_id_especialista` int(11) NOT NULL, + PRIMARY KEY (`enfermedad_nombre_enfermedad`,`especialistas_id_especialista`), + KEY `fk_enfermedades_tiene_especialistas_especialistas1_idx` (`especialistas_id_especialista`), + CONSTRAINT `fk_enfermedades_tiene_especialistas_enfermedad1` FOREIGN KEY (`enfermedad_nombre_enfermedad`) REFERENCES `enfermedad` (`nombre_enfermedad`) ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT `fk_enfermedades_tiene_especialistas_especialistas1` FOREIGN KEY (`especialistas_id_especialista`) REFERENCES `especialistas` (`id_especialista`) ON DELETE NO ACTION ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `enfermedades_tiene_especialistas` +-- + +LOCK TABLES `enfermedades_tiene_especialistas` WRITE; +/*!40000 ALTER TABLE `enfermedades_tiene_especialistas` DISABLE KEYS */; +/*!40000 ALTER TABLE `enfermedades_tiene_especialistas` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `enfermedads` +-- + +DROP TABLE IF EXISTS `enfermedads`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `enfermedads` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `nombre_enfermedad` varchar(255) DEFAULT NULL, + `createdAt` datetime NOT NULL, + `updatedAt` datetime NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `enfermedads` +-- + +LOCK TABLES `enfermedads` WRITE; +/*!40000 ALTER TABLE `enfermedads` DISABLE KEYS */; +/*!40000 ALTER TABLE `enfermedads` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `especialistas` +-- + +DROP TABLE IF EXISTS `especialistas`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `especialistas` ( + `id_especialista` int(11) NOT NULL, + `nombre_especialista` varchar(45) DEFAULT NULL, + `contraseña` varchar(45) DEFAULT NULL, + `foto` varchar(50) DEFAULT NULL, + `email` varchar(45) DEFAULT NULL, + `especialidad` varchar(45) DEFAULT NULL, + `direccion` varchar(100) DEFAULT NULL, + `comunas_idcomunas` int(11) NOT NULL, + PRIMARY KEY (`id_especialista`), + KEY `fk_especialistas_comunas1_idx` (`comunas_idcomunas`), + CONSTRAINT `fk_especialistas_comunas1` FOREIGN KEY (`comunas_idcomunas`) REFERENCES `comunas` (`idcomunas`) ON DELETE NO ACTION ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `especialistas` +-- + +LOCK TABLES `especialistas` WRITE; +/*!40000 ALTER TABLE `especialistas` DISABLE KEYS */; +/*!40000 ALTER TABLE `especialistas` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `farmacia` +-- + +DROP TABLE IF EXISTS `farmacia`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `farmacia` ( + `nombre` int(11) NOT NULL, + `turno` varchar(45) DEFAULT NULL, + `comunas_idcomunas` int(11) NOT NULL, + `coordenada1` int(11) DEFAULT NULL, + `coordenada2` int(11) DEFAULT NULL, + `hora_atencion` varchar(45) DEFAULT NULL, + `direccion` varchar(100) DEFAULT NULL, + PRIMARY KEY (`nombre`), + KEY `fk_farmacia_comunas1_idx` (`comunas_idcomunas`), + CONSTRAINT `fk_farmacia_comunas1` FOREIGN KEY (`comunas_idcomunas`) REFERENCES `comunas` (`idcomunas`) ON DELETE NO ACTION ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `farmacia` +-- + +LOCK TABLES `farmacia` WRITE; +/*!40000 ALTER TABLE `farmacia` DISABLE KEYS */; +/*!40000 ALTER TABLE `farmacia` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `regiones` -- @@ -104,11 +239,11 @@ DROP TABLE IF EXISTS `remedios`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `remedios` ( `nombre` varchar(100) NOT NULL, - `indicaciones` varchar(1000) DEFAULT NULL, - `contraindicaciones` varchar(1000) DEFAULT NULL, - `conservacion` varchar(1000) DEFAULT NULL, - `interacciones` varchar(1000) DEFAULT NULL, - `otrosdatos` varchar(2000) DEFAULT NULL, + `indicaciones` text, + `contraindicaciones` text, + `conservacion` text, + `interacciones` text, + `otrosdatos` text, PRIMARY KEY (`nombre`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -123,36 +258,6 @@ INSERT INTO `remedios` VALUES ('Loratadina','para la alergia','no se','En lugar /*!40000 ALTER TABLE `remedios` ENABLE KEYS */; UNLOCK TABLES; --- --- Table structure for table `remedios_comenta_usuarios` --- - -DROP TABLE IF EXISTS `remedios_comenta_usuarios`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `remedios_comenta_usuarios` ( - `idcomentarios` int(11) NOT NULL AUTO_INCREMENT, - `remedios_nombre` varchar(100) NOT NULL, - `usuario_idusuario` int(11) NOT NULL, - `comentario` varchar(500) DEFAULT NULL, - PRIMARY KEY (`idcomentarios`,`remedios_nombre`,`usuario_idusuario`), - KEY `fk_remedios_has_usuario_usuario1_idx` (`usuario_idusuario`), - KEY `fk_remedios_comenta_usuarios_remedios1_idx` (`remedios_nombre`), - CONSTRAINT `fk_remedios_comenta_usuarios_remedios1` FOREIGN KEY (`remedios_nombre`) REFERENCES `remedios` (`nombre`) ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT `fk_remedios_has_usuario_usuario1` FOREIGN KEY (`usuario_idusuario`) REFERENCES `usuarios` (`idusuario`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `remedios_comenta_usuarios` --- - -LOCK TABLES `remedios_comenta_usuarios` WRITE; -/*!40000 ALTER TABLE `remedios_comenta_usuarios` DISABLE KEYS */; -INSERT INTO `remedios_comenta_usuarios` VALUES (1,'Loratadina',1,'Este es mi primer comentario en loratadina'),(2,'Omeprazol',1,'Este es mi primer comentario, ingresado desde a BD'),(3,'Omeprazol',2,'Este es mi primer comentario aburrido'),(4,'Loratadina',2,'ingresado desde la consola'),(5,'Omeprazol',1,'Ingrese su comentario'),(6,'Omeprazol',1,'Ingrese su comentario'),(7,'Omeprazol',1,'Ingrese su comentario'),(8,'Loratadina',2,'Blablabla ingresado desde la página'),(9,'Loratadina',2,'Blablabla ingresado desde la página'); -/*!40000 ALTER TABLE `remedios_comenta_usuarios` ENABLE KEYS */; -UNLOCK TABLES; - -- -- Table structure for table `telefonocm` -- @@ -179,6 +284,56 @@ INSERT INTO `telefonocm` VALUES ('2761551',1),('2711265',2),('2422797',3),('2511 /*!40000 ALTER TABLE `telefonocm` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `telefonoespecialista` +-- + +DROP TABLE IF EXISTS `telefonoespecialista`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `telefonoespecialista` ( + `telefono` varchar(20) NOT NULL, + `especialistas_id_especialista` int(11) NOT NULL, + PRIMARY KEY (`telefono`,`especialistas_id_especialista`), + KEY `fk_telefonoEspecialista_especialistas1_idx` (`especialistas_id_especialista`), + CONSTRAINT `fk_telefonoEspecialista_especialistas1` FOREIGN KEY (`especialistas_id_especialista`) REFERENCES `especialistas` (`id_especialista`) ON DELETE NO ACTION ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `telefonoespecialista` +-- + +LOCK TABLES `telefonoespecialista` WRITE; +/*!40000 ALTER TABLE `telefonoespecialista` DISABLE KEYS */; +/*!40000 ALTER TABLE `telefonoespecialista` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `telefonofarmacia` +-- + +DROP TABLE IF EXISTS `telefonofarmacia`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `telefonofarmacia` ( + `telefono` varchar(20) NOT NULL, + `farmacia_nombre` int(11) NOT NULL, + PRIMARY KEY (`telefono`,`farmacia_nombre`), + KEY `fk_telefonoFarmacia_farmacia1_idx` (`farmacia_nombre`), + CONSTRAINT `fk_telefonoFarmacia_farmacia1` FOREIGN KEY (`farmacia_nombre`) REFERENCES `farmacia` (`nombre`) ON DELETE NO ACTION ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `telefonofarmacia` +-- + +LOCK TABLES `telefonofarmacia` WRITE; +/*!40000 ALTER TABLE `telefonofarmacia` DISABLE KEYS */; +/*!40000 ALTER TABLE `telefonofarmacia` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `usuarios` -- @@ -189,8 +344,9 @@ DROP TABLE IF EXISTS `usuarios`; CREATE TABLE `usuarios` ( `idusuario` int(11) NOT NULL AUTO_INCREMENT, `nombre` varchar(45) DEFAULT NULL, - `foto` varchar(45) DEFAULT NULL, + `foto` varchar(40) DEFAULT NULL, `contrasena` varchar(45) DEFAULT NULL, + `email` varchar(45) DEFAULT NULL, PRIMARY KEY (`idusuario`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -201,9 +357,67 @@ CREATE TABLE `usuarios` ( LOCK TABLES `usuarios` WRITE; /*!40000 ALTER TABLE `usuarios` DISABLE KEYS */; -INSERT INTO `usuarios` VALUES (1,'Erick','fotoerick.jpg','farmautomatico'),(2,'Jorge','fotojorge.jpg','farmautomatico'); +INSERT INTO `usuarios` VALUES (1,'Erick','fotoerick.jpg','farmautomatico',NULL),(2,'Jorge','fotojorge.jpg','farmautomatico',NULL); /*!40000 ALTER TABLE `usuarios` ENABLE KEYS */; UNLOCK TABLES; + +-- +-- Table structure for table `usuarios_comenta_remedio` +-- + +DROP TABLE IF EXISTS `usuarios_comenta_remedio`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `usuarios_comenta_remedio` ( + `idcomentarios` int(11) NOT NULL AUTO_INCREMENT, + `remedios_nombre` varchar(100) NOT NULL, + `usuario_idusuario` int(11) NOT NULL, + `comentario` varchar(500) DEFAULT NULL, + `fecha_comentario` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`idcomentarios`,`remedios_nombre`,`usuario_idusuario`), + KEY `fk_remedios_has_usuario_usuario1_idx` (`usuario_idusuario`), + KEY `fk_remedios_comenta_usuarios_remedios1_idx` (`remedios_nombre`), + CONSTRAINT `fk_remedios_comenta_usuarios_remedios1` FOREIGN KEY (`remedios_nombre`) REFERENCES `remedios` (`nombre`) ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT `fk_remedios_has_usuario_usuario1` FOREIGN KEY (`usuario_idusuario`) REFERENCES `usuarios` (`idusuario`) ON DELETE NO ACTION ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `usuarios_comenta_remedio` +-- + +LOCK TABLES `usuarios_comenta_remedio` WRITE; +/*!40000 ALTER TABLE `usuarios_comenta_remedio` DISABLE KEYS */; +INSERT INTO `usuarios_comenta_remedio` VALUES (1,'Loratadina',1,'Este es mi primer comentario en loratadina','2015-09-24 23:33:00'),(2,'Omeprazol',1,'Este es mi primer comentario, ingresado desde a BD','2015-09-24 23:33:00'),(3,'Omeprazol',2,'Este es mi primer comentario aburrido','2015-09-24 23:33:00'),(4,'Loratadina',2,'ingresado desde la consola','2015-09-24 23:33:00'),(5,'Omeprazol',1,'Ingrese su comentario','2015-09-24 23:33:00'),(6,'Omeprazol',1,'Ingrese su comentario','2015-09-24 23:33:00'),(7,'Omeprazol',1,'Ingrese su comentario','2015-09-24 23:33:00'),(8,'Loratadina',2,'Blablabla ingresado desde la página','2015-09-24 23:33:00'),(9,'Loratadina',2,'Blablabla ingresado desde la página','2015-09-24 23:33:00'); +/*!40000 ALTER TABLE `usuarios_comenta_remedio` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `usuarios_comenta_remedios` +-- + +DROP TABLE IF EXISTS `usuarios_comenta_remedios`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `usuarios_comenta_remedios` ( + `idcomentarios` int(11) NOT NULL AUTO_INCREMENT, + `remedios_nombre` varchar(255) DEFAULT NULL, + `usuario_idusuario` int(11) DEFAULT NULL, + `comentario` varchar(255) DEFAULT NULL, + `createdAt` datetime NOT NULL, + `updatedAt` datetime NOT NULL, + PRIMARY KEY (`idcomentarios`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `usuarios_comenta_remedios` +-- + +LOCK TABLES `usuarios_comenta_remedios` WRITE; +/*!40000 ALTER TABLE `usuarios_comenta_remedios` DISABLE KEYS */; +/*!40000 ALTER TABLE `usuarios_comenta_remedios` ENABLE KEYS */; +UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; @@ -214,4 +428,4 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2015-07-18 4:53:13 +-- Dump completed on 2015-10-01 23:25:28 diff --git a/otros_leer/farmautomaticov2 - copia.sql b/otros_leer/farmautomaticov2 - copia.sql deleted file mode 100644 index 306945f..0000000 --- a/otros_leer/farmautomaticov2 - copia.sql +++ /dev/null @@ -1,378 +0,0 @@ --- MySQL dump 10.13 Distrib 5.6.26, for Win64 (x86_64) --- --- Host: localhost Database: farmautomaticov2 --- ------------------------------------------------------ --- Server version 5.6.26-log - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `centrosmedicos` --- - -DROP TABLE IF EXISTS `centrosmedicos`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `centrosmedicos` ( - `idCentrosMedicos` int(11) NOT NULL AUTO_INCREMENT, - `nombre` varchar(100) DEFAULT NULL, - `comunas_idcomunas` int(11) NOT NULL, - `direccion` varchar(100) DEFAULT NULL, - `esPublico` tinyint(1) DEFAULT NULL, - PRIMARY KEY (`idCentrosMedicos`), - KEY `fk_CentrosMedicos_comunas1_idx` (`comunas_idcomunas`), - CONSTRAINT `fk_CentrosMedicos_comunas1` FOREIGN KEY (`comunas_idcomunas`) REFERENCES `comunas` (`idcomunas`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `centrosmedicos` --- - -LOCK TABLES `centrosmedicos` WRITE; -/*!40000 ALTER TABLE `centrosmedicos` DISABLE KEYS */; -INSERT INTO `centrosmedicos` VALUES (1,'ACHS ACONCAGUA - SEDE CABILDO',48,'Humeres 371',0),(2,'ACHS ACONCAGUA - SEDE LA LIGUA',59,'Portales 746',0),(3,'ACHS ACONCAGUA - SEDE LOS ANDES',66,'Av. Argentina 50',0),(4,'ACHS ACONCAGUA - SEDE SAN FELIPE',60,'San Martin 120',0),(5,'ACHS SAN ANTONIO - SEDE SAN ANTONIO',42,'Barros Luco 1575',0),(6,'ACHS VALPARAISO - SEDE VALPARAISO',34,'Edwards 150',0),(7,'ACHS VIÑA DEL MAR - SEDE LA CALERA',50,'Avenida Latorre 98',0),(8,'ACHS VIÑA DEL MAR - SEDE VIÑA DEL MAR',37,'7 Norte 550',0),(9,'ASOMEL ASOCIACION DE MEDICOS LTDA',34,'Colon 2020',0),(10,'ASOMEL DE REÑACA',37,'Angamos 185 Of. 21',0); -/*!40000 ALTER TABLE `centrosmedicos` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `comunas` --- - -DROP TABLE IF EXISTS `comunas`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `comunas` ( - `idcomunas` int(11) NOT NULL, - `nombre` varchar(255) DEFAULT NULL, - `regiones_idregiones` int(11) NOT NULL, - PRIMARY KEY (`idcomunas`), - KEY `fk_comunas_regiones1_idx` (`regiones_idregiones`), - CONSTRAINT `fk_comunas_regiones1` FOREIGN KEY (`regiones_idregiones`) REFERENCES `regiones` (`idregiones`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `comunas` --- - -LOCK TABLES `comunas` WRITE; -/*!40000 ALTER TABLE `comunas` DISABLE KEYS */; -INSERT INTO `comunas` VALUES (1,'ARICA',15),(2,'IQUIQUE',1),(3,'HUARA',1),(4,'PICA',1),(5,'POZO ALMONTE',1),(6,'TOCOPILLA',2),(7,'ANTOFAGASTA',2),(8,'MEJILLONES',2),(9,'TALTAL',2),(10,'CALAMA',2),(11,'CHAÑARAL',3),(12,'DIEGO DE ALMAGRO',3),(13,'COPIAPO',3),(14,'CALDERA',3),(15,'TIERRA AMARILLA',3),(16,'VALLENAR',3),(17,'FREIRINA',3),(18,'HUASCO',3),(19,'LA SERENA',4),(20,'LA HIGUERA',4),(21,'COQUIMBO',4),(22,'ANDACOLLO',4),(23,'VICUÑA',4),(24,'PAIHUANO',4),(25,'OVALLE',4),(26,'MONTE PATRIA',4),(27,'PUNITAQUI',4),(28,'RIO HURTADO',4),(29,'COMBARBALA',4),(30,'ILLAPEL',4),(31,'CANELA',4),(32,'SALAMANCA',4),(33,'LOS VILOS',4),(34,'VALPARAISO',5),(35,'QUINTERO',5),(36,'PUCHUNCAVI',5),(37,'VIÑA DEL MAR',5),(38,'QUILPUE',5),(39,'VILLA ALEMANA',5),(40,'CASABLANCA',5),(41,'ISLA DE PASCUA',5),(42,'SAN ANTONIO',5),(43,'SANTO DOMINGO',5),(44,'ALGARROBO',5),(45,'EL QUISCO',5),(46,'CARTAGENA',5),(47,'EL TABO',5),(48,'QUILLOTA',5),(49,'LA CRUZ',5),(50,'LA CALERA',5),(51,'HIJUELAS',5),(52,'NOGALES',5),(53,'LIMACHE',5),(54,'OLMUE',5),(55,'PETORCA',5),(56,'CABILDO',5),(57,'PAPUDO',5),(58,'ZAPALLAR',5),(59,'LA LIGUA',5),(60,'SAN FELIPE',5),(61,'PUTAENDO',5),(62,'PANQUEHUE',5),(63,'CATEMU',5),(64,'SANTA MARIA',5),(65,'LLAY LLAY',5),(66,'LOS ANDES',5),(67,'CALLE LARGA',5),(68,'RINCONADA',5),(69,'SAN ESTEBAN',5),(70,'SANTIAGO CENTRO',13),(71,'LAS CONDES',13),(72,'PROVIDENCIA',13),(73,'SANTIAGO OESTE',13),(75,'CONCHALI',13),(76,'COLINA',13),(77,'RENCA',13),(78,'LAMPA',13),(79,'QUILICURA',13),(80,'TIL-TIL',13),(81,'QUINTA NORMAL',13),(82,'PUDAHUEL',13),(83,'CURACAVI',13),(84,'SANTIAGO SUR',13),(85,'PEÑAFLOR',13),(86,'TALAGANTE',13),(87,'ISLA DE MAIPO',13),(88,'MELIPILLA',13),(89,'EL MONTE',13),(90,'MARIA PINTO',13),(91,'ÑUÑOA',13),(92,'LA REINA',13),(93,'LA FLORIDA',13),(94,'MAIPU',13),(95,'SAN MIGUEL',13),(96,'LA CISTERNA',13),(97,'LA GRANJA',13),(98,'SAN BERNARDO',13),(99,'CALERA DE TANGO',13),(100,'PUENTE ALTO',13),(101,'PIRQUE',13),(102,'SAN JOSE DE MAIPO',13),(103,'BUIN',13),(104,'PAINE',13),(105,'RANCAGUA',6),(106,'MACHALI',6),(107,'GRANEROS',6),(108,'SAN PEDRO',13),(109,'ALHUE',13),(110,'CODEGUA',6),(111,'SAN FRANCISCO DE MOSTAZAL',6),(112,'DOÑIHUE',6),(113,'COLTAUCO',6),(114,'COINCO',6),(115,'PEUMO',6),(116,'LAS CABRAS',6),(117,'SAN VICENTE',6),(118,'PICHIDEGUA',6),(119,'REQUINOA',6),(120,'OLIVAR',6),(121,'RENGO',6),(122,'MALLOA',6),(123,'QUINTA DE TILCOCO',6),(124,'SAN FERNANDO',6),(125,'CHIMBARONGO',6),(126,'NANCAGUA',6),(127,'PLACILLA',6),(128,'SANTA CRUZ',6),(129,'LOLOL',6),(130,'PALMILLA',6),(131,'PERALILLO',6),(132,'CHEPICA',6),(133,'PAREDONES',6),(134,'MARCHIGUE',6),(135,'PUMANQUE',6),(136,'LITUECHE',6),(137,'PICHILEMU',6),(138,'NAVIDAD',6),(139,'LA ESTRELLA',6),(140,'CURICO',7),(141,'ROMERAL',7),(142,'TENO',7),(143,'RAUCO',7),(144,'HUALA?âÔÇÿE',7),(145,'LICANTEN',7),(146,'VICHUQUEN',7),(147,'MOLINA',7),(148,'SAGRADA FAMILIA',7),(149,'RIO CLARO',7),(150,'TALCA',7),(151,'SAN CLEMENTE',7),(152,'PELARCO',7),(153,'PENCAHUE',7),(154,'MAULE',7),(155,'CUREPTO',7),(156,'SAN JAVIER',7),(157,'CONSTITUCION',7),(158,'EMPEDRADO',7),(159,'LINARES',7),(160,'YERBAS BUENAS',7),(161,'COLBUN',7),(162,'LONGAVI',7),(163,'VILLA ALEGRE',7),(164,'PARRAL',7),(165,'RETIRO',7),(166,'CAUQUENES',7),(167,'CHANCO',7),(168,'CHILLAN',8),(169,'PINTO',8),(170,'COIHUECO',8),(171,'PORTEZUELO',8),(172,'QUIRIHUE',8),(173,'TREHUACO',8),(174,'NINHUE',8),(175,'COBQUECURA',8),(176,'SAN CARLOS',8),(177,'SAN GREGORIO DE ÑIQUEN',8),(178,'SAN FABIAN',8),(179,'SAN NICOLAS',8),(180,'BULNES',8),(181,'SAN IGNACIO',8),(182,'QUILLON',8),(183,'YUNGAY',8),(184,'PEMUCO',8),(185,'EL CARMEN',8),(186,'COELEMU',8),(187,'RANQUIL',8),(188,'CONCEPCION',8),(189,'TALCAHUANO',8),(190,'TOME',8),(191,'PENCO',8),(192,'HUALQUI',8),(193,'FLORIDA',8),(194,'CORONEL',8),(195,'LOTA',8),(196,'SANTA JUANA',8),(197,'CURANILAHUE',8),(198,'ARAUCO',8),(199,'LEBU',8),(200,'LOS ALAMOS',8),(201,'CAÑETE',8),(202,'CONTULMO',8),(203,'TIRUA',8),(204,'LOS ANGELES',8),(205,'SANTA BARBARA',8),(206,'QUILLECO',8),(207,'YUMBEL',8),(208,'CABRERO',8),(209,'TUCAPEL',8),(210,'LAJA',8),(211,'SAN ROSENDO',8),(212,'NACIMIENTO',8),(213,'NEGRETE',8),(214,'MULCHEN',8),(215,'QUILACO',8),(216,'ANGOL',9),(217,'PUREN',9),(218,'LOS SAUCES',9),(219,'RENAICO',9),(220,'COLLIPULLI',9),(221,'ERCILLA',9),(222,'TRAIGUEN',9),(223,'LUMACO',9),(224,'VICTORIA',9),(225,'CURACAUTIN',9),(226,'LONQUIMAY',9),(227,'TEMUCO',9),(228,'VILCUN',9),(229,'FREIRE',9),(230,'CUNCO',9),(231,'LAUTARO',9),(232,'GALVARINO',9),(233,'PERQUENCO',9),(234,'NUEVA IMPERIAL',9),(235,'CARAHUE',9),(236,'PUERTO SAAVEDRA',9),(237,'PITRUFQUEN',9),(238,'GORBEA',9),(239,'TOLTEN',9),(240,'LONCOCHE',9),(241,'VILLARRICA',9),(242,'PUCON',9),(243,'VALDIVIA',14),(244,'CORRAL',14),(245,'MARIQUINA',14),(246,'MAFIL',14),(247,'LOS LAGOS',14),(248,'FUTRONO',14),(249,'LANCO',14),(250,'PANGUIPULLI',14),(251,'LA UNION',14),(252,'PAILLACO',14),(253,'RIO BUENO',14),(254,'LAGO RANCO',14),(255,'OSORNO',10),(256,'PUYEHUE',10),(257,'SAN PABLO',10),(258,'PUERTO OCTAY',10),(259,'RIO NEGRO',10),(260,'PURRANQUE',10),(261,'PUERTO MONTT',10),(262,'COCHAMO',10),(263,'MAULLIN',10),(264,'LOS MUERMOS',10),(265,'CALBUCO',10),(266,'PUERTO VARAS',10),(267,'LLANQUIHUE',10),(268,'FRESIA',10),(269,'FRUTILLAR',10),(270,'CASTRO',10),(271,'CHONCHI',10),(272,'QUEILEN',10),(273,'QUELLON',10),(274,'PUQUELDON',10),(275,'QUINCHAO',10),(276,'CURACO DE VELEZ',10),(277,'ANCUD',10),(278,'QUEMCHI',10),(279,'DALCAHUE',10),(280,'CHAITEN',10),(281,'FUTALEUFU',10),(282,'PALENA',10),(284,'COYHAIQUE',11),(285,'AYSEN',11),(286,'CISNES',11),(287,'CHILE CHICO',11),(288,'RIO IBAÑEZ',11),(289,'COCHRANE',11),(290,'PUNTA ARENAS',12),(291,'PUERTO NATALES',12),(292,'PORVENIR',12),(293,'GENERAL LAGOS',15),(294,'PUTRE',15),(295,'CAMARONES',15),(296,'CAMINA',1),(297,'COLCHANE',1),(298,'MARIA ELENA',2),(299,'SIERRA GORDA',2),(300,'OLLAGÜE',2),(301,'SAN PEDRO DE ATACAMA',2),(302,'ALTO DEL CARMEN',3),(303,'ANTUCO',8),(304,'MELIPEUCO',9),(305,'CURARREHUE',9),(306,'TEODORO SCHMIDT',9),(307,'SAN JUAN DE LA COSTA',10),(308,'HUALAIHUE',10),(309,'GUAITECAS',11),(310,'O\'HIGGINS',11),(311,'TORTEL',11),(312,'LAGO VERDE',11),(313,'TORRES DEL PAINE',12),(314,'RIO VERDE',12),(315,'SAN GREGORIO',12),(316,'LAGUNA BLANCA',12),(317,'PRIMAVERA',12),(318,'TIMAUKEL',12),(319,'NAVARINO',12),(320,'PELLUHUE',7),(321,'JUAN FERNANDEZ',5),(322,'PEÑALOLEN',13),(323,'MACUL',13),(324,'CERRO NAVIA',13),(325,'LO PRADO',13),(326,'SAN RAMON',13),(327,'LA PINTANA',13),(328,'ESTACION CENTRAL',13),(329,'RECOLETA',13),(330,'INDEPENDENCIA',13),(331,'VITACURA',13),(332,'LO BARNECHEA',13),(333,'CERRILLOS',13),(334,'HUECHURABA',13),(335,'SAN JOAQUIN',13),(336,'PEDRO AGUIRRE CERDA',13),(337,'LO ESPEJO',13),(338,'EL BOSQUE',13),(339,'PADRE HURTADO',13),(340,'CONCON',5),(341,'SAN RAFAEL',7),(342,'CHILLAN VIEJO',8),(343,'SAN PEDRO DE LA PAZ',8),(344,'CHIGUAYANTE',8),(345,'PADRE LAS CASAS',9),(346,'ALTO HOSPICIO',1); -/*!40000 ALTER TABLE `comunas` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `enfermedad` --- - -DROP TABLE IF EXISTS `enfermedad`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `enfermedad` ( - `nombre_enfermedad` varchar(45) NOT NULL, - PRIMARY KEY (`nombre_enfermedad`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `enfermedad` --- - -LOCK TABLES `enfermedad` WRITE; -/*!40000 ALTER TABLE `enfermedad` DISABLE KEYS */; -/*!40000 ALTER TABLE `enfermedad` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `enfermedades_tiene_especialistas` --- - -DROP TABLE IF EXISTS `enfermedades_tiene_especialistas`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `enfermedades_tiene_especialistas` ( - `enfermedad_nombre_enfermedad` varchar(45) NOT NULL, - `especialistas_id_especialista` int(11) NOT NULL, - PRIMARY KEY (`enfermedad_nombre_enfermedad`,`especialistas_id_especialista`), - KEY `fk_enfermedades_tiene_especialistas_especialistas1_idx` (`especialistas_id_especialista`), - CONSTRAINT `fk_enfermedades_tiene_especialistas_enfermedad1` FOREIGN KEY (`enfermedad_nombre_enfermedad`) REFERENCES `enfermedad` (`nombre_enfermedad`) ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT `fk_enfermedades_tiene_especialistas_especialistas1` FOREIGN KEY (`especialistas_id_especialista`) REFERENCES `especialistas` (`id_especialista`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `enfermedades_tiene_especialistas` --- - -LOCK TABLES `enfermedades_tiene_especialistas` WRITE; -/*!40000 ALTER TABLE `enfermedades_tiene_especialistas` DISABLE KEYS */; -/*!40000 ALTER TABLE `enfermedades_tiene_especialistas` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `especialistas` --- - -DROP TABLE IF EXISTS `especialistas`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `especialistas` ( - `id_especialista` int(11) NOT NULL, - `nombre_especialista` varchar(45) DEFAULT NULL, - `contraseña` varchar(45) DEFAULT NULL, - `foto` varchar(50) DEFAULT NULL, - `email` varchar(45) DEFAULT NULL, - `especialidad` varchar(45) DEFAULT NULL, - `direccion` varchar(100) DEFAULT NULL, - `comunas_idcomunas` int(11) NOT NULL, - PRIMARY KEY (`id_especialista`), - KEY `fk_especialistas_comunas1_idx` (`comunas_idcomunas`), - CONSTRAINT `fk_especialistas_comunas1` FOREIGN KEY (`comunas_idcomunas`) REFERENCES `comunas` (`idcomunas`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `especialistas` --- - -LOCK TABLES `especialistas` WRITE; -/*!40000 ALTER TABLE `especialistas` DISABLE KEYS */; -/*!40000 ALTER TABLE `especialistas` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `farmacia` --- - -DROP TABLE IF EXISTS `farmacia`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `farmacia` ( - `nombre` int(11) NOT NULL, - `turno` varchar(45) DEFAULT NULL, - `comunas_idcomunas` int(11) NOT NULL, - `coordenada1` int(11) DEFAULT NULL, - `coordenada2` int(11) DEFAULT NULL, - `hora_atencion` varchar(45) DEFAULT NULL, - `direccion` varchar(100) DEFAULT NULL, - PRIMARY KEY (`nombre`), - KEY `fk_farmacia_comunas1_idx` (`comunas_idcomunas`), - CONSTRAINT `fk_farmacia_comunas1` FOREIGN KEY (`comunas_idcomunas`) REFERENCES `comunas` (`idcomunas`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `farmacia` --- - -LOCK TABLES `farmacia` WRITE; -/*!40000 ALTER TABLE `farmacia` DISABLE KEYS */; -/*!40000 ALTER TABLE `farmacia` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `regiones` --- - -DROP TABLE IF EXISTS `regiones`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `regiones` ( - `idregiones` int(11) NOT NULL, - `nombre` varchar(50) DEFAULT NULL, - PRIMARY KEY (`idregiones`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `regiones` --- - -LOCK TABLES `regiones` WRITE; -/*!40000 ALTER TABLE `regiones` DISABLE KEYS */; -INSERT INTO `regiones` VALUES (1,'Tarapacá'),(2,'Antofagasta'),(3,'Atacama'),(4,'Coquimbo'),(5,'Valparaíso'),(6,'Región del Libertador Gral. Bernardo O\'Higgins'),(7,'Región del Maule'),(8,'Región del Biobío'),(9,'Región de la Araucanía'),(10,'Región de Los Lagos'),(11,'Región Aisén del Gral. Carlos Ibáñez del Campo'),(12,'Región de Magallanes y de la Antártica Chilena'),(13,'Región Metropolitana de Santiago'),(14,'Región de Los Ríos'),(15,'Arica y Parinacota'); -/*!40000 ALTER TABLE `regiones` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `remedios` --- - -DROP TABLE IF EXISTS `remedios`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `remedios` ( - `nombre` varchar(100) NOT NULL, - `indicaciones` text, - `contraindicaciones` text, - `conservacion` text, - `interacciones` text, - `otrosdatos` text, - PRIMARY KEY (`nombre`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `remedios` --- - -LOCK TABLES `remedios` WRITE; -/*!40000 ALTER TABLE `remedios` DISABLE KEYS */; -INSERT INTO `remedios` VALUES ('Loratadina','para la alergia','no se','En lugar Fresco y seco','ninguna',NULL),('Omeprazol','Para el reflujo','No comer por un rato','En lugar Fresco y seco','Con la comida','ninguno'); -/*!40000 ALTER TABLE `remedios` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `telefonocm` --- - -DROP TABLE IF EXISTS `telefonocm`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `telefonocm` ( - `telefono` varchar(20) NOT NULL, - `CentrosMedicos_idCentrosMedicos` int(11) NOT NULL, - PRIMARY KEY (`telefono`,`CentrosMedicos_idCentrosMedicos`), - KEY `fk_telefonoCM_CentrosMedicos_idx` (`CentrosMedicos_idCentrosMedicos`), - CONSTRAINT `fk_telefonoCM_CentrosMedicos` FOREIGN KEY (`CentrosMedicos_idCentrosMedicos`) REFERENCES `centrosmedicos` (`idCentrosMedicos`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `telefonocm` --- - -LOCK TABLES `telefonocm` WRITE; -/*!40000 ALTER TABLE `telefonocm` DISABLE KEYS */; -INSERT INTO `telefonocm` VALUES ('2761551',1),('2711265',2),('2422797',3),('2511482',4),('2261000',5),('2206210',6),('2221686',7),('2657700',8),('2217194',9),('(32) 2890133',10),('2685758',10); -/*!40000 ALTER TABLE `telefonocm` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `telefonoespecialista` --- - -DROP TABLE IF EXISTS `telefonoespecialista`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `telefonoespecialista` ( - `telefono` varchar(20) NOT NULL, - `especialistas_id_especialista` int(11) NOT NULL, - PRIMARY KEY (`telefono`,`especialistas_id_especialista`), - KEY `fk_telefonoEspecialista_especialistas1_idx` (`especialistas_id_especialista`), - CONSTRAINT `fk_telefonoEspecialista_especialistas1` FOREIGN KEY (`especialistas_id_especialista`) REFERENCES `especialistas` (`id_especialista`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `telefonoespecialista` --- - -LOCK TABLES `telefonoespecialista` WRITE; -/*!40000 ALTER TABLE `telefonoespecialista` DISABLE KEYS */; -/*!40000 ALTER TABLE `telefonoespecialista` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `telefonofarmacia` --- - -DROP TABLE IF EXISTS `telefonofarmacia`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `telefonofarmacia` ( - `telefono` varchar(20) NOT NULL, - `farmacia_nombre` int(11) NOT NULL, - PRIMARY KEY (`telefono`,`farmacia_nombre`), - KEY `fk_telefonoFarmacia_farmacia1_idx` (`farmacia_nombre`), - CONSTRAINT `fk_telefonoFarmacia_farmacia1` FOREIGN KEY (`farmacia_nombre`) REFERENCES `farmacia` (`nombre`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `telefonofarmacia` --- - -LOCK TABLES `telefonofarmacia` WRITE; -/*!40000 ALTER TABLE `telefonofarmacia` DISABLE KEYS */; -/*!40000 ALTER TABLE `telefonofarmacia` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `usuarios` --- - -DROP TABLE IF EXISTS `usuarios`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `usuarios` ( - `idusuario` int(11) NOT NULL AUTO_INCREMENT, - `nombre` varchar(45) DEFAULT NULL, - `foto` varchar(40) DEFAULT NULL, - `contrasena` varchar(45) DEFAULT NULL, - `email` varchar(45) DEFAULT NULL, - PRIMARY KEY (`idusuario`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `usuarios` --- - -LOCK TABLES `usuarios` WRITE; -/*!40000 ALTER TABLE `usuarios` DISABLE KEYS */; -INSERT INTO `usuarios` VALUES (1,'Erick','fotoerick.jpg','farmautomatico',NULL),(2,'Jorge','fotojorge.jpg','farmautomatico',NULL); -/*!40000 ALTER TABLE `usuarios` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `usuarios_comenta_remedio` --- - -DROP TABLE IF EXISTS `usuarios_comenta_remedio`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `usuarios_comenta_remedio` ( - `idcomentarios` int(11) NOT NULL AUTO_INCREMENT, - `remedios_nombre` varchar(100) NOT NULL, - `usuario_idusuario` int(11) NOT NULL, - `comentario` varchar(500) DEFAULT NULL, - `fecha_comentario` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY (`idcomentarios`,`remedios_nombre`,`usuario_idusuario`), - KEY `fk_remedios_has_usuario_usuario1_idx` (`usuario_idusuario`), - KEY `fk_remedios_comenta_usuarios_remedios1_idx` (`remedios_nombre`), - CONSTRAINT `fk_remedios_comenta_usuarios_remedios1` FOREIGN KEY (`remedios_nombre`) REFERENCES `remedios` (`nombre`) ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT `fk_remedios_has_usuario_usuario1` FOREIGN KEY (`usuario_idusuario`) REFERENCES `usuarios` (`idusuario`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `usuarios_comenta_remedio` --- - -LOCK TABLES `usuarios_comenta_remedio` WRITE; -/*!40000 ALTER TABLE `usuarios_comenta_remedio` DISABLE KEYS */; -INSERT INTO `usuarios_comenta_remedio` VALUES (1,'Loratadina',1,'Este es mi primer comentario en loratadina','2015-09-24 23:33:00'),(2,'Omeprazol',1,'Este es mi primer comentario, ingresado desde a BD','2015-09-24 23:33:00'),(3,'Omeprazol',2,'Este es mi primer comentario aburrido','2015-09-24 23:33:00'),(4,'Loratadina',2,'ingresado desde la consola','2015-09-24 23:33:00'),(5,'Omeprazol',1,'Ingrese su comentario','2015-09-24 23:33:00'),(6,'Omeprazol',1,'Ingrese su comentario','2015-09-24 23:33:00'),(7,'Omeprazol',1,'Ingrese su comentario','2015-09-24 23:33:00'),(8,'Loratadina',2,'Blablabla ingresado desde la página','2015-09-24 23:33:00'),(9,'Loratadina',2,'Blablabla ingresado desde la página','2015-09-24 23:33:00'); -/*!40000 ALTER TABLE `usuarios_comenta_remedio` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2015-09-24 23:33:41 diff --git a/otros_leer/farmautomaticov2.sql b/otros_leer/farmautomaticov2.sql deleted file mode 100644 index 306945f..0000000 --- a/otros_leer/farmautomaticov2.sql +++ /dev/null @@ -1,378 +0,0 @@ --- MySQL dump 10.13 Distrib 5.6.26, for Win64 (x86_64) --- --- Host: localhost Database: farmautomaticov2 --- ------------------------------------------------------ --- Server version 5.6.26-log - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `centrosmedicos` --- - -DROP TABLE IF EXISTS `centrosmedicos`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `centrosmedicos` ( - `idCentrosMedicos` int(11) NOT NULL AUTO_INCREMENT, - `nombre` varchar(100) DEFAULT NULL, - `comunas_idcomunas` int(11) NOT NULL, - `direccion` varchar(100) DEFAULT NULL, - `esPublico` tinyint(1) DEFAULT NULL, - PRIMARY KEY (`idCentrosMedicos`), - KEY `fk_CentrosMedicos_comunas1_idx` (`comunas_idcomunas`), - CONSTRAINT `fk_CentrosMedicos_comunas1` FOREIGN KEY (`comunas_idcomunas`) REFERENCES `comunas` (`idcomunas`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `centrosmedicos` --- - -LOCK TABLES `centrosmedicos` WRITE; -/*!40000 ALTER TABLE `centrosmedicos` DISABLE KEYS */; -INSERT INTO `centrosmedicos` VALUES (1,'ACHS ACONCAGUA - SEDE CABILDO',48,'Humeres 371',0),(2,'ACHS ACONCAGUA - SEDE LA LIGUA',59,'Portales 746',0),(3,'ACHS ACONCAGUA - SEDE LOS ANDES',66,'Av. Argentina 50',0),(4,'ACHS ACONCAGUA - SEDE SAN FELIPE',60,'San Martin 120',0),(5,'ACHS SAN ANTONIO - SEDE SAN ANTONIO',42,'Barros Luco 1575',0),(6,'ACHS VALPARAISO - SEDE VALPARAISO',34,'Edwards 150',0),(7,'ACHS VIÑA DEL MAR - SEDE LA CALERA',50,'Avenida Latorre 98',0),(8,'ACHS VIÑA DEL MAR - SEDE VIÑA DEL MAR',37,'7 Norte 550',0),(9,'ASOMEL ASOCIACION DE MEDICOS LTDA',34,'Colon 2020',0),(10,'ASOMEL DE REÑACA',37,'Angamos 185 Of. 21',0); -/*!40000 ALTER TABLE `centrosmedicos` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `comunas` --- - -DROP TABLE IF EXISTS `comunas`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `comunas` ( - `idcomunas` int(11) NOT NULL, - `nombre` varchar(255) DEFAULT NULL, - `regiones_idregiones` int(11) NOT NULL, - PRIMARY KEY (`idcomunas`), - KEY `fk_comunas_regiones1_idx` (`regiones_idregiones`), - CONSTRAINT `fk_comunas_regiones1` FOREIGN KEY (`regiones_idregiones`) REFERENCES `regiones` (`idregiones`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `comunas` --- - -LOCK TABLES `comunas` WRITE; -/*!40000 ALTER TABLE `comunas` DISABLE KEYS */; -INSERT INTO `comunas` VALUES (1,'ARICA',15),(2,'IQUIQUE',1),(3,'HUARA',1),(4,'PICA',1),(5,'POZO ALMONTE',1),(6,'TOCOPILLA',2),(7,'ANTOFAGASTA',2),(8,'MEJILLONES',2),(9,'TALTAL',2),(10,'CALAMA',2),(11,'CHAÑARAL',3),(12,'DIEGO DE ALMAGRO',3),(13,'COPIAPO',3),(14,'CALDERA',3),(15,'TIERRA AMARILLA',3),(16,'VALLENAR',3),(17,'FREIRINA',3),(18,'HUASCO',3),(19,'LA SERENA',4),(20,'LA HIGUERA',4),(21,'COQUIMBO',4),(22,'ANDACOLLO',4),(23,'VICUÑA',4),(24,'PAIHUANO',4),(25,'OVALLE',4),(26,'MONTE PATRIA',4),(27,'PUNITAQUI',4),(28,'RIO HURTADO',4),(29,'COMBARBALA',4),(30,'ILLAPEL',4),(31,'CANELA',4),(32,'SALAMANCA',4),(33,'LOS VILOS',4),(34,'VALPARAISO',5),(35,'QUINTERO',5),(36,'PUCHUNCAVI',5),(37,'VIÑA DEL MAR',5),(38,'QUILPUE',5),(39,'VILLA ALEMANA',5),(40,'CASABLANCA',5),(41,'ISLA DE PASCUA',5),(42,'SAN ANTONIO',5),(43,'SANTO DOMINGO',5),(44,'ALGARROBO',5),(45,'EL QUISCO',5),(46,'CARTAGENA',5),(47,'EL TABO',5),(48,'QUILLOTA',5),(49,'LA CRUZ',5),(50,'LA CALERA',5),(51,'HIJUELAS',5),(52,'NOGALES',5),(53,'LIMACHE',5),(54,'OLMUE',5),(55,'PETORCA',5),(56,'CABILDO',5),(57,'PAPUDO',5),(58,'ZAPALLAR',5),(59,'LA LIGUA',5),(60,'SAN FELIPE',5),(61,'PUTAENDO',5),(62,'PANQUEHUE',5),(63,'CATEMU',5),(64,'SANTA MARIA',5),(65,'LLAY LLAY',5),(66,'LOS ANDES',5),(67,'CALLE LARGA',5),(68,'RINCONADA',5),(69,'SAN ESTEBAN',5),(70,'SANTIAGO CENTRO',13),(71,'LAS CONDES',13),(72,'PROVIDENCIA',13),(73,'SANTIAGO OESTE',13),(75,'CONCHALI',13),(76,'COLINA',13),(77,'RENCA',13),(78,'LAMPA',13),(79,'QUILICURA',13),(80,'TIL-TIL',13),(81,'QUINTA NORMAL',13),(82,'PUDAHUEL',13),(83,'CURACAVI',13),(84,'SANTIAGO SUR',13),(85,'PEÑAFLOR',13),(86,'TALAGANTE',13),(87,'ISLA DE MAIPO',13),(88,'MELIPILLA',13),(89,'EL MONTE',13),(90,'MARIA PINTO',13),(91,'ÑUÑOA',13),(92,'LA REINA',13),(93,'LA FLORIDA',13),(94,'MAIPU',13),(95,'SAN MIGUEL',13),(96,'LA CISTERNA',13),(97,'LA GRANJA',13),(98,'SAN BERNARDO',13),(99,'CALERA DE TANGO',13),(100,'PUENTE ALTO',13),(101,'PIRQUE',13),(102,'SAN JOSE DE MAIPO',13),(103,'BUIN',13),(104,'PAINE',13),(105,'RANCAGUA',6),(106,'MACHALI',6),(107,'GRANEROS',6),(108,'SAN PEDRO',13),(109,'ALHUE',13),(110,'CODEGUA',6),(111,'SAN FRANCISCO DE MOSTAZAL',6),(112,'DOÑIHUE',6),(113,'COLTAUCO',6),(114,'COINCO',6),(115,'PEUMO',6),(116,'LAS CABRAS',6),(117,'SAN VICENTE',6),(118,'PICHIDEGUA',6),(119,'REQUINOA',6),(120,'OLIVAR',6),(121,'RENGO',6),(122,'MALLOA',6),(123,'QUINTA DE TILCOCO',6),(124,'SAN FERNANDO',6),(125,'CHIMBARONGO',6),(126,'NANCAGUA',6),(127,'PLACILLA',6),(128,'SANTA CRUZ',6),(129,'LOLOL',6),(130,'PALMILLA',6),(131,'PERALILLO',6),(132,'CHEPICA',6),(133,'PAREDONES',6),(134,'MARCHIGUE',6),(135,'PUMANQUE',6),(136,'LITUECHE',6),(137,'PICHILEMU',6),(138,'NAVIDAD',6),(139,'LA ESTRELLA',6),(140,'CURICO',7),(141,'ROMERAL',7),(142,'TENO',7),(143,'RAUCO',7),(144,'HUALA?âÔÇÿE',7),(145,'LICANTEN',7),(146,'VICHUQUEN',7),(147,'MOLINA',7),(148,'SAGRADA FAMILIA',7),(149,'RIO CLARO',7),(150,'TALCA',7),(151,'SAN CLEMENTE',7),(152,'PELARCO',7),(153,'PENCAHUE',7),(154,'MAULE',7),(155,'CUREPTO',7),(156,'SAN JAVIER',7),(157,'CONSTITUCION',7),(158,'EMPEDRADO',7),(159,'LINARES',7),(160,'YERBAS BUENAS',7),(161,'COLBUN',7),(162,'LONGAVI',7),(163,'VILLA ALEGRE',7),(164,'PARRAL',7),(165,'RETIRO',7),(166,'CAUQUENES',7),(167,'CHANCO',7),(168,'CHILLAN',8),(169,'PINTO',8),(170,'COIHUECO',8),(171,'PORTEZUELO',8),(172,'QUIRIHUE',8),(173,'TREHUACO',8),(174,'NINHUE',8),(175,'COBQUECURA',8),(176,'SAN CARLOS',8),(177,'SAN GREGORIO DE ÑIQUEN',8),(178,'SAN FABIAN',8),(179,'SAN NICOLAS',8),(180,'BULNES',8),(181,'SAN IGNACIO',8),(182,'QUILLON',8),(183,'YUNGAY',8),(184,'PEMUCO',8),(185,'EL CARMEN',8),(186,'COELEMU',8),(187,'RANQUIL',8),(188,'CONCEPCION',8),(189,'TALCAHUANO',8),(190,'TOME',8),(191,'PENCO',8),(192,'HUALQUI',8),(193,'FLORIDA',8),(194,'CORONEL',8),(195,'LOTA',8),(196,'SANTA JUANA',8),(197,'CURANILAHUE',8),(198,'ARAUCO',8),(199,'LEBU',8),(200,'LOS ALAMOS',8),(201,'CAÑETE',8),(202,'CONTULMO',8),(203,'TIRUA',8),(204,'LOS ANGELES',8),(205,'SANTA BARBARA',8),(206,'QUILLECO',8),(207,'YUMBEL',8),(208,'CABRERO',8),(209,'TUCAPEL',8),(210,'LAJA',8),(211,'SAN ROSENDO',8),(212,'NACIMIENTO',8),(213,'NEGRETE',8),(214,'MULCHEN',8),(215,'QUILACO',8),(216,'ANGOL',9),(217,'PUREN',9),(218,'LOS SAUCES',9),(219,'RENAICO',9),(220,'COLLIPULLI',9),(221,'ERCILLA',9),(222,'TRAIGUEN',9),(223,'LUMACO',9),(224,'VICTORIA',9),(225,'CURACAUTIN',9),(226,'LONQUIMAY',9),(227,'TEMUCO',9),(228,'VILCUN',9),(229,'FREIRE',9),(230,'CUNCO',9),(231,'LAUTARO',9),(232,'GALVARINO',9),(233,'PERQUENCO',9),(234,'NUEVA IMPERIAL',9),(235,'CARAHUE',9),(236,'PUERTO SAAVEDRA',9),(237,'PITRUFQUEN',9),(238,'GORBEA',9),(239,'TOLTEN',9),(240,'LONCOCHE',9),(241,'VILLARRICA',9),(242,'PUCON',9),(243,'VALDIVIA',14),(244,'CORRAL',14),(245,'MARIQUINA',14),(246,'MAFIL',14),(247,'LOS LAGOS',14),(248,'FUTRONO',14),(249,'LANCO',14),(250,'PANGUIPULLI',14),(251,'LA UNION',14),(252,'PAILLACO',14),(253,'RIO BUENO',14),(254,'LAGO RANCO',14),(255,'OSORNO',10),(256,'PUYEHUE',10),(257,'SAN PABLO',10),(258,'PUERTO OCTAY',10),(259,'RIO NEGRO',10),(260,'PURRANQUE',10),(261,'PUERTO MONTT',10),(262,'COCHAMO',10),(263,'MAULLIN',10),(264,'LOS MUERMOS',10),(265,'CALBUCO',10),(266,'PUERTO VARAS',10),(267,'LLANQUIHUE',10),(268,'FRESIA',10),(269,'FRUTILLAR',10),(270,'CASTRO',10),(271,'CHONCHI',10),(272,'QUEILEN',10),(273,'QUELLON',10),(274,'PUQUELDON',10),(275,'QUINCHAO',10),(276,'CURACO DE VELEZ',10),(277,'ANCUD',10),(278,'QUEMCHI',10),(279,'DALCAHUE',10),(280,'CHAITEN',10),(281,'FUTALEUFU',10),(282,'PALENA',10),(284,'COYHAIQUE',11),(285,'AYSEN',11),(286,'CISNES',11),(287,'CHILE CHICO',11),(288,'RIO IBAÑEZ',11),(289,'COCHRANE',11),(290,'PUNTA ARENAS',12),(291,'PUERTO NATALES',12),(292,'PORVENIR',12),(293,'GENERAL LAGOS',15),(294,'PUTRE',15),(295,'CAMARONES',15),(296,'CAMINA',1),(297,'COLCHANE',1),(298,'MARIA ELENA',2),(299,'SIERRA GORDA',2),(300,'OLLAGÜE',2),(301,'SAN PEDRO DE ATACAMA',2),(302,'ALTO DEL CARMEN',3),(303,'ANTUCO',8),(304,'MELIPEUCO',9),(305,'CURARREHUE',9),(306,'TEODORO SCHMIDT',9),(307,'SAN JUAN DE LA COSTA',10),(308,'HUALAIHUE',10),(309,'GUAITECAS',11),(310,'O\'HIGGINS',11),(311,'TORTEL',11),(312,'LAGO VERDE',11),(313,'TORRES DEL PAINE',12),(314,'RIO VERDE',12),(315,'SAN GREGORIO',12),(316,'LAGUNA BLANCA',12),(317,'PRIMAVERA',12),(318,'TIMAUKEL',12),(319,'NAVARINO',12),(320,'PELLUHUE',7),(321,'JUAN FERNANDEZ',5),(322,'PEÑALOLEN',13),(323,'MACUL',13),(324,'CERRO NAVIA',13),(325,'LO PRADO',13),(326,'SAN RAMON',13),(327,'LA PINTANA',13),(328,'ESTACION CENTRAL',13),(329,'RECOLETA',13),(330,'INDEPENDENCIA',13),(331,'VITACURA',13),(332,'LO BARNECHEA',13),(333,'CERRILLOS',13),(334,'HUECHURABA',13),(335,'SAN JOAQUIN',13),(336,'PEDRO AGUIRRE CERDA',13),(337,'LO ESPEJO',13),(338,'EL BOSQUE',13),(339,'PADRE HURTADO',13),(340,'CONCON',5),(341,'SAN RAFAEL',7),(342,'CHILLAN VIEJO',8),(343,'SAN PEDRO DE LA PAZ',8),(344,'CHIGUAYANTE',8),(345,'PADRE LAS CASAS',9),(346,'ALTO HOSPICIO',1); -/*!40000 ALTER TABLE `comunas` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `enfermedad` --- - -DROP TABLE IF EXISTS `enfermedad`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `enfermedad` ( - `nombre_enfermedad` varchar(45) NOT NULL, - PRIMARY KEY (`nombre_enfermedad`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `enfermedad` --- - -LOCK TABLES `enfermedad` WRITE; -/*!40000 ALTER TABLE `enfermedad` DISABLE KEYS */; -/*!40000 ALTER TABLE `enfermedad` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `enfermedades_tiene_especialistas` --- - -DROP TABLE IF EXISTS `enfermedades_tiene_especialistas`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `enfermedades_tiene_especialistas` ( - `enfermedad_nombre_enfermedad` varchar(45) NOT NULL, - `especialistas_id_especialista` int(11) NOT NULL, - PRIMARY KEY (`enfermedad_nombre_enfermedad`,`especialistas_id_especialista`), - KEY `fk_enfermedades_tiene_especialistas_especialistas1_idx` (`especialistas_id_especialista`), - CONSTRAINT `fk_enfermedades_tiene_especialistas_enfermedad1` FOREIGN KEY (`enfermedad_nombre_enfermedad`) REFERENCES `enfermedad` (`nombre_enfermedad`) ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT `fk_enfermedades_tiene_especialistas_especialistas1` FOREIGN KEY (`especialistas_id_especialista`) REFERENCES `especialistas` (`id_especialista`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `enfermedades_tiene_especialistas` --- - -LOCK TABLES `enfermedades_tiene_especialistas` WRITE; -/*!40000 ALTER TABLE `enfermedades_tiene_especialistas` DISABLE KEYS */; -/*!40000 ALTER TABLE `enfermedades_tiene_especialistas` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `especialistas` --- - -DROP TABLE IF EXISTS `especialistas`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `especialistas` ( - `id_especialista` int(11) NOT NULL, - `nombre_especialista` varchar(45) DEFAULT NULL, - `contraseña` varchar(45) DEFAULT NULL, - `foto` varchar(50) DEFAULT NULL, - `email` varchar(45) DEFAULT NULL, - `especialidad` varchar(45) DEFAULT NULL, - `direccion` varchar(100) DEFAULT NULL, - `comunas_idcomunas` int(11) NOT NULL, - PRIMARY KEY (`id_especialista`), - KEY `fk_especialistas_comunas1_idx` (`comunas_idcomunas`), - CONSTRAINT `fk_especialistas_comunas1` FOREIGN KEY (`comunas_idcomunas`) REFERENCES `comunas` (`idcomunas`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `especialistas` --- - -LOCK TABLES `especialistas` WRITE; -/*!40000 ALTER TABLE `especialistas` DISABLE KEYS */; -/*!40000 ALTER TABLE `especialistas` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `farmacia` --- - -DROP TABLE IF EXISTS `farmacia`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `farmacia` ( - `nombre` int(11) NOT NULL, - `turno` varchar(45) DEFAULT NULL, - `comunas_idcomunas` int(11) NOT NULL, - `coordenada1` int(11) DEFAULT NULL, - `coordenada2` int(11) DEFAULT NULL, - `hora_atencion` varchar(45) DEFAULT NULL, - `direccion` varchar(100) DEFAULT NULL, - PRIMARY KEY (`nombre`), - KEY `fk_farmacia_comunas1_idx` (`comunas_idcomunas`), - CONSTRAINT `fk_farmacia_comunas1` FOREIGN KEY (`comunas_idcomunas`) REFERENCES `comunas` (`idcomunas`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `farmacia` --- - -LOCK TABLES `farmacia` WRITE; -/*!40000 ALTER TABLE `farmacia` DISABLE KEYS */; -/*!40000 ALTER TABLE `farmacia` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `regiones` --- - -DROP TABLE IF EXISTS `regiones`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `regiones` ( - `idregiones` int(11) NOT NULL, - `nombre` varchar(50) DEFAULT NULL, - PRIMARY KEY (`idregiones`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `regiones` --- - -LOCK TABLES `regiones` WRITE; -/*!40000 ALTER TABLE `regiones` DISABLE KEYS */; -INSERT INTO `regiones` VALUES (1,'Tarapacá'),(2,'Antofagasta'),(3,'Atacama'),(4,'Coquimbo'),(5,'Valparaíso'),(6,'Región del Libertador Gral. Bernardo O\'Higgins'),(7,'Región del Maule'),(8,'Región del Biobío'),(9,'Región de la Araucanía'),(10,'Región de Los Lagos'),(11,'Región Aisén del Gral. Carlos Ibáñez del Campo'),(12,'Región de Magallanes y de la Antártica Chilena'),(13,'Región Metropolitana de Santiago'),(14,'Región de Los Ríos'),(15,'Arica y Parinacota'); -/*!40000 ALTER TABLE `regiones` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `remedios` --- - -DROP TABLE IF EXISTS `remedios`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `remedios` ( - `nombre` varchar(100) NOT NULL, - `indicaciones` text, - `contraindicaciones` text, - `conservacion` text, - `interacciones` text, - `otrosdatos` text, - PRIMARY KEY (`nombre`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `remedios` --- - -LOCK TABLES `remedios` WRITE; -/*!40000 ALTER TABLE `remedios` DISABLE KEYS */; -INSERT INTO `remedios` VALUES ('Loratadina','para la alergia','no se','En lugar Fresco y seco','ninguna',NULL),('Omeprazol','Para el reflujo','No comer por un rato','En lugar Fresco y seco','Con la comida','ninguno'); -/*!40000 ALTER TABLE `remedios` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `telefonocm` --- - -DROP TABLE IF EXISTS `telefonocm`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `telefonocm` ( - `telefono` varchar(20) NOT NULL, - `CentrosMedicos_idCentrosMedicos` int(11) NOT NULL, - PRIMARY KEY (`telefono`,`CentrosMedicos_idCentrosMedicos`), - KEY `fk_telefonoCM_CentrosMedicos_idx` (`CentrosMedicos_idCentrosMedicos`), - CONSTRAINT `fk_telefonoCM_CentrosMedicos` FOREIGN KEY (`CentrosMedicos_idCentrosMedicos`) REFERENCES `centrosmedicos` (`idCentrosMedicos`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `telefonocm` --- - -LOCK TABLES `telefonocm` WRITE; -/*!40000 ALTER TABLE `telefonocm` DISABLE KEYS */; -INSERT INTO `telefonocm` VALUES ('2761551',1),('2711265',2),('2422797',3),('2511482',4),('2261000',5),('2206210',6),('2221686',7),('2657700',8),('2217194',9),('(32) 2890133',10),('2685758',10); -/*!40000 ALTER TABLE `telefonocm` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `telefonoespecialista` --- - -DROP TABLE IF EXISTS `telefonoespecialista`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `telefonoespecialista` ( - `telefono` varchar(20) NOT NULL, - `especialistas_id_especialista` int(11) NOT NULL, - PRIMARY KEY (`telefono`,`especialistas_id_especialista`), - KEY `fk_telefonoEspecialista_especialistas1_idx` (`especialistas_id_especialista`), - CONSTRAINT `fk_telefonoEspecialista_especialistas1` FOREIGN KEY (`especialistas_id_especialista`) REFERENCES `especialistas` (`id_especialista`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `telefonoespecialista` --- - -LOCK TABLES `telefonoespecialista` WRITE; -/*!40000 ALTER TABLE `telefonoespecialista` DISABLE KEYS */; -/*!40000 ALTER TABLE `telefonoespecialista` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `telefonofarmacia` --- - -DROP TABLE IF EXISTS `telefonofarmacia`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `telefonofarmacia` ( - `telefono` varchar(20) NOT NULL, - `farmacia_nombre` int(11) NOT NULL, - PRIMARY KEY (`telefono`,`farmacia_nombre`), - KEY `fk_telefonoFarmacia_farmacia1_idx` (`farmacia_nombre`), - CONSTRAINT `fk_telefonoFarmacia_farmacia1` FOREIGN KEY (`farmacia_nombre`) REFERENCES `farmacia` (`nombre`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `telefonofarmacia` --- - -LOCK TABLES `telefonofarmacia` WRITE; -/*!40000 ALTER TABLE `telefonofarmacia` DISABLE KEYS */; -/*!40000 ALTER TABLE `telefonofarmacia` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `usuarios` --- - -DROP TABLE IF EXISTS `usuarios`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `usuarios` ( - `idusuario` int(11) NOT NULL AUTO_INCREMENT, - `nombre` varchar(45) DEFAULT NULL, - `foto` varchar(40) DEFAULT NULL, - `contrasena` varchar(45) DEFAULT NULL, - `email` varchar(45) DEFAULT NULL, - PRIMARY KEY (`idusuario`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `usuarios` --- - -LOCK TABLES `usuarios` WRITE; -/*!40000 ALTER TABLE `usuarios` DISABLE KEYS */; -INSERT INTO `usuarios` VALUES (1,'Erick','fotoerick.jpg','farmautomatico',NULL),(2,'Jorge','fotojorge.jpg','farmautomatico',NULL); -/*!40000 ALTER TABLE `usuarios` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `usuarios_comenta_remedio` --- - -DROP TABLE IF EXISTS `usuarios_comenta_remedio`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `usuarios_comenta_remedio` ( - `idcomentarios` int(11) NOT NULL AUTO_INCREMENT, - `remedios_nombre` varchar(100) NOT NULL, - `usuario_idusuario` int(11) NOT NULL, - `comentario` varchar(500) DEFAULT NULL, - `fecha_comentario` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY (`idcomentarios`,`remedios_nombre`,`usuario_idusuario`), - KEY `fk_remedios_has_usuario_usuario1_idx` (`usuario_idusuario`), - KEY `fk_remedios_comenta_usuarios_remedios1_idx` (`remedios_nombre`), - CONSTRAINT `fk_remedios_comenta_usuarios_remedios1` FOREIGN KEY (`remedios_nombre`) REFERENCES `remedios` (`nombre`) ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT `fk_remedios_has_usuario_usuario1` FOREIGN KEY (`usuario_idusuario`) REFERENCES `usuarios` (`idusuario`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `usuarios_comenta_remedio` --- - -LOCK TABLES `usuarios_comenta_remedio` WRITE; -/*!40000 ALTER TABLE `usuarios_comenta_remedio` DISABLE KEYS */; -INSERT INTO `usuarios_comenta_remedio` VALUES (1,'Loratadina',1,'Este es mi primer comentario en loratadina','2015-09-24 23:33:00'),(2,'Omeprazol',1,'Este es mi primer comentario, ingresado desde a BD','2015-09-24 23:33:00'),(3,'Omeprazol',2,'Este es mi primer comentario aburrido','2015-09-24 23:33:00'),(4,'Loratadina',2,'ingresado desde la consola','2015-09-24 23:33:00'),(5,'Omeprazol',1,'Ingrese su comentario','2015-09-24 23:33:00'),(6,'Omeprazol',1,'Ingrese su comentario','2015-09-24 23:33:00'),(7,'Omeprazol',1,'Ingrese su comentario','2015-09-24 23:33:00'),(8,'Loratadina',2,'Blablabla ingresado desde la página','2015-09-24 23:33:00'),(9,'Loratadina',2,'Blablabla ingresado desde la página','2015-09-24 23:33:00'); -/*!40000 ALTER TABLE `usuarios_comenta_remedio` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2015-09-24 23:33:41 diff --git a/otros_leer/inserts enfermedad.txt b/otros_leer/inserts enfermedad.txt deleted file mode 100644 index 2dd4f0e..0000000 --- a/otros_leer/inserts enfermedad.txt +++ /dev/null @@ -1,24 +0,0 @@ -insert into enfermedad values('Resfriado'); -insert into enfermedad values('Gripe'); -insert into enfermedad values('Hipertensión'); -insert into enfermedad values('Acné'); -insert into enfermedad values('Depresión'); -insert into enfermedad values('Diabetes'); -insert into enfermedad values('Hiper Tiroidismo'); -insert into enfermedad values('Hipo Tiroidismo'); -insert into enfermedad values('Pancreatitis'); -insert into enfermedad values('Miopía'); -insert into enfermedad values('Parálisis cerebral'); -insert into enfermedad values('Bronquitis'); -insert into enfermedad values('Miomatosis uterina'); -insert into enfermedad values('Meningitis'); -insert into enfermedad values('Herpes'); -insert into enfermedad values('Síndrome de Raynaud'); -insert into enfermedad values('Cirrosis'); -insert into enfermedad values('Cataratas'); -insert into enfermedad values('Celiaquía'); -insert into enfermedad values('Albinismo'); -insert into enfermedad values('Alergia'); -insert into enfermedad values('Alcoholismo'); -insert into enfermedad values('Osteoporosis'); -insert into enfermedad values('SIDA'); \ No newline at end of file diff --git a/package.json b/package.json index 7157ca4..7295eb3 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,9 @@ "glob": "~5.0.3", "sequelize": "~2.1.0", "mysql": "~2.6.1", - "ejs": "~2.3.1" + "ejs": "~2.3.1", + "cookie-session": "~1.2.0", + "connect-multiparty": "~2.0.0" }, "devDependencies": { "gulp": "~3.8.10", diff --git a/public/imgsusuarios/Alguno.jpg b/public/imgsusuarios/Alguno.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4d7313dd564f0c77a156254c6819b8b4a1858e8d GIT binary patch literal 58857 zcmbTdXH-*P_%#>|MUW!RA0-s25(McIAT*@}>Aggymrz3|2#Sb6451@L2qHZpARQDG zLT@UU~RUjC1VkMBR8 zD^~=BBt--S#X(oDh+Y>Jmy(tN%kYcHDac(@kh~^y?SC4fV`5@rxyZuJ!oqz`;EKSt z|Ig)L7l8BP1xKJLkWLJ6fs+o%N%!v~K;#@G1Ks~Bfd8}5T>zfnFVjV4mP_XqnlA$` z&;fxL=z$Cj^z`SoR^ICuUDWU8h`k0yJ z%71+P0+LeF*JQvds%kgYAsV-C8yFfH!%S>!?d%;Kot!;9y}W&V{SaZ{5s^{RF{s2R zNl%kgQqfu2Ik|by^9yjVO3TVCDyymq4UJ9BEv;?sZ$9*V?Cm4>4-8IBPEAv0WSX|2p~oKe*@s!2b>F{P@3t{XcMVp5wYePY&{U2!m3)%lWV2}TQ zA^X38{olCe0IWc|^OpzY1n2tuoI-~rbityDRBlr=P{`l>;!R<2Il(h=Ypx|w zoJQ`9wyX5`RLONG)(ZRZECQu&%WkNhQ_rpt2fl^jK||2U2An%IrR>*}_v>ohOU=Ylfa4 z*Lkpq*ecZ;Ilo#E7;l68wh!q12LK;ceGeH!>UHsSs{aE>;W~;DQIr;C!R#@UOCaPO ztgq~29cOw4A60k7;=0b;)%G4VtD7ap%>e3BZQm@7QdP2SyW4*1|FkS9_=<1og*e2* z4e~F0xV1;3eHNT$x!QCCGZO99Eusp4>Xw=4=qE!T*6aB6RxxU&`u0ZJt@6ian;e}^ zUosu@W+WZXTdjFkxa{2~4O^gLhQ9YOsZ4A#T2O7Bmp#{2FTukwvPv|D1(<^!7pNXYF7@w7 z;Dc8+;v)C_AJ>?tDBIuE0_{4uJ&$@o(F(R-&T2zUYPgA`<}5YWnn~Y2>_ykQGb1N) zpPq(g$PSTiZ36EC6vUx!fdM)ps+S4>h9S2!$H@GgJ;x zr6-C(!xqlwkIt&w*Vq36W-R-A-aYIiesoHPB3#QJG1r_}%O8VBm5ZIp9dMB zU-ozB63M8|SKq_zQjVZA|j*kPyda;@*UYhL!Jlv;_86!K$sQFbwI(xkxV z_mE!2ZDuB5p@Szy zQy!Pb`W|7lJi0blQcTX>AUIy8``325Nv#Fa;ug7;1S)?u@tR60WREk@twiUDzz=H5 z(rl!depV7aiidbF6qmC}ae!)`%&0}ZP}#YmjhBpil9gm;HR>M ztQi@q1fIO$xe*7p3_jPra8p-35~}@)-F3Ii%uR&Y37Fno7<2oBa&k>)}K~hzb0Ux$Va*p z63X$-DUZxIK)UA0#TL_C8whlsFMin98o;zDL}Z-I0*r*K=>lXw^ln61-3-+2-*#>x zUvfMed8GC`is-McQCz9|)%KZBDU&DSqy!~gB$KAo>D~G1aIDke=4}e%ncS2bTbFn> zuk{N23^lEzMWtB|DfB5j8|GrZX}&D#?DZa9L|PBYAc$8-^~6O;krPQ+lPno{r}xOd z@N_vc?cJfiMf|(m%}<{|cC57V#k#_={@FkicA_jBWs-|+nc;R z?n)kria6&C^~p*~ZSB~LJr^%thc}c4n%U`p%|@q|Q8AM@xqGEiCNjV%I$77F%BK<$ zRlE3U70$waJYq2uU-}$b=~i!_#m;E!UHHi}p;aU;>xt)NL{+8jlv!;ZCe8Q?qE@~ZiURNGD_p1`j4GH%(+*z2^fqE@%G>zGDLG@g z5(4+gR)6j?-8Gxx=c{q~9Lj;JN8W%_%!byr4>!J6gX}iprJ;X_+BQ4(K`z<&!(!z< z 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 zUE0Qv_gH(AUB0ymS7HM%s^b;TO&Y#KG2Q5U*HV?1rfDW(#S~=pZ2MNNgx)~L=4H-E zBC8}NTjkCVt!ruVqqq*BA6m{*HjHizizy~94^TaGQ9~nJ$+=J!U%sQRJDTVu&}1-) zt$7?A3ZW&jXMM_5*Qp(jde(gDl;Y81+VxCjJfD@mU=-t@?+)4b6{lbs37Xz;%EX3^ zh6pFI9`(vIJ+pz0xIIS)@c#e`+S8?k$c|?6nEmGC2kH$(qhjMLnt>AOu@CNV7nB`; z0DJvEtvcD({TWfVUat)c9ijbrJ^ujD6-M$hE@KYMwa@P4U*vwjr%I92dx0iabvQ|v zsrvf=06(n?B{ph7ZdwxP(kz3hDh@rXLruH6fyU)=wDRlI{scd*b1~oC$2$3&qqzPT z9HgV)(AKm!Lg}|{Xr~_MBk10rT8Y7@s76WXdJda#v#6ffg2V5}y9Yki(`omMaURJy zPv8U42efxI{p+z@|^XlT^kyvoCqZug>qVzfyu^6 zuJYF5ZeZHjB#uRA-&(0Bpr=wQ+|e?lQN{AJ&(_42zZJFy=rTNf^*-$rBIRf5!C(_OHtgv9mrBStB_v%*FMts;~w;a=gT7}8R?3y zL0s%2xDKNytuo>Tm3@B-#j?Bgt*dE){C#R%OlJhl4NFVhNeVqWS1YJk7@Y8W;}z-B z1#o!a)+VK=i84T?W6ZCH>W?~f!Re2!0APAn&ZA(+#e!BuicsK;dsIp{JlR3T>H)e? zU*7_wCmBE1qi5^QW6P+nNYV^v6%39yQyKX+1ISHWX@@YAN!v9}Ql!d;MS}ofsxI8t!8^v)sbNnJb_jcFPHh#W9?Ic zTr!cUinTJ1DXYaib*!7YEsKt62>hw^#;GKRPzdSGX59b_4%MY0;<9hwZhK<7XsfcD zvN5#=`A7%xu1iwjo-3limmu+6&ZQv1#eEJ68lGk*S1|6+UiFse=J)AZH%B?DJ2PKR zM?`ru)SBGLFc%63_eLt(Mo9&^KBl69IUI9W;*XJ@d(>5(g#0VuETPF>P^;8+Z`)Xrn`Byi2f1Yxf|)C*v}%f9=mH>R=8J@ zha`V9T;{EF7>R^ong0NZv&YiDx}0uy#d510?bFEeGc02+a58!d+3?MWmcm)&L%99K zKg`xcN0H`8NM`I$O3<>DtHuEUE;-02>0PNiSjKMb^t(w*C&~{88_!R|r)!~ZILo*9 z@r+gljQgS+i@WEr$*nbVrz{9;bluP6O)I08OH$ih0HyO9w|&Q&n@zZqMmtm$&sI_^ zpS;u-AXR2X9SJxm{Ajbe63Uxa;&=WK=VA|jf5NIUWXof#y19sg4{o?TR%^)wpo~U) zeEo;@s+S3QA`tRMp!8VOwm&RZWzCMEvj`Xu@5n-D@LJ-iz2kT-3%3!$23+uaYy?ym z_krC~N8CyIRdQJR^V+gn7lK7e7|S8sYw?oe^3cea==A zU9l+{2_t6%*k-)v#u|CLEDQl$jsSie*1H`aSKlVlJZLv%_l|Hsl|NLuv%hD9&xp9= zrPx`nnV4jb27a0L>s|JRC6$!R zu)`@Fd2+E{dti#W$~0A=wGxb~JF{cLni^WhjVeax91`RC8to!W=wjalR>Nq>%78yH zS(aC6kYuyAiC^y{pzG=zp%tLoot30aw(kN+PcexJ$o3tp%BeRwYIMdNt3s9LuXijZ zH(G}y_*-)S04l^DWy2A7A?x=H|L6YpROs4dZy|C_y zX(Z9vDOPD2PdLcq^Qg|Pw(eAx?QkGf5A*LLwS%07P#S64LaDxJ)71_1*( ztZ8jQd~H8BulUg2iiv_^0N|W@98$uvB!I5mcOKPh?h>SeF^;uRe69d0aqrTzdYdO> zyzsrmZUk&`(>|56s(5-Uh>X_54~*asz3p61hba<|n;zo5H%GWF5D${4gItnMGSJd) z>gSv4T3f{KvLMLd`x?QPGYo)`6e-|z$K&Z<&#UQ)IB66O$AkG-4XSB-fEz|}hT}D? zCT5wBZ$Iw5skX^%$X}&&y_2aiSj`7K3KPPGfo|y;O)$2Qi zW+^h2Twzadr}!GXC8=rL*pZ@DRty>zIa0%~vGg@R$om}_NzW)ckEKzNd2thLR%nRJ zM%@iak)tBDoQx2RlqZxv-lCS{*wl?!uJwKE(NFOYW(KZVNEO70O6UEqLH@NyCoVwB zq@#vXalicf)s4V@@i}3`4u|MRLTVb&cRO7!`be1zHuP`e70^2Ut_{dSw^9!^=bClz zlt+@;90I3<^scW=zAEZYJhtmZA4YRlr}mK**pfD2>ZFfOYclH$y*aLrQM8H2n1GGk z{I$;9#88vCH}j~R99eXxnlSGWj)JmoRg`AB8G@6^@9A0hFk~DGBF)Znd3J(NudP5Q z$-w5cZ!B4}fN}Jye`G1xis)LAcXH*dpoH>lPzD`Bd-8gDXCbLB!PkHU0}Hmyx`S4_?3|N z{AqHYejCHv< zd@bUU^r(%uCZ$&`(L5_0(}!wk>Gh{AeuB@R9uGBk)DlKI)ioQBdeE{Qio&b1 z9CtT#<>Y7cuER@F^6`r1H09)H9CWU$OxwnKSIg!Sx#{7N)LJLVFe^$C^Jn?iRji5! zdb%eYy4TFqi){8`v81F9YGgbNbgb2zj=XiNP)Zv-*DRpXWzgBB2PUH4GfJ)R&11?d z6O&CRiixBHsirgf9w<=~h)mp89-|=u^MmbI?ruVkxUPFsxyZoBrFUVew#ch1BNI@Y zt`0?W*OGOuEkbOPD-Pwi5-aL(lQ{HmU=M`b-) zIW1w{EsrXF%pP0Gy1TD^AwdOJ-Rv9yKTKsXIsO$*kwPyHLhASOMT{7;JyMd8>L=v@dps zRcV}%NiCnx*1GMX&n9--BrYJ|=M|5xJ646v&E>YvLF(7?Z%pYfZ>!piMqt%t?Wc{{Y}CHgZ{aJ^<=Ts3N&RaERfYc$c*6AJe%1R-}yPDxDgJ@HHSB!nz~Z)n}mRn7_Yt2YeMjl0O) z+?73jxTqG<(ni`($}$y)Cbfp8OG1tPtWM5WMUW`k%`wOy?vCGDY#DNw;Ys zc8)raTJ(FETX0s``*7nuIPYAxzo)TMh#Tf&PJ8#wdYE|GYH`$>Y~p-9l8mG_RgN~C z8twGEXxTE>?=o<99zJhe)()Meyl(kc3eCs8c6vlj<%Ri`S%yIC!0TGojnJVakt*5T z2?FfI4aeT?ME3JEWUyBW(UcBFXx!VZg?1~#>e=A%cAPsgK5AZj`b^8MC-cMwvOGg zS=|)wN|3^=C5YjB4}Yaj*X)_yi3sdRQR)p=i%w}(gE0;dQ|s$dn`c%r%AmOC0N|f> zKhmp5xtU|_$X|M)a7J(kKb<#F)zzcIBX7qUI3}pOgeNFZ`&@(iR1?SqLo$57-Up>^ zN;;X;dJsOOvPyTLSv^3(H0YgKzG-pn20u!xxMwa4sp=b%{vxMTjnr^K2fz5&ZH`pS zk;=)=?cDzW5dO7h6x_k`q#i*30PEIlF?mGfkiCaoRrt$b6vwG5e_T|%BGDxFs0O$fDAw!b?OaXNhD<`%7FFFRk%W@5r8|DJwHn4mZtGAuO(xZXH4h4XZfSd z;2>{Zxvfn=2HYLl8>k17n#Pzp1gk4Ad{B}vb7xLw-ZB*Z1$SBn;{X9X4%O!RY@0|q zBig#{BJ3-#J!=|@=Bepp)8W}XV|N4^&D1n<+lUzlii=9S`36r0x)^2NI^+?IRK_Ws z@@_2iODp5h{au1az(wThabpmHA1- z59dzq8G9DSYWMKi)fVZLN;2=@N~>x#W?a}0L?A;Le+(!8r^8?N(Y{$&M-sAi?QEf(8iAXfv9+GW9?kJZ8DuleCdtP5gO6 zd)G65g&gOt2aAY}nMK>JS98W{NdW}l)J^Y5;$%#4Y4M+0jr!A}&S;jyMuomft$QWu z&1Kq-neSUxeXGgENb97HOL%@zPh4WPY~amRvQT#9aa)#=3u7asM@+l`~t)}5@} z_32(7DxWdiN>)1id#vN0ed_c#0fFb-g54yxeEKcy(yl^r_Xkypo)C!Kq@o z+H+YSXy6k`_L1vcu8qyrL!^r9J?dni2RRkbL2-lErCAp|999ycscND&8sr>|^U|P} z=wq+vSqA9xbNba=i=qwzryM?{x~2Qeub2F5n!la5o@&JR4BhZ6I^dQE*EQ*3=<>6Y zwM&_IE=g>Y(x|fKvTFRuK&rcbW1f}mQj$pXrmo8S52Xch#ZQb>E;+7+E10wk!RMt~ ziHQQL3Ys&6?L?K)8#6)=z3eMW2^4zfvLbLmtMN$+F6MW0{nZ!)@ju~QRVg_g5S@)b zF?Q!T6m!%JFRO7>#rDpC$dCL-6vVH5FP_ehPIz2I$%>#CM?ZBs)@FDS1^xU=zu%pH*C1A`Wwk^zbp|x;pT(=8?y0FSm50ZgxCwtki~9-<1Wi z&O24@QbjieFU(M3K+$e(8xP?HL0ac5=;hMlZ~;h zbC)iHQcEyZ9H{C|S<)vjC=p}~=L#}^5_qnJu8d@QeTG^f#DUuc^r^2=%3EQ2yOV<53+MjF(di;wB_=RWbY^4Ax|zZrHoF9>_UAk9z8L z1@hIif}m$OtVXwyn3wr;+dZpzvj#TBwmKj~yq**`e>2?IS78R&naTb00140C^#Zx8 zHCUz*!nhq-`T<>Kq-t%E6CeST@9uuJ&xwupG=!{WYLW4hOLha+s6}8DhM4Y=x#{;u zp!BWjt&2*#23VdwhjT;OmXTD9WMKOW;ZSQtbgGEv{{XYpGfG!;DEU{g{{ZXKi${2o zumpts-u{BRShW4b?)#wf1x{>00G<>cKN{8$kut1~axE{5}QT4AumrM-AU<26JHlw9^>A>46oT0}< z@BVsMB7<9Qat&LlzlF!riRuyaR0aTDNgAzbhoxJf;a_fNfJUZY1NY!0M-5K=iGL!TSTPCTcMFuGKX%29^=}sMGQfh zd2TlL2cQ1EO<`}skfh|~73hCHm823ZZIm*fb?Nw;!g4i8!@74x-x`Ni>IlXwHML0G zZ78L?u5fFsy7D7H#3KgaoN{ZD)F8BZm;mU&;Nh@;D$3~EBokdk;DUg!q3SA(miDjn z+dC_FT+&>^$^)rc6BSTM0_UOao^e%ji*QDvh6vBSY*{V{Dsk*<3Mu^0mHTufsH^bH zBt$cQ@jtu;ONjZ7-%7q{@UM(}_pZB5yAB2pJ*&+uFA;zlI2kKv~GXD{KUg#CleIysqfh6>p@EB$C`)m-5+) z@~YY75!lt+Emr2-fh(|#uNdTgNBC2<%PB2PfT%0Gemmq=7WIw6R@?IogV0w@S2`P) zD?J9sQHt&yT(Db&8Ak^jhp0WrsH?_SEYZs$VT^7Kwa2I7Ts@WKiod&Mkwg8_!Bgw* zE26M}KHPay5>)Vw!3WTHAIhn3PJm$wEG0f3NeR-%#`TNAl$yZE=sl)YyCIdZm@bI+R{p^4R=q6I;^Fx!i=5 z^~GcOe^&c7$XkL{&p<~9=xe!(M839UkSWOM)wEPT1MGx~6&{MxCcPt*bIP_N*IVK^<#q$l#3EkBLWRBciZ;eQ{kCoPdGSxjR_`@N-($ z*IQ0AUpx6GvSYgkoZ~eo+H=S`t`|j}YN9T08TYGDN&=2R zHHu~A;-`jI3cT^2l%-EXl#idqDB^+Aj{Qx3ntX|N+pTHabs4Oyax+?%-LsnGu3QZm z_~(&|wGqJdHBvLj-K$X^Mr+KPI-+P>$a9XKm8S%x43k*UwhwN2tLZKP>}$@g3$v=6 ztY2xk>-y7HbH_ieRFYqm_xjayI2Dqka@|96D}$Wp@~bOzl>nN-iecFERu*jF_N-?> zsMR%m>~u8*jhxkGpOMcr7u-J@l}^Puj$^u_VV;!o*`~90HKNeX>QbFMbgGPl6@Gqm zimu7>n(BnKFp?@b=Bv8%&*4^>dsGevPDe`XgE{1gIri&LkFVoPkC@Ytb6X~4(JCAP zjD0Fh;}sY^jwyF^rE7)Bix4{Yrg_*r)MdSirXEjR(4dOuH*`ib-J*fU;hO1uLpg@n z07gLdtRD%gi=gfNJqM|)J}S7&7|`VRuFN$wnd)E`jz>FnC=!GpebT5qzm0EHKMdH0H9m$#ZatD}|z{w=$t!Z}?GvXCf+b8;ZR%ndN za7gLtTQ*VbU!3D_VOn0w#Ir{1o` z0zy@ur8tZZ=hm8foHAB2?Q9Hg(oCR}(FgGRe~oBc+({E=T;$~8 zdML*xuY^#g+Xyk5r*5WOpw74%4ngaI_gDIw(*4ZaHf(Lrm*-5szHkX2-CoQ7KKZ41 z)pyIcw*%Nzi#Q=uJ$n5qms6*jh%tgd!2Hkjrs>CW6xij936=*WW}7Tq*B+GPaJeIP zc*&<3Mgbk_qfHXz%0|RPla$C{Ty_h$9*Nt6I}pj!%);2F7uk8cbT6p|U=FW}>^d^A{<@ALmsDr4unm zARny@s3$l)8ks>crqNbNhZ3sc8-`y_-=WB=_pp%3D&$C+0CsgfRQ~`^db0Pa9MT3G zqko?R@^9#WI)Uy}VUAs=2MXS!wrUkLjX9amUPh>(D(|S&o%K_mpoqjHirsORw> z^xKPwWN%`SyV&L>xQ0^SHbzms@Om20c54(# zCDU$r%&`?c71xiUtee&LoR-F zI|kF&zoZ)~sDYz$PBHK#}!GC$>G^13XPH<;p~2uucuuVz;S_CenD3yH)GPRK`{gt z1Rv*3tBU7!r(P}q2LifV3$Wm2x$RzcVRoBI!&KQJ9D%6vnjKAAgBvAm*w zYr@a*WE*5{ji181B}y|_L_({J)b%?{=aU&qKtj5G(Yai4DB*F~jjZx<1}Nf5?6mG&cpT+_`QGW_JZJ&3_SQJzP=O%##G zGRq98>UiLu2ciD}>(pCYl-hbT(oC^xHoi=$xDn5&KGnnP7B6QjF4MF4PpGS!Wy8TT zn2r>j=OC&2;_RN`TbgU6*oGvplbXm$}>C$%Pe(mxr;9mOE5 znnk8hoT&uXb^7H<6`}@H+Z96hH8wM=syS^!F_Lg=9(2ZQdr&_y#}$z;Q$svjvDBax z=B`?=Lr{V9aaS$-S1oC1Oc8Q485MpJfyGpZx2;@+;~ur-)@<#9Eym?Q#aWJSGt#NA zTnu2;iaLzf6q08|Zi|BJ98~b$XCBp$DZwDo6u@9-^Q_$z(MqF7NgU;f=dD>;{!jq<%S<$i68i$YOlyl8DH03$3y*_N72EprEHqv1Atfe?LZV3n?x#~vf zsIzh@20y~ABjcrH!zEme%X(LzI(9dVjVR^D4OsKP8q8MdijcEpS2U?6Y@}!z@}~x( zEuU(E7?aIdOb|bnX5ykd+;l9%Jk_*+N~iRxQd|S;Sfk0;7nX2-LAaZKOuNXLQg%|^}6I{VhqMop6L z!RUV)RBWDpwGQqwdQ+5~j^om=lu4bJh0#fOByc$T)EfB(WO0yr0MhtPOwL9~MIDV; z)uCC720tqF71K#_*!Qp+(>Z33DIPQOjpTZo#J_w<p#ymwyMGAoX^pd{ z)0u76V`&S?A^E;;PCZXyTQKWBbEr}TXfQqf@!Gh?Y)H@-eZ*nF{t^At@7(+G+O=$% zRx$FOzJrg>qI0&!P8Zbd68WxKV_p}lvvdQ}r;hCg_KmZHmU4I%%RSSV+N=N^VR#<( zZW#y2j&p;!fP40(?F?Nrp%-ls(4Tf9@(lln#<#CM4x_@lQqEE<%R(VT>k(O zrg7x9NC2P4sa6-U5?jfn;TZGFK5CuGk~J<%WPk^9D%fB?TXe>HvFd7XvXh8!S$tvJ&NivfzAl5`C0 zO~Db$cmz5(P<=<@GgBq**7AcZ2KiHWe@e$iX>B)u5`l_~%-1ZeRU0eW zq-&i)qMOT^K2m<^;~zu*H5~G!q`YVMpTrLb9=~7z09|HX+%ULV2o8=%9)~o924fJA zsZ;VXJw2(pl%QNXt;7meM)PAGH}%J%HCE>08?`@Xm7ti7z-N*4_5O7L-5>!lCPT_M zMjgdbxqtx~+Eo}F9CYWUB{WijDVl#R<7qPJdB=ZoRIY`=Er&88=aZafrumqvO2o*Z zY;oLrejnrQQ-DB@PnUmi2M5<5;Yv>18o?PbPa?_Xk(>{dH$pusc8WRiu$6x5)jjRH zD=g6tI5-`tvLd$0QGjLYf2~dVinWT#<}V|t^{L_W7@fco{od6$F}CGm74guDNZ)Az zg5#$ZQCA{Tv0@t-r1|~16(Lg=0%IPv7<>_z+mA{~Bm<%6)7Gs-&AXGsE2+bP2d`Yz zuB#>rk(_ZrZ+l+IXg>MONKMHLEX1%`9+guUu1#8-XgD8J0=Plo5sZGc#z_0*cj-zpB;+;i7A;CLCyWvoRgUDsB%`xi`c@sKp080O|CplTa{7CJeF=dN0b@ z{5p!{tuM*>81vJ1cr|TZWJmePZsdPj#nG|4t8=^4{6lO&+{GKN9WnaW=+zcB6F|Ze za9eN%TkBq13xJ=z8=KU3t$jaNXk%!QZa{KIai3g@$->(g&3(@ARJ)H+glt%hv5)nN zI{O;L4piXrS-N(p8uBm;s>pT~UJ8GRtu1QZtZvFUBXWiWbUyX0p=EO@%UcqO#xb6> z<0j-ak>?P4@lRWWj%%Jw-YC##2aeRu_`&VzRhD7JHd%2{ifYBvI2}z?x_!ersxLMV zYG>Lrj1yLooVF=y3P?Dtc@%~|mAy6`b6K|$jMPpimtGckGjYvWjj%D!DIGvGFSaX& zqPc`iu}Oi9)u^AKth9U_RmdFf9M=t4XmvtHv@B0kk6N?x;{@^TSlhFQEY6);^DpDL~a2)V4 zno;jb+LU##sXUTJ}X-W9v{vy*RB1hA{x~ zKn}l-^}$wV(1_$*VE3s6WZ(*L>57^m&r0N!t*OwWF(bgIV-;mnJoctYxH#%79(%F! zk#{)2rz+&q0rPM<^r;kd;8SGSd}9X{WFM2QRzsSbBN)wLBBCl%xZ@-7rm5t6)UDI4 zL(!H&yNrG`Hz5B2g(QdZsGdr+iEM0ybJv=v=Q*ime`y_z2Lx4{ z2n);)RW+X>S>+Ocb+cVog%H{$+tB0+>5}MlU#WUnR?gE0<(0-uc15msXY;VZNKwKA z>FRyWZ0mD*)BT-#559Bh+x+*c0xj*3K2SIw)k#?e?5UU^v% ztdcR>nHlPHT2}Htcd%DiX2TDFnAysl2;$MXLG8jBroV*A|@k1w|X zn!9In<*M%>w2TQpi|P5+Pg1d<%Q3(nr=Y2A)$VSN(0r6Q2iSN1wH{>28~cM5MkS9{ z{$`?i8a_$G9+>PY)~~uJkPpY#{N{#;$jS3#9CA8TJfZ6NmRzw?Px=YWHx_1Zl%8?#OHkaBZ!Jg+03>wpilWEnW@D0h0Qaee*;jJ5Thw~`)_uzv9F^$Y zDfS&{sWGUct<>^)skOds#{_;K*0e3|M355W<{WGt3GG=olQd`}LH9bb{z92*T>OOM zJ;b&vRPKc0Y+GDJU%M8`Bo3#q6;fZ{On3le2R_`>l=2Go2X1|7BV0iy;7KI*?MX3O z!ouEc3KW1(BOaehtkE|xxgOZ7YY8fN%ML*m47-vqo9`3Q*F+2?$V`eDhTO-sNYl9r z0L3yGviq=c>rzh2I`QvUVlGsbou50iLa;m){Hc;Fl5vlyr^6hBlBADX28-6b9=ZC~ zt*i1eSh1bh1B_MMWpyK(%1E?yc9Wdois&q4AOdTawQ@1Iel@+P%bX1R;;@l+Iyhe- zXRm6KUzu}N?T+BPPdKZp8~BIN;-OrYV$70n>UQR-T*Ob_99I0wql^mAx!ccgTG0yT z42W=5ln{M;*DtMjR>t@{#J)_&kVj0{WizIF;;73a6U}WIIO>GrrMcu9kA`&{8J`Kc z2+miYDx7x>4$(4|bl?y<{C!1x9I{8Wfr5R-VqfVxb>x7_5Dn_QS4?pi_>qgHZI3al!PxrRaSS@Mz(HJpv&iPBnhl7c%`J=pF&g*Bfdp&`kRnfa)E!g0=O86Tdt8p)Q< zYjqtCcOv+6f%K~LFz-$cl^yD>!<^PtH#qCE8BaVKjaxi)q;?sm1A;#~;;4=^^(PCH z#anNjJ~DiXvI&2+{F4n*bmRAsrS%YGEX+}6>74U=x*V~Rj(Fmf^8jozKBSfdt78?{Lh z`M{_Zy(#M0s}b3FYU5~S2Z7VxtN4OtSZ6u;kEyC&9(~t{GsRZ%OsCFdJPhzFYEipA z%oR`F85(ZZn`0giKT7TNrE@CU zEsXLG3~P{o+B^^EpTeg`XyWqW01RV4gAc{WHC$_cDy76^q$?i>fInaHt%X&J)gw4303WSOW^I&b zhhoNu>T0~Pk0L{yv19mEtJfk@M^nJfM;bDtGjqDBXiGDiUAE;j&h9<FVWGOtqm1zDH{1xLzz9CgX6T6`?3 z%vg=5HKwQ}AebPuDejT5l=_Vnzo~O!ut4 z2H-OQz>y&;2(4io#7;)r+p#5p0OzUwYQc$J_cENce2;(fDr;mC#sW4Qr!}E#0ARb< z45tK+%67LOm1Vrn#g+bIe~Pp`*>|!r&gCjW?t4~b(eD6` z{8hyT%LRPM5=6jwu&wL2_)p+?{6#IfG9w8yo}Bll*^wSYoGbqAkFoy%4!?y+prbZV z?+}$?^r{o=O#-ZyM4+D&pcJDVjd-Of7xz-DuB)Rknzt3w5Hw6rqM*B1@gz< z9sO!KEnUwb{S8X@AsaaPm#%3dyfTxMT?SVoSOh~4&-*knJ2UIhdsY3ZAP3s1NgD~b z54%%xhN`yUK*xH&2?PMcIqy`9xI6)l^=i{Qy5t_-m7L0pFWWOA13Y?G&6I~A^PcsQ z68`Y#r`EM>zFZJ;D+z9CbEeZ~BLRjxR?wK0>6}+HZ8se7Yf>4?s0Xb}A(y2p%ZzjH zS$8PCdR4}p73s}UnfIy3O1LsitEdr)IpF$MZ1&(B?mT|Adi5W0+DNJ!oVUzQD_H6~ zl;(?RImoJW4Y@sqYRH?E;PcX{$bb)+W~v~}_H(z^pfX_etJ0_>fIX_DksaUR+O!qK z7aU;Y6bV%QY6pm~wM0o==93y_sT>^R^Qtp*=}OE`u&BD8+}3Q-5x#Lzvm6mqxC9f5 zt1|$2tAZj@E6(^QHCZJ2#s?I)QUX6pf*xEN=}SYIy-j#dR2q)zJdD+gH2G>tRyIG4P1_Y!m<&tYQ%CMUbV$ik-R2sM=pBt zPT#xQs3e(Mo;R*XPR7bbgWsMhDKqt?-UnKn17lx~wG%cdmOyF}-nF!1VW14vS)0dDv zYPKPfFzHb^$E{kE6;4*`RSigL#7z9uW=`3t#=h9j8m!H5z3ayQ>^(*xKF zkj`Q=-jmEHWIpm9{{Zk2miq0g5&)1x7elvueNRu*73a!UJju_RS7i1|RDl@W=DK|* z763H7wQ`W$1j5CDPjg*9jXN@caDD4FBc_Dx>~s-Zgh!EAkT?}cTgj2eD`FVkt~Q;PF~k_R8?E z_Qw^fosgO%wpRzGI`OQmmn;jSqtA+!pr(I7RFo$p%d*tJe5A~_sq+w3QW{Q8CYe$A7gOS1hK>jsl zB7eS)TLc~tAkdyn(a9WVDgLnl?b!bSPs*pZ>Hz59rA$gTIIVBGp15A?007DS|m+gvPfwfI7Ilj)ju&J~XSpy1YZ z{{YGR$jHMS(JjH6)+Xrb@}F_o{{Wv#+A%ScCAnB`7&0>{ZC#6!BFEDh+YJwTt7;V*RIk*_XJ#ktmW(6mR_XibLXtDwPYf^F! zTb%uBl*;Fz#w$dY;<=yXfO36lj}XTL>T27g=WWkTeTYTRx> z>Frofk!oeq*yQt?aFVK-J?S@|PioKEkC?L3@Im~lw5K`6M(vLE3puNeI}+qFW6!-) zmQGDeD-wCCEJ$u^vYZZiu}S8lW}(}PjGldKp&|!v@69+rJoKo#jDs(h7CRrUR_#}3yRj?{#h#zO#S~96{^|ttn06$6)%;rn^RB!@<%%<@D<)CZV*db0 zwy_5uUOdlf8wIoU8%O*Gvu>m_+)BtWq>=}>YMCWxmU*OY&$ON1tlWQ7P)EiyUOh=3 zYj79p z%ud+qG5OaurLlG;n~dVRn6dUW!Rp!L*njowvY)(nLZ#7MMyr;5Wct$`7D0dqClpN^ zGaS(fB1PO!-WU|6O*5fPt9t-4J~D%?@BTjP_D zPimE-`FJ36S~hSauHH7|k?3o9w_+t@ow)NNoJ_gL@ef*`Nx5cbjPxy#Ju6cF(MW7{ z>?VwVw@KfBJ- zPh~uRTG>}L#(J792qusgAn}k! zf0bCYbe=ViPIxL$N~0?WemKVzS(Xwh2Z2Sj80(un%8=icT_@0qY;$ir2ul!392|O6t%!ExJ6HkqJ*sDmYfAzC`P;{C z)mGUWDGvu3uA7H}4yH9I)hi9`ukPnE_r8TCp5Xpm05EB*syDat~f9 z2IM~|>BrWznSstnH4|+evMF3;P0f%t;QQ0pdlR1ZBghX$6)X%346bS9I*u@pixo@*A1xvKy;`9?=-uw{70Fi84UJ8OWP0&4h`7-KzqP_9cV zNTNmDJJd>}8(nknR-{!=m=Jxa%8`&csujp1w*(S9)XQ!T2TF8c_dk)TN`~h=dQ}SJ z1+N*Vy}Bx#(8gYhP7PGJc|shX*{VWpt$N74#~-a>T}hTWq3$a+oR;~B zHL674QeFI?QA{p#NL&v=>p&_;9Eyn>A@Q#2Y?uJ^PGXFPM-kTJl1qPQ!WK| zmKH(Ke4_@rZ6Yi(=DXb_4S*bTQ42OIi$fDu(gUXpjyj6-{dY_#%yC}ba{|0yO5was zV7OuhRca}#qs^X-@!8R%atP#9J?n2+x7#ChtVj8IuQpL=n~ED9O*?tVT7!KwwrY89 zJC>2ptvnJ z&MPtp&T9Nk^703@anweUWZlgKl0B)LjVUCKD;pLy%|Rm{T9uDE$33dEk~-G0S0RjJ z$GuXN^HyX%#wx76O?1H-NsMDru^YIhG{e{0wn%|PQJ-36ICiSA$LBeuJ$-0g=bCU_ zo@oddlT$8FT3{cINSNtT*oXR6i*Q<0Rq9Pb0qiQ(zsO93f;b@k1en3`u zx%4?JyDJf){m>cZoAe+4x_o&)qM$9xk466g>(t6~--`04aw5r-Vtl+(+5%(@=fCGw znTG!W21BN8v`VC;CE+_fmk zs`i5)pL@Cb0g+oqIuO}#TC6Z`U^9=H`qeADu?38coDWP>h#2A z0Qb*7O4yirmVuY=sVk3ezvEfDU@s2?J?mC73d+4cP=6}pdz*AHZV5$Vxat8FE}JuC zhxOv6)Fax57|A}BR^5s|4;`^qwLolnfs|vn99Dj)rbvp8qMYTG7$;GN{c1FrNj6V@ z)Z(n}OETt z@Bq#aCbV_}r*IkXN>P`T=xRC3G;OAkD;qdz@5wcfgFL8-khrBe1vB|l~;m1kG;~aK^Yy#(xObXNe9{yht0)lL|Ko{ z4Mzwgpa!qP&A?==wHsrjg$M_X^{E74U=zvhPXq<&OeZ)r?P7U{5)^>P=|JG+Pu7u0 zBxIgDk6M*}gA~xNJ|`q}G~!u#J!!2fM!cWOt4(&KV>kk?F(tCsoAUMiD=SdC3b^&` z1uVCm6UY^bd2%FfGg>4|Wm~y-xyMSX#4jAvrg8rO*3CdeH??Tk;)5mM+NT3(KD0!; zMigh>oN`Ixv3i>#8C%@R$+cHO>)i!re6=7Q;Q6Bs1dl$DP!ySRvfyO%stzR zuOsKBBffeO#X|4z&1(pf*w=1q2ViN;YA#K5MH#Ufsi)qSntIit2}-TaCOXmAkyM6E zhX*wvz%>fgib?NK#7GA;~z!W5yxY2_Tz3xkss8L znEngL{0h0JIW=PO$_Q<_{mT5`@19TeAB9#UBc&rD{g5_r#A$?j^I&o0%Q7&y;*)=Wam?mj>`&#hCqwk({LslOMATHVT27)(=8t zN+LIMw1<@g3!0AV+(emN1D-0zm6@Oz2L_h?hnN(Bf!doyre$11fCh7#!_>FQn8rXg z)%jvqEsg-JtGjI60l^E&_M#=WVB6SjBX}g%=8bI2AaTG3r4VG~jyl!*WeI7xagO+_ zT9Dp`KZx#j78%LtxUOBJc8}bSYofZ0-QM7WP;fY_QRzGktzGOSb5^#Ew32{eV}Vs( z+{JKMU|=8RU8~q^2aIFdx$Q<0WNZu(Om{T=KE;r2!1k?AFKxntK0}p1j}?QXH}*ge z2R(@xsgCw4<3wPv#t#_HLmjqUk_aI5sVyYIJG$bmw5nU?UcS|LU=b)t$!5XGBvpkd z{1eZuM-wY4P%=CF)Nc_FnDg|fxQlym4d+C=VOGhxk%l%Ier4jCU1A;oo=4 z#~t{s6^JO@N*{m-!Rb&&%p01WnOqT$at$?OQh09lY-pMy#Ef87xWNb1)K>6}jGDfd zyl`tain#a*&m2|cc{cUUQ%K!g9R*y6a3hLV)J>L?k;v)Nkg>@0&M8xagNlCD&N2B> zVs0vQ&M{AB0ZBaL(wm*U)N+%~I#s9=*;e9AvjO;3V#M_$ry$jd6fihFJL0R%!2#!* z)0V_0QNEG7411c)kg?BCTDNrn05_#m>T#N+tWeO0BRr2ts zYE&2;)=USlYIoBVh@g(N{l3|#0ygVJL?r0WHz+yBtvHT)QyF^-q#>n?v1U19a!6R0TB3?oDtx~buMtsPWAyz%bJdlgilT(G~vF}h!xi}uR zZCPCCOpVtga04|E1cn~fU;qX?(o3}$fH|!BZ>gos!4Ev(3eUeq&e6#|t48i+ME9yN z?G5I+$?a7L*c&YAF_eu)IUbcI{h(&v1zfR3*dKwKvf)bB{I^DY+L#b7#eO)d5;Eb~ zb*;PD);L>k2U^AQx+xgvClx7JtK4kaTTzY}js*iI&>-NSdbE*=2h0bxPHljQ=NxpR z-Gb#COHdqOepRp_QWqG&szci_-0jCwI#)?@ z0bV)J>s2GR$Qc9Pn*{7*!DsVwJ;iRt^Fn~+9AogQ?IDe1>4FaciY}uFax;pD3y+wE zBmLnx=%i+;-zZo~#c0~fj#)|h{rl865dc|EFl#PNN>VxK<1H@b6@3r@0}PK^wQX&+ z&PU2lew6E*eW*&dM_Nr6a-7hZa_i52DvY{<5>r&j@G%K8L9mQo_ymHE{6b;o| z4J(!lnXp3=Jr8P*WIJ-Bwra(iE-{=MmEzb=)0L@H)NU3rn`7h6*-wnoG?afVI|l)*FRCs z*%}N+4m$O$eNN+GIB(Xan(PH29@WokcbkD6Rk>(zRgq5i@a{a2D-QPHvBqg{CnTPE ztl6L5ux{rgBbem#RhaXFY4SFD^r*9%LL3Htsq5=Z9XnI8#}o`xjPXbhVNE^y(}g<# z{P9b;;8Su1AvvXC+>9D}nv5LNf#RyeBnRjyKZP(Fa5+BIgec=Vr4)d1ONu}|4wXyR5C?b?|?M4kNiJ%=Q`caN)aB@NGK!5@1N&uixI*w{v z0sC`FieKU4lN5l7hg?%JjPX+u`BO@sYSRIoYG}t58iFcy=|q7NA>yP{>(ZkGijZ{A z^Q@T3mydtxQfzN`qaabO(WKtVq`mb??3~!IIlj`b5uzS zgHV;{2CXotSxGf%ff*Y`F!56nfN{a~rnss=MH%@g{{V0g{CHCl+c>EZe(H1VKb=A| zk&4nIM^WM9^QkS|abBmONH!=82{q(eF<{CwhUgEadUuB1VnyE|CxcogbEb@}&ecE( z?@<*4lh&e&b&zB*B9-5fj(usincWa7Dz)Gwb?H`F#s{rN>I&t%)UwfwEPvkVROOc- zg%}ydYTg5q2P3^_JVjS0nrW9}{guwhl}|Y8D&d=v$ieMg)3cysODCUl;b(9SZ;EP z2_E8~9RC2k`CEa-Qev^9t^)=?!&0o`SL6^4WzTR!{{XUSBe_rx54|MB(WKAw5uc?2 z@TB+0HB-zl8DQMvmN_zqCj-7}t|DcadHrfziM+_j<8bw?_Rq~Hr)q&NepV`ZJ!rV> zRg&qF>>Tv1Xzm26gq_*-?O1nki66`ZpK7N{$MP~OYBNFOh(-1g0#WkZC%P$?ctlPKSb%}tO zQO-sxz!^DO>87l6O^>%wRCCX#O0qs)1~{k`agJ~)OodM%@mr)~*y&C))A6Pxhky@S zjzgroPP94osNdBe`ij;RMWn} zK0fKGdI3uqpmjBL>C^uJc9dze{{VK4#bS*wOjY0P*}DprG^v>M=jla+Py^bR9<{F) zjVS{vYIV_Ej$4BSFlnVlbidfF2i!QQ&WQN?jYXIo>0WuKuj%bupV%@UivIwW zIdlng_YdV&s2IbwJany;&}8EXe=3k@GLiRB)PUx;(?F1pP>;f_FNfsg z7(1_ z<7v)1)1Z@O>(2XUdfr8LXS;AY}E;E1D>ey13*V z@GBzv@R`BtD7l|(ZT@pvO(`wUYSu47IGgs@r$qsRj|#R^vz!>n>#xzqRLdCrCAby3Ef8&x(xAIwpcHI_RsPN9;rAbr}1P2*(vUUA%$xt>BJIgw9Hn z&T1!+5rT2`sNQS?(Bi4dE?cE_Mkh06lHTTlC?8s;((#&tN%r(Os<4eFpXE3;T3doY zi<+X>TySb2?9J0OSY@*Nk0zdga7S8#HSeBkeBzU1NLNr#9V!x?#Y{eC;8T`7^{m;V zBa1zMTDb|}QzMIzNZ{3!jEc%dqRqcvoSL$D8LIH{+mA|^Wb~-D!Llj#kVh4lc7Wvj zR-M2gd)8Is?a4K2B;3oF0FWxH0$Yx1S(`7w6*aU5LNT6dhKQn5jAN}`i3tM&wd{0; zlyJYLY}@E8PBvC;HcY0G$w?f9bU#|7acwIC6dLsCygC?jAL&Zo7zC5I`qcXwGm>+; zmMK7ucA?0b|zxH{nY2m?vl;*u8Y02DiQYM~*ki69_A`U~&;_%=jC4Wk_ABRSM z?gzbk0@)}XI@F75zLlcFp!R11z8qZt0IU5fQQ@@5C^Ph~@LG>bc(-1=Mk)PPBlc$n z{{RTuFPV<5R=Y zyVAO^DS8pjFO)O)L8h>=A0jz%qDD_C%{jDa&PLH)Ka@D2#yu(hS|Q4gNwhTXynQL3 z*irugbXQ(t9+ZY5=}YR-4n%TGpr&|1`BaIa$Iz!AO6r6|)1@en+M2^eIT6c^5J#Qn z^Gv(H+%Qg0O3jjHla}C8Q8Yqb%3A;$s>dUqrlj*ww$aI;f=@iwh*GtR$O4m|Dko#q zRI*?{T;ruj8Qe~KdRIhFc@YVYdFxTi|^K+s@l@lULxlY>W~O zW5RGwIISxIxv*$rH{qP@8@ko&X$x?Ade$o(04qkpiCCGB!(G| z807x7qGcOc5_<3rWnZrEm~{rSTN9ZYl(^{Oh8B$p?-D<3@ z+zMo@Lmx_ueruw}0<@SIHBM=>kx!klwMF0N#XABlLiuXYg$D<{P`1a?uf)I(d8sJ6 ziUufksNYG`;)@mAe+2fDe>roo?u; zJq=r1gwM5ZqZDA>#E#4kfK-OjdkR&#QP9$hwa-v$(ujtOHQRu^(^}0xx++0*G1imq zOGbfYNA@(w-4v^4qpEy6n&9#_eDHhWY8xae@d+a$c)*k zA9Pb1$usvwSTkq6JI(i^$W}!sutEpQD!iIv+GyvU#oDg)S$m^3pJPKeN1uiKwOP^W*TnaHsnhRop9f3v#G!cq3=|B#^ z>r2Pdqurd)4tUJ~OZd<+Ovvq;IG_jMW{PI)QiDJa7^95#rst{68Ty(4f9Xd+X@Rn7 zH+G;0;Cs>Zrf#6O9cThdOyF@*7ai!{C;~&$jQ({V?s=px3Bfp^3An{E&P7IKAKs>! zMmg<8z|PfR-w`D9&3TWAW7#u~)#^9y8WYYd%zRkEWPP>gV&aaBJJjQ^Fr~BBv2N9| z#%ocSyr*?Ra~ACSR~3%*&USF%^)*^oa(FyerQ|2D>s6jLRO78$L%Ckv8M^k{H^CRijvybm!!N%ZvR;tX8Z1Ky2JDk=+`AacWehzw8QBKCU2nTNB znKI&i#PDhvneAr;g3*)Kr(%~2xliF#qBkK;xRF6zb4Zcw?TmG%+sIK$lac(YNo5SA zA5Qg3B(_*X<}b^^9+b_cUnJ(K#?2YZ9D`GCJF-djHFhDg;01ZcN2M1R0LDT4)mYta zTxX0{P4(UZ!ToEdoNSJ1%IvWu+@9j0GXd0^%Qv2<6w^L>8oQBWLRs<;BC}+a?%?rJ z$uY-Tt0dgxnl3bri+iA_1of-QatP~OpqZ5LYQ?vvbmYa``N9?E+q;%CaFaQk3>uO`?1ALx6zV$z!m4Kdobg!4Oov* zmjE6Ks?=Xgi%bkxmFXrQV%#G3i|3 zyO%t*D7u?HK<$clL36&|M{X$1FjK%J;+aB+$3ewAbu@J3Q-H=O0MF8bNvC$B6u?ZJ z`%(k?Q?bt?mlS|*PCC-_^`{Cp`w9j$9w^URaR;Y*OdL=IWRpq>{At?{{{X6uooN8w z#*h>1PufQYjk)S*0fmhw<4@T@S^!PQ+LRNT0*ZJZ^uSDaq&cUBrQ1Le4Ck6rkZMh$ zfSBn;fQ_^1NJ*(m`U*m#fFsGl#Thjw(M{V(2JSRu;}q?q=|NMP0AOwnBNN)B*+>$A zBMxZE{3=bEJt=m2iaR_;W_C}3GGh6LP5_;Va|Kit)1zmI#FOL9Ok2Jj7 z1-LoRY0NO0HPB6BBU0Gs=~&khGqF+nR~l&TvoS9S8T6_P8GgJDwXb&%J3l;CX^=*^ zz!cL#W>!_;W1#1yLv;JFqNRL=Bvn=6+clzBA&ir<)N`;A9!E-98w^RRS2AQ)i5a$4 zCwU{aNd>;<$Q|l5>w(Q{SVxhZR)%eo*xTYo&1^_8fkjrgU9GtG=~MZuo_dkeqG1Li za7VRHS0{Rod(y)mRIywyy*p%wk;3PS#!^Q_V{(M@%NrfJ0QyxKMB(=!&Uvk(jKG4K z_cSf3Y!(0k+Z7(s8Yo<)9IZ4#XF?CskF%ZGgq^3gXh@qzHjGn3e7G1*(MnV$@ zoKl#Csf9l`rC&&ukb-fZ^pV@DKU25XnwXqS9aGE`JKz#N5S#)!gR>uS2K19&=qKu9APd z`c}oZkO1Unq???bzLe)3YeGFG+W;x9%G*o>A1L?YwC(iZIoL3I(3qPzNVFzmK2utD z-W+WG(mtZQxNH@AAp9!yR#+c&el0Ly2$2^W|%0NiQ zI#nSyax0;+Ip(F0Lp*XpuC-tzwMemhaz{!u3!Lq~hDSnk?^Z^PFbK_Wq-30Q6(^S7 z^wogpMvma;G~uH$z-A;@L9o&?FzPAjBM4~Vb~GI2@CY~!Kkm{`SK zEwkSOp1NBF9^LD7KtkYpRB|aCb56(&ZnWxn83&3`DU>%fyRpZmEjQADAG?ZBeQBK! zYI5*76aeAtKP_l z&_1*P72`CUJ?X$=mY59Nid=T5W4WfDrjQ36Gx<`S4xH0*@5LCP2U6#OO&#fdserxs z{&WQgr7kHxlz=ftF~%s)1slC+0Ko4?-jrvWP1FFO4)kCVNs&fIGuoI7fk)v>NJ#op z0Y@DurWe7cnFRn#&M7J*D$@i54XQNZ@DQuUB-EsWHcx|f*T5`FVn_cHmUmN`Dv1YZ(z7O2 zjxu^<)4f@}ltOxp`U=aQR+N)~1#|N=twgF~M#&^+(=|foC1=UTKb2hw?T{3K)~eh_ z%IAInJ%vF)scV@Jwxj4YBQG}S2FkS^s0ly+Z-KATbiAMz1 zYdbsRuQk$XG5L18iNPbaXI0r3NnMuADz2;iB9`Dn1|rE}=}DTL2ici0IBv%BT z&q5Kgb*|%!18zwC>A%`G^1j0pmiDU21I?B`oqJRS;!q3~8S+bLdSw_7#Zakq!csAC76|nUoAJ+Kr%!H5ovE8gj?A zL#I!Aq{PuOIb3|XrMa7Jxf}+^dSA2^!zmn8ceAvxk+pDp_pRx@PHL+|&U{BGGq)i1 zu0~nP$Z=h_i1hyen6jzK_O3R22^r57-j&W4ShBgvIk;&$vwy~Lqd{R%R%o_kUY5O)$G94w+1XY_$x8Mq`9+NbTG7r$# zL8bV0$OW;@KW5muh*Ii6IKj;|u4X44z3ZljLqI-kQ9hM#8hpbi+Nn}(motEbcltv%Bn2Q?1fcm|z- zofUCXHqgDQ0i5QQ&ISzuazVC{_T!V%p~gD(q&UVhXh1t)EuOUHAxNmRpXEu8^upzr zm2hx+)n*``w1*^9G0$o)E1OEh)ALmp=F z1jnTxPPG7jX|E|AF-qetX9kmZy;L)hGsQQ~C%B^EUEuI(Hkzukla4^CJireyt#~$># zkQ;xE1p1L&{F>xSPt0*q4So~+Lmu?G;)Qdi$j@2}06Nz+JVOpRaY%ec3Fzb3tsc@n z#&m4pccvK>b!z87x1s*>kbUVJUbX}8FXv0zL=KF|xEzW@GUtO_yLgHP9BusS1L9~0 zT0NoztrM<#jD2cFlo8gr-}p))>-{Pg@oaqc{Hc3H8lB&mDXl2Mt_=9XFf-0QstJ5v zy!@&?eSUKpC0KjbOg9tApD7io;xQX9%lD5y^_y)IM+e=<^{R|Y=Fqnco?331 zfa9iWmCfLiL&*H>Mccs%9BxC(2xV)~cU#H#1EoiB~&@eJTm$U8R@lRU@#t z-HurI<2b8g%6ts*^{o;}$;q=mc{VQQJl0h5hjW}@cNL|nS3YJNisgQnE%FlT!e4yg0{kC}<1*@S)Lz%O+wRL$_cW2(Z%Vt%DR1i3? zHqoY$u2n|kj<~Mg31l%A+E1swa^e;AIw)zWtGF@e8R<&a%*+^-BfdGNY1We5IwGlQ z8}zNwVz$f`h#(I2!s5~28LMhg@)OD0NzZ(Atm#!^W3{oLO6uXa7bpE&6kfUDRSVr9 zw5;TOsxn49Ri&VmwJ|N?Gk+2G29`ubUz@K=v3cf1sAEwYj(2x8%xZVj$#ae1VyoHq z7dd+1kl9d3H3HncK&+gPO0i(AG$9%5`m5@C$ezoS}@8;m2&ZSGx zIt`3F0V^SqJ#iKD`?bWlVbauPlcB2+r!2uY&=KE*z(& zjbhAXneu6k;tM#>HyE!pH!SVJschr%F^nwE$G&^jJC7DvT(|`f z8HI6Qr3pDaKwJq38I61Gn#@in7qGN&cQ zK6Wlc*hj=TckL{Hl~`Yh7Ta=I=DdwAAUw$`=j&D?ytE{PCj-)z<=iaFAW%KU-O zeX6{kJ(!Rqj#4|2ro8<%n>c!$<5QEj(LuE;5pg{{XX6PvY5Q z{uy)r?RnIGIEFFz#}%J>~3wdsLn&+7IvZ_||>Li?GBQ zNv>=D5&O1}A&!2P1Nd_I550l(to80IBcPMTuEPP_>q!rb7)UbjkEL_z;oIHAdBCf2 zcw*)7cM<%lU(6auq3IqX5+K7d&2(1!z+?oHIIl6&^b5$C0VDP5E1-i+yjA9DSbb^p ziq_cd+f+h6_9`{iQwQb%eQTNi&AM;mIP}k2k}W1B7{V0wW|n!#pu5o@ry$D7StT|hTR$Um)c$)I1U;^l|o zR-@8&1wZTCgV<5eWbFkQ74m`#`g-UeW*Xryj=UszSq=Muy z``~^#sl>pKzNCF?luau4JjzG8t8nSJdroCPl?r}C)ZY6^Q_C;sNH2gmVz~A-hc1zF z!#-mldWEzbmj3{jkNMHg`v#{*bqM*yiVxPaH5BMs9mPR!TAex}-I$4n<&Ore zl!Ocx2DYN`>#6CQSv)w+o(JPidIi~p5)MbpPEi2P0{#NEzu_5vp+GdB@QlgsY4d+{ zF3gvEbq4@(RA;z|AD3-(ZQ*mz2d~zme+V;rpI+5BeTQ?LS(S*!K9w`fiZXCLg>(@3 zMVGl1Gk8`^V|GO~f8`BMMoWb!m#{(v++<7rB%U}n+Exp){aXVws(J5VMFH>3w)G7IR#(Gp!tZt9n@Tk`M z0EcUX_|{$Cq9Q}I=RGSln_${2>IkZYfxxa}^}}YhZtvPvU=;IM5~R|(2!!)pbmGh; z&VNu>X>%W~bY2Yb#G1SAlz^j>eX4s+4do%EjFVljhZVH+RM-(mOjh+JB@GOsmGw6C zuL@w z+`RAlR(umZ&Y%;M^Jg`xXIM7|bRqhV^^oz&4yy$4DKLZc4D_Nd`;?CU8)zc4Ssxh2 zPu8$C+t^+Qi3kXO@dun%q?5&aVq=0_u>*|stOwHKY4J0#LJn(m*Dcwew>Ym5>LM6O zE%%4Yx#?UHxRT>h48-jA?OvDSoet7;e<6yn7*bC`UU-(K(WQz~1`k@=n~af7vu4*` zhTTL>7CFY@)~(&@%@k`SCwyn9J!>l8Nw-x;k=fkx209wlw$at&K64){Jtr`dFSzXG4K**_cZ((SST{86og$s&r zh#EVsHdx5cM-_)+FD9Smwv?`W4z<+TX;-&N^V_n=p8e{f2{~NOa#lP(Zx38aaODxU zlh{>=yeW9Yh~M(Be75lJ(U(9!3cVJNs&lgdSE8e#%glWJAA@g+AG?$Ctt(Fe-%7xF zav#FI>Mbd9FsF|})~8K0te&4re5hRKiVucYVMoZ>JYuaw@UHEbEUZ5o_NBC8oa7GK zt5LxwJJRJt=Vyt>@TTncHB$HCW%7~`F|U7)-S{Vr_cbEGROIx|Xyrl9&z(QvRcd=P zwdvNM3$;dJm4C!n(W@2)2IIv@Eze94eJJHY&Uj{@@UHpu<`aSHYU_M0xeLo2eQVm* z+=0hmZuIkR$DsTuTB3mDv@Krz{#h|gPihT z_*9UE8|GY|I5k%1;Uex;hGKsj_CF-IBd^w!#L99pM=B0>c@?+97}Sq4;~u=$#9srcVWUQ428BA}oDZHMr=wB#iseLiSNdEPD%`m|yURcvuXb zE*$>=x+<0T!~XyZTyy=Ns(9!zT}dE}ckNBV0Fa~cr^_C~=aI_8;7&tW8IBU z2ZDSgfa6Gu1A(|#LU=zq0KGCP&#{zj7+^7zM=W~>JiC=4&>&HU;8n%YZOZZi_N@@T z^HQsA9qHUj87Dxs9TW`u3UcU>C<6fEwD%eVVwQyzS4g*0!jFC`)K)PLsw!e=1deF{ z(Ps$H%0C)kvcwyJGf&(|rRUaxg2Ns<14!2Ko~up-oYR3LIWz#lZ5J6)pQSik#r@iF z&UvLC-90D)q6qsar}-!cB9I?ST#?`OrZGIF^rv}hJ5UMF6#UQwLV?&(v<||Z#%Vk7 zXaNeZU9{F!>?y>7)bUA?{oz1_3cuYHxCgMLEWL6mHx6(`06U?h@TADcQBB+jaf$$c ze|is0)P7=jVN1CW@d^NU(vv+u!jP~7sHQZj{pyjDew5y#qY|h0sYHr8b4UkcpL#P* zG6C4r44m|AeJBCW0}e7OFD!$clk93mJAolvA4+VFLB_`Xr~q^I;;Zc>o|PW>cKe+w1Bg_YLQnIppR&k0 zu%^AMaxe{JDha!qDcIn3`-{7i<;4Sq_7%)cqTN2?*6)+kiuJ~hKyYAedV$4OxJO@= zE#-6UIILa~UhSGH?QD-AJ`uc`f!g77{o1ge7QaUMQHb@gRD#-PQeG1o^l~#!lHI`o zCQs*A^;q>`?b+n#!Pddy$DLgb7gWqh!6Ft)iMSnWj=&eDlt!CI_ty{RLnKcz$VCOvtr6cX7G=K7p;ULQqVDgpRZR~{RA z0rH3k72Jz9+l{z1$`yXWJ!=#x9xb_}8xp2{|A))KmV?o`77Y8lUnuj1oQk|r6(Ml)W&_CubB@~3@|u2hO^ z3DV%}`5rR<8Sxe6uttp`2dQSssG|6Bb15eBSSJP#ae)P6iEY3^Zbi zb)Q4dEqntSr|%~u;~WZ{_y*nZB)XUZ*?8i;2wCtrKZQswy+J=(rH6q&+D!B4{vPRI zhH&rBd2TC8+roNfx&7U&e%Te+3vrW`r7&l(traMuT;$GnEhZE{ENY|JRgbYotBtI2 z*NWOU$0Kfk8dGk1b?wuwT8Ry|bI)m$@&k%dW>r)bB$Hc$&6kisr~RJ*WOGz27)@ky z2WooS0n`#}VW7@14I@I!f{0k>wH5;{ZBO@3YIL?C0RVyOeJey;Ha_VejXhu>av0DS zGkmeY!#8>iSs!$ab?;iAXCs}xedz_b9apcdAhAtj>4jo@@lR+NKG(>rA$IVbu=F&j zt0QEBPrWd)0E-K^wKzm`#{#VgaJa<+BCFJj2V$9v3;ubfXo<%MBCdI386cWXpmH<$ zP%9NYq75$3O0~2xfrkGf$VFh_i zgH>nJ>@FL9#g(*@e|h6le>_&Vk_q8Rr1D3h{An=Q$%{*}j#iQ@J9T#8vc>_aj-6`m zrLE#-Pr6DEm;5U0Lc^l|w8 zF|SaqpIp+oSgV1W3}lYLdsNK{+mH@TGs%DM{&Zc1h|FAq6lR;{D9%%-`&B8o$>lqG z)Kb|g2QlL`?kfy2jBqedQJP^)e8E3Da=^+0u74V_8??x|FZwyA`E8@x(uQg&zD0awnRhqfkNaDy$-#+1nKW+NaCYmj3`6Re^Tl z699j-+K3oM6y>>Sd2Sf(0asig3n}b|T>a0QKqk%`!ik)V=dG?EJCNsF2o@6q}?MshZa7Nq6q-2+kg?^Pl3NkA@TGS-4gvlMOw*-F- zViXMDgOWp z@7mt!xHBLh?$V1#>eBO5@AnHMjIr^4p?MN8(e9vg)n!toewEf~R}`KS4P0BWSA)rFA{l_p6HF;Kh`mf~D~6>ul3QsHs;j()XP13j$TLG#Ri0a1-J zZ~VN=k9<|Pv<^;ZoPWA%5A3MR5^paL9X#GYl}lbiu^Q=^Y@3Nl^vJ7;Y!D7u{Y^gJ z+Bg>qUA^6jsfOBV1&Zbs&+&eAjRa(U-`1=WfOCoiAsi7-!z!D2@r|5)XiIpMD{5p8iMv~dpH_vtBB!=MoY-SK>X^w*7t6X7FiX@`ACxhAIhlMXmKhA)nZ*j z?;kYNo%ue%@IL`X#!qjoTivKOD?Q4Qkm(r;euUr}wy$v6KW1g)KQoShDzY=j$Obxl zQ@O@5`q5x8uk~YNc@@3QtjXtKB;8{q^itgc`qqW8o>Dx>M1NMzSi824>K2N04H@8q zedV91)D?KGiOz@n1`_kvy9li^$4uc2)>f{{VMstxa>`PLr!@mzUQUx58VQ421(O z)hEzms@r@W(IOjUp5kD~GBe{cA6EDJQo0{1?qe^;Z5@?L>6ePcoQWg@Z{!U;{94iP zB!V_en<$xpc}Uz4W4ZqT0BfQD0EI>2l5#ENP5{7uKO<2$!W|8N)XN|l&K@LT{HXZ{ zBzuXhc*jXPJlC2(iLBm8P_T>2^9+X^F3g7H_ZhAV)8eO#!{*~d(r%ERkjl}vKN4%u zto{-Bei@9?J=C%>$@zk)_5cnAZ`yb(MYY%>w-{eidHVX%chEUu)t-H8@t)q?h;`o! z>ejR4BkatRs}HFwS6|~7hJef1YpPFUXgK!!)z#nl14F*m687R5T3FL!Ad?ZVxE{5B z4+&{8j0;u3_oDac9I@_kuzXML2iDWf}OtfD8~b6OT!ZLN%9En`?z419_gKb0RLG`cd4?ZxH0BU?dh zaD;s7@|c)?G6+A8D%G6VGRXdQnm~X8tY%g$dyE0bD)C;$n-tF}cYMX0*zzfej%g)c z7TCD!^05B2i#(YkOF5JPdNQBGtxERs$c0HESYY6hNo#B^qYW=H1&TaK|hWv#CEo^ z;74y7{{XtUr2K>hcKpm^3-84>Wrjo#9I-N~|%^rJx3RM)h3g``bR$)jJq-fG}|X+Pm1(mcO0bxRW%?z18OwCHr32qZEzDJ+Mp z%8JZ?98>kRpr68^mrJygV=0R-#(BU$g%@3d-ew$r zInd>8>2!g+gMfc3m3({Q?aHR}8@d)k0sSje?9x5n9?IFG9UQ30{VPH{D|8`+yb8md zstnM*0^VgSEpo>618e5Xo^p{kG4;hI?yzmX=AC~&27h%1f30fm0->4+W&7)s^&)^V zr13Oq2zS!;U~!$lWNiI7s&_stoJOr_plXxnoHSxGJ-%aI0I|0K;xYJ>PWvo;e2Msq zck%<9wecpQB!FD_cT%@fal0|FACqRZ#;-d>S{*L(LJl@<3g2FMtw9)GHm*H|JSvXE z@}mAhV=eV|j~-=(;K(`K7VLX*ROj(+wYGfw4Nf!%1=`W}kH{M6um?^lJMd{IIg{<)9wuE6KMXz%?gU3LSKwDBeV(Zqfl)Z@>2f}s9&HO8&3sQt!*&VTE& zf9f7C1NYCyOAMnLH^gKsd@wrN1hgO@GA~19h*3qzHO>)1sftHQSTN zx1}`n{{ZXJe+~WGWJoyuSaA9N3iCKDS;=; z>S$u8t5HQDLpMjCzH{kMMnRvLoSx!}C_^9SDDTZPd~OP!M?w!uD4;;1B>*C09Wb=) zf!NVSF^X6o$BICI*`kU7UFSb`fX6>}iYWkZ{{Uu?ziqTpOanR2aA^U+;19}*C;@ZN zIL#qBG*L(e?b?$*n8g%R0dvPuNuGL|D4;?U$rQV&qL9EIw3)&7qKW`B+-8jT=87l) z$fNM0iU3UeQu+*0MF1J~6q~4`fDDZCGe}N)3{gce4E7YK@S=(VhG-=5nkb+_gGX*C zqJR(%GCI&f!1tnx0Cq9bo7##f0Y@uI`q4!IDCyRax4tN%fD>>OZw87e0l5Zg{(3jvU}&O?3gn9Ej-rMm85p9923LEP zM#e=*lWyrn6ab;Y9GZIb-ijyzPqha$Q9uSL!3K&b7>1BhMFJGl9m3?AD4-c#@8V7w zmXR;wbAZ79G*MN`tY^&0yzoFPQMJm9=M+&=UCPqxaVJ(4T zQYB|c3u`-b0D$*PsQRYksv4G1griC!jxec~R9NIdjk>CC8zDi}Ags*qqBB{XqN62x z%3UB&L>VF6>QQsKqE8SH>??%GG8CG$02vCbiO=$VPos=#7=5{nw9jEb8X5H&jQYP0 zcM}@be!aWrF}_W{1O5YpRdGQ>>!x&k_3)I6>a0o1LXj18gihJXK4cOYyhw@7HH zN;Gz!{KpdK)WY_G#+>1Hd#WFz^^#fCX4;AtvB7Y!)*T_d*mO&DDOYP)(IIZXjHsaAQ?xDa^zS zkcT55=UPtF)}gvgbfr37TN&w%J&oTWZkW!#Be^e$WDK?4Jr92jM|N=fh&rIk!rSu8 z$`VXRHttG%&ic%$D=ePZl5i)GWgnJkRew&!q`9C+>QG#q;yVtL$$XhCf1y$~ds2Uw zB)0$+`|!`uzhlO1p zF$-&XmNHJ^<$8g=s4$4m_CRd0u zhFc27DK<{sGfYxAOe;5@8KDweTj5hwfl=6wNAOvHEQt;1k*-{VqE z9n-753M9XgcVtT5=%srff+q#BpdQ3570QX@miE+&%1T{9(eYEz6a{s!@UYPMOxwSy z^7s7rGKW&bQrx*sew&~8{Kb@h^nMI)w0<;xEN}9WuG;P7Zt2EIaEtN zHHOBR>yi3a^R_u$G^*c6eRgs8l3qJs>jemFvDys3{w~?=x;#a=pFn;i?!t3LY_L&i z@?pAy#^Xezg3W?m98??lS>cMKy_)m8ScQ9daOsw!#9c3QFD23wm>o$Y9dQw**gv$* z0ojt>`DpM+U0V!w_x>A`6$sq2XOyQJ=Ge{xI%!DUBD!WwP3Zf>ZldPPRJbp2k78>s z*Ob@LA^48Avg^-Fg<(%{Vo&bTa(lFP^+gp>c88G19*S6T*pouS`>2v&Ywe)rwy$d7`%Ywy}VD3IQTO;82aZoUv7$!)K@woH2lKB!O9i1U;1 z5PVeg5bzt4f8b1;-w101oILFa88AQ12Eq?%Z5IFl7vsMR!ZK&(KdWM9t)}Iwr63P9 zb+l(THghyFXZE!J@!1;y5by+kHto$_jY&Q2?HpWyo`U56(*yX~{_imhIqCm&akUjB z*HTa-6?1epC*@@3WM(B7LL?<66>v7Q0IG;f{_pV5J3(?QSJxjv78VZ=4`vSzW=CgB z7B)UUJ{DGX7It=~&mK%JUJkCto=grd6#uV~|074-+{M({`iHBvqXX%Ga*a(K-CPC9 z$^V<^|Gxfro%TQe??etR|Etxfek`8GKUmn9Sy}$CQN%w5y%s|*nGH3pL0t^#H-K-xsMd==v27g+j+XcQkGcd9}t9bmHwFO~5sJv9Dund!3zWAHxzE)z5P9o(nF?-npgJ>mIEp{;k>ocPnItX0qP|L-e@AFqHuXm z6;;j7EP#Ru?$z&nDvUkjSYUCD)0LC4)rk*+px_*Yop*;tGwkXk3T!olk0VHn+HtUuhXr58Ilvi? z-A9mXCpD9pOMXAG7K@+)<&JA@%Ks?I^#*HUgQ~EMsKm*0=Sd0YN@KWJhLg*c9*$2= zvdF}KsX3vP=QK)0;qWzBPP%t)QDb8ZE(8)Be76m#*zm9xt(4tR7Z#&jITNZ7-5z zp>X$z@5u|Cj8;FKc04zCn;SLK}pFeQdQBnd$+XB z6pnp0kJ$K&mOrpUrW$2uFdBd7^tq{qFYK$g)fYKBKMe!8g?UZg32pnkc@9MV0z=^v z#T+4gr_gt;X1lbTBg-6fvzvi~9R8euD+%B^=;N)X!T0I<_QD1v^456+=Ffs7@kM_? zlN9|8T!FF5n*Z*@G;Jwb+0&A&f(cP=5q)L&@w`}}vU0rM(bBM=ZVTL(Z|XAIg{g+r zR!JH9csVKoJ42BC+ffv9nuOhb-8$H)ycDiU;&$1We_a5&lIA%z=K((P9t-g@*jn*A z$U3RB_j}t4$!c$J7jS0Sps=m1`^7*8AT_A~SC2H1F)bV3 z3>4KXCbEz@q(WQSz(WiwMsU3}X{d>gpGWXiBz0;4tEmQWdAtn{!AnCHLf+*u&_q0{;! zFNFS~vU5#A#HMs`>rL9O>u!PB=t1>u@AM>*5bhSahim|UWJ2DY-g4b9(1Mb)!g@9}D9jM<4y9YPI&(}OK>22~i{c>6Dm1Q>{+GTd>|ol(#%xWheL zxwY7SQhfr1C8WEkFnqHCBjy)F+AJLaxC-+3eQV(nkaO3W=@k5}m!?+uDD#-;zugOR zBO#eU)NmIubE6S(9{wcuSaaHqpvl(4;en@Qq%8Lb0xIlguoIyZ=T2%s;HhpTHAm1} z^G(_$?^mTRbs*x1eSi2D>%dj3otUiN5Loj!-X2>hD`|&4C8?)Ny^jYFziP?%y|?ev zawoO-4O_*wqT_#4lji0bJ;I&Be0K=JEuc61$@OhRNS!xxILKPwKFL=cMy)M?(goF)X}U+mhD%6GR6_b82sKpz3Lz23+KO!r zv9vs&2#VWHy&TJ(tfhS-7zl-+6H2bBjV@OfUG+B%?Ze`xKLQFwHd3+ly9}RW z)|(bh_%o^n;>TBRCMp(kboWH$x00viY(>ol?p`)oo&_W*>{0N6oKwZ2#8Gtg(XjX8 zbWzV0VlekeSKW;Fg*|<8coB%{D08)CObY;{K-gAnjx8mhy<|-S^#(U}=mvGzewD3x zp!@04pb6peQLD6*w7x%xnxLvXMV-O=?rfEZiEJAs?rj2EBxPE`(ev?N*o5LKhyK1) z&;hKV@E-y9n@ZX-$Fe8V+`Opt?8snk2xPHdAC*%HJ-hzAO8O_?&^fguC|)!=|(QLnk@lbQ=z zslhP$qp|7@n-MC@MSTx9;bMavVJIu4yJ?1Bqiys-+Hp{ICLy@xV@hR_{)DLz)k9x> z#*^FUtYry0jqb7mC-w?22{uDX*nkMrgjmXhY($lEUC~}BX9RQTC9WURDg?+q^D-!$ z$2NRI;?ch6bwgjl+^crK|CLzSSs|GTGr21Dz*$(9**BJf1?g|`&{d(TW;3jZ_SKP_ z5~juN^xnV76;`Q0;Rc$YswxWJCH+=;E3WX*0=BCh)K_@Yw@AS@WpU<~1-k(OEs|<# zbF=>-2`vwp1$y9|HJP1FMO^OB`?wvER>zJ zLu0Cnw4LOhS^q5boI+rw(ov-x6aY6fK&T+i7Ym}Hkgh;uk_*Me#_Z86OQ@{K+=$H9 z-8kciy5wXrp)W*2>sP3o6%2&Umv#*wW;2CcxMLooIOKiM+uE+6%-bI0i68(*PMc zxpAyY5W(@j|I68dUE5xYH50@tK865>PIr{VHm8rW?rP%G&4FQV^HRC@oL(v2Cw70_ ztNwAF<636z5t!^a6JY~%Qz=`c2YYmm1`^xx2Fz5rkMp80BxjD%t7MRLoHn)Wi_jpO z#L54a=LCMwgE)%D4$(ed^YvBc5{?fb2~0uz^K@!HVN)>j?TGQSh^bc&TF{p`kGCJw(fYh}fgGV-aiA)y|4#cw$@lVLj|)o@tb&tUwGUU(S+HLm9Pn zeWC0afmk6EP2jSpch#XqUs+Aj&JvF3M<7!C=qd^zv9P>TlFN_YLaxg9N5$8Em6+VO zCDS;2fu|(Z_86S>R9tsdNEYO~mNn<7kOYp+!1Pu%!=4f<`*pWP{Z=5UHH1#4eJv6E zZs3Z`Hy%JEb(?#1-v*aaPhhZ}b#yL?^Dr6M9a0Jt5u!o(<46(Qv}h1@@bOc}YEm7= zMB1=GDo#k#Sj0~(#7j5oyJyeYH6r76Is)Pwq>E3k+mKI+YPl5W1TIx4jn!yWg zbr%Ym4#82g&S=P55chgZBiwr#rx6s{HZ10?uCGBA?p0Ldi~LX;z0?`K0`Iy0`8|5Y zvFFpXC(=fYL29aVZDxzfmrp=hF@?%nElupQ9G!kTxz+0}=ox8J^n^5|avBsv6{!8U z>>1D^nub4mVW4(o4S7rJIU}#G=%G7V!NMg^p)2FY5!4c!g{hY612%TOg7L*kKNl*? zxki3*BNC=#*0W1DAHxOV-?PI)Y(vMXxhDixQh^)xq;l$`D?lq?)vw1y#qhLs0R$3Ig5+{Y#v1}d6Oos@E6dm_gan~dLEkN1P%h_Q5m z1vx}c{a?=2=y^vE1^lSNuktCQLI>D3!)mIy~52LH< z-?DE!tivq4COZBTnk37EsO#_MBH~9)hM186js+gmdX(#Bra`*7xuH&`X#;NdX7PrG zqI-ictnocM-{vjT878VCgZ~)79`6+L9#b@ze_8P!D~v%3vrhNR9>wt*t@*ifpeq-)$tk)5?F>2yZ^BjlN|6BQ^AK6 zo!e4o!8{hj=4exc?(cskGf^9&E6JQ0E<7s@`XXg#2)$4Q`gBRjSG$z(y(IZrOiMu` z+5iJ=(@tH4mr3VbX(FW@8x4)B^jsmEi>`-QWQ$uQ-*K&-=)k1VF2?c$;n@^ui^n7` z4Ou)|{_u!pl=KJBlbV2=j0E|ia15i{=av1hbkQt>n@z|pCv#E=0{jP|pT_d-CdVbY zTRn_xPRck_LG?G0(uWPkKPL8V9vd^&ko4Xc;zx!9bvCCFPq~wMrl&)Sfcl=zN~1M) zYYf#h>hjL}9&xH@MuzZ+UW8?k1OJ64h+qnR+RN=v%Am0q5oCqz)&;hN8EmHky5}1Q zj6t%I1Hxv;#ELU11Kgpl>{L0zQOpu3KN!C!j8e)71fwwqm~##th{ENUsvt_U0&8ej zwawt(_%Dmd%iH6K(QIDE1r$nQHmF0dCMR@H%{rwWMzSgl2WxUyulQ6Dz#;!3ON$}o zVNUdcWw7An;pzAlz?s8Cl`QdvXzQ#joq(4A4hurtrOi_x2OX-1v&iJSX3x@OjjUcB zy+AO!f5-p+bQuh4d~sr?hV=GDsRq4!+Zlk+F<0x8jW4uOD`kmTjhbK1J9x;gC9b$` zWX&r_gS!}IP_+8?3~IAIVn9xAR2}C@D}WP<*_(-OJ?) z%HM^b4-4S(iSxLB!N_wi%`Z*;^b^|jdLXuz%n74X98$~{SmwJ(1u^o)CnNU*YW-l0 zQa|o$j$}jiS&zd{ppPjs8r)r7e^R;aq!EsU4}Zp6j(BtAm$DXqJsXWgwM2)55O>pL zk#@hUydgQvozv_t8ThY?iun4bACQTRn+aLGMKT9_kGOmEbFF7VP> z#IHqyexGjwlLqyag5O0;q^tk?V65WO20y@?6yPMaR(8i;T*UdjGkHz&gU*u}2pZOmohCh+` z2V8et)G>>xlu1#bpS2k~x2d;M#(UMQ97Z+M)N=}TaX(pZm=7bYpGJQ$m==*wcH9W~ zcnjtF-7u5uTKycZA9dG#*^P#Tch04DviA9r#xtU6VoVDWEd<=0qAsWCE0K&IR6~rU z2@U`2y#LRZGmsHjHi>oQ>qRMBqWvu)P(#njrU_ZjQH@4MG!IHfx$bt04zW9uLL zLQHR`!YuEHbqT2YU{QH&`z6nv7?Rer`&BqAYji7Q3Q4a;e(aBHrf6AUcf<9hAy|=Tutnv;jG+C~RNM_MG7OG-x0r5EQa~AWa z^NYVlpCn=!u=;^8vel*d8l(Vjt*?*JZIZ1%+b~7uD^nN#5BwEEuxvwv+Nf#}aOgVX zlGl$raW$LXCsq1Gn!?(QsiE!R;)9$bnWlgH#?v^6`Bq0&cm6(qOHK!rI z*dKsN|DYUUndgTz;kPoEr@d4~<@9}5v*@TLQtE9&?q##zaOa=yN#(ECrd_B(+QJz= zMd2G)o^W#SbQ^K2>sKT&$y$rzrUPe933l309LYtyel4+yR?m?>xXEjI z$Yi-+{Ku-|q(H;Ft?3|dmw77^@J9lmhqLdnUG~w<;=BZ4mk(20t7)^t1ZNWhb^JFg zzwux6?Bt(`_Sg6KcQF4&t#p1Af~|BbLLc%r_o}bU!9&0!)P3E3D_0z21Q~E)aZ%AU zIigks=Fd*4v8t2-1sqhFb~8PF>hg_uEFFS=(dVM!PLdfIqk`=1t=w%&(R9ABS7ME|;#^Lgi4$ z{6NxTheu9+k~&k`t$tO_O;painN!UM1BT|o zRsW-72goTY`DHN7c{2ReeVUjZsvgIwswCU{c=$6p%(!(vN=vkbr!hcCLh{8C(DVL! zAbfygL|sE>i{|D&r&q-a`^UA(xBI9#BhxfCN9&`7?l-?$ocLNhR)!QOZ;F}pJXyd?ITs( zzi0djFaOQ+u5E8`&&&&<^bW<9APJVH6xr{J^F|1?F3IntWDTHd4AdO}Cgr4msxuBNeYY&4LmjHe?_7O(}_U;J8qEl-`n{ z`45M2Z3^;+ZB7?WWeXU{M9mCtQ~Ih773g&mwPV&Tf`i>7@0B#G8i@QMFE8-({d!fP z`l5iHB=yx${82{1(D+GSu4A}mwwC$e|VJLvE4mGSB7WHV3CqJQ84WhX14OaDZRZroG!=`yk83WBAkll*?QM} z2M&I~)#Ei;&x_jd4>0yAvyz8czM9!}c)yAZ$jr+Zo6HOQdb};UM6>-Zt=6IAthqtL zrQ=!$OVY9wSO%BT+ezrQ&s5JJMOp3~Fl zX0qDQSNRxDD0u&=D?_)L*Hf~SAoZ0mW0?<@gqPu64uK6`7i(xGq>t2hNT+@p57DGv zH1po05#te8{=eBoZG>&EeVbcGe1J>QY(EFEv50t1p8s``)H-O3e!uUFZ_(1Xp!*o($0zS#cT%?G5!^K zHI}6JX^cAIx9+u|6-a9&_@+7c`f0@YEaz)F{7jLpo;&i*I8#ZBwg98U9Jw@uae$co zGfOa&>Ezm#dRJ@eaKCtD3z zO`f!K49@U*B3~(rlDTZ3m^~0kLhu7m*4kY3jW`~+g~uEjD>xTW`sbc7KT8#t|5dJN z(fd6Uu!0qT<0^}4J$bOEtm^GPTTWD`5NdF*d?~@-Uo;5Bza!y(W%#}$TQi1-zwx`clr;-cC7by>hDk-L&%AQ%2y;@w(GM2R7nQy zR1%{bC_K<|p57b4x^hIWrR^Nnq<#9jfaI+-17-ZMl(&p5v==?3IP>ZxUJ+5ZoQXXx zb?4MiM(`{h_ob=EZ(`XbifN{DR}h&ekgBHhIuglFkFfG8 z`{N+sJxoO>BytqM)>R2qxc)k1C5cWRoZZh6(<=uZYHg0VMh6T=q*K>Zv^5gVf+00k zpa!=ZTDicaemHp^`)MlI&q*$5)O&fa5mzM{oAEs)|IFNvVs58}5?kV3^?ZagMoa&9-f;& zjSkNcKs#E-ixDbMyfS!%&*bLLGjwZ=ak)z5x7pL~K0n2L9X!7GBnYdE*aWQbE)v-C=& zy~WkxR?%A%`CB$vtCGb?V%}KC3jrEwo$MdUX|#)jeZ+c>^)$G5^aajRR^l{tAHnSy zHVzvJ$KE|E2>$5p$wB#zJ-hMxZ zDjN*Kn{+@t8*v1_u&5{=*CENrBOL6zyUQlSASWBfK38#?Ek;P}&B5fP(iplhwnq>y zw!+{ZaCX?4SaQXhOB&RqVn7VI|@skaW#5btUStB`d ziPJjQbS#S;@R-uZl@mj-L~T})&cd2$RGpjN_sf6nRM^`&mLioiZQNqpIy5K$YfCHR%47 z(E0-^qQ4|ph>_4P$u4)$K^{x~K9*ZOK|7su?Z<_GHfulLU(j^Ek{6rWaj5+9!rMe; z0^P8{vpFU6KAgW%iG(I!Xx=Q#p2uc5BFh=nKl-8ZvN8oJ!+-8qkW%pD<84xWoC2c< z62d_&MDZn7uLqzWrSP2Tb?a>l+N=LQ0Z`X0u%sYjZw^AV(`p$4;F8;vOKa%=Bo1XQa(H=>jAn>GLuptcEM7Pg(KESSx}bFp$RpTk*q2uz8cm| z{akk>#TVa$vF?JP*|7xjmoQ#5b*>ZUT)5TjbrJ4&-LHg(5eaQ1>kY%v!TMbMM8LeB zXwILEu+;BMrK=BBFzN{o6hzLZ5P(@8MCH8%SRT)nAy7>K>Y!h`VY(RAWH`FQA>r|c zo04GtjrASGVLl{|at$u4NXvpGr1AoaIOCT^Avuu33r+6|r$++mQ#d0ZcHm01VD6pU zBU@QSRZar=6a}yPLs!pQO$mmzeg>&0KP+43Xcej}Z=>>!DN6G-wwndv7Ti>7{i^4 zk|3~DRW|m2dbc5&{|(8lze1kthmbY;{KMef!^;J!?!7%g4)q;LjR1E^Txn z<}I7vR8pMio$ouol6)iR=^bvOWy5vnmWssU z+%Hfcp)5MC`NQwmo59Ek9x|Q&3~IACCofc&UV~XYN$TUoy(1#RI~y>~$l)vY1BtXT z054|A4BY4EvOjKI6e(e*bhK5%ci7S*rjc$C@FaTsyyKY{`jf?MDbA;dL(*9rF;qWu zxpOx|ibODP?)T3!8bI?{wJEh>z>dQAE&>L_UF6kpE0;49f30qZaC_2CgjZ1E2{R#F@LGGA_e;_?qpulSrGEjJbNx0T zW1a)?a`)7!a=iBOzka{2nF*?4E6rrs{hq)OHnSEd8^AJO7mvDaf2eHRcRjZxlU8B< z&GF1K9+F*?fHb>{VB*ar3+-J}bw?sqZ~InJ#&}8cGarE2qP!!eb}mv9f$;;AR?|pv z=8ISuw?5C)C^#p}XJd=leW{mty1@5vcnDR8c_n02`Q<#R;4SPR(*?Ccy)_7UNrtjQ zVw_>$Or{VV5U8bJkWxMX_m^Y=9g%rHbr{Ly(*tK3p|6&0Z!C9#TfTa|`vF>6C$AtS zCx4rHx@nG>hDc?Ox-en$*w8y5+Kb1px8vb^yjq0NHZd^~>t5kR1HaP}Vs?&pig@uraa$5`LpWqp zBgRglZfq_!%EP6=tfFH`zM-h*wy~<{yPR}KV^2jtVNS*9VJtHNNl+61J%StWm!k74 zu|!|@5@9fXG`yk+4_Bhr=o917Mrm+>GNBe3Kxx!Q(%vq#lrAYD4rqP+_IfkP&x^}G zz{oh|_2i9%G~B5>@DHqt9vJ$CnC5ztMESA!v5c3(0W{bS^ zu;yPw-)XIbueqI`N{u!w3rbH1pxIX_kQ~{+;9;{%KXcqBKO-}VzEPB}l^z9WGg%Ow zb?I0|sIpA2NBC_-@huIY7Y2V;cBx2~yXAWkYzmkD!b>9Vw9|_+2FLWHnJnqXKHdNH zR<|a&qu0dCzLvgE!R`0C@T>N*zV?fEn$2N8jcnjT zd^0HU55{xIGV3Ce$?0KL?Ql-B3aCsR{mkFH(^_jFm}`&?PlKG)7*CAP)yo$CP5;$pqY#ue z+LpMVw>J|lOKS?V9xlH9Ny8*o(L@`tT z0z-zV)+oMuNopUBCQ&WrZW>E((^a;w-NndZ#n@S3qwe zM&qush03vMK`*gqWQGK~BnlDh)I>K+M6kFbCBSrz=Vz^rITuXoJv<9icr`45qmx5q z@WPzzw&8^h9Dr-+Tjw<{NFnOK?QQeWPP-#HjOM9U3OsUzBaZ4t0{wB7`Tgv2@99B*b{S@y?p_DAR6V1^s zp~-IYN#v1ReKS>7Almxt?~)tB|XB5q^PJ6HFtPFH9Gi zbf4k?iW5~`4*+`&l(6IhB{A>krA%{MoD@eF*2>*&8nulD_j^ z*V9t__vc;tG5{RlH)O>h(*Bcx8+8q z&b**pX?T-E=V8A#N`c-bSP?yX@8v5Iudn`F8GMt)isxBir{l zB8}wk2-`j|@*cY>CiFJV^=Yp?F!s|7w7924J)d7tRSH?7L&0~V2*H(!Ij^yt*wcU6 zI~jThR8-yXRfg1Kq!rYDrtfDW;*{~v_P5u3ZzfJjldsHfJQUqmKD@Pu4)eq?$1}!S z)1G@dvCi=Sv|fPu69LOKU*SXpqZRNje{ui*8FCFD$q_?!XrQE5#LtnjF7VWk3C7mc zOA!6q+yzdH^Sk}G4dc_zCajk};YllwI4o`IUq}gc(_nI-Q}`rjQP&Ah1*vF?;+a3c z%gQkJwAx`jI?KH{K5jEy&%)Hf`GxWcNe=W94aplZgqWTKGFm(XH{j795=;Q6;+=51#uuwS8 z;?y)bE51e%G-thJJ2=L@d_~S`&;U#p#j55>PHlpNPgR}Z@$9X#gMUF2-wEP-3 z&X**Gl2O`DNMV}<3zm$_u-h=wXm-D$`MTg=rfC)ZIwl+c?gSs!W^+6w0zwRxT?2lq zQj(lf$}?9}#^VDxNPeq9^Reyag>p~xqUb91T$ z0A!_5FoLE)^{FoB!GXLsoxsJhoH=%W2dvpx-e6YxJNbH^W2Es162@=1bIUNW2#!I? zod$K^kQQXtCf)u>S_M`nl5=8c5%g^N;5>Wr=ngYH#fzcJG^CA8R~J-r+bK%@(gT>i zrBqAHgB~`HD(>E9evTmrwg%m!-|-0%T%oEUCEUS$74&ZO$+{4}xUJ;kT0siz4e@WYKq8AnJXo*morBBti3;FU1>2kXn&&#jRSF zv`D{G-tfIv(>@IN0;J}Za?5nA?k_FFJblD%wxEB!+K#_csrE=R zfD#ejzNfd!W*2bR#^b6lFs*L=#;JX&Z#ni*dlsJY)^T;1d+~)jsYe>lOmK61${Uj;T_*6KahUY*!j+9uztvy3=!}vd%H5;^qXQCey%`SP+z16pOJt$x z@d~e>t;?EmlZ#nk-<0`PfER&Cf%0Q$P5hzljH$gNFKs29>1(zFOMy1xkvgVjv)bX% zDa_&*@X5lmr77;P#LCvpk{ywK8MM}gR9u`~T;`Mmg2yh){hxMMf*-+;Z3|BQXXxQ; zGld#KXgNgP-dKthd%K3*PO#SoK!4ESAm+hP%0B-6AlM(*39Uc(bhf#+Cxa{jf4huE zq0IUY3)?$Fl<&W-n%jbprGL*`8vfm7d1Oq(D8xfu69dwOu^AtW)v*+fsxD#zJ3Iza zw!a*E5Z?a00{#A1#q3{w>S`5B5mNZTw_9jfp{DrrQ~3<5J*_aDp2#qJ@aY*39ihTg#BFM6^L7!#s#|hX z1$2i_TF>YV5-u}*<(Mu(o95we4w4B=5%(JORVUnu=9Bs;6q-Q%0Xw#)2|fBa?vR|z zlv{FFDQ8Kr6-smg=F$3`EWp8(L>+O)S0w-I{0w-F8!O@5CJ*0dNronib98mEY^dV` zJlR7zD{SCnI_JlT z->dI%&S{)S&m~9fDlGfe9YpW79YGU&{oM)LMQff4{&x>OEakuj^J5I9q_ogyvElCJ zd{tl0SEl{I;xl$)S3ee}-}_AObAJzAOp9j6NIHUxp&pehO&Q#?lv8_#IL0>r!G1TJ zdU0`lIQpcL^R(uCB`8a{Q)Y)(jPQaortx#qZGw^OndPpR?0rso6?;-$X48uAY4~(mr&PxGm~}_?-l0h8;=z-k47l7qL+H zw4*6l*|%`@QN>G4AiYa5<%0k{C7#o`B+Gr2HWO`V&FhAJdpvHaNh9-H*wa~lB2Zf8 zMbW<$4l0$-sE-ZPg{?7d>a&`Rwv0dyiLPa~J?2%MuiTy3Mj2xG_U>z`S#@;gh+I^P zR1uTzoIi81(l09-J;6Z(XT`64nqrnzk;Rqs!=y!&cuO=B)3vX+vqg)>0PkIY8?H{l?c+!S4(A+K_wsVLj z;7N|URb3t#*VbjMicE z)A0223~QsGU(%VdeoD+`;5A%mh(W}BcLQUwH>GwgcgJ5!w*UN(2T7UCjp(0`Oz zJJqiWWxk`%`PaW7mJy?8TZiGA`0Vz5o1JCd;(&uyVr5n%$t-_}9#+5d_%RbidXaQP znJIre^}wRIpxrz8P0c;=gthG>390xk8wC?%=CpHr3#mTd$nAEQO^XNqf(2uf8DHq}M+)wDunPUJUsE&Fsf$TVqvxxU^U@fB0*bVzA zA&EON*JkZO)K@h2IeEaq_B7!hu}1mxm0E+R+6*{fdi%;bCKc$g8J_B6b=*A0+`$Od zBOQUojnv`WBW2ocXO_+q5n?-&Q?XdQoPt0{1fpPUb$t2$^ zV9dniC5wb^AjxCC4^mRvbSsZCYozDm5;o{?dwnI!Wnx^^IafxV8ANcpj#cp&vffrE zDsk_%4n?b~FIWsvN4eo%XHs z;FDLr&>Q#nlhr!M2gDP9J-Z07d~IDflrHnHv4dt%m$icD-{!8a^`-v;sHF-l~fr z2{?68JX$@X-pl&kw;e34Q!9;~z?#t2>yV`M56B?^&pRFrENh!DzUAF+Y-$^{e3J7S zZOmQha}u-jgYi(uv(a%j`b@WUBSMw zCdr25zE+zFn@$FaTG6jNQy6UaYiPdRo!Hd5d2Wr0*_lE3M#H2}q3a%-e&CYCzD`e* z>Wc)dV$mTaiIe=?>$hKiJTVw8wm;7^>mvH4Yf`&Mwu({>oO$TE?Q!1bW;Vy5+wAE>j3W~AZEa}VugG>=(Ee`I+?_$kNd{BX zaIYjpdS0FqnyT?iWaV22c|o(!ADJ8g5usm3YU5|J&>Lt9v5Wm`g)ba=_PeItW-k10 z;bfuZ(=?}*H}gmBpG#e7m( z4DaheMN>SLr@=cE7yS4QPHd+{yH=X9t@h0uD@RqLm@d*wKT*^TdwmkjNmh(@7ctNzw*DGqqMBIdeet zw=+ziq@&I1TZR2JlN>K)Jg^JQ%m9M?ZcL(MrhrQkG0?TNVLn9{h-(wLdlXoM(Oid{ z?e$zR5QX#cT7`!5(?8icSvB_Ms#PB~@|q>2`R@>eZ1^TP|A4sYwR5Kbl+bAm{THXT z^F!z-i|r$WEQoGny^Of!Gp%KSHjYCl&!AzJ+~>)P)vwaly!J^)<5B#>N>+;=J;6Bp z_x>JlzY`)%`%A1}r9Ml`vQG`(qFf52lPD*=(c2RTUhglcQ%gLmTD^x_w=fAAokq?a zzxy(mJ_H)qF|;GwJE5*Dd^BO!4v!k_2}i%$+6LWx`p6#3AEuMQBV}n*mW;V;dga7a zrWi_qWm$3W)+-U!pSB?b%gfpWAP~6bkI8jW>x&pO^v9q)w|g`9-HXc}5@iDEy3zLW zC6JX;zNqWdPD#6@Wa}oy3|5jBhw+OK-{Km2<~jXV;6WJ=OLZEhE8%54zDPBoZfe{z z<`?y%OxE-HIDGC;TbENP-?n-~vNW>;z}oe@e;YQv z9Yt+r5a~>c|Kr(aeFmC)$rM80qWjoQ^9dk{Pltrx>u#P;dR4yR#n_yH(`~EM+*Szu z_9Gdp;m7h%uijoBSe}Pl9+hYS|4#{L9TnC0cJZO5OFBdmq`Re+4newyh5F%!Y5JQ)e(lyc{%>dF}@8$RYdDohI&)oH#b)R$g*`M9|nC*8+C!%;jxsZJWGw}lld3_ooLk$1u}4HZh&h7(+dmb8lMlnV*OmM02#-~MarmU;Cnc^zTf{16&F zb+VOHsVwMsGJIQ01hNbgCNa=2B?qmmNNT?YkEI_E>;vnB`umJS|8Z)0H+T;PDtH>j z4V@7d5Ya($K19)#tCKZ)?tzoQRgT}4n|34XRTFe`L$rx-IY;Ob_SA3mhDbsd-l0Pb zLlC#e*J@$KQ1&kW`?3n+Fuk+k&3R>LBV z$$yg6g~tf0C6v7Cx^o``rbC(*J}4|a=1lN0W+v;6?Wpt(#M?5!qauz6rUByTE}(`+ z#~DkKq?V!C&P%Fi0MbRtvYqXGy}b@opicxl`S&6a2W!s6&4JhKOEfGNLRK9WmA9pl zm{ND!RIa{=a#4=PgtJLXPdXh>=cyaXH;$e67mU2pSfLr8T7FMF3u%2jsUT^k@a1m1 z^I?;gH$a?(ip+sD@QZ@qERy`XN(@SbsN&$r)N+^q6N zjuKOjpk;%@t?y|&5{p~wu=&3Z+8XZRxkvVi*T zY!2(@s{O8Uaa1aQk?vJBF4trCzW{o{HBzq=`DMFxMa@67Wv_+Ed*g>f{+@a?u2sP| z0=g4>vyzwfN2$U$XRhQgH=`-V>eahxJa}Jl8=N$*7^QL;Y%vXZ_rUTZNUZj33_h7A zTG4&^`)dK0!ZYdhAqj6lOp*Gw11?3_f(h!NAcz@S{^2#r(nlDFFmp+#-RSEIns1?d z)(L+GtE5OI>qCo<`xP*G>7VC00YKopSAR%?%UD zm5iq8)e>HD*J}Tw%zq@t?0MmeF?SW$b{ z^{;dDj}ey8K)CZwqbMT`ilVA@*Dv)rchI5Kf4!CAY?J6Ni(_e_!$ltcqYh_xI{mif z3DyZr5F9BS`C52aC0|OSEkEY*HsGQzN7T@A;hd55U06^4B69=aDKDkOnl{U@7EAZM zoNmP$)LpJ}W(=$uzNI;-JN^k?C%lBf`3x@&C~p>WM`9ETK_PlJrERY#E_ z4|{u?Wl?pjz9(e6-`+D*U_ZJ}I2?^25Lwt$7Qp`; zwsC04l7rOX>f41C0bCoqM#=Vhh`->vwaGTH9`L9~hda<*UizK-CI6ZF3fPEjaJ39i zs$@92I~uej|i{AGrFPLXJ6a$L)M(4uVN`t|%9ECAOipZ__O+t9G z52G6;ozPR+7^DbF{}Wb{XuBEv`f%Ds=efwsLkhw>C0;%2rv=&24od-U_XEVtTQvS? zN&}*B%`mnZ2JX|_%>gl3PQzzhT+p0-0&}x;SU*>We;7vQ-%*K6V`iROo3DEMVl>WA zE_B}~7dis4@7@fVJ*WKfFXA$ z!qZ;!yd={XveSJ(V>m>n4uT1BGKFgSHFQ1i(=+wiROm&{$f58)!yG95*dm==g}V6m zqG>%-0?tY6%fA=zGxO?H60l-;|HO#R-1(&WrH-wAz;DIW=*eRphK3xgDv*y6t5Ew$ zHsll<3KzsD7RG5i+O22?sg72vp5^3sEYc?1E?(saQetSiaF)0xUnCAGeQWS`3yj8Y zbX5Lzv1uOYl*z1?UT^g?2&1IzAsG7Hw{hx`5q{dUdSpW-onDQ+h$JF916T z!p(B{uk};QBtw!%Xc7GQX*L~;FdR|mzcKvYF&n^}aTe!+>Z*a8XmUGub*cNa zIHryV89e)u^x6N%Fn*()&xDY`fs^mF0s^VK&$jqfyWOauhMzZktrZBKG(RA7z+7qS zcx)_f-40=di6lYR$q8d8q4(s{GbB9DhJ++<43PaH)%regB;38)3H~cP6UepTHe-+e zlpgU_i;X$J`nRL~fy5BXP~bmWjTco~j<@uF`x94nIgg75X7@ZsUZ-N1eq>dNG14B;FYfBeN6I8LN~)p8~08} zYh|+&ndbN)N-~meL%~L5rG)2-#I)j0l}JPVRs`u1OPHh7wC_#xFI*D6IVMGwWp&MY zT_qcn=IokFPApwHf>No5ftfwpW-)y6FL&NvMF__)l)2}ZRQ~T{tU3hT@(a*G(Pa_H zs1eOciumFU222+V<2p)VAF~+4HADtG!=LPcKB|8t^oGZ<2AjjTi2fb%{A?M!B3;ik&j-(fmVT}tAOck`|IfIlkX7tF;}v}^4ie0Tck z__v#=Jj*f$(!-pJs?+N461?VoY`wIDn;cQjgonPLYpgjtj`8}T$oy6pdvB)O>2^PriFTt7d$Be6U(O`8U)Ifu1rc|c(3w%e%9+IFtlPL4aq4gW%ICM;Q|fNQ^F5*fm?jrL2$KAw zSADf-mZBKnDs5oE6PzbhNkYrBTBMV#060B=kIuV(8z3{@RjDSu3Lu`<{b%Ykqkzo; zxdIpxG%zU!_&_t8RX4phi1Iy}l^FaG)=hAp;n?O<=*y7gf9SX3*00FxC8Fj-~lK434&`*6lMTJK@r{`Y)y8eF-( ziwcF@Hza$jUUo@{QuEk5Ap=6y-Hhp+mV8OQVRteVUM&>fP94wMx{Z=Go@g4T)#rX~ zp2qXekM~O(`-~CVI#rSJ9Cy(=lH1YwL*z`hu{$nU|XUboNgd|;!QW;>-5 zf`;UNr~Nr0HW}FWO~3FsoA|e?M{DufkgodP=*O?`9iKl~1h`IjA^8FP=+}czeG*H4 zGF@Wz8Uv=LFRzD~hh2y6y^xV})zFUlS0$@{dp=P%=Fu9!6Bs8RX|HTf1f`33EZ0m; zET1zk;_s&OtHvatEK^}y7rvBQg$CL&dXM#EM~e}>5E@>x&feB!fGNeE@wsG_Y6qVA$mH_v^F0@X&*mQd;r<`#T0psHr-q*bhF7xjwR zlGK1;<7eRW&v{%zyhk46GFZ(I@%0ByKM76$1A?{OfSd?1?g7ddZ&v38Zp%uN?F6^X zO7Eu#%h|N)!hdE>M>)>8e{&h$i-epBXZD(gRpnBG<+Eo;fq<6)it%j!3j@3~I$HAa z)mZ%ARp@*huCcty-In<`QKMdgDoU}t)ll4?mFm`5dmm<{LjK8=`PPCFKT3bcYVz}m z4_|bGQeVbXL``%CEF54uF%Ygb<;{ZSuZOqW zgl_C-xjp~2^Pcw4?2zzt+%^^|CjT0WzB$N3)%B!y>~=YI4;ZS)R1mbi1}-En><;tNRYGMp=mqq zf%T7$5xaH&c_?G`$dFYR%ftEy@xTKLKWCMyG7Grv8`hLB3sk@CG-^X-$(X4M6klG@(nRYAWj&?y!e7d=AOjdhtQJlki zDq#DjD!8aGSPa2QYQSUv-txJEQUnZb70HW8q5015G+#ek5VPeoe;LKyF%Y-~{VQqz z4>8%yEHlibk6&tFR_r#dFJD_Dv#6<>Kp0@7>Q6m0y}<>tT}#7&ed&#CyBkrZm$5~I za4g-<7Q|62ahBC*(f%nW?|~2Ym$f4zB0~ry^Jn46Yml-U2b&$Mv+$9*Ngfr8q4xB7 z^&671U7Ks(WhsB(4OUrpx1qbZDI`FUMkBog=Zze;mgaACrWi0Q5U{YFX+9vYU<$rF z(ACso{V+pT2%%n}GUKX_qB~LoSQ))6Kzwdt`w6tsI03stI9HNwVAZVZ*pHlfGHIQX zZVZmmkGNQtL9-txrKXlnj+Z`48lb(f5Z`NW;G$>IwiXEGLtgE>jZJhEvk)L$el+V< zY^P)Kc3(YDg<}sh=UQy7$D5z5siMg-9jVyLFWp(}PR4`M^HA*Zx8H;Cjj-fr5~=5l z1Zb5;AtA;K-``+;oYcvp|FE-a{LS#028upSH0|zFJd2zbe$v-Q(C72rseZxny5x3j zMH8(ezUAw~uN1F6e!N)ijUY@cA-JN8ohrFO zcioRRJdHvVhllYHkSl%yyH&@&0p?@Oab@#&jE}~FqB*tBO}Q5>g$+Kn+eOnK<>m3a zT>dH3seiB^_npB;L};Xlh3z;(%jwG^m&zNLZD{mrEsi@~1Cw?XvE<3I$JdgY!ugS} zD&F;^eIKclG1mbBk_0`j#V*bTQm4d0kMCVR+q8|%i8T*Yj@k=hmpG#nd^-zq3#cN9?3!LKdS|o@n_Cr}&6d7W7S^t`Qw;A)Q?Q+qm7gL&$ z$S2Yi`+atJ$aag&p&N{s#t{I3MssC?Cm948;0pO~{O7n$%($qwQ+}U8eSV1)P|NaA zEV9o$JBT)cwb-4!clsiCp`#`!>$LwPKBcTe^wOJ1MNa_3W_EbiqfH+y|A0BZqiE`d zuO);L5{Kmla0%|FXyD zE1PQwUsL$X&m)UeHI%4y&afouqZJ)QGxAX=tgjqRE6}~EmaF*~lBNB3=tbH;3N~O><%4*#W^qGw@F8q>1V9%P8kn zOMV-X{WwEBor#SR(M`5MR`bY!1_~qDi)5XunTn@^|KPh2+7lkSjg=LnDQBhaC9p|! zqfxToU$n}Ev~PkS`&6)EZEb4*BE$!7r;8gE0?Lvp>!D;(2c=1iTYf3KAJn&h3S1rg zn9GPax%pWp$(%Oe)m*m!+L|3lc@5?ou-jT96a7c5>jr~TFV(Qe)6ZJvpi}y)t!a&T zZZU~{B{V0^iTA@;w#^`wgYNsQkQjH%1z%;xUJfIzXyRU2 zr0>3oTT-zaR{Tsp?5sk$4TEVqD_*ty3y7>PtGzsmB7bjK@=p_dTT{>a#l zB6K&U@vd`RzNj~ye6z?_r|m*ne^>>*?H365fx-Uo@~?27c-`=#BO+XIq%a#(mLPkzf&7go4UW|?tV7s@^}lsgntC4Un`OVlB9v;gL4^ncr{d%@# z_Kw&{&o)zBx3`|W$D+*x#V|O&;1fMyb3c+1QA?&7$7{x;T;+-IKVY8^aA>k&<`E$l z_zccI&e;`E{H*AFRY&|?9oC(up#(>i`h=11Ybj=-8&fuY0Bx+Jcj5GdIa~MLe@j1f zbagz(ykZfkxu+61`bn(D5jyp96%uz+sa6*cr0ShGVx!hGOAMaOkzolqlN}ipXrX-u zWuS;Sip%_?2duKDG)GbCl8}}r@bhGDWWBDPA{yBw89`@JgIVardK@7tR}o5^t`B2- zj-FJghJW7NFjnaGe+-gGY#z{i=cn>qo= z7qb&hb#DCLHhD4BD^-0JXuq@qD=Gx>rb8yeb)hIyhr5syx)+Rr8|@-l)`n6A99x;6 z8vI7VwP1RBSuyLJ@xXae&zCf8C@(BRte0X!06O zUkOFeHYveuYQunteSJ?w$sU_*u23{HX1;tV3u~bHc^$@}K3u1|6f|xD|Ni=0Qp4Z^ zEk}4#$_iBx_B2W4XF?^&0%O@<0v=WQYsb-KsFpo5H~ z24%xJ3u&-8!aXdNHeZRy8wQu!brlO~s0`vw<~iUxTKfvl)@fj;G5yTcEejXP%qMXL z=__S9m6AN=D#lX~zYmjk3SUF14~Z3{?$HZ2dd=uI@6RV0&}4Jtk;T>y(sJtE51Td-D|ie<|3uq{(qLGn8bs; zI?9`RPF?NhdGgO(;!P6cE1Qzt;rj1e8H(Ienj0W_BAS*!s$@(%%yFZ*Yedo6LwP9h zOej?}Skc*ggXa5Gd%B*c=Dp+$eI90EX~Hp?N>&LwgQmLH{IBNLbNaj8xeD0SC@ema*nFiJ;ZF5=x zC=cRnude4w=h7#tb9(wgZm}p>rn1;9hv`Wq>e&1_%%c5-j)<++7w4E{nVC z;`NMB|dS1i1rB3#NWqg)342N4CKg6{6I zKp6kG>yLnQlz;i3fI$E9-`(He|Ld|7Z~}P$TmFmWz%7u@w?LUalpz}6q60jXIp)7z z!vb7v02}~Z06YME00IEO1VDrUL;z0#hyh3dNCC(I$N?w-C;_Mdr~zmI9^#?{+-CsK z0q6l302l$70A2tv1H1%a0bm7S19%0%4)7X)1Ar5N3xFHo4ZuUVzW|pPfDeElKmb4x zKnOq>Km-gr6#!KLH2`%0 z4SKmY;&)PRs2fnPoYGB>Y1jZ0CO`PhQ!C++&QOpguhGU|4_%0HtLNlomJO@&l#F50t1W z;5P$uffL9b9^mgGfBskU67&e=U-3V<|EuTz@58*xN^N`MmV!{T% z0r)>v{~zL~19%4T9Dp8x0pP)&|6Bgw&4GtD`l0N*|E)g!i7T|64ZIMzpSoWHJ&~7@ zlL4WiJQxWe_p?AViH3@bhKh!XhK7lSiH?bdg9QiDl?k<<<3rUML{cf2#HGn*9g8 z2m!qwp*@t#gI*|)JRTG$L_>ehg+U~tifQ8fl%6~AF|lN9W?35+!y7dO$tRZ)Y*NOz z%S=ZPs{KQ=|D0k$|Bp2Lcg6lMy=FkTs3<_;p%MZw<8!8(0iEb!$|_2By?3fcDTOf< zV|Mw8n&z);Mmef<-p|B11W%P`O=}dHvF>!*Xoe@%u&cei{i1sQj7`>p1^?ywR_Uj| zla=`?qm{GvlKbHz^=~zF6VKiB6ztqfWWn2-FDy>Q5)`1uwxC!B2@0UH@ z%HTZ_p-Jt}%?vs3#|$C`30|^@2rR(T_XaLOtX}Eeh3QFxbYJO6PVYfs&_rmc4-BQT zN=UL`OZShH5F*j3K?uh8+!KI!7Y|^~X!-*$j!QwwPpj$U$SsjqM+th$m zKgx9>bdF@!gpIrSot#2fgSvriCF4o_39e-svy`}1vSq#Kp6ULT_4Lh`y1s&E)Twb( zH;Y<>n5f|^@}hh-kLnN6XKsIM$4Pw4S6+o(QdTL!9bM+;OUBBkrw#f^a$f(E`vMm} z<%hKhd%N;XB1MjPLUIOj=Svg3-e5|~NQF}1jGF}Zpl0q5kp$b?t|e-2{o-t;xfB7n zqFzt(X4*Koz1-}@;HcLQl0Qj}{$bk96+JPucV)~6>8Q)A0UKoWUx+RSZuzs;RYz!> zkiW3dU`}=Md}emiO8vCk`i|xZ9hxLuE)zZmBb|_J#Z9C@j~0K1yDB=r8&GY{fgGyh zij#KXZ0M=b8ATDk7L5tBy&`yBn;o%tKMBZ*;}6%#tI?;$; zq(GO8_gI8va455gke2j9nVU1^?3)ZG!Dmb0#pt}bHMm`2f$YHHTC}BN*KFAiSvuR; z{tJtf@nCqe# zKYr1Vn~QxfDeckG#t?9QS*(^d)o*2g zB=)d%098`H*yd^Rk5AEiSR;rja)xiRwf7+Ag?e^2MTNgPColr&inouu*oVnjNyqEC zzvHi;i0js}ouD4xgW#AXQTYngJr&gwj^CHOUBxy>>m3QV-4T+eA%DL}s7;X%azF0& z~k^0QT7J z;n>U7v!c;{OU6)>C-^YNsE&-^)-l4;pVRe{sMqqDPXu^+*1V58n)V$tuD(}SNk21L z2xkl5J5N;|v}Jkz<7ujCHYu?{+2;by!u}>SK*a z&GKQ`J*e7FvH67h$p2aJkg{n;2g&#V;zT9(=S4&fIchp2@nu&1D%xb;Pr=d8^Ix(N z3f7bHU5%BsJ>qhz1R7eHug%mNugtogsW3$@;G$8vrj*xmLF;@D%(zCKVdyGmQ$0Tbb!TDElPQ} zBY(3&M|tw1>V&oNZ1W6X&Pj9`V64nVo|YzbF0ZOfn@;BHsfv&~K3Pq9+F4%Pj&Gar zCw`w_OBk-3XN}16g>CShBv_5*RB2o0VaNX*lj7dE+gYzq$w{nGeD+F?1kPU7sJmp5 zuRzb>TT7B^Tas1mxaZwFH!-@Y!+^zdt!4bxqUJc}!#EjH7$~$un{9<^TJyaKi^-q4 zv!}BKZbdHbFv61ND+QnN8T&PpnTe+uXpFvu1yOP4Lm~Fm)RCZVnq=E|RmVPmjtoo-=x_gYeeUYWZ{_ z#u|A8H_x^n>3Y0crC&Q5C-sfL^s7z+)^=`8Rs!?O>2xxWWjX4!juNnU>E{>KYJL2r zSr#LSAJE&nH0u#a7fH2uB&Qm0dL^#hh2@iN5@CJ&8~V-Nt0WFW2}W{ISa&la@95iD zTwM4gyA7GyVB;*4-3~%@rV~*Yl>}xBYgwNS=MO20t2~M&IZEQci`PZf*o-ae3DRN* zC>&U-5rWlRDOJ>Vo6gWAsWDOu^iUgHZH-lTd!^SO{#Hbr1oU?qrG1G!GHmzs!VV74 zEVPm#S<)Wx^L`V%TgV+Q3K{$12;G$5uY_}6OHKDSRM~99@#sh{$bV{R%Z4e>d#82s z*|%F%@8kPhK#i5m`PnCHGV65^IY-7+Mj7wCW0Sx#JLb|*F%^2t)*V}Q_2w(*`adSA z6ntFJR369Nl0Uwi=z_>RT_5Nxg~$_Ku3cKQ)by%&T$hDD zLWxgv1PExh;-z1)!Jlv9ZORnF;L+dYkGu2>h6^?FPsbt22}Itf#UJjy9*|_4y(T`Uo^l^;*~Vp*I~*2snAXHd1f!JSb`I zLEmM0j;6oUq{Y}`y-m-nvX0DpuD#|q8@}oqrS6TeH9UJlCQ$m9RmDbjn&mgtFi7mR zq_TX<={o*Gl|0UbbM0AyS(@3EEi;*)0)Hu?^{)GGUL!@XiOsO@@15AD&mI$M)ab2P z>Z~O++3q;$6i8T?Eq}6laW=Qq@`vPmkU+7*Eeck*K&jHP3Y|@Xb1v*v>P6|VydQEx z6+_qMRwtxmDT}lTlb#MF3nDBtzf+$)X`C=*UF}`1h3-tGSy{0WTA(T)-D!%&Q z1OX90uVS(UB@Z*|GrA>6r^c888TpWye2y6-au&jYD6v*w=Sn@$ldFzy`0ha?JMInn zW((=?W}2+>OhmBQulbFnLe837V!Q_s8zCOhMVRBK&wYPIx3@3(R4?I^v;>IHwD@C_ z3JL0--hZeAFCiiB?HOFtp;e98rQYMUO;$>LCfXwP z_n>sh;2U*4xYizL%vTNf!|03{c(VXW2x(!`6AY~mPG;J$)3a56hRil7)|IR14S|HT zy(9g}PV|1{6QR{;S-QXD_Ju6Hv4224$Z|Q+#i7ZvwF%DPzaZaE{CRP@f;B(zwrI3>*}sOyj*(4uW23%CGp}xP#p?KJoBSG%dQVH$2^41+ zCj5=UVj{A!Q{4F3ZI`ubmZ!`be#rcJzPgE)p(Hjm`p3@U@iXlazA|egfvP8SJ>m?} zPO>fj{w)bkM$axq{PJp&v&F|c;Lj2r+r;lIw~dsT3HHfqOD|jM=(zN8SUGxNV;n|r zDfpqG3-=(;H8>M{?ndGYRgV!1rlykwUEsc!mc<83LGw)T0*;vXERxca1ATH1KXGk&Jz?)g7|8{#Gw-#t#8nWYYS@~s zrLT)9`cod4YEiM#EHG#*Y8z@Xhvz=rb{y>nwUaJLaPVq_h7YOe2K|AOFjDPW%GXc1 z*T|v=t~{yOrg$f z5>?@H)Je#$>WflSVxC1uk|#ogwo*3&X&$syhWm}B?O8nZrxJ{9e7LxipLzE=TP6Kq zbepI7u2Ug%naVb2hL{~?3PjKaMXw)oHXS7%ucOE`r)e!;C%@c=4^}WMs^<<&ln!sE%F6du!M(5gX6cgBod>ziVLp^^Q^AqSmSH<5wlBR9rX4(^l$~ z$)m*x_Cp6U$+4-*zwRai*n%#Qp~>1slFQfnB^Z9sscZ+HJ_92^bWmr2Vahf)-nI)B zBldYlhr`!48VUSf=lk~{^oZqo7sn^tWj5suFU~*ilW$M)67VzR!{`u{4LsT6wcl1T zw6dAc%vPx_Q}I8WMjM@U)h3L}m{uZ` z;Qp4`-@u^H)vDebm^h*ldUzGprn zNp&jTN@USl5@kcmOb83*zkAgun-`Pvfgmk{wj<`dB@OtS9Lc!eWy`*vFJ(es&*T~g zZn&M@ zLK~I(HNGrEI(S@roL@qcccE8|Z*p@;M*Vx*c@uogO%(rVE`F{o=tUeSECKbm5A_)g zs+{+zX|^MS&@`4X^Hc9gcFz!PGUx!aFr)PvNnuhtVD8@UcpPH48dI+Uh_#d)j@EzUW$4anY9~)A#$1j)eJcFtqLoMA8k$&w zA6DT46$SFEc4ix96{qa)#n&4k9$%di=K+~9erBX?X8 zO_|KikhPZb*&u(VbpG|S4jHKHIkZnzUAlLw5{_=n<4rY64c6h{;K}?HYK`iiUm~Zs zH<@}S&}nB%l4s(`G#B{9Z1RIy%4uoXjLQ&r9Jg&Lg|2FFl4)Y9z+}$PfCFI$FS43Jqvr~EVE=szd+B6tlm3S| z`13A5^#beRM%i_e61;XOZh@lvaF366}<7+!)z z`RAX)v$XF)4B?73yP4gWNz!$b2NWf_SK}XF4x#>jd@gbi!af$U>;Ov+Yi#9exN zc4q`@@@W*Dvc`SAWBE~>C6ZP!y;kJNh-P(>2x2-f5?x9qRkzchHUYm<~1yFsd zqfa|z86QWoY>VQ=tzF)!21gzXxYGoXQ!q2<`k^-Tg1q|Z&k@-%7~V?m=%h z?m={y$~Uhs_O*Ux4m!!6ZEL>GeVU)F?QGl>oqZ1~Io%&^f_0q}?o5h0v@)xnSk_)& zT(2ILa*S5~SZc!JVvTf;9k;v!hTzf<8p1ghx7_OS)=ngw74~EOw|5ABF$59V-Fmyo z=3auk25cmiZwe%K2q2|f5}RdRUXyvtGzuL*9Wrm%i;&Ysnqgz#2=ayfNh}7>p!$Em zhOUknIA=&52*BWUd+_9!1v@cH+@pW5)!v&NrDrq+MXXWuzy?LL;k)}r_QlDrZR-J= zfk>O0&%$!x9Kks#2O*CVpF=)R?1xp}s_@ zJ%ZKDTPw#OpXKJSc9Jo7UfBe$aE-79;SkC0JqR!B(K`#CwL~fIe4ed4x>{Ss;)Lm+ z(t|(4cg#cF6K?1ft&{$A{z5e*)_y7eEF7^f*2zIF^mU`=RioB|E>&G==k9uW(@)pY#dG%iOq)_*s3t&p7 z#Arh~?A!_7fK-OI52cXZRf@!Syhm6Sy+FRfPiqwmSev*d&?vVuuSu4Ak1unQdW#|= zCco~BQ(7`mu4{nEar?xr{9Ek$Y+PdbqNa&V{86C?wL48192m%kk(>^IUqpM|Ko7^e z;Ms{-d@@-K71Bjrw5)bBszn!rfWT;8?19WHK#CAFxC5!e?0Br+lJVb7`HQdhVgam znLRZ%odec3Jg>^#L%|Qse64GZ>PqCC@o_Gub#*qnx#HKQdPhB$RpoTG*XJ^|&H`qr zl$ndqWOeqk0=vwMxko*+s>9c&*T5IbCu;#wE9BpTmC+Go453wAm&R=xhCnX`@~G`p zfa1Cta$h&DO92Ty7AgK92N~3B!Fa=X8Cfh;P`zSml7o>45Io5K7$%5kg!x9G+QCk zaCB>|@furm`n+l1>=6mW$w&qGoK0`0+s^HitBr9@vjUiCUB z>1`iQd@xxRHmx%2D|*X8NW(!VfDwNLda@2|QvzZKNHp||XTVdm^sr}gWMs169 zFOrU@E#l(iP~>O5vsELVYNN}S$*~80tZ)>#lJFx zL8bbJl?Dzxc%LQ3U0Aw=n{8J&`{s+iXG#>mH`q6C6wWJbFgHmivDOZ#v@{dOk!3=4 z)Zmi2B9CcRTS%zpP0CURQ%>CryH~wRGqdH+gl#JJyv4#Ge%XfSX!(q{Shs?Anmz3C zHuZsK8;?WfcE^xx`mz&5i;@jmV%$qHorKpZ9%0$@Impzvok`5)(Mo<5ci!3~Cd*b= zbcTT`=L(yU#-iW7jC>aFdr_2J_*-djYY*YSs8^bVWRG%wgDN;#Jz49A#L(CU#y%Y1@lXX?1K}!Uskdv7*yN@^TP`uGVYj^zD2v)Wz8G8ZYt~HczKKNDP zC9gwYN2&-KY=;kQ#=+Q!9DOrJGk9x?+DI=q>{u{C2#Gy0+64I(*>QW{y`^v9?E|k{ zbgArVImjcywCOEdO}%&ZTpR-{KJ&R|_ORgHbmSe{9Rq#E>$Co=Y__Mq>B()hwIZIU zLe1ZIzffXHax!3&(@qKBX);gaFks9CI;mFll5ff8qg_u3Mv*;!x9-q+A&{KI+`w`` zfOac;e7LK{|0ycqJHiKY22^%cy|_O_Z?OfgsL~+mzd#FI;#Qnc`Od=s9Nw~FEm}VElsFBOL~m7J2a|@f>Af)cvO&TUFvKqWX!A2lSjUNsZ}yO&XjR7NP1hhn$ITAceTlje8xl6!hc^0W>;g{ z1M?2;*RV2cWu_=(afyFT`YUZx)OO7@Oj&k(FG1hNYYz?fOf+F?8ytym8<*xZO=2;5 zw6dfF0^E>NmW5T-T0QXrx*#P4vrMfbOOsVhXk3f*>Otz3X&(i(A< zBC^UiPbG&GxbrM%U&HC+rhxx9^2Jq zSJ+N5tO`cle25mAOZ#>G1WOc2Cx5D4CvymeRSfk?Gr`X+O_mBK{iH0g7QE9_??D-e zQjLs`0s0IM5En9F{~8{;?HyQ|&Yeg8QAudE$`56EU!KNRL6_`MhSPaW?5R7dHeeK_yuOPI;T?6yUoMRgl z)8LnnDGvN@1BTYv-j7+QZwkh-G&&7Dot-U1b80<U!}Ovlk|3^jJ=Z(i_w~F-Tp5XwfE*( z@%zo{hPrR9omsq`p47*WMPSB5+dBTQYVQUKEGg!NqfTmS)Wm3ioRVZN$Da4|CXv75 zKYs=}E6Q@+E1mnHpe7>O-wy=;)#IgbAUpwVX;$X#al~lNye}?804Uym7b0B3( zFsDKIi3s|;MbU*)`ovT+W8=#X16`vcc{%oW`wD^QysKPmsJ(4HA}2%gRd(|IbxN33 zb~c+{n-1l;fC)ne+^Z zr&$e%&sST-#zwWpXntgAr82gC)`nK)qCj+X6wY1qO0W7^(pu>wR}D8#HM=hNS77;I z%j3_FhYzo?m2HLFRynM63tM zVZ;;JnLo!vF<>MG4yhXzrV$&cRkr&0$+@Z_5q}m2>=qjsFrnfMyMqwHQZLsFwYPg- z%%}U;8v9R7G}j{7!UyDc=Ea^l{+cS~MZ&6l7TXmau+uY8B_;^>qi-EDX zY<~>>c`CX3+a!Vy4|TL=nhG0OmjY%Xx0<6__2|>z7I1GIZY9^&rxIa#zmSDuINL7z zud0t1l-mZZDUj;z1bHe$v)2Pv|w0Lp<_+>W-82I0s=~U2LSD zu!rL=i=b@zC*+yiy$9Wu8T`)nq3PNy)VIm(p;&^`wYy0R5c7m39(?$- zJB-h|5pP-R^4?^J^||0eTDd*{8p)j(&8`xK=nyG+D%^lfkn86fUrB)GjFNKAJ;*4{ zhx^O9Lu;{)Bcg??*j`(2&@?PV-H*=D&C5NP*Q2o?)s`XN#+O%9dIPvB{=1D^C(6dO>lp2yj()`es zU|w|7elXge$7Bl@PaS9Od$EI*Ejxd7TQac)x)8t4di1#1FYx1{SnKLxL_XWXb)29` z@{uy~CA*<4dJAh5@TAwwn|qKie2#vS;2_+%Z1!x1jm3P#PyXDplLf(`{|aSL#95y- zqhg_eKB^NwwX(2yla;Fx;*BC_UbfS<7khMh`?HEyU@^RgU~jR&)tbxL!2fVqEmT>) zWpBzWW}0FBhnOW**+njo(A~gsU)Mb??oa zUfj@k--DFAGq#P@uF7KMt&`bwmRO*x=kJf2aF*BMVRnjjSKo2h+*WrD(n|{&agVre zmzJ=v={HtLBMU^NebbJZByFEcU_Dy{+JE_#u3?oLj?7&XzKShy^NUF&l%#wP!4_=q zuz_Lsw72)-w^4`lW`c(Zgc=f}-Y7{mr%l3N>7BrCDnHwOp(>v{xaV~L%AF4Yo(XU&6Q$2~F9UQGRHpb8_w92FQwkE_QfLn~gz#vJ4go)UGOJ3#L%<>tK z?8JMJCTk~Z>#nZxOqmXYywbvwHjDF$S@MrOo?VrYgrOIWb;)BipY-#%p07@pW)Z8_ zp6%EU?44aPq!!y4#1Cto*j5xV;(iu79k734NuIVIRcv;EnKJYJZY}bZq))HSugok^ z0sl<$q6?!dMS$OA3NCE&_l#A|YJ3DKRpzfC#De&uZjo%XmuG z5iiI6+?uwDk|Rbh_~kSXk*&F$+xU6`@9CD?g;+)6SFr`^lxU9WB5~Ee;IrS>bR=hN zQ^;PEk8HW+N5~7h+MMN zuB=+wW^4zsr%W$G0<^f=7C|w&2UrVGj;3`uM$-0@x%VI(DrMoU_p@k}krrbtamO=md-p6uJ@oO&PrJs*qm2G0ubK$8YnkwA&FlVnyeuxyK{>IQD(9JE^$rRF|Ua|7{vOr5)LiwwdSz}*;8ipBa*r5>QI~9Ri?8f8PnPuK+b3T zSK6tUE;pJ-cq=nHdT;v)QTk2-M0~K%i)e^8R`0}~$eysGizv``z)wob*kRIj1ECcj zmM__hCD_S7trkop%Tf~gO)OBYhm>T*(%eK}jzE?v@W8H;zvpMc!Ix*Sni8iD726wi zKiu$QS*+B}TI!Sd*;6Qgw`|Tj6?IJ)-`zmv*UX*+XJEEyrSV2?a>c4fa4F?HXN>;H zFn)G0m-@BLQE&sb$C`F{l#wk<`g}>C)l|V1)*7{Tog53Bn|?ZpvAgzxTRK^D)rWzY zAL%*T_AfGRUrbX9*KRo*d6=xQYl288(Z656^M*?iM4!!yWZ8=Z?0tBpXuIe8w{ChT zMe(+M)**bphhen*bu*3eW%%lT+{^b@B9JtT?L{J_oEHW|MeH|RXB^YhBGYbKftzY? z@IFJTrh9k1oegu037enElE0am50FK-$5-CeJI;QQd_bB`Uj5Z6pX;f`qSY~;4*xWCIaKvXpqYX^1JV|%F#v)EoL>aC(HB}Y3Av&;%b4z?dTF!bcj948+Nx+S0s^L`vl zCM4s7o3VkCGpw_bjlfS1f{ya~B#Pyd-h=R68^HAfFED3hfXcG_OpfX>#5j}rDp0YZ z!glHd4%<8BBN?ZTEw4LG;rt@{|UBdu12Bzo08gwYRV}p z3fsk?pXWV@U|Z#fL+pE5Es=3FS$p$C>@Z)WGq;~SID9Vv& zDTHZkh^PWO`X;St3;5ct+p*nxzxT7B?N#Jo@QE3&-IqcJ=&eLpB+V953E*g`8tXC@ek6d6aK zwRyC@@~L1&`;cLdI*gsXw94$^6lE>@7a{i4mkZvg?a0WdqM!Fe)EcKw;7o;hbvwOd zTSrfOZ=I(w)aT3JrlG`6Cr|#lH_;2}31@WE=fG6L6%u^sqrt8FVNchALV_H`XqjQ8 zeY&kDi$n6e#nZ=&7RM6toYXx1;6Rt$UHWm$2VdA(Nx$RgdPAshgWGiig_sfBG=*?& z_r;o<9ZE(=9?wq(MW;?FPmBfm92+^>F!#eTk`ZhhDk~Ef0S9MNBdpL_9Lf;XKPy%7 z9jZZm9H^5u=(+1_CW&_|7(*A&hK56BRz2ORP<~ zQz_B7pd>OPA-aYfj^rzqCB-kIpHdkqve8DibIOi=dWLNK4KbA;q&dj@B#75a&?}C4 zG@u!(a)Zi&&DyYip&xSyiaezfpp(kjU~{(@lq0kAc+>5tktue0U3<%=5uN-N^{I^q z^X=g?$jgvNWsal#b>PEMQ}D3>0ab1AV)2Owl&$F^z+9@AMHjfBmB1hgfFN*`vW3yj@i_du53l_eNJ7)iWY(p0$-~Mwy>-&Tt%XO zHU?_s@tbs6ah>=WNAFCpjJxE$7)hnl#O)J>gtCW1frP`w%Fe4O+-c9~szDb#AnI3E+YV@qxL zW^;KxtBpSFUG!%K1F`@VvBt(|z7Johxp1=^#NqcSZ`%TIWMpt98KCF^bg3B2i@mcv zxY<4hRzw1XE)+FmN@3#Yi0JopNLbzFo6LxhsW zsWrCbG6W#`kC?S64W12|!xAXs2mx-+1WIO?PR>Z$N5My7eCMj#b zIvyzz%m`@(^>!tytIWKzrV&bDFL6^hPS5U7sBBdX2dn>y=#EZ6QO}dVGV+mY`$8Bu+tOlI zmJ}x0^NAn>Uj?K8utAyhLk6vp25bxO^KXz~rNP^4BeAX;k|uZB&%QkZn?2Exs|bz8 z+v+_e@`QUODT$8t2ZQjc5C>2_$G|>)qKxfts~U@Y-K(6lQUx~)!=(Lo z?02#6ni=!k>(<-)^CQm4gDh><0IkPf&e9=!rJGTP$(F$}`!`i|_uLxKv`EhkF76oTV7iwkn4s-Tc; znciq+5vJg1A*jBOU&iEyMM1LI;_MqiRMuP4$9`IJU%wwz#6&i(U?(Hyz~!@;bUo)D zi|pnNhfs>-rsM%5ls|-PF|_PLw`Zkl%@+%XlxqrTV9-wUW&7+KNhS_umoVJeK$UaT z=UWW}>Ff=SN1=NDxA>wuE;r{1#i`WRI`tYU@RAeJaiQsA5>QBs)2zMuW?n{O+|eon zrq5&cEiX##lJe)R-+K4q%BT%K?M;;TTiGdpHHF=aE$pgMU+WA6p$p1p^Hof}Gw6$yO6?fqZV>4BwpN+y$TDy5{8c8JR zWQfl6!-9tjcji5snidqo@VDGzeU4n*%^b&=ii$sU-)<{&Bf`Y?s4M71WWn|&Z=pu) z6LgSQXPlcz_tDD4V@%e7K<4z9t8~69 zo7Rj$LkGe0?(u?pC_ib__$aKvDxi|-X~FRtJl|$Byyu#4Juw4~@oGNJ7nRD-CmGu) z57K5>nD614XRmSH^Q7SOwNNd2#il#GX5133ldKY28C5W!y}vH)2}D!Th171Qmpfm% z9QM5E+Q7cxS%HCrlno;`5gtIK}iz z2@av36xR*(J{~)I?3QpNeP5d;{MZoyn+>k@j;@HnIF~9S{QZ4J%ZB1%qh1bNb~D%k zt7X$&U22@(mBjcog(&syu?$R(t)Trfa9@8e7G6MpvSP;7Pshp{dz~tIN)ro5gEGnT zVX6vvRA?8!`}N{|f`1t84oxra`JQbC#HcxlNA-3&EOs$6(<+RHz9~AmY9ze7X=|?n z)hGSc;|<=LxvVqvxHd{uHd?QD&5$LO-tan1nx)%NHA!|z zqn|#X4?i{qdC#r(L6A~fqE|U~KX??LCJ^!HObUJUmp%nsh5Q_Q-GR1dZu_Jm@yy~{nguc+Ua_AfhnQOYR z$q}QdTp(?ekF*!_6~((WR2r8Ltu_?~cc);>Mt+McGtDK3ce=k)k?}SED{CrMdoF_< zm?AiI7MUrnHmyW8vK_UYN>@}yL0GK+sxg__|7998A&zG`UGR0#M(`_l`4qob@RI(C z1+S)-{Ct*l`9>)up$c;IbNug5vMaGhx1|x;{!8Zcp1D)l;Y53>u}c?8Ib}<{^r8sp zZX>`nI+lhGGPlh~^{Z#0G=F%3os^VvnxtL(an}!A>@g(dnpu~}RK@^hy-qdR!3%k` zLquXN()5YIqyB4vb#@3=YahXJn)+eiHYJoMq+QSpIcbgxm5_9Ck1d0l9%I=()NX-uqkk1U~( zkLU}Kcfgx*CV?{P$-Ve>vV-zD3fuqwj{EYvdd|uKpSh*M76OOk`=`^C%12Yr;s*<0 z9taWYK9kafmM&63=djg!{meicdFEfdw9Z%S$v9%PgZ0`*u`vV!@3cBnzAz(2D~$wk z-*jctV*fHcB$r0<9&MBeZfxpQX|-v&?wj3xk8_~C{koxNa7dJGcHS#*;c$zV_qiv* zA^0jsuKdkhdgfSOkr&N73Sz+`hNH$?b~-JZkf6j!2cX4{+B$mqtn%-RtP7g+()&Uh z$zaf;700yAs}P z^;D1H)5Zr1zYaXL>RE@_#z)nw@7k4}4(#{IHigAa&V9A>v)GL%*3%GKn6@sR$ zu4!Dq@wRha%roaceeoXO;gimvO45N2t;Si8fUSINV@qNjuajxrRPVAe$&k}DN5wZbcnxlmf!@~M1A3N;e zUo4ikFVcyKg;A(Cg?bKC>K<)nmml36HZd5==COdTP4y)zqQbuRu?kXL^r4Ki8x`NN z(n-Cc9sT&DQ?AO1h_~@1+85h4w~I#(6YrZyEF0B=ztATPjN!uo)YPGjs9dhr5B6Pt z3p+r=`ggxZNdIZ?FRupn50}X2QjH9Ro{hxKKHTKahp07SP1HUou9-o56)@VuSNhHw zQ#YXk$zfL%n&8c9p9A7Mc4a|1^)J?e`4dFk15~^{eZX5S)htbs`APkwB_^|uH9DLM z@UAgZav*y!$fDj+Y0U8e6X)5}9TT;oFa%$oN=~o?rXh%I>q3+38#&?^%O%qjB1?rw zeH@c}XoreU9iiE7T+ z;qZ{q_5N8V%L4AE4N8ieo5iA{5nU%Wo!czw1tU07{iBZ`E#@-rUj+~GGrWDu@|f2j zzu#IMz2%M5&iMON9!2tRS3uY5Z6cAG-kvGZ zBBi?Aa&1H5w_g=I5;yoLtu19UBWW_AR!aLx;iDykn|;RyMGR_poxb*=h1ljNj$Z)d zGQpsQge3UsG;r951TPw#t;Ls9Vlz!R_5|yuMs#mIGR3BHUXWOmK&fRVVr`+s*OXTM zLhF4abl?pWOe{{lV`=X~skBGD{)q%G{le*;61a$U^Wudbg{hnG3oWL;p$Zkov+YzZp-fxm{{A!j_9ub z_If@Q6O1m|#UweN#)))RZE$B@w;44Qsj1xjd^Uy})vX%ce_op515ZjD5GA~}9FC5& znge;>qSGiQ_9f|-Fk=rqX>PPvdfh0W>x3HUz(yTAF$4)`Vm990HqMigx%?gp-gA!mXCC~T>ynT`;D3KlGV83ap{He+D0F{(DMu~4F~;*29?qG-C>tD zg74Sje-4nA+B}vXSHz#c-_WSnFb`Ej*^*xao5Pi`0ckgXhgsb2y676QA08pU?Po^Q z3JEjN6SikkKg5?wNr)MCOLF4?)_%0_XC9)nZ1E?m{wSP$zHTNUcB%o`k1+x;ZxrZb zRBp`25_>iE>Qhe3FBGM;9c5I66R=_zI4*%dG%BN3&i{gBxV0NFlkb@8KA&ye%c`gW z)VRUv_Wo*P>2#>}>xrA%$s602%p6R~Z9?NMuwl6vf;0`dwBkwnRN48{fX`c?KQ=uM z1)tCbPdP_rouS8nJBbQ?*+TfPI9#7i?x=Su5H1<3NxLu{%Fq_&BV)pzdyHz}aRwMr_BzWscM$8A4F2 zkM?!qd(FJe=Nz5uL7JlqC8*m~H$ATJ@gnc8s9y3y_C8S*1IhA_UGT#SibBPYgv=9W zCOz}{6NbUCSY7FnEcz~-*#p<-P|s4$AYvaUKU}%(sr81 z<3$H^W50P$?U1)7p@Q#=vF9+c9Q#*1D+@@RynY0&&pu@Vvb!AR#pjb@4Zg6&TN{Fc zaw*R?4Ubkt|Vp z`nY~wmFY+NgeM3U0@hZVCNtG*&92IcrOco>Izhz$OU@@D5i21u73i1dyuZV7o*wIf zw_w%Ki4raG3c7h))K*@AQc&1(Hs&_C>ugRGVgIz!^Y#cf;X&}~JFXn&)zViZX8avD z6hp3Re0Z+no333?t1+7F2al(J#O||&FP43b#n8I4ZJ%Yu8Ykv0g5+CW+EoZXTY2V? z@PY|3Z1X1b;oxUa3Z$XOP(V9UU{?XOY86N{Yb@kXRJfm1carV86`${30FtY+OHa4# zp4yp>CNK5X_;gKm*?AHBBJ3MF(~F{$84q=)%$-t8hAKGe0U`KRcD`F-rfqMK3q)mj z8+;}~zIz+HPCQhAk6Nv{5dTs&FejRe=KpQFiEy9Txi+Qd#}4c3d?D_euud_f7xOHw zSM!CCx5MCP6~uc#%{2J%;aN@Ulcst@6%-rUnXaSlq7a3#t2^(9?_<)=eq6Br&`|=> zKB@)0==&9*TlL5Xc#-!GulHAV8EUc7ch1%ED(N3k7X{Uu%>|XV+D+{2+()MaqSwPF zv>~R>H~8+<6I3XvDf`gV%E-j~fC;xqyaW0@L1z>yOm4$9n1b%+ezGaJjvlXYMMVMS z_UCP~*_S;h7T@txLbvRVCq(Y*s{P#)dAzP%%<>S-$j?b4`bp0NR(=#ngpPSl6&zo5 zI``)xUX{h_#9#2Mq8WKR0Gw3e^ktpAasUElMn${=Vf(8_!q<=5t$q@s>HZ=gm)!S^ zOD^`DPIyT0q1;9#3P09=c<{K%|DG{03varePo{7+G@S7=;=JLVo!`aw#0O9O$qMXQ zp%cK;@6xh2pgQ=pPmBx;7W>Prp{A;?PKAIEQ;O77C!&V|`>I0vJEfF;{tHU2nWyLJ zCdm;pPvZ59&IELg1GbE2Y%J{8>(N>Ga=q3@n>8QCCK$NCS(MQ?cbH=2zcQ;65F?;C z^N$0%Zj1?N@fO?zpnVykxDN(|@9v1dQdV?%?}(|^E=m|s!|eCr!(s(BD)pDpWX3!m zTz+SoU?jF3jA1hiY?!(m_Z9e5!~I->gR2RT$jmj z&$p;NfBjVz6Zk?%>B&y2Lq>!jjn$!>Egd?q4Oe^AaKC4N#;BZ-5c1F|#GtApV|vDg zVJgC;Hsq@laU~SNr9C$>Kthyv-t}KW=mx?v-y-06h0w?OMrAX|=s{(P)UKstxqnS9 z!^$F91V~o#<{CwJr;Uq-XZu>&qrQmuNcAt8R}3mf*zNSA&1Vk~xQuee&H$x&pEmCa zIm>m3(1YyJ2>0Oad4yKX$WoAN-?kycM@8}zJzckqGOrzs;-C8&(u)<5L|FZrTJ`gM z=g|8DhqH_bgvb&_A4q;3H}X@SS65xrx}p-Ze8;4tIzDaib1kgK9=IFWFxxPP`qGP` zsl9nZIC;BM>-;=BM#(`mbya&-U+AtnGKGa9a(nPfjO9HKsfGlS zc@C5#Gwi76JKa@^{Wjmx!3S*3lhf0zdNvny3fxGRCc}qT*pBfhzw$=( zvMq6jNa~Y=|4fK^8^UWmaD|tl85^N5>zdy-(Io)ABX9ETF>` zQUob5cYjL!L;~cIp+zSAS&x_}Br?3TuEwCcq@>_uq5bqP1-v^CFQ2%0Rew1-JoC3> zsyOU%k>ul3!rF@syJ`w%%?bkf?)!K;K@?glMsDS(n>PYPiN7S2~*W1rFJ;rZBTiwVR=b_Qe zjPZLPos;wIptA5PyzW7oC05Omzt%qTrpHlp_NXdQbw6{^*`}ab zvrbN$tu?8C)Q~(=^+Qb%Vln&Z_`!eHC#6v|DcGVZwQElhkD9-Jn5)yrLL$g%C2*gJ zb5b@a2`kHRo5EqkJ_Sh*B|;?sD#VMpgrm9p39o%+i^L0_0lFfcZM5 z3DAFCwsZSQx9y6o02sqC6P0LY{ks3fb~%dn^KXn++>rC7zr|H3Q$Ll&iOBVbLGRCX zMxU6mvyyJkxeKidP*uR%4VO z=8~Jz09gBS4r`4ItcGle*|b6}E$n*Y4@RQVU)J8BPX|>aW+;NgxS&7x8q~{WZ#ZhC z3PW}dabMf)a3Mjod%kP#$dsQzVW zmJ8w!D@)_96tklzgbY8)7l-Htwd?15H`1rwoV3~VHoSv(r<=g)4|wj;0qlUsHZEj5 zSyXJJF9$ClDn~C`G~RbvN+NW=WV_pU&uh->t>fm(evqA|IFoVQ$JDp^ARF976e*3q@ZBS zCmWXm5Ey2Byhhl7u0!=SrV~M>%RU}cGE?|io00Hja_}7ZKLmyJh**_-ap3wTb=)$r z71I~?&Zz^6Ys1Hch3oMV#=sRl-O~!;H`wMYCy0x_>h_DY(A)|{CSRE{Q#Tw6PJEz0 z|Jg~ksvENY63I)LiT-NLl(m_^RAZZERhQQ0+M3_M=QmRSi(z`;_`)loB4cj7gn+|% z@!V(M*!8(;AN8oJkq{d%*kDzB9xZ4*s+4y8`7(O;#Z6+k+7skPLlRe{h{cD*(js}c zVxZD9WCorcsT4?_j<{e45|glLbikwkRyS!pI+^-mXOl+N!#M<*tfD?cz3gnFU?noS zX<5(;myC>SPY+I^Mv<;=JV>3_jW>k{r*|l38_PGuu^Bn@$~sLMjg#$<1mff7<_*3R zc%;xbGWr-GXY$|AZ@Mk|(y#lp^z`rc&b3{LI>uvk)RL~(9~~Cf)8xeLCMLpxH92{u zGT}p1iv{L79t*tO#sy3A650Mr8_?3mVC-k$$?R=8$=ZP_F2aB%UQ!i+v< zI+`t%cyz{N5%)VwGas~y0uB)(BI2|oCMtU0wx-ZF{bFID%t@W7T~H+s<`o|A%|R02 zou^80x9`hPER>(FHb@HTSsx1y9jQNW921PU(8~3lAl#zDZRRU89O-yP`YZI(%0dz9 zGrp_sb;D17q1Ii-z4E>hP;ZGgtyTX32TMBSFQbl9!VV7j9;|-7CsDFz2p$UVSiEcb z`SZ*4s0$m~98+2NHm>7ZhypE=5?b}dR1Pb(s!zJ|5C$@?%pw2J8fr$i!BVj-jPvdK zn!=o*~)l2Us-4W;q%to zS8)b6(I2F(Vl6|Er5g`PeVS1;)1X@rV-ef6H**6;=J=F9kuFqUr(`M}vBt|*&9E`5 zhl<|EI1KN$#kHRK%x*0Ar1Jxmr8BxrsOuSTthMvLm&1wB%*g2B>r2FAPigx5sP$7} zn9;=n7dOEC$(OTpu+bzbm^SK+PG&jBXuMIau8@0)A5|AAbgMCHD_HV|QzCQ@(m+{~=I!$M@! zt!bP)`|}un;l}>fi!RO7HKZ86uS`t74$%T}u3_dB4^@Zpj=#RC#w4-W%`YsN*Qu}) zBB^F9@)lF=k^IanyFWT4IJMv?FXlbWVI3uG=PnF&D*rI|Vm9L2C8f~0<*=TR4K4?% z@?HE?)oS_-tw8`r1e4)Fc|Vl6tAi}G?rhqNdSXJ~acs1_$y z3!qDxnbL)H<~r_xX7o_1fY2=T0f#+^n?FgVFGB$;()U|5OVicRC=ja7>ImDFRu3)I zQM=V^ii!kxk5_P;A}zdXAfRGXDuk>eKKsky5eIAxHfIg_etPaVLAM6Xhr2aT6AX`_ zQ5mQQXhl5%A|X%mmmN$5-csV)8J_(k4h)%i^Q@0W*dACTnvW+V9LunHV!hbD$c(d` zkl7gHmSx*xjnADwVam$Erc+YmP;b1NTf3J1`P&2E_&#K`^PAljk4Jf~;PRc1Zt!uC zUJTY*I24MR{h|YC;#+V1?YwJPU$bHJb7AR#cu_Ax;u1bxmlcYr_pPNtdKBz_I&1~Z z;8IjN`CkAD<;5!VNxMp)Rn1}jDPt__`0}&P>+7CrIaAd}-E^Mqrl=E?2eg+!86wYK z6o20DVQCkK+;We1?-UM`u(~g}mnY1eS|OzAVm2mN)PH?*qo$C)GN$bTq1&c??b+`A zC6t{}$OIWmKRlWoYNh#8GSlyfY+U=GN=Gdp+cVucS=4t%ZrX!c{`zfrKE8ed0YFX< znoc4YL-gvvYKuda3`|JSZkhT-X!!{C*OH4#M@xp%1~kF#h%r441|-Q~GsR3sCi6T& zRGX`xKbK1H`42wnWCi8_QKj=pMUyMYo_MHz;1r8~V-G^EOphG!LPo;-=C2%Tt5x+i zwf#}@y>juo{FTF5P*tz@acJDQM|4Jh$6LyM^D89PxVCnQXYRO0L!Yn zV@sTVc53U&xxMLt_7)Sb5XYp*CqX$)LLCu^VkX-TgPg~=)_Q0A6=$o{FZE2|W=1ui zxbn*+jdivedg!sHNHDZ9Dy&Y{hx;7cMfTIdTN~%-))86xikvF8X*B8ZxXVAlb<9Ww`kFiQd%O@vY7ucv%N`#u zhsik-vJHS3q!`|^e@nnw&Db6LZ_DH&<5hu6Ib;ULJ_l_fnc{wW617 zcuaBGtwHjyVnGYO+LgTDV4xdIHEQcI*v~Azedn6WKtW)GZASDT9g^3U{ypqzwc6)$ z%z0(wzvjKM_{TW>q@hEaR$V^;8-Ujaf`5-)%lRqUknJD6mSNElpvWr{B(&HZPUsL) zlA9p)u@T}z~>hwHMx7`cU_UHdn)>suJ#16r{Bnp8bJETZ<+`%k8=FOFtC$2B?7w4RJ;@W%`lb*` zM5R(pRcHQ8?X|(OhxG}?+xwu^atKv5Zzl8>b2x3%+q5tHR%H;o{n0)V_wtuhd6qCOo<#ZCeF#c)#jmQf|!6@6#CX{_Bsz@6VKz}C&5ypu&h6*DrI*x-KSv} zst`Ri^UaHEH*~DmOjJY_q?AE{edW0Yh5x|EDVDMow z%PeDDL+d-OMDS#WGQ9woB|RsOYkdbbH1*2)ZimmCq~^xbi?4^7U@G09HuVDby@ll7 z2lSuZhKw-_?{0FWW!nGpJzRhB`Vjl1Og%gQ^<(q?cyRRon^NxI*N{%=izqij zx`yfj2}iilh<`I&#)H~A0t3m3#98-&8b3n`f~#4b0aR7Q~F|1ACA zT)#Rbv#@_E0h0c0pABM(19D^tVZHoQ7km(#Jdm;&L(a29&irTT-}e8(cl_^OzXRm6 zTmQg_AnD)hzhnNRJ&t=4Py${SL;nltKSM#5r2n`6^S`(z|K;_cuV8T~rt$Kn>+c6P ztzBuM(`liLMqIE@RJQ!#4AWup3t_V~v9Mb#9`gG>tmp%|XM9z*Qg|qrC70r{VY8T7 zk+jwPEL>G_{$8e9;0P^Q0AU@QfDsjzgTTnRyjgZY-D%xx9ZpthtW93uw?8pq@D5q3 zzqWoe(cx!lQuNX0_tD~KxnZVSiqZx9QdpWFDq1SkQwIRH@__m{6k+E0m$I<5`Oqmb z8+2V3>J~E?4rvyhD$@xTaSLe{T^7%fEd^36oqAfJP92sbqY7;Co$?<)?TF7rmNvih zX{mRJERbene$UB5?;6$$?e_EFLQ?M*KgvuJiwQ&S70E1{Rb?j7)xh2@jrMMC+3 zt$H_6s$y6)Si@TX2?!|0F(L^H~esSm}-o`^ToJho}N;=abHl;B0+&A37(^S%|F3 zBn!>wQlCf`ZpT!-u5)y)BCB7KBN-!k+i#EfWXW7hi|#~U1Ad*@%y^1}H-Q?RXz<5C zd#?eUouRt?7Q4Oiio(Erc_3TZ4Fp8O)AE=+{Q%RGG+1MWY)aY=40!ZKctLgivVQWs z*(UK#i@=1m&v2fYK(pg)fGpI~epKihimif|vFEyuhheWM<{tu3*iqfbd)NJ3o3GmQvx5BJ0g2|# zQY;Wrl>Pa$_-54=kM#M_wb z9nOC-=~-IspHw7R8tVCgq0T+u93AMUFfQ4kql^eN(4LK}>#jqU4rHQalK+$1?O&nM zheHRnz$VoG6=qN@U4WqiWN0jyiJ%uyvJUxFjGOFVAR@v}%3BEa6?+$Zg5m@4jh)Pk~ZP4B(F!NjL*eafU}4ZrYS5F?wVU2`WDB z*L#M9+#q{n&f08}o%6T~6~6GRlfgeYIRD^UgU@_vdIO8-aBtLKxwk6Tx#}Uk=(#)#wPF!ZHkD`C)E{Bs zU_%c{kKX}<3RXJCSHh}mO+zJlv!1ESP9G(CSc;{HYX!PgiNjMBKNaO&VO$}s<%gx2 zwePUe>Y+Z82UIW*WbXhIyG=nyh8@pi#GB)g`erfW$!ZOa4S#;ZR}_~~_vrq2K+yW~ zpVNv%<-IqI6bvc$Psh=ky16YVeq&H~RazCAgG`y@wWo)VWLO!yLbG3H=G)t;+LzAl z_VmK0oude*k{tHH7SxMl~5jA*u|j_lYnfwaJ|rZ>RCv!8UfT@ z8f{pc>mlN2E(}4Bn!mbk&(=dk9_Dch7KCzLNXkGSk}xld8|)yY`&IgWeq`rhwxF+o zN-{FNIDyiic8Bi(c)M?4gPsL48`Y&@t?36(zIVV~sh%e0+(fv#aja9sOp>Y%K29`M zc}peE)&5cNY|H8Xqefqge((T6h2fN=B;vk+#_sP$eZ+ox-@}bAIbK=#}Hrf&jr#H9)6w7CHOm7imYzP_oQBr|6(bxl&8ktOKe!S zm8#)a=aq0d-br>5eWbUHYZ1<0z~3E(t5A4AR5{PJJyw4Y4sYeL+45$#;XW|=tirLX zXiBA#XAq3&LBsdKF|G-iC5A2mYUs>x+5qCoQRz-1g_T5*lX-Z2_C1_ z+xNg%9{)(R=^VGc{py0NI6Ys%V7pkYy<1Cc>?oY{4yb4-4;5^LOD3}Cxh_YDlI}C^ z?j`lmh-@LffhtA(TUwnyXDuI{R<9iz7OP?zZj_3U2bUo|6D(1g3<&}Tqae$RqS|5v zrT=s!yGuHYztt6n(o<}#6nbdboZLc3Srsi!G1B7}))~BZxFsNqbltS{Hw zNRpSvD0B%7ND(s`2$0)BDPO@q1@p7AO3^5rr8pil`)SU-47pEm#g zxb43I&f0nNuTj%9xpZ&C3S{(W`$nqJpr^2XI-IpDWK zY&KVfy5K%wZ}~z)DfCd*NcM?ztIlRUHWe_fIH6v&LmFHxx~e)=(F+(Tm&swKRP&vY zh7}4Br`s#h>8FY)Me#@dQIwC3IUe+4kpt=$tkkt=?CxWLM20)G8@~evq$^zJ+CuL9 zr-BN9<+LjMIUtO;kar2+4=O`&O;w}bvxwJSLdTatj>l)#>=TADWD^>@i#DSNPK|$R z9EBdYJW9F-4hK0bBS>_H1fgPc3Pv!zM7`Ttx1zvyuO}|!xNlo>sM}REap9As0r)y-C;*fhj&B?c` zrMr}Sx~{mn;Yi14)p@b<5{xUX>-9I3uh#PUmRIMSGEA=*Ziu8o4N^!~MA4`)w z%TPAuL6xWk>^js;m}kj_v%1ZNfn5zzHJ>9Rp2=gtx1Y2A9q_Xwa%5P&dn*Rl z;28L)lXd*!X-*pkqMT&;o!D%uDBf`;AadPJfJ{zfv?L(9K=JXe?1xcw%Y4z3=iF?m zO$6-egt}k7?V>I};Y`Cu)Z$)^;V1n&UPw6e(`_k6SJ&b4Bc#tpgL_h&NEJuuf1`#q zVQi?-{t28dTDC8#zSO|piZxFsjIxywlxNrdjXO^NumyEd_BH|@Yge>=`0j(?-EMwvMXnu#w2jB09a8_Ae);i5m=lQ2H6FgafUPKCS06ZFUgSI>plAEnzzn7 zT%7Hj^iG(a(;7SwlkG8#4M^UA6TsW=fDcb7{)N=^!fOh`9?j27QhBUf#Uo9ns}dRs zPI`nsQ${0=TzV$vLn%))uxzI)?7Rb9xfaj0_04WCmN_)Xn&bpr;%VIF^?t%`I8D~j zC-7%g$LCty)Ujr1Z$EA|&2kB_Cog{=8WKx}ENqifk8@Mc@IbOdl$80IxFfKcJ zG6#K~PEA)!EH15-DxsCZFOoAW#_`TsmE(SH(J&2SBZbc@-oigz%fIp^t$UcTeW4H3 z@_qEVtvBbcqRiew2mTFpzk{nQPtQd`V|yUXCQ3Z5LUE=^o$-xa_S6t(lzw4QSRE(0 zEr9{T#0Zw$eD=M?$-p4;eX+dJW2PnWpgdG9bt|d-x)@w#RQ@RXHp9;~hY1 zN*46Hci$*hy^G)X3ryOLiyegRgW)maI++aIuh3Sv5Mhm?HIg0nLE)#@YzbHuZ!SbO#OW zlRl<@VWoT#3beOc;gnYqRG4L^Jm|R+9N5%jN>5Wa!)l9XS4Hhd~+aD1(R0)Km}ysuxd zxTxuHR7<=BBm3i0r|Tz;-vT_O=^7^O+J283k+o*!tX!W2Io2x0(p~myx8Bqp*+nnq zQ1Mp?lettSJBtJMQ{zIzA%fq}U){kcclHOdJmY-V5D8)z5A?pK7l!#;9Timiu^-C? zh$yn(Lr>suZ%D>*E-NEmhAVNi-|*x__Xf1s*de=l7>y#$&fo zEOVt6E5iyhW1bcFFJ9J-U{kYQ^G%DA=V!^{s3^Ha`_ub#j6|9tEh1+zVo71C5EvXU z&q-*(85!d{-BsjQ2oom3Zo);8>Pr|4EE>(}PK^bY1{dQLC)a(~C{{12vWx|$1V|)U z9<`EhNlwvRQ41fO{d@-)KfMZqzU<(XNI+&*xl{xy%^qAql-Ar7T0cu-CM%mNiXR2R zk6@`qZN?!21(9+sNvnPVf~`xdKSP&QZ5Yv4LYcG2e|W6u{n2qQ)r*={Y9ED;o1S%% z2~gCqH{StvQe`Hy!jmU+MbjAjhYDJN(@`O;=JFgEEz(d`GlNkYJxoC_|V5E?1VMuwugd+fr!@KMNuo-oJn%p7~fW^@p-l zDo67tv9k_?`W+Gq_zL0Wo40e_#&Qc47cxfBW|FJJR<%-($e8V*&1!onGlU|lqu{n} z*Gmo}zc>xp!(Zm8dZQ-6Iw(8`)d5a*sYk`*II2zgXo>}oFlX=7Ea;VY^@Mq5!C~8M zDt&4$pXbG!B?U2WUVd0Rafy$LK{g$Dim#(ewJNoyxzu^9pQv-F)BAI&1B?TyljZ3+ zry#?KltLs^I*}~ntZ6?;I|YcKq{s^p`VxB7E2l~L&VI72Aj~98iH9_eyJcCq3S5EV zq={}zG?M$_P1~ROCUYsM=Gfa?vZ4wAmw=$tTrOeB)H}exb^6OiV@dM&>uFa{uI9Lt zdG&{ih$lBm2y_dfH-^_mu&W|!&BWTUU1{2-bd*};b6ya7q0ub~!^DkZcqAH@as=dy z4Ln0CwIT1dYTa%>Cv^4VbAI(4J!S7DB3n|gxH>$pB`o9on13|x6%JQcV%oYc|B#)% z0+rGYmi+tXGWElKUGlfFHbl=VgRqE(_E)pUDV5e)V? zBYy|LkZr412+=$MCvfBLnEB~eK;-di#e*l{6*@z@fu9l{bsgL;N6C4aTSU?$)2z}n z#*o3hpbXc}m-|zgd|-C8jNh5b$@tZ$`?G<=pr`rBhundu{cvL%rQ}D!9K}R7h=SLd z_d@)+ZV)5Nen)fb{d33I!1&hn5vO|g^Pp>V&voMZ1M1t4%;HPL+iBjTG08z*@+>;=NMhlJxuyk)1-MzWpQv-G6CzosxTQrc@}}a$qVgs`jeaKQ z{EbVSUof@j7e?1P&7lD2F9TJG^ov+EKN)Gh zf$=UBk5Y*RSn^Er)c#Y%z+`!H&M9-IPc+zR#bp-t)QQ-sW}F3SBIdL?VQ|>W5&-P1 zDdn$dqfG1>sUL(nH)cN;n)+KyqggDM5KsGMrD4Gp+7>x|Yc2}MGWDIsHAnqgCf}UI zg?6MfgVdWhWty`p)9hQ#Y`&^&n>Pwmb+wqcDmRLaW6)RJlsC$mDxu}TIpriz9WzDW zovKiWC7+colgFuo^|iN9)jZ4W|DV9jzy1GM|1lrJZ!hp0?Q;g`zkvTA@ZbE$e{;?M z%lrQ?_`egrkQ8Y}WjRgHKdJLSn<*iR=G}~YoV1hBJTa|I#*i$0+Mh7H8b*0#D5#mN z-y~3WAZ6YlL!*Sw-;Braus#*QXnSaB{j+>IeAL|tkdTU%C2`7Mw* zT|~v(o%!myv9S^1;CCc%X9biD;R=i?Z$)OHq;()P(TadZ<0rK!`g8i~BgsXdU%LFX z{&e6~4%#9*h~2yf?{7q0LgaQs-_%oZld1nCZZ4zZYomCdq?3B;JE>Q0CeFQm`#GjV zMZa(+GJrFKBR;v`+4a+iEXL^OTq9wv`G;6R{%`f>W1kSp9kvZMA628nJ_{KlnvphC zvt@r{ucv8A9!LmXt^mwtsp10!<3 z+en4BO*Yp4t!}>l8!X1ssyrr|Xl{+)12nA58p=a`rTaG(!hpZ?z6>l$9Mxpp>{5L2 z(Zdw&CMF4j4Rw3dX(hXu|6?IERay6#E>%Gu<7S5@^E7uL(_+Bt>$?DMce%3$WgGPgX*%j z%>WHfMEUE_)X&Zy2~jQ6@bxZVOxx-r`&&Jx9z(W&+<9cH@a10w=6Jdk+L%i7^{EHO8{WN4Ai0zn+T^6i zIbEwG=8AIkTM)F|a%p`F)BKGQHDfU`8qcPBQ&0_vPa~Gul zqvn)JPn|>)RxzzAUMEARI+ty>M>hD@HSnO9{?d}IMQ~uEqUlls3BKGw) zjz9GO$wdBN^ekMf`%?q;v->ms)pEy?3a~ML_pGvvDe%si0!= z`nE3WrMtVQ1^T)h7t1l9H!l#xV76#yYf+#w0zawbR&{T;=J#qEoLRQ zougKLo{a{PKTW`)Hin<1A6^(rrny>vl;NlIOl6ETDNM+BQf3!VKJ*zckCDOGn~N_V zYM9wQz*dvzu@i>VywHyEoy!fa&-KQA^BVvLb`Vc-Y|NO{-f&`0Og*=2&+vzm-drEQ z95Fil$@Jg#hLcAB;~?(kG!y1X->`P9Kws)N&B>27{P31%?Z%_6Qe~o>t{mm)AeX4^ zOAS9<8@d5{u~Y`;0?+&^-S0bO3}sk;Xo804<4vJJ%B zF@o=haNiQH2KslnFApGIrHg4pDi7R^cfbL3n;bUNPY{s0Llvp{@YU@VJu?MiI~#{e zr4lO1TnCq220*>POu+G;n22Gb@@%-Rr4keKy%@>Ef%dF@ZJwZ~ z*Q4N++^R+`_%&WK-Gz$IgS&QoZFvr=JT%8VZ=`+USh%{-GKEy!cda(bloVk$5 z&SdZ4!Uw$ZmXV!?r%7QhH%XDc1NOr@@fd~fDe^3?$tr{s$hDrZHqRrCE>Sz;d4`=x z+0h-27$!Fcx7x)o)|#k8iX=SA_=%`Iq9FLIS^>s8AM$B~85_xid?k-J{il!aTxk=D z%^!_8PYasWrYPP4nP$Sk6i#=iA+j+r8!B-c6NjnC4dfChLE{_)ZK6-&yzc;w^$h+L zju^JPbD644Hk}`b81H~_?w7+{sfbFX#i!}ELD>QN$&7jo{N0v$Mdk#2UZlkr`r1QU zX~;;N-VIBNb7X**@8+h6xO$veQ~HUg;DpT9vi9KdKyg>p)P@)*%zCfc3g6FQz;gd2 zcblft^6+Mt2EG#K(s6#jGUbT_G=Ez?ZQ+2%4M9Nn^jl?2ZEfRM3@iAub`~P6rn^w- z)&KcB`kj0Ks`T!{%fIlMTcl#$)Zv=I3U~5cp3M)4Db{ePB;XEL^&1k^ny%OzGq~yf zm3DW-{PLXU3^L1S`Pj1kpm{0Np!3C0)}3QGi@hDPK?X>IBnq#=B#m#n*u`O+7r2Tz(`&I==KwozCu zWa~5``zyxK?!>NR0u8!hd|ai;99Nt6@LwgNATraM2U1;%2z@yZAVno#4$%nrTY|Sb zjcNUy_!e*B%87>_m5beuU@n5FeB?mMh1QRY#8K#C(Ow?JnmAkDLi`USlYyZMKALuE zm!$Pi%G;n|pl*Amy^<6^R3gAp3g**g?85Cpy;s|Ir5{?v6wBh?zVBrML^q$65uyVR zz)34Nv56#?QPg?$@G0!)(ZJF0Mmcy;z_sm%6A@GA@Q9+WL3#J>LOdCm>%nisgrAat|FB1MDkZQdgZuddRN=zUQnU7mzJvN+K6><-m_8hyF$I4(Fc?ex_ z{x(-kNW&!}fk2!1Y5r3?V;Vn@Ep}Xm4n8bj*n=(lJ`zaYmmwFvmKBR|tUc{sD}2@a z4p`TFwG3_5YJAK!xUqYyXD2j+#AD=(9;U}IKnbW4Rj$|z<)jKI+DZxOllkSDncm-; zp&POVL_}z+7qAQoG9*=h_H@v(O%_tWsr+T(wSN4n^@@`bl|*`)i?e!g*W$a?*hU8H zD;VS<8T65!p#z<$cBt&cybo?tCAslXvo%}Jd8-yhL4nW9p#Y@ZO?9x>cLqS+oR5XGcOAIf~waCWy-H& zzJe*-S|lx;jPt~|sYtAKkV#V0)C_N4AN~Q2T@BOeFq2^u6r_j5{6_guvqY*gw;I?W zKfO!V&9-_WHO+O;U20-vVVj7D1Y1)ip#VUFgYyIcj%6J+&n%E^2IjALK}0??K+>o+ zg?UG(UU!=43bs>S4=`CB7+YrdB#ujP1r%&WwvAT4sfaL0xU_6isB&;jgku6vln@p< z90#{~mDxLwwP~X;ui2!P`q5E}=;waElX^n4*I0xA)+ATKA!+qbkPYwk#|VsAU6XBe zoTa6glrcoeeJ!B6LBM&A_71R+N`P{IDc!Y^1=X*zU-hQ$gvlS@lc?G-p@DQS^YCgu zl2ekrS|v9%|7qQg5743yQHybgByo20HWbj<&SM^*>-?>7+ zO0{wlQ_C_A8i7;5T)BXJBg&;Rr}!;(F$YhR5@u)S##XLZre#;SWemEi5<4s3IF2U) zPV$KoJwYCQVWFOEl@X1=P02X{y`)b)m1AV}h%b77^DyiN(#}np%%{Pv76u&U@p>$||s}=6lRy}1B*U{QO zrdYDsvC>c@T)~({^tEYq+!qQ5;EEqt3#Nw@&Pd@KG=|eVAbP&jBjQwGoRYY<+WJ+& z>P(SHH{3?_%=+3Qcl8^@Z5SKf`zUo)8Dy&ftdpI5>!>KGnp1pw`@`n)!9qxVt3CDg zf3WwSK~05S+h`C3MT(+GCnzWa(gdUvigY1TLl06!dhdi#q)JCXsVX3yNbgO0?}Xk$ z@4W;FXFu=ze&6|Zex5mV&YVA)$)3s1J$v8lUTa;~wbn{^5%N)7@@8NtE5*QK?RY!n zzXkD~Fn*G#IF=oJ?Fg6k?GxEa)I*#&1dLAgQy%4RscHRAVq7xR-ypR=Q+WlM$Not; ztJ4E3UB5UmZ1VTGt#g&A|DfZLX$696+~XuiB~Ne@-GymyAGL({Y|E@hN5jcpi^+R4 zbWVNiwX1v7GA)fClVgVu@&rY_anyy}!`(Mj$pd!d9BD471?wPkhQDcqDW1G3JxrE- zi$7ppaL~}ls9W*HDU$`5sdM_Ra6V%q#3iFF$0OSpg?4jZc%+{?{^pS*7Pd~7 zXTG{czM7HnJ-Sr@t8r+D={jiW+H3uc8c<%U`d}7g$|a9Uc76W)WQQ8ouex8Ij0!d$ z{}{POQ2zPJL$BNwwp0B1nu0Xici$CSsTaM8Pek26kD9s^HfT{<7K&#!pnm!Gh|cVZ zHMP0z0waxbanF%l6}ymoMc=1p1)qy=QEd@HfccU}|B4(+-9I><3Y?Jpo!A3340Tsq zRNc(h>@Dau@m_GPn-Dt(>pGSW{Ao{xcd7kziUWhxo+a(Vh4t^w2cI0jtV)S1JSn4_j%$D3)TF&-|-517&NV#EN1{EU@$2d|+ z(@W27&BS2$4b9KZgH0#-wlw031#z-tcFgoR*T?@r+gheC)kmcZ@F$6P3MK5)wqr-o z!t~xS(`?d<6Vz9=rWHhexv0wXhfC0PLquBT)0*8!lmTc*3(z#jWaj%L_FlDTUw)n! zd{&?z>+w^6h_gfg8LVL-$RHip0d*k*tZ~=>};wz>@4Wac9wmYik z@tOklM!Vj~U6|R|Zg`k|+-Qxq%glB}bGCXd7q+w~-&p_RcBNtS-YpKj;ks}HbbXA% z<&~8qe{=*04LDOGMBWPWXk07tC@}xs;Fz{qx8(H0y*6oLYb3KSSX!Xn)cX?hD7%M9 zc%#@2fXW+n&|Bg~lTlpc7=vR2lw|UHw7YZ0;oDVh-cvD0UF?(OKS{RF%2m!ONQ(D< z>?Uv8t(8am4tq#SdQZIkwX9(G>+{J-NiKbN4536$&crW!L{vKB_4tjO5cgLJ&Iz0A z*U?3i0jmaK1e`U(S6LP$gd$N69^KpUC$mpvW9##$65fNP zkyD`FXLRJm3D}8hm>K;^h@fNR_pmvq#Lvmrt)|nga$u*?Ai%_G%l1IQeIiFzFC)$c zEXTaA#wa>t^!at7rL$taZb-G_AV~zN#Fd91zdaRV1*gfd=sVpP?pHUANO@D9dPG|% z&XJF@!nkPEoShVpDy@DyLw${a_wJ8f>6UxF^dFq4D}dB;gdbpiGQ)RwE&pcULo@u|78f}d=%-~= z_k{M?ws7jxy zkW{g0Bzj5zZ-jn_h@*bRZ(b5zC>I@TKUO^!KbOd-(P zVkrI?LF#KfZ&*=1nH7xsdkZoZUadWd%72*nnOiILRF@fCtp2;u!_C+c<-oW@C|%w^{{YB*_j&RDPV54Y>(wnN zH&1|@XvS#fOCxg5%L^yaNyG2;$jx0s=I~RjE$3AyY3pkmhzHh}a%DOwYtw63PpMt1 zLlz-*$oy}fA<)I`m00_rG*n^*9Wp=NYSs4Y10w%h;sh`|@K56lP3=-6#CruM@6Rm> zUupAfhUOP!?L`Z%S^O1E{kw4%RSk-H@La=u>wX_a1mA3^eh@YDf`H3X->DeeV8Ula zG=a%0>CR>~{|hn>4d~^tK5L99`q^T^;I84FfsMv94-LlwUt^vri5en_Q?#!9uoM%_ zN}kUhCP2&Cns>d)pqM@B*e#~Pe0PXfq9QNQ%qI1~>dg;>08dI`xL0wHm)W8g&0Cq* zx?oEj3Go#gfYp<7dZZ92ocsWq9_ z;-#rGApP`z17H*wqX)vmi)hrfc|u}u>zN^Dl-c>zIq(+r6PB{!OFdSv=6R+fA>Kwh z&`BJNa*v%1l4UHE9Ar?S9Ks-;V!p)br854muEwHOa;E7rI7RPvUvq3kgK%9*MlU+@ za)pz-UKy{Xcsmiji0C7Udj&r35l|O?OnkgRskeE!?Vju#f96(NLi)r>|Jl2E`@6xq zQ^C$57AC!c3zTy^>FN5JgIbA=NVltWVP9JP-q z;jR8FYCfQJCa~hmdr{{4lP&N=xI(I992vR&w-bmz>L+tU#W<(-)@-nxLE!0Hbu^`i zv+DSgOKq5e;JF|3DT-IAGf!wi0|S3}t(fxR#|msI>=yL0nq$sQxl%%x`W5WPoRW7XQTNVzG zKD>wJr17GPgX&FJ;Xej{M;~q)>0{{pT?=}8&tb$8ekN7FXDr0cd%>-H3n!x7LEuNx zL3>SQr}xRvY;sU=&Zc^zUpOX->Qk(@Qd96Qe(UqUViAmU(HQvs$5GZJJ`WCMaE~@* zi?IFAQL`Q^Eoz$;rCDTiyoUYs^!-S~!N22*M&)xU4_}GFqBh|4<=(-MdW9d{f>h!y z0VkK_0Et1#k6dfyZ0o*t=jrZnD5l0q9$t)7tU4QGKNS?OlQ{oN)#&zZqx~8~&Sa7P zZO42|ZgxFYQ`9Z*gY$ruNw)V2R?Gdh{^yf^wG?C+K}t%K($_W7(#e^q`3g4jz@bmS zCVLYH4aj@SZ|>U!wJ;r7k$yL<*^Iv&8_*forl6P<=f#fg)+7M4Q{iY+BB=Qy62NT4 z(2kirbe?O~oISk1osgatqNqJs|nAn zPbr9con^U_(yY#rgk5)X5pOKxc%sOosgsfNg4wFfdIlwsqq1p9_TbfyPWofkizq1g zRWr-FYD(_ORqwYk?VKo&&Lv1Nm0IZ-?zy#^WhKv4E5%gj@mzN~g|8%aM;6eM6ly1e z{(0fuX7q5h$h7Rjb8%)@4NpC8@Ls^vkHdXsD}2u9l}}Gl_s~tY2uu5{6scjCUh%fH zeL7`c*19fQ@y@Z`Vz}B3pbqc|dT(;W`GG9)@VS$hbHGB8x1yXx6WSK}xGzbps-h05 z=Sx(K8(E;Ppi?2e7AP`!ZjFASJf$nlGu3_`(9hJ8?A}b^5So=%^SsgFK%;0bvMsVV zmHZIWQ|;ZGl4iGO-FvC0Uz1u_7pMCpN|EJAQEXyAFegbh(b}DW5T3*wF}?t2fpI2% zpHo(N;9wyW<*h9+TJA1Yc6^8T0;Ym=pmHi{)h6gFCFj8~F(#zRPF5>s*!w&^4E|+m zN)}&0Nb{Wwm0)Ijk0#ZCTn9#_ynb<_;5}#8-nx`aaP%YeoTa@@ZPo9n^;fcI6dO*DYl%u`s4PXL$K&s(1n31<@VB&x$k;VWZJ4-hj;obsaW+==xb|9~p(J{u{(Q;3t@;{ne@0glsq~`PONic{G33wEmXnZ}7hZ}z zwb(>%>!-K!&NIgXhFS4$<3=^>5(&(TJ660eSu_Gb15mqfy0LxId)ote5WQk|WH3f8HLq{3uKaUT5+$+iN2HQI!98#zO}^xO6LF)M747Zn#KlFV=f*2k3n7p9g2zXb0ss`$>jTB z44TVZqMWr&+j)a;f1=L0-<*Zn6MZS4iKf^JJlBrxWn-Aiq?vB)ks^V@*fa4I?FYb* zJ=Q-Q=7bfWBIM*e_bj-(7wqS< z8;0M^Zb6So@SbrTf9lY<`JGeac)h)#_90wZ8K;aR-Sf0OR@%qfA8p7NMYA7i(Sthj zbrhd{XHUPsmV;jDKgqetd_SV~?#F%<2Ww6KbVpYlOFaOdoUDVF1}Pgjbf=}`T17

#VO?!ani+>Le`#kbSUUyQIaVe6$V}I5q6xe-uhEv zj2;j&wf}`IzAWK(?ap4CyZ2ShZUrY!w5h8C{=tW^E*Z6XmZACz7CT@?)$mK77ED?% z^D-s>#j-gI0b!@iAUNZBV>6icqyDQMo6a=fExvRuzU?gp(fTHw=E58LUNtl1LFbsW zQQpBBmhQg#Zij9Xk-&;c-qF>zO9BQxvLGc142&?`dr%{tADp7^q6{HtLGTe2jk-H)+z+hnCJs0i9V41(SK9a=-O#VB#pI`EWJSqBn zoQhtRRE9b`F!HvI43EK*<=G=XLGi8AF{x+3T-WfsbFW?&!j*~`$A#NJ$C7Rdw$ko) z2D=Iga5%ZYYmU8H#l4VdGxM!DJxeK^-Wt-MoB7Mzhfn577wpM6ceA~Wm@AlRyywxE zXG^$QXBWtd!$MaiZ$aMEsc(q`R%tu3ycoaZ~gZ+}DP(GP=e zzjFrW-oZy$EVYt~@4kBp<<(VWb-1pjRm|>v2&JYcE?Sq%GWWwzCl~lUaO35E3knwY zc5dFh(B3U9R5;x?7_akL%v*HSI~(Pa+&x8otwo~eZfp>BFkCHCVXM&mr~^@;K5vuG z*I}KkoL1sLrj-);k$*!5oGf?wfh-GGuO-K&+N*6UDr>llgBSSb6#DQDLzY-4636^D zA0C6ng_mT!A9pj1>yYc6?uYqG{Jqd!Ixg-D@RT(BTg8f(N@i~3)Huun@Zu7-#5K1U zKxLzg7DIv;dlU%uq|E-}yBu=!_bo`|g#2;SncbHdi#5~HE$hK@zBRba7CobH#jx63 zmMp)ZuFTmc(Utt=SQy@M95r&nlm)9fec3*f&|>1PAvXNcPVp9`&q{zLSL&{CHcIy| zfUn$pxDNKfCXZCWnPrXICo?v0I1<72HrV9teRS98v*^Ylq=aRsp<-gEP^yHiYb|9L ze(xY*%@c{!ik#lnzqwJ%8!nZc3=K;szNEGnUfVt7_gGgRhZiXxTT4r>z63tEN9rUUQtmEHKXk!f@MXy+x z{#Y)wJU_NX-*>fZe-RnT#vnyW5J)hJ*Kh7Dvkf8fNC#6`s=?*`cB)-ZKAwlHcby63 zkG$%{&!IeC_=lt{j?PVaka!D{t!W0OQ)2N4Q8E`^uzDI(aX!6cBpm&t`-R1g@0UUL zGM_o$1U-a5^ub`&Wk3IyqpIsE7EFd$vD=le3qayhR}8z(V0{r>6_Ee?BzXT_i2wi4 z=l|0GIsH#Rf_ouikxT<@C;u>J&%~SU6w|fr9^*0RNvU|GRV^N5qI0G_xdHNb~K$uL~VK>o~iVCiW4qr z?3&IYHrzhuTP;kDv_JgNA@z)Q=eTt7-k4`Aju9&?q+@2bB>CmM0TaJu zLBGxyw?Ut4q0KMrP#M3pUt38$yCUtKdF^ZZoZ0v-O+MWAx7gSZ%!G+N83>Fe87m#hZ8`nSi+Bja{JI-Rmi0KoO&L9GS4qP) zY_6DSyy&OQ))VE?Az|Rk9G+p#>8ih(KP8w`puJ#s{(z2lBDYrjN3Ho>@Vf`8W_5Sz zk4J^E_#gTU%lW2fc3^_4J=yw9?8VD-!VD$bQJ(o;MQ5?OmlEd7Ou<^;j3b`HYstLL z*750=f2AWh_n7OwPbp;SIYYBY^- zFY5fMlZ|9xVP#JH!b2ox9K)yigWokuK!054SL!U&3y1qGLAyr*ZBaME&DrV&O||1i ze@ZSY&_>~#*Y%Suwn!`AGY;1eqe?VrYjZa)38%>oMG)wI_epo|0xVH<+neYsh3X5_ z;4ZBQjJv9gndu+CK+Wu$Q9Tb-+~w2H7&FcU_MW!KfS!%%p%nFgtTN|B66c83eUGo~ z|Ay^)Vzfd{|LuSc5EJC{9LY7mJoI~5#o9|J$&dSl=tOY_dASkDUJ#M` zN*W*kC|Cu-IuT1EH~leAL!c6#;4*bHB* zcJtQa&xb$5IlfCX5rbTt@%?yb@GFEoLKKDD$HZJO+uhh>D~sUcb}EtV9OABXytv&y zdB!NV?n28WNMh0>D)GPwoT25F&NOvf^>TaSj&M?=To2-FSj{{bc|Z(+j$)eh8N9@N8;nHEKCdPXq1?Af(onmD|+n$-9 zBCj@^I-<)^1;_;zoB&+?_~U>>CUnfyV~TQ^lHT@F;!K?#(Hx@%@gg5Zt2?Uzv5u93 zW=Ayj-7Yw1%135m=c+epv)3!Jof7H(XPV**|5<6)6}wl{&DjD*dCSNiz~6##g@w-P zKDD2Imoj%mh0=sc(FpbYCDFGty9}>Hvr;qBo8%b2z3OEzDK&5D=wLzYH15`YPc1h6 zG|eNOY7BEf(*)MJ3#_v=rvOlM*y8vbf7ks7*HdW%tqUcL?msG9eLK>lV`EcErrT@F zVv&=O=4VFsorf#Ux4@sy!inky-J6dIKg!BW&1JZg(!N9V_I-QOQ2-NObuoOVg**Q5 zyW+Cffn7PVG~iHR>htyGa}ynqqFnD$jm_>$F;FwpGgZ%)emR#LN&E`x%Gsy9f4MxG z!EC%cApi2n^}97JXvF_{D?|da{uXpTgNy{LAL9Tt0_L2$X#Tf}LoojFeHwa>?=z{v z#F?uSMt#LJj&)!`Q+0vJ^<=~6HoNveGVMa#CYxJrTR46^A+&Lhx$6%9q;?JcpVhkl z*J|Z5#(?{ywz0FqgW`q~H#GXah}N`@=WZyE1F3FSmL9^TR5Sk%n^?C@yGopo-N^Ie zwO4&lBI|?CV&aPVrS4Xy|8`9~)aoC>srwO)x@p9AR-@wn=)5|hV9rPO!1imF zyAjjhu$8OubL}ntn;`|(10YqM$XJ6g|NUL_;=+H4%9(b1Lbkd4&em*Qpec)(w zNmdq%hUeEG4n%Jj9!-L?=V}0A>K2r9`NeoOUj@aou;O+Cd)oBahhmQz{%|tM1axO> zfhFCKTm#m$ByfPfA>?e@KjClqjZ3}-y=jQJg4EoCVn@{sI1XqOnxRX6~)3^1i*c*EIHle7K<1;ow(3W`bbA-$oI4020dcHfO&Vg?~y zkmQvdy&;Ei)RxuR+bwF~ohqJ!d;a7CZ&#P~3MkN)qTGRO?|owJ%y`_0e?i`6#MC&( zZF4pc746!Kt9@$XX+zklu^D~|^d%y4*(clfKhX~h%DVT$^-X|tDi>b>OkDnDUB*|& zm&xlL)5DFXuX$DY6{+3m946I4UDQmxL;;BH!SbWP4^cw+O2rWd$FZ>+UUyCK#L4vz zK6f}|@Wsa=KkX~malorK5FM4%mZN1;PZ5#Dkh1j8hlG1G7B|}gpe$=q* zlsr7?sd~9ca0bg`;{X~-$Q7sakdK^#J;maEu?m}SB$AL~j-ZAyE?15~ft83o#n;fh zl|^L6zn{)v*)IG%$Pml~Ha?9@^Qo^R<{xwUY6%gn%IG@be(EtmPO+_ho>&+6BD&Z1 z#%l#f*<_oa#k;GG5BWifQCf))JSl1b>s`@3b$KIrUd1Thn9v^fdrQKup)Nx<(ex>$ z6C}jDuFeNAX#br?s*GKc_MaLtpP=h->2e~3DQrIu~W(^638PfmgC3W8WT&d;atvmDCVOD-6@tMVuO* zQ`oj?`V5N{F|HD~KQo6W>3kgO@Izw8PsV+QuXqUGCYM#Ihh5J%CZXhl7tlWrr=kxt zdXL`0z%I!8ChWuFdkPYBtNAPSab)_dYtnR1>v3|s^^SXvQD?|n$UOY!9*nvG-_XV{;b|khY_xIgUjH>bJct!Tp3Y01G}}o8{yd{x)xdG!YJqcC zG`S%%Kb*Vie+-#ZmTDpXW(gqT!_UB{=X{TkMVD7g+m{=(y>)%M*PE)z8OeJnFIx8N z(g_`-y#@|!SQhBQ9y0M%n|O#5QHzVxpDh2pC~)=?Llnw?-hG@VEf*2o%(?ccTWBVI z1?-&MUD{MrRTJy_60gf+hz9Rw`RxP&elXa(N@y{*-{UB_0h?WSfjYNtO3y)S4?O<4 z**QNNJ2yRTg~^^n{jQixuatLRTB1aE=*tBKc2tu0q(;|zM_r>o9zt3zG34c)oVAJ! zS!OSt==#J0^aCE_|J?FALD82SBGyC1v?Z^{TBtA&{P0oH_@o9E#W*$RVdBiW< zIBzSA_O@q<;aii>F2HcxORv z?I^Zv_998UE=7KfmJY^l63^atrkIsBo%|#Tb}S47)>%VhQu#VcC9MwIbf&9wM_4Bj_hMt) z{eGQrX+uqV;}NTk>hAVAu=@r7z_bh8+T7ADFvdAG;uaKxU?&V6eMw8i`|33Kp=FE%o47y40Ftlfh4VjuKzE8==f)t zCCMYAH1T69iPMD%^n-kV8POjRdW+JGz3B6#TaYwmM@6kzO5*e8#C3eIcbq;AflrH^ zgS^qyQpa9X@qA7Oe%|l_|CNu+QT!z_n@jB12abS*0a&Nh6IdQ}35depScn(5JVBG! zeSVh2;)e`!%Oms%vx+=6!9EE?zDnK-k+n`GY;XWXR!s7lexdIj*#_`lSk@fYKTk7JQ#Zq zWeAv*W7wtE;lT2om`ah{3k_zgH+fn%lrN>7pf+UCWsW|RF)Ee%y03kTX41sZKgmkX zYF|^}KCK;MLGMm$zL+l9(@id?F&VV}N?)98@$EW_-pL-Zf8(2+SvIK|`9fnZE_qek z`p2uSc-0BF(P8~xi(ZXub>B)Zzm`A@#z9%JhJ#V{tXwIPdXI3C9LCXm=?#!tj~4Om z(MI|U@_(flat!)yY**b=T|SS867cb(0>utz(a!nbH0H7TeVRYli+j*@yH)GIj(bTQ z)%B(o-I=0z<5Q8??U_9Z1|QLyI^OmIe!P^-sK6n5)6G;^^#yz}BlzQJ9H$7zjuoM!_t+JBT=xqVw zTFjjB6B1jW_^T7ht(lkSV@R3 z#~ep%<6UPmK*el#3mQ;5r#*eOd*g1=Zh8v}$HC*6|F;RY@5pcsWhE}mL^lMun?6f= z{RF>@M(lL=<^MM0I<2f%`Kr6Opw_L)PYV%w27f=$#k@gIA0N)3wyREWbTIzon?5=% zw;+T6GEKGYi2w5otl+=x^b=tPt>@lVC2!0fnMbMlpe7D(&iL|lB9@8tIEW+FjZ6IH z-@;wPFYaV50iPtPsHT_WNWCHjGj<1kOeb#U6iby|ts(c-~j@ zmMOX8*Mtp_gGdfH4IynCn51R0I{M+VuIb2$As)ONj47nZ1QqZny~BFq&b$E2eVXPE zULfZ|aUllhh~+XTwP7H8q?&j^?ahg4NUxm0y6QFH3-O z9Uu^w5bFYAt=!>jlv%QY+X2f&ZzAuW1wF%L^RyyoY8?6dKz}3IyI)0n!QWpb2$9ls zcNVL@AyVZSJ*mPCMGZ_$u-V$iv$IlbyKAj8DAKURIo-!pIQ6hYPyh=Hh>Dgf8}_RZ zFzb`5OS*Z+fSGni#^m|W&R3Ph)J_kWpEKUDumyGsp_DExms0v=mUfe;+lt&NYJ=ka zYYhDdiRhzcPKrfU$L;I6I`>;zeS>4z<{$L_4dV0kJm#doD znqf)C8}5vW2v1XbG*f1jt|3>kmjM~2TBpb!thoWr-g`)ocAH zcKwevcgr*^tk}?O?8MvSo5bAE8#|E8CvaPi*uyCTa7>i-rY%%ybkB}N;}r`wyd=lN zYog0{Rg>+6x-daPzvvo^l2L>v4_doy+(7*S;+H$*eEL)2i}1&*vt1E|qKO~!GdE-$ zM9dgZ7p~b4+|mxNTvwuIa)Kzk)qRom&BpW~9tVW1H>_=eytUZ6R;jPWxUz2 zp<8<~PCS3a;H19HDlD5Oo^$t)|w;p&Vr1;JmF^mK9D_#TlDXlD)m(F!-4+dFDS`HI9;_j^A1F=TKWdFJR zRqu7X+WBth#ei+_F0Yh8`Az4aJq7+=6`TYvJuk$PF8^6$pWq{yPM| zBu@POb-x>T@Sp$o8pK{jKzqr<&K}Ax@0xi2B7N3SP3(A7Y!0da1m@`wW^&-0sBgN0 zs2`FzPu*mmKdg?qUZ}kc(Zc_QkDg6FhkkVz^m3~xPo`hGK)gXI1`T*z9l zVm9^%g>;^<==eQQ0w%#oo_f1w1LJR&lQ!G-Mb^<98_^ zF}3Dkx@zv*!DAjvSESh;A{l$Qd0DPYt84N!ODW6Q&vO$U0A(meSdo%={+ z{$L`rk>wx{6dy7m_|!WOU(&Iy9U0F@{L%{RoTFYb^@GCy#YdnPu*br-qBB_Q^_<=V z5l;6`G}ZK*N%_xZ1n_jt%PPWkZuDNd`s>bGMXmC3%pAi&2*@JBf5UN>&@zmkP} zUO+VK%uyuqR_v}>flMdN- zQ||}J(-e=`|0g$H;|PtVvXq60-jOocqY?YNZugkwAuR4by~|>!%Ox%YeTsTQ)~O8W zFQ_5gambD5;VQ39I`IB?fL-*z9CzL$D%CE97w3X9&064B>C!?{fJm%M=}$rDf)gs z>JZ1JS;KewxM*E%o8C$>$b0E`Kh-7a!%L{mK;jzQ^VPS1A1~~^S<^m#v%9krvl4-@ z-hfX*-t!e_H6JBAVNt;E)#>=-?|DHSa z*$nNgm3W*J^kesOEsB=)njIQk+gRhWQ~|3r9w8gJ1+h5hT)l!vYa})g5MEdrjaZj% zuTOR~KrN`|GSYE$7a`n!fYRU5$2*FgurYABk#)oO8UD`e zqmq?edXI%jEQt(Zs7%wQ^ z*1}n@A)@HOO2q?%sO!_1 zy_=gx2%pg@fYU7+WfVxr^8(}(9IM2fa)F!&V+>SRX(G)eK1xe!GesO$bM0os90@49 zjiIV(g>xD=`y19_ip1swO-H>!>duK^4=$x|28-7z=n02X5p){UI$ZN)TskSAnTlN)2l(g3)Q)N!bNIc7GsBdEE&BP3Wk5Bc_Z!v zoeBK4B?=zX{h3}k8toHqnW~VS#aqEJ5UE>RD;oZN#~THXzM%BfgzbZYOt@@vC z+=+W!J5c!{=UNo;tZljr(p?&MEruf0UQmh{DwjlHD3s^05@oD>aF zT0*Juf(hiONGoxwWw%&ozAs<^2%9f5pmsefep0;L=q4YvLQ ze$N*K`L%{}1pgZH`3$)Cwx*|pi{l~P9xz10%v<-rEe^eYY6fq1RuZ=)g(z!nS05w3 z?_& z7DGL<93|3hgQ=BPC&+)``x~q_t~e|IKKv;Ep|kU zz&+C_?~$2oOOHFey(|_H6hiaP147Kc3 zuCCN>LRVKy{`|`eM6QqT;hl>B{Sy(YJFhaOB|}~D!aBcSUe4IbgUG+ZB7Dc+YWvbn z@b5p^w0d4vRx!_Pbms^43TEsJjW|?qJ6loSHgVp40Y|@@r`5eZcEE|Ncub!nk`<0c)r`_b=BZT|?%5=sP?(Cf#89Vsyj;>1x%TKXs>PKTtCaS}M&4W@q z96MVVDBS(S!64U;)5c10+<&^!?kX)OwE-Q%*Qy#Y{O6 zbHWy(+YSxry2&HsJ=#)mA^K+j<{O%9*fye6m_QEH!g@Ce;&Pyou7Km)HDVOa89b63 z67}Zd1ZW6HWWtlmRQ*oeGSC-;V=AhvZS9l=Vuf60wD>Xjt{GIN#X{or#z~b|pH^pv zgek%Y)p<=^Dj-C&_kfE1sq{5@EvQ40B*ad0g<-amce^5|c=9)OXU{?(EJ6Mv8oLEB ztt#p5*l;cs?)-!jz(`?$^c4%s?}N5Sf29bkw=eAaNwP2-7)3+@RK!V~wzG+b7FR7> zTXg7k1I27XXk4TfCZW-4D=cL^p7y=hi0e;=UaWQ-1^zzlqz+^5PTF&`kp%;53F8uy z*=2>Em%o?a&cgcmavW^DbJN-Tsb0!DPxp<|d_YbPNKP3S!!MNxcqXui#!_#p(t0hKN-x>bc@bB0BaY#0bLWh>TiLx)hU3UNTg^;l$b%z4!O`0(2XD4b7_OUJ?Zp zZcI#brPtZ+X6m5FFnJQ$QHtW-0+&@+(jLEjv<}I&>SeCJuU(0GY*s#G?m9EcZlb+m zI+PE?jMQ_uqRiOaKc9o&KQo3%a2!F^YrX5jSYuY_zCPYlRk3CL#XFv0PD8KdW;my! zoGjOAwfbq}2}md}K0=e3@K00>_&4|f>KJ{`8fY#7J;U6B7{C~~C9DIu8UtA(0a9sZ zBAj2v8Nx{%VBq*T)=n-!|)8HF6cQuo}VX2`uBl(Pum5LfsecDT<{skti1T=AJo|5*Gi83IB9+3zSxCt6H$m_K?9zVs5c}7gF zfNDMlchU)&0)yP6t!73$o`s-h#l21$5Zk?(hfUl0xTYcjZ>s!PP0=?P^)bg2`}0Vz zKl01aHXtSrZ`FYSp5FBql&M#}dttTh3nWNgGX)t~-`M<4Azqif}-mr$gY*j4>Fp6dAh$GwtaozM-Jh$BW_%IOH_m6 zJ8%!kSbqBx$2WE^kbm7>eaMpUbO%4+dFV&vGzad~GrDzy+sD(wdQsC&S+>Eu`@75i z5{=E&z;dtDGt|$fcd!?oxch5-iwI5ZmL*VEoY*)}Y?u9T z@I3wo*jPW4m-S}bA2i873_UkyRI;$dlbY$+ojIWPj~btzb%p-do@!TqENjn9i1+20 z$Q`~iQB}gF2s;venrE^e-*?gfbvT7W#<{ODFV&Q(uoXaQ@3cO3YQx1x*MP|z3?p90 zY*o)Xfo+%RfH0Fqw(Vxq7SlGa@N|0y)nE>{dz_Z7OySYeVo=r7NdoFJjf15+Hw&P0 zZb5k=C~V`6w=0S(1ehICoIAW@l#AI|&`{R|_Ddd0v+r8wBK)de3n0?br-T1FcqWgN zw&{wX4M$8IggIt^EOg*g^K({O;KlsRrq_H*-43O}Y2opo*y~C9#vxn84sSvCUgqrQ zliyGzoEiF916|pVz=u*>^0?nkS5h21`K`G<=kjzCz|)noTAF_wX7(D^tMksYx!d;3 z?w~=$(*egW`t_*!%d_Q2*^I)eDmezzHa7fdI5Yh_GC=) zz}l|BEYC9?7LqO|LP9GTlntxnwVQ;wmhcAg@t;vm!DvppPEjh5(xi3(NaCSGbs-}y z;kZ6HmEErGE=;mUXHlKkzn8aH&?pDw`y{Mp@#k_1vl|L9+F-Sd2H^rLG$=G=`%cj1wEt?_33I&#yb7odQ)`x4>jI&LRkFr z(Ll%JtOE1u&Q2M*ZspeHd`MRjzdfKY8 ze|1%t$f+>FMfDueLarOBE$F{M4D6~_{P-pS$FQSX|3p9`VNTL6&+<^}MHo#N^{zhF zou^H)`v{!@_gY8kK`WlHrTri5y=72b%@_YUxCgfoJh)3BxLeRbaEIXT?i$=7xVyU# z?ykYz-5vh-`E700zTH>*W~b`I0Qc6NTXVZlpYuJZyH7{N_x40sv>->i{G~CVj0A~t zTM2nm47euG7h`o)h_|AfE|DqzGadiwLW^)%xK zh~KW>29W}VEdP&#`6~hs$?s1BugW}=(J!M_3X1AJHy~Z{QoXMU@g#@^#HWt?UD`Cke8FEF#c)O z|4uf0VnN5eyaTA0~^WT z0z4yP7LwotLS{jHEDjZ^H4k+f@Q^%W@^_w#*RTa2=h zH&cD`K|KK~j7VxZz>T*P4)`F#_H1I#2e)@7>(03lty$%;lu$a~B|&C+L5Hc#uDdg} z`%J?22sX>#_AkB^S}+iTUs!){vjmfq#7DW6RMZnR#1>wU*&{WUD+Hkz_$rC8#asI4HCi=ec_*Pn?UY4@v^Gg}5ER9_GYc}p{8AjFLUB2!+kPmk2c7Wsh%5Z3z;ixNpVDUb+U`21O{P{{IIlrSP&Em<%vO^)*1tACp?GYfK*<{oE z4);_wS1)bSpVR`OmvFx2Gk-JS`t%0z8eJgnsc#O_w;@G#4oG?8-L-!cUzoH;4KMD7$Y%p4u>``crbWCmg%OYz1llD*UgvU> zz%Ei;r3_o)9Vai%OW#*Dgb9#h!Z@-Cez7^>?>h8<&BSiy*C@A35Ldd9^2dfZQl`Uu z64H8I;=j|n0~Y`b=&6V;UU||Yys%|}J@%uc1m7QcYj1~k9mY9y@%j;MEKIua1=v09 zGTW+M5B8`CFU=FyG23X#gUFV8UT40PLgLY4N7%JsWvsM14;N~=a&P5a>xE(K1h5h( z%C94;kk}96(`z23$|-{j7SG?oz(#>h5r$&M7ODgg3^x+je(`Y*0S}tKQg~cYSm4WK zrq|~tnYY^`e|xU(O-@k!b-G_zomdnK6)a(C$0nlHDTzv5g~ zZuHbtu)Dt+3k$Bo+qW71cWl^z`}Y?_t@-x%y?5Qk-7}1x$K=VNt|p_^d=q!O?(Bm<-X`~^q_NCQX*$N83gTx(;9n?G zlA?+rV6$D|RRIqR{L~G}*#_Pq926ylL6s9j*X$MNxT!se!4RcdM~X=i8WyN-@d>KB6Z^K+ujot?af`ufMY zg@sQ$oCsG}snJzco~K{Tta@Zpl+1vo8eK;1I-+P|(7#ucg1F z;$hHuDj7CF*IZfe>m-(^_-63KYbn&1C|Xn=33hJ@NGcNiD3`+A?Vx5~+mv#?Zcy9i-t1wTsgs%Nxxgz{=d(EdZz}sw5J^vt zP75YVWF&les|XzGLQzrCBK&-%dR<|ANy(9~R;Qe4+muj_k}#z^ULoj^D|_hx@r{I@ z-m;Y0{V}0LX-#P`!j3RCVVAPAEj*?${&DVDf|7ktk)4y1Zo7`zXLM_9Y@g5Lf#Ynw zp-c)|xIyic=I%^|a9QA^WiFiFea}Rp@Z7U0^W+orC_!3hR|7;>4=C3ZF~0$G&|^WC`=A!n6AHilILMS^9f4Ub$5H6 zD^U^&Mkf5cdvS5Ws@DY?Us+kPPs9}LW!{A|^ayjxNzo4d=f{6KXu_AIN1((EeD>uq zDf#WifWzG#%5{r6%pDpA^fTHglm+kvsYoRx!#3?8?MbguOSU0XjB1%(*8ST|r}Spldme~t&N{ot)gKVbX0}K|qjq>Z!B!-?7`n!2L9EN`$SG}$e5^oa zcM1+)VVvbf3z$Dy?v2dkNkn@yPWn{j<{G4>lZ8s&8_4rrr*}Pwfi5$1tTU~L$wQ*k zzghmPMiLegVZySyU^UnsT98}Sp6Yf|%9v#4mg#!rAIq_j<8B#AjgOkt)%G}%kuxSV zE_WPTi1J{B6vvhRfhkl50|!U9<-3W5jBHtf+Zn&ROL`}gaU=|(noA@tbR1^bjLnDd z&;`k5yXo6#G>YT@=SU*zi<{5K`IHY8HhPmM}Cv1zwPv17G_tA0S0<)MC zkGLCzg4Wcdc|57gAFiij4co_+jRccX%%m8Nj>bnyMAz5zV{)jgmUg+u>*XC);5EiG zU@~xs^HGj-!bKURw=a*u_Hhq`gd?NVY^(q4_pe`(<7W+=3@D!0v#Oqp(gN~lFis*|C`k6de#g8h~g1Y8g+a;<% zEa2U4y;N%?5j4|BMy_+2IOSrGwbe!q5)YI5I7Q)HWqwN)3-`~>%jF#^S;ViW+iZe* zeM=M<9zE%#CppLn=e z+1GZv@Oo$&p!!-ow^Hd#&~w-aJH_qD-VqPsd4tS?e?`i2;v}%P^xk^aGGIc`*%X@1 zo!5JOVSohvd3g@LB?>V?$pltBawBpu17gPkuv6bKYJkx!;iQX2`#ZU3S>I>Fgyta)9s@%|DpW%5+d;#@sE)&J z7^HTL)|g;v3N=p`&d9&6rXF}=oNH3-T%-}1PLI_;q>O%8+W37!4w&&f^5o5$>`8aZ zMUZ#UfmUi!UYQ@QSq6GSBT1;Jsj~Ee&DZLFmu@>!;{_*dk)YRL6oNu2LM29*5=@`5 z>!Be@Rhs0gW_3j?>vKh3AN^0bG|A1^-d~g;6ToOPB}h~2ptF8S=pJ9+JR;pLcLgVk zyHKNSP2>AOJ&Er+o?4nuOCyC177M3n;TQcqJv}J)-{p%vIwgp=wXi{B8CfoSiK;r> z4h!W=n3OW`QBhGUW3%|w3{1#Xxzn$S7mkWo5Q*wO+kFWAk_L#G1%z!#+=YyK@Msus zRi)*;M<*wm+gnHKWP8-ug*4brx#HYbSNr2>WxGrcM_XhAwL%RFe`6-pnLTV^E2>+_ z0~5xuK2wV-hzU&8O#Njud6rxv?~|bllc@hDv+ksKR-!}-7&_sp1?H0WGK^2mzvcZs zFfMZBFX`Wy&LWw!8Av_fCt4A2qkHls{w7b6Sk*f0jU?*+@u=34i?wo{K=5~v1&JcA z*=_~l>UfVYM@-4o{Zu;d?_ezv#1j3i*Xih&U!?f(WBO!R3)_ zIiD>nlN){i>Q5y-VKh`1CdxyIlbkEg7=jnS@JG1o@Zj@nP|8LGnjQ<(ol9RRdgrzZ zg`0;56+BzN6d@HN6iWQgyTLe3UFP%5`2D%R2g_;bw=U*W+UPy)clshk2Gw+e@2b$Cz4Xk~)aMY7^A;1)<9{{YGsTRi zKPCKB&>WPJ(6TZ&^clJm%*@P|JH1|h-4X>~SP$-W@*+XlUv3Jebg1)Jp&M_ICs0O! zEiTqO%KZbRARI)ByVmDc-%y_IO(d;{lvX1o&7!5Q-2zSbr-j)VTMx+=zuF1-2l%&I zHWCQ6xq7%+yhFVvu^)MaYw3us{VH@$8h^R;XDo-=D2m07WfNy+=n!@P0lB z8JOss4niPk#5et|o*>Q*hl`GL78aHa#Bzc}^D6pc(;pCe&@42ls0i%v&)@7@{Y-9#*MklUCCe zw`)Q_G=B3rYTW5fM$^snMuLQtl;S@~CF0nE@vE3dg4Up6$teHYbZV~Y>k+z-#oH0O zs`7Y|Xrx&Asj8J$Fd~R^IthJdswvFabyK2gmDP46fo4I85K7#noTyOZByZkquDzYt z>fwBC#POt@LnvnI=yIu`Mt+p7RDI?+oT>A>ik6lP?U8#fGOXCkA~l7$PS|+y9C(T9j_>owd`N&k7lXT1uT+yxNZpjaJx71 zFsr{)W+9ZLkCBtYePj-tBBOm}ZePu7$<5tPF?|l;;^O*iu~>PdL zcY;QhfGnHJZq^JR@bw5zB!3OIzrVkQ?3KrY;_>;>6u|%+?Ry_BiP|4XAv|W29JwKM zAz$elx10UKD)2k^S-d>In`Ze$fjyqkRMpf5bQh}V&c|-&%Q=tF>f;qDbRakDgBt{f z7hbD~xd`;F=(D**G?B6&=a{F2A4hgg4VI|hY2v{J7P0r*LWSnt7dx`E{nhJtIRA*B z3YM1TL;m`PC&$MrH!Plj!$_nSkb!U2Rblwmuj^|K| zBEHRtB7iMo#KgS}`*cQekp zPW=MtAuU?oFM(gg|K4&v2Y~P>6Q7F)iG5!E@!3q=S=d8xtWncVOsOP8VSC0l8m-b; zZ%QmByac^9sn5Fsi(uQHUA?J9ET5&CpNCeTr>y@t!4*&WOnxW>4}JBOZ;;(gHXIK1 zv*)-`vNjG18xQxfNLDZHCMTI_f*`0bshTyijIsfyJfy1gwf0CA{5=23PTGeoL=Cn> z{zXj}5v0p9Ig!O`G?L~0Je&22kToH{?%t2bS6AW}F{MdyWI3mzJ)xPT3~OvB!%R#O z(AQNP9FG+JU8)eh7y}DAuiijhhzCe(-^^z6=a87%nWunZRUSIfu_j6)Md1q#4NdB6 zqmv(2Im9)>ml}FoCIpOgd1((p=un=04vX$l=uYM*>k00* zKd-~Yz%Z7}Vlm8ZOIryoE~aK;_mmiu0e=-s#e=AU6l8=r7m`3k*t=UANn9RDq!Z9= zb3U`#L!RvNAOXtFrNsvjlu8TR>l9ZfxE+d1{2h5B-41e6A&2zeyv{iT7pNCY3} z6h7ihHS2Bh&%C)Ih_Pr3!Rl&qm)lK0D27pir>`$(P3zC$udo(#wHvANn=%laxP*jn zkI_D_I}`%Vhq=|4m$pAAtOPRcUP)N)reA*@0$u^u4Q9@TscF&Uqn%an^IZ!zHueP& zUb02TOR@ak`0K}uNeDsgo6XMRKPpDD%3(5*F6#MlFOGgV+FS(h3kLBuWU+0y^q|6Ff^WGjEvh9WO;Hz#LD$`~tR&TV3o*97C6 z_G>dc8$zgx|7qjHp&NKCtNSn z+~UoBG4=8g9I>x#Zf>@e*H|7HC*WwO3Q>hem;HvnA!_6AG+g@{ zuUMlcb$)b$VRk^|ph1%83G%AXu6P6qo#TGoH^s>(Gx_{_e)8E>s2YboV*nZgHn!7X z9ECKIPPLwpqv-E^c+r>Wo<&r&0TV|4UN@O3(tjrMC%um;PaY4aG*x9)x>rvJSw3Gw z7U8#c(wMho0ug1SA|o?6txx}zg-}op)+qeYl#w;BfkzSR!#EuLir(PFR}=8C?ooAF z!MX9;1|NtEe0cfC`d!fVaU(Wo-N_(nsLk{VMPYf|?mM4I|JTKGH=uZb9n5^SYV*w1K4FUqKzEO%!rIk*HyHm!Lh5aEuDdqM*PE?tcLysN_XJ4U%C-uB^_=JVJ~{ERWy3s+0w`Pujkee1Vtv|bhi+LxA=7TKO#U9bBk z6Zz!CL_VgFI(ie?l?`KWde~t)>e$4q3{d&9p;%(oLo&4nCp^4!c5qNujbAt=9naBFH zP^n$Ee*(4R6gsY4rZRuN()Lg?p2qpn+S%zH|AjT)RVID3OLvlCxTasudn!OWCgBYRtwilJtg zA{ZgfS=>&vQdma+=~h2Z*jfY6;eAi`C(}NTt9)(6cVo17w3-a7lvPK!x7Aq!vCm=M08)8X~vEH5Act}&RQOBOtU zF#tt`vGgYPk*WszW^$QsG9>H+3fNjy)^`@Whe~Y-`y?^bw!lhw5KZz5jH-^?p1}L{ zA{drceUN(i7T3UvpQf_WZb#f|W8Ew1viMGHZFO~i8~)|~Y}DhaAUQJ@*O>cvv>1nM z%Hd#Fg*L)Cb9h`HmF67Czd>*sAv* zjsB*hP41h33eBb@PoSy$e7D`~a=3QN;x_H+d%(o*A+|t5LJAKw89=Cm>k+ubAn}M9 zmsPh6+od>JfKFU?AFmF)%fpEtHi=@@ajYHWV9FBTN*`LcrW`VGk?ZU@CkiW!a<3a#?pH zO?hkW5rvPT>nbezLKS7a%T-Cfwmv$`W^A*(9#b1{)CcvYv6v7C^#1b(B-_=qNVtanbSc?`V0}X5`GBw`eKwj{~0UcCSfd zLW1Qw*ykgt&Sdh_j2j$(X=TYm7-D$6J~Zqe-mozDhS2ZDPXrue-%e~74%c3siA~MS zmuxz0LaP6LCM5s*?VHoiOo4Pfeo=i8V@=9fd}gM1Fj%g&Ist}U!vj|x)(J6^MS^l5bZek&9N zA08d;vzO@eep739ZL6sltbm4>B}yF3FlVRlophp8W6+PI|1PnIHtW37|6BHEEHYGY z^vD5+pa0ukOUu0Fl9fQs3ao02+4)MYr!c{1$X1LPKBVruyM~aFkxM8ZLUd__#PvbMq)@j&CskvLt8ZNvo#6sHkZ+79C(L_T)2Ws@MJ= zmJNVKG4O$cfjp!k7pImM#FJ5nZ2WF}ncevKeBxsK`!{_;RZCKyRh|e0N#Tc$j^|ZB zTxG|-MjMZl0<~9=j-iggU)e0cz8+{cS$pM{mq#SZa!1Gw1P4X6Zy#G^5_8(+S}4u7 zG>81KDQbzC)_#>G|bDTD}eXx(;_Uizb7#@{Zr-~< z=!5N0tGbXFj)e4nw<9mW*{!t7Eio>k$v)~4hu7$J6P#?$VX5BO&)v(wLFRhT(6r$u zf4bRi3GXqHUD{fDB@ccXA7tc*(wQ6|H1Yi-07#2LU|Bb!SO}eu)q{@LSZ&f{ypRa^<~FIXGZ1v-9E3tjl_{)CbZeWjul-m%GF9%1IU0 zb_CtepXK@PeoX+e(xu_k$dF)~>EztCyp)u>{m0wGU~HRA03O1Ah?IIg=J=#bsH-ot zPxo<^ioiPl{-U3;zB5)Y(ZOdzCK`RLJ}1ZHW~o2JQeYxNoZ}cu2L~6WcfvgC`|}la zmh0uvWE+u8&2Dc`@k zt@eSx1_ynr?fl{52TPBo^v=K4Z6n&ndBQ7RNaCSu0P*jdBG6Z@-t^~d3X36QyhnOP z3yP^UsCg)ovHhj8?VxX9AWTtUR$-GzG!7NVm#9XRBy>ra{8mrN3zIIzQ3^w`M3Qp_ z_vE5a(YR}JW5ek+UrNbo zt3m{jfevHtM~tGY72lsGeMIq&eng?KY7^O zvyO&6V9A9#c~zy{{>?qpbftWQ$_cpMtK)l@k(G670h)}B-HoI4Ud-OulIiFKV!QcP z50!P>-NH@G0C(?6pU9GZS{HE^X|?%$=?t!}=T-7`EDSGqWHv-+z+@Uba2}<+a}H*8 z_O>qs!~*y&%irH$41SlcZfwH`G~?uMuF-q-!>)6>&oAom$v(7DA0jXF6f+_d-ec+#f} zbWuK5UY(wvu6*s$_SRhqgNBL8=5cA9rj{jr;?IbnlEmpjB32Z!`I?}Y^^#a~K zVA43B@v{9WEHs|Cn}7+6jGU&FN%=>MCXrug9$z@_IV4f$<64=vJlQEy{ESu0E;}en zm7n>Hs78W($1SXed`m1L1U??S^MZh$b34c=T1OETN0})EgvH2M1UoQMCC>W^%dU~J zG5_OUvhMld;Nltteh-t}JyQ4Q*PCj~xUKN1s@Vs~frf{W8unh?a^GC*nKlvJpySwfat>5KiU+8(M4 zU7KRS?nCEjjEv2osGmL%pDZNiu%}{Q*s6_tdV3pyM1}?9_JH5ep{dovs+;O!o5ce+ z?IWRIGXalkmCjo`vloKA|HGz;`0As@XxZGFEa%!T<2hCygtH;Uz5CQRAnCTHrZaLM z403>*6-gF+B-3oPRB!P4@E&{DQEv?Aw`D{Fg8oGyN4s#`I|CoEgV|#|u6;S%TwSey ztOr*OkLB4Bg`hvZ=!>umjskT526Z1Q4){p?KK{HU*1^6{_bsMd4K87uV6{(o34a#U z6cjGAOtQS3#l(z^0wx0bNUI@z8746lz~`+e7<+RVPJSqs9;h&0&-W`fs=c-Y1XqM- zlkR&XA@On};W)boxJ=ruw>Acl505k2tGYfDEy5tMOkgqVq#t|SD6sRe6!~EE+g))= z3cORbtlD|N-VQuE?<-?K>l8!zyA1R8?a?g5s29@I1Pu*&E|olZ6D;vnwEDqI{@bra z=2sgX_oD)>dj82^0fh4H;N_i_tk+#C#_fd<8E=n;;)DuN^DPh^$%}g6+dy8C@NJh! zXU4_F6`Evv-9tSQwq4&MMkIPxq9w{n2*RUPLtHN!IUfHT<%NRdWzbz=M~Wp)xpyaY z5pA7%suad82cEgV58&-r2zM!U%BQnBtyZJ&e0;N1W7lXdvQ^OXD^ji0Qm=e~a>caJ zy6_QSrvP~X_F0K~b&5?73-m4}CH1goKgvKf(1iotOw%$T$&3KI78M99#ke)$=CG-{ z)QW)n66yxT;}U(#u6JA|zqx-(x@ zVTuhhpd14~Zihp;A>{3D4hXV$w6gSU=JW2>DQ9&sgsjN2ogy4U7BL7jvmpHOg2|8- z)jdlbmJ}q0a>0_cGbE^&2zz=)d!E&FYbQKLJdD0So|p9fTAuk8r%vB;WBrDkY(xev z!>Dt5YIh8++{)72*%Yf7lX`Mu;(f1FxeQBJSncQ*L6d*~C7sKGET2g(ZlfVdM3q#e zs{MLo(dT7lLk=6M%Y6tkjs?#pzwX2p7&$F=b9R7;bt$)OuuIFg?cB@sZ0+IgR|D-I zY}2LtYKH?ktEcO|A8psU6Of4vkV^NcS}4M?RlLS>+L_&#dNa*;806n zUG^bY0WUBN&gXte4;5A3sVZuH3I6Ll-~wbrllteCme(&HKzd&HbKd;HJlYe5;tG=> zauaQcPjeiK%Oy7%hjD$kVR|#WUu}VM;*7t#iwgX5qhQ^3#(|xGPIGDfpW;E&Fw%5E zZwllj9)&%2B01+=P~DOnHaz*so2nfHxThT80gpLtT@$zu&zU+1tALs5gM&kAw4D1< z-Pi42qtWCII$b2L!iUw^?WR7ZCGir7!x+(bGc;;Cy70Hh56Ur{VGk$77$p--LTCj> zK7z0zQya`l!+#-q(FMp>@j3$&z7vKQE%!rzg(r#JS0HoVxyb}45VO!B`GlzX1L=6w zuGa4V68`k~krVP0aK^(_#d3a;*B_=)L%ltTdmBr4*6a*KCiYg`U^kC=0a`$wL=+yn zUw)pDlkh01*yGsv6CJi9iSc0Db(@av{GeiNgiDi=xtHd!8d8cD4A)Y}4-M(Mq*QM4 zzpgm2O}ZQzt*mnLhD**vjiDS*j3Oq5_mbLFKJzL!5P)qExw*ByV0{|8_?r%+wi~Qm zS#04kX&s&(ii7?ut)F6Tf?jKlw%1FD`nVk#Jw7xn?1$u!AD<2BN&`Qe)#6@Ofg!QR^)62P)J?kA2`B0>2)R5V?k5?$l zMpQoP>Ob#ARg3cv|Bd3msQ+GMO>eX~U~K65mK8Z^6`da8ud3^H$7UB$hQ@zch5<4_ zQNSVBMI~evCE#^srh_e!GKUBG#3EX%=j$j?S@)nmMyUIN(4-vfflU9&E~lJk?}nPI zX0BzUt(h~^7$c+RIzj%oHXrgk+l72Y52M-P8T>C7Xzl?^hRzlwHa`%b?>_GvAF`yL2|}M@4RoD-3QUTdnK(EWmQT^AexK&%ncka^hksI zD)lDoHH1tg@Ua&vYZ47Vsb9{>%`T_;wZ8>WMgf)_|E+uVkyc_!$D)aJNQuWeh8`;2 zrMT|3xqSw3 z?bJV*H7X-eUsyS@eWbWZuux@#61+ke!oY>EnFVB10~9BW9}^E|FAm+rJB`VS?Gi%< z`}&Ga!4{H|Lt}?R0a~ehaN-8B2;5|xBDr&mi%soM`)Mifaw`?d$%2>l5?%_^6}I)B z84Toi))zYWp%zZ0k!ZxsB(}ma8zhi?QK%H(K?^5o-?{fD)E)N6KUEig=YhIkUrN%@ zaMxKOqNStbiD}%~3V50Mw6Hi|0{gpnqN?+`)Tyt8FIPJqndtG);URaq(;9XcO7-5^ z?(T0~RMcp7`;JsOXMVajMZF9V=N6k!4j_Ba0`kj?u-u*bLKcG_(F*RA6if15YiD3b zZG$2%HzZ-P5PKAPUuVSjYzfG;SV6|~wOUH4@WV*>c&Kbo#k!`Z#`_ArTh%dH9F_Q9 zz~$|>d!yqr8J7=su)jo~5=+D+NYf-|d1H$6?57QBQ?cbkaFq&QY@>@yWpaoF(w&Sm zRc|I?VmQYsl;<}~Y zgxpCO9NPF@6b8dAB-hsZ36EJXFw;_>o;?+YO}Gh^>9ggwPf+VorR2w4TcJgM_pO-8 zV{hgU;syPsnL5uTx`o zU$!=x-nbBH-DhY0L#1y;^~cAhDnVQDPB?_~6>=R2D)cy9szhjb|H`SLxfCla>pf8Q zvFV(;>!_iEubny<5WI2A1o$Z^`h!TalNs?HXPUmuz<@*$jS7s)uMXxKT4~CymLf#O z9AtHcZB84D>Glkr^gWh48Mql_qIJ1>Da0tOSf1b?L_*p^+EVj#H664`pMBpMJu6E} zR4%CC=4;j=C)rt(_>Pere^v6IChML7hS}*%Q1E5xel)vFFd7)(j{1fCHj)eI}e(|I+}p4yr2$0bP?IJJLy3b1jX{k9t=Gz7AO?KrH`vE2!s1XMF-Vp~AIt$WW=wt$FV0v7UvST1bX;03=3K2PphL^}ot zhE559uigh;kOB1!Q^@qTYz0zgz@WkgJf6;VGztuPsYtds`MTBuo{yK%9qG47g?UPp zgv4I2HTQj(^1KJ1$Kid`nK2?@juZp&Wyu(3%E3;bsck*tR0Kk7IJ{q78@}(<o*8Sn6=ygj!seUGAv0^4w6+DJZd*JN|;$gE?5O0O5%otw2Ps z{={<>@#>So>=4nFa76bHXH`-(iKV+pCZm*NUXK*k1btrsQ@ohY@UNbCA@zSxb?*LR zql%j)acxFzBPQPKk!iUknBrN-wXv&xz1c2Lg<%1bL62#3k?5{q;RybBc21&W)6CDQ zfq~}+iHYD+6H*T&7DZjZSP~g;a_Z>V!HNxX29L`nawyTZ-O(&IRBnibakZSrKoz5Y zY=1>j@QXil_}w*$+0FHJ{eKO&6+Vz+bN^yT+v8Di*+xq~iO;UO`ZDG24y$j;+^pEf zRK3xX>xABv*z?k_(dk5`At7OPvs@p1KePo~YjvVSDPMxSd|2i4R#uyd7i_?yK2WlGO)i@oJS(vlOg{@Y7FSgf8@wGl7DsT?&V8bh zqV!?;Th@nR%c1Yw)}lf7rXcIoz~S@mX|>+&MynthOi@<%x*0c$p-3h7xHeVIoMgyN zE}>f2ml(~USp%a`BvB5Gtlxks(Mg0#`AJ86)H+|~`K zj?++E8wdp|KuWZ12-A~4Nll*4H`NltLYI%^;x6Er;x1Tg))`0I!=(>{=pSSe8KsNy zllx{Q6l`Jsbz=`eCt_nq>Q+7TR*;b2RQ6I(Xzs>X>957_Y**s(yYGg_1{n0-x#;^L z(If0()Wfy#)6q#+M8hwChV6SbcI-jloB@)va7);iJd~4%X)4uvgN>0VqhaCK)}NSY zHH`?6Y6xNT*X*viKl63}aDUtinKv;(hMKv6uWis|Y_Z;0?>J4U=;U_5V`gMLUmOL} z&5pOG3vW|%@3AklGZTllX4hWBaTF&BAW1p7MxsVvt0=tv87K}wosGWV4rk)l26aJE z{gAJx1J#Q5dcHp$jNo1r=iOrIAum7y^YY+%AhJk-*)e^((4s=!=vHsfP78UZq#8+` zcjDgRChoOE!F4z@Y4nVCM#8IBhLkdo8`)ESLan?aq0Ekp=tH9t%-uj0EC>&UjOZ#y zjqLF<1BMaV3R>?y(qi#=v{=K zK=xwJ!~_wvb)Z`XWTbymh8_uHHO&;0)G%MP-%M<@VKD5Hkx%DD;wp9f(;SCmcC*VH znd{fq3nj$E=Ioqg6gHW4`@@*e2_?oFau|^%CIjpD5Es=jfk+@3KTj9rOUn@iWJRIT zNkXu^Xf|4DWc~bUzpbeM&a|iS0>kcmu##HUxGOU%FCnqF?WrpiI4h~`ri2rSy~l!q zIRWid3DjtnViF85WNFz>i@oA!cYa4t@be9_+S2^PsxkWKw{hVz?x+C$%k~bc%PmgD z`{SDiUjfcPhUCOckKUf%#BV_y3O$V_Z&5Ix|PMvz{uN_GKK*^I>CaH5u&)!x!!9bJoPjh$MeczwjdDMucoCYuC;Sl*cO!}kqC{5V~=eJ2G z4MvO7obB^mnk)l~O>iLA_i{5H$Vw3rtH}MW$=K9`>;k z&tg{`Q|S)NTLrDc(`_I~98Z(Qs5(}?e5>cCOG*|d!=e%5=tf0H40r9&XLz)u!~Pm; zKAN-O$82&Nz@hG=o`iB?|A3No`?Yn3cJLxMp&=-;LYF27UsCC;us}K{E$u;Kweu`D z-FbIHWJ+J=sW(aVf*_GF@RKz+MNHr2+--NWP!{#O@R9HfTU{nKHO&&E0N`I1^P5!+ zHWo8Y{cO==U3qrEpwtDd%0hHfEZ)qN)A~Y*TKUhdEA~a8u$ZukZ`e`sRf-Tgpt9|p zo1+7@;fviT4d%LhR;RlDB~jI`&Iok;lpeQeX?4UU^(f~7=uOV(vn;OWaXhVcP|(v^qBPaWMzZj+R&ecQ zV1(B!5m(yu+$=YBGDfynz!H#C{{iX((^AvFTGDGS4aZ05ohD0bXr*bSI-|q0|A3qM zfv>_g00AhR=V$vz1H%4t0p^|}EtVy+411#g=#pdc&^K*-AiwRy`*q^zn3&Et4h`Rx zA$heKu_zGFtu+^Ax|s*3*yg0+OLg}>b zUV&*h`)yHcwl$U%G5st3wMfLP7d0PYlU|wD%xP*?R+c(YEm0W!PF)XZj=Kt3itz0n z9omc?w~E`Kq+2qot{yF{)a)?6xa)fshv}*NQDf3@%4(feT|vJuIo_b-$$xHVv2`!L z7_Wp0;oc{^+{hiz$7LqSM7(NNPhwBZAM?Mz1)x!6iO~Co0kfrQ!4hnl+NMcT^8rG!c6_gMA9Tv^k@4>W+$g&P2Qe5%_g_ zkC$6pjqd_^ARu@TzZ?l0X|UHYbAc8d@9cPS4wq7ZtD}oFrpSlEM7Z7gT`wjkK7k<( z;_QmE_!rKcRKO5-%#S3?kb2S^{n7Ms&9nepzSPR2ch<YCu&L{*BKj-`!;hDN2;gzZoL97OozW#rb~ z8R?FJXyOlFF!-aXCAb4Rvj}&Uh-Se5H2dDMq7<|)rM(!S2b*oT?$=R!l&{H5*$R6c z9h-1p%wQEhAg&hw$L!1WF`}t7y}>tm@y;^mCMBE<+mH0Q^UONqaSdkSE>FBngpxN> zy!B-JV^OWD>T25}>O178j8b;(@Qale2a|!4)Kr|jkC9P8?APS3y&EVG`rl*#l7+6l z>$daxQmD7XEu--Diotg2$e16eswhWKlr5%du>pc%=PomMnfW7MAH4ImX+hLLe}r;i3QMp6QR6<(7qmuiZc$^ZKk7>9&pb{ z_@jnjJ9y6^hUItTVQV-8D$7J$9V;GHAJy(h3Na6hBPdVvIvP0@CEhs}Qai`^MAp|x z6%VfRrmOEqaxsw)px+mJ$a^oay}$H46SmIy+234GP@}f+^^6)Vh14yMPL?u&`Ddeb zTY(8(iuq}*niapO2-92oBn2`^S;{hf-rXSm~fe_1Kk5bGMLA0DRxF3pro_}Hbd6h}Ba>}i_tuAN!Ky$M{)<*vA zn=->$kwA2i{-!25u_5;VVehSj>Ui39(S^GO*F}I3G`KqicL?ro!QCMc+zIaPmf-I0 z8r(W>}N$#XYg z_R$CCdAC;lHRl9=GD%V5PN;3bbF_c;A=GaYoe=g_)!H%NE|YTjAX$ix#zlipdpb5`dj>}@Sk)fd-jE9pI2}w?x z@|}cAbzZ{CxVJ}KO!t)HlqH+?-8b#a!y-$W#B2<5#VWTNd*54@eI$ z*Awz=a~!YH+Ai}?=y%Y9_HuILdUs$>JF$Vi0z^c_ZyVBR#dhgA)c~Yg^dGSLM96&j zpS3*k>^Sz1KW54|iu%@x94Zp7cHdlym8Kw18?CUS{~*&go&!u8A>`CFfkV z0v%lok~1d?Do}*|#wAW;U(DK?y(h&yvJS14CTjQ_;4tjwRMb|R4wkIM0|Nt#^TF^w zqa!0KttElcx162JEZ^h(`Andk7cxAXT0C|9@FGeM}trR-294Tj!A z*vaeb%PmZfzDon2eu^fU;@}vD-D)^R$_Yg-dctWzM$OyWcBu|7kv~a_PvUp4oqLAo zUzN+BV>H71uCfA{XhHy=t#}qMN$EXm>kbX-;`wI z=nzSDjxQ=57D#jfk&yuXB$V}XKV#R9#qMQm&eRm>SYVf>+@k|gyR#iDeGhbeH z4E*;jd#u||=DFF$oB%kU{8Jv6;@j`F?7K zdunnOnZa(oB*4(L6K4;FoE8ZBUAi}#QC5#9c7&H=dtE3?AI*37cOAg}-|K96sw zgn}?!NGCsCOADJ%dTVm!X`-?o7B;uGsw#@oqmq+1zTUw!-h`Faz5~5wW)*1b7?wr>48kw)@X)z?*-c4eSDW7&~L6|C;FzV)P`Depd+cU z4c@23!4=B@q^;uWHX=uWeCao+^X+uGp`#g~&iwX>BSD^q2_3fKmEa;M=!Qo+u8p170=$P_xKYhaE#BYmI}!k7&Nb8uU+xGFZJCjBON*bRz}th-DZmME zNPdLy{^_T-dT4vERZ?C)ty-m9F}OI2cEj9-s{`%$eEtsJce!YxA%6Ul8oMu(k2bubu=OHz)B9fmMo zDeOf3VozMd#6;rr_Ew@4(tma3pc?2*b%4#<>1t=>JyXHPHuvR>Y?D{ifm_PPaO9iX zH%syB>-&~Q_A1+A+vY2`%bG!t!^XSHa}-NXo#kICK6V-^?z`S_4i584Neiy68S)I| zq@ADtR`lKasNt%`-qE{^tYYMRIyye8>wfX7Se!fMvj5~^BEvE`;d)atQ-q7Pv;WM_ zHoHtO?YZ-D&(1_NrO~J_ZH2e3gI7nz-c!U#Ey@t<^-N%&T?~iAGWr)z3ZMz zQ%Ev(0V21!h<64h<%#9vUs|EjO+`h;$g{B?ot2g5x(yj4Yh@cbdwWx1nFC{2*DBp1 z`9r#5o~)%kdbp8cI>Jvb5uv%a0&W}raE2idTG7;*Mja9^(WZa!J?Hz5ZCmZ7%Gc9& zw&4=Vt$P&3JdMv*nkGimcoxF5126!r)l#dwV}2M#gIo_$|Bb{q6ZZAt@;s zol$v9CfOXEX=p8f=$F8o*V)oUQVqE2lon8cbUOE|iydUpELXAP@yFg=w730M5 zE8bUAQ_~MPbtjnC-GK;N$XLqnHd8MQ0ymQ)22ekXu&NNcUSx#KI8IQG7s~KUxY3Tj z!k!OL@IU8QR-O%9VFtSlJAVVQ0?oY>?2fFOH;V0UDD>2g~(@_^ouP9pUYko z7SquigG-DI+sT&;OsPccC4|AyaX-^W|KWm0daxRjb0N*D7YvAT-+1i3v0e zM_*xeb@k(`9&W|KhzMls-oaQJmMB4eD;YsLh?QW3?E&#nd`I_0K_4RyzNx^_bBs8E z%>LNLGQrQIK?g!Jiin)xzV3LwTed_&B<~RFU7VhtCaAYwzB4v5+77<@BNsX6A_amE z*|8lS93>)Tqw*+zc%g|FyjLb=6<~qGCox`$lSHJUpGMTv(@T21-hU3UQ>VZY(N|HK zGv!)oXu717;RL^JoilI)-EI6&*IDmGv^Kws2W|cL%o4yjyPy1}Q(hfbB=VobhSpmF z#%lo?#hV(cv&Y}2Kae2SupJFYpmn!%adBZBt5CWkR?@o_ke|`t-&_0`WpJCeYV&~j!eb(1qT+P(5b}8gU7Fktw`FAgHt7y@-1wyVI=&15 zGg1JOhT z05@4y(okX3hVEn>#WsR4a8mtfA`CZT{wJ034N+L|OZD0hnL1EXzCn+$(m+H?BS7AqJ_Th&Y>w;{#vOS|(2%@O~rK{pG~&$|EshEA9T z?CXJ&r9qwu(c>La>WsgN0m^Rv{hL|Gd@uXpfH6PG&<3goZ$C#Qc=k%&@Tv^gF!@3Y zgOokC=(9+OZj!FcAt?v$f^@_AUks|?#n#CPlw{6@t}o0DA<^%9?`>DZfz--{4^N9S zmCDNfyXwW}KBju@9Zn@mnH9=mC{9~nL+gEBgH{dk8Hb9NXHZ&bL4vVZ^$M)_J6!>A zaAA^;{pk?!?^*Prt1GLEx-tk*lqq=r>pflplJTECiwXvCd1yy>%B40$56c&!{PKM z$5ng`7RY|HB{x9eBbEIH@YNQ_3l+*Q1|vM^Om(tp9A@W0i!SMECOXg~5Z6Nr9p6n9fjn3m}4P;0Km1^$m&gf0?)v*NxXxPfq z(j}AA-7vYTYMs%GQ2*Ib25d@%ITKWOQ;fwXMXLIPzPQ%kz`zFcvkZJ1zfu1$KtW-R zw8MlqArf^|FekLVmo4{J?{(GIx8b4?yvobT#55J)N8-w>UP_xM?Z%*{?mE%-E8ljJ9SA+v-axod%S^0rd6$ z&K`T!diADJP272sR&7hEysKS(@{vZh`vC)`Y^syaRkZSg8<8hHi(kctLXHyHj%B>6{QK}Rz+eF;Zf=jET8o)I zI_<_uS{YUkEkQi=mmX}&@jmqRE0d9>Rcgc$P6mMv)6=CoaHwIxqcpvl2V5IHAe}ae ztz?fDEi0SxHMa*J0i9jnAePH<&zxL5QYoDJcO6H>S|%x={Pg1|I(+fTt0rmT91Yj# zR(KQxjahe~H~JVq0}z0M1M1zGydF0P7MP#qZb;cp(i@GS+tOBWAQ#n}fVi6Vv&*R< z4=o)>=w1;R%Kb|=-jvCvp1(I^h@hRs?NYAhnFv|}3o!zo>NFPyY4*Ofl%}FJH&@3Bq|fy2 zmm2H&+MkxEbKhsJM}UB|9@le@fWgXYkjqDbxQauJ>3AD$+rcMQJ_P}EVB7HX^SeNK za-$xIV`6bvJpBlR|a6`T$Ayl}AgK0Qx6O0zTYWSw3oNv8%mRY!H^ z8KS%_oFIK6wKL>ef@S=}SYY!u70p^h@+&$JU2xeI8X6|S_oCCkkYnAW>?wYCL;yoC zLPyC3Aw^P@(kXj-0FjT^WcXLOZQCjPyJS3N(+tNl^L3=YMD%xlUjc!H%cm!+DhqKW zq`JcXyY1=G@I|0*nP>jCzf0Tly}_FD=EIXP=pdPt;7w0yQxfo=?&NICP(s4;Av!jG5(~HvJ*&oUQ@AcyMO+4LMjxe`3GQ02`kUl|fpnv_RzseWDY-Ee;*-Eqb^Bu867&Lj1_9#W(IZ4Qt(OQvAI;VYvzK8nP z-h2Z|N&h_Y$Z6rPC7h7+JHeMzPwn&+C|< z#Imc#bUf362nR^;gw9&Z>FbRMS)^|a@Au@EHe?#D>dC>Fk0P~0@t>`Fl$Cz1i)O!nPs_@B&$?fujp;Yw$YK+gsdJJkO+JY3EGMF7rRV2=djaZb zpD8|n9_af_5eW2zHwB?0I}i54?VN6Z$Ud#1OxbKU8bD3x>28l9_IGE{2u9-|mXd!L zdm?(i^(GH~_G)YvfCu@Z;ZRa8VsD)bu=%VsN+e*-Lco(T7lEYx+7KmaDPtjp1Un}c zg+S=Aqun$Nv{uw~G^H!mKHhz_RjqO4^N@#0J9>Y5Vw=>5n*8yFS^Ao_?SMXteuQnf z-o8E<`0M5mqt{M?U7%zrqWOJTxdDZ?S(>(b1gpDF`1#7!7J0xqzHm%u zy?qRh!FwfxozsK%L#1#@XI;tak0f-xyx1|G0}(?AZEPNv0NNB^ng@UDq_84eBsRiE zK_f>_1_Vb&M$*Hf5t*-48;JB=$tNWlgU7|t>2RNf2a(C{z>~H(@H#kzge@E0kJlom zqsg0q{>sru`|SzSE#t#ATdZ1gXKSST_pUWC*+glq$Z4b_yIS(clOFPPZ@5 zof!DsL$)$bh+V=mpZjnlQW@=qWekP4;FS{SXVstbi*A4!PX=lZDY8?jTw=E6>3#-d(KAFvv z-(?hvR-5$I7|E32_XoweMtGSSV+w!z3BsQtxQrwt`<0=P(k~zmD7|QGZCYB|GC&`3 zn1POt4v2Z|hxP=c;Yt;8QYHO1Lh=`VOV!HvM&fjfnS{@gxSWgsER&4R1+f1+v$L}g zARr(D@=;y^`iIUSfMFuZBbfYTpWk0q~>;GJ_l(1$k{H{N}{S{6FUU{{#lLp zmuk0#7kcP>^`@}>dD%S&A4m4sdbNSEZ@(}HzwNLD@^ zQW-RRf%b4a)hRF2{SpN8tuNeL>&KmKSOV`(s;cumxiXUv50CpYgqhNiAO+odRRXfe z`vc&0a>Z(mUjba9M(MHQ_6X!y?P*y%a6YurGG3jsP@ z^A^0S-(~?#yyaiyzkCi9^5BD*55JX%MKF?TM)(PGl2S-$9-T{kFbva^8R42B(VAf@hm!PYYIDU{}N=m&4to=LTFeMeLIG z*AmCl66S)c&&nr@d>Mz#CfdEzc8+}|)2@;X+A@!r<+_?EK@r&}+xhmspHsbtLw;d_ zZ5bGn?kMpWp%VR*9(*WpA_)a_rDbJRAR%XBcLEPIp@cwOPNS1vamd$h$EIo)*wOre{4q`CcuQ?>bwr@9Wc>%edA{{( zY|Ps>Wdygeqz^A*Z`t-P#F4cwH%R{0@7@c|1Ar_dp@O_pYeM-#AxwYn!{ zeVk8`zR4D{TsQz~x?du42=QBrlC^_(WagD}Q&p6(D5&+6?*-!$YaQ(vM z#3Z0a77fP2-aQ1966c0jA#Agpr%?|9?9$SiYh09o^P*9Y97_!3hbX7caSCvX9Z@YQ zB>W~YvJs%X1?wf&gS)eDCH{59h>IArf1gFz&rt_rei{&h5UYW_4~x;EU+;+P>9tl* zzT@#fj{{A1sbA_JV$JmBzsADC`XGBJ2@cHmSicEmT?2epR-9^p( z^iCXP!YTa2>{vsB?JtZZ6;*Z-i9bNTL-?Iipk53o$JO2j(kQ_;B|UZZkMr3Xs8;Dh zC^NCYdVZwzO4>Q2x36N?t_0wF!=Vv(|9Fr%yDx>myLAXl9&uF-^G$;BLtTqq>zSPC z`98!8RD-jDrYPP;m$FwzQqobTVzjgn|SHUBSLhJkO`g zJ8d613n;ZHfeXw>C3|nwd}6{@t3i}cW`tc8HL%8TJ&X#1o2~T;zqz^T z7YRmHNlZ+96K`kc$il#V2|9Ohr1Ano`_W5qf3$tEWZF~?qM+=DhJ}7`4`XC>8O?;m zfm9vPuR%vgjIi#xd8mM{#Pb)l13^R1LlT2&fA;%-tj3!~C(F=_D&gDqQ*`4}bi-r& zGcF1*2oh0tspa~i*bsysXzt<-fv012{PiS|bajecd{#-5VoQJNp4AQYi!jhaaF)~6 zl~lD+by4=7LFDR7e=&5Px`$sEhsX|aH5+|;2?+_g?o9&Ye)zyk!$>-rHaoqB4h!o4 zyzloZHql9~<})2Ag7lnMirdCXP@z-wt^Mu#M?gTZxTvUmPM0L*p)3_;51?lM z4LKik-GKjPQxF3S9y+Rq@l(e~Pzj`o3+TEheHBJn%*;)T@q_TMjD1Er$&2{&h?;Bs zAQ5$YVn_r75DTEPHka0ENmc}w&Mj|!Q2;sylAN8Lt#%l~+p*wl3~%leFP)PiH@-8b zADr(Uvd_+pT^l}nY0PF9D~4W%E&;tts+Gg2u+b;4wyEf5}8r z2K!&H!XQUT+Gww%>JfE5G$%la9QWF9bD0V43KH=YVj}=zqu|)zE~$aJ9P*n1F1|)0@nI z^?Fg-QAfw{!M?n|R;HcsS{EWi6Y7dLF|n)^Ef8$S4P9@ShZYL*;-gweSc)B-VAL6) zwM(`8M`V}}J;R7DwuYCX2HoqYn45$F?!ZB3Q#wo&sgO+y436V22+F5kpdxCWZPKk z`(0JLLU9SmS-*wMMF)l2UFbi^Ya_6c$D&XT%G=#heKqqttYmlO^VYPuDcqy1cu=n) zASkb_T%%2@u7p4`HHN>;h~SAM)VCvxeA2^|`#}wQ`fQH-Bho-PpHajM4TFGkUbq?n zVU=}~b8`L#TvAeEB944v_fu%6xs8Q=(z%T>M;xvGS4T&d553GTZj`CJK4x?VDwHzF zEG>==@Np^0G1;L+tbe6}j+dc4ESSocaZe4xi87Z+KED$B)NVC=!+2kC*BK^(xx z2-q_Hk9Brn$qC{D8G=}Wy@vno`7|I%(0^5(|8IZzUk>B|>oMg2Wyk;F>i^sO{~zA& z|8e^Nm+${?{eQRr%#UW9$vanN>aO>{?;9X=DKSYg5YU4Am&xzTAQ2EW6cjWRG#oTE z90D8+90C#oFd?BL|1+Ut{Ko?MKNtVn_@BT3xd;R_EG#lSG7d5_4i+jZD%L+=s966x z4dZ|5BAp-%c+emO2nvD>1c?Cwg#q#23j%{c5HP^M{U3iA*oK6HhJl5HM?gdZeo%)F zf`ovAf`kSJ7=VTbj(P*fLC_d5A3ib(!D1>Jz>(QwG5g2nz>^EtbYUw^T~M$XI{ZLD z#KFbGC-_A9nTnc*m5rT)lZ#vAtEiZ`grt=6Hx*Sibq!4;V-r&|K)A=z$=Su#&D|p) z@MlnPNN8AG{I7(>q~w&;+`RmP!lL4m(%*k->*^aCo0_|Odi(kZ28V{HXJ+T-7yd3T zZEkJv?C$L!93EX>UEkc^-9J1&{bScZcK&<%S62K_c3}W^K|=qNFaOvD0qOdW;TX^` zADLi32r0rD*kh70`@>@i$L7>@A&|2uU0@qJOd;Y>ux@_3{KvHauh>n;^O>lm_GVXSfJWprePqIPt^I@AO-VWzkekakX+JXGP8~{ z)nd~UcBRbn*;pL<(KudWwiqjI1%I&qD9_~BI-Y9p_t}P- z^>T>I)_m9K2L?@a;K{O;x&&jpwOi5sJ8@21m)bF2G4o5qI@+zR z(FXiFE?2xu``z!LCF3RCZi;#h=o~vcMh7kO^jAKs`Bs#TXQnMHS>Y~dT0|VXj=rl+ zkL!MUl6}51BheZ99au4_OxnVW6=~RV9DZB_>@ySIv-~gXv@Q)LdxoXD43p=5SikC? zx%t0RdnhT&z>LvjIb}n}W7Vl1y)E^*u1drfl~pS~rYpdt(vAe5B3+!U)kWW>drsBk z?3-@biJb*!zVaPU(^Z|;;o)peizedYt0}>g&tfR$r>L65Q03t`29oH)34~QG=z4;}R)6@M?X)02pC$+K%58s;NzkP%oTA@ew;G{jLg@e%Ksfm9DVLEYb?-$L*1p>Y49bc{N>j~AH+#x%yn_< zI8%|Ul77gg1Qt@hd1 z)SKrFmL7-R8QytA!)jYDQna>cp?E*ONUuZREl)y)?{vhbN}SY#U~M1uW8HVqh3{!I zWjx{^_BD-dz7Ypsy0AxXuJ}BPBi(5i>AI&53Qx{b+PJCp8@>&q={aeh!OCqk{1=|E zy42@ENl6{cEaly$`mHI+RGLnzJl6kw{Q=MPd>D(yQf8e=ey>SOf&!ZI#IDA;CE}Hf zbQyu{X^D51?dJk_+&+N_oHe|9PkQ>mr1Q=J(a&qut*)1H#|ojRtUbHJZY%uPo}Q+y zBv%aV$EQiMO`RK)MeV=fDv*pz}Hlk92`kA{5i!;7ACvl zMCnhSh`VGnIiA5y1N2=L%g28lp5c3qc=y}P+|?g7YF5;S9UID4&-c6yeGU&^3vHC=qM>XMR7 zu8#M-V83+KCCrcL=Z4X)aSDe~Wy7$}7ZHeMqm521Cn;F?P_nf|$I(g%U%&3Iz6@32 zKUi&yiS$;{%_qYL(h_a>FQlury{)_sgQ`caj4nY03$I!2#67td z_Z$(>V~lVpgLp)0Bc_dg!G%i?X}|TdRy<~@o2;g+9P1x&H#`ZcL~pmsrvvIlK!Q*+ z{2f_so@?3N{S0+LZ1Sqp!}s>5SKWp97V4_zu~74)%kZ0?f!{#bQ{2+2aWF~*SnqnR zgRXbnXIi18~`&O8{iN{S>yfe&;v$X*MdOXz|lP(vQ=@kMf`m zl2)gFd6P=0Ez~@Q;ImJ*Xk&X{AFuUA5~KMfh-cr7s{6iO;FK7dq=m;6+u#ewuls>0 z?vK37rh1I5HnUgPN~d%fUd9N$l|IasWr?dlJRP|uO6Cemz(J8e&j0dZO{n&Yh*q!) z{@oTN(W#B0W|T_FNo+AQQ3IZMAdgbl^u~@__0q9@2ho$8yjqH1CMG}zr3$CqLcfFP z7O8PY7i!;4s_B83x>pqU zGUh6&vQJ&0(=so4wOU{BHCnOw=*>{8S%LWYl@E|NnnSG*v1WiO@YwBE>)M{a(B7X< zzZj3TojFrm9=^Bh?K`^Zf1E!#W~&OlpDxj|tNAR)y^w09xw@AvEqC&G%X%vG1h6SR z?p}hJiZ|4P)ri$FE{E!-NZROl4Sv_)zQ^NPRXd($(Ea#9t%O)s zk*R@&i^9$$c7cDcu3*W18d}kRW!@xEX_a{ZL?>@>4)~jy7p6@O$lSrf%7IJ=@!dh} zpBn0}ilSqf@(lGMV^(%m?i-04&+`Yg`n4}#wC&I?qA%I{+_)FyE?NlF@~?}) zj@5cT?qe2i4cn~EunG1hnv1pV!Z=q8d!_@~+fh5$eV*>J+I+YZN|IxTcx8usPkMV^ zmF&(mo;AAXYAd%VVKGiskvCaOj=d!0f=~mt3p zq)c4XUl7Xg_iboV=cLXjKx%*Z9aP623m3^I?Mb)*2SCs#V#> z$D(%-vUemRQ8hp$&Zx_fvqf-gzMQI;v~~Zy+ai!8^&~BInb~p)mWkrSk8CyCiJhxH z`Fj|9|LvY@qRwmKa-m1FmV`P|5T z`V*QF;?cN^BwOXkw^#fOq-(anH@0YAbXv5s*V>#d`pha(lb+9Uo|(5L96jOY?;v-} zbxzU*eZ(4~{lEKd&Wci+jLL0#VWKJ!A!A-y4bB{%8QP~r9~e!KD7O|%+xxFh(a1)qebr+BLgNv*9=31Fb4&&+S|W6TIaEx92hc8tq?UZ49OOOPU)0ZxK}VY}iR;PNQSK-KD1X5qOAn^an$9X(Oiks)W)FNxLK3Uj?J*J7JOM^Lf#REzX}zT7rqTt= z0I-f(g}Mji}1yGzMlbgsbPX@{fj`$qWtXj z4fZKBb1sgJpIRUHei&TXi-osO5feg${XL=bF0{9OR)4!Kcje)fh51?*`P|6C^~8*F z`7|%z-A0gU=ePuTTc_xb&a!kE_S+8u#No-$(H|XH4t0Vqz8Q94TcvsPs6S~86&a24 zGrGYF5V_fCsn2>>3aoW|6N}lugP`!0(_JQ{uBt%VeDzsKAXSMsHDY-3AMpGMHxW_K zsT@QYUH3Ot@Rykh41ui@Hoz$#RwY|d$!EoIHf44Fk|X>DZ5h`Nc`yA z3=h}#JwKJpovpF?EYi&VTB^nP!0C zPhPjxH_LL^n~bk74WF;3&nRaGAzgGWr%ZE)FTe3tvDL>awKuCb3A8;J4b8xtWtj>Bbs`BZ@is9;65 z&fTmszn)cy$a+#Ow#0Ytp!z7V96roA(+eMKHeP`iZHiokxNPOb7-{+{<54=sdmPnd ztij=xhu;@WEpt{nJ&CP)T`6VdY-v{Il<+3>?$e&s#P4{8Yl{2VI1e@9!^$LEhOA5Q z^#|g3zR8s(hJUS<#IEnfF|dxNAUL==o;Q1JVjHg(eME)Ayqc@{vL`weYuCBqO^eWz zra1D=W%BoReAl5$m5BED+Pd*WRL%o9M-BG--x6KQah|SKdJpa!YIt*Oq(Z#?!80{% z2PThRmn^%|V|QWK-V^L?=2MYtuNYGgP~B4ps=~sJ37vR1;4Q0K-CuJ$c~Ax19ritw zk?>UFUpsK;p8jmnd~>GQc?t)fxmn|X9yvIU?J>z(U!)_BVY|tt;m+ruoUc|J0uXDk zX^te)X4h5CK8#vz6aLO_+t2I9F>lgYhkBXqNUc|!<6XaurF5*+Wn(UsV&0h+N zC5hjn9rT-{@l|(;JTQ*WXct)HdFuylU@1U0163YZ=O}ucu&Ca&)3wqi6cGp^tEY#0 zaa=7|?HL}Kr&dX}*1rQQ9CRrrt-VwVr3-Z&TaEa7P*s8(c^B*(xUeVImfC9HEMI%N zUaYu7`%1*c>ShLa0}k9kQQNX9H#!pUp!|Nus>OvrXuf(LHMyZT6+Q0#4rm@X>jV$X z;18PTGM`So`lyc3a&F;rz>)5BxHCd_OQ!jmvM1irVkD)W0XjE(rDavm?k?W%pq@vP zNUl}&8$t#GNg^MWDb$SLc2=hAy*LDZs;X2Yf1jQSu1e5%?4;(7DRGV?b~20BekVZR z(a-3x@{ye@&XIV}$5qA85Ph(G(QFOJe-`Y5igT-CeO9JgZ9%5~W66vSksf=yReeX7 zW$a;jq&S>2*98|FWm%Y4)?u-*DWcu*1KKI+V-;n&G@_S zL&8_Bt}jgKq(ipZH|0njIF`XXb@l4w%miYe!G3RrnWbsu)7TPRj)zrsfnoj#v24Cl2o3iLOeIN4IWj3f@&%o*taMNqyrEPNL9cWvrCvdUE< zs@25y>A4HRJ$q$R#!ScAUiz~$x7D@eIDw7V8rv@qwf1MnTe8O8f3*?QUs$^m0Zu@w zG=6CEs_|I5wx*LPwNjz_zB#6$4p63Wy{m+_%@;s?gd%h;w|)m>jVPwCwaBm z1{Gej6mVAOCbe zWeQFx>W*!;8SO5nzE}|pb*u4@OQ(?3*>W1M$V*jud)iEk+w_`>L{DZNs@r;vnC`J$ zTW?kGdImMurK;(L@flJHlTOjJArQB(JnTGYzLR zXX$cB8+BFg{*vloQ;fq2*o%%m)Oem<-Ogi?d2CQl`gURb4l-HTrd;QgP5^%dpBkNI zY0tHI3$Go1O+3TLGe&pRJucSLw5+bH+p!$%fl-Hqf3fO&k-Xsdq$YUo{*&hVnP1v# zDoY4Xo+?dbUb+Wd*A>q(hb?J`-p-OaC;%IjBtOqI>9ka;?-ed*u^gvBr0m2~uQP z8I-){!A$q2)pFC#H+q`a%bdJFAo&SSWC{*Q(Z)2WPlHJ-qHbemArz;G00C_T9=~c+*H1MR)_bL=O=Aa-Wun zIkUO^co~#+nmzgQB5F`%qA7cYwkhY!GO0q((TA&9u_XjrByk`3d}%Y6gx2$__zRn9 zBeNiS4@C5qa4dl8B#+`|wm&=V8457iWJ&~-+>0Y=Jau%=)`e;06Lc4@c-}$5nTRd( zcVl*iJO*>ozB#vS=ktj*i^4I&?EQHl#A`6bi|NHXD6}r+g$0?x#ML&MnxgYVgfA*L z#sD1GiPap|4&p00U6*oC_r-nM+?ewfKQ6we%I9;7MHi9c+^{F837`+m@82`By*64O zaMOzy;fv8H3#d~X-a*2th1drUk=x355ME*9I4xI~tj5W3M7qxW!Aob*+O}w`r&f%T zdU9C_9%(>;Zt&)q9vvPDXO-S-o)3E6Hb;1^`PEU!p+sIB+)M3%1Kirn@tze=S~w0G z8gE3vAs}J)SZVa*&#vdqHUBX}h>B6sn0uCpMRQRKo){Nw-5DwF4|XNg0Tf-WTr0wD zRpn*2MT?~Yq12bR3S79HRh!})Ezenl2|VH>+uFR#r6#H~-oHa4L8VD+RMBE}EZWYB z>U|A``?Lk#QR7?lTupt-ad4qN%BlNa3|oEkvyC=PGad8I81@sR%!Q#9--iI2pK5_+ zY9Iqluiy^Ga1c0lt97IoNNDOUklx5M{e)`(BFoXY{TsGZNQvD?aj6o=0)#Y&^e;>U z*AvB+scdG_8}ZR`%X@Osj=QhoclMXC>C3e`3d}AV4g!gy1`Ry|VJ;~30yHW_kVL-P zYUK|zTiXvfr#EFS)Hb%i`Nzqhrb$$=W zM&D_rKK0cOzJvTwEdViBwnxELZGolVT4D%5hQA^F*8ToSxxP^qQiXcF{A2Of&|CoV z7KQta*2Qg>1?E8gEg78QZCoFYOJuK*M$6bOiH@u5YLr@+p>oxbW0@|G-TYuUUtja+ zF!Gl;-T6*2v;B5L_XY7%td7b2i$S?%FF}=`J{6DdNzTB@O+MX#? zfwiZ|>5C*JV{zX!;)j5&%F>;?eWO82b34m3FI2d!CN05-1}kcFrZZO%@;$MX{&W>x zwVrbo;3_wZo9k58@ea!AKuIUK=?Ghgq?|Ff*6J}guBZ6Z+4|e8IqLX`J6c4S8Y6La zI7Ubpo|ou;@Ki5l+s+1c`uRD_UIc@n^zykm<1VXAB8nqD>>%yLBXw&ND%#@;a4E*g zv<|^HmGuLPf_W%<^r`_-Wf$B9yE*gAi(LlS7DvT@`_}@%ieu7uuNKC^BT>we(Jb`$ z9%kUR^Fwuoqa##^GRZRD9SVB?OsyxxtvTDOk}TRImvFaOh;gk+mENY6mS!}m?d@5k zTJ3#Ap8FEq-uY~B>K`@61opA;5gx6y0*eiCeP#+8e%(&9O3Nv#wr^DY8OKQ^R1Gou z_4c!h458$-UHcX0k6GSOi!8-)M{Ho~$4G^y*{}F3Jq3=CcRc55K18l?&?@-3jaCu0 zDbW#_6Ktu`gLBF{a(=6PJwzOu6OGc#p%9_%qSm$ri15>TvjP;+fD-@RXHYu+D@)?@oZOYrDP!q2}ScoFB-7!{9lU!=UsKd6~S zDC>vnM~LHf`}@HaNb1#ZRF|R13OUWSpPo%bmMM;{0wq`1KSWXVpP1;s<~H*&EJHs` zR;6hLD5(gwq=)m3%J8jz&k;d-XV`s@=!EEJ=_7A3wD~rPX?-<5OQzC_PtFf7ksp=5 zt!|x61oLWKTx(w>bcH?Pz@v@OKn|{7d|4M}(SSc~nA`^c^ggt=f*Hmu5_KYv=|l&@ zIr5lZsFQ4k7UkC#OmF)%^3O&74~Fd=xN##M9*=wzc{!<0sgHTv8A`-*^fT(?o!dNa z0^`+AS)l}NkyCZ8+S`qIY&Skl7Yw>H9Bj=Mqu%w-1JAACeO-YqhF}iWxTMt8?O)(6 zC4r*bDwxSTpHp=YmZc~%Y<6F=?S~_T90bZ8I-Uq$?jb$Ar4*U}Ygu1gSG?FB&U|{J zq~V1=*W%mESU%^f zmfEb}R+`@Y=GB>GhLuM9?1JA}T^HH#A@Ah+9eJ_7z46Dy3S6YVB}!GT&P{Ny`}t?} z9D6aH?X}Z=!*)*rR_|ZGAD8db^44#TlKl|2!^n3Y)5@fsU%uL0U;9J(fyy=DxZj3P z$Jpc?x71d?{u#cM$JA`C#HpgU+4_4P&#jA%4vgEL^SC6I@$1>?a*7G3erPhBWB+~M z-|Nd=t-E(89rtN?E5p#;__DF5wpRPHiGH);;jLROH@S!QB>!iSv%j=g-TOkxUnxb= zIbO|I`24SYHGL6qVpUlA%6INR{gw8m%Wr;ff8arl@rOs@x9wJWt&i6z{m;-S|6#pv z(=F?aBY_MnEEqy&9M!FTCd};5wU%|?`_*=NYb!&`r{BHEAOW0txny|=IP=1UjHfRJ zj!mT@i7G8aC_ZW;y?xmmhvUk!HqxMqTB})f4~Ne%L8?JWQ2q zZ1^`NFy`~&pel=_f4Y7h`MrP7TsxkM*us`6jkoK8a|T=9)=5+(UH=ywdVck!dY{K% z7Ij^ckkSs7_R=T!4(fPm<&@}>H X%YbSdU7+8f*_QGDO^n4wG!_5=9jp(} literal 0 HcmV?d00001 diff --git a/public/imgsusuarios/asdf.png b/public/imgsusuarios/asdf.png new file mode 100644 index 0000000000000000000000000000000000000000..a3b931f79fbed8994472d361ae7b78aa5e094509 GIT binary patch literal 24889 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�N6)s)5PNI1CPX4ieRCP;?uk7;QC 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 literal 0 HcmV?d00001 diff --git a/public/imgsusuarios/usuario1.jpg b/public/imgsusuarios/usuario1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7924eea8425fa2bb18a01941e533d0c01a1bdd70 GIT binary patch literal 39924 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 0) { - return [el, this.settings.patterns[pattern], required]; - } else if (pattern.length > 0) { - return [el, new RegExp(pattern), required]; - } - - if (this.settings.patterns.hasOwnProperty(type)) { - return [el, this.settings.patterns[type], required]; - } - - pattern = /.*/; - - return [el, pattern, required]; - }, - - // TODO: Break this up into smaller methods, getting hard to read. - check_validation_and_apply_styles : function (el_patterns) { - var i = el_patterns.length, - validations = [], - form = this.S(el_patterns[0][0]).closest('[data-' + this.attr_name(true) + ']'), - settings = form.data(this.attr_name(true) + '-init') || {}; - while (i--) { - var el = el_patterns[i][0], - required = el_patterns[i][2], - value = el.value.trim(), - direct_parent = this.S(el).parent(), - validator = el.getAttribute(this.add_namespace('data-abide-validator')), - is_radio = el.type === 'radio', - is_checkbox = el.type === 'checkbox', - label = this.S('label[for="' + el.getAttribute('id') + '"]'), - valid_length = (required) ? (el.value.length > 0) : true, - el_validations = []; - - var parent, valid; - - // support old way to do equalTo validations - if (el.getAttribute(this.add_namespace('data-equalto'))) { validator = 'equalTo' } - - if (!direct_parent.is('label')) { - parent = direct_parent; - } else { - parent = direct_parent.parent(); - } - - if (is_radio && required) { - el_validations.push(this.valid_radio(el, required)); - } else if (is_checkbox && required) { - el_validations.push(this.valid_checkbox(el, required)); - - } else if (validator) { - // Validate using each of the specified (space-delimited) validators. - var validators = validator.split(' '); - var last_valid = true, all_valid = true; - for (var iv = 0; iv < validators.length; iv++) { - valid = this.settings.validators[validators[iv]].apply(this, [el, required, parent]) - el_validations.push(valid); - all_valid = valid && last_valid; - last_valid = valid; - } - if (all_valid) { - this.S(el).removeAttr(this.invalid_attr); - parent.removeClass('error'); - if (label.length > 0 && this.settings.error_labels) { - label.removeClass(this.settings.error_class).removeAttr('role'); - } - $(el).triggerHandler('valid'); - } else { - this.S(el).attr(this.invalid_attr, ''); - parent.addClass('error'); - if (label.length > 0 && this.settings.error_labels) { - label.addClass(this.settings.error_class).attr('role', 'alert'); - } - $(el).triggerHandler('invalid'); - } - } else { - - if (el_patterns[i][1].test(value) && valid_length || - !required && el.value.length < 1 || $(el).attr('disabled')) { - el_validations.push(true); - } else { - el_validations.push(false); - } - - el_validations = [el_validations.every(function (valid) {return valid;})]; - if (el_validations[0]) { - this.S(el).removeAttr(this.invalid_attr); - el.setAttribute('aria-invalid', 'false'); - el.removeAttribute('aria-describedby'); - parent.removeClass(this.settings.error_class); - if (label.length > 0 && this.settings.error_labels) { - label.removeClass(this.settings.error_class).removeAttr('role'); - } - $(el).triggerHandler('valid'); - } else { - this.S(el).attr(this.invalid_attr, ''); - el.setAttribute('aria-invalid', 'true'); - - // Try to find the error associated with the input - var errorElem = parent.find('small.' + this.settings.error_class, 'span.' + this.settings.error_class); - var errorID = errorElem.length > 0 ? errorElem[0].id : ''; - if (errorID.length > 0) { - el.setAttribute('aria-describedby', errorID); - } - - // el.setAttribute('aria-describedby', $(el).find('.error')[0].id); - parent.addClass(this.settings.error_class); - if (label.length > 0 && this.settings.error_labels) { - label.addClass(this.settings.error_class).attr('role', 'alert'); - } - $(el).triggerHandler('invalid'); - } - } - validations = validations.concat(el_validations); - } - return validations; - }, - - valid_checkbox : function (el, required) { - var el = this.S(el), - valid = (el.is(':checked') || !required || el.get(0).getAttribute('disabled')); - - if (valid) { - el.removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class); - $(el).triggerHandler('valid'); - } else { - el.attr(this.invalid_attr, '').parent().addClass(this.settings.error_class); - $(el).triggerHandler('invalid'); - } - - return valid; - }, - - valid_radio : function (el, required) { - var name = el.getAttribute('name'), - group = this.S(el).closest('[data-' + this.attr_name(true) + ']').find("[name='" + name + "']"), - count = group.length, - valid = false, - disabled = false; - - // Has to count up to make sure the focus gets applied to the top error - for (var i=0; i < count; i++) { - if( group[i].getAttribute('disabled') ){ - disabled=true; - valid=true; - } else { - if (group[i].checked){ - valid = true; - } else { - if( disabled ){ - valid = false; - } - } - } - } - - // Has to count up to make sure the focus gets applied to the top error - for (var i = 0; i < count; i++) { - if (valid) { - this.S(group[i]).removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class); - $(group[i]).triggerHandler('valid'); - } else { - this.S(group[i]).attr(this.invalid_attr, '').parent().addClass(this.settings.error_class); - $(group[i]).triggerHandler('invalid'); - } - } - - return valid; - }, - - valid_equal : function (el, required, parent) { - var from = document.getElementById(el.getAttribute(this.add_namespace('data-equalto'))).value, - to = el.value, - valid = (from === to); - - if (valid) { - this.S(el).removeAttr(this.invalid_attr); - parent.removeClass(this.settings.error_class); - if (label.length > 0 && settings.error_labels) { - label.removeClass(this.settings.error_class); - } - } else { - this.S(el).attr(this.invalid_attr, ''); - parent.addClass(this.settings.error_class); - if (label.length > 0 && settings.error_labels) { - label.addClass(this.settings.error_class); - } - } - - return valid; - }, - - valid_oneof : function (el, required, parent, doNotValidateOthers) { - var el = this.S(el), - others = this.S('[' + this.add_namespace('data-oneof') + ']'), - valid = others.filter(':checked').length > 0; - - if (valid) { - el.removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class); - } else { - el.attr(this.invalid_attr, '').parent().addClass(this.settings.error_class); - } - - if (!doNotValidateOthers) { - var _this = this; - others.each(function () { - _this.valid_oneof.call(_this, this, null, null, true); - }); - } - - return valid; - }, - - reflow : function(scope, options) { - var self = this, - form = self.S('[' + this.attr_name() + ']').attr('novalidate', 'novalidate'); - self.S(form).each(function (idx, el) { - self.events(el); - }); - } - }; -}(jQuery, window, window.document)); diff --git a/public/js/foundation/foundation.accordion.js b/public/js/foundation/foundation.accordion.js deleted file mode 100644 index 898ae85..0000000 --- a/public/js/foundation/foundation.accordion.js +++ /dev/null @@ -1,88 +0,0 @@ -;(function ($, window, document, undefined) { - 'use strict'; - - Foundation.libs.accordion = { - name : 'accordion', - - version : '5.5.2', - - settings : { - content_class : 'content', - active_class : 'active', - multi_expand : false, - toggleable : true, - callback : function () {} - }, - - init : function (scope, method, options) { - this.bindings(method, options); - }, - - events : function (instance) { - var self = this; - var S = this.S; - self.create(this.S(instance)); - - S(this.scope) - .off('.fndtn.accordion') - .on('click.fndtn.accordion', '[' + this.attr_name() + '] > dd > a, [' + this.attr_name() + '] > li > a', function (e) { - var accordion = S(this).closest('[' + self.attr_name() + ']'), - groupSelector = self.attr_name() + '=' + accordion.attr(self.attr_name()), - settings = accordion.data(self.attr_name(true) + '-init') || self.settings, - target = S('#' + this.href.split('#')[1]), - aunts = $('> dd, > li', accordion), - siblings = aunts.children('.' + settings.content_class), - active_content = siblings.filter('.' + settings.active_class); - - e.preventDefault(); - - if (accordion.attr(self.attr_name())) { - siblings = siblings.add('[' + groupSelector + '] dd > ' + '.' + settings.content_class + ', [' + groupSelector + '] li > ' + '.' + settings.content_class); - aunts = aunts.add('[' + groupSelector + '] dd, [' + groupSelector + '] li'); - } - - if (settings.toggleable && target.is(active_content)) { - target.parent('dd, li').toggleClass(settings.active_class, false); - target.toggleClass(settings.active_class, false); - S(this).attr('aria-expanded', function(i, attr){ - return attr === 'true' ? 'false' : 'true'; - }); - settings.callback(target); - target.triggerHandler('toggled', [accordion]); - accordion.triggerHandler('toggled', [target]); - return; - } - - if (!settings.multi_expand) { - siblings.removeClass(settings.active_class); - aunts.removeClass(settings.active_class); - aunts.children('a').attr('aria-expanded','false'); - } - - target.addClass(settings.active_class).parent().addClass(settings.active_class); - settings.callback(target); - target.triggerHandler('toggled', [accordion]); - accordion.triggerHandler('toggled', [target]); - S(this).attr('aria-expanded','true'); - }); - }, - - create: function($instance) { - var self = this, - accordion = $instance, - aunts = $('> .accordion-navigation', accordion), - settings = accordion.data(self.attr_name(true) + '-init') || self.settings; - - aunts.children('a').attr('aria-expanded','false'); - aunts.has('.' + settings.content_class + '.' + settings.active_class).children('a').attr('aria-expanded','true'); - - if (settings.multi_expand) { - $instance.attr('aria-multiselectable','true'); - } - }, - - off : function () {}, - - reflow : function () {} - }; -}(jQuery, window, window.document)); diff --git a/public/js/foundation/foundation.alert.js b/public/js/foundation/foundation.alert.js deleted file mode 100644 index c37f950..0000000 --- a/public/js/foundation/foundation.alert.js +++ /dev/null @@ -1,43 +0,0 @@ -;(function ($, window, document, undefined) { - 'use strict'; - - Foundation.libs.alert = { - name : 'alert', - - version : '5.5.2', - - settings : { - callback : function () {} - }, - - init : function (scope, method, options) { - this.bindings(method, options); - }, - - events : function () { - var self = this, - S = this.S; - - $(this.scope).off('.alert').on('click.fndtn.alert', '[' + this.attr_name() + '] .close', function (e) { - var alertBox = S(this).closest('[' + self.attr_name() + ']'), - settings = alertBox.data(self.attr_name(true) + '-init') || self.settings; - - e.preventDefault(); - if (Modernizr.csstransitions) { - alertBox.addClass('alert-close'); - alertBox.on('transitionend webkitTransitionEnd oTransitionEnd', function (e) { - S(this).trigger('close.fndtn.alert').remove(); - settings.callback(); - }); - } else { - alertBox.fadeOut(300, function () { - S(this).trigger('close.fndtn.alert').remove(); - settings.callback(); - }); - } - }); - }, - - reflow : function () {} - }; -}(jQuery, window, window.document)); diff --git a/public/js/foundation/foundation.clearing.js b/public/js/foundation/foundation.clearing.js deleted file mode 100644 index 78fe364..0000000 --- a/public/js/foundation/foundation.clearing.js +++ /dev/null @@ -1,586 +0,0 @@ -;(function ($, window, document, undefined) { - 'use strict'; - - Foundation.libs.clearing = { - name : 'clearing', - - version : '5.5.2', - - settings : { - templates : { - viewing : '×' + - '

' + - '' + - '' - }, - - // comma delimited list of selectors that, on click, will close clearing, - // add 'div.clearing-blackout, div.visible-img' to close on background click - close_selectors : '.clearing-close, div.clearing-blackout', - - // Default to the entire li element. - open_selectors : '', - - // Image will be skipped in carousel. - skip_selector : '', - - touch_label : '', - - // event initializers and locks - init : false, - locked : false - }, - - init : function (scope, method, options) { - var self = this; - Foundation.inherit(this, 'throttle image_loaded'); - - this.bindings(method, options); - - if (self.S(this.scope).is('[' + this.attr_name() + ']')) { - this.assemble(self.S('li', this.scope)); - } else { - self.S('[' + this.attr_name() + ']', this.scope).each(function () { - self.assemble(self.S('li', this)); - }); - } - }, - - events : function (scope) { - var self = this, - S = self.S, - $scroll_container = $('.scroll-container'); - - if ($scroll_container.length > 0) { - this.scope = $scroll_container; - } - - S(this.scope) - .off('.clearing') - .on('click.fndtn.clearing', 'ul[' + this.attr_name() + '] li ' + this.settings.open_selectors, - function (e, current, target) { - var current = current || S(this), - target = target || current, - next = current.next('li'), - settings = current.closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init'), - image = S(e.target); - - e.preventDefault(); - - if (!settings) { - self.init(); - settings = current.closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init'); - } - - // if clearing is open and the current image is - // clicked, go to the next image in sequence - if (target.hasClass('visible') && - current[0] === target[0] && - next.length > 0 && self.is_open(current)) { - target = next; - image = S('img', target); - } - - // set current and target to the clicked li if not otherwise defined. - self.open(image, current, target); - self.update_paddles(target); - }) - - .on('click.fndtn.clearing', '.clearing-main-next', - function (e) { self.nav(e, 'next') }) - .on('click.fndtn.clearing', '.clearing-main-prev', - function (e) { self.nav(e, 'prev') }) - .on('click.fndtn.clearing', this.settings.close_selectors, - function (e) { Foundation.libs.clearing.close(e, this) }); - - $(document).on('keydown.fndtn.clearing', - function (e) { self.keydown(e) }); - - S(window).off('.clearing').on('resize.fndtn.clearing', - function () { self.resize() }); - - this.swipe_events(scope); - }, - - swipe_events : function (scope) { - var self = this, - S = self.S; - - S(this.scope) - .on('touchstart.fndtn.clearing', '.visible-img', function (e) { - if (!e.touches) { e = e.originalEvent; } - var data = { - start_page_x : e.touches[0].pageX, - start_page_y : e.touches[0].pageY, - start_time : (new Date()).getTime(), - delta_x : 0, - is_scrolling : undefined - }; - - S(this).data('swipe-transition', data); - e.stopPropagation(); - }) - .on('touchmove.fndtn.clearing', '.visible-img', function (e) { - if (!e.touches) { - e = e.originalEvent; - } - // Ignore pinch/zoom events - if (e.touches.length > 1 || e.scale && e.scale !== 1) { - return; - } - - var data = S(this).data('swipe-transition'); - - if (typeof data === 'undefined') { - data = {}; - } - - data.delta_x = e.touches[0].pageX - data.start_page_x; - - if (Foundation.rtl) { - data.delta_x = -data.delta_x; - } - - if (typeof data.is_scrolling === 'undefined') { - data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) ); - } - - if (!data.is_scrolling && !data.active) { - e.preventDefault(); - var direction = (data.delta_x < 0) ? 'next' : 'prev'; - data.active = true; - self.nav(e, direction); - } - }) - .on('touchend.fndtn.clearing', '.visible-img', function (e) { - S(this).data('swipe-transition', {}); - e.stopPropagation(); - }); - }, - - assemble : function ($li) { - var $el = $li.parent(); - - if ($el.parent().hasClass('carousel')) { - return; - } - - $el.after('
'); - - var grid = $el.detach(), - grid_outerHTML = ''; - - if (grid[0] == null) { - return; - } else { - grid_outerHTML = grid[0].outerHTML; - } - - var holder = this.S('#foundationClearingHolder'), - settings = $el.data(this.attr_name(true) + '-init'), - data = { - grid : '', - viewing : settings.templates.viewing - }, - wrapper = '
' + data.viewing + - data.grid + '
', - touch_label = this.settings.touch_label; - - if (Modernizr.touch) { - wrapper = $(wrapper).find('.clearing-touch-label').html(touch_label).end(); - } - - holder.after(wrapper).remove(); - }, - - open : function ($image, current, target) { - var self = this, - body = $(document.body), - root = target.closest('.clearing-assembled'), - container = self.S('div', root).first(), - visible_image = self.S('.visible-img', container), - image = self.S('img', visible_image).not($image), - label = self.S('.clearing-touch-label', container), - error = false, - loaded = {}; - - // Event to disable scrolling on touch devices when Clearing is activated - $('body').on('touchmove', function (e) { - e.preventDefault(); - }); - - image.error(function () { - error = true; - }); - - function startLoad() { - setTimeout(function () { - this.image_loaded(image, function () { - if (image.outerWidth() === 1 && !error) { - startLoad.call(this); - } else { - cb.call(this, image); - } - }.bind(this)); - }.bind(this), 100); - } - - function cb (image) { - var $image = $(image); - $image.css('visibility', 'visible'); - $image.trigger('imageVisible'); - // toggle the gallery - body.css('overflow', 'hidden'); - root.addClass('clearing-blackout'); - container.addClass('clearing-container'); - visible_image.show(); - this.fix_height(target) - .caption(self.S('.clearing-caption', visible_image), self.S('img', target)) - .center_and_label(image, label) - .shift(current, target, function () { - target.closest('li').siblings().removeClass('visible'); - target.closest('li').addClass('visible'); - }); - visible_image.trigger('opened.fndtn.clearing') - } - - if (!this.locked()) { - visible_image.trigger('open.fndtn.clearing'); - // set the image to the selected thumbnail - loaded = this.load($image); - if (loaded.interchange) { - image - .attr('data-interchange', loaded.interchange) - .foundation('interchange', 'reflow'); - } else { - image - .attr('src', loaded.src) - .attr('data-interchange', ''); - } - image.css('visibility', 'hidden'); - - startLoad.call(this); - } - }, - - close : function (e, el) { - e.preventDefault(); - - var root = (function (target) { - if (/blackout/.test(target.selector)) { - return target; - } else { - return target.closest('.clearing-blackout'); - } - }($(el))), - body = $(document.body), container, visible_image; - - if (el === e.target && root) { - body.css('overflow', ''); - container = $('div', root).first(); - visible_image = $('.visible-img', container); - visible_image.trigger('close.fndtn.clearing'); - this.settings.prev_index = 0; - $('ul[' + this.attr_name() + ']', root) - .attr('style', '').closest('.clearing-blackout') - .removeClass('clearing-blackout'); - container.removeClass('clearing-container'); - visible_image.hide(); - visible_image.trigger('closed.fndtn.clearing'); - } - - // Event to re-enable scrolling on touch devices - $('body').off('touchmove'); - - return false; - }, - - is_open : function (current) { - return current.parent().prop('style').length > 0; - }, - - keydown : function (e) { - var clearing = $('.clearing-blackout ul[' + this.attr_name() + ']'), - NEXT_KEY = this.rtl ? 37 : 39, - PREV_KEY = this.rtl ? 39 : 37, - ESC_KEY = 27; - - if (e.which === NEXT_KEY) { - this.go(clearing, 'next'); - } - if (e.which === PREV_KEY) { - this.go(clearing, 'prev'); - } - if (e.which === ESC_KEY) { - this.S('a.clearing-close').trigger('click.fndtn.clearing'); - } - }, - - nav : function (e, direction) { - var clearing = $('ul[' + this.attr_name() + ']', '.clearing-blackout'); - - e.preventDefault(); - this.go(clearing, direction); - }, - - resize : function () { - var image = $('img', '.clearing-blackout .visible-img'), - label = $('.clearing-touch-label', '.clearing-blackout'); - - if (image.length) { - this.center_and_label(image, label); - image.trigger('resized.fndtn.clearing') - } - }, - - // visual adjustments - fix_height : function (target) { - var lis = target.parent().children(), - self = this; - - lis.each(function () { - var li = self.S(this), - image = li.find('img'); - - if (li.height() > image.outerHeight()) { - li.addClass('fix-height'); - } - }) - .closest('ul') - .width(lis.length * 100 + '%'); - - return this; - }, - - update_paddles : function (target) { - target = target.closest('li'); - var visible_image = target - .closest('.carousel') - .siblings('.visible-img'); - - if (target.next().length > 0) { - this.S('.clearing-main-next', visible_image).removeClass('disabled'); - } else { - this.S('.clearing-main-next', visible_image).addClass('disabled'); - } - - if (target.prev().length > 0) { - this.S('.clearing-main-prev', visible_image).removeClass('disabled'); - } else { - this.S('.clearing-main-prev', visible_image).addClass('disabled'); - } - }, - - center_and_label : function (target, label) { - if (!this.rtl && label.length > 0) { - label.css({ - marginLeft : -(label.outerWidth() / 2), - marginTop : -(target.outerHeight() / 2)-label.outerHeight()-10 - }); - } else { - label.css({ - marginRight : -(label.outerWidth() / 2), - marginTop : -(target.outerHeight() / 2)-label.outerHeight()-10, - left: 'auto', - right: '50%' - }); - } - return this; - }, - - // image loading and preloading - - load : function ($image) { - var href, - interchange, - closest_a; - - if ($image[0].nodeName === 'A') { - href = $image.attr('href'); - interchange = $image.data('clearing-interchange'); - } else { - closest_a = $image.closest('a'); - href = closest_a.attr('href'); - interchange = closest_a.data('clearing-interchange'); - } - - this.preload($image); - - return { - 'src': href ? href : $image.attr('src'), - 'interchange': href ? interchange : $image.data('clearing-interchange') - } - }, - - preload : function ($image) { - this - .img($image.closest('li').next(), 'next') - .img($image.closest('li').prev(), 'prev'); - }, - - img : function (img, sibling_type) { - if (img.length) { - var preload_img = $('.clearing-preload-' + sibling_type), - new_a = this.S('a', img), - src, - interchange, - image; - - if (new_a.length) { - src = new_a.attr('href'); - interchange = new_a.data('clearing-interchange'); - } else { - image = this.S('img', img); - src = image.attr('src'); - interchange = image.data('clearing-interchange'); - } - - if (interchange) { - preload_img.attr('data-interchange', interchange); - } else { - preload_img.attr('src', src); - preload_img.attr('data-interchange', ''); - } - } - return this; - }, - - // image caption - - caption : function (container, $image) { - var caption = $image.attr('data-caption'); - - if (caption) { - container - .html(caption) - .show(); - } else { - container - .text('') - .hide(); - } - return this; - }, - - // directional methods - - go : function ($ul, direction) { - var current = this.S('.visible', $ul), - target = current[direction](); - - // Check for skip selector. - if (this.settings.skip_selector && target.find(this.settings.skip_selector).length != 0) { - target = target[direction](); - } - - if (target.length) { - this.S('img', target) - .trigger('click.fndtn.clearing', [current, target]) - .trigger('change.fndtn.clearing'); - } - }, - - shift : function (current, target, callback) { - var clearing = target.parent(), - old_index = this.settings.prev_index || target.index(), - direction = this.direction(clearing, current, target), - dir = this.rtl ? 'right' : 'left', - left = parseInt(clearing.css('left'), 10), - width = target.outerWidth(), - skip_shift; - - var dir_obj = {}; - - // we use jQuery animate instead of CSS transitions because we - // need a callback to unlock the next animation - // needs support for RTL ** - if (target.index() !== old_index && !/skip/.test(direction)) { - if (/left/.test(direction)) { - this.lock(); - dir_obj[dir] = left + width; - clearing.animate(dir_obj, 300, this.unlock()); - } else if (/right/.test(direction)) { - this.lock(); - dir_obj[dir] = left - width; - clearing.animate(dir_obj, 300, this.unlock()); - } - } else if (/skip/.test(direction)) { - // the target image is not adjacent to the current image, so - // do we scroll right or not - skip_shift = target.index() - this.settings.up_count; - this.lock(); - - if (skip_shift > 0) { - dir_obj[dir] = -(skip_shift * width); - clearing.animate(dir_obj, 300, this.unlock()); - } else { - dir_obj[dir] = 0; - clearing.animate(dir_obj, 300, this.unlock()); - } - } - - callback(); - }, - - direction : function ($el, current, target) { - var lis = this.S('li', $el), - li_width = lis.outerWidth() + (lis.outerWidth() / 4), - up_count = Math.floor(this.S('.clearing-container').outerWidth() / li_width) - 1, - target_index = lis.index(target), - response; - - this.settings.up_count = up_count; - - if (this.adjacent(this.settings.prev_index, target_index)) { - if ((target_index > up_count) && target_index > this.settings.prev_index) { - response = 'right'; - } else if ((target_index > up_count - 1) && target_index <= this.settings.prev_index) { - response = 'left'; - } else { - response = false; - } - } else { - response = 'skip'; - } - - this.settings.prev_index = target_index; - - return response; - }, - - adjacent : function (current_index, target_index) { - for (var i = target_index + 1; i >= target_index - 1; i--) { - if (i === current_index) { - return true; - } - } - return false; - }, - - // lock management - - lock : function () { - this.settings.locked = true; - }, - - unlock : function () { - this.settings.locked = false; - }, - - locked : function () { - return this.settings.locked; - }, - - off : function () { - this.S(this.scope).off('.fndtn.clearing'); - this.S(window).off('.fndtn.clearing'); - }, - - reflow : function () { - this.init(); - } - }; - -}(jQuery, window, window.document)); diff --git a/public/js/foundation/foundation.dropdown.js b/public/js/foundation/foundation.dropdown.js deleted file mode 100644 index 5c2e5bb..0000000 --- a/public/js/foundation/foundation.dropdown.js +++ /dev/null @@ -1,463 +0,0 @@ -;(function ($, window, document, undefined) { - 'use strict'; - - Foundation.libs.dropdown = { - name : 'dropdown', - - version : '5.5.2', - - settings : { - active_class : 'open', - disabled_class : 'disabled', - mega_class : 'mega', - align : 'bottom', - is_hover : false, - hover_timeout : 150, - opened : function () {}, - closed : function () {} - }, - - init : function (scope, method, options) { - Foundation.inherit(this, 'throttle'); - - $.extend(true, this.settings, method, options); - this.bindings(method, options); - }, - - events : function (scope) { - var self = this, - S = self.S; - - S(this.scope) - .off('.dropdown') - .on('click.fndtn.dropdown', '[' + this.attr_name() + ']', function (e) { - var settings = S(this).data(self.attr_name(true) + '-init') || self.settings; - if (!settings.is_hover || Modernizr.touch) { - e.preventDefault(); - if (S(this).parent('[data-reveal-id]').length) { - e.stopPropagation(); - } - self.toggle($(this)); - } - }) - .on('mouseenter.fndtn.dropdown', '[' + this.attr_name() + '], [' + this.attr_name() + '-content]', function (e) { - var $this = S(this), - dropdown, - target; - - clearTimeout(self.timeout); - - if ($this.data(self.data_attr())) { - dropdown = S('#' + $this.data(self.data_attr())); - target = $this; - } else { - dropdown = $this; - target = S('[' + self.attr_name() + '="' + dropdown.attr('id') + '"]'); - } - - var settings = target.data(self.attr_name(true) + '-init') || self.settings; - - if (S(e.currentTarget).data(self.data_attr()) && settings.is_hover) { - self.closeall.call(self); - } - - if (settings.is_hover) { - self.open.apply(self, [dropdown, target]); - } - }) - .on('mouseleave.fndtn.dropdown', '[' + this.attr_name() + '], [' + this.attr_name() + '-content]', function (e) { - var $this = S(this); - var settings; - - if ($this.data(self.data_attr())) { - settings = $this.data(self.data_attr(true) + '-init') || self.settings; - } else { - var target = S('[' + self.attr_name() + '="' + S(this).attr('id') + '"]'), - settings = target.data(self.attr_name(true) + '-init') || self.settings; - } - - self.timeout = setTimeout(function () { - if ($this.data(self.data_attr())) { - if (settings.is_hover) { - self.close.call(self, S('#' + $this.data(self.data_attr()))); - } - } else { - if (settings.is_hover) { - self.close.call(self, $this); - } - } - }.bind(this), settings.hover_timeout); - }) - .on('click.fndtn.dropdown', function (e) { - var parent = S(e.target).closest('[' + self.attr_name() + '-content]'); - var links = parent.find('a'); - - if (links.length > 0 && parent.attr('aria-autoclose') !== 'false') { - self.close.call(self, S('[' + self.attr_name() + '-content]')); - } - - if (e.target !== document && !$.contains(document.documentElement, e.target)) { - return; - } - - if (S(e.target).closest('[' + self.attr_name() + ']').length > 0) { - return; - } - - if (!(S(e.target).data('revealId')) && - (parent.length > 0 && (S(e.target).is('[' + self.attr_name() + '-content]') || - $.contains(parent.first()[0], e.target)))) { - e.stopPropagation(); - return; - } - - self.close.call(self, S('[' + self.attr_name() + '-content]')); - }) - .on('opened.fndtn.dropdown', '[' + self.attr_name() + '-content]', function () { - self.settings.opened.call(this); - }) - .on('closed.fndtn.dropdown', '[' + self.attr_name() + '-content]', function () { - self.settings.closed.call(this); - }); - - S(window) - .off('.dropdown') - .on('resize.fndtn.dropdown', self.throttle(function () { - self.resize.call(self); - }, 50)); - - this.resize(); - }, - - close : function (dropdown) { - var self = this; - dropdown.each(function (idx) { - var original_target = $('[' + self.attr_name() + '=' + dropdown[idx].id + ']') || $('aria-controls=' + dropdown[idx].id + ']'); - original_target.attr('aria-expanded', 'false'); - if (self.S(this).hasClass(self.settings.active_class)) { - self.S(this) - .css(Foundation.rtl ? 'right' : 'left', '-99999px') - .attr('aria-hidden', 'true') - .removeClass(self.settings.active_class) - .prev('[' + self.attr_name() + ']') - .removeClass(self.settings.active_class) - .removeData('target'); - - self.S(this).trigger('closed.fndtn.dropdown', [dropdown]); - } - }); - dropdown.removeClass('f-open-' + this.attr_name(true)); - }, - - closeall : function () { - var self = this; - $.each(self.S('.f-open-' + this.attr_name(true)), function () { - self.close.call(self, self.S(this)); - }); - }, - - open : function (dropdown, target) { - this - .css(dropdown - .addClass(this.settings.active_class), target); - dropdown.prev('[' + this.attr_name() + ']').addClass(this.settings.active_class); - dropdown.data('target', target.get(0)).trigger('opened.fndtn.dropdown', [dropdown, target]); - dropdown.attr('aria-hidden', 'false'); - target.attr('aria-expanded', 'true'); - dropdown.focus(); - dropdown.addClass('f-open-' + this.attr_name(true)); - }, - - data_attr : function () { - if (this.namespace.length > 0) { - return this.namespace + '-' + this.name; - } - - return this.name; - }, - - toggle : function (target) { - if (target.hasClass(this.settings.disabled_class)) { - return; - } - var dropdown = this.S('#' + target.data(this.data_attr())); - if (dropdown.length === 0) { - // No dropdown found, not continuing - return; - } - - this.close.call(this, this.S('[' + this.attr_name() + '-content]').not(dropdown)); - - if (dropdown.hasClass(this.settings.active_class)) { - this.close.call(this, dropdown); - if (dropdown.data('target') !== target.get(0)) { - this.open.call(this, dropdown, target); - } - } else { - this.open.call(this, dropdown, target); - } - }, - - resize : function () { - var dropdown = this.S('[' + this.attr_name() + '-content].open'); - var target = $(dropdown.data("target")); - - if (dropdown.length && target.length) { - this.css(dropdown, target); - } - }, - - css : function (dropdown, target) { - var left_offset = Math.max((target.width() - dropdown.width()) / 2, 8), - settings = target.data(this.attr_name(true) + '-init') || this.settings, - parentOverflow = dropdown.parent().css('overflow-y') || dropdown.parent().css('overflow'); - - this.clear_idx(); - - - - if (this.small()) { - var p = this.dirs.bottom.call(dropdown, target, settings); - - dropdown.attr('style', '').removeClass('drop-left drop-right drop-top').css({ - position : 'absolute', - width : '95%', - 'max-width' : 'none', - top : p.top - }); - - dropdown.css(Foundation.rtl ? 'right' : 'left', left_offset); - } - // detect if dropdown is in an overflow container - else if (parentOverflow !== 'visible') { - var offset = target[0].offsetTop + target[0].offsetHeight; - - dropdown.attr('style', '').css({ - position : 'absolute', - top : offset - }); - - dropdown.css(Foundation.rtl ? 'right' : 'left', left_offset); - } - else { - - this.style(dropdown, target, settings); - } - - return dropdown; - }, - - style : function (dropdown, target, settings) { - var css = $.extend({position : 'absolute'}, - this.dirs[settings.align].call(dropdown, target, settings)); - - dropdown.attr('style', '').css(css); - }, - - // return CSS property object - // `this` is the dropdown - dirs : { - // Calculate target offset - _base : function (t) { - var o_p = this.offsetParent(), - o = o_p.offset(), - p = t.offset(); - - p.top -= o.top; - p.left -= o.left; - - //set some flags on the p object to pass along - p.missRight = false; - p.missTop = false; - p.missLeft = false; - p.leftRightFlag = false; - - //lets see if the panel will be off the screen - //get the actual width of the page and store it - var actualBodyWidth; - if (document.getElementsByClassName('row')[0]) { - actualBodyWidth = document.getElementsByClassName('row')[0].clientWidth; - } else { - actualBodyWidth = window.innerWidth; - } - - var actualMarginWidth = (window.innerWidth - actualBodyWidth) / 2; - var actualBoundary = actualBodyWidth; - - if (!this.hasClass('mega')) { - //miss top - if (t.offset().top <= this.outerHeight()) { - p.missTop = true; - actualBoundary = window.innerWidth - actualMarginWidth; - p.leftRightFlag = true; - } - - //miss right - if (t.offset().left + this.outerWidth() > t.offset().left + actualMarginWidth && t.offset().left - actualMarginWidth > this.outerWidth()) { - p.missRight = true; - p.missLeft = false; - } - - //miss left - if (t.offset().left - this.outerWidth() <= 0) { - p.missLeft = true; - p.missRight = false; - } - } - - return p; - }, - - top : function (t, s) { - var self = Foundation.libs.dropdown, - p = self.dirs._base.call(this, t); - - this.addClass('drop-top'); - - if (p.missTop == true) { - p.top = p.top + t.outerHeight() + this.outerHeight(); - this.removeClass('drop-top'); - } - - if (p.missRight == true) { - p.left = p.left - this.outerWidth() + t.outerWidth(); - } - - if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) { - self.adjust_pip(this, t, s, p); - } - - if (Foundation.rtl) { - return {left : p.left - this.outerWidth() + t.outerWidth(), - top : p.top - this.outerHeight()}; - } - - return {left : p.left, top : p.top - this.outerHeight()}; - }, - - bottom : function (t, s) { - var self = Foundation.libs.dropdown, - p = self.dirs._base.call(this, t); - - if (p.missRight == true) { - p.left = p.left - this.outerWidth() + t.outerWidth(); - } - - if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) { - self.adjust_pip(this, t, s, p); - } - - if (self.rtl) { - return {left : p.left - this.outerWidth() + t.outerWidth(), top : p.top + t.outerHeight()}; - } - - return {left : p.left, top : p.top + t.outerHeight()}; - }, - - left : function (t, s) { - var p = Foundation.libs.dropdown.dirs._base.call(this, t); - - this.addClass('drop-left'); - - if (p.missLeft == true) { - p.left = p.left + this.outerWidth(); - p.top = p.top + t.outerHeight(); - this.removeClass('drop-left'); - } - - return {left : p.left - this.outerWidth(), top : p.top}; - }, - - right : function (t, s) { - var p = Foundation.libs.dropdown.dirs._base.call(this, t); - - this.addClass('drop-right'); - - if (p.missRight == true) { - p.left = p.left - this.outerWidth(); - p.top = p.top + t.outerHeight(); - this.removeClass('drop-right'); - } else { - p.triggeredRight = true; - } - - var self = Foundation.libs.dropdown; - - if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) { - self.adjust_pip(this, t, s, p); - } - - return {left : p.left + t.outerWidth(), top : p.top}; - } - }, - - // Insert rule to style psuedo elements - adjust_pip : function (dropdown, target, settings, position) { - var sheet = Foundation.stylesheet, - pip_offset_base = 8; - - if (dropdown.hasClass(settings.mega_class)) { - pip_offset_base = position.left + (target.outerWidth() / 2) - 8; - } else if (this.small()) { - pip_offset_base += position.left - 8; - } - - this.rule_idx = sheet.cssRules.length; - - //default - var sel_before = '.f-dropdown.open:before', - sel_after = '.f-dropdown.open:after', - css_before = 'left: ' + pip_offset_base + 'px;', - css_after = 'left: ' + (pip_offset_base - 1) + 'px;'; - - if (position.missRight == true) { - pip_offset_base = dropdown.outerWidth() - 23; - sel_before = '.f-dropdown.open:before', - sel_after = '.f-dropdown.open:after', - css_before = 'left: ' + pip_offset_base + 'px;', - css_after = 'left: ' + (pip_offset_base - 1) + 'px;'; - } - - //just a case where right is fired, but its not missing right - if (position.triggeredRight == true) { - sel_before = '.f-dropdown.open:before', - sel_after = '.f-dropdown.open:after', - css_before = 'left:-12px;', - css_after = 'left:-14px;'; - } - - if (sheet.insertRule) { - sheet.insertRule([sel_before, '{', css_before, '}'].join(' '), this.rule_idx); - sheet.insertRule([sel_after, '{', css_after, '}'].join(' '), this.rule_idx + 1); - } else { - sheet.addRule(sel_before, css_before, this.rule_idx); - sheet.addRule(sel_after, css_after, this.rule_idx + 1); - } - }, - - // Remove old dropdown rule index - clear_idx : function () { - var sheet = Foundation.stylesheet; - - if (typeof this.rule_idx !== 'undefined') { - sheet.deleteRule(this.rule_idx); - sheet.deleteRule(this.rule_idx); - delete this.rule_idx; - } - }, - - small : function () { - return matchMedia(Foundation.media_queries.small).matches && - !matchMedia(Foundation.media_queries.medium).matches; - }, - - off : function () { - this.S(this.scope).off('.fndtn.dropdown'); - this.S('html, body').off('.fndtn.dropdown'); - this.S(window).off('.fndtn.dropdown'); - this.S('[data-dropdown-content]').off('.fndtn.dropdown'); - }, - - reflow : function () {} - }; -}(jQuery, window, window.document)); diff --git a/public/js/foundation/foundation.equalizer.js b/public/js/foundation/foundation.equalizer.js deleted file mode 100644 index 23ab105..0000000 --- a/public/js/foundation/foundation.equalizer.js +++ /dev/null @@ -1,104 +0,0 @@ -;(function ($, window, document, undefined) { - 'use strict'; - - Foundation.libs.equalizer = { - name : 'equalizer', - - version : '5.5.2', - - settings : { - use_tallest : true, - before_height_change : $.noop, - after_height_change : $.noop, - equalize_on_stack : false, - act_on_hidden_el: false - }, - - init : function (scope, method, options) { - Foundation.inherit(this, 'image_loaded'); - this.bindings(method, options); - this.reflow(); - }, - - events : function () { - this.S(window).off('.equalizer').on('resize.fndtn.equalizer', function (e) { - this.reflow(); - }.bind(this)); - }, - - equalize : function (equalizer) { - var isStacked = false, - group = equalizer.data('equalizer'), - settings = equalizer.data(this.attr_name(true)+'-init') || this.settings, - vals, - firstTopOffset; - - if (settings.act_on_hidden_el) { - vals = group ? equalizer.find('['+this.attr_name()+'-watch="'+group+'"]') : equalizer.find('['+this.attr_name()+'-watch]'); - } - else { - vals = group ? equalizer.find('['+this.attr_name()+'-watch="'+group+'"]:visible') : equalizer.find('['+this.attr_name()+'-watch]:visible'); - } - - if (vals.length === 0) { - return; - } - - settings.before_height_change(); - equalizer.trigger('before-height-change.fndth.equalizer'); - vals.height('inherit'); - - if (settings.equalize_on_stack === false) { - firstTopOffset = vals.first().offset().top; - vals.each(function () { - if ($(this).offset().top !== firstTopOffset) { - isStacked = true; - return false; - } - }); - if (isStacked) { - return; - } - } - - var heights = vals.map(function () { return $(this).outerHeight(false) }).get(); - - if (settings.use_tallest) { - var max = Math.max.apply(null, heights); - vals.css('height', max); - } else { - var min = Math.min.apply(null, heights); - vals.css('height', min); - } - - settings.after_height_change(); - equalizer.trigger('after-height-change.fndtn.equalizer'); - }, - - reflow : function () { - var self = this; - - this.S('[' + this.attr_name() + ']', this.scope).each(function () { - var $eq_target = $(this), - media_query = $eq_target.data('equalizer-mq'), - ignore_media_query = true; - - if (media_query) { - media_query = 'is_' + media_query.replace(/-/g, '_'); - if (Foundation.utils.hasOwnProperty(media_query)) { - ignore_media_query = false; - } - } - - self.image_loaded(self.S('img', this), function () { - if (ignore_media_query || Foundation.utils[media_query]()) { - self.equalize($eq_target) - } else { - var vals = $eq_target.find('[' + self.attr_name() + '-watch]:visible'); - vals.css('height', 'auto'); - } - }); - }); - } - }; -})(jQuery, window, window.document); diff --git a/public/js/foundation/foundation.interchange.js b/public/js/foundation/foundation.interchange.js deleted file mode 100644 index 7ec2ad1..0000000 --- a/public/js/foundation/foundation.interchange.js +++ /dev/null @@ -1,359 +0,0 @@ -;(function ($, window, document, undefined) { - 'use strict'; - - Foundation.libs.interchange = { - name : 'interchange', - - version : '5.5.2', - - cache : {}, - - images_loaded : false, - nodes_loaded : false, - - settings : { - load_attr : 'interchange', - - named_queries : { - 'default' : 'only screen', - 'small' : Foundation.media_queries['small'], - 'small-only' : Foundation.media_queries['small-only'], - 'medium' : Foundation.media_queries['medium'], - 'medium-only' : Foundation.media_queries['medium-only'], - 'large' : Foundation.media_queries['large'], - 'large-only' : Foundation.media_queries['large-only'], - 'xlarge' : Foundation.media_queries['xlarge'], - 'xlarge-only' : Foundation.media_queries['xlarge-only'], - 'xxlarge' : Foundation.media_queries['xxlarge'], - 'landscape' : 'only screen and (orientation: landscape)', - 'portrait' : 'only screen and (orientation: portrait)', - 'retina' : 'only screen and (-webkit-min-device-pixel-ratio: 2),' + - 'only screen and (min--moz-device-pixel-ratio: 2),' + - 'only screen and (-o-min-device-pixel-ratio: 2/1),' + - 'only screen and (min-device-pixel-ratio: 2),' + - 'only screen and (min-resolution: 192dpi),' + - 'only screen and (min-resolution: 2dppx)' - }, - - directives : { - replace : function (el, path, trigger) { - // The trigger argument, if called within the directive, fires - // an event named after the directive on the element, passing - // any parameters along to the event that you pass to trigger. - // - // ex. trigger(), trigger([a, b, c]), or trigger(a, b, c) - // - // This allows you to bind a callback like so: - // $('#interchangeContainer').on('replace', function (e, a, b, c) { - // console.log($(this).html(), a, b, c); - // }); - - if (el !== null && /IMG/.test(el[0].nodeName)) { - var orig_path = el[0].src; - - if (new RegExp(path, 'i').test(orig_path)) { - return; - } - - el.attr("src", path); - - return trigger(el[0].src); - } - var last_path = el.data(this.data_attr + '-last-path'), - self = this; - - if (last_path == path) { - return; - } - - if (/\.(gif|jpg|jpeg|tiff|png)([?#].*)?/i.test(path)) { - $(el).css('background-image', 'url(' + path + ')'); - el.data('interchange-last-path', path); - return trigger(path); - } - - return $.get(path, function (response) { - el.html(response); - el.data(self.data_attr + '-last-path', path); - trigger(); - }); - - } - } - }, - - init : function (scope, method, options) { - Foundation.inherit(this, 'throttle random_str'); - - this.data_attr = this.set_data_attr(); - $.extend(true, this.settings, method, options); - this.bindings(method, options); - this.reflow(); - }, - - get_media_hash : function () { - var mediaHash = ''; - for (var queryName in this.settings.named_queries ) { - mediaHash += matchMedia(this.settings.named_queries[queryName]).matches.toString(); - } - return mediaHash; - }, - - events : function () { - var self = this, prevMediaHash; - - $(window) - .off('.interchange') - .on('resize.fndtn.interchange', self.throttle(function () { - var currMediaHash = self.get_media_hash(); - if (currMediaHash !== prevMediaHash) { - self.resize(); - } - prevMediaHash = currMediaHash; - }, 50)); - - return this; - }, - - resize : function () { - var cache = this.cache; - - if (!this.images_loaded || !this.nodes_loaded) { - setTimeout($.proxy(this.resize, this), 50); - return; - } - - for (var uuid in cache) { - if (cache.hasOwnProperty(uuid)) { - var passed = this.results(uuid, cache[uuid]); - if (passed) { - this.settings.directives[passed - .scenario[1]].call(this, passed.el, passed.scenario[0], (function (passed) { - if (arguments[0] instanceof Array) { - var args = arguments[0]; - } else { - var args = Array.prototype.slice.call(arguments, 0); - } - - return function() { - passed.el.trigger(passed.scenario[1], args); - } - }(passed))); - } - } - } - - }, - - results : function (uuid, scenarios) { - var count = scenarios.length; - - if (count > 0) { - var el = this.S('[' + this.add_namespace('data-uuid') + '="' + uuid + '"]'); - - while (count--) { - var mq, rule = scenarios[count][2]; - if (this.settings.named_queries.hasOwnProperty(rule)) { - mq = matchMedia(this.settings.named_queries[rule]); - } else { - mq = matchMedia(rule); - } - if (mq.matches) { - return {el : el, scenario : scenarios[count]}; - } - } - } - - return false; - }, - - load : function (type, force_update) { - if (typeof this['cached_' + type] === 'undefined' || force_update) { - this['update_' + type](); - } - - return this['cached_' + type]; - }, - - update_images : function () { - var images = this.S('img[' + this.data_attr + ']'), - count = images.length, - i = count, - loaded_count = 0, - data_attr = this.data_attr; - - this.cache = {}; - this.cached_images = []; - this.images_loaded = (count === 0); - - while (i--) { - loaded_count++; - if (images[i]) { - var str = images[i].getAttribute(data_attr) || ''; - - if (str.length > 0) { - this.cached_images.push(images[i]); - } - } - - if (loaded_count === count) { - this.images_loaded = true; - this.enhance('images'); - } - } - - return this; - }, - - update_nodes : function () { - var nodes = this.S('[' + this.data_attr + ']').not('img'), - count = nodes.length, - i = count, - loaded_count = 0, - data_attr = this.data_attr; - - this.cached_nodes = []; - this.nodes_loaded = (count === 0); - - while (i--) { - loaded_count++; - var str = nodes[i].getAttribute(data_attr) || ''; - - if (str.length > 0) { - this.cached_nodes.push(nodes[i]); - } - - if (loaded_count === count) { - this.nodes_loaded = true; - this.enhance('nodes'); - } - } - - return this; - }, - - enhance : function (type) { - var i = this['cached_' + type].length; - - while (i--) { - this.object($(this['cached_' + type][i])); - } - - return $(window).trigger('resize.fndtn.interchange'); - }, - - convert_directive : function (directive) { - - var trimmed = this.trim(directive); - - if (trimmed.length > 0) { - return trimmed; - } - - return 'replace'; - }, - - parse_scenario : function (scenario) { - // This logic had to be made more complex since some users were using commas in the url path - // So we cannot simply just split on a comma - - var directive_match = scenario[0].match(/(.+),\s*(\w+)\s*$/), - // getting the mq has gotten a bit complicated since we started accounting for several use cases - // of URLs. For now we'll continue to match these scenarios, but we may consider having these scenarios - // as nested objects or arrays in F6. - // regex: match everything before close parenthesis for mq - media_query = scenario[1].match(/(.*)\)/); - - if (directive_match) { - var path = directive_match[1], - directive = directive_match[2]; - - } else { - var cached_split = scenario[0].split(/,\s*$/), - path = cached_split[0], - directive = ''; - } - - return [this.trim(path), this.convert_directive(directive), this.trim(media_query[1])]; - }, - - object : function (el) { - var raw_arr = this.parse_data_attr(el), - scenarios = [], - i = raw_arr.length; - - if (i > 0) { - while (i--) { - // split array between comma delimited content and mq - // regex: comma, optional space, open parenthesis - var scenario = raw_arr[i].split(/,\s?\(/); - - if (scenario.length > 1) { - var params = this.parse_scenario(scenario); - scenarios.push(params); - } - } - } - - return this.store(el, scenarios); - }, - - store : function (el, scenarios) { - var uuid = this.random_str(), - current_uuid = el.data(this.add_namespace('uuid', true)); - - if (this.cache[current_uuid]) { - return this.cache[current_uuid]; - } - - el.attr(this.add_namespace('data-uuid'), uuid); - return this.cache[uuid] = scenarios; - }, - - trim : function (str) { - - if (typeof str === 'string') { - return $.trim(str); - } - - return str; - }, - - set_data_attr : function (init) { - if (init) { - if (this.namespace.length > 0) { - return this.namespace + '-' + this.settings.load_attr; - } - - return this.settings.load_attr; - } - - if (this.namespace.length > 0) { - return 'data-' + this.namespace + '-' + this.settings.load_attr; - } - - return 'data-' + this.settings.load_attr; - }, - - parse_data_attr : function (el) { - var raw = el.attr(this.attr_name()).split(/\[(.*?)\]/), - i = raw.length, - output = []; - - while (i--) { - if (raw[i].replace(/[\W\d]+/, '').length > 4) { - output.push(raw[i]); - } - } - - return output; - }, - - reflow : function () { - this.load('images', true); - this.load('nodes', true); - } - - }; - -}(jQuery, window, window.document)); diff --git a/public/js/foundation/foundation.joyride.js b/public/js/foundation/foundation.joyride.js deleted file mode 100644 index 5433bf7..0000000 --- a/public/js/foundation/foundation.joyride.js +++ /dev/null @@ -1,932 +0,0 @@ -;(function ($, window, document, undefined) { - 'use strict'; - - var Modernizr = Modernizr || false; - - Foundation.libs.joyride = { - name : 'joyride', - - version : '5.5.2', - - defaults : { - expose : false, // turn on or off the expose feature - modal : true, // Whether to cover page with modal during the tour - keyboard : true, // enable left, right and esc keystrokes - tip_location : 'bottom', // 'top' or 'bottom' in relation to parent - nub_position : 'auto', // override on a per tooltip bases - scroll_speed : 1500, // Page scrolling speed in milliseconds, 0 = no scroll animation - scroll_animation : 'linear', // supports 'swing' and 'linear', extend with jQuery UI. - timer : 0, // 0 = no timer , all other numbers = timer in milliseconds - start_timer_on_click : true, // true or false - true requires clicking the first button start the timer - start_offset : 0, // the index of the tooltip you want to start on (index of the li) - next_button : true, // true or false to control whether a next button is used - prev_button : true, // true or false to control whether a prev button is used - tip_animation : 'fade', // 'pop' or 'fade' in each tip - pause_after : [], // array of indexes where to pause the tour after - exposed : [], // array of expose elements - tip_animation_fade_speed : 300, // when tipAnimation = 'fade' this is speed in milliseconds for the transition - cookie_monster : false, // true or false to control whether cookies are used - cookie_name : 'joyride', // Name the cookie you'll use - cookie_domain : false, // Will this cookie be attached to a domain, ie. '.notableapp.com' - cookie_expires : 365, // set when you would like the cookie to expire. - tip_container : 'body', // Where will the tip be attached - abort_on_close : true, // When true, the close event will not fire any callback - tip_location_patterns : { - top : ['bottom'], - bottom : [], // bottom should not need to be repositioned - left : ['right', 'top', 'bottom'], - right : ['left', 'top', 'bottom'] - }, - post_ride_callback : function () {}, // A method to call once the tour closes (canceled or complete) - post_step_callback : function () {}, // A method to call after each step - pre_step_callback : function () {}, // A method to call before each step - pre_ride_callback : function () {}, // A method to call before the tour starts (passed index, tip, and cloned exposed element) - post_expose_callback : function () {}, // A method to call after an element has been exposed - template : { // HTML segments for tip layout - link : '×', - timer : '
', - tip : '
', - wrapper : '
', - button : '', - prev_button : '', - modal : '
', - expose : '
', - expose_cover : '
' - }, - expose_add_class : '' // One or more space-separated class names to be added to exposed element - }, - - init : function (scope, method, options) { - Foundation.inherit(this, 'throttle random_str'); - - this.settings = this.settings || $.extend({}, this.defaults, (options || method)); - - this.bindings(method, options) - }, - - go_next : function () { - if (this.settings.$li.next().length < 1) { - this.end(); - } else if (this.settings.timer > 0) { - clearTimeout(this.settings.automate); - this.hide(); - this.show(); - this.startTimer(); - } else { - this.hide(); - this.show(); - } - }, - - go_prev : function () { - if (this.settings.$li.prev().length < 1) { - // Do nothing if there are no prev element - } else if (this.settings.timer > 0) { - clearTimeout(this.settings.automate); - this.hide(); - this.show(null, true); - this.startTimer(); - } else { - this.hide(); - this.show(null, true); - } - }, - - events : function () { - var self = this; - - $(this.scope) - .off('.joyride') - .on('click.fndtn.joyride', '.joyride-next-tip, .joyride-modal-bg', function (e) { - e.preventDefault(); - this.go_next() - }.bind(this)) - .on('click.fndtn.joyride', '.joyride-prev-tip', function (e) { - e.preventDefault(); - this.go_prev(); - }.bind(this)) - - .on('click.fndtn.joyride', '.joyride-close-tip', function (e) { - e.preventDefault(); - this.end(this.settings.abort_on_close); - }.bind(this)) - - .on('keyup.fndtn.joyride', function (e) { - // Don't do anything if keystrokes are disabled - // or if the joyride is not being shown - if (!this.settings.keyboard || !this.settings.riding) { - return; - } - - switch (e.which) { - case 39: // right arrow - e.preventDefault(); - this.go_next(); - break; - case 37: // left arrow - e.preventDefault(); - this.go_prev(); - break; - case 27: // escape - e.preventDefault(); - this.end(this.settings.abort_on_close); - } - }.bind(this)); - - $(window) - .off('.joyride') - .on('resize.fndtn.joyride', self.throttle(function () { - if ($('[' + self.attr_name() + ']').length > 0 && self.settings.$next_tip && self.settings.riding) { - if (self.settings.exposed.length > 0) { - var $els = $(self.settings.exposed); - - $els.each(function () { - var $this = $(this); - self.un_expose($this); - self.expose($this); - }); - } - - if (self.is_phone()) { - self.pos_phone(); - } else { - self.pos_default(false); - } - } - }, 100)); - }, - - start : function () { - var self = this, - $this = $('[' + this.attr_name() + ']', this.scope), - integer_settings = ['timer', 'scrollSpeed', 'startOffset', 'tipAnimationFadeSpeed', 'cookieExpires'], - int_settings_count = integer_settings.length; - - if (!$this.length > 0) { - return; - } - - if (!this.settings.init) { - this.events(); - } - - this.settings = $this.data(this.attr_name(true) + '-init'); - - // non configureable settings - this.settings.$content_el = $this; - this.settings.$body = $(this.settings.tip_container); - this.settings.body_offset = $(this.settings.tip_container).position(); - this.settings.$tip_content = this.settings.$content_el.find('> li'); - this.settings.paused = false; - this.settings.attempts = 0; - this.settings.riding = true; - - // can we create cookies? - if (typeof $.cookie !== 'function') { - this.settings.cookie_monster = false; - } - - // generate the tips and insert into dom. - if (!this.settings.cookie_monster || this.settings.cookie_monster && !$.cookie(this.settings.cookie_name)) { - this.settings.$tip_content.each(function (index) { - var $this = $(this); - this.settings = $.extend({}, self.defaults, self.data_options($this)); - - // Make sure that settings parsed from data_options are integers where necessary - var i = int_settings_count; - while (i--) { - self.settings[integer_settings[i]] = parseInt(self.settings[integer_settings[i]], 10); - } - self.create({$li : $this, index : index}); - }); - - // show first tip - if (!this.settings.start_timer_on_click && this.settings.timer > 0) { - this.show('init'); - this.startTimer(); - } else { - this.show('init'); - } - - } - }, - - resume : function () { - this.set_li(); - this.show(); - }, - - tip_template : function (opts) { - var $blank, content; - - opts.tip_class = opts.tip_class || ''; - - $blank = $(this.settings.template.tip).addClass(opts.tip_class); - content = $.trim($(opts.li).html()) + - this.prev_button_text(opts.prev_button_text, opts.index) + - this.button_text(opts.button_text) + - this.settings.template.link + - this.timer_instance(opts.index); - - $blank.append($(this.settings.template.wrapper)); - $blank.first().attr(this.add_namespace('data-index'), opts.index); - $('.joyride-content-wrapper', $blank).append(content); - - return $blank[0]; - }, - - timer_instance : function (index) { - var txt; - - if ((index === 0 && this.settings.start_timer_on_click && this.settings.timer > 0) || this.settings.timer === 0) { - txt = ''; - } else { - txt = $(this.settings.template.timer)[0].outerHTML; - } - return txt; - }, - - button_text : function (txt) { - if (this.settings.tip_settings.next_button) { - txt = $.trim(txt) || 'Next'; - txt = $(this.settings.template.button).append(txt)[0].outerHTML; - } else { - txt = ''; - } - return txt; - }, - - prev_button_text : function (txt, idx) { - if (this.settings.tip_settings.prev_button) { - txt = $.trim(txt) || 'Previous'; - - // Add the disabled class to the button if it's the first element - if (idx == 0) { - txt = $(this.settings.template.prev_button).append(txt).addClass('disabled')[0].outerHTML; - } else { - txt = $(this.settings.template.prev_button).append(txt)[0].outerHTML; - } - } else { - txt = ''; - } - return txt; - }, - - create : function (opts) { - this.settings.tip_settings = $.extend({}, this.settings, this.data_options(opts.$li)); - var buttonText = opts.$li.attr(this.add_namespace('data-button')) || opts.$li.attr(this.add_namespace('data-text')), - prevButtonText = opts.$li.attr(this.add_namespace('data-button-prev')) || opts.$li.attr(this.add_namespace('data-prev-text')), - tipClass = opts.$li.attr('class'), - $tip_content = $(this.tip_template({ - tip_class : tipClass, - index : opts.index, - button_text : buttonText, - prev_button_text : prevButtonText, - li : opts.$li - })); - - $(this.settings.tip_container).append($tip_content); - }, - - show : function (init, is_prev) { - var $timer = null; - - // are we paused? - if (this.settings.$li === undefined || ($.inArray(this.settings.$li.index(), this.settings.pause_after) === -1)) { - - // don't go to the next li if the tour was paused - if (this.settings.paused) { - this.settings.paused = false; - } else { - this.set_li(init, is_prev); - } - - this.settings.attempts = 0; - - if (this.settings.$li.length && this.settings.$target.length > 0) { - if (init) { //run when we first start - this.settings.pre_ride_callback(this.settings.$li.index(), this.settings.$next_tip); - if (this.settings.modal) { - this.show_modal(); - } - } - - this.settings.pre_step_callback(this.settings.$li.index(), this.settings.$next_tip); - - if (this.settings.modal && this.settings.expose) { - this.expose(); - } - - this.settings.tip_settings = $.extend({}, this.settings, this.data_options(this.settings.$li)); - - this.settings.timer = parseInt(this.settings.timer, 10); - - this.settings.tip_settings.tip_location_pattern = this.settings.tip_location_patterns[this.settings.tip_settings.tip_location]; - - // scroll and hide bg if not modal - if (!/body/i.test(this.settings.$target.selector)) { - var joyridemodalbg = $('.joyride-modal-bg'); - if (/pop/i.test(this.settings.tipAnimation)) { - joyridemodalbg.hide(); - } else { - joyridemodalbg.fadeOut(this.settings.tipAnimationFadeSpeed); - } - this.scroll_to(); - } - - if (this.is_phone()) { - this.pos_phone(true); - } else { - this.pos_default(true); - } - - $timer = this.settings.$next_tip.find('.joyride-timer-indicator'); - - if (/pop/i.test(this.settings.tip_animation)) { - - $timer.width(0); - - if (this.settings.timer > 0) { - - this.settings.$next_tip.show(); - - setTimeout(function () { - $timer.animate({ - width : $timer.parent().width() - }, this.settings.timer, 'linear'); - }.bind(this), this.settings.tip_animation_fade_speed); - - } else { - this.settings.$next_tip.show(); - - } - - } else if (/fade/i.test(this.settings.tip_animation)) { - - $timer.width(0); - - if (this.settings.timer > 0) { - - this.settings.$next_tip - .fadeIn(this.settings.tip_animation_fade_speed) - .show(); - - setTimeout(function () { - $timer.animate({ - width : $timer.parent().width() - }, this.settings.timer, 'linear'); - }.bind(this), this.settings.tip_animation_fade_speed); - - } else { - this.settings.$next_tip.fadeIn(this.settings.tip_animation_fade_speed); - } - } - - this.settings.$current_tip = this.settings.$next_tip; - - // skip non-existant targets - } else if (this.settings.$li && this.settings.$target.length < 1) { - - this.show(init, is_prev); - - } else { - - this.end(); - - } - } else { - - this.settings.paused = true; - - } - - }, - - is_phone : function () { - return matchMedia(Foundation.media_queries.small).matches && - !matchMedia(Foundation.media_queries.medium).matches; - }, - - hide : function () { - if (this.settings.modal && this.settings.expose) { - this.un_expose(); - } - - if (!this.settings.modal) { - $('.joyride-modal-bg').hide(); - } - - // Prevent scroll bouncing...wait to remove from layout - this.settings.$current_tip.css('visibility', 'hidden'); - setTimeout($.proxy(function () { - this.hide(); - this.css('visibility', 'visible'); - }, this.settings.$current_tip), 0); - this.settings.post_step_callback(this.settings.$li.index(), - this.settings.$current_tip); - }, - - set_li : function (init, is_prev) { - if (init) { - this.settings.$li = this.settings.$tip_content.eq(this.settings.start_offset); - this.set_next_tip(); - this.settings.$current_tip = this.settings.$next_tip; - } else { - if (is_prev) { - this.settings.$li = this.settings.$li.prev(); - } else { - this.settings.$li = this.settings.$li.next(); - } - this.set_next_tip(); - } - - this.set_target(); - }, - - set_next_tip : function () { - this.settings.$next_tip = $('.joyride-tip-guide').eq(this.settings.$li.index()); - this.settings.$next_tip.data('closed', ''); - }, - - set_target : function () { - var cl = this.settings.$li.attr(this.add_namespace('data-class')), - id = this.settings.$li.attr(this.add_namespace('data-id')), - $sel = function () { - if (id) { - return $(document.getElementById(id)); - } else if (cl) { - return $('.' + cl).first(); - } else { - return $('body'); - } - }; - - this.settings.$target = $sel(); - }, - - scroll_to : function () { - var window_half, tipOffset; - - window_half = $(window).height() / 2; - tipOffset = Math.ceil(this.settings.$target.offset().top - window_half + this.settings.$next_tip.outerHeight()); - - if (tipOffset != 0) { - $('html, body').stop().animate({ - scrollTop : tipOffset - }, this.settings.scroll_speed, 'swing'); - } - }, - - paused : function () { - return ($.inArray((this.settings.$li.index() + 1), this.settings.pause_after) === -1); - }, - - restart : function () { - this.hide(); - this.settings.$li = undefined; - this.show('init'); - }, - - pos_default : function (init) { - var $nub = this.settings.$next_tip.find('.joyride-nub'), - nub_width = Math.ceil($nub.outerWidth() / 2), - nub_height = Math.ceil($nub.outerHeight() / 2), - toggle = init || false; - - // tip must not be "display: none" to calculate position - if (toggle) { - this.settings.$next_tip.css('visibility', 'hidden'); - this.settings.$next_tip.show(); - } - - if (!/body/i.test(this.settings.$target.selector)) { - var topAdjustment = this.settings.tip_settings.tipAdjustmentY ? parseInt(this.settings.tip_settings.tipAdjustmentY) : 0, - leftAdjustment = this.settings.tip_settings.tipAdjustmentX ? parseInt(this.settings.tip_settings.tipAdjustmentX) : 0; - - if (this.bottom()) { - if (this.rtl) { - this.settings.$next_tip.css({ - top : (this.settings.$target.offset().top + nub_height + this.settings.$target.outerHeight() + topAdjustment), - left : this.settings.$target.offset().left + this.settings.$target.outerWidth() - this.settings.$next_tip.outerWidth() + leftAdjustment}); - } else { - this.settings.$next_tip.css({ - top : (this.settings.$target.offset().top + nub_height + this.settings.$target.outerHeight() + topAdjustment), - left : this.settings.$target.offset().left + leftAdjustment}); - } - - this.nub_position($nub, this.settings.tip_settings.nub_position, 'top'); - - } else if (this.top()) { - if (this.rtl) { - this.settings.$next_tip.css({ - top : (this.settings.$target.offset().top - this.settings.$next_tip.outerHeight() - nub_height + topAdjustment), - left : this.settings.$target.offset().left + this.settings.$target.outerWidth() - this.settings.$next_tip.outerWidth()}); - } else { - this.settings.$next_tip.css({ - top : (this.settings.$target.offset().top - this.settings.$next_tip.outerHeight() - nub_height + topAdjustment), - left : this.settings.$target.offset().left + leftAdjustment}); - } - - this.nub_position($nub, this.settings.tip_settings.nub_position, 'bottom'); - - } else if (this.right()) { - - this.settings.$next_tip.css({ - top : this.settings.$target.offset().top + topAdjustment, - left : (this.settings.$target.outerWidth() + this.settings.$target.offset().left + nub_width + leftAdjustment)}); - - this.nub_position($nub, this.settings.tip_settings.nub_position, 'left'); - - } else if (this.left()) { - - this.settings.$next_tip.css({ - top : this.settings.$target.offset().top + topAdjustment, - left : (this.settings.$target.offset().left - this.settings.$next_tip.outerWidth() - nub_width + leftAdjustment)}); - - this.nub_position($nub, this.settings.tip_settings.nub_position, 'right'); - - } - - if (!this.visible(this.corners(this.settings.$next_tip)) && this.settings.attempts < this.settings.tip_settings.tip_location_pattern.length) { - - $nub.removeClass('bottom') - .removeClass('top') - .removeClass('right') - .removeClass('left'); - - this.settings.tip_settings.tip_location = this.settings.tip_settings.tip_location_pattern[this.settings.attempts]; - - this.settings.attempts++; - - this.pos_default(); - - } - - } else if (this.settings.$li.length) { - - this.pos_modal($nub); - - } - - if (toggle) { - this.settings.$next_tip.hide(); - this.settings.$next_tip.css('visibility', 'visible'); - } - - }, - - pos_phone : function (init) { - var tip_height = this.settings.$next_tip.outerHeight(), - tip_offset = this.settings.$next_tip.offset(), - target_height = this.settings.$target.outerHeight(), - $nub = $('.joyride-nub', this.settings.$next_tip), - nub_height = Math.ceil($nub.outerHeight() / 2), - toggle = init || false; - - $nub.removeClass('bottom') - .removeClass('top') - .removeClass('right') - .removeClass('left'); - - if (toggle) { - this.settings.$next_tip.css('visibility', 'hidden'); - this.settings.$next_tip.show(); - } - - if (!/body/i.test(this.settings.$target.selector)) { - - if (this.top()) { - - this.settings.$next_tip.offset({top : this.settings.$target.offset().top - tip_height - nub_height}); - $nub.addClass('bottom'); - - } else { - - this.settings.$next_tip.offset({top : this.settings.$target.offset().top + target_height + nub_height}); - $nub.addClass('top'); - - } - - } else if (this.settings.$li.length) { - this.pos_modal($nub); - } - - if (toggle) { - this.settings.$next_tip.hide(); - this.settings.$next_tip.css('visibility', 'visible'); - } - }, - - pos_modal : function ($nub) { - this.center(); - $nub.hide(); - - this.show_modal(); - }, - - show_modal : function () { - if (!this.settings.$next_tip.data('closed')) { - var joyridemodalbg = $('.joyride-modal-bg'); - if (joyridemodalbg.length < 1) { - var joyridemodalbg = $(this.settings.template.modal); - joyridemodalbg.appendTo('body'); - } - - if (/pop/i.test(this.settings.tip_animation)) { - joyridemodalbg.show(); - } else { - joyridemodalbg.fadeIn(this.settings.tip_animation_fade_speed); - } - } - }, - - expose : function () { - var expose, - exposeCover, - el, - origCSS, - origClasses, - randId = 'expose-' + this.random_str(6); - - if (arguments.length > 0 && arguments[0] instanceof $) { - el = arguments[0]; - } else if (this.settings.$target && !/body/i.test(this.settings.$target.selector)) { - el = this.settings.$target; - } else { - return false; - } - - if (el.length < 1) { - if (window.console) { - console.error('element not valid', el); - } - return false; - } - - expose = $(this.settings.template.expose); - this.settings.$body.append(expose); - expose.css({ - top : el.offset().top, - left : el.offset().left, - width : el.outerWidth(true), - height : el.outerHeight(true) - }); - - exposeCover = $(this.settings.template.expose_cover); - - origCSS = { - zIndex : el.css('z-index'), - position : el.css('position') - }; - - origClasses = el.attr('class') == null ? '' : el.attr('class'); - - el.css('z-index', parseInt(expose.css('z-index')) + 1); - - if (origCSS.position == 'static') { - el.css('position', 'relative'); - } - - el.data('expose-css', origCSS); - el.data('orig-class', origClasses); - el.attr('class', origClasses + ' ' + this.settings.expose_add_class); - - exposeCover.css({ - top : el.offset().top, - left : el.offset().left, - width : el.outerWidth(true), - height : el.outerHeight(true) - }); - - if (this.settings.modal) { - this.show_modal(); - } - - this.settings.$body.append(exposeCover); - expose.addClass(randId); - exposeCover.addClass(randId); - el.data('expose', randId); - this.settings.post_expose_callback(this.settings.$li.index(), this.settings.$next_tip, el); - this.add_exposed(el); - }, - - un_expose : function () { - var exposeId, - el, - expose, - origCSS, - origClasses, - clearAll = false; - - if (arguments.length > 0 && arguments[0] instanceof $) { - el = arguments[0]; - } else if (this.settings.$target && !/body/i.test(this.settings.$target.selector)) { - el = this.settings.$target; - } else { - return false; - } - - if (el.length < 1) { - if (window.console) { - console.error('element not valid', el); - } - return false; - } - - exposeId = el.data('expose'); - expose = $('.' + exposeId); - - if (arguments.length > 1) { - clearAll = arguments[1]; - } - - if (clearAll === true) { - $('.joyride-expose-wrapper,.joyride-expose-cover').remove(); - } else { - expose.remove(); - } - - origCSS = el.data('expose-css'); - - if (origCSS.zIndex == 'auto') { - el.css('z-index', ''); - } else { - el.css('z-index', origCSS.zIndex); - } - - if (origCSS.position != el.css('position')) { - if (origCSS.position == 'static') {// this is default, no need to set it. - el.css('position', ''); - } else { - el.css('position', origCSS.position); - } - } - - origClasses = el.data('orig-class'); - el.attr('class', origClasses); - el.removeData('orig-classes'); - - el.removeData('expose'); - el.removeData('expose-z-index'); - this.remove_exposed(el); - }, - - add_exposed : function (el) { - this.settings.exposed = this.settings.exposed || []; - if (el instanceof $ || typeof el === 'object') { - this.settings.exposed.push(el[0]); - } else if (typeof el == 'string') { - this.settings.exposed.push(el); - } - }, - - remove_exposed : function (el) { - var search, i; - if (el instanceof $) { - search = el[0] - } else if (typeof el == 'string') { - search = el; - } - - this.settings.exposed = this.settings.exposed || []; - i = this.settings.exposed.length; - - while (i--) { - if (this.settings.exposed[i] == search) { - this.settings.exposed.splice(i, 1); - return; - } - } - }, - - center : function () { - var $w = $(window); - - this.settings.$next_tip.css({ - top : ((($w.height() - this.settings.$next_tip.outerHeight()) / 2) + $w.scrollTop()), - left : ((($w.width() - this.settings.$next_tip.outerWidth()) / 2) + $w.scrollLeft()) - }); - - return true; - }, - - bottom : function () { - return /bottom/i.test(this.settings.tip_settings.tip_location); - }, - - top : function () { - return /top/i.test(this.settings.tip_settings.tip_location); - }, - - right : function () { - return /right/i.test(this.settings.tip_settings.tip_location); - }, - - left : function () { - return /left/i.test(this.settings.tip_settings.tip_location); - }, - - corners : function (el) { - var w = $(window), - window_half = w.height() / 2, - //using this to calculate since scroll may not have finished yet. - tipOffset = Math.ceil(this.settings.$target.offset().top - window_half + this.settings.$next_tip.outerHeight()), - right = w.width() + w.scrollLeft(), - offsetBottom = w.height() + tipOffset, - bottom = w.height() + w.scrollTop(), - top = w.scrollTop(); - - if (tipOffset < top) { - if (tipOffset < 0) { - top = 0; - } else { - top = tipOffset; - } - } - - if (offsetBottom > bottom) { - bottom = offsetBottom; - } - - return [ - el.offset().top < top, - right < el.offset().left + el.outerWidth(), - bottom < el.offset().top + el.outerHeight(), - w.scrollLeft() > el.offset().left - ]; - }, - - visible : function (hidden_corners) { - var i = hidden_corners.length; - - while (i--) { - if (hidden_corners[i]) { - return false; - } - } - - return true; - }, - - nub_position : function (nub, pos, def) { - if (pos === 'auto') { - nub.addClass(def); - } else { - nub.addClass(pos); - } - }, - - startTimer : function () { - if (this.settings.$li.length) { - this.settings.automate = setTimeout(function () { - this.hide(); - this.show(); - this.startTimer(); - }.bind(this), this.settings.timer); - } else { - clearTimeout(this.settings.automate); - } - }, - - end : function (abort) { - if (this.settings.cookie_monster) { - $.cookie(this.settings.cookie_name, 'ridden', {expires : this.settings.cookie_expires, domain : this.settings.cookie_domain}); - } - - if (this.settings.timer > 0) { - clearTimeout(this.settings.automate); - } - - if (this.settings.modal && this.settings.expose) { - this.un_expose(); - } - - // Unplug keystrokes listener - $(this.scope).off('keyup.joyride') - - this.settings.$next_tip.data('closed', true); - this.settings.riding = false; - - $('.joyride-modal-bg').hide(); - this.settings.$current_tip.hide(); - - if (typeof abort === 'undefined' || abort === false) { - this.settings.post_step_callback(this.settings.$li.index(), this.settings.$current_tip); - this.settings.post_ride_callback(this.settings.$li.index(), this.settings.$current_tip); - } - - $('.joyride-tip-guide').remove(); - }, - - off : function () { - $(this.scope).off('.joyride'); - $(window).off('.joyride'); - $('.joyride-close-tip, .joyride-next-tip, .joyride-modal-bg').off('.joyride'); - $('.joyride-tip-guide, .joyride-modal-bg').remove(); - clearTimeout(this.settings.automate); - this.settings = {}; - }, - - reflow : function () {} - }; -}(jQuery, window, window.document)); diff --git a/public/js/foundation/foundation.js b/public/js/foundation/foundation.js deleted file mode 100644 index 122ddc2..0000000 --- a/public/js/foundation/foundation.js +++ /dev/null @@ -1,725 +0,0 @@ -/* - * Foundation Responsive Library - * http://foundation.zurb.com - * Copyright 2014, ZURB - * Free to use under the MIT license. - * http://www.opensource.org/licenses/mit-license.php -*/ - -(function ($, window, document, undefined) { - 'use strict'; - - var header_helpers = function (class_array) { - var i = class_array.length; - var head = $('head'); - - while (i--) { - if (head.has('.' + class_array[i]).length === 0) { - head.append(''); - } - } - }; - - header_helpers([ - 'foundation-mq-small', - 'foundation-mq-small-only', - 'foundation-mq-medium', - 'foundation-mq-medium-only', - 'foundation-mq-large', - 'foundation-mq-large-only', - 'foundation-mq-xlarge', - 'foundation-mq-xlarge-only', - 'foundation-mq-xxlarge', - 'foundation-data-attribute-namespace']); - - // Enable FastClick if present - - $(function () { - if (typeof FastClick !== 'undefined') { - // Don't attach to body if undefined - if (typeof document.body !== 'undefined') { - FastClick.attach(document.body); - } - } - }); - - // private Fast Selector wrapper, - // returns jQuery object. Only use where - // getElementById is not available. - var S = function (selector, context) { - if (typeof selector === 'string') { - if (context) { - var cont; - if (context.jquery) { - cont = context[0]; - if (!cont) { - return context; - } - } else { - cont = context; - } - return $(cont.querySelectorAll(selector)); - } - - return $(document.querySelectorAll(selector)); - } - - return $(selector, context); - }; - - // Namespace functions. - - var attr_name = function (init) { - var arr = []; - if (!init) { - arr.push('data'); - } - if (this.namespace.length > 0) { - arr.push(this.namespace); - } - arr.push(this.name); - - return arr.join('-'); - }; - - var add_namespace = function (str) { - var parts = str.split('-'), - i = parts.length, - arr = []; - - while (i--) { - if (i !== 0) { - arr.push(parts[i]); - } else { - if (this.namespace.length > 0) { - arr.push(this.namespace, parts[i]); - } else { - arr.push(parts[i]); - } - } - } - - return arr.reverse().join('-'); - }; - - // Event binding and data-options updating. - - var bindings = function (method, options) { - var self = this, - bind = function(){ - var $this = S(this), - should_bind_events = !$this.data(self.attr_name(true) + '-init'); - $this.data(self.attr_name(true) + '-init', $.extend({}, self.settings, (options || method), self.data_options($this))); - - if (should_bind_events) { - self.events(this); - } - }; - - if (S(this.scope).is('[' + this.attr_name() +']')) { - bind.call(this.scope); - } else { - S('[' + this.attr_name() +']', this.scope).each(bind); - } - // # Patch to fix #5043 to move this *after* the if/else clause in order for Backbone and similar frameworks to have improved control over event binding and data-options updating. - if (typeof method === 'string') { - return this[method].call(this, options); - } - - }; - - var single_image_loaded = function (image, callback) { - function loaded () { - callback(image[0]); - } - - function bindLoad () { - this.one('load', loaded); - - if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) { - var src = this.attr( 'src' ), - param = src.match( /\?/ ) ? '&' : '?'; - - param += 'random=' + (new Date()).getTime(); - this.attr('src', src + param); - } - } - - if (!image.attr('src')) { - loaded(); - return; - } - - if (image[0].complete || image[0].readyState === 4) { - loaded(); - } else { - bindLoad.call(image); - } - }; - - /*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. Dual MIT/BSD license */ - - window.matchMedia || (window.matchMedia = function() { - "use strict"; - - // For browsers that support matchMedium api such as IE 9 and webkit - var styleMedia = (window.styleMedia || window.media); - - // For those that don't support matchMedium - if (!styleMedia) { - var style = document.createElement('style'), - script = document.getElementsByTagName('script')[0], - info = null; - - style.type = 'text/css'; - style.id = 'matchmediajs-test'; - - script.parentNode.insertBefore(style, script); - - // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers - info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle; - - styleMedia = { - matchMedium: function(media) { - var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }'; - - // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers - if (style.styleSheet) { - style.styleSheet.cssText = text; - } else { - style.textContent = text; - } - - // Test if media query is true or false - return info.width === '1px'; - } - }; - } - - return function(media) { - return { - matches: styleMedia.matchMedium(media || 'all'), - media: media || 'all' - }; - }; - }()); - - /* - * jquery.requestAnimationFrame - * https://github.com/gnarf37/jquery-requestAnimationFrame - * Requires jQuery 1.8+ - * - * Copyright (c) 2012 Corey Frang - * Licensed under the MIT license. - */ - - (function(jQuery) { - - - // requestAnimationFrame polyfill adapted from Erik Möller - // fixes from Paul Irish and Tino Zijdel - // http://paulirish.com/2011/requestanimationframe-for-smart-animating/ - // http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating - - var animating, - lastTime = 0, - vendors = ['webkit', 'moz'], - requestAnimationFrame = window.requestAnimationFrame, - cancelAnimationFrame = window.cancelAnimationFrame, - jqueryFxAvailable = 'undefined' !== typeof jQuery.fx; - - for (; lastTime < vendors.length && !requestAnimationFrame; lastTime++) { - requestAnimationFrame = window[ vendors[lastTime] + 'RequestAnimationFrame' ]; - cancelAnimationFrame = cancelAnimationFrame || - window[ vendors[lastTime] + 'CancelAnimationFrame' ] || - window[ vendors[lastTime] + 'CancelRequestAnimationFrame' ]; - } - - function raf() { - if (animating) { - requestAnimationFrame(raf); - - if (jqueryFxAvailable) { - jQuery.fx.tick(); - } - } - } - - if (requestAnimationFrame) { - // use rAF - window.requestAnimationFrame = requestAnimationFrame; - window.cancelAnimationFrame = cancelAnimationFrame; - - if (jqueryFxAvailable) { - jQuery.fx.timer = function (timer) { - if (timer() && jQuery.timers.push(timer) && !animating) { - animating = true; - raf(); - } - }; - - jQuery.fx.stop = function () { - animating = false; - }; - } - } else { - // polyfill - window.requestAnimationFrame = function (callback) { - var currTime = new Date().getTime(), - timeToCall = Math.max(0, 16 - (currTime - lastTime)), - id = window.setTimeout(function () { - callback(currTime + timeToCall); - }, timeToCall); - lastTime = currTime + timeToCall; - return id; - }; - - window.cancelAnimationFrame = function (id) { - clearTimeout(id); - }; - - } - - }( $ )); - - function removeQuotes (string) { - if (typeof string === 'string' || string instanceof String) { - string = string.replace(/^['\\/"]+|(;\s?})+|['\\/"]+$/g, ''); - } - - return string; - } - - window.Foundation = { - name : 'Foundation', - - version : '5.5.2', - - media_queries : { - 'small' : S('.foundation-mq-small').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''), - 'small-only' : S('.foundation-mq-small-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''), - 'medium' : S('.foundation-mq-medium').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''), - 'medium-only' : S('.foundation-mq-medium-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''), - 'large' : S('.foundation-mq-large').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''), - 'large-only' : S('.foundation-mq-large-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''), - 'xlarge' : S('.foundation-mq-xlarge').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''), - 'xlarge-only' : S('.foundation-mq-xlarge-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''), - 'xxlarge' : S('.foundation-mq-xxlarge').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, '') - }, - - stylesheet : $('').appendTo('head')[0].sheet, - - global : { - namespace : undefined - }, - - init : function (scope, libraries, method, options, response) { - var args = [scope, method, options, response], - responses = []; - - // check RTL - this.rtl = /rtl/i.test(S('html').attr('dir')); - - // set foundation global scope - this.scope = scope || this.scope; - - this.set_namespace(); - - if (libraries && typeof libraries === 'string' && !/reflow/i.test(libraries)) { - if (this.libs.hasOwnProperty(libraries)) { - responses.push(this.init_lib(libraries, args)); - } - } else { - for (var lib in this.libs) { - responses.push(this.init_lib(lib, libraries)); - } - } - - S(window).load(function () { - S(window) - .trigger('resize.fndtn.clearing') - .trigger('resize.fndtn.dropdown') - .trigger('resize.fndtn.equalizer') - .trigger('resize.fndtn.interchange') - .trigger('resize.fndtn.joyride') - .trigger('resize.fndtn.magellan') - .trigger('resize.fndtn.topbar') - .trigger('resize.fndtn.slider'); - }); - - return scope; - }, - - init_lib : function (lib, args) { - if (this.libs.hasOwnProperty(lib)) { - this.patch(this.libs[lib]); - - if (args && args.hasOwnProperty(lib)) { - if (typeof this.libs[lib].settings !== 'undefined') { - $.extend(true, this.libs[lib].settings, args[lib]); - } else if (typeof this.libs[lib].defaults !== 'undefined') { - $.extend(true, this.libs[lib].defaults, args[lib]); - } - return this.libs[lib].init.apply(this.libs[lib], [this.scope, args[lib]]); - } - - args = args instanceof Array ? args : new Array(args); - return this.libs[lib].init.apply(this.libs[lib], args); - } - - return function () {}; - }, - - patch : function (lib) { - lib.scope = this.scope; - lib.namespace = this.global.namespace; - lib.rtl = this.rtl; - lib['data_options'] = this.utils.data_options; - lib['attr_name'] = attr_name; - lib['add_namespace'] = add_namespace; - lib['bindings'] = bindings; - lib['S'] = this.utils.S; - }, - - inherit : function (scope, methods) { - var methods_arr = methods.split(' '), - i = methods_arr.length; - - while (i--) { - if (this.utils.hasOwnProperty(methods_arr[i])) { - scope[methods_arr[i]] = this.utils[methods_arr[i]]; - } - } - }, - - set_namespace : function () { - - // Description: - // Don't bother reading the namespace out of the meta tag - // if the namespace has been set globally in javascript - // - // Example: - // Foundation.global.namespace = 'my-namespace'; - // or make it an empty string: - // Foundation.global.namespace = ''; - // - // - - // If the namespace has not been set (is undefined), try to read it out of the meta element. - // Otherwise use the globally defined namespace, even if it's empty ('') - var namespace = ( this.global.namespace === undefined ) ? $('.foundation-data-attribute-namespace').css('font-family') : this.global.namespace; - - // Finally, if the namsepace is either undefined or false, set it to an empty string. - // Otherwise use the namespace value. - this.global.namespace = ( namespace === undefined || /false/i.test(namespace) ) ? '' : namespace; - }, - - libs : {}, - - // methods that can be inherited in libraries - utils : { - - // Description: - // Fast Selector wrapper returns jQuery object. Only use where getElementById - // is not available. - // - // Arguments: - // Selector (String): CSS selector describing the element(s) to be - // returned as a jQuery object. - // - // Scope (String): CSS selector describing the area to be searched. Default - // is document. - // - // Returns: - // Element (jQuery Object): jQuery object containing elements matching the - // selector within the scope. - S : S, - - // Description: - // Executes a function a max of once every n milliseconds - // - // Arguments: - // Func (Function): Function to be throttled. - // - // Delay (Integer): Function execution threshold in milliseconds. - // - // Returns: - // Lazy_function (Function): Function with throttling applied. - throttle : function (func, delay) { - var timer = null; - - return function () { - var context = this, args = arguments; - - if (timer == null) { - timer = setTimeout(function () { - func.apply(context, args); - timer = null; - }, delay); - } - }; - }, - - // Description: - // Executes a function when it stops being invoked for n seconds - // Modified version of _.debounce() http://underscorejs.org - // - // Arguments: - // Func (Function): Function to be debounced. - // - // Delay (Integer): Function execution threshold in milliseconds. - // - // Immediate (Bool): Whether the function should be called at the beginning - // of the delay instead of the end. Default is false. - // - // Returns: - // Lazy_function (Function): Function with debouncing applied. - debounce : function (func, delay, immediate) { - var timeout, result; - return function () { - var context = this, args = arguments; - var later = function () { - timeout = null; - if (!immediate) { - result = func.apply(context, args); - } - }; - var callNow = immediate && !timeout; - clearTimeout(timeout); - timeout = setTimeout(later, delay); - if (callNow) { - result = func.apply(context, args); - } - return result; - }; - }, - - // Description: - // Parses data-options attribute - // - // Arguments: - // El (jQuery Object): Element to be parsed. - // - // Returns: - // Options (Javascript Object): Contents of the element's data-options - // attribute. - data_options : function (el, data_attr_name) { - data_attr_name = data_attr_name || 'options'; - var opts = {}, ii, p, opts_arr, - data_options = function (el) { - var namespace = Foundation.global.namespace; - - if (namespace.length > 0) { - return el.data(namespace + '-' + data_attr_name); - } - - return el.data(data_attr_name); - }; - - var cached_options = data_options(el); - - if (typeof cached_options === 'object') { - return cached_options; - } - - opts_arr = (cached_options || ':').split(';'); - ii = opts_arr.length; - - function isNumber (o) { - return !isNaN (o - 0) && o !== null && o !== '' && o !== false && o !== true; - } - - function trim (str) { - if (typeof str === 'string') { - return $.trim(str); - } - return str; - } - - while (ii--) { - p = opts_arr[ii].split(':'); - p = [p[0], p.slice(1).join(':')]; - - if (/true/i.test(p[1])) { - p[1] = true; - } - if (/false/i.test(p[1])) { - p[1] = false; - } - if (isNumber(p[1])) { - if (p[1].indexOf('.') === -1) { - p[1] = parseInt(p[1], 10); - } else { - p[1] = parseFloat(p[1]); - } - } - - if (p.length === 2 && p[0].length > 0) { - opts[trim(p[0])] = trim(p[1]); - } - } - - return opts; - }, - - // Description: - // Adds JS-recognizable media queries - // - // Arguments: - // Media (String): Key string for the media query to be stored as in - // Foundation.media_queries - // - // Class (String): Class name for the generated tag - register_media : function (media, media_class) { - if (Foundation.media_queries[media] === undefined) { - $('head').append(''); - Foundation.media_queries[media] = removeQuotes($('.' + media_class).css('font-family')); - } - }, - - // Description: - // Add custom CSS within a JS-defined media query - // - // Arguments: - // Rule (String): CSS rule to be appended to the document. - // - // Media (String): Optional media query string for the CSS rule to be - // nested under. - add_custom_rule : function (rule, media) { - if (media === undefined && Foundation.stylesheet) { - Foundation.stylesheet.insertRule(rule, Foundation.stylesheet.cssRules.length); - } else { - var query = Foundation.media_queries[media]; - - if (query !== undefined) { - Foundation.stylesheet.insertRule('@media ' + - Foundation.media_queries[media] + '{ ' + rule + ' }', Foundation.stylesheet.cssRules.length); - } - } - }, - - // Description: - // Performs a callback function when an image is fully loaded - // - // Arguments: - // Image (jQuery Object): Image(s) to check if loaded. - // - // Callback (Function): Function to execute when image is fully loaded. - image_loaded : function (images, callback) { - var self = this, - unloaded = images.length; - - function pictures_has_height(images) { - var pictures_number = images.length; - - for (var i = pictures_number - 1; i >= 0; i--) { - if(images.attr('height') === undefined) { - return false; - }; - }; - - return true; - } - - if (unloaded === 0 || pictures_has_height(images)) { - callback(images); - } - - images.each(function () { - single_image_loaded(self.S(this), function () { - unloaded -= 1; - if (unloaded === 0) { - callback(images); - } - }); - }); - }, - - // Description: - // Returns a random, alphanumeric string - // - // Arguments: - // Length (Integer): Length of string to be generated. Defaults to random - // integer. - // - // Returns: - // Rand (String): Pseudo-random, alphanumeric string. - random_str : function () { - if (!this.fidx) { - this.fidx = 0; - } - this.prefix = this.prefix || [(this.name || 'F'), (+new Date).toString(36)].join('-'); - - return this.prefix + (this.fidx++).toString(36); - }, - - // Description: - // Helper for window.matchMedia - // - // Arguments: - // mq (String): Media query - // - // Returns: - // (Boolean): Whether the media query passes or not - match : function (mq) { - return window.matchMedia(mq).matches; - }, - - // Description: - // Helpers for checking Foundation default media queries with JS - // - // Returns: - // (Boolean): Whether the media query passes or not - - is_small_up : function () { - return this.match(Foundation.media_queries.small); - }, - - is_medium_up : function () { - return this.match(Foundation.media_queries.medium); - }, - - is_large_up : function () { - return this.match(Foundation.media_queries.large); - }, - - is_xlarge_up : function () { - return this.match(Foundation.media_queries.xlarge); - }, - - is_xxlarge_up : function () { - return this.match(Foundation.media_queries.xxlarge); - }, - - is_small_only : function () { - return !this.is_medium_up() && !this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up(); - }, - - is_medium_only : function () { - return this.is_medium_up() && !this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up(); - }, - - is_large_only : function () { - return this.is_medium_up() && this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up(); - }, - - is_xlarge_only : function () { - return this.is_medium_up() && this.is_large_up() && this.is_xlarge_up() && !this.is_xxlarge_up(); - }, - - is_xxlarge_only : function () { - return this.is_medium_up() && this.is_large_up() && this.is_xlarge_up() && this.is_xxlarge_up(); - } - } - }; - - $.fn.foundation = function () { - var args = Array.prototype.slice.call(arguments, 0); - - return this.each(function () { - Foundation.init.apply(Foundation, [this].concat(args)); - return this; - }); - }; - -}(jQuery, window, window.document)); diff --git a/public/js/foundation/foundation.magellan.js b/public/js/foundation/foundation.magellan.js deleted file mode 100644 index 614923a..0000000 --- a/public/js/foundation/foundation.magellan.js +++ /dev/null @@ -1,215 +0,0 @@ -;(function ($, window, document, undefined) { - 'use strict'; - - Foundation.libs['magellan-expedition'] = { - name : 'magellan-expedition', - - version : '5.5.2', - - settings : { - active_class : 'active', - threshold : 0, // pixels from the top of the expedition for it to become fixes - destination_threshold : 20, // pixels from the top of destination for it to be considered active - throttle_delay : 30, // calculation throttling to increase framerate - fixed_top : 0, // top distance in pixels assigend to the fixed element on scroll - offset_by_height : true, // whether to offset the destination by the expedition height. Usually you want this to be true, unless your expedition is on the side. - duration : 700, // animation duration time - easing : 'swing' // animation easing - }, - - init : function (scope, method, options) { - Foundation.inherit(this, 'throttle'); - this.bindings(method, options); - }, - - events : function () { - var self = this, - S = self.S, - settings = self.settings; - - // initialize expedition offset - self.set_expedition_position(); - - S(self.scope) - .off('.magellan') - .on('click.fndtn.magellan', '[' + self.add_namespace('data-magellan-arrival') + '] a[href*=#]', function (e) { - var sameHost = ((this.hostname === location.hostname) || !this.hostname), - samePath = self.filterPathname(location.pathname) === self.filterPathname(this.pathname), - testHash = this.hash.replace(/(:|\.|\/)/g, '\\$1'), - anchor = this; - - if (sameHost && samePath && testHash) { - e.preventDefault(); - var expedition = $(this).closest('[' + self.attr_name() + ']'), - settings = expedition.data('magellan-expedition-init'), - hash = this.hash.split('#').join(''), - target = $('a[name="' + hash + '"]'); - - if (target.length === 0) { - target = $('#' + hash); - - } - - // Account for expedition height if fixed position - var scroll_top = target.offset().top - settings.destination_threshold + 1; - if (settings.offset_by_height) { - scroll_top = scroll_top - expedition.outerHeight(); - } - $('html, body').stop().animate({ - 'scrollTop' : scroll_top - }, settings.duration, settings.easing, function () { - if (history.pushState) { - history.pushState(null, null, anchor.pathname + '#' + hash); - } - else { - location.hash = anchor.pathname + '#' + hash; - } - }); - } - }) - .on('scroll.fndtn.magellan', self.throttle(this.check_for_arrivals.bind(this), settings.throttle_delay)); - }, - - check_for_arrivals : function () { - var self = this; - self.update_arrivals(); - self.update_expedition_positions(); - }, - - set_expedition_position : function () { - var self = this; - $('[' + this.attr_name() + '=fixed]', self.scope).each(function (idx, el) { - var expedition = $(this), - settings = expedition.data('magellan-expedition-init'), - styles = expedition.attr('styles'), // save styles - top_offset, fixed_top; - - expedition.attr('style', ''); - top_offset = expedition.offset().top + settings.threshold; - - //set fixed-top by attribute - fixed_top = parseInt(expedition.data('magellan-fixed-top')); - if (!isNaN(fixed_top)) { - self.settings.fixed_top = fixed_top; - } - - expedition.data(self.data_attr('magellan-top-offset'), top_offset); - expedition.attr('style', styles); - }); - }, - - update_expedition_positions : function () { - var self = this, - window_top_offset = $(window).scrollTop(); - - $('[' + this.attr_name() + '=fixed]', self.scope).each(function () { - var expedition = $(this), - settings = expedition.data('magellan-expedition-init'), - styles = expedition.attr('style'), // save styles - top_offset = expedition.data('magellan-top-offset'); - - //scroll to the top distance - if (window_top_offset + self.settings.fixed_top >= top_offset) { - // Placeholder allows height calculations to be consistent even when - // appearing to switch between fixed/non-fixed placement - var placeholder = expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']'); - if (placeholder.length === 0) { - placeholder = expedition.clone(); - placeholder.removeAttr(self.attr_name()); - placeholder.attr(self.add_namespace('data-magellan-expedition-clone'), ''); - expedition.before(placeholder); - } - expedition.css({position :'fixed', top : settings.fixed_top}).addClass('fixed'); - } else { - expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']').remove(); - expedition.attr('style', styles).css('position', '').css('top', '').removeClass('fixed'); - } - }); - }, - - update_arrivals : function () { - var self = this, - window_top_offset = $(window).scrollTop(); - - $('[' + this.attr_name() + ']', self.scope).each(function () { - var expedition = $(this), - settings = expedition.data(self.attr_name(true) + '-init'), - offsets = self.offsets(expedition, window_top_offset), - arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']'), - active_item = false; - offsets.each(function (idx, item) { - if (item.viewport_offset >= item.top_offset) { - var arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']'); - arrivals.not(item.arrival).removeClass(settings.active_class); - item.arrival.addClass(settings.active_class); - active_item = true; - return true; - } - }); - - if (!active_item) { - arrivals.removeClass(settings.active_class); - } - }); - }, - - offsets : function (expedition, window_offset) { - var self = this, - settings = expedition.data(self.attr_name(true) + '-init'), - viewport_offset = window_offset; - - return expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']').map(function (idx, el) { - var name = $(this).data(self.data_attr('magellan-arrival')), - dest = $('[' + self.add_namespace('data-magellan-destination') + '=' + name + ']'); - if (dest.length > 0) { - var top_offset = dest.offset().top - settings.destination_threshold; - if (settings.offset_by_height) { - top_offset = top_offset - expedition.outerHeight(); - } - top_offset = Math.floor(top_offset); - return { - destination : dest, - arrival : $(this), - top_offset : top_offset, - viewport_offset : viewport_offset - } - } - }).sort(function (a, b) { - if (a.top_offset < b.top_offset) { - return -1; - } - if (a.top_offset > b.top_offset) { - return 1; - } - return 0; - }); - }, - - data_attr : function (str) { - if (this.namespace.length > 0) { - return this.namespace + '-' + str; - } - - return str; - }, - - off : function () { - this.S(this.scope).off('.magellan'); - this.S(window).off('.magellan'); - }, - - filterPathname : function (pathname) { - pathname = pathname || ''; - return pathname - .replace(/^\//,'') - .replace(/(?:index|default).[a-zA-Z]{3,4}$/,'') - .replace(/\/$/,''); - }, - - reflow : function () { - var self = this; - // remove placeholder expeditions used for height calculation purposes - $('[' + self.add_namespace('data-magellan-expedition-clone') + ']', self.scope).remove(); - } - }; -}(jQuery, window, window.document)); diff --git a/public/js/foundation/foundation.offcanvas.js b/public/js/foundation/foundation.offcanvas.js deleted file mode 100644 index e73faaf..0000000 --- a/public/js/foundation/foundation.offcanvas.js +++ /dev/null @@ -1,152 +0,0 @@ -;(function ($, window, document, undefined) { - 'use strict'; - - Foundation.libs.offcanvas = { - name : 'offcanvas', - - version : '5.5.2', - - settings : { - open_method : 'move', - close_on_click : false - }, - - init : function (scope, method, options) { - this.bindings(method, options); - }, - - events : function () { - var self = this, - S = self.S, - move_class = '', - right_postfix = '', - left_postfix = ''; - - if (this.settings.open_method === 'move') { - move_class = 'move-'; - right_postfix = 'right'; - left_postfix = 'left'; - } else if (this.settings.open_method === 'overlap_single') { - move_class = 'offcanvas-overlap-'; - right_postfix = 'right'; - left_postfix = 'left'; - } else if (this.settings.open_method === 'overlap') { - move_class = 'offcanvas-overlap'; - } - - S(this.scope).off('.offcanvas') - .on('click.fndtn.offcanvas', '.left-off-canvas-toggle', function (e) { - self.click_toggle_class(e, move_class + right_postfix); - if (self.settings.open_method !== 'overlap') { - S('.left-submenu').removeClass(move_class + right_postfix); - } - $('.left-off-canvas-toggle').attr('aria-expanded', 'true'); - }) - .on('click.fndtn.offcanvas', '.left-off-canvas-menu a', function (e) { - var settings = self.get_settings(e); - var parent = S(this).parent(); - - if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) { - self.hide.call(self, move_class + right_postfix, self.get_wrapper(e)); - parent.parent().removeClass(move_class + right_postfix); - } else if (S(this).parent().hasClass('has-submenu')) { - e.preventDefault(); - S(this).siblings('.left-submenu').toggleClass(move_class + right_postfix); - } else if (parent.hasClass('back')) { - e.preventDefault(); - parent.parent().removeClass(move_class + right_postfix); - } - $('.left-off-canvas-toggle').attr('aria-expanded', 'true'); - }) - .on('click.fndtn.offcanvas', '.right-off-canvas-toggle', function (e) { - self.click_toggle_class(e, move_class + left_postfix); - if (self.settings.open_method !== 'overlap') { - S('.right-submenu').removeClass(move_class + left_postfix); - } - $('.right-off-canvas-toggle').attr('aria-expanded', 'true'); - }) - .on('click.fndtn.offcanvas', '.right-off-canvas-menu a', function (e) { - var settings = self.get_settings(e); - var parent = S(this).parent(); - - if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) { - self.hide.call(self, move_class + left_postfix, self.get_wrapper(e)); - parent.parent().removeClass(move_class + left_postfix); - } else if (S(this).parent().hasClass('has-submenu')) { - e.preventDefault(); - S(this).siblings('.right-submenu').toggleClass(move_class + left_postfix); - } else if (parent.hasClass('back')) { - e.preventDefault(); - parent.parent().removeClass(move_class + left_postfix); - } - $('.right-off-canvas-toggle').attr('aria-expanded', 'true'); - }) - .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) { - self.click_remove_class(e, move_class + left_postfix); - S('.right-submenu').removeClass(move_class + left_postfix); - if (right_postfix) { - self.click_remove_class(e, move_class + right_postfix); - S('.left-submenu').removeClass(move_class + left_postfix); - } - $('.right-off-canvas-toggle').attr('aria-expanded', 'true'); - }) - .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) { - self.click_remove_class(e, move_class + left_postfix); - $('.left-off-canvas-toggle').attr('aria-expanded', 'false'); - if (right_postfix) { - self.click_remove_class(e, move_class + right_postfix); - $('.right-off-canvas-toggle').attr('aria-expanded', 'false'); - } - }); - }, - - toggle : function (class_name, $off_canvas) { - $off_canvas = $off_canvas || this.get_wrapper(); - if ($off_canvas.is('.' + class_name)) { - this.hide(class_name, $off_canvas); - } else { - this.show(class_name, $off_canvas); - } - }, - - show : function (class_name, $off_canvas) { - $off_canvas = $off_canvas || this.get_wrapper(); - $off_canvas.trigger('open.fndtn.offcanvas'); - $off_canvas.addClass(class_name); - }, - - hide : function (class_name, $off_canvas) { - $off_canvas = $off_canvas || this.get_wrapper(); - $off_canvas.trigger('close.fndtn.offcanvas'); - $off_canvas.removeClass(class_name); - }, - - click_toggle_class : function (e, class_name) { - e.preventDefault(); - var $off_canvas = this.get_wrapper(e); - this.toggle(class_name, $off_canvas); - }, - - click_remove_class : function (e, class_name) { - e.preventDefault(); - var $off_canvas = this.get_wrapper(e); - this.hide(class_name, $off_canvas); - }, - - get_settings : function (e) { - var offcanvas = this.S(e.target).closest('[' + this.attr_name() + ']'); - return offcanvas.data(this.attr_name(true) + '-init') || this.settings; - }, - - get_wrapper : function (e) { - var $off_canvas = this.S(e ? e.target : this.scope).closest('.off-canvas-wrap'); - - if ($off_canvas.length === 0) { - $off_canvas = this.S('.off-canvas-wrap'); - } - return $off_canvas; - }, - - reflow : function () {} - }; -}(jQuery, window, window.document)); diff --git a/public/js/foundation/foundation.orbit.js b/public/js/foundation/foundation.orbit.js deleted file mode 100644 index 51e2a04..0000000 --- a/public/js/foundation/foundation.orbit.js +++ /dev/null @@ -1,476 +0,0 @@ -;(function ($, window, document, undefined) { - 'use strict'; - - var noop = function () {}; - - var Orbit = function (el, settings) { - // Don't reinitialize plugin - if (el.hasClass(settings.slides_container_class)) { - return this; - } - - var self = this, - container, - slides_container = el, - number_container, - bullets_container, - timer_container, - idx = 0, - animate, - timer, - locked = false, - adjust_height_after = false; - - self.slides = function () { - return slides_container.children(settings.slide_selector); - }; - - self.slides().first().addClass(settings.active_slide_class); - - self.update_slide_number = function (index) { - if (settings.slide_number) { - number_container.find('span:first').text(parseInt(index) + 1); - number_container.find('span:last').text(self.slides().length); - } - if (settings.bullets) { - bullets_container.children().removeClass(settings.bullets_active_class); - $(bullets_container.children().get(index)).addClass(settings.bullets_active_class); - } - }; - - self.update_active_link = function (index) { - var link = $('[data-orbit-link="' + self.slides().eq(index).attr('data-orbit-slide') + '"]'); - link.siblings().removeClass(settings.bullets_active_class); - link.addClass(settings.bullets_active_class); - }; - - self.build_markup = function () { - slides_container.wrap('
'); - container = slides_container.parent(); - slides_container.addClass(settings.slides_container_class); - - if (settings.stack_on_small) { - container.addClass(settings.stack_on_small_class); - } - - if (settings.navigation_arrows) { - container.append($('').addClass(settings.prev_class)); - container.append($('').addClass(settings.next_class)); - } - - if (settings.timer) { - timer_container = $('
').addClass(settings.timer_container_class); - timer_container.append(''); - timer_container.append($('
').addClass(settings.timer_progress_class)); - timer_container.addClass(settings.timer_paused_class); - container.append(timer_container); - } - - if (settings.slide_number) { - number_container = $('
').addClass(settings.slide_number_class); - number_container.append(' ' + settings.slide_number_text + ' '); - container.append(number_container); - } - - if (settings.bullets) { - bullets_container = $('
    ').addClass(settings.bullets_container_class); - container.append(bullets_container); - bullets_container.wrap('
    '); - self.slides().each(function (idx, el) { - var bullet = $('
  1. ').attr('data-orbit-slide', idx).on('click', self.link_bullet);; - bullets_container.append(bullet); - }); - } - - }; - - self._goto = function (next_idx, start_timer) { - // if (locked) {return false;} - if (next_idx === idx) {return false;} - if (typeof timer === 'object') {timer.restart();} - var slides = self.slides(); - - var dir = 'next'; - locked = true; - if (next_idx < idx) {dir = 'prev';} - if (next_idx >= slides.length) { - if (!settings.circular) { - return false; - } - next_idx = 0; - } else if (next_idx < 0) { - if (!settings.circular) { - return false; - } - next_idx = slides.length - 1; - } - - var current = $(slides.get(idx)); - var next = $(slides.get(next_idx)); - - current.css('zIndex', 2); - current.removeClass(settings.active_slide_class); - next.css('zIndex', 4).addClass(settings.active_slide_class); - - slides_container.trigger('before-slide-change.fndtn.orbit'); - settings.before_slide_change(); - self.update_active_link(next_idx); - - var callback = function () { - var unlock = function () { - idx = next_idx; - locked = false; - if (start_timer === true) {timer = self.create_timer(); timer.start();} - self.update_slide_number(idx); - slides_container.trigger('after-slide-change.fndtn.orbit', [{slide_number : idx, total_slides : slides.length}]); - settings.after_slide_change(idx, slides.length); - }; - if (slides_container.outerHeight() != next.outerHeight() && settings.variable_height) { - slides_container.animate({'height': next.outerHeight()}, 250, 'linear', unlock); - } else { - unlock(); - } - }; - - if (slides.length === 1) {callback(); return false;} - - var start_animation = function () { - if (dir === 'next') {animate.next(current, next, callback);} - if (dir === 'prev') {animate.prev(current, next, callback);} - }; - - if (next.outerHeight() > slides_container.outerHeight() && settings.variable_height) { - slides_container.animate({'height': next.outerHeight()}, 250, 'linear', start_animation); - } else { - start_animation(); - } - }; - - self.next = function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - self._goto(idx + 1); - }; - - self.prev = function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - self._goto(idx - 1); - }; - - self.link_custom = function (e) { - e.preventDefault(); - var link = $(this).attr('data-orbit-link'); - if ((typeof link === 'string') && (link = $.trim(link)) != '') { - var slide = container.find('[data-orbit-slide=' + link + ']'); - if (slide.index() != -1) {self._goto(slide.index());} - } - }; - - self.link_bullet = function (e) { - var index = $(this).attr('data-orbit-slide'); - if ((typeof index === 'string') && (index = $.trim(index)) != '') { - if (isNaN(parseInt(index))) { - var slide = container.find('[data-orbit-slide=' + index + ']'); - if (slide.index() != -1) {self._goto(slide.index() + 1);} - } else { - self._goto(parseInt(index)); - } - } - - } - - self.timer_callback = function () { - self._goto(idx + 1, true); - } - - self.compute_dimensions = function () { - var current = $(self.slides().get(idx)); - var h = current.outerHeight(); - if (!settings.variable_height) { - self.slides().each(function(){ - if ($(this).outerHeight() > h) { h = $(this).outerHeight(); } - }); - } - slides_container.height(h); - }; - - self.create_timer = function () { - var t = new Timer( - container.find('.' + settings.timer_container_class), - settings, - self.timer_callback - ); - return t; - }; - - self.stop_timer = function () { - if (typeof timer === 'object') { - timer.stop(); - } - }; - - self.toggle_timer = function () { - var t = container.find('.' + settings.timer_container_class); - if (t.hasClass(settings.timer_paused_class)) { - if (typeof timer === 'undefined') {timer = self.create_timer();} - timer.start(); - } else { - if (typeof timer === 'object') {timer.stop();} - } - }; - - self.init = function () { - self.build_markup(); - if (settings.timer) { - timer = self.create_timer(); - Foundation.utils.image_loaded(this.slides().children('img'), timer.start); - } - animate = new FadeAnimation(settings, slides_container); - if (settings.animation === 'slide') { - animate = new SlideAnimation(settings, slides_container); - } - - container.on('click', '.' + settings.next_class, self.next); - container.on('click', '.' + settings.prev_class, self.prev); - - if (settings.next_on_click) { - container.on('click', '.' + settings.slides_container_class + ' [data-orbit-slide]', self.link_bullet); - } - - container.on('click', self.toggle_timer); - if (settings.swipe) { - container.on('touchstart.fndtn.orbit', function (e) { - if (!e.touches) {e = e.originalEvent;} - var data = { - start_page_x : e.touches[0].pageX, - start_page_y : e.touches[0].pageY, - start_time : (new Date()).getTime(), - delta_x : 0, - is_scrolling : undefined - }; - container.data('swipe-transition', data); - e.stopPropagation(); - }) - .on('touchmove.fndtn.orbit', function (e) { - if (!e.touches) { - e = e.originalEvent; - } - // Ignore pinch/zoom events - if (e.touches.length > 1 || e.scale && e.scale !== 1) { - return; - } - - var data = container.data('swipe-transition'); - if (typeof data === 'undefined') {data = {};} - - data.delta_x = e.touches[0].pageX - data.start_page_x; - - if ( typeof data.is_scrolling === 'undefined') { - data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) ); - } - - if (!data.is_scrolling && !data.active) { - e.preventDefault(); - var direction = (data.delta_x < 0) ? (idx + 1) : (idx - 1); - data.active = true; - self._goto(direction); - } - }) - .on('touchend.fndtn.orbit', function (e) { - container.data('swipe-transition', {}); - e.stopPropagation(); - }) - } - container.on('mouseenter.fndtn.orbit', function (e) { - if (settings.timer && settings.pause_on_hover) { - self.stop_timer(); - } - }) - .on('mouseleave.fndtn.orbit', function (e) { - if (settings.timer && settings.resume_on_mouseout) { - timer.start(); - } - }); - - $(document).on('click', '[data-orbit-link]', self.link_custom); - $(window).on('load resize', self.compute_dimensions); - Foundation.utils.image_loaded(this.slides().children('img'), self.compute_dimensions); - Foundation.utils.image_loaded(this.slides().children('img'), function () { - container.prev('.' + settings.preloader_class).css('display', 'none'); - self.update_slide_number(0); - self.update_active_link(0); - slides_container.trigger('ready.fndtn.orbit'); - }); - }; - - self.init(); - }; - - var Timer = function (el, settings, callback) { - var self = this, - duration = settings.timer_speed, - progress = el.find('.' + settings.timer_progress_class), - start, - timeout, - left = -1; - - this.update_progress = function (w) { - var new_progress = progress.clone(); - new_progress.attr('style', ''); - new_progress.css('width', w + '%'); - progress.replaceWith(new_progress); - progress = new_progress; - }; - - this.restart = function () { - clearTimeout(timeout); - el.addClass(settings.timer_paused_class); - left = -1; - self.update_progress(0); - }; - - this.start = function () { - if (!el.hasClass(settings.timer_paused_class)) {return true;} - left = (left === -1) ? duration : left; - el.removeClass(settings.timer_paused_class); - start = new Date().getTime(); - progress.animate({'width' : '100%'}, left, 'linear'); - timeout = setTimeout(function () { - self.restart(); - callback(); - }, left); - el.trigger('timer-started.fndtn.orbit') - }; - - this.stop = function () { - if (el.hasClass(settings.timer_paused_class)) {return true;} - clearTimeout(timeout); - el.addClass(settings.timer_paused_class); - var end = new Date().getTime(); - left = left - (end - start); - var w = 100 - ((left / duration) * 100); - self.update_progress(w); - el.trigger('timer-stopped.fndtn.orbit'); - }; - }; - - var SlideAnimation = function (settings, container) { - var duration = settings.animation_speed; - var is_rtl = ($('html[dir=rtl]').length === 1); - var margin = is_rtl ? 'marginRight' : 'marginLeft'; - var animMargin = {}; - animMargin[margin] = '0%'; - - this.next = function (current, next, callback) { - current.animate({marginLeft : '-100%'}, duration); - next.animate(animMargin, duration, function () { - current.css(margin, '100%'); - callback(); - }); - }; - - this.prev = function (current, prev, callback) { - current.animate({marginLeft : '100%'}, duration); - prev.css(margin, '-100%'); - prev.animate(animMargin, duration, function () { - current.css(margin, '100%'); - callback(); - }); - }; - }; - - var FadeAnimation = function (settings, container) { - var duration = settings.animation_speed; - var is_rtl = ($('html[dir=rtl]').length === 1); - var margin = is_rtl ? 'marginRight' : 'marginLeft'; - - this.next = function (current, next, callback) { - next.css({'margin' : '0%', 'opacity' : '0.01'}); - next.animate({'opacity' :'1'}, duration, 'linear', function () { - current.css('margin', '100%'); - callback(); - }); - }; - - this.prev = function (current, prev, callback) { - prev.css({'margin' : '0%', 'opacity' : '0.01'}); - prev.animate({'opacity' : '1'}, duration, 'linear', function () { - current.css('margin', '100%'); - callback(); - }); - }; - }; - - Foundation.libs = Foundation.libs || {}; - - Foundation.libs.orbit = { - name : 'orbit', - - version : '5.5.2', - - settings : { - animation : 'slide', - timer_speed : 10000, - pause_on_hover : true, - resume_on_mouseout : false, - next_on_click : true, - animation_speed : 500, - stack_on_small : false, - navigation_arrows : true, - slide_number : true, - slide_number_text : 'of', - container_class : 'orbit-container', - stack_on_small_class : 'orbit-stack-on-small', - next_class : 'orbit-next', - prev_class : 'orbit-prev', - timer_container_class : 'orbit-timer', - timer_paused_class : 'paused', - timer_progress_class : 'orbit-progress', - slides_container_class : 'orbit-slides-container', - preloader_class : 'preloader', - slide_selector : '*', - bullets_container_class : 'orbit-bullets', - bullets_active_class : 'active', - slide_number_class : 'orbit-slide-number', - caption_class : 'orbit-caption', - active_slide_class : 'active', - orbit_transition_class : 'orbit-transitioning', - bullets : true, - circular : true, - timer : true, - variable_height : false, - swipe : true, - before_slide_change : noop, - after_slide_change : noop - }, - - init : function (scope, method, options) { - var self = this; - this.bindings(method, options); - }, - - events : function (instance) { - var orbit_instance = new Orbit(this.S(instance), this.S(instance).data('orbit-init')); - this.S(instance).data(this.name + '-instance', orbit_instance); - }, - - reflow : function () { - var self = this; - - if (self.S(self.scope).is('[data-orbit]')) { - var $el = self.S(self.scope); - var instance = $el.data(self.name + '-instance'); - instance.compute_dimensions(); - } else { - self.S('[data-orbit]', self.scope).each(function (idx, el) { - var $el = self.S(el); - var opts = self.data_options($el); - var instance = $el.data(self.name + '-instance'); - instance.compute_dimensions(); - }); - } - } - }; - -}(jQuery, window, window.document)); diff --git a/public/js/foundation/foundation.reveal.js b/public/js/foundation/foundation.reveal.js deleted file mode 100644 index f049f80..0000000 --- a/public/js/foundation/foundation.reveal.js +++ /dev/null @@ -1,498 +0,0 @@ -;(function ($, window, document, undefined) { - 'use strict'; - - Foundation.libs.reveal = { - name : 'reveal', - - version : '5.5.2', - - locked : false, - - settings : { - animation : 'fadeAndPop', - animation_speed : 250, - close_on_background_click : true, - close_on_esc : true, - dismiss_modal_class : 'close-reveal-modal', - multiple_opened : false, - bg_class : 'reveal-modal-bg', - root_element : 'body', - open : function(){}, - opened : function(){}, - close : function(){}, - closed : function(){}, - on_ajax_error: $.noop, - bg : $('.reveal-modal-bg'), - css : { - open : { - 'opacity' : 0, - 'visibility' : 'visible', - 'display' : 'block' - }, - close : { - 'opacity' : 1, - 'visibility' : 'hidden', - 'display' : 'none' - } - } - }, - - init : function (scope, method, options) { - $.extend(true, this.settings, method, options); - this.bindings(method, options); - }, - - events : function (scope) { - var self = this, - S = self.S; - - S(this.scope) - .off('.reveal') - .on('click.fndtn.reveal', '[' + this.add_namespace('data-reveal-id') + ']:not([disabled])', function (e) { - e.preventDefault(); - - if (!self.locked) { - var element = S(this), - ajax = element.data(self.data_attr('reveal-ajax')), - replaceContentSel = element.data(self.data_attr('reveal-replace-content')); - - self.locked = true; - - if (typeof ajax === 'undefined') { - self.open.call(self, element); - } else { - var url = ajax === true ? element.attr('href') : ajax; - self.open.call(self, element, {url : url}, { replaceContentSel : replaceContentSel }); - } - } - }); - - S(document) - .on('click.fndtn.reveal', this.close_targets(), function (e) { - e.preventDefault(); - if (!self.locked) { - var settings = S('[' + self.attr_name() + '].open').data(self.attr_name(true) + '-init') || self.settings, - bg_clicked = S(e.target)[0] === S('.' + settings.bg_class)[0]; - - if (bg_clicked) { - if (settings.close_on_background_click) { - e.stopPropagation(); - } else { - return; - } - } - - self.locked = true; - self.close.call(self, bg_clicked ? S('[' + self.attr_name() + '].open:not(.toback)') : S(this).closest('[' + self.attr_name() + ']')); - } - }); - - if (S('[' + self.attr_name() + ']', this.scope).length > 0) { - S(this.scope) - // .off('.reveal') - .on('open.fndtn.reveal', this.settings.open) - .on('opened.fndtn.reveal', this.settings.opened) - .on('opened.fndtn.reveal', this.open_video) - .on('close.fndtn.reveal', this.settings.close) - .on('closed.fndtn.reveal', this.settings.closed) - .on('closed.fndtn.reveal', this.close_video); - } else { - S(this.scope) - // .off('.reveal') - .on('open.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.open) - .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.opened) - .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.open_video) - .on('close.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.close) - .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.closed) - .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.close_video); - } - - return true; - }, - - // PATCH #3: turning on key up capture only when a reveal window is open - key_up_on : function (scope) { - var self = this; - - // PATCH #1: fixing multiple keyup event trigger from single key press - self.S('body').off('keyup.fndtn.reveal').on('keyup.fndtn.reveal', function ( event ) { - var open_modal = self.S('[' + self.attr_name() + '].open'), - settings = open_modal.data(self.attr_name(true) + '-init') || self.settings ; - // PATCH #2: making sure that the close event can be called only while unlocked, - // so that multiple keyup.fndtn.reveal events don't prevent clean closing of the reveal window. - if ( settings && event.which === 27 && settings.close_on_esc && !self.locked) { // 27 is the keycode for the Escape key - self.close.call(self, open_modal); - } - }); - - return true; - }, - - // PATCH #3: turning on key up capture only when a reveal window is open - key_up_off : function (scope) { - this.S('body').off('keyup.fndtn.reveal'); - return true; - }, - - open : function (target, ajax_settings) { - var self = this, - modal; - - if (target) { - if (typeof target.selector !== 'undefined') { - // Find the named node; only use the first one found, since the rest of the code assumes there's only one node - modal = self.S('#' + target.data(self.data_attr('reveal-id'))).first(); - } else { - modal = self.S(this.scope); - - ajax_settings = target; - } - } else { - modal = self.S(this.scope); - } - - var settings = modal.data(self.attr_name(true) + '-init'); - settings = settings || this.settings; - - - if (modal.hasClass('open') && target.attr('data-reveal-id') == modal.attr('id')) { - return self.close(modal); - } - - if (!modal.hasClass('open')) { - var open_modal = self.S('[' + self.attr_name() + '].open'); - - if (typeof modal.data('css-top') === 'undefined') { - modal.data('css-top', parseInt(modal.css('top'), 10)) - .data('offset', this.cache_offset(modal)); - } - - modal.attr('tabindex','0').attr('aria-hidden','false'); - - this.key_up_on(modal); // PATCH #3: turning on key up capture only when a reveal window is open - - // Prevent namespace event from triggering twice - modal.on('open.fndtn.reveal', function(e) { - if (e.namespace !== 'fndtn.reveal') return; - }); - - modal.on('open.fndtn.reveal').trigger('open.fndtn.reveal'); - - if (open_modal.length < 1) { - this.toggle_bg(modal, true); - } - - if (typeof ajax_settings === 'string') { - ajax_settings = { - url : ajax_settings - }; - } - - if (typeof ajax_settings === 'undefined' || !ajax_settings.url) { - if (open_modal.length > 0) { - if (settings.multiple_opened) { - self.to_back(open_modal); - } else { - self.hide(open_modal, settings.css.close); - } - } - - this.show(modal, settings.css.open); - } else { - var old_success = typeof ajax_settings.success !== 'undefined' ? ajax_settings.success : null; - $.extend(ajax_settings, { - success : function (data, textStatus, jqXHR) { - if ( $.isFunction(old_success) ) { - var result = old_success(data, textStatus, jqXHR); - if (typeof result == 'string') { - data = result; - } - } - - if (typeof options !== 'undefined' && typeof options.replaceContentSel !== 'undefined') { - modal.find(options.replaceContentSel).html(data); - } else { - modal.html(data); - } - - self.S(modal).foundation('section', 'reflow'); - self.S(modal).children().foundation(); - - if (open_modal.length > 0) { - if (settings.multiple_opened) { - self.to_back(open_modal); - } else { - self.hide(open_modal, settings.css.close); - } - } - self.show(modal, settings.css.open); - } - }); - - // check for if user initalized with error callback - if (settings.on_ajax_error !== $.noop) { - $.extend(ajax_settings, { - error : settings.on_ajax_error - }); - } - - $.ajax(ajax_settings); - } - } - self.S(window).trigger('resize'); - }, - - close : function (modal) { - var modal = modal && modal.length ? modal : this.S(this.scope), - open_modals = this.S('[' + this.attr_name() + '].open'), - settings = modal.data(this.attr_name(true) + '-init') || this.settings, - self = this; - - if (open_modals.length > 0) { - - modal.removeAttr('tabindex','0').attr('aria-hidden','true'); - - this.locked = true; - this.key_up_off(modal); // PATCH #3: turning on key up capture only when a reveal window is open - - modal.trigger('close.fndtn.reveal'); - - if ((settings.multiple_opened && open_modals.length === 1) || !settings.multiple_opened || modal.length > 1) { - self.toggle_bg(modal, false); - self.to_front(modal); - } - - if (settings.multiple_opened) { - self.hide(modal, settings.css.close, settings); - self.to_front($($.makeArray(open_modals).reverse()[1])); - } else { - self.hide(open_modals, settings.css.close, settings); - } - } - }, - - close_targets : function () { - var base = '.' + this.settings.dismiss_modal_class; - - if (this.settings.close_on_background_click) { - return base + ', .' + this.settings.bg_class; - } - - return base; - }, - - toggle_bg : function (modal, state) { - if (this.S('.' + this.settings.bg_class).length === 0) { - this.settings.bg = $('
    ', {'class': this.settings.bg_class}) - .appendTo('body').hide(); - } - - var visible = this.settings.bg.filter(':visible').length > 0; - if ( state != visible ) { - if ( state == undefined ? visible : !state ) { - this.hide(this.settings.bg); - } else { - this.show(this.settings.bg); - } - } - }, - - show : function (el, css) { - // is modal - if (css) { - var settings = el.data(this.attr_name(true) + '-init') || this.settings, - root_element = settings.root_element, - context = this; - - if (el.parent(root_element).length === 0) { - var placeholder = el.wrap('
    ').parent(); - - el.on('closed.fndtn.reveal.wrapped', function () { - el.detach().appendTo(placeholder); - el.unwrap().unbind('closed.fndtn.reveal.wrapped'); - }); - - el.detach().appendTo(root_element); - } - - var animData = getAnimationData(settings.animation); - if (!animData.animate) { - this.locked = false; - } - if (animData.pop) { - css.top = $(window).scrollTop() - el.data('offset') + 'px'; - var end_css = { - top: $(window).scrollTop() + el.data('css-top') + 'px', - opacity: 1 - }; - - return setTimeout(function () { - return el - .css(css) - .animate(end_css, settings.animation_speed, 'linear', function () { - context.locked = false; - el.trigger('opened.fndtn.reveal'); - }) - .addClass('open'); - }, settings.animation_speed / 2); - } - - if (animData.fade) { - css.top = $(window).scrollTop() + el.data('css-top') + 'px'; - var end_css = {opacity: 1}; - - return setTimeout(function () { - return el - .css(css) - .animate(end_css, settings.animation_speed, 'linear', function () { - context.locked = false; - el.trigger('opened.fndtn.reveal'); - }) - .addClass('open'); - }, settings.animation_speed / 2); - } - - return el.css(css).show().css({opacity : 1}).addClass('open').trigger('opened.fndtn.reveal'); - } - - var settings = this.settings; - - // should we animate the background? - if (getAnimationData(settings.animation).fade) { - return el.fadeIn(settings.animation_speed / 2); - } - - this.locked = false; - - return el.show(); - }, - - to_back : function(el) { - el.addClass('toback'); - }, - - to_front : function(el) { - el.removeClass('toback'); - }, - - hide : function (el, css) { - // is modal - if (css) { - var settings = el.data(this.attr_name(true) + '-init'), - context = this; - settings = settings || this.settings; - - var animData = getAnimationData(settings.animation); - if (!animData.animate) { - this.locked = false; - } - if (animData.pop) { - var end_css = { - top: - $(window).scrollTop() - el.data('offset') + 'px', - opacity: 0 - }; - - return setTimeout(function () { - return el - .animate(end_css, settings.animation_speed, 'linear', function () { - context.locked = false; - el.css(css).trigger('closed.fndtn.reveal'); - }) - .removeClass('open'); - }, settings.animation_speed / 2); - } - - if (animData.fade) { - var end_css = {opacity : 0}; - - return setTimeout(function () { - return el - .animate(end_css, settings.animation_speed, 'linear', function () { - context.locked = false; - el.css(css).trigger('closed.fndtn.reveal'); - }) - .removeClass('open'); - }, settings.animation_speed / 2); - } - - return el.hide().css(css).removeClass('open').trigger('closed.fndtn.reveal'); - } - - var settings = this.settings; - - // should we animate the background? - if (getAnimationData(settings.animation).fade) { - return el.fadeOut(settings.animation_speed / 2); - } - - return el.hide(); - }, - - close_video : function (e) { - var video = $('.flex-video', e.target), - iframe = $('iframe', video); - - if (iframe.length > 0) { - iframe.attr('data-src', iframe[0].src); - iframe.attr('src', iframe.attr('src')); - video.hide(); - } - }, - - open_video : function (e) { - var video = $('.flex-video', e.target), - iframe = video.find('iframe'); - - if (iframe.length > 0) { - var data_src = iframe.attr('data-src'); - if (typeof data_src === 'string') { - iframe[0].src = iframe.attr('data-src'); - } else { - var src = iframe[0].src; - iframe[0].src = undefined; - iframe[0].src = src; - } - video.show(); - } - }, - - data_attr : function (str) { - if (this.namespace.length > 0) { - return this.namespace + '-' + str; - } - - return str; - }, - - cache_offset : function (modal) { - var offset = modal.show().height() + parseInt(modal.css('top'), 10) + modal.scrollY; - - modal.hide(); - - return offset; - }, - - off : function () { - $(this.scope).off('.fndtn.reveal'); - }, - - reflow : function () {} - }; - - /* - * getAnimationData('popAndFade') // {animate: true, pop: true, fade: true} - * getAnimationData('fade') // {animate: true, pop: false, fade: true} - * getAnimationData('pop') // {animate: true, pop: true, fade: false} - * getAnimationData('foo') // {animate: false, pop: false, fade: false} - * getAnimationData(null) // {animate: false, pop: false, fade: false} - */ - function getAnimationData(str) { - var fade = /fade/i.test(str); - var pop = /pop/i.test(str); - return { - animate : fade || pop, - pop : pop, - fade : fade - }; - } -}(jQuery, window, window.document)); diff --git a/public/js/foundation/foundation.slider.js b/public/js/foundation/foundation.slider.js deleted file mode 100644 index 5c8a40f..0000000 --- a/public/js/foundation/foundation.slider.js +++ /dev/null @@ -1,281 +0,0 @@ -;(function ($, window, document, undefined) { - 'use strict'; - - Foundation.libs.slider = { - name : 'slider', - - version : '5.5.2', - - settings : { - start : 0, - end : 100, - step : 1, - precision : null, - initial : null, - display_selector : '', - vertical : false, - trigger_input_change : false, - on_change : function () {} - }, - - cache : {}, - - init : function (scope, method, options) { - Foundation.inherit(this, 'throttle'); - this.bindings(method, options); - this.reflow(); - }, - - events : function () { - var self = this; - - $(this.scope) - .off('.slider') - .on('mousedown.fndtn.slider touchstart.fndtn.slider pointerdown.fndtn.slider', - '[' + self.attr_name() + ']:not(.disabled, [disabled]) .range-slider-handle', function (e) { - if (!self.cache.active) { - e.preventDefault(); - self.set_active_slider($(e.target)); - } - }) - .on('mousemove.fndtn.slider touchmove.fndtn.slider pointermove.fndtn.slider', function (e) { - if (!!self.cache.active) { - e.preventDefault(); - if ($.data(self.cache.active[0], 'settings').vertical) { - var scroll_offset = 0; - if (!e.pageY) { - scroll_offset = window.scrollY; - } - self.calculate_position(self.cache.active, self.get_cursor_position(e, 'y') + scroll_offset); - } else { - self.calculate_position(self.cache.active, self.get_cursor_position(e, 'x')); - } - } - }) - .on('mouseup.fndtn.slider touchend.fndtn.slider pointerup.fndtn.slider', function (e) { - self.remove_active_slider(); - }) - .on('change.fndtn.slider', function (e) { - self.settings.on_change(); - }); - - self.S(window) - .on('resize.fndtn.slider', self.throttle(function (e) { - self.reflow(); - }, 300)); - - // update slider value as users change input value - this.S('[' + this.attr_name() + ']').each(function () { - var slider = $(this), - handle = slider.children('.range-slider-handle')[0], - settings = self.initialize_settings(handle); - - if (settings.display_selector != '') { - $(settings.display_selector).each(function(){ - if (this.hasOwnProperty('value')) { - $(this).change(function(){ - // is there a better way to do this? - slider.foundation("slider", "set_value", $(this).val()); - }); - } - }); - } - }); - }, - - get_cursor_position : function (e, xy) { - var pageXY = 'page' + xy.toUpperCase(), - clientXY = 'client' + xy.toUpperCase(), - position; - - if (typeof e[pageXY] !== 'undefined') { - position = e[pageXY]; - } else if (typeof e.originalEvent[clientXY] !== 'undefined') { - position = e.originalEvent[clientXY]; - } else if (e.originalEvent.touches && e.originalEvent.touches[0] && typeof e.originalEvent.touches[0][clientXY] !== 'undefined') { - position = e.originalEvent.touches[0][clientXY]; - } else if (e.currentPoint && typeof e.currentPoint[xy] !== 'undefined') { - position = e.currentPoint[xy]; - } - - return position; - }, - - set_active_slider : function ($handle) { - this.cache.active = $handle; - }, - - remove_active_slider : function () { - this.cache.active = null; - }, - - calculate_position : function ($handle, cursor_x) { - var self = this, - settings = $.data($handle[0], 'settings'), - handle_l = $.data($handle[0], 'handle_l'), - handle_o = $.data($handle[0], 'handle_o'), - bar_l = $.data($handle[0], 'bar_l'), - bar_o = $.data($handle[0], 'bar_o'); - - requestAnimationFrame(function () { - var pct; - - if (Foundation.rtl && !settings.vertical) { - pct = self.limit_to(((bar_o + bar_l - cursor_x) / bar_l), 0, 1); - } else { - pct = self.limit_to(((cursor_x - bar_o) / bar_l), 0, 1); - } - - pct = settings.vertical ? 1 - pct : pct; - - var norm = self.normalized_value(pct, settings.start, settings.end, settings.step, settings.precision); - - self.set_ui($handle, norm); - }); - }, - - set_ui : function ($handle, value) { - var settings = $.data($handle[0], 'settings'), - handle_l = $.data($handle[0], 'handle_l'), - bar_l = $.data($handle[0], 'bar_l'), - norm_pct = this.normalized_percentage(value, settings.start, settings.end), - handle_offset = norm_pct * (bar_l - handle_l) - 1, - progress_bar_length = norm_pct * 100, - $handle_parent = $handle.parent(), - $hidden_inputs = $handle.parent().children('input[type=hidden]'); - - if (Foundation.rtl && !settings.vertical) { - handle_offset = -handle_offset; - } - - handle_offset = settings.vertical ? -handle_offset + bar_l - handle_l + 1 : handle_offset; - this.set_translate($handle, handle_offset, settings.vertical); - - if (settings.vertical) { - $handle.siblings('.range-slider-active-segment').css('height', progress_bar_length + '%'); - } else { - $handle.siblings('.range-slider-active-segment').css('width', progress_bar_length + '%'); - } - - $handle_parent.attr(this.attr_name(), value).trigger('change.fndtn.slider'); - - $hidden_inputs.val(value); - if (settings.trigger_input_change) { - $hidden_inputs.trigger('change.fndtn.slider'); - } - - if (!$handle[0].hasAttribute('aria-valuemin')) { - $handle.attr({ - 'aria-valuemin' : settings.start, - 'aria-valuemax' : settings.end - }); - } - $handle.attr('aria-valuenow', value); - - if (settings.display_selector != '') { - $(settings.display_selector).each(function () { - if (this.hasAttribute('value')) { - $(this).val(value); - } else { - $(this).text(value); - } - }); - } - - }, - - normalized_percentage : function (val, start, end) { - return Math.min(1, (val - start) / (end - start)); - }, - - normalized_value : function (val, start, end, step, precision) { - var range = end - start, - point = val * range, - mod = (point - (point % step)) / step, - rem = point % step, - round = ( rem >= step * 0.5 ? step : 0); - return ((mod * step + round) + start).toFixed(precision); - }, - - set_translate : function (ele, offset, vertical) { - if (vertical) { - $(ele) - .css('-webkit-transform', 'translateY(' + offset + 'px)') - .css('-moz-transform', 'translateY(' + offset + 'px)') - .css('-ms-transform', 'translateY(' + offset + 'px)') - .css('-o-transform', 'translateY(' + offset + 'px)') - .css('transform', 'translateY(' + offset + 'px)'); - } else { - $(ele) - .css('-webkit-transform', 'translateX(' + offset + 'px)') - .css('-moz-transform', 'translateX(' + offset + 'px)') - .css('-ms-transform', 'translateX(' + offset + 'px)') - .css('-o-transform', 'translateX(' + offset + 'px)') - .css('transform', 'translateX(' + offset + 'px)'); - } - }, - - limit_to : function (val, min, max) { - return Math.min(Math.max(val, min), max); - }, - - initialize_settings : function (handle) { - var settings = $.extend({}, this.settings, this.data_options($(handle).parent())), - decimal_places_match_result; - - if (settings.precision === null) { - decimal_places_match_result = ('' + settings.step).match(/\.([\d]*)/); - settings.precision = decimal_places_match_result && decimal_places_match_result[1] ? decimal_places_match_result[1].length : 0; - } - - if (settings.vertical) { - $.data(handle, 'bar_o', $(handle).parent().offset().top); - $.data(handle, 'bar_l', $(handle).parent().outerHeight()); - $.data(handle, 'handle_o', $(handle).offset().top); - $.data(handle, 'handle_l', $(handle).outerHeight()); - } else { - $.data(handle, 'bar_o', $(handle).parent().offset().left); - $.data(handle, 'bar_l', $(handle).parent().outerWidth()); - $.data(handle, 'handle_o', $(handle).offset().left); - $.data(handle, 'handle_l', $(handle).outerWidth()); - } - - $.data(handle, 'bar', $(handle).parent()); - return $.data(handle, 'settings', settings); - }, - - set_initial_position : function ($ele) { - var settings = $.data($ele.children('.range-slider-handle')[0], 'settings'), - initial = ((typeof settings.initial == 'number' && !isNaN(settings.initial)) ? settings.initial : Math.floor((settings.end - settings.start) * 0.5 / settings.step) * settings.step + settings.start), - $handle = $ele.children('.range-slider-handle'); - this.set_ui($handle, initial); - }, - - set_value : function (value) { - var self = this; - $('[' + self.attr_name() + ']', this.scope).each(function () { - $(this).attr(self.attr_name(), value); - }); - if (!!$(this.scope).attr(self.attr_name())) { - $(this.scope).attr(self.attr_name(), value); - } - self.reflow(); - }, - - reflow : function () { - var self = this; - self.S('[' + this.attr_name() + ']').each(function () { - var handle = $(this).children('.range-slider-handle')[0], - val = $(this).attr(self.attr_name()); - self.initialize_settings(handle); - - if (val) { - self.set_ui($(handle), parseFloat(val)); - } else { - self.set_initial_position($(this)); - } - }); - } - }; - -}(jQuery, window, window.document)); diff --git a/public/js/foundation/foundation.tab.js b/public/js/foundation/foundation.tab.js deleted file mode 100644 index 7875dbe..0000000 --- a/public/js/foundation/foundation.tab.js +++ /dev/null @@ -1,249 +0,0 @@ -;(function ($, window, document, undefined) { - 'use strict'; - - Foundation.libs.tab = { - name : 'tab', - - version : '5.5.2', - - settings : { - active_class : 'active', - callback : function () {}, - deep_linking : false, - scroll_to_content : true, - is_hover : false - }, - - default_tab_hashes : [], - - init : function (scope, method, options) { - var self = this, - S = this.S; - - // Store the default active tabs which will be referenced when the - // location hash is absent, as in the case of navigating the tabs and - // returning to the first viewing via the browser Back button. - S('[' + this.attr_name() + '] > .active > a', this.scope).each(function () { - self.default_tab_hashes.push(this.hash); - }); - - // store the initial href, which is used to allow correct behaviour of the - // browser back button when deep linking is turned on. - self.entry_location = window.location.href; - - this.bindings(method, options); - this.handle_location_hash_change(); - }, - - events : function () { - var self = this, - S = this.S; - - var usual_tab_behavior = function (e, target) { - var settings = S(target).closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init'); - if (!settings.is_hover || Modernizr.touch) { - e.preventDefault(); - e.stopPropagation(); - self.toggle_active_tab(S(target).parent()); - } - }; - - S(this.scope) - .off('.tab') - // Key event: focus/tab key - .on('keydown.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) { - var el = this; - var keyCode = e.keyCode || e.which; - // if user pressed tab key - if (keyCode == 9) { - e.preventDefault(); - // TODO: Change usual_tab_behavior into accessibility function? - usual_tab_behavior(e, el); - } - }) - // Click event: tab title - .on('click.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) { - var el = this; - usual_tab_behavior(e, el); - }) - // Hover event: tab title - .on('mouseenter.fndtn.tab', '[' + this.attr_name() + '] > * > a', function (e) { - var settings = S(this).closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init'); - if (settings.is_hover) { - self.toggle_active_tab(S(this).parent()); - } - }); - - // Location hash change event - S(window).on('hashchange.fndtn.tab', function (e) { - e.preventDefault(); - self.handle_location_hash_change(); - }); - }, - - handle_location_hash_change : function () { - - var self = this, - S = this.S; - - S('[' + this.attr_name() + ']', this.scope).each(function () { - var settings = S(this).data(self.attr_name(true) + '-init'); - if (settings.deep_linking) { - // Match the location hash to a label - var hash; - if (settings.scroll_to_content) { - hash = self.scope.location.hash; - } else { - // prefix the hash to prevent anchor scrolling - hash = self.scope.location.hash.replace('fndtn-', ''); - } - if (hash != '') { - // Check whether the location hash references a tab content div or - // another element on the page (inside or outside the tab content div) - var hash_element = S(hash); - if (hash_element.hasClass('content') && hash_element.parent().hasClass('tabs-content')) { - // Tab content div - self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + hash + ']').parent()); - } else { - // Not the tab content div. If inside the tab content, find the - // containing tab and toggle it as active. - var hash_tab_container_id = hash_element.closest('.content').attr('id'); - if (hash_tab_container_id != undefined) { - self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=#' + hash_tab_container_id + ']').parent(), hash); - } - } - } else { - // Reference the default tab hashes which were initialized in the init function - for (var ind = 0; ind < self.default_tab_hashes.length; ind++) { - self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + self.default_tab_hashes[ind] + ']').parent()); - } - } - } - }); - }, - - toggle_active_tab : function (tab, location_hash) { - var self = this, - S = self.S, - tabs = tab.closest('[' + this.attr_name() + ']'), - tab_link = tab.find('a'), - anchor = tab.children('a').first(), - target_hash = '#' + anchor.attr('href').split('#')[1], - target = S(target_hash), - siblings = tab.siblings(), - settings = tabs.data(this.attr_name(true) + '-init'), - interpret_keyup_action = function (e) { - // Light modification of Heydon Pickering's Practical ARIA Examples: http://heydonworks.com/practical_aria_examples/js/a11y.js - - // define current, previous and next (possible) tabs - - var $original = $(this); - var $prev = $(this).parents('li').prev().children('[role="tab"]'); - var $next = $(this).parents('li').next().children('[role="tab"]'); - var $target; - - // find the direction (prev or next) - - switch (e.keyCode) { - case 37: - $target = $prev; - break; - case 39: - $target = $next; - break; - default: - $target = false - break; - } - - if ($target.length) { - $original.attr({ - 'tabindex' : '-1', - 'aria-selected' : null - }); - $target.attr({ - 'tabindex' : '0', - 'aria-selected' : true - }).focus(); - } - - // Hide panels - - $('[role="tabpanel"]') - .attr('aria-hidden', 'true'); - - // Show panel which corresponds to target - - $('#' + $(document.activeElement).attr('href').substring(1)) - .attr('aria-hidden', null); - - }, - go_to_hash = function(hash) { - // This function allows correct behaviour of the browser's back button when deep linking is enabled. Without it - // the user would get continually redirected to the default hash. - var is_entry_location = window.location.href === self.entry_location, - default_hash = settings.scroll_to_content ? self.default_tab_hashes[0] : is_entry_location ? window.location.hash :'fndtn-' + self.default_tab_hashes[0].replace('#', '') - - if (!(is_entry_location && hash === default_hash)) { - window.location.hash = hash; - } - }; - - // allow usage of data-tab-content attribute instead of href - if (anchor.data('tab-content')) { - target_hash = '#' + anchor.data('tab-content').split('#')[1]; - target = S(target_hash); - } - - if (settings.deep_linking) { - - if (settings.scroll_to_content) { - - // retain current hash to scroll to content - go_to_hash(location_hash || target_hash); - - if (location_hash == undefined || location_hash == target_hash) { - tab.parent()[0].scrollIntoView(); - } else { - S(target_hash)[0].scrollIntoView(); - } - } else { - // prefix the hashes so that the browser doesn't scroll down - if (location_hash != undefined) { - go_to_hash('fndtn-' + location_hash.replace('#', '')); - } else { - go_to_hash('fndtn-' + target_hash.replace('#', '')); - } - } - } - - // WARNING: The activation and deactivation of the tab content must - // occur after the deep linking in order to properly refresh the browser - // window (notably in Chrome). - // Clean up multiple attr instances to done once - tab.addClass(settings.active_class).triggerHandler('opened'); - tab_link.attr({'aria-selected' : 'true', tabindex : 0}); - siblings.removeClass(settings.active_class) - siblings.find('a').attr({'aria-selected' : 'false', tabindex : -1}); - target.siblings().removeClass(settings.active_class).attr({'aria-hidden' : 'true', tabindex : -1}); - target.addClass(settings.active_class).attr('aria-hidden', 'false').removeAttr('tabindex'); - settings.callback(tab); - target.triggerHandler('toggled', [target]); - tabs.triggerHandler('toggled', [tab]); - - tab_link.off('keydown').on('keydown', interpret_keyup_action ); - }, - - data_attr : function (str) { - if (this.namespace.length > 0) { - return this.namespace + '-' + str; - } - - return str; - }, - - off : function () {}, - - reflow : function () {} - }; -}(jQuery, window, window.document)); diff --git a/public/js/foundation/foundation.tooltip.js b/public/js/foundation/foundation.tooltip.js deleted file mode 100644 index c69f26c..0000000 --- a/public/js/foundation/foundation.tooltip.js +++ /dev/null @@ -1,339 +0,0 @@ -;(function ($, window, document, undefined) { - 'use strict'; - - Foundation.libs.tooltip = { - name : 'tooltip', - - version : '5.5.2', - - settings : { - additional_inheritable_classes : [], - tooltip_class : '.tooltip', - append_to : 'body', - touch_close_text : 'Tap To Close', - disable_for_touch : false, - hover_delay : 200, - show_on : 'all', - tip_template : function (selector, content) { - return '' + content + ''; - } - }, - - cache : {}, - - init : function (scope, method, options) { - Foundation.inherit(this, 'random_str'); - this.bindings(method, options); - }, - - should_show : function (target, tip) { - var settings = $.extend({}, this.settings, this.data_options(target)); - - if (settings.show_on === 'all') { - return true; - } else if (this.small() && settings.show_on === 'small') { - return true; - } else if (this.medium() && settings.show_on === 'medium') { - return true; - } else if (this.large() && settings.show_on === 'large') { - return true; - } - return false; - }, - - medium : function () { - return matchMedia(Foundation.media_queries['medium']).matches; - }, - - large : function () { - return matchMedia(Foundation.media_queries['large']).matches; - }, - - events : function (instance) { - var self = this, - S = self.S; - - self.create(this.S(instance)); - - function _startShow(elt, $this, immediate) { - if (elt.timer) { - return; - } - - if (immediate) { - elt.timer = null; - self.showTip($this); - } else { - elt.timer = setTimeout(function () { - elt.timer = null; - self.showTip($this); - }.bind(elt), self.settings.hover_delay); - } - } - - function _startHide(elt, $this) { - if (elt.timer) { - clearTimeout(elt.timer); - elt.timer = null; - } - - self.hide($this); - } - - $(this.scope) - .off('.tooltip') - .on('mouseenter.fndtn.tooltip mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip', - '[' + this.attr_name() + ']', function (e) { - var $this = S(this), - settings = $.extend({}, self.settings, self.data_options($this)), - is_touch = false; - - if (Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type) && S(e.target).is('a')) { - return false; - } - - if (/mouse/i.test(e.type) && self.ie_touch(e)) { - return false; - } - - if ($this.hasClass('open')) { - if (Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) { - e.preventDefault(); - } - self.hide($this); - } else { - if (settings.disable_for_touch && Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) { - return; - } else if (!settings.disable_for_touch && Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) { - e.preventDefault(); - S(settings.tooltip_class + '.open').hide(); - is_touch = true; - // close other open tooltips on touch - if ($('.open[' + self.attr_name() + ']').length > 0) { - var prevOpen = S($('.open[' + self.attr_name() + ']')[0]); - self.hide(prevOpen); - } - } - - if (/enter|over/i.test(e.type)) { - _startShow(this, $this); - - } else if (e.type === 'mouseout' || e.type === 'mouseleave') { - _startHide(this, $this); - } else { - _startShow(this, $this, true); - } - } - }) - .on('mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip', '[' + this.attr_name() + '].open', function (e) { - if (/mouse/i.test(e.type) && self.ie_touch(e)) { - return false; - } - - if ($(this).data('tooltip-open-event-type') == 'touch' && e.type == 'mouseleave') { - return; - } else if ($(this).data('tooltip-open-event-type') == 'mouse' && /MSPointerDown|touchstart/i.test(e.type)) { - self.convert_to_touch($(this)); - } else { - _startHide(this, $(this)); - } - }) - .on('DOMNodeRemoved DOMAttrModified', '[' + this.attr_name() + ']:not(a)', function (e) { - _startHide(this, S(this)); - }); - }, - - ie_touch : function (e) { - // How do I distinguish between IE11 and Windows Phone 8????? - return false; - }, - - showTip : function ($target) { - var $tip = this.getTip($target); - if (this.should_show($target, $tip)) { - return this.show($target); - } - return; - }, - - getTip : function ($target) { - var selector = this.selector($target), - settings = $.extend({}, this.settings, this.data_options($target)), - tip = null; - - if (selector) { - tip = this.S('span[data-selector="' + selector + '"]' + settings.tooltip_class); - } - - return (typeof tip === 'object') ? tip : false; - }, - - selector : function ($target) { - var dataSelector = $target.attr(this.attr_name()) || $target.attr('data-selector'); - - if (typeof dataSelector != 'string') { - dataSelector = this.random_str(6); - $target - .attr('data-selector', dataSelector) - .attr('aria-describedby', dataSelector); - } - - return dataSelector; - }, - - create : function ($target) { - var self = this, - settings = $.extend({}, this.settings, this.data_options($target)), - tip_template = this.settings.tip_template; - - if (typeof settings.tip_template === 'string' && window.hasOwnProperty(settings.tip_template)) { - tip_template = window[settings.tip_template]; - } - - var $tip = $(tip_template(this.selector($target), $('
    ').html($target.attr('title')).html())), - classes = this.inheritable_classes($target); - - $tip.addClass(classes).appendTo(settings.append_to); - - if (Modernizr.touch) { - $tip.append('' + settings.touch_close_text + ''); - $tip.on('touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip', function (e) { - self.hide($target); - }); - } - - $target.removeAttr('title').attr('title', ''); - }, - - reposition : function (target, tip, classes) { - var width, nub, nubHeight, nubWidth, column, objPos; - - tip.css('visibility', 'hidden').show(); - - width = target.data('width'); - nub = tip.children('.nub'); - nubHeight = nub.outerHeight(); - nubWidth = nub.outerHeight(); - - if (this.small()) { - tip.css({'width' : '100%'}); - } else { - tip.css({'width' : (width) ? width : 'auto'}); - } - - objPos = function (obj, top, right, bottom, left, width) { - return obj.css({ - 'top' : (top) ? top : 'auto', - 'bottom' : (bottom) ? bottom : 'auto', - 'left' : (left) ? left : 'auto', - 'right' : (right) ? right : 'auto' - }).end(); - }; - - objPos(tip, (target.offset().top + target.outerHeight() + 10), 'auto', 'auto', target.offset().left); - - if (this.small()) { - objPos(tip, (target.offset().top + target.outerHeight() + 10), 'auto', 'auto', 12.5, $(this.scope).width()); - tip.addClass('tip-override'); - objPos(nub, -nubHeight, 'auto', 'auto', target.offset().left); - } else { - var left = target.offset().left; - if (Foundation.rtl) { - nub.addClass('rtl'); - left = target.offset().left + target.outerWidth() - tip.outerWidth(); - } - - objPos(tip, (target.offset().top + target.outerHeight() + 10), 'auto', 'auto', left); - // reset nub from small styles, if they've been applied - if (nub.attr('style')) { - nub.removeAttr('style'); - } - - tip.removeClass('tip-override'); - if (classes && classes.indexOf('tip-top') > -1) { - if (Foundation.rtl) { - nub.addClass('rtl'); - } - objPos(tip, (target.offset().top - tip.outerHeight()), 'auto', 'auto', left) - .removeClass('tip-override'); - } else if (classes && classes.indexOf('tip-left') > -1) { - objPos(tip, (target.offset().top + (target.outerHeight() / 2) - (tip.outerHeight() / 2)), 'auto', 'auto', (target.offset().left - tip.outerWidth() - nubHeight)) - .removeClass('tip-override'); - nub.removeClass('rtl'); - } else if (classes && classes.indexOf('tip-right') > -1) { - objPos(tip, (target.offset().top + (target.outerHeight() / 2) - (tip.outerHeight() / 2)), 'auto', 'auto', (target.offset().left + target.outerWidth() + nubHeight)) - .removeClass('tip-override'); - nub.removeClass('rtl'); - } - } - - tip.css('visibility', 'visible').hide(); - }, - - small : function () { - return matchMedia(Foundation.media_queries.small).matches && - !matchMedia(Foundation.media_queries.medium).matches; - }, - - inheritable_classes : function ($target) { - var settings = $.extend({}, this.settings, this.data_options($target)), - inheritables = ['tip-top', 'tip-left', 'tip-bottom', 'tip-right', 'radius', 'round'].concat(settings.additional_inheritable_classes), - classes = $target.attr('class'), - filtered = classes ? $.map(classes.split(' '), function (el, i) { - if ($.inArray(el, inheritables) !== -1) { - return el; - } - }).join(' ') : ''; - - return $.trim(filtered); - }, - - convert_to_touch : function ($target) { - var self = this, - $tip = self.getTip($target), - settings = $.extend({}, self.settings, self.data_options($target)); - - if ($tip.find('.tap-to-close').length === 0) { - $tip.append('' + settings.touch_close_text + ''); - $tip.on('click.fndtn.tooltip.tapclose touchstart.fndtn.tooltip.tapclose MSPointerDown.fndtn.tooltip.tapclose', function (e) { - self.hide($target); - }); - } - - $target.data('tooltip-open-event-type', 'touch'); - }, - - show : function ($target) { - var $tip = this.getTip($target); - - if ($target.data('tooltip-open-event-type') == 'touch') { - this.convert_to_touch($target); - } - - this.reposition($target, $tip, $target.attr('class')); - $target.addClass('open'); - $tip.fadeIn(150); - }, - - hide : function ($target) { - var $tip = this.getTip($target); - $tip.fadeOut(150, function () { - $tip.find('.tap-to-close').remove(); - $tip.off('click.fndtn.tooltip.tapclose MSPointerDown.fndtn.tapclose'); - $target.removeClass('open'); - }); - }, - - off : function () { - var self = this; - this.S(this.scope).off('.fndtn.tooltip'); - this.S(this.settings.tooltip_class).each(function (i) { - $('[' + self.attr_name() + ']').eq(i).attr('title', $(this).text()); - }).remove(); - }, - - reflow : function () {} - }; -}(jQuery, window, window.document)); diff --git a/public/js/foundation/foundation.topbar.js b/public/js/foundation/foundation.topbar.js deleted file mode 100644 index c3b0ed6..0000000 --- a/public/js/foundation/foundation.topbar.js +++ /dev/null @@ -1,458 +0,0 @@ -;(function ($, window, document, undefined) { - 'use strict'; - - Foundation.libs.topbar = { - name : 'topbar', - - version : '5.5.2', - - settings : { - index : 0, - start_offset : 0, - sticky_class : 'sticky', - custom_back_text : true, - back_text : 'Back', - mobile_show_parent_link : true, - is_hover : true, - scrolltop : true, // jump to top when sticky nav menu toggle is clicked - sticky_on : 'all', - dropdown_autoclose: true - }, - - init : function (section, method, options) { - Foundation.inherit(this, 'add_custom_rule register_media throttle'); - var self = this; - - self.register_media('topbar', 'foundation-mq-topbar'); - - this.bindings(method, options); - - self.S('[' + this.attr_name() + ']', this.scope).each(function () { - var topbar = $(this), - settings = topbar.data(self.attr_name(true) + '-init'), - section = self.S('section, .top-bar-section', this); - topbar.data('index', 0); - var topbarContainer = topbar.parent(); - if (topbarContainer.hasClass('fixed') || self.is_sticky(topbar, topbarContainer, settings) ) { - self.settings.sticky_class = settings.sticky_class; - self.settings.sticky_topbar = topbar; - topbar.data('height', topbarContainer.outerHeight()); - topbar.data('stickyoffset', topbarContainer.offset().top); - } else { - topbar.data('height', topbar.outerHeight()); - } - - if (!settings.assembled) { - self.assemble(topbar); - } - - if (settings.is_hover) { - self.S('.has-dropdown', topbar).addClass('not-click'); - } else { - self.S('.has-dropdown', topbar).removeClass('not-click'); - } - - // Pad body when sticky (scrolled) or fixed. - self.add_custom_rule('.f-topbar-fixed { padding-top: ' + topbar.data('height') + 'px }'); - - if (topbarContainer.hasClass('fixed')) { - self.S('body').addClass('f-topbar-fixed'); - } - }); - - }, - - is_sticky : function (topbar, topbarContainer, settings) { - var sticky = topbarContainer.hasClass(settings.sticky_class); - var smallMatch = matchMedia(Foundation.media_queries.small).matches; - var medMatch = matchMedia(Foundation.media_queries.medium).matches; - var lrgMatch = matchMedia(Foundation.media_queries.large).matches; - - if (sticky && settings.sticky_on === 'all') { - return true; - } - if (sticky && this.small() && settings.sticky_on.indexOf('small') !== -1) { - if (smallMatch && !medMatch && !lrgMatch) { return true; } - } - if (sticky && this.medium() && settings.sticky_on.indexOf('medium') !== -1) { - if (smallMatch && medMatch && !lrgMatch) { return true; } - } - if (sticky && this.large() && settings.sticky_on.indexOf('large') !== -1) { - if (smallMatch && medMatch && lrgMatch) { return true; } - } - - return false; - }, - - toggle : function (toggleEl) { - var self = this, - topbar; - - if (toggleEl) { - topbar = self.S(toggleEl).closest('[' + this.attr_name() + ']'); - } else { - topbar = self.S('[' + this.attr_name() + ']'); - } - - var settings = topbar.data(this.attr_name(true) + '-init'); - - var section = self.S('section, .top-bar-section', topbar); - - if (self.breakpoint()) { - if (!self.rtl) { - section.css({left : '0%'}); - $('>.name', section).css({left : '100%'}); - } else { - section.css({right : '0%'}); - $('>.name', section).css({right : '100%'}); - } - - self.S('li.moved', section).removeClass('moved'); - topbar.data('index', 0); - - topbar - .toggleClass('expanded') - .css('height', ''); - } - - if (settings.scrolltop) { - if (!topbar.hasClass('expanded')) { - if (topbar.hasClass('fixed')) { - topbar.parent().addClass('fixed'); - topbar.removeClass('fixed'); - self.S('body').addClass('f-topbar-fixed'); - } - } else if (topbar.parent().hasClass('fixed')) { - if (settings.scrolltop) { - topbar.parent().removeClass('fixed'); - topbar.addClass('fixed'); - self.S('body').removeClass('f-topbar-fixed'); - - window.scrollTo(0, 0); - } else { - topbar.parent().removeClass('expanded'); - } - } - } else { - if (self.is_sticky(topbar, topbar.parent(), settings)) { - topbar.parent().addClass('fixed'); - } - - if (topbar.parent().hasClass('fixed')) { - if (!topbar.hasClass('expanded')) { - topbar.removeClass('fixed'); - topbar.parent().removeClass('expanded'); - self.update_sticky_positioning(); - } else { - topbar.addClass('fixed'); - topbar.parent().addClass('expanded'); - self.S('body').addClass('f-topbar-fixed'); - } - } - } - }, - - timer : null, - - events : function (bar) { - var self = this, - S = this.S; - - S(this.scope) - .off('.topbar') - .on('click.fndtn.topbar', '[' + this.attr_name() + '] .toggle-topbar', function (e) { - e.preventDefault(); - self.toggle(this); - }) - .on('click.fndtn.topbar contextmenu.fndtn.topbar', '.top-bar .top-bar-section li a[href^="#"],[' + this.attr_name() + '] .top-bar-section li a[href^="#"]', function (e) { - var li = $(this).closest('li'), - topbar = li.closest('[' + self.attr_name() + ']'), - settings = topbar.data(self.attr_name(true) + '-init'); - - if (settings.dropdown_autoclose && settings.is_hover) { - var hoverLi = $(this).closest('.hover'); - hoverLi.removeClass('hover'); - } - if (self.breakpoint() && !li.hasClass('back') && !li.hasClass('has-dropdown')) { - self.toggle(); - } - - }) - .on('click.fndtn.topbar', '[' + this.attr_name() + '] li.has-dropdown', function (e) { - var li = S(this), - target = S(e.target), - topbar = li.closest('[' + self.attr_name() + ']'), - settings = topbar.data(self.attr_name(true) + '-init'); - - if (target.data('revealId')) { - self.toggle(); - return; - } - - if (self.breakpoint()) { - return; - } - - if (settings.is_hover && !Modernizr.touch) { - return; - } - - e.stopImmediatePropagation(); - - if (li.hasClass('hover')) { - li - .removeClass('hover') - .find('li') - .removeClass('hover'); - - li.parents('li.hover') - .removeClass('hover'); - } else { - li.addClass('hover'); - - $(li).siblings().removeClass('hover'); - - if (target[0].nodeName === 'A' && target.parent().hasClass('has-dropdown')) { - e.preventDefault(); - } - } - }) - .on('click.fndtn.topbar', '[' + this.attr_name() + '] .has-dropdown>a', function (e) { - if (self.breakpoint()) { - - e.preventDefault(); - - var $this = S(this), - topbar = $this.closest('[' + self.attr_name() + ']'), - section = topbar.find('section, .top-bar-section'), - dropdownHeight = $this.next('.dropdown').outerHeight(), - $selectedLi = $this.closest('li'); - - topbar.data('index', topbar.data('index') + 1); - $selectedLi.addClass('moved'); - - if (!self.rtl) { - section.css({left : -(100 * topbar.data('index')) + '%'}); - section.find('>.name').css({left : 100 * topbar.data('index') + '%'}); - } else { - section.css({right : -(100 * topbar.data('index')) + '%'}); - section.find('>.name').css({right : 100 * topbar.data('index') + '%'}); - } - - topbar.css('height', $this.siblings('ul').outerHeight(true) + topbar.data('height')); - } - }); - - S(window).off('.topbar').on('resize.fndtn.topbar', self.throttle(function () { - self.resize.call(self); - }, 50)).trigger('resize.fndtn.topbar').load(function () { - // Ensure that the offset is calculated after all of the pages resources have loaded - S(this).trigger('resize.fndtn.topbar'); - }); - - S('body').off('.topbar').on('click.fndtn.topbar', function (e) { - var parent = S(e.target).closest('li').closest('li.hover'); - - if (parent.length > 0) { - return; - } - - S('[' + self.attr_name() + '] li.hover').removeClass('hover'); - }); - - // Go up a level on Click - S(this.scope).on('click.fndtn.topbar', '[' + this.attr_name() + '] .has-dropdown .back', function (e) { - e.preventDefault(); - - var $this = S(this), - topbar = $this.closest('[' + self.attr_name() + ']'), - section = topbar.find('section, .top-bar-section'), - settings = topbar.data(self.attr_name(true) + '-init'), - $movedLi = $this.closest('li.moved'), - $previousLevelUl = $movedLi.parent(); - - topbar.data('index', topbar.data('index') - 1); - - if (!self.rtl) { - section.css({left : -(100 * topbar.data('index')) + '%'}); - section.find('>.name').css({left : 100 * topbar.data('index') + '%'}); - } else { - section.css({right : -(100 * topbar.data('index')) + '%'}); - section.find('>.name').css({right : 100 * topbar.data('index') + '%'}); - } - - if (topbar.data('index') === 0) { - topbar.css('height', ''); - } else { - topbar.css('height', $previousLevelUl.outerHeight(true) + topbar.data('height')); - } - - setTimeout(function () { - $movedLi.removeClass('moved'); - }, 300); - }); - - // Show dropdown menus when their items are focused - S(this.scope).find('.dropdown a') - .focus(function () { - $(this).parents('.has-dropdown').addClass('hover'); - }) - .blur(function () { - $(this).parents('.has-dropdown').removeClass('hover'); - }); - }, - - resize : function () { - var self = this; - self.S('[' + this.attr_name() + ']').each(function () { - var topbar = self.S(this), - settings = topbar.data(self.attr_name(true) + '-init'); - - var stickyContainer = topbar.parent('.' + self.settings.sticky_class); - var stickyOffset; - - if (!self.breakpoint()) { - var doToggle = topbar.hasClass('expanded'); - topbar - .css('height', '') - .removeClass('expanded') - .find('li') - .removeClass('hover'); - - if (doToggle) { - self.toggle(topbar); - } - } - - if (self.is_sticky(topbar, stickyContainer, settings)) { - if (stickyContainer.hasClass('fixed')) { - // Remove the fixed to allow for correct calculation of the offset. - stickyContainer.removeClass('fixed'); - - stickyOffset = stickyContainer.offset().top; - if (self.S(document.body).hasClass('f-topbar-fixed')) { - stickyOffset -= topbar.data('height'); - } - - topbar.data('stickyoffset', stickyOffset); - stickyContainer.addClass('fixed'); - } else { - stickyOffset = stickyContainer.offset().top; - topbar.data('stickyoffset', stickyOffset); - } - } - - }); - }, - - breakpoint : function () { - return !matchMedia(Foundation.media_queries['topbar']).matches; - }, - - small : function () { - return matchMedia(Foundation.media_queries['small']).matches; - }, - - medium : function () { - return matchMedia(Foundation.media_queries['medium']).matches; - }, - - large : function () { - return matchMedia(Foundation.media_queries['large']).matches; - }, - - assemble : function (topbar) { - var self = this, - settings = topbar.data(this.attr_name(true) + '-init'), - section = self.S('section, .top-bar-section', topbar); - - // Pull element out of the DOM for manipulation - section.detach(); - - self.S('.has-dropdown>a', section).each(function () { - var $link = self.S(this), - $dropdown = $link.siblings('.dropdown'), - url = $link.attr('href'), - $titleLi; - - if (!$dropdown.find('.title.back').length) { - - if (settings.mobile_show_parent_link == true && url) { - $titleLi = $('
  2. '); - } else { - $titleLi = $('
  3. '); - } - - // Copy link to subnav - if (settings.custom_back_text == true) { - $('h5>a', $titleLi).html(settings.back_text); - } else { - $('h5>a', $titleLi).html('« ' + $link.html()); - } - $dropdown.prepend($titleLi); - } - }); - - // Put element back in the DOM - section.appendTo(topbar); - - // check for sticky - this.sticky(); - - this.assembled(topbar); - }, - - assembled : function (topbar) { - topbar.data(this.attr_name(true), $.extend({}, topbar.data(this.attr_name(true)), {assembled : true})); - }, - - height : function (ul) { - var total = 0, - self = this; - - $('> li', ul).each(function () { - total += self.S(this).outerHeight(true); - }); - - return total; - }, - - sticky : function () { - var self = this; - - this.S(window).on('scroll', function () { - self.update_sticky_positioning(); - }); - }, - - update_sticky_positioning : function () { - var klass = '.' + this.settings.sticky_class, - $window = this.S(window), - self = this; - - if (self.settings.sticky_topbar && self.is_sticky(this.settings.sticky_topbar,this.settings.sticky_topbar.parent(), this.settings)) { - var distance = this.settings.sticky_topbar.data('stickyoffset') + this.settings.start_offset; - if (!self.S(klass).hasClass('expanded')) { - if ($window.scrollTop() > (distance)) { - if (!self.S(klass).hasClass('fixed')) { - self.S(klass).addClass('fixed'); - self.S('body').addClass('f-topbar-fixed'); - } - } else if ($window.scrollTop() <= distance) { - if (self.S(klass).hasClass('fixed')) { - self.S(klass).removeClass('fixed'); - self.S('body').removeClass('f-topbar-fixed'); - } - } - } - } - }, - - off : function () { - this.S(this.scope).off('.fndtn.topbar'); - this.S(window).off('.fndtn.topbar'); - }, - - reflow : function () {} - }; -}(jQuery, window, window.document)); From d0c5b0c0feb430055c95de4155ab80cf6fc1d783 Mon Sep 17 00:00:00 2001 From: erickfmm Date: Thu, 15 Oct 2015 02:26:18 -0300 Subject: [PATCH 2/2] =?UTF-8?q?Funciona=20combo=20dependiente=20y=20ser?= =?UTF-8?q?=C3=ADa=20con=20mi=20parte=20:p?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Listo con lo que me comprometí \o/ --- app/controllers/centrosmedicos.js | 4 +- app/controllers/home.js | 7 +- app/controllers/jsonComboDependiente.js | 50 +++++++++++++++ app/models/comunas.js | 17 +++-- app/views/index.ejs | 8 ++- public/imgsusuarios/registrado.jpg | Bin 0 -> 54853 bytes public/js/angularapp.js | 82 ++++++++++++++---------- public/js/index_js.js | 2 +- 8 files changed, 123 insertions(+), 47 deletions(-) create mode 100644 app/controllers/jsonComboDependiente.js create mode 100644 public/imgsusuarios/registrado.jpg diff --git a/app/controllers/centrosmedicos.js b/app/controllers/centrosmedicos.js index e5d4eb8..a559932 100644 --- a/app/controllers/centrosmedicos.js +++ b/app/controllers/centrosmedicos.js @@ -55,7 +55,7 @@ module.exports = function(app) { if ((i < resul.length - 1) && (resul[i].idCentrosMedicos != resul[i + 1].idCentrosMedicos)) { data.push([ resul[i].nombre, - resul[i].Direccion, + resul[i].direccion, telef ]); telef = []; @@ -63,7 +63,7 @@ module.exports = function(app) { if (i == resul.length - 1) { data.push([ resul[i].nombre, - resul[i].Direccion, + resul[i].direccion, telef ]) diff --git a/app/controllers/home.js b/app/controllers/home.js index 62c4f94..ca84074 100644 --- a/app/controllers/home.js +++ b/app/controllers/home.js @@ -18,7 +18,9 @@ module.exports = function (app) { router.get('/', function (req, res, next) { //console.log(db.comunas); - db.comunas.encontrar().then(function (filas) { + db.comunas.encontrarComunas().then(function (filas) { + + console.log(filas); @@ -34,10 +36,9 @@ module.exports = function (app) { title: "Farmautomático", controllerangular: "indexController", indices : indicesCiudades, - ciudades: arreglociudades + ciudades: arreglociudades, }); }); - }); /* router.post('/', function (req, res, next) { diff --git a/app/controllers/jsonComboDependiente.js b/app/controllers/jsonComboDependiente.js new file mode 100644 index 0000000..5f1a274 --- /dev/null +++ b/app/controllers/jsonComboDependiente.js @@ -0,0 +1,50 @@ +var express = require('express'), + router = express.Router(), + db = require('../models'); + +module.exports = function(app) { + + //var session = require('express-session'); + var bodyParser = require('body-parser'); + app.use(bodyParser.json()); + app.use(bodyParser.urlencoded({ + extended: false + })); + /* app.use(session({ + secret: 'farmautomatico', + resave: false, + saveUninitialized: true +}));*/ + app.use('/', router); + + router.get('/jsonComboDependiente', function(req, res, next) { + //console.log(db.comunas); + db.comunas.encontrarComunas().then(function(filas) { + db.comunas.encontrarRegiones().then(function(regionesres) { + + arregloCombo = []; + for (i = 0; i < regionesres[1].length; i++) { + arregloCombo.push({ + Id: regionesres[1][i].idregiones, + Name: regionesres[1][i].nombre, + Items: [] + }); + } + + for (i = 0; i < filas[1].length; i++) { + for (j = 0; j < arregloCombo.length; j++) { + if (arregloCombo[j].Id == filas[1][i].regiones_idregiones) { + console.log(filas[1][i].idcomunas); + arregloCombo[j].Items.push({ + Id: filas[1][i].idcomunas, + Name: filas[1][i].nombre + }) + } + } + } + console.log(arregloCombo); + res.json(JSON.stringify(arregloCombo)); + }) + }) + }) +} diff --git a/app/models/comunas.js b/app/models/comunas.js index 220b2aa..94a4666 100644 --- a/app/models/comunas.js +++ b/app/models/comunas.js @@ -4,15 +4,20 @@ module.exports = function (sequelize, DataTypes) { idcomunas: DataTypes.INTEGER, nombre: DataTypes.STRING, regiones_idregiones: DataTypes.INTEGER - + }, { classMethods: { - encontrar : function(){ return sequelize - .query(' select * from comunas order by regiones_idregiones', { raw: true }) - // .then(function(filas){console.log(filas); return filas;}); - } + encontrarComunas : function(){ return sequelize + .query(' select * from comunas order by regiones_idregiones, nombre', { raw: true }) + // .then(function(filas){console.log(filas); return filas;}); + }, + encontrarRegiones : function(){ return sequelize + .query('select * from regiones', { raw: true }) + // .then(function(filas){console.log(filas); return filas;}); + } + } }); return comunas -}; \ No newline at end of file +}; diff --git a/app/views/index.ejs b/app/views/index.ejs index e2f1ab2..53f1d74 100644 --- a/app/views/index.ejs +++ b/app/views/index.ejs @@ -33,12 +33,16 @@
    - + + + +
diff --git a/public/imgsusuarios/registrado.jpg b/public/imgsusuarios/registrado.jpg new file mode 100644 index 0000000000000000000000000000000000000000..925205b074c5895d6f4d226356ccd997094144b8 GIT binary patch literal 54853 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 literal 0 HcmV?d00001 diff --git a/public/js/angularapp.js b/public/js/angularapp.js index 959909c..0e43cea 100644 --- a/public/js/angularapp.js +++ b/public/js/angularapp.js @@ -2,42 +2,58 @@ var app = angular.module("app", ['ngAnimate', 'mgcrea.ngStrap']); angular.module('app') .controller('indexController', ['$scope', '$templateCache', '$http', '$location', '$window', function($scope, $templateCache, $http, $location, $window) { - $scope.remedios = ['']; - $scope.enfermedades=['']; - $scope.enfermedadseleccionada=''; - $scope.ciudad="Seleccione"; - $scope.centroofarm=''; - $scope.remediosel = ''; - $scope.accion_centroofarm = ''; - console.log($scope.centroofarm); - console.log($scope.ciudad); - $scope.$watch('ciudad', function(newvalue, oldValue){ - console.log(newvalue); - }); + $scope.remedios = ['']; + $scope.enfermedades = ['']; + $scope.enfermedadseleccionada = ''; + $scope.ciudad = $scope.ciudadactual; + $scope.centroofarm = ''; + $scope.remediosel = ''; + $scope.combodep = []; + $scope.accion_centroofarm = ''; + console.log($scope.centroofarm); + console.log($scope.ciudad); + $scope.$watch('ciudad', function(newvalue, oldValue) { + console.log(newvalue); + }); + $scope.$watch('ciudadactual', function(newvalue, oldValue) { + $scope.ciudad = $scope.ciudadactual.Id; + console.log(newvalue); + }); - $scope.$watch('centroofarm', function(newvalue, oldValue){ - if(newvalue=='farmacia'){ - $scope.accion_centroofarm='farmacia'; - } - else if (newvalue=='centromedico') { - $scope.accion_centroofarm='/centrosmedicos'; - } + $scope.$watch('centroofarm', function(newvalue, oldValue) { + if (newvalue == 'farmacia') { + $scope.accion_centroofarm = 'farmacia'; + } else if (newvalue == 'centromedico') { + $scope.accion_centroofarm = '/centrosmedicos'; + } }); - $http.get('/jsonRemedios').then(fungetremediosexito, fungetremedioserror); + $http.get('/jsonRemedios').then(fungetremediosexito, fungetremedioserror); + + function fungetremediosexito(data) { + console.log(data.data); + $scope.remedios = JSON.parse(data.data); + } - function fungetremediosexito(data) { - console.log(data.data); - $scope.remedios = JSON.parse(data.data); -} -function fungetremedioserror(err) { - console.log(err) -} -$http.get('/jsonEnfermedades').then(function(data){ - console.log(data.data); - $scope.enfermedades = JSON.parse(data.data); -}, function(err){ - console.log(err); -}) + function fungetremedioserror(err) { + console.log(err) + } + $http.get('/jsonEnfermedades').then(function(data) { + console.log(data.data); + $scope.enfermedades = JSON.parse(data.data); + }, function(err) { + console.log(err); + }) + + $http.get('/jsonComboDependiente').then(function(data) { + console.log(data.data); + $scope.combodep = JSON.parse(data.data); + }, function(err) { + console.log(err); + }) + $scope.regionactual = $scope.combodep[0]; + $scope.$watch('regionactual', function(value, oldValue){ + $scope.ciudadactual = value.Items[0]; + }); }]) diff --git a/public/js/index_js.js b/public/js/index_js.js index d1798f4..89ec3ee 100644 --- a/public/js/index_js.js +++ b/public/js/index_js.js @@ -21,7 +21,7 @@ function inicializarEdades() { } function onPanel(yo) { var yourSelect = document.getElementById( "seleccionar-ciudad" ); - if (yourSelect.options[ yourSelect.selectedIndex ].value == "Seleccione") { + if (yourSelect.options[ yourSelect.selectedIndex ].value == "Seleccione" || yourSelect.options[ yourSelect.selectedIndex ].value == null) { alert("No ha seleccionado la ciudad"); //$('.abrirConCiudad').collapse('show'); $('.abrirConCiudad').collapse('hide');