From 0e4905accdb6ae8757bdc975502ed234bc1eb528 Mon Sep 17 00:00:00 2001 From: yoimiya-kokomi <592981798@qq.com> Date: Sun, 8 May 2022 05:01:18 +0800 Subject: [PATCH] =?UTF-8?q?*=20=E5=A2=9E=E5=8A=A0`#=E5=96=B5=E5=96=B5?= =?UTF-8?q?=E6=97=A5=E5=8E=86`=20=E5=8A=9F=E8=83=BD=20=20=20*=20=E3=80=90?= =?UTF-8?q?=EF=BC=81=E8=AF=B7=E6=B3=A8=E6=84=8F=EF=BC=81=E3=80=91=E6=AD=A4?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E9=9C=80=E8=A6=81=E5=AE=89=E8=A3=85moment?= =?UTF-8?q?=E5=BA=93=EF=BC=8C=E8=AF=B7=E5=9C=A8Yunzai=E5=AE=89=E8=A3=85?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E4=B8=8B=E8=BF=90=E8=A1=8C`npm=20install=20m?= =?UTF-8?q?oment`=E5=90=8E=E5=86=8D=E8=BF=9B=E8=A1=8C=E5=8D=87=E7=BA=A7=20?= =?UTF-8?q?=20=20*=20=E5=B1=95=E7=A4=BA=E5=BD=93=E5=89=8D=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8=E5=86=85=E5=AE=B9=EF=BC=8C=E5=8C=85=E6=8B=AC=E6=B7=B1?= =?UTF-8?q?=E6=B8=8A=E6=9B=B4=E6=96=B0=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 7 +- apps/wiki.js | 136 +------------------ components/Calcendar.js | 209 +++++++++++++++++++++++++++++ resources/wiki/calendar.css | 89 ++++++++++-- resources/wiki/calendar.html | 21 ++- resources/wiki/imgs/abyss-icon.png | Bin 0 -> 50508 bytes resources/wiki/imgs/abyss.jpg | Bin 0 -> 29944 bytes 7 files changed, 312 insertions(+), 150 deletions(-) create mode 100644 components/Calcendar.js create mode 100644 resources/wiki/imgs/abyss-icon.png create mode 100644 resources/wiki/imgs/abyss.jpg diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f9f6ead..0e86134f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,8 @@ -# 1.4.2 +# 1.4.3 * 增加`#喵喵日历` 功能 - * 【!!请注意!!】此功能需要安装 moment,不建议使用`#喵喵更新` 自动更新,否则可能重启错误 - * 请在Yunzai安装目录下运行`npm install moment`后再进行升级! - * 功能尚未完全完成,深渊信息及部分样式仍然在调整中 + * 【!请注意!】此功能需要安装moment库,请在Yunzai安装目录下运行`npm install moment`后再进行升级 + * 展示当前活动内容,包括深渊更新信息 * `#角色面板` 伤害计算新增部分角色 * 目前支持:雷神、胡桃、魈、神子、甘雨、宵宫、公子、绫人、绫华、心海、钟离、刻晴、阿贝多、香菱 diff --git a/apps/wiki.js b/apps/wiki.js index 1aa3f8a1..142010af 100644 --- a/apps/wiki.js +++ b/apps/wiki.js @@ -3,8 +3,8 @@ import fs from "fs"; import { Character } from "../components/models.js"; import lodash from "lodash"; import { Cfg } from "../components/index.js"; -import fetch from "node-fetch"; -import moment from "moment"; +import Cal from "../components/Calcendar.js"; +import Calcendar from "../components/Calcendar.js"; //import {wikiCharacter} from "../modules/wiki.js"; @@ -99,140 +99,12 @@ async function wikiCache(e) { } export async function calendar(e, { render }) { - let listApi = "https://hk4e-api.mihoyo.com/common/hk4e_cn/announcement/api/getAnnList?game=hk4e&game_biz=hk4e_cn&lang=zh-cn&bundle_id=hk4e_cn&platform=pc®ion=cn_gf01&level=55&uid=100000000"; - - let request = await fetch(listApi); - let calendarData = await request.json(); - - moment.locale("zh-cn"); - - let today = moment(), now = moment(); - let temp = today.add(-7, 'days'); - let dateList = [], month = 0, date = []; - - let startDate, endDate; - - const ignoreIds = [495,// 有奖问卷调查开启! - 1263, // 米游社《原神》专属工具一览 - 423, // 《原神》玩家社区一览 - 422, // 《原神》防沉迷系统说明 - 762, // 《原神》公平运营声明 - 762, // 《原神》公平运营声明 - ] - const ignoreReg = /(内容专题页|版本更新说明|调研|防沉迷|米游社|专项意见|更新修复与优化)/; - for (let idx = 0; idx < 13; idx++) { - let temp = today.add(1, 'days'), - m = temp.month() + 1, d = temp.date(); - if (month === 0) { - startDate = temp.format("YYYY-MM-DD"); - month = m; - } - if (month !== m && date.length > 0) { - dateList.push({ - month, - date - }) - date = []; - month = m; - } - date.push(d); - if (idx === 12) { - dateList.push({ - month, - date - }) - - endDate = temp.format("YYYY-MM-DD"); - } - } - - - let startTime = moment(startDate + " 00:00:00"), - endTime = moment(endDate + " 23:59:59"); - - let totalRange = endTime - startTime; - - let list = []; - let getList = (ds, isAct = false) => { - let type = isAct ? "activity" : "normal", - id = ds.ann_id, - title = ds.title, - banner = isAct ? ds.banner : '', - extra = { sort: isAct ? 5 : 10 }; - - if (ignoreIds.includes(id) || ignoreReg.test(title)) { - return; - } - - - if (/神铸赋形/.test(title)) { - type = "weapon"; - title = title.replace(/(单手剑|双手剑|长柄武器|弓|法器|·)/g, ""); - extra.sort = 2; - } else if (/祈愿/.test(title)) { - type = "character"; - let regRet = /·(.*)\(/.exec(title); - if (regRet[1]) { - let char = Character.get(regRet[1]); - extra.banner2 = `/meta/character/${regRet[1]}/party.png`; - extra.character = regRet[1]; - extra.elem = char.elem; - extra.sort = 1; - } else if (/纪行/.test(title)) { - type = "pass" - } - - } - - let sDate = moment(ds.start_time), - eDate = moment(ds.end_time); - let sTime = moment.max(sDate, startTime), - eTime = moment.min(eDate, endTime); - - let sRange = sTime - startTime, - eRange = eTime - startTime; - - let left = sRange / totalRange * 100, - width = eRange / totalRange * 100 - left; - - let label = ""; - if (now > sDate && eDate > now) { - label = eDate.format("MM-DD HH:mm") + " (" + moment.duration(eDate - now).humanize() + "后结束)" - if (width > (isAct ? 38 : 55)) { - label = sDate.format("MM-DD HH:mm") + " ~ " + label; - } - } else if (sDate > now) { - label = sDate.format("MM-DD HH:mm") + " (" + moment.duration(sDate - now).humanize() + "后开始)" - } - - list.push({ - ...extra, - id, - title, - type, - banner, - icon: ds.tag_icon, - left, - width, - label, - - duration: eTime - sTime, - start: sDate.format("MM-DD HH:mm"), - end: eDate.format("MM-DD HH:mm") - }) - }; - lodash.forEach(calendarData.data.list[1].list, (ds) => getList(ds, true)) - lodash.forEach(calendarData.data.list[0].list, (ds) => getList(ds, false)); - - list = lodash.sortBy(list, ["sort", 'duration', 'start']); + let calData = await Calcendar.get(); let base64 = await render("wiki", "calendar", { - list, - dateList, - now: (now - startTime) / totalRange * 100, - nowTime: now.format("YYYY-MM-DD HH:mm"), + ...calData, cfgScale: Cfg.scale(1.1) }); diff --git a/components/Calcendar.js b/components/Calcendar.js new file mode 100644 index 00000000..54013f46 --- /dev/null +++ b/components/Calcendar.js @@ -0,0 +1,209 @@ +import fetch from "node-fetch"; +import moment from "moment"; +import { Character } from "./models.js"; +import lodash from "lodash"; + +const ignoreIds = [495,// 有奖问卷调查开启! + 1263, // 米游社《原神》专属工具一览 + 423, // 《原神》玩家社区一览 + 422, // 《原神》防沉迷系统说明 + 762, // 《原神》公平运营声明 + 762, // 《原神》公平运营声明 +] + +const ignoreReg = /(内容专题页|版本更新说明|调研|防沉迷|米游社|专项意见|更新修复与优化|问卷调查)/; +const fulltimeReg = /(魔神任务)/; + +let Cal = { + async reqCalData() { + let listApi = "https://hk4e-api.mihoyo.com/common/hk4e_cn/announcement/api/getAnnList?game=hk4e&game_biz=hk4e_cn&lang=zh-cn&bundle_id=hk4e_cn&platform=pc®ion=cn_gf01&level=55&uid=100000000"; + + let request = await fetch(listApi); + let calendarData = await request.json(); + + return calendarData; + + + }, + + getDateList() { + let today = moment(); + let temp = today.add(-7, 'days'); + let dateList = [], month = 0, date = []; + + let startDate, endDate; + + for (let idx = 0; idx < 13; idx++) { + let temp = today.add(1, 'days'), + m = temp.month() + 1, d = temp.date(); + if (month === 0) { + startDate = temp.format("YYYY-MM-DD"); + month = m; + } + if (month !== m && date.length > 0) { + dateList.push({ + month, + date + }) + date = []; + month = m; + } + date.push(d); + if (idx === 12) { + dateList.push({ + month, + date + }) + endDate = temp.format("YYYY-MM-DD"); + } + } + + let startTime = moment(startDate + " 00:00:00"), + endTime = moment(endDate + " 23:59:59"); + + let totalRange = endTime - startTime + return { + dateList, + startTime, + endTime, + totalRange, + nowLeft: (moment() - startTime) / totalRange * 100 + } + }, + + getAbyssCal(s1, e1) { + let now = moment(); + let check = [], f = "YYYY-MM"; + let last = now.add(-1, 'M').format(f), + lastM = now.format("MMMM"), + curr = now.add(1, "M").format(f), + currM = now.format("MMMM"), + next = now.add(1, "M").format(f), + nextM = now.format("MMMM"); + + check.push([moment(`${last}-16 04:00`), moment(`${curr}-01 03:59`), lastM + "下半"]); + check.push([moment(`${curr}-01 04:00`), moment(`${curr}-16 03:59`), currM + "上半"]); + check.push([moment(`${curr}-16 04:00`), moment(`${next}-01 03:59`), currM + "下半"]); + check.push([moment(`${next}-01 04:00`), moment(`${next}-16 03:59`), nextM + "上半"]); + + let ret = []; + lodash.forEach(check, (ds) => { + let [s2, e2] = ds; + if ((s2 <= s1 && s1 <= e2) || (s2 <= e1 && e1 <= e2)) { + ret.push(ds) + } + }) + return ret; + }, + + getList(ds, target, { startTime, endTime, totalRange, now }, isAct = false,) { + let type = isAct ? "activity" : "normal", + id = ds.ann_id, + title = ds.title, + banner = isAct ? ds.banner : '', + extra = { sort: isAct ? 5 : 10 }; + + if (ignoreIds.includes(id) || ignoreReg.test(title)) { + return; + } + + + if (/神铸赋形/.test(title)) { + type = "weapon"; + title = title.replace(/(单手剑|双手剑|长柄武器|弓|法器|·)/g, ""); + extra.sort = 2; + } else if (/祈愿/.test(title)) { + type = "character"; + let regRet = /·(.*)\(/.exec(title); + if (regRet[1]) { + let char = Character.get(regRet[1]); + extra.banner2 = `/meta/character/${regRet[1]}/party.png`; + extra.character = regRet[1]; + extra.elem = char.elem; + extra.sort = 1; + } else if (/纪行/.test(title)) { + type = "pass" + } else if ('深渊' === title) { + type = "abyss"; + } + } + + let sDate = moment(ds.start_time), + eDate = moment(ds.end_time); + let sTime = moment.max(sDate, startTime), + eTime = moment.min(eDate, endTime); + + let sRange = sTime - startTime, + eRange = eTime - startTime; + + let left = sRange / totalRange * 100, + width = eRange / totalRange * 100 - left; + + let label = ""; + if (fulltimeReg.test(title)) { + left = 0; + width = 100; + label = "永久有效"; + } else if (now > sDate && eDate > now) { + label = eDate.format("MM-DD HH:mm") + " (" + moment.duration(eDate - now).humanize() + "后结束)" + if (width > (isAct ? 38 : 55)) { + label = sDate.format("MM-DD HH:mm") + " ~ " + label; + } + } else if (sDate > now) { + label = sDate.format("MM-DD HH:mm") + " (" + moment.duration(sDate - now).humanize() + "后开始)" + } + + target.push({ + ...extra, + id, + title, + type, + banner, + icon: ds.tag_icon, + left, + width, + label, + duration: eTime - sTime, + start: sDate.format("MM-DD HH:mm"), + end: eDate.format("MM-DD HH:mm") + }); + }, + + async get() { + + moment.locale("zh-cn"); + + let now = moment(); + + let calendarData = await Cal.reqCalData(); + + let dl = Cal.getDateList(); + + + let list = [], abyss = []; + + lodash.forEach(calendarData.data.list[1].list, (ds) => Cal.getList(ds, list, { ...dl, now }, true)) + lodash.forEach(calendarData.data.list[0].list, (ds) => Cal.getList(ds, list, { ...dl, now }, false)); + + let abyssCal = Cal.getAbyssCal(dl.startTime, dl.endTime); + lodash.forEach(abyssCal, (t) => { + Cal.getList({ + title: `「深境螺旋」· ${t[2]}`, + start_time: t[0].format("YYYY-MM-DD HH:mm"), + end_time: t[1].format("YYYY-MM-DD HH:mm") + }, abyss, { ...dl, now }, true) + }); + + list = lodash.sortBy(list, ["sort", 'duration', 'start']); + + return { + ...dl, + list, + abyss, + nowTime: now.format("YYYY-MM-DD HH:mm"), + nowDate: now.date(), + } + } +} + +export default Cal; \ No newline at end of file diff --git a/resources/wiki/calendar.css b/resources/wiki/calendar.css index cba526fd..be1c8d31 100644 --- a/resources/wiki/calendar.css +++ b/resources/wiki/calendar.css @@ -28,7 +28,7 @@ body { } .logo { - font-size: 24px; + font-size: 18px; font-family: "tttgbnumber"; text-align: center; color: #fff; @@ -68,6 +68,11 @@ body { .cal-bg .tr.thead { background: rgba(0, 0, 0, .8); height: 40px; + +} + +.cal-bg .tr.thead td { + font-family: Number, YS; } .cal-bg td { @@ -75,13 +80,25 @@ body { } .cal-bg td.date { - width: 7.692% + width: 7.692%; + } +.cal-bg td.date.current-date { + background: #d3bc8e; + border: 1px solid #d3bc8e; + color: #000; +} + + .cal-bg td.line { background: rgba(0, 0, 0, 0.4); } +.cal-bg td.line.current-date { + background: rgba(211, 188, 142, .4) +} + .cal-list { position: relative; padding-top: 80px; @@ -107,13 +124,14 @@ body { right: 4px; bottom: 4px; box-shadow: 0 0 1px 0 #000 inset, 0 0 2px 0 #222a3b; + border-radius: 4px; } .cal-list .cal-item .info { position: relative; display: inline-block; padding: 15px 50px 15px 55px; - min-width: calc(100% - 480px); + min-width: calc(100% - 400px); border-radius: 5px; background-image: linear-gradient(to right, rgba(232, 226, 216, 1), rgba(232, 226, 216, 1) 80%, rgba(232, 226, 216, 0) 100%); } @@ -132,7 +150,6 @@ body { .cal-list .cal-item strong { display: block; - margin-left: -5px; font-family: YS; font-weight: normal; } @@ -176,7 +193,7 @@ body { } .cal-list .cal-item.type-normal:last-child { - margin-bottom: 0; + margin-bottom: 15px; } .cal-list .cal-item.type-normal:after { @@ -225,26 +242,80 @@ body { display: inline; } +.cal-list .cal-item.type-normal.small-mode span { + display: block; + margin-left: 0; +} + + .calendar .now-line { position: absolute; top: 84px; bottom: -18px; - width: 1px; + width: 2px; + box-shadow: 0 0 5px 0 #fff; background: #fff; opacity: .8; } +.calendar .now-line:after { + content: ""; + display: block; + width: 0; + height: 0; + border-left: 10px solid transparent; + border-right: 10px solid transparent; + border-bottom: 20px solid #fff; + position: absolute; + bottom: 0; + left: -9px; + transform: scaleY(.7); + transform-origin: bottom center; +} + +.calendar .now-line.line2 { + z-index: 3; + opacity: .5; + background: rgb(211, 188, 141); + width: 2px; + box-shadow: none; + +} + +.calendar .now-line.line2:after { +} + .now-time { text-align: center; padding-top: 5px; } .now-time span { - color: #fff; - font-family: Number; + font-family: Number, YS; background: rgba(0, 0, 0, 0.6); border-radius: 30px; padding: 10px 15px; - border:1px solid #fff; + border: 1px solid #fff; +} + +.cal-abyss-cont { + padding-top: 15px; + height: 80px; + position: relative; +} + +.cal-abyss-cont .cal-item { + border-radius: 0; + background: url("./imgs/abyss.jpg") #333465 top right no-repeat; + position: absolute; +} + +.cal-abyss-cont .cal-item .info { + background: none; + color: rgba(211, 188, 141, 1); +} + +.cal-list .cal-abyss-cont .cal-item:after { + box-shadow: 0 0 1px 0 #fff; } \ No newline at end of file diff --git a/resources/wiki/calendar.html b/resources/wiki/calendar.html index 51afa28f..82feb286 100644 --- a/resources/wiki/calendar.html +++ b/resources/wiki/calendar.html @@ -18,19 +18,30 @@
Bc+m2U-PIv0 zxPv?^;RB@!P@eCx+*(_l*GlO**}Zr<)f~M!X3h=;K_iAZcYeH8!K6TVw%3>u8dQCI zkp5@15*5Y;`sd_B^tIwD%e`k`iC^vtAMuh7By=hZ%N9C?z&}Ldfg{CR8jtX8e8*)X zA}Mj5F&MT)1(#9ZJFzgVSVTl;Z%X!13ymUiJ*L(_NHUfwfH|S+FKUawNT0Pn7NXsFZ^}&0~tXqtvWES z4YduV=96x3i?ELb)zfvsq47!Txd^Wr_Z%OcK~z0NqE@I)y5eh|+N6K_S;kaYBpeU8 z>gnlgqGivrmT+2Q+kSmqt4X9l6_d5$+M!w>wxFW5zSSAU=9gslSzQ$by6HmH*DJ5s zF}8{GyWS!u;5|VUGwA|=)eVsDJhc|TG`sPs?d*dSRt3~B*!foqvf(04QYFIN?5@8K z wGZ767`^FXRgenx6rt7>RChh@Y+=_F4E~TX#F+MEMxg&I z88J1`NhgkgV9g_-#psyYZ&xk#b!%rlvn`+?Iv@4) Fhq zJ$Y%2SFD##D;PuN!Ip2k N=Tt_5k@a zS}OwSUd3r-yxa<&6B+3zyQ@l_M+z(pIC3XtzEnc%T@8 1^9Rd}S zL5+I+Wjef#0!vN!PWDZv|({@9c)yKOTewDERR0vTBzdVLko!T?q7LJl0|Ux!T2 zo*~@kZDhYzafKwjiFmPqP`?XdF_w43b4;3}&J$O@RBBVZTX^e9!;t(8fmF}H#nexO z$l$Sp$gb9!Fb<|VZ!%C$SkV0}R4BxIG|hQfSm;O+n@%#G`Fr!=a-pcOgQ <28ER>VWN2~KFu;LA_)8pM~*PSgx4{c;mLSz#6mnFdpv@cVLO60BcjPdaC z yk_x9`68eJ=>W{*4@#mJ~LO!u*#YA*~T-|m|Z{U-wepyz3!I$LcYT7`_(U9c$1K} zCpLl 5-6ur*xyfpiK!tN+&Qm*e%Tk6+Y|0OrVf{900Cp} z_brG9MvGS@Y(mDQNTYYoqsN|;`Ib7Rg#S2b{@z}7;@4Fni6yTtQS{w5@Z&0vvxPRL zc@!9A0zzTY_`;YepsRZJQ`TbYSJKNwmNj(^tUdIm%wHb&=YS)E)!CW|w__eNQ>YG( z6eOG{K>@pRWurHo#1PDfgM*)2XbmCVmiC-s)5|xIdxP~lKk#DIW^Lo!NZQeQwDZQ- zS{}ySjOS;+(gT@K0(^-oDsRkKH3lviFQ^(aGN;dRqV~go>ME`cidmJq 0%FMRu(6bz*%<}hDTTQ&j;7$ 13T5U59mRfdqA4 zu75y7vdBs0M}A) );D>7JbO?gXJ?!d3 zu6;dC+)%&6V8A-I1gvx44L16&8294O2GDWiH@-9WIxHXQA5ATK<~xotdsT<|$%xEc zBCc fyf>CTZ|H_Zqr$z{i#WSw9Zy-g zB%}O|7&vBC$P%>g@OyW0+IDfKo@adqLDcL1!g=HDHJxzF zjE|E!r`8ie JkKE%WzFt7;8 zF9FYGXvHs9;?r1oZzPo79!7mQJviF1vc2Zi@>qPP@kRJiLyDUR$C5+`1%+6lvCsbP z4(Px9@v^}3%UR$7yUD|Q*c0}FElT7Q{%}_R)x|kio`U-yWwCGgL_Tb0&Rn~Py$mlQ zrZMx4(fkCXQ|ISitGQ=Usf~wj2;=H^&eHsp#Ga`u^F^u2#Kx e-Pmn)tj^PVBw;?!?)C4h@1=o4REt8E0SA}tJ9_bz8P zc~N%!QJFPjC5o2{Su=dc^OZang&MJ3=htkP&3l`rf-|Zw+p9905?Nnp(OZY)=eKw! zPkJx;(4J3o`pc~JpNnK?tH`}T4Gp%s-ZZNXoZ)Td!olI~0NVL*i61ZNg%ofr@U2$A zkc|6oulN%4iOpKD0!MuXDMXi zGD8ok<+AQ?f`-3*l+=cNuLqb$Gcrmw*Qdi=msgFX^)CuuGQX!4r{m)fJ1*6Zc4MbA zV@l^w_cRWSmQ#K!A9rsgB+SFniSlgP9fpt)gkUZKL%_ S=9L*gj z!l?&vY_|GyejrV@dB0$>t4st}*m+g+>CF)`cg4~DxHJTXys&N6vHSOAJyuYw8M`BZ zBOQrW+C0QhFf^xjp&O?X-m|I~jab4D8(+z`_`MLkJUoy(1O_6dr>dkiS%T=r^)V_W zuZ)>mR>)Wb12b3w9(b`a^5_%#dVbMI2{jFlrq9_|oX_rIcvxL%&!S ~C%)cRI`KJ$9S)LcHL0SZeOPgsh#JsqhaHS|cYot!jG>5jN$5eFTt^;w zV6I6_WBM)A)2e)0q}-UE-nB%I9Oof^DHXwWixs6kFGI=pt9;Ly6_=am4TXD3n?mfz zBQFBQ0f*ju5}Spa@?)?q-E83GT7Bng)uFi0_j(;GS!^L%?qjesBk{+no9nB^J=IJk zV9U+Jp)fF-X=>5OS&P2)K=0%p_xl|OD)fZ6KJ6Q9%dFVE5a? q$_B+npxpytzq00@iZbcwudHD$zpMDrM{B`&0+exegZ~0d}rS-hP zq(|qywuL-QhCV5xN6&A*ge2-pCBWjc*h2xg68S#3tR(j`!`XZJwutCk0xyTLtgD7F z>Jw;(j$-yMQsgl|?jP4i47S5anDOHka9RE@-vT3ga<>VK9q*EGf)a8MxB$_EWI@y5 zRrZ9P=rgo4_dmWZ=&;7jg%iZ|Wcsxq@u}2@vab8sY_KpL)F%YR%{lsv8*-cg+q)P3 zqoW8jKj%P{)psN57o$>#o+Ou#6qWbc6b4nj@y^w;#$s0`O6y7C&{{x|Mz#BU7>o4l zd-Us{4@yRt6rX@VY8}Lgf^e`wi2a9Ii{M)JH2nMly;Wt=>%dqG0{2{*6H))W6p0F? z4eXL>UC#y94LRkwmYWsXw4vdW>9q%TMAzaU%m|~ z=)%quOFA95Ow-n;UKXfwGx;xX^HuxnP>lPaW_XHJ#Kub2?`<7@EMJo~v$$ct*PQG# zs3f$s@1EP_QAOX4CjQ>Q=Y>D#7Tp`X6xLfG2L>Ey!+F$@d*t#8{}1@K{Y3ci$Hlmp zi2xI*%d-N*TRfTTDPe2hvQ_@go^)@(23ahb`t|o?);aJ(oStP)^b4-24e&6I$jSy@ zTWd@1KDvg7%#X13^ORNwW`>jh_!ZM|(xA$#z6ZjDz(MM;h$1SxS}SAc7CCQS8we`+ zq9>bTv70|hV}l(By_yy;%^S1k*+$q0cB`JHs1}%tpaWslFdSzDl~3NM@YCaM-P+*K zbV$?)J+O$a=?DHB!JI{_ec(6)X$o5!4B2mk+8!y|Mgcne`(hUg*W%Sy{#5rUD-I*y zi~9b0=xi`$7xzA|Bk?NOYd-_K^2YZHfF2^A6G+;83|*!E^#1U}i<6gKK@`|^zB}G2 zA@h+8fj?COJq4mtT8R}Y?%{3D4J!8O$;a6$%+y_OXaOm}q-yo;AA)`MDr<{Jg)~pL z*77bhK|zvz)^q?b5JCgc0bY3fdtTBn- w#za0D-_Nx1OsKS`q#CgaLNL zd@aSK>Nt8D1G8=3DUuxW4P6_%c`9=Mh2)k4kJ4!= 7 zV^x~W>ntOa?`NImTEg0n^n^C|YMNfn_t}bBq~;%cDQL(-Hy|mb!VjzTMJkV%2q;+) z+D8;))2E&e=o}gje)l8gFMAhNJ@T02>F#mf{#xqw3-xkrFR8=#dFYxu(^Jm(?j>?3 zIxh^i&GfH6@_)nyO$g$-hZh4wQv>qeV}M7lKBRdZD}O#> ES>9Tj`|K h`>g6$ z7rb2y 8>A;E;q!|5#oKiUguG=d zGA}AH=$qYET#42Wc#Vc#`?a#= fJYu9CSTfq}MKzH) z^1Q7tl`2@O#$GS%wtq^=Z|KHdX6L;4d~l^(eCM)o7SSK+z2!zP2E~A|{gSIL6_Jc2 zG$(A2n_$=>pL6)L#?JH`VJiX+FaSyqB%a0>z|_lMk@+8|t@#Grgx>m$G>1P1tPW!h z+{YZZ9UYR^B36ha?_@}HINY_Soc3;c=z84}r$8|vs7PV|GC3!YX}kC9h1B&dyNih| zD)VDpFiloajJZ0j{im?D;keV{x?&M7yqX$f4wh6}qiT7wZO{}8_%HuT^5=2%F`ts% z1&(~MPmnm##gkXFfejj1V*CgY7zwm+4b0NY&+h10&3k>S!8%+)psn7i-bpFCmo?Gg zUo=_S9F3+rpjQuD>2FHE^(~3O`C?@WS-{7wCnf~Uu91k$tsrvNp?r6b$yJV2Hhq1f zTSvcSkr(a# 5m+&w8|DXfy9G#w@X> zFYwgzWmu5_p(a-AHc|NY2SZ3!hcia`>e)q-6}soN;+M=iubOeOH8GontPGR1YMs)s z_8dgv!v&%iA}s7JCu8rLtO)&A N9dU3QbpuW^WJpOPR+Q0D@pLr~H}>*Imb&66UHxrQhK6W &tseQIqpPr@YC^Yv&Db&Go()$@8CvD^)Z$?fBQf zU_ZpyvqCRQae{Q}Y*;J4HvUo3H&x++AM01P=~6l=Hc%4sB-qk`^}hSseu*}4Rtem9 zGgtr0l9WF0yNwQtrk|V3VDoT9#=rrGz8#ctGxJ7=&Vp-D#Fg%DW?G01^Q)Gu9u(ny zmI-kf^WWt8`r12kj67a~6_szrRWa$==#XWkWLyG`d`3&4ca2l$%t#j_eqZxKrNh)S z#c-B3K} 9*o3lCk`B7i)`|hUHs<^-jW}57q#JQ%`FDoGlyU aRsD`a*}zRmd6OuM<`>w9L4BXx~>H^(KTs@h_(;DD221^~nf zq_-cqbusk=&Uysq L68J!|!4W5wGC0AT66oiP-!J$^eH7;Wd_S1&SqD&BuGNd%^pZ*CFQ z-kQa@?Uu-p-IkY*Z|4R2j;RZs?(Xd$B$uIA+g$r^AbqQMG|d0Rt=ea;ER7~d^9Gp9 zy-h7dxaQ<>xfn%{&%b}G^E=UNW$Lz7MX@q;e?8?fiI;$&9Gn+LSBS4?r1;(UhG}|j z+z~YNbSM3WrYW%&UjxhCO-}v$$qaV=z---fQrV(GS8YSKN(#jy9^cGQ+|?I5uK`7Z zlTFD$TV@s$zTJkK9@2dPOF-zEAUW7as^xSmz95p~7)pW$icf3K}y_+?p( zZ= lXp-`AOT=b>JZV~m4a7fp5kc(#;mR+- zWy#yvpQCPbjM)}fTR;F88NgO~4T)? O(9HM!>Ojb5tocD_L z&X+G){C}<*H2bp8Yb )R#f$4 G+>C6`=Hg!y$wy_WSifA) zUVK`8G-(TH-+*uAj;qtVdwS$;WN1Q+Bh7((MJux!wO4FU1+zY{5o7QD$8X^w* ky 2)3{m`w4|6@2 zM;0;(<)Qh;=ajL&yO_m7u2|*W>Z*Hsm)8_YUJXwiP(%WcBYGRRBDES*ZeeOBzJ7MJ zbIkc3p(TVn)Q83d0g?Cv@(1`mpsWSepn#w-cnll@{F;a`dKLz+b(4Ogq=xnNS56Q| z=Bh7l6}vJ(VZ8~O%k*w1FZVz8ETr?YPaJ<27NPp{3cGwCxF|!@rsNaGi4xE!DC-SR z8gMf#O`Q^p&W>uMDQcr!?_bd_2j3Ri{GGWG8XUr=a_$CLpXixItJwb&rN4WcWYnja zA4H*MzkeME5T)LF{F$mvtp~mW7K*9o|LDK_hO55uWkG7OSyFOwAHy8_R~p8_V)Gg+ zo(9}uiJsqH3?1wo%=sxL2Gm5OMTbA~{dyVNcgTr0%JuSLqEGNm$6IQz)#j7BGvx*l z=i7jFq<$8n^4PMZ6{2M#kNXE6? R{-({$k7IAVNcX}D z_z;Z(=Krvq!~Z()H_fFg?J-u0LRrak)&I%M8k~EVvzQY@`2l7!wyf$fw4z48r|Ud( zscx9Kwy$Y{@%4Nux!3=AF`mn9haEkIH@P8l0H(Il(l%A$hkuU}^}6p~QeAujdmO&r zQ|=A`Z*#=>kb&tFF@ct60`s`sM5Vq4^+t)t!9ZTTf7E9<=MmNH77nzTk)a^Ahovjy zCcYsEka+~Ww=gZig^-$klFZBSr1Yi;V<1V1Qd8==VciRe0e+2)ZwFIAcml`G>#Pih zr%_lt7+5>{yW4sJoJW4N*IV}vEH_z7`o5d+e(0O>(8A`HeY^rP5*v1}cCfn;(VBcn z&q9HxVe?x|=lEw~B)pW*3nu{7v}Ey;ODlu;dbWL?*~!y?$- V@$&ag9mOj=*rBS1$&)>>Ubv@gu21cggsxM@}Wcp9NHhSQX z==C!@yYbsiOQuKW&8j)P)0XSchGUl>;nfzcY)5H+`|@6HVIHS~aU{wKBF;s=HQ`o~ zI#)%u7k=vMpud?{Nk#pX9ooieW-&J$xFqVjiOhYzkIO0p!VG~y$0Ahjw}7XfBhVnA zI3XbM;Z$IDsvZt}axh)0s=UrHj^iK{DCsP}qW|O3jmzD|dSyW<4wepWcJ({E($NQe z0bG8|ESEvMp9TUCxOLAb#Eep@lv)l&h68@3XRKLXwR75 UTKOI=Q|iOpM1jqAnRP@5S|oa|X& z54PC$%$;By`Nc`hz`o?_X^0O$Q_dX#ekDod@~bBlVf^ic#4gx37Ha1&9+OM=0h+UU zT+E6hJ1=UUn1 7sdz9VJuvOUeI3*;fEn*>+u%(jC&>(n!~l?nX*N zIz(DJrMtVkJETF7E=dVVY4Ok<{|%2%yzlq?Gv7CkGdknkc-G$6+H0@9@9P9y2Y(9n z(f7T3#vGYCP?nt7)BsEDy}W6%ShePD$mHbT1zz!LZn7GsG0f?6nGZCW sgIB>zqi(Ki8w(!Qg#S0% zq(N^(_>Z>vQH}q7>i?9GXJ*e?zLr+JsMkh-;S`aQ_v^n;coa8)M}W5xM`eN)V{lzi z_Z|PacYmrHw0fh!smj%WtiCgl!MIx2TEaL&(mANbQp)5d+`VijL ^3qm95rms?Gc`>MuEG>9=)Dyx`)p&1dQEO#wiUa%^KmRSTfR5T|O6ymtMh? z`ZGp7YhP*a^}J8x4-RPQWh05Cn1uOsB{w&dhcZtn4Ua&LAR={e6$Bo@d8|3W%i|`N z`6>aYw;xv0YS3+^mE6pAD!;Ykvx4C9!nq#hjDFneobg`+9^gp=6{+JzdaGCMgtZ0o zcfH}WYJgj&;`*4F^_Ke-nA#Omw*Hf9uJ-_XhEM4Ah961C)`l=Re9chgQ P(=z!&`^ z2~mgcprvQgsUO!crx64a2Z>9GO9hAmzhnc#@?bE$w>TZ7$J_d3&9-BWnL5L>KNT%{ zuG`q;(@dM}1x(A@g@@(6q3Hh6JSDe3Z_}UlQq@hKgQ&`)@RVkxn#M#LzGp4z$Hy$b zv{a=VD&Ejwq Q3$y- {X-3hb!2t&cB;gRK2 =Mx}?QL7jd$hi($0wM? zM&cwQO1yUH=Ggp3Wic@`OrK7PTBszbxORmM*1xS0dv%>|&Zg7;nX1`Jc#_cKiBz0{ z{7@__pUYv;^7*)jAAsupbW}meOQLIE7LgUDnB32!K+8hXFi#lb?;i_8o?ke0g0>RF z|4+F%d9vtf( x-Kj!oG%U+3&W2M09fPb_U?tlmtPINA_XPvapM-GDQ<%z zRRw3zUaP;%y*vg*M!Kj<1IKTdzM#-{?7zn(Vw8@Y?7dalec#}4fXI1zioOah#Fi)e zReHdxT9AhfW)%vh3+5r6h4H-BMqeg@GnJddzw1#2zf!>q^o8&3uw4ydy8hBXyAVTr z-L9+;`3$~f8)DMtu-;stNH@b}c}8KM*P+6yh&OWM_yzFZTz+mJi$KGI`+As_PhJ-t zx=%xHTr{8(Y@>&AK0^z9_jp~G>2zk#lF=R;%$Z7M1uMPzoV0nteXA_3*e+i9<-Tmj zq*bcP?OH~}O=q1hiAQc0f#eH{M>go-K6|D|U9TMz%^oyY|9o}{3K<&maXy2i{XG4L zI|nWlGlr=6N0Noa|7ggsaNxaQ|8B_j0b?UZ-XWb;O%0#^u70JJTxVfA>anQ@E*U7i z|G7@B-Qbv_M30%D_Ywi<$xQ%iNlaC;;J8XZw>@qKbHt5b#nXzxVF>a~_E(~46t9cA z7c(fjf|2dEa0tapc_kA*QV%MpCL@d}-%YA=a|+aL>2<+*boK85y#mz_^>=8f@Q_ku zuyP dgjp2jPpVy7{8!YVSbwbVC46l1+5-mArO zt>*a|3|4rwK!}D}M1hGk8u7QvM&@=Rj$1@qY&z&?vvn8P(0J z8x5e%vMQO3TeeHgxX!E_{ox=4TaR_*ucUUxa_>@d@ssI7$;9O2{17gRG-#@G@k4F#Z8_&JGn-_xUQTgcJx01q7`^!tH3eUA`6Rx v1f=6-1AIv^%9-`O=1FE|2HpuGD`Gg*vvOd uEY5{SRt>_6D<@WMNkM$@BQLQP=ldO)_|_ zY(5}{=h2=|-IP9EL{8st?f@EsKZWhRg{*KHV0)-9NC7sT1fLAnZ}xEVQ4~{j>(}z? z$3aq8-8Z3f5uq!+?e>Ku$kcR8V9kS6|2QS&73zHbg-{$wXR&Y5RJ#PRr_p2k&zto2 z&sN%r57}Cf{XtTKaJC@2Kk(%83+p&cbSiZnN>{SdlZWrq8pb1ckrz2;2<0x6t_{>r zee_KI)pl~A7iVUvlSCna4OxI647x1IU_|zK0buF7P8O@u^Ay?+Kg=wpQ<6`oy7?tD zp>0Zj@CHYvURdAqBHX9QZWk{#ujI YY} zNl99iKH}P8bN2W22dH>SZTLvKwk3!l2EqD zl;;uHRb7x69S$Y}nbZv+8=wg 3pCEiV~H`n_95%E#^B)U*GJFF(HDq_ zzu^)s-ED3?pA#NC>_P|3=Hz%RDMY8#(rPCzQCg2v#HNA+w1heP!swFM{TOX2L=~=- zIkE8ME`qbivIwGKoSTpbX!neG0;eChlI~AP%naZ*h}0 Rf9pT5t*EA+Uhiv=Eu0B#vp4WZyOgx|jruuvQ>C8P8o=uXJ*n%Uf~ zh~3VfD6IeJyr!^V&X$o0q9R0$jU@51bG@d`(iM%!6A )xEP3ZUO|)BeffAK*(<4xgI2h-Z*w&Z9U=zk_LnyQFq$l*HnVeYAbvU z7JdgD^&FM9l+P2f`4N+b`G-Cn)f--C>)wK75@FP_;RrtHwh)_H$4MMt>Nz?XXzMc- z#Wc%YpkKqwi-CWpY~VDWV(lrH-j OOhrc*tWx3sW z-sanXj!B>4^*xISZ^+A+>MgALtakiMZNRes1K4n`N7qP=T(GnK$EYS<#8ELKv7{_V zTl-Vm{-tyud{@1n_~2=k>37=ty|#S$Z}fVUQlA|B1ry7UjjMh-|FmmT6}93@k)mL# zs ZzMTpqv@5aiA)~U%X=zL-)d~@uryg?T=Fi|r6-1UIt z^*m5Pc|{CFWaao!X^`#m^FosIpcnl MMY z16dkB9SZ!2$27)o+B{YTw!oT#N|orB<=&c0PfA#n_DZe!uA1NbZVB#lZ#+lr4ae}w z5xFk9-P|=?z}HW}(jKS9OjSaNv?F>Iiz9M#*FKzjQLd>7bX^PtJ%RLCkz)UFbA%hb;fSxh6Y~#)P{aqx f`#v+ z>+k-CKIh--(OEyZc%Nb-cFWsTaol$5LE&rb!lZ&2UIPyqxq%)?&PEQ?r)}vE0q0wT zOAgX}70V?PM
HyOlBgJ8~v(j2Vk8T$%C2X4GMXSWmnp$w3k zd-Gq{i1+%v`Sq`Z0z(2?#KbAtikiEHcPY0oE5I$iRu=8>IfY1)bfx753WH6l!Q6+M zX4msNq w82W_yT+pJVg$zp4R~!GERn#{fyl#FH#6JQd5oCR%gkF2s#+z@@>6 zz&7R2VaHKu8`QH~)9=pu9}G71vgIOx4Q=1T4!OBnkV%UaI()1)t*dqfi6&nOn3RNS zJ*(QFCFS0?wP3pe6N$-*2q^Q1S5?Cwg m|yD->=-bslhW z%IC>gRTQ)PKIG!NtSuw3y#M*SN}vZ%@+$nOZ4F<8r5elZK4p>TZ6LZrXfk?RLVDL% zvD?q*!)X_eHq`8nmU97mAIA77atIlgWo9w!xESFmCEZ=GQqoc{9EBC+i$iu#wTL_y zKUW4OE)`6k6dn=yt*v=Bf|su%SngI`OZ`<+sf-AMH95P_7MB+*7rnsaOM_Fwqdcz! zWk)XWeLU?>a<|$qI;4Ks_HQ#!qNu*^d_xdJrHMYvJ~s2^SES(ug8?2qD=?HVooHFj zC!aY&=*o-i{EKxAB?y6SGfsHDkN-vIM0;1GE#QuK7OKKeD^m$Dsn_hf!$5b9X#FV4 ze90_^{3*j|&+d9YibXcwk*_V@??3{DK98n;+78C_)9J?Q>WO~Vrw9EGmPp*FSgLaP zcKYzlL$CC_8w l?RkL`xkMcT3m0RJ Vvss8Wl@oX|<6MGjxvLrG%AMBRNsW^;3i54KL8HW<6v*87cb?2jD~VdrVEVD%lB z4Y=>XKQ(`H5qI>RdFvq!cZN_D3>M7C7O*?1)sp*)Dh0C0Z*--qu?ppQ*qy%Kd -sc{=p z72+%ifxXMWs^uU1sjfKPWxy&5&eJWc#z4P9;^I)e&As1o^B?8~K=vlu4Ne#c)>5&Q zM3(VFjt>3ZoEI2uD5@^a8xCbUweuHo*xG&b6KK!Qm#17-@2g7Iv0M%NG%-K-4I2Ki z_C9~LA%6vrq2=*Td}`U--4~c@tt}Op@zUy^vH%mjmlX|&fwE})cNa|7e3!PFN~%~~ z^=$S-xv=(oy!yFAuUx1!^|H{Rte7}O;JtJeR(G=NTU+h6<(r~e+4l>n-(S~PPN3ja z^=OBo`z1Fd5|G2NSuu&gTb4IG$ro*yGa_R1(p!~>T7>cYDT#jJ0Uk* O!`-|O7q!1o)aQ(IIkUEUvgK2)nkl90`Md(3&Pq_y}lgi%YA1=D*Lw*sXU@ozI3 z=wyP_`e`Ae`0mevbMOx@nF=2BX|oMoY7?rKdB=eZGoS$vjsefPvjsakiKo{sClOF?U4Acv`7pPmTwamXlI@#>kds-IC(*m z#en;6(nddePp{F&E!BCqKOLW`mFTqvo>SeR6VHF?@a4@+x>n`cgo5*m^LwkucxV=f zpg6yAe{Z{lue+STu^qiiCV w8`eoGiN7Y>sW? Rh>@rqcZy9FT9l9tihDILC3NL?sFcB*8${~`PgdnfpQx! zir(Dp1`Zb8a(+I-Gm>T?Zq$w>aXGx~@YZCIMDxkJy+7qlx>}yb5o1iG^39gm75z>O zH|z12^(^A%brZdJ3A3tPpe}}HeL(j(X8+TBmQ5h*_JS6V&1>tB+ZK=-hs?)qlv59T z_}OPsAV02>6C%9{#XK>crrSnUkM%rm6+TGg bb0^OQ5 z2Hm<;D~V0&%1P_@X|r$2tj}kcb0gq!U@a+-S-ZMm*rjPkcvDu=S55?0?lO4I*gHd_ zU!0A1tbpA=>Uw^KqtbPy=i(K8Ibm8}Ag?W=lPJHU+ 4Fk!Fj z0g;irFT3>e=e)NJn#Y#l;7F%{w9csrIarX^qSEzy*yKi3oPxJ|DzkpeQ9 ;X`LBlYdT0-qitjzB6L7Mi$TS%~en{1pZqvJMiaZ3AuU?I1btWT;JG>|p( z^BeS93LG$)xcux)7d|J^XuR8!#v?v0l@hbjr020Ss|X=aMthl#D!DeeP#9)98OAlW zsm1{EdG|0e9qB2SrAz_tnWA>wrSmh;s<(VMI$)L42w9EYW*#P@f8O)mOdiY&A%@Fa zUIx()H>Y=jq3NnSA(b}qwpS_9G;Z-(k@K YhSzni&Zr#rmFCH{!aL z`NT}WnMr<111gaVHX?@I2-%uVVxbrBrNra!aJF7N42*?vwtD((w%k%YBj9=r;4feB zt}rC%POzLii>@akS)k};O{Vs%7Go>hJ)WB=v-P1H<&WTfJkI;$0Tvv66SzkC@?ybk zwSWcWhYn@khqquD9?a<&z&QNtgW{5_s?&PdMIG5S76|o6J^uFA>o+ZxPQR)iY^1@d zQRa%NDii4D9AlWr?*wcVyeTu59 SOMebgG0oC|p+1X>LWw&!E=v)MW>sNO+ho zDAfJZ$AFQ(-E_kClNc(;!_A-n(b&D4(eyQ8PH%?)Cih{NPnG|H;GO+5*sq`zlt>99 z!}^DNLYrL5JSJk}>vVm0BNg`}Qmr)9NgUm5#@tN5tW+1pgRVwFG4QUG56nhlkg E7#{>ftL-Pzg>G?E$)&Tw0_FkuntRoxJl z_eIg}h#-e!#P5T#6G}kOVYtKdVgF0e`#UT@8we73A6Vo7TC23#@%-o39~f}DATZ#Y ztv#*oe)M+^K~WE|%Dmc{REFtR;dw+Gxs6Yn0kzr(^4P=y?%`+ot{|Ld{M1|D%#UWe z4{+7Td@WB Rh1yM0D`< z;ujn{;?zeS%krgae)*{+Wz64DyX|B&Ky!OX>;wR(qE@|%5Z+4f0=4y;dTuH)Rt3}3 zz&H5tgl2YPtBB@(iO}hwVk~iLA*E4Ce50dvh22_^@Xzc0In@dDtA{wv9(s1fx5phi zKXYvEUENO8f_#Yv0MaR%dl*x 9F~39sLnyMGgfZpBB?!U z$t#*`lLy_0tOo{>FBF#10OPfid8YTl7uN%78~xe3y^5A_2Q4ys69Nj8QjwGzmmx7C zlRf&dSC=)#fwMnH0I~aUDA|tX-qGW?qw3v9ozCNa^1^7mYu0hIw2W@hbf#{HEt2%M zXE{U=jfw*fP4%#{lh1t+ycBzS-VUqMh7jLuK3FTNFH5>|(z+XS7X^(^j4*+e|5rf% zIP*Nhbw)e8Y2MG1p`nNobQNd0DzXlmFXwz=f 5F^bn=G4URW8tnvLz$Dh~zfQ zS=?DyhG!w2pLzsupcUAe^H|&Oow?>auD$C8hgnu(Szl|35S8xH`=hfbEye?3(WIcD zs4rpY(@LB`cJTL>BWc^dFgc%!f~;dq6=4HKzlEZHjEV@%wN|}clIP*l?H7&Pw{J#S zDE<+Vt=_ok>Mj>qY2?pH7+VSgM5Z+N`5#ud1nb4KCO5}F`S;Cty2-1Qbq*JLCMge? z&Okp1^4gEDXcYds2M^ZR2ulo}UZ)Ag&d%z=(MPYzi=>Q=F1-l)bvwG(`|D 1G+znzD~6S;@M+N_I37Yh40mI z>0SjYBZ?$NQotvQm-Wqtx8Yh6LdbTPHPW4q-q~Jg^ zu!Q7 )sDG@9Estc8yPuvkcwgl`q!pO@ z(&N%G^uT0(j5NgX7r*ObmnnQ01>f;co-D_m(pbGSOtK0tW(Y&3{o>Jgowvd&+3_$p z_)-6oa3TD}^#CWS;kDjTZ5yz&HA&)(L;un73t1aF#u@hSPjl-{(@)AHl49p?te$$& z@kyc^QE)KEoy5rZsD9J)Ioiv8@KWmR?0aAA0UvA|D5RIdY|M&xJ?^Dgtza`{2nG Op|T 9%G72~$LI-39fX!? zx?c6YR{Zo?{S6K};*iQ`6^t{--KC#Krh7MYEbfLE-%Wq9o`f5P>}Y;=Nj;NKy1v){ zw0vH1FTS1e5n0L?*#>iAdR#D0_=JVK+|99HLu&}?ualz+6A^#rzZIENqSFZd?_zfM zPE Y&ob%mhP*vKPoi*EVU1D8LG``rCUL;SW7rt-S8I4jY@lsyB}<~dp4As z&(OD&xw}SZXr0|-Hl?lb0;W-#CKLs58_Iw$uI}ELrq}IfG|vHbmbOe0sp|OPVx 3W_;5A>XL2?40-_)Dv&tU*FvxSmH(K6{H{*6; zZj$oB134IkDyF0uWR?j}{LEI<%J(JMee}!d_2NqAw53kCLnL#RCL+Oc&)cm-eW{Is z_V%EM{dVb-98pI(Roq*mRoC~Z`)-=066D}^TWg0^rX(w;vrXxhuBuS^XLNWqzLh(9 z<8?hvXF}IW-YIh4H)PQmA`k-TDMd0tMwvWa5C{gfGgX=?74B1M?^=Fktd}Om+A~O| z)W)x#_13t5j;T@9p#89Na63(et`$EqQ*6^w-LP%~t~Wz&lMg@G;KieSlz-o9)^i?C z?T*GX4U}P}`m88*o{GPp1a2|Im?kcdw@d%TRFfC7IV4kdfKz1U(L&)XaNsgzzN0HR z!y$q{s8Hep(s$JX --A zosR(oyAK?$Cx%P#Lxc2>ORr&+svETaIK^)RZJ#Y3bT%V F6s)-EKhQ!U)5;WTy4BkhIj!bbb=jIa!#aZ9j9K&j+(3cDohy2BTn$;Igl{>=Z8e zW;k~_N=Qn;lLY%fAzEsR5E(!~VwPJg54gk4y&P}e(y(6PC5_L_ $Z^1O*dlxNBEH^Enjnc_I*bs(_j!z^JN;kP}}>=7+ltyKB 2c9ay!(=wOqe(tt=FWii9 z|H@;8K@$V{!k03V%LGCAH9+M%=0_KfUhC);?Ju)hPQ5$}EfDkXDj~V+(<#H!Z;NYO zrHqEoEFg+D$jF%}?%bCdYu$S>#xE&dtw+yhC^{fQ6X(sb#DApUiJ >c(+pSCAr8jbv{ZSL<-6ZYy?1%<)R@{&Qi^ 5{C6Zu}Jw3bFVOtB-*$)FX@%;8Km! z;38Qy&l$xfJ)57I2CoiDiXm{a*@3R1^Wd>-@PLo!wX%@?2U$qM!UO-`N<=HYhGA`; z4YjW-G{6S2k3Hg`mPn##rr;}w>$GLz8s`~G{mVoP;tW{R-9r!z1-ePHRESq%Jhe*V zkmhF|xcm-2HS0H*_tvM=jY@{ShRD4GQSgf154tb F zxvT<~+!K@2Ix4OwD%0K=l|veffwd@1O2XM)N$~-x3W*GCob&J{ei #Yv8u;({aJU78TWma9fMWhMRgA2N1&j@T8xvW zlDraex`<@+853&!?II&z>a-pu%!hG3m@%Y_CSeSpOxhaGqkU-OOX+Y<-;SPRCQWZQ z-q#J*9Xkmo;3@gCv8&qp;OS<*@*VUHz*6%OOV!hX8ya-I#&E>}kc1uYSOO!Y)|-&)4ujyd<8&O3#bANnhzlG* eTqtE60&Q9EFZCq07Hh^21fylFTsnl*8iWJ`CkyO3WhOg zn)&{v)t> >j~IiUo6?`i+@7j!(V z;@d=VnIOn; &m+t1tVnpdGZQpYUACKvm}x~K`CB^$_AzMs zXsF%ORTNT#g9-2?wI*)xA?5ndk;nyS?+uB}p3~uns;E>GPaWQfV&6E_h&wxLj~g=| z Y8AiNfLB1HaUTdI%^~;lwa<*BQAgvBby{= z)DCn4Itcydj+uvJ?jL0=4_Ut4@PEP1m61k>#1SO?o%_n{!A5bTTN)QO8;WYfO0v KfC%*Qb+k=vkBPqHMJd7XOW9E8; zF4+L@(kT%Y=?@LDCB5=YMr=mouJ_<NHSIalm{!Uz& z%$|{!(M}$X_S>_TcUM;LVl!XNR%XlRkr|q+Mo`dLhS#y#kRa1WdKzs`&pj~k+Jo~L zS%vZ#FSQae`H&6J-7 t5=@mYc?yef=8$^Cm?2zH86y;ph;c`EDLX zNyPlA7tF+~erVnqh}%l&j3yL}7-nV!?NJ`@McF;UJk+khwIo|t;O{nxXX^CICJ5B5 zRbMs)ZU?z%BZY18fLJu{=)Qk#Ykb9mIzqGkCbeK!)>oa;o{=xsbY6MYcX_ras=~tS zj%SDn-B&6|#q>M-P_FFmkcPh3@)4(vN0@HMo(7fHhs r6Ez<{;X@b%lTh@LcEya^y2 z2=Z=xAjHTfa6O{m#*= qg_Q@KsR@<%xnGpQPCm!U4USVArfjh zs%{R#6DS?&c`)Akg0d&lginHgE4o2Hbbt=wG{s)z)CMM(?;<5|CV*6rPs>SKCf~KZ z)fumk-Gb(*FRAx|fFbj9BZG=@HKeP1y_>4QtnW~NaeQ*}BV42GQypD0Ucfd*uE8`N zBu`@DeA7+Q`S*-Wm#(_v=Nra*wNdXKX6`Gn#h8lnFxg4IKg=%VEdGMlc2p~zd+&;{ zZG9P9EYFLQ07|owJJ{)b=t~RM^Q8g4|F^YduP=vD*Bz&tCR=bMOyrd&L#Q&M#0jmg zxtF{8Miyzs=7ms?AG$yF%gMJ8(CZM;nq3syInft-3(py>7__v@CKHSm$F$sL8Z#|Y zZd33V-JYpwg8;E!!&O`S{7F@(4yLXYWgF1j&DM5Z_3#H~cAOc3kN{O(?%*h|#yv+^ z=~WTR(;_y*yYk7Qn5_j39wrMKQ4Eni{MZOnkL QB*%L7M za^3t8_NWFQv4CmZU{f9C(`z=@8Fg=Pv!Cyv_(L!N^S}^9YfFj%^LP3A{o{8A^FO}{ zPanIZ6|E`70iaJ$y-lWt!UOJ`P|nE<+Qy|*4FN6);j%&j>@j|z&7YK;y%o|$OvE%} zvi?)Vb(;a;el^X=V^#kC#^%#?1H(F<^l{3aXv9}f5ClcHJDCcQ-OoXn8WYO?T>HT7 z qt5tnQ*D>e6#bCC{#`fXGoxT1tczRFkd2OB4+j%s01lV80>iF9s#y^ zxgrf@xr>f1obEyvWjnKHgMzxbkkdSwQNaY5Ih4?m88O0#o1FdULZeU{rPz_}_Whpg zZnGuZlELuSrJ+3Rsgn04A6CF^gaf-$h5Gg<&v$h1kYJ?M6SgT)r^n?h+uZkM&BHog z&2hY_(mQ!)zuN#}nUE#7tjzv=f+3)*jF}#ab*8u&{awS#>n6);UNA^YgpxSMRpb?f zXj<`GWmu&|l_52OFyvXjN0|!reNP!G)?LbAP2pFE`@6d!HpldU&}OV2`#VQvVm(a% zi?d-d?-LxcyZK~;V37^_OM3`U@@=50|KN!0BmPXN$0tAn(VFc%3)Fi39_XE5Wa O-gb>buBL~2I*H>HiHfs@5GIBp zKphyGCp#@%QFAmpGuld`6LYs}k>@}%4G|LwpX)P8-BXHvTBo)XoE{kp1*O^b)*5z) zxGLh^;G`3G02H @6(isYj- zHYAqezo6L3pxF_RNx-foe4%S FG3kImKxPq_Zi9BbvNpi>}h>FNb z2s-R!@9v}C6;bBdnjdgl72)5Kc`1mglMyVa0Z&v=LCj^y_3;ZqhvBJa^gh;q%?;*L zLW$aDOi;%4_<_wX_rrB(J0p)0R)tJZlW>0hdlwht(`V2as>u*lT)Acgnpq#*S>6_! z(zJaPjn3ENL_o1gw^`zy#`_Kj<2Mco`>4*YG%&qH{$1dH00ge{KLoDRK8jY0y}yWB zIy^0c3s7*5w{rS+m;tEBC|weseC4$(O*2h~0$Zx@)o!yW74J^Vy{M}*<9dTjSrr5P zvU7vk73mOs3dDkeKaGo3 u&53=dQnd>W+*Wn^8g1H|W^G{b~wwy{pW zm4SqNSqdywu3C06+zGE(1h)+n*p(TJ58J2?ZyD*r ?ay5RY)5P)9>CH48&k|jOci+>9sWbH{%aWl`Yk1(jATV0 zs^;dw&uZ~88bI*BCSFda^(3Uj_~Y0{fn5 A!0>hyC`Y;= zi9=c+2msI>x &P-=888nUKt%*DnZX693Ng}Lj>#y%`($)~6fiOsMnqMT4o zV&Eu4`d^ltCu6SHVQi@V M(c2Bjlxprmc|{>#!Lp91_6USvtM#e^pvN1trUd3G=G*Pnyd?58 zy!t81L}=#lTyb^uIFa0PJxcts+~!6aLc(d5>!9Yt0p$iTnfmCliF8Y=-$Wif8d=1E zO6hjTRi}CV<|H?;OuvjGGL|Z9Uij(UlR^15u6{($yTyhV7JoeV5Zx^>PfpgddX*Z6 zViF*SNLv9p#NX|=DyRg>0NPyLtLWVS-o>i>NB#l^V;Z1sTc3KM#+~mqnJ<#-$}IT5 zstU8n*uU;Qd(lWBKhE&=6K3%Q4c>xUfGdNKZ7kx6n1$*-z1 DDYGEn${24$~Safw_Syzhcak&Rf& zrnJ*(cIhEgSc&HeWOhw@;MS C`yN8yok&rUvoYSDC5!xPtxSp)5k<6hVq&^ z{VFz3$G8P<+g2UkrXeX%8tpIMLi=c!8Hp|Bdum{99OewY2uMVA1$Mup7o(8}M0{R< z+X|`0?<=|A+-c+3Ifj%vbl7b_HD`a>3Poa<^izNr|IrDR^~sALiR(a#4=$~`u36lV zXveCD1@8ieO}Q*UQ14IQ8zhUU5m8GVIu`ty>(7iq5~r0hZ@Q+2y{~Q)wXTMfn>o7j zL)GZ;pt1u|q3LMFq5XnY&=E_q#pvmBb7>|_2D9XN>@~bM?rTcDvtQ|)l4x>%z3H3b zNI+U !R*-W78&Tk(wuOCC54}wPA*27r`FkGfJYYf9q`C9$Xv#A5ofisFAS`INPwROek{fE zhm|;t|BGH8-4uEv?fYS({pR%~wks>_5+(F{YJY6jbnF0XAQkDXOLHCRF~#Nc4FIgo zmuFT!xtH&enpcy#DZVYV?=B5l=I+oMIhF;%s)4W*%qvF6-g}*4S$rVNql9!rt5~_0 zPRgtaQ3dElCg>UB-34-%;@~t+UKFchd2lwsI!I~>Tv>vxW(U56LdY+D(?t^Xq9fH; z?%x8Kqr;+uFw}Z}qV0`Vc{czFue=cM;K;dDFjKPkB8YwQ0tu!ykt^hx8bl6RakW%} zD!z%bnq3_k&Xz^k>Mw0x=kb+F!K0=Tjxk93Xp-`XcSr9H2&tcre9=50DI$m$eQCPk z0CB#*^siO%x25Yf kPXCvfpuB#jtElFE zcZ-$KU=ysuD;t9d`_b7EZ{Z~aZ3$VRUnl^wA4QCxp`UVZtZ>RiTiL=V@A8$Escgpo z4aiv?KN82kWp?PV)xZ2FkGLB0MzC_9aGTw)UZVkfVMWme&-0CDn!LXOJR$}OqXaX< zdh^lkWMBWlO3)*oYlDb-YS(IV*YWO4%E1k+pKh2rjMIoJh8i6mAVo@j=#YBhiDUd^ zVmTCbBy<#+veIsE>Il8h;gQ12pmw_#25^Bb0lUy*9+|{(;zhRUZ~sfyMury_{Xeqy zs~KfOae;t%fVB&OR*QEc-zwM52~af}BK9QTQga;`YegW`c2v?;3is%xMcVjLj4sZ` zmv1ybJH8jCghCWsDCfXdp!!%w0{(vb9>){Iy7XBL9RuP^fTyxbuWOz~Pdb_3o$E3S z8etXXu!$i;uiSOH#uIs6nUNHb^${ran2rC^a$gO+sH3w2*jeGz3t^a33QGt`?BKCL zT0KV(a8ly-hNK0O5MT-*G+NqQ4yv6UJJdPuP`kd@lTHcF6FdAYof}$!zQZn~&>d(? zX5!)fC{4u?CfuvJYQMDlT4U#~V;9Jyhp+D1-yiOLk^FGW1~`)-q mN6H5= zn&>wX0JT4~wky;Hag3Ct-NkKN5 H$My>mc_kx1*RJCJzeYNjaA0SRuK&pt|L6HzlQ{RuJ^CD-Nb- z-vYQj#I4=%i^$RGkv%S;x0UTLH?v&h{ruKmQW;-Vd6?hmd|#SE;RB>x=$?P;u_%Zo zS3*6&FIdcXt916FQ()q@?_)izB6)QepDcM%B3>=eL13(@eRsg<&}x`35=IG>pra-^ zLoutO8XFYM*6y424K&q%ftUK}khYx!NwQ=vUn&1(?<%*qEZd6ycbEIe?98jrKMU*s zOtk+%mgebbMEpocDg8weO@b&=O(v6MNO9sQK`o>`O7fs*bAK4KJbS5(SYlxu4@ 9)OhUZp2?6^)BP#O z7~z+pae&1L)XL@S)@2mrDI7IoVCoCXscLGlvc27kg5sTkvM1w>@33&{LDAjKXbl&^ zW(@P|< 0Cuyb;c^rTH$@DF%b5bqJE>1=ln7uy4T;>~_H074nnc zBEC2BeOTQ6##F|rF5R@}wc>e^SSsVGQ (&9 V7p}UxwT{Ll9>} zJF?DBa_cV$Ez}#es`pOPmd>_peXTLQV_iLBeugb2C5^L58gdvVw+}A}*#}%%GV-pZ zWpsX$Uz3@+dEQ+z?P7dtGb4`{?FSoII=$jAhYz9&@fr=rFt1j3b##9&siw3#AO`!Q zqQ_~&+mKi+)F7B0q+zWIC_jjloJ5Q#uG2<7-`H?$&i;l_ALsv`ZHq`gKQwld&(C0h zM;EX4$L{*5F#MW)KDG@6q#CspmGUTU#LXkVQPE%VJjXN5M-xl3qmi^;#hQy){`hvo z6 5|)VE=^;-E`Qx034{T>LB>s@On)-YQMM`81&C zVSMlW=ZP`BUMU@Y1tl3|$pGp$<{%uG#in$FJ)y-`^?Y&Ldq0QzlPeKc`>&)ZFfl zRM$&Tg1lsCKTL<>+|$3?5_;;*#J&|HqTkOfi{iFab$Jd+oGqGElQ`{RabrFedGH!T zR)SgRu1mAd3-1u*=ZyLXv@wT**-rk UIx64pDUjfxwh9`7$0i^K3#QCF1NhbM!F^rS_ySw5^-kC^M)BZaBUj9*9D4lb3V z2&t{Sn>e5}6H=W0eAdYU`;**ERD~j)l7cFP;xlh4RlY=IyA35iQkwS#4?PByI{KQp zMZb8LZ%mN49VtFi+4A7v=fuUA=wh4@I4XWe`C?1bGg~pTI{IE7x;OjdY}r&kGC0%) zPHd-~CmI2Ew$hPmi{*>ohOFBPjb^<%L$!u^3AT-dRqg8}C3DA_CgT2?x@+o8_!7NZ z7jHb 0CyiGY2%yoh>LJ@oh z55b{R`re`O6g4qS_Wk+t*XO8$(2jVlvrxR*JgS*Xb6h=fk2yOyfNvyoetQ4)D#{Z( z*caCmX>F7;LS*wmI@+59hMZnH)@CcNPhSu7?(E3vAPBVia@brX3c`;pUjcWy?d{tc z;YBKyPmm*S*Vr~7r5G5h7^;-!tpLUENs0u =sA}bkX zb!^EdGrsphs?X>1`}K!EdY$LF@B6y1>wUei_jNzdQ!Kr$)Ra2(<4u11&NRbP2Q&bL zfJ5KnucQ~Jiq`@RpMXNkQl;rOalYG#RA0#`P7{(KTD?8JlC Yd*0KzE!P_J8T;%dlZ -r@ngVL+Op+K?EP;Wq0?8I$}B?Oo-6y!yQk+ zTXS4Rsom6yfPdS(vEoOMS=HvQzppl2zDO#Va`t&%ZhWDG*Z#!!wCXYZZ%)~5J*lzg ziL}3LL#4jT)~e}{p>eA3txPaGNDisA0t3cH=Xcgje;?=iISS@P*7eRrbMz>{@jdxP z`ot3xutrSu6Ujj;Y7}#ivNvqp?V}8Y#Z@37cfaWSm|wdkdApm|qY>+bQ@>Wd1Eyy_ z-~_~xI<(%|$sE?@oJ?*?hEvvnfrR4f0;U06kRJrOxYbt)M!hfa>0ABDGl79w+}n>> zYB{!BFLG|g->Hp$@$ gWXZa@EFsadk}BaI})xQ7NEV=)vcX19>rJ%v#Y^h7eF+f%qU&c4P-Y}XcZ zHb$S-?~^lTar^vmNf0KDj1sgJC^`yr(h2mlr(1 t<=jWlr)m9#Qmhr~#Wx&4dh*a8yNFU@q*i3l`NdwDd6VYoFXGI%kGW@`fZ9qi2 zpf>ueg)WVhsRHGu;$$WH(=nN$djo1~5iObvr?_TioQ2H2nlI_eGu6!|52RQ5Q(aQc z9wSAdiV4H;v$A?PC3jl#ACa{~nF3cRo|?Vd8)t!rq#4-6+jHLF^4Ti?5N{{@qS`l8 z@cpwJ^#Q7#i;2Kh$ k2aXKi5h z$xu%`>qh%U4p)Jqo-N|l_xlSP+@pjRTAd#<70ytJZge@WF0uWSj~FiX7W3jr5N7&x z_O_g=;K_;bW1bPVE_op2!s7C^d>ENPGI!tVq;nrR4zn60(Jw2-K(DSP+?cSGo!)sy z1b8bjl~HelQZh#$UKo2Jo9jUPh|G3Ft^*1HuNi`X8tbun*1tFyBnTPl2>%3pY~9wU zN=(nxb|}n(w1l1WQ$TCYl(7adqPo;;-^VUdqjxD10vq^HNhI%2At8phIl7QxJrqpL z&Lfg8GAAhI0uTh3T`}8 Q1r^{OX|7*zF%s53Y%$SJ5W<`r%lvc `Nwr-g3;_rRt(SNj>DhbQTxy~ua z6~<+>6Sd!lwVCFvV|L^LP3K696PD6D1$+-hOELbyRy`zSKA|nc_nKr9dt=R1dh`AD zMic?O9#Eci-c~-;5^ r0Cx2PvMdxIJ{$#!~czty5@obEWx~NcG1Pj zyv>~>BLBc6fZ@S6M5Bu7{jkSW$+XdiH(-v;gfnnbTwH1jn0VHtwpst~SfPVL=(UQ_ zU9p%K{0v)t=*~J$=8(a2P1Ndm4Yy#^>P##Fn{;jnTg>)o0L8#vlg3*q%
BGI{DM47h*PS?$eyFo(NL0ABUoqBeT1t_5qn#LXFR_Q z;JmR)Mikxb2LSVu=EV!Q8rodBumE-WW_`EAu-E!B)y^VB8c8r?T~g>)_cHk9)fV5D zq8R>3 zqiy*?1P=~+e%Jw+oy1zKVI>msGXX?AGXmdi4Vy@gEOnzFW-TQ|1fJN?Fv{uk%2K#I z{6#1=KZ=>b*UGYh&m)bKy)*8YiU31kW2lZ5qJ-N$>+>TO=Dqi!n$3XSteV#c!JSQR zduC+@|5UJ)*qOUi55o!bDWIJnj68)&o6BSh1f+hAbBtt~sMwol8jnbmQRQp1suf@L zm$Ensa-ru1gcDaZdoA_+zs#>ybClZ+AlwT|f}YBQ1dFl61=+!}*$hC+e15F&wW=^i z2B|!uI7uf}2swxUG%6f~+of~i#)wjOZw6-w4le2*kB+O0^W_^PG{?!of7&FuWk9wF zMB= 83=p zjfQg1HT2N4o$qWoF)!BQWMyiCG#_1Wd_;M%Kt~rJJR?`AsWd~J$tAnqrIS9bupS_K zGJi3^;pLS!mOv_D1e;wE?+y2??KBtJS97GR8}hjPT{I@Dqj|xD?(DTs$9{ZmPkNn} zLdTK>H&81gW*|P-5O9(~n*6uxnCjzt0#^H!yY`2#sKp`Z9x-I(iACA2%k?HQp!le9 zZ1IgPCRGZrW9+7D#`+BivhfF8Sihmi&;Z)nd@_)P0)h>)iqZ%oQG+JZ*P!~aI=e;! z?lAxl#(GU>>$W;RF3gbgy!h>8^Ih~|?iAS84tF#Cb!{^t^uDe?pBh?99hug}6~pEv z9>6@NsyRPSo<2VNNYk}W-Dr$oj=iO9f0N7Wq5m0%8_(h6RG@gMVFlLl5X}=emyl2y zUCoh%@==DDRJsMbjyEpu2Uv$at(O+P@B8vI+NCDXbiiM3;;9eZg6%O1- d=@fK(HWG^lEFjqW{G$@28$OB{73)$`r|ZUEy_9^`o@O5pUmcNdL4b zU;R95;aPL@@pBFxYvbEykB4d+OY2tdB%8Dmi|IYL>5Ygd-yid-jUERN`>{*0v)d6i zXk370%I%HZu6|9{o%#yU1Sn0+&E74ez1H5&s0_)MH*YWE)RCL$Xn-%?Qepw-X@UbY zV@!hB%x{2k`ikMv=Z)mo>qM&MON7|$GXZRYFvV41BR^3Pq^&%s*)#G{747-s@n0$H z$1O>?4@dxC$`bJ-EEL-c{Np9R4PrSW6}W 7@U*lcp|5LJH`$%XTWA|Mi>?St4PQnY%znU;f@L_@Vz^u# z$@afN mPn>LydHg*gKgm@bLdQp!*rr-SepLbN=}clJq|-M9N1^VZip?1V z_f{1yhWylF;qbs_t{Q{zy0az^5&`|agnn~%(|hm!9BPq@sPBb^-SxHJ-sO)s*}HG! zW0O>+!Eo=(#*1r3^v{*#ELr2f`sYhT_)&I2r2&3m8TOHRK5(n;%=qW~;{GWzX)gHF zbV)0wm*Wc`ruDu`+S6!VO5=nnGNZinUI#E^f^(42*;?;l?XP3>K`_MbT6u`1CYwH} zfhHd^F&X+e&$eyNEUzz=>69(VYJbPI{7U;=i3W`$g Wzg5H{CnLMe!@(_@!_Ut4m>0(=LU1wv-nvfzzP e7t4iGhJNg-c^AAp3Lo+LC2EF)sRB w){R>XT!URnP=} zmlLLWQV4>HQ|HYET`sLJoV@JM9xP8*B64FxBOUx{MNwWx%!=(z6t{%9kn{PkXuS&PGlXhkg@> zw!Sao5^>o-b3+BMs8gcb(~4i;_w~PZ;xYa6$TcOGgX$O=2ZV#ItqK`ID tOfV4?hwTP#=EaVRg%bXub#(-cEs(8N67?w`m27_j?a5lC5&+((wOyKh z!Sl&zM_Y~!J)w^L^Pq`)zoKS?9EZz(;TH*Tg|7C`n!mcfSm`+Iv+;@Rdw`U|n5~=t z3VBF~;hY E +c@YDx+PJf{q*x%KH0^q>xwHjBM-kF?Fg#Op&eyUki z$KHSz4aHV`b!RL@)m4xU5gL_S<>l{x`QcEGR6)tXrcyxgh3R|bWyC6%o3=AT&z`LL zF J> z(d%r>wLw3BD&?%B;OAGp{7AK7rd+C42*SLCgmJ79S_?mfgrAv|3u04oorV!X3Dqd9 zOE^a_J&p%jA@W4@az{Cbf^qF+v5LtTo_~?+P>nHW#Tfpb^E>;ZSB&(0){3GJu&X;) z3cuD1L@UnLz4agkYQ3xiAyxz*BKL`12Foe)p-{ ;)vll5( z!I>D`J|{q!7j2MX2VA%?+*k^T+qeLKA;Q2?=7Tl9SS~#2xM0mGEvB08myji!)H2`> zD4 gIijwMo2Maq76ys$4~g}!Gk-<((BeAlJDwe4oI$AQg-xAl;AJJmbS)<%H;5` z?~!&gUQgr1sz9&VTdR7~u^7=s^XXvc{;0ebukt?;^2z)QwMPoYle qa(dv9dq_Od>^Ew5)UHTn8e$oI IwUDB9JPuI z)4~Gj->Sd~KZBE(?H@e`8sSPq_i}UC-xOR5Bd+*|g4a4YoA+xc<+43xY-cKYxex@$ z>I!(C2P*Yq$*}Ofvn{A|ABfxL(7fRR&y`XqQzmf@?UCW>Q+Z|aA>#_WFMVRQwi8m_ z-kfS+s*M(&=-O;}@K!1NMPuQX *}gzsRV$;`QGAsnZcSpih8mlK{Ar8bl}E59s)1&<5vdtnP*smLRx0tM8NXqLAqS z8!nyfwRao3D9*oUy@B}lKH5EjcN+VL4{pl 1_7eomIg7JneF7({Gxmh=FfbTz zPWn#N-XwaqQw}-WfX>Ru^D*CxmS0a;3@4l}@=PG)IcLbQ zaO=1&O!mzx{u)1S0?d{&79clSJnt;mDs zbfKN*mVK@{?TXn9p2cb@n+fJ9VMI;=b+~-2{_}P#W&mU?!5vR|uCK-~?vGxtyPhA| z;-~orzH|3X=^2i4TTXn=|7Qjfu3N8vi0x|~_XosP{Nq8VsXUSyTYmpL-$I|!J6Jj? zkc4v!)Rw^x^O5R{jHbkda&Qyk2u4hC5`vI|(%>Affs`t)!7ODO_vq B={M3ax5)ZEC=%hk^<1xFx`CRpwfU)?Y_31|gtuG#Ql3@NdwX1;ZkisuD zV!00FM!8h|h4kXVOaZOv|HbEY%HFJxN}GSxw8|u;OGa{sV?mnkM_H{1eqf0`eca1k=R@z0)LG!O{pwJCLG9{yayf-gJr z9t9%;{nT0&qB0LN)fpntlYv@4)a-Q`p>`uqZu&GGAJf`B^iIRuF+p&V5r~6{ h~5#;K4xWt^S@9p3g39Jp`I(zCxMNT zYA}2v+}xF4!tspAdyF9J?fSh?OW<9}B9_H X2id e|r)J6&xQG&TlLMLIl zc-?(~>fK Z;6+q~i?&12&uvttH%OwWH9+tX^_Rt-B+WS{!C83H%z@n`vzjvIF7uc$sOY@`vj z34aP35Y {$+{m PY7B;_Uapae!o>tz5=Z>jzjVqs zcpd~pIcRBc>m)nL2 JN0dmHI!>#%>B z {o?jP6@~ zJ&5uoP)r__WK5Koq5w?Umw-=@L#`YxY8x(g+Ax9T&EoeL*}>tHEA-B&vBOnWGSTVc zH_`W%n8&{Qxm;ht(&;fK#CxIw$Br}MsqeFdEkgxq577btsu#W~@*e#8w4NTj-)Qz? z--^P60}?(f`rA%kUB$_c_NqSBR32y6@uH(WeP~xGQ8haN675g
&}IR%uGqMIs9qCZZSd1Ut;x@;uI@cCzM1~2w*oW&9UpQ~QT zCQr oU|9E&;=2?HOwQN_b`D|IJ(i-@{Qg~0{_l1Y2_Jl2sOq+>t zfY3G7w _-o&7)4Eh2;}8 zT=zyq{Pty!b->wABZK!V4GP U~-nO&Y zs(p~L_pkn?>1)s$QS}SDbK(Q{)EEI^-knfpHPAjk$b1Pzbh*c8K)~`VE6KFnFWp#{ z=dIofY8m>qde{eGMMzqH4KnXZD?Z6(M+BY5)0K#S4Q{0aqbyS1sqC&EQg|XGa4oNm z+texb>H33vmi?7`n`Nle6t|PJ+1U!;s;cP_rZ5ZaO^`o8Cx+fnIeVEw$lFv(#xiE# zv;SGfr2@AagJ8EF($Ks7`QAJl>6@q|6&EjqKc_8zFT+-mke(a;B_HI%gLc^X16T}b zXH193c69&Erz(6LZ+O9L;x_a?w2#X4$sdUICMT%FhCl*$ark(@I8hFVtwB_ZyXTd2 zt= c{(@4?LEDJ?P&qMsBw)y8M}b bl+hB74AtKXccZa*{k*<3@N1f`}f}W)f9@9WW>vmJgKno9y(rC1C(Ae_-|F zzFKStrJ&iL#u~7J09$R$WFFAC+&>O0fO6=lZVvQcbkQ;{PS%hnG7ZDcq(XiXTL`Rs zvmJ~$UmI?-vTL;`Ils*eM7`Qrlu|K=o#O)tp|Aw5B4W2J;(M5p`v>yX
!*1;|bf1h>&bNveH;IO2)q?xcIh&hs{Vmqh=w tIjgEg&;UC#+)Wha7zkNLvStL0Zp6@$YrN5b%*sR`d=9+>!kaMtBe7p4 k}6h|wEv`OEvllY||J{pRbv)0@2b}RdVz Hk95Q`N14Hl8Hm)|RU?Q#18{^;wjKG+sF>AJg=Nh@eVo y#f-rukq_K~onETsNwX0hNHJ6js$%pdS+J+m;lvheNh>riH_ zPCze%JMl1TLmO+HOR{_-PBSs5GV(`*f@X9wVI2^cdhj?ijiV**GbGf6=H9w chkNPa9x_PMgS=zbvzw=)@(t&x&;2VIsUJ<_xLR(Nb3yP2wRUzaU7%lFS* zOm@1k?J!#bU0kepKhg&FUl}=r;CB#NQ#z56k3*HK;6Z#A=Wo+k8`|}iNzpDy5n~8> zq8vCmwfp}Q(9YR&Q6yh>IohP-T%Py#j(fM?AGNUDz0+t~gNmQ76w`gazjFTvWm+2! z9zr2_mSFLk#Ju1(BN;VCM~sJe>NmF$=Hd0uFha*Jst<2H6KG~aU(yoJ^59@X$=rV3 zA-k?n#F)k(Ypb5`Yx^XG0OVw3RGjJwg^*#Mr^C>{tm03HLyRqeJiGmrUd`Bd17-o# zSVD*w|IiC?N&=Um ez%d4(WA_>fTB6FrS@rF*Y^wJfml0WUR+vyD!AniMf8 zp-Mmop#f)Nw=E!f#rYg)$e1Md5d@5yW1ZAr{i=@$4Tp_Z?-JFuKeYY_{@UYHVQSgwp0du z$Je+-1cCZA+0-Mhgf?Z97?@I(z_#Ei0mPG>EgJjKC5`_K9F$W;$kHx+@k(Bqr+`sf z8VQ(6c_4wYyse23YOX&Mi%40wnSJrcrH{@m=A|nGmsb9*woQR`V!ONg9gp)D;rj!@ z*zNN;khZyD)w39@2Tm^s3S&gSHF@QdR&Lz}h%1K-_j7=dgE^^RWdiSru>Qe&JSU6# zVpcvbE+ uU-7 zZ{;=#T-Jxk&+Y|}jIwWu_@3;}62YyQ%?T%Q=(4uD4r5kYqL@iWlJYusC1FSy0(rc> zE >T%E62(EM&Z|_Bx&Q@1K8x=Zp=PWOR!3HkIYzY ziQHI)f^U{-B@W`IIN!O&!rXWEq^I(ENNYV@cW TgB zh5$t%`^|I$Lh$NLzte+@Us&1o&=>P9Os~9r>-%Mko*u{6I?kkR2vzzWZ3x~&)Zc_j zT-?5Ci|iJLvLz*pxUfYi#O5w#G?7K#!!4&(gB*+>6s3GLyl5e-@J0MIiq~tC-+v7+ z-gHU6ZD2yNbuWeLlDN*#k-C8(2zUty8oKbY!fe{W_wF47bdS sHlg)uFP#*S&XNVE|9C zJE#6GpUwR5WlNFmzqbr^2aR*sEqqSfuSkV{(@+G?C$#H^f1R5Drf(W<3_4IqEMr zHr|)trKR^$F2OTGeM*0_;Rl$ZxNWNtNo=dWP4A^2Z-UD=P??8=V)oSy(B{bs^JQB% zEx*C<=CHb#%7T}ZuvCAS&}D1EynQuCo&d$uN8bCC^H8f`DT9Hy^TH47yXuge1MtH^ zGfbDtTn(CUK9=aqxS3U9k%&!UDSs8ETk&!qizs1Mh_I zAo^hcE*A{^Pz?79@G+b84qle|%pfy6xEA^h{nOou-C3${AEZ*5roew_a@so`T37id zL390Gp7OMh|83qpRtOJ6&uM-CD F%h0WG}`l^e*X9-UNddIyU+FN5{~1mLITmM_ucWH08eaMm`h8;I%7^ zrv&$O$%mP9ki^_4Q{t{t@yK3`Z1AF#p>HBS1LHugxxAqK@qN)mtY{N+S&Jp)L|ipn zAB^vCkbU{`QZcRSWNY+Ay_LAr6H;534+p8o1wJ+zR=cr%5Fb(!7Q4C3HFC%>YTbuo zkFkSzfkCKb=&!)*5tX=VqY|fBOGZxgDTS~Ga_#nqem)9OBm;ML>CpZrW4}#Dc=)3j ziOJUIEc0bor){lC;=)911iWx6ixcNZ_i!EyJDeBmyChp2 }Zg=SgJ-fn-+eP*YU#-Ti=}4JD zv_EVz69pr&7Z1L>&*{mikoEa|6#;kB@xHi{L`?s)FS2FVgdJ>z^Tzl{$ekHUyD457 zsr(StmG)v;$Q(DrZM^seja`VxvlAA1=fXsco4!KLdntQeXneW{(3#^ccLHaALV$~R z=Nvd%wJ7za=z(_#qq~#{Xn|V>X(!()y9*?dagR5N|BbDCJMPo6{8j$9Cf(~KmO9uV z5ZpF(rE>;vo8Jk#6J6*66JbUNl_frQee#%{Dn8!scrmcn6nt@jT++I~~gDnwO zDY172&ZXpIuFT|>ccX$X@q6wd4mBwi0(R)btRxY1yuQL8Iif3&Fzn7#S(@tH`7FxC zTi1Yvrz9TIuzRAqDkU=I^P@Tq--A6he%iRPdo$;}1F-us#YFSU@%`2BhbLQP_5HgU zm%#x4Y(~hfwhc5Tjn!p;lX1uB$odLV8$1)Kqq~c829;M)N|U2B#khs1Zkfn{c+aaT z%}dDST%FL9^A1A6cyb(dMX^Yu$UrQl{KJ}p?;~Ln v58xe zMAr8xucX{V4Zshb-I)c#XK^t~q4Zx*FBGP}RQ!*p58=oDzKxwmWB4OVb2gANwg>8d zLZ2xnG-m&Y4__sTNdL!dvaUCk)BPI!vO&VkV}(I=X^E^Uo$;?3vJCdiLyXWKoB!dZ zg`(81;eUH+;-Gc+YSX_#q1HRHAs!&l zA5dVf>R{VX-yYrHGTPjA4ta0 Ft(G{q6CkN9$elP+%X5umjv0A_P~%u~#>l z9R^9FITu&F%3{Ij^`F?wJ?ow?)@_{)82{Cz#M*+ }8t~@B%jv=8U?UDwCe|;( z;1(z2ldJE9tbQ@atd@PaZa*5l>ao(iV+W^-kUH7{1Rgc%LC$rhK95nk#YAEg!2pFL zw=2Iaz48&gD%LvmU@fB)Evr4^pIr?GKAJai0ZO#+oEAtT%_7vUCD@IF;FohAU59-2 z@FQXW=c73u$Ih$UBoU_s{*E22vm`y^#{2!#Kg%%z%c1*sIb?*f$G?Lr-#p+cr`mO2 z(by2&G`XyDm{DY1A21#-Ero~F38Zz&tXy~J12Q8VEdX6nHOqMSHOTH7VPfCev-p2P z`xOmIggNK$>7iM!x+I&9gM^6yY)c;-K<>`;#8uiLRl`99#e$n38jj{X#^}IskGio5 x-F*)H%It^rCe6Vm48#!)@wVL5#F8ERP(}HIF`cl=HxTeoU0GY{siO6b{{u!i%1r F)0CMnc(aHn3sSn+6GKq*D;3I|NBl5NQFWJ0wLE6hs6> zI2(-TdEW2+zTbD9bDi_gd57zsnH95U&6>H_y=EA=n7vrVs8sQT*#m%%4!{Wj02Y7= zA^}j5H4yR#08s =)%)L(jH{CzAS=D)@Q;{5wq zP(Z(BfCN$g$VPYnB~Kk$BCP^kl^3%Yy8zzRC~hn104NuG0KpXm*o9v5T`T|*03H?= z7B&_hHZ~qHE)Fg+IUyb%AvqN(DLE-A6*1mb`c?b{{xt{T cw%9~Hz5pbli9r`j$U)*<^nm1$TB3ul5>nyIgbILA(9kh3 zv9NJ)kqh9TL=b?2`kP1ufY3mwC}=3?m>5{-sCYt1A~7l&6Nv!2f&rM6*&|F4gDj<> zUXg{B+_1}5NZ2!cObPRPs?q1weTbI`MPb9;8_H?Mb}BE65TcahCTq}xClTEf-s@jf z+0u(68#8()Hx5ghdZ#wOn%etBWtKMgO>Z5EshK(WMrW0^^v}HeMhu{!Ahkui(g_m- zUF1pyCIJ#Oqy`?$r09ZSDP)%#bQz9)7Gkws^$br{G9rg~3GZLWxKsf1hRDltq!LAx zb}A;K2 3z~7 z>U2gaOYFOAsi|gFdf_cftb5W&2fJtFnneg7Ny5~&IC?8;ze$Eylc|YE$zRT&Ps+=5 zY&vt+xeE+1%Q1Z4!L>l}Fa#hJQz5C?9*$BNpCnM{>b@?WY)_4Up}$X p zN`VP_F_9-`S_7G~?8+1uPo4{v%{tJV&_y*2ydD%_F*1D<-*IXoak??c`fQ#>GE3WL z_TBu^8 *nr3b}r#hFvpy#D_m76-nQ@~SSQL&s@!wWi+I||gC;<{)wi9s9-d;<|ntNVY1WwVXSxCrp#x8={i?^F93~!3m~+@i=4)( zDa-JS^%ULI?6Sq`NtchFh&LYht&*1U?+~924D1DOuTRxl!3&l3_r8S`DwAMg>W5@j zg>7$*L2m*x4)4vaEUi1%b{_8f1_mFk$$hy1_V~Uup2r`uOPDj*4un)Ry#dP>QSI6U zGnl-Px#xRo@! {jy0% zLi46-vY!B=&K(Y7IJDP$$5~TL*m7%kx4^=DtmS65^svX~?genqWQqC*)!h@lA7sa_ z599JJp9yc%<4WY|jZU1tIuhV}2X7i-m1o5y+-ZS4uZ*+|35}q4UtSrz z0E`^Y70lrNOoceah94xMs*kF&;US_6&|S=La_VnG8kZg&t-ZrodA-o`Y%k{A^v#`> zoxmAz?m2-^|6KprxvR{hvF5-ZGAqXn1?Pm5iY6Xkv|YPX(lm}-?z~ja+)L~p95}{z z{lNM7JG?)Tj_u3+hSR+EZ_hQ)Q={A@KgOP206R~%UCve(FMzwM?>k>l5Fax1e %4sdT+ChU66E~#wGiUv2gDUMbkMF}IWD5B{BPM6P4WscgUm1Km!2B{ zaNRv&t_VGEgu6Ea30{8Q0DUink*%8>{E9=v6#<31db?Z_F6&pNivuIFB)n>C1oOM( zP=p~a+gy@=%7l9Af?c4-D(1#W)X&a-HqiHUbF(*sBD~%8Y@HxTBDy1!qgZ@Li0frz z0LT3g9SL1ERD>g3f9Zf{>kWe=V6Im}kaX-TZY7 oLmfGgrJK-(7X^@pPCfbjVPsJOtD z{{TqK{Uurv;_UEi=s)cO7^*2MA+@;-Gyp?8Mn*d~Z(Dh{x0m2mQuB2EFE~Z`f8|s3 zv@ 2G5$Nep%)x+h1d6k%Nzb-$MJze5N@8zU i(Hd1 zSBKx`Be*0OB6U)9Lm=E-;BKxCznb9vrd+D h>l1-;yr=pU|#saVZ)(HURYsx{Qi1BkEu23des1pk2mXSMa6w zmo0wU_9ySJ_ZUSUNkBfoX!Mu0tLXG6FZCseiVWd?js6k@E+bzQb7YAQfB{>;AMir{ z{B}l{^uN-t7x5Bt)#7)|{D