From a84e7bbb94631de074aa1a90e7cb62f50db76c1e Mon Sep 17 00:00:00 2001 From: "ProjectKoi-Kalo\\Kalo" Date: Fri, 5 Sep 2025 13:53:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=AB=E5=9C=B0=E5=92=8Chediff?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1.6/1.6/Assemblies/ArachnaeSwarm.dll | Bin 73728 -> 74240 bytes 1.6/1.6/Defs/PawnKindDef/ARA_PawnKinds.xml | 3 -- .../Defs/ThingDef_Races/ARA_RaceBaseSwarm.xml | 21 +++++--- .../ARA_CompHediffGiver/CompHediffGiver.cs | 45 ++++++++++++++++++ .../CompProperties_HediffGiver.cs | 23 +++++++++ .../JobClean/JobGiver_Cleaner.cs | 13 +++-- .../JobClean/WorkGiver_ArachnaeClean.cs | 23 +++++++-- Source/ArachnaeSwarm/ArachnaeSwarm.csproj | 2 + 8 files changed, 113 insertions(+), 17 deletions(-) create mode 100644 Source/ArachnaeSwarm/ARA_CompHediffGiver/CompHediffGiver.cs create mode 100644 Source/ArachnaeSwarm/ARA_CompHediffGiver/CompProperties_HediffGiver.cs diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll index e6f889496fe31a2e860f541242499072b0d4672a..9b6b97f549ec16521fcf02b1c3bc1e1a834a8a29 100644 GIT binary patch delta 33958 zcmb5X34B!5^#^|5o0&IDW|G-5GugE;xiq1Ql9Q z>4*_maH*nbwYY#{MWI+)7qGUKx`E5&W4`_yYRkqN^z+NEzQ z^f~8hJ&(w@KjLa)o3Z2sdpimGIKL$TJ$_U!NMWO1E_cOeDM<5T}m>mRq7yZ}V9KEG9;{avAb}G`t z*0uu#AmxvG0GQjPS1s;I|^rW^6^Asy<_28*WyF1xBU(uign@l)W%{tXcS zLFw%DiYU$xp9VE*Gh#m`GYj)==oFfdeU}_mnD6NTOAr497$yy%Be}FN6e?C0YM`(r zSNH01T}$3oSf4O~>WWMydr*&=QI1=SaRwh|I7LU2bhN8z}jrD^n zYb**F^!vR=M`jNWlo1TuAy7v4K!@(LdaPCVvFnLibdZsV2#JGBmG|huU<-R&54Ny# z^e|!x3H?w`a!FBEqJ#}^E_Bf4E7DNGVT7Hy#9UH&934V)dKkbFP8Sl7ilJx-+3q1z zJOf03S4b)qWldkS6mx?Y^>(LtK!K+nhBHDow$YmqrGM2|_)us;XU+NwKNtIRG0;+X zmdWt4GNuKC(os1B0s~ke*fLP$Ff7q!CJ$EChjb%%W>x`b7MxgPrh7EZUZoN`9^c8E zihCq7(K-*;OF3uRps=4PqLRpIi?*-{XLzw7q+J+%rf>))pP4-7cs(j%YT!UddqD|n zOp#-l8XZ2v!&3)`E$ShU0Uq}vhWXY(7$pR4IVj8EGj#-z{hfo4OjUV?IQ@)?{gbmw zauQ+@`z)5rE!ZP#y!LP&7ainr#0QB2 zG(A2%`C@5K&tf*k@3Yixfm3-3kD-RcOX0c56OKZ(1QR;9V=@AGY;maVG zX5|>!J$4advdJ2Vl|rQton;<7(+Y3+ED`82p;fMXd2(S{X`&q6T!Co-OOC1KcF+xT z3#{OkhcOw}Mw}@rLKzen(V*NhSc@=o87s;`@CU+ST+$+Bt>lcg5@u&!lsvSi0t`pd zPd_CRX=IWKB3=nnEW#iV1$5Ru1Zm9VRX|*1zv6;qVR=ZaP7Wx~@6!{sB|e+SX6@rQ zd92}ia7k8HAP@-GfWy-vcRjz;KOXeGHo399m%A6(116}bVr3{xzENI(Nkx}Q{xmVl zDF(XyKC_@c%YPfmHu{XZz8Z`)#7H09X}#hCgqST$`M(}h1Jv7My_1)Pvta)EaM4_4 ze!9uy`VY%}8J>*#O{jo)d0dDpH{$lVS((Sr00jyB43%<4Y+x7YbnYXcij7 z)%+fRbRn`jd=9WGw-FnQYpekvHM3-TGNYNahCSpDj{{u{F+qm7j%$J>^lmr#wE1H5Ylp(Hu`$ zkScFVmnV#IHKRJ3m;wRR8YP+1hX;TM_X@Qq&Eg%Gd#`ySJ8uj)k(wV@UsE zGq_sR6OFpb?%t-)vaJLzCasgcEhZ%`&N}Jj5=++OiNt zj}^;0dF;GzS_B-^3QsWO(Fmpi-XAXpwfV1@iDH+c6bm67e3PPK+hPv7BIQOb3nXlx zUDlXv80s*ly6t>j5pytkXRS-CN^Y;sReOpvJ0Rqn?4g6sNVd^cUG61h*K7s{ySm4* z`x*tksr@MC#BO^|tP|ZgaGhH+tY~`Wn68_wFm_o+g6B%A>8S34a zw@wwL>+y3?4mP&%MIqP`V`QP1c2vOhi=8S}UP{;`ay4BKU&B)kn<$kkv96lvWeDM} z1#QR;UaX#|0h?jW)OC-7m8vuvl`xpoto65n2(l7}k8n#MYPq|?@G^G)WdP2|3|lOg zboMTdUJkU=*SzgO=NxL;UJj1ETMMz~WhF3rY*5n+TgE21K@#f=* zbACx|B{;1tB$9gU3g9b)*euAVf!#L@hGJI(%CPan zt>6D|WoF%UBkPG>3G+JR%7)?21csgaKMYIsfPo~yYvGkn)aw>2K3LOS+_KX!*!GzLQ=7h5`91sWg(li)@`%uq{4#@DPZRkCaK;T<} zues}NJ-9tIR;&^|%!yrtVwn=f_U$L(CTH~x_36VJNmCl{6@^^~2uRUtYj`#4Rux;r zEx1N=tg$u8hx?YK^L-IEuCK!?J=~W3Yv0@i3`3T+L3y|p+%V(eHYInn$ermojL^{N zifdUe7oBw4;#1JN&+4^?*MV5&(!wixNU z9@2K+0t9$}7WFkRLU`1+M;Q`v1jEX7%v2T}q14emNEh4=dRFKuH*94$cr_!=h157e zt~)}R;SJEg;%CYC`|Z$LlRxjDllVCZ7;v2py6j=5*kVH<567IbmX}iOSJf)tEdk&N z+5axk82~&65$gB^T5UNOTViZvVSmW7cu=H<=^zU*_BdHHeHdCwwj1Me`D~o5A5N z1@F*$U_LuTOcied-xl7`StEfkZ%S3+jazYN6(**t{DO;;nW~-)3NsBrT48d-=5<99 z5)K0=N*1|yvB=aFSaB=J5yKMRjBEHdfXrAsV3`q{%^`xGoaEj0RvT_jdH%jVxuZVE z5Qj`izE)qXd@}(KICD6K#R`)yqDH~A&Jgohj%|TnR|E$N;X6>mtv35^A~@meIVk4% zB$PYMa@&msDJ|mQ8|gbCTlELrf#OEGs_RDDsy5ik*Z^CChg9kq1*dUP#$)bG(4<|T zEpma^rW(ew;<0yY*xuPNQY+fCi+Kao`kY>8_%1e=Zx-Q!&YJ5vI*~No`PkBxjoV zdmaHv^J-xnw>p}i68d$h(@6>+20b;X5^DOCt~(>=;1-fy?joak59+DT$L;~?##=E5 z>)pH|v%K<%6vM-yHT<}!h8l^+6Y5N{TQtfVXgt>EZjCg~Kr< zZugDKjQoxj77Se+O#hPIZfe2i(2V)bM2$$7Y6*)e`~cV1Wl~kU5UklqmtYG|vtT@k zOO<=DE{hW{-bz-lEMtfRwP zE=(0^M9Xw3?)Yta{}xyUf!AIgKcr=5s`%>QmRVdpa{vgdyZ5nDkIx1lGs~GnScHg= z%4DC(SIh^zLuyL8hXl);SXrE*><%vL+P zMW_ouVRm;I^*9Y+d$6(MEvwpA)&)USwAjP&K$?{&dJbv-)DCLRc98Y(X4Hz$OkO^& zIQiueYwjZ;I&CR3JE*^}6PuoN56wzo8)XhoZ{Z6cp=xp#cRrmF0=*`qTYXz&#MPbI z2z^C_V|qP47qXsC9=m4V3 zk$7RhfPK6*`StKj<7qI%&m_}E6!-1{|9dQFPV3A_Dtc=8m@x0SRhT7G5^CMw!j|Zn|3}vF?WB#~Mlhj|R~gO( z3{1?ei1oAFA#3w-o<`%dEl?C+l>BK#$hHfNG9-60e`G;X2kf;41HoV*JQ78N;Zwm%waLR_$a)aeZja)-?3fEO(SzMp98UZmJ74}^UTI-2nETPM&{J)`ClB+ z%9^)AJT>v~@K@DeNIFMFr%GDzG>{^KopL76m|ev1Ft+1y0H4|FF)N#`vEM+R$8jX~ zB1*`|Fnp7|aa6Pc=i$60?12_c&MC*Ho`sERo}SL9+Ivx_^KY2gk^X-iNtUNV^HNKdiZ6iLi`Wm z9=U7CrCA&B+M5x({yY2x6%gZ z8$UK#fQ%TS6dV8p4JC~+J%YSb#(;^vf-9y4qz`$`;ol_(j>%6P1TB~u{ynph&8jgI z4`JRl>5)kw&J6#7**NgPIUVn)Wk1dM5|1$hGp@%LeidX)0=DUCcuHoCy#_Q8!?MK7 zO3D_H8nN{=hhIl&z+5@0&i9%-0)4t||HOcP7$ZC2#`qh_@5j_dR1uZJ=$s>bh)bNi zsg3br;A{R0JQ#j6IrE&t1Tx%1IU6w_YNY|CDfUMQ-B%ivt;&6+Ar*u0TSCo}UDti3 z*{N3l#0>~5+!t!m&Y3v$!-B#K9;Ptt4SJ(<9Lr7tj>^o%$sf*%W^)Za{AVz!a!m8% zT^Tn&Iecud#AVDbk{v-zio9mETrS0!ckO_dXpJ87vgT`Lj%4e=vH^ybjpT_1Tx)E5i!;JlYE?PZPx7!$QOruD@ zZg@(HJJq4%Fe*E>2{@}2Fi{Visb-X{sVdz08Pi*uv2bBYTmeir7-x17f9bOSa^6KG zu+w5Gl1C_LhLLE7QmT@dw=J?28P(ZXsx5YDBbwrt7lBxliYRg^n!gnMPaVv3(p-sJit1PE6(b8ec6+&86R-G zkBX&LMp^iSSx15LEy-Lc;^~2J2<({ijwLsa4_5M2jA7N>>ZZ%@E6wt19f1fR zD=B(*^Nm8s(Z!zR>*IUmvAI?Q56*+J4^gwM@)u|p6DKTPy)tQ^P^^tjR!wM190xP@ zF#wt3pWvbkjD5=F&;E;ig2|tEk>h_uS&jvx0aafp@h@2JOO{jmI^~e@Q!%2X4WSKE zqJM{|E0T|!)~`^)4Q@AO9^4mv&8qmG_9O~bZ>xLS{>g^(qKSV9OP!qa(Eul!N1^e5 zf*1RS1#~%KXFlfC`s)x0HUs-khZ6c1O1RUViaXtJxoF2RwLShFiYvYcC51KDWMWGDbf;z~MUrzQR5pT71Kd_=SH0 zDTeJ04q+nadYmzhi!MC1it8wGiez|dGNLAmRIBP0oWlP+OGCK)R1EWPSZYL5Z&cY%k?3fK`%nraFWC5ipPvrjJl=3r3 zY>!b1>&E|9>wsFHH&WsChSRv{``XpU z%${7B2%yM~@io;L9==H>Ch5Y62T@!R0%+k9e369d3_#_sq=a*soQzD#PGozsqd`+VPk0PtJs9Kzpy>i!xM{won$Gd$a0R9)eykA1 zSP=j!6yw4b_?oJa>&fK`Oi}z;35u~&0179{aN&0o%K3_ld`(r%^W@>iUy+nREDUa} z0syIB$u&?j!dKMfYpN!mLe?MU@vEq@C|I#708TBIQ1@eF1z$ zky39_xE~jbr7avkdWvKHLBOSs<>~>@Qc-vS3RQ2SrJ{}i7Lv}EQYOX*iku!Fge!NS zuc_|ip{RNer>L>P-9%$UfUNl~rhd7-OzcOg!>Hx^yrJNfwlXVR$@h6!J0h`RAo@yS zc4>Gx7t7E-H{~gdk5HG9xWq;Q!0OWQXcWZi(vCnwcdKJ#z=@y3!ed#ud4vadFv*Li zHfs&Z!&5KLZUA*9PC|93EyioC5tI#VFg7kZVOm4BESFY!Vb9j>ojiZ++~gC}rY10B zrZ#8iW9F#DyID9@QIyoXSyOc~wS_vydtFI+Vy;j@WAzC6HJ`#;Y==5ayMc6M;`-@WPriGOzOu zj|uF7^B7D7;8Q(bj)ryCk6{a7$dib<=!ZN=DDLF(YbGVE90w$+9=kJQ;Ml?6 z`PNuH+lm14%?wU0)bZPychPVMBgent)SG8lpf6{?izXD@_{;X1->t!&nOAf=LQo66 z22H{BTzG6nFC-4XH#+qI^x(PBE4W~r%a_z!JW`DEY(9xQJsF_$O`hJIb-0=Pk2iU^ zfosvg_~erp78Z%Wrl6J~3S;Ms*Z4gVGv0C>iT4YV-&|O(O-trZFUg+3QCxEYM8X#W zIEd3`CudAQcdp!f8IeACq2_mJR$izvS37mQ;$w+5qC)4Ph=+_IUij?YV1(0 zhElD*@5kYY^alHV+}i#*`OM5p>7Hsj>P(q{2H?XUdYp}}%w91MZC%reaujgSO_PriI9OczqW=9&8W}J|`o18bRFd<=W zF8A?q&3v?|$Jat4-pT+`b9BAu(w(KpF@()6E`U^pHm_omg3W1iNqr|zzcGlg&iMHYcHugrQ#}#CgTiCrR!fLJ*Uc%Mcok*v1 z5C_GKUyBpQ;4+1D7)PON#ZpLS`~5}GPPnfNtXRfXaWBI;&J710?+@!Vg0onfRjphG z(E%6WKu8ZChc4U%a^oGDn8$M97tYKNlNoa=l%o|hz)Ur_a9(ml-SSdUwGeS;VqxZB zK}KaJhqx;A)Iv(Y_qHgaW^I5(qMY2en}Ob?+^ zHJNNoesF0pVML5bO{67IiSfoY5N6zwp7Iyl)55^uGt{ryMb#_*iA(Ed5G#xD0)tGxl|>m^cxBSnlvjHN%#>v5 zS8Ix22_#fqstUp0S*G}I3~#)-i`C2=zY5&g)ybJnk@If{9-fFLs;Wwtw{&%RZPyf# zH8hGzhb2rhF`TtV!JdD!J;;7J@KxsYFvTY&k2FOSJdX7EJz#cdyz5ZxAtrg;r^oO8 zzZhE;nV+iX zfZMB{)5AFBm8AyC@V-%;Tkd)`is=gPA2&B)K2T~yooabG5v^*_8m#4AJSOKgAAO*Y zKPDS4)SQx2t@0`(R@*yQ88)^vI}^xO!8@0kY05VcQOU_}?MhB=UJYi8+8~PY@^l!3 z`9W}7*n^U&PDmgzGH_|#4q{j2kr+#vfUC9?C$@p)n)wd39_jI4ffL^WpvNBvl&3e% zy1#3cIwSDktCX-FV+H^3>(LXeUQH{%Mp4qHxLe*Z-(lqcSZ%|52%%~{;-vR+s2V~J z6q~dCF9U#fRB(W+-}B zm$J|70cF<_L|Ry}h~Y%5Qw0V;-dMn7BCD8a1xZo5DUQo3wirWDZC|j#W<@)?6y1he zoe!Uxwdrh@JcEvwqzq@_*rNc9+tCwgb5?TwB?a=XR`XJXO1-_X3T?`9tpC54t|z(6 z!4~!(wr5BtLeesZ_P^sK#>ndG5>^6qh+C)vB8dk?yN5mWR&a@jQx^u7^7X!#AZ^f+Hyp5t;* zq>veRa)?uv;A0U~6=gErt@HP1WHJ@?@jbK%joykzF<>r0cC;WArOkJoNy^dO-Wn#Z zxtNtm(Hr5@H{I$Iy295PrAiVP@ZP{ zqfgT%daO=GkNw;gJ*KPZ^+-jJ?UN_2GPU9)LIo_$b2@IiUgQdDLVF3t)IJH7Qv0MA zu}>;XuoPyGmvIU5{R;L*DWqC$l(JJBrM;{!C|YG>BkG%f&rZCS9kY-5aRpghhk*$` zIhmQ}p-&Na}Lfk=pxIQu3;$rGs}2 zCMsToZ~hJ;nh$lw=dWyDeA&Vku#;9_Lv-8^+O+d&?#)DQ(2CEQ)-Vd!%YomXJhC*B zz;sQo;DaL)x(wG6d|&~k<9aDR=q}~r(+?l+el0$j6$s+^;xNhmID&=0X*}-mXV5I~ zRTT!U7I?r@TaiJ}S1|p1&!M0}Ne^>x@gB)F=--KIzC7+>xW48{u7ghdOdba{R^rgWzg@yMFXxosvPuLA?tiN zpW)&HmY-o_ZL8B0U)DItRm_ZqXvRU`S?Y=$^n#k<*&O(;gFl@#*o*Z<08N<8r)hGw`2r?WZ^j9FCPOav#84kL%{NV&D z49Q@N((>5$YBM*vD~~HQ;2U8MDy(Msx`W{qX)Ia8<@cm~VSvkn;VlPEmFByAW6F?zT>f_{!wbllZt2-jRB+I<;)#dF(w_^vUk|3|X0f`-NG=Dx z(}OFYw2MKKH=9FTu0@!Th9Q>uh19yFKi9oey!8udWk?}Ywn{7egi@4nGpRyS@B1(- zDiC{bMwUA0NE*Z5PF8JHu-DgPNEMg=A&GWRIhUW6ocOK4c>_5F zE5(0T4rJ~Wq5F#xT=|6b-WFlTrv41Kh!6?fkj0df*_^i*1vqb?w=rd)!En8a;a16# z!IHMCO7O6XesC=>`WyYLp4WrxOHH0<^_MYqU;tOJd|fTWNR}yqi!OGZgT}CKO8owS z)G+ATI_~jf(z8nV0G=4cGFM0-UX&&u7H7U8O0xponfvM)ept`)K{vyP#N437zFlg4 zEOX3P2p{tQ9f@UcSnZ(M5|uR)f{Vlx=|cBPAbt;MP+yn`BkDOx^UJug8)2@4?m&_n z^kl9$EV!Y0wXqZ0=5x_eI%=fdhG>ODw~13eXDE zav-}T4^~Uwz9^!PN_5{5)k*2o+j(q6T2EH-yl`(2)BhmTky%Fn2$>0-5{`#tQu@2p zdQbf1l$2j6^T)#p5xq~~$_T4IPlP^@#*#w$P^Koc7-tp9kimI4~zLcMn z@>JnIAbL&;WvG<1k&H+^nO*df1S2^To0cM0G#3kugX%3@E|3s>DGr>}i=)0vR)pdb z4#8CczXhvY4^C2>B<6jXl+tNp4UdtvHN3LCix>4Bw62h$MW)`xGJhOJ&ZW~{_t*qP zvyfuEaB94sVqwKHiaY2w&w)tZ8LR@c8)G^?Zo0pYr~+k^VDtK&%B{sl$}HGAU<+{8 zZWU~Z=Tz=yEao1;F3viY`ylFP3N{p2Vmo=UhO^ST{-<(}pqww5J>yjFG0Mh0DD!qX zPvxG(>0GH`Zvi_+J*Y~sx6$B_RD{PrEcpVk?U3s!*b`{tM_|1Ly9L;Gd~dpsU^~iA z<^C%Hv`)|m(V$DKpkadj5!fm8akOC10XvCDO=AR`1#CM-@LY%+ybjopz$OZo6FHUZ z(IVKQFz;(Lu>gim73@#IYJp7`>_^9`+)^!3iyaP&z6Z1xyPJ!t4gUXa{i)mvd|zgs zU^{#Yn=g{LW}nI(to5S>g8d@M_4?65!IlqT$$IShS?9%q4Wh+@{Th-B@KWccf>oBE z%5BhwCTN+UpTPOEwGq^e2HjNeW;LVeD#1KC3cFe)Z!h2mN8z;}ZsK`h3-Bh-HG=)2 z_*8C-)k7pr zKL}Qe7A9*~(Q9Oae?K?#__>JZU+g58TbfYq!LY%A%4-6_p)Ba7D6;C4zEo~pM4U+Lm{k4PsTC!b(DrQQ>iDcCK- z+f6-yCET=Lm@iU!H>LZjr-;5Ty*NOKQ8~>sQ$1Mom_P|UcZYXFAki7o zm{=W+{sKbOpW)q=TL4vbRYX;EV{Y#8wF2?(C(7e0?t|n~E0^DdlQl|KKMHd{m8kEn zVuM1xnEq4Y6Y$@?c~2wuZy@xw33>#GLD?RzyuII8ly?fu76;}^|NdYw_t=2vz`e)L zYoSM@f7denqm}*lx6&5_0qPxWgh7t-{b+cP1oTP|o0a%`ACC80gOP8g z$&&*2L=K|D`KH$Z-DY<6p2%BhKCgh&O^t%%rnkXWivHf`J(QImB@+@!uBB0)NS2$A zp?t3S^R8NnK3}D(aRc9=Y%+ZnFpNCQMDqo$z|D3~8LnNh%Usp%#DDj@JlNUq9Q2zTjzZmD zy%z9htrkl6LUOs?G8+6<>9JT(xJTV9|c_LYE9)t3^=1GZe)uy4$4pa@W5i>xs znVH_Hy1TdLf$oL3*u+IJE<(%1xcxAQeKV;5vlm?-a#sMS#xof2uokDVgkmdnBO6|9X`>zlFV+N&gO!>X?in&`C@RuU}4X6)@$y|1cT!24S9$lb%h)@*4Z z;qL&RnliRaur>-`T(CZ9radK!xxjK-v(T_og}sazTPPuz>V<`F7Oail)NTq|XlqI` zQMD2C$XkN#r)#6P2Ca0wvtII7YjUKUR+>`An%iLfJ&>4_!v39~V_0daUd{5+`-67+21g;>l`Z`r4?4(+qaDUx>HjpoDf*URZL~GIC+H-1lzFf{ zfe^T;K%uru|G}V(Hg+)K?hRUPBiGox6Tyr zr{HOC4HU+)Tq~i(`-(?cMwZQUpb;ikH zCVkOIVc%v<)B{w|m$5cFHPE0S)d_ZhF2Vv4q|<^a`-0@=<3BoJ`4Y)E z8YKQ!F*CXO5QP;cYC?3YU`kDh?mi29Sz+krcfk<7k-{R@1)CEQ-)!L3TO~cS5<=s?uSMTwkZ^-NKb?c=|aUsFTB9!3wD6cDJn1u>2|@|s8_*6 zy@+lc+NGwLHlKyPB-no2S3QqYF}^V z*Y8fJm^Or>m~I`$4IUt#R*LC(3gaPNOiv7Fp7KR8?LG@TE|~NXI_)D^vJ=Y{Y(EuR zPX>z^Em&e^MCC&JC5&alw?=N@&NZF4IbBmtZOsrS!#U=C#p3 z14W@SN{k(&(93hHLSb5Tj>58yzM%@5+rXGIEkcV0J79Y*ZCEHmO9i`)?zf}^yIrvT zbZO5qz)Hq(y#sVpZn>k1emSX2OAS3C*lpBYH!)O0w!~y+GI{|<_dLN=gT3iy!FaBn z6Y5QO38s43o1REv9Ev{ly^^HM3K;WGVV!OCN5Q@kOzFhfJzsb>bM=By9~ystLZP#Q z$5HY26!R)9i+$*L3VXZsvQS^D;bVTf-Zs5@C9uJQwb||)a2)rzmn)1W_PqwYw^G>i z{aZu*$bEsdK&4ow`qLgfBx2K67OxN0;oCLx9aOcX4WwIVFcXWW#o-=EJ5m^@-arb? zVxH>7Kq@>7n;@84YzNZ(6t=zMgY-dkP%yRh4yHG|)f+;`fua9O=@6PQTbi(CqI$EZRmkFo)9@DXdbkx{H~ohT(9^ov$$V({PFkraCd41_`Ey z+Hg8gur_MIZPakOFomtwx!zpC663PA_MqmW}K`_|T-Ah!TINBrW zhJ~U=_FW_CPQg^4M$%(v@t!#gd+{vncV}T)iZjRiTzNIE3gC-&1t2hqga3e%QWzX9yC6xJ_tS!fjD zP(xbqB&?;@QM6vr>uGgQ+*#3rrHaX0moapsV7Jk}+`op#P|Zrk<1N5gntlai%CvFR zbQTsDOnGe_-6Yrn+K#Q#IC?-Zo)Hs9XdErSvP;dmv|2DVKc7p#?Zz8VuM4K;!145! z;*lro!_au@bCoj98Eo@Up#3QD>eCGR=?tdP49dNRD<0E6bK_>1W~H!({)NDH@OcTw&o{Vfo=FD+v9%%r0!=F{b$hh|dG)vAd<;Cs(AslQ;#n3*)}ENr}BYiS~G zp=Q!kXLuU0LxL$oXOX)_>10D^kr{JNr=hbFlrQKpdwrjOV3I3Wm{>ZCs#83+bQaa6 zc!R^=LGp$a#)i(Kn+0P-HDHgVc8@^)bLqj9~oea*S58KYT&7k@8w-obIJ(4w_e&|+l0hzC5L)TJ?DU!8-{3&b@Brl;7 z!IbkC(lEhP>=#jM3S;Llq8rz;7L}xnX!}}O|5TPPq9=uUOhU1Ub}7uxp;$zFQ#?-6 zMU=6Q)g03}6pJV*nDWyiDi%z6bP+`bTT8#!dtn0Xlft%Wy|Nb5AYkaf61|j0cdK|Q zO-hM!c3(=n&hRu~ZwaP)xP<)IDPy>YOX%$z7*jo5LjM#@CHE5gL1EItC8V#1V1kZG z50{XWQS^zkdkM`7 z%ji^!SBmj-87$!gsV#c~tMxWp|QzxSzmtVzQw4$617vwN~7VZo+ z`gt)wM0z*BQOwB7y4~CQq{f|a>-77I?uy)QjmG(yqDi%FMpyZN zQ*@kQoh{Qz8Jo@>Q?(fCbcx}1n`po2oSugK(}*uRb%=9RV_$h$T~BdTcQ_Ny)amIE zzN{xcJKMd=)k*`qTK%z;S=;ys!z=O_UR~%$x3|=yoS;?G{5uH2*@4ic_x}lXy19Q> z519Mk6y>?I`>G_n_x?%`x0p~D1+S`O(rbMg-i#Y&jW$alR7AT&Meh!khPcFD!S0$> zIY$D0bN~MIk~S1i@`qAW0)RKl)9`7;cG8Pa6F%wqOv9%U+p%nXn(ztWGYy|c{8Xj` zpC)_^e5T>ki05@)e46k{$7dQojrf8|5k5`$^uT8tK8^SuMm9c8_yq954=_yu(N4T@ zdI0%6z+HhCDgfPhn#Ys|z)aczm_yryvYmdw=zo%U)H~_JJ`t32Ynk#PMz^0n4-dds z^*+a7&J}KnP@+=qBjrY&H7`!c8^N=4x4t??uAd>6>kG>tBueR)49d((=pQ@(~m=vx4b7z zp9gcagOu3Nt3X?>eQGVF<=W$grP?Xe*qVrT!qi%xqb;XtuH&Gu?NO^`!MG_}gE_6> zq&C^CW#I7Fd@TJmlItmsBUd){mJt^!k^6!ptfrYrL^uO@%l%Ic8=@HE8Sny-f{TvaG+U(DZ%5 zAXAf8Q)JL;1gOEZPJ-2_-GIJw?`N5oYnj!{OvAM~wJS`Ewbw$cA;Vd6%KUc4W|L;Q zpx^VR8|hH)9|6%y0uM~t#?=CErLCfx;c#tXuA$!r`Z?xXX|M4%OgRTnvl_J$+cJ~g zvR0pB_E>%sooUXpe3U;E^r`tx<_+3?J(dAp4Vewv*1oIE4?qLw#NI#>dbneSmbSd7 zP-Y_%caf!kgeokTR6J+aEVo)2UR}Q5yh&S{S4bz!!;C}bT1!shpUtbqh{@u>9c0e^ z*37X#Z60npnQyY3LNhkYlfpfr@fqw1tppE=CYyhkS7A9J0Xjmr<4CK)@>W(K%Mtua z`5?>Wgyrs<;g&|ref`E*4x4t>&w`?9u7xO%=(WUh80xOFEY}*Gw^?4&_6WX(V zGmT>!pIIN)5;MySj3ZhoR0XRwRiE~QIM`%<wnByXtC=@bK*v$WoPY1==>_Q%{T}jJZyOMA488Bd&K!Cq#I9K#t!<8vD-2y zk$n&hZs4HhlfI`h@H(71+Hn0I>&H;>hW`sAOaG+iTgVhu{Q$^$u!olWen3CI7#IiS z!`3~LjQb@SmuvUumRk2q(wz`PU()!{^`PahLe-^V)+5@~zy#}IbTTo``jYlE4q;ys zMOiW(9n<*G^q9tnrNhNhM=bWfN$Uwqhx2yp5z7yKl2(iqoR6L`mjw1&d7%Cl^l1O2 z^^}FrKQ-fMZiiK~9L;su-V)>97312pCvBxRkI|#1(#B(?Z^HJH`D)(~TfIKWb-u08 zxGk^IR%=*|i)`;o4+_PgEX%KYUTQliXQIeoCzTvUG{swZ1&1NYg!kXj8o zA736JfAPzkFz#|4woNw5d~boCEG?wOHuKc{_iPRNj_QS$M#I+Y zQ$|JT-k|dVYJ<)Pr(0+VhF_uOFNHRHlW`)DVPCG*}y+OUnTOV6B2uKDxuztK4{-!j2QHY z{j~JVsqtE{$#^RFxAqPCwjBI~i^h|QS>wsaFWh7Lb$RbW>A$?6+Wo@K)$X+V9ovm~ zX^!KBsVuF~u}$ZD>uoyUjBnHbl0DW@f)<~n-9}i17Wbmf`P88Qz}D zuwPxHZIkr%p#Eo={-j=u$JDE3^4YELN@R{nJ7Ku}zlkvuPEZO$i+lE8Y@?G@Sx*l)lupslQ?-I=9%>v|{9OHQ0d z>txTboQ>8S?9Twc=dG}uG&zeZELoPJjt`xK5RL&fO2ScLNxHb-Z`d?fllA9$hD$TO zF(BKuiq_dnP=3!_4fu(-&NW_Q+-R}pO>|9_@*XP4y~=giw7BoJuH{yv@KIM{xpkxK zQP&arCw2fH)12BTU8}7Bj_h)A`32XklnQ(QjmCJ|=fygv534@psyB_qO9J(#UcGvo z?52(qtRmTzr?aq zd*AfSj9Vf3Hf^!)AFwN^i;7jI7#5gSCZ3vBnXbk%v&!@+C^yPH@qn1J+qx-#y!)W_ zkax1X(DHWerM6Y3TOhey3kPPq9}u4{Hx0lpizn>)?!)kOVx^mB^%nPXQ#9wa)@TgL z{nWPHw0Qv8S4qReEi-$VEC=NY&<^zMVYl7H6R_QMD0jB|nDxTQQ|^~E4~{XHYyIq{ z+7Z(;g~!~>wNksGw`tqT4Bc+(o%^Z#gmq4~;W^D)m;8t;gnk_^}*eYM-B)xP4{qxz)X+~W<;CgaWM+n)U* zxnCq-70C^HNq~o_yW$_%LB4@0e1raF4q-n1Htz>dV!y^q>Z_vY2*oPM`44 zx88Q%fCb)fQu?otT;?5aTZ`YnJT0x56FQGTBO4Ez!;Qe6kddEd0^C&DN_>_ieKcEVTJ18+Ae- zFet;f-L@g%_vPvwf?Sx}U@8%Fx0~+h(bKoxR1)X|nVsqNz7m}mr|q^0J;(T>BH2eI zpEO-r+vI!F#P<=~ZEdv+eSK1rnTbjR{l21Vxo@{^BEEC6+tyTdrEd`W`W%fC72`$4 zZZxyax7#!kuf*)OHT3wUZ@j2DLiy#t@*T9*l|Ah{Y&&ldwAls*Uh~;aFBtFmcu(+= zuR`Zj?>4QxIKzL;_KPCF|D-K~6mHWdS`x+nQ?^n|7>vq{!C)N99qHFBKN$0!FPR>| zgXBV^e`-r|nLkT=qUI|9Hl0tnv$RLNKle}7c`Tf?Jsy45-==+Qd&zId%5uP8Xbix* zw@s!XkA0ExNB=7NEcZQsmYpY}SvoJ!M<`nHkA#0dgxNeH<;B2epC< zvLDpyv#!lNqW!b-hD?usukDsho+Tg4TrK(&>!g8oqI9`fx5_>RQ^YF!&b&jJ%k3{i zX`}sy^huc;?7`e)nJ?K2@B)|xuiSo@X~E6vsZ5=gnjnEPSYvvF zz(#=!04;Q*_Fblp-qn7{v?U0?a}%)9B;67y#~u95dDVFH`1`DC@{yKZjTeRs0E?+2 zdnDe@u>?lq&fgN4C*^sma&H=&yOjpgitN2Y--|N>OP~Nx4WGjg3v#Vt`atT)Zk6)= zru#wJXL^*OIkA&sxgVK#(!X=}S(s6bZ_HT&M-8qv&&om{;de+Z0TaGAYYCWb&(qSp zVkwUlI8WgH0{030NT3P-#0Rtq94T;~z_kMJ7r4(JNpJ&#nDFx>s335pzjg)MNaz`X*G3Zy*d76=?BaIV0u0{03$Dv)}Jq`<8OT;40NpiuM+oXao~ zXcc6uf<+=Ku%K8(1C4jZOW%`zBK_NRdq#T3`iuh^es_Vp)V;xdi~AM#Ywka}gP!Mn-}$orz5L_+Tm7&3 z|Kk71pPo4`^Qz2yG9SqNedeDsKg;A-#_$_`oX^RR@6Su*;3%pXuh5j@&6NrqNLAv@ zsv57=_r!TtEjaza=}%>NOdZC#Sq09?BFOnFoc8p@xmPXDxq9PR3+H$=w|Y_*et;}E z4RCICBjDnKivX+r^MtY(aG_6eFB8g&EF8+`^t>9#5@EdR?kdl%UJZIrYnzB(2l&sP zTwc|eVGsY$0H@Zo{M_oB0Y|1(--_~Y((VxYRzO?zF9G90uJvx|uK;INKMnZH0Zd8c zx!8_@- zfY%@dI<+DQIvz*#M}V&d)bRwV9&jC|E1j;xk6!6G02&Io84u`nya+N9@IicOLC5>? z=K$`&>7&kXxu1*69-0970=}uB<304rfJg8`hfeR{Y*VL?=|aFyah$2+(c4VGuV9`| zc5Mz|n$`rErOgA((G~y}X$t{Mw8emx8Xm|{R9gmPc4$7p$F)qrU*l!1q1bsPvT%7u z%K_Y_?q@u|@f`D<@L0S-Z@zb`cb0dBceQt& z_X%$gUzu-`Z@RD5cZ=_K-|hYr{_p&O%)HFqnJ;CUTh-HqE_f;z!_?e`)88}SwJ?fD zFLY-~**S_;fCKse{M&=4BK+LIg#SAK_SAFfY<=_a2#0?|9Pg9L`y>3i2frR+#p$#i zDLU9rW3X7CLnZiUfGd%wm3XzF5{X)g07a0h)%antY9wnl!cYwdSHp8X>3r-RrqYmP z)Ak98D*YLImHxW@e!T>@<|WR*=-Vwv^cS2b^^0BKp=>o>>>6l#CcO&y5&dgit1{-8 zmSQ3oT-#`O=^x^zMy&K z;sq<_D6w-EU%8-}n5FQY8HXP;xtf+Pja@bBip!TSp4YT;=kB-utvMDhSUG3-yp<5& z`PiRV*ldhXZN6f`&g>6*S$9tOez?ZI*_!EX z(7bJ%lly+?oxMf#x-A8|mK*ZAHN6LAdi!b&+qNX#r+3)EUM9%?(<`-&JL`WOp=q0T zuI~5(2eX?OYd_OMPk*EJ)6xpl?FG8G^fU8~&}!&< zrl)li+AYNYC@+io?Wi2qE6XO-FTt}V0_ zkaulq`|nIzl~&RItw}3PRD|(wICxukds-j!w!Y+9Tc7D&JD3SJ?gg5BOfD zYmxfiwZn}9O~b`PxD1Bsw&kGc-nM#WU+cQmb$zKdosCeIwyyKGu7lL*GlcaMy{+qE zAzRmw=GHVF%}<6uEe;K`sUD(GfVM|_+lC8$eJ6dry}$%UJ({p0Bq+5XHEX5m)9~$7 zA7(b`Z)3a9q7_%ZZXAL@bR!dRmp)iyNfR z8!h-6QhGWQHronJPVjYIL>IT8HneVC0*ilqaEzl8{40^ zYJ)1CM80!6dD~Xmtw;dQ<7IaIR*Sc-4gd3KXlqONtbMw@z=nU`Mp}B8ISMotK_C8kQcXv>a~L9f0#>`XEzFiZf#1My+aROIrXyW3 zwzyj$;VYQwHk*_^*G@jun&eE|-4>|#P8eYId)uO(wvFE0WulG8f>Q>>DuFF99~ORN z(?%vXIgpGgzp&o5zeUI}Tu^Wpn7pk|qJaNx#a0*Gl^PLGp!$Deur4)xp6E>UC+t?0 zxow;6cx=x}tj0*&X0O$n&SEx96|JnU{Wo^4*t%aLu)qB?yH@Kwq0ryUh2?_ z9EY4)ZVtlQgYA5U+nrjD6;lNN z-yU&l)ACQLS?Uxg@Q<9*>olRP(?D5gX}{O0^)4N)T-`RhbL@_`@l3J|a}Cmcot;Hp z?cX`IvV0F}JH2fO)l_rP$*fEUSq$>p2f4JcR@lD4rS(pf+6>9?brnkgx(b%5VwJTF z`Z8KCMh#X*@ie+lM&7#7iZYrh4I(o^Q6?~DGE=T)V>DctGVRPv^ruvB+JouZaCajQ zIq$kg@3qq7+3kzcwVt(2(!q62-esbC0c%+7<;8+i{9R5>S!(c4Zl>0!-=%AXy1at0e z9yYAc$y!rMgc7T{4*lfmi}Rs%BbGg^Lna+#nb(`aLOtDnGy~5gZO93%$34i?y2Xr~ z$aQiD?gr**YvL7V-4^!z(~?=v_LXkT!Zq!8y0zTuS3AeqtHK<{!Y@g2l%((;p4?jR zP8ZVH_K)4#P|e-`|MXn_E(yd@+^?tSC5PyBgh-?Yfs5qO&_P2>TMa=|v@`@Z1hxcC z-ggje6g+MUYz!nE6dNie93327`YT$asn6$mcEh{(^ZR}GzK_rQ-cC+!H=}dbWyEMN zk}$BA$M3hP=CSEh5Wh?AoP<>+7HI)h;qcB<+w5UoN-wp*4#`6Bm2rJq_x`POdi$?b z?yp6g6eUA_KxM$pfgL)a-y2oO;klz;nhhSi@27d=!RSRXQYC>(z&M+Tjn{<_4hqeQ zCb|-s26Jo4gg9C@tKYMtnJc}kTe5Cnz`DvM^@CF-3_H5Rt;9S`?sE63jnJHaHc&;| zrbUm$KEWsfxMCbd0gG_3t}crMbRHJr3%E6xh(MZCzA>!1>hP?dsKlHTl1385_d)R$ z!uPDo@`7+f5y{e_FLWq$D*BO8iP<7ggf7AlR~1w+{&H2{2-|s;buK)`Uj%vX$d@|h bjdYsFdxMJu(fVzo-e`2U`BZ%F9-_V@YxqjT(-9% z`YwHO#+jk>AQr0vv!YftkO6%WgvDBs-S!tJT?m0#Au6xUMq4U~ywxgQi+1G`>7<6f zPNo*+>7uR%l_I(pNz-D-lS7NLQ@%m9=sy8s-zMi5`JLaP7;$LPeqm%c|y4gCNZI>CVP&=`P}FxlY`9CFZJT;U`;^lz|8 z6}1tM8v7Aw5mD#JZX2wGm4HiYxCPRb%qcF4p9I$(KAW6DHTo0Ev2K9S&j4PlQ@6Ib z4YDsp3P?8HrdvA{6m^?DS_dh6Gy)j(`8-;;KbI&+*McDx0;S{(bgN#wZm+yYg?*w9 z_JpXSNDWyaKoxhX!FUHpT@7|{=+sc2NT_dRA=06KKspd)m(fO*KqY9>sjU!kX}3a& zOAFa>iE5&7BE1C{jG7_4khrr(q8{>FCriu$qOV&?u_M-j)Nn=IAZ@6H`KS}jh^H^b z1&Ty0HB1h6JVlg#pth%?&@qsmZg+EW5Ela-gHLM)I;3wiWtQP}9|R7a$P zT{y*y>X3GaCwnX*4@zDu>DCy!(dz5AaOXy9p@cP>>#YWRFmhQhuz5;RPh64H%E`@N}pY9xpzakuv<2u3mA zArFCbw7qWK9SNK+6O3kw2*G?dN<%OH`RAX}IA?dDpikq_DN1rn>412D>5^EZ;h)(>?DN{{w@N52p_NeN@=$02I)ZyJ(w_{K7A+9%muxM| zEnvl=6_87@bN@PZrwB3GVh=>~laG|;YHT&MD*0wvNxTHjY{!&_>DAJKDa5K-J8s1V z!DCG311-iBlTZMsil{MnEaqLzf?9ha2);n52p4nm%Bi-~cW}9sL%5+B3|G<5KgZ)K zWRaOA)*qy334?ekU~2sXkoKsdG9YepUNjT2<9L`E-0%x-KhioH;yUxB_2F3_Ei|8t zcBtiPOSgy0!C%GcXCLIV0AB=hR#qSo2vvZCQ7-|>?}?gjw*;c$W{D1h4vbg~9E}2AYj~MOy46Tao|a0<9z&2= zNOIW_YqCc}Jn;vjb;&QndDvHIky3xTp_7*-m(@t3P<^sFk`MmENRHBw?1&VM8;W{j z#0`T1Z)$iRIrP-%a!wM=2(e+{Z)gO7#WX!F;>6%`*1u+ha`#0aA?GTcD14ke8X4mq z4l%Ds_eA`%W6Omuslb&kNi7U#MB-WyW^BnEDUKq5n#id(?LCG zw&ei`!=v#xRRxt{$;_&X+zBER^ycU}rp%d;aYj;{v5CofRpptJOeJ}Go++R~V8ejq z-BnpLIAVtB$tZdI>HSQZH!SQGOif|BxtQeZ`3-GId#ooHweS!w&a0H#Qk)~Ba5ekj9B=|PXIW%PjT9Nz4d=2BURa~&0rU~AEwMyfK#F8r zqO)*~%|4yqZEZvsV*cljtkf$b4b=8DhF2dIp*g4$`WRU(Lr{&)Wj)P|k4}DDU1aA5 z1fuhjc{TOfT#n5L$VQUa>a`8`BkrURK;WY_!7NS(?_hnf83pWxdUE0Jn)3NQxiCZ@ zVhX$>l|vG|dcEGHJ_f2xGx~tg7wpI1c!)XcyVzDZpRK`;5z_{}A>u|%2ZUxO%W5l9 z7Jw7Uw`%rKLvl`SXe<^wmsRFELko5!_Kt-h>UL}vNO$rU?R?;5Ofi#S0*f?niWh;} z_5p$wU7Y-FZK1Y=N7mrv@!EVPoYV*A775|h{s}?GY-FQgYB*bqn!-~DW@aOlR&zT$ zii@YVtYyi>z(5?!m|8KGRNkJ!4K;Kr?642sY6~`dM3|P?9ZY=S#>PMe_Wk9gs(x5bYLv2~w5Gyg@mdu+K=2 z7?hhWMfNusS_Z$O%K=iuvmDVC$+d$@A}fJ%PVu&aw+ZmqWvsrdz;T+E&OrU>>f|ef zMh(Gz6ISc7AoxOSAc8jJyoI$^kxhHsQN%gFfAj)yI$200)o3(1ah~| zW(;t>{U_ApXy3_!@F-f03ue|MH(Z(i&_?KM-vkg$PO+9HTk8{X?i5G#0Qlwzk>FvL zNO6X)fFxEg9z)nrM%)I)5gj4Yy5X~mk|&Iv~NVZp}sdFyzMh$;`X>DCRL|` zV#dTRG4ZAtacI91E_hP|-n8&}(7YjecS9gk0ZmT{b-;`0FPNXMr|9W1CHZ>8(0E_t zKc8;gs^T7R3in8l^;5>Lf*N#)VVpH<+zt?9n*n$Q=Z#Q5%uc6>X7Ot99idGuoY?1=_C%Ijq@2 zH{cq&5x^ha0$8d==W>rgPfj%^WK4rJm=&p^o4_{vHNP=*6QpoVawhma-83;dcv!I} zLBnQfSkAIj@rx!=*B!>mLFi_ba8u3U!`fpFCD2-wC!^eLl^bjvJEVkNe9L?bWGjDX z+%kuI?<(!)2Dko~Vtak^@GxI*Ux_WRBYcj>VHm^Opga2*bM_cR0!0S&GB1ZG-c(O& z=vH=-@1W7@o|+rEQ^F~@32_*1ZHHTq?m&-Q$@a!_r7n4AV=z9%2p12A4e+q<4D|zO z<^;tYV}feC50is2OGTeYR8u@k=n-7oo)mf~>hzF8Z*$ap;>}a3v^F(74!3(8SvP63 z+V-HH(ctK9pj~@2W-zr+1Z2uLq9Dak6SRgN71huqQGXoG!;M={^KejsnJanS@P6aB zLS^4mxBr;Wm@ONtQ*QEH#G{(;QhcPf9hPSOGWpNpq4@2Priw>#y2Dax`yIeLxLs=K zPG*t%7WM(Boe<@Bx0530qW3}$=c4!Eg4xSLEl3Ar^I!?#7>JXVCjw)Wfb|!N5bR(I z7A$2I#{01Jrrpd`ajwp)b%tCfM zhnqUiHj8vd2bL{RAAY55NXI!+eEqdaBRbAAi?0pufUkXaM)10C8!ObvmAwy|qK^SssR zgnI{SFf!QKfrYR%X?(ac8_Ez%%-|UJ5o6qM$pVvazIk6{tH(hUl;O5oi{6vWXbPm> zi(sjt8$pPjmwf-s;<#!3KG0JgCWqrT#M^^$=(;V&O`qHDoG*htgZpF-IKlHe_`)Zr ziX6AipuQEW)BEUjw1nM#nJr#NoHwSOBeCg+61|7XT{P>w(EV_#gBcVmMiH2IW@4G%z%Y~6l^LbsNJ z_P0L>xsp!igbI;-(O6kcU{5tVE(Q0svE|9NXY`+YN_z;s z6Ykj}G@fSn!PD)g_S$7ms2CMP{Q+Xjfu@qfY()F7lHZ+CJg@PzuE3$M8_KtGKh~qq zQ0_w6rNthV7Q4gq5gF+m+}B_Oj|m46)2+Op2$xh^O2ck@u>CPmLyrR_huN}{H;l5! zbI}L7?bPXh@H{u}47hdcd720fKtf@W!{)H^Dl?`y*Tkj{$HwWf$ip`fMcTO7C2c`NYZTp!d=9!+UcC!x_^XQTtAA zy}j)yPtd*1k2S-g&>0LqW`J8OSM&*pmKuYjH=&a^kM^F$yIe;w5DW%Fqgb5rzI7zj zZhITns{ee1dv(@P9BvHQF>daZUGnM%9u(P!9)QY1t4S(K3LAvJVE z^4l>HJYIqC^!-)zBVjL2|r>?CQISK>u%8f6rZ571)Nc z8W=-9@t*DluB*n7J66e}ZWU=2r0O0LW|`S3sy+0g*x+R3XDmyQElq}kyw zM)3X`BQLrSSIjTic96#!dWkU`X@-8D*yYsNR^JJ}ZrkuO_(6YYfAY8E`o&*iVGIY| z7UP|{?8_NnrE9aWLgU}H+e@-Yw{#$DPYz@0ODMRL)ENH*6{LvMje6=T~TP2=Y(l5-1_J0{dtuVS{b z9a$|!UIaVVNHOZ!IJDyesh`JbhD;j72Q_1HBgk70-V`7{bcWI4#-_m7Y49qphA@F@ zv6WCzo84!ynejRR^E#ql8OO7?+TN;{=#Izq}+Ic z1Y24oY#Eo8)K--Kza~wi&HwAUHx{1XqkXdb!<;jbySCzdnLxOY)j(#j{T&E&w4xOi z*Q+tUM&AV`P;FV_3+o0Y5d8y4avxvOPmN*P#O9YQYUnxidgwjyc-v^a`he*kbBZW( zg-HY5O6xGlab5?y#Txn}iyKOiH@lMslh12HisHm+D@c!JsuI`)^y z7hC;rKsIVev4XiuDz(zkq2x1@`zs$L|2#RE^(PQhD9;>;ZOb$0LX1Hz`b^S2CFtQP z8-uRxS|Q_XWOuS|O20gAwq3*1`C#-zNR(FG1gp1mwAA&j$<`^w%Gl&BQx?WQ0yFwC z09j&(aZv?Ek1+X@|3&_k$wzz1vCmM(41-Y|FzO2>_BqS_h2;!=J#uI-7NDARGn@>f>Hx6WUpQ2D-b>pVEQb8001H(?nE?C?ak)w+Sk{tjOB zA1t8CK|J#@>o#10h_f5%U>QPRp@f_3vvC{zH5Z*Yi+0A2quBlpKnak4;@ZK0k#8Ac z5NGT=#u#{AeJty)=)XXdd+YB}sJz#>w;s|vU!$ErfWx;TeC4?s2T6R7z7~(jPJk5s zHvk?|oryg(?4Pb`yWsMX#2sgf{SqTNa|WqLUN zGo(r?t)&w0G8QM4IY@XC7%75tyO1z378WUCM^(r~EdU%r7BCd$iQNB7DL;S2 zW*L>Rru^S(tx)Urgv&jikd2Gp|Jw)M>x*jQ0R-(RRK9`Gdb$JH51)DgL5(@UiKO7I z4qVO9^5eJ*h~NDHE$Re7oLyW_0r2|64Z1&?%EbUOAP{w<$bsgEXL)djtLXtlHP~rD zqv-%hCsf46Rr$h4ZamU+0CfVzn-FR&0}|{AU)hm3IyqC%6pc(XBw{*>?H+&*E}@HXr~;!oC`OYtGqNqYdTw&cjI4O5fa~FXhC;r=AYaY;{6H}a z?O~E35G_J6S`2`$>5mK7Ea59^^3|+~$BYe!c^n(mXen6HG5}67mNO_J73YoK{BX#V zA1VjcTVPhe1HcO4xP);D1_IFtt{AQPp-L1g-$Y8~cL%UP=t(J4Z56oifge~#aEslC z8XW+Zw496up0svl@ghrwuUYB$S#`X0&+5}FlnT5|_ z;kGk$x-j|5%ywm5ve28AJnNhZ*`vT%iyfhw>WK1cs|97Z8;p)lK6TCn<%Q(W=VU5l zl9}h8%}0*r)*ttit_r;5)zCvRU-CK&0%O^d+WsbVb+n^ld^dm>rVyL)#>&k^W3ly9 z+Y}GpocUn!sTXJ5;dN?^B`nc{(BP66p7_|Oh;XVS47@gz&(kVS`nccuAqa}@a5MVe zsQDUd@?quzxGDRiq8=9Brs>CZ@o<3a@>z>bceulN;m;i=d2BfleC!eUeKp*@8b^Kd zDq0+UZM+gn&R3B?5^yq)G31FRjDf8+Ob8aC#TK|hNqz#Y(s)?iz;8nSi&1BwSBS@33e8Q zqBD|PW{r${t8IiG9ZlkB3^1ediV=+iMl|?hMnj4mjr_%Uc7+Y0)_yiSI}<=+Ezw;B zeRgh%`R39&;98^S0v7QBX*WOVwW4pDEYW-kt;Fa&kut-Boe@jqCl}UwmrATs!q#Aq z36%mcfrkkQRts0_eH1QRQuO#NknxaM<)?rc4wjCK&BjNPIBHH%|68>->^6*dF7mpI4i(#Q)8F0rr4!`Aq|NhO@oDw7!&h< z5;NgONHHOr!mRZuaXr3vT+DJo5evHhd?(EJ)FPbfu!va|z38gkt%lx#31->FLhQ0+ z?%dod>_QCdsWmzW4MI90*AX&2=4ksE1KRLW1VWYUf>_Not$yUgfrYdt;Q9!+o^L0w zoLeEyGfYQPO&4Ur=KBGzUXk5C7q%|zL3w;~;!HKd1d06afthNIgDYVkn1X{&iMlK7 z4Ya={vx(uEyz7jkJKQ!{J2;S9g%t-Ge@qUXR~VOWZ7cKg&Fwr`#PL2PVjT?7Yp&jx zC;GC~7crG^^tmV%30GqTIpGsxgDGi3#is=0Ik~kQ98vj{b5`!1d=A z=ruSY3>qzF13OajpAgoW~Rps$R2iZcum53t`u6r)j6CdJYb4R6cG*h6}mdkKWHgR5&mH zocwq}xe;cA8DOTdjpVFkLw&MRP~#Yt^K!b;Rgf|Ak~_FJFQxM&FF%BJJ`0zAV}LSl zh^!slZ(7A568ys)w0B@weAJ8Hy>Th<#dX|lxYGc#W7PX_}HxRy<8hS3(yg|9pO4O%!fQveeaBViy9*tST`I!GT$p*s~C~sPa99 zSSz^Ewq$rwc*ZU4$OK-@Dph%>R+X1*@e=BE2t_dEu!KdXh0MOMt-_!0*q<)(r^lUs zme}Ovjzy6;k0Ld8JDA-H?-2}dM_A-Zpc=d5zcDapbB$AiCf;YM!CtE;KenML(@LLN zh1o7Gd32txSd#xBe%>dHJnNx;Q-W&{3){I3<*Q`k!10*s<^fw(B z3c3>rrlUu!G}=jhT%t`UQi1 zsFBgw+oWj_i>`&bjwiVu1|wIjM-t=KD~+T76!2kcj4wvpJ2)3i!g{V1x`^v@N?~MO z1}6=sBw1_;FSaYWcDIIex&OA$>1Cn!&_L(rykjDSJH z=sk{eZ|_NKrT4PT-ednd7|5hr(9>Zdw1#iC_JCvd*b69{J0wue9nv1`kV@k$g>n5N zEj1#K*vmLejlB#>RZb<$T~9Cf1vU1Ha1Q|T7jt-O#GXh{xh+0@ zPefImLMo=2AtMEa@u%(yx3#ks*8hkLZhzmAc zgZQAo@wbeJF8(yS)N^6EMz;z4M6W1Mrzgvq?(=*S)aWstxet53%+=_fcokoMt210! z{bjC;(tP>4i_WUZ*D(;SmufD$-p%EP4CcOM8XIyqBPcXPg#4V zM*jpC->*q)uXNF|Le}|QKEss-EPsWCwcVB$KTz$W(qd+8gc%nVX$?g#`qb4>q|tl% zEHqCWX&XYH%iu^W8)sui{a;`OmWt6xnC*6b~M99zs%(Fz%qs(q_9jq%(&=(Y8YN3+^hP( z^hYAw9y@Q#4MBqY^iKE3D?USB+s+iTeKu@E=w#Dfh z&6RY!QQ~*Jfwld+C~t_1c1sNQxmo^C0v*!bwc=2`NZRKb%It#@@crWNVquT($MmW! zR<{Pp<)Xj$W4D6R9qpp%flQ{js@S>WOqRJ%YSj$kx{pZA?h`8`3z_nSSowocM#M9i zG)7YIc!(9%ioZ7^OVLj$45y~D>YqcbI=4S3<~)hh_*&*x>8!yjSz;Aey2_ZoO>*K< zfmOq}Bd(MvHV28pZMj0 zNsMFZzpo@4F0bbnUnwmcix{}5TV%FKN4za2pOav|DoVovZp<3=J;L6=@&hv%{$AW2 zD1E;}YJKlzx)+Wj|Ifw6MN#RG8zuPV5`$Wy*Gm_C4ye%rIHyrl11ISy$@$0OsEd}= zF;|hvYMu1=3E{psm^Gg(S+YlBxmDu&piq3=q&O7_sdX4D`g#z(@#30 zQ>G)5v7iV&B*}iA%pb1_18_eW(6dIPVlT2D2MuDn1!>K|N79$`-+@>QeG*uotrm zHWk-XWCp1uIEU$vZ;X zxQS)nyQwL8$FUD65$tPVC#WA)3U)6H{zOIC1+e5*z;-}xfM74d#81Em3U&{$9r&{B zAi>@$P09N%4zym-eK6=&%Be}PuYjFE8^;Lt9`ZY=N?xH-MQ00U0agPy=TZVYl^YvU^2#Y*OY;PM!OLhZ%@@&MWvApd zCHr4Z=EuhVuHN|Y^ySX zHVZaMoS8(|3HD+UYnevZ3-$@HB{Yj}FeLLiFBVXIo1kq#pH&vp{es;B>^H!ECD=I# zTRB?$h+x0;Gq!{t73>)&W6S9=!7fBz)Zne^#|7I8Yzakar(hZVIGnrVgt)j81X*Ym~zjreN@$`tbtYRPGwl1$xbX0 z?khq$5Z(>SjKK^w-#5_kQXQ8AZq|9t;0JMU@XyTMj<`Wm=!S~#Aygb;Gt2D^H|VVN zxr(3tHMDgASKd8C`Mj5$W zYm!iYbhG3<)Y53B<0^*|r|$>n1r++At_bjdhLi<-^vB2v#Yay7;;sh{Y4mA91l1mb z6AFD(z|JL5S*JUlH36O02;2;)QA$3mJ}=N8aeCTQ2a3^sL&a%-WF#oRt7CX;#aO_& z(U(U58GU(82DkMtfg`fHJgR&uM7!)AbQZr<-Sgoh!f`soD4+@ zy(7lD?Fb;Hm#z*3XiU%!hb(2SF#H$kzMFJ*>wgBFz?t@=8kZdb?lOzO`@{$;bIs4!2s6yY#bllA8v(1Mr?Y^(+V()(UqCba%{w@Dt#~$32#Y1KXU6hJr9L8=Ma(*y{-W4oCnIOwM9dYHo7E7$>A4TEmlfwMzadK@8e)2o7Qp?J!A)U(Uck`a(J$}liA zX>%}*ss%gXxX4?G4eksBqb@h5blj+#=;G{zJ&mp!V3?@1*J|l>z{Ea+!3?ri8$3Pp zBv#n4V1~gA8gv@A`ZVlH1A{Zy2Q%nq!4A;H_GBDrW{shg1FX|81T&O+>BiHry#@v~ zTZ3MD%d7`A!0xGKEk->bJtSBHd#@5aNZu>h0ms)>Clx;(HnGKsMchwE4OBwvCwwP? z)zHo9cLn|Qw?PKx$(X7Js9-Q-3EDqQ!%<$nUhf z*fXZ&eGPxK=hN4M?WdvIu3!N*j$kcDy+Rrz*p|%n^5-!boGaLV$EyR5;&y3q+(erO zGumom5#Mu;LfT+rISnV3Lb^h*E7AHFq2^|jmyIA6Qe>pzHqR4Ca2eisb>ESS-zB62jNn%Tl48hILa&S}^h1B2W9gGIDn zumd!{s6Z>C(W9`f?om@r(?+pUBZ$ScX*6RAvIP$Y`_o|)yFB;ZAZDPk25*e^VX%yT z7{{35S~)4>89U&3FXb=6as{ z7Do%;74+Katj1_XE!`$q!tv+I)XZ8sYGM}zkD_ArSuB}wY{rsTOY2SSWQjj>AiXNs zm5!RK9AJMid25Cq#T}`GkMChGdvGCms|CY5H&+fR%N#@xo^3FPVBr}|XP;|ew-pb_ ztfM;wGnS|ZinK8A06k#alion1O^j2ofgYd5Jfjf}^z3QaXM!1vX9JxyusGdQz9nra zEu762jkRxL__s(CNSXR~0OpL)fqQ&vg!X{vKf*D=WNN1TC zFP_6`j)}#&XNJ==bGhOHEGQMh;q;bZSJFB88jYaw^O$!fO^b}p96=AxXAD6EZzOG6 zU|@}cy(QQI;#iENC(mb|5vP%~UofLdBk5hiFw)|f6h_kLf+p~uDl7fU#2!%hq>rQ@ z1l#1;6_}AZk_r|XN_k-)Nizg97WO7uB$#2MiB=1ipa$$#o2c_N-Y*TzG0YKPW^1B* zOf;*iC9{bh7tHAGCi>do(LFiy!CSk;FwZS)ru?Oh83vnapkT)A(M)4b<4rjYJGU2$ zrD7GY_x$nW?@6qOv?rP z-03gAFcaVPyU;+DF;y4CV5f=Yhy9sn&~1VpphkO%{R}EtDJE#<0NlXQPl6d+kkDFFe)^>!`&#DF(Zzr z&jmBoOrWn#9#78`sNtes6BFqS!HhX@B8@kARGhUrb0R%x@Tgxf;yaV#^%rx+15_CN z%sGWdUm|KKz5dCz0{E8*>Wb83T8NS9t}8!DRdr966}a##ffqY zU29^#A%(y`T*q1xgkQJT*k~J%6oXNx`iAD=DY(ts}{;Id5@ND z$!wwdCbl16Np7KKf*H=V(1oXA>jm3Li*b9@LPt;Wu<SR4q5*U z^RwwgQMO|WHFy~ONU>oUYr9_)U%lq)=(pr<3qwdd~OM3+~Ow6O# z`bf^BKbVrgq~B%Eqd%LNRke(#|1s2aPXJX zo&@2~==-H~NH8Nwm(mdfldf1wUzj}Zily|m$>StlN+U04Ek_jYilsD8Fe6S&X@+1| z#^ok-Da{ddBYmeHLdC@<_Na0wa~Z8RL`8BrU341OX-aZ-FQ+d~@o+9h){TaFPVN;n z+QhhlE68yr^AZ&2akzqt1vRpJ1%(YvTDXF0O&+&!1vQ#H&h8a-jfrs!S5Q(g?k3zv z)8i(O&99`dO^nU2q(N61=JVq)zmld4dc-+r(BaIL)M8*_ekCn1d2D_qEjM|Whdzho zLng-NSJE!Q4D&1L4U@;_SJ7K0#^zViZJQ-B7+diNGFQ-0d_FyjGk2_|Aayq;uhv|cB89r9b4~PDd zk3rX4*&s3H!Xk!68NF~_A(xHHeT}_Xospr^%jL}Np=aR5uQ^_(s8Y*-uW6@KRGd~} z{Pz_S5-5w)xHY|%RobFuWZ>OdQL#3K6){xlXNiZQS`m{oB{qHG8b3?^PbR)ECocAl zXuJn8RB(8Wzn;Jj4zsae1_bZn3TBL zrrv6&x785s+xnYyHq#fLQO}gyr0-`9;qn6#38NGHLWABH#tlX5rN0f>SG7_0N$(n} zw`hZDpE4W|=ZDime0cXf6Q34p!o$HP(3)_f(ga!)Xw7&i*bG`T9u+o&)(qN2)SU?0 zMAV%a2XP{ZQ&4#dh*MB`3TRV6n~LXzQ$d@Gr-xHPn+n=AD4Yh`G$@<~+BDFd#1oDV zsNv_*o#ie(=x~;2;O!%(OaS!bk(aYPhqeo42L&-F>?EEG;;HofpfHf{u;ti^ay9wr z)6h^nPx=&NJXg5=g%XkSASq8*S@lAJM*x@71dFqL4Q@zS+h~z#5M$E?wgPU1+gxiM z#nU#Ue16pyT8Q@JEb$9HrnB`&Xx8wE1D6Q1$J_`CR{c02)&Yh)9 zu;vvUSEgI@@Tf$w{*-nS^6~6yQd^Zr@-?-^dZHjzWflEExkZ%T(NLnUqhAe;sIAr| zDTCB?)(>4nRj1-Fn5rgB6@}F^)#=vOoD<4sYkkdPb&K^9*D7_Zb*+Apx*e3u)g35r zRu2+y+jm-9vu{+N1>6RTod1<8d_Y^SoUc8hW+}g}-mUJlUgzBl3Wuv%`84pM`nJ_o z^ocq_D2J>Zx+B(+RbQ(|tmoH$ryjGihUp5QpslBW4>}4i$7zCct8buXg0j1Gh$YK% zqM*^TP^l@x^C@)D1j{CLRy<5C$`fcSw|}zcuBA_M-vMMZH%pJM7kD#0E2Zw=tR5ZbJ)8obVWA5?Ho{63I`A~soQ zOXfX^GCOexy;T>ca@+j!=d6nDMLWaRvi;UA%7(l`I%Zv^y=ASj*6HcNrUb^>M`ww=O0rtnegF{KXAg{E6S$Sb!UlMXsWFKdM~!S;F9 zAlo6z&1$qww_RM_Y-_QtsT*s1+p@7?4)nCTm!X_fyUO-9v|VCrRhFdQYTKvqf$ch5 zYxdo?L&`-1p0_QBq z9aAnJ?AMMcd^G*Ga&}pPc1WqnECGd&Yq#25MGe|^TOp2TxqVYXXU)e=$a!-@%7KL^_!fS)?&N1<~k@l}w@S^o}4gI46eJnm@Lo^fC0 zn4r~ruK{CsNg-{wF3rCg6|SgSW}B`ZsksYf9?i|_O;x*5=CjgfmCs1G(r65-LfiX= zFFIPZ9|H#*t%?;7FBfWm54;aa?wS@rJT}(`HQ1dkYGbb3nb6{8KIb7i6wG$U52 z(Cg39PVEob>8=*#CCAyWgtDl(#r3RqdBr?euEH}{e=)FKy)?4UwNEQ|Y;+yeUdX)8 zwN>R?_5NaPhnipioFfY<+=8yzU&HWkB@BO^%TTFracoxQ`OiLeJLb3@>d7HjIo8X> zvQz!7{|DC*ttf9r$}#QYA?+!O?ZWhUN-NY2wCq$r!2?;v)|_%piei6c*lu*h>or{| zPP?rJPg!mGn1~Wey!eh3-Tp#KA!XSE<@cl{lyv8VDTQ`-^&^nHIKYz6$7`NWDYv)f zy_B*;{YTwZ4xZ}rQzD8e|I^F(+b2;Ewo^so9i@T`YmStPw zx;Zt1?ifmgq&v!OkGZ+s|90$3ZL!~(_e|;u^_N3mOI=5gIp0J1E6-uTA3T3eZImu< zv1R2carbCJ_E2qZx%+L)puvOOE9~~dxqv&|bKQri9~LL4rM_m7yVd?_c%_@mQTHTM z#k+OaX_M#=osD8uCa{9BmWvpN-a9b@}2K0_c5xkIq05)bbg=K+23`&>An`_ zKjN*B``ky|@fwRCPt|KIw_u6HSM^G-a@1IMNO=j$3t{HCJ7IU0{{UEDV@XTcUvQ+R zEmXD@d(w`}usmB*a*o7cj-;N`vX)m=%#!ocrdw|;Or-IU{srXusP4GL^=xR?s3wk` z2{ux43S46ufd|xQE4;GRSa@Hw&T?x`AvN3PWLmJ0ypplZ#;e~`X^T<$>$F1KF7@AO ztIbI44LH-+N_VUmS6XbN>z(N>ws-4R*&uH{FMSgv-={718-}h-Uuf91#HXfTm%iOT zJLl%~#ma@&+tYc%xf|vCt@oq6Gvn^`>0~S?A37gNzgAgZeZYB8&c0hk#X3s@YsWeZ zPf+VDS7QZPXZZ~%*UC(Av$(R;es6wv`ab(79!o}{ZD-9&$2!YBkZe_k#sldYH%ri3 zEt9Z?;>kFWaS)*{&EOe(Kt`)&M9xWNx;8EME=Q|n!O-2P%rR@Wt?6g69hAf7JJ7OO zc$bIw2a4sB-1Lk?_NMUCjC~3pT(&9;oh8a4%kIKtMyoQ-si_I&l~PSrEMs!xTQiQ> zTeF|ZI7C0C4bu;imfj3lHgvpx+}`Dy40yk52H-9!?~`(Hz${&HxChMF?^AfUbDw0u z!_rp8QB|`}f7ob}vb|qI->f|pxmtfxB%c(?JtCP<>jI%T#;CLWK0Tp6h?zX0{+zSh zkx(7|9zg|JE=AEHT3-HyzF&E(Vz2(1^zpl*VvA*b#vxsIeC7EFFi`lJzQgvW>+gD@ z!#dy_9Xpze@AVqT59KHI55@e4V*aSqt#M=x4SM27O#{(zfv3T73x3)1Z(`_Kx z578$32yj0iHU{vUVUs+Es4DGjPqSlvMT^IZ2K*5N^~Uf@&veH(8BxH=8EXO4TvuU9 z>o;JXXNBX%`VD~Z*Kb1IyTjLb);W&X-{@HvcUT&31?k6rcX~EEuByKW@UHp?JrlGN zSr11SKIYl#7+CluU}NEPpidOKt#O}cyW{r20Z*#RU688sy5LiJ;n`t%xZe@a4oh9& zbI81z_NB+C@+Nk>qjbOzo?MaaFOoZv|21CkP7B{8Yl3o|pk&swJ81(%(U+5OJ*Hj0Krlv%dWyU#JFbeZ>{ zBdbxPw;huMaj#|8hoAo^l*?=fy@wprY;SlI%9+KVdXG59rhnl* z?)W74A6~^)Y7eCDv%HDtyoK5XbBmGX%ThL17x}iTe2$%^9PrfnMys6vlf=anjtxa~ zeF>$|*@gvmP}U{BBaVlPHuwrP8`iz8kkRl@CnUA_)xLG~@7$YxSxzRMt?~+eh)T+L z_~t<9eJXTjXixhNQMRuuZL!MxxW&@?)zbPJ)WY^06Y7V))za=3=ZrkNf1xuH4Eh@| zEb&&Ba&^D{DA%Tz`|qGxu0j5TN>=%9$3f-HtcJM%kn&;02*0lW)-le{)8u0RS~0L* z46GNWt>WA|=VHtd>zuFT{leesd>2YvocE^L{hOWTxwrYBb=3B|%3;F`vXA0z#zuPF zui_2LeSjUHsPq)d9=r^=8|A?Y)0+X~Doqz;E})G%l}G&!dP{i%uu0twI9lD~FT>4w zbzT(?YPV)p5neR_%%OdN#q`^(QFzy8kAD>I>i75;NqLc39!SS>w&AyHec5}3z8AkD zvBzJa45Qij%|EWy6jz7Q-PxUjEVA4S(niZe46VEHF5JCP4yX)J>@`rGA$Bb!xVI ztowTRm+t(uv(qj}yFKl}wCB_IrVUNMH2pyO@6-R7J}l#mjCC3Dj9+9N%vkN+;oa+f z-}{~SOy4Ho^}b*FUhygZD*sIXY=6Rkt^aPkf~eqt$%2fw;a`K)l7G2BD_)4hr((SG zQifMeLO61Y$m{Kec#XXX=e_;$^ZF$ifMqxp3*i*30;gUP9CB6RP^%h;ShYB`8iYf} zhN|yzBsnyA60o6)|DnH?1vbDYp9`>|Dg$tx*Wmhvk`4H6Rel_o4q<$ek$wE+xA4`x{H!>^1{egjK3RMh~^G?mt&{6Wevp*I5_sT>D*U65;0=`_H>Rp$V< z4rR)Ke8ZJFSvWKPzVLjIb_bRNj&xiA*ih9b@KV5e(vGa+4JaE1R@AcjWdk<>epY+c zsqzE0*PSZ=H<|Fj!D!oTD01xAMQl(Gem`Y#3C6)e) z2XZP|mAQbLf?uR2pRy1zpezE+Q56-oRV~^zrd=PI_4X0l# zS%42K@f=(pRq_BISMrf+&q1___CU0W_9}&dFF~}4_A5Dn2b5yKS0RaK=a6isHz3)J z>AnQ;_mFI+cOltK?vYq{$}*S)C^ zrGB4U=)TlFD(%d)&(eNQt4Oa+KRPh`}eYbv4e_Pi)X`T{Km8Z^g zzUM8^`ySQn^45CK@J{rO@}2G5=6lrly6;`zh5k$Z)=rF%)BaNMc)%*pFHQ3Oemfpj z@KL-*xA!j{XOIhvOm?5k`*_sBPXjFYujlU<4P3JJpt#=e$Gi9V8;)6M1aywXrwN~C zyt{b@=BH8kj2w*xdJLwZv6yzo;WHke3HVIJm^c$t&?I~&OMNfpetdqX?y$YCMpHjieeN$&{t?#!mgQ-MxW2C5gX_m> zGc3jFmCDCyEx69Me4KVK&B4F7vLpR<^|kaZG&$pW%gY%fl}2wEpLeVt|2x*3{NLk) z_B4)Ym_NU^dVV!Ej*70iaKf&JhdY(z{ST+R>zKyenj!P6lgA$|PJa5xOYX5NE?7Kj zb+mm+``Q^7?7HL8W%gZ;r>7~q&fmS!zU!+OR=IbrdTpp0JZs?vi=%5q@REhASB+Y- zdi9hg3)_Yk3$k-LTM!fl=Wmo8(2Q0fje(!r_*XQrAaqL=nBx2un?H5OV8GEK) zH?XB)(6~pnqoZfsb@#Q&&Yv!GZn6746BJKkOVZLkF#8t8lVK}RmE25EhNAW(zh|(* zFmX$ATKB^au-6D;{dujjdDpt1&rp=>p4y}QO;PUb+My~}D;c{7S(G{@<<2x`f$Hh} z&Xc&a>msW%Pq}mVyH+Jf$#U8?&l;8gESkQ~s(Ci%*$T+Bv9N2prc^2=U2#n*jF*Hk zEIpmi>Ya~xI``=t2m3u68<^l=^9sm*y;ac@B@UY%&R5#-i*Xx=YXypei;Zv@4%LY@ zps1e2V2#`1S&ydT(%D&TPh%hadgm5UJ?kOT+=F&@LSQ1?W7o!{WGIRX+mjImt4mZE zl^g{y+w4gUw}IN(=`eJ4b~+0zU<`(OJHm)k*9CT^ByBq0*Y;vsk*3b<+HO~h%YA50 zN`WHb?|jy?#%LOdd8C<5Uzp0x?fSc2$+b`SB=G;tt_+8glRMX0AbkUx(Wu09(}l$J zu5k_}-#J&`xI$I+jcdB14yEW+?b{qmsWP+cMTb&sn~8QW>H3R9DJX|1{(uTx=t-;q zG86v`-2rzD{)(<@r&3fu-RKwml(i@Elu_nzT_MfeY$H`kOJl+oM}Z|3d{q_EC0$oL zmHdho_?O|J(KFeo>Eo_mqjzrC6YR9Z;kkT?A-}Ne9j8(@b-1YAj!lbx`4|W5oo+?H zqKEX2_oreO@6n{X>^9FDPv<5$3u({B9l1yVT+*bMHsL4_%&rM8rLp`Gq~DjQ;cDU*uF&lzRpaGACendJ+Zf*@O6T_{0^+yjI1bB2Uq9ZWc)R>SCJ1A!YsY z>8Gqo#w51dpx!fisNLsD^w$%cJ-KT{8|z7xk+4o+2i%8;m!~MB;@7#5ibjN0*1K^Z zVvccwLTUlxzY_)g?*7?UCiPWM=c}qJlvlfUr7A_PS5vbxxDz(M()Dqw z5}fvGDokQp>UFcA;&2-Ob&bFs6x( zuXl}gD_AMAHwny*`X(ETI=ik&S4#8UsGaIb95m*vgQ?8Y z8Tc7wb^R7Ufu`hj{S#{Ag$`pj-Be=e-&Ddf<*c%jK@FpW*{Mwp;?$-FrpO@P)ND|i znKDLXCK!|nOqtA-%XOh#F7~INn&M}UJz_;_$w z&6*xZI-hkxVd4n)J+Bd)TE*5yT`%j(+y<#L395|A00kfZ0iVuC@IThEQ$((pKr?x6 zlP4-}Q{I+X_M_G#R1HJ{!GgtI)<)A(#sblT>$)l8>8FJV))xq{Lt75V+{x{;& zxxZ(O?w2a{Y-*nr8zs}9#qdr;G1D3c z@duPvpuQ}!NGDI{Nd|Xss_77B6HUGG?Jn=_ssm$ZFF3{|%BF8)k4ot88%MY-|L@d&3fN!LAE3vawZ27gS^m zHG`Q*a{OB#hA{RO^=gi+%Wxs9OInr Wd@_u`n3>*~Z5LEve9t)1fE@sO8.0 - -
  • ARA_HiveMindWorker
  • -
    ArachnaeBase_Race_Slavey diff --git a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceBaseSwarm.xml b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceBaseSwarm.xml index dd9ee0e..78f1411 100644 --- a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceBaseSwarm.xml +++ b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceBaseSwarm.xml @@ -61,6 +61,15 @@ DeathActionWorker_Vanish --> + +
  • + +
  • ARA_HiveMindWorker
  • + + 1.0 + false + +
    ArachnaeBase_Race_Slavey @@ -85,7 +94,7 @@ true - true + true @@ -107,7 +116,7 @@ true - true + true @@ -135,11 +144,11 @@ true - true + true - + ArachnaeBase_Race_Acid 阿拉克涅辅虫之一,智力低下,一般被作为活体炮弹打出,击中敌人后若是还没散架,就会继续依靠带酸液的颚撕咬敌军。 @@ -164,7 +173,7 @@
  • - 4400 + 4400 寿命 这种特殊的阿拉克涅辅虫从出生起就走在死亡的道路上了——它们的寿命就是如此短暂。 true @@ -202,7 +211,7 @@ true
  • - true + true
    diff --git a/Source/ArachnaeSwarm/ARA_CompHediffGiver/CompHediffGiver.cs b/Source/ArachnaeSwarm/ARA_CompHediffGiver/CompHediffGiver.cs new file mode 100644 index 0000000..4436cf0 --- /dev/null +++ b/Source/ArachnaeSwarm/ARA_CompHediffGiver/CompHediffGiver.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using Verse; +using RimWorld; + +namespace ArachnaeSwarm +{ + public class CompHediffGiver : ThingComp + { + public CompProperties_HediffGiver Props => (CompProperties_HediffGiver)this.props; + + public override void PostSpawnSetup(bool respawningAfterLoad) + { + base.PostSpawnSetup(respawningAfterLoad); + + // 只有当thing是pawn时才添加hediff + if (this.parent is Pawn pawn) + { + AddHediffsToPawn(pawn); + } + } + + private void AddHediffsToPawn(Pawn pawn) + { + // 检查是否有hediff列表 + if (Props.hediffs == null || Props.hediffs.Count == 0) + return; + + // 检查概率 + if (Props.addChance < 1.0f && Rand.Value > Props.addChance) + return; + + // 为每个hediff添加到pawn + foreach (HediffDef hediffDef in Props.hediffs) + { + // 检查是否允许重复添加 + if (!Props.allowDuplicates && pawn.health.hediffSet.HasHediff(hediffDef)) + continue; + + // 添加hediff + pawn.health.AddHediff(hediffDef); + } + } + } +} \ No newline at end of file diff --git a/Source/ArachnaeSwarm/ARA_CompHediffGiver/CompProperties_HediffGiver.cs b/Source/ArachnaeSwarm/ARA_CompHediffGiver/CompProperties_HediffGiver.cs new file mode 100644 index 0000000..470c230 --- /dev/null +++ b/Source/ArachnaeSwarm/ARA_CompHediffGiver/CompProperties_HediffGiver.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using Verse; + +namespace ArachnaeSwarm +{ + public class CompProperties_HediffGiver : CompProperties + { + // 要添加的hediff列表 + public List hediffs; + + // 添加hediff的概率(0-1之间) + public float addChance = 1.0f; + + // 是否允许重复添加相同的hediff + public bool allowDuplicates = false; + + public CompProperties_HediffGiver() + { + this.compClass = typeof(CompHediffGiver); + } + } +} \ No newline at end of file diff --git a/Source/ArachnaeSwarm/ARA_TrainingWork/JobClean/JobGiver_Cleaner.cs b/Source/ArachnaeSwarm/ARA_TrainingWork/JobClean/JobGiver_Cleaner.cs index f99aedb..3c1aa2a 100644 --- a/Source/ArachnaeSwarm/ARA_TrainingWork/JobClean/JobGiver_Cleaner.cs +++ b/Source/ArachnaeSwarm/ARA_TrainingWork/JobClean/JobGiver_Cleaner.cs @@ -36,12 +36,15 @@ namespace ArachnaeSwarm if (filthJob != null) return filthJob; } - // If no filth, find the closest snow/sand to clear - IntVec3 closestSnowCell = _workGiver.FindClosestSnow(pawn); - if (closestSnowCell.IsValid) + // If no filth, check if there's any snow to clear at all before searching + if (pawn.Map.areaManager.SnowOrSandClear.TrueCount > 0) { - Job snowJob = _workGiver.JobOnCell(pawn, closestSnowCell); - if (snowJob != null) return snowJob; + IntVec3 closestSnowCell = _workGiver.FindClosestSnow(pawn); + if (closestSnowCell.IsValid) + { + Job snowJob = _workGiver.JobOnCell(pawn, closestSnowCell); + if (snowJob != null) return snowJob; + } } return null; diff --git a/Source/ArachnaeSwarm/ARA_TrainingWork/JobClean/WorkGiver_ArachnaeClean.cs b/Source/ArachnaeSwarm/ARA_TrainingWork/JobClean/WorkGiver_ArachnaeClean.cs index ddfb1c6..c80fc1d 100644 --- a/Source/ArachnaeSwarm/ARA_TrainingWork/JobClean/WorkGiver_ArachnaeClean.cs +++ b/Source/ArachnaeSwarm/ARA_TrainingWork/JobClean/WorkGiver_ArachnaeClean.cs @@ -62,14 +62,31 @@ namespace ArachnaeSwarm public IntVec3 FindClosestSnow(Pawn pawn) { - return CellFinder.RandomClosewalkCellNear(pawn.Position, pawn.Map, 100, - c => HasJobOnCell(pawn, c) && pawn.CanReach(c, PathEndMode.Touch, Danger.Deadly)); + IntVec3 bestCell = IntVec3.Invalid; + float bestDistSq = float.MaxValue; + + // Efficiently iterate through the designated snow clear area + foreach (IntVec3 cell in pawn.Map.areaManager.SnowOrSandClear.ActiveCells) + { + // Check for a valid job on the cell first + if (HasJobOnCell(pawn, cell)) + { + float distSq = pawn.Position.DistanceToSquared(cell); + if (distSq < bestDistSq && pawn.CanReach(cell, PathEndMode.Touch, Danger.Deadly)) + { + bestDistSq = distSq; + bestCell = cell; + } + } + } + return bestCell; } public override bool HasJobOnCell(Pawn pawn, IntVec3 c, bool forced = false) { + // The check for SnowOrSandClear area is implicitly handled by the caller (FindClosestSnow) + // We only need to check the snow depth and reservation status. if (pawn.Map.snowGrid.GetDepth(c) < 0.2f) return false; - if (!pawn.Map.areaManager.SnowOrSandClear[c]) return false; // Must be in the clear zone if (!pawn.CanReserve(c, 1, -1, null, forced)) return false; return true; } diff --git a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj index 4532ea1..e0e4d06 100644 --- a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj +++ b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj @@ -85,6 +85,8 @@ + +