From 2b93309161afff3a78f29aa1eb609747d6ef8be0 Mon Sep 17 00:00:00 2001 From: acsok Date: Mon, 10 Jun 2024 13:28:47 -0400 Subject: [PATCH] Updated migration documentation --- .../images/running services.png | Bin 0 -> 136268 bytes .../Database Migration Scripts.md | 97 ++++++++++ .../New install (single server).md | 161 ---------------- .../Postgres Setup (single server).md | 175 ++++++++++++++++++ .../server-install/Server Install.md | 11 +- content/index.md | 2 +- 6 files changed, 279 insertions(+), 167 deletions(-) create mode 100644 content/VCS-Documentation/images/running services.png create mode 100644 content/VCS-Documentation/server-install/Database Migration Scripts.md delete mode 100644 content/VCS-Documentation/server-install/New install (single server).md create mode 100644 content/VCS-Documentation/server-install/Postgres Setup (single server).md diff --git a/content/VCS-Documentation/images/running services.png b/content/VCS-Documentation/images/running services.png new file mode 100644 index 0000000000000000000000000000000000000000..7455a93162fb91552a59988ee0e00e840a12e3fd GIT binary patch literal 136268 zcmeFZcUV)~*ELESH+!c?W=jC}IoAkZrT62y$##sBYo{lQZUe3K#R8%bLYL^YD zsP-eMsHl1OFo1iMj2@?zrzQqxjWxne#_-UOL@9 z^?jNAsrKP1;#mElOq^?d>KPc?d3*EJPJiJJcI&>lyOH+-pV9F&v-AA)kFoikbSrEm zQTZp|O<&F5*1p~Kr9DD0?b#t4Hr+XTQQhs!+#UFiPF}Giej6oR@9`(E%Ee|Vsmna4 zGl)7Ec2__|&!Gjmi~ka#^u$$Sv8m~(*5T_Xq3#^^2N^uL?dSF!R};Y~aoB!Yci*io zd&hD;Aku4muIt9sCwlClw%_?6sEr&=vP_QIaAbi&yVZ~-f`_-5Hrz24?Lghl-4pV8 zyP+$9#C^=4uGkzo?(Xnj$)(~P81N_drs@vb+Ei!2@g6EVYECM8a70ZB1vS^-$5*L^ zsAzxOPeVoZ5JpA!^Eo=;mhuw?ekrf{>y|d=0Tm!=r0crUG2SX`Tbp8+`Q!d6;J$lhCDc?+%0~B|Ho6jofS`* zYU}Z|3pBIx5lQ^NYm!F^iqNkmMyuszGKVJ_1Q#^6Y+xxb>xVWF6pO~MNn7gN= z_>_IdKU|aY;#0@C;F}05@-2e^EEDlYhO*ulKoZ?{(7?cH0}~?#54fU)vk*KHiEa zPEbDR@1MWEr@cSypHFi0`gvO51jQ+jh@TUa5dZtV!Ambv?v>Yr`P;jgU52@WF$15W zBzfWd#UIcAk4OIb#NS?N`p+w+WThm3f9Y=z{rgL=dD(laxVwVS^j7*OUO!*_`-4AU zcu|~k>c0)eU*r7aUNF!~doPOr9WeoR!S5*R zZD$ETDk>B%{hTp6v(CWub@$28^zstmiI(9+*$;-qe-ESUKcdzez zDMS8esVpPpMB*Fo3|{36bVi3;)$~gF`CCbwqD7TCeh$9!i(QM$XryD6mmjvI z&M~KexO4{dQa^K-iHBwne<;_^0H_&UM-y{X{8(CgZ7C%-VE& zdjyZd)LTYAky3K$$v<5xVZCP$2%$ETAbbKx+TxfC@#K%sJ*OSnIs#ew0;>B)17@Kk z)vN1yYfHlwOgL_Xl61>K2VI!K>kK2$-f{tPwUuU3i|H~xla@q!X1g!CxCZ=JHT2kE zm=CVyEqb^aY3){xsb zI4zs7vPKg;VfLy;OZ*AkF+Cus+;yaXap9?WW0Z+aaD|X>%BqrE&Gb=W!<=VkA)nub zag;RQ{qy{D@5r9RdPF2!L~JRVv59`@OPi?0RJGs7q-#nSmlN+%^=MUkeaPyzZ(8H4 zzw*%MmbfamVDfn`*LTwUZu>P>bP<;-Q9;&CNM&n6*O!Pv8Z2+F)oeMuLyTRb(PuxS0VKab>%6MBm@8sejMMX3WB zW*_TK;7V7NtZGL^Rv6?Q>ci^k$3h3kMU&e@8%DCM8l>qFI`Xd*99P$xu6VAnOHFk@ z=V}#YTwKxS+y3CqQFZ&Zto0x*9pY%E#E9yjW@8~Ynh#;ajEIwDBGhHRdutFho7MoED7F!=(oXsE9QP(?X~b^z0kX54HB#Z~nYgpF zoyb>CaTjHSB4pEDK0iHjwsT5{WucvikuUL8%R|Vv(131gs)TkzoqtJxZ=t7v2d&1W z8rt=R_j&}6WY9YXvufMS)SkJ>&+6KbSPHe&jF`9yjt^C)<^p}RyQE)MVdknjzO@vq zYQ}0D>HL;a51qh_lTd12x?om#mP!5b`o6&r*0;1-$WBR+2`p;h%*&;mVzaXe5xad6 zGdL2hMzffOn2MloYn5dw6Z`U*ahLNa5!?PezB^O&1%e$dT=TtIukTbiRftSfe}c4g zu_lLDz1HsJT*EKOIB-2LFp4*cSYCA1Wz=wj&L0nWo7tJayfBRy7fsg0uT6J;C%TT< zy-%%i_}<$eq%kCkrswS@6C4AAR<|;!b4xmtW{bFdu16|vM!AjEs)PJsKU*I_<+d2`rV95%996>o_C{*^fZk2Q&1UM?)_ieX^kREs-vEz4!7)PW1PPLna) zm3G#>e)Vdv&o&#Y{2agB_s`+kf%pZ37nkUTV-r?*0^WY)TJNfv$K_OA&U+n6Fu96a}%ZKJ60M=I^%)3s_RyMUv$#sTX#q+;@JFau~xoAS9Z40 zyRA9eDO1gSaKwOhkamBO#jIGm#Atnhm)y?x$jfnz>CZf1 z67pd?AcNW<*B`amopQO2jW4<~o{?KdDi8PL>DS+1WOa5)a^9hmPeyQT@!71;T#vG} zgnqazIgQ~+v1N_HLSNoZ2LWcGvEZ$-Y+a<1!RxQ?MK6g}FD9M)3!`(>1KT!YI|pFw z*8VS~VZEoYE>c$EmSC)x@7ed#Bb-8U^z4@W({R>4EY+unyn#YC@_UE3D(k6iSlaqf z{dQ>#P3it$A3O9fU<>TQX9+@Ohf3u|%|1Kl+herRQ!$!Zw(lM|Lzp(@@% zu`g6hEzJDf>tus~&5G|=TsW!7o|JB!3|e9Pe&*$-!{=6x|GLIo9;IrP>Rt} zNSc;)8RUQWkX07uB`b0L4OOhMg0_XqHCop^tc+ePX}L}uripX|U#e)h|C&!qa)PKu zWn!p>E5Wd?X^)T$R~IR_=!sK7R&t1IULV6=+-n}`TTxaWxVp{rp{5o$vHX^Enf^HkG@84tSqua5g^RdI?b0_Zv&UA>d#V_mr zb%hqwUl^y)%-%|RdX(gt%`F~5ogFkwufuDaTPf1Te0Tfy>Xz{O(XD3|3Y7_6K5%D( z)LbS0f*&W@xCgr?x>DJZ7ZwRpP@;%MWrs-aTLhW3B^&nG_X->ei{w?zGR)O+sAM?V zi0`+M^!R$Yt{O%tzu6oy{{3u8eN0JQcd=DnTeK?gyr`7dj8*_)I-$XXr>8tMU?xeh zWwlFTMJq9(@P6-6QS%nL+0;q;_fDa9rPup2Bjhz|z2|RK=FacVWkycDV})!~mVgf@ z;@4?(urpzdyx(R!$OeM5R0M=s?R1c_e#e1+1qNt5c6@`{B z0dKP^G0@K3*)C0q()GP%yEEs;vV5(d#te5_ZpChpw)~~Ge_*hHA{8guz}7_|qV$avxm3VCVTql0!;Mo9?yqg2E=n zsT^q+14^IqDh_w85q%c=4t9pS&KuGi%G|~*ZBu6tYv9m3cyYhzOB|bwi1DD627Y7?VGezeZZQ?UKb`;lXy|KZA*{&8P+6SipcCuRye_;A zdD5}XIiSdIoG>AtDokK}Y6zWwwSQ^)Wninto(6coOMu7b;vJ6q(yt#n1e1JgRzGqriNN{`leY0CaGA;B zOF0ZF#b#w6Q;@BpTzbT>PsQ6f98GDB?VN4pS8!S(K{Vx}Uw|QBIyvp46mA5u zUdE#*&o54esXUeU*s{+4>BY_I0YdLcjlN0^{*5mor;hD`4)XYlnCXS@nuuoq=0C^f9@zf=Tu+6w ziQHPt$y&#nihtUfUC*zI#3SC9YugQ{v(ZetyR zT<2Y)K>5oay_(NK$>I-cn;~Y-8NLc>@;))Vih+Zlo{@^ftXf%wL|dAQ*;FT3gtW1j z3YS$a1Vn8b>xZU6*af_1yYRj%l?MvgOo}aq*JryE%*q@dS02-R_@~f2%7!0DosBFu z6^;zSYwsY)O7_dTID@V-DINEkhZ`=vYUW18E~f*?ECFv3R^xY?xwcsC6i|K0bfZaK zZzY3a<1uW9bv-OLReqUv9$TMhS>|UUY?1RUsc~t*=1RB%n$Yl}V<5;onpkHfv98qW z#rqBU*x^D4IwYuS)mWk2%?fsHniZEj(k%jrSC0=8A`RYUHf$_l+qEWQ*sB%1=X&f4 zQebX9v$U)iDdZtS0ucY145XJ&9d2+acQhaQi z=-g|%(iGZ1sq!s7ucPHe6+EDzNG1uN*>lhSFhU52utG*egjJ>G1FiH!?dRskGHSLn zwVf$BM`LjO3Q{|2{;Y|BR@uo9$5G|#ac3mg<}zJkrq|Sw?OD^1M30fZd1*BvBj*D` z#%W+y4f))0?B8K^WssfAGlilTE)0mRY;NUU)8xhVeM&og>-$js#zpD%b|~(YMK!>R zr32RJif74UsEtvt?znhSi)8I;FynC<^z{0*Mc0+U&`G+FyDOK$3GFs^-HKb%Bi8l) zuP=gy(i)TOn+!p1Jmd?B0&qV7M}gbpcckFBVz(Vx_i+)!96R4J5z|*thwk(xR~yFB z&|YkTNxPNbSeyj<)z#5Z1C~SB>!0k>K*sv=knhP(&6pBt@#b9(09%uKnhNSVsy!y{ zw!g0~pL+1efbpze28{+@$hvZ((bEAV$i%p@DUOaGfV*Fjvb{R4=CMZzD{bSar!YT+ z3KQvMKGoN+KIZm@nxwh%@%gAa(>p$L^(6+KM1+KBi&`-qVsmlGP~LZ2^p%X2W;y^a z2@C%~WNb@5_tju&MJc z8ue)A8L!s@<6^+Fmj^T;>Ipfz3a<9+LypK!b~*qk|4K-bKXXjd7l~cZ<0$Ws&p0GK zr&_XF2X2wUCXjf zZl!d-f!W8Y3jd^hh4LLY&w=BN0v(McoY`8NpBG!sP_zppVkaA)zLqO#@8W4k?k^G! zx3MrP5X7$EUCi13o>^7TbL`GH<=)Jrm>pHRhK9n#m-y9n@u4j`aScBV4Yi=y}og!cY2#m!Ef2c zT&x0v3|tUSQjjH7xF@`b{L|&n5O(8;USNN^=(KwPb>h?WZZRY@(R`=OC7|&pLgdxj zUER|y2?fT}7RIMRUiR*N+;FJ3;+(kJYPWl1tb`~g+G}&zQ0G>!sqctA`%pBy1c8t& zgvuzkEPy` zh)VhVqR8Q8KyV_mH4}#QF(rn%5tbo@>2YZ|G>@x;u-eSm4$#-Es57JVEyHlxigm_f z<6=v*QU0DtC8Cj#i6B2T$s7~U^jb{#UZ zxWIy$25lI`bYSKk3%3sYcjttyt+6+wvJ-a<1$9#AZ0>pdA^(EvV*(wF5iMWU&Ul;s z88TceRRm*Fe27cWDFM?j%kDBLv3soI5U6xXXFo<<{NcSb7@VHm8hJ3uI@Nb>;i>W9Kf-bR=b#&HbT>6lNeA zg%9o3+9*lfsL?XrQE3GK^z)<)JeiMb&9m^>$Eg>%`{iNlTN!7&QfK$1A+C^kFQxA% zg?dt=W%Z6xXD@F~au-{@xLZHe@U*HmceXP@)geRx?l!9CCU+g~PJFYg6B~I{eD&ib z_uSy?%#Fn%%t%(HUcNFCJwq?R=l?mZ_oed- zIdopOXfA)7m1o}5cfA?3qP-S67N52k3QFwW-lbmy)IpN;Exm#qdqCWKHuLzM$`ZDM z=85?a*(azs1mZj7YnMR59L&-^eM@2qYhtssWP!N=8d$UH+b;?&s&u5`#N4n#g<1L? zw^n8mUU~1AL-8bW6B-Q}?J~#icyaW$!I^9MrvO!#0Qi_7_2BK*=H~@zJ$Z(w=RajW zywxbv?NmGqr7(1qUMsQsj`i&tUyCZYxZ^4h5^Z<>n8dQ8l!Nr4{5Z=>lY(cFNtM@! zNn=|WF+iM}r{7D;t#mnVQa;q4(!YXXlJvr!so6o%PE|i(>Dahyeh+UPA<=_|!!a?p z^0jXr$YD8#XGAQ>pHBDBxCOPZ)v0<>bUlI(qBMVlN8UT?W`x{F=0&Yqz47-F)Y+WU z`P2mpOXaaciyxnJT?yB7&4sN1KoLgjpZ1bN^(pF{cXzW1*Rlzm7x0T24DG%5SorGI z=bQqDIa&J!bzgJF{wat!Bz!;)wGroLmF4kaFK^du!9a^W^3Ke25+jf+j^!B@r@}pl zSJAquBC+uApF}VP0fzI@18b8?*nGgj+Q$@Ed60ZLYHmkUx)}A@I=1kf-Sl^?ari)rbk&JI<=|j`@Jjyu$8qL1@(l^&G#w$edpI8OZZ3 zqsV@HDYM18J@lI+?hsgS*5hsPB_+YZo1kJFbfdKUxTO;|U!XlfJb^+`_ZOP6`6~o1 zzJ4g}I&4H)i)W1sqpmzX+8QIEN#lOHW3Q-rdDNKSgjKn{q3gkGq7I$OM;r|AH%9z| zxv*N9P-7Axp4%@hQShR?&w?7DxwWZ^7(Rvo7+2~&-+QT>QQ^-xQfj&e_+@IS4rLUeztLRUjW4Rq-K@D2GDfClc+oYrtc?+is*k9(M=^=FtB zx_{3By<}R(uv7ec=9F(Ms+xS~#2>+6XfYFbOJ~)48~l2A>4_WjCqa-UD^ z^XO*d3;#5+)|`YwVawdi26z7uQvPrg9DYJYoqfNl?dl)qydOMI*yuril(b(2y|D71 zGMJP(z4r<*c3iTx&-`-%nLiY|ObNC^^IgRMii_g@2@r)BuS)g*a8~~qCw@P=8>~V_ zAc+8qTjciscg5`fs)b-83K)cTM;!_3o=QagoJ`qQ z_&uSpt>v-oYX!yz4S_zwfP9**1YDw7`K{5@30A&Ii}mYW*hSBIb{QsAhqTQ z9!ioQFGtZLgEy0&fr38a)DW~44>Xe?%xRreA->>^XxU}H@9W525ddYjbamvE96F8> z0Qx;S3;*!shy!0UZ&2Z4)kKK!)-3Y%&F1|zOO+!Xc8Xo6k#|br2c;T)aK;2c)buzhhz`cVJMGpVkq z2P|BHhol@jqPE6^y1D!qi)$Cocqxv+#OuFZYU5u=4MdLRY~lrVAaJLFV$o~)Mys27 zvx~_x&QpMrl^BSq(?P6HjO~B-`$RrqiF(<_nlX;1z;3gK-N)uTFSd3^cNriMGg@jo zPZR!@EmiL61djwhd-ENiCZ^Nx4MKPX$ammV%RYL2!Udr1O7-ql2Tc0dy+FRAcR<;& zu>(z1hW&d?uCA>5Q`|OwwoIr5NzZ(=1yBX9F(^C(7^pf3up1Z`nR|Y@&z}6n22Q>P zPA}fQ1{Fd$|K{Ee;i%>Hf&MG7v7s#WScCqg!Dozl5Ufweo!t+?WY3+EOtt^Qo42rp zU06WIPM^Z8jl9HfRYn(hPrJAF&MNILcja!kVXq(iNd#+@L9;>uq1<4!(OEq&&mz(Q zC~CH&dB#P_8!HnwpiCkp#&|w4@>3dW_g&?v*S%2zMV(&x)g~9R z`kpN#%o{x5!_F*y(PzOZfQ%nlFOu^A_W2%k;1_}9E~oIN9HSEpB+r3}ql56-G{4K? zW|=eaoo#}H&1|YyM4qYG?dC2TATmqeBtoOdsSfwes|bJ&spul$1?fdO{X@W1iB6{_ zCKO}19>I4>6R_~Rm?9)@y@_ZAbPvH>qch@I{6MxQyWGOd%*7iykQ?v!BuP2yG)XHQ z+91Bh&DZ#Yg`+uCYQL0~70mK6WIj8gK0v<|HW zw*~PS-Sygaj^qudJ0P@7ql|`p6+%C&+ZMvCl`xA{^T)5@gyv^SnbkJuR7qf*R0KZ}sp?O%xZh zIxf`8IQMJq>FVnjTdA4lElb>GEYj)gSHNpG?ueN|=U+VJJrlHClMC0EDlW<#);a4L z>%-Yc035Aghtp{FYfI4kGGTfZZ=sl-4vYe7BK4I{Ejf}?MngJL#%afp9+A^lqK#^_ zwTMjc-PsFMoT=12Iw%{o>GG-Hc5<vic5u|DTsnFh6A#RNvVvRIA-4hZ%w`>=5uZgs6*;o#U&%##~{nX`th3ap#gK(j& zVDcs9HcDJ`_X@EPx5cMTb~0No{CqCLH%yN@dq?9Fhm=E0OY})L5gfMQG$qaUYnWJ&d`|>t2$po{4oIUe^iAHJGRZio2+sx_3QO!d7H>Z z#^A*5y5_Ely@d&n4%52bFE_q70yV7reo&R$);t$*{Pk(4O6u31Xd#uxxFUo24IyJC zBxoNfEDh@h?k?qcbM0NRy2Y;ot10e{!U$vI2A-)m(43G~x4G?sU{EWjYjMTxTQkJJ z;vJl*7jEo&ppsYBHEfV?&}rgs5eCdE2E|>k&$pw0hqh1BLW5ZIA8$>l&XrfUQ}X*M zW+8lTox}?KYxVBzj!CzOJXp$IG`2sMviBBG#kP6VeFTCT6>DKj3ov zW__yGWAf^!(lPt?cmZf%iH%K!;-={*FR5#1(|zxwW=pJeNmqi&ixmUb(ZJQT>7{tA zD>&?~5*#nJ35c`}>qmKVfvX?brwd9NC6kyf;Q42pSILftzHBoGf=sU9zwf_*UAa?W zeV0KL{+b7;nT1#k;VOioXjya`3I=L#*aj{AO=%=+h&tgO(~X+^728mPc!P zGp;a86)L+72dWEN0cE3i);rT5GI%V|vJS)A z--GZlemmA=~Nmk~u%hpVWY@s>QGDPlC(a4=SFikocvDSW}J+cV_C$MVvgr-yS^Sct8 z+K>2QE{W@*3G;v)HQ9KPDrD8OJ}_pYZv)Y%)nIeGcta3MM`> zE_BYN_M>kI8@|&2xwoLWwk>4?DCDicBenQ^Bn(K4*Cki0#T5dUp6*w@pB*I&-%E8dCkfZ~iGqgX2XwC*~NC z$E8!uYCN-<+O#Sc{Jr%Rt;3RlwD$=pWyM%vV(hJa_+ z6wtDErG>0$r(x!T_CDP$;3p?rof-;$r!0bv*)mCSal<$Dck#bg zy@z@-M;=j)8>mT3kqf>-0DV2JVF9Ruk9|Wh2_TK~G zP0(9^ANZ4pD`CN@68Wv@WJR{ce|0sT9I8`yNuLg}Gs(9b1=PG0tDRZMZZv@E7Qmi# z@e`He5?Fc)0f1=hyj=@VV%VsG%wfLZ5+ z)Us`DYqARs|KxksO?r&|PudGIpLJZA9q(xX0z<}CK>Wr57g@L$poge-VX1hyC>>+}De( zeEWRyPt5A{P#9f$XyaEp34_qlFd}Nh(m{Qx??{%xMHU^A=&SQ{H_Xd>Is`2@DyW8B zp9sW>%7OLCMx)XEjN_(xW4UrpBxI)=sMl{?iiK!2#x`Kg`J8D1+e3F8IeTW8 zb!j!;%}kJ$i(oyWt=?nx0qawFx#^Nm?F^2OH3kRGV+#_hT3cgJx6ggbY*?*klmt1` zfe1yAK0hkCxZ)IG0PWh1{Nd@lcQs!O#F- zWkfJoP5cO7vz5{!rK(wmfo&|Q^ci>H@AX4CObF4WfOHtaq;&Eq$esg{lyw-x6V@x! zDLQ~n#XaSy$R<#*A-m0;gU3$J5uE*^p5vN}*wwZ&S}AVe-5s*40h@Wuvytu*CfW~| z-jKKP=sg1tD9~^B0+Fkv5!0A@UV}V;kBLnZ08n!{`vz!4s#KFeGWf0R{lKhI7Bp@F z&VxipS=HrD$-Lc1IKs`UZEXzO6v59beeLWu)ZZ?;odaO^z%VE@>(D1wV><`RC+YEk zakhjFm1di{On!VW$S;kRUrw2;IMVlSzd}dB^$N(XZY7e-r_cIJ@gim?SQR&-IK&o1 zdx5>@Nu_^A8sv5#`NcNCSS?>aJni(%+p!06c9YfEAwymoX1D9?f^|3z*5moiWm+?$ zieMZ_Hz+Gb5EefthoE;LgH>QXlgBgL<4*HX5c5Q(2)T zLW&5=sC#L7tWLAWbGm-RIrvF`!R0&%K>2=P?QW zhHwq6H@gv1v~_D6N!xW|s)TFuqQBhLP}pG*)qLf&W^S)%v(mReL)|aLhW#pPM?ro3 z;hPXP;R4dwBA@^qc0k?KvVZCNypO@C|E0c)bW4X0pVFOb&@7D7B{{vyTLSiFCLobE z@@UU779GIGQRp2C(LdBRTI1Dl^rBDGH4`g=WU-}<7Z{+EbneR~CcvOJrFQk)gU9%j;(QsX^u5CGURJ766JbOI~{BmV~^pyj!!|IVWv@obEu2a@flW zJ`aS=NBxk)GoZG9*<=0}yF|f5&b9Fzz`c-XkY|vM;220yZ~XrCDUn2sv zMYz)up$6LU)R0=m+OH=+?{1G(x~3%f7p;{0B>85LzIK3?2be)M_6Svs=wiFecf>mI z?F6Jo+WhY`^RMO;y7?pEd8~g0d}pnSzZ*TW@vk`PL>P_6){rBg9C-tyST*8SC#v`6 z`b1-JcEI|K0~u&WEw60f)w>cX<{?Td1suTQwMvi>t(wPj7@j+QyJcIYw~*tyG50BB zzRYT6yg~azQG~NZHfJ_&qj?@6-C5C?GitI!tbta-w|2((`dY`M76neVLUUN{2ono2 zc80ID+xm3<5&=Y_>@}dKW$=fUyFc0#M4-a7$T4F*HSU}Shqmtcg+s`qhzAWJ8;NtT zKj~Op30{2N-0_M$oAXHr)7Y41VIkKq)<$qY{|53qcif`JpEAt|s&NOq9_Q4KfEg4P zg&zaR>L&%1@(I>#2w$um zaWi;*?riCtsg*v2l|;fRmVqWa9=e{rn30+3NP5>21&Pf?^niyri} z#wS=Ar(2OO3BaxRIW+6NnvkXQ7j}#20Eqr~nTel7={`m*?+K%QkW1LB$>m{*68IH2 zf<@2lge%b%xpwxf@-MCs@P4RJiiN%vw1-~;2(%ySIfNNDiuyr)LnhS)tUJ^I3$USx z@YkJC?9mfI_DhyV8Cjg_i@#KkVLS$w4{x4TUFBh8=4^UJqn@8G)%rVQz;9pbHYV>r z3ZXz;+!uyEhE6zwuMbcH=DKO}Si4-$>9(8?##=8Ab(YOEysFb8OY=Zw`ed!(8I|=9u&HO-kI>oX%!>pTdw5?5MMq`>OzN^pgS@;0^)uI`rJ( zpJ^AdW+=c)A|MxT)3eMy{tMmG=M;pd^D%PY4&Ca7q*Z!OYZ#u+eAilwnsq;4g1o!w zx;}tXrk$Taqj}=(vqK&)2R-NRQ$kKTsBEB3pBeFxTeeN1Vu3;>rZ$S~dPk9e|o zjH=k1w~z^g6O4DQfm?daqYG{lZu_6HMctwYNx1(oyU~N>1p=Wu9pc+Q5u>QWeI;(K zKq#>A=}%hg!!>?AXr4na*;WqF@}Kxiwdz3DZwIB%?dU)o23QHQEP*u=z}|-KwRX>8 zSgrtz5ca-U<(ACivvf6Wcxf?i*L`WvCvi8Bw}{$3k6(Z8O7ovm}oI^746W;8A}3Wk3Jyx zOj6Ffc5E^Ss%!yw`e{JtpKCv)XZ}n_E#}GJbe>)Y-6&}g(6w`bQ|blQlNB2SdW1u5 zBa0AA(C%dI{RTkxR9&{xuww`_IQ=;eUV0zuCR_XFvDX-75kSy)TM>jw4J8O}i&OF$jsvJKX+L zkc6rq*uxD9Dr&ktK{fz+?&gDM+;WmPL1Qf60t|?b@wz6*S1N1sm?2=_Rz?w9ys+WN zLfo!0&e&vV&Cr@g@oiO1Px_>hdOYlPmjWPW57Db z;9a4B5%{YJYWtKY0y^u1GJo3-jYYpr7c09+;RPn+$qSP7aW<;zkO{uL2pWu4Si{!1 zMc0MNeeS*AzPz(1tWAUcJqLaSXA&M1lJ8suY~4AH8tX~L>FqwZABKOg!JSJb(da9| zGy9NYR<-4CLJhFYKfr9~)E*1iSkXmn)#VYf;?UkP-x2Md%_{UzXB+4(>TUg?7D5$8Cx{a>`m-no<%s#I>Q2fbaG)Y|k>6907a zf!G2bQ)nhdz}f6B2tVhN)d8F8R)7(j4pGaw?{CTj6fqv^Eu{vbAM7XvI8Og;7|Xo6 z%1r1EJW~B9ESYz9a(mYk@^bfjmf?N`#W*@dnPzz<4(vX@3Jk+(-f{f1?v*9TU$tfW zB(|a-Z1$TUsVXrmMiKekZ#IGgeW&1D@+2iFAQEXDXw!%MRXZ9|c$OldoX3r2PTgEN(r;^yfWE3uff1^mG=fR{YgQFW3+0*pM3*%gAklq!m% z*sp$`MDl{X+O;i@78e^E5gDksEawC95d zd5%_*csB2jndP;HGCt+)(Hxog6*I%G635fG1- zM@3AdR)lzg`q^7#AuAOO42hD!v45vME9Jm@@iE`Tgdj@1WMlyq>N9qsao1bHjeUyf zGoUHkK|ty}4EQfl^2?s;>2zBhG7~Z3L~96o71<SsGu;{gc4rkrWXL;0&veN);TMDWVpm@)?y?d0$YbmW^ z(?|hj3#nqz=0-f9Vqm#e`o$Ws&aK{RCsc*ihgH*PFz!3X4}hXnO1gqy@kM-};j-JI z2PHr_&eP9)kW_i=(}{qMPpWJ)Bhg^N?IkLgjI^KH)jv}X!r5P5U4#e$TWQz82Azee zL4aAjo9Pt~U`uQu>!DAzvsfG|Ck0+3^KAMUOYslHB5;m?1&RSoum8gvK-ioiZVGNI zL7{p7YLG2G`FT9|=rw|JA1UDijYj6^uC&|e1y^VuulfL1v9xkKoMdBiAD{t1moCp* zMy*6%XcNywAg>a(b+3g0x9bm_DHLI%Sr6+E+{2P_2dJrbK-E;2UA9KjS6t$o+U~rM zYYx_f0fwE)$KuIrTyb4;72c%K^wZ$>w|A_bz_k>l<3S4GazL5xxlGu`?t4%K#O2BF zJD8 zG@tmb&`hPiOjdRg>-xd+%R>MrQJ{uVp23x$F7M0)3zn9?hYGIFTp)%~z^v6(IFY5! zMlspSb_X9j9?MrwS}co94I$2tH!g+-qk1Fi$oxk#e(bW!XYs}herFi1dhG&SwG6Dh zF7b0f_Ts+t?d^CkrFQE0Hi2G#2{n%k=Ni7`U`g;hTaFC@oDCC6^E}x8cWnJZ0{@X- z&W+sJ$G(9fmT)q@^*oQiIYnhAK@mCXv{&(OBljLT)1srWgorv?5dd(I{gROG{cnu7lHtO0UN8hHEQTP9^fct@w|Mw z)%8Q)%yBVD%6{Sp6~GZ$y}ogO6lf-4hj=S@jQkD(01J7oT*B7{NB<*r`~!KQZhPLZ zZr6yCK5+v@jSRr$O;(DSS(h_16Sii7{f8I2e2E@$CRM4=3&7H8=J)HFL|P4>5YT!| zWyR{O@kVWwWKPzmS5i6A5+w=B1vo39Mi^8$UE|rP18P1YEpsWi>0SmJMS{6 zCss3cNSx&-eb}A|D=13x<xDgFDn>+vcHQp#<^U4VAo!7t+Wm6$R}vsT5ee3T z!WgR@OP%f-iI7_5t+1B}g_e{TVUGjrHw1ICd~C@XN>N2`zj|0gHvKo2Mh57RBdbPa z3ULckTE{u8eMahT-sW5H--E0suGcrssJ~(Zwuhg?&A9 zVCIKZ^=eubSa>2Tw%d6rypJuWWJ2x^+!WtCQpMV5cOt5gUUxSzDIM*BMc*4k*I5G= z?}|;bxt{FJkNY^}Jnfopc#s5KQlnGZLF4g`4&lV`t`E5o=y7Lv-gi_CgBvJ*M{xg5 z@%Sfe*9aWI6G%YPyOO^f*;|7Q2AN+;9;r?HsIu0%b>Pe5rkV@+WWi2BoPel_^k)s|u2KZbmB3(C1LDt+2`% zvL9?|L_gvH*EV>nT~Huj>bqoKGZ~=}BQ~qUEot{?u*zrTA+wGW!OrmbqF92P>BMpo z;rZEJxAqtFo4776uvrI`$`4rdfoc+Ro0@>da4a2ca99cn*F}p zgKMnI@bEOG$a5;1nzIKsNGh}*8Syp`L?OM`(*c6v=n$H2-pP!H5h|?2U5FLi2`j7x zrhz2Izzqp;Hmq~^4)3b7%UCV8&+HkOY!~G0gn!PgyCq(Hht94Rz8kpE^ZKT0iB4Nu z2>}jVJ$6m^n3nCNxT|a$c_fbK(vNoAxQ=ZBfrB}29EH!VjRlo{`!P!(`SuQpp5s3Z zD8Lz|!oRRSYrf2uz4Pwcp7rfj&~0=Ig6ZLxGXG#{eWiBaw8?x{;;$`{+4}qj&^+dT zKpDWW`Eg7qEE)nUm>AMz-P7yTdToQfNI(e{1yYDi(Vn9lGtpUGwkK%zAe^X4Z^nUx z%MNJM6r-)dlJd-Nu&BkJx{cM7Fc)v&R2^zW+RmDrY{RXFl9bwf48%_U~fA-+k`?`2hiIaGr7Rdj`dHPe% zbNjep_&?eE|N2O8m}1{va-<^sm&N_xr@;R_3So!D!FfK0ytg~>Ulz^({JQ`CWQ{tg z2z7Sda%}=zZ-{bC5VNA}ka4I1I-jXSSE|`(`6LmL$Z5@LylJfNz=xM%IY4H7<-{sfSuN z@hOJKPUT$QGi6S2_c#j|J$RZr3Cf>Eh2%T_#k6zJ)G*PG>#k8bBW-cv8G; z?g}ob>GlDKIqnL&(U6Sg7yI~EyYHFl|;NgRbRMHXiPZR_+ zK9{zO#ez-ANf%v*O0PWF&$BRH;yh67ITfuMI0+0v2>{RsO(yNnB9Vdq84dw{RL`fv znmy1#3QGs6Q)|Xdqt)1&x-?Ru`j%*c{m=IuNron_sgff;u`gdMGQS3{HgQ_q)qJPU z_8mh2Xn(G>YnNf^h2fpXoI~#OY`1`WF*SH|NO018zzcBUr?0%cRuFIL|K+~JcnNyv z4B(wLYc0jJrq)lgM_ig$SLq|Fn&dlnr)Qw?&V4U!7od3i^F#xiA~;sQ<8G}>3Gz(v zC^{>~R{p;)d&Jc+%fOv1X=1D+UDKX>dGLK@eErHOAv%DC(|!8QdcjDR&to(?qfe@W zsU5*6FB7!^w$-*)x%%Bz8YBRlP&<%kM_WBXdm8jMl1b{$$pVv-c(7*LWv@*Q-i*YX z>$l2cWWRv<5(h?nK(^wWYNk>YqLm0PA0-u*MGTwsCF=E~l*32WU$cV#st%qXN3C^YX#0OB@y%bknZ>}z1*;8-vt{(ZY9Wp6M zorAJBJM}E>osg-vXd$clN9Mb?Du|m)XFF45t3a=VgzwY@71QWngEWSKHq%Z(4znP|ueuaO2 z=WsC;IJq{LMl?&T8|sZ2TYaT@e+S1L&{)m{+M2_KZSu&m~xC z=>J38dq6e4b=#vyKm-v%K@d;_B2uI%T@eB(ARtwWG!X%5(o{fdK&o`L5Kp< zi}WT$dhZ01kn(mspWi+A-S3V!-uS;a2E!9Q@towh_g;Igx#pbfiTyX;^A9~)xo0pl zjV|#Z?A~W{VG*;7QHteBwCW0XZE3lnkd+3z;4-j&_eNwGgzRn%u2Yfw92^iVr4NOk zHtxU)vt)+~s+Qq)8Mm>og^T>7c(G^wW5fO?i$=a7@xL0W^J8Zqe~ISqnRR7#8T2vV zvtk7_?(){I|K6?54Ke-jr;RyO5BXpt-kN;bBk@y_cH)#15M|uXJ!b!`eE*eZ`dp#s+FF9 z%Jo*sv@;T6Xem}9R0mYFdt3zVWVeFLRQTbEu-TS8Mk zp(Az8ee(`b`dR=+scSx}V{(ctjhsGtD)jgK|5BXQ8hR@J5{FAAJ^z1y2 zF4>GnWcB#$I~J`1>jzYSVjbud1E!4mBjwe`#t?q7hpYX};g z7adg^Db(`=of%NbcLUAy3w^Syl5TH@7#_}ak7?1I5Ct-?zn(gi;Ay>)h|$5Y0>Zq} zN>i@a-`*IH?2+}PN<=flXad0Ol>N_M>h*oh98<8CCgthYedgIQAf2xPX}sewgK3>T z!tUoGn_i9mbZv=ZRr3b|h&0F{`!g-2WwDb)YbnYbIMDg*T|NRt1xh+~BKK|*M!?A- zlD_l+d(k*kG21D#{=|Q|5?VytV88~TWa(w0+}J^=Ix>xK)B&pZ&Cg(4{k9%Vf$1lf zjUxaXQzZmG<>pInnzzw^Z-aMOzr1!eV`Kep{`di4rYwQ}*rU3_L>Hnx;#epWJBmcI zL1qFz$<$@~tO8j5pf;Q4VD;|v#^6i0g7H>)*uNQ#2y96G*SdZoNnzXVcQOUepx}~r7P0JQO&~e@* z%bgY`lO$}p)uyXJlgaB~-~lKD+@&u^%LkhRgMVHZ=Ug2|Bx^3*dpH z`$l}})_~K)EjC&yv?cs?H80&O3gjG1HlErmHcTa61D1I*HQOQA`W~(r0~P2OQClg|*JZt1}@09d~P+r;~h5zJ2xdOjup2Qr*`0*PY`JkZrkbbCKNAIWHv zh6vLnKrHaBs173-J@QIl`(BmR`GvftkjyS+X=o6ThvB!|?EGgLh;lT>W@LpCv ztXG(iH&FT~F`BB~-+Q>DtV-HJyxwxwh(-hG%E3ftR<~glG1s2YG;cw?7$M7X6-qtj zS*}USX3?Lr_W080xd4_gtb(4b@`$e+JHI)vG>^B0SN8yo?pPqo*${zgBw8ezOW{$b zg8;Z^w2)o{Pt5Y#*~)3vvGFsi0K?z*(*s@rw|$ywIiy`aNv&1@&O`yw$R(x#3e-Ag z8~;}PF)+n*MF6G}`a-TuO>M{mwrYCFOUCMlc@%o%aDK{agNmp=?=r45`yjSC5P>1W zeu@UHv&2frS5EYDFT6Co43H|*fV0c+@xb_*@akOC6V?|Fowh6S;0?Ca813Nd;H3$k&m9+uXkzCZfcj#lc4dMy8wAD`nlv31k^ z-~a`}cgRmby>g&P>Ux*(P@I6ZP+i|M8@FH2P5jf@|IDSHaLOtXix1VuKUbL%B#}@# zStH?liw9`808kwNkQt2EwpvQzv$;)|3WIp;`gnj|Q-92%Z{lJ)0)fS=!WcOEkpw`? z+7NRb2xW^*1Vu~7TZ1u1jyM71S>CLrd!YJoYxqt&5Tc1+kCVuqu4p#21=;r}>=3^T z0L&BPPp#KC7w>?Apss2kIV1QMrmi`$pXVV#d5292zqOqe2Y<*%s9xi;!vVB>0foCz z$C3^~%PFs~DBx3;XX%e;TZ{?sz#Z#GIfh9rYsPf5xa`<&KJ=7X0RhcYfn$2Zol;Ry z{Rd9j5D9f2KRx5mz(Bh;o=yQLCu6Qq@b_WR z#kXQQw83Gx-@6PB1I-&e$ftFMY1JD2sTeRqG4aLn^CtxXXZ`H|;sY2|I zeMZKL+D~(;dx1`RFm#>~Jj3ZpDxtyaO2@z_c1vhDQSS&dIe?5KAvO3XeXS{k?TYSp zG+lgpa)fxmLMbeiUF8+2&u!xI05B~dvq?#6GbPTLfYBZD1g3G!mkaH`*BDhQsp0kq z1^B_KKup+?av*y&jx)a%)k-Xc3YmfXKr|cwTst+t#E6&(Ju9CAq%JN%K6C-?WH&zX z^?Sr?P*%ABILp<_XW9FYi}l(VLxu+b(y^VX$k?8;DT@VmTB8P!>vA`2HbSTL3u-a> z=k+UKzN!i}fE;CVS1r+yNpqpAeld{Tk^StDty1k*nVU0{llFm#3 z-2FFOlm*$5a&qJ`1NS=0_aQf7e2bgdYJ}!jpFT6)P~KmcPL(9uC@Gd9yot6yP9@$x zFof-;d!vryPT~Y{!schXWlYV+(7%u-pLurmr{Lh=e;=G&OnZCXrGf|7tv> zXkbNQ4UG-jNZ~Ht$|-`4U_KCu^V2m3dB4(H-4M@>gMQ6Mn1L*8PLW*jGwee)zGHg| zcYfF^aSYz>NH80g{tpa?PC1|ar5#Z7q{Z_}w9x1(*@)GrfH2tb1@ z_1j1Ma@;2>fXm3IC2FJok{=_E1kzM|oN5j7ylww9`3ozmT#)NkmacsxVC*RymI*1uaBV0X`$y0M@20od<$e9>!3+@!XyIwo=?#L{>pFxm5<9uQvpe9$k^WIogBB}x9rfVOws=`b*W zoP4SuQ01LG8;$B9i==z`+2K*(YD*YJ{`|r4^ryEm_05qt4^O77X0N^bbxP<;2Re@> zc;5b^W+(v-Q%Cy}09(aeA3{7WTU>VK_1B=bZ0`VMm=+|;UDna%Oq4EumfEU6G1VLY zV-f3I3p&bPw?Ui)%S#O5@>> zaucg|>MGo8Q*;KR<*Z*>*RU}y4IFA61i0>ZqsvaZYSa6Q;5*HC6iC;>FoSvHw$L|t zB%Nn#m~#s3TbVIw#~+p|mktSFH;cecL=ij9O^ib3*vBV zc>MTiYYbGp5lLuWjxCS`*D+#*GtA zalZ8A+a~Yp63An$nWCJh8URUhW#{K>9ljoCgZhvvY!@8yxIG)_F7Px@@E2>aLeck^ z*9EspFRXd3pl+4Se67oeL(jGb3`9V+lrbwEkh^_&^&gmyx8vzv@;d+*{M3vDImT@# zanZmdOwSQURI&?`I18`e2teZsHxvp8J>Lfe#{EqGXYt8e2+#?aMnd_(z!b6u@(Ign zjguQ$aakxP&_u&F7{{R2xQ{ci39njkpj@89fjY>2k7;T>U&?rA=Vu(fNa^=5!mfZ# zhma@!VSI!po(YKs>DVi;RuEqh@+E{2A%aOMAs?AOCb@}DS6)%O3{578pAZISUA>Jo zexAVI(F(u6ew|0DI3w!@&s_UOn^)gh$uACaJ-u$&cS$)bYxc51kR;FbXLp!c1~1dI zw9iI+Q?pn<)QI$c`r=e9E50v%=hx7Bxh#s`{Oqy0%4@j<@B5LAfbaOp8E%y~7PY^4LcB zgM?CjaTOHnuJil{PI<5Ily;L;nz_;`WuA2BPm=Ov?*kI&p(3vXY2&QvvAcoHZ4`hY z!{)7=S1CRce#PH{Nu-3mvlq(;z4@qBvZr+EAeGaVp}lz4{M6DU*CZ>EWiv`G_Vf8O zIo+HYeVdZp9X5JQBLc_oR<{&qP>4H57$c_b6aoaT_eCi-u`m#Ev?*F!3@AoqGiJE- zyn2NUx5%}pKJ*Qxso?`9HcTz`3u4NxTrMIs@^z-KSLQa)f#^yEk2&Mh%fNM6L}huylxvi>e4&2VQkn z2fT^8W))^wG$K9T*h^1Fx+_0&L9M;-$9N8E8f(;U?9l;z&{31NolBY1<*;~xt4{*Y zi=)i7z-cH77GS?>35`Hvg{@uUUGRVe>N4^sn}P_JURuANk2{)HvjxVd`u5AW`T-@% zGXnbRo&-=nXjkL7q~mU?5#;opY~h$*0{ST33{}8+>LTm^{PB_Jh!pj*oL_A48k^`C zHOF?i;9Fd9cAaQgJc`Au6zkam3nP?{XAKYdO~*pcQ~HLIj{phP2*6sxq6f9FB@ngF z`9ws?Ek38K0Z(@1*$(wQfZJm@zC$)cA&4N%ld;YrGQevLDEo-Fc4tZ-(Cf0~d*zZTdYMz@L*VsP6o@S-%&BRwS0M9S~D zAFgIHu6NSu%rk7hsveZL2ATBKHLOqhRp-pktlBB-TOw~))ory@xu%`XnG-2rChXPN zpO|h}=>%!A3R~SNairsvE3N9khtb(yWLsE{B6y&Z%SHCJMe|>osL=@s-*@2stf9$j z$gd@BdO7TcL05Z#XNylSX}Jriyb1utq|5pGu;(nf%orB7UXUlB7t_7ZPRg+mw32V* zFyxRF<>=B!7@|gLt9dCpMw?%xx;?BKYmP5^1`{H1ED1~f*W&psk?mJQAA~~N9K{wc zjZPt7%W_-Eo?_X4{)>snYWNyc!2LaoljJS?XqWw?^f1Y1iW!f|D#M|l{6B*$YaNu+ z>Q^P4N7^@|vxhfddd53p6~|T-7u2l0x?hJmI)tVxbEx??g0nXQNO;-fK&)JNZ!IVK zdZxa6YX{i7AM<=f6!!+Yp|;rXE?6N4t&Md+J_OpnOSzGM9j!IrTg?*4m zCxYpC@IEbYUOszVEjmsm9Be_qlLyl%dXqi+pFbJjC^{Vz>(OT(c9`Re!(=egPS_3$ zyzEqo=sq!dTg=d^&Y)Q4bi~G<-^@Y`g`x zHu1jF1q6^KO$7|{bPR@l@9ae+q!!XgTlia}V+gq{x6?UsvWt-4TN;{N?pORsBEH83~&S%2` z$)*TQ&Zr3vxodJ!VDWu__3+)L8`+7p{+{&f>G;FELLdXK*QR}%EMgOf0bN2Yb z2+7YdUV~Y3>nU&gKg?WyJWoMZXZkvyU;Rb zIbi0?V_Q*q-~2M?m0vleldO;K-JRHtq!!?g3_gAxNdFTK1a|8H-q8YilG5gfj@xv3 zAUanr6Mz$-{J8n~(8q9f&hQ{hWG8CfQ!rmry56D%m~;1QGMW9iZ7aY>IeiX>VN)0F6T1+DZ9jwL zVNh){o|Q0VY}LLRGmKIMpD0wAdnX)yaq((?HRW6}XUy_dSm`B-F-V^-Y=lQ($x&|3v%Dll9g$YeeD8h@H)p&6|GB`Wpca!AKbdxBg8o2!|TIv1`-f^Zh@ ziBS{W9Etw(ME?C~h%clkDeFVwJ>s8>(_@b^U6=?ylH=$Q+6|Wn{e;GL$T<&GV?Tt$ zHY0FX>xpJSPUoS}+~M4Dkui=ZD*7|{IwOEr^)hAjOn}TT%{tf`8bEj%GMj5vSqj}_ zBAok3xNv6tkm@7Mquu^NAK`O5LY44k3E_f&g4u~8g!DrNu|HOp7_Sp1O}=^tp*zG~ z(4l1ODy((V+$8US=S{(ElRIYs5>TXv-lqclLYtah5WCy@S0~scRl810iBlc|G-23HFK?YOXs)n71e5T*xbRPk{GW1FT}- zsaQ%2AHP>CS;zsM7WmoYAqf1Ch{e%&rjWEdggb=9Ue*K0xP6<=J*9soAUA&eB-^ir zdUimfER*r7Ng1a%yD4*Xj`nH1c1iho$qs;vs1DGUa#UCF*#Di3nBAy_Q&T=;Nt7Pj z>&OvTI;A>-AmWv?(tKTCHs0JlN)RP(aT_dv;Hziv5B|(ES|C%({hE$zib6!^49}Z2 znVh6rV7qFQk+UNB<^@=0JG833>eaF=)!#dqW(?A0HvIzk@yhf(BBu}fV*A`13iW)8 zJ7S-K2o2zY{98P?xz( zFkG--Aq9)KXOBRut-+P?0`~}=yAMDL7KF73JaycB5aDRI&qPTt^Hni}{*;`5C1@XP zM5Iq%#Q{_BVJb&EpcSwTG_0a4{g7h#1F-wm3MIDdTfY?6cgq*uU8>S8d*&wd>5jM; z7Bw-fP|t6wn(-fR3OLL9~HAOV=QO z70{KftNKKT>+IpU+J^byTfIev{B(-cSyKZ7W(gz*X2;d?y#h0=UVZd2z z@XpatiMXWS>x$M&ty1(rAp8)nfvl7<@76XnTzp6Xe=}z{x-nUcE-R+d!4R0jVCYTO zX!g&oM}W~L+!SdY-0sH=(~oD#zsa1rno~RRf@pksc`C@YS13%mPS9geow*){#OXS zOk0|l;|~P5Ze3;%fAabpoX2ka7;fTwgMmZIRC%$t^bxX8AE2g1ZGc#V|@I{B~ z=C5S!E}B3|z2xuI+#ezWIQ=$4nSp;!3xAusBWE%58^`fKmohwf`tH;O(R_{mW^87T zbU~TtLbGR|KHK%J$N+Wc<{vay3Hyss2tNGVtyq!C3^(9>NACw;pzn^myTthNc`bmN ztWmpjQ}5FDIT`7{qicX>(WY)NV|%3FiCNB6hlsteH2(-5C>TZoBybtcAp*qBnxOOy z_qx#&A-ph@QK*eCV}vrnR?YJS`2-Z*dtnk*S9)P+mP0{^hT6YlZVH*vTPTtT6BQVsA z4al{n<=I00y(9NP8u=fRUvDxG3RE~;8E!N-pmg%1F_bW2_e*NyPe}Eg-{~>NY)QcA z<8QjAjSAr&*L$E-9a<=@LD@atFA4nK*8wL?UGvxZKua7L-6l4x-SpB3HZO!{x=!ej zyJ3U*KG}EDYk{rRIe?Y!#hc&mLDlVG^USuQ2t9GIeNb)F6u6|q&M}cU$dRy7kX_)a zA-#UOlISpg^Kk+#(?_a%!_HRmoL7jrxiwImS_5*M#VEb=% z^t^Hq{M3bRi?A-TIqEL8c4N`fkBsG3U%{c_32R$VBqR_Xw@12)D5FJ=-f{ei8kVXg zrCVz0dx643Af z!`R%F*lQmJ5I%(EC-B91jNG0vfGc0*`mTJpJ@Ah6#0F5B*T#$5s{hg@x5!hb|7P~G$-ovjbpA&)ky+d<#k!|~_ zLg_?}y)^6ldk0e;+nEZ%^suQAB0a1L0I2Pah2zB=Y98&-2a5#j3yR8cYv-yj$5-Jc zNUU)hO1Vm}8y19CYn|XA#Pbmrmn`P5VR(AX#*kE*tq3d3n3Oicc0Z?^3W4Uyr6{N+m{zcVZ>?nIvl zED*i0?<6x{Z9ASO0Nnz=+l|xn9$O0G`bqaMWuaMHKY+YSMG}}Q#MyY&jqaz@z~GUw zt+lVzIbxxocl(~vnlYCK^#N*E;Wj9`bS^|ol;luK)m5U9q})GTL55iXdaUitv0+Ko zbdWG}cbO638hS|CyewII#E-4SK6*1`Kg<@n6Mb0IPuQ)~!J4In-(9|31B#Fhh2Mb5 zGxrjY)O-v4iFsQ9dIvrNI8q`Jyh~yv3jfaHq@P@Lu!VIudukFmt*~s=)oYBCIF4!6 zd`gaSR28o8sIDuzlBVaVF0;iZ`$DG>KB&GcjM6dUiK62@tCH9qRMAf()Sr@rx-w-| zjU_n>kp-x$H>Ui4FvtcYZ!DRN?d8#PzA#3&L)%d4=zezZ8fHRhn1|xEZWL!(qu6&CN+Q;}SK_pDXNn6j8`zwxI&V^k?3_6@({f$IJZ znJYP`P5Q)_=wMdkvG7pkPIPvC{j#f04=B4Rz76!|KEJ|f;{!N4g{f*1o1G|o<6MIv zSk(Si!eJjlaV~0Lct|bj&EQEmg1LXU5d>Gg1%ZR-aTtL%Y@P`}uKx)vhMUkSZZ=2U z&Pgu#JJp1@5oEF#94>MJMRwWyjGPh&!8zc|$-GrbtNUoljC&Ibgf;6x>tEuabnT23 z4DaCtW*NxsnES_!Ohg?mWoghGYF$UsK4Kg1+%sqXe3@hb@os^-sps?|t>`oW7cYf# zDb&x?`&o?x7}yYcNwl>o$53;_%4C4ACJiK_`dRQAlWwATkYh@k+C%Q4(h>0J)s|=M-Efo%_)A4 zsp|Xx$}aA24#7m7T{(OzX~E&(av_&T+4>~wcXU}`wcF_y+QAj#R`jcThw9mjerq6oq)rnE*aAs zI$8#ymq62-0hozHouT$8?60{pJ_WN@A>VDz?mR*)l?WnEE zvr<&_=lAwT_0^CGl03O-g?bN+K)HR4&B>_6?;|qz?biPi?Jq_yOA=L*T-3WvnY$MKSC9afU!|E7gQHdW9$Bg0l#^zAMD8P4VCMfS?ZNX+kT(7Z zp>??Tf;bHBmN`|-oS!O136uY6pGPuu1JEv4DBA}~~2d&Z%a z8si1r&YqxTOcc`mlb}b9BKtoq4ZZb;Y-c6^;#!Cft^#2UF`$b`* zQ(PDQd~r8?bWu*A=u>!U0wHM-m%Ak4>CNFM3#8xK5r;XqfBH@V2bIyUKBVyo-jj47 ziV7!y|7k8~l!*e50Z4D8ezt22(mIP+1MfAhqT%K(Eg<$C7bwO79Zb&aDd2;%YQq+e#dZ7MvyAA*S!&&uu@9RgTNXKL)(m< zAI=LK{j%!arI_FfgV5w$+aOvutYUyj$gCI<3u#_R*PDO( zQt0(hx;aDOwVnhdfY%Tm*q)ckwx2q-_RhPm0pM}S^h%n zUN?WTp|;9f&s!5YDys6jDUU*G_7uA(!i3%_o@lXZxqh@D!Bj?j?hP| zkEQC6RE+#uK$LHH_*8XOp5}=#ShI9DV6$|cPBTN;Eg|EZYzSahbIz3vy)UzTe0i?% zhHtGjckiTZO|4Ovh$`6Dc(%YRS)wyf%Jf&x?8OG7)wn^!@XDN~m%*zi3jeMf&yjgdr?a&~7IX9&mRFx#X1j`@@Hc-|GOAB=bSGc2AeylR@H!>!J`oxR2~kX3D4X&n(Wy{)G&9VEw2} zWc`191HhqhFoDbPt-XzG1axv+w~^)o46(vj`{4Kkj1oWc+=m4n3OPD_4!8_QCK9MX>a@QjL9p8Y zOI%tz*>o(R%{XyCf(m-!5@*Q+;JPP^Gj=_5Gtefv;zj;xjRym-b71sC)+Hxv$JC!YdlCcfG21AITkZ@l--8-Mk6 zU|V`2)$T>wf*UYNE^PKZ=~mE>7=HGV+`#U0Zu6Ny;y+^VLQbAX4Bx0K6wegejB@-T zb7pP$(ZUd|>tA^t*Ri$gS!(!blcPC-8LJyjuhcWKwiVwQ8t!+BdrR)m0Na{d5Z%=i z7jR5Kpx0jAXlaS+9l2Kvs}R1M`C2K!%p(Ztx@ogDSA|O~QzavN>ZRGzus($%jqv{2UJNWHJu+#YlP-^*Ts&Ql^ zai`D9r*q=lRUhG9mm@;|)#a9;hkpKc_oo;53ZtN%Vg2Pp6Q&sY@q9xljQOM#4b{RV zIxIE?FvFcv2}N>Pqi#3=MC|bbPwXUDpKBmwa!ybrT>{EWD(w?dN4YoV_=&* zW(@Q6ESv|abRm;Ha(3M7)|soZYleqVQMo0 zZYP69pzC+@;(lrESN_VyOvf(5ZYhP=YnK#2P1oVe6J=P2CI<~61eW1rhA6-PLb0U3 z*5MK#4mx4kx|;MQkHY{GSMnqP2OoP(d{@R18Q5QUxa+qYHVT1$J0G-zC#`-y-cF#B z`6|>e&i*DR3O z))ADu#$U31#`UELKAu@N95NBQPkm;1ApUs>u6QAxPgMWy?+sGpm(#$1h$Fs(eBwFrxW?YD<5D`q58h*QOg(%oo}C7U|yQ%|mK@WCMeT?)|u4R#d)KvvJc z+=>gzJeW%4cu-wq-xTj7;^zZbsh8pFoe6|Op)ATjLEUGWl{O1E*_k8TmcF&Ke%BlP z5^DJ#Ji$FmFsxgjiuC$TFgit@I9_u>p<9T&m>_xT(^HER_S34Q%`b3+-XC<-BOe?Z zpFQig$hT2Oaa!b`-};}gRiwQa;3|=wwp_ti;3a7ZDTLzwpql`e)Thgkwz9eDAxmN# z_ZN$n5;e2%qn#WAP|VgSt$-1pJe!#FNbtCe04JwfaJZO;=q*+=rf;*h3I!9wRU0#f zK$A?w25s`?-%b8~I*LJj?~aY@E5D%MAZK_llcB5UCVH=O12j+ zgC3VY&@2!;9@+ph$m;A%6jC6z`Wx(fn8OK|;u~JU=sTqR28yAw>NzZ7O5RA_>`zx( zRsQ5Be^^cbTC7O_zdB%5>RE}E7k{Dn#^Es{_JW2teyoylsZXtPckV_@pC@^xUL%}8 zR6ch&1g1#lGR;YxA?bzn!p=_y==>9BzCu|}#CJ@`GDR-3`jB%vfKsLiG?TR3=0TdH z$!O>x^S!Fp!xUs}^PPKe;d|RV6L<#;UGn5&Xm{kahQe&((1a*^ZK~BJQZFmA~5I1r+C4L>~i}8s!c&aEj0dA{3iK6niC6 zB|Zh_3TT62Nl0#L0PQ{by&u4Iw-Ml+orT|zhvx%VoTjz<5%w11cSCks9QyuaA)ep; zy$~<;Kn4zQT6TqSEuh3K4Zq*s;2^jLP=(~Pfby3pU?UK z=yk@~Q)gpzPPL8y^RWJZ^ZFl~=6_khe>Qmk-@TT;1RhBVNl@AU4^L!}Qaz)3@JZy{ z|I*0&6FvWzHT=IV>3{pJ4-Ys;`lo4)|1(eH|Ku@AXVXz!S8pK365y-rT0t=vp!=7g z{w$zwXr)VeR*&xhQYrZh#EsZ!%Rz)K?(+DHa6==D1zrp?3M{s9=`i zvNOBxjyOqcCIFBx8(@D8t5-#Cs4J7af}3Zb0J)+u&|T`X;E4tLC$;pnzWMP_Pw{W& zvgYp5a!pUXnL^oKb@)LAqQ(^v0v5gHvcZllp@=CtZ*}P_Gt}}3HGWwjwd{`1%K>=b zH3GARz&+5XirCQBgTqGGXF)SxIaZlh>_VNOHbzE7KDE~S&7 zJ4G4k4e|L&k_(hxxWYVNtinRja*Ow6-T56cAShJarsp}afH?= z;FTRbHNmuii}Xy}_3#oQ=7Q=Y=CXPbrn7cJIw|rgZe2`mf2y|tlVe)w4Tx*f)k-H6?`au z)daW#25(nczB&al_IYf4qSumA%UZyMReM2y9T)v``2b61=GObKyB^L?{VIEM0r6Fl z@&4+jI+=pL?wLd{r|&8Qf8Pzvq0;OWF(xl+z>u+|O#uIumVRDN($suOU^A?wAM~*?ha7HlI85BNjOFZPJ+H*Tk;?$u9-w zb)UAT53Ubs^mbiw8qpZc2HTksc4$6Wj^|QV61EU0whe25g9xWQ9t=$wN?yOoyz3!D z2w8x4naypJrh&O^2$fvNO;zxMD%uiXvI%va#_AvXh`_QoM9f z+ZKUT;CrJq?btYZf&h`CHaZ$-s@aA)O;8^`{lI(8;?b@?4N2)iI+B6~XK6_Cj3jqL z!v)Y~Fm-@dvp&F^RUQ`$;zdc9fs!6n(=FO%_y36OK$%-Em z@H>RV54r6m&RzJu2v~80%Z}YOZNp(QCE~CP|8QLq4mBej=+KK-C}lC+-|!FW&A790V?k>QK0^+!;rvUS zzl88qh~Bo;J*GS}0WkD2T`QPQd1+$jU!+OP(6Ox~Q7?l!=^yMD%PFc)`)H0qbh7qq zx5>;{&Ze1OLoP%>$2eoV`_89%>?=9}b~zah1V=~<uf(nl!BE3jD%q*02D{N(Q$( z_TZ4fQbAabG^@T&5hFsmUvl@IC)kzeApXK@Fy#T`rXmL-@x(r z8!mu1FeqgFz2^1z2a5-SpTd6>7u#I0|76UUKctfE4eIW#Ydeb47d!dX?*Z2UfB(1% z8OFx?Y3q^v-wm4&*B)G^lTDO2S+Rc0oWXiu$nIx-@abe0yZTH3Cp@e!?|3$H;0wV@ z1J4fC_Pbz~SJi+PD5tBX{G|I6Ez$}YFMs<6I>HK)fRHq0i$$L`!%RhxL}e)&M2?)p z=Vf#q^6=q=?n*yMq!4xw%%5CH=Z^kC`;Q7k`T-qRqx2dW*LJC$HG>EYi&gX7ayWu? zCkalrj0UZ7G9KXmgk^@wGL_gS>`L%C>hV(j9p$sGtd!+u}9LNj6E-t4Z1!!V#VbWT3_`rJOE0LjCiV3S%3uV%UOa(7+JI zVi(+Td$GcJ0}Ekn)`#|hHI&H`bhd8O}B1>o*HZSd^sHfLg|+#6u8iuy+GQ|CyLGhe;=%?$!Zu#Q*fn%RD3?B5L-f zNj6poO~SZrhs@4CW&Z>@tt7<3M?D$@)^CSMGX;h|ahLDCaz;T32hc$=kQ7`~kGQ}8 zC=0Fs1w`W#f7sh-vPxP@Ws=;|1BGH}0b4b*SyAOo{G zq+oG=z7Vb+jA!ft++1P+?h7;zht2*SfQQQ_x8m;-#@KDUufXCEQ!CzCaOfd?;wU7w z)fr@UBG146g+l==X}I^0t^)DvQQ*TY9h>R?x}S%dZ_-cM1LfC?_fTR@$XYo zR@3HxkY3}?OS!nUj|bDL^1+zDyZai>qEQSRSX2j82Z8Q)slJ*b6>PK=)?&69XJA)w zT9FZy(-7FnG(snnOo=!eu25v`>4U}-z+cISV&`buZ9HpE3o`N><~N_r?5rF412>H_ zqIJdwo!$-@A2vZ}=(&~r_4zM5aPtn~OY7%@*MUTH1TWipi3$pgf{MakaNh!2mSf;8&eKh6Tog4#o}w%dHwb zW}_%pM_-W*A#38(N-Q%0(`k79kX)jf#r{jh6xeo1QwnFq>mI(dE%lc(R)2o3avsiU z1w6JI^}7rUUqdyB?9~>UvoE2TRrUj(2HEE)!2I~bcJ50!?&t}zw;_vHxKjRzV(B@! z!p@pAQr!XBsX&R=>V+|IVdBdyP>ko#(!$=?2clT{pdX8gvI zCjM33d0-ggIVGt|{~nQlGMFYaL*yMyw>!Ca1sYGT59nN2Bqi2&Tz7l~sbaD`$AOKM z%D`+V&-nu7ldhE$1OtX9bBg9s#1{lCF+i>wA^RykG^A)Y7iUKm)1PpM{SAR}j`t1P zW$BSSl3jgc&$w+7e5aag%6@oYIid}WQAw+1V%K2v!VUKq>L~m+P)4ix5M|s2k}Ml+ zE+PPKLx9+!Jz!=}ndNAEc-=D6Pc_E7?G9GZTaOyE}Ffs&U@hry&hI+7ad}p+= zY;r6jj;IjBfxIL1%hxYmikzuA9hJSUyf|7@(Vkd*oyW8%+H}?xWFkdh!|&Qwe~6CR z!Mc20J7ZEwWYAKJ&H^+fhwGD+z#D84l3+6k>ydyxIXo5;aeUMKmK!=0a(xp72PIKQ zw>U)k2F=&{$!`0P2*~ay!uML^NOH|Y4DH73P1Tfq`OwQ3n&NQHtC_h#26Z>jes~Ph zo;ZNveTcI`1pE$pB*y)bg$`enjao2fxqR`$x4y#{EhIwxFpe{Gr;Kh!jON*gV zoxHGq4121Y-fX~Sn2R3aQUd{y5x=1ci(%XKUiF^U3_puu3b=M;D_>25J=(^RyRqK_ z7k2pF1z#S7`twNo@j{kJ>MUzV4#mROF_Lt2ZR5mvm{2B-@es&YDnTEn_b$B zu?C*wyl;xiG+EyQ_+39Ev*qi!7{wW~yT%@S--E}SkLD(bTmUr<5zc}~H03`QfE-cR zru6eCuaukW>lg8YDEoQ$whIcDnUCH;T>QTxh-u+*;b;}_8lqd%SMn=aC!kXm1u(ay z5{dc@386x~Gd`>gWM#YGR5ULe2EfbX6*9M_uU@~zzf80;sMV=iv}d+hvHh;xeO{`X@@YTT4GY3Jz!_qXi z*!O{eHMbz{v6&I-Drha7C1q0=|IDMZ`vw>s>Z>!oWc%U{jKgJFxY1#u*Z7BX_(r0a zGs@xuO>P$8i(ZOx6I%Od*Uq>Y#;Bo%@U{Rgw+42LgWST)cT0Z}095es{rJ)GaDtNx zG=2AYb?`xYnyKht-jQ6QrRA}Y4Jf)_uu8U(-^E z;B8*`;-e-*&n)OibE=7!y*Ko1w>O7#^WAn_aLL37NFf#U6RN%(e1JQGCIDpq#I$AT z(KszhE?YApGZFB|RjL77x5QK*!D*51>Ac9+-jTDLnZhC*P_9T65xul)Dm#Q;ft?8J z-8jGOetRc6#{(o)kD+VFV45C%dwWI2%WK-pDBTT0;5J;F<-uRN?)Xokh=KcS0(}iJ z=~=|<`tK8YdxPfO^h;j2AWa2sXktqYfpJ;v{Ak@uEjIG~6iavZfVYLbHXXRI?XeYQ zuV0NngIOl`y%9KQwmDJ2tPl^SAg?CzP;x3(9JwL(4XQm6*bN&fx4+>5EXsZP?gq_+ z>-cUAdzx}$8aR#$9yt<*&@YBMEvgo!klGKtaGE;=t&*L%YOhwmP7cCroJ0Mg&|2j2 zdZX7VJh~s!LOt33wMk=i40hs&aKRN(W)FyrpmLSbLUYckaO4uBHGZazeMICCYmx6T znA*+`CaeSWi6%_7oFsg2p+h%i1Pz9;X?boKAck_vizdNTGi@2_ywe~d+xu8P@msy1 z{3P?NAMfr_SAIL8UeQ=s>h>P#H^EJDdosyAM{&?GKP=G8+ zXNSzg^PH(uCF%*!eI0+YEu3c5qltagXRJsP#RYAiug2etIop)9DuFq)eitJ;_HTo0q8}OI*%n0Phd$fp(xzv3wa$<8L`8$wcSMq$AukQ-x z%8CAh00j?8A!;Y`ULuTi=vM{m1P&6YOmS1pZMWNKRQy9t$ZbPdrOKvL?~Z&CSx>=p zBtv&|2E4UVp4yfliXU&|xdaeq7E`zAs9isMNzpu~bgE;=bAf$)S^u#0v{OsIA`9bi z0(*tkf=$97kK1ir8qw_C*AwwCI;L+jPhWB6vmz`+kZe%;ZLo3sr_yuOh?j!0NlBiY zGh;zMy2IYT`n7MkfsK2|MH!CX{6+-z6f)Dxv)~&dLN>m7wJ1PZf%(kll@CHRIn-&! zemxZw&NR0l5I$}AS&&jc(?)Nb;Ug$(x2VwhfNZZhgp<@C z$(}v$UscocECL@x^Rg5g6MUcfU?McoeNkb6A(plYf+@SPD4T#4 zKNH>Cxdy`E*?C@rS|?Dl*2PILHU{rQwUM|_YHvT%;UPDa79#m|8+VxCxl`TtXW3N3 z>pa+n%WrK7WDCB?Ji*Qrm)eK2_UwS{JRlKQ!v7TjWzq*1i+|vjOxaaMVl{Rrhib=l zPDZFnUbh27<571}`2w{IA6V~?oDd3Hhfn*wYG;>x71_zu{c9Q^?)ouX;MO2|Un5_q z7e3&5=Iy7VB0#Fige)r4voGizFV6+bFmTX&(|J3D7v#>8P1MM_ma2+1+Fp@bE78bN z+W-+S?xmnawpx)~Ti%i=oNP0$i>$qn-cef{0jWAQQPcfT5~MA8DkH>dt#p=QBEui=#FnUaAI^Yj z)jSdn31@y_qu>}q{Q+IZvsy6ly)DVL1MDsSDr(JgI9x3Kdd|`U3*t~fmHPhW&4~}P zI7(J=4HwSDWBKQ#h$F1Bx`(E~V?L1K7q_oEzErb0T8cl%BzSKP+=p)Oa`7BWD+7?d zeudFB!o*cfRIA#38f(#{=M52i z4=4vLXGlQ?$dZNg{>!8I6iLyx*&%LR^-9G^%)ty6TQ*3 zTL<7@c+WQP(|sJ&W*8s}74B}KB}mxO2bX2%k@eTszzG|BekH_M+~nPi6w!8ix{BBi zzzS)EVBwEKkGV?pD-h4V^&oWy?Qp@Qvcvgwp4)`Snfg2V7~5a0d9W@+A{BBddjoqK zjj2zyA9_Rh)QufV-86H*Vu|l9#rwpd_NKHQ3Cz(d>&YbKs(R@#&YBMv(Q|NlD~JvgAV8 z?>S2wE22C;&a*q3@Zh|HHKy$^*FwudsX;sgw(}4*i<+k&al;KWl&TY@LeBgj4k37?OWW!nR@?ZRE$=59YnO ziHg&l^(3%?d3fz9()_{RqSi*xs6Sw(6a&Cq_Y>s~eR^}=J3tTq6=MDD+}w&Ql{-%6 zwhTw(H{ubWjtSRpawGQ-=;qYVa$F^+`Pkq~bAJS_x-(vD3RSR=;7>MU`Xqw{Ydc&3 zUP2A98nQ|*$lJM)3jk(`KV8C9D}dW&7la+tRA-%ePMr0iQZe`e>;@(9ZEB|jXy61h z((pus>A-gBVD&an715f3R{Ecjq5Tau+{)1iNyPN=S6#4))X>ON1^;X!@KY(zl?lX- zGF%F;v*A9r!M&*U1!xnOf+}LmHu-+&Y7cL5Y9Cn{{m4upjMuxyOyWAA#SwT1S!2j z9mJBSos8`RuZw-<1i7tOxK^6njnbBV>X*yQD5x)Gr_QZOlvtmuEFzkxG-AK`DCqX2 z1;OGDEAvRg`wmV^NL-hpJu!L3FYG{XM_`B=my0HQ51T7Sus7h1)Q4Ao5F4BbR_cev z($wHYd`^_@L|1L^B*NR{9Ik90KUkTEy*n&5>8}F$+X-T z@^lAe^!rV=RZBPa01rjsz~YjHgd$V_aI>NhWQVN%EY;d_#v=S)%H>U^3-3PEgUvLx zGbP}1@?WAyQ1RJ}>Lh?={eAT~w_wO=lefv*GMSSJ;@A6*t@le29uMndS~r{LQvNDg zpTDO&m<0Bf&V#RUtjXB?=ffs3;oB(3lk+>Nz)d})K`cVRfx*6iF;X3e<7QTLAKcxc zK<#!*2hnq;#TUh1YheC>TBW%`VfA$eM3yXaRXA|+Rz$%odu;KCThBA4wim5}9Ho}L zO&AePupw;U@WMY<<1d#_86%lb$kSZ&*C<-k$W4suN1WXwJUG0ROY#uJmBD1)NwgQU zmM0KiXz3-+`lJT}JA$io7N~l+7Chxa=EI-S_daf+yAq|c=~N_ToK}aQkde)F(Ku6P z745_44!EpH8onBXJm4lMO<+W0<$Q~^u&IY;bIF6G{DFfEEne9wmgisk&G2l-HP4Wm zy8aH!A(^SpqO&m3-memG&o6 ztI;TVp8W+<)q#uIAne*ATq~aJO(JPu8AUULVhAH(&rq?^uu3F{oQq>~d<||D@>&7@ zNcv-sIL34>2*~z04N|8W@eC2SpS&hX?+OmD$1wp#hMGhZj2O3}s|hA|_DQxBdLzWH zViCEu#z-FYlE85OgP;vpM4rwmCHFNJl)dr=^7>)7acsSCe=>A}ZPcrdettKI3cpX- zRVYP1rqahBbfUmc8+I@u6uME>2_7E%L zQBq$FiWxe@Qh7Uehz2hgWLSlOL;G%11h2o)ExRdU6slb^LoNB|7@Ixo{f)kchpW^n{N^kKVCIdUJ^f~$uEYxBKeG-%Enk zo86H>-WqHMUSp@^*J=FUdv5_oN`E!`x5qcQE9*_dV=ESls9MiV{GHGZx3z(yY;V2u zt*5=d)4`PF3*0ea->{NAkYh;s)w*an9OCQED>P zdxIZVI98%}Aac^a?+!%+?ItV9Cw^Ey8yL<g7!-;vD(c+0;)$b%_g)1O_+3$v-v3ZL&fU*-Prn2^PKE< zfXql~#|i*s#>kbJg z1E11zBDX{#2mUF$y8`jnwYLSscnir*$1ebXHRMF(1@@zEa9Al6R2 zI&`XpdKGKY4~92iwRB7v+^r~ir>20DF3V+A-=UGAG#0b7z>^Rjo$f~20NR_S9vATs zZ~tyP6gVyHPy|ys4A3Z=!2x^IcTk8Lvg{NJxbPRUycVV!HX-+Vul8DqXPspP>1`<7 z!clO#TJfeTmb3Er!)}Lnm%Yu4GkHN@*XJ#Os^}zS3(kzPNABOetmo`?hPEzn+w`It zlL#Ess!D&m&XvJg3d$-g6&qnoyzTV83P|^!-#UPXxs)r@jo`gJ0Ol$qZB$oU-p(%3 z)aR{+F3brqx{XlQ8=Eyx=HAluy5Gd&5cYj=$qc_e#kmpywv)DiwAgxEA77|M=!2rn z9M-eRSOIzB13kSy@WU22@?R8;N^r@>0?@MLi33rsO&1Zd>?efO0Xi1E(4>}I_tq6U zx0uBM4fezK(|rHJXJ%^Di>`pcFMli!O)@a*O2gX#NHf%09c6v*GJdu>dLm}`=Ns3y zA{&)5zfJz2Si;*lR_sgX9D<`&|oo|1{37cd&$U zl^E)3muI2~r@IoJ-62s%C?PU-_y(fZBsLU(`ham{KK&ngA_`1ypWArMT;LxIUaij9 zgZDMrO{H%fRg)RSg4l}j>L$<%HEiDqq4aw<_UmeR=!rDx88Y@6(8-TA9X~{V8-leK z=B}}H-2Fm*+-HMo{=UnYjfA_MoeB@5XiFzksZlc=Ysibd7T=98x5N4{k#eK!lEucCdF2}_R&aWsQu?U#Ijp`edN>L7G87~AcvZj`>8 z#u2v8F%ksI2v=1g<$dq)DVS?)*%t5n_(BTA#du=9!=o0E5k4R%>X4SFcq*e@Ru0*dHDOZXz zt{Rde1R|v|(JOws;`<_ZI>mDF5L9M`(QScR`SMI2*h(^z+hD`~f*-X$vm5a?R}eQQ z0`lO>k{!TT+*bjb*QXe{PWRGs++XZdN+E%EWIs?Vk>vtiMYKU^x?L0@2nLtl-~A2o zrKVEvd<(zU(D@#H!T~gtv!LOkRJ8N*MXHvwv#p%Tnv$KODy{b=yt&ylkI%h=D;Mee zPJyQC(|GHmPY7em2GJtY#~v^f$Ppj27GW(1)x0jWNuO`*L~|0{@!Veem2b~a=~URK z!~xwte@4uq&oaP*k2>}#mrAck8r6itcCU$ydPc%Wgj#O1TP4WFf;ilXr$8&92@&XL z{IlKPrSif7vrP;1{TzKTsqr9(lV_A&PyC@tWt8&@pW1RA2?(V$K`P0>FX9-Qn7$5f zO#T#}75Xj(a*woRj9X78o=WKDefng{tnN<)a_B!C6rTzsH7X^Q%!aK#-wVVdXD+v8 zKtMsCLSKhKYsuR#z;crXO${Hg=hkLL-^;Qicz$d-eZE3fH}mpQS?L3t3O(5fY%HO5 zsyCyzIbB3@ZpaI`q*MdV*+7m?aq2;sG&QQFS2*YqfqPBk9~6k%WhhSux&kjAGq%Y0 zF^6MH46W6r37pXz`Mc;n+(I8Bv+)4kz-@)A<^|vM+B+vuSLTOqxtx<)3-h?D zS03mrJ6LE3`^7o#o?j{UUHg$KG1Wvk-daimf_v0^(j z1a#3v6AhX z>HI=D(vSwk$Nlxhg;+$CXWQ;V;?fO4flHp$;|5yl>SK1OAIl@fW{s^U1wY)8hQI_M z$>n`F3D;zJO2=wvpJapMKf0P78iGbhXIk!LF&>+XHp1AfZnNAbY!A{MNd?AvS$48w zygpmbebx>Zf7!GHZp4Zx-%W0D)h&P{QtIQ(h4WSsW}uOSMaOLQHAFAft~Go_{%!L8 zpHL@6l``HfI+CP=e5llly@n_|HwY6C+eYI6y=)lM1+V9eCYDopwc~vfP*Yf=Jecnb zF3rikAw76b z-z8&IXU^nbJ9a{hmh1Cr?WDs>ko3Sse-^sleg{b(`YSWU+4Db!g|0{)-r!C?;YrtC zu;cLrVhesKPz(>J47EQ2${@N|L2X?dz;>Pm!H5bpsg0`)v+Rb%u-I&&I+v&(FNV%x_^4TwbS3IzZ#kIvK^PuPClRF zaB>J5+Cx-O%3Y93$oo&RNUnbvg>>Z@^IrT9ZL=K8Zuv~o2&T)f^?c-DG zr`@|ETU&E3z$GVNZ4dv;YU#<4_(M;|Mb1w87uT|;cG!<(-$v@m7o{5}Ow@F{wI$Q< z{s)$`Ldbmbt^f8)&NuW3y89Vr`<0`%#~1?kx`jRL56TTnjL(EbPSR)7qgm@9d8Pop z|C`G;Qg7PsT%`Mzqsc!!l*Dqam+lvZ=hNQNjbs!YY4Jb()-PWP81}CQWHH zYZ;+vB<7sb7+bx!p@Duas<(DmN|p30gFu7D3Cw87Sxrv)SB^l@=0>&+nMI9oI}*B~UeAOz z=BR;q64`!85WO>sEw#oB`AM|rkA2uR6+kHYks@ znwijo`q4Rsh+?3k_mBOzJ(aAoLY8J zJF_9|Si940-+rB7!W0OgKBpH*=L(hfYj+;-$$0BZc*Fs0txz^Q{16}Ki6}Lfw z!!B65PZgM*ORpIAO^5IEA01Pacabags)%a;Jh=V>ystNQBQD~e@+l?IanmkszVhDu z>uZ@`f907{gv%N1NdUw0sekTg%H1h5-ED3fIIva>K;HVbYbsWE4#wZuEby$S-7_EM z-`V!g`KyD{t)6*hs3Mw?*yGfz$e9J?8|EbIqdo_1xCNijXD4G;;&wX9i!rV6D*UBs zs06<~K;*_iE;hvHk}nNl*Wj+#M>xq2I@i}m+fGlwh?``4K>K6=;YAqP&de z9sNEc;)ahHq+c<_2C+^RZgz96o(Sor{n9fJP5HiQd=84G(H>!k21ap$MzT4@MYf=C z_^2Q9BpG#;;$xjtthKcyYgSDml{n|G8Q0zqH8gnR%fFj=2iny3id zBvJc>R?Ip)LV@eydH!kL51l5`fDUuEd^H~IEzmLaRxT^Olt%h9h9KV~l=qcQf=ThN zmwPhat{FYve#ghGh~$F{#W1cv3G)y*KEkPDxiN-V1!ciI4&fdAk;`vD9TSXhD_W95 z_`MzcO1fH44qwHd?AH72ICh=LjwO|1i50?G8F&9Lc93Xw@;Z)?uiysyiRzugL~0g5 zlsMXCtyJtEyILLNfHbh=Ge{VbT8A6fmG@yqlNBdJ6oPS_IZ?C zx}m}!;mH>UNB~Jw2W5ke$w`}h$Y|Kt@^e7T#2@vDgbog|4l!Osw%Y}@^qF_>&_sRel!m7CCUHA5wtp8lOkAjwd%LetB0H!%#Zo69-i9PFx z8SRdH5HScdEloD<${_B7SsS6`ZL5pUVIiR;foV*&eJCLYA2CSUI%|og(=}*ZJ5udyw@!5Xvrhb(Ch(ne8p{ zG-vH`Tg@Z(uGdyn;`$Z@#L)=|Q6|Aio8w^?_90<hko3nmhL>#UJb5X{Xp5qVU;f9Ne0G5@$axp8Ib(}I?&t!Ah%l4!Wd_UZm)0yOwTZyccWJ? zjs-m*9|D8lw{n{zPGlE5mE%OYzwh*UGX#SfA>_C@*A%+>Ch@{ABn#)7gL*Kx6nkH-CR&3=xhF ztXX4}vfgHiD<@rB8!SHBpIe0TTho&j@%;uu&TZic@(@*`#MYvmisy+O5$z;L-D}o4%6; zx>lm4y-GYw4`Pyk-cd++Z9)1?vd0%nG6jUBDXk!VV@T&?5yIm-yF~_}^S_a9fK%NM zCP3`4^4@4}Vjcm>%st}QHA>n~L{VS}|F*7;BX@5^0uYscWAXEeSw6V4hZ#v|&7q}Ff>iy^`xq*wDq5UEM z4Ugjq=RfL82Zo;$=3X_LoVgitQuV^~(0P5zQ!0laQg3ON`gk|NM@AY%I69zTt`G4n z0i`MLyEQ9VH8!_u`TOYI)f?{s)kWS`&MWa(pZBf>c^d!rsu(6TK?O zth!UfKs#&k^|C(uaCPgA_)O?5{w=v{X5()YCut$s(_)0`I9Zs1j|3d zOTRF(Ju&mrbZQGEe)R)Y;-%Ov0`bB5)BP=Ojo2Bp?|>;wJCVADWHK+oa`5jqh>cS zC*PuWzr?+Kn4?rRB}{@{B}#*>t2#sk{TStz4bIb7w<+Y=*4jgnCRaMXMH`u6p8C&8 zsIKeSipvwM+)QxSQTHq!68YB{Bb*(ytKn=C#1IiXc(y5w0Qxt$9C!(#;|=U9@$pXn zb9~?Gw7wWF1v*UcTpvcXp%F^$^#j{>ar!mcrf^MS{>9)_aJP+$Fd~FS%C!;nf+Mh9 z@QOTAxVPTuM(xqIR6Jf?D`r=L7!G}i0;)4B>4CwG^0KgvPk)EtJ%euuikbg&c<$k7 zUlPUXQCF9{D@wx9dzL%N4*P&cP2~wv1VB$M9>}Y!gJoz|z?s(bftiNQWAiECmj#Z! zlidZZ^gK{ZQp7*owWGh0Q@98VptFD3^8Y42{k|(Id65OAXUKTG{QOi)sQmWh-<`sp zKoEppW}a+sq*eSt-OIXY;$u81^J47?FU4hlTl+6wssuAy9`YRcu9D^tfMj^-)1n<> zCq4|_GyIR*#k$tb&Uo6y})seRA1RIG3StA znM{t&!MxTU9)LJU%Nd7^U87%ppE#44=2$Cs0NTy6{EvWl=cX5%@G`@DKRNW7tWSQG z^8o$A=uZOOU-c(0AEYilE>#D&q)*!92;eo9YYa|kvPt;(sU|j6%`cvHF(?+eoF>e5 z6DtDU@IWLj_HN^^uqEK?ROS{RG80y?^x?@1DS+s5|H^sk(3CyZ)eZ^Y8s{Xq)rUlk zIed_!U*=B`<~uzt0dPQ0o4?4io!3S!L{i9HR?oBFaRoj5{zn2oQpao{6U_2xY4$z~ zQZXY2j1c=f&E?__WishybInmkAIR1OI38abx^=cQe{#?4RMaJCR$>0~1V3fC$0Pp5 zz_Cc~b6Iw{)&rcKU+!-#(6NxAH{gd1BM8dR2>a&iBwQI?k5iw)^% zumU$ML)R-e9_1+G|@@_8(Wk-TH95joqn-p;3*2ueo z`g50JBZjOF-wF6p7j4Xa3L5|-PbuVgTmcS23X+o69)z_w`?@ue&XMkC!yi`!)U>&B zMuveZ_y~xM(ctc|qI@-GlyaujLMJgJm%^y` z^hPg2v7KfA#7GZNybgk!BWkpoX3s1R7E}ks-E&zj`x?Z34c!)!g~P-5&DdABSO;Mi zm8s(!p?;mCJjq*fw}KN&nj|Sd)vUPyNL3d}J6&mV3#~MU*?@!^(=^cabSEDzf!EKk zJ!+!Tu3sHW_BJ5JNwCU->0cBajT!5~FY6<({?J>1@1%=$O2CerdG_*Vf^n%dWZNwj ze%HioCNFE4Yv51z7d(~swn*=N3%ef|xr*`AXZzZfB?I_TZ!jG`Nj z$Lnqlx02n=Dqg_KloKMG+s8KSLn0m)a-=*-mor-L%Y({XY0o-wuL9~zqM4SHob*ZOttmGno(HxK#Un1n>w70{XZqU#`hv;sW&Ufm8-pHuG<%hN zvnyby%#vu9%oGHMa_#(Rl14K6TaJ0`0aIx<BeSdbXE={a>H_0R5Zw0YFUd2 zI+TdLJb2%9hs%-Li}#e?#cMK|i{Rr8!mbU7lRmy$>O*W}h|NA}U}Lb4Qs)7ISAOPx z{1#~9^ikVZ%p$ALU8{e&GK1|-*~wqy{CA7|RS8tZ?J#WY>?_~o@`h-(4%SFG1X6Ft;Np8gwW8n@AF26EwK^nfA5pDd;WRCEnn*z>!KE_Bp3$}O z>zR)F*dT$Kx^U40?#`+b(u-uG-_*v<&?zYr>rH~O!S{^XmP5Zq(j%=rg2WIeJ`~*z z4Bg*PQr}U#|KJCHyL~wXiGKxEr4>;yx}>kGjIl`N@qn6(%)lBI6)Er??~5fC5Tf}~)U}F#U z3_0%XqN;vGz|v`^FrGHf0*DbSiRsmPeie?6@6#89+GH7A!i~bmBqyjYe_>lZ^Glvr zGyLplT4#quFm!Uu*{j_T@`@p^^YG2Je}2LmGI*BD{T`Is?u2nBKzQC>PYYKdJ~|i#&1>u zw_3hs`sXxnGA=pE6k4hAu|5C0T!H#iM@AzJkF`yf1&3a)RU;XV@H+lqWUP*%270s$ z=i3CGU){%q$tr>jwM^+B^y^pcCV+x8wyx`o0%=idck!F`pB@^cs5##o0uc2l(>{ZWvShbfK!mkOCCX*) zd$ofql;=Ca6kndt|8Eug<058g{@42p4>>@aG{7eYh(nd$R1H+8Zslv8c_VGlit>?Q zZ`v@n-`O>ETcKXc&z6?QyJJb@<=x;!nlver0Jgs$eMNT-0t8=5pN_v}wA!GRQcEhU zc3sy&9)^$}O@d9=QoxvI2zmK|9Eo1#PUzWJW{2~}OVJf2q(H-6bTZr-+f?&ea{!y% zl+%ru7$*-y+~8Hv16q|#BFcDv6!|9h=voN!4Eh0umhaowrVv;@$WGSY%F&XLo+C55 z*^79BDc7IzY48Z@lTa67~>zMuLRx|}F#Bs2uz@2Zd)1}kpS`9X-q zCD#-_i>;R=1t7Hehy!)nod|MZG1XO1X~8n4Z1SNL#_ZTD^|bj&qw{Mx%YC_7(DqR}30nhLn?_Kzf zk8C{{pih`R|2dnGTQ;hc3vOgs&C-g#wxTnsPY4oQE1)@AcOEEsoz$Ok-2p|EPhweC zIK`iDkQ&X>lVkO@`UR5Wh3{uVu1HWKbV!YIqAMf_mS*!~@^Stc8@|~L2 zZ?muMiLNghFTED>!u?~92tig&Z{1gwunT<<_||CESm&J`W>1TM(sC4wmiqAX>N-G^S-6 zU|U;DBnjLBnGLMtw2|kzQ&WP(+aS*@R{7>`3W~%KEHQO%C8SAp7aE*)r+pp215$dO zLTCU-0$!VP=zG|KWK2XzGnY+n@x7_S@QQpxVra0<8?%XT^`Oi0go1FgYb^^neF8{Tip!oILIJMxS)yJHF8; zE2-OUo_dA3OZbrCHC|ZW%|8jnS45=x6=ECeaqSPU+D+D!e*phqw#XrBm%tgh7PF3+ z6x*7urlx>Xa*t0Or)WuhBLI9FXN~$iCPh;<99Zjo10R05S4^Zj72b8kdpSqZ!kSh{ zISo)-hH~h*`lT8)ybKn{VJH{{&iy&g&~hR_G7vAen|nK%P8#&f^KWnp4|}^ z>(X&h6gmQ&#-$K|a$*taWSSnm@CR=sj1HZNZmkvVVi`;hiqN96aDs3@{{X`te(C&6 z@nTksQM)4LoFhF^-l-5td-b@?3m}QWUJC+zQI$LTc_33dvo4ET?XQToW1A7sN`~33 zTgh|ay3f>(5S=DB3INj~8#I$1k!^v7sKBh~7vY^&7V+o}*ci1dH_#n{kH?$yk2=zi zT7jT%OhOSmf%J^*DCVCbpkj=%$C9zQVl6 zyI@s2RA6#><-_(c*da+JFCNy>0J0TRu%i#;cvn(=vH9m0)a=m)ZSbeyFZ;0$x+;ko z)p;)_UAkbNed^z~U6w%Yp)B9Cf_v`ZiiAZ>I1N43uX6nK)%|~XV_XBPtg?g2yr-ce z@7{^dhd&Q+L#u0krX3=IA^-<;i~Mj9J@?VakZYK9FthL~9*sO==@6c{T@pM6{SHO8 z{sX$YR2qMeY15+4*k~reW`2Rmg}=c*g#JXfpV(*&=!pLOd@mDQKY$$N@Vp8jSLF|} zyVX>uB$10rXFG`mW5QCBi+M2~!XyzzUy?(dAvSVPfSWLI0;%+MxgpZnhx+!vPBV1B zl{;bc*<*<&y^%U2S_QO%J0EJ)TJ4`_U+GTo*bfwio}1|1(n~MKs6}sr>->>^q$U7i?gzO z-e)TS-SO{0|EK4)F{z*2JC>&}_2bb2pp!Yq9)b**uTV<;{f|l$^^(@Zf&jT8ump+lx348)qm-_7fk=uPGKSYq?eh}0&tA2xT`uK&-T-4YJnSD~gBLxI0;6HG( zbI`A~sCuBg@g3$~r`lw}g5~A@We3Fq<01Z7; zpj-S@4NhNlPD!uQ{sGWvz~3yTMc>%?J}z2C(o+y0W(C4tn`{Uhmdp$gG*1_R{DJR* z2O*^Cnj*(?cT+>EldQ$(tq1JA%V>eH2uN@H>KRgy@t-AiNJCCQcvl^S#o9uj^08C0 zD?mH+`1H|h;=fpSi`PyhAU9I`P4%Fc@0UIDQ{0iZAoui4z&+gV(yR1@*GkzP+u-Ag z1unHwNJ*SksBao;(gC`Hw&2H$eZT=C??4w-_!Bs9P$jl~kzCQwUQ&1oX2*a$g(|gH zGjK|qf}=+i()3U70e7^i%AKtS{_a99XJAJY1NoJu4vdsQOP1&g%pDz2#xJB$cGX*| z0>I!)EvI&XGH#HoBoADlOgqJfc<0diE)ynK-Yur^J439d?1Is3?ff`NFA~sJ*+L3# z7F$L?X6o;ol!~OlKVC5HFu0`PyL%@lJ|4T__2nbzkJ_<-vl{z-_bO(@Ecxz}=|S`f zF1mXo$J%yv&|#)m@iQ>eGmQl+9pa`Rd@=c4H3|5UjZtYYTtI-K7_Z(LdFYV)=S$(# zKA5VC08_%i921Q-#g&nWmN)EfS(JSb$(feFC7-Gnhfz3qW!$?+580=IPp$xf$0`6^fUP4|Mi z$%)CcM=sG=yIPF!43z%+EKO;s4sdN^xL}nVyBmN`(39XiYJm;=wT=hR-k`JiE6n6# z1vJ+ZavMb-$#}3TDIPcY%SQxw+n{?K^k28J-MK&IMlD0rbk-WR{`6Qg4oncH8 zKr&{hl(RdR;?D0?h zx*PIe2l*FXPn8X%^E-U|e1uBDP$1?&<S&r#8qGVK0dL>`6o>cO5^UL z0^q~2bufq&f-0T6S(-dN(x91f^uoJ4zIa@*B3{%YoDdIQ$*b$%pZ_uk-ky2j;C(zU z0N7_|P9`gu`g5m0%mJ~7Wb@#o24W-$$;1nkZ(n?&^4SEnkP}X74W^vmU$1U@S=`>1C%JL!9|mTsMsA;4z>MV_Y}Xg%d}0uh5{vyLk_ z10?m3vWWJqER#b&Z@KdSyfv<=eg3;tp3dd^xlfSUX}vGJvSld&9|3FSW#=N&@g-L5 zD={#dXBtO;oA_nL;34B}A~W3gPD;s@$4h3Cp6g%KfQ9r9tjACA1p7{g5j$xyZVK1^ z&$>{iL=NhhiK(6F-{CIMF0<2VbiX^R8ldqbX+Vy66EC}f0)E1Qc$pVA$5l8R(?>1R z>2QV?mv1lW6t}BhTDduwe`PzPRWsjgFBEkaK4`e7qywmq|Ml(5f9b;|Cte|a#s5~^ zh!-MFD!SYE;Q&?tU!ICYaJlDKLH7Xe*7wW}%FyAV<@9yDJ^4=mdF zz#^&qC4X8)u#r0^Zv^!6Izf9b>5i{3SEOtGpoeAWrZakhqXVY?qF z`CE!ClV2^^-1Wm<3)1X07fhddFTK{Fr1ujbr9jl#^CLg&n2sN-r~Sqvx##Qmb|4c)Px`0 z)gQkp$Y(J9*T>~@B1r9H+X{T>?uY9qdIDre40w;{sAvr%bLfW8xQ=~V8v2MWmT6sJ zc)WNh2T)o059uW>_cpXW58Wn|DICds0F!S*^i7#!iR^-^+_%=v`uTi0j9(WTjAFpj zjsq%X7uTnMpYz7mx2&-K|9Q?6Ceiv-gMvSyR=Ts?YR>Fp15x{8fQswn>UKm^r4lCF z4{sqnu%dH!Hoq=pPy2^@)c=8Drl(!pC7NY4qqvZpcPSjrPC$=&;{SZiFYnQ|Ned27 zu(pYg<^ZCkX^`09!z-XtQl1B*^T&wj%CL!xFAf0cOa#KJGMf!{flyy_@lkV*_lEZ? zEuaeF5npL!so{Oh4)BDCYpC8WEhT|qyLhk(2PapMkoP_o$WPZeR@Z^($!vMZ=fIWH zUzRM=;r1WUd5Yvd8EFENfYF?13&AYT4_LO|3$JO^K!ytb8EqH%+fa{mFYWgI2Q|1^dIPurA9{T?Lxej1_=TxF?%;bD}omK9( z{lhK;=f0ZVzfV&NVS>+)wP04-E3YTMA}|k$c&j`{-S1D{dt9uBl52*&3_D^^Tq3`U!=GrvB8E##6=>eCP~P;0dJ9nr$P~ThFtM-3wHV_ZQ!IS{&j|BxEXq5 z1GX6QWm=%D#nXerIaP0)9%XAx_BIb)XANfK9Ri63HCh3CMS^2MXDPrQMJ@gNU@hk| zEHMFm$Zvgj%kWPzpFat#MgJ9)+1_*#Xtp^$q(SzzT{1 zL(iM8>12v#zTu*dUY*Q!qXZa=!yR>`e|+|+rul-3DSfK1X8oky>s zWPV|QJ-U`fwCeGTFhbgL5(pQ6=?YTEZ?E}M`5?M##lDQQE8 zp_~V9y+==fCV?`i1Ec|4uH7r#2EMAoBBKvy_Sir?nPMafuzS;QHrDe;jucu+ZVOG5 z!22i`)aOIk17HVvMk*#gom;>bgAXGf^t-a>g_cFR2F;kcy!i_oE@*|(J8@9qxwF;2 zs}>-@#iIl0OyU?cCzAa7VHUDapKt{|C5}g=D)7(F)M%7B5&UX``%u4yel7KLsfL?9 zkpLAu-L%cJm?$azU7O#3UUU<|_jrA{EKmn)V?zL4xt}c7(?g`hW9I~r7C2SF5-gj! z`Ye#!CKFto+P;vc;;#Crmo)a2MLR?SrTxf@SNucXC8(FXhI+2wiTh#jRKlfV(qcWe z`?XX)D)GIxF>@PmHxNS+_wsY~cPSu{)q7Yr=~%byHc|u&6YA@(qrx)+h(vZ4^*V~6FFbGVrVM8X;aXb!q9&7FJrK@#l7d$n>r$705lyfE70f-CI zbr8~W1%-Z^f3Pz50T_MGCTdyxV+cwoGC`_NJqqs_jr}I;{K@tyQg>Ml8OJGFA0mNV z6G2{hPt=8NK-q3qzg8FZ4{A*E*fdAR)brcOu$b(pT&;*Gp z5%mYZ=M@{vZAHA@=h+-!nwtD^DFP`}+Y6|LD++^Ej$1HS%2ynMkY}ffD8(=O@2-GZ&31ABQ=Y|fAbLL2#%Drx(eGZ0W(QEkn1dmZ0DNuF z1%*pwmb8D-SzH5C3zY)PjE=_-hIsq6!S}SM1?62AV16>rc*dol=)OPl>HRn~RNJS2 zIzpj|YLE>A0!{Sp1{y7G>nocj4LEL4wz~e+mt3fZZwc`=yAMv9158=F17U`Ti_rkE z+q8_7bZx!yw`;Vjo0p1Do}nsuIc5B?(q#@0?p(Q7#UhD%UVScw1>|SVb>;y-uBdIi zqUsD~FyJ9a@y0l#+wEM0>6iF}tP3?96(&4y%g4_}>2^V2!d8_UENdGY+}sj*@lNf@ z!vh!^|4c4UH5#xKXNk7eYo-iei&wqik?#t*Cd6v-ddTs<)GZJ`vmx#>>6&3BcHqL` zqy8fX0dA2|PI(JqhRcraJGZlm58r%S;gLwx#|gE;@cl;1g4-9dzmoDu1v)3s_<>7y z%8!TZVbr0p-p3D#$~z%{vCyCmP$l5WboL25!7TLL8tUOPeW~XQY8K}N@Lrm3FmPfS zwh{Phg96&aYw>zAv6}!VD`pG-&b3-YJn7xD2Bzwdl)djD4%=Y8h@b)F?p!%|g^hK- z{c|P$bRy90#?J0Cg&T~sd?V3tkR-m5XhjIZzoOsLW|Q=`&IeW3xl{vLnp$93zJ>%#Ju}M!c3TONadgc;_L?w$|qU!U1M4$7|E>L}!QKVzvV= zo8;f#KmeP?nKy4NSj6Wrj2Z|S!nLSXYNGsm5m9CwS7xYii<)@v76z56ubl;jkhWo+C>2pZ~&H>wkt5q`s)3q%&T0}n_(-P-v%^yun z@Uw}eogicmR=|-+*Wtd6QptAigx@~@8up&3hMxm@F+umP`>1o>0_&+(@$#PcXMRn| z>*q3vzcevFe-VSF)?*UBd_;5H4-};1RB5nD`AunBq;jT_f-!)v?AbJ-4BH6c)Q1&$sLnqa8Of?h61ksN2atLh-YZmYt? zuhJVyb^KW&6X1wZBP~*Y28AcEC)xZ#Eq(RI1^tOuZ-caZ^lwzmlG=iqxLq1~R0Rr^ z89Il5H4Leomg9BV)D#W`;kl~XZ$>-mlnbbtOTStZZC+ep%> z7Yo6*GgeqYc5)P{T9?@AI==znKpFG0n(C|>`Yp8ZhtEO2IiL~xNj%G=TMcU`<$rj! z{1cj=yhhE!>Z8Isb7_IGI2c)(KahM3P}*qS4q?~i4;6#eo<^pcZ!rt}#qH9r%J+%A zZb67$E9ew>rk&CaFKJ(M_5OV`?G*d?aHU%3wgDIS$jaO-`6#_Q6|G}iv~p{kGi zS@!ZugL}!eD=0gomzyf{^!BKxWw`oFAMAI|j|+}p(%BBeI3$~{fg)XInVl5Gjze*f z!sAx>SC*d-TBF*qfm(+7i9Ps!Oo0M1UxKX7JpE~>o994vO9h3vFvljo3Tr5c$H95Y z?-iS{h)_IJacN?3o;FAW<;lXE7N$nXs6_b6X^dL#wYfR1i;G&j^A=c_r2?NtEsM_S zRr!;gsh>m-FZ31DX4Gt2wx+~tl}xSpmWaMrZ@{UM)l zTRaCf8^cf;P6Pss!YSL%@uqd;iVQE+6$M|$bc#tsq0W}iD*Y7`$%%4x98eb)%@40= z?|;M?h+iH;G_EqIozSVcaZGY zn%{3ld69XYlS>u4!ro;~mTlDRZt0E@Z)mtf_LeU<* zs%-Iq1X?fe&$9+LW5f%5olP?#Hy|fdKiCRvZGNrLj(Z4D7?G+A(9XBoo99o>hGXpm zpSK+1a0$FI`Ls)JX~dft(kcp$X@KB(YF%rO;hEF^jc9FOHP3sJ+I@jMDDOJggh|0} zi(%Lag_~)mk8$m9b2RiTr>%!;s?H-)e2-T7Q`1QRHL2t5sVv>OJyY>CoB?s>PwEWR zE`NUFQLoTgq1ec6)s#Q{I-gh_SNov`>y}Of-`riM!F`ZLYqU+KNww#A=VH}A1dum zkNJ#MI}`M}&COL-ON-cKuT7H;TCjJ7zQG=fSR)Aou(2(h3g>9_oC(>YwV*$3U2(0z z;(jg)Jv`0K^!fJ$^UntKo4e;-iKd@-lHn`|75F{43NTwCxnz)e{oPA7qbvLpghj+k zc^xcC{w)TR-^;I~T+m<&pB-!7D&E~HlmY^CjgGPuXt%x^Xg212*3AdxuIg)E8BOU2l?3x z6PX%S9gokTKz*(MT>~EUVFc=uSKLXgaAENZ$imK@esfVcPD<{f_4%EPYqZvN09~)N zbF$3|$|Pdk2otfebIlsaEAv2WxBmI!#|vDkQgPPG^WEr@=#(nDY^W4(r-@4h)Nn;P z#+~a%0iV9HPoDP$E1^3VVi6(*AJ%}Y(-Io!5IEJ-!0Iw%v{Nu&jM&vX>`fSjq6g^A z$Np_skXMiC3f1!%MjaMjXPt|Idv3~ndD_+s2-Lg;>NDY)HLg@W7YJW^saX6R=gnQxK&@|j@Qn^gdb@OqMcgT zgvQebPNHi~ooO%l&M`lmzrh|w?_>PLjvOuan;QD()WJ{U=mcQ+Qshc0RC1V=h>=sr z6I&jL_v!m{ma-LHXKl;s+jk>qjBOcih)$D3Vj7o}9*}$Xb7HqrB-#QlDnC@$n}4@KP9 zZtRlPaHEHK4WcoPJyO<}!I)C2LhgQxYM-_x7MNjd<6RxUC0`4ax?;i-*q1%mEuUlv z%ngt4*hIrdRs-a?sHr1t?ugPlOwQe4!Jm$-&)~6<02FN)p(}2QlK0Y1KDd;@<2Q^GcY_H@bcGFxYwSYcOPuC ztTjQqHlPO#9iMH4}8I_NCvbXbISZ9x4OXl{E&d|Q%ida{!8D~ORwrlw_m4D zGX8_u$$o2_nbk2~||;XCJT@F6J`tMraKW+x&LL8BrEl{ccxo^sI9pSvq^ zOQ_Xe)kW%cuYmhIrzaKsxsRw`j1-y&GbJhGK%4s#DraKZRphy{{V3W4>L_PLRW4}F z_q#MmM!6+Dh_ZE^2w|O?{X76VWRqT59>u-BzpPKdr2^&y3?evb=T&#kR6V;gp4vA} z?-CMB0Ub0g-?7Q(h0jX_`d4+ci&E*bhV`Yd+JEl|Yo9IXGEl`FpTG)6;iKRYz13|8 z-vkgV$0m)qj1|puqMO{NglPGND3#B4W&h2I<{1RWeY@A-LHh`3EGFr?tSxkD?D~lC z@v7VU&`C=K9lN$i2EO)Ni;MJac`j*?TEI+or$8Qr1vpq8))Hg%Jv;Q z1!rD^)3#zA4J#U)T%!-RUC-gBgoz`K^^{(t{A!7pHBOP0cKOqG%eBv{QkY1p!T$69 z60{j_n*67Yxc^@EfBi?H+dEyS-44}x^RQ8*-!X_Ks-&u#LMPoi<%XTauhlsH~X zp6)$;b_eQldCdyHXLl?j;#AMv2xyQ$5mS|T3ut-CNO}(Bfqw zuu{`D-BA|b11-YUy4y-;z#w0YgvUr?M}iTBNoBu&Vp;}&z$9%#6-nJ?vHMlo$``Df zsI=wo9i@Ff*BoA+m8N`JAaT_L>`l~&+T7Eb1FI;Cz;<=rzMI8aOl>sbMzoG!Pa|J^ zsei?lwC4px0oF!ZA1xUmH1N8!K-EW3b!D)&=`X|{#n#`ujTf!n>$4fuGblSL7J&@- zz7IRtLQ!hu!0>INxpnIdj!A25`IhXL(&9MIV@c|7nJ$_?trODp8l0_*zP+@9jz&f#ekqW7WRHkRP#-vQ-+xF1vv+*DYuk;lN9vZgQ8V>Y=**!lUcL3 zqjFoyesi@b2x>>p8u34K2GR=m1Lpw0XSi4tv5}e$oVw!wJau5x%DC?|5J_klQ{-+@ zjwL4Ng3h;o1L$;4Bt5O8F`Bheiv4z0_|YT1s5?7g<-lxwT-=5z=*`#>II|=I_L0hC z1$8?4mGJwS6oJjBm>K@fs(1 z+P3u9kOmRe3S(Ck$nV)argyrp!6!Y^rbRapEm+mtq$3>07bt`VlrSZC2jw-CBJXH| z;hw{^D2RDtUXC)U=Y+wBLrww(^)CNp8u^QXS=+8bxvXVJ%3@&je%MSw{FBttQ)GMl zS*8AIfgjJ8oZS=_0E$ZzEUYn{Rpkim(>}QKh(p#B9kdUFa@K=f%wT4GWX;(b3HC}Y9k(A?%VhfSdw7yvjff@w07^M;?LHqqY`5S=>#^d!>5 zQ`UM3Shf)s^T>u;S?J`wCmR54$27KT1yM%sx8$^UxZ6O<#c6ql=V+0)PUF-h-xI*$ zn`JBD?dduycsc4511@oz*wn;!lD05%0Wf2&ktz)9Ky0IFXct)gL-j+je~QzD`f>9| z!yP~fVv{&Zd)mE}>i$PgPXoO)ZJ63e{mTcS0s3)7zEi4yD(ZY{~1eNFU3}iDPvVnSv-Dc>8C# zW_JMEi31G5jMXb|V1SGx4%&+~RHubf`MrY~7Q( z`mQQ1Zb8H#sVab~W?FC^4kHecqvCrez{l5_dc!|=_XoNh#4S#_71_$wC64o5 z{|mkgl@WfYs6f@mPGY;F5`7rS#b=+hV*4y*81ZhDj9x(nd_%c>(6FQMeOBCKd%;d(^G8~#&OmbbP&til|GZQ35iC#H=JIeP0Ek7@27wk zuq~1IGezjxt}%iNBM5&dfIJ_`2VX0geOZqeN?}+lc&YUA9~nST!qJz_({4|c7quE; zDP;bM#~!n>4|f;0EILr-ZA9A>$myMFLsAxKdd^3l@ij&?ay2V}HWQ?varUnrdl=dp zCI0V;Y5eaKgS$@9wIN<{CF=%(7D|;0x%bq(k}K$Kg8F+b8R~83rG>wlvrHpeI&aPaXp`v~esUjj98D09>Q)Mw)EObi^ ztzAH|d{U*XP)Ao0idc=bq^5p%PQ5%LdHB?;Pc}nC5Urg-^4!JHV@*I6mnWB|Htyo# z+`IJ@QFfyYTs!e#Ys`RG5Q-A41?2>ea6aBbejFJw1UuWAYjO7zVR94xrY^ z-7W#m_QmPk7u$0GW`TB8m86KQ_mP9huwLXS7>sr*pS)t#=mibUfqbz*RoG3`QM!l- zCb;ZL`8<~#%(KFfc9a|RCt^3CQ)Aguz(1e;4G~!IFlQgu2!=?+QUVZZ_3UjB_-5og?HwXW zzsm}W?C9Fs(>C1Xq<+22}1F;O4*+7N$5fwIye5{YZL#Am({gwrS zZbPnt7q@Cbc)mP07(ggm5&3SB*?g5&*e+56_D~jG6kG#hq_ylZ35dfk&&;m=eXzLg zzjw-vkEH0e=V5DwfZl{EnpvH}+z0*T5IachJVAxBVEaxvL+fxqOL6v6)!jeF9A_2m#O0sv-@cYgl9eyV>)}r~cR%fiMdv+Ae z56lY%jx?#IJ=i+>>a}PTp)b_w;jikXoAEZXYep=-M!pr@C4C6lhF_QN&S*auF%~wV z$4z2O`2!LvWQg3vEe!c`FqQw9v&BB8;%1d0} zYoW~?sV}b8FTh_*q*uaT|MB&^`f(b13V2}?0Q4(!vAR3lYXJ7X-r#rJFr;L=k841R zaN)>VOdHDn8JgqY6ZGoU<}hwA#c~g^cbVqz%vX>9}v67<(mDz{quG3&?* zVX68bbe|r26d^$=#igLMv51J?InGtiK9@3v`b6m2GU(VjY3iOm0JnE}@_oU;KIbYiBM&pV5>(HZ!zIbRVcK-h{+aWe|AS|2h<3t=|)h0U!d!YEibXvJ`%au<9|~ zvd2WDvbzP$IgcQbOm#i`AaLlLm)3Ee?y0>YZ+&kRckq5EmK_JbqGa7K+UYoGdtpuu zlK>6X2BD#vZpnTtW%2^Wj{4b_0#abplh1EcIkgy!l|9d#>2o)p23wsvfQ#Ij!w0tz z>t1BU@(AiggIz^#xlA56{#feecKV!3xdtglIDUh+yPrd!=P!Y}t9`i9r?Lohp`s${WBRbX4-$Jm`(N z$-%*tv=a>8Z8z@JbP2_Rucf@U>${k$dfLzjd{#euxM<}v&o0pG2yjL^mrY7AB|zf% zS}O((Gu&WSiA^*-g?f-DMA$-sPIboQup-6&(l$>xEXpSBeF0tDHjuhxz*wdX?6vPS zAOE;``K`K=zoGzH`S8^NI~hTh^j!MSlf38}7}L@43L}q|7=m z%R{N$nf=qp0_9^}m(HY9gg4rLxZgLUsFu5h$W*ndU$M`bsdf@w^=$^3oTIE@uW!Q> zByJB;Dy#%rWni>bDX~Vr9#2kphxw;$S|UKIM?J?13f96}E6lhufj$j~knB15khR;! zvRuk+C2t&ret57kuY3!Mq0gG%09>8@ z2!bLI+Nu9zb(L%c1E9tq!ICq4$tiK#mA%7l2_;1Qo6RA3{I=>`w$oP(pY<#QLf_ zwf~^!f@dEP5z$zOD(l|^v$_#}iboLCmM}2QY|DrDYt6dJDfWU2-(f@Y(5yVBC7l)ctO*(y`}d5KN-czi%@1>F@?*sHu+bQ}5DBw+76jmL96*zr z9b1_u^sekd2>e=Z5YfoItnT?_Y8xKA66n17$9dDKP0(a~4$4N4;Fu|UJ}sBZkopwv z<-kE`^&N+T`;%KrFMoPTTt)oYNw)U72u>BULv|u#R zCY?ihCw}AdIMBD|e}^a#;H`HS>*ZMlvk@^!90_imvUu~?9P4us<5WlHaimz~cv&0v z$Sn7BVhL?K2z~22CsXiQ8ZSX|$WiX;t~>{`BxJ3>5!s{40hJ?RXTeCiSu zkW6^ev--C?iC~L(V=1bNtr_m}%kwXGPJbea0oJ0!n)Cs9 zokB*R*3(7W0&RU!wHlHtG2nHj*0rwht %qpt>)W__o7C|+P2$EmTdv`bp#TigCb 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Ν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
#nq8mD3@zh1a0@lG7B?L_B^P{$0 z#Ajfi&a9SBVK!Z)obWUh&_^v$4Fa-w=`@L8mMtyc+@TLn^>XuAv7SO6X4&Qxz^l6O zjf*Pvr7^$g4RWp?t~8a*?r%AS)ynv4Ih5c-SP#Tsinwi0W}!&u9tkMu0)ymVzd5KL zd;IcxD*qF4;%vl6kM*t`r*}JE@Zug>Ly=|1TY)?r}d07C~D6q9Gc0MYZI$0Vi_J)wE^cYB2=J8nX^PpYy(i z{!V+O(IAAQiUW_E;olFtU3_MF<2<$q2jKj4f&6IUTHv7x@nfYet|z;J6IvQ_dY8@? zr}<`*H6AcNj`X;tCc5%-{mZukC^_|*>?r@!)z6N3(yXUW=*y6^wv${Jhs3EhG4WfO zv;wS>8Bdfe_*B>KFHw!AX#Kgj}?LGOSju6agDM+4VsJCto7w_v*YdOm~W{*s-jpEH{%HW6+OtO}v_C?3C> zP5;P!#TDjSut698r2{~QS3!hjd#(Mut6R4~H@7`%>PeDnLOz9KOv=c-)#OADNu_`G zTmu$+kaB(mdFLe|yWM@~Bj}xZ!SnSA@?20J+Wy}k50?H@Y*^FRhgw*F7~zLRQQMi} zcA&=Xf|yv&uBRyi!P?|AhhXBB=ihwyzU%mQm?qyBc7Xtvu|Q*rUIBWFw@3$ybouvg zV2b@V4s^4^QTdR(dkQP(weLq`1v(~1Y#NQPF_~8a>AD@)U~n@>gkXrwO1KA5NP|!hP<&B82NOi$J^k%` z1+oyof*ED~(jB>}!A~+0rOkFSHTfrAYW%-l<@j(!o>We|9Lxl4Y^ z%8#0}Ky{(b8_LtH1g%N@y>s!%=6VRPd=`|{cHCGEN! z7SBGiASGzjP9F~>guqU0b>tWq&*?vdHpVVC0~B-5MI|(cUhlpQWRU^7=bC+xP4jpi z!jEltT9W!@?%_`_DFPw8qfW4Rw?H)I*JFb~3-vzki*3JDw55qWw%B9AG6@7q5DIyy zwJCqRJt|5zntP-0V0UGV#{I~a;jbn6TQ*PZ{PZYw-&w)DR>7dL96JqOTI!}r?HVeX zFul{1iuLTm9c<)R5svc9DnfL-^S1|Y`_mjNB1%aFshvEts=GI{bJnalT8Cg>-cbg# zUpEBaKg=Oj?B}&Tvyt|>(;`kCsSR-Ak`6>wF7jQ8#lrBb_ADh06o?(MqWho&`UDr~ zVYxCFITxJ`$+RJ7oxo3!Wa)OyPuDLqa(d=z!?u1#e1aS@Mt<7(`rsnLXBL)C2>1q@F_k3; zgS@jxOo50_0P2fgz8~jOTeQz|I%qiQyWd)J@aiIYNxC0`^nt*i{X1@|0`sk&1mWGi zC>>Jx(SA7~)t-*147v#NwZkJx{vH{6JHM3xLW9>VOop&{6RvqoA)sgvOi1SvzubI_ zB__yQ+-t-)j*`Cj;9SZFVM4`P6XActVT)zoR|tu}a=5lnu%5c3Cps&N(dE8<3Xbrx zmS`e3y=S^pOmY#&qitJI$5*m2`Alv;TL1j0z67D#heblqlgxy75!yrKxrS*7Q_Qd=GY_amXcQVC)OKwkzXX+K-*m@42iq&1 zPu~BLACo)(%Zo9$$vj$GVw~0LhF4xbE6(r2wLJBYbQz6T17_7(?@f$M?mRb)sM-Mc zfWpwZDbHu%=A}SZe!#4lT&?L*_~Us(!Dr!QOe1WcdQ&Qm|MD*2WY?RFfd%4<9ZiK_ z!7p&LdXSVsTm@jac83wKhFS-Y;xDV<8bSlRsB3K2w5CGK_mKM7QroC!M1j)IL@%}jO4%j-}B6Tx9fA1-<$+f4}0-wHN zPgZH@b1)3U1~Ejp;1TcI-(hcBex5Qx?u0uKzbw`zDk4}fA~O#1y|zDq0e4xbkTMPL z>S^DdKKie$WcHgEFL&cn3IrbQ9j~0$^{JR{eDa0$pGm`oq-V3u-v6Fl{*NE%1b}gt zkL2iCLCPD&FU8JUDiLhDVS#h-(Qs+<;FFd7F+3w+FpjJ*OIvprx8Z4}(P2ls0MJZ* zbzw6U1fIPs8ZnwJS6Y&?0$m1^IaxPm3v9TvDj9o99LEXzUHD?-v8UUpuJ{wiurr(W zDk?^;EJDwW1UB<;<8Kq@PI{B{C+ACvRGPrVP#+n%ka@~=`8ZW?Z>-7@2F6uzkS+HY z_VJv~IHmfc;LTQh3%zk^iiwp+M{Ztu2snib5z365LPYnX~U>Gm-*lZ zlUyAsR1Hp;W;v#PlY<&1Fc-jH1ju6zfzxX4R8NJ_~w-G-v<9wFaxKqR4ekd~fTC+$US`eY9 z0vQ{`kH~}2-ls+1d#$ZED7#1Mc4fAgbdcjp9qb-Wl6GM z(pktp13G__Sp5Js@y)>>rM*hQlWmvI42I$|5*J@gxsM3Fu3QVE_2NCZ*euOD{(8e8 zv!4;awQMYx!0O{ZyAXv)A#BZ{*9aIrWK#&rE&@+MA$ki|QYpX524l0YCIk6cEO6fB zv&f#82#XPIj|QfVn)M1<4xk1}z@Bjp$% z54+@*dd@CwuoMLI#vbL{>J-;>`0w+d`$}ZP31CHJ*_CNB6M72aJ zm7&R0=7=PeA=6sPlqm|yxF|)LLu6X!dCHujm3f}WHQ(>6J$(1?e!lzu<9?p!I2`-f zdmnpOTY`t3eMRa(McrmOUL8%R2Omjr0Zed0Zq(IPzNzKojj?ZR>T zJSv#Vsys+p9(pOskr-%8XY@0ZwexM;V` zIDKv#)|i;zh|%0TO+I}@xeHZQjV(-|y@<5Y8`S!_aejg_0M0b)Ol9dk)f5CM(;;Hv zabqCPhlHE@;maPdf;C;kJMjA)*b|BN{s!g-W*)BpPKT~Mh!Bki7vN5{qFf558tsdo zp7&3~y*xz|buL}kGb5?KbzjPeLw_IsJoNFdezWDYllwTmioJ=W#UK8>4{IrBXRPq< z^{D=Z+ga5%?rnzU`%YqcztGB>v~Q>4*kZA4mROTq)H%3XKOF4)9Tf}^P^B-*V_d@V zCdaou7;B6i1Hbq;7C*RO(c)hu#|_*2$FtXVi5%9HhXtGy+~__<*UcALO43MB5#~%XItP$znH7$Ez0mLO7F0N6&vT)W^~OLu4}#2Ij{Q|S zxl?ZRyeNT^GSDg@?;Q74bSvXe{DQZHkW#0K%-U`BW`~CG>0pD@&DnAZPoNz4%YtEV zIg(>gN1ey4D-6e-d|PyDZ?S0;qOF=MAwODOJ0xB|h0GBNNwG0Lq&98!4 zZMu{BYMYGRX7rC2ThG`rEPxn!hd6wIOPLrKg2btSB0B*y6fah<#ZgAbGuNgoe7+h2 z^Y3TmPKR-j<68FVc=0TjE23q%IYu#P@2`IyA^jXW7^2!}zAM-qg;t)?@!nAK zyG3@e7fkXTqWi8GdTGz3JhXo!dz~5N#D*4BK82qSwk`K5lA`?tNX86h+Y2-;eRUQKj=b(HAUb^d z@13!SCL)d;!q1b0vw~AvHZ&$EDiahlm^)ces!Am2t&4_>gmpa!l4`y?u}TLoYTVlW zZke9B8w~JKbmex9nje=?R+KJTs%az2Cl#AqK=EnDS3kgpIJxz*6DS!P!X@yYX50Ds z!N=c2nbk_oFE8b!X}6QGdNHQW_>bRO?#~|5yb^y)DzXZxH0)U|6JB?lcF%rCohPQiUI;K$*}o|njJFirbMuOG?zGV&mNW)M;H#tspzmu9n7~VZ4L2z zO*ybm^1Lh|6SAH^wCC=OIosCtfp&lQ=FRin|6Ps*E zjFYYea-8nNtg4wO%;7MHMo*hwM7PG?VqStCK$7HONkwvpv<#fhtmYvXGh3;q_f^PB zJ5gB8h=qpmBD9!!T{;w!u~DDE$e?gepdK`{1UHCi{@Q#`y#70pKIn^*;b;y1kg2-K z>uZATl7M>YlTJb3eXnEUT#;1b-~6u2mr0hsU=b(3vvHz%<0YrqaT^(+p4&EyzNJOW zl8~YyWPMjoX@mRL1s(-F4lkIuO$nsi6PMHQhb_)6@)VXJ1@7Fl%1=pgy|xTuL+jxg zZdFEywj`%YuLWUK*Oceq3YD)E{0tFz^-!q8@ER@lxTXt)GyDks&b2>9CF;HP)xONK zQw>nPc?>Zs^<{*R+Nqc;efd=bnl)6+c58e<=mT8cJ8B*;<%`Mff1V!|qNPH5i3LTu zULz223Uqg}#PK|x^^*o&*O(>EX#reo>P|^B8>U)rl54qu7CcN)>q#94KtS_J1Cn## z(#^{DqQ&S|nyc^#A$6mW0x~CM61z%Udb9ZwW4(QT19KP&gSMh8t)`;)vY3aX-cEUg zH|XN@Ts^E@nhD~?D{bcRin?~t%URh;N};H7o2iSb*e+)FRrF%d_l-5IJDDIjOvtLH z?_(@F{6F;ve=b=)ULFjQ#fa=$)Taxr{mCR_j>YeY#CF=P2jTMv8$cVaO<6D20&UhK zLyTnC{1x66FrcGnyaKU4V|1V**sXo9*^6IQ14OTH$u#P-7+!MBFd)(S)f&^>Mh>ck zh>(Typ7$>}{b_z})$?{>dTWDl8}_On?-WiL`XyUyvgf+p18Tj89QmSlR{n>o%*b0`AhN$ zn7+6jg3YUv!-NqH()XeQO#B5XncvZa|4jJ5bMQ(azAG z-g@sct#i;`!Co$bM|f51Lt@cA7E9IqdxJ;k1a~m|q_^3LJ}&<-muRv%(e-n}G$z}1 z;QQn0A^6D=lXh>tQl>ut5d#2~w{WG(o|lJYy(e%}3(um|eJhW?($op@T{q+6KH6ZZ z?{ZyJ&)^P_{TdOrVDWEgnf#1A?uBL)#_$%QnIdZ3X11fn4LL>AE1r0{Dk|Lf{5fjj zU!&iA?cE$BefD9`3G!v!y_5#nc%)Gm{O~>OgNC5A+QO+@PTR1pu89}X4G~_?Csm`h z$b)egNig6z>~Ql9N2(Vg0^buMN(y?clygRzeEX|_L_2*C*5qzBx7WLeNVJ)GTcWCD zQ35}#?ogZ{vsapGc}LJFK)=W1OmYYgjm+{T&IA-v9~-QYuO@Bo7j36Mrm|1cE%N-A z+8yt@f8X#8!@-Yb#+{tOISEL(nG9B*Bm*BQn>y8HBBLhNEMCfvMMkgoKnV+SOJ*UEZNv}*hJ_vn^Zd?_Fjl?*QPeJYso^#M4$Y{6c3rMA%kQReY=L&w#*j~AUWr&45<3uVCf^B(#?kAu13QoJTg5m0KXH>a5LhMYi;HFdbWAf zNd%7nfH~JT&wzuig5(K_B>PYDfUONB3)(YQ&-Qx>G;mo)8A5osUt|a+T5ieXqSHjZ zOnz^yj*BH_S$=PUa+_FV0Y%mKka%iTQrM*Qlez3u-FMsL7`AV&0g;1jj96L|5YqyX zSWVUamh}2AwC#m)oI00?03epQcB;7DO*rE&pKz!83pYnutoaq($xlv6-v)j78-e5> zr{h~HCqJhNuiTi(6UItQJEP#k`f`$#f7$nLA6M~C4TYtQ4gUAEg&_P-!R>?R`IOK4 zeU+W9+{BW7PEaw9>u(qt8DM1j03)kkN@5b~Z{n2Zcdu9Ool^oH!~iC7R5-_Qg6ZHR z-TDaZ8`p%Eh846jwQbGp8SCsgXsp<_O(#mQJ<(} zG>bL%m(~xGR8Zc|n{N!Ju*FAo?#bKp8lk?N)L~6G`)+IW3#2O@zuYcUQm$Yh8by5s z#M#Gh4fkh-p=jI_xiM`>cj2s09k{o8ob`m5w{X^k1ynwwePw0C2N{xII^2|2o)T~b z(SmcK#pS{etdeoEtg?-;8I>`I_U>8NJr;|e2o$Ai!4OA#d*p-==7YWiDPgco70gKa z38%K7e*+o?;jAO9BMXX0!a^fne$=NpZ0zzX7(p{#vbKRc(pBp5$YuU>+8pXkF5m|^ zC7PP~++8Rrp{N^m;pWF{l1Thj(Uo-A)fcjVdnE7t)(yt`Wac}pIoz8 zpN;Ds=?W9i&dKy{J_hxnErZ~!wgvSQS>2hS0Xm&R0gej~SJ!U_t|`PA-Q}@Yi0H&| zpp=Pz3YOYLgU94yOLGT&l{>DR{3H=!Wv(#Dt>F#g0Yn0H9p!LP~x6I(Ij2#e-Un=35=_37<>=_2pJ5F^@7$nnMiwG!;2DPFdYv4K+8XDuy_91Wv%P!IxWx`c;-e6st(h#a1 z{~5W_zD!97Ju?t-f(Z#PC1=SGJF~WB5Y~RmjY_QIVT|G$n#UwpJgR;1Ur{#=bLf2S zEobszr!EVuuEuzMgbuJAxGVrtg!6wMxIRLW%VY3inS*gZN3xCKLvM)4Xfxx`j))NY(-1)$T1A~q#W+&PF zU2XLC-H(@I-C<{)#~9E|FIhF5*a*5HmP0qVO=I&zNPe&|=y95I0Gs!=S*Ec4PLGE} zWw9L7- zYAGpR`soP&4bC21YobUw$3o`72u?dyVb{S5j=l$8R$7EDIngkXvKuBG!qhvG*oi_~ zg8ve~Jl(%&cM8?xj@dNu+3_&&i*9kBd$J&Z+Tz#5`(PPFj}>107EIkcypG#FBY+>$ za{P`FH^WB`X>Wfn`mr{`#RH=fuyw3DeeQFJA{;WWn@9F0pdpy234B_N)~Lg5`wSEd z_TK2S+%9~?WZd@p{TMqR4_ghs+tSLUIoku?XT-0WFop-WjAESB{gVnMUMR2Q_r^SJOT2nOa~gMD5M}@J@mVP0rM`CLrmJuF?;n(iyj4Jm1j~lGYQdm}XW<}keL_T_vERN|I1StwPB&#&T ztluuff_}BJ;dY(}EXn=xmfbKSJc^766_62O8?Voq(D~Ja!)EE|5@L%(lJ>ki8SClJ5)6BJtDoQ74M_HAfSwpm7HIlnq6Z#3#QqVc7}E;6ai&IfbDpamYrD zDz29NBWBm=4H)!g-jUDCM&D^p6B|wd1{*BtN}g0O(&O*(Vg@Az(Pw@f!ZDlsjj z`FVIMTSp(~_9FS?Y#1JDm$$nPUDV<1$>p_-OR|5v#NAQ#%dmzLQS(uK9?^h%nieLk zG`BzEU7dX3a$dU88^bYKG!%+GoO(_`K1;M4MO*MSrxC{^?znn~d}w*6R2NaOrS;c> zuj~zpvB*16Jg})ZKdV2cQSfAY-htK)2s(C~xJpuSI=D0?txp@+ssiEy@BITshZDMJ z<19IT&UXWrx*es14+>lXYMXupl5V+eaE^e-pIU>mw|8!BuGh~YLm}@ER9M+@Va?y5 zu=1~KQvVmAFn{FIf%U)f5%rklS3)iVU*U$%H7?t~gNTeVJlM8m+TQ9=Wmce+!nF<)EY5{|?kt@Q#oBvZZ!wL-mhLP~o3m)-_xUxXGy1sPiD!=lCNwd)27 z8MB(u?6<}!0@ddRb}Hx%qS1k2X-(obs6g0d5Vg#_JxcZ>Id&>xyds1I;uPdWMV+J4 zrPu9o+vXkU4W}}i-ptZB7XEQRNtn}uzhhbI=uu}^Ze)Z_V)GyUG8jMFKR${sN?PjE zykNt~>;qW10BY{*`xeCS&J|9Si!~BC^z;GF;+==$sv7aV)_~XLrH4I^>&}oki4iW6 zpPW*+FlPx%{|gm%{mJPnWZ~U3PJXp|$*LOdz;|hHO)A=CEK;i=Tow~Q{m@IWni9*; zQ=E{jP|ejq=cO9PYWu??O?N#K``MH_`Vlq%->o2}5zqG9ECMQ%MoNeM%EZDR0s43F z3-_uObq@zij!7tw84fH=Wxff*?x4Adwce*j@Z)&bqgeU_V5nHFi2;nsKkqK5irJsz zA8=M(l%~ur9$mQ8qlD~ z@%SYh_6FZJ7_N}kN#)YX10WR!lY|zN4Zxmt*5Q7oN+8j8zPk{h2-72xA_-8EQSdrR& z=JUWp9a?wJ%7X^_ zw_b3a9F{zWN__gvk#F`1--l%}#&Nr2!6_^1O3tGaLbTp=39LYbV>tTkfmf@GHxud8 z{Me(*m!$}6rhbRtWD3_d!t_RFa{k-+{wI?kBBEe-(jHIstxr)-^`O|HptTcl4`w+MF5@B8xNH3h zN@L6ZOqzvPge)yZ%~6k)&x0Q*#pft~dUNuU@>56} zSkb-pCspkIiYVNj|pK^bxjWOewKAoh*5kLGN@Hq9}S&T3*RN8mYsp)TE+ea z+{~2+9IcdPo6s^q#cnE?t-@#ak7Qq1L>G?4{^a9jABZKwYT7EhOV3Jo`EsbVM|))! z`>ELxxL(JXl9!8ry6^o19_FdI2>av8-H%+kgT=}3C{<_Dkx(DHvEdrgorIw`8kDL>J7~AV;1ql0 zUyGIRybA~ePI1?>pucadIkzU6($Y(;{k`@+Yc!0x{9f&M229VgjKDJwO`P5-ss zlRh2?ifh}-NedbhAFJOZ;^n#5NlnO&`|A=wF1M$lS9_}eYP@AGFbY2z^g4chZvCbO zS$wWKpM;@rtPwcIG%>o1$9w7Qvsg>m$Dtujn7BD|l%&Q*_cAUbz}S4Q%$w z+JBLhEdY~KRe2oc){UObB>xWLf-EjrU;9)W&Oj!W6it*yHb_xNvpDTQF4sR8VW@vF z!pIY*P`!S{1`;cDVDut_hXPo#4>clyTLUaO0y38kF>adztHnu(o+LDa(dt1a=9XxT zmJ75Ry_d3v4OK|f`F;j9DL*JFJ%hP%NDX^%FOZq;ot%8J%4 z%NdGOR))M%z1PzP`iCbBnXmenGd!IghmKJwV`dfF8mYPLZCg-3^S7p^GkoCC>Os(5 z3A>q-yi?|%-(W6lU?~~; z2?AlE-gCm+JQq>)jZ0(<0-O#z^kefrr4Jlel&E>?HCG z24BaP#(r7k@vscDPTbWygP_;O1jV|P_(HboTP9sFDH{Vc*V`Pb?RXgzD(8_P;T@)o zonJNHa3qd{^F8fikxFfN66X`}V@C z9{eSutv(6rRnHs2YtOQ`&*zs{a88o}r*a3_n)e*x=tb5P6RswQ#I9QuW=%H0!t=hY zNx5vE*6(wiHn6iZB8^^&4}pCJ+DkAI(W-E6d%QYH_gY{L!df7EidG6Ln?4jxKRmmd zo2+O#LrJP=6?GxdaIP-WPmSFUX&Aey*wlvJ|5{tvy7azA-L1yPUanz{kkX6?q?rJH z$1K`nEjGEEkj9L5Y_FnhF7f0xbhA^y2=j9qi_HM$>vqM_k69%+<(@3s24OO^SO@Dh z60KQ?c;?3EHGNIa9~g7je3Z3Iu;fmr!q>*D2hw|LISDf9+gH&!^puKWxP1BO>B`g( z!y5mxx~M$zTXyz+xYp9@TGicbSU}=hi2<#|hE}3>#HAk_0aP6dD75|PCEcIfHOd7% zar2}BXfv6SCe(t)u7)0*2aOkU)g~wB{^n#b*UgR~H>b%mgI)-YjiK?C0E77`ni1% zcRIK~n(IVk-Z{f~OnBXSZ;vPS-S&XJ{$f*edpvGbx`GxmxBS9Ew>MP>)#CRA?RC7u zQ5G&;DEEmyTsP`-6t7ua6& z&;DY22`_4=b99_PlW@R(999fVJXqV#B+04qcbE45x=NO1SGnsy~Ouooc{yM*QW}cx;sc$AW*KxN`-`wD_)x z3Sgu?)Kkzx{kQL$1|fo!Q`6`n@+c?pc?qk9d0S`(|f@9Dp& zP_#H+NYY-~dc$O9@t6W_w<)dMiN-njQj)%x6PpEObKt-KCFe3-T-L?+J)~%ri)aUq z7x?yXfD*Im57L*xIYcTgI61F?o%q74Pv3-@J&s?Hf_bGD+0#}r+!}2pEJUv;IgXc0 zoq~aWg=xylWcFOIHSY@nWVq=>Tg7^97~V%bt1mbl-|v@w6ys6(HRXVVJEB>-V^iGe z9^OBFE!>e)+vJ2wHcV&s#*E#*#l=;i=Q8=B37MD1s#$rpQ`#@_CW*&i&JJBoO{L4J z+0OK2`7Pk4k2|v0Oky9)zrzH#-vhA<$hv)>;*pg!xaT^n`Bxl%8Jf|oo_$Y{m2>1z zdN6cBoVn`2fL*!3605pjC5w~h9E+LA^3qOoJE6Q3d*98^`#C1mZweBf(sH{_!k;hK zft$GcPl}h*c$d$k65?3D3#<7+@Fr`t8cr+X86949o#$v3G*G{!9pF@Nun$j{6?_`0 zt*&4AnB7A#CUJbba>CCN7%I-xRjTy(B%&C5?cPOeEufP0hda8izrXlH+ma}}4Ld6# zBdn;a7(29mf@jzE*Hx9aQdZhdvxe7-8y5d0$XW_Y06))F)8`L zv-5`|?zYv$*pLTm5}q-cO{1T3y{B(;Qrhrdp_{JaIhd}Sk$`Uo16(a4iz?c7xsIMi zmN-W=Z0j$+g1S5}HyKstF1lnGg&v?Z=FyqXzlCqJaL-;s)(7)AuP~g>uq@}ry25-L z8O(KG3jZNm$uO=Q))EKi?57-7CcdvFF67J~XdE{>^i|p;2ZpDD{W{o6K6<$H1X5`Z z%vm)e7R16WJLO7^X1Z_l=9T++aWH5^yS9$GQ-i<5iv3y1HTs=C$e{dvQ7Qh*MV0d$ z%){%gs~YkKW)R5UWVq32c(5^R%+P&UV$Ea;SNxt(yIc4CdhWZd1nB#QBA#8+Ejh4$sYu|!wK+0cBc$NpX=U8=Gg5p z1D})vxE^+}DO3%Z9v`VmTG+EbrC^oCp^#fBV58 zm9^W2tqz}n(Y8d*WVJG~O4}BUg2(=W0fso*cwkcfu=>kr;DLSoVJ^}7sY3NC2d@jT zxqf3g8n2AG;#NEf9O?!@$=$&ivoJ0F!71oyp`=pm&{Qbq++cVLyQMs(vxeAr{%%3d z$)`nQVwYl8FC``3GL1*z`C8m_B{I8@?uFyBpHz@c_ynFv*|-IvELv+5AKR?dRR zD70)@jt}ms*sU%n*nho%G-jKO=d&U8jcO3ff289qsF@}BgAeGm1Ii8zp zZ1|6MXHg#0awUWGoV9CKY|Pvy9j#b^rIYJ6DbLdJvJ{Gz8P%sSWHiKOS|hV54sJ5aZjjo{x(Av4WY3T($FYTLb11iSbCrT}JEFzr!)3(mx%vjPRDN*qd3 z8u76>9|!;QT%*BTI8md|j%{E^6deATCCwfzrQPARTw)#8*6#ZgO!b28Cn&=tkPyg@ z-`~Cvqf0Kmd9g)^HAlZ^-Jbetp27J_9-?{iWMJoG!L<@UpgiC_uEDugU%^vMru>^GiDS@P(VJLcmza za}dGDVAIkcb_h~a0?xWWI<|D^rgJ@t} zKN<29t{2aMMy4mkDF;C>qcisQ|tZRibVg4BjUM}fX>R&$X4kx$E3=RiM zY2-@`ADk!47F*89)8<{MC+JOi4QyKQRH1L zb=7>T<5TWX`&8+zCVc1Od-8u~puadby7EfQ-T)kKWD$7chMsKR05sY!WmX?Ha{82z z<|T$1Jb%Sv%hY4@3@lpv(z%x{spuiwMA2APz|P(O$giySFWH5V3!LDQ0kP4DsMC5IZ(MRX5u_5+DF4&r1Tg zbopD0d-G2`okm7P+;xRIQ2^NNNrjBru5XCJa|{MbfkP|#cEgR3zitY^eSs%%U@qE) zz6?Yt0qlfO=D;pM=weqW$VJ=) zJ+~FYlz=*|am4vebp%!n_9dOosA>g)63BcB08l*Te; zV$G>dOE8WOnG4;s-_0locj+KqE+VVZk49uQgI>FD=o{R7rP8?Hb;g(gZHy}-k5N0N z?dyAP86`Q6*DEtZDD7|CpOv54CtLY&>!__Pq%N^~mXHt_>i9w?UlS}uAMOV<*12V$ z!ID)64_Y1$+eo__xU&3-E+h;B*Zv3Hx#|>UqIYkLN%Nwo*hx2oq$SS|06j|7g_(7+ zm))?SUeBcp4ZZYPjo9Lq_rD!%eHF#Am8ncxVoK@BlR_cN2kudh*65ZT^mr+xsTaTU zr|`+Cy>_Uwt!SVH3DXq~^kewMwM~UxVdex?YQo$`#9A!i} ztu>5$%$`jtzf1p`9pcR@&rWxCr_W>QeH2g)w+C~cWmEne0J2xnKl-+KW6&)NbED!z((2J~zm#w*K1 zhBC!d596pcnH`IR-7lB;xkY>D%o!xBH3}m&Ugg(~NHyMw&taB~+U$W`#(@F~UFEfR z@}HfK1-OE!hgQv*F$MZAE1IZBI|CcsVw+BV356d-imtIY*GYXUz)DPHy_=*tHlEY8 zE6`f>!_ri@X>^@q0xdvcwxr7&D}vV~JNE}bYv6_+BQ`j#3WJlqf+UL07)e7tZ)zpI ze?WH5x=#(isFYOGI4r7+VA*b5h{1J(pr``R~3;UL{-96#4FVsl5vkVT2>y zhj|n=h4*@YTzh6DXe+PgudP49;+I%FZdlCnD{&B!S#Dc`Js{6k?A0UMq8pP{_mZO# z8rhe^>$%SjWgpl3??pD?)cX-^f8m~4cB`NaT$y|P0nsRW8vdm#V%`h?Z+#{ku z?|gady`rUp2${T?X5-$l19k3<-KJUIv7M6GB-!a=mx`z=s5SCj?kxSyb_@ zBzET$m2@5Fp6=Ms#F}5-S7>I{>~19}_x7N*sq^tu@SLaLvrW3=vC7lIpJ&Iz8M_Rf z?SXyw_e)(qS}_BQU2~x*K+X@FyM7n0GKfpR;ZW=JDBd5`E!g_2H%ktAs2}--L{)^s zs}=VR_A>lK=RgLS4bOz1`If)@Y)<=L#=WwA52cp9CEU&%^i6|5-V)g|ucjG!$PG4c>90_D-GNNDgqClNrSk!^b{2l8QHV@%83BB^fY&(c8T zb;7uZ2u=7~t^&3~UnDaMEFhkxU5^{Y@56J?yO7+$HN`d>99yGI(KvWxchiyRhbD+? zKzYmgHlRLb9}zS?5w$D%o$`0FYq2XOTogxwyOXCp^AxhhVwjDsOuVLZrz|6o9{cDG zMgHtoKFptwS>$4TCxc}Z375txBF;_jihjUN@A8dzKbJ}8t?u4 zb5y_`Tx?ge+an^b6lks(&krWkakQo*psageg#vnRXFUevHe-sCf?y?0lOM63NJ>sq zh@kQeS*y{zjsAcLzzwB#i5wd1D!Oii%kuLWs$QZ4BQ^8K1C1uOtgjw{mcp3I^%WzM zLrd<(WVe-(QuqW*{v#RpXg=IJO~3&hues^lj?*k&yC+tc3{@z~HMsJdvByIc-C2Mj zQ#Ba_sisYVyS&(tG_E5IL5O_v8;JWjmv0;pyhZ$rC^pwf4zh8ph_b8_dN4#}iqiDB z!R&9MDX`r*R?hBS+2jk!@EMuSvNrjH+n&H}BixK~9(iRBsb;^R(PT>gykZIGSC%~WglNR$ z_FZ?@P!(+rzJ{Xkj2>D{u%Uzn1|}#Ted59X2RRJ8J(j*SXwbD2qC+^XaL$ba zCOda+PwLz6&~cqD&IaUX=ALXam*eyy5@HOb3Qr!RKEu&ll6Z}Arbe``u*TBaR`Fmn zk!im|OQ0ytj%SH0V16xA-;SdR4on_eZ%|!^P0N=>iN0OvgtcXp7LsW2P6EQ1{o_k< z93Ibn3$QB3$Bn9=F;ZAoT!;)v(^3g!Sk9nr@r(qQ^nVbpPi*Xm#rvSwt}&dc8r$PeKQUiY7t=X0 z7q>sq$(_7*3IQPL0))$&_)^<}XNF02Zr?Yw@rhb~<^n z`{jw3r5BIsUJOP{b}8QF2n6$d+gG%Z>9)WocpHC6HM)W0sY8r`GdKKOCt^ILzms9*~iZqDyEgN5h8l zn7Prtc9KaGaw;PkzTjAg{4w&sV6J6PJ9yZr&DMKXz0e`T&1(*uv&K zk`zW1ZF+^Y?&LM)q=cW2`m#vo{1XVq5mGHJDzmE*h{!2?`s(l{jWgjnCuncJO={BK z=KX}GPV`-3UByK# zK3D={LdNTtU#4aE4q!vj5*gBlR$6BFGfx766@(F<)?z|zf`H^ik1ktDfgyA#*2At{P{Z7D3U;!-lAGV zd1TJk)3zDYl6$UyZ$5wiR0Cz!2AlG9^bU5{<@dzf_bv=rm@R*Qe<|tM(ia+E1u5y6 z8kbe?`kg9P!@mbh(tLj&vj^TcL;~MQ#G1$V_<3&tDNV1}%JoY~;P>1ufhfojxIj%V zPp`rCh;0vjVmVmaj_f}6V=0T<>CUn$OD!~6GQruQ)_r^pZ$+dQ*e%B~x-pN`X}Fhr z;s9#UWkZ$njz=>6w#uH~yL!%ao)X~^DV6|!*;=?LekT#*IN+dN$S1~7 zZ613+*5M7m`{Ru9_`4r!FMdU-GVtGfMc8#An8=mpmRxh>^_g`imigF)LlOBFLt;m#oyUx?; zKm93(r{W8WW=%%L(E^N2*M^i2C9Ah5x0ba0WtpC}6#RH$5OtN7GVKvu{AyHqa&-_~ zn`Azbcjbt*)@j(Tk>7;Iu`OEmCm46Sj?-6oHR1-NWF_7Ylo_P$tOydtmPx&RfXSXh zQ>sBxGi+*78>}==cUvY*%o{F0x_}(I=BvrYfs~`t$4SB-=0`a66ZQz7Lmt0sT=t#- zPNpZ~=TJgJig!(HPck3*W>+AnE?V`;@2zc3`D>VL+=<~!)7*}hF^yM+MnEjlq@An!QTf;sSA~j zHLsl7C=`5Y%tFsX7K$u}vxGBTe4j;ExG$hGu&5l67yo z!mZc4#Pmwvu`g`F>L$O=eX1_;_B^i$5;4*1_{^>#>20ctFsUzm>j~R{$EALsk}ED( zK(MGOwEgld&GB=HA)xN8`uQ&5eFt}RBW5Bl|DcJ+$tv|1s95t8r3d$YQs8`9c;Hgp z^yaPH1A^k^YQ0>EYUS+#pOvO0hHQk;b$Hj#q=Wav6)2gsESl=TA`w$1feh>a__Fp@ zOxx4uzlLt-wpQKy;ljT_J@!|R zmA@T`RjEEOx0J53{QKD62zDb8a!HuOYDKRVnLQpX-6Ujw{}}La8fuWd!fo2DtP1&$ zpaSlS{MjRMi?(|TeKldv?hl%bp=>)3uvUHa3z@YX7R9z1Z}cjU)<}+E6P7dxMY6qy zaQD|~=n}Ix0vyEQScR$jjFf#HH194GEdO* zDau?0ZT?~z^cyKl?G6%F&Fq$Gw<(tU+TtcL0Yx?Il8_1F`d|`@1>xZ0jNB2VS;6iP zJGkTtfP>fDsQl0FTP&Zj(Xpmp+(GnCO!(dnVYlCD?Hip-WYqxnmL5!Q$fv`QfGgaA zy?XpkAN;d!}I-iXk&zr$#1<|G3+*G5N-(s@t-WPryaH9Gp8cJ1WzgyzTXZu87$QWKD(l~rF`~=ZZ z{4Y0Q-{Y~yKa-b&Be8W?1FfzTZwBV`Zex*_@|f8EL2vNH{H2@9N6F`vj@rWGy868I z=t00@KY7f~iV0iqF=bbfbZtI8E;OH`WVzIuW#mx-MSzWyPiuzlm&5X2Cv+ZqswhFd z*Qw5_5Y`y~Le8=+aU{};2$zagxM5bvo-3I;GY5Cq*#-z)gS{4acQi8CdtH^P=~Z*K(S4T6wm8#+s1bIQB0y{)5O-%i3`JfIw7&M)I~WKv7d4tz74>#k;@w{ zih?a|>MGC5iNGG<{IJ$a>a)PS)?WYY)aapfuB1vtIbqW#seaW9=WoqRSCH1RY}}8^ zGil*;jJO=_&|fuWSWG=nS+SLl$oA5+b^pDz|FQ2~c^u2aQFD0e60Mdt+jC{0J({#SeSegja|PD7jT?)@qcY2S z()1Z@HeEct_CDoq%Di@4r6|ju!%&Hd?=5jma^k_jYG8-Vu@v(K1qSE6fwkYEj7^}u z;wGj&*AI*8C!Ezj&YX8ba#UkkNo*Z`3zG^PwGrf!ef-V(c(=>{YVEtjss8`|OBz&m zW;#hCdxeaS5kehGc9K0pWQClQ%#e{yR%Y2kB95|G_Kc7{4@bt~jNj|+^Zk7Key{7k zf7kW9?_YnN>*|u;=lvSb=i~Vp3O66ZTXe=^r31(Pci?skS*v)}hpf-%(b#V;lS?TX zcTqw$tD=6_shFQ9>)X71&CyhaUFpG`q|6RJdF62(ITqD}N4TFGhy{C-BhJt+ni*XgV~e zq8Hq#J98e`Hg4`RKHv%GsW7}4&73iuv90&u(^DZAFV8K}UlKQobcQ70c7~nuJ{t=Q z_)co-L~+)UtawS0_=BM|ag_3$rY#Z|Mm|RGn@5?gFAG77H(6-fA4LG`DxHUx@LRP9 zA~C&1z-RM=bMP^}3T^4YeR&ndKm^jx(I-jVspWyEmdTdt}wH+*~a{H3#c zYVVRINhX=01r=-G9-hYMvlULxs&Vlq(okY+Smoil2jFzvXq^%z0}4vkk>__UhKo9>)*BmR;A#n_#Rk|J<~39vUd;XB z3d_TvFQ2A_i&AD=&Y`4J_1)8O5#?1NCb#dKy7&ChWcllZ@v~}Wv%|L29UluYCoz(v z7W9xL)iBop>pg+;0mFi`440eA19p`9SPwpE77V%gc~PmiuK>oO#=D@tjhL(2Z@f)T z&pf#D?*T-8>jrfIMryqlCafs_l8Izn}AVxov-Ezb4$c)HL=> z{Nvig&Q1vDUTisga;zA$Ct^VethrdivQM3)#^P;r&}&25CL+s5$_O7WM^^xlj$l(x zYJX5UUP`btRbczm+ljxFPsMBX&HU$9X?#oCZ9{Kt&B1s{v3ownuLa?1pM>C@9~D%n zw}7o%QWU4EdSsgpY-GEUUNZsUIF~)+Eu*g27F^>RGYQ6Xl@o*F(!K{p$lXUWNRybv zNU!&Z$?x$>Sd6wu8J-~)Zi!oPp|cSpe|I$o;@QlD2@C=;;_C6U^_cFwAC$h*MLfVf z@oR|Sju|WoRl0jDV-ZUH-U7k0Nx+6gbh8rpca6S!>Z2GUV_I}P{ueF1Ui^cnug1re zRYyMGWsv)bU4pii1bcQ{%vmAnoTSD1w`0u;OlYD#P^*SMb{qZiI4U4$e=-mtk{cMn~i?V(uFZ!H3}QRV~pb zn=SvQXa)*VyMVq#G3z8yfXkdqKef0?H=`M*v=vrWJXAbPuWmq3IpTEkrFBBV9dB2| z_SrPTlO1&SdI?G3@-v4}^5=88H#`SLMGDKQKYwa%d0-HaztWmRZs@MP=5gr`l4aQh zE3ov900zJ|P9NU2=I6Jqxv@^cZxYE#6~fiV{a~kH(ONib0jyE6usL7Merwv}sNu3L zn62%pM3VYxp*4fv{rm$z1MEuq#+<>>E+=N&Rtq#PHJ$+Sn2j}n#)XIY2KRcPfI|l1 zmMHz`y9Mfn&O~#~!R5jHcwntTH1q5N9utpBslyyILCBJX-_tYK!cc5}IFkfse6OQD z2*Enn^b!|gw+y{hbDMSOK@6@c04Sr`+#BnZ<#hiRJWjD_!sy zlROgti~ZeqWB3#*B@%)m5fw1mv(1))J)J^S`Jwb9Lgk=%cQ;z+p*@gYkC{wiD3`N#@^42eUBS7r=vvkMx>@)NA?Tc}yaz z59!lE?fh*In;&;#G2=W)N0A7(vn>xt61lOz?2wAHLW6xp{m~MrSG&?@#^bM|nYX$B z+DUIv8+|!HC(#J+3NKwCvGxqAwI`Ynz$DLB3Gt%Tw>qpZ_oSY>sm;@L`ROOe34S)7 z$HqXN8gNdo<9Vdk(70WGp}nk$&vxu}!tegfxFGNIQV7agkWFfTzWQi`AIME?M&PR{ z>M4Ro3R#6ZS3Xgy{}{!NAFyihN3Oj!y}Y6wRQ$D zCDF*FJ`=jO2O2EI(qAT^`R)Y8)hanBR>*c}=_LUyRxzL*O7$u5xaB%AH?bh_VX>7m z+cPxQnfEHf_(fFzIoBXX#x_gmVRj({CvL}Ws;kceMUg;$u;%zp%DF19chWrSXg0BO zi!mAovWu($pR2sB^@EI;{N2|9v)sA_2L^asP~Gy*h)(_RdSj8y?*i0P`E-c&{B8I zrx7q+{2Jk;_S3Ua3Fv!;V~P`gR;@bj)vMbY9qBX@V|L}EkblzksTarWT}L(!o#EU0 z^<#{Ng3s{A;cp@HBdKnm2@$=z-YvbtzXe=f>yvEF+R{Whc{aYOBG2=ZLb*u%k+nIl zFEI`Pr75%RNY)bcQnWR|nG~kSB$8Uym0Iz7x(VxB@3wbAO&|%~)IYP=oEoq=2 zC~=aDGX3=whVjuTQKPWE*yezV6%|L8)WNk@cMDDK;?7Jx)9991b5sA`kYm+fB^o*z zH69-eTNHNn3h6{wZ{i9jPeqw5miJ#kq=OPoH)Irf&Iq1`*0ZGt?qvWDDa4N=v+que z{b8R4Yl6Ewcwny}&CMm_AXB*|?Noyvk=dNcHIGL>A%4B+k1obb#^H0L=1#f`bKoJQ zs=wl~9@}?_o|)>keD!e){QNWj*PNy~nrV(IVa%p$gTyvyJbdO`&rEh1HlBGKX1gH( zZJ(P+hR4KiNz$X-JGE$%N<8|z%&O%UER$GeTkiw9tt68hoW46ZFNP?-PpxmJW@WSm zNjIg!xuUSF8?~98)Q;1Qoo>%S#2mNGdqk@2=mWqF9+Hvn1+ah%-TfiQRIhjnskkQ9 zS1sp5f7r~F!y7qOU_q%8rcjRi2zvyCORPYwV$l&U>F$_m7$@>Al45T7k_unUOS$&+ zg0GIRfh*OW51+ydwDtjPm<)mYv7zg~6*E{v2BC;e7IB+MHz66>T(8svE$OOfnDu)_ zGGs-lav0ARkhDt~JeaPI@@7Xw9i4-?7*I=5TXWj<^6f(hc24ed)&i})$0&Ww0;pOl zT0WqqCmqjM%q}zscpGa%v^j`sFK*oi%%H6aY>7_2j6?7{e(rzXSKeids|! z2z_-iLxm|Y5G|jH68FH~Zk8D&-}h3ynvebhVv&Ay#nJ455~tHL-uOyyd39VDfalMX z)VTU)S})C5LzkI2A3!7eBVAzt<2%v*RJg3|2qGRbnuvZhC#jq^|B}7~XcnyaWT>J{ zn%}_Mp6I->vFyd_ZdZN#@Z)s|lgpF#*0cv`WsJ{UO9mFLkL`YkvzPGDx)}Uk%TSl7 z$9KVU9^ThSBTb5Bv>FqW+l}Q$2VRn47&Gmg9j=><$Wr4wQ$sMGfORFo9=jfJ;PQ5L zx?wNb=64{k!Q?X@E^LKbhBp(7Zarj1b>JO1_n59`e)+RK3K@Uf6xkR>BJTDz%iK-v zTQ6Jv7xZA5>gJuo6>)1T$hw+cNE$hSHodVTsW{7IfScNSMs9~ASY*Fh(>tALh^2Nw z0d3)ISyS^)e!y{uKQ*xyA6W)gDXYVpP>>8u+vNV%LmU_0nim2Fa-cRF#_>oKAbq8pv706>Rh~#l5p2#dZkgzYX5ZNW<{uamY%9A0$WbFg||I5q;In0zr*y zN#N=5Z#6L+KxK7&!kZ1G(ctbD;NX+^8p{t2?^|{!7qQe`z-nzK=jiUgwKk6e?$yfE z!>#mfw!p9|#_ayQ-+5`*JOiNhb=U*1(H9!BYBcFImfkRBsHrelWKzLMM;ri#Szjs@ zWzFN+lNY)(A}N~&-dTYY{Znr2Hv-Udc0vTV+MT8TmUJavE08_(J~zTF$Yzy6ASX%j z@m-?Gui;Rk$T|=-*>^ixqHCU>9wn^R8cY9h`)Z+=bqo|*3BdfX)x|s1s~_E;t%D0? z|F>~`2IByHXT^DV9o{kf*68~>jVC}!4>$I~)Y%+Zexh_bBXpuqN`4^pc;~(`=lz7 zO`F)ChmGE+|Mmpvx+Ot3lXX_TJJW{n#t!SE7WBXpp&7)D`F#!G0GUJ$!{_ZnDg=rs zSkqh5RvWq``te`)$*fV);eB#zd_SaY+~L#2YG&DFAytq&oy`jQO9u7r2zvQewLr^^ z7~I9}?-*Nd*SOa*UA04vsx7qb&St;Ae}%j{K%i9Mmk(9#)Up@MJiJ!#nG7t#1m#A* zj9MkLh=&Nn@f&`SYk-*Fz*6I@(vhRrI~e9*tmySy90CTEet-d5PVeuOd6KPFrtgUM zPL=!0)j1PYT^0ovdEDG z=4<@Apf{1xz16VavY)$hcJ0q$c7*H(L9_7428e7(ghp2124s|>afKD|b9=u&n-R8~ zPx0Fv!Gi;R3g&2Ks}zwB%@IA|_E0T7k;0-)Q>njzsSyOe=DLfKy*+Wt1)Ltq;QJj) z?RnKTVj+2-;7!9zqSzL~#ZU5%n`_sBE4jaY`{JaZLQ*lfL_6>76>x5Yc~jO)9t!~A z1htdwK%EtXyW*6!0)G?DH5_0@z0V?CO`N%rMLG&v9OVW0c$Ik<>hrYK#ENIsmuUZO zwRS@!`#xdO)poR|v&lwzNG{V*)zEA}ZT6E1s;FqR?);6s~{Sj_^L4mE9G5VnsVIV>sgn85N zJ9BvdHMcE3y4Olwjv}yWStxPuoi#@Hh7nG7`MYbEZk9hplSzoI6qi^Xa9y4^2HODJ zT5Wz1s~p(<$DilX1>Xd$Qrh-M$Lo8)C&z`IOz!`ywnE(^D&bbD00w4jd2il8u0yl$ zTssEhKu*+neEO=OvfauVao=7lRH?*?#^5fei`V+|&=t`Bf#qMb^wp;qtFdLYV-Sqb z)7?VV;f5z4-NhwuVBe#=bcq}|CMuC4%UMm4U*^o0dkVoNfKK?8*m*>Or1+51SWXy243Tg8-wmCi&TRk(yt5Ht=$vL)MS!m$FRSmn5?}C)GSirr!R8Sb^Zj_}|@m+d_nJ2Vib`a(xo&PX0lYXk7BVU;? zX#3Jw?5odh20k<>-}bl+kJ9Y9{Z_DVhuFRpT7&f{pAwS8~} z2+K?YahOAZpEvF(8%)0d7_>)goGxra@YBvstr4X|MEC?V1PSvUxBEN{DZBvLg<9&W zrE4--geNxl-qCKif`*+aSW6^n(2!^lrzSU1b2`LzqIU^$nCt{!zBTMKA)|*F6wV!2 zyNC}8*X(AS@@&P&Q%QCgojaS|rRIVH0n3RHZAI^JlT>QV4n2G>Q2%?2$~GuEufT zOP6dwT&(y*Z`OHLn9u#qg4H_@NnBPqwd(eAR7J2!-`&{|&rQInmATGtaPalPj6Vf^ z=V8(+AE79$7R+41?ZHGYohMI(USBa)g!=t% zv-=$wZUKaG?uSCj;B7)yc4n(srHL~V1^Srx4z5an#2%*Pzn^uh5{t}t4dD5NhN6CL zSNu}o^v@OHO+*LG98_pYB-Jrj!;X3Q36xx12p37Y4lwavI+?|%WeLQj>3*kYKe^}v z<*rJEKxvX+fTbXv@nC-E(&sIKB2_tEK|a*0yQGQVRlA;Z3)S17sbgV-Uc}(JAL#heS%cVz%aOEKv^^$qAZ*s>-D== z)hE+&j(XZ$@xp1pM-RA^Y7e#`R-|LqbfB*3;wzFJe4|jd+b5l=b~!)}Oj%MPrw2MA z$hh&4uH;=R&q5#FXI9d${PVKfU1G-O%7n9X73hbT{(7d>sW2c8kmY)Gj9pM zyMi>Tiig11IsGi zSwA&A2z{WK5P+1Dd{71uRhe#h&u_oZNNnLz~ zao7ali9-+PO+d$)C_F83A9-Ghm^(VC4tAb~+{6mrx{Gg-{>?ZBn7iE#{lb_+imWp4 zMyXW|7IpA{4Eu_YP5{tr<-NCtPzC@HYjPk8p0hnwN$A0FQ~b6LUGD&?@O*d8y0l-q zHr%Qy);Wk`)T>RKzPSQrVyc9eegmU-hY~5xWYdPgL_y=~5!I(J%aKCvJor$uV%dBN zSo_}0X3$fbnB4OB%_cQnWeeLTW^rkaCOL$BW&E3PJ3Tp}f(bJslp!ezf=t7Zs}99n zBrRkH@pwovULKmaAkP@1X+M%meueNQfia|sb=#MN^_qF$3Q+h=H$VAs`ueeI0Ghr= zujz5c{;LntK#U?OC?5W~!GNOAtetv$q_lJ2AVr21N4ZBF^y3j>_mOtQYpE`FZZ_gEPX-SZ7xN&!A zvf#9JnV%!b)_mn{K_m2$?8xk$XN<@1@AwUH2NMAp<4!gO&0Np1GX@p`)yzDob}BF> zkE{Ua;F^?~>|-Va1BT1KpK~LZjlcKORsq4k(Vb=Ug(+o5gT@oS;X_a#wARYas(`1t zlO(S8F0X32iTRmtKTByxAoE1JwVTAY^Rhvx6_@OTjt%NpCM|wXWk4n9CR$+Zac{Gp zP})zn1iGOg^b&KwZ%Yc7G}|VYrGN8@H~@G;2tER&8GznIuH?$0c`1_NOc;0$@ zqPO3?(Y;6|H(m;O4;dF22*~NUz`whw^cmVyOQ_||)2+3TAp%gD zIGu%%AnRLqVR9eA698e_;iN3VgRnG+IHC1~OaydLwm_GZa@L}Ltkv-_+tFE5_M2_C zVJ`>7ZGbJsP4bQa+;4qC_R&Wbp0?muS5a?-Lm!&A0{#)Inl!~p;!hg3a`Wg@<4z1< zG;F4LNUD*#_Fi*a zi4=!!Se(hq^ZoDWTUAwxB6Mp}kIVKeoQ7L>8tzzgu5Y&)22aY3GO{(B&FC_RarH4E z);d0uo-?SkknAAw&`aT9ltDldGa)`pnZrx& zWG)TPcYaj{`P&%nTV=ij%hNJMaMZEX!Hh|b-*+@_G0PAenGs<%e*xL3+0eE47{Nc4 z$Ym`fvg$N;Uid(}{5mV<-RBJ!RA4(yX~D#-lXM!Eh7X-&#{10vGcyH|jZZ?3dFtjO zQtUU%6bc)4W_ew_28Yrv7SP}{YzWi>=u7xgkKT>bU3y^bl zWc|v1Kq4oelxbClT#a802p%UW^3nYs`!JY=jHwxrXK9Z3tH?0koT4PjdHohncoZ3} zHhn|GR2z0D`~N@-V(>`Ma(e(W_;O0;yI0cLDi^0^jJ#!OdS zyEP014z}fG1vfa(h1bK>y<1Ns&Wr=ombD_>mZI=HVERe`ZCUO3*yB^Ap1tfDKmSL& zPqU~kPZAfi6f(5fJW70z^R=9JxqS~YMFJya|bT)r1Y3kFy9$nD;}Pr@WC_{=WHGi_{-qyNTl?mFf(3*miW`jq%ZBGX7<_vXG6D+W}4tFkBNVY(oa zn9rj{W*~*HsOnq$GiPf0F;W7P`Uq+g7oopp!tq{p(q*dNSB)kz#hkbR7{Fy)MhRPe z&9NpyNVv59h^ExEe+W)6#`9+&?`ubJ!%O~p$Y<%tRF`JkpEHU>-|*SLtoAgvG@1!+ z1orE6?B*w)rl1X>d@a^|5}hHkZY^y9-LuE_woI?wI6(*oLPb(s_*c*ddk_~Fb_wp3 zcn}8j8GdqcJ%MnNHzrP-#~}_Av=&d==XkD^v8I|y_()K^+V{^3078jVjc;If*UM^} zYi=Xj!{JJE5gA)TBJ-qcX=OMjbm?AvEJ+;?SVy3|lsSREBQe@&4xulK%Pq{1ZuUv(zS8ez9(02`&z$eHc5-fv1u+sE`8JU zMEk1|pCeZaiRogJHa+PdEU8KNd5#A#X3E@8xXskm!^k8c!IP-SF$RT>S5n5VyZA(u zI8(kiLS-vuPgsot!zx66LCW@pZpg7w>{0!T+uXN~A;^cCCoCVLm8yY9Ieq@y*9#DU z!6ur1>OK1Pe2}t^RFlE-or`pp9enMnsEa0-HjCc&YnDx=SSfsKFe!Wk=q`SS|ZL zXMk7U{}SFy$~)CF)9gXy9Ky$|zTx|Ff2R1Lq6jbDyqifslWHRi0tz7x^jg-ppNl)0 zmqgB1e|^UgrerbGS#Dv`HDUXyjxsw8PDP>#xMv)0uv37W?7?n1kS?cWY-&ht*EKK0 z1Lx6EM5Vctj)}N%n9tDR@(hB^4dix4GB0U>xnK^&>fuctT+XpSn9j-kNlczQFg=(X z^8bBcNI;elutuoBdtmC59WR~s57R$V{sCF(Y!JtawOcq?y5_Agz?lPgg4<71p=8u1 zEEHvcD{jPiJGg?b&U~|<()koyQ0Q6MjR)`4YL{^}_fLLTswLihh-){Qf@cvyB5<2u z_qFCdJ`19dJCSXZAgPTzn4ipD4^Gp!r%k)v{6m`Hl78nsC~1@uQ{N<)ka`Buytm-^shf|o zj(MtlX_c(wd+T(13m9MLR36_ipDB<|ig%xc$Z*wS0rYVox(Qs>m0m6TlGGF{CK`hq zIHb|@ewDww;hvuqfIS8U{Q5adooR+IdduIHXA3*-M5!Kkrapzd2id=RN)x;fvB=Wn z&8!f8pHIke`Z$}dsgi(52F{w~eL)RS6I56Z&c?9AKkenbCSO*%n1dI;+|&X?J-@UY z5T=)Q>-F(v{X8na*P9?q;nzUk^Eo)3elSXoBPB;GL<(rVpMaQfxSDHQvt30boGXf< zyfG3MR7u*vfPyZeDaWG{XuL*Va~ON_(S_5GmPWxWa*JLKlAIa@T!6I@P_*XXHvBlg z?5Bw;;d}oZ!ce)b%zjR z;C+I^%3OL?uYYulLV0#MH`U87AIF4e{Ja%TS6L@YbRv$tKToi7!0xrIqJh2BlY`tX z7CJOlZt9NJbcAdWc555P3%|uDG>JNW-7jp7(CP4n!L(_gvoi{x+AOou@(&k<<$BL%wiyK&`O^gxAJT@&W zbM;yrzSVN=*a@s&Bd%v_t`*itDrb?mAiLbCyA+R7RE|B?pmW z$MoAGn}wZBJmeh>B^(5}>?GaR2g-;$n4h(08T4sS5I-c&#Tk7Uvqd$~ZHR6KthoTp> zD<&&R-}Z--DAN91&@X6Ct)bMV*3ZeDRICp_j;eO~ zdov@3C%gAny5Ux&?96zR6;@+{nixoVMTW-dW96h%uH4&nxYk9W_43s5Q;YqK6Y+IB#iX6;%Dnj`;m~xb^^&+U{5@=nGFSNXY zOV|;!1tUM)1Q%E#o$KH*Kl(#3r3?=*O6_#dCt?dPx?J2+F7zr~@jS;C>UArMF+Os^ z0pf$Hp~0L0M?Usi(H1FzizB~vguGAs{$*`7c?{kMm|E!YBU(&pn!KI&8Zxks zJyE}}$Ih~1;-=!N@Xs+Ma;k9=RcU!o1gKR!wpr_m9)JJ!TGWvrq_J4u16YOmkKjn4 zDA3Qp9aaTpgS!AkSmF{(SoC50c`-=-3{C;D;pTbnBPl($za&Eh!9B=!dYDTo%%A*L zI?d5alK|mf+CSVmumlFej?AI2DRsPfEDsK?yc2Eak#uBOa$u2m(U$VXIFQ?iyu~2eu0kyI#fmfp zo)t5$b`?34I)b~h3uyXQ38EeR=GAU1aWPZiNOgo{d$Xx=PGkkB0@QRxFvp+W1Z-lt z>LJCE@(SeyRDsERbIRjPX4GQ{5zVC$v|9k#gHDhxKqa@6_E>*QejVI@Vs-<0v#EbW zeZguMbpghkrNtXCZFNdSBiI!DLl%&!pJhPz!k@tucvCdd;021uPnbaK^G>2$pO^@Y;6UjwkvDrLE!FDSg&j@a(b9P2s#Z{N=g?xQ>C zQPNI<^zXy#(INE(Pt3ffKNbzyCykIctcTCsh>%|9`8Z-0s&m;Aiv0%HZqc)5wtsD^ z!~ga)HEPcfnyGhb!U-0@9>omcGj$1V7W#(^D@49vCts)j`QJj3zaHk=Meu6Qri-># z(}JgP%wqwoRQ@Cz@K-_;eOY#|J^j%Ao8Y(9%r+|ComL zvKzoSYt+~d;^0|zC0VYcNyse#%eqMkZnp{_*2UX-wqbsMuST$xj*yR#tVqcwWYD+Z zdY>!?EnYM`O0qeBz$^lDsy}L#XcEw7x3>tYa<3W$e2|~2*rQxeEMJg%)kHq|MfE*d?nj6DklH2 zrvGzo{15-C$LbVxgfX0>|L-im{ujRn3BHo$me+OvSU>!K`;gv6V6TW10xg@y3FX6S}% zh0dK_!L6#>3HgiOq}lg7*Gd2Mt^a$Replace with the actual information of your Postgres database. If your password contains special characters, make sure to escape them with a backslash \\ + +Make the scripts are executable and set the correct permissions for the `.pgpass` file: +``` +chmod +x database_migration.sh +chmod +x disable_constraints.sh +chmod +x create_db_dump.sh +chmod +x transform_db_dump.sh +chmod +x consolidate.sh +chmod +x update_server_id.sh +chmod 600 .pgpass +``` + +**Existing server upgrade only:** +For single server grab the `vcs.db` file, and rename it `serverID.db`(use the actual server id of the server, in case of `vcs.db-wall` and `vcs.db-shm` rename those with the server id as well) +For multi server gather all the `vcs.db` files and rename as mentioned in the single server step + +Move the database file(s) to the scripts directory(`/usr/vcs/docker/migration-scripts`) + +## Running the Migration + +ServerID - server id for the server +PSQL_PATH - path to Postgres psql +Example: `docker exec -i artsentry-services-postgres-1 psql` + +`artsentry-services-postgres-1` - name of the Docker container which can be found by running `docker ps` + +#### New Server Install + +Run the `update_server_id.sh` script with the `ServerID` and the `PSQL_PATH` parameter: + +Example of running the script with Docker instance of Postgres: + +```bash +./database_migration.sh 'server_id' 'docker exec -i artsentry-services-postgres-1 psql' +``` + +Example of running the script with local instance of Postgres: + +```bash +./database_migration.sh 'server_id' '/opt/homebrew/Cellar/postgresql@16/16.2_1/bin/psql' +``` + +If you want to redirect the output to a different file, use the following command: + +```bash +./database_migration.sh 'server_id' 'docker exec -i artsentry-services-postgres-1 psql' > migration.log +``` + +#### Existing Server Upgrade + +To run the migration process, execute the `database_migration.sh` script with `PSQL_PATH` parameter: + +Example of running the script with Docker instance of PostgreSQL: + +```bash +./database_migration.sh 'docker exec -i artsentry-services-postgres-1 psql' +``` + +Example of running the script with local instance of PostgreSQL: + +```bash +./database_migration.sh '/opt/homebrew/Cellar/postgresql@16/16.2_1/bin/psql' +``` + +If you want to redirect the output to a different file, use the following command: + +```bash +./database_migration.sh 'docker exec -i artsentry-services-postgres-1 psql' > migration.log +``` + +## Scripts Description(FYI) + +- **database_migration.sh**: Main script that orchestrates the migration process +- **disable_constraints.sh**: Disables constraints in the PostgreSQL database to prevent conflicts during data import +- **create_db_dump.sh**: Creates a dump of the SQLite database that can be imported into the PostgreSQL database +- **transform_db_dump.sh**: Transforms the SQLite dump to be compatible with Postgres +- **consolidate.sh**: Consolidates the transformed dump into the PostgreSQL database +- **update_server_id.sh**: Updates the server ID in the Postgres database after the migration or at new setup diff --git a/content/VCS-Documentation/server-install/New install (single server).md b/content/VCS-Documentation/server-install/New install (single server).md deleted file mode 100644 index 7ece18dd2..000000000 --- a/content/VCS-Documentation/server-install/New install (single server).md +++ /dev/null @@ -1,161 +0,0 @@ -server 192.168.2.242 -vcs:Asdf370) - -*Required* -- vcs already installed (can be existing or clean install) for an existing installation the migration scripts will need to be ran to insert the data in sqlite into the postgres database. - -To start the process of configuring postgres and setting up docker compose stop the vcs service using `systemctl stop vcs` - -Server ssl needs to be disabled. Nginx will handle ssl. -disable ssl in `/cfg/settings.xml` set `WebServerSSL=false` -```xml - `OTHER_JVM_OPTIONS` is not an environment variable. It is only read by `startvcs.sh` - -also configure the following connection parameters. - ->The `export` denotes that it is an environment variable -```shell -OTHER_JVM_OPTS="-Ddatabase.type=postgres " -#  datasource config postgres -export DATABASE_USER=vcs - -export DATABASE_PASSWORD=vcs - -export DATABASE_URL=jdbc:postgresql://localhost:5445/postgres -``` - -> NOTE: The `DATABASE_URL` should point to the postgres server. If Configuring multiple servers there will be a single database and the `localhost` should be replaced with the primary postgres servers ip when the postgres instance is not on the same machine as vcs. - - -When not root add the user to the docker group `sudo usermod -aG docker $USER` - - -# Running docker compose - -Configure the `.env` `.env.local` and `.proxyGatewayConfig.json`. Adjust the server ip in each to point to the correct server. - -## Configuration for compose - -### Initialize docker and docker compsoe -The upgrade pack will contain a `docker.zip` and a `initialize_docker.sh` copy these two files to `/usr/vcs` -```bash -cd /usr/vcs -./initialize_docker.sh -``` -The initialize script will install docker and the docker compose plugin. After Running the script there should be a new folder `/usr/vcs/compose-cfg` that contains the configuration for the docker compose environment. Configure the files as specified bellow -Configure the `.env` , `.env.local` and `proxyGatewayConfig.json` - -The initialize_docker.sh script will copy the configuration files to /usr/vcs/compose-cfg edit the configuration files as specified in the next section. - -### .env configuration -Change `VCS_SERVER_HTTP_URL=http://` to the vcs servers ip-address this should be the ip of the machine and also specify the port that vcs is listening on *(this should be an http url*). - -> NOTE: VCS should be running on a higher port than 80 If vcs is not on 80 make sure to reflect that in this url. When running vcs on a higher port the existing swing client will talk directly to vcs so make sure to open that port in the firewall. - -Set the `POSTGREST_VOLUME_PGDATA` and `POSTGRES_VOLUME_ARCHIVE` to a location where the database should store files. In this example it is in `/mnt/video00` this might need to change on production servers. The video drive or the root partition could be used. - -```shell -APP_USER="vcs" -APP_PASSWORD="vcs" -DB_HOST="postgres" -DB_PORT="5432" -DB_NAME="postgres" -SSL_CERTS="./nginx_ssl_certs" -#Location of docker container configuration for multiserver-proxy and frontend -CONFIG_DIR="/usr/vcs/compose-cfg" - -POSTGRES_VOLUME_PGDATA="/mnt/video00/dockerdata/postgres/pgdata" -POSTGRES_VOLUME_CONFIG="./postgres/config" -POSTGRES_VOLUME_ARCHIVE="/mnt/video00/dockerdata/postgres/archive" -VCS_SERVER_HTTP_URL="http://192.168.3.227:80" # cannot be localhost -``` -### new-ui configuration (.env.local) -The new ui configuration is located in `.env.local` -Change the `NEXT_PUBLIC_API_SERVER` to the ip address of the vcs server. -`NEXT_PUBLIC_API_HOST` should be set to `http` if not going to use https for the new ui otherwise set this to `https`. `NEXT_PUBLIC_WS_SCHEMA` should be set to `wss` if using https or `ws` if using http. `NEXT_PUBLIC_API_PORT` should be set to the http or https port that nginx is listening on *(not the vcs http/https port)*. - -`NEXT_PUBLIC_API_SUB_PATH` should be left blank if configuring for single server otherwise it will need to be `/gateway` to have it route requests to the mutiserver gateway. For more information on the multi server setup see //TODO: - -Replace `` inside `NEXTAUTH_URL` with the ip address of the server. Also replace the `` with the same port used for the `NEXT_PUBLIC_API_PORT` - -```shell -NEXT_PUBLIC_API_SERVER = #public ip used outside of the container to access the proxyGateway or vcs server (cannot be localhost as it will attempt to authenticate inside the container at vcs /api/v1/authenticate) -NEXT_PUBLIC_API_HOST = http -NEXT_PUBLIC_API_PORT = 1080 -NEXT_PUBLIC_WS_SCHEMA = ws -NEXT_PUBLIC_API_SUB_PATH = "" - -NEXT_PUBLIC_PROJECT = "Acuity-VCT" # "Acuity-VCT" | "Art Sentry", - -NEXTAUTH_SECRET = my_ultra_secure_nextauth_secret -NEXTAUTH_URL = http://:/artsentry/api/auth -NEXTAUTH_URL_INTERNAL = http://localhost:3000 -``` - -### Gateway server config -The gateway server configuration is located inside `proxyGatewayConfig.json` this file contains a list of servers and their server-ids. - -This is an example of configuring the gateway for two servers. -The only thing that should change in this file is the `servers` array. For a single server setup just define the ip of the single server in this json array. When the new ui is configured to go to `/gateway` this configuration will need to be correct in order to use multiserver in the new ui. -```json -{ - "servers": [ - { - "ip": "192.168.3.227", - "id": "VCS-DEV-INT-1" - }, - { - "ip": "192.168.2.31", - "id": "290WPD2" - } - ], - "secretKey": "secretKey", - "listeningPort": 3090, - "allowedOrigins": [ - "*" - ] -} -``` -### Start the docker compose -### Login to github docker repo -the server will need to authenticate with the github package repo. Generate a jwt token that has access to artsentry and has package read access. -````bash -docker login ghcr.io -u USERNAME -```` - -change directories to `/usr/vcs/docker` make sure the .env file is located in `/usr/vcs/compose-cfg` -The following command will startup all the services that vcs requires -```bash -docker compose --env-file ../compose-cfg/.env up -d -``` - -to stop all the docker images run -``` -docker compose --env-file ../compose-cfg/.env stop -``` -since the `.env` file is not located next to the compose file it needs to be specified to each docker compose command. - -to remove all the docker images -```bash -docker compose --env-file ../compose-cfg/.env down -``` - ->NOTE: Make sure the vcs server is not running until all the services are running and the database is properly configured in the vcs `env.sh` file - -After the docker compose services are running start the vcs server -```bash -systemctl start vcs -``` diff --git a/content/VCS-Documentation/server-install/Postgres Setup (single server).md b/content/VCS-Documentation/server-install/Postgres Setup (single server).md new file mode 100644 index 000000000..8e17b3732 --- /dev/null +++ b/content/VCS-Documentation/server-install/Postgres Setup (single server).md @@ -0,0 +1,175 @@ + +*Required* +- VCS Server already installed (can be existing or clean install) + +To start the process of configuring Postgres and setting up docker compose stop the vcs service using `systemctl stop vcs` + +Server ssl needs to be disabled. Nginx will handle ssl. +Disable ssl in `/cfg/settings.xml`, set `WebServerSSL=false` +```xml + `OTHER_JVM_OPTIONS` is not an environment variable. It is only read by `startvcs.sh` + +Also configure the following connection parameters: +>The `export` denotes that it is an environment variable +```shell +OTHER_JVM_OPTS="-Ddatabase.type=postgres " +#  datasource config postgres +export DATABASE_USER=vcs +export DATABASE_PASSWORD=vcs +export DATABASE_URL=jdbc:postgresql://localhost:5445/postgres +``` + +> NOTE: The `DATABASE_URL` should point to the Postgres server. If Configuring multiple servers there will be a single database and the `localhost` should be replaced with the primary Postgres servers ip when the Postgres instance is not on the same machine as vcs. + + +When not root add the user to the docker group `sudo usermod -aG docker $USER` + +# Running docker compose + +### Initialize docker and docker compose + +**New Server Install** +`docker.zip` and `initialize_docker.sh` will be extracted into `/usr/vcs`(or install dir) at installation of VCSServer + +**Existing Server Upgrade** +Copy `docker.zip` and `initialize_docker.sh` to `/usr/vcs`(or install dir) from the the upgrade_package + +The initialize script will install docker and the docker compose plugin. Navigate to `/usr/vcs` and run the `initialize_docker.sh` script +```bash +cd /usr/vcs +./initialize_docker.sh +``` + + After Running the script there should be a new folder `/usr/vcs/compose-cfg` that contains the configuration for the docker compose environment. Configure `.env` , `.env.local` and `proxyGatewayConfig.json` as specified bellow + +### Configure the docker compose environment(.env) + +In `/usr/vcs/compose-cfg/.env` change `VCS_SERVER_HTTP_URL=http://` to the VCS servers ip-address, this should be the ip of the machine and also the port that the VCS is listening on *(this should be an http url, see example below). + +> NOTE: It is recommended to run VCS on a higher port than 80. If VCS is not on 80 make sure to reflect that in this url. Also, when running VCS on a higher port the existing Swing client will talk directly to VCS so make sure to open that port in the firewall. + +Set the `POSTGREST_VOLUME_PGDATA` and `POSTGRES_VOLUME_ARCHIVE` to a location where the database should store files. In this example it is in `/mnt/video00` this might need to change on production servers. The video drive or the root partition could be used. + +```shell +APP_USER="vcs" +APP_PASSWORD="vcs" +DB_HOST="postgres" +DB_PORT="5432" +DB_NAME="postgres" +SSL_CERTS="./nginx_ssl_certs" +#Location of docker container configuration for multiserver-proxy and frontend +CONFIG_DIR="/usr/vcs/compose-cfg" + +POSTGRES_VOLUME_PGDATA="/mnt/video00/dockerdata/postgres/pgdata" +POSTGRES_VOLUME_CONFIG="./postgres/config" +POSTGRES_VOLUME_ARCHIVE="/mnt/video00/dockerdata/postgres/archive" +VCS_SERVER_HTTP_URL="http://192.168.3.227:80" # cannot be localhost +``` + +### New-ui configuration (.env.local) + +The new ui configuration is located in `.env.local`. In `/usr/vcs/compose-cfg/.env.local` change the `NEXT_PUBLIC_API_SERVER` to the ip address of the VCS server. +`NEXT_PUBLIC_API_HOST` should be set to `http` if not going to use https for the new ui otherwise set this to `https`. `NEXT_PUBLIC_WS_SCHEMA` should be set to `wss` if using https or `ws` if using http. `NEXT_PUBLIC_API_PORT` should be set to the http or https port that NGINX is listening on *(not the VCS http/https port)*. The ports are listed in the `/usr/vcs/docker/compose.yml` file. +Example: +``` +  nginx-proxy: +    #    image: ghcr.io/acuity-vct/nginx-proxy:beta-1.2 +    build: +      context: ./nginx +    ports: +      - "1080:80" +      - "10443:443" +``` + +`NEXT_PUBLIC_API_SUB_PATH` should be left blank if configuring for single server otherwise it will need to be `/gateway` to have it route requests to the mutiserver gateway. For more information on the multi server setup see //TODO: + +Replace `` inside `NEXTAUTH_URL` with the ip address of the server. Also replace the `` with the same port used for the `NEXT_PUBLIC_API_PORT` + +```shell +NEXT_PUBLIC_API_SERVER = #public ip used outside of the container to access the proxyGateway or vcs server (cannot be localhost as it will attempt to authenticate inside the container at vcs /api/v1/authenticate) +NEXT_PUBLIC_API_HOST = http +NEXT_PUBLIC_API_PORT = 1080 +NEXT_PUBLIC_WS_SCHEMA = ws +NEXT_PUBLIC_API_SUB_PATH = "" + +NEXT_PUBLIC_PROJECT = "Acuity-VCT" # "Acuity-VCT" | "Art Sentry", + +NEXTAUTH_SECRET = my_ultra_secure_nextauth_secret +NEXTAUTH_URL = http://:/artsentry/api/auth +NEXTAUTH_URL_INTERNAL = http://localhost:3000 +``` + +### Gateway server config + +The gateway server configuration is located inside `/usr/vcs/compose-cfg/proxyGatewayConfig.json` This file contains a list of servers and their server-ids. + +This is an example of configuring the gateway for two servers. The only thing that should change in this file is the `servers` array. For a single server setup just define the ip of the single server in this json array. When the new ui is configured to go to `/gateway` this configuration will need to be correct in order to use multiserver in the new ui. + +```json +{ + "servers": [ + { + "ip": "192.168.3.227", + "id": "VCS-DEV-INT-1" + }, + { + "ip": "192.168.2.31", + "id": "290WPD2" + } + ], + "secretKey": "secretKey", + "listeningPort": 3090, + "allowedOrigins": [ + "*" + ] +} +``` + +## Start the docker compose +### Login to GitHub docker repo + +The server will need to authenticate with the GitHub package repo. Generate a jwt token that has access to Artsentry and has package read access. + +````bash +docker login ghcr.io -u USERNAME +```` + +Change the directory to `/usr/vcs/docker`, make sure the `.env` file is located in `/usr/vcs/compose-cfg` and is configured as described above. + +To start all the services that VCS requires, run: +```bash +docker compose --env-file ../compose-cfg/.env up -d +``` + +To stop all the docker images, run: +``` +docker compose --env-file ../compose-cfg/.env stop +``` + +Note: Since the `.env` file is not located next to the compose file it needs to be specified to each docker compose command. + +To remove all the docker images +```bash +docker compose --env-file ../compose-cfg/.env down +``` + +>NOTE: Make sure the VCS server is not running until all the services are running and the database is properly configured in the VCS `env.sh` file + +To check all the running services see: [[running services.png]] + +After the docker compose services are running start the VCS server +```bash +systemctl start vcs +``` diff --git a/content/VCS-Documentation/server-install/Server Install.md b/content/VCS-Documentation/server-install/Server Install.md index 696bf6758..be56d8aa0 100644 --- a/content/VCS-Documentation/server-install/Server Install.md +++ b/content/VCS-Documentation/server-install/Server Install.md @@ -1,9 +1,10 @@ # New server setup -1. install vcs -2. setup docker-compose/ configure postgres[[New install (single server)]] -3. database migration TODO: link to document +1. Install VCS Server as usual +2. Setup docker-compose and configure PostgreSQL: [[Postgres Setup (single server)]] +3. Execute migration-scripts: [[Database Migration Scripts]] # Existing server setup -1. setup docker-compose / configure postgres [[New install (single server)]] -2. database migration for existing server \ No newline at end of file +1. Upgrade VCS Server as usual (move content of /upgrade_package/brand to /usr/vcs) +2. Setup docker-compose and configure PostgreSQL [[Postgres Setup (single server)]] +4. Execute migration-scripts: [[Database Migration Scripts]] \ No newline at end of file diff --git a/content/index.md b/content/index.md index 4024a290f..f114ac08f 100644 --- a/content/index.md +++ b/content/index.md @@ -10,4 +10,4 @@ git clone https://github.com/Acuity-vct/vcs-documentation commit any documentation to `content/VCS-Documentation` -Documentation for [[New install (single server)]] \ No newline at end of file +Documentation for [[Postgres Setup (single server)]] \ No newline at end of file