From 84762fc0c1c32ec2636b87c8eb6b581ef3a25bb2 Mon Sep 17 00:00:00 2001 From: DanielFitzwilliam Date: Tue, 23 Jan 2024 00:25:27 -0800 Subject: [PATCH] made block work finally it switches sprites and everything --- assets/js/platformer2/GameLevel.js | 2 +- assets/js/platformer2/GameObject.js | 9 +++-- assets/js/platformer2/GameSetup.js | 15 ++++++-- assets/js/platformer2/JumpPlatform.js | 33 ++++++++++++++---- assets/js/platformer2/Player.js | 1 + .../platforms/mario_block_spritesheet_v2.png | Bin 0 -> 51429 bytes 6 files changed, 46 insertions(+), 14 deletions(-) create mode 100644 images/platformer/platforms/mario_block_spritesheet_v2.png diff --git a/assets/js/platformer2/GameLevel.js b/assets/js/platformer2/GameLevel.js index 6b0ea3c..dd97496 100644 --- a/assets/js/platformer2/GameLevel.js +++ b/assets/js/platformer2/GameLevel.js @@ -42,7 +42,7 @@ class GameLevel { canvas.id = obj.id; document.querySelector("#canvasContainer").appendChild(canvas); // Create a new instance of the game object. - new obj.class(canvas, obj.image, obj.data, obj.xPosition, obj.yPosition); + new obj.class(canvas, obj.image, obj.data, obj.xPosition, obj.yPosition, obj.name); } } } catch (error) { diff --git a/assets/js/platformer2/GameObject.js b/assets/js/platformer2/GameObject.js index c12c532..c3155c3 100644 --- a/assets/js/platformer2/GameObject.js +++ b/assets/js/platformer2/GameObject.js @@ -137,10 +137,13 @@ class GameObject { // Calculate hitbox constants var widthPercentage = 0.5; - var heightPercentage = 0.5; - if (this.canvas.id === "player" && other.canvas.id === "jumpPlatform") { + var heightPercentage = 0.5; + if (this.canvas.id === "player" && other.canvas.id === "jumpPlatform" ) { heightPercentage = 0.0; } + if (this.canvas.id === "jumpPlatform" && other.canvas.id === "player" ) { + heightPercentage = -0.2; + } if (this.canvas.id === "goomba" && other.canvas.id === "player") { heightPercentage = 0.2; } @@ -152,7 +155,7 @@ class GameObject { const thisTop = thisRect.top + heightReduction; const thisRight = thisRect.right - widthReduction; const thisBottom = thisRect.bottom - heightReduction; - + // Determine hit and touch points of hit this.collisionData = { hit: ( diff --git a/assets/js/platformer2/GameSetup.js b/assets/js/platformer2/GameSetup.js index ec48787..745a617 100644 --- a/assets/js/platformer2/GameSetup.js +++ b/assets/js/platformer2/GameSetup.js @@ -165,8 +165,17 @@ const GameSetup = { platforms: { grass: { src: "/images/platformer/platforms/grass.png" }, alien: { src: "/images/platformer/platforms/alien.png" }, - bricks: { src: "/images/platformer/platforms/brick_wall.png", sizeRatio: 30 }, - block: { src: "/images/platformer/platforms/mario_block.jpg", sizeRatio: 83.2 }, + bricks: { src: "/images/platformer/platforms/brick_wall.png", sizeRatio: 30, widthRatio: 0.5, heightRatio: 1.0 }, + block: { + src: "/images/platformer/platforms/mario_block_spritesheet_v2.png", + sizeRatio: 83.2, + widthRatio: 0.5, + heightRatio: 1.0, + width: 204, + height: 204, + scaleSize: 80, + speedRatio: 0.7, + }, }, backgrounds: { start: { src: "/images/platformer/backgrounds/home.png" }, @@ -278,7 +287,7 @@ const GameSetup = { { name: 'hills', id: 'background', class: BackgroundHills, data: this.assets.backgrounds.hills }, { name: 'grass', id: 'platform', class: Platform, data: this.assets.platforms.grass }, { name: 'bricks', id: 'jumpPlatform', class: JumpPlatform, data: this.assets.platforms.bricks, xPosition: 0.1, yPosition: 0.8 }, - { name: 'bricks', id: 'jumpPlatform', class: JumpPlatform, data: this.assets.platforms.block, xPosition: 0.7, yPosition: 0.8 }, //second platform + { name: 'block', id: 'jumpPlatform', class: JumpPlatform, data: this.assets.platforms.block, xPosition: 0.3, yPosition: 0.6 }, //second platform { name: 'goomba', id: 'goomba', class: Goomba, data: this.assets.enemies.goomba }, { name: 'mario', id: 'player', class: Player, data: this.assets.players.mario }, { name: 'tube', id: 'tube', class: Tube, data: this.assets.obstacles.tube }, diff --git a/assets/js/platformer2/JumpPlatform.js b/assets/js/platformer2/JumpPlatform.js index 6afd1fa..b092594 100644 --- a/assets/js/platformer2/JumpPlatform.js +++ b/assets/js/platformer2/JumpPlatform.js @@ -2,29 +2,45 @@ import GameEnv from './GameEnv.js'; import GameObject from './GameObject.js'; export class JumpPlatform extends GameObject { - constructor(canvas, image, data, xPosition, yPosition) { + constructor(canvas, image, data, xPosition, yPosition, name) { super(canvas, image, data); this.data = data; this.xPosition = xPosition; this.yPosition = yPosition; + this.name = name + this.relativeX = ""; + } + + size() { } // Required, but no update action update() { + this.collisionChecks(); + this.draw(); } - // Draw position is always 0,0 - draw() { - this.ctx.drawImage(this.image, 0, 0, this.canvas.width, this.canvas.height); + collisionAction() { + //collision only detects mario and it only applies to the item block + if (this.collisionData.touchPoints.other.id === "player" && this.name === "block") { + if (this.relativeX === 0 || this.relativeX === -300) { + this.relativeX = -300; + } else { + this.relativeX = 0; + console.log(this.relativeX) + } + } } - // Set platform position - size() { + // Draw position is always 0,0 + draw() { // Formula for Height should be on constant ratio, using a proportion of 832 const scaledHeight = GameEnv.innerHeight * (this.data.sizeRatio / 832); const scaledWidth = GameEnv.innerHeight * 1/10; // width of jump platform is 1/10 of height const platformX = GameEnv.innerWidth * this.xPosition; const platformY = (GameEnv.bottom - scaledHeight) * this.yPosition; + this.x = platformX + this.y = platformY // set variables used in Display and Collision algorithms this.bottom = platformY; @@ -37,9 +53,12 @@ export class JumpPlatform extends GameObject { this.canvas.style.height = `${scaledHeight}px`; this.canvas.style.position = 'absolute'; this.canvas.style.left = `${platformX}px`; - this.canvas.style.top = `${platformY}px`; + this.canvas.style.top = `${platformY}px`; + this.ctx.drawImage(this.image, this.relativeX, 0, this.canvas.width / this.data.widthRatio, this.canvas.height / this.data.heightRatio); + //this.ctx.drawImage(this.image, 0, 0); } + } export default JumpPlatform; \ No newline at end of file diff --git a/assets/js/platformer2/Player.js b/assets/js/platformer2/Player.js index 3a5042c..634350c 100644 --- a/assets/js/platformer2/Player.js +++ b/assets/js/platformer2/Player.js @@ -153,6 +153,7 @@ export class Player extends Character{ * @override */ collisionAction() { + //console.log(this.collisionData.touchPoints.other.id) if (this.collisionData.touchPoints.other.id === "tube") { // Collision with the left side of the Tube if (this.collisionData.touchPoints.other.left) { diff --git a/images/platformer/platforms/mario_block_spritesheet_v2.png b/images/platformer/platforms/mario_block_spritesheet_v2.png new file mode 100644 index 0000000000000000000000000000000000000000..38b5c22d398b62683bf9b4ccd7cf97008ed24070 GIT binary patch literal 51429 zcmZU)bx<5#&^MZd;2sut77ezzySpX0Yk=VH!QEX0i@R%Z55e7Kv23u#9WKv%zx&p$ z`lf1T&ivcwboWnsB2|@T&{2p`-o1N=E+;Fg{_frT+_&`<62jY)|T z>(cadS}L`0AS7f&Edj=meuC(Xs{PmNa|#}1BM1Q=-Ye(5yh1dMyu3Uw^FHCl)T?d5 zlg7)&)T=zog_?SfN*~~Y0f!H)f%MjQ=HV!TjkP3TN>o%JsLZP3`!@zomUma$D_-&HIpFW zkUg@|STBN19$^{fd4?2obJ6+EG41z^QY`XgDEA#m78W%75jKPg2D(8Xx=WJp$f6=s zre%r&nmSGh?5w%s^9AQ^pmzMA?s=&vo@%UDKSas+8S5L#SUcUl7O?{BL;)5qY@QaJ z+2N+a3APPv!FoC>o`B%LBDaMUz_3F(%8XxiVCjse6ge`61I}!7uoT-|26$F5Pm)h? zf!&MB;+(YVI+Eja`kvhZT{z7AU-T@KJZ&oA-#_FS65&WtDv8fYB7vWuuw3Z=SuCl)#HhZQv$of%VI zR_gvSEj-hq74^7L=P#McYC3Gr(NPIswL^R@MWj*^%G!#hLm{)QYuIgW0G4qd?7-x8 zC$AiaPs1Kk>%0alINj}(_{Kyy?RKi)bob&Elm=rKr24h})(IS9>VCJtj9{D}TK!`6 z0>~tF=f47Q*<%Y_QM4HunHaz>DD)&m5l!?AjHw~X@o0ei@l${ zL`fJR()TxExnMVQ+HWPjbDB{lA$|ra`upfob7?!jr z24vy2@2cap4!aLb)E~5Q_You}qro0|ZF6#O=wCKLL`(hxQ8`VVdw6&t2L>raYvG~f zk-4x#ETwsH#$n<&bw<-PAaXdnxIdme$|6PU-GcMX)nN*ua!nbtcjf9xa^`hJGWSN8 zVTz^aLcC(lF1h3>57&R^+3_sJyzOf@%b$xfea)QHC@`m`gw_L?X&z-Ia3cZtIJQc` zh=S)IZxs71^+-xuq-`#ws4O8q15kIM8PgB>w0G&|J*Kpd#v3HU;}`mDQa$Hn}+{NJPOWY_&`9@STZtTp5V9 zD0T^ze{P58s3z@)HiRq%wrTy~ltCE&yacM)(Sq}6>08P|tC0Y9$3`DJsLOPgl8yS6 z_6uob4a=){#D`?yYt&a!FQ5)FTxxFjw4iy1KC zkM>^OO=Vbw`mA^e;KoMm!8tsYUQb=tlC(!w8f(OB`HcXvd}qpes_X6+#lXKUww z{;AYmqhcNt7Q}0$DD_$~J6&gMww)X3<>l)}WZT3nM{alq+4A^+hq;-Z*Yc;EMoH7N zA~MUOLkJBLc^8nJc9pO%tm&Qv%V=(TwupX-aQAjc=G~bcrMEe~AUP)$iq@-wR;W># ze>i@HXNgX2&Dl!Sx*&o^C6QRNMLMYSv!2KLqMM}vd^9Be=_eYDMVmh+Jv!=2efatt zi|!ZgUht4m@^80qgVj!n&q_96JXhbiykC&rVMe4wWm9Mnl8;VPw5VtZ)Is zi2AN#Ci#T365bRH$8P3_v~m!J&yy@u?sv6yA9d8QBVPRQS*q>j~Dggba23lJpbr{r_FW8rV}gTTo49Y}vf{dZ=GpTX+EnRmOOi2xAw%fxe3fE@Tp7 z2%#E#eaSI&7XC)^6|5?nM&-<%)B{l$Y-ZfMhAKIn$vfao#WkXQ5Eo^uvKv7TrcZfhug^K!!#$~+O=2xQ@KG-Zk58GIhT9j> zc|~;2{?OQzO9@qiW&l0jW=BoUQyltpOCiH;t<=sRKiZ?T| z*8hM+iI0jBN$Ft1_N^}hgTfDo^oqM@^P=zf3nKeDSpmg9g}eiY7=!HRJcI28ppaDh z0L_*UkClTs6rKd|Jt9GEKgq>)VUByl_GUxJ9n`t`A^}4xN2QSI41A|2GsGOin)oeg z_o3g|-pfKMF`(W=l~^p$SOi@&ne%Xy)IS0g*%G0ycFHCHt&IOI5LEt6c!9RUMxBJz8HSyKg=|K4z-^oV}F7PP_amXrL0fY0QkPq zNgwjQwR2aI-k6}n3$4|3hGu45PC#>kbv9rsP~yEAci(8HBC0QO;zGvhN!& z`;Yy7H(viIIFcInFJz;SU3BuVz67B?H!yLbE!CS!{hgI z{FR3)gGsDLLy+6`x^r}iV}A`qM3KK?N@qmIeMftCz^aE{0G$Yj)LkorEb#`RoLR?c z9&7@={oUOEFGOk7@pD7h=V@)ANpu0>mJ!G;a~(`cqsp&R;H{wGuDz}i+8RM)EXdnT zhCFJ`j)p6?0T$hn;3j<4r19^xze#1C@?DSl+$62RI4ByA`JB6KUvGfs$uHy- z_gj)^F2JxpuSPWnC0_#$(=r@%K&fD5;%rJOr+Q8WVG-tR#JW}1r?+FnnA9Fml$=7x zsXmO7Kr65DTAT}vnD^HjBypAMS2OCq zkr-q18zgn>jV+wox%fRr4eh+i0B)YxhENLe@0z{Up7}0xVRwgUN;121j6=km@9|S) zClOw(9({pg{78@T(eLQAAh+vW$G**cJjtHXcxGz{Nh=Mh|1 z@d?8g`i>?^*?NmfUk(@WezrFa%Z@A(9M{CYe;#N1i|c^qUr4757`zfU;k0#EGZalB z#@hWbm_(qJBH0e)StW$8&!dmq^)Y?ShiS6z8JtC~|JnQmpU!k7wL?Q33y{>crCpZ* z-tTO_rBn>R7j~8$Cfk28B1(E9N_bRiriytiQ#)UXXdA6XZl5aCAUF*LBRNDuWXb<0 zMC&3aPM7&KRIU6#(@MG^9)1efMpCNQUliX9iEHfVW%dvlKh~TDiYy5+%N?qXaC;7y z;~F}Dk4(4YYqp6#tmcR4tWA0j*P|Lb+K2N9>h50p+tqCkP4e=uW4$-}Y*4bF@c%_e za=X==mviLMX4|H8J>YXEV~RNUUM zGfbc(u+itmXSf|c&&fKn)IfKK?a|$H&=57ApBUoAqak==9Y{yod|qY1*g16TyV3*1 z>oJMoAZMISl=xrhDG~sV*Lh_d9`#@K9ID67tKYvDg?2(Lg42bL?^XdS%dV8n=U~SD z-Ayu9-j>pg)k657t@kxoqB>11G;^dhT90+ycWCl8*P_<0JlhBy`NVmHq;3CVW@QnM zK*WG>b>0GQ!9btI`25W*Da!N0#32snlGBTMyefTn4o=d`+#YiL z_)FTm5M6xzHv8f($d9GDgw=YI2b3eHVGNQoub%Meb@6QTP?x;W#p;l);@)& zM*+i=^BDUb2c96_{%tG0{oWSc{2 zA9or?Tv1}^i`qT=JSp#0cmzl|EKj))yTckJe~!N|1bea zBNl*2Y%STMST+!&|3fux2_!GyyM+7aGN5HRb|VdGV=wLpa~Et0K}CQ0I4Hr+9tof` z#jU5m4vFgFx$V1GnyM@sNG@%OIbK7KHe4LuDL_Da=nyC_4BunRO@P@kN(L;U@box@ zXYXD+xqy-Fl|e(XGhuBn)hzb%vrusUG`&9g5`5yWz%F~Si&>R0xO+)rd?{u8b(QMj zGA+X7K8A4WR+(q`o}9^X8;Hu}*-k8cv;_a^ZqKT>XbYBF*|(z4c@gD=cZmkKpN=t& zNqkKl=`yLj9qd6*Q z5nAOkp1=~ZO1nfj4&6GSZ~OL}NFew_V-Q%>5`hveEfB3NP#@2Ff}-!N64SZa%B}zI z7l4zZQDvcglz!~+k2vY+cHHe4#Sb>DZG^fb4_M|<}JTNydYKH?LsrWy2?><36cULK=c%B0?@-MP+Gi#Aiu zIogca-I8|%X?5^keJ&PjherHqM7EjsB?(ZvaB-jApa?`9MOw+cAdL$k3f9|Y$oOr5 zB@`HAdGKs!HRv}qHm!A%2s1#m+|6||%OMjVc1y3>Ve(bNd_7vgc1X2iakl89{l}V% zgb*mp@{2ksyxNtDF1LQTxl0pi%O>>lkL&pwmEBW=DrP|KzqmiYsuEpu&dkso?|57Q zhDG{=R*c2FK@Aj^NaFn1njQ#c9Tap#Zsu^+{dVRz<^1S0xhUslax&)gG}s$Dr{lU3+sOApOYT+&rcv`6i=&Sc`pJ#?RoY(2 zR*S>ecnAdLW4Jw~Ft9|j+#&q0MbC+D`0kS>1V$t1kGX*+tc%nNB?DKHSVEchm;>Y& zKN-o`e?JDv`6;8DRoRmIl**wJVg);qM76PPa=95^9trm5agSNx`wosIX=}Q4YZswJ2{uYeb5x3*ujFECnuYYtbOQ&hx^b-BacX#hsLY# zKww+u99Y3U8YxY>B3kK4oatAgtTbDWJu%CGW_shBiJMTVT$RF0aZ`l*fhS}4iiv}S zz$|ED%hqh-a8Dzxwl?!6zOjFWk2Yf2GP3Ds4$V$P!xy6O6DKAm08@r)a!O@&>5VV5 zUi~Fpd3E0dZ`bu8kKwvz3x7@=T~)0<`j$sCiu`RXS&5yU>33UXsSQ{lV%usGA1hl# zL(q-LGS1JR=8eHwLSKU{wpKe{MyD}(kS2oU@#W0W-U?>N{Ll_1Y5mp0;@wTXrsq;6 zO_NkcX;=B2j+0gW*D7E9>R; zntKM%=qFo|IVRC~chp7dmuZS4FjsE%ma#XpHHf?n7EU*Rm*RvPBlZ;?}F6T+J3i zcZ!MG+~1JS4+~lBGcqFFne{}~Cv*s^tSU0N&ugBZsS0eM{cIsN9tL>JIC|$?{YNqU zC26SBCIQ1&o-3gtQ{KxVCA8=ULDAhX?9Yw$9`()1TLdvmd1vWA|OEuZnbo zAKL>~whzSUa&*4MyBTSl4nNXnz|sh5JMAJJHaQ0lYqhs4wQ^wt*@gtqSzNSFt*DCu zCDBHB+LTb4D8`JVxVp3t!GMTiO>&2yv}z8kuf z#wE*4@-T{aIKoTmnuJ4D%1dDi=3-H4=)W#sMEl?!@!V1!BwmPh-G#>z&m*%Zsb?Br zsj=>8SHTlB;GPZ`t*-=;je{Z2V8tJWf}}5 zfibRFmIL3HG1A@jAh7vUZFX^Tj?Kp2rdtD$-w#$xzvJ-o0be$|Z>-~FoA`~AI%X{# zwn$r#naIjh^Wx`H4Y@;WEoQ-elOJ@szqT13TRi*n zAWjaUQx8o;gQWsyI{~is$6P{8ueB^`Pcp;`MsxiaJWX}S*DTr<`O~ry7tJvicF@XI zCJ%n?7hSC?&n{xTo{D(uDVyDB;S*S%9;2Yc#s`(vCd;(B_bTmfLv!{iadRTnq)x$y z)dMBGe3b%ejlY1=WMp`tFfui_akXs#N@CU-3klzEQNbgCN`XPZ&IVFMV6M&^R!~Gi~xDM~wljNk&VsFXoUfuPy%kqyKOVuA!Sv==;2C zSb-5^3^jS8Nq05dd@WblwSBPIGe0Cayy-15L*JHWlC|yxJ4*->e!6C!@tOoP$rcIw zFt}RHyINqV*&Ir|o+|I+2`of{PCmTfY2oFtNW-=7L*lOvlPO+=K@M_>D?e3Ni;LyjR<)HPtL7<{_qw)%!vpsIg*f^wU# zVQYw6KFS%dmZ*ELn<`^AA?A`RNkuLz==bk)v#Wr8$$Lh7Y$F(+ zUyQfNRQOs(qH9QDEgmvxCkxoXhXnszP)MNh^uQ{?U50S5I33#Qg0xtH8UfYVy2Jy) zjjC3f05jU@RKrNreP^jWP+X zRagycC_~u%OaqV?5-m%igLP%wy+IXP(GeLY?=Y4BIMQB}-gbXXRdpK2l~^*X<(u zSn_jcT;;)+pw$mnVdkKl&QROqfyea;GSd0qaR#x6Wjyf zcty~;0jeUAu?m#eY^F3$`{pZV)zd05qp-&ids;K@PkyrrEn)3zE=KO3_a=}^exyyi zD9E32=bE}tID1w9vI2e+NxfHAqRq9+)!XG;!t)$!Mt|8~CBqbOEAr*v)xl@(+^-JZ z>1sN6GGcyXFqvG_ah^-H94~9Z7tj^tfyXATH<~9ICR8Vb@7sI9o$!HZy$6UOvQ7y1 zV7*&S#_#!Cig;@6Xq(X1K+uZr<6u;h(4Phg+ZAVj)_FaCuK>aw6x*an+GY9K%!_WJ zgIL#*AQd5PRJXy-cqIlry6;41fm~Z`vQJY)3c?n{9Q}BW2-?QaZFsVG1L!nbI&g7- zhB^~fEFiWjNStJUf_s7GNdZEM4NwWmxNv~v6(H3B#XsUA^fS8CLvC!q2}hb`0>w;l z7JcI^!DN;Pchsfv*hUoE`tfWX8vN|C7IJVj_{`WI<9MZqI&9JP{Y@UEY*uAFcz%#R z`502XfSr)9TOFp)^gLCsi^#U!u7ej-q@XjPo+9D*Fl2`&$va9-NqbOq_jg9ObQTy- z(wL6g4}~{q?UlZG*Xn~RxVuRd|EqamU{ahv7sllErw}N8=iXcDe{!B_B;dPTh#q$J z_s8vXhp}qyB*9{7;ag`1<;>pKA)2fZZ#JT*H}_5ZpTNXwF{;qq`W2J`vDFxP&5Hw< z?yGk^#g||W;?C`PqN%Zzw+gd4D^^Bh8mF_<3jmIL))JR=+Kwc5^Jx0c!MR8;8{caw zYd`0rhVBM^HCi#dUcy+0<#H@KcRb-JhD%5)wB>A>E~lpZ>f1vf{Ft(+R+BQgttc;fg-}SX?2qo zzNKg`L-86K1-WCUF~t@~M#HDG+Ph=bNM(Xqh1iQ8bi6-|?azdv2hwy<0?mB?PK3ss z2$V5Vs<9v5_XNFT(exZ({fGJhd1Vv%7zzv98_O>Wbz=2$aFuB zs_=3c6Dx8xJjN5hLA`aoBb{Nao zT?_}^4)kuBdA9{Pcn!YQkKJ^d{-==^NEW`R8%pPGSF|MhskM<}``(4sv%)XW!coE`f0# z*1qi^%aA^;Dd9WZ{RJ(5GXVupM&yy6Tc2ShjY{7|7|Pp$mRp$-obG$`NbiIfzx%XU zs6yOfey#BH`cTS_Jhzp}ID*ympEO{0P=YDJ-x04Uv6RU8r_~GImPCS? z#@u;9?y^?y&70^PMgfLMbC*xw3Iy5l^{!v(P7M zxj3MWAWRK>gH(liC+)&%0*TNoJ78*PYuDNijnz4CP@Ly*nhsxM&Y`xBcbvtYj=W4u z&KBHt`Xsz96yn&gqeqgtgsXw*-iuiaH94RVkRQfT5OEqBV_mPeh#^;I_9ij;^%|Tp zS4#<9{}Und$Qj%xA*ybaqQBq4a``B}k=X^3)xVTxYb+bHY_gf%@qvFKhwFPz#GfI| z)LNr@Oe2rl^?#=xAH)EVkW923i^BaUf#6}LOqej`r_+1CPC{{x4={SgAT)Va`?M{s z|8;a!Mw#;;0RBjR#bNX3Da^<=le8;saO5_Qw5%!oM$8| z_pY$Nb5?sJl@uwyd{9yNJV2YsX0*XF42(*qL`!;35JH!$2VqeD z33<|Rw>yt%GYY?~^=TgZVR!;6bI?N|o{gpx4(x|(6#JWDgd%`2NH=Y+PkKzj%hMpZ$|Ang7!)p zk>8YT?3itk#`6(?6lVIf?N2}%E6rsg5f@xBsqqDXiRtbWP?3=U+VNbTGuSmFROE0O zPi3v1M4)+ugXQEL(0EfSMN=V9*rWB2Ik%xlDqY71AfvrICg(zuVHOoiu4lGrj5tnw z8nhx2TW3*4_p%Bj0V{Wf7Hz!*4;qn+^`GU*K1Kgj^7Z z@)(Qfe<31T#Aes{s~K$bfJ@<*|2E5o$@8fyqo4<99SS6Nl-{fU|cV!S0^R9Y90J(~#E=w(N7fOl28gDx2SEx&wZ? zY!Pgg*!YR}LT4O}M5DT=+nd#Y;EWcwSJpl2iaA2w8@XDL&B}0=x*ya-#}zX&S&KQ6 z8tzj@j^+$c7*J70T5$}ok7M50eBVGB^YQgsf4vXlvfJ5*%2RI;&tDV{KjmLGebTMK z9Je*FmWTX61@2~vXINCsp?@;Q2XD|^oupjId*}OBVk@%#-$U^x(9+F}s}ioX0P7$e zRG*!(#B`b+$=s9ZY^&-7LYoP+@FOM9oUJwD`&lNx{9N{!bHMI8ILw(B-`xxwm`o{-^yTB^FyxVykisI| zd<4&?-#hrY4u*Gi7@OB(5UeyZ2jd2#F0t0YqnR2%gm0~sDtT>J5(#D#W45_w zTt`8tyK@=H7MipA{Bv&Y298V6g-aZT4=(zInqdfyD^@xD1+5l7yba=}bEy!vVNgIu5oU)rrDYI%4&fQbQ#gsGfhDMMdT`J%1PDY?_5ymKhzEq{g-JH6803rEC;^ zvFHCHFSA~%;hvl+8%v7(L{Iu+AV_`md57OwoZ0C0!cA7VdqPi zgv{K)lqPd(>LDPvFoJbKYl7>&1hs)pbk2{K-Yvn+7ePZ4Zu)4D`O3~Y+NV@}`Qa@T zi}z_cR-uxDsoXL9&`*p+eeU#Et>$5-!AS~nOh$_l4@#JQGP;m>8dfUb5!48w+mD}g zbRtn(B_VE%0P{Niprp1JCiz<7Ac#U9eN3I{&G+#J>ft*arB-(?c{BNFek}VmX~#xTP;{hl@jM~7fo^~1>^YZxC|!;lEGu3(w8ZVFTzKb-jHGMM7QY|$pbD)m>wEQ7eA8jABpQet*)aMKlas5CW@ z(SS;b1KpaiJjwA>G7eTcR&++&H*-lN>D7HRSyaNnDl9VqqV@Yjos!90@$$b!OwsrheS}gSCSl8ib=-HKRf!%s z6^V+lkA%3yciZv z18+79A19r=J>A8jujsa8ZShX!=rqSYyfRbxbrV;4aAF;cOjFvomOBScAive?&0L;` zhkJ5mYih-l1{tFlY8SCIQsqb5B2x9T&E2c&OWI%b>f^V?s^b9Q%EO> zGCc}3_88<-WMtb{WlbbM7x(@i`r{ijV@ZHB!IOGY!l(4WwmbT_trTWc7B}Y>=l*c6 z%Y*}wQ;w7vYep*ydx{!Q2pmP_lA4hMZmX!wMmLxcCK>Z#Um!!i$jYoAN<h zT6VHaam)G8s?mtY4y++J>WePqCw(vvBRdmNZc2l6sE69e-Lf4RgVI;XCvP1q58*X#%g$!;0+$Iay6$kG}~>(c%+)O9IPfP;iwQ}U@wX?kFcATK4MvYw2?)J{{g zgFX5*>ejDgUXB0a|MlT0C{dg>=G?Kd>0=GNyH5jv3J6s82wazyIAFG?%8m_ zzV>%u&i>G|M&pSkG8%BClzt_0sX5i)Lr6$S%-u6Ydce^i(?WyjZ+Ol-#3Gr$lt)>_ z&b8?8oLS-EGiRl8Op|hdhR?@%Qd1982y-Jx%CVuuMqowfcqXZTqOqqn2XeC@|JHJ# z6uKj6_#iCP-G)FgojMDRO^Uu5_mrF~r&mY`r-qZ4UJsy22pRY;i)IHfjb4vF80|EU zS{GH2qlVWaGZ~hkBD3V4`$_1Ii4tycCU3PTU8mm9u1jDO4hC5&?WD~%dP&yueyp!T zZ_3s;r37@CU%4<=+U?mP5hJx!8ijK=D)WdN4c(N^$bs7R1Q~3^XOR8L%w|s)*ye=;6YcFspv3@*2`^ zXrF^bF;RhI;hFX2@Ab7Qoj|j}z&~Fc1pGP=HI@`*{&NPqih<}BROpioss`Km9_7*X zQ}UVRMY(6;>-pi@e~!bGkQ@N0fs#?!aA@?OyRwRbd7r&Qf3_d@ZSMqLIhqx1HHfSA zdx%~rm5-$4*Ch}t+mop`5IoJ+Qc~^{1)BoY)pv1;u&3soBW8A=YJ7@$0Pse>D;iDn+w3Gx+wPDm1NUd4f zOEv$TbW~D8u4Qg4T#B}uWZdU@=oOIDy~|Tm%d_SioY@m|hIKvup%0cCqz@)%IORej zzkZVp(f(YdF;i5M_q;yV8PSG@LNA2+Th2+gV|>?n2Th#?%?cijGse=Oh#cZMN~&b{ zL2dCfmW3RVSI$L2%%EFdzru#9bEJA?zN~hdk&1g9p5)3iUP_5Bv(4|yyX65 z;|lv#jO@MUYW8D#C>xFG?D|_c=98|eYVG1vo_k8%w{GYUv6Km8BNiN(&pzBY7x7Vv zH+E=k1D*F52v5Rf$inowTuzB6VbgZ~dHScP@q2{*$=SJQ*FoQpvvus}Oz7P*=vOmm zu_M}!*vj2V+DIt$c+8rfp zTQ1OKQuv@@YMS;%aq#%e#UnO9R${OITF(Tl$Cyv_02BTU6;4V>g}+Y|n6Vc1HkWR9 zrKdRmvg+d%p*J8`YTvb#=Wa<0oO8#y@D#>g;yJFkW2H<_B7#y{YT=3Bz4in4$KZqesSxvNEk?LNU z?aq>*v|#+Zd)E~P6JL;*E#N3j-jYbW0J|inXZjLoBqbN^gUm{7#klAb-DlKuPsi0i^Wo!tD zRXfCf-WtQJDwvL)?(=>oCsIyP%JkTx$Ou);T^7(tl*S`py4ML8HO1jWDK3a)o@uJd z)FB@|gIdInUzHT+nk&P3Xov^iaX!B_ro^A|9iED0KRk<_?eXJN@%s8Df%-c&R2CBr zjl=F{)+@08uh|@~Q1z9z2ChzQTb#s}xY)ulW{6 zL-)Di-aG^CXiN9GU+`gx1%A3F+OHUB-%ifOF#UNN^C|t&yl01O+W*^_H(s4G;wSso z+C~)Ddj%p!?2tHe3ie0rWmzfn-iFS#@C8q1ai71V?+lnRvm3HD+NZ?6UyniC{yvS) zf)M7&!5I{f96Ip5l+I#4`|QZ7e5%1@^kM-W?u-X2OV>{O*{0%CN*pzHAQpYg#n(=ALr!Sx}oI1BRR(V34zqSp!ttKFJ)iNDaYi;F8&Y>C7eNbP)bNZh`Q$Rm@ds*RA}dyI_^77*+OW`9dAdrlD1%DQp8sadd>VKJd0yLv z7Cf(|D})oOVqzZ?&`T}pulyI)AH{RgBZIAQ2=}Vo>Lc-SvwmNK>9Z)u)n!!q$=P=a zH%oz=(1KX}^{e9Vi))JH!X*YfcAxn%>!?iEb0KVDzY-b##1M8Wjnk8jjg&EZH$DlP zE~FCHv29*)n_2|#@4lwGN?ytkH0Dkl(qo5s6%JE5@YFhALWXU zIPMVTh;tumJv#BD^V@tPatMl&jIU{o^ek9B(HlxXDwAT zUSCs6@V44jcZcDy#UniqOBom1d0G%!O6mqn_)53B`3gpn!eA@XW*DvQAn?JxZ`A)pju^F+pwGF24wEJ?xkH^i-{yU5D@$IMYFJY= z7S`d(+Kvt)o22iXmcD^Oer4IxhvQFQ%+b{Pw}0KxW+`AzCPscblFmm)5HgJ{WS0Te zwjNj!$BaAJ*fzF&hloIEh2z)uHYnJk`ltil;lm#r{)Mw?5ql4p*at$wFvB7lHl||H zRCuqf&q$A%&>H?n3p1;^fQ70JlUmhk&|_i$)-6Gr9IJtFoJnRq8`vRNnU590>o0M? zDP{^%wUhwIbV4=>G4+nX;hCS;obU|_mC$x1?|HL{`eQAIMj99&mj7-$A=*8yeI>5- zIokHKRFLplycW*=C*F?#kC}AFMG1#Xt~ACJd)GPD&@<$NX^G2kfXdlo_9-#b~TaNd{KOW8+TKm$u% z!_HRbN?hZ-wP=jKsuy!WH$z^qL{DAsX3fN_3mdK&+>lxHxwgp(k0(Twg%fpwu_) zI(s1b-rxinpv>nS(8II$!9huIbQXL5^furxIx=6$2F zrI6+W4EN88+j(0fhN0t9(%8tal!ab0)4Hk0@5lc$Uz6;L1txl@PIM~V|Bf%+H4$$U zPO7!!J(QB3`Qw<%^CK%|(u_Xks)q0l4VBFpuJYN4$_MT#%q`1d3WC#z%32Q3Vw zoG;LejN;9PUC=W7&VY|#bmy19wAbpDSSl9om#?z?63_g`6e=$s40%gJ0uZTN7X5fU zGN)Ow02!exm%mZrBv&v3BN1rTAGf0hyvkq?f{+RX+V*#Jszr0!oVl(DcW(WaWPqqj zvOG6vRB6ujIcups6Ws=^E?Jn&NFZeTO~-|P0aj~sXiIg+ zWdq;pS(41M4HFpz|r ztju00pB(0^_=DHmp&Q5PEMmgBzi%HMA1yZjl$hg$E2op5n1CIa#v*!%@7dI zdutNkhI;e`;YQM%SIKhES>R&+c3s8&d^51hLothFuq(;rgmMCHzoq6=C!jihkm8S( znv;|9T>?3w4eeq**q9g_*>!HoAfDYU4heL*p4+RCqP=MlLXZ$+>6`E2Dn2bkbU7~~ zDazyspEv*rP%y=v4#fjVmHwF=8Jw=mpOBdsIzJDhrZEzeR~P=2Jm$#AN2I0UZ)RNi zIkRFEQ6jWNtR}mO-`XitcEX&7>X6o+Hib&C^W96pOC)M(OYiHpCE#TO1$hYAKw7RL z)|h}1s;2OdDVHoIPKD9;cuv>53Fc^o&`4Hs+637oK414a*EVD0zk+R^z$ir?)yUZ# zOWUxUY>bmIov+g|mL@1@c&ehMi+Y(_yNAWUmyWx0;wgP5WfT3T7h`-+xEO!=tS$Xe zAEPQtel=rxKMQ&6Fs6s+$XSW?{P%YRvLcwXXuy9>fPl#Jz_F~s(n_M{y@5-!v|b$E zwu85?>HtNWSX#-zH7N z$EQZ*q^F33vx|*Caz+Djv$0|4h|NxYRHraRCFERqQ9AI5Fw0KLjLNQWb-X#$;Pp4> zQ6^gt+Bm}R|0yQ2tCiL#i@0Y1lALrn8221>NzGAv@QGx#_P9@HiRhI3#x|sE* z1_9*{aL%|1pc0uNq?o^bMAhU{eLd(VmOyE8P2}*tLY|@dU&SFv6bo?4z6p;bML=QT zum1_^x;y75C6-)Gg3VgoKdQv#BLjQfj+|G59 z@`+lJ2Ao>G*4H4}*rC|L?6%Z=A{#n}#I;XKzhTYGCBLwLf;0bylu1ho&Ph{{mC=Tk zVh=1v%zPO9Vjg5FQt^s#uIrbX!A;90cR0$)tiNIv^&x;5@Q@9BRbjLo8BdVV&inAI zyr_^R4^fdHn6VH8vyR8^&N)0X8F!S#U!tsPj-sGyAaQaS!NLZ4vu|I0|Go5<4GUgx z#Gyk2^K=6x_@Su?#A~t0QReVAA(V^s2bm+U&u9V>BMjUKsvHi}`U7B@Lm`>EbR85OrW2S!pN5(c}?Tz{iA zt`J;(E*6Xu71tCkiT{X$4p%!){qaa|k%)`}$~WIJ`Uf^{cdpz~R?0&p=EOpKe>hu~ zp2_XgkxWL3QBjib`s#5Pz0#AQDY@A=xQ(VL$2<`%h*pbZ?AgVwCl+qT6zTX2q84|> z<)jX?;p80WOu1F7f#PsuksL`O#`)4u>m%c%abL+97|d3aI>K`h4oa^abH@T&=r)Nj zCE^#lh8>TQ{Pii@XG*f#>EOB0DeS>rhxIE<>Wn7=jkv9)zrUgHg@O zwn0LVxQhU46ZGnrw;~-(8N;CaAO1L@`8V5>-{=&Nf+h;z|WXAK~I! zWvp2%vF+u;pQkNO`x}jm>hTcf&0#q3XDmY6;_~7(nEU782_u|oM9Vz9c29^!@Sw0o zOcy$_qBI`YpS+;blIwvNzo?{L?tQnhD(bx_7$SB{0-;&?0NsowaNJrbj!YiuvA#Z9 zyFis*oNgSoko%xJE^;U;*_SiPz2%{;*N6slo;5B@IVw7(O_aO0TO9eD7MMFj{+Pcq zbX(Rua8Ky%O3qm~Tmd1gjI&XeB`-SZ08FTnYV%Pqpc5ON&#=3jkpUy7Mo!3F=;biF zXgDKmpacakm7(#QtvA54XNIutj*cc)FW24F(csy>OS9;=73F$yo(Z0bW*iOv@s%~N zuw=tsiBjFmjgx1!EsAN7z+!yQ*09|QD~l&D-Zs%*uOVpIC7w)WSFy&dNs(#a;DxiU z{-<@{T4UhleOj%<#>7923GFtIgS3W#H29AL`=vfEe6phZaFjSuq<{)4W%CRw$Eu|T z%k{`(W<1H)e#Om&wyow&&;Y*TUwRkUQz9LyAdQiB68kRR9%b-EcnbO&H67q&aI{&T9Tdhd3q;Y_dRz8`+iH`bGa?IB~<26BkxGB z_31w9(TelAz>D`ECeIu7B>)-Bk9;9Rd2#+%3&=|#XDWVcBtg;tRlTkQ z86&BfZr&=zfzk+$R$?f@#<&$0G3P|uSD1&>T5xYaw;!snWxOyLKba36GF{i(jLX!# zZ4RUCdxUZ9XviO2f@sK1uMe6dttk+|`>>-vn0G0_GRL9>nM_kk_`_8D&S{sna za=?hj45dn5OA$XJX2Mf6Em|TdTxQFx(xdd`4H4mNeh8=2 zcCwO!6HToN&Om*7Y+cZ0fF0jpo$oJ_g;)0^sx<4dx#r)ku6E~gj?2jGf~^x5R~Ib? z{Pc6gMu@!?mMngV_~zVy3}(UU^sbCZx9jwo8lye(?7ML{iKpHP{*~~~yw!S^Ldx(` z);;O2g`{~9Pe(y2R?U00dr}(GGiiU<-MXsYBmGmur2U9xOz**2%Nbwvtq_x=DWzJ6XTc(R=P%L}lA{Rf>lg zdej`506{D^hNK9%4Jx2ZrhW^tDx1}*QRIjMULl6{q+XPGN$-kOtOLT2S)O< zUQ8p|{_uWHW&5XGFE_BtBCo4PHjOhT5_w$VBU3s}QMs2o>aKd*3rbLRfM)c=3B3)* zU-EV9MY3?!TMqN67P=(%mzp7FEO8I$s4ef<1`Pj53vk~KP;qrN4_4D1)Y&CHo=f)b z9XaAYvY2J(il1FIR;jt~DaUXT(yo86SL&i0WFMQEVT?W+n{V}ZUOnghBYBora60CN z#a;IMh0j~^CZd7(Xg#3}C(3o;z7Id;G@&TnIFMVRAoCaKME}P#Kg9~sp<}6Zbvy#k z4_e}1ifhq6)vmHN*J4JOOJVrPyHN`=DS-P}K46gF)mEpzqY(^1Iv z^McDuQDGOeXgudRtI>_|XSYUyW3;H)%)(ZS&3V>^n~#)D!S3<28QryfX9z8;T?fnq zn2jIiHS3bfLE#3yr$D}T#bBnpS^yUTHxTBZ7i)0Ze4H*OIGMs zI7?x!#YD4j+?jL=wN^G^zK85yeO4Zn{g?T1{w6WP-Tmg)I2|k;x^j$<0_tk7KSj!* zo#EmHaNgs4g0jAo3p?*jNSoYN<#C=m;k-G+e;0f%v(LwmEwS*D{Lc>9#HV{J?$nVN z8BYpsf8qKb{0M^?3tP=2eV$1+pp&P7ZC^GIp4BTXNKWBivl$bO zI6jhzfb)H`&d2M|j4<&c#R~BRFe%ETvkLCbC5+K^=YxMu;93Emvm7ib%lYGoQ*$+j z)!r#E`2E3`B*VYIQvJrea4>i~u_8SXUVA-=Y6*Y^slO;=DK^PU|F zZ^cJc(fsvkKW;bi^o^JBRb4xuthZciDvArR7}X_7x-z7YN3~|CS&0o-2m0nnVxyj} z3sRsC3T(7EU?r#A8ZzQNJM6d?lx^_1Z30f!k8OM|etGBNf zYr3_F)U#e%kDc_<%riCNpq={6xw0u9PrXC8khvosSl0z zD6!UCnW0Y4gEy`x`eq`rme;|tVCLa($4VH63#Ty4+uMO}>FE4MK41ZkV zA=U~s;cD%iG-YbW_jhKt`(z*{MLZQ4#8Tq>SF?VQO2qf9{|oJpxbGuJt6KwqsW!*# zp3h%6*ld^63$PhEnWZ0Q`}{2#d*9-;_dp3_&VYfQcy! z5RFc0?3A7Y#W@s{)kLRW;WZ5L$;thny7;EW>d--FZvDsO#(aTbuA199y!HV@t80YR zg1{_MAe&zguSy&JrD&*o7{NJSq?x~828NgrfMP&_a>8)9LCN&6L~0tRRLBjw zwi$ z9S5E|ff2UHj?~JVmz!245&EQ;IWhckiL0#9zCh^C%sF|ca7ByQA*J^egT2$@(G!oZ zCtj=3@!h=h%yX%_6v^Vsr+Ib&rqYN{|6-Nl*zW6phL4IvlU~YHsrZ-&mU~Im^PyEo z=pQM?xK#s5i+R=AVDP6Q*S-$=X1qKo(4HItM}uQ@aW9lmx=H*mIF&RKy|@)}eci&e z%E?g6u!{?SCGl7S_byp+>dx~F_~|^SGaP1HPGSQ>{Ve?x;a^flI}!m4_aOTBWjy>w z31C40B3A8hRtL`hr4(WGAI78_pJDqcSvlilK9||{{Bf&~qk`h@1cEdWn3=3e3`&zGNM#c49!+U2R^1$ zv4S%JTn+qVS>}xr%P{@*DGiT>X?Uj%P!yADS*ujA*W56;h2}Hue&r)Pr)co1EiGcF zKo?t7RBD$zsek>1(^IFi$f}dC>Sss!kFUa^K@u)hzmkJVT#iqzoJlXdSEKVv|GYXk zupr35$njV;EJCbevV=o$@0wW{`00J%6PQ%%ck^=3%3iP+^5U#FRfexUA4+7G)(`!w z&|{0SZBC-}!MjqCo|zd1NX?YQH~d7(z=--J6$r>hn@0VvGHv4cHowkq z)5_)UEspU(j@3Mvx}XAla=&);lwW>PUWXL3ZO&L+XoZIJoKWPUk^~axBoH_7QvyZM zA2Xfoi2=H=heqOi8<%WlI%mzmNiO%kR~mdKkH(#z06vTW5|}KI%7Bn<{_lr;?0sAv z0#HMkxetd2hG{5%Q`@HUKh4O$M~DpuFcC}`#j0f%X(f6oI_ePUb4U8h9Cy_{UfRI; z1fB`o9*AFh=sr*qQ# z#e&+@M%mh_COKh(QH;Fjt?m(H zab(IoUR_Z-q8mG7FB4=*4E}^Y4aQK!HUL@;hx;#i)j5cjOXD`CFknkbWN;@L}FOW;$mCNH20Q4ddySb;x<|0 zcX>o&Yp=_3d^JAz{x~Lo`lEN%qbHvDXd+m4%0v^uwWKIPngsB3c9cytU)aq!)%_7h zw{0-#YJvv-JBlbZRzH=0Uk z#|etN9!eqJSY`axBF!y!^dXn?VNnGWirBw zw)k!sIV~%{i|d18X0B>@KLDRVVr_S7!AsGAf+Cg?hN&$64ov|!sb34n;1J z0PIwQ;m82Qte|b^`1*|}`AH%_G&8?^k7X!HOVFORf|Y@V3tE6-G)R zQ${bvaE(YX;m8`{&_992Tn(W|NtNEKj3>QzH(pMdzT6VYcptK@S4PSJo+)1Nqko6p zrIlkf#E{jn!$ph5*q~h)yg+q~59It&Rw;|Va;L_q5SER)X_+tOgx-}gxOZj(S5e0^W zzw3y*vePOLyifDATJ%A6dvTAP!nWImZ%&a|HZT72h77)=CB1WviSpK9T>H%?+U7{w zG`bhHK7GyYcqP;@jFH2Q+znJ z$~_qE5iSS42FFFruXoQd$)zG@tz#`07w)ZQ5zTc0$R$ImLmzJ1(>y^_zB@dWdt#`+ zp4ITr`HSXzuf_eFYieSyfi8{?4U*A;u3G3eiCOQQ(UJ9OhDe?5p3VZ_I8Ocm_4?1C zK$`cK!N%h2H+b8C2gjOwZHD?^)-Mt*L$?9N6xff<AXtw@iC|mV5UhUd zZ78c_j{>d+fSP}(sovGWNgM$G7v8E-KAwwX9~^iA81cz@tS;m;fqsZ{3ZC^!oo9i> zT+k8ocp~aMT|s?722)n(HhukuGss9kc)uD-R=O?2Z=J0-tWFI;5yH~<|+*ZR*Mf^}$Iz51n zjr%gNvTSnLQ)yBiarCaZ_r@ZKCP2MJ+dTCKmWwxqQ`r#f)!$uCoNQxln#m zBl@X)D#1!=buITe-j$@ya^F8V{>5fn^)u%p=&$r7A%GoVfQ&al-|u<_)IJU=aEFw7 zUj$UKg_taZ($w$zLuSjoO;znTk~4`x zTgC7=-q)y?t;5@bblGJ`!<%V#EJ*j$uzu&KV?=<1Sx$E?v;Bsr0K|3)$ zuOLVVV)z|o%&Wj7pcrR@+pAwAam53mVtSjt(_a&qSBZTT%(zxesv|t?PfEUqAUUvu zX`@ff7_Y_RZfD}~<5-dhn4RMXV_H;zUPTU8X zz2P~*Ic1)Diul?Rlb!|T^hwMD@WV-i1N%mrH4%(3a$(EgB)K!eJM=yDJu<-mDBxhF z=?NFe=Nmn3mOSNDB@^K1wD-UIvMuKa1rpUq&n2K>a4Hk`+HT1?3Qf;9Sg1%5q#*vw z_TRjxQZcmpoaIeZRJiC6O@DY6VJV-Ah?K$~P;c&!SL?2x;1~vcHM;>mz=LEXtS{Zw z16+-Vukj^aw0E0~2BsdL;T=?-571OzgTsr@GjBu(8?g_GD|Q0b{=CvC$UTZKB==V- zF#Q?nd`*)YYGxyD29Wg(hxNzn8J|9hF^I%<@gb7BV!Jq6FtKF|Qhmnp(BoJC$$j%# z6{Dx?jOZrRiMZDgjmUGKnMp##T zf8SZbNHyxvv2VvY7@@yjTE`v8Uoqa{Ms~9@-83yf>*8+e&27~em0C$c@)a8<0X$G2 zTs)|dReij^cI%G`b-ci-i|wUjrzwj)#exc=kTf?hHAzCbuceEz-`U*mRqe9<#1PK3 zLJzt@hFMWk&N`{-QFuXR{m|$ujmfxuZb7^?S0D2~X63=u6Iq0R7)~6 zW;Jw{=n^eUQOZ6hhh(QEq#GM5@sa53FfrQx3lB?KzxdOAylo?U@T7^MyUB1r9xL%3 z^|(;lCAB~Sp*xC7U5Pz(k_B3PsWk8BF&xd<0Q!N>W@GO0x<}7EV<0qfW9IeNHU%SS zk3Tg@n~(9eFAuSf0AV_5Yz~5*nU!BaX)L<|8Uv`zW#qmPrxdVLrCuODC{8NMxP?3~ zDcSTq;}(G3wtKp)0_0sMsk4IL!27DXG%#b6XmQT& zWS|p|XQ8hPF67bl$2_>TxZOy}M*G-l99xC3AGa5aE+~#fL?vPKiqjwQvTfZQMjWh~ zq@H~+WvS{~P=*&YRx#fifRf=iE^N?%iO#go<}{qc7vn}*sv%uP>|tqG=dV30g%V_d z8wxu0N5+%zJm0|zCj|SlSbwPHAm;1OVfN9dvPQtbh;l=!kzvHw-qE3<&iIQALpioI zxPv2NdkaAWM`RCU!-eC@KQGCCkDF@KYiMO#R~!;a6e8u|5P@dBkDK|7D<@~xA8$SA zX)&ol^Zg5H`iJD+KtUmhO5T0;#htz!#Af;`Dy1XLEPuD3^(lMmdOc>VXrD4-;G zTG8@KF%Gv?@?51U5Sgu`r&fbYM zXagLxNjU#1bFq(uLM*8g8WN#d@5rz?<~;>?u;)qK7&%ec8=|}l-H?=tud>8G#nn-q zsT4^x4+#!Aog3W0{Mz52S-tRza;e$1xAtRVo%80C8pD^*_6M8*lVf9=_hYzz9~v29 z3LpS3lcHW}BHy&U_Av$7@H4h^U|YN{_85_&M92>iZgH+$YX?m!mvE<|F@=@1IWU=$ z5bM6efBTB6O|)AbFE+4zuhIQU{~Zr83tDXk-8o(}D9i#|*`tcW^G!$*-wDDS%*avw zQhE!R#*G;WCjSw0eaJ*FK*%x#J?t9hg!}U+gu5IohLbXvm(#QIp=)vQ#f`Qlz-vYo zl{*p;EyhUn`>UcK1+2{4fyWPb;gE7l-?oaSsP_)Hu=|e$prviOndfNOwIMK;_dDVN ztMjuX9og?fmDy^7g10NpkBHv9@ky?biu0L)VPEP>fnUfiKT(!3)qC>lkx9@~mb@#l+!w1@lKdBw+*ItGy<)6+F`V2KO+>!K}w6y&@{F?jiN)`L5jhGMs_H8&GD zfdgX7D~soeJkuoY8z)kMcBvVyLqSGL9G%?_eb(^!>a;55iAhLH{d^YE^L4j^-xJr< z*K2kl>>W<8O*?g7+Fjc}5ve;t_zWJ5`mgR)Bywro2#_us!;Q^DHTjuQIfZpH~ ztpg`K-{?gT$=w zNoRv~Fy*pQ4_J-^TX3_}PCo!j$)5sc1)M}U32MP|MKw5HZ_dq9jSZ|B&I6CgTK~>Q zEeAZujY(VQcCOYc&;9ksHId==yEXl`cVGspiTe{Ngh{@y;RBWJ+c5*)-E*17Z1r2B z{VEBvhALK=*GMm-Lt!NxXUs#Ug-*63mH04XEQdF2`KexvP97HN?&&?Lx?NNCBG)B( z3CX7+3@@LpNAGkPo7MIJPjwiA^wiWp6~(hc_IjKzqsW znU85K?&amc{jesWwKPqA&wgYA zduf$8PeVJ$J`ea4hG8T(@u%Z1J{8qA)ykDGfrSlGyvn_=pt9JXLa}Vj zVxL*kx5HC=Ib^loFf=rHjYN~AEL^Z7Sbo?vdCLl?eqf>)`oDAJM<1}k0#aHu#SIN~ z*kUQTL4jNrI-e&RO!hUode=Gq@Zi2IXPdj7e2UpQKbSI|1XPn^XA^`-B3V+S%>~uR zCK3*lsEKfs|+Yd*M>d+&B;K-ymJ$pJBxx%0Vt+;yF|gno=F zH+w~sR0Mq};mL`BrXl-)I7tfrP-g9VT%fHSK|@QF1AHjapgnK`Y(7CV=HlFpP>J}Y|}Dj z{<7{H8!l0%Gu89YU9cAER7&q9vF$rFb}nl>oxI4K8=Ki+(GnFfRUVtS#?l1!iHS;}l;XHU#_p*4zt$58A$zA>xOW;ZtuO|EUi z--8=W*wB5vTL ziepJ{OsF2aZ;-{eWaJ|atr;yoxc!((GNE@@-fB_;R@YRf>!)%iKM&p*+%)V6!kXiL zA8opCXE9we`O^MR;sXEFBZ>02mV;n#mqNFs6@hUNhuRmAF(1TwE`CO888b`(N0rbo z!B$||hy~`Mf--yY;Bg21g^fX_f2#E0_va zOfpuO(^jmg zrXu$?fH>{4qom!->XM(2u8?rtwFb+Miz-e-e`PtZ*9SW{A<&ap@vRqbgFqUT%7=_C zg$B`EHd+V%>*exY6mx$U53%RoQFk|eXedxEc{U-~J0+jBAU*mlu>9G^H&w0zv!5}A z>4xS*Y`Gz;o^=$ps<81$DW|EpEWeN&Tu$AI_J|5XeEq3cj`f%5 z!*&ZL$@nUhf=FEdc%?HixrmYx&iFQNY~Tq#a&uYzik3h3se8buu|D9(py8iBCc|@> z0KSIjz(iF{1_bMDQn3HMqrw8O0uDuK2(Jg@#Da)C&aS@i;NQ}wp}SFNNs$X8Rk4RT zYEV%@a1Vg0ur?ro7GIMPfKT)OjVGZ`Ko_qaXiCg<-}2BhP%uy)D>^XH@fD`!(W_Zo z`YSXi+&lRv?pKE5>*hD(x9`?_5mFzd2{sjuxPAdk1{tFl;DuFcd)w+e7p|^ zh#)HLhmA#tK=L82R)jY#?;_(NtvvAx9=8K5Q8DO>CY{8r;~;tS>7nHOY$2~-ZwYzK z@prCzFR!Q=nRqwnS3`S#JeH{U9CdOrkwE{jgKHf#jWa4eH&}ZF_6W$z{Zse#@$?J$ z#G_cdh0O&TP{G^E0KrS>qUrDJz1o(5I4i<=4@UNE6`pEp84eioA8fWTZ7h9$SbM1= zsMzjM1-0xp;8a_gH@r7;3&X3pX#+4@lHZhdw@WjGw$Mq{d0n%vyN;wjzME>J2=}@jrk0?#V--6JCJjl&3 z97|ptdz=UWz!A#NeYQigAuUCr+fGl^3&p~d^XIHk4bg_5{h#lQ7e+fyvsrE@uuvIw z1k@|cxtT=GI#XD#RBtad`O*UN%V>c9wb~s~TIg`XolE-L-R7yjz~7J2ZkJ=V%58m6 z_=EPEHD6miOSExFe($A+OVbO!{-X~`o|`#%CoS&%o1JC&kHa&P2_b;ai=XDXLHyM! z&6Ne9xvAhNW9n3KlOW9llz7u-YT~X!iXcF~7huhaoO0~Uk9`) z#>`(*t7P$XU*UbI&oUa>U^y)dv=?l!DpnxpEesdhC%2xy(p&iIh2HeZFo{;B!eZq! zH0OGJbb)VzCV$|W<>nJvmqP0p$y4rn`z#j7Si>Od-JvMoq&}6;Ya1#1?6-jKmw*)W z9HSOkO0rz})%bHNPD<=dfdZwcSpbbtBOQ>MA2^7-F0h|+LsciGM>ou-9k&Y?$h)rCR?_9{LTnQF!<3m=!cAND5JjiTFG!u;N z4SoA8@!+ej-t66{h8Y<^FfFfQ0M#EKL;*j`QAgM0U z%77-%Eh^pnV>}_GW5#oB@=Hvdv~Bzb{d0lig(C}Z_0fE!AU#{!cg<7uTUmW;TJ%y1P}i|0P)#CwV4FV6GUqXT*w6HmC`ixZxP02V9Ke|v#RXbxK5 zvAb{7-clz$%h1l8^Lm1v&^=Q~1>);u2g^=qPgiE+n#!tjR`SUJQmdmbXr|Qg_;%A! z;)=nAYCrnd=Er*H5~8!o&xmj%eSp)(4Xk*!*)8ZPIY=cv(b&hqP$2fuqob^)ZAyRN zl%PmKpJb#OCN{#8HR%3i6S`Q_lXL7!r%LGjCV;(l; zcb@cQ<*l> z1?@;zWyV*l9}KS|Uy#T=Dy)v}m1GJ?(YhY^ZL44^K;K9kn6;H1$ zz?k%9531EJ?s_VZ5`WY%ib6T!m!`**s?SFST<^YH-Uk{`PMaF&as!dn=Sim+yHu%I z(No0;{f-5| zN)qVFI*uV;Vx_XYW@b9bL3YqQj$fJPplPtju+@P)YbuW@ZG?IF*S^3X7wNmZ#1O6P zej2-*y9rRoG=(Tu(?&7z(dTTtqFUm$$XhY#31LLxhcOS^LY#z0h69YR;C4dCgkK|0 zSzo^tfW4fud~NnnLBNG))WlEv0v$>w`qtvQXF<3^)1+~)|AeW4&iq7()!KOb-8YZZ zm+H#X&Y_YcX~I=@q|n%pa4@*umE zzvg~}wVrlkE;aSu5dyyIjRUnP{RPQBsz7^V>s1ZjQ1P5hySPu&i|i^_ePvc5U-P zzOtigsbIOWBE>Di*h{GB&^#GUo~7CFdajiq8V*gq9kWm-EzC8VDPu}2;pfFGY`gb> zRZw^#x!C%jN0@dZ`l6Dnq!c1K40jo13D16esx3!aNAidAmAUj5=xMUDppmoV>B0fR zlmY0^01~QXnTK0vhllnJ_&}{{KF=SwDMv$1L&o3c>Dl3GH0`yo<NlIy04hf6gJ-(Wl{OH?WTMs)NmjX-?iuHpK!$-Z((uD#Cir&HJC!BxEeg%^FlgM6(``fkV{uPh?qQ`0K67+{rWPlqi!(9|fn#Lvl->43S zv{)qjYT$Ox;C<^U9{nq88Bw(xxnwTjn;u?%e~o3jJi)(cLr5*4*b_YZXP>Ju0x_z_(G5 z1%&93HqEWdR8ap{M%Yz}V#T^9oCy#|P_?X6PqWaeo;Hz2r&{Ov89#b6tW@XM z@9DIOI7!Qh8fh0z))4n7GG!TH99vnIGNTN$obSRpqHs!4bTpNIOzR52e!^-5&i+k7 z2Jo(|#8H4?ztbHv$b?)4ZUbLG5KVv%gH{YMR;*@wcUr1U@e{~S?W%*?{2RGqC?(Gf zb?!0}H55Wiyf|Ybghu=`9>~`f@tyL>nzF3XF^T64(%64Ax=hp*+k3e}gHF-^TL2LD zzLa?rhGw2ms56nTJg+aPMXajiD3gT$QNgk9FYQAgO-$>d0Z9RAAMVw@W zp6#v>Xr8KNow^reFY7)!ULQe%Oo=U!IAtq0d0e#sE9>gW_uhDT!B` z$!mimIKxXk-+e2ao*8ll0hHQp9#JM05TZR=Lg}-a*B$SEb$6pimQZA8v)ma z_5-Ty%$|6UC)(&Pk(CmRvp=|KF(@i|K~$TCPDy>q$}jgUdM@NBfm$aQQ6R;TcRyEkR~IiRZdyPP#Nv>uuG!f~xq5?sV*qQlKFbnjU+Rcc zGy(l@|2ja^#;!}DqCN@{Nca&yGsS4k^VWs{Vot&fKyzX|3MF2=J0dp;rlDMMhn7^b*Qeken9 z47wG7@WyI}OW*S8tf=?j0DdmsA@j19TLkQ??cBEFRp?`a z{77gEUn!+L+h3r-PpMMI&-ZSvSUebtv&0d@!r&$d7 z$JzeQfCX0HwD30>tE_L8*eaesp;T%pzJ#GFb$A7M8{O>4%g|_`#ZsIg=cIy%gM z25)qm+cy;I6!1-H>^pQ%9xb!xd3boX{~jJFlpmKW?%tD~mx0|xtc48RL^5Zi^YZ2s zczorDGpE?c+Y)4K7(NJ+QRXfJQ|q$6W(|LSq9rqr`q5VckLm=sXI7c_0$$!!ZczzS zcuTqW#ugEcRNM2|=3o77i=QmV;XDfxJ@|p00&l)gS}9TqT(UO)zu&$3U#PdUOlx`R zH=3$@V4NMukr;qXy62rKsp%CyORj-tm@1r{nVwacX#SJ@=G8}FqO`3%*VsUa>6}u? zEt7=S`|-THNtO+h6a^7w1f2$LU%0HZhsUT}P2nl$oZ8et_%LMQJUAMxy8XWp)E(M# zyAeQYnG$})Q$7-k-ch`T|LX?`s9TCyQ5jFb@~Bxl%?zUO&tLuJyTCB}oSrUBsaNoo42`dH9MO#37qVziibc?*>pA1`{T;tdDhQE+tM%5HnN6JnY zcvyUR!M~j36gJ_}x~FOz7#7 zh`Vwrj_wemng-`if#~80Qo!yc8_j(f)28`k4@n4|)+{P``gx*2nY9Y4h0*4NNZF<; zN>p3?{ZlgyQWX2EZb2?ohMAuZ{NYwtpF4U1y&08l0ed}~I5du2k;t+dguGj5wkE@O zvlVXe5%G0f)EkD3OB}tvb@$Q@4%PGJPb4~EY!^Ac7Uq|D+eIcZ@7h!Q#kkJ3->@e4 zR(ww5w0|dlE&~$D4Es|k2_K};#jc=K0a>$_vXUA(jesY_R`kT*?7w>WT>v=`Kt?6P z9~MQy(xk^zuVZ<6XhVrXb9b2e6a)hhvQ?||1g(XJwNS(6pc=$?TWe0EMlhJ=L-tJ( z(ckltdbdMEmmKNm`Q++|Ir;Q@*B)jUm^4xTZc<Lf}aF!S2*Nc!1XSfL-aZJSyv7{NZxDEgFWhFq+88E2z$Hd5!b zbnnPjb*r-r*k2hluuez$yRj3PT`pfPs6?W-Wj&M%PyX0>_{#S3?p*kMAoCqNh@LGi z>`&0ruv|RvsJBV0Ky1W6&*aWqGaK$bcB9e?{X~N^=n-r!Sr0A{(N8+<89DAW97ZM7 z|1cCApk87->&rTZEC`I_URUI-F9-rHT$ixV-p@1eBR%Lt?Td1-pCzH=o^S%}iBrit zr3#+OX%u3Oo+8HySg#;fH52vF#Lpw~xpnm^t2$SjzU>U%dIu1If)A97N3pc>?MF?* z8o+j1?RYT2z=diXGHc#$F{n%7lJB5BJcl)q=|btwT->RO|95h<-cs4GrqCr0FCCXz zSdAZ%#R04_?0+Uvp1bi)*FZ^la5r~jfkveu=NG#Y+a()CMvT$F8ZGpH$0$k#Kh0w6 z2^g6|Ns`5*DT1JWQ=~03$qP(pITDbG&jS<3qZ#K)QBM`&a^K=@x-N}_xO@r^wlK(puHBq z07s4&WWuBU@!zi5=t%Dl4+{tz{2#hm@44Wk2%+A&o>#mUkkU5(_+R zTCwnX1!}jxX_qSF^PoZoSGNd{rV!!i`l4TlFhJx>8wlb+vcv-qt8hHXILS$)4eJaU zCdElRxi}z2lfDsM#TEvLo-Q$I!ExY)I*HE`2(r>PY1uO zCq5D^&iQcCJ>yyGaa_Hf~Aq{X8#QhevQw!mmkW3<+P9pXqUgy9VBqmfbf*Dk;UG%&`x?qN!ODly3= zeI_=0%FP9^EKQ+hn80b0r(Gw5`ovU!{Nh_tNpk|w4&YE<8ZF@Mb3E;0ebd=Zl`SGc ze@oLC^HS$7X77L8k14%Rao(#vSu#`{ZnazP13MglEh`R)Y5`>h5O=f>=nMF^@fllE zZhR;$B={>)4EH5`_3}!UwAj5#mwpywy(y!?M8V%5Yq9+z@}9wn2hl<=tqDkP4+mX0JUcie z+p8bI2*uEE51z+n?B6*Bu==_XACcd)U&5bt&XSOM3 z$K;-hEOP*!G5}wro2lqp)pDn8Km`&%ah=WkS9fGZz1`GN@30rl*o>Df+t^kPbOfS- zbIbAcAU5MPh4FMmF~j!YwbEO{1Z_7oN`r9j&~H4iL!P8kW7x!I_t}bNw;VL=x#zKO zT?;~K`+WM-{OQwe5T1EMj*n8`cYnI1L;r*Abpwn*Sq#*SJu3^PF5M~-8KCB( z_ad2z_I=nFIaJ47>Z_kf$F|jqKW5IP50w@A|3}taMnxTUZ=fpD-8r;$BjM064BbdK zNH;@whtyDlGIU6Hmvl;Zhe&q|!X4lD{ol3jx@+;}_lY_CoU`NXXFm`8p*orPcX;f% zr)pw70+RxmJ2dIlyUd>-J2+VKeFd{8GTLcdi_ZBU%vzApfGBC=%lN|w zH~#&a^F^7a zTaf?F+Q7?7`MqhkAF0nQHLK2fK};ETotZwa>$~u5>+}|#A}II;Web* zIh-rA76LZVtAo)WQwgsN0*Nt>1}AO_Aw83#rQ-a}+P)ZvOUjb%opC6xguxBl?i#t2 z_I9DGt#BUW6@Shs^N&J(dl5JIgNC06+v@7$X+&1cqKwI-b1g_lr<~JLw>nlzrm{xw zb<+?^*lu>M{xlRqmP_O!cNgM&T#m&LASNG(I=H1(>JQ;kTK{{*>Q9!kOHwv--AMv% zG;-xa*V!*ghYMgZkRaY%CT%UAZE(zw;K2G{ zsF(6D#Q%b`_PsCpAO3`)pBhMm*0k+N8;sXVK^c;ad}scWTPRqw!^E%Ri(J-e7d)xd z7$r2cqZe=t_mxfu7=-F3i6p-k$U=SU>De_^L7~2lJvc})G=488^LofPxth&c!Tuzm z^aD7{_dEQLTpGl1Y`t$`|7-3T>LBI)Q4BiQ}dLFk~XwXr2v9-Fg%gt~aB zG-;k6(x3XCAXlVY9MVaDINaEA7=^((04K2UqVBl7{HWi^ZYZbf z#xopfzGc6-i?I}hQ?io4`!V_3>9a^QFl;YHLJkc;PeFnal1TseAmUUF%TsXm4@!)TQLgh;H- zA5%AiwQigqoc`pj;D#TkXG(<hDW0=mHB28P3|14wsHCk7tgG6`+> zLdw+UdP=-kW&?^K23c?VUkrTWn8J9(e?l!RZ*)Iy4JpWQc=0nFZmb!=e<^7Xn`b(c zK!@~T(mcs@9bbZzouvpt)KF}TNT?1eDJ=`_-!_wdDLsKNYDmW6_g`vPnfYxYWy^Q>(FZ1k+HP>P~yq$y|0anrZ<^brQI`UeC zSi*x@_>gE=86fYo4XpCu8gCod^?;sc`3U*ucu0I&%~l<^2Y10g;<2G0#U-~{Mj<*E zghQ8DU0AHTb-NTevV6~$YIsYdb!ZW1K zwf$T5LKs&2Ek#vn8g-|gp;RuXg{JZ1^k36;n_0Ljp*_(>+=HbS{r?)!eS?E#m2KZq z^SHm4j9#CbvpU;O1lWJOVA1m5z-nV$F@LnypodvLlj zZ49&FlT4b-p@$2PVb`wXOWOlRNAd@69rC^Sg{~UtBn4VtcBUUvBpXHs+OizSwl5tY>>^4?p{C|s1&m} z(B>v^plJb2ogS8NNhs{yESD`N`tOU3dq>d~bLb?oKXY;?Ed6KHt)~OVVPV{zkM$0~ zn7#dEhV<+K(j#tcDdN}VHSyAi8G<2+06L@3#;L>v z2sp)u5+-9yf3fL`7rq7PDg$@cC=Jg8RM^wV*-MfxP0y6aB9?b}p`^*Jaxy3&gZvUB zxVZZBw3<-vnaXL3BD_EA>@AWAFF9-BL-MC?2Y!p8d^++wy;*svAan%Z!!34W!}jgm z(7jBdE#}AD>DK3yMamcV;vheFlIClsuUKB$4SL-jvc><#&L;-)93@%~{&|{($B66s ze&m2wuiiRdBfL*zmF!t~y$h;DoUQKNN9#b6&0?7rYYjzM2B|ys$q@}qX!O2gdVg9? zZ1@|a89AS-)E67~0}H}mnqQRZ;Fsg`BV@Ksv23GQBN;MsPu^GOuDSRfrIw}mqA))o zu8PUiXZYQm6y4;FB2D;{I?8AXgo!ewCfp$iLUq0Hr6cnsa`29z?S(e z(s(QTR>1#`on{*ISTJD)3JyM1;Ve7vcN;ei@$O$2B+`= zA|IOnbdRSJSMR1xO}r-Z>5SYCg7%JuHfa=)2zG9rkLR)G4Oe<3tJuq18$%77Zk_oL zU#ZN*@7pXzA3212cIe4(msp$OPvc4`84ALO%fo+j!kYYn+oo{MHlC9=+WF(v0{eZg zQ>a9(0Mn9{*SCL8wx&8n{(My>a!O@;54p+`i&7Nep+_?~_K6aT{ZG=93> zqZkBN(6OF{I^fyKo_ZeKA8_UDZ+j0a?_13ijhDCRL2OWa<10)S3q>&8h5o5gS+3Qa zRBoXDZcTwY+C7aHy<2y7if-yifA^pY49G)w_pQ{Qd*%dFC5CBmz+z0a?_TM{hr@?x zPCHuTS`9!&r6XF1(~|-s8N2uHKUhyswrnS{ESCW$QyxIKrN5=(0WeYv=#ZY^P>+@0>;RW-Tgks+PFeq|CZ_4FOP~Kp z&P&5>y*KThABmN9J1s5N7Jts~fNb>_uFP|W!H9&<80zTE^FFa?Ji>5m+7Nksts(sa z5)!E^bY1K4x!6ExyQ>q!$c&;Au4I%q{8+?DuJ?N_ZRNQwg4vi{L^;29KZWY_HJ^f`+NaKULM(!RZxN=R-g#OBl_lVRz7 zod0Z%Km&_WE9%e3Jp3>Mrvnmt_pjS$V1)gz;RqiONqRH@az5?X)+6*! zlb(VNx6I8X6}Qao(VXb$yvWJb<<~YH<_WWY1FQKCFof#j_m2v~iTzuh*I-;BuRmEh z&F#-hJ?ZhJqh4?g-Aw)VEXBzu97XOK5Pxggf{|PEJptuwj52)C0VD(DU^$4AA*fGs zynm`DJ{XNH2$X3D>k4m|ViK1rS6fK;F6m%Xg8!V;Q?9l3gic=^S7LMSRG#xpnYT>k z1uggXe@74=6UzUREShz3IKZZ(Kz3a>ob~U57d#wQddkWGZAdfUN=w8uVb#1VV!}8c z@%A4XQbf}W57f=OCq~-e0NgK=dGGyHr5F<@V*a{Tu6Eyq8WXChMqte#qFP2f`8hH_ z`b_-(#AM0~em-p9x(cy;M;R{|%kIjC^F}#z@F7Wm(1xZNhxD}*(C-;ZyXw8qGvmQc zg(%V03`gT}%b})%7zecRk_n2TVZWFHo{1_M4SMIo%A$V8O8Z$-gwXwUxnDHO6mou3 z>}lWkyXB?l@Z!&+NF|j=Jdf1K#4S_%&VF0iKs05u@8jN2AZV|t`iYA|1V^4XLQEn=aAMINL5D z*&CdrXsOKho}zXx^0ktyPh_}u@#biw>}99HaSpQubk9aa-D5|1xm@y670s(yaDCTA z@A=m?k>xlwb1AM|c_bJ(H5EdRfcH{|Dvd*r3XogpBApW^Vmd98p?3-gSA`NB$nP?ab6 z`*P*hs;}V7c{HMuvDDeRBgBeYwTzslddNWMD5b_xga->V7Sv(`{?tnw&DpnfGD_1A z9podlGH*z8#Zgrgu?yaHTe;Bw<9CM}hz!7RD;MP4xSLDym3zy_>K z;Y2`dq+qK+15U#(6NLn2i3u5lJ``h`#ly#zVF=@6wLjM73~O$D+3g>-u#pG8Z5DqZ zYHnV};EwdRA8*Uw4B@-vB+H|(XI(I*^^Z)9pA{bAfs-d+)#LM$BcWmQ&TB@0X`$I8 zRlQ&C*TEhKw-O|v@FOKb+WR&XueTIQTWUR4KJzUXp9pO!-Fc9VQD3@HO~VCv4;kNN zlFW%?L{Heuyan)p-Zu@u?HQ1O=OVqJMvV^xS+=X~rf|JgDay74rfeEGuYZ~^x$xN{ z?%(nTW>SRa>gg@Z($e&M9nzF92x-vMKX|8OVIn_unQKf)an;Sh#|}$`3Cl+&L9?MJ zqDji8s-8$lwHoJik$Hc|(VPVU zvG!N$zcR!G4`r>C=nvm(0rR%ukRFh#s@!)MT-P=s6ufSo{*%gnjKo2>OPR(q79-YOl&b(pu(>5-J^zc|k=i#6iJekE-uSMM3wux&ea*Z>XseZwg5AkaEFJ}fQaG1Bad?Grw?I~Xz3!COP zec(zPi6S0Ns45hF-p$cY_^%+UriNUkN$?oWNRNwD=eRFS^2(1`I;1bbwELYp@>QXw<(isldP>v zKZ9Xk3z8p-3Gx1J^i(Lc;ot@!S}7a%wKja?cDkS#)8|80&}N?>O5&Sg)ou6Dd-qvO zDOIQ4rxr}ao)P_SbnpB|m`z87`1AbuV68iPjo+Lf+wLXcXx@Bdxll)7&jsE{>mR#v zp&)SxJ~n1&BDBPbV*}9OD9zFXTz;yIS-m)fo{Jy}3M-(OJr_qVA&hbDV*18Fc zuw^yv1L3_zOp(4Da&vk3loxg#i6^gFF1Gf(ts#kZ->l)RK}D-VgATT(;Au*{fOk~G z5-|njJYI%)K2fNqXf>GccRUG)$l~WF%AzKl|@$jWwXJk7_aYdj=y&YX}Q_%Ln3; zTm%HdBf~$0TNJ?yl^AB2k=ELIiiWnIsudiabMqCBtp%Bk{P~H6yK>^}oJX35Auw?5 z$<9pTtLQU`n=I!1qX650%O*$QqCdUqgzHqvpN(t@vyE|)`cD+9>$Axw`c^BcK_4F_ z^Q#&n7N6*0foMMZCr72($@a8|Z-{2kUU(8+e}i}#7fb}|Vs6UPOio%67n|*v`OB9I zp>cMe3g0>PyL_zPkyA)@?;_DQ5IT<8y}P6zi-M; zM?>IAk@wOZ4)#iVkBR{`|8$`uL^pr#OGpgkMKw=Q+dE!r1^I|8(ekaBBcP;uK+zws zo<{QLon=A(srWLDxR%yTlM!V*Gwund}~wjIfcOtc?4PBcmk{P>A~u z=}$}%AM`*KB&z4NW{5o@$n}kIFl)DWP@TAQ{tY~me!lD;8yLyd;enGEGuRI(W_$|U zErtu)QP%MO=vr$vHGv7?{ck5no&bqGLFa?&aPrs89#c!+XtNBSNx)2mxB0xY_88e# zFe#k~_opy&2CTZlFp0Euo<$7aNIh!5Z`f0;-qBVN4a=%xUDv z0TQ|$Z8w|QU`tMzs=}`)+sMhE9*cYfcy7oU>iqLB3+vwEG9MkBghg=P(9qL-;z$LH*;)&PZ zryz+($=S?f_ji8Q%`wCOw&|{AFY_~TgdUg2TL=3BLVR$)*|vxaNuVc17M0^bU1-J) z23EJ56sFE?EbsF@ZTuVj&^!mg$;wb&E~L#~taiz>Y7J*Eva?9sf-6P|;~Z2Ts1I&f zm$lGJ#vuy2=L+nbKIr3~kt?{Thgx(h&%299+9~>Tal274{FeCeRY%UMGQK$4boboeuZ25uH&pCxyAp zH?Gsy=vkCx!7`QTKW;xz-cJC5UkuO`DUU|6YCUVB_kZ=_u;(@>&f;Y(&oTmyeG&9~ zE_# zrb&iNP3R`X_0Z)>bwdl!WTt5nQgT~}^&wuX#0d%#5RmHXy)iB-(hwKg1P&4^EwDGq z!nH~WT$3>I77`GhWBsIIXP}Q0YOt)Y} zbjr9sw@`QcbD$y_Al~L~z+`070!{g?rD$UC0_EZ7FEYhDg~)kaI}*SdHF#Li=VYVY ziQIOYVYUSV$*@hZn`&60;KtFIURI#V8U&fm zZ~FCB)^$&w747+La&Gzy2@%??T&icGS5(~jy4+JCV=h}dB1=)JJG9jvNw{T2Sc+u?>k=$6 z=i8^ddcG;zNRB_qZ{2z*yB4I+yYhd<;^wcK(eJ-5eKCwJWz$G1O&%wB9vs|b)_WSx zya*0n65R+hJkzPM>%?p$0+}(2tw>BQHJ)#O9^WizY!;oz|4X|%$+t*Y5?ql;&{r-4 zrad5SK|<#8Nj)V5xA`~$DLElnHlMSgC)_^{f3|jThpAnBhk)y1vm!?U^vO{cLNWWQ z&P+g8x~jH!D=pvSTcjb+Xws2y=z4fV%-o1yvP}=NNaTGv(cDDFZ}>jqh9t0GW(=Z3q)D_VD=ppA5D z!|6wPAQ`tggqC4#i4c9zYx~y%L5AOfmfhf=mY*;PUJFsce5`b22;I;=Q}oxG(V+$0 zp_fTyR)&Uw?PC9QU6PAoK^{>Is)U7|d>08cs!ozv>?~|LsMpKGCd0*r+q2ch@YQRb zOEa9b_&L+1W)q8e>@7E(c}4Wx#W1tKDO_l(`j$YVl)a($)GjnRsYyICK3j>Y0?H{U zA%5p0s2C$IOL!G|VvQ{3qSu_6smANTh;`jW>u$hYF8!gJP~+?~J$THI>2)2YeDAfd z#zmkus2h#R^aVN|;s z6Qu^$-%ab!Z&o7ZD?Gt?A+L`bH{J|%{t|@+eE^QA3zD928IWGnNdD@1)svb>H#m*d zRM^<>j(S33QZJRjg_h7M!gCEsIr6>;79ETEi$gUF4cQsQXchq;>F0ZF3+$D2i>2cvWI} zKlgbFs>E!2^&uEe@zMFAT-yyYyT14X>!$sA#ReCT3j_^*^Gyrc6RVc|O)^s@%VouM zrSIMlfAawqn|Z#CX+&D8O8CW?W39mE!8U0+d>?;*kBA`ZCyGPWfg^r_`lEP<8O`tc zUK$|kW0ZiM&1-THmRQ8CR$Of%nHbVOo>@M4$&6HtlL3kVd}_w$WeKgvAhd4gmtMS|-S#0yxKlwLXXQ61zyH?#F% z|IJ(8vHiyA7`@jb`^o=lBh}9TrvjvO!AJuXxfBTrj1I+#q_&WzdGSXe64^?S3uPAW z%}-_fy^9<>=J7-dB|HBkMb!ScilF`K%wo)cH9~-rd#eHYrv-adGIE zLix+F?~CILu1Z$euyCI8hrq!WQ1S1tX$Fx=87G9gu~}E%S*}UvS1joKokhLHJLxxy zv#jNr7C%adP3c22zy$M(jY-z!={W23Y23agO1}%Z*s{mYib0!o2V;&!M;CLfej(hcjXU8Q-|ho>y}q;K5tB7US*vC5r&zi71&$1XqqN#aYcQt~`-{L@5S32!aImiKvL#kyiZz^R4Z*X(OD*Tg z`J*EB(M*1^nu<)G3}nfpchmi<{^hBJ8l7{L{_molmf;A zK5dF4$H)mGQI@mzhTgtgE5+bX@z&!QE4L1;@6D|z#f6ns@Sx5SevuiuAz!ZOhtv8? zjE+x4f@84At8AY~&ayL7P<>}28v0)h&k{=L?9*>@5H(H@qME3V!j`ZHw{MX1&gXlz z+7-5Rft}>@6UT9JPB#+crQ#`EQa=Jpj3bm}^6bA^h^%U5HR2d39^%7d3?9q9abcGZ zNZ{XEqKrF_yOw@8t=RnSip5nB2kt8p;*ed=2$TLr=khG^tqkjd(hH~(t($stPi?fR zRpQ+!vmio5M$7dXH2Ns2W5HxLu+bBe0j>ycjMpaHtV9o~4~4Im8F(@@-u& zYz^sKYtF}hbNwb}A^SYrw!55zh(1tYeo8m&brtM|_t`sPfH(9Q^mrJ`epLznee_x| z!%1om8+Yv3+T7cPX=6ywj9dA*At7UoOQ)`qpWlewxG#oya*j>n9cWutyW*y;WHy z*Z^<+4&$#+=5MB3LXc9oumQ~XyL#4e)bOIpM-0>bNKs@u?yBz2|W5j=hB(uQNN~(i}M;bix3! zRh9?U9PzjFad$(*<`Eq^Bo{=QwF;745D(?E2GX8uF#c?)z{=j?tKv@ zK)=TrRDGihnc*fEt7sW>wa;Nh|MGy&(*_aOpKN%MU!<8vSvvTq5ja<8iSQ#L&FAS# zysQ+F*4xFfoZ{oVWhUShDC7vxJ6s30D?JJW7sSiXoC-<>$z5zP!CCC??Y3HDSqG0U zL0b~%*L?$yrc^A?!Jr{6lD>t|*l~GtEfC{8q9<1=g`^Bm%2bho8)@3MIIeTGXTz{X zHxe!HA}3<~ZHMUb-P`HPD$)AGGVBVUXO7ijahU_xkCitcCZ98-S^I}MfD5_+myaoQ zNNSLOe`NYwmngWDmLl+dqRcGbSG6CHif2ocC7DA1q>H4vOXBQf$K}C+)gzRkKwsK> zpUW`jBS={lAKTM27`J#XPm9IT_GYk?A|&5(4-GK_SWx? z`;Pa^i$mp|F{mK-yR;;FLyon2_WrpT(?kqtYJuUYnjXV0z3^xI3c7hD*Gfw0BSj;^Wqh;Gg~q!NvpIr)zI33O(Y_=8@^rUyAat6HyUYY|L9w#~|%GRh%zn z1)o`ff9dqigKGGA0l1XfG4Z^Wje=VPI@;ipQ~5@C<}A1r4K1Q0@1o-c9Q1nHy*(wF zYssK{{N8eQqgIx6wQJ^dh9`ddlUMksqf;p9F@~J!WG}|yt%awh>|BO&3h&8We^%}{ zJywrZ<31U!#FRXj;rf^OUiy z(736XO;DeOU&2rYJKmx7>wAkfy>oeK-JE4OeN0$g=-_~-P!V}Vv0$}?eF9!LwzY11 zS8NA%0Yovj&jZ^p=<1-orS532hsxXgds0?cBFrCW#_J*Gx8-dJER6%k@23t_au1xYRZm~Bpz~p+z~N2W2A|yf<1Q+k zeM=c5AeViU5NwQ3^kT8Nx98)orpCYRo8L#Zk#?;A#IPY4<@dBOZivt2AoI0XS1#-P z)2uoE$($r(+@3M?7Hq-wd2u5VqOvOC+y0@3ud=3v#e?M*$W@wZ)`g%*86#r1^zg75 z^!IPj8IUzk!#fJ=MJQ(6)BbxT-U;2pVN0}rzZUOEBRIz(^V|rX<+g9T7;{VKQIB;j zpy&133oGWgz3YMQhA*aP#Ngxg{kXHM5H+uml^?s`$4=s7R+X7X3+oDIm{$O?m#ZcL zm3xi*)v5hrM>&nM?+Ge^bDC6pA4+g@-BeR6%J6X)fy1b!_!Xujwzhq_1JG=j>$%wn zA@wV7^OBM?1M5^Zjq_BDwni@Mnw+FtRj3na%Mra+^rGjf7*Op65wQO{1wc+KHhcMl zb8K`LhoFz3c20gm1S5TK*qc)-An&@Pn%QgrUS?va$Z+`LnFaFC2V0T`4@8XKg^ryzPydc5#}jt( z)$_$TJ&wyYTsF7f^B|dT0GuArQ@ZLO;KquQ$0%M?lwg3Z*R4-{|GvLnG~hcd%~seo z;E%wquM)Dc>uvLyI$fTAZs!W~@bWFbZDuZEuZ%B(>8;vSjk%818-FfGmYss?Yuhb* z|9!6usg5MYfyoSG1rmIE%uT^;g;Zfmw?qpz@DfG}fOqbWEuLxw5Ce}DKvP?%KcbI< zccj!@El^e>TAyMJ_b4&1pV3EnfsZ z#@X;YVv(rrVY$n_US1y2+uYl`hLXRJ%d=4nEt4$yNJ5{)Q4u5G_}P|mqIn)3H_Ckz z$w-Z*>O}c5^;1qTRpeE;uTRc3qb2VkZ_tL*Cx*Wy4mCpZm+ER`z>!NYtlRVU&-=3T zU!|v(?A1Y53&M1lOl(3Mjku$vQ^Ofnp9aj~DjW$FPIuqoc8^+CB_UOJ{-ZC<9faA` z)xw9Q3PGxsFved&5}^0pD$?X!Wy61-UfxbqK5^DZ0tC5^noS_lT?zdfPyYFB0I+fn zru>#NQ(h&?5$(1l7y(_eu`+Wq^YnPMt6F9FyX>WcQQN3~T;KIpiB_rxp{oN?&GMMa6RaP=^5+;baReX9c_pbPL%{c!$uX<{WQ~@Wf3Z=*Jpw zg)KRJY8`_GkgSA4*7t70@$YclJ6baF3svdXK9(?~lr`<9x;=6}Aod?c+CNtib`)v`ti%Jh#TWpCMIaomxT0T%N@v>c z4fNmI=JJiT&{)rT6Ol0g zZ1X>YrNc2amq-=cOq|_Jv7naaJ{sQ6ajlLGW>qWb&J|%d)!gT{&i?N*$EX!p7@A)W9h|jw#g5vpMzw(z!K_`Is~D6|Pmq zFVKDJFI`IxA1e=1PABu}6(TPUAq2G44-6EaQgqX);4vj6rsIHsgjL=XIfthUv*{>m z+7P%4jE}-9aLgbmjlwdXVYWl<@BhV#fNGon?!B#Tw4%fNa4=?*8u1}pA@{7{-Pb!> zdQ4n^yP=*nS{zyhk8Slt7+Q>?jaE>txXptj67SO7ZS6+Hj_(^6pcql%V;gVsK}?$Y)37a^@&u?K<&z(iNQo4+DC{trSdw?sR8LHDna`>~QkPdu2bG;F?+ z66BA@j*Vv&eg@oWz_)P9deKMZy&>fCK?p5jY!3RE#k3?>Ij0;Sj$6!$=8E9_6|+P3 z6sJ}H&%U%y!4&VICKBclA4MC!Do!`9Rdd-hA?o;uJXx?7%yyh&uVoVND-!%VV@iyw zm3`RREbEtM=hCxARnVARjv#{@Fwsf#v_`WwG=z>cX7yGw&2(g^=47jeA{IPsL`Cqc zIggDo@kI_P(Vx^I(j$GZdt<~T1*cF!=@1GmC{ru>_Qw5?7L$J8&L+-COXZr&H%Grf zh)$7_UfrZ1cTm;9Y;iGv>Aa#7i_5(lf4BE8*fDC}_dSWevz?B6#aF(@O|7qRtVo;) zKXdU%V}Ap*z1kWb_*j6kO#gc9I#%`MZ+lvCv*b4?yupnb^0#0Zo9ET-_5kpQxgo=imq6z z)EaG228_Q#*?@cuV0{TK=cxG6I!-}_c$}aFU3|>KT5_XJtfP*XH1Cf0X0YIGTM`wZ zY}?bTcFRIsd00z(SR-c#cI2&2{hUQJj5{4dag)Z&AJpNuWF>EigIYpzHZfT9ZQW#u zb)F0fyK9hId+|VflQ?hmyT@FA2U*5bkl%g0A~}?dSAicu>#@ctc+@#_3R%o}_k&Qa zUZ_m04ru8)6|6kQ03duMxR5g$m|>npG$iGU2HX{h+|5*9UFE`?Oc^uK5Zv#v1xcNE zBgcn!!aSF3VrUmkprP&>wK1($8!z;fez&J)b?{SDy!%@w zyKS@!|EZ4GJ-I7z&@gq^I#u>{tlxji@~4V-=)eeHDa=);=p+r=#tc0lOrs|_wnCVYvy%F0 zGM^M-o;|qpg^ydXmV-=2v~KHM4?n<=e1$%~+|tk;{&uGi8-hpTdHy+g8k*mrVp~7* z9UiU0Wnqs)>imKmJ-c)2*OjEJ0@Z1`vX@4bdJTd(#Izea{rj25cFtx*BG8jlFn zZ|jP^X)Umexw4vjGfR@r0Coa>cp2|g`dYyf($m`C3qOZnq+4?|((%=$V2R(qFimp^ zf)Bt~ZWcRMbjABjPQp73g=N$A#KsRrhqh zgz>^ab2AsdO5DXUuXI<2U*S;t&oXx3{$nE`1N`!G(Ca;xgUb}9CQGj*^W4YDdLp#{ z%9-$8X0_)rB8AWK_SV>f3A8#0;!So3AbOez07g79)#er0H!Adq)l7$esiLIEEsyby0WNObGBal zis{5qEB91I4a%SMqj4(Rp@4Hm%4s@sL$1w59QEApmW98R{9^9O^Ub0mcm2^23>TPIOq6-tT6MP$1jZ}Kn5LVoG~HAH8B z5>Q>r4EgI;raCHWXD=vs7Jmvg+9&!QT!|DTFSrsamp1IuFJ8yH5{!?uWWdc-MCd~T zo8s$1{i5dVqZ&q08nYOK#^UVv;$u-k5fkSWN&C2FLSe9q8u{BWt{uCLdhf5}BCv~B zG&>_CRRh1q>?^EL!@R~%eny9zuTsuJIlkooj$v8szo=V(s|&xI=>IjL4T|0#=zpIR zW?#`L&n`<)=jfUJ6osC>4hDm0zRd|&>pKQ^+(gHF(s&u@<3mS>qtG2~0yv}erhFaf!BfK#jV zX-c)Ta=$I?VAgX>nUnu_`}P$7yIyW%+4{y3%VA9ozRP9XNLq77q*2RvTcL7L9iRw> z@p$yW@`8g`U>+`&qDt@H*)u}qZ9qhA57m-*jOxdah3``XhJn}7S5hi=Lh$tLBg5=X zEWw3~!~|DMSsvpb-Hyo*voOqL%=bUk4vMC1+u7@#navLN!UNumL-ZkVB7~T6M1OOCZYJr-^^50y(gj>BLcxfT+8ri#_TuxDoyB0K#iwrn z`=>ZB3(okyc~9E&lQ+DbeluZ&Gj!D{nD5<6!=X9vO?VN97U|OzG3@YIi(I-6#sBAj zmW%$g|Np$T8_m>zzAz==@lk;>{6+f#B54g{%fK_U;<=Nd$pkHDSV;bk^#05wnXg}`7yzda2mei+_J44f#kqkRpN)(9MxZ?m=G7d{lJW$ zC3FB=q%?qzo#CbL7E60=9Xj$0i~QkNd|nW7ekHGJ5P%U*IGEGtBK?E&!?(naCkekR zBQy^Ve!3$=R{n_^v%jNiIv>InKX;cNO#7SmCSBN1Dv6&u>JqauW4PC(#20eFw;cTM z9{kraAEnP)r?wL`;hEJyx8IJD;`9 znDZ?CfE~R2?Jqb1WBQRJNpJY0c+ga6m?JuZU#*Bv^l4yY$lTpK_Z_V89J;BslAFEB z#ATF&1J}Hqy z8V|THe@hG*2$Sp2bB0R|quPKGnFet)*7fZ7k)4LwW~tPh`(%(Q ze2Y%OQYN2MlvhjA|E}11`&Zz3cD|VT3UY$^+L3>?O#lJ^1m?gVZ*R4I2=19ERY*hK zPPHu_-87M&brD;(g{BS-9bp;tZj=GUG*tbNVDx_LuZy~Xl;J$6>2ML-A2JZujo@Q*mN-M zCzJ3EvZ`*kV)6C+u<6=2($2PFGNP zHKT{Z>X&<-LEf)?=`yUC-W|){9fn``e?lWa!6?iwE>(*CSE8)!PqC>%9#vGM5=L%C zMa7CJ{pYveuxaC0_}AnAgv}I+$Y38Bd|E@_&KY6tonQ@cWkYS5r_;jU2$?kMF9DUa zay>Ij*B;ie0GPvrannDp#=N<+k(--iZ!c9Lrg$hB