From 2acec72bb163264c8802c9558ff300fb6cf38f07 Mon Sep 17 00:00:00 2001 From: Stan Soldatov <118521851+iwatkot@users.noreply.github.com> Date: Mon, 18 Nov 2024 03:30:05 +0100 Subject: [PATCH] Custom map sizes * Multiplier and blur radius. * WebUI update. * Custom map sizes. * Version update. * README update. * Logging update. * Typing updates. * Tests update. * README update. * webUI update. --- README.md | 21 +++++++--- data/fs22-map-template.zip | Bin 1920364 -> 1686970 bytes maps4fs/generator/component.py | 44 +++++++++++++++++++-- maps4fs/generator/config.py | 14 ++++--- maps4fs/generator/dem.py | 46 ++++++++++++++++------ maps4fs/generator/map.py | 20 ++++++---- maps4fs/generator/texture.py | 22 +++++------ pyproject.toml | 2 +- tests/test_generator.py | 38 +++++++++--------- webui/webui.py | 69 +++++++++++++++++++++++++-------- 10 files changed, 194 insertions(+), 82 deletions(-) diff --git a/README.md b/README.md index 75e262d3..e6441c49 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ How-To-Run • Features • Supported objects • - Settings • + Advanced Settings • Bugs and feature requests
@@ -136,7 +136,8 @@ import maps4fs as mfs map = mfs.Map( game, (52.5200, 13.4050), # Latitude and longitude of the map center. - distance=1024, # The DISTANCE from the center to the edge of the map in meters. The map will be 2048x2048 meters. + height=1024, # The height of the map in meters. + width=1024, # The width of the map in meters. map_directory="path/to/your/map/directory", # The directory where the map will be saved. ) ``` @@ -172,18 +173,28 @@ The list will be updated as the project develops. The script will also generate the `generation_info.json` file in the `output` folder. It contains the following keys:-H$l^%TS9J-hDVd zs++08NH~h#?Q^#|W)ee-_R681PV$Ic_r(V^d(WQU@2XK**Y>tnog<~Z>$GQ7X*`OwJRp&-p{43NtPnBZxC3)WY7;g2JSin z(e>D+JWR$g0c&}&xu-2sI=C_ X^y}e_bH{G{HdA7&Q zC>F>zC1HnhbB>zq>INU`bDgawPH%~i%>hFXTE;NBnD7#&UZ=KX;D$L#RY>VVYh@-< zjlkN$muj1v&lgFdU=?gNW2&A#XW&_sbuU=%kxL9cAH^eW&M=vg4sSmLVj3MMjVK%R z8JBX2Cztpp0INh{)0MnwV%NK}s`guz6a @eg+7vD;sW&ymM=csiT z+s-6E+vJ!|2XNA&w{#{oef#$AG))p`n(gd0W`)PnEr~IHei*JFLmjQeWrN|JtC_F1 zs8Q-xVvXGJp7P3yOgpq_`hgxLA>W!eS>nQDCrQIltD>Fz*-YY<`V6U0pH~U61v=X> zvwPg-EIpI)YP*34OR#J0uVVxTmk$^7FBe+!zSV_rb)$G{#Q4f~6&(sCX+X%k19CwW zvW@pZZ=a)DTyX_dFdH;e;X}+4)~kqDX?EsA67xR_S+OXQL^jw(TNXJs-|WW2+Mds~ z2faMC+xI=%%`DNZuY&N8R*0-;o9(oMA3y7pQNA^cXEFgz8kP;kd_w@VoyEC4wu(-= z&p&gJ7I$whMWnG;TFTSkT+HeD3oH$y^sFo@adZLvw&!Dbq%<3pFWnsoNh}7J`#e#g zQYceybMfLB_?YzT9N(4!-R;YhnfBe7C;rc=)T ;uE3i(DUsqr^|USznvwJBC2|>L2FJ0{Een=?3yNZC%iy3#p`pF#Y0nPr z3MlIyhS28`%8!4%IYOdHCU4IqRQ+K_K#7E)_ua;}&ku}#Y+qWG86f$h!5>qVFJocu zj2T9p_z?P-5>f_o$JEE<5;@kYTEW@Utyl}2UVd)`-9RH$yqv<>h`q~Na3aYleYR{M zWtk)yn?b2g;AtQy{-!9t>Q279g_ow zRsp!zA9lVoM9m%?9FZU7k&6>1oc~O;M@Wk;T=;q 1p z=!3v~Twel>8BcM-IN7mJXjXoC+>5YzamGIMJmx?lF8UZ!qrp;RZ{E^-nCL@sCQ9f% ziTzZ~<>42i)UVo~01%EU;c}{e>t`FjXZS>i=Fl7G>{fiJ+|-O^TaHKRACY8MpV JUmOSHUNT) 9~tqI-vpZ28JuzpK+O5 ~9T(9ZFVh(#^%H=W{mUZ^miJBx?UK%M^Uk zOQQeusjw~g&M~G%=xsc*xho}Q>o@J%DRV@dXdhCsW|O12Bo)FfB46y_zb~?N`f%Ew zEv1}t9?R+L^OU%c7MYaNm{L?`LX-1_h3g?Ow=_@Fz1%7Q0D5%#`kx6Fs#9jX&%Eh9 zGd}JGR$^AMud=q{f9TB)ZI8bNP{w@O&TBCRN0vQ-?|SU_hD2o;NP0U+y7KPteMe!_ zXIzM7jBW^*zxW)|#Mbkv_47?zGVM<(V>10E)1%W3y0HhmE}SH9MZp_o`5tzGu?9K9 zY$R0ml)lQzz*v#~De;tDQUKHIu4U2YFcNt^-#hu4?>CN3hn$8^E$K7xjEKVYpEj1O zq82?4Ii)egUNh+Ft`VO$!*tkdHGUU>wL>tH+w1*JyFL59VV +eVbMlq+*x&O>-5^X)U `U+V**+J=yGp&3uv%#-mR+ z0ZJi*Xj?@A&(H6hGk#b87z~Q>W2?_hNcfOuu+^gjpmo}Hs949XfNtYDkkW@8$hWo1 zx!r(yt++AZkNVpCYs5N#X4<;>rH9NE_HyH~9VzFn8f+mai}M_TK)h#ihXB50b_olH ze3bRoD2c~T+7-Y4)0Fu-ydSGDFvUxar)%8}b~dC~31`l8bI&D%owFT;7;RH5Ly6R_ zW12INfv9)yGs$0vJd4J&leH5V4dUvCu=PMP)ILAuVZKLs)YT>BBbK`0?@B0=ZNeU8 zsZ)3}y}W_fi=Vuc1anA!^AX8MbzH*B_wm>Sg5R>YOhwV5)XGBY;X=>iD|@Za;-~23 z%W|VIXoZ}tI6^7Zeb}o(++K5o$0`TdtgtcPWFSgXbh_?pi*h6Q{fSIzHF8JXiFZ8= z8R=Ec+d;}qNu Y=?+TAqzFXd}jO;WU-i$qgoRlG6x; z3hV1Vss6YUxco|Nmo#3^HIV%Fkg@nMH+q87IX@%0brELSDa)6+W!#L8b0K&94v+}% z=o8>`OooYHxSpFGKV{>m{2r{=p;FpmLxqVFG^h6(6E`2a8mg^0(G8vRK9L|-p7NjT zp&;a2PSPau?R%sb8BR^4D`&a=Aid(7A4J*Lk>^nTts`q(gHrWD(E3x~;Me`uK5dVY z>A0T|uuy*aHpzTyZ+wK_nuLknn#||4diCuqpyE9;D{Ay0n@na%tBeG9WnFAeTeUb} zs4H}8&L4Qx|MXFG-5Bqk!q*RwWL<9F)iJ@vFccO{3=Ae~zvv|~GGmB_;+$-i5~Bmw zCR0p hlWj^)0dBSK*iu|2}x46Up&PN(|^mCGbW@ z!a{n3M0edY7f!|w4*KRcELOHgEKcrr#w>>VhGxc_sq(d>Y*>=|9god Y?+$W>_)v$DdfkM2XsQmQRS*E-85WJ5A0SH@xWYpVf;9$$b+iCfkSh#n1EeU zQ`NfJSXbteaa =RQoP5!l19^qB^d4Qbjuv-cL1c zSzIK)?QZ(W5MQ#vlwdY5=+-e;TCBz>RYSMT2!(h1NYv}2u>_uh(gP1E8Iyj}eF*@) zufbxfPBmhXQt=1a5ShgEQ2450a&CjsB`EU9p2|Fq1@dHL%GIeE+~=$)dpDTFv9y@g zd#|A3uJ=Av=t*tM=~2V7CY5FBgSe4MGvT8>M;;F-$I~OW%(0m&RV{VzUaY}%)1!n* zc1UFHD-?m|?Xby5pHqU44>&iTTdM)@`rL5hA=dI^ZJ~}IoY#p$lME|-7!LD8tP8!* zT|}0s^-N%y6wHI09EamAgS(ZnNA^$LInW8ogk9|({8)WAh^uotb>)$Hv_R548TGYH zwIe;ZHE*TQW4GIzdoyb)ns_%W&Gul@F&ND>l3a%~i8`m4*0YdhU}yVF^^y> MzK`nY4w_ zUxy2cK#%T1Qdc0^;m?z%y4E<+Y6p&ht^7349X<)BlpT6kwYK}qn4f{|vWgsgb8V7@ zj%yBpK)6VjmG_C> iWI@Wdq{05a)_cBOEa9>XBOk9hP<+^{2=Oq%u}Z>V-f3ih zC}Oe(m8fM#bomHyJZ;`ou{Ne`l)1t^vIWJp-prG2Ru8{M^k4V0&D$dkU4eD2)b}*X zxx2U+<(QRUiTEVRUvC23uD!a^C&Ob5I)Jyd49D}BAuaLq1}Nq`w4%RGuC8qVk%j$8HQ! o-r_h4e=Fgf@5Az> z6GY^_|Jkv!eOn!S&2nw(tDtNym;*{^Y4h_9fM5Oi#~r8#9PK1Sz17RV6uup_(Y1#; zVk5qTi0DGuX#IMc^&EZ618?+x02rJhrZ0)&tNHmZ|G7!0ZO;N8_}(L3;ML9xHVxse zeNOML=xcoe|MHym>>zrY4GZPPF51b=RizI8*L$GmW@3D1B>{!U!I@9Ed>T8n@-&hp zRq9{^I?Zw%7P`FwrHUQHPr^t4`#Pp3VSSoFw=z|z9|08j%cAT%Zq@V-1i$StPrc?v zG31t~q+S;!3|82z?k_gq>6yT+n98yz$@}kXZ<_n^ROf)IXr9+|Jfgm8NdT-)ajEc< zOJU)f7hG$gRVy&OM8 ^B`IgG@;~p@>0l> zwHhUKwb R}fnx$=1ZyoBlytPN NQ_XcN zG;P;{f+FbkuJxn&IbL{~f?+1ia+ `TH{O0vxJL5TWW9gtJKu*v znY?UvSG_=GWeej}B(LIB29o{Y$GjQE=R;4zTQl|=GA#$5u`km{oi$5;+)5HIno7Dx z8eGpvOE22a6X0CO5)}-CX$>n(3v~Aj9!g#B3|6!ABhL;?NMSs*Op#yz2xu(vR`ZPO z`rQqG^7YcMqcde(TS--xAc1XAy7Wvb&b2H@2!Sue7DSxY>2=a#Qx_H$x~M}%0>GTL zG@1X668JZJ3nZ+zD_)0ym$j4>*U~q+CV5P6$N=m0diZEBP=A{OpEi)E-;xSy-O_Qb zKhH-&;N_1Uy~&3sr+r7;T9&Phg(#hFjxOmU2*?R^a_f?es|&TA+Em#&>JMf>DY|)f z61))VVf?ij(qhqIcHsO}K#O9t&vhI$d*^yUL`wHO)00acnA%mJfqxA1b!|7x3>|*7 z_*rk@-w)>>J7QLKoOSfZrv*f|Oz$bE&T r^6OoISilb?i#J9H}#!;c94baXnYg z260}m2_UgxEG=-}x5A(G)q2U&_wWbgvQ_U78-f2OCOFtz?M{wVW(LK6XZ*7#R$$Ha z72!K@TK Yhs*sMfM4b?< <&SIZ)B-$xLD1 zWL~57C?#jA3d$8lI6Fw1#;bI3T@Ht%3~%Q(hOH{RGpD{!LV4l~3@MDwn==8;?Cbdn z=Du|89P!~%-xf%Vnn3Rf{$B0Xl0G@`I}Cs2&kd4R#_U#3$fkSUw+n%TrNs3LOdC(O z->v%-K_Fvq;=S84;kx57klWfnAndwhv(>F-eLd+egF6I*&+_^dvZOK}gqC7Js!T#Q z*!v$KxVoX^%4baJil0ApK9Tr1Z*&mf$+#(M6%qf-EYF$ha>XfPY)LjYV|4SHG?Qus zbIlO&NN2%0DCtlVYj$m+%ISxSYHiumG4_8c{4@0DDB& PA$-r?GW>(A8-kPlXkv)6A zb(2h!+0VEC=luL$c%9+6Iq^Q5re&c8&$__jrQSpW@?Yrv#sAAeC^@wh#@844O~^No zT8pXI_rQEKp!&^&hbA=P{F;Bmu?Oac&ZeO5FH|Ykh?mX~ujY$HmK7cPU!R&qhTObQ zHu0s1z%8ci&L~!Bv7;AbAjO}_4E+0{%(6*XS7NNnv=Xw- fgP?kmwXLmjo254bwj2c4D*|NheHXgV(;kV|!GKw>z K9{PCShGbX_ggVrMo&A@JXe|7a|xgY=0){K%O$FH>e? z_RdMmSsZWOeOUYKB@H_1&)x00V|c>cY`ZJW9Pl=FAKVyFIcO}C*xH8v-X8vy-H^lU zk}cmVgWO7Nzp~REoHr#BY}EN8Fv~IARkw9kALg7+Tec$vX0V%W;D51*z;Ez@ D%s1u!~3bQUexO|q0h60 z@uXk}=M10eTf7|OGZo6J85gkMuKm0JysYm4Nb8{oUi}X^9fgltg~uDyRcSxs0|*dV zA=$aw9W>o#%*4|@OiapZ(LP|hd+_Y f4?+Y!FnIKw zz-0r!)YQM=#tT0JA2k ijEn8j=7)#t!_ =u{7R1io9ga>O>xw~5M zAIcGrOZ*Mr-XFci^ppSf7M0Fdy#q3C7w8(jDVnIyUo$FIP0`$z#{K)+{~3A}+%XtZ z{<(z*{V2>eT}_$SVq9ZAnEd*i!>h-_k3m$AA607-fRF~CmVAk%Q4vV4^*3((^%35{ zq?;D8I9=4l31jvZoJ6Q@K$P)9A0ZTOda$w6IPRJtJo1G&YmLjee|z_*IQ^N=KnAd< z$hdR0yhCF@vAA~G=%)s`)V?z1L@0a36F+L(lUJgIam1CSYhX)kYU~6-hYjywv|-p| z8==n*pR;d`YSepzT^n~}YJRcu-~R6sCA<#B*by}6m6>)~`u!-o|IXR{ }}Dz$LaG6o&E_mxF*Dh&_sgn(t_mk3caN*53@T52y#D# zSre>zkW^!S_nB$ML4<5anSAfcgFn0XE5jA2J?T5&$06Hqf{$9KR63SWlw|vT1%R9J zUny4{LlS>aczQ!__bi0B=s_E&;-k_r*2ELfRDI;E5e)mC+&=u&Q+1jXGExg0d4>B0 z4V%^KD+m zy7OA;{4)095qS(pO?e!_K@s03;bE@C ET%dOt>RIr5Tl2n6!xmO{3@pi{ zju4S>?FHCuzGI)!xYj_^%P=*6p&cun4XbO43B05nFOb-(CfM({H}yZGi93ovfK)o8 z9{xF<{Tu&(4}xXpO$|faeX&o#Cb^&oE)woWo`oQI&Hy&2*=@eC;XWHC#hAEYO_4b! z`N}=p#6XDKOV|yXRsRoz;hu}MY ~t< z{mA4%&v^d;x4g1vOA2 KVGGe2~Y^=jQoWzU_xz=a)Byc{^JmJ%m zSNQ-6o!FCYj+Zb#nf<%z1pb*5{yc#X;pwx`GanPRflr_}Uj;d(m0ffU!W?qzL(tVhnKs0ye;a7 j*~mmblKXaFpD2+ApZ8KcnS z+va*&N!_W;S9Zf9ZIP15zt#S))>5CAUZlrith>mU>Bvh!FT8a{ET8>50{ooxJGn3K zwi%r&NFRBv0AT!=u)+;6WBOHz%fIRUXZi3{uUIYLtByHo)!GV$oz%xA7P=W*nEp=X zznBd7d0wGkZ_or!GZ!aK7(>~jl}`%vPqzKdv46A?0Y=?8%`AxL4xg2{)4AtWC$(>L zGb6&!O(*v>Np-zhxoGM6fm;nlWAcvG&t&?AOFL7V!!&A& `qpp_yp*JWo5 zXn_aorWkz86N6q=MuY*KwflqF;*9TK4~!_kxfZZX-;T2}n0X4*HX(yhPurmeNbR!v zjx6={VSgpM;O)ZQbvvg^;k(fOVYH~aWDVph=C`o_2P>e7v@HBZT+gK^e?@9TO8Tr# zGtB6(*!&M#aL1KijuTFkr neL6$()=H7+!B9JfiZNYhWd1dUQK#J@S{M z0&2b^%{mB%tv~2yTQ@Bj=yJ9bHW1fLuj^N)B!mB_XyErdz-8B4CeL_et7yhW;7y+# zIMy9)B3N;RW9^<*(zNd}*y3gE UYY)muN(45>qT2>iDLG3qqHtT&G2Lzz725V@D&wde7d-=C-Hpn|j)#%qCjo zbeCJd%ltDt!}Vyb-O05=3I76l{RrqMqG_c`1zZs<6 ^F!bVr*Aji% ztMoQf%>7B^z{ ehTry7rHvXJM2$J!QIx~H$L-Yao{4m zLu0nV_+H&DPoii asYLMU=0grh_Z9;PXK(^DJGy z?ZU$8Kz;#4=pOIXcnRH|0$I2U)Oil(ZNI!_W;0_ci9j^K?XzQKevvMeZfcOmowL )bLkRppU26MNW-RK0z7SJ z)1WVbx?0RXLHKk33&*hNLGz_WW*Bqj=kY?dtBoXKSrF)Y4B`DDUp=ow(}tMfSRR+*$LbQQ1pqZZLxR zsm#)=LCkU#+fp9>)N%#+EZG*x)=rfnf;Nbe#1^zZ6S%;m#lxDc<(b|JP2&d;Rn&%# zR)L}>SaKa{QSZQ%^o4ZzR3m|$^Dnsmlc0Tc76L!@ mFH-xFXm?Bgf*aF@vndfSu)M@eT9k#?gjzm>&K`=FJ zknCVLL~iqbk;67CF=6hwxuQXi0O;E!J28T1iyo2u2W9+4VbNMJNSS4t!*zn;{M*|g zxsvlJoTj+2wNBIMeVS)=su*1N7SV)Z?lrQY;#8J@E3Lk0Ce>Ns^on>C!QvzwJS90r z8yDpm!`1?ksz#Ya_#V;$*3aDhdH)6O@;Fx&MU6~dWm_g!#dl9ebepU5W(t2#kjEm2 z+mG_};ahmC*jUgjlPKKP!`>U4-ANB6o_)P2P #z586kvn_m$F^Sv! zux53Z9bj)dY?e6o`dk4oIeEjg$$Wf|`dcFLdXiK|q>ah{RO3JK58o;RPcE @mOH~UbgAv9C1gGo?{kJ05s1CT; 8@mP5o>5Pg{G*|`Va&YQC2&4B=yrMU3 `iXh%$efTR#F5oWbS!v9KPUF zi%U2TclHQcvr>0=Hn{)S#lNq=!qr|&((>@}nJ^9znD_iqGuTpg1hYXnWw7p@VK*06 zx`OLfa|fKAefnRVjPN6f75I+rR`0kbIJ}J1m^-n9w^Qa@5wMTA)ku3r-wlbRo_#i= zaG_= vwzV1MA5SchiDNi%pS{RBnMMA$NBd(H+{AWZ)g-iZ z8935VjV?>(1>Kj0?I6gt@W+Kd_lCUG-YDW(uB`{z)bqcnx%5U*f)_{tMY4e@*cM1{ z#bx>`uR*I_9>W{Kg04s@u!rTr-8#YB!R`5_Ou;qp?KUSsBZ2?}?S(pNQvtF4*Y)b$ zn^StaIUh@|KnS)-;g7GF!ti4jqNiTfrdo)|cR6>k?;maco@)PE|2Tisky2Y!C|}K) zLYLr>IXO#jNaj$~e0}`E(_vZnI-c?VEL8iV%4gU;&b6dk2!WfC!;dV_GYhnzuVq!Q zn<+3u3VT)O`Tq{T-}fIWhK{%DzK@TytL`PL=Ei_Gk{{n2AX-DPd5zBH6W(lcUqY!) zS@7VpNub9)?omGmLZwZ621|+p6kHj G6 *DpaTR*x`->9r zE#rN@t4O`NB=-u?z9*Vw(YT_5KqcYznNTESkD7O9v*7N!@ND~`^*w_#S6bk7fC=H% zBeHQk0(yG+Kpi+GV53B1*;VT2-s#`-^M;PWmD1t{NV3Q{WOdU~rYxk4RzTxlM1M|K zmvF9~rQ`KPs%~KS19=b1Le;6M_y1wUpN+-efAzp_!Bvn%EXdCE2A2-$k~}z#Ut}3U zzbBHp$8a%p2(1|#J(8(fdapJ?#yE(8m((P-ddv03Kn~v1(>3i0+eTdwU@G_SpN8U> zlRb2 o7l$R zWABeS3cmge2TykA(Mmy!S~X|AP?FcMJBvX7#=qeHG;aNIEzIykNxb%1a%XUD6%0JF zyEf($@Czya`6ZkkAp*Kuu2!xtacA9L)4ZHwz?z=qFVy^Z{)D&TB4nc^YQ&6tr=n1X zD1{sqVj#!)dK2L@OuD-sOX?JuMXlf<{z4jbM%z{t^5;tbmFWt$gJ$p_n;jYZQ&%Rf zZ>e-d*liUDaD(QnbxJ*?F#bj2@BHH&&O7ZW*_f<9qEBC1Kg7(x{aPqX=NBjZ(+Kau zO9v>;r#3ELUe jefV&NdmL2pA ZYxGEVK(-#Bp od;(SxEeA{(?&{Y$4zJ3jg2imFZx0`N8_5o)x=AI3~xy;r2sb zUm}dm)jRJNFB8J?DZLXWQ~H(F{Qa<88XKXvu8EK Cm#4 z>voL)=syAJg))At@mU%hkJuL*qaaoCMw !O+ zc3XVOI?MIcfG Db7s9sw?e+eRe|UJoQvmDjI{yQRvZTPQ ztR-<>ik?J#4Ad22ei3}xT+7Q 3}a#Xc%3F? p#t4hdM;Uc6n=0Vj*2n^UG9^B7uv%A`McA_W%ALfV5etmy z`-*p(9LSqa{d(&qG7UQCGx|i+>(}8MZEX3UN=c|OP^U!hQkX`zG@v!wN+x9dh)w)o zQ84Ki2-t){T)g{Tlb|j4HUDCgHJSD=i#I7T65!mSpP@dUc0()smmvmy(!k+ `GJPkEm|_j}@ZjC!j3p40Ovg zx)0-R(Xk;kt$Xt8(V`gM^-*ex_XQfd$a*%7TZlhb`&F5o4rRzQriT4hf)o31<%E5! zdjdurv|59IMKO`Rm7(-QlM}saM>|~x749&@*rG<(l|qs&a(*-El!wh?e10A)Jb9hc z`lCIuU=b~Q!W=cKeY7C+TNdNS+$Q6l<82BUSucuZXvTMDS_*C)8QN9UB4=&dH8BMv zyTxjXnn*K3IZ}@l)%t=DkrBQZ3|4o!C|3}LH)B=smdk*h@VT>vmp%Ns^t0^b&(IM^ z9<-cW+tDK_38=C~*`OE47yfmEkgwS!IhauY6cWSy_E&0p`{dIiX+eUW!yVpax}4z$ zwHJ#6J_>p7{~QB5Al`)m#IvPst(j^9^+`mc_j1N^n4JWmL3@XHryj%DPbVd}qXqw& zNM6679)KAMI@Tibe;BNr9@KQtACt_bAZ2cTFq?#)EoTX7d+8TZ(pT3U&gLZ(w^XFS zmD4Sal?}+mb ;joR~fIyC7Gr!xzE6d_`6e-}2v{f)LJHb$Z4HJRy ~_#W (Ms}b*~#w?6G*>+T|$epmzqta zcuezlVw`DgHLrTyOlzL5&5wTo)baxcg3L%Vnwv1E3RQv05iFIc&3k(mf}T+WFN3)5 zWLJ9Bcd{qlpM*n(PQ1F|ro>jKW{TPH|NFlsc5lA;p+@0dwr|3rzPBvG>frw{I4GZ% z{mVJvuP)R=7!QBr*o;Xhxd^qX_=_+_mmM0Wpb)?nU#-02U-C3{6Pa&@TFn!4dN^<) zulX!{Z}Lb7%5?>{W{VioP71 y2wuk0D}QgFdhSn?x%qT?<3z ze5Gc=9dBL2MNy0&2eEHK633&~@fO*0zdbwRck)n>Ca-Urw64y $|LS`Qm;5cPQjsom_9jq0%>m zr0VL3lS`NXZxfdDM&;dD!HytbjknglDCwehe`^ipQWj~vbE$G00$UzXUmgDkRCzoi z&C%x6Ie)*6u2*4ASrO-H`iCHqHLxYN_PEfNj@oR^feCkgY8LwbVvZCC6<$kxHE2@k zp<#_u=DBC$e|$jI5<&H7hj6^Ov?}EDqBtM+(6kr^xB;ql5}nM6cEXa~LpBR4?0!PH zf8Fg2<6(g`-Z*l~4^OVYZ+$z&Bb#kvf;GA^kCK>=e?gs=-ig%~Z)!@)P)Y5wGS)xc zE?;k~oaNsass{OVRkF udc7?;89 az{_&0j`2CumGC5q5e5g-A?->df5q^$LhIWyHPX>|D*ETCLPGAXO;dBlr z-fs@LMzbsxm41%QLEyrtXMcFX!*qJB_-B?;KQZgZqcye{j^;6M38O1+D0e@g8qGJx zv;%S)w^6~5*sOTeQEta_41hs+8nM}7z3M_KVVn~4sx54y?WL%Z6#-M;0X}UU;#60E zF_W(u&%;fQItZrOPi>WMPJ;LkUhl{x$C~J(HW+Wlh3e}p=JR+q^Qrwg=R8B88i_lc zjVL91 iJNn{jl?&ffqxV2qa)g`>uUBiDOk3^~QyMGC#d`AegCMo!)E z2Y|)5*Pk1W$K>9~>(V>#6Xs;_#gcxEeAS#TffA|8!3<+`wU!& mxqGvdQ-4RZA^7s6V Fv z3jm%R+=YWkh=9O3XJSn44*QAyU4=Dsnc)IY1Hcn{eb?_B`;F-I`j #j&&f_<)%*5fRG~iR(49T`~OTx{P1Pd@jz^ znqN(|P{6cbw1r8}d|TVP_f_Zc`HP&C}Y?!PYQ>Rs&+xVVZ5(KtcfJi+BRZfE3C1U{$tDc z6;M{_HCNoWW?vsvZ@32Y<%HVo8e_6yb5@GO5!KP?$?>qg$ <-I^?W}!_Y9~oNZ&4#W?)_!PX5nuy;HHIo= 0kcs8|L)n%k`~tbF|kdrVa8I5kwjtI9%&)Q*ppHhodiPY_k7Mxg!EP zH&RWbXVCphglF>Un&W}&n1R;A^FrA?*^Pk8!xqE@&Ai*TxIX=u&9KpZ6Iqe6Om+tU z0kU;8l9v`|>i<>9YS!^R4-ph-4NM6S7zP!w7pYIu>M$?!r16jQDaT!V1+4kOY0k!` zmc~-I3`}>Wj=DzH#Bja3F#9_0J)Dn~=bt|Sy$Kxjm>6zawXstcKLpo#WT@PR!<-ZU zhfTqm{{ogmu}Pd6{CYC`*@Wx2!_6+fsDOogTeIE(xQ>u@d+Y9&xNL4hNSLYq)tSda zvqdu*qLTa*)K*P5_PuhfNpo+#g4AlXWQM!k{lre+M@&GtWKHE$U$>G?1*xoC+Gsu{ zDpjrX2j$8MA_Uu6;vAjHlRNe#{=WOX2+C?a!@$Ahs-T`Cw^@43!CWIF^QQFZYe`h0 zPKa|V?6>`B^zq^f(= 3TAm5KQDZzV^} zdK_YiFyu3MyHq&tpZ(2olc3$MsP8sl_{7n>%8F6J@_|jF?4!^ 1z?u+Rft@y(KkM}ap6{m zxI9x+RmuB+GG~16HFR-o_E3;7MpdAPKjoc4@$D*~IBs+JgR}TZ|G~K$;h#MZ@YdNK z zfXUX<@kLUq;p_?>D|5k(hI5vpyw|1-)Asw7Sndg)%L8Uj8$8UAMgQRYh1DJF@F}M5 zOgd)bs3L<14tw;fgTo#(wG`)vLD!%~D;H;9d}BSD{_u|=yI1~L4{soZ`S}0cM`!lI zmzcOSwpuWraeLw#vs**+{?p%Q5T`us0sK^Hmmb2rT#v(|%YA#;=@3)~qn^NdUM&q7 zM9J{0%*lLR@4I);LOf~PK3E$i=w6TTxH6Hk -ku-NX z6$edpMYdnF4Au?Ge|bamV{Le^69Da?kMjm!y$*#YvJ8S;nKkWNxX6Y!SkH2Vhex6H zMw2jC-LctEuKy)qZHIw~0I7<+tF$~F51>3-Z|kO>aP3IDdDIK;%TS+K@* 06UR*_B1^t}H=X(X)7$V0oXf;u*=zm( 3E z0~xe!3?{t>Rd*2aK~&q(-6~80=_De1bkkHd3{Z{vsc-q9nuC-}BoZ;2uUP}u|KyDk zu){Fw4|)z9#kzz9+1PtR67x|Ty8G3Xo1`!1E$}>~0R&P~$SFqbCOc|exwBGxIdN uS7~z=HFAir6#7636G(X74*bT12 z*}YE~qV=XQr>G*M+E3jguhqj! _Zv2=RjB#aTC;r6iHCvD-&U(d}d~u@(u6AP%o>jg* zV0HUvB!eJB_m7t1L;WwXXzJ_yzx{uZWO|SX8d?ZLWyJccLomS%STs2-YYCqsiD)U| z;|T?wMQKBsuwyohPVA(oD-a?6L}%)#fwtjN(&wAsx$#fp59nkt*;IwBG$15XCu47% zxYAvf_zyDYqhY_t#9-7GJ-vbd#rUtb2 s4`Hzrktl&NlY&-Ee}gtK$V xTV1@-TUZX8EQ4G*Zqu+qvuTO#3h!S`n%%WI0^=){ ~D>BMtA#F4Sm9uDDH;wo+SMH%i5*bpX72fMg7OP;PUv4a{nKH`rA0q;oZVJ z8}=S=_i{M0Q>~$4;6JmMh3&)cNpMurzP^yGih%xuQ1r=1E$;o-V!K@W8^2PnL7+ED z{PMqPcW)O3V }cxz~n_dHS%tCc`3^1j}WaVRo=hw)J_FcaWL}_gJLa~ zmkq`6Ze~5zDcq~=$=}^-v5E)tY1LS2y~8yHGD)nro*I&_DQG3Uyav;)aHi*pzFQY< z+MM}gj``$TUjuE~#`ublzx<*9;L=#ESJO-8ZOMK~l+S?lb%?1AeJWf@bes`U%)UOc ztB)$XBd|l}SHWi!M17pB%nlgb4z|u#VvjpmGZZ9SBsQrbvurH=iQ>IMeayd(@zg>R zGViHh32L**`TYhn{6Z;pLJk9fzf#*=#~QsEw=4Z-dW)d}+HbGtUYHFj)mZ0-xSIh- zbr}dZd2nuPfEX7|1~6xS{yV$+*#T9Sqk~@w11~VYwfXAMU}RvEVX_Ryn3{|{xPe)L zN7e*9-rbK i)rRJ`{k$=%l&MN$`OvBU6Gj7R z ADH2z-XpQtf!^dqhHeQoFw75f2(o;?cdJg z?^Yh7H*>}u @1g7|^oQ80xRz+- zWT7cSIj*)S8Mz_Obk8 Ze}gXs^nL^*-@C4n)rQkqwZ!Zq0{LcfjS;$} z@{anqNCO1S9PibNp`JX`G@k^cAW1dp9K(s^Mu~KQIV`Z5b5?9<*EsmheNa^GbLpg< zGu9uHI1j1Jw=E!&o16GA*cU`Gu2qGEp0z>DrD)dePdwZE{L7;GEQ(y0Pa83}dfD;X zpIg*BtP@$G2P+a=VqIBD)}_a}$(Hq1KUS|KVVkzWFFU4JroxtnZqsngOYqkbPxo@l zrSBE=6Z<<8%PT{uR`lseV%nYb4pUT1hr8!<^KaV@f?lvQZ3pk-6b%@a=Qm8wm8YT3 z{fG{{G12z-w*7O=Ibd><%IYe1x{3$2#DJH7+CevHO&FiIL$Scafc>B7xRu*aq)$6M zpR5SmFZOI1H-vMYS8KV3j;ky52qvMSSVtqu=5~QY=K`~vU7E2ov3fiTNAM~_Q(LBA zyB296<*Z`AJ)5Q^|BVl*3bTyvm2kp!dfYBce=cIHzuDUHA<}+?%D{HC(T;u87IXF~ zw7-5t{wYcngo1H|V0y9vG^X%k Z8w1%;`71s6f@OTCdo;6hNm>nGIP_*B zB&&&f@}u8>|0igh!7ZgI(#SIW_w=JCCv+n`yrmAP*)o#_p?$ 1!DXF7!L)t>;xK7TZ?{BTZir(P-c1M<7#gI&WvZZ=%k#QFgy#!iKCBY D?)%8nQMEbtW{{NhZ^vH91W(3y8h;}6j-qv6DK zo^YTWrpqd5dB8F+=1H{~CK>u1HK@g!(adMkW@Ce*4Evb!&BOn#T?!%YbqN?QT3_vL zS^9I`);Lyg^1 &QJn}fi$%P`>dOss`fUuHKp%Wr*qCnm)>v)y3S&17NC%AEZH_!QV7 zTAe4%)Kf32^b?vl7ned>FsFdQsC!PIbR)En3Oq9ROQscq7E6e#fQeHe^2lzlXwpbK z!5$P8v}Ki1e#&PRMa_7(5BdK*#0flpK9{YasapLtS+aYm{8Eda$`pUjsVtBR5XpgR zw_8k`fDo&c@*96;Jv7s*Nn5_)ojDyk-d7#rezx&HtN(dB^?c9R8+{Tg3AVWaU%3@_ zbTq1`6!8?1dMMLT7WJk_r&7@it8^ZR 6I$(hsqRam~;Qk zga55Obbr;!N`+5YbK~OUpG9=I)n3_nb!y3-kA#tGXx?5~blAA$cZ?PdszfCPyN^F> zhjA5P=~|C%l5I_Lrpq-nk(~Rk(MW46*f}}-S-l?o9_P_3vU=dQSmQRn#S>OJIivjX zeu!Y{Rhj#H+Yi!7X Un82I~C7+%mb0s|t<6Ew~ zi%zQ&)ay3}d|vWJ46IKU2yG%IvHtfndWgSd_m(wv_OOapEQk*C>W_ibN*b@YmO0$z z7dbh^^eHg)DH7w;zk&TaSEXTz{P@3a-aTiXO9xsGw&U1v`g5TcfluI6i?)~j9EPke zs`+I%Vl-ki$bmoNpWnp^P~N!4H1@yYp}kw$v>QalCK~xGEXrU=L1)A1!pA}6 !^yk~2 zo%fP~-RPg5blEI=>HYjb#y0)aq0r*Z3k3Jp9{~PKEQx}$Jj$sm*`+x@3*&;i%jHzJ z_sRXo+5~uh?3v?+UJu%zJ#4`h97z?}KqVyoWeY5G4mB)_)%t@Tjmwf}cM*@e-E7LK zlvVbwl5*e qVf30 z7xng)*Oimpt4~*TuMcx$btQ($NzT@{(L 3w9l}`@P-7DO%^Yw6Yg{ zLEH0VIlt2)a2oKqi{ox}!kr(fS5EK?;=1-qib-(`z2{u~S!Otm%d5-BQ95Wj8?|>| z6BXV+*bUdy{)l038oJtn6cfX%VcOn^sHcRMbYv?RUi|5*O?IfkgRkArB Jmj{&aukw+MxoY(G13<3Ejg$P)c$=bn;hZF(O51SQDVo^j2o zPh>kA8l}U@T$|r@BE=9)Z~_U&lSU1O=JCq^8cF`L_R>6hP-_<62tGrLOEr?05V*L$ z>%X~4OMb5jNC7(Wfq$FTdhjr|G?vlSLvM;RLy2P|Zwd2Hi_Wr}y5LTF+^bbN%wr!Q zsNi3jg*nF%&*eAkOE(}t7VLYaC>e2YMlgy*#FNh0iEawy*MfZ{+Xg%8g0kIzNh*B@ zaMc|RT^5LTi$DR4wJwcKJ+%Bq>u$S0j3lN`j=r@{OVI@WU&?g?c=EJSV%bD7gk_cN ziEWEc*7Xa=Si+83%xZl3izaiABdJxtdeprl+LH&*NmOR6)jwoLC)gl_wQ1F{Wtk;A z7b^X%b9`(BWr1rb2XAK`g0M8}wr?%IX3&o#mMa&BXUiC&4yBp8$N)2{p!`d$Fi9P7 zhsk)1VyUt!J3mtrz3wNsJKkp|8`?wdloW2hU4H;ZEKI_>5DkWIt+<*J-x7a0D+p_g zQUfPR!B+I2C$?S1JU=rLvKzl>=g{Z5%#Ni`9;aN2dbRH}rE4*BhBMDFjQ>a4k9q$N z50Zv4X<0u<%%ZRb4^SV-5vRRyA)|R6_&-ehLJsv4r&GC!q|37=vfyDR(Q(sjNVh{D zV)wk+u}da*#v2@<&4Z8c^lVn!wzp% zFQ$6p zw77kUvb|t2EmL|UAJhqcoPWQyLr@UzJ0O?-6GhGRae382N7m8ACC&>{lGzD^c2Uq# zat9A}LR|iaDC^uwqidcSO0a<)beFrS8&8Ol=|Y01E{mXmox{@+TvZs2dwSNi5I0HW zCD;(zIzz3MYntAi?6Fji#X)JP`tB>lMp15Mdv%gKiuvpWo@Vo%a+?B>?uG_>XfI^P zZ7Prp^Pk(|*+zamnC*PPisiR A(rW=)DHy9 z_5Ff~xcD@ey;R}&5@l-)^bhb_cvn+?MUZuWgahY|Q7e=Eq;B{7`1tYafpycYq#5Fa zwxEx?v?iHFP|9_dBUC 1Javasbxj>ekohR{^QCPEcC1k1Aw;Y z;HhPWF>c%PTA*8v89F2NO&C?>;sA*)wZ8G8Xk+L3{9OZw&0_6UTcH+_v68nH-fz1C zo%rl(@UNAVdR*lUc!TFCxQxc8nyc zMnf F#WKgv2Tg!qbponU(Ump1rAxqPqeY*cS z*Ddh!vt%1+ly6~kh%F)h!);3Ola#FJGPEnUMIKLv;eVTqrfsQSw?wykJDXqLDGtMI z#ZlT}vN^reRqka_W|iQmS?(|ilNB0)Ey(ZAhbtJ)9ocHP&c9~xm{ER|i6m|)K0kp? zfJrpK$}~M;2p=V0r%|p}(vIoc#blHgIxC?^X7aBQT{T6WX4i&81i~@3J(9mn`?|%M z9Z@jU%R0lFaLSfvo^D314hAa%JW9k>WshOdJx>j4AY;z(8m$A@VNtF7Cm9l*#EC%j zIUQMm|A3PGXi`?PE%%jgdTDf}@1Ht0MqaKk5eyv5us8oYXtqL_7Z=hU9Uj|ok+dS40F{~I)d3F@px{*1U zrdi~Zx$wBltX6{^>kdU$T0Y*qE=0!4;H)H)IVhj2IZE^InLSssJ}Uf4 D{GkL`0ulh;C47^JUzQScZ%LJWt+8}<|vgr<*_1TCSeju zj#00+dus`;5%TM`d8QSD?88)!x6@|Dwcr7qB^UTt3;uhCaYf!lRIW@LM&k5w^D~xt z&tQ|?;qG`(FJ ~sdrc!Kl;8RJbjgbU(_6hS^nWXlXcl%v{5< td3UEdf_VwdoGWh~Q;o%D8@f4bT6nry^<4BV;qT>yIkjJ& z8^~0)-1JG%Obgh^- D^WC83!rb6WEfucQa}MLVbnlIZ2~-99I*f zgVZoP(-U#GVFr38Hoi4!7xwbD5o&sRxUiVT6ESQ)Y4`FDq5&WzeSEWh`B;|$gz!bv ztJ-XJp-wWx0_NLGW8)L|qTR$p8^j(?ieY(ui?DGGd{l33u8AfO_WFA4ZtZ$uQyv*4 zuF0x}u`00tVy+qSx;wyiMbmL^$ eC z299#um@^AvsMdBCxNJzAxUv4fpila6ypKNsDVvisBFO DW z*LO;_;or3Fnb-BBun&T|G11Jj!!Upgz*%3axwrND6l ->c>QULX)n`u}URG~0FG*TvP%X6Rm+mv7f{ zQQ8{>c}1~F#&V-Fk+dBe-X3#$!SBz0ed=nhMOjqSeaB9JnRR`0Zu3y*^4V?W=?A^l zIeS(vv0K}7{)P |wO#DO0>a+BN`EQJCdj*ML-nof5BE=eB(<46=(bU!(J6V?76-e! zyfd6w4QegSk!X;3dmi)Pvc0l~^mk-S6%(rb}S6C-Q~7D*Iyfn_FZ<#Ngvy#7aZA1rnYOzGJ#-n=PMSWo`Q2SRB^uvCS=O ze?Xu-SV?*VehV~=6*k =D%Y< R@} zN1+ppkNrwb5guY-w@U9yYOc()(oQQ|fG{$6{L%Wo{}ZrPsav~(`W=!BSKW~ex)p7$ z?qf`Dcz3DBSbQ|%31svArThPjyy!nLohrP&B^tB(ufX2V&o9Y4u|^?P`J{CL& qFY>FtewD=y+dftl6$DhD0 zi?^eUqc4b4&d@doh#oRWd%N|qFchkuUsX>r=w+2z;$qoVJZAAVCt5{9Ro0CQtP=2V z)K`AC#C7b&1BT`fw2G3AQTbcw%Ig1T0RC5M `=k-n3acl^7M=MQrlz$s=G-hJL)onv`{W63w#yPslp|prDegms^cq+HB z$tOEnv!RhhPq>Y|@tKd2GLQ!F7hr!w{45OCxmtlMItJeK?&3~!M@!*W9n`z*)d+Sk zRy& ?$HU*qK=($#AB?AJZFUZtMA|4Pu1%d%Pj zJ 0+39mjfpwl3$uv9a`ZE zm%8Yx=`BNKit>^p3?3UaPWK)>*0WnlFUk-6H^h)6`ISgy+XeaQ5t+;ClY%dFM8o<| zq|A(gPK{F?uKZs-#&$A_jy28Jfw_+bxGqLY5vPQcw!~(w1C8x a45sWk`wc+n56ze@QWvZ-u!98n{p_ud~NqwcVupngyZCiLM|x`g0k&pO%@= z7yux`6nI1jpJTuo>M24& sT$bIZwt2U|4$-4MBTCYt;wtWLx~g}Pw*)r6 zdDuFuTK@V*E{^3mh$4em^O8_4AEvobt7rBblI;_OJGV7M4ZoBALAPKD_`Fc14jSA@ zdwV3iqa-+F2O_Qh&!FcCVc7Qc9Tv*h2Ar5hjI+NfdyrmD7p88*UC{5#(*B=1EVb(a z*~)BV636N<7v9UXMq4^G*j54#L(x%@s !4)tfn7M!X zYvT?YT5Rn=8$~k)P(O~R#F`k-+1)HC0}lX~U1qk_brKpZiO*UYF?tR?j3Kz&H^9b( zAm>;}Hr3Af8!laRQ!=DF*>)=^ZNbXT;jfw6fWPZWU-cp_Tu^p~isZi*^{Q fa|3{0%yVS; x9@5e5FKdta3@4AzF#*gH4b?c#D5B#Wobrc*oBNcLgbfREt+ppt< zZj|K~_tEBW-R!6MbEXybm$kpQbP~$+?PY?J$I`ON)2c8$4xqK%R+o^OF5mY{dt%)j zBSX-3Ym4C8=Y!L?AvNpGa9l_FWmQt8EZ1=@lrMmB_vqMl_alEIp!bygOs)0pHvI<8 z@7bqxf&IXc8^jOXB|`((SZB;hDec8An~Gk*oCb>rXJs9YlDOY+lQ~T_kUAj)M;tXH zY*4-qpd3J0u*qXbtZ&MfC8oaeJdqtE`Y>FXhTjy6FE9KT>OK$=C?Fz4)9S9IFqlOH z$75C==!Vu0($8W%aDs9d-9q0+Y8#y8ovSUH=0ie8g|xePxF_$LWHbhb7dfT2`3CtE zI+FMR)AmrYB?R?=^%RCCT74RdV&ckny7rV*umUms!=2xrjud@T6Y bZMX zKKN{H^*&!f5U*N!KID(whO?uX9p^PEUY7AK0Eh!tmUU3faVgmNWJ&Z%RUcY^SY4HL z5GKxjt!6=dND4H!;)q{5_fl62xfzzql`QHaRJ+d8*jc*%5u-TdNdCW0)r}#84K~Vk zf&2H!XcjWjNo$yP^+p|PAnnAXiHumdFV|kXKbSUtlJq&MgRrtVJMLa8Q^{_@TUm2+ zM--DjY!4X}$+4szV>g)^2+WyrFp+kHp?OkE`O|d%{h|QDCP7 OCJ`SI(hC;p?A91WG>`n=J;=*>E5C{-EIB AgoZtvwq0dEW4C%G<5r7h{(SwscbbqG~D67s-#9qnHE2Wxz=%YTb{^hN|_5^K_ zq&(Y5+Rp{+WB6NEhv%C%m$|~4ki}Ibs-!4DeVZaIbQ3P-k`qi(Al`7gHPMK{951;^ zPS{iy(UFLXOX>=@?EA$3zeT6Ot%*3VQGEVS5gpe@y2`l|wPuKYzGk0V95}4M%6`N0 z3*TSu{dIefqIB`a=h(Ghm+c}k-Bwr?6zS;dZ~o$Ky%=!l*%*Elt({>I>4(ZoxlRo` zoH(-jBmDOvF9q=}*iuGj6k<)EqyN- > zt?%C!WfV1-2%}&GvJkVYVw{r^SQG*kV1@~b77oH_oJK5xBRbO2xdI;%|E30?Gtq7~ zd$aL}MDU%zf{sId8tkodf1j07TJl322Rb%Pc;7|+Bab$7cffQ Jc{I32JTzJq$ZxP$C=7mwHY|BgA z-J4VmO<=Sh!1#=(&5X`$15__|yl0Z~FTV1qr*fACG$VEBv>b(&1WtOftx*j9BD~ad z-r2o({F|aQV3~H@OmD&XUni$i)o<>KI`pFBD4rUS9$b7Bb$DR$dl)+=R3j^JowD2r z@z4?5 5^&U;j4I<1e#vJ~fO-p0wwOr;M&$v$Bkc|*ip`MMjN(+Tyo52kC &DlpU-Xf2#S)v+|<6wAp8BMSSG z%;pNTVb>$zJZE^B88qrEZA%cgMo_vs!y>g5wlKTi)PN}qe24A*{3D0`Co(Uo+0|h6 z7ud(xW~t~q>Y49n`oy=tlCUPgkufToyYGwhyDk6jpb8Hu|Q4gPdt?_tswllA6 z6^fBQddBEb|M$wpFynvd6xK0KzAIilDWB9W5XpGMaGjOz)gp38Bz~cPXEMJad%%li z+a&%EhPeV&bv?<2*~|u~n>qpxXQ+Tk#RgG6o#ET~4_uqMq^!)=7t{2Q2`}|t=2M;D z5@#DRe#oQV>7HlvS%rx>Oc-L-oB2mc>tVzJQ6SFQWG;TpPk2EX^GQj|X}_+qKa;+S zs%k2Uk>)JG<@53nz@PbM-?G5^TD!^yJ4w%fW4#&?!ZkJm!NaEfvNN_vgbZo?-n-Ga zY24|oFHHIjxHi&e=0-G*?OEqmVXdZ_*W~EH9-WcKeE##j`p@(qs*aBw^!e@T>FG@Y zOmSJ=&%*;SB~HM>dcWEW`UVIGTzO%#m)5K-ZWBz0AmHT{!i*bvP2+i-)D?uDR#CAp zR64Kgw4y9zS>=rf;8;?~{{}&);$>fcz8CTi3G(mw?PSB+L#0pW7lw|3%59yqSr1Rz z@2#<{40%-)iSR9dAcwh4# Js zmq*zH?x;r(OvDEaDQC9>qiZq${`x=~E@b@XQM&JXn4m}wsOs62<7iXg`#LgzqL5gZ zOMt{tFtxGk4142b!_%SDZksUXSZ_&v8gigZPK3EH7GwxcPah_J6G=F^NAsDvfo4!o zHlYT_U4rf*Mg7j`s V-$%w|Hoa=N1qim(CbfG<)*Xcwjb@mf^HIW$TrQDX`^RdNxzyl `_LAs=+0>aBLVK+-}udZPk)F>rktL325c rrrG)tO#x1#og(S4l% zaEzvdZVy&EUBZ9f`iO;yc59BYH=mo*hx}ybzsyut8M2Xe?8wbcEv;E{?|^EVr!!1W zo@zKf$g~ty1<=!fV?BJfb@0tz!puI@+x+(<+yQKP?QWIB0^!k+T=ybzQa|WP1fhCi zI1HeZvLs)dti ^`&`^QX5}`cT@BN;=AcC3CIxMjLT4?tCHp=JlAG zl9(}XQ|0CkV$cq8Bqs~Y {0f0ADmkAfaX_BmgiMMeuA z02OM(?7C4um1eX4w Bko#RejVFAn8z_FqV;%{HuCi@z9yxZMe><&ZDx#1?X>9FG0x~*@ CqIUK@_**JTC-x(C$}|>bq5{t0y&|SMLuR&kK`P?))TfywiWMHNyx>Efafc zYpRQ5$|*(h4XIu|PB5H3NJQm)1T(9|hi#hqjG*T*O-^X)(SF--EpyMxhrg`daX(k# zvsm*tx&1jF@6K@P{SzAxt647l{L@mE8T<#BpY Q@ zY1gTT(1^gu6n}h&Z_8Q4Ub%do_#q5~cEoV{Ng6RQIykeH{Ub#ySG8zgrk`?Q1ARjO zIq=vi!^1$U`b*==fpSk *I_sa_T zZ^vCWRi_>B;GC_VHXM(9fyma@B3>R3FY{oxiD0w>pyC~^4uTkbdEP!TJs_J)iW5u2 zln)f_EJ6wS(bi7{Lrtee1%FSACZ z#4ya*vF7mZw5rb3geYI?z~F15`bU9o#`fOY)K_ZRDh7#-jm -fHC=6&l`xT{E>7=BgGjh=H3!e{Ers{tY37ao-GEvKr!=791#? z$3M;h(*GrT%A=FAzB#N*xZvui>Z%VD`j^H+M~HdeM&>$xHGU)pw~1_vY=Bu2@a}|p z4RLU9Imay#U4bF-ztdnHd> @K zbW^1LOH2{%r#NBN)<+RpIp74M5*<>U;(3J5T;2>&!w9&O<9qz$Z~xj+QHVMh<#j_% zYP~29U`LSk1Vd3hb;0@Zb_Z~F73dZ#s?Ue7&GGN=bOY?^`yM8d(*LoLBse(=wVv6( zaD04E0pq2B1VSE7wqhtoQ&6d!yV1n(8($mPz^Djb!E}#Fk3q !y9LncELl8JJg4! znV%sCS6(9O1?x3>vUvo>Ba2KJ9|RC*1iA8VZ)-%!1D>>$E U(zb^1GW(dwk878pSVgJtGUF99-0y*ZUS$s-)y)-$e%9B3_~EBt_qMjO-`~Lo z3Xt53MiY-A8u~<<_l1Rsk$gN$>4~zp1sfr%POf5WBlJD938GGIAXO(rW#Uuv2`CTr zwk*Y#%2bVbepFv580+7KsK_#5AYq&dxWgNDFcO!4e~ KVX&()L0Psci-@J;wu?thO6p#3B@@9@5Zs<{LR~}N>`1{ zMTNv``|Z!Y_hs!;k2i;(B$I@72b@D#l=1djWhRiF{9#)%K56r6?v8fhKn_5D; z59%P(&pWRY`tc?Y!0msXu9`S)T0Kr*A&4Q83kzH>qEBhTfM|e=D>0GHiaxJ4%v9#j z?Rc{gX8J`KTLS&av6Tf#XJ2Dn+xnur?YALEk!vPQ(Vzuj52yGAijI)zyf?@_)d|5z zOL3dGU0g81srYK# s^&)c9gMgu(vI3SUZ@eSh=Qv-Gi? zzUy`#Ze%8pjq!Obg_4S;aA!l*^me44?z|Y*?!%RCALWd9`MMEUYhc1M=WK;JC-8N} zZuvp8J~wjFzYHyy9;E<_=GSg38bWjk3D=>n$1VE_-tE4T?;FB?{CQ7spChH_X>PHV zZUG(e>AloKv@%WKO~k+9EsoA(c@4`Rk+K9$%h3&XEaWb`1eKkd8nR6FMy!eznxe ziIC}lVcIdm8;9o$eAI^sI@A2qH`VByY0CkNoCI2n^~1U^BLr1292CI)llYRmB{!}2 z43vzr{RExzlJ-vyhrPXjc_u
M D0LQsI;A$Rh|X^8;D|)A{{4GX;{-Qs|1}kPd(N@a-QjDt>hmd=Y$XeTi&=z z?-Z0>km=noGsWTFR|~%7zo8B~w)@HX@Bh4DeC#(7)PeqTuSUhcuKuPkzWi&~0V18I zvp9V|Y6FGVke955Q 2vZ;ITp{^F z`~@=00}2+ITNJsml6^+wQOocI%<1L$fV~HhTD@E8LzP9zmpbK|$LP zAx(q8Rk~-`eqBStof-vXHcSf~P}?sbCMF!wkXvg*d@qC@Efm+S_R-J3{}aR+sQxHQ zR`arEJ;yQ&+T^5>TAmdxt+7y|Ix_(h)X6^qZ983tu`(G~LcC)ZY|$weeNqdp=wiIn zQ0PD(Go@5Sok(x&P<7A86Wb@S M!pxw0hCBOXLgsk35a;x@^MeNND+t41$ zUk8J+xu{cU;@;D4hC65$ZGmIdL|Rx~`C! U{rwt)9y7`33z#X8|9O^-r1CU7kkw`N-)%-Gu-O9wp5?+Q{lO`Y^{YXZl`SJ@ zLmr|`MY3@@>JNwPu#+(U>RK%#zVBk{;R8&(boYZsg1C2n=fQXX(|i3(4VdazHx>;1 zHJY2QvZwA&Z%?j031$KN)hs%5!X^esWnILToS^cnT;eqG518y7Opdsnq?v;W%nzsh ztlcx!`orT6#@v9R>5Jp@3AJguT8P*p9CK2jJ#;rLJ*#_3)@qpYU&g*Z$T%-<9q5AG z6?RD6)=50ey%hq(+B6tVpUuune2neHFvP6gh)q2FZySGmx@Q*u%ra;*% 1v3P2{XKV+w_!^tE#&j3;n2>`gjb z5>#4&$NRT$&~4#$LOd0IO9I?IKP4lfhX}`F{G-9a=xs>GcW2w965(!>2#vL%?bz+z z7!e!YkcoQHHgrnmHyqq %Y#t&9lY$IDJKe>1x9T zTU7+xOrGd>(y~Zs8QV*N)=M@jbcG8a?tKihQ(CHg<5%uA1a8Pt2z?M6fP{%lm{{x@ z&Mjth;mA8T%TYixd&Q1NL3nC?s%W((O?{ITwVu7CN+NV)|j4;6MlagyXqa>|6h& z1(%580 ZxElXCZ+me20>gi=Z$SUX7K0X4NS@Tu z%#U@CMHGw%e_j&o38QWFTE#R5`Hw30|LM98sHV;~Tx->89j!PDi1t?j5fqhGKtStc zS0Er;MfNHq1c-2}wpvuQ%90VHA_NkKGKCPLRZ&KW5<-L!(uxpCNFpNy2;=`ifuOnP z^z>Xjm&-Ta`MhhwuB@+&z!g-N6eYqyR=@_)u#4^`C0 z+ bolp-Nd3^8n-a^cqticGFjA8)Ep;cc*oFY_| jCkSm$m?q74?6?B?-@AOCbj9+#&tPT9}uk$;iFTMd`WZRRE87E0C)jNOteaG?? z^QMbZ0!K>!PX1myrK?_=VDHar7Fdhg 6s1Jxo4d>C6O zXS~*DH;i+>OuN%oLa>fOY!OyBv=K>RFDfMldx4Vqh<`6Mn?TYDmS4et&L2b6-tTW{ z*}(}yz@9EyufH!M?<&s0%Q!>MnwX_@VpR=hHoEm05v}prPw~3wke*d&EHBa#3BiZ} z$Z|BG7$&w2_E>I($67t2^;QUCNR8s&QFmJyrLb5*=t6kaZ@~8K^ka5*UPIi-*kuR5 zYMfAr3UwY8ghI|LVM6=%NlVigaLo^0yMzryJ~CpxlB1h Xxm9+Pa8Rm19ZET5Y^jw(SIUP4%%3`pt~n z*mk%QOlSUKT {+$i)~nnK!56>@6lA=+t+n~N_4hTje^A1l>&Y17Y%i>YDLyg*eWg{!I;e@RYj|&5 zXxM(;YJ&o4u8`(`&}PAxA4P0==Y|OI%H2k}#u%*sRaVmyz^))v(|OoQRiM;2s*d1? z7damz);DHdc9Z`0{PX1b+6FYu)!zx)fuQ|I{3UNoo(o5QTC^;P|9lh!pozB|M*r-P zc5uRBEyjpY{MuV$PxgRo2(~!BA`SWB#6M1Wu`^2XSTfBfV(7GN^A!w}6dR+8sq2FT zne_H6&dKc+Q07g7V7*LeYI=`udV&80_LvCD^xtKK9}~&vVGAM7$Brd) 0P2@p@w}iQ zdv&EjE6HH=m2F7oX5W8c-E`{aP+>iPHJ?EH$6xDFxnD$C`L^ko=j^Y!6QNBX!Wz>W z=f@}=mx+Sq&DZx7y4e&?!dO9IVp_09Lp#4dw4g*y4~;A1^< gKnpTS4o1~kF@(=ubsh4hfBMfsavR75B=%7eLP(3h~OH7I$h zVfUCN0^7lSp8nK4!k+` !H^w^jn%CJ`@z&j}lW{c3HT9ieRj_Og1_E(0q zb!-xIQ%@e^sWgkuKLat&dlYx4hDdQOOr{ClZ*oU%1*J1y)BN?#$|aESay!Hyuk##V z9NoZO$;@+Q5QjF*f9#_;`jr0!zD#)6d%J*4HquOAicH VZ+Y`=XEh zJnesgwkemYBAL%^dd}6nr*H@fy*G ~9)L9j9$jdDdlzGkWq!+pSHC>Zkb8+A;#q}^#uq4%`Mx$1M_tZFdM zc4J8~0->YdJ~%cm)Ol1v-jD2*8r(VchUn4p&4nL-zo&ORS>m4Tl^wiT6fk&r 3>@bi{Bv-}5O=jVl;Hmk}dH}sP |1`6P#ET2g$$JMFP#(Qyu2UZl6RfMqd}Ia_raz_~i-me>6x75>MrfOs zP>VVuXoumEE(NThratf?zBcVUx;xQA-ukRBROt=#Wng|@=@Vc@4~kEk^kEtn^Ghjz z8Le@jKLsg!avHVA;2d;py0t@I)V^AkyPK0*p)z*{>^|1spv8N^d;;~eLLiF2-kdsQ zqlF0A{s09ja}ySS2C11ekJLTh2{q(iv);>$F-+&JV}9s`p$QN=>Il=RaCPv`yM#OF zBz7yKifJC~fjLRJ-~l8F1lJTMw_i3mzAvz*ukF`^PzkF8lY@eh6L {TC-PzR9dNZ$->kkt@QoIb46zN@j3G<~wA6m|WP8-IwhfM0fxNx#i$q z8NAEL&G~BBdlcq$UAwj+rs(fdTnWGTylooDye-~d#egYE0=9h&rzVqJWmP5?g<1KO z7)N79V^d)&>%jc^b7z_L^{m%sR|kTeQHI;J#N!=Hq>SBJeGW7Uh(#jpb|WX$3GKu` z?7Ho?@Sb7(i@IR64l*9)m!hR*qveKnNa5cXr6B6YCLBNOT0f_Mz>&BiJzr;>Y&Ofu zpfzR?7*3_u$Uc~5gKKw*+NxpA)4<$L-P3*GMspa>+W;n3wZ&(AyJURLm~9Fr$o4$K z>3ZS4lv~uzDc^(Bp5^}q#O&Ht`N+*grJ20@ AW^t8aQo%+ zJFa*=_zEPs$N%p)g27ky`rr3>{6$MVc`m !Y7FbU$-^75XQJa$!&qah>rk9t3d zO;|tuxzF=|rvIt1pS7&aDm#GlqRmFA)Y!*c>El-N9gL5 oUk3Io}6GzoeeJVIgz0y7aOghgaVLZAcGaYgMv7z3uVR(Sh 8=+-pBHXop|R3lh%^c39{rPYVU$6A3LQ9o({o5s-s= zXP&(ZV!7DQyW i@v9wH@)B9h8<^8sMavRq_uWU#IPCOE0U3e&3+Ni z>(i*PXooAvap{8UJgX$v$?km47(Fm0F%mx_xNQpK*n&xK?k9qhW1ik4-SlF+`RcTv z_H P3s^G5~ZpD8ro?uP97~WA!gP0X{2~LlSptqCM# eaWaV> z67eTS<$T{8Thm?qdnA~ZhQ(7eh>U3O2yRa;|9x8}vq4~#y?}tE@Nd8-nK7z+2Ul7L zEFSJ_=u^pNEpm9PBwK=lb?o)!wC@Zzh$Q~3)t4I6nZDm~7mWKE7VmJ-sAAupx G?-m??4;1`2S2}zCzosY}|AHkDqUn?X+d0Ng$o2ASfF; zqO>EM5hX6{w1tcdtSxuJShb*(Coy9{-PY?$(lEM4DDHzSnMSK%_H?H|Bz}_m-ZvY= zY){*Sb}Df)za+rOG*cmv{Bq9XzH jFsR-`lG+l3 zF3-yy6Rx^X8p!2|)TDYvOaCG;1t#uZ5egp_X&2jy$?g%QV#aP56}3!Zi^J_6)?^S~ z5Y>7JmF=L0Ea?5zhT;py0J_&ds6~!v_h;X4-d9nMqmHH;sUu)g*e4HksXiq fl5ut%pBHvpSiKc7c36yS2o7>pg0U>Y+i?Nm51KNXB}Lp; zJ!^L^5XHP;Zuu^LB@_Avf{GDuc7R1-u3qnpK@ z$<7hA^oHUujGK={0dN40o2BBFm)Ep-1V`p0_d|@!>56j>z=8(=tC_HZmWMGK3mONY zEMrj;)iyEwsO;kcj)hQvh{$alyV}3=Fv;giO=md~X#_*?z~?(0e9t$h&FH=J&8tLt zn){3V)Dal6{0>Y(9D`gb!`{8TZ|Lu$>bnDZRw@*8*o8>Y!&e_>x*qeh^bFQ=(Hd~p zWS01u%#*`-(VQ<|{>Xm-E2FwS*FNIiSxSqW&?8#? zR~Q+MhY6;DBOwK~y$(VIUJ4_=Rhe?s#J@n+cEF@MfRwJh~PS>Rm2|UmKeE`Dgg{A!I zN-{Fdbgj_2q4kD4yb>m^@1Q+dySq}f-!tTw)HCc$KG*$lJOfJ@5dj)<%imSCY~hVl z4E7=)8H5>Y8h1aPOVpjKzx;UX075}-a;?^&xMJ#%m-(gM1dT)YVX8+=3j1+fhJ1%y zNONk5oAvAM&N;yO4uGLHbI?kCmtiYPNVvuS^~CKY&(?p&yu&t1*+0@J1Fj*dVt>Zh zb-tK#BSX-id?a-ux)7G?$4QW(qXywILSUiu=SkIq)`IHEWNTPL#`K+_^wdq>_$U7l zh@ulVCZSGlT?k9g{VJ&2%&QgZ-+M276r`R~#w!yVt4 { zBKb%dvA87Oft-vcC_dj_RNflOolpd=_P2h@WS2hXsW%YOW7FlCu-%?>Q?wwDe{XiS zgle(AZc@3j{T76u{ysot$f)=DHTSzLUhQfp7qP97D?rE-w&&_d2|gM@B3-N07|e)t zEIfOnu%j0}G9Wu)7Xs1F&c4l8CQY8CJVgt|yQnAB1evZ<5TLZ|G -Tah$xN`-UY*m-;5>?n9rk@~r*^#2jT_6mv-*haB2M ztTKD|)WIR9m ;lz*BlD)T@Ldbo-e# L0xBhd3R@T zau1A~EEkV*Ct7FUTpKHYuZHH0s%5c|8|(AuSZKim5Z PwZ+B5YY=600SR27iQQ<{4+mnuV80ZauOD2`3L&Fbo8chpDI zk+>HB(R@S4UtsJ~kS ug>w&x|2 zO9;E0d-?UTIgeoO?h#Z=+$N+_^7OBoU8D~*@s-ohp71W5od4dOTR4qdfDSB`-s<=j z?5HqqnB)xgJ?8iNrLb2=HnL_;l{ -32)~1b!*5X6S!<@Yv~F_Flbp=fXRU zUhcBIr<_iX`XW~Lkt||CLH}zDx0C|0o;;iF>^@3TO<+1)f*T?Y;@a7@W5}=v
5-^M7O}robH@(9TyJyDVgG{_tG8R(onP6y`LRQk?**gq$smJ zVW)p-3O}RDtP*EC8h8=Lfm#x85))RlA9KsQ$k(%^3E$aGBS)2_Lrv1hH`UkiFl5G& zTOH0Nx0`DZezpE56~)oBH+J3nDUKXBzXH(mQ7DM(9o(-^XD}Ux175hbd3xQf+9aEs zp~8O7XsYAXp(0U+LT&^}BA_+>9be!`gUNqg6hGCoS))$yO-oFBaM@c?lc<(}r6j=A zI=s+!i+3*;3?;X6*>NS>Z#Lo0ePKF80+bBZ^zv<(#$XR0?Ky}qgS0}F&iW3+M3X>f zq;_{#_0JCXjBoV|nvUXf^)0i%B%*1RHgYiDVbH6YTb986VH Jd(feSEU|Pw>DA$3dK%JiiTPBVg;;sZbB^L=5Y5qD`bW*4$1zdpjMjNrk`iy z&y}@Aq8Gm%qaWxk8Gd4z0s=Oss5Tf!5} 1G4 fgQtZL_)!5ai(9$)xC5Hj@nH z?B~S639Q=myTlx_T9KlIOIU>Cu1reJL#&bGNACUn|KQWXDut^&r@UiyXw~hpKAUw% ziG!k8DXNg>e_*h4>L?us_TsX!hKokX=XmFn7T6LPP;E*48e7K0w5uSSvm(mHKIh_9 zJLIo@u*=38ccPmn&Uls6BJ@IS6bBMxT<;Dx!|-27e1&b R*NI#3$CQ7Nx|vyK1(yn>as;Krp^SW3*Tl2p$6ym`8sGGD zO8%rBT)JWobynx&%H{IqnmQ$&k9lLHsAiZogF2$%WqDThr{uz}4lt85-_af$E*06% ztfC(p7O=`s|McyhQ_I$|pc1QZt6eudHdooVa(Qz|FeLYdiF(7QdiN{4-py%lgN{Pi z?rw+l;fw~$IZY$ApXn{#>Bl{#> 1Vw8R(2ep5U{ov)`_FdB22wz1Ku zKbw{MisE^>35-9}!<|h ~bUsrXMnkXU*)H%QUhZKV FGk^f(cA6oQeQ7ixLUnA4-Kq`aCQ?ir|~BA4eE z1ru`ub!e*H_eM*;PK@D02@F~t<&keyeld(i1`5%VJRyJkT<2uP?hso$>tcsr10{u9 zVRSXfk~%8SB^@gAzO+6{#5TUm5REm>w( 7Y=3-rAGS`$ALyIaEhNu2EHALfZy+F=Jk8I9id9U6rmi$x)OTzEx-@uBhO zpA~gTIg@Sdccl@hj=Ge%tB*Ab{Dk?b&yA!%Erq`T%!RO{7FASKK{D~4oG1%mff8Q0 ztjI z|9hVLfzsYWSFfybr bqB}aG47WbO4}<^>jcg2jz_DKLtgZzWr@G3y7#E*eO#H}M>X`t|Cedk> B{;Vz-WC#RM z>|cc1V>*oyjATxPshFwdEI&Di@GV@*G40ISXzFBa74>Jc*yY6?P<1h_W~;f2Y;FbZ zbeK2pzWyU&Ghr3tP2Mvr8-iO6nE?|YUZ$P-;>v#mrcOcDhU**Fng7AaN+EM#PtO<> zFtVU=(cMZSp~2LXGM3$qBdnLnCA8^gk4i*!$xswWxoG`j&!R%jL1C5bl8UZl+MT0n zPd8*!nuX8(l}?bFb59=mEl9Re4FPFC)yiXRGd>%O{o~9Xt6~A}#IUt``)=719Hh?i zUD`@8Le1wdU*4R6{PE4L|7*PqvuYEG=sI)H_ltl1@NM$P#2 f-97e|^u?D~VG&KEBz^`X6Z9hP$=zKWht<+*Pc8ea#&JBheJ{%J7 zupHyW=v!6TWVf>0ooSvR;$OnRXeI!o6n8Yz)!Mj^0#!so8(WUGzo|bsceo4rpM0nP z2UdojXWMwFgoVBu%Z@`l3A+SyxL_G^bPuiEDIL|TSr!@`-W^Y;5EI#i3_yb{PGgMs z@;%wDINNSL$CeXmJG%8?_z$dE>upTW2D`)(L%Xuxk~F_G0qfK-%uFR fnlA|7vlslGhT{ z)=ClWowd>6O1#W?#Eh97o347bia&w d53hR(D7*&%)t2&H zLf%@c)2}Y;4i@096DJ>1gW+;7FVtd@71#jhBbXHg=xOgc@50@FIU!eJS}=nn6RtNV zZr#wpYHzAJ9$-J}<#p@myd0LctEbD>ixM1?JUrhC4kB_jUIh=UW?9vE!w|*6t}MuW zvY)fh+A!szVq=r9PFh2HspCkt>rYxbhXN8YCqtyBST +PcUJphjbKcoN412*S!lPI zb30i$x7BaV>Pd#dB-9rb@gG+POcA AI;g d z*gteQjN~Y)Yqn6dFYdG>>KdN<{B6*nb-J|q^qy;*4^k#Hna>{|gH(uR)!9Dj>&lg{ zjBhdc*!yrC8BY!92s#(*SrcG$roat9(R^Hu7p3~e?ak