From 74c1836184adccce4b876ddfb736567eb87c6e1d Mon Sep 17 00:00:00 2001 From: Robert Ly Date: Mon, 9 Jan 2012 17:30:09 -0800 Subject: [PATCH] updating the SampleSyncAdapter sample to add stream item and photo code Change-Id: Ic5f16194fc0d0314d9170a8598eccc17b6a4e26c --- samples/SampleSyncAdapter/AndroidManifest.xml | 6 +- samples/SampleSyncAdapter/res/raw/img1.jpg | Bin 0 -> 70349 bytes .../samplesync/platform/BatchOperation.java | 16 +-- .../samplesync/platform/ContactManager.java | 101 +++++++++++++++++- .../samplesync/syncadapter/SyncAdapter.java | 15 +++ 5 files changed, 130 insertions(+), 8 deletions(-) create mode 100644 samples/SampleSyncAdapter/res/raw/img1.jpg diff --git a/samples/SampleSyncAdapter/AndroidManifest.xml b/samples/SampleSyncAdapter/AndroidManifest.xml index 285abfba8..48f6fadcd 100644 --- a/samples/SampleSyncAdapter/AndroidManifest.xml +++ b/samples/SampleSyncAdapter/AndroidManifest.xml @@ -45,8 +45,12 @@ android:name="android.permission.READ_SYNC_SETTINGS" /> + + - + v#==*zr@9+P9-v4^%^UR#N=iGD8xzBUYIrrTA5XXu0z(qA>Rb_yLgamj5egNVk zg@WpX2e2nPTFR=Al|TdlP~0_p`O=Y;3jmy)J=}Cu6uAta8F5if0HnYbfCgX#Xv{3! zU*3Q6kJ-!Pr3VNHp22Sa)PFdG&HsV3|JLj2JOF8GL72|srP~>O4+u+I*qT{_ zdXj_i9h?84G5-(P$?+A~@87}zeqXS1eyR)p-T-BSTe&O!3nqDOY4%VZtQQ33{bOnM zPzi+ZfN-|8ow6zj-vqB|Yd7Vm|G*@-?L1WV{((vLogFnF{|jbyHrLbwVURxw`AZK) zoqxfv-92^Bc>b-oH&c58!fYUoj)RN(8O5=UR#2b%waN8DcNob}5M z(tLaA`1gK+vXQm{&j3fj3a|s5!Ea}P3(x^n07XCmcnP=xE`T+Nu>&dWz}hps6SZ3`@iW0 z{!=<@=l5*?#&DhWVHKu{{tqp!{-Y-Wz#QavruCWjo*?W9{Hj_ZM%Oh z>wow4i@efg_(Hq?e@X+&{y(+)XQa=x`p=QK_z$}O9BV6bPV#%?s^pU7QUDh@lw5&a zp8O&BPlo*Qzgs*7$I1@y0_AoCr8fh0a0Yxp?0?_s{~lZ5pScD;G2lE>v2wO@v$Nnj zoBvPTT&(RJt^OkZ`TBoA{|Dv&9e8F}{=pl)0)TvX0Jtpr-*pE%e{BfKrT+h}^UweQ zxoyxM4E%T9O>jQ2AOWCK+~Sp+=fCe||~RN&kz2)G(dwzhIKXGg{&l@Bkn^D%+_|%h`aCTSHT8w_=g!g4(_EmX0}D0HMFx60hBNq#$ysx- z6(u=2B^~uS>NAS}Z-v+ZFq|VfBsC->;RZ+1hUxkE}jGTg! z3Y3WkBq+NGkdly*k&=^v@`3|F5&+@>as~>OIvr03Q(xODk&|TRVGq zk5`^v-afv;Z$d)D-iAlS#eYcnnD{9v`D@0v%))FF54{*by-3N)$;heB z^dcek0xvQKa*AvBC>if-Q<=FkaSI2XV^)m)^0SeeM?`0r#oTT1{3Tw|h3k7~s{PgM z|D9s5|9@%rZ^iywuSwtn83}mv$QS@9fX97}xC#8d(vw$N1!kXpd-PTNqt}aEl#Vyc z((E1lS2(5jmFw~Xn2KE@aDPA4^0M@Zar_t;qb&{Rpt4U<$WamI=J955Mr|ZjYb1=J z`jrNaX4(;oHp1OhH4o8fKm=@Lta(%h*O|L)A2pY#+{2OW(02 z&paYP;k%n#QW&-iX|MQ%E%M19Z(`qNWaNK6f|xIai^ozA)RWq3|NJcmWm1hL0`M

