From 4f3cd1c93ffd42e333032dbc01e9ec79bfcc3068 Mon Sep 17 00:00:00 2001 From: yoimiya-kokomi <592981798@qq.com> Date: Thu, 1 Sep 2022 02:26:36 +0800 Subject: [PATCH] =?UTF-8?q?`#=E5=88=BB=E6=99=B4=E9=9D=A2=E6=9D=BF`?= =?UTF-8?q?=E3=80=81`#=E8=8A=AD=E8=8A=AD=E6=8B=89=E5=9C=A3=E9=81=97?= =?UTF-8?q?=E7=89=A9`=E6=94=AF=E6=8C=81=E5=B1=95=E7=A4=BA=E8=A7=92?= =?UTF-8?q?=E8=89=B2=E6=97=B6=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 6 ++++ apps/character/profile-artis.js | 1 + apps/character/profile-detail.js | 5 ++- apps/character/profile-list.js | 1 + components/Common.js | 12 +++++++ components/profile-data/enka-data.js | 1 + components/profile-data/miao-data.js | 1 + models/Character.js | 32 ++++++++++++------ models/ProfileData.js | 3 +- resources/character/artis-mark.html | 2 +- resources/character/profile-detail.css | 18 ++++++++++ resources/character/profile-detail.html | 2 +- resources/character/profile-detail.less | 26 +++++++++++++- resources/character/profile-list.html | 2 +- .../meta/character/凝光/gacha_splash2.png | Bin 656969 -> 542932 bytes .../meta/character/刻晴/gacha_splash2.png | Bin 845102 -> 760624 bytes resources/meta/character/提纳里/data.json | 12 +++---- resources/meta/character/柯莱/data.json | 12 +++---- resources/meta/character/空/gacha_splash.png | Bin 0 -> 662779 bytes .../character/芭芭拉/gacha_splash2.png | Bin 883476 -> 772386 bytes resources/meta/character/荧/gacha_splash.png | Bin 0 -> 724881 bytes 21 files changed, 107 insertions(+), 29 deletions(-) create mode 100644 resources/meta/character/空/gacha_splash.png create mode 100644 resources/meta/character/荧/gacha_splash.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 3df0efd9..59b565c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +# 1.10.1 + +* `#刻晴面板`、`#芭芭拉圣遗物`支持展示角色时装 + * 如果角色装备了时装,面板的角色图会展示时装立绘 + * 需要重新`#更新面板`以获取时装数据 + # 1.10.0 * 新增`#面板练度统计`功能 diff --git a/apps/character/profile-artis.js b/apps/character/profile-artis.js index 4031fe01..1f22641c 100644 --- a/apps/character/profile-artis.js +++ b/apps/character/profile-artis.js @@ -36,6 +36,7 @@ export async function profileArtis (e) { uid, elem: char.elem, data: profile, + costume: profile.costume ? '2' : '', artis, totalMark, totalMarkClass, diff --git a/apps/character/profile-detail.js b/apps/character/profile-detail.js index 6cac5740..304a1d17 100644 --- a/apps/character/profile-detail.js +++ b/apps/character/profile-detail.js @@ -13,6 +13,7 @@ export async function renderProfile (e, char, mode = 'profile', params = {}) { e.reply('暂不支持主角的面板信息查看') return true } + if (char.isCustom) { e.reply(`暂不支持自定义角色${char.name}的面板信息查看`) return true @@ -93,11 +94,13 @@ export async function renderProfile (e, char, mode = 'profile', params = {}) { basic.dmg = Format.comma(basic.dmg) basic.avg = Format.comma(basic.avg) } + const costume = profile.costume ? '2' : '' // 渲染图像 return await Common.render('character/profile-detail', { save_id: uid, uid, data: profile.getData('cons,level,weapon,dataSource,updateTime'), + costume, attr, cons: char.cons, name: char.name, @@ -114,7 +117,7 @@ export async function renderProfile (e, char, mode = 'profile', params = {}) { totalMarkClass, usefulMark, talentMap: { a: '普攻', e: '战技', q: '爆发' }, - bodyClass: `char-${char.name}`, + bodyClass: `char-${char.name}${costume}`, mode }, { e, scale: 1.6 }) } diff --git a/apps/character/profile-list.js b/apps/character/profile-list.js index 00148884..9ba7ef4b 100644 --- a/apps/character/profile-list.js +++ b/apps/character/profile-list.js @@ -29,6 +29,7 @@ export async function profileList (e) { tmp.source = profile.dataSource tmp.level = profile.level || 1 tmp.isNew = 0 + tmp.costume = profile.costume ? '2' : '' if (newChar[char.name]) { tmp.isNew = 1 newCount++ diff --git a/components/Common.js b/components/Common.js index 8e1bab63..84774f08 100644 --- a/components/Common.js +++ b/components/Common.js @@ -1,6 +1,7 @@ import Cfg from './Cfg.js' import { Data, Version } from './index.js' import { puppeteer } from '../adapter/index.js' +import fs from 'fs' const plugin = 'miao-plugin' const _path = process.cwd() @@ -27,6 +28,17 @@ export const render = async function (path, params, cfg) { copyright: `Created By Yunzai-Bot${Version.yunzai} & Miao-Plugin${Version.version}` } } + if (global.debugView === 'web-debug') { + // debug下保存当前页面的渲染数据,方便模板编写与调试 + // 由于只用于调试,开发者只关注自己当时开发的文件即可,暂不考虑app及plugin的命名冲突 + let saveDir = _path + '/data/ViewData/' + if (!fs.existsSync(saveDir)) { + fs.mkdirSync(saveDir) + } + let file = saveDir + tpl + '.json' + data._app = app + fs.writeFileSync(file, JSON.stringify(data)) + } let base64 = await puppeteer.screenshot(`miao-plugin/${app}/${tpl}`, data) let ret = true if (base64) { diff --git a/components/profile-data/enka-data.js b/components/profile-data/enka-data.js index 992a8f81..30fae6ca 100644 --- a/components/profile-data/enka-data.js +++ b/components/profile-data/enka-data.js @@ -41,6 +41,7 @@ let EnkaData = { level: data.propMap['4001'].val * 1, cons: data.talentIdList ? data.talentIdList.length : 0, fetter: data.fetterInfo.expLevel, + costume: char.checkCostume(data.costumeId) ? data.costumeId : 0, dataSource: 'enka' }) profile.setAttr(EnkaData.getAttr(data.fightPropMap)) diff --git a/components/profile-data/miao-data.js b/components/profile-data/miao-data.js index c562cf6d..d7e04cef 100644 --- a/components/profile-data/miao-data.js +++ b/components/profile-data/miao-data.js @@ -35,6 +35,7 @@ let MiaoData = { level: ds.level, cons: ds.constellationNum || 0, fetter: ds.fetterLevel, + costume: char.checkCostume(ds.costumeID) ? ds.costumeID : 0, dataSource: 'miao' }) profile.setAttr(MiaoData.getAttr(ds.combatValue)) diff --git a/models/Character.js b/models/Character.js index 565bbd54..8f409ada 100644 --- a/models/Character.js +++ b/models/Character.js @@ -11,7 +11,7 @@ let wifeMap = {} const _path = process.cwd() const metaPath = `${_path}/plugins/miao-plugin/resources/meta/character/` -async function init() { +async function init () { let { sysCfg, diyCfg } = await Data.importCfg('character') lodash.forEach([diyCfg.customCharacters, sysCfg.characters], (roleIds) => { lodash.forEach(roleIds || {}, (aliases, id) => { @@ -49,7 +49,7 @@ async function init() { await init() class Character extends Base { - constructor(name, id) { + constructor (name, id) { super() if (id * 1 === 10000005) { @@ -65,7 +65,7 @@ class Character extends Base { this.id = id } - get weaponType() { + get weaponType () { const map = { sword: '单手剑', catalyst: '法器', @@ -77,15 +77,15 @@ class Character extends Base { return map[weaponType.toLowerCase()] || '' } - get isCustom() { + get isCustom () { return !/10\d{6}/.test(this.id) } - get abbr() { + get abbr () { return abbrMap[this.name] || this.name } - getCardImg(se = false, def = true) { + getCardImg (se = false, def = true) { let name = this.name let list = [] let addImg = function (charImgPath, disable = false) { @@ -130,7 +130,7 @@ class Character extends Base { return ret } - checkAvatars(avatars) { + checkAvatars (avatars) { if (!lodash.includes([20000000, 10000005, 10000007], this.id * 1)) { return } @@ -150,7 +150,7 @@ class Character extends Base { } } - getAvatarTalent(talent = {}, cons = 0, mode = 'level') { + getAvatarTalent (talent = {}, cons = 0, mode = 'level') { let ret = {} let consTalent = this.getConsTalent() lodash.forEach(['a', 'e', 'q'], (key) => { @@ -177,7 +177,6 @@ class Character extends Base { level: (key !== 'a' && cons >= consTalent[key]) ? (level + 3) : level } } - }) if (this.id * 1 !== 10000033) { let a = ret.a || {} @@ -193,7 +192,7 @@ class Character extends Base { return ret } - getConsTalent() { + getConsTalent () { let talent = this.talent || false if (!talent) { return { e: 3, q: 5 } @@ -208,9 +207,20 @@ class Character extends Base { } } - checkWifeType(type) { + checkWifeType (type) { return !!wifeMap[type][this.id] } + + checkCostume (id) { + return [ + 200301, // 琴 + 201401, // 芭芭拉 + 204201, // 刻晴 + 202701, // 凝光 + 201601, // 迪卢克 + 203101 // 菲谢尔 + ].includes(id * 1) + } } let getMeta = function (name) { diff --git a/models/ProfileData.js b/models/ProfileData.js index b38a4f28..8c5c03a9 100644 --- a/models/ProfileData.js +++ b/models/ProfileData.js @@ -26,6 +26,7 @@ export default class ProfileData extends Base { this.level = ds.lv || ds.level || 1 this.cons = ds.cons || 0 this.fetter = ds.fetter || 0 + this.costume = ds.costume || 0 this.dataSource = ds.dataSource || 'enka' this._time = ds._time || ds.updateTime || new Date() * 1 } @@ -91,7 +92,7 @@ export default class ProfileData extends Base { // toJSON 供保存使用 toJSON () { - return this.getData('id,name,level,cons,fetter,attr,weapon,talent,artis,dataSource,_time') + return this.getData('id,name,level,cons,fetter,attr,weapon,talent,artis,dataSource,costume,_time') } get updateTime () { diff --git a/resources/character/artis-mark.html b/resources/character/artis-mark.html index ac71f67d..07293ef2 100644 --- a/resources/character/artis-mark.html +++ b/resources/character/artis-mark.html @@ -13,7 +13,7 @@ {{block 'main'}}
z8_Yw%zrF6qp6s|J@&C0fOZ4~CXK(UpiTiQlk*VW8@Axuus!}VPwCr?jP)ZdQ#kSZESA%a|Qvctj;-dpG-&r=ItC> zEA4poE-pu|{0WH(#mH8P1WXk)J1^lW^Ex{_5hOzr-5*;RG)Ps#-T)#ZzptsrkVI6e z-xBy1@nB+Og5}LBYGZ{4V4c5)pd{LiXPf%Q7xJk(!5z52aCUpC4TM{xS_jQeSKUD3 zh?O~hQ1T4Y 6VY%YtqLqTYfS($!O|E66WK2VZ~$D!>9gdsqjN3yS^lnYhCR`s4x7a z6E!{pj&Lns*?67w;38?JfC} rkL8u(M9q=j;1E-Z$%w_7bpg6c1FpkI9s=v8aobx!soXiypVJ<(dc85=Gf0QVY z7`HzlA#gAW-~W6OslSy+?|5p?Bq{qJSW*#t`nb))WIM4{>wjEO`8if@WlCp7=ccPl z0gPabVnr;GP?lGe984=rlK|tqVQbT8=6zwiraZfkRtmu9+^pB|rszZ4&pK{Nkt!*# zsuoAIJdt75tn8b04)+h$t?EL}C*4^|%k3+k)R?z70BEq9Ad4mJEb=fuKCHX+ wZV;x;&oV z{`VPyO<=zFKywRlsQY8@m?pP>oJPsW#RO($5!bx^lkMGeLPf=|^z`0;tuAmdmFnhE zmF1;1WJo&^U$w*UVh&je?`kdn(rPjM7a!v<@x3>Kw8fxFSI0e~&G^#XS4NVzKGNNh zh2dI@Eey|`AMCQDubD9Ghq->l?AAV4mSjAO%uUt8o@8$a&1Z2R{Q*97XcFnrL*d^L z`vx0 oa(j;Dk$*b0I_;|F?7r_EnV>Lvq4`^?j;V|uWDugNR~oMK zxDijdw-=bkXV=w+gWUjCY=tvl#0w_aWzui_ddPmJl5>fsh0^JfNByL?VrYgMgEr0% z(J>ZurXrBzL#S;nFKy5v`tWN-vb@`|oT|bFEaPg=+`n;}fH163n$pXXDYWESi{%!% zO_(eDfC75Zx?n}RGvZVBZu;3X{Ov5gsEN+s1<5&os;|_!J%?$QqvxJ|M4Ue?W&rE| zTZ~mx@E6=X e+0GCWA)i1(pG|K|KO-sGW8#QIs$MD0KgB~%PR zN97$t0xN0d2M6thgx^v$>iGI7?0XsDg#{S88-7p^JV;?{fvxGQYTe*%I7G}5e8QJ1 z4BDIPS%cnSm+yepfnQHo;?$6$!hlsdmIKtqBjH}kL)(~LMXd~-pnV#in_w1n-^K7f z4ik~uhBLqVd@C(v33lqgW9m5EKmav$EPnpcA^37sXpxHcNk^;gybVVrnqp#d@-y(W z3{ )^Cxf9sve>+w$; z&@)tgll|s{?)k9Ziia-J6|H6wo|!|_ J`mhoh}j!SYRKG;W9HMu!7iJ3LwOKHwZb4TiTTb*<4G{s&iOD?&0f zJo3mdIjL`~eE`JRD<;h1d@WH>dR c6hfbFS(wcD@%>w>Dt&f7069*`HF8JsW;oB0$j|Hzj*ZuC|- zntHJ)WeK6u!3s`ue2P}xR_MioraP2+5KJ{UxGJJaaMaYc}R3+^#+B4&^0CsSDTX zg@%H*32N>*rq>Iw<>9n}W|fz$n4dB>H?PKB(d?yNGDDmYJ%VeoerP;;K=AzcSDIYk z0->rEcYkFU=XvOAGAzAsGC6ok!OGZ<;~f=om!drf@lsYCBhRRzeEf!ix8smLtJM`# zIolUGADuQum$7)ckzt_yJf}Zj!tNp|SCEF(%M^^7=ku_^kPU-izNYdA!jM{`{_wPH z)WHYBf0ZLg^kYrh`~GuWW@5$l(BiU>Lt O=fd|H8#)x1IJFHxKJrMs zW@C4Ha&4NAnLU SHr=5fKioi71$h)mET ;KG4ZDDNPPCp`n zkH2c6F!AFs1-*9R^jt1k?^!N-$ML4}Wu)N~%<1x=c4Q-ZO%pE1GHx4>H#ch{B66Pv z?OV^eJKj>;uU3Xd;^M%K(A&`+x{h^qA2$L1K$h-~pf?{2M@y>*oSgKEV>8dWes70Q zvV X14 !99=mwBg z;^_d^0Y`LRvJ^h@x|an}^Co|UH0ef<$Xn@j_#q42nN9VzuE)m0Ra&b1C|TspS<{Xe zW{ySRnI&hP5eFl_6gkjEPm9}1pLM(|8D9q`+NQb_mqqvnDEuOwD+c ZDPE5 z6ev`!{+qbvosd}AyK-jr;3alXB~GQ v^bb;{G6fLTnU& zlW}5zUd&!;AQ%@L IIV!aDnX>6eQjzD|Zog2o4?>0h9yMDo zll-Fbg Y3=Zg`_NuTt9H7T`)La=~%(o^I4cQ z?g+blt!NDY$&k1E>nmlJ6Y8=iC8$~y%8}33{#;&A*u2bp8(In6A$#eLS)94Fl=-iV zt)FnqUHoHq-S{FtVDnbzf9b6$%Ax%scfAVhnN{qQ%zWM6wO?U`??EwE%fYrWE!ffj zOtn#+rq?s+0I)=dnegBlCJ*2!O2ChWe>^n_2<7Q~M_c#r&%8n~^aN?A;u_T|S!D^e zM{PZWhoM+aX}WfAKI`&|A)=?tvB^odw0J>robgGDh4RJ?^Pk9mie+E<4ie{WvM2z= z%F!h?{MAY4I}~#-;CCqe`y`~5q2HTSN;0&1Kv Jam`Aa{4LCBsfOIzsKZx>ccOD2Y|6QYD&2xB^8f#}_;$#wd1>2yN`nz?s%fpw95R zP&U$b$bgr!HYNt%WuH|jG_`e!f^r$1Aw&u%pfu;JKUof>!yB<~_iJauTehxG`W9qV z>Nl|$%Uu39y?N^y8{DKT?)7rr$ssr2u56y0BedW7*CJ!{WE`u&Di~rNw2IKgc*XYJ z&1mkB&(iz-uiCGRDI L@qhP1{1QZxQvsI5#8aa|B4%>5&KEBL^v@X<7z{DrR6Q zan)e*`pos$!YrA99vpWoXE`HOqAwof;r@%4%TZ;6zUq%>sw_c>^*}w(Cdhs3c`@vM zZqC`m%F2ryLU}+GZ& -Wc i0t5 zSbl%Yq0mLI5G2463lM$M(jZxkkOa-Z2lfS>WWd&E#j?r_kpjYd1BsI E(yg<0@0L(qi>UKxY z(~u5ZF87bUSFj1R$EFzwizy3VKOLduK838D{Akb>xt`s7fB*Z{REf|J8zaa29C`|j z<^(BEE!I@xC9Y6<`Zax77U#OS8cSKw*0yF>UHR0#87N-`hBln;+(Rn3q`f+UH`-wA zpQg6G;Ii!$?Gla!(ejBCh4k*dKg>u8Lum6>c1?AR64ng<=@dvM-dY)Ka|)kF@tw-g zY@`aTVQ(afg{8y79O>wf++@4e Mi#s$F4tevrcTA-tj19-_;LUc; zzRk<>axN(*x5a?%qm8?I8WxFgXuCS&ZSldOneIf~x?yshf%D0FIkbik2Fuuc`0MIg z45<3#i( NH8(oOBn}G&aKX`6N@qX}GrzRf1rXHIJn9JMNlv**MmEFFvNHcfyiN z0RS<49dkA~3wQtqB`gvx*k)mga@pLIW%{CbZh}P6`5y=Voe6Pg#%0w5V}5t~uHpOm zO^a((CoQrmnd`~O&pe;Q?Ch!CU0a&y0^E8ufo$Bq85U8kL`pbB^gd9Rn> ;V~TtFq1<^(kOoj%$f zpZu5{qM6Q)O9^*Uw#1kMv*q~w`?BtJh}v>o?j`tet&R9|97~ezq$e-9(af%~S}z;J zQOwHVNVKfn?^oVc2AGd*+^rJlj@hPW!4~BuYVK)z?#d4rSk^#CzzFCyo$d!xa>6iT zQ^F*a{9*0Y%1wu&BmZorrI%?+U3n_XKZm#z$dZUPhQ>O?D5-Y_MwxLT2xg{)U;M%Q zP}b-Sa!(w0CbMa1Y4c=B t+O5#tFnz8k{@?A!Ou$jsLS%MnbXW2tp63*^MCgMVS*62|a{siiE<^ z)aG0BKG=oJIC1Ag7DvQHl-TqC3XNYrldF-MMvTJRpJ9KyboFPH#&IK`XeOQ?cjkF0 zA{jVNTZ}*f^@Kd7R$SgkOmx3EOm_TPjgHa_M^i)VQqfWVN3^&cD~~|P=ZJf}9=@eE zXwj@899%8r9oFuG5pjgTexK^0u)7 yytCx#N|k-aM++bEMQqnf3WMb^krM7gB11`xEltcdWdUF zYT1Qx5rH `ux}i)Q7l58@Bpoq z1u6WDGC$)wifri5^Ro>KaRTq2U(2?7hp5U*@pCjW|G&X9ba`(&f@0+bUn7>N@ zPFeP|6YsQw$vT0??C%$}1~5s9+o(89APYf`oAL;@_I)bKJ*V5R#o!>fUmKJQgNZsr z+=|29X{Lm-n(SSCCc4H>DNv2FLt%zsK9V@jg%NfWloDe2PBhy%4+vh=*D9A`sMu(K zXl >d`!rc<|H`3gW?&I12YwJ;K;vi`a z?z+D($tUa(r&vGiP)tUJk{k&|he}qaqHIz<9Q+=biib-8D4-qa>(i@^OVmi@mYslW ze+t=nmxkTCak_qu!H<1zvA$UNx_Ts4NJifzjk_;y@MMY+<%ASw4929Suf>E`i&Oae z=INqKrDgze!Td~W8KJ`VmTRUB^*F~E@?Arr0?$I%G$Zq@u@DV%FC+6R=CMk|53)V& zad=&mzPdbwA{SSVWHnXNd3h*=Ope*-?{5qcmWU3ZZ)GJu4MrCrlUOvf2yYA!L5$uT zP5;Xp4GJYMf~<0qjQ#d7xw)C408@rqgJajsg0D~0kT2^C#V{T-lH6yWwYwb0v-?Q2 z6`9Jkl^L@7>h04N0qNixDf&5A2Slgq^Hv^gwws6 IQ@v33S1Aqkid3J11jU*DjL`xJ3HZU|-AXd4|3w zy`UN{OFl7vRx$Ul#^(A&e6}$f%_6iUAB2a%D!3NXwvUHWJtYzlhHZH8k z8UQ_d-+Bd?JSJ`CdP;r5L@X;Js*5yq$SkPSm{k7eMi4(1C~%Z=4iJ~I=`viXj4se~ zz;P_mjxJRa4(e>bH*s>uuu8?vsim6n`uii3__Xz9LOpt7MY<}9iK|Y%BdxyqkfoA> zfbw_q+QC5y+{Dn$(u3e5t_1S0Y; zuckGejpk19!e)0sF^bV5V2vQu_-i1Tax~ig&X3gp=o^In=+_^-1{Hhg6?WihVuH%x zbH8^P NTlkmqGNR*g7dkI3omY7f3cN~M-*It_x0`5Og-4}Bta zFkX9_4cZ9(LCHwkIXuOb^*(-7!S}>-rjc j36 z(iI!M2hUXFGDMdw#ga>;+wn_K8}59p6m+$ Z}q6EtH_BnVYflI0N2ub(BO(hdsfr(I1$*p z9!55bUzm(hDk=iMh;U$7IL+1et+-rg#cIOtfYFM(>reWc>_kmFs#zN4cnk~v*NSCq z+Y$9qQJX1k>pBP~zmVEgjY9lOUebV1zg_5YB3*mcexXgFP(hP2r>+{Aszcwd{hzQ) zV9dbFa>V&Z=SoSM&)ux$e?d|qEXTLv(e<#`tXA?-nb1Jwr2+*~*ID&B&H_)IwVWpL z#+$$-!iw4CiA2%?k-C7jU7I1;bLK%rj!7l8P;~{It)(4vSPBI{jr%z%L?j(rf?V*X zw*PG`?d@z@ {3Q4KtpRONOTO>+*V9qWtjRF?+otefioE z{2P@e3JWRj-d5Uu>*?J6u)M >1Bj<52LXLUMhPPMpHQV&N)vVL}M^JBkjSFdON7w&3b~0h@a! zRSpm3ef3J`)zJqk*Ah^Z4!omJNehhZUK<<6pEmGk7+5g`qKZ;Bj(XT>l)O`=KC+&P zbxin9MM;%V_jWr|c8h6aV<(I=ccSbSzAT?}Mnve&NfJSVgo~d6lds+<#e+}xSWevE z!E=&M+zECN5MkW&@SQ4ju3t26BKxnGs6C2QP1u*O9ny=<3oVGOzH^sljGhT~qVQz% z1*Ujz26{cOAm1OeS6oF#wnLa@>}{|v8eIdPju$-E`fUc%hY&oN<2YiXbJ6?SZ*+Rjbx!G- z1rF19EeNxa{BoOa6sI<(WQ2v4tKf+we;@mA^&24a@k}FpwP7`n!2O?)(060#|01z| z|A%$4N0J$>zL06J #5 XeePO%g^c5%VK#_X4Fr!^=om{dnUooc*y>PwC~IlQ+0yP_Es7YV*&GIW7V1lw zhwhr!wE(&ROSksOzNXogX9&*-l*34j?))S>wb(xV^Q46e${#-kP=>uuct6ezg6(b$ zq>QTdI#wV3txMU|psrauUI*N;$7Aq$_ Tbk|fBUn%az19S*rAOe z>|PTS^aQQkRTB^KQ=9);gN29F9Bd_)LU*Cptz-W9gT3A~-Zjrvzh<}^su=Y}CRz7j zArMrFE&grA#LliRx` q23-1+EX^$q23{;;T``k{~uQahQP99?hOdUyP{q#57=*5FXy^P=|!BaW25 z`iV#~M9bCazB0rN9<4IA+lblayuzVS$jaF0iA<5Sd4J_eR>dFk%WAu%Kw~5=tNbii zgv@y6Sa RSy^{LGf*>OWLzneX290(y{0qBB;}683vrKNda(X@9-FSz>z8#g< z#T+H~Wj%JVYVhfa&~nSOev8lFw-zPu?~8v+3+G|j8OSONcetam)~vEihuk+4q!~zR zyzGn#FL?m?h6sZx-A{gimx{bHlFngqS;mq*bm9N3ecENsbAPrLLKeBbMioop8H9id zdn^mtpNIYVyp;whIu!FJY4{S|irq)q2$$dwC~kpvJVCaYzJaKmAVZd|9a!T$M6)8~ ze8LyXpq?@0;$=Bt8_?9$0SZi@7cwH` zD#+hOQ^&}DK_^D#D(B8v{T1=2X6E>5p~dfXiA&A`Y~PY9hAENHZHilGnA=ZiD;_4P zP|{&4IjH5*W%!Uxs!F&K8lzEZEdZ4eHJnG&g0~%YFKa5}kQ(_p=dW>-%k~6(M=mR{ z_?a_~zw%`zE&M2IkKKQljePr|*7#dEsXtcvF|}C7&5)FCCKjk~wt~pR7yy~DRCK0b zRW+RDHfAJdEk;X$?=o~w#(R~<$Nb}afIIfxPZypD@ucllul8v7)RY_x>1$U5H1x}M z-^K~?nsf^aCMVN%*)$`?$)Yu#)^tmtbuC3ngvK^?&rchCw{q|NM6%M;#XxY82u`y> z4wZJiJ&UZxCF|8!KPHn_oSRmJ4tcp_UD`Lo4xh9PbqDdfc?TR@@Kju}eICxgBn})+ zOprtFafwCFppUyGf1haPMtFF-OHtMA2?qjAD(3OQ@q89)ofYgX2E`LXFkfGYEKry{ z{immxn7_5 _<#Eh|0&A@ZcFU-nMnpA#Z3fUUvMYeW$eXldX zdiQG(`fJA4ZSXgexc{soyQ25HUWB{8u?ho?JY=Ocj%C0cd);HyH#sSD%midiI%6xm z=Es3*qB46Z6^-1f+G9tWVV8C(jOqZE*#=5;7cBzztWH-F295|PD@P1W+6L4d5QR)f zREV{CA+ztLSRPTMG*d&INvYEEgI^Kfb`UdXk~S`p?O;Yam*8=TiXExTs%FMdj9vfe zg#{+W$3XZ#vOY^rXfJ4p7&*UTO&h}o3edbsSlA6Ec(<&A_>=c+S{UG9EZekoy|{9I zda59gh%q%aNfs*(e3n2Y2T74nDt<+@EN>>zCco5ZU X zkxaFb2k^|H4UD53ORxltj7ofJU>NKlLJ?9g zEwqN!B%Mxij?w0SvhUZD<)|i9ejqcNB zP)M3$*nZ_X<&zi*_;+0Kidlp1M(y;JLpCg6Lg4f)WuVvZ#nJNPy)LPqq()8pcusoX z!{CWlq X(DdX9NK7Es~uGzYktO{9c7-R3a@oa{&0@?6ycVvT9vc6+mWHTz_Zh87r zl^X`Ot}uLV_U+c|B7|fRZBeJUY~A`j4u0W6oY;WosRHxHL0$&i`afMFR+&$U=6bC4 zZi>!W)x!7`fd>M@x8FY2q%#*Se?g3TAKL&;syBvaxCqx}N_MTe (6^YJZ8O~ zc@~k7-kNWf9&H|&F|#DM&v=F!x-xVqi<)vsr0{D4)~xW3P-Kfvcb>%;bkY+1@RW5x z71QN4#&OX`jjB%fPk>A5fQI1WVhr!X0V`xr!0I QjK_^o091f^ZYJPh {bZ)4gc~3_VWRzNPxvdnkw-V`SMxb~ zQjB4wU|QOSSoof{s1xBllUtr?Bln$}PI!_&*1p99oiHmC?qc7Rv4mm*&HGP1^U8wZ zGZ)Z+xZOV&;Oe=_;cADE`wO8h=!9(TPbC$ZR(?jQcEiL{ g@1Esoz{)26Wi!6J~kk3Va z+iopDCj^OH5bOqj_0KV?s&UxNcSl3TUjSU?QPjs33YwqRu9? KteOjvxrWZ1(N6Wn94aEDbN!Kr z(LVK0^a-jbe*buf(OPLl`MCMPWgzTg{@sG6c=TpURyY0Sj|~tiuozT9RN;A DsIa;R}%5aj^|Lb6Nxx?!f2u$ZKn+ie6 zFGFV5&jvK(YitCTqaTDisUjAwB-NSFiLl1nn{#D;RvSUJ(m}}WdtzF9k!}@1XoXp< zAo)o~pG6B0ZBMa}LcY|sylsu%H2uUF^Y2N`NfbzqH1pT>CxkkvG#wqUeE1S8!gyag z0%OSw_S>*wJNEQl-1iSS)z$0l@_t>RD*r)RK7oF@4D+pMf_Fe?>nlR5`lgybc+ijZ znV~xbew+J0gQl*3L1#q|Fu0^9M|)nRBgCLQ1PY)(MvLH9|Hntbih1|MuFp|scQ95Y zW8krW3SSQm{bCf<>zGaJ54qP0-?svk^vBMZk7vV=dnJowCOqZ4?%Vl~)9H_+|EA0L z6N6^P%e*JwD*@6g3k!=cOAj9=0>IT6l=fHJ=$VVV+3d4E6hTVa@HC~a(3KT!h#kz= z^x7*-$~=xZ)>tyx3`rJgelmK6oY}K5Ft^MzKAPs$Z9NMF_W^Lo%a;^^Wt?0upeX`y z2M(QSwu$w$KfWWBtCW3adLK*DcfJd*k&S3A&P+BsmN z%-#FA+i*3f7P>p$@;t9?rg_^7PG@;*|2SEDA5= BJR4Ve&0k8d*-(cJj=^$XzEsz9iqvy0Qg@-yzd4We53@t zc73esJ$*t (f qvS-N=L^{PesK4&6eFb_GQ5w!M$G~h;h z%h`A7xSh~wZD2`Ugw6br47VXU;2Gil+F@(6LFxYx){3*ARORPo)c&U|AI%qQ-8SbX zVfI{X)`?0DQ7jI?Z#-Q#CN4M@(}FKCHQ1I@zqXvDx2LD3kO5j+23{9kAwIge%ibyi z^nqv3gKk+uKDZ1F3{;l&Q8qeONduacu2HMqbAjs}z-kN3hF#CV!yF&nA0on%ycW@% zqI9R5IC%@lWdB^F_j&R1+U$|$Dbre$mfRN|OoPfb>FP`)SDyH6z6|4|!Vh+>ixW|8 zYkn=Ol^nk~-f={vE3SQ?D`_&=luB2%Y+Qq|I@onG%sro8sY$$#VDWFgQESlwk;l7A zJ(`HmM{Y|Si#W)Jw&$1BUDkyo6ZP)j1 nA*2|}lgBR}S ztLBO62J`q+-65tWl3tA$_d+z+ZWRO=!_iK^$B?b}vy2)C6Tds2fE`2sUHNkhbU{at zj@H&P9v+@XNc5POa=Dzn&OuH&vDR(>HcQ%&V$1P=wqj&qF|qgWs$4W@nhae~i{~Ry z@RUT^399sg2tWEs-)7};@?t3m&x=(Td4|??_WyZ*%;8TkrRyzWwao0&Yb4X(zu^Lm zX1ZZnEb}+cbYj7v;i1`lf2BU^mtv=GnVKs>^ooj#F!XarUPgGAx}oii#75}O_eem4 zp>TKWWvhs=iYMH<^UX=A!E{QBZkICT)x2zd96n&~+&23iW~17yK}`SARbCnIU}sQR z=jDc8J4v5+0-Bqxz@z_zTa|gc-a5NqC#_QbZlYXlIB2H8#usyflg;f~Il6tDgB#1I z43+lwMmt|GGXe#r*V>qV?eCJySF7f>zdcwDpBYZQSKs1~-vzvzh-~q9KDY*<4gL<` zae1DYe(Pg-9nR%gEMCPg3xGyJLD__y7D0dTKPue1Iq>QJ+x1XQtQ`fftJ{a}+rZCc znJsQXI4yXE4ZYRh+mFyY0|`YCw3Nq*2DlBGMp1Kwq4F<;K^B-siNtKs5jjjM615Vx zB=$>zFV+#s#mAm?p%>t3V8k$~jjpc(y>2}`s-&uobAU^h28(^XD^EGW?I#kb`uWH- zaB2dxiMt5^f =-Eme_cBB4$T`pgvYu zBq%yq-{}y@9Y(svXbvch>2TfGCzd v9%zm$Xq`7{Vy?9r o+m#Re3{k1d4<6LQMle7bmxEAM^ z5YqnO`*(&reY`!4A2zAyH{t|W0&)QCvgwY|x`-9UOO@5Bs~__Jea456mz3O>cn(GR zMXR9yEZmjRmi=E?whm;U13?hljE6f!)tDm`!P4o7$&$@g4_-PIx=az_eIIIp?{07U zs)fMhHs}X%{7` {od~C0g(68N6WapjK$IsDPNK1 zc*iyT|7bd^ur{NuTjTBy#odd$TXEOm?(XhTw0Ln36n87`uEi}-9E!W2?7jbUk=%TD zc~<5(*O+6z0|`Sx3Sj`lR*f)$5yi5l ^S*p}4f=cGFXA>@B&qf|SA>Q}me})D>%H~yJPGe= ztQ_*xg0rMoM%y#>!?4D&9}{(Xy~0d;X&f1$0>+q5H>ldS<-ZD`j?$(#X!J3q3_X>l z>P)5#N5(c5|EtjuzOf(Lk6b@AAB-{1`y8M1zt{y&7apLjKn94etIe#O<}wgveFd9V zTx2Bd<=3}0^q{9~``T{85cEPQhuM6Axc~g9@9^j*R$j|sxb8k9r9?*AL0YFZQ}lH+ zN1;L1`sID=)f3fMiqk2RMbN;n-bm&IFqO7w!%1+5Ct?A~A+(BHJQK;SJe`%52HTQX zT-&%xZ}1in)vZOv{BM0PWS-!}rLhP+J34-BMQOi>?hJ~ZPEbN%0N)1S-h&{kS!8D+ z;scD)lnac6A2(y3OqGZSuFC`8uC0+x{ICBmpc}ux@CJg~0ym5WTiH56&>_(91Efta zWYb&QLn|0l+{kAYis2zissVqZgO5eIA=>`4|8Tto=|HnrhqSPv-k1-oRMlMrw-H3R z=e>g0n6&q!c|+|pwBThNl+|kVruom ij+1^`HMO6A{_#>TDZpF5>5J>P@=>WzB1R&$5VV=tPJS1xPU7 zTjygidbC-~d&@KUxJRTt;9lwCjO(_F_J9#cL{!-$6~AV~TPxzioiBJ#%=7K2YF2%% z#_5M<=S@c~QS#+Esiyec@Y*&uL`coU?(E0F*G-;kk>knsPf2tyEg?T>2xe0K{`vHS z9ruElfuYvBhWKRNKh;|7mZza~hgeTR@ZgD0b-u7xmeD=5B+%+KxC{H{>5pyWT>$Vs z_XwC7_!fBi*~da=*ER^GN2=I32ag&O5>SO+|GBSjZVr8M?!|R?M^ A98rPt>Xg;5W0T%DgFhS>T z+^fKPa ff3%o1RL_#PO6tu^h;h6#B!c0M0ZIq;_*U{)7tR@PVGptkp0YTic zIu4*q$}-GvY%YH74Y1nl!2f$xz@PQD>`oW;`goZmT-r=(C5J=-bJ6qod!8=nT-2!R z`l*dn*GMEb(LATketUG=-t`0Yame{u-PNyfMMg2?KtMHwz)m?tP&YOjJ|~H=- = zT=2 x7Z&Q(Te|o+_J@SNjf2+rS*`=v_|uMZ%)@?mGD9!zv0&NkR`S znh%2)osT7{pJebg(?X(<5C#H#sph=9_DF_7-Kl>sySuz92f%@iOoUiLE$&sbF-$Sj z+l V6DO4`1j&22^SM l83bu5jv^+GxG zcvly4KsUb+oZ2Gi=|={_8v1|xTvN{E^2f#D>$u)8>6m(Xk%G;@7f>BE+83D+5Cga6 z$=viB&l71qe2K2R@urf(YTLMuKjvcobtoXpBHA9n9DMwfumIv&nh`eDtXeVbZ6?OI zK*`l9vO IGl(2sww>tXia`KmOqoSNVMfNXb3Lnn}8s(6- zGphdCPd3h8n-$LN%?~Rwu$UXysqOM`fDK*>AA5IR8dl ;3n1C>T2p-vorQhygLq?-CdUv7sS1 zP_un-5a>wiCG?Zkn)e?STCXHkx-|BrOVa0{x7+F$>{%&K|93?bnd}-b$^-(aEjDpy z`odgLBb+#v o93cj{bO`auoj_e03S&@ gdmbWX9LW-$qr%)vg^}p^%RLd77{uHcfcQb(YK?Z!1uk+yUvgH|3eZn zZ-3T^29qHNb=Lb$-|$PLwfi1mGcv`&*Lz=^JU-v5n0NQa#^7w}&Prf+X5%Xh$Cbd> z4i`zT>_#?y aCPs&4X|02jY0>|&zmshuAFOTCwDd-V&^PQSZy7mTQ-MPpGKJ%g zA$2807T%-ufh3?RM|NU^+T@N*aL2<=;DCEnmrIFS@7UYW6PxucJtT)T%Ojm#O5jkt zxAS4HYup(^omkWukAK+Z<0yQVDubp-rTYU<1U2ffjo9;VB!GRZsX*ck;L4NauRt zIY>v7z)o#UBoi0wKvFg`Ipuq)1T~7n7ib$uS!vWT!-`DjawulAe=8a>rhg@27|XdE z?6pnZsYfqdf?bQ;KuTMXUK7Y0Cool@l?olfEv8puj3umQ4b4%#K{zW$J*UY0h-1 zbot=vmY=Yh)8ml-gb^^hOZtqMI^Ubxf591|3An@IhcLi#^1MwKOuNDMeG_?TFcy4A z?!DTw?geLH{x>znxacYWHRy!T{y7M8k_`vlUk#$z70&y}=c?b$_o+j4;P$9sM60uI z82kxb8hsn6D4!?0cl9_pu3Db~eBwY9;!Z>8cK^Gid7rOZcgB!LC_d&`F=AZ>0-7P1 zNqz(VLDi>O+WLEWMe*>qx$F+mh`9cxhS*tcr~*?bo3%%Na>KW&XI#Kafk&t{gaG&P zh4_ZH;ZxZZOuuea1HP> ^NgpQKJUGLi%o+e+9i&6-y~k^aI>VW z5N0C~fngV(LS_&$0)gBj#G@UK0(y$&A8Shgs@H=r4M&m`##6h`!vPiqU(@QfO9(jS zrTZ1ll#4)&VHg4q`F0yP%&(_ dU}DY zCEmURl+0M?7p5+s^jU?&MwE4+LirNIrNG$0pR!7v2m%;H;VR9rWzs?gZWqX2!uQU KNTQZ9;_ZSV z06y9ZAJRF!J_di1*!I|*$0+Dm`P>Z+lArHoKzp0%SQ|IgQX`s0Q8VJ ec07q** z9+i-dz^dKjL FTmu5yk45oQc zLzvDoIe(q5KSyPg3n3W5PYR8=f{pl=9{HUKxtZqMtv>=o#2C3$R5BFn1B{t8fi0vc z`S(^SuFJi-#t`D#P$2kL{lk;a3b}M`UCLsI 2yG!166=Uf1Ffp-l4`&Y4KkHU~ zU6X#XrVkzrWFTilPS HIMS{dXsq_7|m%}7ih z0xx>*whayaS&wobN5`isPyMZ7_sJ_nu(`W8Pb;UYr&2+;?}5Rfx}|}#N3fIv24&wP zY?3CFxN?1@Co+?~dt?Jgg{lri*SIu((tSe&r5n}D|0Q9<2`~|JFf-cl3sn%TYg**n zRi52Cm(c1bX3QBMysn<1h-^P-XgVXTU&~rv^nwkw@aj3Cb;#+WHu>wU;Kh87WleIJ z>Hp1t@yr9U_$mVwXCNt{x4Qyf1EGhkOsYC4RF{w8grhOt ZqC*HV7}>jXk6TkLQ%B k_O zAA5~;b!nBbOVc#b0^eL0=wjffTD2>*zQBmfX7e_3XES^?IH})gfRRsIH~V2vE3Ws^ z j|I~Q>gX;_7V17uI8V%lSKxOqut8sHDMC^0lUlsYqONA$$tBujI6gsps`Sxq#|j~ zh9)+e4vu^w-}UA2k)UrpvhDPf8Z*RONkGDzaE&{tv)c i8c4ZkY=}DW zX*28Xom!yBu=z!B{Vf+#d)OZ*Xk{2t7YzKd1YQkVx)oU3#QWYI1wWI0*q;@;z&QOF znSas|3i|u)b0#>c^h9{aGg2 L0ed|OF9hyXfuGJL!_|qpe>e;4KOs5@<*%EU zr@Q|gLu;n!G?G7!jt<||5t_k?N{ziohS YM(L6+OnY7s5IL_aaw@-`n| zdE48Aug{f~pB1+*Jpxa)3X>$rZ)_FFC#^6U-oTCP7~~r@ry-ZO5*(FJ5<(&hjUC_5 z^g?0yL-9ic&!83!LjzmwrYV@6cPsyH)>+|Kl(@J!V&gBIdt1ssnUxT4%_)FWdtP)< zU!0un;xLfRIpW9VH(2aZ@@BwBSW)XhTzSMaECPGmMeh5`A+%@|cjvW~`>Z55oZtHP z(`jZ4N{|LWDsx>BfI@qAO$MpVNkE#_r@AmUawYXfYRNMMbF+nZ1&nFcI$kixg&@^A z?sJ0;g%Ay1vx=M9*G3ZUFBl0bhtK|(#ChgdDJ4%zi)%F>wN7GO5yhwTgEYDAty+P~7=#>W6So=OkDb*Ogf*za z)}_OcR}OuX+X1hzwzRjwbo{x7V*Q+=E67d-L$UMWV!i&}J_W_g{jf9La^wj>sT>s? ziNG=GqH|u1*Cw7EgfC62$4_qz%LwEpZ{w30c{!`+D_7Kp(r0kc!*s>I?t0GUGbbr{ zV(PsU754h?DdHmntz4%Tyu6C;MflK9y}Jc4pK$2|LTVbeA6hjBHhM~1<}CSzk|0OQ zHvbvm!iOs mbm z<&JO3Klj5Xe{6k};rlt1pIjx?4|9y)R^Kiko6>;_q|efaz?Cw$@(ojako(EdG9fhj zQ~8erGx_MJ+&DR3AQ^X!7WVhX#UyIP{~R6&?_3d$Fz%4 RcVx!fJM~rkDQ>u{;nR`iG6;y=aXs#}nHprDqx;lqz^#(K#*Pa8 zZm1)g*-z~N3B#0Cbp>Hx$IStHXv)RX6Q6#Hc5cL~zJO(t+V##Gc392ZI$HR59`8N+ z*%QePlUv@WAV__u?q=GcnYCBBm;uL6o2fo!$eoR@<4jcVHe%jwNPqhpdll6-4K$t} zyW&8qYVL!9asFNt=EL=kQ2vw6un^;?wSxCc{KUTVc|M|Vd#@Zpr=uS;uek@<5+_-U z0vzxqLv`&+b~iFa?DK* O6$Vru88?XyH6BfRFhYzQ zUJV!PWRiAqu9$A9gde&o$D#G1?KE>Ehj*BrCtMW`Px`K+dv8xbKy5ZPZ6jVD;b2u= z*Hj_z&g!-KVvbfLR}rA9v85x1oA5phZic^kamY13jfjSOroG~@;yPg(Iuy*SAh*6| zmH@!%4gA_F;~<_SZ1zAv!5ZCMfD#YPk2* ;W0ILIL)uknGm8y%2i~Xr5NSC8t#$36$uF-dvxUNbvAZ=7`P_`PpYT0YF`EYz zyN!n?VG%OsVhvGE-mF){FH58pv2}P*FU%qIqebTms!?D TU6G#x5;V>lj9x?X2jQj2{#s;UKR+n zAMQ;WYZnSV!(*ua`M2jlReTt*$2NjsK1Chh^KLGoarTd(l ^DX^ucSc+WjITVw0YJGE|&ZH=Es>qwY>E(8cAGuN%7iRbE zz9K>&nd#-z?f;j#+ovh85|-)ta+K`lM8t=q(N#d+jmP!FTKXmNCT8im(^6#E5h4vX z#bIcACeDJ@vc(l&J`$TLSg$dQ )qA|wUOGQmTecg50~W~J7w zt}^!s?lj$H0JW JR(laeBf|)9?ECsWkRE z;WG=ZOphYqke~R673a=bfLwMHs$C0X3m|>^{+^-U08Hl3YP(87V!&N4)4&SdNHHFM z{%PMAX98ETsOy~*%uRc{zF|5=pV&RacVeO>Q__(sD7(rq!W&Ns7Y-RN-mA!#<50@% z(dLdEr?J6J@UN-KJ?rovW6hd$v3y?5*{u7)2u+5v2!QoU$YQLQw6$mAhbyFZEXT8E zhY)&3CgaLcf!Z~(Ihwu0?TDEFnJaF`)M)Ufj-!C8$0OVn3-@ T$gme zC@t?7OrvRE>}|ah!(({gJc$3%D ZXw2Ha6ryVS|2*iK#*Hh0d($u~=>&AACvhdeu1| z%3)raQJ-%?oTIzp_pb)IDHHc}Cj-~cF=)ZZ#mg%*D~~3=7z-k>j*2vK 6-V-cY(tiw_ZIt<+ZuB{yoFzN7l&+<1fFP?G> zoTJ?$BmX oKp*RhHfa@Rz164ueWr7a*Cnn`x3fd&pj4o%oj4axsCc5&m z$8TrE2$6qJP&}j;GM~j~=W?%$d8mjtoBmT}j7mPiYwf%4y0}U%m2^`s;b*PM GF{SvY! bn93gQgs`Dh z@Dk}B ` zLKY|$Ds17}?{Gx+nGF1l(#0hAm0`E>oL;S>4^o?G{PnqhT4t3vQ@;mE^cK{2?aV^c z9hCC3C;a~GoFVr&ujlIDiK>|1AE z`H=h6il BKYDQR5SO5m+F zue?+XLgIfH7^vu~e&7_A2m$g%$N`23jfi9^SV*2~wSugo{_kG|1#ODP8sn)6iz20L zl`?!EwB;{(cB=;uYf*S6T}Dj6YXN|`ab})dMWcSVFR6YYlbXqeW_G+?m}`1*gc#ST zT{hs#nQ0AqoM1#t(%SRhF*!30z665Z5>mG^@1wdWpD7^?p*`K@kQL#pAa6fFTZK9F zcz&w~Oj#hxo8b{~sCWAdS$Xf9HkL#{4Y!Meb%xJ6L*cHf@iJzHIg??sVx`9r*QXc3 ziD2De8zuMW%@;41p ?sbrrvGWpr0%{Ut+`DzHLE7?JS@rNx~u72X;VgGf^& z)r%vE(iwqjC0Dtr0yfou66&E<%)=q(;D)vw3+L#-- ~C z*L^? 9-rtej=pCgPE9zo!cUNhQZ@~+4|s!)W8vJ zw90%0 Bn{4)S`KS0&42js3-Kh`S!iTB|$11G1I|9L132x7P1L@Aj^sDUQqQiD-c z%thDBFs%XpoJ5Fd*J`Zq?3h{j3&m4VHYlbZg9A{25`N!&afoZ_pdFk(8`4t*{td^1 z7?=~3rj|1xRpB)y+rKX{G8YKESYxp2N)iOu= Kz-Ry~|SLBF{Bz1{8_rjOm1jM=CCV_rn)+6b>F< z-TT9JfW-2vU0GHJo*1dce+Fqk`4KRd(|*>tV7tM9%tU*fkic*~2OKjFA*#00R5M01 zJ+sN!?>Y3h_;lCz_J+#&P6 k%` zsTzZ#l>RMJdZC!mWp2ws2m&2l{;0!_vLMDeafq2>?JFBJ9k{*)p&xZ;qx&!X9(+Jd z-LmgWuKhc=@B2iYX>sgM7#FC+&5LH}eR0Jy#9JPd>quX#k(yqMNR!GmL;!OX#}j=U ze90`)-Wh!I^CQ|Aj0Y24CjO6x+VfSC;C7`t&0hViBH+$7Ys|Y5 oi6%BFMcOYSxNsV<+(Bk7dxGBVJPzCPMBR@WDi_7`3ZKj#kml z7X0eJ&tAxWe{X%X8b15Ml#T@Uy#4)FLNQ_?rKV}8Nf#On>9FS$!M>J;w_@+1h33TD zZtt0#v*H&KIw7heo^5$7xx*9BI8{^a_I{va+qO|%TgyS K$3^;~q41k9H&f1%d|a!1dVirxRXRLxDLA5@kp1eqt1?y- zG9e3ACY&|A2Yzc_DtxEZ!rJ|v$of)Xc6h~zT*<5$knVmobDjU_^V~11D2wd2hUyz` zVnlZJnVvtKTFCRr>EcBh#P_ojXEbb6K#A`X{_JZ;E-cQUoobY~dL!1P6`KeQdKz}$ z&R#5YZ=`ff1fYCKsl@QiM^fiSmUU3W$cHk1@ 8Sxq*=x!=aFr5`ZQlf< z#q!-}bXZ_CZj%J>q(*bPS2l**umSOs8?2i}I{6pzozoxfh>uwtli0MMj_N~}kjYuz zUH3*J>CRm(2o)~HE_SNE_2Eo8zQQWDqoYD~>-^TP0(VC368kJ+v{M|<*T!$dpSvf< zuPp_yGnnrF;0wgO&)_wF(7(%f>9_#;Z(pBD{LNBu8gt)}qFe*5b9BBMVb1p62-F$0 zPYqYCba=UkcSEBy=Wuf78W @19`32NxF>y1Dj}zou^= zK-f07h3BAgeeVUa0*xX~U%qlRjB3MyP`Ow}yH{H0$7HhT)a3s@bTNKQXY_@*UXZVS z7o0xU)GcXWJM3}{dAj)qC2t!)PH -b z5^GVO0Reh;oz%(+@-Rb3uQt-4CxFnFW_pD9)sc*`C>#TbbKZTP(wzsxBMp^>5w`21 zn<0$e4;6v2-9f2B$keJQFWuSw4M&>(AkeXCv8ipjR5w+ ^ zvCq^neceuuSQ=;2G+&lYLJg=3hQkLQ-~%=LKSxwP-`@xLMbYxuc|j881@*siOx?s# z$eS(7%1%fYHjt#&G&?-H#Qm+m+dbKj#!uDgPH;5P=fy+g(e(J66aHJpbNq*SRyKe$ z@jUmm6y<)AG1PoHPi=bYxmlY3P(Sm4x_e83UXQ3Za87s_U>w&+WZ!$_(a0cXm^;o$ zz*)Z>pE`c?co*jbul}Q@9h-f9Kp+C`hPH|Fd0{5xsjByFve)(B_m2N|j5w+5IF0{R zHiA-bsN`eheW8bsf`6RtrB%;N)*0Y^?RCqdR!EZAZXCf`uy$skNRq7-7aQjH?^yZ% zS7QYwi8LE!vePo|Q!79C6H$4K|C{FgP)WQg<;f$M!xZuUj+qxu+Pxj3Tpm5BZ^gd5 zoRlph4--)-pMg4&z`JZ3MTLai#C7Ise#DQLb7Z5fBh*(}!ydm8zYv6&OU-ubo#n`L zLfR}o>P*;)hoHq{N=Q6onMBll(@?VN8c~Y@wM(7^IiNcRqZ>TPV8|GM4T&DTMi~J8 zV*yDaic`{#gNB>5eXD)lwB>$PwWY-La{&lDBZU%0l|o&{zCoS%Ey6VN`PsKGWr)hb zDoFy1J|T%8xdayt%yH%8Tcwke0i$evF_OIZ5GZ6h2OnNMmFrjvD>0WR-h?1oa3r3r zXb)iItSS}*AG_7Vu#aXMt|wrBzmqQch0C;zY+t}lPSX9-wg=nP1kQP;mxX9KMY4k= zz~jJdW$O^4gkSq={lhF9AgOMaWU%PctyqL5!=>M3&>fKVybP6Y2Wt;ss%`#CCE%|= zRkIyhpRsHZ_udUxVoFA019iTI7jcEEscskVZqW0D^dopb+U?3=-Vc?EhhP`OjF rIZG?U) rk