From 23c95fd2ea8be3815523bc255a3f8f9cc599c246 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 5 Sep 2025 13:00:42 -0400 Subject: [PATCH] v0.1.1 - -release --- README.md | 2 +- c-relay-x86_64 | Bin 282816 -> 0 bytes otp | 1 - relay.log | 133 +-------------- relay.pid | 2 +- src/main.c | 435 ++++++++++++++++++++++++++++++++++++++++++++++++- 6 files changed, 441 insertions(+), 132 deletions(-) delete mode 100755 c-relay-x86_64 delete mode 160000 otp diff --git a/README.md b/README.md index a2f2387..ba16e02 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Do NOT modify the formatting, add emojis, or change the text. Keep the simple fo - [x] NIP-01: Basic protocol flow implementation - [x] NIP-09: Event deletion -- [ ] NIP-11: Relay information document +- [x] NIP-11: Relay information document - [ ] NIP-12: Generic tag queries - [ ] NIP-13: Proof of Work - [x] NIP-15: End of Stored Events Notice diff --git a/c-relay-x86_64 b/c-relay-x86_64 deleted file mode 100755 index 2ec9ed3391e3f654effa2a9bf72e107462e3792f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 282816 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�) znyo_X7P?WZA}O%ZwUr;MQ5YL1E3hVgm{v<~s8-sk1+Ua!r3tk;vR&3S&)(9-BFivu zthB)XsuV*Oi9?S|NNX4Ay1pNL^H5{Z*r+H5?de~NTp!AE(dM?w{)G;5_ zO;k(d#RYcB{}q)r&XAvLxBaBDk}clo=W6Fws{%%V3=@mCKy9tr;f?j_|C(fP8}+ds zYedM|$x^Z|p|aC1$Y!Gj^r0#lYCp)kv{$yqrE(kU{=0IcWRB7T@<}$BulY3RSJ@?0yqcC263da|m0zl!cv?Y4^jR>$>wyRkl(NVv4|GX#G9pIqK;+|*~(NwQwjm`?vxjf>O!J+iqpDyPwP z+H_%gJ4m*5Eztbgl$_PHF)C5lwLqV95*20YeE#=AdrG70^y@Tjlir&8e6mG-_%%tZ zPEfzUCDkvGI*(P0j^AZ(#gTI@73CP1uI#{^Ec2uGsEk87X_l)o>E5AQPOT%eeQDI+ zG(?Y+F(sq6w|D6p)o7-Xigw_gRI8nwtM8=pzPjE8YVf&?qw}}zYIoy|VeQHdYkkzd zu6Lqzh7qsEsdlF1qH1ERnWxuLGSXfYtICwys&AGEJytti8X`SFMv#6U;PU(;lcV;W z&?rjztC$zD~V9dGDmdMs<&DJV(JLj5QxdZbpy-{Z!PmQ4}sBF$DB zn0|pemG`xhxBu^HRR_6llK#^(*A_^~*l1eMR5Fr%^p$;dWG>gV4V?GcD(}A=d4F`1 z38+H%IdUZ4N6RgpQ<7>#4}o>!CJWGQ@AW}2>8ErEiUV1s?=FD={OR}brWA+ezIiao6t5tEnsiddvyQKAU0>EI??w4{& zNo8Q2^PMWwol~Sk!XrMmU7Z*7Gt2zJB>n&UK zBRsqL4gKIwWw&X2Bp*3^EBdO!JG4cz+w|u$oTkU6>(gJzJL$yBr4-skeUD2%)w@DE z0QHdJedi1M5z{fkwM3eFp}1;o7wuY2&+X@G$?Y7;ZCjmoxV&KAQs)=7ggIusTo7sl zXX%ULgXE~XGQCue?D(LBx;^2M0cuzg0fcaB$vsL#}V<@^?AAxT)$w(@RuGij|+Gp>U>=JwRT=`4JsX7aJWLxptkp<^U z{ES|uG>5?fplK+qoTXg#93;Ggm#%b<4c9BE-W!>Q|TpH~f5b;&B99$DbmHp)^? zM&}fDmtxeQ9fNkr`K0ogZI@u(6&>ZSdb^8SvKn_RhE@G}P{lRsboq+$!7b|j!7>4< zG5)!_W#P3{CRN_vZExr1Bf0t=B+G^4Uy-`ThCcUixf!U6AhX-;Kj{73qe}XDf<6+q zXp_X`hT;`+O9M9%v-g=Kj{}W7hMDrX(8y!mKO~Qyl85<&Mm@6qua6gR-3?x&Bfpo~ zPw&X>->Z)FmH$#iEv; zUun0=#ZpQ1ySi>J6)YzsHJ`=0&6j?BMfIb8B*_Hldqbt9MMKgWdFP_tGODzbrG|2J zKB9K=qwJ(K`khpwZh3*Kj!bF2_3M_(OJq7zHCA)k>W=waRV}DmIo4-`oPDGZw@Iei zHQf5|^t?x_yl5v_(JxgQ|07eWj6+SW9dX}4p9fTWP~r+TDMX~PrR3%# zcDnxk0crO8BU1H>o@#I$oOZ}+I(vV^9IeKQ8c)XE{*ve)QZl&-UKEfIn+D3r0@3?2-%pOzWb?D{c}b{fBiFjftR75IfH}10=^{g9Ske$6{3>fFiWAv^cUZ4%rj}v+Gy1d!eq}Cxuyo7dKq-Z;( zJIBg3h-{M^(1$-KGmmYgrUyvg`bnWQx>ZZ+y)L0j*nrqMv|J_`w;rpvLJGvzLeMeiRrL7)TZS|P!QrhZRZi)NR5?83EkcP&9PCyyW1AnJ}qN%TK5di0aY9{n6r=~T^h zq?FMc{W@F5C8~@|r5MsiN9DIshrb$RA5$U!hk| zuBK#N7F{bfD2;xqO_w~>-Hk~qFWKSR5$d)^uBJ7IwM(n&^_R9QnYzZ?rQ0dj$zWbD z1yN7E26<(Ps@l&qNoiZc#+P*3Tp|^TfK{uCLE_8tXH4M$w#- zyBzO0VauWT*ps54f2jsb(WPqt4@&j6RjGNgxN5XtPHbOE)L&mpx5zE((rE7j?GI_X zQg!WCBja_Qt@;qDNoiDFOscl~OSQF($WnEADGgG+Q<$-(xM)il-ns#whV!aWt)JS}N@YjI=#uCj zIr?6d2)*BNx*RI`%F|Q1%<84z7JW<&#Iq|sw(9%TyVx@g^5U&CUStg?>$>mca9SwY zXqU?XP%C>iMvN<0o3u&CxRGP{2dQY@N@S^A`xUR0zHis={X!o$6UF=8aVb)X`ijk1*;g z{pzjyKAH5nzKn|Ql2h_z9{V9+GyD ziwJLNbi10ZyJ>M*u&JZBUV`+e#@ZwaF?FA5e4e6CiNEL#tuS+yXF?v+EWx0ETn7CX-<+G~1VYpm)0)V{I4$;Mw|itlN} z*Ja~3N`*PT{qc_czxiCR`W4yuhxZYGuPOfDM*Jz+`1u|2Y6bm~^l|oPgWeMA*4?wJ zLJILOVmiyXYcJL`k>SP(?Or5LRw%~ zBS4CD#g*x~vOG5ORYvPr{dm^ryQ-ouDpmgH$q80pF-z_Pk^2dfyDTEKZ{>t2Q`X^X z2Xbg$f$^p8FQ{@}As5cF@ZaZrspin^dRSloj+3D`OZF&TbhOMI+TC(U%TzL0KU2uG zB2!PS&vCMRl(?@Rm4L@v^|5n|d`7!U8eEQQ*_qm}1n!gw3A{sIve$+Sjrg4vvSu)5 zjUn=>ZApyJx}qJjMICe={jljSeWZU>a(hX#QTrd7c|@{Z*X>P-R6p8rMxOVnPfBB^ z)p(vB-&cRdZgTw5-d=QKe~V?|yx8bJsxq#HGh&y?lcuV@T^3#ov2Fe-_f4Us&uC7t$m%Z zWG!x!TB+OWLl+%gqo%lRs&cVz+trJ0xr-d&Ma-)2KtPe@XOH_3+1se5tU|>+oU6-yNnb4+K<(E7tvSL<}>{*pJI#l zuLWZ7?Uh?#UHG4lcK1fjS2DdN?~We9#n1jy5^Zm` zuQa>VPxZ(MqepI&WLiBX(B~-{3LmRV=%ta<(!03=rDy+{jW_!7Z&D(oAN6@`+oK)* zcv9%U`>|ZLL$j1f-L8`4mpOmc~_kT?Nt-jy5bh}r&!PL{$1#ST;O;wR!J?^npZm++3T)i{md=N!Ut8vS}m26<8@i5t) zysqfnx$0b5sy~={RoYl)@S#)HwbXj)Pkp+v)u_8G>JqSrWT`qm_Yg;(@EeoL#S*L@ zpQJC{M}&OZqMeo<9$HN{MnA6AHzr!NhtyW7%*@<2H5#N^E!trlRGIobA?2_7eZPt$ zY&Vs5k(zB1i;Bq^wZteY|PO_wd|_NiR9s3Szq5T=JhvhJ_?UCzsW*2vYBH0BuDi)zgDv$DF!`YzVz zH~q3@=md$$u7l82p5so(UyIbY=jZ`{4ESrzSFa4Ju-=kyyXaa4$-UO4?r=C`yvgn_RNViywko1pI z5y|2JsY3ciDSI7rUmq7cRPxP-$t7rQ5ea$TTYDI>sdVmufx_N~RhR2Ka zqHeiIsZ79fE8z}*^Lj!3+e9Pf>EtPr zkeSE0#ecNEMAlAHQ`y}nt#A1LEPz7uF$c9VdyUOQeWyIxc6&_~iz0M%?)>7TBc zB-cFJB;)-hYE;eF%c!^740$V8SjD!Nx)$h9^-oYoUuLqcX1u&9jw~*ayA3rZ@?JYt z7J_=+*J^`QF}fDWR~JXh$MOAzQW;8hT?dA*?qg{-X$YyYy6o&NHIz0{?V~!gW{7N0e=C1sy-<~zWvf{y>1^x1ChrIB zF}`E6NQx+xUiL3B^{uO2>bq7O&qLd&>|Z=f4$NBFEa&N_8B$(bwcPBGJx(le>VxM| zN$ICZshTR2wnA>)sa~m*w0z-8&cpJ3?XP5?8>K^JLrF`qTva}ErXICyhGcE@YgLiY z$bX#LTQ2|eC8ZxJ^6LuvS?p5eKS0vz{4}n>RZ_P|-;GtjoU|?LDVvJBtVtgvui5KQ z86D}Z`WmZR3MMs(^?60gE**EYJQc~#o5SAK`|r8w(tms3mzMlV|A^7tT2Ow!PK~O7 zyc(ltf_fM0bB4-EzWbN$YHf*(j%FF5?djf928np!5t-D!kT)yUn~yqzh29a;N^_t1 zMs}IEy;yBOHMf10Y}bmUaHiQ2_b1iU5?NSFF^alM6-<-jNcC(4yNGfQ&7O(%C4@S(dgw!2ZZ#e!yH=~+q5A#CM*F~#a3k3JsN?Pm4+5bw$AIe3tYu8`Z`v7wjUq27;^ z12ER-v4?3@?Uz8g3pr<<>XxD(Agh+xG%_Xe?jwS4ZdT2TC4l9s8)fsk$!Q z%NrZxw%z)PV&f}Y6$MUpI8T#9H~YmlXAiaGb(&r7F-s;jaaAZeC7oCro2oBsN2?~3 zuPE#7S0m?iOVx<5+})pL)h0?8=o8^6`7&Iry1*xGD&HxR*;nN$XRlJJokP1*+HK^S z8QZdJq)&|NCs|RCjQ*uPrMIZ@1^Q!TqbkUZ5@W8hNqV|%UbpW0N@Qh0gBpO%myRkO zHDa7|ruWrpr#eHGQ)bDR;AF?L?UjXUug%w->YO^id~$`f>GQYA?oO&MkV`8)rw?Sp zSJ44U4@&&(eM)VNsBEJ<)t+A0w=Xa7D|)qjTG`}^Q=PNC(d7j)_3JssG@XRm z5w?-S9v*G%<8;}FgzbzQxjjW;*CDJ*+OA~kFEW}u>+`;3D#JlCy-FVe6AN7G z+iMo7gZ}jBW!a81tEyJ?EBV^xMUuC+N#E7y9Vgg;(mU6vVN`U;WEt0&%NSSRaFGin zubR;6ifqFAb&@=}*ztra?^<=)rCPkV6li30alw%E2h#V`ac`r0+rh zEv0d)^Jl8Ez2!3fXjV5>D%Izt zh;!ss?c?JU_3vvIs(5eg)cv(;sj5S6*yv|6o- zD=Xkt+UZgWJ;s=Edl><1mgNEt%?0RF?tIy`S}f>~D|Z^x?Ld7MB1Ot{6Ax0%TxYv{@=ZpKfh6r^$?} z{ar1|qpQ+`B_YqNV|^0pv-15nsY&+yK4Fz=+M*99$?!P>&1@~MTGvJEC!M7xo?GjF zS0OS?N7j`V6uuIXedz=B3>gTM>bTtC01?_##v#mlOU z@`P1Q%BJhR9#R3hEmSCrJvFbJ7JD7{Pt^C|e8uMP!TnRJ(@_BF{E^b&LpH&m>6Sop!g>2nVB@lGM6hUGiEU zz&D5FC?09-PHKCk>?i$*G`6vRlR@bnAr~?7yD`b)SaEyNO}%6yyy+mhBOd)yGI>S1 zLC;&7YMqqM7{9yaUHS)Ua&@k;%I9S&(xaq-ca=(3^2rP3lY0`bi)3 zkyn|ayj@mn2g%#wlh&k9lia4qRes*n^b?+44)JC0?UlPL`ZTvu$}Jz2y0l7lRVFP7 zJrgy}4cerwl9X3k$^EL@VRW;M1vxC`srN~%^a-Rms@5@*zx-b6VX_AqgzEBVmYmP! zfSxJOPWzQi{Z$%IhTs(0m+WYs?5ISZY!_GUl&9M}wK9p77`>voRvx3rW-IuGUZyR@ zZ|d{zKvgE`ZhJ|WHQKR~C_ZVOe9KOLySHY6w4~%EJNxw(OtqzTQd)gAG)*Rv$nudC6T+9x8a&7P5~A7ebIc8e76vmc(5{J9^7>W%f47BjL|{qPUu8BuxW zo*$@un+J6C$6pz#5zc*5_LC*=H`Mu1Mu$2F7$-xu?i{QRS?Q!xI`-g{w|eL3{c+MN zy|+e2zn7koN>t0?sTxA{&qCRw-al)!I!|8zNS3nORdSUg{qvz3O)^0m{j){8L1MH0 zBZ2yumVr3hXaK!Svi&qf%A$&Q%Nx0YxK!Svf21F5HCMN1duY7uPJ#y|Iywg(F&5)_ zR7W;v>DjDFZ~fJn&klYwDhJ%8J?en-$i&uX>CKXxJpU5bkA5xux|F4^=qLHbRc*L* zOgbWmLiWCKtk3guT`%!dv++{#^NmlusXlR#d_wEvRxw5AsjOvCKdvvj^arRO@KVJx%1=63TG4o}>ihrLd-uSos&oH)0*M4gcTlll)eaaA#3CkM zD$$@BNMuHbivkr3sJTo?N|H$@GXzv5nnanVbILi@)1F@K?bM#ydrJYW63_%~tB9B4 zrGnO$Jx0V!1-y~>^Idz-B_Z0=U(fsB3Cvz=uj{j(^*qmd*0V0#jDM=kjDNlMZ?S5_ zH5vk^IqRx#y6dVnG+U%@M!z>T-c|vaxMmG`;1>IHxGMh{Z$^bo-U)xZczK7JIPJV~ zeMatIt1R6!|A@L~Pg0Mu{I1zho_(?`{}gr_DeRA-p3|TTFr?PsZIm0+`X7JNY5kp< zpsx}{;(Mtr`N5GC|A>~AJ#oQ%w`b~q;a*e!)vEtHG%%(4CSQO_>=r^C`xflQK8-;9 zDT>)b!Dg|avT7+yE3~GcwI6Q0-R%^at0LzMXR<-R4F{<;kD`Y8;=N#ZN}_yn$Kg@d z?JF6)DRtA=aB6aI_2=xogfrb~{#35rm#1?1Iu7r#I>(cxmeW%F8Tn{ z`I_qN(82xeZR~0OQ+f7Ww>+!s53nTdSaO#G-x-hwuh-pXUbWCZ#tB*EgvfaRZjoan zyAvJlxj=lYb?4U3ZC2-YMy9!4TZ7o{tj>*Qm>RGjm5Smp>S1m+;Ds5c6smmtmqf`< zu-n%$kOzjyQNd&=_>%Ob9IJDrY2-+&^CIIJ!TDd3fT<01W4g6JhIW(3!^kQ5LV_RC zLFoivP=Z&FWb<2znMu0nYE=C12gR3W#|IUE&!Bi;cKkHOf8oR9$0)vWQ2b9JnlyZ` zLf^^Yp!gqU$NygO(+0)gogIIV;>Qe%pO6jT7Zm^M2ifg^_|B~Q8x{Zita#DeUl5d{ zQmgB9(~-gzh&=_)g~Ce7!rLyYfmR+vuBXh=U&OWoJLh9Hv=_n$$yN$>^%>+`cD;X7 z^dh1~tJvzD9Woh}EBW1|V1{5cxsE?8+SvP|ncv2>cnJV+WR>T;9~2DO-&Cnb-Zzyx z;|&o0`!_^{2W;OI$vy4*vpUDA2*~>z*wOT!$Ge8YAMaHQOqI`2r4-<2p-7U%U!n$T z{SmeHug~z)P&g=Pz&=HAtO5=)+|xydJt_LkwwJSw!`a@!=1GVgvyfwQ)O1xmUb3s> zNN%(;{(8reW2{bXB-fsrU1C{n4>VcQhZsvWO=EkY^07a9=z4Zq4;|MBJYeOAw=z1s zuu;vOdG$iczs<7fy&V1ST#g{1Sq<1)jh1OTU&e%DCV+FeQ^6g#0`WhAFMs#f?gkwD zujDnetONEZpTWz1gBJn_(|jVK^#LFL)$-e~{zix%unWnNyZ~Hf#=&RqFn|>Rm@{sc zJJ4;WRy&vU0RY2>@gllN$G*b>*InDj|&6%Tih=92e9m8h&fJwo4gA3DU-qq`xAEMK2W90vtOH(X?C4k#k&_c&Hgm+_VVe%-OQp} zmF_|NHKVRzPwlneBCD{{PjW%_L?&uCQ6&Q%Wrdz{>yAFVlp$CGm`wK*!)ivUT+GXT_D#?e z9ihF=&#K0o3=d*n{t|fvZ?|#x*>9bKeiec6()j-N#8iz|=QWb-6t^F}OdS^Bo!s}1 z0MGVeqpZO-mog22dPENAlUaH}|5*gYU$7VPP62{)oTKbv2!OckJ9q26#*mv*>5-Q zBCz>jRyII|yLVJ^$wdaORKaA|DO|R3N^WHTfl=lU@_4 zCh~HK;{~y}X_AT)H6!Pi!F~hs)O&JJ%sUIePNrk|;RObdr=WoI5Nc;U?^=p5$!Ui*ee%`)3B0iGrn(jQwY3>8sr{ClG$WJrb<^l!WyDdK4Bu^}ASvQBhcBNZfAhPXjlrQ5U>*W4clH(?2zp&R02Kr5v+AN^oN0AnA@& zQv1hF!hcc1&#BK7GrvS}b_ht3+T^^Ehy5v{9KA>V%^=U_-m{-3p=k;wei=W#daa7f z;9x=gHxRCr0B>>aVkMuOpjyzH6|HTi9NzedM`mKJRkT;c6G~>dw9=u zov{~{JY2HX+IX^+i0mwHKQg-Qj6_AjPJhQcBcoIN9X&Z*ah4Uk>ZL^F0g~ml6_D&< zC5t`74!R2NNsD~TL|8=pu>bzFzBF{dU-p(^_hi^9{_e|=!{?7cI_0!qGU@Wfv=On7 z1u*-u)%yc~yuV~1P`V>B-+`Cav;EQI0-u~#$oMXE5DI1f(fW_f2>$qPf6-2V>5f)F z?aLV)w9(o)vTRb+Dq9x&YyabEcuk(y{Y8h7ojJY%R(Aq%vwU>h-1y`E(mz=p-!-gq zdJT9E+@IqWU3zl+Kkn)^zV+0@xl3?oQpZSbZLIWA&C3$8MX#`j?&fm|$|+m6YC?xy zU3OC2nbyXwftuWoV9stPgQlHj6IUIdSnxu?`tH-#t&>${{Eq@>s<~Fy-|=qV&D=Gy zc7%N~;>;J{nrQbFvWs;9HeB_jkGHArn|1pHa{CjDk8#n#)`pvZ(Z2SWWwCqO*N%$C z{)=Mr?Y|+m;@h%HY5UiT_|{uqQh}St(8Qj-$4>UVZ+S-VO#Dp8P`Bg~xaoDM-?xc0 z9&V~TJU8btHY;OX;|8;1I`&=K@mRZW{kj}qyPXsJ>*&{mIgj*Pfy9+Ln?{piGd$|q zAbjQgf&0~xf1n{I^7vF_|4Zgwvdbjy-(}tfjq|?Eyi4hH-hZKY$NK|cFUJc$c^cOE z**U(x%JBuHnj2qCcOoY@ff7$rE4UT$UMAV=+D@dkn`O{8vfkVU?B{~MQ65j*sZO}S z-Gm8*_L|(s;Z>4>OcLQ?6Eg~uD0R{%)+8yw0;`TPC7FwTQ}Y9V{IColEF4^@eU^TI z_th*L&(HUlJ`ySDpSXcrMxf&b1^&{6k&kT;#+T&hvA~k#b7tbkZ`xb`7rEI=; zHjB4Yn*US%Xn>6FNu_+T|4FwUS(wVw9#> ze_D#3%0{&n2Ra_gvo_8`5N*rp+!`%L%$?SDO4+f9Z~x!g-^p2ZLfI!)J=_1h@Qqx0 zGL@Emq>t@HNX<(Wo)t($3rE`b!X&9#^mRs(tj^Jl5o&vHE=ztR%;qXhR(m~@1Q~07 zKj=2vge*6dH@W|&41UX&MbBJ65?n|EN>ch0*9pjL%06LzxuPHhV~0<$xiv)2gBa`xpMUKTr71@_L)S*AiAEX95> zyEpfeNrq+douCa7+1H%~<4L1#YHu|Ij=v8xHv{@ZccY1D1Ok9Oa}w0;CrY1`EGJ3k zJ(4UQ^j??r4tj4+77TiiX79hFyz1oZh=vqB1Kx1+d1payI+~`_8PTVGM$q|O4P$i< z6y)nYhAZG+f;~-R>~E!7@zFTQBDf6_Mzggq9CFi%rm`P^h{W|Qm+TuDH!w>_wito8 zM#nn!Naru57KJhn2jk`x3jCjzKiWLOCUV^;Nr6k~)fL${|1jgm*xK>F*ZSf+a4v@- zt(wd> zvQYy*Y_7AWZ?!(($?)}-b@TCM&}f}Cb!VNm2qj?pIK5l9*AYv}&%Noh&e~1zcI)%A znYCM8GkKb;G5m?+x3)4`oJ!dot=5R3DL~@CG#Wp|eXJ9#+s>mDVAHl7f7Y_&i;P5QaW-wo&Ia7^e3A1&9TPDtn?mJJn5arV9x5-n5ZqG-vv8E zQPZn1P~+ewIbaqOgblWIuHaY;`F})ygKhzPMym2V3GMYP^>7FJYE<`HkGkt5zwUa>;k@Ga2+U!=zPuoy$-ULp z1~$woe8FCws`nWR@oiZSs1D-j7?j$k@i|68apgj${iN==`NJA>e5%k+lJ$CS>|R`G z(80Nlt{jNVZGhF455*?uGFrOj>t<5MDf(rmggk3@w}M->?IKD#s%?|Mn{JzMsZ9=| z9)HJkQ05EvZCFqY(S3lx>h)Yy(Op?siPXpipQ8nXi@z7%bLx1SWJlG}^PO}Z-D?X= zp5x$D{D5`mb|I5arlv$|j{WgeRsSy8C_H1tjgF!tHT-qQ3gP)ty(5m*TUIZE7&_9q z15}4v-ZwoMDxSM5@Tff2uY^=BFS;&g#pM**^?vhjq zzovvrw30%$ZzgIBz3KT1dw9p3ynYM>BY2*Ou>`-nH$_RpbaE|OGvhBEaIA>JA!Msd z3~ETSYZqIZyDP{06D?vCd;8li5-uWt_uN8I@JWBi+VMHS@Nian9?${WG~dxJDTz-H zpr1zUEo(FMoFeD9U}popk(!2y&A5y#y|Kf{Pc~5J7V^LrXwUjK0ALjaq6=!AXe29B z4%oY+P9mKBbdD3`&KH}WFT|NN%449UId#W$_%UV78IX7Wm6d4HzPI_J+; z$5M&V#PJq^8DJ3L1|GZbE+fU07mzC5o4@#*i;yBh?@e{4%d+wD$#F_-)c)VnxAvJp zDY?E_W=Cg0eLz;0h2{?2C0RBfGXz>itfR>wsfSmO;(>8ryf_D#!^hu_8()U_!73@$ zxI3?l5RGm5DpIDO8P-_Nr${y}miBs+-<&|U*CG$#y9R&vv_kEsflBvtO-kaX(>-?8 zw`h>$lY+bR&Q*~RoksU-pn$Z7Kh5anLk6*RVt6FAtLk!jha+c$&ONNr$3P}y-@v#h zF3R!r_oV3+9d=;cZwPZ${Kqr|Q2qJX^o)|PcV<7^{MMYE_6q`034Fb|xr`QNg#+Vm zC3CU~vbDF;O-5wx5v`d^O8&-1O`WcW>0|!*6U?=vO;Tk_{}>H*J#2L*NZCDWyoTso z{vfOG!3RggEM`BFebHkE#uZY!zk4xLnVK0D@s+UtuIR=7?#rD^X(R|f;g3)7$FE?K z>NEM$dD3HeJ7uE_3<{%fmOHaee|#z0?W_J znGRl4`jqTTbk-kA0dr*D{W#etU{m{#G39-Us4bR(2+aC6Gn4f=GgoKyOdLO=cbNu~LDug?Go@Uzr^ao&9w;*XE} zi-P*{Uc%8|v?M)0?aup8C2?|YbaMvC@(U-+Pu(p3i^tWIFk0r!U%7zk8s)n4PA88ricJRR*<{jN@CI6$A%{J_Tboi-+8x<}vFz$D%p|8>_ zv~({X-~Lx@TtpkXJ7HklJx=rtMT_~yeN6!@a@^t2QwoplRDMwWn0imy(+u5D9VAuE z5l%FwpHpP8oAcyvo2lA&R73Z*1;Oq*>}yAYi5qk0mhQ7|-$FQxXs0`t9fa-(jE?>| zO94y1CN3;9D>2g~ZxUDJ1xkN!bv#BEV+SJjGYEWpIw_?y{8d$!{<*c3Wu4Qpe~n;b z*BOBL6aJm;?~Jx?TMX-!oo#i_mAjNRB;v|$v^w{b(dcWg-kg1US4ug^;PkGmH=9os zq~=WyO#b+o!bq3X45QH|E~pe>cYak(7^5b1)zC%0zRSjoL>=+%kIyaW-(c$9;^wl* zWtRI420m@Fvz0+pLX~k0W%O^6e5WAV;1z%7UO(SGapQN#o=g8Ji??Q@ydea0~D^I#~SOg#+DcG^YSY;O3yPutgAPI@p_H z7gy$69X}+OvP%Qd{fy{o%+>A7SYlDXe%?eMurD)k%=Th;@e)K9j6*7jLR#yQpPu%z z5f{a-H3d_gJuXw$w*R;Sp}UP?dvH9eMXC9{*f`-)n|X^KOvXiiqn;xqa|8|okEZqmI9>@ zS?0QVw2Hj3tQu?qzICl1Lk&6pSiMq7J8?T&b9GMB7ytCsV3AD`4mpT8WVd3PIrg$* ze@=} zLsjKymZB=1l@c|)4wa>-$m%#lp=pYU%{+=4V%_Fg5F=;*w?U~;_b?^$o}8j?1WdyT zKPRwkIeVW>AoHpK8c+V*cwIrJ7rdrjOdgZBk=m~Nim0oS>o#BRf4Xd~)%9;5k+(dZ z_j2;4vOVYEMdPQ4<8P}m4IAP(NyM>VujDht5ji$4>&4hP#oIUNntJ0UNaL3BXX%hn zxg!wvg!Ii@D1WTs6y+ACZ66Gica=yE(OG?Y-*CMd_0lL!&ni|k>c{a&%bZ9$e|O$l zauEBz_#ezk7lU`Hn8n71GBEC)Vriw^E#9>iTw9&8+aP5$LS#!CjfXxR#K!pDHO`PH z+c|Qr+mycj(gRl4>+-D2x!3B_c)=HYAF#Tf$ES7_AkY9~pZy&4E7g!?-~x9>+D;Uc zp;(QSS(Gy=kRxe660IL)RngMJn7?!Ph3)}QoQ%bBF~yyp0Cs;o?_Y7;5oSh~Wk%)# zn8=?|YBvakC4k`6axuDTWSQg)AlZ90^)$7cqdKKKBW!n{g-W_hd~YuHpnj|CCb8~1 z9@0bN`;t?Q*OC7v1IY=zX84^Q56DiB)%gj6`@dp8cPFtKmCV)0qUWIR#-B=GLS*0Z zC9P#7ja81hV@r?(Lv9&3QRl3y|@&AU+$le6BUVsjpf z)EDq#$}#k~NZoHVjs=705L4bT^B8DsJ&R>*cjTtW4>)zmh{AVsrmH9DHO7Kgk>7U| z&^_))CL9JeR3JP;4PLo2=+ViG+_{drw#1$0{0BmXMKE~6m>JN!78#S<$&;s&5k;%x z!3C0u+-Dx|8yI&fbzsqd#=iNELCAISAv>j7_&;geuGMoj+3>3cd(T!2^7OF~e+~O^ z&NtBJ3w|*p_GJQ6Q#G;2iGXiEi`45sHl+_}MSBqJdBDD8yZt2nE4oYd|0m2s5z6-| z;GA%O_lah(Wl7_2k{j9m-F0wvvA^b^YMjd2kL+mN#0cI`(|v+a{A*^?cLL$D1MWO7 zJ3rL%>%V68{}#0-`5l5>{aA+LC!i+{(RXeI;C$@!Kv5wZtGVx27a*1%a&Fw2ruwI( z;QyCFlPfSnpUy+Uj^tB7dAc3`cw1^7wF=VEN}bW`9r{ha{YDmin+<#~5#+)r{e3$b zq`$xA&JV55ZxaGRK2VN3Fz!q=TfuL1oWY}6v6QE`tnhKx*nFIYC{qgx@GM26TB3-W z;#>UVH50eSUXKO3++B+*ceMFF%BQB%hgef$W~mvIPmOkFW13Q)?vFE6`DyhmGo@rL z(%g6o{&b)Ue5OLO@KIUd77#B7Ax<6XlxcaA!hfgq9YgM zC&7fX=)Lg&2Sjj3kS<3nc^H07&SU}E&`H+)RgS#c)&F!hy|;;IBCL$E68Z+;cj&%M zOPHePQ~cPMz-gtyUf*R7^7)FEOC-)X3^BC}NB-_(ln=G{)1Z3+zc~f{S@tY{+?U_K zIU{f3gDmOm&=dSL!{w**g76c21o=kPDF*Jj4nGkT%`^NIjQ1ulG_uyzPkD4{e=^1I zrhmjg7*w@47J&Maw;O6U=@qZV7`s&}8h6Su5GMDb8oBLB$Jb=V_YIC0#oNEkDu2r0 z@{fuiH8`I3)(gWmZljl)Ziw#?>0YgVxhjLNEO}CE+AnN>#$Vba;)lY?a+*Ir!XLlf zL4P+CA9px=Fu#*6XmVr{ZxUbo<5w39x^K&0`YzI}`*SG^%|R^iafl*9!B#)?Qt=IZX-?Tcr1c?j*-JgO2sOj9Gc$fHG ze;mpxeFu6}+h_(GFEDVOtH>gM-ze4T@0(-D)c(c+_7Rz8(e=QZ#ot%vvn_@3id`q` z@+lUH;bN_ze^Z*jP3A0oh#vl7`qaELtv3x%pRR29fSV%Jrc)ikP+rhiZl<@+EYr*| zMZ}r=%mj~4QoQY$Ky4Pl2XvlN2NDr7D3Eq3lR%0*9<9qLErt%~>TZFmzHH6B+(@`|Tn6G!vVN zPTglY-T=r%r=l=_VB8P5Z$w!86jLJtG+%mfr7>STY>o9Z-1>{5GjR+fFmGNmmKR4( z>MNHjy$*^SpW<^(t~Qvw=j@1_NCGmon*`1{plNt~!BjVkqfcei=dz<)`=6Xl_%M3- z6Md6zXKK81t^Mi(k?O#>zBAMI?rG`)XkR@*n`ElU>IHl4UQJ+87=@0L#7a)-G|!nY zxcCiGZ~tCbU(JHwPlv5Jx(QD+gQ36^)1ap1hg;sb>~>@gc&5KJ=S=bcB&Vm&Nb$c^ zBeeq}_s5rbowgJ&O~WgC%F6%Sq4~*M?&PJLL4{+b`q2DqhsiJHnz}zc|55#MA*CRB zgySLo(LSU<_P_8y>yM|Pk$<2+F5CBa`lE~TGM#la|D@&L#G~bncW@g-ME{UH{vnF} zhtd0f2q_I$ir%y2@t^37q4KZ%pM+<^N5HduICxTbENkNV1uB=Ct0_P`{`gzA&H}i- z|G8jIf5}!11+)1MO8;2+DZnR8%of49rLRTLc9?bho3pI5Dt^uWWb8X?-MQSf6Mafa z{c$V{OY%t^dm_NZ&1j-*^_nHVOobD)i!4e06YzTehw!qBkd0rR1sICoOG}>9hZ@Tfh}#|f221;+MHoH{at-96VcL9X*_wXwz>cAVl30n9uTC)plQ;HUR zz=|^O$lF2iP6>3E8E8*&5nCc?pC1bCGihj1bq7kH03a_!EjEmaW|M&7QoF}M(Z%@-X3-H>5NV4=8Li3#JGOx@%8xqp?2(!t|+Bi!4 zC>Ma>K>VFxV%(!uLZ$2$i3Nw+-~E@i0&C;0K+Vbj9?aQw$-qnSG5eLZx7*q{hy4zH z+AjH&Ngs?q!tRpo8`yTtE=VF1^K-NtnFOcw|0N^9gYh1J{7p7IJ|0Z?NEOLhKY~LX zf%qHj(wt>&T*J2T_~F>@^7esAv0c5hawd^(gtgH(g0v(0*{eS%r|g{Q)Uvape14)Y zCwT)H0j`w(L&}_Foe68Fe^^hML(Z#5^q=gsi|W}a!irq`JI6+^0=n0dK2oRYFO{B{ z@yRKfa+FKBI+>t&k9Lfqpw3|R>{`( zb$qn<4%aS}ZC?@@I`KJwCw|07#UGqAekA56FhTzfUw-aKWOS>)3hlRQJ_vfqKtZ@}%#Um)Y6wiCtoC+}3fpeBEWYy!5`_S0xqe}&+djrl&7$j&3F%|)(52)Y3$|urr}1uPy9#;LWZsQe(n)YU%c>im zgVD$BYt|Xw?%L|J?s(8_9icz{o5vP-q%9XD7QD|2-s7!zn=&{<%Gr26B`e7QoUwlk zatoct=TGS~queZvvTYxHT$Je?1#TiC!8+R}f|bedYJ%LakUqi(o*BgVM=t>&Cp-5q zWo4i4WLK&BPN}kwC&>LSbnIbw9_=hGnVr5yV46~qhbnrqfyykbHc^E6j)T>yPYg?P znh#7P55b(jv|l(#ZXpVKTV8C4jtI6pjl1<)$*QS4+|5p?c#9t4$7ZMNe$R%d<8LtW zi?(U`(Pw?>!DN(D41Enu{?x~`gp;z*4osdt=$-y>?4_xj&$Q=ZeD|F3lcnZ&94?4e z1-rvumvR=ft3XE%57`AbN;sPvCiC#Jc-ZE@Jh5o9Cs6uSTYfOd#s<3TUv$zFy@@T# ztpAcs458^*T8OvPrRWKnebCaMgzxLIF>CPnbBbsznbY&_83zCOScV>4l(8RY4F~4? z8}UaqVdC;@=REe?QeO|wnlK{9hyHFb`!Vut=ljnG?ESkkqfhia-z~L;a&PnX#FPWJOZsN?<{J!Oof65-c%l&><$-~K&08hHX@@g0N{6oSg zI+kp|Ns^KmS;ijnN&a;7P3{<&+;%ejcY(uyTbyepRDUAx+YkaMbn*}Le*3b)@f(J` z-#O&{n?v5eH{|`tL*9QqIae zN6j(`$)l6iiJ3=yWVjrYr_@!x3`E460qd+@t{UhCDRvlZpA*Gr(hqW98E1x<5~h1- zP$!W}O%!aFC+#!YG{;>)-zOh-L`uTYZjR=^f_AM7Cis#mikF7Tsvkw=^ zqVS(lzX{g~{4+D*Uol`Fa`19oCcK?+t;#zQZ?b>YEog;_0H;pO?o7;FQ`7-F??Kc415jG>Qtc-j5sNy&;&muW&EPToO5;8}$;)3K!U2^zN`4zffij{a`_S|1?N`J*(N=mZPA#5sZjY1U@jE$52)dka%PaY8KM-s5sj_@kiF&+;^R;FAms`(%&2d2JV)m2^sua?Wf~p2v-T(urR6`%TCFbRrIDk)R9%jCi--s|MSvX z8{RTfau z#C(1BNQF4ZNhGuN?K>~v7*hL~@xUS{7!OR9CrAx1X;5$&N&H}%VdJr9vt|N8%ZkxC ziqw+)_G?(IR4vT@1c-En`#$?J#z;5(UczAjM^aDEgnu`a{*Zl2CcHZpuAVz$hCNe$ zYbsm>^VdxHQo=3`YZou7AZsHl0Ua;GVcRrH0Cg^P4MB_MQ>q=ww z!uOPoOAd`LZ!cs^32jrvH;J&n#5{4BuQGB?uDN!JW)Hg$*>|5|)Q3{?fFgbO9T{Lx z;VcU5|FLUCw8-jCIFEu`V=V4>ZC{E983{pYOgs zc$1pE+P|iA((^g9Utl2yRakqJzN(5IM7JzYuEW}yF-4`*GXXkkKOy(bw~VHd(K9rJ z(v@txVjy)lRNaV(@>6g*S4}Vu+J6n15TmGqF0&CvRibP-yeS?Q|bD#9ot6f zv{3uI`(tm~2{NMfevKPIMv$4|YmEI2VdzO?*t+;izA9(4(M>cGxxxrNU_acPH9i~t zxqIeAB!t(ZUQOogFAJQ$ynEc-Mx}P;TDGwzy?%lHx_joWZV|_8=9Qm(!eCVMvO)7l z)hBxp^(-LMTry=zuL_-J6&w>JJh{Z_O%*mq+r0kFM30t!g80E3ye=hVz7qZT_w77qxeLoG&0?(Zfy709C-;YNPfv^6< z;M)#GW#FsN^z}U8Yxy6+2b8si*^SO^9o9K>Eh{f{GZlVtZR#T)akVuo5WwW=e1n> zRu@=Biwdu|ik20&SVi9}Y^O}C=pG|7Z2PmO>0BtH+hkN-ru9-81z2i*oYtMM{$X3I zVGL{RdAvnAvNiU`0uxR*wd$?7|L67@AoWB0NAz?2;KqIg{hS2aGW`R;rg-t6p`V)} z%A?_fwwDCh1JgaT8J%x9^7d(eQ<*yALNM)ggg^cgezy~tj5#|&p<`j*E6f+$kJcmG zjuGD-#Rl#^$5-i#EQlO^yW`c>*yn-gh1?Pop6T!cFyFG1q_`#>(KVvBTuDG}c_#NP_J9_eW!~z1n0kahxd|+_<8@AJ(A%)r# z>2^E!o*=M+Oq+M}Cjzp&>72v&A_KONFDop!53xYeKgx_h4tz^8+q$BJ2WhVd%ge>Ek=66@4exw&XZZV&~^Ru3rFO85pF1Z&H1rTdf7FBe* z-^3IBSsPg_Tfe%bqh(${0$PjvrQfS}&) z%V%^)$g(XrzQY&a(UUyZ*R%Ebo~>2|D2%^evZMR*_eWmtCGdot9q~7MUK`o-@TiKC zo{~3somIwx)!2PHTc9sc`tJM6IiH_}{p_5ZI6GKe(Y++MqI*GpMYn%Ux4)pf{$xJc zQP90)e0TY26&!6jxdN&gU%__s)8c(Rz1)&jNcdE=t7-l0+>t&wr@L@ed{4YT{)dYA z!h%H9OIj~zhr0pk)Ca%H@!5)!S8{gF9+`Vg z{LMhe*4&)K@k2e2jOcmn_==ppmGS3G-sSsG6QA_u^z`%{Tk^*W?r|;IHSx`gl9zJc z&DqI0H+s$!>xgfoWd%m#&)FFt#mmV#ugB-);u&9&vpYT~AKz&e#LXFl&szab<`m#7 zl;>nTQ*-S2obh<3Dfwwq)MrpMVkFnu@_!=Zwx5u!DYU(z7TO#_54I+5DSBAo$9}bw z4jhIgbfsL$)(y}DSD3JJ+tJHb?VkKV&)#Bx&)ylq(OVTh;JWV;KGpTVhu`b^-^V}R z^?!iB!1W)&pO4=kzw9vUTCuM{Njjdqfo-4YaqMO7*v2Gu2OJGY924l-I?~^>hOEgC#xwk~d7ytkt5bpQNZNaNne#O#P!v zS&Q4Gdld(}m*fY#7jQPz&zFq-UVnG}R2>4Mua*@1yUS+;p(C#EWkA;rGsN}jkYusB z`CSLe%VmM`_fJlbKl8f_NdnjQV^|KxALbUdx$$QMY{O?xNMquU1UP5Z^T>%b=Y+t- z{r-}jg!y~6ea!V8+U1}4Y_Q}NRy3{{nM)oK9(RTv)_&ZcM^5wi^qs*qKy%~I`%CzI z$Dz3spA6(6Hu@&`Oa2(d?{=R3?@yHT{daHUFFW-xIp1FNAApG)&Fw#%IsvBA3^d;ZqJLzp8U}}2p(mggp41( zBR=Q-U}efeHz(+jH{fE!at80!+iEkr{{aJzwkZR)V4u)r^!KI~AI`M=5&-XXcBVBaUR=WcOq&y;<3ZJ{SkR&F25g-xuVJ00+TrX zbMTlB`m_@PO1EKptT=H18Q?E{des>2&l_{1ujj@5iqSi`l5N#!0)i*z@aBv6_v-`}H!L_R$G3T=N~NR%C;pg0@gq|4k7DKAd#NfLDFNSk zp(lGrUba3sipx8mwr;0K2ZA|$y`vC>!_0qE_B(y{-JNUZ+b1oDrDQ$P{q2Ui_xQHp zWe32+Td)y$d=F6SfbV|H)SmueN?+sD-%P9XKS7_h@p*REjF`Rtv|Kggg!XkKXGZg9 zug@K0E>ld*(r5}T^yLN^RkaJhV;9*#q;PGw@r1Dv#RN;#241boYRJKuTR z=>utmP*fQO{VSnm=Wt`UVYf=Fvd^ltOP&h?|7F@qQ#LbtNd<*k_wRO!`GCd~;1)WC z?7Z#l*zS~hqRRY?DYGK}7NG6fP{|=?O7m0NNJ=ZONYp<7tQ4mkrbJ_eP@LZOI&Z+J z@;(^7%9Qsmp@Q)(z}vH-ypscoUna=cvv&-7$)Atu*?VHe=&f_vjWl|9#pvDf9yG4m z>&J|t5!UU?FPoI&Sl_M5w$lVzrga;~_* zsOw3tPQ!bzdCxPYqxU$k|CNSU{OziTem?iWOfyRntSB_|OS8DgB|(l^R}3C-zmF{Z zOWGPKD~+-|5dX`TiG-q2Vz=WypYjpfZ^x#)VBwW^GnRCOPV|}~X-3+MoS0ZxA|-LW zZl2*Rr@LPEM<9;*$=Uy7JGxZpcl7-ff5Y6jylRZA4EXt3cyPxjHh#T-pnQGH`|(G6UMs+(yJ=$2fJ;nI!fIwFyb={w*w12w zx(zAFF11Gh8MO)tAERQeCur8)LJl+Q#%fU^vsXpo^~sCqa)&?BpA3nB$>cL|fz$uD z+Rj7527Mvbs$PoR{zb>-6MT->XmJ~sUl_HG~=(x=60e| z`-{@E$!1gpKL2z|Fv0dBj)6U=4r69;Mf6+A<5F@S-Q{4<2&?m5XuM==UA)3NVm@;16x>%~y{~eU&!t$vTp24u z7-XJt<)QAdlq}Q+M1RMaLRNrYb$B&>2}5V$Y9d{c_$`6Vz8a~4U&7C#cDRqZBpV{(>n&H&VwqM}NTn z`eI1|eXzy$v63VyB0w@y1SDt$EIDEg;z6pO;lO27X`GFyQjfjq2evt6L zn6Kfz-73zBzhvvaNQ`D>7|{_}NJ$KX z#zv3N*w3*S8@Y8;VKMJP6N=?fmPT0aFkwtHdDa##z)mOI{`E2~wpc}9FKh=gnfEu~ zI`Xc)_)`)S?dL8t+GFXC*#5bRwdGm_?YYt{G#aJ#%Ron&NJZUEl2}aw_FQ4t7Ys;p zo&sv@RBLPt)2Y=M_{)p!OBbp?8Kup-V$Wf9#Uc9|%6;H^Ah55)ms<0^z^MUf%^eMW zlnBr~r)fEXDfa!!g4b=uSdPJkotEghxlWqvbh$OQz8n}9*bAvmo!P%Y1g?Hpx1{^s z>Uxw{ck#ki4%mud5Y8Cj4vdf5H!ad$nXOFZH&^msfkpW~d)nd?Ab#VLkw{jg}D=+TOt*I{5usauQ4 zg1=-}{Any2Y}hI(-3H(4Q_(2iPIkW5a*V^C??KXrQj;HtvF*pM8bqwa>MN@E=*@37 zp)PZtr9naZ%0ziKDQ&SnHl~~ zkKg*&A4{WAY`K5aCmJvLWJ8>z5&JtsXAd)o$FJo&K`elB&d`-iAh|`Qe+4|AKn zz7D5@g}1!AfPNb!A7ytGu??1w_hiY(yF_|uvrHEr<+C1$XK3~SvQl66xaCMY@7C?* zN(8IwO-m{;`=daCSb)BGvZ$%<+DbHW1Rx-JGLA4O#^bDV;&GNats*Ba0lzA|i%eG0 z7fkmOa9`oiOu!w5dyV_`!q<)ay+RpmwNP4M++UfSOst~&%(gw@qy0kUYhO-#G4d6& z9J(y>_5OBpOT=Cq6waMZFZWOaRi$CqzKg^rr6e>BI%65H4(J>R#qU6m$Ay{$!MwN- zk6nONT!K`*9;sNr0Lgeg(z(U{{#;co$t<+}@jcV^_5)WSnYU7-{SdwsU?(|%IoL@H z=QM5{oZPQ$)azgdkBb@?M4`uk=yg0?=9z-C*a^`>s0%F#F`)7^Yx;vBx5l=&Qk(y9+rIYaHyg<6)Ir`bc1meC6B zpPCDj_-I82M5yJ#8Cgp-(gN=H(l{zA_>mLGzt)I|Op_=6aN$D_6dKF-DdOP-u0c+L)08gLkxWY9LX@E*6wA`wD1J*C2ZRBf)oano+pR zk@MWIl~_a5`t`9ke|)UW>(O!eqGJ#9p|-@y`GKO}b-Z-A<6YDMjJE^$nY=v8=rFfC zmv21eUdYA42a=UUW#~rDjeY=)srs>Vm|A(V`uGGCA zK_6YB^r@eNReK4vPdrxQP``TqFt%r^om*{E^H zR_^AuzRAV|t1D!pQQ?>2@g3~D)ats*Rh4XdiEXTAIZmAFjz=*@>vjaE-Um3 z_#9v2S`=xROFRCGVIq;BS41~{E~{N^KOov^9Jth9Ss|<%;ARv_Nk`G*r%O)wF2EI_XbK9J;c0^ z;SIiv?bmn8eWiP156Ujo!WEFw<$O7#+}{B=m78YE%RThsTt8RFO^vRKAGUUw&ma1` z*%NsoG;Rc&)OIyFBOgW5>e4KFHbv5!S~Fd^r?8!9UVr7zau^ElBE%Z&Wdvl5X~A7x zY;H(4l|53S!J_{T``_RMXMX2=+twAJ8nGat)P@5-MM;469ANg`rfs0?NO{ESI!@Y% z=5{0SVDJ0{zZLBN0K0)rIqn}|&)*!5aJZLfvF&js0HXi^jdD@D1bs zs*qh3d~X=bib!P^FY0wKk?0^UL+-Ihxbc&Sr|J}(sd%@>9Q#?UA}UArmEp?S;>JHq z{BQMHG}h7{y+&Q8b@$^xY$r z{J*F}wwPe)BeDGgdLjWSi0KSA#_@y={E0gX+liwUci|Y_uidzJ7&5YR4b-uz!@*}C zFgA)Y9s98!UyK+=ulL>S$m32!E*X&=f__C&74h9E62`Vx?%8r0wfVYp$NEZhPmD}S zkMGv)lJ{EP#9;Qm)v2qpQps9h0(d6huOLYv`or4#2XtTfTT)*_2s`^50w?|;))rPw|KgtcJN%TXB{o}= zoN`2;z42Kmqy!Sj*v}Jdzq|38f&?yM{)#{O(7uE}P=@KH&Sc-nI+kpEa>j|JTvz}mZ z*#9Sckpa)KhnX$Mu0CVn&5TFG?If1axEYd=HAy2-ME=BO2y*PchYPIRt4sj)c%7t) zKacFTWBUdM5@mmaW;{Lbjp)USn8>|&%Xhn{Z(&@>z4ti6{nk&n6}{)X|5*8Z>@zj7 z&hKBCvKQCvioe4OYjm9RMXx80B<7EN;-!vPawfhxniaCX9P2kY15mUy2!9PW+zY<= zANVx9oZoAIi3WFUKhD?Ddz>#Z?;wW8N8*q5ygRaE-zZ<{lQ*A2j?MYx)GBVCr|6w0 z_SQ`v7{v-DvFmQBD2*28uKNndM+ys^WYk#nO#ErBmUx~x5`QKQOA3z8)nbJBfjHkj z?Y)$5{CNde;(~YYM0UhEhT^X|nGciPl*hnw{?qn(9NVubW$S|VMND|c1T<)iw&={C zVnHlFPDeg#caty6;5VfIZh2MLc@5Gh@(FNFC%+Ly@grOGQ8@Hi0K7xJ{CB@Xl8AHQz0zi;cnz;j0`;z|D#hdD>!>v%cG zcj)>4F^=4Il4>)C+LK|&amXt*In9w~+kzb`&yp`$>tWoMh@5ez_I&=3m1A>eO6L?( zQwhoal=1hQ1|5g&gENJt)o90@Q5>-6@S2)^{zyqSH8qEt!p#jex;}%$cCiJ%2Si-b zezz#GD%IJGeV;97Z9Ncw#<$5sf?)g|`<1s1*?=^APZ`(ve}<0dzR0~J?Oj*MacjJoCA44X9{b=c$? zyA~v+^=-!*E^T`+MGWGO-2}MY@oz@PIgRZyeoijkK)*ds0<-*q<^%*q@A&&>)yvz_ z)Q-Rfktd8jN(QMuy&wJ-9o4>`yn5ekkXLk9Ym&-EmjbP-7grO%NjcyoL+Gy^>G*b z*pqOVqf;&|uv?#W#*D82RwW>L+oNv4e-dB@9G2h?+0UhdZ&kX)jp#53?f-bf>7mbc zSJqa-g+i`<55YxsP&yp3MTAV~EUf>P$FwFR3fyc8avkdHQfn z>gd`6=H}M}aEK24j*L3SDn~=usy3YS>$zlav#+M zSX$NkjpoTrmdv^7$4vN>hMc$Kr`}6T(7XO(jb%z5UI(Vu6v%@LzD9kvt{6|TJmq-G zIZj}*N}(d&d8BWVyIYTp0-{T~MY4+H;) zfsevK4tp$CHZ<3^da7d4`f#Mx(}2IVp}8jHi8V(X8a<5-O$|{`ORRcjXpN^P5~_-Z zYOkw`V&U*y6{-m}tP0h7TkB)d+HhO5x3ytKb5*0~<4eywziDY;-evQbe|%|ilXr6K zv7U<*dS27gt9@6^3(T97iKqxQhA7h;S`})JdaKuX0~Hr}Cr>Z=RO|HV)0L^DX=&wE zSIxgFlO@)?vYF~Um7lJhw@69OZCbi;@$A`^3m0Y*&6~d{FuT%ITYXN=bg4%w6?0YHWF%WHK8EDb6HhGBkhTXy$#K+p-9we8EtCy zRGK!nM#B*jG-OqNRppi5x`xJRDAMX}X!Q!Zs%CFhBvQ4;GdnncVP%CU6p4f*7g223 z+f>!O#@iaJZmo$lvzSM5^ihtEDA@f8XaV| zdRrkD64!bfoTgo5KEvn4X2RS^m$uZ@qvN7gD_XsE;Ybrioh~eu5n6~+Q-;*94plD< z*Q^Xhy-n)#6(P_3D?Id`r;<)`y2>-#P|ctoFzw3ZJ(|QC8>-tv)vc!JRtIq+K-1~) zV0I)lwW^^eQKb9*kLh9a7C<17|5pThG+xibVDe^JPV^$5z~i;$LJl^ zDE@Wo&Pa%wa8rx;{iukxhG@Ohq*jk%*RxGgXSYPc(Qr-JX#c2n^A=WKwFuH&G=C6& zuQSr4)jKttE3Rv(odydx0RD9iEz=w-xGuV;B{a?DgzG-r8g4G~e%cpYT)EIY_0nlx z{!ekqb_#DruJByk?8rwNUF)rt#8U56MWdmnmZ+%5>q-H7V)}XK8quY!Dd7eUyAUGa zhDlmc8LV7X>Amc#`EyeVul847Rq3$jOz)+JS6#+Ty=Ji&tmhfh$!`)X28%Dq0bM zRWTaO-5Q!>rm?d5`P@c5=Nv=NwI@x@q!8;^qLKDiUk)|F7k$& z0T(TSPDTvXMH`wzQw1-?$iNLPI>bFFdsdH|J~WI<0cmzL#E>pIu+TeiaWLqh@qY=P zw5$+uI@M{w{s$oWU&sHH+J;tlw2(Xkfti3%ZMs9U>vgbK9SK*})>O4d5sFTTq~Q>Z zXNkw5UG9j!S*cQ>K2wU+8iZMPIoy!+ckwSYwqB<}+o1OUrTa}!Uxl5`Xq;Kf4>Ij2 zPFQ$U{9xXXs2p^+;gr5mD;i;AL#uetm19|w_GnpVG^iB8WQphxQ-fUHr$i0R#IH;6Si$wG0m&;kK$4z6CAxo&y;}9z}Ld0r7D89Xr>Yx%e0IX;XS2Go38p_-wqAc#@G`o1O zu^fP~j24rP?-X4Q$^vd9Yrv?66!VvEubJwnTWlr^bt1uefdyw5mpDpWm6UQPUz#48 zsv0%7OAlYDBe5DLmZ2f(+zcr;F&d&~gzjIuyi__@&b#x*Y`S;!#|&e8rTxHgO)Zp_ zF2`ZVG&ETa@YWgo!4UY|^s=uAdN0$fhPs9t)8woiL&}GEYQrJNoM?FKwZvp@ zsjq5f5hICi`7mg*)4TIH7h$H+LxG_QwXv2)LCFj?+*k{_WtmV? zxR!qGs<}s}cjrnnt_+vnky~!<22@#)>w@=R8+DiMV}68MZzXgs>CcqjN9MC zPSvv&12s|d*SqA{*_!bgFo~DEOBNYZp?9++?ffv19&FJEth!ZW#%AKnXb8m627 z9_eWw#=MZHuBs6$_mDrWuJX4o73{noaNmDc=JBvCV_=WZiQn7fxQEv*bcAbKUv6k- zRPoGZR)yuZs*-qcX*jKOYUv3{}#_ z+=0@KsE*auF~G<^-pZ)o=u!Cj=U?Ovq>SH=jW-osF>FD~Fl)GyiZ8gx>tD2JL0SXM zuAMk({a!R}GhG-Gw;;xRvc}5_iY63hAa<7m7=_dAOe+J!#04sb2}B2RiybD?EX5c_ z#~CBDYszRON5>f>`O(3ed<;{ID;m@0V#i+X@ys5iP8`+srf-DNRNpkzqPe2b(19tH z%8;7rThh&|Y6_WE5yu{fDnGp~)Yy2ovkt@(KfE@B-&B6%`Q`IF41d`CcIyXU{=MH0 z(rw~*H@~m&ThDJbzj}U4`1$$G;5U`u(6Yu8me21n_1OICsecJSHDd3;f%0=|L#xh- zMNm(|O`gfc=fbna=hoM+_OSLuShL6Lnbi=j3DdAv?1lt4G&V%n;D+HVo~uGUWj~P< zj#SGrMqYVh5#@-%-c?5Dkz+6_4+cy!)zmoA^$j5vMKq5v)2N0TJZ5r>8wt0v5@^=G z?$%&c`)wNP3uxoc}1SVMC4Gu+Qo7>-s8t7_2*c&@6_IwCI16`rb4BwVf9 z>fjCvuA`$VrY=$?SXMAS<7paL&m`1C8nZZ2)zHdnTNTT1O+2e(de(&NSrDjdWO0or z_I;jBEO_9Ao0YhwzKW-r%;L6&d9bv`v#n|kZGi(rF9#MZo-G_9?y01+3h zZ=%*{y;;7gibBY&e^k}1l!IATPD3*78Qs zfQL$}t7<8&x@rZ#Mni|VL?|JHLv>YCbvTUE%s)BJ^inm*=NCf##W5s_%R8^FV4o)| ze>l-79aOEEt)5gCq7`Hc)l`Yia0O{~C{)J-I+uS11YRAgr=4=N6j>dDcFk*JxJ_>q z9fIEU4Ap_MYIR+82yCisunc$%njr|jIQRX2bk9#M*H zaI&+0z0yjRr7!gdBi9r9HzXmn6nywR}0K)h#XdRaa2<{Dsn>BiG!-ctNGDl*02m@ zNC+A%;i;$6M+_Fl-}pnJ8^{!CP{Se(rq?44!hED*MLpGO@kP&8#fK4yjScdw6c!`l zW|KLr>RD+N%i^-PpgLk27OU1`e|4<37Jy6h3Vljw#UJT+C-P;E#q&E`pwH4?wAI3}EKu0i1O z&;|rKEj+aGf@clXiUYVjn_&c;urix21tab-l|zh8xk3u9H)%$BM9? zEi?}YsmD`ZsGLW=9u3V((khm~k?=$L(+?!AkPAig46Q&nl*dUJQ{TWYMncr6KiNzo z(-tm*os^D&vL@8rs-`1-Vl&q3Z&xF19GU3 zp#@ykhoBXnA+@3&QsH6RRxgID!2%-Uz%@|~Y<0lT9$$c}4{I#LVPgmm^n+ZesgKoY z5WsC#!R%Y`)HJLRG8>Tk3@>;h;?o)?r8lT-4em7!tKgWL#;OMTvQdCB$~Dvx(OA`{ zhkOz*JR_9bh_IkYbUwY9@d&35@G-Sj>uG>#Y*0z;B+wIdYUxf-qyWztjX~U~(3tYX zL_9FDK~-bSbXHh`ttKpiP{Z1LGb%_;7>Q96M#YvRu+dd`K==$CxCmaJlH|xfC|Ajv z5Pgbl5{|-61`pVcpg~@tR1?`;%P^t$x(0@L+!aRQz@uF_3TQ=_QR&Um2*W<^DziVS zMxup>f*3fJqD2L3PYzE3pngEkIOUkuAZQd8GYw=Y5=n(IQYkeoY8)t4pQDbz>? z=_$s>sRN)$6<{KbOn_K`X^m=+RJBoYr0NEWgh-Vrq=647q%uPEsic%xDS}N<&sLBh zfhNFDBrLxJ84`$Y!cxi7f?V-*B-SACBJ9sFuplc{x1-v}*Xz~(+A4^uR?Jx&VuU1dNJ1Bf@my~(w04%@p+Dt7ug0avOmbn3Cf0^bsyY~7 zFLh2T*rGNBX(&jX!4r)}#bJg9)(|r*#Wf3MW;Q{8<0_?5vT&rO;DlT06?DwxJ4(D#$c2 zHAoNuK!dDMD9?(g9?C!!h#6Wigq+A;|^8g%Y zA5bkKr53i=16wiJ2{%a+Gl?<17-sNOE{wW7)g@u3sd9v1!$CY(z=b$!7$dsqAGeK% z_@)*i2sEg@)B>e}eD=BNVTur%;R0;Mux2gnz(a%td5b8eWY!uv#uG?T6YD&+YY@ZK z5`v&3dIAxuwk*SpXZ1W=8_Wxt@e_=Q=i%s4xXod7>kw6{ks-}pNVsB!C)8Mt7Q>pL zij^#c!{u3lrZ3klvf(l#aROGMIV)*{%8^9|uBbw~Q9E~HU3N-_i3H_|fZf4C} z<%D5q92#OA^|i)e#0gSEl{1HNUZCSpvmt!qS|Bg@n)NXlP|Kw)Slva0%=;A1+*0x- z6p1l|gwd*62xP)R8B8|}9FU{1LM2jWLYRzeT0L+SY%DM}TEbYUKRg?uh0to#^3@0^ z^{3fiBZp?Gm8%(Ljnk-E39nLJLuR|7aU(Sn8KKqnDD8l>y1oG|85fq*(}bA-`hZSd z&A?SFM~sJKkgys~g8F$Ct>c)%iw#(kHD(`{C$xr$H3&lprLGE@Sc4-8y#^P+m<~f4 zJfTAr%SIjy4m?DWIFi|QXaW3c6u?p@1X`yFaUBv^NUcM+;Rn)qN{7X1(DcyQ=6S-= z!bKh1ch!+~KogS~s$-9m#!H6vT0P`rQmYg~c^$&80aH94DF$^$0jXmkt3ygs3l;!V zy%xoJTVcu;`q<iL0zNK@^M=5YaYTA!NAibG5k{37-NFO)09B7!-$zWL>ibyp4CaA zse{nfLz?dJpd54vffj}ljYFZZy<`n80*I%XgVr&JF$EYU%2=p~19;?|K?Z`3JZ9-w zJx#GRggJ^ZBB7;7fq^!uXib)QGMw_1wphp5Pmt7rx)`sqW`?yov`k3~T)minU7<;D z)U$#a@9H&j{y+BKJUpr@>)Sq6Cy)~YNfBZQ5TFPMVKgWzG8rI1m?S7FC}@}@fj|Nw z1aLx8)D{$N2UN6CQBi4)vv#AR(uj(R+Rjr{Y;kD8d7`QBUiC^IgyT*ZbzW zvhTC@+4Ej|?ctoNax3W>mi-LYm#j!__yf1YfQ&2?SyCFDv6{g)fqx5)#^9Jf&0v-{ zfz1+UG)`q;8SMw?MLW2m+d;KimKijh>B5XstILcsvwbtnsLv>yVWt=JV|I8(8S}wu zCeACzVMNbhXKIcqAFw3oc5>nEWxFn$UCA)B=g-b%p~5xw$91vkz!|nToneYFqk^~Q zEHaNCap+eZi_TyuFP{uK_8?>HKB{XoC#_-a&a6Gf94m#}ed1abcs%NSEK&BLHbFD- zT2@TI77Z=KVcURfzPu!0rDIt~24(LrPJ$ z(&=v8aAd+(7I!v!Lr-&EMyt&M%mSr01vANW%f>2?@R+2Zkj-6_PIp~~A z!wz-Lzsj~M_TrCA(Kb^ix#>#7u&D#MIkyZW<#8r!ZOe?0 zIp!WO6M433T;$CR&unH+HWf#*e-1TfqKP(-K|ZW76Qv{QbdK=7nH5v`X9}HZ6Z=e5 zz_ezj9kt-vDtV@DQD@TGv;ioi!N4qU7PCC3ofY0J8+$mFI80LvwOO`Bo<+CwZ^`jc zV}_l)&$4y!EZUHN_WZ=Ms^KtQgPJmL)*R-PS#!#;N<3SzRCr<4E1%5ioVnzUg|fvS zScF5FnVl+e=1^nG%szfTD^zTk6Kugm8&SV<+bEff_FBvZlX0*$I8|oeS&_T2thw3r zyDX+pKFzKfHn`X~TVI-4EuW4lMPcpVCXw>#Wo~`Oa+A&}554BhVCZvQg;T)}$bxZ( zXZPKalbt5m$9w1^9*wj9Ctp1xNBNw-bGSfeX1B}jY?1xiEFAQTv}iN>gHHjtlzG?G zWAY{O3Z6??JvhZB^@uJ!X`gfwicG{gBgSsTe3+1DPo7DC&9*+8jrk;x z@Qoz{ANw)iIUH}{x|J!krR(g;wwRoaZ4JR_MzGUc5au|~_V7r&`A6|*b1H0(mC4oJ z2BN(bh)fsY%wr`3tX*b@FOEZ|(%JMg+673QZHM(OByF}IJYJwq)2CTFoFh!eEw>#4 zumJX?6=2HfQdo^MkM$ug%7p7~GcjP;T@rk}i*~`dTeTP#&iu2+r0iHdmkRcdEU_=V z+HSPgE93OXA}|@ch|YZ5Ufa^Q4WzZM)vs(JHW}Ax=xiSKSa4SU6u*MaEuk5J{F`w? zP0MT>1Z@fdVZ*Whp}-YZBX^90Yl+O8!}x_&s2+xiJ&~^} zGn;c-^RKpou-q=ILv4893x_6|!^FZOnkdt;U|88X(^=_L{yFv$vKnB= zFU&f2Cwv?;XL>bf{^iIv7tWc^ho9!Km+;UCLROe!&Z)4y3%gP@(pX{LN{5-211qde zPCSKjdqn62hRh7}3==W~FsGXKumZc&uL@58Sz9f_VO>2PRB=q?=!#h}#kF*c&$CnBX^?Xg+t;vWw<6gZ+wO9x zVtbH^dA1GrSd+TVEss{+^b4(^)${Eg2H>Vh_j)*M5rWs)$xFq;Mc7)e!s&xovDhAQ zR5BIN?3HE(Dp_+=2{0Q6`(iHbi%TtWU7uI7fSiZKfueag$4aIJ zEB$nLcuKiWGwp=#1E0K4N}E^OBFtB}pcxQiFlYRsfqSKy9?Aeu`#?IZ!% zvY^tY3UkSXslj|ISb*RVkEMjU%)jQ^Et|~%^CS+nw-e*a3KnZF2oFN7ly)Yli>fjk zVE9-%tpBK^=Br9un_2^MJZn|JCc2Ttg^fn`{_dGLG|kr=u15FZ9?rMO^BC1uMs(2P z*m?|?>BR22(sNFW5qF~N1P;DjE6n5B0b$GlP~GqiWFyB?&flIHBC<7cx83p(8AIuA zSDa>d>0p<%ZGNnf+_Y|Ii$Vjjl6B>AZUmo&fFlZ~9teQ^@R$%PMdw4u%ucK^B!bwiaj8MsB?OXK~#qw8w`Q zb1|06*5#JWbX(!!vJbNl{G#9{x(_%TOgV2SODUBz&4C9Se&{uI-;c))FFp*_W#H{BN8#szk=56WCQ z+_}fRQYJ-eTsFo2?V%wDx0V&=mI{PTp{%DQ)9teF(#$$s0zqkY>0UgH?`=e?UP@ z^%zZ?Xow-A;fvM%Z{&nQil`O5M5^uyw$7X9CdL z!9G=mW4YOOmURM6Xvc@Zg|^wBYtkxZoj@tHxrv&&VpoanZo2&ly@oBD8xGs~XSRLwFw%GQ~VW7CLZdsbXG#H-vq zg^Lp7y3%pp#dU?PWdJGI;YyV|#^g0ZOOjF&e75bKaqSsz6{mt!W{xe)amj$)EUj$& z*s2PXS+!ZaR=B5&_K|b0S+7*FM#FKn=ERJ5@l0YQj>>@dp z!;o94Ds4B4YthSWyTkJ==h`{0Gi#>3O!OAOm5LdhOM8z7*IpX|u1lG@*j2c4G4I%$ zB(}+L@BFa0F~bR_l`%a*Yers#bbcILn_xw>ck<08srjxp^X(v=YpTzLHoXEk#pC-l z%-?0qhuWz(k6P_nJG2Jn-Br8qRGAF`uS{5y40}s{o~twqKx=j0=yeCF9JAVS79J?O zxz5(J8L@&_hhOsmZAAyn9_nKeM)GBXHc#< zEUsCH&bOmndd|+vd7xq*#KGkafeNs&%%d~O2A7mfBQb-voCZ9;0F-mSwbXpuo6Tou zK_d2+32O|R1b2=(wokWJhx4&Zi;LZ|0Y1Of9^2yDjtDSB=i6DQxy~q<-dF+6DDXsw zhDV1?cBdou9xvDQ4Vzp3?NpShsfu}@SMjXoZhmE7W{V{xJEFy98YCeMDxdh_DVr0p zBc$uziZZ2S)eFLRv`|iamIRztqJ0?B9CER*!8P;9M%-G8jk>+M2j{!(Dbpi$wU4&r zGWS?pRk)=CaJgau=JV{)-WR0t+^z`Mwu~m(sSZFn!uL*?*23#ssg2%jnzv&6AA0zJtj;1=u) zCbOHI?}2LU;sTC(r{mg8fm=?a02+h0f9>C%^ex~G*Lk?%3n;vZX0dJ6xqvqzt+I6F z0LjQ4pzrZojJBMudxEs*F40v&>SRE>l#yPoJw;rMKw$S=1Wsz z4edb=u#N&&Z{Wsm&Gac;hdVV4CaXo?%L7_AMDmt zaIjWm3w&H>=4$LA5e^Ag%(Fb)f&$lawh>>$ri)D2z1V20ai#>+bo>UGMzk?xHn)AAk9j<=c)JsL#82 zUj1+EK0keD`^yTCoO?*$(OAmiO3s~wqW;aR?nr*)v5Lwek&~BZEWdaAF^`?!v%`n?CtiK( z%*Mx8Ty*-^^Cvwv@1Co&`tG^sy(NcdJbmzO4d1!$ijHM3&j0GVCte=$)eTRSUAO(C zgU9q zwG$sWuIbXZF8pc1o$sIa<*{Q2tco3afA`s&d#*dW-7l-Qbn~>9Z$1{^X_W z`hSyJxB1}P8vSwDWw*UrajsuCcIvYYE9ay&n$fv)=I%pY9(sPGhdOn9rsKrk?OOHt zXO~SU?VjCj^!xW+d401cy^niu>fINQt7oi5Z;Ip(+A#98mg_FN`p0dR7ms{0|FLlmZysCzboQ}3Uu&`B@|R+_ zPd~mx!)spa5}$kG`G=={`|wMDJ+yMo%-EJ~FF&01#M&0e-8pb6yRX*Er{>=l(G8qY-z!aZJ@mQ)|XNyZYptAHMgsZz_6}?!I^D zq%Y6CbbiSp%?DRZy=CFNJ9pifxp2#QUmP{9We|OOd0v~T?SD=@w(`?Q&wcOn^5V4z zE!uqV4>$kxSl8p`ef0Ihxtmu{?)cdY13EpM{N%=VPd~iur8b|}J^$L7Z+*7#r8!@o zJ?6~s{!-C=-W@Y`HN17zmYe=|=F~=aHTmhWq*X^ZZ8a>X+2N^kTb*}iQv2^}-p>1D zho=ipzw_BcH$3*tL5&`}q2H(`vDKSqv>yE6paIW4_V>Sy>T=ff-K#sFJ>iR=U+Z&c z#dD`NA3tow@)m{V_WRDJccycuZ>DReXQpGOU#458SEf^@Po_(zN2WujKc+jTH>NYD zFQzM|C#EB&AEq0o7p4=Y52g#I2c`qo|JL``@7Cwm-`3aG&(_D*zt*?buhys5pVpVw zkJg9Qf7W-_Z`NnlU)ERFPu54)Kh`(aFV-j4AJ!Mv57r0P{sRXME*vs+SkdqiBS(!s zW=!$eV~-nm{0S$HpK#LTDN}hja7Jm_%vt5L=TubAGEdAqPm<6$h4NR-1Ra4oEb55u}BpHqdq{6r$o=UwZP5{YrJIGJ#;56M6PCa;;7WJ}+z8jhU2qeu9pdI<)gmPHP&suDPE8!ck4tmWXzs->emyDqNFkVc%z!JC-Rvt?}uomWJQZCpJ zZiB_J4o-u+;6n4~w^!D~N`9Md3tR)=fpu^f+y#>kLgD!0?`#-{`EUs=ge&2AxCWLR zPoTcAJ3)VI^D#YvD%dO(uO<0Anr57Z$;SDd;WS1?%9NspwTJ^nV)d4%hJ6?fYRZ z+ydh>C@(C4yI=`S;&%*|z-+h%c7q#X0jz`LpjS${U>u$Yi{V;W2_J?l;Z|4+>x?rQ zkF7}u_JZ4B5v-ks9>Dx^>H~{m<2K|Eu4`2j<)1TzlivV)N4i&)Vri{3qf+<-g8j zSlW`PfB1njDN6M_Mba*e4oO=XjSl8wAc04b{tnVF|9Vg28nx|#+sf5pSlX_L-_Fu6 z{9T(2v^I(J->o8Nc-)y5+Tn^d_=y zacb?#bG&8c_2b@l?p1PctmQS-^lIQv4WHOL;NX2ikyDWN&HnFrSiT8Kn zwX=Bq+1NM_zg_s5o>}=WF+EmW3`@(8o zMNbT?5vq7$80QP(Z24(VVmtA}e1`1J$Ksr}Z$5)lT|dPcTlV9{vuVTq$Jp?_W6bHz z=(M`1KjXl9V?#EqKk2RAy(hsk#QkB8yz}s@#qU1zq5i6iRsA>`GpxgiRIixZwS+BX z-FdIon>+iq)vtOpg3gS-*C;K&Ff9-Bu}|YMD7HkWrfrK>5`-iy|D*<_yJt_L57*vE z(+~P>nSV@Le0W;+u+3PBt)@!OCgu}%6JdK;*rK%9WbW9wF2etv1NfKV|Lp<%7vkTT z_42;yj3b?u_;F@KoMU|3&y1GXWE8s-unCt zFFJd@gLF5L?#W8`SACsK6Bj;(mNH&O{zhYa6E@zE@k6}hEMD>6vE%e?TBE0ks`eR9 z=BDge)Im>e-fFr&k+^}ENF-Za{&M)Q#4icIv&@6OULK7OX=FnM(c01WE7Q0?*6w2; zt7%_L%l0qp@n35G{F&bd{PH4+#8BrGj`eL8AHS!}kM`SltVb`|x4m)oT5)s=MhTz2YE_i#jVJgh;^z5@#6Nx;*Ud*m_Kp=xU{0u- z`%XiHQlm@o9roMFX}GnE*~@jLy&;L;NJjtnDVIz8*SSvidx`Jo`UkY%Sb{LUA1%Eg zk!Xfq{CCoOGx~2PPol^9FJgc!XFv70>b^WWEG-_rpix?ENLnx~v?aE8%wuomHLlMS z`*VpuVsG2J`P$WCMB18z{5KjLFwc=zhiUw8AiXzQvPRw8CX8Fn|D&wEN7`5!9?r|f z(Tfh)A|q1$E3IxLemB?AtD65)SW~r0B)h}{{(EOCLXMBIIpcCe6Nm)#Er<_5SwSBSDP_1o!G#=EpM_eF+=vN zt{zAyOzHLNjF564qu_Sy@{YpUhNUlISdKmR*^0dvRx_TTB9tGny7!n6V#%LiOy zx$#;~TC3PAI~zoDh5RqUZ##ZJb8YGWX1v-|8cxK8sUyN`w5ceS^_ux}?dBDmkGGJ{ z>Mn_J4%t7Q>V48Fua8PyEl(P{Ls#|}2bkY}9aqDoL;gUU-hRJ^9GDut;@@<7bnJm5 zxOvCUFtWQR5+kh~!}ivlfm4B9b*8k?43o`!>j>MAu>ZooSvzTtWO7@^e4n?p0jt7@ zpGxs;xr8Yu45qj+)lV}&!tM1NMN-bz?dD>~VSM+N>7q-M_4aaGZ!b$?ZeQA9C}~Ew z?3d)QRGX)IGlm-<&M(?yKr&ep}kW78K?CetpmZKRdIj#cvSTrsvC}v#ow{N*lHk-WGQ&;oczJHx`b+Zv5Bbw~6zYYs}*q z8$YzeQs0bIWvCS_)QVDFAe_6ro zHzPZnVr5-OKIQ!qiT+&MpUpkX@mqyo1C8euw*OIosE;fCN&9#4pwv9#Zn5+RBocis zG1nj1R<|BpmUO~qnrkci@O)Zed4EgTC4>d;&-?<;ug=)dF9*Mc_<_CQ@)73aXF6nm z`TQ5+SBc-t=HdE>ytQvDOskCE5w1nUkvu5Xt=AV4C+FxyVztF7q9re36@V?WvRuKv zHQeiJ_xLlvb@*+-&(%+U8}QqKUwv6D+&28S;|JWIttqx6)Zy34d|0!M(VAkn;!koR z!+c_#*Yzs+ZJHhM%g3)iO|x6Q@#}`)4;J^gdi5vt3cWb*XXzDi zuS5MkrDy)*@$a^uKVDuXPA~jF;@bXfO?V!DvB8PNgXU3@7K@Hf3r3~IO057EXDv=G z_xG*G!}xuH-;oxFeCH6j7nj@c&n)D;$NbU76>Np;$Iw(dCNzsfQpeO^63ogQaL(F| zc>AXp$A8@akMzb9ulxY%RpNie|1dr4pLN7rPdv9rp?{V}?c{*A)%ABnfz;-OD$;msCKz#W!4GA*#Qzf&*SiRdk?o{YYBnq;=bWuH)(Zr8Q{(v`qKxS;scgD%6^O-?dr&TFCFP z|GYiKoh>aP?)Kroor|x)&z|MDJt*m$4P1v`zmb~5$!>cn8p51M$!TH zV8d-&c)(+P7WxP9XV3Ozxb=A9#c)4u&-Qj4&;InkQ!masAGC7=_BjVy-#m%?M?XY!tZhm>*m2>ET~6v_Tu(7o`u;#nDUbniCgyx!{%;pAPdu&XOTY==EJ>V zI7f{{uL%?TZb>hJR_AbvKRh2`A4kL%C|urAkL%-M7spXdK}d=J<7wkS4ECXz-_!n0r7&$+!M zBl&mFr+z)N`{KZg?M`Scz4fHGWpW~M-G3*&H4Xim1E1Ns^voXYCcW%wzui;CP~1ZN zXd3rtdz}vW*|X^i^Z9kWyED<>jn9JUr~{2ovw7vDvygPoS30t**y_D!82QmL*u0_p zSkYm!d3z0QI6mz8^#;-Xf!0gI($++x4~7%QUfVq|)%tV^aWl(! zA3|~WwSB*yKS@WnMf|f4tRwEc(CWI4^fvL_egfC_SHS;v{9?0s25cS&p3i=NRx^;j zs}5!?jXa*?my<@s+Uwt>;h#j|esk0`G&Oo=m`XpQm6JyA**xp#+S=&=^Xj_zsI=O4 z(e?YKGceWka6R#N5dX%1*Jti*W<*+D#D9#E>~EL%j-zi$r?`@LQvPE)YV+EtpEz)v zyLE+?tB`jVD(58<-ya~oU&jYiq3>UU9v!e;&i;{3UN!F)S^E^F6|j(XbFt~kI_@p! z-hZpi8za7VV1;#auIa43XR*FUd%pwqg`IA(Vg5~bvSG8b^orx~4#&|4sPFG|mS@$k z9Ju{le^~pSM|$?|$8$pHg0Tvx{DLMn?X+G}S9y0IN^$9WlXS1azmYfiULE3~oA1oxXF z4RmY!iNqbxyDIgz$l9(Fzj63I@L!MjLOao2{vX=T?AS)q+jJIdzyCTt8Zd}{bHF9b zKzF9wn1)+*Ht&}FchV||R;LxQXemi68kkmKORwLrgm~H%r;O7`w`2+Lws0M;PfWS~ z8qUQmHcbaEBuvgZiNy2Dd*626R|i%`{j+Us@23OK{uPkUHqu#pF7FTh$8-wQY9rBa z!=bpZD!IpFr1Jm%{$C6H-`xTmKM(7_L_Fs?8&KE>@urtTd5z>-#r5KS;$Ot4#An5A z;_G6axI^42{vhra8*B~pZ6bc_3jR5GRYJVx_oH ztp0nL{u0T{#7o30#p}eI#lP(grQVhgdI zIQafBe4gYU;^AUHagaDnJVrc0oFq;W%ft$Cfq15PzId^?QoKsMLA+VKL%c_PMBFHD z5x0sjiLZ(8i64odio3+`#oc0bTi7m*#F&^R=7_mso|rElDfSZwivM^uOm~>%M2ZxmYDG7S9ovi7Uh_#8u*IajkfVSSvm#ZV;aopAlaaUlZREKN3F` zcZxrX39+HCyP_WGO;IAC~;6xJmr<)36@TNPba#O?*fENc>dXCH^2L#AMmkbg`M( zQfw<8EOrwQ6^|7Ai37zVag2C^c#=3pEEVU93&moMtFt9vATAfL5U&$&5^opp5g!&e zikro);;V0k?fI(Yx5bad(O-o3Ka;#u{7(EujB5RnET)N>Vvd+A=85^@k>UVxsCbMx zPCQ905zE9%aiMsoxKzAIyhOZ8yiQyr-YTva?-L&pH;S9Zt>P=<8{&K7N8+dAPVqbO z7tzx?q@kE59wfFB+ligU9^&C*AMt2$m^fM-CytkXO_V%MoGH!~7m4SH7m1gN*NQiZ zcZ&Ck8^kBX&EoUo%iFL%n+~FdZLBoxY$wbE*>WK76*uh z;z)6i`E5sV{OmV6B2Qf|S;Y%f7C9W3Nig$?jh>wUH#m(Zg;>+Ue;``!9 z;uqq#;%+fX>+D8ihWMTA!x6H}E#%)?>>zd)4-taSj(5@6qK3<$CP8Da0 zRpMgtT=8P@3h^58Msc0^XYqdVFXEHpGvYS!b@6?1yZE{IwfM8>X+M@MrisnPHsZlz z7x7TBk2p{)5{tzX#Z$!7#93mMxJW!pJYW2Sc$s*Oc%yi`SSvmvZWR9}z97CXzAtVU zzYxC@|0OnjBkb=cVy2iQ=8B!gL&YP+zT#kUgg90lFP`&3n9nJar;0Ph3b9%|Lp)df zgLtVpSmX3c$=8WDinodD#e2nv#Oja2@@$a>%FJPJCH>U3^#kP~0Kz62BLBi#IEu zsMg1Um@a0DEyOlrN3qtuK<;^`${zHP{}Ez;@t60*`c!LQI#B+@#L?mj;wj>3VuiR+ zJWE_E{z1G(NsrPZMW~8}19+eV*in;@RT);tKH!akY4}xL&+Rd`Nsu z+$3%lUlHFCKN3F|zZQQMeVuotip|6pVq39;*i}4KJW4DOi^MVFiQ*~ZG_h2y6i0p= zwpWehv&HkoKZq;E&z}y%Un%)o@kVi-xL&+h{EPUw__X+(_>%aBSSS8N+$sJbdhdkg z=&AKhAi0T{A+`|Pig{uWv6t9e93T!AM~TOYrAnqvDg|GvW*4-^I7YI`I?npW-*-58`ey`fk|n4aIwY z2<24C8DewsQ`v_c$?e51;vwRZVt;XnI7&QDoFGmTr;D@1`Ql>n9PvVNh4@GD8u3r! zt>Sv|9`OP3ui{hU7V$;#BF%%ZNq$%SSo}=TGz)V2a;oAw%A7ODE1H!7yF5W#gXE1;&`z{oFP_<3&gX+zCL5vPhX#kt}l@htIt@ektV;??3B@m6uYc%Qhu{<)Oo z$Hk|`t>U%X7rZR_4e>p(?|orAekA!*ahLdm=t(adh)u*RRgPwoTZ!$&JTYH9Qv5{o z$^gkj#Svn$I9@zeoGzA&m12!}wzy2ZM7%=0M*NewR$MPWAl|5U+aUQ#@i}p|>iv@B z*Tr|lkHj6~SK^Oi_$3;=Kd*DEG_jf3Qfw!77JG=j#G}LlahNz-d{=rpPVxlt6mhCp zF3uOv5SNM+4dc%S$e@d@#1akkQbQSuw&d*a99 zm*RKggVO7NNp7HaP8Bo6mSS7+2GzTn_B9>k-$m>x_7;!Sd_F+(5b+_^dxYe%;tAqJ zaf(h({_ z--)|LU*oZnm?5?ho2q@|k~@ms#KXjX;vjLjI95DSJXxF~&Jbsd^TfsC+2S&Bx%fBL z>vGB0h&PHqYJRv)@?GKs;$Ov$;?v?*@g?zf@m=vl@l)|j@f-0+(fd5?k3eiHwiMfn z9mO8v5#l|XKl)1^DvlP97bl9-#B#ApJY76TygmlQEwY%aDDJBnS!(Hgh;l6#8-#6od|c$|2WI7KWKM{EhpF0EoKz}Vles^n_&VBXoyJ$S6i0NW;v5nYK>@M~a`-y|ak>au9 z1hGWysQGe+Je@eDCj=Uq!B|3Untc&&J&xK2D<_U$go4~QGYr^M&Pm&Lcl55&*J zuf(54|I4ub8i`HC7Ghk?6AuxO5c`XTVv%@;`oER-ZRbkfCjA(raPLY!UUF~s`^l0^ z#LpCNhU7Wod~vaOws^jHv3R+7jrh6BbED*BJ?C2|`Oo70;w#UG?erJP8^z7y^Wy8f z!f-Fw%i`POhvE+L3-KHA7tz}prqe)76*I(av9;Ji>@4Pshl~BiA>v5!IPo0y(|F0J zh*QNfajsY+o+X|yt`M&h|0Lcb-YMQIJ|aFYJ|#XYz9haTzAJ7QzYzZ@d-9#+pT(&9 zBSqvpPu+QNme^WsFLo0T6Z?vT#Svn$c!D@doGQ)|=ZXu&GsN@6i^a>ttHssg&EoCi zUE=-XBjV%Y7V!n~Rq<`{Bk>b)r}(wzrEewwEXK9|@N_PgEH)N1#1>*ZF{?Ig=RC>X z#lyrt;vjLTI8q!dju$72Q^XnKY_UpQD4r=U6)zSq6R#F;5N{Um5bqZ67vs-__4$kB zjpAl;tN4oerue?NUHnYkDSj*dB1XRs^GOyPi%rGmVq5WGv4_}8>?aNshl-=bvEm8h zMDZKV3zH?!5NC^3;_2c!;sxTR;+5ic;*H`u@h5 z@h8#yCT!0nF;#3P=7{aZu3}H|NbzU&{{YE_;w7@1BP5Rzj~Cz6`wk~dE)i#lv&AZL zk$ARvfw)4<*K?LXO1?(CNxWUG6(15eid)1N#Mi`k#O>ne;@9HOVnS@FdNmQ7iOY2E z&`NTy*iq~z9wr_o7Kkf!K2jvPSUf>IRV)=N#2WEz@d9y$c)7Sryg^(m-XY#CJ|J!o zpA?@FUlLyzKh(L)dy+pE`^kQODtVXqo%pku5F6^bPO8{c%obaV?ZrHCme$eTCHJZi zcVDRgeI*x&L&Oncv3R_AvRER{5NC@!Ro{7%Ys9m~^Tp-j<>D%Fjd+{5Uc6U)NPJ9u zO57rD6<-$L6yFy=7XK-JBmN>L#Nhj|ebU8)#2oQL>HEQwyNQ>`znA3WrT2X#7l^~e z(e>fPQ^cuanK)NmD4r!Q6)zB1h<_BX6K@jNiT8*PiW|gRUJUEqOzX|3!r6P=Scog z@@L{#;*X-I_YsoC#$tw;Esm9a8Lf5kvFiU!?Q7a7+`-~@rQcoh;bK2=usB>CBc32m z6idVz;%u>6Tr4gTFBC5ouM%$%*NV4`wc^9#qv9rUtN4oew)m0wx!6;B^p)hF#K=#f z{sv-9%o1CP?ZiB>huBN(BVPAHm|lV8B5}g&q5l}kCx|DDlf~1-Sz@JFBc37tQT=_M z+Tj;=AHU;-}(H@hF`yeJeR^ea|~5$!(Lp zdik>b5PjjXLtxRPHYj>%Wg`yzb}hcb}gU zabHhWYv0|*pM8C^{l)n{HT$!#&9=WCx?letfK3!o!NTvvBOG6k_?tgP^Ol?$mM?Vq znjR%=-`Qq=e67CwbKgtFRo%;>T<>4RcdpuBeZ5va5z6)75o6y2WPf}`k^8F;_lv%M zi`H^pdn9kMFMZ;VZ$)(VukV*#l6&a>Pm&wdCm2TiUvo=NuWymxCYfIs$^~MvSRz)6 zOT?Ap8nIT~C~gz$#9gBIf#?2WVqDA@3&divM648-h%3c4Vy(DQ+$PqEyF~9p#A2~TtQ41sE5$Wpt+-L#Cf13& zL~pzD7vo~SSRfXQVd(#TH&_z=UrW@+^o4wf?t%Uy`*~hf1H|#3J$v-(k>9;%wG(@ub?Biz@_TibxBH2tu+c)>uuWh2^1<-1 zup4)TbU!n3fbyTe#msHQMLu?HAHGM@0+~U5GE8u9oV+0E;AFnzENE~7Uq5zSQUiWu z*UQMI%ne>@K9XR0LGrm6$h@TF3&6M_%f7}gFA}uptJgD2>^hqKFQ$sTNW+8i%4kgn z4Lddu?=-l*7hc6gY?zl*PT-7H%o+{5WF2eQhbD2|twm3}zO^gY-CJ3X86P(1dR6HE zSw7d-v~ppd>%sM!mUf-;IZoCGIOJ-)E9L7AC+}jD+!F?1l`6wsEg9ZH&`Zysk_!sFU z_jN*k(7QcCKPU7K>JCNd?}UP2D3eigffI^?v3%=a@<1mP2PgOlgPbrvxEaMxF3h@( za+U-gx*-hBT#ry1jOvR}YDzc^2yEZ3*S}+>u9&+i7j45 zSQDHcN0{V_vo7e~9pRJ|Q-a#y(hdlxHaZ&N;b5aRZ;310#$cT_;*{Vm64>Nr+(L*T zxrO!2@k3CCZdUEM-~QnqpB0)EDY3)sv{ z`I^i#%_Ga46zk~|Ov$^gO#6vz6niX+o$)-nlhP>TRYGUzndOq;Xd8K0>gQ)@__E z4I99)YTP1bnw}KQB>l!M-JKw~oYB}g$K7chJWA~w$K9P+&=XB=oSU+YIGMp=^kU=o zPRI(*=!(!Ga}wEPdxc3&;wceId6@mCWRu+B2O=EyI76jL`!M&6uNZhuI`~$sObc0< z*JN-?fkio^9e0N0lyN7FJ~VLtF8Z*>HoC%AE+({V3U zd9!A4nK6e}Oe>0=X#vi~>AwOeEK6@|f|mJ_ZTR>f+bYWcp09n5_yvb~UerGk)%X1; zxc2=C;$-OnTAl^msqKd!@H-&k8fwgicFo@bu|fF-t$C&YYbn&3LmBDMu43 zWrkguW@WTRsbbm97UPj|EVYfb$XsF9*J9CPEiEBc{W9`UqnhVCo5ro&oIm~Q_#K?bF!M@51oC#x?`>nT>t%j(VjPO&YErOGR zPq8+cyPK^+;8)m&Sc2wcEyo$KnyTewCPjkJkIFwOKg2OtHJ zG;7eL^l3*Tr9=)o-%?HgOFB}c@Lsl;d6ng1PL};(a_%BxWd3Y^=42%?3UiM~=`z!} zN--xZ+x!+|Q8IJQ&z!7o<~I}t$UMUQ%*iS+zZCi@bA;yJfZwtcQY|O$XYge@h^O{S{-J zd3wgF1S^bXzT3dG;jlP1GV}dL?mA(?>r$ti|BI9-^MllCuD!O$5ygC+=B0aWEeX5h zg9-+ zaXxBw&?Bwh!7KNvPE^|x=yY8R>OMQ-22`g*(bg<4+O)M9fV;6*S&?W?XA?405u(v% z&NNh$QkEYLn`t#omfbuNJC(g&`Y-f;b1#x*a7o$tS zfZdp;?B)$3G4o8%un-OFV+WY{=E?Q3O_7?XL>gNI5qlcpJFQ|oHTNUFCDo|{Yu&t2 z#J4*cUtzqmbJDkPo$@@+A!aW==OWoTM>mpT4Xta+F7C8mMrysYJI3s0un;?t-Kp8# z++Z@ZD&{q^2F(s?*+XY{jU7Wd;(>ifeRj8WGj4goP`t9c2bNX7mr_VFt!L(OBRd{j zWNDtoFvxC~c9TnU8KW~h_aOVRv+OXL_AZ&Ym+=&-Wq0sh0zm=SEn37rumrASrfShL z!>+wx9%|L1RjMga5EN357CBC66l|j5TC{dT^uHV@**VsnnzpXSGxvP*Y5lV`TdPH}m+%Qjl4`5PK_S)gg3IW*R;LGb zb|c8?fN(}&znUHkb-?_SzX=GLVsV{bG~xC>d6iobtE$U2+3tEN8MrCUadL0(%hku+ z&bT<2)K~bcxz227_pM!BTjjKBXbTj-gtB`6ItE3=AJo~}s+t+o_w6T3ll);Ft*x#@ zu^al`Xiv|7y{m;>&H6CvFQ#pMzY%SfF=~D7Tn7C&Kcm8GCQzMQO?ngEq+dLow)_6m@o8-f5ss=IfdzYAf-EwYsZ0HgzacoG#9RGj@Eq}-pI92 z9dHvUSj2DTRL5+!?{{W7mE_N*stx>!ECm|+t(miv{ie)k$^M&^Fz~0xNzuO_w~=o@ zFPiH0T*Z`R>!Q}pprBEzFAm5|1p;9S^fed zHTO@XLk{+DA^c!}Jzd$yw_gEh=HEg28vAzvA2ONaYQDg9}_{nGtm{wCaB{wSKOr@xTm9qPYDpPk@OW=MDQXHt{yev~lz{+o1Z z4}Vd2+Rp!yk{sn{GB}U-d!U=6{MRV6=l_W?NxrSCQvJo0r=j2BC~J{vl&YhDHD$>3 zf1uKB`)KjNf10|a_!H@rM*am{ zxAeYr+UWs2!D^2#l=;L`){154iseT0pW}1Hx*M0pzlV(5v zQNr~1U#BGp_*LDQWc{bfWvqV%KF9i10s&k4&fjZrohRMRG&xo@}Ee zv^o>$%47H{G&UW!k$hO9_06-8M6GpkyUg5 zTdYsEe-YWW@Hf*`Ejcb=l5BH+q^>^eCe$z-vhK^Bd74dqUT_R8E}h@DTkuGI^tRpiiQYE9 z#bYjdPg<^RuN13%ESN~$+8*VE?5<_gytaeVtu5lg5-Qhrcwj}$3;0HKukA<|D&NZ- zYdM-pIO)ZnEQzA=Z-cKGJwb$l5&y0sU4n2qS{C2q@(nntT)e#W-3;`2Rw(7CUq|?OZYcFme-0Ij=Z8{3`o%4f zjtZrs^xddzd~hfgr$0p3$A?8+#l{!Rpq9fUu9OoCsu4zoLP`2GjADFDB=rnRRGMxL z5FZM1C16xDGa$V{cQ$$d{QW#k!}l`_~cMpl72~7r0J2=TYtomR^v6(I zmwpWG9ltt~)rV5o7E~^%@UD$?ts?V>(~q)dzdkJ3#`NyiC^v@DwxoZ?7>=)vw6&>c zTl%e*$gSbMH_~@l2i+cKUYGta6hD4}71rrm!epB)0ZQ#&;+Mkyu;o%Zp*##v-wY==9ga%(El0?ASoe_y0i_|ol{5j3CJQ7<$IS-0DC0iMZ&9ZI}r7I$_WV*Ivn98b1>~GYebJXd_ z>PYN<`k`ki-4KcW3v1Xrnwm;+*F<8EVC@HlW!V^sHO2%D3Z*TP*oOoe9!+VC4s4?i zDBX$Cl&*Nb5sBSSev_ij^O5Qzv2W?ksnL`nNIN1i%&J!!bvnL_)}{Z-!;<|NiQV1B z^X5feM|;uOxuiKil!9pNMzp6U%sm#36_UeQp_Cns-OT)TUMR(*u}4tri$W?2y)Ml#>^6~in_k-9gQW?x~s$73!<@Om@oen-Ybg69%VJNHoR9Hjg_Q$-mT%i z@zK~gEZH65y^?5bRX={ABFwKe8e2hc-W5uf(O5I$)rQi-XlxJC{n3_VD9e&)tSdEo zDB3KC8REid>~(7UmoVf?a$ulth-Qx?>am0sBxZ9f5NO*Hlsn!G96$d;z-qOrdw zd*0KbbUXQ>w4X!++cYwhWIjb#r+Eqq^Y{qH&z&O)BR^c5~h$Y7_^g@c= zNU`1JfU#y5;w_SbITqHoeDRh^Zh(8C#cCBwLAq_0;yFo9TVv@zqb~8*p~MkHCri+h z7*I(PrSSnt!P#hT`ng9E?C2zC2fXywlrBCnj1;8b&3qdltON_DO+U>WqV&=$seOD{ zD8-*AdMd%N`>jQbb0*5 zBsac_hIXgXPfD`Ms3bb{AWC_%6DCK8zDAQzbi$Nq`gSwZrzFKn2sk>u4r>uVHI$A? zKiP^kIV@yxy7fl9Jjr#(crVj_N-f2jpmo;*^2j|k_zEHDaRjTclBR81lU|U~8KFEl z5+MlIP_5iK8N~>(;C*@}cW$r{Av@T^?jU!*6XIP@EAw&}W}nH8yuf-Z_jG4k$nhf5 zPq9qeUPb@gsMaZjJC$fvFE{l1+sF;qDZMF%mtyx)Y`50m#%=QMM!M~#9By}PT21MW zVNUs)J1JAm&vwL_r*PHtDavil*zR>xFn^|vdH*VgEI;?cU)1l;p!EG`QR^iCPO8$t zzk?yw&|gJ6C;Rq9Kkx&~f}atx1?>vlRKKR9t%~YMyovua-IL~jMvJEVS5fDfe>2V4 z)Gs;8mhqeMY35gRH`Bk5L3faU61lKVptG9$M>FuU{U@ks3;!kjTl(3wdMkevZIt8R zPF}73=?woi{wmzI{!94B{msN}=VwyRT>lfyYkU87D%`>Ei8>tY=jYo3{-3l+C*RH) z^ZcIZR%gF2GiMjyLlL_AKQUCh`Ez^Nmf;OdPY?e^+T;+wKPAuiQ!$f0{r31A>bD`C z!~72UU9q8YgVTpy<5EzXCrb~(=PLz*nY z33I&vGX5v{_b@@9=-bbkjrV(z`vkugEpw9pIyUfR{{>ogqTdY-n&cl#FQ4MuLE@?Y zS%fL^ub@hk{mGPeivOqnwq>}B@YDRSspE97Z8_O|L1CSOpAw#(+3$uq`Dm}_X(Vep z+5Yg8D4f5Ce)0Sk)GOj|pa-M=`=spqBhiNj{^dk$=s%fl+IR|O4*Y4@lobCxS|ING z=suJ-x+@j2Xke(OVRG&M-jmIEpOEq&xrB2{R ztZQXOm6v-=hDY~icP*bj$IC5tLOd9Vp64E$*^)bX!30)Rx#ODHAz3#s;~E%8Ig{Ja#)D#em; zyO%>PoH<^KMN4VVL@GZRjMf3t^C+JDUf1scB&XeeX=YQGXe3~+@qyCSKP2c~C zCQS+>ADrLt7mIu(fxICdX*Vwz(uC@AQq=QEEP{1^#~#gDnE8!SFVDY>As6v_UX2F1 zd%Y&vy+;_1grH+1zWtJG)bGf(?-$@E`JYgn27Z)08v1|3L?!zt(E@?j^B8JssdVae zwWTtdv^{?pS{L!(A%m!Y0oCz+dvPbpKb1+TfuD>yZ0PlDi2hm3ycYfO_OGK#p5MQ~ zV%|b%en`lv=81G#lHZ<5s)28(cvr=~Ma;cRvuc?*tGRhJ0-^L^Am(wP`e<^k1F2g0_e@VHc{%Po}?{DpErC(0T z8u(R|tfAMsJvObN%ZylqI2EvotIN!0cI^dr=-g$N6M|q92D!^@CxnMzT`E(06Dm7M zp$=WDQa?b52Yt!1OSQX`7sN3fU1}PWCMRKc9FDNq1?%mlSm`q?>n^AJcAeQMj>mk8 z+T}cVW^=jZ5BLFA}l2SO0f zBU29=PaH3}8-ma;bU2u~wXuU2%dSYCSp8 z6(<(fbdsxS?_h;h?i3eip_gK9Jn(v)xoxe5(FG~U$;ocf7&;?T#E$0e9Fx41EZU*fSD212 z%_3Qr;V2969T&;=7~DBtt7Dmj(zDaEtqxNyfHj}j>OPEU`Www!CXzhw?B6Ebs!?a| zO^&!sZ8fYY9kCJV9nzflz2@y^XS-stZDsj_tkZ99>H@s+n>3RxoBxlp_kfS8=-$U~ z*}2(GvVo8e0TM!u5JGREt3c=onkWibK*WMlMVes4f`Fo^p@{_%5EUC1>|)1;?X@HJ z2BLm#{GMm#+`D%%ukZiA`OIeK%xQDxOrLw#YVZw8Q+BGI@d*+?6JZ}BDL+FqE3c=E zyoYsGYBOPOHRz7srOvxq#e=}VIl+nY=j{hK_wG#gKSwi*d{WMYAX9~TRv}FDvbN}0 z=ChNv@?Jp~u#)+DGxn1x zVlW66RqTQrJczdM7CIT66>cUL^Q^qD$o%G9R_T+3@(aFMgdUC2ywkzEbZ>n&(l3}# zN0sJ*Nu^c#imsr)n5CQ9fD6!}m%gTViK8csr;L|4P zZ2Ftd=0WD^?x{gG2Jrgz4fxdnocB8%v3y7!4pE;I$}cO%Z?K&(j#|UH8yqj3= z9l2}*rxR+*eF92f`lMz&KLNc79cAeu&F%(5b+zhFHt*~dWIe43?n)3`PB!;wf){+K z^gg9XyN!+0>|>sGC{q`o7J=*;&FoK~%xYZ+z3Z5$?j0Zh66)gP-;=a!{yG8^z-M93 zG0_axJO*`rIWp@K%q_=6>raBEP?r|iS*hG~KQ^kzzQIWMCybNoiw*32q^BViY>om3 z%j8V9stwzl0bYTS_RCEet-eAGA3KOqDnH|*`EQ}Cj6`d&BDR5vpn3~Bdn?->ZI|2j zNV_}woJEpB4?6%d+aBZ0CyFx{xz~qsGoef(cL8#@NbZ=W@FbHPa|`5#tmW;HY?{Y= zDU@)ge{EDH;bfn1A!n-ms4GI*kQj57&(liFMX3%6FFT0Arus82s@?^^NHbvd1-srX zdp%*t?iTFqb|_uUUFVCloc+S@3$&kKj5>CEnqVdh=?i0K7D_@6y(QBt5Y|t^SY8uJ zybnyLvm`D>5r-JEm^;ufhu2fGHS(>#+pb{&vaZ8A zuQJ+*J=%#tI1V9$6_qXMwlx>tJUFW6p&97PnG2LT2&%oHBv;Op^4Kc8)ZJi@5q3VV zV_gY$L!#<2pWU@!wSw&W*20d}XdK7Sbu2&TJI>Iks@Fzz+YCmV$ZT{i%wq1_qMPva zksQm9p;ObJVNo^C=SizRNuHW1j!I+h>v)g2jCC;P0^;TEX~ zYJIJ&NBACRwWrVcNRCy5N*)ze-PxE^-Gfr9wdHr$%Er$}*@nh2jZD{9Jc>G?O!)Y( zv$AX2!jbFm#wZt$Hs=PvyL{Q4f=Ysr^*@Uep!8jSvQ zh{kUOWn?_CdI7zHBrJ$e;s&w$LNd%%SCWJUI~M4p5!4QmklYZ~%X6Txd(6Eps95h= z!RBPqQkjzCA_85Lo65(ZGT8MTC*^mnrYK^asOrGA(hB694Way%aotdTw20LOXh*uL z8PTZUB|y1|`i&J%Vg2B^TCqM)8S9|?I$hATVrfe;Quz=ki1{N`W>j5BIrjl;4P?|H zMD9R>$M{>BSdGM!h&+a1rLh-$QTW?I46_^kX&qICm~}_a2No}uzKftM!Y6S95)8}w zGssmLBw;}h0R1Nf^<`}ZoofoZE>X~*lL|^(mjpiI$C`+ou2J;><7gyzoC~Oo-%|tUpiyn*c>5?R~ts8H0MlwCDIEJdQ3hWp!NjS1=F7i z;x_n*l%AZ&-UZllgq*3xL>=V99>wHe0kaVdG9fM6>!HZrpU znSW!tp31AvlTr#fnct1*3(PzRnYUITleg&3NGW0_Z%BX3%tgqY#>~Oc;LMa(oDO6F z#_Q4rylcFqGcwO8wXCTrElJrEurAE}2w%q`vwjYs=cSZ3>C1k3+XcEio|e*zlj;e; zsYXaW56$9&l-6W$CDNB66lS!ufdYN?Hx8T8DWpD?YFYDA%8AHJZR-*0{|Hu#Q`&w4 zJo}_JKVly${R>#);*^fGTG`1nCR&%IRB(}Ld0E1gt3aoTB)D2E1b1Ea{r#$U+DP_G z$nI#eow*?EBycYKh6sE&c7hnZNq=UgwE7L4B4xnh+4n;TnLUum9DpxXR|wyDL`%~gop;KO zal7`#-XChoh~g9&+pe4sSPtgUg2V+_zc5nFeQU3wx0ELebCF9fu!QAYEtD|;rwio* zWRJGnS!#o1a+T&6v2cd4;S8UjTr6Z#TcFOaF@8l~+l5fDA76XBA@dSA-E}GL=#hH? z`xqgW`?WV1KRSf;AB3%k``&2$Ef4&%5KF$L~w=(674V#d{|s<2bkG% zPLf=%h_BVT+CGy7OuzFjY89>&1C0=QuR@#DJd8$LQ_AV*yaLBd^*QwSyHdK+-`69o zM#y*)W9}ou0GNHMq4@3PcZ$@X0b#lmV=%0(yS{s0*VjWJ6o!p*l}Wr}6}&;$O(2KcaP zfWIQjd)NgVk@+Yy*#I9k4KOo?UJ9Z9@t6m`nNqq9i0teOb^!TnHsyoO;8rQ!JM=|g z3dGh3g%68tf9|*zi0Ks=^`1}Z%X0|J=`URccfKAF)n@{JlEAsc@s_}St6J&};kzEW zEG#Ijv<@|vrlcwkjQw__0^!;qMY$k|NvL*gPt79yxWM8ddT zz68`LI!zmGfqN07OuQ=Qj*+^t?P}9CHWtFB@%_l1y5(KMIgK7!?3E*R8$nXoZhms{#a$qZ|q#@;JMGVCChsf))+L{1*&Ho7O{ z6E-)ow%C(xMPxG*?8%-$7K`U!@eYWu{^LR0xG%3SvV+{2UXnR32P^lhTZc&4JVup*`LDpdj1U z|9O~SrsPCA0@?}L9S|Zdkl^z`{SYdM5$^-YF-VO>$Q*)%^SiKMhp-E>jEh-HNl6}k z!Y`h*9O&ij4iWt&M6^{?A!0v~gA$S%;HtI2c~mGcD~&C0RZsvw2E*ykXDRWQz(Kpm z6lgmcL9cgwL^mL=FC(!y z;%D~}4R3;|8+;9Y65JUP;{1e$<4Hmd?*;nZ)Nq6#{fmbAi51yc!PXjPaO=Q_IC!8N z{cK8n8%1!t;6<>19zkyx{0EWunBaE7w}^a=U}YSS)HTA>whF+ZIwiiJ94Ozcn$+q4CYI#ad4A^?u zJ_MA%5cIH}mw^%^=wZ7#B25w0A|akB!#4LgMzcG$oTnsf`~{X(43>V!vPa;l7==w= zpofbG7ht#;Wv0Dr1%=C`$wJC$9R|-u0cUkh(DCmC02P;ASO!6Edgb4vVx zU${mAZY(0a%BiLaqr(fQ$CqD%PD4+GP8V%#%a5TY=}(K4%)amd zZP6)UJDGAQbTJ|qGQo+^3PhG6SWZ2W$`in95K4dPG!{5#8s`d}Yo0bC{3{GRvV7YD z&vK5GoHtPe8xov`4HaFFT8Iq`1Lyex?2CV+Q9Aq^X{qso_Umk4i9|)2^@-j*eN$Si zZB2#$yz8l1N1;p{)z_muYZ3IQ?xVRDA4o@6J(+0i2p9EGWr@sy^5gg;44J<6r`?$-w^o)L0v42YOQ#ELZNF` zSNuXTvSax%Uud0_*o31+XbO%y6oMAo7?Fldu;R-QX^o(+6-KoRE$6XFLg+fd#YVft ziX{7UFLRGCv?tj1pd5PJ7(|X?f0+F3e zQ0Q(%UO`Yl|C`X3$wI9oj1K53CFTqL-plMX5Ug3!kHGc=%AwF-5jn^Ng?dkWco0~#q=UhB5am$lDTqv9f?g6#sz zq0k!;xt<9M-G~Su169-iO=z9u4tilA)Q|Z>UEDOT1Z$S`0kFM~awzmwL|$fsLO(?0 zKM3mDe-pYcxlY#wLj9O8^mi|FzAyAUu>FQ|C{$q;<|1gJ*@*B-NVWangicKs`i9`z zmLKzbq@F3U1HRA_uq~z>3hjYNHzrupN<{c(KJ~@F2@Q>ZJUj7mogmiEGM`>4v6X|t znkP=xV0#>bp2+(ok$}XX$m2}qQj&0VI2Y*WAShdgqvX-y>F}EG@t~LV;)0zR9r6X@ z;MEJJ4HSrmDkYve1mfrbOCXA`+tOxPkH}gkXqIh=Y(-G5g}l~Ay*sE2J-PZZ5c(BH zy?!ZbqAzGCSUpPKwEx?Pyu}0s?L%ZQf=ZRe$l-!uKMr?z=Z-Fb9mFun)t~=(u?HZh zI}4QRJ}Iqltrm3c2^z~rScI4Z05}< zEN@}d8)vk$Rt^W@s0iv`)ukdeAX-Jjt03hoRp%4n*<;%*8ivK#`EcKF6rU9`CoM$z zIVPPWe#u3T{&>dUA+m)6 zpAWq*3*n0sTZLB(FeY3d86|f1JZKUB=tz>GJ}8u57kK9}ond7pw$h8elG3@lyilw$v7Z&&PSe4+7_T z!RrPdS-x-zH}3Q?gg!C&Rgk#R^|cUVg{KaM;3CLe1IZ6o1bz(c^~dpI>qnwgJj9-Z z63s@?&gUcI(G?*MIo~xTq4TW(`Z5}#y&(OI^W_JVSFe{~o3Y^88*l|hAWjg=6%Ac4 z_6x~?{(nOqXW_nS$4@-o^R-DcE(t^$ta_cEmGo>I82ndwXVNSE^Qu^@aY6&<~oiC*3s2qOJ{ zr9;@1Su+MkonlpZ^_g`Fvc@4)@SSjaXQ-#AZxGA_@O%V4b?DjLaJDgupl9$JZXXT5 zU2rlp)74#IF@t}A_JJ9VNXP)8bN(0#7TyAQ}1=PP5<(TEhA}{=wMqz zQH6uN%qhO4ncy{@%qeLpB3Cj&Nqib_1A=-(h{KX_u91;2PovoWOQ927WB za+APe62}UeKzKfAtAE-N4^c!n7O0m+1AM@_h>IOt6Ivv1tq%^L6`e^M4n=T<^CCw{RnEH z5c_5}-OJo?_fj_~tghAKpwT@Kai@8iGpj|Mi?PB+(Bc{(QosbowMT?6*HYz&H99@x zNooo$MIknYrQqy0g%KeO+$L}~g_A*g^@yxQP%jE` zvY$<}(($JIL-o=1B>CCdf$7yMA!M&fy=Owrf_)gvx1E47ZF@uT_v&qn>S23I2Ji6B z6$;1t4QSV6Aq`ADVY>~Q+=8IDbA7akm5SnEh0us-oTS|clzXXk_a??X!6Xgyq@x9< zr()VJ)gliQZ7{mdi{DH}Z0;|E$%_cuE}tXv856Y2uZSE(P`(yPcB%E&z|_Qa(3i+Z z?yQ1GQOakr{?b?O)_MByB((tqA*8Owczy?-U*JX{(k%$%A+l;fWsZ={g{{Y_*kgQD@U&bWjBIeK74}6M@(?}upg1{5!6RQeC#gm3?91! zbLEJKDc}n11Li{LjY|lAA37kua925um!4iU(5cCq_4?*Ib zxvh`H&Pch%#v)0x>7xXlNA%8kNz{QtGYu`=IQcNhJ57-EigLOnI90ycP=s$?ERbwY zm3Iikxe&A@ME0hyYxi&=cZHQuR2%dV9v6UVI*v_2WC709vCPA*{q)CxE-S3`& zd!+(zi-I~8lHl`{Cut-er#iy~d<1-VvCxV!f(wMsi6Pn>g|?mLoD-tmnM|A5b(t?n zeB5-8(6+an6#^cPviuyT<+{^Z?+XM`8rl*n$L?S`+e1XHG?*O_GWC6nr+gxmu#XUR zw4ApD%o3g!Cc+cX{*JD*H$*#EXggWXFCp6X$+RQ~T?n2_q%%hN58B5p~%EB?_VrZd0T59EURyQ_~ee| z$FL66pR2vt!_cNv@FKC~*r(IQDoA5kXLYh=Re`qx*}{1tERV z?4?K(H9G?p5Q;bPX}(Sn!!%WYO1*gFlfixfu=pOOLWEX)gvBR`1TmlF7*}bv_;Q?% z2;x}LV2EvtvE&6Wb_4m+^uvHO1VNjAA|j_ULDQd)$P5G(7h>P^roV|U^eyi&3d64q z86GnpV|bs~vHX~C_!qrc$5SAShQAtexX#sv_YorjNyzZcNkYS~0eTJ9D-renyW!_T z8LzFNCFTL|2n73HFv?8K1IU|3xgUHvQ_)7*jmS$(&?w&{@-2dLWjf~@<)7=%p2^-n zUgmQ+(}A?Jy?EVIMcQBB$5*^)X?)}~3qeckgh&Sjb%hZBcWKQ7Y0klh#-TXVFNY94 zK7M%yw%A5b9D^w=bDZls?Tz_lAk{OxaNham9|#KnR%A56ap5pPN+ zP7R2E4G}*XBF>PuL&;wx6XyoRjRc9y^g|)yP9fr^riQo1wd_@0Meh!@)$36X7ejbN&$RNF~#bhiH^ z8{w!5K~MC3G}jsiG<3GbL}QyD3zXv#REcoJ-N1B+IuAiN%qtPOoC$UVs}Z>gL0u}0!VPn@?hs{xBz@!NMBk{EFPm~L z3Z};;pWdTg5FTfS;Oq8pIp3kjBMU-+v10QB#uTE6g2 zRxRm3=Q4j1WqC~n+jQX6aFy&RJJ>|AtUp!kipio?N@K7`&<69-A^`ywa{2?U=8=R3 zYYg;;B)dnr{)<-6C$xG@u(eiB7x6UqjvK(4?PUR)%b5cI@CGa}1+F(B{e_EZJkCPF zo3RROPr;iB`Wpn!E35eENnMZ9^jsTpHbg|)Yl)m8EvjVy5>G){{RrN zT3?0^W`okNE~?wWv>U(q*fl)q%;M8s8&nC`rF~(gP6#>Ngx{z#37d`dbOgQEeW%Le zUbnM+Jh!?xD}CW{J#yC~=vD8%N?&f|ODwk{6h0_I>q(pa^h_XfDZEqZ%ZeWZ=|du} zk<-<<)L_XJAaZ^DgwpHiAAs~7g112sxuCPWM}@y$=)5QiPR9p;9wVH7Ohv$42ArwE zw51;Y5(}MgLbQv877LxfLbMx`X%h>bG*O8Qot;99g-(fpxzO30OdFg!JM9FCFZ=mJ zXtCZI7@{qL%}o7kofBu@$NID=Zx@X;+QzcybOE!xW0PqU%buAb+G#?IWzS_H+EvN4 ziDl1qA=ObFI}hop2)aE~8`u)0FC>f)hE7oRc%%0| zr0*n*4eV5v_K9U#KOy}Qf^O62nl{}VxLpu*o1S6XG-fLE*r;ckM!gEzmmw5PMVEi( zRN3HLt}UK*-$u|Q>`#dNzywEFw*=mdpq2=+ zKf>x~J!;)>8y)n@dRx&abgY$-dX0)Lqg0Mr^}x3-f}U;oXc6mHpkYKE zO-VwfMgn~}m1-hYe}x4Ty+*jhu+uMqA>IuD8R+z&erVq^?aorT2T zCz}iPGqzuVSx}Z?YvWa>s8Xe_rE(x z*o_oNcexj$?ncl{Zyz!84-&YJ*6u~1K92xvagy?OAmct4ZA8WL&J(_$0qGM2?S?*D z1V7%O-7rQpmi7;z{2zkaSZith=@Q&<`#%c!qCoIg28pFh0cWe&1->F#aDz+)T|gfZ zZ)G@)#4jKRj8+Kno$oV^D{$eq4(vkXPh!lpWK<{8Gs#Ga!LeQl>FZ>q#3MLYkk96pU2PCPCtI>N-KWOAPPV!+vQ_6VG>yZhR}V{Z3gVd+TA<2cx0I?Io7aQvgv9Q|>SeY6aO zIYPkWyAGN_KiuuK6*vdTF@{m-JcqNPE+NXZgmM8i9~q*&S}5^OCK*#nd4gcjAa@wb z$ns_Lu&I5HFl%&CHg27TB zp)qhku!>CWLX1V07j5gwsfW))6~o zd0hli&pP@`LND?MN}J;j{$3*<)VLHWaCXLjCg9%Z0yndiVP%*in_0@XI>syZnSXeq zi4Rp|aavKRT6aa`9gbS)i;%^Kf(lhHPUBZ2eHCGRbf-{_BJ3d2pAp7sN})Ox3ju2s zY|sxuPZye+>B1VMS0U)>LQ8+T@ZbVY7h0L=!biw{3qij>qP>B|QPLEI!guN#RUcx{ zf=?#&P5mt!`kobXIIVRiM$WXZ9mTYG@YOM;cFi!KeStF!*{Fsm~IING82uwPd0ljMT>sq1JGc z;L+!I2wn%`u`$gKG5J(7J2I1N!vqs=k>HtGswC(yxDO!4;GzNrLIbp%x&mWC`@xF3 zpt~MEtf21l2Ny_5M+pH-I?fOzN_wVbvZR+vW^E}v$icWkdlGIbr_CJE!Pg^~(8>@`wd>nAmD>YoSmV~32-xRH~^wwmQyx;!X)d{h~Cf0 zPk%fQZ|#iet%&qrK)27t^V9j8B40)HvyiCUjy0XY;dSB3DMB+Y&;V)66`Iw0Piy$1 zdA;(obmP^FjZ?t6`Q|_E+&d%9y8^ljKCuG9ny?G|BKFpZS1vRo1DYp6qc>qEOBR@7 zqIpjwwjDWomyw%G_ao@}sE_9273z8u_BNt%KDrwyuOO(ig;VkhBy{2xbJOmY7HM^w zFW6=UGDuQ}-Kd*8 zB5ENvr}e5L1(Oejpv&T;xz@)(!%E^jqOmNEfzptuUkj(?vLvk}Eb&K7w0{w7T^2pd zw*ssF2obkNVg*pUJ68{>?l0R+nbzthj*khe3Qc_}E9Tc}pwfzUfl{5QSbafCR?MID z!{uWEe<;>ku(e|9c~MjUMhWk@e=3^j4#Iy2JiILp23=vg(se?U5>&tv=rowye=T$a z7&CY>;yrbI^kBXfYpjlsv^t*I7~a>%@UdrNfNORO8%m!@DKVP87SW0RKNcgwmtZ01 z7D@`A)AK`elAP z--@z0QeS5Q(2-AF*nhZs{IQQ(=oj`6x0x>N6ljI)UM#FGpC#p^B^@bW88(QbqSl>I zF-_u6Hv&;Y#SBrg6Qrb{4W)7;dZN>&IRPwNL({XQvuuqbjXC2n8n=uzG8*UWvXw`2 z{UpoNS&9l5;D*p*Q<@)TPML)&;>WJpe+4=mJ`BIuZOQ^w!!w5>=!fAKyX`&!)+(fz z5ypq%7rO&`1NI!!I}!8)?U%c{kK~X2eNPx4Xurb1>LZ$spdVdzSkU z(&^Hx4J@55y~e~->7{F3{W}GXQT#lFRMzb6M$TDCPa=%2z0ts~MtTWhHBHbZ8Q9%O z-$~e<7$Qa=z7O{`gdC0^TMS;>5$Kc=QrRH(7`&cHw?)vm%J;je{?1y#`>?_9i-F8B z=U!JoRl;A6pN){pv1hx1U5E5C!Z-x&aCKvP0BOFMHkCha^{|1xhxF?Rg*^*kHGDeg zZwyn?m>xh2Zxl@V&hP=Y28f z2T8EB?+6k)BhMBq5J{ycn}ib`tKc^mhwvA{e|c-*Jy-X2t=RES6>KMn^_N4eqh}PLEFS9aRU;6Mum;@6G=jw91rv= zYIM9vNVZAR#a^+DPo$}-Pl7EN7I}KQBx7LX)Z_PGA3x6n-IAH z!Cd*fPq;Z&OZfRJH&$?&aM%o-O(dfKJ&nkdOpwD{h`fQIZWiL&j0@xNro-kyTR(;& zNPkwiu}QwHec-m2>?!MSME+!gvg(xKsY3+A?Xf^xKjypN&2H>tpIZ^|8zE?JT@mTb z1i1}DWB`JC^ItUAZm}vjyU@k>Feru}^95h*#;TWqJ&k@mSXWUNi*X(zQ<eg3ANJPWN2nn%uaa4;k!gq5d1=cbF6Se zqudPw=eV3Ia7wsa;OxTl1%D~t)qwloAU z5;)cCE^yv{?i#}H7lMxn;SUMH&oFS=J{~POyb-ZTC}u*!Q!*w|qZ>nK%!01(;$_bbpj*i$9SDZPzqiDo>D4ber=D@*Cmt zD-g2yLg9&S7p_cpA^kW)Y6dnOCYyQZex$!8j871p<))Eiy|(C~5DJe=HKK=!n9HvM zBA*~Q$E^!=s}xAh5%d!TQ{8+%LC_EBUI_YODg( z0&sNR7tuk)FVfj-4c zn2h#!*995<-3FSX+ZfbcD|f1A+~{7)#mBCB@M?G_-;2=7ZBNYWfVUJOi|;XL<@Tb6 zPa^stg5Hm9ZB}Lbk^UY*@5i=t<*v~PZW6UOYog zJZ(1K^&`b+Pp7ILYwzZNf`5H6=E~l`PeoEh?svc?`tc> zYzLfjnvFjR7NfO!o$XggZwz!nx&wkX+n-L@#r|^ib^?#VPC_UgA@v7`(4T9-K9xI1 zmRSTX2GRl|UL}a51hGF6->3t(aP@A^4M4gc!MRfqSrPnUA?>sy{!tM$AFm8My9A#V z(bC|Xia5-0uL+(u+(Y<8*BiShIU9(>u+GmA1- z!%kz+^yezzA;$dNjeXkKK0o~>z^`@mrdB%N%D&PmI#kSE&4#FrRgOMk$xr9r;1)+; zx=X(lL)lgnXA6t{T!c-HL7=e*IA)jjekjt6+n9i~(HpaGb;Q#zMr0Ya9pUIV>a@9? zD)SM`(MD1_Cq~sy)+b<`pU%n8366ezQvWi+SVuoLnV;UQ9(FSvJ+$Vhb3byDqkoEl z`k4LL`HsFChYi>L4KbJ+#p;SPokBc(?3y#Lg9lU7&Q1#|`Vf3>3qlrO`_tL!#rKzf zhx8W+`u!L^9Q^~QX&q2-gjQtGSJ>J?3{yh=>FLBHR{*0vQ1cNY^O0zUNDBltMCi_5 zORw=Cpqoa@j(4O2cCl^j$@c*pdtPkom!vjhO(DBCtE$Z_V4BXIiz{tYk7Zf-y#(9r z$bYTi4-)?chQ8L|SZ(TE4=QeQZxE_@I`&p=a|ZAp;&%wuptjgcH8}a{yU>qrwdHuN z&9UUc5%e+Pu@iHXr-a9mb+Mcl9v8u9p7nV=1El8z9@EKVCVHZGg$G}q@u98XlWMhD z;pgrP<$fc%`RN~_bO$7dXH5U+%ivz^AzSzN>HOg~<>)Qd^u16d>U;GLAZ3VG?}KgX zn0S8rHWWY4DQ2IRekc?5=jfMs?*5>Fs0m{`D}!+FibTUK)Gz_#vSPV)YEb8e*$op>?AhfR%YG zzwYMOqx^avUuHj|vC!j(wUrF<3xT0W0*jV~u$Dr+N5UZh++PPvOK*cvziV zqh+_Y`GA1#H(T2+X*X;5De%f~Ga2W*fST)C{I(rkV2J*i<8O~*B{pY&X@5JCoker~ z>&4%mNt_X^gr9V$mY&uborA6WiS+3`&~ey$CX=uG=D6>nY{J=gQ?_7yPTdD0`#;|J zKXuZYVE&vDA|f}OVLbEYnQtIs_;I)Xn${eXe;y*`ha zC|~FEgozF)LO)=l97bN!QL8t9NINq26O@^6y>4CuTSUg%`;cy4uCr|Zifr@A9W}f+ zZPWX=G9z$q|tKf+Y_)k zXlUvinvRd6IlCDCy8_GQL!r%H$FM{Q>)q--q5zYCvzg0nz~=n1H|Ojk>O08lJ&c)0 zGV^p~4jDIY8j`wTh@Z_k6*ELf>Ou~(idf^jzX2Sd0hED{UBgi#au8W(qw*&r#BG$J z29ax-NJrusM0PTfhr~WaK4zi`5-G48o<*?YZIEb*NE0TyA~6V&{!H{o;tWJiWnvf- zS0HjRg0oL_c>&d*vl@)#Hzb{CAIq`7H41X?uDi*^S&^PfCmv?Z6eMm$jS{4p;M_7q zJS&+v@i1f85b@O^;^86U?a9RTg4O@H5b;YP;+Y}hpOT3aPeNWINPH49wni6RKft*< zL|i6tDRbgU$Son_qeH|`hlr;n6DOW*d^1G6I7A%#&RClpFE@qYr2^-#<2)EOW-TlQ`WhJ>fYBBq{tFU=5g9-d2jlNT zAwj36KQEKSMaHSX7?0pwCK%i-z7DxG)O^5K3Y;#n&A=nLG>0cdZ!FWu&E=a$^6ESfvkD!Ds3Q=y?J%euj=eBE%;lk=_LpY6RyCL8sFFff}+` z;^^g9L88(p2oh_+txXB8YaW-3by@|iNN<7MH;{1zWVS$ve}qJTM0zvv4HDIe9LL13 zNK8Rw5<*k=dhA2|WVo~yW@Tg+LB>VEScu?s6AZf39|`@OBLz;+$pRG%hq_jy1nxI6 z?kmWTB)lq`(;mkNi5zMr&Z|BXBz^xukXVTa1Wr8`C*Z1$$n#sLt}L$P#!H58r^jza z(ejW{gJP{hh?gL-9g%HJv_;|tM0PRJ1Bw42@(x1N0Z6g5oA z;M81cTGGAs6BjrN<4OE{WN@|2X?px(Bw8R+jNsG}bSjq*)LNaoM3Csz<$^?~?jUe~ zSYu^*eM3ElcU(AeRyeU*5`1@rRm3ISHsO}*8rAKZRhuyUaotu0Rfkb`uHTj-auE|; z$32e7BM7Bj&*A-@3*ubU{Q$^U2uF-D!I$)SgF#oK3ZwJ;N$e03*NeJrGN(78r{+>AY0BjZ$P+je7s;8ciiDZ96~2mx25bA&r8%K1Uy+@-zQFfx0r zoOOqeHsS}3KN0Um!Q&pQJMH6S#Lgka?*$QOAi@f#RhHLBQ1p&(r6lx@?^H>!Sl!SD z^_<|}igkTR+5|&TtNQna@Gcj;+SK=+6-2!gT*TAp-2xdT4bQIO{j5k^WYwUhtwLx| zypIJBEfSbjuBTBRK=!>v;c=sn;#d~|<#;!yZ%6G$_A3bbqPLF{v916Lc4$tZFz(WP z36y;Z>TeO0eETPKBP!+;2&HY2z;lB0<2?}h z4v;SpGPwJ&M~Y`#TcO9;NcM`&&@>7grdL1%1ogR~G>1E*q2boZeBS8_E^{{JUF!M2 z8PlC-{#ie7fezKkXbu)l5SpHb#0tSWNwD?-t8^kV(E8@Q0qXhcRa!EL@th@66;o)-501wEd9)b@Io@%KsZXSJfM`D9KIYa;qx9Ldpc zw-DUtBj^igK6)fT&lPmI;M-J}E_gN2uR>7oiBkX71@&Cl+b3wo_q@v`$)h)`>CrIJ zj{+Gl!us3=+YJue?k~Y`tXF_@awNVCb*gQ5I~3s$Mr+&cMC4H>XuI8ryn>*L{?G9J zU$$#0whP|3reA6%#E#{&@hx~tBz^=G)z|nwf}9T!v=x2CNI>FS5!d({l7v?L9_Zg9 zsLmoG*@~fSe8!6X1Wj8}`38}#MYE!sE$+-oTovSS?3jjzcA3CAiJKaNUn6inqdYQ@;UB3E%_WcwBo_A#>MyBg2|`JJ`+qH{^R-+is*eK*?Q3XTM~NE zD;5`L;mgoz>Ot?{bnYPp`r$W2kfif*l24syOMdM-PZ3P&e7#_Xbev5cwRT^mQcMc!?*&R{By=Cm{&LRm0ONy~{J~keM&jS!1MxgW=>x)E2zq$-(IQr3 zprLR4m}qR(!+|msL0u`Ff>sT)tP+@R!g@?NE|Av_jJibPr$Z&(uT27z(-3sOwg8cN zOt4>DhR9L`wS;JS}hIWz6)q2-F1<&+$=y$_Cw6{qxbr<}QB&eMCrX=*t z#QBeSKHsi&t8m1RLVqt{+4wa5I<6W^2gkAZO^t0{nD(2%Ire@Vg69bv8X^~+7;R{7 zZ0ehQ?6hQ%>m-=8Kre$?n+3eyg2!@MUMr~t(*^Uyt6U&QAe$e%<{fsyJn^~()p{L5 zCQrOFdD4~16Ru32Y-RF9E0ZT#nLNSDkVfJB8Jd1c1 zyjyZEhgTWtdmo1M?~wHYB)^Ri`9CC_KIog7P|&Ld62%CSOe97iax_9_LnJa=@~b1h zCX#!dzbyT+as2|4zs=MXmjQbrg66dyk*!Qn%6|~q!vy6=`eLzzM8)l(jgxyBAk7it zlrj#HkxWq94TxM#0MBlV0;ztiu4O*Is)C2W_(C8(1MH^|^v?kALF7#)CL`wyL_R}M z<-%vdE^RfmqC|^|!WLRspFo%&t0%$^#V+-Q{RMV^kUxKOIHMm1R|GAr7?B1DYE-f? zckahp8aGx)I+Rw@2j%3eSU%c;Lia`DXwdaRm^2iL*O3z+hR8%fPDV(hbKMna=g0i6 zINNU1dk2)DpUnmO9EAVRe)fQ{rJt38i_B=%Qvw%1(>+`(PS;!hZH!_EF|;rJscUEI z;ou6$UqZEc)a;|XL9D)@V>oz~YP09t0QB_;s-JKV_k1xoG*yqeUFGT=n&2?OHvORa zeW$&mxMTS-U%wJNcHzSi$lDeVL)b&Ujy_@}An|p?t&3?Sp^k3={Wa?Nw@66VG3hz$ zx(OXq!#X$na__B#gpy;B_!T!B zp#~4nE6PtK=)NVgTt8sh^g0OLrHq`ZV&iGl=6YoO0Y<+fIC}--E_hWra!tcWO~u^A zp@k!t+&Sh}8YCmdE0i3Ly6Ol?@R~lInX8qN?t+gY+&L&p^TCM~ngv#BP!ux;tYo}Y zQG-rwIS&ak4__V>rRD?vtibtH#+wH2kx5BiG=mTa76SN|H&zJrj_(vn@bQWqR5Gx_ zKe;edvbn?F#$qA5a8)K+_C(aug5~i?8sI@ z%CQJ~r0|g<0eY^{nsem+RGYosao)9_UuH9WBCs6V9>1z)e5&yidQ7oD-EWyeQ= zxYjF@s|6E3i6yZn!tp#iehaCBE0R8f8=!`&Sgtp=;`p^Q;OWN-gy(cS-iX5(K3dNQ z#2}6}9(vBV)o-=v*`5=Z_XHC^1rN*xwra$+YkN*o{4Cd6h%8J@{HvBlwE2&sOm|Vi zuGtQoM`-gqP;YAyBDDOwh`fpr*Y-aeM~O&evKE|r^86j$?s^dG9;hXS@l)PZvgs32 z--#iUyC&s=P-X~F?cJV+R2sG+1mz*vWRf>4sCpr@O}gLy5=8op0tm4xC5&N}L)fu?|Y$9Xi{5C1wC+8kLw|s}iAi=!gcCMNjCh7S;V10nQEhOVuL*rlSaNs ztBBi$_@Gq!W7oV3^6t+f%N}DDjmQ6~f`axXDC~bD=OHU?Ai6??%mqkf5P78_W5(t} zQ@l0@xQ&RbzbXig6T1V*+9H%(fkan8Q-K)25{V&z4n&BrLSiB!;}J@3L1Hk_Hav%% zTamaB&;K6E zre_FK($}Q6Yu}};9DnVs{=7nbBtm~)lD-(hvIkjC{``FCG0>i8FUYbnF1jr(H={5O zHKwd~Sx(*q{qi8$tvJf8)Q-$5 zwtFb%38S=zcDt-m_JjRYrd=N57iXrxVm0Ysv}_RXt?HEOEFE2vz%dt+oahnSXq*J(WG;1Vlu0oKDNj%pm(*4 zz#zSfQ__kfgR-=cVvjiO1Em5_K-UoVK|JwvxVek8gLR_k3j5AsRg1kA1x3YLyDom+ ziFLY0>?9>Lqi%;2hl|-=HyW6y2kiV0KdPXU;OvKmW^sB2^$z+EKc-qoo|3XgkGq z24%&I?J0ob%^!z*JUZJzN$t<35%8CAtxD~cpc|~c44zQDBBonEa))T;q^rQ;QIZ)| zvbPKie1TROoB%PswnkG-tA?Sm_%eNvWu2bruZ*T3dP+Nb^A#5?e+$$Mdi?7K0jBUi1x{F^trBOQxdzoLK@oPW7Y)l_r zZa#V0_;O0{l~T@F4}KkquP9l?1|jBF<16)4esQ6bI+w6Z7`ujFoA|YZU(fODBYqv= z*Wdh#a)Oi1FYM!4X+0R@Y$kOKzsB?H41A@Z$Jj!AxtHN9zMQce8M}kAZTPZOz7=!) zhk)Gmwyjj2%J<@`SqGJWOqpudw@N8*v5I=g@m8vA&)$njPYtM7rRw140=!F9uFj4Y zYjAdz$~545VQ}3l6*pio0hM4UnEd|%Uz%09ze2^TRVH|)SE`0ps{SI?Wul6ElT=;6 zGNF}n=R|i^DBE+>tEL0u&YGxNAg>uT@s8JMG0&a3M>PVlV39&%(tcHdMBXkWq8(HN zW=K2_@f?Xa_6efrD~T)5ebSCj&-dIpwyG2Dr=k_AewE6j{oK4ost!n^m8!5x6=+a{ z0F+;)a(s}nvm4(m7H3Q-iMt9~iS|n|UuDk3-s(qzuy9l7MsufU6*Q!<*BGprs zB9(i*D(#L`FN0jAx>c%9L>{h%Ug0AA8>}jj-_W~AVcN7y7427^=l)=A z1~C17u~?;!w-aNIjwE4%8M>X zcL8^*P%Y5cRC=F#d%Wnnwdhx-?>Bs=(^jT;M8k}}eHcFYJ%P@}U1IOmG6!oxp7)T7 zWusS^3_Y?U4m^Dm`V2Qag6%HP{ZiS0rMj!;R7NYS00ZV*;IxC9<=U#gXRlFqHo>3S zcp*--o)_Jjoy9hFm8$P%;P<(7r^aHY8#iQ+(BNWK*bP~|>8orbJ$3gH^Hz|fD%_&# z9|!1Q-J%;+t3sxF>aH>Uc-3eiQoV#?L&Sy7OSR6d>Ag@g?jC^NF7&=?&Y}tcpadYO zerQ2)ZfsE&yCF9QfIDlts=rJ_C+e;VZD+A?cXKN}juY;q3vAtaKW8nY%bo0W1lOEo z^td-TS{&UH?WGlsdpE;T;A?a{H+7ji8J+MyNfsNDTpu^nTdwx*3Ty@^wE^Nxgf_@~ zOYQJ>z_zw=gYMc3s?ju6TgZ%iU+7+@xJorz!*b_V8u6>N_)Pc9g!pR?6A$cfw0PVu z@x_NsOZNrJrWAWUip;r9rWgI(ca7+BbYYw%hw3v(gt|$ z=d;oHVJFk646vMteVnS#e}h#n|Dii`J5Mi~SW%^Vc^8LpdmRU|p=MrDff*oh**RAG zGY!oo38MKWK^pl~$NN-t3v~kAv8Pgv*Qi{fe-2|9r`c~D;szAFjb=JoI`I=^l&aPQ9|QzdyFdYl=7hGr zrnuG&26I)8JG%nKug*fnW+L(>syGG|Oia-GVQy3im0~^HvvH^I((}a}*f=wr184=h z6VE*t4jHf3-WT^yRQc{w48ST&_oKOsDmlw?_hT3~^U!MFaa0qC$?>W^do$#^sgS8v z!&sGt^d=V4xW>9fGhb$k{*gZbymf)SSTnZ!&_^d>QiF+Sf;8mDLaKWR&wb?r^aox+ z(ZsSc7;%=CY+R>}aR)YOJ#L1oahdAuUE*=ZA8l*2UE!^{Sa+7_5)?)^PEOm-RI0aX z)m^n)sOn4uct)0PqRN|;eFD{Uw0UH1yK`Q&$Q1J+IyO_mrjVCAPCIrA``y42iB@1x z-eNu3=%>@&tL9>KXv_LI!)XPhc<$1K84?yWbRVhcGMLT%>4F{btYwiZmFs?a0b5hy zbT+1TQO=3{#$>x&Y>XU3l3L9Wdi-jIJ=}H0|bj^=tqxx41uS>9$S z_yC;G9;ve3IhD#jsi>$*)pe&M>ZYR#5M89Bs=J3?dXGq_Ic@iGE4o>o=p95N7R^>C zo(IhiWNBMx+=}=FGy7Py2Jvd~A~#l<$KC><=<^z84@a3}-j&hC%iVMKL>GI}A}=~* zIn3wQ*`s=RQA{{h?11XQDm$RLD{p;XFhN>wxVYJsQ9aE(Ya+&IPUT_`t31vK+g7j8 z13}yylB9^#m=VIgovpd;atbkU1R-x9sE5&}fPoDxDp{6`tFQ zV-$ue&mD`tdbw5{)8T^601x3Lmrc588d8`kdRwAxqcioCIqq$dB30`KoQWwS=k1tz zO2Y;jdhrORK07a{gu4~FPei7(L-O25E~pX@UxWy9^dGR|pIPfwrbOf*gD8MJQGl&Z|^0gj1#8ZgdN z@WOwLut`&siK>;m23=>{v8v=It_=re<>>ZXSgqPlL%OG)6Smo`O0fj>qJvdCC_bS| zHLO(aDpbP?T}N(R%t;}2Bzjl3Z3WiXwl_|7^xXc7fSqVr6+6^m&%M>&4`}RjH8|{i zFBs>GX{G9*&6LX- zg0B3Dd!Sy!Dl<60G>@aNa<@Ab-Xq44&mPt%J?J?qK@F3HuN8 zWa6?{v5#`M&eapMlbtfNK8(*&x#yx{WoGcH7T(2O<6t!LW}cwRz3D1m>0P|lX!2%Q z6O1T#I%MRzuO&38wReoWcR{e{;@6;1@!8tZb-%ut!*kqy(n81Mx$!F2!x+vBgW4I) zk>CWt>nJr;4L%p&-tpPQZfb8XV~DxiJG6E|&Kt_svoLqdoQge(c?&qq zP-+kcQyF(O;jR9nr-kRf;}dR75Wa`ygAg`LA~c;ljNi<2Kkx}RBnUBB`h>|6P0fK2 z5ZP1=^r+pUn$LY541uhV;nf3Vi)NJP!4p-!dyz(JuzUweD>#Rkmp`# zN5iX09MW-EYRZ4h6*f#G&MtmcDEt;NJ64-H?i1D`{?}hcn-?uoladCvNz4>3Gycg1 z9;3OuVr}OCB7Rl!t87_ir8-rQRBYlowt|mhLPyQfwZ(QQ1t=z38Es)MGl@Xur@AlA zVpj<_eJHvJ-)j?V9OD)o%F3c;1_z#iMUL%$f{6sWm^o`ef!{>*`?bViA1s*Z0vPV! zcCbQs@0d4{n@D+{`=L`wh4g$6qX4QR&#S9qL%eD#<+(d&u|vpkpNQ%fvjuXNC*&lW zTas(LKWHh-=T%Nut+4^)uxq0=I9C2Y#@+<5s_OV3zwg~8FJTM&t^q+oWk-q?ln??$ zLK3n-aJwciFCmiUHSdMRx=?Vh3#hfOfJ?2ds92TOrHZX>txKia+S*!0Yg=2bU+U6o z-Tt4MGw0lUUy}a*ua)=CoH=vm%$YN1X3n{}aFd30yNMIrp-4C`bcaqu&8hHShq^=S z-BGu=Lt6mY$f$)aZh{uzg;GM;mBpa*$#2N)agW2cttlUa9m4&ZJGI-LmUz~UC04rA zz5AqB+EaP0UgZv@De86y(HC-_^o87mOWz~uAFhw>;Y2ELj$7R$PIilEA6m;!UePZ1 z@Nb~BkT=M|r?^Eby~9Cvy*uq>_h{O>R&b(=c1H5`DHltrs20rHXm^~wxyX%`6w#0A zd)(OQ_uVz(+01a)gsuOF!`bzCnvyCir!vvT`iR*_EJ(Z$n7wW%0{5$js_7%&#~xC@ zi|refqGN$%+u$35iD7Fg@p;YAp=|gI5fOt;G~bb!unP`tY_yy9P6b|mVxgN3bCHyv#DCD!_7LhcJD(_cz4xP-0q3<*C#pEE zLekvz?o+wK!Gu)r4x}&gVJ>7wT!iUF!u75bhb}ljaJ@@euiUL}5z-V3yj{7)nbdNp zhdClaxm#(}1MCAFCF4S?S_Jn%ysmw340(?hMPO%?o+)Cju!p?MEue)qLwQsANdKsO z#3f_vxi*7GuZ++xicf8VVGQML3b0KfYW3ex*Iy%-#oZ^mM4k{-y@yVj$ z^Xa?UU97&axJHT=Q(kzm3*VPc!AKb=Z*wP|fYMrcAs8*bPsaBYYKUA4z8ow!BI^KL zK;IXrBK&xUu2WFdCa6r==}R~ypmholfdDH1>YncA*SUvL6nF}!?{?`d9qsz@tsIQv zD<8Re8rryB?$~djr2O`Qr?}(3iqeUyQN4Q%H9A>ETGXh5-TU#|+;N;ICpnV4aw2pK zKMFyVtU8R<0PishjVSTHodPIBk+{XP?~hSFHD>?HP)U%Yg2rCZpf!yI zL4Uh6K9ig)W*#t9cOZj@ul_w7(p8>b##jC2<(?NxlK@OB$c zh>9>8dobwP6Jp8)PI|fCod@`Ah}BLd>fx&F;SNWsfsNM)$0TB~xHgPU1q1@;Zy92Tv&|5gxt zAL1oQJxvNjdH`tbGcdq+5GwTu;sYm?(&XQQ$4i@A0xmZU3CW8cKKK||p)q?5&NKN( z^T`Zx>@i5Q0OC+Y&n5^>uuVf+vSMuYzwc-0Z@_VLi_slp+##(N;G0<}jAi+i*vjJwm{sDDh$t zqJ;9{ll<>$UKCGfXtgMPeyBg6>e$a_7U+YNeaJeIF*#zJJD7~>3YU&Yan?QRRCmHn z0L+q3dL4^*DfjWH?gN(RC(_5`nd!QZpZAX`8@iA2X!1!T2H3CmPduGvRk|a?APo9x zFyz?}Vm0h)bSj-^4~B6XVs}!ggiIQSfRytnxLdqE>2qGV*?(idE1E!C zac{5rvm>{;6U#tnp=8l?dOXOYz22p=Xtxe%R#Eb+UE2HFiUA_5ylp@X>9fJRRmP0` zr$T%6$*|~K+5AAx1K`t*gMWBDyxTNNC-ELftCJQ!avxau1IP|6q~crdLMhUkAMh4A zoO9*Z3>=;?%83ya7iIwjPDR9rT4eKJeejEp#~~cV44AY}VX6_R25UDk*e{bha`K6O zc=qcqaz*sh{-yT_gK&zE@3?1Qg**-~6p&{SE|qW%Qg!^TmRG!<3TzI)hwF;0K_7H! zn;t)!j`+aMH*x;~J{~rN|A!(VOP;6n`u(o>SBO=p#?}Ei%2KrdYiNsEzkn%!{Qss5 zI+tL3R>NJMV4FcS$w`7J?$2cD2kSEZuwP)^=L7_jY8mJPfpMD1_{5na^+JF4%DK(` z8H!b6?45J1XCI&?z?J)G8PG2t34_>8rC-A|St=yRb;m?rgQj$NgKJGXGUn?H_pp?o z(CZY7<8fK1KfyYEgognC8?E6R5-yHmGFz4509jPfu6VUlWK9HJ>lQXnGC99Sljzg60ZDW28h4{Hby7(ZofY||ySAry62smb& zJNg7D>~@lu|Mj!hZ+86mTw(^ z;rIJRbzmVq9SUw4?Fx3(rrIC$BOfX<<=@Q4wvuLI&hgG{3Iu4*kNBT+egU(CMwsAF z`Y8!toK;&TK>r1uoH=)k^=jFILo(iGF{__T+ih7|Ewk(|`^jqgMwV9#P`(gabGEq? zPKZo7=R$L*9ESpW%D<2)-`f9?dYSW2^_)-j>Vm6Csl_wji)%v_Z0?iV4P5ABdZet1iRwq>2GZaiAw3_M?q<0Oh0ey%D};^ z0y{DL$7Y{>i&QUWe?B0#oz4S1yX<8WTtI^SeoA|c{)q)*b`=KZj^y`;EQahSm_Xy*>Zg3KG+YG9CD;w*W{c4Yz zJEZ279yQ;UnwNXjd|zr_>QQr#)EwwhgQv5Yx96iZ7$lz0;+iK-&0FlXgY5^T>KRkT z1Hx>6gh6xYMHl$gPJVHKL^cnS`42l;mjxQ#XGV|q9s3b>;bQg^hR|C(K?pU!2O+p4 zlQA3isg#+XyuGMsI`j&~=|H#?GR7plk1xf`ErtZGj&b%s2B>}ax-QBEVng@`ylQCl z%V<1+f?>*IDjUO5;C6K>iH-}l@oqC5Uw5OV64tmhj%#-;wQEgJe8~=?`Ba3q)zlCV z{q4_$hYOeoAbtiOXc0kDH=M7w?zc@FG+B(hm;>pu0B$r;Xg$pS9`0;&?f^1rj?X50 zbC7Knvl2S-d7oAvYI%i|1aF1iQcAk^8D1e|N=HEyh}ePme_adU((M?4i_wUkT>G7_ z*wA6848zS3ToJz<(jR;V?|Zm>2=@z@X9jy$uk{dHf%F?3IJ}1ofjyn{>A8IDz`aCR zZ~M<*!?q9i6~-JhY~MT(+ap~{cm1@=UROfASY!8QQGbvs|ZepCYMk*7rG@$IKU^Vtk6`c9gW)AFx5xjg5p9xfSK&Q!i-P$ zF6LX`lj&Z`6yP1FI3>Rat*4^(34l&rOSgTdDt`eRFd%!p4-z{(WF9BmQ^|KA9heMh z6OpOVXliyMT9;8Xj)e(IQSUT-&u7=6z;re| z)!6eVB_&O3oe5BcE%2TbYF#4qtWgJb)t zn0w*Q+quUrg#hBX&p?qgGJ})bak)P+{6fA0KY6XYAVb6`s}08BKOprw%d^Ythq|Sp z`PD2+3*F`TIm>I|PDb(ohN~F(|I%9LC3`&?;rgH$MmH7q0ZyQ6ALzzyFuHYbKh=*D zexChSnk?pc`{qHkw_$;%=`JyqchXTKtP)nogS{Fd;Gs^OjOX&z!oQ2S;Dx_{t~~8XW@A?3j4v_YTx$DMR8lu6VNyq^YyN}42lXGML z4vga&m0s~_!$GC-z+VBEY!qYm@SSw*-+vEFO2xUi^OT?oD*iAiR>bpsXL`XSDU7MX!~P>1MP`5C%kIe2++z}J z-Ps%6Vev^r+@X{c>y|BZ2OqF}leQr~V4)kn6mMV?qUWiGEpX|M34-*^dsMcI(m!#J zE?n*c8B8?x5jx0%5#=+tJs`Z2Rh&&;voh7}1mW?pVYnqWpvhaSuIxcI(r|QOz6PA& zQT7n`q*?lBB#IIXpTR(5_NSeCQE6#jR4D!#Ez&A50vDeT?S3o^>DILybh;dYcum(8YULoV5DYe!24T2fsMX=-bm4Iwr8txc&8H6={0v>w{A*k1x_)s<^Qjd|iWW7;~_qg|%8LyJA4 zlqJi`{F>S&Wfgu&<;tq^(%RA`ip$D6sNKnHR`{jmr7NL=HIPU;yRIwM(8Q_$n#qRb zI%0B@4=ybXys0~FCEHrTpP$LJK>&Vxs+|RwY1okRQ#3swfRTl#-pZts7;$SyGUac; z^1>W7bhLm}`N?Za{gW$eaulnkw5A4&%P*@~T4^OaJFq&lerMxZR%!$NLVK`cwRN^Y zRhm1kY-hHi&F8v|-`LgJ(3EU|CYLWMuk~xoYy67RWg`BN*05R?Lo595j_ypV$-?T@ zwn5KTWet=9ePrj&g)p+6nD+M04G@IZR2Yn8TPIrk?U|P7+*cQ`5rYA0=$-}{^iWZ} zved6CuCBF`C)Z%4#Z66R*;IRNXJzAAsig3}21*J3pp_fDS|QTLhD?e&sj2aoFD_$4 zWYL02WiqKuw0AK>OaUrLYbV{6+Q3L8lIqe`dfK5DP=xBWA?{c<^*|~v_sgn;#S)&^ z#hsmPPz20yEYzo>NvdMKJ95v}BC8bqZ zQp=00Yf5W%8`Hfq2=&L6i1v4-x-$)pZ7Hj(b0f?{H;fBS3F|x0NLMP`wb^fgS49ic^*;?&@m5G={gz)yuKC)TUQg#nzpdYaJ9f zibz`}+kx(;w2!q$cBI|!+T^E`tke)zv!7fC8yqIDH$r1Ib6CcfP`Sp+f(p!c3dW4~ zNJtaZ=94Y$Zp36pNou1&o>$|{zL6dGyasCi#erYx`+cIAm+ z8CEPUt6mwRz``Yo_^?wIwN^v6vlVL()05=|rneuzxw|7ti-;NKHSbefWnRlxv!%>* zCzCJ~WW>9Z+3v0sj9I3;Eo*gmv~Kcg2oOU$)zzMnEshN}S#mb4xoj=1u3TxQI=b8a zvo@~BCXj9LvEE_myEZ`CLVE)Yqu-Y5u!4mS&nlJ8_{~^K5OHy>zof1jJ5*^^O|HOU zGneFcT&z|vtN~mhNEh#BO=B~N%)Ts-o_p?Qn3ZF6|Z4sH8E{z zc&aI7;gmtj(Qf4ot}KP4y2NUx;gZL}n+RqoL!K^{68x6-hSm*8eSIBcC>$Yh#%xhQg z?e(NrRYEIr1hQt$8s09kipaZ$D+nh?EWg@hcr(grRa##Kzp@v{fMSLm+}i5mikhWZ zszx!juYx59PpOlAU>L6yyei)Em(b2fMu*&wt_*E^$_%l0h;`JOOzF+3p@saWZnb6h zaHi6v#0}lqb)8-C)o91VCe_+QLzPy*C9SQip)I^C>u*do%F1VlmiCHNMlF(bSL+5S zL)LF=$Z{BwY|NcFa&g$P@t2n6#s)H}Aw|$WQ){M^H&AY)gp}Q!hGWC4qqrPPnmisj z!G2Riw!zALtqso494KU4cYBBO#+28^^}Gf5^xY7lEh|HK#zbKPeW;xHO=@pa@)88- zPFYorUrIhiHzL87j#N`oa$Q3grY8gOQm}x9KWp~rwKj|nPN;Dk6*N+I}P_C>R#1VEvqhGqMR!BhBsw>Zr!;#R}D)lD_4}2 zTB(LEIO!QoFguQMOP$^r3Bs|7E15Kg0e3wg%SnUp45dl z3;1gs5=2%wc4pe^mXt0nt}92Jp=L#dzI;iwPdlPvtD?KTG1aBmqFI7YXRxy%D)ckS z&UA`)X3=&?(8BDbpvq7a9z@Mr((qDV?z4J8W=99AZAN%+$GEXQQ((gCKw%Zz9A1D> z0t?}XT4iS6PhsnAN;P)3m@q&o2HV2rpjTRrP#OMlSw)?S?L(4F6898E@y>#2$}w+2 zAW>7j+OMvUjsT8M38E$J_bbbJpHFplb&}Ufrk(79L~E@Gw!#il$?{SpEJ#by7;9xY zrlp;n+jJ+5k=;@b%*YzSKqayGmC&&kus&(~07$t^v*zI^tr~2LMkv@>uy|Tq5bD7# zhLVH5j+P?+M=zox>MImahP8-nQMw_!4pbVuvHxKnAf;q_v(*YmkfI8|VI6N?4cRQ> zRKKTz3OSj@um;PtFU(VEHMFGzj~J1Fzoe`h>7a5;FB*1_B2r`bRP_xSqOvM5Qj3XY z!x1z&B`Q|{%vM-3ainOYQ4W|gVk(x^ad&%nHnj<+rZt?wU^OBJWpxuvQQuKk7W)<9 z9XCTBov#F}RuHQ)SV$t!VwX(VLg2ia7M8NMVr7+e=17W$>nFQGjLmSaT_`WB$nl;i zXCkVfi(FM*yliE$r4&QCmzdg2hH?xMaR;7(BzXMN>gvks5IrQ!$W_orHKfAqbo$E8 z32B&FZQAjqDJ@wHQ-=7B5-LbhXkJ3Lk1_$onzk;;29=epMPRbJxE!{ts&+Y<4S!`_ zZE3wK302$HFg0eu5GK7Cf7lu7-BMqoExRL3=~jdU6P; zDg6GD>a|t1m4019m6{ci#iIP-M#|Q; zHaEb}>1Bp^0#%lb7K}A{gJ_R`ctfFu8&ywqUWZj<^i$lTrE79z$MKI$W+;L^B9oGuBfaig;vy-EXS_L2@KjEz&zzZd3<8u zuxTReSqCp%JVkiIyh@@&VzaK0Wcm(Ui9Twf%Q={I+Ewqt#&oGq;qGoxyDqG@pL@nWr+R4ww7JkC^> z{A%o)@UW3WG&$s|+1fn1mD!G4_Sz=ny zJFV$;&~`p}Ah8f<%}vT5j)<4mF$D}cnU@GoZP`jBkD5EXQt(6|EQ)*0e3OTnL4cGs z4m|rF&|c)cRW3QaanhVnQaI9qBvmU)DeU1xn=)u;G2A*hoGPW0YwAl^7MGQa?uJZn zz*gy6oJ3LPol;M8DF08wK;9Hnn!+hgS0^%Y5iXFog!4_Q24s-sPyz@wHHa>9OvWlhm4uZ(bKu^9L>4mal9Zo~9Bf)b-|&*Is;lLLJL*yMTwS`X z3|XXV%tT--VEqu>@Tx!%*&ea$D$Zbw72&L@6=6n42h#9R0P>%7%7ntv+^rTN5_!4E z9+LiUSclW0=yZjxCQ$lL=$lmTHG(qWGWE$U0FRB|_GP^UoY*SjeCyqX?pp z#Z@?5gx^(Mv7}~s@rqLMz$iDIMS`2#nS>XBgN`;MoTqEy1A_qBuUC zrHIBvR>tD?vIR?Lku6vhmeL|fq=hG1S*>s?G+3d0+C(~QY-Mx}ih9$j4(y6H^sVVl z5$ndMW9-L7TC)(NiA7Q#lg`D;K(bz~Co^1=Y{B_w3b9uvONW<`u)$!mRVyoVwtF&* zOUM-sCDG*6h*TG$(|XFEu0zy}=sx2=or{l~@96>J&#dH+P8M{Vl zoF3st(5nvUuv2wVL>C!H;Il!iVV;m5w~{TbtihD}4(}g0Y1UyPhpaVa%b1up3Uw7L zDk|4h^mZsI*+?CvrMg<1H;e1Sp)4tejw^iSs$ztpL#@!7Sw0&HY(xMnk^T!d0uI^e zSih>ccDV)TA(cY%HrVYX)5bn7rCxI^WZ2K3MN8xm0Vrw_iLs4=5vR`8MqZZb&1*Hg zXmmNM7(z!qOn}FhYbkJkyb@_y4q1$MCnCe)Xn1Xfy>;4!XdU}1pBLd=mMUDYvXY#e z6%rnra|1aRjOt3*x*|0qX`!fRs^@Or+>m|Y#R5-MIiY+UNxli~6j*rV7@8v__6ygi zkc?=<)@0O>maKMfG6+23wrCS;mZX?vcrLJ&pop9j%q?FD;Qc~00GQt8-Tv`?7s zBmsqzX5mB;vO;WQu~k#*tHp0>w4zdALn&bnA5YUv!IWTU$GwDxb$oD(<26bn<+6fc zVVM=i*Y+pdmhor#bNqB$H*9yvk&Vn71kYZUk`vrSl`*Ge48mTV`8G5i7wWQ#PDN?4 zq$SbYi@GCyP=os_iy`q~zhr%;6eAtMhqKN(`vV1#$RqJZ5Kf$gZ|I1{fv6*62yT$z zpthJ;=a4Om1XWqV{%8~|s;}A87j?+lX~ov8tVgd+%=*KqbhFTSDcur1he6^6SF_ah zE-`~u6rNZ}TXFEGOk;6Vlk)t6%NF6)K{gVWq;$2u%b*=(EL-?`tm4tDC2A=e!z*s3 z@;i_#rtm)CTaQZ6k%d==nr?qY#lRxtm?tz{KJ1KgW4uHzv(XL_r4ijqqb>)f znZ$TEAn<0J)6{DsLix`$4pIy0xC$5ED7>gAv&K6Q&g5Ytn#o}%f0$0a=z5Oy!AX2p zD|PP(o|8|he{=ar>^+@T=&gvvhD$Q!XlR`+Wx7e6+{4lC8PUj@XCQA;Jh~hw7x!Sz z$gG@2|Isa!bxm~RtSPk#DJGo1YPW#AvCd>@=0cQsKUa}T&aTIo82AK%`jG4u-LF&E zv@AO6}!n9YG*Y&&wskbV&MmYAtU8A}(AVX2g zR@2c8owCWPt5zzrW0JkE``-W*;}t$OplAnrEyf)sgJloW}m#nMCFWmmQQNP8WZS?xx$2&E$(d zy#Bc%``vuDg30Z`UDHTfhm!75b%ifkT8sHzh66UbW2dg$g%6OU_&&KY(R-m1TVdxi zHm`;c`;5&qF-x~x0O(BnlzEBT4;8Sg%Op9S%Fz)`a&=`na@n|0&|IOoM>gV2@2>?UARHiR$TrIJlJ+3Ciuk|<}|jv@t*o0~eB zubd0I*&$+GG`KH(r`}^Gsu$`RRHQNSjIWZ$)*R6khzSZLTZlG*=rA9B+=$q+bebQ zjWABGCPkErE>0STdKdtSa6<;555|_1A?I8J*BNJ50g6PcJ`R=Yq>{yh}I<|%QxcG@gpB5!bhe=4$T7j__dX_xZ0^MLWDe>(yHaS30#e& zU%(UF%j(jlSQ&_6IfY8&TMuFmc> zXY&aou&-UP8f0I?_hyo9xYK}*s2x|<8am*-gEovK;%V45b@|OCA8@3{PU_jIu1+2a z*$Cwq;)JfAj(9_Z7NJW%Ds(ACxO)<2fq!`al;CX-^y=s%8y4IuR+yRd@LQtZbiqhIO zmDMY>MW@AVlyC+7Of`0Wi#hB&D+7u(KxBgh)k^4wI^EYW`K6^F}pRuRliU*y((`53^X{Ut^6xq$ol#RcEw1TL^&><+++#y zVW>W}!5|5N>^iP5^%O5+O=MK%L8ltN$*FHk80NTptZ2GW?T4?=1(Tsq`^m|({0-`M zzMOYxO~z$2y2O-%-%7Wu10~h;RklT6e~+xzWr&n1htP8ku&k7|)xJGN&FF|$S#B>f zk5M}jTn6dwu3yia`#PwN&a1vPq?QjJ50Q&XthT-Ae6QycEEMc)ICq12MXpyxi{uGK z+%0j9lwYdCAR3cinKAm?vOgZ zQ!yD*KYZ5CnICl-T+W|NqEjsabKPxYrZtz9o)06c^|!cgDV{s4g)G%&aplj`y;{By zO4~zZs5ov5A0`J$Lw!S%4`*q2QMZ$1H!qRYFf^lyAO6Z&BE=;f{bNeZU9et4TIJjE zJ`Q__ge>V!?u{7Qte{$S$B-g1?FRb|%G=0^)y%1o@`0&`4m@vWj<;s@c*1Zs9eRc} zvWzY}U~4a5QdM3T_5?Y&TT6FXphn9o>WWH^KfY+ztm$*7&n%kOp6%{PErc(N^Q0t- z4PD7~3pdT5H*MbBqG>Hf(<)~dO~WG`3zKLwt+^qyxg)u*tFr_C?6mHVjj-s`*b-$> z$wzb3D2;>V(AkA%Km-Y?prCJ^u7-I+MY1_mj!tlN^NqTS5lz6Fl=wNiLyK`B2MbC? z503EBTSsTKAIcTOIPiG(;|duydr71I@74GKj=ptXnyc`HFCV{mCAh}q!o}8=P9M*b-AWQPbHDR6ikYK zddjb%j0sMHBDZ36j}}r^>N+lEK~>&V`wo~LuKn?yw=ypVAIp$5^6dTfHMfPShSE7NLj z#wpi2$vagwbm8$Mda#QhTnHV@spo-v-guBaqHs-{Xmm_uolG)ExkiC12v3yK#{Dg5 zcaWvWxhuGU@-R8lT{p*d z=8>NnQ(4uMSJYX!6fuJ?*iTPdGuCysr)FeR>+xJ`>x{On-vZ@sn30^Oo~WVg6EnIq zT{Cdr*Vf&Xnt{E*pEq|J9@_5SG_9qhdqyKY9vencg|^nl87;|VPyAW4G_6Rho`^(v zhKd=OJUsh`w%*&~96Cy@0}timzbKI0VQk+~Aow&-5#RUPiyvqGVy@@1+X zk<~Q(*Fj)@H047W6lIGswd{xxnzG2;poxf5=9;MD;#xyvD;{0i zOm%WYNPecW_yO&~;|pQwQF&u#8pSB`lQXySo7EM+g%gdzPisj*r>v(*%38qsVi66C zI>7(2H%dX9(#$mF&1xh`t4!l`z2MSGhWy;ntP$C;3l!(+xHUtbN~)n96!}qT)akhw zG?VI+G9Dq-zi=X_e{Q56*jE+^85%?cD6tmcyQ4KdbLK1tkP;At|2#vov%S5O=N4fz zpbI!diU~i_x@pRk1o})pd?@d#r93*GB4Usm|W8koE z`Qt5)wbCj0(ZpTO*UyVpIp=*lW~XDjoQLe6+w?Mi3 z-;P}p548iKo%Ta^6!MV$To@AH1&$Ik=%w%Y42ow8sr;pshZfkopHi|gV=O#Q0UT=> zggIHWEA0dO8SYRIr<7@bcFmu3f7ko^|$69^Yn1b~b5S^VM?ALL*%7}xj>6sX$83}yv!Az7 zdY;}DxY~Kjc||R1eBa~&aFh3@rzpJXUDpqQ>-xRjPXXTU_YnX+_=qr2s~D)=<$Udm zSgaP>u_KPwDDQ~h7l*ps2QC!gG5ZfT0Dr*W4`x6Q!U_-~KOIYE`cl{i9^@+Yfiaw> z$AI!H4qobV8vc1PA0z>IG5?DK0KO==iTVKGCX5CE8VUpY=(I=IOJmil*J|{-BZkrr zH8PZWWYv0P0Px7FF|wy%6z}@FW)L;6IKNFW=(h=G5ug|IcNZ{dw_*~Yo4_4`{wH%# z_VCQtEB5LYd-a+EUcIol+pve4SDgFshk^mRPiX-_Z+egBG3e1e<`|$C z^DhU-z`DGErC3jJb(VRWy-63;!NB#kt zvjYYHEKnH#EO>BcYFXhiT7rix~~@?-}?Qa584D zh%51!z!QpIP*fA@X@Fzp;jgRbCGsFNyay&z^;2hP0Owb+$pf&48hy6JdNvE zuCrtB*LOMY6c}CXFnPk|U>!^x8-hnB4!5xGB^%%TYezo&>>=(+zbAAy!MBD2j?=ugzpLw6lF8ev&^weWh z4bhs2O?2XZvL*W!Eo`N~ptsx7HV0a@nik+pE3h^__!7R>K2Vjp?{ zd`PrbX*_7+@F=dIX# zRJzE$3GJNQ+^6X4Rrf!diuZzP%d2^X-Ui-?!dHp4p&q^WO&vKa_TexehhGGnx%YhR z0w1~bL&oThIa-V74D2)CcJ6iX^?>udEB%1l6obMXR8h?2Tk8*aC-I%ZN8dH;E(<<_^N?%!^p=x8f1>btDHymiCqa={jxT)=E3p4CfHf&F{K8+b5q)mKpDz8(%*Sx@Q_fw+OIzJemRdL?KzCEUuuRjZ)Ltv(4_ zEf2RcaMda(a;wqDD7G-JmwyoA(7;uzpvbL`4_dt+Ze`%ARZ!$sYlBvUj4nYM2CiBK zMQ*h@Xtg^$E(2Gsf+DxNA!wBjw=!_mDk$ibxv#%TE9_qTjYc8b z)9^7l(cutT9oW?lgn2V?#amERy+|wUwQrkVAick7xM~#?c|?O`C(c)#2gTf-ge-}7 zV4P9`#~O-#Z0NP*4qqF81@X$qXF0F*yQn{W_PSlpMg4aUW6;iF?+pjad&8d^p=zEQ z@##naJ{`Gb6a%!;ixQuKjcvxeF&NNyV?^ogvz(p7(9q|GROWUec220ak}JyJHA-PpaqGyKEh__}?>A1 z3xM!$!SzF^tmvkW((LfoaWs0y)J_#B+^DyoPzbv$D3*r9jf$obyrgkcn9dAwKD_T6 z`s}iwrCs^Q4V>|dWlQ#cZs5ET9}n$;C;xdWJwC`w?U0gg2QJL!Od_PKDvv0jD= zS4YFWGsY8!UBi(T3&w$QpD6e;0W#xWApEUy=*rWH-zV_(2?UF;1B0F{#MhIBB-U#q zTJo`(G@k2&aw~(T3 ziT}!mqxNF{Tlx69so)?5wg(IT)(>@m>-Pd;HRpu^`v#)4Z{Vu~Rm)cgeo=^xUAf9V zyXpxEb-vCicmV0lb?6)+cKli5fqSh%uNPAgeR035`(bH)uOE0g&AG5YUf{LLxuXB) z{UMmE2kaYwuYCia7yy(%4Y+C`P_7zy<3N<|9|$&21DiJwQhnS!=(~f^^t*$$lT5c4 z-c$&z9~8bsrI!ldq|zsa7>PC_-aSS{tX~UZ13npm3DF*&_m3#TQ9yXG058cg2!jvT zLS_nt@MQmQ4G0kCM-lEKZ}6qWU-JWuE29{DX`Ua<`$^z|d&d^(PKIEKU+3Y^u2(sG zyw^Q)wz$eW(V)QltZ`n69klUvy?X)UV1m5ICTk*xq4i-uh}%03oyAk?^*>Tq^+O=y z^m_~}@SJ)xO${%!o$&e5VPc_xvElSL8>yn<={jUP^Ut>uMUxUmMQjTUh=^g!J9d&5=}1U>^>w+Og5Ve7ga!Sp6^15U zN-^dJycQa&q8Pf4sGg&RXB5LgNSqpVn3{|UGNU+dh)jlt4~$NR1`kprz2ykSz_i#} zqP<6oNOE`NvZ(7EE1sXR`hSVf7-WPFgYF(SDS$-CpcB~sbA&4O31u?H@D>4atrav# zJ-uJCMf-aIS4o#Jga^So6|C_#n21kepHqPOIjwY2pa6jk#549w2oHHmsi%;MC?Lfv zm>@V*_@fOfj2rVhixgvW?sYS*d3<8t_e}-cx(40t;|9)pTdG6YpBngBbTxK9uK^70 zcLK*Y2)d!73`5sbVr(rZ#txmui80LHN->sL47Itlr|bTID40eS1-o6S;-F+xE>&HZ zqZ31*6GMhZbwZ;Kg~Z?|>=UXp3hZr$Y8Z~mb~)!}Fzp?etS5E)i!`0c04S6OM2>iX zc-TZWS#YoaW{e&1L-4k}TG4=?5Cuef?OTSYFkDho&=-wLdQeC2J7Ps2AOvt6N{X(F z5xy{~zZW#v@`a`!QX@~-obmOJtxmhlwkNQ@y=U zXlY<3G(3`Q1pIW7Dm=eErrR)_r4#|k#9b^c&BSRyL_lE45~mcq)Fo!(KvBaZXKk3E ztHrrIzQF#a!N&w>I3nS|86`pMk5@QWuV+5vJrgd|nN4t$nr@Ud;El1{DVKM9>_aH^){NCMzgBj=XyqEO(j2<5(G%4Bu z`*jVDxW0wF+4ggtC*9X^Y=s}Md+)#pbKdd3g)=LZznk|M{|Gvs7o~&KnbppH?zTL9 zeJk(#_##vpkormgdMl&NendIcAI089fOq}5@ciBbANcW}i?_X;?rih+fgP0hc`sA> zW$#^8{=&Nq?4aVZylZe+1;UAHAv_4i=UmgF*J}D(g!x;P#tgjZz6rD7-00nj4aZ=D zw}%WaZxxr4GrHG#o>GRK3ax<`dpEhJEOI4xX&-7kiL_->IeII$-ffhCzK!VO=wE1hZyHX12gN<}#|pm7*@lC~aQQvwR#<_c{_pNb z;c{qj>Zj)pRiqqi5SSSBa2!&7IR0Zgjrwu?VjA#4`*Rz>&+UCQ?q{7Z=jFV+-uW<1%c**Kk;jU~8ay z?=mx_Bf;q(;~yhd!wen6B1L1I|=^O%+KgB}MN)Mx0QmrymtHbC%x|3m5+syAg}eREI|F z4K393L00$J6Y*1pr$njb3NufNb$UHh#q_+b_h~6xR{Xuy8^RWaSA#3nDEtB3*WWJX8#Kah+*E zB0Q!9|CF>ti#JmQ>0A^07F1db@I!;E1UMELV}BSE0gjW|6ah|^;#LT7i)KW6_O|!e z;;V=F>Ra6Iz5l=^wU%wMSRF~fRqBTq*!{vrL&GCJmm=!@vY)1jQ+H?JGzfJL%s-L) ztyCd-Xc<~g+i3RhcxLW*lzPb$Vc%5;751QaBr)eGD3$l@Lv9x`A~~5 z8GXCnY`x_pv>ezK`2=TsTh4XfN?eClTMX7IQLK+>wqHzKKsj^u@!Fyo$m^Wp>`%O( zFskjH7sdEBExCIW2NUd@@i@0fF}_b;&drHmsap+CR@QyKF zG8pQ#a6X+DI>UhdX5KqEw-r2+YJiDa=YWli1?M`S*tfz-!H-|%y~jU-217?0Q3VH) z&OLU&9e163XF?7pU$(#SB7nQ|p3Msbgq}Agphn$aZ$n^D+J6t-sF@kX*luI658Ftd zo53zM7;tHw{Qn}+2KVZA`&o9lWFcaxAw05W`H!nvz8!brc)I^+e;>XaraNxaC5%W5 zi&|JPkToFuWAZD$<2@VrQ%WRgF=&*Q&QNMG^nRM(H{$o%RJzZ8z=rZYVBbK_)eX+~ z9D;t&c@;&~;YDUBtcTMBt=JK*X@u(iKK^>JM|uxN5l%u657A{moqGjyj~NtluqaQ?d z)EGq-iFKlSK!_}ls6@B|vl}il9XKwhiFk2`W{QrG$U`%5<-#$i8m8{hoXdA;*qysT zh)l$~g_ERA8SNaHPQxWkq=w@ zqE7?YeTD#N3EHm(EoYjRVYu$oAm*6#e7(4)LT9H^BG=g$`?7oqAJH{YWcM})lpDi&Ye$~e8eLYg`G^wcY z3V~J^*i{kkiK@33D~vvl#p1t;uapT$0) zN%#Pbf=LLqSOoDe;yNwrw@vT3m2=>Sdi1CL4Wlrr4tEmvv6zYV^GN6#P2nRMq{d4W@fAec&C9 zJs3EHx6^6u_V^BpR1pU6uzvwxLt)@w@9zeiPr2TpDCmv&o0J22GmfifdWJpcT}_rv z)=^;MzwxW}!38KC(-Ywxasu>Fyy~6^e~DihLfG6B;k7toM?+zEPlVsa{}V#^MHHb3 zOx_s#Asx>t{qbHk2o8BlP78$7c_ExIBN6q(D|$~4mzU_1v@<*zyI-Vuzx^R406w%Y zm&Y6~cfLob`rk`jN!QIoK}HX9MOYg}&yw5stRe^PU~)B@8~{wNMw5e86*50GT=9j1 zZ&0S=>b(C@)=vg_z+eof0S%Kj7j$ z<;n;5>fhHq7NC8>YVzLVaVrE@{_|?t1-wg416I!?&CN$|@gYr$Wj0Gx+DjVvVH|dF zL~~dzi!z}rYiZb)9{7(8)1yf&cgG%O@jM#)k|cPUyMvON+?)3ggUb9It$VdiuWk_R zxPxJ%=;OU;s+rm2bhCdOILkAIVZ&Z%Xi86xry-7|raz?#ob)g50LGjNjKeUw!!84l zc6gnEhdb2JphFGm(c$Y+0;a*muLy$}`y5k~BN}J$2qP;s3dQ?g)8H$xbYEEj zEnKh*IrF>DcXqkobpiXXdmTcyyUrKY=Mn$TwE8y3P~Wz1!ojI?lf9po^da>C)5kbs zP(qDaUgks9D}`$~etJ-?qg~Fcv6qn0F=b)RyT+iC=;oe^fBqEP28*f@{?BkgmqCWy zg_z6vy}iegRqO@zsH#B~GMCywd9e>PGlzrSqvwOd{NHI4==C>!bNZzm(j{&~@O;wT z{FC&$Iq;Dt#~yH*vR>Tgps5-SQI4Lgs^FLF3Y@Ji+$+MMxJSd`t^`lm$)NFA(Z6+1 zoUC~P6LZOV&I{h3=;r#L@XQO9HFgvo*%m^-UeH$w`t|39=e5GnA4@|V`)|aG*TMyi zKaCh1KX$pdf(Cxv>fPt@+)7Xm@dRy^Ss4o>4FVAU?eSab?1$Q@9bBV6=z0IW3;Y_} ze5L81R}8W&r#pX+z2VAALoe4EjG>sdp|_D~{$uPFWUYAE-UFtdDJ(?lAP@+lc>ALm zbbxbz>_OVIe;WTI-3hzL`4MFTE_Uz3feKSatLIEB&hE6q)_x~;yRx;3L%NdnGX{xz zL;s^%Iu;&ZyyPLR?q^UEv2dR*9zx1ARMwpxYZ}uaQfK3zk78Gn_OnvGth=)Y;-=of zF=mY3WgqKar=ZQ0<8jvm5$@FjosE+n%}E3<=eQWAMs=)wJmPX5w0t&X0DXN*XiP*A zYO0I5;rZu+hSQuWrYkfza5-2H0E&FkCyH?)uZtib#N;9!%iAuV5v-b-hF=iyF2 zrmYVD+(1Wu5w(8UG#F26J^mfa0De1uAwAM?p>vf(z^j~hP&8R4>dXt;DU}`%m8Qmc zgn%0R+!!!!OS^7Dw>ac@|NYkafo6l)kpHRy$nJ3wt&GQGd&oNNv#%zHQfWm9@ggWo zy-^lI4wtD_sLa&8k*1gN(12&-?~>MF0?rmV4hL!eOfhU`fVM`^Fn@3Bj;XnU>-jSP z(8IW2mv;1+7|>&%s1QrXTW1WMfyzaueDE1~q zX3AFFNemXp-@^41V`#&0#YzYftaz4bHyFi4Q0ygNuZD^lo+({nABQ3i9s|=f<}my^ z>~Iw~9DW2KM@&+MNq7`VT6zaeL*9fRCbRc&>@wvj_e5F%m0R#AS-wXVQsCSMl*S?& z9E)TOv`ZmH&cH%lmf-ZOgrA-KN&MFoS>l}Q*KwRxpW$3;GY_H5*WRGd6+fiK)sBNL z`3&dk_%rnN3~se@bIoypyAf<`+(xy?3S6!53_l^7=U`0dFdiIu!3zc#&^sFfI-Btj zjtO2UVDLs7F4=!qifrBFY~W&ql4(EvG4 zr%SqMw@BIz(d`U?eOO|~(;!N$o^ucf3vh^`ghRNXP0Lm@OtyJWBj#mSjPA-34VZsZ zPmblRQr>YA_X$+rL;Qk~EnIA$uX75tolFq;gz##GF?dUwABmmL;KK%KIL^&`JE!)} z6ne6p$W_A%stZ;Sye-8E4otpOzZ`1_Foq0OYiuYEw|m2&J8Qszjsb&m3iR=|h?FFw zq@ICrMolm@fP?#ij4U{OqvKNh8VPByvHuy^aSO2)S`2n{i!r1WWA>2}z8QapJdJ1U zU)lCK=kIcUW#3LN$L-D!XZNXg7Xw9+G}*BeYM7b zE6hI~i-RXR*S$V|30Ad6csPns#>WHSjNgfan%(DWq@Nq4ap-5<0t5o*I$y*d0McCw z$@|El3;@at^rW8zVt+I>c`!zKc)XqoCp26iz10f&7 z@h%}k(m>R zPe2U!6zb(zOx>|`N_bKUew7eDc1+-}(kxkCdVn51=aeUd@Z=v#M)`-apV9#dot1ic z{z9aryw|g}m4De(u<^j4gt+%cv}P_CnLD2cmH0xcaEaM^8GndK|1~1_J0@FpQ{1^D z@6v?jer`ZNjXBSG_vcyeB9qHWJC}Ozd6v81K;lk%OWfJ&Ug}!z$0n{n+?n!r+;Vk5 z>>!Em%*`nuol`!{avM!>^l}W>g04hQLA*4`89BysgCGYaXIt(ECTenF7p%OeC0sZV za}OAI`cTaIIQAPb^nwW{20NR78H)n$j`f7#ZkD^!(BUrJ|KybC8-EtJX|~7SMU&qf z&=lwR;~{V3Bo1%}Ps%Beu-v$8vyOF5+_^LU99RuN1DpW{8gc@h{4<<8W6zrLwd zXUKA}0H4~u%j~L0I>$`2+%?9aV_yG-3tX0azX3HMD7qMsXAR^eT+9C_Nz6dCgp4Z0cV?KIL-P(XrZ{$8e#}a!)f5DAY)23}#2) zfP}xqLW-0jq^rzLpMlP>St2%u-sP;*M#$&(sHL| zU)*^v{tJxmxguTRIsMRZ`b1qG<=lw#oG9d1IgtL2f>g?#e{#fSW)2!cQ=BOfL-2qN zIK)!c*Zp|}qn*Q#fksc#eXBvOG3B_E*WVdD&N+-$=oto#&W1Z9@8|_K(K+cPXK@X* z&melSU6Z&g0HsvD0)OtLr8><=+6q0U+TF9O`ru z?2thkpxZESRenx$KVga z+?R(Z9Ipgu+zgF1+!=dpP8n0O#nkWfoJVnm-g0*u(Dj~ki}xRFbMF}t&X=EeZv<%M zOig&bbBFscjC!7dl;dyU+ycl}1Nk6^OXb%9bhiOL6LbFL`~#}oJxfzM7dyt2SPMTe z5YH*VGCXXy#&Dg9wU&G299{133>fLmTHF&f50-VV#v1MHjy(&JuQHIq&NzrPQig8m zzs5(p&<`8_sN*z+JZB7)^Hx(XaQYQmZt!;rEobN@as2(j=WHuapYXnMO)O9UEye3V zvd<57;#mKZ9Wg-5$IlpQE?2kHtRkrzitpa=#{eF;3N6jRGR`Gf)&ha+L(?mTnRv!GHxvQ=w;?Gii&JgCo=_@aLG5kjNTc}UcJA^8^KNLYY2|0za@&!B;4-^>x5$z7ENJjS~1Jf?q@vjnC(vs<=tR zOBMV~^<~{7@GVOfK#LFlD$9S7$iGmLv0f4QOo0y)_@9N&!R3n14FdmE(=Su-8%5vp zAU~3GRZ_v1s4weCf$wcmfG-7pl7^q90Otw)(*f^o9^3kWclQB@tIXrA%F**H7(T{I z)3|nTQG6C+{Pekp=?t-Ue=Y-(ulodl?^Xq%d7{sL!7ut$!DX7Qp9y}| zg$jOxLbrY+@a+O8yGEb)gwF0S6n?P+Tc0v~q;=*A(%~Xi(bu{zfZ>W+!>r{~1YhXT zS8wtk#fA=6S5KheAH#G;S!aGdN@p&^M_XIYjlxd`d`PG-{WIAIJj-y%{|q(Wc4@E# z3fvo=3k3h*MG9XMiq_Qv*H2iaRkihyz|UNx0HcNe0l){tUKQr($)7cTv%()M_=g0( zf1`r`P~d~GK88Sl(zhu1Ng|FZ3>T!(*W5nf%Y@Fs(-och(k9sl{x<~wz!eIAt>DA| zV15dH1=op^y9BPEAQ*}=efA4{H*F~RX#IRi;9GL!a8TfTPf_^g+{&{4EpVN6o+|JJ z>{)N~IG*8!*4`#XN6**M0@s%U%7o7G8ec+9ZBLc~UI@FY=TXqD3c=s9UeTAkcGl?v z-@aMF@013Ag#*wVpXUg^{u{@)3jQSmKX|jEbGg889c)=e;K$MiK;YK^e=zm1SK&jQ z_;Z`k*(>@yQs55?e0#0JA1LtW1YRWec9OuWfzTWOZwUUPc17nX!GBlahi*{ta|HgS z#y?xZ-xT{zG3ivgb~zr$ar3H}!0rxSLKKARY>euw}4rpA|b zq4oK8f#>dDdj)QtsrdYg5c_E#^xx{z4f_q)>X zgg*4@{eHdA*Ni^!ON9PGS*K{upEUwMutW8GtMJ*{2c2^SKfO%hlb=l=#8J4fg?%$e zZ*S^@&V54X%<~kTIf{(+lEAlItKes3wXG=;DCmk$Mg=wbzb zM)WG)$2uC$@Ip&puYXHAm@4qSyA+*gg-*?|-sQ7c@Xr+gMDNR|YdRF*;3JtitDE7{ zS?KE_*8dPdeqJne4y{sjUKIFEebBjA_Y3ciK9ZBNe%=TEANqj5D|F60N6~pu`W@I` z>6Jd8nlA7p?+a20eT@?QMLB-Lkpe%|py=NxZBEqidRQ&zaJs+-F?t`K=60hDLRh{{;30cpZ6F0p!1hL;2-w^&tv*nr=IFp+uJF9^!pw7 z545fi{zEZ%r0}`85BxfzUv#dbukFvqKJYISeEs)4o>0xK8w9Q&vw1-JeOS}a(f{8H ze0z@lc|+j(Ce39+|09hr`?A)DfW*#fujQt(%W&vJnu+N9uD3%tD# z`d5&@8pos^6h!&DMChbtJ!*gWW`Xa|@qfMxIPIIc{^tXlj_hkc75cvr_@W#;`G&v` z3jEK4|B1l2$a&dNUag+B@YLD`SAetseF16QhfkBL1W%<&`qF^L!8Ht^>tf$#Md zzUJpdjW7O;mctnW$Dau2_LmEtuL)e=SI~aN)dEjTe5C!)+Xa3=d2kWN_ z{HFpxQ~ZH#0)I{5i*oGhN1D!B#i#Dq6MIr9{&Ty~8O?Ahguady{M|YB{CEu?tmv1* zFQHGVzz=*=!9P=9R<*#l3qRVQSugN|vVNZz{0lVwoOQ7aaEkA8 zt$K;;6_=LvW5GAiy-B}+6!@94zqq159|?Ss*ek6k1BNL3JX7@Tdg)*S!*y@L_w+vC z#eKkQh5iAF2jLd-r&Zwkd9b9wFA(^_?P@^U&$&h5`oXOR!QUrvE5~mCOyK*)V9N=u zwG$f_s(O5WukmFcpDq}0Y5I34ejXAzJ4^@h{vZYTtH6)ygZ@&%x5RE}eXbX{{=*S^ zU9<`O&~=LNzhxfJ>x2F+eZcP%Iz1MF0xz1Q;QtW(6%5x@gKxhNcv|SBh0kN8$u@!SmihgUz;6}!0onIo68JuW zAC!sJ`tUr%13vVxziK*D6ywXqety~qzB@w6CpWJ?RN(t%-j9$D<_i3f#G%@5EEf1d z(Vrs0U&CU~W*LjJf1in9Kea#d2_KgaEg0Qec;QFtH zTm4nV8JfQ2wY2=(059svzV-D!;NKEDdnI1JMcO_h@R<_tX!&nqzq)4!zY%bDYtA$UlaIDvC#D%7(B?=oAXPC?^kW)g-&Jv!-|A{hD|aBE5tcFLma3X3G0< zGu@4uWLIlCOD`2xZ?m1AZs^KRpDFKfZEwipEx34vcWWEoV5;lry|Iy|^4e@&-{Lnl zT0p_u0`c0@uI`QwdXaonsx6h3HxFn0#?Abe=~N~ot){nTx*E`N546^%9E_aK^^5Eq zyE+@1k`0-xFK^<-E9^t#)BWJptnHl}Qjt2pxvR4sFV^m8XbDECUS!BG5%u*894+&* zMvLAu+}V-EdmJrDIg{;fZpO<oX7HL1xhPKuQbjic!E;UYfx{crd zi`UL3!>Ecx31$PY9}QP@rP6JXiQ)<`zf}U!BZ$1`GO1sLi68v_OT33OJ^Q$M>t{hH zTKr^o6J9CLGu@qSZOZ_Nmz|>C#|v3IGI(=pyS0Kq$IY4@2BBzWpnDCND9lLXoY__? z*|g4IhZm3g&D|YIUbxB5^k#pPMeod=H`h<%Evgx7aaq-z<9)nMcnQCS-uIVQ7q2Yk zH%R+X9lSK%FI_G`enIq-wH3uH%StSNS$XB+;&QxadMUlhx0c>*Of7iAnn8X2qGjb} zi%b03)8|Z|tKYurH{!+VP(rMQlWQs~{1Uu=G@Gh!*r>TmbtF5R@G|CgspNXU0l4e% z58mo4GHz(ZZ(g=~wo=)Kzs*J8Sx%J^eVrF3Z$*b*FMguh*x% z4P2_zjq975XZ!2g88B$YCOH}wRZfb&TYCC0IA`7;B>hrQ1f^0HL6m|ieW!Z71q+}YU{ z5Tnr>YV^AFh;{2_O!MYSz`QH=^}vJ!Wxu4L){a(rBi~e#Sca5oUu|WE zupqiRlI`h8Pqf1erLv4r2`@^;0BcmB7;Sj#ucDUT9HFLKLhOnX>!65Q77(nM)t+jH zed@hoDQQa;UJ#BwE(5Xhy5}V)+o#_IUGMt;D!ZBxIf^LU2Zwd5FNKpOZRY>2x7 z_yZ0qTjf1wA`g-MAHV>P6kPTV>{(v z|4wHW7HI2uTEmY8b$K@G6;rpM)C=YX`x_`$GtL9S5O@`haDY)qINj=>Svk9s;>WRz zDf6R4krm1EYAwHT-zz7lUWW!_1VuW@ngOkazPE^8GfTTcAZU$I7YyHojp!U>K42yE zNH$V`;2hqJJrW~MD`U6ICGlFQMUS9HtV%!*Ja9JMrU4hTA(p+b)ECAxcw#jU1>AHs zZt#QO=?FNTEIIvvd%(01Uo9G$hV^2Ik!h2jns+O)AE5$Zc6?C<(@KitgzaY6#ytUU z09s3TF)RY&qKt;etrlcFssVK$6Bt1IOZ-0k%1T-TY*kxsfM=cT4c@?SK0?r{yIVYQ zt`!;<{d9Z@ty2dvo4})nPFkMSuy_%O62Uo9sBF76fvW|JFqqD6CD6f*1K_aQMnodh z#wxi1*^&PPLuOt@scAKGTtvuqZrH6m5+=x?!c6TDLQJ=^a_GkI763u=>t!>zGHHwh z!YZKLymVfnsrv3Tr)X6|24z-!q}h|elvVJE4L#{rQhr!~8krS!JdRVEsjaQytR93# z<4NSrV;u+_4~HI#sDgG>=q84DifSA7f<&;O8Y~+xPpA4qeZiubxe1|=O&kqkYhW0w zAmEcR45I((jvBwLhSlQmQ{{^eS$M9)c#!Rk%Ls)bv5m6&9~)W+%E^%3Q^ZA)zngpW zfS$kf`@c9GXR7Lc@#WdjP_pnT;0JObjb9-3Zp|b$f^=J}Dh3v#vJ)6K(Kx9Uc!U0+ z9OiBS^Ue@@PqT|8po*3i4y+PTl1iBUkN^U3=QK|m6L3I*?huoub!ZL({VkzSKMCGbudc(3RI66}yo zEr!`XEZe-vFqmQSp^6N=@zh;y0l!Y4bK>FT0zGj!3#rl0oGxvGi|@RNAJ8sm!a$V0424Bn1Y!s|>C)$ocdGrML80P@BGm39oKMZ{HTAX}>8=4bq zZyo1w=(6;SA0%)6$K$_)$3(v-)sll>seCk*Gj*S=PPG(KPkPI+w|ZYl>7bL z_kp+cL+6RoE4f>L*3NSv_UYZZKP5a$54~&2yQkY1@toQ+{_R}u(VNoodQ{)|w&Ity z|79!C)aXw{<;ISsuPS|1EqPP>UyU9ZofXsP%5fPz`#|YGx^Fcljq9!*LjS}YB9V_H z{g3H44xzujD)dKI9^F43lchFe`F*x8^lz^&rZ+z5SmGl32ls^jTS;6aMrSD<*Rgw7 z2{)gACxo{n1&Hf@cnJNmBVs9jCFSz2n4a>Hic9Th)zZ8y+2cr7@z0tw|4rwHq9LLL c*GZv2ZWX0;Zmi@k7ttTr1G{%3hNEoqFZ*9D)Bpeg diff --git a/otp b/otp deleted file mode 160000 index 3d99009..0000000 --- a/otp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 3d990091eb7d9e80cb23b55e38a7bf7d58d80eee diff --git a/relay.log b/relay.log index 013b08b..7f8e33b 100644 --- a/relay.log +++ b/relay.log @@ -1,131 +1,12 @@ === C Nostr Relay Server === [SUCCESS] Database connection established +[SUCCESS] Relay information initialized with default values [INFO] Starting relay server... [INFO] Starting libwebsockets-based Nostr relay server... [SUCCESS] WebSocket relay started on ws://127.0.0.1:8888 -[INFO] WebSocket connection established -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[INFO] WebSocket connection closed -[INFO] WebSocket connection established -[INFO] Received WebSocket message -[INFO] Handling EVENT message with full NIP-01 validation -[SUCCESS] Event stored in database -[SUCCESS] Event validated and stored successfully -[INFO] WebSocket connection closed -[INFO] WebSocket connection established -[INFO] Received WebSocket message -[INFO] Handling EVENT message with full NIP-01 validation -[SUCCESS] Event stored in database -[SUCCESS] Event validated and stored successfully -[INFO] WebSocket connection closed -[INFO] WebSocket connection established -[INFO] Received WebSocket message -[INFO] Handling EVENT message with full NIP-01 validation -[SUCCESS] Event stored in database -[SUCCESS] Event validated and stored successfully -[INFO] WebSocket connection closed -[INFO] WebSocket connection established -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[WARNING] Subscription 'exists_1757082297' not found for removal -[INFO] Closed subscription: exists_1757082297 -[INFO] WebSocket connection closed -[INFO] WebSocket connection established -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[WARNING] Subscription 'exists_1757082298' not found for removal -[INFO] Closed subscription: exists_1757082298 -[INFO] WebSocket connection closed -[INFO] WebSocket connection established -[INFO] Received WebSocket message -[INFO] Handling EVENT message with full NIP-01 validation -[INFO] Event not found for deletion: [INFO] ... -[INFO] Event not found for deletion: [INFO] ... -[SUCCESS] Event stored in database -[INFO] Deletion request processed: 0 events deleted -[INFO] WebSocket connection closed -[INFO] WebSocket connection established -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[WARNING] Subscription 'exists_1757082301' not found for removal -[INFO] Closed subscription: exists_1757082301 -[INFO] WebSocket connection closed -[INFO] WebSocket connection established -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[WARNING] Subscription 'exists_1757082301' not found for removal -[INFO] Closed subscription: exists_1757082301 -[INFO] WebSocket connection closed -[INFO] WebSocket connection established -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[WARNING] Subscription 'exists_1757082301' not found for removal -[INFO] Closed subscription: exists_1757082301 -[INFO] WebSocket connection closed -[INFO] WebSocket connection established -[INFO] Received WebSocket message -[INFO] Handling EVENT message with full NIP-01 validation -[SUCCESS] Event stored in database -[INFO] Deletion request processed: 0 events deleted -[INFO] WebSocket connection closed -[INFO] WebSocket connection established -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[INFO] Received WebSocket message -[WARNING] Subscription 'exists_1757082305' not found for removal -[INFO] Closed subscription: exists_1757082305 -[INFO] WebSocket connection closed -[INFO] WebSocket connection established -[INFO] Received WebSocket message -[INFO] Handling EVENT message with full NIP-01 validation -[INFO] Event not found for deletion: ✗ Cou... -[SUCCESS] Event stored in database -[INFO] Deletion request processed: 0 events deleted -[INFO] WebSocket connection closed -[INFO] WebSocket connection established -[INFO] Received WebSocket message -[INFO] Handling REQ message for persistent subscription -[INFO] Added subscription 'exists_1757082309' (total: 1) -[INFO] Executing SQL: SELECT id, pubkey, created_at, kind, content, sig, tags FROM events WHERE 1=1 ORDER BY created_at DESC LIMIT 500 -[INFO] Query returned 25 rows -[INFO] Total events sent: 25 -[INFO] Received WebSocket message -[INFO] Removed subscription 'exists_1757082309' (total: 0) -[INFO] Closed subscription: exists_1757082309 -[INFO] WebSocket connection closed -[WARNING] Subscription 'z[ìÞ.Y' not found for removal -[INFO] WebSocket connection established -[INFO] Received WebSocket message -[INFO] Handling EVENT message with full NIP-01 validation -[INFO] WebSocket connection closed -[INFO] WebSocket connection established -[INFO] Received WebSocket message -[INFO] Handling REQ message for persistent subscription -[INFO] Added subscription 'kind5_1757082309' (total: 1) -[INFO] Executing SQL: SELECT id, pubkey, created_at, kind, content, sig, tags FROM events WHERE 1=1 AND kind IN (5) ORDER BY created_at DESC LIMIT 500 -[INFO] Query returned 3 rows -[INFO] Total events sent: 3 -[INFO] Received WebSocket message -[INFO] Removed subscription 'kind5_1757082309' (total: 0) -[INFO] Closed subscription: kind5_1757082309 -[INFO] WebSocket connection closed -[WARNING] Subscription 'ùfìÞ.Y' not found for removal +[INFO] HTTP request received +[INFO] Handling NIP-11 relay information request +[SUCCESS] NIP-11 relay information served successfully +[INFO] HTTP request received +[INFO] Handling NIP-11 relay information request +[WARNING] HTTP request without proper Accept header for NIP-11 diff --git a/relay.pid b/relay.pid index 36c0aa0..2236e83 100644 --- a/relay.pid +++ b/relay.pid @@ -1 +1 @@ -682319 +714947 diff --git a/src/main.c b/src/main.c index 01af6de..e4922a3 100644 --- a/src/main.c +++ b/src/main.c @@ -28,6 +28,13 @@ #define SUBSCRIPTION_ID_MAX_LENGTH 64 #define CLIENT_IP_MAX_LENGTH 64 +// NIP-11 relay information configuration +#define RELAY_NAME_MAX_LENGTH 128 +#define RELAY_DESCRIPTION_MAX_LENGTH 1024 +#define RELAY_URL_MAX_LENGTH 256 +#define RELAY_CONTACT_MAX_LENGTH 128 +#define RELAY_PUBKEY_MAX_LENGTH 65 // 64 hex chars + null terminator + // Color constants for logging #define RED "\033[31m" #define GREEN "\033[32m" @@ -41,6 +48,32 @@ static sqlite3* g_db = NULL; static int g_server_running = 1; static struct lws_context *ws_context = NULL; +// NIP-11 relay information structure +struct relay_info { + char name[RELAY_NAME_MAX_LENGTH]; + char description[RELAY_DESCRIPTION_MAX_LENGTH]; + char banner[RELAY_URL_MAX_LENGTH]; + char icon[RELAY_URL_MAX_LENGTH]; + char pubkey[RELAY_PUBKEY_MAX_LENGTH]; + char contact[RELAY_CONTACT_MAX_LENGTH]; + char software[RELAY_URL_MAX_LENGTH]; + char version[64]; + char privacy_policy[RELAY_URL_MAX_LENGTH]; + char terms_of_service[RELAY_URL_MAX_LENGTH]; + cJSON* supported_nips; // Array of supported NIP numbers + cJSON* limitation; // Server limitations object + cJSON* retention; // Event retention policies array + cJSON* relay_countries; // Array of country codes + cJSON* language_tags; // Array of language tags + cJSON* tags; // Array of content tags + char posting_policy[RELAY_URL_MAX_LENGTH]; + cJSON* fees; // Payment fee structure + char payments_url[RELAY_URL_MAX_LENGTH]; +}; + +// Global relay information instance +static struct relay_info g_relay_info = {0}; + ///////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////// @@ -151,6 +184,12 @@ int mark_event_as_deleted(const char* event_id, const char* deletion_event_id, c // Forward declaration for database functions int store_event(cJSON* event); +// Forward declarations for NIP-11 relay information handling +void init_relay_info(); +void cleanup_relay_info(); +cJSON* generate_relay_info_json(); +int handle_nip11_http_request(struct lws* wsi, const char* accept_header); + ///////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////// @@ -922,8 +961,11 @@ int handle_deletion_request(cJSON* event, char* error_message, size_t error_size } const char* requester_pubkey = cJSON_GetStringValue(pubkey_obj); + // Extract deletion event ID and reason (for potential logging) const char* deletion_event_id = cJSON_GetStringValue(event_id_obj); const char* reason = content_obj ? cJSON_GetStringValue(content_obj) : ""; + (void)deletion_event_id; // Mark as intentionally unused for now + (void)reason; // Mark as intentionally unused for now long deletion_timestamp = (long)cJSON_GetNumberValue(created_at_obj); if (!cJSON_IsArray(tags_obj)) { @@ -1011,7 +1053,7 @@ int handle_deletion_request(cJSON* event, char* error_message, size_t error_size snprintf(debug_msg, sizeof(debug_msg), "Deletion request processed: %d events deleted", deleted_count); log_info(debug_msg); - snprintf(error_message, error_size, ""); // Success + error_message[0] = '\0'; // Success - empty error message return 0; } @@ -1176,6 +1218,352 @@ int mark_event_as_deleted(const char* event_id, const char* deletion_event_id, c return 0; } +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// +// NIP-11 RELAY INFORMATION DOCUMENT +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// + +// Initialize relay information with default values +void init_relay_info() { + // Set default relay information + strncpy(g_relay_info.name, "C Nostr Relay", sizeof(g_relay_info.name) - 1); + strncpy(g_relay_info.description, "A high-performance Nostr relay implemented in C with SQLite storage", sizeof(g_relay_info.description) - 1); + strncpy(g_relay_info.software, "https://github.com/teknari/c-relay", sizeof(g_relay_info.software) - 1); + strncpy(g_relay_info.version, "0.1.0", sizeof(g_relay_info.version) - 1); + + // Initialize supported NIPs array + g_relay_info.supported_nips = cJSON_CreateArray(); + if (g_relay_info.supported_nips) { + cJSON_AddItemToArray(g_relay_info.supported_nips, cJSON_CreateNumber(1)); // NIP-01: Basic protocol + cJSON_AddItemToArray(g_relay_info.supported_nips, cJSON_CreateNumber(9)); // NIP-09: Event deletion + cJSON_AddItemToArray(g_relay_info.supported_nips, cJSON_CreateNumber(11)); // NIP-11: Relay information + cJSON_AddItemToArray(g_relay_info.supported_nips, cJSON_CreateNumber(15)); // NIP-15: EOSE + cJSON_AddItemToArray(g_relay_info.supported_nips, cJSON_CreateNumber(20)); // NIP-20: Command results + } + + // Initialize server limitations + g_relay_info.limitation = cJSON_CreateObject(); + if (g_relay_info.limitation) { + cJSON_AddNumberToObject(g_relay_info.limitation, "max_message_length", 16384); + cJSON_AddNumberToObject(g_relay_info.limitation, "max_subscriptions", MAX_SUBSCRIPTIONS_PER_CLIENT); + cJSON_AddNumberToObject(g_relay_info.limitation, "max_limit", 5000); + cJSON_AddNumberToObject(g_relay_info.limitation, "max_subid_length", SUBSCRIPTION_ID_MAX_LENGTH); + cJSON_AddNumberToObject(g_relay_info.limitation, "max_event_tags", 100); + cJSON_AddNumberToObject(g_relay_info.limitation, "max_content_length", 8196); + cJSON_AddNumberToObject(g_relay_info.limitation, "min_pow_difficulty", 0); + cJSON_AddBoolToObject(g_relay_info.limitation, "auth_required", cJSON_False); + cJSON_AddBoolToObject(g_relay_info.limitation, "payment_required", cJSON_False); + cJSON_AddBoolToObject(g_relay_info.limitation, "restricted_writes", cJSON_False); + cJSON_AddNumberToObject(g_relay_info.limitation, "created_at_lower_limit", 0); + cJSON_AddNumberToObject(g_relay_info.limitation, "created_at_upper_limit", 2147483647); + cJSON_AddNumberToObject(g_relay_info.limitation, "default_limit", 500); + } + + // Initialize empty retention policies (can be configured later) + g_relay_info.retention = cJSON_CreateArray(); + + // Initialize language tags - set to global for now + g_relay_info.language_tags = cJSON_CreateArray(); + if (g_relay_info.language_tags) { + cJSON_AddItemToArray(g_relay_info.language_tags, cJSON_CreateString("*")); + } + + // Initialize relay countries - set to global for now + g_relay_info.relay_countries = cJSON_CreateArray(); + if (g_relay_info.relay_countries) { + cJSON_AddItemToArray(g_relay_info.relay_countries, cJSON_CreateString("*")); + } + + // Initialize content tags as empty array + g_relay_info.tags = cJSON_CreateArray(); + + // Initialize fees as empty object (no payment required by default) + g_relay_info.fees = cJSON_CreateObject(); + + log_success("Relay information initialized with default values"); +} + +// Clean up relay information JSON objects +void cleanup_relay_info() { + if (g_relay_info.supported_nips) { + cJSON_Delete(g_relay_info.supported_nips); + g_relay_info.supported_nips = NULL; + } + if (g_relay_info.limitation) { + cJSON_Delete(g_relay_info.limitation); + g_relay_info.limitation = NULL; + } + if (g_relay_info.retention) { + cJSON_Delete(g_relay_info.retention); + g_relay_info.retention = NULL; + } + if (g_relay_info.language_tags) { + cJSON_Delete(g_relay_info.language_tags); + g_relay_info.language_tags = NULL; + } + if (g_relay_info.relay_countries) { + cJSON_Delete(g_relay_info.relay_countries); + g_relay_info.relay_countries = NULL; + } + if (g_relay_info.tags) { + cJSON_Delete(g_relay_info.tags); + g_relay_info.tags = NULL; + } + if (g_relay_info.fees) { + cJSON_Delete(g_relay_info.fees); + g_relay_info.fees = NULL; + } +} + +// Generate NIP-11 compliant JSON document +cJSON* generate_relay_info_json() { + cJSON* info = cJSON_CreateObject(); + if (!info) { + log_error("Failed to create relay info JSON object"); + return NULL; + } + + // Add basic relay information + if (strlen(g_relay_info.name) > 0) { + cJSON_AddStringToObject(info, "name", g_relay_info.name); + } + if (strlen(g_relay_info.description) > 0) { + cJSON_AddStringToObject(info, "description", g_relay_info.description); + } + if (strlen(g_relay_info.banner) > 0) { + cJSON_AddStringToObject(info, "banner", g_relay_info.banner); + } + if (strlen(g_relay_info.icon) > 0) { + cJSON_AddStringToObject(info, "icon", g_relay_info.icon); + } + if (strlen(g_relay_info.pubkey) > 0) { + cJSON_AddStringToObject(info, "pubkey", g_relay_info.pubkey); + } + if (strlen(g_relay_info.contact) > 0) { + cJSON_AddStringToObject(info, "contact", g_relay_info.contact); + } + + // Add supported NIPs + if (g_relay_info.supported_nips) { + cJSON_AddItemToObject(info, "supported_nips", cJSON_Duplicate(g_relay_info.supported_nips, 1)); + } + + // Add software information + if (strlen(g_relay_info.software) > 0) { + cJSON_AddStringToObject(info, "software", g_relay_info.software); + } + if (strlen(g_relay_info.version) > 0) { + cJSON_AddStringToObject(info, "version", g_relay_info.version); + } + + // Add policies + if (strlen(g_relay_info.privacy_policy) > 0) { + cJSON_AddStringToObject(info, "privacy_policy", g_relay_info.privacy_policy); + } + if (strlen(g_relay_info.terms_of_service) > 0) { + cJSON_AddStringToObject(info, "terms_of_service", g_relay_info.terms_of_service); + } + if (strlen(g_relay_info.posting_policy) > 0) { + cJSON_AddStringToObject(info, "posting_policy", g_relay_info.posting_policy); + } + + // Add server limitations + if (g_relay_info.limitation) { + cJSON_AddItemToObject(info, "limitation", cJSON_Duplicate(g_relay_info.limitation, 1)); + } + + // Add retention policies if configured + if (g_relay_info.retention && cJSON_GetArraySize(g_relay_info.retention) > 0) { + cJSON_AddItemToObject(info, "retention", cJSON_Duplicate(g_relay_info.retention, 1)); + } + + // Add geographical and language information + if (g_relay_info.relay_countries) { + cJSON_AddItemToObject(info, "relay_countries", cJSON_Duplicate(g_relay_info.relay_countries, 1)); + } + if (g_relay_info.language_tags) { + cJSON_AddItemToObject(info, "language_tags", cJSON_Duplicate(g_relay_info.language_tags, 1)); + } + if (g_relay_info.tags && cJSON_GetArraySize(g_relay_info.tags) > 0) { + cJSON_AddItemToObject(info, "tags", cJSON_Duplicate(g_relay_info.tags, 1)); + } + + // Add payment information if configured + if (strlen(g_relay_info.payments_url) > 0) { + cJSON_AddStringToObject(info, "payments_url", g_relay_info.payments_url); + } + if (g_relay_info.fees && cJSON_GetObjectItem(g_relay_info.fees, "admission")) { + cJSON_AddItemToObject(info, "fees", cJSON_Duplicate(g_relay_info.fees, 1)); + } + + return info; +} + +// Handle NIP-11 HTTP request +int handle_nip11_http_request(struct lws* wsi, const char* accept_header) { + log_info("Handling NIP-11 relay information request"); + + // Check if client accepts application/nostr+json + int accepts_nostr_json = 0; + if (accept_header) { + if (strstr(accept_header, "application/nostr+json") != NULL) { + accepts_nostr_json = 1; + } + } + + if (!accepts_nostr_json) { + log_warning("HTTP request without proper Accept header for NIP-11"); + // Return 406 Not Acceptable + unsigned char buf[LWS_PRE + 256]; + unsigned char *p = &buf[LWS_PRE]; + unsigned char *start = p; + unsigned char *end = &buf[sizeof(buf) - 1]; + + if (lws_add_http_header_status(wsi, HTTP_STATUS_NOT_ACCEPTABLE, &p, end)) { + return -1; + } + if (lws_add_http_header_by_token(wsi, WSI_TOKEN_HTTP_CONTENT_TYPE, (unsigned char*)"text/plain", 10, &p, end)) { + return -1; + } + if (lws_add_http_header_content_length(wsi, 0, &p, end)) { + return -1; + } + if (lws_finalize_http_header(wsi, &p, end)) { + return -1; + } + lws_write(wsi, start, p - start, LWS_WRITE_HTTP_HEADERS); + return -1; // Close connection + } + + // Generate relay information JSON + cJSON* info_json = generate_relay_info_json(); + if (!info_json) { + log_error("Failed to generate relay info JSON"); + unsigned char buf[LWS_PRE + 256]; + unsigned char *p = &buf[LWS_PRE]; + unsigned char *start = p; + unsigned char *end = &buf[sizeof(buf) - 1]; + + if (lws_add_http_header_status(wsi, HTTP_STATUS_INTERNAL_SERVER_ERROR, &p, end)) { + return -1; + } + if (lws_add_http_header_by_token(wsi, WSI_TOKEN_HTTP_CONTENT_TYPE, (unsigned char*)"text/plain", 10, &p, end)) { + return -1; + } + if (lws_add_http_header_content_length(wsi, 0, &p, end)) { + return -1; + } + if (lws_finalize_http_header(wsi, &p, end)) { + return -1; + } + lws_write(wsi, start, p - start, LWS_WRITE_HTTP_HEADERS); + return -1; + } + + char* json_string = cJSON_Print(info_json); + cJSON_Delete(info_json); + + if (!json_string) { + log_error("Failed to serialize relay info JSON"); + unsigned char buf[LWS_PRE + 256]; + unsigned char *p = &buf[LWS_PRE]; + unsigned char *start = p; + unsigned char *end = &buf[sizeof(buf) - 1]; + + if (lws_add_http_header_status(wsi, HTTP_STATUS_INTERNAL_SERVER_ERROR, &p, end)) { + return -1; + } + if (lws_add_http_header_by_token(wsi, WSI_TOKEN_HTTP_CONTENT_TYPE, (unsigned char*)"text/plain", 10, &p, end)) { + return -1; + } + if (lws_add_http_header_content_length(wsi, 0, &p, end)) { + return -1; + } + if (lws_finalize_http_header(wsi, &p, end)) { + return -1; + } + lws_write(wsi, start, p - start, LWS_WRITE_HTTP_HEADERS); + return -1; + } + + size_t json_len = strlen(json_string); + + // Prepare HTTP response with CORS headers + unsigned char buf[LWS_PRE + 1024]; + unsigned char *p = &buf[LWS_PRE]; + unsigned char *start = p; + unsigned char *end = &buf[sizeof(buf) - 1]; + + // Add status + if (lws_add_http_header_status(wsi, HTTP_STATUS_OK, &p, end)) { + free(json_string); + return -1; + } + + // Add content type + if (lws_add_http_header_by_token(wsi, WSI_TOKEN_HTTP_CONTENT_TYPE, + (unsigned char*)"application/nostr+json", 22, &p, end)) { + free(json_string); + return -1; + } + + // Add content length + if (lws_add_http_header_content_length(wsi, json_len, &p, end)) { + free(json_string); + return -1; + } + + // Add CORS headers as required by NIP-11 + if (lws_add_http_header_by_name(wsi, (unsigned char*)"access-control-allow-origin:", + (unsigned char*)"*", 1, &p, end)) { + free(json_string); + return -1; + } + if (lws_add_http_header_by_name(wsi, (unsigned char*)"access-control-allow-headers:", + (unsigned char*)"content-type, accept", 20, &p, end)) { + free(json_string); + return -1; + } + if (lws_add_http_header_by_name(wsi, (unsigned char*)"access-control-allow-methods:", + (unsigned char*)"GET, OPTIONS", 12, &p, end)) { + free(json_string); + return -1; + } + + // Finalize headers + if (lws_finalize_http_header(wsi, &p, end)) { + free(json_string); + return -1; + } + + // Write headers + if (lws_write(wsi, start, p - start, LWS_WRITE_HTTP_HEADERS) < 0) { + free(json_string); + return -1; + } + + // Write JSON body + unsigned char *json_buf = malloc(LWS_PRE + json_len); + if (!json_buf) { + free(json_string); + return -1; + } + + memcpy(json_buf + LWS_PRE, json_string, json_len); + if (lws_write(wsi, json_buf + LWS_PRE, json_len, LWS_WRITE_HTTP) < 0) { + free(json_string); + free(json_buf); + return -1; + } + + free(json_buf); + + free(json_string); + log_success("NIP-11 relay information served successfully"); + return 0; +} + ///////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////// // DATABASE FUNCTIONS @@ -1843,14 +2231,14 @@ int handle_event_message(cJSON* event, char* error_message, size_t error_size) { } } else if (event_type == EVENT_TYPE_EPHEMERAL) { // Ephemeral events should not be stored - snprintf(error_message, error_size, ""); // Success but no storage + error_message[0] = '\0'; // Success but no storage - empty error message return 0; // Accept but don't store } } // Step 5: Store event in database if (store_event(event) == 0) { - snprintf(error_message, error_size, ""); // Success + error_message[0] = '\0'; // Success - empty error message log_success("Event validated and stored successfully"); return 0; } @@ -1873,6 +2261,43 @@ static int nostr_relay_callback(struct lws *wsi, enum lws_callback_reasons reaso struct per_session_data *pss = (struct per_session_data *)user; switch (reason) { + case LWS_CALLBACK_HTTP: + // Handle NIP-11 relay information requests (HTTP GET to root path) + { + char *requested_uri = (char *)in; + log_info("HTTP request received"); + + // Check if this is a GET request to the root path + if (strcmp(requested_uri, "/") == 0) { + // Get Accept header + char accept_header[256] = {0}; + int header_len = lws_hdr_copy(wsi, accept_header, sizeof(accept_header) - 1, WSI_TOKEN_HTTP_ACCEPT); + + if (header_len > 0) { + accept_header[header_len] = '\0'; + + // Handle NIP-11 request + if (handle_nip11_http_request(wsi, accept_header) == 0) { + return 0; // Successfully handled + } + } else { + log_warning("HTTP request without Accept header"); + } + + // Return 404 for other requests + lws_return_http_status(wsi, HTTP_STATUS_NOT_FOUND, NULL); + return -1; + } + + // Return 404 for non-root paths + lws_return_http_status(wsi, HTTP_STATUS_NOT_FOUND, NULL); + return -1; + } + + case LWS_CALLBACK_HTTP_WRITEABLE: + // HTTP response continuation if needed + break; + case LWS_CALLBACK_ESTABLISHED: log_info("WebSocket connection established"); memset(pss, 0, sizeof(*pss)); @@ -2175,12 +2600,16 @@ int main(int argc, char* argv[]) { return 1; } + // Initialize NIP-11 relay information + init_relay_info(); + log_info("Starting relay server..."); // Start WebSocket Nostr relay server int result = start_websocket_relay(); // Cleanup + cleanup_relay_info(); nostr_cleanup(); close_database();