From c1aab89523ceb54afa1442d28a25605d0768c377 Mon Sep 17 00:00:00 2001
From: 0xnirapod
+
+ +
+ ## How it works Your Mac has a real Secure Enclave. A menubar helper owns a P-256 key inside it. When a simulated app calls `SecKeyCreateSignature`, an injected interposer, loaded only through a debug scheme environment variable, sends the digest to the helper over an authenticated loopback socket. The helper signs in the Mac's SEP and the signature comes back. The private key never leaves the chip. The only things that cross the wire are a handle, a public key, a digest, and a signature, which is exactly what an app on a real device already handles. diff --git a/assets/github/showcase.mp4 b/assets/github/showcase.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..e1ed973c6db9a9dc0747940a546333933439626e GIT binary patch literal 4675307 zcmeFY1z1*F*C@JPy1NB=Q7NUnrKP0=M7q1BQyL_t6hx5}q)WO4kp}7RkWOjtWbbdE z^L_g{=l{-q&i&6h_da)R$2-RubIj3mz3-Zf4M7mx%*DgO(%Ie?f)JqF5depwt1-K+ z0~b34-HErgw|9jg$i~*y!UT-}bRn)okU}g3gKq!**Xv&h!2TO8`d=mgTNnZaQPjIQ z8Cru$9T)3AY$E=X;6JnhyMMp_X6L_U7u6qvkof*s_`uY}#Tj6frZ&zl|4;=q-0DU8 zhtCvTwkDQ_U=D6;^7q(5-T12Z+5N z&TjU6DT`?I1jwp0Ul^E`&R5x}enkD?wW;@Z@Womn5hb^ayAkuZZYHKz?L@Z8CS6O( z!_QKDpG*}6z3lm2ccX`a8{yxh&>*>OF{dQ(y9hzq8Eqp&3_Yx0&&@SbL{M|cB%2lP z1V{hPQE9w+hKwK^B`bFzV)rD>4->)2XRO4j_EhL#R1=Yb%`)fiv=2;v;RHRd>x1-- z-iK%Dy{W`q)!O3@qFcMLhA`|NpN{7@W4exS6Rp3G$4OdQ3x`GXMz1EV@P7!ct9*0T zn$d;uF??2Jx7}*qYitcz`SSzXc-{L?>qH8_ zen$4UL#peknjdFchgIu`-!_Qx(5)k%cs;@6k-A`LwCMko;;Si-2*uQjx>D7I>l079 z5RedEy=a~48S#k;DM>l@7Y-)9qO;Xoc+SQ!=j|G<#elaph_n?r8}LP_Z%L@@YTxf8 zzqqBMJC94q<2$FlD^BQm X> z+?x?vw%!q~UE^{rIO|UulIu)8omnMyljI7Y_r3^r&sQeQ+iFsGBu`kJzI|H5wz4wl zNnM|z4ovVCkEEBDy82mdV)@u_{`@Rh+k>cqtzqPSVex$40%~DSmgcn{O8GWVQGNxy z>C4p8!YZpX0<>0R$k|3smhC*cl42n{Cwf`%6M1O+LiC~djrHSF7L9d_OGfF(+>+^3 z6m9#Gm!wvnc`L|bf&~W4X&S!d$6DU?LD9I(Xu<0uge@zi?psNXuNn)*8Uy(UrjmGQ8yu&|K-f7+|4p+)rA=*Q@(Y((@ShPB% zN#*-`@H&$3i};|LfE}({$O)rX<|g6dkB=rIfkx+<0n0fj-I-FCjPFk`!e76c$!>V6 z-qGc_qnXWuarm^mY-50Ft9?=I>znTPeqA@@XmOwW6c?XywZ0DiWyAZZsG&ytyXkp| z`Y<{Yib|UE9DW07>&Ju%wAKfzK{<@-X6z%!kz31VX5D9ALF7Y8_MhM#R+}GK3V)Ni zsWq?rJfUXBnQ&J;dn=I67C0%YpUfm4R?y_^?5M6Gn|p&HKG27+_A_P-FG+K*)X$=4 zTDkC}7?1d=S$rk<4X_vMOwAFIh-0(saA)owm9dsW+DxZC=J%$9oTQ9X^L;GlqGn6B z=(??a{Tud@!WYD!+k3rHG{=6JY$R_YIctnGp3!f!5ulIda%H3?F1$bRs({*mV_2ga z3?8~q>i5ol`=TxCvre5G)6*);zNoXfhs0}+`k1}kXZaiU^N>z&)A^~o3;5S>uZVKd zq}=IQ2`Mc@DW@+<9a#C)7Yz5PgKFRddrA?s793I0=f@o#(D3{4Qo?&kk{9#J0P;EKJe|?-LQbUj9B{c4Kim z?H<8g;kV8ylDK$8O}2SpkPr+B1(zc>L&&9EDRjef w3Oh*S*r1xSWi?-^W%9={o&wq zf}a-YBQp|l6&w24HrmYcin{FDr+W;skpVqhM0c7 C9PjR=M(>tvwQTVO?}#`6pwnBWvcKB5g5gy_IC1cAfsS!YP}B=(w(Z z|1FBABMd%S DIVUcQm{j!;qT7fS!4m^3af z_;|`H-tyv0h(!*X `raqrq)W*X9%@`1E=-NEH#9yIs>lz#8P9$FE$Gf? z!ZCt|{ycGGL2KXVMvb T+Wv~=W^ z)+R=tMGfs2-n}jMRn|alnnfI( )Tq=?-aa-gT2qS}13>zFK#aj;XsjKd|garZsDu_GR>z^Hv8ZrmzC zQyEX{ue1Ogea9ZZ)Rv^zic-b1LpptN_KoRd_1p^BQ1Y6Oa!|kHQ%{ti=0;LUpLWk? zFD!kKv}}#6X>Djx8ilv4PhDKI&}JBmaL8jqDqt5(W}2h^c>=$`5*j=z!}4u7WGYS- zd9UguoS^5GHfM*4_9R*t=9`=HhFm~j`Lj39OZpepPp0ntR2}NCGrafAB{3_EtWQ2R z-8=LZF3m2KK;ODezR2<&v3tYhvp*Jb^N!<){^TK!u@zPRUZS#@Z_gbqjqjZN@rPGu z`Qd0~yeF$|vB(rub66bblOn?RU@XO?R?P2fJc;3Eh}ZAFOid%AR5moGQW4QTX&~z{ zO?!+PU5aLMr=r#b0m<)E1#H#}W#_fvSmZ>IlR=6t 2x!iHQp3i1oGMv3yXW3DxzO{J5;qV=sQtNK~;=tJH%3aU_X z=XZVu{exYmp_frs7%Nt-LJTqf`b-!|Ug*Zd#rgq~{pORnZ<9W<1;0$&XVsa+C@gqE zW6;q3+p}wUh^A{&j4*?RUcYL=5X#+%+|+e#Wxk2gV{*6?J?q?4i G;R|lKzP95M1@tCk3-&Z{ZJ;_3t7GEXlEYdu`$`UpF+p8EWYk;_mH&ass5!^ z@0i>zVo&6%=ie7-V#=>+lu}Ezppe5VycE>f@H8`zh4t^UZy1Q3Tb$3{UOsJdae3UO zE-}den
-{zIB!`pp3Vg?TmO+b3Y`Cw2tG9xckcB56;x5c!k+_IVU zRbU~>;Mtwv!pAeLy3aE7&GrH?`Sckr_?RL;dT%?^4t(UbpDi9xdii{AsOQzi$<0h4 zrQg!=HQbjXIsLuyNs>M@gZ=VZ_QZPHloq=#D#p>bdzapszwYcR^cWC~FYadSP5crF zkWpBV`6$lzF*urLY|GOyZkl0Lk=os{FS5yLpA7u%A)U`!e)CHxQQ_TGNWBqlyP&LY zE|p(8dxiha31`U@bCrR(viPVmguV%Kf0-!h7VEFU4f@qLqjYfL1UHvv{vT~RD+#0) za@x=DwQu-%evpf2dAG5#+FyZGc-nFKt!=wd-l#LQw=S^zknyJ5yglW!b-Af&X7la$ z3haj`k|Fh}zd;*zM`GMXe7D?B&xaML$RaHKW9L`%xsTI??ltWuE;P1c8euMCo2St~ zqb2WL)9z9bba-&3a<=s<<$bEnkK#SZ>L_{p(U^lV;(KkXN^P6*XY6Wgl7bivn`0Hm z@$2b7E=?|@RdyAe5FYWueQd}(F|9LLlGJv7i7QudLog!ZBwL$SLXv#89v{z%v0kNB zWm=5a -K{u+nWkqd2<+lQkVvQ(y zOjXuoI4-MX0fie0P9e6(?MLKS7z#{?U+;bTWh#8%^}7b;s;F__uCvY~Z(i#f@vc`m zbxBQ$m&cCIXD)b1KOH{%9=ye*FfPoQVr{U=|3G~hPVU+$6dvVy|2eVGDe(vSsNOsc zNw!zvMO%h=DAAr=$7#%cGp=~Mid4N^I)lN({UcuI3TO8uw~`-F*-W@qntw9Ry({nx z4d+ok=4 V=d~mu`id51o`S1cDHP|W#R-}8FnriUKaIB z#IpMHdk`eK>FA8x*47bRo21vLljci*|8i0BDRhKXQokkKKWs;^P1J21>drO@!&0 *YiXan}*#a&z|wZT^T>D z9{g0nhaV<8qGp!ZW-kO$pO9iM-UK-Z4BHgyb6%q9*YZkdeY)W%!_Rpuii<~Ytw9#; z@tQqdlloGH_H=GOfP3`5pJ@Q*+8FFpvF?2{)F){!jSL-AU*9z-^uIH2NjnZwAZ
zN?;DQ9wyoN)N&U3cuuClVlu=>?J)i3)eFCs1zbO-OtbW2%Zf{s@2F9#Y$JkS!)&PG z1oV>(x#+*9b`B4F5YOdR6a#N^v)SIO_oWBsn14C;d&PuxJcb}bIj^fHiE${#c$JKL zFIel8T|uy3Q&CQy+Nc&kjUKU2*quwF0h1Os=+#+7Bdz+B&y^pW^Lpt0{fqRh4LA!9 z7vV7LYf1|aOZ^W^HQV>{@xFzaH#lozShs~rCW>LdPAcWcO%OB`;9?Si*`8XY$CGn# z=})xj$Ygk`T>Pf{-eR7n4;PYWbj>S3=)sQ-f?HT6ybqw4**{OYhlh+EJ`mD>IGpl<(y9xjq)CoE8bWwGg>qo|6&%u6P Y~sLC&mEa;F-T;1E17}Ay; zpisFGt)||Kck@aTk8Q2E<{$K7(j=ov+sl1n)r&(3{@@0gmb*C)vff)PJze^uW|=$7 zYe*Zt##ld|8pQTk`*mzY$n4`EZI!ut?55xQN85y%D&L}^((Rfqy(kuQOEVD1$8h3r zI7D53?t=eQS3TYGyKOPEZmp26Q$)RPHpQkKl@d*84%< %Ucq60nigB9P_w!msY4BeTTIH&j$X<}H-0K4M1k>P?%+OirAE6qbQ|q$x&~b>SgL z*hj 7RZXJIB>clU*oDHt zd5L=W%`UN}BH7}uO0!pJ%OgaF)S^I>Zx-Fwm3@3klOzjzk(D(4yrJbeC=_`&yp8%b zMa3cdI|J$=Wn+k|;+NF6KJ6ls)E-30pIauiw5^ShYd@BCQ#&@?X>6hT-dgi8Xlyn( z+qsGT2B~VdQ_GwvDfhP`s%s@uh0e*7=8Y@T4e5|(v2mv>E(Yly*kW7qLb0HG^L=5g z2OQF 22=SP q1jrio;5V_iO7VpO~bpC;Ci(#2knYJMP`zqHL0a*sb8q<32D$A#_ z5|q;h#fC%cB!>oy&&!6E85Ha=yvcY4Jz9P$Rp8W{Blj9l^>IxPnr7vp+}lKBp1u3D zFtV$Y@4@OlC5$&V Ez13kW)GzBxVPf=?#uzIwf%uK3f)2_Z;U*mb#-~$57&5}`|c*( z6{n(Br`&q0_B*NLZ361-2ia7+HOo8lYF8LhAy6>hmS^eJ{A%&f#8IAR96>~jRYUwo z&i#Enp265Elh;KCp;T2%rplqN@gxJy*OVi>V{a=yK_scVg~D {wA_=SJOtk7Q^x((2&?H_rMu4T2zLmFC zzN579>5L9yRqs+~lK6N1b3=A&oLT~e0L V5uRqbrMsUN0%^`RB~}^_eJy)v7#(ONf~d zzFj(;N81|bq m;4I!$! z%onE%Mzkhh`ya5kk~CsQ2eT@9R7oktoSGyR>5 1A?azpoRKm5wl_wYBOy z+#9B{htaD@y`3Wu1%rzeM-WR4urH52@olb26{#|LhxszbUk+DPXMgV(-RiHaMYy@S z%X_RatkL #!HB1)0J;$flRlHP3$K)GN`B8)3dxiWS8D zY8RiSM!d6I)HV1V$)6ePHy66~151S$HH5!X2Ax`jS`zkuI)_{YCRqk`(3R>YOc`HW zOq-XfAy;1g#IPZzQ4$kr*0d+m#&ts{U{mXHdR%{3J>bfzeg!s{8`b*M!M*WG^O +ujeQ~MC~yz=G>heOlM!@mm3kKf0%d^i*2O5 z(?$u)Em3`)z(Xtbb8ItbFu0Vzm`m1Q^KrNbO+HIYFkRNNIMly}&bM{EQiCg;6e6 z5%7&I<=wXN`d7p%f=>Oc5gDIOl|WG<# RAi-}c>c_MQm^LiR-jDs>8CykV+L)^nI(s<#vbnxa85$1^wDr!xG!a5 zI#AW%2;V>~F!4uVCZT+qGwD &^(r}oG%1piEW726H0O)XrIIA~9A9?v zkUmRlOWv2Y*uSgsu1*MTU%wP9n4C53ZvH8b5FrcVK|&mo<)b3UR}@deUnsd`QR_Zr zXdS{*=*V(Xa%(MkhA)MjVAx)Jcyy5~Ve{&3&s>SCQc0F^IM*buK%g-?!a$usqJ!dM zc6Lxqm*cSKr(y}Ra;J87op&TVzg4Y_efbvR)|$^umQq`vm9X5=N@k3X^L*^J$#l z2a^bDvAPr)T9~jsx*%McU3z)lk=Tr3U@6a{A=JT*${7e}`9S19UXVWZ;sKd59Z`Dl zamoV12I=D+Ntj?wq-jB?SSa;`qfSTe+V?U4;0RB@2SX|i>o-rlP^^j!YhFj&l$j5A zG1A6oU3MxwburpJS{Iffd_WXdXsN@*T1iYBuqs4;=dnaoQfl8PG`*Ffc;o&h)@PGS zhvXFtlZ8`W4q0qMo|@UEb;&V`m_xQCJVjgi6+YSxYJyUt!E|ysTg6KG^cRuaQSUA7 zA9!Q`2()Q^+j@t8K7h{(@4F cb}kN$^fE>wPx_~ahx$c){E-+-9=bB) zvPtOWEbzhoS+hHtnME1U miJPuK2I4w+WL8oJgv zm$KwH9C%MQ+LYFqH<9S$L<_~TAM*P}mv 0YgE`}5nqLfu- zC7YLckJEz$oV%V#d8FnAb}t^retq4H>$Q~v`zEfmpIa =wt<<`UTW5zE zXAk)^%$u3|{%2PUXBP*C1{2+-0 bHJcxd!L%Bz z?!qOpQbeK|AP!f`P8z9!X)V=Xb~)G}KR~HP*Bd#sYNXc}LVoG*UP56wEZ 14 zz4Z#tzgj5lHAdHmTj~NgS8#{8eob+r-$UwAjH@pY_j5%PAxIcn&%w-x$BnyoGUZe+ z$l2C Tbx0}?{FChd|(>uQKo{5Z| zzDVeBPv}z`cz@k6vElvWM|D6gpW%n6h`vyuf6M0#7POZAcVofU_eaDwn=LaKP|m7{ z-p9Oy;SC&{!peJRJ*63y*6O~b^B`WW3KkQ(cOhgy Jt`V_KEYxJ6xG{XCCIr8y*Wjj&FsT8zL zylOsV7p!H$=vha5FIp&CV?ImCo?_Ufa|pP 7e>~Ol3Fc=X7hslH zGBP*xEU+$ 2tdGO)*SI*Va*_k$qII~==9_3!iO9tyHusbtZ;NXymNXllcV3;% zN_n7|FxdV2@U7|1&C5Hc>hFjCMki#T*0_{L zXHxCrTI`i?p_;_<$w_bbFM4c9YcMup5iX0Jeu|<}gXA9eebc<*!rzt=aaLd($P($X zF39Yb4>8?e;#PZoTyNEDp_yC6F){nu<9K}0yFQwbamv_i|0I{$37NG?vsHG)JY^7d znO<1v4W`-S07NYqMeY?AN&8*yT ;?Mh9{L> zB(d=;Mu|Cd`8dL506zM-{FQ-~o&mvjX=U(gwNn@JNWq53PAYcb(+9Nc$`UUkH!%t2 zZirhE_TTNK5MhD;%Z(=R!Ud0}D(f-c=rTpiB<>f^ZO={9mlyb)-yQ~JAXL+3X`W!n z?F|};y_jVYt3Ez4g6Ds{pip|Lpy+^Dt3+YHosNU{YwV0#OY`cG3jYYbXuNc}RPs(D zcVwDjVdl;F@8x7NM|iM=$-p?a2A5gP5ht$b8_CI)2fN1$f{8hvCLQU|9kvn?`c%|k z4wPR DCtgxS3#N@w+bmw6Q~vslBixfYlI}^WjM% zN}bo}Lv;bq8scbSU+q_w5>xl%*1K7SVjQ^RLNVKelhWTF6=x6 ms1|mWxrJ$ zK4zG*L*C8Ql@0$zR_*;_nlxkZrKZi@CO@kcqL*t%2Y1D7Guk`UIKoSXg6=+v_>f9% zB~E|u*l!6Qr-xvn-!M_W3$-Rki}0#4O5hhP>BoA&4Ir{*Yf;JOsaa0x&kruzx>=GW zX@&9L3v#xsM)QiQH5OaUyb1^t*Y+9m^J1+WWkedX;g@nMD ;XnBb!XGk1#b zdU+qJ$hc`MKg`_uhIu$^mURykd8+Npu>p;G!BCv-*9%0;svqaimXO|+dzvC2BjCQG z%9XR}bSNPAhw`68L;il#-)d~J9c4X37Nhy8{gzhIVq)9HH9YNxMK| zTG6?+(Ri)niXMSM`6oInx%#7GNvUrIWNgHaClDj=deZUCeiO}gv2m2n)AiBu{enbz zZM8io{xGx#G1jHYhhaWiUeJqYQDI7N)(01-IV32AWIo 2^LA#sPKrrtba?)K-8CrNny@=liTCD7$@ z_)@+I>lRE9d6lkRmdx9E|C)$;{zz5MK03yq=IuRvdTNx;9*YJD_uE4Cv*a(jxeanj zUThCW5y|#Bn3Q1Bw&e%MN(oO#YB>nPtBhg{=hQEvN!~X)m0T42wD7K*%-@y4y=y!* zCi-jU!0mYXaMD0+ltH)w$Gaaf%v2$8RPpO{c;Ty@nA2 ;YqRe=calW54ZegQte&CGfth5bC~An7bXynfMh2Rg$i=(=pEN{`qkWa613W+~;$r za3YDkrkmAIwP4xKq7W !W!&J{{YM>({u|7=QHoH>fRy%TC+lqqW=unesZ=&bKiH7A%5BnI>TSD(vkL?oW zD*bTHO?(A+HHWVPr {F@IFd$%JKSDCjETv)KA{D_LN`p1+Lsr zA*D%*C(nQ}?sMybK^TujO 5V4pL~ir^OPWzB zynC^tP&-(ZJL953HBW6Z_4agS#b)HGXM`jd`okcB2Iep2l$c8???Ra@QRpQXP11Mx z$5gk^;|#IZ3vq7;)GKGMb^pw-UFGr`21Y7=^w%-k-qTV_ne4SFDCStSy^c;m*h2;9 z&o_EiTLE>ZBEx{^pUAL3_a5ea=TLdDDX_>`uue_AuFU`0=}RBc43a24V3BEoH7hKi zMt0$CM00`~p*nEr)DGh(^TqrX={L?eJvTQlHLjVqJ^c+6YP2hf#d_c>!sf1*EG #^^?Y+ylh9}W3(Kk z&IoD#{Qf&owyTLYh&8lGwK~OW;Hq6eoDRM>hAY6>6=;CPz4me!R)mIb9uogaKpCc= zgM&n9gy@vwfekX_GF@-6IGtkwo-NGU5R{mZX785m3XSTt)w*eo{-wiY`7$I2$l3+Y zZ;EXkF5QAB0y=y%#8=ug3(-Ki&|n?V3qL>}xQ_zVjdtNMX#u{W+P4}lSni^!i7}rl z8|}_yq*i|6S!;g#q^`t!+~{gRLAA&fwGN4Da_h$b;L*@E9Sp#vB%ByvXrOswzKH0c zRgF|c-G=^I#yULU77m9JVQ&^xb)}wUOCsTk=bu6VBLGV$Sf<7_Q48g!8o{%{w{ ySZZb&rAba#GY5CyN%-GF-yoe6L6 zV%I>aAx=dPqcZjjUgq1vn{_*KO`tJ2t#kxn-kZ?) qqCNi_9+7pUoqfYg za^Xgb-zbkOBK|hJ2Vn#+!Hc1~a__$;&->fePT@v*x=CQ@&K}_|qzYe7E}r_(x1!n? zTdgbtF37cdq}mUVqKv<*MipkRl A$M`K&W4aYJZf<8PvqAa7>%9)Yt2mK><_Pq?d^v^0z3e1cVB0ht6;cjc zJ?+JG%D205qchjG8rr|B^hSzKvE;1mjs(-TKCr=)fbfDD0+Rm``xERUi*CI)y)N+P z!dSqNz!-cW(O@`c{caSQ#&x+j-77gYNxe_#`WR9#I;w9<@DF1XV~aGWqM~Rv-fe zuLdtpFgpzwj=Se^4jhWa20&;Ccp9&3KY&&(C1z8;5az=+ErDsew0gh%PHsR{#I%00 zB_vtq-vI;p?j`z|eaO*OS5SVFdB<`T%Gy;R4ZF >I!4Z44flZ<#m6)CnnrN1Q?%<=ie`jr &wG`xnChA zGFtTiy!?Si_(lA*la!C !BE~z zR`fy4JHSW47vMhtlZ^TnA&M!D9zGX; g-uS!^OpQGbcNPsTzESqlIzR* zPK38a2eao_2#$;I;HS4*^KRRkdX|nL@76+HLz(Jws5%9xTQnI-IB}3+G^{_NX!`#E z0&R9qnJl5Zrq$GOsNQLL!8_7JL7@{$ytU$Vk%Uls+Qco+D+Q-wVnAqjF%+|!^Y4CI znRqB1pm&J|+*Oa+ZuV2-0dHU |>Fg=O&Dw Z(RgHy2Sk&`S}Ni~x{_;SbDxS}n@Xj5*M{Cez%)HTo SJk9+sBI6ep>+^ zTWG1}6!f1T1Wzy?Isy3cAA`wEVYk0O5bk9vG*y|>p=i8@{8hP}ZBkt0Bv5ynNf01f zB(;2$na;at&WH=j8zO(bs3q}J74t(*Z*A2plb-+s{C)i7bnJ3T-Shz0k_7%0hx1q^ zpfuVFZoDoIw3otKB!Q_%fv>Q<;i^28w#NW)Xqh$A&dWEu6wVL#3pRy$f-r@*tOymc zKPj`{jX5?7i`ND3;R~4$8p2iAMD9U*zCAspe;!&F-3upAKb_twP@LOzyMlXq3Q+G} z!u1Y( %n{9cXZIP?(402kD7Q^Kt@!PV%6lgSoDR0!t1)eq!~Vk zkohe^zqK#%=uhUo2PXpjZO!1}t>@AEka(>UWfNrP&X~I6F?A9T$0XOVcpP`|&Y!%U z_4kL^|LHt ^QP<3J$3;g(co zDx#+L8Nh8eSpgB5#5fw~V_ _4;&Eyy1J*by-d B6aUI+;egw=wlOsuhbbI8BUDRrVp`a#rddba84ygEi9 z+wOCVJ6H*-*6^*Q>A)0XNgAT`= ED)07Y$PXTOlbhQ=sY}n6g-`8F6*;K#X zo>Gr%vXU_qKy^ XSIdfQ sfa0{+eTGtgTon `Ub-%GA&M@G#F;tdsDn=4@$L*ih41dq~qNT?ady(%|3m z+0TfX@Uc!?Yl@MsxSHfms^z Bm7yMqB z$}kvSjWM8UGdrofSC=Vka67g~bMb4erf(0bYZLUs^;dSBb|no;lJHs&SVDyS8N&JZ zn}%4jF_BtgZykn-8 T(#Ju?epYLeIx$k$M7x{`_%9n1~(0K#kK&WV8b#>tq zfVFYj5>UN_9v$Rw?}P;*T84&f(O0KZY(#0Mlj^w0`VRL>EK?)cqK2EJ+*tD=N%vNr zbxIEB(3SW`L!v8uDk8`9pFGb@fGY2zw-V^H|8?-J=@((xi9sW =1#ykaC>Ie=R&>Jb)s7 zJM`l$qfm24_%5VcEp3ny2Fm%oj$KvJxqu(?PrKA@sqtD{!8oTtaCBWOBMdoXVa#CR zlgHWd8;*YI802E^hgbJxJ@FG*lPVwUoJJ|yB1=!gIQvBXsDJwXad@0{_KPL5lRcS& zvASPJ-{;SwZb6?f#)_nL3Od>xo;SpwEs(_#Yg3PC{kEspzk} pD%XC-DeVXCo*M`;~@nKBve{$ zfLXO#T(4xO_Nn;gI{>8>kcQB7lEv| bUAdPQ*Pnz*_55y NVHr-s2A|i<63Z4VgVE^ z5Q*T{dqfvSrC9Lzw_c1|xwGqQ+|@m1co>Og(8?EA{d{6pc}&7yC)JP$Mx?tmYan`) zKawWV)mlB=jE*pePbZLnY5SAykRtcBA8<;53&ghLk%c(R4FK@wjyWz8-nqlrZ 6f<={z)>onu=l1BUZ3U8}W z5X16a0^~}TJ~L9Kkx{YMbgp7AED;n6E_Oqw!*E?O*OLZ*$weoohQH`z1ed@kJlj2xeiVJl(n6Xlt5lK!vG%h$e*UxuDfATCishRN7a&;2z z$`kjOxpnS(G5nXj#dQgSs}z7a{m)$IzRyZAL#Z;jF3Nwps)+2GD1ebZpAoG*NhTx& z-XPKQDaAC9R xjZ({7=X_Akn^F`Fy|ro?9<3@1ydlMc$Ovg8BmH*6 z-~HV|$m$2BY=uVWU+%26nr?LIH_q-%lmW8gV5)S7nIXq-aE4%pAlw*}1K{LQM$MnV z%ZU2UT_qOT6Yc6Ee@?+C51;2z1`-&VXX|`7EeGE% 78IUl4-0Qg3vBS!lv+ *Py-i zvbd1u_XRyAX%Fl6Z_Gt6?@5f=WaS2IImGPD!sIg{*ZXbJb!drqZ&kTbcW6uXcAY#Y z%Vh%CO<&XCxU5rNuAxKcm6Qywddb3`6Y~jcrHB~#whD5`w9&}RrIHp4{UM!Wh}dm= z*RO8-(-2t>^iwK}!2a!cz@PGQGBshMb>_$+Owv{K&lFXsPqeY&hP6Wj*?_1kZk2JA zG02oPxP`HhAr^Ub+d{~V;N)dol|_b^Y$Jk42}ErAPl6G-<>Vp7fdaQgo?A-ncgiV> zQU=MQ0Sb!JhJL%~0Tz!kS-58+G#=tXioAWCkXZu&hXJ-W#LFz&FBe5vai1MP6!{fI z5M{uDqe~N+k_Hy-68qzpjDF{t(k}}5(ZTCTy6sgjNdNseT {3G-mf;rB?MrxX+Jnq}V&W4kZ@1I>r8Md& z0Iq;?z1>p`AjSH2Jusg1jce>swMEtNaAQcTkiWxBzR2h%;>2Cfr!1~{x6|t@(;W&^ zYV@VPvKh9ict@-Tpf|)^dZ>WnZJ%*eZ~As|s-@?sK$ wT-F8i!~EYIotD^3A7K&<7dE5Aus6n5vOm%l}u*b&S>f=eDTvJs2>O12hvI}KRofae+ 3ZAOB zYebeFk*&B+>KNHs&DEO>S3Vj-(Lw|*b^0OWR>?QVODC0G?Uz=o1=8 &vrdnWlH!y_s6X^mzKIe512cw1R0qx_X%`&R zC3i|7ZE3FU93nTnOhs8p=S5}zx+6iDd~*~Co4hr0VDjEZGZ%(1!1h~X>)Y5Y2bLb% zChQ9`0GWFna4>frKzY%e#(GcxA7Wi#h-KkWh8#&gh$Hov%^*Az` z>Ll6%(c@2FjW9)14afJXjuq{Jg{_h;dTm9#-BwxxErbS^QeRo$@8<_djEsU~LnuD1 zn~6ew4H+B=e>cy*wgfS>hN)$+6w35TZGDQ_>;H6;VzE;0K#(O^F7g(Le_;RjDn#CZ zzjL8KAPcObX94%*ZIH@eH^d>KSaC%q%s7^gP~l$DyIqy-ZatfS*p-BwSW~Jf lb!8T$1b$=Y?9SUXBv=xM>IJXX~XB^{&an$`Wb4* z(Ic+OOLo8d!%YGqD<6$OH 7=IYh>? zAHti2M6i(3>+3mKJHbG=2_-S_jvq7nY}&4%2B(hUbsjoAjRzeEGz0bb@OgcUwcce> za8kP!^KsUIVuc>sebCwB?F(;H@ygRP`^7n9I=ePef#1I5*G0Idh;2PmF dC}d%cNd{QKY42_Ao)F<^OkLIL0^>Q z2~n@*A!|$wPB)eWsg9eeO;2A5f7|lD2c~hK6+O)gzrh;8%e*(kWjMoMB;c~<8Z!1r zvat9#c=@Ix3x9Mlf?Vwo_&OfjZy4pL-#wIO7yfYldBu#EpfYaUliC;ISo<<>7o-Lv zj(as-eX7Vm=-o!MI=?DpgsU$Ad2%cBSB$_axROXb0p6UI@=dWuxJ*litjhzw#Z5;Y z >8sy7|To$On(m-{-YIf=(tEYdKlE!;>XTZ6|yh2g0X)G9lw{mb1z_yUhq zs=MUjYvkI49WV*lU1-rURZhT dkU(kddWToz91qzU4z*w8)7`{ z =G)H?>a #*PLab 7y~%; `<>(mXSW9!Rpo~JvphiVYXZpz*pn; 47A!SwycJ?%+Hn*gPW2kz5&G}3U8-Ce z@yzu}`czafT i&Yu6;3P?N)@$e =V_&tTYY&YD&*F`a^yJdXjl)79s)Tc=HO<-)Zx_S&)%c*E_lM_x!Oz! z;hjL>0!FQCP!!0iv&6rQmNTqYjra_i8pEgyI8-_2`3PZMhJr4A4HL{~;= &$V;2uOW(y}q0ou1K6c`l{RA}ztzl!+h!jMq|H4p~5qxX)HNnr~ZWtp=Jq5hxj@`(Rs>VieR- iKp3*VytMU_w3X=dj?Mn8OaZV#0Nn}gYSm~ zrn8E|z%p_;C6sN#oBwG**~tpZ=#E7upAnw$`g0w=3 }l9EqC0pN}~1fe22qNh8yDo_#bOv|)Gr_01}|C>z-p zI_v{n4E@ik$L$BQUwwd2bzchblq#|o)GOQ;wFx%B3eU?+Anv{;1V5N(-UcJX)&rt= z-!%A0a5VazmsyVt0#f0^>%U%oW*%>oO8aG*FpC)RwZ!wS0ai~NxHnT0WxNZX%K3DP zv`q^tB?jvrg$q5a1Xoc{iIoov*yv8Iq8qS`pG#Ycj~lTufKw0kI_$#zwXKD&ATB2u zg`g2 AK|Zn z5ml9tEfKr^k92Fa3>hZJm!?d%#<9|S3&5^n%vJ!>b^0#u0h!pZlFZiXt+uJZ4d&$K zyT}Kl+SfFB&!!10?EdB30H<^;oPjt=Hw{ENE85$83Vzu)?xb<8O#(5_7cX`J%-O+( z#G>nMT2qJ+n@JJ}w-y8%HGe&j$a^6+c{RjJXK;qlzUzi;rQH0+>)J1wp64%=E}k18 zPK-@(a(XC0vJ7#8$ttneJR-*Hi1Y`D%N<`6E_HUg*PXCM$eiRhMBWw{uS*99CSTWB znpH3yw7+9b#xL|@44csCyi*NV25NYoK`T9{`leDL?ryJ #w z6duCikqn4h bNelHA*JOd&L0ZG992Brb o~_A2m*p9 zu6HHRDYPsrR-<`XSq`&<84u%~l>4xxLHNUHAd!#wFx`L8KYF5vMF&ab>t3S8l8mJK ztx2O$XLF-lTCCm@gq}gV%upyoByGi9j-~w6s~24KOvMax&p|qKA>jN~-yVn8fHE+f z)nA*aP?5^Np1;CxsmBpPG*%67DaMHwxy)~ a& z*kHJKwU}JWUFhX6bN>W@4sD#J41u2c_Y^c#wnk3VV@wJt@_bZ0)}m~mu9vw2%E-S% zUAa<5IZ&X6t+&&Cq4-s5xenv@0?3#{EYevU|2FDe0p(!=%isiHaT4mU2vR2WPRxC9 z$u?blOhUx(#wOygDqQeY%5R70Kr9by6l@2=Fro@eh3<^ynkCe~hxlV HUQdKdG z6EG0^^YkU-@!sykB5BACGA`dCoV(CLoBX$JtCSi~l @XRaD65HLyHoQp+D2NPpNTMTt+I$)LFY6Vs|CQXmit@?* zo0w3re((OCu9*$*@f9 +`#CF~8U))ydbtczi2}L&QA> z@?jY>N=i;np?|=#t0be8l#NQ!)Yo8$&C|24fZAwb7@pGQ6@)OtR@ojdttC`|h3J$3 z+Au*-adrD%q*7oA52{=k25v_Aa3r>U#)$XW#t4T)XjJ4h#P|~nPjLfpigQ{*fZ}pn zHG>fB*k?cwr5XkfZ}TM;Apy|8!NHAps*c5N)6%kNg1N~nyDg#(!VLEh8^3SgnzY|R zm?^mbMbkO{R9Dt?3gs{gE5k4!T8`r?KCmz87{%8fFvQ5>!EWIU!9;r9EO;TB*tm#; z+!dhoMYQV2u)&R9s3-6*7-zvT40|Ve7 %D3SM|5;6^F{{yUzY^rJA3-nLkjCW6?kKCYKZA>n^NW4GvBd zC^goBC)z@Ku-ioi!4EaiK!y(xT@vIz?Mj@qOprLUq_LDJlIlt9oT7hb=oc72!{_Ul z=t6b%(0`l`yEngDAw?NAp;r*dg-CO1_#4IDp2abLFTtmq=f-^nCZ$9SfG4qBo7V^6 z8+TTsRlbS=(&jwP;#P!xL+0QBh`|QYc>+lCgw1xY8+&5+6f8e&t2B-9^Z%^aA+Eci zGn(wSjEPDq9qhRFH6N7>KZT8K7+jv*;eTq#1#VqRqm~&Jm4}{(FJ29U{PKK0T)W#z zYWeVB2+zPV*UPu$dUj59jD?E48d&Ng2uJeeQ+Gbq0&0XgQCAF@-h7#+M9A!rYLo$1 zXz^>(%3_CLF^_oj?myd3mCJM)GWYE+PyKMw;9`@$TlOlkU+NC}i$a4IzI`@4n%F+g zPuKM_9Q2X9O}5XFgOE%^C3FKtsv*HRzjO@ls^{K0^8Bm6Us^)WR0)RF%k$j!{$b^B z75(Yq72xy->VjWwBEO}eOMvxjWVh>>oI~_Yft2iQ 7)BD)taXHb|8*hOgV_KkTS7- zP4Cp<7m-2{iPtcZj1oVYdD_G}(Dg!AXv^hocz5Fx-+krztY`Xt5 Q0^dJax?LK$9KaK-LO-XJp!zldvh~x# z>l!rJYI){nh^t#`feM!>@T#=?zI^$mOn45WRHfbi;Mrm>bI@f7Dl$GUMoTP_+;}Xx zzLcGE!Ha-L9aZ=!9Bm@}u(c4#{2~*Eyn6szk4QXT;4P&9mOYuZRqo4F#Ibc+@BZX0 zXM3aMGH5*!!l@_t;QS?Wa&^01bN;mJ={q8*Z{L0LDf18x%HZN^3Cp%ZQ5I3%UfRW_ z)TEjDW+qrwlWNOT*2ivw`fZ#tjODX)$MkZ68Q13wM<-Y0mJtLgIeT>RXSm-@s3?A` zth#XHrNK1*8xkJyj>ZSVc!cuJ`r(;6qe8NJdS0`_5nG45xgr11cLO;Mj_=at+ZowL zs3rxezJ0BKPwGyKT<3PkJzPnOZJj;_g20a;WWEg#8Avc?LZr#sAXvHqaydWFQgD=m z+tLmaEmr+*=-JmTLA*b6c37<9@{>G^dr5hjo&lvzu*jyPEr~6B$k_mds`<<;`V?fd zl4l-=Te=MfsX$cxQ(dPLcH)lT?JU<5KUtctn(=O{J1wTID697!s5(z<)n1)tvvoqq zg}KtOW5Sr=X e~fT?1=oC0`SO&Vd3U?OYRI >8ndB&(GuTOR8)M3vpn6KfUr_GVyBK|oil({=kRmtZ2pTvk n8bd1ZjG2wNA1c zu|zBHTsK{tiMK!sc@h4a|9)Q;&T8%C|C0X`?A*)@Jiw_+#CZ|Wly0&MZWOeCV;;Sw zI;1VYSwGhpNDBb+FK<$93>Zdarq^me-UcM5j^+L~Qy)3lnZ48(p33pVCkzxmyaZm) z(Huo4m<8o3*HKG> x2wNtqTfw`olLvMO}+FXA0GoO z#s5K&VvWZp-6vLI;;>{+T|`ou?zc{uR#*jL!?2wuXqN#ebzaxOn47mkXmX}QHQPvE z)xMRf!vE1s1p1_jt9jc~QuCrgx%t9A@3(CE@Y}`mOWC-eJAsPlgh=P+CU}anV$DxH ziQp7}#Qr989#!Jb0Y5%1Se28ow0VrQ=QeAqiAVq;fA{v3y-4V1AjKaEdBf79Ul0=J zE-q^JNBG_ZxXA5CHoRi&gZmdCDI>kc UA2xEv7+@vG#wVqj<$ zn7 R|L0c{;u3rL*%AWhOlt_ixd-TXbnEmc|gy$Tdg1@ikZlM*Mo`~dw+zJ zUKU1elUEE87sHqCJWmvN3-(6rK;KLu;}#CsW9xyDe|gJqn5M86|3@%RtrKX%aYC;2 zSX Q`EZZBX0l4D;2w{)I0j()0+%IC3WY@Xb=D=GH*zY zIkDX^1JIY`f)-1|Mq{Xh7F0M1LX~IBO)FP ^|zcnXLCjnZLY7A*?$$5_ubDO9e*hs2RTuLBIIguOGt=~vBlh+FE> z7NGT>;f;sfLk{9GCZ?Yga?e}o6JB6XYqmqUG-t`ua~ccyHLaEIi;D}L&mYEhhUe0C z>YZGjt*9k)C<@tR!}h8FVpwU~j1_s>Y;c&1ryU*#KKYATVV6~mg46< S$ z^+MA8a3=O^lopBiguhHs(UOIyaYS!jn;_}3(E3da69F8} vB?0w4LFFI6vWb zjZ3wddffQnZb>}}v2)=PO_npXVPy%)j?&u{Y98x{)kf~~7#}zeJr1`{8Rz(C5gYuR z#*R c%w4Yu1NE#a)aARY7Gf 1rqcG>%qxDU2waPp+HI{bIP+p4$)k=)cXJ&|&^8;&-qKNA{!*?y zG~(I^-S eT5?UPL=19?wCyPEg_FrHx#01`OyG`7n-xkAyvTmt`J+V) z{tMJU=wT66x=8x6aAUFp`y;C}Kht?GU64tAu{!TU1NCv@ YRJb2(}b z%p2H vxuLnmKre{#wi* zeT2AKNeOz@q#Xz=|I3-VHr5q)m*HN(ywGs>ZI;t~kxYSmi+BGcgv-oa7olBM-X>%V zL*nAMeOqfcNmsRj1X*@ZkId6c9`fVWMI6iyFd_)?U{o;K!cd@*ZI6uX+au93BbEhP zGv&IzgPZi_e^J07%qrr)bdjXhh5_*@PZAQvSxCU9hbqbl?eC`*-;~;F(f54Eb|;E; zG1e`cCnLwak&2^ceYlKB+0V%hC2~|r3HI6#WQb2_J*HmY_TQseJhN}eIaU;(?BB}U zwlC&B*k`tO aiesD(zA`4+_2WjOGMIH0psA!c z@u+gs+(5i>jT@gLH)mwPM|dh{)@zV=mSiPZYw?~!hoD$pYR2hceQN)!@Lo@l) ;#pXME>ZgsW%^}e8FDDnf&Pf%3s)yjKxNSG`vI!%w*zi38)oJR06v+&Wf zAvtJBcd^Gt_}(bPMF8-;dPK0v3sAPU65~S9oHP(JjT3W3bezj{%{UUxxIlbeDe2gh z(|CL!jaJCjeKSVQkqi&vJy8`|5tNx2$Cf{+9#Zz)Vf@KxKiu<_=0fZD*;45OXN3iK zE{TJ+oXE8G^?(fVF|olR_o0wl6cJQma$=ogDdAZWLgHM0ZT$M)JGT2n3g7^_u<+?# zH+nZm$y5!Gpg2>Jf_sGq_6B2~eZ}X1f5Rbl7*kc@kZWX-FhyTRnH1IQ*pSYh;R%|X z6mW#ZU;^tyQ>q*JYLhus6^`3lIVh)EEQ}YoobC;&zoI97kH4gLTXB+D_R{H|ny4vV z_>;?J $NZDBs&x4Ga_?JFAh~4`87*_)$9&vll8(%iO7|K zY($TcVCtLM-3r_`60YfhUbJQaLklUO1sLgOa0G&*GQ{s&dHBVtv*DbbAV9T%gYvWM z(^NX2k941sF;F8*bbiYzkDRwG+2ZN~xqtuwuFNl;MBqyUbEzB@3g5HAY@%t**?lU; zhtl|jP~#iBx7S{ubCQj*vC3LXTV9Nj-l_DuG^NWozKMt3d{IfBWA@Bu584Be=xf)N z7$&v6ccbOdSqVkCc-evc>!FuypV^Eiv~#ABpz6p)xDzWCT7FP2+p2UM?Ri2FG3mV= z37%52rH40e(%k#3wD}ge{B-|clmJyKfQUXMl&rTS3_vE-9u@0@O+Nz!oKoL_f+< {Dt85<+&E3$z z{~=k@m9m`gE!6c%7Lm>UK8SQ*nRsgHlc~exnOctW}Q1%Bo!+u zrZY0^MHPF`K)_18_J0nmjx=@Wk;Fa5b_h`&FtwGObTh5{y6XGR2j6q_TKB$&@SKKt zd&^C;KN-HM+v2KuU&u)8V1fV ir7Hqn? zg5F!--C*b>e5;}K#_{`t5X7-Le7-)Lal%wY{W@!rbirfYt+;?&n1AEcCP(^%t+}A| z<@4Ia-s=Wxl>8VYi#JeUDX8s3HZh?8;MxEe0#n+r{lDOH5<*fRBAN#^VUE0YPhr6J zTrc~!&f`C%T}UhThUxS8Syr5ME+~4dQfUgL!z#d_$cxuJqmp7liO9QZ Cs5taFZr-+&*(hk?it>F~6F@@Z8Oeu^QJZC~442zFJxFf@cyc;3 z1!yK2dgU@w0pfE%{?qqmR7maDV<5JWB(I2Qfi04 Jee>8A*rUNHZ?lsSTC>UJhz9eUv_rPxX=L zejY{%AxA7b$jtJImCF+^ *W zz+l}0M!|`TB0*^=V;hBOQ-cyh0a~l%Wj$UHhCJl-%5KR4#^J@^JD$C;I*QwF$MRM9 znwzq>uXv_Yk}&qaN7KNYWLEqd7U;uG_~DNR2^?e{SAUsg^ueJIsw~kgkLsllQ7wVA zW&ArR^F>Ek06dz ZW+_6TXnR}#*osvDAOv9ohA-_P8s>SNj|oD#``k Q@ zq|`zNNFGACUOw*7C;Iq359pdD@LVX03Hz3z5T}HYceBKczvq3?zJr!T^?V!YI2kD9 zKd {u=_IJc4Zc>bs*+8vC-1X3R3RMr4ph_4u21m-`+3Th)s7P(PTCsl zIkVdtMdn~G1bhjtg5FnjzLSb#pNWvfw`}(N{y0Nu__&27^MAXES9DN+n1;J4Na2(U zym-M*G7eY;htO*>F{Jd%JpyQ=)1VLl)u;N=?K)sMN+^H}2U6qm{=gc>)vyX?0%;NN zL =|dM!BXPFe5cV!=EtQ73o|~9Vu4@74<-u7-dam4^qNgp0yH*ypN~%PvI$ZQ z3i{^~ye3D?IZx<7kfcigEQ(r$z)*TVfS{$u&R+9i>*_a`FLKFw&H+lnnK2Mx j}A^eJsq zcP~#{>9yi5iv1)E19)e2r=7+lo9_tP2}ci!A8<*HV`D{+4zTxv_8?-DcHv@h`^eRq z#D|H%;Sh|2-RZ(#nu0#f{*YDUG#i+`Z{^h$ypE5<;%zBaNVF@?tmgq@cv(PQ?@rz1 z9X=b~4Efrq_#=E21NtCNZ-V7F|F1Ap % JPOC;!=lvr>~hhD}cl-$@@0x5|v60KDThAT(G!M_#4IrM4jl8HhhZc4Aj z6@32%&!@~xlXTt@@wc`7b68P{n^^BG@@m0Bx%U2`SvnZ>;V|<*@Eu%M`3)WebcLhQ zmR-(ryD{7Ga20q#=~B)Z_$Uk{vb+o|AX*IsCm|C-+$x3!)}Ee6uF9&4dN)R-GW_$} z`wJsZ(IcMu{jNOy&uPjTbRCD=i6(%)s?qBed>J4nuE3;GlFmq03A08nB~5_=epO83 z+5oW+^~9qo$npuDGIl*PUt0rrNerr4Uq*OLka>>*pb-eZ^Hh2|>^+CvHdaP$ETdyO zXBIip5b%;~v;e<~%b|~?662u&V%>JU%tb?fQ&!gus?)$-y?{^m_c9Ij8NC}h+X_j3 z=IiqC Ic_$wf^9nHi89n$7kR;KB5R5vYPr2;LNk$(o;|C-5_Vjn#y|xV{#M zl@sdEcwo~i=)BZ~rm(2@fjo3Hz`(JAzUaEF(N@eItX7Z2lQ5Db1fZ8H6k*y1AIn#2 zd=c4lc=`6+{@jq%_zn?tqcsM%!a@XaOSAfx<5&}cseUp^EY%8{L56zI(T5G {UDAg8~dBqS97Rjhu(@UrT zr(^F3EWP+$ *p6er01&koRoP6ZT5+`Uqy5V*<-aBFo*xb>ELf%qIrg8fEEpHIoX&rQ@#`jnN62i z%E?6?V+tPMT%x#M08dJEzePKbbrR>Q6iCy0bZ_EH*}~qXyWM!8uZad*JeKl7m~<=6 zQ}Y*lmg*tp(;D>mWEqcrJt1BDhf=)~n1CLX$F8+jd!7bpT;bGtE~0>-5g~S4BeDJD z*)E#sDq52(BB**VrG_BWDqxg!{HWez<$G)8knS8hur@BpjMFJ7y;CHBH?O(h)s~wU zIhSABt$2ZRs0VY{ZL~x+I#j@kBmG9a6mv}%-R%nBrz+9O4!KGW+ll(7ogK}l-vY-j zLK2g-t?N6d8vfLYUj~ (T(B)}wRD2I{ zr?j``cE1wqK6G2Lzp?;WmNeAA?~);!6Q{j~>7?X5c&e$p@)**pS8bD0E mtuGkI-JF3^slc0PfEsWLF>1vbe(&f0Ks=5UnHia7FhUpn>E5@E6`VAalRv&e za*H0);spom%?N*-yHZq^1rIo6D-)(zGq$ZEHOxA#*QphKynd3I-@~E)>t_ek*3(<6 zGKqIU9~Jnh7!68RI0C&9d+ntYz*W=&sQP8213jjKezEZBy)@x~^OM@YV|icC15zR; zd5tQ(5-Jlh#ET+mF2ffR=$umc6YsD-YS=VV0A(>K_B+ulccH{QJfc;|?#0TC%wfVB zDQH8U2nmB4-YV( rHdEZmD$IthbdE@Ykwf%w~`ftFd+?m qLwjQ;z zFx*4d9E1`2)GU2#$960gqp*krh1O<+hmyltKEUx<06IX$zhsZp#Ck%KuDhX>R9&|@ zGy%eibe64F4j8 ^oP1tc!4YZX{vV Ls!Uw$s`&cH?QX=Ove{dHMtd4H-L=}IBuI;63MUK9D$VDt$o z <>w+y1rC7$8GLxBrw?op{3%(G>6SuwXv`quzFAXtx#M;ek<3lX+iVp`JWvtB7oY$JPFkvy&;_i6Bw%P!!7%61z!? z-Lbi!9JCb^9mdxF7pT=C)=VyvSfvc$BL9Z|OP328qYz3`m%Cypyl47N!IkaH>GC8s z2d1UfTP|8OHk&D#xQI<5x%` swNQa8|wdHlGk0CQ9C6Qo}zjJqD=e$ zBXvYUNY)Cwn}L9YLu1!2U+zO2XKJfgX)?})5=}zl^+9Gyno@@P{{dv>c%p_k2mNJX zWG=E?$YcCy>`duwT0>uBm{>9R-}P4)bvIQ>PedsuETkcQWEZdsIb=tWBfc=B$Q$C^ z)l@>b#kUFb?WC(m6#)&9JbL@ZhsxxyfrK=|2Bq}Y=N%K@H8*q}o9QaLQSdJvodzjO zM84?-N!NCvVTHh~37(}>2o0_9L(2Nhly@bvbE8^$*V@lnkuh6%?vBw1i1{Fy);6Jd z1@qpdWr_kUCC&?i3hXHaK?ckqRr}ZwAkPR(Xkj|Yp0&wx5tA5JMk4HnT11POMY`~K zc8}>KN&C{}R!X*C9K>rx_wWcoOg)B&A#~@EDw?6&e@3jqi_*gTJH$HddM}{KL1^Zf zr3d8<#qF~kTBJ%FNvvE(=hXm_mXe_)^&=hOVdUe%8DBQJ7ICDnTAMBvJG~rXWer+N zd$O3aV2Xah8wE|K5|Iw;PxSs>_KNw3DPtvp!Y&OzvEhh_h>G)Z^og%uohZlS^DSO5 zC W6eqb mG}!%e++G(pMK!=kHl zt$M`mV!0% x%+YSnP_TYcUC23puBD8ag{d;@6_ipKk7L|7EdlJC4sv>low0H zer(;Tdh2t}Yk#{!0`}m$(KY!yHBpNCXcG8g&fG$q8TP}7 8y6#K^s{8SA3~N`&w^aSKvj_iy{;W=( zn*`$_F{jc8F@UXkXX-*{+GAa%S4uZQPOM< w6rbZb=UZT#yH#jG*TnvJGt~BnyQu`@np9* zfvPeB67T&%+##~1KO%V2rgCGn;R8=_l3TqeetOVR@<{9DM6w(bS|Ji&Ir-By4_1kR z$?a3mZ>5ntA|wb0H2A|n^$sS@has;l`b-(k)_|>7G&UJ#yBaB2ektt{9v#26&_BJN ztI;mw+}fc(_D513R0DKd2o4RKNxOBzZqV$q!kVVT7oH@+uF1IH=t!`Zq;xNgy}z|> zy+aowI7C$jTT$}2$<`Hlp2O1G?5Y|yAp#C(ixD;oZk@a}11h8;#TySy;C-&6(W2CP zUGUMfUNSn1R+OP!rw4V>cG7d)+i1`4?@1A)v0b>~S8fRhl~F*J11)abJwAtsUW%$2*vs8@oi^J>hFgCYm`U!tI-G8!4Ez1b*5*}e zNOO;YW0!zI68%Xx^f{(k#cn0mD`d(*k%E}7jy<6?Y+ikQ8DZ6KWHzOk`)th61Y=3H zVv$bo$lv@EzDA8Ol*Wtjj<019CjNJv;bx&BVk?awLVTe|M?ARo%FFBqh2JYDA3KrV zW)`EQ^3?w(7NG?*_Suq*70VsTiks0aueI_)58o^-#ezR@J}XZk!I}nJb!Pm~dRvg& z2Is+eR&9@iLWNNHpbF^*h(+`G?+S)Q3kTf`oE>d@NnYmhYwj<-zToCzG b(;)qI>jv0FdWO8TH+8E|%1nx@J*((w8I=0YCc1GND^z`xDZ zM(~?)cDJxL3!v4%$VV81=MNz$VFTSGiJi)LdPWeGQj`U~p)eg* j}!1@txxOe?C7{S(<|@ z^riLUillTki6*#Ey*wwP(lMTJ90K8o&0<;KMPGqf_hI+gwt()iItJhUpSldu1NF!b zBB_3L#lD0l8ymX#Zkn!Yig2h<6P>YycqJ!a$ZsF7m0J|L=r~i%0Aa6l<>t&ST`z&D z_@wY*+(i`w_YR{9$=LEGGPKE3TTg$=;2F;}0H##bl_>*jn#eHFa%08$w`LEfol)h% z&S wZ!u(i)jrTXmZX(9fIJ0`$xH)_PeBd1Qks88vxih zB9gdb(e;E_*R6(4Y>@-(2j$cMF%Yz&J3xQI#~J1)JU;fQ +Ebq zN14u^=l!a(iC>`XTHd$*ix^?{jy=5NZUN{*9>GtFB(=8jOj?X=%G`mw+Q{@ee-ze< z(neh=d8@MO`c3S?GE9SpFIY9qw;SuUX;M~GoNZMf%puT*XrymFq>%&8{GYhxh9I#M zG=IC!krH0rE1G^#h~y{sBPhJn4}zKag%$@^D<`NTsELdBHJ5{PA%VfJKg>94gX>i; zxxj*(*8`K8{%Vg2(tTbpzg&@l-V_wHD_RiA204nxa)VH^A5;DGzX5<*k?FdTBJnK% z{H%x`HcM@!y5{2y `Q zkR%(3$>t3An9w3Vq2t264hmuWCF=9}zfB8}LFYw=vWN6soF0w*0@_c}7N(q=^LiTT zy_iI7#r-!j8=;e2Z54m);6^6Plri}YQV9qr3KeB}oOJjDddmmf?@IRipR3qb@pLV} z1tk?ATBp-Ahtvyns;RTO%VXrEYfXYk7OBBP-aktM=NdAQ zw4!CO+a@xm^EiEvQHWhOPLB3qPFooC+Lm_lQvlnf2X&t>grlpb<96_twUZ@V<6gZ% z! fDHf1cjE$b-y`ckkkKWMPNnT8)5wa9O1#aB6kIACKVyKGcg#G0>JdJ-|&i8N0sP z&UG^NVI%MdEy8;ZY`i0Gk+N18jUI_}qznr0O0v<_3B_{?=l7ile_Mefm@$r6 XMu;h+ v}A*x$-Z8>A2{%2KKXIDW*2|k=J#d3u;^;+ul9kViM4dQ0pAQ2_Y8;MzA zEuZin$vlMo7ct8x#y4_|8jbHFwYy{Wn!?H#etM;H9g+uHQ2-Bh>hy^
==Er~GKU)ReUwB~RwR-jqxAZFw{&JSgqmlGc|K4*{+Z?H^N zB^T_eC@(-y?!16kng;)Wndv{9#8==zeH`P{pRKv}9T=dfwl4N@G8J+!ZuX;+mSnZr z S@uCN!_d>?^T=xCj2$pRhsh!rCbydCxL^J(x{RX;IGPNIFJt~6 zG=aS`KPBGceLXHwE!b>lhWX;qb{E!@g&~Uz{-}V~r@hvNA}3qjtdax*@x^(3m+xY5 z6m3otraIB14bUkC{qlsys6ci`p|HbVCMed1XTdVOyA~HD*~LL!e*l;S=@Z3F(}v!= zD$OvT__K_g0hKdv2t&ztD3 f9RX&; ;HEM zaA>Bh-+*^_Yd&CTBH*6A1L^U*CPF)=u6b(H04ckDZOkJy@pS~@`OR1LR#Ytzk0|e- zsh^{0)l30DLoo)T!Jw1|OdSm}sue@|Y$^g)ylDv=vw;r}aY+{Z;r|D-b#%&OOPrz? zkXwzB%of=(#tjCVEeGkQg_1xi$APa2RTU=JytEKfoYm_@MH2QsK1HD?B*2+|bl~ zUl5FYHuqFBV}HlN#1~&YQ7 z}9J}Ln#!rpz zuSNcf0vMQ>FVxu?@7#(*1iQR8#=i8ZTKzT6=4kXaQ52^?F(m~XcR>C<2P?x;M4{jP zyL6m6WeUTh <*q_t*;e>-8!MXqeZ zVb%8SHl(A_r`6$O!y~d*6(QY~hSYmAO34u>q2m~8$njT _JG*D=gPEF$v=pa>ZJU0$QvabbI55nGb%S(d~c{0$6 z4i!Kqo*Z3@4OjCKyYH+5?1B_S)WvFN>PbZwCLqf$-w$Sg8S}g1z CxHoSV~yfq7lb)zWtKAMRTeW2JxU*W8uN55ASxug?fZXI8%&qx zQc6u|&7Xq_ic<(SjCH)F?2oP<7=tKRR~rta?9nfUN`NTvn|{lEC4ru+fa*dsuOqh^ z4&@Z4!&6LB;?+jLVd&x$_erk6lMO+;mc83>hmS(f@D=1_T93ln#QX&xhB$H0ADf}| z`hwVAZ%=TKc)e_z>9s43pt*nCci2ZC|GF~|Q?tI(wwtcUJ?* W-`R5QLk|1zC=*80#Wz`&L ~l_4XiDX*6#B@; z)<7EqpZSx-CtuC))IU7NP{6n!W$Pz$Ellld#eduAChYvC!tuk=vk^E~=_h+ntPmXH zTsYL{bao}7)fMq3GEnIMsvn0d_YQwz>UiXaW=RM| |sOg42Cfa zm9htA?Z@;v?>`*P+U8CNk&9y@W7>YyGg{MlJMlO2NzM2UQhsBtQGwe@zuxhzK$H@q znYs}$%zq%qDr*y?`Mv89GHi4%xeM-x{xe%iOYV zRQ;!5u&^V8_&eL}r!U>{wEuli3jf;tT_tm)o0Y+YLNNkyn}_q+@+X;M!<`DauT*_x z%3tJP=KWTZC4T4|eQJa#3SSWkCu2+HtfZ`u3nVm)+z}sRP}fv2`wWOKya$8u4S_cb z$72}^2CxgdV|xud#?YrVn&t`iNUMgV++K&P%+j}Zc>lzB`Ud55-z6Zah|lr{DnMI& z6}_(mr dCYLc&ISbz+ESqg*2YJ$YtpA50_m}Z07<}FBN};g=`{!ns z2 2Yj!jAk~*aj$#U^9k){9{ zpTsYN-uyC*<$mFlqDWd3uIIT?$OFD_sm=F&6Na(FT1g}=$4B6DP}kP%@Ugd$=hgSX zeyOfZIYGwr8~T5-;yU}d%?5vWtd14atkr5m#}9$Lmg3_?tw0%IUS)9}rQpar<1{0F z=iq|vgRZ(_MO8Q-G*|t|^4>-uJ#8r{wML;MoV|SGGVz K$S@g?bDE6JWM(LapX|O>7R2kimc&hQwI>L_MCs zQXr{* P zqjo6^@2oib2DM;?LD <<$lU`);)ZRLaS-yx4yA@}%tt+`NAQ|06ak#wRrr~EsrS4r2 zRWOAssx$XBY>P^1yX0=#gybJ=5-Lw6lYpBf?7U@uP3)w5;n#}v(&3yWiI~s$v#e1V zNXS&XM>7jPQH&mOeD|j2`Tfvuqpt(=Gs2OJ%VzBREe8!AxF90Z87X(r$qx0c8E&`E zIJiZwjM)*9@Aaas(^%&-pMX+Cf@w8=kX_n3DTfocEHjp`URLin9G#r1x_H?My&YK5 zb8m9udruo{-!2z2()o&e_~NkzLb)3|Oh&;Z9k2gpU#??wFgTYOM6?NW9XL{e_Nh{{ zmXmFDA($M4;wS6%T>)60kdS=Zax?goiCShaCM<2ojkV?cJCbwpc8=FR{NC;Ao1XV} zw_0zFnn2`OwAa( 08e3ktwJJmzKG^NgELnXC~Y{Q?nN1dhsvqY{g}`3swzG!s#5 z4BX{wpj%PPSi%jqdAXXAI{f*AMM_?_0JRsv=cV$=FaYwUjh>N0EGo#*>V%0lrVvJb zs;=?U)#-wp0OP|bl3HZ=Q>B}}MWw4c7@V!1ahZwfWOO<4e`v>U_zQ#J5KYZNKTNw1 zK1j=tnl$7V 8I)Am8|CweErz$ed$Y8YtH6EKdLDyNjMd=!~#C^(Hy1eVcR zd=tlWd@E%d{NrVQz3LWiy`Pz`w-VhhfPYqcEvNpLB!U5;0|`A$69jiOE;VavO&;8l zR7Xg#i+5E+I3t?Y4R`4Je4u4IwU+bh7(|D%Jmj_%8-I`A7JSwa&}Ozqi=y9hr@@%T zf;hUw>M#IeL-#?{$(kRE1s{y?7gXXB05rD@50kNh-G#b(-ljLF*q2aKfAWn>x{Qj* z*5&((s|38KgKq!-WBQ1@Ht%bMKOnh4Bf*!*L8pv(u1UmMDFTb7;|~nsk4+dAR2Z)1 z<5BR|L=u-KPcAI(rVeCw6cWe64i*p)-oFsW@!&wQVoM+)df(37S)l`$jnF}CJtH0c zcQD%x()Bp>frGh+>i9o8;Zop?# wSd?MRL`DG(q0b@vZ z@G- ugKeT-y)ww -eamoQ=@PASd%jBH#cfC-RXWAV Sq3#WtoAC_BcShRt(5$8Y;I%0pZO;_j$Keh*L1zK{MB81~`Ya z4I+`{|H^2V=_yg$Y^sM%YvDN=wur1@7QPntUtqO**K7Ys2AOx!|Jw=OX2E3=8KHkg zKSvyE$oiqmLx#U>jGSY}p|}W))@59Pr@U~WQE8@S@`tC=lq))ptY`bBG-u(?Znb=3tYguOLJ`Ko*K@Q-BbM|Kal4@_lm)o0rIH|JTENgtfws@cwl5 z!Mals_ uzd zc(xy}N{;<3#MVMYC@& LTgR &j(0{;?`{X344OX71dy|+i6d{Z5B?iN8+nOf6VNH^-zA_6D|Yx$(b zN;0HfEe<(f&p}wL+MT4{k PmodpKVhS)jrx`)MuKH+IseQO;QcmKoqX{w{ z)>fm(8O;P&xZC)$)Ws@8=?ZAk=YYxkU*{_>X0z_p`&Ej@ZQj!NzI54UMojUw=Y@BA z+0t{In<_ey5vtA=;WH@C>P(?Sf+7*XZn1?%mnz{V>+e9l0O)e&BTHYnVoL*#@(?j- z&OcSE?EbfWyWN=OV4Y^$x6Vov9AMX%EC4K;Q5 TA-eV~P*|zOgnbZhoQY{4PI-m6YwxX*L9E5Wl)m%p{q(Te{%5%CpmVn>%3br5 zFi~LjgM{r4yOi%%FaOvUmX$u#*tM#cKNj_m5jMkQhRe-fnG@e{E~|sin|t#!AI1Ph z6u1`mAn(rV=2YFOPwYTfu~aD)=K`fgU!!z#ssfrj-DGrM;dg(yYye{2#KV9^g=0@i zNqF4r`q&(v9J-Ny7Z?$h zhbP>7SpDGf_H8;PHFFWWqHArYq+1@CQ^N|(rXwK4w>Ja;Nt}*k`0Af?Ho4xVdYK;T z`pt6~;4Sw8R?EUU8_C$TJ>InsENrd$6L6J7130eRQXCo^DdiFlBv2dQAxu*UaPO5y zpb6x^Je2FA_pl;=Vx6e;dO0& oB%U8&g YCymQ7mTi|H(hY! z`sQB< JI(0W?;UiUZn6nmF~9GS6QsFmGQzGq><6s|3L((8Xi3@YX%KrhZUETJ)Zo z_oGQyeE!rmLC+cT$Z9}YW@V)km fsYuWQrgw5PFvpj6dRzvOC`mc{fittq` zq w0~saqAM1?Ugz z4>5HH>jg1i;SsG==m(S7@G!2!2|J}nj%%9Br Uq2Dt*ze#fsV{thYz17q}yfEPGvl`fioK&$F1P&C3Yx3&H zx_h>@j1Mbuz*+NI?pui~&pLBu;!)-Cy%%!sr404opHC%8J;rw@Ns3W#yP5dz8&P#= z>5kS$fEBon7~Pz{VT~{5dOwGB2f}3jYL6Xw)5lnchjSKd8LBT`6j}nE+bY}e6KVqP z+BV`3WJ@5!T6AeKSfxA_Np!-V<+N&h*rk`<$LlbE0}bL-d+ 5WGfYti6|Ga>K0ltXS#RT#qP52~cP4V{;;L zo;Xm=?T)7+** Tn?wq?j2w#{wL9^jT7J^znBFU)wt zkDHvSJ0U1RN(tdp7c3e}vxO-BZ+!QuY^)$%gH3RcS<1D7BqNOabKGL|0scu7cffkO zk&X&b6j_|>bgl+A`yBU3+EJ1i69=(17kcSfe1OCY@l2%?A5=Gac(4+%4sw^>$rmZj zg6QdN19a&B4d(x_NGF%}3$% l*=h4b*eiwq$2+ZVmx^-*;?uIiuw&b>(~vS-@)BT@7K~L9Lqy!9rY9j+x(TE3 zb>E#=i`BTPIM$Vvz 7;2v#7o;V_B{ z^l~qfG8ASb8dH?qf@Q+2;{O*Et0wkw?mWu(bhH>z!3xTCj R=1by*5a z(llVnSV_lDv&kC-$);3smo158!|+7Wv1eEGLyHmObu~}G*!jinOa%)^RZNi*fo4tJ z?Q8w*`Iif6Z}9Um|5zj1ZpxS#S&Fo!-caoR3ZS)$b5I@ZH`elUgH$2FPh&FoBeEpE zpv~Fs-)`tIPR6;1x_spGN{#AA(y+)`K;5nuJ0z*6GoHMwW_!gi?;N*P-lg!*^F^7@ z (k|U&9}{M!0R2$=4ERBt;7>`f6LTV=jXegj^cCI>QaL- zqS5E>XS&FJl`Z`Z>krUH0k+T3Qx$?{MLH*HYAC {#->cQlKsQ!`e#lcw1IwE)LzVJKjgOa_=d>R*j}Yhw)|u