From 95d8173c5139a80a0ab04692f56cf47d4a438e64 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sat, 30 Jan 2021 15:47:40 -0600 Subject: [PATCH] general clean up in parser --- bin/onyx | Bin 332184 -> 332240 bytes include/onyxutils.h | 5 +- onyx.exe | Bin 388096 -> 388096 bytes src/onyxparser.c | 242 ++++++++++++-------------------------------- src/onyxutils.c | 51 ++++++++++ src/onyxwasm.c | 39 +------ 6 files changed, 121 insertions(+), 216 deletions(-) diff --git a/bin/onyx b/bin/onyx index c7bfabc0fd9d638523234e17911a337f315f18b0..c641539f3e69e2482842f139c2724e86b2e83eb9 100755 GIT binary patch delta 80785 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

MMthE|g z59PYGocH-3H8RDj*JRv#fl_K)GBjhSZPhBxm(?aqd|+Bo<`})xXfIRW_;8aM|8ksH zD2uoGvsKETZRN^`m%u{x&=zXyJ2GHg@=tMwL5MC&AW@U1z?<;`*@1HDYYNX2UmcpEGW1)} zYp4|SHFZB^MU2%}5hMUeGu#0%LP^*i3g!0s?r(XOIZDCqCT<7oOZ113sIE%Fp2lpy zlDQ{_y;64V+2UVmwqR=-EZUc9S^2HY3W9DBJ0Djpd)o{4?+tFV86!%Jeq=H`c1tj; zJ%srX*YksM>RkE%Q(y5#QTqpbVEj5yQQGH4c=hVT9OBFeg#*@JGSK--?u@)L%;TR~ zn#}x-Wd`Ur%KCl5Y@L$7Z#Wy28@C^lwk9|0z(O9jE=|nIV_~>07M~X5_F8am&DX(E zE51zTeb{pz<(dwaWqfM4-0p|!4ZQ)2QfW`tuxOqP)t@Qbuilck|4 zyD)vP$tbfn2a$l!grq}8kwC3 z3M68qtSP3}GTsGX8v&;F6!m?~&ZCO}l0N{<766R}K&G)H>II_aNOf8LJ^+mto#pu7 z^TVKWBJ%~BoOOECt4?T{lG7h#II}RtaH>J*i7J>5VU(f4jeHn26%UDt_Bn@dQ}*e! zAPjen^1~@3_W0AMYO`TViPMc(A0_^DZCI3}PuDH~{cDJ48_|1?VfEjlXQN*X5Diog zoj#<$4s|0IUx8gU$AAlg>ai)x@-rbJw{OE8)+MN!6CJn-DO7^6THhfW3yl$h39oQN zd3dIm-;@DN=!+!tA$1f!h0TLVBYG<9sth<=mu*uPo^21gdwMp)xLjh>bM6qg zTlvi9tK9f&s@^t6Q#~u71x=PjNNa4MsiE_HW&Fk22@fkujE_WOz7K_{&hLs51E=i= z?9p;tm@YnY+-ACATliKBcMafT6&pt&QU6lfUkc>CpDC5Ecq`vrN@4w#3zxE3J*CIx z{p_6*c%>?PjlVuh?<;-lxA71iJyt8*3JbyXly1>^(7krY4UC9Jy`{MbVBAr!bk}%~ zjxIh?@^AVmo>%?!st$ojXvewsT4*`|w9o*$T)oNJ<6PslYOM4RzH*gea%L$buQ%WU zBbANU%kfSlmBZIV5O{fby(xR4)V$FI0pejdLYP_k;l|Vk?&SpfdyuYuZ#bmjwb)2L z8v;r!X>g-J`Y*R7>0TW^z4wEcA zEq2zaVjUq01VIMjOOdD-m3Fr}dbIPFbJ1QT=KHFXvi(;7dRM(<;WZ@YrcNeH+d$P1 zD^%>Lh*P^HNY@t{EEWXDy9iMQ(tQt=ynEit;M=L*3LG?WGYqvwGjCE(+^zx_YwtZD z#q~}F`1azf{+-F?<8jac;9&rc0^hoq6@6m?l~zvQspJ2`Qxb-X=lD{6TM9C;gyI9$ zH_escyTSa$eK}1%?tUH^{}SWM8z}hJ4jmgqMdKW|>L><+08i!K-B9k)TyekW&$>tg z;_msu$L(?NGgbxpVAepnb*}@zJw$1swqzxhuhm){j_wXMl{HmL+fp%r?zYzaGgS_C zpUuxT++C1sEbp$|u_eMNsCIv3lSzXle#lq=N_D95gkg&vW`g9d8vXCiGgylj1rryB{9lA6N$O` zk2OET23Eab76I*HB$d*HoLyt3tGRRkt-*X(_S6&wloiH1J}^0_Z*Fn{}v!e1J>v5OM- zatrINJbxKh_C}%D?Ai%)@+v;n%FUF>f*Ndz(!F3+(9t+_fmmcza*ofv-5hHwFDdgK zAJrz=T!5lJCpe9m%*!baUzIgD-ocDyzIIG2hrbN9bI|}+&dLI;KwSdPA~eZPG2ciw zpH4Qv2ho?5sjs5T#|zARPyDX^hq!Ov?`V<}nXUZ(YP0Wm5VjOu;%`Omlg<0la*6W8 z>&t9??ua)fxO=uRKrM!^k*G&wmF#yxP+6Sc5q0z}&N+Yt50UM;lnP9a#(J75PkrT@w%!u^1xotq!Sgz3Id*Ig+F?P@1JOl}?mqma5AiNXk|qQPpU>2`D8rN~rS>y5bp4EyHHI zx;~Wfr5;j6H`dJWb)p0cH}y>|Fy*w*FEG_Vm*yv8EHh}L8~eOmx&%lB^TxQS`k}(W zzNdQ7J2zIvufEne>XXKS0^kp7?9O7@&y?ZL%IT)vN1r%s6Dk~55iNIT_1I^0*_~Bj z&FG~&Ys#Kc106fZcUL7(4;IR{QaulLn?+MaPZq_ZD8-Z2VxwuYCkuAG@rx9xAZ+CR z*64F~73^Fq_WJyOxAN{nK$EJ zf6)Uk=I>Ne;uqFJ*#&pJq zg_iEVAKeL|b8bM6cL}SabDtw}mmXu?@ z(fxeIS~41?acO9b#JpeKxJArR%NQ+wYcU3(SOhsO2LBsmE5~~B*`+DTm-PspbBa6Y zwt9PJ@7HAo!$W-$@8qG&S|nXAWBu!LC=KYiFN6I_5-gs3*O%r@C&8S4ph?yk| z(NB$85B=xqg-%+e^y4^tdL6Z}|Bc7WFVv3lILi%yni z<>|d28_YNC5_=9!s>u8~+o@G-t;qIzet%J5GEPPU0aIi2^tC_h$zte^KdV!|-Epk3 zp9I%)4Ab`t;V>QnE7dnts}dU?HqM}N022r#@iEayg|2qCmRNf19os-)(zxe#K$sSb|*OkW7H|h*Jvcsr`4rPh42{tWMNC}&j$S| z`nw9N%zaLgXBg|~*56CpBET0fE2V|un#UAjq@$1MH?$#)`LXVFGz<&JVtpOP42=71 zrsxQE(f!E@+0#=bs-XmxugXkrUm!qX-w_=)(a@?;S5xW7sw{*pwB}W1zKr#-UZ{q} z$SP4`btv53)H#wRu;JE)k(hpVkn(G=Xy!+}ChN#1P?wslHk(X2HQ6}Ne-F$4UWf!{ zQ(bq`M?rG(t^K3eTIT-fpsfBIi5gwT>R*eMzRK4Asr*I~ZY zxIRncEtbiQ^>}@@fVt1!B}t!yME#3f(;G6}`KZ5GF0{%<=H)l{oeq_;{e~LEvx;mFb&6-**=N>Y z;vvUune}M`Tg2Ee)|t)ND#qqgeG?1j6_-*^6Em@!w93RD@U9zaLl205Ed83qf?d5g zO1wTBtv8Zb5@X+6tF>f(m`ktqvb?u-b~5DAC1{<@2Gi*jcETlPt<1HeRjt?#7t0!% z`<4c`M(*fpnL9?+QrT`-CoSi^+WI7wIWzYcD;;s&1V%eXYj{FVZJFxkfHLiFh{f=h zUbSUC-Da;qk-UjwG0e2~YsZo}8%95OU}IQY3hRi?>nx>o1ikaE)RC2BZmpJlXwbsC zt`qZO?2UDAXK=~g^QRAWZaWvw2>qsb*mtri2wzTXsHke(vy7ghVI5yBH{n&c9*2)LuEv;+&vvSO(`Yg%dNIEir z#jy3n2C~X^zIpJz@Y6#Clcj{oG930~No<39Tm6RsD2fHfb;8-pVd^-LH7=9&4csVL zoDPSa$I;?}Y;eZ->Cmoyou-;te&fRH#f{)_yfOo}yclbap~5skMZ8k`qi5kfnao$A z&$_|VJd^F{V2=UD^|IY@wjWYp`I@DUHGG3a>>?L&)eY-jZF}0mVY>r_LefzWi)toN zm=H184&)D(7N2svjTHolTMZz<^0g!Yc4}Wht5<37AU43)8KuI@Y+`$lNN{3-v;k(F zqDF&RKrdUiR_Q7$6GHUThU*3|V~6M-NRI&m{m;z;##`$9LfabXBQ0izj;2gU_a(LN z$4XpJa9LuMXai2%q8)=-!xCYl?N{_>Fg5^(EUNT53#q1NNwjA&QB?_OK^YbRtdkM> z9}gWpZ=x?hXBDcf)Eayz8vJ!nG{C`6QszO8;xHL}G!CZ?pR+DOTa&=7`b}XwgdrfB zY<{u>&X*XB?>vpLbPE518C<^45rX40gZd-z>=Gw)hNhJJ1q_B+^xzAY>azJ;DO+18 zeh6#mGE~bAvwl4Uh62~!roBU10Q;M+4Q1?w<&msHjmSo_a3czB6)+hemL6cTwHC8b z`CuFJDHM{%s_5!##oaVS-Ka|%OR4#EoJ3TJa}6Qq31Z%i+d&VyypKZL6qtiW<)z2d zxir?EJ+oF#XC=AI&M9)Xc2WJ&><_=&lc6gdVg-gs6TUIke~H9w97n-pSY^M}ve2+b z7Wy<5Nlph-5A2~esMi>_+hur$#5aOMaA?drQLC{mvTOtjbrDV>>L3rnQ=jq~lrxrf zsuc6rdk~fdNy9Za8P3IxiFVR1vG^||K903y9jMhfR;N|X(Q-V&t^&bG7tBPCvCc5z z#va5l%b+-cJ;HQ-HA(hA5=nC3J3>PQ{{0>TeREGBIuRCv`Jg(H^2f0tUDpff-Wu==q156h-2^%{@;-hU#Q#{;zdDB1n%lA?R(2ebpAiM|1%FQ5!XeWMp4xX>5#pS_{MQ`uM8%r8%6!EE@POh80XwM-Vq>QK8(81kzq zQzWY?SJY+E)l6(IpHpEb3*{##P?ane#z9BxEFe8gX<4{c{3k6#DceHFv(Uv5vSqO# zI1Od8p|f1Rq?*}S=8vd#Ha6Pzl%CDP*>qZz4YWgPuPE$8cSO>WN`H-pr>Mr)Ftc`3 zH<4RRlfFjXFFDVHLcZ#Ax(^2`#`rULmA?%&?k(qs2hC2pP_c;)|lhkbv z3zeLu8*^X^d~f}C4s&EIgkBMA5cZ^tm}znNm%t$s?GQb3zJfALJHqBproK%JOw9QJ zb)CyTXC^v0myLj@Rc{`v!`*sXznq69SiW>`xFeZDEO7%4-w?tX!{Ls!ql@#|F8-o7 z&Ha(hV7Dn^0h`Pnx6--=Y%WWpgoSdb{TH&j`h7m2Bgf~pNOaBii-RTogI((9*4%}# z+WC?m--PF5j-YFXWn$OMeBDi##pOr1E{oyvvkAMBzMrYKQ)oCiq01%;UxxWH zb*ARaV1)K3ZLoQ2n3qd`h^Za{+%akAT1Cp~MuZN&dH z>_pR+vpOt@b}eVMW86P#zXcH;+1m|tyQhwDI6=e1e}(dxh!Ll|?9iw`pjs(x1q<<- zFODIL>S6?0ld0zlEQpb0S;73mr{OB5t$_dnqEZ+w^q#Hi$Bl%?2}kxMuvI9Hp5ii7 zoIJ#6p!1RrCyM?YR8D19GJU;dOn~~!dKg_f&N*eY`wWTU0M;j2Cc3D{aD~gZP)4Qf z)Jo);)NLiJQtPst#u0TSXe#a{4qafJ4z|SqX;+PMMZ2t`c7FeDCrFc*DFkQa#7GXD zq0*~Zy@4U^HLGA5nhC35l@=B**+DD*Rx8eW4p~aJ^hdx36Dzq3WNOcS!tQAwk_V~( zyp340#%?0PIoz^CqG|%F%<(R2e_FE&O05K4SjFl#4iNWUPvh>vl)^F?l`d-#I?XJE z$Y$WI&~{GSp!321r1-r%9V8w62{s6A`w>?m7=+8 z5GHy|ht{z8dg}tE+=WX^4|Zw#i4^l4+ZEieklX*BZonu6=oapYMvHrY!WA7=mSWc; z!nT+?tYwW#WTMVCfM_j-@Sdz|vE<+HrYE;qIdWgeJU#z?EJ*kQ(sD&G&US*L*1@It znVPR-bzAs?f;~0t-FySkJ>%_}iL%|zJrnKu92ZP_1|+%20Qgk=YtY_x%+E6@1(pN& zBSPPpLcbJxunt?$Bl1|!`~q(LjSh+ibru4%u$i6vQUp(v-v$=bZ@avwrd2@Me&Zrn zK)8Ae$~zgxgVaKS>V9#JEFEi4J+eZst$oh8e2u$8xM#Hyldwm~lAvs`z$Z>>4yo_M zgsM4c>rU1U*v>lB^$jefVP?VjSl#Ty#)?AtX77*9`ZLWvvK%s**Wc)}eZ-}h`bTtG z;+cx6{z+XXPB4J@p9e0w0BZ6x^Ut{SN>ddkJNlI(pJVVy(H6}V5Plq}w(E zK+$=En?K~)eiJ%A$M9I}l9;9*m``x2m_ysea@`S#KkDfxfRxm$Ry;ous?$~lsMIdY z#LSm6>}aXss6adr!o12cF>{N8WOJka>U^y2 zBy;l^fk>Bi8id#oswmtcHRy(4=}9h|$IJdo-~Pg?>1Y4?$#~D(t^-un{X~EKf)LRU z=cvN3taF2lzkCYyz#@)x)!MkLE7@zmju4DI_Dozm!=5e${0Xi9m9^zRpPjRnMMqoi zfR?R-Gg1S0Lo<6=!!{gM-TrgWNqsat(p?;i0f#4SnGf3os@H_^21tU9-C{2;EdZU5TNMpo?IBW;)(Gb}X(4#lU}uEPL>{y7_D8AfK5WsstLevmFu+gJAN#P49HfGMELtDD`comc zWeavJoJn!}S$kt{J*cR@PE$mMU*D;1&lpx+>@ z(JSc7-&jo^_$Mv;jnxn86lLK?S1EyCAxHy@#~$m8d(m91iHq;3{9zWR6WyYBO(_gp zP7M#Ts?CF;#xOn+6zJ?OB=?Ib$PN5AL5rmmV(C3%i_xEl$pW*-)>95p8^;)oLw!dZ z4zecguE1{AB-b91HSVk}^f=Zh=F}>_bHoiK96*ZGXmug>8_DT0;SF?Iqh*8%FQ*LI zfHdWF$Mx%$)Z`HJ@k|F|0XQWF2ai~3>#6@C7Sy5^+V2r1VulQ&b8W;;V1kQ55ds7H^Wd6LzoWQR(_3^NpeoBP!NVG_Mq#H4-cmR0Wq2k)27RC$m$Cb^%MsNV^i$ z>jLxf@X(cW3X$BB@u72c;V`Qf+8$ym4Ml-s{TZmxT`+k}cF_qGEFZOm!jG^3Lpo~X z4#S1SshY-WjZt{O2S#;*QxK=y+G)@pWF0bZvaHj(?3<2s^%Cax-Sibtmym7}znd=^Ats_W?411rQ3*uby3BCQD1@g%YsL}~G8NSL-Cs<7{TsHWxkkYBO%qv+)Yux1IkXU9@ zus-DWI6!wElA{_IyhnfzLaP7B4mxj}5B}R-GIPFdA|$X_)?-hyz$l}}*3U7M8e41p zZ{Jbr<$*$raEcY;ouL;pCnh>XNPsy$)+YR6tsg0+w!E&&mek~&pI^jI#-jtIP(R06sYqQ5rFpLLcgX$ zfgRK~S>a(qLnokIY_=x6FZNJtY^TYmU|y%arnRRKi8)Vyo?^|){RGd!E`^d{aVd4@ zE2@2()zfXMCcF&0i}CA98haYY$qMZ_%__vH^WpCnK=n$iSuCLQM+7FJ)kTCzmsJKj zvuORO+wGOuh0|IJXg&FyK`^!~QKK`=FCrW7QtV{lg?qBuw!<4!rvCgATY@nE(L}7C z#z$!K85UTfA|560z!L+E+t3%^aEaooVsEH3nRcL_@1IS1>zGd@ZnuXPG3PfpWYQ}+ z>;Nq;-Ec5z3F-xt)EQf;(plCJ)>PNCuw*K4rJS>@DO~gXvuvvmmN7%Y%;vvothab% zzK+mk6$o{inb8@O;9i<${>d5yKRNJWGQ#HrE%eO=T#49C zyDzXPzIQV{zQEczIl)$-j2k%G>hc$>2+iR9+a;V<9B$qj6iNjjGv&1~*EQ9j`8pUI zlOR6F|F0lg_7@B3dobivpS8nJP#EyNiZ$?AJcJVhWO2wWK=W+T+&fZ3sFR}NS8GXIy}kJI?7UC{beszy~rxDUnuD!>*bTSQ!{!^A4Ov?)9#C~C;z0o z7h!Lg@S*TaaHTBY(Sb{BK(Mm+Qzm61{|S?pKBnZ$I8A9nlPf zf0>Qtjycrw3Nw`|7oZXExtA7RL7eL;9lyeY_(lsozQPuiO$z*!Lo?^o!mE0 zn5fHMN(Zj7j=c6a=~irhpWfv*>zT>=Q30X zfYLgD8!W8x z84+;L%uD^S7h!X@c%UeJ%4-o4O?zxx_sL!bQB*5v!#PF2-(VFo3Q%tocI6D5McBH5 zI>1=%F!RtE3~}$cDaj#FTd|N?A?UUPXtW2mfMh||c4UO|#BhbSOGDm%t0@h5EUCDk zJ=~=*Juo`2FkN4mj^B%zQ_SrQ!R~Z1jvTik<)I$?2@@>Gkcn@o$D`oA+8$AVwF&+J z#w1|MYcRbum=yvh3e`nKXkzg9wok?2D)OI*!8^F6hf6zDl?(QOt>8I5zR8-Ed;-O+ z_SsI2Zm~+`%EGY4qn9EVIuNjGrLSrDE!LP_rH!{(WJ_XB$+7ppiaSNIF6Az6E<*FA(zQgi9Md(4kJ{zB{S zv6g(!6e_sKg1u(u0%wGraB)N5MV*{WHB@l8doHzA+2FF3x1bZeGs5Av7D&pY6DphR z6L=C=)GS7mhuj&Hkf_z?QXd;jFL!S9hbA#VEjYX+gC5z~7oiC_x7r>q`m-2f@vT|5 zLQLQ+iNGqZhcBjy_gRpq8_-C*Lj=~air&$t`#9IyMtAPBmR=J!ecFlIauUVkMtg7- zJVGwIUloM!qCNROJlF(J%!u<(H17dx5PB3C!0>Zm_$%w7 z@!nWQD@1pFf2Nj?V9G@-r1VEDvR)~P2VPA|_9NU!zk>90pHmEtGRn@6ltU1dYDlw1?UWg>5vl1%rHq-3;|?a`2u(H?NGTmQ{| z4&J!_(}Dej{3qiXI!=ry8V9OvAG2X~AFP9_{PlH_Um*Nw?RF#Xr?^PLIEAD*P%FZu z;c7X0`IuGW*1qKX51YvK>uAnD*h7!fZ~w45-gSiWAiT6aJ%p5Cu`XRpWuCxby-q1l z5W#d?OG}=x27Kmvy7GiI%&{g zGVR2OC$6T!&sf76E~~{LjZbhWq6M@OZ-8{#ke70VaL@L=Y=?{4Tij8g=&12X8KMiTg<}ZeDBvgxhkAx; z$R2hG5xhfe4i`-1s&@Nea&hHyjhHr`#5dZ+|ndOl#|5kD|ybU?xy_Lh|{Narmk;T!<%B=C+w$9kNi!NId*0 z2DOr2!}bj(2gr;fcAY*@tl@b(0V1^AA+_;BS`0KTOoei($L*Dq{pTXF;B{HzKrPua z62bFwI_rL;b_k5O#15lV#V-1zu-CIbN1Uiw$81^+P3u9k#z;W+!jaI$$M4u<0? zZzn5PH9o3H%c`~Qq(YJDvT(Hs4AV5fP~+;qwBS99D)lYC<QHo&ofn65#JGL;O4w##M(rk@V8y0e zn9~$lCRCjXzh>m3?iBkg9tjDY5OSeu5d?07O+CSNEP|pZiy_;1{wP2{+OPhhMujZ0 z^Uu0zP^$%qUE=!;XD$xS(cT@eNa}GH6yWwu7r){1XQ7Z(DBy8egy zbKZ&1{fG8&K9q<5Lp2X9igWHx^m*Pzar>cLa({M-bS9TwU@NxORbn8M#9>F5N z6Ay&V9%BE}BYJ|Z)e$c^(965$LTMP@i^Pom_`dq1LeHFdkl#HqZi}M{I%f|Y0okX? zlIo)VJ%^&4d2qzMA7D&7V5q2y2QEB+nu9j75A=}!E%vtPOX_}wCOGqvy#FJ5;>=fs z)Lja_sd3!#l@Odm(Bq$sX8BjNqXbV2*!5bB#vawF{FO!yW-LLgdUXS?aKTto^G4>qh$R*)WU^N z#WlARECaL;(KRnaBCo7cXlWkEORChoG_U6R zxmJAU9*r-}-y>W*t_*L~XzMU-m7Nr81@GeFUZ~|V3*1L9#<0pil*6ikMD0-vhxy`I z5F?A%LrNwLqo-x~M1JRvb%YxaVtnjdyXk-J@}KQG=QTFxpSsXB5AMU_t^a!PbXKcR4(^+` z5T`33Lp;Vb4#&?HfT9sH8HDp|o0@`a5Rwp!amRI9P?iVrRymYcme+QDbw@(KzC&-z z^02a%AAL$o!~imQ@ml=RH5%;2Tk{3iXonZ~!&{8=UOa%+v%c`+63UwmvfJFR;le6blO7!7L9S>dM4&qqaWD%U(hFo->_Ja&!eP}fM zEI~0w)Ief4R{I3|#E!r&mPgJ+aVbjR{^|hBK!529{d zru1^WhsV^*ax`9AL+_h(vmCF&lP^;#U%uDVa!J%Wr-?*t-j1|6kLf*fd{R-O-hz<@ z2}!s_T+fI4p1sH&G6xkfH24dj+A#mPNYnJZdejnGVytytR2XU_`9R>rcJ^_Z@v|s* zA@%ByZRnPsC)V>rD`?b-A~s-&$4-@(R>x8rKP~Dd&_S`7on7&j)8<{~Yfs%YT=fV0 z-S*?%9j5)>eL}<`hR^$pc9-W{=8!%f)8MbT@(J;4J!|w%cJSc zgW9Wt0Z=oz4-uPej{M>rn6I6UIS<6Q#_1mC=#@WjRdt2rv|%L@)fOl?i-+OUp=HAs>zW8iJPQnS|So`h(~meAWEuCH$r)j}r0I-BK%*aL9CxcPtd z*kVNcaIfvbq+(h&QA#lP?NQL-gOJ&FycBb5*8w@k=a)Z{AscLtLeiF)S0 zrH-OBC5rY1^NuXtst@6NS*d@=3ftTe0bx7FYP2@GAp1x}qAm#2Zq>*;SDGdn8%DFM z^R9SK`cHLk#Ivv(k?3(eG#BPe^tkCO>KTb1XTbvfpB}#)W?d4=lUdYH7(!8x)^oDQ zJS3`bC`QHcXTS{k5FxuTEfw<}Nd7f>1}+0FtjR~QDdZi+L)kQIgD8&o){|l=HJTeL zG>;MHmH3rv^B}yG=!|uKDJ>CG(TaYG=8O3E^{7cL?#o6|>u9d0VYPT;9#D@qin0

