From 2da25be4c3dfd0dcb5b9783a53ed3bc574d09350 Mon Sep 17 00:00:00 2001 From: Sasha Boginsky <41092741+sashadev-sky@users.noreply.github.com> Date: Sat, 8 Jun 2019 17:12:24 -0400 Subject: [PATCH] Toolbar tool updates (#255) * update dist * dist file * Toggle hovertext * standardize code * update Keymapper order * update map and hovertext to Rotate+Scale * push updates * Remove extra whitespace * fix indentation * Normalize tooltips * geocode to geolocate * More symantic updates * s * Confirm all updates --- README.md | 87 +++-- bower.json | 1 - dist/leaflet.distortableimage.css | 50 ++- dist/leaflet.distortableimage.js | 365 +++++++++++-------- examples/index.html | 29 +- examples/listeners.html | 5 +- examples/mirror.png | Bin 0 -> 1600522 bytes examples/select.html | 7 +- package-lock.json | 53 ++- package.json | 3 +- src/DistortableCollection.js | 2 +- src/edit/DistortableImage.Edit.js | 26 +- src/edit/DistortableImage.EditToolbar.js | 356 ++++++++++-------- src/edit/tools/DistortableImage.Keymapper.js | 17 +- 14 files changed, 571 insertions(+), 430 deletions(-) create mode 100644 examples/mirror.png diff --git a/README.md b/README.md index 1c6dd7e63..9dafde5f4 100644 --- a/README.md +++ b/README.md @@ -59,10 +59,10 @@ img = L.distortableImageOverlay( 'example.png', { // 'corners' is the only required option for this class corners: [ - L.latLng(51.52,-0.10), L.latLng(51.52,-0.14), - L.latLng(51.50,-0.10), - L.latLng(51.50,-0.14) + L.latLng(51.52,-0.10), + L.latLng(51.50,-0.14), + L.latLng(51.50,-0.10) ], } ).addTo(map); @@ -82,7 +82,7 @@ Options available to pass during `L.DistortableImageOverlay` initialization: - [keymapper](#keymapper) -- [suppressToolbar](#suppressToolbar) +- [suppressToolbar](#Suppress-Toolbar) ## Selected @@ -101,7 +101,7 @@ Each primary editing mode corresponds to a separate editing tool. This option sets the image's initial editing mode, meaning the corresponding editing tool will always appear first when you interact with the image. -values available to pass to `mode` are: +Values available to pass to `mode` are: - "distort" (the default) - "lock" - "rotate" @@ -114,13 +114,16 @@ In the below example, the image will be initialiazed with "rotateScale" handles: // create an image img = L.distortableImageOverlay("example.png", { corners: [ - L.latLng(51.52, -0.1), L.latLng(51.52, -0.14), - L.latLng(51.5, -0.1), - L.latLng(51.5, -0.14) + L.latLng(51.52, -0.10), + L.latLng(51.50, -0.14), + L.latLng(51.50, -0.10) ], mode: "rotateScale", }).addTo(map); + +L.DomEvent.on(img._image, 'load', img.editing.enable, img.editing); + ``` ## Keymapper @@ -149,10 +152,10 @@ When instantiating a Distortable Image, pass in a `fullResolutionSrc` option set img = L.distortableImageOverlay( 'example.png', { corners: [ - L.latLng(51.52,-0.10), L.latLng(51.52,-0.14), - L.latLng(51.50,-0.10), - L.latLng(51.50,-0.14) + L.latLng(51.52,-0.10), + L.latLng(51.50,-0.14), + L.latLng(51.50,-0.10) ], fullResolutionSrc: 'large.jpg' } @@ -162,7 +165,7 @@ L.DomEvent.on(img._image, 'load', img.editing.enable, img.editing); ``` -## suppressToolbar +## Suppress Toolbar `suppressToolbar` (*optional*, default: false, value: *boolean*) @@ -193,31 +196,42 @@ imageFeatureGroup.addLayer(img2); imageFeatureGroup.addLayer(img3); ``` +
Keymappings |
---|
j, k: Send up / down |
l: Lock |
t: Transparency |
o: Outline |
l: Lock |
caps: Rotate |
s: Scale |
t: Transparency |
d , r: RotateScale |
d: Distort |
r: Rotate+Scale |
j, k: Stack up / down |
esc: Deselect All |
delete , backspace: Delete |
caps: Rotate |
heNh(kbuEfq-8l0&H ZMU9!9E^dOcVumR&gZP4lJpN-RDKFX2(E V&hPYW&iA81obI$U{_axMNquh@hSVvo+G zM5D1xd9H}uAND(e0>daM(R0nS1`!av4?B;wU9Lzm+Q ^Tmunb=bR{5jlb zVFzjM0(@(KG*=^aHGG$vXdgp);qH!_EAlcXmaKK5b2w$i$ZB6AGbrKq9MS^A7Kj$l z8Qs&?>J$4K!1962zCyQ>JH%HLw?>hiV1+JSFqPs_!3whsvLrmi<$w1@*|;57ol$(? z*TGYIuu0Y&@Pfgf`0zx_Sx(4U`=htnQOY}q@e;{BO*dy&f@BJic?qjG6@h8Cc@|Mj z4IXzSu6L=)ryAf1>XKNgWHxdrQeL!$xF6g6%jqOwG~tCg?IeJCCnJm#%R#CRyN&!( z?V$DEXIf*&qp!MJ9}8DC$KXt79`2?je(qtd1Y<%e9e2iO$>W6Q-lmY6!QK Lzo)LHwf1<_lGdO>JJ7c9+kLNrXDXk}M^7Qp(}(uGFM#uPOHHjs>1xe;q{Z2InSu z@vtz`eAu$N4}Fy+zk{}piXp2mV!v*P=HVUTL#aSV9J(qnV*nC{$Wxvz0ZZBZ-H{Rf zO0wx&-L^~kA>I4Iq^wpcjk6N&sTC-eA?&!wFhmBZ!sLT>zV#bXVYH;+2A$gpOv(wF zghf7oe_Z|7QH2<82j;j#i~-2Rf&F)2HO%vNf%UUEYa5t2P5@JmpN*)=@(Ai%29ssQ z*u6*bpo{;lDj)snI-n6OReTJga}loq5habjTlI_bjvWA^p!9*zw?L(JF;m%8lg(7| ze@wTJQ_H1ab6`4jJ@w2UDjN-jOs&|wIg5#K&O^{f+n+Jr13>AOKU;F6gnQr%=|ER} z+=Z(QLc=hJkaevC8^+`xM*j4h`e3PdW80+={aVh|ILRr4)nB~V95%LHo!<2EuR(cs z(Oh{-*DYZ!J$EYvGvXOOQ<=*2kD&FFevHL1TmYWFEpLEQ5MxhvMcuK|yh@k47xRPm zi_W!eJca^ilVX# hVlD!)xKkB(gE%85`@cz+iZ>{w;3Z{7r*cWYg2 z_}CPU))f9Q!_6^p(qeR>o3Au@$Qqj8w)^~^C=WWaXy|AZYbZ7o42xu0Vwo<@7e||> z&m|~Ah&Q;NptyOtU(iSE71Cq-X8w=>HCUbmc2Ga7`tv$^#u)r$PmZve^~3es)o^+q zJQ+~=SL<+d3X}7rH$5VKO{k-7bipjcwn!sA2v6ppkVd3E8UuFs#i;Ay9c~?5Hv9eZ zOjL=Mybbf3=Umi5zcI~$5+@~Fz3Fx{IAv(?uBt)D`ob3-bGh=lw2rRgh80wTV<}K5 z+0pN$B@cL~EVU?;+|qt0F|eN(`Hi_4EA~F!o%}OZfPTo*1skT~Hbc*t(#)=RRoLYl z0V8Y9t`x?Mb@(Z1`wd|G+^#^tFsz|Cr5F?REa&&Y_0rS1Z^1A#6Y0#AeAYLI@v8}7 z(}n7u>NpRMWiGUEUrAYvd;qOC2@7yAB+uo0Pv-DE+2H-Ni|x(k!0ET9@Wuw55aJMl zmFUVE>R{ ySJFKX@?2 zWG8D1s~?eNt{GX-57mWO)-!fgi*ggm#-$HX^OLfOM(tUK$N=>u!6nLBW lG9+MSfH+RI+o|VP>6G z#1>8SrV*Z5IO)SbX<$^VW8aQaGrM2(eaqfSbOG4D;L|#onZ1b3OswLHv= udRK}DusS=OFkI+UbNP0=*?8H%YX(t! zeiL%12Dl& N4)QY+%f|BG%h(HLzT<%MHwcWxy@uVkmJ@g sTYXPOm{b$@24D_0Pf)WwueaSvu~cbV1OtKP=b9woF34agbK+Bp=_u$x!Bb zlP~l^_ >-fkGM|!CDqk45~VM((#l}5S~ix4*nD8CqvA5*ABY6 zbocyGKaeRJ+aS~K7cf}%M zU<@P1T~RrlfajCFTD0#!PkdF(t%K&l7*y)zNs}_lNY^svK2m-ZmaUHB=j7Sf(=p}y zr(usg#N6mtg9rSZ_tFM&QEziwNX5xp@Vi=F=-J~Y2MAVmC!}4*_OGX}ljkjqm6Rdk zUd49X#L6-U7F$%}ZuRrH37&;ghDsvC@C#RkUc~oHqhkAP3_TwCq19P54N#Icyo$AB zdm4k8V=w=}t~@se3*hs~$zdafzMsG6q`&UaLwiZg(T=|nn778k*7jJ>?k2l`A*->f z`J^THq5OBzR?Eq9|D9`BjL{6FVl-l~^*5xqLb`zX{&x0ih0EI>U8xI?%lTYKneqju zX%Ra3IA<%fTvXc=h5lE-CJrVmps`Ii;Hk!w$`GjcwL(|qb6g(I99yBz;2!|amCIHk zxDKSY-v|SVThai$K6vMh1v%Ev)mu*G^y%aUoM`};c@eFQivZ!@rFu7$MuRPvg)_MA zz_NGYiehYW`wbQDoVD28?2!CEj!I=h19QfnqaYoZ4BK|qmMoME%t>dFrKCpOX7any zVY=8Emkf|;lcv-q&o5*KXahPSbA`5g$R(PJ(TWHS)YYk|kUCLDtXS!TH=76Y&ir(` zZC})4>Jp_Qr&Z@z2}-ae?rvH_>%|iUL#+6P=`i2F9-43>asydxU)$;Q-t=|_6nF`d z$fk9KLe7P`F8&O1Jx%@Tgm422QM)9&zZhctF0%=>C5CJEXe7K<7W$HIm(E^J9^qtd zDgs$ENaLsqAm8>}MGcT(Z^LZFTh?pZHB#uvDh98zD?)UNTwB(Pvg~`pSVTDATx0z) z6j9he_1lo?Tta)j$hADHEcyEtw#W{$2qC;{#2Fhts@_Aclq57W7l2)&&O}nr2aMGT zCJcZuh!NhMYUGO+;F9)>&6kN9$~gwvz5nSu+i<|fYFK}CoU}u=Zx>;(-tV4ux40^k z8GtT2wjuu$m1tFj53nt7p#)@PB5+DxGZ2DJ@ S=YuQ9L9}w7n+C+6N;Cz| E%Ta6oaTH0X$r}1jyNQkH{az?}U7-3;lHI^cly>awntj?Oop=(xp>FKYI?h zTy7{7f1XryZ^!`HejG?w<6glT @%NLfgoJZ<7g9YfWKg7lR#j` zVMpxuLd~kCj4%QS{127BoY_0l_R(iDjXXIcNB>|~npivi_G=eyQqhD^!!&7_PCsjQ zzu4@r29_#A0*{#HJQgidYxMcb-s4R*y+$s&+S{F=236HKA$RWtAy=v3WMupwEFx;= z6_9M~RISm+lf@v-)w*z@`}x qQYtG?3s<491Q6VzYgaK46Ppvlb_<$ z?=U%S;+I4^7$#xwV4yL68ViK}e&SyHPx*nq*SxOh#7z*kHTM|kjUIG=S_L3^AkEHr zM|Pbo0jsaAPGE*H^u#+UK;1?d)eLcp_8*-}9lRsvlg|S@mT&kQmKpo4o3{@>wE0)@ zE{??+CPU+W*?Bg7F1_5-EnA{9YR=N%Qba|efpn~hL5t1(xuSv5UadJlzLS-HL>5s+ z-cT)U!qHyLTIk<6VdH8>W7#?O&G h=z5IW`k+07$o1ngEGZ=!WF!IL(_td3@h#IBNiX%xlFp0)@PrbF4$!reCZJ$ciU z9Y%(Agg3TNvFx(pOw%DDU>f0AJyuY=pxTwle_wZkj4wz0z&K tUCO~m@pF)xiee;H8!Nh~X5VIM+KY|nmwTZ9v*%ZY#-iq$H<+?QmLUFXq zbup(_(qNF52!BIY+A{cfl{Yo4jAX4V-bqU4+f0D^^}TcMa8u>6a9qhx;?2InF0(a= z@!-)rR!|gy7#wT_Zv2`-=+f}!=7f1DqNs#xLgUtLRh_}kt`xSbvDkaGu0K9L`DRB` zdK?$)C2@M%f@eLBPVPv0w`Il~D^8}z7Blq~8eUHDulS}fUgxmdkXH{YvfL~Nh8Zut zX4iS~E~NgibQhRhb`Cn!zw$#ar%tzUY#VmSDuohqyKzrQ^vs8}Q^_XGjW9n|zxmpB zQcJHx4>EMrT}USzbx(5^2N~af(Q-6X^nsJTW0jE)ttI2n7A;3MBdu&|bPZ(2prBz5 z_;KI!Ge+BtSyQ7G%%BEXpiWQNyub6Z^)I)mJXE&1`_keLTk30Pb$ W7b~qd89YKxdgi8Rxw)?;#~oa{NM)KUApk zjaBRWEmzfNG^WqcekeknWdj`OQakOW*xAZaYIHpDG-BW$yjeZ!YJ|$=sFdgsE?s zU2?m>S%j^lYxzUf%$|&&FLWNbWiA}<=YA42Zx*3GSZEOmakQWlVq|9+U7geEtcZQy zS0XQTPxuIH74ER|Qi{GeWYLt7YcpN^i#OZUqjt@-x&@xlvzv`@jG=&A@FG~GPHe`d zIInV7eQDplFI!rIbhx F+qx)Z%@ViF6<-Q&UdUua zcg5Q1B&ZqF;axn#P^2h-)dYk*cEpQ(hi)?KZ`QQ*Y5|F9-mMwyza?nKO{wh9I!<1- z${+UE%YXsi?6dpE0)S&98a#H0 lzG-2-Pobyfu3}tstkBt-Uk720+bBQ)U6HpkXgfE5 zhP|7N8rNZ#tv~gPEbyAMw6G3m!y`{>J3G2<27S=y*s&_#%mElE23$4&xl&Ys35xM^ z-0A2bAbu7~8?Ea60JkD}<^^`HOK4X@>x?H@pR6=(@jK?GU^?kXSnkCq5SO+Ce%z3Z z#i`}^2vJ1c(-*TKos^EeNpDD^yD$sMxSnqvN@L|R#zhpVr*sX8IM3so8(!8>xEEM9 zI48}$$Vi)81Ydftz&&+Q90H;2H=a%4wHd>OHP)jT>4o#@w>WqCog!ehCwp5- RA~Ts-Tv`t!?NOuW@;pkA<`(CLg Y1$tqe7+}lvELJJ6mQPl5S z0Z~U=Pfzord|+(VYv5{_jO_yVjt(ZxZ6k1T?$@GZ4ZI`xS99I9ro#69 #ArZL8uu;J9r&D2Pf$iXtPku(;M82j7*ys%GbWE?wk8QJEMV$Wy%jzzd*b zSZ(o>`3jZ`vP?}5B{rs0L|?>EBH5RvH#B=t*%TOQ%yS=VEc2*o!X#5`Ig;}k%8wHY zP6BxuO{8;o)jUmDN>#8oxw7p}FfYfnx-C_l!XQVAOV8vcn>C1eMt->=P!E3@&ygqk z{hE;ZE#MIN_w#D0Z_*nzH0e*)+gVk_rccW}AZns0ZMj<=$*GR8gcJz&8 I6eKXMc=HzO9)aPJq}JG%NSlR?wzbsjC`{>_k*)`2s#RH&L@zW2(xIBaXC3)!Kt& zqymH~M*|cus2SO3fJZ4%Ou{jKg mn~LX8(QbL?(hWa_-#GY0_-zX?0|iL;&zANVSEcsv=hBt zmIX-zi2>G#`j5fYsLI<0_3-am@aMkGokOx_bUNY&IjUBpF0834t8~bdS<(hyv;M3; z6)qhKH4P~;^)9)sXfWi*Wm;e?Wn_6eNBNV076&7t0Mjd@F+%~O3lRG!qT+MxP)*ea zh8a*a>&TKLVurlsF=G#FM!DHo=%X52K76PHx;tD}7&c0gOKioqODnv2p2PdVoKDZs ztI7uRv{~Obz1>=?pDBEpwO)qv2Eqd$CjsMilY{3fWd)M&id6er-j(LbR4OnlAy0zg zkTVOT6)~vkgXzD{JT<> w4v*NM6>8hjG0rpmP_d+ zZFV9$-~1Xn 5$EUz8Or!Hru`TVa zN_X_uF;U;DCElzFBetR`Gt4`+eodMpm$ph=YT^Z6w*w%qLq-({+#noanr^?D7UhFX z$@XeD7)^vDOgU|9Px+nZWkkW{d&b_A=CjN9WR{l@@MQJzv4NI6pDYTXYr5Za7)VL= z8J7f56m;u>exx&ph%23B(FT+_2v40kI1kRI&%erM$CX4vF%!dtxQY5-GKOmexSV+c z;^h ~=5*?U>0ZkX;D#i{;uI-Fk7)2qa zw0f>#iwh-MP|*00g;6G#@Y{r%3A(z}8iQP%x45KyulI>V{-OGHR!7%u$5!MwpZJou z!+u1!WC(7ev)E(nin|aJZP)4CPS&*dJZ_`AR#o3 I)HsKMDRMOWyt+o@lnFO?oxIg3`UPC!zyk9i7BOaY_O@Rh_dQu_d z1|6h41+0S3*8(!=0Mzm)M2@^7(j3Y7?5H+ROB~8#jeKmcSe%cRc0sqx)gozjgDQN^ z){|lemVn{0w}DQg4)qIm@xgQD k*>&MiYdze`W|BYwY4j5#NETIs~!q_la!z 36W29D^~ z&cZ6e(<>e+xJpvh_MKSVV aOdnc`MFqw zSjAO0Rk9~+eottL(oqW< zd!)y4s3u*FGFb&=p?E zg3t&o2xZD7hjZdTDu(p;vHsZoNOkUL Z+DKf)PIXcXx{aG);9}P?b zc>KxWV>j|$T6!|t^0&c=ld?~26pmB?UQm9EZ}Z!3^!3mNi^YGr%4i)>MY9gPZxhYd zJrEC}^)3Z*z~97Ku9@KR6$dor#oK&ZjpY;ELd0E@@(V@l8b`SHqvPrMMU$M=FiyTr zT4|q!R 3|bj4OU@$Zqd0f@1C&7bw*Fjr{myHfNZNKD8~lI?<2`l zNmE9DfY4R=LWZTa6Xaaa$0PYCWiKd)Pf^YtJ V@)Op7^L&k9Sk(6%rvMr!XtO2zyK8LEF0*jP%_+_-Y?|J@0 z8P$gbi|#@3|D) }{+2$II#-CY}Z3EH?jG}1tT1a~L6 zI~=~cb?cnBYVZI1&z^IxIi4|A? PTocaDN$*e8n~xNE~|9^6zHerlhdW&%6zmvrj+!)J7O zL{Tm}T1?|Q)s2iRBAxe5|6M0$FaYz~@kA_#&4hDx(s0#{_E&vlFO0>zUh(1Lnc>_} zhpoFx1~q-ctBml1k!~Ts|3_tGDDVADn9QQd(aG~1C1uY9(PgGV$9PVgWNt kxRw1QZQX44?0~0$U6OVEQw{cOQ=bviD`z zfSXDuZ%%VsgX 7W!byh!>f04XK65T6t{Q09=@xgB-FwWdwi5T_Q zf{j(7g9`J4I$NX}r%WmR;doQGMrW;r%=gQM`5?Tc<(qPvTCv*Rz4zlDl>WqI=GM!M zh`a~K`62k(a*JX!Mq_p)>cD8kz7(-}TWWpNP}*$|gl&~AdV`aA7J9cHRe`k@=P9Z& zVbsz6CHvH|$shz~AlN1Gq*x?4nbmq&n0u=Fr}#4NGKWWnFZ^>()x6$hyuLR`AS(S= zcIyHEEi8kBU?**`qE2kC4qf$6)4Q_K0#vMsfK} 1(VB3Pm?Op+hIR$@NPPZ?M9KtvUM0~i` zf*Ju3;fMvv$R)jS({~uvrPk|?XCA%CWuwxHWPZD_riE<0ZlcOo#g2WiJzOHBnyOZ= z9v5%N`d;(`Zf=n=GUaRx5jiqCfwN_lao1sD+OaSsQYp522M29)Ev^f|b4HDW&pJ6d z@1-}tq|2eqr5-F3U)xq)_q~IL#qiPlT}1LuAbO%P>Kpp~2DJD0x#$u6+DR_O%oh~h z(#Beppn7$IYdiMSh;i|PAn5*{CMwmG_Z@qFf21EyrI(=CH>+*gkB~ x@0qo%nkROP@V~wPZKtjx$eNxKYAiObiQ1xi#pDUoUkWDY@W2_5( z(O ^AXp-zBAKaAom}cGLZq8nifGoMJ#|8h`N!{_Bk|?h zyuSe4O1}@6)SWo0FWK?O2qQmDfq%}EmaH6_=73(>1& (+6w+1caY{d6*Ci~cV#){Q^QcNl&eSO z$oQw4C&Ky8k X7?1dWy=fzX%lX-??uyJP8AyR?UYxX~vU{Z>4FS1gbMrTXGw; zx}`HZF$E{hlUiN{GJBrlRsOXHct?%@A=psbSw7Y5M~%gh(N6`7&&d^z_RQZeNATNK zQ7bKx{w!XUZ`InH`DA&iZ9m1alBO}I-K{F)g(&X9ddJdReaQfXu0*nGv~1OKQpWcT z;T~^wS^LdmegF}Ntk@igXt^r0Er-!%jPk}?uXZUhY{#Wp@PA0-2B9Z;Qdej6aYf>= zU-T}IDyl%av-TufEJ?tiWC8Jb<6GhALLKf5M%pr-Ogkd6JwNx!YN<6@BzCbSd#tM2 zdLp9ShC$}J$ZXTgl|L9;P2h}nFMi7!qu52Vc{9u)&p7U0(d6vCGaSaVAyM1f(o`)q zHD1QzN^e63ON^=y@C@1*(i~X8WfJ8(QHt?fF*I-!V!tOwG2z*VwX(Lf4r1(v$CX>& zBZghs(iKk5_)!k1fH0k3W3JUxeYCr|%nS5uc*CGDLm7#cr~jmW4=%5jx@nsak7fAO z&~XXc1&^{%XPD@ktll#6=F8@Jj>lR5Nvqt}z4f6)n?Pu $tO!VslFJQL~Aa1KWUmmsN6tTk>DV}4I|MWL(dY99Kp5CGB zdTt~<+;;u)zg+d-aJAi+gnt{iQOv5tfxxCB!b9D1ve?Dw(_(Jx>~2RSL6}RPK?w(% z#x4c^wy)of?}4Y``goa(ZWMhh?T1=HFz6gr$=4TMdGK|o^k)->GO|o1wl?dWarUZ9 z-06BqSDp6RKT@{2&NsBz26W;c(B1E6NBJANn2rt$$?V9(F}O&mA(NPOK3cjw$seRz z7TfG1i%ZW2=|=ZK*TJ@S=F132>>a0<*NN(;dn1W%Tk*;MEI#6Jd= zNPC->GRoL*khR>Hdxhoy&jP5|{*RaP{0GhXyTRcfe#8Xg$ZRrG4`+6t<`y&NBM!V? z9l4Vu$=CFBx%vA}G#b!cHPh->=(RvWUGDz4eCRj@{$5M?qWptI_?! ed)fxhm$XBAaD3aR3 zXPD=Ja33TxzUHe)@BCQx-NrSCL1-BJs2Gq#R@4&j)b&U-?S1i-lK3Q0!`M|zSp&x0 z^1drIP2tzn4t@~Gy}M4sU@Jk9xz!9BgP*VH?$>@}9$_A}m@k+stFvXTrS`2#OV)Q2 zoBI2MdM*fKEF$|tjaQ)rK@%tx!}&MQFf#(nJ`Uoz5*yz~scs@H_^#rLo-js+igTyS z!YNj$oK;C#(mYzx^p|p)7<_)pnweN-w1=$hDqBY;XpOfr|7_Ad;idX#G+u)HIfx`@ z6s}K2!{Ma`QP58p!=|F@+m}$InoT6FBo^Ph# `H9QE4!@1 zfz&SPCp)o>^k1MQtu96v$^O{3e$Qp#(+-K40(NXqa{E}Xy1Js#iaO1U6eZ=3LY`5W z;zPCON_dm2jF(CAn!?$q7$yME$J`yt{R=~5yGYxm>Ky_?9{7lQ*uf?0WtzEM4f%gB z|3X~7A1dk&tkfc?WB+*T?&|+=LkCVYr@K2|2xGo!{UB(pMg|L&S~a>ZT*sW&(n-~m zsyj}IHw$fAiS2RR^YzZ?d!sJ;TG4HxYk~I@){C?^3~7w)skeb2!yzz3D3Yc>3oe-I z>L?qMsa;qTLa~u&WVtB;62nY)E9N474c|>&Np7Y;Bq{0S&y2_X8}sBHyO4SINQ@L* ze^5g>nz>7pK-&;$4H$!x9jl~W-i7*+XymiPN3i3K6MB-5T!=6xSe(gU-B$c~6}x;e zTT>rcDf K4V9pe-^nRKkWL@$G{iL;4YY&VNqviSPtP3!$3YA0M^Pj=28_2= z`U8^}>mKiF5NxaO3_rZ3Tl0t4F-VLEtjc}a4 CwNYn1z& zxYT1jsSmFMLkOzyL);;fZpKSNPPHwvcl7|y+JIsm*iopTF1MNIe7nbIN*26Pn_GkW z%IB#|kfy&zN~3AR@rUuXP(Me}G+AeNpXs^ruBLaVVo!&82*)OTq2~xqwYQZclGyl@ z&4*eFUbBQzyD~=%aWOcY@eV7(maD6IaEJ`U(LW8_p+;F1+);69l}(ee7vnyJip z`ejtu4MR*~r IUk*uX|Q-z7Q*f@GzWkyBS{oxdqg_6Zu{o0v`WJ zG5CrO700i75G^R>$@+P&&S;6V@YR!DcX-8Vcu>5CndcU*(-47DQf=8;$vXQKg%0Hc zwynjgR?OF7vG6oBfd7(~9k- 3rNB0Ut9CMf8_(rxZO}(o4UnE!u;wC@;4+qNTn}jml%zrR3-sLQsokzRP*V^2~5= ziYnvrsRU(qy9C|r#19SXNyK{FzwBr9IOUAA#CW IVggq!SD8;e<9CR^ z9*AR!AN5;~hZN_U;VAB2hnX##Q>~D#3?HGCfgF@6cw_7!>2|C>!U!p5aTw%~8U7ir z0MAoq_{Y`Tar)x(t!y+M c(I0XCK~9wPT~vq4 z4?!VJD(Q>u6LY#qGrXgKYQcG_Vc<&cj;;;tsR1PQf{7|6p-zM8cT4`rdR)EVloVS< zt`zg;{Gkl`YB-o`ye84(f-UOV8PJ9ylY(7q5aQ8i>f(V=X>eKLx+Wy}a1oaJQ*vXN zVM~b(tnV$<)D69s7f!L|awml9Iym~;GY$?0!Y2^CVN36NC!7G>j!>U%k&BqVt_}V@ zaTT9&PwdH2MlzdUN(BRjNz*v-Mx2s}aXB5-CXkOT%^b<+X>967l ^ED}2$}mfjSS^cgo!G%eo#eJ?*Pq2)U~t^`?M zv8hb=OLC^4INE$kD;HCzrrq6~X3%2Bxa^+|q!LDCY(z)HNq+bW-NuiOeQUm$RiS zSLf0=#S-=l^gc6+SDQi;iQt@8?-?(SPX}FJKR1jBCa8YYDYnK} R~nPeX-EMumxR_cMC_I>D{U;w|vQExBI)e!|s-6CS5*)ega-Rex5ff 7L2ZJKVS1k78}Z#u z-9_CRT2AUc=!+1xkJIilxAu&It?LqNX{?+&Oobw=hfghYYVJ_qq6sTPX-`5P(=_)L zHZ4d4b|r5+3`B1j{l#qWp90imRm2<5)&hA~rz&l~CVu#N;%ocgpDW%ow{$ Pgu92ygEJN?7wzf*;BNWTjxwu_g~D(e9nk;o>}EGFnAvZ?BgBQtZp;Je1b2Nf zl+Op~H-1wBH2T3g0%Y9X%jmZPS?YDtjeO&3(E&nkMYFDi*LYRejL@`}<5ma52Ofab ztiXLhw{e<~=RdKn4(^B3TGM|yMwcgtPk&%7Lf0b$Jfch1g?c+Axn}vCM=Tl+GKXJK z9{dV1$@|+V-TVYA(MG^9gb)8P4)9{}@S6 j&>H)t;}dM<)MeZQ@1X;`#fIAG3YX1t3$hSFlm%iOL73UuAz)%^6(U zq@36aTqTaoms7=jNZo+m$KPauG~?h5c}PoKdEr6ap K z@3sCP;eE|SJPSeHfEDxj;t!zNw0pFWTnHU-(&2gKv)|P&>u5F=H03AWVE=~{W$P^k z5S `8r69SgE9+iZ=HW^_qK-`gCEtvA)fd3!r@9)QwsCRP;95Tpk@CkpJyyh<0 zR?A&${tQ;UZF-@b?hp|x_z4N%<;AEDVPs)zAva);#qM~Q@$Kh+$4pEaln#C}o!8Bk znid<%T+m1uO)jHJQ}@GdD8npT=m{(&=V4 ?6=id;hIHgJUu;3)1uGgz0trK zwr6`v77f!^GZmil#^|}qh>~3?ossv#o?vH=+M2jU0g3vj^NYFmeG-kiLHwD#&Moyo zwV%&A@E0C@{BEY7ka*n(KR!vs@N ZC5<=kW* ULRQ&x)n* z_{#0U3a6)q?!cb159Lk-FB1h-H_l#VG;z2so;0HgUc3MJ% EwK})urPhvjm~~z1 zhx3Yt`ex9qL>%AJSC$A5OJQ{htwzIX?f*HMR}gPBjOv*(il%Z)QnI~X(91@VP}R&4 zeR8CmUyiQDJyM*OL9Z)BFfjS?t2m1wozz5r!E!q%@ooGuZT3RUw|kNqA5Zyfzw?|3 zt8P_24;)Z^bhO7BJRY=A$uAjDYB%b@y3v6wRmnwW1vh;&Fx~0QlIbtMNS`s4y#9o; zH?i}R^W;)<=Mf9gzWGpA*z%^+`#J26+6>R)im~9>9{cRVPfrLa)gzlx#5rYx=#60d z5Nsst6NENJ3+YYeX_F1c^GgWV`5q0OdZlt-+TdnrF)#XEG)Q{x3KyS@fX^hCZkK@G ztfoEVl-n=u%}MvjDiO2R(mmCbf^zpaO!(7eMdYTCqq~rw $$BHnPY;dgF6QbDtK1y z9u^3f1WurZn2X6iWd&Up-a|%q+?z}jqdFrd@@|!L1NMq0Si5HXSc|D{{BffPKelCW zrqwGB6Mg=G@C-^q Df32-rYfmw#x&{qAve1t8Yw|9VXTTs z48lW6VlTzOy9Y{V+ZS8jc Kjwl9b)zD;s)|ZYOAxM(B8cl57t(z(Cbj*v!c_yd55p~9cDk0Gt?dvs;Auv<% z`##1o?VISHa-dUbhZB2NV6RNIF_K>=w@Q5WyC7J*wI<&av1kV24clqIZ13NvHFoBH ztU2kiPyT*7O!+ F3ka*c0DiX6Nju!<(Se(gAK`sCxy5pDGq zGyo@Zh<|g{C 57xq1QfmG0@UHm2uxH44f!UNP z79P-rQswo}{F6l(G-?mha;zi$EHXD{eLG+NXYa$d6Y`>F!Y|# 6;fh#4c;oC`Fht>Br|4 z$7FY?`O$+W(x}GC@_)|ZeBCK#{o2wleLJ8N@I^KpA%Dr1Z6wK9{G1QrO1;i_`19>2 zg-Fe6+&r@GZ>=%Af2KIs1A;T6=bM31FSc64PCc71Kb}8I4Z(i0sKzGyMF&iD|Hb(I zllqr5x^d=xr<9d;@%bAT>}$3Unqiqn0SJn}l5Yu=RI}`}^~xZ0Y-3sDpp#q6&l^ zZ0IujcwJ>#!rHM6Qgp8XhHZ0~=vuS016HP&{TCVH&M6)UK{s~L*e{H@YkLn_m=rZ> zv!eUQK9^X0ek*q_RKOgOL+VH~ze@B$T~2~TPjvLBpJntJ^y&0Ebf#L;-|K6v*D1hJ z?eENa@;*2vYl!`5h2U|WiSCLxBtKK+X~B%xtMUg-miA!Od^efx+onHWrO_L(O0Oat%SY_53=8*~^NstWOs$?G5;1{}O 9*_C#kq6)k5#Ys^F-I~xKN-l&|I*^lj2E0yM0ia8=46gc?T3m zM2Dx)8}tAC^#oottvaIYSuh|l_oVQ2iHqRWZsB^LjcI~sBPF7PC85)O7v$4*l+N$i zI6$0;+Xpt =R513>R|A7bUI-C6{&VB=~0t`gyu k zYaCUaL6g4E&X0ZNY>c%`f;S;P(sl<2_iDgMD(Fp=bX{bh(=jHj7Ea4ahiAplxRK+& z=e)IMdN*_Y*|_j)6+>w%cdy=A5@G-0xD+R;UR|7Tn)@j)r|hve&Kb>=Gj5xTd8kRJ zllowX_WL`pHjLDI@P;rx=Z#H`H|V*Bbp2ZZ%d$wKQrf-ZA%THvumjF>n1>X8yt&>r ziR3ijHNI=`j?qcoNhhh-eZNrgE5&re3#d5B*lpZdH0^77B(S}^5BPc-N6)rJr{7zy z?QT#uY38|X9Jp*;E$aMasG?61&pg-a{tyZpZ;cxM*?8n;0~U?XPSu|?Q|A2)*PiH0 zOv7kj9ntslu6*>ff{%Nh!6}OF%5!GiZ8q==!itKQ5i{J)3f~q{6mVD6q%*fD`gkZN z@N23agT GPs5-eprPN6`*tzBdT*=n&|)&ZR`7EX?a9>X;-tw4Su_`!I^OGuq~)g} zk<1ey-t%k?5Owre(gC(y3!}f mr;$v3FXQ;pE~DfvJ3>WgAN7KS)3G*+ z>oZ;&^(P}~uK()n;P|%DyFT#@i|*Wi{g|48(C|dj2kj2wDRypoR>GYeZDe^_3TQMA zhbH!|1L&Qhj$I^k%Srp$T!S6-)taMbd-UrRYw8Z$)CxiKy)~ybA_dt``hPGLpCG<$ zqb=KXr`ry4Gd5zJF8jjW=ad(Qe%_vHGsQl1EK+M@66yhgtw%5AXRxDpdLkEAnXWtW zT+BBPDn93x89s06+!Fofq!!veOvQ$qSJ>FzM!P@^Q%eoUC+hn}(av?6#C3&-HOr%p z=ofvPVa1qL5lADe4?n`-%BJ{NG)s0!4qGll!@$;*M~lDB#?EZVC$~2&?Dz01_yEIr zw*SORdidaYRH0a!+-)b_cw{wHt$JS563+Xg@oasdx=BtLWYV28JESkDYN~IT&0# 7Z_>wpTHnB}=( zl^8K#RG_`XJZFel9)v! _{;}XYP&6+cdi|KxH+z(kH_7tSDLJGuT<7i3m;qZ z=7Kw|m4t01Q^BN+StIkGZXa2LLFtim+NumsyokJCjxKV<8v26;P7$vIs{Z@ob4`Tm zpfsV{8|WQHX18nMl6Xk8j~xZmMhUVdP)^E+~XQ{Q5+ ?ds^fz3VY`Ax*?ip zK4JspdfYDSn@L3pB3-{|jo$tl7{~zBv2vY{x;cCv`OH;h@Qd6BJ$P(6a5c+p=tv^s zM&iK=e7UP_CJY3aEuv &%G6pJd3Nd0i;c`6P&l8A(6Y~^sW%L<{%aNK-Y rBOtbXFI^5pA`!!w6T$Cjdv0CjB~T4 z``RaGD8| 62uH;f z&31`*E>ZPOWO~urtU&1O8IG~5Waj7_4~>R xfLbMAAL_x6E0R@%4-IPo~p$ z&7w$UU5!Up6m)CNziot=kdB wDfm+sbgOa>YEIDr{n51hFIU*Nj&h0XiXGlFfTs%bf?YRWyFAWtiz zdU=&D(N{ucWtYM+{NzMHI%0~ st89OUDyv;XW`rOerdViN-# jqO&;ATh*P$NMd3my1suxJScm&S+ppY>}j)6Aa*=_y;@;4$xTvvQ&e@g zR2^|%q|ZQAy^2FZqIowjF}?E!kjw{1Uqdq*pYXk|m+@4rt)$>wH^IDQc+T1DcRSb9 z^AE+NQ}W$IgoY4Dquh2?G%E{g>$?Rfx~o69P$iEb&vb{|2mR!`FZ%0Ps6Ml~N9yHm z?mHA!>F*@X-FoEV-P)!B>ZF=V_4yM{T|2oKN!8V9mvORZf~44v@?t4d-|< VZC)}9AeV+~DFF};&BNO0Yh z|8KnSdoZoX$MaqU=R2u+Ul>uPA&PAo-;~<4fwKbiH{mD;w)Im}`mmC3_Ux$csehT$ zuF&L@bfjlERjLo`ekr?G>JIWVJ?vA1kQAdA25idiX6}rYsmqeV-U^{}LzRv&2{d|{ zw&@Od$|L|YZaUDJG*^59hnQc`P3cr~X{#=G<@R~7r rn43nMHuKUGM9MSZt;rP4b2>7GE*JuO@hH08Z zC04mU87C0SD3 4g86XH?@} z7iPpaB1Aiu;3UbvHlC)qwk#1Ab3r-7250yo^Vg&CreRH{R&tYt#AV_RI4{4eAR|lg zh?Oh#?fh;C4fhH`KNhPId6gb0Wv$8R6I@Gvg!lw10O#Y)mKn2MX|w2@b&Dj?!8I*& zByHWLS~jyA@R12Mss?D+*B2Qb$Q; Dm5_S $Tot~^6h{zjJ}c6!xDPs=#L5KfpGscPZK z&89@uIrp2N*}r3*;%ug%yy8mFM-3|-Uf0A-(`UQ?$4Z-r@Z7o(i3o%IR$kZb$-O*h zcZ9ebe>(v6w!*mJhlnnZQHZg)f66Fd0<=tB%4H_lz}Y|@i+4 HPgb_0>^EDz4fTZ+ z0c_mT!*`0AkL~= 54X=T+x=4Cx}H%e+i={*v9VKDL8? zm(8yvk8S;GuyWfY)lO+BnrH|OoMAP?3% NF=GcYJ7141)@!@tOZy<@f*9LgYvW{zGMrB}zQU$d%UyQ7XKV(N zg|jYcw0D!kn<7@*6Yrr^IcQcorrs<- sDpO~pqg_Dldj>8q19-1bCkKRV!O70) )kStr&7w}Qh!NW>PZQ@8*Fw#6?8%5DF;+LX=MKuU) z2&B`@PWcRS38dJTRm|bUenncdc*9$>YNlKwBg-w3&@Xt4(T`geWZ0gY7`?~xP`S6= zQd}BVbZBTJWyOb6M}SlF(Gd$l^PW>&fBKGovK&8tECY6-a)k5|FVz#BF}8xOg4D)% z=m3*lj#V^$*|z!0Kxqc$OQi*#f}*CzT_LlMVT<6IrY?jAC;8DipbGEmwlc$hh*t9< zu(iQ7&F2)7($^XN$wWz8eMWAkowGwDpcr{WU6;$204lz2gT_$_>P_O|GCIed+@XiS zo-+C9No6Nrt*E1PGEJeLg-W)sZCC5?x%t><tRnx}n ZEUW?l9janF)$%l-Oa z)@6|Ty=*s78Li42-Z|cu=jYFOlhcnv&g8D<);BnC?urC!E(3#-WK7$lb=hr8QnWId zp58Cp`4j|>sm3A7=4S1SsrUZ@XUkHxVCW0~A_kOCFYhG^2*>`OORRZnD;yvKZ4LCE zv883YU4(2gI>at!3zIqCejNMW-ClF~*Fx-mx+5^BNmio&xpe}|;qsS7jZv4o5Vf3P z{AZmr>YYJnZ^w>DD{Lqr=I0`OAKc+Hf5> 14`W4qLH)?iKN-=!Gwb7n$vW5!Mt$b0&|b zx>3J$tVwztOJ^2L%22wg&EP2Sg;64rW=^EOU3x9sF?R`$*P*>+h!UPJE5dC2XxoIo z@{EM)7edBf`*j?JK%eiX@t>P?pVMPtGJD T2YPSWx$n1T!T&lW z;%+2fD_u~Q^`f8iR}P1l+!pK^FU3yFIFg$e4*4|V+grt}@Xok@cmLV{#iwZdu^IG! zGu1D?UFlhK+##5`hj+W#xWkigD1DhHP(ZkLTR3NJZf7Ex!~1XOue+wBW!2Mo%h4ZN zganaBCl{xkdS@qo?oUAWLi|#&^7^Sz^fQPuD{k~?+wo?gWovk|#SHtS>%id9{ruZC z)nLzkbWgbU6MV$-s(zOcGH#nm!PVZJ^~fCFH2EuX(gU&+4BR2hPbGD%_5rn| q<>GQNpcj+qdya8w~Wl!9L=CgK_`E=^)Lc%?|1h^{dN& zF?FYL`H@Mp -I>~!6AHYa1BbA*v9HwQ+yvi=z9*k^#r0o3^QQj%@R02!55KS@?(!Q8l7-`(PT~WF(JT zw$w0tAI7ayp)EUO8+w{d0#wF0%+{_tOIXsM=IWMgEo-rM J=z!hc3}DMsr#h!9B0F^L3-D%#hrJvyZAmOpnfS!;BHx+Z~R?1sVmmJcBrbZ39u zbtRQd-*5Yyv_`4U&Mx` vrxNN zx;@{B#||Qq(qux&MMuDAOX?h%TC-#a2@cK3Obyq|Oz~PiXtAwcv86#pE_iyA;AKYm zcM1@k +(NkASvX cxmU;m+Kk(=G-VQ(R)3b8M0;Kk{^LA*nRDmhQ%P6uRkwo^ZemNb zQ&|@ZTguZOd|$S5ySeG}aga5sf+)mRd=3m}y?2Rv>ZFbv!Th9(wP^K9@c1(QMOXOh zc+LhS`);v!UbM%j!lFxp<}ij^GeA`hgmCeCUOiWycBcSlx%LrRYNYkg1eC 1v-@P06(=w=31R3u5L{AMIc+wR=VKds8U zz3u=y$zxm10z$h`il%w*tEZehApgjRNI0ng7!SOW_On&@bZ9b&k$38ityR3G%ULw$ zQjGEKaoR80%pybWGoS?By~v_*s%Onv*w=`0 0Ee uJ}iFc-h9zMS8})O$eYYVS!*Zn?(l64B*7V z5I#(UWz+x+9KmG>E8zWOZVt>w&WIc^sAZI}fbyZMzDbBJ;dQ6NvxvQLUl?1nwV+lH zap!Gac!T&R{}kQKVd@q?0Q>jA$ythKKUNt5yQOogS%f_d+?WW;k &HmDn4@CsNBJ%x)ANk~jz160&7VUZv&3BZG_E#t-)Hu(4TW3vM zL# GfQ3JOoOUXL3q$h4*|e$g;ZSO^>0s=hmx|`+F%^%Ur`AmwP2V zG(Cm?Qw6iQZ`xwz*=Sg!A2G$41H0j_e=>b*>r@-3w0S6I+WEq}=Qa95ujg4Gnses? z&Ah>OH)2%GrrDY>I*k!Rmyl>DI*)LipN(aNCtf7@aAi@0bNpRlSJM7>6Y$rF@bZ|j ziRdWml3OUj74BX$5-}Clw$~ks$F>d3USxEIkSH&FC)%E_Gl{wsbH$HvY*&6grZJu1 zJjN^44^XSx%}y9+PM9l4m^~r~*w=lca}`*l>A!d0<6SZCb|&O#ToUpmT7|@Xz7(}Y z*OubS4mz=9y))(kTzxTpb|pXt9RbO(D+(w(G%vj133klAk$vkPrPn^f#+9uoNQyK4 z^p?8P{ s8=>>h_C!C zNO-~s)8+5s<1V`1&8fBtd|(r`O7Y{#gfG7^^$^mpnC!W3PC(@m^~X)~*%`yHP8-$O z@eY^(@M+f-tJCv&7~TRue2?S( s)^es+ zFs<#7bGJ=yBg6nS{xRO;f#$EQAjES5chW|;wwCLB&=q0(1 z3tP}wkTN1>9GU%-O%c-tn;V9qJvDJ#%of2+V404p=pT1h%-;kDjB>okWd`Ky;e;ssJ)Sb+HU((f|Lti|9GF8w|PrR1h zlEqt}LW5z#fmh=O!S-Aue-2MERU;bxSXAfKJ+C}M;~EsM*@|z|y<)%KMJSzU7%m9* zi)N|iJz0;) _wOmGb}A_Ff@oF2jJf$LhSo$SB0$nW@NO;60n;7RW>9vNtG;-|1we zul&S|ck3XqyotintUpW*7KxBEFrQu*R%F6v8*Ok;)eeqPgM=OASQ&Aqgn$eKv*WV( zfJ{A5RWfo(1lDufckaO5Eie2lE-iX^Do~XIOO5}@teOD1U>iMO`AHGRvOBNfxIL~} z2rde35pil$SwaNd-##^wq4}MGwsez0_iox52mNO$hu)m*Zo!nSokxtD!LU6XVN0$T zY{vTGDP8fkf@rI`4jV{V4b4(u>rmiG)S}LB(7xK>hRz)F?PH^x#z&CWqQ2Sc>T_`A z_dVy_JynOIY1uE#0g9%KbiSJ|>`RX0t~iMujdY`1_;F9GUb!7vxS7 z|2ysdc=sa)TiXLap(iX9SpCKl0NbIDXyC5lM9%WNe(k%mtx8uHL+c9L1okdmQfY^* z{*WLnCNht9X43(D GqrU5FuV}2;3$oU) z)(LYO2WoSo!=sdpb*0L`I*dAz~C0XkZW75D!oanVT(`vVU8;y Pd_up&s>2WggG2(9h3 zf~A9?Xyq>-9$yB~3NMeFBVu9lt1CAeqT2%61^^I}HBYIvnHMAIhsLztUUgM#;UNDSCa`(y>m%U!hWBT)WDDzS`pkjnAx@|D9k^ z2hm50>N@C@lu2*ZNE)s!I&4x63e;8s&?DX|%0*xCpUECG8^V{ii3!n@1gExf$%u|> zo2cG%d2yINN#nqLj` mHv>B#%YcS@ismpQ hQuqfg4VxLNGqQAb=mcT7%SuUMoC%EEK8)xL>BWOHY-3Up zK%mOXAZXS4%;#n^VImR2QKF &x2$+rMAb^hsZNTKZ zQrHjHZ#-AH_rcl9?+zIpiK^FPx<`71sdz1roD3Jf zX_yk3vH#>|*4BB%$n6v$HdL_Pwx%p@ 6|j!1eVN3^!#o~N<1^({|lXKSTN zzC|`@eD=q7#kHe3V!OXOn&-YCsmK$c=xx6`cj`v$u1))rcWk_Ayb4K^n)gq%@0*`G z=4jh*n1HrO2j(Cs3KtqrB{{0_bFT7s5Mgt?+4Kv(nW8;Uv%29K?jvRyu5tGO0;iGo z|2MGz-zx85uVK6bbJg> z8?$G&RxaK cZ8^Xk&+|`dA5QTURE>7nXrPHb%%v2FGfyS z36?zpr1ty->fk1PRE%|wd#6yJiIBNyN7m~xv3G_4A@{O*)R3LWQyWmfZuKPxH2!wm z?k@owhvh?&=zb+x;JLT;68$1;ZJ7H5DA0yOZeN_`2N}1k_R bOi`rBP`WLsi;Y+qhSVE{18QG6?H+4-aQpybA*L!?=ZzTHpZvU z57X4amf-2bIqO-*Ehdq9S^2F@E4Zg|p9D_lK9lP!L=n7Dt+wnnN4P%ZA*>WP<3?*8 zL r0|>W6Q%K`h$qhQmel(d|MvEpb2nJ`5ro-f}@;-CLr6tk^!I zRKlCDiA=M~gEjUOD7AmGQ_1dO`xWC^Z88jF`IM_^RZalM>2TLx;+P|QL&_?%l?guT zjCV#+<0U+T;bkP +r z;3tfpHLK^3mLgb7jXI<3+FyF=TtCL @pV(xYKYyYNu|ZP59WKBVb37OEr-ZyC zi^M-| IJ$lL#r>&w|gkEsP0om-@5%BoXOHR0=vS&g{yeeZZO^M zNimE_rqyB8yoM;}dHPh>x>5MgY5|M4Z6Nbd5 HhUfJQ3M4q{Gj9L?P6VL=U-f)C;-zI4tXA15O*`n}?Vx) )o)udg6#oDTeSynG5qqh>c^+QMH3Bgbjre&5igN zOE?a-HiNmMs|IcUAHv?cDX#ck_MI8r-90!APH<0v;1Ghl4G`R2gCxNc+%-T5Ffh0? z1cDA8+}%C69e%scKIh(Dx9Yxx_0LniKHcB$AnGg$b>z=cD+W)VPJ0gQmht7iA|q!# zwtYSz1nq_Yh@T{rQU~wbA9fYqikeVLDIeyj&t(#`mG=(dlz=*YA?OSBY3haUec2>D zO0ZOiss*ZN^vVNUNoutpq*l+R^TfCy6-Km`2WbM{`egN&W5N_N&=AT!>c>(tg@C9H zcK%v_PbBaq2sek>XZ5L(=o`iqjJoVk(AL>B`zn4-Wj2-J8Zg#(J6<__NQK-wW*~-K zRWH3w%sz&(Zj@mjvpz=f&cQXth^L=*4dYy@Jr|Kdkkn||-gX&gH}~MGYS1dmGSaOh zwC3VY(+55#W!>P#>w0r0@?PG)ri9tUkjLXKyDPT&wg(p(A8(6sTmPkX=(&NwLC;_7 zi+-ONc}$k_Hwm!DsnqDpX$)lDfP}0m4 zXsYUXij*pPcU6w3Z0ev#K%OIeEweZI_#x`6tDD-Ol (p6Y|o?7D`|{M~Q7?4Kb-0A-8ka zqONnWq?_pG2j>rFlLrVNwif_H^UCu!^Z%aj{|#X7Km7;5C_bOL ~2#?uAZ#0^7ZDw$_I(1`Nf0`O$U|M-p=sDn7{YdG$f%& )H&I#8$R#84t~3=4Wbu^wnwqX>eqUB7TVkhy*<0-{iWcSF@gg2P zHq Wr-N`v`^^$x9w$9dOH^BG8!%xi`pA;B^C1gEZ?l*T@`&lIy9=iNK{Mp z)d=)a{7fL~Zin;DZ+n^Xc=E$8k_NX_aa=2tsMZNnWMEJeI(XfTqla?g@h-KMZO*AO z07j8UI`%W%=&;Td)fg(6M9^P)=^kS)0KkG;9=IvhA9g1iz?lWE3kuB0a9@$TYR1&b zNG~x>3j$}5LVGri4f)<^Z}2AI3kUvu1ONm)CFaz96i!3%ij}B@-yZBprvWbN&~jPg z*DQY-D4oP%FpcB9H&t5s7l6riR5)gQK$0+kRGc!yOWg;6jLOy^aJ`W8Und)RvX^_s zuS}ANVv4Ix0@7jW{WnABI*I%P#Qs9L7NWg`owosl{;&}}JcT*#XawnyBY`Sy%%~Lf z-5 {oBKy{pS~lVH9?+(K$da=UXZM?mgD= zy!8D)>hoVWhda;q5>NkDMlVk86@SOU@v6KxGS+c?SGd6>3u{4aLB^p4CacY9O{f}Z z1(sjQp>pCKETb2`0t3oMS{sLz^am_28yIB`m9KCwSR|M$Hu`L=!%UnSZRD1jrZ(|- zGmz748m0}1r;S4qw2!zvReXwT3T;<|1dE*b31@wa3u<98sH?wVb%}gUap5F@iwT?9 zBc0?a_ji8VHHcbKcWxjg-Ks$(`m972KKjHBF4GzjJ7xK*>V$Yh $GLvyeCXHOij%5OMS2xo8Yi(t?>o) nT1^DKX+2qt?gd=YD2Bo{OkXtx kese+q{&HTW<&L6#!||ptUg9 z5%R)1hAqxs&xsWl<{jS=zG2_O!y0&x%0s2r+tyv)@X_xv5xOEsC*n9iRq1G$Xdm&H zKSYV6myf9!nOU2xx4kj8F_};Z-{1#QwW)3t1GJ4f8Xjmp=A`@Num7fC75PmSer^z8 zdt1$|%z2wP{y}fnm$kSRWGHvQNz`A#-m<6HG9LWt_K^$RCw_|q -}27JL* z;;l;|-z!h;`Elt`NHVIzWkeT0pi*s#YVGX)j07@7OV5CLCUNyU9@^ZzC-Hg05bQ2> zkE=kbO+{G6q+7~4@%qjSm{_&yQeSu@;d#?B&mO))e!+JG*k-zZd<6RG_OReOdE@B?EZgCB1u@t#ISI{?`^KFy^-%b74p)umW`vqEGS*$NiC2?*H18#wf% zd-nbK2zkn!m^V0`kIeCixm3baPFA~KxTPB1$=-?aGB*s~unb(i=^z(r;k*mE>)yQ| zxc1Qa9x!sZG1TcJfO5D!a?duPvnX6n6;V#|-(3LJ;$O0ZTE|NdtF9y~Z#@Vs@~Te) zX!Zq(*22NmA5Y -f!%0A#jQ?-Vzg6u}WppZ3$_ zRjs$O&m4D#fy&nW(u{xAJ?((vE@w)~g@0wPiDAGIjWRPlFdE&YqvU_Wm({2Im(Scb zdldZbgIph@H`TRu%Q+`PznB%LGvx^2uo7sjW@H0r&RK0Ktf?nrgjqO+;w&;O26Q~4 z%DKxJg2QCR*-^xMMVlmZI>`sf@^}7HWZRbVhq{`D%E+QkYw?9ipri8wcqQp(GGj>J zRs;xgP I z0Lfa;tV=K%jR)lKs1u cR6IHL^fAR< |9yP0CKtt_ba|rJF z?Y~bgHoSql^fQ~*GV1xIH^yv F4_W$8eQv_(FC zJQP(t>mb^p&?ehOyB3FI4^SVcfXo%nUbj2IqLjCcCGd(D9Il=)_* V@6#j3S!)KyhARahKnS1DV_OdYFTeCZ`u!LWGnUHyX}#N#d{z)+L|ySE8|JWW zfCaQ5@Z~X%*UYVmybwfQZhA9S|JSM8awXwkq3q`T04;JnfZ%@R>%4dsNRFPr=RL3M zfk}q^tyhZVr;1bAQ&As@L)Z73Bh6Z&p%#EJ`@cS@za5r*rEZuyIT3n2d$|9K)RV1l zM1JpX^z1lx8&-UB*JLr7F)5HBBltjf^ooe+h8J|;&2K&Z+O(qBRK@7qc=a11^XZn8 zSC>;c?2R^usy2(^tcJWUX2fT+3V?01xWV30O`3htDBROC(h2%hyd9pa9=81B!;F}s zl%~!ZwGYDe- bUiDJq4WK**m%gR*j1PPQ}PLO_v8?3EXs0%XFSxdWe}_!Wy_s zdJ)QkN1QG0Z_v%U-gi#KZuMJ(uU `eto(LqUr&*INoQ%Nnv34 zmUG4VtX6k?<5^eX$IGIcll6udXmekD**NlVl2RF;qEiFN`g^Q|SVorUX~*jygHq}j zm4^zjKy{&ttLl&qi5z(?#{A@X79fq2E6JB }t&!s+%ux`wW3F)1bBg7VMBZ?gxKgVUJ;%+TwF3hd6Poy!_| z;`H0uIXtG{n@X{^IT!V(tD?NNG3{9FFtr}s+u<96bXcXBbQ_9XS@1ms0s8eQ=vvE= zmPw&my~fr8x* hj(<8u}`ZK^(OLCMxz156_m%;L&N2BL)Vt)q5CW>}wJ#Xm%l9x@tL z8#|jI+z8s@>OZF<&Ktj6S>9NJkm@S)0inK2lw4*RHs09w)@f1R58Sjsg+!}TOmcy* zzo*fs6}#C2a0rb&s-qX<>)pj+uM_Cv3AR(_NvOFG9_40gDfB49o4MI1xwPS0wogIZ z^&ta+(>3NFRZZWa9atE9mBY`vlvIbbgs}01uInww7vINdvlVzHt+d3-3k=#so7cof z;RWm89<;KpKCDYrQ|H@oGC~-210D3G!5dBKVS-5)m75UMjEeB_{<<$d_`4Da!vm3x zTN=Q&u)#$~{A+=RXSc+QivB@CQ_Rg*fD=}M(!L*+RQ*}5DeX9Vb6J)XZGU#ZkJwZK zJ85iigwc0V+=z K$T4Z>K;m;$dqvP1H;4~HT#?; J}z;T736fT#`oCQpNr5n@qhl9ZcEiC z@e#8ILqYJ;nk`wtcJv%C*LG&)!#3`Ik!lB?{V0C;qb%}+tr&p1MWk=!!& +mK0^f!?k05MTvFVh}#!QR%;ie?3>c|Z7n z5DHACTg1t9k&L5{-S1Sc;1gP@)ZY2S6!AQxmWp<0iEz)@j}0R`rsImIdSCn U~L#gjED0r>QpsOer@2D^8u2eRbX!sE| !*sr2tMVU0tv7!u$$Q)2Ej8 znXk26X~YSPKa>gH@>$6C$i1$ua3q{jw+uAK;teqP&L#WZal+Eh4_xy`U1S98X#h{7 z-8r}X5YszyF BpWf$y4F%pQhnxugHaU13bG<)aA%c zY=*F%nU!2jPO5CFCDBN{0c9?4DQurOI5 __L<-hP!}@HzmO zCE7N2p4s+n6=vI R&Tq7svf~ZnwiO z7EzU|V-1FMfM2@ss|y46J^pT`X%ZS@uC~Qu1xxAp4IGCN!OA rtzz$Lyci+#CfrhBuR^(n&rRN5r(eFLcH-BT}7 zI}^^D-8{8fw!?cZ b;d z53!;5Hlz6}xjA`yTWhV@;Mk}ttpSW~rv*d!Kc8OX9{?|CfvyG`rs}yWxhO%UFYZgt z4<7xVdJO^72I$cB#+fyl`F5}r-P_s&?4(k+45v^0aS5Ol_Ls3dRu-s181uzddd+QE zdYhw;D*s#jTv}@RdLR&Dh$P?jA>Tt1=|uT@*7r^+lp->BpB~fHei-{iN2>%lJzXhi zU<=}IZ7fF`_A1}P*C(}p`C0R^>pHY75&L4><$D> u6El%ke&gFPL4EFV&R>(t0S?6s~Zc+KmcYQLl;oq=yN3vG;Ib|y)2nhIx ze9#dS%UIzP;!Lwudy J;>Y5pGMn35C^*4~;drWX zKh6n!FgGZ}E|NfE?rU4N2tkX|#^8Ok!=Lhh^N#<`-^qDUdU1G9^bJ<5ZKz){S094L zrg0XJda-|aUf>5NP2yZiL@Z*#eq>^O6VLLPBmimHq^+_Xsxx)TZDj3p1k4=dCnyqR zHhSPz26}U(P{5fy*z^qTYGix%g`)85cD55wFb7dGCo5U0s4X-9lz5?E3A@K JX@ka|A9*SI(RyU<^toVE|%R0GR_LawxR!1uXk(!}OSel#> z*IjITVA#@(Jpa_M0LT`N@-DJ%z4?=%R|sXO-@S{1&639h{Py7MqexIvS=6PH7rHs9 zYXsTq{$sOi``fcVOYYho+FDa?p?JYJ;iQXDQjb@rQiE#0It{ERP~6GHhkdHS0mZG- zxH+xVOZpXNzl--*Nh(smU`fQ*&+)pYD!Qgg`D32mV*{pi?m))?B7I%gR5o*|^X0pw zpww4L-#CJ*@bM&p5M#I=0)3<2n$$R#9v(||UuT}1Z#1WnYi$exyiAmPgd)@=z$Swn zj!CQX>yhYc`^N =8;v6MImi;#IgGySR~+ys-Jrko$&*u-{6RhF3UXcXhK zTPNOc5<5e53| TEqQCAez;-3MQuo#`3uvMv_`PIi|7M)#}H|IRexZhUX5K5{c0MwR}Xtc z#mY@@$k)!BA(yv$_jcL)6vMpUSUc)5A(v=oaVw8UJn|P6M|}2o(>{_LI~{BWlt*vb zd;~uRXp+jgF_3oyXVX9>z&mrYjV7x3+(Ito3>RhtrKOXqf)(i)%?Avy1>K^I-Dey8 zY(H+NW|Z{e+~hivK-NHEfvw5`Ukg|Jfxsi%$e2?FW9I4Q)f=aq8`{Aoq^-6?e PQkAQc(!oWrMggH zgI3owakq)GO}#& Wk)jOpzdJ?x2aNT>Lc-3RnQ$t<0{^fVa*zToTOVUg@lw!zcgR7C-0)g*9e6WSF ziRs+PNpV-u)yZZgSps<^5RD9geh+e7CnDAZGmt2szUQ5n#*}U)L}HC6FuG-Pd!5kp zZF*1<2j~hq%{X&>c;9Y@9{(;cz>B+C-Dpv*w5D7uKO}r&UYc< KdZ<2BBrkm6wkrxGLTP$03 zR9GFssT-C kPy6jDu zlV*wAdl^?B4tjxrYW9Sa&+G{jvE`27OtPwQ=@yo}ul)4zb9w|66RF21uw_Wd5pA`j z!1~|%2bx|gBvORVwW6V5t*M*r`vk91f+s49PX^|3*`x>w4f7Xa2q9zSpQCK+_ wGO*OM>L&@^)otRPi}x)XM7%NmD@6dQeA+st+s5A #gwDMz+s0n4^|gUH7lGwv1_ORiOxr zSYm)jt@O8_0de&|pfDn^5NWN0%B=cv8g)15fn#oDJ9t4>UiySVH75UG&cq!D5JFX< z`ah!V|2gfwN?~qD2t01vqG36@HCfsvPBv=IPdQCcJ{;L=M@RB)Zg^ov+n8@3dh1js z>y;bgcOm*I)8gkn-9y|ThPL8oOn9K)W7d;5O;rK!L#=@)2B9mM&6P-J#7HVLEuq<8 z_i%?|b?hk1E8m*8`(t>`sXx+M&1`W0)7@V^o-ht2Z0l5LR=@++ee4PZh1m 4=IIVGL#s-Q+6i)i@vIN&nCW- L-p>G%G2Oy00_ z!8_?`dE`fd^Y7&<#|tN!6y6;A>@le!d+eruTzJMdFUb=ICr!!=0X&E>8G6m3_!@1; zxKvoSR*^t%;n$WKlnA|0Kd@<8E*3c}d(RMPj5Ut2;uRW5sZ!k&&1jfWPAK%TKs_}5 z>Jxyk)#|UvF8Z?Pb+8_bRrg3Q;7EtKPI=0Yh3}%$agd^6g1{@(GPUafmC51Fn2% z3LZ^8?$bQI5H?PjmpbSiH1gEX+b@l&>E%;(uheA|(O?hz >c-Z9zZtnyWu}RO`hQ+ zKUp_#*TqZwzE`-?S=f&L(a3#Pc=#9D8JlJ%LF&@JOyG+XuUk*&AqpwZJ zEY?6Jx1&pdL4rWLi0-;u(KK!zW}-juZBg$V^@L0YcaS||!aFV~5VOy#ZCfeG@$Bp> zs=BVVQgZZ0Il2){4glr5iw6N?c*EV_*p)Fb5}KzLE}Nf6w#~-#qbdz7B2K%l{U5wZ zpFEQNc1hw_iWj5HK7nelsVK4R9_rEOa;;;7<4FyNB=)Ie&ehwe?3xF$rLedi%+y6W zV?_K%bQ@R$HO1sJ3XZ-!j`_Hd8@`$cs<)mV0{TfMlTVl~UqNj7m#(Ea#K~=vu^}*@ z+TU*n1QYm26=60DMWI9D`3H z`|uv7UMvaandk7KUSsF3*Fw`nM4542*yz&0mY;8vx@&+EnjH`7 |hSOZF)#=hQjJRJieN;09FC1?3FL`4Un;g=uxozO} zd)Qjgh)28a-!vQiA-oT@a-j7iMG9ugNj)VjN@9IWH7XtzzP!+$W<_?(#yy^ZL 5R2ZJ+7&@_WomBLZu1s7&f=he9gt;v_P0dH%rNtMf-Vs>cB0DD Avczb%x)kMZ_J4bJAroRdHmqcF)B=CnpIc*#Jm2xoD9_d vs|s8`P}&+rksW-I1%nNipo;MA>3T$kRrQuKhiGADwTl} zH4S@VO@?8XlB8)M& ~b*wgiP@qvzOe9D2 zY2kLtt$1(jA6+}tXtZ2e75+q6##V=n`VJ0iKMdQ{nDd#&CF@uR+DNOUg?EV$jG?Oe zQVe|4Uq;*e#g-H|fFm`?_h+LjO*!<|{{#Ez|A$`prTY(aU#@H8E@wIZKvVBpD>MC) zGIg!YC}mX5Me`NK1D;4ktYZGIC(dmY XEvU2Pt2RtzTV4lsEYPu1PK%bg1pd6OHtqqZ# zB@ni^b`7f&*+@i25lI<%HEPxUKrz2JSvO$SNt_ZlIu>7kE33Iqnz&j6C$`&LNk0Vyt>dMMqa2DQ0k)1 zTyWG8eb0RoXV$RMSeG0Fjy-EU3J`qM173acSW*j|=x(({&TmHDr3(_eTT0`YEIU}I z03bAaV$B}BvWX8rD|vk8(m2$`X4RfHAnPzxMAezr+d~Z+cw)n=8|9cPCh$y4)5SCF zU`nvY=42vCrj>JbFz%L(Xqbp~OX5a+(OLdGfyq+RdhPETpYj`lxBn>3!2a-V nl%`(E z@|W?0zxH$FP Sa+xoy9&QeUzht!^0UOwc|5%EnAjkNf%i%rgOc4 zHjmylCfm&B!HP0Tq_9RwRr6$AV`W{EP0N)?x_a&@zCyX3Q9s1?Og3OvxXA0d-q~s9 zzTfg0Wg(B|PB!qMKcVnov23>)PMwSMHB`?9>zos;pM~JUIsjY{C-`b*#L8b-&tq=! zMYele_r=(#(9fL^j|#GIZhIJlH(q&1jA1hF@T{)aNk&y~(|(MOt|zd%?FUwT11z8Y z&9ASKdDo8xRZI%>zuhS+2_1$!p*7t;_W921^LxApXJb^=Pwql4Ac=Sr{2bBvIaXpD z)+knXd)egaeA0KowUPDdhVmlTCw~pahf_@-nkJcYgtw<`Zbjq=;<=gx3k!Brtt$ z7#}`}m7ZL}_mkWYtmI5 -OWyZ8QXtv?EOM|-m@^ih(H7UX-GXt%w z2{x){VyQGE;$pi|ovVAzGHgakR5JQ0!D3ikF0bl0V?CI58+FbAdhmhLI;W5@o4Y33 zxcpl^*t-KsO)U*x_p)q8>gZJA#{qH=A8J9r%Kqx@-$p@@zaf00bB4BTg0_*qKpi6( zs8glwAE8MwS}kAa6U6-6aMI^~X-!c`Fa|;YVidilLEmm%2T7B1GTcF;7zSdf(r#)U z_{ntHNXvNlkP8+LBw9jX!3M#>JDGf;b9cooW{=m%=?p`=B*cb1xv@_{JPIqvbbVvc zAilN(zyZPbO+uoRW?kXO=7-a{#KCR8w7qTi)%WUv53bDx`ni3vwZnc(nN6W~|I#Gx zNJ+rSjOgHnozh)~uaAjv0jvZLhYu-JzjD~ L4`NDC2ByqOajoTM-^ zWEMxI>16v|isAv}*EnbB z>lDY@tTFiAd~g?SJ96v+DqT|E3~0;o^9xk~Df4k`KnB(CvgD*Vb3ttg5Mm|B+0zg_ z&BY}*SE<1=DqkT)7uJ6_`qrk~!?=jvOn)1~3BS+=t&Y4K>#Cra$6#MIIuel=!TmNN zulkZq=fL;*7B`FHZMuW3300t0-1Uf{`6xcOvQ)t_MkdOEj6Ktm#UWHnI@Pl0{^DUh zGNrmEND`zBC&)z)|Mg&&c9*Ip%k0Y|24LiV>D8%zf`0m5i0xRXrklg@ms=};^6*t< zO((|gBux#EU))xG1!*M9`y`2jX |(8!j2rc@)~;P^M1O?MjZXA0YTk^|ShTQw@cU%Ums_*S-;B$RWL|*Oh3AR$FyG_7(Q>TO`8Q(og@Eq%wT z1JYmMLu;ZJT$6$lgM*%kuUCS~__4-5-ckd$S*?0K%wo2^5_;b*y>wO>zd8NB%6}F- z`CCD@lvK)aZq}gQ`dui+9iyi5^>@Rq9|7+=7xX3GFtB)P*%?i7*a5nnT5Kv9zGb31 zi 2*KhqLAnQ S-clPPnoDo5j_Ena4Rk zdF>Lfjc)WrA70$t2!cv9yIkOF7#ymt^pS-4VmFRu$cPP(o$pg8r>OQV1fSL~S#*!t zcY-rJAhN>~Q%q~~T8(1{ytyZCw`m5@Um9F&NxVg4E)%n=+p^9_G^Y4bXLtx)G_TtZ zIowtxH@{1b@w02f=?F}Bx9Dnf3CS-bs&8j4;PD#sYOMRQdt%fZZt6|lt^7HFYQmh7 z#!c+;c|5wPCPx&~Eudxaj4kc|>2@c{dY8IAT< LE~s)wW#Ydrvjav?u0`Tjv8y;?2_&o{qxtM zapRnNR>@ `2;+ zV+6nIDq9(xm%n-Htvq4rC;90kR?^rfz)<-BR>lUz! GFy_frpo<(?5`lhx+ghlQGkZy7?@ggaLf;Ub|pQ;0k+$ zxwf(5P##=0cL9pXFitw_@}dw;QKxdQ64+D%Ar^=Dx*SRTa)bku4;*R_B)HPE*y#K= z1NE@;jy`uZh7bmchu||tFIfG1M>Yygt3O*elGcpR9?Y2@)*U#M7)~ry6_y3grI;Y0 zs4ZEF<9#@_+ic6%@qbGF2feOsNhA84Gl)wqu+5)6-k~b=@C{HKGz|OD-gCo{t#Zk9 z5G*Hxa{u{WN=aJ@UL)9L0bB=}Ln`L=9HJU5oXTPj>&!=N_@#-1W`l8Jl&|LvWvG_1 zT+r*KjxTaegF6k1`JJ2RUXHr33heyuzlr+)sT9x<{0~}pF)=Mo%8CY=ds}UzuHdvx z*J2X63Xo6EmA%Ydr^msCf!j9d1A11Etx_Bg!r{KBSybqGUgAlH#~@QQA0*yRRq%E< z`f$R9f@y5baQau*