Yc(w;?5{h_r8{8kZ9Q}Eq(&QTomH^$=a%~sF7Lz%iJr&*$fAO>9eGm|fi&r- zaYR5e+M*Y0Nf;L<0=B8ASQ@>endN?ZR_J02$5MdvL-%v`PaRu|6W~6Fi(@J3?!)9*rU# zGY`7EOctlMiyx;V7-MuU5p*Jc7a-;{VdYm#BUim67iRX~eRVl!0gad*1a-|ci7^tE zb2u3Rg?s%SK8%i_oeLwdY*5wXr5C555jA5l3-B&FV#b^=V^!vNn%Ri}jNhm>?4-dK z>>ri%_f{{UkswjPFCIPVwTAn*`up(-iY;8jImJp<18KH0CuGcuC1yO7X_z9 z0d0tJ&w0L1xQ>~ckJ<9GnGjF;{+tNdKF_eY=ATVgz7!i2^*Lfs!+>z!U{_P-#Vqr# zO1sO|j^<+vja{+c>PLS5$J}C9j(E@GLQ4~$59PCs4!6n!7%zuk9{pkR%;7zJQe4x0 z`GttdagouC+N#ppesoN@{LKx^n3OFxOqntf2y6~I)y{@wv!QUz@hwOzp@sel^~I28 zi`%bK-L;A#@2>kBB!aU>1!3zDY3-*K2t8jbn*ZoQfxjZ7bc{arMMweMSJiAmcoWtX zJGUk!omS-f3fb`f_QmAu6*wQvgT``rh-gFmfwgD@mdprzUP9rc?$fbW?pS_|J{KGz ze!6%vHbpXGUHM!Kjlt&^e&HtqG)43EseB$ove)h`2T*(V`lDY(ehRwyAajxkjL}N7 z5P=B|os<@~ddZO+T9yyBmcJ%^;*88AjHAlXIX5lwS!L=M>2H1WmyV+3OtOu3-zN-1 z%A9`RaGBIv(r7Q5sFk3tBm#qql`_#T`fl#I_I%L8-R2Xvrpgf^lXC3F+Uax^q4Zb7 zc456Ze5k_Wcn$*Imz>YRNI|7H@IV7Gzdf3zvZbH3m<_C|+50@EMe&#z40WNjU$_Zw z`0*M(hni3pBSro>2y>tmIEP^L*N1GtCE$bZf>Nsf4sOZ_>f4w03|c%Ip_l8SYY@;X zG}(CJaFffKQ+-eA7oH7m5&jVL4Cw}It@db*1@?l`fl6y!-ff#pM1cF3`%?eg!OE$< zW^_aaZ1J9V{SFTifQU7#M&W<;59P{>G+dRt`GYgdX3uYN7RhYqgna-XC?^Di;QaCAE@^O^rLtuvkPTv=)(h ziEJ~)WeS20El$eNnmlONce~YSJYMkWkO(;6-V%jPg`qRbtE|iLMIJLx5ErDs2bpo< zelZhXooEhg+}VFL)X~#^J(44SLxYd{Adaxrdl%~Dftor%SC@Mj){FSFk9n_crLk!v z5phoo$5g?mB$6;LK6JUd1fN!G;7reH;wA1pJFT`PhT*SM+@9iuPP6cOF}6HV*kO=e zp_^NIME|>dm~h?|`{3DR*a*}H8CHFo-Cdrrcyi79Dmv_K6kfxZG7&U4dLul+UJ(eZ zxwoT^c}a8$`I9pw?M|&CuwGF(_n6aCi*#GwMIvC1Hp3-XGJF)hY%Qs`NBMbWm_IJ{I7!u9j4Ni zp>vNh6ARI|(a*^39E!q4JJsU@Q*54|l(g}mNR?pL_5_DXY88(oq-jzt5xWH#g4`d8 zaw1^8Clun(w85Cxrz^KbH0wAMQ-s7v|kksAFt!gOQ!JE5uoomC@li3~h(6 zD!?I%)**BRF*_qfko>jTMFEI$NxU?DxFy+jr*9UYobQS(t9GuLy`;|Uq556N{L86% zwzB9g;-c)WUDW*8+uDGo08?7}rpfCmGq728+|7*b>_2_&=X0fagY+m7ty&QT03);u zGsFb#@wb%AU*0WGoT+rs~R^{hpVP;fahlRkHiNO3%2-7Qi&OiDnih52A zRAqNW;@X`ef1MjubyZOoLcH3-`ASty+vXWp)*^5?d=bh4$pQZbE9E`y%R<-DH%fbK zK|*liR$c46hX+<;3b*aq{jIzJ$lb2QNT0#5!B94vhu z%24fL() zoeIy_2gXVLXpJ|43khlmFaP+4G`+rSR0)~VLMQ#gsV}7(%nLPN)%26QJ#r#1GP?PV zpLhSFh#Ad01%R*@CcAaD;{>@7wu#TdL<^V=mzJMX`=-q+7eK`#s86=K6OLqp%lW?; z$*jVJ?Lk`EGHas~hVN{rb#-0){i8|G32pxC;J{n3sqbh-Lw=GyOv>jH1zr2h&v;BS z-eb?JsVHRbLLm`Yfb5B$X2rmH3W}$pZ~Uc%6_fonQj1|T5}nRrR6uHPaH%-|s(`P< zB~+Ts{RN@(Q(yDsP@#uQ*&S~_`ylKq8{%MAnnw~<2J#{?&0``I49{jXWt^g?#Ihi- zUnQ=}F&@(EIvbpf4aD7dY`;8N5#{`xLu`OB@Q8&+vc>+IcC`hvQd-}^juX;c(3fy$ zh<_)k@aW36e`Wtnv>OqSU8|=1K+%6io_dr!(qr_!u~7cly{rSVr-v*-NzSjHQ%(nU z1SpHdbR?sfzS~~B(*~u*c#dz;NEuUnXn0dd8lQTsB3rb(TEzQaF`sc*>jxzRGt#Cw z>aB&$%bcKt8F8Ph*>n~Smmd{dlx`&J`ufPM5P<>xe4#L|R}?NTHoP_$e;*5BY+Q^^ zsgL**todb(nM2H6*5W2j9HaAS=c_76MZtLw?f+q+I`xsTBQQ2umu}BgsG7D&&r8x0 zLg+gOtLg9eoJ}p!!deFD9v3UEki2KDi2eLh>ZEWAl}X~h7Fl!-(~Pw~=P^g~2WrXq zCV6$AmkfbBIL|JV=R#nBFfkx8DjqHP<2WzF;BaVF_Yu0t=78_~WntsDyOh)}Jg%mf zk;&^dr@GJh9tA(za^z`fkg4x~kGi?GTH{E#k}l}|a~BaFWbWa|NM5hX-TIQ3urs@{ z^`s&gr%XZw!Zqs2XH{Fj;)%d^z)szkX;rY!v)(V>XAqD(J*$(vu?RC-byZ_5Gh;`kWM| z9H!@`@!W{KE~k=+YF zT5I2X?*46@ZMtZ6W)y0GoSRBZy!b{gE_BmO2$8vPydpsH%aJt82-6^r_3A7UXfwE%TI4Ppyh^|v~;rLXxVgA;D zxumuVi5}dBug*HY-9$gfmRn~zs3SXaukrgO*3~c8hu_IVFu8@eG+Ue8cS|<{uiOdy z%+{Cupk_D65|L@sgZEht!TQcZWTytB61YxQITV!}ks+t%dWSM$C&4fe#`_um&4)8 zI9G=4yNLTwB;LF-s|={ol;VR{%e4)I9OAvF6f9a>8~gDx6&O9LHt8$tVx6bP6_}?? z3r>2B8mnm&Qc_Vwz{_Pn*URYoNpV>%A+1^Sg@!jaTnSebU9vKt%ikJF zY)tfJ>m&k<*l-K4x9LreT+wy=kI3WK6*v}Ecm(w&ct(VnN0k{bE{vSsZM8N2!>LCq za%rBPLi09F&9AB&{aY&wFQs~Q)tY$x>^_e9L@poaX1%<^N3&%#WY6gotMJL~UfQn@ z9WA@whu^jaECX>F$iB3X2h;Ua-f8-#nu9~>j`>`i?PZ?Q6mt`YziYpKS9)LiCDeVr z-Bt7UCY_Gq?2U<=wx3_oHfA3eQm;kKjoBDSM!GFrn7@iS+~iN)@6+NTAF}VE4kKSe zJ@I8bwOOEQLv7Yv+J(eSVJ#ZQdVa1hDsnbfkjC9fnhr6fe0HCf{lywb%%@L*dW>^H zS^MX>=3_cW%3eYXP~*esx1(ZJcL+58>Z5a}d(1|zHM_6~8!m~rhnU@>3z(&?(G%?( zlCf%)e;VPkU@$p^iEQ(PvtZa4HfW9hOf^hKO-A=+S}-}OM|ND|ao&lkWiZmo^`;Ge zt@lk2 z^VDD(iP<=haI{aZIQd`|FsLd35|8&atQA)W2C-k&uY< z*D6KfY1&FGRo9f5pOE}-7fg~cLIf@^V??mmyn|bk-Lr7lFK2q7=#{l@>?0B&oNuY! z30nbIVX>&)Cp(PYx$r?0HI6*)Qt6N3Z84vveol|VAIguwDbv$>OO7(3pB4WZPCbJe zYx$w>Jv5_ib5JC>N|Eft`Z0E#2>5)8gO?pwv_YS2D>^~P*U%|BLXFqe>r*1v^x&_&)o_X6kwa9 z#eP9;rj+j^=W3jnK3k`gb;ar}PQ19HAG3xP+*ypl9y_H4h&-l#oX3%>RPo-+8v5DT zndbumKjn3`M1$$v$GcP$IxJMjFo_8-rxhsbjQKB}ZaQCMA4AE=)k{_U2YgVuGvX&< z``VXpIdZYbBp%Q_pMqNw@JlwaQ=%kZz4tctq1Fs97NN+^Wzb$BeD_NFGdXSVS8z`& zHsF#hoZ_nZ@f&SB>(82Cx2U+Mn@DbcT0dV~bX>%a`tFcXGW_hBSFj@w7cEM%qE8Y6YEDQHO!$7s zjPy;QQgFgaNZ~)khrPa>$V~D_Khm^50u3^6uCzn8Oe;Y1={?kAE^N@r@Ip}jEcT)T z86Wm4q7~U4rSAH`ZeHpC@CcSTyL*Z*dK#&8i;?9%W1Aw!)miQ9P)~Zl(W5QH#7UQU zO7!zDS|21kl&>M&cf1j($@iSP?iT}tWB4s7Ob%9I6`@89B z{&AlE(Hout4h6p&!U{V`?}ik+gOtNPX zJjl0K{26RJncwae`<`y}s7Aj2$asrX>f*<{Cx$>g803i%j)n~+Ctm~7EqdhLpWpUF zco4oDgE^7exgXZAL`69-w+@FMRmnw@*{;hDk*0AmyrMnu0k$^q8|C=h)R69&_f9>} z$*#6tAOe2aF^#FA67FhPg4@r{lMfP5o4#4C=c}NE{cYRAlP-MEvYz5cOXmm{BTV=Vq&&XA_u<&y@@A@O3)| z5`nwHa#PqbfvKV5l?3w_G(M(=RKgr5Qtd+cjrggdz&on9^c!9HyEln|L_Bf_9EWA} zVeU|$UQSnYNgyPaP793x{?=*TRdt)tsN(6Bc_Y;iwho>e%2mCmEXjQ}5;@CpqHv5b z2CD+)9xMnZP`!oPLrH8C-`9+*=PMs;$0tPG{Ls($*{`Sj$|;#~L7~QC42!?P-qx^a zV%m*8mkI5u+{r1SPZxcG?F<4bKmWW&qt>M2DvscZ;XUjb!T-^P_-`$ z0UNt~O0&$W@-_KAuG2Iq0fbT}%-o5v1~f)V(N-9-e%GR;i;1y2&PN%OO$ z@=r9iG7V$<#gvtM0fX4wl(aJ0eEU3z8j#0xn@8m0TS`?~fWJ*vy{Nt*ht9dqq;|=f;<4rX!wbc}xAi)ndtJ|6PhVUV;9b zvO1fP1#6t| za_@dZp42bZUnLqPEHnJHoMI7eT?7ghT4%5=p5LyX-elxMA4bO8})ya#otlNw1S0<^Uv*+ntSsy2b1t3i;Rg5WrUyF`<_CV1v+y$CX7R^NUl60@h8g~q`&|7PSk(xNd5CmLO&yh@xeNoiXwOQsb2`}PkF;M^f*(JJ)vEwm;EzP zH5?DV1T@;w)!vchRV`h^M}w4515u-00>+Hmw?ZALlNiAai~#t8yZd$H#Rq<(^CDJ^$5VuRRrTbtj0d z+)DnwX_llpR~&$({nUy0xy`exwKD^Cof6}HXC5VS$-!R296B2i=CzlFJFJE;Vchj5 zwMyh4&_GN4G51#kqV7SYL8rWa(6M%`=xe$#}8o2f;~EI3nhz~tM=cQK}bHH z)&FIN*1g1j<_5_;ywA3h@a>KS*Tj9-j^cgApW_nv7|*#>=$RLHj~XE<*C-9LHaiKA z+QG8&$P8nTU8X(zS4qsqTW<_e6eR@j`#1G4qJ$CfE$q7q+{VX=AB9e}$dr4yrm>f> zR79QknG1iM@~9ghoqkfm*C!CnaxwS@njedT*iRS=8)yUVxc&`yo;SD>3c=2#LX z5v~gLkcpda@miq+Ljh;Pbr1o%<>&Ai%kbMA0m!b~UI7dC#x^}tCq>3`GS-zF-0<=H ztv|}H1;IWWZ9_LMgWfjHpd10!8u*}W#)oHZc(BAC@_i8r#d;O3gN}UK*4H=p_SU7| z^TD6Dv4Zop@8Eu;hg-=c$G>IsJKt zzgO5g3dpJ!+?mW%b`5nfED6609lbOYKU8;Y_;GAuJ2KnQ8}>w^UbssCxnJutRdq6K zDRknUf91&XWsbEh*|D{v7UTu{+v7DGr14gPo3lWOEWK zzSBSCt8K@Qy#I6Ise+YabfD#$^`nKV)un;4C|gc$Y0DM91BlA|#qBYv{U9Rn@#iVS zXdRt?+_3gL5ouYaOOLGko(}A1&FV?LD{yH$S?On0o{X zhTH{|xBJR6{zT3hWKpu3_`<}D^g?zDl3()V+fk)ln7uiV53VHU$k+|x*Z+YIZg)ng zmu8+)byIKoq+Q>-oNs1Z9g>l&8+ z)bRwNt)^fw9*=O)Az`(u3X=k(wEhRUJQW2Qd0LF@E2w29G`#xb+ii+b=i1f0pNkpQ zwdLjKo%!AYGc-Q{!mImbP9jB9Tl7O#M1XC8Cf_@^@R#;cfCS<7CFJoDqAgFp===O4 zVVFQD!VFMk!OPSP7W3-!vfd+x3+VA>u)SPi`(y-;V1)dZfwLuTi5W}oi#;9DvG)Ym ztlz=?lDS_X<1aTdtzt0P3eXY-gH)>QpzE*N&Im;d<1zXBCs=` zP7#|MU*W4NM3^En5658^=|ird_(!Bar~T0BRkR@{@5a+9`k1^;er`PW-y~1V z%6v?xaCDfx-@-C(=$TH%9kM287kj|tm38qd(8-)vdV%gHiMmEq*_^d!r^xEMhW1bcp=CFc(wF_TM6l<%0j4QsV!2L)%vdvflAsq$W> z-7bnXZoJ)ysUcBp(un|pbhJM!yg>y%?qDqcm*Q(R_gy;PJIL2P5u3Uw8s4j{_ zm?OYP#u?s_##-Xz-&v}jmwGSMJ>;FDE)n3cDk{kPD)>9_YsBrqn_nY<|9OEM;`(!H zxXbub%Uj@P;mbV-x=Ff(({I1919N|-)?u%q<&EI>G=1F^u>WIJ@W5`jAN&eGs(ER(nOa=`p|ba6U*LqtdBEp3=3DzW?)vG13fv$WJTZ4wn`ayUDG;c z2wsz++p}cHj1hcIP+;hwsrUnzuau$SMT&w>NHAbq3Ha`{gstS*Z~J;SuX4&ct)J{* zFS?xAq7H_@{f8QyRIcEvMEfQ4@smI@)TTl#7M!7Ji9*PlDQH?ttZ1lQR>}is^2i@9 z*h}-MTG-Bvybs5cm>~nrvcv>MJx9Vx@Am~l83N^jANy=`AVF@bZp7}oN{fPyA5-AL zHC|ex)|p?H6ybGUFxV`h8`H`1E}`a4g1hWQ&9m!smkD+?(^}WmRL(m>fc(LGr6Y#?}+vr|p z4r4CzfRrxMrv#zmP#WwUdOHPMS8@{QWEZINGG>30_3pflcPSO54l-BkvV9OWmSsE4 zd*d1r;H=l@?L4V(uguz^hsuFlrC#L@-J-Q$^rr>L$sehng#0jv`VnTP5MX`Xupk@L z6?(J_KO-r))GM9VJubjw+cxV;6gcP7r}Kp_tzT;II6pUwWqpB?T3f62KO}IBwugyj zZ+XPLg)lx6A2RNdm0I{^Cn3rkHLZa>`QvjTK*^^*Hk;l3BAt_bKel!503ZJnQU{0o zWq~2efq-snqCRR@tB6W1bI=**uz2ZniGQDYWh_ffJ(c|G&$tpcX(!{hYWetu=kBe( z8;>VBW1ZGCE@*`F@oq(s_wRMI+&qnkQF-^baq?ke7n$wj3J z<@lJM$e=c7?F}Z*JgXrW#)Tqfp}Efm z@(U6+cx$Mh_u*EV`R=|Xmu1eo)yI$mOYKZ2@sT#tgexai=ji0Ek5UHodrSYYxHa8H zO7y_juudCNoBSWc8{FIs>}EPws37-_5(o6lesUcIlFTHob@%TfpY@w*a7mj9YAeqN z!TnVa&V|BpX%$pIwx063eRke&!V!Twse8dOX<8uVqjw7Zofq$;jz7O80#o2>ef+7N zCGj)Wm-vEQ!ej#sEQSBl(NB^uEcec{(ipvwI8{Rou$q^-M780H9Zj( zeEID^a<0dd0rOF)9s21$xR0FmA&c@es3(ae&ss}Z7S_$T$M3wkT-H3b5LQ82DCr8J z3FVZv!_naL;VcMPUpGn?L9}M?W|^V=-pN6SGV}W<_MX>E&dRSdbqy4;ez^iSceaEc z3@q*ECG)Q>7=(Zs)sS{Vg1V+m&{tw!;}4##sYE5Hpx+|uZ(<)q=a@k!sE0V{ zh2ECU{uk=gf1&cp(@YT4u&x*ZDA+~`oh@?Q3b79+_zD2(D_O^v_cO!@a4Hbv=vx_`}X3*ub*g#e=yoBI7Fp!Lf9 zyS34ub_Cs!g@NTwicL>oe@nj9zbRS;t`(hgblb}Js7Nb43OQ-I&r}dtAhFS zYFiRYkzUVP#h>*Bdr-^)0&hno$PMM2z6G)J$-tQbv-^%lIVb8<&y z3Fg>FSF0O*YAN1pxFba-i(O*znA9;~E|&||z*tah6-9`hSW+)+7|SGy_H!#!E)0pi zl5&0wlQ6-x_!`(@q5izP$QA+m=f7k%@EI@5-FX?N9=tSrHYH1#4Iu;KjGIfrwq ztJ^JD1y8e_TSbx^ToSUsA~?ROA8ygX?nlvgTPOs^<|2O?(ETZnv?@-ddo#D1ydCZqC%v>Xx68`HElEN0^G*ShM^)MEgM$!;yM2B+ zJ0@XoaXxttFpgJ3SI5H!%4G6_glSYGSi(Xm{G$VZCBG?-$V_~olgTp^th)+E?O8|SP|ZX1*^N;)Oi%mv^bi{e0z-Z z@@{`f(XWOTbH9zsl{NfeGR|P|<*dLkmF#R2C3NHK*x^+yr?;MWMjNtpE%ZDkVE`kS z!3{{GQgfK0CPAkDy;>cRchz=-2rwRI|2`Ax>R)mD-k5I`as>t_w6h(@BV6bXUeEhk z*Gu8^MbW|Nh(WQYOwG(pWlPCFSY{-iB*YK0nOP`M6rH~q`&O~}>Pfz7D-W1`a-fwp zhR>$ms(i@LS@3mzGO(TGQ$|bs9Nw_#BF2g5!IGSXhP8|{*E3IS4i_Qe=<-&O-KxI{ z#%hs*96SN%ZMrzBEV=R}iIu+VL92hvLZ?z<+w&U=Qx+-yRGjaGp-;a!YGWUO$*282 zDx4~T4|9Kdm8RQC?c5Yb|KUB<1}kpkupD(6JYb~-Mrr1R*#SG9M>vHjIz8Zj9+$UrV46G!>GdPUj>S>ar?v_)zoIXT?3Hr{-Pn=<9o?MnDDO$Ju8!Tl) zvaKNX;2w?Egr9ZogVr%x2#(33Vf$+3UQEQ@p_lFW+YkEdd_xl2KQgWE%YI;jJP zUqBH;P_b@L&50t`y%ErDytehev*QWbP4Y%kw6PKhy74>O0?IL|0nPn1%EfnbPpZ5V$Db#nuBr%66CeFQSGpx!-d{jw23YN8+^@mdgNC22p6l7P z;UC4`Eq}iBoCaZM*iSz z_zY)RgOgkngx?ax2igk7j{(nB2YkoMj5|thS8$+86JnCZ|uwVytaNY7PpP`S4Ma{T!>)o^7+`jZVXOe+5M%<}dp9X-I3(?y1) zeTNrJGY}#bJ4+A8^?ZVRmj$&>C%{O_D1Tpk$d|(>qZge28kQi@Y^45;`}`Nxq5?@? zUf=pm*w;FB_+6$n{#tpy@&w#{k%DZ2rxP@^%yiWhq)v)S-iOz4B7FGpVuwcAEBE`U zktxTuON3-qkS2hFRBi+9^`U)FrG@cUJdfh%5VM2NZA3s6x%JuO@Y~>ZA`oe|@cC%p z8G4v&RDgv-Foih1Zj|dl<|M2CrW&dTJk*cWY|8zuv$o(8>ZT0uhiaW-;@&zp?Dt1! zd4=I5p?|n0z;ua*>2ZZpSkT+2;A{jv6Ja~*FqOCn*!Xwl*4^I z%&YzQlfGSKb>Ei_VutWuZ3N`@OmBASDC^wkihb{P%fwUA=ZudH$Y=E1L23UfWj_%J zD$vW`P*+gOsvKq%Zr4DP5s*ed(>64HXvE`h@gCQTU7fCq@76u`5mS2;3d1U=5CMfG z#O~c8pHmk+DVS|*Xx6j+667&$hdQMGfS8)nMyE>DCxBUpie^16o(N~jFW)G`tA^eC z5`+kpVtkVxbEg#G!x!ZA43oa6`$ANH_&b;)xvhnxvA^&7ohfEBhZ@wm`PrdvdAeQc zq&=eNwpP<#4$^j*{`qZ1#Kz_?Qgw+N!BMW7V`LAuq|KJFH_qB>m9A%ePv8Q(EzjkN zRS)_+@cwfB@OQ+(U#xdrWBkj(6&^l+x0i_iz7@dp!h+q*5YW@s`a+SGj* zCzcJcs?G|Bg|6cz%S)1lU-?xx{Z(>}Odh_d3hjHe7Imabn*BC|#? zPzv*4!^fK(&?RB{J7m#I4d82`9^kX-H}qwjYULQm%-&eEfC`Uo`^ik`8C@+WgES0P z7cG=)n=)ac4zw0aHI&m!!h$b-iiY|zw^6Ujy`)Er&I=dxrBz2r!j>ZKEKahEI>2LC zY_Y|AWqJJX^MtxoMt?edd4zw8&*HF0l%SgAeC47>lc&*fpI>`wIJVdj$RlAF{xGo% zXbv6GP*zmEdp_IPhER0aLcJZMdIowKd()Xf+BWdC_iMG?`9a1ZcItY`|(znuo zZhkHM=XJ3Eu?feHHxA(66+&-=GwpRg<~=8J_uV?I%NKtL^}zG*ilDdJadO5jZ;m*x z4#lj?Jr4CdZny&A6J>4bbfuNr<%qzqH2wqONga7woLqdb;Uw)jsSkzvW5=7a(+G~R zuLbY~f3ifI&Bi6s7cjzgk@)}%v6ECMN!S}W3AbKUW5#7h=IL@2%5{wa=j?lXlmYX} zdPHA4i1Xz}aD#h$&2{VUZ=m(moNR=^`F#m+qVYbcb6r{=Hh5c3~frcP`O zYwn$8eRGGQV3Y(#1-aio=~3KwM9*tVT%G$DA8aTX->5C8Q^%BulJ#>xmY8@zK?GD0 zJ3VItaW7m3?r>jcA{?w@#a#(;bF)b`eD;seCE((eTg&efFwX3R-pZoW`+vhQkbaBt zyTtt!#5bmEGw7F!MBp2^pTS-lkYjLe$Tzu_H_JHu7 zEP7UX9y*kQ9j>s&>dgdwapH^TwRy|QgAQ8tZ<}+4tP9{bLbo7}W9s$2LHREuY_;Vp={{S=7F66 zpQ10-c3YOsZzstGIf6sTD#TU@g1e;zmazw=aJACaD~iz>o)VN~(6l9*$%d`7N<6*p%^gQIG3@+*K7x9~FHk4sogIDv`tvEZ$`xJ`Y;!Gs7Fp|ZYWMqg*EajRr>@vJ#f{k07WsLY09w2BHevrP7 z9X*O4w41kBrci**B1J0jVhFHF=|Fc-5|2q5V$}TpFd+qW6dI`NG9zVY-zCl$2Ux_g z9X;;o(8#rEEh-i}a9s|%UWz;%9<;BCV+oYx^+DBvZ$k|shG9y1*ArG8bDA%z>`Lc}douv;?I^v0d@)_p<3d2vh_BeKV>+9Q6_|3nJKIBt3c0v)1$B=_jtuukn z9mh=I;+JBWZ#o73j{70(wziB&A_9~0sd?-VKgEQ~vy(65(;Sxw^}GdI6DQ-|J1xH@ z-k&n(KS1Qacv^3BXtDmA|HDug^}HM{$%6SO#In!L&`mn_#VMa;`9LbkI&;L%ltKL5 zRNlB^+j2CP8Tc|@a6Ud}!(xzibvwdtgMR7|Li(=N*lfqAq zf>|XS2+paNdZ}HBXq@(Zw2&?)Wue(J-aBnr@8e)uWj^}tCBih13eOvDcC|{uKvHS* z)gr7WCeLKAJs4-4<89GY?2T$NipKYczLJ#f&}n1O;Z1Ndy?9UbiEQ+W+Z%vn2TAh5 zHVUUvz(52{ma^4;qYlQ5Kr7Azp5Jw%i1`Y}W416BO#G6~8-JA?4R9$&@2?QAs6_?y zSNKrR_46}6b!V*t``!CXY-6k;DV^Hxy+c@d{p}flf$EfJV}}RX{ttF-q83rRJ8uQc z9DKfFqRHCOaH~zv2LAzLaZJ|org@=+C9GonM#m&SgZvUqzdF(3MaDx~;#;DGGz(%RBx3dF!1iFwrFnJK4ww z_wc}B2(g*D%8+^P`sk1Pa0sj`XnL(WPD}SOPx8dAukP4h7Xl^*cbi+(gb3u1qITYZ z10_glu%H?-()N~4Vgq*Egb2CCCI}sMfF5r_n-a#aNJ5v?V@694z7he%+1N7SZi2y| zxKDsBqJar_%bC(ts!cMp)qZQxy(hU7eA$r?qaA&j;0rPUdFi~c+}cnrFN;CnCCJ$j zFj~9c`Xcf8ztDF|>*-|iC_nu)57^22nf#@oIFEl)e{NwE zDp}w!<@W`qkq|z?@my5B7$!^+eX*@G5Qs;p;YRx+k*KqdsR=CH{h41K)l&nQuopZwY*58Dv+-(U1!36dThJ0r zjQQrY%wpBaY5E~^T7w5C{p1{Dt!(iu1qc&Yq9O^$*^c?>95W zsUX1#bwIX2f()0x3hck~GevCWjvc08FJcl7k(gV2(Y3;N$oIgvt?3W5;(kA7D44ub zSdI(Z37vLRdF(f;@rSAyd~wvDHTigRFWvqI19y_M=mdsv#mub=3}i`QJ*Ysz$NvXi zZypb2^tX>sAt{lhC=5|T_Uy}4iYyV5LXGM3#@ArDXukRoJInI6VbKi5{=epk4`#SIYQeEJZWFT97BfIeKcfQp#2s2nk z>s#sGKPD~x>tfduh6%Adv9tz)a72Ta(XMjdllCu^-`s-z&+gvoefA?voS9Cke-*Kn z$ac=SG!AA2moaGuCM(^o&`aV^8B6gNo*}XRub-_E!th~ph;qB%6N0c>!{^E$diRUV zVKyesgSA(Ev$U>DOs?#Xm&W&awl*D&G(X-^&Iy?>L8NG18IH9j{;r8YcAvS!v4J{O z6gl$CH(W+&+M+i0ip1OVpPTliiC7{#K8|t@iWm3`3CgfjYA;VjX(uYH$McRclV}SO z%CHkfC3EI1b_H7AeOG_sCaiUL*@%D$(c*TPw&>v6+wguH6OqSUch2|TOHnQaOy=q% zuFPxxG5;?IGmVL&S1~sH;Md5t5#ZlOpW{!SLwpZ^pu);&Egp0CKE1Muq>L^csYwYj z`9cVzxWMch)Jf;(=i2v&jX=yi!k-)6w?EzBjvUQs!NPEiNi@sawqc~+s*hs7V8`U* zA2w#zzV9GWY1UE<$$8Xhr?}rau#}dZqGXbaXp?+pg`*UVELli^*ZRdw^tHRYH%Ix6 ztdAVg{hZ!iu+X1E!xEDd&KBt8h1O%1_Pk`mQIO{-h!@0|$wz=_VLx^;WAw>5@250mA>F6CFNyjlffkcv*R=iDTkrh}^?$*1zk3ihm2?0G zw{KVtJkP?^bby)$&JbsUDS9gDFND$W+X-2T?@$-@@K_sc2Nw7pDSIL1esw}!ZnW0p zNe6*0N>iG)&V)y4rO?@^6rV`0n?_gpw9mY!A5%|t<7?yikvMEgk~k<9+;N;p30c4G zn(iFk4shp#QJl_G@!ktxS=TKT;k(E7*~S=16_gq1%5?$x(P&uz;(i>lWQ4V_-7(u< z0X^P7o{ zEJ`j|)Dq;`R@Y|fEh!d3SNb~Mxoi0oRhtof$c-tUH;gX*{`@}A!daJlg7-9@zVGdG z4mM7U7x`qO_03L3a>~>xGE0vaxzskk>chxXv4pB%{!ps~l#Bu;iLV-rg!kpY){MN8 z#6KMQTE71bOS!_8yUisxT9V4n zX(+{NEW~>A?>by!_v$yM>%Bc7N-C^TmRA}v+#ZwR=ENr!mz~^biI6F2^FGaAT9&4K zCtj{t$RzRQ<0+o4o0&Y1I4t7=Ae&t-kbUVr<)x4Hr||bOyhLxG9kD@dIJ#hkX(J=U zba!5{pJL9baFU8L2vyiQxL@$M!vbHX@TXFYcs#; z{W%1Rrn140TiM`85-H*BL977oJfM3wJHVhBz7x1a!L3p1sbnkO_?E=yoF%~YyZ~W- zkhvGvXYbj8rmfWd9I7J)S{C*Yck>OT(wGIvPS*3DWSO`=jPa9Vw55Ei^FSTDI=W-| z$f*6?OI#J7=wApQsY?-RzgxZOv3#KQ^D9tE)RkE#14DO?zqp3VV#HoN^B3~v63%(H zXrKk>U76x3-;4o!5u{thjEBU}7avbi6I@p@tAP4s$sB*pkx4JoEw?KOX*y-vAdl&M zn3g&eDu-M%?A83ZNvmIdU(4t5efd|YylcDc$^#1(uJP{^VC5CLHdm4`_do99sN&?56)rL+klo-v3003U#W?WpDc! z9-v-K7#ky}NIQ!)KWt@CE?L7AzA-O<5KvD3u5?e5Cra5!b6}tCxr>I^m<;UbjQf-Q z>$_XQiD*mwe$Lldr>n14J;y*|WtqveBdgQvszrzwlu1Hxu$6U?`8KI9V1kDKMkzCf z?%U4N@ETDJlX5Nn{%vOjhlMI|5tyd3xE^wM?bdFklHKhYUq z)zTRxg`884cYv15lnXjZ>^-VHi!2WU+ZK9BwVmW8=UHT>eT_Aa>Fh7oi$XSvwGr|E zV&)!1u*%?kyig}GF`UfD3jf6kypDtQ1)zE8V)x~}v#(lyg@TO^R}uYL`v3?i@#!x= z-i%>qH|N2G2VBLr(TWisp{6`2?8Ha@mg+)Pg!pjsRrrKNxEvTiZm1U^oIWF+e3ymv zMGmS1lG-|$)_1U%Ei9?vx=0Iq$?d742ix5j`v#o_ICd>Cg8x0_`a3a#&Q)y3BBDQY z-yPsjZrsVXh7Xm9%s7ema2`Zf`zp5lH7Q;w=}fSe6Aq>S+2e^n)tHu7u)d#@0`tT zD%ycr4ryhDEwwt>sc&YgDl#C(W+pl*qg;I1vz#Kdnt7z5~=<^NkO)%+pM%d+6}$G6Y3jr>>wGexlv`GMIzfi^FAr+ z@_pa&Q&kX|m!f{>B>$c!t(P0#q~+S}OL*OuNI|(#a<~f<;(S9<`t&R!(rhUEM?X-p zdSGuHlyXPhQFq^KV2C}BnD*Dq$41(n9!;*63Y-(_&eMK$k9=^sS|xlqSF6z6;!Wk7 zQuPlDcV$>P*7z#j_e_@p6O_beyP>mdpj?W>GozNBudyA?a$c`D#cg8HVWzfRA-5Fb z!ryqhBJv;jdQ0iL3zNStr0(jH4iK(=24mj>;3dIFMu#JSjc6=W z!XGa>{*jwt-ujRTpz9|=d_DfNu+>?HXx1egGg$z5wtLR^zUkg}GK%>TmmmVR`5-Qu zPoXn>MD#x{q`j-!k|a3;$VM)MRML}88z>w)1(k{we#w-=UWuAY0%a!;<9eQ?DwfO^tu%KBp^2q83$A$MaYN(; zBH}MZsFP-i^Dz5QKll7e|B5rF$r300RzI^?e!LTa@D7vP(oF3T`t&>2F8GRZb~7#i z-tlr#dV+XCcw)1nx`Dx&5Pn;EF<$qnIH-sqr^RPv-1aw?W9{?jxsw`m^lmXieG0{Y z`Lod(zu3KWS-=1mahUU5KL)42v6NKQcuSN{>k2721~x3lwd#Fw0jB9Q;rToBTMM1P zef+H!TKBM5b}{*+!H62^>riP%`LEX$qv^22pCfjLKUaQ^8q!bziT_E9@6RxHa9w$lP^_}&-k}Oca!8B zIGIB(kfKm)0>#)*zo5JNwTeBk{~+r<#BFp*Yo3E6@M~rVX{D$+OsdYNcRJZIqNM@}yzqUy1PJ&*9D3ah~BWa)dkBaD1Q(z9qe{ zyP<52I!_YcIeuNj+{zQ}Qa_DJ&_KPcSPHJpYm;o10Xg=B* zZ+gQ(pV4ZFP8n$#S%oK>=FQ6$fAc?M8fkRk_;&18(T%Lwp~iI@7v`Cl&k>qw%)^#D z7k~YQFs=P=;}3s0z*ED>{A?!=R^*UboQ$@Du|Qe;8>Z;&pk37i7Kz%aaXriY)*K`W zbM28ke}I2hFhK9#dC33&4@3MyU`e4kBkV*joAse*GSO^>q}z@M4mJDe3KNz?>&lq( zEj$N2;)J~76_)y0;NL)RECCinr!&+GlMT5E3=bKr{5L_$=w!AaQOPUx7UP46Wau_) zxBn~QGPun4x5W3_j}IjmA_~z2Eeb(*%M#=YBEhEm8KzpPfLHvz=ne;5@HwN|;^13e zjiI8Mos0#v&*X5Klmi8!$EQ71-YZGI2zWxPzQK`%?dT=dX_4m;!3sgNrq^v)99!C1 zanx|@QLUTqHfAhaF*;2~(x2p)ffA;qW$*WHV;+tAmcASF?@RU;JfwmsXd)Pz#>leW zmER3RmNUy)VNwxUS{M*tGy3IUX}I1IZwQ3{<{U*ybr6_pka*uW4&agp|6R_=q?UF` zjU z`&30%)}ZuJ*jLZ|g-FiK$G8&vdY$+36tl z8{R_#XYV8uuIe{(Nj8R{LVc-F5jWi@M2yOS2&(v7lbx(6F+ zbmr@0&k}i!1o#0-sDq|%Z7qNNswMMVR#3%TGU^Kyk4LC+#qH(Y^^J*AbH$>he&8t4 zl#ssbrxr(SI7@IJwU9}OUhwEvEPsRyL2P+S_%#tjek!i)X<7IaCu?La>*54ytS~0vC6-Hsvp+dv&00S zXp=xwKEb|nCFHetUTAl0>h3~;_~!xYH{t37F=c@;=b#D z9rXS?i=q`L7udu?vjfIPP50S#VPae0gjSst#`v4Lpd3 zg{b8Q;^QKcrrAyuCHAtmSFWxzClE zn47C5j1m51l?r=3VwqlZPOsjU(KXeDxW|Vqsox&F2wr*2V#gtA_rC4C)!x^{ES+4{ z*I!3sTJ57d{>*17p2);hC<$;0W@6kJeGO!W($Rvsl{?y&kb{EGX*}Ni(80vf+MLl; zj94M{=M3W1TNR#{H{@Ys9w3)BRJ?*dI9VA8{9d}@RU(Wct``Gtp6s^>^2tlti)Mbv zuwmYX3L2Dc?q$m06n40fkNNGLj?OXv!{$n~h1)2GJ8qi=WT>P$E(tSz@&Eq1I1b_H zd@?5-J(K1yU-t4{u_NTOTTKH`>vYD*uptJ1tBY0`z3!XeC~$8uAh6W8Vx=j!9gsiMupDx!UiB`iM_ ztB*QLe>{)bh%w`ud!Vy~2t=1HRJwPcNTd(42_733o5VQ#I(sfo)b}B$elnJEd+~jh z-(!AzaV5up^ip=(Et6-)U7eS5RO=q=1yXi=*n20?f1uB%x2NZz?=s&o=Q!ATpJMtX z5a9$n>`x)n6}NBw88A{1*eEMpw$WBC^71=)>%SL$pA%ZdNiifeFx`?a=YCi6GCi#1 ze^&%M>AwO160@;M1<3n@ANXyXjBRmgXzzc!T)D{gYSVb3tFy3{SwGpMUIX5YV!T-c zrFX2i>lpF!46v6x@OS!!n47@A@{Wm&^cLt*dEyFO55NG|@cQ($G(mp5`@C`+q=mX@dgu+WABbs<)r+Nv(mi3;7oG=t37rQkGe!}%vg)iy z{>} zX-d3U)uAO>Fz$DRwS`VeX`oxWnFkiSB1uGe!1^;fgSn3B9mHVW9s(cvL|O*11Z<}| z-TGT5JP;cdg4|0+j8fL$JVkav8ZcW8iT{AC_s}w1pZ)%H{DXqa8}vOO$3u-CH&(a| z8K1eR&4Udi0^ReJsmue)IwDK?L(hFi#Qe;S2_JwapwnYH7J@CAhvNinV@dbkUQ{5n zg_cmX7tD^^*&T&HiW?`EP~!EXjIJUDHXvGf#J`c1QG;(ltn2Jg1xe@os~O^B(-_p= zTWhFq4nd3PqkfAS0%M=2s6alx0YNe{50?2F?6EP;d~@a?qO%W4BDF6o^W`4KhUGs= z01$PWhe$$TI(HfX1ZLilWDBsEUSUsi>;YkBHRkr{b@ru+rie;JKl7*QY$}3L;xG8? zee6VF8gNXh3KTVTtCZk{#%jiX4i~HWh_VgQ%?cPqcq0 zFA)P>Ti645Ciq0Qdk{J`i=U35kjWCGLS0d%@;u3G$W+;F{&})5!IIi1cH$@y?MLiU z>Ot2dv^_NKXN+P3mE_~RacEymG62g@16;AW9sZ_oO{*p0^W3&%X=l~t3Z>NV?V{Zv z$DT1yF_Fzy6nTtD;ct6h|E1!&v9{jJl>) z&ZDvOpjQSJE{z;pDi?>Mz+Fa46>nW0;7a)R9mgymUFIDCy9{`M2(>Bs1|es*H_>&r zH)vO>2)OW0ZiPP7Ts~%fu1L~Pxjuf!X)Eq4RLaGNJa7JzB=dlB9)EM@XAls6S*w!f z>Cj#^{6;Od)m+Kwb6P_-1Y70vn!SCfTj+p2BF8}Wy@4m+@I|LjmzYQ?i!vkD1=-6C>nDU0Ubb;b z>4l`YFy0lp^4&~mTYD6FD8#12Q262^N$VJfR92XEGs?^$tzj>Nra$L&3om=2Xgkko z9J27W8-@}#;Zbl_#g(#6dGn{2o^bguq()EvX}XoG+T5N?zS(uBCJllZVonxQc zC>0qlsO5G0x_s8$y9%VCvNsGDBBSY4(qA=3suR zQwpxY_eur2gzpAF8r2w+YgZpUiIuAx985Bb`a;XiU`nMKo`Qdh_b8G zHanlwI8+(V7c0e?;siPBrTd+3f>dRq&)uCC#(E}v;Ws;TG1&4*3^`jY`{@s#u!imI z{2#I#tlJo~spZ%s7j3X$C@sG1K`>mX8<@|Is6?|P?CNCXpPf6@`3<+TX5bTEtO@oo zH+?H*F1%VM>BXms4p~an8P?@1Rr19w^&xwrP02BM%R=T;lyMLUz3J{{D{~Nbkl=%0 z6w2Y0s}2Y4{+r6e+YI}%wfJYVXx7mZ++1bVAj=@*i94l?zKafriA_HWe6WG#jy4z1 zsUj@TbckK)58XD|F0@f$DuzQwvh)!3`vQieYjop`DiN*?WwD3{tjIQ zlGd#~gY$~Df;lKsDDbF71{9%?fnq*3wrG6W(i?kUlL3{g$mpWXy7xuYQY6n;Zc|kB z%3FrAn>O?EC?_eG1_TI!)(Wp2oY5JZ?l7tP(OkK!Hr@}k-`-aQMsmm0h=l?&r2K(C z#;^N(*`s(iabD|%`}4VGv%W)QzQ<(&Ugo;>@sZ6o-d7WD2c4_teTLb_%AX#4>*O{} zxS5y|K5Eiy>FO7BJus6u2QcJvYEL*H>+A#tMQ8n_#!T>Ks2Ty!=^LYxv$l%6D>tcg2aH1B;DT(J~ji zqM3qz`(5WalNKj~ns;Q>x+!~SZqY{VeeV{AbRg0&4|6N62=}(#QLB;ScQH}-vP#i_ z3Yo|~Wha1{?3gS}j+1V0R|dLWt4`Fdo_ZEMt>}8g=HTA)#X6l~EkD~iF3HPUZ-z34 z&g`-1j1uo)os*;R7@9v1g;VcQl0_;}4n9|_>Pmiem1w_v|1tL{8@?w@?)ViK&+DS< ze|Q*jLfiJRcO|ORL?L>xK@Y(-!eONqZQ!BMrGAg5l&K<|&$h^F3O)?x4a_%A-+av3X6;=CIUFN1sk>+d+7x~6{8ThuN>Z# z9Id%$`1ta>YuMh# z<3WU_WuHSx!oj~H%W85kYbS1ci(-yLLAdR_j5=!vbBW`$ttSO0qvtuVu zbQQb#l#Q?&&3klh7AK9P?k*Vag@`reE}DvWziz$6)}{YwJ|&f>A&-qg$NtUja-*z} z48M+=M>z!f{2L*;Y())zNyL;dMr+UFUkX^vJs!o>x&QdyvdVk_D}0lsqGwuJF5!>b zL>SL?<+?qrxraU_2;4FuUmT$lLn5yGxO)g)=(g?*{f6sKmWv^JmgVLuTzJh-um@i@;x=3&k2=}FLV^X;c7 zI_1BR^}g+InBR99Q(&Q&T9>q6N6pDVY{@giJ6kjU={!3vQ7e}us@;^`&HJ`U=ffMd z=FRbZm==5k2t@jB%#XZyE^lCWr2}{c1M*11M<4KZxrN2yBGz{}lxEA3s%_FAfA)?0$JVZdSCEpRpj}q1opN%l0=n zRDNm{{|5HFssa>5<(Std!+FFni5>11F^(uipEG?7Pp@;GIrG#@6nJL1l+0)4R{%GIN;c3 z>~FKGDJ^qUm<`3knJlr}$I&z}i$b#p>NDW$3`(*REiDy;o(z{gaD110l#|4ZN6r6) z8}w|Am($$z|p z_7%t%v))SirC1s((AtVm5d*Kw8Z^jvP3q;9i~Mj3Oh`_2>BN@swt}9 z3Jg@P?Vj&BEpQoVx3F}kc0&RdALRcRau@`d{>m)*tcPy@Tf;#4=~{1mOi677kYhnF zJ*)PFHj8O=S1QQ1<%H~k2>4i3V`}8jb~43kz6&hdNNS^ya>u;<4RbP&cdB<1hM-E| zS^vDk5p?~ib`sl5#*)gx8-h&SyFI4x?)xio^2!UWKQ0pgpN=1yn&<4ky7IG{s!A~{ zMK5v$!$#WF@9k+uJ;hd!T}|-~piiUi(NROp&zAM6TV-o*l*pZvfV~_eIfJmCUpcW) zNGTzXor&}4FQirucM{0Yln;smKF5Dy_)8RP4K#k-vJvoB<-rgRG55G)(?x0s3{uIV zh`If0#EVfu4cb`UPd^W5+QiM-so6}>C23j?ve*gk4OR}PKq1$i_t2!hkJH@dcjPZq zuj+Y}pc;%N`!aPXsy`DLeFjoc557L&967fcr$-lm&5q&7`nmTX$m~70_f=^g_4C*l z)i?X}U{ zkcp|4-Kuww#Dl0m7)1SBw`d2HVuBN%ih7DAW!v(DXa2#sGGsmev9`*b8xbeFB`0YK zt9QPoc=dkMp}G@0Y^zM*gf^nn6AWnR@w`h%`#sthN0qBV+@261+{OU0bwy0UNzNEj zrL(q&apsIud($TObJ72Sc{g#79?wnk>=d=d28=WGl*xqV@Dtj{b7#qtVhkW$8R^j_pET;g8p^w#+aojouJ#E_I3?Ciu{D~L zlbZFIhoX&fBbDsXET5_m>3mIRP)C~;*ez}&CEuh81-HST@~Z9`cCIrQ z#c7IeDT+9Z-lN2$4j$aKn9Ohev+7Wk%{MhMLntjd@zqHuF~a3>^{C^i?$0$#b$3>$ zWoRwwo%f2&=0-%_gk0F`pZr34J+U;!h(YHJYa3v>8=22y+Mg6BwEylES zTfvL|OmP%!`M812At)k*23VpFhwF5&Jh}U&_f!~Xm47^qYWvo+dxc4osE^2mJS}^+ zUi!S^tl+EiPmVguQ`9(J5t*34Aq=kgS^dE1Yv5-iqIKGSxJqp-tgngf@v zVxYU7U)K7oah&QmR*KiYHYq3L-Zq~~6TEA>E377`V$j%f9Qvuw_j|78wFeohKbwaw zi+jn!Wg{Z!IZYjT?9pTH_b1?nRuU)_!N_@zT_Q^%@HcAl(IT$pvG3U36gGOg*gl*G=htjwB?uqF5T_LX!9!a%&21Plzu}ism&7U_lc`dim z;(Ok1B1=Taix)Bwvq z!SCT40mYr&ZpPcK8Bnr2rDFWmk&jLF7E95jK6taW%LpSUJhc+(5jTyk>d$tNw6-^I zy;?n}wJqMdhtP&@>m0p9SHdt4PaeSqzqqat$ESpkK5xee??9U{%F-tKu&w3d6=n)U ziOYchxOw@d)D7!?zj>=fpWvN`87QdNn$_uMaKuQL{;`G9m~8FL5P8g2bR8zea^ox^Sl@LCS< ziAhTL(rqlXkv!TELL|0rrdqfn(G`EX`ChEBZ~Lo-&zNKHat}6PTVJ^y4sseV#ccO( z)NTJXrSGV$9#m;k^bl0I2~-cema)5){$?)4PvD8 zA*uoyUYa9F^XYc;ns~e&$PBPR5RLbgq$jH0JqOv)ki6(VqlWIkkPGRShen+*VtOsj zQwL(<0#>M>4MP>OV_v5#SJ2+Po8eTJagTJ81}+ezb6cVWGi#nYQj7QJzalVRVDH2d ze0-zEdFno*8a=t`KsWfZ&9V+aQxOhJA>wzyT+aEZDPA@3P*j_!$6@0HF7F`sLiQp& zG*iEi8B(zZ?Y(=HL`B7zsJcvHPzoX&{;0*d&^L#xM{=eZp zN)wi3-a6{BcQEj~ELaBSRN7Py1)zV(0uC}2Xlggs+mW20I~^#{2~ed8(2MxXFDNU_ z)!y@6>^KSP1>YW3{M{WT&Oc2gRW~L=cP9a((b+#i#-OIXLwc{=M&3m9dH@EZvd0)5 z?}b-9^d~Ymz^MxQ_4SWkvD3H_#8xXs=@<0|ob^D~@i}=_7F}ah=?j_f;)9``?{dYB zMa#@rTUcOwj_XjhcMr-cb#gRPk_%10SaA)(up4 zRM3U^x<*{>{{W>(lWG37+~L ztc?zGAhSn)(g%~Q>rhudFK`*^Omasx6OYjgu&CQXpf^W6#UkF zHxGzcsl0&Z+?}VHoYj_C_yqNbqXN329n*S%>ZXbv(?1OWMBs-xZR4TyT~kUk{PW!y zQWf>UTUb6?4q3{f7$!M_as(0vf|azAB^GYlASvpj)by6>%&LQ|SLmCz|BP)xCdsA( zPEk(f6lJ_3z0(u$#%jwh;PC4H#|{#p)3#)6FF-JYJrD)TH-+OD_=8BdK`nP25DZ+nG7m40ljxw?W3#}mvd0?7KIGo&CHiJsyD+_3WB4c>`ia!j*?byxM&mE!*>LrRh#0ewLfjXa z=~3rc^-_elpW;Z@b0Oo;wY}*rdbMHEqMQec_w(M@JEtql<)s62=&^a8G<*Dq&v!)U z*|K~p5q#mJ-sdK6Q-WP2f%u?_wXOp6_W3=}*oL%Qk`kwbA|BIq(QHIKvhp}AQo1JK z{^{cV-ja$gCJ6r~C4NxL8dL@PNy?!pj~_i!cvghBnt&k*MkY5;DJfn_1z|-E#W0GG zgV-zUoJGuDhubo9rR1nIl1=G@8h;l3L*bVq^^py zetjsrF6+}uaqtSNKFh97bBgVb@}?N}tW*NewVv^|m(SY1oO@O^mwZu(!C{PCKFphw ztsMGO$^A$28)xFdOaPs;$v7#gRmI+Vu|`skGu7z#^Tphwefe?USG_U4Y*&ZS9YNd` z#f~T1OM(vl1P?DPW~fHB)<=a2qYNS);1}oe*?nx4M%4M~nWMTNnQ^PLZTt?iy=!Bk z0VTkObJw{fp3&}D47xs|m0w^SDb$Q#cRpcwc2>TKx#e`Eu^3^V?9e|YUJ`~wUN|oO zfvWl=3cYJJ9^9bWSBtUYX6q&0FlTyh1-_v0npsoGo&*)^CmAT->yUzkz*g zkvO~6u=Qc(e6Mm;iRagjWrkB#;zyuN4*T@Ug+rCS%%TANw}Zz!7yrOLvo~FG%Xo!! zjwCy~~wl=Zb=sj@Pr|yQRB?)J_@OS7zTeQ}m8XDzcq9Q7}xA{{C{|RM&hS z#-2cb@NwX4+&q1&Oz`BKE-Oi>pJaF*)g;{$=N>A*e~MM5_5146?SnFoI`B;4aNTvrAtbt8xgxYAHSOn&C3IKMZ2Fnte}dpSqJd2SO+v%v{9HHpyPEq>U9`Q~BKYw40;e>*vDSLbPv4445WED-lGRt1L> z6AKzk6g&eHV>LBq2YSNei3EMbaH5JorzKeMYhjs|rJnicWM=3^t&Yzy$l-uwl^9G} zr?zrjuEubD^4zNbuY@%qD@K-e9wk%!&dTw491Lg=ROHuO-&L>L3S}M>{|mVu#{t$V z_c4hvmHkI=P2Xx~AyI%h1i{wE`{+Sb%M$ngMRf<~(JKE;ClD%Nhn8HiU#~tXo$sC| z{)ME@cY#FwWol1do*(Bjx|oUN9*?7H%+@$DSMloI=2~_ht?Ez6PeC$N+@lf)+6Oq! zV^}BhiUp`&Q(gDc66|?d?%P=IiHC zH}5MgPVXN5SyQBTT4v=Fa21jekMf#(vpuL3?>3pyZp*y4Kn6jH2H% zY4~9f-L0Ec{lUXHhqp&pB<|AJ7!zH1jC@l4a%zRZ-+@SJPbsNC(Yh*GKBF=w7|&7Gtf**IrQA=(p|XSiDW z$oaLfmtxMBMu@ToUWHR062j6YB0Sm~cP6)wDX(Ea#YO6`zdk;vjhJ@SQ4IZD6>!U$ z)$Fk42bF`=`A;&B&&*Sd#c;&}c&D!LeoU`wc8_gN@ zS6@%P9OB;bg|v9|`9%KDy%Sudp`{u>lo(%@$EC0f{i*Jh@2?AB{70&Mb?~AKr4LmS z>bck315evqS*AZOaE;4Vb8R!$QhY4?sS+z+__3;G(3V}%K}qeZyOYb0Gv^dS?y6zg zkZ&#$EF)Z>DKvh1-^(9I%8zU*TEouQx%_U<66v||OhoivR?7!|If~HA)jMN1!;weN zU5|_mXa7Qi({2pHd9Rh(X6lN3==4r%y|u>{@A`7b4yS(Q6zJog$Ew{hrPY$HcujMwzUV zqbMxzpTs?%cP?hr>6uJ?QpHCk4NtD$a5VL3EH-AX?Q4?taQm(Pj@EL^b3?bLiY{pb z%jIX^fP4;Na@R?ebFZcuVB4z}*vh=t^&!2x5n?qn82gJ>l?QvGa6H2=_c;AT9w3Lj z!4l?%bXl!gz?phN>)42N>h@W6TGwZc?L;i5@L}?aiIKh+mg%zZA~@#2u0AE2{d^0N zlDBG*wICC>YnHGew z**D84fw$(xU&vRZ(3aB_R_oQsyfWA?A>C#aQ((J7;eSjPU@skQuMxCLeS@3-_GM=;3rwS2j=xyy8#B2@Pj`8~|FNa$Th!F<@sVuLA2>b&E zkm6nhUU2IzcE^)+j%M!aWa>-jT3J`y;ydd9`%3|3JEpuQ@1p6R|C!;2X%Y|T-yFnc;XP*r znqe$cSs}qih5JZ)hY`m2@ARfj7_PWeI?C0Rzc(KgcTFGDQV#y<;OKsNY@*?=WHVVW z`EAcKKpi*SU~$+6CgP>f77qo?oGwWPbA7iZaA@)0}!xR?L$zdtqOvWC}wD zhuq;Cd(v-lRR_Mpau$CEvKqNm$>>X)W>dk- zbgvQ5r##WD;EvW5qcNIeP=*`V)5E_14>6&Vlz(=Z*hqAhc~jN?b`WC4cx02#{|dNz zt&0>XhuLJ#3)}Efm{#?w&E6$BSV-B%Hh*=`T|eKw;y~$ZJ&BTYGQA(9W&e1!j^dW& zDd0);tSSDf!nJ@u)5LuWp@~;Dge_m>5xP(R;mx((UiNVr&l<|yKE?;DdLR3&blnxZ zrQ(7+!T1jZSJ>A-ua?zY(6z-_Q-fd3C*+Zr^JXi6lGjoEi8(3!Wc>6$G)MnD3%Y)i znFDUSE;4>f=7@@M8~+9fme@AgVrW9jIUn7v1|c}mLxjG)z_xR{M0*2J>jr_F*%S~u zrm~_#kL!SYXOkO0EF zsZ#>NL7mi=TbA`?GA0@Gi3-DKJv7yMzBjTKpz51az5h^WLmmX()VfNApL_oVWjtg_ z^-ljyP9T3`^(B@rk`KFgkN#cyzrMGly&(^N9@e}-DgvNI{{WoeODS647WmXxkxBE#oIJHes z_X&jgRCU5?lNNlP2|k^=ac&-D3GRUz9*Zf>JOWqjF2LWZ}lCcpHk&Z!K3Xc8A-Y`(!% zjfHxK#JZdBlv3+&;k1}#vHu^>c=4*$?e5p!RMnlO=ZIn|H=wI3;o+cxDlUN|fiMC_ z(^I@)#++nMr9UsAyQ6@5d<+&m`uJA%8|9F>b(hMofat+p8$j$$@r(d=dTN*QPoeB> zZeX*)(SJAwIEXck3F`HarcpB-SMIcjbK@CmCe!--h-IJ7HHJxK!O zMySRG6yNa>0gtUIt_hGR%Pyvh783~~J=+Lh9N1%QK2230AnLsQX|kK-t?vKm7-^k` z=5!hYAUa3=H>og=iF#W4waFg`QcqMZ$7EpCzHD)X*ciO~2g>!c}cG-ccedi!zw`x0Qe zf^<}Eyq^tt_OUZ()m%o!_QX)V<;p-7oS1u7`dhsh4tQ#QkJTN{Ts}s$@G=lJdXxRd zy(-}^_(u+#8jIQ_m=N4dSrWqGz8rrHd88$YeLCCh~~CeLJlRgNqz za%-@X%@mB-+@F8TeesC<7+cMWLf0D%oCCFC;qUd`=p@z7^>i;QjC8$Nv&d^FJ~hQX zyH?M~Zvw5jemZV?H`BrTVmHR$!J3uKBRj9x7BDSaQiLw-z{EvFh5S*W!-Fz2%x|Ng zn)Xy4KHh%ylG#YEI8nOBvVO4QbZ+`soYarp^)nAYutn^&JhSdjP;^|Xy-`M^#bEY^ zXL11^Z>*Q)@gsFO(cZsLpp(QFC!I*Rn`}M@>-pI&biKJ$3L+UF=@O1r8S3qFSQEz& zufk$xEb?Ev_F7#qyy`Up<94X14M13RHY^HXm|@HT->$@(9C{IHgSZ~o^*RX3L1iBo zH+%cl{Rr3CK94g0Rca>DFq$S@_*R<8d1U6jvR6=cDkie_V6Glbr&l9|6(0P9seE@v zhcyB|=w<9B1@<9`E=2^ZotN?Z(UV zHBaYt-LJ>BvZBN?M}B>Wom0bUJud%s+~5h9Wx4fj-JF7Dl7(BYrJlIekb_k1$A0;K zX*Er3cH`=;6B7)b+>xrE%POn{RNHKH{Wf)af{-O%p|5%c2<<1V86ARFtpm6powYZC zmIpsPb|I55!`GT{bu(-V%(29O&wSf^(46p!loGI=*S@rvi6q{RyuffH#<@B#LQqvW z5Lxh}H(9FxgpQTM(b=N`NQsSKFNarw4zB%|fvg;&`F7?I13Sx&4YWuJ=J*)MvWI(M z)~(Rq?y|NersVd~w@K5oP;sKK8e~Jc95mW0vhPJuxK$a+PoaG}vb`W?HvgiHT7g31 zl$z`}Z)vK9CsK>t!V!Cq%c=Z8HerT%z(W}W_zNPT&q2EGJ3~3R?bKYUVXGjR!r1L-`hSL z#^^q^vA&YOAv(R?uk^Dd&~m5i+>-DI_Z+A)7K6VHW2uZlO(E0r$`2tEAI>0;{aJeM zk>%9;zA`?{>p0C~0NU0db|Oo)&th!WmG^E&Xz}LPJ%_ZWkazH&l!pn}<{@r0;(L9K z!0njhWZmhwmP9P$YQ2c$#ausb7CvVnRRw3FcDw^^Xbt@L!nV|7G-4{u&ko$tIw`>pvB>#ZO%)+J z-~P)G5wJ5z^epyN7(;&+WF6xdl)Ul+feMP^3z{hPwQV&VpILQ~XtInT2S?`JJtks^U$P~hD-ybI%0RYis;TUD z4HMyQqll*^@}ouljn;jsKbPaScW})GER-{{dbyN~f=67e9+$BqXP_bvDzU>I)SDdTDhYH(gR!Tw{HYw4I0B-rKSBSGNE zBpm(!*Up{oXCTpl8GbnGOm}(LTI&<*nfN#PF6g*Do9a43Y48Tt8RoArqA~dB!5aVk zElh((oaPGMX$QK%KwN06BsCz#XyiT|0+R7yen9cKsj(J%T!H`t{m32xFCDTkARP2) zHBFB;LN%O@r0@M`9}Pa8%{hpejQR&F=+OtT_YGX&DN&6;LXfQh9x`0HYY`$Dta~~f z++O6>`PgO=e_%!FQp038XXyo!CuUvS71NfX2dYXjtjV_mAkk7?Y7z;g(`7My$eDCQc)rgfg^TKhQFRw5YL?1vyd=1FLRj}h%GzC2gn#^YYyKFb-2hc{fDih_Dz8z?FrSHTeIECf}vf`yYx)~*}}b*+Fn3O>D)&ooBgxI zMmxxdg4kWXU=>FUZ5s$Dc3TX1->NlP``u^%r>`tsa*S-m01DgJw&=l;-CRkpAIw)z z6B@k3CH~PUGzKmhXhQL*b)SFq8=z8j=)_~6tC2cIRsM~kFpju>NQwP}sUp#}Ajn)1 zh^q97W+WzxsjR~S>5yUH51z2zvo=*i0CdX}8~87r@T(m}%v{h!BVuv15C9ox%^hpK zL@#0Ig()7buwZ%urBcFJwOs9PPSt(^hW&4VCbJIAcY;1drS2DM)Wfa-Hn}V{jw2EX zvHP`%`zaZBVyl?E$hZJOG-Zokq@l!hmpqLMBE--MCw4*aVc}-Ql+M|2pg0kvWbALr zi|9R=&w!hsAW+6VmkE`iR%zKw0M%62|5Z}ykrt=%ii6)n?gCJv(Eb_{S7 zGWId#H>4*On@0LHEx5YjQ4$2q#5KS>X$>!*g9)75yd(&JpHG)KC3zM;UL{czXJ#DK zNzh;w3QIyw@}8XdF28E)sI`>dnQqyE_4=|XIc_Q`&>ecUS?xN)RP)9?lekIazJiG! zNaoWMuZ0^tP28d?YRyi~dfyX{opf@~+2NgYl=r={Kv_dOvq3>t_2PYr2{^altKXxqr!Dx`B(o0PbITkGi@b^B z?a-4}jOS-sAN@XQ>)PTJUMA4(@%6-GT-SrgbJu{~y1_1c zIMpC1mC;#sT;c9+<P@s7nDR0<$P#uDJd9iYN|}n;yPe21r-11zdjK39 zBY5WcrnkB6ILDc*8I1OKqnce}glwd4K>cPnA4|Wa4n)0e(;W2Gw$pT8znyGKF3>j5 zuo|3lwQgy!bh@M>#F=rs^jc)QQddC-$-AS_X)c|ACgcfzl`M6kK#L zA_qIyTf9ATMWIsM*S!5_ej>}ornv`LNjx&Q`LfTarw?tfR*X9fp!vTLN63}@E7B%& zsUHr)+b#GL-!BCsKQ&#pSy;|5_1g^tE<+MeRzJ2KhsLn-ZV8NTH$q2FgHkX^J39@;MqWt0owb-qFl{|=CXr{4dF^j>enB2dr*xm+($XI}0sYu;BSrey zm+a?N_y5Et?Xi+wT(M@LJ0o|S*UO1H`vtxW>X&ZYf_mzY`l9Cch+ABW&2J~^11x07 z8q1Qc2)wcA;b!2exzv4;cYKD?uTYNm2ki9c*4$U1KfMzZL{2Eg z!x*ITl{-f^80v`v8{ADCrnl(bFf$7xEPwg?kzVRren z6*tYav0A094m+L`mU*4Wa`q*Una=-;L7`GW=`dx+jDDJCnhKrdt3L>a3U%?4t?gd} zNRzkPNg`e(E>8oMJGYBvZ@|<+^T>4bi)sJ$O{*5#Y1J@mwlCR%S(I0M&PUmIA>(#c z>-LW*mr^Pt5C4Ks%rwYvaCWzrbDzIq`dSX2l<~B2yp8;3Sh(Bab#;3whZw9AM{1s1NL>|*YwcJDls?A>jC^J^b>Ot!Cb#?iE`fiayKt}ki!pfjVsB6ZB0)r2k zE7kgB*D)FSV0J6Lo4SbZ+Skj2>NMQ{u&OPUH0TUfxnF#5^^2d);JB279Fn6Ypr0qQc$Pw(Nn zzPFx3jhbNPc8QOwv_}$@qp<%;xWEMap;(5SZ?Q+K9>cgdZiL>q@%_Nay?%toWa6 zOqHo}GDhuY8_@G5w&~IYqwEw`K+%J`Kwzc^YUp$^a3R2%9i+Idp#BShxJWjvj)Ck6 zN`nKK_Ex;W@^Ibg!W{(3#g>Hlr{d8boKolKg%-|T`sa-G{5KuL^@y}LT)tE>fwCX+ zp@&Y4eC~>+@&W<_aT0K!w3L-3(Jm4x<|R5!WusPfa}Z>4g#13B#5C-Cf;!K?pPqpP z9Pn9O%##7w=1HIn!@;AZ7h*m-Th>Z}D*+7$pg}Pm7SIGA=mSh0iO4a$OQ(lytJ9(C zh#47jGm4(ZBy*PzCbkJ*lu!@|8ss;-Oh)xS4&vbNnQHFR00*X}(Q%@n!Nkjl15|_5 zQY*H!pQjz*J8#85u8$#jXQ4EJxM3lbk(CcoK~un}QB-!pIAOUKM?%~0jA4FTJW}ge zMx@VU1IX^{3+J0~g_J{2Xrp$_S8TsWLzyvku-~~F^>ASjYbkaCNs?w^@Yq*0L#=%}Ucw}+FL`$!$J~l72ig?>k7}CSqQU2ib*^yQ-90 zleo6`zk)iqKrzD5`(hvNpDM3goKz=BY~>N&Uy^EsR10^b%RI%se@R?CM`=SJg=c4@SDY%gB$C1 z=AS2421|HEt`&n!8q70UZ1v!_g-n9X@R2O_G`!3M(9lk0$<#2a4YGQ2cQZ!my=;!n zh*;}S%eo`0{`&SQQzFv-OL)OYhvE+7L~js2`4}F!TUFfort5A4W6$LFj(4NzHc+; zzg<0)pjDKJD7MR(Gtjuqlovew`~Jex^I@s#Q5MZTwzriR&RMhJ08&}pA~^qg8#_+H z_2qHZHhr0`720eo54(QeAm`SrpK6L>lb`sP&1%+KfB)d_4Y`e{w3@I?HlE3Ua8P<1 z`LVfwm(!|DDKFgew}?-en@T6Cia}_oyVv|c97|}Tb;Oj=ELD24St1CH_ z<~bxg@twjSd_2;**Z^JQ;+=?Koj@W^L>YJ zz+xv3v*+Kc7y~_?Em0rWi4tdcs8ujmc@tBLSPeV0!F?O1A#$7nq`*#jL|J@CQ)xCd z(6u5p9X4GHI`(}lw19p6egRau-&_9)6%I3bv6DcTO+c|I%WG)w4m=Z{MBD&C%APzHc}k$UNQk zb~%f;u57b|CU@@J+w~-VWXD2ILYPP|?rh0XHp!#%*Ir+$(k8!nRC-`Bwr z`(G9md&Ht_enWMFgW|PeiL@jzxI^wS=-pU>e*KhHTtm73NOx@TBf}si(rPd*xPgTj zUMEL(plA+AV@R$-_R~zB2c{!>GD&vX-6TRE5~$TvmwFMT;xyC z!opIoP4syeWZ_r=2PO80&IJ9FT4iS2@63`!HekZTE9( zv)cXWm?#)fCH{a6#eJAyNIadfW(w)1&fCxZe~b}3Vw=ICYC!I){P#?B>BRX0+pN*I z%2bg0(gKPiXiG?NrOxaI4ri^EB!t`vr2sMZQHVjwGakE}3w-PhcfePZbiT6N7F2)) zvUWvv9csm>0OL&;RCYh4C~?+yPZ}Y>9XUek_9HIx3C*g67?3Z~Ltobm(4&6gB=4UZ z$1|4R^TJq9pvG+P@BBHMWGZp5d!EuP0)kURv;}}s@{|$rXq9;*6n#_c{w4wQc!T7i zNdQ~)yi7Xqgxd!Bdk=R{hK}ni09v{Wl0e?4*(!L}pYsOE9R%Q~yr=Vr87}Avw*(f9 z>)c0@*nOB0=am%f50LnoJL)6a|Z3&t{DCGP&zLX&6IKJf&+Om!%Kr zgX)hjp9O)p-h)F0qXVX07-0YrWRL(SXW;#GR81!h;xVH(;2BJG7r7iQXCV_6*5WEuvB>TvC%DHRC~FNq94_g6Z}-$KJOCxFi3 zJXgPrtABcE`Rfw@PIS|R8Cd?z_BJcGSa*0lyhY3p!l zU2bpZDz%etg?v4IutIGcsh-8NRutXu`^0v2R_NqlzelHLj!Lc<%mc33j(Ed1(6?=P z(}T69LQwx;sug^wu!3VeSg43E$XX=%<2?@I9e-=cCa7CnQ1)#}1CCI{5XFzwD2$4* zV$FFhE!m=>^7>kW7VhYm!w|X8pX-bZ);5Z1f}h~jgI4K6)tx-3=Dm!-I;$$Gafj#b z)CowYOQw-*YT3&(nh)yQmq3sVZf=!+Yr^q8EG7TOHmvN@Z&FS9T1ax!*zC!k5}y`o zCWlb~Bsb8b6e_-9OwM53NmgBkrwlvdhwt2Vx3|_ZwE1k`H5@-V;W>mntmO=aP3e|* z%4=3Fb??Auy$1^d#qO8HBphJxMcn95TbEZsw+j($pJg~AbL|pl4?3u^6o)-IC&O{c z&D_&CUEQzuLbflZuug^FY<$Q)=1*x=BNKA-^Ypt6$J~JXi{!5EVv~=ol{X^rZhj9u zzg;Z+LFTk|3gCYm)Wh+36n^uaP13~6t?rQ9r%HT#E({(^y(w~7OIkO;oF`@0ebsjK zo?Ke~{G*AE;v>=R20l8ZkdwP!1^14B{M7_F3aSj=(OfYb-Hy?^z8QlWRGTr=QrG;q zW_$&bsQd!$!L9Q-QvLIZ-*lIbWj?HHc8Xvx9-y9wsVHzD>I3U&T1mpRj>q$wRFbV8 zqA9P882!8;gf&`e_if9wFfi}wXW*f;e3HwKrbX@BMN!l~0>XAsPE8*twrJh^*nc!K zQ)p*X@4U*D*m&3FQ<`k#u48vBp1%|Bm*p%)a>oTTj!o9t&)8F9{p(@aF4%&_GG6|V zuC6f{T@rb0=FJ1OzYNzz_jm(s{ZZ2bsC6+H4+r8^QG8h_pzr%3rc|MF>IvY_D>1>E z1EKv9nH|)ZA68V`MEtg4>e`&`MELYKdB}{r8%Q!K>9p_lq;Q{2rwLZ>WLmoa>3yn{ z;h3nr4dovAL(ToK|6*)rl&~8KjJ|mOj;IX*;y|NwsBZwn)2NnF4@Aj1wNdL&mo|a_ zdLY7i*?v$NdJxw5kRoul@~3?`g42DqzoVuU)hj2lUe9KG4RTt>=>4<6^_8d@49jH9EXVnbh3ssPOj(Uuarg3?3K1K1`iHmtC@E~_y5mz_6;Z60GJHA7s z!#^#rb(AwP#W-;zhKgxpqo=-6t7bMd;27JusvAUaevEUH@fy#0MSkSQ~O= zLHTee>yvrIcYoBnJjAh>IpkRSgzL6wgq_fa-wRgp*OOyry5@*9t#8htEEw6s{k{5F z)7GhAt7XxZ?Jo#kTBG*K=sDN5FEW!&(`D@nrMJ#Gz!x-{_rBQRo?nc8#A1EA;oIx^ zOLh_J%(U_{drfGk$SLhp)JRQM@e-%%{#ARUD)HI%N?%cJ;(>;!l8CieAOR)i{}dQ` zSfja>Cn!&Po&dt?r|J!0o8rtU=jDxL8e8@yiUCmq_u<d~Mw0${t#iio#I=JyoHOZ(bIyWaUk7lHu-FIhrBCOi_KQvVPBxftn4)Lke0neA zMR~_XCG%FU<%{oJ9v&Z(daRv)az$Kg?HX`l8|=S3(riS5gkraCqsQeW#dqMQJzZ`Q zpib|j$E^-R0?VF$@&%R9yik|`u-x}2i}a6%f5o_PQ9!516*_t}QwQxjCsP{XDJG2R z-JNsvqeAK+6Ba8T3ZLfQ1?Z;-t4p zw&McYp(p?jG#izD#yNP}Vaep={Zq05523v=v<*}ZsATRBbZ^%7O2pB%4LTywVTeDK zXHDBHnXW_tz^S7v5gPrBvit`m6hm=cK)(UinbhAP>cV_IeuTEU&SWx`1=m5%maD5Bx%Wy$}tNLrhhrhp;% z5Y(p(fe^8OclSHuEB97$UG%(C4h-m91=#OhMF{D2TUY0QMXPebj+bu7iOZ1DlS1@^ zfq2aO)auvo&mv&!+WX-jdZxv?vG}(P8o`U84Fv(z{p5@6Ly}^(9@@_9su*yo^x~ED z7tD?X4^SctT0^F(08t~QyJ|L;B#2IJ1^=tHK#QuE7w6L92rq(yq+mOMBRE|yc~EojLj8xAEl~w5?};m59osF+7;kTjHYLO04;(pp47rqGRjVn@Dz{z z$O{icn;NzR>WM&+-50_RSv=|>XD1Sb5cRbFkUh4f4oQdtAeG&}4DR*RLprPR-u>$j zfz$SVlJ-39!5I%Ktey}6d^qq&EB}MI7l@R^e=tQXF>98(f`aX&V}9Re_wfa9I1+uo zFlu3A+0b7GXEb65OZ3s+S@fjc(%yOEJWD29p`mBmHvm*g(zGQ&6n=B~H>_;Lf?Cxe zwALZwz9Ciu`~AQ+5?y}y@6bPc=VR=o+nwutAq zl)?&F)u>Hag7R0wnTaHHXKis{RaL=oLg`kD+UEU_>llJc!yx&+nt-@pp}CuB?s((V z_^UpRua3w`XZRKG3||zKJ7W0IF;9HA>>NQhPvbRJOS;ET?M>V9C8k+6Tx0J};`dJv zN$C$ZZsm%&7}_saFWCuih{h!WTXo9_>_`A;w)n)(F<{$W#DZ(SsbK{Kes z#LAn)b!tch|MwNp3;yS^#;*JY+#2(Y5+{`eo@!=TyA^4tIr{j+{hAlN@Zg)Z#{^Hj=?=sb0Kj&26%i4YCF1a-3 z_JP1#c%%5Cjp<}P4VunA1eIvq;KrUv{vsK15zf+i@YvA}*EKfVtilx@1_52Y2DjH6 zyo=iM4G!M#MSlUIfZbr07$=&V?&+_Y#bHzZWn4h>>eG>)JFxSlI&BNRBNpZ#i}_nS z?lshpxl=|K4SA({cPpzMSF6^$O?L=8p&qNY9m#$0i>s|}{d+Z)J8O=+yh~5sj1@Sh^jud9RpKu3NolooXv+#oQBVyTJc;`_YScbJ95S>PI(bA>uGm&rUDbC*##+sIpg_EE>2`nmbj zZQWLfM%Z-Mo2uLAwR|lPg0WHkIV(mVpMIU7OudK;NgEDo45vLwQ0w+q7>8~NZM?lJ zF?-O91#8!E(&m%)6?A5V;}3qEWPW|nP_=9E#8R}Mc5-3!qhH59B=lUjjM?(KF%`L7 ztNPPVMN!~;nC``+JwrY(&Bot3NN<}qokYFRR-~a}M;lIFDuU(Sb=BtTPcU}tyfs|b zQk(VXlwhjKff&Dzt&-4riw$0vX_um3A+jr@im|FUaxxRfDeFXQ{H?6eV zA2bfK@$#5WN&PWQ=23@^b9Y86X5$za!piL5TD1&EI$ANM-Q2NoG*7scnDBlg!60v9 zsPNZfd1daQ$j_ftYkwAvlk8h}EbUGVT|8WzB_2l_alSKXVe$HT4BNIAe5j1eah@Si zxtn4+lxRjQFK`|5_qHBe9PMuL%CTi4JY(0e7?Ipudo|I102PW~=UOl;xVq9hM9PSh zG!$+H*;67(;1fSC&J`Fp5=GeqjaUZ%q&GDS7NJA!B~y#WKo4=zz2V;*t>?LaFj zE0pp@=&na=3)4ORrshkPm~Y3gr5~liv6C0CHi+Kj>YUC2VRr(UrXT98bu8>Y`Qf6Y4K*3cOwqZwekrr?-U6Qw zW1q&Wx<9-AZK?bWdx&77#&pBS>pvXe+r{5muDB&?`8NHWTwXt05rT9s)rv6tGL0FL3NwMa3@Tj+jw`!z;~tq{;th~LWe%H;ql?$ zm}4Fs@3ONZta_m5940SpNkt{G&zT9&BdFBf2!g z6T$8fU`}hmF+Y#Ffxahy8IJdZlJV*l$cM!jDG@h z9OspsqK{;@1&&IHK{Q}b*_-QiO=i`!9}((O*){thu~dc?jo*ACw(lH#PbcC|gWMnV zy6A7POeNA%a$c6M?Q9?>A$j1D45_gskZBIKAld~D*lN44CyuC<#m+j5PK* z|J=Nzgo~0P%wLTKk85`eK%0=$Gjh1^{80}G#?$+ch1F8a?Cg5yzno?)p1NK~T}Ob- zmI^w41)NxeZpa4zgKf`FJrdgOm`GlNje5c^TiA>HLw>$r-^abLlvy0)C!O}_KxY}s zG#ukWLTyO^+3Cg)t0%Kr^*w9g0#(R%&$E3@eS*;480sh5aCQ;9S1^v);5m<34Q4B8 z!^Bm4&I8bk)(Y7Pdi#-D4HeSQi6kKP5BZn?(1Y9HMR_F9f_6xIj4>!ZAXU8SK`sA+wmc=0IV&vDh`^M$*gM)hTe9fz9Hy2$gy%H6|uCRT1i6hLd7~ z8i{K6?yPw>h}pV{a@0wFSgz4V6m?D)Il6wD3|ePu^PFe3lrqyDVSq+G*Rz|imho&k ziFif1SKwANI9n504D)iXt%812`+=Ti*kkMY82i-I~$iukI);E%4O4z=l6I5)NOGMcGk1BC&u|~IKz4-*%=H}oa*U5|1iO1{D z7-WQ<&+#Nz=2#V<*_LP@wAQ=vRYFil;v4UhsbbBv2DhW7nhvynSs%TrqE(d6722Fu zJ)fDMHHf)V9x-E=Fjbt{?*!i6-|N{q_9~G5@RNbc-(k;C2Puwt+C0W&BP7t=SiK?h zG1RcJ^{m!E?f#Fk`jM&hwNVkE)1wzj--Xy)aoR}q~T z-Jh|}RD%#DbnGvKP$&%VW{#Id6;d?aPwow`44Y_bi1Vpp=f}^su7vkUH-?&Sh_z_T z5Fa{DL%5c09!^HN`6rv*UEGo2bLHW^*QX>D!`%uwNfhCmikVZ1?sh61epiirial1$ zUs+UMp17N{wvv>vkg4x}$SKGyJ}_}64vG9Ocj(0u*S(tRo+CnqPF}{3wHgzq$FuIt z&VS6B)9x0o|1Ra`CORIi&f&ZC7?HZ1L@M~H*dPV!A3lc&al0$b$kt5ClI zj?o+c=_$7cWF9p1$v$yr%&v}}ju%<_bsIiZ(r^2abxnHWIRMB+P|W+Wm3J=q9n;nF=mdFXcGpUPu3zy+CUgNU9`s(s8P356 zY0dYcW#9Zkoy2qOPi=n!d)Xl7+H@st#ggzXte^LXdOkWqKgs{RrA%3|cJpzA z9ne&nF;qKg82Rn_niSJhztJhGPdSw_Q0`t-%U=f8I^~&j!cK3@`=)A+s)uewLJEp< z8Z)(c%xn_=i^1^{I{^+p#NH$xovaK_0eR#M!z+XPm~z(yIQz~+Jt~h!)52iA0MBkj zuUv!%QdCo<*pxDx)9|9)3NU`+kkU8fNeSOM6-JQTvyUpm-65XMBl=HO(WiXv1ZEr& zg2Wl6^0Jv*MkZcDhq>Qtz4O~uexK{7=4ue{1u}*xZ9v?iz_|Z1_*s2jx5$WUa`+`K z*Z@mLw?duwVI|MI-sg_-JORX>h%`x%q1#+<=>xCzf2eqL-V|8(f0u0ot!pK5!$W+23a28M=pG>dnhEp+4j{|#bfHP~oJgvs`X?9K9Sr9b_;#6!0jcj>ov~>g* zh$>Zr-s}TT@9nzs=fVH06X4+hq=-sdvWI}?ZgR9SKpaMrr(O`a3GwtST~{hccDCd0 zLynEvHNm#YW%_cPM}emvc97tyt*|kmE1lCKyg;Pm04D6IWan|+dD;Pi^r(aH4}CTm z+d<_xM@daYx@_<^2?Kyb4h@tTxA}jdA|&H@8`2giK?v{{@wF+&xO|xTFwS$Q{t!d^ zy*S9mN+nQ{wv#z&7Vf%RD%6LS`SyKe1 zLZBZ(2S|Oh=H^bRIl5qok2T`>HL++(5>s!15enyqbFMhwPU=bP~fE}uX;QQ|oE_2Jb<{)E`Q}|oS6d%#s|j7~+a|mZ>rH*_Pg)#R zAD9BPaS&#hGdAoDM>HQBa}vreFo9Xhv--#25%=bY7J@7Fx_c|9iF|l&Jv{Vv!1B;!b$9h z6t8FwwFT!^sbr_Wlvs03oqzu&VX*druG;ENoGkQvsgRoX;0dV5xx3+))?5Q_izOP? zR192iA3v=#S}%X{f&`hhdHv!S{V~*sxajWnha3(jlpjpmBEOLnxg2t~YnQ{()ps*cibTtFCcb;M_Tx#m#-x^} zI@!yI`V{@8eS(;jbF>O=jQp#Y0ku+OrZ|{GP5QsXq8d&OX&U5KBnlDi?0zLg+s2>J zpMbp_IB{O@SD=s;oQ3o_{}>~0{rg&~a?-0-?r}MPC~>nhm9g%6@R7Br<~HjOy?_64)~`|BjKCw`eobDEV=&ZB}|iZmJ>A zy-v@$_VfJ=A%`KQt9pH)YYGR4=LWio<5j6{PZ~N3*Sr46F4E14tA&Gdz`%P8i9Q3p zKZ?2wd3@}2Czb^c_xaI%20UYs=FaK|dbG1VI26K)Q7%rq}wNg(HG&J5z7Ga_y zX4_1;?SUsa7E!MF$A!{P3{xPOOA;fce}>*1tAk-*^$bh4SaVh$##Gte*;hD9hzD*; zns^1oSj7hxgLXou!g`zS9Itp%FfU=_au-6*(fksHd+aQ&uBfGZfvOG={CRCkx6^}G zj3eJPv63JW2PDNpT_JS4Z_elZDz?=ad*P8P!JBdmG(*uC;8JjIesqrlCTsz>K4;4e z`0xs`&$Ho^0?aGz{-9ik2QdLQ7OpWB%y!m!bRp!@;WLSJg<)}JZ12VC_*qh2P!&yT z{{%NtUByGDN{C4il_BPAF%k8G4@#>xi*D!Ao*06%AxhuAB5-YmU$s+vMs%0Hr{uo| zo?MzNM@WDO(xS@-On25C5tGr(>ysHlh*i3zq0w(0 zjgtVbtIB#HL7jr8@0iln;+rf(P)LR=QS-N$zUD|uQMWx)Ncq58rk%^5Amp1dt}gzJBr#K0cy>3TnktcfqfpHxEM;o=`xAx)#(Khy+|Znm|VA z0-3F*>kH=&=&<5W;pVC90{w@IPyp$ zs7(N4JP#eQX-S)U)OPw+h?dE_i2@F0O$K zv1qv}826`b7Y=ld&w@14_QcpSZ8-Nvo4^XoZfyu+r%*y%)D-E7B;Rh#Y9wnOz*I^$ z=Qes`CNqoUKwN2g-A)?&0U^-z2cle7sTEZ9zCM2^K#V5%W_s9`73sr44MY!5*7>$! zJ!77{!udr*NJ`2_W;k0LX{8NGF4%I5S2KE&edUh*C3zJFW?!1B+K>4#Qgl`GR((ot zvw%;7f7z-vIiSDmD`aN}()4aIAc9Kfps9x1ZC7eKG1me+4O%XXb(*MP$=f@^JvriXEP6CgwF|) z)eJ&)QABfnHo*d4D=?c@4uZ>#q8;MEelixgABQk$_J`kRD9mcH?3#dVLW`n`|SR8+}aia3vT1 z>04LfK$wEdDy8uNMZRb}j0)zf9B3n26tKQi^t~aNR`s;Di~gX%0rYn6P17{?f3(ay zbd$EVI<;E_83_Pi5bOMZ?$dOo7DHP6@1gWsI7%n)cB_Qh(mLyCG@xJ7pDN_rIs}*Z z&m%rRc=Noc=7#mj=$u*NXn*&tZ&lZW;AzsgQ{;ZUc1}n1^2) zh-m+QrP}(*9Zsf{Q$b#QqtY7#@D4sm%@_Bvj(hpZ2@&#Ul;&3_!4!H8zqiF=UM@-! zaNCmt_UmEAI`N$3s&S`qn(ph27+7b>Ka})9ybT4=K@0}i+OZFrlYY+p6mWEym ze00Ry7aFRpJoj3ZwCYKorCOqrOe1ZwFr1^~m&6GEzjOod{kWvGnnvp_k5xZr-+VGM z$>&2c(%q>dMdYQ^l?Z4##m07lV@hsR@@K=*1T_$E42;}0l$H&6a3sn?b5pk|<;(m< zXgfu!^T<`DsXRQ(>fDBT^P8ik)|u|*(!vu*`Cgz8 zh1E67Q?wMUWq&F`rcRVm;bg;w1zT||e5cFQmUwLEUIDO!8aohxo!}AR&5oUKGB}}O z&*{o{iCs_kt=<=ujcPhi(x`#kF}0|(zalS^gBQ6GOIbLA=Nh?yxov&lTLCU?J_Z= zVWHDOj(^yGzV}&8U~P|=Zzn{8x(=SK*N}*S!cF-w+m`y0w%ROLks^iBACCrYY1SyCw6#X2%<_9P+N+9S2_MW7GWm280t# zjD!v@&>e$(3wBwDtGv8#zgd5Wi90>nts8MsV;5`0-WYQn*SFV3Kuv0+I=tgx;Mhyo%Nh7c-o(;`#cg&nn zO6&kq?@kWisZgh>Bw?tB{;uavAUJl|1nQ9Bn%co-YeG~XAfLO)9rIh2*=9GN7FIHbf4p z6GN|qBK|#T0>Py*db_)8OYRlBL<{_T7dtzTA8(GOCayCE@su~|k=|(TUxufaS?e}M zk2T(WgOG5d)Xj67SdcOd-ZYp4U#!P$?U&vUUGmZzoNMVgR(Dv()ybdjGb>g+t3J~7 zFbi*4T)}%^%gEY(WHF&O~Q`h^(AW#YyO0vraE3)n#|^} zTXlUt9r;{TmR2E~DW$6zTsG4vqysB>LnHD`3&99Iny{+#r_aN7k2btG)=d00KuStZ1VJRbd>JEm{u|v0#xFOWX!G=o z3jOR$%L6}Hxnn&KEN3xoocXiVOR69^joO{zHTbclK)IlSoLg;4T(q-z%#{5@}#7;qiVv71&om= zL`gV4DqgBd6@7*WveR|)nd(vy1DD&D^c4CBA|mTFk#RcH@u!IBkaE4-&F^;$*0}Am z2CZPHPpIMA85HM4TY5n~~^=UBSWzFiRd9W(}d z3K~%Q?bU)IZT)x-Ps*#&5pCLe@as%r9j46rhtn0k@bYZ$-^9XoP#ceog~zC!UG0QW z4#75c-8h*xGrrtycX4F-o&CuPLik1h*lNKPUnYFpvj&+(%LcA*wfz@sCoXomOV)=Z z3cV&9a6!7CAD-I!8F<0%;xH=@r?F;Fqhp--g|(JvJd7RU@eFJF$llGmzBtGcQ|=p- zZ&p^l>8(~)S2y@5oAm$H*}A5CpZ_wfhubwelC>!h2QGGw6?sN!OC=RMv4U7?X`MLs zWrR=L+g9II`|JjwKtIGNNDuj_o6-vl5GT*kllGi}aAU-DMRl&>M~$|i zOZi7Gdy0MHJ;Tay#v|f+Rr{%3WLEh-rQ5&j^g=!@+xUO@v^10u6kusJw0ab;Vymul zUVk?D`7yS_167>coYy!$o83__W!}_e&^Bo*uOts$%JF@QShKXi1u~XSbC9G&gnpnY z#_q5!pW!WYdQEoh@D7DqbW(>YQ$u%gaei``P&`F|N81Tv#mJWZaPkw7bqs3+Z6n9V zcD|hUhnKoc`65WJ{-CcfRfnEReEu0|yT(BO=Z15KofEBGj}ZI;#tDH>xAZ`PTZy47 za`aj@!-<*W-#C}aAYNcY`^s_E9u1?MP-^tdhxVhGwa<)=GBP7S+*{bK6y`|vJcH)n zC4mFjq{=W5I7X6fIhTWd%2Y|EE2jC_I|#fPf>qEo4#lp0`tp(QHnfPndn?a2aH9xC zP4bGXTQ|yi!n0#T_^qORj64V7>F$p54sNx0IvguXln@MjJ<07GHZ5~w_|BF5qzF-2 zC}OKSolpYJ-GXqZc(6zDJLuu;vnSaGayC>}#y;MQRxue3j0SJp%ip2dR=DvOPkx5H zh}j$dBU-jryn~FW`F~w~cUTkcw`~w9ihw8}JqRKw(xgiXpfsgQlOj<;=^Y_JAQb6M zM2fV4bm_e}=^!Az*U%x5Py;0S?tH&{&Ux;+f8=>mX5M)-Gs(O6+H0?s_qFTCld>O4 z>|px}03Ox;?>Xf^;w9e1(g2!~GkPtFNeyFtO$?0Hau8;Hger5ZE0^y7Q9oyS6*cjwF2! zuPGjPQX*WXEeNBR)5fchM7-#vq~6(m#b%RWMSCnf+h2M;9ZW3H+snSpf`aP)0_T%^`T^X2rRc?oeMV|kH&>+8W)SJc5n z!1LM$G7AKH`wK_Te&>fiK+IN`nMsoTF7ZM9F<7##8Q7YELu))>+2yI{Il@U%t;sECrG=IZPUD8$C-AYuGI!rpX zn5(Lakv~}S^Lu$!S14CV1!|zMVNXqOAf6X-Opw5K?;)J*s@$HwWeeh#{F4bZOD~+! zclfwAdexYQC(bv2tSriK?QCMn)1p<%LHPXFem@>NBRuOWwydTnV|O$;#fvuKV3*12K>!8ao*{|pJ_W8@3Q%%9JPfxq%Pm= zpY{yp{-6fvFI#276`Tz<;1_Nq*Q(EbrZj&L_A^ei()ccdz#FCl{?ntUKIydG-i}qD zwCC(gU&Gpo0{L;cKxN-1$!;oNp>_-|>1A!h1j1FYq>CTvN?QvP$C&S)(uNS_w5eZgPt@E8zE+sPwhRQ=T$D_f7X%qoy?_b){wnL`X1&^~M&MFj{uSiat* z{17#A-f_L*=>CJ8Pbv!rzLn}=lb;=NXO)$8SxjXuveH*l`1`n^vN>3&7B0wQm7PV_ z+_sTy*XdRLbN*+>S~(WZ3leN7mmU%GA1LVT^a`^3tt(cZdC?Tli{+Q`4eU8i7u+Ue z)d!jtQ<-RT*y=b>N_aYq(@?K}s?Wb=IWH@jK8Z25l7gu#=WpdLb^_ zjP@xoEm_RV=-KPHf4{+|M5B7%*W1b;JX!2`QbxDDfb5`3?(W!-(h2FP9Q;LQ$*>+DZY>2_^22YFb#54E{Xl<-ltj5Z~jeg+H{Lx$Jn`+DvQEL3Z%ehry`+A7?M zi#sVBtm2$+`x)27F*D=~h`K4j)xKSwnbuX^eQLHR(sg6Le1UY3&%BfQ!3k5@NLA=9 z+UMPH7BPzLfkU8AeTHqymTX&>=F2fp`Kr|U67`_I=9j5Za`<`1x+D&dl3bM?jo z)i^HE#ju%2_w!sfGW@pLMT|Cak}Ga57zmWq&#@=;5P{9vdr%M|7wp%~9rpioV z|A5XA9KyH}7s(F72M3|IwKrDmUXKQ?Zqa=;d2I@Eyr>^xc&=;HeD{iUdrthgo3R1) z)=|L0f%2j9xC0kmrzmOQPa74TxPkSvJc^O~m7$BYN8*=7S8@nz+kZghe&B6y&FbmP z+~Fj8!`e{`cv*Ftpc?ZEHpA{HjkA!)L?|h}pM&Rll&00{(IpX>DAO14;tG2FZiIHq9DoBdZgXa51#ydon(z@feAD*tX zqV``&!E6p}1_VdS&qyleG8nWYB`+@1rqN!+?p}{k%9356^QSvfAg2fK?@1N=vYsX4 ze&lZ(o}FhrshU7%>BOm**-TA4fisUSNn+R3ORajq%+1eH);~FTv6Z`tn6yr7!4DyG z+`Hwy!6OaVr&m5d-D_|y1h8(8M>dXRmdz&*m#e3WJ{H2w{!YyuENx_sC983LmH*Qpm*%}fG&n9v zk)4~25)s_7Yz)`&{sKVYx>F-+NQ|EJ;(~Jzlv=xyNN8c)!8S$d;GKsEx&Vp@UO7Ueh)oOX#8F2McGJ3i#*E zW{RFflkSjcyN_OgynfN*fuPz(t-lw=xcG@-^cq08WyQ(m!>qKi5tEZem44pn3WmzQk6Ms#}eMlA2HT_z?sF;mv7zS2JX1?Ivzzk+Rrrxl18= zgNU{!ioe_;#rH~I%k!a}!i3_#BWWzk&i)mf2I`RjaDBZG0Plf-+FX(GnS>%c#LM&F zy5&(DU9&8?tN1H(@ck^f_TOGl zZI1vK)O8AICYe;!e;}1omD>51iJTU{3c8ZCLwl{%|6Ir| zXL?6WF12BdZCBrSbf539ZW^sU*Uosw9|xonRMnc7c?gzs$n3e{6}a2s)k`l4WrRgN z?O8Tt#m?@m0rL`fk9ZS|y{8q(6Qn(vA8T4+pqc&g_nLy73m5omx7n_}vEVOJ80M)f zQ2U^nZU8ZZ_zu{!=y&;@Av)yodW57a1K9NMJJPr9QdrDQA3?lLt>$`(xX<{aGxD~K zvf1-)BqoHojG#Kb;5l;mIN5`AUnGgxxCKo_u_Kghh5g-n8A>Fx1ZaR%=f6VoNaD?v z9KTK^ts{*KI2O=uBh)V*_sZ#-0QtblPw|qs-1NoWP%^W`SU}1fNph_Hs67YC7Zw69EbH9 zmPL%GpxZ8Q7@cQP|AdA2HJP~PWpZ~Q7+}0+JWR`%dzDa}Ld&cuRoh=h$ z6?MgnTv;h84w(kzw*j;$7T6^7*46`(UhUNLmPYubI10((aEepg>QJ|YE!_KH&SI$)7wau3qjbb{hO-?cag|M&#% z_|04Be~+q~na4)X%c=&1&ggRl^u1A()QF74(TlVT1R7H6bJNB@AkE81-eS{jV+)6z zmJ7AL)=j&%Q^iI+#`(@q&*-U1Lykt+@Oboy$0=`lQQoqREK}{#tF#NRgQc7^`VvP4 zN7<6*bbNBvB0(KEe89?WMa^bl`*Ww)KCj<}5I2{!R@2)Kz2oP~s>wvZ>N)WuS&5s zA*Z(s7heAc-b>$o(+Z?H-e~0Phd)@3dJYuoi zQ$|StY8jXclinHxUiO~k)img6N!VZb!YdJ9E-OyaugUIEQjmUHlHU5{12%-@Dz(RG z8QJta+aGZPv{Q6T&bA)wS#h+QBSIHrOI}P}scNReq_(WC() zw`HV70mWX6Mol}_HJq2I)N!(vF6Li9ozccz#qSx+T_Zu)1uZ*W$!{$cio6-N-(uos z^G40@9qO_L?ZiB@;#ekl|Fy1&4+P1;h<6FgZihNzs&c|4^TAu-eE~YZ0~#n5yvS<%VB+Yv?&9|iF7%nX(tWHHt$oX*(2aa4q3x_)4vNU5Gnv~ z-vz{Ubg|SgcQPnPZpn)IV|UzuA|_Rar``E7rfB7Il8>CiJ}#vyK4!A{MZcuWp~^n( zbKSe@)AjhBh+gRGGV|UN6OY(nx&4pIGrj1)NN32GtJr}SmSa?6BauE{dwf4Q?O4T7 zJtq|wD~CEnmh%7ZQ3Q%YV=Ko*@xAwMe>^x+^R-f!x1>T)|j+NBHrv)f-+1mW{~l_^K}3OGUpXQkOZdWwGN;H28nA!O&azNn%K zO~$Om2s``k{oTZMVro0JZN#)gQwXORFz4jKhltz0>KgGlqd^7yqOzc>y-`Kzh|71I z0+pA8b~$qw)ovqHH)PU{BH_>y*myT&u5kie_0!8^3M1GjkWE~-oAHkCFSU61BOa}C zn7?KI_GMKe@1v$#C#HfT?mP@KQvC2b?ob=c8!CRIddOs06Eng@9ToMoGJ~Dj&+vIC zjU4}sRuzW3=cwCfjh(d{NhLn5ebTx53U*j+gKX+`xPQlVef`4rWz6L9u=V1won)cv z-@zjIb&Nr$`F08oOY7;gRo{pR9a<<>p=MFTp2*r0J7uf22)^Gmx>%>VVQc+F}m8lr|hOD)=E z9Qo{IBb4zz3O-g3<^=507vj-xq~({>`L^PfU*zArS4CQl4UMS*oFQ$mX?|Ldl$uHP zp)~$-J7&RZ)9EaBHDax~z^4nDiij5U$}Q*|%~eVX79U7@@!%V%Ae%BvwdNK5*!*I* zte{1Tq)~LQ!AEHd45z;S4~CY%!@auL^?GYZDZQ4(fqgNwO8}uZ^`L1qBt4Ij)!;gZjqX9$ zk?&sOM2*a%MVDtvZ7yU^=pbiVHdX0Bs(r~fv@M>?^ z?qVKOH;6*t1}Yih(G{e`xe~++z_Y>((fJ!2)>!CyFSr z^|-z32W}lN1z8KC*8>&289qNoJU7~5JxBo&`SSlF+o9ExQL^;?VnVBjbjvnA4;Gjx z1>YK#@ovm1o|H{G%^I0Md~;urf#%*0l-+Mh{tmLe4P#suW!Q6{I->;PP%`JhG_cU# z6idKI?@b^+#nJ)Z;P&sm*vLQk4Z}*kzQ^PfZ)&ep)-B&^eK6l;ASw|KA824T^D3`^ z914z}mJLSlx5;`fwLL>kxI%QHt;m|tAjB%bzUq+0+vU%_7`OE>v@6`%Z-MW*KG2b` z=V~Jv(-qUzLhi0B?8=1=@sx|6kg85?G-1d?*Z8@54*1?T2Xw5fGaFG5FBPHVu>rEm zPHTrj8H`xv;tYG1(s(CWbVd{EIBWj z!FLhB6ofuL`2DJk_N|%q(XI91@cvi`hTNpl$@B)&0%)x(|4$9KO{8t52n*CT11)y| zy4i>j`;NfHQ0yKwU;F~NnaT7c5%@cSmxv1#ik-PlrW!mIKSR6a^zu93YfWP;OTSCr z9MtsJpjUpwXC=|i9@SywG{?^h_w$R2afaFhXC^wNcY9?*%KYL?$xwDqx#Z#V!Qo|N z9)LONPW8GbeCZ}WOCkPz0nO%jsjW}kozhV8<=6Kqk>_cw_E?sSBQg>%X;2O3r!zZA zDUL-qQ(uKe79Ch7JsuOWUpi&TDGqZ^_3-=}5i zpMWI{UlTv6jVZH5cZc+S-~UK@zB^v3yjASWTX0|M}B=;RV^VJf*-H{=8zOf(PF5SJPMs3+O%MIUV_T)Qk}eHZULO zafPJ3&I7+os171nMj!J21~a#CF|?J-1<5Z(IB9Jl(xVmFOyBrFMY!H};?hO((Ge@P z%>bUtS)Om`JEx?+BY;o4)jxu-j=$p{X73c{nhJ>P&>t zA2^cFtF3u!{{je!dQZfix)cnpDD5g#7Q@A&t2I$lIE6VK1n zo4jAA-e;-ZIEsSb_H*Kv2EY=p`IFM>SuZuuPYZw`H1+Z)>c7atCchuKSKx$BL^hMJ zpPN&YEEss}`>pkqK?}BmFRC5=BXP)8AeNh-t`XgrVLA=98thwK-@+m0-1g?0NNw+X z@MxBO6ISsgAU!bvEepLjmwKklazx$s{aPBlXBpBCX+01bUv(4-f3@QSng;fcXb(kB(Qm&bVtZJfg_(vss}F8(K{$!Wb#8M->P#;j zfvd59ANVdF2#>agvQauaoNFf=-3`gr`qgP;|>^>#DnOEN2?W*Q1;^qx5wtHqgUPR;2;hz3%|Wy$!P zuhw`nWa9T;#qZkimAnvC+ty^3&-)euGD|xZgZECX1q_myhi1auv>I_fg}Zg0bFNyI zk+8(oS;KkA(d1dsH*Y>!pT86tmY2xkD5T!oADEu>47l-X+0_Lv&cGC??X|Q<0^)MH zxwdEJ3|ER(-xEV!+MncDIl}rfX-s)1M(cq+11Uey>P~(0zsD=xp99n~WXAnJvG<*p z9MbO4?aoDyExe87H?>o3%z*O$xqsW=xn)GW^fQ9S<_p4dJ5;CMY;Et2FRIMiXyfve zztm4Ake18Lm}N!|vZqP680MqbH(4!W;p)A(jovsvybI4?W=LA2W)XP2J5*9ecA7r< zYhixi!_mCm9pS-UKGO8u{!_85U2q9I&Uz`1G@D{EDs#n3G~IE$hS7;V~E?;;m8yE(LVNRW=cVFMR5&>5X1W z%3)LLoD43EePSiNm*&iqGe%Bn0sOmF87HvDJBHV`;!Uk4r;x)zO8fvuT8EV^ zgbL4tqh6~e9je7rpQW+R+39hD!$aCw;B*BwwORHZ71dELV-+bAIevH;#Gn>%%ewEx zeIqMlrUwP_HFkED4*}9_pl>?99a2pZjlaj`Ws_~ErwHny_}2R;l62gn0MCDhIP=Cz zw_-G$)%iTB@aA8PenaYdgUG|LjI8~HYoe%x=yo_>?B9#6p68H0<=Z0Siq|Ayi1tOJ zKCFCQPQ!qiY4L7;-o}OYP6VL`SY7RL<;rW|hz!z1%_1(7J&6L?{=0bad6y-@?&26j zo;Ro6O}Ml7fO}*eBDLBB$>2Y2Iupd&V32rvMEjaego$1G!uI$rj7E5?EIK^>3I(OVgycuoph*uKe|E!bJ9%}1)jp`f@; z3COdlC1a9~Vk$tx8~RucCH+gl&Hng?Alf2Dam?VuH(K27!cz7AVLKMRK<~fY*^veT z3i=Z@gYWBw4Ie#Sci-#B+n$*0k-u$y;A{w$yvO2*Z!7Fr_i-=1k-SwRT#;#&3-rCj z3R#80A)Lkxi*)v$g;8xR!ai(SFyAGJ-ReU`SGI|qPz0Fk)nBH( zUOykUW;l_HV1K2*AX@@?mGG4@I7u(M;?W+rCA{}92icn|$6O{ExSYJ+rhjB#&iwtW zF-eHDT)>J^I2*?xGFS9wNxRu)fC9&Ykkj`^+SIlcl*8Lv+v_u1hca%*75lW;;?YUZ z-^F%%FUZim7r5J~-t^FHWP!td15H%udVXH?pIiuM)gL#cS!pmm~}+57ghIXXxCfMuX`=6cO52b5=0eN^#o)ZG|e2J=wv>L za{BB6vl~Rk^lUx{AO?L}{`!lYL~Sb%$e+IywbbD5A@BiS(EfMnj7CaA{q0A?D^Ir` zY$b}D_}=TPDD@j!6_Dkdr=5epVo9doat7TW_NmxxRxGh!JeNyIi}9{f$U*+mGXxs= zc%GndXY5^z-BBp@?wZ;Vyt#lYTg~{^*JJ@jAB!r57JxX1eeL9-`QfI&?#s@ z>T=3Hr7Y+}G=o61Zz28b2&?AWS`y#ps;>|el=f1=%;(c0YVDs8D<6Wy-q|_Mh~r0A zYii{g<_6Ei(&_>$RX`xK0yxCYTn_6Ymx2fy{@b=K85uwvI{Dece`YCza5@a;-H@KN zf~IB-<*e01qWYsnf5Vta#FZ~CUZ;G+1!Rx{I_Ww8(MdP2nQ+`+&5-fR3I7z_+;%WjGthGll|@l_UUZ(a6z7l$HMaKl zU7+?3l!=UNisKIJ815zwh@Y5dv3MuiElKhBFQ}_3QBFN4x8p=?<;$fGDPO+5eO%1< z>jLBSB%?SxgQ{_Hs>8bZAs4&P?|F)fpOQJV1%1_KFM^^oZvF$xM1&zQ^3PUL#Q;AnEGTwc?Gy2AK!F0|9s1SYdB5isf-p>sPmLZ>C=mm;g z2lO&PAL*O4yukx$Ix%bh%vyT2%1+Nyu8GJ&o+;%>$o!>nvnjT|3zKA4OMVRy!v}v`#=LRhl6y|PF|;zI z81J^zcH2Hjg?NC=1Nu(3KjZN*52fh4v^{MCM7Q`Eoxq^P@G1a4&H3;d;=S;sX zVqXqesBUlVuda346sdlEl1!rj7WYP=8&(z9+Gb)9bc!tf1vv9FIbDe~@B?^!?A6&& z?^vreu!gci?->u=pecs@Zqs=^yxar6UgJP>DI(XJoj>UCxP16|7I>=C=Q{#I#cjHn zGy2v15u=hGeGr5|LMl+>$jKPF3B(CW67`h*c5=9|#yvR;=bM@w{L0>+b>F6}#*+O#c_RrSu zB~x9%k4EEK^WNHWpnxBb-=8Hp4B5VoKwX#^Yl&Q3kNyv?k7h)vGUdGTfxi@3t~vR_ zY`Z!W#xkmoVjIspHgjJz)E~JxZZebbBAdS)&qVD0EO)amCfV767D6$)LbL8T?z6-e z-12JCBib*`R?eZuYSZiGlS;vYh{md4WtmGEB_o@^MyOk}&WxRNGD6C2|73q_8ejY% zPzRb8a=ZJ8n*rVPTN;gHrpS{qV*iEn(AnRX$`Sp;t|lj4peDUzdT#i%`w^M5U&41x zxl}JbW#L?W+GeixCB`O|k{t`UG^=a#_tG!si-8u1`kBW#-MSRY%nw1sc8Jb%A?lN& ze3R!c?pl_g!s;Lc4XYV;O5?gMm1GXQFcN78e@mhm$tj%=?xHxtKJEGKk1;;>FcO~^5IR+^bS7Fg1{2}T-ERLyF)bG3yNl%9aj47#Z}tI zr$@>g6lI^ZFf)C8<44|{XXj}w+#dK0J7mj+^iH=x@s@}KN-a?z@-xZ5&G(QilPSh~ zdOr{9ymu_zt?W^o|KN6}l-JV>1LOUD_0W^}p?=aMM4m$3~c8@b0U6tNE!w zN!}XJEv-LgViEPy2R8D~Ga%re)~`K|>$L^l1`YM`w#e{$u~%rw==RWvP9X!nd2RZG z6o+YSicL95dcB=>8hX8LHip+!p6QVK_qzI32md<{swihgxk3_|rwc3~Ulo_FSQBT+ zLx8#w9xl4!m3brV`nzK_nW%R(-><1g}oZIu$J7zOAS=nJLSxk-gvL(#P+bulV`@x2V*AcaZo2*<**9 z*wuU)j^{M^gidsB28Pl|IZzxEv$F1xpHEjsL5Bs?`PxS;pfjOpeoW6Y3cSyY)n0Ah zE)lF*oewKvDn+sX&VrfI>g?vV#ZXDq$GlF8Q+I;pOEJj z#zBl3y$My1_yfsBJ2usb1)zejDBIO`$}>o}?Nlw=#e``+wvAx^r0 zZ;D^5ursl7N~X^cIla(6VmPNo@2%1m;@L5ET{0i31;Yyn8Ap0}iF3$(=@Z(DwiWS< zWz6OAK9XMGj&_3!YghXviu;uQT*>M`%*;+~=7jt;{0q#JG2*fE^y|yHr(Se#Rc=5u zx0loXvZhy{_`9(^+?~r99cjGGlOBF2dYreI zduF2F%m&#rR9aYIE%|fWFaV!*{$O9V)ULj^alD4r`R^dx54KXTvZduH1V*bYsO|P< z^8}n@94|S=%dW6H4uwTMOHuf&@1`@m1aUQ<}d)?F7J!P$KT+O;t zDSRGiMt5?3%29w?6lFR>Yx=h69Z5zqL+=t!v2y7Rfqx8el>@5XlAVLSby)2nxbpjr zG|97&Br$H{<(xk8b1#z3biO`Pzeb|+@&-L}P&$Wlr4%mW$qHT+VMx4W|NZTjCNkIO z0S7PUbiuS4^JA}tvfI?OLE1y12^MXf%9Eyd1Wgd^Yn9&$QJ+e6r#j`VYBlw?7e4?~Q7(q< z>K*_5t%kL*xWAqA*PiW&q3!V*a-Uk(`K7N-=Zo=Ok_>sY^^1FUcC-1`a5VLBKKj{ z&n{S^gnVTG&rU$JipEUx&0O^grns#~n9Thcm#-c2^!1H5-rwgSqQ-QvpXaZeg>4ui z_NkdMxBmPCIv==ZW2Rg$D?`sI`i`!DtqDQ0H>X@|vizHtaiN9w0$@_4;Re^b zW3oyXOJ*Ivd7dV`%f=Q z*i@NB{yg^6?Gz2ri;_cENR#IHfWEJ>^Nq?bPb zx%-+Hhn-XiQRuR=hJ0?jX7}=H)xG3is(r;4kAW~dJru+FeU7^gk`>&JYbwESD&yA&mrn zLFo0kvHKS~6amR>S!CK9YTVBCa|=dw>MOMXZ2*${8bRKM#{w7@?5vmDU-6uN%2+At z(TE@a6tv@j_A(C~tgv(&j`)Qb@Ru#`jsI4xDMP_d?QIHE#}Z3oS2g7C#)Eg~vGgRH zO>a0L<~CQ_=jxY6*@)kd9{TP1T}zYY;dKW__sZxoWYtHt(dU}gN_cWL;=oI)DhK;R?oXzk^Xy4{O>nPAT=OS#N&@9BvM(%}al+QWZ)Gyv7sW5-$7Pjp-gs$*@R0z&aD(j*Fr9`KCQC z1_J2n|LZXg7W9rA=D*-4G|Arv2LeApeW9=v<=iGyoDZ~t-z|F_z(IFdG)Rz zr1{CsH;FYxM;64JoftuFHotxr+HN%C(AKmpnMbGIQTCG~8zUy;dWszFjltyuHX2*Y zY8D8RlGTpeL(XoeEYSRs1Aoty?N}Tu+tb8$h~5rVP;v7KxwOjchYvAw-5#whlhh$~ z4#E~kIIPN(E?m=GS}b9FBEcop@W9ZSx!GggxOm)8bzE< zZ3_&PcNo*1snM>nv_Xk|aJv$4AwJRjC2zq}O4yC+8hb%wQ6~nKml;2cAbXKi2FF(>qZ83HTo*XI($={Fgt& z6V`4;0l}`?w&J>90^Z&FyrdAuIBdN+>%x;cgZkA+G2qwaFHV5s$+0l(*1iL#xBDtc zqHuN4*pl$XWGt+h?)UW~3}tk0nA zz0y?Ruqnf(>^NA4IIxRTYQNd~qLz>0jKJ-!C3TJfYw|;5S*t5q7`V$*BOTID2Kiwig!0Qi75eELLFGGwa}fH1~~d~F)ZOqm4P7e3KP^(MZ3IXcyxD~k6#`d0Hw*>)TW(j zn-WpwqCyVIjI1SBwPd5JxJmK9DkhtiijJ9jr@1eUPLPuOJD5smPn?Ce^xjp4v76r? z@C}{^$Xhd8gbwv~L4*{=o9U{--U}qqxo-OQ{W%IxQnuX!Fy6smqSIiugY)YQ_wY{< zzk_#H_khMB|4F{!k*#-cVIew{3FJPMGsq3SC*}_lLJu8>5e+u?i3x-|W&0JF-x93u z{J?kjzu9zee-v{dbZR0?b@CFP<#sV2s)QBj=t0|WRoWa9l-=hLozbpD#ZA>ULyD`~ zFGeRk6zxLfrou!Q6|jsavTWDOP6zci5eBjC79gL{S$r!rlMeMC5*! zn42oI1UZPl{GnR%3m8+{=v@OA`bGX4am3_$#gNsN1kBqfnESjjO51fAnmj!vf2R>> zy334#(875!b)l0mXvKDgiYlrOQsPZk7xU!_*>Z?G>hMm2_}DC70W+Uqn$Be>As@k{ zSE=-5r}gQ?0Ruzz4!4wNv4S;) zu=thQrULjKEc>`v{LYkf)&T#+<@CH&6{??R+=7#9WRJ*e3?GID1cSYwTsHy&m8do!7E~4b&gnLY*Un5 z^Fb@UpKU9%I93A+>)t^UhGe>-42;vC;sAyp8EoM`=MPl$$lv{UfQTwy0T*cpdY0db zpxw>S7Ejny(f-RIe$|2+;y*LM+Q;%n`hoDWQ&z+9%~84s6cbPV70Z%jRWZ-c1R4^M z+PIHvu{Ubf!I)TF;?XF{=}hUpWBOClW0Ka#Hfq^d(ABaC2i9ytLUuCgGO6>!Txd9y zYSV0?W6ePf6(=9hZ9%*sZylN@Uh^BVe70>aiW^@=r4{&WJNcgxE~UG@RB|z@9f^4= z<9__GkiDSbNw~Np-X}SMZ-SOCwtJb<>E5HY`B$GHoo=LEox4o845}M&b{?w^aF^9k zw^7aApbNcb#T7pHan9JT4DjSv8p)kIO1%IsFTU=b@#9@(pJ4USLsZ2hx(+;LuICKx zr?(WHo^12DNTpndX#4_CU;O}XG!n$lV@i$=f zp)-WjR`*_T`#+%MVc*hEK&xayJy=u7KOF20Y%PSF$ZogG_*e%%n?>}rzMo$Wn7*y~A+?u<6h(v$Z6Y3HS^24y*5_f+7XfX}iwNb?b9KyA77R7$L~C#T;P5 zw>C@4FVMLZNH^r}N}x(MinT_y>sbFG=>GST?Pj< ze+8TMXZUVU&~DY+EkUp``47{8xqS9o^wC^ckpJR}8BwnTr zLU2KAM%o?p&KwC<;>a5dy)rmQwBKyzQX{_3&~o(+2b$xB)6P-+RI7JgGCze%-(K8O zTXET3(MsFzF zGD64_S8LX$2*zu(7A=?@RyWwMCogY8OPOf%?7HKx92{TpyWHu|2zG%g;spq4&2Ctv zLFlU%Y;TCHNRC>k`?R0KM9{)>CbKx=>C4Fa+4UtFEKPboPC^v%xhAvzae3y#I%8iu z+c&p%w)plTgx+$wU+P*qFY$&ECZxBAMKF66{Z_2kvZ5_22dgwDs@y`$_wu$!hKg4i zBjG#Xo6rU#-qOs+jiJy;db|(KgSsj4D@#)!^2a0+wVC!&7{5;o_zb&~G(OOW>L~ku zurj@Y|G#mz9urcSWpmG#`XO%=+EP62*KSYH>1O@@W{ zs4_^nk64{LKNZ18B3W0$=fO@*uS1$JpJDS`rPqWn^Tze)jFw$ZG#U_1m#+Kz=-`(Ot`J0hqk& zWqxNF1(ifX^($l6(WD5B_T6m`=BfUC7| z9U*M@%qgUmzDen0B}DmV+m!%te31e;9nRA=XC(WFHlXNnS`^+&KoS|N-?IC4O5kXF}X>xhHERHm#` z5}K0+Z#6OoaV7R>7E+wNhdzhdb^1Vm>Jp62)_T(v;Tjdla3I%Z0nvuI!)*2#rzi>_4OY3 z_>aK7r?<8uWo2?;NjmkZW>ulO2{Fc-3hD&ls>_yY2ewhOoDVrs?R1YwA0^@W|Kk7U zrP1K*29eLl9Zq% execute() { + List resultUris = new ArrayList(); if (mOperations.size() == 0) { - return result; + return resultUris; } // Apply the mOperations to the content provider try { ContentProviderResult[] results = mResolver.applyBatch(ContactsContract.AUTHORITY, mOperations); - if ((results != null) && (results.length > 0)) - result = results[0].uri; + if ((results != null) && (results.length > 0)){ + for (int i = 0; i < results.length; i++){ + resultUris.add(results[i].uri); + } + } } catch (final OperationApplicationException e1) { Log.e(TAG, "storing contact data failed", e1); } catch (final RemoteException e2) { Log.e(TAG, "storing contact data failed", e2); } mOperations.clear(); - return result; + return resultUris; } } diff --git a/samples/SampleSyncAdapter/src/com/example/android/samplesync/platform/ContactManager.java b/samples/SampleSyncAdapter/src/com/example/android/samplesync/platform/ContactManager.java index 6b2dfb14c..5b09eb165 100644 --- a/samples/SampleSyncAdapter/src/com/example/android/samplesync/platform/ContactManager.java +++ b/samples/SampleSyncAdapter/src/com/example/android/samplesync/platform/ContactManager.java @@ -24,7 +24,10 @@ import android.content.ContentResolver; import android.content.ContentUris; import android.content.ContentValues; import android.content.Context; +import android.content.res.AssetFileDescriptor; import android.database.Cursor; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import android.net.Uri; import android.provider.ContactsContract; import android.provider.ContactsContract.CommonDataKinds.Email; @@ -38,8 +41,14 @@ import android.provider.ContactsContract.Groups; import android.provider.ContactsContract.RawContacts; import android.provider.ContactsContract.Settings; import android.provider.ContactsContract.StatusUpdates; +import android.provider.ContactsContract.StreamItemPhotos; +import android.provider.ContactsContract.StreamItems; import android.util.Log; +import java.io.ByteArrayOutputStream; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -234,6 +243,43 @@ public class ContactManager { batchOperation.execute(); } + /** + * Demonstrate how to add stream items and stream item photos to a raw + * contact. This just adds items for all of the contacts for this sync + * adapter with some locally created text and an image. You should check + * for stream items on the server that you are syncing with and use the + * text and photo data from there instead. + * + * @param context The context of Authenticator Activity + * @param rawContacts The list of users we want to update + */ + public static void addStreamItems(Context context, List rawContacts, + String accountName, String accountType) { + final ContentResolver resolver = context.getContentResolver(); + final BatchOperation batchOperation = new BatchOperation(context, resolver); + String text = "This is a test stream item!"; + String message = "via SampleSyncAdapter"; + for (RawContact rawContact : rawContacts) { + addContactStreamItem(context, lookupRawContact(resolver, + rawContact.getServerContactId()), accountName, accountType, + text, message, batchOperation ); + } + List streamItemUris = batchOperation.execute(); + + // Stream item photos are added after the stream items that they are + // associated with, using the stream item's ID as a reference. + + for (Uri uri : streamItemUris){ + // All you need is the ID of the stream item, which is the last index + // path segment returned by getPathSegments(). + long streamItemId = Long.parseLong(uri.getPathSegments().get( + uri.getPathSegments().size()-1)); + addStreamItemPhoto(context, resolver, streamItemId, accountName, + accountType, batchOperation); + } + batchOperation.execute(); + } + /** * After we've finished up a sync operation, we want to clean up the sync-state * so that we're ready for the next time. This involves clearing out the 'dirty' @@ -518,7 +564,7 @@ public class ContactManager { * But it's a useful demo to see how it's done. * * @param context the Authenticator Activity context - * @param rawContact the contact who's status we should update + * @param rawContact the contact whose status we should update * @param batchOperation allow us to batch together multiple operations */ private static void updateContactStatus(Context context, RawContact rawContact, @@ -549,6 +595,59 @@ public class ContactManager { } } + /** + * Adds a stream item to a raw contact. The stream item is usually obtained + * from the server you are syncing with, but we create it here locally as an + * example. + * + * @param context the Authenticator Activity context + * @param rawContactId the raw contact ID that the stream item is associated with + * @param accountName the account name of the sync adapter + * @param accountType the account type of the sync adapter + * @param text the text of the stream item + * @param comments the comments for the stream item, such as where the stream item came from + * @param batchOperation allow us to batch together multiple operations + */ + private static void addContactStreamItem(Context context, long rawContactId, + String accountName, String accountType, String text, String comments, + BatchOperation batchOperation) { + + final ContentValues values = new ContentValues(); + final ContentResolver resolver = context.getContentResolver(); + if (rawContactId > 0){ + values.put(StreamItems.RAW_CONTACT_ID, rawContactId); + values.put(StreamItems.TEXT, text); + values.put(StreamItems.TIMESTAMP, System.currentTimeMillis()); + values.put(StreamItems.COMMENTS, comments); + values.put(StreamItems.ACCOUNT_NAME, accountName); + values.put(StreamItems.ACCOUNT_TYPE, accountType); + + batchOperation.add(ContactOperations.newInsertCpo( + StreamItems.CONTENT_URI, false, true).withValues(values).build()); + } + } + + private static void addStreamItemPhoto(Context context, ContentResolver + resolver, long streamItemId, String accountName, String accountType, + BatchOperation batchOperation){ + + ByteArrayOutputStream stream = new ByteArrayOutputStream(); + Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), + R.raw.img1); + bitmap.compress(Bitmap.CompressFormat.JPEG, 30, stream); + byte[] photoData = stream.toByteArray(); + + final ContentValues values = new ContentValues(); + values.put(StreamItemPhotos.STREAM_ITEM_ID, streamItemId); + values.put(StreamItemPhotos.SORT_INDEX, 1); + values.put(StreamItemPhotos.PHOTO, photoData); + values.put(StreamItems.ACCOUNT_NAME, accountName); + values.put(StreamItems.ACCOUNT_TYPE, accountType); + + batchOperation.add(ContactOperations.newInsertCpo( + StreamItems.CONTENT_PHOTO_URI, false, true).withValues(values).build()); + } + /** * Clear the local system 'dirty' flag for a contact. * diff --git a/samples/SampleSyncAdapter/src/com/example/android/samplesync/syncadapter/SyncAdapter.java b/samples/SampleSyncAdapter/src/com/example/android/samplesync/syncadapter/SyncAdapter.java index 0f570cd32..8aa078481 100644 --- a/samples/SampleSyncAdapter/src/com/example/android/samplesync/syncadapter/SyncAdapter.java +++ b/samples/SampleSyncAdapter/src/com/example/android/samplesync/syncadapter/SyncAdapter.java @@ -32,6 +32,7 @@ import android.content.AbstractThreadedSyncAdapter; import android.content.ContentProviderClient; import android.content.Context; import android.content.SyncResult; +import android.os.Build; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; @@ -115,8 +116,21 @@ public class SyncAdapter extends AbstractThreadedSyncAdapter { // 2-way contact sync providers - it's more likely that one-way // sync providers (IM clients, social networking apps, etc) would // use this feature. + ContactManager.updateStatusMessages(mContext, updatedContacts); + // This is a demo of how you can add stream items for contacts on + // the client. This probably won't apply to + // 2-way contact sync providers - it's more likely that one-way + // sync providers (IM clients, social networking apps, etc) would + // use this feature. This is only supported in ICS MR1 or above. + + if (Build.VERSION.SDK_INT >= + Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) { + ContactManager.addStreamItems(mContext, updatedContacts, + account.name, account.type); + } + // Save off the new sync marker. On our next sync, we only want to receive // contacts that have changed since this sync... setServerSyncMarker(account, newSyncState); @@ -168,3 +182,4 @@ public class SyncAdapter extends AbstractThreadedSyncAdapter { mAccountManager.setUserData(account, SYNC_MARKER_KEY, Long.toString(marker)); } } +