From a912ac182e585cdbe35340d5ae57df9d505c1195 Mon Sep 17 00:00:00 2001 From: Damien Diederen Date: Tue, 9 Mar 2021 19:55:27 +0530 Subject: [PATCH] ZOOKEEPER-4232: InvalidSnapshotTest corrupts its own test data MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `InvalidSnapshotTest.testSnapshot` starts an instance of `ZooKeeperServer` on the version-controlled `resources/data/invalidsnap` directory, which, as a side-effect, \"fixes\" the following snapshot—which was broken on purpose (see ZOOKEEPER-367): `zookeeper-server/src/test/resources/data/invalidsnap/version-2/snapshot.83f` This status quo creates a number of problems: 1. It makes the test ineffective after the first run; 2. The file shows as modified in version control tools, which can be annoying; 3. The \"fixed\" snapshot can end up being committed by mistake, invalidating the test. (\#3 is not theoretical; that \"fixed\" snapshot frequently shows up in pull requests, and was recently merged into master.). Author: Damien Diederen Reviewers: Mohammad Arshad Closes #1622 from ztzg/ZOOKEEPER-4232-invalid-snapshot-is-invalid and squashes the following commits: 8b48eea98 [Damien Diederen] ZOOKEEPER-4232: Ensure that ZOOKEEPER-367 test data fails to parse 92507563d [Damien Diederen] ZOOKEEPER-4232: Run InvalidSnapshotTest on a copy of test data dcf5604b9 [Damien Diederen] ZOOKEEPER-4232: Restore test data for ZOOKEEPER-367 --- .../zookeeper/test/InvalidSnapshotTest.java | 28 +++++++++++++++++- .../data/invalidsnap/version-2/snapshot.83f | Bin 189686 -> 4824 bytes 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/InvalidSnapshotTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/InvalidSnapshotTest.java index 80267054a26..c47a60f357c 100644 --- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/InvalidSnapshotTest.java +++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/InvalidSnapshotTest.java @@ -20,7 +20,10 @@ import static org.apache.zookeeper.test.ClientBase.CONNECTION_TIMEOUT; import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; import java.io.File; +import java.io.IOException; +import org.apache.commons.io.FileUtils; import org.apache.zookeeper.PortAssignment; import org.apache.zookeeper.ZKTestCase; import org.apache.zookeeper.ZooKeeper; @@ -61,13 +64,36 @@ public void testSnapshotFormatterWithNull() throws Exception { SnapshotFormatter.main(args); } + /** + * Verify the SnapshotFormatter fails as expected on corrupted snapshot. + */ + @Test + public void testSnapshotFormatterWithInvalidSnap() throws Exception { + File snapDir = new File(testData, "invalidsnap"); + // Broken snapshot introduced by ZOOKEEPER-367, and used to + // demonstrate recovery in testSnapshot below. + File snapfile = new File(new File(snapDir, "version-2"), "snapshot.83f"); + String[] args = {snapfile.getCanonicalFile().toString()}; + try { + SnapshotFormatter.main(args); + fail("Snapshot '" + snapfile + "' unexpectedly parsed without error."); + } catch (IOException e) { + assertTrue(e.getMessage().contains("Unreasonable length = 977468229")); + } + } + /** * test the snapshot * @throws Exception an exception could be expected */ @Test public void testSnapshot() throws Exception { - File snapDir = new File(testData, "invalidsnap"); + File origSnapDir = new File(testData, "invalidsnap"); + + // This test otherwise updates the resources directory. + File snapDir = ClientBase.createTmpDir(); + FileUtils.copyDirectory(origSnapDir, snapDir); + ZooKeeperServer zks = new ZooKeeperServer(snapDir, snapDir, 3000); SyncRequestProcessor.setSnapCount(1000); final int PORT = Integer.parseInt(HOSTPORT.split(":")[1]); diff --git a/zookeeper-server/src/test/resources/data/invalidsnap/version-2/snapshot.83f b/zookeeper-server/src/test/resources/data/invalidsnap/version-2/snapshot.83f index 1b563b6ed6dcf472f83f2716efbeb9f3130869f2..26dc5f665218dbe5519a55cbcca2bd983a6f0e17 100644 GIT binary patch delta 196 zcmex%lKY10gc*|y?*+3OGcYi)PM(-5Jo)n%hsoSOLMHot-#dB!w{4SOe%&_N`0M(~ zSwG_^i~o$AyzfWwtp2P#E-#~YraHJX8IUEx%_kFWH}%{`YCd9 v4iIa837&ik$d`Q}$G!SIRrNjl^s`r2_cJpOx4QO?ueWE%MpYeH@(b4);9uUiZ8cj$-V<)Jy+g zdU_8Yc@Mlc9&;?_>6l|Ltb|&_sGp%+<;kyajmQdc&-)RXk2yAwM^Km0DN6DC1bb&| zMD{AaQ_hVajwI}uefw~Dln$3@o+}P$toL)R@%q}t8lm^&Q0V(vW z(8u9W=;M~?v#Amq=r6P?;=&rC58zPf155PTRS6CBms%BZVU5rSaVYe`CHfqyga-O6 zt%|s?M(E>lDD?45bnO6Wpug7YOufPyp-;e}&?hX>=Ttg0&|hy=#Dz6NpNK=DPh6tU zrAla^ztO6Q3u}Zv35PJ`=` znD$Gsx$g{0h6eZ(t%|s?Cc!jcg3WtpR2?+Hf8VNz3u_Wg>m}HncP7V$O=<~KJ;=&rC z>1(0Q*cVqNG|<1=s)!3~gr>8FHfvu(mC!(6pj8nU)(A~+3vK4Uq$;6-zEGhe*txKuqMIPT(RV(6VIn|C|7*)FIqRjtVwV+*L}yB z56`c1Xq*cCSgME%YZ6?|b>A`OLRce4Sw#2#r_{56!iNcK5?sx7-!bMv7$Zg*r;A*b>jxh&bQ034#1xL1Sf?1Q`YOec^G5^7DG0Jynobd~wn}an8uI9S$7<1pz zDu)K}jID~eAXngOuKSKL@74AzJL~D{lzQ57?4CWW$raOjX%KTBOdO-kjE9<7IdpTd zM%RmKu5gHX@7Dx?1`l!s)V~ti_%@t^~_2mSB2Ku*J z6>(vW(A8XlHe+92mC!){cB?Zxx6svGfi`PjLFv#yU$b=+%^Iz`nk&#|?kfra4fM5I zH_@ySx|%D{X74Kr01fnYTQ||H5xSZy&}Q%}3jhuD^;;EjL2jYB4|z)fv{{_np931` z8@9&lYZGgD?bv^)x#DQKt1qKUXn^Z>hPNtPgEa}R=87dR!N;f?8sNI)s5_7~IBODI z&2_(DJ$Sj|fCji$UVljh7ZYm|T+MaAH&^~K9MAyQFQ{J_!NtUy1Xpw2@6DBe3ZR&#XysHP`*#T=~avKx3tK<)|x31Q!!)65K7ooX00~%{CbJMt6gEeffd>h$Zt(TzV#i-7AW5J;@_DXlk&F}-SZ^w0W z<>AuO*HaBN)_Zd6PTFC|tPz@9n%6g=t-0b-83P*VQ(F~rVU5r{8$#O&xq&L7fqrnS zA}*{En%i1vYpyp`B{a|vZB@jDH9~V^3vJEyMyiAc`m|O>Tv#JCx3h0idz!N46^B!WyBuxrMgodQ(+G1O2F0MO;`TbTwCOKC?KtKL<3> zk7#=U2Zx(B_rz|hUXngr8` z2{s>IL*>v|@oicaabZn@X~P7Y3vo*uqi$_)D=>6(uqMGYVS>$rxS@?vH@0^c7`i!F zlVDmf!RElxxoA+>E zAEWN??;|vHbFhZZmD`QY)i&GBRSJ#uKCU$)dlla)cf$`nuLruh@^ESC-%|}V&@XFM z#Dz6N)6=|k0&S-LeN{pO{i;?)Tv#JCT`jcP`cA5Z2Ku$Finy>wXr5@H?Od0E%h0bE z8oD`HBQ%{Yv|0Nu0zhNcZ)jD-g*8Ic+d`YUag~TsSBp0a4c#295xSZy-bQP#b$x)w zs^8qYiDr$^)m(u#gVz|BAX zxgPL){%ZSm8}KxNp__v>xni0yPlb8#cU2CJ6+fd@5f|1ZxSHz$e{#irMU1+?c$UD> z&B2-kS93k!Pp)-8QTG?m5g58TSd-vtt_Qri-cIGvI2F%r-2}5H!8BiMCd6yQ3Xlt$yQaUuypKaYlvqq~vfJ454K%222EC4jnpKDdbg*8G~a|PPo#)qg98t5;! zINO>b+})?6Q|bZDTz)T)RJYqaWWu2{7-*V9x94fI!9o!PmCroXjnGx)=l4h{6z zS`~3&jaE&E3vCvExGJH6{(7q-F362*$H7C*6-P_M+(UKH0KdCc5f|3*YKPN{BdvZ3 zzNhM-0e(-bA}*{+a5dM1-dyqM5ThO;-YYP4bFe1C)m#sHbG^69p|RrkwQho0lVF-K zPlb8#J}QR>_yetqxUeR{)m#tyh4j9vg9i9RtxoJ*foZ^8vH9x+AuqIbr z&Gn!+*ZZpu8sLw#ILRWJI+M4TAR0Iw5>01xO?fii?Letf}bOLS7^{J|X2Ko%Giny>w zX!=@cGxpO|2@Uj_S`~3&jnD^iD6}=#r>hbg=(Dsc;=&rCxjlro9r6rSLIZu)Rz+M` zBXl)aoNH^Y&r~He&}VCPX6F{Vnk&#|@MkF<8t8MjZlYPERabKb+APlP&jAhexm)A) zwTU&nb{v1Gx#DPP7dJg*6G@ha;_i34WC7paK4mRz+M`lVBP#!REt9 zs}36A@3$)A!kPrrh6y$oK1OxW0RN~}5f|1Z_yCR)Y#w~9>YxGsd8;BWtV!@e93|Ks z_&C);1N@6tMO;{uU>Y#N=D)|Q4odI?hgL;gSd(DdFTv)%C#Vh@;IUN^7uF=Wn(OiY z&s?9VI%t6BRws6@z|~xj_m73^BOHCC^S~nnhHehlhzo0k zuI37~HP_dw5*oXlt(A{v6OiU!gT#Uz=FNi_!^)nk$Z$hIy_kp#eT$ z>l!m&V@-mqxnjvn@bgp-4e$k86>(urf~&cn;7_j4R~|BAXxt`!pt}jwDG{C>!x(Q}Yu9ybQU2Xn* zvC5$VzG$l=F04r~?U!J4-%C^n4e-TV6>(urf@!`4oA+L-I%t3|*{X;OYZ6TBCD@$z zGSxu?e5qDNT#zf=q2>yQnD<_;N@$>evsDon*08zqRIs_)iFmzgpaH#7Yed$X>-!Ml zpMPRER~{}c{Vt)QfxdaGA}*{Ex|%D{)?EKgmC!)ns@0jDTj*-8KwESDbEQKAecRSe zG;6f#YOX+AbA7h}&_Lh5RS_4~2wlw;Xlt&2p-O0=@7(Il&MkB`SD?+@f2nk6pzqSU ziDr#feF6^Iw}Cc$zefOQpzqqMhzo0k=B5_f_Vs&J2@Uk!TNQC(jnH(s&}MONe-3D% z@6j5suT8Aswd2G?%@s#W!@NP2&;Vb#RS_4~B)FO@PV^G|M%6(BeAQMbcCNtHTu=1o z`X(hq1AO(?O)zV6#noI-^yd0zl|uu3&DKpYYZ6?|^+a#3f2wk5fUn)U31&@#tGS-& z&GjuRhX(jMt(#!hB)FREiT>H*TU8DX@O4`^!K_Iz?U#Gn-1jz>Lj!z+Rz+M`lVF-J z!REcUs}36A8@DRr!kPrrdI>h?y+d`-0Ng*;7uK-3 za>Z<}w%+%v1{%E)Q!N=h!!REpbsSX<8 zQ(6^qVNHS$;3&c7!M|1=G{C2}D&oSL1k-{EHV6KV>YxFBP^%&?tVu8pm|*kYhgAm+ z@Pk_wabZn@tGS-!A6ovc>YxFBNUIY&SKw-{C;0>0N0bZ=@M*1^VAkY{tGS-!&FZ5n zhX(jzt(#!h(urg0ox4l9x{WXVpOi{M=S2cCNtLtqC?Ceoo2I0KcGh6U>@iadvBh&4r&= zIW)ld;Ivc`7uF;=yEVb)!7r!|8o-yfIYxFBb*myStVuAGv z!apDXM=me;JX~7(zXPym4>Zu9ZB@jDH9}W&1=>vgQ&mC(T~`h0=3tG`)m(u#TmMV| zXrOEB)mB{NvqtD@u0Wfyf38|+plkDSV{HxA2wlw;XtVbJs2&>V+9Q1bw+3s3rnmJr znz{d1_0T}q4NcwPD14Z(MrgWQXtVb(R0Iul-F4Jmh{A^nYlJ=#heDgd|4&8GK-XOd z?Cbcee&>5={H$ zb~E?=P}R@?f1*_p7uF=0=1Z`7??Q!L(k2&3Qjo9W=oI(5i?FYZ7;; zxxyjly`QKO8t6~AI*B-<&&FV`!25BOVDsUW)dMuZxHm4%h|kOwm^MtXxp2`-%ssh7=lzy*_o8fd+Zr|NBu;9`mzKDlxqv$@(X zK4(@8(16x;j@K{_UKJK&xFlZSdigz1IOGMNhf7QA=K&h%UvFIy5BOA8I%8q6(pHCLdmx#|z64dO%`+q#Kn4X+*bl}~ZBG|aiO ze1HZR&Av1vJ~LO~YOYxF5`69~9H0S&sY^5BGjj#5=6ampnx7{N2WS9m<@!q;i#*ok zsi@|9oL`pCD=;*`wQ~I>t6C|`@31Rswd^O9=*`_(KTpaH%>Yesx#u2y^kjuLF{1BhcN-~|PSZVl!Nd?Jn# zY~B-KDBy(zhHee!3QX%I*qkT8P{5-FhHee!3U{cv!XegNk50e#NQ6ig=xWKE4m9nkx@$9YYlE8Mt9EsDZp@YXnxN zs1drFE6~Jr&_Lg)H6uPVx6nN8LYu*_kfj4O(6?;Oh|kO|G*7$GW^rzRi~$0^bx$$WJqEUE`~q&*jlo=jtGVJmTsl#A6hqx%)ZXR^+!)LixSFef z<RzONVqG*j5hF;r8%x6sh7 z!Q4Xgy%gG->-7>aKx5VSY0Zew%q=wEL!s?$yndDr&_Lh6H6uPVx6svG@itm>y+M`^ z&_JKu>d?+DbTwC?&E7XuIyBIyv~HqVqs>>%6=*Z~jf92<`hl&RXx0c_%@t^~IJZ9r zZ4l^FTO+VCg=KiPtFL^DqorZ4oRtGKz_)A7h|kQ8ixL)!BdvZ3#`TzEfCl)Etr1w6 zm@6=im|*iEuE!ihU6+4PVCdFhuE4Zmg3X0j%klvlEB^h~jQGr4f$M^L(3|Vkvv7b0 z_)e{k>|B9q!CbL9P@Q9_PI6~~p<9Ew0#|cAX#Z``@LO3#^V{sP>*SM7Z|!V zm|M0u7KgfkT64wY8OKnMY4;Esx;2;^&6RH+o2y+qZ<3`0G)}~WS|hSI<2&c!5AYMW z7`{4#j^=uKxU}@`vuJ<@`UR~S@tL`Wrl*BAQ{N#=2WX&Q*qRZanOo>;u2{9%`i@yT zKm+}vR)=WnyljtGNPg%~cnk0UGF6w60L&CFT~onk&%OTyY8F80u2=DxslU zgSmyS<_femS8jg{+8|c_>edLXOko*bJL)T+;^@N498!mywg&j&0z`qXn-Hlx(Q}Yf~&b6?;i`_TwrK`AKAJIW=(>txgPHy3*SOuXn-Hpx(Q}Yf@#7u zjd}2vSw27m{Fv5^_{>~^tGOQUPbs&`!T}oKr?fh3g3Wuk$?^djD}GLEMto+jz_eb1&3Sn8;~44* z@VNp*w+3^CJM^(I9AeECH?kZ<-OxT?Xz12pZZub(V>VYi!+)5i12j&=pR`6~t+_rF z5&rr3>WpfxJX~7(0YXCq{qEL`_&l&i=xVM&TXQ`*O9yD6-`ncY&MkB`SD>xAo}zSU zpg-8UiDr#fUCk9}Gxh_8h6ehht($1p2z?NT?At(Fb3HWy12oVdYt4wy%q=v%Ewq{Y zL0LLL1O3U?jQGslLUZQ{ZJY1GSvo)i{pr?>_{`iw)89gy!5@;P12oW|Y0Zew%q{du zI276}&h3veKm+~x)(EUj%#CYDedQD1MKkzavvPn2__eJo%y@~p0#|dz_ETC(Oh{d*j(*IoTfx*K)=`;k-Zt;ISHT%VMs12oXzYt4wy%q{eBI277!{YP0k zKm+~#){OYf+(I9~q0rV`pPZ!wG|)e6&4|y;Ep#7iQLj(Qat($1pXopmD1={TWG@+q^{%Pwbnl(aKa|PP=_0xrh2Kr~Mn`qVuUCk9} zvpBau25k`NpSMO}WeUsi`dnZ66h}+LJS-~*Xn?=my26Z?m>U-*EEGpt{Sy4}$lWtQ z1N_z2jQGr4foa49n-3q6g#$Fe|I(TfpP4H#ZJ1zlAs&G_hI$m<4VX1~j%mUKn+Nd- z%rVrX@Yl6s=+;=u-)voB#!JlAimSPv=so3eSw27m{O#6^_{>~^tGS-&9}7P|3kPU` zztif-&MjLUit^t0W#s@R_|&Br*TAgdWfTj=kygKa3!j~p z12n+DXw8Vv%oVtr>q-8x@N=?ofCl*gS{>QB0@H@MVsqhhl?)B=FIzL>^T3)s6*OUj z&4bU&!U0M!KVm7(h|kOw_#loFYz};W77ow=4y_sSnYjX2b3Mub!QBh8aDWDQYIS7i z3QYUuip_m5R5CQcb8AL?9$1s-nC45cdGAG8I6wn@L~BNTX0E`rUV_beFV4aN8sO8l zX2fUa3U}zq6<#s#y(CKqXrPa3b!g|}E1zhO$*u7kB|!stuGWa48!pFqXS_1&Ki4~g zx->FA%i%_aVbbto>Dy zdaW7pnYo4L1w&}NV*F*64$wf~yfq^}Gq=#ZWC(573~ql6+91%kY>mLm6qY$%Yzy9x z=NoEXd|g%!&;Xyib%hx(F&9_4*vdH4PFXtf^;teZ1ALy=jQGr4fwNolSC|jqkc9&@ zz~^msWakQ;-I`!?;Tx3<4e*9xg5Y(JUIEf&PQmjQGslLhr|+ z&}Qnt%hCZF=s#@Dh|kO|G+iyU+4^HyIzR(`_tuQ~%-llL*Fu}IKc1xnG|=~K&4|y; zEp#7BFLj!%^)=e~Pv_q=70&VvGd!eC$zF+Gm znl(aKa|PNA{trS!1AYJ2O*CtSuI37~S)AJ+gEk2C16m`nGKFP$eXg&3ile1r-j|gF zG{CoRU17#c%#Di@7K$USehGem5g3W_}m4yQ|z_)MBh|kOwxSA{e?eXO~{!kVU&;Z}D z)sdYma5Y!_n{!L>Un?0J;NNTA1hXc$TQyhwL-Qs0Zv=)0_)e{xVAdqKnk)W^$rAiw zfuRA$6JBXXd>&Yn;A*b;cxMUz+bkTQ0lZ7ABRjWjaV%cawb`2MN0biTHJUYia-~7o zT+JSz78DxLlUpOQ)?B}Z2=^|o5Og%x%fscV_(}lw4A4M7p*15uGq=!Ove35buV(20 z4fGRRGvYII3r$xGZMObemJZNBKdCh%J~Ow_)m(8x%-H{ur2{n3Pi}Q+=N7t}E6`@` zuPYrI=%=)9qFJN2v6?H;X6}C#8XD-Qwr-+XBXl)apv~Uj5E>fjr?qaPStE2cSD?+{ z-xL}e=%=@CqFEz!HCLd`;@tii19aDD*6`Ya+h!c)FENAvBSIJhG{C2{Mqp)PuE5n? zvE-!_Ka-UMG{C2}t}x>z<_cWRb>-^u*(@KR0e(4g3W)Q&%yy3 z;D@(n#AoITO#3C+-1mhn9H0SyWNSuzX0E_AUxLkhU(CV*8sJB@X2fUa3Vafd5^T=< zQWg%-06(TRBR(@%xI<5_aEN*D%UL==1O50`hjwl>SMFmrSL-GJrbK8!pV=Cby&2y* z5C4mw_~+xRGpf1raB1luWzhf)^ru>P;&vW0x6svGfwt!Q<18AWfv&Tyv%eEr$ILBs zHCLeRg#086256w`>a44E;dUx>3w;2G?At(_vHv@Z256w`>a44EMh~BvTWC64XtVZD zvuuC{y53H`y%{}xW^SSBZK2KFKg+TK8t8AgX2fUa7MkuB+U))FEFGYM{!VK~d}eN; z>2IOU;Qy1Q12oXzZOw?!%q=t>F0@&k+aH5A2=w<`Bd{`sWq5tAuY8K5rD6U(D+g$R zpVPX+jF*@j7bWaB9LbeSFy1nbq29XZ3k=;F%oVtr>&jO?;SJ*$>WzDWz|gJ1T!E{( zu6*Uwe`NUpjZ^W$)=e;L@*LBIc`D3<|C!|jG{7%u&4|y;6_^%GusQI*vT%R~_!X@g z@tL^-(|`#!|6%8H47Gz_CopttFjrvOFTv)%?`8P_jTOJXH6uPVS74ei!R9>}f@3IS zyg^{-)?lu{v|fVEc|XYV0U9fQb8AL?X0C9Dnk&3w&Gm;_IzR*cj#h_uZZubJH#S$> zY`;(CDBx(AAF|PjQAWiLhnad=w)*q zPoJgKK%b@6p`BZ+uI7qWFPrOl2Bkv-eb&}ZG;6f#YOX*p&-Hjlp`n4sc`VI{&ru_E zHCLdQ)*f+gIjDg=dus$%rl=9Rnk&#tbB|}vT56!r(Yiv7m!d}KYOX*p?LFdc9^0Sjdi%~PG<0i34KMull}~ZBFwF3O zSx)7eAM~TvEpXH%m{!#4m*8It3=Qy)TQ|Y1NidC=VDq7>M`(a?zgDV{33COe4HIlG z9I|eN2C#0wcx$yWm@6<%m|*i@{Cd23&;ZxX7jLXK26F|b1ruxzoU(d^2DmP$y1-`i z@R_*+S9A5Rd>ZF0q6WC$M7^npBRf~%YOV+DW8v`#B|`~*u+BAgYeY@%ifXP0>|^2a zbXiUfuujQ?b&A&DQIp_mt_SR6;qgd;p#iRy>n~XavnJoNL(LVYUN+b9D50T&-l1z) zz7{q7SeUzl&DHhO3N``46ks#_?nq&t~|W367}Yc7tEijvEJWk zRi;VQ2u)A3xdLsbzED<<&_G|h)tGvLxwYzQu0WfukIwuN8tBWkX2fUa7Mi}+s?FFs zK_fKK$F`zsbuhQkd=G`TxA7ubJwgMGlUJG%pP5_eYOXjT)?9xrOGjuRaq>zt;xls# zUCk9}Yp%bZr6V+uIC-TR@tL`WuI37~HP?$~=?D!ZmQk7!pP5_eYOX+AbLIBOpbY|v z+)}>2Ho`KzcGOos#gX>Io*_#{+_rE~19;xn2&_y|li+HuSn?7q6OYgUpRaX=880z6 zuFnVKA1S3L&4=gA@(~)~3$$j$XXXk_8z$IXc&;oQp#iRIh^{FaJ$z=az}QCun+J7W z8=(QND~PTrha>YR<_b&;=8DaM=TR~=z~w|aGoy#kBWv=_qX83a{=+Wd7;86_S!AA! z9zHWyVC;K=&3)Jf9AoW<+RxhG89jVvuD~>3uGqYH{wx}yaVmBLW=)=olMaE+dA}+! zG{6^c&4|wkYOXw7TAJR$7@=`0Zqgcom5I59uI37~nVRmw7@>i_MQa3BCgv8JzlCiI zXtOo_gE2w_eaqGetW3-;G=GcGW^BF*7$Y>$w`z^R%Ea74^S20X)~1IrMrfdK-5PYS7_Y?vnIjST(PN_ zU|k``x?)^OVCdFhuD~>6+TDDJ`(=)??whY7Fm!7$SKv0gx$sh1K0@PET&;Bz%$htE zZFTb?Zo@gox*fl|z|gJ1T!Gu@=D^>~@(~&HaclR7)-R1wbz|gJ1 zT!Gu<=DuUHe1yh|f2Va5%$i(rTim>dhX#(Z9v-eQFm!7$SKv0dIgeW$V}!3# ze02tw&h_$eX=%J!9Amv{_Z1qtHJDpyE?sCd^)(YPLSxnUYt4wy%q=usEwtJCT3I?m z1AYJ2jQGslLRWLe2{B_|J4;7spdZlc(9SJ%HCLd`+SgG!G|(rvZlYPEx3QWl&}Q!I z3JnePDXp7m)(BnA6=>Uh*Ap7LYcy+wuI37~8C*sl%h;#tS3tK0a|>O~6=<_Kw?77L z5UYMrYXnxNunaFs^_5R?v@{HwDaTk%_4fsaZVl$fMF|VVkxtAKe8nsup|RpSwPwU; z<_b(BCfIza?mSkvzKg)nt-)M@X~P7Y3$L8zBQ#e02dx?LdAu@S%X3`K)xYv-RNJQp z_^z!eUma1C;A*ZX_(yBm^HcLYOW{v zrC;|GBQ#cgk5>M|wZUA0tGS-w9}DBYf@7@vi+c(T-5SglxSHz;{;}|HW%&q=72m6M z6U-XfqM9qbV$D^zDkC(|_i5ckvxXlF^Hi|8+C}JwSvo=k`ry`xtTk77GuDf*nW3ZE zrg*rt^lbvLXM_g&39T9NnYo3o<_ff#8jm;}BQ(%YY>mLm#N0wxa|POLeY>n3p@IIR z))i{J#N0wxa|PO(>+KUTLIeHe){OYf+(K7#1=^bH9kO(U2KuS38S$C9g|6lbv^7^e zm~o8IU87mU9SvSJR~}xNAdDep#GM=mHPBCQjljwjH9}W&1={wt8qx?2^fOvlsPPhW zYt_|Ufwtz#?T;}+1O3d_2&_!ZjcZ4J|BIYI;c(AE`Zyu@6AX+@ow<$1nw zmXFW?pVpcYpP4K0ejFv(e0Y;A9H9YzSZhXnX0E`;;V8l8!kcE{2o3PVTQlM_a|Nae z6Ko#5Sr(4a06(HNBR(@%U|KN2=D?e0;Rp@zBU>}#Gjj!|0TXQgyG0g`&;UQGH6uPV zS76#N!REeOX5k18@MBst;xlsvruh+R!LIeD` z)(EUj%oXm?$HFkRdGB|#c7z7{@vSS=c!{~uT)AR4S6lC$vy|U95zuG1Mr3cscg`bj z)nmQ*>WpfxJX~7(zF9Ov1O1BDow%LH%q=uM&Att^nfiWNG(rRYs@9D7%-llL)k2%C z@1Lb3G|+$Enh~FwTj&Eg6xxjafGi!MfqqYGMto*&p%3CvXtVaoSvo=k{l3(&UYOko*5O4L_A#nI9*cge~T8sO)&t}x>z=Eg+{F2NBm zN;q1A@!ZET*7M(U1%_@7<_b(BCfI!Vhgm*CW5v&J&4|y;6__?mu(=QqlpJF{SiV4D z=+0C> zpYfgZ#6Nx3e^GD*b!p^>WcmnQh3?&nQ|{BCM-o=uIuDm<+)Z$d&_I8xH3BOWa|@l_ zI?#5Nz*9BH2o3b7TO+VCF}Kj!tpjb>i6>_52o3Z3OulLjL<-Tp)~?46LSll-8#^AwZH>A#|RDd7h5B+GBLN%*{uU@ z*NdlQ?FbF@ms(e-@e*?jo!vUncE!MF0URSV&|hwiz{S%hg&n^Gjj#bZXHWrIuVb)93wQqf7=>?m5I3mXSXKU zeE6`e9H9aJNb3qSUSh7m*{umS7d|}8M`(aQ+L{rcnJaL1Yl6*#kI2Fi8sNWc&4|y; z6*#*!!RA0b`f`l*2>daDp<9Ew0%x}-*!+h_UyiXJfj=%VbZanI;Oy1}oBJM}m8MS z%e?ov1dPx?|3hm=d}eMmS2~Z))$Wp?o<$=xpkHf^$Xav#V??-Ke9a8GTrUqV90jOP z9beoU=>HNLx;3Ik=xVM&o2g$SG&IoPZQVq(M(Ap;K%1>!Dl|0E-)r4OvqtD@u0Wfy zUzUIo8t5OiX2fUa7P^`%&}QwIXXywH^bcDz;xls#UCk9}Gxsa9bc6=_$E^s{nOS>G;4IOtGNPg27i^%&_MsJbra1Rp{uz9Z5HSD#~7i3{&{NzRwm}g zwWGfBiHw_5jDJw?$f`197jv= zvjm3j8qAsmS99Ix&Gp#=Lj(M;tr_uoWKDu;!aNn`!RKV*2o3NzS~KD^a|J$#qXe4+ zpPPjvG{E0#&4|y;6_^H0u=($KSvW!i{BNxp@tL^-(|!py_dP!gM`(b*-I@`fnJX~O zmtgarKCc+-V}{*;S(9%bt(RbP9zI^+7@@J^@3cl>Wn!*ydK8XkW!`&H){f9X|7Yt8 zHC|$FG}rx5Hdkv?ug=mD8qi;~Mr3csch2Lx@e}`ie04@OR~{~%_tq>Lp+rCAjIBFy zJCB)LXfBz38)#eg+p=hc2Kr2`8S$C9g{G^8w&wcwEFGbNK67hEd}eN;58zN}Gxj^O zbc6=_EUg*wnYo3gvxPQmzcWimXrRy5nh~FwTWES)XfyY_vUG$7`s}S4@tL`Wrn`kU zd;eLMj?i7BS)ds^xoD8tW04UUOVb5 zpWOMf^EM`)lg-I@`fnOo>;u0Wfq|29iU zXrM3C>d?+DbTwC??S$ZyEshZy=wn(Vure{X(A8XlHe-J@Ye#6Haq>zt;xls#UCk9} zv-aO*=?D!Z{=(9X_{`iwS91m0%>A(}9if55Us#$EpP5_eYOX+=y+59%BQ%is3rjQN zGjj`F%@t@f_$RV-ga#6SVQEHuW^SRYxdLq#=k~{-4GLKrft4vN!^?Ls)sV+Q}r ztQ?^MJXh-qGhSkDT$Hd-9LbeSC%z}kM`(c0-I@`fnJaKLSKJUR!SBt&5gOq0v^uhL z1+M10a#?zxlA!@UU+X5AHF=J!xgO^q3%@_hM`(c0-(S;SXft2o3NB zS~KD^a|N#EdYpeO{J|_7p#i>7t0OyC;A*bN`NzV4rDSM;FV?yVW=)>sYOcrm$HE^H z7#iS;u0Wfq zzm!EIG|<;>-HF?I%-lj(a|PO(>zA`=ga-P0tvhi$kC|I&o@l;-K-;i_QELQNCgv8pnk&%OT)&>RBQ(%AZe5|qOUx~FHCLdmxpMns&<26NX=?;lrmzgJ z9rcw@akMndKV;~^X}|=V|NbcpM`(br(V7vTnJX~umtb?>KWE_x4e)QZX2fUa z3QY4Q*u3|-EF7T${_WO`_{>~^X}tuS^FE)2BQ(Ij)0z>VnJe6(Cs%mIn(G&`bc6=_ znyn7)+-R=c6>P4yC%&OXXh3h)8j-yj-#L#z!%zJ4@zoi0GK|n32o3bZS~KD^a|=yZ3vIUkVU~{2KtG~2BR(^?(Db#?X6zqj=?D$< zBU>}#Gjj{g_fTki8-JXoBQ(&DYR!nx%q=v%Ewq{YCs{f|1O4dMjQGslLet$so4x-# zOGjv+AJduQHqd22>|jvArq zX`z>aNkO5t^1&~v#-4s9OR0f=RjWfgw^mJO z3%#`Vbb6&j1O4jOjQAWiS~a(a(90b%ogqu9fqqS^Lp!%tO?L~uwD)vIr9%V#`qqs2 z95q@s{Vnv;;M1A1lp5$av^unNYt?kP&`XQQ_D7f+=r^_|$mghGbFHs@ilc>L#{bDe zYJi{I>d4NGixLcoS9D^Q;Qv)JG{8@7&4|wkwW|EFYVfS=vE31&^MxSH$n{z=_01%?LrIjx&u)+D%^>+$xKGO3!nTX57QmkYOXw7Sb93Y(9l4CxHTg_M~%?cT!FUc`l~`i1O2zH4(;4p zbv0L@t+`%6>Ciy`UF#;AHClBwSD>xAUQlRgpg-2SiDr$^)m(wL=6WHap@IH*>n55t zLRWJI+RS})0w!pnKhc^IpP5_eYOX-r=F^Uupn?9!R)^**%q?^^SD>xAUPS58K!2t+ zBR)^8(Fv*M3bZv>Zhwpkx@$CRc0C;N2KYU#n_$-D zimSQ$S3XVW78n}f_qJ|=S(D&uuKtxz(|H7j2KWQ5n_$)?xSFef<-mI+2Kqy-n`qXsx$;!7x!OhO*Rynj2K2M75z%JMEaei$_2R2D=xE*y z@Nj8q{w)|2G|=@C4?n)y7|bnnHCLdmx$@UyOwd5%gPT&mzBZU!=xVM&TXW^F#h9Rh z{EyZMtW3-;^Z^{|gqX4UYcVEhp#QTq0xJ`93r%MWZOxUx7Gr`28lSS1^7XaB+(I9Z zL!qs?^4DTa&_I5-H3BOWa|=y(3vJDnzZPSH2Ksxg5m=d+TWIb>p>1FD*J4c2K!3kA z0xJ`93r&X$ZOxUx7Gr`2`UkBMSecj`*N*ziCpyLqe$lL)paK3|>k2boVy?hD_V?0> z7t8Vq8sN{jX2fUa3f#Nfe0cFJoS*^zLaQS?SK!{;=E6%T85-a(wr+x1!|U^j$MnuN z4_;DWXn?=ex(Q}Yf_q<^1AjwcXn?=mx(Q}Yf_qn+|1KpkG{9eJ-2}5H!M&%=eU}y( z8sM+CX2j=-H3{a9&L&{q`^_wzpaK47Yesx#uE4Zjg3WoC$-)U5;BU2N#AoJ~so7j) zYV+PPSvo-j{co)q@tL{NT)AR4S6eRw82q-0fG)2Tdn0_%zmQK(>AJv)>pP5@|I$LP7_BFF~f(H6mS~KD^a|=yx3vK4UR+diCK%c%f zBR(^?&~&%ZX76if=>!e*8Co;qGjj_~e+z8}zfP7;&_JK1H6uPVx6rhO&}JEKe+=3n z&}VIpz{(Vs;YF#w@+pp%hPiB3PEdj$^262@X1v7QxG2GZIFc)u;LBzC1P$d4L&xSH!p{^WWEB|`)J->sWq*5o;^=6aHSEIeINU}%7U z+PVp5O@gbrp5z}3UrAtSfPdDy31&@#tGS+J|KM)Aa+XsA{6DQ3@i}S|T+Q_)|IqR( zSvWxh{J*V^>|Cw5n(Imaz;;z7Lj(Ma)=e;La>cY>?qhS_)v|no68up7Seg-^nOnA~ z=DPBgPt(=2lp4sf)uElc=k&)s=wA1_+nw%o?>pU>ul`bFt7ez4pS7vS+~)!Jy8j*i ze`Jqw?>V_Ou9u6Opm7S$)*2C9_?KfoBVL*HuW24Zy|7Y-)am-I0X@5*&=_m?7r%$d zk%ZO#MIJ8Ew@$(Y4fKUtGvYII3(d>gQTbc!{^EDDbbM|Q5jG-9sUe0U=zLw5~kO`eLpzu=0^g*O%$8sKxcX2j=-H3`o93xdsq zH_5^Y8sPJ^IYesx#ZlURFq0QF!&C&@P=qt2l#AoIfn!Xm= zjD5c>ouGlfQfo$hW^SSBY@yBC_s`M^x@$CR^fuDlLYuiCAT%`4S82_N&l78ern`kU zd!L-86Ex6QYt4wy%q{eZI276peoB^3&_LHGNc?nYV=%YS*sFy$i*x&9&<2674@~%B z$i@iE@Y+#dQWZx_!`vyWCuo3wqjiJ3hq-Z4f&p=)bG`)MIm;(#fG^dW5uceWFpZdC z^Wj~xaDoQ-(ybZsnYjYfh6y$o{y`Q_&;a9u)6$Ii%v^zK!UUTK|1b+DXaI4+EzO9} z%oUgxOt3ldu30!i1BkbyG$TGUS6~`2!REiaW#I%3Al{DBjQGr4foZ=4oBQsbg%dP@ z_~S}5;xlsvruhBnTz1P%1fS~KD^a|_KS3vH`@Y?e;YK;OJIBR(^?&~&xXX6wgg=>*+1nl(Bh^tI4t z?8gfY4fHKqGvf2a8lmZIq0QP)$kGWK=(+*p&DF+WZlURIq0QV+%=!r$==vanA2MtV z<`$an7TWCnq^zHyfvyiC_#wl_U~Zx5Z=ucLf0XqTG|=@y1V3ch7|bnnHCOCwvpBau z25k`N`XGWIGHi^n44Z3xNmU#z4fCL^o}dA~cIyUr4|C(9goWZrJ7o!eaF$Qd0AHsy zBR(@%;A*b>{p#_MES#VLzHX}{J6GUpuKWGT^`T0J?i$RRJjc~s_xqFUX#zt7Tpt5M zx5mVp1Xpw2?@z7|%kl{t;2XAXf?1Q`YOeU-PF}uw56|)m8sHnXX2fUa3S7+<|GSY( z@FTKtg6y?1AWuhjQBjUh93)aAG5hyFL_E9P0)bi3Q-!7wdVQ?L}+7tF-|pC9xhMC z3j(lbf(G)gtr_u|xrMIg3bZxX7iQ@M4fNew9oo5tuI37~osbtP9UADnw{D_YqZ3li z6=-X&FBTda=zFwoqFEz!HCLdmxxPebXrS-ex`}3u(A8XlHgmsJXlS78-cI*=Yxs#Z zLRWJI+U)(ZES{i&uFp95`NhUyZlSBW0&UIp8M|Q5j)m;5cs-|Zs85-a_wr+x1!|OA?qXb8}{mg^U%<>5u;QGW4 zx;2<9a5Y!_m)gs7{H!dWpaI553Z)tGnYjX2bH#t9wgf*r3nyp+OC8y{0#|cg`EO;O zqhx3R@7%fxW=)>sYOeTq=$0#fuE5X$-=%dE%$fvObH%@zu>?O)U}%8xSw(3^e4bdN zOVP17;?s)KjQGslXs+CDY_7K1UYSJ`G+_5{jmX}N@0_Q1;U}&a z57=}x*UQ7@sd#f1P0&Es6D*%jHwJSHO-~DL&Gk>Seu4%XPo8iAFGxdPLO2{s?TIx8n=fbkq%nh~FwD==-CU~}Q0 zWZ?u2U_Ep5d3s|oS74ej!REo&Wc36Ma6NNFw+3?srUesh4t#BvPtaY1S(Ceh228N| z?{xx01N`vTjQBjUCc(5{g3W!e&%y~B;77D(#AoITO!Fn!y!VDIoS*@IWNSuzX0E`r zUV_beZ_L688sK_@g>DVz3U}yZVR*&7_of6)&_F-Bbra1RKDlyNu({fv__HjXpaFea zYee>DeCIrU3_tPDKlCM4dAPLnhq7pb2D%*<*ga`!4{&xwOpn-l>Yesx#ZlSBWV%27GZhs8gAkb(-rF?yDgk^ZOt1qdFqorZ~ zJWD5N0H5Bv2IXtajf)Z%iX*vl34S+Ikqiy+Gg>3CGBH=+YOV+UW8uHZ$_X0aXSS{| z<0a+_T+Q{Mf1vi4Sw2B`4Q5TA<7%!4{bAxg0z(7*?ADCtxgPW<*Y^nw4e)bXGvf2angmyKJ?I|`zds8nXn>#Fnh~FwD{wW}gZ||Dfh?S$ z0e*gKMto+jz$f7-_pv$egIPF11N?&4jQGslvIXyJb-l3W`d3*xL3fR24Vx?9JT_Om zbbee=Xh4@&inZqYHPrCWKlCM4d3fPO)&J_=^f{rSfqr|dGEJgJ=xVO`E!JE=FEljJ z?`SoqUYJ-TbTwC?t+{?7^CxJa-`OgX33Cfw%@t^Cu3yZ`3A$@EYqaWWu0UIJ{gTko zK) zv^CeSCSZaF`rWM=@tL`Wro(kY%;Mbs7!x$m=oY1XeQhu|t{wFyRXo*Z@K0pv1Pve_ zY)UiYGjj#5=8ChibmAwoaDo=F)RCPla5Y!|lB((Nl?)9ao|sBA;&asS!jG?}LNwn> zbKyT^;RFpJo|sBA;xlu#;%ct`B~{a>vXB};JTaAK#OJ8V6<2dz`I4$nXW;}5U_D*& z$!TLSS1YCg^HiAs{xPd3Xn^s&RGJZ=nJaKL*Of1+`b-v1&;a67!_tiS%v^!1xvqRk z)n~JCf)=pUk)10rt(T|5ocB*kh6eC0tr_uoVvVjB)m-5a^WHya=>!e*+gcskxzSvC zj@ex8`t~nMga&kZrP!PCo%8e){KWO*%RctukQX5yE-n3ESu{ZdT@I8ZGkW;U+(K7# z1=^bHce8AQ2D+>w>l_a4+(I9Rm$YiL_4kwx4Ro1>M%Wk=Yji>m;8195uHVo42^#3K z3$3s*m|JK%TWD*pKgjwC8t5_%&9E_;TWES)XfyW@vwni^8qFG=5bivoZS(y|XlS6z zjnJ(zu}0`>uGk^gTz{N^2^#3~BfYjUm|N&-u0Wf`x&1L{gFu%b<DnADJ5$B`g$2Ix$P|zh?df4IrMFN;Bd!a|PayqXe4|zmbI# zG=O+wD$R(`%oX@J93|LX_{}Vwpam?=h|kOw_yCR)Y##hp7EaIrzP~jiJ~LO~gE&gC zIq=`IaDoQ7p04=hv@w_~@bNfGu=(%bvwDIC7|%8ohg2+d6`^m1R%r_W;QuFIoX)`gDVzTx<;H3S7U*5sR4&Gkfo zuKHz`PtXA4KCLt(J~LNfnlH^_-cubf(gDPMTB$-NaY4@&pM+q7&3QxC&CmeWJst1Y zHU@Lc)W_mb*NbIyoyV-F2DxA zo=<3KpleTSk7xAod1j5!)m(vI8hbu}mQe#;yIQ;aaA@Zix|%D{)?9y8=}@9i!;hsI z@p)#AR$a{%Xlt$)$kG`aNbT&?^fo&feTOwdS91m0n(GCHh6Y+Y`!wzJRWxgaroU+x zpv~YH%HkOsXx)aL7B0@%a%OI!=@+5RGDm0O3=Ony!%l;44d%v0slKF&i#CIwDa&Ul z!4F+}F~f(=%oVtrE6&E!iD%B585-apv>ry=@dI-OuIB1rQZ=6?E2shfVe1aoVTVz} z%P78@3W0np&4p*pni(44AGaPx+wlW)wc={7{v}oO*|LHf;GeYaU>$ZCHM!zyuKp!e z^VtQ42DqM9pj#tq5?syIzocqDN0w6q{L|J=Fl!QA&DFo8YSyKl8sML`Zh~2pV45%A zJoDZ;vwVgI7`IcU8S$C90@Hd4Hs_ry3ukBm>(-06RU3o3W$J3KaEN*D+*vr9i~Y|Zi@m7vq~L`99EyMO%@GJgd!>)*>bg1R*FMKXPc22{^dr|H>h zwOi-b0<1n~&ch}8GD1TGjZR#e5uaz)9LaT}MdR=&9WK$wWa$hIBsy_vMto*&p?R4Q z+O89POEG3>Al0=`V@KW?%q=u86hd3K=Jga~h6Y+)`!wj*U~Zv#sSw(_HBT1C3=MR3 zZFc01!Q4Xg9TnQTHBT1C3=MR3ZFTVoE+*y{nwJZqty}YCVa(87qgkUJlHEEsi(N5z zvM^?7pzDS}HwY12Ow28GcI!afHG?M$V}=I0ZV1@yHwJTYF(R+`ih1$ZvU-LFSf3D_ zrcVsk*vu7p$4*(=<<|v<23VgDoVIess9!R(CRg11#O|6eDljy_y5~Pl&j1D6sWWR5 z+`GhFc(E**p#jzn%xSuz*$J#;<_g?<#5{QMOrN0v#!X3SMto+jz`aAvftSd_85+Q| zw>q+O1?K+9U2Xomq>`ZlK1XXte4bg8=a}|Ou(|IyvT%k5cyDV)d}gk|*{!*w&3l*1 z!WkOibGACNa|OAuOR|~+N85-zXxBiZd9zHX-(DXD<1%8W}`s!IW zLjzs?o4t8sFt^Zjwa{kkYh?Wl4RrNy_4AA#J~Ow_^tI4t?BB|=8MO~6=<_Kw?D=V4J6+3Qog=6m>buQ`pPG6Ycn|i9*h|p zz`Ehp4R8b(6LSTw=87dRoyfliV}=G89l4aRuMOr3T+MZ#ea<{zHcP1iL`N>oh|f{O z3;#Yn3dhlM#h1&%85%%z~-DjUO&sWNFYJky^OE~^x$zQg&bvw$&d>nXZ2?>U#$axlx|%B-V&1!I*3ZyDU#fM3 zyob5bTxk$CS8G$($R+D7|-5AU* zbTwD}7F+c#vwnu|8qFH5x|%D{)?9BTG&IoFzuB8N#>^U_tGNPg&Gpt>tCe!Hxnp@FVj1GfE*!Q4XA;X<3mZ=dzFL7?l_fNg(cgk^Y9 zs;_*CqorZ4o7FQkz<5_mH@JJ48y6*<103nZEWy{y@);Vyx|8O6voV+}a5Y!|%BT7I zSxwzFm^FDSXv18wx$p)8Ljzph8@e@S)+D%^tAFLwe8ViK?i$RR1XpwQuY8(sBrr6< zbz1=48c~zrYOem3PxFnloEqS|Er4!~s7Y`&SO3bV`6gLT4RGBSK(|KJB$(#QH_yCx z(=4B%0j}Eu=+@B{yRe02sL&5IBZmzKUq*38gAS0`kb+ZfC( zbTwC?t-0Pa>t|@7s}r)zZ4BlXnrB0+wi9x%te>HQu6D&%v@w`lX!=@cYp(as`WYJN zYFE&$!Q4V0#G%mETB85-znS8PQagSmyKw}rOmdf%*{p@FV;rS_H4!)N9en(h|b zn(O_tY=#E<_N^K5nYo3o=87F+2ETun&d@;LvDKlSTj*-8K%2$6{V`~RU87mUi&A~% zQyeV~gEex@wbptx=40>1V6MQlqFlKI|6W$l&{%QZN$bu!qleGT6_`d$u=()!vuK6} z7_GiEBR(@%VA?Rj=E6H=;S3ERT779od}gk|G+~0xgLlrt8Ct;7jQGr4foZ`6n*;BX zg)=mOH)+j?&&(B=228N|?+>zYh6ebitr_u|xdPLE2{!lrVHVEN09VUmJK7k`6}XzK zf92DB*Q}=Q8qAtBNHtgg%BT5m0z(5_oseB_V?<4!0R8L7(X6bw-aYGQXrOn~tXRX3 zg}L3>Ty3+REGRUf^cbhRtC zqK(1aLetqoo3$UC^)ock)vnlzHU@JGeLN0@Hgi8N>t|@7@86mcpP5_eYOdHJX79&m z=?o2YZ9;8I2V*m{MmwaME6~7&A1`r?f_3WnykzJL)T+ z=om9NKpb-c(T3s|K(_{S1+M0bB`=-$z$~Ak0Yn=r&4|y;6}Xx!zF>I?J~azxXaLcM zN;Bd!a|N#Eif_1Ef*+KHGc#>cGWE+FI(OkJJ*j#N-JSi(@Xh6$<^cKh7l%4bZQvAd}AOEzZnkx^N+wHko zG(!VjO;$~JC$f&2Tj*-8K%1$bmjyF4(A8wsbPKmrnOo>;u0WfupPxlDG|<&#*+4f2 za|>O~6=*Z|3$lKO2D&;SyWGZLZlSBW0&Q>O3$uQP2D&;SyWGZLZlSBW0&V7gQP$7U zU87l}9YS}rZv$=iezDNdKv$Dh)6MAN^UNBdPsE|nX7HC}*$fSIbwYNzjltYP)8Rs! z#ku`4XoFp&S;MOx{yhyG<@(Lwe}oXm3=Qz9tr1w6m@9BKSDfgj6Q7)wGj!Kr*5rz- zx#FYjCHN@@V6MQ`TvslnPtWoh8esId(v0}bT!E{(`d2>9&&Wb*0MXw{Gvag9|Cvw=1Z`7?^#NQ2Jm668S!~$O|F>MORzcb*;zP41N?~AjQGr4;SM!d zIK;g7oGhK8f!bN$n-pP{=(vqr1t_7K{3$XkSl2Kr^K8S!~$ zjnLIxajwnYZ_Uyf8t9j|I<#{OUCk9}Gx*z-4h{4xTQ||H(WI#j7gqX^I=`YdfM}eh$~1`@UhVKj zPY5R1e2BBkG1u8e;|wr#YcN+UrVSHpF2p(InCsl4aRwN=HJB?fO_*Tw;2&rC3=QDZ zTQlM_a|Naa6KoEAbr#Oh06(iWBR(@%U>Y#N=D$D5!WkN1T+&N3;xlsvuIB1r`82;K z3#kEoZmT0ZSKw-{{*_PjYn2QQ@bg+X!K}&cR?YQz|F?x-ConX?&u`rXvnJ2%q2>xx zoA+KXG&Iol0K|uzjWM%^&6Vev&DE}N@5ss-8qnHw+Jvjk^&_a^dhyj6bTqHZJX~7( z142UsjVo?xMtq)GBXl)apv}}D%+eVe$hta1w+3?yO;>BxX6wI7zzhv^U7dO5-5AU* zG<_|!8T&(7KSKkJD{g5Fxs}@dG3?B*|gsn?%kz zNd}cHDh33}Dog+oBRPo*<{bDXDIz8?faEA5K@6zmD5C!xs&3ue)xB2lwcKytQ&rE| z)2H8Er_T&+v-V%PbO#kOKhF4gI~bP*YvNpIa|ODY`%Qs{Zbq{v(AivpZWrI10}U1W zHKmU9dB>VSXLAL*HP^p(=?*INYfC${auc1+73kJndHG}PphCZ{RDp$wx!ODOkxz6? zGx)1rxq}Lfy*Jg7J~KDK*<7*Yxf5|-Id*w|vG)oLT^q~|a5mR7`kgDzD#tF*Ztm02 zwZYr~XLCKH-?`$Pa_sWl{zj}Ax;B^_;B2mE^gGu-a`_IbQ?Lch8gBe&=zk>Xi?2EG zj{^)9I2%AT1V@j~JJuLX0~*}?_j(uYpaSRiAML==qcd{@diA za8?F$1AHcq3~t_ggR6H?f%86v_aG~SxdA>4M+P_N{i&;W(9K}h7GO^?fzIZ-^vI|8xpW5=`W>YmTDghN<_dIcuJ4a@sL<~$T}87dR-Mfi=+<065NPOT zG;0E#%@yco?GFYTD)hTb9qIFqHG!tL`IP|ZX6}D*=?*INdrBSYGjkJ7cL%!J`$I0> zL50pMg;&AKU~Zy$Q3twR*Z=7H9aQMNQsT;S^ytjoMAPAcZWia|kFkRaomUF4f|bEs z?H&2ZC!XqN@V|5Q4k|GA-c(2W%-jHHbH!&kcj8-IxPuCay*Jg7J~KDK*ocna_+X~Jm z)p*6UpjX@+_;y$ApaSQY^Z2qpW9m=l#)@e`gPZ@bw{h%pkIV1R@qOCSqcd{@O#2z! z+=rcwW0yNzwt#2}jvk$v8(^Bx;O0GSJ{-H;gz|ch>)X+zGjjt>>lxgf_ih*MpgPBS z*~Mk(=+T+Efjelfa7gnWb~TP&?rwSE#f9kT(V4kwu3RyjYg_L>xqwfb(0Z|%rz&#H z@x$}(^Z1MZ_;_>%9nDRMhjUB+hl_SlA^)Y+kv=mw(e!kn+nwuwx^xE>`d>>O=`(W^ zeJTzE-E93|F5N+e{`XQx`pn!!AID*!TXX%COLtJAKUwNXpP8FzIy=zK+Mjmm4k~n> z^Y{!LJvuWt(b-(_F*b95#$`LG(0R_|GdK#Z+(c({1-jY$vyl!JI?s8028(Fc#Ko7* z73gO0&jlK~8O@qNXLAL*S%#NC25lg8ew^{~Dma^D8Sc;d$R{1m4f7FK?VtkZH>LRI zK$}5m^D5Xw4uSxg&z+v zRN(xM#P2^VW5*hUX+ndW2mjgCJLqOGYYe6Z4Q>wnM1Y|J=edq^@95Ea#~OpPxh_2N z3EL*eF1OD-*KzJ0JvuWtz}Z|E9{Ge#lVg{gXP)ag_l_Q&nH%72u4nZdwtsWc4ysd; z=Q_^)QDo%?IGgKPy;)%|=Gf()oaZ{uy`x8G=Eg^M&|Kk_)?Bd{bL?_Y&a)k7-_fHp zbMeS0esm}Gf8Y8AC-0y-3Ar=JPJO}!96vk{uf$(F{tF}Mu=FpEzUcHFRM6a$V~<|C z6&}uynu)ON);>JhsC+=zdJg+8Q9SiYv3K)YKDJ@3}TWB^s@eW@dTR!yMYt%aU<>j5YZ zs?ZlIRbXLKO`zSag`Rh7UH(MF20~x7bb+duR5R*grW5@pZO8bM%Xd(MpPFA{_yuKU zFc-U=7K)=-{mGFXcG!K{e^Uj{?-|gwp&EnTt@##nAMU>5a;m_&^7toNf~&@0cWZ*@ zF5G=Jz|hTL))?$=P4L`kIo>M9gv4JOAnWH6;)`I zr8?4Q)dV`5E6{UO50`Q&Rmdxrc4+11sPVlN8{llN{gF?@H@c82;3Y~svT_5Q z%@q%Sny(n&g*b-%PLz8{>?w{OotYcpY_9#0Ps4>>MAeG7fLY^noXxdA@@cq8fT05C z))ZTnqeo}e7)%5D!)yM#sEY=uz_~GT(^(nJjTO^=1~>O%tLGSU%g=2owkb!C&dd!k z&1Z1)93lFZa0ks58|eIt?SLzngQ~Nf z`$p^|3eG0gu({G8Y_6?Mp)GL?*`BTzaHvN7^Tc10Ax(itXVB5ygm^eN$hBQGK(*fE zrH=HOxjGf#amj&htG1 z^?EKHphDlQ)R8_jH_>!$`M-3VriZNBYd%MAO@WZsz8#7RCS-`WB^peQ7W^ z(b-(_i8g!l>cJSGLf^7ffrW{=iO%K?cQ&{)@Q*&gR-5`841v;GpWm%iSY(69s3JYJ85f zx%Njs4fwD)r~>ES5qpV(vq?1uXLCKJ{mwjG!&Ov)(}TQ_R)%T}&gObb`<;1+PoFAq zIxrl$#8yq%g1b_fx;58pxp;tXMze;^m2c1H+OA?=hm2+Co9`6I96vk{cfemykh2khyKL_*U#TcLh=lPEF zui$KAZh&b-gPRZe;bIKX&0yB}RM3V7Hy84w#TcLh=f@ZytAewMxdEmL4Q?Lf2a7R4 z1IsUv-6Zh(2V4Q~F!w|kBuzvbU4z|gh9+yL`z z8{FJ?6PFKAt@zHRj`W$i0p{5@xOwlUE*zkn!L0FB!Lw~}a~|$SIEK6{xof-ubZsy< za0hp;@Jeg0xEtXZ@~-4=frhRP=Bl~!a$|FC7aOhtjv=pw2Lu$VaV+$Z4Bw7F_>YfA zXJm8b;oQ>qam@hLIeuj6A=;5c<|aCuE6~l<_jT0(-Hc{UtU8-3(9PEO3p7;d?<{qs z&jV`$%@fV$3UoWy_jl<475ckM9qBW36HR9ax>-9ut|33Z?+!F{Z7?^{^md?|xgTi2 z0M)7=Rq9BenVV?3JJ8ME-|Erhk0L8Kz}Z~;BcF!YE~%TrtnoR{=6byE zcd=Oxxq0S?7$555idkbYE$DOH9Ee*7jv;R$9uzBwt_|h}myD)e`hDzGpySIw1I1)FQTCgQUn@>=-*fI>Bng&vaOvG{}Q#iKLm zXl_D0oLd^ZFvkGZdVi=?frW{=i9Q8~fo{zeyD-N975axu6mp zH~x`8L)Qj#6MY4{e<09Mq0cQ{MYAT**<68c27gSTp_|dH33N7Bpqs^c z`D4%qLZ4Tvz``WUa8t@hKIv#~7;KvyLvEjW#^V!k^yti7ZAw@uj$-w5@IzcQK(*pL z-*NsOJvuWtz%-)4&4&+l(Et@V&oGQxEgR{BzM?MXYa3NLTCzN(% z>~{{v%?`(qH$7XxtnsPH=8FH3)*Ouc5so46OP(AnhOQ0f1~{85{tNv%7H$*CgvtOn=8<*xnhIo7@$JGuvCGCiMfg9~(W(~Jd{7YOMdBx3#Pe2G`fC`*vJI=m>vx&I@rVR~lE_|Y^2B^S!uH)Q0 zdUR%PfN4U5n+Kodq5&%KkCi&oXXXZ&7BsjyFgnKo75G`D9qCt?8(L=xOoq^IvhjZ^88eQp=*P=0jBi~ zZqADvoFVT@wt!h<+`*kI9MZh^RIhA+>f`(AQb+pCTs2poV>Z`zhH-Im40)0LY(SwJ z$3hRu@G|_t_2SVP*<5)zxAgN}GeEW8Un@OCJ95a}L}zmax|#X~t{R|1|3>K%-l0F3 zo9Jw=KsQ^z&@}^8=-(_oL_2cG+(aM8A$tkX&Dbw;)c_Uxw@Mx9GjkJ7X9v1j`^7FD zphEv%sUv-6ZldY!KsR&0#H9mN=vS6H(r4x-npa+++r@{r#4$jHepRUg3lnn_O@9Zv z89c7vA+P5xXx7AaO@{}%S)7+Y25q2Kzq(X`g-MoStI9_{>1b{k?8h8K?#uZG@rI5b zotdjm3D+BrV)b)y?88Iu%Re70hOQ0f1~{8*f8^5;`!H3fVhflxJ{8$q`y-!*pY*z@ z0{=p(BYjql!8D;yMe|^6@I&s)uLv-7Z7?@hObZ&^9EjbRW5`|k7Xu7k8_W$b4QO!l z-_N*wfa+BIQmG?-W^RCKKZBe5aI?cPXc4&*0|0=eT@;YQ?`&>PVlN z8(><`;O4yNx^RGQ2D8SvgXRjawC0L?D2@Rt^skmGurM)K&6THu&9$9~pL5j!74$Ww ziX3zN@I3qh{^EM^=!_fUked(>=axpt;~1bqzok@xg^9U|rl$klnkzaU#{d=jZKVn< zOw3I*T^;DwT+#732IyuqYvP1tbHxd1#{O-BfrbkGj#32{CgvtOn=8=G+P~x40V?!6 zOBbkmiMff+<_dH(_wO1oK!tvHsUv-6Zlbff0^RKWdoCTIo6)R^bDhl<=yqNIexRX3 zzo*oZJ`b!3bT(I@o5gwgW6%adzqeF@g-Mp-#-ERT($U;7(d&k6QLha!bZszKn-Ug^ zqgeeMjMl_4WQ%%TfT3%HxdEmT4Q@VsxyuKrPQ@RUI@0Ii<#^4ff;Kd`xiEU&02TO; zOHs5qm>b}1uKkfuL-abTz;7sBq~b-@c*WUV&+Pwx4Ly%z$lmv-0fw#(=EjP%xt`g7 zTZ~>eWbga407KUXa|4{s^~`=>g`USTWbb=(fT3%HxdEp6{NXk4p)qj`*`WR=z|gh9 z+yG~DJ+uETjN3DgA#crZl`68-T;GHU&nq6CK}U1FJUm$isJ9NdZaJtz|7)oN3zKRBO-~29nL4i6 zA+O+n3p8|XFgI77%@wO|wtk}l15~U2_fkjt%-lq0a|OCJ*RaC?75bB<9qLz@o9Jw= zK)2@l=aCK-`aen?>GQyvIM>-+fo{$9FI+l6h5pad4z1ioXLAL*HP^q4bg0n(Rl161 zO{_YbE6~m0e-&t`(4Q(@MYAT*^h;cP%`&|FF$Sp6pDtBkVPdZKj(p@39n%c{|6Dmh z1%7|&0#h$BH^A9kaW+nl^b@VaAC?OIfdE6-hHBVR&N}#67)NvPs{#z&3}%hNw4u*; zbK$E43>El;rH=G@V2#1qT+izNLDOqoI6wvdhtiI$+yK*pUU73^d;=Pw0)MD<70ep1 zmh6UJ$w`581fs@ z#{&#q8_W&xSvWGdIq&r@AD}uFpD1;t&&&9R2P< zLy10nDs`mK18V~9ZY^}%CEnxG0V?!`N;|Z26U}X6?|*={PrNtMp+aA{)R8_9tcg`0 z$6=sbw|<{X2dK~&DRrdJ%uO`6ia@u$;{7fiph91?)R8_jH__ZI0^N3t54d!I3Vq2^ zNBYd%MDt<}blWem2XhQip)Xykz{14bM03LkblWko3v&!mp)Xgez{14bM4yGjK({@E zmp{e;75WOL3M@>_#b(5dncv5Ktu!yjt-_GE4xcmlY0$O7+yJ{<%P(^$#;w8t<%*y7 z#nM$UYrJ9_(JO8~#0>+-kT(unz^pOY-I^PVlN8(!OeN^bm0IMcqnzG&&&;6 zbZa@JdGB2=9iT#wr5#$iYOZu1n``@)j4xIk15{A>GL^3{K2Pzpc%A?FcytE2+=O^I zw=`}dIR>bZ@KP#YUmDC!G(8>YX6jG6cz_Cti$2wnJ~KDbbakMct#K2{F+hdHMU=|d zmj-haoy`>|q!}AGksJe5NL)s#e0^y!H_>!jY}QrGjkK2%@yco@Xxq(fC_z+(hjZML}zma zx>=l;KgIwR`lh7{EKJPR-jR=dqGOuDKkUi@D)5y{7npj9xdEmX!fsR9cVa|4{sb>WduA9LjZ z75EyZ3rxMl+yG~DU3lbE+~*BYfv;7%3TBN@MK;$P_TQQR+2sRN;A@wzf>~p5HrE^W zn>E}>atv`pdG>Vz3|$+{4RAKs8}@&9iQ7nyA#NwnzJ7qAYlFD~&gOc<{<|%HOywA$ zIu$o4RbXLaZrTFrxq&wC#gC{1RA^lEsi;~U%vE!xLD*cIJwE5U0V>$dN)-0*ogxAgzIXn+cR*HTCN%-lqC$$@UG{y&!v(9LMp#HzEoV%2k7^Pi1_ zD)ik-`TEjOO`x;60zGf8PVlN8(zw<&d`&#Lh`K8~ot za}N$*b|F>Z+m&`?<;IFn!z%{Q9XNa?lA)WytnrFzK!fN08@?J~sKB=`b)?U#F_`u< zc<#OdH|-o$f$vbNz`~>&gK0j4=iVE>=1Qu-cPd?A>Lt|}oXvINkx%~-;JnCs$Dgy??19#~eRAkC(+?TrVD- zkG zsL+opJ&Zei%-lR7^mU-;#vU)}BC62eQ|d^cRTHbGvjaW1_IN3mQa7Vn6KHxn&~tN- z-xO%5(BE6?NS{>`Xu3Plb9;}Mb}3cpN0)YJ<>spC??BHDK3*o$p_|dHiB;3#fo{!} zmp=w=AoOEO6WaS2!_VbFH`z{>G zP=Oy(>PVkQ*7#J=d{HbG0d9p*V`w&%sx4`3M#GiKUM8nYjU`5e;rWyrK(7 zsK8Gtb)?VC4RAKs{>Z2CN-m@d{6nRV^jS4N$26f=+&mbkW`qj-!=)YRSC|_s&gOc& z{pZKyl_MD{@Q;)_(r49p#o1hs_vU()07C_SYH3GSZmc+)>+$xp@Oafoh6;Rc=_;5t zUU4?pkm&GnlN7@MYAT(bv9R^TXVflprJy)uXGj7nm}iB1-dm?Uj7&(ROt7YDzGpyS9?c3@`;XV z2Im#eJgC6WFI8Y+Vs3!5xnjw4C-Qn{9#r5LmMX9?F*m?`3!j$eLtgC|BUIoQl`60> zF*m?`3xk^rd97oNP=Q}us=&g;+yL_}3~nCem5wn&1%64X0t*v!1I)KDxH*v5ImQST z_@$)^EKJM|FyF%9=09HL7$a2Rmz658Fflj4d<%n{`*@9Gj8K7pu2g}AiMavhTNvED zcOzGhP=SBG)R8_jH^6)ggPZei?7|T$@asz*=`(W!cW~zlhcxfq#HAxt=)WxO(8^VF z<%h@S+CIA5MIuzt50)x&%<;qX_(1%{e|$VTBbzG^=a#;wi$*BX=Kz)JNS~RTXnLA` z8|Y^0d%1Lk3VDfANBYd%MAOxQZnnO+OGl{Cmn?Op&&*BqaU2G^8T&pi9ic*By3~`x)HacQ+S~P=PO4>PVlN8(^Bx;O4!% zyKsaGe4$cD`pnz_(|QIs=iS4FBUIpvmO9dB<_7Mdxxy>0xqgdFN2t&jEA7zARdeMz zW^-+4_*)|pD(IC;6*=bk;dy*C{^CDA{)<04nwt<0=a&9X7mZM%an@2D=`(W^oy`^K zX6o;9=?E3_Mx`BExrxr^3UssecSkx@XngZYb)?TDYvP1ta|OB?`%x|(p+d&Dq;uk1 zQwQUEV@;s5xdPp+{XKz(Zbq{v(AivpZsz{pKtqL&A0p1-j|?kgWKE#6xdPoTzVCDW z2o*Yhh&U&Hm{_7SH__Q#fo=x>{y;;8jvpe<;g1X}V`NRNI-4ud&EmZLF=zv!Z&AwE zmxe6E=8FFv0OEd=X7F!w=?E40%B4$CzQ$Z_N?0h4V)b(;emhf<2Nn1#r3x%e%nfih zSNumCCQ_~Af9g}zIvBYhrO z6X+=E)75ZMKt7z5)I-4udt-12@#~7hP-@8^RN&i`I?`w6 z2KZDQ8Qfg>I2Vpkfp1&tNS~P-;Nv(lxOwpLE*zl($1is0K-UIy1567V+#L7>myb|^ z@smQTBYkFWfN4O3oBy8Z!VxMUeo{zvq|eL^Fzsh>bKjF(I6?)yW2qy3W^RCKK7*V0 zp6tRAx*5zGHdj38=>XiE_mlub1-?_MBYhrO<8>a~xx&=Vdq3pT5h^r(tw?pG&&*YG z<%-!{+j^hjB0gF2m;gbJN^u)I568O%*I zJss#~>gT$CgbJPag1paL8O%*IT^;CV>*u+CgbJPag1paL8O%*IeI4j#?B~0Fgl6qR=&6qMd1Q^j zr{l=r=D(kG;RqEFH|VL3^qIKEO>%uO^miM`*Y?GnH4f)Ofo-na6ebY(C%(cC5i-S&y!aQz4sI`3O~ zPr5Rgn`mwnfo?m+Z@PYj3Vn8|BYkFWqPbNBy6qLe<Ypxch|yDl4{o6)R^ z>zZ3epxd6o%O8U_5E^|gm9H-iS!UG5d;`S&ChhC^%Un7_1$~77sXg>UTSB}ulVAgoW?$!i17yd$kp#ndl)R8`qtTEW# zn&9Tam%DI;3jD-UNBYd%0J~cg+#L7{7mm=)VAgoW?$!i1|NUZsp#ndt)R8`qtTEW# zn&9TXUvl9H75K@e9a*^ncDE+DdGD7a8M+zF8n4*hn&9TVUkNZ&;Jk0;J?Y9ASrfLP z^}^K6d%x=X5h^sARH`F=X0DnmzbCV~w)@rJchLwH3|~}J64prJzNx1{*i4{|J8yehP_=heWp#tNkG1ZYiGdI9Ap~20AuX5oC6%hA! zsgCrSxdEmH4Q>v6wF^h6fVj6yb)?VC4KNL8aP!}5TsT4n#JydrBYkFWfN4L2oBLkt z!VxOqvr8T6Gjjt>^BLT{_c|AjP=TLY>PVlN8(><`;O4wPa^VQw3}%gSaVxB5)x7t| zfrbkGyi!N{JhFy&t~3anYqQ5+xoCt6im!jEiX3zN@H~D1e{sEdbOs&G=E}plrQhMA z5h~=rmO9dB<|dj;4s=`fJ6$?LH=|h-tEQ_1-E94?KtqN8w^B#?JhCRx^mU+{vES{| z5i0b*mpamC<|dlX4s^5jdt5p~H=|h-tERUD-OT;oKtqN8WT_*49$6D;x;xO#-tTki z2;GckO`z%TKsSTGKhRL2|D)8AK98&kG#wu3W^rEr7_`A=G;8?9JRkX_qq$+;L@e^4 z0>8YJuP+Ve2AEci)z86icIgNe_!Xs&^qIK z0~*}?_ZAn9P=Wus)R8_jH^8)?!OeYdb>Rrz3}%h5W17$4=DoiUFjU}AlseMqku?U> zdImS=z0HLqRN#Lpb)?VC4ctL!b}1t_zQR`jD$e zsKB2to$(I-WNv`7xh_2N=^vdxLIwUz=>chWz}x_5b3L_hOCNUC2o?CVr8C~apUe$# zHrG@8&%*!Y{1Lht%o=}q*<4TUKMQ{(z)*odSL#TgN8|=Lo9n_OpFZls5xN=78m~B; z>#6-`VYGjaF~0_UKHdPjHkcdWY_6yFpM^i}@)4>PZvnH$E6(P6YX4an-zzxA{C@F; zcmwF#U~ZcF1~?2;w>wvS0pJ+(i@=s<#TqtOUT$ozZNrDpIL7qb|HgWu8plEp$#fF_ z;Qofk%w%)r;mMJ6qIJYB%t7TjK6ffrU|~{CptHFG-J0wFxORkYMzbc+bT!X1(5<;* ztK=A=LhnlzSeTfbXrAamw{sombc}O+?iMs_V%6DPvFg@b|If=Bp<4C%OC9Mma}%A- z73g_$#iyo0-HKLCtU8-3(DUXx#g#%8`U0hT&xJ`ffzIX%^t`!F=W{Jp=x-=ppz0;n z1Uj25(DUZ1%O3^Q&1hPNdq+Ow9EnwF8RAh5qc;pjyV~#O)<#Y4Giwn`wqcd{@oXvINkxyT8(FoOw^RnY5 zwKA9+;B2l7k9_*Ft4HW&Fl&4&vbioi^64u9h6=nZb)?TDYYfijy70)SuexxA3Otl{ zWaZ{Am(3LpY0VWkIviu%@SHma8oD-^tLDn9g3WclD^K_b=b&o6-&m@^G0jJ&>6`E; zuU$MkgN|k|;o;2E(?wiG75ciRj`UeIfu^SeJ#VhlMO{i2`g)}uTDiGux;oHvTTd5@ zbg0nRFLk8Ps)x=PV^0@%DOG5E*r|^6Sv7&?XBg=AF~-L~Z zw*%dp>m?!`D)hZe9qIGLnpid69q86vFX_?=x*5%yK%ZIY)?6z^w79pbZUfF2wgvjw!!?<{lDzilawo<_7pUOLexJ2l1_w zW6E!z-yAE4t_|h}_%s|D+#HB6h8$CVLA*wQp=*P=0j2>BZvMm9LXIiF9$quR(6zzb z0MmX3H}_r8S)R8_jH_>!;th(7cTsEca9vW!q z+F)*?>FYo@V~5YC^xYOTYj|zoEYR73Zq^Q`P3gRc#j2regSm<3_4RAJBEO`#TtScv|!1pg*VCp621~{AR z>Fv&Sx}3|Yo58H{smSJfdiz;;x_p440zaVCkv^-&;B2m^w_oa}D+CxS@B>RbvT|d^ z*<4TWcPUqlWT?R3TDl5mjaQt__4K|&U&-YYRN!wbb)?VC4RAKs)7#I&Q(Ps~&0yAe z#o1g>Z$Ar9S4I*BRp4(gRbXLKjlr~@cf97jtGIH4ZU(a^Hc;HmnX33N7Bpj&gjsY@s5W;AO8oy`^K z)?9BEXsFOXSn5chC)NZyn=8<*x!&BR6IAHOmv(67COVrd(Cy;8MWjQ8enP1ueV&k; z=xnY)x8{0Fmrl^lXx79D$>s`lvp6q*WlIKq3u7WW^H-lNj-3||WVyTbjV7@1#P=Oy+s=&g;+yG~D?T>t#_?{Tl z&0yAe#o1i@BcCR|Ck9pE?B%RCcY;I zRp9S0RbXLKjltPm`y-zwz9$A%;76A#urR5{;B2n_NkBUx#E9YKEK@f zo){BU;2$VeU}0iznwpn1zl_5n&3k-Tj0w6K%^EgWz6G0W+k|e70LBCr^hu=(9MgPc zn(l``={EdF&2$Ra%ftDpxVx(+sLxN?FD{N&OFre0#MHYFGkN3r@j__i*epaMUo z)R8_jH^4Na!Oe%abKwLP_=idz=`(W!OdA^9TzGpIPSDL@*7zLLga$Vc-XXwHfuCCH zNS`Ox7)%Qq+#GmE7fw)tpH}KfpP3tA8qnb8zdN~bf(m?gsUv-6Zh&b&gPZ&A?7|7U z8O$1=ifmd7J>@O|h6;R6sUv-!SYt4)=M^{S-PMH?bTgPW#vS}D46n52dbdDBg+8~` zkv>nXVRPk**<9Ot@9!c$Z9>o=FID82+zd+`_7d+^97AI>fP2p3IIp`TlN7vlhP@!L3s=&g;+(c({1-e;=mp?P1LcgR`frUwy;ogyt zeA3a}Fb{C$1QmGh#U(In49@0?CC|YR3@}vSpD0~m>ZOS_24{0UtN$$gtuCLS0{>*G zBYkFWfU~)t)qfVoZ=W0!RN$W~RbXLaZh*77p4ERA#!r+S6Ld3}H9i&DT+ix13qOch zfT05abg2Rh6LSNc&GoGQv+#pmIY9;fnbHNOUSe*5v$>wtf3$pv%O~h&Fl&4&Xg+UD z&3g|;h*7A(&n{J9VPbB8&%%+x&3O-Vr#`=8$gbMi5QbjJ{_~ChfZTz*1Jz}8Fjr{#ipP-A-rEZO{2{-|O<*l#}=jf*d z8Y=WJmpanti8XNcwa~3w|1iPGgbMvDr3x%e%uTerwa~3w z|A=cR=w>u)V%6@}Lbq;>Z}c1!ROnwTRbXLaZlc|-g>Ky%-|0CfsL;P&s=&g;+(f%u z3*EZ)*{+?SLjOjoBYkFWqTQ{9Zac;~E}fv8(X5Gc%`Ic^OT6tFy!>Ms&9pLG&jtnT{%Go{@Kz6re0!hfZeTiHs;_TaQOrk_+_Pz^qIK~2kP^WYB#7%K2DlseMqi8ThhTNB(I_&66% zP=Q}w>PVlN8(?>9f}8&y@4^Wx@GD9?vT_6LZcT7=-xDGkx*5zGp9*(tf}8iA7+|Qt zzgX%>pC{HB>~2kPbKa9&I6*gqSrewF^}^Jx4?a22P@#XR)R8_Sw!lf^J5$ zCRR;X2fEq%Ie~@>{rXZz`aH2F(8qBY=w|Hax^#jH{U@c4^qIMd&gP19-K_mQmrhWj z-%#42m78dKJ67Gy{rpIWZbq{vPRJRBZuWjbprJzlS*as^o>&uT`a4$L4E{owPEeu$ zyws6CGdIz6c%YlbdHG||215TusR9d=EW^DcANi!CxnZ8}$_Xm)Z6M+P?sKFfs@bTgPWzA8>X05|{P2N8}5D)4Jc z6{xI^|07KUXa|2BC8Qi>wA4E8&{9$AZm^D5Xw4TAudH6wu zV}j~byslJ%g^9U=i{F{mtXgx$FBcqB{(|vGfrhRP=Bl~UAZ)J99xrz31l4-yJH;`_ z56{zY<1hZ>A3XBOhjUBgPL*SV3jLN+1r{deCYnp;{)TsHtH$jl#{?Dnt)&VqOw3Jm zHdmmVt$)?E6IAHGFI}MOCFUlYzK&HlW8-#`V}fo*vnI|pogL_AZQM?BOi-cUR;s|l z#N0&F+ktN8#_c4>1Qq)2r3x%e%uO`i9q49ne3RptphCZ+RDp$wxrwH~1KkXc#>6o} zH=|h-=Q^7!u8?MNUjEF43jNMf1r{b*hI>ao@<~T?!@R_m6I9^8EL~vgCFW{V!a{Kr ztDl2k>hcLH@L!cW(r4xdIGgJ!efPk36QUx8|7g9(xOz zH9p7LTuD<`PV@!ys@(r4xd znAS76IS;qM920aim^ERG8{jbZi`HC!2{DWbD)ir#DzGpySIw2zF`H}aCBNgU2`cEj zN)=gZu78FI*L(2DCm)_{)CnhAr`MGV{h>fZ*M@2Woy`^R(wb|0pO~PV(X0t{HdmnA z3Bmm}#{?Dn!=(x=Ow3JmHdmlqbA7#QC+KE0Yhu;eT!C)Q6*s{g6IAGbDpg=%Vs4_d zxdPpq>l<7t#Ug-+zW-x2K;%u({kx$eA3oumR_mw)*XVn;-&9y)BY5KzeLj`_+X-8IWtT>x% zf8^8jsz`9cBLzsTka zhqUJU+CW2v{)f^Itz0!%UT$ozZNvZbNQ4Ud@lr*OIevJa-iyDuUOYO3j^-xB!?~q# z&&M(4z2D~p4P6_|O*B0n=+<0uW5zK-wdyTs*2Jn$#bKbEt>2Cq#sn4m3#AGyOw3I* zPjsN$xqgRhC#cY0EOn&M%uV!ZI1F@auJ3f|1l^2gO`MR^3*DOQy8;ar`pcz`^m$@U zpy}>db!)EgcIgD&jAl)s>F+?d=K7vMLxuiIsUv-!SQF@MuDGsSbLHjFOsLRbEmdG) zl4ZDeybG!j`Z7?^$G@`-Hhqwji znDSQmKLQM08_W$bZD??FVchyodB^&n0fw#(<_4H1G`M*Xcd8sy-m!ivz|gh9+yK*p z1~&)B9qN=fmRrEA@rOqP8r=Mc8%mBTZ!A9@D~7HO<_4JdGq|}AH{uEsL*3+hgNQ)v$+D@?EUYN4i$PT zT}87dPDnOapqs%z8EEKcG;0E#%@yd@TzUC36Dst+RDp#_mf@z9k9^Y6+%WHV~p5HrLbo&%z%LFmyARH3nyMJ+1#Nj9<4nCaA#wSE|6m#M}VWe7@Y8_depv2}iI#bG0eq^zu(zXAX|rvMKJS&ijS{L)Qj#1Dwru;gL^q_cX;#&v_RN zFm!D&H^A9k7asW(H#t+>^lSpN#^*Sj>%t?SKI?T&P@Us%EOn&M%nfih*M&zuea?jw zbTgPWUNH^m53l*}^8tnme4$cD`aH45;B2l7k9_)q3n%DiFl!9X=DP66r!NK=D)5C% z9qIGL8iQ#)pNhHjrZ2gWD)2>09qF@b!WK6`I85D|>z7?RL503(X@^#>nk&ySo9ldk z+eas)3VNwhA&wbzc-~(Ee{sEdbjA&F$o2AYX6ZeyTMnww*DY0GVNy+?>FGevo9iAI z7zb78>y;|7FsUZcbakNT&2^6}frGjk&6+?TXRS}jyt(diEpSkUzJ93!3zKRBeHv?x zo;TM$t_2S2W;AO8O>YN!ZtnfX5MvlBG%nFpzP>b66KGy}fo>Py#a+CI3W<+A)sa3k zH&>m_6&K&Ux$fh-r6w}9L;Z?sV%6DPfu37jmp>|~LgH#lHK@<3;ogyteA3a}F!7Vl z9xC8Bm3E|GVXihMEEGqv`Z+j$(Ann?JeLkIbZsy8yg=3$;!CWc8(6zzb z0OQ03xVaF&ym0LE7a05#>6GL@nW9H0<_4H1^opAY@w*GhK7W6?a)6<0gSi2w1r2Tv z#IG(K`~3A~3z#*&DzdruM?UT2%N$jw;3}nj!=<4bgK0mnxVaDaQ5^fcpSnhXp=*P= zvEpp5{gF?5d@1ChYQ@(sRbXLKjaQt_wLkJ{A72Kko58H{2{`y!7+#q-*L{2)qzZkV z(uL*fCDriGm8XKuwQWL|bm<-{=zOP$P0Cr3do3u}d+^97ALfOBVx-0Oy3fn(X7Lu# zwZYs()6?9Q@h;8OxWG8}d7<4r(9pHP+(gsWfo`_GssVebPRJHCYvP2^*MV-vzFMH6 zLf@j)kv{KP6X4{ z!^Zox^%gX10-enj=yqLS(`(y9wdz}!I?`w6COVrd(5<=h^2gXig}zOx0t*v!wJGHz zpLkg}gX4=W#~vy$KJZk&zBHH{;B2l~^4y8&(j0rJfcUsm`TEjeZh*77;{U1b930(w z4^3d|5|pnoH^A9k@&C|o4!(@b_fP?G6{R}TXXXYtn=AgG8O_0$b>SW=Ag-ZQNBYd% z0B3W>|09Pv_;N1XLj}YYlcU}0iznmX@X;gIIN z_&E1at@);<3sk+tT-~{H#cZx^z4%ta!KY0KdfQS3mYOU2jn<3*#Sk6MUc$rq<;KsI z;WWlw0}Wjp%uRGQSD>4z`N?AJ(;9aRG<0n+H__Q#fo`_unZnqoIkuqldH^q*D-Y)< z1Xr)nc@^J1Rt;Snd)Cl(;AL~=;T(<2jANgd+dTpeT^r0zbT(I@o4Iddz#ghA4za8B!Rt{Yo%nfih zSNzY1=3x9{#Ic9!RNTH)frW{=0nX-%|8#l|#*aE2`}}cd3z#)N$Jt!*pN-AIJpCAZ zs8)Q3QUw+!<_0*MEB=-F9L&>?v4;wL$5I6rCguh>n=Afx!5qxfkFket2D8SeqBhj# zKAwJzJyhU3l`60>F*m@qoi^|B^keLy0^hk*frW{=0j|xoIgh6wV-MX7u8-{C&J_-6 z-s1;=v4;wMmr?~5Cgz@SqOR1hz3rS^9Q*+a?S4LV-Yb6X!zX_N$0vOKR?no_PQ3pA E2kf+of&c&j