Yc`)PSGAXSNkLBSVX=@#x?>k^BcIuf>t}`snJ#gU!*U#`e zY62}Z@GRb~4h7fcDbX*YPahV)=8FK>Zx9GCs#T9K^C`Js zE;tt?&TG6y1hDTHwm=AuXOLc6xc3kr7EQ-`7esnE{H}Kmj%D}8v znN3QW%x`qlgvVzo3Dy~@PJLe4*P18$*d~%3pKO3*#rHAMkow%1)K{zQr&WduT;_eK zFKvQ>uqMfT2S1`13#xZG04pvUL8R+!1%^lX9YtgjMyrmjI;1>3tq-HFiXZ74@X(C% zIHaimFk`E1hBgH*CTcH++Y0 zP@RkRY6GYQ+c`8eSz7Cp!FyBoQC&77$70bn0fY@#!BCl@r(F$r=?aNj+p?$urY6YY zsXNB@s2Sa8zd%gWDp>@wt1n zsDVW^sPb`xd0K-lT7z7z!KUH{T}1;L-H?Zb)JLK1cLAQ`)>V8j#kbl`k9AP&Y0~2u zUX?#MLJu0kY?@6jjd-ZPn#;tGS&D@h;`_c3`V(uetq?`SAGy?`5%=fk^fb5;52;@c zdZzxP3D%<7u>C1!6|V1+ za5qGfgc>p{o0L*&_*S891>rzC6bA<>iJ zPvo@O&W=YL97KPZ&A!^?tQQR|h7DS~<)WRO{`T=S4hY+(Y4zz^{pjNQiUJ`B0TGk2 zG6Wr(lsuD8ud$KV&ZxC(P~7fzQ@Y=nHz?^XHVNmoRILfrVH+CLgpcKyBIsEYC^jc5 zAIp33_7OBLme=M15wtOu59C|JNgu~s@U`QqUmUOOe|WsgQ`j39np25*K7k)=OIh)}UbH8KA1)1U#{G8KK|WhGcXqKj z?-(H_0ik^Su6?{mPAWs%GSKX^bOb$&=LvobpzS}Q5fK+jV`eC|OyH(!^#K69xC8;b z(y^9!Z{h(Guu0Uya4`Gi52rl|yn4b@#Mx4C@j40<`!~LEuU)(+%|WO+**qa6MxBBP zPNL455K=`NQuq-jEP!2rM1$Q()J=(0Bawg2^61w@Ud`_ze*5AR62W9i;+bH2lgP)F z8<;EG4iZU`25*-@mS%i;od15PZd^CVaxtXuhJ581yZ(lSb*_xqGZTd96#x3ts{{Wt z9e+pD@aDWcj}IbCb6ANr43ys-N;W2pUNq-n{Es#iV1iY?q7HR2@oKChWt;dcfA3vF zk`KWO0{%~9A628MP7=RfF>kNzOql(k;A0V}QIn!tKp<ir`As4NZAp>Axs13C0 zzM^`y*bH(EJGJUm^sD-nB*zpU%~u<#ZVInic2#R}RiXq&SRmsY(`wS_6dvKzy`~mY z5!WMi*}}|Mk5;5#Q+O&r>_;VA@$a!PXl^Uso?qWif4AaSd1^A9Yz^hgzo&_*T<=;- z_U_#DS6Y;~C!xm;i=z{#0HWk81a(!pD6xfS#oS!{e3|(1sr? z?KnV40>=^`O3&Ny`la{wFDeM3n6|t@;Ph|B1U2=Lw$%Y)>{v=>s!o{&&ZC<`p$(*2 zZFyh(Y{iSV==69$3T_9ZeOW(i%XYlLk*`@miJcHh`};?l+==@{by@)QnFj*ZMep7f zKkp9yMKZS`>eQ8Q-a+@ptCCgqL+M~A=xTkaP>As^AD*K_IG_CpR1g{YSfTDm=*oX4 z(VaoP+V~9xcINe3jKux}-3+zy2C4@CPY^agFdXmVoyP+V&iR2Ild)DXm2n!Rdgiqx z!~;EbS`UPl;o)dKu?j8e%)R*Zx3sl0|BT-Wrt)2QEzc#f0xK?}K9-|f8cf~0@HQF4 zno8r+3nn8L4nbX~jV@!e zbGmW{!{OQa3)?ZwjE2q3KL^9c>sR3e2z7 zK{aSpcb?2E)S%zG^Y7SeYS)7|!S8k`J>ZDWjiIeQ_!$0OTZ-z*!+F+V>e`bha$|K` z(vuHiMDD$K#rikrgA|xuKZ|KHToySg7e&9_sZI&Pf)@Xu7A7;ZwYTrcs$Xg9+l%*f z^^*+@73b5jUc3@cvTVJ0gzK@YqD?|bD*e<~tgYTy(rfBc|K9N4FKnVYy?H&}q&xl5 zn=j^HM$m}Q_&EMq9eVT`@6H|TQOiDj0ROQr<%;w`82RA{jkgRVr7!Qt?^K~zefdbA z;bJGk$zm$lpZ0^~XZjB`r60W6BmHS*KOW0o(7k?qF#k4`+V)c8Tva1gJ={d!TiLGTrJjRGZ^ujDUSy~1yzg|-0{R%EYl zXwe|9Z_(^Cbks4?Yy&MVKucWvWJ#~Edoa&U1bI0=oAB#@>H}DyVuAxP!JWI>)`*Ls z7Q?&m#Q=?cKRHoB|dEMq|4xfzf zyzQBY0wCzEs9ip-%75^^+U!3?Hob7fqky#a=iH}1UJ^R&7^!U$y_Sf<8NWuNF1EeH zFKFY>2dh~g(8aYknO`TF--759Iov^07bBxVk#GePVKV!oY745w^LwdG5^K@X&v|S> zUlgkD00mH00JZxV=x#KAYl4S#pZxxvhzN*V4J%af`Cce27$@q0qMC!MMb_Mv?h|S% zg3J_i4g2$2{GaH&SL^>Dac=_GQ}+Ll*SYT~q70EG-U!)4loY)w-cf|?TPBPlgpl)mBOpU-!`pWpZ2!^`u$Ugver zd7al;?z!iE@3~M$5v}K8I`X4=C9!GCd3?)oR=@V1dbop37=mBBNK^SW^FHQgs6T~8 zW_2-%=R>{1K&S^M^vB*0&Vlf4GS^(^Z|n1b2v())P$b1N%->b7rt}?xT#@o_v(tND>I5%-Q;Z)S$y$6_nf73C4k0Y7 z{IN-|(ae+JCSP!A-xzzvegzGF14(eNAjbwacZ<43WzlVr@8XqojeCefyv&3rPr^pw z$BwV+@Y$nSWmAt5G%&j1A~9L7^q;|SLm>(JPbIOHY?oE67aLc-4{8c4vMM4i?R5#V zd1zie8JDG_ER#x<*nqA+Sh>g?`$q2SY&E*N&4WB;^++oR?iz`S>DRivQzRTZzaBRc zA8OCHMq(OohR1bjMzVeKv;2xL>V*e_P_cgSq58Dh7+a-j$ooY|A1Ad<;Zh{4+2;zi z8eSTsmd61#G-#vBLXU1E4k#^(xJ+^=xs0-gw)`9$%D6_(ORCXj3O1JEOQ z9f#eWJK~gI^YK2U_=g>7MO{xu_?i-~Pj)B|Jq0v+OV2&QkU!u&`SGU>Mfm+JHe)w zcY+;oSZ9#O2O*DrX6O?GAye)|55^URBB(Kw~=eHped2C|12XuR9*I|I=l>_joLxA2J?2p7}X@VAE_L-t18hG=OjF zLLjcL%QMEa-W9$F1KAINz@&a|%9;jm`m89;{U=~~(zP^CoPgVst6%UU(X5SAlUI3` z?}J``vQpH);{Bsp>vBHR<*a-OlDc^*6}wV}?}=tn)-QRziL6`T6S(JZ`WHQv+V`Z~ zzmCgVO8?rYq?n3f?uDuK5bel|u6llYB5TpQC~gvi67^4x)3cDir%bW|rwNj}ss;?I zjIMI8psV28)98WN5xL@;mwt`6n}jv~)^U8)B-X4fzfLQ8rE3ftr)+_&zse6x!c5$M zfx?fx%Cjf27LBjM5xCQf&9RQEjmH#M zFSMPZ2viW`KJe>PS%c1H;C{L%G{7PF(FVWw-N)^aUhG>HQ-9(#EYP2esn_Z5u{(|6 zpC-voxEmlYKP{`c$&))4*fjYqsmOaxV?Eps=25oe+?07r7ga@_r)1`d8NYI$XP~Rrb+ERUST1t6X}jQ(RbKH z*{b0HT-n5JhcQSKef?piJYM80ep6pEJ>jT$t1RDTVpH0*LMv#TQt3S|P?(9I%u*he zGQ=LkTCx6oPaOCf{@R$-_KgueX?#b#tPgRKcGNI6D{RG+8U?4LBBB-a(I&xTcq+x` z&yz39ivJ5*LL8aHvtwAf(zl|?df)Q^WlTnu;}xbeqx05^^61I>65Rt2Uztxt{Dx1O zj_d5t@A%s3tO-uR{e3#CY8vuRu|4Y?Ht`x=%(ACM=nd!r!({^sO4ii69#W#I-Kgeh zM&(+)8T)wZ2NAO-)5h!W3+UTPB_s@${gai^GX$L)+25eP%{E`)6J{{~>bu}WOyp;k z=X%iA8FtoIPaY}`rMA}}=C@~Hi)`I{-Zz%jbM;6^$#1 zleJ6SGx_JlQkLe5sq=ksT=wn44tV2AoU+UHCv(E{5T`#&f?x)&!KG;$^~ ztB$5YbS^U9@1odyREfqpOZXKG(c%m2crSYSRcTXFy9^(@@lBK39rm#qUpcAA8XQuU zj*cx!vEq=Jzlu1tNylO>4rAQP3Q-aiHGIZLp4LM%FFMTAVYnDVX@)(8W1)+|x7edjL*9HFVk8X!%zAPF*vk2V@Noe6rADjaOjVi_efG5N=d0d|=&?~C{+ z96^eB2dZUknvSZODLN&K z>@7ufkidze6)i>UWs$9=h#vGiQB?82;v4I%sj{rErP?rAL>`3wieWuuQ8i1EKSZ%v z26)DBBvY4l2dufzpbwxy&@M*}NkOg|{&q*QsAj|*22)DDCKv2i4oTkQKAV-Y7K-DB zGq{aV!3I~g1DuD)v*wPe5?%L}q@wF!-s{5o_IT#&F5D@+6v=7=2M`{Ls<{yu#=Z1hv!Zw~9u$|v%l=CJk5buI6m$o5odu^40X zIyUMtmrTZ>#Pk+}DMbv&n{IQlqrA_F51xxDX!i%cY%U9A!$0u*b6H2P16Y_8di}H= z)%D{8k>WSncsz(EiB8A(*Gc#t=@llpBvyg7j^`(n@Knk7?>X*Z>sOD(C*<&~V^Wl> zZaSV!#LvK0Z$c94iibJn^Jmt*<396PvwGKW6cYD&hxQ1cY>zuM@o?cNzju7~JZy|) z=I}$nQjvwDU%utf<}rP#R)xiBZ+YeUtU)(Dir-Ir0c!a%Z}X(A1azA}9UR-(;;Gg7 zNVgwTn^|E1DGY@ImWQ|$p(3Jv;jDe%^0o6>@2b;}$dluBT&wnPmOE0@In(6^SO^fu z9O0FcS&c61@xqWXR$@`r(bK*Rk{NkdN5W|iHt#Ud(JyVn01p1Y98C`Ci3xWAuJrrI zDS4Jt@{E{4DRC0Uhcvz@89yPsJ;JXd|5^iFvH61^0Z;>c(}ZrxMtp zX#zUo3$e}t?z#ZmJMdP&1?&z>{h7C1h#lG;Z}{4UtRw4(BbOFpufRv}u1LW|y0~lQ%RrqzzJVQJ5V^;A2 z)`5wKmcjQ}rVX=JmU#5LLs0l2Tyhgz1}2WTrJt;9#oY6>rG(R$@r)*2lJ&- zJUD67UZjujsT055#|JONzVOd4_=07uzU}J1v}VPWabg*3QT@q&%ykLJ(5hwdv~83- z9=TS2I&I;fkWatp?f;3pE@y3HL_X6-!EsEN~SKLPgL4A$qsjZ; zyx&UPgw;8_Q)qZb0vQ5xcfaXv5NJi2hP4)g+z?9ASEDQ5ILS+|VI$aCkOy-|O}?h@WQ zeZ&_u7E1GbYuIG=VkaMvf)(b_bUrHuTTTvt@|`JIZ`FE4wz%-jUCfpTtz{(|Ejp1W z`6CZ(KFH6hhJTP3K!eah%>%AdBn?U5(W7aFlgj6;#pc&9JNd!27(dri`J1(@W_?3x zEV~^1GpTRX*hBl*e#zc7sk4L+S&Sb^(GQn$<2sCiBFInv6{BGP38QH8 zI`$O~zMQmyRpj~W*ld>mfKT4QD)6=IVSiJVX|e&k+n4TBOf>5yV+HQ8k$EsXl^Hj3my`CdLL0J_xLp zwjpVEt#lwQ#r?EW{LCbYb+pp;MPQYOc3NgbuEC^9QyGk^0f>*Rek0tz2brcoCD;{6ZkZOSFt?`y=<&#;(LEq^%;Im@SQ zMHf!G#gA;olx)1k56=>ulnJorHg=5#-{jWYnOFTE4ru&87!JV7;v0?p$pX=NBOkJz zy&hXzjLO}~SmQm^sV-?82- z^cw%`J3Kibx0esw$>y-0SNYqW_+91I72Y=$lXBiVej$}5v3a|B*e+Jxd3iQ6cG#cU z#3A-eG$Ag*c+NnK&F0_iLb0;s=cTAAjR3eqcSSefU9B-g_cI?h<{ZDdA3rX8p5x^XFn{*)Ebn)KwJEV3_iHqZI^&3xQ+)afG-}!b z=%X{|6Mk`)`y52ND`yCs+2F9dm1n5pWtX03MfmxH>?GTLn&T5at=X8AUQC;fscc-?VrvU9({%(k*v&)tq<`SNBxk0~QK z?dgA%{cOz|9p%r<2-UgYaeOu67Qc|rs_})#nTPc(C7ea!hDzA)1g6ZZM`!_4m2+aI ztITs^>ZnXWI+#moirPwIrl`!H#MDrk_9wxdKdh*&C1!%k z_9|+Ji0Q2|P8q1z?mcP-8K_qul__%pzd@E-%Ijai55z}zEA95(1+?2JzTgt8w)7&r z<17bx4}{r~pOjp_BWBo7eBcvSofo}?^+;(ortc-h9Q;vH`+=CjDpTw?FeO!HATfJ> zP}KGk6Q(i_zk{(;nIT|s_VmlkXsVwn+(!wQxr{39*`+4Gj4Jh2nbKE~+(u=F5rgCI znNVQO#6g^9S(N9bWYz{FY4NcqROZ!i|)0%Ri9t z`Z^_-CB($4%u{0OsZ5)PV18e#sI4Go+FBZ1)%l+f(f+m67~>8*nWu?Zj&xX~jGvlW*kO3LT2YJ6LT)K4^D8ldDpT_@m{+S5 zwW-8>qcXn{J2KCvQW|g^$qj`Ri@@!Fs~LUF;j{8MrD2@#$RRX zzC*p9@gwh1uNf3xs)VmmxRnxi&p`rlzLM2!Viu^(ZDPDtrs;by_va~UbBUR&GWXx3 z2elp{UpjfIzgTDXI7#V2v;RU5TAHM!x%L;jprg#lT@Y)~56shg6W^5w>rQ=uMV*we zJ{P&?Br3@!5VKZg&J)vKWoqPs`E!n0;{&HBYP*rQelf9nBcUfcEFx6UU%vQ-v zH`aERl5uS&c;NW!QaT*mk2CT;@R0*Ke1*aWCEP$j8IR+X1T%?Qq%t>&@lly3Ixv64 zDr$3xnWr*$iSbk!FB>qKGZeM?HUb9wz&%@Rgksig#dM{at`rd(vbNJz3yVVkMU2A4 z5VK5Wt`tRmzmOTVz9Vb}Pke;Ix)^GcZi^apR>GC-knFE%N*?2gS+6o@i3w7f>czmk znX0HwB4)M9Tp*^M%D5E=lRZUIGZC{~WiAubT4n0ngLyJpQHvvHvC7=Ahv6kv3iAgIZc(G8GsrUud^2YJbU%;GA;}nfkU!WYl z%&6rID2;MlF|?Ks z#gEq?qJ@UVUZqY%#)wXpme4~<;w5HH~SYl@$URG$sHjSqBwVt0W zE9lET@KNqEj?-^K@|R=r3+qmAE|nE_v6Yeh`*MOm>mF&oEhx^*I}6wn@!<`eg{CZP z6y1tc=kXAJVZayZEN_~t_UAjC1s{{pNn@8MZAoCWy`x6Hu&}*nwDB`G6{^oRZTzs+ zh2j&HcoQ6@ZgSN8wvfVbZ3eH_7mDwojlYGr*DY>r>uTex70$o79M2z>7b>$y&3VxZ zLUU$6lDDn^&y5S_6DtUM)-{-aQ$eU!W>j;f9qPh2SuJRH#3h(ts34RHDjKYD)9j6i zeHo;Y#$$g=yrGpIfJ<<~fLmaa$tXUX#T!)=+#4opwHl$k?({P*nh!U(6>%Kc$M*nR z_TkAD1(%|~HpLyacM$)vqTo@qZw_|p?)2s_Dhg#yk2(}GB_nGW4!036Xr+NTb4NU& zmA1vnTH;2nbW4W318|Pvwt5+T%Ok02eVn=g+r9>fPGn1@n#f0O-i)llhmcoqZC>+n z{*mafl?pi9QEbqGr&SVgbfz}8EDrh+nO52io2cT`_L|x*`xVm5T4@V(1u;!4ErPRg z#I0JXOHG^{B`(&AowU-odmxpJnl^oP z3(_pD)TK2w^(C$N*kee4Hu6SQ&`z7RvHq74yFe>#k_PEyt@Idqaj;hEi&MhHPFm?h z@?vwX)Ft5z#MQOpy&|L~jQlQ{_^zF%wn5~@yIQILaY)Z-rDw^DKWU{MX%w%~N}rP# z6SPv76&T#&SgkmXyx6ZDU!aGH?XQdz-#7DK_plnEYwB?4XFp+CxZ(c|2bglF{jrieOX{+aucGF59&@|9WE1iL# zSH;>|sf+tLh)Zk5jbB2Vhd1-d#76;|+CHYfctIs)+^Ch-r4c<}D{XlX z(urEB%LE$I;ac(f7mx-A@U_)oqNg_2<0fLOYNd^7L>JdeS3iUFjlZUnJ~X25Xr+9iWwtqDx^zt#rm6 zNXu)bE(d6$7qsH1RQG3XxV0-xywXPFgXn9BJ))J4r%7j^(^V_JPMzGh4c|p3*3!nFrx9IBEB%>9^oQ1(>a-&-{-Kqo(}@06D~+PQ zxKAr}DNQ4Ky;kf^UQBAu2iAaz6ST1zG@=J;rRQlxchE|kk{6q5rB`W0SJ6sOk{9i? zQWsYm(SI5=b$25#-og!MO_-Rjjom=8yR_0$SV)WCXr*U1%d3EGSi9|SgP)DDsH*-% zUIk16h{fw-6);4b=n^$;h$<~uYW2msQuNj;cUcRmt5&*c6Qm^#Jdgj%J^G zTIn?!3um>`k~I75)=IypD`ARO+M6byIa(;cl{~^t(EEqA(%4;zJkVY%-9oc~hgN!$#(U*fJi`qhu+_%i zprzugmYV#1shi!@N+(i>I-!-8rCBUhD~($Z=?bmXCG}^Bbbzq{GHrAUK_SLjfN35Dfd#yB>`run1O(h?nhBQ+v zjo1L`X|2@7p9aK_T5)Ca;%XlrQWq@{uZ_J#-Fb`;@7xd-=&OyrO$D{pN}pbY)LkpB zK~ro6t@IEE9Dc|ggWH1rvy@web$`f{!@EbA9Ol$eeoZe+Gcmi>f|sf%lZy zoF@kk$qzy$ImH|Ww*#k5B{_w~Be+g{;jOW%7k)_1oS`dNX|0&iMKG^9e_0>> z;!$%=&F!gQT+m8uP{%%?mG-2mYok{Bj@Iz=wbGwfK{`<@b#bER57&xI(?AVw&et}8 ziJsb67aHy(T2-tt+Weyv5!`oN~0@4D;-Z>Y^ar%pb=kQD|IPFUKF(A;kzMy=E<$yg);tE zJT*QTM?>t0Ryv%#xJ@fPLPKncC-3DhEMfh7@N9QsAsbee$2AiEV&}W@n8reHHl`cN ztMa_Y*!?^o%43=czHEM|BFt=pD`bmMUfKiOiEq0q!igT(1)bKFXLulaHB}hg6q}my zE__H+VL$8pm{)5i_^{{LeBQ1+K4`~H&4ktrTa#u z6xk<)|LKYC)wi8Uy*wZ7CHS##I`JR8Q1t72dx|v|=2UWdo}qK32DlMUthU0*?OdQw}HX{($hy)Yhfy50rdRl zOjgmAUuq+?WH+kw(*8n!=gHMI`Fc~nZ|r%3ztDlXU*(tmgu`En&u_ z?XGF^4mCc%+nMWvg=%bRSMC-p7+Fv#9}|qq)ac5W2c!FsDbLRa3*WQVU3pALjG8&k z`LT{dM2Sk6C+Ww5Fg%1hlpiW5xbqR61Y35+i%;l;?fV5@{O3;Cd+zSVb2C&X z9>l&Q`H9XdI`;oRz>zw3#4?8}DyX-{D+d)9yt z>;?a=Za^x{S$G4=za^{Qfb=}MG*GZ%f7It+_ZEEZHq}=;o{?v_$J2e+M`B{R)mtcL zH&~7cb?qrX_6JKV^Xh%jN~P-W@$G|O>`ar3Yes?>?l~=Hjy~G>oWe6p3vK+LFAJrw zsEuESotlFDd3IkRndP46Gy1`rrAr40-bJgC2fNqdIsJt8*2Q?t0KrSC?b+IVMt_Xz z;M&}J09;X`Ha8HSbK}zoz;*N8_~8LUPuA3pmk$$$*`2DTcqQcH!-w5iPaK&OhVECS z7B>z=+7mT-JmIXGl!xM0J0qqY8pk0#vbWI8&h8^?_U;#a?3Y3rcDx34s8;;smqK|q zyavDjr7*2pqE6${!PsjnsIfR)$792VRjltxUTu)@&UA@s^lRLOK29^&%KOr`;zq4> z>~l!xYo&E)M|GlBdWvTK@WN8N%USbZK^)BZ+QCAZ2A+kZFK3nifY_>9X<3@{i!*+I zu+X&PZ`OH|{3@UMA>qr|*QZ&nVm01mh|t-2C=|?b@`KZNDfzv}eB}@!7w3}gS@D(N zWX;ZreAiInM^^4A|LSX@37(ibKOChQ>ggEhr4xnvMGcf~i3+kk?AP)*(EtmdWUMt*i;K{Zt1vd7E3<U&H;R47 zUr)pS)hSy(($L{UxqM~UZ|wqkITyVUj!C$XOCMi|gOkABc*IM`;0Xt7TOJ$( zC;VKLFNlHB(M9>?7);yVMR}R&LRY$HrkP*x)`-i^CnJ^LXZg%8nl#227x3HlY-}-#70%}3 z*Qv97;!OCh`Z9iCrcl1bP(5m?yn=8%iQkXWtN z(9^u^Y@vPUr=w_1+4LC!-T+oU^OGLuN~aO%sYMRl!I({KdJGEtbdX>HnuahQG{;yK zUGC;mrwPJw6^=MORJ?VU@0yKe-8d_LZMIO!)WZsw3}@tnr_$y392d(gR^_uiVsnb6 zlNAbLGr*~_6+ey5EQrmMFh9}@Oa*Dhg4jEV#WBkG=@|z5Uc>=MsKX_Kq{XiELMION zLgn^BjaHE)f!gmzaH#9Uxd@uPlJ1xpbq65YnDUDq$W8@*;P>D!zmv7U{*#` zV$%VtLJBGTWiMyYh7_pY$e@)PzlGwjQ#=m&a@!Z9#FnSnM5hV>@mv`t(r8Yaix<5S znFkP4)yPP5WRgE~Ot2Y^cN`N1`B*$hhuH@xWs;M)2!I!_ zjd<}I?_Ga<@zn5kHog0d@2cOU4YA5}*U{PyH70JCBk`^0 z*nk`xoFE&QgEV;gDj~!<(NPG|)jo|ETOKzFOyJJQlfJd*2csS0A{{8}D4d9u)ZUFg z<`(;lvv~6cMyQ(QM=NI9;#-vX7KlUK@5ov{rLgi;-1m)>@B3&4p_jcMoV58Wd?xPA z<;xR=dL~2N*|sQ>ZVm$zXH%4XuxF55r)XplnT_R@d~TE2KQ|XIUE%bjfVz7qk($6i z;nfg_QMeg2;MINOk$Xjq*1tHEssmY+YotS|F^&iwbd5pQ4y7jP!OWFg+@Vx^ccTd} zE*47+$uTs)?C;R}m48BHj{K}os56~N<7buLMpuMvf_tfVT6}?V6InR@7GJtG2}5=GERroAUvf4iay(pyV`fZlNv*973A2e4BTM5A-r|yc9+NR~xN~BF?(H$1 z!^|Aaz~3^I?hyA3L6}d@wl+s!D~LW%b2UCkf}WvTFDBYa!SvDIfJl5CCK~TyqLIil zxk~j*d|D-=!^meARXQ$LX~TuPL&zEDFUfAWjVRR( zmkY?a<9iA9VFW$-Z#JU^I%b)+$|j4Qpq6o>8?nAnWY zQHwopEsn$P61`sMj$5ssoHM?ANfVx}zx5xre>Ws#1;$QwM}=|m#xU}2 zOYayaHf;yMxD86McNME&p~mipZ*?K_6Li+h1)Ma3ev^qLL3m3vIEhnG?n0M!yz>~r zxx_^|=|kKhpzHII$wGPm1UC#{T~I<8ihdKE5bS11*h%(f{fs51IvR)Lz_+Owg>P{h z?e0+5M${*8QI3a44GG8bO@?#Hg3DJ;$;%1H-Ud*sdBK%Ic)#5X)&~tKxM~>@R_^q0 z@RisYmKb94ra8n#W=AjXZ5_b%i{q>y;0k-%6QS2|)#_)?`-0!G5j{!dDZ8K~y3I;#8Ze0b>eLnxM0fBQ zrp830t>_}J^{`6@-&d7&npPvA;|;BUqs2iG#YN$?&4hG$1$f$sPVApF+FIOoh~kkp zC^3YF{Rw{*irmGCa;BfDONKy|q#iDN6K}gG7|rhVPZ;c;5bPm)b(uBqw@9eaZ3^x< z(cfjC;@bwF@vA<-`n56)hS~-s$lei$Jj6`b84LDg^h1-wOb7JHf_^xZzRFUX#~fm| z%>K396MLZ-V0dQY;!IaA%*5h^0l2_uHT6h!2{}UreuMM^W|g- z_i)X{4uS!$=ff5Y6}w?z#W=*7@Nj`BmrE~PD~2TFGxInJVLTLY!O|5j zrymRv`yi@N>GTBzF+eL_FPG^@^R$UhHhF{lPMXhYE-!xw$CjrVt&e97Lq9hkatBWg z!u`S^9Irc+rgOdQ&^H+Rv0j41OnjaR4dmxYACT5L#L?3xu{lK@;=JX6twUTRIbh=u z=Z1hGeYPIH!#}G=-SAzx-P{%7gd?$ctz+-y+nqMV%Ys0;=hEV@J2p0r;iGecl5{VF znjdk94S*o<049CODhBPgA4?ltJ@IR>hhi`vwM?jNQuC2he8B#iF|mz{1-c%?0vca$@!A}|hyIE=(L z_DG`+Q_m5acCwnip$n~YX!uljljwP0o)X;UG|1v4tdysOlDJL6yzZ_neEbu_bXc@x zBi33JkS1#uTu%$(pzyGIIFcV9l1^$`p&X6;Ow5u-%pK^1jQXM<6et<%^rL z3>WqJbbVKttbXvMd@wU6Eaeuq_EbuP?;}SRd`@Q7?YwGKMfoT%(fuAORS}IQCp2GB zB9y6DcqQKEhgS%-%AP~NH2cr2ROh48EK;gwY7Gms#(mUOI}?PM^GY#BlpVN9{yx#06qyM&(3nQ$nDVzo1n6>^sTA@cd^P{*jo%0Ef~3hbhdJm z?;8_x^>^6g=bC8LBQ1TIXQ7Bur>x*;t(SF>_TiKL6EIeLoTobgovXaYx}5bC8w=*m zmyb6sGpA!;KFb#)Rqi@;9!I3OI#XFUMQZzwNsPi>5{3pAIZ#Zeid$h4{@8&ABPG5B zjgw-Gx}?t5iFCnB3N1z_0X%M!WsS0A%MP6@WZ4GD)xj>VM^vF%#1)aMpBder@1>EK zm4PP!vmBNKNu4^{+Im%Clh(_E$cg4S%71^IM2A?8T%HW8_q)@dJn0V>d2( zNhMCkqNmJLdP>-Mxu>+BfSzJRw7H4surm3+Injjgm`G7J;^}j3DD{E8$W-i@BZse2 zxV0RfY!qwL1{NI+rI!N-mQidO-0>h4jsHGbML%%9N@!Ac49*mwp95ncrF|S+|DA^P z;hC$1^3Cp}ODTsJB{dCDPps&Cy}0pRuIMl z&gOgJpYTgi!g+BQuaqKG>||3|dDiEZM?sA1k0+9g)nRa8xCv{#w_^I4LKYYw;q)1y zUa2{%SgmUDM@m)GsV1??skwC@qN;eeO0McWQLbv8^graPQb#FN)#qXfB}a3e=J8f* zg?f$`PRqrcrCs>swL-;Gn^dVE3a+LFWD#5_FZ}#ayL~Yz zTRi=McK+VV7eUcQ$Ma6hTjV@6p7J24$}o%e0QplDbZAu@PqPx1Uc%e678ef z)C4>Y$nX$dDyfwp($0TkOFHiMMqzDxb6KQzSXP^c`RchC zURdt|&)OpBtz&tyZ-rW6eV~}tlOA=F*B3NwbABo0#)&ZZ&}6mvdZfM|*H^U@kp9WS z`hlcBMb*#c3%(UfyDTfLQl3<>E|hC@mLDONp@mhlZb4<5s9HUV9VaaQXWZQLZ?359gbSBY5&wp?TM%r1t5= zn0o`|n5ULC&{1Z>B~%G>v&4TCPoqo{UdXME&+}H=CX{z9dZbXh#`Az}Lfukl(+Wv( zXw>v=LWNRmRk7O5s@+s(^4ny$T8Gv*_|0vCvuPPT@ELupp zs$YA`>0?D=v2~^k!ZlW@Tua2L!}R{)LS_y^2I?eV7Tx--cua{m&+-8`WP4547WNK? zL0OG)|3f=ZK8>ikK+0ZR8 z;f*2GkdWIA-yr=B;;uop^W-BEJFSOhNAiTIDvfS9?5VRuxXc!%wT|4KiW$NbjSHF| zXf@`+-#}itiV$kaStF0etZvqEMA#0F$wk$kg4{u?RGbR=2v9!|$<5SO;Y}X}=7|3U z$HLd&gGjd-GBSrhm$s&+;KDjx3oI%ep~%bri^NGNywA2=$!SNf)E#6C8VBmSXTkTv z&SIvf*}0OSE(~F9`fB-787k( zah-~0`2`IRx#?pfQcC|+p-{XzqrbzSk$xOD28o8NI8a5iJh>3xwIG36VOAl9Pvgyc ze}_}{EI1@I)SLWp+pq;Yv08Hb8@X2Rf61FZ7VP{F3baL<6i^K4m|BTsgmVz4xMZv( z%t&D~nPq3+n-m2S+)x!LOk|C<&I^#uhg``8WKR6wK+1mt^0YM}umyoTppe`GYbPN* z4~3_|D55VBrh=n^*Feoclt~b9w`%ymGVCREa`0FWdCH6wHqn2U!h@;;DV?#5gMlx> z-$6!iKqXMHIqm-fO&>F%0>470gv)@xg8WdZ+1gMrRROnK5WzfUR5@Tu%`djD&gNi96*9~3Ae%~enu=qEKFBf{>Wy{+@444{^l zY2+rY!hf50Z}X`U7G;<|v5+G5NaP60fwj-nTErkc6x1^SP2>M5dHs$2bGijGYX8q< z_Mgby{y~AxNRxx|M9^L;*M$GBf@~3y+%`{&{0yaiM)oY$`C@>potndoF zBghX#`Ral0pq`+U;I-t{4p&yK@c$+6_K6{A|9@AYGZO6uEd$+DYq14kTTl$nJxB#= zDeQ0LTD?@$XA*y+^dIPi{HFz430P+*#xCIdJK6pBg|5Za#@|4$+;mHzu-4|92@Le~82f?Sd4 zN6-e)I5nL;!pA^9eUvzlUU?ExkOoN>0n+u(lUzYhLAjtk+eN|F+BBtqoY4NS2Wa}FaLY{01rmC}NTTe11r!>lga-jB>^x9Ge}qX!`nHe}PhpZ#m~@Hq z!_W&XGj)S9C9o`n5)qL+A7~jzyg4&MvmW7dl}O*L;}4l7JvUhhC=o>xniCUR7T5wt zbO4bahgYs6^LjucVTgiLRGwsmK=+_;7@Q{^wUARB>6vCCQ3i;Zk2FZh$nnd<8SW2P z_|(s2M46|;D09Zd6PasnE_@UWHpfBNB+WpgKTwblBJK@U(3}YwB&xMK1HEHkEA->A zPs3W7B~R(JyporxAR}|;{|-N&Q9%I|AAx(oonk ztvS89(2X!~28i@x;gxoy@}#OjqRAsMh6mV>vS&uLt1`@6W5t@n8P~LkYNrnm3EFfV$BqA~wei$8+!e+iV;;43WA-{+W z2q|N;F^^Rv@Sg`2ZLEPwA>f8VZ|<@^OwXoZrdC=wIex`rE=SGy89aC&Q?xsIWb-JPd2H5JUMiYS~z=sUi9A zt-Y_tWzEl%Mk8DbbO>QGZiR}LhCY~wC9e86XCv;pHhhLmpA-Hc%1ocN>i^CF)92mt ze`WyM|NmDH{9m_!96I7OP&8;OylmQl|Hgoc01W|!fqH{NK^;LxP-~D6s2Ru|R0re= zstj@leF1V`2RZ24+5&O~UsaV=RMDxhj;T-r%fyyp0f`(yc@~*l#{cs$+W&u&*bYY6 zY|E2=-r2a|ACGXg|7!a2DRUTrUX3#wfZhkx&w4U zUeypLBr=%;f2qQ+b{0hbU=cR!{iitbTX^a;`UYs?NrjG{F9@qL%>TdUNpC^RGxDTP z7YY<6LHVJYuD;-3IJ4ZG@jpl0(|j)RpD0+eAWwvMrQ<$HMGBkA97kvwUbG9x zpl5y%#69n5ZA9AN%#luObHP!-ozWGZ6AI`maY? zFcDuvG%%vUo@V(%Tb=1QJG@h-(!pW{VUoEP&zH_Z_7r4~4_KP@{#%H$O;V7WaRds~ zl_)5Lc%p+U4T4@2XfAYCLPkV}_`^th+k$i?`y4%m+^ST*ldftA#B5&kD&v+UPG(!_xRF9nxP#I2)7<{zdtGDcuR4#5emKD&$MQ z0!M)#RViOGy#;fJ7?2qU;6tYp$egGl6kp&wfE$p}6zC0d$(N2H9EY^7;9U{F0pZ0I z2AQ!8^7s*CPV)fa4ajHgnDB<9Mox^5ni$F7>2#;)$8Gs<1io^6vU0wZfzO|%Rmqq1 zKs_)9v<&i8pcNlnAV-kig#WHWc+!G05q^!gb0QidLm-7i5%vMOf)0W= z(*uOF-CJ0cP6eJ4=%Ad^5-tP9fGC^^ItfYzIa*LM!nuZgsX^;}sV1m0$O&W*5s%1BO>0y-9m(c*^xegka)-BdBCJ=z{L7xWr3SHeBL>~!sHP2QpT(vGhA z()lj=(l4N1AS+NbyU7wX*HlzF&1v+nWc1Ti*_@|Jt<%4{B)*QQTbAZaru$~ zv=`xjN`sL8SI|)8k!^t#c0{>ERw`veMg(0v2LhoUM1p%Tl&H?c0y4`!hi1LQ(FN&x zso~G*e=0*0Sqe9!U^AIBw~VLE|EpxO$k1HiN*FN-)C=SVN?QzE^m%gs7jb`=#!_yw zWd4)z-xU}GLsC>@LV)($&>vP~>ffv&g`>7A;ULIXDq)kf0Zi@|Ts1+Y^xvW>$Ztvt z=BqU@Vl4^;9YieiSbfF(ieaM6MSMc4y_Rw=Y{BaHhNv*#v^3_+6S{(?#B zJQlmV^QAVwYU5n{g7JRR4VTbS;5 z;u`Q0L+kf^Y0d*&*bc#{$N5t0)0nnz!?^Deev~gw$9tZ->o5wHB6|H4^efgHck`u* zdtvy8eCd0{`@PPWypQ6FIz0yoppcEkllGwSzw)J*sF}|TB=|XBy8jk6J(VxDyq7P1 zxeFI7WbhYi+6=Xsk(MuAdWV{$5?-j)FQ|3Qdl-#MJce;cQ2X0&;E5ARk4kR+E?*jl z^xd!JOAG%*+!2ibIxt|%Ib3odB6GO)3Nl!7DPL*}%U$5!xiH`nys#oOUn&AOr^CS2 zm-D6T@K#N@dkPH5h8J$aYeRm(S^?>AW#miqvht?SmPh?OPZoYz=KY<4Z!o|fve>}$}`D(tj2sOM0 z56lC<9v--hW-0$uzH|r8lnf6nhew^!jGl1|IkW22OCbpgH=z3?qx94?IF=dJ2P9pr2GjAL)Y*bsrVkaXw!fjy~`R1$m&x z_h7^@^nvy0FLmLmH!!m6cllCD807#%(|~f=0-oS!IRlsaQ=#v%Is0H_Oe~?%%|l^<*@CM%foKcQ;AOto8q% zO#iNsp8vp*oH~-^Tvw8EK*k12B|;ivPXm-TRFbm4`bZ{AMhYn$St!mT(SJ=IG8FCq zxr~RxkS(e)@j%^JNwSZUq_ZPFrDG!z2bwWTl2!vr$91%VWyUCY6LIEy*N9Q!10x1R zj2bn3T;zZ~JF4o^b*9&NwF)0`waTuOE4ktMc*pv9#15zj4h6b5%$3fTv$FC9zOG

