From 0ef737b82ac80ceece8135884a303dcf9314193e Mon Sep 17 00:00:00 2001 From: JigSaw Date: Sun, 5 Nov 2023 20:32:07 +0100 Subject: [PATCH] feat(store): add flaresolverr app (#1494) * feat(store): add flaresolverr app * Update README.md * fix(flaresolverr): expose port * feat(flaresolverr): add icon * fix(flaresolverr): update to 3.3.7 * fix(flaresolverr): use random unused port * fix(flaresolverr): add supported arch --- README.md | 1 + apps/flaresolverr/config.json | 23 ++++++++++++++++++++++ apps/flaresolverr/docker-compose.yml | 13 ++++++++++++ apps/flaresolverr/metadata/description.md | 18 +++++++++++++++++ apps/flaresolverr/metadata/logo.jpg | Bin 0 -> 34211 bytes 5 files changed, 55 insertions(+) create mode 100644 apps/flaresolverr/config.json create mode 100644 apps/flaresolverr/docker-compose.yml create mode 100644 apps/flaresolverr/metadata/description.md create mode 100644 apps/flaresolverr/metadata/logo.jpg diff --git a/README.md b/README.md index e4608f20..c98ca5dd 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,7 @@ This is the official repository for the Tipi App Store. It contains all the apps - [Filestash](https://github.com/mickael-kerjean/filestash) - A modern web client for SFTP, S3, FTP, WebDAV, Git, Minio, LDAP, CalDAV, CardDAV, Mysql, Backblaze - [Firefly III](https://github.com/firefly-iii/firefly-iii) - A personal finances manager - [Fireshare](https://github.com/ShaneIsrael/fireshare) - Self host your media and share with unique links +- [Flaresolverr](https://github.com/FlareSolverr/FlareSolverr) - FlareSolverr is a proxy server to bypass Cloudflare and DDoS-GUARD protection. - [Flatnotes](https://github.com/Dullage/flatnotes) - A self-hosted, database-less note taking web app - [Freshrss](https://github.com/FreshRSS/FreshRSS) - A free, self-hostable RSS aggregator - [gandi-livedns](https://github.com/jbbodart/gandi-livedns) - Update your Gandi DNS zone records with your WAN IP diff --git a/apps/flaresolverr/config.json b/apps/flaresolverr/config.json new file mode 100644 index 00000000..91f2c5d6 --- /dev/null +++ b/apps/flaresolverr/config.json @@ -0,0 +1,23 @@ +{ + "$schema": "../schema.json", + "name": "Flaresolverr", + "port": 8666, + "available": true, + "exposable": false, + "no_gui": true, + "id": "flaresolverr", + "tipi_version": 3, + "version": "3.3.7", + "categories": [ + "media", + "security", + "utilities" + ], + "description": "FlareSolverr is a proxy server to bypass Cloudflare and DDoS-GUARD protection.", + "short_desc": "Bypass Cloudflare and DDoS-GuARD.", + "author": "FlareSolverr Team", + "source": "https://github.com/FlareSolverr/FlareSolverr", + "website": "https://github.com/FlareSolverr/FlareSolverr", + "form_fields": [], + "supported_architectures": ["arm64", "amd64"] +} diff --git a/apps/flaresolverr/docker-compose.yml b/apps/flaresolverr/docker-compose.yml new file mode 100644 index 00000000..4595a45a --- /dev/null +++ b/apps/flaresolverr/docker-compose.yml @@ -0,0 +1,13 @@ +services: + flaresolverr: + container_name: flaresolverr + image: ghcr.io/flaresolverr/flaresolverr:v3.3.7 + restart: unless-stopped + environment: + - LOG_LEVEL=${FLARESOLVERR_LOG_LEVEL-info} + - TZ=${TZ} + networks: + - tipi_main_network + labels: + # Main + traefik.enable: false \ No newline at end of file diff --git a/apps/flaresolverr/metadata/description.md b/apps/flaresolverr/metadata/description.md new file mode 100644 index 00000000..0875b079 --- /dev/null +++ b/apps/flaresolverr/metadata/description.md @@ -0,0 +1,18 @@ +# FlareSolverr + +FlareSolverr is a proxy server to bypass Cloudflare and DDoS-GUARD protection. + +## How it works + +FlareSolverr starts a proxy server, and it waits for user requests in an idle state using few resources. +When some request arrives, it uses [Selenium](https://www.selenium.dev) with the +[undetected-chromedriver](https://github.com/ultrafunkamsterdam/undetected-chromedriver) +to create a web browser (Chrome). It opens the URL with user parameters and waits until the Cloudflare challenge +is solved (or timeout). The HTML code and the cookies are sent back to the user, and those cookies can be used to +bypass Cloudflare using other HTTP clients. + +**NOTE**: Web browsers consume a lot of memory. If you are running FlareSolverr on a machine with few RAM, do not make +many requests at once. With each request a new browser is launched. + +It is also possible to use a permanent session. However, if you use sessions, you should make sure to close them as +soon as you are done using them. diff --git a/apps/flaresolverr/metadata/logo.jpg b/apps/flaresolverr/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..eb7335f60b857b456a3f51efcf1caf9a0904147f GIT binary patch literal 34211 zcmX6^1z1!~7hYN#=|<`9ZWX0Na%p7g?oK6?lpmhSH6zkL4#Jj>p_ zGxyBN_q;RvO-)4>8-pAJ1Oj2p%gLyNK#0JH$b*A;k``|t0=fUP7j93(IEM$_xx{-S55;g;d@)7V+2 zt3&%_D3zp@99O_c4*CpXqO=MgREagGoa9ObO&EgY?0zsPd5c2{n`!3z%5h@ z39M1f(Yo-}ylywQyRiI?>zn7QGxpeQ^;V%%2HM^K)`;asK!C-TV|EwwlosxK8Mx&? zg-GmsNwHr=1HMfcSoz2u(uZF2TSq~wM%_G=)%LwEO9V!eY@AM|6-Q)St!sb@ag8>S z>RyLy;*quCw`P?>Au6^5vi)NwVnr-ZGYWr#p7;HwZEv#E()-5sNc^R!Nhxs4q9O8Z zJ)l3f91_G$<+WKDO=@nzyNL7hr0bK!>LHzrhPO_mcYlT?=}9A9tqMuUh(sh(q%u%2 z5OTAX@v$(FNM8xxeLCT|#$Z(_&Q~WSEXg%NNUfdS>G)@jeFmLAiEV*D+$EQ z2FLxh#I4O{0@wm(J$7lnanyCss zK>Fpi6fc^02|^Hz4%@9r=w~2`LZc;sQL81+}aEgY z#gB7EpU;Hjj^mPXnbCF*4U4wZsODM5QauF>i&||aLh;-rpFiWf2(mjxXnZGgpJ|XQ zW*N{sH~NPjX@M2@xF@n|f5u^N=2);<5wtx(FroX@k#fhRmrM`JH)K8z)-9iUiQ?I) z2QN=*;@S|UYpX33I$WIC*056m1ljyE%df|x#ZyPnFby_}sO74zq}hI>cby*%*y3N( z=g;c9HQEas%VVsptJm~9%^c!y$vWCfzyO=T4@O@RL512$!UKdkc(UPqn;29S?11BP@&;k;L z4Qyf~oR%KFySKSC);p2z()b|Q5;HSvA&!`Wf9KRLpR%-A^3dj@;>%9= zw;T1Iw!`$x9O2nZt~>7I1petI3-+V>={D4D+jDR9ajSUHi<7d#s$NxLg@>%IUxB;w zOtD)E=67L&D#-sX%>$j>P*I$}v`&Eo{^;H5nLJ>hzHojC403+croHQ|Q`#Oaa=Yg1 zBdVHX&_AbByAsk_=Q}6GBN@46Rit)uMK*-1YYRuf;=gSPu@Zb9=gg{vOzl>CI~lU) zcbn4Y1s^u{zfx@UZtxfVKEG-H)P2pae>Wk{*VZrqz6-EDxZ|*MEV3ocPo_t}TRkNt zq%3bcw0S@y8*40}Or6N6Se)LTESajUZTnI%nX5TSdZ%Z55Y8^1zF;Nnhx-?<_H`zip9HN1n#yicy(lT zF_5};f2k&TGHcfMH@+2tqaO9~+lg*jEqL~T;ts9%-;@0(8vOfEytjXYLlYhM?;-+@ zRf{%H;d`t}x5J%l(URp_w#CTH%iCDQEqxy>m#oTeQfn_CLYhy}Ux(nio0lzW;0)7@ zq_DPAftxSP10NU;g-$w4_tCQG_Rpwu@GK-cUB5E{V4vQVEnj5;JbWvlSeqX?L4@l zRNquCxA^SwO95X)Ou=CA6Nc@9BY21-TC&LF&);^pk3yEdpv|+>OmLrFfokpuGuW;6 z5p!(3UBs9@HV{6dlb2o-SuQdb;bh;g&3Z_2M-4fsK+K@v`9LtvNhq;(3$SQJQn$F;xwa_kxluC;tJ;#b44yPg9ppbqw` z*QxQS39ek-Omq69!e^^vH@JKaARN761HrGcwk>wRTWF^pM#AU~c+E?2l=LihO@;S^ zJ&4M;+OHbqKt_*_Lsp~yxW$i#rIrNf<-d`K_6u)^vj;DsSx zc+BrbZmRHdayi={tM*)Y1wOW!yw&Pi7G94gTigtRKJL^XEu4;wQAvzYTnWtdzE!>| z33M|fC;T$~&$u@E2n8Roik`4kKih8;J(wC#a#gSa=&a5B(+-3uDAREOCD{NJ+7U05 ztd5832zkBS0&3eoD;!;MVVZMO#d`TI*Wfo75rsc_e&_z&li}I<6P9)+-ft<)nPFKh$mSV8avf>4Q9j|P07gSq{FIC>p;-{LRqjmm3 zu=1H?pqEQbXnbtZlptn1kgLQvxaChwlRdL^F&U8FL(i=Y0=`-lz-P4bF zlZtoUs}38hYniG-(@GJ}#w*Pyd{fMf9t7s|Ew0dkw~y{AA1Bi8NcVm;Gk714Nd*h2=_tKXJ9ABz3`w=tg&YG=lf!a7qD}^ z#d#!$l-gtjR~F5p9_TQ+tjB(T0dy6u*;< z$l!y`3<^itjKavQ1w>Nu$_MP1DOL7?DYC=PZ7jjJuv6S*#u&-3E^ch@x9r zQTmwrC4cLoT`ZnGOZgl)$#qtW`Vb$yQ?;?vvLZL?#P66|2F7?JOda@$W$-#3s1^Ar z>@#E^{j+L9P1DSVTSvfmMbj?+ixoa7LOqBY=0ja)2=Hu7 z;g8(wNa(l!2M%%qe{6qiq0FnNOOTDIy(O@nkdc1Fvbim_ujKXAN|_oeH0`ap($rhU z#AKn%uKl%n6ajMZ1ar!T>NJ1O_!JC_-&mUCK8{VqYOA??FBXq1T~lmRscJJD|95{# z)K1=Jwdn>Qp^(`}?`bTi;VRC>WLK1@(t+oo|1V`E1C7pJYj0}1)z7)dsSIwTx&=N8 zr>m$js{vE1mAA-m4W11*qV>h!plkZaW>XCJ%j5JiS?M=RuICk3jBD*F71xD6Q|Q0+ z5s$a~`8xz7ANXv&-CJXPMbay8m;7B3jB_xA4f#`jmPlWdzkh}r;NRYe%@gSqVw8gP z{OOzW$b`e*dQS_|f+t(9Jub(|{`0%e!`l*~ywU15UtpKG<+X6FiZ!Fd-~O1fT&RB5 zzqg7r^GpkSxTasqgStgEurGCWU{a-xZC!a?S|f?bQNA&c-%6YLXrv@_>K$XeOik8< zuVGF)?KtpMcwI8?A7mcwmmXJv<`Y}`d%wxxR@eS7@#qNr`Z~puXp@~XQCpU80QZPfMlx^9A_bcj+6Kxk*TWB~5 zqNLQJE4$+;l!?f6F%DU}%ysHhux&LCS`%ec`VXOwkGpXVdo6)=YCa}UYPe(b3p4}H zw2}U3eHL;)*@H=gM?%w&s^l$&6{r^eLn(}YhnYBFEW5R4+7K&xc~FS({ELNDwU)|x zbK4S;O;llpMQYCrTyopk_O&LeI7+&BoIS0lLKRf@rzGo$Fw;E6q0GN%Llv-0zex(BsdC5$g^?b&kBE6{F^uUI6g{V1%<$6>dc()JFJ5!1AOwf@5o6`h zT#0D#Vk;xEcl$vk`P0~1H!xK**ImO^{+^%Mk`vHSWPPyRK%IU@gqKZA#pZMPX{BC;crw=ZC8%gUaHBoW(x;%LhvB$yAS^!ih0;r_N?qHyEv{nuLf>bmg9 z*5&;Wq|fHEK|m3N2$A<1b+A3)LK-jAZNNgwWF?pMDH(on}VG7Gzb zi+NdY>A1d#jdDQo7*NJXF$`vk21~{TcBmbB0y61Pn2SjOlq+dgxGlAPwXb;rEM;#nLHhN_J|pEQ??nO=V~&R zsy)B2Dc|d6cAFonEe`=u?|$i3^sl=6r$@I?g7@gpHqF=IU~Jc+*P zOf%hKa4qD8i`HG{1qt*GcO|$IvLUp=DuAw_VDxHvKeZkC*{3ell@Z${NSwx$Alm7= zLnc6cO(lK3$kYYjsdc2USq$LH`5ac(0{BT*f~!q*{)uK(uD%`b?bq89Mue*o)CDOL zD9$e-$N?LGa+U4Fc19EN3`t@j^)Bs8X%1e)?lY|BhZdOjo+4n5?|<|{n5s>E65Tvo zHh9%(45+z_U5j!PqhG}abthPsuJW5Jw=n(+?RDes`r@een76u zn3RkzA7&51dn>MpP#pl~ajG(a8zM*7Qn2;jJ27rDO4SbXc9trDfU?;$Df)?B>IK%{ zJw&3Fsz@$nIs0e*j>sYuFboO(^mlpVpAgjXZ)S_FGcqEevSj45b|wgH%QKBndWL9w zV7ur3Dcz|NUew3R{`cl51~8PZFo;g1tF`*Vkj#WbBB`TAYR!8<6`C*nCxRfTug}7{ zR)y3{>W_YGWQj+qpT)4{4|@GuV4#%)s+X7K^0%JbQ7yjdHpZhn_(vS=CCtjz)TY0; zf!Vc}0vAoM;J<-fhr@~d|9+r#cQB~g67hrLMFyc&-aPm&N0h*5b&}2CWo3SY56~Wt zjb{gYBKTi4kfMmU;5lu%y-Iil^iqR`qNK$RPe*6|>pTW5PiJGOQ+dP0{G;o8^dJ~9 zJk@{t-^|P!ZAni6kfy7d*Ph)~PpQ`60piY%Z^nT{1X*f)ouK#8FldMo6y9sm=dSuX~&QRqTt`DhZwXI(n@gfNGiiA6| zPyb8Nr+Dya$4JFxH%>p+JucjPb`slCPHgea(yEKYo9k0GIKSge2Z@VF4m~H* z%cKsIbtbH5gwVuH@bs*55+q847pcX6i%B|8tKxcoZ~kVe!)UWAD<^$tNjq&`?l16? z3!>Qp9&ovevOA{(bn(D!Qer1k1I|G|oc?zZ4CA_t-ngVA$;SG{_1I+syW=pRx%q~8 zHG&eAY_^&M1ox#`@H@<(oUI^Y(_n#$eMP3##)(j01kO~@Gt@OL{tRnD-u`w~LY2*QVn+-tg`O}lid!{Q}sDV#0DOm_cVrEoOa zDM!f$-L0160w zmfgm=KgI;af*=Rlm@{N|3%Y2xi0~-K;h@?}>AylIC8plABy!L0(%qC7OF)oCJ!16 z&f|Njh#>Udn-?RMQ$J>KT?%l)z3+$-s4B!t>jF+?=F4wOZ%5^U(pilBb4JhC{s#$k zd8g%5or*vl;C){$+^S4i(ybtQp>92?dp|K5+RpzLR~rY8Qi4#LgM*p5W`$Nx+kM!B z@c@0KPigk>YJ_t*5$!fDwo(n8R^^LX5(KSPW0KnPRN`)bJ*5A=Dm6wJRrcQ!9awTn z!9ckF!mz4HV@VV{8)8JvRtBA#=Zu;SBQ&SHcvr2?tzN@>_n-Diz@#kX`G?5d(++A8 z2Sd27f(S377<4YhUigA&-Se&bXDoNV08)(CBz``rDkSw++Q*7o^z20L07vrF&Fj_4 zc%zylF=3!;#Fl>t0^}=W{j&Z~x;{SO)xFnpD}b%v+K4k=de^ z6>@>ezsx8an>~ds5mwR-M%EC2Q1~$T^qlF3hHsMn@SKktXiJHjGYc)+!m5ct8YcB0 zJQpe-pTP1>PtO)BaiR{2ZWDzv>`*ipilW1@+budvRBXwjPG=b)Y0Lx2(!f-vjS<0f zgA=6EG6!auqTC*n@8~A|ZjN^<(M+sSIxJ|H5S&JFn?(Tm07kGQ3|;!K;(C($ys_tn zQ~qj(CDXm`5cl_}!(47H!Neb+AmBDPsUE z4I)L|I?%I=jOGR1L=>79WTBaqQT5*iTL$Tj&&x67>xU zX`Bj|wU<{XTq5>a9ohvT`0sogXkztv=uimE;}5VKQq}`r1<%uL^k}gU-&P^3y?7nc zfCv9=ig)scJ)35hI(AiKdCM=^q&d0w%#DNx^0RsDnJMfZgh{6$Y-wk*0aci4fw{4v|{jzy>CfDOG1R zKwp+^Vfp^KZRf4XOGZ$#!z<#I&fmz=f(ZD)9h|KD2w&?kJKm~}v(JFRwPqA>$D^wENC4*w+y$rXEqB=huH>*Wl`q7zNvj5a4-; z?qYhqN(2fH&E#5pPLAD$$kXay8=4p1(r#`$JlyVi^s1Gxl^|(FQmmVy=RTY9V??E0 z0MDv~Ya;EY)l?B%0G>wN6$p$`h56sd@(5~zFS(FjY~5ejKu*}*KKQ&L#t7C#Abb|R z=kF&R&@!2Ab8TmnwCEt+jdls>*>O_{7(sDdNKQz$eE;`BfYm=zy?<%Jr;a4|Y?79$*AuDMZ&0S`1@P)$9wG&OR>$)e1S-|rn$RlP zM+Y>lpwKAoKL`yUsef7JbJ;(KQ;j$ZKwA~)vP~6on1PrEk+hom%wGQIpw1Y-{=T+g z?YAnFBXGu*X1PWG&m#K2z>(1nGX{B8@R;Rfk70s9ufOkao2>}wK0DL({0VFxt< z>?yF2)d|0M5`trjw(RKAvfhbRuTROMpS3P_yvL1>C%0Y55ERD%B0es+LwSaSWg)L` zkvmM+$iEVpBbpRqJZli9J{^{U_}&NW>-%gFDbU&iHLKx#Sm*v~;&XJVh_1EOum>*(kIFa7lF^0+|@ z4$~`i-XH;ZtN-2=-Fi+rWg>ui-6wN)Z0i`TTb)xz z(nvEVs3|mf1nCV?HK>6rKT1z(MDJkJK5N9s%BiH9QH6x07DEVYC^_SPp>ckplQ$Sl zBtuafZ0xt6R!z#V6AQfU_=!fH9|;nXk$&!uEHO_`(vR&8>^7gfimK(<&gBwH{qPgV4+{= zMMZn6HWs4;htxwSz|wmPvx5a&{KkLh$K>!Lzv>n>N!DwU z;2F6v;Xm3(U_R7mJX;@?dyd+B!MyfiSH)^Gp;R;Gjb>25GQqd88KCNaeY z4Nda!Gqc2*Wu7U+uYwxb_bfWF3cg-8A$spO#-D>j=nNM~R&07Um7+W?e7qKuRj4!B zk9#y+{cQRBWX93VyrgSrfGlQ3Fx8QBLWt(G+Ty_6Gt%lTDlvBo5va=UiVXj46#TCG zy=0(EOhuNF$q%(oJ$YoAyYImBh&=_5n7mLG=vfOe7j}F_V8^i1rPyb%M z+evW&-$H;-@IXG7;*0l+3C|BQV{ah8bno@L+vMk>mizPC@FC8n*3{ASvtbs6*T|-d z3*i=dcl8n?p%(!gUeNBERq4P8+a>}(SGTx! zDe)1yNpC;8GbEXVzj=7M0IgPo0eOAEY9yMvzNpW)Kk9?;M9#cnV2H^; zN}08y1f}gl%xA>1S9{Svduzt~wx)D<$Wk@D@2<|$Yd~6k`a~%1@y8JE{?6KTC;!vc z0LvkzE&yTWM`b1x)H~kt^HkTA9l5__S*qpeN=|h9CqP$j0tAS0t2bSanB)+gI(xI* zRM!VdMkB$K;B~s1fO8w`-if~$Z;RV2c>}!%Wv(^rrN+|mhgSK=)j#xbQo|qYtqA$@ z*199CGOjSeOsmThZ25qPTL&YF#Q0_STf)i;v3>08mDY!I27@TK&-A%)@7!eCvMM#r*0S46GdXE~fTazw!tV_ucnG*I!ExAA ztjwl(2(C?xX81{@g6XL)s&GQ}jx3CiI`H-yxjsj)qh326G)@Qf&;RWfzKl&b_^k_aB z3x5+#eHm4zZOa$2#Y}Oe+?1udc1QzVoIc0-6&8*f|KH>BAbFFMeq%9MN3)r)83gWc zPSd=p(^)bn4~%(}2_ns7xRS50CSBcnC_O9)D7TfJT^%D@4driFIgK!7CR4Rry!A;Q z&{N>PZc#-Rit)%_!vM1QD=IfJDn5>sixyf1mBOmvC&EsB5x}Sl}#WGN6W`j_^3ZW5~3Qhq8XJ~n&FXY zh`_b*J&*11SPVDzq(jDN+Vor4a}0{|5epU>1emHa0fE79n5*{-+0WfAI97sh);vQ|5g7Wu>;^yhhp-%tee*#uwgjC$F|{jkEWX{-()G4PDuz$U;{? zy?4UceZ>-#=YKEFWUcGq*sXigP;ZQm_x$vw{(8v-1hBgq`~Gml{knjmc)QTj_N0g` z5BGvZ+}crg+A8!LrHB+zK}(5(L&ZLjT=x}B-UrTLeZbeGN$2F&J=K{aH(C79fUxB^yedbXk{H!<|^ z_&TlC&|qeYvJ(y#Zc$s$i5WR=)ToXk`aONsgIKBU#B02n6Qg>DN%c-3%S}k@)Z3~l zsN~c3B(uuq;BfMnpDMuVFnms$HU~V}&aD_l{8zirXo}Xt4m|nPZZrwZi&%7OF6nNX ztV*4;;swR>2=$%QzrHUPF={VP(7&A!5G(52ipU&Iv6Uo)3LVxd3G^(54256f;)Ab$ ze-oLLQz6#l zf{av>ZthHIKICF6j^jdp?q=ETQlcYYfWQ;`Th6e|N~H3l#nvxQ2g~pVx%oz+<3U4& zJz3A)Pyf}5mBXR(O5H4Z^JB=6s-ct|54Ru0>|^qah<@OZg$!~@#;xD+u8PB6#X(5p z6gijnb$Q>1o8LP()qHmqKMKo(=3HhmofM7JagHW9>=cCu#_E$hKEp2e*Mt>L{`$pr zVKTU3(`D8EA@OW%Vfo^PfsIY=_F4y~#_lzK;;m2%xDOlilW8Y;ghpaDgsw~F+3rmX4zL>yIPg>U^9Yf$P=ESS9AB| z2Zz1xirqih0s@?FDFE;o)(rRr~4Wp|v3bHUQ+gM2xrwdgmP%Yf_aPPi}YkhF* z%W^+yCLDi8P;4gb3kwum68agC33v~X6h`eOu!>si93)tC&DaCo&EjcV?}T&21bjVQ zOq;z<)EF~y|8$QDjgte9HI0r6#g-4JnN2H{8aG&bB&n)r>&y`HtbI_g+8qtWRUx@< zL{m9~(~zxfn--53Y4JhTTWocN>al;$i>48bKl`abrLqDsxE-D24tLPTy+~tIw{j+{A-bwl~Dvz!E}dSL%CFEMi_2qSiw@H*{I^^8PSxk?Qky3Lcpuw(>JSY2%P`6^OkJt|*A z4CGmGq0P+GmBZM?9R1#d&YE(U;r@{dv^2Run_KJj=HVU0Z+-k@Z$xRvE305gB*Wuv zKYjaS|BJw^{8G|3>n@B`66Uoigp3nq= za?-X)sKrMJTzet|j_gF1fylp(^Hn+4kBvTEHxQ2dGZoSCyFDj+%UE?p@HV~y#xfooP%F z@w9Dai0YRRtg9(*E5qa|(Mn50ug zPSX*+XVj<$Ke2yYfP49J@eOT`xa8zEU8$)VvQyX>H#xX;Hau&l+`@a{dlf+k{)j9reCh8zKX4cbhL%A$pb8m8YBLP!xVShF{mO z5ktGd>SK!Y;2hr8@RRHC4;khc-(IaB2GK=CP>cjb!t37E`D0hkN_K6m$hJ>V(^OV6 zMg;_d!l0e_*IN{Wy{AA@?<($X(ToVrBLv4ojZPfCc*Bn^RaKm<>Xb-PL{(Mga5P?Z{ES1CBSVgCj357u<{3dfbu;Y;vl*gS}EJzPV#w3r!uDq*; zWBf=lDR6|+DzNpm$B~ttWh19(6DvBK$oRl_5 z1kRpVYkp}{|L!h8k$^Mf(bG`J*L#Q)+ZpoipOy~gHrJ-z*yn=n80$JAr{SmI9m@9O zW$T!&LFVP90m>W+5n0dSmEBQf0M}D)%U2iiz42TS@l}oCNWR&lOIY`#D}NHzkRHXo z4lkH&v3fNmo$oxB1EBK&MJ8jh>J9^j@AT3J-vJ?3N=l1F#YZlqhBzdgan8Hv(k`}- z`42^XuXu?c5B^dzxoo(`XLaZ?Do8>gn0~Hyab-nhDt!$wCZHd-zVu|e*@Ezi^Dr4c zMXxgVyqiP;2C*N(r)K`RHbR94f*%R%bFz&;DkH%j0cb;>FWSioCCcE#slQ0K7o3g)Kfbn$`%;baxN(iO$diI1)j`|(6s^gV94IQ- zH54v7o9*!S2G@# zueGA5q}UIi&bqxxM)_|BnG*8rW=J~8B@=*n2=AIqyJuW!o*35sx&XKtRm0WH=lQog(R6oZPo56{w;Ir4|6yJ8WKcOi|a$83#xVBbv>3LX1?; zg^EJ3a63{6N~>2|OgaRJuFxxY6^O|rSk~sLp&H?Nw7nu0F1l@J!q9=)2ovhrbc^b8 zWsv9W(FHP7I=7&mbxS4JC{RMH>iO!RDW~NM!JD6Ngw(euv9yMD^A2fpA=IJ?I ze1@$=JxOGtxB2P|Ig%cly;>2tt>LtKwd1T9nBL|3UhhaH@)uxiXezAo_0I8OIoVPT z%lqksvBOtEDFYo=nkzD8 z*Awu>&{Q_5`vGY&S0r(S{~JkmD=Qw;W%GJ8Nmr%GD8x(sDXH^O3Rr+ZDRHIwkYLcgvwzfj*I zm*?&P?PtcFdZ=Z@TF>xDCK`K#!D9eqbSeWdPQt#YgP3mVUID zy}^+&`NJ&iiAbytyxRX3eet(4AEfJna;do>QRq}Gr!oWh#Ifn zR{w!Ib&yZvRR27&n*Eb%>rM?v|AKhM0gO~=@>zutIK*{ zJ_SI0AgtmH-isn2mtSEKV?)^Y_s*{iZJWJsa*?0(SWrJ*NWtqYVAD2J%}-5^NbuI$ zt%xsyT1sq7ZG{;*tsVdm7jDrYfzbo>^_#433RKONQR6wAMOR5#u-JhxFZ+(-uoHcT zIpg8_&U4K}*j5&x0qkIZtA?Ho3ca47MoUeFrJLn$h0D|46=W-&Of9@STg*Dt0G*W4{lMBYZ+xb-1UV7-IcRXzLl69_>HyXyvm zr2?+3G)F4|F%%_2e}!O%4Z%(>NYVtsJ=L1&ZR@+jNve6&>09ypuJb(NE)^`+lCPf{uFoERi3(N5IX-c zn|LZL4sWpW!054?E3#w1XubV6H~y08(8`al6||Su(j4iUTDW*0aKEc^=`m>c^uZ-D zU+B<9zkR6u!5VXxMj(!KvkB#;6<~8rzgGF!%vkeBM6hT zu8BUQQT^dlNkhSGvh}@d^>RjX77~a%@pL<4K&ImYU^Eay9JisLJ?)jxO7ecxV5FzQ zlH+->CD3$OZub^$D|Vxs8?duqe1z2%Hjhn0yLxMw2oPpOfSjVsMWJ*$T29tt@vD)Q zlXbzO9=4TBL{F}X!Mn2^cGO|Xfy_ZEmH;)?Pzbx876Y=r@DA7B$rmxP?ele(aSZaT zd|k|dFNnF0_Fa*TEaXpO4frwYc1phLFP*XyJn!5`5wo&4?>x=sUh_Tbf7a%2N$IUm zZghd{u8buk-S@@>EpIzjeAX8H?)FXSjko!@a6G8Y6~k-NDS`x-9x$+JXpK5H{M#sE z(b+~*>=(3Y7g1veFI*6DZ-ivwhu9v2;NTxR)zKL;w(*Q`Q44m18LGAB`u>JMHs>VT z$>luq=+%K6+Oworr@S3Q9GY0FqeSD_`%TjrA0j26HkJqgG6zUn5g9%cc0=9$4JsOT z`YrhW=qahwCd#(4mR|)DkWI2mIB)KGNrsmPy<)y*aT8MiP2{B#l6;W4E; z)B^w8(_RuiXm8fjLGJW(z|O6sfHM{G3!C$w!mdd{6)~e{EkLO0wGvc7rdiY;T6C#>84!Hlff}q4%4>^yp%+M&_9dkL);^rwMG_l9v4aCaCOP z@9)jTA+fq2`T?|)KI=9;(i65`(lBBNnzXH*P*Wh3?O@#`W5Yt`C*<#itBu(DZ^D?i z6rX!dsizKWNv|V$>g-XWTf&^K$%xTv33*eAcw`eQ7l9UU;T~w&%(li$+ZvXg(6xH( zA1Pr7k0-NA>j?-*w*TS3RyCVj9*~!mC%03PWK<(dabj3ZCBjM` zv2v6YQ^&L0YecPNg+mVJq0je;=?iK-jh1v6nX*! zF-5D#i8xPrgFSawHWV41X(6C#>ae1Lmlw?>>zj2Ch0sq@rT*@A?K%-EAo+!4H1cyN zXmq%-EC*7NLm-0?W1XtaJ}*;fKTwpSzU9Nu%bze|;3kO5Bz8RuisRDsK%}4#?G92EB)E4^X>?vIvC8j27Dc5U$Qx7!dNx8G;n3_N_&$Ax_rPFK2By7bkYMo(_ zgaoOp*e|pqmgBgB$x=jEzeA{83dbH`UK4(Bjr%y(Vvs6$`;8qM8P)L&6~&C6&Jk2c zZTKg~uf93Ry~s{7or($_u}(?BsZ(K-5!dMfQ)dsH!3rk*%*}!uUH&8@RQ)r*?^g=$ z+rqeq(@_Hy@7zq9nJa(=#WV4A1e4Q%ZB>J`KFdgP!3@hEY9bWZ87Kd=*?tP3`RF$< zg(23NncmN~1pr-a*YnQP9vvp3|2%Pf!G#ijko)RQtFvIy`pjZPRA|@PdmtM4pFDhG zU~gv;Z7+r3HndKn#w(g_!z8L>1fGP>KeUwj;)Oa7

#O~qHhH{KL!-)2-xPiwSzy$ZIwpVDJ@V%6EyV6wOY z*Z`mv{PTIJx`e?MVUQ8)mgMfr!?e<1G0w!bq!q)#TztgyV0*J^i9XQVD!w9HHiFdJrXWtJ%$}l;S7pX%iDmld(C_Nc%?Mxc)lBE;8q_#HvvEPX^;; z$k3C`Cr``I#-iNaZQ1lR{x%UOZ*8Zo!DI9YR<3%T<^Im1ABguU1DRd-`PTo_(M-nnQ7N+Rh^5fQo2zZNx{*)wEQxBtJnBM|58z!#79OXPCn#B zfd6AxA}u$I!8_XaTGPKbHKR(!{sqpJYajo{CJR{e&hYASA}%y@4Ay>)E=|El4Bb7R z&5n!7*8a$w{LJSo*R`mY#q_vnI7Vc=)l262Bw z#DgL4O+^yG@662(v}b3U`&l>USY_@WT-i4$IWwR*m4&v23|&Z+Ry2RI18*0bvbWW0 zMll>w0Q5K}QCB`qfYC7$F&hF^b{CtF2Y04T_Kf$x$@`9})*pr=Pa^!CZ|C~ev=ad9 zDC=UrLr=+?c!0Y=k5o>Zl(X*PMMXe`+)IZYe-7q{i~Q}R<3piN8{pGB9=PdbNI-}* zH`a;A9+={I%BVp0yWi%&Qrb*4CO#hOUDc6dSIp_cm3{67&gRhsWmqp&qN`rWIa%G&M`bj^glnCBh9u90#3D<#>g+@^;rBxSJ!ac9fRy*0B z&%bGV+5POOFFF@q`>&)Gv$%)#Q7Vqf~<-;@4K_T!l1>-wmiU*A|3vZrD6i)WC+o(&&2n zXQ`0)?&suh3mn-oi6;B!J#^)D&X9a>y$&{U&>xj$@Ph=+f>#phhMxX)>uh)i}>|$)zMWz<+9LsM*S`t>BX{2R}Ak>4V^71TSpckB`sYTJzO=XHd7iyuuUs;`I(3TdCuY_EGA6an))-(h*Y%5$d9 zVLQHnp#)q$YWVGTV0C(&8!0b)~$KR)NeGK$TWVgt< zNc|-iLz_!i7!r~Nj(=MOlGjB6gV2Uo2!TL zzpCCctg7#e7Cw|nBi*5NhjfY{4bt5$UDBn}B`w_`-Q8W%B}gM6Ae~a@UFY||&->i_ zLH*#~XRn@fjXCC+PE?F2;zBJIV&lvqwZ7-Ke=R;Y)B3uuC!Tv=?6P&*+VX`G$~}y} zwIX6vH<#++8tfJC-La}7-wH-ZW{-E_0XNC1n$b_fK@H&QM3FgORWe_J z@9V=f)W_`wE>LfQ{jQ|pyDDmK;Ts2V%q^1tzDE@6sZVSyrxxafmy$IS_fFut*y{<& zk-ecxiX3LmUnB^e(q|%V_x!4Eo=)#R7-X> z00{IMXm9Y*pzxDE1UNvSt<|>pDBhUX{=WDX8|||9^CiP6!WgWTI_LjdY}rLKzTRMX zD6*W7;MReF#;_Y>Mt4)Z-!rztySfi0ZpOx}#V+_tyOy^zsb1Iaw4T3`9X@){zyiR) z({vj-)ck^rF6QczToOMyDa|2y-oD1~_%m_qB$jpI(s^K1M$DOXv=!BZysM>&S&MnC zp(C`7&P7;MOFX|?8yt_jo#-d4YkiT(bp`BPmU@ctrn+Zw($WHPdf5h5$xfcX_pY%3 z{FG_iiX7Rw8H*WxF~IFQnYw;?H7#W+S9}|M7~<(~boY1B&&c6Aqzk|^|u0n1+(d28gQfzFFV=O{s?6JIQ;g>}NXaAk=7 z>q#^xq&P7zw*|_)XVtqSpK(1*jHmz0{G9LW=LXkz=e0dAcLri$U{cz>w+~RCh|oZk zsxMoN=M7^up<-73C$mV4r(bWaJUxrL^SQl_vxZ-=AU(ZniGO8_G|7^D`*YgHVPC$= zyDneeYsvVN(BQVOS$p#_&dj^`R8xC~+#SMS$1{~hVw>>>7N-&E=q3ZJArn`2d>rFz87A+B+l5<`+j{#_o z-r3}eSkhh-1-ZdI;;1YAZbPHfNWqX$<40*#(hYIt488j;RkH6fz~sMG5^Dby)(XxK zKKtXX0I>kHleL99Hg5#H_vkE8C%3dXiJjW@0Q1~_M`6LLrSJdJWY!)Ku}K#rDJb)mzxuw={^YUI&55zg=TDaNat8-|YDI zorsAJKC1m|?4l<$g#!ViuDVzc`@``1AZG)usC1t#`|LnoG+D@U)JuI7s(xJ>G8kZW z+NX7s;PR`Bc9-62e2`Ldj-5{(syt$_!ar%O{SXOOH_d39^}&4Xf-^# zRuRjm$PWQ$$&D2oLs;HvaeB9PC6gRq07May`DZ#&$>vG`2?zort73 z$E|YBByWJ{k%(3f5Z-Z$EH)0}H^JgQ;aFzb7?<-{T8yoxm~BE^?e6k?u$dZ6B$Rz$ zt&KUE!l0igx7J`F>wi&X0{A?*(hUJPIf3DMlayitJ=U2Cftv+=<03VUT|?1yNswPr z@B|2vj;v>N);-}1IND=P#V&a8Y8Oju#9G@n!8#;)s$VJ;q#5-KCkXgR6g<(3MF5!p z_s8H;e9Sbl>sj)_E_6EgEDiY?8amy|ShDI`e9T!HpIrg_=6UQ;5#zJQ3L^{M9>C0j z1@)j7lj5tIZ<=*MGz1YUs+wcId{4m_4{i?D(@nR}zE5V5ProaYhr?3Zvt534L}4a; zTD0YJve$|?eQ$rmY^odQgr_q}y>Go010y)^^;(@Su&(-^T?&WpM)07#o6p3n8m066 zwcyZ>FKm4>lMx8muOOB;eGNCtcRD##>^1N{+0S64mE0phD=L~X)QVtX-5(#etVz>G zlNi*61v~B(S6&=#07gS0j8To-Vl(cC8F!QwL3f19A##U55f_)A*8k{D zHJW3JlX84Xc*6U7g}18CkTe=C$~yfCpsRHoiy!}G54Zq~qtnxVnY3zsZUjT5B$Dk{ z8<`m^iu6T9E~fvy2lbl=c z@=kU78HB04Qru!3l4n~mjexcCzTuZ#GZ$gY`@2_mI(54ePk7{PUJ3q+0` zmu56lY?a$0K;YFwF}d=gr{5JEPQObX2ZUzR7BAb{%O@>3DlN`KzPDsG_mT2>IRBmE zr!|{87=4?e8G+DY!}TK3-3OqMT6V+d?DUosHsN~zd2?Q?MM^MlW0m|YtzqFL{Rd}j z1Z&V@sW&-@ynx{cbQ!LUh&UG>3o~MNb$-Bh%>|UBf2cvxA4#30v}w<6&Cpg>Qu6S$ z|L z>l@>9I|YvF%2Yz@-{q%y2GTLV1cA|_Yj>PvZi3pZUBLSA8d`9;cBhl^nQ%Q0V5}ya zOuB7SbA1>)BUajBj-!K%QT5&bAq(h0TaXh&aonfDT_r$^5(Ia~xg%l03|FXn%#dZI z0v@w`!m(yDx;E*@u9IU0$&a0UZpF7Je0E!a<;kDKTqi=hHx917o8ln_YWIer`|*?c zFH&TA2^uX;ANqL^+CQq%hs*0ruc-VzmZ?5WLu9A;aV|zlxub{MB14KA-2HWuU9nUD zW6l930@`}ksH=JBFst7_v#6obN-q5_hX$7_R?Z-3Gl)e8=%2+<$MRu%yEUIj5ndHO z_vmf|T!3g1Mi3|rt@$+B$8ExO+U*vU(86_*1TkavW~Al^M+S%xA8Wfga?ABZB6F{- zq~{S4#aG7AoNAHlv2atoN&U@aX5vFPShd<5enK={e!Exy3G8ZckZ^RJPZ4+WHe&1G zysy~soDR?eYCNef?-RBQ$p)N8cS?fqPGqN!LF--;{7j$sHI~mv7s_l+TE*K^jgPU^ zqZ@2ghyr_*OAiwU)dHxXQzU5{pj~Q(fwf+Z9^KmV$}2ngZ}`xa2cynjcOVi1ZS;29#gZgV4+to8Kd`!{OxD3yfkH3yO>hFsoUiR_6eE^WJ7#Z>vlB zb+z3U z5TzmS`5pqx-EIVB*#|1Nz8n?cCG@ato_8){dOmFI5_PC{OV>Y_YVMf?1ZE#W+;%@( zzFFGr{aR(^9~M-b4eIO*60{otPV{mT)YsL{T$)rUhPVgoA{))zP6^E@ka^l zL-1%x%U6)g!7GqQIu~=v!za_Q11;*Q-eK=C3L8AD*xAqzGBtKe>QzDQsDG^1EcZtF z{h>w98DJis81x)#Qwe!}t{*zx&*fO}deUxe`He!0&uDb#GgfAvsdSg!iTE4KM@0ce z29nV?1}-fIi2(iM(fgp!>ddeY+=cHd=!W=G%}tUOMQ{ZM(PelTW0uQ+se@r0sMkg= zS}mpf1W=qps%>6}qL#9`G(NgkB4y@UjP{~nIVUMSUUtI8uP#abP#{f_GZ7VBrkX~% zhEr@r_kc3}x;CpwrGb}q^T)q5G0RtJ&_Icr4P>4+x(angX2A%+#BnzdVgsB`J=4Dm zV-f>5;Stfv`72U#?~(3)P>-@=C15VHLxRnH9NCg;Bw6^e!x#3N#Hw$&M=e9eS0jo1vQK zBI6$RM@4lZ7bL&!>#k|wz9XQyc}I9Sp8rX34xmm`UC>LjS%c^@0{F~j@%AO4Z?tX= z`B>KU18UeyfyL9uADdo&Hr`v9#EaC2`-PL3#O(Uh)org->VChWwLwyZ3h_oM&;msoP5F z$9ecRcigx|b@zl_M%K4Twa^VL6ZrSZh&j77H1j=U-Xb4I%0bt3^=(x#n4YOy1O^E6 zj#HA8=v|>d0g&q87QO5Kmf<4l4=-GV?f7wwqyar)2r1WyD5QbTZ{|g9x46RDsJ|B7 z6Uy}O_)1IH>GUEpDA%<72Vyy=Eaas*>&o&`?JL>}&`N{Bd0%Ly z=q__eoJ4S9{)l&4`5xey5l`m!xx$RD9&Th@W+*(mK?ztSo0nwDKkzxR_c5aebw8S$+Eq9&ZH?(LELML1>Ip~=FKWaWG};Rm zrAi-Br%5`^IL4liX}s2PW;f$`wQ4SPHf;vT^U;L460D|UE7J{L5OfJ7RGmVzvbI3H zk4VN7y-;{2rpS&3km>S+QR{XfW+}X^5w}m)c#|iSQ^aMC;hW*XFKO4Q3?L1(DB_ak z!DTaP9mF<|Xwyu1Q{=AuostMQt;aNNwa&od+m;l@HnbmSzY7Tt#*rq-VkIbeZ{@*Q zKD32|<~BeM63@b)jQ5B$4RX{`-W%FF@T`{82uevZHy4gkGmi&QFUvWu?CiWHk3)v; zl)hQhSuXtv{xoNuunp=u{8gIwd!RISGYyd&koJarkjDvpuAS4TvGQ}NIkWi-_VmAr zTuffNj(2z%cF)nkb@4DnXr%cHgLJ?pIKP;_nZyTn7HV83E9sJF2}l3TxbD7!Yc@sjgyPy6%9W!d5{U zR`w>8JT(t{j-5!%|HCKW60!-vDx*~?9b}o>VSHxlVjFDjp*PDZ>ZCzQo)uGm?O!*A z3a&_9H@8FqPSzPq8p%wCk@_V+dT_TlpU{u|Ka+~*saGsHU1S%qK(I{>Jm&{74SDB+ zZ06V`+zar3BlH=OXZ>EJBsM8{AAad+Rwsa&nfBa+OrPD1)tv@KJX!~6tc8yyXoR_M z4oifC*xNxJyWuutcT+ORaM|nvEaY%gw}cA{QNhuEeKzzb-Cm7~5%Os9*y4hRD(u7V zaQ#&1+3<6aPPqtl=77oony;T-P}{3z!X9wFjLo1kD$PlhkcEHm>LP8c07uMN%_8|L zo#o%dwORg(NUEMzPk?|Hqv;F#Tw%_X?W|%Ywxl<63|b)jN)acJ#MQkSRs8vMCqTwy zvxxTACt=6{$pJ{b0R(jN5i>D2w=Y(MmQ!-M2827q{iV9VR1D&6$UYF}*=t1YIL0Ud zQgkuO!al*(U@r_j0_-Tk_GRSVZtYJ0QzEormuBuf!ncg%$uxL8ufTB3+ghdXA zrP%g|xvB7Kv|T&6e)2z!i4~eXbt@QNaQx>xt~_Dr&!&d`UFmc_9|quo^tFS0_i6c}-p$KAj`|y6w#Dpdt4gvE?EFK9E?4BLe%M zNy(26Xu(`Yo*RsENeAZ=!3heZT;0!y>qkj0SbrCwiH9{_MPQJ_GNaDvm1DToP&HR^ zjajtqv{#BI_8jc^RsI!ay$0;kA#fK1B%&CF3=nwB78Y>sv8@$fp7lLVgEMSnTsFY& z^81Z4M^fnl?8-MJ0*hHD>SfIp72ovMynjA{9SZ<2H`;+B~7>A$erM@&52vOMgp~3MmLt74}tu4aU{xBB3JW zD275SBOv31NNI@86CGf?wS|!&Jx!W|eCMnM9yM4KpbZ8OQ^)=|FW8;^Z+|}b5Wf3S zcQd2w#uAbcPZ0=w)c0nn-&pkI2DjuyAk@pr@P=I93WavhNn>L`;@xpx&oAxfPWq9_ zBT7>^4!7?tpMGM+Rwqbg+FY5o{@!2~A`QWV?X)yxPjo zgsppztFudqaA~V^vNZPd9}?mDkrqYrwxnvli;Wciw+Bx=wAdha_i#L(K5`#|IZ168 zdQ*F!E!qb%AxN_?a!ALjm6= z0A?&f?oq}6Viu{ke5VhcksfBYNFZMbTu}hfd>UPdP4sm2n+*CG$DR1&-~%S&g6ZF+ zc}AJGw0gbl)SG{*!O)v|*eiC{jS54T2;sL641^Ni=3dKcj|_}z@Po2S8HnI^_#f! z;dFNI_`5Z$AO-!x>gu0aTfG?sFx65HmdVl=7rr+aAM^D(bi=Ss2e`6!#f;`BJ0}o9 zcGb_tq~8Odmv{&2)p>v?&!+k!u9)HvI@mQiQ+Ki~boKcGxib!haN$qNCJ z|4r8$>dDXaN?hs8GYN{kcTqq~7tiBA@+Lo!)~rdZUerUKhGH~Z}{mFUMyYYdGNy=kglFj_s+5bemtCE4;e=~n2g|E!2@^_xJ>WFagHGs~K( zKWaD<^$c3fT*n9Zr-}`8P6@nO2xhlkMt)y~C`2M!hsi>3H=el(uL0d|n0uOrWD8%f zNhZuW@u-|_b4iRst*btxVyEDRxDb-`nCyqRko9<)BFeJCAQiB(eCa_0C5c_O+(ypCq-O)ctqKPOo9X zniAhsK(DCOEFc38zPWyAdGUxhCh;Wo;lXJgp~JDOpGWC&Iz~l*t{U#c0)1Cczy5J= zSwT7N+G6P9D(for1S8wY%00$8CBDpHi`;v zl|^LWvEk_BB=?m*?|X@Q54}xfvi&vp7RbwJ7_&fcqla$$CRYKL@x~zU>co<( zfY&i@B)}a2sL?vM&T2OG7j_<*@J~li^ex*pV9SY6fB8;o%bMM}=PY{8?g7@cVf!Iv z?*cU0-jkes=B^4CxYrw&bqtFl_cWSvoNd~_mAjnSt%?9G)m!5E3js6OyVzZKXF^$Z zW9zQkk?G^{Yn|lvUkbhBgvjCel6qyc+K>YmB7Cs2cdNQw#PG$eFBws(CC%Z@Zudo$u75g|!3or@BRCoebN4WtEZeY;+H^ee{KhWq**tB< z_ys$TK?DBj+7|1AnHl400q1a^y2CFt>Txj@_~h@iq}z*AF0^);3crou->xeAB}m6a z^WMD<#?C7uK(%-`<0%9&63d& zj}QA#ZJcS_qZ!rlQQZvl_}?Maab={9orkn;R`F#b5kT=tz2@(Q z{}A_qq;g?f#DN-pvJLZ{^A1XIF`QOoTo< z-Z-tt&1&0f@va$Juo_y?liy$GZ#&yO@_~!KN(}*D(#tw`p~8{yNdI(I6XkCDW5MA| z(;y??A^D}Ymab_lpoFzo-OUY>#IKI9PQ%+Ux$3mF56+DYP8ZMkGZzh|6&mmD`DGz_ z1$g^MLf?GOv7dS$q!ybsyS(rFl(_}#h9^58g*^W~k=OdNUo%b^w2C=FSlw_=pMu znB;9Y)t-NeAA*C&G+SqMIXSbpZ$w=QZ^%W*V>^!jt+e_OO}dl#F-nBFn|jxDXClX* zojD4Rt}18JXqD$Q=&F@bLTqKx?F%kiNzGTf!oke)*oNO+PuBn}3rnOrk8)b>1yP?C zrB}$1Qq22)eEp=`f1QJ8V{U9|V{8oQ`6ITR<1 z`TLFbOS1%lHbWx6r)dVesOJ~hSWHGKs+A&YQQT5zoUN}a-Y7P0j1+Vg0T*2aW_qL+ zpALzku|n+Hgd3)%X7gS`qWa>AY0C=SlKlbrP$k9FqgPhV z(EV9q=MV8E!NNhD)`cI0+MDOjPXwIM&U!F#9?}yd6OBtr$s?y-x8X)-)lBRIdD=Hh z*=NFA$g(?5P&zNCUOa2#`nxVT9F$4g^6`+WjrVdYRq1PlS8d|^F!x?vhI`QgIq^#E z-OEd1=^;ygF0O%XdU{~_@e(cs2+%B8ax{MSX2$dmI7#=J(oB$4^}_-3bmZ)u-{ zIn`lE{02ZX{b6q2bThk;LEN)wKXxO2%i%{@P*yV(zSr+jc*2(hEAoC2fopdi{-rX6 ztYMdEF{_-m!-8~`Z>4{(>7+-KNz3^a0&SRcu#s;h`RPAeM;$3Ek{pzK0h^`w3Qc#DF70b+am@v|~?YO-To7ieVuS7sWfSa;V`x-2EowvGsej_v<-;57XE>$1~n#LE-BUxo-NmO`;*GuYuO6=E7FN zthtAgqUD~(%noIo_lk-vgk&6c{;%z=h9t;vTnzVpbCHdQPy_82f}K{H5Z)Q*anUV5 zzv&y5NEuo9DfDuwAycqT{aEhg3D=C>nU6va5&s;J_>I{R?wO=;MZEEza$)Fc4y5 z;H;0sV82(gqzs7qM~}I+=Msf_cn@roxwdNTGT zmeWzl%}_4t$5aq>A1{4 z8}TXRL!=;tXVuh2L{FFPTgSnN8NDVIGD>=n2Zn###ovEShV~(7xJ(9PJ1Jpn#e9w# zI2CLQySj?|L)m?}-xE$>(6IjHVA?ZT08&w~Y_K;VgW*Wm;Ed}pD(&nW)eGSMGft)p z*KaPwhxhX7a0VNUG$^02D^653q_3wNxG}@HPJ{bNlA5Y*qen z8l{)Ac>zEh@h2Mg?N6%iThSs_l&;B7jGA|UXYJ@NV|_Rs??ytJND{8J z*7L6sf6vHw_ga!wCdZK!)#+f$1q_?La;xV6?eJ|C_IR;U*`8Z|l^RSw?uyV0KIf|- zOn^?ZPA5$VhrF=&DryFU6^OX$8}cJl-EGfVJQtTI{7;VV<<)^e)fl$82p92x5^!^M z$W+VJ5c8s3m{=Xj)gOV_PGoUetp6TXm1~fP7xzO2Dq%30y7S|I-ehk>{?qA8Lff{y z#Mo=?w}k1c0Tr=#DqYlp!-tSzuK%>=EDlm3lK#{n#T_Qe_q9~{#`m`fgv2Qc?>{v; zwjtG3DZV?ic@yHC-UQD7bn&EKZ!F}Zi6hV*Ab8^Zr>cpsA~$dLuYF#eb{P#w$$(a9 zmjKbdTM`D`P3(?m|L4o!1wGhCM_f^vNEoENi2f(#r>RuZdI?D^LlMWGe{sN*`Ubpf zjl78+7}2WWsDmK&GVA#tDL-o1n5DljWy9E0^}~VupI3kXB@2`(G39{^vwIGqDzbP> z1yjAFUAa?-XZesL-Y)_{sW2D&ugOTlpJTY~gi z@hqUT_J{e{-}nCa3hme=#O zh{n{TuUb%N*lN*XL)?srEc33*VNF^@2-%oz25shRvh07|q7`7$7a(-@X~{Fz#jS*d zy@qp2dU-gC4O=SCoXH$;G6HdwrKTx35VRlCUNp*YLVx^ku18du{&L1Pf>apLONeED z2i0(EoMF^|&08s?zF^qyLQQ$vD?{miy{R8K?ABcSDhKwPjLziAld*}ab-E?z=ZI7@ z9|8@sdV#P9tdUe`=H$Vok4%BY73w7pDB?}Urv(K6wZw#=wz4Jnhd)CRQWVyT z+?_-Lo31TWmQAM?!YeZIv3`w?%)*@n$g7HHKaWcO4Do;=4&u=CUsf zWrW{Wp3S$lmuf-79 zV8q7@lEH^HBO6cazGKOmuN%XdfcPg$lSkQZ#n_?3gf>~M?D=&>Db5hZ3%|XO$kRUN1(9#J8MbF$KmAFn?O)5Gx-?8K2H>BW;s7yYN&Y31%Yg&XOMByPwU zqY14QhIjJ2}|_j!Zp$0lRFeF z{--ROnCsb$$T2fmqdG)ZNO-CGLoA?k(*&&8Z4a-Aag@~Ou&2benF9E8!+i;j|EiIr zI8IL!DnZ_9Grb^6s?Tp`di4t)riThk$=Ea(AsIY4RqrI?C)|hAhGa$D;Z@2B(GW<}OF;8YC3lbPZ>Vww;{>!>q+Wt{> zDBZQ;fw8z}lHE_=Os#ay02mGSmY_w@7X%@-wC`oVnFnTLG}XppU2}VGKX>aV(#N~t zEm~#{v;Q{&mIhg-@&~(QC}8bY9MSz5H{<3V zHzZ+{OCcbVUbl$umi@RDj1wrZ(es_%*GjjpK~yIeHob1b7+S@df_9L8^oY<2tR_Oi zaySYIlS-CiaanUsUrAr9H0%&*(e6Elmd#A_eZd#be?J5s+@pa29cWRRejx<-l^NPT z*oI%AwB0PNFJiyDgXT1gk=|Gu_&KCQP06u_P_z&v4@&DR<*#A7u&)!oVea+L=iYaf zzrXo`FW-|DG~xQRX&Rb^bR2V6UR$|^v|9NW6HJupDo1xnv!#b0N%yu~$vxf&FLp7f zAVlLOK3_ELsJkByM=n3H7rzak1i?DviP~KGc9#6{Z$P4IEWcdl4BgR8BWK)PyWz2jSx+#6f~Cr-I08y zgXUA0wrOrqx~XI{u(%zwo7Qu@_pn`v1EFk2V0h;j0{%N)kUSL~G&Rp&hw6waYkdc& zs;{V7?(Dnf!C540(<0$hZr!>cpF7br8S8QV3YYTdN)%=Ff zy|uks+8Yi`Lp>HOrk--uN^>}ShlO{5R@lwLpE3*q>VZ)&uHhxwDmN=gg`aH!F*49S zzm=7JCyiD%ZYZ1*!$68bAshdF*Fij3&?AA_v>4Z#paH7<+py{W(H#dxx{Nha7a*!@- zn@9B~WlM*!kUnchXf8G+JnMBxS;TA}76r~RwQe-homs>pMzeWFE03i->J=8P*tf{G z6lFn8?m1D62ZZ;PLmHkWoj${6+2}~HL8Jz>srK4Q3+Yn-^i{?}iW#}bwms|0gTwZ} zH&qO9+6!o>UK??O1|W}W{GM;5qg2ftIDE!!^?LR8gMF9NZ1C7S6rWEm6ia$0e+I@aV*+ zhm3i{i6RNB7u!lOdtN+C(Yp5GqJ*uB*;?_cV$WY+heGZa>dx>Vj?VrKY){BpLRodj zT<+E8S_r9*7}mN32BS0o_rgVuxI`c6GvRAXHv^yYq^%bfb6s}(GOpvsixB}18ekR; z0|RnnnBgJ3{rF<-JQLUIt4xeA^kQj2gD)b-2bBkwX_T1V4yhp#Rt z+;HtqIrPkgwCDWVL2l~*b6Fts6|9-T+U}?FK0Q9qg2Se@t`Bc=p9=mU^D^LT;gb0&oDa0X>}4cK-qOAt8N0sF=(4 zsl4EsoY$XUbe6)>jHC`MecLS^*z#^A3D(N$p&R>{xR2%+Fz>ZNCG!X>(ieSrjr=}> z-L~SXek(fZ2PjW5O#nh5&B@TZt&JAG)K=k+1rVJIi$JFAh0G@^2Yy0N&N@!`? ziB5GQBEyDHpcq8cDC>Jj%q~WNbKZ{tg?mI5{c3Dh1t8}(VG&57d=>(iLU=vb)d>BU zxHYD`f70|*?S4`FbkFp|8iyeXYW0^fc<7gE?e~3l$~OMqRv9O2L<=^_)No)B_v+*+ zh2qn0u!cNs9JfDw5Hi1UV%nd#TnT8A@g7VWN4^#5t@un@`b+I$BblFa`GwWt z%*Wn%WU$5pIVe0)4Syb;2C;Hhjvv$+Ip#PQ&aro#bvmvbei*M@W7a$OppLr^W5+=L zi}-}SunP6ysUiZGr@W26(lb!PIl|OkrJpN z5*x5|fuMws-lTlDBD(KdYy6yrOIo}hq}xljl|Fl_N7E`MH=NscQXHh-pK=@P!C%R5 zxHA#sz#1@PTfFp`KWx5gNJOLw%7*tR00pGT*oL(E)wos!b}r^+v#riUwq~XRY2foR zf%?#LG_`N`u^YY*ciNtZkbcrf837ZCDf1diq#N5p|AO}@$76KD*XVBZ7eB9>5)liY z;|5~k(jh7i!HVTI?ZJ17?p*wo0Oedv3$?`SQ9uiYzBgW*kv!W@I~07)_mSUD3Dma} zKoAT36xyIE7SH@|{Xk*xfaD=1W}OIhIfMh{78`uA9yJJ7m~d?=(8mfPW(OlOhz23A z0f?OGs_=Z%BXxi*?lV=&*TeDhm)m!eTCb8nes29Dh=%J?;tECnK?9 zM3KS0hWGtOmyYYyME7R9Nv+*TW(u}A?us4t1W>@UemACf3vtG<(c&ahvy->^SoB&i zK8>xa@RKOE((T(4EJ3-|J<`4_QXf(;wrDW6G=Y?G{x7T*1l@v1pY8gMjeOdaSp#(% z`IGsg646^ApcE!vAkDKp0hk1tg;#gu*b~kyxI&ksy>%WR{9>vm!JRSZ*7ns6Pq#sH zs!BDYig7NKX+aoIE6vYc`!HbS!sZgAL{|=8c*C#T5kgAhr=-PHZIYXt8nNRx?NmzS zPr<7DPCg_xqR>3Yj)nIAZ)DD$yvp9=$F$uP+T{=+p7c}^}^R03OaJ| zuTKd!JOasK#YwpdjA3N>=Ek@zXEc8DB?hdXq^||IayIW@X+l zHQ<4M3HgTE1~_0JCVd_Vc9{!BE0gYY#5jt5xSe@Dc!%7YihNFtG4Fynij z(d^jMs)os8dvPxn`K-xQ47>XxJ*cND<+ATOiZb+fR_WF+>zM~5_34~yB*il8l#z@Q z^Ocp{*$d-?WsGs2*44z5=`mjHR)SmB4W8kNj=kzHZ-oE8c>cMA`k}1`8-kB}O`@Lc zjomxB8S2>Eb-yPvArR|)&3Uv$XnSQlPp@>Py~j?V$RVs<_XQr-r>a9t?jNtW47}kg%*x9$mrP2XC^z(326`{ zONjE%-^ImK?G%jOG9p_eD>y%%EOlT$dR;{gP@=l3P(F(V{`!O4Ow@20)wGZW=TG8^ zdRx_PoIj};);Rr%yJYbdb60_;N#a%+>J^&JWE2HMo9>qjTU7GKYW;6g=aJ;*FiXz zjSRT@r=bLLkW%212=r11-N0W(9wb2^h*q+aZ`6(8&B+shJL*j`FZYNgeR#r}_~>X6 z&)L@1lk})rX5sUcjDdmG84CqF z-ry@3C{YMqDD7ysuisl=w!liDiJ`{W6#5TLA9R@2wN&xTHQ1dRwPr0emGkA`dLo~` z>3u1|n!fS;1rLB2O$P`PRiUMLU6iwTaO>K$a%PW&vzk@+78YMT;7{mRw5?s+42rQE zU=^@aG*lzn@D7ygHI2HLS32pK_k3uV&)vHcpEq}3bqCO`=zoVo9Z%N$w!imsU_#fp zea>i!gsADnn;Bm6V&dRPy`=eSor8j;?)G4z{(4H%=8dET-fM#JuP!QyIbSyr7H-bQriOP&g7n4*-uNo*N+rHGlZv;_Vb&-NJoZfxe!-VJ7ZibViSIH zb8pSEyS~#YU!HxUGQ2_fZITnjiYJWFj@BOBVPyO)pyw+y92TVVi+49dICIVkyf5?q zom<_)L7|R5|3O{5l;MpJLlipMv*cE>5Fq)FVV$DZbsW&B$&v zZH{k!?{L$8rXd*VZCpnqL--{8$`jV%1miV>?yBl?TwgRG6)-4a5ok8+*M~^^_C8W1aT5?zn zD@?<%U+_|tmmb=TA{a(c4d?wF%z}6|Qw{0^&Z`?*d)gT#)@jGp`t^XvrIszI>W$c$ zqo)EMyhOB^G-8@pdQWdJ8NqYQz+%)RY>sF}ZiSs}den+ksGTuf@8{1KFCcs}5$-D@ zl7xSPK2{fB+1olt4)azM=d#+!PsRO2T<(5$$`M(<*L6ax$}TI>L@^f~_qRVTRb{;x z!5_IFO}6~QNDVCn0-<%2(sna9akCIKbFl#bK)5(Kd0094SUI`WIr#;-cm%omnK`%x zIXEiRZNL6MFW5Vp+gN)2|1WR|z+T`G5ai_h-wQXg