From 3fda09aba2ae9dee33f7bf235430759d1b87f490 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandro=20S=C3=A1nchez=20Bach?= Date: Wed, 5 Mar 2014 14:21:38 +0100 Subject: [PATCH] Test added: cpu/ppu_fpu --- tests/cpu/ppu_fpu/ppu_fpu.cpp | 121 +++++++++++++++++++++++++++++ tests/cpu/ppu_fpu/ppu_fpu.ppu.self | Bin 0 -> 90864 bytes 2 files changed, 121 insertions(+) create mode 100644 tests/cpu/ppu_fpu/ppu_fpu.cpp create mode 100644 tests/cpu/ppu_fpu/ppu_fpu.ppu.self diff --git a/tests/cpu/ppu_fpu/ppu_fpu.cpp b/tests/cpu/ppu_fpu/ppu_fpu.cpp new file mode 100644 index 0000000..433b73c --- /dev/null +++ b/tests/cpu/ppu_fpu/ppu_fpu.cpp @@ -0,0 +1,121 @@ +#include +#include +#include +#include + +#define PRINT_FPR1(name,i,FPR) printf(name "[%02d] -> %016llx\n", i, *(unsigned long long*)&FPR); +#define PRINT_FPR2(name,i,j,FPR) printf(name "[%02d],[%02d]) -> %016llx\n", i, j, *(unsigned long long*)&FPR); +#define PRINT_FPR3(name,i,j,k,FPR) printf(name "[%02d],[%02d],[%02d]) -> %016llx\n", i, j, k, *(unsigned long long*)&FPR); + +// Loops with floats +#define ITERATE1f(x) \ + for (unsigned int i=0; iq$Flh>gX_!Z8>UQAf!e1eOL{c1J?ZM;)k%t<)n6$H-Dz z@+~#Jh#Ad{L~O9twNT_F*amr&$gY&AUHFT#9!V7&If{#7y*`>MStOAa1&_XLif(O=bZh2pMCZ@_uS~+8}D&AjL)d_KZklhw}$@dP)&Am zKwpjfEA=&?{K~BYYK8Lg+u&}AE>HhwwNCd!>6vcpk$ttE8!Du7b$PnJ!|ot`RZ9Pc;<^*jCCs`ak_r{SqIyx*@~?i`-KS3B1{o{mczH^-vuJi;CJtuvItwfV>Y z?wvuqIj+I)dfmcUbX6)~_msXmlgm^4!fwY4NkhegD(C4C6@qHH^ryxs3%he(@Gn=b zpNJ`+KcH0eoyrlqQ#HlzRJv`|pi);(NE`JVY2)WV-5>p0eSYi3v07CseMvvkpY)Xp zSK7&6P?a=V*Sqhqu4U(~>pknO>)&3HYnHy^0(1JjGJ)A$mr6x~%6G(S^G%HxZMr9T z4i1_o>cqg|bGqF@Wria+O4|hGTccld9Sf>&RoQqaCgi!rhi)79&AMH!YMqX&*z^h2 z4eXxj&B~lUs5Nai#WeRZi){{6^phw3P+l5T|Etfwub}+T<-WZcemoDq_K0j8pA#72EpqSsJGn=` z{S(Mz0vU*`CXfqq>zqI~$h`--Cq#DieNg%n`E&mz`@R`nuyp8zYTffntWxwy^r>^1 zO~X0WyyuPBD)hXxtqfbphlj<`iA<987tYIhA+}yQKM`{-mpNqc-G|7b26?PY_rvdC22U%f zyHV#`_?Km#+5z|WSZdKtnw+fxh$26 z!cEHdp7?64e$WxCzjU3tJ$`enVK`51q^xOCS$(?RZ~j5u&a+TP{f6{2yKK`)p6XfD zhmUoy{SPJ`oqd~ES%^3$C2Wk80DQ=%FR@wnjqi>O+*@tjcYtFUpnS(7+?z9S z581dkXW?%XZ9`eg>*0G7e6NS^rSLrg?uiWCn{C`fHtyRO;=bZ}8~2cnV@Tj+;NEPP zH&foc2=|Q{xCd?AH)i4QI@$)aln3DZy20X{0DLcn?}x$ta0c!hZQO%4?yU=Pzj@ro zJ!s>`)%B7vhcT(w*D;TrSQEHzL&!H+u?gZxc6t^USs3# zw{hRG2=@=$xchA!{Q@Tg_ZqvrhVq(4xR+$$&N!fLwImCFi)ic1QeFt(iw28x3dJwM z_W^Jp$iThC#@%P*ZZ5=qxgN9PYjb=yj$+ro4BSiX@)F8R7UAyAz};ix?#;qqH*Gyx z$`yQf!*>PWOW^w;xDRIF?zM6E*tmxm;_myF&3BKDqetLm;O@1{y_9xL^`z#%C4BPOAfj7Je-jEG% zC<{La;pZUyTm?Tzfj61~Z^(w%odIvT4R6SXHw3()MeqiIciHCcG46-$`+n|^Qhy)| z9)~GEmZdyFd4HDjo>R{`4xf72kpTamnSz|Z0{=1aAJh1+*ZQFSg!F6X%XseSx9NFG zbT#tu17FSsIHeL1cwT@$U`7!CwF0Y_`z%C!4e84Vu+w^v4 z@IhjhG#?~p5k7Qhp({ptmRQDNQl2H2akRpR7<@3{Lo0mP2_Gim!(;{@bZjI2+I&dI zH9gnzp{Um8gB{yAIt6Y9AMDu1u~+)b;6t~~hi=Nd7xAGbgAWozr1>B*gz%vSJ}ioV z9Af_xTP!YbqFiE&#pMkro^x!%XEhBLI~p#*2ka*aAGDtuxAdV!cq0AUd`QO`z1Q;L z#wwc+cC6tD3ET`m*s+F#Si_NyHAEj;Y(BJ5-m-`f^%;DScqGk-pv{N+Ecy_jABj^I z#kLMV<-siFmFPnNeek0XmFR;xQtVWI{xbBT-sZzbn-A%jC2=huZuk?M4?&x*puo-G zgB`axHVU40x$vRhu3t}i{USb;X7EAcgESu`J`jB<%_3jo14ov)!BI$gmbk&;MIVaL zhr+>PhZlV?hl`zV_~6dqL#fS&5}Oa{7~;^ieE49Q%?CSVa(9;UN%Vm@#7GVm8%?G#bCl6oChr+b~ciVKi1#X5u6xihj(qD!?c8{>9J2Y4u=U~CwS0Jgp3R4ZO;UDZzr}{v0=$+*@Ip4cP!{@{psxvde+hl{z^l)I7qa0E&eQjYM{N2+HoOqY=j%)s4gh8%Lp6W#I0# z%bk=v7vioYA7k@fO(8PyhoSE<@amzjA9(#4^!3~DM&{`&sIvLo zZ^P>cUjHI^5|0T#v&2`b7y5by9`p?WZy*C+I*!VKmv8%jWyeo?ohuzbrTN)o!|TaH zUpMr1&nSln`UZhFm;tZHrtj=LefgiV>FcrS>w%7*Mf7#r@H(@|uLJrz1RnGa0dFV+ zUgx#&mfHSbb=vScf!DbRo*jQFiN6;60u%bo8D$84!@wKPfR~QHM(62U+Gf*d$6qQ2 zyhZVs+F{eTBMW`4&`11b2z?{K({^d==MI~`On7-Vyd5@uJAk(%lRmw+m6Kz>+j<{3 zT#)rXSre8u;OgGdjz9 ze_3jVHCdTj(w?uzCZj+9ok=^TapEfXf>X3>%xVL#%%vKi zO~NnHnT7bM?eB`uTB|SJH}}%_;(o#9sPHnVmV6hmvX-v*ZLt2Y_j|CW-U;9J{tba2 zdo;Vupi^i_!dLb(q-u2CmUpQOUvyorb*b5K=6({9qwFd1!)w8-DwK0}ol=gv)Y*dU@8Ue{n78aj!p1f_Ce_N>@0gB=+}uYtdhQJds9QvJ-;x6%Fub&@Gfu0eALftYWW#JE)5PCdBWRd+7UsatmHo z|2ZF%a=S0>`>gw$wV#hUVwa#;U_~p|2#4hD*zrent z=h<_B41#Kz=B?lpP2J!PZ*?83?Mn?NmWi%Sh^@L2uh@2FKV@7!{1pb3L-W$sqlDI@ zgXmEfI}*I5pT2X zj3S?3Oq;a%n6A^Cx**SmCsv!(s0G{jbAkQu;VJFV#jt(tnA1u4s`Vm^pAdggm-@+O z>7V*~|4+C@?@^11Kfv}XZGCBg9PPd5t`ex-H#q%MqQb z*S-h*7wrG(r+>dnrK(n_ySR7Cb1}}U9QHmjuGo8%T3_6vn)lJqmAh1M-wGAt&&{8Q zKQDh3{1x(7$zRcxEvlZsrcW^D#d1_lH~0uo?0d1@*7%+ALfdxq-ob`#rK=i3h5q<$ zz+S4{VRgSZ+Eu8+>Q1i-Ty!5AZ+gG*XfX{HE9UG__f@-_Jy%=Qx}YlhWw!eNIoL(7 zXY1=dVE;q5`g8gaXYbkWc%kTozeo*BJPjfySDM@ zfu#0Vu~*_n)id~x-SLvxSK~hF4kdDx^I)^(=MUbZoRMv=Rgp5+s)nWTmOV<1rKPJH zAK|Zz`)#sk>0WQ7>`rf3UGzq_t>#{?7rouNYMoyhYTqqt-M(hEuDi$x&f`(^uR>QE z5B%m5*)u8j+FfMZ2eio;Z0n95htb=#yzMwkxuLyV{4ViNtKg5GsP4Q4uymd``rM?Z z8M$`@C)=L6xiJ);mde;k-~D<_Hq?lWMcsyKO`cbiR}7WBvfNNtY7KWXu11mv)oAjB z8pHlY?NyBaW$z(=q$1iOW2Dmif21$zhdqy9l6v6MFXOG)ZhFkcSLuC+b25f6(oV~E z5Bo!3E;pkuOqeG96Dt@Z`=I*7Thd?jmp7Q2XNlR?@RHliaH6yx7zzLL7!Ko2_<73l z_tEc``o(t&&(pp!xqSAZ*wXZJqqKUt+A+P^@K48$!1O^QSRKPQz#;tX3NyOmH8Xtj zqvmw2Q8|6WsIRUi-i6-j^F~wBFj@t_{c&Y}Gp@q??Fy<^ZEySG(f-Zq!v477mc6I& zgd9mK)u67Q4TlQrZC~0P?Y+U<-Un?7{0T%sXQ=&q_}4=dW;^>}U)-!(gKDexa|gMX zc8rBFIv6_nA6oX4^ww+?>x?Uv{?;COVHKlT|4~v6=Emt$2Gpa*ylKM zvBtnHfdf}tZP?A+H{&Y}Y;=?KcW}AksS3H`fqZN*9tFnd zk=YP7yG3*@dUe{=@E?SKGs;K1fko{EhX&fw-VnV(4-JW>H`@C2H~ikt@4x2S%vECW zOEXP93Lw*M#}4Sy{a-|ApxNQZrA%5A>g0vQiJ(?MlS1L~m^#fU7E^e{fY^uHdQ)xHiG}UfMNBKK)6v`l2%0 zHYuOg$7~0%Mv8J)? z{oe`aHGKqm9Furc_Vu%;-^bM5qm;pWHUEG8xrP?PlHcjS-v@`hMg2%y$Hs+yXX`Hw zKd*ss&YXvxE|;>!?Un?rzMW(9&zvpReI`uD#$BVX9psiOBo;uwB}Wj8l)vG{M;J0D zws$DsGvkbz#i}BxwtNo#w8o~h>Ns;RVlBfX{`Vp>zlhAm|6WAy7m@o#^y4D3zlh#U zApZ&EKY{!wkU#O+C~?vlG2OtNhNJivRe`?V zViFHTK6JmgYMX_(c@n$C{`NszP(AeRjCLDk+`x|nJ9E^%w!PyI+%o1d7P`fE;mh3h zTp0u1L9UF6?f_S8Mf-!#)gHJ`eBGm5H^y%zhQQxwU&B3PhqL|1%*Ud{1I6mzh&ATY zSAjjg76_~@)js8>Kk4`L+&j5n#r5ahtoQaf4^I%pu@|hxe5{;N6P^ulg_n6}xx(Y639j&X>G8&pOON@`=^G=jvofJ|&%1J;_}ZnV zTp1UZvR0@nc75-g=C0;v&2W*!iykuH`qUDUr!MdK8ZmF^C-U2hL1s&;tH=*LE&W{$ z2@T*>(YV#QrqP$qxu$&hEqmVX79UxWNiVwL5#0b+*mFUgQE_c7!vu)3qFwDv%L zbL?fcZsiw%*SoY|^w6F|kUzQm!*h5YSb7OsN+l+z-73**u{m(RDP1QpGt+PB=FCxn zX+{`Ja?o$apU7>jljb_SqGK}0*e81SsDAgURP-#U?$fp*&vqV?ejogPM!!vVzYSe0 z)V<_N4~XB!XBP(goX16f#g@S@C~)TVSo+VGoZC#1@MGRqmbfiBE>T>OuQSON{dP`r zMefcqt{JwnRBQ@cSz5o?R%BcjA20TjL=Uu{1<1KsHY2g9ygRj}I*?&2fec#-%-afj zc9gmgQ5Tz8TF5=Nl6RRawvu;g`A%#F{awELJ#6I$Y(;Ej7dEnnJjYA-dc{V>R>V&5 zN$^&!im%mvry>&GATlx9w&8E`@i&xXCzicnli1E;dwB$XTx2h~L2!hRE{Qp?6IUl! z?8J3x&Ng~;0|(ctdUW_W&(Q59oi+~T*>FIXS?s3q{}P>;x0_ENl;4)!OkJwJAG>)* z`kpGCvzw4*GswaF%v+L=B6i27WIV8J%CaM3jmbvelK*YvHe=&foeekQno-dw^Yi4e zEIC7Sj`-7uxo%u+Z$tU)CCIULBSh|Gu8k^cA@&RB&$dRkI?PB}Q+;Fg^|LGRQ_HKB zb5F5ax19UNGJGOA74e1Q7o&eEKJfl)AooFfVBra?J< z!h7aW>jcKUo;dw+`bKV9^#os6nPJ;9N9>>)()-T z>%>2r_{pGZ`cXz7d+k0ti4z0w9w!=RDm7iP_z(4MkTR~^OUEJSghMMA5Vl;@LvRm$Vy;f zpE5srguKNe^q9HBJ7dz%zmFSZO*6hfM+IdJh&=iLOI)sF*om9`q9W((OcF=crQR+S zxzE*0j}w&1IMkmnb>6!CUUft#s54v*9PLjNWjun9P4lq=d*AF>LF|=rQS3~wB zZNEgErgQwnh&rBQ+*1|EhOtP=T$Zs&&n;!1?d7+OlOj88cWR@iyJkL)mDpQiSmub8 z^ZwQFgGcqknC0zF?OW&Pu!4Jf>Zm-a_Jw0~v-{vliRZXg4_TkbiF#2@l9K+O)hC5**~W z*nU^CV`h3))H(6lQ`(So@-?@|lpB%mg-=^2Su-|0Ce7~1FsQchTTraoI zKffZrR6n=+x^mpI|KAO>{t!fOj>n3zVJ+9+o#`xAF8h8+e0fmS>ah#{Y!};=oTQ#h z+4C8HocGP~Bk?*V@7W99>cv{s+Ha`;$@*@FZ~yIO%P;?Sk~O+@^j9=*H>y``>sjU$ zVrSS*iRh--{k%NiZeBbVjBgYBdvhS>h_8!16klh>{($o*@-o-oP;$H@& z?|GTMU63eNxfacDp0S_puztTa2_Nm4MR^5BJr-*mr(+rNvY!1-8vp6$dHzqI*6kYS zo(0L5#C6X9ymbzSyt~i71KDfokhwDJW!`m6&?P>Q97y0Cd3k6G=eUlsuF%bVc){M3 zp!)cyg=Ue>{$B`naDW^%Q>&Bhq=jU&#o6x7-AVmHR)({s&;nII8C*Cpar0 zl(S+EKI;#_AB-JTVPN-%zeX;VKEa_!=JNjK*1Cxvlh3K6;7n|-0@5Gjg&}z^{|VJv z6*BhE^$AVU=O@hC*%bTFKBi+#S$D8;@3q?s9VhpEHNH{iEJ3x_T2EpU{}$zuHB_-L=3psuZ)zXEt+j@~e&1Ma*7I2`Ig32tE4lGj za%XxCEvWwb4rznmQU0j%Fi+HHTuA@Os1RLuS8Y|s_;S@6OV>z>^H2K6pRpFk8n{nv!Q!LLPp_2AUX#Dl{L^%uQ(kagu$CTFfAX&(+DIP)TX4XJ z?6Yw``=dFYWN-T=Y3tu&jKo*4Ceh^!)MCTLLe6j=^Te3`E$iBDi?6A(!UNF(V9cFu zLw+-}A+ z;b=!8uv3S~*Vu7RswcAMX07{DAN*$NqtowXU%-)a_MW)b_!HwzNul)I`l-PY_tMYR#s9?OOj)!|^;FWB;wNkIupdW(*PwY_SKd)cg-k+gg zg<3bE0o!R6I}%)jYUQ6$BzsJjOCRLa2U#y~Mn5LWyZ4YkPmn)99It`)Za@NYq zgx0Ypf4ea#xChmv@p+sbF>szFpW8`3*UIsN(*!t8fYSuHOn?VD-9dcA5INmp#*Y!` z8x`92yb|9eWAixsn(#Be=n*A*sR}786u9W#UeOcwQ5Ehwdgrgi$E_ZeoYte-f5cv= z-eb&VVp^Am{Qra<-k}P1ziu3ryj!HKzrG4xg`T7FC3^0q{O)<%5&iQiSe7s+8GQ;P7PZdj6IKk0AK8BQ~W{v=qxhT(T3cl#8Tic9Y z=D}&f_dn2oYfx3ZKLl)vL2P^e6ZAhZ6<4k3y@}q(u#rw|q#GOQ!6pu4KmFLn0QNA5 zJq%$-qhaiUe8!|{GB&f`6wUb_es|{2ET3(RR8OUnu~~fV-mcd{0By!|5dGrw&M zrQQ(P)}AvCH*R&!#+Dh!8pFsN9)^p^t4H7Pc2h?G!_jBQ;GGd`Z=o$RoAaILjP0T) zkq_QwT6*Frh%Hlv(bx!bSTebru_yXvxz7tU?og}$;wxjbUFc_VXtmW3;X38Nx#VJO!P~-%qL}4#6r>7VUfR^drMEwss5d>Dc{Z`=-M|_0s7?D`1XF)+dfS$ zsOBR5CY9*cmKbLs-G~lq{mQ$1UmtYz2_3u_+^epyTBAztOBDK}T@Ek#=L_hS5nlrz z)mUYuT=^^V(U0BC|9v@T^vPeC?dVYVGV2_#{TGQ*+R2ZNtAhQ{>OC5*@?7vnPVQ)| zDG<1t8VM@v%sT9A^dfqK?;;jsZ3-=nKB9AKx{A?;6B+4dJ_n z#dk@(Ha{08rXW6)K1Fw=-}XOMKIvQf6`Pg5{pgAG?;qp}3>_=I2OQ>T1;Rh!qwtTh zy=Kdk@R0EeS~VZZnI4ZGN!CXn9}CpJo+^P}Z?u;@W^4@E=ALP+g2zt_kBydge97*g zqc17=(I`{*=vTC#@L0An zfWFKgihkMh9a1Lpi$313^@V$DY&ka@+j$ConZVz({`|#p<^JMpvTtJM!hKz@tdUq- zYzGCE`9w=Od-*9Vz9SS<=wnmW`jl$i@VGxxR$uAQnyIe&~SA|<~{MdRYB|v z*l(YV8%qWlPu$VR@qe#h?J#NIR!4lZo_PWLEv%d-@6tWYexj|O)dIV!%%~7~OOC;o zV`ubnpR`|RcIk5LQ{?ON(2sZJ6Po8EGG0+f_YX|T0jlmNRUv#VwBhS_)qpGQ3aKM` zCXsco^?c@n;3smSj#uiCqueMo1EW~@5eFyg7c>TvyL?K0F#3e5WGE?U+~BT3pUt*> z@XMF@PyEiP&|lKHzIZ3R_k>$Ec+GA4xz+{7yVGKy(O4mP&$R5HSj^9vqt^b9siAlf zo*ssdXEjfK#B6R$?}V>271!{U@wE29bU5DjZhY0g)wKFx5BKZSW9E@GZ}qdw^Sqs2 zW$||Uq{t56YVr0PnY^9W?`6&L_Je8OP9-hgPV09D=lMD{Dz=4B?qomVkr2Fv*B<;` zLHh(Su;a)kvE!uLOdf0BU*gwh*{{nO4^QQJQ8Y$;(mUN5L%x3K z_A(Y7C+^;9$=G>3cEA|5=IgxIHAtF$K4)*7oMJJqluwx5O>Wm+~uA*Ow`EC80i?hN9>%*;WR`j=`lKIUlG+<7Cnl5lsy7vD{Ipul{=(tNEsQ5!$hIxGbr$^kWqLxH8nt7dHI9zHosbOw9X1Jy&f}mCUn>;(v+l=6P1{XODO!zuxkN`Pk(O#{aEGMeXjZ zBcdzFwOD+0+8;Ei&vF)|{XwL3gPv#LFXsILFB~KH^G=J5lM-v}BTgf)9712*61QPTUfDAc zxx?WNirTqsq(PcaQKy z{53d99DhN4X8O1I%SirRGM7IceY_Id-U*whkhO+2rNGNW9+em+fZo3o61zsu1~PVw z4zzIJpmHr+I`>XM<{?s!zjQM$6*7M5xQB5F9=&7wmxB8b7UOQT{3mf=mBw9ofX+kT zl^$}Av+*^=^^6spRMQ&9U_bAcz~{GQEJcPw=i5(Z(Ag?7VZCT1-48MGNvTVmbI9&b zS^W*A`$HC&$z!u07Jo-u_Sk8-N@C1SY9OQDTVjv&mAt%qka^8H;tJ}}_Xs|AhZV=H zuMNRBcqFm#cDqdP#h~w`)qaYzU*lo>na(|e!%@m&R$1_>)yL(8(3aK>_8}%kZx)u# zCRjr;<2T1QNnS@{L-CV!so(r7{;5EGr|1i7L`{)9rgYwj{NMi_DVzSXs?(P7=t8+n`=ng!{o|tdms`Y#zPsLE4vOC66WsWs!hLt4 z`$tp(@3)}yS3-T!Z6<#bXV2n6oonf59y!1~a)^24F!RU}=8>b}FRw7GN3o5# zO6qwid)Mny|NA;?{zwe_Wp#-;Q$M_VnfRD^IOnPA!Bi^tQ*8b~Wgz_8N67;?cf@Z% zrk#`UBKPE;H{$ZXv@iOM=*QAt$(;#aJ5MrqmfZTFGV~Y@T=eOe?6*_$zDFD!E`qb3 z(|~uRJ1+B(9_Aql<{*bB4CXV?FafR1Z-$uP3^TtOVSY2p{AP^#&EzMT-+=Sd>Op+I zUQQMbuGD8@;g7l-~J3g z$ehoL2gUyrcUp1JUgrPkQ{meDF70~kb~?8f?UlMq!r(?6 znZ)Ph7qyS$wy{I64D8{sW@t*Tm^O2+Ru zj>UHx1JPej>wJjR72M^$o9L4&(0zk(EYOSY-Czu4lSf_Z(x;e{?TE9dD0+Z7XP=|j zvhgKPv4(Ag^Xe;ih3YF;KO;P2A9+Zz_x=G>{AXmV8fNaoew0+I(f7jJkut{U@}DyX zZ>p5Nu8p_7!(69<`+L2Obj8T?Suz9Cx%*IkG{EquN1Zv_b_%Vq!iFNLq9h=>=Q+dk|$lNurrTjT{ z{e6Sbby;!)dD>6JSBpMQX5yT7!-o>W^Y@*pd8JbJ>THHuw#+ZAn%BXt_Ouro^XDSY1yJW*6?e$yt8*m=nxu^ zhq~_vW3ytjk-ATs^LBf+nfZ1wysW7{COnR*>m`R7+482>e1v&Gxx?G`s3jxurCWwn z4rm+Izd-NtS^H>1uFlzg3ZF*~lD>{dRuI?QZSYNM^EQ>E>k?Cm4cTqI(vR33Z91cg z2XwxRm@p~)iyoOUqod^4*xQ%p0b`b1@{fW~448{}RuG9ipm{|;#$%6xXUO+>r9YWp z>UWQLk3f8Fcv)q=_=rH?)L!h<6Ma&0Cb^g7y@BZ3H@(rD-t@+b(!Od)_?z}sgXlYP zZLIpG;fXKdpwr;Cm<|nV`J|$z3%!l{o*>in#i#~heo0xM1 z$Ti%^`UKD8<@DJlzA^Wx)m~z!+y)tE;T^J;XG<^8k9TFK?xP|4BxC05xs`28sZ(Un zM}J_?NAXiU^9p?A;A-J*x@EMXvJdOGq&!ftT3`HP%kzgJ@Tfv?N;`+ena^K5HF43tKNY>WFi!jJ>AVl|K)AMVru+ZXTxW28t|K`g;XV3SgMH|A zANJpM5*G|tuQn>ec|ptnmW%)0#NHb5zs}0YHrm<#H?j@?>l6QLm5cuszZ}`dUK4q? zjXch_A9y7fFS3<)az&p-M@5H4PxW{>tLo7QeNF{)plfy8_5-r_YJq;=hAim={T`av zV`quh<6Y$C7U=Pa=v-QlkD3oaY64oO4?1aa~5vDy_#w z=&_td|G~w2oHIPH$DEPBK#$!e#A@lB6?$BcF6Okf1vB(`C{vGfHflYUbvE)**XnVO z&iydg)A=gVrsv5zcW~97 zf9KJs_Ss90hFv;$;E}Od@+J}KJIMIXTDHU}`1*AIV02MF;f!TZ^JGj!H zQC>1%J`?fzg>RRF4t>o=tHNT%hidE zEb$6Fba$iBv@c)EoMTqmmDc;lGxGPqAr6qdRcqRpS7A0agE7V2b<^+b&#OX<^7x|* zeR||G^_7i5&uYeyBJgpdBPwzu@5!HP@}oN*y;kp%9Da^Z=kU=F^umcQsQoVV!bJ{W z>%y%|0t<5WTq(oj)31ZRzW^K5_5$PZ=XCUGVc66^wH= zFCxExW>0&|?aVvGhdWhxyjpTkMKYemmmWIoRsjnC%+Mn(3l`$=5s-jB@acU5H5 zPrWhvMjseER3Y!pPKwS5eNsluI~w~n{_t@tmmu>8nd3yAvL5>SO*-GVMLEe`sOTtr zQP-wURYg-L8q3J@c8M;qo=&{du++6CT7Iv#t7vRU;}HEeXPT@wj;;PS^DpL3Rb{N1 z;|KOpCj8(!;6I)k7I-qhmG21w^ZS31NbhsW-QJE*Wqvlg^N7xWt&sU|)dy9H#1G;V z&^H%jgv9uYxu4|n3cmOqV^rkLcbc63U$Y+7nG8tWO8)o~bfTZR715_9zEZLFGI9r3 zhw2+<#%4o|6Y#~!7*O0juE%RR6T`XBB>&#Gq^SIH)+=Rfh%q*d%bdhjBRE)N!)WH% zV9iM;n3EvWIbZa3Xg0z12xCH06$st2XJozQXXEKSK%j53fd1yGCydj7|r%7XV?>$&(|YdtatG~PS6 zt94RxyVK@=e8)n&d+QK!D8A(_SsUZ}&Zvx~3w>DfC_bBSD(Q8TLwZ;$E+ralcn`evQ8L8j~7rT*cmrxjhFI6vqL;vQscit_E|8` zd^RX`J)+yg2SpMigKvv;Q;n)<3YTF5>N zco?a9#VdSlf6k7fZW^0qj!`4~E4Hx4q1UU?Y4&O2zZ{2!pW1&V@L#9Ie>pqQKihw0 z?zeC@=-BqP-2a(S`qFPeJutG9SEjtRXW72_i(KZ4B-KuaOx|A54VQ>Lv4qsXwH{h@aJdqwY^ zVIAOtRbKg)$d)^v8dv$8nzukUv_>_|5rc^W(UT-{N~@ zT&qj{=qi0z$oQx6eN^z3{W!@a{$8)cz}GR0uPgg3z9x^|mzNPw{x|6o=5XzPkO$GF zDNC0kA^)|y#C}`eIgtGzog({4sM?ApvD5v}!GmJt^IX~{#uL!&mc2+~BjG}aS8|S# znvAtap3kp6j<-_3p#4dUcT!*SC80cQSn?&r2>Z&(muP$Yx9`@a#sdrVZ+xNtMVIO^ zyL3*+Ze6Hj%=ZiR-VMe-++wRU&xYkH~vIX3^_c2$}6nFB@Gq3QmeYJ7^)|E zUY{GQ_n$tySq-G$Uy*gY{j;iMg0(nVvwOGoxcd@`KbAW3oUyz_+NIa+bi0hTyKqj9 zta19_Idguc*J#4cH=6j^r0hMn)+kl1E_LRV*w`3&vhFvx=RAAeH-40^D|{80(&iJa z6)x;^_NH{b%svHnrtHB@&p8&u#&>v_XI?M+_#3wJZh-S%Z+Vx>lRUY(<-DV61AAcd zRHe*ox!%{4uN3?GM`W+FjZ3Y-nTGG^NDu3@iRpvv`#r(F-}7n!naEi>a;|~XACvW% zoUX3=Jz2PM-w_KTfW1w>ym^^=?hWkhVcp{Ts18xvxtdeqH!e^I3Sb zrCYzRkjd96bbso+{*Llt;pH^C!{Ibw&?Li~X z40`&pkJK&J);A9IB9@$5JCUhVJ= zImqH4bsh_S=M2f54+;%2@_KUKhvXz>??v>$Xni+j(fi-@;^)c19?>zJy-xp>od@14 z?W8{M5)?)ckkfqt`Qi(!ear`Y)#=1d%v-*I?~19V4a$1Y6MD{4-y^c7ePR3eiNjaW zZk+YK1G46n+OB`|y#1GYjznx}eJ7dv9)Yd*)ZRbk6&#USSm4lqsrYRA9}}GFQb$h- zZQ-K+`U!X?yn8Qxg%khurQeYjUown-DZxw27MOykmhFE)t`?1lKP`A+U!Kw>niaNMx)`*6=s`zU4{8-tfI{wNhvt zFZ-ZN1GM#+iLqDA=UpN6uTtQcYU~y6OZ+*|t{fHe99%rqmAKqvx{6D}e_vWJer`-? zQFoeQSEWCk$G6D;^mcEgygnHTDb7#V?F7FX=yXHpned8`s*R-%3vX(7rwaaEer$1g zg)imLE0_3gvjZOS4ju7&YsD=V4@;kC4fqSH#5_9oN~8;%E@1!9r;@~C?&Ji1a+`*I zDP3Q~bW*278RCO^u4SP4Kc4f#-#PKqoP*hypGtxAWq7eFtZuF_A6w!xw=VI8UkC;Q z9md9R$8FxomfO5l>r(LP-U{<^S7_y}==(FN;}y??+hf>K$dy>>V@~r-&Z>%pa@0PS zbGgE&a%y)w8rrr~|ESo9Gf;YqS{aBd)-zJWz#gvJmKuhxm19m-I$pxNEghv!8 zllM}fFPX1Ouat8h6Zu8CHSc`zt`zu{!YBCWhJT*qYnp#P_*aS^R0iT# zkI`22XPCBb+Irx7A#Hv1YqdvbXzQ-(Fcj@Q@V}7uKKj*tgw;b8=<7=M0q-Dp)eIij z({G3Q_vanL3&F3-N!;>$Y7)7+!O3G@y!%4iWB2&5rHZGYRM(qh+@JcSX^!6Gcp7+Z zPu$~R?zE)su~!`Ar406i)vrwtaD<+=$4*>mTmOnhkH7*>r0k<+Tjwi24I}o7(Bo>m=M{lr z(0>jv^XKWAL8idzyPC*G4{}jr3u1fbX<(^WeDLXd^Ph#Ddsz$L!Wx=Ik9pdHWe&dL zgKzo!o>V#gbM#ydSbUqlV16BX)-R+7I2Jum?73k6bBCq}zW+g6C->vL4;JeX{1wlH zo?Pf~bWf(3kJUC+RzP&xJOZz!Ey(*%KX(evyl^ zU_irCfrC8geK0qGTq~9@QJ%-H3q)hxpRYywmN%++kP&YHDxmom+KD_2>bu;~V zz}pQ^WKFC9888n@9kcqJ8m15BKWT_Pj0wMywP(Jc+od08+he*PC2e$H^n(r*(wB#R z<@~xr=`%g9g`dC8WIRz4t24e8$vDyp55o9!+8LC!Lfa(%BPM<~oO^SHjB7HUu@2{v z@yzdJF2&d+`X~1KUgHmax@%+l9oiA_7=lm9aEHSi-r}p*eyW2rkL`Qr1J=9E=h=tI zJIut13F7YuyKH=l8FS zDF^Y-K%>vuyfVhv$68HeU@k7&9xvwm1uv<)tbI7D|KM8Hym>=NzPC{zxroLx#!lcR zi&Z`Oh{6|vL5?Q$BK5d>_>=d-^?3-yo2|r~RxAq6#GG^Ar4TsKeh9n^G`?3;;YiM1 zW?kyJf1rCEN6A?i#BRrg4(e`-taq)FvPju%D|p;oRdy%urGC-`wmjb(zj=4To-W!F z|3PCR?^dmg9-feMY$Sg|PA;`d)*@M(`D_}7oHNf^aqN{;l>#T6^M=>l#+uN2))#3b z@0Cjb)T!hQxFFXG<`0)_oa}wCv&*M98;9ln-=Cc@*vo1Rg!^1OesM$1&(;N41t{jmn`RvMk0U){sm)Ctb6?w>wk@J^*M6z*AJ z?u#2^);!ag9IEF0nC1Gc)FS$=1#d6=3fCc5;!cBe0S%9w`Nf>Pb=S#nvc{SBexa4~ zDOM3@%9)49CEn!SNsr(aYnSu&*jLae=Uj1SPM@4%Om3x5&ZQzJw0k#eo2)bL-d%+J z*}$fB%tKt7!yeF8tZ847{+UBh#=&zOIwd~62(5a*Ec9N4-iy$C5qd8|??vdn2)z^V zhBJkEKhQ`_z(39t=KVl}_XCYV&J!Mb4PL$m4>`ATRP5qEh_B>#n!uMiNlMPk)^u?F zQ_fEtg9dqTavd@}%YCkWKP-K-etC#1Jk8ZP5Oipje-s-!s0ONIO7#m*IV&mZbnTFQ zZ1geLs_?Jn`xDFc+5~;h*!>Jx{p5sSdu4a&5b{dJS<~osxsl7^pt@1Vji$SFpyV|=;cX0OQME6aJm z9eIoXK(nl$-&5sNx!e~-+1tfAb$=wef$D(zqt%>aJO=Lc+h28FeS6oEJ!WL49sMe{ z?DZL?Qlsu}cv{(Gr~&k=UTBuOQjgz(HHnvw%l$*&0%>31gFC)1|gnA}z65Pvhi+}!e<{@PvN0 z+I4-@E!B1ThMv&Ba|to7uCwf0Qb%ZBd4Tb9lYURj#eVde>QUv2o^%~+Ux6Ja)Y70T z{IJxGJott;zFc**)v<=odzLGUm3q3IeN*^G>4Ub%_{LI-c>QEGYeLXlkmBrr-UXfP zG}O2KC)7aVJUa8sb`$wmR^6&xk8*}L*BpZ%)=K_k2&RJ z*tL^+(Cyyv5>+3$J6PW@`XaJ#7uh>KB73fGt`DOFtmP~3wmfxrTUo9?N2RUo`qAhf zd52DaL+5?qn#3mFN8R^fBOVzCqh0KU=yjZocDYtng;Z6fj5%PLg$HK^?Esfm?BPBX zDP^A0!a3{ZJj)mPx_0osj`-|Vkz1L+1mGw8w&i)1KJ$*lFEZ*u&sg}Pzdrf|=izs% zD)w4*$UckOUPqJghZtnj?l*Rq#H-aha9m#PQ_E#fMfIS%nKKDI)m`L>o_4LO{)sZQ zeHz$jOzbmf)6k97t5xO*W&T*|YV@vuGew7kssxghlK!>4Z`JRQDdBw&`W{J%j;nzo z+R452$M3_{3FOZ2c65v!M^W{;)RmxGp>0w8!i;ijU0=D((sRxfAC>t{B*b}G==Z6E z=(zf;-kIg9RQ$f|#jSc!xx`MfDe}hLjEHK}M9>$mJ7iPZ2tp2zuqhUl8+ts0JY`GuxS zky~#U8C`G7R?e3a*`oVuxatw~FzDJ5Dc|Xpy)~Un7t432SMue+nw96ohADxYSx@8} z36p>48S>>!IpdhnEx0ho4GUg=7tdlMbN2e9Gv+9LttW1R4?@4>HoLacW*fNtEoa+p zvvf`PK`b|#9y0^ISBIr9k*hTpO!*LWCG(d}qKBAOr930vOjY-igLLuU0qZ+rKjh~x zvu{VAF;shYhWDa{7CAc}-9_&sWjQa@o;5lJ7r{x+nFID^^s}U@G~JG~#j{dQuOE0q~-n-;f) z&Xd>-vC+(Fp%>pm{&L2X9;2XZDSceBcs|n$pH2Tb{2r6Fj~RDYx!5eQx$=8Q*KPK1 zu8fQ8#I9zPs^{6E8K1jebeVl7mjzb%`yVxJ-a0M5&iZ`B8rB%5CdHSt{?2ADPR9X-pQ|z+`{@IdL(`v zAM^OiZ=lbtOUYTp*jkf4-q)Lh#$Elx@N2GPD-*PzQsm}<<--Vs#fv?a!!#u{DY6mdjp64an%~*{AJ%#RTzHaX0OTEXLcwb zaWQephG^Sh3?_DNu!GYTRB*Q&;wYYu)R6|~nE z-2JoU^}#*TrD<0$u4OFjZgAr=zn+>r%h` zen_!~MC2|saDS7~L2Qy@9VaH|?ak4MzF=Sa>?pA>bZ-@Tc3+xysgDhICh}CSyk`Z^ zo&C8gci(4}dXasO2{*iSF8PS`r~83#bGF*6>73(t)e0HsX!oG-J6MmM^yqe!2|Uen z@D!NRhrpFS1uxMPsnam-TqCsLA9A5*R@(1di!F$}Y+R*nx}DHN45i);f9%p*^BeU0 z*WKidW_tN9)Oo#rdBX5WEVbu*Y8~rsBND$c$5zbK-BWQj$lPIwwK!RS8)f}%Y`T_j zY;0CZ=HG?-jIUnS-u@Q9-)kIVT}ONsN}x94cXks0?G!%jyR81ZLd*Rx+Ub&UVI;rAPS?@OU;Hz?og6Kcomgg!T-CsD+j5jMN?7y3*9v8@7` z57hotCFC1m(VtJ&vuAxWeut_E7fURz_qCOL@w(A$KfX2YNR40c5Z{&{{Cly{h z7)@QhPWGy8Hpe4De9ITvN@v*3JXyF5U--zs-_DX+20jS9*Gc6p0E_G$gY2c`R7 zg&p-1cPMz=2x=t?u+#EcO_U{LI|5d$*tcjrv<8(U&GeIPgmHbB6?P@#Q>U6?+bR$**SOE^&;|w15WeM(__1&qLc)Hxr-0)3cTTRXoK84hv4g$Lz4Kp8aotrQQWr=YKt{*{4KivPVPY zqGk7Px@OC%_Q0%`KkX{y8?lV}LHvHd^rPF0e35;o+_TA>eze?Z$GYlVKd~77QC5>t zCf_sFdw#mf8~GFLd*O=Th}EUe|5khqIUGCn#W(Yv!SKU3ni9Vg zqjZW-I!N3i^8;e09rzT9;W&5Svs%t1)Nzz+E`}>@=(=u3>|4$d^$)U+Li|)k?2s8l z1!mPC`Y7KCoR9Hh88Mzy$9Ou1!(RQwH&(25fcXE370eGG)0!!is_}v};9zG8K5+`UMCq9jDPyby=*>MxkxWCCi$UAa5 zT1L7}W_^(X{C74y!8dFI&Pto67K!V6hzrBtFO)e`{qdC6P5CtGj3jzvk-cqSI4HD*D5sNKWZA+e~t5y_^$6f42Qtr zS+CIYZgk*RpYnr`HIGj9$X=v7K5Wfj{inK}CS$++Hanc!{`{lDQ`RfTyVr>xW1E*7 zLatpFZw>byDjFU8o>H6L(P*37_3Fc1QET8CV|xwo#_v*jA+F)E zdpV-g^=dQs@;j1G9%(&)yqhdK8QH)bQRc~^KvMRPtn~3wf^z!Xof?p{gWHHLCn9w->#bBernw-phaWFVe^$HHQQ-+OhUUq`A@JH7 zz|^AAJIbQbD*l)wC+)i7hFC6hHs)*aqhV=mndZa9{id{ec$?K`GgoQHSr|!)RU}RT zw;h3JRO=nSXtaa#l{ZVj7abnkrmiBv`bmUr&cwnvDt|4hPkr2*ee|;F|W11#V-3#b-tx8 zwWp76mBc*N=jZkk7Ra7EXlal#)_T^-e!O)`Ib`3VoORB-w6{n*`Sz-ub)Md@m$_Gu zc0uvsnfnRbUr)C`|I7bC`;EHa1m_{zdm4oYb*bIs(iVTgdX^O{=-9!|e+WO)3!P$(0H}$NAS?`iye<&XL5NLFqH7uKTvYk-A!s`t)~el;GXJ%=V32^!%$; ze3sxX{z}8fpEZV_n5|kd<7iOk8i_|jYVD}RNcdu*xBJC4#GQ6K;>^}`Tl|LZ|6mDy z%)jGU0$hi*({UE{({0o35>DnMF>Nm++&k_2)7DmZ;Um5gmBNjAuu(Rt;siN#c;l;^jwuZ#8Y$Trqh-2ZQTUjrXiaqc~5^Zfw? zh!q9ppx7n?%jOFcKv+zGL?fnrD7DzbW_OdUY5%QJ&R6LB))*r&)G6E_Vk4l*rT*=P;+;CX>VbtkzpL$o{Kxe2F8izO>UCuh32MQPYj=jQkJ)6ya0O8=3 z`+L}~ZFNiVPSKLCZRn#}&PbPWIr?y4o&OXCAAg`$}A68%Z}^TkD%}-9-A?{i)4P=&qV{)8%wF;f%#XtU-?M z?rw5oGOXcxjMmV*oK54M*?7nJN48kk2l+GAGn-1Mz16k#Cf@JT`B&&m`q1xU-3faI zw_#s+2KJ!9kGWkg>959#J_!9M>58{f1 zCYq3AZGVLL(71!zP#4aR>CA?1O?o`v!ZU%>SYw5Lael#8ItK$T^xK(V-Shy`SL2h6 zs84>%BjnPs*OXkkcUMz-aIuC-YrnjY_%Mwz(KigDe&D^{m1kaeVNUvM?BQO;_mK2p zj=CTHNH47~LZ_q9Iei;C^x8ZYi`|X>Sww`tiP`i3>m%RDoco`dBq zM7v-1OXzwJ{|4>8+kT(()@_6O60R$jbC|vv-lhKmdxWtM?)R*Z;*EmG=t1oL{t@fN znBYy~LA;0$_V^v4y|JJf1D~P((|MY|)EuL4Y1QEOaehA1!)Hd)r00b$dv^a8XBK^l zw|)PzUg+T7dz*M3dqp0XtwJA+eBO3u{GP6@FBj7~3DpgXv-k?+3Ey=@-W?bVELY=A zjKlTw3ikIwR+6*xB)b-SwSEm52GZw+^^Cs7_Ji(mN)L0yGOfDIUO&FzQ#o&SvbRF0Bl}S|x;wwWAoj}3_io1C>3dK= zPVC(FW((E^w#4T4uA_Pvo1209_~JZNJ-$XsYh1XVL-if?hR(kxKfN=_?}y+U8kz^4 z;l5(t8&Pijxd4^h&Xv9EcHa5*XYU@FcBlr=Oq71wv-8eJZE=mA1YXd|8XeTesgJ?F zv|^Iu?%!vyyGJl;`Wntb!81&14|LX-nGVT}I@C`xQ2Hc?nl|xILUIhFi8;R6|Qyz^61{Sdw} z^KslGwq0IK>mtxJy2d zLOLa=HzQcHC7A04?$R`q*}a=%;UvOI=9>CLfa4`ctrZj|A}u-M;5 zV`J>Az`Nq3^bBqsd8*{=C@5Q6@9lKkiba{ecr)pl(xyC9nw@h;o4R~>PXc91Ws7|s zvk+Edev_T*5bD5kibHje^n~-1ouEz95%M)6>&imJucmf~ILm=K=^G8)e-GAH^XSZ) z&Gam-ALA-|?}Fhh5jye>m;#XP@C+v0gfen}slD97EO9w)u#b{RR9luqYEIFpg<73Z`i z+RM-Q`VV-C_5z*qI)&$xW}89TJ$By>_j;D0-$I`~);T8!W5YM%q+5FL5_=I&^g_R8 z`I^r)aX*>G%bU|+za-A&!+UOZRQ_FeU|dCY0Qo|>)PcvVG*+Q&q&K>ZKXZTm2$c=# zY+_!iT~YcZBk{nVlCx-%^l=6Dfe;<`(O|86xHFfYnd7X*`t`gHk*%{9L)DP``3h&S`wut&7YLk>-@Cd1VosYZ`r*pxe1L*9Hs2YZ~LD0WBLh@~r&zV6# zLTvyzn?QSt?z2dbAs@u68u#49JA!yei9a((JwI!&0m*u{vDG4egaU_(9B} zbbMz8d(x=yN1qqNb37W8ZtZ-&BKDP5%$e>dzvk~8s)*IBVcCc9E;7-gFY^!|jNx(* zwqkv%1r9=88z2csOwDImF?G2H7-iZ4R%~yFkpj!ujO*V7^J)`^& z(f$e2@u7T{O*%*4*n@G!G1LXI7W@qMZevV~u|?0pTBL(#X;l7L2VB9wTb1#f=Ee8r z;LIa-Qmjj2pXMVuZz1o?X4PC)AnXdC=F9nq2QM4D%|9yItI1#3a#EF$EQ_6qVffON8(`Fw-- zWoL?eA&1cGnIT-8YXV1bolUwB_57_@i7$=kHaS227WQx;&De@frTP-AnV#WghkT;E zj)}F9Gh?XN%MXJ0K^$a&I#onxjZzq$MTR|HV_o$dVl_^#3mevTX&=hTZ-e&REAb2* z@5tfXU?QJbm)f*8a|OvZua*@ZT*-N6cV=Jd===@lb|rA>tU8+SZNv5Nu7r#E-VblW znj^-Ie^?d+-|YThfj8tK{ddNZHsq$Vfy}eie&wb!>&l>J8ejAEZ#{) zwmtjUEP7@aFGOG4i0?6BjD+WQ^vu8vpL3pY{XF6G&l6s9p74d|33r?)yz)HZ)#nLc zex7jWdBW>bg`-GVWM`x)99t6%Z;E)s@Lv)+xpMZi?A3*PJHm@UKKSRVDXZ7r@SUpl z(KYce?{)pA zo{v5u|Ap}972s{~=M~|?=>sAINj3Id@^ktLC3$Z8vup5q>E8zba3qu{uCt4iwYXb+ zi3XW6JnHl8N?RQeKkD0IR);k4cbqeRd#EG1G*b5m?)FgdLg?DV=gKZ?33yx2Aueli zp_@pbUBo8>Q5#ZZm-k+0aBsZWMqjY#YRAH5OL5C5qruu>Ghs2hWJR#?WEhArL|0_^ z-9|f}h_y#TF1Occ346UfRQlUpet*ynBr2|q2)T;i?+Uk4j8NDc@&-JHNsrcUM7*u- z-awS|^97>baKPm^+P&c5YYlLe|HL6-(qHBvGyjtCWU7P@Z(5%7Zyr1QFF8gAv;J(* z--Z0C9HuktuLwH7kUuki+)~8kRigefM_GAAWz~}Fs%uu=P+PZpjj0<8cQv~`-WC%# zT{QZ08k5d(9%IraTxwa|tbCoEW5T?^*vfJ8Kl+RO>qGc~|1ac!@t-c;{PJa942xEt zBL6pz?U=sT_0u=u{}K6r`?&|dfAr>Ge-!=)$^Wx&U-`||H4i=kKW2dp4InY{?XH!9C7-{dH4t4>{}4}UymUEOXPnxHn-u-&%XL|%)a}` z|39Co|55z+`$ib6{V@5ze$OkfKm6J+KXbO9LK$nj(;wZ{xSg>Q7GNDXcGu5J2`>qB z`2DyFdtIKTI{o?rt$Is1*se#So?u5*4~FT=8xHFwEgrp0|Dax8st1Bmow}YKUXK_$ z?g;y$-laM@Dg$4D$8ww%V{u!s-Me_3E8z7mj%*L?2!^*U4n-;!;hOx5F;-q24R-{# zErvkbI@))*!d`i~DAchy66^@O5ffDY?d6MQXNgO@duc^QO_d(f=UuPgfc1*^A|14r zi=B?U4Z4WP>-@f8_yQhptenFQyf`na9F-MidcYftO4U;JdC$@_JEV)L zXUdHaevi_*$nBT%W7VtoQLjsCEr3 zdhdsxtCw8&zUsNEtV%C&x4FXCmInQv7GF3L)mNCvT^GNctIC$>Azz>);w>@L7mfHL z*RQIw>-4+c`}==+RYj$4X4D+xUCeegF+CdNUF`I%e%j1w`Y|5Wu!}2C&HGc%*Huve z#g~P=o{~rewfdswvj+2q7H`0fC2)*r%P+cKYiiz?@v~!zdSAjg51D-r?nf04^wT9J zCDdaW(Ngr7m@1ZI-49d6(o+2zOw_UdM=OK8syj&i?6y_w*EOtLt1s2J8s_ZT*Y1mc z2sJ|oc`)qt=q2s0oy}f78Vu@u-Lcf3cuwSM4u+#8r9|zz6xie-Gp1n9U zfiAx`7{HQ2hu3bm>m`lb7nKvwNYv-|>zMxsu$o{m&1dUYt>c^nF0qo?uujYfeSsE^ zr(378@Z@!^hJfDE5x^pPFrX6yebJ(X>x$s{91m%6`H(fri_jWlb|Qvparq;(4vRGk za>zJm*EXJpo5`G5SJMUtq#cBNT1%{FaoWkBNexVDU{V8<8kp3;qy{E6FsXq_4NPia zQUjA3nAE_e1|~HysewriOln|K1Ctt<)WD<$CN(grfk_QaYG6_WlNy-Rz@!EyH881x zNexVDU{V8<8kp3;qy{E6FsXq_4NPj_ZD;^T!Jc6@7NRKp+Kj7xZ;WaGR0QjQZGsKK z_Q3YT4#SRNKW`DN1Gb52Hk<$vk2CFi$AoKJDBYNJj|w+?RJe=UxNFPrW42tJ*K;ZS zm-_je_}V}S*Rc8hu!ms>AS1$YY^p8)2(#tU855SVVZWba886R{{-YNggXMa2o`$D!*#)_v;Bk> zj3(nm&tgo&rx0xUjZAxXjA>O!YbDZp4taQX9Bvb{O+ol2)u0Q(g+DiL>GrueaM_EZpbeKHtZ*p(5D*O#6`z+YO8KejI~E+@EZP9bwur@HjTa zv={1O;ryNK*f!X1rac4N zm-=DB8pyCdeNH5rwoM5n)>L|%6>mrwr>X$5c3S!JT_kf={Gp6jx z9=vbssxy1ZuMIoM|J+vR%DC|B(r-wAk@SB_`kC;rn!87EWh{=1mH2rYcI6;k*pb%I{WGJPqq)yumVOoUxzG`h5JR{hyEj@W3jz=D?~7Vz7I6>eHAI#Ldbv;XW;0 zajFZ_8kga(eUZ#VPfK^@|83#sY3Vuz85@+Yvq)S#CFRQ63UsUdJROrn+^(Om`cD>2(>S*<%@E-_`CE9nwm}Nqn=?&HTiyoTe>cLCtJ>;h4)4sD zX+uJkmM!l|SQ^uitJ>ao#yL4wrj5EEN+Yt!Z?$9RW6?fd_Q`#bEjqv`DK zB!hIc5bGY}!}Bx~JWRdmB8vquxk# zjX&s$M#%dRdFz55&3-TW$xQpQ-TSoxY|SDy(Qw=wxu=f3bpy%ku9z6 z_ASk>h|jGr(%r$3&$Wfbv%5nf_D(r48;&D_;2AjLjAdq#TC~iZ41W;k7V)2sKm;!^ zqD2xxZjMRNLaJbynHf0M2ufhNndn@#cEgB7T~VJKBLejKcvW&2e8GU>!r^Kjs4U#U zUlKGNsI{bf4WAhcW*Zi{*T7(GC!`q6cwmenBoy`qaSYPV1d67aW2|kw<%U&_hS6Xs z<)ZB(eoV`muLV&Zr!CWX>1jA-3OyTOhC1wb(9%Q>3ofwUB1JmZ0$oIFoi!WW0HJmDM9#;66nZxFm+%_iPBKpCQFx%-K? z3>nJ?@7zMzcwP&56a43l2lnUWwSc$uozBi{0dMIWmAq>O?^B%j)8KG~X?Yuow+tEK zyoZ1;=W-JaxqF4&(sv@8%PoDwl6RfpeT;Z#%m#-T)AEamw+tB~-g$dr$GO}DL+(By zxAYwqa!cQ!pC+uM^H^Gp*U&w9xgxu2CCwZ?Cybp2S zFM-1t(+awYw+!j!yx#yC;&KxVxd(*Y(sw|}Eq(j5MOm&DydNaqnTx^UF{TyP5pNmN zL%a(HfG*^66AZZrh1}BDE##KIxa3_gc#mfh@B6`_jcHRD@s=U4W`TDh4x%j_<#H1Y zxrc<@(l?gH>xuN8&JuFdNDlRTl=FTTd{OtOgt&wh1POzGEUl4Uyht$YIjkRMdiL{dwCGXg^0$3#RSoNf0rT z7!^rKUtbn)8PeAaUxi=*%KgwS*HV)Zpoav=MuVSrnrTJDB!CRrM@dZ^2Rc9kNVJ>K zBB-XQmkU5J*p3MSq%ST6kiPLuE`UjyDFvW2>Zo)xNq|3q;j2uWeu4y$A*V8t)O7Sa z(+5caiH>j-{m%40UN!`yY{o^|NZ-j!UZ14z1bond^c^<^ST6(^CINDgz;vi}#s~=@ zLyl2WGjd^vNC1frakLm{Ki2@k&_FzwcdF7ih&-d?lfD6=0qN^E1;A{BG|;0qJ|t6kwwepoav= zZD(3B)LJ}70?3eklvMF7*b^jxM7udUAE>D31VaNoLIctl7aEYh@eE!Eq;D((G3YL{ zNeD2SK?3}VX_r8)myDADGUQYS1h_OO~K!>;n2!;ms3k^u$$qZfxr0)cL zr~}e>+!WweA;2&RkQZdy2cXtVdG{qlj!{w{D1jX%0VF!a(Mq7hybcfy4fF~PNZ%mx zj5;8F140AR*KZ1Nn-HLn3xL*sDbzYEmoy+l4pCBLRyk02<2>5O z5aj^uD3^tTAj^P|Mf%>b@o2QzgJ|P6O6_w@y9_n%vdug-3PNgwA~oq76VdJv(MEZ+ zV~ElTJH%6?Afz@VQj@+@BHG79v=NF{kbx+tnRa@Afz@bQj@;JB3iSE*3YB;3Q-<|9p|Z05Kagmzz^@?aMBH95SEsQApn0Cc{s-`kzzYW!N&VHbUTn2(6Lp+c7iqh9(<1Iq^ zx^1EpXcfHoa^61$hk97v56h4^@xEds><|}}Uk-kS zB3d_(HjF5b!H)CPC|dI_5f|L&zrF)5v82Z-&NJJNf8nA|$Xm9ga!_38yV`>dgT*x=g;;^!CIr3Rl$<}fikX`mi zC=4g*WNNQZox;Ef{Ag)Nd&esSEU~x%Hp`nkeE#SnUtk5Lg<-yp=Gqyru^F2)oR1i` z#WPd>=YCWC*>1SRcEik6|Cg8~iu)~v*DM7mX8*XD=IfL>=!@1Iv5*k+7jj@0NBNo# zJ6<={S@$KaZpvH^vNayZIxU1nbUea-I4Ye(6n9z@-E5A=Xj$+5=R z(X3Rv|L-9*!Sn{R5z!mc-U-D37l4L66p8_ke;C?hp%{QPxh0(Xi-ZAA3m?F-pF%Of zv$>bPlcX5nITAmtz?3L%w=i^;n___Haj!OTM1hGOcUKtd%M=3~H%1to1E;`5k6R+g zC(2JF0ni_(zARxtkC6sUvf7BxG>Hp-+{2YtB=KSiaR>C%B`)qiG7$I-iPuYrJHT;= zhq19ZcjXUo!PjP+n6FDXi7jKI{y!ja?0r!T_*|-Z6PLh~dxw4E##-T6KZTTegaFK6)}De4w9~2EQr=u4S?_e@TJgng*w7 z@kBjSIklqEO~k4F1Qh%+nGWF{z*E(?`+%paZw~-ZRo@;__?zto5c?*6WIajR*MvE* z*$-ri_9uk;iNa@4K)inZLZLq-adJ+j(a#?(dU}?|&2cogD;0cH;>&?oAzf1siagp4 zz)d}feDg@!Ex=RgLHnr1A5Yp6MhmBwQ@a~{O#PVc8s(y4ij*kF5y1usV`{mdkT~LL zk1F&Mr+!mAqTnY5J;(pq!V5+e{FO9v{xuE$dTQL3nFcRRgI|&w=lKIIk30j!qh{YP#7%MWPC&^_c%v6T?XARO!^*) zqaVzm`+|x0DmdL2OuS#g>Aqm%g9`p71s|3;=rZWOVA79B9PNRZqwEiJ;}S>yGN?XG z#4{1DmT!}!F9H1vpqK3(`$UC7xo7-b!P_KG{QpD2LlOu7418iW!6&NVucfXhN%F)5 zy*4_5zk+AlQuE2ox5{_dm`vA+p)j5(r5Yz>&Q62RPlHF&;LoPUv!$dXPBl0j~77&(=%55&o&v{Ik>Cud^RcL*JJM z|Hm}=P?7I9<}ZP(fpnHQwGV`M@dIP-Nau>0O`e@LLZZOBj|sr(6=e{e^ls?N*wj5 z;7tWL@B6?DGf{cW^@@H;kNQ?PMZpg%_y-hxK*8q&pSZq9d{zR_<#g8i9^spTPh8(4 zJPLf`Iv(Ml0X}iP&I$Z0$QQz4#Ip;!(t$sRpA@F>B})$<9FYVe(4VsKwZjspbpLAM z3p*u_zNGMsh1Z{!ILdKKfralnB=Pycudwi|;{w-?0bc{$l)p*R>%cc#IDei)L4^A) zKD&kpgrRhI>HKoy&y)u&`i3?cihg3s!xp|^uf)fJf6c z7v!6IBXC*I@h+e+gc}NO=9ln@*`LT>LPnYT2@6-(y{A(BH2H@laW43LQJ0=%XX>Fe z`18|kru-QuA4HvcJPrLHQ{&Sz)8KQ`;N@xXHAM-1W<*)SOmkUyW?cei({?5FBi=ug zLDL>gL;o!c&nZ^;-~~Z*p2gq$GWom=dK5j3e6JK&(DSr$tK4&D@o>gAV~H?B!9x=7 z2R_ZJKMPMtya)KD7QO&{xk3FZy2iq<-KXG6JuEf#;{g3~i~gDi1wE~I71dezhnfU# zn-9Fv!s|`>`+(nS;j53ybUncDu<+7D5+4N~u<*6VC64kb+GXMOgA!i|{5}icRj=Tm zvh;@cNrh;jPDwlye76QQ*I^=;P2knXIG0mHXo^wY>h1Mc+^?=o#cHQu_H$Gr!Qs^n8nc zk(4JJ{HM>f@Xl_*$A);*XIuCqb&@~ipFZEhzi>+8g}@hC_`$uB58+CEt2`j^>BMJ+ zr3bvfD@-Qv8!bK$$$VuJ{RRvFEc|3_n}L7S!fB{ThU)Efw}p2@FJ$r#1K(!hUl7*No{F9y=y* zRtfw=7EZ6PkRkpvYApQFK7rG7mKir#`gsQW;s$z|(S$}M%TJ~{IWNI>lXfztE4CV<3(pbcPBV)DnC^s_uBbQW zi$XgdZ;PwLA2kGEGo$Pxu9!iWtUVfIc=^;I zmq5Hy3KZ{q2BIyX3x(+z3A=D&3AlwmVGO2ADp*T1XTPM9#X=p?7QY9vARbSpC1TLI z12MxD@&SgI3xg|<;rB(NEQqhG8tom>H6-(cr2!(Mh z2m)x?fwy+4qP#ob!o>$z-ECoX4(}ej(9U;_9Ww6s2EZ=nj_wRmuE{l`u4djE5aedz z9WJ-qUR73J4Qz*OAu&ICpk{>P0(*?zE`I3~Sck{g8eynt_>HwUM}s@u2$pYF+bb$i zI#ltIIK{$MG)6r`B;>-kf!Qu^I0z?3FJzNMvF$FrGrp6qcA!6Lr&JYQONcV;b+zL? zZPBx!OF_*bhS4zTUR($c;-jv_D^U~Poq|C>u^1I|G0HpQjY6Zy{&q@7sK-y2E#CGH zxS`;VNICy4W3g6mfVY3>5nA-~4DWE8c^5p;juGOf+8OBZ`@s_*=56Q96LGe?{2ja( zgCK@~2k!%TcV(wdrv}=7cqcQ^E5+=7oKIoLhkHHVu)W6<|l;ZOfaEQIgzl)DYCBzeR4rf^!XpI*e!= zSbB_BZ`AO4-Vx)oxCq|im=X52qO13Y(c?FVUE!VYjC~45JO$Z!_;;fHk$1#9nFZ$> z^RyT?@D#CI3=`C;{wjx*x`$|8Gi3}um2t81dYu| z#f+z9wo!h%MDU#z@dO?+2ck*w(ak%l?`E4M2GBbO6zG??(fxM2HyoiuF;K!*e*u!H zD-24n#}#$qj@yj(Y(fDK01V^sOI3!(u-wHB9xi#MDAJnqj~QwipqN zuqoq6j(Sp&r_=!{<4`fAjwC}!1XJ&nReaAph(Q}i)6^k5@7+m%TouSAAK@Ap_8Ds$ z8dn3r;86*#^?O}m>b)_HGj5@QB26N2Er&=7sX-re=VLI+b|ldsVKmO0gy^nK0j>Hb zkO`ebA^}+gJl^JxRs;13!_i1vyIC=~L^NN3L=C7brlfKN%+F-;lC%(rDqIJKsidHk z-97ejU8gMY&trsmVsw8>bzsi6*+s-)fkkLV5=l@*m$mF`LmvO(gB1PxKIAwNby ziTsM0pr}Viq5usAPDh@G`o`_XdU;!__0up44G}X0+?|Y;P^8U;v~dwMvz97|cLb>d z_(aX*w%z2m{VZ-tK`OVT0KqNg6jpgJQ#}X?!y=lzL4}RfKE#v{zD<0zWBFH8muMGL zNw|C_39_4`F{-W1&RZY=stK4?(TvmJy&fp!u!mE7FptAr-Rot>hA8G^+@V<`c`*@T zyagLgMm>fYQYzvpQsEPngmekqXu7e2@*4EX*xx>#uPIXQcWG7G~xUythLY# zfG|&acstzHSoeqqV}yjams7~<2yP#6+B^KrPV)*1tK&m|Tq&$Xf#KG5b2ECFC~?1y zPnih8^cbrZ2?$iTiFpQ~b-_Rj?%sYw<_=tGih&R*l#qmyrY3^f2!f;p=&f6rQRn3m zjMX9Z3-ve@4-*n*taDM_4$$xVsF#8^H~U(daXaRCNuwZMpveOZgI?N%1~GeSqh_F% z_Ic(INwnu0w{t?e;U@Y`IpXF4RO;fsV?_NC4yC-?Bz4rTsB+`rRrzg<0;N349d&|E zxH_mciG>+v=Qj|$7)4>MwgKvrSU5-nGCRQa-iXgb;}*Mxtyza#45ot3b_Ce@qL1lm zj-uenLy1{I$ZgJfPB3c2#AfjEk!k<_?{+llF>?N^dL%xS79wV8LlMudeLJH<{ z9)f8P6Y(Hp#+UTw{;tElJk7N$y67Qv+ zEB%kBh%d_@=ZteRd#i90zj%I?F#iKr6Vf-|Z#7-!Oi+spRi1-Ne6iorY(6Ge^ZC8S zM2+8ZgP23keWW#F;h}gemsBXsBjrOSN(l1Mf`dh zU$~4_bHDYY>VGIj{5U7om~ffR&;8bq8vg~r(w`~im+$>*iT8i^T2c9xn*W!8Ovu07 zN2Zzk$#Tvm|G!x2%l)qAzFf`RpIbOQA$?W;Un=P*lO^IaJvksDFTsC=HRVqx)AC8T zWR?mi@vG9m2~_nbh;SUEtjTnOYm!muHF{XA_!T-FSS5X=Bh@JMIO;5I{MmbCq`#_> zlj*gqll=;%HYX~56YGys{u(-%!%Wu