4*~;#4}k4}TU_w6C(yl>mDOCJ8{P#>0VY?nvWjel=TMPvm>(W2 zD~^{R^#(k<2SFzA0Y$XN6KcR1pgqq1NCoPF89)!9RU1584Dz=I{M@BVW1yS1cm@}?diTg02bl^2}ht0Fa{U}%ml6kW&=}!A#ITmm<-h6 zP1Y2kGcX%i4;a!8kKzH-fT6%-BRoj)z{NnnKo|l{0scmEV6F)P_x5-k7YCvw1A~Am zz%XDYa0<}918M{e1EvC#fhU1!z)WB^FbC)u1lKx359kBT1V#Zvg5e2Za!2R^{W`&u zrBG3zDFlH`1R{WrA!rkzzH_d$0qEBS1p%$_%(CMbi0=uP15<#@fSJHlU|KKq5um;| z3IJvR%alfeeb5I8`{qi6fSJG;pnE@f78uq)7f-fPU;sK7VHjLm1_cj<3xP4fNMI^( zF3|l;bT*)4IQoVYY7XoROc{iD!oe^Ym@y2Utt<*0fhS&pk)zOL=)}oDXP{#wIyo>T z5>K{9Admq;CQv^b4~#k^VhlPH&}wY1lmScy>dGU-aYzWv7>`a1Oq+nGtbu+L;c|?Q zWMBv|12_m6HVF@-08_)@XF~BJ#2QCIWZiGHC1b7yh0u+InKzeoAaTA{C2f718 zff>L^VDe_91Ev8_0%N{KAE}1%@3$522jWfCWMEHV%nrB)??~&vL(PHishAglnLszZ zm>TjuTnqHui<;Dg-ab6A4on5662BiV2F3twYeD}YY6^5blq+2Y#sIC{kndrX>qg@r zuVpNQAmtY%s0~Aoqs@RZ>2NJDI?Lwa{S4GTf6PN33eX*xTpt+#ts3AS6zB+y0J;NXfPTQmz!=~bU@Gt+FawwY%mzLH z>KkHj6zB)E4@S*_dSEKhBN*d90|6rhdUsd|^aDl$V}Nl$+9F;COlgcwRiNGj9_xs7 zO%V?a@kc?x6rfcn7}^$|1jYcPfT`_p^9xKiqTmozAQ0sMLx9mH1Tqmw1!lBI2AvVn z0W}AP0ecd5gymh3VJB={0h7Dno)hR8nlHI^g+bks5zwzM(uJZxU?ea*3?2dc4TML4 zG2z$@>jr)h_DX?~gK-xYhCs*=7yyhJ3Kw@r+kOp~0wW_(Gva|cz-(Zd9*~bgfxwut z*na@h?wYPADgyKahDBq`0O&XkcXvSdSQy$1<;;RdfNAk452#;&yRcjm*h^AsZzQNB zNw0w!xEb>5gADbOGzA#b26CWdfF$|#g(1N>a|UP?f<-RSuM3v_{g7^;Bn<^dhD*|R zVAv2zdJ0ULAW0$pp&u5(fngo>4aQAYw-kOwHO z3f7-|Nh4kL#(S&c8b@*JUm0K&D3#>QEVZ(#gy3AzRS*8Sk*+d}Zpw=_*0nahZi;ua zR5i*+XAKjZ;W}s`qhlH(AggL2s|Q&;WTh-*evmDO%*{d;3Rx;-xF*PdRK`%qZbIgS zvHnpw1ws+R8j7A3DJDav^URgXTgWy*<_MXkfqNmV1X&dey|a+HL8iBmWkTiwS=Em+ zxaBp3ArO{Sg=D=gJQw82hcwaEDVu>f2Q|(EXhhsuPrj*%t{KyL@!L&wHOu;V71lWj z9WO6l!9&-~6o$B_ls=%OV=Nn0(iTCgoTFf66=#u-WUi3KKt_`k{gKQIvV)LOr=~xW z1wm%pJXabhOB7icWP>0(r^=`vQG%6VrT69+J#=+gs5j3CmW}q#m8j#(c@+49S{SR?ff(9Smy0PdC+7F!e>8Y^aecHlbKaTSIYb zl?~8IMjYjBg}6SbGRY4@z6EluUu1chD*p}gG|1(ahkjpG{uJ`7kk?Z6`>S#~iz&NB zZaJx(8qom}RNG33$Z5eRHA7`9`S4B6&_aWJ_-(?KKD?}_u02ck+`{YQ;->>8cfp#Qos`E8gEvSB?jJ>FU~u z5ZLky?RC}o8ZTW9wmpEK@X~o#u)^&Zbrq`pa2Q9PJ6II`u`RFA9ECn@%bPXV)v2t< zZCNVmbtsu>&DO{sBwaoF$dB##G}7&9 zh`pQ!z z67kK2mgs+uz4(}xx=HL3%KF+W{Lo0GVG z8^e!`*16&n6T0dxbNd$_M13)Wy>LfoIStW)pMxNqM^@v{2#SL&a{#~RhcY|{@&*Q7 zg*wp#bES2%hBDA-1RBcZN*LqvpCA4&L!m31cIQ5D%9zul=0Awbj3l8~^4 zu*$>G2_Xrf(m)6V5yB#ZV$unL2@s(ngjMJcL_~#o!G#l*(L}{z9ER5@8eyU~3Je1Z zjWUWn^o2!52FKQ697HhhU-z7=JYIcYQgwgl)T!m3T5k32M3n@NwEtD6@kadGQ1a`T z)2t4^w%w$+8!QaHS&-|X^$y`z;3mD(U~zcL?2U;_2dx*yuNkbz_aO&RVRCkr;=7R4 zW1;Fqt4FHt_Wh;w+(`Jrl~UTP< zR`cw&%jlWW@Qu3V^x^A)X;?Tb$F!Ir6cGHlw+wlw2ltvspRBq zklm&QW1T4#G9}bO-m98^&Ql5YnbnjqMs@4FzRgL)A2S4BYHc zHLXP4Edt%Hzv$j$>gsZR35Ic^n%*9Ro|^s;of@Ntrk;KX4|%`n&NFqj>zsgY6tXvL z^!7vW@yTN`4V6AjYsRXygv$@(gh*#X*nyu?%w3)h^zK--)9!zi7Ux6v{G;?-KCW{& z(u8qpq$9Ku-yY?mxP6@JWk0{E;pjMZ*k+G=oSqr4rrB#Ar|-w36;~do^2rlc_!*PE=f=2E~>?f310&jqmdt1?rC2#=2iY z!X$v!FW}iehBcN>Qja_O;aPktPn82FtIduGp0$tB?E#qlY_eKsH~vH=Q`8!Jcz46u zDJs@x@AM8`oT|Dx`n_|l`4pwk#DtV`x7uzWdw>q#t(L~R@Ce)#L(a*nC(WIv{?nfG zK3$!LVSDWZ9glSS(ao8d(!<9v^c1bhLu>wYkGjXc<0Fclj-qZmLF=buPAU5v?VYaf zwYUC+5@u*;{e<1B}1*cKbA4h90+G$j&Fxb4BV7 zd#}#)c@f6@@-BGQQR^b;{1NC>ccC<&N=~bV%&P?mx*oR*C!{orjhtpt9x{dRh$ z1UF;HaQd=Db#s;@e<&R*Jr=tqQ(8WS6brEb98R8oqGpd9H7bO6}#CXyS; zJzK5o=#Ku>JPNjS&~+)m%3Vr-n62iw3?uoZ|9W#hb)BQu+I~lMb5tisDYmh7^wu2p zVr=Uyw7-hx{6=Lt#v)x#^}kW`9dDXRcbQt%appHaHDftm%~iK{Z4+bm#b~p0@|^|Rw$3mB_Lo!D zTvT8yl2_=vxhmjDfm1G_%6TYoCX)EmpYznjSben9;bn@QuTmW+k#3}0=c^*eZ8)JR zqs{YGg=068VQN{f#>5-L;A(h%_q}*?o@rQJu3Fd}nebvCJ@SAW?pTgwIenm$jYyV} zdx09>(zqQR`S$hZ1v~>RU7)(%p9@wK#)*!uG=lcz>0sBu=9q+8IoR}l_?C(|StrPX zVAVLaF*nYp!_LzFYVLWrLRL%PEl_f>kxe3RUMcu(u$*q~FfUk#5hKr$1r`c}vse$bEpss${kZ~W?rqs)tL zr?(cVQAr^rFQ2~NyahGVVLX2Jdr@mjTCDC2bif*%@;|?h8r|@IU|pK7|MC=~nLdgt z13Qnj4w@B!<(`pgL|7?U9hl`YT5mbnRzLU|z5# zU^f;#6)XsL<3nK?SmRB44}u*6yRmUKy5P%z%cPJ2h+hKp(T^2)f;oX?gl<`ap_7Zb zpoyMd0>9U%d%0iXyQ)s=HV2N97R1KCO{E&tBMM3BzwmuTZ7$F0+Gt;Cx}u(wTB9Mg zR9uN!W;&9M^ruSIGd75%`Zs-CsU|y4B7K@}U8*KJ28`CjrD`cgXBm?3(_2ebqN5tg z2z|N~F5HM@KXNbAeu>%m5EU;|!;=e;R9An!`yrHD3T9lTz01^2M<<*gj;9Bft9xRX zAnCeJhnK4bjtfZdpxalVYMH2N6Fss*-Py7l$vQjUQ_$OsRBB$K>Kz67=r7u~QuS=9 z+w>qVbLjX=H7cNehj_z%uQ)n4r7lE@!9pF=L!5>y*7H-q|VF z=^E{f%WD-Av^nG6JNW)MEmuN=dE_$s(rRfJsZ0m=a{YA(V7QUR_t!1UF~Tv(pgcY zt8xBmE_yJk=M{ya8V2i)wB8AfaK;rnQ6(QPQy@Fhk@~Dwg|XF0N0aH%)ha7KjP(A_ zcs0W;v?qPD8u!?B7dovgC9FZAD?gqnMMIR zY9GZ`A)SkK&AT*Cr#B!y^8o#}N-d7n=a#j(r^Y_f8MT>xKXVF}#H8lt8R!YwgiO>UNzeQG z;B;fd>S~p3bL^g~*W5i1sZow=NFE~FdbJRLxawrf;B1{0`>BQ%>s3J6KQn0*ZJnqdSMAC$hwIRSBcrJ$eYi z(-KoZ5{b4ZzHX)0#T{yl%}a}RK;9M~RUna=>_dZY4l#z?Km%Ubq0*8)z17WPBL@4< zex8PlJJe2_&7h}us)0$7M_H|xgX7;Jvg@%$XLhPFNvSKZy7T5!caXhy$+YSv*3T)C;k0Q4Rjn zp$Z972>;XJHsQg)F|TjUe451@nV*x};}>r1HaYd(rQ8AEE>_wMp$@-8 zteYH^Cii4)Y?sV+ud}{BI@RHTaGyThMd&Proe=Kd$6UW8pu>6LO&^+^8g{8$(*0kt z68-~&8QP<}btRgl5~+-h0pPlaR*?Hu-GM*xZAlREy(0FUWjlk#(JF;EU0^;pmNTps z?*BLQE^N-&B3yq0qC-oLjF-W6wfb?ncB2(ly`#FfJS_SVI*w{388YG}m+?O$_LA*2 z46h*N>!_w-^J^+#vxUh0Ix_iwV)bKC*5Lr^uA3UB5wF8R{j>;LwgP(Obyb8B{PpYV z_qGUaegj#f_^%H-Sl!SHlZMXfqJ0oU`O`O0o{M@k;PE?R(5nq9EhDPW&Jq4CeQ`)K zMcXnzYD%$e3J{JVxJ*OA8O?girx;?^Xe&I@jusbA?={n#nh+5YxE?Huv3cuM!5Gy=K2E^9TX;f-DaPjoDmXbY;^?JZtUfz1+Z3g zNRte~KXQgLj*Q!cdq=Q^x1>Ua!VBJD#jUH@&H~}aDAsQ!1wSG@`X|;e#2_?3Jbc>9 z@GxuEN&)-8bxl*`CRi0cCEO5hji`T$9se@6^O)SV>%yby%yWguw}Jft3NU)HyLhDF z4iM1=;tx;HOTjBeut74w z&CT!xxUP^Zk1O^wINXxK;RB(dYigTc3KntTTMxgI2zS$v5*MdgUFp z)Q+c&)Ue9SNa@2}Qz$v~zxqHmjpz=pqBy&8Sa=v8N`zHfl4~J%#W|@!GVZy~S3qaN zSTSAX-iHY5Cn9@ODJ|Zo(y)Nm@57oHrahqfzQ1zbiDKeAF%h23rhg+`f2^-f`)=o| zJ}kVQaD&p{h1D9$e^(7mu6vTj@H#V;h*mU_9)DNmVa5OST`b6c>hT`-oCV9-rbNb< zR#^pH2kRJ94`N-1$RlD_9IB1*0;+cO? zRP<*t)*e%p76+*wVteRr+6!Yz-uYbRS)z8osJX~?Nca8%=D8xS6mf{sAs*+IZqY|K zI@E|bn#NXhqob3a(}b3Aemmc6<10~XDrf%RQtTDs zUb^KlHcOG!%riyY6FX|N$0u>NLgBXwH-2C+Ri>y(!hH)^znkdKv$)I~CxovO9^!e1 zJ~@m%YA}s19>$F`?q(y_NDYg!pVE)O$D;4EkvHTHT(-m$INKM(TO>-)(&i($-y!LE zuT-Izh{LoGVtZ3IojQWTgHN$sI>cBYY98wGJ|@)&O?n^3qUl^#i5LrsmW!&iIAsxY zP&52R#5J@_i^CaQ#qBLv{P$nVIAa=5WAPs(cLyAW>6;NI_Xntgk47LG7y5~{uvnR) zLbO6MQ|XgG9o7r?PT?wByXmKd7p$VaA7E}SAlp%l_vk`4+g0xDWl?KdMj1!p$4$Sd z62zFwH$y$&FZXH~7iJXUDMZ)RyMjxzb7U+PUNf5&cZ+_F@Cbbeb4mU(=I~B4ghY(P zpJQlx3Qal&t$SCG((PXml*0JJYTr?Ee0#3fH}fz z{LF6={guK)=QQZc?_}uYW0v5kzA}tIb7Z`rIgUWv=QoIke?9kArVPOkh1Wd9Sw51S z7lj+CT&Fgo{{z*ZfP1vXT&}w&DsJ zoZ@?SCv1_;uvqk6(h=6=zfO3#g7sb!ef|9mRI9(?k$KH>iI8My(#NC-gSi~zFSPk@ zsPD&?y`U*InmIDg2oFXX=mSt4qQdLMzh^Nvt_e59BUcM=g@s*rR}-&ndhcq6MCNuQ zg>Ly6D{fsW^MNAo4Y?j>#!bU4Q|tw0`#MDiIWX&e!XNZx$XJ%KjivVaD^qQ^dW-ivDhLe}V@QWmUIE$!I59Qpa#Olvx?qnmSo^y8+?(D&}3O{L> zLB@sARd~(w%%2wh{xs=RG&x7aUfG)DvX(KLs z#wI!gasKln_J79N{#$bE?=G2xL40ej@IMRpe9vINIPWnUaSEkLhL*yyr!PP3&Qn@i1kEe7*FiA#|L(bs!L2u zRgFJ`oBsbQdrgX%_(1f%atqLfX84=%CV70(|I1W|uY`vmu$$M#L<*X-_q zvnTg=ST=dhk~bOLZBPDxW44dzNA6;qTg2ua79Yd?vrjsFtnifi%#Vou`%G@on9r0u z-!DqO^K9*)7+otos=o(-@Gp*x&6d9O*mTiQK%fPn=vHGTWMoPPU-C%B{Z1{{!;T~Bh2Z`Y^RF854(?nb&%gJTVZTN*pCNVfK z*&Y>MH<0VoF@^;s-1QP)Td&~0EIfGA26PW|`1DhpVVD$fP%_k9-5*c3j)kTV&`ANgR*@n79NYOnmGlV_W_x*M35kYf~5>PNWndYH_3W0ldLgBxFH?e zPwb2n9zDcB$~R^T_ikhUt&Vc=v&s_4QeMq+;}PMZOAM0b)@%V!)%QH`s%RK8xVlTu zM&aR9&Z55*p~G=Ye=2jUDQ7I+p4)sXmi42;y&L%YG)IQ5k2%-_MoLJT$SZ>O5a`bJ z%AWdm;ioRXibxf4=fQIt|P3I z#*q;a9+nMETj5U%H-68cO87S6-g6A3PmSG{ej3;PLDApGJi%zHWzw7F#xX6>_h;xi z$r|j>{n|oY>Yu_>WG=WvOzQo%?!G3Xd1us9w(Kou)nI#822J{hN{AVhkwFD#)j4~5 z1`R%^zP4pj_w#D4J;OsUo>v3x>4WI_c{R(Pok3Y&sEBO{wfIu?rA6PW1eNW{%%rhj z;+q&*9$NUNDzIfy_)E1NN^`$bQ(y{3bX3`cGPCL9uT)0+!A8m41q=N}#pUG-m(4Cs z%g)FWOBpDSmD4?$G~t4}Ti0;g1vS$)i0oghA7Rs!XAQ}+%%%^@ptOs4!5W&=E~*S? zj>jmeoHJ+k;KkZ>_kmx#h|S4hI&x9nDJEjFJ%gzD?4=jC_Trj>!5Ti zHDr*L%KC+6=g`5wtBLIg8S^S1@E0wpe4u3Z;)=BFtic)7?-KeIO)a{F_dl}e`Ace) zEt}3=Qj_eN>6G=2T7b4}`v&hNXPS-egv)vVz#FPVO!JBM4671Da?yTd%=baVJ{Q+7ZC1 z!jG+y**lqSdMUk)Bb)lQakyzk8x&@}v0}wf(H`LVEAkYE7gxS-<8u zV6o!Mw8H5a*sh<4$Ga7~?rzxYblhRHjin#kI+}6Z|Dy|at~tYM9s1Hxw9&X>=ot>GTot>SX-S^GOmF_>Tbf4|z zTF_sk{EJl+&5v`cuW{PlOwH|{b1}jxy@#EWOP5?(L^+ppYL&~moR+LM3m6eoWNqg+7 zv8vKdJ5QDO^v>Z>z#S_hTaj=)}*tt_`1w14>xX*Pk zN{(f`*j7=^E-Alt6-2WgyrcpLFLJ2}NOya8wp76?+j~hxXuuVq=rUf?4LdJsP#G^e zsa0{a8w$~r0Q?ojE}~epU!fGcl=Whp6igQ!yc}Mj7lG0??k5EUi=#|UzNY3n$;|qo;i84-Z@U??w9BOJm=*DTDI?a|6!qpg~t(b)1G z{*zCUI=BCV&mAOfY@e+)ue8@Bn+yp^jD-$yQf!ARQIR5Ja%dTtEJJd(KG984ygo+p`p*(0QhCJz&{8JM0MP{{+B++M$KXrjVW}PPX(9 z)@fZGx+)DF`iZ0vSOqfTQhX@s91d?KpFBB&9t(3$g8A-C~zR`39-RT7Y zd1`GtbnPhwwkN~`*j^Y{4b(n84Ov79G-gAfw5W3p{|24xHA(w~(8ZrT!^l8MKdciP zTMT`r+nw7o7fIixEz6gtcj@7NV+rV(zeWe178o;+I0DZRsi;c`t0wt(9fFzlU044) zR~FlA^2N+3_Be(|WA^3rD@L<}Gun!F=%VE%WpBz0@#G_$=O#8N1KE1mCV z;s3Ui26hi@ag8LQ2P(Ez^=9~Ov_3@h4zI<@^m zsK#OWk@Qnfuc`**4v5j(EqAM00+c6B;R~qTx{k4Le>yY`#sWkz3Ms^ zlTb#zMmo}~N%F!}8!HgU{uh9=7(zw8C45<|kgr|>fVOHDkZCk=<~A-ya|f08r~;7f zi&{Aw?eN@RYSX(uJ0MN#UCnXJGg0KQT-w=N&nig|d;8bOX)4INpNsnfu&detYi?|C zD#)$}j~J(5NI$L{hNziTw@-tRxlM%H$GIqSN-!tslF=3|V^lOpJL0*8G^A?ym|Gr^gebM@3cgBGStNd2s%^l@71#}S#=p|qITPR@rU>9h6XW%MIQ6S`BO3HWbA8T#M_eyj7$)1(kDwY$EkPQ^F0RVRzV zIBZJ+zfOVIuaL?QsKS;=VFUcDr=v)dUbBNS(=ZNAp?r7KDnMDMAtN7q1U~wM&prAq^AFgeHJ%X*Bh$%z@1!I+ejH#mg5Etzbu$-I$aJovP1y88?c z?#$BjAx&8$sm@RXf1e?Z99p}{uNey8`ABAX>=wVyIrxp8q2Gk$@W9zK99G}~jTfoK z^N`GNo-KYo%+l4NeKUg9`pQa?i&9-4zd+%jB!=Qi_L_tl4sVpi`Gt~rJVtVOpt6q6 zaJYmFNSsltPAG|Up^`WpL=rp0uvba+JCV$A-YR}QHsJTL)~~9v5XZIeU^KmNXEeQ# zo$o?{OxLkE%3Qkqbyv1Vsz0n(m7Z~8Lbq^?DlmE4DCY@t4#JJ4ZNog7pLA^4ZvJmG zDRcN{zUY=@9quQkj=0QRrCK8wGkfXS$g8Y=&YDr_jOir5w0JgC>XWvDS##{un=`f| zr`5L}Oq7k*v)U4kzJ~Gmc1$2|R;!U6EJhceY+L!}^_p+I zD79DN9Nxt!@D49+>7$sOOXJ#dc2KG{u{IpPZWHxYkN1R9G&n1)#Eouo-Q#-LdX#K> z0Oj8-ZJF4><=fVPiNkD4G8LecUrMhgZe)4V%1MEYq@(z?m#mYjuuf8$jA|@Gs-5u% z|NFG`A!9th9V3mO+>k{}J15U&9@4nUe$s#`f$Xd_V@h2XCGDHy#b!unr&O=hv#Zd} zlL{Mg-J#zasbGpb8iq`*UZ$d`94ob-`V#}~sYzx0x}ac&l$aUie6O?M4GkX_%3n#D znLmj(S%xxivC_%|q(NB$W%~V5T&%4s&B~l7>aq=G-*yyrC#1nyI@VA6F8df8nbUrn zWY6yom8{>zvLLC3xkIh+p~46b4UROLZW>KPgR%O01c)-zQ~BmS*saFF@`6HWh}j`f z+F%Z<_+bdpzJb37z~@7xE9SavfaEgM(=i(rD1)CgGgS8_GRXqtQxx?TP0kJz3)h5T z7o+KkTqLE>ti=vXD`xg*O{B7xcKpF$skWL2cHbM(G9{OvUPlhH^Re8b%8VD|lErN{nKr#ZF!yPyP! z76J_Qzl-{TPsE%Ny0cIEX^uD4Wbd5du=fSU#c`7-*cV5nXD3@6o`fkf$QRonf!d>% zilL)ac5W@UPO3LIkoA;0&8-J3J9BQGHVa36%7+VD%j03ktYbeE7pqg>Xz?41Vrwh0 zVq2W|SGCjRtp#@QQQ1%7E>MT%>YoFU&y5^s=|CCmluj(@%yOmBg|i{a+=VUKLy0dc z0LORWh%3kQ{pHWd{v65PauedH*&+5pxE)-G9I#TLLMmQ6|e zZA}huvr)=e`$gct8-$aR)*{KA5FBZa4SRjklo)1hj6N#%PTsIVda<^y%eM+x`i3O) zgkYV#dxKPeU6^|lrBIt)70_zMgbmWDby2K~^z%ABbCWKud&inf=hrU`>b6etg|fPf zW!Rh&76)=+XNuxX&BLsZA!51QI_ZZEVccb%l)s@Wf4Ww>zQK>5Tq}Lp5X3jEm4Y?~ z@o8%%<3>OJ_ zI{Cfy_ojMoV{FBf!Lw4FyIN|nxmC5fm0$F}1WZW*@n>m@|< zf0iP*wqf(6$y+_#%GzodmtbuEvx0H|RzJ5xD^-ls1}MUm`uoO~!m~u)C)JcS^O<9Is0Y%pBuoKibXMFFwp@!k@(SdrwhXIN~*Cc>6?@PZdzACIyr z8^+s|s56=hl`TU8Sb+h0ZV!w>D#n<13dYVz zh}|os7x&&^L!`WYekph1tAWHl;j%THip`80*w!giUp08<_*$?G0kCiUEli5(x_k(_ zBKm5r0u}(I`t1N{D+TWlVV9+r`)BgXBwg6w)Ol4y1^sFy@*62QzX^gm{qm#PMQL&V zcE5`Ag;>+z(7u+r@~q7Ygl!Nj-*aimf%ZcD2ZGwpL5~un9ve+|-4aZ458*w;_5A3Y zI*zj03G({j3}tUTy99J&OE_119X%$ z^I#A&OIr_)V8)z)L(nu+PXEJ8c(q08VoaV2ziqa7G#eJw!QR$%0}>@X8BGVV=A6h0 zJ6ehHQQdPI7a|N6wo&T%Ye>Ji2t_i@kR+RK#q9?N*qwdNG)bm}V4XEY9p1~}Ja4Hw zyz!5f;a!46j{i;>{e7YuswEv}WogB+dTh0H{#YXWHOKF_A6VUgYbo5n zLn3SQ6@74oTBdKZt&(QLMFC-H=ctBz%=%N(o!`^pZ*)E0m`#)Dcx;8MHHCy)h+xBS z((U6(&XZA40zN@%cp}I#Re+fFZFBmcsKYZJ+(TEC1u3(rd|G*TYoBC#*`Xa)?RCE@3t|}1ox=hSpQ!0gl$Z?#VwJDCRLD~w{0xFI zIfS6*VPp7)0Pa&w4A293Qg-s{g_76FDj8nO#8`iW4!=qZF`640vy0OY7|rdlZ#7f_ zI2>g!`2|MJ29$mocjzNlB2ndUQ``=Hmmw6D>3-xR(s9W?io(Rf@Mh$_eleGHuQLmFQH)8S? z*-UdZq@a`Yrb=07f`fm#gRQbQLC&10;YOq|3BqfA+(xk&)iL02Z%D__^zt3~B@^}{ z$#hg6h)3b`AkGL%&mE=af7NF{N)!KT&vK;Ge^qxp7$^o_e@L=BTOB*1@UyKO1!O1) zQ^eY!GN4sUuqAh>b=^*#j>2!S&%EK1)*5}TsAADdyUvF48?U8nXM3?;IZe(*GB!yX ze*Pd!kfJVp8{kn@AyyfQJa{0}peOOdfRFwX(GB4`O21yXQfBr`u8G?(#aTV2gBPcI zT^y^Lo>j1dMsp&xHCAVAxLc!r}YP{(aN$gLp)fV zM>=C!n5jm)nsYIW4Q-Lg$E13fbv*Wk#ICwaUtLbY8Nlw#S3z7_Lo|X5FaFTck;A zZUiIha{NX!c23gXY>MD;o14LGtdw?hYRnT4f&M;p>!*J?bl|O6M%u!H8qI0gM1l1k zcNEsg0A#8H@)}Tb?XRWCTQ$qHL5ciM>T@dvrftiurucn&D_D1NxFW#q4iMl}F^doa zf*OPIsYvACq`J2|y3}=7MxvfbOb_Ij(t_Iq8sxhvg$IzBn%Nu8U+CoWDPnx$b%;?r zCMf$}*soYH81E<)6-a-2BrU)1E+ySbbhvW5Ijmx?)kBX3IhT6eX+we-0#E6 zARokPNQdut;D3EB`N*x*QEbuxohZ zEFG~X!X+sG;G3qy1}TEC_5n7dnyR^1o-2aCa~}-$QmY+Bb*NgsU#<3ff$CUk|APk= zJt_#i`pQV;!R>N(K0M8;>&q!+^^wRX7$e1r5_acXvBa7aBW)uQlC$-3XI6EGqXNDY ziR_rF3?DY;!skkBEEhJFsy$6$BXWj5O=eZ?%POD_NaW6~{{u=*r1O6#u!5W_&$hFQ zPwW-Yr%2>cO{6Q&eX+GJdj1fm^UjNr{Qfnm)63o!9qbgSGDzeuEu|wbSGv?|4!nv@ z!&cYu;cCv9e`+(&`Mp##F-f)Tx@1egNcpE;(*9RL{E=C@^~%7*yGjACx3gI3uh-Qo z9V`}0T|41S=HpRzZ6P@q)n-$q#zkua_cQ|u1R^7oEgpsYIp$PBQs#U9ZQEp15sI3f z;M6CBSC)L=RMOwRgAvJmYnN6TzYMiw&;UNpv?9zvZ350ARLxE?-Ap!}PBwi2(|e`9 zZ=$?|1m*)Lj;sF=^j&@&O)TL9q>XR3c@BfJrDzj>DQTZRo!Bn#Sy;&PwyO0%pHb>7i27=D&WY9LzmB0Y<=9%*gtnAplX#oK z6j7elVtc52d6vq4rA_6TxklDQg|loV@`XA!2T(EQk;0gNv=wKlZv{5T$*RIXcu4Om zu;#uG5*45@W53iQqow`HB4fj|X}%)DGMRcfv#%--PyiAkyfKcl*D&E;-qB3p#8uz;=?02m6Ven^KMk3n}0D5XcFo zbMT?t9;|iP37|W$;EbwDF-0o-CYY(M3;Is|ht$Ex|0siAq#mn5jx(+9dR5*diWokIpX6$Ma%q{!G znnOLSFh71XPpz0=g&lAmeo0_5^hN>&lf%4epdahW!sv(}tLI(!cg(S6Lh2U%paViV z3~M1u`5{&EXCtb8RbQ0=1`tT%qoa-qTkT*r7O`XKV|fL)M}^#V{%jLtwR1b^7^2=k z($@j34VQB%KY)dL&nN_qa_T&uxL2W(m(qbniIASOj98`%2gEYZP1y2AKKjFVW4W$*VI z;r(XaME+HLEYoIpQaWI8Ii-lz6-m@-dBqB$JBELS&uwmn{7*3ClpGj zk;oxs=}mQJbnfO_itWZ0YFz`?Y7~vH!GhVu+~qZxCu4@(-8C^6Sw*^D3-)#iMTfHl zmYO>;9HY-x(bn25ij}8ZwOL2jof<~4x~w;S9l^%Ao-I`9of8SXrcf;vML==3<|an6 z^{nEFBTDrjNaO(L-1kweGUpfHl1Dw(#wH|Cyb!my}i)5%zvUrrBWSxpv0o^dR_V&pD`SQHXD>pd-uV~c$Uz7hB* zD)?(yKE)03f(j(mfXwWIAR?1W?ZdL>tzrnhE!jziWdxuKNQ2Dx=>mE3wNpUU<- z-C3jL?yku_mC77g#dE9eaMJ`nJ9?`>MR(dV+4;sQJKMDov;GQQ{DSp#P8UVWB^0xM zWNtz`mc&^v`o04j!|G7kj##^PP+niOQQ~lXS=LqQ|@|wBd4Pcd-V}-ejNS$fzKo-pw)6Ib_px(HL zABsOeK`@%j7|kQ#PL{uECylgQJ;~ZKtsX z0ONXD?>g8{C@_5o&sJFf3W-=me#2cl%zL@n8I5L-21=pu(EyWbBv2R;F4zO)4_B0) za65Mq42T;IU|@*K0Nm7gK+Av7vO#R1=iO|v&wMRMSU(^PoLHo|08>v>mBFlPuVc2# zH?pWq2=-E3xNg{F6BrmSe&mo5*+0&pXfJ`85THGj=g(B@>Ks-i+%@%40apHrW99h7HN%2&)M zbeh^=m}qe9zRGQ6Qsxnr<7!Ie(U3}(uUMDB`AHB~!)9tg`0)Jr?{XT@HI?kD?4A5K(8p;|uwpMd(at98D zpTLW6)3RZ#D!WDphOrHph(m_63Cw}y;cSFg(+tqUdN%aK2ZSQD*$JvVo70F9%p)UF zt;H>m6Rt3B7JX7_!9KO1eQCi4wcurG!9um5JiIzk01lH{5Lj9;MlGmW+T=@7U^Z-> zE@rfb;l`ji!#3;J<~omLag4R5HltV{mPy-2vHFf{CMesSW%P6uYr_8-PZ8f>DfXe> z->?+z{P7&;lJW(u;M=g9_I<;AYCAVp3b&xp>Vv`fIQ0NCKy5J>l@E6#A5QjZEL7{Q z7I#w-HKK-TEG6RfI0aEL4mE_HCx~$~EC4?s`2dC1DewkM${&uSooTE+yPaDuot5Q| zi>4@}wV1p|vp;=*nG9Q@i4_>a!|;ru-Xju|p)1*qVFA7~ltR5pDf9>wiKT0vV_9|9fNGCr;gy_FsI6`vEDv%KGWB>fiM}4oI{AlP`~b$XplRx* z#kdZ*EzwTdsGI#V>DE}*is`BLI99K|&3gn-x%;z#e0` zzL=!YZ-*qg-(6uLbWc7&p>O5uKty;5rX%v#v~?T{)V90;^11Quh&TdU4&5Aw1-3Ie zkB4UyLruqHy?;M}29F2mn{bZ!|$|kJgb@b+F#JJKZ&?|tTz8o=!Ww|QDXQo zK^&pOjO|1->q-0KViBn}_G@8pv}@t0-Q}X)<@_Ms4p&9)q*J*G>?(83l_#)K9Bx*( z3^-xqX|hPZrd1+oO}~jGnw}zYE*s4?G45X4Y?sO!4c(m2{Aih(x#zZ>%uI|Oq03WP z4HiyirlQGpsyUVUvCEV+m5st;zHcfE!k+iWRDd{9`Ak-gxl`RtIP%k}pGanql!?0j zl%I*!r6pa@WFh?3L@JZTs_~m&Q$!Z9?x6NrxVM~3nJ8s*X+suhB-61h7RbubqbwLL zc_?YKG0#s>L^f91nbaYhg|R_2DH~{8(=t)mjE;z;K0VAv!);V?8vLv!)My%Vld0!4 z)UBtiX>dZbXu~v+h@oR5@uT}9sYwpgfs?5Aba0VI9j60zXBs^n?R;p7$Tg;Xk?TQs zrUOe=DnA45&Qov}pkmfP!6iYX=@hoYa^2s_yo`X%Y zSrcvs%6}cB2g_Mg9{&f`{0U>Uj9UK$UuF^E9!)3Kf-Z^N?^JOGwhyx?bOk1FM;f&P z<}f*hwy$6j)fQph%Y55So8_ZCglV(9adFxxR?+^(y7nPqkc2jSFgdQo0Ildk)mFj} zzfL_@vbYRmVXU&LD%7|NDA!mQ{ORP-*Tu#8q8-dSHo%Uu2MWX@5}vHlM0W2>Tr|YJ~NbB#)b|D?nf{B{ESk%hfei4q&(}H|AY!$Vx!pM-{&#ZFY zwZKtAXkRNFHRJvScHdE2W%uo69q~V?I?}+O8Sb6XqMupaAm>loZ$s2ap??F6%Vmw!NVH-q6Qm5&`YStj5 zUkBBxSb=83so13km3wzoi_L0rmK}PUY#xAc50pUBCx~3`aZtET?Sl(2Ws-0O6Sh4@ zBsjxcaa2@IK$R)pQEtECL-C6^?eJs)3Jih+Q#?)wX!#mA+zynxhSd-D$Msa}Dcon6 zQd~i3R@P`RlUa;;@I4-0B@SZgb;xxsb9eAFW*$wYnrmS~pHr)~tbay6E|V)75)335 zZo$JbT$?Bry&x&JmUj-Q(pU9XOcHg<6virpoown2OV!y?%phyQ8{rwK3vekSBM`|; zZCFa?7FAxy0;*e{6&I)A?pkyTF0w%n5`u9G_f&orAbiFLCDToAUY>fdL-6W6eZP*y zCrdg-)5DaD8E}`=Po$XcT91Hv#Vg70X6xDSxVj1zR8QLd-O$|<)sIym;6ThEzxAwf znIV9*wx(X|A)i;2u^v|G-hK+WgP7I1^~^Qw>Qlkc5O8=^43BjuriSVPVN{g?5*X$A zq}{;kH!H4+30PYp@l+m#rupM-nE?u(Tlo`hc|E*9>zBg9lyIh~nm^6jzZr`O zFnJq>IT@agVkdR-c5&ft04##Mc9k-}=Q!ZnH*PiIM%Z!;O}@}j!C4o9Pw3lGc{4Of zSeO)=z6ncj5^deYf*V<8KY-cGy!CHd<;Fe zHT*-HSxLeB_d_Qfk&$*Y^UF96EfkcBs;THncH)COrKxbqYv_GpjIi0M^1VEs|% z4=5ID#8Y9cy$ccyxR^^`u#gMvY^LqxLvVzf7{bnK^Ia#u?Vi>p&eS2yx(t^pqY8vP zekibVWe27=WQZjh-8W-I(9iZIeC!DX`aB(eWQ{uKL0g^|t1LTS*7m?9k6sBEc2^f> zX?Jb%+m71l@Hd4ou`fvkm`@w~xz9JU=S_+cWYYWF`Wvi}(PrVS8WRlDp+9taPrRT7 z)Eapn<~Y~^Eg?bN6~M`vENs4`ydG6pG=zLgA{vHWMpeI{@Hu!ac?IZ}ydTbe=|n1^ zYFnW(qbYSO3-%rL0QzMB5=F0IKKr0Rh+u3}nza>MNf#>IiZ%Zl&ZMmeK~(O)`$KV@ z@`{7v!k>I-N>#=e=l{vdrJv#vy5bRD#Uos>8}JmjXmN^R-HE38wNyIt9D(dOG*z1$ z$Ho0vk32DcQLm0B1bb=*!j^f+&MQDh+=)y^%eV|IO637!Z7OoeVD@XQb!-{Da;C9{ z*fJuXVD++PDu_&ZTgF#pKEPfH1dbx}%$C85qp{wxW$>)Ap0{Phz*~R&JE*uAFE|)h zwB(vkyB8zwXNc~t132~C#&qSrZZ6g){jlbC(#T0}w0Ik})T*BrKhf3br$=CGPxXLo!ycIT`& z04g_KN>6hTll$v0irK+B$N2mQ>Y-U2q08UgwW*5j@<%`9;d|hcA3P#uqDIm29qbGK zXu{0cJ zv0UcEw^_+A7rmapl?LUq)%?j8a@ozo`S7jObT{*E^Vb5gBaYR?b;vIR%q1@mAW|%^ zyD8?#VWIX@qU}(r&3=X7eDNsej!D#)EK7=HI&GmfyICz>eG9eSij7||z1hvasWQ3A z$1vgqJgf0atl#pqKWWAuG%#*f*V5yAm=kYtgU;_^vHYJu$UBdv^I@B4b{-q)?R#DD z6Aw=imu<1CYqJrQDwcoPL_T}b@fFu-!d|w7*^$pa)`IW7O8xe+CeE!I;jAnz81Ikh zjg4sYJ{A(*5R+0-)KA2G_qL*_HX)1qQJF7rY8d{0{(i*51Ic$k8_q|qr74kKI);8)LxNRGIz~qhU{Ti5;{(jhfB2Qg6~NPYv4-{*V5?J+o)*BSIgr;u z7Uk7%&408!TS()?Z0d86wKqgy(~fxP6eIf;@zDGjP)jxy%c&QHHn)HqV9;h=nIi%f z#d0@zdWlhY@*CNJYSQzAES`^!rUr*ta-)?Eu|dp2Lx?=9tyn|M4om962%DQmolY{3 zhJR!9l2;;9ffA8d%)0Oln^OKErgw=0F!~prWa^H$=l=bf><+U?EkkLtX+Sg%QX=Jj zKU1^AP}7k=ljSgr;JwdL{$bXzev3%6%ape`Zh`WRgf)a8r%toDS1rVBxFoh7mejB* zW5PIqU?Q+^bfWMA=I7ceQZNIaR4cJ^CAIm5)i8R(PNLT$ER$SOjKPpdC=>S2f^dkyVy4RHRsjVNJ)~d3o($>cCBj z_Edy{`*;|DCN${?tI~1+kmieWF`9z_X_HPJ>}^C>E&2}iF@{aRE3#td%)~My=fgOQ zS3ohJbYebby)R31&alc3;v|ew@ex+lc^djU+lDTWB9G!ID&iL$RQ5g!1s{KC{!!)^ zlr zjHt@I!Lra(oXl&?ZLw*NgJ!hBUyH~oZ-uUCvzK8HWDC=qQ^Smz1z~DU+A{$qF4<-t zWmDb?R|NF) zPpKeKO)(K0X|vJ*inoH%eXh8Q9(xfqFg84?%^HU_TN#>>cu?`S0C2t*Jjv+-k&S{_ z2*nO9ZW-FQTXu%%jp=h+8!|pkw_Onn}G+FkQ%$x2pICW5iVPMg1=g z#Smq5iWGuz$A~CHsS{&tijTE=;$h%yMOm$dAgz*-_b&X8VSk7H-^XA*a4Eu;?T-IP z(t+<3d#(sumGq6@0aDSXBC${rdCLN7^9ODaE&H7^{$SPHqyfU3fL_@qLMircqUopO zIPTy7Vvqg^qI&XWZOC8$M%DfV^5ee&`9Ik5{TF!-Dn3Jg`t5&_&;AIaBJcI1%6XgL z=uaT`2o}gsV^30o+!7KMK+Y#whb9Y2)vP$v1?4~%kqHD+(y9p)n+mnYhDt2IV(Sbe z-5=#*88+e#Zx?ykZd!g4f%qM7=(m#yd{w5`Ct35#*MI$-V{tF|-y&*viZ#&s)Dr%( zZ7=Z8Dq3&~hx(ax=@j#c^I8PYx=3vC#kN4`L1hIKtWdNF!D+K9z<8F-5BUvt61Md@ zt(AawB>ibb#J`wN-A^;$>N_*U^3hZ*Z1}`LvdNm~E=KjqD=YwFe}g7sc1$Xy<)@j> zXE9z2&l_tG#k1&d;~CEVx*Avs`e)E3)N?+MW^Z5~;kZ^GTq2xbJ_bI;zQQJ?gQyom zl27iWCTCb9_JYQp!4lACCv7^znj!xG_Zc?W{_qj8LpaMSJ1Wkpyz&T*|BHRg_e%8Q zFNDP5oSnt;e&!cyb(Vc2X6ISfsqMJ{5I5`3Bat6$M-Q=NM%vD&4SUqeJS4V*Zgnm7 zk`DkB!SLYdJvuOo5&m8UofSY|o@0LDGXyGAug*$HNeFZLVO6?jm&~`-wOM})bC{XY z8H4bl9Bn(tVuGRoQ8E}}hy#=sioBza;r_QA`+_Q-XA61%ZM6P8E~advtLIrHFWySp z3#=`FSC;x-V0CLJ6}IRMo*;0CE0?%t%3I;KYqKWXtax63+@*l z^7*!F-cr~JY`aQLtNTG4`KUL%%_$YnLqoP247^oJa*)%Zm{u_Q224WdJ!(BCzZJb5B!xo882aD^}B^`Ut$A; z&g6eCox{kNPGcdRTTf`{WgKQj(9+8+BB;%O;G6yzzULGA`!XBL<7d*4E6iAKYgLu` zw)wRG3gUTn=;0L>$e(^k+N*4FrER*;C3I>5?Z2w9d+#dPJ!ew1+1_l}!cesL^#+ zLw_IgE*Xpc7*376D(`c7%tQV&dF*&V3$L@lPTyAn<0HL_N4m&INF78mvSy7n`s4Cq z(SHXp!C=5%)!DWRiXt2&3abcWwv4duBjj@Ac7ug>yuC;DzW#+bD|k0ovi8QBZZw@# zxU@D$;7+`AVsY@sP0|w0RD1wyHITR2&r$;=0iX3A(G6Cu{$&w*%q&R7t1za6W|vQV zq^H)spDjyJy}7|mkrr7U_kAH@#FLDupQI6sjy@B^3&0%n2=^Ayjpm3{(d1gcAzP=~#V zV5`)lIV#si{C-9PI9 zD-X-2<+oT9+&;U0i-o7?a>2aWV09N8C2L@2$w|+kSPBK^@?ne5$3X=fLC8Y*zZ|7Kyk(2VubMP zg+CX0^IZD-4tUv+Np5#pUEg~<6e1$t+X#Cf1=TMi_dbXE+-3e{KU9X?W=y4NcX1}1 zv4ghUWr1$p&`OyO3cT1NCDEO`EZE&0Jir#>5`%se8VWWURk?>=JG*Al(Kbu5;RyHIg4X-O6P9)Yr9Oc#=JANNbF+t&k%V`aP22rGFs8?(a@67F0wymJZ77NiZ^`Tv8Tv? z)}Q>bqCa>epQb)x!|OLfy>%zNaCHkHcFyW$QnNvW;}ncBLsA-(6+zN4xg%A3%KZ83 zzSQC=o5%;Pr=w4?W_r`hr>vfPf^ZhZb}PS!GW2-!bsaVS8=mRkH1Ti5FMF(`Q-8A< zescpkKV!}L&c4*)8LPurttHbl#Na5e6+$rRqh9(Fe}VAQ`FYgh1*_?vw_3Edohu2AmS?2V zv=^+k_KBmo0|S$h48`A@Nw;6He*EY+WPHhL@;$34{Ur-67XTnJ$H%UwRWEUBl|V;c zvOfIYC<^9|JlU7z(QDh zG;j&GudVA*BH!qW`+94-Q@_`&rqfc5GSW?^sZnICB{%F6`) z15*-Ck?){#y5ZFG9U=iVghsz(x`wNA#Mn0XlJ_kZIuegP6N5!buWkJfg9B^^5wlMJ zQcT}ljih9rDt3)JOnuo}m!9<>-Yb$zj4GCEqbu13aoTx>aR=|0 zv1$|=lYvk%pgM%jt^1)qpqo+3U`?@%iwjD4`^zyi2Ie&m*T=Nj=&HOu1(HuVS+2>FJ21Fz-TEytmUW#%nt_BDKnMIBzpET=$Kzb_|vv?hHtm9f8qPOO;)UB9R z{BrcyLfT)u7_%R1v&A{F)l*>)MR*9XRT&)!%Ryhx+rS%guW|G4@v5n>$Kskr z_8o0jPY7L^|HejoAH378&DsQLW9CF19=C}{vtc1->>lW}dQ^-VKSxaA;AMgWVrpi? z&8O6X@lJfkQ`*emkfkVd^Z_pS5>9r(2TR9dcu^Xe>o zlK6gr$we%QUg|42c6bE`R35(&)=2+EBql8J59AGV>9!pY^nERQZMHMwR4gBR3x%f9 zoa!ilm`6H$9#nmu1pi$5gei=QxNYqyuSOe%1_mL0CKi;a%kt^DG}NAd!#g~poA!KF zaPyyFk5zd$dL#7aDAtG1db49Bt#{yQRbRdpy|G1vqDHFhU>p=u2h+${@E&9C6 zMI&fn8LqE1Pid?xZNF^pkYce>ov9nT;BM;_xWlD17)trW^#XDshD~d^`Wscm(=Ws7T zi%YBLtj#fBOSTd6hF)~Wk*6>t1vv4ad9V9a=)@D9PEJygyWS^{a$Lt>-=hZQcul8q zYVqNFG^8B=fTiH8^1N~5qr=om_J^1$_^bhTEHZ9zR2;n=-Ew-UbgLW^xknw`b`Zym z=vllMv}EQmx>cS}5-eXr%n)~i>nebTD|iW5P=Nq1iuZwQMF^@6kMV3Bfmx&AQ3u`n z^ndj?d=N!xxsR);`&54!b=UH4UPn6r#|^N+6_K}era!gZgEh;&tL5pe&ZwDqW1yw* zSiy#Po7T|#uF{!4N;1gBXtK&Za3ev{KC@x{b(-nQ19{JxwAGc@b+X=3pdZ|!N3OhD zr7n*@=cVBQ3aP~F@T=FTOC{ch&%8$KD{)`el#W*7RdLPqUL{_I)va??U@;uNr6BtS zNoj{<|4xvKWg;TxzvzU2k%&)lIpCs^-km3P+;xR(#4)$gEF`xUxu^p5dm3VXs62bj zK`~@pL&0wF{S5oWj=(Oahh-ub0tI*9EA*E;?^%~C%?#2_rS%U;J~H*B!~cV+Qax-sJGG(xO*-wtLwV!N^wxtPa2=1J941A7kqD>2j!qq5UM?1oSd_>w;JiUY z>RqDemH9BwUoLV@=Aa^m2FLKIcJshR8tutzMb1%541w20g+2($M+PUhv-Jxv$XoA0 z>*WopbjFh>HYkr)u&5J7xWOEc#i}5!p1C}}3u`CP!LXPd-dx}sOWXIEZ(X(1vxN&` zaehl}yfExlAJR8oJer#>&?YZFl^gm{ls8BB`jF9^kK%#DX`eT56#n?`=X%hg2aYPt ziJgV0Evb()-#TljX%R!fG57jY6zs#p%bJHlU(Jbh)0ex`P#;b_>Kr-v^7Kky-T55Z z>27!vlUL!vCuzMe567wW1z#S|z0VS&CJ|izi(11gPF#CiG_zU44P7zwKwLTS&OD;N z7cvlL1{W-1lTG2>@Fui;^o^LF4xPkX(TYN){6*F(ymgIvilp`Pk;qn^kSxA*U^Yxb z9_P^54$CS)gOKM=`_vr=e;V#o)*=Wj3$rzr{`DYD|OxgjN2`C*J$OAjJiLzcnre(wX*ME zI$V`^m;?;K_ll*qzO76R^bNxQuQ{` z=8m*g$K#zYo>kgkI!o_#JcxUoq<{b(SmD?t6srd59JLAHp8Qn@8Wg~TT-N<58W>{K zc8$)`q5vLNeTITqS2_r$4(cFS*AxjsCzc?)NRI-zSHsStTBsx>XEnc4951#h#z3(9L5UA>b`6kOQ(W)EnYR9ii3qX(#b1?pVrlatS!!qZ^74n zC5FtRzXAr}>)u5o+t;FUp*)f;&21FQud;GG(p7Aa(kUO9E#;Wx^bNARdiqbJpQEl-YM zBIbG%>_fwB+q&oS)e*T-HFz}^-X4tQja7L~yP(jRh(ul-s$SCBEtW*pkclMh{rgeA_<6ljs{&jgQkM2OL>++MH9j9Qa##Xs_wz-81?y=wlHh95pBU$S4 zEIyn&&PQmj`~oXg74o%y^1Nai5fT^# z<)(scN0;jJt-M(z&1}G{`_M^9EM2k3de7sE#OzN&VoiPM&jvik_r>ohgSc8}HZ5l~ z{i~h+6=2O}A-u0CIGP7|t~sF4SSu2X$9{mr!5P(px<_+EQaiP>y;|8r;4&RVy>AP6 z2H4koe)%~e5G9_mH6qT$um_aVoIJS4*l2OSL` zW$aR#p^Xa=16(eP3cMlgB7YC@pS%vyW-BSBnCR^JqX=agYrJ8D6xpAusQvSKGEk4KPI@hmRGY zZ|@W7R738WVK3^dV)5`VZLml* zz?1=ut%3SlgJFf*V5QnXK2}2EE75?yjN!q-xZ~Mm)Ho z2P{p)#}jf(Mq|%8F&g*fTvVW2sr!^}wMBxjgDJ0d?fDh*_DY~#jd&cd^DDh+#DjcJ z?p5GUi3G3X6qfYn$9SsWm{)DQXj>^qkKDmgJ1@K@q;fPJRYvoKhdQ|q#Po60!G#$3 zO_ga*V;<~-R-Z9C12hDq8SeCFV_v0lTXfXA3K-On54FIZWDn0mVg~Nt>O`Kx)~%z0 zlD-f*b+qR-LmTWpJ`PSlbu<@?24?*dwcQobP8t6G&FCv2{Gz{FKR~VDQd(b2AjJ59 ziOHB5z+oHo7s^iBP)ltWuC^Oh+U{i>T{7^PvTkCTaJWUjcx{MHp+QafSpG1KZa0Bx zt4B^vc`x2SjJ|5h>+*;&TGo_*$&Xee$5`Hy=Z&NGu{^-<{P+*WCY&3>e~-f@0(Zrw zT(5Xm`tvk5me=>Sul7N`t*V3qo)l`}`3c)2KMbYYu{_peEQT1ytJHbK#0afV(Q&-F zZ}VNy1ib$cyGN(=&k!yO;IJgNpapU8IOOK^DvnR!m)cTVGu|L7AOw9V{xcjOBB^(C?#$X6Pwhdg61%?#!$M~oLA%5Q%TzbZu!o-l+=RP z#0!e)E%;o&9BZl)?7AI zw$Chb7~Kp8jc96H-jB7Sdu>5!_1pKbeetp)s-$4r*%7unELa%Cc*l=l6u?;AUMO@q z7JHfzj&k!)&^h&1&>cp-+~h5}bm9$KuFO$vGt5SLm>T?lJgmMDI6iIQFa%)OogdDd zjQ(LLN2-wW8GPy+G+jVx)S zeX8_sdmtru=4~@F;uQDNgdLm?8?AgXALXtv$;pkP)20i@U&J^qh8Qf5ILk>3_A2?4 zv;5I#vCHTIMnyOlk;5g}Q;EanJe}axtiON)c}NTB5n@tecA5v_4|l*#!yR!w(Tl2d z;a)z`7`nU-qJ>4jMJ#O=Ln7$O1x3`l3vXLR4=lhQiX;K{5C0nv5MiTtsf)`OmF2e;WV%tPv$kkX-7ByJu64?-FZ`Xnlig%C%U!)t?tgp@JVe+ z*Mo=g9|lp&9z2n!)TB8*_)vU+=0gu&rQzuXV8!Bbd$SlO{c({~^rGb3tMZ%xOla}H zBr%$pRYandcNuDyqjo)cPp9%q1AT=Bl-HB{Gkdz&lUH}TR9&=52u`J0eZ}1Bg(>!3M)t#g_CkM}-;c-Q1@80x_+Y*` zn40zH&G}0^`mR4V1n$A~TYm%`myp*07*i)o7{FtA&mbX}$~1ofug>>#IyiuP@s*q| z4?t9~5q%iIgFT+(OV`H#BkoP$ddmL)@jCY%WvdWb;+;YWS)w9};vGeHLrf;?2qF9O zjxscFk@eVRUuPy`$v)Y}J~9l(nq|0IMuQ>L`~IJ=d+%Fyna_N_^ZEQfe-E#o=k+?T zbI$9$&T`K^?|aWpw9UGLn?|Z1I(W%}yy-wz)497E<%auOSoC?aY*Az~A3KmWV`r`T z&VkIm-UjPJlW0a(f2<_LxmxKdl1{MZHiKBzqHA$ZpV(y(uQLcAa4O!Hw;zOih3#Wt zN&H*+46?U4)vkIVo#vNh(=n0H8N{61b&o_r-GdXeV2dAY3G5mw+e_;nv~ztjFUctd zM^B3HvBIGS)}w)Y_R88q&ybqDpUt5P_}`wxvj^cmX^a)O8;n+4p{LfW&7%i1cj2j& z#}^D{by;OSKRTE-X`3MB6@0bnO4du-2*9@Y0&z&;sEj9b#qJtWmNVUp2O!gyLzvTm z!MHx`AFW&?=HdWt481)7F-6RiL=*nxFPqh`Qy3E8g(T*}YMkb5rOX%cUho6m3j|}$ zTpm$t5k*HR$g@ee27KQT7ErYdgklw_La8>CS{GD$?ZutHWbP5kd3m%cK#xjnctk-n z%~)8Sh+{1=Cq$DR^H9EjLX0QO3`?x1yoF2OKr)LVP(~3AlQ16zC{t0rB);TJR=3tk z{C*RbI1sjMKiyWJ8M%y{Gj_>+*^{j8HUBpcbX0tyOk<`w&$GPUFLTK@f4TBdf~ zd4HJQx7qQX!&tK~>d`igX%bmhzH@R}Z` zf+0?5MfsVkT{e8{Nc?Q{bpk&(lGSjnEvP0X`S(bGl?9ra!t}u7C|m@7@W4qp%)>tn z+u|5gEda_^jSlxGS>E#1FAnX5$o9DN@UM%!FeosZ>L5f*2=V$0zH1b#*XnCH8z$q` z#FDGgmizscnd~)}n|JauG;h&6)VxZ5d+BLwfpW$>>0YQx!+7pKn$__6+4_U!()3SQ z{ypLYrw!C$w3+2`cN12MlW+6sqgfnlr^jhKtWlYyc)3DT0ZN5}s_}NQtd931yt+%t zp3KCL0?;0ifh3@whj=I)W<_v)Zne4t)+S6u~?r(mFAPi z;=V+5T_!{{qRPg=D|;y2xI9m7MY2^==j@-tiH1+N+tEmP?xjZMt$(`6&^5& zO=CA2@?(>*!b|k!Ehpp0B&!e}X=KiP_+;kTehuAl6gZyOrim}rz$S>CVIP!Eof1du zVy4;UzL~mHl7H#>$_=z4Q03yncl^v`R@UdMu52Gw5;MGPwrS@)8x0IA`h9udU%|}8!+&yvSF4@494q;xX}=6JIlxO>RA6E@t|| zPVvma1&T)ZSIR?Jf$_(&SgdQr0i+>OuMA0T{xqN`jqPAa%!c@NFf~k#ip%;?n^+FG zMMQn*qfPur@)U}%hk`yd2yJC3g^E+(@Ju5sU*8td>NM;qs^7EBnnXLVdos|slSo-Gctbuu9``ukmf_j)ETH1e*|4b% zw!tu>cYYsmT>@*#&IWK(0;}3&Y){0|;IUWEwzknnz=S)2L!AfciS=95WyB_fgeI)vk1$Y5HODi3v=(#yE#*UaB*9S#;MaAv}ltVWo# z1}2Lpt$Yeyp#D6~mwwHvI=Z8~q2+L6^E>?{F{UCv{WYs!>H+;ULFc4R@(_J0@**Zy zOYpZc^M)qeo^HFtqX^H;<_k@%y8AjzCu*+~sds$*WRBzS{FaGzXA@>~@7cIx+_jEh zpUu)LzF!QdNXnydHvaQy#>mN%;Bq&S-o!Q(B4mXVQTq$6qJ>SG5*rtp|vd@53ElL z%2u#!p!5a`gXNinJ}-ibh}#Qied`T(oyU5)Iv$gIlsMJEbd;BwkKNm^j`N=LS@oKCs^h*J`>&`XJ_kaJ?!1+Fa&n3lHi~S6lE$GE zJ{R{N;_K(*#v0zbHJ{yK0qOkk0&I?jp)Lzq2lng-K5`-M(r&&czAE3bkoh@{{DJ0A z%UK1JsQpV_S-gmr*}w2gi`Y`O_fLLggwTLLTEy(x*gyFnKVoac7%CL!6&B;Uv($}z z&SF-@37@j0nLO6rU?H*YeH;#QW&9O8+b z1s4Cg0%n;+Y=;dg$$#NkEPnZt>z3drR*#qbT#%sW1DCKm&Xa!Dlo3u<`t1PULaL)b z=TDa4R_D}VUT!I?Q(^gGd1a077C#c7%i%ExFd^;I^Il6?)2?UxGOJm^)*+_DOW=B3 zABzdfil8ByA~dQ$raDuL5Yt#&`mw-PT!G5~uCbVD=ObZIqTY}+9kjVrFU>d@k5h9AwWvU;PIcw8C=6q?(z;Xu6igXcN@$PGjHaku3x zq@;ckHTo1iYP4t(pRk-=DiyGh)-m|99b~%}ruABZT`jgDf^S)g?dk~;{MJe=|3*FI zxht`+Sn3&%T!nq+k-K@)D%O+De99lK!o{S`Q|_@E4gO*mk6w*seS@?7)@sZow|8=V z3N{kYp5d)i&=V(};R{mOFc$romzp3nu7C&ePg?1zI-YpSo4O-z>+#OuBktH(D8s*4 z!zMA~_x#QpT-t3<^CD~MUjG%ZzZMs|lOoyT!XtMwTYhdWE7_pYsXQqNdEl;3enc<| z56EG>xlhXb{#tJ;LX=z_zc;}$E;&D>e5%Xv24twzOj2d z{qp=M5F0kvXVbGICESxbN%#oF*x?jCb}2u#4r5>-@{`9v{*6CI(ff7yHLlnr{(b|i z$fvGnGufbr3gfx~75L>hh1t0Q8;hf5W;}cQKoQQ}$QrXPDszXJ&s3)VCNOp?W8B0_ zSDS>ns!;3GS$YMASMOtd=O$Lo*c5u?pAxEnF3>2ercI2SX-O=hm9{47>!X^2`q3gN zQ!B*|za*Z~O4k*k9m&Sqd9Tfwn=a1ehc?4KhI_om7Us|F?(qRzSTtLHmvfC(U-``)n3R(?@J`>eBvx-P&-|XbIs3jq#`gO&8`;NyffmFS7{8v1 zZZCMHohY^jZr|iV$M3#oWq8#u1Y7>)PBxXjTE`#n#52-o_wd%c*k;x#n?Kuyao_a{ zueh7_sJ48!rpjq>d4V1`X*XZ6o3$}E(&~la$t<|0l2%^wojg>Fqp>WP#;Cq>%kKRg zEjwuy7J&ot2gCV0Y&h??QCh#Hq7#i9K(Pnuti3_`2lfc;PKW36o_m-#bL-FN?!oxp zc$qsM#pUnO9?V3KR`aH55SlOXm^3(WiHz0x`!rUr#ry9ISMSMs%o(R5XpD;z)}!ZO z#>}BG<0Td!=!8uX1&w9hU`EFkyyITBjeYe6&)v&9vnoIH@O|h%zg|>I-?b0VL^ip| z@m-9}YVMfz@Wog?Uiz13n-z3bvY#=gFS5lBp}2kp_d9?p#o4U`2R`!|W96ehvo(VKOg$jx4Us$NzxYclB?4^$&RP>_`kh{{w!F z=zo?MOUDiQtgZa3bgU5+wUH5xZgi9;oDQB^d zG5iN5E7x;ay_Zp$$>)&O!NW?-C1M7sOzrbvN~z2=FgRs+$2k;ojlz*ixc*NF+bQ9% z5N6*WRI<87OmCHGd;yG3WlY3;bATVY0Jn8Nps4$1Kq&23m}Fu$tIQ)}I;l*Hi(uaE zQ`8n+M5Vf`jPK8=)cd_k%)+1Xlg|#$zxf$I$VKf{nycO=G?%@q5qAk0?M+kEuM*Qw zW$Il9Q!I_&eahVU%*$Aa?A)WM-K3ZZm1*<~7#o%OnwW2QD{6O%>7g<{SHM`Q%v>cUHpwSE2NNr)v9E)T)Qd_*_G+a=%w%7F>hc29x7jDqr&mjyZ)0>lh_mH4Cltcnu|&TPKvo$&4$ve~huyB#y?8 zGY@!-RmhVRWdLn_i~+<`lp=E;qm%%Z>G%Xp)@mhYBQf(;CXbkAD%15Tm=}f2Rw^2)#LQBeqQ8S_pfY`lxxPYC+f7Wo%9MDHwz;!h&EPpkPlC!6 z&xTsv7!ebF;M;9wuoqvTNBu0-(d-94svt|nyQVUe% zuU?}<0SgtCj&Go!wLoDu5;I?A@`!1sGF@}PJeaSjZ6hXWKEInoPFIDWy@l}3JVhgw zm{}@Q^c|Q6D$|#k>&c4RZerq9ro?+No+=ad9{uOuaJpXddGA>#_Vrw)`xMPZ_h~X$ zN&i_c9vn*Lf$wn>B~K2|b6HcI$qqp^9+HRro+l}qDa0&MnK#4)s!Rtnn8&jfwGG59 zP?=m}nyX9~3CwRMMQtlFa};Kgwa}O~Rl_}n#@3m`+~U zEOF&+i$V8~I3<%+#4J;pKZ$9rGNHx6JT)q6>xfyTGVh3Kp)#FH!01POT5(ihGli3t zutZ^BC5-bJ8nb&-l&roX#-uX3QeYaZOz%>#``gI{?Ea$^><*G8uDrcHbe~P))9eLY z`6em3y(M8wl?itMBTiIeHW4#VWy}u9y12}!E?MY^tk+CXbboh*Zab9;E)C}8cqL{< zX<-`cs4@X%1RwTloD#FV4AfSR;}^@ooHnX3q%6uwA4?i)Id{sUobIy3mHRp&jWkBd zAeorWD)Yz*?cKL4MrAa!8bhre&c2Q1>E(m~yJ+0A(hZ=VPnsyyFZSZ3RiL~p5=+bE zs=Qx$A+lQgE`{$(vXWL8y6LLZh2JkPv}SEaE30OMv!E{@+fuouI6)il@+VgDJ6217 zZgduQu;!z9!wNzWdp+{QJwS23w1QBECAZ+;RuH^d;z+vjaO1WWg)*hruK$n7IM5^R&`g*v%3rX{86?61>Rm z5t3vyh)J{fj>>{p{W@B$1}LvP{aS_{4&10tdPfbZzV>!If;+efE=50Yiu>p5VZ5=6 z(75P9d^}AwM(`0XLOJ8iutElAWbMGgB;rV|Gz4e0h`qJaHv1qA)=D>L$oKn6Hn@pi zLLa?I@=n5QP_XSZK-|y-wm7JXnyby5ku~5j@_HAlv1Tp~w-Fy`r2-D%6MqWj0ab*u z#=Y9ua>o(7Rx53SEmLu}R=VT@q+_+xX6OoHq*hww2&C<_QkNRLA#SV{&pHQbl~A5d zCfaIaNBoG`7wxr`-4E$at@MwJvOBx#;Lcgf)`&X}3xGSFYE|S8Js&Zb6!;mAbT|rXH;oAAbyKpLTqQ9_`dt z8yj>5u?@7+M(L1N(n^n$7j3jse;gJiJ`d4U{ULerSFO|~@hrs0wBo%Yq~C<_ey%VP zi?@RN!5LYhzmpehX{9d9Fu27sT5&pgG0(sq ztHH!a291gHe?ja;t@QLkNDpYGyPiV2K`XtK3h7*}^kF8X6SPv7syOCSjM9ojvmp&L z@FQemQ*G=`Jnxysq#I0}sf~S1eQ~5#>PjQJw^o`;UJTYs>(Gd5zjO)DKim%GV60?$b(L4$wruPAh&& zbx#WB)2hS7aoX7NzaqAuRyvj@o%UMkqbHDhYo&2C=~UH9tI%|8rDf*4Dq!e)JT}={d6Fjnsk{of2@sciViizCo9GfX zZFVcAw)sn~2&^l`>#F#}+Mx3qNRMl!8#hAwZ7Uw>ff_8)#_DMHnXZ-oN@F2fD=kH{ zPj{{Kd%6+^Xr;Yq@~N$r@|PZhv&)7(F!{|J%R_;W@xYo*Q+zBO&twFj;U2Yw1}tw5 z?_Eon%igWzPiqPKAge%4gI6XGJPy!EH`6R|St~t7iZgaVS}I_19igmqPD@R#zM(1gUQ6y- zNAPssrH!3My=_%X9)q;TS=!iZRQFL@sozORBec>d?U4T7g6lnD;iN;S{-{>!fJL*oT`LWvF1T1LeS8MeIIT2#J)~c1r7l4< z9=dA9Rmh7iTJQ{*=w)Mrx(i zsblxnN_*1G6|9xMp(T8Mt#tQFNGoWiE>6_^f>vCH2I@0E?n+(vs-MOOE;QtiXr&`A zLAp&V9YX7uMOx`^w;?rZr5lz)Iz%gVaido6q80a|$l3tDMO8u9zIQWr<^;ySH(=pIOuu$$UIC>u0R8#{)ESU;_FD0#8H zR(gbnn71$gwSlmRnS1h>hQfUI&W-CD3GdkO9*Y|bz3`j#h=$nBozfUvpToN^_7?nE z{qCgc$|JpTb-dAyFYv}*;^J}Xd-c)kfXG@bSQVH06LtNe_w zZ7MWpbGpz|G4g|gc3f&Iv|`wov`C8c{yst&>)nv=^bx*f9Xl%-1^A-K_nr7?Uu>-| z?nLSp_#eJP0BhEXH}XT#T_2=oPN7VPYU4+}D-_>e8$an)q4+x5_;)YSR!$b_ z;s9(MUaifW1_;eNEUm4vWf<~0Ootw1jm8V2;skAc^|z2lX{Fs!12L>NKN28>yG|-2 zKSJYq4_ATq$O_wTT`$R3fvW&9x(sg^h;|7m$5#ak{n)S&Zrw__=UmG}V+!6hz)IGU zzi%bPvOL_4wuUG7wxuVeoO#R{Jdk&#wJ?Ucw&h_#!W6c)4LztigB_^Oy95g@*re)w zL9o!*xl(mazJ8SNj8fdLjnJMY|H`|!5pFTxAnx53`M+w-C$<%;vu7e-(^hE4l3S};{hFqjhD(|LG^;KIKS6(+FL zIB+aXSZ;R?7q$X%KZXf`Y=A$v>mc;0@^Bj-2QoQ50?@%2k%px0?&cA+XP(eO zsK%Of;rLF~`O2<>J8NH#AM1+grfd`5tDDf0UGnD3y9r|)BCzvFZlbr-@l4Xs z{B9baNov$x@MI;usRaggIJlM`oRJdWPSBwH&!nPLKFbh!+JV zDnX5sJ)7j+jH1N1Y2|tdL#^49hJ0vm!MCU@$`!XY-EBP#v1VGUIHGh^Wt}V!GSHj6jd|;3TR<{jMwcY z_;6#CV8dqA=UKf4f4esIsnVzgj|s&uu)Sh1z4VC?irLx75nbJTDv$Zabr-7ebrEQ$ z9re-3(KMJKkpp9RG&6@oDc}!m+na#e) z+2{D-s);9`76~U-BPYJD!^eM)p0u?Nx9%r2RcahvhqFiw@MpD2vjzJG^96`5#&|rgUv-~;JUHr6}d4+=**VOSec$_e9Cql=C?-D;^!@YJyK|1>3UA? zrycHEfvl|0Cyx@Uw;Bp9ON+=4sM8nl3iQPG+W1C=R~L11`2A6+`qaDJVYCp*qP_U2 z(YPi}D^E+9ay;V}v*RUVg)XdQdEPHpn8RFN^FLw*XJ_HHrsU&vp&fRIyN(fNvc~n& zwvG{oS+j0smD<-ICseaPfD@{epH-i17wg^Pk>iB6&VSOIm6)LMc5z!AhKgF?4HD5< zm;W$MXkO~>9r4U30KV4_Powy*dvwVBPL^|d8icMF&V20JZb&= zWWlZ4`)3-LF^szcjdkN0Z!|^tf?X}i`4p^9=9lC*r{K!hsU&xq3cf^1{>4WCMrbX{st<;aCv$fI}w3r^Nm3G9?6C<_Kb$O7s(@JY( zU^HQK#cw4XuD;kcKS_4@qdD--*7Lcztv%1*eg(h9FXhc<3KdG)Rzoe7R}iYt<^5&~ z<=B`Pe8NoOIIAzvLb{cc>0aS#Jy|2>oaKvW3GF&X(|ar??_mUZ^HTX}%gF?HdJSAp zEz59vB9?hhjDMCWR5re` z#s$O~`QWK^`8CId@&Z=*$cp$Y#nLP7`LP+`)Yt+9IERL|1 zpXf08caD)O*@Yl!p*y|LxexWT5!P4&j3x4OibT>#ifx2gHNwBGoXXok0B0nlAl2bv zR#d%%?o=1~J!Nc_v9DoPkUjS^VXm*7QeK)J=}glo6byw7ZO zyjN!Gwyg(;n%2va_;zn#e2{yN4G!;2xQ|qL`zkTq+2kOE>uR0Bn=Ow~s|C);HN?~{ z07ly<^mnAZV{sNyQafCt?ik{a;?o8<@bZhAr^SjH_eVlbIVJ@M#3`w{)!BjeMp4M*-3F<76mcdQ0cw0n%b|jr(cOo19R|FvO#=X0dGuOCi#=WIy&%{JWl8Q|NxZM;I0c2YRhG~7paKr8Gr$X`TId=QirXgx5*e)uhQc6l+-KKhva zx!tT>YWW3x*j&NIh=k+|{Yt?XynqAw=3vBo(ts3g89lo(HO;#+LkWWAExAplMthAe}XEbl<5 zW_cMwd;p%RATF_mOR$tmSH7pg-IIl8Mtd?ZsWtM&Cq~pY+u5?1HL!Yf#z)0<%znmB zd`>eYeo6p*b^|Y*hnc3}Ez}30i8)W2(yOQ;I3zf+EWTNQ#|OP|;EBOh)}3Be>JKl6 zn403PvJjjLAv(ccIzK%m{-k_bj~fX^_Xsl$)YJP@r&iMn z0dH%b5d9GhGMVUl7&HvW1OFUIcR;7Y63-dl{6UkOU9k1jz*?7s6Yqw^PxV5raizux z@jo$`rf%;a0YQoHLK924i$|~JqEa~OL;ipdE}>$^Te3Ai6G=kxN@!@(0t(8VV+OZQ z#qMS1JfTR@8E=(t@ob(@p$%RO#)?))w@Sg*xnYSNJc1I}k$qVQu(G6cvC)U+H*v*@ z=)m@Sy1L_=z0?^V&cb2{ub@%~=I!PSE`xtA4L2vA2z-qmkG3lgchd2GKCu7fp!|!} zF@%*H4m#`aJl$TznWx$(l)<31pNZ4MtiVsk7qG!2gpW%8g6WLbUdrILmg}N>CmM5j z_EN#s*c!FWnu>ImBZo|3I0nqWI?931YRG^iIp8#W?j`=HwIS+f(fKMlp@e%#;t_fR zF)ZOo>kQ;ThB%8KqfhQH@2`6w?H!Hjk9TI=SI@tG-{T!TDh{HyX z8}a?@vPA-ug50g+-bIYLZdej(oo&CzE2;bKxOd&{XZFRsVZZ0+kf^fBq1H!RNcWO0 zKJ^ffW>L??-HLLFG#yBx7NhU3oU+Z6-?~eM7lTaO`Z?X7c?L?QXFR)aQ#i6hV$G~{I4kRx)RRe@lXT#XSx94re3i476+d=SD-T>KC zW&%3)E$DN~2bdSbgAfQVoE{T-Z1*z(xhHYap8g|UWh4w=1M_zw$a52 zS5i4y;$vJOu@ex8$7h-^7AhI#aS~^rZ~;F77)-5jW=uLdX*{iSwEa!Me z=^tm;40yn}ySi(np?A24hAs*k)bCT}*P|kHJwL=VH*VS%%PrL11qWU$PYl*Lut z{!wv-b|Mlmr4CG{lSh?We}9Q@Uo1Eqzrbyfr6FYlW_~I)9CrNX&>5B( zk`B6WAitxcG_*_d$}SN=kl^Tva8-K1fcek`f;zJ5@=g50W*i#P)+^u2B^g{UDm6 zN+Lc;hC*U#BIQaf?k+}iT~YaBefls?|4t9FKA!b8dcS4fhUfYRCH8mkj{~y@}zaNc>&v_ArOS@NB@(o z;xO6l!*_zQD8i+nzI|0*eu+@UsN^6kyHjdY1NlUhP*asK*Gpl(XJb!=n)>P+;Bc_PXiYP`F%W#@!B@f^gBQO|3^(X#fYRX1>Wh6@ z<)i?b`;1A)%2C|^7-OEeMV4Dpll$$LSGgLU!o*@(3kPa{#*4tdJK z4NcTwPn>Cwi8RSOy&PR3L^^>BR~bx34)OQwLvfW6+o0hBPwL#=kO3W7PM-+1H_kYN zi5e3E-R98JF7PCdjdg{Jd|8$gMiDV`d{iUMAiKmY}l8zU@r6P5cb(HlSI zS#FH7M&ieU{H{b-JlddWmE^xp<1O@uq0~+wwx6w=WE)3(5y$AHH~#YC@Fmm331^pDb2)Ai$9jB z@aFSz1pWudV;~pZn``Of$`xC=%&V=2YyCsqD=S8uWCweR$1`ELy80A zgY1IrjcEbyCW9U=?SNPR{Y2ci$!m66+-IFdZE@uYO2n)uVT&ioq;r>-*H^OE;R0y6 zA)PTFKe1%_V%cx$Qd45YjwltwF6N{DRD|u>X?&O<;Wsjzb##=0vT)flFwN# zlsA?`zH;HC3KzZ~a@ZyIhPcpl+Y%9q8_}Pv_R^5cI)w=i*ZD$Ss~TdJP8C8I1i3o} zLKcSQgNNLwX#dqnp#XP;sM8s;8euZG+*&6b#jhY)%W>rqubk6Z@t7w4bggtUT|(pw z$Oc4xd;z&aPwajzr?Nqj@UxM=0(XU;?|iiz(|1zIMG5E>bCgbT9@}te#k8^L6u%)_ zURBZws9g++@A1(Od<{g3wGk)6MTVpUdy%7Pej|skQTT-%#%=VkG)K@OUm0@Xz!Hi* z{*E;5>kXOw;1em7;yXo zcy+P8lB31)bB}nd)k5otBQK%uAyG!Gj$Vu7l++dravt(>DT1e?pDI?Xdf=f_)p1l4wW>FMLsfAx zl&ji8l&e~M9E7MU^^`(Y{arkCrcj+)@Czu%VOn7+4ls6mK!*p}dv-=rHaLti%wq@q?qV!>u@KI&=(J^7xnz(50CU;G;?V>`6Iy zALvn659LSJ31zI8@L$#m4UAvm*h09(5S1hEl86Hp<>spLBg#@mDF`9(E{B$9F+D z2o)W6pRiOzc5)Mbb%PLq@9{Zr6ha-Gl}O9LT*_lN3PYL8Lw$#^gfhI|%3Rx6W8XyK5F#iWQX%(7>__mqYneE{sw$Bp05%jb2H6x=16| zzN-xQCZnhdOdC%6F1l{7qCk zYd@~8AMOEPi{lIHzr6*0tng%Ww{zDmLKzoBVU^RQGDTIH%sY{ab77UGq%u`i3FXsB zMLbf-upy)(|G0w+SLQpm2$dXC6%|XLYQS%95!_s#LDMqAJKaP$O8!bitb0%TokcIY zaQ#-nx65d`VLqA|x8FcH@^TmDbcBvF69$uCEY0HcL0peANqjE1y6DQcZxt#yq@@>X zS0Db%R-umLlIDptGM&o`8rd=A;IPM9yQ^XP4Yv(Z5H`Y=JERAsD8 zyDm>Q%1nOwheA&4MwN+C{c0)_^V)*I1=;zoRsDm@ZH(lY zD+)a@iH**}BC>l(;+4Q|A&Gwmb`4C-?S@Zz_J_DjXstZ?w97kdQR0z2A+~CR8}@1Y zw+mO;o>a^Z#wEBmMuHAw;(P__i7N=9mV7kwCAeN#bi5F*1$R{jl>mjqL5DzuE5Rp$ zrl@j~5e-y$qs&-@|1K_o|9%FMes^SK34bbm8%@E5b-E~-6c*;on*58z-=OeG+j1rE zZ*rxvAP>+Y(CD;z-wWRrGj_|)m8w6_m6igdfDXVLzvoJ^zk zgThrB3ET|%6+F2_bWX*iDq7@!Xn4qt9};HtM?!B#t#Mi{DT5LkR~0J z0(ziUA{Ak05XGfp6=6XNTgW1N`qro@kl?+lKw%&ek}Wx-hV7Js)ak_jllnFX0}L^14A=G zzo_{PMmQXF4RP5(E$!9Fjar5OHXq*lVra29BMFgz9X zG4=cl`KNUAWz_zk$n4*d8U8_mK1kyXvISkEa*gY z`tOIkTFNsPvgThG6of>VLB~Oh)O4N*KLADaR^qyTmM0NKYmj8KLGHb9m^P>c^ecnX zwu^$TwQ)t?Jc(%b=L!}KYh?xbf_j!b{s9_4D!gDOmI4WT!bl>A0u&pm@CiT)`}9+= zKf)v`k@yT%+vs7N>H#6N<>8RDw;UrEtwHo^ax8Kj)?NI==6uY zAeAyg!6KkU6ehGJwq#&2s5kV7s%g^Tm3MvcYd?_4ZJ>fHRGwrBAofL`)NeqZbiaU{ z;z-Z90g19f#C)LsN=9BtXi+4*9;NUZ2orB1N=KPzz;KH`@kExITMC~GgDr8;HA-ud z$OailAc751(2@ydY&%HF^a=DHAfD**mmi0hTVBlI1>8*oT293b4#XzFv!(=o{ zv8sTCZN}tDeL<6v(S-tXiX**nB zN;w76P}oA0kI(qR`Q@aY&&DfB#$)qw1(^M5nubSL{wnV8AH4$P?%b>@pui`7vtQS*>ZmjvC&t^WiWKPCJh%8Z}1>VIc|@zZYkpBaGm|Nqqk|LgW&kB+zsv;=epUN#=bpZQ>B zgT4aAfhK}tLBm0VL0^C(K;1#%pmv}jPz#U`s39nPE##oLYw{@we4r|8rlNOY9b=&c z1rrwxyCG41kW1mj|5n<9`FtEk`+qF_YgsKAP<>mT^yk(*sfUUbw$QJTHQt`jTjYO< z#sZ1|QtAJoGX#Yn2NnMYOFqyfknOj)#|Bw}{E=5{6)9|_KSY(jQ*fq=B)e1~Y|;C7 zap{&kX~W(;>HB|8#!o6N`PYd)ndWZ_`inGZ|9_V7@6(x3iKzuDG7{nb1$en!qejp} z!?#m;e-*t{v;`)f&XX2{@=hvb_$fbZk?n(Q;suPH3^XUmBA3qRNnf5q`;*}6nLMcz z1eQpOu!R3#;5g(TuaK`CH~=HOK^ZDi*g}>#!h+!iJ8&{}+&e*Z9x{Avzvv803u>;ZuzQ>v4^dOa$6(5l+grsHX3PC#K3Oln@R;7eu`C*bh1-}rq z3v{`7;W$g0{{&ICQ7VfsbW$dbLFd%4g(q2pN}h;o4(eLcEcJ(si1bRpu**gN-nd=R zJ>_7Q_7);zzTlb~Ar?}|k1w3?za%%Rg;_b8B?k}{lJXA>Sc0?xrBOprD&+y(3+h?M zETvU2OLLvz$?|6DD#9Gt6nxXlX32OM%qC($7OYvxES&^d61_n<4WGY^M&cmodE)Dq zvk?wO+NWhfh>u1%0&&D!@McA`G#PQ0G}}oJ`HUVFRe!|r3FBiY#PII~-D#u0t65r7 z1yZO4}u~mx%T zh20S@0eXe->;kk4;dCz;*8s)>DJ+6AKubVY1t=BaSB=clOX$7@xivIPZ$Kn7mc^eS z&=}B0&`K!uXbMkwqYr@MKt4^tHwF)k1MLN6gS-&u)e`Lv{ZG+x$ou=CuYk(>qC%i^ z{_uEn^cRq)AKE{{54CNEP6YuaxD1ME0hfWoK@?5}Edj-WGLeCWBEg>vG)rdCYtZkY z-#|A(mq4!q^63Zgt}wPIWL7{A;NAeVKLt`%Aw>`^0YA4jG6x<6Z3jIC-2|0DM#rIJ zp6e~MslJU(83VZ9<&}5tH+=16aZCjhqebrfR2NI1v;Kq!B*GS zHlSEnvoxiPSz6WEEX@bi0%deUq2UUJbj%NvtOnxb3y%7SXFKZB)6z@p0(8dtqs`KO z&|Of^|A2I{W@!Y-7I`EWKnka-lmaA*Qwh38DFaNpDwsajED@anFm4CJzhP24hFV>NQE)HO!Y81ga5=bRmMWyd zaJ)a>`BzMuFU-<)RL1D~1_{n1;Udr)|eS(Tmip~8OH*IL6R5;(7}*Y$aDoA^ z;f01UU}`$X{~2UpfJ+<0`or+TIAq`r*FJ=M4#5kaFkt47X2}mV*!Znk8UzDcz||9< zo24J&g~~{ud>U8YduFK!+x`B4_hl_5ZU5@U-6%iTx!p&FV{v+_fI5dX|ZnlPtx55K6;F&+Jn59Oj;RJY~ z9{AR1#%b`tK6tC3ec{o)@W9olC>$Q}Ml-L02Y!J^!meS)MfzWi>1L@e3|I{h z)Q161yOAj@o(&Jwf&pdG!N#Cp+=d6{!2@~lKuu(@2p*V$8oHpvU4+4p;DJl5~3B8Xp|2K4u|0L1hrRgwEQ%e}q9J1O4&g0WI+WWN|Aa zLb*~h1nI!b6cLDHsDP2cTwpTL0jGYX0^Na`Kp&vK6&~yc1^^?0F~C@0GH@0!6}SSJ z0ZavE1CImst#hSoKri6a5-2|t0cV_Rk`43(Mh4|d{ekJg*}x273eYPU34t-dSHL)+ zEnWl809FQiwZU`Az!YE*Fs3a$Nb$e~pxyvOfN{X%BnLh*}UxEGiL%m8KpMPN42$^m-qQ4wG|us_f%6rKRagh3Ce?*LEY_@PLk zF#v&d1R{Xhz!;!ac&@Y%sPBY=fSEw6(unU4mjmN^z#w2cFa?;>6MY0|^%)8PrUG?k zP++fINl(~2SLzB(2gU#$BH&qIK%ZQrlum)Z=v;)K!=+_Wa3ov^j08pklYx_g4*k&C zfZ4!YV8$0P$O#5TA)c^53BdX2#Iz!3SaXL3f(f$6~HQOE$89*cw(pg#tk7ML& z1E!%fVVK1L&jFKxnZT5Iyhcz3o|_BL0IlZ3P+%Nz7cg}Znxrc7UyRNPG{!7J=RhDX z1#PTH25Zp?fe!1?34xKoXp#dHfZ4zmK(F;^b6_0s8ZaGb<%)Qq2hd>ynh=-@j0DEu z#fufd6yRQ9$OXbjEwUUOV7g zpgs*XsR6ycxzc!GGBAbseQ+@_5|{(@I)IwigkcBqbU2K1J!t$RFv|lq zIf4YhnB!=(T2TBEt_8-O!uYO@jLx8w0W;6$N;iS27vS1D$mkas?g{xdG#OBT7wPLF z-BUDeJ?H_Gfypo7(fa7Lcxd?)F!en;snH8H%R@oH3<))CfP!@RH4hkIgCDya!evG9 z$R43B9@YVd+u<2tU`&ZTsd*z5h%=JLH%85I4%;c9LwWp$fypiK^MO@U6c~W#AAoVd!N3&YWMDcl8JG!N56lR{Q$rLV0)u=I-vN*45_Uv9 z(5e#*0P2A^f#JYxU^39w7xA6(KpHTv3w}reI&{O6Kq&}#b%TY#NMHsq1^57%4$J{& z#NhWzKV&o#1_D!nlY!a5CBOhY1+pEO3d{tikIs``0h43#aAPwRI0nCq0>j6m=7e~j z;wCVCJbpgXH-{yY@CY3+0JspCVZyI%{&4Xecn0WzM+H^@Gw`s52+Up#c?)=EISc@X z<5xPbmXPBIw-jLVK^PnW{UdqU{zAUT@FZCv48*TJOMn>{!Q-l!ZM+OuAmDI?o_2=o zfGdD8H{i0?@W?H+E#W;pj0#M?k6&zqfRE8ffRRt&Ibh5)de9gJ{edO}Cci)pfsuK5 z6s;`^w!)1!Fk8SL9nh-?Zd-xI6kFVf8c?tuZYzPwKm#zN7;cDwR>g6@155?32kJ{8 zAut(OHU#k{v8N6Ua6rbuxYD?R28KJ~cC;PxamJlKFtR4LOWVUx58Mv{Y4(s?5u zs1HIxz!;zi%nXJnJ0g7>cn}!Z7JD4PNCOHEM+HJq4v=;*BaH~8BCrIQ(heC=M0?b{ z6D$P=5O#p&!0?XP*zJsrI%9hinArt;AzfflH)I5Kh(NloC=l2am>!9}a^m}8FBX{k z1@=aO$x&$HZipX%dsDoU^I4VfcjYM zWdKvgz#~0j;3RC+0%PK^O$khn$ENRR$nPr@2#lPA4Hn{y;f|pf^eae4X*L25xRuNR z>Z?dn+1@B9K$2zy!&^zxHK12}N%Dw5!C{ir9~jqBl2U;VpJOfC2L?vsj0s>$lq4kp zY0WDFy|8fB^@aXdk`(YcJO!Kuq<>}Qzr3E8uA+;fQLcm;8E0t}bs)gy#i}tVxeAta ze1MnEt>F?qmZ21<{-flvpk&DP%p$e2s*K=l(5Xgzzn88G8{C**_tLd8K4_dPO;FV+ zAAAGTD%=|jzXCEk-Xa1r*8(z6$i_qFSU?s4SpsAp1!P?zOMwj61Nk47fy3df&Ozpc zasEL#8NzE2R#)_B!Dy8X*(=B@6p*cl%&JLY1NTB!0S~npY+6|7 zAap#M^2g9Ih9eGFIh@m0$|0VOC}oQvRn9>`OBF~*GIz*gAj8BY|09_XWZNM_hyEZ7 zg)9fMeg$NakahLRmCma&szmo?T^G=?HhHq<~B8&|B9ZD4WgHtV4i zhd9dH3UR$rWs)C+dWRC%N-zYKXQ;H(o|Q+<{AXHd`*b1 z8XwVASDmd0;)|Q={3>P#VGTz)p*BNd9C_|wQS`@P{d^alkEED(ST^ zm1)gZ%N`_MJ^IM{HoSumbPa9!mp;0NtgL~rl6eE)PdM4YuaJCv2(Ra>t5{4=`PiWg zv?IP6^J>pK`=X+k+w(byXF2WpR>BgY{6}A1Jr)tlU;FAhu&1HCjURAw7+>tCt7nso zyD=+1vahZTzv-uQx1pObciw5TuFPVi&XLz@rd!QCy6`j2P`0i+H#gI@DA%<|u2h=J z$3Ln!-493h`2V^(7r3aZ?T?=s_Mo8Q;ERWfBbt>d4yYieFrcEC4>VFT!x7EU5C>oR zjPa48S)rv%%WAZjdCfbRg_?EIYvrq=@|JnMh0oNyiQWEPZ(;m@`>b`+*q;xceZFh$ zwO?yL&Ym+4jp~br-#Ug?^;NN<$Dp&wpdDjXTl%Ok5)EyA)3vm#TtT7}V<@&C+|S6P z%zkRVeODfR&=0*9{Q!lhA;ae$ptLmH&wY?qrJ>N#7($$c(D-Zp7?2N;} zy)*yMvyTrf7wlod5h2FaQEv5#KS3PJGTh!HKXq&-< ze_MjpdMVSR3QFH=ep9B$?P~lpcf!q~rda_0tZSgR3oHn|iID4{^$y{m=?(NwfnA5* z?U=80(0aA_C!6)S{d)r{Jtt4ZHy0_fSVhyY4AtJgYa$hAp!Y9Mq*eMlbP~Ou0WY~8 zS$QNwwYJ5saNaCElAA7j3^vOq(yy5qADdv%>S8_C>Tt7lB6aDnx`eKNxURmU33u(B z{#aa^meBhCD$`y#lTP+WE(d4Q@BP(Od)XYCIsiUV{upf;0Qs@GbYXxhu+R0=kb$aC z>v2o)P^WW8FlQUA5WAPq^8;0E>=nrRYQf+L*G!oS0+6>{N}mo?t?fgX(uIL4F0N=P z{=*2ZXHK^Zpvmjz&(IAlrT8qk*Y2e>1lPDK=(hVqcZ{j4^YykijDt(*=`6I=;AONe zOZAC6whU|TAG%XbUF|x@p*@=5+|A8ao$SX~SH6_3j@azi%W3MpYP8+I zh7R0|!e3lNm+!>@zH=?b4#mB9EoBZ>`Ht#m>+0X7r^cvGba<#5WOuEj=EEQ_Tt|I| zp|OvzqsND-QTCkm^u;h$Z1-=V%;Bmy)OZ13T(!}U^D!{L7><&x-c(l~OC^KhJBcGy zkI->1)z!adfycJ*^6?XBhnm`}Pw}sn0{mFE5f-J*2YY+^zBT0G&ER z=V!0g`MGqOZWujL^y5P+KHnXUH#M~mg3jYQWPQQhCgELa(*(oF14|XAFM70e0{4SI zq5($Ta=U%B&O?t@4`j!qsW@My*;~faj(m*r!ZvtqQ0pS-^wrRr)rNl0SFs6Yka@HK zL6^hmj=c$(wX@T8Z3$Kd)}#&Xco6>!@B4m>O28{wV^Lfoq*2Rlt%APP;n83NFPkZvW~-zXPk6qf=cUh z{I-a^krCeh5ruHzdn0n}2O{!@+;Xog+cpVh8cxFtRFT&us?KnupaZp^cLb zlK*!FI~p$Ltfg1N+3sB#_8fz{CALRIRBh7XUUVN;N6E}}WKa*7%e zx)ss7*XY|RD&C=wdtN2SR5jkw6DKw~G-axq>ClHcTj}&vwCi<5w^w$1RCTvGy28~5 z(}W_G9_~Xlch8ObbWC?em=O*asWy&XfH`yta>sQBVC08;AzzQZXD#rQ>l6ug-p`C;oOcb~+~G!C-A^(R9^6yd2S7yz*NX zK~ImtnEUs1^-7r6gTZ*}M!k)?rDN53->2HdYy~?7wjMd@Fcg3LJjj)<`P99oO|djL z{_f_m(qr5OrfTqAE5vostS49w*g2Ch8w}REcTYP%fQM{ z<5=%jMSbG68jAPaqPQJwH(2~FtP1Qn*sT-faj=>O>>}6|FiaC>(1oc3Ym7s(b|xw1 znm9AjaDdHO&#ZALFc;W>TUc+fabUM*JQS=D?AAv_FW9RM^k#tt!EUWwSv24&z{eyL ztQv+s)*DQp&%pD{F+_KhZKitE(H9fNAu5>(FDXN`E4@EcJ?OZI=um1m3vQ=SP(P*4 zfC$X}NZDdmrYW z&*muy?VF>PIrITzPa61`8WUQC==D0<@|Y@i)FA#GwVI2Pcg27>L=)yBmxYLyQN>*K zv12gK2~W|Yd8%WWcHddJbuy; z8zAV~0&iC691!%l-wsv?cDn{x&od$#=SRTLytq9C*}@hye4)w@)hCo2qG{(s6h@y) z7RBIqnbeR_eFC|u4W%st*Qbu2wlsf{$_(v040B35Ijs}VmDPt6}!L&8rXz7n(b)g-P!_p+ggI($J<0>mWi1@*tIEY)IQ*@vQOV!HI zNvK2cuXMQ-yT`4F@B4rf{3E!eW&b`ZMCb3p9T*$~j;p5?!Sui%|kU;>T+#bO}mu4DmyFf9A<%wAYWhYTgn! zX4_HvREM@KK?%HwPYR(6OH`lm0OBn}>+A1sK|9dlG;FDA=b3j~#C6;72*165L>d0d z?Ku&(HnaWJeHix9_4N-RYuQeW(C(|}W*20gV(ROMHKVkLRENr=OI4)JF)kNUI=xKw z4|^3+?;Z8^j%OEVJ{lHySla-poVQ$+Dtny0^4C@Bg3Vs|7M)qG@@-|5@sw(B`S+pe|dstAtozXVp+_gy2*tFR}9ScD2K1bJ4~f zs(VcBDpu>{;OmRH*fHc>bb5yx6ytuD@nST$4nN^fi~W@GR}}dvDTN+MI>bOti=Uwq zEnd?=e2<8qrOjHru7TJqVxrIgidEi)pL0-A+3x2#?~gbO<2Bsc@F}#jPWv#NN%#kn z+IWHWF9|;?yp|@wTujv_7XKpRUqoC*YalLlzs%wcsZu9gb&Z0XnLmTEuS2467yML* zR(eWB=qud&74tPsnUA*k`^?Wu_xOa@>@qpsQK2GBJv${aggU&4tFCg*Z(QY$jE$|5 z*#9o;>r+r2J{0aTe}Bp_+DK-{h36b#{h~(l9BsDn;3ei$LOH<_;hyWv+u~k_^}1`Vy>M^R_Cr z*{Uh>9VGJq#_FFzS%(i%c3ssP%6JD3T23X7bX|vL!fRU445TY{-NAx%so!9cd%G}Ck#zc3adaC8!q|~; zvSWrPgjWgYJ(pp;B-|@JM)WI99&7k_nRclC9u;Z#hf&fVJkWW@P{AIR6;qSPx%#Ct z_n@bB=6>402ma+9%i?V!E`eCr)j5v&>Wx(8nahL#&|@@+VLt(-MWk}TD%vXZ-}^s*hm&}4OQ$_-AmmoxTw}6P#d!)ObI*E~!^K z!7AuU;U3}Ei29G%snt_D!jsZ#H-!7#%m)Y$$0MPw6d8DKXLoT+#w{VxO&6TW36i8G zI_m_`uNC*QR{V6~E-8>T-13B<5PkHN8A^nE;O=ljJorn-^F?q-62Q&P@GQ74Q278Z z&3np$3M;0YBKPBh z^%EDn@i5KUuM)6;Zr+bIv4-}5X8R9w+7V*nnwY4*k4--!Tz^8ZP5b+CQCA3WF5E?l z2VgZw*#}hj*sAAP++4H@M9YYwwFgudR{U=cU_ma&?>1x4>6^PgHs$w z4`N-0+LdBf_-(>{v>4`Ma?Z0@W+}rhVi#3taqXil9wJ6^MC_;2T3kMrGtCh3Oc8r1 z@*u>{Bg`{J{DO#slmRiC{DFh!PGd9f?4ESmdl3CpK8v-JBvB8vi>^ow**=6#_x+ru zTf})H4pJh-iQX;De--fz5myi6WHxDrCx!cI-iPSfz$_NG6|w%fOK0j_#ZGm%4B!)1 zZZacHl58#uchNPJBDVH>=Cy3qa3Z-jSCvcgAE`837n<-9p3nlc_#@Rl(Jxhk4Kpke z?VJsK|BCQ6!r`$NdZ;OXIhE_+Xz%YGJZYz4KrT+Vsk6JsqfRp}xH zXfwq2s?oF;#$s}cxX2Sl?IBTflkE_!c#4@15buirUtZZ{tl*B-*ycfLpma7}XRH$o8Fi=G49JYD!&dGeCYq|r{evy|cw z>qpHVY(J5E(U>gq!2LA!u$qH$eflt*rb-rJyQqC{nV-hV|0&sC7w)CIj$pG?yNG#D z5qHFnT9?W{ij!G~n0&Q!P6(ZyXo<3xrqmJVRd}!5+1| zJ6%44j&thAI0S2?R*7;sB_4&3IX__|@;GMbSB=fGj^JeHrDqyNNz2ljqv-GI1sT%gVib#74s|$&NwtvQcYbf#)6al9KxD4^vu@)99Gt3mN zYMI$_B5#J}!gF%Dd92;^I^o`hwD%Lt%|5byit+CBvDtRgv-&-3ow+fWl0JnWqVV^!01qTECXA!CXvvA#-@A8G<6l zInZaQx`#%72CeGlEbS&*S4GQ1i$7C?vTJ1$Y9rztR9WXyB@;piuAz}H+`ohsWi>XY z2oF$Xwe~le39O~^4H3IGaWYwUjCcM>R)S*i{#4Arzp-?`~hHBNe5vfC=KiiR?B z^|L=mR<3=_t;yv{5j!)u$Y0ANtA2OgY-M^A$znY(@@RiRtez3EKbL;`9DU`d4qvFK zR^F*BFA}x5wy=UDv=+UR5R0_O8jS_WZca_=EtkG~@ z3gqMp8r3g3hRIO`T{ur0UT9c!MduOv^gcP)s@G4Uu``lD9bdQxloDjEW z7%JQ?hB^y>$kKnG!92-ezVM)r`CX#_wD9V)47TeFDrLNE2|i`Pdwen8rHtcP7>-)@ zo?!l^h|dal#dF5D$$-5|n~^N0F=lezF3xGJ|A{1vrOzQQ?IB`g3Ue%mW*8v6c02c% zjCvy%Jko#{{KP#dTX*A8(RWL2t*L*Z@S2%y_f@gKk$D%xBeR;-?{7*1BbKYvOFRV! zkN-eTpSTl{oZ7#>W2%cZ%CB60WeU>*g}V?XXKUgOj-( zpIP7a71rCTNzA*8JPz_m0~5>wa&(ZelMWo7Y~#`w6d=f!UFp*~qo@CvydcihiMR zKOeA`>K72qFkb||Z~1q#l`d&HdZm1^@x(nO5Qe{)){Mh{HT# zaoOfIks0qf+J6GMZ-rR#61&rpYN;JrVIxaK*-3^FJTTL-RF z@MY#3C0PWx=~a9ZXdt;6+KRqcwkZRI-zECa3a&hselw)8ewI-qv%q)}jF1FX4cdCL zWZ+D*nVP@Lq*9`}?%dL)qEY@YHuX=jST5Z7j)BZ8#>>KUeqw%59R6)^T}5vLe>@=i zt`)3!R!VTv)NfO2c>l|F3`oXjB!PPggJHt23J=Q2xFP(1!ad^H*8JQgp8KL^@t^Iq zwfJ<+OYuz(F?6R0yst3G7v58N4i6c_>ZDBJff=lrZsV(0xFK8Zd17a}@Ze?!Tl7WO zy_DAc6E3+{kZoO((2JGkC~G#u>V9i=&kv$^$RE?#);Ag=y?Y0j>~J&!U!D)!S&ZcybZ6`7qY zO8#?f?ISTdS-7(sC;mUa7_%*XX`4LJUqKb8u(WOwak)JFJSpN2gx5A_JC=(aHj_Ed zL+mmKL%k>llev=OQilElo}R06WHsp_hVKT~P9JFC^nFA>Agj{PY|hYM;L~<$(lg1zf3@t)VbD@CZiIax&;Hyr=IpHVY9|7h zH1(ZgC_%XMFayaSr>bno`x^7BqCei^vLjd~e46m;D-2?#YvzN~vhP&O()FU@l7ZG< zQU+BPPb#Uw;*|}tc3M{hr_GaO?xUP6L9&@ByhgS@ z&4lZ3pXx4jy}@9y@Rh>7XBkK{8XK5*!B^6_ybC44Ym&g&$l!MAlD8@Gw2JEUv4{g* zxE&jb3wHqesOYMreoMW0c>EGwc?x-O-s?XUR=hc-saVo zN~f=&Vm*5Cy*;HDefxtN(ZX#^ojuJrzIgVuf`@0!Oh`%YnM$53Xv^eedh7~b8tFlm zS5$wr@NZYtNPCaoH2mMH80CNe-)b9#zN@gBf;L?8BVJYQ-J3fgCCSXbbx3MT@AX$z z2b4DcDqb;xdqN*&Gm}Bc^-pytCRXmds(!ky#mreVW=${hcm@s4&g?%vDIqDLSLItb z)bqB=f_n9dt#W|Paj0>nGu+{|*{Z0diKBaDnVjrc*N>?}xzSKjjfkh ztm}EY1{_`}A2Q%wmM#&FEW2+G&4_R$L|X5(Sl4q@5#i|GJWm#Q>$*F)@}~$#nhhVa pCpsPVwz-rTiL%c<&6CLW&a~|f6-VWfj_5F7V~1I=J9I0w|9^0IWXAvi diff --git a/include/onyxutils.h b/include/onyxutils.h index 1eeb305c..50bc830d 100644 --- a/include/onyxutils.h +++ b/include/onyxutils.h @@ -21,4 +21,7 @@ void symbol_subpackage_introduce(Scope* scope, OnyxToken* sym, AstPackage *node) AstNode* symbol_raw_resolve(Scope* start_scope, char* sym); AstNode* symbol_resolve(Scope* start_scope, OnyxToken* tkn); -void onyx_ast_print(AstNode* program, i32 indent); +u32 char_to_base16_value(char x); + +// Returns the length after processing the string. +i32 string_process_escape_seqs(char* dest, char* src, i32 len); diff --git a/onyx.exe b/onyx.exe index 5f4d6e7644abe6a7a759abaac65c52e39274d771..e582c54b51105dd7ecbc84208b3519bb295a500a 100644 GIT binary patch delta 75508 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%0D;w&;xyALtZ1EMnu&is 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 delta 75811 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%0DpV+u8O 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 z@aqXZvgallocator, sizeof(nclass), kind) #define peek_token(ahead) (parser->curr + ahead) -#define STORE_PARSER_STATE \ - OnyxToken* __parser_curr = parser->curr; \ - OnyxToken* __parser_prev = parser->prev; - -#define RESTORE_PARSER_STATE \ - parser->curr = __parser_curr; \ - parser->prev = __parser_prev; - static AstNode error_node = { Ast_Kind_Error, 0, NULL, NULL }; // NOTE: Forward declarations @@ -128,6 +120,9 @@ static OnyxToken* expect_token(OnyxParser* parser, TokenType token_type) { return token; } +// CLEANUP: Currently, this procedure uses 'parser->file_scope' as the scope for the Entity. +// Except when there is a block stack; in that case, it uses the top of the block stack. I +// think there should just be a scope stack that is automatically handled. static void add_node_to_process(OnyxParser* parser, AstNode* node) { Scope* scope = parser->file_scope; @@ -144,6 +139,7 @@ static void add_node_to_process(OnyxParser* parser, AstNode* node) { } +// TODO: Make parsing numeric literals not rely on the C standard libary. static AstNumLit* parse_int_literal(OnyxParser* parser) { AstNumLit* int_node = make_node(AstNumLit, Ast_Kind_NumLit); int_node->token = expect_token(parser, Token_Type_Literal_Integer); @@ -193,8 +189,6 @@ static AstNumLit* parse_float_literal(OnyxParser* parser) { return float_node; } -// e -// '#' static b32 parse_possible_directive(OnyxParser* parser, const char* dir) { if (parser->curr->type != '#') return 0; @@ -282,40 +276,30 @@ static void parse_arguments(OnyxParser* parser, TokenType end_token, Arguments* expect_token(parser, end_token); } -// ( ) -// - -// ! -// ( '(' ')' )? -// -// 'true' -// 'false' -// All of these could be followed by a cast static AstTyped* parse_factor(OnyxParser* parser) { AstTyped* retval = NULL; switch ((u16) parser->curr->type) { case '(': { if (parse_possible_function_definition(parser, &retval)) { - // CLEANUP + // CLEANUP: It feels wrong to add the procedure here, I think it should be handled + // in parse_function_definition instead. So all procedure definitions are added no + // matter what. add_node_to_process(parser, (AstNode *) retval); break; } consume_token(parser); - AstTyped* expr = parse_compound_expression(parser, 0); + retval = parse_compound_expression(parser, 0); expect_token(parser, ')'); - retval = expr; break; } case '-': { - OnyxToken* negate_token = expect_token(parser, '-'); - AstTyped* factor = parse_factor(parser); - AstUnaryOp* negate_node = make_node(AstUnaryOp, Ast_Kind_Unary_Op); negate_node->operation = Unary_Op_Negate; - negate_node->expr = factor; - negate_node->token = negate_token; + negate_node->token = expect_token(parser, '-'); + negate_node->expr = parse_factor(parser); retval = (AstTyped *) negate_node; break; @@ -371,11 +355,13 @@ static AstTyped* parse_factor(OnyxParser* parser) { case Token_Type_Keyword_Cast: { AstUnaryOp* cast_node = make_node(AstUnaryOp, Ast_Kind_Unary_Op); + cast_node->operation = Unary_Op_Cast; cast_node->token = expect_token(parser, Token_Type_Keyword_Cast); + expect_token(parser, '('); cast_node->type_node = parse_type(parser); expect_token(parser, ')'); - cast_node->operation = Unary_Op_Cast; + cast_node->expr = parse_factor(parser); retval = (AstTyped *) cast_node; @@ -457,6 +443,7 @@ static AstTyped* parse_factor(OnyxParser* parser) { retval->flags |= Ast_Flag_Function_Used; // TODO: Maybe move this somewhere else? + // CLEANUP: Same as the comment above. add_node_to_process(parser, (AstNode *) retval); break; @@ -520,37 +507,14 @@ static AstTyped* parse_factor(OnyxParser* parser) { AstNumLit* char_lit = make_node(AstNumLit, Ast_Kind_NumLit); char_lit->flags |= Ast_Flag_Comptime; char_lit->type_node = (AstType *) &basic_type_int_unsized; - char_lit->token = expect_token(parser, Token_Type_Literal_String); - if (char_lit->token->text[0] != '\\') { - char_lit->value.i = char_lit->token->text[0]; - } else { - switch (char_lit->token->text[1]) { - case '0': char_lit->value.i = '\0'; break; - case 'a': char_lit->value.i = '\a'; break; - case 'b': char_lit->value.i = '\b'; break; - case 'f': char_lit->value.i = '\f'; break; - case 'n': char_lit->value.i = '\n'; break; - case 't': char_lit->value.i = '\t'; break; - case 'r': char_lit->value.i = '\r'; break; - case 'v': char_lit->value.i = '\v'; break; - case 'e': char_lit->value.i = '\e'; break; - case '"': char_lit->value.i = '"'; break; - case 'x': { - // HACK: This whole way of doing this - u8 buf[3]; - buf[0] = char_lit->token->text[2]; - buf[1] = char_lit->token->text[3]; - buf[2] = 0; - char_lit->value.i = strtol((const char *) buf, NULL, 16); - break; - } - default: { - onyx_report_error(char_lit->token->pos, "invalid escaped character"); - break; - } - } + u8 dest = '\0'; + i32 length = string_process_escape_seqs(&dest, char_lit->token->text, 1); + char_lit->value.i = (u32) dest; + + if (length != 1) { + onyx_report_error(char_lit->token->pos, "Expected only a single character in character literal."); } retval = (AstTyped *) char_lit; @@ -801,25 +765,6 @@ static AstTyped* parse_compound_expression(OnyxParser* parser, b32 assignment_al } } -// + -// - -// * -// / -// % -// == -// != -// <= -// >= -// < -// > -// = -// += -// -= -// *= -// /= -// %= -// -// With expected precedence rules static AstTyped* parse_expression(OnyxParser* parser, b32 assignment_allowed) { bh_arr(AstBinaryOp*) tree_stack = NULL; bh_arr_new(global_heap_allocator, tree_stack, 4); @@ -843,15 +788,9 @@ static AstTyped* parse_expression(OnyxParser* parser, b32 assignment_allowed) { consume_token(parser); AstBinaryOp* bin_op; - if (bin_op_kind == Binary_Op_Pipe) { - bin_op = make_node(AstBinaryOp, Ast_Kind_Pipe); - - } else if (bin_op_kind == Binary_Op_Range) { - bin_op = (AstBinaryOp *) make_node(AstRangeLiteral, Ast_Kind_Range_Literal); - - } else { - bin_op = make_node(AstBinaryOp, Ast_Kind_Binary_Op); - } + if (bin_op_kind == Binary_Op_Pipe) bin_op = make_node(AstBinaryOp, Ast_Kind_Pipe); + else if (bin_op_kind == Binary_Op_Range) bin_op = (AstBinaryOp *) make_node(AstRangeLiteral, Ast_Kind_Range_Literal); + else bin_op = make_node(AstBinaryOp, Ast_Kind_Binary_Op); bin_op->token = bin_op_tok; bin_op->operation = bin_op_kind; @@ -864,6 +803,7 @@ static AstTyped* parse_expression(OnyxParser* parser, b32 assignment_allowed) { // NOTE: new is now the root node bin_op->left = root; root = (AstTyped *) bin_op; + } else { bin_op->left = bh_arr_last(tree_stack)->right; bh_arr_last(tree_stack)->right = (AstTyped *) bin_op; @@ -881,13 +821,15 @@ expression_done: return root; } -// 'if' ('elseif' )* ('else' )? static AstIfWhile* parse_if_stmt(OnyxParser* parser) { AstIfWhile* if_node = make_node(AstIfWhile, Ast_Kind_If); if_node->token = expect_token(parser, Token_Type_Keyword_If); AstIfWhile* root_if = if_node; + // CLEANUP: All of the control blocks use this same kind of logic, and it + // is underpowered for what I think should be possible. Factor it out and + // make it better? if (peek_token(1)->type == ':') { OnyxToken* local_sym = expect_token(parser, Token_Type_Symbol); if_node->local = make_local(parser->allocator, local_sym, NULL); @@ -904,6 +846,9 @@ static AstIfWhile* parse_if_stmt(OnyxParser* parser) { expect_token(parser, ';'); } + // NOTE: Assignment is allowed here because instead of not parsing correctly, + // an error is reported in the typechecking, saying that assignment isn't allowed + // here, which is better than an unexpected token error. AstTyped* cond = parse_expression(parser, 1); AstBlock* true_stmt = parse_block(parser); @@ -939,12 +884,12 @@ static AstIfWhile* parse_if_stmt(OnyxParser* parser) { return root_if; } -// 'while' static AstIfWhile* parse_while_stmt(OnyxParser* parser) { OnyxToken* while_token = expect_token(parser, Token_Type_Keyword_While); AstIfWhile* while_node = make_node(AstIfWhile, Ast_Kind_While); while_node->token = while_token; + // CLEANUP: See above in parse_if_stmt if (peek_token(1)->type == ':') { OnyxToken* local_sym = expect_token(parser, Token_Type_Symbol); while_node->local = make_local(parser->allocator, local_sym, NULL); @@ -999,6 +944,7 @@ static AstSwitch* parse_switch_stmt(OnyxParser* parser) { bh_arr_new(global_heap_allocator, switch_node->cases, 4); + // CLEANUP: See above in parse_if_stmt if (peek_token(1)->type == ':') { OnyxToken* local_sym = expect_token(parser, Token_Type_Symbol); switch_node->local = make_local(parser->allocator, local_sym, NULL); @@ -1120,12 +1066,6 @@ static i32 parse_possible_compound_symbol_declaration(OnyxParser* parser, AstNod // 1 - if this was a local declaration. // 2 - if this was binding declaration. // ret is set to the statement to insert -// : = -// : : -// := -// :: -// (, )* : -// (, )* := static i32 parse_possible_symbol_declaration(OnyxParser* parser, AstNode** ret) { // Has to start with a symbol to be a declaration if (parser->curr->type != Token_Type_Symbol) return 0; @@ -1135,12 +1075,13 @@ static i32 parse_possible_symbol_declaration(OnyxParser* parser, AstNode** ret) return parse_possible_compound_symbol_declaration(parser, ret); } - if (peek_token(1)->type != ':') return 0; + if (peek_token(1)->type != ':') return 0; OnyxToken* symbol = expect_token(parser, Token_Type_Symbol); expect_token(parser, ':'); if (parser->curr->type == ':') { + // CLEANUP: The block stack logic should be replaced AstBlock* current_block = parser->block_stack[bh_arr_length(parser->block_stack) - 1]; assert(current_block->binding_scope != NULL); @@ -1151,7 +1092,6 @@ static i32 parse_possible_symbol_declaration(OnyxParser* parser, AstNode** ret) return 2; } - // NOTE: var: type AstType* type_node = NULL; if (parser->curr->type != '=') { type_node = parse_type(parser); @@ -1171,6 +1111,9 @@ static i32 parse_possible_symbol_declaration(OnyxParser* parser, AstNode** ret) if (expr == NULL) return 1; assignment->right = expr; + // INVESTIGATE: I don't know why, but appearantly, this has to be a + // symbol node, not a direct link to the local. There is an error about + // being unable to resolve the type of the local if it is immediately set. AstNode* left_symbol = make_node(AstNode, Ast_Kind_Symbol); left_symbol->token = symbol; assignment->left = (AstTyped *) left_symbol; @@ -1179,7 +1122,6 @@ static i32 parse_possible_symbol_declaration(OnyxParser* parser, AstNode** ret) return 1; } -// 'return' ? static AstReturn* parse_return_stmt(OnyxParser* parser) { AstReturn* return_node = make_node(AstReturn, Ast_Kind_Return); return_node->token = expect_token(parser, Token_Type_Keyword_Return); @@ -1275,14 +1217,21 @@ static AstNode* parse_use_stmt(OnyxParser* parser) { } } -// ; -// -// ; -// ; -// -// -// 'break' ; -// 'continue' ; +static AstNode* parse_jump_stmt(OnyxParser* parser, TokenType token_type, JumpType jump_type) { + AstJump* jnode = make_node(AstJump, Ast_Kind_Jump); + jnode->token = expect_token(parser, token_type); + jnode->jump = jump_type; + + u64 count = 1; + while (parser->curr->type == token_type) { + consume_token(parser); + count++; + } + jnode->count = count; + + return (AstNode *) jnode; +} + static AstNode* parse_statement(OnyxParser* parser) { b32 needs_semicolon = 1; AstNode* retval = NULL; @@ -1307,12 +1256,7 @@ static AstNode* parse_statement(OnyxParser* parser) { // fallthrough } - case '(': - case '+': - case '-': - case '!': - case '*': - case '^': + case '(': case '+': case '-': case '!': case '*': case '^': case Token_Type_Literal_Integer: case Token_Type_Literal_Float: case Token_Type_Literal_String: @@ -1339,53 +1283,17 @@ static AstNode* parse_statement(OnyxParser* parser) { retval = (AstNode *) parse_switch_stmt(parser); break; - case Token_Type_Keyword_Break: { - AstJump* bnode = make_node(AstJump, Ast_Kind_Jump); - bnode->token = expect_token(parser, Token_Type_Keyword_Break); - bnode->jump = Jump_Type_Break; - - u64 count = 1; - while (parser->curr->type == Token_Type_Keyword_Break) { - consume_token(parser); - count++; - } - bnode->count = count; - - retval = (AstNode *) bnode; + case Token_Type_Keyword_Break: + retval = parse_jump_stmt(parser, Token_Type_Keyword_Break, Jump_Type_Break); break; - } - - case Token_Type_Keyword_Continue: { - AstJump* cnode = make_node(AstJump, Ast_Kind_Jump); - cnode->token = expect_token(parser, Token_Type_Keyword_Continue); - cnode->jump = Jump_Type_Continue; - - u64 count = 1; - while (parser->curr->type == Token_Type_Keyword_Continue) { - consume_token(parser); - count++; - } - cnode->count = count; - retval = (AstNode *) cnode; + case Token_Type_Keyword_Continue: + retval = parse_jump_stmt(parser, Token_Type_Keyword_Continue, Jump_Type_Continue); break; - } - - case Token_Type_Keyword_Fallthrough: { - AstJump* cnode = make_node(AstJump, Ast_Kind_Jump); - cnode->token = expect_token(parser, Token_Type_Keyword_Fallthrough); - cnode->jump = Jump_Type_Fallthrough; - - u64 count = 1; - while (parser->curr->type == Token_Type_Keyword_Fallthrough) { - consume_token(parser); - count++; - } - cnode->count = count; - retval = (AstNode *) cnode; + case Token_Type_Keyword_Fallthrough: + retval = parse_jump_stmt(parser, Token_Type_Keyword_Fallthrough, Jump_Type_Fallthrough); break; - } case Token_Type_Keyword_Defer: { needs_semicolon = 0; @@ -1442,8 +1350,6 @@ static AstNode* parse_statement(OnyxParser* parser) { return retval; } -// '---' -// '{' '}' static AstBlock* parse_block(OnyxParser* parser) { AstBlock* block = make_node(AstBlock, Ast_Kind_Block); bh_arr_new(global_heap_allocator, block->allocate_exprs, 4); @@ -1599,8 +1505,6 @@ static AstType* parse_function_type(OnyxParser* parser, OnyxToken* proc_token) { return (AstType *) new; } -// -// '^' static AstType* parse_type(OnyxParser* parser) { AstType* root = NULL; AstType** next_insertion = &root; @@ -1854,7 +1758,6 @@ static AstStructType* parse_struct(OnyxParser* parser) { if (parser->curr->type == ':' && !member_is_used) { if (!s_node->scope) { - // NOTE: The parent scope will be filled out during symbol resolution. s_node->scope = scope_create(context.ast_alloc, parent_scope, s_node->token->pos); parser->file_scope = s_node->scope; } @@ -1900,8 +1803,6 @@ static AstStructType* parse_struct(OnyxParser* parser) { } } -// e -// '(' (: ,?)* ')' static void parse_function_params(OnyxParser* parser, AstFunction* func) { expect_token(parser, '('); @@ -2014,7 +1915,6 @@ static void parse_function_params(OnyxParser* parser, AstFunction* func) { return; } -// 'proc' ('->' )? * static AstFunction* parse_function_definition(OnyxParser* parser, OnyxToken* token) { if (parser->curr->type == '{') { AstOverloadedFunction* ofunc = make_node(AstOverloadedFunction, Ast_Kind_Overloaded_Function); @@ -2052,13 +1952,11 @@ static AstFunction* parse_function_definition(OnyxParser* parser, OnyxToken* tok parse_function_params(parser, func_def); parser->polymorph_context.poly_params = NULL; - AstType* return_type = (AstType *) &basic_type_void; + func_def->return_type = (AstType *) &basic_type_void; if (parser->curr->type == Token_Type_Right_Arrow) { expect_token(parser, Token_Type_Right_Arrow); - - return_type = parse_type(parser); + func_def->return_type = parse_type(parser); } - func_def->return_type = return_type; while (parser->curr->type == '#') { if (parse_possible_directive(parser, "add_overload")) { @@ -2177,7 +2075,6 @@ static b32 parse_possible_function_definition(OnyxParser* parser, AstTyped** ret return 0; } -// 'global' static AstTyped* parse_global_declaration(OnyxParser* parser) { AstGlobal* global_node = make_node(AstGlobal, Ast_Kind_Global); global_node->token = expect_token(parser, Token_Type_Keyword_Global); @@ -2270,9 +2167,6 @@ static AstEnumType* parse_enum_declaration(OnyxParser* parser) { return enum_node; } -// -// -// static AstTyped* parse_top_level_expression(OnyxParser* parser) { if (parser->curr->type == Token_Type_Keyword_Proc) { OnyxToken* proc_token = expect_token(parser, Token_Type_Keyword_Proc); @@ -2357,8 +2251,6 @@ static AstBinding* parse_top_level_binding(OnyxParser* parser, OnyxToken* symbol return binding; } -// 'use' -// :: static AstNode* parse_top_level_statement(OnyxParser* parser) { AstFlags private_kind = 0; if (parse_possible_directive(parser, "private")) { @@ -2397,17 +2289,13 @@ static AstNode* parse_top_level_statement(OnyxParser* parser) { AstMemRes* memres = make_node(AstMemRes, Ast_Kind_Memres); memres->token = symbol; + if (parser->curr->type != '=') { + memres->type_node = parse_type(parser); + } + if (parser->curr->type == '=') { consume_token(parser); memres->initial_value = parse_expression(parser, 1); - - } else { - memres->type_node = parse_type(parser); - - if (parser->curr->type == '=') { - consume_token(parser); - memres->initial_value = parse_expression(parser, 1); - } } memres->flags |= private_kind; diff --git a/src/onyxutils.c b/src/onyxutils.c index e26f2352..c13b0aaa 100644 --- a/src/onyxutils.c +++ b/src/onyxutils.c @@ -1114,4 +1114,55 @@ b32 fill_in_arguments(Arguments* args, AstNode* provider, char** err_msg) { } return success; +} + +// +// String parsing helpers +// +u32 char_to_base16_value(char x) { + if (x >= '0' && x <= '9') return (u32) (x - '0'); + if (x >= 'A' && x <= 'F') return (u32) (x - 'A'); + if (x >= 'a' && x <= 'f') return (u32) (x - 'f'); + return 0xffffffff; +} + +i32 string_process_escape_seqs(char* dest, char* src, i32 len) { + i32 total_len = 0; + for (i32 i = 0; i < len; i++) { + if (src[i] == '\\') { + i++; + switch (src[i]) { + case '0': *dest++ = '\0'; total_len++; break; + case 'a': *dest++ = '\a'; total_len++; break; + case 'b': *dest++ = '\b'; total_len++; break; + case 'f': *dest++ = '\f'; total_len++; break; + case 'n': *dest++ = '\n'; total_len++; break; + case 't': *dest++ = '\t'; total_len++; break; + case 'r': *dest++ = '\r'; total_len++; break; + case 'v': *dest++ = '\v'; total_len++; break; + case 'e': *dest++ = '\e'; total_len++; break; + case '"': *dest++ = '"'; total_len++; break; + case '\\': *dest++ = '\\'; total_len++; break; + case 'x': { + u8 ch1 = src[i + 1]; + u8 ch2 = src[i + 2]; + *dest++ = (char_to_base16_value(ch1) << 4 | char_to_base16_value(ch2)); + total_len++; + i += 2; + break; + } + default: *dest++ = '\\'; + *dest++ = src[i]; + total_len += 2; + } + } else { + *dest++ = src[i]; + total_len += 1; + } + } + + // NOTE: Gotta null terminate + *dest = 0; + + return total_len; } \ No newline at end of file diff --git a/src/onyxwasm.c b/src/onyxwasm.c index c6c466a4..615e078b 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -2731,42 +2731,7 @@ static void emit_string_literal(OnyxWasmModule* mod, AstStrLit* strlit) { // in a string literal that create more bytes than already // existed. You can create less however ('\n' => 0x0a). i8* strdata = bh_alloc_array(global_heap_allocator, i8, strlit->token->length + 1); - - i8* src = (i8 *) strlit->token->text; - i8* des = strdata; - for (i32 i = 0, len = strlit->token->length; i < len; i++) { - if (src[i] == '\\') { - i++; - switch (src[i]) { - case '0': *des++ = '\0'; break; - case 'a': *des++ = '\a'; break; - case 'b': *des++ = '\b'; break; - case 'f': *des++ = '\f'; break; - case 'n': *des++ = '\n'; break; - case 't': *des++ = '\t'; break; - case 'r': *des++ = '\r'; break; - case 'v': *des++ = '\v'; break; - case 'e': *des++ = '\e'; break; - case '"': *des++ = '"'; break; - case '\\': *des++ = '\\'; break; - case 'x': { - // HACK: This whole way of doing this - i++; - u8 buf[3]; - buf[0] = src[i + 0]; - buf[1] = src[i + 1]; - buf[2] = 0; - *des++ = strtol((const char *) buf, NULL, 16); - i++; - break; - } - default: *des++ = '\\'; - *des++ = src[i]; - } - } else { - *des++ = src[i]; - } - } + i32 length =string_process_escape_seqs(strdata, strlit->token->text, strlit->token->length); if (bh_table_has(StrLitInfo, mod->string_literals, (char *) strdata)) { StrLitInfo sti = bh_table_get(StrLitInfo, mod->string_literals, (char *) strdata); @@ -2775,8 +2740,6 @@ static void emit_string_literal(OnyxWasmModule* mod, AstStrLit* strlit) { return; } - u32 length = (u32) (des - strdata); - WasmDatum datum = { .offset = mod->next_datum_offset, .length = length, -- 2.25.1