From e94d29f97b77755e2937e1a46921329c0a7b3fae Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joan=20S=C3=A1nchez?= {{_.dear}} {{{_.bodyDescription}}}
+
{{_.dear}}
+ +{{_.bodyDescription}}
+{{_.termLimits}}
++ {{_.payMethod}} + +
+ {{_.legalActions}} +
{{_.contact}}
+ +{{_.waitingForNews}}
+{{_.conclusion}}
+ ++
{{_.dear}}
{{_.bodyDescription}}
{{_.conclusion}}
- {{{previewAttachments}}} + + {{#isPreview}} + + + + + + + + {{/isPreview}} diff --git a/services/mailer/application/template/sepa-core/sepa-core.js b/services/mailer/application/template/sepa-core/sepa-core.js index 04fd71df7..ec19dd29b 100644 --- a/services/mailer/application/template/sepa-core/sepa-core.js +++ b/services/mailer/application/template/sepa-core/sepa-core.js @@ -5,19 +5,19 @@ var format = require(path.join(__dirname, '../../util/format.js')); module.exports = class SepaCore { getData(params, cb) { let query = `SELECT - c.id clientId, CONCAT(w.name, ' ', w.firstName) name, w.phone AS phone, CONCAT(u.name, '@verdnatura.es') AS email, LOWER(ct.code) countryCode, c.email recipient FROM client c - LEFT JOIN worker w ON w.id = c.workerFk + LEFT JOIN worker w ON w.id = c.salesPersonFk LEFT JOIN account.user u ON u.id = w.userFk JOIN country ct ON ct.id = c.countryFk WHERE c.id = ?`; - this.isPreview = params.isPreview; + this.clientId = params.clientId; + this.companyId = params.companyId; this.token = params.token; database.pool.query(query, [params.clientId], (error, result) => { @@ -29,11 +29,4 @@ module.exports = class SepaCore { cb(); }); } - - get previewAttachments() { - if (this.isPreview) - return `` + - ' '; - } }; diff --git a/services/mailer/application/template/sepa-core/style.css b/services/mailer/application/template/sepa-core/style.css new file mode 100644 index 000000000..e69de29bb diff --git a/services/mailer/server/server.js b/services/mailer/server/server.js index 50320a391..457a61ddf 100644 --- a/services/mailer/server/server.js +++ b/services/mailer/server/server.js @@ -13,13 +13,8 @@ app.use(bodyParser.urlencoded({extended: true})); app.use('/static', express.static(path.join(__dirname, '../static'))); -// Auth middleware -var requestToken = function(request, response, next) { - auth.init(request, response, next); -}; - // Load routes -app.use('/', requestToken, require('../application/router.js')); +app.use('/', require('../application/router.js')); app.start = function() { var listener = app.listen(config.app.port, function() { diff --git a/services/mailer/static/css/component.css b/services/mailer/static/css/component.css index 10805e562..b4c018d79 100644 --- a/services/mailer/static/css/component.css +++ b/services/mailer/static/css/component.css @@ -1,137 +1,221 @@ -img { - margin: 0 -} - -p { - text-align: justify -} - -.wrapper { - background-color: #EEE -} - -.container { - font-family: arial, sans-serif; - max-width: 600px; - min-width: 320px; - font-size: 16px; - margin: 0 auto; - color: #555 -} - -.title { - background-color: #95d831; - text-align: center; - padding: 35px 0 -} - -.title h1 { - font-size: 32px; - color: #333; - margin: 0 -} - -.body { - background-color:#FFF; - padding: 20px -} - -.body a { - color: #8dba25 -} - -.body h1 { - color: #999 -} - -.body h3 { - font-size: 16px -} - -.panel { - border: 1px solid #DDD; - margin-bottom: 10px; - padding:10px -} - -.row { - margin-bottom: 15px; - overflow: hidden; - content: ''; - clear: both -} - -.row .text { - margin-bottom: 5px -} - -.row .control { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box -} - -.row .description { - font-size: 8px; - color: #999 -} - -.row .v-align { - padding-top: 5px; - line-height: 21px -} - -.row:last-child { - margin-bottom: 0 -} - -.row.inline .text { - margin-bottom: 0; - width: 40%; - float: left -} - -.row.inline .control { - font-weight: bold; - padding-left: 20px; - color: #000; - width: 60%; - float: left -} - -.box { - border-top: 1px solid #CCC; - border-right: 1px solid #CCC; - border-bottom: 1px solid #CCC; - font-weight: bold; - text-align: center; - padding-top: 4px; - width: 25px; - height: 21px; - color: #000; - float: left -} - -.row .control .box:first-child { - border-left: 1px solid #CCC; -} - -.attachment { - overflow: hidden; - margin-top: 10px -} - -.attachment:after { - content: ' '; - display: block; - clear: both -} - -.attachment-icon { - float: left -} - -.attachment span { - padding: 16px 0 0 10px; - float: left +body { + padding: 0; + margin: 0 +} + +img { + margin: 0 +} + +p { + text-align: justify +} + +.wrapper { + background-color: #EEE +} + +.container { + font-family: arial, sans-serif; + max-width: 600px; + min-width: 320px; + font-size: 16px; + margin: 0 auto; + color: #555 +} + +.title { + background-color: #95d831; + text-align: center; + padding: 35px 0 +} + +.title h1 { + font-size: 32px; + color: #333; + margin: 0 +} + +.body { + background-color:#FFF; + padding: 20px +} + +.body a { + color: #8dba25 +} + +.body h1 { + color: #999 +} + +.body h3 { + font-size: 16px +} + +.panel { + border: 1px solid #DDD; + margin-bottom: 10px; + position: relative; + padding:10px +} + +.row { + margin-bottom: 15px; + overflow: hidden +} + +.row .text { + margin-bottom: 5px +} + +.row .control { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box +} + +.row .text, .row .control { + overflow: hidden +} + +.row .description { + position: relative; + padding-top: 2px; + overflow: hidden; + font-size: 11px; + display: block; + color: #999 +} + +.row .line { + border-bottom: 1px solid #DDD; + border-right: 1px solid #DDD; + border-left: 1px solid #DDD; + margin-top: 10px; + color: #999; + padding: 5px +} + +.row .description span { + background-color: #FFF; + margin: -5px 0 0 50px; + display: block; + padding: 5px; + float: left +} + +.row:last-child { + margin-bottom: 0 +} + +.row.inline .text { + margin-bottom: 0; + width: 40%; + float: left +} + +.row.inline .control { + font-weight: bold; + padding-left: 20px; + color: #000; + width: 60%; + float: left +} + +.row.inline .description { + position: static; + overflow: visible +} + +.box { + border-top: 1px solid #CCC; + border-right: 1px solid #CCC; + border-bottom: 1px solid #CCC; + font-weight: bold; + text-align: center; + padding-top: 4px; + width: 25px; + height: 21px; + color: #000; + float: left +} + +.box.crossed { + font-weight: 100; + font-size: 16px +} + +.row .control .box:first-child { + border-left: 1px solid #CCC; +} + +.font.small { + font-size: 10px +} + +.font.verticalAlign { + height: 27px; + line-height: 27px +} + +.font.centered { + height: 27px; + line-height: 27px; + text-align: center +} + +.verticalText { + -moz-transform: rotate(90deg); + -webkit-transform: rotate(90deg); + transform: rotate(90deg); + position: absolute; + text-align: center; + font-size: .65em; + width: 200px; + right: -115px; + top: 50% +} + +.attachment { + overflow: hidden; + margin-top: 10px +} + +.attachment-icon { + float: left +} + +.attachment span { + padding: 16px 0 0 10px; + float: left +} + +.columns { + overflow: hidden +} + +.columns .size100 { + width: 100%; + float: left +} + +.columns .size75 { + width: 75%; + float: left +} + +.columns .size50 { + width: 50%; + float: left +} + +.columns .size33 { + width: 33.33%; + float: left +} + +.columns .size25 { + width: 25%; + float: left } \ No newline at end of file diff --git a/services/mailer/static/images/attachment.png b/services/mailer/static/images/attachment.png deleted file mode 100644 index 78efe4f95c69f9c03a08c93b4849d253ff1b3047..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18546 zcmeI4c|26#`@pZQP$ZI~GL87O7_*qMOib2{BC>1Kn7PAbwr0jMDk&{KEtX1>C8d%= zdnBTjvPDs$qDVrtNJ{m+Ls@P$uYRxJ_xI25HS>Cznddy`d7g9L=Q+CD31m(M+y_|&ZL5why)o-WF{+u2TTKibaD z?DZ}@y{KS~WzD^9-AY+nZ+Ew7`LGr}6&wy-(-T#Gq5N*S41q%ETwZo5v;N&-qqL8q z$s1RedVI|~m2>s6UR`bBli+pll_RFB&wtvruOt8Byb#ZT0^1Ee?CLk0pG0f=YULHa z411Dm7wmK^C3@Ylbz?u;cD1h&aF`9J3k%OFuw0CG&ma@IEs5cry2Q?d!56v9<|<#e zY`ON&v*YX6y>NbYxZ*~`jq+y+8*_T(+sVRt)x^TUOjH^x)%|-qKD_vuwc!$M*SEUH3PB zUQ<-VfB5O4!OBCzg09;gS~+aJC)09u^Ljo7eeBc-R(#{ourf3{ *49$eEO $9)Vzbvlw>VMQdu5V{$VYV>iJ+JFj#%W@)PO)}=h0y%%@&2re z`VC#VU3t%n3$znv_gj2(eqZ&OTAY5*sh8Bc{#!q~cgy=Py48ma0l+MZ;pQdqab4 zIV=MTjpGX%gs`~KF%;4*2;oww0iXck3;HqG=E$xqg-8U0W{&hEIAR>R)}TLw9LfV- zLzlQwLj$O$G~@!3qFD$La=-!w6hsJ%$>tM7%#j0riO_dZGa88)=pqO(M_P&kBD@@( z5!M_Yh#(jkp{Q6x6NIs;0hVBDg2U@0a2Tu+8e@va;!zkZ5o1ckU=crFNRlG-&5TE* z6J2Z;{s;$2=16~mfJ;Q9gM)(&f(;EgJU=wn)YKG>!J% &LuU+@U~h{ttE#MRW*-i^dvY(0?#;bQEvK zV*S>VFR%@QM)G53zYWND6LLYc3&`gL@~EI~5Xctj{B96@feSbc=`UPC-GA$dMjaXu zH;~6108OK!K_ I zR05qq7z*(lH@}1;Gx$(82}fiZlxqVe%oSWay7i}m$rva_Tndj5igvg;^5+&Gs$D~+ zNn|rnDToxRsECoMqVxr6X6R9^!^0Y~{9(rUbvgeI!Jz*U=6{Y6><_ZVrT?I-fnI-h z!spNh!4w{7=?7)V-|WmmucOW2?# zT~?u7V+Snc@K_{B0C^x(NL>ZcmSu_NJ4z3q@E{{m7tybP&J=+^iOS>z(ohsW9~3}` zA1W0^;WAL7azpV0f1FPk9Q1&mj~=L~C?>;~N8vF*KHAC>Z)k&qDw~ll7K6g$Z15;c z0(9sy#$oXoV_QR80>*egn?nQ5u~7M@)9Ex64MWGG@W!UbD5%bxq6icm)(}G>;EYW0 zKZidwwm%PlM9~clgeoo_1L80QDjo%zn9xvo(2xeXHzuIypdkhXX%w0%6{@&{bVk_1 z1N?p~54Mh8!=DLZ&;H%Io6)F5I@fhjKe@LG* 6!(c0P zTLRq?p@(jXeyJQom*4;9m*E-xH@(7qNrJ$Dh!-We#Pfk^CAeTf#ETMK;`zX|5?nAK z;zbEA@qA!f2`(5A@uCEmcs?+#1Q!g5cu|5&JRg`=f(r&jyePpXo)1hb!36^%UX z_b!vFd*VZ2`=$`U|I<-7!dKISX_$3 z4;h1O=*i+>=n-Po$o)Rh 5;!% z6xou$sma(oyQ#0smI+!VI|=Qc%u1+{y0 APQTH>Jo$+T`C@E`wCjZZZc_A`f-10w&z_ z4{-|D^~L2I7fEBaNYZEIV#jOCc}0{cYAbkcE>YH2DzVg8^pOUD_^CzZ{V(rH0YE4D zQ*F!Z`wHE={U0jtx$AlD^c%Ix q(J7#&1 diff --git a/services/print/application/route/manuscript.js b/services/print/application/route/manuscript.js index 90662b646..091ffa4c3 100644 --- a/services/print/application/route/manuscript.js +++ b/services/print/application/route/manuscript.js @@ -4,22 +4,93 @@ var template = require('../template.js'); var config = require('../config.js'); var pdf = require('html-pdf'); var path = require('path'); +var auth = require('../auth.js'); + +// Auth middleware +var requestToken = function(request, response, next) { + auth.init(request, response, next); +}; // Sepa core -router.post('/sepa-core/:clientId', function(request, response, next) { - template.get('sepa-core', {clientId: request.params.clientId}, (error, result) => { +router.get('/sepa-core/:companyId/:clientId', requestToken, function(request, response, next) { + let params = { + clientId: request.params.clientId, + companyId: request.params.companyId + }; + + template.get('sepa-core', params, (error, result) => { if (error) return response.status(400).json({message: error.message}); - pdf.create(result.body).toStream(function(error, stream) { + pdf.create(result.body, config.pdf).toStream(function(error, stream) { if (error) throw Error(error); + response.setHeader('Content-Disposition', 'attachment; filename="sepa-core.pdf"'); + response.setHeader('Content-type', 'application/pdf'); stream.pipe(response); }); }); }); +// Sepa core html preview +router.get('/sepa-core/:companyId/:clientId/preview', requestToken, function(request, response, next) { + let params = { + clientId: request.params.clientId, + companyId: request.params.companyId, + isPreview: true + }; + + template.get('sepa-core', params, (error, result) => { + if (error) + return response.status(400).json({message: error.message}); + + response.send(result.body); + }); + }); + + // Debtor letter +router.get('/letter-debtor/:companyId/:clientId', requestToken, function(request, response, next) { + let params = { + clientId: request.params.clientId, + companyId: request.params.companyId + }; + + template.get('letter-debtor', params, (error, result) => { + if (error) + return response.status(400).json({message: error.message}); + + pdf.create(result.body, config.pdf).toStream(function(error, stream) { + if (error) + throw Error(error); + + response.setHeader('Content-Disposition', 'attachment; filename="extracto.pdf"'); + response.setHeader('Content-type', 'application/pdf'); + stream.pipe(response); + }); + }); + }); + + // Debtor letter html preview +router.get('/letter-debtor/:companyId/:clientId/preview', requestToken, function(request, response, next) { + let params = { + clientId: request.params.clientId, + companyId: request.params.companyId, + isPreview: true + }; + + template.get('letter-debtor', params, (error, result) => { + if (error) + return response.status(400).json({message: error.message}); + + response.send(result.body); + }); + }); + + +module.exports = router; + + // store pdf /* router.post('/sepa-core/:clientId', function(request, response, next) { template.get('sepa-core', {recipient: request.params.clientId}, (error, result) => { @@ -35,32 +106,4 @@ router.post('/sepa-core/:clientId', function(request, response, next) { }); }); }); - */ -// Sepa core preview -router.get('/sepa-core/:clientId', function(request, response, next) { - template.get('sepa-core', {clientId: request.params.clientId}, (error, result) => { - if (error) - return response.status(400).json({message: error.message}); - - let options = config.pdf; - pdf.create(result.body, options).toStream(function(error, stream) { - if (error) - throw Error(error); - - response.setHeader('Content-Disposition', 'inline; filename="sepa-core.pdf"'); - response.setHeader('Content-type', 'application/pdf'); - stream.pipe(response); - }); - }); -}); - -router.get('/sepa-core-view/:clientId', function(request, response, next) { - template.get('sepa-core', {clientId: request.params.clientId}, (error, result) => { - if (error) - return response.status(400).json({message: error.message}); - - response.send(result.body); - }); - }); - -module.exports = router; + */ \ No newline at end of file diff --git a/services/print/application/router.js b/services/print/application/router.js index 58e9a3694..a9ebe1acf 100644 --- a/services/print/application/router.js +++ b/services/print/application/router.js @@ -1,5 +1,7 @@ var express = require('express'); var router = new express.Router(); +var fs = require('fs'); +var path = require('path'); // Default page router.get('/', function(request, response) { @@ -9,4 +11,21 @@ router.get('/', function(request, response) { // Manuscripts router.use('/manuscript', require('./route/manuscript.js')); +// Serve static images +router.use('/static/:template/:image', function(request, response) { + let imagePath = path.join(__dirname, '/template/', request.params.template, '/image/', request.params.image); + + fs.stat(imagePath, function(error) { + if (error) + return response.json({message: 'Image not found'}); + + let readStream = fs.createReadStream(imagePath); + + readStream.on('open', function() { + readStream.pipe(response); + }); + }); +}); + + module.exports = router; diff --git a/services/print/application/template.js b/services/print/application/template.js index 9bc968c74..9974ebcf5 100644 --- a/services/print/application/template.js +++ b/services/print/application/template.js @@ -4,6 +4,7 @@ var locale = require('./locale.js'); var inlineCss = require('inline-css'); var path = require('path'); + module.exports = { /** * Get template. @@ -15,7 +16,7 @@ module.exports = { get: function(template, params, cb) { var templatePath = path.join(__dirname, 'template', `${template}`, `index.html`); var classPath = path.join(__dirname, 'template', `${template}`, `${template}.js`); - var stylePath = path.join(__dirname, 'template', `${template}`, 'static', 'css', 'style.css'); + var stylePath = path.join(__dirname, 'template', `${template}`, 'style.css'); fs.stat(templatePath, (error, stat) => { if (error) @@ -43,7 +44,7 @@ module.exports = { params.subject = title[1]; } - this.renderImages(template, body, (error, body) => { + this.renderImages(template, body, params.isPreview, (error, body) => { if (error) return cb(error); @@ -53,7 +54,7 @@ module.exports = { }; let getDataCb = () => { - this.render(templatePath, instance, (error, result) => getRenderedStyles(error, result)); + this.render(templatePath, params, instance, (error, result) => getRenderedStyles(error, result)); }; instance.getData(params, (error, result) => { @@ -65,6 +66,7 @@ module.exports = { return cb(error); instance._ = result.locale; + instance.isPreview = params.isPreview; getDataCb(null, result); }); }); @@ -77,7 +79,7 @@ module.exports = { * @param {Object} data - Params * @param {Object} cb - Callback */ - render: function(path, data, cb) { + render: function(path, params, data, cb) { fs.readFile(path, 'utf8', (error, body) => { // Find matching sub-templates let regexp = new RegExp(/\{\{\$\.(.*?)\}\}/, 'ig'); @@ -89,7 +91,7 @@ module.exports = { } let parentBody = body; - this.renderSub(parentBody, subTpl, data, regexp, (error, body) => { + this.renderSub(parentBody, subTpl, params, regexp, (error, body) => { if (error) return cb(error); @@ -99,13 +101,13 @@ module.exports = { }); }, - renderSub: function(body, subTpl, data, regexp, cb) { + renderSub: function(body, subTpl, params, regexp, cb) { let index = 1; subTpl.forEach(keyName => { subTplName = keyName.replace(regexp, '$1'); - this.get(subTplName, data, (error, result) => { + this.get(subTplName, params, (error, result) => { if (error) return cb(error); @@ -140,7 +142,7 @@ module.exports = { let style = ''; let body = style + html; let options = {url: ' '}; - + inlineCss(body, options) .then(function(body) { cb(null, body); @@ -156,7 +158,7 @@ module.exports = { * @param {String} body - template body * @param {Object} cb - Callback */ - renderImages: function(template, body, cb) { + renderImages: function(template, body, isPreview, cb) { let tplImages = body.match(new RegExp('src="cid:(.*?)"', 'ig')); if (!tplImages) @@ -164,10 +166,17 @@ module.exports = { // Template default attachments for (var i = 0; i < tplImages.length; i++) { - let name = tplImages[i].replace('src="cid:', '').replace('"', ''); + let src = tplImages[i].replace('src="cid:', '').replace('"', '').split('/'); + let attachmentTpl = src[0]; + let attachment = src[1]; - let imagePath = path.join(__dirname, 'template', `${template}`, 'static', 'image', name); - body = body.replace(tplImages[i], `src="file:///${imagePath}"`); + if (isPreview) { + let imagePath = `/print/static/${attachmentTpl}/${attachment}`; + body = body.replace(tplImages[i], `src="${imagePath}"`); + } else { + let imagePath = path.join(__dirname, 'template', attachmentTpl, 'image', attachment); + body = body.replace(tplImages[i], `src="file:///${imagePath}"`); + } } cb(null, body); diff --git a/services/mailer/application/template/header/static/image/action.png b/services/print/application/template/footer/image/action.png similarity index 100% rename from services/mailer/application/template/header/static/image/action.png rename to services/print/application/template/footer/image/action.png diff --git a/services/mailer/application/template/header/static/image/facebook.png b/services/print/application/template/footer/image/facebook.png similarity index 100% rename from services/mailer/application/template/header/static/image/facebook.png rename to services/print/application/template/footer/image/facebook.png diff --git a/services/mailer/application/template/header/static/image/info.png b/services/print/application/template/footer/image/info.png similarity index 100% rename from services/mailer/application/template/header/static/image/info.png rename to services/print/application/template/footer/image/info.png diff --git a/services/mailer/application/template/header/static/image/instagram.png b/services/print/application/template/footer/image/instagram.png similarity index 100% rename from services/mailer/application/template/header/static/image/instagram.png rename to services/print/application/template/footer/image/instagram.png diff --git a/services/mailer/application/template/header/static/image/linkedin.png b/services/print/application/template/footer/image/linkedin.png similarity index 100% rename from services/mailer/application/template/header/static/image/linkedin.png rename to services/print/application/template/footer/image/linkedin.png diff --git a/services/mailer/application/template/header/static/image/pinterest.png b/services/print/application/template/footer/image/pinterest.png similarity index 100% rename from services/mailer/application/template/header/static/image/pinterest.png rename to services/print/application/template/footer/image/pinterest.png diff --git a/services/mailer/application/template/header/static/image/twitter.png b/services/print/application/template/footer/image/twitter.png similarity index 100% rename from services/mailer/application/template/header/static/image/twitter.png rename to services/print/application/template/footer/image/twitter.png diff --git a/services/mailer/application/template/header/static/image/youtube.png b/services/print/application/template/footer/image/youtube.png similarity index 100% rename from services/mailer/application/template/header/static/image/youtube.png rename to services/print/application/template/footer/image/youtube.png diff --git a/services/print/application/template/footer/static/image/action.png b/services/print/application/template/footer/static/image/action.png deleted file mode 100644 index 2cd16c453d66b10611f90ee01deba70edbd7113e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3225 zcmV;K3}*9*P) KLZ*U+ IBfRsybQWXdwQbLP>6p Aqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uh f59&ghTmgWD0l;*T zI7 09Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&nehQ1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_ LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_Ifq H8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ 0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 z fg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vF IcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a (?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-k iKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BK T#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0005RNkl B!xsl#Vcw+EEJE;Iv`=@keuvsRh#uO{P#C|_F8M^)a!LqV`G1R z W%3JgCZLTN# EwIh;;ZU8_4{ zd;2oYV`!$(={TN;%b8K KLZ*U+ IBfRsybQWXdwQbLP>6p Aqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uh f59&ghTmgWD0l;*T zI7 09Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&nehQ1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_ LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_Ifq H8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ 0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 z fg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vF IcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a (?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-k iKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BK T#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0009mNkl FVGKj2CUnt&S0N||3ZzjPj0$HW8b!@j?Lx?nEAO(+ zfPaFk*=V3GT+B{e#6(O+<;tvugcTJUj09T9ZED7(PYa)k<5g_t{Fr;scXK%}_x(QK z`<&;!@AD&30_p&;6W9}<&jMS3Cx8t22e=LV0{j460xkfTQc8D=+D!$;jsoujZvl@3 zUjP?@?|`3x4zLKU2L^#>fNj7_z{|j2zzlFIrSvs*Lfx&-s&~}0>OOVdDmm80zO%tI ztM0Bt>?ZXCbxA#;Zmx*86?{wT8Ff=tf+y5@bxs|r=?#tq|GYX;mh7mysJ^FWHHTgn zc9ztmMM v$Uk{UCC+wO+7{* zKs^?ET95kDdG$Pfghy&p4@4Zb`b=~ybRD?w8dno=890|xI$nXH?Z7+0)?EH^9e6*b zG+%)4IPfMgno@FkaZ 3Y-Q$R|iq|tG`BEm-Y0kUEZCk@Ia=}xjzHO zfw}(zyd1jolRv8x9s1^g@d4lk;FFSG7zW0ID~~Peq2(WtQu?^0_OF1~QLm{7ONu_^ z|Kr;VLgb)&Edw?JH`d^uxLE ou4K`s znyBI$uQ{(yz-z##%c6&XU48E5U7_={ETz-|J_HW;x#+`Dq;&EXc 3t&Nfh{+`0*z%ROJN$jj}}H{004w%IL`pj*%r%fXsewbHy}GJZb0TX_Nvu8 z8Fr_N67-^}zF4@a-W6MGIldULinOjl(dJqPMO{YvVkB2|`1vAmg!_k|Uvh8w`7 Krl$9;*o$Z}0?H$NuB_zlk!1m@=HfA7@`*OCLg}T}iuF&23wYYq^ zf3m#2Dh@oEs(6$?b^;9pIRd&|IC=gOj!F-Pq$D)aa9%i6Y^;AYjtUcUB;q36E_p$0 zP+@rF=+l;0q4j+G-TuVuj|Jg_%B$?}Q*hnz$f+`%D%}3aW#S|ln?XbUgIl{Sq5+6h z4j^>+@22EVFO(3VdtX68Mv88@P7s9q91=XJTQRGfjX3NL?N~fR7s5XnqT4xvPafVM z8zkx(D_#N;m4fikPNz`= E|Y-x94|r6#cTs zEm{oNJ1Urtu^%#{uQ-Y+BE%Ev2dHP?Ot&|fo}h#`xIwjFgdw~Vn7`?nK;6pIqH8&K zZ{LAHmu>bvKk4A1{4ImFrrh2xL|&xxs6qbbvWbo$kp2fM7WL8ZB17;X(1*MLhFUSA z>mGcjZdl?TnAIMnXG5M~ajO1aaddG+Q-5NxA$?__I9=#O?K=iT)}Ny9xVlv=Lz5g( zS$Z{^QH31P9*y90dg$5%5TM0|;jxU!m%|~9Bef`F;qfv;?#X*(pfRJU$VS4kRVd^W zxMkQ?Bh|??WZqp0fg$ Q#h(BL9$R`Nm5aELDIsZR*UP z8HbyfH4Sbc6pH4_KbWqtL|cv%mKb8|KE#LP?6+ZK8SE3U<6}ZdG8wC*s6?(9B&_{Z z3Dp*HV=`6e28|gY*^R&h?IuoUL?R}mrJ(h3QRW*NF%=iaG6F9GRIo}fEk)8d`39O+ zjE8=FV-EH(Eg2@tdCWL0R&=j$iGE%x%m@h%+Lm}o*}5Y2S *J)>v}l;WF|7k;gH?z-M(GUU7}s`OC7{)V^PPVd$nyk)zL3<1bgUvTzjx)=^SDj zg_){r-}2QlxZ^&HSLHXV)~JMi!{Tzu 562zBj-j1r0yG!$+@N05aNhi^gPhF_DeP(m;lMKGk!#>;+^evpBdVXvXZ z(8%D8lQ4>yB9}swLd3wTURGXGzFv-`aiuY)9#^KX=2I=D!Kt=WhVV1BLZdue`9zIK z&7$o6x3F@HZ}#dUMZVfE5wO~Q3VlivMJjo920QJ8WJo3i-`$zWtx+mMT>`lKY3e4H zyj>aE(qG=SMG2Lc~B$%5iFbSG`I$7lGSJcf9}V{1M@Rt~Bk+H*y{Of_|HxsDw+Q zh22cox;!;4RjWd#LZw3bq=TpWtTel%L$Xc#DF9V$NRC#QR@x$N5+?gVZAopd6tNUn zQApsXnx)*jm?*#PgIkwf>3Moir@nuVf_>?_N5{b5Vk97VLLqD%cg| zNqoTpZby5;cdSDze^ey&`a~s)jZ%!#wt^E{W&{g=NySK^MOzK(?ojR64%!YD(!kP? z)5t3xE1qYnDz=o+m%LYauP`(*K2b0+pTV6a#J<3Bkadu?khRfd_}Tq4Q{%VBW;5CP z-OnZ3=Z)=lA)ooRi?uX9>wTB1%C4fGZ>wr6#VBq0nDntCXWpW(_D|zTV_6eH?cO5n zN_C@cqmPk=F`h-!Ky}}FQb&?ct53{}5FAR_5^BY}&+mMl8o<~Bp9I!3C%>MH_zYa9 z9 c9=4i0&Xr4_qs{3w-8U?;sj@dCf|Q%WX1!7At0bWmVDaOC zlGTJYL9=S1wyD^y{LbhCPxw|CoVz2uBgnhXv94_}&fDEI+%%@tXP;vbvLWF|`DXg& z`8ES8^{0lgfQkqZ3($dly7%-Z?}`->STVb;UpfMWzi23(*V}iFF9qBAj7Q<93@_m2lel@c1G1!+Mql zyApp5vm7^ra5>8t!DZf7u2zvj7IW?KUs~B(vNrO>{45OBJa#sn8_#D~VcXf;NIPD5 z>8!(g4j%cFz1Jb7xMeJuOaiH*3gI95l7EY#Gkn91roO~-qmD)N=zZ5~LBTr1GZVfj zq02z>@lu9C(KGQhp`F` 5Jt#3D-ch`q zTrsK9;@D!}+;yzdETsN*z%HtZl_Ujj#QJ-DC5$#RVxxG;q55aK1qQf!3o}jgu8D|I z{?v*b#)-4>@1ra6yk9SJ-_9_5F}D&Mi$mo#ncr#ccT|4iuNQRmSV7#ufnf~&1Y0TC z9NEZV`%9_fOf#+8w}Zx0(K Y$9Qt zh{$T}6}&VYzeT!L_dTL8`_Zn9)#Qe +s&L4d9~ki zo&H+UX}^0B9_d`sfY4C =`O$sqldWFWM_b3UA*flX7dT4P#)X!j zzuwIXsjJ4#GoDDJ4v}`gW?#55qwt_;#C#pxrgZq=v3qofuyIF%BCzZl?Nzx2H%IFF z&f*>G7xB!?OsOoj%qJaVomQoB;hFj4b )V*wWzN}x_!_sWl%&ZYGuswD@ z7JN;bQyOaf+Ll?}qHEo9?%DCf%lz($D2I1)?YhI`5ANIiuN;1%wT>%K`@4a=n+@DG zUoh>< *5(s!^SK~t{@H*shZ zFmV}iW1%RaCpmn={QTP@;FqK4Qi& uKGfZ)O_x3;5hNwO zK|`fqJ)3YcuK@ifnTd?5A_(M34FdTGfj|#$z~>PN -Y@+eB>-Q8J+ehkMt*9nCZ?D%iTslR{TT3mt*5(Q) z>iOgR&Il%)H5PbWay+NJ)+v)!Ex8C|qzY#&Ka!dsW!-hXy&!dp$wi h zo10r&T5jfeokMKezwX;N? q+=5Z&g**^Pv56=;Lf! z=Ld!q$h?k@Y)h`unL_D0+bqQ_9t>nyN8&JG;dp(hLPJAS%Y@|rblzrPZKxqZACinY zR*x>8+{Nm6|J$gwtqlP-s7RGQ7@gLp_U{dH5l*y3t0K;EjhKJmy?VHuDo#%6DQwkN zuMI|Tu0|4-kbr_iBcaMrNZmU+F?efjez{!%e%f5k$j~o$JXiep3^Dt}L(D#$f`X^M zCpsIL1I8Gl+Ns3~bN!8HbF^B;!y0O8SkiGMdqX0x>?kNG+uZ?BDGBsjt<_)C)8jjp zBRp9Du@zUQ6M=@O*>~-f33I)-jo6b`WHhu2Ev9{jVsvrCOqvp_ZNAA7gj96MAxD|g zIcP`-DJiM`;bHhrzLelmXyiAq3h{cm8AfL9e{DZ$)&j{Ixd$2h28LMqlaZMzPG7wJ zhfj_kI6vMQPbGsEa5I1{I-k}qFyWy;kfEc8i07-8Gm(L?K`U=x9&1L!Q*oL9y|;r* ztun-1gojtv%Z$;qs$?*THfy5wz1ukzK5{u=dn0_N&=EE Y(*Xq3w2$W%(!@X5 K$aHlFtrXJ)3S zyMxe#hqwB| oM$;;Z^%wHJ9`@2qGD`>v301}6gVBiv-5r1}`?H1u9Ui_onGQD!vqqi` zG1_Le`A?|VdCNg;V`Jm~1CjIYFb45Tj^ZO`tETdQJ2*@galr*4tnd2vHs|*f9Etm8 zx3$63@{~X 9CoYzgtX^yxzzgY}XBuT3A}bKhL64_smBA=QQ1ZS7N3y z jUd%_qFaJ6 M@Gdd~Y-b zbbWI(KtxFR==*w=D-wZc1O6jLu#6M9r||J3ct#R0!d>tqL(2A#8Xsom8OdhPn=g?A z6i`r5v!n?4Ami>s($_80*E5mV9g$aUE2uZ%OF*2@sfn|*^Yrp^Bv=m}lKulfSmPXg z-F0l4`mg8HKG(L}C%+9ak}wqQZU#UBVRqj3=4;pauz$&cr|Zzedw06@{auZY0|>w8 zghk;=gwbxbS%n%CA!X{o<9bH=0C64$Pghhpx3sIv;E@sz%Ada2hJ=X7tG=wP48ibZ zzG~HZP7!!AjJP3{YMmVP<#^03znV69?tg;+>s);?_UMHpXVLEOe2L&*BUj-UE+7m* z-UshD_^;31x}I|XV6MXXj1ZdfkTPD>Oft(7sqY$6C&^yGmB{8RvpsK6+qdkcZqSY3 zbicibyuppt%TQr9$ExK()l}C(DRLk?hk %zPSb8t+`#{y*>G1 z#YiDQL+UzBaF1Pd+^s{oYv540^K0XNpM&{?$MhCdw8KYD1QlMR*Vb5b{X|RR_tjY- z#!7oncue)WoJq47U=t4ikMF+Wf|C*r5r*>1$|3@K#9Yso2U0Zk5xOPu^nQ8+=Z6JM z*XJGtg6cFx5KS)`dAvEn!(}qR>H>nhy{W0G?s{xyX6BN$IM>Mxf6(T7lyxT0Ozyu} z9W?f(K!NJx5~ByI;HXI42MP#-Z^Q=GOm7;Qe%iA1lGfJNOU1aEr!DGGW1w;Ie72{a z;`1(sn%P0?p4op2>s5U+TYK=GT-u*8O>K7!rm-~Uq)7Nw)ks|yP1J-8jorvmn9(jS zWY(H;)R}(|DfG~m(FkdSCvVSbiOi)h9t|jsOjFrXEY9iT0Aoa8A-&|OAIQn4{Fk^g zZBj-RC)Dy(#oM(1bQH;zDYYyf97 i5chI =6aMej z|K~FQj|=|q%W%<#l%WOeo2tk$Ka!C5kDY(#k{5Y>T>KjhxJ(nWWWl2FJ#{8S!)D)` zeS>tWws1rR6Y|>Hh*lcYR^fG02Y&8SN%Zx7&sBLGhY^;S8@b$LtcApl-8qDP!>(hB z0>YxCwDf@ZEhN^*L=8(%PY)Y01Z(np{3doci%hqHFNQW!u$WAUsyrSqc{dCEX`m?l zo=-tJO^l%yB;( 5@_uF{IX=|(}6CL08|nf4Mic+YI8k9IQTsA z{&i<(NAPyhM{|QJLm9J4WlShs&SQW>&_+u^iLh7O<6l0Mx3vFf1ZD`Pm{|Q~R z|BkKGLm#fP1WeC2keMN#Zm{ yX%yO=M#v{QN}TUS2K^3Q1oq*C3mX2f*8P_z5!a8*M3zKe7uF0O{Y@ zI8fxFpLVgqYOdhot<>+4!r*0jq4~A-#6iz37OX^qR{!T+knU4}Z(?7MM-HbZ@i>UD zx-U*-X<+;hYQe;9Vv#QWz_o+FwaD}owLK99KYrz-wj9Fev?W1bFaIauuITk&j>Jv( zi6c?*h^2HR6Zkn;pCT^lVP^dudc}qx;s}6U4Lpolm=S(+^;p;2O4l!DtrM2d(r#{e zPiUtH1xT#Dj$a=M-G|6=qa62AH0L{f3?4?)_ 2#>>{6 Us7$i{Rg^H&s#RO z<-{MXN9cJe)A#39FR^ztJ|B`3en36l_>;f$*xKEH4;8K&85@h*Xty$Wf6vFv%pAo+ zS-jhNQhh+QaZi(^mej!2WVjL~O`SMGRq?56dsd#c%InFlZNhrjsYP%omefppg9GxD zzj56+qFibY9)VFs-n9>O#QN7AfBWMI+8i?6C^i9sK =9|Tfp zVRYtrX=^g8re`S*cbZ}N?_8{`tp{B2(wK^|mx^Q$TCIS)kA8=|gI(SwvRt%yRkYjE z*84#MbqFqYW@S#AA|X#p@F_8c7_oLc6Jh iW*0tr~e?bZhcGxIO%Xx3~0Y{TGLt{_BA2cxVVP<`}tDMn3t7fV`AzYcccP) z4E1vB{N8*U?bhT3Ne1c_E*}J? QSO|?_r5{DsMovs6i}c7jRf{Rq zC_OqF#p{6IFhP;f*;ZzDI=e=`8l;L %W-+dvF95U+Ny{bX9DJ2Ek40J zV{hj`2le{XdV&p# - w1#~v6wrbpkQx~0|| zvA5;la#Z-C0Y>S>{A`F3Cf9n2l$=(-vZKxf&?9@w6?w?mP=dA+wj>L49~z4C-%Ag{ zSk=oG?pyR{;=D{D+}b4dORSe5 %6ww6ny#micv?nYvZ{FOQ^X#O zl|dDvj)2uu7&8{&A6V?i4>dZJ0qP#$C2(q`3{@{sN}2&gd!m0HN@NFm9@Hd6Mn&Tg zX8&lYPbE)3(BBV@r|*nWp;=RHy*4FuM;s^88RRbL+S>>VDF$x&%Bn5-ZlrwY`J;k@ z!;)FrubWqCQlIF)uqP`^88$CMoKW(SUF6Jp)VX>=C30I9BO - zKY!}V6H~HzEJauq=jw?c8dM}G$k!2B1?e)<6N9mw{0t(iQISb3Xi}&gN~q;Ud90=# zjWR!I1{haAGV{-GgLer=x`oA>#mLdMKKYj&(GL#&Fty?Wswu0NaUK5M>o%TC*IP-J z9b}#sQ!2H!rKNwwNCbZZ6FIb+nwqZf!=6jc6P(CB1Zc+6G+;(O(r`Md^0iPJ_mqX{ zm;2|#8@a;y&J )i zUV3r**G}OP5ikY0kf)H&Rq|MoEzPbs4jD$GuCO^>Q=s }&ZE?1YKH1Zvw9GF1Kz>%YZ`xE|HD%xHjT)}Ei`d|-<( kk=(L;bC!a~v&qyji-RRIO)gy-d%_jLx76h9(9E!!N*in+iD=bacp+<( 6dvLZPl1?>2ag_cN_tbS!>(2-?-Q~F+Pr5rjEGM z=tvAlPaPoY4^T1%GlyUI=8m{JIyzj^hTMPm!0ms?kvkcshB@m%t*CL9iIGpuBvBt1 z8zLMiAJe-%y&lDp5t*{IbcaW8XlMX{qJ!STlo7+Mi%O(; IXRhy+{_!EjC(meE~)Mo->esDCUbZnjR1Nc+bXGwc|R_3ZIfJ89X z#&xY5{`nKz#KeSH*gIVU4lQxg^zi(=BtPFM_MXXEB30FRg$JmD%$l9KA{}uc-QsYm zLIBUFS_dJJ51W5iP*hBiD^?yILx}u9VU`~`V9dqE1z4WX_n9x$itL5V*~+UZ8Tb`D z7asuBj0Q$ibR7q9fK7#k7$#e)8XX;73sk7vvlVG3+``gQxCIviBBC82> +n pCpn5~vj=LAT|P=|p6|Rpn>SCrZwUK5KURZ6uUe zX|9t;-m~8GRij<8&a0wlPKQ~P!*>;gyp14ck`|>GKaL!R|30&T-DvvfB6Rvy!4H2- zF6U(}Bcg=_B!i(63QnW=9JU1W8_PH~><@%`# ; zdIk}_E|J!sBDI5bN2!FY66HUqlS{Tw3?h1R!X0KB11KdkjVE%im5Yl93}DB3YAq1& zx;v%F _NU8?bzu(q_ZskF{6KJRhhYu}7fk&_k91t=G2|C5@o93A_P zkSzPo3=|?3a*{Yry}Rpct|`GQWVa0$JhxR3+O{0OoU2I@(y{t|=hBIYcI+r1)N49U z^gi?&)$D7Uo$PmQa3}(Z)7^4~M|_KI#56G=07BsX`xc;1YJWFJ8B1fec! zskJxS-K6skCj%NIk)WuXOa({``PnB9d7v6^wtKczafS^hMm_DrA zi~Bkg!CEt B`euVZ3xIYt^`#M4uNRF7%4OU`KzvB(b=2}e7>oJz() zMWu!dFPK|Vad(OM;$&1sgVZBMMP&n91)6(Wt`UkW<&YB{YFw`PTI6t6Eiy;hs- TU5?1VDOi3% zejE)DCuHepkuk~Ql^5efRg<8BBSA9Oj+Ea>r=H!7S1gSfFo%bcXs+fw=!Pvs4Qex{ zf-~0Ig4u`1iO=A$)J@$AT$oTEC)8;B35k*R^V`6tQ%pL9l571OY+WO mv}nK4m+oE`nMW4I`t4(S0ak^%>7>%TZQ?i|k@2`!XKJAe3cBZS zNy>bZJ=b{)dmFy`nOFMRMYgu7gE_=?^AtVJK?Dv7C6~~X7>h79pI^rv{AZwyVuf)I zrcE5bw#$xjtl$adOUnQ4E@ovvSy<4 cUT3q{y1;2*GKv)WCsvMtqW@aFB-$UKK%Cu z=X>CGe_bjv;r4nZ@^^ayh -96z|ES^RE=lTXwYKz>NhE1oc#(BL_e?HOrQS)y{TR;g@O zsM}$YZD*25mgk9%_QVQ+3$%5vQZm7R?Vr>T=3Fo5yDl<)+o6eZRH`gW)=DKyON~a8 z7f4%aKkl<)>ExEa@XV4a#9JD+$cty*7SP8tI&!M4m2X%ou~kg{!P`Qo$>vHoJW1ME z|8kOzU7z@&Ee1?A5FJ2J-?BG_I_>BidR-J^M2DyywCeyOuW&0>L`D2$3x2pi`R;p; z>)g2L{YJVicx`~evYvd<)Ft?lt$Mf=I+j!8(WJPcE+Aff>vu?#GrN%aOdW+oZ~x(_ zMv;^vkDqfm(S}HO|2KY-e$CW@$y*AM=OMn8E(^!?Vs>m6H7MM)mqGUR-w~7wv6-(> zq2J&Y5sUJ}c~`vmI?jk!+M+F)#5am%tDh&x=k0Q+*7dvT tdnErjeR;< z8W-QAbF!_$`F3|B&F9o5{CS&UZTZx{rMD6bF$ABK^Z=lV%jIi%>{f?cUGOe@k=hVK zdS%L#N828VLIEI>XNh-Gz250^^6B<`P1?ky@2enUU;HlEBQ#7}yUFfd?!$Pg#}3hk zv)ohbmtPE>kH2c_%_j(7r%GQVkyzR{gN>8L;b~}TPjHi0?Al_CXUr#-xxHUbHVpN$ z=Vnh=n$l=<7R8uw%?uCugtCQ*k1j0MT3x(vopLMMd^Hfp>hHHjUa$ZeXm{&urKNom zBUq J!nH{i2I*t6oHlGU@dT`%f(7PFUaGVGdYQ5s-Qo##{_N z``^#c28$`=yh(zTD;JY#la-_2F}#D?2_9Cd9Wt9rWrHJ03&!f(1=|MqZPlC77t`%S z|EVTEJ1ET{{xPhOuF+&Mp4jg0m#pBMxf`v>v@Fv+GZvC1>#5Qa63){?>>)6mB!a@8 zk+nS^hjvvS7mfafflUbA^i&z2oD5$D`HY?Kw`IJgZo;TSA@Oj`k7 +`B{z3er57(j@U0! zmIHc>UZ1;lojZ;N1HYi$M5_I9vy)a9HMO})9XE_LU9ha)34;q-sCW;5Ld?hrJ+LJn zeus(lb5035je<2sXodeE2tRv~n%|wT$ !i`<5=dMEs?tYIXc&2}x2 zHDJ$tWvYa5H70Bi@WDs@m&}FVS6=7Z^|~6DO}VdJ_C6;%2n*~&latx+mpZ)AB0f}7 z+)X^`VQ6{TCddS(*?3>7s16rfjB#T-l`}ctFT@++@0KuA=utLQ4ks#U_~~;6v2oHY z-uMS>Noy2A^o1!HGozAr*e2e+%yC7artPq%E1=->-D0-!zTA}zD#G4 5iAHBEXA+IA^=w1scwz>}L1p13PGrv}Nz$u@0wyzC zQl` g_VUzNVn!{l{yav17S7Zvj-m7FW}gAcp61&HyA6@ltrXoSWYut DSN*s7@l^s -8qDYRfZQw84}``B6E zE$k#HOwAV0hWx)t;8e}C;Kb7YpsX}!`{5v`!ny@e0!HlVR#h4K-)EK^0-XK=3*VQE z{=?8dKuXKrvlAn4U;UbppprO({dTSN)}PjSU4tL$xP13=@p^ut-C@o>6#I@* X0s||JldFh;9lcei!W!lE; z(pvDk=z0?d^=`q7%e+xLTqf>I4P;u|fJc%pNSG2b(XXrB4qKEHasb&>Rek?sz!_oX zdJ$ld#gO9@xdwXF^LXM#qv=IDHie#HjHF3!RKLe41QtK}*Z@4m#6C>&w0ULLMThrn z!sxq+2HAN|dXYyELCO@;3#|>BC&%isF@Z8c1#bjN`6{w*aTE3OHXLfd7Od0bGjNGl zjVS)K?x!#Ud9!p=9v2c(TWmp+^FyZ1*Me`44>L4rfG?#UVS3URGz10Wsq4IhOGvWB zQ#|#1{eLE#-r*)~+<&LHdoWDh@-eDcgPm1&5~f5C4SLU{O5k9d&S&?h^(|pn$Ur!n z?H%A~hsY@DH(Xn26iM(f#S9|R2Kxsv$At^?mzG(}p4oQwL>zcnKv~}Yo58Jt-hmfD zPBJtW4r`a7w))yN_njCQDaZ4@;e Wc3GOFJ;2~BKnKv}Cw2EkN%{c) zA|3bXr_bfSQu}V=a>NyNW@aY9xEU}#eE+`01h{N~jf#@e ?4{ux>F&fUelpPH%g0}~aM-m<(kg_cW@D~FviCNQ7AFtu zr$T3*{UN*;5%uj|+56_cJS~#dO_wHDgRi&X^wr}6-rog1Ke{q@Zb+xVHZ>7yf`6Kc zaEoY#$dTdkh3p)!;1Zwr4~Aq>;W7x=4-mBn9_j-l-78Ms)v%;levjh%lFMpEH@ic_ z$TEfXC7UYAnPI+6Qr-!CNX#@rKeN0%>T|a-Mfx_9%k;Po$h6hX##lOyHpThmV)RB7 zDRK!i{mn-u6D~gHWnOIP@MOhQNh2JbN!x%X4twFb(02TJ= JH`zc7`d%m- zPwRJ6j}JMSnZ{4IVF=Kbi2S#oS1YTuoLmw LByKeQvHewHe z?3anJtPzJW(v4lY%vtD N{;;W?`A;^#E{(Z1l*R6|GU3{Fw`i|G>3pDyrKJd6nhCQOvqO< zY&R P9&2q^l3eI2TzAb1 zaWap&oFgB-h%oG(j`R-Vl@Mmteobi#Gh13>ebBj5AWkP=p8jV4`yV(;6Ih&F0H{8t zZs)rrw7HcPkWV)Y8^fv0I%7(q`Zu>$JocSdGYR&f2k)HR=UrO-P$o18QqtVbxVQVA z_6wgby@f`<=N-}=V90=QZf=BMr0a5&v1KRr{o(O(d5gDT&L$uV?9hrl5GYPe06fL) z>}-9}1C~-Kvku8`O2e3E02)+TXNc!_1C+xkpe4k_#MrER&wVY(ls7wRtWr==m|0&J zpnX_i5fv=Z@^VS=E^)mxEW$t)qQ74f$@Jbdh)RdRom{}w$2J*|N^4|ETaBig=kj_f zE~O^Yx1XzDHTqI3=T;jS>Y8?N!OPz;S5yZhC5^IvDZ-(9J4ig_%F3iEE !mPdD&(EoOX!a+Uv!fFvMPj>AViH zUEHrAn@CrdCp68QvE2DhY|D3%l4C&j)ofPlMi?P}Hjcze!xbie0rBW7h+-ENC*7lR{YBC6ADjvNLVB7E?4C3qqQ(gGm2^X*g7rb>> z>!TC?#xK@L?KiBmA21`mrG7?N%NZ%t;mQ`Paq(~+Q@KsZ76PLJrNL&}MRQi?k4sYk zm%l&peQsZU{bzO8YiMg~*GY9QI~SLNni^$^6&oMlc!^@x{p!JMu4EdsWX9|3#an 4ln+@1vVhWvu{trs^#r!T{v1DkN5tO|>WkXN-|t=4Wc_>PZjdvU2H1UAS92 zUZ8gWB*W)G2vMM5hoZHgZJR81%f>?~mm;f7=QDS>r;oCne($R)Q)F Pb~ zfo4vFiqmP BU zS6)d8udk017;8#l%t*uB#M=S1$2%6?IiL 0x1uXXr2R!5%b zuaQMe(q;WAE7C)(eZpvoS`y6ptE~vqD4mbR{f}5u9=a)KpuvNC=9T6izkt!qPZ#5$ zmFdm;1KA|MS9=v? *m|fgs^K5>s5?roy--76i z;^X#eaoWq#duzr4>r3A65k;9=luMHpLo5;W V58>TwuRc4LA`m z(8I8H&ETWqe{2`~qF{^%Jwt;>X;^= q6I*c{{CD=G}Mgmq%0#-3w{~_ImC(7*e9vJtZNe1owpNfm~ z%cD+H!ean)+;ZM}@`VK};zRT8^2vP UgT+e@XcCD_w5 zG|u-L?U-Tm;m+^v&StGOW`BS1vZ(W_f?JvbWA=ziI_{R0L93X!NEPWvS?o*@t<=u> zHjq6?04mDl%a=qTxiD}`u%un>%Q&}BOEKY6r;Qn9!U7X`yw=s ^wkd?HL`jH6~9pUMIs394|5)*pqCXY8p|{AU&I( zKEJ%4Qa}~4o}Gp+fdRD0%LfZ)F#W}&WQ+dC#@umYD|JBg5SI&T)CWNsxi3WPp-0~k z`5W)lU_aX(f5E`O7oy4_WP_IyLyRC`!x!G4ZvOH$)r@CHIwsTDd6Oil$A>1u+@N~* z)O51P-*j&;WJx*u8>V9<9V);pkIH2VNP7GP2GAWnRqKyO1+x!uI%dK(;D>N1;gDm6 zEfOuSJqev;WuJ~Ah4A*Q_j?2IS`ulTt6cbA1AE^2VVP~XMnx3DJ~Tj6vqAcvYtQE$ zcxREmnk6luoG2v)snUs@(srozIEkRm&Or9mZfWfEA}a^#%5m^n)}N1J6Y1wt@-tNE zGnT+WwJ~4vM;MLc7ARV9;D?F QK$cp_}ti;1%`dw1_0BjN{>=xaC ziki+)8LIk2u*k!RAG@%ythF`L+}s=$Cj09pt4PZs`04KAV2AXL4}^uK7S-8RX7%U1 zNtXpqlp~|4t}Z~c>-d)oX^pq=6wn|F|D9N!d>;!N;4evr4(Qk^Fw-u2HY;0bubY(4 zuJe; WpRbC9#)yd`|MUu9oRQv84In zmpGE>CWgkBu#v-WVot=U7Y%&(MLi+BiweXB?n~E2n$`JFkYNFM$dGH1Hn^#_O!0>f z1VX0j)|~7Tk$O4`;A$})1w+EX((~~633w_*JiL%Gn e&IHk4dL7y0dc~d~I!a zJ$izgp7RkHPVIX*U?ssIA|iq!%bIZPL*f0&Ee4hyukL(g$nn_M-u{C>V_8Iu!1&8G z^Q`rnu-Jx2f(?Jug!IXM!bRkFH`Lz&$l|*E{8fAzmE*xH=o59=uOjz(njIa 1h|4W%M2P9RK=Ryrsy0)eA)fDa!{DG^BWIgHrp)WnlD(@IY#>KClsog^}gQ z(w(!vl(bPs ^@*O;^@s2M=%FvqWiO;lMa+@T=y2EDaynmf6Cg`1N-pZ<4M!OUcQJ6Br~j2K?K8 ztWi_mGH#ZpH+lT40vN+43-BMQFz9f =#fBrNQjxDcAde~|SNV~JzPBe(wQ6eOtCj!=JlgxUHWCTfMc)XStqzq1Un!#s z+mJKgTQq6kN1P3OH3f?rzn}hT^?jQos}V =V{e_?JK7S{c~R)wjzy#Yq(O(JY_3Ly_v%;4Up L4?{{36P%v3V~ zA7zSXfu@s#gJW=ig16Rg?Xk7d{ X`bg-`;a`t))-RL9Smc9OPdJvZrTzxMTs&V=e;NA#9*E3rT^P^P{eGnQk97DzhF- zUl0x6`qxsQls<)&uY_CD wjqiQ z1I)A%2b_W8Qt=t7MS}-behC3)fJAWbzkBF}`)6=A55%h4cseUshnqG-U-)HRy Wb51YHYPdZC9Y!1#haU`U4lVJE 6!7 zvizlZ 2q6xtV>^(Q~y zu-tk&0eu2^ax?yD4Z>AJeAq@kvaFQgz65?w;D0~BSdT?=bu|l#_ir)q5>vk9e#1(; z2PXg*c$?2#9}7f8p0{lGz9Dx5BZK>CHX?UtD?>R#UJzOxp46HKdK<+4#buUqzt&OM zSGdLZ)Vx~WE3pd+DH_ Xm?kAE+ABHj_yOoW zQ!xLVy!rBP3Mz@g0-R-em*Vp60|ud+Br=ni#6~my{$UrYt@N==`Kxs Tob`CK)gDQ9GObT?ou<5;w(1@_}9dUBKxwi%2Uemo*F~A4WsWh_0Y}%LO5B z#Aoqh83CGzL&$7;?$lOZm{QwSHpji9Z&<9Ne3(i=_g2Kb?kRxm%oY@?dEEE=PF{{- zr?OW`pH#>a!?y7uMJc-e5A&R}ftD!zumZvEY+%HWxyz7BP9B6lK^()1IV{eIQBQ&e z6NQm?0<-MdS1rO&u3 &jod9y!+{|sqnb&BU@g#r&|zy3@M*=T~gA* zept _KLcyW4X@(!SqnElY*Tz3?_Iu`+s4pqnc<%wLQhj82s_$7C=+ z_G3Z6smLdXd1@2wigf~t9;c#a(j M zl?+|qo!S+nU}D;(6NRs`wLnIgvSL)UK%&mAZR8KoY2yZ1A<)EnLf)^l#$0aMqdC3C z@F(`c26-_hQYIQ#%e~NUDR#~NJezG@^^%xy{k2gdp_GZu9v`}Z@--`=p{o8!TeFgX znFU`Z`p!$w@lW_=ktI)_I1T+#N0F#Wnj*WV5Eqv9Ct|O4L(4eXcI}7RO*k8Gm4>T8 z_bkN?YJPCp@*cq@0pE3U$ktd6m^%Mk!3AawVaK-_A$%(bkK1$5oNSUz0T)I6HeqoA zlDfaOeCQpFwvS%qM#mXj*P~`1*WFU|yGDF|%Y>X{zK{^cO{60P*C&Rs4_Q&!rTeRK zGq3}IxRc+JsySFtfTTMf1tu3IOw<*Y&)1sfuKy=grR(L^^nd}6yMhaYA760r^xehu z^fZ7NMH@LlqWWJoT~%0AZQE6(OF&wX?nb&(3F$_ |vza?Z{P z*VB430x6v21XKjNCdk NW B0(`3zC bT7>J zyzXBy^(LL2V`TfSSny<}=ATm`+|R6Ct08iPEvh2}6VthPyy5UcB;N5R#i(8^%;VK% zdr6c(XV)8O0Z5f#)gH^XPgq?K>Z;*~sR*2@E|@XY9#av>!@Cu<3Y6j1E7_%e{x%lU zP!aFq?Fm$f)PH(Xqb KJ+_E%dS<7r1-3n_U}_f`GUD)AcB7MCR8+g0?@T zX89xJvI6PHggA9dhq3?KV<%=a^YF(%VzFsT#-q1P$Hg42%rmn%=*OkDSjXr98u0ft z_~vi_W&t&2p61m &UA;gAkjHB{dkRvHygPRo zv#f24Lclq1r~IcIxxH95!#&h(iVa1%C>Cm%22AZo)pQlO=qwJ@b?*9LHUhuaQAz+c zlx3QQil *!a%r%%^dO@^=L#yFX5m}A6FDFNV*1Ikg@EDVhdYpiI#76La zVtrhNx&&k}^*-TAq8kN8uU4t*6f>c7Wi^yTi|vQuZJ}pbY|0N^raN3jdh`?47h3Ea zAH0g3WxWA_U>JU>cO)zK>l}5;AE=ixib@J)Guk)AhTAAtZ=N%T$!Ekp`hnw#Y@HTd zePbuOshL)?15Ie;X50A0htA2T0?bDCpf%T;z=8nE8zK2lW(N0dRQ!i( > zx*hh8$EA)o3+Od)jIIQT75cHQ8As`yS88%=b=G*No@3wS@7uXJC>3R@_QU1MwCkKE zuFcsk0TpJrX&Pd$P1u{B*2f$M&0DeTzkj*Z%gb~xU2JSn`;}6I_uVnW-+g*Zs9gR0 zThy+3Ke+jmt-3P(m_cI8`! (j?#$I%Y1 zu?gK-B&37Et4{-*E=@qeXFKm1(diFT0>qelp_PWxP}UHSDrGI!917(sIXlS56KCtq z%cB1HF+NzG<#~` ~u~SLcUjzI*E H zPO<}!@&_eAq6G+l*e0sKBmkmObEQtOIo8aQeFxf-n}u!GFZY?16_vUA)|<@_uhKIz z9-0+#@~ O)#shMWDO;?F*?s6uskS_voF|v2pB( znO6IEUSi^7&N=+ +WnKA>JC^_6(mLFq8pB~5Z8}T_LNmm&ys$0k6 z#8@2$K=$I%5*gipUf0OvqcqjhP{8{L!jeI#0cbWo-&-zk$7CR{(a58t^LGUG8TC$L zvWQpGc8cvVW;BD@CvZ$O$|v1VF`ASiXq$3I FcRDF5tZ zc5W0ic8RiFn&Y7o@&T7BNWxbMe3h+u3WcwMjBHE2jHbN)(vl+$!?oLJzHFbC(gohM zbkPi`S#p3?0xNu3JL~zoB``SZkrtD~oaS0|Su0^GH_yqN3Vsr#@&D0`jeApsr(4P> z3Ud)(iOaL*a~rH9^qB`g`xjTmzYazMr0kwIc_FE(shUo0g|`oTpM@{qk1k|*kYiR@ zFYNDIzG9pz3xye89Y?cdO_14YMh6Hq#L-*B>Y?h+?~kP@0qU;#>1rF)(#fvb@* sJ zdvNTB)N#m)LsJxWdzHwe!u{~5zLB6~AbHirlt2GMl~*#r!= q^oGQW=6L}hZ@ECHhb+D zIj_<9GE`cvq;!rM5yXV -! zAfMp3@>*EygYr~7PRj0{0E>bdSY41MrBe|8P0Je}ON4IU-xwE<;oG5|gAB?#=S7y( zcW u<3S@p9ARf%N~Pgc^7bNPDBwA-mE_uz zoC|z@rK*)}$X1Xz-wWeO2G|k+H>a1&6SWr{hAgGWQ`7EEFN;r=#bc2+AQcV?A@K>6 zAm=)5*IYv@YbhN{p$f7b;N>hv6_5WyotB!qjiP_!dmA8pvj;l7Uq|o-{==%g0Inf) z5b7G!v($XmxuB`sBx_>lGyM> ^RG7k2KkGUok$LszeNmSiEU0>Dh~*cX*YGCs zv-uAcJNb`Ztcq&oiRVs>=)!;jjM;eG;^F3KF=ZRxZfFBPaFPaR7r*dsv?3r|)LEsn zQ*dh01dJQ;8Ej2^$pl!$T;1OSQ0!C+L>+BXAS%M>Q?t2 WN;i2OB%G?z)BmP#fN2BA8vzd=SRoWB~I9Z4Gf+CpR0l`W3cP9k2FbPQ{xT^8> z0=VqRC@0>~-kWoc_O3&{Yrf#mpLjg>SP{@a7} UtiyPy=jXsiv}yT zpF}+W_#>s#W+`4R16d+{If$WW3yND
YOd Jx1UL_#i& m_ Wn zr+
%}p zl#c*pPW|A8T$mSt^F|=iUq=}bFs0Wg1*Pjo-`3_j|B?gAIhu4xDx`?WyyLfzmrd`{ zj%eMgd9(cRZL5G9HPa~R#H7PzVB)ztRlsVpzBO^3`7w0E9}*ey=}(fs4%ugkg97 zMfiTS-YxeCU|Qq%2H~YR=6U*Ut!4X4;PG 9*{nL`iux4P^Q UY*9cp%|KRkeTZhvDQmXPc6kP zh)01NUpk2=%0UR-tI8+hbFonBqz7a`8V #(;?hG8tVP8vxiw4T3}x)Emz5C z%~EkMW%bh!HW~uX4Ujl @annKT@f20o1_7%hlr%iKLixcJq9^ z;Y}oJdaXNRSuUt)u0+dOrYSZ(w)Mo<3}TLoE=1VHN;bJZ-afbknlov9`1KKB#OsNd zzap2@D|BWd-{hVZ+r&mSVuAxjF}vltF$fA$YPp4tkUV<$iz~od?74WJJ<-1PsY4>u z=|XBKM|ZOHI6P?oz2p7NF6t#ijwVUF5wC#MhYqLsbZ;eFI o#a` zd_|z0f|o|{(VDsCzVlW0JtHWp=G_+*Hs8Q(P-;-$3Csq3ifYtETvK9h-qc2xFMqd! zFb!P+3~X1p#MkVTh;yC0WJ`73Btx%p@| cx2EJ*Bdn$5z&p(p|` 1S^Y$VY59O3#58JfC&mlSiSeYtEFl>Mh1h zr&2EG&R_mz9H}B7TO%e*2oxE}aA;l~$mTFK`w~x>BBhe2BW<<(+qKnJEj%5Qv9Oi7 zNnAl|+X<`tyd{+QrD)liI&|p}<)w$&8<+KZatdDVSP#dOt_KDxEkY;Fdg8TIVwKHY z1dj$>r27}G0WRA|wl9*ky%~E=vB{AiP;dIH@4| 9NCIX&Qu|Zj6uCe19Y-?>HUj^vZl3rXfN 8HqPFbr_x+=wy2?z^M q1J{kwDCu_yR8TmAp{^xzZwY$7>Zacl z!C*={&6`~21{r!4zP6H!p+K#49)B*=_yAH3`SNNI2mf_Nr+#hL)#qEN8SK6z UP+2g3-=nQ_ z$F&V9HXSK(b^54hi7;dU>}&e6wohSr@Y_?948NNP&f>6&f>8k?jdPA1s9TiR|E&8p z0K@>(xzpnK!ZZkbsvCZ)o4S)0>W5eOAfmL@0p8Kz&5BN(FP8(rM>K!H&SU3NRvi#3 zI#~QHFL9>#JgVyV0A%)-c6RB<+6mQ}Jd0CPy$v0YIm@ndW1|E0r(TA5Df&LVz!vE{ zF*5_0Q~bpDL*!o7)PI^u9>nx0O#TUG8_tRDzON`Q4gpyGsU&xpZ7LgiAs;s1`JU6b zwz=<)W*sfoMa<65IyGct_yf3&lS+0UbB0*C*9|ytW#hLo_2--hsoGI$ilITe@7oV6 zxU{fmT)mzB;;6?L%}9rsp_(;Dr{cKA6!057u;i?q7HqTjSk`WuHu8F8twhDkk)-^` zR7(7k7AKBzFzAA&Mw)e$asWCTNz9G}Z+ $>^ z^Ow-?+6F<`j7rssD7w46CNywscR7yn`S5ujQOslTDV=T9Z&(uJf5Y8c21M6+@{Ntn zWopw9xwnZGvuO5cn-7twerrVRC5Cqkl8Q x6w{lTVm;&9KC=CT z``L&UY$f9=1Wg*Ngn7Dx_!GpbQGsV);rxl;IR^boSgivrRLlWr*8iI?U=P5ga`FK+ z#GK+a4tJFz&lg}@IkxxZ2mE>FEmu~@eE!zhG(R}Goh(c1+p{E_-sUG#0uD{>?H|fJ z+J!pl 1Uk5^*P}y{N4}RR8RcG@a)bR+ES1K0Uc^}glkRYdyRg-GX8CZus&8lF zH0ZXAKO^l!oCINM#cw( #m%D6JBX(0#7_ zeMtTNW+Q}vh^Xw_0{= dYv|Urj90eu zX}2BPBq}f8?$i3-gUzznJ{WfYg5%5Q8u6CDol!osI{xWN^ATH9-vg)56`>;b+ie zYBs%D-eD~&B{>Ht>5m!2L5rt@Gnv5lah