From 33c69a58ae7e8c853a0890e18a2048ce7b336080 Mon Sep 17 00:00:00 2001 From: "ProjectKoi-Kalo\\Kalo" Date: Sun, 3 Aug 2025 15:30:26 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=AD=A6=E5=99=A8=E7=89=B9=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1.6/Assemblies/WulaFallenEmpire.dll | Bin 116736 -> 122880 bytes .../Weapons/WULA_FE_Spiritualist_Weapon.xml | 27 +++ .../Weapons/WULA_Test_Weapon.xml | 51 ------ .../ThingDefs_Misc/Weapons/WULA_Weapon.xml | 9 +- .../WULA_WeaponCategoryDefs.xml | 10 ++ .../WeaponTraitDefs/WULA_WeaponTraitDefs.xml | 16 ++ .../CompCustomUniqueWeapon.cs | 154 ++++++++++++++++++ .../CompProperties_CustomUniqueWeapon.cs | 21 +++ .../WulaFallenEmpire/WulaFallenEmpire.csproj | 2 + 9 files changed, 237 insertions(+), 53 deletions(-) delete mode 100644 1.6/Defs/ThingDefs_Misc/Weapons/WULA_Test_Weapon.xml create mode 100644 1.6/Defs/WeaponTraitDefs/WULA_WeaponCategoryDefs.xml create mode 100644 1.6/Defs/WeaponTraitDefs/WULA_WeaponTraitDefs.xml create mode 100644 Source/WulaFallenEmpire/CompCustomUniqueWeapon.cs create mode 100644 Source/WulaFallenEmpire/CompProperties_CustomUniqueWeapon.cs diff --git a/1.6/Assemblies/WulaFallenEmpire.dll b/1.6/Assemblies/WulaFallenEmpire.dll index 4b985b383d1d6da55faf01f881e9a3bbb6826e1f..01a4d656261c0ada9ebc9ca1cf548477172bf2d4 100644 GIT binary patch literal 122880 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 literal 116736 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�L+P7%qi^Aam2cx#o~VVR@5rZW-HBu=thnAPAw=H=r!CE3O1WuJ3iGt! znEA?o5*b9C@=-2JaFM@)Z+Blmm+Vm64kWpn_SMN!hM4DJw(vvjh$nVycY*L(|*I*Zq+V{XJ zqX_KcS0n?J8T+#{WybskL(=8*&`f%m?RD9&I#BtC5+6iZ?Xa>hgk{5|#-<5Y&+Vga zpkPK-(;d!NV2Ji;N_L`ajT4KjLca7FTM=8Wg-PJ%jFh-%bJG;)`*ZxiZnv~K+A&p%5%gN`TM=67;O1W+( z%u@gcB5pQ<+rU3lPQqGS{NL$ky?*|E{j4W7bM$ZP=Q)ioSgma*OTUyZ7}~^e^khFA zJ(1z)V6u9GMx~9OS>uRfkpXR2YYhzL!pcF^O+I=WVP-==_w04i&j^NN#}i-rxs=Hj z=eu%iN~70$qH>9_jccM`7>+XfrF@K6S{w@Ox-B1#&Qj4!A%?xPW@&9YRlZaNs=#61 zka{A95=AyD4kJZdP&r%)e+5YyN~!vK5C!yz@$$BfecRI1irMv9E?K@(tQuzd?i!az zv%pYXO^MzN!F2R%-1bb(0{4;VVM`=t(_!=*qK|gPR^S?f9PKiscDYc6WU$2MgXvP} ze$ThZm-7g*+bCxr%nCFg40ppMW3qZ->tN0MRp2ARqrgXrLUVyvK|?@jJo3CDx22=s z!rOL56;Ap2DMdZW1!20h7G4|0TuE{EXmJXIOJT{?yUqDAkgidMQL;J>Cz!hAtpdSnM(x`i@$&i++h8lcTwj-vERm&Trf zV%9~^@+qNVbdW34r9UW}v9oF6bOD*_Ni^=TwW5!WcJr;1;W@UKzMqca7yWIgBHHG!Iau>dN@ie|c!m_Ts%axy?fQ9I< zB%To5$Hv_(vQ-~} zMjteSp6Kr+!b~KqO2U%!KM3>rr~f?1Ct0~pS%6hUkI0}*H~I=dgeZ6~i9H5ID^^b= z!W9p5<>x3!(&T3|aoUR3kBS{Jc58{<)vTd26!H{G2|y=zr!u+J4Oq%rvnG)X%5y?@ zv8S%NZ_?dD8Tw5QQ9!aJ~_kzNTrHbga zB~olQtkGlegmA-{$_Yj#M!ZR6s4#E823S+OgZax0Ur)m9iCW0IJDg(o zTTdKkaH}%t%k>Q(8Ux+{z|XsOJq$|mYZJaiP}~3O+eR`>zW>Q z0Oj*ei6PB|SGienDn@D`H?SS4+|EeFt1f-M{&Trle_jqZUVq{Wj@M7Ry1H^vr*h6k z)A;xd$y&17kZa9lx94MKZsvA;bnT3fT$gDwRBU;wyF1q%RAfXv7hOHIe7lGLO-(%`nNOG(&hpSla27&V4`m?(0)FoFBlx-UopJ z*{`HlT8r3yCRErcrqd$vK)eE)XZ*@bjcO4NhvuEoyUkx7$&k2hEWdzyn3n9R9VE zPuy3*gr=tgwG~sotGB_2Fjwz6Qmkn`@eOtYFqk0V>xM z(VkiHhz}Vh)hh+-XkD>QP>=+++GSPn3bxQyy-Y!aT#K*ZFgg`9TU*({G<0eWYkQc{ zZVdKS+)5R<`YO)4T(+lH#jTAhZr!1ZQ&z<*w|ccrO{ryA?%v5f$`xn1^7#xAf{G+i z{u|yYbEsH1UhC$4sHPi-xmSGi{~g_+LQh7vZfLbjjs(R_vQQdS-D~9UBQ$PIx?QQL zq_6AEl++I#86b^+2?JOa2t$P_U?*3BLbPZq716i=8tAL`YG`tz!9cFlmH#QJ*`%|0 z_}F674Mv$x27e2#Wse0O;gyo5ZZ6Noc!nd z{DC&||0WdT{5M4-&<-k!FD+5V%%bDvtFtr8NHLaC(}bA~5ms(z%jjprpmGW*g+fnP zay4r^S6@ zv}Ck9Xf~a$A+|QpPK!Npa*rR+SsTp2hh#Is7t61@Ii0+Gp{bi^DReBGGh^8(z9Ab{ z09e}dvQf;=WwSV_oI#`?jJJ6~r6nWIRL(_4tcPzWB;zaPp5cq_5?^O}zK~MRmEY1@ z<7@OQpad0+thZ`NjQD|UJ^sDKk1az;*?dRwjF^zIpgmp+J;2~;xe3wquCfRI(w;aG z9aOP|?6VdzCmW3lttFRYpGPX1k5=F=3SoaG9=1YRUuCEJESQ;0$zYA#>_b{clciD} ziPg|($F)(^|Ca`8u6UxOW|wunL3lB?I4C$j4BIY zsjwo~t0cuewY^rF(Vrxk&324_fe+-cFR78FPDrXDau}<{XOTjurl6@um^H%z3;@whC4+W$h8VrH1t(!y2PHYtZl~+ z>w*)0>~60rBG>LqK7Js;u5@$| zAB_mKku#lcQ&K5J2a6N~nJ}03pjat`$`<5d%TFUr0WPcsprHMvj$Frz8^x~2%Y{vQ zcZZ1Nbfy*_Scq8B&USM+R7Cy-%xPWIx;kl8hmmYibU3aiDM95$B-b|J_z?nywi73@ zaE#oHi2tvdY6Ky2G!BJe@e9Y$4EvC8aB8po{8nZ1e^`o;)d9} zF5z)6-ox`pDZGsh31YQCaHf zgrTDn*p6dxOUL3=kHd+M7qG;7b@NC?(&3512xiv;Y}SXo=*Ju$UuxoKklhORpE<4Vz@rOs@rgpgr-V zf=XDW7Yo{w%ak}vsh)x++gR?Mo|_KA7&rz3o2A9YuDq_>U7W650-$Ld_aSu!IcDmY zdc>eI(M*fA4Wng1qeU~^*OgBftrRl1$VqNnor; zrh{(v>buKgI@dN<5q`Tjj;v#hZzY^-kJOWq_nby+92aI*AL0F-B19WY^l^5qDMU0BnHs|51<{j4qMTwpDI zmn&UOBv$!!7hXC<&pDh8@7A|nXGLj{AzL!3B17l!s{-4mSac0(468f!kbY}G=mjM1}O>IJ({++o6Y4f zx^Ux z$=k0rZ-XbAIjSDLLb(T(S4wr0_%RCPG79KAfwI&LvSmItc0I9G0pmCh%PUpsl}4eb zssK@%mvi`{Vk^k;jGT(VhVDh|&BWUJ3l$@xuM$xK<2awLbVE#2MBLCF97TNvK0cz( z{U_xW*e*f!Rpz}>3Djl%k}7NR_(P2^G5%9lm8H}gG>{9?>AqUnZ|As zS8wq^!T=B2&ja5Y1Fse^h%w(5C!gP({OvKYZ@=n0;zYNttKQb|-Y#$C8HYFN3KmYw zS2^})w`e3A230I?iUX%Z**p>dZ>;&G>>QvU3q&_tO>Mn{!jyx&ySOjPqcS=`9$%m+ zEMxQGPNG?S^p}R1H*OW6+y#DKhld$ksP0~4m1wePajG-mwDZ>j&X#9`T!>zWKYBgR zCA%YkrWsrBf>Id0L2y~w(i?Fc@Vo2q>YD%oxu*{Cn74Y&3auekRRPlDZw6EqZ|Sgn z7#a5DOZ~7>eJgOYsA&x;-=>6A2X&UvIc?v*3t6@5BZ9HFi-?E@(K`&YXsL5Oylamm6lTo{UPKwV9XxYsheT^Vu0WVBBI4j{Vm zbtm6T_5wWg2C}|OcpMs{8TkFb@>!~co&sZnyA@}9@;?ro8%FkH^g=eDx`(LBHXLk0 zTe|X2dYI{b7~Kai;|v}c#S|8e)0LzqL%P~< z>|I0*PADcCAU7TBF6y{+(dW?9-oyPD%U1HW1;Ubx-a{(pQ}oE;*n9Cuvz2TPj*Uy^ z%A@-r?dqiG5o&iuPB2cuR{6kw7;cnAvlSCX#3(0QKAhNQo2~0pUe2ZW6W?CXo8Eng zycsn{mbZ@bk$1}S?y$U%hVZ|ccV;AP^^MggglEQ#WJ(`^lQ_^?`k(^kz8MHay$0OFiCZh*Mo=w~Pi7srY>f-}Jgoz6)%EgZ3(X{5%3)Y+34&@rX8nVp@4?(&# zA2qWRIrOk+5iK_Sv?FUqq_hBp4ppcv+Hkylu=Ft!wpN}ND-9;LY~E1%xR`atff`aA zEuqvR-Oxv|BcHHRZB=Q?8)w=by#xud?8?9VVu2!7If`0w%KK8slBN){b!+)9k&KeY zVeL@S5JkXRHJ{7_YdwY`k z=+lJ#P|hy4?p8x)(D8!E$k>qM&PA6N7~kvC0y7^w9`+fiszQC9pY?gfeEk=EEj7L@ z7RHoU8{2F;aYa`Fd3M~s1zNhPhOb9cqDQD<286rN9Hi5g|G@ED8m2vR^f^E^6)e8Q zmEWawp9dKBL|@<|EMShVGgk%+RDK_LLds!M_CAO#ZCB>A#p_Gr~?Xjgw^41sSd_h9S$ z)a=r;tR)84?!Harw=B|=seGG&uGL9xEZ}o5Jwcf6wki^uA7osaGEnTAj+Kr<8ZgEH zjdGfXglS`KkHZ-H07BFb(QKUoM!+Rd+3?4=N`e9;}T|LnrjT1Kss`fcB==tFfhr zFDUOyvnfPR!KT;S=tp?lGX+ykEgookuRD))cWw{(8@m;i%!bM8%TY#bjXu_*DnBOW zI120soG-&O8NLbRv7ZnzIH8!HXpr`)<-(-z)zU}Plbyh3gvj_B^Ilb3fAlmd`+a1; z_5%vh&w$K#t7aa+Sd0~3|7X*$@9R+#oAMXk50$o+|5A1!4ssyBa zJALb_st6{{Bw?ALY{poo(QJC4Ie^>K>_9U572r$OF#yr}EK*EW<>3FY{BpwhJYJh) zi0$aabD9d7oUW&2$VnfQ6Fq{>99pTFaP(l%<4Bo*Q!{@~SC<|<&LBAHSe2CV()mr~ zOzgTf6qbGsfj%2gsrF@~efp;5u(=`~cB{)NROGL=<;`=V!Y zJ1kG?&W7IIuGPYo-xKBI-S{8yXUx8uo~q+(HBHT>;-kkGsB+yJs~~RIsBUU?d{G>Q ztaxlBTYb>t7^_nMOjB#q$V(V+_-X1LvD}N_?%0q}}cpzyL-pV9#9#ncBukT@K!t*eX?^NOj zLOwsn0vi@Ffy?<;Myrfixpm2WBM?YynQiWt!0sN1mnbQ4P)YHL9;H4w+wxs6#1=r6 z5T~Qnc3sSN@w!IEBAx&jN&1wH>n}dswDp#TKzEw8_)B56n>mQ3&H(*4leQ$Ko_@;tvnV&L!=A}sRom| znvJY?d#-&23qK9yuR^|Y4W_%J*xl6;Jq574)8#t-{U!(KM}S6timr4_xd~Fsb2~EA zii^9Zc{0;E?pVsIfVtfCTy9HPc^IZPonLAL#xbsGp7d8CJ#8v!+b9YvA5|HaNcJq; z%K~VFfTKSnfX3OE&c=~Wu}Pg9wCw}w1CUaOWm8j-PD0*7_T+ko_j3JQo|^`&yEm>( zjo5OvfclZR8X{CX$|<$2FqBWH_DWqwJDB?hF729;WYpZl!lySLG*e2iG6 zLz^6gVjn39F`#I1J?+H-=FtL`cA*$mp@O4NeGK8p)>Meb)}O|(BTHySaj5cfkmtM8 zE;w*=P~mE4cKk4`N<6mau6Abr-XHkkUe=Et5ZE+%e)fq4t0wKnfp|^W_)ts98> z(kzhFWhEJR>BNtuW|$ej+5(3w?eVOMHPLJlq*66@TnoR{tLkA6;PPw9JBTzEjOG%y z#jf#r^37NDt%|nFtt_ZT+k&d*BdopD_MR6K>Gea~2ZMyF0>PL*rA6k)vUjFBTROwe zbhKCyty`$^`-r^p8)_)=FKI;08wE?2Lzm*bTx)5WyzB<1alum!hlRFR%yl6-u$9Usqq_8OsiIp*=XEm~kd$&C&NLdM}Gs zOvK2s*xl}0ODlkNcZ}Xmu`$0qgk%=EJ=bYd-mYmS_M15plAG?w48S!Q!pNp-C|#vh zpbV#TUDy_e7iJpwavb64iuO_B9tJ+WF*X+xdUN)#w3@hF&qgm0uzNOkb7nmU5xbS3 zn~9un&u!VXfuU%a%WdcmJ(FulxbjGUSd(sIZDUB0;vnN`sj;;n43^)f#`IpKYIk|7 z>jca(w+O21&D&Dl*YG|w6>q;7Z)v*x95Ka~a$+_&LG}k69e~42Q7uR0S~i@($6ls5 zfpN@C+24{|@-{mef`4A(!SB{=aZ=}R)!sCYNJR%igfaTqw`u&PgGA8}%zkhgW9S0f(GiLZwklk1fp@hL*7@K; zV;b(_x^?0uSvm?tuG<{V$F~AbJVk01ZQBFYG}^6c@Z66G%fd8tQ$vIIK;MlW10q`A zgj70KptjW<_~Ptt4n8EeS0jO zC=wmTpM4%$SjW2Hi;iQ{X)%iv?WlZHvw3(U6qUhzQzlvuu@<3!l_v{bKF^v38+T(LW#9* z1{*70DG4@3j=#FrhHu6*88Q|R$2L*M!3o7gtWXuB-Niw-V}Ji7mAd`XBqx#Pe=Do(ymW%j==N5KE}&@O!#$kx~RPz znONN`;p%ZZ*HRce4K7QkOAoxA}Pd^>Me?pK9&@iNs!=fx&Bi?b_|yf9Y&U z29?iK8DrmXn1Z0h`66D=RP5NfIL#)4Zf<)Ea7vQ}_yV+oRFw%c>x7yUo<)tUSH9z4 z0#-T?a^C9;8B~;_biQ)AKyfkN7W`R8=q|btUmI2{9X$z)G*K752#}4?-DLjohQ8se2;X5g)Qxmh^g|& z1lU7>q1|VUl_4`B2@X-70p4n5cCPn_%%0mwCK?09^<-UV%6incV#HdOdee4ppzH+$ ze#i9-qWf!t4Axp)hDT&{!9*R}$X95DTrgSN5UIw-HkaOwJ%K&dG*}83OlxBubdSjr zBO_{!`-%=#;13M=&8a~2AIxt}1^&>0bmYysKSj{i4>FFalsmxmWX_uCr4$vt zo8ZHS!c}}|S(U5#maf6klQ}Qr+g?16HIr-cb*He7VY;h@3rfGD#J0u;V_P3wyKNgG-j>MTu1cC&8QwP zFT9CKW!yIg@cRm)D2H#?Bks~WYVEqk%?X^Nd(OF*{BfNeLPATfVhEH#2d*a-I!g0R zb3U7uAxu)~l>nIyWx~>{@M(-lpJ@o}Z8)!8kAvx_%sR5bVX2p)iF1FE4YSb=;sk2< zfvn5_d%5wST49256q7>Txlrq2Drz#i5w~`%Qw=XYnRqL`MuFiY&#(#qrt{+y`VShJ z{4K+?&C`F&aIbm#ZW(DePvI8yQ0!_orKiPUGj1744zPB4+^A~TKy?a*9VqnIDCpP$ zD=y-D017jUiN52CTP@sIW1yZqUt^%2T+5Mh@|h%`T};e4uDH+C<;P^D3 z`z(^rDkl1mYdJ*I3RY^EAa@jbRiUG}Pb}DuTe@`;bTQ^E7IDY+A}-y8oUPJ}^wJ%O zm(kS>1k3nq5W2VF}0I1chAMlgwa3UWlZZ zU+7>~XU6FRE4Pxg^k$qaD=n26kgU7~$T-WNsr1csr3t&Q&E?&eq~12260}=4=7vG#4!~jQPDRFn z!iFiqzNx|gF0MaDrSR&j&`O=LV-D4%J4*mEpmivlJAr@OhevM*7^I@R;E0xog)9W) zcM~wf<>4Kp6Clxgwl)yWR`vwr_iTq++yLHjO?a}K;B8N`xD>qMCOi!vc1AA)Uc3wr z6Vlh&7+n3$xKR}_n4hnJId+pUPkcZDO{D#ClbihOF^6}7_ zMx!A$51r+qb(tGrPn(`4czqG1E;{-;l`WK=T{)mU+>Fs<J{MXPriR=kJYX733?4!d!otgQWQ z@0q_gSp%(&Jx{Hfsjb!fA+{x}La+8E-?*tQNQb;E`dW0xmYM$(9{n*&&(79giXED4 zwkqjxg$U7BB?DHg1*uAS$RVlyvv?iTOOE%K6&IA=O|}SRc5}tpBCD^cc%_wnxHhK| z4RuZVqW6%Bk5%1op`+Vas@KwciJ+<(SwQq6RHOkey^pxk`*GTetJ9?q;NiY|Lmezv z+j!5EK1k%HZ=r!Sj*n$sYrga$;FKhOF6N_Co{NE>=cp~~7I+LGnk2yId3|cU{vBTJ zu=xmwKn^H9-PD|AvBn%zqmx;FIbNN+b9sHcLuebT0!nzCrZilNVv zaqRtl!wXL-7C7Pv3`Py-Zw)UdgLm%zZ=vLB@qYwZvrm|pR2x$XyFck~lQ!k=@0E6R zwZyk7Tjrv5F5e^5?+Prrx9Tw1A|}8L*R6H?7$NwpnbAk2+1{RBMj~%dy*#l&@gu;j z0XOAZd5|=S73;<0JPmOhJYRZ96sN#H>hZC|Q}G4QmmW6!q2IAmAk$DD#1L|*gG$ok zfy_zyz$qXZn(~XAKvb-3O%eWAt6s|$BE7x20g{Qh3ZyaqV&a9E4BKi!bv}Y$XTbg1 zjs)iq!_IvlvheS7%G_~-;#dA7yAvQlemX@IgE>7_Q-DHMl?9$El@CUN8m*l#I8L_U zAel@y__O2}xTlmEfAMeUU^o0mjH^T z#*Kep$11v-5xA$?>OV{_6`~pF)2>gx+M!RO+UY;j^w~Nc*K1Z_idD@SxT^u)+HHPm zSj=IMPcGs}%3G`tx3stM^K7m;)=6ofvq}_f z{SQ7S%}dcI?ZVCtOIT3-z)b0L#Buwn^m)GVo2Kf9F%Ha;SPxawvxJ)_?QQFdEqsRd z<-{w_(ok`vWe!^sLR0a2>ZH@Q0uTF+WDpQ z|5o$gf>h<(I6Rluh;L562W6tkYV2j{#SpA z^t6x!V;MGvh*Y{*1@F8Iw3m1`OE$3gf^PY zOs|=Ki>iLgLDj(~na=!ap3+I`8s zUTRzqRl{twLQXRf9)AiaK0(qRWP0=vP}m{QTs+;W<}QNH0hq5l@x&cym5X}R`0SH8Zx zSq-u_pk@dtH|i`;B>CS)!%a&ici?$TCRbB(2h~RBnG_fJ0I%Y^@>R-8=dd zl`~Et8)FTaLjiiqa0$;L#vJvsn)7QMqRWsT7%KB*U=La1zy9Fy&XZ0i=5%?vGW zbiaX^WUakUelWVzGuaWx}F07Paop z;+sv9Kd6A%?LYFBwdE}74OYPo`>Hn}C9BGxa9YjXxaI5`@XrR6yKzhO7e4cUwB+pd zyk*&31HS#6IJ`3d6-3S3tgXnLZJZL?F!nbPB061~4r8yhJCHH&N#ePs@?Xk?)Blg{ zKCPwl_c*YxnlC?Q)t2T>w?|ci@qZ9i`X>(WYBDS0ylGeHQ%Cf)p-AlO^LY*=@@E^9 z(;mHa+XK0_h7Th;34%AZ=_axnPnNl&vE!LB+D&9xz;6AY$?84JY_tMnZrN}dbid{T zwELVox;k4TW41lWb?lsKXMzR988#`RA4%Eh72O*`CCDS6?e-zE`-PZ&$yy@yUu0Y*)i!7q`Ep7(1=nFi5sE>a*d?r5nQP z&NS6*YnKMy%OCUkZ(pUY{|Y%hDAH7;?4W8-tD%$aT^;FKUA_Q!9ZlS61Gc-9>m{8! zPZ8L%K1PRkofA|jn~f{c9W`HuZG6sTMHS9VdGpr#b0oUcayvplO?f7VL!C2<8ywSzX|8-bO9%0;e{sAv zoRZn_#?kiz`t2I^0v$8B4*U-p#U&sMh5F+$*r(Y@GtdXpwT)=RA+Y z@9E-~A5WvfXSJp+5!ncLBWodl70>Ub=yv4P4yALfi-(b_mN7m{MrTRpZHxO7?$%;O+4JM}95}SiI zI~{|3SRDqLzNy8n^VxdSx%LriV(r?fjfAR`bqcPl1)F1SkFmN$Sr)1zA_ltpXI7xy znO3(Ifi(iQLkjjJD$~EM?a;P8O{?@ctes3F8Eoy?F5bfR_^6X;6h^!=3LA`Cx6IV4=H|vYn%{*#UUJK-k&h7Y92-oiDUHF6=n+ zoU&AINKKaHqY3^&N&^h9;3 zfV4y2QLDFet+$_R_0m|bv^grPT3qe)6aBDu``WLmtwY8~NI0DQIg;-%lTu?qzZPgy z9P7rIx%Wvu5Phi1u~1doi4ye3Jm@^*r{MvmsOyH76sXab(f1I+!_hOqrPxocEkpx& zZ9~Q zPwrV$fLo_10Hb_yGb@@c`nuP}k0x=o0>{$D`Z40Ryvgeai=Oj{bo^wr>AAN{Nqa;3 zd|&4I#3OCCd9_M(DI*b1(+p?QmEEZ?zofXQ%;s(cdCEc`A4pd)-u@K}Mk*N)Jfnqtbf?_bf7C8(lB5D#Mt1=}Ss5h{I(u>$j6=-{ zc3cH(j!jmUlRBvvSUF?JLy;P@`RtOFJptyI^7FQ~IHpz6!I6$dToLPKyfu*PC@!j8 z1xwojbAE)wbzXQMJ4JJmj;@Y5J<%e4^7JDW3T0P7hn zRtEegHK)zwyZ(2vY+7XU3HGli0GuCo(yHA%rx@OvE6dXp7dOlW|ybccJK{Y8E*RlQvbLF}7--U^EGee{^H#xAx50PyJ@4jy?;@@T``RLY(LBD%3KO zS&oCPYODln7vsF7fAyrVztG#$672zwth9#Ap>1;<7$n24EH^}`KYJfQ=P7xq@+0U@ z*tk{8IcbtMe!;IN+KaGJXsJD60e>1lYR~>fCbLT@WrA@A>pYynRR$O}X#W7(&Cd>a z79$=YwGP8SKfo-brP$IF51@>8XnO~20p`XYf|%YR;N)t`we%d_nd&(@tSICwdPd?fk8ntVHU9KfV zR{r4m(JD9h$-IH5mstg7+^&YGjaL;B$J@|tz5g-J$H~^N z-q#dbdRRcoE}o)?GsEPPzOb|pFnbwrA{uGkw9czF))jN?w9(%j-^j%=abP zic;EQYwT73-y}0r0~)%}ro6!5U%>bn`S17whP|(0<1VX<%UZ&UIE%9}?+aw3xSeG4 z@ttOKbc-I^FjbkxY37!rY)+{MJsKDOeS_HEKue$LGxXL@vt3Q{YmI0Kb~Pij$_g_x z)=+P8n<8jjX%Wwx{1Ly9%UC5$Z zyxH2euJ-7VxKKKL{(r^RDue$sTkH2hlU7IG%FIeNtjzHARO4YB^niZHdQHvuUxVbv z)IJ`C3EAlPqF1$s5mpr1!A8FapxNkm6V z5A2+C&RJ7E$Y3|3Uro0B63WBGV}C3Hiu+}((bxg_SyVWXPw61R%fTQ<>MBcki2Ld} zwP8whuwpgdYH=mBnz?Fj>@mrPmB;R+pT}`AR4VP4A!!5bICP$$u2r6Y@5lO1v-?+I@x);xvt;~)87+jNLhT7N z&mF%5paJ)847l|S#Fr%3Ordl*nZ!3xcX-f@=47Kz<~L%91?waDXa!a04n7B`%(byO z5>d?lhXJNaYc%T9oHrgAjlKhL(uRCyPBmmwD@G#M5|bW33c9teZ{xfpV;^=?)u#LX z8jpuEL5 zMx|m+DWGKVsWJse4bMmp7n*mi$uGHX;%pixDYpBpeh=>(yl zh{O2pFn$AkgS;U-_{`VWB5f1&?)t5$WUADQGMjwoy79wNkf86z5k`)Kg~AONa~S-N z(k48bk zzUS8n%3obThITNo{09wP3^)X4@^2)$g?C> z7Hd=0BT3BENTdpNnt2vBDvBAJF?K4%UQ!EEP0|t8dfkdcA@_@^%i z(_JV3in(HL^hP|Rf0hGfXVOs;q(lC!tel9epS#W4YS0W#UGlZ53!>SiakOy!PwgH; z4ud1p7nR>l#WeXjmRcxWEd`*<{z)4f)rFF1d-5|V* zT%E7bw{!;Su?W-?T`W(4lpmjx@e5_v_X3&uQXFih2p5%~ftY^rK)l<>iaHsh0RG|P z9m}%GW9#F~)xUjKsDujKq#+hG{n(d^sMPDt>xZhfp&ybB$H~x-lVkmm^s92vl@sJw z#hI?0DP3VQ#9>)%)EWL4zW6aI;+uXhxqZ%O#Q*Tn48L-=)mw|&zc1)=OBR*4zP$>gOtv#%fw7*zBw%y zMM~!p&%QW@3#+1JrSk#QU2}-07r=8#i@n_uYAQ199s7 zAU|aVEE~>wZi%;W0k6_NnGT|hsP^ysw=n!(E59aNuqVQ;zEEUG=MbmY+A6i9<*-9G7XP?XjdeJ#_-?uvr>!@FuTK&--*uRVqx(i~##su;r;JZzA9^$acG+40F zcZ}ET&D#cPMZ-3jx|nUC4O-t}a+PEDpbWIpdY6n{MtB0Q?O9!KBzRTxVhY;8@_p)_ z@cvTrPF7w_?8vak3MwTM502y)1-$0|5~z)pi5|>W1rH;vnVwJ|+B2x2lc{8BOr+IE zs~>F8D=e!MWQ~PtA z*japwbBl9Fx8WK6f*g&}Mni~7fpzT=yE7lsZHs!Sg>BxcqtxETkp?DSAbE7 z4j@yH*Eba}V0%SOTgK5#>g4*TqPd{2&(rc$W=xHanTjwCIwbJOnnFIRK&!7WIf>PzMK0nftBspM?HB}p{384EVr%!IWWNyoPt zDMq8s2=4pSD(a^3me{e!rmf9f1GIU(MVqN<*cEuOonJyj~UN@yu4c(Mzyl!3_>!u1-m1DYj!*;qkE__Q~oxp2zft20H z_qI>*+sy?+YC#1lw(;M(;<=;O6EM>zWE2YhPgT$)9V#$0WB?X?FfV3?u!X8sp_>`9 zbW_dH!7>Jh*EbbUW~ffjn;}E%pNa-U$Wbv(akkJi^`I*w<^o)reryTM#PdyJqP9pq0@d^lJYtzUtg!p z$VY+gC=YkmkY48Vv6aCkW49}>S5C=mD0wN83|KyZm%9{?dNmcFk-?*=!4Th1>APg? zokF^Kd!)w{S?739@_!2`wv*m$M=5PhSKlrY+uKpa@5GM2mpot4j;7pkv`as>Rr>A5 zw$C9r4Ce0O&}5B)vHPH>>wlOH@4f?nRUD)Hf*ALjZX&Xj9gFenf{cRG5PKS$SUg2W zOQ6++SJ?$%-p*)vQj;N@2jSSY)I@ZMn#7$TkXWCdh>#IrSouJWOa*h8aUF7VlY&Q-M>+z5aafeUg`57iNZ{m9t6QBjhUQ#~)qI1WD@r#F@ zo4y#>@yEKq{TM&61qU8~FvDw?`H6F%9wof~!qOQ+<}W~xPMmW`TdUTz{+?Lo@&NGC zdhKrF`}lsEe*^qm02~oJNVx0xhtBCYyYL#Rxn~a?w{DuttQY*offIHM-DNZ7t~d9u=00Zb_s#vT;aoZJ5z?M$?x4Z{ zG_ZJ(x7BvNWk%M$W{%w3=G`(QbZRmdb#QOiY=~I>=}CqviC}*iuV3yXQ#Vr=;ppo_wX)?{pB*nzBMoR))u)3FIU>G z@aDeIZRjtJgzl~Zm2q40uGXyk1hJtzX0P*32;C}!|K?EP^!3WUl0BTz^``D>4PAS$ z{2eooTi5CCf*O>MFs_W}5A84iwTB9R>7eqx^H6cP;&}PDERcJ^bh)oI`1j{2_Pe{v z{bIM^E2kgS8M@Wv)s{%E)ky2$-34F2mvBy>d0!ei^vk_$U%4xGmpkV~;j}`z%Y9=X z<-U2YAl3Ose}B3Ew7i~QD*qMBA3QAUUSxGq$jhHJdH!mlQgtKetowoSeA-^}KLT%| z`wsOLx=)X&*4}TFKX|;TooM)v8052a1i8}OkB!Rz8O!}9lklX;@T%QKA!E{b{ut4} zbCuj)N*cN+mMZqluF)k~_tT`@`)0^J^dvetck<#hTl4Pz6VIg9erQ^8qH+EVx$~+~ zN@>5oS^3V}XMZH~niJ(-PwrWF(Xjj}gTJ;_{*7I7(<|lvbcWnLrhk49;K$3o#7gvB zR@C<1B=^Q%xmO*m*w?L<|JY&qM~ZT{E|y!g+<$BGUpiMfSxftsVfn8#_(}VSpB1z2 zOLw}x_fmbW+)a>Ib;vCrddrMc17G{Ur=?`w>le#?_Bd(RYiA1ojYemtxt|(P>=#TL zU9;uCz%>6RgS@5nmKihL0wn*&nC5R+2hptoXK{KQq@1;Fv-Mt42 zbIwVk_HL_%SL`dubkl_6t$jV26XdeZawDt#PZ<6;7b?~348DB%H}S7sCHJ}6f`7!^ z1C}V&clrb$Gg%c(l1Esr&0HrAzm*YhnLhD$#|)M6gM;ENZIZkzEedN6mV3tua{Epe z|7V(hUbI?}4y(03vls(2WS1`9APT=S-Yz>yIHw;e_b=ekmW|F5E5(6E`7z^mp7Hj? zsBrc?OztG@ZiegVUAt%2{gHYM-3Yahh9njHU1|^Tek4+p*YLci>97FFQ;!>^GbIpxLY2O*cB%Dt14s zwacyEe`ogjPOGE$8|Pz&|CqI%Z6}D%{?>MOT`vEzrsvlgp02x z1>_RCKbvl>>k|Ik)(dmM%Cg3Khc}oW-f!+HX18BqoMckMf5tTb9@CTijpw&h@3h=L zxfks%_X6YLW-I$0W_v$iw&f73wci}B9G|t=CpXKEUA95|-!f{JtyS*X#?N}I@mC!y zn$JQxbYEF4x!pw@oZ%iwO6yjd_I}*z@x7Msy?cnlqt*xg-AeII%j>UJr{`PC>OVv@ zPqwsQhQrX6=qWng=9F5;&#m8iYRQS<9Ns1OUK>#yYSeyZea+KGb1#$syUc&T@%(JR zN>?)L`WC}HrA>ML+%$X{J$Tk#W3ks->nrRd{KcldCzx(8GdlmY+B|TXB=bkgOAEEU z?nDDacg99pxmTP0jFzZZed9?F9u~Sitk>IT#tFOS-7EG#lTpONBh`~`w0`jCR^Fc< zD*Tfy_l`d0{)Xe^e&c}s)1iC4>DX^t1^N1Ns~78eA2R#=fa(91gB07pNnA}}g*2Xf ztyV!8=jp%cu5eJWY@PY9BD7$}w*KR_xn*&i`?mG-yfmX&VSaDzw*K>Z*fC?F=LlWO zFD|xP==wvp_20|yNzAvwlWiE*ARI%5D9BCNylJ zKM{JG6^;=LU1M?k@^qxqz1!jr;t4q|0pq1O_+l$Q%f-BpA>zT39`2MDdQ zxZ(Y`_3uY$wZ)Zt6gq+&mF}65ZT*L_lDVISI+pm*ffoAWkPjVVp=aaJ;TGyDiptTv zyKog-P8U+52Y7em7>nC=!?yli636jIhXO0#3>3+qX$!SD|9-tmB zEUg7fd%J~} zf~n9uEHu*VL$_JFXQ;6sCEnw1x6tR&f*&Q`NB+uT&Bks0zfXL?eb7P~3q8P#(~A2k znCtLAY@rX+svb`~j2^*=}4CoJ?y%8&>ia*tT(2ZYvv`Iv)$7M-2KQxPh0&x?tWsSUkq>SKR9^8J#C?x zIq~_l`@Mw@N3Xw@_!)OFMe|%jk0*ZVk|@t~_gggNs$kNkEc6*dH@bYH#X>Jaldli* ziHwDokZv7u?H2lCE0{rFVw#1XBy>wKH!DXL40cZ}v(UGw+xG|iCze}iF7>C-Dhu75QRslgeipiy&^mWO;xG$+)pY)# z#Nie?V%oO;M}tEXMv&r)TcXHxf3w_(-PEDL|q45^Q zou1f|2$1|SyDM}-;*vyi-gI|ct3nqhE^SJ8QQ`^<9dEh6I8n9Gg%-Ljajk{Oj&$RR zo0_P+Eb#`5;|vgSFHhXs6n9+%zu$^6+#)_CNNIxTF0~&k0@epq~YyyToGewAfuN_R0l< zUmPjbbA~grR%t(C{-J|^7VPGJaL8|=aJA(!eS>HQ=KlC#`KRwI3Pp1dG53qdiIbZn zx$i&pIAYhVp4G(~&2GYcC@uGa{gn2#=B_sPOXL;0e{{<|#vs?W%YWZeVLoN0d)IP7 zF3X6+-Zr`CoBtW`6Ru@{xqZ9H{p+%yQ7uR8{rfoyxBK3IhX04*HsOAInB1o$xxeiF z3+{*eRK{lxS)AX^J!kIMcKNS4ySYE^Bc4CkF^Ru)Vla0%H-Q_vyN^-6pEvi%!^>Ji z_m{TCxc?t(?*boXb@Y$Vv-eFlS8^dC0YZWhZW8VYA|VMOkPEp$h+xB#-6SiU-LSg> zQc;Phm1;F4*o@aLxY~T0o@2{Vo zoS8Gvxt}>RbLM$CG{lZvMVZ#bJSznHWIQhxcu)2X790I)Ji}#E8NM%+3-dXBk)#a@ zmoSiG@Mz>JbdA*LZ#57tbZ!d6tEb#xNu$RK)6j;WN;%_(F#m-k9|7E3yWR!Ms$?bL zu^}>^arG+t_k{A@5m_kVIawPSrCh>JSu=_fpZn*@GCR_jJC-wN{;2Fko6YSwNy|4s zoG@(U^3C2Q3@>S6*pW62CCB$}^5huh<7LYeZB%#GNbvl#iuoUXpr1jt0-e(R$O!R(AGCqu%usXQ8g|kDCP^d=VS1`la;CR=IJwjY`s)p3}@Ne+naJ zqjkd*vGRvho(uXXW0=yvs1oU6RSeZkB}w|&!g^3<$*igL%&PN2aWu98{;877d?}mZ z!SM_aNolQ8{#1eE1l9;l9m{?EXEnnKH4KMTcA}h*mrYCJ-i44hXEVHGIYX7(xqy4| zrxY$fT+B~BC@a6$#q0U5qV3uBo0lbjdu09Q4S*W8oPW$zzqt)*@DE}BYXsUZ;It{3 z;lnc5@#%XLE(QNzCh=-nfpx3Vk>!_z@_94!&z-<9OP>8}5~tM)S#&O^=Lx-O<<^n# zNS0p9AXwNST9zi-(_+#|(A6ZZ8=`>ni`6Hw+9K}*7J7*8lr|dizM{Nve zIT(%>${PY-6ncixHBd^Zq;&ttG+LPP8SDj{C?ITzo-ju^>C3RQKVE&q%Ln!S`x&6ot?)6Ioe=TrwLah96 zOF92es-Ib!It7$$e|8R!bEE9*sRGs6p<1O*0VV$zrM-o=l}azxmvH(>=6is1Wtqg-f-YkEcjWR8{tIATg6;OO$P z;4w;`h_q27)2}s80ldUg2)Nuj7w{Ep*Kmz0Y!mTpOg7G-PFra~7TrP%LEk7c>H_O> zr2hyQEB{+a8|AklO=hMTwa4dnf?g=Ow^^8ey|oMQIqNs^Yjoj+Z=o))z|rNM1>Bwu zXpc$T1p41FK1}%zD9@R$iKE;C${e~w_#cq=Kf=)TW1;*6>A%pc1;)v8VCXLkmTyjQ zF#O!cuvXG@?415k;ID-~LFhT4s4k zZMMGvo@4t>BDeqVXpc$zC*XC`udn9v?7uaKA*Y$gI%;5UUU|Z(r6ZwK(v?H==G(BY z)PMVvez`bhltv$oWPCrpw)pqR`&9vBmkXzv-VtoSgE`Igfncf>Gkql3wxRdT&p@7f zUBk#bIf_fU((zK|P~^!aAoV$V=lC@<j?k3On;8**Xpc+Tsi1=HU)+39Ye!Y8XbGbu?cyEFJBll zmOzsQQ)8V#R|(cn`D1s0^Libtwa*=uNUu$fJ(o;}1XIu9Mu#t3^;M8eYZZn$sv4C{ z8wccFE?7Uk+5DOnK6V}Z-IA*bBl%icFEax^@K~9dbZ7wf zSB0UJ)=`=Ch5p=$g&tt(a!;<-ZWiSU)(77fG#oAv|Mgo(REMyyE|NU8JF@9=!TO2w zvS~Gk3F$o=%1QjU-|ElVI4XucG!be3SC2Z2_LeJbboDKx#!z{M!p@p{->72Zf5D5N zYs1+uTahtqN&cgw#?y6@r{-@0-KukP-UNDQp(=&ToJgw?Piyq(Z1M@#Pt18X^~U8* zrpx2dv^f#;Q;LV<@{W~F z!PGod&>e#9r`}r5D__B!`>Ch)XQL{pSun-9kk$^st{8w_FWAlW!{%R&T1flj@)pq_ z1?z(xd}q`m`kP?=G!kdyA{yGl_4Uys=QCzQT!XO+7E#Io>^y~`l;5M2YK77DMfYio zXoX!zpB&3lX${R? z%X!dr#%j13>J&`X=b?22u&V^?b2KlnDfG}G9a~hq$Lyhz9LNUEF$LP8ho%YE?>HMe zpNCc$*aYUhQ*q*4x!U5PM^zqGjfaImOS)8BtP>bprDM0_g!R%xI@V&JiQ)UJj`2?Q z(?0}Lt@hKzfV4&QWIxRqfXx@IpJtqUYr3BfbgTL*Dgr}-bV4vy$~qdhE>_Aq8Xd(N z3)j&M!PKe?QIn2kE<3+4Le8HJ~cOU6Ztp9>g%H(!ESa`H*75Iqss>5T`kx)$JCjZ zAn#GZ`W=fh3$VJMh;lB>gkG&U>7TBQQJ2x)jjAor;S9fwZtZ34X7Z+9UU(VpzlgDI zbji3|3%^6FHYsdW&E17p(HnyG(NzgM3%Al87puIh5_T6}Pq$v8uxAqc3vZ&$mkKtN zt(RNr;mwSxS-F*7QW&J$uL^Iap9$9QcpLW0t#nqOa5^?E+GD~6Gd@9HgO1%H zd0xT#o!=_vyiSEV5}cdx+#$iX(bh$WQG@yhyOP4UQTJtBgOZ=O(bGEi7W{Cx(?geY zULXDB>;hnxD-?F%Y|hKOQenTqId(hUDVUPGx6?a1b{SUr?KI>&%&B^d=LTTc48S&C zC7c+E_X=;PYXsX*-&(RQ`*!+bYpj$Xkmb9K?RTUv|Ac-(MS}HH;V>Jpy(*8s+f)Fo z;p+J3Rta`94XgfR;ScEIxV$^*dxEJocqeTikoSgQe2)FK@J{+v$5NU;!9D5ZYq*9! z$4!&>nD3-@f~mILNt*=QFKxM#^1dgWG%D*9N@)_TpEgvVD!hxH6zp=k8l!tRW!#`R zpE>)B!n^5bg7wpFHJ=W>k2Zgw^KPb}EJ-Z7pAOxqusN=;XeW)miLq_;t+_*s9;WMW zW^BJ!GxzMGC&_XPV}11N^aVw`=xM>Oq^}$6i=LtDZ{@rz$v3&B=vlgUyI>-1o}>E) zV4n%rPuh$~?sJrP8*}#2sQEVB;Q9r-lDw7fq8BJ~yUH6ryrbwvdRNE76+J~ip;LmX zxqX@5xI=M1bM}^^SE&96j42PnYjll{Z7;Ub&nfjz#d%NljYU7FPX$ve>lbud&%46( zXYChcxl5J8tKb*3QLsKbaQ1CQzo55waGsKNuhZv(sZw4i$32{9V6O|-@7S|!N73u_ zmX3Wp?LlBi6h?oa`53VGbu4GxGevLE*n3qC{YCqW-lSFcDePd;>qUp?S;6|~x^v$t z`YkQLKUUunS}ho#M;{j*p<4x0wI89KI>xmhp+^-awI87;b&TtKhYmdutM5IU`ygX| zbOY-9J#{=3tM3?f3#Mu~M!h=5H5{W&3X>X+(Pkav8vaBFcE)P>GhwMo4Id?(Ec%#M z=@|F#6Z)rMYCKPp`H@)dCn?MdBo^1DB}snR4M%CrD$MzD z{kYLz)7yI90r+OVrlWe^#D=NBKGO5JjWub0!M5Pv z;^I=S7?5|Zo;TVwemH4Aip$fqy?S0fp3}69r@4032ThwSm>M&a)~#dQ2a|T{N6gtr zHP9nXTFNtw9d)+WSC2Mn*$R^$nY7`09{0$kjn(s#&T9bYS{>sanY6HAsz>mx3Z`b$ zq+K;2Z<}CS=sCIorEHJOGi&$hdAlvX(Pr(Kj(M!zqb=Gg9gCQKqpjM^A9Jg>&_~F# zX%&L0zT36cf~mecG>?vP-yK@nZq?iT`kv7aZHdC9w+^jA&*R=Yv{icE!Fd;f^DZ6Z z-a51g1yl7owEcP>uNS9gc}{B3xIU-0|9QsLSUa_&f*o~o?N05u!lZVm_Nku7wL7(c z=y_bbQ=9XGDwAt>YGs0{+MU|B^gOOTL0he3Tzi66{GvQ3^(AN}3X}R0v{`x{*O#Ep z*Ymi(1noK<YR^u5u^ z+RbsCDcU`8oGIEPI_KSVKM;hhPF~LHA)#;hhS=~Gqi5Owosz>BRqGNj@^p+ z%hYa-eWM7QcOTVI{whxdBk4 z?bBlLC@3c3(dewPOrKZ76i%DzPZdI$!SLPY7@Q}RCsyUF7S-7+! ztD?tK{x|8^Q?5eh=WqOI^yftkk1aHz4ceX)gc$ zY_9jhe3j-gzd%nLxdYqzbS~4UoyAWrtL5~kMGR}}81fjJs6T~AUgiF8DDNfmvkG1~ zfzz+cO#Mwp#(+FlbJDo)zmygl^jJ%nqQ=uqyU_-oM}`+T87h9Qn)_&8l$vU$UrkC) zwa^2LQ&X)}JUunlMpFUpv}Zi?-wCfO<{h7}Hq)YWnKB1-6Yt#bb% zD>n3Rc;Z`bUdChfojHhFr5@C1r9(0Tn@hONn`CXfunWv|Z;}Z-6LU=9Id2~4emIoj z#2kj_U|pH$@93$SmS=Ej_oZ`b%!#;>Vt&u=b3jBrP5k$qnv`IYGI66OyYF$VRTC|d zIa0Iyry?H1XOp-zH4eL~Ih}`9ftzBPg>g;XlI@eZB}X!uu6SNW3r&b9<6Lf=k^80a z6wT#a)nDef2&a|4%;ecIBUeL=5W`D_lX=W^)=1_Y(!}$~HEJ|-7PruLMw&}D(b@#& zd3QO(YfMbx??9NTz{=(90JQ44Y6Rl@8$To53kzizF#kyO7yeUOb*?E~yOLepBdl1= zqpG z@$q7PYPf6W^qKAPHgN8{shq2Nr_ybhUo(x6J;>4kvPEQt%8i%jLx*t*3i28@(u+zt ztzZsT_`r1hQ!1_IR6!*}R9cmJL{1F_ z=e3BG_Tvo&KWKh@^vw^NAGB`D#qSmTvhdrD--{H%y9yD|A~YPo-T1wTc=u8Gy@KCx z{C4B_BEDKR3cpwI8;;*@{9dHZG!DO4@H-2?-T1wT_aNAgN&`fE8(;$7aLAjVN+kkk z3oI2_C9qy#i$FJEChk0$f1SWyfd>H*{iEg0&qZ`Dr`Ktlq22U~-s__3hDk{C9eJ-- z-2i=s@DHXCK8!GbF>Mq6JmD!4dWk7-{u;b#!B1fdnA4m$zmK*7+9bUd?@VxRx#VuQ zaZKuY$yLn7B zr|q_}+1f7C?#X%DKAN|rKr7LHY9FKRqUv$ev;y06W6sfbN*ju8OP4PKJ#T)Ec2u5y zQ|Pm`eVNO&H_5%|TZlG4TG<8|tn1JYTOUJ=#0j#X&1u@01cs9(eVf3;xdmw9?j| zIWK|!BJP7vQ$5~fYO(H{j+wPxHns_Ecr>X5bp;cDZaP61C%$dk2Ho$dNwZcXM(()8 zU!-Z{&;81D(6*&A&-AA4;d9OAqvUpehM2B&asWSAkAE&y=u=kJ8k*+ z+BnbPD9|rHXQp|VDHpMSyKU{Yw`nJAt{Dr>r>)mbU(C?-6;@71bG^Am*7<2$FvV-u z>{&~KpuCjaV?IHv5S`-FZh+VIxXgR8?X2cSn$v#8#LZ@>JXNo86vu9)A26rc|Iqxn zImbRW#xT;Y)9=6CnVdB+biZ}+I*^= z_VX?%wrTbS7y->bbIByz3HuN26`;&qvePwnu5{M7#Y_8P$3d$4}%qO3|vP;aAse#g5vQYwRVC>|DS7D0QspMS9M>OYFO~ zv&Zhij+ip6*M8di*ra-_lY`BdgWe*mYk|NufGubPP60>%r0eW2$cXKiUbL9DEq};f z>bPvl6ZRbYw&i>5RgN!e-n7>{PEUHvzF)?(6#r-dBBAA}cjT!*Nctm5eJ@D)&9d3BY3xm&{$S*@{_i$j*DhAIk!1ZOm#b58qdxS$0J33&RwQ8h(z7#c)aOqXP%UhC%L;EH_!Ni zlUM$;&K;&NYQA!2Aon)gKD0JBfopj+VJ;{w)~$|*#(hRx9ka(CPT1*qq3Pp<6OLcF zc$aNC_w$6)j;3j*#G}?%#-=4YofkD^Cu+{;=jJ7zFuk{YDd5hg<;ZqB6`ix4PPfs|KSRg0zY-h@nPm$)R`<sab9-sEi+BBJ z=B?PXE0H!WU+vmz3S~pinD&f=JTY%;QMCc;e;)&<5(e?wrZ_D|0Y+9^Tf~{E}yn6XD4#+p8?H5`!JvRc_q7@ z9PRO_?9E4M*s>>Fha`Q7?jQ1ut5o{F6P){8^=7^g^*MiE{A*V);9o)E68fA^=h~B2 zX)GDGI-i`IndH%$@<%6ab6z)oVp6?11yZrz99cdwsn5yr{JrL3)w7Y?SXGt8b6T6^ zmzMaXv~A>{?oQe+>Fs9L3U-)}R(2-sFmq(acIVcHE~JBX4<#MeIF>a{+kO61NV^b4 zAJJI0Y(i-)-yUc=l(f%otNsG?rwfykFBiIIKQ(Dg@-F9VDN_Isr_2KU0x(VUxK_J% zN^5u8R~DX^yhGZs!_3heXGOD68u3oN51ylmcK=9rFs z=3AVXCm%O=Rc}px)4ZU_W!h)v7QTsd{D$Ox&cEf~p1e=WeAD@(gxf8(2p0dmI5j3A&ruSPG zrfj3jGMA;~Borl{pHh%ep5L0XPiAMInPV~1w662lrW7Z9T+y9!+|2K)>^9#xy$>aP z0;!&+y)^rpl#+yMwD1m@wO#hk!h2H+EEPlcnC}xxX~N}bU2#I%oOe?mm2pdR{Alcn z6rc6jbVq7S!v1s9QlA#OFJV>2#MGnGucKy;spw63YvkpreF=+Pw_AMHMWeo(`hw1x zopeVkOV`_=RoZJ$($<6}=l7>>OL!vxozzm>f%NxNJxZcNf1ZSxk7p}CP5qf(`#mk@ zwEd!KpEh%p#c8vva8la#girCV!7gWO)x5MF3CC;7(sm}~&0mc4do_*V;q|FmIPyZX z@LXsXoQ!G5E!%N2vb33HJ#P8U+#4Wst}3}P&1pJ;I9aFZi}A3`6AosrbnP;IIr+}C z-3e!On7{ci{<|ZI}J2kqPMqmQ_Qb+gL=aaa>(HG`-LMJG^hzXWulu zAidPg@8%R(+N;KDD>k!UdNkpS zBs^L6>-0asHknT!$!H%>$ZOnVen(`;DH-!G1@5zd z)siqI51bEJEhe59mx-myJ0e?7C-7{(qb;4d1phQL>kOsR>rxBr9;KFj`NvG9mZp`T zF?~8yo@=}T|6UiLBPAA&1Id$gk(^}{1WprJBIQ)+ko%}5{=WF0A@!EqYxkJzEq7MA zGF-x0Wa75X)!W80aIUnZ9Q65AtxFMp6xkCkv5&)$XEbUJUviRQuxYcxBNV@Z0YrxBA#QOnqw^D~QWcS1wn z2KvIx(!}FsHJMe3U(_@p{i8`WfVOgmhe5ATTvOHp*s|aW^S`=F1a>y zrzNoD`MK1+22+c;O1+=VpHSAF7RV=l{dCtj4gFLRe=*W#aN9<;ohQ$WY< z+f#o7`tEelO@;H`$y|s2ew0~&Hh&Gcf7)*n>l5!8Gd!z6d(sM&)Q^SU3WJ;nV-=nnfEs>_kg|=Ct!Wno0g@ETC#f4$F{7? z_1v?|BU#r-+MT#GaU1GtTK1d70trAIw4|I3i27CN||i zhBU{j>@ai8$YJeIO^33MYTDwrvu>2Nafi&&F8ed*ex7yM^75EW+HSuUTDQ~Lh1uDj z_{`Zw*=bsNU0?Q&#L0CFQ_{5K>TUukj80Njs_{P-Uyxo>l;%c6Rgin^=k#zOXs2- z>mRd!l)WqQxzSUh=XXrqlbvSeNP#r%-qK%Z?@MfPy`8-~F}LnLaNd+<($Z8*boh6? z2Xw;XgcLeqxfpNp6v(qV*2T+gLvySZ6Kq3w*bX=nhHkZgnUg;h=hVuxh89@AH*qqc zBkjteISDzl&QEz$WJr$n?|47%K8)4vLm!o~+G*-ddVJ{N#FrNTaA=;!vzdpz4}DwK zxl1T6q2yQ}7-`auCN5pEZ)kxw9_y_@%U`kwR^*ZN*N5&%JkfF`YUHSqH_gpS7y+&3 zf|G!+H=l$pnP!CsZq@Lf?3>t+`&@6D{xs<`degKPD`%H&gOmIC+U(MtX&BqvY_qKo z)zszegRQqd=S1ST1=r==Cz4^G{hpTG-21S8KDLx%d}ibxcb*tsmD{2%9ohrCb#v`X zNw3Z=kkOlM=lerYyY{n5*XHJE>65R`-A#v5i^VoyY~D?|sW*UfQOhlW*hhfq zolqXnt+J~1kW#`cf!`z9WnzmvN8=cg0_{HQ*SSX%vQq5BG}oo2+p^q=N2g{F+if{G zu@LZn$ZggZCJw8T_SDPV)mx9k=iqeRf@d}B*Ny&Rw{rzMV=lu+cl}wl*gJtZr)B4mCwy9b-gvcG|!h{9aopi(5S^4W+H&%?#htH~THqtK?&ClOPrxsk0oRcu&g7Z^~ zwY@m4inWfWm(6{SJXc@-&tyj*QmZua@c29P-w_G_2cfWRe?Gs@bza76`G1hLy4BU0 z^2_{fuFsvPsmgXCbfN7o*{2wvzvs`kZJ2&Rai!~)uB@~u2;_%7Fhmhr>giOrBg zCrnpNI%YaynmVokc1L}3?QqR`aBlN(zexU%q{bHL9_XWaYDw4d7V~52$4noov%t)6 zt?o46*R*x`DVd8$#oj;YI)Bnl!@m^DLD!*)j}1TU^38gF_)*upMXwG&=vs{2kp5|!WrPKk7Au!9V#H}z@1%1_>~nsSUpYccx?|3{ zBV3Z3=D2L8d&EBbIT_y`;Y_-C;`c|G;4wWsBAp(ihX8j8d{N*&fv*TWDDdY3-xT<3 zfrkaYEAXhmKMFi9@MD1|1ZvttsH;nRVT6OWYez=7=m*;SpzHv}ME3)x!@tNpj|tBU zNIPh+_88!P?J2+m+K&NUCZ?yF9s}n()8P?Tde-y;;0vagKzUIp`$2KhuTAfx%y+?` zPJaY6;Y0F=0ZRnd2y7A9EAR?|_Y2$w=%7V5uB+O{ZCGmKHZ<9|4J&MW0aw{x0bFhS zDWJ#pI$)>m(1=O+=VaEOHHn7MrGUfePQXHX5O6%b2sl;X9D!v*UqUZ~-YArn0^8^a zC~L_&W)g)deaseo*X6MhFAMxY;9m0vX;zG_<%khbFWKEb1lKxe&G6oE-5i5t<+po%t>up&y>QXFX-`^ zWq|W$wIy+BTLj)K@MVD?2s9^iZkfO~fm;OLEAVB39|$z3FlV8_GJ$OZw+Osf;0FTD zslq9+OkkV9EduWq__9Ds+d}!p^V7}f#oi$d-xo+3oZg(Vg;o^r&EV4B7kGE(7P`H7 zFW`H{l*ROs0_O|Vh81eTaRvF~wQI)h1H5zGj^X3AC&!hJ7_a>Va4O1l3+xm4e$f`1 zFmCT?E@$uP*8pi;BY5Tuyn7r|_6nr&oE|A~zQEN2Hw(O5;9h|=K{y4@7r0vBW|f}E zxtj&PFOVh)zrgtdR|~xRY^LuONRx#};Cz9r1#T92x4^vuN0u<>e1WS4ZWegAz`X+B z7dUc?a0*;4aI?U>ReCz--Yt-3NbLgW3tTO5v%td?!uLcT(cadsGaWD;H_bOUn^&2? zYaU^VSWa7ZTMt=JSaWSNZ1uLsY%kgl*^=ye_TSsbIqDouj*A^XaQxQsvEwU8*tyR+ zH?b;lbK=#mS6%;dZAn^~+>?As@)OB5DH~F@r96`I%aoO=Yg1oK%}ZOE_PewbX`iKK zq%TfiIb_$6r!sz@Ty23_WM)TSJcx{e0*nIlFRB=bV+hG`BtXvfPJqpUFLt`)=+Zb7u^jKkT+)PYiS9 z73T%=dh+he+m-jzym#~dmA5$Go&SgY!N>2gaQ_STYsr*`?6?f!MrzG-Cc^%jLc`BzHW~BjEjmQLCxjYxJ zx|k_Lq$N|O-l-Fqvb13&;LMq4F;Au{c>>bEllI@gh0npC-YM;FIxb3N!lX7mCI`fQQ~tqE^R{Y(@W0>oU-&=(e&TyJkj*i zbr=4R>GgHpIuFNonDMjXe?Fh>fcSzeU?ToUL;%)_3BMG;WULVrQuwE3v10IV?f}mQ zOvgGg(HN{0#4k`j;8c8b*o3u&s7RbPg@8?X!_b5;dW`|xihEKMzQl#E?bCKVfs+}p z-p;?{6F;E%DQOo)V@4fqOH6(U@)u1xeQR+b6>#$GAl2UuMu`Xk=o zGSM-r1pFIS0iMJc;7oK1|3WaLGpG*mGpu40eU28H=pVEU(5f{9I+ZI*V+K*YF@x|wGO~}nh&sCTMJmBbpfu>f`I31>i}14VZb$74`5K+0Ju); z1>CG%1bCTtG2mA1QoyUVKEQ3-7QpZ0J833*Qu_|zQ`%PSrAJMp0UtMw0esR_4EU63 zJmAwN{A=^{jOlE^XYut6KlG8&fG>g5PkT+%0e=EcKkWynpZZO_D-VFPo8AIvH@ywc zZu*^R4&eLX?55v?vzz{4Iv0??$PuA0!5N`{ffF}2<_bWQc|4%SJQ2`lt^{=O5!sW^Y*P ztUs_mY5j-wLfgf*D{W8X!!|?gH{0*B|JZJJxE#5TQI7K*m5%2fxz0l8jZRBKLPC1N z8wm#!FLK@KawQEU*aZ$!EGG=C0Wv$KHl=a7~zh>Pq^!}lh zIrk6C&%Y-Bru?1xPvv`tUpxGP;h7_vM_4vetkGQ zF2ipN&X3D+eq4dymDC}P_==o$mtwJAPf-Xj_5#Lsy~s zAFi3^vZQxSpV(T=r;=8hKe0WJa&~J4$4d#!spVzJ#`nC0%p;p^9LpPW=s{$R~ zaHJ{d^M~hoT3bsdQ@7t8@Z#^>d2Ow&<-RcR-ZH;C94?vM%GBAdt&&(83`g318|SUj z@xkoER2J;&Ug!_HBQ@SYPhEG!7Yu~?i78xEd9b3r-P;z461eQCoKxoZxApkl5pRuq z;;Z-`kWr@`Cd4R}MyTHtP58;%4+z0thEEszJe%xPR^W5gYjssv;5bS5tiM!bQD z&+TsxhSoN9@~8JJ@kM>NpNkcarcm!fU%;~f<5YpFJ9-;~J)t)5!l1NDSO(Ypjl>yT zU5$IKx7NEs4LE9;$wY3TD@>(EKSPszOC|-QGZ14~DO6SrvCw z)m`aZ?_C^RqZ2ANdfR#;ULE@nLx6`nyph(j&Y-W&E7J=~r8lzN?e}@gynZY#RYm-g zL9YW`Z}()v>gwvAT%yKdYAX`|X8v`S>CA$mifgWr29Lr_<{M0$&BS(J0B!p=*1yj` zZ#tGe&F$u8#>-X5+d91)^yIu*!tozQK(*&TGyI#Ci$~{$x%`Dafwt8pRNLeCyVv-= zNLEz@db+UIb*wJr@rJyf0mO1|d$~K}UgHk)1K8CbUmNxY(v7@*8ocdDmbUS}L!vAg z;Kk1E^oD@TaB6qm6(HmiUwJ$7x8@z5$UBKU~3iT!lXvnmUE50ujJ(7<~|fA_vfP9$(<-uUDo4>GnZ015%r;AjSG`1`%A}C}|+k zrl^6PVvNERD)-5FxI?|Gr%=1!-GRJ_JAlI~820fB{7Eh(Q zA$PzN?7{-lm$#zwIzgsLF`D~tnhJ*a&4L#4BUk}bQ5!}L6;7q@skAT@>{69;hLM`< zi+H=Z5z{a(vftF?>ZFj@9S#O`L?qw8Z3hbATBlJ%Ffxs5-1t{VHcs0JDi0(!FT`P> z()aDIV7OvqB;@A9VcK*x8C*V+9-muDbR8eC)4)EHhhoqY02!o#vO&>mf}S3~cOF4X zV|>b}$-6Pq6Y@?eCvevSsqcXR#y@=$@orq|j&$N^a(4u=>RM|nsLLH0fEzqz=!7?9 zaKtbpKUzlPpfZ3PJo-~QM+{r;4TZgvN~=glsV;zjmxanh?hPu%qqsB_?DmEtK5w`+ zUfz;A^#;Cu682|PLnACEqp8vE z)HV+qlIAFnF$jtyhMiGH z9k-UxT8f=xbRkfzDtwh;UK=&`hOyNrL7w{271o<3VM%yHzBck;l~o7Z$d4cM$E~x{ zkRr8WOo9={MAK-k@rBz|XVt*hxC8DEucxUK62nvFL5=>_R$l<(&+U&Ad2q^+PhoGs zQ|*mJyrH@PG(vZGx7Qu2YL~ore{UV8u2cAW)?gs81kl{ZZZ4Wa-f*{jLjY=3X*-^; z4uZx5CW%syr@jY-P8?h9D6YL0bJ!FFnILj}P)j-40AY(im>sW&(61gpbg_j43&fufQp1JiseThMHvwlH8`sP_U<)ryqtF#xBt$M{n?e0JpcaYh_3>t#LcKlfw?7)~(4K&K~9=E?V5^+O|KohvOC{`Pc z_}Y70%iUd=fzs}7zYi=}YU{(DJ~Su1mVY2s;fM)_;t653?_wF?;*K^2BYgPs%s^G} zkT(m@60?{-#Qm2>t{Y!y`rQtfQJSf?vfeyd7 z8JnRS^r|pVeMO+Hr)v$XCOkWl@IoIaxnW!{NTG;m1t3Oz(Ak%w9Z0*es@FqD;bI!S zyvX&ZAVjfLq~W@lfZn2HNNa<)4PwLJi-XdO$?s-9DB_U+oZ^kii;I5^-mc(!qeQhr zfK>#-I8>_CLg(|Fc+rb4h{suY!5CsA05x@Bur~O@UL-M(JhV$gzF-J@grC!ecvHxS zNe?x+eX7eO4T1l9&o0kttkaQ8$EGcU^24LPTbnHV1g7YpIRWb9DC zFVY+1i$qIl@O43;qE2izOheG4EF&yXtX{S&eHgSD4ac?*v&Y%Ir`2@D&PZi;)p*-F zF^^pa!r9!WAEw$Nzev2)D}Os3U+s!n(A;V z3IV6e5_?6b@NwRZ!h;*w*yOsvwkDPg3xQ9nh1h`JKt)$K);=^Ds_McB!|0840%;1W zlcdBR0bfEEKhsV>IR{g{FmufuB`*UhJ@q10I~c(iDi*4V;GH;KNEzDwwR2Zd~j0 z`>_d`z98u7T?(68M;qHhzBOJv6~M9F=G7%N51|rUOMTe8TxbP^Jq$%sCrWF@daMa$ zJ5q&`T*$=f5qFe87?pLp158(kt#QW0GI&abgU>NN$s?qepS~Xlu1O(Qtn2Z0ccBS7 zqiogz>PEcLPkaO$9)N+3sdR^V1@(wb#Af%x&{)rZ&}Fu!%7RGqZf5Nj8wSh7t3-p0 zm!OSpZa=RdFE#tRRiX(e121jG4tte_oZk!A2(x*-?QTrw02&{yjd(~Hs)NC`l7N)) zl!ihOxqiWMYGT5~5>wI_(oWA<)6)@i*9grMV>TYeBy~d)IsYL0KnmKXwbUcq(x| zRdWuuG@naMmMwTD8OpC(M}zsh+#A0+1F8?Cq+Sur%V1YkKvBe_rjj@aRYE`A!_|ED zspqizH(Cv-z2`u-8`ILic#(nHT`x#pbQQreQ#1J@C26s{%3ZbhXkF+%0+XgG60m~i-lefK< zhZjy9^uNp(YC~ZSJ#bLsMDOkPF2Xth1wCbqhexM0cJ{QlBgZWsRj;R%^)!Op7RRlw zDk&0H0Ww-xacD#VZ}Siy|zX zM)AQ=EB+}`)=!`$>%3x~v{t*}+Uks>Mw=9lBkFrGj?x_~r^3_WZGc=;r$Fl>tVgcA zG|^A2u4mwS2JOa z@yN#V+2YY@aU&1ef=-07(zrCW{!xpcA7!&Qx^mbgpjrk>$>Qw*O~r@D1FQxJ?!~H+ zgpw|jRC>K6%e^@1N=4!b9`1Bw3e^L07)er{OOhO*eBitnVu$`$-;<==>MOi~V1(Pm zM>FIdHFv^7ifN;2A+u%(4T>!$!W445<0yj_%a~69?1q42vyF|l(txLt1-dLXmQib9 z6+;}s+#$|q5zc8e(@63X<(0t8m$O(`GtvX+QB73q0=Sv=@s?zx44C17)>ZJ@Af$tw z8e&fwjgFJ8la!dnksV?M65OJ^D|>z^tGH-o0L4OyWG^=O+<~y9Vop_f7NEJo(uAr4 z0}kT|M($BnptJ+3dOVrcJA;L_RVY*}I@L4czEjD$^GaG&>MkIu}*Hf;BG^q{2!vg3Bvna{*&p0UhDa27%Pi;f84$^=lB*18+aQVFjXe=P&sufGbiFM7HOgDJ!0Yac(RnGeYyt}>7x>^+YU|V~ z5Jb?XkOeJ{m1B0Z$zNvWZa{~Hn@ssY2xcVsydm)6x&x-Q>Y)-rP+>uD^s!N)(hI!b z_Tef_=zNki!rwuDUuTa`Qe1`ZKoJ~H;fN$yKC6Tp0cAN0WrG;ek`z}EmssZR=FL&p zPH=!34LH*up_J!XK8{y?^RjCgb3T}1utVcNJQ~f4u)k26E+^OmxYXA& zIzUHb0=$ySdLU!j6R&1A(Kx$Fc@{Yt+Y7o1Av-~L#xR4@j5!s5`@)h25=6vsHQU@$ zR#5)vdq!B?p{S ziCP@XW7Ak?QzBPKV4UiyPFc75mSSgN5VhgbwG#uwcQBC!z7E*~YBk~x!Nc|>&Q|v4 z@*mzH@XMnMVfNa==?&|eHSMTMO%fom03#BHGeWZXArVi^r<%g2gDB_UK*s@PTv+nz ziE^B=BcwI5N>!uXkV5Q(=4#sfuzd}L8=y9V;o?_JtogB*P+_>pgaCvKMWK*^(KHXO zqUs7SUlb|=Mi(bXT|i+FKzbq=391zIHI;}+!?@>hJ=FIQ`!2ZIlB?vLLDH|_bnRf0 zt^_eNv_rO^qB^Ky9SvM10}Lnlr}%bAd4i=jQId4ra1pbhYw~sLR3Nw$*403^zSyaX z>mwxeTO@2fTrdOIJ-Jvo>lv+5hc9dNj6z!qw)wDMnthSZ>R^XqJ&1;mTVp>+>=(x$ z-m!5S1I!BX;y{wObsCSs_3jIIvP9tR&dP^Mu|YI`5*FC47%jEbR8#`W(w|eO zTvebw2;B(&E;fsznY!F)Wp{iSLJDg))QaWV2vHYqhkddkAX$1@vF<1pYk@aLQLWT( ze)T5f4vw#;1F#00f<4^j__I`QnAP1fiByHz#zzz{10yM+HBgv@&J!vLb~9FmF<4+` zIbx`tv5Sf-zF$NuI^%9EVzh4D%CSTi1{IJKZuWV=jjB}wo=KJHKwTRo597kuE|@}i zBiSdzwlnB?LLOJsIrqa9fopq)hY*?(s@*}TLm9-FIWa* zx;S8IDWh`S*M(Sk@)e8-9;Lm>i7&XWaxyIoeZjUGaUYYT#=%w-i zM{TRRWrNku!;Rwk=oi_k2Sdu}s#6&OW_~OZxT0BNNQTiU$PK>mj-t3VY7BA=AP0p- zsaRmqbeG;8#ImgGQB@PmKVJtTduWi?uh!dxHS3qldwBj~b^7BR%ZC4~l8;kN1td{j z2)8@m$W#r#{(t6xfK?9<*s#edh$${mZ9B6HndbK3~!#!$N?-;CZ;X`@0>dX9M|;nmlvvBJgB<(%7UYZ zbTdxnFb|Br7+VzK90cO397qM7g)NmbIGCFt;|7W~R*w);GPSi8%RypYp>{#uLw_M? zCwz6p$-(}uNgfcT8IUTHP=bbq3=5c;=wYc`5r~9(C2IjLIS4i_FUyGNzZB+sN_0`| zK9Q`V^RPb5CQ9d0Z2#C^VkG3{OV4JnyE_P983;J;<05OKhB;g5%B?MDv7p>$_Rz}c zO2SYG1W|f~+<6DPxQ&Px>Ehbi3B_maA}A{2r4~Y)JFpC)Mcy`Fm)jpkEpQMb#DT(H ztP8TYqqe6DSMC61*fJb=Q5S$-&nJzHnnX+^y#U?tx&!}tk9L6n2AfHw;vAcOxXd$vXdH(~QZr{jP#YFDOzQ*beEy;!s;|1T^G z77_t?1+XI9anvA8Oof;61P#D>*LL&-Vhn8W#IQKEn*Hf0NDnxOQ@C~E%#nbDcv!!U zJptb}Tp}?XLmWd8E*~u#ZGwMC4?c;JIkbkmq+bRa`Wg;2s7SiyXI!p{FB)NB>=}Xf zfD08pZ3t4OdU7sX1&WVXdMP5?LQ8R=u?5E2UZYuOlTb8Rqsd2Tqm5p%6a?C~iXi{FES9a8cL>pEIEj7Yf`W%-8D zg79W12Ww5xee|q_zK!2V2Y)S2MD;xP8jk%KBF7Kn*09b!12QT$qBBv7awTE}VFoD0 z*)YU)OpI_nEhY<8Dg9Lr8l;i4Rnpkg&AKJ;1CGz)F)R&rARr0;m>w9}qW;J7!g}Nv z8?Aac0zpG;!%b8?3F|YKtxCn7irz>XUTAC{1WNhC-F(?1S~p7;gD-9uVsMq;`kS7B zlNW~o%K@wk-jHkpA+8!TH~@w9$x>I(Y>y?OfiQbDtfD~NS)mIOUKYHcpqy_AsACeN zAc(qEllvTF?}{%;GI@siy!D0zZHpyiIf#hhLeX?lmvuxrq;U7w6X7sES@5t*a6GUI ztjk>7AV&n%FH@U>+|WvIkg5=atUQ!#L*e}7s3u9qEGsbpBrwa6FQU1!<_B9b5*Bu) zWvZi22#8{ZPAx~D;BZ=?0=PWA*!4At;6oV526rzXf*Wv1c1z@fT-eb0-cV3l{%uaE zDA!7u{z4O-2<}=z;P!*liJ^>>5dhn*hQ14Q_AH6>*4s@Hj0%nkc*+4h!6u*)q@rZXR+JHgpfB|XOPsuiQwR0~YxVphh5S|fTaw1z#l$lBLqpwICjgi-=vbv)?6^dX z7icQ89?K+rc>V1_3?vR`!dL%Ah8CBd6mED^RAjcQo7)?Y>jzgn33un1*Q)YxJWs2 zRPib<1BhP&G`Pi_sVl+yJwgr6Y99wFhe*jqwddo=va2x9#wi__#oD z@ake!h`%tz7eB23gd`|lrP$%GQcABia49Yk8fYhV$ULi$M_c4a2NYP*@DmS)KAUCqLlK0yH3VUw`5ctNvcK{_eO7T75 z0gLiM8;>D8_-w4}eT}~l(#dMRbOfzOV4;pEpNNPuonrXr4emHUyH1MpTtMiGY}6eY zG8Fn185CWES{)2@hzem4DiA#r5(jA9c?^R`_wULj99wS~7F>BN&i^6%8w=8P;cqTx zP^J%I@Ob%8>J zPwKis6yqR&9f@|{1tkd9?VWm$T z6>(%ej9h1$)FyTFDpUqGs*O2X;^aMxhH&f(X7IV9AN^trvpI@lSatgbGG91*OT&7I zf?h)}6e~z%TDCka&+%r)0l>bXkULCk!p1v-cuwiWSRfq%h-qJ2m;!vIMC^gaRao@> z859^;zydT3P1e00LA>xsHY43irs3FM0Mid7)(BXv~E6lF=@R=Ul_{%Qji_WfJ zTme<*3D!pkymY|%)%0jmVriI)9UkXs#poEJ(XnZ!0WrsMbR=~rKpgR#779yGQQD(d z-28^OgrJ8ZtZ*Xm@?ga>5Es83mxWkU-7t>T8JAt^3&qpneD@+60q?c2M$O?bJiLCK z7aooW#(5Y4MYlU8R4i=V;OSV@CT$PPA*4TT9QaWp4*#(J0%cfUL`1PLM!Ip`9FB$t zgynwNi%StqHrAb-u{wf-Bjh&x)tECJkHR!}-n7=%NT)B1cQF}sb;}hkW|6PQ)E%vU zBPPpLs4&vi>jknnquIvwHqIq@wb;GeCAJt_N-CiWHB1Oa^XP6rokMq5D6E~|{bXGn zhqS!9pg&@mcHu$95InOBdSR>M+*GUsV&fI*%*!g?_PQIc)$ohTwGc93HRIk8CrX&T z*L=}3;BzXXwHTlJ;N^#j)jx-!t|zb}+OP{@kOol%<~OSQv&j_Za}%8l!%Y+dCURZ{ znJa>bZLC-I3ag?S`n$rqq(^9pgcF8TSl}64 zP#&?#qi$y|x|c;4hJnX}O<6ruNQn%QGo|A5jEX5J7RHOs#y*HAl^f1do`J6Jm;nH1 zD28f~ixe$Dz3hyOP8ZgxF>|VjL5D8yHymy14X7|&-0Z5vG~it7z|94ZE`}q{Qy1NF zDhsNeO2C1n64)WiJEPDAaIwk@7>2(U=fQ?(n&mnRS7xffH*UhL-0MdiJC?cA=oRnR z7}_R8ew3wMn6NxVa)u3^e?6vvGr9$OQ2qj(B3ML&UU&}U^8g#8ClYQ=U_Wv@^qUJT z9|$SP#4z6=;>}_=#}eS90|tXA^|fAHORs^$8Y2zWP&G%s6a)gK1%ERLrUDx?+$!9* zV6iI`C=~3#sfW?_cqCjL4ljemy<-}iKZ*&RQ3+2_3=d`2K=yWFPjgUGGfoX+YQbW*$SW+?P=~t6~;-iNL=T zqjnl{nBqK@$W|UymPVLk7z`flC3!iNQ91WJRSHWBI8O!#x`>Oe6rJidR*sH`5IoSM3pG82LU~j9WJE^KdhAau-%`8~x*?2ri*YQ=txsu0 z_j0nG2!!_#{%}LMxz>6o@-~u8Fl6&W~XjRQQ@AEMV5ip8ymTb=dNY zQ3xfD;0+_Bnu3y6VpB1M`2rD9F&uXzf>-W^HVFiib zmPW`HsuC>3B)CCw(j(E$RzHL#ZkBmvK;eapAGbD`cKz%Vf>NtsA?oS|r*KC3BAnm} zPKqc1udkt+g<-ao^L#`UA2@y4ASQPUCH z{3JeyB8HDwM^GleA_aYi^J10^c8?e?dIlP;r}TqC{L1Q~NU*!w+pf9{{Vp0R6pm8a zNhTUalw#bq45W6l1dWJIttWXoF9Ojo8PQ!N^0tX(5oVq}cnC~|9VKcU_kj(d2B;vu z&=Rmz!e=ED!@e1nFv7iX&b4BFB9sVxVUClk_I2?i`r8Y29MH?xvqrd;fkxN3ItwtG z%%m$Nl5WK{f+Tn;K>ZWP5N|Db@fdA_Hx#xBCmVP>%h!%@ZY%9V7n8D%#IbG=)S|`* zrubb|6*-I*rYE?nrH~5{jWO>{^!qSI4jeq?;>|fD2YL(kEXT6>y)1BHe8Ae3R7GID zFBA+&8aI)8%u3YL8w*{=^g&qi8zb_Jwc6cBP z=l}k6)Yb7{Jss!d_^+NHq-o8Y^k0>tJ2w8qvxZB9_xgWe`(F$)ucQB}gy=y3*CoUa z_J3W*83X=bm!uE+|L}bLz{j)Boi_y`U;2V=Qz{E$%HQG<@W;R%_W85qN)eS zr+z~KRtfM^c^*+ZW0y$~2#su}pe$@Qu`=~|`UbDOca85CMDMD;i5UVPFK}ZcvIQ;) zKL^c8N_qjQB$ANdZ4_7cnQwiFLayh1vol_0ifGl7ah8()B$NU6MsRgiQLRwnYkCj> z67{u1bQs@hQQ2+s5Vuy{6cfG!rX;eCbJhSt{EI$1PbC5yWN_o2QKPLB@FI+na(C&e zjoo~#=m>0;*xN365mqPjX9(G)r=!pd^c0&>9lbij9`HK#)h;$1Ii!I*9D7Zp(GM)l zAOz<<>lhv{-=Ff8vUnzgT~QS83Iq^~p!;vQycoh`!P=~DR`Ex$4DUJ1M)}2S@7a7yNP!r`xTtXbmbT ztTCe|`Gb2p{j*0BCn81iB!sbX7Vr{OcN@wZ8%E#`zj=U&GweWEZ1{i`e`XTJm##su z4qkbV@E;y;_!0>3AmAIPNa#LM)}2Jjkp$Zk&|4*qR>|K5J&{OIC9yLwnL=edI@S|R zNrVe34Mol*ipVfH*cH*>-oOLN`joT_`wT+Z$S``@P~q6Jix`pH+%et2ZN*51mT(K zMJ%KQsh7KZ*}W|OI(%^m7^GDQu^6z(t+R)e}d}GGLW}SWYx|WY8EbVF^P1UVix6VE1-1Bu$Rox;jpeK|uIaHBy zVfMV0sVABHlX`AecQfk8_Jl`xvO_nZA-?5l4}$glxsRqBI9gq89IgSi{&HT^>82U+ zObxdaP3N!k^9Bh^(Hz2Rans!}b4_Pk#{OC@o1TA|0h-h>r&%{gLy=*$G%&2NDb=Cz zqnPt)gJ6z^aLOG9rNXX_V8@JvNSJB`vOeaEqnD_2jMlrM(9a?#6Q<=W}Kz#o!jvwtJ?Fr1z)GwLTNu`Ru*Ix z{HLi2=SJN&S{&nR41=8Eoqf)pbfb3kw6z}R=rQV_a&DQRkwfGQ6^GcW^&Yl7pXhec zb`MaFJC|_lhyKXru-g7}v~_hk;2v1QcP7 zw|4F}l2v&>yQu#ST9RkxoV$IDdY%0Suzf!PCpTaHp8$rZ(DiNQ+QY^VkKwPnigSwx zS>yk4N;`A>_tHlA+u5a$0pl6^ItKS1K|(0(rDERa}*u$8X;M3 zv}&QLY1|quu7=Y%<0*xb@vj+A4U*fTnR~z6_ulpZ-<`SNxsC_G*mc~m?clXxFP%MI z$iLS|+2}AP8bhx)8Zo{?vUC)#iHD<%r#QHWlC(od-=yq@2BBEi=a|_y$$zEZR^ueA z9`sL=AnDNc6@%m3?t^Ep`r_B>M&dz+R|+IiVfAu=_#u>l4FZG}5X?-=rN}5v7sU$a ze<4BSvpdmm-v~xBG7>i#R2fULN^YlO?n*)!1V$8kHng_$ssT%$oL&FdQaNEU6MR?w zr?Ugx%4+X#<@d+2q`^;0DDeK4ElRyW$dQC6s@WhQ_bUe+n6aEvKyNc;8D#}%t?WBQja&%^_~?yb z_7DWh6z)P(Me5V^GBYa_!ub{rX8g0c>T(Zcgov#II*NW2(JC6P5Njx+dB%*JjEam& zYrI>531f^hdbRdZuHiNzTV6ztK5S93B56e?inrb28=+$QkY0;%(`D#} z*fvv#bI7*p)QxaqJN#6UW(QgRRke+)!(0cG{`%HqI9c5hu&FB z>b;+;ARt2GH%(x4HrUJQ+J=9uPTUBBTg|ac0_TKFH>B#DVZdIu1Fce2b8Y9W=rOct zsQL|&t+;@9c}>maFcnyd37R-vOI>7+TiZ2|_~$pmd&T*R?Bv6F5*h?F@UkFtW^=0l zZf+5~UKBSs9{a zF|)lsrrS%Mf@)2G0}~H$WRc?|*YDparKU4peBrA_z>rOse`V;mULRJ&5qf_-(_ltB zt`EZ-^k#qFz+yUsk-Sx!R{)~Ja?Yey{G zJ*^XEfP(Q0*`9Dbkn8?23zWP<95PYTWIh;0Wq3pHWN0@@6cu$h;(7_m)tG2lt|nM! z@4K@zd%q~jK6%q{NkUjgM-v4fHA>2L-lu_;B=VAX4YIe2?A=`9M^lp(pYs?q!=)r? z!`mnXxwPS6-6csn=8 z1Xcg_?8arfYI~8HF6j*}dWR#v$&|E?$0i(+4`?wi^+>rTA?*qEPFT9q$Wm#JH9g+CnkCJGrid#k276oeEM3cZ3){fQ#2Z- zgYZe|56OJ1{R$m7!nF{9H}0~nyq#rzyIYm%m&2C( z*k$7{x9ytl#YifA219ohbr(Y6gXY?pcjmcH}uA9|N`= zyD%0mA%i!>QOKRkMB<)SHel>7LK^+Ufq0zoRKik6^EET^_Y9SRO49EQL`r z;C>3~o}QgDNwO4Pu!0KmAZ{u*4}r2IDuH7|~4HXj6L4eQ`GJg@bOWh_#LQ%58X@+LP4F@a-XBX)s3OXcC#>I2f0X^ z>m|+K{S%6E`h3SDmqaDxmG{=2TpvJ7A051TVnidHJ3eldO3e{{Xm*Ge8Wi-Z?=arJQ%AK6f+HxnLISZ1i-OG5|6Fdiub7Qh5jeY=^vNc%H^BQ`8frrrGOgd>*84 zc!T~f>`kPUARkf3}!q@BN=uz(j!2+x!~`i97FjVuI^gqBBWHj zsQCoCcTj>DNNmm~>2`A@8iz)F6_g`3k6Y!7;LZI&mz=PFloJ42S4zZ9Uu(xx8S$hm3~g7 z``yhH$)0N%az|eMFSB!oKR@VjH}+bIlvX5L86Ofm3TeeSA?!W8LRCNIJ4B67HFz;% zXtw_RSZXkN;+(C2ioo>@S&#mvue(E7hB>zPLAt`rGIzI@UhBM`&@z2o93Ci;FKf>8 z>DdVV#(r<(KmPCE`K3qx$UVt|yL3#ZQ&DzUmL z&#ScAelZ6D$mP)LawliYrIJ69RA2HZD0KPDliG&`@YThgeaZGH*-XjCIn2 zLWgr{?FzUT<4*ocZO#?jT~sQyb*4k@o#{l>-kDS{sH0M;q>3)6O~xQAndm9Gwxs%U zGD0yKF-o%@*B;S`>a>~_xuCW~w3OKwok&S0Zle|scBcCUZ?Ro>x)a3s=^z^vR@q>e zi(_{A@x(ItANO~__hPZFkdH(*+)-%bx_P}(d(^wcm6y1?Vajl^)3w2eqPoe>P%+QNzQ1H*3|!OatNSfy;{}E8WTaH0pQ8+!-wLmZ@lK>5nK&ppDJDl55eC`l^P|1c6`IC5oj6fU zt5Zef0jVgJ7!Vh^ObanQnSr=E!V)#PIFyMNj1*kHeVB%sKDh9fEM`2!? zb>z({NbLHOtS6$DKLh?@k%8i{`k8FQkHxi#H_P-`{mcx45lB_&KI`bB`wtM?4)i;Y z`WM~S8^vZSm&i=M7HLNVbXP3QI+ETfGK}lz(Qj2vT%v6qJ6T!bwt%V}N3(C$OBhv+ zQQ5w#*y@UFa|SBTo#~T_g>}3lZbJ z$Qvri!Mq{8Lu!7UX0J0?G%3MGYsH0Sa0mH!1MctYSau7QtzJOnbiiK$p^eMMqER#1 zA&xQ##!;{>mpHDo+Y3&a&OirchGM`^CLnWuu<*-Ly5^r(s`@s~R(mc4*{QyjR^JlW zXkvaSTPwWMNnrLNGg7y7;%qXxxE-W1HfZtDZeP!!oi{zKeh3OC#c$=qU44tugS{96 zLB=5Dz!TT03iX)RNJuA_)m3|P*%vUWUTCWCq}6w5>W>bj2PA{lcS2_rOtz};$cY>% zcpTVU?Sc7)&T#3rbXz%AqiuO3_SR^d>|R-_g@}dL)4IiYqQlvSxKLMV3p=2P7N*g6l?LROJ-~Z)oBsBFrk{ z5x-bS(+p-8sZ6r51`#EX z26`|0E+mfDxd=NWHgT**<~m+fAA{N$ zvQsvQ#ZHTUiAJGzq3aM~qPJ9Mg)TUak}>Wy%661-P@FW^L{w?n(x}#Dje{CI<--@hZ7JJ7&e=a1C*WY?Og z%}3z^J@Fou6Yq6tWGCN4Hi8bnYo@IFimo}|r%*C`y$mlW->3A7#{Bg=3&g_z)fjmp z%`SNMWfvIlrXtr*D%Pofl-ivV2Ex7*fxqdeGs=IqK|I+p>>6 zY~=k3XP%i+Uf@C;bHOv}0)b(fUIbkOkugsqSj%_S%kyN?7_>Bdl)xv7dNqNX{IFw9 z=HH+hb$GbgDb^iI(adUmlV2; zQOp+z_Gn~QpnAr3V+z_PFV7*d)$yA5=v*B38Pj#`Wy-&Dm6P?=ov8ISq zeI^dsFtToNnDH>Z0V0T5gWHTZ6>21!9BDyBmP z!yp~1qguMl5u#tGJCph068(v_i+dIJ!B!4YB}`q{35Jz*{Sb-crdwAMo-IlW>mdzMb^j_)hn!qsW5 zBi7tQwp;(DB!fAcHq-DJTT$LUt#z53(gkJ9Zjc!8v!EI?k<;oXnHt0QVw7{eUE*#b z%HT9jr}n2IT&SK#Al2WU!t@yR?Gl5~t$-yy|=yZ!av$olS1G5D4r$aZRZx{{^mu_{2FfYpN$Cu<4e9 zBgEa?OuK+Ky~fSO9#m~o2Q;jJVC>gK3pIKGslqjJUfJ8}ct+&EcFZQ4>5MpvP^&$#e=17w7$&|mT zZ8S}&ZKQ;&_xQ_{pYEx6B`_i07}WgqJOn?t>2Y6$G>kX?O?F;_^0Fbau}_8-Pg0jg zbYn$)Yo)_fgB+EGwv4G*y;)okb1YQYX4uIDK#^uJQ?Eh5Ja%#CJe#g&+m^`g?M`dM zNo_2tjX+hBeVQDNQ<*lO_DH7AiTO%#)OJhKYs$0HUdb-n+h1RyH?57M8~pq{Ks%ZK zsqfH&J~TC|jZ-Fp5|xYXfH>M+Xj6CDr|GaIQTxmA#@EnLRpi!g#jV!%qyOj0{ZzAh z!2s^32E?jlJn^C#jYtnMcP)^Yi;LbMkS8?3&hv$uj^`()-j-pXdOJA^&k%izxh=^r zE%p=&9v=~=`H)D48e{DV%X%s!R4$U$n%ARWkw02Zy+@`)s)}@Kls-vo2L(bGRzI<6 znIyRSNiNF1V2wqXIsU&@C=eXm1jQ6Hk0^HdDrJ(h{a<%?=CW8Kb%_)dOX;92nFPWt zffCMk1>ph}GeOMuGh5Qxv^M1#0g=Fv%)GD71%e@{Ht&JDQl*p^4jpr>(4h9BLIb7@ zqydQ!(%MTLSing(3OOjq-R?Ef5V#MuxoCnpbx!@J(b zqgN@Qv0=2l5_zOUZ9eHUwC0bai6 zJVZ4ADTyUX_fv}_^O!~3ods^!5O9pNJG<+^5&3$AQhRPY6mE#hMR*bv58S90G zHY2b_aTSkC=58Y)+S=Tzv9hvF2<4tSth=U^5yUPpz^4yxx!3?RMvO%pH4-G$t<)uVSv zxfNf6(rFs-Le5Sb0Tkm@kLmXdDkj?8MlUhDzWO{$0ekIjKb6unYvN5VHeXRr3YuGT z2pMU1g+I-iDA=3=#ZQ^y)pA2>!yd~-om$$gjZ=4#K>&vMR{dVn#2}Bff%hc80Gs&!dPq~*< ztL=cD!(mrnk!!9k@>3Fzi@ZYa1FB~r*S!3ENcUAUAcoo?5Jh8yhNEpi;Zc zT|c-vv6!@tdRjzoq`!Z0zY>l$jP@&K-3`@$LjI!hBKx;;+Hrg*i7jSwuP3K=SSEr< z9s)F8A7I=+L}<9JXVTPX-r^5MKjA|p(|>!RE2m*vVpkKTC^0y0Adns9dLoVK51zEnRWMg`s9rky6O_1QQU9(i>_{FLOMS#hYwy&ipiPlYp-FX3HS$z|9Zy z|0MsPXDq5y6c(v)UV%oW(i_^?KrzoHugPKde0|dVqQz`V+UevUh5G7S_0l_eRF`fG zg#&{9T4<2HD`b>ZQ}so_*Lu_kQ&dI$5&(Jj72)ckdetg5TcZm$hB`}z)do8{7ZY&W z_NBJY#W7xFhfjo-0OL)uuA35sz1kenMwYUs3rd>8D*Y+mn;h2~5@>rGc!)BjUHUd1udv@Up78{ek|Bzf-$B`0d_;Sx-ej(gSm+e{e{5u`_j zg=EQ*>KEmIal~=Dkb_28eHM4c4Qg0V825oLsA#iFc7j`*DzDe({`wp(OVAOrJ#jBt zMBP2;a75}#k)q^p%wy+=zxoch{ZI~x!nR)0uW?zo)wnWBpD};cuUWCBU+ef}@~U+F zwxP;xX+ID6eg`O2e@LQ33Yre};@f>O8}5y{cb=PIoIhjLKovJ|*#p#0URSYYc7;MW z$g%51MNu!^xWNa64zoLroNNuw9c|Vm-0@5#k96x&om@QF@HWP{}jm;!Pzd@#Pc#%{)+P1 z+1@mJ)efH#S$OpMmi;_U^qxm6*cXB40f}t?El#r96v$e~ajNNd&0_p;x*X=oWRZBT zgTZ2YRMm4mx;u1^K?BF0N{6J#|KkWK9ys{+5=;V}63+N!F&)%6CnKJXzXi%9CT;sB zBS8EDs{;UUe7%@j@S+IH#)vcIknH({e5iWKU5GO;FbF0JHm!k&7igecv)n5=BY;CB zyCViS;lPWHX@D-Sp7r7;=X}0s;Apl@JP@K9&6&LqRlF8)@yTrM^Tza zJJhv%g}(uxX6Nj}@7wl=+GfK5D7Djg$PVw+b;v1O9tlx{T{I|L=_|H@sBtC`L{`%DE*Gj%rtY%ag~(j_?_u`p1X)00tiyh-g=k&vSi| z>(vU8`l=Nl-sba3$HsYj*UsGiF+_zzD{JuSR zKec+zx^-(;uivxwp4DS(*WI^z`=`*?PTZq^R0(Ld+5N3MV1%Y(c4 z&h)|Y=lG=HswY^&kVW@4ePjK=y#wpOx4f`^GGB933+OG>Rh9aginabyHSj}z1<>6?9>`T|+8!5( zbH-=yAcJ6-qQ9did8nBNHG<_{bA5L0T35#jw z-^*Q93A|c6aL>TTyVtK7Shw-MwfC$7`hjOp92?(sXx!G3UR8Pg#8WJF&+?+Xv`XZr zLoCGF?H4x`WOcuD_x^gvd<&!X15I<>b%I>AcAzNhS0lG!8pr*&3jKEr{pY_{-mhf| z^G|_^)pt9$C32glU3$&c?pNNgby~w0i3H+ao-d8u1J?oJm(5j!L0jZ>I*g6ZJsPp_ z+Escp&_H84jF~={Bz)GQ88gz9f473qnT@u532f#4NOI%5N`e7C{gIn5d>&@Fw<6~H zj*b8QIy2zNm45UezIE|mz5eHa@FyR?{Rh70<8Ph%xb{YK&Bbs3&c}az?nh_7^`n3J zd%n%3>c9B-_g@Qb{$b?)?zF`(=U8AC@!4uE)XTT+`H<#ezRbkRtoopsbF~K|x2OI+ zjHcy3=NN^;lYG)|aO_!v2sbRf8z0arqI2BKh=**ei?V3z97Df(cz-Ql;d;wqzTq~N>%GbU*~aOqd+#0FuxG7;?JV|-n3?9gcQ2hQhMa~9~M3M>eIeBVjA4C~3cXCgQ1wbg%vV(8Gm!*krR(pJt* z-5a?w`@hrN+uS>sujVdbCkvk+AXuG45AatM^v$!ydpzhZhxZ~;$Mgj?mO7tf;kmhH z;83$LO7vH@uCG7G#N0%`cr(M3n+f~rx+Tn)l@FgXm}A!8Od4(`Z2ZOVMD81PE?qUt zzv|01bIi1q>6|yDkJU+)4AM zxA}nb5C5m-h^+P}Dp#&*kRSdWTt9ynlaf4U49S9dcr z(7%?oWa6M}5rf}Ko-%n(Z_`h!SG$M#|CJv^?(04RP!;9%Y@cvDdHMPYH^`gnJKYfL ze|(waA+`@v*6;21|NRr)(DMIPqq1|qW?Sxeu~z`v{M*Js1XR7?t#{G&V)PL2)@o4< z{qD4@{JQaaRl9lpXKUd8u>CE7M&RTZ9n~w$(;@w?wOIq*{@;4ma)Af#3tSo5G6)BG z!&fh5+m{;*^e;7?(;^Cb;rh$$)h_(L{TYclfb|B2n=`2 60 +
  • + +
  • WULA_DamagePsychicScaling
  • + + + 1 + 1 + + None @@ -246,6 +255,15 @@ 2 60 +
  • + +
  • WULA_DamagePsychicScaling
  • + + + 1 + 1 + + None @@ -409,6 +427,15 @@ 20 60 +
  • + +
  • WULA_DamagePsychicScaling
  • + + + 1 + 1 + + None diff --git a/1.6/Defs/ThingDefs_Misc/Weapons/WULA_Test_Weapon.xml b/1.6/Defs/ThingDefs_Misc/Weapons/WULA_Test_Weapon.xml deleted file mode 100644 index 889a18fd..00000000 --- a/1.6/Defs/ThingDefs_Misc/Weapons/WULA_Test_Weapon.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - WULA_TestWeapon_PsychicScaling - - 一个用于测试心灵敏感度伤害缩放的武器。 - - Things/Item/Equipment/WeaponRanged/Autopistol - Graphic_Single - - Interact_Autopistol - - 1 - 1 - - None - true - -
  • - Verb_Shoot - true - Bullet_TestWeapon_PsychicScaling - 1.0 - 30 - Shot_Autopistol - GunTail_Light - 9 -
  • -
    - -
  • - 1.0 - 1.0 -
  • -
    -
    - - - Bullet_TestWeapon_PsychicScaling - - - Things/Projectile/Bullet_Small - Graphic_Single - - - Bullet - 10 - 50 - - -
    \ No newline at end of file diff --git a/1.6/Defs/ThingDefs_Misc/Weapons/WULA_Weapon.xml b/1.6/Defs/ThingDefs_Misc/Weapons/WULA_Weapon.xml index 714e0e2e..102c2dad 100644 --- a/1.6/Defs/ThingDefs_Misc/Weapons/WULA_Weapon.xml +++ b/1.6/Defs/ThingDefs_Misc/Weapons/WULA_Weapon.xml @@ -1106,12 +1106,12 @@
  • - Verb_Shoot + WulaFallenEmpire.Verb_ShootShotgun true WULA_Bullet_StarDrift_Shotgun_Spear 0.2 15 - 6 + 1 3 ChargeLance_Fire GunTail_Heavy @@ -1133,6 +1133,11 @@ 0.65 55 + +
  • + 6 +
  • + diff --git a/1.6/Defs/WeaponTraitDefs/WULA_WeaponCategoryDefs.xml b/1.6/Defs/WeaponTraitDefs/WULA_WeaponCategoryDefs.xml new file mode 100644 index 00000000..5731dd18 --- /dev/null +++ b/1.6/Defs/WeaponTraitDefs/WULA_WeaponCategoryDefs.xml @@ -0,0 +1,10 @@ + + + + + WULA_Psychic + + 与心灵能量相互作用的武器。 + + + \ No newline at end of file diff --git a/1.6/Defs/WeaponTraitDefs/WULA_WeaponTraitDefs.xml b/1.6/Defs/WeaponTraitDefs/WULA_WeaponTraitDefs.xml new file mode 100644 index 00000000..2498b14a --- /dev/null +++ b/1.6/Defs/WeaponTraitDefs/WULA_WeaponTraitDefs.xml @@ -0,0 +1,16 @@ + + + + + WULA_DamagePsychicScaling + + 这把武器的伤害会随着使用者的心灵敏感度而变化。 + 1 + WULA_Psychic + + + + + + + \ No newline at end of file diff --git a/Source/WulaFallenEmpire/CompCustomUniqueWeapon.cs b/Source/WulaFallenEmpire/CompCustomUniqueWeapon.cs new file mode 100644 index 00000000..62f94841 --- /dev/null +++ b/Source/WulaFallenEmpire/CompCustomUniqueWeapon.cs @@ -0,0 +1,154 @@ +using System.Collections.Generic; +using System.Linq; +using System.Text; +using UnityEngine; +using Verse; +using RimWorld; + +namespace WulaFallenEmpire +{ + public class CompCustomUniqueWeapon : CompUniqueWeapon + { + // 使用 'new' 关键字来明确隐藏基类成员,解决 CS0108 警告 + public new CompProperties_CustomUniqueWeapon Props => (CompProperties_CustomUniqueWeapon)props; + + private List customTraits = new List(); + + // 使用 'new' 关键字隐藏基类属性,解决 CS0506 错误 + public new List TraitsListForReading => customTraits; + + // PostExposeData 是 virtual 的,保留 override + public override void PostExposeData() + { + base.PostExposeData(); + Scribe_Collections.Look(ref customTraits, "customTraits", LookMode.Def); + if (Scribe.mode == LoadSaveMode.PostLoadInit) + { + if (customTraits == null) customTraits = new List(); + SetupCustomTraits(fromSave: true); + } + } + + // PostPostMake 是 virtual 的,保留 override + public override void PostPostMake() + { + InitializeCustomTraits(); + if (parent.TryGetComp(out var comp)) + { + comp.SetQuality(QualityUtility.GenerateQuality(QualityGenerator.Super), ArtGenerationContext.Outsider); + } + } + + private void InitializeCustomTraits() + { + if (customTraits == null) customTraits = new List(); + customTraits.Clear(); + + if (Props.forcedTraits != null) + { + foreach (var traitToForce in Props.forcedTraits) + { + if (customTraits.All(t => !t.Overlaps(traitToForce))) + { + customTraits.Add(traitToForce); + } + } + } + + IntRange traitRange = Props.numTraitsRange ?? new IntRange(1, 3); + int totalTraitsTarget = Mathf.Max(customTraits.Count, traitRange.RandomInRange); + int missingTraits = totalTraitsTarget - customTraits.Count; + + if (missingTraits > 0) + { + // CanAddTrait 现在是我们自己的 'new' 方法 + IEnumerable possibleTraits = DefDatabase.AllDefs.Where(CanAddTrait); + for (int i = 0; i < missingTraits; i++) + { + if (!possibleTraits.Any()) break; + + var chosenTrait = possibleTraits.RandomElementByWeight(t => t.commonality); + customTraits.Add(chosenTrait); + + possibleTraits = possibleTraits.Where(t => t != chosenTrait && !t.Overlaps(chosenTrait)); + } + } + + SetupCustomTraits(fromSave: false); + } + + private void SetupCustomTraits(bool fromSave) + { + foreach (WeaponTraitDef trait in customTraits) + { + if (trait.abilityProps != null && parent.GetComp() is CompEquippableAbilityReloadable comp) + { + comp.props = trait.abilityProps; + if (!fromSave) + { + comp.Notify_PropsChanged(); + } + } + } + } + + // 使用 'new' 关键字隐藏基类方法,解决 CS0506 错误 + public new bool CanAddTrait(WeaponTraitDef trait) + { + if (customTraits.Any(t => t == trait || t.Overlaps(t))) + return false; + + if (Props.weaponCategories != null && Props.weaponCategories.Any() && !Props.weaponCategories.Contains(trait.weaponCategory)) + return false; + + if (customTraits.Count == 0 && !trait.canGenerateAlone) + return false; + + return true; + } + + // --- 下面的方法都是 virtual 的,保留 override --- + + public override string TransformLabel(string label) => label; + public override Color? ForceColor() => null; + + public override float GetStatOffset(StatDef stat) => customTraits.Sum(t => t.statOffsets.GetStatOffsetFromList(stat)); + public override float GetStatFactor(StatDef stat) => customTraits.Aggregate(1f, (current, t) => current * t.statFactors.GetStatFactorFromList(stat)); + + public override string CompInspectStringExtra() + { + if (customTraits.NullOrEmpty()) return null; + return "WeaponTraits".Translate() + ": " + customTraits.Select(t => t.label).ToCommaList().CapitalizeFirst(); + } + + public override string CompTipStringExtra() + { + if (customTraits.NullOrEmpty()) return base.CompTipStringExtra(); + return "WeaponTraits".Translate() + ": " + customTraits.Select(t => t.label).ToCommaList().CapitalizeFirst(); + } + + public override IEnumerable SpecialDisplayStats() + { + if (customTraits.NullOrEmpty()) yield break; + + var builder = new StringBuilder(); + builder.AppendLine("Stat_ThingUniqueWeaponTrait_Desc".Translate()); + builder.AppendLine(); + + for (int i = 0; i < customTraits.Count; i++) + { + WeaponTraitDef trait = customTraits[i]; + builder.AppendLine(trait.LabelCap.Colorize(ColorLibrary.Yellow)); + builder.AppendLine(trait.description); + if (i < customTraits.Count - 1) builder.AppendLine(); + } + + yield return new StatDrawEntry( + parent.def.IsMeleeWeapon ? StatCategoryDefOf.Weapon_Melee : StatCategoryDefOf.Weapon_Ranged, + "Stat_ThingUniqueWeaponTrait_Label".Translate(), + customTraits.Select(t => t.label).ToCommaList().CapitalizeFirst(), + builder.ToString(), + 1104); + } + } +} \ No newline at end of file diff --git a/Source/WulaFallenEmpire/CompProperties_CustomUniqueWeapon.cs b/Source/WulaFallenEmpire/CompProperties_CustomUniqueWeapon.cs new file mode 100644 index 00000000..514a2bf3 --- /dev/null +++ b/Source/WulaFallenEmpire/CompProperties_CustomUniqueWeapon.cs @@ -0,0 +1,21 @@ +using System.Collections.Generic; +using Verse; +using RimWorld; + +namespace WulaFallenEmpire +{ + public class CompProperties_CustomUniqueWeapon : CompProperties_UniqueWeapon + { + // A list of traits that will always be added to the weapon. + public List forcedTraits; + + // The range of traits to randomly add. If not defined in XML, a default of 1-3 will be used. + public IntRange? numTraitsRange; + + public CompProperties_CustomUniqueWeapon() + { + // Point to the implementation of our custom logic. + this.compClass = typeof(CompCustomUniqueWeapon); + } + } +} \ No newline at end of file diff --git a/Source/WulaFallenEmpire/WulaFallenEmpire.csproj b/Source/WulaFallenEmpire/WulaFallenEmpire.csproj index f8269d67..8771b901 100644 --- a/Source/WulaFallenEmpire/WulaFallenEmpire.csproj +++ b/Source/WulaFallenEmpire/WulaFallenEmpire.csproj @@ -69,6 +69,8 @@ + + From dcc799f767d3439fd89055f6b740382dc30e7d53 Mon Sep 17 00:00:00 2001 From: "ProjectKoi-Kalo\\Kalo" Date: Sun, 3 Aug 2025 15:47:06 +0800 Subject: [PATCH 2/3] mcpv3 --- Source/MCP/mcpserver_stdio.py | 192 ++++++++++++++++++++++++++++------ 1 file changed, 161 insertions(+), 31 deletions(-) diff --git a/Source/MCP/mcpserver_stdio.py b/Source/MCP/mcpserver_stdio.py index d78758c6..b7f87a46 100644 --- a/Source/MCP/mcpserver_stdio.py +++ b/Source/MCP/mcpserver_stdio.py @@ -87,23 +87,121 @@ def get_embedding(text: str): logging.error(f"调用向量API时出错: {e}", exc_info=True) raise -def find_most_similar_file(question_embedding, file_embeddings): - """在文件向量中找到与问题向量最相似的一个""" - if not question_embedding or not file_embeddings: - return None - - # 将文件嵌入列表转换为NumPy数组 - file_vectors = np.array([emb['embedding'] for emb in file_embeddings]) - question_vector = np.array(question_embedding).reshape(1, -1) - - # 计算余弦相似度 - similarities = cosine_similarity(question_vector, file_vectors)[0] - - # 找到最相似的文件的索引 - most_similar_index = np.argmax(similarities) - - # 返回最相似的文件路径 - return file_embeddings[most_similar_index]['path'] +def find_most_similar_files(question_embedding, file_embeddings, top_n=3, min_similarity=0.5): + """在文件向量中找到与问题向量最相似的 top_n 个文件。""" + if not question_embedding or not file_embeddings: + return [] + + file_vectors = np.array([emb['embedding'] for emb in file_embeddings]) + question_vector = np.array(question_embedding).reshape(1, -1) + + similarities = cosine_similarity(question_vector, file_vectors)[0] + + # 获取排序后的索引 + sorted_indices = np.argsort(similarities)[::-1] + + # 筛选出最相关的结果 + results = [] + for i in sorted_indices: + similarity_score = similarities[i] + if similarity_score >= min_similarity and len(results) < top_n: + results.append({ + 'path': file_embeddings[i]['path'], + 'similarity': similarity_score + }) + else: + break + + return results + +def extract_relevant_code(file_path, keyword): + """从文件中智能提取包含关键词的完整代码块 (C#类 或 XML Def)。""" + try: + with open(file_path, 'r', encoding='utf-8') as f: + content = f.read() + + lines = content.split('\n') + keyword_lower = keyword.lower() + + found_line_index = -1 + for i, line in enumerate(lines): + if keyword_lower in line.lower(): + found_line_index = i + break + + if found_line_index == -1: + return "" + + # 根据文件类型选择提取策略 + if file_path.endswith(('.cs', '.txt')): + # C# 提取策略:寻找完整的类 + return extract_csharp_class(lines, found_line_index) + elif file_path.endswith('.xml'): + # XML 提取策略:寻找完整的 Def + return extract_xml_def(lines, found_line_index) + else: + return "" # 不支持的文件类型 + + except Exception as e: + logging.error(f"提取代码时出错 {file_path}: {e}") + return f"# Error reading file: {e}" + +def extract_csharp_class(lines, start_index): + """从C#代码行中提取完整的类定义。""" + # 向上找到 class 声明 + class_start_index = -1 + brace_level_at_class_start = -1 + for i in range(start_index, -1, -1): + line = lines[i] + if 'class ' in line: + class_start_index = i + brace_level_at_class_start = line.count('{') - line.count('}') + break + + if class_start_index == -1: return "" # 没找到类 + + # 从 class 声明开始,向下找到匹配的 '}' + brace_count = brace_level_at_class_start + class_end_index = -1 + for i in range(class_start_index + 1, len(lines)): + line = lines[i] + brace_count += line.count('{') + brace_count -= line.count('}') + if brace_count <= 0: # 找到匹配的闭合括号 + class_end_index = i + break + + if class_end_index != -1: + return "\n".join(lines[class_start_index:class_end_index+1]) + return "" # 未找到完整的类块 + +def extract_xml_def(lines, start_index): + """从XML行中提取完整的Def块。""" + import re + # 向上找到 + def_start_index = -1 + def_tag = "" + for i in range(start_index, -1, -1): + line = lines[i].strip() + match = re.match(r'<(\w+)\s+.*>', line) or re.match(r'<(\w+)>', line) + if match and ('Def' in match.group(1) or 'def' in match.group(1)): + # 这是一个简化的判断,实际中可能需要更复杂的逻辑 + def_start_index = i + def_tag = match.group(1) + break + + if def_start_index == -1: return "" + + # 向下找到匹配的 + def_end_index = -1 + for i in range(def_start_index + 1, len(lines)): + if f'' in lines[i]: + def_end_index = i + break + + if def_end_index != -1: + return "\n".join(lines[def_start_index:def_end_index+1]) + return "" # 5. --- 核心功能函数 --- def find_files_with_keyword(roots, keyword, extensions=['.xml', '.cs', '.txt']): @@ -183,8 +281,8 @@ mcp = FastMCP( @mcp.tool() def get_context(question: str) -> str: """ - 根据问题中的关键词和向量相似度,在RimWorld知识库中搜索最相关的XML或C#文件。 - 返回最匹配的文件路径。 + 根据问题中的关键词和向量相似度,在RimWorld知识库中搜索最相关的多个代码片段, + 并将其整合后返回。 """ logging.info(f"收到问题: {question}") keyword = find_keyword_in_question(question) @@ -196,9 +294,9 @@ def get_context(question: str) -> str: # 1. 检查缓存 if keyword in knowledge_cache: - cached_path = knowledge_cache[keyword] - logging.info(f"缓存命中: 关键词 '{keyword}' -> {cached_path}") - return f"根据知识库缓存,与 '{keyword}' 最相关的定义文件是:\n{cached_path}" + cached_result = knowledge_cache[keyword] + logging.info(f"缓存命中: 关键词 '{keyword}'") + return cached_result logging.info(f"缓存未命中,开始实时搜索: {keyword}") @@ -221,7 +319,6 @@ def get_context(question: str) -> str: try: with open(file_path, 'r', encoding='utf-8') as f: content = f.read() - # v4模型支持更长的输入 file_embedding = get_embedding(content[:8000]) if file_embedding: file_embeddings.append({'path': file_path, 'embedding': file_embedding}) @@ -231,18 +328,51 @@ def get_context(question: str) -> str: if not file_embeddings: return "无法为任何候选文件生成向量。" - # 找到最相似的文件 - best_match_path = find_most_similar_file(question_embedding, file_embeddings) + # 找到最相似的多个文件 + best_matches = find_most_similar_files(question_embedding, file_embeddings, top_n=3) - if not best_match_path: - return "计算向量相似度失败。" + if not best_matches: + return "计算向量相似度失败或没有找到足够相似的文件。" - # 4. 更新缓存并返回结果 - logging.info(f"向量搜索完成。最匹配的文件是: {best_match_path}") - knowledge_cache[keyword] = best_match_path + # 4. 提取代码并格式化输出 + output_parts = [f"根据向量相似度分析,与 '{keyword}' 最相关的代码定义如下:\n"] + + for match in best_matches: + file_path = match['path'] + similarity = match['similarity'] + + # 智能提取代码块 + code_block = extract_relevant_code(file_path, keyword) + + # 如果提取失败,则跳过这个文件 + if not code_block or code_block.startswith("# Error"): + logging.warning(f"未能从 {file_path} 提取到完整的代码块。") + continue + + # 确定语言类型用于markdown高亮 + lang = "csharp" if file_path.endswith(('.cs', '.txt')) else "xml" + + output_parts.append( + f"---\n" + f"**文件路径:** `{file_path}`\n" + f"**相似度:** {similarity:.4f}\n\n" + f"```{lang}\n" + f"{code_block}\n" + f"```" + ) + + # 如果没有任何代码块被成功提取 + if len(output_parts) <= 1: + return f"虽然找到了相似的文件,但无法在其中提取到关于 '{keyword}' 的完整代码块。" + + final_output = "\n".join(output_parts) + + # 5. 更新缓存并返回结果 + logging.info(f"向量搜索完成。找到了 {len(best_matches)} 个匹配项并成功提取了代码。") + knowledge_cache[keyword] = final_output save_cache(knowledge_cache) - return f"根据向量相似度分析,与 '{keyword}' 最相关的定义文件是:\n{best_match_path}" + return final_output except Exception as e: logging.error(f"处理请求时发生意外错误: {e}", exc_info=True) From 1ed4284587893c357d4b58b5842b0c4a9e0afc32 Mon Sep 17 00:00:00 2001 From: "ProjectKoi-Kalo\\Kalo" Date: Sun, 3 Aug 2025 15:56:26 +0800 Subject: [PATCH 3/3] =?UTF-8?q?refactor(cache):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E7=BC=93=E5=AD=98=E6=9C=BA=E5=88=B6=EF=BC=8C=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E5=88=86=E6=96=87=E4=BB=B6=E5=AD=98=E5=82=A8=E6=9B=BF=E4=BB=A3?= =?UTF-8?q?=E5=8D=95=E4=B8=AAJSON?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Source/MCP/mcpserver_stdio.py | 55 ++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/Source/MCP/mcpserver_stdio.py b/Source/MCP/mcpserver_stdio.py index b7f87a46..6c25ef40 100644 --- a/Source/MCP/mcpserver_stdio.py +++ b/Source/MCP/mcpserver_stdio.py @@ -45,28 +45,32 @@ KNOWLEDGE_BASE_PATHS = [ r"C:\Steam\steamapps\common\RimWorld\Data" ] -# 3. --- 缓存管理 --- -def load_cache(): - """加载缓存文件""" - if os.path.exists(CACHE_FILE_PATH): - try: - with open(CACHE_FILE_PATH, 'r', encoding='utf-8') as f: - return json.load(f) - except (json.JSONDecodeError, IOError) as e: - logging.error(f"读取缓存文件失败: {e}") - return {} - return {} +# 3. --- 缓存管理 (分文件存储) --- +def load_cache_for_keyword(keyword: str): + """为指定关键词加载缓存文件。""" + # 清理关键词,使其适合作为文件名 + safe_filename = "".join(c for c in keyword if c.isalnum() or c in ('_', '-')).rstrip() + cache_file = os.path.join(CACHE_DIR, f"{safe_filename}.txt") + + if os.path.exists(cache_file): + try: + with open(cache_file, 'r', encoding='utf-8') as f: + return f.read() + except IOError as e: + logging.error(f"读取缓存文件 {cache_file} 失败: {e}") + return None + return None -def save_cache(cache_data): - """保存缓存到文件""" - try: - with open(CACHE_FILE_PATH, 'w', encoding='utf-8') as f: - json.dump(cache_data, f, ensure_ascii=False, indent=4) - except IOError as e: - logging.error(f"写入缓存文件失败: {e}") - -# 加载初始缓存 -knowledge_cache = load_cache() +def save_cache_for_keyword(keyword: str, data: str): + """为指定关键词保存缓存到单独的文件。""" + safe_filename = "".join(c for c in keyword if c.isalnum() or c in ('_', '-')).rstrip() + cache_file = os.path.join(CACHE_DIR, f"{safe_filename}.txt") + + try: + with open(cache_file, 'w', encoding='utf-8') as f: + f.write(data) + except IOError as e: + logging.error(f"写入缓存文件 {cache_file} 失败: {e}") # 4. --- 向量化与相似度计算 --- @retry(wait=wait_random_exponential(min=1, max=60), stop=stop_after_attempt(6)) @@ -292,9 +296,9 @@ def get_context(question: str) -> str: logging.info(f"提取到关键词: {keyword}") - # 1. 检查缓存 - if keyword in knowledge_cache: - cached_result = knowledge_cache[keyword] + # 1. 检查缓存 (新逻辑) + cached_result = load_cache_for_keyword(keyword) + if cached_result: logging.info(f"缓存命中: 关键词 '{keyword}'") return cached_result @@ -369,8 +373,7 @@ def get_context(question: str) -> str: # 5. 更新缓存并返回结果 logging.info(f"向量搜索完成。找到了 {len(best_matches)} 个匹配项并成功提取了代码。") - knowledge_cache[keyword] = final_output - save_cache(knowledge_cache) + save_cache_for_keyword(keyword, final_output) return final_output