From 32f380c522c255d65b03c1a4130b06ea91663e03 Mon Sep 17 00:00:00 2001 From: LingASDJ <2735951230@qq.com> Date: Sun, 18 Sep 2022 19:57:41 +0800 Subject: [PATCH] Update Beta21-p1 --- build.gradle | 2 +- .../assets/messages/actors/actors.properties | 4 + .../assets/messages/items/items.properties | 16 + core/src/main/assets/sprites/items/died.png | Bin 0 -> 274 bytes core/src/main/assets/sprites/items/items.png | Bin 70258 -> 71482 bytes .../shatteredpixeldungeon/Assets.java | 3 + .../shatteredpixeldungeon/Challenges.java | 4 +- .../shatteredpixeldungeon/Dungeon.java | 2 +- .../actors/buffs/CrossTownProc.java | 125 +++++ .../actors/hero/HeroClass.java | 8 +- .../actors/mobs/bosses/CrossDiedTower.java | 59 +++ .../actors/mobs/bosses/FireMagicDied.java | 156 +++++-- .../actors/mobs/npcs/NullDied.java | 2 +- .../actors/mobs/npcs/NullDiedTO.java | 1 + .../items/artifacts/CloakOfShadows.java | 2 +- .../items/artifacts/GoldIron.java | 435 ++++++++++++++++++ .../items/bombs/Bomb.java | 4 +- .../items/bombs/LaserPython.java | 51 ++ .../items/quest/GoldBAo.smali | 63 +++ .../items/scrolls/ScrollOfRemoveCurse.java | 27 +- .../items/weapon/gun/coming soon | 0 .../items/weapon/melee/EndingBlade.java | 193 ++++++-- .../items/weapon/melee/LockSword.java | 3 +- .../levels/ShopBossLevel.java | 13 +- .../levels/features/Chasm.java | 12 + .../scenes/InterlevelScene.java | 2 +- .../sprites/CrossDiedSprites.java | 29 ++ .../sprites/ItemSpriteSheet.java | 3 + .../ui/RenderedTextBlock.java | 2 +- .../shatteredpixeldungeon/ui/StatusPane.java | 3 + 30 files changed, 1138 insertions(+), 86 deletions(-) create mode 100644 core/src/main/assets/sprites/items/died.png create mode 100644 core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/CrossTownProc.java create mode 100644 core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/bosses/CrossDiedTower.java create mode 100644 core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/GoldIron.java create mode 100644 core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/LaserPython.java create mode 100644 core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/quest/GoldBAo.smali create mode 100644 core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/gun/coming soon create mode 100644 core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/CrossDiedSprites.java diff --git a/build.gradle b/build.gradle index e488772dc..4efcf8421 100644 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,7 @@ allprojects { appPackageName = 'com.ansdomagiclingpixeldungeon.ling' appVersionCode =700720 - appVersionName = '0.6.0.0-Beta20.75' + appVersionName = '0.6.0.0-Beta21-p1' appJavaCompatibility = JavaVersion.VERSION_1_8 diff --git a/core/src/main/assets/messages/actors/actors.properties b/core/src/main/assets/messages/actors/actors.properties index df28595ad..588501069 100644 --- a/core/src/main/assets/messages/actors/actors.properties +++ b/core/src/main/assets/messages/actors/actors.properties @@ -1,4 +1,8 @@ ###MLPD +actors.mobs.bosses.crossdiedtower.dead=控制目标已丢失,已自动摧毁…… +actors.mobs.bosses.crossdiedtower.name=激光十字晶柱 +actors.mobs.bosses.crossdiedtower.desc=发射神秘的激光,对敌人造成伤害…… + actors.mobs.bosses.firemagicdied.name=浊焰魔女 actors.mobs.bosses.firemagicdied.desc=曾经是翼绫的护法之一,因为大火事件被地表三巨头怀疑,逃亡到了雪凛峡谷……\n\n被当时的商人领主给收养,现在,她是雪凛峡谷的守护之神…… actors.mobs.bosses.firemagicdied.go=%s,吾乃浊焰的化身,你必将受到正义的审判…… diff --git a/core/src/main/assets/messages/items/items.properties b/core/src/main/assets/messages/items/items.properties index 03bb57c46..e2261ac4d 100644 --- a/core/src/main/assets/messages/items/items.properties +++ b/core/src/main/assets/messages/items/items.properties @@ -1,4 +1,15 @@ ###MLPD +items.artifacts.goldiron.name=镀金铁砧 +items.artifacts.goldiron.desc=待补充 + +items.bombs.laserpython.name=激光十字晶柱召唤器 +items.bombs.laserpython.desc=这枚召唤器会在爆炸后立刻生成一个十字晶柱。 +items.bombs.laserpython.didnot_pick=你无法拾取该物品…… + +items.weapon.melee.endingblade.ac_lastcrystal=Γ激光晶柱Γ +items.weapon.melee.endingblade.ac_diedghost=✦死亡宣告✦ +items.weapon.melee.endingblade.ac_healreset=_亡者归来_ + items.artifacts.wraithamulet.name=暗金宝石护符 items.artifacts.wraithamulet.desc=来自于异世界的产物,能使自己进入虚无化。当护符能量足够多的时候,你还可以对敌人实行一次暗夜袭击,护符能量将会随着时间自动恢复。\n\n这个护符是证明给强者之人用的,冰雪魔女已经输的心服口服,现在她将此护身符给予给你。 items.artifacts.wraithamulet.ac_ghost=遁入虚无 @@ -84,6 +95,8 @@ items.quest.skeletongold.wow=染血金币发出诡异的光芒,你感到下层 items.weapon.melee.endingblade.name=终焉 items.weapon.melee.endingblade.desc=不知道从哪来的一个拆开的场记板,貌似沾染了焰之诅咒,有着强大的侵蚀能力。\n\n这个武器在攻击敌人的时候有概率造成_即死_效果,在汲取一定魔力后会产生新的能力。 +items.weapon.melee.endingblade.cursed=当你装备上这个武器后,一股无形的力量将你束缚住…… +items.weapon.melee.endingblade.donot_eqip=终焉的诅咒已经浸染你的身体,你无力脱下它。 #MLPDSTOREYBOOKS @@ -1245,6 +1258,8 @@ items.scrolls.scrollofremovecurse.inv_title=选择一件要净化的物品 items.scrolls.scrollofremovecurse.cleansed=你的道具闪耀着净化的光芒,一股恶毒的能量从中消散。 items.scrolls.scrollofremovecurse.not_cleansed=你的道具闪耀着净化的光芒,不过什么也没发生。 items.scrolls.scrollofremovecurse.desc=卷轴上的咒语能够瞬间清除指定的一件武器、护甲、法杖、戒指或神器上的诅咒。 +items.scrolls.scrollofremovecurse.=卷轴上的咒语能够瞬间清除指定的一件武器、护甲、法杖、戒指或神器上的诅咒。 +items.scrolls.scrollofremovecurse.strmagic=你的终焉散发出血红的光束,你的净化卷轴灰飞烟灭了…… items.scrolls.scrollofteleportation.name=传送卷轴 items.scrolls.scrollofteleportation.tele=眨眼之间你就被传送到本层的另外一个位置。 @@ -1970,6 +1985,7 @@ items.weapon.weapon.identify=你对手中的武器已经足够熟悉并将其完 items.weapon.weapon.too_heavy=因为你的力量不足,该武器会降低你的攻速和精准,并让你无法偷袭。 items.weapon.weapon.excess_str=你的额外力量让你在使用这件武器时最多能够造成_%d点额外伤害_。 items.weapon.weapon.incompatible=不同属性的魔法相冲突,消除了武器上的附魔! +items.weapon.weapon.nxt_cursed=净化的光芒闪过,但终焉上面的诅咒仍然没有被解除…… items.weapon.weapon.cursed_worn=由于这件武器被诅咒,你无法将其放下。 items.weapon.weapon.cursed=你能感觉到这件武器里潜伏着一股充满恶意的魔力。 items.weapon.weapon.not_cursed=这件武器没有被诅咒。 diff --git a/core/src/main/assets/sprites/items/died.png b/core/src/main/assets/sprites/items/died.png new file mode 100644 index 0000000000000000000000000000000000000000..224b24bd28e15a3fd06c5c00b9e28d4da93d8a4c GIT binary patch literal 274 zcmV+t0qy>YP)zNc*-YdFwr9q6?c;^c)}o7u~3+wKyp=*|B&$c95I00dle zA!Sp8kR8zBdaeWDR)NJFVepnrfErC;^*qbr*ksEGJmgl7v?hI<#SX}}_!^L|k!tTZ zer-^!Lcrs8sglnDCl0{t8b3Gq8W5|<5$(~lg;WVrCEUWL@hRs@_?|{jwH);R`;kTA YJJ_a0Pa~dF2><{907*qoM6N<$g0#PPkpKVy literal 0 HcmV?d00001 diff --git a/core/src/main/assets/sprites/items/items.png b/core/src/main/assets/sprites/items/items.png index be46cde39e51b3527c40ddf8ad0ee8c6af2b7c13..21d91cd48c09de2248088237b15d53e27795494a 100644 GIT binary patch delta 51191 zcmbq)by!qU*Y6p+Lqxg+M7mRC2m$GoZcvbvlI9FjN_VG9NeU?4jdXWQcjwFG5OjHLGHER%Y4*O2Fyld? z26N*-`vx@!NfU!fhVYWIk2HI8Yh#~sLq2M0z0!iD5}}R8zA>A*GVa>C>Pg-DFjTTd z&A~r(cab(dAim{00nbO}J2T7)X~k2-<5D6PXK(dAPS^(z?RvivF3bP+ zYwqbxlI;v5p*J@-2Y^U9OE((4-xM?~o4h}^Gg*c03;U(FMu|5oR%NaAF&fB~Ogmk8_hB80R zemiUps$(Q3_NU_&I9_P9%DFe!2KUF!FKSExd8lIww}gQv#&EErStl75?Thdf7Zhm0 zGX7uycW&ti{`z;2EPSknEe7T6Q&jFuyL%(KNXoaTb9-)L943wA4IW2AeD*TyPF#g( zw7xWfHRV;iXn2vP-*&tbZhjPGqXDj}u+GlT<44;G#xP!gIy$;Tp)8Udup5!w(%ApU zwSPf>e=D5Khw@xTrockw-XLDJHDOgVF#61jc1$r7OIIcm8tqjnWVfF%n4FqedG;75 zr;dUyG-68>BD211Ivb)9jYfan;`{(`_Hx`|Q_>OP7n6g-a)QsJ4WaMb+nu!s7lbY)8wV9`>SrKQb_2(D<-*4@#a0 z2dW;GH@s+qi@lPUAAb(3gWry2H^G1X3JG1I0Pm&{fSF>bo$He}Q4Nq$?94JQF_{uIl}A$AH7uWYup ze}_p%W=rt%q?rs(AsojNy$|0J#N9T9eTOgx{ODLSEp`cqHSV6MAO znd4oZcP@1<+8e@}P1FwW;xR7|m3k5s98>t1srjE$<*?Ub$5S~ZK(Mp|Igs~#9u{mv~r`vq;tm%X$W7{I$&A}y1#isa6EAt(_6Lj{+dDzY9o1UZoaW}NE1TyY9v)NJ=SJW& zsO@!66b-*E+V=NkW;yxj;QwOQ+1!4WgFGPZ%Xww2X= z-Cvb3!ZqOvT7CgHwmr0MQD=Nn-V?k1yQi^D2<>&0zTezX6d>!wr>-6a%Gcv*X+JE} z_VWCFqpOW0h6qOXWzDaYTaaqz2&pC3m#c@vcMlOKTJl8hD>=DJRhY+vo!zXT@~DwIb~>Xn>ryUtNB)alF7T(SWG_mb(R#u1 zd+Y)HF45-#l=!*K%?uOQqLV0$n6ENh+e1@-ywcDh=Hnk%*VYcw_$HTISh(eEVziE# zBG*hxSo#bg+S=(#ItSFJX3p#tjdjT^Bs@uhnA*+k#(R7vpTS(2*LU*z8FVS0hW=O@EN%lY|RpFGIR>ZMq zTq&Bcmwi)oRaWsDAyVGEHUZYI+^o+qq8Xf89-bJIihL-6fc#G}EmQ8^TwfD(omh5v zgGeCi%BOib#3Bqnh6xnrUm9WB-U~8!&1j!86n{Iief8*K)(!}BzTFbw@Poe>5WPcH zQ4u*fI#$&l!SqYJPrA7RQ(F8*_o>>$WBYPKKc_c=kOZIm?&sUwzPC zwXy>x`_^#_r_a!vUo-t^jXietkaqUxdJIJ6XPIC1HS5`4!uj9c8?t-TerniFwFUro zT7yUjQ~#g`!qUy1=%mM%i8X{S>FLDcHberU1PmM?8;EJRyhO_b1_lH! z7s<>R12kl1TgkpOc0(s?B~Q<*2rF`-BbN8oQBFUcV>Au5Lcf{SUkafH?V&xd?t~g> z;u))yu08LW4aU5U4YoWuzd$@mASHxN*Hb?hUxDp0XFea<>;SD)h)e40rX zKJKoDV9hENo}j|=Ythrzp6q+aV`mGHHT*QcBeF6rdGdXW5>!yYem9WvkE@mgDZITe zt&I?Cai-dz;tN{ZvW}KyyyZ}BPy1JRr*L!4myS&bVr~f2z5Wv1qZQSP)JPLR}YmMjeb6v1%t9vn82`Pe~E*Hnuy%y`;0ocSR#l{PJ zYHmECw*%G0ALg^x?ccz}AiR;Vd@TG-9B~ZT_=kHtDcp*Risw_rAHasXvp;C+m+m-? zM#f&_V-wueLqm;_EOF}WxZxk<#0lhf@~M4A{L{c@b>atuo2^XbL>h(%A^dTH&wlpUdsqWf zK4^!{PS}oMwghRpM9mZE{@Zhp}l`2b$&3ahY&f%>%&t5~JP7Ey4-AX342{lMq_{BU{v8 zL@1kI;wW`Jl<}`oo`#rk!gMVj(?qZQn@CB0XHgIX4ZjWEugHOvg|sMtVUF_xa?yXX z*VgTbgIu7+Ux1F&+06Tx(UKoO3Td;ER#sJwmVIbX#Gvt&kF=nIaGumyx1h9YLr%jL zf$QyJASpM{J>{@j;NEo)V?g7^a-F3C0JgN^W*-Ld(b9|)*W?lu}*B-=S3qiU0 z)Ix?Baj{}+B4cxh7XUqy8?(eP(8y&gy0x&<|M~4bN*J)>$|*O9FI_h6ZWdj;TTSFi zAbFHJIOP%K>1cq?(|sTOH}2*SH~Hbtm+}@UUa}ObMm{?%d5nZ?Sl2)*?KTuU@_zdir*v?{=9RgXJ<)`1j?o!Q%oZ8S?e8H*1S}@Z3HNnBq@3IcF}VV zAW1ybQaC)SFe-E`DaAfDAC#%ia>4i4va+&rFM$No42+k^$#6})se+U~WD-^id^tPk zdw(xEoRgE>d>5s%N7xMpl%HOOuZ&*3P?gIWEIkN}vc=rjc+;8h!et7}PxCnBKp%Hu^08jsZA9V(~GF^~g z46vrNmg9T(@EA2366n0|SueYe*~-3yIAa~Rz2AI6`zbP8(+xD9Gjj3kv%kDeFYXW~ z6K4ujd)M?3PU1rLU>_x%pFmJ_(8t~qE&-1Kx;$w%vQZ3w>9v8z$a{6s^PR_jY zASRH))%r7t-gAV0-|>B$o^(V#cBzKW0`@=)LAeg*hPSc&Y;T`}RBsQMTH=mCXSQrZX8R2YP`%4K^EzybfGh~FM6VZUZbueUp{ zVn6THtX3foh0=TE)0aAS3$hSzd{7+GemDnMwV4qDt?*k)6SdY)ZM2O7G6}SYK?JwF ze*qhASl+!~h)>D`!pZG{E`|mcK|2?2Ru((5AcT{t0NVDqays0-w3s>Q$;7i7x@J`* zJR>lAO$Cei|9+I|lO~10zRk+lvopcJww6 zvsj5?B^kzqw{h+H!Hi#aJA}d9+l^`)hmi>Kxa3osW|bR);XGe!;~W+?wlHdO5pu`e zTu&ip=EK>91d-f1FRi3ch|s$DE!u1CY_6=r!sn->x-X8AfoYHKYN!20d?z=#m{4yt zTJ#5opTsK1ROVi9t@va1rpslDw8!M5u)QM4)DSIAFHZi2sl9SgVf0@oZa&0Pmb(>c zXwNh0MD|F9XOdLan??(OimhA@>LrJARO{R?-7`H)=y@+UZ~r0IbM+hT4ni_6w}8? zhtu<4e5<__`;qqI)z)%(9)ajw-b`i%y24&psi*|9*Bi#qgOZbzw|y^S5C@B28V-G6 zlr1(-WIJPZ>nE;nUp_Ey8FL;vVF|*IRQ*4dR661jfj+=FIfAyvf=Li7nwES4y9uOB zcf6m2H%VPDB7682o5J2eB+gUTjlrkscr4dn1^64@pi&4DfE3Y3J`ph^x*ub6JfcbR`tK{}jlO>U`dUwqyn(wEWdYHS z+vxVEHa^Q1xT@koreOV*HWpk>+Lpcut}E!>gsL&KWVa}Fdh!30PScW;r=wcb;OiN3 zmPg|4!4deUB(8YUb6Gi*hkt%VH6zRSUZ1RgL2e*!>=tlxy$iK@U*%cM`8~r}P)l0% z;p1KL*JuGvj(PaJ);<4)M|JlEqmu+MUU8gaj7y;j1& zr$p1$)ir7!kjNVRVUicdV3%C<(|lUd%9=%yi!)HZmWW#yGePiUWs4uO-|Y{MUqrHR zn1+1tOom1OB;6x1M?uy#9rn646OTq9K`z3KcGnv>@%|sHxt9b(#3{uLw2KGv;$9q-jjexM7;7}0?WSv^JakhY_#8wZIFvSQ<5-5CFdtA4|ShAgD}jIxbcf@}`Bw&aU(6Tp)R!ILsJrU9@xq*9>~>usd@ zZ@@@8DD76t zmZ%Gz?z3$@wl{eC2w}n93&QclN7(;JmTtn#{SimsR9~?AM!7HB?~|A2haZIB5R6Ip zjU@b}msj1_iI-6#MtZDs*P*gKxoq!?t=19a+3=uJ!_*LeTXEze@vDfFtJa4zj;r-0 zto7weURpJADnj6C=2Rp;cy}@Uw}BYBR40%e`Ptaigbmczt6GeE+ud7~L4@~(H=^I& zi+fXD`rtc1Lk`&MV=S^Y!Om1qeCH>51*`By!|_+4_X)_E;HyrttZ>rBN|{pyFrFz?#8O|jT-@4ilsmJ(dcc?)rlSj|qPSEFpt=n2o}ULBbZ^FavX?q6%B7sB z?i~{=ma!b|KwsZRrgdT8FQem0{zcttd;LXFtkU)L_RNUOh#32OL%7Fx-R^($2r~t= zHQ~Pcm&w-?5+3sw?R7>oMSlhFM79u5A0HCGo#o#AfZRGHB%aNd>V0%2i~oVo+xOy|3RfpkZKsCq!ZIF1M-)e;ShjLho3(4}Z9O zpK1E&&6_tiwvV9V$)_EcVkO4;-59{^?3b_AZzD60UEGO`rwh&^#TTsC?GuvvbrhX?Svz5lOK5Ga z;Jx!w$}fY(I)unYB5i~X1Vrgno?u|&Tz=KgMstcobK1E*N{ah_l%zPt$Q41)rCe`f ziXQW0*;6FYUOa>0CFn;g`NITTP(zwizvcPUD2}kt@g>oSKa5Op?&#OkJzcTaB0D!M z%*?UhzcY>AN({#H%V6ycFrphuj=}pIaeiY7qv&(*Ilc8W4J|^s2VGcfs{)GXEdNeK z|Ev_ElC;b}{?_ZQ53=vw@jL)IJPmkSNmnH|LT~HHaH@j27n%0nK9rUm{h0wI9fW{{ zfQ)DzRLRv7CciWutEQ5c#0x(PbbteofNA_blXpCvf-p<-Nk}|;=}fYZ#>j}=f13_z zk_^FrX2G2WmLy-)RGP^Bzn{%$^!Yby8yi*vj`dAV#+thQF>Uw3#CyA4oQWIA&!@ag z2L}gFvUl07q*OcJHngM4LQgP?$b4v{Nrk#qVoY3%q@=DUjcj@9X-$4he2UWg`0Ld< z$S25PUTSV&V84$69$p;>1-Tdf{8^qp7Rtg@vhFWjldXQJ?L`ELWEeB}(O6TaRQ|c;>XgYsMNiquO@~PbkDcUl|)Z zqeHSj0YNw^Ue^bIP7U`&)M4;A{Nq52lDy@ciQsEGgn?!7$s<=rzfB? z|6`O%Mdh`gQl_M*bbI}Tn&o;2$)kvfbVnIX7#q+GD|!fWDd-PW#yjrTKX|+MV)>~z zcMHJBzDo;+*Kf$sZ$=!y+jSVAfOe&k@NgUyo$T#$Nn%QhGGSezEkvWvIibm;Ph5{z za^-@;JUhR6J?W3bytiZ<67w$$y0hcrP=M#0oPu-K8@;gr?DJ==)*up_gZ=KMiQPmW zzOhMQL~{`Z=oOETj@;8JYvlGVtS_yiO3Er6;srl`J2Itt{l}4`A;;xIMUO6FQ+$){ z!P&-#F^S;hQbLNIl|f2S-y?8#z2V$dmNjU()@a?dP}@aVR*NME$k0O2P(`!RU(oro z5M{+wa9u3_JXuv^=|q*>ZLwU}uy4%P6JN|QyI;sO)H?c0CaH+a_4MhkM0ncRr*QHe zIvda`NLUe(P=(t~K!tIY+W`Q-Cg1cH|B%M58`_>XP~LTzLG|)#i>c%@Ct(XAxI}Fw ze-TUt35vt(G;R2F?M#RQ^ef;FncTKLXUoY$h}guUgXc#W^>?UkVJP3-Bhb`QJD$@c zH&f!Ly^OCF6wL7vM^uPt#EW{dioGsf0OX0HfBF<9I5?OI3N>vDI`g-xHDqtTU;XTz z5KhJD;w+<~g(}Sw-Cb2)JSmItA)V{@e_kX&BScBrQsmI%(TJZnMzVBMRzO4LN?LppNd@+>s1}r`g zG0jsGo>6-)VBc(KOTNVDeojqz_j|;ik|0Zg;IRvL1|f8*?vfOx16V! z7xqUKq@f{%kf+-uN^+l$3d{Haq$uw3692B1={`tD(PAX+0p@_h6$kt7B`JD1*Ad#; z+(o=$DAfj>ib_iQ9n(qLPvNm|_b;!9J_LDA6W`!S3_J=EH~LC$US|8vR9^;Y z`d?`;mbv=vaNVwgvM_Y{h0dn&dN z`d`cR%4{4`8{}Z;+qWmb9Wr?!|58tH@li(JYqk`W5C`HYRft$IJ=JpcoR10)U1^Gj z%INDenn7D%|B(YG!0V=_Cg+>ex3%^4Uw>-cA8I+*>E^fX zoUZ))G`;0(e*M5WwmkU!JB-AqyWr`-;spf-o=p?A#VGi@Z;6fArB%!S$sa zstxT9>f?=8SPW;UCEJq!m4yLDKb?Leumg1X`=er`M>1@64tle)u6Ad0NVlbJ~F# zkQ_OOlGId1I~S)o;X7xJcjje{u0Vh z7_l7h@7W4Epz?Sukw(6hTN-N1B zV>UaGy%0!jZ%t@>f9EDPatsv|y1Y0JLd!QnypwK(--&e;wodp~;F~bl0bEMGXK0=za#&)RaC`|%0k5AOOK+Zf}@>ELz2AfjCCb*Rx!BSKqGhiGrF9p1iZdhVEo6u>cX1$PENWaqN1@G z8PozoLY2%=LH{D-fCS>O0Og(RkH=)sAtFvE(L~Y*$?(XhZxb0|uGl7NgB%7Ps`mbv3qS4m*43P{smMv8}FDl04 zM;qCMLj!39f)B9HTv0}}5V}ie+54z(IDG)K%CDBhQOyO9KHM;okgQ7mUa}5X1J8VZ1JWnNKT&W1hL@+xRNvEe2wbP~_&W-&q)mVL^}8fX zP`Okm90t(8$n=s})S~l^kUvW4r@gBpdEYD1Up>F{f)V)V55bHqV8_6mMVb0zjT0R#~#_Za0`;KS)`z}K+zJD=v8r|kANY<*YZB|wT zz+zAMTJG468rj0rc@_q-W&d_>*%xMO&j;gqU`^4{x}bC8I|jGBP*=x&Olz4HBcho@ zYaVz!Mi~6k`}4RKqqxT*H9+5zLj;si9t}>-BZr;Xkr2Q~Kt|*w+bkiqsz@gY1bXfB z!gHuQGZu+`waEBRI2>FIe!>W&zr(RHM`d9tsBLeTe)Z~=WbvdlDG>nls7oNMO!x*?S*qh4aDkmS?y(f zbcLVY5{w9=oQ?xI-}Dh^i{|-}v&Ah`jkgV{gFP9pIVpT_BZmO@Er(n(Skh(wB}pI> z7qxM={Tnz-a7zzbqfvbWc66megA68hP0>RDchDaOl2-`&i0~B4#Q5)7;^b7|ml{iI zLe2U)oNo;&Ot^s>Vj@_M2|$ACjb%2+nnHC?V(tN9J+LIQHH0Zgjk51&>X=}Tv@{tz z=;4cu3sD2(yFY~AO<|`{V!h(EzJF|c|9ETN6_5|l1c25(IDg{hZNpJfmhbthJ#Y;U zTbmXVupF#s$~fxAPHHyq)ZZXvDo;?G4$%Qvu49xvDmDH(rq~<`fLs}@+Dy|S1=HP0 z#?S5rj0DIx?Fx!}M&GFtLo4GDD*>cD!gySQa?H(=b3!>{FN)|W$H&B(kKr#SqBABc zFVLe5+xtsq_VMxZ;M8&q7A$>f^^152d!R4$D5e z7dr5&{(j!(fC_kLzj?fKEI;N23>;7U6G25Zn4QtBHs z@%atLoJ9Cv&5f3|Opc`PI)5b%1O^aw)KT$?pDx024tV|&cYESO8qcq!8y~o#^s|-l zAz?P>>tCza+t8QY+;W6G7{9#_!bOmJXhW01HwJRZ-QDTa^!rqum!S6c^+~A`fJDe0 zYk+Xt<>h7Rzdgax!x~uqs1Pk9W5(^!|KArJpMu2fzmVz;;f0pyb5^X#u&&6*`~V^my5I-U&;z zb!Q{y?T&)&7=K+XBVYmo%SP!K7BiUKx}J!c;Gy@$d9}ytdR}@of%Tqo;p^QKN{YWn z3gtPj5M{x0{kcnd1|-RNZuXBFTk=+0HFM7(Mz_2*O?5vc$A8IfR9m0DL+eHkL=ilK zF4+RNBU~8#L(?9!YGhe$ z=7vcet-R&v_zej{+Wx!3r2}5_*sVxkri!S^Qi~fAWoU(2-iB23^z8NGQ+)Z-JhZVd z1)gD4dixK*ZjOs1*ca(g<7VAKnuS@SCdt)O{~n^Ie3UHSYS^v`d?}RNMeG0S$7<ON+ zn(sG!1qZ70U9aB1FJ)YKl#o;wpPBjLC0Ovd?o1w-r;r)Ugrc-TlfGsnK8S2z@w?Gy zHV@4hY(;pL3IedowX9UN37bD*FJh_q9{m;!gt@@Y>X9^GUyHQ&^bq4-yx*k$+_${B zDsO@ph7rRwhjj299_o|oJZ1noWl_Rkrr5=0#s_L8BAp6qj_NQ)K1d$dMZ9_eBK=jc zQk&QD6tmO1^G)@4RrZ_fIbJ|0;%EMy(pOny<}?@Kb3;W^rq8J_PlWVX6ciQP8WPbGqh$0mR0lPAY?5nF2uh8X(Q#;W>x;-B^hcMX`WR$Z zMLW>}EMYvT504=+?Y2At*D3gFzT%xSFV940>Thx)0W`t+sz~W8Ra0wfw~uX&k1V$! z$23>~Ba3t-^xF!`=3Ep+oPOrG@Ptk@Axu{`Grtq9A-fgW76qW91*|Q%cOW&L_RO+8h@r|Aw%4sIM($ z@AB&q1Q-%FfdJJG{jYkm2mTuzibMMP6RpkYP<)^}rUkl4GM3%H8hn-X zyQX@|d@Dd~oss2gV%#pS$~oe}!n>~+sefZTdl8*rDweT#Bl=yJ9)4OiYXFbE&s< zCf*0WW%mYBw!HBjZijWb-vK1nE4y8I8SDZtkLU|3wW0tkM}JgehZi~cZg0CXm3K_1 z2nG9Q$+yMP2;$`dlWATg@2R@SLnL>x+EE{R+kbwXN$yDqVsIj8-w~Akmk;?@dI*}* z%QSEz7Bwl5asbgo3JX$_+5%FodBE9hihduS*`co_Ibyc0Ku*)Qh)K{VM9&SWGxxok zboq!RN_d{X@$-n{-~wIDOK=^qQ_bP&52m)S4meaB$Uy(=f#?*UwmW{|X6Ykl1=m|R z|DSmyNYq5Q?m$lk6$xztc?T0QEJIqvx`bo{cBN8Cgb|>5@N5Eb!JfIFk)I<4RVpT^ zej?!n&!kf%V!_C|xO;eVbXXhw(K%&{W>$y}J1lrHs__whOUb^JvV}J8(ceBD^vybx zjy5?e@l+F!afD^+GPm%p%jR=N$9p!Y_e|JE=G1sKYjWCfT-eRK-I6cG*9`rHz+8mXUTj^B|lUID!s8JSvv z4ITC|o`ip|g-@Z6)XE8fZhm~$@3#z}29z@fExLV#cgl4|U;|ys9%a#O?Uas;-Ke>_ zlJA~9J}V(~O}tq@4ZS(TpMP}u*Ld{}#O5}NUzssyL<2^`!iF7*0{p@Mluu5%56am* z2K1bW1UflApX=9OvR#55B9M;PIiCEVqcH(%a2(TSk{jIIUp}LdRKQNjeyN&tDu8xn*Rl zWtc&;RbF0%ULU>n?%@PUMy5az$AgHd2EX+K)go6nHUK!#nf<_N&z%go%fBF7;OXr` z(glGPjh9gg;>887D{PCM?U5h)9Y6M!i%#zFqhNHrp<0s@dWsVuhVqjDCQT#dURE9J zIYEr%+}SyjT`rer++G(CaRz2> zuRVb<=2HY`hkP>w98kuKCR&)MpMH32_5b(yFOzc-5VL5uyqWrQ3yo>6>Ff%T9#nbV z+u0A!s27s({nV87pBh5QWtVGgI#W}z42jJ8$gBu9M4D`M0^8RJ%Avjb(C&b>{ zq#ndf*itz*A@rZ~Z|=|G_`$b<1*zPitk|ZpA;y9rsV58Zh)#!QmNW3dkxT0f{M4EzR9k=Geo=g z`DsveLv?7W@-I4&CW!ASBbSp~M%~xPLR{tfrSP7_1H=XPoxf**Yllv=pl??eIIzYn zchvF*F04ri^T5mXzHRwZ2iN?9Brz4rn;q^Jv3mA96cxKj-L80W%WM1SWw&Wk|MG8t zK%-^sa!(|{e^bZ?w_n-+iK6Oek;zV-!Qs!KIArrnN_f2C$@HQ(Ou%u3DM!^i6&aUP z1%Zh~rLkp>??z6puj@d#Hd&P?_FikJWF%dylk>yuNJi2l zdWBh8u1=Y?6Ik?20w_pE$7c9yoRBy%DC6S7l5iFDU_lDBtsS|ecU-TQ% z{w6DV=OtUf1YGL$r`6C5k&^4uCI2!+tphYTwNnbfW`x0V@42LZV8W1|-@?GYzGVU8XH>oUAlCKh@lcoZbo^Kx&wfJX*Vo&42MQFZV)LhR{WCD-c(~J8e4NL(C~hw1CV&|Pom6>0_$)Y?-vb3WE6{$I z+BfRj1k(YRA85_2T^f)^q!y2tbyK#^*;KtcN`7$ZbK!mEk{p;skoUpOU)${14vs@3 zO@m67}Lxojp-8 z{As3YC<%)yIf44W{5n%t3Z9G*`DohG=8p%IT&B(TI_g?lf%o^m@nmZM!3?t1LG)Vh z3$`+&x=-x7Wh)b_j`7*$CQXVS!Z_Kr-iJy*;1l4gqd4_sr&4@ei{3*~$0F9r`;J6* zU81$|XFK<5G>4ls^1DaL-thb-u=w8T`_eJF^u;+y;`(s+bdv?uxKQvxpFWyJ0G)b;ey}T@ z;9nk{#vOVCT%IlXA7(>kgPjl$%Mwr-tL6h9>xiqoN1HzSrJS-X%lDZ`s;;eL?t@c?0t;?`tngZZ7p2}lo=EdKq1|EH6RJ9%GI z9vPV}wp`$#&FCgy$vnD!$iHzZpPe(#>g95OTw1WDoLQ^=kNghq$6?@<19T?@{|{S* zxqk5W-SDwDVrm+p)4uPv64H*rp}_O*J!_Da&;i0{GJ^Zz3 zif&JJZgM?d6|r-ffn|e3a&dE zF4B!}N(f6ox=9O|8tOnw(pR#aJDEMOV{f|PCj=lQ1PKL!>Y5tEeVL2POQHWLAJV#8 z@dnlwh-tX+v$>h}9Z}%KS-N# z`0ky+f0XA>?|+_iR=jCcKsi*)Li*W%roQar`M&jZ?=C-UNk;QrcnwYx z3uXsr;@fzhtS4U@iDar`W~%mFl*wIi$h`DZm_)68@6AOSxtV_tU)six{aWC4wRyju z9HP+duMN(ppA}qH5c!$r(TR|CObm9&wk+~=uI=mu7jSn_DHJXpKfC6X%<_ zkC8~c+B^nr83ce zVCxPZHb1GD$CA{PTB~W(+~_D-s?&f2h}nf}XJ#5dw`)wo2Y7jT(@SYyPyH*eK$o17 zQrrJ$Qtt1H86oDC#w-K^kv?7Dfxvw503sLaLnBzJH^jwXef>JBhGAu+?tiFb-iBTBS(_{Ga)9SH`37wP;9RpJbX6{yBZ| z_l(c~<2NDUG%3c)m-ME%%T54->O7zJ#3(Mt)WTwo4SAnad8d5RRu{R~c^?;H40c5;;s7vGC9m zaRHnge&PzW?c!~>pu8g;^7E?)<;PwdmkdlU0|1|Q;WslsD=Q`>0mvJ$@x8sT`GlT- zMjBMGr@%rT5@{@jzFvB|ACntjkPc18qobcL5`zn{8G_sdjGrO@DU5lT5?$nbpzke) zhhZ@U!HCvOv|nLliZBS^d>*&`rC$f-HZKF0=9#Xxn8A(WNLr-%vKDzaxFjHLeobAL zNgn9y>tkYM3`F)pP7WiM8e(?FweltU)rOPgsh!QFFSEW$;vJsL`1h@rGB$`)#*I;> zzqOz6R91OX$?`pEg~IJ{&*2*b>Ki?F{pC}nNp2d!q2J;@D4wC3-0U)B=+qS45lW~u zMK^5&e)vtse&r^V{I#gesL}+|+ElAo+5ETt#q-iXk4yJ-@34ezr*t-aYu+?9x*74rTA@oavk-&ms`6(Gg#O|!TuI?Vb$SL=>} z$%co`)X@A5;(-Oi28gc{;-h?$M^%`&EZIc`e{*X=R;UmOxvhm#pA~#ZfB2tH_x;P| zkwS`3)&g|;f@41=8^E*sXzvimds=_ z`}X#V`_s3@-h%<}|Fx^Dl7-%5CuG9`4#Z`xGOrwsJqS@!QH_p_v^EE|BQGlE{@Ebd z9K-LcQzvY_rZ`ZpcXv4hyYi?sCOEhjVfoUWz&BEx^PQ=pX&RD5$Je5jvUyZ-kEs8NGbB8Mm&z0v$YS%N=hbd<8#&ZSPz57bwx)b6yV9J_CtCPJ??qnCEA zF|YU#vchk`@$zMrsRsPBBV%~{vxm7YLO^ekn}Qrc4ZNRhNlJR6pekuXjD)`1^z!Jt zo2_hJNbC8|co!b(yE7GKWg|hiZFQh^Bv+=65rRI99upf|=Y^H&W~E^Fxe+f7d9A|B zlNh$zXcabc(+48a=#Tf#Z93!teP!@129Q~X0t5}cPeNkfl+yIFz|0oPhb=x-No$tz z2NpNgs{cX7N_f5$Bk-F&aEK+JcEG9aOj`9{HTvAf;5bhjfqgC0C_8Q^jrxDTRq==> z#xSk31MZiCh+`G1bT8L1ouSB$pAOY(FenuZs z1wkLevf_dl$A2ERmo(=`Sx1&l`a@;=e`OT(^nJvef&cu2oLPoW@nBluug(ubIjs}{ z0~a0f|NB?DnHTl*s=Z{uf2x?8$)UFp0sl3IJT%%!6a3$N4|j`X|NXx&2K=Y}h<~_Y z>Tpg!=;ee2p!bR`*#cWlgXyH#KJF;blF{O0V|S=hvIquJiJwz?iB*Wx)Do&;I!c^b zKgUo_C_$9+rs3DZEbs3|*{&tsgv_3MAHoL&%=!C3;IO2Hc76D9RoPen|3leZM@9KX z{i8E9sHB7|>K>Z=Oto1Y8DE=N3E9sN3HiZe|o4IsRmDW^mAI64r zep5xNHO2;x!z_wQ-h95+{OrLwWqD1xfU&z0_)3aYEFJzzkos#N_xo6h)o4uCZ_j&H zG^W1wqu_RFuT+l4Z9z(1B$<{!h zVFaLtHvxZkQm=?9xg6&BbiK1D>GQd_8Y~ClzJ~q9T4m<6ibE80mq|6V1aW%#&xyIk z{~74OuX~0a~#VH{&mpCOm{(LMro!Uk>qfkD|hz5 zetvLrNmelPBDF|ECA)VaHh}TjrG&l1Z3YnbCq(*j@oT)aA?AHh=RIzCC^8dzH)q6F zxLTa}ziPt%|GAp}X9WvXQ6AMap?ujh>aZN^D}8SCulfB^d7#7liVyd1J$%niUlLV$ z>+N*yiC%d|{>2^*2$?oT?(+ZfO*!!??_{~i`Ec*JBBy`d!?mB1gooCP>j~UV5{{q$*K z*B<$NK6Qe+ZJ^80c`6J9Wezxz6cmS<-YywJf?x)cy}$TM2a*m%qMxa3?f>5u^r4LUPK_c}0ftT!*a;~OMP}l<;ZUCb5Q5_ElNS8 zP-h%Mt>Tn*cXwtJHQ`_fGGVtQ_Sd99VYFlGw!E(6H9VyHA4YTGLn7vy{0a;&$PJ4_ zc5dgOytV|s{ZkHi=A=dJ4&eZ{dFgk+V_|m94no}g{F5)ou@}Bl7pwjYn_{E*g?=sZ z-^{LVzogLT5?$07=i`&%ryz$CfLJ1HuGFONv$ND8G#f?IZV&XgfJL|iCBS4Tj^lu2 zm<%fa*%j*hj|#%5Cy8s1Y%q4K7B-A@Ad&0-$9{%wlp!=xn*AK5RsmaoWX$wZM`ZO8 z6<_3`d0~jQ_{{a#_LPOuSJBb!DKtpmmuACwv{gz;e&3-6oh)r}{y>!?tX7h2brJMd z9W@)vq6_nyqHok~>FV0rm;iG?If$j8n<$X?W(Gs8@Db}r6&=r~m8WgDtUPODXE`G+ z-})@5o=17^xX6Mi8U7Vy`RHh|Ro3rLqw#U7=`qdbuD^iE>JH}?Ieh@zHzZ#u)n%a& zKnxj2k%<1iZrRnz?IVDg?oT3wzIWkGT|=vnA?lr)v#>YO)Q~%T0HUPUj5~pD799xS zopn@?X5BkJsft^U{|3t&oT`2YW)}o?==O*^)}kbbf{ay!=8e%H2W|XdrugbJ_`h$} z4gbKcoLWosqQ*ty`^Z(a+(AZ+<=37=wm?*#Rt@E`$j=}vy*zsR(TV#YO;KaK` z=+TF|5RCYIF8B!Ooj;+ewen|kI0?8Ymv*!fq1=^et7AuUip}M(mZ~C_Iz^FnaL6 z$%g{|-H8tce=V-nlmL&g&YLqTa462ZE*}o~`T0K`Hq5Yxp?)3f%iAFLIZWo)>R&Gk zdjhQZ#f7;mVNPVfP+zWC2Mqz(sFKpK*tZ|K-n1NN+yXAYjs=j|=R{H{wS#KOpwp>E z@7p<6Q}jEO3Bl&HCCXNL;$f^SurX|8P9t%X7uIr2+MSK}rD?(G#1d*LwdlQ|Y%6_x z&muJ!queobq%3il?N_51+X-8^Vigb&>xA+2O{b27)~&~6s4Ie=u8u@94O_#@&d%OTO##w+?@uW*ojw9s(GCsD<&{@PsI3r#~ z0}mE<0jG9eRUcyE9X8zuuN2t6=2k1p%7=fCFyW-%&Mm5ZV*95&O9+wjK|N0-+sbRH!5WF?mmfj)*>Au?D&Dpa1^Z+h zMU$MpXl-m1sBdU65AjNv?voTX%=mQo&189;-X3qwh54eJ3rlcxpHr^Ir#d#Aj?E1+cIM}kIln!4Z!-9MfPJDd zr{)MR@Y-kfxb+ydnE8wbeixDnVJQh&C3=Nq`grrL=eT8Kxb+OhY4SDLU6bPvHYt3 z^q5cSUHaJ)@kMKYxLQ%4aV37~D|si*e@6M=OA@P5w#V(i%9!gUA6f`;2q$Q=q-a7z zpDUJV$P!u0Cg#1%=ZuVqd@}rbh_yAjK{wHy$VfIsk{ge?70APpe?tETZ!4aVSi=R+ zj{a5R%{`CzztO`hMw%m$mF zw?{IH4~DhT0Nc%!Kb~DeH8w?dPhl>Rud85XBY@l6`(C>Z<-dWG`1#QLkOXS2k)X+6 zDp`OLL+A5^kO1W@T_gI==Ns6cSP+%OrqP!*#-u*F5moQDS9c@Z%X)Nw@rfzMc_&@l zW86gRY#M`4xn+ej|4-YUqu~E(lK&PATHglP$Rk|5z%i=Kc*kAaD`$(%o!_^}`}4Qr zQxp%hDf;uThozHY-nh_og6Wa3KaA%{hy1_)SOchZMo5z#GTYi3Z-6!=j4I{s#sL98 zzADQmkOBdyt~qoyjEvTg=KrA%5rCJ`(RS5flWM1IbvhaFqJV!iBYm{_|M4ggbS(J3 zYK9tVajJY8-PT`kCH)KKbt5Utd383k32Yzhc0B%;7rcx_kk8%IFfdqmMt%8E(T>*O zuQYCOBgvBJZMAXJa{j=7Gt9a|o67NojEbsbN~Z{f@VepTh@N)$Y1?*ve`zs*0@8As zT@1$vGFx-gky}YFJinhxQIGjq?zRqy$!$sAh#V57{C($Fk|XRTB@eL_RZ5ULESFUC zvcptp@J-oV3FPD?%P};gqLX`EIFsWC9T0oD9*-2iS|oAUU;T{v=%L!7?jE|T?lbI~ zBM%OTZH4vI0On4elMee*Ti28WkZTtIajIEpUnOa*_xYos4$9a;)W0CJmt)C{c>|mk zG)$7P7TGP;t^az`VSGpo{RnZ#50o+a2N$Y87A!{0m;wRpU7#Kk5fQ;NT>aq>tsLTc z(Amga%pifoi56F{)c9paT?6y${a*+~ZzEA{z6_x(GZp!pfl*>^0ULndMN>!Kiy0pG zvissA77yje2_zO`Zwl@<-{P;K_)#_O{{#~VnrmpuiAcJAyA`~JRPz@T1#N8EW)7Wo zy9Vba#i#P;o|u=@q5Q1RGDR!Ori$j_A( zm??0dbh^=x4!G`3v0T765KV-Nd}jJy!aotCF-3MAL$$*Sb1TXNmfzJ96I?R=oTa$u z3P}|WWZ%DX8pbm>%X#agRK}Gc>AB+aG|6vrrQ>d5m2r=aq4p*;wGmosoH<(@U>E!+ z>v8T|JLuPmV z!J5|XOVz^T+`N);s~h8Ah@G9CLW|-uzW>Iw*SRt5fNWIrv;8@7o-I!?V1lXl_W8HbmS>-~tTZ~;Jm$&% zwZ3`S0{r1@V~qp3y-||at0794PlmN2vQg;%eD+!Z zyVO)ab=y4APvyY#HdrrOd9!_qDAlt>5C0Ap&dYrj;mY_G#lVBvnwsq~nC;e3((@bR za0K!>{zc3PSFlNbr~RKZHRV>WMyJByt7TxNV%w#Be__cR%hGt|s8e&t;l;7&PvHQ@ zC$#Z*T-_~}Y0iUXq(K$;O3>kSMcN?1qzVR0N@5@(Uo@ibAVrux-utn+#Ngtvg*s?9 z8j}RM(3l{_W19%9ke?OV9|4OSvY#d;c@6h5sD=M+vSJcW-t>4Jrf2eh7~@Y&B#|K- z#}duR{hypQ;DqO71nHS;tW>k0WYfEmD~A@Ik!I{SJ!{xbm| z+QBRJj3$=_^5pqLe_U#Oy!#2r{l1#AXS3{G_&SNfv7V$5z8tMXKIoC3zy7oI>)DZ5 z8OV+w_<*co*6Of?C4iYe<5SJtw?&>zFpltYsdO@tIp@F~5f-IUs{WlER_fM%& zN2z4k<2h?;kUE+i=12oV^^h>hXaCa>2+Y!D{cckKo(`NF@P@vqpy0*SK$Y|_7@mNtIObR%412-*Xu^PA(s5S4##off@9M}?NrIhS z8H1UV)7h;BDnNBpD~ky6?TL_zI=-{W0S>GRfA!>k<8V%~oG4I;1dx9#440BqR-pAr z@p`O^dn`s%VP%Y2gpzO6=7Q=I(g1fZSJvWkS;R(>GLhQmwr0r;igRqVlumuIOTuDZ zJYRk#gMg;B45R3xL)NIn?8*M$qEiWlyf!Ne0mp*W(GQk;TaKu?PMBIi}kOE-(YZF5M^^7jQq#TRAdY|CdBH|=xc-O zTyi2KO$^@Cy!`x%O@K=l1Q=y}Cnu+=ql2}2Dad^@WWMg8H1X#clY$W(%RD%6>~cJM zx)Dkg=GPY*l~ceVv>!{jz?wk+=?B0jLj0~0MD#&d?}Xb#dD^sUf-rXi%JRx>hs;pXN>&&bH@ zgRtVO0=meo)>Sfv;y__Q^8C5thYuxrj~9K&D`dey0UUgMuk1hg-B|s^;-yfY^*saZAra(JJX!qrnZc-4#jkS;_nmxkL$7gM83sYVZLVin7Hhf5} zQ^m{$e*f$ST|iMX5MWp(A(b7&p_nD{eU}PMyy?HpY2_XJ;csM=`9|+Xl9Tg0n9YCg z+o5?gKCTYJV5Exq@PhC(is@hETnA~`a!*cNA^rgYOB!Oe7soqyLXfjcCEZf=N~y*N zx)%H(O&7T}YSM#RWHXCqk8qtW+nr`*Yvjq!j?%+@J=6mc?tQGFwSo(|_G`kA#MShGrf0*Po2?=Z9UVFs7gsL=Od34hh>@HdcK+h&Fq!Bs7%dtO=!rKW z&$EXSNO~eT%jQ#+SH(1DbSul9e>`t=z(Mfd{4~OaoIk7kTi=`oh(umc!J+77)K^g-ciHFIbpynYeQA$lck5Z}UP3D{<$O#L5|AEjBZg2>P z6lKGLq}@;!-v5%f3BEBhZL^uu0jaLSnA&tHt!$))KbBLZ;pUD#|2Vn+!xZRvsW#?? z@4WE5svQ+q8!%GLwtGml+v*DEG;FMT{KfZtQl;ZKn^DDvOgyiIR1_sZ)mwk$V=>+rHs)7uyyVe@b zX}+0U^z<<)DxCZXZslf^N1ZtC9cLDfHNJ_6?fFC>q&CKgZ8{)IQ{E&|Vv zK0)6LJe@sW!>ot?XmJ5_SWL1y6dpDWvzt-4mj`3E-~`)6z4NZM@_#Y@{Qdd$66JzR z7ax5h(BYTZ^$G5+8NHjQ_rSw7|y0Ex-Z++t!vbysp-y-;D4k7jGlJ|<| z4=}hx90++tF2iZ`A#K8c>pte>17)P#g8FuvlX>(RJ2_=IZ{rTH4g-r-6Fo3EiuV05 zTh8r$_Q-aV=f2JoVrw|b)=A+3Os-4jFtibjH#IUUpWMH|o8uVdf*or#V3h1X*dvBd z&d)KhYiK-|OjQD((fJjVEcJJigGa`&CVOR!VBuN^JhcemLC2a&Y7M6zL0%W!Ej-YQZ z(oJ8W38dhCYu6epWIf%hnQH}4OZVUV+PW^*C7pDRoeSR#&Nfl!_6pXJw&}0QT_t*e zOc0pzRoRYE+|mPcBYk{)R?XHkIN$~Q4}ILH4Gi9Y{LpL^rQqZmjbCylZA^W#hFB(f zpr@6G`xWg$-(I^QXSRe6NUAN*Y>YJmJFho4Vhnwt*!VBZ&c-B7CnTUY53L5cpS(L) zd2g&slBAB$Dich@3W;5lkkQf69}j@pI6m7&LlvEOnjUmi^WOB}<}$O58g&zXZ&&vsv@v_+Q?&7YGb+k+IGKY)8t-~guhB8heKE~nPcQXD%n4jhG6>9lMIaCZ z!@~)8(DA9M&D!>JKp%fZ{<~=6#Y0>ij=Bf?fxqz9R%@r0+6%RPZv6D; zS(}}o)a5(sdqZQv8dv7P%;LDKvzLKD9|{F^=gZYcJWn*%8gF^rTa%z z(tBOq@N$gBng`x$W}e#j%m5zr=TPG1 zlE`32OeYqrt16`w&g9+IZtUvaft1#SC&KHd*yR{5C6x)UKY3kdaQg73VcNCMYJ-w~ z@%7G(towa%RXXsTYd^l=Erd)ATC`h&EOtm&q&<-c0Xn6t&53^rHU!emK>Ci~G;}IvC%z9A?zf zM`)wWr;qj5ejlL^Fc}Ba2T;$bpaqp%{twq3Yg4iTA^>CGUP$20&ifSOg;1i7icQ_) zVNZRDK;@Dof5Z`S8)A}a{;0LZ&2YF6^a=&UOy3Ap-p#JH7-)vI(9ynNjn%$GEOo}* zxx}*1%TX@kjn8Goj~sr{Uu+Is2L)g#RfZr_!=^}Wd;4VM8B%S%XYyZP&Gzuli#|y9 z_Xr{q0IqKru-exqtD7j*{dL)5-Lw@g)>}i7t;+ckO=}*;dVgr7dFSED>67l^GOA)V zSYczI6f#x)j|T2Qf!}IGKMvl$t=G%9r{=31M2ngjleQ~#oOf4#p`LpM1*C$nAzvF4 zr5uK6NPw+$+lrz0J_y0d(F96aS7V|@;B9I%i2nkAekI|S_7y^l^R>_AUGZCNg+5Ep zguMsK?jFI1(@?kLCx3o6ko2ph(Tc%85RC=@ch(nMzO%y*4x8-k?bkuq?_xHL>*?Ob z@Ou_4-NZK&6&teVBUK#HE3+DzDcZP$Ju%J4m@MX~y2W<)7eL!~{f9F~>$0j?R1G<> zR`g@y@|p<34nK8n%MNn9DDLqpY;WZV4%}v`avrYXwaZb1nMvY5r8w|KtDQbx$fqSVa*jOP z(AVsU!rmxo^Zl|P%hZ0wk-0=5ZC8sS_F4@iNl>9yTNws1^zwLx3j-5#ZGS(is>&t) zR4*#A>u8{?=fg4QNAc#rPG5kJm;60>_FtR%$?W;Mn8@4 zkfv8Gq1*c?dBxQl@;PDK(&=8t3tZA)_w-6EB*4rc`^vAUIs>K#3j-T`Ap@d5FWG&6 zlp5c6inl_UH+5ZIPm);>4AG7Jd1BV$)j?D`c& zc6tLZ@OHoJxLV)Z>fN0z_Bk44@_D$Ju^xlO4xs3v5HYRguDd=bsgJt2j`Q^jKR!=Q zO@Sf7bQDQJO4*uQtHQKWDTgpfwe8N6o&8cm2h}Kuh$+BTycHL5?6&_%ri7qm;CP>W z2>s_i1E$&5p5$fTIWVcEfJ@Qj-P!Q1rj%!f_dm*StM1_E5W?#l)~VPXD0qz!eo*c?KtsCf|){Z&nY61(&FM3Llje!B)=l~C{#1e z2V7k)3-ty02YcWypCw1gW$d4GxgKQ>XlL#3OyxeIj4JetKtGD2#y+Sn!}ykLB5j~Y zF}hR5C}H-_|JmFMImy)IWC_kwhMeXR-WzPCdtm(w$Rb6VRIC}=ybdi~KfazB&BW~@ zU}1U9&tKznW@DqA)*aon)Q4>GU}0x}oscw0{p#fgld*THn)jxrDo@yVilonFie0}i zKr;on)uFD)YqwXtyc4;^vACTets#%unUfx7xcVo@GHyR>q?3>dYhl=$CKv_8I9Nsi zB_lz5o~wd}w^jU1sG;6ps{_7bMPXkQHc_51t1Zy>1LtwtHXQ!VnQY_81)E~h`gVC` zHGP?2M7^N-s*T~s_B#$Oe;vndt^K)m5f7?%tEz%$b%RZuTglrrt8!WQrPrxBxa(`y z8;YA>t*P=kh+1aLG(Rbm+zJa7<#`HZ2qK0qkjM$v-l5@>Z;$`|KILV9pJJ_o+46W_ zx81_}bc^>tMrK)Lt{rx3$%MPN`vbY~d9CLe1i`kCTN;b7N>QjIAMAng^iUqFI^kYk ztXf?Nmr{-r{b>+?*|+wGFXXvA<^;Y%b`bgi^^d2I2xW5%3PRVbxiiwN*Che3E30nb zC;38LOW)4j=cbt@jTCgUwI09=GtT}@InO=;f$N*SC)?xhN3-q1yUz%}`B-0N|92=R zHqVb69f`h?I5X;JGi`(r?7YR!Uh=@(k*5}!Z7VPy_zUX0L8Yav;fiM7o7xr~m}?wy z{BI|?&>tzDo}U%DpS*ZqNd_?Yz|jUruJ}ed%;?1%o|y%i?!k&3Tv^5>L_*l;su)mT z7m4Jpx1bT{yr*Z%lM2y?(@OKeh|x2xOc%L&N&gHtw4i-UKMj-UXE#t#N-&o@)6B1s z+_UWFGyf1*D^UZT$fIaj_6}YBf?wk;278+xLvF9J+zN6A4sOFNfQ~n=cBty<(?1Dv zb>bo>jix)MmL;sTvsX{+t>ZY1vO$Gm6 zEZvLk9BoT0j0md&I$2v<+8l@TZ)BaGK;1%oPPVA8`Ro3gzkn1-tu~2J<=$N-&|^YJ zTv1QV^A7%|P*)ZpPi)HkN<@}={?elRkj7&p?8j=@kru`N0c`s)7)`|4WYb&jbl8SUg!bfOTjx3}M!EG7Ws-Za^ud>9q} z&$=S7J!i)H?-mL(e^k;r8`j1zkM=*hm;CqhiG%Rn^Su6wzSV5U)1L;okh<(^d{emk z(Fr^msnVwtgnCN8AD`ULxO}s|Lg9z+!3Ftk6xhHUTXUfo;j95uCxVTBJNlblLa3MJ z)y+OudZ+=ANWIAv6fRue*_Y`$j{|QA3Wq-H-!|MiH~>(%M><4;tLUQrJ=x-_v!eBy z(k22}IRVa#IfPfJG1TQFfXFq;+G!lI8sZ)U6eE&0U2k_oT++hFk&rVkY8#;fy8nw`IW=Ip! zgdg#3OBII*h&0nEE*vf>_TxElj%ztqi!@=Dv!l+}emP;))gtyaJu4 zxN+_6b-TZ<_(NA&PE%55m17k}9dPeIU-iIbTe^R8e)i9*GV6v)+qtuFAqFZTdV$^< zNPXJfefR1^2kk%T32fbhD$10^=hVea+Fc)7GKjKss-U+FEypDEc5-EiS3&M14*WJCEe0ShAnu-7Qga^z*j@Td*Ht#4>Oj$WAX>`n5t(9?DK z^3{Ies4(wPj^xrQ2GDa`|#I3s&uBHTuESVCG_vWPH( z*$%aIR#A@q)T558gx+xK$R^edaf(QHy@Xmd7CDf{yl8xR4z^*BuNX_Z6LtWej>6TP zQ`8xO2J|Unc)N|}O`8Dm=|X*QqmwjKH)f6#<%hBm4{|fL_mpAEFNaE9@I`7LK;={A zkq9?!{IWFFAiw+u%bRwwu3>^84UtLF5;{;zW|&bQ379#5ZwNq!yQo3X5BQ@S>w~^a zAws`h0ki4zrqw?(%Yn8n8UU$~4}yMeZ7q_VMxdQzM}$KjOKxD1d z#%K*=sd_S?2%&ih!%jL!S*1zzY(Al8_L;7&CH@diticvs{EU4|((Nm9$hUV1CC0Ct zrTa76V(>EjZvN$hww}k&`or1VHpd%|_wJ>^gjHTedj@CvZ|+5jKC={UY)#MEkYcNs zOG?SeV1S5YpN=#q{pxg{w zdV2)A)-}IWgUrFci9Z&1oRQAsz1PN}*rZPMYV{@0+X-yP3o}lw_9%jQ_E1XqXV&i@5=CHf7cmX z#6+OeM*>e=9%bsQ+5Lqg@JjWs<6f7Z{3tf1XJ-B?o%_pf#g6#XXpq;&cmt*RrO~!3 z1tZq&EzLg|UANrxDMk`1soyD#^GR2to_q3v3eUs@O*gIZ( z)>jiF!CUvR+UKh9q;kW8`IRnDU~J5SC4nO|gbx^o^RWN^v9L11JF6)H+SqF%=iA&5 zB_YJUnh6+bNVkO80erkQDF3cC^A#f-gkQvS??dCt`1prpPBuua@2!uLYJLHZZ#(1; zwv}?b-E!CaQB3TY@?Vrg>PcD=R=%)PYHAw4nXc7hLxh0uqG-Es>_IrF zn?1vDJgrM04HgGg=O+!s*Oj~2*#WzB_N7YKd(ogae| z3J<{&x>j|GvVFgxxr;IBcx;?)`kB8KF`{A$TmD#u_D z?v42}*`Nza0Zpk!mAN(q=K1?1mw&0`i;R)L{2485mO;C5>aP6 zMkawgc?*e*Ogw7sE>K8-gnI7(6^>z!iIYFyKVrXVR2t!VNi&eYyY=@jiRK(bRbH{{ z=mPuW8F&*CIe|Ia(e|GVd^oi_dJmb1+2*qx;?JXFa7Fb5ualhW%it&a)=-Vb)6SDV zgYe{)DVp^)=tcpk1!EvFiy1;_tcA7?_Ler3ldJ{Qm8L~q@iGvX}7u}ipTO42|F%>B$K>*hpRNwfYuSNFC z)Ec};v-I=sBW0jTkaUW9&CGcEkL{-{!+4o4*T2!MGWKznUs=;WXd!Qes{QJQZ}^c{ zZ*?F75wPrRX@m5s4AAqGZ2n7mn8^kCZ>9U3@>mfqRot)fkeL0sPhGj*A&A=5=%BU|L@`V^$^^D3x{9&Esswt?#~xM7 zK8%~WC=M0Gg-tR(#==&l0o`z~P@`F*BNN85yMrV}F*g4vmcR%k-oS`Um%$eRj8^@E zEx(yEn4IlQ8(@?v^QnPWof>=amWiI8`3{s^il)v!QvINp&bSgyreA)BopVSQc>PPk zdGJBfBb#6*8M?Y$AE3vbnMj^;wTCs-AS_DYzW#AD^M zONV!k*cL#D>t^2Qnc$@iT-=y~MfK8x!^N~ME!AIu+>Wj(IR};_VJJjH17Rp6n<}Rwb=!taA$vw)<0evR)S;Dyq?WC ziRHA)^8a?5O+YN@i(}`9udbof|BuRVHZ9p)iD(yev853Msjuzg-vs8rsV?ifM0&|L z`5y)lRPiZ*>u2>q357~3?2 ze|H-1CvGwfz0p7myKC{@dy1GQf%>;4n!DL}Hd77;6#BhVfQs9B82Z!ci<{RY7y8Ce z+vO}zlXZxImlI!Bv&D^G!5?SwjAQG`K4itu%75f>`(9rahZ;j~!OQs#P07yw+2``$ zWWzGeDS2u9NftL~iajYMC7g{aXp;=WZzaoZjnL!va(A1cmU@r2C!;F@v9_@>C~V2c zVCAKes%+3BG>y(`xd_Fq-*|{X?~Q3pTZt+pj$H}_$OpLcwL_DVg6s`{!5{+RU*>}i zqh2@9-?<=DgV*n`mNv)dat(?N9Vb7tWuFQbS>7Ly>Ko5RbG%d(} zax^N(0X_4sgKl#v*zgyjUgRK?Xnj6rb~@zn(0%H-pY2H;S23fW7{lWBIp4D&FpdCY zcBoW}4h$dzq(bH1MeRY~9GUe6QMetWe+81hA6>P|wOT4WTIPIb@0!22CKEm>0DY)CY?2&m|CBtI-#eD)cVcEO zkYgf#7w5gs%`}W(dOZ23{C5TCFNmb+)~$H!^?P+~6)(@|X^&2@swKs&$vme^7)(v8 z?T(Xkp3lQ|IXUypeXuE6vmzkdYpbFNa|{oM5KBudmWnV4DOsIIYc~&}w(h)FnQL$k zAOx!(GDg*rN%o#jXapM83{?`Rinx_r|6<#M7~N^*EGW{5RVU!6>n)oxZ11E#CX&gz z;Zw*YN%_z?+BILl#i_!NpEJ4py9h-r`yQLye5%4?IpPAK8{IVApS}@TnbdL#1-eWGCZGGgL zH%6nk{xkaLRSXovt3&C;l{7>-MMdvUE-t{T0D4JfJeuR4FQzPRB5$!?<#;f8Z<0VO zmF9B&MNDh7djllQW!NkNXM(6G^r;m(AKTW?Pv>ubk3nZwf;d^bNx!Xqh@j4-#Bc2ESOWZ1-Z7#|asl(ZW&WWvRe5v)u(EPvyusjdlcZd;64w=e1ub1xD@2xfyombxMy@mR_3~vYP(R+AZ~8 z_hb>psB&30U&?pzS)Zx;v=KKqn*AlM_d7_}F2@m-rcK?R7;*>_u83`>b7m*o8O0h1;v2&qCPJ`w7(uIA;8ph4&&DU@AE>$h4bz9$kx;)hvUsc-PBgn`xIT9 zy88U^3+(}F%1J{7f~!lbzSLY!wY*(HN3u>Hl0^x|1e9;ccglC?W~I*{lSq60W^Rmwht$H= zjL#=GtLGO3V~WAy9(w#V?25bm69J4P!!h~Oc{R|veu+Iqim-h#V!c6yDb`#-pi2;K z(f!S^`R>$KR#z;TRLKnlR9B=r7VwQ1uKiG>X+HOCsEjhB_b}#x|a~6pI0kD z6*>+c9`Sx&rDab!{bc~d>XYkR&mOZ9O#~K5Ro@GHFqFkg5Z2%@!~0>J29nIKk0!5_ z3XG)jg?DvH6{%*imWV;aXO2x524;)S2KI^qQYy`2bu1zg`(49hOSq}!0YNTIX#S$m z@sC9jk?B}c8iY!wDx3c>8>3^=k<-)DuamXZ-=Dt#fVtSj^mJB=4oC*u>xEzygxtG# zd8JrFNlo;U5+3ih(KCk(;{gpVwaTxL0dGba&dGx%9LGnA?WVl;rK!kiU$DdBU|P#9 zSfBt3f`flX8i#lNY)!WJq1!zrrL!BAklBkR`X*K#qwlr30I|XrGATj(J!rb(|8uW7 z9eJlp#>^>6!vf8@{PbP*;fFQfH;0gcO;~5Us2em($g?)}a35~9mBA%+j*%w{&<39F z5t}HrCd(BQFkX~R%XrHq0*&7XYv-Ki$3b%YK(_})kNOEKx0QXV^22&H{}fitc^bK) zJVmmYXBwtAVLlfW?|y@p7V+&b|2Pv!NL-CmsDb+%mrhn zsF%xkI)tM4fgg$T=Nh=Egmug|<`rscY80ICT=Gw6N1itMd?}GWu0?Fbd?BKH$Lt2x zN*;nb#sfR!xe5#n4DK(BovRscJb$_{yl)$__EADe28=WpR0uO=0)uQ956#$j>glf8 zG5AIq=W!9pWOuxqnR5O7SkrehGNHb@m!lP%O$^`2{d?uXUr4E+d>^al08Sgi2?9#C z*%ks^`zuq0GCmfl5*U-!rpw)sP`pO+%vyF`d{^!xfiuBsVJ_3$CpqXZ(_Q66Q|x~d z%oSZ5%D4kofdFub#c&v>yUaUmxu42@1!ha)#}2Fj5-_KfP9=TZ$1fy}-7Y}x&4Yz` z7}(Bx11S{=-I%td;j4Q2c1W#l?keeHsYZS{Jsk)!Pauhm1-Ey6TH4_4#eNH7h)uu4 zmmg%_=A)Uyk-W@YT(*bv4T`Sge=gbt1x3JTPA_Hy7`| zhPFGTH5UFL{-&K~OHVDk#ZBbFWa5p+*2v}2%j{3i%n18`yJ4zzfCRj@xuhj+(SD9?pm#$aO@*nSDWH{YWp#aPYgK+4gcQ2 zI&F-AiDAhj!t73)Ogf)l#Fe4Jpe`np&_Qhd4(sYX3^E2~Y|tPfBa4N23wQ~SkaziQn%X5K{7QQiJNZEbUST@ z;%xPSDLBM8N=iyZ_{KkrR5Idq0vBlpHg)?k*f*0c-{#KaUgy%n)8%y# zUTA@!lTm$HwTpoC#))Xo3b+YBx4LT7>P&T**<0vnv~?x_&ad+)|8HVZBvel)_xI)# z&xZEupHCe=U4~^qgnV{lReY>{PJ&5EafpaMAG`iIB7Z?%6uT04$Ayiwnp&>ME(P*^ z&N*9?#ch(Cyb!PbXXy=epb%d7GtZh1x~Gp|I)5OBSbSH~;$;$F{{d49KiC@+yXusZ z30Ehxv5%v%SO388Llz1?v^WpOGgugoaU$=3?m`wXb`}RIa-5Ck9XOdrRQR78{|0r0t|pP&0Fj4y?s zb)GeEW!ow42br(AyG3^zgrA}>!iX83CY7rX5ackz6H|>7#!nJM$)aSCP*;>0iEB! ze`~ev4F~s3m+3Nb=-2jq!$_`deJnQ;)Hnb%cbbI9ohQ#+9Zm)Jo9Oo^G#NX2QUP29 zrOz`4%fPw_Y|U3pl7*68hH4{Wf-?~g=hF(rzzsu_DWhcSE#yEgg7~=->o*>#WPAdV z76*D{19oC-=M%)jap(r0?klmbi{aa|!+>!1K^I*Kk&>u4pMrvyJ`b?+>cy|TXUa*| z3(OGutB2XY7{@K`b>|mMdUN;_J*T-j^dJc0&gSsLWz^%Yd(Ri{U1j#)=6o0EHv%*Q zW}3K;&%h;6&0_zTAvoM}`6HK>^oz{L^39vJD(sv`)tAwr2Usd+T}AI@)Q+A)pe1OM z)@2KhKJF@8Akh~xZ^^^BEMi*VXcI>a_k%(a48vu|CiZZ5Pt<`lL~&YzEEj~PFyXMo zYTNX74Oo-($LO9Pimk8$&(6ngfG1J;W=v8{OL` z(rl5B%Zker^T#44%vPk&$~QNhO=$}PI(sxady`GWS`}^0PobFtP_N&BeO}sIv-0B= z^N)8>B%bof-(-~_GcAZ(`C`^482fU->1?JvE4*b^?M+$t+kI87@xk5K*d%SFwNn&K zv&trhSWZJ?sX8+^wqzcE_%&WxY$O3_htPv%5E!amKkrh37Kz^`mDX7+WH(NPD|ldu z-WS5|q4Dv=jZO>iR8;|dchrBZvCX|Qc4hhE3wohQ?EICrEREsqd+Ds%?DouON&+V^ z04N=3NBk4<7xjdg^&#ztmjeYXL8v_(vQ5Fd@?xp$zs&(7{4>?AYj5h@O^!F`rs+SD zNGLZQ@hf$?cf$DR;M?$> zWjOrV-1NXeq6maa+-1pkJ9k;wXd)IP>*-;c4i*j3N~+pTtg6#W-Wdx!p#zhehk?4G zIOOnW5wTRHo{O^BV1wF4Y#Sa^e1J4$Kf?nfAb-P4yMg%R;AwFIOrff7h%Et?6eCfi z5ZIMG-SpWAcp|^l5cPd|`7tOW240E}{Qg}~Q>i*=$+Gr4`K8l%Fz&COaomiC%x8h_glFwqXYlx7iR$i$)rB*%(ETNDGI z)e?hsX$lX4(rjF6tXig}rx?h~90|IQ_w{-W2mh9?O(cE){+Z3mj=$&5 zyiNv4$6zC=!jr9au?&tZ!F*5buCosdHr>8}D26|aRc*2c*!H z3NR$<{smdl>$fW_^7h{DJ>$dkfFDP;*f)p07@#vD));u@w)UnI6HIQ1<4(Fr5l7EB zg8yHwy=72bUGP3QxI==w2DcCh5Jh;0P+;x!P?(Xg~FxbHC zyuaP8+WoLq``_9rsCzF`_ngz+r=RZA@{$!2MbrlUB=MQoH1Tz4Wnv>*zI)^eK(XKm zH$}+E#M_W+o_jR}4ikA$3wHbr#kFpNgAy|WR+zyjXoLGzazEtv4e?(Mb+xljY7gqZ zSYL5+vH#xss}U__rG~M}qhn8!uqITeHGPXd*_v@+-Mx&3u zZ>jN8tZy!6{Pj&pdd<|a{dSNBmdX5Kwgebw^Ubx6PoLy`g*MM>8tYN^sB%8v&M16W&sNX|J#-u-zQO>f?2( zwNF&F^+ogrjG+1nmTYJ;39)xy5jF)IdW(ff9h`g1CM?$fSP{0%F;Yi%Y#AkcxS2QP zR4meMv_({WV(SN@XvG!3{3*dYDonF=tmiuG%nv=MQd;i#?u7ry)a-k%5lRuBL`~kLM9R<5|OhVX$2nf3q;D zc6|df%n*a3s|#4W{v&sN0V?qohEhvVO}(K3F0+x`bBS7!j!y_8Ev6gMg~ys5L+yTe z7*VzB%a7%S;bIoRsd1WI;%Kaue;hRB?)vFpe?Kpp@ZISfd|R06ebBF8b#o88f8h1= z20$zE-1Lbjh`^gagTQVDQwo~>`a90D_O3%PqGu&J_<`N6A_LR@ws|_>!O&;q<<9NJ zr>oX{-ncy}bF}+}W5gP$P{djj1Y&&3sK@th9XS#eZn~5~oGo~1syt{dT-=?!s=lN_ zdUZwShU@b2I#FL~M9(2Cg;UvKm`9DE2|!FeQCrQWi#LK&_^9&RKH^x8!hdbI4yT#w z=MF(;T%2qX6(-`M-XJ)%iOQqA5ehTI-aT2Y6%Y~eD={ETp3yuJS^exGwOdrYt}bFkXtQtQ!SNMz9UQDV2J>2bxvxF94c zAwaEQ*=axF7F2b&9vkj1*=J%qF>)7_hOzvg0;#M-Jjp=BE>@aU8`0) z*UjWYHBgl7`aD8 zcHpk|*mQs~MGjTifqGb%XnVdFfM&$|xCY^8Bm8a7;2Zk?IvCyqXowGvnwSYv)Y<6> zQ=dt6zI)BuwwAvlR#O;hoS~4dUMx8sZzyCRhf9BGbLYoOF+5G01^!4RxshW-fczR! zW^c1|XYkv8`0wAFLvk#Qw<{kCBt;qv#cYNa*wH^}5rXe$*lPi=`x%5}Wb%4}-uyVO z{EA#5RdOrj2?oXoCw#2g??-lx&Z3?~<@_clGWU4|<|_^eY2R_sx3&J9d-mZmFbKE{ zn}OJV-*-#7w!z&JH>^2HKua0|{m-Ikc(^|socBc|30qBCH9b`oesMJLV&!A<3RKr< zr{2lBD)n^U@POJ`S*c+ylq28a-4JpQ!dI%qaM1&SF@p?)3dS~32rggV(dbk<{YxjZ z#sY-Xv4r}jQQBADHhGb+eitxb4%{)APg*&CAiQ_V8HItsuxSAxp#Pd4RLjvhECV-& zbdMG(^TBq>Q19tpKWfsseY0h?w_wRs`EWu?d3$P7E^>dWY|bD3UzjwzmgUbyW6D6G%2fzrT3-ZQ)(8kYVL%4$$)Io_mw_cZ+ z<9Ne)4~^5V{c(XmPIuvXtGH$s_%WDMT7c<|@26E?hkktNXa5=G?EKz-(I@wrGcaZI z{EewvPayXFPYFoLs?#oD;q_uBHHCLsQ5ltOv4KVfFid)$b$s)mW}?~~4fmNJ{={}N zC3lZ-tP{H)GP+08P5Y~Cx|uJ1s{M|Ky3uo0zEyXC^Smg_9G9X11i;!n?8 z!-8b8jeQmhw>J$22g{8FEr1wmt90XrvaP#QhM#@(rymapDKL{1%GSEAJ)Cp=z--hA z_S1TfP;C%YoIvY{ue{yuE@K^hc8Hiaz|#XhhP({+2O~RoL^oxF!Q`O7XHWnQ_nZstkhkDxM6R zdAVVlK^6PmX`7*?MU&+!S@(FYom#{0Hr8%X_mR}`M|LVXc1%OBF4-o)w$z6;$4%ZA ztb5j=?3PpAQL&I$>*k)eOk^w5W>33xkm?UrmSx^uzl+NDGRKjBh9KfZd}Gfr{8SdJ z^eG~oN<>Wy8tCQ(N*#Z88k|Sn)KSg-P@`A~;JIKf+5HFwv4}G%Snw_;loU^3AtB`w zuK&-Ch4v3Os!h^+z;r;d^OW3=|7w|PoR$tzja5X%L&7R^aDk8-*R#|8G^U4PB7`>T z2o4#`Qt>3rsLHj`-OO}0N(%Wug9)7W&6PS;W;Zb$p1qOgkKj{(1(eTuWg0BvMU_U6sN%d4jNnWz0HQ0Z_kRzxm?Y{k?(B+{s;tqQ=a)4Z9WpB9curMtak-K5l zb+L5n=YcB)1$_YO`Yc$pe>qx=-N)K2k2cT%QWTnoz$UWc+qZnp`l7YC`Xi81W7^X! zJ=y!Ra(c;Z6gy|yw#%h5Z5&!J0k+cfU-X?{^i>@m&&6j#fVcYZt{RW+R)5)Glspyg zM!jn*xm`P2G7Ip|Ij_?z%JidH6kP?i?bMOb(@T9G8p9?+=lV-{cCZ+CBF+;>=hxW@ zNFinC)uYB*cgK>V0 z0x8*-dH1ZmSB(^v?ENP%*7mACd&r+Y2hLy{y+l#n8K0YBljU8g`V)Xhm4Ikr>O!ll zD#mBjqwm%mb#r0#Lq`W)_zcIMZ^id5fE}TczHBy1X<(Xt$Y$S|M=fiVg zWaO(tUyIv2q>Ynt?d-ZQi@gIqX`X3lFa$-(1@EWQ7^$@Z-5+jSNC=0A-Q6epc8Vba zA>YAUluD<^=T_&#tqXSz4U*I4#-fZM;|u#BSQ6!%`&JEFDJbercJ}V8;3RAyl6eYv zhMzK6xXBRWHjZpf4LAKqx36kyXgzA0$n>MVj2cM69jzJ$jKjFg=gpE9-Tj4YVTikR zj`3g7l7v6DmfuAMu_mUciva^M42l05JqXBpPca^D&nrcp4`TE+*B97F_8OVjUPkh4 zGTd!Gg@3=_-U?P-gJUn90SmH8Jih80AE%QK2OVDt5+X8$K)w>Emk&- zLlw1x`a8IQb=52IYBgswATE8b;u%|SPKr_p=dd4kPx2x_czRji3JPNT`p$J(QDkOj zB2GxZB3zHq(*szr=kM{N+ZO8`3_=`9Iu_?LF~74-9L3E{SyrI9Pq49=pcSFxi&K$S zOXTa9@;)jlk#O}R7Z2D?<6-CJCsAlI)#ulT%T;{j z2N#8FUg5*b6N9yb5!Y9eQVt$e-N?KXb~+WJCP>t)YFp1wm^~qBTk4D2Q-AgPEd4mg zyHBO1u7bzxih-ouYF?E4F6c0roT-FoKjicvsLoY3N04h#LWiI7g&rL~E}5M`wrR)u zP3sfWXL<*|$t8m9`l~lO@94Vda$w~dnA|klGn8J1{*xJg@2u>{2KCwy3#XnR#Npt$-H<6J3>oYGhREDcOKIy&{&bDsp zd~tjsr{)qT6S;~Q^(wsv=PnVFfmjO1UBT`pkf4#C>4O3?I2OF<5;DY|b!gXGS$+O5 zcMJBtTr~&s5jp-#J&BZ*W#a2QXNF$Wq5OOx7mqpSjwsjOrGp16mY!}0p7kO~?Wu7~ zG(S2Xf+I_%NM9|$@&QxCQvj+FfaTszziyk?#kMn3oQOM_Rs<*}2(& z<9FXDLZ6Xae+7L(OKW>Gf`fyj59LZ9)Q!y=2ufUJrUnxH)?SMn6L9{C_e;T;hy^bH zk*Pg@@4k|8`w;PMh!q)iyyeTC^(=Zos|yoL8-GjXGXaQC%n#1_H`iK&rK{GKc&Ou{ z&-m9o?MMA~4Be}-A-b4U=D790pCvSviMR(;8uKlTDo|ft<<-V!QG15CZ#FP`AIf~R z;LBk!=4v@5`NV9*2o8cFP_pS&mIUC7Tse@rQnNv;t0a%@cGPDG_`pgj49JcYtazcM%me? zWtF@Y9-Rz4B%W3IcK}^xg6A&hvrNQJeUC~f@A~aSlD?qXHFJjb8NXfTfB!u<&KbfG zLy6D#mj5{9hP%P#_5#T6VC@Y8Aj5_~ZdZ?zQR==KNV~f?vBfoB>^>29v}HN82fqAJ z&%n3j8HFT&Rl7v|rc8<9oLFJ!+%wWcsILufcfPWnTRI1a)9x^$U?PWwxf9rhrY4P4 zeI6Dw)iEy;5Pjed98vsqoURxbRcNZ?A@rvSw<64}&OfxhK6JFm}dzm0%sA8XGS)y;f^fk-n3CYPLSo|WBo7v~NW zjldBiQsd(-qHVYFNj*jOk3Cmo+`N^U-L1_|Wu|ZpMkM+lhVNef`J+eqBIJJJOH;Y{ z+Mlb>QrI!$c%c9jPtnEgEm`p) z%{c3ZWy4LuFj-1gTM!hf=&s^`G1~ReEY8>N5n9@M9u^STujQ~!82E6HeF1PWou%ZFC*SvTRd>^W-sd=~kTexP*JqzJSs_Laj-ia^z`GvwNG6Nv@7?H; zdCRfPf*wxe@7KG=i~CyzeLt@sSUKhxiC4N+oNxRbczUMUrv*vvfDCH{lP=|{x!Wij zn^~Z8Ou^r^Zb-Z+)i-DslUGiVh#!U_ATaNliu*q^jvB`U{SBqbP;hr54Ns*T(WyI7 z5JV~t zNc=(LR$_Tvdj=v>M-x~7Tw6K?6CECo9Ntq_!rp`%*ywB{+7wO+g19`9-(D0c*@3s7 zQIergolhx9EAXjp;-{)$r5(RMA}s*25y#?ZY$a(r{G{Q!SaRg9rBO^r<2kBjvb6l2 zd}_VZNZ)zkF3ftWMwq79*`kt}g9F>_DK`xGQhNF!@9Z6@m0P>pzLMi|-$v(TZEXQR zN3M*+bT(EdD9?-o}x`6X1iTLRBi5$810CVwomc zPf>bzV+nY<7NBclfk)RD>%Xk|m!EHdhr2be{;4kt-+)rkb zTc6BB7dpE0rzj}W=z?y1*J{oe>f)8`F${ONgKff2Q){$JRr?EarsKD!a?i{a3dYpn zR2gYAtWSe)L2T`}fNq~kq`vcb-jSe?2fHNF1cS%3v5FT2@8MEX{Qa^OT-IHqyz&NF zZ}wT|aYjNz=1{}HFUiSknBt*tyk4Y%VUGx;4NDcU)4R6!Wb-b9g3ZzlF=T!(ZkK0U z{(!H@M6*02M7pr@4P)xGzx+*o}JTDw^g@&oJS9(p#?O*el*n7CRydn zw>tNn@Q2#&rVR`Z)ee5?fXaIZuMIZWS`ZVzbG|@|agzv??qpG(-~z`YFaL1CJP+q1 zGC^tsV#$CfcY5DhLEF>Kh4c@O5!&UCaLawgr1>hkvuP+)UQSMW$Tvv_fcE$-tv%a* zN{p$os2-ijO1x+osP{?(i-sC33vH;}0fqY9q!9SqXBxi&m%Pm4$tEb@y*RWK0WfNv|sMt z=zg3=x{$bzL$IKjkN4-?l3lK85jykYmu}kwuc;nuoHz%N(w68p-o7FHS^hMsF2(1; z(^3#c*>0X_IQa2Xiq4~zYLFOwldl?$7-E0L7;WWS)o@d}K;sqqW{hrLFyNQD^@@)i z45+XKOw-|r9baf}ZdLPN<DQ!Z7$<%KpJ*S}JOM zTwIl>EHKvyO_6Pf8cGLu0FQ%o?nbFgiFe^6ETN2qC85*O$hlS88imCxjkS z-(i_+UJ=)S%=W1amAw6HU3PX%M^1j=D9-1%XgycK`mG}-b!nb-HUq~FOkP+BKzWLg z;cvN!N7aq&VKDFwgcmJyBC|^Q`ildLHz&RmP9tFl0567 zZsf3x^F4m9hK4y6>3d|m1qcBUc4GKdHZ*5MewPpFTJ<4YL9T0C{>!TRU>{*2{ zUpE!xMDEw0Uu&qi&E87}R#x6Rw?j-#N$i%gAX-|RUQvq8?IyVNyo6uIID7vx-D#h0XMATZG?->gyI`p^)_s+e}_(2M~uAc;KP`|i#(d`c- znc`Mzh?fcAeDwO;4=CB5#DHG&@Qk2N477$W>V8t6Umf&VZD^x%ek1^$fy-*KjGh`y zena<(E0Pqg*M0OFc?&zg^C1bmrYu{Y|H=s!x3w^zswis2o|ttZB$QaP(Glo~W>ojE zgE0;|a}b=F8&52;wl#{Z*ZIQbe3Q4T+z-vp;Q)I1h1U%wkesiy+$tm|K1Yg5O9nz| zw2uFJMr&_lM(Gin2YYDe;ZCjf5Y9OX`7U5}<~&^qEa~op(IjvDdFF6vs=0BUn^NckI6C#? zbW$3q$AQT~+`(u3^f0Vlz5TgRaBc*7r%io|{XbW{`br^E%fPG*ppP)pe|Nx=Gf z4C{)JEu#uyH7RnbIW`w*9OH^oT4O3Y-og1{G`J9&t*xpSn?|eq^{ZlG^VaK)3bIw> zPh4^^L=jO%dj*-y77cxiWc%@zyuz~P#S<^DY(NIdKJM1-u~}ezk57m1Xtu5XcjkrN zN>wD9YGo!h=|~5?eKV=l@EY*^srj zj~?uIivK|>DLRI=J}7^q718$aPO2W+t%|wkBkX{)oGKDdwfN7b5Z5YbF9I&k?Z4@g z29GE8pI*2sS(?5}|I@#T>p}QQxtc(vSAtlV3-N{e;8_x2*v2%zP2yd`s$9(Lwxic_ zbXCcjN%wXlKFx0LAPUdB^~C1$`R5S5<)-J+C^)frY$Em1qFqz1+S1-JbIVSgK@`fTXqyj zD$(DJSC*?^-nv-F@BGy_plZ8a3;Afo`JBREw9pohEIr8oW1#p|)fj4o_0q3Vxd_Rx zjH_z}9bLxHcKz`gQ<~Ko1Z#;kg;aiS>Q+2aG_onHO;uZHxS^h(mw@!kAf)V9hK#31 zb5|!cgfAV?d(0ABo}{L@@|mdm2<%96b(w z<)5!0L#nb`RY_kumhTV7E3tN4OljtsL>!XF^KwGooi43iBs0)RbdeyANW+%4PBh@$~Ykd)4~GTk7dyM;(|rRru{JrHk3--l280 zEae(B`3NuX>f1z->(`tXm$3`V8{P@yZB(uk`C3V(B4u-AI z8eL>PNS3+sCM=})bvY@=rFHh;rFN3%+nf;$h~oquH@7@{ zaM-1s|7j;_Kld?qnVaO~qFiU4tSCQ!`9!8z2;kO=-$Lg>W#ZaHX-0x+O3-f2DQw8q zwY4=OVI-3_%j4(N^DT~tv$Af*>4IWM^RM1dGUm_z@j$#tNwM-H%2~TmRCo9B(IuJT zU*wJI{+)KVuy7nqtm=%+)765G%|#|=!nAO5@N2p=?Cj+~goiymH+bX7*ESn67;sOF z8!;5||Mnw$uA}0a6!IE31tz8~T+Z(-59(O@wov|>eOZeiT7G;!L^Uwl*wm(MVCz5Z%&GluKh^DcD~0TPz1{mw&)0w>Kh%$Uanb0t zJC_b8enq{$?)q-WLrF;q(OC)=D0Tz?>dO0& z@{LPt!%=v0e%{No-(~Zo{5;Km?}vo8w|U&!np950WqxnP-;}K2NJo1z>%*s7$3)Sj zNde1Ju>{d~o+Ob}A;)_V5Guuf_A4@%d%MAFlB=hR9zWU7VF(IuSdWq&y!+&RXK;quPh|MMeGN#PLs6dnK>@ z8Hq13g3$=cNe9L%@g2Oay#E@cU3hwk3;wBRU-*s53sJ&b6_38m@SA$|o=;Qr} zhS}eDIozm(ppJJeDTLqjg)GL|W##30VWtMtJt>b8OzsEK$-Fc@-iPFfr@SlKH(BG& z!`mAEk19naw=`mw@rRZM5`mQ~;kUogX-SYp?2=w7wKc^g@|ORQgA`pH!WrAgxwe;% zYTmsBJB}jimh*k|@&)$Ce7tX01ONNRe?nSrDF5`;+9nvObwNC<(E2~7^~}-lN)a>vkzP8^wE2q>*y|{tX01J3V~w%C;!j;y6}ZL zJPzxB>n(sZ+C==vR{O(%^~vrSVUt;`=?3TKjRv}-$D`yQ51T(2EDrY%FQbX$^ubcI z)`JoH#FlvcuA40myPdh!xA?}JVdF}ouBWEG0cgLm##xiQI}Q|jVpQi|SsU#@#?uh{ zNcN+M6zOc02bH#1g|G!Qcy(p6?PV4`U7K}lehrvLY%vd_=Odqyo6b9)Kl%k;sANgR z=GP--(D=to_+KtZM-Uvo=(&#^gdQqCBA*=#f4#x4;r$8O`+Mju?v8f;`4Qwt+LKO3 zi7$YkXF7i7d^CrrT-ZF$i}1)?NLdH6lvu;<#LrGnJnVEXdEUL?>ZjnUE$;6Qpmxu)EREs5%11JL@yImyNgkW#{v0QBS7=`4Pe62 zh#%D#8&qqr?k9F#lyNHGN*d24JoYTpf9QE!t{&l|UFsHHpJ=__ceukKAPEEmZ8P+w z$a-@yY)$T60fC3&AU}${BQ)~UhS!+aH($+=-o+#(_4AL5;SVsBLLj4-?nl?xPF$0V z^Gb)PBg5SETy6emhCj1rAB4I%zJubT>{pfkmHhFU)$zHLVSrE6pbS)jH~<;%r>9PQO9 z&9(CrO{q(C;;!YQ#VjXXrVwYa66H-VqL7P3$}p#-(?DgYA*Xji;rX1sA2H=ZawVYW z&phlZ9Ygxa=W9Xg=>KMN%zwBE6_HQYw47%q8xTSz^Q!IbfH}w2A3(^#++3q|3+tEB z=ES`-vQN80J*~kU$u#RQ7w{6y71;}k|slIA~m?Eeo#h8<(y4z3YPm(x^^WZ z)>{vE$2Rt}(%zQlZSxUhW>)|B#__SZkF9r6ew>J0e8PG$ghfi}Vu0E1Ka=hn{uC@k z=MfXYeT;YZ0IG8atc0a}Lqm%}Akv(VveN3QlE+MElzt~O_6 zFkE`lh~|M6b-@Pm^&d}9cm*W|#H|fSo1ab6AmUs&L=JJBV{)|E!HgGxY`!9UmT*3=P5WLyp@s_F z9ga&ak<4!Avw86p-NxDXO9&NRBiaVAW%W^I+hv+fs62c3uMxW4tj8~N ze=j{Aj0U16CFz`y_PY?V$w-$^1f{@iS_?aUdJO1FeHzi+fRK!A{{rPo76wv=tWX-q z?)e#;CEOtt&eUY|?noATM0i>r25hVO-#N#U>BrOYnq3qHS$lKDbY+ol z{RR9ME@CHlrU$bYb>w@l$w_){5`2I+4K@IGjfS4g5!?F z5c~OzKmCDOh}ts}`qg3a8dNT)OuFRk1C3J65K>K5AM+QMGfGsW+l5!X{1(DvE-Lq^ znWpG=%_B^AE~+>nafjnsD32J3MD7B*1vK(vmikBD%~$9j|Cubtu(qn%U2i#8d_D3v z6+@NOu7MQY*KyQNDGmo^K3oPJ(7_~*eN*}8MtlxAXQEkYTs1VkFbsg+>E(K+Gr{c{ z!!5=lK)qe6PHG?&!Y^}A`<4p3j( zo8IgWA6B4l#B1t3{7DS!P%UHpX$!uZ5_Jt`^yaQ-e-?4tYjUBJ7pJd==?0DtcSzX> z3Dgs>@4Oh=+SLdMPVqhRQdzi*Z~N2RIp~=GJKlpU8+kDZvT&JX?)i2AX}ilaWs`}hMX5Pkjp`ei^M z%*Ak%p@Ov&ROfDp&;FuX$JX=jsgbDHT<|zW+X~F+p zsCcs}n+UOEd2{nHZojv8DP${dAb` z#ttWfIb4mA^h5Lt{av1=jSx*nTGm9kome9_U{SLmTnf_h7~{)iryBC7Ye9sXosbb*(osRp_Ra8X%VSE+I*)66?Vqp0n7(xGf#nzV_3b`pZf_-p=bi_h8VC`i zOAF|du~mfWNF<*Y0HnxtBT#S3N)=W>p-*Rf_|(0CK#H{b+1c2ut{&bws5w*UCmL4s z#$xRWMcFnElGSjAw$S#N)~QF9=on(Cu&pp6qAge<=_ev@*IOkKd{)E1z&4Y0QePBG zzLd#{5r##8m0c$VCXlm1Zd;BHomHZExCjKvwoUvx0rbs)gFy`O4)DgjG!0r4g-JWI z^zl(Ycq;2o^8uyl7{h*noY0cxIW@cKv15=SH9+bR!=C0zLAvBLp-^h5?StjdY<}b? z>wW4*?r_s>+C>}Ml}G7L2koLnb{tK|EoVxGAEKdjsyM;u#xMOKrX2=3#sb(0I34M* z(jb+Ddk;SVGW*AoXv0G5G4AHG)#B+osCBXRE9-9R1K>stNlQW->|v}M(}Q50Eewyph6I{UsQBepxlwQo zS;2iEYBNR3N93|c44E;_q}kT2zc7Vd=jb-DLUGZCA2nH%aejk|&J)#7iE5t6X&i+o zOMGBh%6MJj6^8{ihuib+4q1uliLeZUxDy0b4Y%V8_G)<@0fvEyQFTtPx_x;>d41Lw z`7entnRLGFr)Ozyz>@vr%{!RbOYqTy?iU~xNhcq%@z1q(M70h|c_KuhFNA_vOA)D7 z#>TGMHgUS<+O6qJDyZz6@4$uer6oT->o!;a6mP7{5k23nn3U`Vp1xO5?f@I^T#%3E z7#UGag1`D<2SnWl*-zv8Jq+w-xr$O88upd-fi0ks%r}U|_1&Bxyj9^h?|QL-4{&s< zbhI-l#Qp4<;XU(PVhq)=G7j=$w*!7DpQ>ibPbc+ByN#lU^SQ+WA-$O+s54Bv?tCcH znFrfuEZMXO*`(+AmxRootij%Dv69a||2NL>`^Wn1B&MU>x zuLgXg-D`f<^p70;Ynj$@9j0)N4Uv&Wx*VaG?1nSQ#;BXdaojmC>~~#K-bQJIW`>mM0K0d1|!@ z{J^#qJt7*qh4uFe?=_N^D0*4Y@*}(t+N>PB$-P^%Kap!nl?2_}9-GEpd#09TKQE)3 zdyN{?_abvpQ+9tb3 zZ8|)hfGV02UbmSq!q?L_OH8tbBb8K)4}-;><_7V6p;@T+sjYbG6}zX+!Lv>iE|AmM z8t1i_puE_A4E|@g2CTl?Z2OIRL6fFeh~q1c+dnmRRjJ?VszxhiZ+|hXqlJIM^UBrc zOfk<5Fb13&>U{vfUyA+(CMxp(@&#$*o^~VI&rV_wMY*=>QEhWC7y$bhY$VV{WdsKD>LW@>#t zy;XcYu-PpYMX{mj{>Q%ugMYW2m%2fh%0n{(%MKIQu>;M0(*;GnGt5TbFu1s~ZNoFjW(a$bT?Q3Bp^(u=*6^s5!i z45jO|$kb)}JVkB&uM!nqf^vUVRd zzdGDeImtu&hZigJi?fpD<;#C~sfvgn%)Q=@`X|6wxOrWVQsw~#JR%mHd5`3(E^!$KM@qbin!BIT;~Fx*$P)T5j^sD}C>V>79!QG6LhK}6 zGZ}iekgT^*CEhwVQF5$gKEw+BItp)veJHSzpqUwvTG_hhZ;|1Aw!=i8?j125Ha+lL0C!?venjDi04rNZBPH^FyTdSQ>9&%fS@Q?PCH1J#{b#-h#aWggIcz zFNH;ZgoR*98(B&FE0Us@KEy5f&7V>7yw?#mMM9k0opkn;$-C}p%8eEUE6 z9u5&HP1lg4`z&7vfH1jJ(N(eVp~W#<%je_a8Njp7(=lw?@>RHrF}|>q=SKKJX`W#c zO-QAj45WBkiTNK80Ntds8u-njXr1gA%{|Osf~4><-yO~lS<0h-TUuD6G(04;XZ_9% ztp}G)Z0P*&=t-#_D%mcBKQoU2PqsFXF195tFosBg$z}y`Qcmn2w>?;UA#)onaCD}E zfB}>)Nnj$)%+4UPq|44G8~YE8-(A##GreE`ZKd6cy{X>~R zM~(yvB>j}K{8-I#kcvC*tPqgoktM_^`LHO=z=G60;Cr3`T3v?!80K|tr1nAs*EbUQ z#u{+e%Wt}=$Rp53Qe|_?$+l1VORlLcO4FP?QU=AGnvz}~t>J6RdCR(t1#%UX)m^2c zYu@!PSVhpMdkKGipdS7oP?Fe#)()IFX342CS+*0Y9v`ueFCIDkGV+Qy>uj3(`YwvP zqy;|9j#~E?aA^nit_qD@t34u@5;5wP0H+CKQYvg*-10T?Q?F`7+^$ppjcFLyft@ix z5*dvDL8p+=uK%Ip9bdG6)E&u?;-~aNc6Bp7dQp_NTpgoM92s?-3hIjy$i3^O{y&u~?g=}6;_Y$xVnZl@A7$^9f zd#esp)HUS1BQWzS@j=PVbw@@pRvELeJ?-=GEVaMPacc2490>vEOx#&i4V7W9qx}Z< zv?|gTt1Vc96Cd(GWnW$Sy^ZMRe7FHk4`xR^iK`rW&_bPqI0C0^TrCE+;Sxh5WpiWu za%zUN;tWymc}7ct4@d?F7+TAZKV?HN*7;q&f))rKH5#Fnc-Q}fk+vQ*_~gplW8oyhFxmY6W_|r`wn#{qzh;Cl_t==@z!cPy4wGd zzN_^hSEEexYA+LGB^Z-8ETWsfQLM?aBiZjS?yHRK94IiLg>Wv@>m$S&Yo zi`XRD@8ZP?=U5F}PjQQJY)kg<+~lQd%D^h_U%_Gu#l9?%!Zy%g1OcJV z`$&`@zdyZ=J_1vhZ4ajA-x7 zeD&nq%tp06^SmB@^K;R{;_!y?r8qz!nhuWF9EqwDqNf_@7>a0QUCy^#1W4TRouKju zO0r>yA`8jgqZuvN1 zScYmUVf*viAvkFdY+z(Q)?c^+qj zf({&?qnyCs}gk?D!lQs9%>-^28>=}x&{@m76$e5@mNQHQ|y%&7QZkAwaB_`>}R>Lu#`s*(X9WNP<#GSuf>TLL}rlZdM3`5?}Lz3*UQ-JL~%_|WCV`&PY_3A;>mWCIY z@}Xd!m&5)+Poqn7&?lM~!~SUh>$vED4M+k1cjyJ9eLZt^llYAvPUPB;HCtz>J`6?f z%ECU^X`A~BDmmDn+>i3vd}C5J7Hy2#WRtRbhzc6^3}-*LrUj8Kb6US~zm204`fEep z_Za!x6KZk$FHHwS(7^+K-921)&#<^=Kz}#=B@NAw<2kzup9iuF=t~rPtr@^_Hgk6N z_fQ7T8~3+Y$Eld3#s335abk#<`yu#0uAUY_vf@DG&WZejB_#9a#G?%) zkRZ)3sQWF1MN%kh;zD)yR5KMtaovwK!*47VgzTRk_KpHg6&tBwZd_Tntiz4j_a^7T zBMvOSUf56>bw^cyjPLpc8uFUNVtb+fg_YJXfDw8WYAAh)N-RbKexK*MN+Skh@b&LZ z1Q2$rj*Bnu>F3U44_2(2G_r|Oh)L&T3)I-A=YQ-$x;ep-!>4H+-ZCPebS#PXi<;qa z`WG59-z~iZF*LIM4``MIO?XY?Nu%0rq5&5ZU*ke8Wcn9U zG{hi~xTmvIito)z3SvKiEpEM8%>bUzl1dN+3qcSW7pajuF3guU!_Br}*xOj?8qKn8 zJ=t8_j!z$^3RHkC&-1Y+_Cj|43A`>Bd}yiz&wf37qfdWVOP`2>^Z&tu_)k)7{_p(% f|I^bmF(R-pAcsD+q&OUe_X%2!|F4DJkhtknVFx#r0TB)@NQ-n!OG};u zhw~nv`+mOb`>yNz>-}T)o|!$dX3d)4teLg;*BYF^ML2bfI-v4h9dddK^1Hg;AKcl+ z`?wpEHEV{ZoEy5oewu4?T@WbG6llINF+Y%=ZW=CDQEE4qG*Z@wq?6;MzBjO%eYx^H zI26nZAho~nA}ymIyFSmD8GgJSJo?CME4X7UG_gy?^RQc2cSu?Ts=LdMtP#EM9Zjo~ zD;F{lOZ^~kau>{d&PTz@N=7h>&QpjWr>5=`Lhm<>#c&X)TDc$+L9qfS#eH&4J{yGH>&D*zrNs0tS zR|hSmXV~puAgd{}O$97X9f-`ay0ZytuJuI~T=6>L1hA%*LGHuN*}(eMs~JIOd1^Ob z_K(yC#)o@v-chLEaG&yvkYcSVVGqQb)bQ{)sOp9it0RLb-DWI!%B!CkCovwM_=V?M zk^zt+u?QG*XF9sK+#8TLHs%tShX1tRgDM&u7u|~82?xaCA{F`A0*7aB(|brTN%R+& zg*rQMkn-2`w9Qigh5bSM)i6~|Y-~5?!|`^X2GGey;5>Jt{q16YZ}#(g&|O-V@8P(6 zB;lQi&xYU5e$w&a-|5O}=k-UUE`?7Hqi+7Lbx~~C{bVU(wE@{-cUoY04$Wd5E%R=k6_vBLnlmtfL`Kb z8Zj2UWRYw{dqv*#x2xx9__s=mi_XHdhllnN-uZ~AI}8s8_FHFmz0)M!SbPuWU)ng^ zp3ZE3z)Jd-AZKc{a0jb@YsO)o^<~Em!XDD8N6t1eF@ZY>L>DzudlMCCMIbPAZ9kN$Hj3E&Jb+g@i-|6&KsdLNl z67TglMaZwIwNnaCl5ki(;_{<}&G@oUa2<#k2yL%R}fjn^XBb%clxd1KzQ#d38K5~D&*>1b{j1#o@hT}9{ z)wMC0f?xxH(9lpG9v)b3E-Pko@Ssp=7V=2p@!gSwT)eQ2BH6s7po@~#;?(}t^(1{n z$Z+m<+=pL|@jcuGGx(Y#V39C3g;+m?4u9(EWI%1}_PA=F2>2eRbh+9Jatm3ZB;I+^ zCh`rZgWDI31nCo@9loycFa+84s@UDGpi$ca>5aH|^b~jstC2N&BCi+6aE|5E3SV1W zDOKVhUyR*rg?28zo#~0l0htR53LJQ0GHB#tE)@OoV}GWwFgRHPVy}9>*_+(%<~DR` z;$nLUACLUd*l4Gj=1mJ)Jt8>PX>fYTKy|v8H2J52_+bXNlm{O()e%cyDWMnWMc{Rb zDccyDI>0K~_dTJFITRPRZ5d35e$kvQgzG@c)EN+k^@Qkec`L$7-UPF5NN^FbT&N<> z?$$804b(33pX&O)Lda|3lePrEpIS5H{ffL!CjCRc@yX)Q2H0?(H37f*%j*B9TvAID zy_t%Zci8doh?O7F&ZVbQ(S9|nCP$!ChA2OYY6hn>({2JzD1$FoB92)f#z@MDqw8(I zyB9uT%~FTP+%7NAQZ>i95s%O84Jv_udohcHPO_hQy+6v_cP9U=0o$Eqy}yN% zyNSVqW#)JWq=k#~+!Bw#ch=_8YD8y%ta!}i_&2@E6#SV9Zl4&+@$LnOcZqi5%Oo}1 z^fB$g8AWw>6}HYD`hN7b&Z3ZhQi0!S;rzdI0weLyl;@`RU_T=WB04`lFuKD+vbna_ zg&%ftI(Cr6fZmxXyyt==Snr5^s=rTqq{_Ti(3}9W0gag}EoTnINa&=WV<6H(r*kte zARyr0))-%nK`>?8r=&Ctq#@Yklb$+kw6q-6`DrkLsPbqs?o2r14sd7qXnhOsrrTvb z+xmbE_wrXMJ(H3-Gn;VmUrQtF8+7$19F()+YEEb@;gH_gdmsYPS$1w?A?!K^ zXsLLLEkBJr`imM75S&N`Od5pYal>N4o5xmpL{ErFa(yo6Gy>AVB+kTC9Gi)uG27c7 zbob~%5(N9paWNLU?fcpluhs1`N0yWcerNiO{%MkK<7x_TTfOMXSm)l#S}LMCt!a{? zgR1uT6||L4D~(fx5DTz(1Y%-hRwH0th}x=+8IdRE&v^Gqy;}VnJPC4_mHfcBWLP$? zY`hPlsApbQ*1Bde#li{ljCDq(5uq}gG#oYtoUO|qb(*!|2$2w7WPa770MvdO@wz4We*=(kI za@S8QOI3pIAJURF(bMnLg2Ro)7BDfB)VqaB(eEx-z@%ED8}CMtA%zp!Ike7jb922m ztE+#S+vfhfKGZbmc<=`c4jX;N$-#D52E2fcb&ptX)91`QfuKOni&bTqJsFkY}`}v-NZE@D(i}bsCtD(0@zS&-3Egskb>T$eZFt$3FJTTce2^ zip#w3BC#~C8_|Ve#2g!&a{2Q=W9{il?nSjM^DuIW{-p5lCICMHpyqn7{gpm zjWiA^-oX^`tZZc)?5Jn>>bMijqDhruZ^ZsKG~@y9T)Pk9&-(im<7RRnox1V81_=)T z(pmrje~34(1b9k+A^Wvk9xP&G9ST9cGcbDdZn-`GkvjldzkmO4=LfQOOA&~5H3hj6 z1mg5-_)j8S;Bzg_vF||?W2M-{!2tyijFcdOzFT=Nkh|;2FaZhYS=i=K>Z!u&Y`v|!yV38T#SIco5%`Fcgdoh*`j`#6LsYXq zJ23=+g0`4c*5FsWg2Go!EKCZc-1qW0R#w;mom1i&@mDRWP+)ai7RrWxP6XQ)3DINw z$M_q4UMZtbW3^s2{44Tpq8@?|p&{6{l(a>zE@W8PkcT}i<-LRfl1z1fuguP_b{YLY zwkS0W-uQdX)38x9;Ow&oFakzraJdjc5SV=kHLA_k!01((5|pPyk+K?}M3YA4XQ?pq zJ`BIc4t{E-W5H6#J(_o-EgsAhaNG9=Q2-rx4Sn%laz;w6ysE65!reTG5#YFkbvI+3 zm3QDxO@W?=GWmY@8@zXqdYI16(Sdh2FC)kPXl^{-k7UFZ7?^m)=^jLEd6v5b!tV#) zWY=8=*N(o%CT~bKKE;OJgR^AZ1n&E%K9GAY_{I8Qx?`ZlSWsQ)A*i4Lxu=~IZ~Hyb zdf*-VfV9&KG-YzO5sa#|Kv8D$%W?HCzB}4DlKayha|l3tVS;Y@fHdp3Fw>5w?16#)e-kO&0w9GgS!z zo<1t}KkB24u&H|_HmTY<(w1~$0Aau>dWe<5`Oy3EF&CiFb21YC%F5dMeJ~sOt*^%S zRJ^>MHs!09R{Av7)e1sJIn)P!a1Hlgh~R_O$&B?h2uYX;u4-V7gOa3JS%{I>>W+K$ zB5$wxo%c0_K0jfDofSw(5i#In6dNq0p1i#kC4kwN@rnV*P^aoL#T%y9=(?HPi5|8Q z?WrU;?7IGF62?5e@~hvVsw&=N1t^vzMLjcE#t!0YHRO1nZoPnG0fW4?yyjJvhKBUE8B-ITY&(_$?Bd(-mZe$JTp!H0yIMekVdCcgZ^HGb6ijEh#_fI)8-{6z{W`tCq%+SJd zI}IS8Pl^ON8(h}-bRHaw_%5X5?W z0-n6k%)J}q2c7N0$8riJa=|ALP3`^`aEdvXcwDGGHmouZLoNKm=(st3s`B&Lbpe+m zl?&BFyiM~|Y|bvF5d#k7Kqu{>ivl*hSXIH4AgRZ2RA|F;?~AQ3t2Pg_7XEwP9b>@U z>A{70xvh_dP@qW)OGjT=@ci8De6pJmXYbMs z0Xl_+p5XXPVVCuclluWabu(l{(w5VX25nADzF9{mvGE&r!EGU|9ZRG1;B5*>e4M1^ zr0cscI_=hwMSO>D|83j-gzslh!~8GGwd?ns*kr}Rgdk>>17hW9#uUFEh3?Y~%?XEx zc-XIttg2~YU+|54{Bd|YaUs^c@^?HvL+7dLM14P+tZ#2_rk?>ipNJUFyfHiC$wk*a z7@ZNe1ca-9;d>P#>_S1I7Ig)3=1w!40ha&tM%W;MJUe&O`Ofwf)dX#gH9FoZ(vF71 zsaJm3xlBGQRrZHW`KD#eQ^Gt>pNBn%@^M1~HjB&yduKkN=_$}cbIabFJdqFt#HU~W z?wM_Jm3fRg^3djPsfw1c#zxzZ$w>wB_f;SubQ@>r+hiy4&`WG>aAK=;W9gk_s#&g> z>0|V#KgT|g%qE^Y1QTgB%+%ToN<4kd`8mAXpRP`qtsy&zA%Rf1c~NS_$_(xPZZ70; zzEe|{?)b~CEo{Jyc2!uB{AZh_@6?Pf9s9kd$S*uU+#s)(VA>H>pMzcVc2a4qV%v*c zVm3=81{UAaB`wg}RD(OqCV@?6l+ysf20T?(c<$tdRpoQ-6Db#he8-3sl>h!K``(c0 z_u=Mw>Z@K`viF23huuc#xtAWSxz%Wb2RT8Ak_#MfyoxoY!F{_)FIH6qHHLV+@0CA_Fg3jh>TOxj zmZBd>M)0a@4?)Z{8G(o{D`C1jc>fo#o$iwfR?!fc3V%7#n4xnwdRubse{=qe-lf^}Uo&YAB@ zMFENppac^V&7qRmx|g}xd3x_(PS(IWHtIr0NiMsxpRw9;!(dwdqwW6J_Z!(!V^+(J`N`h>TVz7V%1^Vi@V&hEk*y}P z!J_2i=)yfBNEBA>l6~N|v1yTz2Umq8QL7NbPhnr68!~!x3+94a3KMMaap zHT(r$jm9evFpdclr$084B?c&|>Ro?)&;q}ly{09#{gvllw9QQc_}gtUN>$9o4t+f> zNHX{5zrH-e2h1AXHC}5-BLh%ev>Qgt@+RgD8z{fZTE!Ay3g3gpm@Dz0hmYj=rC?d` zcf_o$tb^B6O8>@p7_?*U7&`cGe9I07>upJANm+gk9UUUSZlF0=Si34NJG`I|wu2z->>U=Vrd#e za!nPMgbpzKg?#`1eNjaP(a_4Bh#&`^+}pSvSwp@bdp~sbKE~18(m=|3r%_JsCVniN zKAZ3Kf~hiC0Ym;59OYMV573-{nZyfV$Dt;vzPc`Fc-jYMoRX2rz^dZZ8z0Wa3Eq+s zld>IsbG&%lVZ(-`{Z#Ewa@3BZv9Lsu#>U1u4-9)1>BNa`($@DJ2xLu!3L!7Y?woL( zmXP!%-S3dUShkQt{WgjE@EbbraXLoVKu{{`%TcNmu}>)wD%1yNf|@$z1niMF$rVx)8!s;;)fD5G}#=6j6ZOT?E2 zMGj8Rr^d!~aKUOU{@_jO2=6`rcNdPZ;|3|r7s5?NgGUrwJ2vO7Cie%Up-K1eTXbl5 zdw50OapyKQM7}EnJ)Utn$B6wC*l1jQwK+WYgfX3jp@*`rhUi+`lgSC=K*)iY`^RnXyLrR@^6q@A&lLD9@_QiCr8oS z7c}az!RiJ$y9d+wKH>)lq>5`bauGJ=<4d)5}Xb`&eUpGr`9qQFtj~Ld^s=>lag&3jp3S{ z>ocB;*K6SQFu4%NjcWoO+=Q#&k6?N9anJURNN9uFQ}e=@WElSLOdG3!NO(}$9`lD& zH0)%6pTf+WD7>V zTa3a_ovd!x0npADk-+qb(!O>35fQ7=Jx5bMgNG)kM&dO)tR)XhxrD`f<06q4swTV& z>H$GLl^?R8>r$6Rt6b1$=qJMn64GI_dN}8nk@Q7p*P`Cw)@5w0g2~Ojxh?c$?ro%2 zW=nLaV@_S2Fh}3b0Rj5)9;zkV`Zi(D=43do9$*u30DWBREzxEjqr%WmTtIi>@A)}5 zu(~A?t-V)Z&SJq`W)hYCa(KDopGxG`) zi(TC%&fM0@6}*R86pg-cPJI~)8$!HxYS%oaa_G z6UD*(;L&gOwY)FW;Vms`WmArGTe%{(s&9t18E-arUe{=Q1wZ1>6?6*Sd4lz$`cyx* zf+6xK`OMo4u1Br#$8P#soPoq!I{SG#3z?|bBFDZq#Y&%jV)*=vL7!0d7f2No5-{|x zRv6Xq8E+*GeNNZ2Kg9C$I&&e{7ZcKO{vSVn=$JkT@fY0Ot~M}kGEQg$L`8pdy^eEy zvAVv+)mo#yJIltJDD!!=_6hs&$z~cWbJoWHL@d*6e~2V)zJ>nY*}=(8WC8K-UjfYl z$w_r_+Rt*KD3mBD<4_|sa{~vz6UzNpzoCrrI8?F83L13nHJr z46ywI0Vw2fDCC%5NA9Z8(tYZvkLC}tO}IfNC2`QPa+}r?89#dt8G5<*FZWV~EHpm}S@4^}JvY@qdv5-ash~LYQ;PQzQWO;h2S3%Fd=Br-VCh(_ zN^Kn*BEpKJS?<|2l}n|?;Rqg3^@PQ11R1)Lvqh4N3i^gsvDKX=h)0qu>N&mr#wIKm zORhLjW;BhdRsq|@WV3vgF)<{kI}l62d^iE828ggQL=dt^?j#+9nuQ0ugkK9RG6zs1jc zFpyde_41b#6kq6>>{Iz<5vr|2yFJItN$`kP#Q~&-WyNuLDMrU87CdJqv!o=mL?Bsd z-(RuP4o-94i)Xv1*xW`Pxxb%Od21EM)JYT+9@3iB42z7J&dFi^;3*@4%ydF zN|`NXNv%zK%U&R-qMtW$>A0Z@M-;#NX^{#w< zyPJOdY})VTK9DDh4aCZis+2?6E{(s*X)$Szo%wz4cu)wy9$TeRXh-vCAakrMd-r(wrKX@ZU3HZ(L0w(ORa+%qxf4Y{UU zrmO!G+i1%DNJb_zB;HS7KV_;E8QaQUdg9X7{YE|XH%YSK7bwdE=a@F0_AR}p@S4ij z=PsUd!TTs>m(raVVH;?>o6+pb_{rq$G0O)xAWMhW_Male>54=t*-EQd({Wqzd9P>f zj})M@E1t+?X68uuh>G0q9R1+O)QhE=gP#kKtr6|XV!W`9kjH9pIf%{$Nk5<>1axZ8 zAHAJrlOKV4MAjnb&m{nPrBj2f2W7@v`}<6`yadXss>w4JK_gu4MZI>Rf*8A6M0+0y z^}N1{+Pn9fg1w!j!%3rtV_*RS=&UUEANftlcIoi7*I!)YV6K+rE<)`h8;IBwBdQLs z?YtNOa$W^k2J{|3e{6}%Plw;%j}}{F@xqR?WsL5JJc3FDZ$G2*ntbVir-RqYD%_l7 zd}t7mJfYAbRoLzvv?-&E8I*E~svKx#km?TfCKI}qE{|dkK3~FN9RpbM z%Fm*Ys^A&sN9)f8bUwUw+HRqI8?s@1+lD%3X*uf9iMy_gq(4)M!O>`;&BIO*akcTK*L2^~YeTrXX>`)hsY4wIvyX_^Y81kG>uFqoZ?4f37#{9_>Y2Hhbw|Ax3WGAAIpTq+c`%*^#?MMuv!~B z;bY7@BO?ixI{Nz97*Lu}kaq}m42FpXiA3A1)a8TY2033^vrC^emQB{;bDTG8IP8&n zyJ1V@wuTiK5<}o&f4p$1?-c{phH>59ipy8?;d;Gt9ch*<*XN}Cw^k&8)%Qxb<6?+y z;Q3xuyoMQRrmwW=@Yq(X&SH4~v;(la=!0}!cTu`z(0s1BoD{VgKnCK3? zP!;?sLa$>fjN5)gIU;x}8eIAa>K15CDBscnIFf73iY{kY36-^luXqx>!{3no8jSYq zeIXGlEr+~$aQBzFNF_$hT-!zNH3Jk%SQIHau653nWx7{8r?u`Krfz`1tMj%v$8niv z;8gXFva%lLLceg0^LS$0GQX@0&wc-O0l29F{JQDr=x7N>h%PQJ>gaQ#!l^PWuVgsA9I@IunzoI^@^QJl3Jd=lUd}e$2I< z&hzJy6%~BS2~4q94Yax@`VoDsRcjj9{l8LY)+eq@GjY;rR}3qwQCr9@2^=za@V6Hd zxwTj3cIf&J57UB3@!uaP!dc%HYO; z^8?6OAfD9p4D#9w6C2BeShyeT#;}kstxZo-0OKnw)WEw>{hR9f`O9h=4;0AW9D+Qk zvuz^)aQlnl<<(1EA0uHp`6YP}%C`M@SY&^<7-*3vw=L5CGtJlom>usE|N59Yb^Yy@ z3@~Gh5&n53SP@1Bo9y|Hxg=%oq&{C-TwLATBhHg0h#5gu>uR=qZA{ba?4{`VlP4j7 z5gu!++b@Th>r%lyqRt*Aq0C0yf5Os;TU>S*r>dZUqskJ_5=SF|1p=XSo5Z-rH(d-| z%d&%Z=%i(6$ebjU)sQ%%GtRAYs*$Agr$_3q#>{UW=}ug~J~c7~&!En#`0naJfK(eq zhaZ@j;pmZmw}y*5s`;ER!*hTWhn+MrZ)>G;GK>bDvNZmi(LTWQPdly zIB&|BLzmP$!`drK2dD2B?dEB8e2)o;+5+-cU>DFb%uNG^bE3PrEoq+giBX^2g4H8B z*Dtlft*GWH#+ho1S6|k230zLL-C_5d39TWc!2BNi2mWpLiM|QS6`-qh$cf`*EmzKx zn^V>XkGV2gK7UW0d#UzRI-&o`idN)pN&2rFJoB(yRmQq^3z=1=rTHJlR;KnO#{(0t zM_P-0j?Z>%>nvPsAB;K-X?|UmHigQRQKvqW050E79+9>XeX#6tDxwKHg=Lv{rcX-i z2IdorI57aD!9ZQmm_^*ywd@WF1LUO{;3>1s~+nA}zgx0q9S>^R>LWGA3vBsYJ*Xm*-f{o8QlgD6a*UeGChq zf|ND3$PzHuB7zdAQE3m7V>z4j)E? zhK#GqPuM~t6@XPw^jr%M-z79aoURbuZE017BP?aOzSY{+< z1j-{8ysh@FI~d0)&qrLwHzW$mn@9>#L4Oz_B$Gg1>oYWtxzOpWi`_%g+`~hfOIuzk zo#Aw-My9Qdzv(V+UTb^ndC_=JzKptxH+%^*!svUesX4cuMNWB2ilED%p;|~tSOvf) zd}sE<1Z&znzdC&PDek+4m}o<`4n|?uiifD|cm*L?9R)e8%mNU@4kWOW<1uEq5$jsR zqRfnD`z43}8f)?aQ+DbSFy3DN)WwWMYH5}gnE6v7DaML3OoCHjEDDXv$o=i7B$2&ReC(B=Wl+ywH2cDh{F@*Mke3@o z)&WVRSr0m|!v{V*m&|{o~Bm-DcTi^CK z+XTzWrg8IvOa)z~WQ3?(BSYPsT=d?|Z?7x2Q+7)L7|5TUPZd9%Nu99`N?;)Kwv7IY zCs=L$*ShmZ8tg})%)YjpxVpI31D>TJ*4%moWOePFY+l;?E;mU}v{p$MPhj}{0G~k| zlP%imO9^flTqmI zZE-Ob0Nc9h-!m3#=Kg0&?phvkaCm(Lx!P@H*vYq45WXu_h9&`Wl%*KPe-6ldrHRSC zTx@9rfC&8SO#Y$KQG7sZb1Rd-a7$aNPnJ?kZ?yJ%=c4!c*vj^IhV6@+K&(^NVX#bR zk@%eg_P13+t8t*m<)aorEAgSiD4Dq_fG~-!pxXbZA01DWc+HLA+K+Y{ULZtph`TVSt9w_a8=tv zIocCj?MiC3@4oDUII;qQg`s!KqfkUEW>~T4|?PH-Q$8+;!$|GBC%t&Ze zec$hy6(qTim$xqfY-rtqbZmeUGd?#+hrh47> zPV8EM(XOxR;(ahKh&wXtJ1^Xxmq)LH5RiIdE&bB4h15z8s7~9gup|v#P}~Z@BX8|D z-7Mr78&1Pw3a?@l9utF2V$b^X)GK}Owubnnn#%l3zZUU_mrMdm(zdb*U!3tYe-9fl9f4Yg5#dFa;@V{Q#gw1~Su&Z~aA-RJi)c`2*- zd>MchrKE#&G}1I{oMs-yUnq z`Krwd9{1oCO&T6qr!WicSSMm z{f6$u_CF}ib^qK*gkgJl!W+u>*1tG=tQPNleTnhDxwyT&3s@b2+U&brerw#>!^(yp z)iyI7O0l(HSU$Hf2|ol)pJw-EH+}r2F!3ugx#C4U^TgP`w3yIy>%~ujH8}bAU1Mbn zsA@s>4O*{=me$n?&#!dX5hKmCIv9VDcj8U}AEhW;RqTGnfI+Z(Ses;jTBlW9px50- ziDS%$Hmt1r>RwK|2ySKY^8!X%GFG*24k%P}XN49s0d$@{x<5sP={(o8$VEFp3jHL8 zF1%n7?VS1(wLDZT^oOy6U$At6kd;CH#SLg~1&y;>q;ch0o``k)C;T%@82+u#3lW(O z@eA|fj`OK4h{=llD3xKF`E`uM__Mq_t)u!GH$NU?TiA!!8IS|9i$-C50P>wubtrq6 zp6&L&4X!K>`U$0i`> z5Y~~c*n-ATROe^QDGG`ApCK_G-1TDdRoq(H8)r6)*qFdedugOngO$T3w*My2N0sCi z-p~ARx4kdO$Bk$S#D#%IaI~xo%i>6jA2-aLx|N7Q9ynIm&}%kqlwAp*lM|T5ck2!Z z)?c|V2vuN&jH~K9NyCr>sjJH)5}?q&A||u+0cP#w@xXC2wp{Vr0k7ys#|bgw)J=8M zj3O90I!hlic=`FWne!(gQW}~5N1JBWQ~;7Ti6y^qD&QdaH5T;3y{N+JYwvuaJf%0ZGodc(x@b^TvcTafTWysDoCY{lL6XioLQAmDPL%&wP*)*AoJqH3@1+y(2S{25brc5?t-DWO0;|!bfipuai8F1*c2be+jC=Bp=MK`T{ z(3kRH7_t3dUjhQPSv;$6@q(#(lmIX<*NKaFGXAGiiK;EmmG16umY+#LCy3#eaSvPJ z>}?9CY9Lu#*w91lgvyzWkrtTCfAVcbF^+nX=s~6d-+QZi=%g$#TU; zI{v9=Ud|R+-6t);gC&cZ+2~T%1&Hbj$(HQwuWyPF03-=Uy80_bz<{RATZ()tO*zSj zKd;v_X`Vy|vU{F;w1vv+ZT;d)8Xz-6qIOVcLw=r3&H*=S=~)Jjnn*!qveD5yv7sdv^1$)`8i zGAVh}pG=px!{AMsaGpW;xr`iTlo^pTtewE^oPAXUOn` zc$LRYVUdwkfR$Bfxn{OB1tH;m9njo>UjuA==hY#=zI~%_e)bJF7)Zeqhr&!fZV?5K zMi3CTC-$xedx04k|J}DG5l^@&;~>E5Gp>=S;(`%g#l;#{>EOSm&$4-BVB^GUhoP^Z z$_pNb;M3uxnBvO%0-r;B086MziTImEG#k%2{**yqSq$r^{yBv9pmYJ;E z2M42H_Zz_S!fu{4kOYAJKEdmJFzqo4!*k{?jI(e~v-}r~a}x2>XN2AUGM?{(P9O)Z zYEQ6cW5x;bT2HDYbHrM=6DeigAhANU-fBYMVT~J}ZKJt35(k<+pNn&w7;|aRuSaVI za8yZva3sAig`O;+e5+p{&+tDVEPtiFwfC6L`qHzQ{3OB$z)fsclhVF9V@rL?Cdw3F+d z_z=LK#(oM!_Yb@be<_J816;u`bM&$0wX~>{^(**m9*3Hx&3XS@atcRV(=)$6KeI{c zs1(A3y$DAHwBO2Z8K$w4KZju9n+UmXZcz7Br*fJFN~f8Ro@t_kW>WS@3}<$gB~12C zX$y}UIqSo)kQ~2Eg@kmkNzOih^;EE?Uq(1&dVqE||FN|&NYn55YIj>i9mmJ+0 zJT{gHbDNwg8}MI~jEyku>U@(^OW-+QjYWHG3jV?{<}Zr_26J$!=!)wXv8CtveX=iW z^#d;=9zMEGt$+s9k#OEHc%1(+h(C7v;B$ldO7HyS@F+FtW^37P>Q+YI?HfsbAQJxc z5!#$$C?!nrc?Oz4xzt|LPfgor$ii1-@spY!RhyTPkGS5{RC1$jNu%|o#$w)kEg^BM z;SUmn*WaVmdmn>S;h2oo8ul6IS~qJ(=AZQNxJc-V=cSMoDUwx<+rT_QM1NlRm3pQf z%3P_&dNTD{XVj0xY_uS(575arC7J4c#T3j;yWQ!E3kFeUVq`GIH@>MA#R9NNmU_ zwM#d@n08ZphF^O`Fx5JB1G0V8hC`lXXXZ1^@*|Mf!e7ZTqw%;t>O>q78E2Dz^YtL? zKuj^4YOA5KAy!kQZdK;|OWzbliGnbRBT|=j-;)95QP^cDox8^6gU9xjzW$trb#Lrs zWnX~|y_=pGnlWQA`s}(#=vQTK7Ty%6!DR{dZ(kecqGbrybvp%DN&BG&koLzgEZhBcrumH>>*~JQwGMdo1@bLbyCom(Uf>u&Rn|7cv zagUnCVx@)Mog)l?zOlk0iEm4GxSb0pkMP+Rk6L3bz9jZ+9iqkUK<29Vtr|0Y*>4c<4FOk7^({ujg!dIwa9Sj9JgFV#M-~ZQy$veDE z4s!AF#ez}_!NK3${}feI4W4O&_xIYEx&bTCzmWvbii%SP{*%RpQSZ(+cD=Ogi7R{3?`ZX3jK|7C%~Bhg}-L}YKT8S z<2E8&{jwY7@GxWH@3l;Uq-tW$A=t+Gowbce^8!&gpU4DlkM7%P<6B~rqTdo^VMlKE ztMFsX%ATCP3}$~j#b}AstS1yqZyD44=W;Uj_}16v4A8`iVQN3AA9@rD+@pV+hI$hf z#eQL`^(GYDFA#QM_<%Rlh#QjHPr6!AdaOJFWz*a+BeInRdY!_`*x2~^z#p%y@&l3I zA;SKWx17}nQ2uyRs4qp{Yn@mm$<~EX@3aWro-KUJYNFlR!QBx`%KKegDAZKiD{y^< z?G@vvGn=HYMYNC~y4&{M={02S5l-IS=7gHqImU20BS_@#7t9ZRzn3G1-DVihlElUd z1hGV}XB-|9cujb0`AyK@fOwenLmm=~Zd>xoB=ft``7EnRN`FrDvDIZmz2IH5#y01$ z@_@b_gb$-;DJ*Vk(pK1rnX1W+7^3{+#E*J-nXGe>l}#$Z@Tja}au=Ai$#jriYNkGo z`8m1%u0nE9;KRKwI5*s~#-faZ!=(1ZCED-oX40oHoXvFQ{a!Oz*`@uTdYO-a}GJV+b;*XyKTehm12>cJ9gz^z0+1i|3TZABJ>1yxVnXPY5&Ab_W$D> z+RsXpat(?w(tjaw9%=%=s^v~z?e0;J<9nh@{ z<8Tk(N0pS6ROsvLPeqdZI678rc##)QIZhHrQz;U#GfGm1uW_+-Y~&tOQuj5!a0x^` ziFky1FZmSp1dJH04}ff(Qn(hJzd>VTN*AX;7+6EYf^S3zsJz%;Bwbx&yhpwnAh8v0 zP&jUh?8cN_FOGc7o)ECxnNIoq#>C84bg3S9s5i<<#a<)!{KzSpRMc|cpWuY_?d2*w zW{-TA4YsP~C_GM2G~lAUjGZpE;lyNql@xu-CjllWo$v?T6;s(`g|`W@N0Oftzu!1% zyH1W_mmORUl~vy3YbZ2X}r~M${<%%vvK4@Jg>etR%Q0| zFfNv|T4+R8g@C=N^+J>v6Z;J=D*oDo-mShI7~+g1$5M=WV!^T-a?>)aCm(NEsWpc5 z0U>_3V{q-yq2}@(=G(j_cgZmll)9|pWpw99%s!>Oq9WE)EiLXy^5l#Rb-Prc&Km!C z*q-vjO}X3DVLbSOsl}&rtk21tN1)H#vu|EVr#a+-(R|$>vsPzRv|HHuUr^3hVCMJn z_KP_r5^k^1wq-Pj)Ouk5`+4k*%=WiSa5)I0x#T&cL=y1qrQNr4K7CdEWk@|V{Q&Ua z*dCgmvAhDJ3|=SuEb+mCTdttyvYHyzkPz8K7TH)NGVtU&sssJkX8aB{u-Ynq(>>?j zB`n1ugEaZrQ9EI#{C2{zX-LB|w;0RH>UR8ONtmOBOnv2rqds~?DEv9*-$7Q8;ZEco zyx+~L3%~GP%&V}h9Bw^OFokvs=F18#)a()EzfwmJ#ffSl3Ng1wgqg@=sQGh9^w!Zf zlriK3MNH`Ym)kkECL≦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.level.mobs.clone()) { + if (mob instanceof CrossDiedTower) { + mob.die( true ); + } + } + for (Buff buff : hero.buffs()) { + if (buff instanceof CrossTownProc) { + buff.detach(); + } + } + GLog.n(Messages.get(this,"dead")); + } + return true; + } + +} diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/bosses/FireMagicDied.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/bosses/FireMagicDied.java index e7d082cc9..71343c490 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/bosses/FireMagicDied.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/bosses/FireMagicDied.java @@ -6,6 +6,7 @@ import static com.shatteredpixel.shatteredpixeldungeon.levels.ShopBossLevel.CryS import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Badges; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Amok; @@ -21,9 +22,11 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LifeLink; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LockedFloor; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicImmune; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ShopLimitLock; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Bee; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.BlackHost; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.ColdGurad; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.DM100; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Eye; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Monk; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.SRPDICLRPRO; @@ -40,6 +43,7 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.Flare; import com.shatteredpixel.shatteredpixeldungeon.effects.MagicMissile; import com.shatteredpixel.shatteredpixeldungeon.effects.Pushing; import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; +import com.shatteredpixel.shatteredpixeldungeon.effects.TargetedCell; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ElmoParticle; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.EnergyParticle; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.PurpleParticle; @@ -62,6 +66,7 @@ import com.shatteredpixel.shatteredpixeldungeon.tiles.DungeonTilemap; import com.shatteredpixel.shatteredpixeldungeon.ui.BossHealthBar; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.noosa.Camera; +import com.watabou.noosa.Game; import com.watabou.noosa.audio.Music; import com.watabou.noosa.audio.Sample; import com.watabou.noosa.particles.Emitter; @@ -217,6 +222,12 @@ public class FireMagicDied extends Mob implements Callback { private int beamCD = 23; private float summonCooldown = 0; private float abilityCooldown = 6; + + private static final int MIN_ABILITY_CD = 7; + private static final int MAX_ABILITY_CD = 12; + private ArrayList targetedCells = new ArrayList<>(); + private int lastHeroPos; + private static final int MIN_COOLDOWN = 7; private static final int MAX_COOLDOWN = 11; private int summonsMade = 0; @@ -345,7 +356,22 @@ public class FireMagicDied extends Mob implements Callback { @Override public boolean act() { - if (phase == 1 && HP <= 400) { + if (phase == 1 && HP <= 350) { + doYogLasers(); + actScanning(); + if (Dungeon.level.water[pos] && HP < HT) { + HP += healInc; + + if (Dungeon.level.heroFOV[pos]) { + sprite.emitter().burst(Speck.factory(Speck.HEALING), healInc); + } + if (HP * 2 > HT) { + BossHealthBar.bleed(false); + ((FireMagicGirlSprite) sprite).spray(false); + HP = Math.min(HP, HT); + } + } + }else if (phase == 2 && HP <= 300) { if (summonCooldown <= 0 && summonSubject(3)){ summonsMade++; @@ -411,9 +437,9 @@ public class FireMagicDied extends Mob implements Callback { abilityCooldown--; } - } else if (phase == 2){ + } else if (phase == 3){ if (summonSubject(2)) summonsMade++; - } else if (phase == 3 && buffs(FireMagicDied.Summoning.class).size() < 4){ + } else if (phase == 4 && buffs(FireMagicDied.Summoning.class).size() < 4){ actPhaseTwoSummon(); return true; } @@ -437,40 +463,39 @@ public class FireMagicDied extends Mob implements Callback { return super.act(); } private static final String PHASE = "phase"; + private static final String ABILITY_CD = "ability_cd"; + private static final String SUMMON_CD = "summon_cd"; private static final String SUMMONS_MADE = "summons_made"; private int wave=0; + private static final String TARGETED_CELLS = "targeted_cells"; - private static final String SUMMON_CD = "summon_cd"; - private static final String ABILITY_CD = "ability_cd"; - private static final String LAST_ABILITY = "last_ability"; @Override public void storeInBundle(Bundle bundle) { super.storeInBundle(bundle); - bundle.put( PHASE, phase ); - bundle.put( SUMMONS_MADE, summonsMade ); - bundle.put( SUMMON_CD, summonCooldown ); - bundle.put( ABILITY_CD, abilityCooldown ); - bundle.put( LAST_ABILITY, lastAbility ); - bundle.put("wavePhase2", wave); - pumpedUp = bundle.getInt( PUMPEDUP ); - if (state != SLEEPING) BossHealthBar.assignBoss(this); - if ((HP*2 <= HT)) BossHealthBar.bleed(true); + bundle.put(PHASE, phase); - //if check is for pre-0.9.3 saves - healInc = bundle.getInt(HEALINC); - bundle.put( PUMPEDUP , pumpedUp ); - bundle.put( HEALINC, healInc ); + bundle.put(ABILITY_CD, abilityCooldown); + bundle.put(SUMMON_CD, summonCooldown); + + int[] bundleArr = new int[targetedCells.size()]; + for (int i = 0; i < targetedCells.size(); i++){ + bundleArr[i] = targetedCells.get(i); + } + bundle.put(TARGETED_CELLS, bundleArr); } @Override public void restoreFromBundle(Bundle bundle) { super.restoreFromBundle(bundle); - phase = bundle.getInt( PHASE ); - summonsMade = bundle.getInt( SUMMONS_MADE ); - summonCooldown = bundle.getFloat( SUMMON_CD ); - abilityCooldown = bundle.getFloat( ABILITY_CD ); - lastAbility = bundle.getInt( LAST_ABILITY ); - wave = bundle.getInt("wavePhase2"); + phase = bundle.getInt(PHASE); + if (phase != 0) BossHealthBar.assignBoss(this); + + abilityCooldown = bundle.getFloat(ABILITY_CD); + summonCooldown = bundle.getFloat(SUMMON_CD); + + for (int i : bundle.getIntArray(TARGETED_CELLS)){ + targetedCells.add(i); + } } @Override @@ -677,6 +702,7 @@ public class FireMagicDied extends Mob implements Callback { } //properties.add(Property.IMMOVABLE); ScrollOfTeleportation.appear(this, ShopBossLevel.throneling); + doYogLasers(); sprite.centerEmitter().start( Speck.factory( Speck.SCREAM ), 0.4f, 2 ); Sample.INSTANCE.play( Assets.Sounds.CHALLENGE ); phase = 2; @@ -715,7 +741,8 @@ public class FireMagicDied extends Mob implements Callback { beamCD = 40 + 8 - (phase == 10 ? 38 : 0); sprite.showStatus(0xff0000, Messages.get(this, "dead")); - } else if (phase == 3 && preHP > 50 && HP <= 50){ + } else if (phase == 3 && preHP > 80 && HP <= 80){ + doYogLasers(); yell( Messages.get(this, "losing") ); } @@ -766,6 +793,7 @@ public class FireMagicDied extends Mob implements Callback { public void notice() { super.notice(); BossHealthBar.assignBoss(this); + ShatteredPixelDungeon.seamlessResetScene(); Music.INSTANCE.play(Assets.BGM_FRBOSS, true); yell( Messages.get(this, "notice") ); //summon(); @@ -1111,7 +1139,73 @@ public class FireMagicDied extends Mob implements Callback { } } - //第四阶段 + //Next Level 4 + public void doYogLasers(){ + boolean terrainAffected = false; + HashSet affected = new HashSet<>(); + //delay fire on a rooted hero + if (!enemy.rooted) { + for (int i : targetedCells) { + Ballistica b = new Ballistica(i, lastHeroPos, Ballistica.WONT_STOP); + //shoot beams + sprite.parent.add(new Beam.DeathRayS(DungeonTilemap.raisedTileCenterToWorld(i), + DungeonTilemap.raisedTileCenterToWorld(b.collisionPos))); + for (int p : b.path) { + Char ch = Actor.findChar(p); + if (ch != null && (ch.alignment != alignment || ch instanceof Bee)) { + affected.add(ch); + } + if (Dungeon.level.flamable[p]) { + Dungeon.level.destroy(p); + GameScene.updateMap(p); + terrainAffected = true; + } + } + } + if (terrainAffected) { + Dungeon.observe(); + } + for (Char ch : affected) { + ch.damage(Random.NormalIntRange(60, 121), new Eye.DeathGaze()); + + if (Dungeon.level.heroFOV[pos]) { + ch.sprite.flash(); + CellEmitter.center(pos).burst(Speck.factory(Speck.COIN), Random.IntRange(2, 3)); + } + if (!ch.isAlive() && ch == Dungeon.hero) { + Dungeon.fail(getClass()); + GLog.n(Messages.get(Char.class, "kill", name())); + } + } + targetedCells.clear(); + } + + if (abilityCooldown <= 0 && HP < HT*0.8f){ + lastHeroPos = enemy.pos; + + int beams = (int) (4 + (HP * 1.0f / HT)*4); + for (int i = 0; i < beams; i++){ + int randompos = Random.Int(Dungeon.level.width()) + Dungeon.level.width()*2; + targetedCells.add(randompos); + } + + for (int i : targetedCells){ + Ballistica b = new Ballistica(i, Dungeon.hero.pos, Ballistica.WONT_STOP); + for (int p : b.path){ + Game.scene().addToFront(new TargetedCell(p, 0xFF0000)); + } + } + + spend(TICK*1.5f); + Dungeon.hero.interrupt(); + + abilityCooldown += Random.NormalFloat(MIN_ABILITY_CD - 2*(1 - (HP * 1f / HT)), MAX_ABILITY_CD - 5*(1 - (HP * 1f / HT))); + } else { + spend(TICK); + } + if (abilityCooldown > 0) abilityCooldown--; + } + @Override public void move(int step) { @@ -1237,11 +1331,11 @@ public class FireMagicDied extends Mob implements Callback { public void detach() { super.detach(); for (Mob m : Dungeon.level.mobs.toArray(new Mob[0])){ - if (m instanceof FireMagicDied ){ - m.damage(10, this); - } - } + if (m instanceof FireMagicDied ){ + m.damage(10, this); + } } + } } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/NullDied.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/NullDied.java index ad07380c5..33637b6b7 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/NullDied.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/NullDied.java @@ -33,7 +33,7 @@ public class NullDied extends NTNPC { public void flee() { destroy(); Dungeon.level.seal(); - GameScene.flash(0x8000FFFF); + GameScene.flash(0x80FF0000); sprite.killAndErase(); CellEmitter.get( pos ).burst(SnowParticle.FACTORY, 6 ); CellEmitter.get( pos ).burst(EnergyParticle.FACTORY, 6 ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/NullDiedTO.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/NullDiedTO.java index 7fc00ac04..7f3e11e57 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/NullDiedTO.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/NullDiedTO.java @@ -2,6 +2,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.EnergyParticle; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/CloakOfShadows.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/CloakOfShadows.java index 2246a938f..b4407d658 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/CloakOfShadows.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/CloakOfShadows.java @@ -146,7 +146,7 @@ public class CloakOfShadows extends Artifact { BloodBat bat = new BloodBat(); bat.pos = respawnPoints.get(Random.index( respawnPoints )); bat.HP = bat.HT = 18 + BloodBat.level * 2; - ((BloodBat) bat).defenseSkill = 4 + BloodBat.level*2; + bat.defenseSkill = 4 + BloodBat.level*2; bat.state = bat.WANDERING; GameScene.add(bat); bat.sprite.emitter().burst(Speck.factory(Speck.STAR), 10); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/GoldIron.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/GoldIron.java new file mode 100644 index 000000000..cb32e15de --- /dev/null +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/GoldIron.java @@ -0,0 +1,435 @@ +package com.shatteredpixel.shatteredpixeldungeon.items.artifacts; + +import com.shatteredpixel.shatteredpixeldungeon.Assets; +import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.actors.Char; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Hunger; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LockedFloor; +import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; +import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; +import com.shatteredpixel.shatteredpixeldungeon.items.Item; +import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfEnergy; +import com.shatteredpixel.shatteredpixeldungeon.levels.traps.Trap; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; +import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; +import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; +import com.shatteredpixel.shatteredpixeldungeon.windows.WndOptions; +import com.watabou.noosa.audio.Sample; +import com.watabou.noosa.particles.Emitter; +import com.watabou.utils.Bundle; +import com.watabou.utils.Random; + +import java.util.ArrayList; + +public class GoldIron extends Artifact { + + { + image = ItemSpriteSheet.Gold_Iron; + + levelCap = 5; + + charge = 5+level(); + partialCharge = 0; + chargeCap = 5+level(); + + defaultAction = AC_ACTIVATE; + } + + public static final String AC_ACTIVATE = "ACTIVATE"; + + //keeps track of generated sandbags. + public int sandBags = 0; + + @Override + public ArrayList actions(Hero hero ) { + ArrayList actions = super.actions( hero ); + if (isEquipped( hero ) && !cursed && (charge > 0 || activeBuff != null)) { + actions.add(AC_ACTIVATE); + } + return actions; + } + + @Override + public void execute( Hero hero, String action ) { + + super.execute(hero, action); + + if (action.equals(AC_ACTIVATE)){ + + if (!isEquipped( hero )) GLog.i( Messages.get(Artifact.class, "need_to_equip") ); + else if (activeBuff != null) { + if (activeBuff instanceof GoldIron.timeStasis) { //do nothing + } else { + activeBuff.detach(); + GLog.i( Messages.get(this, "deactivate") ); + } + } else if (charge <= 0) GLog.i( Messages.get(this, "no_charge") ); + else if (cursed) GLog.i( Messages.get(this, "cursed") ); + else GameScene.show( + new WndOptions(new ItemSprite(this), + Messages.titleCase(name()), + Messages.get(this, "prompt"), + Messages.get(this, "stasis"), + Messages.get(this, "freeze")) { + @Override + protected void onSelect(int index) { + if (index == 0) { + GLog.i( Messages.get(GoldIron.class, "onstasis") ); + GameScene.flash(0x80FFFFFF); + Sample.INSTANCE.play(Assets.Sounds.TELEPORT); + + activeBuff = new GoldIron.timeStasis(); + Talent.onArtifactUsed(Dungeon.hero); + activeBuff.attachTo(Dungeon.hero); + } else if (index == 1) { + GLog.i( Messages.get(GoldIron.class, "onfreeze") ); + GameScene.flash(0x80FFFFFF); + Sample.INSTANCE.play(Assets.Sounds.TELEPORT); + + activeBuff = new GoldIron.timeFreeze(); + Talent.onArtifactUsed(Dungeon.hero); + activeBuff.attachTo(Dungeon.hero); + ((GoldIron.timeFreeze)activeBuff).processTime(0f); + } + } + } + ); + } + } + + @Override + public void activate(Char ch) { + super.activate(ch); + if (activeBuff != null) + activeBuff.attachTo(ch); + } + + @Override + public boolean doUnequip(Hero hero, boolean collect, boolean single) { + if (super.doUnequip(hero, collect, single)){ + if (activeBuff != null){ + activeBuff.detach(); + activeBuff = null; + } + return true; + } else + return false; + } + + @Override + protected ArtifactBuff passiveBuff() { + return new GoldIron.hourglassRecharge(); + } + + @Override + public void charge(Hero target, float amount) { + if (charge < chargeCap){ + partialCharge += 0.25f*amount; + if (partialCharge >= 1){ + partialCharge--; + charge++; + updateQuickslot(); + } + } + } + + @Override + public Item upgrade() { + chargeCap+= 1; + + //for artifact transmutation. + while (level()+1 > sandBags) + sandBags ++; + + return super.upgrade(); + } + + @Override + public String desc() { + String desc = super.desc(); + + if (isEquipped( Dungeon.hero )){ + if (!cursed) { + if (level() < levelCap ) + desc += "\n\n" + Messages.get(this, "desc_hint"); + + } else + desc += "\n\n" + Messages.get(this, "desc_cursed"); + } + return desc; + } + + + private static final String SANDBAGS = "sandbags"; + private static final String BUFF = "buff"; + + @Override + public void storeInBundle( Bundle bundle ) { + super.storeInBundle(bundle); + bundle.put( SANDBAGS, sandBags ); + + if (activeBuff != null) + bundle.put( BUFF , activeBuff ); + } + + @Override + public void restoreFromBundle( Bundle bundle ) { + super.restoreFromBundle(bundle); + sandBags = bundle.getInt( SANDBAGS ); + + //these buffs belong to hourglass, need to handle unbundling within the hourglass class. + if (bundle.contains( BUFF )){ + Bundle buffBundle = bundle.getBundle( BUFF ); + + if (buffBundle.contains( GoldIron.timeFreeze.PRESSES )) + activeBuff = new GoldIron.timeFreeze(); + else + activeBuff = new GoldIron.timeStasis(); + + activeBuff.restoreFromBundle(buffBundle); + } + } + + public class hourglassRecharge extends ArtifactBuff { + @Override + public boolean act() { + + LockedFloor lock = target.buff(LockedFloor.class); + if (charge < chargeCap && !cursed && (lock == null || lock.regenOn())) { + //90 turns to charge at full, 60 turns to charge at 0/10 + float chargeGain = 1 / (90f - (chargeCap - charge)*3f); + chargeGain *= RingOfEnergy.artifactChargeMultiplier(target); + partialCharge += chargeGain; + + if (partialCharge >= 1) { + partialCharge --; + charge ++; + + if (charge == chargeCap){ + partialCharge = 0; + } + } + } else if (cursed && Random.Int(10) == 0) + ((Hero) target).spend( TICK ); + + updateQuickslot(); + + spend( TICK ); + + return true; + } + } + + public class timeStasis extends ArtifactBuff { + + { + type = buffType.POSITIVE; + actPriority = BUFF_PRIO-3; //acts after all other buffs, so they are prevented + } + + @Override + public boolean attachTo(Char target) { + + if (super.attachTo(target)) { + + Invisibility.dispel(); + + int usedCharge = Math.min(charge, 2); + //buffs always act last, so the stasis buff should end a turn early. + spend(5*usedCharge); + + //shouldn't punish the player for going into stasis frequently + Hunger hunger = Buff.affect(target, Hunger.class); + if (hunger != null && !hunger.isStarving()) { + hunger.satisfy(5 * usedCharge); + } + + charge -= usedCharge; + + target.invisible++; + target.paralysed++; + target.next(); + + updateQuickslot(); + + if (Dungeon.hero != null) { + Dungeon.observe(); + } + + return true; + } else { + return false; + } + } + + @Override + public boolean act() { + detach(); + return true; + } + + @Override + public void detach() { + if (target.invisible > 0) target.invisible--; + if (target.paralysed > 0) target.paralysed--; + super.detach(); + activeBuff = null; + Dungeon.observe(); + } + + @Override + public void fx(boolean on) { + if (on) target.sprite.add( CharSprite.State.INVISIBLE ); + else if (target.invisible == 0) target.sprite.remove( CharSprite.State.INVISIBLE ); + } + } + + public class timeFreeze extends ArtifactBuff { + + { + type = buffType.POSITIVE; + } + + float turnsToCost = 0f; + + ArrayList presses = new ArrayList<>(); + + public void processTime(float time){ + turnsToCost -= time; + + //use 1/1,000 to account for rounding errors + while (turnsToCost < -0.001f){ + turnsToCost += 2f; + charge --; + } + + updateQuickslot(); + + if (charge < 0){ + charge = 0; + detach(); + } + + } + + public void setDelayedPress(int cell){ + if (!presses.contains(cell)) + presses.add(cell); + } + + public void triggerPresses(){ + for (int cell : presses) + Dungeon.level.pressCell(cell); + + presses = new ArrayList<>(); + } + + public void disarmPressedTraps(){ + for (int cell : presses){ + Trap t = Dungeon.level.traps.get(cell); + if (t != null && t.disarmedByActivation) t.disarm(); + } + + presses = new ArrayList<>(); + } + + @Override + public void detach(){ + updateQuickslot(); + super.detach(); + activeBuff = null; + triggerPresses(); + target.next(); + } + + @Override + public void fx(boolean on) { + Emitter.freezeEmitters = on; + if (on){ + for (Mob mob : Dungeon.level.mobs.toArray(new Mob[0])) { + if (mob.sprite != null) mob.sprite.add(CharSprite.State.PARALYSED); + } + } else { + for (Mob mob : Dungeon.level.mobs.toArray(new Mob[0])) { + if (mob.paralysed <= 0) mob.sprite.remove(CharSprite.State.PARALYSED); + } + } + } + + private static final String PRESSES = "presses"; + private static final String TURNSTOCOST = "turnsToCost"; + + @Override + public void storeInBundle(Bundle bundle) { + super.storeInBundle(bundle); + + int[] values = new int[presses.size()]; + for (int i = 0; i < values.length; i ++) + values[i] = presses.get(i); + bundle.put( PRESSES , values ); + + bundle.put( TURNSTOCOST , turnsToCost); + } + + @Override + public void restoreFromBundle(Bundle bundle) { + super.restoreFromBundle(bundle); + + int[] values = bundle.getIntArray( PRESSES ); + for (int value : values) + presses.add(value); + + turnsToCost = bundle.getFloat( TURNSTOCOST ); + } + } + + public static class sandBag extends Item { + + { + image = ItemSpriteSheet.SANDBAG; + } + + @Override + public boolean doPickUp(Hero hero, int pos) { + GoldIron hourglass = hero.belongings.getItem( GoldIron.class ); + if (hourglass != null && !hourglass.cursed) { + hourglass.upgrade(); + Sample.INSTANCE.play( Assets.Sounds.DEWDROP ); + if (hourglass.level() == hourglass.levelCap) + GLog.p( Messages.get(this, "maxlevel") ); + else + GLog.i( Messages.get(this, "levelup") ); + GameScene.pickUp(this, pos); + hero.spendAndNext(TIME_TO_PICK_UP); + return true; + } else { + GLog.w( Messages.get(this, "no_hourglass") ); + return false; + } + } + + @Override + public int value() { + return 20; + } + + @Override + public boolean isUpgradable() { + return false; + } + + @Override + public boolean isIdentified() { + return true; + } + } + + +} + diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Bomb.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Bomb.java index c0dfccc76..dea3fbc3b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Bomb.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Bomb.java @@ -61,7 +61,7 @@ import java.util.HashMap; import java.util.LinkedHashMap; public class Bomb extends Item { - + { image = ItemSpriteSheet.BOMB; @@ -74,7 +74,7 @@ public class Bomb extends Item { public Fuse fuse; //FIXME using a static variable for this is kinda gross, should be a better way - private static boolean lightingFuse = false; + protected static boolean lightingFuse = false; private static final String AC_LIGHTTHROW = "LIGHTTHROW"; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/LaserPython.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/LaserPython.java new file mode 100644 index 000000000..46186c1d5 --- /dev/null +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/LaserPython.java @@ -0,0 +1,51 @@ +package com.shatteredpixel.shatteredpixeldungeon.items.bombs; + +import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero; + +import com.shatteredpixel.shatteredpixeldungeon.Assets; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.CrossTownProc; +import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.bosses.CrossDiedTower; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; +import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; +import com.watabou.noosa.audio.Sample; + +public class LaserPython extends Bomb { + + { + image = ItemSpriteSheet.LASERPYTHON; + } + + @Override + public void explode(int cell) { + super.explode(cell); + CrossDiedTower csp = new CrossDiedTower(); + csp.pos = cell; + GameScene.add(csp); + Buff.append(hero, CrossTownProc.class).towerPosLing = cell; + + Sample.INSTANCE.play(Assets.Sounds.BURNING); + } + + @Override + public boolean doPickUp(Hero hero, int pos) { + GLog.w( Messages.get(this, "didnot_pick") ); + return false; + } + + @Override + public ItemSprite.Glowing glowing() { + return fuse != null ? new ItemSprite.Glowing( 0x268065, 0.6f) : null; + } + + @Override + public int value() { + //prices of ingredients + return quantity * (20 + 30); + } +} + diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/quest/GoldBAo.smali b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/quest/GoldBAo.smali new file mode 100644 index 000000000..8ebb69a4e --- /dev/null +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/quest/GoldBAo.smali @@ -0,0 +1,63 @@ +.class public Lcom/shatteredpixel/shatteredpixeldungeon/items/quest/GoldBAo; +.super Lcom/shatteredpixel/shatteredpixeldungeon/items/Item; +.source "GoldBAo.java" + + +# direct methods +.method public constructor ()V + .registers 2 + + .prologue + .line 28 + invoke-direct {p0}, Lcom/shatteredpixel/shatteredpixeldungeon/items/Item;->()V + + .line 31 + sget v0, Lcom/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet;->DG21:I + + iput v0, p0, Lcom/shatteredpixel/shatteredpixeldungeon/items/quest/GoldBAo;->image:I + + .line 32 + return-void +.end method + + +# virtual methods +.method public isIdentified()Z + .registers 2 + + .prologue + .line 41 + const/4 v0, 0x1 + + return v0 +.end method + +.method public isUpgradable()Z + .registers 2 + + .prologue + .line 36 + const/4 v0, 0x0 + + return v0 +.end method + +.method public value()I + .registers 4 + + .prologue + .line 45 + iget v0, p0, Lcom/shatteredpixel/shatteredpixeldungeon/items/quest/GoldBAo;->quantity:I + + const/16 v1, 0x9c4 + + const/16 v2, 0x157c + + invoke-static {v1, v2}, Lcom/watabou/utils/Random;->Int(II)I + + move-result v1 + + mul-int/2addr v0, v1 + + return v0 +.end method diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfRemoveCurse.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfRemoveCurse.java index aa68fef38..afe45ca09 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfRemoveCurse.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfRemoveCurse.java @@ -21,7 +21,8 @@ package com.shatteredpixel.shatteredpixeldungeon.items.scrolls; -import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero; + import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Degrade; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Belongings; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; @@ -32,6 +33,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor; import com.shatteredpixel.shatteredpixeldungeon.items.wands.Wand; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon; +import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.EndingBlade; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; @@ -49,7 +51,7 @@ public class ScrollOfRemoveCurse extends InventoryScroll { } public static boolean uncursable( Item item ){ - if (item.isEquipped(Dungeon.hero) && Dungeon.hero.buff(Degrade.class) != null) { + if (item.isEquipped(hero) && hero.buff(Degrade.class) != null) { return true; } if ((item instanceof EquipableItem || item instanceof Wand) && ((!item.isIdentified() && !item.cursedKnown) || item.cursed)){ return true; @@ -64,7 +66,12 @@ public class ScrollOfRemoveCurse extends InventoryScroll { @Override protected void onItemSelected(Item item) { - new Flare( 6, 32 ).show( curUser.sprite, 2f ) ; + + if(item instanceof EndingBlade) { + new Flare( 6, 32 ).color( 0xff0000, true ).show( curUser.sprite, 2f ); + } else { + new Flare(6, 32).show(curUser.sprite, 2f); + } boolean procced = uncurse( curUser, item ); @@ -75,6 +82,8 @@ public class ScrollOfRemoveCurse extends InventoryScroll { if (procced) { GLog.p( Messages.get(this, "cleansed") ); + } else if(item instanceof EndingBlade) { + GLog.n(Messages.get(ScrollOfRemoveCurse.class, "strmagic")); } else { GLog.i( Messages.get(this, "not_cleansed") ); } @@ -86,9 +95,13 @@ public class ScrollOfRemoveCurse extends InventoryScroll { for (Item item : items) { if (item != null) { item.cursedKnown = true; - if (item.cursed) { - procced = true; - item.cursed = false; + if (item instanceof EndingBlade) { + item.cursed = true; + } else { + if (item.cursed) { + procced = true; + item.cursed = false; + } } } if (item instanceof Weapon){ @@ -109,7 +122,7 @@ public class ScrollOfRemoveCurse extends InventoryScroll { ((Wand) item).updateLevel(); } } - + if (procced && hero != null) { hero.sprite.emitter().start( ShadowParticle.UP, 0.05f, 10 ); hero.updateHT( false ); //for ring of might diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/gun/coming soon b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/gun/coming soon new file mode 100644 index 000000000..e69de29bb diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/EndingBlade.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/EndingBlade.java index 1ed1a85de..31729db21 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/EndingBlade.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/EndingBlade.java @@ -1,54 +1,185 @@ package com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee; -import com.shatteredpixel.shatteredpixeldungeon.Badges; +import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; -import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ShadowParticle; +import com.shatteredpixel.shatteredpixeldungeon.items.bombs.LaserPython; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon; -import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Grim; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; -import com.watabou.utils.Random; +import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; +import com.watabou.utils.Bundle; -public class EndingBlade extends MeleeWeapon{ +import java.util.ArrayList; + +public class EndingBlade extends Weapon { { image = ItemSpriteSheet.ENDDIED; tier = 4; - DLY = 2f; + cursed = true; } + //三大基础静态固定字节 + public static final String AC_LASERCRYSTAL = "lastcrystal"; + public static final String AC_DIEDGHOST = "diedghost"; + public static final String AC_HEALRESET = "healreset"; + + @Override + public ArrayList actions(Hero hero ) { + ArrayList actions = super.actions( hero ); + if(isEquipped( hero )) { + //激光晶柱 + actions.add(AC_LASERCRYSTAL); + //亡灵宣告 + actions.add(AC_DIEDGHOST); + //再生之力 + actions.add(AC_HEALRESET); + + } + return actions; + } + + public int fireenergy; + + private boolean firstx=true; + + private static final String FIRST = "first"; + + @Override + public void storeInBundle(Bundle bundle) { + super.storeInBundle(bundle); + bundle.put(FIRST, firstx); + } + + @Override + public void restoreFromBundle(Bundle bundle) { + super.restoreFromBundle(bundle); + firstx = bundle.getBoolean(FIRST); + } + + public String desc() { + return Messages.get(this, "desc")+"\n\n"+fireenergy; + } + + //每100点浊焰能量自动升级 + @Override + public int level() { + return fireenergy/100; + } + + public void execute( Hero hero, String action ) { + super.execute( hero, action ); + + switch (action) { + case AC_LASERCRYSTAL: + if(level >= 4 && firstx){ + firstx = false; + new LaserPython().quantity(1).identify().collect(); + GLog.n("你突然感觉你的背包鼓鼓的……"); + } else if(!firstx) { + GLog.n("你尚未使用激光晶柱,无法继续使用"); + } else { + GLog.n("等级不足"); + } + break; + case AC_DIEDGHOST: + GLog.p("2"); + break; + case AC_HEALRESET: + GLog.w("3"); + break; + } + } + + + + @Override public int STRReq(int C) { - return 25; - }//力量需求 - - public int proc(Weapon weapon, Char attacker, Char defender, int damage ) { - - int enemyHealth = defender.HP - damage; - if (enemyHealth <= 0) return damage; - - float maxChance = 0.5f; - float chance = maxChance; - - if (Random.Float() < chance) { - - defender.damage( defender.HP, this ); - defender.sprite.emitter().burst( ShadowParticle.UP, 5 ); - - if (!defender.isAlive() && attacker instanceof Hero - //this prevents unstable from triggering grim achievement - && weapon.hasEnchant(Grim.class, attacker)) { - Badges.validateGrimWeapon(); - } + return 15+level; + } + public int proc(Char attacker, Char defender, int damage ) { + //常规加+1浊焰能量 + ++this.fireenergy; + if(level >= 10){ + fireenergy += 0; + //武器最高级 + } else if(defender.properties().contains(Char.Property.BOSS) && defender.HP <= damage){ + //目标Boss血量小于实际伤害判定为死亡,+20浊焰能量 + this.fireenergy+=20; + } else if(defender.properties().contains(Char.Property.MINIBOSS) && defender.HP <= damage){ + //目标迷你Boss血量小于实际伤害判定为死亡,+10浊焰能量 + this.fireenergy+=10; + } else if (defender.HP <= damage){ + //目标血量小于实际伤害判定为死亡,+5浊焰能量 + this.fireenergy+=5; } - return damage; + return super.proc(attacker, defender, damage); + + } @Override - public String statsInfo(){ - return Messages.get(EndingBlade.class,"stats_desc"); - }//添加新文本 + public boolean isUpgradable() { + return false; + } + public int tier; + + @Override + public String info() { + + String info = desc(); + + if (levelKnown) { + info += "\n\n" + Messages.get(MeleeWeapon.class, "stats_known", tier, augment.damageFactor(min()), augment.damageFactor(max()), STRReq()); + if (STRReq() > Dungeon.hero.STR()) { + info += " " + Messages.get(Weapon.class, "too_heavy"); + } else if (Dungeon.hero.STR() > STRReq()){ + info += " " + Messages.get(Weapon.class, "excess_str", Dungeon.hero.STR() - STRReq()); + } + } else { + info += "\n\n" + Messages.get(MeleeWeapon.class, "stats_unknown", tier, min(0), max(0), STRReq(0)); + if (STRReq(0) > Dungeon.hero.STR()) { + info += " " + Messages.get(MeleeWeapon.class, "probably_too_heavy"); + } + } + + switch (augment) { + case SPEED: + info += " " + Messages.get(Weapon.class, "faster"); + break; + case DAMAGE: + info += " " + Messages.get(Weapon.class, "stronger"); + break; + case NONE: + } + + if (enchantment != null && (cursedKnown || !enchantment.curse())){ + info += "\n\n" + Messages.get(Weapon.class, "enchanted", enchantment.name()); + info += " " + Messages.get(enchantment, "desc"); + } + + if (cursed && isEquipped( Dungeon.hero )) { + info += "\n\n" + Messages.get(Weapon.class, "cursed_worn"); + } else if (cursedKnown && cursed) { + info += "\n\n" + Messages.get(Weapon.class, "cursed"); + } else if (!isIdentified() && cursedKnown){ + info += "\n\n" + Messages.get(Weapon.class, "not_cursed"); + } + + return info; + } + + @Override + public int min(int lvl) { + return 10; + } + + @Override + public int max(int lvl) { + return 15; + } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/LockSword.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/LockSword.java index 6d0e29b63..eccfd8bcb 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/LockSword.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/LockSword.java @@ -13,7 +13,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.RandomBuff; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Unstable; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; -import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.utils.Bundle; public class LockSword extends MeleeWeapon { @@ -34,7 +33,7 @@ public class LockSword extends MeleeWeapon { public int image() { if (this.level() == 3 && Dungeon.hero.buff(RandomBuff.class) != null){ - GLog.n("谢谢你为我升级……"); + //GLog.n("谢谢你为我升级……"); for (Buff buff : hero.buffs()) { if (buff instanceof RandomBuff) { buff.detach(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/ShopBossLevel.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/ShopBossLevel.java index fb5407ce8..557c5f3c2 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/ShopBossLevel.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/ShopBossLevel.java @@ -8,6 +8,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LockedFloor; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.bosses.CrystalDiedTower; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.bosses.FireMagicDied; @@ -273,11 +274,19 @@ public class ShopBossLevel extends Level { } public String tilesTex() { - return Assets.Environment.TILES_COLD; + if (Dungeon.hero.buff(LockedFloor.class)!=null) { + return Assets.Environment.TILES_DIED; + } else { + return Assets.Environment.TILES_COLD; + } } public String waterTex() { - return Assets.Environment.WATER_COLD; + if (Dungeon.hero.buff(LockedFloor.class)!=null) { + return Assets.Environment.WATER_HALLS; + } else { + return Assets.Environment.WATER_COLD; + } } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/features/Chasm.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/features/Chasm.java index 0b8a1222d..3da47cded 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/features/Chasm.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/features/Chasm.java @@ -27,8 +27,10 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Bleeding; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Cripple; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.CrossTownProc; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.bosses.CrossDiedTower; import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.TimekeepersHourglass; import com.shatteredpixel.shatteredpixeldungeon.items.spells.FeatherFall; @@ -70,6 +72,16 @@ public class Chasm implements Hero.Doom { if (index == 0) { if (Dungeon.hero.pos == heroPos) { jumpConfirmed = true; + for (Buff buff : hero.buffs()) { + if (buff instanceof CrossTownProc) { + buff.detach(); + } + } + for (Mob mob : (Iterable)Dungeon.level.mobs.clone()) { + if (mob instanceof CrossDiedTower) { + mob.die( true ); + } + } hero.resume(); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/InterlevelScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/InterlevelScene.java index 85788cb55..51c31fa1a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/InterlevelScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/InterlevelScene.java @@ -182,7 +182,7 @@ public class InterlevelScene extends PixelScene { fadeTime += 0.9f; //adds 1 second total //speed up transition when debugging } else if (DeviceCompat.isDebug()){ - fadeTime = 0.9f; + fadeTime = 0.1f; } SkinnedBlock bg = new SkinnedBlock(Camera.main.width, Camera.main.height, loadingAsset ){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/CrossDiedSprites.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/CrossDiedSprites.java new file mode 100644 index 000000000..8e4fdfb45 --- /dev/null +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/CrossDiedSprites.java @@ -0,0 +1,29 @@ +package com.shatteredpixel.shatteredpixeldungeon.sprites; + +import com.shatteredpixel.shatteredpixeldungeon.Assets; +import com.watabou.noosa.TextureFilm; + +public class CrossDiedSprites extends MobSprite { + + public CrossDiedSprites() { + super(); + + texture(Assets.Sprites.DIED); + + TextureFilm frames = new TextureFilm(texture, 16, 16); + + idle = new Animation(2, true); + idle.frames(frames, 0, 0, 0, 0); + + run = new Animation(10, true); + run.frames(frames, 0, 0, 0, 0); + + attack = new Animation(15, false); + attack.frames(frames, 0, 0, 0, 0); + + die = new Animation(10, false); + die.frames(frames, 0, 0, 0, 0); + + play(idle); + } +} \ No newline at end of file diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java index 9bc301a2a..5335f8beb 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java @@ -433,6 +433,7 @@ public class ItemSpriteSheet { public static final int ARTIFACT_ROSE1 = ARTIFACTS+20; public static final int ARTIFACT_ROSE2 = ARTIFACTS+21; public static final int ARTIFACT_ROSE3 = ARTIFACTS+22; + public static final int Gold_Iron = ARTIFACTS+23; static{ assignItemRect(ARTIFACT_CLOAK, 9, 15); assignItemRect(ARTIFACT_ARMBAND, 16, 13); @@ -457,6 +458,7 @@ public class ItemSpriteSheet { assignItemRect(ARTIFACT_ROSE1, 14, 14); assignItemRect(ARTIFACT_ROSE2, 14, 14); assignItemRect(ARTIFACT_ROSE3, 14, 14); + assignItemRect(Gold_Iron, 16, 16); } //16 free slots @@ -768,6 +770,7 @@ public class ItemSpriteSheet { public static final int NOKING= MAINBOOKINDEX+7; public static final int FIRELIYD= MAINBOOKINDEX+8; public static final int FBK= MAINBOOKINDEX+9; + public static final int LASERPYTHON= MAINBOOKINDEX+10; private static final int MAINPALYBOOKS = xy(1, 40); public static final int MONEYBOOKS= MAINPALYBOOKS+1; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/RenderedTextBlock.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/RenderedTextBlock.java index 2c5868613..fe867275c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/RenderedTextBlock.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/RenderedTextBlock.java @@ -129,7 +129,7 @@ public class RenderedTextBlock extends Component { Θ = 蓝色 Ξ = 粉色 Π = 紫色 - Σ = 黑色 + ✦ = 黑色 _ = 青色 */ if (str.equals("_") && highlightingEnabled){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/StatusPane.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/StatusPane.java index fe1888329..14a0ecade 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/StatusPane.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/StatusPane.java @@ -267,6 +267,9 @@ public class StatusPane extends Component { //buffs.setPos( x + 31, y ); + //下半段 + puresoul.visible = false; + busy.x = x + bg.width + 1; busy.y = y + bg.height - 9; } else {