From 0af010377b726ba3dfba3961f050cd3366158aba Mon Sep 17 00:00:00 2001 From: Chris Portscheller Date: Wed, 11 Nov 2026 18:40:05 -0600 Subject: [PATCH] Add standalone Express bot detection playground --- README.md | 12 + docs/assets/node-demo.png | Bin 0 -> 121408 bytes package.json | 5 +- packages/webdecoy/README.md | 2 + playgrounds/express/.stackblitzrc | 3 + playgrounds/express/README.md | 48 ++ playgrounds/express/app.mjs | 35 + playgrounds/express/app.test.mjs | 29 + playgrounds/express/package-lock.json | 869 +++++++++++++++++++++++ playgrounds/express/package.json | 18 + playgrounds/express/public/index.html | 42 ++ playgrounds/express/public/logo.png | Bin 0 -> 70845 bytes playgrounds/express/public/playground.js | 48 ++ playgrounds/express/public/style.css | 1 + playgrounds/express/server.mjs | 6 + 15 files changed, 1116 insertions(+), 2 deletions(-) create mode 100644 docs/assets/node-demo.png create mode 100644 playgrounds/express/.stackblitzrc create mode 100644 playgrounds/express/README.md create mode 100644 playgrounds/express/app.mjs create mode 100644 playgrounds/express/app.test.mjs create mode 100644 playgrounds/express/package-lock.json create mode 100644 playgrounds/express/package.json create mode 100644 playgrounds/express/public/index.html create mode 100644 playgrounds/express/public/logo.png create mode 100644 playgrounds/express/public/playground.js create mode 100644 playgrounds/express/public/style.css create mode 100644 playgrounds/express/server.mjs diff --git a/README.md b/README.md index 5eb5ff9..0a624b3 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,18 @@ [Quick start](#quick-start--no-api-key) · [Choose your framework](#choose-your-framework) · [Verify a detection](#verify-your-first-detection) · [SDK documentation](https://docs.webdecoy.com/sdk-plugins/node-sdk/?utm_source=github&utm_medium=readme&utm_campaign=node_sdk_install) · [Examples](#examples) +## Try it in your browser + +**[Open the Express playground in StackBlitz](https://stackblitz.com/github/WebDecoy/node/tree/main/playgrounds/express?file=app.mjs)** · **[Watch the 30-second demo](https://youtu.be/4jeuH3tKeos)** + +Send an ordinary request, then a decoy request. Inspect the actual HTTP response +and local tripwire verdict. Start in monitor mode; enable enforcement explicitly +in the playground to compare the response. No WebDecoy account or API key required. +StackBlitz runs the standalone Express example in a browser Node.js runtime. +See the [playground source and local alternative](playgrounds/express/README.md). + +[![Watch the WebDecoy Express demo: send a request and inspect the decision](docs/assets/node-demo.png)](https://youtu.be/4jeuH3tKeos) + ## What you can do | Need | Start here | diff --git a/docs/assets/node-demo.png b/docs/assets/node-demo.png new file mode 100644 index 0000000000000000000000000000000000000000..1ae49dcba0d3caf09281c72d6edbe02f57a83981 GIT binary patch literal 121408 zcmZrX1y~ea*MKM@FQ|m1G)s30QcAn_ggDff{APWO?j}Hds&g=Vdz#9j8)2}cvk6=UvUdTJa zZYSS$Ll?&F*rVIsC6e^1tE*Fk$fn&D^M->8y}NnLQjDZmisGC3e z5YcbAXK6)Wqi)mPY8BU4|K;tK(O!hJrK6;w&Q1Uf9O3_7()Ebi4uokF@cO8icVHjE z{Cz!o0Ymrwqc?&uaEdw*;ilhnNTVWZ5Bz=%M}T|u{tyOPfe!}$_DW+wOtboHLJAXj zLha~sj83-~F!1we&7Ob#`fX`$Vi;KQuqXM($QT*0fA8h{)+nywgF5~r(#8n2Z>IRM z()abg{U1aP+lK_tN4Nm2w2DiF^A9`}#&E_2-*=~v=H;bOIzdo|@N*do4tNH+-&^{q z2EcRVu)*-^`@1`}7EUFUjzHAj{pZ))$220?`^q?Q)DL#C?%el+ z`JapLfZPjv?U9#PbSoU?@3nty+j~h6rVKy>1qc8KBl1lf%U=+uY2Qy%`0){i8?f64 zp2!SvKWFh?l7#v4CrP_7fxVo4@bCG)&st(HkH4maffu6#Mvyt~Fn);;hGD+<6ES}v zv4IqzPlkan^Z!5s!1fK8C#=9mf~JGCx&B3mG~Rt}ly6881csE~N0adW6Cqw~h-tJx zHxKIv15e|3NB8Hm_mU_~8QdQmqPTa95?{eK^l!YTjhJTtbL`Ji6zaDqiRE>nr-Wya z`uEpcpuD-zKH|bs4>Ah~{(nEiHV}Dv`*<+{(?rR5BY)$YKX~mZ7Dfo=R;JqD!oU~k zR%OOL`U5L`*NAC%f6nTiE&y%;f&G# zU67BD*xTz(ep)qJ^W{I3`~G;80rXr*XZ-?AhWO?w1#t2t}%R%`4e9La90^vV}=L%rszu23v1d!x>WmcSf}4e;u`|^I^VbmN$Bo35Yvj`87zOy zM^OWxDH|wH#mvIQRPvsos-omod70hyBXx6{LaI_Pz;$idB*Hcf`GQ_-$wRCR0i!DE0^*UTW zKYg^dZFszSRNYkjl&9-G(O8*%$Ez1U!FV;5-DC#(9hXA0c|3W-pK71zA9e!pcPyPvK>wYDHs!PsyHpwhX z{xotX4)l}}ecV}tF3<5Ur}jF^EC=pjy4UHAE4?IBwXQ&57E%a(b=vKs)puNkkUNND&)*t zU_OxmDvsdACxqXkiVlK3LcS%tiy)t=@rv=%zM0$3hPD0E)hs4ax-&}t2>V&m727bh zj>0Rc?Fy_coHF@1_US#Vq%i>wx6U&{Os2yZ!CsVnT1hsmo$5}uFiIAaEGYz zv1kCj=#3VR;q>tHPh8sZ!!-O7md~%f`no2EMz2q*Yg5T%n4@tI&%u%U7Obv^!3+Jn z85eZPyxCFN{_+Xp^Gxi_7dm}i-8UB-WsMD-j>c+iIpqSxu||fneP$27ahoo13Mw37om!CouppBqUOFDPkgBk``&mmU6zjaEFtkEj zFQV>*z|9LMYlZqt>HVRW)4Mf}C+$u&=M+k|P$gTTV?ps58XakhyWSCCKE(*~u$u4c$T$!t;g{zFC_r!scq_Ap(=Z`Iy*+Wqy*1}4zLgLP z!S?D#3wrnJVMs_wc{xiErG$40b!aY2^I(tiAhD;~fPBFK%wBzuFD>9vGs9nU zoF;cd8b{yTk$l#u@5R<0=#Kvnk&)n-;#&|SKgQled~&FsT}Z&_Y(Ib6Um|Ce zP`-0M#?DKpTzl9IS+3fhbw$0TIXw%`ZW**%aDBDkby&k|Z#PR`_LF`ky-VdMX z*T%?_`S8~W$i-bv(ML$fTBRe(AmFI1!SY(6LNYQkBZF>ABD~VlQjwwr#*@9KCp7L~ z*uY&JQtaASN6U^A#YsjV=I3Udb|wmBk|}kUM##hV@$wW3KcF*~R8$xePcPnajSoV< zaB@AsQR-7Hl810%w2p}z4JL8c8cmD`Hc7s(s8A?SR;N8aK1M8g45p9+iHxzVU$G{> zsoYO>7MmML;psS4uW=H}<-ZP<14-%Era65Mr$1aEocVBEh?^?``pDWnE$&3T?w*f<-5#A7%dmyALe1eBo@#d7&->&MB{Rh1PLi!oFZ zYRYl!IcoV){&iqbrc5_8Q#uqv}6Rp?UU%c>UDbJF?@nm=CD#82HjBWBdFROHl4bh@*GUyblq%AgYhi#9kxq+(*I=eLT^-wzpvlML`U7IMm;4y zrmrFZY&BQuyERp5VP;urz3ewj1HCvtd#%ehTC5c-(d35lAq$C7M_-@CWNGkZS3N_3 z2!)?rqsnT+Z{u@&uM+qrxc+c~j0w99nK9>R2EnXgVatE$w;S@^QR91o7LJYW+Epk_ zD$f$LKK+u1Ilxsvp5gS1l!kgze;;^fd;9XrZBz{L=}e`Kt$nUsSweI)vAJ!KmrW5g&C?=!qxFBW}n zwo4!u925z0SKsZ!M*cK2Jw1@b1AS)wN%NkHib}hQ=~=vZkz?v5%j;S~Kp`{O{OQ*K z_tAh;z)vy~XkB5k0#YZa5%6d|P1X>UdZ?t-K^G~8J60^t`8ZMmM=dUq-AtN!t6wmz z&viVDYOpWD$dIa#uH$s6U3|RIp)kR`);9aCEalC+_F?E9WdsBS*Ig3-=MKAu!FG}F z?O&CZ+E#;bDK;2h;Z)!<=&ToU3wk!!V!v~MrhR}k-_*z zli`AQQ0QH?(Hsv8as&jnUU4jJoVVE16GuHaOb(8$ywBZadb1mkQ@CqO9M}NHkgt&y1kKdwA%I?#sMGPftzePG5k_{`I&K{f zE_kMJyPGeh?A%-!kPQ%H|I7urC39B95qnRz&Rt~_G(CTBHF1!EU?`dTL16^mR7S?d zb>4fR`9yy&Q!(M!J4va_T-X& zCd7y@#+Nfymi4c8SFRhLdn6u-e=(FG1FJZ2UFN^zbvr>u>xrgLw75Pkvz(g-KW^8k zvpY9dILOfRKL#VV@VacnM?S$u^QTRm2(&YtH8$^!p?T(Fd~;SteyveyypQRtu3^hf z)LYHS*j>8v-f+z3WeLFgc8m-T-jjoaC!KqpyVE6Sv+>KLLtcaDQ`6HAPHlq|*ephK z`JaQ{r{gbcTUcE64)PYNl`S20lZ-M|@a`2)d3!_ShnJr6H&e}T1yB7IKf>HcXM{Uv z#mkL?FPQK4_Csy_h)yr=YMCh8AVvoG2@aA)baa5{^c>TOeEb6lEFm$?TF71PCbG6{ zv4OqU^!|N;?RXEqXoa`|*4lJjPZ`tjO8kbopadGgf4ceMJnauy>`m8aL!;xO+Rl%* zW)elKOvijgr7zd|XZp75nseTCKC~=WEs0{eFI$JhZYpBa2l2fSxgZSmPm1=VOXi$! zaJT<(N`T9fqf{njkLvOkf4<4#YZH@%q?u}|-C3^^NA?SaT=l@2SfM*4*Q5^Nn~WZ_ zC$wrT)LM<^BcM4Lx%nh=K}|d)g2pzui3kJRePW zZ^_WmR17NCI=VnUSMLCc0!3U>DHQNMg`8two)%%P2IC}gn{kG|Mzm{yyg?kvmPBzr zh_fphNahTGB1$WFk^1m*dwSKD)Np8Qpc-T1*~Eo_bu#JN_Ymy6`zKv+Uz-WA%C*FV z(LDv3S)sCXP*lp|K><;rgy7u74~{$brVB2sOU_p=_Vl>&(^K6;;~gDy{S}(Y335#Y zT!p@~+pEVbcHK+j9W9VO$BY+}Dqo(Hhvq~snM2y`!lNM&NWx_!JtYT2yazK^b@sSDy9tNwH60aB<}j5V_x=-^+(b>>ji)b) zJHuLjnWdFL7^)wV=7j|(n;Sgq<9LoCN8d+CNySRUappVO7RS@(ckfDUFs^>*z z;d5K3!FIF@Df74r2Ro<~4cm0nbDC~3cGjqqoN!As(9I{hgK|iiMO>|?^am-4Na`BH zI2>G@cr{$rNi0=mToo1ExHxh2*DzV>d2vU%>{j!oPzheVk!zEtuqqV@_p{Tf&5A9` z7I;rjUQmm>kNL!ILx{D-u4`5b4>AghM+dr$xrxbHXWvGYG)793lc++qk7_^8Sk1|3 zPF~lvR0?Nn7Nrb`B0%>64)S(!jpwUWEpZ76*9*3g=XpKRRHf_)5?Ai12DwOVq#!bA z_WCTEFiuZX?-NGHREb2MV0)65-AGOD$?bqejw*FBGID}vapEL;b8+w$-9hhglFyI! z7fG`22APNiV-94$&eJw9sIb1m$z>5%P0uG|WQ1%H&()n! z8a{PGltrxB5>Khxn}u$aSuS`m2l=%awv%^+U8LA&1)HwsRa_hs1iXD~7>Yq1WhBTq zuAGDlBsWG(b#D{3wParNzy18QNwjdW{<4q|8_zRB<_!v!o|*lC#Hzj0uxUnzAgF9E z@UJj5)b~YH|H1sYKWD;1yxt=Mn(m%7*?9RSQ!+<}8wzbmd)t0P2y33^wD%y|!-ta3 zc!>|rs!u-=ET5o&i#E)RwRJ&|6^i?)k8dU~vb(BYp4p(=4pwp69G&_iJd~4_?Urom z>dG;V?#ZNv_`Otlkh#4*SCxvIx$%l1c5Ccnq-V@jDNog`Z9*?63XwEaMOm4_#1b5O zw0oiQMrB<*zG9>XNi=usbnuSzmO&-fxb=g`wE};~S&Rc9| z>!2s}mx=v;ul-zH?v55NWJWo{JQs;LW2uFi9G_IX-#uJlFaybGJj;~wB)BPMWMm|5 z6%?qid$kx*Q^OJcWP*^o2(7jL$QMQk@pl^THeivCLhM>K8SVp{#4KSIt_U3#6ew)5 z`3u*}(HPLgpNxy86SQS^X?BW^2)Gp!ny3LP(BoKTO$b$7Pn7kf&qHB^R5sr4JX&Ar z_)3oDzX&Ul^gQKUIB5L)wbmV_D$51KQuLFZFQV&`Pbpg9hv8)9MkwZ@ZFf%#XB>}> z@)`0Ki}moj{Eq_g=jx<=FeOts8ypurLm*LacAncvt{ooraj2$PKMELmR>cEJtl{W( zMh(3;UM+Jc_b3BSL`)cvUF?2F9v+XLQEZl}U`%>?kFgm;GsF&`8FPJo0afqaMBjANh)YQ}ntms9Ln@pImyCkV@rYgjZ zvb;K4OATmDmm9ATN_k{+?Y?wWn8(C^9%`UABbu{lP9p-x4EL*6lI(KPK%Ip4W zbt!&Bjy#qYZ3S2Qt^TtGuTomoDqfGJOd*TSagL^j?!y_F&0p&Dm#>Mg26t#|A{HbN zc)Aj8Vi0Lyv$vSx92^79ZfdF!gLwDVLEGBsh$Ko+yoVCDgfO+R1;{<+Wt|2#R3hFx zZ4|PXx(h%h!##U~o-8Po@nqnY zV3DB&F1v9!iGq5KODGp*6w3XyI7Ce-m*d{-hkG4eZQJ|-;Fv(i-Pu;sIH&$;WU!C! zt^{8c21+Kp!SnhX=aXIc^LInd)hCZ2TMvXE`3}FGVi9lepN|Hmh#B{Z-73r>%nC_%$y5ew<9q9K(`z)oGzq=e;hssy#uk%@1W!&bT*<-| zLH}{K+BuRID$t)WMmf;avxGm&s=vRkzkSv1iXDuKK5j87Qu1p5@Z4$kBBkNtHFtCj z3f8k{Ut1+?!5b^0Hza}nqGgPQgcD8|#~PIZqV+3oi+a-9CQSGAQ^SNdsweRl!%ESs zU7i?Fj^?TO>awwzOQ$wyV+n>(GO@84?#k(v5-%6c@h%QP3I&(UBRfKGy<#h=0q=8j z6KgTPW-7`2z?xq&;{^oAd>4S$BMb53q9!4+@NO>zBi>NHyr3CL5rs9h@m*Po;`oAT zFfgpG1JF*B;P+vQTyVeL)JSN40Pp%wIzJXQRM z^=~Pgsw8Q5;zZ#Tb#-m@<=x!O)451Ah>0-CERYh5G@4pCUp;&{9ebrrK&cKW=#VhL zdxS#CBD0)kj>Ez(D0xVPpg}F|D&3CgHn^EoSy@@=WkfVINfJop(^Y1zoSE6#ot>R> ziW%NO5=jOF6sMNMK|)Cz>c!lM8Xr=OwGV1f**dz2+922xAyvqiudJ#%`FcgMIV8Q_ z*U#}J$bK1QI-X-`e0qS3>$uWr8@dGwmlTt{zV=U5Mvx7dWJ&z=blmcIQ3qTZg}P?Q z@d}kEX&WE&B!vw_CN222uBCLjz9D6e5=8BdglqKhCq~(<@v?P#)6qP~>&x~6n(JVQ zwef7u;%t>?=FGyNCI6(&3qOY*r%;)Tf zoN=(TW68IxcgO8`a^?6*T6(HSjDG^3L(97Bd?H^hQ9{l~|7lQsI0Vw-(4s8gURhb0 z%;9e=OuAtDahR81duKuE53~fT0 zN`%a$(Qc7?!;@(D`<&gHYV5^&d-k=SH!r~8|J1}y(v89_Lz0nFO9H}fG-}R=GCJX| zNpFVYRQwGeAjnt~+--3Fa`o6``^rT=*tHtNfU>%J|4lD0yCozUS*-X8koQ=n9+z+5^y~<!KUuV@E4Dn=v+HuJ zt2c_QH_$cz6%I`=_P zyqg#g2)etT%~r>Y!{~-AE#vo~D6T6$L_{_y%McD*nSVK!Z{%oXL|%EcUGpWXv84v9 zpr9au-Aqgf6yCH{B{g5;8b)cbBovDC9uu4&(;r5_{ob^FxMaaiqrrt$QH+_9(Gbp& z0c>wMo1^1fk$=Y`QvK zlhawAI*(q>0%k_=^{l-HJS|$$!1fH zdgP)0X77#w$A{AJLr8oX;ND6~z6JP~{dC`|<+6z?iXIb78OXMwG~FDV6{>Q$AUiX) z3=bc6R0P{^j+RzcX_c8epB)-tKX1Rd>E*CaDm8!R;>2r$hdz+Z;c>J3^?6m%J!{D| zF|gRV-hfs}nb4i*_UHeN8BodA+a2%%nF!#V=bYE`hGTPUQC|m0hV3=!>;ufLzK*!; zsb0Uom#0AGXuNPdpKLbk`Zf!k*e$QWw83md{Q)c`rBz}0beZr`EZxpv)b8MQiZCeO z1P||Wdm%diu4$n%M9x&l^7?4#DUijY%$7>NO>R``+SwiXh3et9 zbrE67`l-xA{7Jvj)s%pt;o8n~4q>zYRQA|28!s=I8x`j4n!387uluVXTWqi62IM!U zp>q086lj{7J9~Q?=`8e4E>3tH)qAUD{+V*`1x-v$^g28` z4QmilDMgghrE_)P$fl%h%Q>y^i#&JSiH|=!2p|i+CsfhlaY4fR0iK_~bpdqsk_kJP zfoV!u!fX1*eyP(63y&K#v48$`$NhW-61t`28h!3Gz*%8?vU_FFt0e7%3>e0fU2g3% zu#W)au_8%FI#wh~7rsh`b1$19LMY8b$Q2Qr;_8d9W$OdWMbAuvsblCHfh1(tLthz``@JD zQ#dS9M#Av;6r7Yp%fPdpn77Xz(uF_km-2ZMmT$g3c)ZCeW8TC8x1xvN1ahN}yXFh8Zud`ckjZX(PT+F~v=m|)1S0#p4R-Cq~dZu-;sUd4{ zzB_`M2QP#yQsfS^g;J9lVBn zo>3#BV(w_eBho0IGEhFVu(>XooQsS2pjD~YdPZxIqb6{>%5v^q9InWAj&jXCN|fB( z8p$={H$Ldlgo@3`gx2#&h-ld1Np}D%M zs?%RE>4ihDE5S8X>jN5}Vq{e_ydgK_?&lA&SOg%=iR@Mv9-N<3?*@1KBcpl5PnJsf z`#&TYVo)X_yZ_-RzKmL-@awJyse!XjYezqe^|*-7Xgu>Cfw(@c7#fht)!Pno>|=Cj zj~m4s&*|F#^o}H`TKNX>*c)M26^m4R-DM-hOtPd>xC+%P##24}vuW5zizbYxny71% zQT+)zB$Vq{mLd8pNsxnswP#}V>gDBv`Nwt*GKoJ-2qOr zn}O4^5XkyTAnS>MLlVB4m9YK=!BYNHcEmHl(=h#laDtp63*BSi_d``#M{jC)yt9=Y zb7}SQbRm1dxnwCyl(frpjImALPe=$x59t@u1`!_OvR}u(O?Gv1x?65Mmr|Q1%QpGk zS(*f$;>D82m0v%_Q1J~R>bo3AslDOY;+6CH)`p8~5+i6!&v^W%VvfAVsWds{j-F7p z#f2oMBLTZq6VKJX@QC3IB`ty*CTOqxY=aT~a&zclYLjwN&E-}aePiYZ z+UtdE@OrKF2#}ktemK4}S>vykMGtzo<2`jl*gp+MKJhJLfP3 z22?6|zsrrcFFvvnPftXaDp-jzA&L}1CN1SODQfB*y8<;n5LNm@V zp&`VV1PUbBULbOyCqKf#0PH~J*$oZxl=uoeVpeu`q{s_mc_$}<772k2@Al5ly{Wp? zsHi4+g`<5*RC40d&hT1k*We>fm3OXCd+8~gfa(a!|RqWG6`fna@qZv zuXfInp(uBa>H*y}ZI5f>KwQ@dIAVp@Ko+w7;YQDx+30nLgj(CEjh$VNM*bRbXb~TW zRi@EKR1tWL&%LU4Q*P3uu*)`dT(&F>QsW(nS$%e3X25YpDoQP>q>LXS zp4(r?5qKaXx=Sbw50Bi$SCt#t@FmJykp$AH$CP((4+XpqVjWR;Awwt#v|P6Oq^oTX zTKr5XkMyn!m4Thv)$V3ISxrfc+w=A?(IM$%ch2*Ai7b(}22sNB`pYRn82&sj;B(E2 z0g0StLvb4%I7LxS_r9n9R_(|G*7w|x&|$8%4z}%R z^y&|n*9xt#y8X+F%~wFQa^gEq<4hJKa~{5pE~lp(^pV+}Nl4dpjd@@?ck@TKT`OZ! z2drGBGzO@-?*tS{=A6al>!@TO#+Ph#YVKzkqlt(~IygFhIXI3Gvkgqt3L7|MYE0+$ zC1$BjU^UwpLVJ8b$HS9iL{p-o5}3>Z`c_@}%dH~wfdL`HIg@GY>nifLF88)QFtp)k zv=AYaZ31tVAS(12OdE+UP%H20cc;!gEeXfH!XC-FxVy!(bH1lp>F!~tS9)paZqm3~ z=+XUxDKKirDHoh?Qu6iEKoU5;E_%8_EKW#EJ8^K#GN46%?E&PJ#R!cB2%8tewo)OG zp;8HiBIxUE12VVkIG&&O4(5IiIn2Y`<8TUZc>Q~o_Y@b}6&$;nCXA0|1Eb*S*K}IJ zftOL;TaSF5#A}8=wH=PUG@}VJRplIsapPj9jf7$c(TbBr9k6ww`)8x-gs}!VO^_KuN+3_52iF#I~^QaMP|no zD_?a-X1lNl`{2GW_>>^j`vY;|{4l>OiyMfwwRNW{`pZmf^*n?uQVmS0*qwCtudylk z0}D*@jOOf=vR>T$msoXA)MibFza#2tROJ-D@#;GJ963=T zN4`O4`3Zj`Udx4H#|MJc>ku!2{H*>N`2zI}=X?j|n>gI_^Q#i;bLLAp0!sJ-IN=Z! zK0Y(}kAD`*!rcGt=LI&@Hs&IJ7g5qi$omwh2Z|pbLn=?nwv=LWAQ@8tZgSZ(BVosm zkv_OG*+t#B;JOCVsZmaFWZ-71gDqs3Up(^TCN0LR?_;%1g5D|%0_-4IR55{6u6fZN zBEJ-4^4Ku^h$s1?$vwuzkA+$_riax?bY&xgrehe?-YaiP!P*t;)4}qlS^%{~zt1Pp}=k2~bXMoEUFpV`pr4&C4@5NB* z4GkqNRr1?QrCWKT&h$X96ol&QN4d*{w>t2N?>{)Q6rgq()e{lsXOZqV=jp{`zBm&bI*tqt!cP_<^p76XtoXM*h3-@o1ky=;<}MTR_+nqLyR)y zj}d5`*jDNAPkb+OX&Sdi#LA#A4!PygZg`*^Ze^@<_J=7*`;69n|NFh21RoVMP2z?& zE&G$*Nj~DxDCj;qMLSg%sxP`pmU;;vF>APZD(?PXvx`wUDugy@Ox!+FOtkAmqk@ko zfOaR6X4Y@%i1rj1(EZ=337kjaI9MzaUs)pZr)YathV@N^LcrZ~3g$*Ofm|{P5Yql| z3NDjV$(SUH-fBI(ZcaI$HmY2K!wy2oFuEI4;r5E5Eaeo1|Ls9XI%1BqIMt9jgY%;< zA}{pcLI@x&>ObIUl8gC^=31ha1WG6y$7$KYLA#Jr7%o>>I4POfh%6a4b_C7tjy$Oh z;wz#--z@rFY(aOfxa4KiRD;bV6GgiI6g}6}sBW@84Go}FFN?JI`P^Xx#tncUF)r9- zL}juR7MNS|{CV*WkrT!mL9;E{tLvsekK<&hA%zrQ>f035O~sVPAZ^AKem1H6>bN}8 z`CrOhY=bMc1fh4gvLzt{dAz_hXM3GoX|eZfPt0hDz&PtvvBiU%OxnD|X2Q)Pnxxld zl39sGP=wwxrn|L#GLK2Uh`jk;JPOAU05s{p%AAjI5I#t|ohFb={)uD9r!lT&@rM3N zNG9v7-Ob&zFI&SO*N3rWOXWjrTq8WIR$!n|--w>*fpTa%IFL&=!ApI*z2} zzKkXJvt5}vT|rscjYoV0zmisUVLv&H0 z5SG>Y7hR57!g5V;c09GA}NWjqZ?ECG*P zLLwq7Ta<}NHTrchye+)98!FKCA?1~$`3e5x--WtA7z}8qAbbW?zxy~z{~=Gmc60s` zW*OdlNgQY_IM7h*`|od#;FE*f|6ZI=5dqK-quZb*?f1zrpC_XB%CDIS(=328$Z`qv zogcCBU%d-I%IQ%6tl(jZ0A+RP+ACuFd5(KcYlCP@eCO9;4Q7{_okeWAu#nnRQT`hQUZt*D`~zDcP<9A z{QorXcrOXVz&-Jlfc$LQ_{*jNrN#{W4Y%!A#W6^}cYjd*=Me97ei)K(Wyu431sZVEo(!O5sqsS`!7T;?h+zK5yi$C) zW!lB|mXAllFhbwkQvSgF?PSsn@Iet?3JlBw`G3y+>;C(31rE^W1!ZKC|ASY)!Q}k` zb)#Eg^t7%&4Jn zZ3Q_XFVvri`;A9d0HR#j*Sfd84Zm6S4-r8(f(!9dNHPkj`6os7T^}&OKl1fT0h9(b z8_8eiAL&3xfj#=ZyEIpTQ|t!uxPPy~Cra*h_WJ`bp#!WCNRfFI}^s-3tj!czWqt1_EbKd!AC%QTrte~|1ul}B0PgI zU_sn&Ti+f!<^06#kEznc;XVUxe7EGu1Rz$BRl@)Bi=!#x;Tg<+) zgav9~{*etkKuN|}I%lv0Bm7`~HI@CQ&7(&WzzAb`!T!g~zl!hwWSLv(XgvX7Zpik! z`CoY3V_^&d4UqP2gw_W(MQD?)X*053@}~Q$^p;#*kERgY9=H4rdsGjOs*~r2^cVUt zhph(J>$U0nVhu7YJvAsRr!s=Is|@&|V-B=DJsrYTGuC9ECv|7nLT#vXQgSH1M4rWd zQBel0#Aa*2Md`r6pk((+g(|)_oE+B}h6};c;kBN{cx3D=*79vVHONPc!)yH%;S0!H zdmk{KGfz~1Yj_9em{Er|C3Dsjbl*^K%ED`Q$*(cdo25PZ7thxHG%R|6sw)Z?rkHU> zSg@}ItvfanZkR)XxL^j}*83-rz`bPL?fngLB&v?4WP8G|#E$|{XC%D>xwlltM*}P5 z(u)KsE4#*)xIM}-f!2on7`_N?#S8hIrKuCmhz(rY&- z@Au3pdAcsp{XB-Lju;+0=gZ|ONI?I|XTFcKp#^co(2_(5Mgs+?mMvofM0-F_C!wl* zCLUe;;g>y3^MeWcL2RJkl&{%ED)qQrFKN@JRXO_{O&v$d(agT+=%bcKLZhSXaq8>N^*cXZWIR~~XgAfR`Eq~-|%MYUF*)>wD$*K`HSImo} zqNTmc#q{Qjnsm_2YLEET{%p|JYEUy=kty;GelnITwp?diAA02jGN-L)!AoBY%Z_(@l4%x)ntYS+dm$rEx=5RP(Ohfq?<9zmQuXCV3;o1 zMI9Wd-D7{q?XfBy3{L{x9Dda~ovE|>P67gylAnhkel|8P`YhE^p~>wsr6^6KOUtsB zs)18B#YJ8pVv+ki&x4FIN_WSP#d&RV;)c;8!c7#FC=!25K5T=9h5&)&P@Xxo=DC0#yCG_!TR!wf29*|n5wOnDPK zOnlI>X}G%rb|Nr35m#Yc3=3eUQM2@+u+Co)@hE$C$fS3cDlWIA(lQ#~%oMZm;cZjD zi1u(0W7*pZeEQ7;x8+rH_rgR84um^od8q=#@lUN|utmQLBPDWQIjU`U_U1yPo8n8= z;Bp__&3ZterSt%!#9Px+qo9{*O6J{#5B{aXZc9B|OMU>Z-nOpXThaH7h*98kx260J zshC*jeawcOSOHC)kfWeVGl0kxxFtqmuMGFZDQstO1Z zqvE5WN*U3h3mbr#QWV;& z-YYPX*%aL|3+n;v?&RWmj(ej*usL`NY@FBy!&V4Vh!cF0Vcb(hW32;*~{`<_Clky#iym-v8~RICwdtK{H#M5bU$ zrsP{`cS}qT>A2nTo@XbvZ}mqhMww0sZFdPsLCb5jab zkXIs@n4}?RT__0}90aFfgYV;S1mT7I%X_|ciTH*9l8LXXDtCv}O}o`^EGxfc7^G*o zh_ar}DXUU1;jtwiVA?3nl7u@+Vc?k##T3%i#mOu}h6=j4ngn_ko?7PeZM7#@9mQil{GIQHcon6llY!(n?4 z9M#WnY`(}}F<`i0CuCBH5Mj{N?GgSy7fSCcfAg^TVZ?u=rO#2hRR&iI@ZLqTQh};F z^O+OU(!)fMa$C)j{I3wM2cahXNLDTew4wE~d)>0Nsvruk`_AlSNhW|>0JY$8=c&lw z)-xBb#nO;RpXOELKgV45!urGWPUAyNyNy#HeSF|eO#8~%zz>J@u))?>4%U}42?@)l zsqgbH+iLE4#mdB1x|OUCu21RRf?(0&Qd0G^)rN_y(SQ?Pp34(P#p}@51P>|*-ej(J zF&6p7h&?yfQ#gMSKUDv!@5UB7;LL!(kK1gPRGM7S`znzsT;xvKUXe@s{?Y7JR6sz8 zKv9#!$ZBa=YE#OQYRRe^r4=>_wH%X*r5nRFV&qkK4P?4FPoE1zkDMQ=_+f147-{Ik z=7jC(q?|)IYz$YT-uO05TwR+vb5@c|7F#XU=)4C{nDnUQ12f(^lQB=+#eb?&MQ%cn zTB=VAP7j3cDWO#OJs-u{QFcr>E7NGa!ny#qp=81c=)g4z?{1e@_)iV;`no(;#$^q; zM&EVZ+tUo|4N+Mh^DUx=zT9a!?QAg_0?$parHss}CL>~ji?8EUB1gaCM;3-wsye6!TET(M4g1bp+9@@ ziYdbq{_W)6Oe%N3h2SV_ZM|~}xH1>I2Orz9tbr5xh-aqc<_$s{gb*P0#kUA39d_S~~2Y?Lb7h$^G^ z0qNsIB=R!(9aI2mTUH?8tclq(Q0>cYTQA>eNJ8(KZ)BXRIKwI4t+^zPSShgU&@BQp zg^Q8Cof4*LH_T#6sST`g%y>0ezH}_SzFZAWCd8l%odPehlen{7ZhTh)CWyC>w(U_$j2NIBp` z6By6INmJ1Zk2<%>t@+XdzyC_aN}T#8w@8eo4N&c=^^>DlXMRwK(q|~`;-%X97;|%5 ziXNXVI_$H5gET%JAdrj>zC6q^bJsF|Ct)?QzJ<%JGJY_nnpIr_rN8)yt>>I@e64IO zhJdx6#3ZQ#dWNIQfEZ+gDN!=ub7vjs8@I+MUqSgKX7d@)^UjO0RUE>Ww#i?@Q}7&; z0Pdj&y?K=wGypcNATk=5Qx1``upPu%!@q}$s)^+rv+SBn@KEGX;g}^p_MkJHNA#;m zq*31Hg@;(1&o)|TR$YbcYDdMF;XVtAb=w89wl6Z#8ffmmw-OkAeo|UE*|l_~qh`Jl zHh}C~O5ke{S`UvX3MfFj!1_Z#_t`m@KhR{Q(Xa9vXXDrwh!(#24|%G+$Xs}f$xxO= zv#g%R>H(Ndc5&cYEfyYfKQpO{S%wvgQ%(Qgb&@7M8{}hO`S>_zI9?nJZen)`;NE}! zKr&P~9|^4>pihap!XrLodB2~9^)27{r?be%M}NQTNH=Pm&_1a;<#Nruvic*<#dCys zMlOjf3hj#W!xQ$kg`R_44TFx*rS~E5LH1Ab;_H~*ApvPQa14Tiq=sQrmR1;DPf>Ff zM`l%bjy7CbUpblO!&pKphr>#x=5X|tqEF08>|5rO?RdXFHMsjh>+$-6LA~dFNI3>9 zJ5+G|9tcB1Bj>YhX$OL~4DCV7*hiZPGvdc{_YtP>fukpog(fR7t&voLob?;zII zHR~zrlR>h^%cE6AkQpWO@$#&U;1q&^5HB6`n(T&7be}qQ>c^vM&v^|}#<$($46Zj< zVPKqpJelw9u6&k2NNn?^E7_K*T)U|>)G_OHqYblM$!PZGmDO@z&1zl=bg)YDYkd0M zJsbBXd_9`#xXhr`BwilMN}hAY7W>TT7O_`9?5PG%0mgeQlC!@g3 zo^|A4gB3}U7B|X=Y8Thh}`KMOB%z}AiZ z;w{H;aK656#yF16ZaT4h5Dl2{YfQt{K5nNAX&{rsoxt)pP~J#Gt91R+fZq{+8Ww7E z)VI_D*5h!Dj2dGdDsJ=MK_C>Kt+zc!-MAJg=)y-pS<^HhDe$P zNFDW5pa24MKB<`bvA6Oi!WLnrxy@vtk;#yGjA(fCfp8l(NP-jd7TsYEy&-R+dDba7;1$)*Z=_YUeH`G0Jk1ys~s_wN-&N>Ex_ z=|);<>F!2ALFrJs5fPD+?rs=b7->+tV}{V7JBN_&d+_Q1dtEFS3k800&OST7`?FC^ zKIZ&rGTh=2=!@!-3D`1EU*0g$aH)}C(_X|>4xv0d6`k&aCZtmMn1SFX@0t3=$0s8X zwseyl=RRwu?b_pT=UOco?>Twt3S)6tojivr1n=FqCNAnYM^Ed#-CnuO zO(l1Y7UhVx?jI|4)r39~5pUr<$^-ILBz571Qe~ep*uxU5OcYJE@A_{Ry%k?+jE$N z)L=x}Clo&~h4|(@w^5vMBW1&ec4P+xE~GPS_o|Oa>Z4gjQ}E^TVmn~?<_*HLChnA_ zU2UN}Tlji7UcZ-`Rua~)I7h0L+kQ7_rb1FYsjEC<%J}1EQ)<)(h6vt>kB4K;U`Rg* zTOb~^g4OVd{hFCC&B@`ObP>sr7tFk`C^d8FG?ubQN}u57+J(Mta5TjWPvEgk+DtIz z(x7h;ZuudHzG1HuAh$QK7;rHE^s%0ctj$?yYUvf~HanN4`UmR-UoZI>)?ghJl7L%< zYPRoncDI7Et$lnav&X&{5j6X7N~H1bjJoI(PX~i=?D+D)k7}BHF-*JWsD+~){htT; z$HUCHrg|OtTv$qMxZB5>Fz(Hkl@5-B`1fd9uKmiBY3{3s|+)Bt79_Go+sJ&e};2NWUm(#eaBT zNd1P95c}P(8ez0c#t$Eekg3P9<$LY9xtW|h+P+moAfm5q8I0)4S_Q}e54TzP?&5tT^ygpwh!MSLras`fHiP*Yl2qO6MNt@2(ch;bWmLHay&+8#hA8Cu= zmCgii;dzi>=15cHt4^mJW+M`3!$NNRIg5E4EO5Y7Xfb{-&4wLNqZxr`b2E?0NN|yl z_nbgOayK?7rE=Xkr#(XIiK??vO*G#0)sptind7>s9%Ab!Y26Ep0;l1Rg}Rf#P17gV zj|{%IQjK9GwXxyo%hxE&-!{1n4F&L;ejxq2e6liJ5hChmmuqX}T z1~6kpm`GVY48n!9(ZurZ8Ad!B^oS$6;9+A{N=w}CkmLnlsEa#KdOzSnz{~3WMn2v= z>e89zgw60VbthSBqT)Pp3CBxfJ=FgyrB&Z!yjXt-N+}>89bELD^Zz(qtK2t3|IoFF z^RN+h0B6#J zC$wgy-~SQih+Uz-xMrn*k9JU4DmJMtPWV@udolHf)juA%m>LbJaut-IcickZF%w_= zD;IG6{eQF8{%J;{`UC_OY{HKEPdrcAuf=3uU6=fp+Fv1tb;(r}S@ILXbYl)Sl7KHzw z7a<1T)VI6N*VMJoV%cQ>JcPe)_x0@;zwh7xESo~}+rL#lfBoBiM#SyM0)KuF<1+Xk zgnOtR`+wV`Hr#iAYhr(=D(JwgS}nzv{#_?LmAV*D+_V2|+2Uvo|c$FgwjDM~+M!a|bMeptVfxGe6r3=Lc%a;-V+mC;4^shr2 z6Wnky%AL^V_WSSd{j+NSb;G+15l3L(_XrAV@rH$lY7&0`uYB!~>p6M&4)Rb{9N4p- z@fMv@&9|2gwZsFdUO?2B95K7QuQMk+Sy*7NW`#pSN zdq6$E-6H-cbAVPE^gaN>%iHZnE*_q$$Na7i4ghtq3AFg^DS{+~xE_nMA`Sxz@lwT~ zYZLWw$s%)}`Fk*YrV#RQYliF`bd?1o5)@|L22undR(@SR=c|5rUAHxWg9GY&!L!@_ zUZyg){(cV+Gc>@vFLaBPAi_O8bNr`A(CWaMh5$RWRxXB>~~@HUDsSbJJtdukbEmVWGRP+{jhh*ISA;P*#7-DuUT>;w@bzJVkc53LdPFW~!0SIuc~P`Ds*}v+? zbjf06X;a3{9s--a-}eQpUPXV~{QKgAF>iWPq1|RZV5xa=X$(4biabR7g`Yo9u{UZS zsgg78FIq2^9%oM#Hx?l|ICvxB0LF6E1$5?XjyD5AAJ6db7Gw*W`%b9*jT{VsvokX zt*wm;yGi<|)$%iu{MOQ9(psk#&ym7zD3I|$2}|SVO*VWn$3I_p1V4D!A8L>@mDzwF zBTk861npBIKKmJb`YCjt$WR6%FAgLAb`9Au7qrhU;+ z&*m`tKbtM)n%1SsehQW+DNjNE7u_OMK)DDZzAPD~-YMBIh~k*J@y;A<|mH=sqHh(k|1 zQ{DMq**l;P=du4;YIi|z)bwo3g?-d&tlk4z7lk8|K#Bc7MYoCj_t?u0P|Cp1Lv&=rX z!v4HQvs4@k8XI=8VwM<`&h-*W{yd2PymKIb9Qmst?+q+{NVA83^Mh9}?FOos2ckVj z_o98s_-(swiF!uuM_8%nQzJS9zp$qYdLIX&|MeC!R&l?5`nRRU3<73Y3+t%N`c<>rDrW~kIR2W2C_wVXi#71jui-Sq^(M{atM)B<})q_3W-c)l9w9<;Yg5fwZ@9iab`*%dqv)%agOgt3zai#~Q1% z(yff#28Z3dpd&_4Rm?b4l~JcGu>LIL=Ed4UlVvMumJ)nX*=4C&0RW*)Uc68p`UV|p zQchZ(EWFitHr3=Fkm&?$Y&+H!y(G0D1EN{!G=SaIL&DAJiilU-9k}yg(-GqGx8u(u}hlbuYHl}(>#Y}PD{t$*f9S~rnTWvKm-b%)6qgv-A z#-ySG`q0V9$Y9=#bIZ%5_h(h4a*RNuzi&n}x{qwVF`i5TYWq;ev&Q3uH+(~O^2349 zgrubMG@JLATjms+bQXJJ^*!bM92U{i_2}w_%sLQR@1GMB6F+})-lBXm3kO_==wL}x z5yy24fPc|~#+eHiQdX%2-MyDdL1RfC%dDN@%;0pp1W-$OnDNFfBC66Y5jk(uJi8^N z)L1t1e)cTCd|(2pvY3uJ+{3ju?oZ<_c^zWbHUw|=e;^QIQvsrPJP{9$N%9@N=8xFxXsD>_<2*O?(pgOjw`Z%yobx+@5w>x+J6au{30^LAxS zYmSIO;b;>9sbU(F<#2D;pJ&_G?%>N!ICk7(%`3FhDvBU&vg^n6INCedHDer}K=8ybwwAsBt9%z(6$ZpLF{(FV`aZyj7vOqmf?@Qmgfscrh4XnxBKG}ItUa~fRs}7Tc4yhgyqHG4boP_&CIcbPYAAQ z0Hn>)-d^rF?nOtAnAhq!qanlofV4eR=pJ0gRj!jj`%8h6**pQ9t|v9aB+002u>-qm zKiIDPA1~|%IwRdf4J)=~=~4LECfo;tB^sxAyfh9veZxtxeHG7bgH6IlMyl#vw*h4& z$8wMFD~?^WN@D41tG+B##=RBGKrvE3P3G4~6FeN8!>Tjylk>OvpD73~QpqWDQ+$JQ zgs?h~Oku;rek-m0QS#0&X4nxzL#66Si6onL=2(_Un56GM+{d4Hnc_GYKCsp*&5pGrtbAnIXRa4k)Mc586fXVl>+tfT!F*(ZtzDKJt6y7KnnnH>HAJr>c$68DRh=WZP{fDv6D z6y?)~?aE7;8B|+6Gx=FV)ueTXBN6X$rE(_Z?vxMUR*DNevZVenv2me=*0BEm{xu4f zLQzxNi};N)W~G4E&fwQ1*hN*C`M97NC@{@!ppLB zl?(4EW?!plp~Q@yKx=cMpFdh!-Wvo1k?Mn}X{uiKP>u3?=)D(CI70O%*VkrIQm zt&$>YS635K&Hdr*SX)HSE;2d3NT&$$1WStu0r7?vb%N#lflgU#wDu5lsW%d3BHxw6 zD%zSjIuvcwcuuIYVC;YeRd0Gb{VU;GNH3xd0=ziP^kPdiTlf;aYsdeGBRBv0&qP8@G*ZKCPe6{Vp6Q$F(-*OxgDrN6aTliQ{ILuit`IVi= zN}*b#zK?FCq?E%%DTVvhXnOjz8u9h{9en3z=7l&C&+(<+g6Pd(%a* zWwBi4n8@X809{Jvv*&h3^f9QUak)S_y|tS?mc9sWPQ-ql%yQR2I5Dxo>UPtcuTpqT ztuAGh#bMyY-4hZrHl6{*!eKk^du*zJ9z8hR#B$GhR2w{B`^$tPAEnx&bqk@j71f)56??25;l9O+8 zq>7GadK`yAeTwPs1%X3zYpO|^xVEcqW32eW;nIu9f#>{5vjFLpsY5+pAY*9=qwh}= zIk`Wk)t+rVUA%VLi0X+QLUmW@Ao_;%Z`$;=qa0xjJX!~I?Gp9GuVPQ#Ul%IXidO3^ zXLS%!QtoaU=8!T3%zGTH+x)Eh{FNP(&Ygcq+2@=2I#ptyCmNNN-Bg27NMn`d6xU$g z1ZZ_nO0d{D?+Tn-kp#Sp5Td@`ZfmAo85R(5w7ym#T3n%~rFcB3FjOH?Pcd&-s#edX zl*}XId77Zl?=W;R$`aiT9Gs_s{y0*vjnbHJ`@H$|%)XQHEB$#D*GYX{UCgijoDT`A z`G=h{6Piy|l6M0k)FnSAptiQArZjnl*`1#&?RYxL#@U03(|!a8W0;%gdsdgJ`v*%2 zVR;h_*G5OJ)VSNB{GovQjqG(Z98RYo_uu5Y^9vGFG@&<;0%9o zNhha_uww0HK*qq< zis#UB@M&PantwG;XFLBq*C7`ri{BKnjXJ`W^zV$NJ#IfaS-;(k6m&^_>bN!6DgzvUE9*#!d>kYb`=@f}UXMh@P1LxE2tXl7 z&RKlLNfRlbtD)t~5R*XE#lXT6!bl4*Lm0&pAo4@#I6kDcbuG@K)|{0P%Fg6wSImQLO@MDtp+;RlQN1dI=?D` zT28@PQ9RGj*emwjQY^*?q@k46ulz4v$VNMyIk6Odhnqs-H+WrS4#RD zqS0Jb;@x8JAev7{PJpS0Yn}VX;VwRdgt$a|gW5UYF7Z8A*IZk6qbJ4<1PTiHl$5xH zgi;u}C2NstomI``kYz7UeKDc6xdEP7Q&~?Fj_rY^hc3TS6b#=9CCRE;=r5-3aIa5R&<1nm_EJMlo zjVfJkL0dm`gpp$2OMaW(s26VJZFx1jK1ZheHL9{mM@$tJZ#F^QuSRFkuA!vn9e3HM z1XkUewtjdxqcieSZbk(SPeA8hx)L?c6GsOJg0i07)1}wWU%vpJR|KIu14W5h7y_Hz zP{?}JcBILaUtbkLOs?gBmU*Sr|hZTS?y09@UgI_nGlU}|76VSL4( zwt-JY<-4%VRw~7L(a)bv5cXUFAT8C9gI*fNk~ZWz)q_3IL1SQ9`zU|o%ZiP9S5hw@g6*7#O6x0S&xwmmRdG5E79lE zsbbNm6mpY|uLx@_GG224=>Xt;PI(?a^41>KFlH6Vn<|pwzsWW6bvuWb;@8qAU{Xar zFW;Bq*U6>{xy!qp8mdC24b|sRAsWLeKe-vrPz>*FZa?#Q#wo3}ixhO#GpDb33n$VV zDF2-xmbmd}g%-%)i9*CpEG-kG)#9=mBe)#DBVz16)EN439|i(mUPg0st+YIxYN=T% zO<+ZZcja?^ZEX~H0N@fJ1)OXrny~Q2jhi23L&SV%xa}t0cB5VwU-hkN{HTJo&Czt8 z-(n$u;+F8S=M(^$q*2Ii*>po-A1W$#e{g0gugqzwC@5Hueq8{BI9hsohY$;CpJJ*=2v2=q zUte^-ayZ$Q0&w~|y!IOBlW%Cv1w^(6?tX?|njWSLQ5k)8l;Q0R3x7~5{W3-Ph{Gru zH8pp18&*P`9U2`h-$p6oC7Bv^aS{?A^APz(nSwWeAX;^mOm%AvDY!Uz$7DKx=H2D3 zru%tQpm1vMbMD^qB=J+Sx=x9ajQGyU9`R510=R$R=i6~5vSnN@v>q`-!nSjsd}wz` zsl~!$iUkhHDt8ElFa|yG94wP9Nl>ynm#YsfhHo$UZ6=Ek9oN*1@2zO#CTe!jV;|)&Hci%7}rA8i94@YSP1oSNp$7Fl9 zt0o!XNJJyQ+|IBe$O^#5e-IJigOgE*=L?aQ*Of2Y&te?B9Cg&#BCkb@0Uhip0s;a(x*+Y+5THU1U4eT6ob>1lwE-0;<;lGbMv6!UWb6)zu5Rd%?9YuP$#*7Mq+-RG1Qkh2{dpbd{o_ zzNObYn%j)dL#2^ z()0qflTL}YWASAKhs@Ax6;KCuQZaZi&~Z>i%yvBSQ*X63xnkzB#;YANMI z0_ESE^S;%iKT!)%A?3#TbVCD05%>Mnr}rdL(&j_-p*D{;8_bY*pq@8Qhmy~PNM9Q_ z`#8=oG9kpPHilwd2rm7W0zB1NFLoIYj%uIR`$$w!kDHj4E-MR{Rwg*%8vm3hWI-RC zA6erDE%^5jGhwfQd#c=ja!{k6+=QS?Q4PIX#ohzt=21i*WoCj?g5XUCwLZ>VK8O3vNx`8>9^WXWVo}1LIJw#;`$N+Q z@yygXdZ*Ec-nbeb4d3DeG!ec*STf0o}>d-c!DWl`b-!%tN7rn2_ ziO(Aq7OdY6Pl?Q2lgM037Y18OyP|BVLA1jdM#R?gwc z_e9@5HLZB-^qpQwgy>zeOXn9q<#Tk^CNnjTx|>yK+9ln#CZ&Jy$eC?k5Caz6?!IMt zR-`p2Klg$e7B!oYpkXO1a^KA)aNet#oc{3f7n=1dLZbzgI*bMP(|tYqN94wh9){l@ zF&6Mt1B1UEFVQ@UBgRQVNm=n`SY4`Ky>~XVbxmDIzl{_Pdv!36377mll$K1s028Eg zZZd!Nv7W5Sgy_GzhlRy(GZIe#3og0(8szq4` zH7$zhV=-fwU)s^rceHfQ<>%yJijH=KP#h20l9pbm)Rqv`(SA;x=SHsQIE4B0Ee8U@a26otu@VCV-9f|Zmo%fJdR<*z8T{DLDX4XCx=2}1qi0sr=q})wHv~7Z9yyhRP}wcF zq4>D9WPX1B1FDQsZ$L5|0V2OmZi1BrVEMtb10iQ;IOV4xFUJFz9$sZntcGJ0jR6G) zD2kgX+`#{%6wYXJ9SyO5LaZdSR$XlBD$lqpB_<^~ZI8Vk4bH8$H_9B0pqg%eYTYri z+@B=yWYJ3|>dl1y746Jazfui=^ciCb5~!|$4cA^pPC`hxX_mEB%rm!6tq{`HQ&(4q ze(woAz4Q-10}p`hveULj42((tSn(CTssc$==*yvR&-uxB5i#<)P%AJYr$V*VNPWmn zV*YhFm1uhoqn5uKu_Ed{(P15QOn6QM^;BJ6%2mN`m^gJHU4eoo|mNZgBx{OtOd$W+t%$KUF z4}9=06z}8TEw(pM5Ht_rMj9S7>NbigJLD-Tllnq5B-Ovwj$1ft7oCH>`0l3f+Cjm*`$Vr`q1C(ZBo{)MvyF-m?UUX;n5Uju$c& zDvE2d64pJE)1s?5%=-F;ePEzP;vUvLVwc&tsHSVGCKNqi3E2A0u|m@`!1FJ_eopbs zGF)VOI!-0p^)|dS`AnYRMz?{lAv$rp+39}!o;)G|z zjzNG2ka6-Mm|cv&*cG6`FF{cNN=&%$P$=@(Qf~#0mFSf!(~AnFH+W@60dE`xlt@WP ztVWD8hnifsFGsD#@8N``yblXg0#($q=R#l!{p2e#2rfpwZub1^!w&_>B3RIDz@O`5 z`Z7+-Y%DcQq}BNGRatfB;NkYvFyyu4ZnYl9T{U)M#y*8egs1L2KHe{wUDHNeTY;W& zUf}-Su;$5#!i4miuF~R=5Yn3)0K-qJBqT8<=QugWGsWzm{Rr6vFue2ElMm;!@ z7oUuCN5b%p6blwsCWr6C#3&v~2sM|G$GK!qz8nAHGyOScX=!nfB9kfcOr_RUz@w6u zEesYz$Hbhha~EdP+uE|S<0P`UE%k3N;rQhqy*65A}6$Hqtrb0#JxQocfpqXG-w!8=@2 zuPhuw?rYGczg08RLqp5tu+9#GcO;waJ`y%uo%rsC{4}YyXSMXG7gM*c*#kQ)^aC0> zRawO>88I=#c^w~*rUQO|WOipjc#~cF*<$f&7sj8&F*_n9rGzu2lfaOFY? zdtxx^T+j6V?;KQ(K1BS}%_~<#7i=mV$^5FDxSJPgYM!-vQ7hx$=kD zET>Z&d*&*kjr6Fy26 z&WAc8bSbabqg&B4Qqq`x$`!I^54EdDHRrT86&l*7FBcNuf=4iVSTOeNoM+U-Zi3yZ zr>UfbP3JqY54Vu#RzvxxJeSArZ$1SR9kgXde!Ta6=_RcqA-9GG{j;~yc|)z0Nli$L zb(LGHWOuP+x{`vSib}DQP5G-G`j`QH@Uwn{Y8FjM=^B2GqM=qrX6D>iHZs=Rpx0Q7 z*yZ=?_rsI8fe%tIjEvW*#;&cO^&AY@)T5vb#Vp^JWMH12{p<`DOxUB6F7R}-KO}ja z{Zi;J3FEy() zj#HMRLqU=fRyN+G>Ib!Pma1@1^#pzQ5TuQ5Vla3B=_1%>b=rh0&vxi?gQkr%d1Vjx zot6f>l~ehmYK~vALz+%ve4g z@L0P{TkCJi|Vu1c7h>u@x~mPFRzzF)s)GO~$T&cKwMd;VG^?rwEOtQw33x|t2{mAWD_x7q+L^vr_p{JdAvj6A^MAP+qa zQ)c_={?~7JRbD*@h_ja}ejMt$HExAshGb;P!0(Qb=q2iB)FuQGUN)pa42cmWPK`SO z)vv~ARy==WxOB9>K9Y+zVd<5URM`j7ENv4gQmUz~ha3!#dl{^! zy^e3MKwLGHsp0C$5DuXK$e;Db$J4L!g2g7G)(n2?1pii?68tW96xdBPaqAfAEq78i z_fIJ44h$$Ok@9Pfy<(p@_a&-uH>TPKPS1~G*ljr-N~4<~gOYnMF_u!7h4sbj?#dWG z7MmO;D05)MecqXEyO(x$v|A5eBq|=Vvo6}MRdKc3 zW>8NvkownRiCcouvpb%zK7*pA0vQUWhy!cAaCaB3)z)F1*AlawPK&RX0VXAXa%?Q| z%@B%AllOTM2{AbqEBbf#w>$eG@~%i&_sB>a3>Kx?ur*cJmvDF%;K;CG+9F{r^3-+t z7}kEZx?TMYr2m^diJ8vZuq`9OPSAk92iYZOb8BI*<4;N~N<4NWVuiwk9Uvz@O4)EQ zkz?F8*o8nO9Xb02JG*WoN-SQnCMG6=eCTVK{K8m?ekh5sx+SjZT@36cO#VB(~UTo{pA3+V7CX2otZXlUdo^loTe@)t9(gq-qgD ziw_dN=?|b*6T|)R!N!=YoyhDXr0BQl2G&V*Z)&>Dj4Dm!%nf<#?|-8YRK?L>Bv}C= z;XKW$`5a!8+#{8<)=Y^e)yG&QvbMX2%yf&pnVZK!(NsP@p(vxNBZ6;+BEmtdKuuj; z0lTIi^|?i+Cgck>;bimGI}^Xh7DMJJxi(-JSIp{jVE&d{9TmMjj!1vCKOEC*#tW$V zlJwpq&D%8!61?DZuB?SSt}H-&B)C~41%a6lr0Qt3U6+DdX+M~%i?0kOE5t{KSI3t# z#I9eiPknI~JYcymBrGI?95?vpXHaGFT?m@I$ZO62rf3JIk%vLCWcT{@C@4S}5!$(o zLZFky?C>>aocxtAKS@l`UtXe?EijnHV^FW%Ut4J&@xTz61*q$o&BUX9?C=qv5`A7- zoV*W+o#u33^^NS+ozt+SPCqG1J1q?f=Q34`N;p3!XQ@FopIm8?Hmk7jVOz*-V55gi zJmVQLF>$p=|EbF9{?R_WVWCwC8NWT#UQfkvk>c)8qq&)6&7Z3K5tOE&@Srpz?vO9N7FwXfcbEk)!DiLK7SMB*2`&KEghH*&{r4-s|I z$uO~PGC&oUv5dqCO-zx1qtyj{A{ z8z0YW?VPFZhxFa6sHaS!Z%yZCXU#3&ABhbouU9cOa}JFb(?zM7#Q&EW9xGrc*PoYSDx*DQ}H{0SQd*;8HR5FiF4gcBy+B_-a@r$X9QVt zE|0B=wPu-g6j9^j?U}|)cGmGiTi`CO$u~KzVG4@pV!&7}sFY1oVCo&R21lkcII_9# zt7YVAd*jMpoTJVwC0Ap_U=j=qCcvVPZ$m69WOXyJt&(2qiKWYY)loGA1a6d6_(u84Y=AfrPAQtH`_Sv@K9d3Y@Stjc!v#VMqA*!}>rgu+(945LHpL#@1?I=yMVa{z?1F-=DA-=lz1 zxh8h3b+f0+DwbEb#;$?_oEz579x1EYzQ3Fe`BV|D*$7m)T7EpP{~8(n(YO+M&u1cI*Jz)x;)++wl zoH4fTq-=l1?#GXJMxZ9LN=h0aZ;U8$wwQ_Q|An_7DToRxyU@zYdf$~h;ba@!yW<#b zaX?M+yxv8k(2yha+QR*M>U^rGsTuQz4bN&YO~kBp-k{GX?Xlg3{y|m{jQ#7js=Ge^ zf^oe|zkM@Fe-5E3V&`gSia*$;bjfVXJOD_czB#KZT3@WE?yU&58@a{RIa`Z*JH^xD zrKNVeAYp3*B`oah1B%*ODG4z=-pe*xxy9ayP`&x~hhK^4s+`XVd9^ZLBJT2b_QB0> z)w|lM<-Q~#Awf=*EPo%&$)QbSf9i~2os%0rTTj%GL1XlEN@9+}1iP?MD8)z0Iq{(v z)`OG21inOiWsG()M%nza{X>>K3Pad5)UymBm_Lvr1ks!@k?w8VR}cbVQ#qC}u#O40 zUn$CKI$mb)EL4vS&vM*>ZEI`I6}^<`M*CM+#cwX2d|X;v08VOM$Ye8^bNAI2ZZ%k1 z0_gKVfc&U^9r!ObtL6BeI5?Lk_b+gZb8fxP+gst7u6Iq>!6PB*uH5+oX8sksSLO-P zytb_51gZ?o7$TewdN8gy3UK=ndJ8?i@i-K}0TCV19dpS)eKK3&y=VWm?jB6TTktv7hEwWYF=?2WTWST#;RECL3*AsiC=fWA zDFQy9j537;IRsz*Ku?nb=|;c?j;d-S`)C4w>tV}Je6q2UtRo^k?Cwm(#D}nLoQrC6 zAe7F5fQGBS1Wp5_hVqE`t5-1y{Qd4QVp*!6SzAIJMzJkDl%j9dkLx)sUgTVgdOC!c zQp-E~H#Q10J+y+h0I&M>l1~PxUN`1=yh&D9g!irhbxh9a;`B7({n_ggm^mm#jR}Ng zi~2?ls(W2e4PWq=87{i?YXSj5d#fjZk&eb5GA^{zq*wvb=7kjC4UZEP6f_iam7f)1 zWnn3z2|WDy;|JqF0Q60>T>vlSVzo$TaO+x0T4y(uF%7&VA)hzNKF(i8uZf|5f7}NL zp2E{~V8)a#y_0@%5o#m!hi2;c0}FF=b1{iy&7%714mPuOy||C?1A=j0{e+tCK?oJr z?%By}WKf{nTFiV9A-jw%2)F82R4R-!`4kkS#pA#Rr5hB{7Gi-fE%;*g#q{GCGr8H-ADI+Nd%zg&a?a_n zr#-qTHEI-)Pj&AoFMq>X?ZF9M?l=BM+tw-bnUZ+>`D)q%LjmzmxuPuVV<5b}VmFYS z-&|Frk$scTqJ-Ql&-u*MNMc*~X@x(iFYs)wR9fl-j9KPm;53+NAX4%@j9Rr^{pi{hV2eQGNeMc%!!ABmB> z_F5|aG=hAxRs-!+H$Wsr{Y)uFe*6eI@!0D5lTZro;OR&AHYY}b{*0er=X8__fFb^V z$JeY&kLzxlo`9s2&PlBG&t=+rdadv6ggxLNWh$Z)1dR)bE-)_XX%k!ohqsLa8{CAz zoMQ;(GPSu;hUg@rz2T$umBDn4Vzu(G70ahbYy4u1hBk_9q!`in@qKyKmo!XGAjEYl z*Y9jud3|*7Dw+06R%9e@cTKL4upEp~PwL0@P&S?$KrzhA$5*Oe3j@|Dl2TwR(7s)$ zPGNi{zO^Z@F8CSPjeh=t@fY>#Z)s78V7{pGpz3L98J1MFNP_ysdfYaL83iX;3T|HD z&aP4+|43iESUA?0q`_A4*LmeN2F4@Gf|EN&dDcdokLDE~yJtXz| zWN(;W$KU{x1vc2Hw?$tmKs@?zF*EE7D42oBU)fRtXjMSTLPtNxB4-N65-r#T8t36` z&2qY_afJFNSj&yy(Xhcu4>`;b9QLW=yxsviP$k8=(Cz>GK}#!WUFww|1I6WMY zzkXj`U9}!R*wn3?zPK~Q^OMPfWfy2~=oDh9T$I&qswurKo>q;C+t$d#s^YY%`6Va`+#CIo>OqEJEf8;Ju2IeJ`+Wt8wCch_xS5rq zrN`lUd%>`~s78=rLyHpeSkJQiSZduqfunNto3nXTJv%`xB6hXYZ#d&JaGpZ$TX(Q= z3$z$@?Dw>h`1ts!(y@Wm9*?d|-ZJ47<5i^zx4M4tfyp7?^A6~q2{=?!HU@b3u$yYaXP>7P%#*%3W!KGP^kx_2 za78aR9XY-!Ui5&be+bXP%dKPegvVoC8vW;%A3BQ{Ogup!aC6PjzY9w z!Y18*?37vNw?PY(;<4wkbTyZvMJ~)QIpgt8?h9>jSf-|~9`(eP&M3Rn>!>qDlo!n0Aw$$!-!qI3cF86B zHL^RJ9Fqd1ROaf{a4GVXGN-=c$i;js-gR*3M?o!;z<`O7i~Jl`4dWy}Bgu21^H3<0 z^eF0EaT6DpV9_a|`*o-8E3*C^%rv9)=5-yCTu%6?A){FHCNk z=7c`|=*?QxAsTkk=LG-JTDWFx-WuE(MKm-yqsOme@XXUMZ#x1MWE2hmqoQoN9h~-# zPH4J?h3){NJtb{e?~6x&s>+<}51Q~U4$smdnq?BCaq4Kf9RTDWda`^5Lay9g`LO+Q zK5rQ1ecd@AdSTHi%`8^u?|8E0N@spo*mpO|MV@pG6(S;cY5QyBW0--E+fKxqGCbky zzJJs47l494nSog&oS&T$_w+2As{`dj9J|Kbjjt3fIt0~Nzf$&A8h#NLEg3H)Jh7Aq zMPql7u#Kf69k5AH_A3W#TQ!o|V~XNOkQolK97c7D`y-!Khy4~4c15q&b?V3)g9#Pd z4a^1;8O&}d#9gp7^;56P*~g|C-P{7zkN9?}X2@+O zEu7#(LD%hACgY{+Ni0&Jg@Qy3OcYtZs+9F2{1y7iO$IvB!@pR_w;IJ~DR=W3;i^{p zATdf|G<1VE?cvsAky8ynb_^)FE*ig%4qw>qKSk*=LMREG=oVt&EWK0SbpVE50Xc!^ z(Z%M_TsG-NfIQa_PzDINBA4a}%iX%UtmNV4V6s)(^d+e2Yu2}CQ49kC4zqUYaQ@7V z<(EVVZDArI@;VST%Xdl$=E`eX1=n7MNJ|-#3%iJ03chOaS-2L=AzU|Iz=TfHM|y1^ zh&hahUBTFlmdidxR4&e-tw}uAQ@I9Z_zWt;0sRj~ zJNWIV?0)7+)MAdV66TEQ4QFPQ8MRY(i+dRF#UWFkD=3}XVm99I%HkVx7*ak9f9eZU zFat9~M^1~JGvWywO9Q4>`)zmemdxX@bVjOp*x8k9V3fB5H5P5xR5g_p3q^6N-W;Tyqdt*xDIM3%G+f71_?$qeXMP5`#91? z5*)2uOOT;JT@y&ey^_dq-^8%wub6rKJ0RsF3`dnR{tb8=t|-TU!xuWlNj^KMhE$Jfa!%4gXMIUj+6(ov%YUDMtE zF7%phB?=PIs<-Nd7VOW>?UE2corLZENeMsG5@tLR6cof0m5}fNp$YHs0kWw;?5iY! z68-E_1O_m}buNw4UvUb%F3tbS1=s-_AfAi~QAWaDBJ;%j5MCFj*h(LQ3zWe49k4BN zUvdhz0>{5FiNciF{qB9+C=y?--RhaEwx#S?p52j)o@K|y9HU_uM0>wy3kSa3V{9BB z>0TN9%wy0`nPY&n z+29b#ji(Ir^T?c9_C>?#Kl8k4DEqosr(~v_r160iUujRtY^jl!a8zm@xAkHAzBoFw z!O3_~GZ04Xg5gV&f?&33Fk_x8r8*IM*N^RvVX){tfdtM<3&Tq9Re5D4{voZOpzw@} zAg1g0n5Yp2;vlgaw>7SX#Fd0^QBM@Mg(N)(()U)e!*W#c0K-z^Yz_WGUD=Y>$sJB6 z*vMI`3#A{NQj@CFo^W2ZT3J;lW;W~?5ox4SH+G`aXl{!;&H5g3SSLSW%plG&0aS9e zb!QQur8$1cgi~@G!e0g5!Zriq$q`;}qF;mW+b3D9e*PjvDH6labPvK931PQ{Z=;{G zDFWu=7t0e1A|7jx%Bu3?B^WHVI+ANXb*f}Bv%0({BY=Yn^FNo5&z^d6ktuX?WC=9ceLDQLEbx!!odZ)~ z@RjU^I`RI>6WfKtdY~GPE|!*>OqJe(xDQ6!N&T@5*|$XYWxnRST7q?$e%$EcE1zto zE|Lopv437? z3-sPlJ%0E*eh{ZuC8$pqK`vCLL+;2J>$)$l}&S))7<`b`1> z&5cz+*w?~FDUecjt37~BhUu^7s=rVR<+p24h^!_5=uXIx#DDXq+_+NyVtA9=Y=C_@ z0nFq0J5exXfb!r8`YHvuG>__64}KFq2w44;DFi`YVWOu;z9t#8P=LWUSZCL?kl%cT zV9uM0*uOvj-SYtAs?*>1L@oIZq*?|_ih#W5sfWcCNDi?Y9Up=8tnfn4T;4t)DxiQ$gEZ3J(grC=F5TUTbc2E@AV_!j(k+dIbaxAaba#KV zDqj76_jova_uY5m>3L@6`N3)d$m?z^J%xjn)NrE!*sS3Z5fQ$@qQb&b@d9+{ShD|f zGh3)08FOZtR2z%PWgpzkhePm@A|WMxGDxbguW!3@_#vb0+ut?Vw}au_!S%NVa9=u? zPv;qc;sE>m*oXiGd&rmw95J)twXL+jcqdZ!?Pp`4JylB2AHN1DK?FGS$f}z~5B63Y z<@RZJ?0VX1Vw$Gi=ENGf_pqul2WsZX>?3P?gBO4QOHu-)Tp50?QwaMa34#E?(l7@# zMMS4?ZVpzfENZG$y(dM(cfCoG5L{H%WCj{q7G*1=-F_1{2$jhMOzk@@Edsx~U{lM}?_qAIWFrz}2yp`n0b z%D^G^QT!%Ym_C>{yP6wDw$6<^TU&AXUDj6BptQV)d!hy-KYiNN5mSeo=+4K6`>p4K zvvY$Eb)vps4u{vGB8xeh`*UwNu6cV_2Zv_{mqAJ1KFkh<2vI?iq9jlu8gcp#tfexl z{WA>#5|EoV(ZK_%%x{Fm0n+5(MPZg{;G+`))mod%IhZ#r)T~vq8KpbjOZuxvaWkuG z&FR=H_H&F^=MD8+(7yKf@%1$)g9_?6vBek~u@(m_ZcN6QD=MG{ezeX}n=b7)?_`B; z$cBZvOZI-@o%DJIEKtTBYa6$p4+-i1abt27)IW4R^TsW@yqeJ?d0GfoogK8GRFNp) zrmFD9T7{5{==c8^@l%V0BRpgB+=B@#dTxnSXS>^nn@At~y2OH#;Cp>cD=MJqdp!~N zxy#b647n!0QcqekWJi1zrv3HO&dkKZddX>2#apWs%yWms5smPO-pELTA?7q}*!lTj zU)Z3aG=lLXD3~iZo)CF4^0h%B@*?FLEah4NYe`53{bhG=WtW(v+63{}CHA~B3$Gv~ zcZeHmG;Xc(J-@BUX|p&HJc0tx7Tpg>md0jZipCm&Z=5d04$c`S5g^EYNGq|6E`fhm z2P)$8cMOSlExi3Xx8GBhkwel>Ao(OE6cOJbE#PH8;>GKBst8aEa2Ck7jLa)~D?ErN z{Z5Q;Ky2yImYDQSC(I0VwqQnc;c${Brk<_>d*x1)e!~GX{25gp+B_(@8yhSu+o}Ek-1-4~4e4Rjr!P{sFLu!e-UJm0s`G53i0u*HX<-c)_H0q$1sI7Bd-~(bQsE2JKnw-Y_pMWg)UT9k{EPk*G%0_9$ zNcdoZ+b~47Bh0ZYQ)xrIW7Fz3wH&ckeC*;_3l&I;Pk23)Z0xt_ z2oWIm-TKR2fRf1kz*tsB^vyO4CcOUn_>4z9F#T8V+&%h@`0fA^CZy}?(`TN#Z% zD`x>WxJ>-N(Sy)W9E%R&*`_ugC4t%Kt9jyVi>B^Ai9Gb)FVk(%NDH5$mj@Y@W$Lof zN$jneP6@l{)sYbTi*?%DG2Gkddx_l+K_|pdb;`9#f=9}z55k}2eaP=d;(*thA9pG? z+XILo0E2`;qU?}|b}sJb$e4uTzzEN_Su2mXTd)z8>KlmWv{7ZnNq^-W&f&0GjEk`~ zRv21pZuTI63;9u1k)FSTkGnOM6=ac)vP#5b7>mMc{ZL=a0u(u|=bOko+N|u!xs95j zSxA`sR;bJnBSmH(q9IEM`R18A!(EqDuNr6tWQg zkF-CfkP*@_v-qwd^nK8}L|kPBfu9FIW|aBp-YXe;p4el#{l;mDZ)$-&!_$O);*{I zLZk{~|3I>0r0%PI3}?^jn!CYxe&q)aO@3uv2@I#tDa#Ka6PRY^mMg7X0=&o#9G;C-G}U9lN9Rmk?Z0jjQkDMIq621^F4{ps;)v4P?%&f3`s4B8DQu9q~FB zAclH20U=ul#nQ*WO|Kb6QZ^Bqg&M!?GC9>S?{MExHmXvitI`fUMz6tP_uHSMHMCTa zg>YjrM-k%EI6$Xx&o+{RbJ;?Z0;9fkq?!xg?AYdbOpbWLqt#1134_wanupv0 z&0&5SjH^?RN*5`!ee6d8LP-_AA6DDv?$tU`%dMJHa6>x;!!g}YC7&(yCsqzdIj&gR zjdf^|+k*P&{NuT5K$uo+J526GnvOSShC#8YDF_B`o7l zene??^21L-OmpQbNUq|yKm-xUjgMJ1l(#getS`E- zOmwGsEURjgWwKe6s}L!@LAxhmVsJJNsZ&1fw2E7G!kgTca2oF!F*rOsyc$l=4)2Om zq7Ya!G|o0<)UUW=CM?VAFBH$>!C;PJS78~8z6FXNtew$(sQJj?7KZX36rpFoMac~D z*83XzQDbkPl5*;%#4oGl#}6<0tI$Wmb%RpIBH0(2asB$%u{@33851=BAmES4})hH;IV zoF8rH2$Y8p9WOGDxCK?7F`Yl$IIK9`kDecSnwlJ74XvKZ$@DQsP06yJ!A$+p#yPM8 zT;+Up7>8X7$u|#nQf_wsm;GMOCjd-GWJ|Mg7>h2%2lLSb`HZSE3Wj&ZC&(0tTYGEL zMH3=DRCV*GeH?{Qg$jVr!tUISW}RgXpa>FOr#e~*pAijgiYQ*4xQjq5qG;&KwMJ8h zcnT8MYFuI@P_bUX>S^_fBH;e?D8Q+Jf0%?II(?nj5}wwl?qq;B5q!BhF|Yb<`>K*X zPiIqyMAo^?n@%~DEn;Ai`ZZ~tZ4 zCBty|K2DjPKgm+2iEJZ!?Lfkg{+78+4bD$%$nG%)K|^U5*CX`Lz~wyX*J{ zf+ab{LnZzhT+Pwqgm{3f{*4&mjqaE-`MM(Nn|hIhpf_@Q!E;1O3$7P zzNDV=9~kH`%s+Dz?0l=+W|kN1(<_)j_<^WbQ@13F`ycP)>8S{cW_I}OD9rn-I}PJa zjG)tEC<@R7TxWmL*~Jp}W$i`?=}o{%V{LPoQzb6NISUlgi1Xo`wpIln$>Z%P&HMaNZ78x0B90G%TPBCgYVS$nN z_mN>BdRe40x&EZuJCP3d$0~K=wgP?4Ue8k&)2n7s@J|wFjR0JgBCB2S;sK|3dw%yt zsT+QeZG|EuH0T*nvXuVSXmVsO1g?HegC3LJE&x2^ZCz1T4T;{7F>hf+uxxv!WgazDLG9}+#{rzI4*&tBIlri$UFXL_8i zHA|%S(CI{~T$Pkh0YWR?zf>dpL}|WTp=(9K{+1yK7#y)G$3da%<+873pK(<$SNa3Z zWW(#?Fss;iQEFcvHS=SZJoIp}EewgyGG$1#-{gRWjqjo+0kTIx zk<2`>Q((#VVf_@~AIyCA1*kPcb;Hc4?mAlW*ITdDDu~Q#zk?2HIA9;bgfuXnqU}c| zP#B>~8=Sk+UB7LMJr_iUq)BAVIzuiSxSx_Zz3OsApKf`f=*D)*%u z3H&3m=$MQ%qLyICEvyhCUf%ijxOJh}t0TqXD-~%@Yv#)$Q-|>cPS0;GyU8RRuDoIjx~; zmSVNLdRURuSVC>sOIeqDX{-Z~Ca8P}6OT3<0d9nupeEnW28*zCzK`bH=^;X@-UFp@ z_h{^A6L=a}>b_USOnCq_LYIgrEvG_io3<)T#Ah>=#`Wq{D3z*nl~2=^?S!F1WjYNt zos~svO9*4@L|3ojq7oqFpxqgt251<&=s!N9P4_+{l|2?6oBo*FCTZ4Ohbw+X<}Y;2 zwTi#iMG+yQaerGBROpdLh{F2IL;+la;whDd84Q3-frdKn#&B|Q7I1huT1H*=HK*0I zfQS)FJg?_W?&XOPs)*%rX?lBO&Lm6S*E_egsNjkKuPV|^LDC~-`@(XF@Ftj`a5evH zHO1J#PRV!zYs;7R+==@VNgWqqNF$+AS<`HEoVan=(>vo6)7Iz%i_ud9cb!HimSasx z<*{6DTHkn8YiIR&`xh>!}Z&sz6 zuVTrTf42@EvN?lH`BMYVvI7APQokVvnA zadCNu(M}W_-N-(v^&AH*Im(bUov0qgWjB5WI8f6GR%5s}v1QAY{h*55F7N>^funNu^<6&KcT{+w@SSvi}N-@W<{%9KC! z^GNA1GFrbteZxCfXCE$^{%&fuYAblsrC-wH^z~ZKzA{9Qye%^HDI}cL{>KakWq0#w zWAsq^k@Gz^V*_ijq`w74ceulDeNW)r*l7roKtDE|k(=J7tfEA0L6Ow;f%`>Od#mdv z@sV7k#~t2;$p|{7k)iB2**1)!%XhOCo@s43$6&XNI0j?y4aPRv5iup~AL?ZqvXYl& zIs{V+Y%g*uZtJS)J;>e-*wQ3c&U~eZFRv=J6S+ELDwd9aznDsZ4zdDg%=q@1Jq?5I z#~T|tDoFYCYagz+V}C^e;4czL7N$RVDQPHi6*)=i8!xkxTrT8u!(u2he3kWUcK*QY zXW6-_-{zjA(bLNw33YdE4)<)Gzwj#i2O zb%eYpjgiFxH#;UNHWrp?eA?$$oTs;fY7)lYcUKLEYb}2aint%N8Qx*nvCt-S6(sqn zuUq~!)0BdO@PQK~UEd>~$cm9I1@T{0EKD9e10c2Z;~Hx$M}7t(2{{l>=s+FV%~OWhp^fin61=_mamb;Dia=D!n4fH@k@Pt zV9y+k|B7(me=j16cj^mWM)i1@5_^b`EzjK2ZRtk>9tme-uK@~2d8NeTfQc!LBbl8d z-eQ{@wW>?cBkTZw851{apqh;-2&|bk=0?se(c^|!kk3czA_>7AD zY-1qfEJ*Bj)(l#=#CKx9g19g_bidjD7va65s?b7g{o)LD*qV+e*NzWcnmd z;JIA6OFXAt8l(S;_p5}95Ily^-tQcRj5)aU@u0dCz%qb52fNFuRrR-FfOY0KC7Wa6 zR%Aq_vRUE{jm;THt{3x{ouq$^XcM@eOwXjib@a(F7P?l`x}M;_+*=~Px)qk3OqIor z``#}~o2=WeFKWgb+uiTek1>gH8xMX9TA5%dKs>Zpo;xn5efSt+A{;#Gs=T>3jTO7g zQVwB9Q3k+pg0c>Ygz~jKP<(9=2YKU%Wu@#lc)~tl}LTDXg>d9 z$|OAuJ-}HE?%Cf*pQ!ynxM3|L>>^nq*ZAXkoEbq))oSWZ0LEbXzEY}siVuCfbF941 z2dAQ{I+=qjCu&n)!|;EJ;9-zCVE*Wq<$tP2;fas1pbT_%!Y^&|o8NhwmfGtpt%rw-76P(Nm7+U=Kkh28w}1u>m-7s_|9zv8Fg z$tg*a(OYVr7C1*g$XFkM)Y=sQt%wQ28FneQU0=H@Z=HE@&srS~{jSw$H}6U8lH|B} zem7+`rxHP(gQZXp!k3=y?-6Q8{3roXYRndYwdT9x5mo)g4wbbIL*6BQr+!-FN3}n` zd%WW_gY4UR-2zaURd_1agcGXaKMb)3W5WpZ49v8l%k5>h<&3F^Z;T#(F2fv*nejTH zKT^@~LoLP@{gO#ZY;wH3^9=Q3T*o-<6>I6eZFH$13~J%X#-O9?T)_RmJonEv)N+)N zHCCZ*fb1?SgP~1VJb)O()D|G<-tsaVg-`y1cLLY-)Li zjL-&!A4XyEf<#^POKq{!w&;9QFFe`%;x8~u<}fDx%vD*e1$Ktz4W!GVScRCe9kDHv z(DBi^U@?Xa@);c?KS=W(9m#3j`=Xg_2`3+Xge%5!!_L_Q0qFAe{uKC-#D=h(3au3;BM21Z#+Tl){HKQ}i}4m6%p&R5AX5t+eew8 zNIbe9e?~T4QA3XRbs3smc1#7nREt0vKiEeA68m4i0JbS4gxrQwYR7L{lak#TiN@h! zZNfU6+QgYCu!Qi=JM8SzJz5s*dRQH;lz_Ab&yNJBC^U-+(RZ7WGw$T-xz@Md#X}q3 zd(5{W5PH;rY_TJLxlCa`<21<+asHRD1)`7Dk44fV#%G1cq~;_Y7~|~vx#Sn{)bGTO zd_fhJ)Qa(ACA%H*DY~PyfVRAE8=GO1tpz&KmC3IXFVTrKb+UeQ_{o33_Sd;_*j++5 ziowouglwfW9lIhLwaKZ$&ap$iCx=0bd&dGFKpQinCZT>Qb_W&?(fCAa5xGyT zze`cblS$v>>Y;Ma|+$g1tzvKN^UIZ2!33)yEWKwI#Z?Wwz;l14k zR_Jswl}Kkp#msPsklLCMye|iBpp_BSJE!^wK!Q7||Ca5eY`4nHM#R~Jc_Fq{-9=Fzq5CF` z1gGg?uxh`T8A~ue$nDxN+zeAZBlLGqu`2~jVe~W9^Ul<10QMN8cIrehiN65Z%xsrf z`3DQsQ}bQ}$rB-8M89Q4Enh?d`va1L>DI7SVgRt*xm!w?W1%Twm$UWajeP3N)$#U~ z$ZjmUAVfs9p7+@iKQvCQh_TPCrx9fcBzduiG|HOw5Np~8@m+AoP8%r|2U7p)@YwDX-&|z$iU?u+XFaXc2IDsWEbv-qPow2tb zG0as-yeL6Tm$SqwbI|4}+XsiyD*Og)3Dz2fFbJnD?WLx>6WBxS-$=h>m0!+(xx^E_ z9k8RXTc+?a{Z;^#Zu|owqknvoOerw=9V&^_Md+_tq4GJkRUU>)En>~sIU(719#?-j zMkub1rc6Y%LD^YT>L< z#(UlABeD1&RQgCAD2kPfmFKo;(^Y`mTo)EB4o)E8Hft{+PJ=$y4xAW|xCloGQ^W@e z)-dFmsAo7%fEMN&FQTn2Y^3E1#F{3~pA0z57~0a1b7b}x4M%$~Qz1QK8c3N%PWb*3 zm2qdC-j$ak{Bn8f6Q3PM3R~!~A5>mL&6!{lB_OjXU0SfZ0|8CJmTc#7i+S6poXUc3 z_3;aJb2|wTd$55OCX_^kI!)xSaQ){AhJAle$@+I{NvUqYtW?VjnK+cPWYq49U-eF^ z+{TA;Gu6Dw-rJSaI68Bqe8qfk@;GLhpk}LN7Oa*TATh@iMQ9rY;n>0bUm9Fv%w9+! zd6OecSEj?(tY@vI%fvKqdQ^iz1Jer_aY;yzN4+^kPpD+;KnD#jR0|DlR(3c+OjDq>aQX{;QV zhu+zh>)9FJBn<-t$@c*<4!w+iqJ09P-HHMDV}i-6#TiYL`(`!K=MhKSCNX@WV6-HQ zvf1$*Azeo~FXSP~p>}v982`JiOD0aj^fqKMU2Z3jjcz`-tsQI+0Lq`&tXE_r+$x|R z{#Y&t(vPsi0KFAgZ&_2(k5P>+ut#|zZ$52+LQeSAiCQ6gbH#+wFgjEamt_h#bUX?)2Fl)-pJq* z&gqZO=B=U+Iz}b)@i_~N3-3yMYu6`Gf4QIkRG{jv%RJHUkWI^s_7wDNNC;BEV)RxwGQQ|*#L=HBT)fsf$>>1uN`LgPnlhn(dbW=bDsOjaIA z+9UqGL5K!V@gxbrEP)-4b}Nc{6%2;eclXO<5{ondek&;&N8RhJ;eMX1;%K^!qcOR% z55PSoW(e<0&6mh!zDu0P!z$6@8RANT*nj*lv2PY0F)P=dy0ri60$D1P?eIYy0 z-1k)xX)p7%b0jgWySd8u(>Z`_LF+ZJ9=sKkOOBj5@k|E!*P;z-sZTuiJUc!EWEObj zY@wW4)ea%2WGzNsMy+a3$d#Pzu7LN`srQ2I8!n8Cryil2iqes4BxF-F(^xoVJ^P3{ zQ)_waBZ=3gaOGCd&AWK{n@u0E~fioHV z4-{8#T^|Wp2!b>Hb=Ykg1FWCVhhy;EDM{%*S}_!!gY1XIq$ZJ5_@TRm|7VeqUSqw- zy{Q+Lv+i^fb{Hk;Y2yq*^Rs)x7GTS5mEFqg=y^z#2wy;M%jcB_(I9TRfwqt~C9{-m z%Lk;(g|+J9DANyZd_kdxPkn>E`Mc~D5rCGT(sqGfgm^1FF0qF&v5!2VLtgdK)Y6Sf zQ2}YtHB0$~W<{3En@c6EtEU`xTFGr2@ghClD48ISllRKdak>bt1urB4)M>vV;lFDVhiy;G zDBn(auWE~>7o#$KS8=eau8Ln(Oxw}9S!IQOD51P(q$>LS5N&A^S-DzBSM`{tOu7_V zK?zdIwK*qj*GmP3<^=PTky}4+Bl-x%tg@-%vvF)A3a*M3NqzKqSLj@?g_d-s$Z5H! zrR`}^_Pp*FzW*{9KTYBg43WjVA2?t)O>;%LB*n!EnS!|HADKloSkXS z*&b>PWBzlp`^OFdjk|UP@nNZ&Ejy`WbTRKkj@3nwX&|y>8_K$qZzJYBr8ME5Luzt4 zS|M6lTWC`G{56HZXrx%7Fak2pvlstU4h6)Hm@criInxe+m%Y%k9NrX(nH)?j{BBxr z|MC2&h5sR8RpJ9xT*^ z|Gr(=nPzu=@h4~380_JL6K9LseHd&mcCp&V=!|T=>fQQU{!6Q&GCnS`f#FQ1ig!j7 zKPr9r6!;Rhb4UH9CK_KNsP`@re1{17=N+zbV`YMqn8C>O|M=ujw-HX&gfr@&F)arV z2IkL&8r;TuNz!9f4{}nRE>*fFn@sSS#x`o}(_aeg!QRD#?fdfkos+3#!o*-B(D0lu zaZy%@!(iTAq4ej#`PL;5b#>oQ+?Y@looy?@f4VCgX|!fVX?C7O&Bn($gK_lAaXG=( ziPEfJitGj1)$C-dhe%xSGlvTKM(4UQ%!uGf`IOy0!itW{=19VXJlX2vDO!m^fZ=)Q zTEqh442Ctyd4I4e5~iqRpm5d=h0-?ub*NXB%JUYGcNB2@fSz>yKHdkdnh6$m{n5oV z8B#%O1B%agLDv4PB||iOt9kf%*^cDW`YqK9oadUSQKQ?fJ!5A8b2G1RA>!WjQPx}> zMNu?OsW@fYJY5xbimm3C>s&ys=qEn`qjX2{Bv}_{50GAd&$^LdwtgV#`mY7h=sNK+f-;(sk=I~R00f+rT( zxNTymHRIdG?ZT8x{*f(d4Jm84x%OG&Y0k1%ukgD1yws>~oz*zYZ!S*v(QZ!E^zNuD z+~($yBz2#nq$I_+`6eX-=Z$soNI_4u@Hf^M`RTA((7p}4wFrC{*!Qqy>r z#@a%n>v|;XWX4_o8j)66j=Homqa$i{<=rjh#9LMe>9rHaBUNQK z`6RzCLA_^Fd!OAgaa>*X@$#)_Dz=ks;wSFqzMPEAthlguucvnBJ4+;^=RvtZ&%+k( z&(o_WQckY)HV-9hx$Mlex#H-0vAe@GLQ^%Dj*+LjI@#L8LHm)xD=60M@4kOm|qT+ZaPcL@;;(6o%5CIfLoG>(iMJ|2Gvc8ROam0{Q=Q8)~ zO478(Xr(})o+H_N`Q}Xz+Ym{f^2?%)LE4Qten5v4D$X_RrwqJ$^e({)Vv>ngh)n>VF5qLM{Bd@H2#Ys~U>)d&xnl&190`x6BP z4kGbIU2Y4QC*2E3AmX^if5bU`_Tg(16%YT)0pIq)f?oadxYhTQ8()-|PWwU&q#n2j z)dkWE`>~BOy4g9qB)*+prm0xXKS{~j*}4sgJ18r2_XVaBK)Hp6ZJqgTMO>~woV7Wc zxmq#9iM)N4+9{zkK5{0Y)cpLms?*Yi7VTlCV|ohFZH(`OvNOIGqnA!|g|}um8kDMp zjTfp6CpXS?kAsQXvzNcRnI|I4aJw$%ZtA^7^O!ZbimaMm!Or}mG+SHPpAf{msU@(p zT*YB@#lO;oeoOxOr67u49>DCtWH@wJbvt?rBPhyGg8FqP9-SJhpj?6?8ux@qE)kdU zeo@ln!RPkGTTRM;bP4W(HZ2l~Cmh1hKh_jNaCCtrE4O~WCV&V6vp;GFK8Xdtfx|X} zNAO~7IKOV;`Uhh32#AHQ+@9=Derf6T_d;-94LI8GF6o5eIz56=$)El6I3xz{yD<1> zUf2^(v8Hf<=GQoW4u%CwoA-C`udqlw7ik+=e?O&ggEzb$G7`x>8PGGr>MK?}*jzUe zmy!SL8+_Wvfk#ljd`*EXN`k^n_4jms+LQM;;04jOTfW>~LHOr2*u!&m&pFa>8lG?w z4#Xp5|Mdtyi9hp{g?$504=Cn|&M5!iyxu3k<=y{fs~QAvB59v2S?ehLqA>*o{_Drz zv?5{&#MYKIqjgXI5`TZlv(kqlM)X4lg2XFM5%vdtQ-wdKSP$DLjSnpMfXBkw1mWjuS^VY`tlgg@*aqzEEO{}IYcO=(`X6@P zJ4R@K^$zqs_r$2 zQ3?aDKa+g(hl8ir3Nr@B+L1`U)guJly&e>7WC)so;tj;Ql<$Rx5K4bh>(8i#8WMq= zwRHC<PQCW-TVJOOZz|1d^q;690GxNRU7IZTVsr95~32=7k{A(H|1coH>^j1Y`06ZB`U z*D@iCOmP9HsKBPr|EI<4-@tVIQ!bd+qqU~qg}(?YMDiG!SqaROBpU_L6Dk^L{hy3c zyn{P~DHGtP*YkT|Xh_TJ4}Sgc0zchY{_U;E8d=A70BvyCR@?G5@~gL)cT2$0*E3zkda5EhGh|*N#KDpe!6k2Hcs* zpEiE>C8iBVj(oRg^C`ej{p+<~-5|MoeU2rC&;4AI_Ww-byrSm}=nkgZ)Hm?{W(Xn_ zZts`wox*hQl12a4wfqaY-suB5@n2m3lm(Ns@Wl9^451)~H}tzEDC`F;z=~tZKQ4a; z=jDx~9dzBq@1L~G{gkuyKXUeK#IQ*rXp!_8iowzK1yb+*k9&E42mTcNMDPKyIHI@T zCjTXV_mmO3e%Ujx&oFv(1@6DO9!_%*TPimLLsO@%+ z%a4HksKNceG5z`^#tx&lNN?c(J`f_=z8R(CiUjOCI^^_!q~v`ioEofmMnEogA?3fG zlH5a#y77ygUKButJ_SqIwfyZ6s)Kh-4R<}#7jF-*kj>;7lP$CLn=2)yAX z2JDHjL=(y%GJ2&^HaPya3M9CGS328zE%+pOTZ@mDw7ynxm24q~|XfZqKRfc&Jw zy-2{!dAZQK`Invvf4v41BA`{+MIbE1BZ*{QNI7nn+WYA8vhk#z#$NUi8<*f149@B zh5PVt5gtP{@w}yOYz# z(f^jD&v#^g`Y}&WbU+qYp%monr{8)J0#L6t49OPOx4U;VG3>D?6GG`f>Me*31g-U> z`s=3aT)=JLWK!T}aT%_gyOzKmaxe;ab-fWfwg05@THL?gVQw;pDFi1T!SC;`nLtqv zcP0wwwE&xh6QPx%|Mde9sC7yb3;Bl@%{9C}#!<%2w-T78j{H_#q23 zDO|IzHe(UubAko+Dy@=v$~z(AIyL!v^jdRxY?pq$5PJ=r_SaSWE8UbGTV3J2A&Oq| z@%2Jax)rkRYrj@ZIp@?%<*w2dn3zkThr18We*JOgh@gjE*UR-qRX{DOg8xq<@aU3Ka=r6gZG|J>jRY@yau5{Ma!{aQouo zT(|pz!*s-Ksz&N)=Eh9yo=#?dEt`HDZh5W8Rpze$aMuu~+ul~NGm*w3ROfqvTv^N# zwq;qxth;Y?@ve&>rkxsb5LUKa`T)6QNyLU;VNmrZBcJV1v-xXtGIB1i z*4MkyDb-G{6$PieW`>Tvd}pq%TXdJF=m9FtiP8Zs`KQJF{F=*SWlCWe3*E7T=eEwt z$_Td>H;|KZ=sTVa{3Ct99l;2H;BLTT=m)Uqu(aD@b8KWS53Sl^ zqfl*^AM?c%(jr9rjVS@WiRbCjgH)PTjx0s*?vJ}ix_*|?lRtIZKo2h4xjJo#^10$Q z^LE<9%2IA0tshG|q=1<$8Wd*3-z0k<0j!g;wJSowhUi? z&eyxh;qE?B)K5MBsX{`#FjL;7=eE#BT5Yg8lx?BngQMkK=9alBF|6q#@4vYcp=N0^ znH-BxJ*~9wK1t$sIyvEEIhNrz8f#g#@*~zNe|xBe7L=r#$vt_I(WTsX7XQU+2uh5J zsn7Kx=V|_wlUnHt`>W+Ba2M573nR08W7t6^uj*s5QSY1^4*o)@v>=!Ec2@h~l35d; z4Ng!zxBR5@$)Glkd=&#+A`-IGryaS37gGNlw4sFI8EYu>zpLPYr@=#Gw9!&FY zp^XNzwzn;ou1(P_r@rg<%cv6gE3P@xH(yh?!%8w2f17$--ETXba1xWZhvU*4o0o`7?4 zU{VN*>QJ5ejiaYfg=|^@B^CAWl)VF#5-~2LL~dq7xsl|eFOLpq%=mi91Q^x26%;9> zZ5qBely;QLZn~%0=JMLE(4-&zaLsDUn-q(zm~pS1SgX3?b}0d8wE!W#K(f zz1}#O<%L+v1fZ=4JA_Ymp6YJFw-@^^*=Ch@=g=`*#Z?0tUu zbd``m!GHMhZ3nx_AZ2a~;!8aa* zuZ^IH^co)I!uT1#jbT@q_~hz+%Ws866$WkJit{+}xJ)AE@ukCDBue@MOT$AFieE3a zXYvOovho%$8Aay1YSr+!5;loS-`BWAa4-?Y*AL`5ba+SN%u`zAC17Or8>lLES zC^xh4)8i^%o6zOSsbuey2SqX*>Bpi?vr}w{-MFVZ8EA#9CEaG4l%_LfuZDQ07Zj)xjcIj(?QiCm?xYrO5~3ec+ARF;xuADeme+vHp%)$_fxeMB--qx7Rv5P zTE-Rk43j3{m87G1Du8pHmunD?r8e0_5vc+0IysdR`ix_b-ziSmRlU4w!N5Q+z2knc zRAjQEQ+A9=>iOz0oxMd5ug%J4vYy7Smv34cbpl$&>Co^|M~)S3#1f0+&hq!gp`eh> zr{#1;PXbhP(r&2~i@567j$J&0WK$5ge95U-lm}A&_RRohb-i~!s}a>qC&2$9<~Y}w z6v?b;W$WYIR_@DBwcFw0?Y~gmiSJ-i986DMd!ey%ETC9k^Cn@K?Bq6bb)`b9WZa3w z0oOwAWK#LCln_8@o?A(&5qv9T? zVd{73)XA4yKC~7CQFZ~g&oRwMnd&o^7{$tG5G_SaLl?=|2j-vaD488 z@nD^qzS6~uf|~qL+G6+`)zk=uw{IFX8*HsILM;}?vNz$$k0N?v9DD=a&Odx|po$M? zG!RBstJs>CGr@7GXX9?$k;uqXBGtNl^Xy&FD1(y0(ZU&Flbf39pEZKmO=T}3da&LS zCXkjU;Xl3GCpa|8FnU?~6)-c&qd`e2l1b}wJ+y_~7cGj#t})|dJ@hMu@I%d9)#)(3 z&!((Or%* zyrSB79Bx?4bpj&F3{5@2=~$ZBn$^w%lkJRL+}ZcZ7it`NlWAWFVh(22u2>H`=)SH* zHhy0%=6Ctgb!g#X<|x6_je^CP^5zAtYVLCx$IlCsR*F$&uN`xg1YJBq0pQb}d7rKQ zONN3K0xG?`5vVp)~X*O(rB{Wi~W z<3%iIJR`ikqWkJXyGdy4sy&OVSp7$Wk({qDvBPajas09Go4l?(T?g ztx-oos=`c1E%ZC;7SO|J^P-YWvR^8??wIsiZp3myhbuMqkoDdX^4K=y%H@YXiO>0# zfSA>B2d5{9h$TyQdQ_FGAXBXr?GtTyv3|E=$;)S0H56K#xSE_sSg<%&XzETMY}NZo z9kxv6-aU0VHZ7=K3Bi;z87j3asC!E(73&}!oMK<{y*1GNvR%}k1?>(BW2vR0!_MtJ zE~|+o&(18JtyPtwL#^_2`SOP)Pghuj_?4lh(I)Roy1!OxUV0b7zd#7yyaz9!^Q{DaOWf*>+`YV-iT$daRHKWr_x*#r_pJj zji#~u_(>Ogv--JFyNSrB4}e~?S@rB!xV&@yCQe8@tyKDXms=8FIn%xy)1Ak8q0m0l z_ryBYcj7XqZnrAoyjwRzGMa$h#H6D`@LXH-s$y2P;?P%5H0Zo+F{rX6gBBsBAw`j9 zMUwhH{_21$*X3cS6~TyBb!4Zy!P^DB5-=Q}RU2dhvtfu_oqa*GDe5(;u6c3N*Myj#c2X+j` z=MsJsw#I|ayR@pRbJ_1_*=Dr()`yve$v{QmtFw$*%#DytL;gZ7X-EudbfSFp>$nAA zKpC|TKM+c%<3J~h8Mx^-2-N&=jN0xU+R=8)TIZy{z;2gPf4w%5+`<&-Fh60tZ0h3Q z^rn$tYIU^lWIV;%;%2kmN6`wK=|FXNvE?|{AUxaaTtIH*jIRAo3>sGO=p*e8u;^JH z%3ndB^~jlQA&%vu-A}zUo4XrTVTxnDb$UMdh`*|Qu!Z2Es|3~3K#;(4e_7ttjxq+4~h+B1?Z7rlvs4hwC`2W##Fg1FqziqfrWUdG3-ZDt-<2l_Xz zWxjoD=kIY%^JuE5UtqmhQ&9*a%ZTH&;E{iCtvR=1v{C*d z()F9`V#kn2$?KD^v+gVg{1df!mx^H>oDFH2N%x3R`vN>Ic-VV{Ume{ z_x3Q0W-0&4ii-`Rcm+iLnROFYGr0>9ohQU4QE(@PUoN`T_u~p^mXn8C<5#Vnhex$| z2ml^|#rc@dXw$5l3khFRwy(XNr7DjWr$YAy*Sj1AdFVcQhtxo&Y|^*sj2fEr1r~qV zADep;p`05fbHsCUeXqun9Kv|dWQ9z(Jq7HutVS%gM-A&Q(B$h}PeL+GIye&_yQP%# z5I)S65uUIustq%*plu#DsGf^VWYR*r^De@5doI@U+!cgmhokW^ZzxkV=)#@3=amC+ zC$vB%mx(kQX<-(m%~B672~i1}T{w-9NyTtI@z{1n zo-I@JkNL8GSGyb!24;Dgaf+5YJ1%B}$aAmT#6973LD>qPD@{lLN7h@1MYX-}{}!U4 zfJz7mn51;KiimU!og&gD-C)tBG($-Z-5mo;GjzugBHcX$49t8N=N#YXe15-wy)K+R zd)8k2dG7muJ!=_S+Cxk`F77=1rcRSxM9#`mguL`!CzQc<9KDU3sg>-6PYj07R7J-> zBz_S}DR{II&s~{GfW%Im3=!w4DGiEqtjt=ezE@P9;#A2fcDaGJ&iRk>b-x$vgsopy z!#{}^ouzuMzj7A{G^EhyACg%8cy>#CyVTlcn+P))nk-~x+)dyzO@qQ;BBj?st=V}GSzT)5W$EOd9b?x6eYv;}DOT3Puj4kswPVvfTVDptVQAjEGSSBif3V46PP8i^l zaX&vz&}PB-q=@O%X_uuHErW7uT!d{=jyi6AqUiWi6H@|&sa!(#lqirWxCBJ*#R$r_ zjO9=3w7KkX!-Yc{5-ENp${q@U99A~yh*1>J+`%p~S#fm!`Z=3lY0fI~!0Yn1= z84PMuxlna@w>I%$qh@!yYQUAZd%m9Mu9Phc8Ogww?w~K>vX55dsOnX`Ol2(LH+YqY^GvZ_u?ya<<#flfuXrSiVE&lY=|+Gdv1Oi6#z7 zS82SCg1>;5yvO1|t?T|GyQ{2gzvob!fnu^qDy?qBzVn=}TKBC%Jq{O`Lo_Q6?Aj0p zMQCgNaZ{6u31{hPOW^#pPz4pg`$~H-MQ;jsvr*Yu82>$|2v@6gLM=N+v>M@ZUupDK zks4I3VU|vy>&<1Mt;vp zB#YnJKJ|AL9d31XaZe^Dz!{HLHsZ2e6Wa?9?wigYBcQx>=0=aSw5K+XxMInzg&cQ& z{P2b!oPq*WBTKx%a+du9k+4R z%p7i~9c_pD{5jqQ7Cls>r=To%hZ5+;zqlC8zs}R)I!{PrqIPcypZJyM_pynBvz7>E z-rI|uvhG((scA*3XJe)brNX|z$ujTz9!p`LhPi|hz2Z_pds~GziB_!fx!2+P1BaG+ zp^fia;+U+38xB1eW9=7vsS_wCu+xP2D5;Ytu%S726=R@aP+MFuAB3qrUj=I#@kqAU zg>G-Tac+B7vQj#6csp1Gwgkuh+KI2_7hXAvs!LObecZ39>P|P7Uu+H+F(E+WCTi^@ z#`|Q|AiqEQN3pCv*Q<%Zu&b!8K5km;OHNhT-G^(Hl03v(Y+B}D(vtY|c>2#xQ(bSLVnR>$hheLh|f>@-b6k6z_;jZwmjnaa|(1ScnS zaWI?jxNdzsw^Y5DtlRLvNLbcie9=?$UejxS}enLO7y zkVMmd;mIOis5Eo#+3g|Q*GVVxbc||~Gx_xgMn18dGfVG|SQYH}(G>%5qiXcCn}3Ab z_zTU??{}Vi5GN%1)$hGQe?G8fZI$YSDW2^& zFfkH`iIk^Sw1?BE*+jTqm;HF5Ec>*0p54%Vz+>>UOSsrJ^V>tKOlGjlK7J*d;5PeM zVU$+f`Dv-Qf*(%3jxw;^EjEjl@` z=(By;k=oA_ZA38>lHtBlOrra+puUdS_HWf1`t^5F9^?hJ$4jc`&xF*}uc55rjj4$; zguKl1{^cDY0#Ew%zox#(nZTmKxOr5PPQW9V!i6nj^~t91joj}X&2+$A+?GwfuK`4b zoAp+ie3V=!sy2hGL$nQ-Ow?Q5yf@cI;trXXJHSRt{QCy70K>FFEeG0YT2j&|P`-TM zIT|iXO-Y(Wp>c94XmYrLZ|P#PYGH<#b;uIMlxXjI>3sNQMt$d%UmqEVeqO#+bVnc5 zXT!xVbuQ-nhZpPFR++t=I|LHLvB>tf>qPQs(x4YQ3SpUgpO2|+4#Pstm2@Eon z?0f#{Zx-hPt@m3(wG`XF`^(lE&!0c9+)#NPKlnLhe>imSl;>t*l~Syp00oPPT8VzM z$=3Wpk42wPorZT!_wgOsWxw81H|tR?qb^i?h)}y@$+$a2DU+#s`P($-l#a^h4-6OA z{-qSl=#aqUx4dq;V??a$W4WWL@^|p4 zMm^D?UGy;HjeWUqxS65CQuasVjRP@HWXH!4qC~&Kgdge?3E4dyYXVcN(Y{XnA4adimUs8Q{OoDC9= zyJ-|D+*fXw?&rKY&V@MWK`gR)Of}kW15pH7Y1N-=J`Efk>tly9?!j-s4vfu(FO>%3 zo`SsuyN$C3N3MY4^s7@bsVF~hUgH^pRIXvU(MSIIagzS*Zq4Cn@!e2SWJRES&ckEl zOzs$KYKCXep9}fk-wf0DNLN51ZL5NNKP4$Rvd|=W)lc6w=@5Y1!kJ;2t5~^1k_As(ZdgnHl_B}Z5XYX&QhliTR>Gvd8-1dY`LCPL}S%o`{-Pykq=L2R{F)J(>S{eFHV;tS{LEWlM&x@ z?c5>OJKHWQrdaIu(1bmouvc8{xP^ND1ar}~jJfTYR_Z0J!%OnfI)nUVx#Sk>n*E+x zX>C73M0>R1hy7Cb>PTJ#l~A#5^sX8DN*JBKdTDkxQ~NUwO@;$UNJE1ttFAyH_2 zZs=8mI{iCjQ;-mL{pDbf<2^~;Nw&Iv(Vv;Gg7KTgA7oKCbV+Ad@EP~S=;4-9Niqs{ z^+6@yxT z*Zjbm6|!LJSNZ&utoI9UhgD;%9*$RKu1BFenXrOyZUy&jlnOfHI& z+w7_Mk2_Z=SDTIPBRHLFunm*Rs5)avJ2?~uxIpLl^XEoQ+}In$o3 zPyF7HzIN66Bpm%gc|NO8e`gn%^N=11V)3+Jt6y*3(XL!Q=rDS~n_DjZV5z9#)N|bc zU^JcY!csbNR>fnEm*lCfx_|F7Fh{v9*bU7!*12eVLdr}PTc|Y^H9W;ix1Wp@BFBN0 z+BwAERBF;!sKzF}yx`RughX6vuv_iEC&=@g{k8>%^W)wZA?!2ad^nTsHL_%H^{g*t zIuJIxP7NGds42e)uH4S!+{ydvqeT0`ny}gL;Tj=sFSpo&mz^q=k$4WK`Zc$A*G+V6 zeaiEo2@p4;H)@_+c$<1RbyXHA3NS1pK6Fwvzpm`T;rI*O#!|6qhsy z#K`@LX-*wi{hiA~;m=IauF_W#YnX8I)m%LW9#ZYWche3Tc2(YJcjvR;W#RJ2UF>2&?NZavEi_@Serz{E z)kwmsG8K5#t3uO~Bd-_6vR#xSW?zb?Tvi@nYK znGk>sqd{7AF{|aRekl*G{7z(jta?;+Y8`4oHi|t;q6~id)%J*~lpDGPnkEPY;*65#wnnFLaT16S7ZtGjyr z!wp2Z46k>XpxxHIE@vQ-%U7l4Vcl6Fl{IXMR290mOC|+28MPnd_Kb|XWXGeDj=M%? z`^nx}5YdhobrdmqblNJA?V2}r#Xhnja*i}*QM1G9yv}_sW}KbSIYh=XQ6TsHvz@;D ztan+{aNPoDwNdrKkB9%1wRbOq9yZ_(2=QeOk&SqW)dZ=t6;8_V7KE?nZ7j<7 z{>W+R7QV}8$yR|T)+b%f=EVm*sJwgV^}cJ)7+ow!`j2Bjox_SOq={Gfwf7)Y!a6maBtF$6pSdf3=dx z(*ykEOs6_FXug(e;fmYr#bz~*)$kr_YfmL!A3^Mw7wag!?b^Cx=4evfh+Y>Zi?VTA z26*nT_~X9z&tG`!u-lt_%Wm&H;N*TYVM1>uV!$`Ot9?{}P-rOeTZPz}-=qfB$ObII zCietk*_*d9A3meu6=lAR^07)-Di9uLEMs<(b9(Qzn`<>>U1eNs9Qy*aNi2<;J?cyK z++!Vf5Nm%QY=d;{2fg*DW(a6C%$B7BvaGASb@%*iBTknR>0V61bmAqj%1Ed${*#gg z2^YEEi=q$1Cr4vxZ+CWfjp*yM?5_Ia3OId@$XOHTr@G3S=1K2!@Va-e519UFF?YbfL7N#j_JzrT z^pq<>m3nTPcUC)g_80FjF!?0Xo^Qe5c~BacQHWsw`f|)tl7(Z@Z(ilI^^l zURWAMF64hrq?K9Z@IpNly^5S6ZG|KbuuV3_uo`Y_#zR?sthn$Z>*_zi5WKTq=^}*@ z$%VKXDioQ+p;lqj5X7{h=x5{p)(((Vz{v#uZX+y7L`2SQ_m{e%xiXPKWb8SQvLS^U zv(G2rBSL(8Nj^KU49(2$J(41-`Er-ks3I%dp&V@Rjt%nr@8jEHJtuE=0(PNwCezh! z)JZY0Ga%u$hf`W0=rwd_NTXQn!AVjiNe{rC?Kdy#h-JPbYL0m1_j0$&z{qoV>(~~Z zThv(YFr1mSx-K`=nkM^-B1~^l-_-~E)C~#_<0A-Hh%Zq>H-pqo5|5Yn;g|(f4dH~; zt>W7V_plg{Ju&RDs8i=(mL6KF*dB(P2Uki+fr*B4A0O9^l9Fcg;)NfBeLbG*(E@pa za6NtIyd`v%T(ony=oV}+-tspT3m)8x=x6n_oCo0~&<1JqX7S?1jZphELXHc6^tt=e z=Z*W^9J0cp?vk4Ge4@)z?vbu>S@w_q5c4~v3tYj7!+uvCzW^UvgW7lB&Nk48>tnU7CiPC0ByprYF{Jl-E(fijUrS_dD7gpvjCmASQCyEnsRS|5mMB1#+{OyQ7eu$nPh@qT7p|3F11H8$wZ)6ZnKC?1Z?v)B@d_ zxACkApXklxfE4-(YrC?n(Qk*o)TXo1>?fK2? ztd?58W>DF|JJ0|kKshGf4!Ln)+Roi57!c7J#}w&j8qtIgpRw@Sn$jxE_S|o~87v-G z^hp|8p&%%EwIVgC`l|SMTbEW+IclF?rw@tE4&u8T+Ila$V!hr{IBhL<$IChp6NHaj zL@Qvnl8}s!d8P8WvpUO)dDGTh3RNW~Dzd0Ta0G_cjxckaqv$sqU10h+rgF@exLL93 z`*J0@ILRBt2C|VSiL4puN)gei{1jb9tPNBoamUb*l4f8Gf7TJ?yg_cyR2UuoV!ZUe zvV^FefsVa2SZEW7I48Rd$=!BR3f!~>CtgFgCskL-qEw5Hz7eoVqYWW zkEson=?G(J3oUdbmNKa}6|SX`1dz)QDhF(Y8B%@yZ;WCYm_JRgi*!SeUKY|?He0~4 zrYMid!wYW`1jJnqhlppLwg+D+209loB@z*h&MyMpn7PB)qWjJZ*W*$q#zs%3w0y~g zM5A-3ya26V%$iikosh4Ck*HI@iJRQ>w>Daf&f5*QY}o9F1&&$_JkhIlG@r_T0E~7q z4^&7OGb^)6h7H+$$V3Kcd7UiAtc;F|_T@4=$;P!04`Z#NV>pvVdtUD7AnW)~_8yM; z3CwVYn=^cIf?k8bBYQt;7M;9)P&}C_K}h`;k}2p@%XgY@=bWjvcjik*Iu<&w4;=@~PoVq)s5-L4b?8e#I?svyn?q=p;R7psk2WDi;xdG&0f&pxvIBK(7grWUvO+{%i+vP(p9%wi)RctbnMtn;Y|4WDJoUA=#6`raypGTnBxjJFObz1@PT1FTa15zVCo25ud4bpKB}&~ zDp=@dnn(M4+Tc8mhrJ|72E0ET6==iWo(G}j6vI6aEgIfN91}T?2X)}m8J10MT0-Tc z_zNj^Ssz$u;NNJqR26i5GaD|Z%V9SauoP-pVWY3eNmVeyY@K$n+J0;H^DGcqE#&Oo z$X+DGWjyTJpblRl1il6u5z zv!J(tqC1JxWmJ`nYSc}QI8Q&Bp+aV8KwZcp-Jckgr7z~zQ%fZ0C#i6tr+UTbM`qxe zTX2F}HL%HXr7CI$9*+q$Dr z$xT(uXdZS*`c$l2PP{Y$IJbP_nUs8n(5G4$eF!Ct!>-KFcJ1Y0s~NOrVNwP%T9a|c zrY*1>8BW1OK3ZrjLG#_k-Nh-~t;TArbj6N**JVNooh)`{4N|N;yaXokpJGoNeOy*M z__Fojis1?b&|q1Aom=EddbK~CY@{j+6s}H>4$IXGEjwW%+(0%#u0u|$|M4>N)gFH| zg6uFL-<17uQ=50NQpQ?`Z)dPOfAH6cT&TSE@gf&wyL*J*grZ1j;0X-t0Uvpe#@C~- zjb2q?l+#nM-RV)lM+G1CRP&Wc$EGU0eo`@fi~>gDWIY543+m0&L3X1*{f4k6j1GJp za?AU<(wkpOl(+SUJ~)vwh>|;E83%K#{i+?Slav|2 zr(`O;*j-B;+w7t+tV?Yq1K9@)asr{EWAA9T$esi~*T&SG64_c1g|o2}nr%4p%;6KK z!g5>0nuxKj-Cz5$T0io}(Nui`?Nj@H>jgzuEO-hsjB*n`I7FjMsTih({m?lje_{6b zwXShU19I>_=<6;za>Nr{x^^Y)8R)$>HI}PvF**a8&k~2LeJp!=iddi&|j8|6>e?NFW;0O;A59}NGcds?(XZJ&RA z^;|>>u>9DLP+u9(jD4X2jF=K1+g*@&(ZQW?7rI2hJTZ#@7stB zzrZc8a><{F_C4h`D88hKsDG(+{%KSH#v;DT0m<>$^SgP#v)iP_DPP04{Ier}>0Y+z zz$e~v>0NHwH99+S6!u*CUKYUxm>D*`TC;U_y#Pj}3_Bi(E4|nJ`?l- z`iL-xT>n^o`z{dk;Lsw*3Uht&!jp`YDJq zY~XzB!XhynZ9Jn5bi5%!bbssnUVR&IiCMgJ4hJNrl=c%^mn^*q034cLaIoCK8&hNoT*K?lAw%qaGZ%v|iaq@qq zT{2imZYrrnf8END87x0K{*YMUU#~e}ApNy^s4A;D1-99{4}7`l-%`fxqs~m1^*FToC^u z_lLbB*^vhaGyHR7KHvbCLLkidL?$K|(ikWWlxZsU^+R!h261o7#=3P|N~k|1F}MU? zE%_js#J$GNj8x`OUd%5Ymry{ywXG3Hu#OuDe$Im~?#dEoAj~MJi9}A#J0Xne{ zBtPiB(lJX>1LfjVTA#Ff?N>3(>ba+bEJcmVW%|vq0>AKhKq|c)$xuj|gd_cB#Vv$u z@{|nGS7|Ll8c}<<24T{i)*9qtA))tzP}S?0*WqQd+i19r@rnPJ9cB1eULDkzSB5_S zz1Cl*e}%ff>e#?5K<1NH{c$MstJS<`h$tqqT}sh8_(L>VSDav3QNl5#ZaJ@h<6bY& z-e!Sz-V4=?aaicks9&9b_)DV^wkslI zVZ`v2$sr~-4_?TjzELY(UNDrY=mVk_iFJz6%xV)1$&RD0>;{eAXSqmR_MmZIqM$>C z#aL@*gyer7>Pyc)FoC?K$~l>{`pse{R{~n@>H0(^<$|W&*<{6I(ctA|pMemA2MoTc zay5IhBXU1uJ&(S6gWSzp#2RqKs%O?A^kEJ5i$R+Uss3~iGAwy7FcC0D6;?8W3jHkzd1&u%$6ryVP#q7bO1uufP^?;ha63`-O!&1s7OPmU@Nwymke_do}Of=q>ok zKU5Mx>E?h^qf@nhyGz_PmR^1mMDcA$D))aF8UfHnz~g88nkOOz4}L=A4tR%|#+4{g zx&Z~=^k}6MC?dn^06n4tcn_f09HzbvDNMlM`vl_8tc}OQA%{>7;#6Y2p8QZBteO4FUT$B^Q#&MN~H`U1&W z$bTrS)C_15(aV1TtCC2tu=C-JqJVv&K>+a*5EoJ}e_M}dWQIz+O^s?D|CSxu{5?t6 zhyewaECo9hszNLtF*!7QlgARiu$AYnU)QE?(gS5Jl`ulKlzs(~$E5Kl&KxU2;@SP& z9aYJs$3p&2e1Pnb3}*#Y@bw#xHko`>ehSxLo@-5nkx?FmNi9ZgI6S+f09A!V^?stIKaA4Mw5ZsqTE0d= zFsKgItK6tszv#Wv5xB%TGNEsLQzd*csqU}_-GCv}8ECGlJSUL=M|MCW29EP?LQmzH z^k!UDGw^nr%FqH)oln1CTI55)ey5gx?%qs$9NJF6B2nv8FBjjo(z$+DHGguEO!lHW{O9)%057 z3*U-BdSlDsaEmAz5haAWJ3C`(P7R~uVMn?#SsMYtlMzp+`~N^vLYiBmQC?}EP-z(f zA1YZj=FD4vy?i_aV!Zi~qCgD&7OzljQ0xur-~9jfI;#|1B7p{T5oCZy9#Ay{og-jW7z~X+@6YW34A)c8pa5KvtHBCmswv6 zT|#GVGVi?U2)Hgp=_s?(Lh^knyYyi(AW-&hcc^zb9mRDD6@j!<#`%iW@GLA%`!T5p zcq{XAncAvxFESR|W|r5YBFb3vLm03QjVsI|-l(N#Py#;ioVX&GQF{&Pe@7-|iQHxF zX)RX`-J%6y$&t={wc7C!xkv2k_3waQ8Wu0m?6w*&FXs&$V@5`pN0X@J7PrR7%IH3p zk=eU|3lx#({%;oXRQUtv6HrM!C0t{KP`{z_zQ!kyihA;r7UYnj&l zU1)wNt&~(qyb8c-zVYs8&Q`l6@LP;RcADn3A@Qs_D19&dwTpvKCv^=4MCHy?8MKgu zO0(sBjVPIqtnA=W>Q9@aWwV=tTkmZ~Qf2$ripB;XRh12Dk;9sFfW+^t-X`t#tG|Tc zvD=1>#7KIn?1yF}F#P_oU(9OZanF-dl+YC+%}MijH)*}<6YDnlSsFv~;brL`n1gW%(9q!Dq{%Bz*UHP*4KK6~zbE*P zJbL}DazBG2H_AYCYn3v;%&hZA&_>#P_QJp65T3n8K*i%(|LHAl)nI0>QeC^6>OZa0vtQRZ z?wptLLg)2|r8VeC0l9&6l808w1FS>uK)?FYa?&9cUzzo%&x$?nw)RyD1t$k9Oy=v5U6_m?ycr+;Y?nBQ=NNb92PJ-lu^C#Grp&CaHs2F9UZg_CN<^}ok0;M;gH{xw7YSb>IisXrnu@;WE zzqdrmZLDH@`~Sxy^{lk!8j9EHV4BfJuWk(5appzgDh=TlQDQo^n!(C2@Ym~;OQYt=Uw_WiWWIE7JT62xr= z(xp_DR6^zp>j?8mx`wBAS-LJ`(58p^dc zU1VmtE`whs>rXBt6cCi3qatl;lz^HBU{vg(rLiTVb&K7cpP!e$NLBEK{e-EkoUxsstXB!+nsbn)xaWzu!g(H^x{>bIg(6UnFID&2+kH5_;%Gad_ZD491Jic{ zZ|uaeU<(lPH5hOvlRH5rkU`V8B7xr4NQyPmEDQQ8!SN&E!umh;8Xs6*4@HL~8K!n5 znks1?(S|&lrgv=B5ydd6-`18()%5#B<<2MU`sQ3uTe}WYmGn|X{&0=7Wz>27AEUg) z-k>_|T<6&N5KpG^tV}I@3lx8+mR)r29O{nU&U+p6i&k2`uX-jK`B(Q9W9z5O_D`I| z%_V#v!xX6U7+#gh9PiH!#GHH4*BPIlt$fxKu1XPgc!hMf8dI%P_sD#zRThs<1|Hzl zcWK#?xPv+T{gcMC(b@`e#@ng4dXso73{q^C1PyL(F{unwuBpf;W?aTcRs4?_+L>M} zlDg@E2I(W~K0x&wBdF>hs`uW_gu$quP+#U^66)$ z`;kVz+?{A~?$}z#O1ad@;Fa(cqTTn~DoBGVxpu5aUdDsQ=-Z>y1mklpg2**`9|v3`L-*#$((HAr<5@_I;E1@c|^~6aSf3M&;UeB~^3A|<5U4eWRZUho(K`c=<34(FrMM(nUwR^+?2 z49;5Dic~EmFz}XbO~4LqxfZ=XOvCS<{X4=UKUgoeppbq98O3GXH2p&{Szrd{=9T%% z$pGT$3TPvOoclR)T5XA#+0RNYd`Fdy%%p?cB6@WP zI7JDd&>M3;DGI>=7UySV+_qOzzEbY+wDvkd^$|s~&5?LW1+n z>7xS*_GUJ4zFjVKyJ#RD^=%OZa7GKYYZos2GHs?YdHxULscqECYhbEdnA}<4p%{8> zmCnJ|qf4Gwui7)3uX_viFeFC{STv}6jNm06l@)VI!dlqT0j8km!IH@1y|-bQPCsq% z`{Gc+9^3&jPrsi*yErHwnQG@qiJ57 zuNU3QvRGUcgDHA&pjlxTGstClC;FY)&saZKMYgq`@3d9{FZMBrNY5V3Lq`agdUQ)f z7R>8i0|OM@d*b*8GT~afa0}!2D@MiS))|V60@A>k6!^7jYE$Rp57#nEi8rbd_C1y( zCWv9h4DWCEn#iZTBZhdlqvw14=nZyTO<`Xj3gO%~cK2X4Cph3#!L0W7m;284(FU;m zPM~K*FiFKM_h@_{ZVnfK>_!kT^+xtBMsp^$8NDJ3%a6P}w$4M%;Tm;zCAzn~N~lWE zV<|+|e{fV+E_2BPxUmrDB?`7gobj19@G+xabw;59<2enr2ZI`r@1t|vW_B^pW0k&} zlNfK=@jNdLxDU4aeu2LkLPPr~@|!4MlKYwz0Otd#0pyL+%l z{=`h5RtHmwfbl;HqY^QF!P%~d zWV@IqhYp_T5u~2nZY_vV; zQ5B;5ATR%PznQ;*-o(S9?PWPchpy}e;5ZBR0eHi}7Jil};`YM7J0FlY8)!R|fh7+t z(z;8Goc5{ONsNvyZ)nwN$;4UF5~~3@DxI|==O}SqSSmNfX7GNUlNDvWwWEhaWf9iB z;GUrUBor7uY8QIhCSTCDU(c8E9T$Nm*alT60Q+8%Rlan)+I*m)ExWWZ>GzZ7hB26C z=ju*ht$B2~^m0vmc!MdCPq56##x!&+qyFA=v}$z+oWM4oW;&i_!@etl{r9#%_E@S# zV^fYhGGTTr-u}~~zlfd|-(I$%Zi8p1R~U@`kkv3N4>}5Vt*BH8#53N4LvAZ)F@pi2sOkEt*Ml;7&tW53V)?d$+3Syj3Z8oQ!7uxVI!W`+)&mU9roMl;IjpgJbhayj>Zs&SrHq{L^>r0R3d|- zejSLDu{*9!B8}XuyNxR2Z$@Re9hV^(Xd2Ikee>_eP%##0(ne~`g}I$5M4pu2Y6C!~ z$GzN~@~pH_TV}r8pK+vGn(bYBtyXvGYT8}Pxw(>s6~(xj(Dim@0g48Th@|!#>`rT6 zXPNRm*M_ARX@|Zw^PgHx7*R9-5&U77tj?!fJ{CRKg6YbD`D1moXo@U6-w%goO(^sT z#tIGid1oXfL0#t6t{1x5_g)p143Kgz5F?`Xx+;Qgi3EDvO#)ng1-f7`^CkupxZIbt zKQmZZQS>!?$;_4Xl`*??-=_1XR+YiW2{q<>b|SGe$@4@bEouZrVF!i+h0dwoq^>G9 zD({c_9`vNi+W6GN+^I8^CNjXop73eg4MeORiN;X`Q45IZ_9qiAI&x*Pc_SPkkF#>? zvJPL)e8gmh#c+jDSL$U98>sO<X`52WJ4#&%sHqvJPWkw*>{?MaL@g}L7M)KFr zd3FZ};Y-0{L`x`SbD@hzUA61ni+4zO&rO!nw&8O@Kk&g1u|N0qIk1zCTST1(?_&Dn znAMoseZK90RR)v7xch23cG}jlel8GnI4NiKU|Q&nEb`dCh}uO~4u9SP5Tv(mnfpe^ zPg)68RI_G|?RAg!pElH5bKR?N>JSYY#sCl{#VbBUtqy}69VM3^{1yx`l)OYssVCEJ z+fr`*79@k%C-sCIc}-ZXe^Rd85c5KeCNzy$Y5yoj9cAmySeUk zYvO7Hg@}#Qs!Gdh>eYr2^=l?s3?R1P+rf6R3 z_~-@Gf1arGkofLI(M)zpEZu-vfjoSMHe0MGElqOPtIobV;5o>l*lI4103)5Hr4rEf zIVxFvH&p~^-z15@Bh*=66|ZzCm?~Q~SUfj`Wr$OlAg?w+Mzpxk*0l5YaeD}?S$HeJ zHFc>au(*-<9JEu*-O-9$+!3ir(sPwhJ4H9*oF~qfy4|u^>nIWjUWJ!PqUGzyMASGp z*p+i95M*6qn0I#XR?Fvu6{7QAosPV)UJ*A3REmeocJ)HDZ_p2@^0fVW0V~p(%Q#_s z8k52rPR(0x*&d?|vsGuSO2{q-X|@fzZI6Rp`&=fVNiEU~;#5*|0_AO%(-g4NaBf6u z?sG6LVMMd@czqJ&RCC)zGv(q{WWwBuTffwN!Xjzx9y~RuRJ{|(C7;AIdSi?>Om1$L zko&Orl&FXzw(N=Ve`I`;*F>O0^AtsZchsgvJMndDKJ!JpF1W`-+R9B9+AUT>(x>lO z!s+%&T1qVC9{_C~C7%t(F}SP`TeOu2Hd<@aZ5&Fd0aioW;l5ug5!bH*aRq*yA&Wu)fJLh%G?nA z!mj<^-6^`J*XZ0+d7Xfu)L7>=FnMCdtjks?(%`KC3(lKk&sYdM)lenid3O`XJh9ky zi*7Cmg>B+zbk#_`F_*#(szhE})Ilp7K$>zSw+JzpeR5r-Yo7&8>F|_tpJvfD@^2bv|46%Tl(Xdc?gO6h zA1&bh4oGyU1>`xNoj6f&*&Ky_eQk@!$sJCYp7^H;c z>zySKG_okFKY>}#KRr)1lOH~g=Y+r{{D}a_)ze#UR`MHEykpw2Q9@2@x-}9Fg$1sW z1I2U*WpSX^_JBfE_3>8nL%?h|38A7RWn&+CyJni|4gH9ZWxKN*Xk+T78*M8?xy!5- z<&}ILx0rr~fV3WIgvnx2FD(fK5|69ZodN`N7)4G44rRHGTzjnixV3!XqI>m0I&355 zxB-qUIC}UyoT1WeT6tGSco>HbbsfsGj}EXMM_z^X*XoUJ!SO?=#Jy0T!mT|K`6}2} zQ#uy@)p%2bj!6Cuc7}W`iUmUHUlY0j5bwZ^`W`UV&-=0zqkO_K7UZ*gW|EdW^LQ;1 zWMb=2EP3@Ty5BY#JP$gHKT5y)z3wF_z0}?-DvDz~!^JN9g~WY7avdVyl=}>Hu!I-D ze|uD?A#w;nwwwPp4j*vWIBs9LtqiPao*j_?5b*9++NQQTa!P{6^8s$s5vc$26Y(0} zCECz(bNNu(OV%Xq!>-+s>3g@>>o!)MXnmEb_$`g9oo@))# z!Ic)~gMjvsdwv`^Z)kv1t^vtoMAB-nZp}Kc#a4b`gesU4E_?Y>0bA0XUj zkE6MV6-vG2!-{-)`c=s=2|y(Q-HA`ugW2J0Vw1qTJ)cpPqoFDpo63X~S(w-IZ^9-o z?MEAw`hzptQ;>XiYTy8vfb^kkE$VRbCpI&=pQoqW44Tsf0VQ(sZ9Ecw;2%)FVtm&Rp%ibdXo$iTlgPTmIV`@mFWP@7Up~6;j!W^H@fU z>+QOQ^OF=j{M*_8I*fPsuTjF!y8mLsHp6?|$930@sU?d54QfN}xVhWwz^+;m?A~oT zp0NlP$pkc0cBaah-PZ?;P0`ZezEbe130D|DdKEuK8%#$a zi{kk(m!1WheZy$^L5DryqfJ`-Xx_OUG?;tr07Jf>xU-mSF;F`%KR2tS!2pghhMz`~ zjmSyweoFB^Qt$=Pzyt*g>3d3E8|YP-d*lHl@*EhT>P~xWAuFb9hCn2V_kjtYMK4U~ z+p<2ca$+~J&8kXe)$+ZKAJl<0^0qUE)#Gax9Y^g3I`Ro!qTn6W>KP!>Z%_(8fBpHbonA$IM=r*l8L#jQ{P6|swAVi{W;$~L#mOQqu7n(_ERKz{}R1U*04Mt7tB zuCIggA`Uy9nJ3{}EpOR?Y4avzXJj-x_=0w{0HObut*L_WG-PGlu}5F${3DaeREIu> zlrUF9>9O8lhVzbx6E~B5U)FqrDN+`7&EAk`9>Uu?4Zi5IP`^L@GyTaMszedHQ-Hq4 z?SVbx47jLFKm&9i9yhOD>q*-~us8gsZB>WMp9lVLokW^00+*@2APW>^ol+m-{|Me( z=Mj+2&tgv&*l#DJOD8~Hrm{$R#k|a9^XiaEgShLFYvyVh#YAg6~ya|tHzWVV>J{ss0mT8;_}|HX-nSdW*C9&_JsQvS;t%F94u>R`2!!H2@k%3)76Zn-gBK&` z6Dhw!_1f9sJSG)^`xzYpHwT&W?~{j?$zyDkw_Z~#0BFHXNyP3iXyLk)5qZ9QS<(&a zgWl+!MtO6VbRCj_>31Wc28>mQY`)ews|sbl0{7MEv1p9L;Po9N*HhJbs~Mr+{$I{1 z3yNT7d1f#>E{9v9Fvn$vM$GwlH;|E#WoM4>cQz;?a@?_=hq*90oFO60ydn!(OYZx zC~JJR??D6ZDfeS+)B}lEGGCOrtHX41cB0jvOC}u0uaMT?bd=>Vbuf5V7=S+ zvEeW*8+w;FpM@t0Zg*!c+~7W|G(7A7=v6Tqo527F<8cIaW*`~awDW}EMTc@b9aqM5 zafzM?iC=a+TpLNAo6T^&>p=(=Dc0uOnmFcN$^J-qnQ8CA>VS0Lptf;D@{EK&t}{kYf{Pa+uE~KsQ*4Cu zJAJzOB_}lEs(F=)z|wNcXf~J45KyVB9bEyo&c;hifg7*4`(1sD51Yy7u1*owmR~9@ zq~=$TWI)Yc>x(&aP7;AB(u8em_!uFSmu3NjRq2**CRQ0Z3zaSvwoNxKkIMNZ%90o1Y zI`x9I*uIhf&zt$Yg*`uo!cfXUvCJ@&l&R2w(Bp0yFPrbV($-a*VzmesytJt$SWm*P z&r&+?yh?Hr`8ipEkJ?V)Fc}Ba-biCgqm{|A#~2^*X&KhjI>|&t$>Pg!g-xhn`U_*) z>&I+$)}99)bA>e8%rgriHE|X0^}48u2=$(|S{%nFP;%F1GDG*nZ-a1jp31z|=}%7} zABJzyAo2RbI3;(gS)QvbT0;tg}nzVydO<)Zt_XV*iul`n$E zP&53-#LJuv!*qiKmQ1j9>5ypOdb&Guqy&FXz_#(Wl=9ToziQ!nVVvtJnBj0d`>Y)= zjszO(_#7NWNB5Yc7s~!?A+b zDIw=g8`A-*&#tf6mOG|2QB&rp{v;X+nVyS~V&Vg>H7j z*s|BX(*J@UAss2_*BKv0WB1h($6hr+p0gymX9yqvOHE_Y5^dWH`=449Uhcoz-si@{ ziq`0-v}xEg5`GJaK8LMaqWWCt*n$is+8ymO-$KMyH_2WW!;1R#aaWqIW(aUH%6Q?j z+OWcwAU)Wg=K6^zBZbS~zkT>Rd1gAXIz(A(_N2gevHRl3BG^>UHd0dwBJ?NBqw>3n z#=*vXat@A^vU}croX9fJP)Eb$8!RxtYeXSnqobXf0UPSI5iG**nbByg<3u_kmMJuO z&V7ZUNo#4{)mbWjx+V2e$%!;2PQwWZHeY@}m%wb+{G4*m7>S+lt49L{GvltWGun=9 zewx!T^cdWlGgbnu!_v#Av9H}`QKGi8&EQS7+LP@kyT{wxedDBNmU9}NuZvWf#JB*z zR@X(|R@x8AQYP|WZy7Vh4(G1VB^up*h3g`BnsUjFpA;DUOkz4qmS zTR}0&^!rgBT_6Kwwg1tK;05kfGk?Av#^Ev(D?Ec&X=T^1RSU#JX&UF(?_5>y)xGY_ z^(llR?`N;m?php4=F+?i^t_@F?a(I`Z#DCRS7Cxhz-iVCy{Q1lMjfC9zKoBC0>2Cq zaF{M8yp+DR{*5!Ou{cXOu;a4lymppFZ4q}<%R@8b0z=qV6)of(`i)wvT^s%bOpC9% z*Gu9uPwswAlhtDcpGNRc{maH^7DHvP2R`^EpW)oT%d5;=;yaA*sJ zheHrX?&Kadm&f#(gZ(VuJ-6KD5jcKPD*C3&rXSxytr73_>2IXV?3V#Qk{fKb^9gT> z4U;5Z(>HozOTG~xo${e=D$`9T2%Mkm$B#^3Uj7d3fAGPT8-&eH{W8+RXirF!7}(r$^}>Uol;K_oR_Z;eIcc_OCU=ya%rD$7gv(Z1QIGIf6@>= z%b-XeTh=~r^$&w#LEmk;Ca0zwx;E{*0mEZSq#~C45yK=(fR6qKPB2^Yw-7k~?8UfS zLYK4KdS`w&*IEt)q{CUVB%gzM^|sp2UB7%D*!)!CY^$zH$;{>s^Fg~Gt4jQ{n;W&Ib>Ob3 zWhz~4e);W;Cr*f=azC8K~{LdXYbTN-XwdoXF`8DRJAB``%J*bOh? z!=B9QA7*Au2x32tg0Hf<(I0LvN=KiK%F(vl(tZ&f#b`qWX<$F04XH~S+0V-!9^Kd)rEabh5$>gHdY^$6%VlZ$ekn24 zCiA-sPSmcn!U4G)R3C_I>970+Gq#AA<$bt-sMz|aMB?pt@%^~OgA(}`L$=b0gViB>N$}O>+tx|1S z@E%2(;$h^opNvFlU`JbLtJx}Ud2C8Q2_O;Z`o|vi>^dJNhUcNo?KLMV4+#Uee>J=F zvL&6M`ChwYK0?B&?~@?}{OC#^jtAq@#k3*kMgh-ivXUc%r2EaeX@#>&WY;0`p67<$ z9)ZHn0SnfpGHDzyCRiCwU6Cl=mm%0^_DI`i=y%yeBtDB;aW7Mf`)HLrX`v_q1h%J^ zL&k_Pcz9nC_NnCv>R>TnJYeucs2#POvjXU|2LyaJi-Kap=?D2PVX>Qs55Bjly){LS z(*_NOzOu-=Bi^=Y%}FH>yUo|#5Ft48(x7X zxmZBxazA=G06Q=q9J1c`ZLsNb6ksxx4STN@i5uv9<)Sd^%8|b@{ z=)Ty%!G|>2>cz}s`*WOREZZIni=erut3HYE+$GzA3v4=~1$gn1@%Q)jHfz~{7j;0= zYB3&~tMnTE3G9F20-JU4GKP{{G7zq;5AH)iY_}NF{ca&zP3y#(2A>W=jx(?I@>N{{^m(IHd?KAhx(GYf%5#YIi$_cfN_ zqeEA=i#7>;_m#ga`&KOup}FJgNN(0_^FQCNgGH>aR#l&Y%qA(z_9}$bxvUO3%2`6Y z>#!r#xA!KJ^D5S&zMJ<+-Y*O6)HHxs(=VH5%Ksd?t&#l8N83=vO30t%{v>Z5}G zwM1;Kw+9f}aWhN`8fZ(gVGEYqTlH8K@p!Q}ypTOd)C$jvhpr*l#?hPi-9nOBB!lj8 zj3RVbr*FTHqXhBuXoREco-Z9N7E&W`TmrJ^kB>ro$q==D9NvY}O8ouB>ab(aws1 z&Hm(NBI;>du91(;Y`*(P2b3&Es`BWTNw$=65MypV>WHYfe? z>gefG6zip(cXscBGq?wX{E_=rY~Ozzob36L;ERBiL7+nPXzlyhgh19r$isEhKAWG3 z-9%c_{3#$0_WK)I4>G|NaXa56%RkQS{%_%8u0UI= zX{<4%0~)9 zwXJ^y5}tTETLatX(_+YaIY8i%BvKA9ceMFk=ih3r1h7d(vwk;%liRE8c0Ph9js(aa zqVr_C$M$bi;D`#LpTI-2hiZ>g{?jwW0ON$5*P>BE$;wVqH|_D|dR;_w+WBh(nIHtd zJlO7XI0op|n;NK_Z3dV!xQ$2UYl8^ERlGj5_D|_>%Ki``0~bIP_sp_YWwo+IsB;AQ z!-G&aq<2JO7(DVQMP`TA%b)VL`^#pAyBazu2M{B~JDp^+H}mW$nVf0A-$9tgEij#{z`;UUyZ&Gmo)!wTZ!_>hC{AbhP7$t&5bK$Ykvbi3Qme4Hgh8 zaaJjSz+%0OAg!d7&kzsH=A&ix_q_xFkH(z*vhTo7bg{{wC#hOV(;qz7WQRo7EKDpp zDE_|iz8|@C92Zw*tiVqya{R9h{R)%pq}iNys@Y|xwLIUC65kiq`%mk7m9{T+WpbZ% zF_+n$?8&+?1_{tGim)gazWQX#jp|mkB@-9UBP>hbfe-`uC3UH4nqyWnrGj3k_=jAL zg&pC3+G}Z*0JRCdYHOBb(r&8q?VW7A(Hum!^)!5m5Pg~7ZKr-~Ofwl#JvmhEKznWN zt*S4*N~eC6^YPIR^@k4-MVz%xg+49y5DIJ_DvnWX8D+_{v3}!Z<{&;*in01w0%S%h&B-m5YpZhiP2?L^B$75DWOb_X>34#nEZkL!;P9iB9|_eY_K%2`#7;wHh@` zhp_es(W$I=Ew`c$uVm2zrySrGz6V@Mt%{4gG-;LH3d%k95c@|Nghut#a`;cx>rx%> zm*38NJpJWf5I~;baal$;nH7{!1%jgR3TwnE_OokS%j@@h^9SuXTk&D#EXTM)js9jUh!X zXNPhS2sl|PzXDk(S`JZln)h&EDjC7A?cAJHDHHK4TcjJPsB%xb(A=vHnEOQ@+mfmG zy7$?e;SD%-WxnXC_$)LScG@!yrc*MCIPZ=sj!CCAnXPaD zjs>7gO}-x@@;wE`7UU4sTo$dHW$fnyJi`E_@tTPmX2|Wl%fFUT{OFY7_0*hjwys6| z)AI4+@%g?XlM$ZLoS;HATpyn(5e5en#@O-Sug!zP+u$nuIU-(5y-$=3W5JP*^N!gp zKJrTKMSlq-+!KRee|VO`)T+~P_sYHWCPB8Apxc>t4_~sZ<;OCa>6MjeES~jQd#n(1 zkLG=8OR6@6Ob&Y(J$oqPn=z@_*80Q9d>(CQF93A4e#S^qwTuYT4Fxnoc`z^b3^>_#Z%}*h= zC61k!p(FLD@2mamn9{SNln=?F%SE+jtQdBU4r#kCIeryd+$d2kMA59zelk*^wrKrD z`-Y#`Wqp+!&!ht(9?T&F=Q zn{1Y75TZYW)-a>h@>;tkM(VTo>(Qn8vM-Si@(mZ1hPk!*xXfFw-#N|@st677U^;#Nw5%`&5(jK8|w@|{k8wwL!@_ctyprft1SjAnq z^TC70q+7*?Ro?tbQJ=pymJ~ZT2g&DS*R^rl4^*X@DkU?cZkdhXu`2YZMPI+svf!rw zt^)Tm8ycnGNY051xU2v*vI0Eem~z)~r$r)m8OXp+(^u}YLf76z$$3>}ED2jL)dkkjG|pVy2jYaSnC*>!9U z96)l(Ahc0g&0XHQSVjxl1>qF17Zvb6QvK&g>Xy!fJs?xZ7!5n zgllOq!7R3Dl7oPlGW^N=B8#ky(cJC`@CQI|Cn!i9Q{>>b9-wupbEO?5BH*>GMAXHK zPh|xpMD_ApjVf{{p~MWE5+FD@OQ?*8TnU)y-@k+4ahgjR5p4RkG2&OcnZTPb_SgLA zl@h${Za-=8c#K`zPdu=3H0!EWC;ONR2ciauEN3tk(FWjCZJh}|QRWDSdfoxqaxYcg zk58pP;DGl#%w9=RFFB=n`v2Db!YP*b6H==R`k*&6pNlznGcJ*rgV$zIuv<&BBirPv z^>PL5%ca~pgMGwCQPwF(9&hH2`)XSQ(BIe_{BnR3F^E@gO+f%*=aR9-X$N1(Kc-Vj zPl|+doZ85luJ%lQ#n>14puUHVZJor0$EaQMmQ#}_i-6mv41w^(;&?nzpuHM+i6iva zn-GO#^CNTZR6aGd!r`-+MpaIfiqD1nOLNyjiHNJ_Zm)Ui-~|~Dt;T$7eSaeUxTBvX zu0?gmu|^C0R8$SaFD`wAE$%e=qe$`g!p!L^JeopY_Nv$$%&t|7}x%>mJ;jJ*^1X^TCm6}0fm$#{5X=wZY1r&B@OJ5 z5Ek>Utm`M)NAE{6G|-;RxF06X=*d0)mF5OVJxwCn^y7LJGQ3vmIoS)Q)87JwdDxAj zJ~%0;QYBVVevT|nC)7^A9Fotp@yME(vqf_yMl;#;&rhZ`Pm;D zt_4wQ?CHONcKFz-QMPU(#fO8GqzkEhw;VHDz74sZlZ|SZ6wf966=NIVzEXpIQhp^( zE;9mq%bl6f-)?Otl4-%`Vg7WEVRyDkK9%|R=hx|Qg$SDk`rd2Yk8jTHjJbAo@uii1 zf!$cBVC$@$RNKlqnstp~y}A#R1az|Ld|_@S|XGOX*YL!@$s6JH)} zNy39ly$CEIM{?FFjliZgJm1j^dR|6p3vo0_*8z(=s{_ldhw&uJW{p5edl&okwMCF9 znzrwDODmf8$)G-cioa!JEEo8$Yv43Wg?>Y_?px>!z)&1t$t$UP5r5(W>nTG1+G`AT z!8|=98Lz@#ft-ocWSN^n7o3@hC&(yVeo|6g=vL$qy-MXry7aM}J3$NWy288sAKpST z6Q7RG)dXBI1|1-yAcw*%^Ag9VqbMKE#e^9ENE)O~488x*Z`~ClF*esHVE-cvPC`}y zFveGy)AU|B{!1KlclA&p`{?QO)oz9Qw{bpJ9^*5MsnSd1nT6F^*>5@TuLdk1;s}hN z2E=D6D>S*-qI+4ExAjoQ1=FdJ94U{WUU<5BqxE zT=Uz9`)o?F4EhLz5@OZ;qy@tJGP}ZxtiNz7(YB?$d2~R9-9zvmEQmGk*8&H`?=t=w zS_No*5E9jzOczRMkfKpYvFNY5-_IyUe!3-2JV?#)o|w$Eo)QTAl47n6g`CGbY^1o5 z?P;r}d1hI!{+B(zbP#ROFd+E#mlajTPP+{#OaUpXx{tUwCH2P4f|S!cm5*^q1XheR zoOP+KFUj*g3CqW}_b-QzYPU ziMqt&yAxx}|{UI`fd(_NOQ zF5yX@eLTZJpJ;93|>*3 z!*r|TcrVB8D4nn7-nNCZ)D_PZ$a7%m(8G77UmQQ*|2TuMa=KjZ^!N}AH2YR6;dtF%s3Y3|XVrX|0d3g5g>>=|LTxKy`R38KhRcMd*qo+oBQolC=bIbzlcpd0 zkh{Mud!(C1psJQ@SF;@Ht|*U5FYJx`f`iUQ<||f|N9eP>Ouq+5Kt>UvW&|(>n=ZfY z^rNa;PFlKx6pg=Wr;4#DL+Hw1O1S}`3(u@%NUy(3;o8!Q!$~9f`m2jx?bhTC;%(Yk zU;dOoDA6v$rOoIv#`p^VnUjUg##-)A)evrLWrhT)uv$ld`F!|zNKvVR&>pLqbH5?e z!p=*aprn`0BFaCmlFMps46bew$(-pXjw@VrOj*F+fwt!EMYIEk&F3ZeNz9cNKr!NfXFBJ#ewN|+n;5+*y zEL1_6sAaAvb*jnJ5Z8<142lg>&QRmNGinikJUTMU+vMjp#~b_;wq0WvEo$chBeE1S z7Q&Vo9+coRYY?0=^ThjOqEI?bQ&}H6`(x@Ehv|hW!V}oyx|bf-zCK?QeELa=v0fGb zK(hJNH!1rQO+D|wGP!WnW06wfKP&h!R8~@)^VXP|dbY`g_UeROf=TH8Iua}M{Iz-B zEQfIyQCayTVH#!}IbF`z3ui1#hpDQ<(mL`IVPO&sB$SLSnd0^-<~t(x!(d*ViyXeTc5<0^S^$7l>?8>wi_Y~&%J(#W1|ilbt{kNbxm^fp z!Mp>Y0LDNats9$lF@AS1AP&NmAOK4CJ9S_VA)iasP?~JdrG8@f!woArt;IZTrWudj zI)5=na9^B0;_9dTO*vGkaT`G zVqVYnTy2mq%*Rd^a;HvvAR#_97c=QvI?Rc*wSy!QF(tM}2#RehK(S;(%}GsN12NFc z)8Cc-UFCPSrn@k1Bj~b4WTX9Ygc!nc^zy=SZTHOd4}h=yuG^T ziFrAVAo2So45=F5R@u!P^Ul-|mJ9{V#@Pee2!g6UCLY9ZH~TeF0v{If$)E;`=nzZd0lSzTZ@Elt_{1y>=Pd$O&E`tP)s~ z9H1vJ6*9L>}^Kc(BC!z|xfA$rYF03s(oJ6ru(G7 zT=FM%-Fp^UbuN0hTp0=gG1@qsneL4hi8Uf%kIf%H&G^^CjO!99@<~7Py+--4wG0Gj zw)#;6`H8zpS5lZY@S7qUyF*Fw(tz5HoKy%wf*TgY4;|kA8oGcS7F$9{=*-Qv#dCNX z5g)3%r<)9QN_b`=Xes5bA~2>^nbK}33J0}(+XU3ma~QWo%aoGCPGQ}}^}~WklxO`{ z2QJhVWqsgV?T;no7~x)NC|f>B)R1gEaYi@cUUjgToJUi%d*w*Om+#!YWJU=eK|7Jb z_=gF0V6waIv`f%y^MWDI!)tnD?=sG8K+HPFB#Y_FihDx5M4SwvQx;ol(cg`qXQxf0 zV830C&2sG2n#1!8Hz4Nq!{hYWtzU$?*r&vh# z_!3YoAYkCRaybnd5R-UPs@LE9yGB{dYQ^v!s0UpQ!|Hw`%0o0@`z|v&gA9O$y(g0T znPg#T)mOFq8R@PT`{9{+e@ctuJNS;P%z5+t$jV47$UN{asHd+sg?g3SL8v>sDQ-`r zYL7`EOk_M3DeW+hy;KA+)$eL&iSD)Hh2CC{Bx$>`6OQL(8@>_Q_ch0e@pOWc=v$hV zh?PORwdFZ#rq#Rxi=xwAL?W7*jP9YCK;32MI5Jjp*puVmT)L@ zFP3J~94%7l&^q7as|4Xo$x-E(emTv5CtkJ-h&c+ZTg|b_POX{!Q}uPAZTHSy#lTA( z?ePohbgpi z=cS(gE0J2F6%Akye%bU;AcB{=xcpt@WS;a|!az;J4dBx3d@psGB+_g@$n$tK=#YT#B*d? zP4%jSX+D^`F8IGarZBO>k+(YIUvs6qa6-rW zT>V^IwurWMo|HNNKuMvnV-KlU;qfoue~(3$kJjfW)@lJ|uM6Og0xMD@PXY+H^$R593U|G)$9fU3g2$xkb zkK-}Qzn8ynO$0dVDZNF8+Rl$z-cw~s%Ur$usL& zY?7%jVH2R^+B6Ia^>E+=Cm0s>?<^O(>`RqRSM*b33~60*Y~C*!%CDo_ONH{AgO&u_ zU)R~{%sS(sh^FOPFNg1f93^otZX7eXk^NRay8{#ouhb_Sn|I$304-fQKGXCp%TG@I zK&YnqLBO}8#5DD(a*|e$kU}Jj0_91!(Tb2i!+^!HqhjQceOHDtr}&K3k8nP{-S*ef z8cCdcb)|RQmD1oi=;0H86%)ED=@=7cpgf;>>`d;X_FKHX)e}1a_-&Mq#4BmL8zw|4 z@#F=JPXG8BT6;e?qt_pH`s59+B|(_wu~WoNv2}+Y^Vj4Ie_0(CfBZ-cy%{5DWVO{X z_1x`bI6&pOL|6ua%G9k5Z}@GCu#KAD-ghQu4G%ed)L-7_c2HBIZ|)aOAAU+r4Wkf{ zVJ+Y+oIBC(bDod#WF5Y{|4$w|*P^5L6CK=FW~s^mz0YjZTtUNje((WDYg8tecGafC zeHnXvuKl;I?vl;W-L&HVAL_RA!;CD1lJWqKmbo%qxmUVhci*7T;Ai8`Rl zuysB+%bYefLl@zmn|5BlOi;xCujD`F=6dDT+MS12$pjPrAWAZj1kg+BP9HM5K! zN=TijLu%Z*K{PcY>?dLz^uq;zJ|MJ8d}4mYu!KMML-}nu&1?*wdzAb%^;R!Xvc&#||~oS0V|Tu~UV$jb6bVG(O6 z&S4;2oyd5uE$*%MJEgV#!`&r)CtsCz3Sm0+=BH zHcm>s;m(pWlsW@Zt_DGk?U{EXSGmG8j@#GM29{S|;CEBF5Qc!k2E|#P{ER3AIZNXD z+(O2aO__?oEB>)s`iZ1|f+y8Ra$sff>7_8e6h-nzmM03SHEnV?Mn4B}sN1zXs`=h< zD@eQ}nQ2|G)hP0k;($}$&$)WxmKC>?!wK(o#!qPCcfd)j->LrOKq~!WE>)kdz+bN~ zJS1EhOnAk!QLMeluYL6nejf2d9(%FY@(HZU&ir|ZUlN+OOW*s&#r_PzirdJVl=V7;;qfV*T$7q2xZ1b~2?#Rf-4_x0jWEOjG zoo*?~!WX8Vb(rY9!hJPn zZ%7(9w$_(w>3yXf5~rUDkc1x@N@>=G1H+jLg?g}d=e8O=L;E;dM9(k93W<=WBlVv?Ad)5gZwqV_%$5c3+zq4>x)nmnhEhBlCR~Y$t*N z8M2eo6m!IsQxplO%}5ovEjuy&O5sqW<8u|$>u{fn>vcan#0`ZPMe0Mj(&L4XC`$^| zYJ{I4sTcW@4)pgvIWoYWT_NOpoh2a!e+H#IQL(VEHM% zAsvS-t1femizOR_E$hger=#TyQ{_`vk2aOo*vizC1=-yFDXzWGbNmV79wz-9HNW^HM5*>#O#3A2g(hx7G1E#5L+$IZv5Jf4 z=)>-xGDd8ya*W$$*&11tu2a2Zl-a@K;8>tbV!|vgDh^x9W>?j)l}3T}3OIRkom*=m zF23vCc;#b&qO1bw4j?1g^9(lqoofDXo#fYm$Z72RcP(6Jo_FruK<}0uLQ?sLFYo1P zQl6wPyRpvkc&;P9$auPd6D*+u9Q9a^a1cjrVp%iBKtSp|S=Jr{xBrA2wthhdCh+OEdgHCR9ga!dn+f2Saiq#XyltOrrOzl z5@5@+9XaoRky0@J4==FDD;)cLTvIe`!?fZ3jFs9lzoO=G9{BG<4L0j7_hew^A){>jI^$)_rA*p2XLjmCq=)_3c zULBz@KsYf-uzvI?Y7l$1c#bJk?5|ld-L*NB0eV$ZYNZ0xCuRda*N~kF+!l5+Bm^zs z!y(;$p=i6j;HaBt+TO24N=3T|uuA+efdC8wJ~yWo>0c7C>v7b2upR{yTr@fsN*0ZE z-|7s)56h4U=0!9;rxL71!&H{bM{D4q_1n2GHB6c5uxN+QN>{R&)v8Vm#Q1%Q5A|+i z-n?SbQ+_18Mf_vK29}+oYbMG51s}QsSvtgHCx3d2BdUQiZcTTc>;DV5w-oJEHBi1J zY;jG49t+1IMK)7+|D5tIzKnAbb?%G*&|Bq><vDGD@B~@$b(S$Hydkvk z<{kY+%$w>SD(QRCsvtm6ip|W3)Cf!n8b@NYAyPw)d`>bIx30);nM zres1MXZHmZi3!6hRi0bk7w{1X59&XGwiF(aKZc+l{`MxxcB0$if)E;C2<+|N;iT$F zsNzo1kzdc5(MOM!5rO15GQL55hl@tT?M76b(8cJyfTK066f z043{N3@ZI6`_tXYrU40TBxdNiTwV~wAQ7=fS~H)-I{N|{v2XlHKCs?43R)vccRN8G~=DQhV-W;N97^0r1;*msBJ?| zQ3>t~W8Va`eGoWu2#HfCDsLvtnduhi^Y+zhSrQ zcDrT3qAp9v@p6XXTuXCt|2;#&uU*{I@1t;=%i`URTY{me(W`f`C+JB0`EMc#JtX`V z-qJW;PrA>lZsZVH!gT8JLn!CLfaA@~-Xk~#_3JtQ{|Puoiil$Recuz~UD5A%faKWM z;7FY*%5I;5;1w8*obH7j2$8M0>0!G0@Tx3?OOuk|dhTF-FeyyYZtX;EV^$o5KmEDo zu}yBjWw~AW(-xlapl!C{PXyYTQQ8Mf1_gy^?EP!OJ#|5CFmr`XJid z#pd|kIDN#ICpA5`aCw+Fkx1>c1SvbsjEbW!3*P-h5DE445((no9LIKGPdlY3tAoJe zrFOJCSNFr7c1uAv4!1vt-|w8ixgYkl>p}p&&^|%{R>mlS zf|m(YR`079DhcEEmQg*l5ebfwPoI8oze+ZQ$t=H{4r&pR64w4OyXl8Gu4p;?G5`x) zL)2zGgz(S-nE3wR!4{&vG2V6hQ*#_>2*l@*QZr*ANCu%}KG6re?fR8611JmX5%j(w z=GsvJ*6h}*4!wE%VZoP>b__+#P88~5;i29ggbFmL3F2k0E+NE_+3(atW4kGArd0|q z+@Jfz6Lp0T?bg2|!y)u3^55Ff*1_bi2TKOk@NmasCd7!LfyNHiVc$3LgDqCCd$1sl z0^#-miQ(y}-qUy~qY=EYU5x-QXbuXiC<4l@F1Joomb9;Q5XKL9GxKT^fKM@xS2TgR?O3YemW6yVPALNGXA6EliC;oaY){dZ3OK5?^8q^ za^B=n5;cIlu^4LC_sSz5SGJqCmnXb!pwqC4k^mggSsnU)4NHL!FMsP7Ws`w!K_Q43 zesA>g5IhTmWe~=x0Qb``wlq=>-2Hu=VjRG1SJDNX584z*lo7oe)&O^r@v_p!~ri4K_&?#R|;)3z1_K;f*VREHvXJN2Wk8r)YJB$4U@`q@T9ZyVIXX? z5B0R`<}T26`!Bx~;MCoRdfKkrrW*@mqu+jWl!jYj0zoCc2P*7-P-g991q0glToZYU_n7L zJ9LxXmF41VXs!(&65peUzmv&g1n<#HgYha5)vBwpahDOjF|_5q;d`qDWH-T;yo7$Q zGqL@93l=8$n2WH+$6mZqjj=P$Zgwg(jF|ILN8l_i6Y_TF=kYzceHrSzwFKEr-3ysB zr!XXPciKu&5~FRin49BWnI^153bD3kt{u$N?xP+sb78+bTxEl^AM>>1b!F~I|7m?6 z)xD8vf8IhF&y+x4^$%nCrFirhmq+Xm9$fPFi_tkGZvUzA*DqoT`=4zwUYHLaWKk0z z{Z+FdVE@}9KimFro5O1HDQms1Z{2YLc>zTk499Ds{C}!u@W?&{9w|JbQSX6fIjM-8oM+`8L^6$5O zGzSu4@$qm1;+oAGOg(}`99SC&6Lw2zk1me4ulc=}Fer3BuX4+uMjVGM;hgNozwYz< z+1ckFwjxt0R%b9@daV9?d(+um&Uo>nzsfj6tNFjZ52s%A&lNPR+f!B@90muS549*M zsEZFpLbct3`j~{V%&F{4gp3kLmUK7I@k@}1{h6H5vpaRLxDu7OTe(fEAgSoQ>AQm1 zfF;nwY4gXHJ+`glfmnt48)1w)deweo?Dh+v6A@q+BA;}Da*N0 zBgHKfte>s_`j3Gwi9-|JeELlrA3Vfaj0((8Dzoe*y<1-#RGti3 zy00v{vPOuQ-;Et(?%M6QG>&XIl#m5!X#!@f;Rgp?q{0-PFns&UO+R=fX-dIxFPl7G zjArk>7bc#j`2{hc{Z4X@Bd)zLpm=$=v+mR<>8z|HQeZDRq_jyxvif@| z!^@}8{BG_fN>%`Kg*RhBipcJjWvrxI2MhqMOi%U|NrH^=Tz%XAv^Fp1oP&b=)R$c= zy@=85x!1CLy|Rpt!s0c?Tj#4n9Q#eR*}6z$TfD|hx^O0s4RP%Y=_yJ(W!Y)oOCo~t zTiITN;!X?3VC*X(s!dvO4H@A!|9Pn+bxvDqHrOsF)G&!;-{W8w7UYrOWLXh-%Hq~KMU^6^fQ-9ONsx8@T;6S63NZ$S-YK4+{; zul#2w!a0LJy)`s?MI(i&e=3)|U0%e@c4uWX_MC=n89d6{Eg?m2yPPq%1mpK^ZyL$$ zG8x(kCs6^?>U0?Frw&vYu?#Bj28;@wA>Ri{o(`YevDTK&wk@}UarZOk6`jxChVoSZ zBoAe~%ZN5734KHwTH7`eE7k2_7N|+AuR9~fD$a9{{$tNR?5h#y8CmVUG|AFo&cjpD zSMJ^NU9S^pLH`W9UMR#aWnyx#!5rsgC-z?6af+K{PKaH!A{rFJjQ)9hw?^#c9`F!0 zK@ib@6Szx=HV1A`<_5*Z6Btm9Jvex1W4vVC?$<04$Ur9`JRG&--GbFrQ6&3UCY@q1 zjEz%hZjS{xSJ52z-`?yCr{NJ754jJR6}QlbGk22Ow*aXSh9}G-l{EjqNrvzaJv21k zE2-cDx_x8LW=CRq=;5@v8nX9?(iVPEV>pmX*%*e+?p%$710x;Uoq)idLI_G;iE`Wj zJj`e?EUyz8KSJCchXn24RjZevFXG&{Wc+#XoiURV|7Rz$_ZF-^^KQHuQz>I7r+wA+ z60C;xotGd5(%CTB@&0W@l(U$iDbl$FU65Lr)Z|s}ueHvZ`i1SU;OxJ}){hx8>CYc62QZ7vKBpAk&|J_S|V$h?}nfc4c{?FU* zFbCbwcx5BL+mWpBLya)e19vV} zV4x2_+`EmeI;fB~YBDi?3-w9Iz}+1Lce}OM6{I8qPrXBaDQ4_-$K5Uj;~ziDSwINu z_JZ4~=EDcO^ya7`E!Ybc^*RgwB3GVRzH9HTAND>T9b2vDRf^=)o!`2*8rfT@ZRU3u zS)snS>S*3t3!t1u1R4GrIXg{}7UHzbhR>hpWGI5Y8D!UM1TnyHR!{J7abHr)U0P@+ zuqUSDeMw>1c)Q))R_#9nxgf^)88i-Kc!!nfEQR!&JhM-Fm%m7da5{f`8RA1J9saX; zAqwPHyT974v)!wBgmuT-hfZbNxb=LbM`UuS-TtfJNZ3YaB=_;T zz?Nk7?l8mLwTnbV8Xpvg?82SuohH^lX*n!q|NOwmC=_rdw(f?AROmI+^~r|7iyWrm z^r}`W84n)&H2PTv>Nim1ou`wl;%H@vV7^n{N~^5rdoHndgx8|tr&1Ty=NhWBuTMRR z9bU;E`sADceeiFyst-yzN~cFuu|E-$ZBF*t8#kg=eHJ4p0~bQB<4070b)x3}%}<2c z7iEh?8_sGSFW~HJAy+%gcE3uJl*evpEH$S&xe1qHJ};xwD?vatVf5Ea%GmeZtwTwg zrC9ZCtY?Vbn%CMFWnR11W=9MX>Xv?tB~T2Y5YwPjxkiWuv z_2)B)@9`3m8$ej)NgKY~2~w{~YQE-xpweYcJVrHi;RFcpQx>k>@VnvZyTF}chLNP= zdek>+9WY3~7gz>w4UcUoX0$}fW!3{ntyZbs8tRy}qHBh7v1g6BeZFlFz3Q}_ZertK zKot8wC0fL#3lra8 zGE-Bl&mYrHp47{5yU{RL#B(fIbV`fbl1WK4;@W56zys{*7gb^d(++#**v3LM<+JJP zk6Y=iy_~Kt#P&EXTj}TxMSpvIh%K0&A|&6}Aej7HKUlMqb^GtHRT`4eF+3+417xo(WBfbvRx#;ge!7ud)#9 z^mab2Qi8n$!D@;qt?j|RtoRBU+V?-&^X-2X62u>a)TC6?(d^Xbv?;qpJBA#SE&^O! z#aQVZLf?l5Htw~&ou~W}W!Ewue#3q(JCLZ)qg>d#lHR*h3mQAABp;hdZJ*!Z6ZSncSF`r=$qX-H^dD_t* zG+A0{_CqaGx*~=#*8^WE)_z;f_6~YVugae5mS%sUq1-VukACA19SC4j{?S`}%{X&{ zP$80pIN6V1BhP|->QjdUwU;j2*#v5dbR3h z?4N-D=2y!ZY>bxxQpTm(-uT2f<*KL$S|wvbbY6s|>FSv?{$sd_r|DE&Zp4Ae&!ZQa zDHE+gQ_7pPJU^UeS0iI!-F)~FFbc2bTOYH`Whwf2ho(l`*z91`pH5VzW%3c)^FRouR?_sPmChyB5)3xdw%HQ^sQs{g?XShv(MyL;OB?Y03gnUMcz&-( zAoD06;gz_f^GB>-^voZ_6Z>LtscvH$k4_HMYKMg6eUG$hP`s1f07S0p29-=il(P+M z-@M3VFyUEEd@TzLi}WX?cQDPu<7hK(wZpK&FSl&?ijLiZZ36z0ac#Te_h<8&X}YqOqJZnpY3<+Q8_Jyz9O6y`Kx&$F?g z=b3`p?*Ae9V`jHjp#H#?+qSW7z|Tl3;%Y~M#d;*ItceSU&qO>F}U}KF5WO}$zl7%b*iMiU@ojgJ^N_Bs2ncMu*`jnqr4q zN(Hm#>bCONsO4PbG&-B9cd84;uJ0{^empG~bL?ifINy?D*Q)=S3;a&3Pjm2?ObkN2AAYy|E19TXn}Y@pRdD3g4U4-Po+TRuTv&ER}UDyqiEBC*C z#iG1l(MAIj(c|s*n4c!N4C2};??<@VO=m5^MfBs&7`2LC5%;}uoJ_}I9Uwas{FF_@ zmO9Ju?6Ff9C1^5~(^q{apIpqvJb$a*s^64LHZy<@d2j!-v)=cD?cwWcCw$nEZD7tMrPr zE<-`yf*us)*;1jL0-6Q0aX*h1ybsiSp&+T1uo_x|i-!L_)e7q@+8RM!Fl8uBBVL;TitlUp;Sp zp}Vr|?#$dd_jAsT2&y3Nm0ZrCiJ#cJ#^tt-y**?NjKV{NGTly0`vP;vOi`9 zcwV0}2oDq?YoK^?{F*DTSv@}%pSkdCb7P!G)v`C1n{Kjtu@!)>?RMtPCf@{{;~sa@ z61bRbw4s@+GiNZ~1MONnqrIU5P((=T_fYqK5f!*J?Ey!7AV3ql-lTat?9H&lr?9ir zo}rV^Ty{By)~D2+$|f=Lv%rz0ac(Z!oKexVmfu#!^P-O?><{(NrBk;iC(^07b-_v( z+|E7O0sv(>dZMc9@w1tj^m}=+N{!^<%xTgmUrYvdHs_sK*>-MaoSI9&>-8dDK9$_= zHR(8k>(wV${eOdSm;zfrP!2UKrO(+ju}tYsmKbH6?^aVaep=RFOMS61pi-bxJXPjN z#|~z7AfVYEq|UQ#dk0(b0Cxu2+HxC`;H6EEyr9?67d#d>vIwSFZ<&%@t2K;8ud72A zvTwLu?h=ySp?jLJ!n=sTFG&r$nW?k^@49LN6iHb-I`v@SV-!b1Fk>85GaUhD_M2XZ z3O9Sf$S%1oV>n$h=kxYVXn~T+e0i{-THW8JZ=R+ep3hKC23A&#Ytr9jNvC})E0uio zV29+88(X(JoNL^XhrPxW?{X--vi(8*nc|647nt(?#b+qu{w{m4_dtpD;Oz%bA^v_B zU8+&i&V4HA$Erk|OpRF^UxRbo;x-jo|9MG z?i0NI+n+Fo+S{P{o<=y_f=*`zHGGly(@(_9>rUP23P%FAAFO@5nHV_V5nGki3gpNY z=TzRyXYY$)Bocf%Bsj?*$SnQQLA$ zFZ$9w$Uk3>A(vqMU_eURt|6yvZh_I!!5niDE*{B*h&>D;PQnSv*he5=|Coxqj~Ym z!O;AaJdaKHxyGCv{jCzWC~^DmSlONaBz`oDiAu&eidb9MCzE-K)H{=I&bzs!->*)W zq9qUElpitevKIHEtyM~{y!Lm^vT#8atn__G86Q@}p)V=un=cxOH4=4Jltiz|;(g?+ z@Z`#=tq81xI(|{1jDmDU8-&$<^=79SGrg7H@(IIG6KcYDN`<>Ncjwy{)^^iHiZrrA zshF@vdjiHMm33%I%a>bS(s&~heK=^lvuKB*(a%B(q48_omo^b#N7Jh|SFvuH!#i=k ziPr;3ye3i&yL<{v$(;79!*@Y%`qSsZ_y6Pm{gL0X2D98qLGl5~_hSI01}MWL--YE_aqEykNN%RLb`G-Gc1AU%W<AOoo_fA4BEu*Kl9t*X-UmV?qbQ|A=e~*@yd~1}kv9!`7NDNRch%hBOA`pZE(ULf zpO>{faVyriB%;fL-2Pt0x91`Rx7zM-(iJev8hB7cg)B$4+a5vFcdG3enBV+^%9LW=N|Up!KbAiE3C^%Wj|ivr zh*zTKVan-s@DWpkkKi*IUjs5@cdSD;-wN2kPK!5~8n=>WEjI>+t4G|AZVixZ`8BvCU`ZCQcGDx9X6?z6ZdVH4B$;cn}Qt5UdW~YwkeszYu z<#D}{#KJ?@#BK0cEz6W*=09ovWXmdU4=yuS3pFZZez5P!RG1UNi<~xLw|Dg=YRgm# z|1`P3BF~ZiihsC9i9WR6IE9XOHmT6^?cL_Uk${eS6Fr34s4_1OQvQ~2JlcBB1p~1) zuaruIK8n#|U3%WF^~G@u`Bfim*RyfM&ab#Ku>O?n5=X+y<-vv(0X)v(~7QD)239%HL4(>YPa{ z3m1LSt7?w0FEEYQ8OFDBqLvPVORn`gI62a+W;vqb=`XEHddWH_ymT6mwkHax)<*8t zb=#6bn$xlr94s*Ie(atoPQi30Rt%Bba%0E36TI-%QiHBgvc>nc7;7F}lWnj?e$j?f zqo&*IGZNIx`~h};v7gbnx6CGTQ9nq;KK3f*5r&3K9IG8Y{Y+$H5LFM^+Xj<+PB%w! zhzHw1tk)H|X&O>WMYg*g%aQG9D}~N3&WS>5*1dyYnM}V#$LA<+-HBl}Y_RTt>cR?6 zixtKs!+eFey1nlceKa|&NFph0v08n86vf#5UAhx=vRuJ3$f_{*#nk)iyR6}$cR7B^ zrVa{|{%y}XEmyLW=dyT?U#D{nz*7zRaW&6_PIC?J5Ofw8L3D>aL)Bm=-@mm0{7Laj zmIBOsU;|2UDSxzp->GA&2E~v3rf$%qnDt8)Ooe%b$eZ}mD8yzOe(4a1%wge%yYmz; zpr#CrVKr%B8UwXLy@To2gidi7J#%ydOiLF&9nXuBbot#HMJ-Q)Q!%rb ztv`C}tLt$VkrEU#Ki$MA~V}? z;Ov+4ya!9TbIBvYLD5h#gMr#6->gggH<+cP}?RK(V9y5+N-wTKaMOTGf zmnxLN?i$RuS8bi@$iR(jL`G=hKiWElgI+Sp7UC$Ytp)(U}%)^@q%%(BP_wx zhhsVNn9eG9f@Ig{2b7h2P+f24Is!`t#w&DuJPw29)vXsi&IcxMH<6#0dp-%dASSOO z`B92I_FG!_GQ}K>E+b^s6Q4LYr$m)k%KpW~yM2_R#r9&(C%KCMBAoq=zco^gNgTTc z2!3m2&!=tQZNy7k zRvej$bBi{stK{rgd9%OFY)Y#f26E?<`I$;|>vcf+)FvUH%42a@BUJ(PW0@$}sJ>6K zZed^Sp777zS$B);U*%OZTu zNV#GBcKs-+m3>5h&at9Y|3TTCDc)(%v(FjO8MPjkTvauhCiwu&c><2T9@Nm?ilLPo zcwY&oSM3e<2VJK>Yf{Qy26~VR4;sUPvqxeq^JxjL(2yYntO~=beRt9Ky1cF4g0unY zG?@4zI@FQxr!=%hgNYh0(YuZ}3OV1GOYCC28k1iU$L;=Lq`S0bPH*g`Eb`o$;tVk& z-eNo9e`PRwYS5h#2JW0oM7td)ZLOTh?_;IHp8e2_w@jy57O^JD-yvWlloYf%&K0_8 z{c-&L%5j6R3S4^%RBwfPd6n}8m-ue6&MSl76mc4ILz?E^_>Y^7V%aT_oR|k7@9~_{ zT#Djpfc%NS8;lqvxc3srt2+zsFT1eX6RV2|W`~aAwV>fMT8b*SH9k?e{!uq!uCB#T zhos{eZTF89b6j!g!Gtlcdc1z_kaHp~pQs_Du*t)v9uGHdQ*rLG*^yA)v(95AG_m(7oyg`;C+{^I%d)x z@W^%x-mwTP$*x`Ug}u{9F5ru82O(i0-;)%o@0Uh8h`q_gdZQ)ouFvDx1qb4JMuvVn z(G50cAN-0irJ2(kOy#e*JV)!p8RFd}i>5}czKR;2rh}HBtra&r?a$Wpa&d8;oYg1q z2~qsAiYNKDQ=JiAAeLRwGPr?s8`es%G?w9d)!)ANcW%1E=_YVg9(pkMB9BHPqa6$( zy9I~j7pQ%k)!>};LqIL0dy{3ioY?yU#<&mev|H8nQCsgm>f4mE^LB;4J=9{@ffZNp z=y6ZmPD<9?wqKS*uc^1H%PezWhVAHB&}XpzC>HLNHVR?Dz%yiQHY4fvn$ z9Vj4pAMbSSn3k|PDZ89(M)=#UzEjJkp;m^bCM{|sA^F?;dewh)^x%qyT%5kCf5ynY zm(&Mj&O^;xu(Z!o+{vcnMWKIJrFNJ|aTs(){cZ@_1cd5&y63-SSw6#%6X~h?I0-M4g zMfbqWFU8f6UgiELpW3b5E9_qL!~!*y2V@@#kJ_&`$Zqs*c@W(l8o-h|x*!; zsMFwfQ%eG9=Bj#U8$$_R6M5}r?u-Hj9=Xx9y&OKvG~FD=mw5i;jc)eHgrGV;8|HED zmkiNBW4Re#kn)Y zTFBX1{XtYK1uXAQW#fz?M+V=1?y}RCoZ-?s)W<^QUNRFj9=xh=`sSdV)-!)7x0-gp zAz3qMKrHCROw&NC!^6jhsVeSy#6i>LQ5eyzvnBM-_eaTdS+|;7HpmE;xLbOvfTQ_Y z@Oy!k%}%=43;o+3o53}Jqxhc|Y(|PuAy#RI=gHu61t)Z#3EzcVe__o@&MVb?@6tB-&zd;{nGLeDn17X9<{X*lpI!9>-Pm ziJ;k$Iy8aFuVLAPmpx8xD<@T0CVi>8D5)mcmqDE?4t|oQS@Nw|UZ&ymatIb>k^hW< zR&{{+ByXB1jb^b2{sy*5)=S#slL}GT%?-I;4G1B7?ZL%~<;I@Lrd*;ZAZ(EbMtY^A5WG8vAeuAtpn4M6NlfU=dyzRb|c(6On(DinvCL2NTyOA zizpU%nie^{t5~bbh8uF{2=-q?IIiXQPKF4v+^E-0=4;NP?>iwsCJQH_l=2agTsT;f z!H!1f3DJM7W?=*4J&B^S9NDddF=xqttg@lK0o=X&_iQ+~=ox zXLsX{yXXNse1i31JFq2XC_Vh>W4+1JRYyIAxbc z7S5+pnjq?&tUg88QyY3_0uT1#eS%33s!5`{lVWA4LTECE{nldZUd}xnvlq=d{i-Bn z@fWUCF^I9*MNdwkf*}6ZU^Mz~%i$khcmF|e5v2+yvITzGlSH7y%OvwahrlpmYMBE; z7dE%CvP_AlOY_<_hvWNHPd^#tr0=pRRW3mECDguf_1qwy1&M&RV;z0X$zKGus>4yy zH$dMyG$6_IeBjLqsr`B(7zyCsY}}YmPW@Xt?Qx*t+W8{x(1xy?{s|V$9x}4EC{>97g7(mp#Q0IZK?5Rs(6VyTUv0{LKBsQs>H~4}c2Xq@B$Z*j#vN)&Yg- zUc*=IzufCQV{sU#sKg3JMj9Mww!Rp-JU_BIvu5)Z0qsc^Ph`gSc}u@zX-x+(-hq~o zNV95hj-`@Zz}`e&gnUK)-5%QH|;qt?6`C94$5YAcU)N!6Uq7#qC;j1YSBCBhNh|3i&=DOxUJaf}d z<9-kE5OWR7jjiJ^O~n(6Wd^D_kQcaJC!~|EGeBl%V%rva7W7LzDhsE=aj0)W9rV z(oeQhhrmCqz-qxz$~r9W-8@<43LqpTD4~vw$KBK~P`#b#`W70b`y7LJ5$wjYWGAyF zyfrK*^CXU8M3OE2eSNWvi4tg%6rf#@uU&HZHQm58XbxPEu9x&dN2o)tebaf#oFh}-;? zti^`n5(0;zUCs`*=ps? z3KK}9EQ)nBf)Z9g53+VccY@7+VIC03*5l4rXN=!wmNEs>YqK4c9`D$J$%56yS!DCL z9lTKMZ#uDuO)`YGwnAih%$3bOlnzDjRre*h)FUJ%<+T`;&3EKKB|z`tONmDC&gH99 zi`5xFx!FnP+J9>SBRLWh8eK?uh}usA4Phrz#Ga*7XMv)IKrlz&ogD~H{QfYrd*mti zHu+fy5qo=asmY`hs0i1!&J7dFrvPgKa=_QZzcmK8oj!%J3Q#0Ue^A4uviXgze%FH( zKr4gPH3KsG=ldx){788mkgYy)#;ZKd1Y_J&_}%@~uUl7&^j^J3QArf(~E9leTx;tO)tRFi7+4bv_(atENR9CjJQ~y^ZB(V&sU5_wp(cexXjmGH~ zNsfVVRFf-H6v`i`flq98t379parkNzDhwHva@A@Kl35LUK^%42=&(*u3{4DM-gg7n zG*H|=P7*ZXXw!>+C;$nm3pJ|zAl!@ zvbtlyg(5Tu6xM$;o8PNJc--#K>+B`8oVV`JtTffAUA#}%Onj?7ZC<*#4l?sG^bP2Ns*NVV zdBhUqZDj@NvL4PQb%;@7qMcnjAV_g;WUWu4@M#j14bM|yTy8rh?iG_x; zq?n}avSP00(9|Cg|%1uJnr9>wco{YK^bwl{rXhdiayQUeMJfsTZ6vCsdN4F4r} z3N=^qY@67gaD!^^bn4RIPu;;X1Use+#@Z=H=_5z8P zZ=UrdA;UOmTJu~Sim{@}n6Cod+5NtX)T@Lvu1D6GHl3npg21GoWL@!}bv;Ik_V4u>Zf*Ao_i$clFBgDq|WE)g%F&{wy8 z6`0@5am8#h^V~~JliZrz0kg12JadWj%GBEu+5F=r83j70eeZA2G1$l0K43sXb{dBY z6X-uYlg1>&^_Pd6#U!4Y$ZCRibGPX2mf#9vwKw?_BPUp|g4PVoyI>+vb>7@cAg&-r3%CV7Rid zuzBY&Q#fnDr=+|t22t|OnKE|lZ*9ryiruGz;;VvAPoofc>V&;N!AyVnOqJ|Rj+ULJ z%i_bznyl+hTP)q|cH_@EgVN`R%WN~P`E$fgB=vN1d#7@UnX*y7AT+?-W4<0-`6J9F zvWo2v3*yWUgbv$laK@qjyvUzT3(`vo-=uW_M2=l=wYdh=JFVEapTsT;ypq+y_hvWU z0G#?m_;J_sDeWtoeD)HwR`0X^_nT!~bq=OI*|WIcU>Q;=KzKg~+AYfowy-aJS0$Nw zA1h@R>Ps5*ZC2rSMtQeGzTRb~7eD_w5y{$YiD1sJq{~G=9cYXun!?sQ2CHV*zO6`gWn($k=%x0=Bv^Zk)lip_M zy!qd1Coc67p02Rj&zT;eD7<{Am03@(^Mj+_3M9LGa9_yZpQkm;r|@hoB26Q@QfhGy zeH@PDir$}Y>^o)K+;;l=M}TK35zFP~Bu^2@G>6KpYNl_<;VRTh_fusd!wmf4(o{a| z#s$8w4h6;ege5q+HsQPG4yZ=$4w-6!p8<+jVcS+xj2;nie?7GLC`Vzaym-KMJ@SJ* zS;!CgH-dL4b+7eE#Lo8S(I|COY1l1!e*fWe31)t*|Jd%yR%Z*Vp%v@4_npA*>%^Sq zl2?fVy&PFHG)}M4QGKPd-f@aJA!TZ2q)Efx1;u9XcXg@SGc_o+EF-7aKH7+@Rx1mh zx6qV%4n^*CJnOd_I(BnBOWZ6-(@DvU><+)BAI}{xEdOs2{XkA3Gi~ zVsbg3^-~iwoO&2;F|wB!i<0y{O{}uybcE?27vF-7U#wO@`JV#fKYzaDe~R#`G$V(3 z0>IEOp(vK~<|pa%%HZX=!8?mgoGXd5da-Qr#ssf4A0KxLvz#rzKSI&AzHGR ztPcQw!g0pG;KI2l2tZpZP&f?%>%HjWtiXM^A@QGf>wirN-%KCW!kLKt5C20OfBUy( z<)3}k=7CX+@q_>C=e=}BHl_IQ&wh9ZOdgPNR>iz;4{apD#}ofh)&KeR9v*`I@DP-W zmvPs>%KoFi|1VJt5O-%6UjQ7x|Dw$Fe^mDWKA!~P+sp7UAU9cqH`}8^A@u)Ko&tn+ z$$l;T%eAEd9s%EMH&^@bYXoT3yZ_Mkz$x{B+ic@e0wSFRlOrecS0{LR9D1!we|KK|SrMlmGx@u=Go!UHaTH9* zc?yPo{oPKcvDN2^Wj3HHsdZ)>v0`K~t_e%cl8iVC<=D=#TkR;rHc=_knGFj|0rPLp z!}I4wN+Jm8y3UUVmy&<@q8MBeQHh9KRB?Uy5J@3xu9;Z5_15LR1OT|UIn9?HFEBqg z@J7YIDtoV9j(RRO^z7vS-Us9sTYIP3K1gj{gT>SRqdNwzO3`V%A!@ngi`{8fph$ti zDEaph&zj_Nqr$#lv&nwGxwAd1gd)d-&G7CQ3pVn~1QA$_;`US*GP=)3gjJ0-N z+SS-^Ef032Sj<=q1Y)Ucq)rwFP%Vh$-_^VM$3pML55U_-OrL-2Wi*RFUVPN{)7o^u zhsB8X0%ywxxm|yk;%ciQEyPyW2*+=BAXmW!h`3)eskMTZ&}McH8X z{PUrbe156~JXOH%3O-c}zqbQXOs+?-K+xgsdcj(jO5q85x~g<6y(<_t*7GrzPb^<4 zFOZ9n6pY{^jRY7enB#@~{5cN@$}ZV~5ptD=i3V$V1OV<{dPF~rmk=G^nH!=tX`&oH zB$`2yX^`{^#YF*#TQ!RG?EjT$JO(e%n!pmm1D8K@)j&XC^FwUu-P z*Q4Cn{p$?wn>(tAmu?Vy;S6ScBRSBrOKj&>ry8+{=M#G#Oz+>O0Q4JtGDvXkBWbW; zwR74YTD8890aCh!fcQdjm}1m)o6RiwkmPD>hE1e9iqjkPTH}dw+N>TU^1JVd$H?iw z%GBr-vkJtfULPF*E9QZg8GC+byjF8rqXS1#hE9ACzLHPV<|i7Y?8>myT~=}3JwatP>A3=&Y#|$GJe%miMa9jp0Uuj?k{9+|CjPf#B3gC$C-E2DxClEfa-;~9SVW;Op;8ntj%W0+XyF>H#}?VX zbLK%RlB6jgTiG?vcZ)1&b)`FoI-Qf;ctq&N&5AOxvTG8VyC9ZgSY zlj%1Xwwi8NjS&awym8acHqMKGNiS0dKD_R@W)jpV9$&lZl=GjLx?9pc+c&xY{Mz_R z%Jf+u0{MqJD<}J12d9D^oim=WIfJomY5Bu8fAnt=iGc(LuJ2>US2P0e9eo7Dg{{nO z(996y$F~wqyQFdoH8m@x;|S4_qFTpaa^8*0)6u_%sI<#wJRDclj}ia1#oHi(qpuF} zd}4B8RsXiGO8n22?gD}i2I&PVE{mT%V#G&lWg>n(9>FFsD9~#B!VF~3?ef})UJo{Q z$|N7|9y4ju4wjJE-jFO5o&N#S7Z}!3?Ye{h-~yTV#$|aLpZCqlSlvc`;U z9R4}ihMAGsYxj4Ia9fdol3z%oOl+HL^pWMO2eSj{`$JZ1@&+`3deW#n75u|m$t})7 zFqYDy`oV8RkDbRm#8^jgtA z@#>F2-u^C-()uuF=y6?GaO^^CA%raY2<-29WqL14rd$DU5ih)Y zB5yIe{oEYpm?TQ*;drq;=StHmdC1&ZN0|-e(e=nu*8=pcDd>yO4T)(B_}+i7)Zev1 z7EJg!n|8)$?Yn|27M4U7c^r3wS{6^;E$4UHShKy&7w>Kj<)%AOWB2~#pmNI3l4cOgWOm7O?$lb= z9*tW`6 z{-s1$C=tKMCW&n*p>OJ0kA!q6G4IDK(7W|GoR&y-3^b6B_IeQ3fbu*GFeS!$dJEX@ z)~LzFeiD=M5Gv3`rk-G|n@*M?30SD!OLklPp)h;7%Llw>P>6iVDmZ6-W5sVPZ*LW? zXmQ_?c{y?eW^m9o-TtipTcWl_bdQhIY%iBMUIthnSpsih8gYYJVvJi%CHoXto3H&O znuSK%9kmBC3Emq5FtyziZ(b;C<$N^Bd$H8A$0L7@#Q!el_M5-Q>qA7O`wiXvKM~Km zK?3*np?}c%?p=`Rc%$8ry7kHt`y0d;ulb$#cYBGO=Ao0@?<6um%L|AJ>-xnbZ-8sp zZNpU;a9UBwr}`MY_Rsi^bk2GPm|GTS>n7!iR~xy3;m%+h!nS`WpiGUv#w_N6>gxA= z{hco#qq|c8)@Ipmpp*) z7oT0lZXuG{rAEUj95lPQp_AX-t%-qZf^g~)6!jll+t$eSj|_1;}_cGFMR_P zyea447o}WK)A^BcAwns-70-mFo0dpK`gh{m*&4Du-=EYi&no9fwTg~iwLH20#Qe!) zYGhS>Fr3eP!s@B~PwN_PHQx$-%8zBj91yi38qh{>OO6b{82cFCEJO<9!wkNA<$Z%f z)+cxwK0I;b;L>%*P#E%x_H$yo!cQKQ2-e-@)t;oZX!gORXPCO;T^^^gWT*^(vRmO8 z&MU0Wz=w40*;bOoY2`bV>3S53%S)-eJ+8@N?fZJ*TdPBorsDiFS@pKy69C(?##mw- z!!{dI-4h%~1<5!oIf&{-4*o8GPxGi*%^_~iv3t6vs#_vT{9bT&_+Hkp9JlSHO0=hA z!EJ;8xAi}4b~j}{oA}dX)~!{1I+X^BlPOUXxwIxh``9f#H3rGo(T6}^cOIQs|9Q@-cEJ# z+h12RU|cpDEFGL(_DQHEq0fs%QqI;HVMCF(AFGbxK%W}dizSehhs_nSol z&h_uaMq0JmbU1M)0I~g9|AI9^ejdT+icugK49;kZAZkiQ`*hOw^ zScbw*EmRY5I6|wh&UQs3p1-C$Cg;U0>BLwAS|c&P{xA@&0g)MmA;JDZb%ms^cUs=i zhnqErB&BA(t^@DQ`!FJY78fD;P;8~3+=tmBle&TRua`&Z2uF3j)*JyHV;o92<9+DE zJo0Cn7CRE2gKG$tNuge_l(DE-zh=@{{lMw?|15O>Wr zP#%uT7$rSb8hH9S39Y#Z%!eJ!xU3LI-7 zF~L6u)VPe+$sowlhzL9+n8tJc0`~ltpNPdr>eTtipF2H&w=C#QybfzgfZ@e0bO1N7hC7`z9Wol>i4#$eSPs+Pw{E_ z;WVuX(&^i|=B~svRRzI{F@egSUtauvXxj$jhE8b;qfo2)@e$8^Ej85HV=8l}KO57G}TL7&7Te+U*dz^C?3TeNUL?)17Z&xcAPeLyn)D z73>p@p`cS^H63|5_w-N40_}Y(-EUUkn}uAUf`TCh2MgI~ajW?3!`_-M_(?b%sk5pB z=GMmD;Sp=Hw}lIT1m|Ta|33jRLlVUKpnV+zCx2Nk4R}aT_9w0yDDv1t^44D(&$K(U3SPzB3YOc$VE5z=7*e81aRi zVdJ;HM_;z+d&7m5jL46{K?9a(?`v|GUnh~t-fFy~jfL+J!n4Tz2 z>&Lv#`}79Oxn`AtfG;hTWaMdvbV}MfRRF$slmbaZ>0Q(hgdYK8nbMlDc&Wfo)*)9S zE#Mlv=O~~X%jasxXwOA#YNxDZGJs4zA9tzC04{A)b!*PO0;+dLA9fETvr)i-hmsBw zsX~^%b$54?_xy=(Sz%Ae+sh`p%`dXVv7YU z(%BYDmUW?E<|CUSNT-sm?Q476spkfqD(hCbq`KcdD*)Ap5NuMHk=mikhWBQr_uwyQ ztAyT*K6SP!Fpl=K$j6c2MIDz3kTucIEr>hhU6^;v-Jk6Y$r9d1cVnJ3G-F`5 zoEUBn+yeEZMkF7dVBE&YF1LJ>}2uNdSQS87E0!iiU$F4Pk3s6`Y_%1u9?M22s`Kb!``z93OQ=5C)WSRr z?Xrhuh|O%_H)yTVP<1aNYX(%T)~SD0@^oaHyWN2$*UpuB22G=D9Ubby#RDi1gL;t^ zNt{s=O9xD&K~oH>`0QlQFWzYJbB)+vck(EA&`!5^@7cVGO8HhPW($j?eH$pxsrc#N z_BAW7EiP_V+4SUNA zPxSix)sb-^W(N~XffE^A*!>pw?S8I*v3!gFPOS#lM8Qoz>!}CdK-Ea4S&`~;EQ6{S zsP?NVr4pk*PZPU@4;R?ll#gLH1OV#q6&YCsYjmQ#K&4@*7KY&GdatMlBOw~G>iU++ z?f5zpdO0$d_@Xd*n=ySdpQrG~{_W8klcch+z&#mR0tz}|Y3P6oy|B-UL>QJ-bT%B;8+Sy}bz%gzyJ*+i#1)T~jb_ z(~Vy0Ufx1|z5cZl%!24AYk9r*>1lHyg93*D2UQKkY{A8st=Ix-6}(nwkzU`$GuR?h z|IBtug_8)^NWUUh6&cG4tlSz^^~%BL_3Zb>Q(i3i@!2oz-m2Re z`(0z+G^U{EsKz}Cwg%^@4Kzp0RD>4f0z7Xbv&2agP41^(ClMkHHa%DypNI})%4 zhUhtTuO}vSL3;E-qXmO;SvIK1 z=;(5h6nV^EBvecwM}Qk06QzAHg@0ve@5(A+T^Qpy!_!E z{hHzI0yqn))+81sR3^o-pCK+c7+k}Y>6+~;ZrzJ=GP+MI`{Ec~sl=I$fVBu{mUmZu zYo;_xF|>;7b!dqyC%67Y*cX0drBVf8?wRpGB9Zzka6`v>U!~u=1BA~g&I5HDo*gu9 zkmPFDt7Hc|KS4xP{}Q4J2**!jIv$r*4qL3B437^801eJ2XYx6=~DT_j8)4Jqx zn*ou358NM91D!qs)qj^O;@2-t{*BRzR&55<5LVJQ(Phs=%AM@3MGvz^+`cL-_#X5k$#h+uu z*j=10vpNO@itRgb7G(6Mk;|no1?dJ7VKp3ja7j6(R#b>B7!#9VlIESiTOlkg?7chn zoWER)fh%1(EDb%X%6l<&Y3a*&*<9_hR-KD2DCd(C6eNML__5osRcq%Y7|DN9Q<36t zw*HOhkKlQRzEn>-{!Q5PRS2xfp2;s3xZ*z9FD5NVZ_smE-zSN^zCg1ABZnFAC-1)G zosQD%ZvY0(ZFz07?qpMbzGW~^W^;8YI|aapo)+(;VWih@5r7gihF3z4GlJuiAKYT=@#U7>7hzcb;{HC3nxrUk{?lBc41?nC#KYPV2{V`jQ&o*xYV>Py4$U{W0Y51$(O(QwF-7JUk>KDO5or>qLX$K!+;(yR&GliA@KBbDzei21g z_SXJ*CR;?#iq8EEN!wzF(`6h`P@^W@n~As`7h7Yn^Bf@14;3R_PK3IPBd9absj6XI z^PS)HxgHC4^4y&5F!AjO=aDi?6l;Pg4f%(h5z*a6@1nR~O!edAckZ%s32aV7``RFA z!lD|t)(dqyU=E46{B1Rvk5RYF;wH)%uhUkebsA-#olgq4RiyT1q}Z|3!QIZJBkT=| zZD?*fPuUcW7+ux&{KZNPQi}YBZ9Y_!^aym5@5&6Wfv47{Q{dKxR&Oh(FUGO>_<VnN8-s1h}*0(CJ_Dxu6?Mk?5Aq z#-8Ea0z{Ur;=A_gTBc?V+r68?uB!Z`OROdA z&B9(Zy?S9E@aIj_7Dpft7>FL=f`S_kYnLTaXW2;_|2;n{&(CVN8||Fz%{`grg2q3q zuPcA(?hIci9+BrPk)`{0+S|icNrDBM=ae)$8A|Z>z{|${I^9D5R4r1wVR(7}*pSl8qB(D8+up3hk1l(v+PtbXdrF4tNxWwJ*Xny(=)xBBeI4Rw|R(Eu8#}v+zD= zba<)hH7XYYCm?B0qyj1HLT=vanFCyhA$+3zhIJ=wGsb&4W@%|@Z#Sm19 zv`7otXadcGXBVJ1nR?W_k>(|ebA(SG=*L01u&P&MXa_vu;L+cqtcwtsk zmfhWf$%##Oc9#oD*7DFri;A{O8JsFoGfe$;A!!ON&G*ioKVH1~#3&w;qynncY9jYa z^Ra}_#Pr%<3K+D+2jvI_@_S18RQ;2SEmIoc9TLj_ zGfkKj=)zuNgHFuzrxw|p%Ra+mv|#{jgLovglDNKVtLr{K5v=wLD-Pq?689giRSg^l zG@aioC#asiN7O2}^b1W?IvjvH-|6vZeeZ6~nzSBoP=pF3m)TydW@Zzn1=MIL!HMY; z!c@AY>_Gjsgb(EL-`Cd3?;BMJy3M)WR-3;Ar$+8F5JgE&*iMjN;k?QKbTTY&k*!i& z)wp-Usx@9utK9Ax8bMb=gY&(fxHi5(P07aZwy^;~up)g{3e?M_nkb%h`7_Kcev`uK zeg)<&fkGop5PJk1y0Du7X1!qiTN+Ea=_vD!dKuzdIvGBjByLBz>qf!wRB1m^QiN-k zOWNZ$1z&Z45pfyA?)tl#tvY^hn>(Xtb6!V>si#6b{chDUvY9t`X9d~cJ~L?ZJowY^ zaUj;@l}ZSU7kBPr`*)r&YQDPZFq zp!=J!4-`Z;i)qMGX_?{Pe8r39n623|&lieYwP+YbsP|MN{1MecRP#kg31if@_B2X0 zxSD?a9kH}pl}`m0Jx;mPlYU4~3@q-kfJ@lAweA@K-%kSk+i`9vsHD#Ep`oX!s!7bs@1y~Aflu1 zm=HudvEOj}zQkYoG{BV0?H}!$ul4EEaDL3S>-c$>iP?G z144l;CjT=~i8kDrcVJPb@wviX9^$edr?k?jL+ow&zfEXP-ouh;+Jhcq~sB zQJG4A+@A^TsHD#rH2K2l?;9QWo(yvKXQy$R3~%FB5YIHU91wVk9T}+GS*8NPluWfm zEo>0emi6X|I)g6H{T+FZuz9sb&GbH+J^)6=5zytLH}lGe1XOa7cb+0*o3PgL*E=&C zfpb&8H`Vp*2h!VqVT_Hz)MrwC8;Qz2jwapNWjk`?RG1s+R*7$?n%|84-7@Jl8BC6u z_z<*-$>seI_qrU#srwklcSVGTMl|P-9u=hR3}>g=CrVZCibaC{mg%Z(X=4%f4)vfT@;}s!Xi2vcGQBl?TP%6JYyxo=& zuLSd#6=jepC#&?h+{vQmZ-LTmec6!N&gOkPlluK+cI?F817BoaSUWV5CsVL_%%{FS z*!JamW9f7OP7}pL2;?*q(>V-Gi@(mZeJ2&3q7YMiW0~p7Lr!x#wOrFOtn5fC$6srw zThoDw%(}BL0T9e${FN%}t%0#9)kxv-&R~qOUEUa8*(0n&!L82eDlUuv*VdKCL%F^2 z!Biva8ZKp&wML0?8QYMhY@sHGEEx)sj5L#!Ea4U=*H$7*Bg+pVOW8t}4^fgWKIIyF zDMV!7#_znyjJp55pEKuu-}9XFyl2jN&iDC#J?m@aT*V8yy+dTGy@XZMXV3UCj$CvT zz_gP~>)d`k_v?Cqz3&r~r(c{{6&F}9oU%2_G034G&3#Sy(%CB*$&k4Uhu++!nWi&W z#kpv1;};t1NFX!a(hLN-HG#&Q^}Blo?_je%F@pb0DD$qi!KRf$Hy<~259$+`g5*jeb(mSy+uskPGdNV{NB0qMpw z-}0p;J_6D2pl@G)APD^wITK6u?-zmvxZ;JS1D$cN+cPal=H5}_gQZ3(WXsRI$x%cU z$+&d;!97mJQ?B=P@MTkR3-c2%y}vYjDfS4exgdsYM<<&!k_suw!6k!t2}QM?=vM_e zua6*(z5v{m0pO&eH}?vw{}9>oP$|ofaP|AbbL+I`g@R17^DP2cV#~S@E22MOr#Q}o z{hew7sReN2m8+{Eg9@E<0l8X!ASE|Vs_4b;<}@Lz>=*yyQ(9zJ#!kfGrLE* zuQf;u8Ki9pBIq@8#RblUG>~e2e809s=rJLcd>8WwqU%gUZjeVt0ja&%C^&|Axm8Hh zX*aC_QTt6gR_*2$5NqyA_nL{C)EpHLHsKGRsoO5#RPrt>PyUX)L9k4s1=qQPEU>J2 z@EHFAMUPRgD?@58Vln16U`t^oDa~v6=$b~2&XLs6f|gu2#m2aF6KSKxKI#f%aa+@1 z7^%-m$kSlyOF}jJ^ITpsz^9&@%VJZ4@TtVvf0fV3qz##$7@7J0J~}c8oZ7f<=ar8z z`#jC%`)OvRJ&>5wDn&q8eFStMeQy@@Q?sUR_nS*}ITKfwK@62GQo8f2B;zBXD!M3H zQX4s51cM>s40Mi|oe&>lsD)P3txTV!P}E08Jc#zv-UKvAlb~mcjrYN>MvYVy^Iz46A=>bkC8o{VO=bsR@w`*cJ9VR$(Pv^`uhxXPyY6wou5O zZ&S2X#)VKt^ z8N~p!CX}lWiEamB!MxhegbLLxBL6w5d>LW}IKQSZlZqVm=a%6%!vKMM4JRO#{QUXC zbsyB-&wj!$?2euVaRpD*qym zepr*Cmws$tJT61*%|xlAg$bH>+EXBLWsh)!Y@E7#7ePhUt)mQS=r&Z2c|zY6&$X*@ zCC@=9G3Qx6Z_A7EQ>Xlg5PVZH11~N78e6~09>4YIA4%-r$UMGexgTxVCdCUah4^K3 zY9q*hRdTg|$uR;VAjd;;BJp}}UF=R7H^pJod=+oeUg0Lk6L0Q`^_`zHIFHNQ%9vmL zYsd8xN~nI3_*6qk?Vk?@=|;+pw24JYeGccl+1*1s7l$wIi`njt9S{5NH`SnVmyLhn z@+AE&@^n(@128-apE}^B5z?VlYfRBDrx*a)MafF24jK0g44*&Q;p>nait_`LG}3?Ty)@LhXXE^FNNxXkk@69R|fLM9;%WkAcGxD>OizurPWdVEMGGr&*T8F zDI#5jiR*-brNZF+u@4y%?sMamH#n3B#0R?ij+Cc6t8Qltc9l4qu4vdm$txhU1lyG` z|LOJs$ZHt`=W_SUGia)byr>q0e3F{8W%V9i@3wgxEU zLyzC2IY0ejjjc*$m&D^39no%xd;C(GEypIh^MRhynPwmr8~Jvn}fe2dHUl6+q*r#m;GY8oufMJYP7S{ntx)N`b*4U6X0u8}!k1 z8FrTq1q0w1y)@vH9!<@ecFesBf*Utb3}=Q%C!B&N!XlfNU<9e@29y6qagKM|;h z3|jtF4`HRv5AZyur5z3_gS`4*N1NrZ!y~H7nZ7DDK^23lMBX-5X06hXW(za?>BFMK zpo;FJM3?oB08`a-xYVpz4nv@Mnk;MwaD35no@N!MYp#6JS9HSL z*5q?GJb&$?QeBK}u_en}{-`4BJg@qPHUfn}L4;Nr!WQ)y1FU4# z4Pp6?+Murlr5RnWwn;aHr3PKH*B#*aeUeQ6OMRk7i5>FU6Oe-smbsX1@+(pHJNqAB vUMrFduUuh+!B$pA@v{KD2-^xRQaE6TBi^HFV-6#r1ZJR%*U3J5_V51#qi>}2 literal 0 HcmV?d00001 diff --git a/package.json b/package.json index de1c4e7..2a21442 100644 --- a/package.json +++ b/package.json @@ -17,10 +17,11 @@ "build": "turbo run build", "dev": "turbo run dev", "lint": "turbo run lint", - "test": "turbo run test", + "test": "turbo run test && npm run test:playground", "clean": "turbo run clean && rm -rf node_modules", "format": "prettier --write \"**/*.{ts,tsx,js,jsx,json,md}\"", - "check:edge": "npm run check:edge -w @webdecoy/node -w @webdecoy/nextjs -w @webdecoy/hono" + "check:edge": "npm run check:edge -w @webdecoy/node -w @webdecoy/nextjs -w @webdecoy/hono", + "test:playground": "npm ci --prefix playgrounds/express --ignore-scripts --no-audit --no-fund && npm test --prefix playgrounds/express" }, "devDependencies": { "@changesets/cli": "^2.27.1", diff --git a/packages/webdecoy/README.md b/packages/webdecoy/README.md index aa9a8dc..27a64ab 100644 --- a/packages/webdecoy/README.md +++ b/packages/webdecoy/README.md @@ -11,6 +11,8 @@ TypeScript bot detection and protection for Node.js and edge runtimes. Run honey Full documentation: [docs.webdecoy.com/sdk-plugins/node-sdk](https://docs.webdecoy.com/sdk-plugins/node-sdk/). Copy-paste install snippets for every stack: [docs.webdecoy.com/installation/install-with-ai](https://docs.webdecoy.com/installation/install-with-ai/). +**[Try the Express playground in your browser](https://stackblitz.com/github/WebDecoy/node/tree/main/playgrounds/express?file=app.mjs)** · [Watch the 30-second demo](https://youtu.be/4jeuH3tKeos) + ## Using a framework? Install its adapter Most apps should install a framework adapter alongside this package. The adapters handle request mapping, client IP, monitor mode and honeytoken injection for you. Install `@webdecoy/node` too: it is where `tripwire()`, `rateLimit()` and the other rules are imported from. diff --git a/playgrounds/express/.stackblitzrc b/playgrounds/express/.stackblitzrc new file mode 100644 index 0000000..09e22c0 --- /dev/null +++ b/playgrounds/express/.stackblitzrc @@ -0,0 +1,3 @@ +{ + "startCommand": "npm run dev" +} diff --git a/playgrounds/express/README.md b/playgrounds/express/README.md new file mode 100644 index 0000000..747728e --- /dev/null +++ b/playgrounds/express/README.md @@ -0,0 +1,48 @@ +# WebDecoy Express playground + +[Open in StackBlitz](https://stackblitz.com/github/WebDecoy/node/tree/main/playgrounds/express?file=app.mjs) +· [Watch the 30-second demo](https://youtu.be/4jeuH3tKeos) + +Send a real Express request, inspect the SDK's tripwire decision, and compare +monitoring with enforcement. No WebDecoy account or API key required. Browser +runtime startup and dependency installation may take a moment. + +1. Open the preview and click **Send ordinary request**: HTTP200, `ALLOW`. +2. Click **Send decoy request**: HTTP404, `DENY`, `tripwire: true`. +3. Check **Enable enforcement for this demo**, then send the decoy again: HTTP403. +4. Send the ordinary request again: HTTP200. + +The monitor response comes from our demo route; the enforce response comes from +the real SDK before that route runs. Status alone is not a detection receipt. + +## Run locally + +Requires Node.js 20+ and npm. Download this folder (it is standalone) or, from a +repository checkout: + +```bash +cd playgrounds/express +npm ci --workspaces=false +npm run dev +``` + +Open `http://127.0.0.1:3000`. Run `npm test` for the real HTTP checks. The folder +pins published SDK packages and has its own lockfile, with no monorepo imports or +build step. If browser restrictions prevent WebContainers from starting, use +this local path; see [StackBlitz browser support](https://developer.stackblitz.com/platform/webcontainers/browser-support). + +## What to bring to your app + +See `app.mjs`: import `webdecoy` and `tripwire`, then mount middleware before your +routes. The two routers isolate the playground's monitor and enforce fixtures; +your real app should start with monitor mode. The preview renders actual JSON +responses with `textContent`; it does not generate synthetic SDK verdicts. + +This is a controlled path-matching example. A hit does not establish malicious +intent: legitimate scanners and prefetchers may fetch decoys. Exposed verdicts +are for this demo; keep operational details server-side in your own app. This +keyless example does not send detections to the hosted dashboard or verify AI +agent identities. + +[Full Express setup](https://docs.webdecoy.com/sdk-plugins/express/) +· [Separate AI-agent verification guide](https://github.com/WebDecoy/node/blob/main/docs/verify-ai-agents-web-bot-auth.md) diff --git a/playgrounds/express/app.mjs b/playgrounds/express/app.mjs new file mode 100644 index 0000000..b6af5e0 --- /dev/null +++ b/playgrounds/express/app.mjs @@ -0,0 +1,35 @@ +import express from 'express'; +import { fileURLToPath } from 'node:url'; +import { webdecoy } from '@webdecoy/express'; +import { tripwire } from '@webdecoy/node'; + +// This is a controlled, keyless fixture. Decision details are exposed only so +// visitors can inspect the demo; keep such details server-side in a real app. +function probeRouter(mode) { + const router = express.Router(); + router.use(webdecoy({ + mode, + rules: [tripwire({ paths: ['/demo-decoy'], includeDefaults: false })], + })); + const reply = (req, res, status) => res.status(status).json({ + mode, + path: req.path, + decision: { + conclusion: req.webdecoyDecision?.conclusion, + tripwire: req.webdecoyDecision?.deniedBy('tripwire') ?? false, + }, + }); + router.get('/', (req, res) => reply(req, res, 200)); + router.get('/demo-decoy', (req, res) => reply(req, res, 404)); + return router; +} + +export function createApp() { + const app = express(); + app.disable('x-powered-by'); + app.use('/monitor', probeRouter('monitor')); + // A separate fixture, selected explicitly by the playground visitor. + app.use('/enforce', probeRouter('enforce')); + app.use(express.static(fileURLToPath(new URL('./public/', import.meta.url)))); + return app; +} diff --git a/playgrounds/express/app.test.mjs b/playgrounds/express/app.test.mjs new file mode 100644 index 0000000..8120fbb --- /dev/null +++ b/playgrounds/express/app.test.mjs @@ -0,0 +1,29 @@ +import assert from 'node:assert/strict'; +import { once } from 'node:events'; +import { test } from 'node:test'; +import { createApp } from './app.mjs'; + +test('real middleware preserves monitoring responses and blocks only the enforced decoy', async () => { + const server = createApp().listen(0, '127.0.0.1'); + await once(server, 'listening'); + const base = `http://127.0.0.1:${server.address().port}`; + try { + for (const mode of ['monitor', 'enforce']) { + const normal = await fetch(`${base}/${mode}/`); + assert.equal(normal.status, 200); + assert.deepEqual((await normal.json()).decision, { conclusion: 'ALLOW', tripwire: false }); + } + const monitored = await fetch(`${base}/monitor/demo-decoy`); + assert.equal(monitored.status, 404); + assert.deepEqual((await monitored.json()).decision, { conclusion: 'DENY', tripwire: true }); + const blocked = await fetch(`${base}/enforce/demo-decoy`); + assert.equal(blocked.status, 403); + assert.equal((await blocked.json()).rule, 'tripwire'); + const home = await fetch(base); + assert.equal(home.status, 200); + assert.match(await home.text(), /Enable enforcement for this demo/); + assert.equal((await fetch(`${base}/playground.js`)).status, 200); + } finally { + await new Promise((resolve, reject) => server.close(e => e ? reject(e) : resolve())); + } +}); diff --git a/playgrounds/express/package-lock.json b/playgrounds/express/package-lock.json new file mode 100644 index 0000000..ce88745 --- /dev/null +++ b/playgrounds/express/package-lock.json @@ -0,0 +1,869 @@ +{ + "name": "webdecoy-express-playground", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "webdecoy-express-playground", + "version": "0.1.0", + "dependencies": { + "@webdecoy/express": "0.22.3", + "@webdecoy/node": "0.22.3", + "express": "4.22.3" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@webdecoy/express": { + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/@webdecoy/express/-/express-0.22.3.tgz", + "integrity": "sha512-rtZlXSqB6J5rsYrJ+oaidcsDcPoecmYtpTlxHWhLoxTEA/+g95NApLGLfTgvD+bDY2/UX8Vqa0mdIqq+eDv/7g==", + "license": "MIT", + "dependencies": { + "@webdecoy/node": "^0.22.3" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "express": "^4.18.0 || ^5.0.0" + } + }, + "node_modules/@webdecoy/node": { + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/@webdecoy/node/-/node-0.22.3.tgz", + "integrity": "sha512-Sf2IYTH5da3AX+BasGQgEIUc4r6CHdKJw/nOO3j4AtNQjt5RMtuOum8JIi/424LnDxl/yZkGCScSkQSnp0Yosw==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/body-parser": { + "version": "1.20.9", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.9.tgz", + "integrity": "sha512-FISIQxV5u91Y9gvuFq3q/tA/qTqLJn3AhRcEvyozyhJTh5OBFFtv827AdHU7Rbyct4r+Ba1/99oFa1Y3yuFsdw==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.16.0", + "raw-body": "~2.5.3", + "type-is": "~1.6.18", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.2.tgz", + "integrity": "sha512-ddmxiyS6ETq/v5/+mdA4fykK7JgEmqcShrGmQFTaKf5o43tL8XLuMzNLLsspuIC3/qGupS7Ci2TF+feJRkYY0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.22.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.3.tgz", + "integrity": "sha512-Bdcs4+3qlpVlx2NRn6fgX2Ue2/gGRaPeawebgclM0ERSCqDpA+owF1fdPwjJUTAJWMTuAaxjDf+hzb0/4eKvvw==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "~1.20.5", + "content-disposition": "~0.5.4", + "content-type": "~1.0.4", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "~0.1.13", + "proxy-addr": "~2.0.7", + "qs": "~6.16.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "~0.19.0", + "serve-static": "~1.16.2", + "setprototypeof": "1.2.0", + "statuses": "~2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/finalhandler": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "statuses": "~2.0.2", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.2.tgz", + "integrity": "sha512-ATWUv387i+nLD49EiDoOft5scf32Vsdz3ktrQJG9bi7jRFmaXTssvyvj1EmeKVVgvesbqUtvQQvaS2TpTukAZQ==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", + "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", + "license": "MIT" + }, + "node_modules/proxy-addr": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.8.tgz", + "integrity": "sha512-5nnx0yGyVUcY6t9RnWcARWtwT9F1D8O9rt08htPvnd49W1IgZtmLkhu9WfMzQj1cFxjHIO6connUNVW5k7AVyQ==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/qs": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.16.2.tgz", + "integrity": "sha512-VYdnB5S7/0IeXzBacUtwNAaM6d7Y/PgYnNC7bJCI6meqA/OgnsQbZMtVW8Dt2D1PHgbHGtYmhSoEIgvt7xZ2ZA==", + "license": "BSD-3-Clause", + "dependencies": { + "es-define-property": "^1.0.1", + "side-channel": "^1.1.1" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/send": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.4.1", + "range-parser": "~1.2.1", + "statuses": "~2.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/serve-static": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "~0.19.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/side-channel": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", + "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4", + "side-channel-list": "^1.0.1", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + } + } +} diff --git a/playgrounds/express/package.json b/playgrounds/express/package.json new file mode 100644 index 0000000..6f07441 --- /dev/null +++ b/playgrounds/express/package.json @@ -0,0 +1,18 @@ +{ + "name": "webdecoy-express-playground", + "version": "0.1.0", + "private": true, + "type": "module", + "description": "Try real WebDecoy bot tripwire decisions in Express, without an API key", + "scripts": { + "dev": "node server.mjs", + "start": "node server.mjs", + "test": "node --test app.test.mjs" + }, + "dependencies": { + "@webdecoy/express": "0.22.3", + "@webdecoy/node": "0.22.3", + "express": "4.22.3" + }, + "engines": { "node": ">=20" } +} diff --git a/playgrounds/express/public/index.html b/playgrounds/express/public/index.html new file mode 100644 index 0000000..5b02539 --- /dev/null +++ b/playgrounds/express/public/index.html @@ -0,0 +1,42 @@ + + + + + + + Try bot detection in Express | WebDecoy + + + + +
+
WebDecoy / Node.jsLOCAL RULES · FREE TO TRY
+
+

EXPRESS BOT DETECTION PLAYGROUND

+

Send a request.
See the decision.

+

Run a bot tripwire without an account or API key. These buttons send real requests to Express and show the WebDecoy verdict.

+
+
+
+
01 / CHOOSE A MODEMONITOR
+ +

Monitor records rule decisions and preserves the route response.

+
+

Start with the ordinary request, then compare the decoy. Enable enforcement to see the decoy return HTTP 403.

+
+
+
02 / INSPECT THE RESPONSEREADY
+

Your request will appear here.

+
Run a request to see its HTTP response
+and the local rule decision.
+

A monitor-mode DENY verdict does not itself block the request.

+
+
+
+

ADD IT TO YOUR APP

Keep the rules.
Make them yours.

+
npm i @webdecoy/express @webdecoy/node

Mount the middleware before your routes and inspect req.webdecoyDecision. Review your traffic before enabling enforcement.

+
+
Controlled path requests demonstrate rule matching, not malicious intent or detection accuracy. Legitimate scanners and prefetchers can hit decoys. This keyless playground does not send detections to the WebDecoy dashboard.
+
+ + diff --git a/playgrounds/express/public/logo.png b/playgrounds/express/public/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..da48dc260bc25e80cac756ab0fe20b6b8b69db1b GIT binary patch literal 70845 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%0A(f(&X`z3GX&XS z(}w#&@;S0riE4`AIl)Gi?r$5WvS9%~@kB_q6EA+sJOFnNdOFS_nB zB)*O0<4z4bw|dTk=+csu|pB*Y5IfU`s=F=N^Um54|XcA4Q8EF(!B6+{*RS2|Uy*kQ$~(daXt^eCcu5 zI5Ot8Yo@i-c3_s)ZG;yoG8KdH90@KvtyZ}-7rwh$VAbS@|(MBzO;P$kJiyKJMS}s~ML2+0$hmytpIsG{P z3H~N>w~5#KeS+9dYvh0-huldKoyF+M^uZnxXUEE7D$eh9$_E&c0Hu;H3*S$>vJl07 z7uALB-*jYNdR+>Rk^hXt$c7WoT-Ocjv&g9p>*2hGmp-(XV^}y4wA*f*?sB2y~ z@VsMa(P^RCrch_*O?ZSlds~eS-?1-J!O%3+3W82%1{c1(Iktjwv6q=9zdCs>+U@;h zB)YOW=ujk@!KJHZjP0Z)AKT=sadP4zQrzPmY55bDL^FJ7ko?c>VwF{^<)y%yt{u(P z?`4&Lw@OD9Sb&YgmF9qCbW-uWOGh!{la#9H?L6as^Z0Knx94Gh_Aul?69m2f=F7tB zz~hG{^^qItO1!x==)x>Som|&uTs(9*p8^nXD8k1PFf`JT-2f=tuZ@isl=BoSrJ-WS{!6t&#BMH`LG=Hwm6HOkhp7TD0(NI+ z5}gAbK6X}8x@M0&SrUia@OSJ*>$GAhy*oOVMS0GA&zOP`PENwt7rW>3zFhNb^Qs^8 zBBl%PmehWQRn}hz9Q+qg2tr~-pQWqp6?30kJ1G~b&Ep6j3uise7Z`LbJqrH?=_Z{Qf4xop+oYGd$d7~NcP-RC8KliHgUtO~7 z0x5v;rhvs<3~iM16qWN_tvv}p{-@1#ykdY|8N06X@8vgpR%YORD!laaQ!--PhBvht z!Q1?${@Lf73`b*dZ4|{`J&IbZ0Y|R85?gUhw-sY%`Lb){t||66mDkySCT`XHf76?r zDr|vl%k#PDN`v%$A2Q3Gk%9lPpoyGYGCA@LHAF)`?jCYOn4pm3B@VXYnyxXGj7z4z zwHaLu-V3hM3o`@sekF>E0ZoHS zmDHNDrB{1YtddR>OwB3RT8koEb&}fcoq97O>`U^;MoRrnL3gRrA{uCj-TFXWZw9B^ zheMGrv%D?yBBhtQ@|&o8*9eBME7ELYLfv4v;n|pnNOebTikY#}5zq=At{XjO>c!j8 zuSQ7y4RLeKVm@yY7d_i@aA{%9kJlq&z2NDl>jq%8xZ0EN_fv0F+KED}g0y`;D1DR# zLA_o8IC3tF5mT=Gl|}geRMPnMPK$$-f6k7u1Big@Gxp(cVDQcly=U1K)m7sjZ*y4p z5EqC3tMe?%rLmr{95~Q4d#>tqYwga zf0609HW;|tFN9me=y~RC)cmAKyPx`PrGtmrK5M-`et&h8tN+cV zfUgDQu7-}@Kyb}-B#Qt4_IMLRR2jCausaiu-bxUrr}U(<8i-Ge1{qVHTegqIc4Y-&*^ePJdPvMN&9gTP z#kajjf)~E@nExV#%bm;FS@Y6P=Pa(gX91)PSPnZMh&;Uwzvc&=JxEf%PgnC$r#-$a z5++|OcF?tP;S(7^&C`;`t8-JD1lqQLnl}7SQ_8SVq}Mzs;c`%D`qR5Qt?WIa4IR({ z^TU+;a5V_P@6YRSg6Hkxk~*E6a#FAEE?@teYQ+gt%3@d;gkn(zDF^s)o##P18jpgl z!1un*h)dp#n{=nE(CS@iG2229`=>E>aLWcP><>PiI~3w?S6WxN^*4_n#~jPB>tQ81 zH*lUUiiIPNWa6owC{iNrKsoTI|G7kh=n>$(Ge;6Y#gh9k=Hd>GE7jt9o{d2yd;k0+>32u>WL35)fjxm~;oQp?U@k8koR-(~96QZW{P`StGI@XrEa! zkzm2LA+Sp+f5T)@p-y2Y?Q*$@MnuV@{|vT9-l0sE9F>0nNL8 zGrspvqEk{)s?&>JH|lbSB0qW*-T-<1;hJnbD|VRe7yQ~8b&cgK)lngba~ysv_T8&R zw_R;tU9=7glA^CU15Nfb>wAJmZXx3ouA%Oxkh|>jHRsa34u{|i9owR+%yv!K&fv9= zdasm&Hlj8NR9rMWz`3+F%+GAQ!Gzk)D)~TK&+|Qs%K<^4L_X2$4-Sr0I!3#f)yI1x zOfDRL(lM7`R4O_SkD)^?yJFd$+ygZZNt1j<{eUrmcpLMwBKtz2Z3WGF>0hdi z5N)0B`@{I3d0E4y=hd0v5TKqxur3`@-Kkz$jsOGqF{r=B(+U3&c)vYl_eV?5RH)Uqf-{Aa zqA58?%}dmBkRSL>SJK8^sZJ1`7;V2Be4!w67sYt%#jU3|S;J-LLz=zHr3(r=^{g8U zjNWs7b-z%EteOHiG3)J1PO8-o)vt}Defj5O!C#AHk@4KLicXW#NUiL&$nV+?u=c#>?j~pM0Nw^5*4vNkw?$g9%RDp#;(_8 zQy{qR4|TG8ljfwlYgv!KfS@SwrpKV+%-3`$vs~ zMRe+*ggG^SKEKe*YO&Te1;WjShvF(RAuKil0bPfMUoW54hf)x7<7GST`zdn*o;lwA z&lurKbPK4*Pv02z+^AJDB+cS(x{rRCRm`Lf2xi=;!RfF1j!@4^rfT1wrqyMrU?nYl z<7%*haUV2nKKBhT@T!&CThsmB#}!V$cpb&jAm+hw;XbaW71PL@3qZN`3rRwy%OuD8 zPbM zB!^xu7l!G*6P{Y1=NieGujU6++SRgx^!BmhlrKIV)M1L8Us5EvfE0B@oFwAs1lenY z(4rqaoNxEKL(^p3Pt~mdJs!wtB+Xglpc<2HVjLTkqiI)=r-l%Blz7R28Hu|$BhMxV z^rPKOg!jQAYY>FPB38inZ>+!^u=6j5>dk@z#f`lX7SU?mXmhDBzZNwIc3b=JBGwZ? zRwlu%_+@@&PvcLNJCy1s_i)9D-#)9=-x5xzGiJ-Hqp~EMvFwP)tA7rkdLWp``g=yy zF?-xaKPJh<&#%&qF1$p>=KhAKfl{9ppUUyekm{Zh`r4qFm0$<@sfDDkumwLqj=r@4 z5qf@~aWV0=Ak2ie2Q_=oe49c3<00)UH`GrD?4N=FK$tPw=q<9p7UGvnBeA;0&@ zR>D+yMS$G>j_j*@MCj1LjSrg(TM40kuom@zI4O-sZ<7e&lp69eIQ}Jx5a7Q<^*jAC zZsDE{R`UN|)Hpd`mBVWdtj`ly98{b1RJ~k8a`9BYI#n}@KmRZlDD?B^JV~5E;L(uV zlPYjoEuzD+d;>Mo^2Qf4&dPOjHl0=*w{VRJyU;+9SZ7~x=sxr}zpuRS(Q)$ZCVu?| z`d&OuJX)@F>mLFkqihVj%&K~M)Nn0$bzoIAvy&oWdX8i8=)Y<#fX=<(z4f@*Z|5j} z|MS4On-S)Jpz24!Yv=Os+hTrr*8};gH4a+|+2fnOg!w&j;m4d~G11v)J&I{_ac0+Y zO&_zC>b9L5nzo%K(H*}IZt}UG0i^G^$VqCiPq$bW5VwP5qnZ&)N!17)eeBTN9nPQF z)3dX%fw9xd!x5DIvus>rxK)WtK=g4m-M?~_u<3+7?qXEs|3Rg2Df`us-ok@o2BgmW zwa|bih3DHJ&~z191~#84G=l=sr0|m=k(@P%vF3rb8S1CD;i;VS)L|BAyDyFYR#NZm zuUo+T#e2U$ufHYf{X!mNTL?^|DwthwClX0ogye3~NQnJctQ$CVlzBRx)nef?w7Bro zGf`_AY&id6>rR*0pQrUE@#}Hmx~49l&st{P*@8o*({0*=esRhw#^QJ%)e58R0dS!nuJ)4%DUz!2Yzn?T7u_sjz(2MFPaihj-pOc=DUPJLwin9NWY- z3Qf?V$_Z))=zz!h0XxAwT^Zb+NH=u=dpec$)a7KT4V<-Q-l%+FpMa_xkVrtXGx*xa z;<1I`*D9Tu6WVR?{mxN;vlfwT9t* z)#N@;btr!&Irwc1e5d`rcpw@2|;AH5f?+8jX@VWMv-UM)V?w-W8yGF%=7nJ}zT z_{nY8_LETFdxgn9Wpd|#1u-Z#dCd$m?_xG`%O}7FBGXAYoCA-t>jdP8%^HR<3_<6v zha!SiTS;xvpJ|Zo+`VFLJAPyia+3aah=a*W|*RdFfPROr_ZFnvu_;2b@J2Gz?YImCJvFT2bC&N=NdG|usfc| z1V5btqq#MndnRJwdx|P^9>aA*R`&-vdzwF9%~j6}Pw4r`o`Jeit`}4sgT;KsN5!`0 z7dhYZz|&~8wDUO-sLPBJg3r{4(iBZ{D&7`iTZUOVh)4iv-SsW{kN_-zii9Gocb6@jGY>l7@jcyc;l3Zaq&4C z7@l8{DZAz@07nG6Hg`|EGUWomxBI(@Q(+GKmDv&guavyR^!Z2$JcOnm0q>fL<-{C; z7ur1F%Oxdpzs;?GwUELDW1 zmMWYM6uz&;n<7*2)0*9_%ldk;kJ(UfHw)gH(D4Ip%FsD;aiNhkg4tizHX+hnn@zcXn7{XRn{k3B(1bN@zWWhSjxTD4-`($1(1 zDSaI>@jl!l5OZo5QV&=N>pi%}=sHSGs(HkS_qoMYuIUYt31^K2c)c zdt`M#qXO*+EtHmv)bWuyXDD3b#~q(t^J#3Fl4SAT2oavcX`S2pc@a8D8S0>XfZ3NO2m)MdIrdj7MJy-ONbC7m#m=VNyGimj(V>VZ*<%FN|Geb7q0F_JxPAX7G}EQrJY z3S`2~JKw#CCnHyr78r!hLSA<`6vnvJSqqNlxC94Jd{|$|2Z2 zQuXd?!pi0~|9*iN)+$k(n1|o8=FOE(cTIENmRHXgU|Glhi^ZqUNi^5|4)3ihEw~iz zf}#YSv&@SujeG3n8T;I)A_lyhi2ad-G!RxaPL8E%0V!+%9YHBt{q`|%VCGaprsZer z%~d+3IaukE!vIV^8CTK3dW(1Gq|_Lojo<5;W!C3*G+RofzO>Co-Q zdFHDcQ=#g#Tx=W+vmd@4!%udcC5i!kRz*S3^$&Qkq|;x$gSbfGFH)SHY}-Mkmy%rk z9a32Scr22WBfb$IX`T3YsVe4Y%(-xDc)W6x;8i=Ft{iJqEcuO>ssi|hR{TJrG5E*v z@~kfpWKR5G_mXmB@y{Q*9f=jCoMN({QTR!!#1x`S!zgmJd7Yt?9;dg;e0_ zIM(rZO8Yfx1OhL$Y})kY)=U@!V-k=0L{M1low3BXJ`2D8Oc0y0Hq7hf1M)I(a_SZI zP{9?~Bc(*oxjVM)INurBobm@tRO%HKVcU8C?f#9z6bCGmC1+>awEkRBb#02<*(Bh*Flb7bhC&1SQcx*X-6Nki&6M&{cH%faEB1L!s zS=NId5KE;awafN4rN5ru>*_l|%O!i0MB!bP;vMRhUhhVslCdmLj14-F3v?SpXBAGF zXY#Zet1)!^?zwm1QXPVb4ueZBsKZZH*BD**ZN!oVNO>9kH5i9=zC((JNUJOcuG5Y6 z3x7E1W10G+a8VZ&fSRXUplS=~mOKCG@|()ZBK#!oy+C{|d64!G8hSOK?iAK@K)^Kz zM3FPwy=*}qw3UwHw1f_^^RfdCG}ClRikK`7plngtEHD;nS+1p*_yjDzr+4B z^b9wA206Xx!>S4yU`-30v?UD(Jc8K8=%BH zbbql>xqM9*)-(Vm)A4v55@qUxKMegudWS)TUhuB${b#v5K#)sWFsjuNiFhDrIu}q( z*V{{fM4nx958Dehu_$P^OYJ4JTldK=IAOels7`CHWgO_~Q8mU0&|aIH5&G)Zf?>sA zWr&PN0X(gS_bU)jd4BTFcDx1*+*A|(K!*?0l0f3kXCZb&PSbthsAV;RKmG2azXUA7 z2QGxqkoVsAgTJs1@;i?Dv(`NnG(s;CA_N zd31#K@}KrP3UG9BaNGGUDbE^*IIJIDp`l* zWKMT>o69C_P{JN#>2$Q2ET3BOAKp8N;jtpsQLq_Pi7Hpv(Kf>$e-1M4A}B}z7tu^| z5*jU_vxt)Fa!4Kwd8)kuato7?sce$SjS$Av6YpT-8$s7qKmnMC|~2eSiQHl z8P^dg@hG>lWYIZTe7zCIg~BfQ;}7DV-oc#jFKz%+v{_$(771A6fYO>G*f>Xm3Gh?r z{ahZy6iY)xOas(9Ob)sz0-bLOaA5Oyga`PC3{b(KEDtKjTG%bNslHgU0ro)r2!ub& zEr@s+A7ZyqavN!FN*~M_bk&1c#G@iA7)WDfd-ztUdm+=vIk@wcU<~K)`u30S7+=4P zZp*f@ViMif2&tc*3~>x_^E~EaRj3T43PkKKw#i2<#hG$mNFDs>>Iz{AU#Y-Y^lQ*r zjvR>}jF!6K5GoNXkF+@WCSC>ew1x5Akak4L%kMdFA6urApDo)U@mL*2znkBQ0=IY| z7mx5q{-`qGImVbnsktTWIPxwDcT8QvwAX)T2QX5RuoaJuoGHVU0dm3yJws?@GCuE? zccL@@q~lHCyQB(OKV@JXjC=PbP-MnV0ui;R1I!0Lb4dg3p1@7A80Uw)3QHM)T0nG5 z=IZ^kM|LF8;r3rVt4$VBS>RT>%W{ux=C{-z%r)yBIPh(WOT(2^7IQ2_c2(gY^MGJx z66nmP)h_#@?t=&4k&B^Q0iJV@VTCdKFEwGa`da2)`R*cmR48Cc8YCVL{`T&aX( z^<%{Ei2>>Qx9bfYzNgt0MA!8uQR1tL7u2lXW%ELFD?874Yn9C7rSUg z1iaCz!cH?m&~~Cjdl2JY5(Vr@O#y_O1wCOzoaQS$LLG4ejiDy=WV^Y+xjF_K7Q?zS z-?7v$1ThMkxRLdLtpNsq+OcR!S-ay_JgG#LLndf4p654a6wx`dc*^mv(@>7^<4yCd zWrxE4eTz;;Iik3$rp2mnL2R;HQwplFk2cX$he=SJagIx?#fq>0Wh2hvi^Ai$9(r)F zK*ZUGvs{y&#ssV-1chen8nlX|sa^!2!QOWgy*}k!ZzfvbT`de=QVJXiJeTQ8M$GF2 ziJ`WY2`eUK!_+hfn~~^(~;HD+eQLpKuD|n;gc=7H$4GRPvB|zz+?W|4Z`nYDDEm;DYRC@$pkkL(tPY zzR=(oAGT)B0Wp;+)n~r`!9Q2^KSCCJm z<(E*vkf3YIsjBr4|0>lB`pyyViOBw80l}>I4v^JTuvCjb@&tj;4m7M~vg;ASyNO_3 z`ak@-78fR{I%rDEYY2i(ko}TxsBy;UvR&NfG5XyPnhDBDl%8_zPrya3{bv{ZfVXYQLYEt$4vQHP{&< zGMHeo_1VfbMT{G1O7-V`l zFX4v_{zU5O2R-cVO;Xh`OwwAdK8Hzk2wr1$O(BVs2kK31CP!9JPs{ zcn#1RwzK`kS9iZ9J_Didt!V5G5g?YaU-=3W2kR-0}oKG#3lP2Xzrjn;;Z{Q=W31>H3QJ` z^zwtY81IXnH!}G3M(U=V+g+10>3pz?1|^FJf>h6)YuhzFcpJCgb8pQ2!ecf_W$tzp z6{99}#V$kX!Hm8hR*~WNjKVi6z3Ovm5%SUd%hHKJ^+}S^pXUjup zd5g=R_ECP8;kZM*#m~%=v4E$lVQh7Gc`)3nKrx*TNLrom-Fiqt1zBN0ca(<`&z*!z zT1`qo+RwTb5?w+n&dlO({l+hnS3_swsqGzJzAJjjD2?=P*{a>%G#uw3#-0#fESgcY zs_BGn?cRM}J`ncg`Elig2UTkOK~T&E^?B61l26-dL}GA@gVVu^BZ;&0JcSyC073El z0Z#P^V#U}DFYWizcXFqVVVq5~ABaEmo`U_9|A-Z#R>K4qiDQMewD3@70N2YxI(oS_ zgh%-brN@Z=MXmLU(7e!$>UONNr8biC2T6w6NnqtW%s>W$ONY(s{I0=u(Z6Gjckc*F zjD^8ar=@@uwxV_cL<@6?fvwUwi|4LjQSr75J#z6*H=3|KlbT zdZosLjOE`}}d)>NBeko+ojga32d_KlE;;n;c2 zz-{PQF)RR2HA3u@;vb5+e)TfDkpJGq5bf?;K z*`Iz3ICJ-nx>XT1uDsM`(BhH_U3~CKX?)l8PWcf2yDO8R>&o?L_6!Fk3rPhlTA~-t zCx|cklB;SQ>WX75zucn}*yeHD8gv(pS4DOmK|*9nDautyjUSwE?gd*DeL}B(i(XDU zbT$eqAgec9;-&l6RgqZq;`rYW+Ge*FyoKgAMHlmyLCBD~V4L*=-mBJuXJ4!Aa#`;w zR1oX17(fF9e6!W{l*(f-8V>I>c}a)Ad5sr|&t&736#mR=% zb+iegn!gzm&LMB^_<9H1-cD16(sM?QviH7VF^Jkj+Svf#%WpG$E8C$`0~*Pee$RQ} zLn4uYY=)mok_oWAP1yMM>}FrIK$$9_dgcBW5wQW504s@GDsPeKlSvi_{CC{tA^<8y zeKE7n!1rA^`8T3ebP+axOs8>2i&0ieJG^22(bDxli8sx8M2_!%{!%i==cYGdButFL z%*dk~&gz=dZFx=P%aVKX)$!8=EM7~kK0jw> z<8Wr<6@!ex06+JzXLcGtNo;a0<@gFh>_1s=)IaN7IIs$OKe-%Y8Ug$rItenc$ZrZZgN|slH4~hgA~>{QkES;PhM!d1uJvArW1G%dcZ%Cu7xl$lc0qFZPr(}iQ&n_KpN!B z>(dN%67>A^Gi5>;6nYT1Q!LC4tY*aghEJ@_b0V&$sfgu+?z6&FmnvVF-}O;EU5xlX z@-zM4XU+<%Xoq1AGrSa|-$q^EAz32Tk3YGG)k0|c6^TV(9R+=Ts+Yj04u4JzSAq_@ zQQG1sS29E9`5ppJi4fux2)TEo<8MbHyo)r^2D37Q+rUoKb!Haji&C82d5P2EDa}ue zX()z;#P`&nsP4Y1#oNw401{f7OhrXoTBm{3(9ewRB#HNed=+j2X5e_}Ur0g?$V>Z4 z6i%FEc%Mr&wHVA=3@M=qQ<~-^f^&Ocw-8>}d8^jStD-^<@_}D*R`AdrIYSttwi)0( zHFso+U!hvZtLhh}fmz0EKqIXf;qyXp{R&}G#K;FuJ>Pp@A+u>fmAAs;AI9nhtQ2RP zV0|Ou;SEdC9J)Uy=#@QBD7PoGW3ya54Um*qMu(q$%E&Clbo<{v3*;b-2dIhpi-S*4 zPNc0^C2T<1;~lW|26D8MzjSxM6VQ8T+@8wJoX82KhLsMXzu|}ZGxN86+$G8LUM$V!crcCH%}4>>|R2b0xbES z>o20{8HtLfR#-gop|0RRu}ApfZbZBkNWHTKeq#6-G1A{uiUvlDB)28`SVbA~mSP8= zL@F7uc*FZ2->G8^m<8xM!JhVc03Jfd_T>RmP`Z`fvusCB`*>_;ZVJa zwsLO#F$ah~Ipt^HJ(VIIGE(S&zdJ3M?e1k#Y6DP?{hj34er)XMMo}`;O&__3W1ib` z0_EDsOIh?tVCMQb-~aH|_UkREs75cr@;kt8t@aOIe(c_VJaaBNwIV+{f6c9Yl+-9X z@<(&L@luEy2S^p1WJmT<9&&&Zdt)OHb<(T1YPqX*fvf=})t zQLTkPfcmEwwF6LxAupwpUz)5L!?a}0p2Rv#dQh-QpHf9#>NMsFK?pH1Y!7(7ntdjH z=2YJv)$v5&DsGHmSfIFp6iTfEwQvn}GITvgH)y7U-ok=n9Of(t}& z>6ON&%LgRjDv7@3mxSApk@!NP)U2+x|-xMhwz3y=yFP|~!oB?`I**Z;)>wMcB4|2)P0FtE6d9R8t( zxFD@d|HDf=pnV&7lm5G*i89;Z4s4QeaxrZyA2S;ioKYG48us!0u0}#acN8OfOaiJ zRg^($oBK%DZkHUc{Rke$=5Sy3^28$qUpav7z{Bvn5S(lVl7J6$C2BCq_D>?HH(laY zqz{oxa1@qS!o5liY0A$xY97vS$Mewj#vuhZ>bdsF_vW8&QM2Piykit)@VgF^iINqX+#yCDp0(RHU_(&B zz8~J;>(C^V(W zP|DJm(%Zf#cbPew^!XHm=BRX%mKXonyw$^;ypg#H>vU%gkmIsHaFRXQj}Rke*@VZC z27#b+ea9w`=7xBhVDZ3*8?Pl@C9mq-d6K2)g<&;#6S@R*@d5SJP}L&5#tA8o#8-O; z;`k*$$)fMV?hg^xtlfiU)A}PfQlK|3Lcw>xQouvdsY!s@P*)Mjx59|R9??AAJC}L3 z)8kiB$Qo}0Kml=r)K9BA8_<_+W`Qjl{q2uUqt|!3H7$XV__`2b;*IR?>Bzo z7l}&e(mb`c$rqK*9MHp;gI)=`zxL|tXAp>Jl|CUOSWzJMTwH>-aVGlt+M)Tnmmpdp z_5nZ`F-ph$`HYu<^%k`0!_v;pNC=?3L3H4|W}`O_+3155s}ecR1Q9_}hWKwFxvJ1A zK?`j@K>|m|M>U9FIq+;?_j(RtBl8*?)Q!6sWyPNWvN{=<{LDDrf)FF@Zg^)g)wqQA$HQuH^(1 zkg8N%f>g9(=GrO8JxNEa^p3Me{i3PIqpFN%Xo)+xGsE2WcnJ4S{h=~-*CZVlyD%>& zdbweRo33aMqOGT*qXRP!-lh@*EIY^ zDo+Hv{dm&>Su&1Gr<~=79Oc;x%b6cH5|EggaJs|h$#YtdnQ}pHu?1W}+Q4=? zY%CEWNTs^vod`<>r4oKoNAVcP>UQd&o6q|sD|i54jz?Qv%$cA!*Jqx~39r&#kTj8U zUWldn*#0z{-&CsCulk#6EDU~X_JR7;OiVWXQyGCAxQ1Iy@pr#Nasa1 zdPmcpRD^WGp9Yy~j1+ofg(%#jHLulG0v4Z67d zmO{J0Cm374UHZ`SF}=U)b|jXoxNM``7e&|*4NlH+)&A2%(6S~6hr)=`5;fmc3`_54 zF^;YxLPCIIp$#o$mtr}AHM~a&WCADf2+89) z-8aSLr80p|6WMb_Il19I!wpx*@X6PtP058m7=_TkK;5BvjYB=-ujkCPPtc?YcB|bZ zR%Ig6@b*5>!Gm7hbx4L3!QQoIeQVTj4MVDst!xJLP-{!~LWBG+b(3iZ3Za3j0<#|BTb}SC0-JX<|8hN{* z{r8|Y?81PJdDzSeK2|Es(GT6yhynCez?I8p>1tk^4ZX-q91C#0Jz(`S^vuFWyZWa) zRn!7Wp(++t1<~}rg2^UQ_iwZhqEsexmyk88R!p3RB_1`Y7O^gy$CAufhrRjcUC=je zGu&9h#x!rzXvD{idFND3Ti9<9p|vCVHc4plkZYWDyvLHN$mwdi=dDfq83Dz)@Vgh_ zKJ5+|iWGWa$j0b%z2IXHX38Y1TZXDFH4y5!{Tm~KO)8c@fpa_bm3E-k-|1TK?<$Wm zUD80s-BV%{7=R#*JO!4Fhh~fu{?+c(X8fT_6Fn&k3dkI{e!XqQDA&bj5Cp$u0vn4k z+-x7XL@*emGw&)fQo}_>ZRJrI4CtB$J_xbqNcB*x(M6Z%^O)E0oD<30H1_vkd1$_7 zt~x!0XbVWyRid+{JPTL;uy(qPLn&kA7`yKLTu?8Of}aoaB-Y&l%O<{9Y;AL|4_l(H zUg|s$sK$JhKJtEDGXGfe<#IXn>_|_tH>d!`EpHt56lKLa+Zc;}sEifPZT)p7 z38mV*2WH-`S^H((ffPzo$bJqTvwV3V=H+=Z7 zXWG1qHT+Hu4oGYXOCpvj8Gt&6p`4a_aS;8DMK1blYOLH~2746aX0uZQreZ#PM=Yd! z_KMXx2|F%{f}AP>?wDy#Y$b@|iwQ<&hB6ge!IMEzoF_8t(kyOyzVE4ll4ew8Lsk`8 z3Yvhe`h?km+Ygb>q6JO6CLX+2jIOzd3IX^|(Fn5L_?{B#>s0>($4TL3@6(AZz`Og@ zt3%!rNB8>XT*ns>*pPex6HnWZHan-cp|wfX>_{ZcwmXBDy^EJDHjU-n&lEl_V#2HwigN0Dr!gp^Q`YyEQ z5zwy}^yn!lS96Xr2BYh`*mG6E5>C%s=$%*YU()V|axtzWAjB7;8IGF~N~DA#e<&L$6qzrzxx!O#j9 zEGVB{TExF%;bGbgp2H=u7m@p=M`1^)pif$QgcC5zShikO&BodF_MR3PSF}Y)piERe zfd&mBxY@<4>iI%VjA?C9j2j1Nx(FDmJCYUpXvrYjP&F2m9Knt*N=k+kKePToeYr*% z*!EYL-1PW6*(X}fB5!xdF_i1aWV&Ey-&E7WQ{I{!It0x;=;%NJO5aPpnxvLHTH{M9+dqt@b#?sX`@?M6f*o+P4X%;DoOLLt@tBxH`bx?D zw8Stehn4g#K@g)3=nY~1D>1z;h)No&+`(_z59A8?!SthkSsj67Fg)cqloT{{z0F&D zJIEJs7B#tfBhUoe>D=Jwel%p5gZu)U5i=y(RRwzS_qmvYSk+}SGben^6IsZc4s&tb z)Pso9b(hj|L!5cw&e1)B=}{84^8MKRE57~g(EXmxg`l!-U|fe_c+roHd0WD68cD9gSRiu<*5>ooAI5)3o@#X0sz){z`8%&R~}9kITOs$ex%Vml*FdBVjQ zJxJ>&B^8NLzF)eY125P}8fTz7czik?Oi#dZ`^c?9TFWyIp(0$qM7=T3G5SDgSTrMn z_KAb64qrHcnnt;lN^Wa}e)H@6DS0wa%+nVs-Cg^7dzw?Pef83jJZCfg@IE(66nR=9 zoEsz);UJQ>G=%%PW%sYP^kM#MThVw-PwsOaF4qzxyypt4WSL9t7;aM~n!Q8d4wEt0 zG`Q@q9fh-W+}l2D#cJWw=-piM~TW?wJS-|cYllyVX>lITjYt9Vm`$ME++iflH)5G z1MMoV-z_gz(GRBZc8xD<4h&bB9Id($$1j$ZdYJFB72*d;&f|MJ+VW$Re5P+u0t&U@ zjoaJb-a}4G*%?dMvGw8={;G}O@kZ~llgurz>(;;fk|n>@epk;Oow}rFQJLC750SA5 zpEA^L(TfE=;cMwW-antaHi?cV6~~#qFWYAd0{<&;AuOHn526Kxc`GcU=2(_I;aG-$ z1aJ6VI~*~SfNJ-%4AeMWFybh@S_Ko2-ka!f{j(0X9wkTof`O8p5Ft}C`~(qpZBX@e zPp~M_#b#1T+%)1=rRB&Qnhc?Ry(7!rIpDpdCS2tR$U2DraBi%+`e0O)jQRR1d6lg8 z;w2rVRJuCS>#@zgn_;|schsJeF13%^b->uE@GbT1pymyu{1)`prVZCN348g;+_vS3 z1hq3?U8RA=5?eRVRO;@D)mtm{j*wME7h}24lxMMSl!Khy57bB7j=*Pa=N1<`iRJNN z*2^q4Ht0WYxZU4vB{BvD9=OGrsG?3VJyl~qy$w-XhI6!cg}F8ZOHzb&QyLWN!%Bga z#|XKkcqJ>5ZU=6XYSJzujq5WgW>kP{`JUSBe_o?(O^nd>c^QiuR+Nzmcb( z;to5CeWrU6Eme>Lnq0V*3Wh0x5B6`QgRJN`Dav;oEts2&wK+ze&w_@-Dl#8&h|net zio@rCsvP2wInio5ifLJF1yyI#GW24Tr}YO?38^E^8@m=`P$Dvqc&B3koIC(bI^i>TG{`tTBWajtnCUkKwd zIH(x#LcGcdmU~IMuZf_R$784TJK1N{r(q#m#)~@&cl_-=mt%cb@M79yD2r43W`|U; zS8N1awBb_eGJI?ztpADDH)yYYUYZJfxV1oFX0&(!U*=u@?|_ZDVa-%4cdDDbf{kMJ zD+5ZiLYwDZwT;Jo1`h0C`^q4H7M^e^Y>)6j?r`dkFYy8cxDH@7{Io8dZ-y}=`Oq{~ zkcvYVQ^2ok2P1-KQV{DdF~V6p)Q}v~07wW@oW2GCdK!QxpoUBgg0me#;osEc*R3Qd z;TxqEjWIiZ@MWghxjV+-(rH1%>wEmO zCwJQoxw=MGmZd~lKPJ)Lm8KPq@`M%Qwcoa*vC_{O_Z<*A>HWrbX;SQ>pKi!saMNOX z)Zi;Q;U~=3Dk z5e2oycl4?)E}-|}?Pyi2aYv5%IBj3-i;Y-HazEFgxO_ppm$PtYe0Z0O+hMUAWfPl` zmIc1Vt%^jL<7h#{>Ta2DQppi~24C$!rTUaqZ^=NYu5TNxyZC}@*f304G{DIjkeUx! z@V?)}{F4%CrldCY=-gWs>7S)dewR6} z`Qd~aB6%~x)AKw;urJt|)6{*@mk4MT=R|pAV-@P*BY76_tsWIZTBol3v(s>s{F6v`y3Y$Y_nzI_3Aah%pglvd|4Ee3%mp|&Oo zTiwXMuO3QiFu%5d_~MQLf=ARioL)itniI)Tdv{NC!l&b<8ch@5=hYU&Vq9sSc>JewJjQ&HXoc|0iL(WB0VxWasc*B z4J{#KSYR1i#{57Lg&}Vl+e}wMS`~vhp$|u{Um}7pe5zKDqicN8L>dBI8&oiaw;4<5 z#mW-HmyXq&I+b^by4DrGB7T;O1b9^_9R(4qk}6*FI^Ityg&6)A+0wZ2nkpA3+FyicJ&I#8ZkA1nQii&9LZRuo5RjFCDBMjrX}`nGrZzUITQcUE_DV(+4a(fA}gc;}^z-Ao=^% z=_y#>^yFe%p=hgjL&v|Bb$NOqgVR`WFFAfsRLy5%&txt@Em$XgNXFpa*qOdSY z&4Zrlev!pM?~C4_p}V0I`KyieEI*20YRpE&l6Ej)u667>ZG8N~i#IEOP6sulvpbjy z!V@@}`*e)fd3=v|OWWfDeUc8*EV+0vDCqCsVD-Shr+WybsfbjO)Un_hSkE49y1)T^ ziVZm~G3Zyks0$N%HzCJz9GUJ*7ur4(7}uG(;4>}=f}ju5a! z-V)4Sh6KQ^M}kfek44tJpYczSdap5Y4*!JzP{~TeNA{eX{vJU7qd|Yzw3alwIsTDK zzW5WgboqNpdHvGO>`of`xATDg!f5w|q4>nuITDDkZ}H%@OX7$#N+KZC;Q)Q&fd~C{ zkFjPK-MQ0u<-*70v8YCC6k|djJD}9P;E(oI<)_YC^mRg>O}HY&S7YO;Z0fo0S)}Uz zY=9QmI(`972;!pAZFKddEL}lp2rVt6&sNh`DN5$+*CbR4dU87^1C~|&ryIhNt_AgF*f}iEVGTaHB4`<6$@tD27&$kq z&7{@Bs05X#$#jMqieVl%Gn2%LmIH6yYI5BrHr0p1k3Vb1#8!-*j=mPu+EoP8ZszzQ zmwa;LP*rwzlRBTI$hoD5aF>dH#Q^4>fm=W;mob#MwHsc}Uz{BqgI4mUZ(+)OL`
?3F>qwl9w|JM$9UbYdN<26y)F#1%Bn=1>9*#Rg;XeB z@>984@Pm8H)n^4}81~B2S#WxeB`qC2N`b8L{4{+j-I_RjM9+h|5EL)~=+un>nVTQ< zTAdWmXHZ8*o>i8UzwiB#4o+W9S6p<&ui?HeET!q6I1M{xlQ;32iG1}&fDq)JG!Cj= zbZ6o}y$xyp#@xK>ah5a#Siehliqq3x8*%eR*x>32z>6o%9fx`0ti={w@p5oCIo8s#}%N$ag;!%==n#7qQ zW%Zy}TiAj^V@}9&I-PWXbO3=0rkmk|x*6?5z8r>Hwb@aay3nC>{bL(ISs@>ArW8Va zo)7dvD*W>Lem<*hsxDa-`q1Ad&Oa(qEI`D70W!cDKn;?UI;baBkBAdt2KTDuI$Xm6U}Ob2GKXM!j+{LZor}u~F)HvIYlW~h4DaHC zDx0)rOT|N{I3rXbG|A#zA_%SqT>7;Lj;?_KLFIEkd+k_c`BZfOdvd)cyztL>yC~`t z3Pw`ge@f=a`~IAq{1BFDET5@+uBc1^YF;(tgfj$=sQw}t6>V8JT|pu1#xWo7N*D(Z z@{0AU!uUKnY1E7%#8|5GpK9Y8EavgYfcDU6^I(eP38U`m?Y?FKaqW-_^7`@I$}5W7 z!(ZxjWb4r?=KorNzDH6oLV&{vn{4SU<`PP{sb*P7+4u2lyVv1C-wPiz)iF`Q44H!-e%$q*) zd|NXwQ_Z$=ulYkM+`J~tD&gouoA^gn7zGVU7LKWrR-})@))w@iJmiiP`am(o%x}XG@fq!R9{xr0 z`iL5@%!@qi_pjtxG5)jIEd_x}>qlMRFSs)mki*qMSS}tU#}03o;x*-n)j&>==`mS} zc_xbFK8L!;io62;kPA!-GPG!nCL6xOt-y=;N``fA|E^V8c96fF1t_hF=!#{XCgJzb z7M@%}80o3;9gfB$HZIJNRvF);3wUTciJB^f4ml=;vlQoj5yf;i6qlnwjh2+trPzI8 zs@+PaTS9}|S{zbI-omXs>k5y11U0=G!kojJmCx2;{%_SI%A|s0^^n_N!qY`MHbb)# z2EP5vp?se{qB{62K}fEuJW@+@!%Y>%;Gp$ftWxh z0p3ZWZt9*d_hl5iT5m|i4-gZiV$s(~L*L;*Ar?$xPzYEaB!T$u;GZIX=A$MwraK!h z2)Z>MBOHF0BsVghlq4Ct@jjT$msYs=4<9FxtQe7l$EtqMbC10s~q_&d(49qWuVZxEi6?T`TANz4}7Z_AyLh zOAUj~8k5J*0hRdSz643l*g(JAqRW3kIM|Jr20*c1TVUs~+oq;eaR zY46-OF(HsBSC4HLSS1NEHLt0_C~t@~0mg$O3Kp=IVDcSb;5LiJ zDYnL4uK#lOP7Xi$ZN;|Du~Nb{cgho;J?*?9CPOh{lfN&V@4wj6zpL!jZru9Tk>CZh ziY6otw^g9)8JOxlsNq}k0`5;bAgKFk*NXKt#@5EMja|xSiMx9l>dDB9K_09Rh+d=fdwLdGuYq4%gFpmMOYHN__92| zfv+)v)!=>~r>SO`t@18xHBsE!ilJXX&vcmohY!;$cAnBUBW`{FBdhI8Og7%wFY1X_ z8c!7a1hW=16-2NQe{sCX+y2VJus(XwL-kfP0mN^TOb+>rv@;|l$L7*s7y_&JQ;U(+ z&ZFJN1F?bf-%6#gVNf?9Yb`V8QP8sWKH=AV1^#$Cs8x$oRN~8~6CIfF14!l#wfy1N z!J)0C3~J?AIVb>~T+902Zd~Bcmdrlo7xdAD2*a93aLM@JRklUwJ@Y3e-*%ks>N ze4rbfOt#2n*ANAEiX$I>#(w}$E94;SVR8c}v4p18%SuK-!R@bHgT8BdNOrvoE8HR(cOr|bM&^~be7M-DG_-Et9yY8~=iPHs znLw~%p?GfN+IT!G!|s}uB74&86KB~atdB^hl}cnx>&icj^ep4-z!a%ufoE=sF{tf{ z6Z|(q>-09X^`jbFl4ruoHqC17uKX!{Mk=Lv|F+(n~ z=?u+Q=yKn=4@FkT*H^ayIES?_4N=<3X^>XSovaqcG7AxGj%#CnwD^AIZh(tYs0zJM z^>cGq_s^lfg*yTDbQ3)!B&zrl6mtpU{hUjiW8a`VhKY>B2-qBZAs%qJMKe@Xm@vjKP;mWjJ0x)=`?1 zA{Cm2KR_MHr5;zQ5!n`D%p_-tEpne1K$`vb8(*p&QP#l1ptYy#xw;o`Z*;g(pxU76 zG5UJKlbB=CVV#wi>baG)IZTgy2IvdWE>pHv{lMOC7TBf|hBY7-HB8hQbb?51QO@32 zMe$@lmHlbrz19>-957P2OQ;A!^JotM2qseN_d^{&Ph$4>ogk!)L@u%~xHf6>g~I0g z^>I=xgHIrcY9ycsNXR<=C<@x=xC?lEfm4-LvD>o zxJEX|NHp)8$j}peH>`IZMMfPCj$gSzqZ-XvS`%?9M_%2G91D;jcq8fc{_1nN;Ta)C za-JNn`dj=n{bc?Frs4Gyb@Rd*xY$41UCvab5HAXa$y{Q$f@{yG8U9E@XbwmSmSHvI>wi}b6{Xx142=PALq`6IP%{(f1!|4 zUh{1604CT)75vlrIuj`RN7?1dB>-^V@VAQ=k#y8pWelpkgHeqqz( zJ?^YO)~n^gWQJV~q;to5UDoY6W$*oYwC(kG;{K)?TKU-x8)DRi#C=JKf) z-*Kl16xRIpyBbg?SNc$9YWbeD5ZBS`Geato8q4mpinHP$QzJvyoacKg%FViU`Y~tu zxNt|bpIq*M8_UUFYJPHxMrd*Z0`S<dBu+8j@}S>D~NbHN0T@8 zsGKyd_Ng*YyBJv46C0TebTf_Q>5mL$>B#T}B&%JW-#+$Pk)icluK1-P%@n=Lmj+KM zqKR%bmWksKz}?xzcA~lbVKT^9`KRR&A#TO1Gb*bWKUn|TFq&MosjHMQFU_@l|bk|YemwTZl-mi*r9Sm zN}$i2{NICky{T^Nwl9aM9K2O&X z$7g6i(%`zP8suaG`>Nt_t6N(4r1`Wm#R6ul&q}6N2TkM4)+5vcgixX* zxb`Yk;KZ~jvGypZJal~)W#;HRJM@YQ6Cb-F8}`|#9xOag(CL0#iIB_7PDU8;Iddka z{%1=K>$CMpjL{B~^v^bR;eF;U9NF>-A25RioMYc!8)63r9?_#e6{BMkW$+`>iIL)8 z^qr@lH-9DKdY?J^*fPcY2P0V>-I(q*KSEOAoA7MV(p`+m~dIAC32sg@@SH$MoT1S)amM^+Pw^Ivt{?h5!4SwNJaU@tgc; zV?qP-8c)mX8WpZS6fDy={v2jK+5pVY+SaAx4 z=#Wg#<|Dvaxu6XqdAM(8SG0^?fyv3?kULHd3vr9`m?{6}qKk&9%?cH;o?0#rd(QoP zBYK(oRa6k7i>9J3tuHwbup6@sx1wR9r*tbyKo26E4$PJt1$!y(l7?Z)1`3~K%lbZ4|Bn2EqF~Y4lmHB}(As1svr*_;tHYoc+Kh%8boDV>Beywp}bvhDQ zP4@C?QP)cq7#sHn$XQjl5NIj2=e#Dh5|d^2GfRNqb@OTh12M%X2)RQ^uP&KOPBy}_ zKm~G@(J=5O>C|&V1^&Tg>HV9l9_nm306+S^hXN&ZtS5qtZobor%=bDf_uR%%v*|Y* zzAzqSw0LMIyPpTHyFC9agKPZYddFS-k00YpWUb>#-)S(|d<(rR`)Kz^skE+l@EaQO zsi?EI+>1C6odQ}RVcPf>*16aXNAg=}z>=Jl66;yhZM&Qm30C`4mJn*sYVZe(&n3~W zk-O9|V2wg!2iLDMCx?YNh3sb{%X*ioA!ql*(P60$<|>WMNxe2&Zt3$+>AeJZD|d4k zzc9>4R=>)gT-%Q^J3ADpJtned;oWpou&w;o)d4mx80Th!;4tqwcJZ-Qgy=K<``TBV zJA^S$=jp`Y3PSh=eZq(7XJS<5(_L7Qc&<2{U2s#)2X{fjLG?(?+O5*I75-`j2a)&L zP%EozB*3WrM?=@O4`jDXn?7z4)}y*Y7@&!Y|3IZ}+OU5&yVs)mbmWgu`5?q&sQG}v z#WK^RefsIl;YDGo}vrK_fu5O&g(DE3y~*k^T->~#@N1qE((_>G2cg_QDOJAO}A zsdQgToMv1G$Z%om--SGJHLFfoq}!QF=F#`N!|s%Js^g zwR@@zyfn7wdAI-M$Vg|kE}L;DI<_y{W}{v9G`xRNYf!Ms!6~iTa@V-}{OPai!<{2N zdo<%|Fs(GFS(xhd?Ww}w%qF2wvfgx=4=_jH4NCq#4;D2&)P-t+Kg%RV!B^L(_g|D) zX3b93CJ0(6HnJx}E(9RoP*@f(Ck)-)>Y|ox!@gS^76p?{*;T!zcInPTq>mIp8vD-3 z!gD#Wh1Us2cdiwYgr$r^Dj&dS&tVmMkB5&4f10zrE@8L3$D+|*nt%BkyM6fQ{m?3{ zmA%IeM=pQo%032=weLP@&ACa!XJf7RJy|Pv9cZV_yR9hL;S`xe{}oqlj#o~d$CFIJ*_(2%@Wr>{Rs&P!mV|tPVW~i+Wh*+s_z0n(xd-4Rr?2&2RI=k>Q)%N%O7LV zF*kcdb&vuTm1n_WT786W!ueRkdZHSaR%9jB#b1R8a&Y0BFaPeU_n+4a`|uBuDa?uM zmb+7H8lt+}PDT-9;j{mnCkh356Wc1rX!Kk~x^`~9uH|M>!4vJh@m=-$xyjI-tcv1o z#Vd1tZKs2(W=iWlM^7K0ygl^!XRzwCyP^61R6XQ-|46?l%v17O{p)l69$CNy`jN$s zy*4q>q-=i&o+|wp<3U;Pjo@LR}n4 zjXC~Xg0{WLmU+|$etPtivKa{_eu{%CsYSO4wS(@G6fmw6M*f3kj>?wFs;Ev%hfJ! z#X=K*IkZF2PTcvspn4Bw?G>G4iY|e&3o4+FO>^Li-dpB5Jvf1S4N4+rhg+FHUmr&E zhQ=zSw0CI%{*8;+p)P)6a_2dE&@)bD9d>*a&jDe>|XwRcZ8}KvH0T zB-6z!h*xlI+}*f`K74bN2r(i|qw*WY_0h^?I`H((KZP3BbKx-Og(dO$sznf0_}$(l zm!&!Z*1&zn!oP*ybLQ*+q%JKO;L&Otz{ z;IrsGL@#|w`&^YeV|L!26-u1Lu&Z%?hREvCi~6{(SpXu(@f!H`uUGw))?Sdv=>TfI z4k7*gHgeK{;?gj<)rTc@rTowX2?RYGn1dB<|*UO#jTW}#9jA@tCsY}~e-={Y6=xkp2K#V?W z7mv=7HV77gPRcEYp0wFT$ZG0J@dFs{nRXo{HM2wCs&s;~P)C*2KBYE(_7pf=ZI{fz z-96j@_nQ2&NR_5c`fJI+dpC4{UsCs?ZE;rFbME-saj{%Uv+2Ut?HSmEqjvvXobW{* z-sY-9mJ|vQ##8Ly&DHtH`mZW((M)HbI3K8T{zDnVxuK-^wn0QfuLy%i)>h**GdlV*zN!@2i9|l@Jo9G;hlt@h2u8kG5<^1_(M~4qz}hewK_=Z+-^X zHwg-JJCz8U4Y^$(OUe|Ap|g0&Uj!Seb9*y4;>hcxF~EVwD^Vc#&f5oKO#O>6i_s%n zn|;>k5qcW-_hS;@_l8K$TN_71&7Q<;)ZQs7@%-0@N*#khPlW=2^-@FR08z8>XuQsA z-^=ig$keqwJI;uZY*7l_VPxR#i0&$VYfy7@+5D!huPm{@0K9eF&ZEE+0<@+W%2HB& z&G@AVt8&pWFuAISPmV5(Ji2eiJk-s0n-q(GJ%Q4RnG6p8N`x0y5%bSC631OWcl_*J ze~a$ehdX1Z9SQh^IZeKr(&RZXWt{M`yTZyYV3&CvioU+j!B!5FXpTm(8vU6*L?THk z3DL`rZz}JLD&7XBt=ZI?aZ6e(!-~qAL<0qqTJS3F>$-`#oYO%xCMmQe?^}3fH}fV^ zw9;`2Y9o~%qe)4{0Unr}S5W+!NaftM^3O&Y)H;M=`l~Bl+6ZSY zcGyvZCOd5KQ$=}ww#i4Fa!*xtRfTr3ms7!3LC(PM-bxsKxfcN6Ec|Hk1P{><4jYOS1H(794x)~Np|Ddzy57VDWY*^Z7X*{se~^cMN7MV zm8DiRP^!?!FF(Nr=m^?3zgrAx6kTHAsukF;lqa96xdaGU`mSW%`JZe^{I-%uOM46> zHJpzlV{b6InPtH=iHS=k$5Df7`1%j;WZqNgZvsz|t)dn3X2s;gRLL0-Q{f}Lj<7Gq zd@=`5)i5@yLCagO=lKUT*IDmbH9*L@<0Ovh_nQ<4?N;_i&AQ=oID&}@#Pe}7zVVX8 zfv|2yT9WtM{rizHfS!;REE4Z`@cH^wW@yG{3^Kzd_1Q%a6*Kh5M-~2d7f>Ly*9h_K zs9y5Te+MDJocoWvR|cN&*gn$f`=iDOe5mI2j#Fvi-1Xy7oAVxVhBOJX%s zO!_hllvYi4h3ZmCLa>zK$5oY4>GQKR4ew02oO9T6elXrcq1T6L!z%A2mcJc?bu29z z4JiJ^F7J#$$`Nj(qyB@@Zzf?yVYl@|oj7PtPt7}%EkU&n1)WBSR4Dh{YiRbzk+-aQ zhSzsOR%ePv?N-o+DM}64`bVWb~ zkX$1IcjDjQ-U3guFoe5bP>SH#e&JuP2g)id+%;C;=p*r+^f>Iy&H_%escU4XKkKP0 z$(t~L*3E2|qW1=VcrUzYywW4(AnIx`k62~`NECsZ8pD=`8cdGHEAWlqp+`2E#vVFP z8Tv)B+*TyM2B$7ZTR92GpS~B21lIK-Q`f;llHXUG+qhIa3~F;X-P4*2ls*>ZUT+{D zH<7+oMY;c=GR>Q?a(713h*Dg7C2E0fw|PR2H@74Nw<(vJgS%L)IN#?rdiXZCj4cA9 zXK<5Ec|8l_`1T*<6ELjaTe_kUX*laX-YCwZ^gm=S%z^eny%K)=Tdw7FvSlhg=*|y} zL1>&up%F>xO+FH(EdSgUXLih@F-Hi}E>eHJO-*<5#ObNErQDCXpvt0T_a}R})hem*u(&8mAGAYcq0}rDuoMRUc9SBt-mbz^S6>~T` zx7iL;`2#rEX?Ei}xek^OP_%l`%D{xx(P+(i#I^R@&j8UJ9C)J6@snQ}n>uLVdi z^xUP|sot$$OMdn*jW!cy&I#P!P5cU*#$39fu9`29kkMEW12^Un58t@gg*E8p5x;)* z4UC9(BhPa_UY5It4z(yucR|`x?QsKhcRimi>SnP`q8Li+r0l-qq5z(Wa;%(r`bJMP z95fSfq44zj#`L>zVMijzA>Z;FWV`FopxLRo72BLp@ryrb4@;bPycT%wg^x zj2w6AAz@zPavv*W;ueowmHe~vQzy0^Sw6aQIq|;G{P-*?tn__d)oa$26<}y_q-Iz(`9;en%&ncdk9vGmG2K9a>A4E zM)A33PRK89K0}&pJl`**?5d{l<>&0&nTvSdbtGCQ`hnrfPg0qK+(i!09pU$q1bg&x zA_$`?y)Qhue~4Oa=?}J#c&H(irFuw*@Ac?Ct(mV_5bYcNB-#YLqBHvw0zwktPrOFnvZ}ftGjO$t+i>11a{!nMxJ#CdqBWzFT$)iwhpD{|i zAwTjt^PTE`8y{FKmhW$4DpeSBm}os4%;!gSrgs{Gd8bZ_(ham_@a1<+wL8lae=U(E zv)1z`?Zz;13?nh+!%OziQ%o9zR5y?OaC};dk3KI#?OiBKR7EF%2%(2rHgfyUu+7*EnpJ#&Aml51sWf zx&MVUd74{r+39zAac-9N`GlSugSM4sg6xv-@8u&8R4^lg^FJZEFSYGoLtJng&-~+_ zo}CUkU={X= zg@(UFGgbMCg=77Ct}<<{sVyZ7KOo3vcf~j2z*j4l=J*OL!Za`3zz4H@qj8X2VqVk28NQ;tN1}8V;_i zaz9N#X=&mMu~y74|1!UCANvH(d`1QG8ieD*=JHA$Vf$S^e8xd@vEtf?K*FtHm5h$@g!^FD(N77aJHT8D!yA2rK-JMd>J-SO$ zL`u355Xp@WNu{N`LqHMf7Nk=|LO@!&WAA>S_aA_JpXYM;);Xt+iXV|Mi|44X&J0iL zdd{-{QK^nUX27MY9q+neD)BAuDZ{^WR0}`M?R3UDpqr&?7v$BDqrXApd_GwqMSFzgxfcKxjB#!6P-UA&cMB6OkZ6Lz&n*T%ElCK$XeQ_LrYXgl*(@{iDQB|NffFKU>%^L_4tL6~nlcDAcg@GYJiPR*s@vS?lMmYv94LaN?l-{cj?N!az0_a&Espm#@2Fsb0*J0dNGC*!PcIaph z$NIMq$3(bNsm_&al-ExPGU5{WF8CbU0Z|OQd-QV3>lExeKdLBEE~h~;a4n}CzHddX zaBVijxR0S#epx`l2M_s)t$JmOjC@4UO8EOdnSw3MZo9Vj`?odkR=zC2ZsokII8fJA zeA-l$#u@VqZ-LEV<2MwKvxYhpn@6=^|BD7Et#L!4$cI#cV1B>VK)Fv+?Nd=|0r-Ft z@`|js`;O^lD6sBzpmenDI+#t>Tm-q~VMEGy!u1EFe`JNO(v4qH*AlM%n!NlZBsdh& z`31GjKmq?8{n2=xZi~Z2k_Gz7+7+?B{dI8AJbI@~?)iqU7k_2NRD8Nt+h z`8v8_=hZOdbcUqU;9@Ty2})t$8WiLulI{Bge0~MLpAqH)QQvf3-qH-el*1>XioO35 zvI1vepDN`)(zU*vIQ$helAly@FHyw070^EMkrqdvVwKp}EE@Tw*MiwOf0bW?p_~H& z%guR=$UgG#=wndtC5?yIu|DHBp2%e;M9=~rClCH3O-Hp;`s!* zq{R)IZ6ZSQv*Cmzk*Ync4lcsRb!H1MJ6oAf$9il#CN?~z3r}ff&He6vkaH7umy4qF7Y&M8i4NKq4_8a9J_>VBah|Tjv#@)zBdpoHVK!kMAC)J!^oiZfK<>r_hA+}iCqp3Y zyJ1>h@J8mB9I!){HDC*7b6-qm;c9!;ooD5x9bBr2D=kL3K~S?zeMEU~`?&Sv`r}$J z<@kJm@(lF*`n!=NRoUef0YRta5QfwGHGvwhT*@sdVKLWpLs-l(R{fh?#Jc@7v8ew^ zLGOsm{+->#&!)vB13&(DzuHu|cyzD}doJ6+u|pW% z#WJ|MnpJZWEoqkAB)mlRPP;l8*5MNwnhf306qY#vl0p1z8=#HSN0Ey_ zHcc-@PHHYQ0zAeP&WcWum{oir@#6uSpgJGh+9^7rrFr-rR?z*f!=kt!p1ua+F_(^x z&hfIbyuiF%c0WITD)*(AVe_)CI`kkZApkR1UywlP4kTF~tQM9RyTe7>0O-ah|C{bm zjSpgHH0+ZJRQ>)e=t^NpL_&31cPl)ftERe|i5+2tX}iye4PWWTFxuqU9bVm_3(p&~ z9F2#k>rk%`s)c_Oa5`S^oim+8+kDM*T9gpeJZYE8u*Sk0vu!-lZ+7R|BQMiTwY~^> z!DGq+-VWQN@#zTJ- zFKeB?-@S^!?t6SDd|FRFWL1YP{&I5fN>S=i@%{7hGIIS}w{_>5YCt-N)gQEou4Ua5NXjPCo2i64xK#9H#%=z7y||uMLxh(NI|+ww+IOP}zt@ zPya$~_Vq@sxLI@-HwWVH1Kej7!a1}ql6n!5O0X_)Gu&o z?aFYCCQ|c5&sQyzSW9j>j+!GE|Ait&mon9<5>}<~80P}Y`{iAF5k(i0#o_nuU86>p zd!*s@&XRXjPai$i`*<83g*NgZN4w)caN}K8X@svXelE@@dl@m>M87o6z$_?lwQz3dm zvabVaioqgvwg%u*cVX*W+Vel7^-2lXR&PP)6R4B~z3^7dtA_EelmK|eKOkLlvvR!& zkE2VKvtMi3|k`-NPL<M&1AhUzWZmA zi`Wdrnq0LEn4)G)r5?QtUk~NHOIY5ILiOLLldMKs41dGkH-M30|CZtz)rGAtWuN3V zEp<{kBBhNzxkB(!`R;$Yd@Yhz9D+pgq>hIH$h|fq9l_&RAuMQtg53moREqAajA*T? zh8pDfRIx>m_KH|zFJwc(@{gT^ZJ6j+Bjg6PJERpmn<5ApXT)ORa{@L2;ulh;p1;(T( z8s+wYyaC_mVeL>j2hQur+DfPj+t0pP-^>0kV(@{S0Bl>|UI+4Gn{#~RawtraeJn}x zS`d2FMXpO6D2cak9!-CvS$mK_g1{W3_T3BY(ufMtN$v`czy}nbnFWzYB;C4y{GLzi z3o}!n*XL-PzQvv&XdqeZW9^l(qem*uSqR7?A~D>tc1a&xj2aoj2lEL(7f6wJ*Ef9s zv1YelKc6fH?2Z*8qzL$}aAFvj1t z?8;Ve3kn9wwQr%xs^1qNUa}RBXf=3-aXH2kP^sADr=J!Q`?W(>MnZ+rDz!dMcM3@E z-rloZnF;p_;d_H|C6i>FA%!NRBhI;1zpa9R{mqAmXz}3CVCqHHE5!DVN>N``d2zj~ zR0E{D2zk!n$)jrr{Ip)fhQVVEc#;hHZ;4{6FA6I~45rRZb>3#!W&U2G;;l3sMc;3S zT9ZcXEzHWQDJSu4lkeQKhdPIx zOE->G9K#H2wR#CZ3T%7bjdBU?UNsuvwwI*e`_j~2Fsw^(Y8*6DFOS%l39~%Y2ZeCl z2L2P-!5C5y9>B|h^N!TlD!%^t+|(PPR%*8Yr#unQy45mCry?hT#bU33=Iboed%w32 zsI{ibJp7hPoi}ehNKcRc{rh)#aL_-`uo)To?2G#chFcHF_c}7~FnsAFT{TxX@k7wX z-J~$K@U7+eF9b5=?dN0coo-$>%?1`sPr3G`*>hWp)wmh(LEf}8`hkK=E)Jo|i;wZ9 zdSA@wKBs3A4nl`F^{%JpH*irdHyT(vpbnWk? z@{N20x**0jYmNwyp{;0R#Zdh7WyBdSZ}PVBSpRTV&%<=}xQ}zluK8&_ z($Im}Mo#~z6BnPn`a<_g-d-rN4p>br9`r-iWA-5`aphyR9_srhAIFIgoGmh-heP76(+CD%k7<{GHPNOn+HEBod~(x*|;0j&4*Nlbp-gs1=_m% zFay{N2wsa8uaK%eguRNsHuedcdxE=b@YBK*qX3K+FI|a771|Ybr1;AVQ!m6Y2;?GD z_l^IBz}L%|y}nt}_xiFhLW@=JHr2VR%ZO6QQ^&RFt@HTHul;LK6_-aZxa%sWkIul9 zv&_*kc0j}T`R>fAm`Xh2zCe~lpFGZ1QYkbTJ8fMsjssf!1B$s${T`qw$S1AsCW#lm z$30!Fd=0M11K$TuzV}xjn3{@NbkryS$G0ye9oW&Q8vMPPxA6NUOG!IjyACxW-vfWsbb|=mfe-on$5WQnBHH~a-#8=V|>^Q*Z`47pS_;P z^AN4;BK++SPV6;TBLU75*y9)k1yQeG~HKGdxF_KTt!iu)fGOAI>=eV|ms zqdcd3p^Y)x*8Xvfb_J6ze<*^gKHx&b24fm$DLv$1m-%%ed z3`4b0{onT;oV)o{=J46rFww~+E7p+YKSM=&9)CtkW{bE{X|BEt*p$Y-*2}@10gJiB zpsnLuj*2%?Cm=1!Srxg^L+<^q(P2>ZUn*E{sBu>1=|9vlSk1}60zbjKHiNWk;v8I^ z`U8CC)~T6l3;pHvn1JEmbZnX;T%jem{RG#Kg?|dnTp8K?xl}N$c>^NI&nts*sCTKN zUFJ8WfD&P<^GCT)s|c(ZtyI?r9hlUT*&BBJTimjQHY4F1yB+50C2DqJ+mZIJK*L(p zf%K}=yDIcBh`R#l{_P1nzB`!%?R(8M6rw^L@6EO(>9+?qsLZHaz)cUeOo?X2yitXM zI*&#>YuQ}TRN{gXxfoKoar3i7(0enqa7jhRx5D3U1rD0~!%Hh6lWSQq|5-&p4}X9t zm$UoOEU=vv-Da_XXN+iRJ%KS_ooqM}RK@UU%GCJz`x$n*FBwnlCcCh3aXwN-0G@|C zf2Y|fWi-*g%s5KhD@BukE;9mKE`2UO<4&Z~%D>+E4d5$PxOz3ux)0C4_fVurW5`d2 z!otZWF%TLA?yXWYg!o&}+cDmlM zN>)0*(TJ6C{Up+GOJAUZvsBL>XJ!qS1d2po&^q9M{GeTp#@N+aeV$Vi8LkFtko2kC zXKndDG5H&hRNIM1W=M|>5C_$7zLcqPi>_^t&gW|-E;gL~{*;rLls2wJVqGYCld*SkXbY@EG3Mj~#$T>lV|Skv_pN?@eA!ycqdd zzlKffquZ?@70?bWtsngu@o)V_&v}5yHmid-)fefam%=X#g^gBT+pQ1OJmZQS&oFPJ zJknijZbVPAg~BTKHEY9hDP@ji^F45(pGo6ViYqMJC78&<3W&O9dSE(EZY;+j20i&9UnoMx!C@HVfJFhUEu5fJwVPD~dpZ(3A2!Kcu+V z-o6%;){txItJM4ML)CV|WxOIX^l6)Lj#$hm`4oZP=*gDEnV9yvdXGxRpxhTy#PGcO z=*Byaxti5izd~c*#pZDB0Xarqq>8)-&5zBbXBW%+$qTCgVYXss44WH<0t zS2@<5UxMI6?+1C1xy>5bjd4UpvIx%ab2pQ5Us{7~YMhr#4y24_{~et)_TvqJXipyo zO%}O#@wMBUa)ZtTI1w8JN|KXNPz%7V?TkimaYKHiOM>^SBaDMlB+HT4i661>y524g z;991@)^TYmLRpg>v!8d~fzeX>DDDG&eSK4$lPIwTmZ#ufIVgSNdOT*MiN$UgRG8zh zGeRJ}Wg@f)OEQZZ8j&dtV8_lQYWYIejN5TFYP>2ldUZ9IZFHKPbh72%>*RG!Rc1w1 z7;~l^zge2G!-%s`O_4zTUkgP^K59*LJ%u%HH`vHvg9@_eMS=j5>%^mD!;tLO0m|_^ zI&thrmjE*7OJ~xDTu#5>Qtwcw#r_2TO zHgIG&hPTzarf_@O;i7xSg^J~l>)TbmwBhV-P)7QOVxY9#dDPWC{mA&`CR9cwxE)m~ zlMh*8;;P+s(aREo<|p4>V5HKeuM;bWUCx6MoLZ8r2Bt4ZQHbExCtGH9t15lZuV=R8 z!zDqwqnV_S3AI#W8Q>CSOU4*Zw6-8ET28vJ$d3ts9}C+ZRIy+9fBHU;I0Ur{*!if9 zHAjTOQXvAh_SswuPkz5|GuyN_zOc?rO0FPgH1RDnl|vLNfR?7hBPsUd%=JluZ1k^6 zNU74Ioo9z6il8XTTmF;8({KIV^bb37WrYvVn{mI>5@CLH#e3>cptp0|Ji_9u0pc2^ zr~XNZmYCZU>JMzEk=*?0PXjh(@0LE(We|SSK+H^U+qAwd6fheSTfXa|eI$ZKr zd~}$CxA9Ag);3`@2jML~z_c`3n>77_BvQQxyuSeMCLnFvtRc2nQZf?wE<=cIhUv|4 zoo8Oni|k5e5besE-4ZM&_ zH?LO$+7n}obj+rFYBzlTYT*eAo^|A~3xi37d`D4}s}Phy9iKimn$k3UO34nTXsQS> zOjE=SsZc@6oD{>SC93hiOt|(w!Dq6B6T)(>a&F)X(=)bbTi7j(3OhM0l%lZ>wR8;jgby+$7psEs z=?`!y|E1U9wAJR+i%xkYYx*Sx&lC7-LYK(q`kV|Fq-5uR(w0`okg76oi{PGMX|uvX%v)h*jVq zK;I?QLwFv19i?20B|%m=JYS_A}PJ`8=v6KUgM(;9R9j?l4O z%cwdmQUhqhY4tG&xG?hde+jThAgvX?O*ot_e4@?5!YBGTpJaxTZx(nhA(7vvS~uut zz-pVoeUW3DyGH=^CJZW-{)~#A4_0yR%EE~-OCvX=wLqf%MJwUF6A~F>9C94jIT%=Xe zy|V4@p@y3zz~fQw*#d=4Y(B+Dl%e2zQn*v7amDtX{RO1D8U%K&U678gvb=z2lQT)jFX;QFOG_n^+k*~7cF>;6`_=D$YGcfA7Y^^tPp^5-?LzRrr~`U zt)z?n$79xWYQrvo?`luriWfxFN_sKQp;X&lVeh}+zwhsUBiNP(AP5m^c&XOR^XopD zmjN`AUH6L-K@`4kNIK1q37}TUPXSiLB{g;9AnMV8Ub$w`OOzim_*691+DhmfGfE(< z>$`zRCz1orpMI}Nr(JAKs#hYc-qV+dNrLzr^MJm%HxC{?TNT4%X64k38W<6Ah^#8@ zS7addjK?{QaS_yB){;!)<#TBB;PaV$9~!7=Qv@Sha{>Rs3oLmJ4iCH=gO~zTx$MX9 ze#thP{IZ-FQ6>$4-W=z}9c5QPy0^geWWHpTPh10|UE5`5Q4I`2>9!o_v_S0vzoS^w zo8nzDTvz*vQcPZ_tEKFz^K3=W+O9mxN%gd*#u)&f?&X6K_tftXr%;MesdnY^@H6f{ zK3pG{@BS*&KnLa5OLRG#m*5XHl-yhw=;e;M@ZM>;x0EjC9F5CGSn=SGKbtV(RB(5$ ztDc({%dV7SCW4f-Q8HoNB^I$Uku5%~J$2-Q@{wOC`B~_jA2o9~$D&vPat=aOXS5L- zzB$564BhLsa?zQeBXQ9Mu#r*&-F)CeR(51hMEGfWyKfEaAeu_(*ujqkJ}xfM!Gn986I0y|UIY3EE1G>FUEPFKdbJpY;RH@8ZlXQ~ z$WKdNIvJF2b=iJPc2_66xs6&KZtdebR6F?t-(hxlq zpoq@tOl*t*_OZ_+8RchtZCBz9FuP7=@+=4Di~uj<{NUzd+#ul`T96IsHV7k#wz`&X zRigPPtt0NC^rsj@PET&dLYYvXuy+vw3fsJ(RxWK@_j^w9t$%Q9{EwY@N9DF2sOr>a z#V8({93_MFc}&9yfGD{w%IdY)IU!oZ1z71i*Hnr(%*Tz$=TNUa{}ccNuy>AGjk4Z_@OF>dAYW4 z(-gt&w)przQV86OO79VJblu9W@u-RHvHMUfFFLyLD0AifQo@SU4OJU+O&eS&yaD1G zj$_vIFor7h&N~1M`Xh_ zxc%fgpP&#fy7z3&9?)C_-!@ND@_5y|gAkn!)T&ps}{b~5ZgHb=coGB+v^awwTxX8cXZHrZFLGqXnvGhOpo_Qgt5cFy7 z_4%7|_InW$MB{h~#rneMLr0A4ZQ3Jq(^gk z7ENS=aMJyfjQmTH!O9q%Kg|y%zpIJBlDJ)v@1r2y(}0iQNPjojHCieTW6aBRN|;+r?KrynJCiMRdI zRHUS{x1j}9KSHgrJ!W`bTT7)%Z~XJvIQN{f>%E^y$Qxa97+&iQzR*YLZTyQVFC$gfc+<)r zuxjYz^EV+IH0fh@I3$vQ5)NuB*0wBVu!GB>4#I{F4dy7H|MSb*BT@1{bfs=B&S>H- zmt}+s^P8;R^#UWzqVE6+y@1zGSXDu%tiTj~myFJe@^~szUfXRRzPv9wlS!F{H z@n`(7f_I!{)wR6FsH7^?5?~?>8h1)l{d1nKWjyaxkGyXq6;-X!j)ZUi(D&DJq6cEi7c>?GGv|Op8Ak_rB|FZTNr@ zJ(`mWZ=7V19w+`nIW}zYxK|l{6ki=BlG8^fuctg2&M@| zo*7;Xr2A=-fZ5V?W{Af z|8?Qdzu4GjGS0@+3}sTIrtyI39qNc;Mo;mQzl7(tR($_5inyRT2YE&1*o&IgAjEmz z))vC>_RG37+2hgtOnX!$`cta6<_CX<+i~#tf)S^{cMvm&&+O9~Yx}cqTA;P!f))@T zI`(E?uPy&L750lADv!$<`WZ}Sax33>F$?T=wtaakAzA}td~ljlF7x)0oW1gwziAw{ za7l#{E>=-1yfE%V>UgYWsH`K4tL%&13zcP9cj3pb?B%(5T3hNO2FH;Yt|wBS{sfAk zPqEGRcEgfeW@n%6eLS`QR1o(gu9qa26Mwo!39{YAc_`|VnnzvXGSUsHZmo_LKUpgL z2iGfWq56kUdEGIOZ}0TWvI`YhMZUs)WC%4g!t=tQaabw&`UySFyFm!5)18{_RFgA< zHodOyX>i+AeHN>)>&CTsBS{|U%OYO}a{|3eCMkNeMB_cX88$19Ru33QO0A5y;od)x zYgt7&cf2~;j(kA3H4r+aV~g|DsG_!4&}S5x#AD9*64EwLZ_jkMibPmE=Jz7cfX5*P z!d>{9D}LT2L_l!!Ne>9IEm?glP-3bz@Z<#@VhEdWZY*><=OXDHf3x{`0O!(^`q#M# zSFF8JE-b=-syrhgh^k|fTcEHnri~Qn3hn%BFwdSK5uCF|wjSr@5Y;;9oCIxz4~mFE z8ooNo*A@PaB<@C~wM$(aE8As7p$@F{eCBjxPQ=f*r*_uE=F-FYn}~k#;D3 z!Mnvr>>#~FB?0a`InPgdmvWKF^^4MWy!7zaPfpW8E0(9CYl;Vi4~vwGg<0xs!a~*) z^LxJgvmjvF%!SK)$9EysMb%9Yj4~Y-cnhCg8m^{q@AxOZ0I(@S z8@LM{=$ZvlE;?0NA^UuW1Ed=0Q)*U-id}-am*L7N&UTQ zhFtAAU~$yz+wVveoGKfI?OP(cM5{B*t%;WusMPkhN!lJo_-F(wT$YlE&WPM#S^ zq*#+}MO^+sxKcY2(4ww8Q5dLv@Ppb{d__jwz@O0VofV^~*q;Qqbm-V$)bzN?Q`ygZ zF^*0oTF2@C{4{h&`rRziAqTdPNlK9 zHr#Yf$)K`1!sgTUk`akA)Fx+YhtjXEMDjeuXFwYO@{0-KdM62aPq0e}(Kf|Xhdx5X zD3f1YW@|mBj6vR!PVmT;>25z6v5j(sp3Jv(fBFu3E9A!#Rix=l3%tFY6d!h;a^73; z;RxV^*ShOuNg7?PjbOXvGVEbK)HvD+I~Kg3PR4lq3k50gFFL?eUj@9d0d{t9TTrNK zQ#=INgZDTXf~}TM<*>;t>_27eiV_?nJP#dfy-^z+v#2AzN0NG=!?>t}-lRkP2asqU zfG(Dl#;~13SDg7;f`M#>j4tQ!iny9f^~UL!>Ir+uEz8hqx(fXPKb1qwA1MN(4)_~a zOJOUcPQBymMGjFZ9+rd>?V-9OdwaA$*U+r4yK3g;u-lk+dyvhKNU_Kor61fMV76j5 zG4a*436em>uwl|(JGAi1+ccxqN3OibJcx1e)P0;?ScC2Do&->Cb)7B&1Pr1vo3m74 zivuR60;WZ3!;a6u%^qrIj(56HC;KHk?4)p!cTzzq1;j?Wpfm()>YaJi zBo-A)n9-UvZ&jwl*CxdjLeGfiTq5hR1cbf1rIkLT_hJk_*;f0oZ+jKgN{NuO^(oC; zAOhgTK&t9KW+?QcvD<p?arqqT2}Z!~O?&Lh8cFE(==@y1zmFgu7i3+e-t)zv#bw`Ev6dW91DsClZo$Iqo=deJ*DzYTzS&EqeZ~cg{JthWr9+jng63 zLHZUAO`CG>LnwZ?eII_ewMcY<#XG9%*}m^g@!1L93^~b$Dp)fGiUj!KX_zy!M7RGz z(%P)~av^52w53f`M{1+*4cVWr6(7wmvIe#QD;hP8^#}OhC$bF=8#Q=8CVd`h1W?;* z@ zkAWdixU(M@hw&vX7NPVovE5}%@K{c8FrU@^Vu$#mF!3dZn!GlETCF`t9qj9NDct zL-eU_x_7y{0`0pxTwMAcAIOEjRMqzpM`OlRgGQVo-YuV}ogslDI)c{`7B>tcV8e%` z9^@xa z0aByA0T(aFK!B;gGVE3FbX(*jpAJ3l!yqcmZ0?B@zY9B88B%jRx3Hx<%?L-d8q&=2+Bx9H0FI*?V+|RShC_I*IuV2}5tx*3 z)0+M=CPx|I9!&2)s*0WXZ=LaG4B31T2MAAsomS(hrGqsCYyuH)&nKa|5egmHeu5X4rKwLUGnpWSArwFpM;+r6d{=!GJ$3uA$IsqL0M1u(_3&7WbKU1P|0z1XRb`)yL^PIME`4s}3ZZ1w|*RGsOX$HFwl+<_78E23giW@b5mFMA!9-tl>U>`BO6Xbj=e{ zOu=uWH3LlI{C<*5|8bCScNA*nJmh_B(T7i8eNOpSCKhy)|7S}jb2C_PR&KlYsO9}e zjc?Q+^dz8(K|k0re>RqCypIGuV>cGG-c1R%ji!8?*EGp^gM8j}fI=YIBR=sjKrs40 zYPe?&nyc9czj$$)*ES@8*}TSVuzWCPfSVv1Z84O?3Q_!yZ2Z`(n^B->oBf z{CsXWWiI%@VNeVuH`DKvLNto*<=miB;4k5BHvNnwv~7hFq>c64Mq}}siG}#x7d6D) zMfiaKApdr)13oNFByxHrYi{OZY2=>?$*OSxzWX;fGU67ZN+(7VMU4}uG|bEpC@k?m z{j`lQ_Jbs-v~!KL_Tk6%eV1m9+^X7@93y_Np2RQVmK<07--Q4vV&`L$)(&898uCOD zc=`imT3j4b*3pX0@gqZNF0d8&LgYikQKq;`q`>oKM2UI{(A6aMp{}l`Y)rZA@f=z*2sXP#7@|V z#1pzyroa@7H}7~7pH5<=m4NalUN~?mra8|`r7CiKK$hR5CIa+4OPJ;Kr>vr3Z{r{^ zl~M8~N%~?3zNvY(-Ith8a=AiskD4_Tmg_NPk`lKAZLWBq0oyC`uQj ztCs}Gu+$LA>;=ynciAr*oNE42#h3>8P8i~>CEd9E^w-tXM@b~@5oBbsVU^!zjrZ&Y zA}X^zDYTMUgq4X9Bs>n4d+&F$WV~W z@2W+!JR&sD#S@`Zk)4M6-=Y{|I_A?%;1{onw6>o?oIX#i3Q8}aN=|RSp!EhYgdbZQ z-v>9jI}9k{cS~-AH6=_MhJdM<1?!~6lzJF zVx|igbAcjmo|`a|V1+LnG6SECx`g#J51<}(C^D|H0xJgn(3);TOU|j}>|2;f6sF5; z&#M^JETennDehF4Znpu;zwp*RZQwab+gs5S=*!09(;U`=_@avmYHM25Rn}e!VQO`C;J4 zdn0-dn^F#c1FTU2R5KcwfJliZ3R~ij!vf)H3S}P56+?l%OLSq`#AReq50W%qJ2J} z(nPQod????lO{>_vxlHERIKSorfGUkDhA>+b~kULyoafleHJr|iIh$PPdwT<0g9f@ zTZ=sR44FOxl!SEvLlL&R31y79MPwa=SL&CtVIA0>R<~-LI&0!9KA)zpEgVT_C~|NWe>*f+42cK<)vnD^&RPpF)s} zN%Z709zm_iVr=qcVsZlx)4EDT#79D6cjImCy{nz&(yXN;7i9e9M9)zR6YGIehXT(Y zxmm+zS-^3?rQg${aZGRGXP%9Xq_A855Hsg6pa8qg9Lg{S(-iBu{dY4rPc!O5t2>V(OBAcHt?puy7#1tL*Vg=DI^4{%;VU%Ma z+8kp3Jn0^p0k1ed)h6nE{*SbTT^aLbE#|42axxzt&h(y+d}pfx=1VZL9`lqeSHUs3 zoY9ivZ|R}6g|ori-Af&dTQ8;LkV?$cjX1_GLZT8eQu$kRqLQQDu;n?n=88m+FKtB= zkcjC;I^0)Mfu>9woC?Dl%2%HEofOvZyqQvx{Lc`PFH`pVusfws&rDKV)v{LIuhQ@1{c z=4fSqkPB$Y>WuO*FIxTh6E!-zm4Xm3aZ}{?r-N9sl=EX^cKe}ZvYBV~sQsb38^!#a z_1{QNczIW`rcaMrQDY=sMi@q}qQnzb%?r4;7{Rquw+V~*zqT#aa{` zRv8ER0s)caKA#dHD68o8s5Qyf>Eg1S?gPV}F-o7-W0~Eg17ggM_&(>kx;f80*)P^H zE^0yRV_py8CiewU6i}(h4vXx`G^}_*x zl;FQC0C1vd%LxG0Y}@VS%3ncC|m%Y9d}I)lJpR;zNDGRd1?Z@h6f(wz|A zCuAIHTsgFcuDl%FVeKGqDzx3_%E?_Zn6C-eDVCS{(+H;}(bF|p9O)2BB8{m`_)g#^ zS{qSRn6Qh#^@$TbkYGB&0~IXD72h7C?Rc2LX$QxN%gJA9jg$kgf1=u~nr+oZYD?iF z9*`=HN#>tVrcdM8*>LY0>038$K2E(qE&k?j`FqsJ#}8$lhSfEE%)o;+5<>)X#2*~~Cf z=mT_%=im(XDEUi^UcvLu_kYes@4f-es<;Ci3QaV6gw5}*w5uj?;n0pq+=4hKJ3+T8TM*7RMO8#M^x7 zI7(Zn^{L77XVI;1{S6%;KFqsg2*K~RYyBeT4Ll9aL06Kct37+LGTZs!UM5}pll_qW z>MJV1nN}dg$Tp_aB;X{v|w6^iEzxX9Iz*-}A`jZ-}MKNubWaan}%S zm%v)S^DP5M>@0i5f=qqUdRFblgvu$)pbRj?I2agnb+`KZ7tfW~X=)6i8S!7mZ=@Ch zv?Hui#mnG0@`Dm+z9jl@dvEM!{BAA`S_I9=xD`HZ(EP{bsgHTR#hsZM^5_iZWNf>B zvTe@3ZTTJV-2RHVcP06$R98?Z+ZobqnoAhk$6LOUtiweO=IoJsT~9atP+H-~yZlY9 zwUL7GR}5nZ$vPXCLeN0vK>_?Ya%nPU9E>_sSdMv-=X7QaZ?iz}=r88> zb1T#2l{n1z)9-S@BRoI}<1CG6tbOP_Nxq4Q5MPNp9pc54`N{r0a|Bu4#eX_J|92W#Fi+?#!kjc~-AgPN80t;_WHThXG3*>Zrz9&n$!+wWjVy|%4f z?fJ3`MX@F>$BCcaIw-#qA$1ANI%73oF`m-}5saWHGD?Mty2Kt!k3in7(oM3F;s!}~ zV*P$K`Ai}*u;wH2?Hb=9xxmzEejKA4uJ>56&6PmGx021AENRgw+k**Ij~(g3lNisj z56lW@#E}_Y<(Sj?Wb(IBh75YLq3O2b&E{dYgn$5R5_z4q3Nyssa9`R367uGxdA#x& z&HebO|2`Gi>Mg3ltLt^0YLVX)(aSZoZt7l_*m`=^zNF`R$S&mXsZwU3L{1?H4Iv5C z+PxzO?!1B@f*vRS4`A-FEsd==q>1)4ewSiELH-Y7bJ%}+g zQGdQ|Yn^}9c0GwlWD%l7RH7RYF<+qrVxx?@6Gy95r=c_gmmJ#U(}6LQ#tKJ`x-y!$ zn4W8EPKGVLsaC00+(2tyXP5I`2^Sy+A~aF1`d_4bj1O;!4r&@p#1s|=5keCx&ul#W z5=sac`%2-V@LR#f!_+Z^%J#2RYi(zUpSuD+1&wQoTQ>%JZJ1IHxW7e8@^JbbztF$d z<^w}FE4h|HiBq`fMUf6(5<=zOJMO}WPu~@w*SHA$J1G*Xx`%Qn zm)z*yt_GHA?V+`QXu|r^|I$pB;pL$;Sx444qAS}5$&_c`Ozhdz7@Ymt%Z=!rh6SGq z+s$+LCuv?Yia&e1JFmm%!}%vKF8$vW%w>_^M|4qqa>``V5kAq9@lEhZiceVZ$uJM8 zMJLTUmL&Rfrrod##eyle?m3K(@5F=S{|mkiLGmp>dO-EK7)yLCx!f2_JYxu2du=<= zB=_XF-Oj+NgQ#__a{){34AKd}28z28pCO2Dd$Q5I1fP$kRs>LUP0#YF%BLLTiIhu+WG#M;DW(1d*e4V?7Iowt>o$LjwFZ3GDn z4vsXuW{dIH1`jJ;$0ux#1n3i_5F6c-dOx#o0R!I~ChUEBNA;>D)V*+zMTF3|iXcB4 z5kkxR*X+l{-B{@!8(A>=Y7`9Q5Uj{ixE+CrAfFW>#KM<51vyNJg>azSsQAWy4gvMT z;WeJJ89lr~_e4|m^k&l-Sq<9J#*?h2+>XZzF138ln$4l=j<^eVM+6=OAWHGHCLE%_ zx6<3t{qNk(s?;_}1=sbDFx{afD4`M6rqJ3;UK~QSxFlb7V}?9Hzo-SuGM%I6WkQ&FAG_Y_{f zrK4X?ABIMljS>3TU?b7!TW!!68Y7hkQZ0xSg?XthEXXfL1nJvetU&;|%UjSjuG4_U z+)G+w2D;$D_ICh4>;qcOG6x{jv;bCOhI;?Yxmp3xd%PJG_AxoT7hiiKn5Q+%%ZOMDHVk z5&76)BMl=~LNhRrptz>KvP=vtaEO81U1H#^QlG!K&Nm*tlMAh4TYx*zo$gDB&E&WM zujE~gTLeSzc1Y()WoMxdTq(dDI<}XL8T^>$eyduhcMJ44`EFVH{EIoUZds*g%&PL* zz`5nMfg_!xM%8j$w9PKuFRV_V4K_?V;D7=&XXpAsbd8OTxg}ozAr)fqx;Jw+z6+cI zkl~CqH5$I&1#Au;3FzT>qOcG`@8)bmdu-b=KOjN`rP#W%y`|j)(egYn`tbjRt&hu$ zQJ2sP6-1v!c==I9Xx`MxNi!4QE4a-rljCKBjSL##1lUx_E?R@Thii61AA^V>J>Ds_ zgo#vf8?@ZS9l6Zb?wHNKP5``ua0?Lr02yGgKiebfc~xb`r5@mokeYnbo1}}B=)E5i zq~CN3@>QL7c^0UZYA=h0_?`em4-?-RFj<>jHrTMhP~p2io;z#9b_p%G zF$Y8nv^^(t2Fzz%Nbd(`__N&DN8xVjyR;3e*koPC@$J;F;NkSXp~8+Jex(J6$Y;zQ}a z{Mck`kZpSa3_OtrkLK@tQ54RjCO7ND$S zMj}kNabeS}#y(2a>jt8pT8bBy_a?b}>8%JaKhz<}o5GxQOb55MZlD}}-!fok@Y!I4 zjUjUe`sxgT5*Xr|M}!6W!iXUMJR-n2-0J~y@?3YB8A)DfVevf6Q4tX^Y@4Q*38cQleRK9WvX7DU2$UZYLh$pC6<&TS!pl25 z1nIm87n+E;mZE{rnpX9bMfYs5!G_63yiQ-em_!J?0eQ0`$S-sXp)kD&X$M1s4uqKa zkO_upspU;k9qR9*lh}5cKvcg7nu2-~0=3c=vJg0#bq(-`K~P`7E+$ zgAFz;n<~Jy#(mI%@3=O1hY&hP;pLwyg7gKnGbX$NCO(vIyZAYZ1~l09>jNafJnGRfLy*6A|RE)GlVdaG{g(DOO^b9mbs)c+%)b z>SN^L_x6YEiAWWEPpvxnFd|6LDZKnZgqOBQ1nIm^Zu<e&juT8 zurZ`#H@DkHRLuIap!agyt0T7Ng`GC}?ua0L(1S00+NU6@H^5Q_8E53R(R-gv{@I0tT#`5smTs(B7 zgbEQ!Q3UBfiXgom5u|52dFdx0n4<{ImnocdDs;F*T&M=hP7UlQ6}G2@JXUVU1{-X! zkwMNt|5U*pIh~w5MG>TpiXc5lcmo&$j!F}&Qp|}xz-~F)L2KDq$ z^@Hu1CO#W%u)&4}My!syuQocl>}7vgkS~t#@^Aa|22|q(hAL{L*wh;KKK1WZwGn2g zwh{w!?tNi-QYuG`dmH{4k%5-JjtJ75iqQPW2roSdrE`iPT@w*P=X7x`v-fh+IK=Jr zCd$JP(C9``8{KFc-Vg)Nj654`u)#)_jacq>0N#KgouSy8f20V~2i@3cMN15U1#amQ zLrn>sI-{Rg+gBbYUXNJB-oG^N7W_3OUq%GELlLCU6+!-6M35hcynC3JcPc_?T||%; zhi%QX6;2K!ZhQ5o+}a{z&k&4wEEnHDf*-QY!v-5{u)&5kh9*KBfH%-Gy9>88mR^bo zvO*zg6&;`@hTUdn!tXC!v!7ANF#N!gdQ6vI3(2dgl87S6Unzq0ks`>iDZKQ*3NPIk z;iWc3kT*nx&{BnykArjz;#z&sinf2JNaJk!DB+I5^K7ue1{-XoerQ{zYQGO%3>B_@ z3@I^`ABqUlr=*MFjT&@7TV_ZNu-?>0+c7Ae8fOip-fzYXckJIIDT>Z$WZoJlI;RGm z=GJ#<*zwZ0(0nE$$Zslw^s*v=QE&b!$+JrvBZ7Qkmo0R12Pe;pa68BC<0KJry9<(E zXOef1!Sa+~N9yAlG|vVbY_P$GNxB#k6+$|`;dYdFanex{zPUx=fs7`HDRB)VXfVKu zCW*3JHAb2mY8rWKqi>oor?W3Hj{I5jZ-OHdA@Z|0GLHz-8;T&m6yc@+1CE1&8S(Nh z5k9oFQwUuS-Q_^Bu7le?0}MK;b8oFcTvPraohMp_5oOPlk~#PpBi6CO1{-X!VJS7j zg|;x)GO|P1ajwG4Ka2?SzaZZo5#&!J_!WQs8B9fxK8* { + badge.textContent = enforce.checked ? 'ENFORCE' : 'MONITOR'; + help.textContent = enforce.checked + ? 'Enforcement stops the decoy before its route runs. Ordinary traffic still passes.' + : 'Monitor records rule decisions and preserves the route response.'; +}); + +for (const button of buttons) button.addEventListener('click', async () => { + const mode = enforce.checked ? 'enforce' : 'monitor'; + const target = button.dataset.probe; + const path = target === 'decoy' ? '/demo-decoy' : '/'; + buttons.forEach(b => { b.disabled = true; }); + enforce.disabled = true; + requestPath.textContent = `GET ${path} · ${mode} mode`; + status.textContent = 'SENDING'; + output.textContent = 'Waiting for Express…'; + explanation.textContent = ''; + const controller = new AbortController(); + const timeout = setTimeout(() => controller.abort(), 8000); + try { + const response = await fetch(`/${mode}${path}`, { signal: controller.signal, cache: 'no-store' }); + const body = await response.json(); + status.textContent = `HTTP ${response.status}`; + output.textContent = JSON.stringify(body, null, 2); + explanation.textContent = response.status === 403 + ? 'The SDK blocked this controlled decoy request before its Express route ran.' + : body.decision?.tripwire + ? 'The tripwire matched. Monitor mode preserved the demo route’s HTTP 404 response.' + : 'This ordinary request did not match the configured tripwire.'; + } catch (error) { + status.textContent = 'REQUEST FAILED'; + output.textContent = error.name === 'AbortError' ? 'The request timed out.' : 'Could not reach the playground server.'; + explanation.textContent = 'Check that npm run dev is running, then retry.'; + } finally { + clearTimeout(timeout); + buttons.forEach(b => { b.disabled = false; }); + enforce.disabled = false; + } +}); diff --git a/playgrounds/express/public/style.css b/playgrounds/express/public/style.css new file mode 100644 index 0000000..dfc47f1 --- /dev/null +++ b/playgrounds/express/public/style.css @@ -0,0 +1 @@ +:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#0b0e14;color:#f7f7fa;font-synthesis:none;--pink:#ef479e;--muted:#aab3c3;--border:#303746}*{box-sizing:border-box}body{margin:0}main{max-width:1200px;padding:28px 34px 32px;margin:auto}header{display:flex;justify-content:space-between;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:10px;font-weight:750;font-size:20px;text-decoration:none;color:inherit}.brand span{font-weight:400;color:var(--muted)}.local,.eyebrow,.step{font:11px ui-monospace,SFMono-Regular,monospace;letter-spacing:1.7px}.local{color:var(--muted)}.intro{padding:64px 0 35px}.eyebrow{color:var(--pink);font-weight:700}h1{font-size:clamp(44px,7vw,76px);line-height:1.03;letter-spacing:-3px;margin:20px 0 22px}h1 span{color:var(--pink)}.lede{color:var(--muted);font-size:18px;line-height:1.6;max-width:660px;margin:0}.workspace{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--border);border-radius:18px;overflow:hidden}.controls,.result{padding:28px}.controls{background:#121721}.result{background:#0f131b;border-left:1px solid var(--border)}.mode-heading,.result-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.step{color:var(--muted);font-size:10px}#mode-badge,#http-status{font:11px ui-monospace,monospace;color:var(--pink);background:#261626;border:1px solid #57304b;border-radius:5px;padding:6px 9px;white-space:nowrap}.switch{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:650;line-height:1.5;margin-top:28px;cursor:pointer}input{accent-color:var(--pink);width:18px;height:18px;flex:none}#mode-help,.hint,#result-explanation{font-size:13px;color:var(--muted);line-height:1.65}#mode-help{min-height:43px}.actions{display:grid;gap:12px;margin:25px 0}button{appearance:none;border:1px solid #414958;border-radius:9px;background:#1b2330;color:#fff;padding:15px 17px;text-align:left;font:inherit;font-size:15px;font-weight:650;cursor:pointer;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}button span{font:12px ui-monospace,monospace;opacity:.8;align-self:center}button.primary{background:#b72870;border-color:#d7468e}button:hover{filter:brightness(1.15)}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #f7b8d8;outline-offset:4px}.hint{margin-bottom:0}#request-path{font:12px ui-monospace,monospace;color:var(--muted);margin:25px 0 18px}pre{margin:0;font:13px/1.65 ui-monospace,SFMono-Regular,monospace;white-space:pre-wrap;overflow-wrap:anywhere;min-height:185px}#result-explanation{border-top:1px solid var(--border);padding-top:15px;min-height:55px}.install{display:grid;grid-template-columns:.8fr 1.2fr;gap:32px;padding:42px 0;border-bottom:1px solid var(--border)}h2{font-size:31px;line-height:1.15;letter-spacing:-1px;margin:14px 0 0}.install-detail>code{display:block;border:1px solid var(--border);border-radius:9px;padding:17px;color:#f4c4dc;font:12px/1.6 ui-monospace,monospace;overflow-wrap:anywhere}.install-detail p{font-size:13px;line-height:1.7;color:var(--muted)}nav{display:flex;gap:20px;flex-wrap:wrap}a{color:#f3a6ce;text-underline-offset:4px}nav a{font-size:13px}footer{padding-top:20px;color:#8e98aa;font-size:11px;line-height:1.8;max-width:950px}@media(max-width:700px){main{padding:22px 20px}.local{display:none}.intro{padding-top:42px}h1{letter-spacing:-2px}.workspace,.install{grid-template-columns:1fr}.result{border-left:0;border-top:1px solid var(--border)}.controls,.result{padding:22px}.install{gap:22px}.brand{font-size:18px}pre{min-height:140px}} diff --git a/playgrounds/express/server.mjs b/playgrounds/express/server.mjs new file mode 100644 index 0000000..cdbc798 --- /dev/null +++ b/playgrounds/express/server.mjs @@ -0,0 +1,6 @@ +import { createApp } from './app.mjs'; +const port = Number(process.env.PORT || 3000); +createApp().listen(port, '127.0.0.1', () => { + console.log(`WebDecoy playground: http://127.0.0.1:${port}`); + console.log('Open the preview, then send an ordinary or decoy request. No API key required.'); +});