From 13beddd42b1d7e3f53c13679ceb4e4ff86259344 Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Tue, 12 Jan 2021 23:02:44 +0100 Subject: [PATCH] nanogel time --- code/game/objects/items/stacks/medical.dm | 47 ++++++++++++++++++++++ code/modules/vending/medical.dm | 3 +- code/modules/vending/medical_wall.dm | 1 + code/modules/vending/robotics.dm | 3 +- icons/obj/stack_objects.dmi | Bin 51987 -> 52330 bytes 5 files changed, 52 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 01d684adad..64e58ded40 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -472,3 +472,50 @@ return TRUE to_chat(user, "You can't heal [M] with the \the [src]!") + +/obj/item/stack/medical/nanogel + name = "nanogel" + singular_name = "nanogel" + desc = "A highly advanced gel that when applied on a sufficiently repaired robotic limb will neutralize internal damage if present, allowing further repairs without the need for surgery." + self_delay = 150 //Agonizingly slow if used on self, but, not completely forbidden because antags with robolimbs need a way to handle their thresholds. + other_delay = 30 //Pretty fast if used on others. + amount = 12 + max_amount = 12 //Two synths worth of fixing, if every single bodypart of them has internal damage. Usually, probably more like 6-12. + icon_state = "nanogel" + var/being_applied = FALSE //No doafter stacking. + +/obj/item/stack/medical/nanogel/try_heal(mob/living/M, mob/user, silent = FALSE) + if(being_applied) + to_chat(user, "You are already applying [src]!") + return + if(!iscarbon(M)) + to_chat(user, "This won't work on [M]!") + return + being_applied = TRUE + ..() + being_applied = FALSE + +/obj/item/stack/medical/nanogel/heal(mob/living/M, mob/user) + var/mob/living/carbon/C = M //Only carbons should be able to get here + if(!C) + return + var/obj/item/bodypart/affecting = C.get_bodypart(check_zone(user.zone_selected)) + if(!affecting) //Missing limb? + to_chat(user, "[C] doesn't have \a [parse_zone(user.zone_selected)]!") + return + if(!affecting.is_robotic_limb()) + to_chat(user, "This won't work on nonrobotic limbs!") + return + if(!affecting.threshhold_brute_passed && !affecting.threshhold_burn_passed) + to_chat(user, "There is no need to use this on [affecting]") + if(affecting.threshhold_brute_passed && affecting.brute_dam == affecting.threshhold_passed_mindamage) + . = TRUE + affecting.threshhold_brute_passed = FALSE + if(affecting.threshhold_burn_passed && affecting.burn_dam == affecting.threshhold_passed_mindamage) + . = TRUE + affecting.threshhold_burn_passed = FALSE + if(.) + user.visible_message("The nanogel gets to work on [C], repairing [affecting]'s internal damage.", "You watch as the nanogel gets to work on fixing the internal damage in [affecting]") + return + //If it gets here: It failed, lets tell the user why. + to_chat(user, "[src] fails to work on [affecting] due to residual [(affecting.threshhold_burn_passed && affecting.threshhold_burn_passed) ? "brute and burn" : "[affecting.threshhold_burn_passed ? "burn" : "brute"]"] damage! Perform some external repairs before using this.") diff --git a/code/modules/vending/medical.dm b/code/modules/vending/medical.dm index 795d35adc4..a24233b17c 100644 --- a/code/modules/vending/medical.dm +++ b/code/modules/vending/medical.dm @@ -34,7 +34,8 @@ /obj/item/healthanalyzer/wound = 4, /obj/item/stack/medical/ointment = 2, /obj/item/stack/medical/suture = 2, - /obj/item/stack/medical/bone_gel = 4) + /obj/item/stack/medical/bone_gel = 4, + /obj/item/stack/medical/nanogel = 4) contraband = list(/obj/item/reagent_containers/pill/tox = 3, /obj/item/reagent_containers/pill/morphine = 4, /obj/item/reagent_containers/pill/charcoal = 6) diff --git a/code/modules/vending/medical_wall.dm b/code/modules/vending/medical_wall.dm index 31f3dc49f1..2d4c30080d 100644 --- a/code/modules/vending/medical_wall.dm +++ b/code/modules/vending/medical_wall.dm @@ -13,6 +13,7 @@ /obj/item/reagent_containers/medspray/sterilizine = 1, /obj/item/healthanalyzer/wound = 2, /obj/item/stack/medical/bone_gel = 2, + /obj/item/stack/medical/nanogel = 2, /obj/item/reagent_containers/syringe/dart = 10) contraband = list(/obj/item/reagent_containers/pill/tox = 2, /obj/item/reagent_containers/pill/morphine = 2) diff --git a/code/modules/vending/robotics.dm b/code/modules/vending/robotics.dm index 88f65506a6..2d77b2fc51 100644 --- a/code/modules/vending/robotics.dm +++ b/code/modules/vending/robotics.dm @@ -17,7 +17,8 @@ /obj/item/tank/internals/anesthetic = 2, /obj/item/clothing/mask/breath/medical = 5, /obj/item/screwdriver = 5, - /obj/item/crowbar = 5) + /obj/item/crowbar = 6, + /obj/item/stack/medical/nanogel = 5) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF default_price = PRICE_EXPENSIVE diff --git a/icons/obj/stack_objects.dmi b/icons/obj/stack_objects.dmi index 1cdb3b6443e6ac60f96763f4e87d89b11fbbe4a6..4bd5dd91e1503ba6530536f7bc18ebbb974fe6ee 100644 GIT binary patch delta 12286 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%0A2@?*SI=jiEC% z+oS@?=1Iq1SS4%XZqw#DsoSJbpM=ak2Y~VAxY$Gmw zO`@!$--_X`A~gt2Yc>I)X_Zp|lk?z!eZL5fbfezpUzv8!dL&q-V1%=r(P4D12fO<_ z99yRRC~f3^7j#MUq{!c9X+%hHLsU*cFS;jNbkq6fBSqnK#Ku{A6WTrip#OK4fcxoM z09#Q>4I_S+y5C|6jxfI%zt5rW?5cI&a6Y@tQgEC{re|V|$D{sjyUlMQ5Pp&1L?AFm zuXY&~NPg<-0c|b!)#BXPP>UwP?P_Vdiho0MrcOw->LDn(ig@WA)M!Nn-pv$xbPz#m zj^|V0q;_=CmV~>9E(|3TqckYh|1KR#rV(*(g=KecLD`-O;=Velvl8!rd?ox|H?s#z>!>(*?^K9X_xl zprWcLdk1Y~i<3MtjVBYtP4+^3e>?p17bm(t35eHroLqzt(&sM&S)nrv73DqZkC?u}P(OurT& z4VVb96jXvQ3|R1nOgnbHl|bGY&B3Q6(*d$7?b_JV#4JSdNce_nPek*ad)4(~69}a^ zB|AJU8gfU>=w;-LE{tV@eihG3AFCI*&~@TY2w$*7x+*JfY5lo6jT$AmBABviIVY}x zS0<)rMVcAbUyA05h$MQSiys;z$;I~CqP3wzq>#$q+PBO3pi(_OAn>fDh}|5I-7 z7rH-V1!dmN7!~!Jt{{pv?CAeAj#6~fCrZt+U+L#FKf63ibSEXp$Gx9(E;9+}E$^Q; z@`vBpAZ-?II5KTeS>BqC1>6d%vRFkqm@K^1>Ay!|$5b~Ula^TU_e?(@|R z_eqO0uC{@i2R33RDS6?zavcXwPMI}6xDjG`6OeyPSg3j_;^4=Jc654K5IKM@JMaf_ zt}|6QfG28<83`A5V-Gt+ z-|BwjzOc?&Pm6~U@QG(7hHk*iAp(19Ln1|g|EtI(0ooyjPXs`C+){`c=wqb#fupDR zUBYccJ?c&Z_2WQl-_{$jgT#T_6X-_dhCp7x`k-#}O$SN6v-~W?uuU`J?LpJ}bg?gw zq?)u^(339PNIA5Yk1>B{l-5NWKx99Sud@obj$}od+7JX2s7LLqiGDZFjSuEkJQeJ9 z9325y9cEOsvU0@)iamM)dBMn?r5EgITgJe8mog1U+_5l07wEb_Yg1mVvx0El`s^nw z|DUnW3d(&qcWhlzsTNPiXZ4|->d8MU+)$A`qze@i`VmQ={JF2iSPL3qSVaX#SNLz% zUxbKFnGX{uGBs8L>Y0?2pQPgA=Frx3pQHFSH?BSST=llQW?r$(&HZCx_C^Tm#z2v(M^J#(m z&+L2+-hD1AT;s9>Ar2eQrOQ_`2-*A{Uxw?3?R3!! z)^rOdl14<+2J;%K@PjK(Qyo=tyd;>5Ux!s^{)(X1Ry*Gsy4jon{g&Jzj00349!?)S zJ@Z0U#x>B5C{|2x@AaqsS%TPY2Rs*mhznc;=q`T!S5Fn!n@x<4w0cOJs7e&j5l+19 z<#K=Ulrs2jX4=c4q9(g{DKPSPY^A%U@Q@3kl6aoIPQclvsBd()ICDUAeQ6{UH=cAu zO2y1U$ZnDMxvKTz0f)cH7c{cD!dp8|6hv78;TX(E9xj(2?Q_3VI3MW7_1iDtE#*%cHUEez8lLEdtP_T-PM~8(gP|fau0dUD%vj_1 zpFaI&43eSa1wxMi3Ff5_hWIDYX$a~EPm?;v^zIAG?QmIHiFE-z&toZ0S&;xhkK^Q^ zXyYEvf*Wt$gQD;}Yz$IwQn_h875rmno6l%;o0L|O^?9A+0GE54uV!_~rYh}h#w2$9 z32{;9cZNL;hVOVT>+5Uy{PS+o1Q_^hB=p_FRX_Lkogr)43d#@fzL(~^mSGi#VE&Pf zI=vkZk47AJjEw5xktR?{mg{plQvGF+oqP=>dEMFsQ67v56uldM! delta 11923 zcmYMa1yodD)INNN?v#=arAtJ*K}sp5rBO<{^A4SoN=OV1N~d&6cZqbjbj!f}$KU&Y z?|0UkH8ba)b?@H$?0EKb?tUt2QZi~h3#jY!R?kiTy{mj~Ej*6+P&4v|W>_Q&sX}=H5s0K<|gqFd{@Lq2#qYspxjYA5bLm z+p*)eK*5u@>9&Hfd-8n|gnzPe$~eOTerSJ;Ar*RYx;iA{N0=;h$?|dC)jiz!Q|I8hu zVy0D@9r1>;*6(K}CSJO6oiJJQR0&8{)a4S|HZ)M()KR`I&=YnwQ|QxTSlae5Y}F-Z zKhqfKIcoIy+N72dqET(D%KdncRc!PZW>Zu7q8)_%M3!nQlj@KJ{2>&2D#mDHL9f{J60H0K%DBDht5rC^4=)QY zdER8#T65gejy4wK`tWCYZ%v9mD7v~=xnyEzuhb<>T6AAYr>HHzQ+%SMVD+u`uZ(10 zcrNEh$BNU({ojc)6@o?1Dt`onD3|%qFGr2l-tCy5@aUxP-WGE-e7-syU3WZ%{ zXr3@7#?N4vsV{5nPQa}i*k~lyBFDE;kKR6uv0~gPCexZu`t(?BM+PtyP3*vwtbQ_9 zztX4n+((|BRKhCpq!XObshecl<-sIW6I~XznFj_YJyn@2TjtBklat50veNgEzHb zUaBU!mHM_#@AyeImFtyKlqfv38i;ez#TLHi$F9A?L%~(%$3DqF^OB70v$|Fm|Cn>7 z48OP}`tk7~OHNm)H#GW()CViFjwdq^jPmaKVazD#@(CKh=j}3j$1uLNbn#I$$kGS@}WIJtH zVPl2#RI(g}ja0m@-g$7o8qP|~oTDEYc2FAK@lLK0bM=t4deQB-eSROX^9uCwc?+qW z`&e92aeR4q&rT?D5ibkqlIvyQ@EQ{LQiwehYh_NzeWau6#U=>?PDtL9r<2`@4A8_u%Ff=sE`__S=y2aju^}dD)(>H=Hw6ttPVeWb(0GSu%ZjPBGRxRDvX-A{e_>Xv582S+N4%Ir+PoJ=$uZ- zwJ@1t(A~kLp6<(l7Y1Bxcca0Dr?zBIfWNnV#?Ui|CTwz&rqP(9lMb#<&F+&O2*2mE zRI8F$vi7^B9^@M0T|6guYpF#3*Usy=4>*ZQXy$x~t(A+0f#axFygfsGGvKh7KU=?J@LlWSpV z9;~=)XP+4B)t>5kxtk67s-?XGsOc_BZnccl2tq!LTXwY%R69>Bq zSm(4LAD2{8UdOol;G-kL*X}9=F)kk*zeT`(dxlrWR!mN&+QAmkH}3{t>LHvM;RI!q z9S?L3Pm0Hpp2s<{uT2_=rBypqI+42DqrH%N*rQdeK9AOSYF+}7AFs<9-MlQkn03tJ z6Zp1JJLAh!MN(-&DS*Wl5iZs~0V2F^lKkN-#qe(QE=Uiy_hj2s;K{tdil^{E(w}bI zc~GbNCViLk1J!es9Rk))0^qe8iGWmM3!*!7Ww#v^hYv_Tgi|6kg8L!PspDHLq)izi zw3d@PP4AY#L2H!y=N~(h!?@2PF@UViyU)^+8sNh@3^$;Y_XfRPnurOlCkc^AiB(2+E-fEZhD$49uW=uh2*3&>*;Tu8Gm7Z~&#Ers0g zptg#dTeIQQ`qi|hqR+njTIn`Y0Gpd3u34r3yPvPgEQ{H;N&!!}>HcYzdI+Z8u%t?X zul(?~=|`26h=bN`d<&$Pe*WZaU#5KOCKBm)a;j^@RakPK_G7!C6G4w((D9IdE$7U) z(gLeDv5r&y|8x_3(J>jQeJNE zt>y4*M=a0jFetrZi$$?-zM9LCQ=+~}2+mWAa{UMeM=l)qb&^kaZ}z@?^1CDz7oH>2 zu#r2-jyc6q`dTH5d80Kl-5?K6B<#Pa1fS*VxJaWg0_z7sp(zuW@HKU+~W z5#nC2-Loca+;lOU`Q!Xd@v;qu;JXfu;VZ;VR7gGtMkyw8OEJ+A51!%I z53G?=B&j#~R^S$s1SdscIl-TYIEkBLi_d-&BR|8B&rbshE3d47TLk0%lRZPi`_YoI zP?q<7<(~kZ5js|G7{8X!T3(5!w*^VI7g|y6bGYTo_;|M0CBUb_V{s$80#*19S$ zaVdE6XSg~koorlBIEu0R5i*ib9W!2~2myvfO|mGUEV*CdlJdoOQ?&L~#i8ZRGYWCO zmTUTfyF0rawMi5CeNXSJf!r&7-_QN)8;xEhS<$R! z1O4*ZC8!Rw3e!z4cw{*Sx^yBJ6DB8zjAxN4=|40(MMF#d)mhnCEQK*Z!s=nf2|15WRWO?2Yk@g zk=_heKf!%aeXT(GW-{aX1Gj{P*E4Qz8~E##D2-=Nz3*Vd?NV_Dx&&#u@GowgAe++m zYZJML;92Gym_`MhwReD4QB?a3j^1aS`kHwmY z(e$70=(w_MO1n6cYRjm6HY_Lbfw=l*Oq3%aYMQHcsYC9)ec8QPa685FC=Rcj7TcRD z+@XTHLwMw{0A(?JeBU=-8*5hOP2(%@GHf#1n5sSmEL2 zqg>z=W2Yh>;N#i^U>*1-=%fTjVyb$wYNSai89tq_oV58(7!5JL$!e%tMTW1ug$Ydv zrAX>RjKZP-Knf2H4V1dAtF(+_kvRWLch(K#QY3 zwwEc8)4N-jORdV;wi+EOjd90t@J+-wT_uPPL^?tE-Z*)&fwGQ|y}t&=F#qB|!Ad`^ zM?0G#{0dylIrNCuw>Wt+24pP1l=@M}cweyxKnDj^N)PlX&i#QPMDNy^5`sqBC-D|i z%g7FQT@XLx=vTHE`q41 zrsf;+K*wHM5!n!AJYMl+)k0ZyDc>^E<;7y*!1ICOIHUh92$1_l+~W|ENMJ-U;8h59FmFuI}o+^LHzR`mM9KJn+2{;w4zLlaC;wH- zEI52!&xKbGzZ&(~(Av*v`MA8J1kp%Z4MS;@$3GYpdUVE580~Ja&8%@~{en!8`Dblt zOpf%n4zNpWY-wY(bd$0T2z}ZwA?`B5V z1Yay0SqCWK-6=4|(#Dh=;8cE^feza^fsIRe7t+^m`5CZ$KOU9>ypc+ay0G6%^?A=R ziFj-aimny?du~7{y@2^hD;|3OQ(qt$+dXbtS>RBus~q}BS5!O*lMM#_Xq%fN$*PtS zziF2|P6B!C0aU)TYi zQm<~BcU4cW)4>KAVFt1rNq7)N}}7lk~j1)A(!^>C2XJ{KjfEp@SHEmYhTvMj_!ggJsTwg zK&Qb0RSdXTDmT>pDH;S42H!=GNd&h0aVx2-_qTH~!p8w*TsKKW6=BB0!{$|Zze6dvK;hr@ z>$JfJZ|knqGw;^UCE>z)U_Ie!_HBvU-@GS7DOI1BV zZgx1&P@q4W=&mj=-Wt{HGDJ;68+qTz7@REht?Aw30R5x=E4Yu|>toUcfg9*2y6MH0 zl(ew|7cZxgxMa?)cA=KK%Ah`urH=li+#%+|$ph*UUN)8nU5VQ8JCiP(qH z23AJ64_~5`@hSgTSm2T+yKdnbe8lOUwOwvkya^B?k7ZzRJ**sXLD;D>2 zl(|c6^9u{nZEcblS65*o^%4Js=!~aTv^p(X;TKJAB7q@-wI>D+uf>dVn9deR#$@Nr+?(o=xJk=Rs^}f zrYcSU4!zW_tl$k71Kyc5DlQXpQ$CfhE2nu@(eT>GR;9@@42%DCKy6IH!-of+PYcdp z*2{(T}RYo^BiB9EK6U`x{>0Qzs|g_!E8EZQ+(6%t63FoS5mU!=D0zJ%vFETl`G#4Rdr3J7YspVLr7j!VsyaqyM|;KNs)bT?sO= z+Jk5~&!Q5(BnL|!`cTJu;tcE(Z*=_JX-P50e&x1^E@jiVWkLKu6Ktvh4ED0paUw)P_sLDQ2*~C(l6z3o)|M`*>79FTNPf&(X1>MeQJe z#4%hd@|^KmUeu%MMtWnu>DZSe-2sGk!1=*?C^FC&0e33FXj_fX7>n2I8*W>+fYf(I zSHjhUKME5@NhiPeNKYO%8Q>7pS6TKQjKU0$jL*M*j@wTGkPts&;ZO%_q-FiZH*mi! zDSx~92Q`l*zM>>5fV9f`&ccKCa=_tw9t$ToW}ae9cg{H&He=iEeT)r1n_+$AA45YZ z-R%H_;Zx8vd`8?Z3|90@jBO1tiZCk_zqev+^f>$~YmGzap$h8%ebNYyye^C|atx!* zdub4FQ^P34N}cwC+NJuizjiJjOtX>O&a6Fb!WZ_hn{#>?sG&mve%I6_m}mgL9xrIT zy(_Jx{{8y1lEd95NNYraNFaKs2mKs`)vFVB(Zug0ga6V!=5{utdHF@*;85UzS((Jg z*O!b(g%j`F6Y>31y!>YsjhJ4DI=RlI2e-Eld86G^lTml%!16H7CJ$H=KFeU(iEFA} zBXV2ZAm`*)Y(LXi7G=_iG>YoX9S@~Pm*cXrG!D7(7r->e9)+QR?bq0Xu)^0D_KyiN z5d!(sj~eDjIevy;LZDLc_raRoLB~G3J0Fob7jD0$yXnZ;&eZao|Js6*ePct`9#+1u z`4RCTD5Ol!eg2i?3T$>+!+qEI_lX*vNaPTY5b_Iq_KTgc_a;kuUF~3*KEdwqhouI$ z9OAy^h3NB76wZHITN|9(u>bw#HR5TMKzb7P25ab#j>ERFWw^OQI@`rIMfdTsW-aQP z5ED&r1_`guL`QRaTU%S@c!~~XjHi)-03n}HPyIkRDisLpF~?r8$}-GUUBC5K?Eh=M z73;M;Jw2W3swwW5*;>4)6FO+GoqFd*Fs>ZuOdjNFNf(~SK<{D5u^4E2wgROgBCI*n zbhguj7yUF*~^U^ zT$|0x$PoLEUhlkE!N&yfeSh`IdT(64LoBks&rI(T`g`f@;_c_DvmP@Hsso z6Z*4L);>PsSJqfumxFpRyi$k)BM@gg3zw%40m$ z;F5Os(G={L$GPM}#?RlpdD9&rRz{TlczI zclK5m+mj0jy=-!NZkc^vuupeQmt>DTeckm#RzS~y^lF}hi{QA95iu+kc~Eu3O=CJ(YG%=?DBr!|CbAIOZp@UiLsy8 zGP0)U7ZmgurFQ0xqnK(_d9+SqK$C@ccuEwHrUYvl%nZq1_(F};r?bDkXF@uR6J`v% z?C#ZdCv9nv#hUQlUza&=Z_y)Y(FTE+?iyaYmwjf-@M$MC2h%DWnFpn2ffz-?KAp|d`Ed=*&Otfat_q_uG^S?MVs<0K4%mj z7@wtlbi;>nNH0bys3+n>Y`VkavSl00CdI{mo)j`R66XpV(*Sx zAag5Gis;yds^7&G43n0SOuP=OYKuUT;KTj1hjmnmheBRnbB^9{ZdjG5P`{bl%=PcL z^z&*6S`WYju+BMD1y>@i9DMa2V#rqyfcUK*D~z)p%LV7d^X{{qa?`sm{lS$UZguqW zY0FYvkXjA?;VH6<4e#*k>#T_Wp%m!(-XJ#A|LEWVcfqQjmRm*}+`dNETU1IhfuLEG z8&k~3 ze!1)G>T#H4aeFr{-T0m_2Z+(P-s|dCk07(}nOpOF*4n#1)`25>7z@%VypU_u+iR~6 zt|vEOH4gCXG_$pW8Zol6)%MfdkyjnOdX>`GzqOkmxwCO)F`;wo_VyNU4c1ahjo2z-zcb(G(J3eOdTkx%wlHQ#H$eYD>#H*_EHf71}4?=8`7`e2@e$t>yzW&Ozn0Yxm|C6P6?DfIw@M#4I*dt}9Axtd%UZTa*j z_bM_>?-~|K1YDrOcd>7fAQrSswodPaQEKdO^r;UX3jCP(CX&^7XhtLDtWuT5^pJjp z2D;qN1a)Ub=zO6>wp0lv!?kBjxa3^%Op#+c|hChxZMNm33`!cT^S8-fGT*5UA;kMd^g8= zvq6fvg(JfJebozsHawt+|9uBim*kQ7wKzm%7Hb^G(XH zskAEhr!2H@lM;FpeTkLCIXF_3423E_iF8_S4(Oh+CWG17H{b&nA>pO+d`z|VC1u`W zjSu~;$nh}SuqhIFcbvkztphw*T~a2-lf?jA2W}0n61NZ>(n*k?)qKyj)cWB&X(jMb zaH#}3#IoNO%WOfRP86TvCrQwblfYzLGghr+%h|zJytiJpH{KKcQ(qM3t>{|#&MYQK z()4fya<_UxAp82aL2dvFI}wgul`Q1aia9H6upu3`6q&n2|8n*$(+Shsp)b67>)o`S zR9+2z0mV|z#;mlm53e^_*3p6f4G@AFH|wkL;|CZ z&-!&8>By=4#w$xKzAFcV2vEL|VQ{ zXEz)bv*6$9A0EL8>-*(Mmi}Q_o87%~!=@M5VD7gr$Zu=bHLc$^SzZoF*vg)`R|c z9*M<7tES;pw`~8>8$v83TZ4&4sr;WA(Uhd6r5P|-n)xi)WdAW2P-z+^53^p4AR-0` zk}U{em>`Ot*RU6bE5$N@>guvSY$K0Non>Yr?%XSp?|_ndXzue>erkUXdQo4x0zlv0T&T zBO3iY$cl*9{Qa&BU2hBJA0+p3y*48svVlP{?8N@oPo?o1>LiPNe3k4Q=-2lBd`D5j z)qibtgwx`xOpCdBn5xu1>3W&5z*8*;e#NyEAZgOPxYD0wy5xHtpC)h=S%T2mXuo~X zthz=-SHV%_D833X{-zcp0?A#vCo!RdzJc2B+4iaN8N_KY*}9#f&uC`r%n1MsI?|GG zOI`D{5qh4dc2Bb2j8trC0of3Ipg82Gm~r!zvI@55M?yel!0h9fo^WNNEvj8dl9C&M z5rSkOu8+Ed=;3h?gv9RwgzVqjN_TW_X7|1epTqRRbGyJ#14<8I`Y}Dad0thF`dAh^ zkdGn0TPNH#FQ$kf1y;uqHhdu~A0yI;5^+bUH6;!MHZcGspvgCUQ#}5578OgU5B+~S z@^86q_*)&{pPBlTmD&xOF1zwFsmz7I8p%ji9Yj6`poE@pWK^^z zJNlJE)M5%M?J{CU!syyHHzE{XO~VW1l}Fn8z>r*UowQBjl9CB~Q#ydKS%UL}Gyj_q zwWhJ`qM;{005WO;^_zs7O9KH0_xaPkxtbFnHFT3Bn5=L3ufU>Ln1sVtQb2FqZ z*4AeTVrbK-s>p~U$iDKeOmP7KChxy@2~egFkGn4c)3WmL9SYZY>TI+6tZfbV41bAx z+mYO0HWk$EwpZvjosRV37F(PE2sNT!>0Im~MAjW7BZXfUq5ATP4j0_*u%l#jnvs{A zU$fj!!w=@Eib_l$KohS>H2=XZ5G|&(%YyYUp{Q*_vSv&c4@Fz12qDtt_ZWreY}~xZ zr?$E}@#d?YPd1d%+Kr=MZ8RcQ(z;#Bcc$w5?aM6^Pf>{|6UXs8$qYd0b5WWbr;KA( z%(d<%KsL5dGoDaUMiQA7(kW&DSZ4f>_m)_rF*M=C@V96fS(uT6n`EQvec6Xv7?K1{ zjx3ZX8!vOyNzGUIU+_+AIgvHSDmSz`p}5c{jcZA}5_|~nrZmZa!JX%&bat@iS8D(X z)XVXuCjyXAcGo6v2%KIME-i{JI=gP)^~cW zvSVW^K1NfXnIlw4WO)i8wkebJn7M9VgX8Is4IFS~jO7C2vWsc(X!6yVHAauR%s>BQ&6_iLp0)7l?sn~0ggyRtN4*e$VU`zuzE zj1T><5RxlO9^ zqD$+-KldkVM!QU6?zRlZvvMujAOcK4C6AnuFNN5~hy|16=;ZO{J?GZht5P<`MSF!Y z+#V#SXt}_D^p_ieI{z|+I?VHo_+Wu{O`b!r3H+F$M)V@Jy%eQu%+ZjnNn*Au~qQx4;7wVviuP9f`W#u_6ai}>K11HuUS7l9J zidCO%O5rvO?&`p*oaGJre(graxq!m#Z-gc5V*s|TMe^r&CFim)-(vHOfJzfj9|uV} z!*>Lvn2LCs#wWHQz`tm`LV?Ee5ULru$q46CV}3=MhHJC7kax6yPFA-I-5B=Yxa_fIc4`{H1q4L!D63*CicVZsG^>cmiI~I|nukiYA81yGYM9F`@?u_;pPV@s z483WtI7zf?ba?&!DGh5`(Xbe@OvOqoK4@Pg0=vG7cXrkw~SpNd26_ZU>gqJ3} ziHfWit8+K4D(U`D+W4o6LGg&H4V(wFy=R|wx49|^w}@IpVT^Nd~z2j z`=Xj(mOk4{qr-o;$$FDC2CDYqVO!Y5hKH_!wee|d5vqP@iG;5)f9Bnv*aivut{tOS z!_tF~R{jLGr;tA_#UX!!^r=Lnu|@n0F^+yrY1LW*V=phIu?YJ@<~NRpV^pDNRbcEZ zeQ36}QwR8KpOoVrR$x*Q+Lu9Gyw^Vy7b122LQqwBa(@*S7`|EcdN6w~)%-@2cJ@aO zNb{wE8tE2WkHqWuQkzqCy5^jf+VtIpJBE{NZ|a#F%Wr7YJa+M=Q;#Q)^YG>b+2jWz z_Mm8CLLoI&J`o(!K5N2Hx&HMuaXh1nGxaXd>t3NrJ4!CWYgQjgQ16~oi5~{YImpwN zD&^nwU;njkC|5eT$ksNe!=G2cUgH5H2~l;>Ql8vRP$A(|Fsi0iH%2kmZLbtJ`}Yk| zLLd|KKPL5llR+y>5(^nijV#pJv233D{?=D$kZ$5VdAhM-+ni>e;uX6s6LPuZU_NIXRIP0h;V5BtDJB*8b}QivRFD{m;Yy pP7K3v{%wf7HysjGBW2V&K|o@*Y+2mnkFf#dP*zZrFPAk9`hR6&9svLV