From b8da5919a255aa95cfd9bfd8e5ad5191d15aab20 Mon Sep 17 00:00:00 2001 From: itsmanasdash Date: Sun, 23 Aug 2026 16:53:20 +0530 Subject: [PATCH] Final Evaluation Blog Post --- _config.yml | 7 ++ ...nostr-storage-orchestrator-and-local-ai.md | 61 ++++++++++++++++++ assets/images/itsmanas.jpg | Bin 0 -> 50079 bytes 3 files changed, 68 insertions(+) create mode 100644 _posts/2026-08-21-nostr-storage-orchestrator-and-local-ai.md create mode 100644 assets/images/itsmanas.jpg diff --git a/_config.yml b/_config.yml index 192cf88be6..ac3a33ae88 100644 --- a/_config.yml +++ b/_config.yml @@ -1081,6 +1081,13 @@ authors: twitter: "https://x.com/0xSuryanshHere" description: "Summer of Bitcoin Batch of 2026, worked on Infrastructure Automation & Monitoring Dashboard (Bitcoin-Fuzz)" + Manas: + name: "Manas" + display_name: "Manas" + avatar: "assets/images/itsmanas.jpg" + twitter: "https://x.com/itsmanasdash" + description: "Summer of Bitcoin Batch of 2026, worked on Nostr storage infrastructure and local AI inference" + # Plugins plugins: - jekyll-paginate diff --git a/_posts/2026-08-21-nostr-storage-orchestrator-and-local-ai.md b/_posts/2026-08-21-nostr-storage-orchestrator-and-local-ai.md new file mode 100644 index 0000000000..19301f1300 --- /dev/null +++ b/_posts/2026-08-21-nostr-storage-orchestrator-and-local-ai.md @@ -0,0 +1,61 @@ +--- +layout: post +title: "Building a Storage Bridge for Nostr: The nostr-storage-orchestrator" +date: 2026-08-21 +author: Manas +categories: [Nostr, AI] +image: ../assets/images/blog_content/nostr-storage-orchestrator.png +--- + +Many Nostr applications decentralize identity and messaging, then quietly reintroduce centralization at the storage layer. An app might sign data with a user's key and publish events over Nostr, but still depend on a single relay or file server to stay online. If that backend goes down, the application's data path becomes fragile — even though the protocol around it is decentralized. + +During Summer of Bitcoin 2026, I worked on closing that gap. My main project was local AI: moving inference out of a centralized API and running it directly in the browser. Alongside that, I also worked on [nostr-storage-orchestrator](https://github.com/formstr-hq/nostr-storage-orchestrator), a Nostr-aware proxy that connects clients to both Nostr relays and Blossom blob servers. + +## Turning spare machine capacity into relay and storage space + +The orchestrator's other effect is on who can afford to host in the first place. Paired with a Nostr VPN, it lets someone turn their own machine into a relay and a Blossom host, contributing storage space to the network without provisioning cloud infrastructure or registering a domain. No cloud bill, no domain to manage — just a machine you already have, exposed and serving relay and Blossom traffic. + +That matters for cost as much as for topology. Skipping cloud infra and domains makes hosting cheaper for the person running the node, and a network with more of those small, independently run nodes is more robust than one propped up by a handful of large hosted providers. Every additional relay or Blossom host is one more place data can live, and one fewer single point of failure for the network as a whole. + +## How the proxy routes a request + +The Blossom path begins with a Nostr-signed authorization event attached to the HTTP request. The proxy validates that event, resolves the user's public identity, checks upload and quota rules, and selects healthy Blossom backends. It uploads the blob to as many backends as the configured replication plan requires, then records the blob's metadata and storage usage through an internal database API. + +The relay path follows the same separation of concerns over WebSockets. It runs a NIP-42-style authentication challenge, validates signed `EVENT` writes, forwards `REQ` subscriptions, and publishes accepted events to healthy backend relays. Metadata updates go through the internal database service, while authentication, ownership, duplicate handling, and quota decisions stay in the public-facing proxy. + +Conceptually, the flow looks like this: + +```text +client -> auth and protocol validation -> healthy backend selection + -> Blossom blob servers or Nostr relays + -> internal metadata and usage accounting +``` + +This doesn't magically make any single backend impossible to fail, and replicating an event or blob across multiple backends is a capability the client application has to actually use — it depends on whether the app takes advantage of it. What the proxy does provide is a single relay endpoint from the client's point of view: an app connects to one WebSocket URL, and under the hood the proxy can write the same event out to several backend relays (or the same blob to several Blossom servers), so one backend going down doesn't cost you your data. That's the practical resilience gain: clients are no longer tied to the uptime or implementation details of any one relay or blob host. + +## What this changes for developers + +Without a proxy layer, every application has to solve authentication, backend health, replication, quota accounting, and failure handling on its own. Consolidating those responsibilities into one open-source orchestrator lowers the barrier to building Nostr applications that need durable storage. It also gives storage operators a clear way to contribute capacity while keeping the client-facing protocol familiar. + +For the broader network, combining relays and Blossom matters because decentralization should cover both the event graph and the files attached to it. A signed event isn't very useful if the content it points to survives on only one machine. + +## A second track: local AI with GGUF models + +I applied the same idea to AI features: remove a mandatory centralized service from the critical path. Using the `@wllama/wllama` package, GGUF models can be loaded and run directly in the browser — on WebGPU when it's available, falling back to WebAssembly otherwise. Because inference happens on-device, an app can offer AI features without sending form content or writing context to a hosted API, and without asking users to separately install and run something like Ollama just to get local inference working. + +In [nostr-docs PR #59](https://github.com/formstr-hq/nostr-docs/pull/59), I added this Wllama-based browser integration for loading GGUF models. The work included local text suggestions and corrections, capability feedback, a mobile-friendly in-memory fallback when browser storage is unavailable, and tests covering model loading and feature toggling. [PR #60](https://github.com/formstr-hq/nostr-docs/pull/60) continued this track with local proofreading and more flexible GGUF model selection. + +I then carried the same inference path into a real form-building workflow with [nostr-forms PR #504](https://github.com/formstr-hq/nostr-forms/pull/504). The integration lets a user choose the local Wllama provider, load a GGUF file, and generate form content in the browser. The model weights, prompts, and generated content stay on the user's device throughout — the LLM serves every request locally, so the application no longer needs a centralized inference API, and users get privacy and data integrity without any extra setup. + +## What I learned and what comes next + +Storage orchestration and local inference look like separate projects, but they taught me the same lesson: decentralization only becomes meaningful when users can replace infrastructure without rewriting the application. Protocol-compatible boundaries are what make that possible. + +Next, I want to keep improving deployment ergonomics, backend observability, and the local-model experience across different devices. If you're building on Nostr, try the [storage orchestrator](https://github.com/formstr-hq/nostr-storage-orchestrator), test it against your own relay or Blossom server, and tell me what breaks. Contributions and review are also welcome on [nostr-docs](https://github.com/formstr-hq/nostr-docs) and [nostr-forms](https://github.com/formstr-hq/nostr-forms). The best way to make these tools resilient is to have more people run, inspect, and improve them. + +This is a first version, and feedback is what makes it better — try it out and tell me what's missing or wrong. + +## Links + +* [Formstr on GitHub](https://github.com/formstr-hq/) +* [More about Formstr](https://about.formstr.app/) \ No newline at end of file diff --git a/assets/images/itsmanas.jpg b/assets/images/itsmanas.jpg new file mode 100644 index 0000000000000000000000000000000000000000..445ff5bb5dfb6d2eec1e38275eb7712bca052fde GIT binary patch literal 50079 zcmb5UV{~QD6E=FniEZ1q?c~J9#I}t|GO=yjwr!r+c4op!GD+sm@4xPS@8?_l!(MB5 zuddo%)m_!k)Bo20?E_Hcq-3Q4U|?VXnXd=%Zwnv}fQE#EhJu8KhJya~4H^ax1r81t z77ham836?w0|y5i0}Bg}kdhb=pPT>-i-duMoQj&3juw}gk%f_lg_4Gr=D$I}zJ2=! z2Lp!=2Zv6BhlNM;|6BeI0Z?JU7r;dzz{mjLs9+GNVE;w{1ONay#Fw>Tfd4CC;1FN- zeuMdH#r?14Oa5;g0Pw%of13aV2rvLR3Ixj6muC{w0sv`b3_idJu|&^=GOksaaaM3+ z|35i}De1oE`MW2CWq9g;r-@Na@0aUhk8?pMK-lI;S&>Q>A#^b!} zzFoZW>1UwmqoKy{-0J6}`8QlOFa)#&32WsADi|wtn3%6|gZ|Tk2mSR-T>kZ2k4%Zf3Cz>-O-~A*nvR(F zsM*!qh?~%IFN0c0b+zDfgfS*1gH(kA%0dtTl0_s8jH(1JCUH`Rq6AH~@$TW>W}01tPK8SpRG*$}KPuj^ zC9qO;d6R~dCDRI5do`70D|g(*8tX1DD&aV(qWe(l8l#vl9kM4F-}Ta89$!!~r(H>@ zl0?Q5Winv%<&2b6(gFZFBp4S&k~OWAc#?9sk_2CPn5(X00xsV?erUZI(Z&U1W>FRq|r>B@QZP)R<8yQP?psopa6E(oBQNhfO&bg z$)Z6t{8d&3?eMZh1aISBvVF%@j>%Sa!+0^b%tm(8%qq=Bnx|k-#~be&Q(PFK z`Bt8_#EF4i+o(nxE^{jF6SL=QcPVj!R`B!vW=ZLn|4Je%DZgGUA}~flg)GTH9=~|g z{p&aUS1$5(zxf4Ud?Bs;_K_x!q_pkkT6233$s#CYpiZ&i{Yi>BmLYJQzj5>ts3rO0 zTJxaVS%wzYT;$z?&(149m-lI(X4%vd3rZ9B(81UDr|fg6*PBnC+q>=6+5a0*_r525 zVUI;8M^=(b70MDZL=Mw{G6du&C?=g_ll5x{`MFFDZg@oL>73wF#&J!%Ni@y#U8im1 zofNsxF{Y|ida&-~uEjA;4!M`m_f>f=+h~+ymi>&R+$bmeX~sZGVR!94JN<@npVv$g zOje2tsA7|l3N1+mP*RY9v%w^Zn>MzR9&bGS<;i1Te4S1jH?W>BW&o9Jg2(xwxBZnORoipYJdUygigq>)+aDNj#jZ09`q$zvrC5Z6;|hlW%_b zKFpufT4aT0g=R=tt6GWB;*x$jG#Qcw&x4obVY{z9sPn#wFfp`P*VTHKp(ZvYW@+m3 zxHWbtc13K_z1BAA^vsP`&^4R1ny8<-JooUYmTZ#Ej;SMiZLp)@#H_dBo9=ioq<|Ujb8PT)SS!ocJLR52pI9pChRp5vy-L;P!=FbFa}@rQ z8V*)jkfXA}cwhxUa4P`h5IMLEiLB@Y@1qTx`t-$>*FFr^|D6m6p|#lq}(Of zQJGLFAJywCUrw!wo{Nu;`(40~>DjxFo#v)jS028+Ux|l&yt@vYkLwo)9Xol<-x1|{ zT?4{@u8wPMZjGgn#ak+(KYb^E6f+%EvgAJNmq|0#Ml1Pm*9QMuy$ECo5d+qt2}!U0 z^|Sgy?aW$9hZUKK3U7U7ZW*?e5#={qj8s7_AHZ_P74$ zuj%UqGe9v4X@t>_2rB@}0)RAB1YZHH%--3ZIr0PfIK_=L(|)oWx2W?(@2a15br@dv z)<+m>^JvS_{>j1gsJESxM`(G}*WMV625KU!p8NcjFy?VqY8&=|V`ZnFo>=Q-&9mU) z-T$!5K6R|W+Yk9ylF{#f0I9pi>jZHCK%E8pYvcIRO9B8VK`cY$pzS_s9rkB7wCf?> z3=qmmUwA&7uISpRA~#rR);WLm@%y##p5L$s3y@>Wa`JWC$pvVG8G+?XP}7D4xX$T; zu9=9l{h3d^u9DV;-brtJus5||e(m+iKY3G*-q32Ja6kY>i~wKRUjYS>1%PQ8qY84S zpIy0lTbcevjeOj%`|7XrxQBV86vgcRAn>?0^Yq=tVbAj+-^`Ost1>fkgLcR|T8r-b zmv`7>526_W0HdJCPw?@w_T{v?2W-FWi>t>YhgoDn;gZRk(obN z2s*LKr*k%!Zq_WlM=S}6=ksp6$Y7Q2MeKDA{*K3ix;?M{$4?UgBfx-l5DE+A0t6%g zKotrIiwI(YhGKz6V6~SeF#=0A`Zgxif48~+#|!);Jo`8xdVFzqW2m%WC0pWYz?QbC zW_5Ke6il9(v47ICb}M_=SOYZc`t}~rUl(Y9{ptP4cl2yJ{T6{|17HEbfJGR6MF$Fi z1dKzH6*`v%Gl(l=WWfpt;^^rURqH+jWXzRt>&%dTl@pJC^XjAJ%5cl9(4k;rg@E-^ z+2!MA2SV3?v#;kr^ZxwvP5*G)b4>8Ni%{d$KLGz5uh7){KR`hWbir3?@U;d-pip4I z0HWnafK3|~92V;kF&0?A@T;Dzmmbg4WdUY#j*=5TfnMILou_=^cK$bop7fH;C2HfS zcwEM%a5X8U6mytRin5n&hkSOwpluYm50Gc%F?fhJ5Io^+CmU*3SK^?DIg|@@3zgKF8Z$+^hve0Jt(h1hxQ3 z0tTJIF$NgWT!zkK0RW7c(|+CSrW}`x#i55CYBbN5rE;xMepp+L7i~z%48Y8!2{N+H zKD6$L`zZ<+9y+Gf#I%oE&-XNC`qI-r=R#oMea#h^@)Ce1O9DKy1VFM3oiTvJX@mek zunrDns#d!t!k!yBIqJ{0vxJqr&4wp1hkDW}^>KM(uM2&{@&4l~cWN)gw{SUh>h}7L zELX=;(G$LRV2^&=vX75rId5)n?Gx-t*56c#1Po9B04EIwlURZ+MInKSfUu4MYe6il znLc57?q@!^|3)y?R`Ui|5u3Dn{R6+cY1~|)@A}V*0fE|FU*6qgV?BNPg0rQ~v(Y2N zEzGWM^xENBSsiu7L4D5t^UKzm+X3T!8X}8)i+Q)!d0+QIsQ=?@`eIWDtOx)A1b_oX zV5|W!0IrNV;^cbIQ$NA3+&&LA71W8QA)H1EdHYT`oa@lB12XK@K?7jAp=3#QTi4TW z{J>u#gF6*F_SJszf$PR9I_@0a?#|_MQ>X?d*swP~7h^_a4SO>W^S&(t12pC4jSuX7 zV&l_CfZSKCf7MZdFMlC%o1SWTl0&+43YpQ@5=ofWOY_z~Nu-I9M!+amGdP*15a_0? zI%_5*$Hu877Pp@XG7H^r;GET_f#No&{ZA0^n`TeymDp@2&!?-~liRhFmL9I|H$Nwj zTH}dn*OnB$H!8(uErsjvvYUlkw_fr!h3cI6Un`&hkV`NaUk0Qf21>uS$|=V(^x`1| zK`21O78rqBDVS-a=ek5DU`vo1mF8_RZ3U&DZ+HhJ=LhJnsPC+~F4>(`%5@0E&*T)T z+#GM*2oPBGb@!hVouxbE&jv&X_enGIcHg?d99lcNpFU0*S?VcL)*y zS;}C5e1->IcGXiF0J`@3$PYW4yC{0(_%;_j~Al(fHt118jNb-1;Q+Y20h zta+PPI_x_YjKHk`0Eywtl$S`5bk?ov3WtGWxh@1|s5oSzm=vt62xJ_HGQc0^#x`}5 zyUW9dx&Gj|ZV!*7Xs7qz>!jpqV(i3t&6=+LW0fVfaiCB2pTvx-S#6UhN-8Q|;qW*r2sfUb~G zLP-*hN{zC0?MHO|YlEimd(5XE$lKo7XOH}R89Qff_F~#}+M!wK4|HbbGX4g~Nv^8R zBm_Z`F(ysHa_P?gABMN*Pi{*Nph$)v8u$X-G~4A&1YRdCHs)q)HAzS`4gd_bFbF~n zhgLKVHd2P(gfKPS668g+%J=lXR&;1tMpqlJ#L40IyHzqVb~X+nHHB@cld8tIaWlgr z2vQfo5O0|XYQES_AM+JhfI&x|Zz{WF-;*>{*bv919W#=l5Hq)#nuHAk!zE?G8T`r) zC(sJutSPXSG-^K#vO2rim+(6tdLC7<-L#C9uY-Ab$()kx%N(^>R%u|IlfbHpu6?Sv zKOjzpl|nfaz+U$h?KR+-%hF=jFeZ!CRB^zYIw7f1!6^<0ti;8g5|*KGi%8JPhR`F< zfQ@L%@V4j7Z0>2g)k%}0v2tWNIyiH%0WrSrtRbWSos<#W>8mpL-u?kbgf^2PI242h z4RJ3Fuone2LFZy%i^hG zp2P$*uBjt4DVEFD)kL}R#9ZR{cLn&tV*Z=7_z>rh>GrHa!Yn1O9wjA&Y9kAVIrzj> z%NL+ywcO<2=}gM@*BIgEYtXlm#+%6{lbGTtMK&D-?Uq~ZpwI#xY!yy; zm{u}|h!ZT?F)>w17cxB>IUPBsA@rIEGCF0f?Jd`(R$E)TWvNDjzw9yxxcWf}3Z<nRfm`SaRT9nr{#-ENt3gn+s#dFDkO}Iy{Zp zfx24Wsb`apTEm=}Bif6Ut9GFhMcfO=-9CtC#eDuY$fG-guHSB%N0eEor5v(6p_cGC z(Xdo}Oa)DyMRHuI=;&l}Y-W&X&WUI$Om4ek?I=LF&8JzQLTe#FNHirDgv;_lkW_&4n5N0)>3TO?a#hl68lA)Q@XGle-3$o@B)=!Jn|QU#)bj_ zg8+vDhk^wE4`=%?U4H>?kf=~7Xr!zpY|!XrBBB^9?8@X~nBrIzlpLI2&>GBFKQJip zKWbX4LwZrl9Zg+n;(sSEjef|-Ej03vI5WS3iI1>WICtTyJDSywG-_L=I*@8;w~#l* zgmvY~o?l$hkynNMK|f4Uu2I5I^BkuDV@I_!GF`D3AJM4Hqi`=7W!XrTXlcwPai)UbzQ9l7ZsBj|a9@ ztKlnRG;sF*0m#b@?|IaEWH`A;5;g?_BBv0f;v7LH89C|*zEyW}SX>_}G`Z@M``jJT9&$6VOUD zdgQt$Eo5yLF~}>gm5ABcMb1{1@dtEJzEMmCEVw|WnSs0n@*0lTqG0;Q}c z^5HQvb2oyVX;Ly*K4y1?iJZ47-rt>0HQq^|+1MjT1#v}1vZvt3xe^t{T}-HLvV>In zX)RI&A2w7Qp<%)B@vyT?u|p~P=Jq)ZqLX14*Im{m*N;+08!B4ftbZ ziTOoi&YH?>vcv*C%<&ONO37kWCps)v$dr>sr>5o97(2g?lr=(0fj#fo4lUHQcA@g|# zl3SG^Lr@egZiw~D;Wp6okH=(R)>^y#knJr;@Y2xu*_6|gcEmaK6=1Zf%yMz{Z~DZ< za3dX6R6VK`riQr5&273SZYU+5keb_hBF;X!*qfO09*M1tmgSFQgFT%4 z2l%e*YC3K3^JuZR*7f_I%e%CJgpfs~z!2Fm3A%~KowB%r4x`;W(}EzX1n966sDSMj zcDe~r+Cj|Vd9g&hedR5|Plb6hR7*~ATsmu;!VMW&d^Ib}DcR}2vQ{OjcQ3@sskpMC zB@{p8$tz6b-MDG&G=#=IuqJ(z0EUsrkD_GhP^XKxkT97&$@r6;&gnJbCpX1A1riU% zcYhptE`9O>GyVZ27$*ux92d^U%`v(_i5nP*_b=ig9tGZP3{#W)6sELqYDX*1R4-|m zSp3qYrXgF`d1Dh(^T<@~1m$X?(HdEPNNrkb`)+PAqt!sOOG+43g6v6^;!7tb{=v!j zKsctm-Cc65nA=x_N^aqhor;DuSO`j0X*W^hzS~=U?1~)|5qgB-;`%T@@Y>3jCk~sm zayXyhWTc81<42>mwA>2&TR+)I@A~NvgPP;A-(iYeuwj$iel*?NcAFNLzH#?m8<1L1 z{GA-@>73`bR;%d6(!#+-?xRq$B~{QzyGQHcOQPiRM8WudCSj87(HB7ce%EBgfg3oX ziP7b>Ag`#&gKx}Cly`QSb70K-$ zKx`(i$sUVg%Rt94Pw1=cyYO83eRII4y!QC?-+9NW)_Vsfd_BAM9&VKrlkfLsFLShU zD{W7A>%|r>o0)FI)ClW*V3*?wcO@b)!Y=QDeioa-rv8TMYU3?c5aeo(k$KLhG z%)7^G2+`0(IN6~>x(LTJVGlV{^BX{VMX{4wAtIAex%l8QY&JJwDN3g|-H5t$2yZjr zOh|HUKpnjHTr+R~W_gKuBBH2zixF{?-Rw}rQk=}`zB2=Hp$_Ty%qp6v%s&uiCr3em z&Y;T$gbag=q2`~yD|7m_PKkswDxOpxAT6Q8{m$96`IuRJZ9L2fbwf$gSK*!9oZTU2 zk|rJL?c^*Su!=E(1Ahv#wg)OWda$Jr~L+)xOTSLTkPf(4VN6Wm!3*v6uoIYFWl_0%Hwn5 zarwLQ=()JQYfJ7J^lE563`nO#^{gQ>rFNMc5`fLN3eoe?99Nf>-#lTWaW1hH6tYhy-op9c6V@I5Rc%-Q&HdTy%M1Zb4jyiJ zxnp1|f~74D)}bvQuEsS0-q4wjnW-9eq{K%LuPCZ`Igk_&HN1KB$wfWM$|B*TH#}%j zif7A<|1LhRzxIueQxs>;2)`RUyr6Jsi;Xzg24rl(2X1!Q_yc!N)F()bnORg`TS1S% zcV!ME>k>fnEF0Y6q&wkkw;?uY15Qiz<{^hv!In+w=p`d8yan3kroS&UO6(T@dM?Ap z1<=(rf49rv#^*o!+n??UdAywkoi-nd{q`H=a>4Z#%D!)^g|kq4klD7 zj1(hzO-(f`vb;78&z`J3I3u1^1r;si6*mf*Ea)U`Y_htiYX;7TucGQ;#A$+FlK--S zx7gP_ejB7P;r;yOee`lak0diWlv$Y8(Q0*)yK{V z&IUl~8<^TOtVl6>v0256mzg{(QH94?NwPv;h)2Ji>|*o?tezgUDrUTcjK%yGx$mYj z_7A`W%-g$*4Yo3K4GD6!zBnv%?7YL&$@Aj}IOMn|E*sfnss7>j5bmgiTHj^R7ex)- zHSw}BjUKtPW#c-OI`>1(G>>D&S5{kUlDMYr>L14{l)8E)ejZ@}&lAK{x*7Q!4=VL8fh@x93%7x4-I(30)2|FLqIFoRtA<(2&@#xI2?Pogotx#avbcA)-U zh7F6T_k6mPMa@Ghx*6@Yc8cNX!IjM=9e2kH74mV_^+=!q!~O3!oYqOb*NXL3W|X;A zk=wm27>nj5sgzfd$j1X1u(Q2D%#sAnqP6}c_n)?Cpo5}Py>-y&)E*bOns zOZ)}tO~vU}8A!_zq$`3X8Tf3J;c7J{%t!86pg1XrG?61bHDp$Y|6Pp9sfv!w^zgg3UcpwBWKwDz7)yZxOp76BJaWZ)1fU!2?uA3{>r##aHV0H zm7wy<@DoRZ@Ju*Kyq&Q9u(DAnfoc3ALhxeG+dPh$uu23o`rzpSXl_mEmo1`MlJSc^ zhU^`ewB;e`KS1rlS4xfbDkF4LkDdWWv9LepQ9rIMHBXgJ z6`{%=>f0i7aH0*I8*k^pHI@m8!`}bIRI?#J=dWi5;Xdou7iNq~XHzh$aVuBh6_4-# z15Eus{|A`<;1VXzjW|2B31o}YE*i07X|TF#^g$O@Q({hL#1uD+X^`dzZVg_5z}@zl z1xEwf)06Z=++vFG58c1(o7_5KL8;plEJhv-lDY9XUX;bpjI%o-;mELzMk#Z3;gScC zhcPhKNadq2g^4Tvfse>_PDu)@RTcC`rfuM?0PyAAVQ{M9mj3L-)Ow+ft8!d!Y_C3N z4cwe2Du43>s;s3IqubINrHouApU9&>fpgg*^hr+7h!?mynFKIphgdXQ;2sYSJU=V7M))O-j9+h9*S-#mB1jgruf+*_7KcxaM-i zI3y-cb>CT9V9bL0$=|viOuhXF}Jh^-LA|azBQ1 zUae(g>;UAZoSvRtNHjFtFEQ5Aw&LQeKJEG70T zVsuWooa%YWC{TE%6vzZFt*t6n)wEHNb8z;9h+2l87N%?2yo9`KsUd!od9Y~~I7N}A7YXYIx1t*G$aiUdiUXcERbt2~nWI*(YdY1l!sb5X4 zdD)fJ!JCM$nt|JpDXR&xO+G4~CzB~BRWwpkI3_`1Hj191;&}(;_ln<}Q$K$mgav&@ z-XPn%lNML{+KK9>J~T?U>tbH_45v8nfUSNKZt=ZZ*u#xZ2VHF{{b)N9>=ZiB*8uLXz3cY#xf!^=Zxt`rmwJnE>~jd@{7SZ+4bwZ$FzQ zngU7pNHeF89nOysAS$>{VOlDulJ9}*x0JseVO+*G1U9^ULLNKPC^2CQMk=pd?gW+q za+%Yo!m>vN4u_o>v1?S~1@ILnQvqj=3?Jo@fh-3s+UOPsZnHHt_{fW^>TGFw(p}cu z3nxkut7-(Q{a0nqO;pEbNa9p3UZ0P`!F({7xNnN!4RT; zuBQEbE266`JQ$|a+~^c;11?Kuf8QzRvW41~+h(LaS^^!o7mzSq^W!IxBh+LGJF96x zv1Ak41kmd~QA*rbo0HcrDwZBwxHue9{YKTNgLUh3efNo&+8TYiPj3H+s%;Oebb{WP z9N3PFC{4?J%p>ttlX3MgRip-jSB+ZcLc^cRB`K!mGNu1m+EoM|bYe<R5Unw~lim43Y;vZ_PS-Z3wrH@Q>f4dW>y80x! zyWvL&#W96w<+&TjEgl-b35&VT_N+0pPOGJUE_c1mepQHSV%KgIyj@}l%W0{&8-$Co zC@Y$ev)K?mm3Yf#KdNl_e17Qs5R8(^hn*qFvCE|4Rn=0Gt6=4+ir>i+Mc~^$CTc0? z`kb&pY(kQ7OeN@3k2Td_-Ing4PZ2ts3$SPd&ou4WAn1UV`)!DIz zc4Wdll_u**xzrI?pc!6L*roXc_9CekMbqI9E^hi;p{FeoH?tgq+txKSOFR|ro0@iX z0JX*jKcyoxVpP9zDB@71&tW=yv!6X=Z~-%=?h%<-zs^Z*aQUr=xPCL@hp#9h zt(EwJHrO=LB#vnZAWjnxGLV#qsy(5LrQ;vPb1 zKgUg;z}ZdBdsP@R%kMA9WT%MM057R#qO^Gss6eM#_}uE_SPD_$POvuwJ;CebC84*y zBS{*0C$nKX6);sl3jvvoM1R`AL|dwjCYj=)5=G2`VW9336Z)wZSEBO`PGkT25hb90=J!fUS@A6xWa}5cfP8) z!%5rB?I+f4yz)tP$TN6I`*7S=X>KplS#|1s7k&jblLm2OkFpTgD(_~=#C3!|lMnt# z?w*k|`0s~Wtz{zVP|z*kJQ1jHamp_%tVl8#U}^r_6L=hRqY)?=mxWwaXs{UYw)Zxr}@X^b4XeGKR|v#3fvj% z;@y%ma58tZg~S~x4iCNAk?G2jVc(PgI=+KVpn~{BUWYi5xoS;IH{k+56rG1(xNzb( z8{yop0G|?Hc#-Hi0e^8KXjeB}*vh|g!82O#*l>*&FKkBu1HAe-iK8t)vuDnhb2q=I=FEd;2YN_noRg z+~wuv`BNw_9ayPgXUg)0C}L{x?~zTLH<{-6?c^4hUmbk$Y8qW$f`G?A_#1?q-jh9M z3-#_lWlv1}nSTlR7sZ=+ZWCIT<}|zg#Wbo3g1P=7T|;UVcM-lw(l}xHd$m0F-2CDE zjpA02y88H;e(yG}7&QB{uI0iB)Vt4Y1cCTu-@bin`PI$puFB>LFj z=&`X&1i$!Faf*nrIekuK!xmnJjyl5v`iS>M*!GMx;qUBU2$x+x`^(64XxHTCX8G{+br z`uc@)rlC&WP82R7nG+m&mRUW4Ww>};juOTa zgxN@bVfr+v0B~>s6eJkb|GgOt2964WLdq(FM#3Vh42e$0reb9LKP3MP^A`qtFywmY zG9>#47}IqBjgP(giCQ08lkf@VASC&+FB}pV;W*Sut9>5@@{P|)f9#rr@R&DS=+sC> z<|KrrTaW5Q)6{hNX*+CC?M$!pcy1LbH__gaZT9FbX+!CJEU80?OQ{e=&;(MpNOUuC zOc5^MuI0HN?xK*@?O86qMNimi(#wmOitIjWG43D9iRc%*9@*B5)*L4uNqD*JlJxaL z#~S|Nd2z^$=q*BCShch5^3@_6eI@(V^w*>}UJX@?l#iuKQ;tJL)2(RHTN3#bW^6AR zm!}ts;*pOLuWsd~rpV;J=sc#{#OIkZi`AP;2m6X{5<9;bJ>7EKavP(*5h3rjPglL0 z!Gi41Y;c+OeFgD>oDNGnzalj$Tu~_(Rx{J&vka5WVWZJ= z-_J{FnU!n0e7~!XGhO*=U$g$e?cQyvkMFLc&DfvMQSGwfO|?!yj(#YHp0!}x{mK4>d~s8J%>tIj1EC*rzbVaEvS`KEDt*y#ev7w!iZx?ZU;82WM?ZIiY~*xwU(pZC z<_+EsvY92x*RHD<^6W|x%8e0aQ503U%=v*b3(e+ySI`~S4dNQfIY#4Pi>&9_6Q_o#IGL+dkdC#1DvW zb0&u;VoFKo!(S>%RDn4Ria6I#>m5YM!2O7WAMQ4-Yw%6&Uz02GMWlTZXVBlEAt9mu zxA6WW(ojiJ&{#zwNyt=;ozclz*hEx+h$)*S7B;fG3@$=p1Rqdvh^r-;x)wFv{T}*% zs5NL|@H^G$5^?Jt-bzHuycSi9M40^9U%OrOxHDC}zus&0@HnJ>>hG0a{{hTb&lh$3 zF`6G*zlWaoc5hnL1yDGWOlKwUIp<03S5#pwLu_>-Qj0~Ho`2t_J{(zZh?{)#Jyncb z@?^KhvKko<`3Fc&IUMrSa`sEtC^!$vmhZbV@8b6s*FaHvtm~FC?c{ae{8o`<`wtK% zEED=Z97j~;Q1c*$0i7;z+&|JW8VErW{YX1v`PY*8w%tiIPEf%h9lSrC_~bFG{YTTI zSB%l2dIp)qdy$+9E*dtva=p0g_njN|KZ)TmZjF6E+!qn|XbRTGwo%-u6Am(H#FxKr zTPX)r@YX?<6$H1;g{l;nkpHs$y~DhjAuMt3gU~T5T*S&h&XZ`s+_kw>@DCtMsY)$7 zBww;vgyWz^#AJ;)+WivmnUT2XUePR_gQL$sHXDHi;al+|z65MA*w(r}@--)h5ke~H zJOq0u!|}FW*m~3mOD?E}lde&F&Pe6Pex-KGsyAYWeSk`3ceJL$p~bahxoXzO78Z3$PtzH&_`^ z-w{&G(>OKKbk=mtgq~Ker;bh0FX*3Jda;3;F#IcF$i$di$wZN+a;` zt2%D_LVF!awQ31`;=1th9?Tcy9`;?qdC=7B>^c(d2yoGGFXGyu;=C~?16?9kp>PulE$=)VNBHMuz{X4Yiws!bMvrd$9Fd6C9+^vSR!aVuw!-kFKuI- z*@J2N10MOC6oR)i+=GV+(qC@hiq2CYCgt}b2>#d)wPG25S*K*M!D1g)vYyUyH1*)x z-lYa@9g&J^4WJxUaK&m7SlJ^pdBdZYu7kwAAiKP=~In!9u!4ytr^sxH}doD?S>0$Sp@ zeAk~g1ey{VoMzfqV$0@8R7w+{yQh|+dQ8KwmYQLCh z2cRzj!J0biEr0Ch5&;djGwmW7+8IBZJN>E~ zV0ae!CYFloWV8^Y9H}mH5g|j)>9vq|xzxg7K!hzCwEZDyy&=~-Zs2d|@M0+z*VoQd z(MKPhV8U7W#84TZD( zSxybaVs$wL(TaRcsyvt@Htmv2x%#9%AF*M8e*k7|2jU@D$EY0X*5X6DE_G&c4!t7r zKEL?_12;>9`zS;yx8MtRha7WzmZ_;t#qtfgaUvLPo)qtL3_C_1zKEg7sEl7wW3CKq-IkoQKPviPZcTMX7i-qw7C-&fA>On+Os%jHFbE$qJ*@w(l0 z-H>neX71->k!J5&s0VlKsg|(ly8}SXujHmRG|cMW#a6z)H=|lTT~a=kv6_{1wb`PO z;c&qyKg+NCk&?;kS;9F^1=L#nkx*kXJ92RLG}iQcf5Xv=FA z6={rj4Ms{as7)XMnj_U_r|wqkxMY~+{gvVL)nb!*Od|KJNZk?|{?Zb7(zbV3a$c6G zuTE8{xA_Q&?c(|+IHb+R?plE8e}7+V_f-myI#)v~$e85Aak{Ag?$l%vWD(85D;atE zEPWdzGso;bQ~d`xIprbm)5U_9)O4rD#p|PY*~uj5yS6CLUV(MjX&7q#tYr{YKD9ww zEzi~zr&TD)APk#y6+<%|3%3;7W z=&8vRL_7RS-zenspwT#(IL#4evIZNBi4Vto;uduk82%Xhaxj01xkD|2LO5FT(+4RY zY9@~xlS5nhPLG8o{v0mlU@brfSK}C_1bA&S5npd_eMLUv)!2I7-Lhx^tV}lW0>Euu{vi#rdRq zR>@0h;K!bxL6jk|CtP7x16+lU!Geu2lkEVuIhz!?JdzIf*0z8w#cg-;zw4J)5Pk$#-Nkx zt{UE3>+ofJNcDU7KL8d=Io6Bs-61q`7t8(}26A=hmIpe)LuZj~VTXbtN!7(aKxCK8 zlpAqZB)o_zhXHC2|2s%Zj5}+YerrK$UgNTYsx5CJZ1#u&)U?gWG=E*+<$n8<+p^kg zUrn1`D@SC90~e~~j^6s70E^x3j6>cDT)rc0d=Y+zq%2cjQ!YR?%ik_T&0;JWW+zYa zG=}Gz!4qSmAtq;;ML8NNleatmCpMXgC5+`Cts(>8_Kai$GZ}@atSh&OxUVwmE_egM z0A&_Ocv$bfFZxD0rQSu$NZd`PTwv!fDf&w!a=Hh+Z|w(2iv^ksAEBh$7=FcP-9`m? zQUTxH-7^Z@dsmepurES{BgM6=p0DSWy@&H;ijPFcDip$pT5ZN8^$qrpl|r`WJJUiY zL3amtepK4OkMwL}q|z$r?*mcOH01u6A-lnIE_8Sf?xROoya7fc%*LUA8$mwh+GGj8 z{s-`vva%c9QaVZf;rhLLbtuY_-f`sin7cC5WxI@bo$$g)ZM&Wzad!MRiyXfhJ7R{Z zwskKnM=7aG`h<@Ci;8l;D0beVzqcCjDLBtCW5eRkEBQl0_yau)Wy~3_v!~Du$Jx^P z^s+uHD}82 z@u;;P*Q)~&UzH{qX&|P`*0@XfgZe0YUWt;#R%I{6<{u-A{&Z+hAx$yr zZ*6}SAIIa(f;)I|HX+_%^7OTDjolMwxNpagRcu2CM=WiWPRyBvM_G1Qgw!=!?@7S{V$)5aT36xjGr)5&ILh8Z6bGNDN1TOc3Cmb zi|A85J36K*Ay7k{DmaeKbUi;`kCqY@3JItr4&6r8}ks37FK6QdAWFlS8lfRDDQm!SN$d%_-D zxM5K|z+YLf!cyd5{;f7V3(O6IFs-6#0I*R1SH-}0nPOLxMfE`>spo;6RtF>gal>DX zKTqg<1Bu=@OJ3%)p5VL@A!CtEt*9#mzzv1Q9y!#DrP%|4onZ} zaOAT7o^RBm?RyAuZ@@0C1J|=8UPk-Z=*_a8hDODT zZ=$%i&WXA-K{7;Ucj_!5J(3Gc!fvf2FOR$F(<!su;dOdD)LWbU%uWfDLvaiUgj= zcP){<=HTCd0c{C~F~dZD%FY6uHRgB|)dG|y` zmk{7=g=99)`0E~!6(Vdkhc=XV;{F3zJ}LLnc3+uk3wcZ$In_gPW%5e6i4kmuW1K5N z->NCZ?Q|eLhp!hL(ASkbwG%|u60nLLcc!*jZlFazV0g}uu+Lg8o^eTpuEt>~@gL$F zFl-y#$|&x^e1LEQG{Nk6K_WNaS~;X!PNPAw;C|*ONlh>?om2m7}m8?kjQ;TJ)wGf%FX71R!eF#Q6Or`X5*@Y!u+pbhD5gNgbfKLTK|ZIV|xlOWaH z+wLa5it+z2b&m0IgW-_sD+qNgR)7ZAtIBjg(wr#sHCq_@6=bZQa-r3*h z!|c80-s@V|^M9K~xpkZi<;UF`L@QNaR;ieM2}pjvYYZ&nap<6WaiUygWwYO^y1AQ?X$ZFAU(jDgf9u~CFot`L zZtSyVCGm8IR|~C~x~WdAUUbtr?q2v(=X_)ulH6ZQX%)g?&O^GH-wP`La}e4+fSTWb z8`+WD)RA%lq-1CZXhbfZGaOyZA|z?}uDg8Y-4Ru)cY>fmWs zcI#dh+88JLcCc*rFVcP*fO}HD-y}A-{tgDq+Pb}*#ZsPTsoxxv*`E?s0!enAwnBL zto=Xf?NdfUqUxe=#l!ctnp1Y77B$m$E3^wDH**@IMnUO;a7Z<-$M(Pb6He|5#y zy78%?jQtkaL(^}%z81u~RR_#o1GXUtKXisM?Rh>`m_u20_w_n`P@IQ6MTb4(wT;XI z-qmjw!FPwNwQME-?$2Lv!N`;dGz_M%whGQ~ILX~jX#nHQ%U!v*r*7tf~^K|UHud;h5GhN^3 zs^F}$IqW9F76YuRu(%)(5lZ`5C)*c7$KQ%p`Esff@h51XtfH)CpjjijfSF9MpV~74 zr|TbJBjy~q$X=|752v;yyF=JCg=f+0XkBvV( zU#ZI{9O2!mmBOSqpD-5%tj8?8Xnqxtk1s1np52U;9x>f$tZ#pn=&Vw)VaFVl$1OUK z>_lCb9Ld8COWSGjS!lCbPW!7A6Er3O~g+tDHOKGP`yF^2#52H%Yf;YU$1UMYlfDJS7;zW8Hs@Y%9#w_3n zev`Xc6uhb`_j20H*xzKOKC|jqPv)WyEb&1(k269&$Pw^@YyC7kQslU30Cp!`+Ke5iL-DC)?7yDRIM zVul`4d3~FIc#qvdms#Z;1hbDYpRh=9d{|C*s(r_|@2{h|O54uPL78_{a-q=T9%DTP z{*?Qsu;Rndi3V;txnvDo;H|th_zW^>7mrT$T)&#nXweC_K5#Q_tasBX=sP*-%NgJ5 zLL}yOtdl#a@CS}r!y`%<;{g-yo=;`sT1`qvtZyqr98{9)@D3P)cdG+qr&%a&A7u|h zcdOvciY8vQFiB!NaCi3I{$2*yy=!^qc{$#y0Crb|!X3RJ>p#aO)F_|h5lHCI&;JZ5 zAt6wSn1qy23>^srauaHM83ku|uWuCpCvPM`^bYZEbpqo12l4eOUFz9q;6nQ!MDsb# zKM2HkJpWgZ?Rl*yecwtkwxfuL^oIi!)U3slM*`k#DMQ<4wU)u`GQ@{-f91 z&Kz#cPiukh+KOmis&ju^tdBvCP^{YDS$ghk3qQ z!B8}$!M^7^yR|17VBOvbHfrLw>7H2s2SE_wKlFA@7C8^G`-;FNcIX2Z{7L~#=It+P zt_!yvv;4brai3(&sgS@RIl-;BoIUVBX5nV;a)Wn6w`h>*WBN>y44=llkuiySFW}y< z%Yw(8betfzud3>DdJ(?)xI1_|`BIAfyp}B{FvnTo?HM;PsL4w)=tT`yQt?H-D^1R%wB>kDi6ZzkP5dS2db0_fNpk?*A1*fBp9qlzV=rCj}fuD>0e z1dJ*Tm@Da*vfR_T7-az2vQbe?E?!X#$UU2`^Q9xKIoI@}mg5A>UqAWmB^Yw9uBg3C z^Bgk$_5h&Xd7zS$u56I?m^}}m6G*1r4(}0;RcQKr7`&prz>DuD2Y%H*xb0iSz7VZ$ zVH^s%Vjd*F{ux$#pJbWH+UmbV=*ZRRk9D^hVc#*dam6ywm6Ac*b(mO{umhAp+f>6r zo)n6Nn$YK}(`K*0<+Mj1Nwhk+c)cq<;ZB$R z$&=%xl4@Td7|_pnh%bII-;d6%nlWV-4ZXdmH}7O;=&I4qQ`4f~xP^?tm`u$;1W6)P zAOH!Z`^_s;vqC$0>t+2CcP{D74L}N$$?Vv^;TcoK4_$_PdLXeJx_w15cKvx|W7sj6 zdDpOz=3oTXG7g>akWFLr#fHrZn`r)zmiBNhW#5}9jk@6+I@M}H3k=&Lk=)ONIjs*k z_WXfixp?a7{-ttqLMEysJ(k%5FSe=!NG_v!)HR{u>^A|q_gn? z%d3~cqYCKAd(9DhWPmC1^{!FrG>_fK31r0lZYaej6*P~Sa^C!JF`(>P^S=mdTK#!8 z)At2%#_enHMs>B^UCj>?BBfs<`SSlk$Z^DxR=ZI0)>^R^U21_yc!bveJQ|Tu-^9}uodbSnV#xo zk7*L3di)&td!RKNp}W9^&J_WU)1HpgXJkReWAqK>8Lz+0#m~x_X#S&bVP3><m*MXwu4%e>8kZTlQ3A=7}1N3s5`6ULTh z5}!Hpp6Q7N=k_-flb@*07)#TQZhOaagX(HU?z>MB7+he-I@KX939(Mk5c9$Z`za~d zw<3WIHqP{$iDq7<_p0CVzGSmVERVZG7E6b-Do`SOYy%?-%IF?4&#@tr;fCs(4cMJo z7{@CnW6V-rK`Rs3_!9w$?^Ky}n3EYkrV91pERcNf#jh!??0OU7J>z8DEtnEFsQ0;OQd;#7E9XU`gfyh z1Zk1rmqc5~$!qbPNB3+vuE4EBL$%XAINOY;w5VL>$~d2XT0V8q%?;Jq!UP(k&%&!O3R#iDr!iSxFyiJWYLnBeNq@*m?z>vA?Ib)g?dqo9R`t0!6kinb3q9zyfAme>8c~tqJ@bKeM zunFJY42u3BHgScIO)!3pvYSuJ?<7064M!5jV<|_!&FjuVSUZ?zOeav<36YD#O`#)K zx^fx%5z!UHl~$=dXLjr|(a4$c%3_!uJt5NIjGB4OsB-&z@gcmgWaBNT=_ENDq%ak+ zgZEKddIv#vi!Aes#=F@MTlf#ciE3rdMegg7Wd*zwmFAa*`0nRd^0xG_nV`WNHaoRT zm2duWh#IlUftVZyhDC1;gHoBBar9N$!3(asqwXRK8QkqH&h|36RX!w`k1o;b?q^V} zzO)TlhSkZ4z0p;eaciwsS{nIRbFJo$ih4;r?2(U%b0~Q%4PMjS(Ob2^N1^*!Y&3+^03#N|b)clJsYz+^|Kp~4^>Qx)~BO$LNy54YG z%Q(>c$C(QF)>Ww5J?RdI*wP+r=2&~|HvIgz;V6*$7bCvFXnKU%Vx5FgHR)9tx|X|V ztT(f>dB!jOrdEKYyrt%?9BWEjGf?JL7&V4z=^^!+ykgNq+}?1XC=Gx&DCP*Ob1ppl z^H8ozcTm2cb`4J!+bY|PR*Ws6dmrb|8;U&xbAxg&1qTbsg=1z&!;5myYh z=!9aAS7NhCEB)NuRrsuw3wd>TS!`qF-7~>Gko5I6Zg>Z_Mi3U43XwzZ)n<3KI63SI483K#Pzv>uZ4E=YRsaKi{i6aBv9M#!;&pK zf5NHZi7yqA7LnWjBISPbuJj?ZC739qR?e@G$%-iGlFSqeSWV$TQBoZC%(lGFZc{>m zQ(K99Devk(qIF58kyof*Lm1A^<4XGsJ3S&`e#rv>)TOdwCUA+e^2o)U^{Jj~w% zuh=!oZ-d$++~`?%!cnAIgM!xde#y4Eh2m{)c?m}ooTVcfu5KhJP+Fg+BrT*tw0Isetx;t_s50y9ebj z5yYkY2PlC$8T+rJ&}G8SFTt< z*)Rq)e>{1=h9AiBcY7eZq{GlnY$3!3QGaJm??TrkSG)FezQP;!qi$4c)(C|T8rVY~ z=PI^8#bL-gytBgnu>BQZhF52lyvP;nZ0dq9m@C3Ex_e#cAKs*NmV35Lj{A`4uLi!x zxl5UgQmS?~mUS`xh%w1{xGCe+gO_fP@fN#n+;H)&xBp_;#>O@cGl!#0gV-(|pi-Nn zYAx8|Lx^SJiXaz%ej@QYvA~?kHi1>13MlHfusFu`sip0N%C#x-ZR+a>!j!0ZyNx5~ zpZglPbcv`_TO!GGgqG1$W_~)Q(@@uRHssEzXo`x{o1xw!f+e~yM))nV#MC{<;u+qR}R*O&t z;X>;+rQTZ}{3={wmJQ z?Ht1Wzz0Lq7(wJYmYoXir>h@Bx>mz?DCS9_6&zO?Qvt}!5}V0&;t1EW`e|g*@h;K% zx^`}n+$9cKF1X{t^E=yXDiTDy3I{>*C3c_hQjMZp0UmN&j^Ck;Dys!E#}vg3Et-0g|y5AdoPc{Ox;C{e)lZ7Ooo2P1DZ zXFx5*MVv5$KGIqu} zAd^__{MgSz-?~Fyo`plMP|`S?7D2US4C2=1MVbzz#{3ULX$&i-#yu_eROt@z%_yGO zX`vA*E;K{5eJu8Chil@3lt1(iQ1H?=;0kF!Qg!8MbgY3~ys zLu+1`@3b0I7V==al1o!e%zXbtS& z)~3Rn*+twVg^5QTJ8H-y_sxAgU3NGJ_?7fW2q*m3%@12O(5g~C&;!&MyzQbNp+Ji{ zu!m!He?CRJX2DHZGjm+apvs^lvZo0j1k-xo$Ta4C!g2$B#y&!P#k`K+b)vM8B0yCU znHpY^Hm*xlGOve@L0o-K;B_itvRUuG;@iPwkzA8*r6? zwU~qS3ADidL5@U@4O@J!5z)u)>h+wq!Q1}Wa`y93I++)8s8EiY%)F-S_MEwMF&woj z7ZDQ}Xg!LxuDc^QgWR*l9aHeuxoz2S?)|lHmi z6S%Ft$UQX-BQVsGcRXV0>MKdbOK;X8_!Ztq)4ILl8-?2)Ta6Jp0Q34F#H~?gfH?k% z=rV_MR3;Rk)tB9DOTLxsXGlYh_y+;^OLFL- zF1`97Gq}mxPFR7=hbZmmrJS%?`!9OYyi5@i@vm*MSZY?f;>)Z#-vYGd430R(e+79( z)xPkzp*k>sW}*WgPBi}H4}_n_1+M1R$9a-T(_ByAbu2uPL;G`Y-?I+sK{m|XLCe<< z6^0#Y#-jU<-nOY}gLJ?7_P<_PZhv{VE9V{96V@5}+uksOE><2i-oe=O89lNh^UkaG zNM_Mv$;V2sZI6(V<%grOGHl1ljS9xu#R!@J;mD1v}~@ zH~FFb3?r}#tifqvS!%KB!}iax01`FM?Df;r5$7j|HyIUi zud)v#1b+#oE!>a2HZMySYCQRy;28p>gF)YkN%!|dl)WrdbP>3n6Ph5COrC5VFh8p{ zxOz)g_bvBx1}3F>_=7qQwDOQyYDgBB8qPJ9QQF9?sayz zd5buwd4#u^KeBtIp>!x}M}IrN1rp4EkJ^HW#8hD?1gRV;DuEY_xmkaQ8Y79ByIqPl zJ8{t6?M`qFB6`6_+Jr0VJ}#kuPi!Lu2#X$^hl{*JuV2l0qEUqMM&`Pd{2|z`^OJl> z+$MY;2bgxZy}=7vJA14j6{h6G|6of(UXwBy7mDY&h#rr|Dk<1_EcMZ*BlQiU7dVdP zgTWOoM7(B_1_W9n`$j++fFj?aX>)6XkMe;!WV>T?sV7+mk&_}xrr#W&dRz$Y<7n(F z-cKyANk%^#*C_5fBm`Mbq3H=AWy;wtOi#OvewBE0=<@6VbLyb_n*^K@c&TQhS{GZL>7F%ei*WBOze-MC$h0C+I zPUw}S%-=G>RIMZLcn_KG9PLkmvPsD~FUVsWWUkQ^TD~ShqAHH^A4Cal-8Zt|S$D%j zm&g0B79J6-Rg&Twn@9D<+uxx zziZU{PAelfRGi&8A>sU(8*D|=k5DF#W8h0Kt_R{g>_&1fs*P4q2U>ct0SjueQepMu z57mE7K)d(V&t{v9>3Pdhg-uHoBjZep_jNxH5)%XLVQ zG~Mp0GpD&-Z2jQDvECIxrR@lk2Yig?jjN3g-=KY)JIkUnzG6S^TXOiFkGW+Dp_Ds& z@+#0#zNBM*hL&4ftp|`Y8vpzg3pWA$0lpQK|AUBf<{5*teel@sm|2*-6=8YEPC(dN zYJO#Oe87EUGG_?8=n$k^`ZO#cZ_hwB=N_YZ^*NxNZTrTFSG*#nYA0Uu5(|=Sb~c61 z`Ra?9cVA8~PAz)r*8dK*JF_ssN9b2b%8ijD89azEVUz41PCA!$yP0sOvt7VJbi zD}azA$-W(H1#owg*PdLuNW`JoWsBEMVqCB|^2WLy68f5A`mzd?eU!cwQWH}&y~Ts# z4By7tQUx|j8l;=$32<1sT4Y0~>P?F@zU}&@TcY}ZojpM!OrQDg*G{MN+H(rVo9G|l zexT^u4>er5D^NVW6o?SpT&m-j^8WFKbpk5Eh;U z#W6%k$$)*tFWH=?7*9BHC@X*9uBHScrmBKAmCo z@pIytj*S6`Td`N;2y|8X?(Tt2whx5J4xJd~U5IsM<^Hw`H0dJyszaC~%y;^&0+I|V zLqQR(eg7aNMrV??PzcO$()xalJSDk!(JRh&lmQQ=V$|X--z3W8HX$g%OvluWH*!pl zt;ds)cp^-lel8qBypGyS{cYJL0{_lIpao`mD?lwdrrpjYmQ&J zKLi9N@&>RpuRdm7SRYdRrpJ{K)~?}#7b@iCR5qlVkz*jIB>ajEDQagH9MQ-To92^G zy3 zhFH%VQ>?q#qNzD62y!ifV>p=@Kz;fYeUy^dE@=sFTrbqdj#OTHyrL~3yJ4#5@AX&G z=b3jjEK&}gNhZhX=xq6&vOR=jjKFaEb6yGb!)byM`Grces{Lndzq$T|%B%Jf(q+jg z?~OPUgPn^~$%`Y%EiTvyxFLnc2Xx8n84#cp6P69oMt!GD@!%Vj8(6I*pSfN5tDh$E zdmem`Hm`CoDt!LTKCz`XAR&EJPLgaU>q`l>(bHCn(t(}R^vw(i8kW9AYl8Ar6jWqq z_nF2fmoM0cPDy^ESuAZT*6mNhKGW;AUt+W0g*c#3FcDV%yacZvBEWZ;m`MO*O95AO z_qXT;OXTgzxcmfG9aIqtQU%R7CB(*uk?=K47>S!76 zVRgTxDdQ~Fe= z{8l}EV&ZnaTT)|x7&IHN#*!8PCIUAr+xJYm;FLCO-AR+D57+EkjeHf|yC+mCozEvn zXca%a8C6qT{qW_!)i*aYEa#ZLg<{NSqOzl*re#X7 z2r_425`rio1xezz!?J*O5y*dv+vmr^)G!2gmF76{40oI>541X183pH#tpx`bcTn9h zihf3GTQA_gJvu%Tu)W(lQ9q=p*y(977vd*ofbHuDjG9q*-z7*{!LcbkGIb*yde8(J ze(7GB?}syVtlrYRZSAq-1c5_zU#{pz z$jWPu1$#tPH)bGng$+5Yw-Axpt!7D$ACSRhZ1+xl1vT;_Pr!;Tv!Axct#Z@gP`bs* zq|%c#D&iZ$ov@E2rUL5oKb*ca{)0%ge?cVcZu?uQife`ry>|6YIA)4FHm>5G+AX6p z>`j7EduHKCDcK5tIPZ$NO@E4vM+Fw%vOQ<6xj+(gy_K&p@n-D8{@9u4mnI_jcqJxg z*HdVMj|k>+AFgx^yeq_lhu6z%TeqlnK9t&dl{q7qK@~nz#1_uZGmMsgy9OFFLG1{s3 zt+9OvsCOmCjskF;#o-n*e=&oqJnlmlSFM&h<6}?!`;+iTAneWy{A}S7fX*+ejc(3} zfa)>C0Y<6B!k`G`T2!32LmSuU7`fg7 z4DsyQn(^`mz!rtqm3=o!`Du+WvvKYx^o~aGD<^dH{paj# z&9)3NIdULMgLlg!i?cXeRbvY)1#=TOq}fg9bc&>%&4al4B%R@DtY-JVz9-CrFPR(D z3EpqsgwQ65d(z{aS&1`I?$trFy>hLfk^2VWB-vuPA2kBjp z-D`Xl6i}D*CY_g#g#nm^UhAS&VJ8}LZ78Q;?hx+k@Tv=|@!A#t+fmjxxv=2gA(ip3 zL(vGy6=>(x#skyW_D3MDVGUsm$rNCr`?UM}-NJ?EaX%^B;X(jSQP#oiMr=*k8OmwD z<{u082X|v^gYqM8{@LrCeB@MtTafZEi9ZOa>;@0gXw7q$Ea>LVH}q}gh?s{jNU1Qq z6dr%S9ltab1MvP36mTqvl+4o!n}^S7bqE*;^Rdb1Y3Qz$YfbQqy`Z2Ln^mk7I>Hx{ zX8=7)tCv|A5U_t^r75M8$46npG5D!pZ`pDMFMsQ!0e^Jr>!+b>Gg>f>as(4C#=e=k zJAK!mlcu^1aJLQXmbn7LX}iik#F^)3N>GSYQ&Ndg6nnH;?>H~s&=m!7 zbjtCOZzIJZi}M62ip)$3TYH#~o$|@@A$kHpuplOW; zM|{Sm-82r)lc|>d5#y(EqrUjM-t% zrrl{Y?h`7^M+)x5SK0Cof7vQ~0Vr$aW)#h9V6>5R&Az6L-l#V?u`UpZb zGz!5?VwIlf-D&1bh^3;&3;!V6?`M-+=ed8#E(BfP&tryVMWXOB2XC&$zr^pyN>F z95bhP5*2PaPPlc0&@EEhgf7RdoW9aMXMmzU84h_b)@XT7PBKWre6m|s9p;7QbBy3x zXYK`nUZ$K4+b>x!;Rzm3_}-4nmib|IMU|{JzVA!8j@A7HNCvO*v(AS3bElf?xj-vS zO(=VFV0v-Bn!`~y`tGi>?3>(W+VJmR`d2A-0^Bkd( zh6+IwDG0%{!c-eY(MC9e2gV~mlySyoj^LNX%%qv|3!$mKa8e4G+HE4eP( zS-NF+M%Ux~fs=LXet^3_50WEO3MyfBbw5puVY~nilZ% zgpRspiy+4Cz|!d=oEJN79*;&ZOtTE&H8Z9l-7YLwb7xz4vb`R~1``4JxRjuf{9DvL zabS(X-wkI@%IC9rOyhiXyCVOuE4XaK4{K3axh&a;%*X_GGkU&)`Ff zlTfgb@C}f)XT$jwWQYB$|J{6p9KL;Z z&8~{vOJv{x2d|f|=2fn0>->U{Z+kmu?PS&r@5P3o{Q7nz()xqD96zKD~F7ywg_7&ff z9FjnKdo=XA8E|-Ki~U1rVcBwd+xEkAIF(nhB)&#f)8nS?6QZ|>5V}MLuOkJ&?NhaP zdcvkRUTto)p{SEcr^klExTc?s=|hg{Vt3tkpp27!jA&1w4q(!9(;Tdomh8G-Y?$%c zx~s;pfoklWqO0Mo&&VuPPXCK^E8jUDrvt*vFeU0}a!8Pn5Wp7(1-Zc}NaMO7YMmPG(2&NC>NHfIA)GdjNU+=Ej!FTqJ$ z*25!McjL6P@$Mrh<0Q(~@VV=2f-|c@rdFG?#EnhH1gtfRiZ~RLCcgNi;~!jr&V1h? zn$5dShuc|Mgt<6`r_Z3546FSuwNlfS_uZY;Wxf6I>#3yzukkP?XP1eOK1M{gZtZ@< z-8SZ-iLv>_(E3$Z?ib#tCf;Pe@%-ECi$gdUm|g6y#b(K(*XpJhc-EC%)}b{&KRk72 ze?psED$e@fcToHhc3CgKhd{6Zn6r;xj2rgYou@3H3=XAeIhy~C~JO4$Wi}YRK1M_ zCB?=NeteZ%#rAdrM<;`~*b3`I!ZLob-ktv^+|7 zS47gsGP11L5T>WZ#Kp5VpZC7~?G7t0_R(m%0(i%*%vE1m+xcsxh_;SM;C&s!nLjF| z2T4uZ^YdGN9oSwmqN0a~!ZK@L;|`vaWKam4h_^q{b+0jUo2DQX=eTitMZCvgB0vi} z{84VgUGaglwFL83}&s_4X@>OdjPEv2Cu16i+%E}$z!s`J4{ z*@D2QEo9q)6euO3Vw!|2<@^M7-le;4hcXOQKyv;EkviznIH$ylBKMf&5sd5C2AXk6ITC7kgNDNdl@Bu1ofNmrDIT2qy`Nu^)HGfBgOfcgCkF-G?K~Pi@wA zD{d4`MMG=LvY2LENR?=LO$?U66a)2q+1tfpR;Y19e*9_y-qvNh9nUON>|s+YdE23Q z%|}bY?$B?MXG`Y7#a^a0XJJOJDc<%7RWu1?YJa<9=4)<-YeM?lCjjr!Z^JTp8|32V z2p=j-rtvZPI;&yn>tsT;x_af6Y6%0hJ$&6g09^!rF>06)ny7qh=H=aeTvY!=NjZwC zW2`UZ&B&lnt##v8Hh&45c>nbF5}|&2d;hym;D7i-pWa>+B0?rcL7`6$O6`9wz5f9Z zq3m7PY0*YK(_IJ6wz}(j4UV_k)PZ_SdUCrs=#g`JXv;2D>)6<60_b&{usIm!3~*ZY z>yEC?%IK}MJsIeW9h9hfVWgDnJfjf4!Gti^?5MQrqLU~;5nu<71<*GL_7dD8`1ZH_ z&Y}p3?$Et-7EBI8{3Z#GkX`%g(9hB1EhkN85OxJke!Vzeq?t5O%(qwA+YuKs?>NHf zNZ1$)5C^VY$x2VlwiJ*tE-?&rVT+>F@u|uUA?j9WRI^}*-{{T0k?GK{c^6wM(Y6e! zetAsZds=YEC6ng(j+acI`|clIUa&-}UrWu&i^LE(OyoF<4U(bX>+FN8(r`N`gwhkj z#Ip=~McYGhIq1-#N~TsvggysYfu@U4yKCQKATc@kJq%GJTWpyeGLWT0!-p$iP~W z{jG?M>1WeeWkzdhe-nXud}9Cd8l9f%kWWy8K5;I<^YLq(#2jmMNh-V=_d=d#jm6Urv}pkK)m8(ZECP$*{IDH3ko+Yyqh!E;LX-h`?c& zsCD#Wlaxb!RElJt_ny0u4r>v2kO;3>;n>i9Pj-xZIz-x{xGK5qhOIe_sni_`Y!wCE z`$93RSjQ($twnq5*y1$Uhb@CWx^H1{-|ff)fi=3S+yOAIb@bo27&0?54d7!iYN*vR zduP91>J7n&pFrieL>K9Nzws`HugTVrx3h&1lMBV@$za33M_%ZLb+2Z(JY^`rb&@SX zz@W9GFPO)Ot*e`5t$v0ljC|e@gn5DP85aGb zCgM3RpI^9Fr6v=G9k85d+S1;`KhT!V*q`vLS~0-;Pd_#TMU}N49aMCD|8bPj(6?{!Y=~B@or0z6B-(qA)(| z!ZyNUhIs~v_=u_v4sRu=1eMP}Lk1BOL|*I_iee0rS<`bTK|26zSlWZzOhk~=7?gvQ zug7tjMO(}A7w9qv(~?U+3ml00`Oflr{jbftke>z4L?|f4sPuoiV*f!%p}ZLr!Bk0H z^qHY!R!EbEW)0AP@$o3^`i>GTCf>=atP(tUn}zB*YS@8APmX?LJufW5M42eUpZaB^ z8+*?e`$p5~AH>fo(jn47f6P<;~xtQj( z5v=$$_*Yta+;?RC44D(<-l(4grA0qhH}_pve+13pvEf7zmGuvb9~w=?=x@3=F@t`{ zS$IZ#5hYg*CTdQ56e-lS!{6C_R}cQQXaWdUfe1pgVzni?CFy0@4o=QSIyheXooF~| zgCpd6ndHGSyeYJcSfn9}I_uzq(g}JjXM1Dji1yI3J}qIThJmnZ!Kkl9iHM%&Jxbjvq7(|jztM+r#+2hek3=lEc5d(zs#z>y%-ENhq%D0B?(2iA>Y2i5 zo4@9cEKLyxwcpVfC7s&`0#y3*RI)_ztmkc`gL?%+hNT#%i*e->ke~3feu1!G$YW!q z@R_JWmGDi;M{w<4^u=W&Cu=r6?2zG}gUj)Vw`CHTjjwlRG?iM2dj4w8BD@}x7*dWA zzTrrtl^n&UAWHff^#QIet7mxxN{Jfcw+6G^(S94FZ{a-9hkh9KqN1(6sZY{g#2lHP z35Zo_4(BFFb6o>vusS=-eR^@upB;In3NvN14JoAnc~diz!8IWCi+V}cdKR76Svmp?cy zauo?y>)k>h3>k**8#b$65-mexC0AS&>+1)2j#zZeeo1mUYakun3+>Q8e0!363LXU~P*1EHzl~~d2rAtf@Q%2$bMbyu~F-j1!d?MhfAm<+>mAsiEz&=`zbBJkb zW4ruu?L!OTkMt&39OnP_Xc?(uCQx`VorxC&q;=fsmPok@6x(G^n|(u?^N9N_HLCxY zlY#k9vHkZr{ogs6Pmoye?Da0=jo|-}$)JGs^Wh9b(b{03Ba|aVOQer`WC^JQTv8iE zxvHQ?Js-mcwH3PrQ(YLLXx0&us}8fsRM?VLmnuX0U3-n+4aQ=FPjgZ0+wIV&EU-vSiIRJ43oD{{FSvTbiSuXMvCR5 zuhIx|^Mws68-|dnmP#F$B&N%nx_F6#HDscIZ|eF5VFjTE1Fec=sta={FxG;V81OW? zS9AgD2(He2D?gSv{}Qg8d)KsSfr7RMuR{X3y^bnMY?<_)3|xCH#eQpfSY6se>MHZ^ z)?$5bQ&yrb%}FvEY&zc-jecFLwlY=ldn2Q=@5AlxFhv6$b*;M!9@yQ_% z%vavgE+9)GiDk3hNZ~coY=qo#lSfEs%7yD-6V3z}?9rFkz-5op|vC=-6IV}Ag`pYCw4Fy@FsG?YYgB{LZ z|M+&CHE4^v>k{QU7yH4QWlChU?QqD&#*^Wx?JT84rdyzNe#dV|_KO>&n#;bR%>B>qRb=KQeF&7o?1# zKT{WTbA?@th@j$__Q(d;i4@o)Q&d?Y#B2+#K-_m_@e~tB-5zdN-t#4TQ5x{5q7PHM z6U;BHiTTX<9pW{0mxPT53U#4l&Jd8EuE!>*LX;`f>*XzBzayZWmZrV9b(*|~Vi^*+ z^%4Y41!qCg=G|i*P7sxY*=-SyXF21F9$l3R@`Uucf5N+KriVHUuw0c%0oNdpnk#ks@_zKL-vcA zD>ly8KV)@)*#llLtiDoMbBKD69H%dfgBOrmE+Ei12N;_GK$7=De(e?3eP9<1@xH4AO-Xz?l;AGNaglTcVS z+FEj^D&ZqDx9?!Sfbd_%ZX7E0KsNJaZ@PVT#)AG3LuI}Cs3B5R+AWn<;DM0}MTQW} zwKBw$Lo)>jK1|$(lEhAA>CcYM^0U?95QafOVUROxvvUSOtOxlVx3|TXTJ0_m@ttCu z=e$qpUG$Vy)r zvVTv^me$M<*j5Hthn=$^4CAqAlDhpmZlaEn|L{5?k|P=ja43mAyDeq$(*d7 zTv3xsFR2$))fviZmnF~cfS-k!_&?u(}C@F7xq^EEeBWxCPM?#R}-c5V~f=&<@ zG$=$2NJVOSn>JqOz5L=0GtEg}IFxB)2qkA`DKEUWzSJW=F^2~R(v_9p^IW1PD#}Up z1}5gN#38JF$z;8*;cDE7R^&%$qYiS$4d;mKdCv#F^?Tb=;#pNA;=3l;^jes4@t`m# zADn$+UC;>(q8Z$6H~To>@%lZ(DQ{)9q4+A3xY=l@W^7C@gblEeQG4~y9#iyA^*NI@ z5$IB8+4QFC)0N233U$!(sYy!`NRFjX|KN|^FD%XwP9O-DV8S5ai5uR{L}`Ri4Ir3u z@GZ|uuy8102)W7CFlXe3slDSDLl#5i1Oleh3Y*uCiI(^;Q8{hh!xn?aSkM0t0HZ)$ zzw#lsYVDY=&6_{Sq>5_QR83%qD1xlEb%M+8wIviSj*MHVv6$&cnNYF48hg+8Nb60_ zStu~m5gI^YiVM7K@?8{G$je(iK>#7&OxsuE9FbbSjAehxGo2xO+h~<>!9$D2k&rCi zXwmLAc_R`yj7XS?DkMvZ5h(yH;nZdXAV7hbGXmg21Oi~gRJGKlkX=>LeD&AB{Q46S*5;@vc zbWWxxT8q(@=z1MFbXH)2&_Fwnm}+>^fWWSstR!(6rN@^tl=f^eHA8to)Z*E${r>>4;?>D% z{h7jV85heiLZ-G@04Aohcf=^mCd>s?5gRu5P9<}@EltUKA~|wPXNj3YsFvwaZEQ8a z;#`3G;_4&92C&#7@c9l~x zGZNz%%8AfaV;-)Ox;8_qMCxe*8cm%8pi~Kkd_@gpzfLI0j+(k0#IaWC9e}_#3=v(L z$UJ{#KxlEZh_;Xn6F6C1uy`+%Td@AiV^d&p@65o)gpC2bv;$23gw0N_$NiOP$&SZw zc3O_Xm3EgMu(}>&WU%SW2NVHg%e=UaSgLLk5TeG%TY%9NTH08ry3!louJA`c#T?j-3@C; z?pNuoJ!ox(ixiuaF^V$Mi`##YYi-08ZAG~M0J9R}L5`IYB(HvgF&S9&QPpZ|)#x2H zP2quvVCWUBL2VmET{}CUgI0$3?N0vy!)Tt9H<@W&-WYHZMol3+=C1ND=6Q;c@trDjGgp~+EP|MM(8DT)HfKs(VyTRUR zaKgK~k9wHp+BXj^ZMwk3a=QnaP;6=_2fo`M<|2h>f!neDmqP9r&YmTuJ_C3bopQ`w z>7o0Sv~tQ9b|JdZ{Kj9mYb{rOUeiPsSh>YnJFQ_5a^eaNVLwoT47a`?a)wqvZa-e| zHEnePl=`<3#dDr7@IGc2gWBIeb3|*bU#lc0Z9#8hM=`vtKlhD#vlny(* z#797yk(nZ%AQr=P4{gmMMaV$uak1QDfR^RlHwK11v?^YH#>n>ZDm@7*HxeXBlBINg z37ecJl(e&0M$_=UWkM^{ShA zJHmh(!;m^TmKN6YO(mne*vJ*j3YO*2<^a*{03Bm-Fc!>qIhiLoFPI0cWbi~ecAtHt z;>=9v6&d3Ukt`{90bg>1QGbJyCR-$Z1l0U5V0^^nu@h~H-WfEwb{jtMS`08bjKW{z zG4n>JW-G7_J8v2C8m>rrSZ&+9MrzlRP|l=av~Gru@Knrc;7di+6y2!i^*avHH4`~0 zKAEw*tTy|>i)_b8lA>k^=^0a0NR=z4dLGdwdJcv`<)tH=U~ILPy@21e$YP1FxLbSF z)2TF5j92e)qJoYHB8II^z^{Px+A^WbS5;G3aGqd%M!XJS1EHzEmNo||d&9WC33{*j z+70N_@d#@TAHU@864+y^w}dTvXS{L<(A_Ek1DXCBOLkd@$bRNpWw!xS(yW*PZ`uC< zB?>SR?!qEck7!~Twe>13rT44nftA^e)vues3GGa5tg_+6(8|U)V`-4tD3)Y&fKuVB zza%ry{{V25mwxvaF@e_$r#L)&L&_*T4So9++(^9(VQUrEOCF6MyeXYf<&UW7;E^opkt4M9@vu}2S z1;I!wy-awjmK+u;C@)qMRoWaWE}WF;I0IlX91%t;>bYU6*>}lW`%Pfc&HKW$%HWnZ z*#Ai~PW+yX6Q*#7{sz6ntnL`h)K(A0+g;6Z7BgS2H~Y46@+8afT7lR5oOj+0{z zejA5#<_UkGiCfa|6L%&^d*el{pYkuG2D_ zFU1&H$}*))x+F-%j7aoLl^FUG;A5mM09(c;i{tKL9jG{<%ca1J`*cx^X0M!hgb*tD z?gd-Q9Nv-eQpyF}DmE#oJz_(KtWmSRgKKdxfO7_@J~?$1em9w`OTR>{A!Gjl2}X2r*ub@IyD2@OdCpTGFtRLs zkC}IxcFbJUVjmKvOK0~buQhPg(uIrP@U)wCq8Dbgdo$kUN{P_v9O5LXktIr%E3HSN zq!@~Irj#rW&0^xF)nTR5esSd%gYO=f^Dq>mHz-RjdTq5Ki{}?CIrcN znw{wVLYk&sqI2eCpf)<56Nmr`@xj~q9}H^$01->h8Ai;3+Xlbi?INOeO8H}*{oymy zZ_^F!4P2*5*pI>&*!)Bm;O1!lYp5%O@% z%|Y}Z5iP{Rj?Ada>sO({DuzQW68$Rpn1iZ(8lTVZI>GSFRQ)R-Y5XD(%VaQ($z7X2 z^A%cXa7z=s(Vg)Xt!H@r58fI)Onp`pL;bwc5zFeLu*suXxc;IeD?yWo{{Ug6_}GyL zFy!$n{Nd5dSo?-F8~2WFZyA&cqen;CjU#9YIBK~X=gb%ry?ZC-TPQ6XPY-`=q(cVa zt8!ppBdN4f_^Kx5P=8T9dfMzgoI${=X$u|UkHQPfmR2(vP-zn}l`1C;NRpy;U{oQj zAT}xul@A*BA)U9v#$Y?I&w&L+)t5nX#M13w1f~LlqhU9CM=eaz*KS}_KZMk6h2TwD zS6!?4fQHzvWvO*C&J15y9gySoMc1)ksAL~`QSi=cPKsGSorB}Osok;hUH)Q3i>=GtCP%7*LiXKAQI8@k+H^yAE+Tn!P9jGUj7;OBDpanieF#A4(9Knzu3kHZueWKahFus$o+r5kJlid=p6RQCFQy zK-8-ChAHpbTAdkP_<*febBIOoQwJd{E#MIR%2d{|6FKn+97UGP^0&kg26XAIAT|`Eu#KoT zptxsJ?#yU5>apQ!^A)Sh7L}|8Y8>+@2Zf+ZQ7@D>PE-2|k*Yj-`WZ&Xiq9QBfXc^t zmK)C`+;N0RZLW=t!T6o{%lJPs zwOS8{{h7LQ0%yBYXojipU+*&WNl=?G0_lV1ET+>*(J%(L&XBfT)i50$W}*3th0U@- zd#P^wMuMMC0Q^8ut~f*U9V03_&0dlH82!_+WmW>JirOwMa-OKS52r$y@Zb&is;=+8un(xcGY8qMM3RcZ*edjP^LVEG#< z*fZhp4bLL2TFc;jCA7M66&C3#WXq&nJjX=PKX4=nS_bGBi<*K;FTV3j%s3_<%Z)cT z`x<=`?*+iAfwdmfR+c+nkjE>@KU0kWk0pO#b+V&+PPgX$?pN7aJG=gbOzozH%fA?y zH7N}J3j7VfiIjJR&%{fOwd`~5%bAxa_xpu|Kph&3^8$u9^lm@fP z!r*SO?W4bWW?Hd_pbK6?2X0&L$9MBH@}e{{Ur>&hHGvx(wELCM=}-A$8d}fJ?Ot4I0d8a<8bahr9*cTG(j&+72=eq5?k& z8LV~a-u)hlb4ZecR8LcTKVRN{>jeVHqmZAY#{{RDE!5U*GBUn2S8Uf}i z5h;xgSA)KUQydq2=_roE{fK)VUh=l^smC_Z`^9O}In;j2|g^7-R5c&5`4P$GX9$nf zVM41B*NIdgfptD(v?*9MOUce;cJVc^v7Ngy$S4dKw5>^1?1-bYi2b5n=qg3o6LyC{kltUyNHm~F(h2Wo1SHO|&;NW-qi3ST(;t%ZO%mSVt*~EMb{fUi{ zEK5+(hiy)~fz{#B zd4}Ojej<%6;w@sXqe%t-0G_i(1bVUFP)F8r&I-4-Vd)!Dq*%&yyxlBE0ulIpUQb!oJ}C!}%qW#h8gEsHyQBnau8ig*%yf7;lAPE19LM{GsKFr7q51 z!patdv?P$#D9RH{g>a$pL154Tdq-h{ zDhm0Fa;AdKPZEKOuw*zqeq8Auf!m!NkM8pUOYAb3MyGi2I}_s3lrzxoaRWk-t>y;( zjVM1VB8ufzZotgHTk4kAmfd(Ekl~g6STD!?mh2M)3eU?Gd(dmull*8OGUfROLcT5vpj@_X z52$kN)jY;pjYmc=DvTqs-Gbvp#x(&jFHkdqg}L%G9hlGu-0AO^Vg-KZtn-bvhsmP~ zYc%BiJ0{6pD&D1zvZI5e(unqsk@O|?F7Z2s_PULAHw}fFuZY-!fj|Hlql1WN#}LvM zNi8%re73t0Y6T}9r5j;vwJ_ejf>gY$6nI~$UGxfm<)PX8gD);BXIehsqz*GI$#7+5 zwT13H2l)7bZ(&6rH8nZk+8s<)giKL}hSzVB0fnpF-2KcjXjwERmv6*ETrTZC56ng1 z5{~$|f|9zcOQV+GY9-SFVm5;{O0eM?|kFdoR%fp;IpScroIbh8ZZJ z04EqdLUdwYug5;7IN54Kv<5U5bj2IbQGlmJpCPWO>>l zOMp<^S{UYB!+BU*$K|-oxUy&|1iuKqWey<$}2;hDQ4z(6}j&7PhaW2~I zSnO`KKFBg+&%LAkNF>TzeQOMZBwvp|HS-%La&r)o~otMFQF61bv;z%OlX|1Nxdh z)BpjbaEQu`pu7w21G2SPPFJ=b!yWu4h(|XV<2;h;(DGt?2c7SD+}k zFz9ilW~#&*{6qfg3LJNMR!)UZH7)AM|kP27ChcyHiS=$BBj&uh>E=g zK3GFF3m~+eN%LGBuE%y&l{32G-NvylU7bccvn?%Eh$f3$^vvK_8ACLz;wf!l*LTbQ zOK@<6r$G}@*&=Bc*F+`qrb5&KrLiD%N_Fjmz>^2d%O@@*1MKFyJDuZ0TJ()3Ca9hPHrJzuj%J1M)e?H94y)9PpZv8k7|{g7E;VxA$o)&pa(>E-)~)LJf0TeV(s+ERAyVA?9+b@WQkc_Gh z9hl$s85J6E$L)p0zLf%q*%(YrM2APKHkIflN`{>bME?K=!eeYS4O>>TShO~Qy0|64 z93^nwuP?lGTxxepd>Clh;$jU8{4^Iocmz&TZ_Aorn|)n=^FC0UmH#kCD?Lyx$Cl?;;k_v-pX=A&4M6hlGpEVrnf$ zwU6y>fLgBCG}nk`-h|CvZ0U1yp)2@*e-f}M+_*YbGpV^;RW(+l{z$Ys#eo3wAAJu? z$8AQ&CSohRtG^{rc#K<}@5KE}j9RNu-OAHzv+OU#Fd=!cg7}6HVQVzO;)Q_H*2l=7 zm@8>vWCo`!-QzPyCF+Ktc*Ips<`rQxW|jqMzuFye+kvSLO|SWzKm#-20S+^P-GgBB z4!6|H3h7ZUClT}~r0G!75a=4%adbEhRiHOgTLb0oKa{Jw@Jr0gb1egbZo;dGjv=~B z&Haal4q=&f$WdwU`G5wA<#edGX}G|z-Z1wWWtx^jk=CipQ(Uu*@h&#q@BaYFk6|)w z=)&~%TgGqmyc7!o4Fsp1Wl%e-FdRV;O&Odhb!hN~pK3Slx~njioe39c&gKN9^+ zf!gTlwMWrche_Xx_iw36D0~O>fm#ObZN2yq_KMHtyuiNSehJw8*gA+m7=KvM7;-(M z!1h5+|>i!(UkSgAThATQ2DWm!)i9jmse&D*8t)OiEkd9kYb_o7R7gRTS zmz+Lh60cA^CvXUB(+K`#9sMaT{{ZmNBJvxNL^V|@fCWaeDn47pz&p0PsK60GU2!v2 z<|3*zU4FP8@k-jaDa4_$ZMb;-)$J`yEh@!#H<$ka;Y{>;S4XC)S&mMavUyM@T(%l; z-jc38NSi%fO#|QM6v$8bSn#|Vtma--)opp`PT>7xH3(bep~R^LaaPT~k*qol(k4DT zZ!32l^>@bOC>EJeG`sRY3|Ud|t^?E>hotpnW<7LZ8pnbRsuUSzA0Y(CTRpi4RNv0E(-qRAz{44SI#b5SC*=@xj9^ zEnH56RrI`8->`(*+Hx2tfM&`ObohyVfwpAJCYrZnZ_r_AUWp$tHxvn3WIT1Xf-?!{ z%5!68?0k?tnNZSd#CoP)uo276-0cj4DD)mqM`?O3bqnknVUG2$@oWlKVW zE~YmrNJ^zyxx@`n#RR4YG3^x=pm%BkkoblS^hWS1fU%G07QMDXyMqJAh-NIM@Z4QM z!Mk+*%r(UZcy4zxpSE8#{6 zP^x^(=|_ze%Eja_2gwb@kr#qnpjYgI+(fR1t6*h{2IRJR@+};up7u&(yK8`LP6u=L z!(enK&buYo*B5o@N`aEKvtIf`j8HZ^{{Xj+7mE1V^ZDz1bY0kUVS7Qd^X3n-I$%C# z*yUuK-Mgp$(y3#uW`<03@TD5w#C-B^TJ7MPD3nd{m82dJq;N&U+W0NR15u@J9{Ea} z`c8#y>8SM>`WW={(CRqqbu@;u;Kz0a5#va7TH+$cDMtvTw6-^IyIBOq+6Hy$-Dp{; zf@zz(!CJkmi*c-o+RGX%Zr;)O)x;}@`;DAR61Xp6%PLW=Oq!ACH4ayA-{RkSZYki` z$n(9!k%S8Ddkp!wz2=aLgw?O3yl*gdt@tLBhh_^A+{pdIC=P)ZAp+tO1FK>yMV?|9 zrA`Ion9VHAhd=#(rg0bj;ZS0uHtKZiPqUw4))u(b|b>ndPX!vDOQC4a|pt@N4F#rGnX&1t5sY5_AndG?Oj5L&` zXk}yFY1_10)>It7kRX~Fq}9`3FbRlbO3>nH#uG@P*w~clLnpFKA)e zU{~d^+0oI5qjc?uUMD*ola-9FFM7$((hvt`=Ue=$+et|wYkvu{Xp=@RJH>UH+FHP| z4Tw+cL{2lA+a5eo*y?C8qs8T7u2>3s{0yjK-!Ns63iIl=hjA zDq05lXz<`0B)crSa#>L>A;X!Y0u@+>VHH7aP`Tb3%aLzw<=z=I>RhlOqAW_n#uo2S zxQbBJR|AtI0Ky{-71t$L`$X{;{h|0%-Z&3YV*SlsspcCyAde>}Xlv-N{3)J#vqR8y zBh*422z0)OOoYul7q#}fmAMI8REG2^0L4{IPF31% z!`<3cG|YH8_krk*`=tYykPEY+8q3HBs4u+FQQ=oOOqf*-uM9Eyig49zM4hv5wX@C=nej=#x z`HzM^YCDD4Oa3!)ag@U>V2&mF-hv%L z))|!!gL1tGQzE$I{wAet!a^ox6rLEVyl%2f3maWJLpl~CWA6lXV?mUgNF4U;e&xDQwKx4) zTXC4700BUBsI?r_yg_2V&?-0s+o*wcW@wopBIe*0N^V1!SJ4%d%I>9oQb{%&D_g>U{pe-cXAQ4_UwA6RfwF3m;C`k&c@l4Fo(ADS`O%hkaD|>`K%4R%yhB8# z#SM>%YS%Vr1Ra&thJ8*bfGQHG8u)zuIx{7^PjxamT>Hu8QmvolWyWDi%=VTN<`= zXQAr!vTxD#UqI+W9Y;bP34@}V*!F^ycO}t@O5625!{fY09PuzhsmObgE`je8fs3iW zVkVv&e^`V92Lyg&kU6@zrtCu6YWrn0WC9D90M+i{b27F=5DWkcq8$mMCTED$yRfx3 ze~4)wW(2)VKvwnFOhz(l7=_-+XZcDJHUOZC+nld=gS`HjxXhnu5%qs58lBSii`2y- z=WTlks;X7peJr^8nDt@Q=tH2_LK^z5lqCRKx(E8$=B~)6WhdNEr9zNl@;{R62~~%* zc&V%%ibgX-yx0;T6>Bpv;-b%+CdTYA+K?t~{lNeZ$NPsu0D3Aa9v?7PNmo^DtIyFJ zx+wRA;AAX@nW=DO^U;zJ`4at}`$7Rhh)0Z=Eno)fr_2-?#n-vM@FCt(;4*uc%i~Va z{{X@C7@M)^^nE3CIuk8=kn{vlEkH8cKywpN5!0Sj-@kyyt5p{UfRqGxP8hb=tH{kF zvS@)emQX$502&2G3UFnF@TUuI{`$%kS_Eyn%)>~a^Sqi}q zghRWS&#W^vt2$EM8-AcUwqT;A33_k&)5Xn_L&q}0H-XQHlsn4-oS_)h8cZ?>&td=o zz+fez!5xgWR2Aa>`b#)zh$#C-s@B{AynMmKcSLNId14ZPbbN)Xw5ZU&NOQ0S02Bvc z$6A%?dOn4&tYhjL^g0rbhMg)Ut5BSbcMJ7y(^+EdAA}eV(6Cyx;a!s?GGMByJAU*X z5tYJH@YXjj4vh{#+d&pXF0XFK_GEQk zE?iAz{vJ;oMUu2&IRTN2J1ZbFO)0R{rf({BWdn{xtIIoFM>FA0$?-S(mg`!;J|?_MvJ(?2K$d%+%efyWuZ$ zNbDh$HRLvYPrp_5dajR0)@#tx5S7db!QG6?zx%PqmvFf??jX?ZL_;|_e`bBgX%#h! z-RjGt_#?5iUg=_>0`?MJ-OCOomNbbMCfZNL7^$yIU8b^fVAA=5-pYR_&H_Ge{{XNq z2kGrCMF#TIj>~ce_)Cp2)fuY(%n{7AK!Dr(KqSFPp}4gC)F*Z)=3Wh#M|K91jRSU6 zP~%28kN0>M4)(cNL@t^`bx<9(ms9RnE}R9ca`uM8H*CdK8-3jCaV(aX2a;&g_IICy zI~eXgntHOm4@-;D=*OuDFxFHUt;Jbmz;gJMl9(^AA-DAi2)HNC`j!9%BO}6yC=Zoq z=1?~M%XJl}XvtRCj1@Ubmglr|RbQZo2WU`50Y(pqTH}NLj@pMsXUa!@FgY5iVd)9- zZ}V_0(5ziJe-SpO^(=w0GCR#hx&%Bdbz7F#=1@nEOhTJkG(xC91dLjmVTcR`CHR7s z3EJbA^Wr6yV|#jr9r!2 z;}9jh%7K}tSFgbE%S(i+{Dj{YpyuG*~w0o1`Vlpv25K z7wkiOe}rihcq0|`(s>x}ANv1PCoj!=S9p2QM7J zd?H{oS)+1hmRjfDCGPO>m%0j-%tbAuxvTMTRkFNX>V1${z3r7vfH+YD0UgP3YHF;U zz!kCIp<_3g5s$1p%6?L+JQ3L0rKcqg2+@T1iDb|QPX=q`jsbTp?s}5q zS<&ddUY_At-fWdbwn!N1?;CC%=Q@aUb+hZ-Xch;s!45Y~5&*%}8oIjkn= zhMHERkw0;CnVV4K_CeY#EJDNlOSn9vrjMm~==!&{b3_YX>0a?mSRGcc%rR3}F9EMicQ(rD6jVdzrH+r^QXFFNCRnj_hWCYkVkVw^%&@3^wog%ZKkE@#>W{M@tcl%B;#)qJblqBa{X6r7II_H+a^Of^rq zN7m{GWd8sV!QBSuVhUo7w+d&w5|OuJs1yg9Z^YL(;#6B5n1GoF(r*V6;?}*JLNHL_ zk{Ekb;`cKtj5~q&e22UY#cW?8_OzwfZ$aqw6hd5vngFW>M=F}WO?l>zRtP- z00yRITjdM`y>wq0fqe?9+)(T7r#GZGbsM&gQ_Rp9uY_l8i};IoT$y2)J(AFO4xx6^ zRZ_V$g?p7@Nb)9+c(XJZPqzO6my#DX!%#h~hjRU;R^@VzEM7i-XbMRAdU-3*TmxFyq zle_qe1F2)ot5#{JZw|~{RLf%(s9`lFjn(yi4z4W+2GM7$(~0kyMG@O(9W5n3h9Y(j z?p`LS;PfUXN`WdG%{w|WqDQEFO|*w-j>e-KAI!$nM_B22c!>t0>^sUK4Na)?9cdO~ z<_y5a2h+ecc3LG~@@Uoo} zo;dXv1(51ZFq&;Kxw+aQRF)*S*d-V!SLs6D(jDCmVCdB3%6D|S#~@_K&OrX64NeU$gYz=?86Xxoe~J?4?;?VQ9>sX zIx3!vrU}k&Ua&%1;Wc)CVGIq3-$J3?qA(k8Y~?L zKX3XvAoWes_cqzar=mXb8BQ+wg?m(Pw#IlE+7Z7r*-Eej*Zod8$mo z*Q|!DF*I`ncq@L>4FDMZ9??~mLtV#nk_n@mnNT%dRhD3?7-UDe+AdYiiv{*jNq4$w z=yaR(+8OXBV-2Mw;rR>nCG@y%QW;u%9MAf9wkEHF88*E2fV^ zMA}q3xn?9zg%lg;B4#VY&~qJ|#GJW~4v>r{!u}s<6{`pDF#`5`R7Gpq4@;~&01uy zJs(Dh%prhzmocQe%%c^OE>SSjw|G#+*%MiJ0s?|3R#bp@sZ=|^T_x{_{E zDbk^~V+xVIcd4dO1qTtVSakC@hj@#Q^DlfQoH{-pk4k|E$?}<3x}fbEABGqY!pnam z2!mf8Dpy5=m*&eH&8HAgHb5b=K%_fjYKPInVmu`mV1W0UeBpXrI;HhnZ!R$VA2?C*Hl%sOM>d=`HD5E4gjFiEZ5+~%Et3G0dOA!D3s=Mx_ii*B zhT{vl9$Qt=k6K!GV4(RhTSDyUyt|dC)z6rJQy^;`fPa3QNTm?cnml?`!EFT;c!uDp zJp+R6m~*~g%oiA7oI!LPAZ>~`ilS^ z%)jgl5~V4bg9+{@BtOMLG9i&OO2Mn%SQ#_;Zbe9!keVU__@FeQuZ9b;)QbEiFq1#I`yC2 z5FrCHv(W3vgRx)cJe;O**wR!Kg9oUxC3L0UZ_!aE2=rWG%vDG^MX`@+(jp*yYOEc@KvGpj3JlEMjYk^rzvK z4$vc~vl=0W&?xkBec_j&hFdD<^DCnVF+-yStjnR>c&;dPNG>p)HA|-D7V<|xg2o%_ z{bHaF=vD11C}GHP45|l?WjH=3VEBV~Q+cTK1}$CWaFAG2X_4UuB(~#8MbKlQawK+! zYQ80dd9Mbn$t7CPY%$lSt!icffKu3PFqdxxLj`t!VnC!a@!DjZFuZ|kaetSmDi@4j zaoHkNGQh&|7X}`NXnB`WSzrrhD2D^LLotLRi*RBJBTdSl%^>0`#5yESv!u!yJEq5I zh)r(&Ln5%mZ_nDwv?;bV1A6`+*v!7(;zHG1hWJ6I9W*NFHn@L`#1=IjrOS&`iP%Op zrG|V#Pz-*rFZ*evm>79?mwh!nLNt_CW|H1aOtn^Rw5y8WQm`*|S&H#uuPrOjz#;R| z=|?CUVICHABB3?GYz(lK(&mY!yUh295#inqM;$FPK^&3jE~(QRO-KoS7GV;3bR0cS zv+Zz+YeaU{18*!pa9}CH>gh98Zv(X4+eP^tNLADG^3D|5()a9Xj z>$~`cU}AwP%?BMtfytje1!_|GngQIE0MqvfGo?b6`(Y`=j6G^q`z9yK{Y3&0=}LVL zl{7_Scp)Lr+HW-~3$HU@L)hw|+#>`Sm_4GJp$DeuD?J?}tkClqBGnwhkUAUM0U&&^ z)%l%|x!ZnYivUpYG>T4=nAC2r{{UnKnl+H>StQh#3s7y zK4xGw!_mx9!_Ws-pzLq@;SJ{SX%?1J%+r7h&v=2E_*VlCQqHG{+t$W3p13)&1(jpq5iWhD`#l4t%o$b*Q>y{Kcu?qo*ax_6G&U!QSjx`hVWiwz9*n zQSeRoJs1aQDIHbNCa4SOx=m&Fm)oMT;%8><);coxTqY*VS5PIyv01?e^AsLo7{MHA ztac2`p^`eskl2<*inNQE!hN1h{{W>GgZ9qG9V-vByiLLrDs}Jw0LX~D96XbG8aD*h zs~)gDLN zou(>peJpN{vmy!{HG^bevQYdI?3(n%H0Wb>3?gj^li#Dk(DZSMum^zF7BAs7`2JfHD02&MbroRJg-c}ln_uzpVQDVS+$t%0q0?F*fer+1j_&;I}-v&wKe z{y=tDF00GlBAKC@rPyLxwy17yd_YjS2!MD$XmlEE!f_m(P}CC0GM05n?P!iN{@30L5N5_Phd|5(47`~ zXpWKdYSt~~gVE^Pp;w4NJmbr|Fb4%8$j>aT;Ju&?0vH$G22oewkAiZcSn@bp_JMKX zTc&VAd3R6L$5*!#6ka1ZUVC`vQbx{q79lehCWvWct3k`TONOHCvt_(zNLh2{ppCv! zJHKWJR{hCLIolG)Q{fA`Z))YagDT%I)bG}cIUl(1(>NVXsPxoc(8ohkeXgVdqYM)c z{h;CVn?ONPL?1FyKgBLKIq_>8emCz5ba=p zV%cYh3^Oz%q$6%GWYGDHri#~%roTCXu3&hTL^T|nlOa^-j@?GA-#bM+X}2?4fN!Z22