From 71692ebbbd738cdbdf044234d99eb069d8dae95a Mon Sep 17 00:00:00 2001 From: lmendo Date: Fri, 28 May 2021 00:24:43 +0200 Subject: [PATCH] Octave compatibility of `factor` with `sym` input --- compatibility/factor_comp.m | 50 ++++++++++++++++++++++++++++++++++++ matl_compile.m | 2 +- spec/MATL_spec.pdf | Bin 531303 -> 531432 bytes spec/MATL_spec.tex | 10 +++++--- 4 files changed, 58 insertions(+), 4 deletions(-) create mode 100644 compatibility/factor_comp.m diff --git a/compatibility/factor_comp.m b/compatibility/factor_comp.m new file mode 100644 index 0000000..787a426 --- /dev/null +++ b/compatibility/factor_comp.m @@ -0,0 +1,50 @@ +function y = factor(varargin) +% Fixes different output for symbolic input in Octave compared to Matlab, by using the two-output +% version in Octave +if ~isa(varargin{1},'sym') + y = builtin('factor', varargin{:}); +else + % `builtin('@sym/factor', varargin{:})` does not work. So the following is taken from Octave's + % `sym/factor`, with a header and a footer to call the two-output version + nargout = 2; + f = varargin{1}; + varargin = varargin(2:end); + for i = 1:length(varargin) + varargin{i} = sym(varargin{i}); + end + if ((nargin > 1) || (~isempty (findsymbols (f)))) + % have symbols, do polynomial factorization + if (nargout > 1) + print_usage (); + end + p = python_cmd ('return factor(*_ins)', f, varargin{:}); + else + % no symbols: we are doing integer factorization + if (nargout <= 1) + if (~isscalar(f)) + error('FIXME: check SMT, allows array input here?') + end + % this is rather fragile, as noted in docs + p = python_cmd ('return factorint(_ins[0], visual=True),', f); + else + if (~isscalar(f)) + error('vector output factorization only for scalar integers') + end + cmd = { 'd = factorint(_ins[0], visual=False)' + 'num = len(d.keys())' + 'sk = sorted(d.keys())' + 'p = sp.Matrix(1, num, sk)' + 'm = sp.Matrix(1, num, lambda i,j: d[sk[j]])' + 'return (p, m)' }; + [p, m] = python_cmd (cmd, f); + end + end + m = double(m); + y = sym(NaN(1, sum(m))); + k = 1; + for h = 1:numel(m) + y(k:k+m(h)-1) = repmat(p(h), 1, m(h)); + k = k+m(h); + end +end +end diff --git a/matl_compile.m b/matl_compile.m index e3595e2..a97bd0e 100644 --- a/matl_compile.m +++ b/matl_compile.m @@ -368,7 +368,7 @@ 'triu' 'tril' 'randsample' 'nchoosek' 'vpa' 'sum' 'mean' 'prod' 'diff' 'mod' 'repelem' 'dec2bin' 'dec2base' ... 'hypergeom' 'disp' 'str2func' 'logical' 'circshift' 'pdist2' 'strsplit' 'max' 'min' 'strncmp' 'round'... 'datestr' 'regexp' 'regexprep' 'imshow' 'mat2str' 'blkdiag' 'strcat' 'str2num' 'str2double' 'cconv' ... - 'gcd' 'lcm' 'fftn' 'mode' 'nnz' 'str2sym'}; + 'gcd' 'lcm' 'fftn' 'mode' 'nnz' 'str2sym' 'factor'}; verNumTh = [4 0 0]; % first version in which a modified function is not needed: if (verNum(1)wjk)YAh2=}0Wyu)g2Fx%*g(jZEUAkojhR+=#r6i(GDsERTiA zHv4AtCEB0$b|>>B`uuJygoyS()8{an)2J?&wm%V}Q~haDC%yfB|C5(2vN+8O=_P*) z(2^9JU7E*Lk(1<~r`ED)-8TmBZFZo!+U#T%CwWC|pVc#Q$?7d{5-C_qx)Eh8MV_IS z9jvjG8AwUvqOR$_*zQDQL&xN!8GUfT zI*4hO6=dDPG@P1~>5j2yfoSA;z2>6~meneQ@Od>?mUYx_MPzAfojN@3%-HJQ=_Upv z>MZ&}fxZ5o8u`jF*)zI`MAJLN$32q^Ns2+o7gSz1TGwf%v~d=5S>;sBqM zWrl{b;zcR<-8Ro5iMOonMy-FE=g_*^Lb&Lo?P+zP&%G(!X<)w0xkN|H48NML^)AD{ zH%|Fx@?RKR?>j0n*4-zG{AAMv+ zB07LHLPw-75(sBLVnD|H#hAb{+HaxW4Ux6-!G>L^T)1-vGf^NKEo#UL7^=ESTh>5j z4?9XF+?X$eC#t_)7Zz3KW%QtFJ(!{OU7Hsi7a$JGI?emZGUS($U6zOHSU}ef4@N;A z#>QeBrvf3!vV1}h5N?0lOWUcDsE(~5r^Xh+Z(YcY6`@>1aznxH7;cfU%=T+9mHjWw z%rih7(wG9sl80FoD2=x5sb{gFSz)sPR^U1-OXLTwd*(EBL>Q(A7VC%__zxWc)8axv z@NF%lS85U77vRrw5(O(XqirFin2w~zrs^N*#A7e4Uisq2;;DZkf<2qjov9+=lY0(! z3_&Oh-OGxIKW7|ImQT-(A_TnarbgQUnig%TefM2V?{S(ij}domTfJy5kDyib$q^&i zJarB6JTQ`SwX#rXv}cwPKwI51ajlY2i_4F4Y`s7Xk?rV?w)%o)2j{OH4rkAa7WjRa(O+g;*Pd33Htc9G82r*u}RbNgV95!1(t|qD0{6Zh0f)GEW1?-TE1UnD++iAb>zf%Xr@A z(ep)LBhGIXgyNu_>omrIkYHD&piA6<0#U_C0jdu`(9r>^nZAM-Qz}q@&Z$!TU>ZCo0D_yrHhFV^PmyrrysvxAbL63?u(S z-4h~_0l+4OFppmy?TLl~+quqHj1QKqa+I=uPeu;(IPXG%f9Ov*H=q*;3L*(_`yz=g z44i%QuM~f37$j1Ca9>R-M>HCqXB+6s2Y3F(*@zl`2k>_SEKKUT1@bl5mt9sbq%P4r zVf4=G8NCyR{b1xV3_R;`{5lZbN|a1xoR#VSsf+U3H4H1h4!$P^TnJZZU{b-{mh5!( zy3>u}0R_<7j~)dC`;Vy|X{bP|?;M~XwQ|!;_pyKW^viV;7yOI}dIDha*RhV79d^1M zn>%d{6m)wau9u>e!f#x9?Vc%&U+_-^&?wiH_hPLB^3BB|NZuGQ7mVgCp~y^^-MsRUrNJh+<& zOi)5&9_U1nM6lp)7JLjpajr)9cRzI>1|P>Vq2aGtla7Bl4If5Kh30moR9M@2BvLSs z@Ss`*UH!w4xEt;7rX&%GhGDzSI&FB}RD+$4<&%meNz#5XD@|S8j#wNvqcN8{T&Bfr zWw0KF*)pwMZ(eM+4H=CEO~SinUbk~=H*soA;krIi%D>pd%-qnt>@Q&t7mO21go=YP zlSE48B*}luqDk{2FBULg(Qs4c&@r{LK=a-2|9Jo2RZ*;(4AnVipmh-iuodBOygym% ziU`J99fHQQv^lSIN+K;DRl49JtjxMZS)4$wuc^{}Wwn8=dXr{;V7EkN+bK)mWp(ST zwJTHq-H5^H0<>rqA8V&2t9ads4>QoXjJC!FEjxeXLd6>wYCYqUv-*0XS)QtHzlhh~ zel%80hJV9Cg&&z~3fEL`U6Z?}bS-`V*0uMasG`T8+(RcDE_#2~nw%vhqMbPx`G~i+ zyUvezLRb>F>wM%+27Uziugy2JyPtp6g z&2@jWf)SWJ$m$g>-#$rN4L6?0eQ71rM;8%XFs3oMpmC#{v}sJ`r`E=-YgcVbS5D1$ zqp_Ae%;#60L=h%B)%`oKA57Mi75c{B`og)BjCrhxjKol*eZ5<_t4zI2H^w7n3zVrJ zEYV|jBdx+WZU8QIWl}$TsFu_9qOhIm*UNv()plK+;B)TamJWe7oy}me+5$9Q@4YJx zZuVuf%Co##`98O42gxlWq<++&!Zvb`5zR7fJWQvxc?nAYk~XV!`n;H^SqB%hyxyF@ z%@GkI?oVH(`|Ea;P~}||#`uK3L@)Xh#NsIKVzE^(Pg<zF zn1dQzd%i8QCNB%G6fPuDksK4yEhXS20^c3zAWK)4dR(Og zMU;5@rGq<4yOSToL_`VGiHC{!JWRaDD-tJt1b%as;88-TiVmR(s1#a)5b}SA&oJ1{3Vn9x+4$~1Lv*bMY{rvkr1WTt1w2&x^;k5oxf#pw`u3vrB})yBZ+P{bAVC1PCQsuZUKHA zG-^iTbx|Qg_65g;i-WSF^R^%oJ;JZtC1_BF$1QqmF|aQdET`n!eY@6$3Wm~ z<8~ijelO#4pkfr(!T^5`Sr~8*NU3FUk5kwGVftwwMK1Bls0#)8x<{!6cg}~7C`9N@ zSGbYfmxDlNdmJf%4-Ox5n+0K+t;*WejhoP}ag5MTrB1Mc6FTIVjGy4NWWwPz4mxAl8;!8LcZT-nxn;cV^Kx5ZKY1)-y!d%W!eW24%kS2}lr9-e9Wv=* z1hm1*zliy#r#9d5;q&T8lY@5x^`bm^&YKld1r;`sGCJCz!YVBm#@FkO$#S4@=yHk6 zmu>gS0&BA_tNj&J9SAcQeQZ$YSrL(ldWZR-FfeoYhke3A34mR!_Kw7Wq%A+c4qd_V z0kYzu6BWhROYwh0c8uL>sF&EHE`5);qJhlETfWS)ExtegDeq+h#EPPCFyH3^);z_> zjkC%Cb`r@he?^<*maU4|!%S>dBY;%y*V7UJ&2`q0DA)@D^-PvLQTP5~%QotAZEP~?ntgwOYle>&r-b$exB9>P5)GRi zNP>SPx|DOqahG|y=lLTeX=kL`jSK-12Ul&bd6iRY4&kTc(-)pt89vbs9!5ZtOrqqUHTM$1wJn8!>!0R8_%ODouUA=SlCUq23Qe%q3f8 z^%+~-<0bYVZY%cB(k5*=9@Rt&{TRu+(#@|V*RK<+>h0S8LUaFyUCgOfMB)R_J`O(+ z7i{c?vVHVG_UeNV^jZjkvd+I6SF_tqeqfL>_XU5Htp5`$>dDPJ@)t@D?n2#yxfkFl zP9YI~#t$$FCrZh~7Uy&m6CLUPuPrFXqe+2)uP8rCP2aU|F-5v67v;7-jiBvQj{Dgl zuNyzd`sh^-5W&U={cfsqcGb(_3u5&@?{5BegJ1#z!4{OnpkD^*0B9@7);AyTX)uF9 z$WVX41>#_5r>-G5DI)DF%qsZ(=C|&@05HD-dW?s{H*JP~1QZy%dhgobV%l&E5@6a8 zxh#alaI=8dGH;S)(`@SRCX);h09?Bvb(3bF%Lh}OVOxBR5 zr3*8`ex5{vQx^TDt(>a(ApF>E9upO-!4rSL%Or>N10;D!iy~c;MX@DiwU|t|i`q(< z7c=vPY?hn9E2bVxE6&QNo+Dp0lyA2~Id+|BbvbW#X=NrQ_QTzIFq2uCO&$R52%UUD zcwr$VU1Zs;R|A2M%hNX#a4602*I6KAUJe-@JLi7@f3+}&3T19&b98cLVQmU!Ze*8F zlLG~}acu*vCjmE;aepb75J3S7f8Z_DRs`e8NA_ZSz40csE?2yB*s3H4N`xeoDN^Rc zlez3~Pd6H*L|LBk*vcNJ00IyQG`{}&Lvwhvjd=9>hKKUy?ai|vQxOTla${t4yMZca znbA>_E0!w}-Imd>@tx~;i={L?Zf$q4>z*F^X7T&&&oD!BIzy_M%3yl`f6GI=P-$$} zwsiHDezjf*6Yq)^i(=hdsPMQ8GtJk+VGVgY&Q-LQW+-hBYp^B5AKfrvUtk^^9bH4GbR$)bZS^4lW4ua!H$F_I)_e{B_?WZw7L1^ zvu`6)^4aoXRxK3Fnlqgxe_<1T&Eo-lx?`4@X~XNLMSC}O*)5hTO@qO2SnA&^{Tjyl zyVsvAAWaz0#ALqu{^57SYRxqI`^8f8Je)kfTVRpIu09MswXE)`EbRu5uo$YIEtW|x z;@h32E?7RaQr(436jW5r)~$;wjB6Is#CN#9Xep#*sm`FHnbyH>e;*MpaOzD97)Zv2 z$s`LF{ZgAGhGj=c_3dCEG>S}FCiG;&o?dS2zP-PMeU$@#)Hr;95!8ZZdK%(3G-FYh zw40``?x|_)>d~0kH5?A$ERx5|zI8>t9jYQ2V_!haA5=fIO*w$S1zT#vM4HZR=?_jT znptTHzp-flkFFUyf9l!{^}2UWP5r-d!>{FQQe{jU@Cu!HC;uGRwlY%zCD>~XYo;NmBw&?oMbS*n5nXnArer5*==k@hgP=Hr% z=0!up^^(D+_V8t|l5cBW?ews)j zk|5$eXq7T7=Xws>Fdi1ShTuVg!$016^1&06+LH^kmBXO|cIhoWHXABKFTi~aNb~uO ziGjh4((#WY{;zb}T7i``z!OTDhc7}Fc-e~(2Nt|mgOEz;_C0jB9~ zN9O2vt{cxmf3OsOK0AjaZ)<+a%JAfmQN>+Do&Ln0!p(x`pgrW5lQZBdnULq|(jR$8 zZ=X)JJ6R3XMBMF~p(?3$WvP6RAhHJxU?v*_7_@hNv3?(@6d6XIS)&etYbkXCK2rCE zt2=rk-iAukx~;3xWKtWLu_Y-4J;eHctP8)I%!>~vf954%DA1aqPN7Ron-43AwHe!DB`_uX_EpmG-$wrQ%0yknC72iqK~(2bhH z)l@I4!>(A_J{S^OnzpnpMP!<*oo08Tir&_`e-#R%0sW!-VFs;8&X4woq32qooquOqouh~3_UzcIMGo)<_57&ph5~54a)rngw ze{lq5o*pBx%(LL0xYB!S@W6mkT~mD|BtT({Qp5RDG7i^B9WxxZ1NQ1ikS`f8G_sSOUFJef5 zIGRI9$p9gx#xuXCW@4(|)}8Z$Jy;C~fA$D8FKJ+$7d&cI_)2=4y6Px#OcuYWe4vKT z@KzO12Bk&K*mP&B0~jhJ&+VJ7g~`zsAzb=1p}oxvksDB>Q-FTH0u$Kwk`c6mfoiVA z@m1|npR^%^0Iw^klUzTvc`AX%iyrkP5u!1FVJ214?d^VLA9fG}G7MrIKO%2Ae<~>L zH#S$Y6Dp5+6+E9R#GxY^yT1aC51c~AM4rsBs1-+ZV}StJ3>7{Ij56z?BPPO5Qdd~3 z(95v0x1p<{5=1wUv@2~(Q@DCv4RomV7H_ezhPf*@?H;Y7o=SLd9hcKd+PZu~{$sf+ zI^qj;lnAg`ACmPLkkIX_D#SPCf47Wfv1*2%s^5%931=;iL8i3_TiJd07#^j}pMpm( z-31AUm{~Y- z3ATKWOZc3Q9%0oaWr;CoS9>8Y5DK;yR7`}Tg!F`hjaMKP!;U2QrF@c~f9Q&1E=Gtk zBL_9$jBu=IOOTRa)wa2_7qw%Wur${*cEN?w%?CB!>|XQb zDbAEnlWuMOulvIz#??RyM>TV95s8T?m3@;*{?XL9I|J5#``ydd+4^EqM6yK6xjm!` z_JGQ%c*JL~T5!NzFhNT}f5nO7fhXH_pyFLo`HKNId>Ddg@ChF1B=CfF%)Dz%G+!aL z4pWcVN~+g=lxR=k66^LBrq%Q~!VM#0Dp3Cu7a8vJfio_;v;NvDQ@SQd zxL7wnSV9X$4XS$;C(|(>0^`bNJ>XV-@x`FA>=44UCl&I10SFQR@^eX;Lb`UG2clgNun3OU&o>kMOx+AScg*<+&eY zx?O)8tv`Qd>)Kt6ZLo&)0+lxtELHsG#X>;PzWp~ny84Xnf9bxD`34l(7aUh4fR^Je z;}(tE25$eUr}AwLV$@y~MCvs99;%}Es@k88j2NB>9!;pe3uew(o+LhTqy-bHihw)D z)KT`}spL$9Z!C}Fy#ot!;Gji06Fi#-9Zm@sJ&Ft0BZ`N;$`<=b`5hdjy z>gSmP3CleV7VsE&)$ar3E>bI6NXlR#{OC>`3bkpHnYD!p*EuQt2Ngfy!%(y~$jz{l zx!R;upAD*xUS|B|k+PEXfw61abGbLmW)@{Re%Bw3e>RsB;olPk2lD0qJIb%W^QeSQ zI3=d?EV}bU_n;Dh7(5YI(SLxT$A5N6Aw0qA{r5i(!9De93Mpo={+v(1X@M8w{|MlT zFbD}t#S#%XeAoAfAD%tKkHesaUEg?jWVP*QJ322vxru^-70~@s=D_A*?(hZn#43LR zl(sgVmqC*Q6qk^n1Kt)fH#aUdF*P7GH!&_UGBY4CIWjIaF_*yw0v405aSNBDpaWHx z&tCxt2QoA?E;uqYm)&0hIhQ`61BR0!A`_R_p#vzFu3!NbmldJ|k^(g}m%-TsDSx$E zTW{Mq7JkpK5U>wx0}UgRqAoix(*ZhNEOs!nZGfHKX&)4swzZWdRhK3yu=CsJJ0vAb zuH#G^_aPAPdmGR9USIeJ-yg0ou6~TT$2m)s65jRNHtl+%GorBc_6In6s{$ z<)u*m;+^k{a+Q}GTWzbIwk6#(X_wk^UfM4b*9JF7%?bl18$gHFt ziN&EQ9x@?e5t9w_h*3S4~moE+`J!sFGPV zS8HqCHtlSw&@0ze*)NpUR3x1haWbjVMcQGw(ZAbsrhY6zaJNvSnOkzggfE9FhsusPQ_sYR*LmOSy4FVxIA$`CkHK9!Gl&uFj9$3W zMQrpkl%W^Ev^V@w*QAQxSJxLGFE|F{+@1iai`Y|Pz@(5~w!5JAkcB})>Wo9>HQHNW z{OiHZY{Z!9fEHD_34ayFj00tjeErFb2_EQ)*$OE6u!VQoyWk-P+|ahjd|D z`mQ2_&8$thGk=|kuvwAUHx)?Gw}^YNwB}yJ4UQXu@DC`BG(pb!O}yx9+jg59t}%KN zy7Dsbaud4Iny++f;aPZ$K#c&?72i1Ii&+wefn_>^0Vh4+uM>+WCy^4UEII6EKfy8# z?Cg#mJKLqRluLN!Cn6YW(Wf_sw(WHPj`m2&{3MuPihqH&Ca-pFjo7A$<$kwDr>pV&soP1XO>u9Fj&wOxiy{k4bei#;1E>#ctY*ibpG^(g zb0H(!rhg?yJxBy65L4GxV>y;dw^1|E8y%4$&+b zIl?<%`8O#=PZAi`XPs=cCG>MjIFfT}Baobhpnqs*)&?ybM`Esx|9t>ftW3{HSvfmqRJN9&N(wW-6TYsH5uIIpvj~sJM@g(H6QGiMgSb(_1FsKEH zlVQse6x=x6cjP%P$Ws3Vo=J1|v&x;i8(n64vdNQ7$PYm~#!L+X?z9OZFok;)`s)(x zv9(+0JC`U(>9Zt=4sL9CUWq`rtA0p_!^BY&f6qo<{$M*?X!geubA^9LjRQrB27gu$ z4GsjyQF*g~r65mIjD)272P=J7?@lV_a+q+yYLpMY+~jwpq-03EsuBbQ{E}SIc35xV z_K}6Y8(mWJlz-N?zF#F?AYsMD-x|-Nxvl%!PuuToVe&@fM($09^mvr(7-l5>V0P4& z3{noRiq5I4`qmo1GJpGqYEuA=<`1 zC!GWLxl9llJ%Ioz0&%9N5gz!A^8~9RsK7If65pRRm4v}o2E#gESfj)PsBv!jD4j{v zT)zK5D&I&Z2$75fhv3*S;gV=2RZ{Z>+bXKofdNL`?{2EXjj*mwL*1JKMt=`)3dZ|` z{gBz4NEo_@MtCJR+-l~O6W2PI>Jx$dk9+jw9D!b+N%i!U$FZsalT+^SpHCACGRAq< z3zoCUbWzxnQKfO`NIKAwVi?G0YNQSuQ>ipb7OC2T^c8OQcFyK#7pwe`&Og_^z2M=; zj@9^UPj_GIZ}CL%wnN5ve}7ZmJ&+9fLLL0=)yZ7NxL@o=8CVrHNJ%7Sz8*f1ZTbJ{g$BU=fl8B{&YNyjix7*bI zQ1S53C6f7S#OfE8cAhcCjgi`d3UUEYJ71y|N6ZJxauKsQaS870N7xyX?Bp0b`}%|{ z-vI<~A5XaCJmCV|@qft=kELxm3M8iIATu_PM`>pg8uXqqEk-WJz^HM4pQ%`#DTvXk zO2lX)#Rq@pr=tYf`3ND-H_u{?KA-y)riv=i3QS7)@9z0kq zfyH96-!hMGBOblG;C}q!>f-XJL_|Wc%orJ6EhC{h6C#UjrdXy#bX7#x@v`k^bIp^u z-`?Jq{ZKWxG#^&^F#B}%_X~d}3{Yfg)ZIoS{NddN(1^kxews|->tC-f{&OKg-guZk9^@JvRY1~)qO}!)BDxXOnf1U{wm!1-F%{{x8 z*sYpHSLQvg(H7Lf1I>SSeN%P_o48#P&IzC=_-03=0A9sQg7c;zz-b!-tI99`JVP1O z+x({X2dv6^L*%Q5FetO8aGDudIl=F`?FU%E(>UM2Yi_zKA4)<@9??zr4>1$5moDIm zI{>`+`Cj~Z5rG$7)LYL99z+Al5~!cxYTK8~t$QReu|-#H27-UX%iNY8Q8jSNmErVSi2X}jlmxwN>m@;bHI!^Nw{Y#NRo?vW_Y7@I-<=E*a4(FX$gzxqrqzDU zR25G!m~V#`MY4aO274;?I`(>nBHYh#-!QTdocdN=N9e}laO>0O= zY%o3mntXjyQ0S@3x?GpdFu$vu%^I{Hct5!LJqQH76}*3&k~)6d6v&>jWC(c;o&gT? zxWT_F5+JStKu`t;YRYFp;Q8Ga%wf zNd901$(VnJjr09_cCb7Gqm!^C1ps8h)A4=GG1-GyCLl1XBwXW7zeRU->b@Fco)%#t z>3k+Je62V1LO5NQG&)0raZ%@8wcL3mMs^4FLkC;XBr+A}o!q>822V{I$ zGI7x^wy6GNX!SHtc@@+tF`-FwAbGBI2j5Gp$Z*RNlZA8#6eG!=lkdPzk;%w_vRKID z++}|I@52d?WGX1jYr3a5YVrN$phU(@Dv#yx%(M@wrs_xxzdR@fOC+aK@IGuJj%fmn zbDw`^oI?;=W8Qgog+Q{>9xKHC!wO;c3b9XaoJlKT!AR7hu?#MsY(q3fXN=ZN(Ap&k z2zgUGi}jd{$s~z%2D%GEJD2qUStF6Gbspc{?$`D)VaYTL;_@oP$#C55C+R%l&S*SI z3TmF6TMR167*Eq9G2A@rMEDqUz6f|$z~_JDk$@Ln&vnM*H&?S1%agW$j~+hXSdJbkYg% zhc9EWlGd4%zh_bP8?3kPv54Ic7umk5zxQ zLXJ7mB5&y2o07%_WOyhTgdvtcg^LvKm5vg**;bGqHz<@BZ{Sv!D54h-Yz-!vkBUiX z@GolgK9y(l=f!Yb27o{XGxkWJc<$34lx3+n#rzZb7K+(yOwNk7?3))etk%iq$wPL( zBO&HMujkWX*tpalSv$E2 zl!7tY;X7Vo&ZdNpn|AQ76K7=h=oIQYSTmMoich;Pw3bR#1nQye8lbXI8a;n)*QV%+ zqO0}*8Tu3lB*3rCeb;8nY^eKagHdti$J~$0Ht^YFK`gLdZu+Xga*)1zfNHROy}=F# zBF>muC}kPvI#OB!@8(=77EqN&0adVA5hU@jk#MFGahzGuebMH8d5cq*a6<9k6kd`; zOY)b>FbMny$}%eO+aF%cpyYpin*Xw#O^U+~Dw>Dx00GSI;~bguT-nrVtcV+`>9N*6 zTdo5RfpZYFOqt;4%8-$&1Q22))VbL=Js+q~I))noceDyy4%BiK1YVK=r1O{#Bd7_A z;JVD6TLF*)G(nZeO}rS)T#P~>Uo1-35(B!zTOnk%S*nlHQ0#<24XS@=AVWs)z*T%# z4J$$m8eI1i#sjzEKDZ1H06AT#V(i#VT7-a^Y<-PxLhbkZPH}&5BsG88sdDp*WT29X zzr)!&-w}XuTB;Nr?M+9;FLo{q`dBS#q(T>og#IhQt^YXoUx7*+zB!Kk$$^7ybJJpZ zUz}pp?M%th;fNvO-noC&;uW^XlC!G5NTf?ZWvapG&-I%CQq@udRqP9iqr~9>?a$VJsAo)JQ-{uYXIbp-vDzE z`!1{;Tm-o-shcrR;LVOgYCq(i&y*#Ewt+^42BIY~f(XY5=z4!gQx_Jc-m3~uDnI5m z8UX#8uyZ&S3$z6*_5=?DvsB}5<%x}Us=f6g_PBu`ejk~bpg9WqE-Ud_iw;Q&(mtw2 zob&MAH!giKvQJ|uRY7eA%0E4vSdB!_q3lo~m=u(qr%)qJ{Jc;G6*1A@r0arP473@~ z1SO`{bwXUfDJXyYpH67{ev4F0sslGK>H5LV19(Y;ck@EX6uq2DpnUt=5?lWk=Qy}0 zc=bp`K4vi*UvazYEn9+YeZo}$NUnx;0_Y{z)Wd~hh znOXWdqo~$pgFk(^W-4IwuIs?0A-B;wbx(>|NdsBcli$>`L>%AsVUDqpe$Y|?n>CPt zXZG;^jz6ozZy?&c34%jc%97uLq$PI0IYQ1R2~EGdIERE^tFRiXt_4Kdo~GlEFW}OG zxJDN>VTOO=sKH21fWK-%GZMVgu0sTK^&^cr3fwiid58~ytp`4tN@r|BMG>19)FT)w{DrdGGk}e-EtP zcd@|bVU7G;&nL8IBK2bU_cL5y$Z556ZckHwD7SxYGJ1@z9WwsC;)jq46GER|j0#>y z`CQ`Hr-%`JNGfH_Pm1$7V(fSQP_Dn59MO8LIlCMoUh&lTcYgan;+jL47GC>S!?5XJU0$xig+iiPvwmBCE<4tg!{y1l zeKn^~;4T(|Da7G4^_ifN2Q)w~{{!g>+Uu7=lLHf%IlBYq6*V?6E;BPVATu;GE;Tea zAT>8NE;ELnOK;pb629kGGyuW^{Sfn29 zj_r1ogH4L0$WpQR)mO#ltE&}X{r-x_k_iJPD^~5*YN)@5cBfY954$Fh(EHz40!H$c zSP5a7Db&h3&a_xxWlw-U@D4f-}dRSbew*vldFi ztO{0yrtRwA*}wjF_MZ>`7$kr5HW$-(q+(J*PZ%pdOKH#6((vpvH(bF#0gsN`OoUlj z9wd-KnpA)P`w>y3Wi|{56Sw~MrtD{eyiA3^eK@AY9KPEwuEl~gRY>}Pk1yAvr0Rbg zDxyw>mBsh#)bISwqjG7aWk%N~&z@H_f)HuTU&@wl<1qf1YWc zRcU~vqN;EAefRgXwKjQHT~cFz?WyvabJ=!bgIDXg=vpXdw4tMNhOLdwO z>nPmTWOw!fz;%?_1j-^0lGQha}b##xhr(3b1$w_WGYp(`h;P!K*BAuTOobXXdz zDolt?yQ=nOTm8?cA(zx&d%yMDU*JLVtfUE4?A0VAR+0unFMcgH#wCvklLU~G1OOd& z*G=2|mKyu(vZiKQ0h$`9wYW9s_zaq=`?m5Obq4+6aI}iD4<7-|n=@gu`^|r@+LXK9 z{ZtS`a`X+EC7jO9HC4$vI1#fna7y72>H<{seTVR3SJq#; zM^{yf6;h`cz+9Efvv;`pIoSPf*PKa{-QhkKJo}0p<~Mz?Am|Tvf*W4gXndiON-&Z* z&8F;p?CWWw+qT*6H@>4I8D)Q%nP55Wd|UlR^{^_o?RR~(t!{kXRZU&)sI_d{@_uQv zFok4XEDqkLFwCeTy1<{FZx%e71(YUtJlj^??G8RWXrSxM&6lW*E|yem{O*Tp$reo8 zd~q%10-!qD!^fX~fQw6N#8DNsE1geW3_M9Hl8ZU%JW8mmd^lcRvnPMR{q}bhOaNIJ zkE7)xdv{49jP5B<5FMS)LK~`c&Nv8ku%VU-WnR9YIP2kdet1+120$}UN(g>a1n3AK z-X;Is`!kWXXW;nOgd-9_T*^6)+_paW8)XYT6$>d!fv^QC%4p_9krV~HXAAvuO(}R& zfTj$nUz7Y=3(lW5nS6h0GQc~6$=C^_vBh9Ac2Sd25-j{s5#MVuFsT)8riizvS&S>l zVr(R3mMo_IG4>#>Wg1we(SpIuOW6ZXo1=EMX6fWSZ4io2IY1c^=lL9>U{Z_W_5HSL z?%JyNkL$l+BWw|8EHb2Z#Pv}5UGK~I&|ID-QUU0m%a@`k5)^+Wv%7%kQo6u~cRpf< z0L)Ma?=9eSt(kvr-|k_4pyEiMQB7gNUxaLQu{*1%%MJ^?0mnKOZ^;YB(*0DjwoA zPNc=@ZccyaOlfzzn{&nN{3$o$71ZNVQ$zTx26q$c!Lx)K#mix!Pe^5fC%c2xRLH9U zwUraB<8nN;2w3DZqSL?>&*(I8>`fE$FMLScKut}jIW?-`iaB#CMOdfT=BcKRJXTU7 z*7qG42v#HNW7{$3rb3*HWl}NLQN`#>EzjQWTT*}D@LG2?_jcdXe}jkx_Ay4I#vih1w;JSA#^B4 zl^2mugr=mUXuSpmmSTp910YgLVktm`4-9C}4FqBNVt~leC*ZUWcBObJATFF+Q4ZoO zxp;qW1?go~2s)tX ze2np`y4m+M@G0&ufKs*|&{$*vSHjx;G>>kw+HZWiX`S5bOeRMdaY&E)l-V{jPtfkyW@|fC`)vM47Kuv+rmu9K7Dwsh@5i zpt-@hiHNp{w=jks!?O_lr}V!XFBC$xqq3x8;JEk@u0f#OT$iy%>B3O;C8pp*t?t|V z`D}elY5gO@1c*ilO+{Ox{CD(lao_vcOL;Ak4d1mkh0cEU*Ck>M>ZYXuRh$pla^!yu z@y*L7j_{GD9o!|v>j>-O9&Nnel085Z1aHV?fO-&@afvFsk;xR1$vC1XE~QnmA?OM0 zCeRu+zC7&Y5zRE=o@&r6)M!GyvZ6hQrl=1zCY@qfY%i&Z8ibnQ>9Wi4)`LxTurB#g z=&gf^-K~$wfp<&kE;T1E4CRII?|gsQ2yLdfZrCT&&=iG^w@J`3l0O&|d@Jr#P`=Bj zoQ^+abH7aP2~hXlphgrR+I}S2j$i}3gTYQ;pz{oeIZYUMHD2Ihb#fq&ZVya;42J-E ztvL~eP>HjvOIf(UzyKZxB`SCr;!-~9kRR%hXLr{=(n6RAwmQ0C1%6!3qmq9JD&Z1f z0F`i=a!DmwY5?=dQt>9?y4mld-@b@#Ur<^8wqM%8NrN8AEbZW=h49AY@rvc=m)yKP zyc+-{dW$9)kOm&=rd~&|lyS#SrP4|;lMht7yMO$~96rv8S;k26dB$iaqDV*MrQ$h? zNRo7YE1!}OY*5eH5R9<%IKY48%%tc!owh%Gw6k*8HOnzY!+<+U4I8}NPcU#+BOFW% zrp6;t{P^>a`u&KME)buk4~PP#7fDmI@_+` zgad3g=Q7w5X3L=?T>XDT1I-1r;|qVsnEj^T)2}aV{CccY z&b}dwgzdw$Hf^0DeRd5E8}l(IfJP2jXa|S%+PqP(pSlZk-**=_NfWR2<9MSPw*yQD zg;Gu)+z+N25ALPIFJMj+N9C-rgLi$6N87%BzB@iA4_i0=i6jM(di;%0ST;XlS^Dwb z5heh8IV$&u5CDH|6m#GLgu)9{wUiIlMl+Gatl$BJKFTo{BmhDRuphNF0e~$9Yl=SM z(+LECV+u%&DIh*e0f|WpC{cv>zT8G|z<@PYFWcq@YdR)iDN~rT{^)xEhkh&Rmw)K2 zw}ed9Ho}gH;cq~bI4NLN9gbc4DcsyWABiJnj3X8OTuN<5&K!Trh_G6xVFa9f1Wp+v zPDwcd=xXT)bJRAwG*mI@N(-2fWm0^&syu+#sMhp5)aftaQWR?jRu80L9>T?o2E(H_ zd1wY!FlmdEBiV;$BA7Eq5+?#`&+)QVSs<76iczz7z{LL#{5tFzmqC*Q6Sr;411A9j zHZhkWHUueuTWxP6w-Nq+zd{Jmcnw4h-(RlCmjX?Y0xi(=ismkt0&8h)FDkDb?W#Vb zFTcGrB=^-i%aqngKN#fhQXG;qe4d#hO&2!{y7=x5jU{0UN@5qgn?+au0p2^YX#eoj z;1Rz5@`gc6x?l^&G*MP8w4+3_#p>>jf6s_9!WVLXu`3qWZ~pvQNxysd=Id`6)eA<6 zqmC`!UHe|G;Lxi8iSTN@_$mAGHB2!iSgs&evEDXhwlyy&@sYUCoXjV+~@>U`}PlIa~nrf z6@%e_z(80S$VqDX{kub&F|d|;cFkBygyms6?-Mk`KXR@`zwX@6dC4W!8B0_G*F^gU zK?!-?JUelfr7V4dqpVLs~4O>?ISv^ds1R75AHbRp5`A%B~)^A4y1P)SJ5TC*yT95L zC(M@7R4sF0k>0v$fW@icIT;MZX)R}`FrW`+RhYwv6bkE{i*x9zdAu)0@yYYN^nFx9ZCc-Q?_|2b;*HrWq2}6fsIJb&toZ+E6k^dGQtG);bG3%HR8bTqgT5F`OhKuchti}Tp{DmciTv}wduOe$ zYgtY9J?HLo_St6-zrAm!kGeBqRPVN(kKf#JZ|}0boohShqBRS9c2DRjcf42k-oHAP zj%(b|?ET7npDd8eK2zk&^QX?N+hxzo(}OZX`kxy(tn}g^n^bN*?`lHQsGnk~Hu7_A6(0 zY~MYgWZAoBROrRbw3RJ_F0FLhyj?F~kuqdvm(*KdO)XWeS>g4!I&6r!SLsyqg^wSW zdiPTEkKQZx)A@}*M|@dt?6sm#`^TJJSnc<#QEE)l##5W++xz6m8#C+7?iDcYvsGWU z-`^{?(#I?RZ^MqbHowM}Yw}W3-|-cuC#RpQU+PrD*8{2?csTX?)^qExjQFnmy3B3| zoAqBeySMY8#q`_#yT-P?)gg20ma`MX9yXd8Km619m7(Lq4o#m~evmD=9hBA2%Enn`ieIU|X7y0>MA3Ot>a~sUCG<#k+C``5J3eab z=mpD`yWx@FRX*5h^y0X|sr8E8J%3|B;--fGE}YbT%kF-i&m}HewuyPDuLW*>BB=iy9MD@2i(f9Sm$Rt;Euoo$7^Jw&@=qhz$+C{&VM`Pqd_QV}dJh z-PvL6D_yI8U`)<@R6n&upIN~-8>A$4KEHX^v1w!8%-8AFLpOhP?*zUd-?MM~sjG(E z51td%rFK}$z$=MSZ|++-zj^Db8^%p|x7wkX_OI{!sWEcomfyzy{?SkMPpufRen^K+ zF-yy={qLUCn+MQ7+Gg#-D`h6_-`Mwy{|22L`megNlSY+jT4(3s*Cu>-B7NQ8cVg;y zU1)~yDD||}_sO$A-27Vf+_5#cTMsuYV^5#E9#wZ${j=jbj@{WTw&$vw=kAPrEw=uy zl;odZdYW-D;Bm;#T{~V$+Ijo@gZiln5%IB=K6~}ig)*;?9rn${fZs2qB-S{qyUy3+ zQaWCrAHKa~jZwGPz7bXX_Vo<6+J@G<*KHeJYG&N|!DkBeY#UT_V8hotugG8Y?&PaW ztRdB%Cyyu0DKsN_U+SWLp}|*sOx!-NOR1rUda8S4K9i2F4|r$jpobUI{;r<5ByqSt z`rgjijkWJ=eUee_($z=mqya&Nz6w}d_4G1pN!3#yJNtg!*Lrp35pO*%oOpcgpK~W{ z-v7hKCbJG-eB-0u-?tsmsYy2u+Q?eEr(aUW42J(rU)FZ%+^FQ8#h! z*&7uLt~#?kvPbm~{~V$>YSo~NR&@0ry}v)OI{y5wY2ob-O>$baE_^$9M4Jz{xBj%{ z+aun2-x=`Eu=vdl>keGIwM0sC!zTL<6)E}L+;XC1(BMxR<}dJNz9J)1Tg`d7%A}!x zoleO7XY9@k-#2?&XVQiS*OCv;*pM=%e8IZKrj{$eDD$Iy$OPyoe7q8YkVqa{#>B|p9_u4S4!LC=o+xo@DACofg>@M<2!|{up9p!7?Ty=8b z&VN#d{us8mN0T!p?}S_~w{oD=`#{h)(eqo6pO=5Oyz`TJPY>iTzSZ3F_m27_>eQHf z;`=gT4{HbHpV&hFV$9FCkDT3F{jHl#mc1Q#wosRr4b7QRm47-kIQH42X~p`F9}u%M z_IB`th@c|HrX)WtTx{vn|K8i&|5WIcKdN@$=7bFB)2;o8*Y{p5{8#+&$|=&0yBn6? zZ?ovb_{BqpG}*AfX~>fN;X{A>_nX#OZB=mn;^7;k&t1N@^h`{?*2#UQ_SqJ{CT-r+ zxfQl&CZGIsk~J_=U+m03y8h(YM*B;&uW8o`D!(gu?e&@+WBT+Oyd+`njl>S`?_bh> z>(Ua9j*XfBtjyL7$C=Y~PT9L9uO7N{G^|>8c~5<9ZMo3hA$Q}~EIN{QZ2G;_#K{Ho z_1sgm&V-2zihLd3_TUj|O20>0dwljKcQo%c2TcsbVIr8-HUFMI! zb!=7dZ>m*|2rnIXDmA!sy{ZxG$0RSPRj_u0$fMu({xbb`xoy)<-5zsh?~|uazw$HE zukIZg+TxG%BMx*e-|NZAv76UNJ{dWASi+v0nP+czC|+ioJ-P4Q51;j`+^y)uf0gdg zJ>ji#p#hEejF{Yg`qJft<7CanRTrdoBJ-W`22^$ z!^<{W@khChkGGXN-Q#)2zLT>OPcAO9#SXd_u%*p8Coy1f@{QmX#oP6X&A8k-bXY#4 zZ$wn^;D(6-l`oX}q>XwwV0+*2$rVpMS)ac)eyoQdN4?rTFy>)&zLg)U3 zG-|&1&GccPPJOqyW0hM~ezz0#dHs4mVt<^NNN@VDy3N<3ntXwj# z_0+OyziwFj*18+pOLniF*nVb)ozUBn2NrNT9gJ<+ru_AhKL$Oj{QNbe-IfkIMa z_~vOymEOZMlA29jIIYf@+6B$jBXOnG4)MJ<)}J`8;)S15&UYViFRJ^V3&WkXiOZKH ztyw+%*{{*XR>TF~3;e5-{^)MT?DQ%vs-}Ip<=D&-ccL3lx_5J1-$hlbm)&&e#+E&H zfz*=a>?Z%reL4TpiSK;9>|xQU0Z#rW$2Tj98$Mh1ZjUyP%J4+j#yby5pV)@4QTTLG~nE8Bs+gm5TOWNb)J5r*0rJ6N)1NI{Q<;c#=L~{^(Bm0yhoZ+`Cu5K7->c{O9ji?rluC z+DPqgtr{3R`sLbDv9r6~=x4O5w8I!QGpX_MZP7~`U3oLSrPzw$);fqs5_@E+mOBm(zN})iXC~g5BBq(_k)hgd$RSKKE%r>; z6?f1fOw-vT&CuO#;*r4~six%y9?p}QDrs&v@rcPokxkoOgGX-ZgMp<3WJz~3#Xya{ zUXm@h)o&Ph`EX!x0abQg{KA(ZTaxMC5RcfNWm8pM^9UX>*~^A*yEDWiwnACgEH~{4 zB&9L|%V<1vYaJEBXHt|kNpi;>#Vgry$_l2Xh)0~8f>|M{c*JBc%Zly}O3ia2l5K15 zHZhGclWbXc1CQYm+qGmVirY;*VrnIs3eE+O+-fIqE`~0-na99dVlt3)-E>u?8Q8$h ze=0CIz_K)V9DXZ{Ql+@PzH5w;CX_uzj9e*38m8)ooWe+*zf-p)chIRoJ4Ba>Zs9c= z3Y6Q#M0%gZGZ>V>v_PwzB^gAq@l?h6bW6i)RhjctRKs192FVbPl4K~l>Sm?|)^zBZ z;F)9+NouxX7(@X;(`<6`nr*@i5g|#sjW2wN;0#O6wgHZxG)oqF8_V~; z5aSe!7!_k2-S^IRPfIVg;YWiy>oY?+U< zH6nh=krc~PIb$dTVXVN`Fvd3gws)MW=`c%P8tek1AummA#4^Le>FyLgM>Iak*t#p9 z4-9rxYX2nFP%Od=G)<%HRBfFdziL<-Sv%&+8hf9jXYU89>bnH0VK5z2ZIhaINwqDL zUMjeDb~2i#p+Vg%3r%drj|Tn{UZ^pPts4B=r64#WdH1S*H6jb&M1|`~_s%u&tD_ZLm`?Aq*xo+y$~g$%G@K zj4k*p|G8OK$HE8OOh9melxE46_s(Dgmad{XPslb`xR$QJi2wX)+#XxH;%IELg7arD zH1ndt!4Sr_PUB=mYc@Mh%O^oUt7F-gO79y&4T&wrR#_lx8Djt5#n`aXbaOVs5|7RZ z`P+!J*<{UNF3lF^oHEf&76oI!)Knq|ME@k63!uWG3Wv!a1;P5D=>|0;G6DRpy@QH1kIqX0yGP@BFp~ytQ3e~<7JHG3}i-QJ_6&I69vtrjukX5H{Wow zAw#%iCFe@yM4{lChX`S#=rLg`XQDF4CU{WKFFVK%n5K)kn^-QSk3c7>6ika6DS%}R z0Rc^AHUPn|IQA_0=k6FW58It#Qm-hhrizAgkGVxKfLlgs=sjl}F~y%G$(ie9A+~s7 z9%pCRY{%FylME!tv>(s}P4~bQ}ogw~3)&Uy`NelV=#IH*PJ^>RQFb10pB!`L`j+YrJT`^R;XdULmZ*!sIAkg`5 zQ!qic0OMxdLWG8(oCw1(OnfttbA;I&H-I_OH5n#u5FH1gmyd%dB;zbY$rd;yYp+4=DsCBE$7N!mJZS5rXL~Xw0UG(1e%~Saxnkfc(6WOm2iGBO+yH9Jw(K`Gh9s zF;1mvImRJ#rJF;d;n5k$AB+L?(}93s$WHJ=gQhs3nM}EmF|nHq8ea^ewpvX5wk}a6 zv@P4MdIy)q(&=SIKu0g8f;tv;bD$}CtdpIpm`g8}f^084X!N@*3gSizm|!x~J4{AM z=M}CZS4+Qs;~p0<|TR zfyB}jSP^3I>`vG{p{{JMFQD_KGhl)=kqyLMmVzS4U;@O|!$e3yW;R8E6Q_7Pn6Ly6ht5hCg2u%Uuz^Vn z)|71yiA#=R=A<*oW&p?0RU5=6CZb4Uv?SJ=PYctufp4y@T0zyQh^Aq4BR6N8CCV_Z?aqJcbUkQZHy?hgvdS-~*uhfSd@QI25_ z22}}n$^#KLuuFg(geg3{JVi@kg1Gla;f?7rA}F>b^pa#R31agJ4GzF}opWrJz!QBs zmYp#}j~UDY69goa2ngUm^LaWr`>U8ZHZhsqQUsC|4TFtjWj4(9m0W!rF=V8|WHAUh z*+nxn(_w0YsspXZD45LL0x}_*eJIGVD29Z&4A{W99LUEnY%pa2eq_~f{Os&dM`ixV z1e8fVwTUd1+CEc7BY{5;$X@|t3N9;{OvR6LSD9Txm6*8-6ZViV#%9hIr6$c`I|g{` zuOLD{PzGW*!ZZ*Z`tKxb9FiA8Lo*EvH37xv1W&nP0}@*nLJCDEOaL7sq@ql4$H+LK z8fY7!;{XbJ-Ha#`Bg63$Md=vXKbgsNq_yO10eJ*~0(Qs=$#ShRww>^Gv0PaynxOt4ZB~!Z& z<_zxxbCp^{*bu-_ga<%pRS2h=|G@RzquVy$3FqU$os%(!3 z8f-J23}~BJIRR|D8PDL=@%NY6aJ+-kkRh>g2(5@U0HBO($>!QLJOX=^w8S_+uP%se zF~DJ|QAA7(n?spkEtG}~gd#0CDldW|yt*J#;|U<>MS0p!=kaGoXy_o$o(A}UYb{!8 z0u9(1Su|)4JAPa%YOeslt8B-JF&GU8&3244VRrzu7aPv?>R^Jl2(m)Zs0&e5jpbqR zwg$Czs3ZX0q3=@(_81NEtAI7A!h;EoV{jwUuR~vmmJfPMRSk#C#wqT|{6V7Gf$Ar+ zCt51U9xbNtDgt#j7cnAR5}G%d9MSoaHO^n(MKyvA1ZvJ+2*i->(Lka~_Xs$YUPu%a zJT@Xr-vR9T9XTWoqg3ROOw>pXnPi}K6g`I4af>0knLL|={4vmAVnsV9 z4Wp31vo4&hte)x&iexm^M^cYYB`O&(aj1eI2A~-YCR;SSMxw`>Qb9ABslw~HR1Kev z^hL4A{#nBnXyOk%34QeCdZ0nBjK+Pq29rk3ji|hP^}~Vq5i3(o2gXlpBEkfC&rTej zh1wZi44S3bkpR4Bivf6Rk|NpWH66{VAtm0%+(CpyLpq(xU^q&*C&d0W5^k zVQ5SOeyM0Tr1%hM_zS_5F|Sjo$lUocVX{}@B#iUJxn6)@Xi31=2b2j)>YN6!ij5Op z3Eo=*^omOcH-{dbqocioi4Z9lV+_!M=>iHGOfrawIgLlP=*SicrSLzwcU!l4T%+6g zScL8lrC;jpkP^~fAOse4!pRQ3MT93}Gy=9V&j2Rnr}#5X_FwfGeRA zG#p%GdUghScj%4{{8c=vNGL3`APc}RvzV~9%zGmF&XR(Ve-8SD_6k(L>5c&#um$E} z`wcYPGAW?g%xSiNs+M*BXq`rj5M_)va+*nTXcX5aT6Y2sVFZ1j=$~XX^s-Rx2d>JD z1sVk?xBzq!-if|YbO}-#3OH;dqJK|}!~S!{4}^d!2(B?pst^mYdu+naQ^f>2M!X$< zN0R8jXd!{IeTc)l%e1*W^=s5waqeut(XOKY? zQ45#P=dzDj5bx$RsQATyh=KWJ6e?)cieQ-{n|L8UZJ~<+2E=Kk6&~_O(F7;OCR?;! zMTHS%h6aw8V!jv${F=TG-k5F#Ik!YVHWFb!vs@O;C_OuTdd8$6+P&zJ0C8bp0}41f zo-#N7gLh}f0up4p0AI(F6-00>*nn^1bD_ZABSHL!3Jyy*EfK#E5uzH+CBwfkK)!~U zm(E2C13eP7U6?wJ|A4(R*NgsBTAfubQ9Ync@<0I4eZ=1ftDK_?zW5I($L=Tel4-vM zq>b$kchTRd2%Cb8fmugOoTqouUBoA5zG(DC?FKZHrCq4((mEn?O0PA`VvKKt`j$dw z&#ET)cmvHOUjCpVC*fE2VIEep_vle4OHd*8REISMaE%m^ivpNN6tN{Q$EgUjNp8)fX z0HeHhEMeKvV#P&+17)j*#b&$1WTLF%GckJ6L|#uX8fcd8u*oP(6DGh*SY-w@&e+C> zJ?wp&_$$m1dTt1V&%}H^tXfW7BLEoc-#}v@MuMifRm@;0v8Ulo$GH8GjKC zvT@9^;rP(6Ovk~OX2ofKHy5cX>jMz20aUkfeOSJQ+r#Q;pt0}c0PA=^R1!BAL}oJJ z&)BEWps^bcXN`_3vO6GIG=D>GnO#^vz$u?G#wC!H(s zKSA?T6Cf|FBVM4x)MN>ShT2ciUSPqw_XthZtosKv)H(bX^BUFwBJ=N{0YC8@m_5#L z=amy)k=l76M67HC8jJoxV?FDjiNDeg2L5YD66wFrEcQU5vTV=0{sYk?z}AV_nw+W# zlV}(Mn$OVW*cs4lH?=(W$WSI=CO*V5cQ`)4V(UcEz!Zqr^?{(FU4`x&iEY*%J&FN* zkQgKZztL<4G?u@C#$r6s*v-*J_l3XADhY{$NUsNI_)gAEt`O9`Ph=zvdZgXlY^Jts z+N=fAmzEZy=$3j@y(w(1)+DUa|2w2tSd%72N59{9)cfN{y*IEZUJr=0Xn1&w_AQJ4 E58m3lm;e9( delta 37015 zcmV)#K##xZw;<=XAh2=}0y8m};qe72lbsL|e@yh0ph=OUK?~HkY!6(EwuO~NRiwJz zQ~!ErI73@Xz1yBh4TtldkE3jLTxF{t-()YW?{{zRKGtF-v$U#Yx!N68qEu;B%2idA zsSw3#*Q~xIyOUXOWSJ$O->roZ$?j+R97cN__4(ZPMCs5bu8NSjm3Mb4QSr3HgcP0<(Ak!>u2H;w!hjbQdO40&J0vn=~nR7nag>R zCulCNnwCWbkZ_3re97cNJJZksC=2UFf8M+IcfahtUdt@`b1llmu;89AxT*E}p=0vF zjv+W;9mKRKDza{G8&1v9c84^uKs3ryE%_*e^>&d#_`I4cYn8NXkvQ5qulJ7|JGQ3x zrb)pFRU|)Xus7V(BVQRNcS0ADXnSw@xM$K}hv9NOdCKp?KrRG(K&B8^T!MPkf4a?* zk5eC#<>=@fY5_K0KdwcV1Vf6%bmk1UGSgwSXXYZ$StM=mvof39q`NMPI$6hZwEya! zw*&BtThS*sRUV>%y8>chhy?ix>)D1-;nC!WDHw>y6e|@K!Flw#$W`)N+wYmo=it*U z4)8fSW@soYL6r92t;-UUc+1*ue>A#zj;(7Pgo{4fo>m|GJeb0r2Ik9>OLTP1@T=|G z;4vd?R@P)ArzM~TB{C$?mzm|+4oTQkWAAD(EE8f6YN#d^r84TZD8^R5{r`Dfn z=OFVUVX_66M%rSlY_LoCDp$TkH>-kk2?tOW7CnA)@!omRdrykpbHBM!f5dF4*XXH` zp<7`il08TxbVTYbfp8Wg24u`%iV3Wf-5ToM64~ewY}m!hg*zuO69uBtLP1u*P~A<& zu?8x8*ikCs#^o}2qWjx*;ZS8+Cl7|!y&c-nwPnR|0pg&YH@u%5Lw=pOd3orL1$6E3 zU^V1nY#g?6E)aqo%O~^zf8nk@x1An|>e&i%YHShwmW9k%5z93uHx}%M;T8$=Y`^wW zx&Ok z%`QX)Un`lsQj74u0Dn=EC|IExT?-+_bYu#fs(+-DfW5E=<+B^Jf2WEF?qo-QqKbe| z?m5^o1feW+uc#9Kyx@2?e|l~dA>ds%HO58IbZCnT-FLQqz-hufM%<-sYSvr@i&ZGFqcrAk6AEBcCm*K3}XY&R`4(2{u&@y2K4A5DLbk!7!i;f3*#IkvdExbeDlDC4;NE z!9t2Ot5q~P^w3Sm>QvMh-|-ne1ZaIC9i8zW-d}ni&*%WFf zb&lQ{qj#Y$=$$d_M z!_Ks0b7!1|f^PT3^-`2__>If2-804U3;u}!8s)O`UaWOM9wpSQ*u^r>-1>Q);&1RG zYy_`L5WI$6s8m>=#uj=KD?)LJE1dWS_;2f&g@$|q6%waP`kuWdJg^5cyu`qRBlEru zlZGN#SAUByC@4I&`_sjS7oYw(&}BHwa$&Mn+;tf3_fWzOjlZ#R2p&U6@oz%Q#Ln7B zZZZC$!Nc^>YP)Qmyt0B6N3sDhYA+~ zhYA-0w+a^n-An>AIG16B0V#jgSxb-OxDmehuMiLfEdyhk50R2~5CpS9b}@@x1etAM z4?TULW!e_TmK;g$9?v1aJyj$nOSac;clRd9#S$MPi&e$1zADpT5zyer8+!2k{_bY- zL(BrkNGc@{?&bj#l+c6+DitIZEV!Em_u*&G<>=w=r|!exejKGV{6~M*=n<#kWFSYdep`66O&eREwZ{|MVm7M*F+Th=^3du-#^@8(ufnV5dX*B1zITZNHe6rY>$r zED4*@m`5sH>SDGs_#TJZQdh1wFE-nTjK+ed;oUN?+qt!yI5nnlU7soCU+rOLZfIWi zm#~Km#wjI2Cc&6RB#M8elO!vPM(0IdEMUH*;ik%=V`^oA=7(SZ_VJ^8MX_o!ROgt1 z)c-4syGtjtg$SLN_zOo19Y->nPgr!Nl&OLWRL{12GUWh0rQQG-njxG_i@RtuG##ngw^M~)9 z#d)d#A^6bbQ}loSZF8NhU<4NJW%Y`V-akuP1vj22eQ6`64lW|NU_ujcLE}a@x@k=1 zr`E=-Yxmle?m0Ezjm9eCVLrd|B$6=EsqWu-{b;hLtk5@h))&s5WXuyuqF4+y+Sj{< zyUNr{y)hmsTcFf_utbk}8YvmRa|3XxE2I7Fp<0gDi^G3*re7~BSKD=QgwMHyTRH?< zJ)6N|wFPLr-aGd+xY^guD$nv}<@?;G9VEAip#7*ng>B>>BbuddJWT7_yauIz(alOv zUltP;>)>LR*PHXVIVM6R{pl;cyKct_UU?UVF+QO$(TlzWu{ch;SZvkH(-!OTwJh9I z7igWGYk+@z4TROTwYNC-7MNmB0nqOc0*aR@QR2X9bF`G=ZeztllS4$QT%Q#Jol`}j z4dF0e=xT5ClXG}jl+DtH6RSTS5Y!r~&%b{1T1ZH$RAluJ$O66qL?&`#F>zLDOc0qw z!Fc~cclkys552=!VfJcp?fJIIn!GH$Qn-kSjH7>{QYr)b&CFHy7crq}^dkE!!Q1cf z8(?1`Du7$*O#wEwe8=@ZfrZ>#R?f_(1d8OEQ?u$U1D^=)VwxS=xo7KEFg!KjKP@HT zBnICd=pfT8OFgdAfh1Bq|I)!7rQOL7VIro4sno+navml=;uT5KJ_5hHO7J)(RL1+z z1XOg9%NwsZ3M%hTRZQ z;<3NJDk8B+4~Sb{Hx8Rs9F}u@g5MMtyrIY1yLP?qhR2~L|VHSRYIn<^u{j z{$^wO9}HTIS0}=Dw?;qQsMZzcsDe4fw<3Qt2iy|S;*ex^;psK81D!%hH3-Wryv{EY zN>tQ&bZzsIIa>Di&y29et@jQ}xV-2dOr%6A`6i5!vThw9Rp)OR+-=&qcIlP!+bBXe zn>oO!T_+x_Dz^YX4jL6BNqP`3Gz$DQf;7PbY7E&OXtgTWuJO%OrT6O?T+S_Z1<8LG zgwteyG=71D!(xM@;if<5#rCU{1`jmV#TOLUR9#evk$u52;o_jI=)5h6#3z^+EM%i3 zjJ@1wV+KB(g82v9ym&$|Ufk(pS|aib2x8WZ@H{pnhH{J_0%CPL%WC9`Xv~1AE2;Y7 zI6CjzF=2`5hhre{wQ;)-FTa;@IZ%Hw3Tt5ihb#;@2c*=pxYN}2f0%ySqR1sa8F!%| zU-u}r;LiEb5rqi7=?XWJ`{y8#*&as<;Di0g+-5=e%vNP>>c&lI*EmFIr&1@_zzH4l zM~olgbi{u7`0#mk(PZzPK)onWUsAI|svyG#QbtD`WLW89 zVf=f&FqK^&oJS!p*qTYT!C=ART{$@*9C;_mG z)y|O^khJCJ*P$yoK0sD7bfSNv_;x9NL>*(d8tNsss7v4Dt!NV~BKcrqJ zK&&|a9p?Koz?y3;Zd@u)s(t>7Hp%gV3%J6l8iDuTHS67aS^}WC&KeR0ybw4t43D-; z`&qqjptGuwJ>Y;XS}}G+-N9p=Kqre+nA`dRn$zgvG(hE4Y2-j{nW zWsgbHL5EV!Z3GL2C2|7d9mn{;-|Ye3(t+Mqc!p_s)pFF+4c$iC@%IXWYxUb`2e-9j? zf2JGVvNftmB-AOocBPwNNt53u>eSn{{jcTW9lMwv%a|m4#(WS+IL3^^J=^jH#v>O- zu-8He#-{w6ac_3J$qx*2-@bqm>;GAbdUEp){DqReyHK}a?gf81;O0naU+`B-%88WG zev5OuNr;M7|9=w{<0QR@ND6fFAj$mDR#ghUDi`I}d(Ww&jQay1uNyzd`sh^-5W~iM z{cfsqc2y1V6ubD<%ikJTZ^% zp0B@dN(Spd2Jf$=FW+8Yz4|Fpfl?xiA{|_>P?aK$!XVC!$czfEi{O{pUD zYrCCY_T1>3`ES=hV}*bCc!k6WlVW-I<*uEZWM-GPDC;$UwVbPHw#i#6@?~#Pk+aUP zG(C&N8M0(pD{n2YP}m-4u!W$Hu7rv(L!?2w4#xVY_g6T6F#OTbQ4^y-USIuwr7&3r z*i)xM#kh15iCD+Ma(hJsv53PAgCdQiptZs3>K~8p#-fyy<70o-P#LV6i7<`*CES?@ z1w6d5h@A|G>c5j~)icUnT z!cl}hZ*J?py+3FBCWHN$Vfyy0Q7e&#nl`D>5ne?Yi^PP(Tf-|$vKKryS~ijz`jsNeLcZv~K0R&mS{ON6JT9sD z@|(Qldy~GYqq2F|`>spL!RT0|*!@Hf8v6R7 z-+S3q`)z-H&gN4{G0C2^d2C?xFyqfyFeS4dmM%MhjfrEjcxSZ6L?V;n)M)*D9Bv8c z!H&Zpm%gtuRr5}a44-RR%UKGuMV37%DKMnSOA#H~SQVL<7 zD0P}$$ivX8Q3e|_u~0xvC#e5C=V7E70j;(KtLuL`MAO@j#nErdZqS1g2|l0b;egwr zJVs@-oEpunYk1IU>|3x|$qd{>e?2(EuHw=1%DQkW?|Ao7tKHFQP*byR)9kB)dv7e4 zw`4?iM-D7X2M31!uFsdZ9!d#e^ocZT@3KzTa4SNG;O&qYZ93bBdpjm z6~ccAqrRJ4`maXuQsYRxY??-H+ssiq%#_J{;3<6Ze&m)&dtlvl=eFQ$G2$uwB`DPc46^cE!Z$d*-`?1gKh871wS&87{X3b!G2p z1Cish+g16!XU7n*2_PJ;!091iY!gbbtAw{vX1-8T%GsOcEle4bxvOlk-h$wqW#ssr z+?M9AuQz#p+l{dRmm7bsRZ~^`I7a5bv(2vZ!$c{{n(KMB+vGR4_i{u}(-yX6hs=L# zwd3lguhL^{%NycDdwLGt4-?A@R3@|riPVs)^w9XL*3qf`$p`2-y296Q>Y~lNcQ(I0 zCyYeFtqpVC5slF^_mYh<-WJ+>?q(b7ZQYfQYPmt42*~Q$8DXAtRc7F3h8*v9S5^n- z6s5B_m4jFe`d!Uz#B4s)#FjR;+ChJ2DGR-C))tGC6ajS3p!seSL1Ynl#0aggZy*AE zaz+TD!9+9VP_$Kh@GPy5{jgomgRC{*=d1voAD4LEdhjXV(S5sba~~l^p3&$Jx~<*b z@TngKoCppS=rkx1(7G6WU+6A2xo#)Y@67ny(K6Iww0 zn#B`a42>jlQ$Yr>+E>(2gb&Mo*SVX}Ap1qC;pKB>YyD8eCFl~~S6SGWmniFHwP&UB zE>2?p3=@IjBwLb-A-nz-T_TXuqb6-#d_&~AxXC-Z3GF(9I}Yo>G#s#mo?TUWXfp1~ zROUC$zUS(T?NLM5>JSaKc4vPpyX~H{N3FAOu}4R`BBl~9a&wSCL0wbU9#_zE*P=>i z5BSqEj{`cjZQkdO{3HXsg!-@+gBpcK4oilZ@PH-M^B9(#xVC3dHBLkvMJGX-QfB~# zdUGyDKru=?K%veH07@hdAo#U-k{wij6h$jF<@|LFHKFiiy-}v-@R>1Tb~VQwTQKz%0nA34^+DSdQCpvISaHMH=+qg=Eyxc z7Y93`mhC$5uQIP3rK5k2-}jz0xX>JfY&`xP6Vf}R2rrNng)OT%K*%9fdZGLTtx3AU zGZixQ2?`VaY580dj-p&IZ%_Hy^bpInW8^-y2Uts{USgq5GC310y0b3e(1}a2XpNAlan2Gw>@~RVSe#CVNEY*o zX1S-Uy0BGyuR>G&gGt7B;>6{?9TEnYNVrg>diM_9rs)ZL8bUk3bCwO6cUN6;SzBA!g48H|3YmJHe5rC|jVhx= zx$7N$B`?b5%gGJ`52;2_EGQAvKLh8H0GmAZm8Z{`@}%Jl^M%4K8ZW@*#8V zd=c9Bj#N9{=s=K0NHxCt$%{D^Ssc5FKU6{`CIEDJxK-(sTFFF+x3M_Pckfs6`}I^* z3MJDAOdmHvG%$J86ihUQ|Di%>5BRtVeGUv0Z_0jgS9X?L4ak54$&T9~PjfZfaN{^_ zISHp}(0hN$#ksV~-u_Plvv)s#SboUwH}-7yJCWe@(?o&BagTiknjTi&J-~JeSxG`# zdkN96r3|5{jf+gAts)=IY2`BEZo=>TytSTf`jbq_CMRjECw078FN)y@*~`lI$F{tMYy7zH*G;uLAO0!{h7f0w)h*29om*dwbnXAEZ z<>%l?DQrcV#+T3v`(>H`J3os@F?f-FoN7;~Wpp;pa(tBy1{|$cDJV9s-?!y*s>bOB zrwq{lF93-bCPhy4m)~SiU=S}$m@EzM+|(_I9l+c<&noyQoa*qO1qm1hEYAJdCc(#& zAOlFi=y(D}kKq_32IQn4H!zo>HUueuwOVbD+qe<_zQ001fz}ITxgx38-j~Y(cPWZ1 zdQBGST`&0{%UoNHEIE3~#sS*j-e)+JEID4Mn>Zf~Q6$Be;mkA74DEYs&-Y$j`A5$m z?yhcsilrx|NW)NhclVyuzVH*}MX464mfqdU`+f0Rsqp&E-CxHK@s&UO3Loiz7)`eO z_xEM?(9j3RqX)hS;$-M|UpLn`Doq!gqUA!{uh*vSin?l_UEgRa7e$qq{i>+e+@aeT zE?`O8%@EC25~U)J$E8%KRuPKyu!x&(!z1pRVrwvLz_0gxmD57pI%vLj)8AjKaPivr zHTT5e-i?xxP+EI8G7v!!y1lu7&oNl&FS2UIg<`uai@fOETea(5vA*Z$D(kXmM<21A zP{72ha>BrCYiKp^uVuI}O;&Q{@>=zxv0clQH_tWI%(4IEjc%N@?C- zfA%0E9`fWd5Ez8%S1SEq#4rCWKAuFgNce&J#pUZ=3>4v`CC`4s~a|Fx0ty(JJX*4W!5y=o{MGC5&oTr zyf2j8yFP1hF4+^zkiA*xPrVse46wzgUmt6M!8W!1=PYn&VYp!LN?$IU3@~e2 zH+D6AL$a_neOHsh=ByKLO*5UCd)T}zcFQ_zR^LJiplQwCzzj|+f%1SSgtWz5}Jyt=nCt)QCqA`#_+5>L7+x}>54BM@+BgFjiP{=juK&%c!AK`X@N}7 zLM1`9gyKxTV2**g-NF;6y|kL@8g}`fC`MNH*|IcTPa5EekJiFZgZZ&oaEqhG+H?*% z@bb6k*AgV^?q`0rs*mTxwS+-8Z~3jRN+_iO--3sKUbe0iuM7oV843rxnh(cZ(eMjE zXJr^t{P_xht(&w~h;G20wu8kH-&Bb{%+{D}HLgE%GnuR@_gr+e%i&raGceI=#&r&` zK8&%NE&t@&MyHW)vI@N(rGgWX+3o7aA%@d1iz-70aHxO79eoSCctu8Bv@qinh7pA# zIl>Vg#fz$jRoiXqC>hx*w_T2%Xg?9sk39`S5hWvkJ%I(p=~wU*8dir9hK)rSIDYc4 z?7Y>%pQR&9ccY~XVUt+RrSaSMpO=Q7 zN`n!mDKd7H7FkHnWD_&nAmy$pUebzO&CYa1H<4H%E%s2Og;y&4J%{I3gMhgX$h^Z` z%L252VNX?h;!3Cksp`c99|{>j9b<$GFr14CJ`_N3oe=)UES+Ef`#HJGFqq2yNdb}; zX)+ST)^s17j2@d#MCz2jkf*U<_5xIL zzyic2jzKj*oE%eDAmP^Fz9Y+VPL|py@Jy29$EtARZcLS%$s|uwAwL3L9%D5)xbrH1 z1jiH|ROnCF;Eyd&U2I*bptUd3AU-;=A;A)ZaM%415J#z_CjNnqJpX|koNM;S9&>?z zN0kFbiU(c~2@V9uk$F1+Q;;VKMq{Ukl$H6g+nyE7&G5kys|kHD=BD^SLQ03wtFAym zz%a=Kxq+=ga+-ynYg1A9RD3l2ei$WxSs-M^!9Q5bqHkOGJ*;QQ!!YGj4zZNk%5oVQcoqQi=7bPoK=++On(IZ%eggw3O#@t zm);)*G-){B-+w;4zmZH3B3T2Dz_Fpi712t1$?OwstE^iG2I#ThF6+|uVAH0qE~|jv zLsr3Be{kqB%ZfyiOEtnOL52{H&s2P3T9*=ist^H6Pet0MNiHOMO6Ex#HKxR+UHixL ze1ddw9`$X%Z{aYYWa-y015LGDowp>?2zK z+#~Y&7WpBqKBnQ!x5$mZ>JTvQm-UB7Vj*9JNB15xY@0a#L&A1KIp!Y8dBZ2AxC14k zaE!;Q>iqdCvcW@2@Q`aEX0kDrTk#Iwc3?RN{=(S-m14r9ynI7Z?KcU3MSJt!oW664 zMWW}L8u%`Nwgt*(pv2(=)l80sUO%~Jp~^WWaziam_h5`0GC@P;aOK~Oxgqf{N}6MD0|1qWDCy=!Mi&dTk{A(IgkceI4KC@o7oVYL0fL`X z^z6$cu3`%qeE59CrRNbB08dWt9xJXm2_?4WC^WX&qpY(L4O%Z47b6%GpwylWA>WI6 zF&Z^g35bMGll~uY27&u3YxZ2VGWV1^&-$|CI~A(5|0cMt z`;PupU_~wc1RG6%kBHIE}hJI+KP>a(7lV#v(eK58Ze0QEN3+;hv} z21B|V3|nne`<8gSNRujC`uoG4>*id}j?|sbi06&T_`)$7t{|gD)o+)^-ZF-qdAIHa zJ8!wX-1AcoNEi$m_#xXt1x}I&(eX70HCb9f!&}@$&6KTwxur}Gc}~+oPm(YIO922N z1cR#m{>JxKXv7YMP809JcHP24LlIaNE4^1xz2Q$eF+2`kfz!PW%pGA?nhG_D#a;D0 zc2fjq1gMBqWUqHA7QI2dAl=8CuG{_j_BP+prQV_wZI|V5Yw)N0vVIWo0=KpvWUbAc zV%ObnP1|NDYjdlpJ`59ZnfMRN6=qU6etx3*F?Nsm1zr*Xgu}2<9!v6nC7;;_m%;A? z6PGNl1K<=kF)lVUHy|@NF)lMTHXt-NHZC`ppHTxMmqM-sRTeohE-*AVAT&2LE;%qY zATcmCE;2MRlOb|3m)@=euLU} z2Eu~?N&8}Fvq@!Zx8hB7NFw_{&2S`EIOHtJiLC6O->=ai=aI2&t;Po#4G?Ic8~yki zV;S8>GWza9hW6{Li_33Q6)7chYjt$Bic}(nQhDTZBXXmnt7UW@uiJi@&9%(pVzcSm zO;;5|$pd}4Xn&h!(LIFjrd(9-q|}RIrsAP$8y;V^9TR1-xC=wuW*MhNM<;x#VsY7Jmh5^MkXwpfN9q zN%HvZ_K!d65-g3C;J@V2zqQMfsqfl)#Z+GnrI^hf#J;*Kn%}~jp>6rQ*C7#iRru6z zZ*ReRR5Z^HbBdXkL4BtVSZs%uRI=ddRkPU+Ob#8i0NJa+bbsd_V%6n*Z+5t#9&>vh zX@fY$a(`Kc`!#72uebG3oz&H)t`_6vILA67qJ^eACP!N#S;<~fxtqqO1;VR^2v*CE zNU-yh+*QvGRweu9|VtK`3yUa3&d7ZR%nmH=>yrLPx^lOLrTM z6) z6d8)hyxEL2>;{P@8vp3iUKd~ges%Gm3%VBEYNYAD5))aATg}sGvA*yhv`F)un#|d# zE2GuLzdyPiXT1X(AN0D-9BYG?5tn+u($ku_F0tIp;IxSw|0Y#3^BY)57JZT0q&(Ey}ljcHZ*^wG67#^{jLi~_a=yx^RM;nt%$ zqsIJ&p@IkcyJE??iGY)55iFZ8BlQ~5UOOZGXttUqFbz`_O0{M2E? z0&C(bv_)uF?Rd_fDq=+ibJJH#st5UdAh-xC)|Sm3Iy z0oNQ3rh_IP_Yx^gs(+551{W*yN}9)HKn8QWM92O-H!kxQtKx=>dMdWh26hk;q=ceV1(DAMk%_AYX;Pp) z=|1cFG@$yFZxm#7hTa@oA*6N2$)CR`ba>B>O+D`a9^RcMQv9KeH{;=zxZSdlL{wPSdg zn6;T!o4{=H(S$|DT&tdGS5Nu{pg({B#Cu3K}k|CzaXW6RI{y@+Eeh4q*#C0E z(sxU=5!xJtdClUFVIJfqHzCX`r8A0hHbwpR{fgfH9rda4SMc%^8Tt6oz!bY`MZ9?Q zxIkpN+Rw=HX`2DL?<$V*M}zXwEiEv*vHKtZ=6~yQ8;?&MpS!ot5z3~rVN-VN?NE{k zLI_`cxcFLAn@*X}k!RDZssRuU3KHV|M@p1EF@YXbe()-+bH_htEUR_d&`%%!F%_dl z*LCn{K$|4V{EgD6=7yc>$ye$`s*Xi{{KWK-e(n16Ti@rb@w<7`x23nbZ|yVH*^h-jm_rU5;+q= z)Ft;=@h0&vMChAuxGhNG{-Ilr=>ek^#YM{4RTuy+rr10|V;b|g2ko^AEKeOvzyFF| z_Syv3>RKLVwi{XUp;-@Tm;(Sni&&5b~%U@qG`-grg*I!JJ)?wrG>k;*4qQftPzy2S3e4fr$+q(W@8cU2ot$ucmC1}%->wkX! z>*s4s2ap~N&IJF>pYOlrW{nWNe~_^~Qj8RtO~47Yit?s({a!{(d_;g2CeNaKKXnaj zv&hf1LmmADMUDTZB^4&6;6-P^d5}SK3)Fh}OZ3Nn#x|G@sH+{VPoczU4z!~JmcAQ? zP5<)pa*b33yk3ibTmD{lqA7>VlN+*qv@}A*0pv$^&PA4o9}KKM-~qk-4_44>JD0)l z0~42O#va7xV!^o7Bn$8E;TYZATl{P zE-^JYAT%;JE;lrj5v~@OKMDf|mrlI{S`jrMGBq_WGB`3IF)%SMFfloofnozPm+QR) zg9bJ z)D4sVt_zba!VZ@iVF5CiioXLF0X35W87Y6YTHSNoHWGi&U!l3)P3W13!S~1Ytusw0 z_jYY&dhPWdXbHACkx3s(#r6I5w~GZRQdS(xVIDMq01#L%7Qg-Nf^2oYVymBCu~e2^ zLs`02cfA_xKSR5htNg>R$zSOG?<)=?*@~|?H>GxRWjretUu|w*#dcm=D`TNnU08oz zz53^8SNh?@tGDksGb_$Y&pcm!xQeqnDPUF!D?-zD_3z@hzg+z1!#_sJ-@dba`izjJ zkkAvyia&%f7i*ze@dwjPQ1vYp5}NqMnj7H?9_K7=lt)C_a{cF@P6#GUY2tvmOc(CL zF5EsTmlCCSExE)Pod*ai>gH}g z^nbrtD{YJViW-NTK$Slj6J0-`EUR@|bj@X{m8YfK4hAY$^srpBr8-TCbzf9npvG`} zH#|_4W`|0Qy8oRVvdi0Q z*xXQ+%%dmce9;m8@x!T8Dnx&2j9UDd!l~d+)7$)h#xaFcs2u3%>rUb2u4+E^Pp&Fu z>4eG;fW1m@i}$$u77Ty4YcGT@?r|d>D?Z_lh0PF62>PR;;Ep?!tS>fF309J(*;IW< zeFIH&*R|XICiHYBlMJ)1ug0D4>OZL-SH-sdZm75QZD{(sZK@r$R$YHrJuGb&+Ursq zy|h_q?@Q(^z3IQcd%jt)WEN0r>shg_`@0>ycGN&WRGW`U8GS0L*o56T)shn><7RO! zIZ(cI$;W;74SZZyBaW)6T`D{EG4M}Nk$ucr=TSgi+VObx?Vb?#^Y7sRFU;gP8pezF zS0uv0KiQ1Y$?Gh%p~`=aq8uolJF!4O<4{k zCB1-BoUt$4jGfvHFpp?6X2NNV8*RocYBN%Ri63j?YfT0wHQayCHSz8|oAHip#w1>5 z$Y#24V-dobQUS5lT9ux=r7QxcwWwYV>Q&FR2+5`_ph}qYd=}wKq4@atep|QqT|I=S z_3z39a1m{E1u{FLd#L<=2vz#iUY#eB1AMpQr8tTdMT+7+V!9AM65?G*sKEg>WTGF5 zsx{SZI1}k@DfEA+^4C#m<$d+(^^;;6#M#No)eyf#XOz7WNImgJQWlaL4-t>m6!A#p z<#o5EVfm;_qVQN&^tuk-78uQ(XLoy;AILbeG>8mf+p5Io&r*W+rS-E->Nj5s0hN|B ztAX`LtATe*duDSqW2ey!w%%WGpoTPnt=&fe-z**B^r~I zXe?B^5UA~-HSLS{4K-f2`4MFA{hP(y1w<%JfsbRXw1O|?FJM*yRn1h~>t}Eb2kIFC zrA}`>hT(r^WLQx{eb!WB8XUYG^XAB=4!#8kFUU3oi-w|{EjggzQfvdJmEc^J2Y2Ds zS#)DcQ6+#D(hY!>@myuIqSmaxivIQx(>2!!%9c?`2#wo-=eh~=p;MrSwsckCIa{vjW^! zOt6lL!>L8UBA=0*1}1q9P6Nl@wlM?4#?%ee-^X}+0>KA%1Xrg zz6bljYC?T%JLTMD40N%~D#kjh7=5W>#k+k+>Kh;HPiEil!lu4@Air@}bua-YyD+l& zg!zAuYPS!$v+h9YOMxMCrSv+|U2pYLUVCYN7)f5czUB}SD9aQcT zpNLIaN6C6MkBELU{7OlQr2rA$5aC_{bpz;M3=kPQ1@uv{9m>5F5Ess_D5fFSv`c4K z6a>oZt)#cQ^@DxX5_W`6KxDx7!V2$v@ zT@jEd{#o}!|Arv!5`l$V@Nid%-_?FM(8xMoFhB)P3Bt^$y509Q7Eay}n%qwp5YT_z z;@reUI|N)9Q=S5}82#rP0C~7mh}E9Tii(ls;-7dE0_EnWN;OIt#%icA2_I|C&^^p& z8#>DDpAaTuG1evx*H-QD8Wc z*T}=e<5o^2O7x|TS5>2Cp+@uJtrhJ#G$nnYF{vEGVtYkJ(je40%lBQHbpdRuhh@o; zLT?jI?Ea);@Omk62XBcCLwOm7`w%xm>FLEA_K7?+hoOfHCFnSiKNu68EAD?&)V;S; zPIn{+dhYKhHwCEre$*lgkZeDZY)`O(-O*sD572pr!<;8fo0{(MusS)A{b#P9PT>$h zuhD0s5GrwYdnufc6b#^TRHB4GV_?b-I%LN>WX1hWNW2i{fvrwHSb`&$M`1}qm3R*@ zqDs6^xuTLRHKKXqsd$-i)9!zF$#Gw%wvVW-a5pUN;RGg#-Qu?_a0;Q#q+6E1zU1=l z@$~>e(L1!k2sQAhX`6LIOOdwhTrw?rsqILn`-i7*&Ee%dpXH1Mo9B#XBJzATUMila zm?TR#bmB`Af)T1Y9fA>N9tmh$>f`wNmyqnN+V$;nR8g10u7pOLSj>OKa8}LzN*J(Q zohbHia}!(gfG99exA+B{P*5^=Qu?Pa*gkte&P#wP0g=uaPNSXTOrP#5EXdS=klo_H zvMg}{@PZn6Q2IA6`T4^lOD4wC5($C==S)XJSv6i^YvJ+0oF)I7TURP~baQ?58qXEg zfmbnhCaKV3f-gdIk`{ki3LNiWvb)t{bQPM|QG9TJyB_l6OXMBGF155^Ad=wh~Q{LA+ zQW(Svq_9k+QrZy8CbG@z3td!09f^KqG05ncP2#|?T{R4OmAXGI)-=Zmp+&ssmzpAp z*l^jmyZsQTc}!l!3y`dWoK?XQ`RgTYyssmdh1Tndl!pgSQTxrXrw=epdV8!>*1jc+ zgzdw`Hf^0IefEDX4Lf9H&HxSTOKV1l^jg1_ufKE|=D+STY?3HmtEcfsmCTGV85K%d zc>r)sHXh|h;zuy&i6d?4%;;TT|8?BmjS0s?tIK!UO=EZ>e~a{`WHo z0K*&*KjeVeEC<9VIiO4teh$?(fdfXYse0A5w^&mt1xu;Ioc2f8132_!MIZm6v)&Ri z)!PI+I>o;cP12-*RZTp0`D?hjdp;3JiWEpn`eI5X&YV7HL|AR|Fal0?08WuYPC+>V z=<4X3Ick5KT^q_2bmawfOfyL~UREB#Yf@|e7Ipd&Tn=OP$m)R<%tN?z)u37OCXda) z@KP9eb||}W_~-G?Zt>{PTW}Nk6T82?Joww}s{SZo9@!Qd|C#>8gVOo998Lcv|HUUh zWk_GbwoRCb^BH~#=%lrXWEH6}P*rJ4kvNu?vnL2(bN&xTi~={8!S4eTx3$XyCjkL4 zlR=&-f6ZH4ZyUK4e$THE7U+5mL=5kj6nQDoU2K6C=r%=@Y_`By8ry@)Bd=yu$LQs^ z_Z*UQwPKmp7~2P%91e$vCh{VN(%!W5*$E_PRoF8?ExJF#g0@YUcE z-v086K~1_~3&u22RxGrmM6$)|=9MpJ#2Dcdf4SHdi_2Gk{;H(ky?^!QJ4W?_QR1j$ zi}#nlRVz5ODnKF>trtIKAAfWH^ZP$^J%96^VZ(2@AY8y3UzdO8T#NH1S2X)f73J`c z!K0))W4;+;d>6RyPMiPn`vZO9nrL6ax4g>h=J9@TqNHo9lk=q!G<$zt*5^y%Xm+`; ze^yPot-@2j*=*0b%I@M@Xq#obvbu`TWvo{ht8KMz%Wn5g$Tr)MUKH4+#WKoXGT~F- zgI#gE$yWt_%v5%9kEzV6{mn(Ot6#&DU|C*=(#vhvpSR~rDO|?hCeD_Y#I%Dy+m}^i z&mNsF;fU1j2eCUmRj4DHb-F)$f>1$hf4^8>$H`NMD5uA>CsMnD3s#LLK+DHFBNd^} z4yQodOeV_Z6c(u)PQfv;e&X3gta^r6I~pz1&ls&fd9=sG9vrPn6btx)y=UVk;)gAG z;;<2!Z0h1NL~uDA_A#;3-Gx%!X;RnQ{l%tu#%LK$)iMVb=~q_`us9X`Jo@_mfBQoW zCN$xIB6Cw1sK5Xs_%VD+p)deo%lV0P)!g3}M=5KpE}$%HRHQ5^?0~ZHX-HZ4TsM)g zkS@wtspTuo2fp$U8wL686Q=|zOiE8-zJ;EyeCd5id%BX=c)G&6W4h8dovt{QL`?A7 zCL#&;h^HfoAZAK7Ph~DSkgg0*erSek~y*3 zJXCTrTS;Y-*$U8v+40g&W+{|wPm}vpmYNRNohJ5KG=*}LX==%Z1;`Z>HNP-jDQ#iW z%-nRP3?t6QF?{$o(c_W>k1J%~ghT}Yi!p99Hu24ve|HMW!4d;tmwk|Hu8MuY}O%pr# z!)2(kt%^{ktd@aHnKVQyF=Eq&TnBVjRn`s=k`U=Z4J`)gjKJ*$Lrp>xrAbpllR$vb zLMO-#5Q?Z2Q6GpRgb|~WGW4Jz0i=g25Sm705Je=6z`)S{@4T11vUk?{S<5w4b?)V9x-ID5Wy!3Ekm-JG1mo>gRaqk}`r)rovLPiT=kJ!sbFyBVSWYtT&0jES#-uLU+sku9~BfB!kO#ddlZHJow*|nr+YDDnop;4RO zk5d0xDk42QU*2oJ6%p6xljND5rcT*<@uxHI7(sv4c~T>*-#^!)aK6*Aa+har+djTu z`MM30r?yD#+i}MEu;==|_e$NBb>jbgIp~8EX-|(;9GcWcDK&a49~2HyC!%$xOH!nHw`Uyw>8_`|C#S**o$1Q%zPhitAju%Zgi--w#@2Enc^&QOxn? zU)O)N_s|m2-|t!Umy>#aSM1zn&u-P0F6-GcIxp_+lKsXu zkp3Nx>ur+HhHY9@quy&5tUXV6eORgCS1+DD`q%JR{uuD(zMmW`wb{;1>mwKERG4?~ z^N`M|gGPq5tA6RZ+O=I%zw2|edT{5}8(Ut>t@r)zM+fCu=G~G1YP7h+&R&BvdIg^` zvcK#Z(Y(=}1(}EL9lW&4+HuDDtd?vqzcV2C@x^{~w6sMTH5a|rV)W_D_NMb^qRP$r z(Z#~;qkABu23$FE|b&zPo;Isgv6HVyNytDb--@ndFzM#)+x}}01)^=0N+4I^?KEGu6ld5#uxuy3< zugVXv%p7>*!MTsSrFV}iQSj2q3W<+TWvu?oFDzZCcWZoh9CKQWS!nw z1=GJB-DY3;@b25L)ETw;LUOOClN*Lq+0gB)>oxio3{3xI;9aFmM3ee*di}Ni$>wuiSLSY=w;+Ki=#cC5VH%eA$3&)+}@4vNs_>G= ziJ5c4_te#eMQ?a|vM+T+hA z_%o%G(|hiy-dZbjTJp)q%@mrPDKYUUqm5W2RSB)6^o=>7-Nfp2R6xMSJdQ?G4r zIj-82MaN6pErRW7`n>dwv9)eh3~k)x-Gr`dyDc1>v!ch$mV2Gt--6N}f3dVoP{+o5 zE7eVmJorPM^l6Wdk64%3obTEEifqh?oUFHaiYdVcE$Wu@M( zo!>7=ygAIgc5zX}wb7F<-u>yomjz!9%W^hdDEW2%zaHhJzW(a2Z=cqC^htx@HHC(~A9N4W9R5l5a{oC!tM#!% zCE8TZ8v6bAuKUtU*KT#M)<;u%4@mj6YENtRkTD~UrTu;6X8wgwn~fiOtm5p{AybFG zmh|h2SEA1b#T>2rO;so4nKljox|JC=pi%jH87H4?D?RYTlso0F|IfMA?e*$zh(EXN z`BL~V82^>tR`z_ztb#CER}@8(ELT+fk}s50B-i#sq067uqb2b#dQ^0{_+MR8Wm$G5 z9S(iDm`9Q(yS9r*8l9!sy6Fl#Qrs-XvNTt3@knK}Of>yuibo26B-yU}M?#xDr^@V^ zjyJYHifJ}~BulQPM={Nk*fUL0UDw4llRZ*Z!)4{-k;NV#F1mJAp@R!?K3rQ|}XCoW}SqtD5f06wg$~R9P`)*M0FycDu5SY3)xIyPAYq zOT{C06_RZmuInd@-H2r2lL_loaf?Z&Ww_>vN9@#+VXLk@@rX&8WJtKC(|E+#DCvsq zntU4jkQqZHO|e`D#WcQ{g6&8Ch)4Wnifp=)ihm^IM`E^%M~sV5O2ZX)hCkA5+g40h z?=zvzTpRO3D+k+_X1Ox)f1lII+8Ao;y6e7pCX+4WnE}0Me-_V7K2O&)*HZCJB^<&$ zO_yEQ&xYF1Yc`*#>XyqoCpJTb7ZVi|Ds?W@iiH02nKEuN?;KvMD1`HvDoduTK_0k4 zwgWDqlZwri{rJX;EO~T zfd$qSqDGQrO9pu%#=&w1E{ubyCOf#LqYf>Mcj3B@Bx#Z?8RVkzLK7{TegnmymL;=A zEQ=aXjI*g-kc55{u7ak>4tt>uLrE5vWtAEe&DL$1Y!Hp57IgrUjN{QYWKFRPx!@Ez zGYMK{kr!fzdeK1NI88PvTV-3;*y(K4;ORkZgK!4?mu*R6lQm7EcPvAPm;&eqJux_A znslzBsRo%V;e#|qbI1-A%|L@e;JquFrO}hX(NR5?6kRbXs};yEJDly)2&WKBV6v>! zd&di9x@#40WQ$lZS#;C3%*WXpVZY=^P#l#_)>WIG*jAY!DYiZmG8JlLf~EuYm1>H|V&LG?vf}%6=UXl(JCQxT%J8QAZ@{=qMtZ zgJFu{TiCO%?pVbTElH(1t7|H=gt`Tz?mda;g@$Z0%>l2d2b6%y-C8I3@0ET7aFnv& z&~+y12AmjWzoFY2WxoLyviHG^`W?=re}>Mzm>Lo3Rku#7+l6qA$b-*<4drbSg6j&<4GCQ--q?SBLW#v0n%<^H?VO)u>MYw*sVdr%T8MakT(xY~aM)x-S$wk0 zIAa69P~EmQP|2ok&G316KKy5ECWFf&`k*WnVFgu1TSvBoE^I4QJ|O5i z*`NdPt>8ujCxd426Wj2CY#d~m(rmy{O2d7!aS9?1g8yU@T+q$P;1=Nm;5?*;ECPe6 zkn6gqat(VUBshyG8j!gs_Z~ys8PW{=2Afe zYv>{{dTfK>G?jFuDLDr%w?T6A-^+f?<%_7yv*8$!2C^AT<&q9aPSqG;CgN!CTo3+( zH@2vil7W0Ega%DzHb6C)SCm!2A;v9OYIaSIscP(=44L0Mde@2V$EFdjcu(TSe}cw2 zXxM%y_KZVv&dnLYe=qyNLMHvHiEI>G1QvwQ;Bwd<8@j?bZ6SX5&2`^D?gZWQKBDmb z0<%&m1)4#F3t5+-5@fE9qz|(mfvD1y3TS3AG>Ha~ z$oR1E40E}uwrqn!IDjzQp`Z{%zwo%wa#;YpRQlnEm^#@CKm=hw!ULvFHssPHZ$A7d z(m*t-fde#{1cSyb9NZ8!->~y0lNscO0)-IwFWb7sY&tM2v*|$4#f(#F_zv;aXeJFb zlW7T1x{mV)N~?_|hR-~Dj0LogMnB?(Ot@^gS*pgM@y!6j6^`@bKN*3TL@l9>#1hpA zKnoSPSw&J<`V};#XyHPw1O7vNK<`*grYeS+45%m~H$gUyxl9N#7qz-TPAiC3 zRF&XA1*H+{I53%IMKBq8X!1g&k!dWT$jD5yaR7To+Ej%9Fi@v16^pQ_Mv;MyiOdKZ z&F?_^5l_(#BK1XN%TZ9wlF5C7#*&P{E-d?vg^`Vb=!EK7HDW- z+#tR*I#$4clij<}63SL_C+u{HAnEB8*vw*RG%2M(NrV-3`~M;j2soqASRDgl7|4kM zHJGF$fz9q+LCS~t14Tjb>X6ExK?$60tpuu3y8hL zAhLy7?hFB*O4HMV=Fdm>jl=&Mez)M+As{Y09dy}$vN$^CdUBV32Z6akFike7nk=+| zPjF0p0V>|(#{~;tbW)nBF@;nibyT+DWN4Z}L5M*kLHv?RVSOdRZ($9w8{IW>+cai@ z6=nz?FErRe(DEVQ5hBI{0}KZkCuanWB2z47F|h+DXh@B5Iz=~F!^58d5kujb;&@T{ zqDchMiZGe)Vl<1TW>B>$hCjMqlu#0)?GZ7}V!0XEmq7RnDF6*hKsf^xN~J`&e`=zU z9%PaOP{k5|ScGLDPy%NK2HZ0$zhpD8+Dw~~GNeUDyia&E90}+5YB;Lj%-o7{gM=>Be3|GKZa;916Y9I?^&o-mM<+FnzJfj=5 z6bG&#@P&xzC3X@El!WmdTmZw6?1rq*rF6xvXnlIYMWYi!72Lg<+gav5G>(Oy&Tp_}RajZgz z1S5ia|G9DK^bjV1>=2XDhvz@gJ&rXns4xp?@RA;f)-45-=jtu~fUvsK#2+xzu1xU< z1kiN?e>kixj~B2|4jZzmDF=<^88H|3E^w2O8;u%D70$=w>HVY~>1CFV$3Q*6Y{P0} zk>XxxP>UuOVe$Ze1<03>b__%zAaK`$MiUuggETpfyf$7y=OWQXq#bh+kFjwEa@(9p z^GJyES*I0fEY=h>8a;u=ir&bb%Y_!wPudY>(Qr)cnG~bYlY*iq-85)SKClS2q#}_Y zi15IFk(8y_0gHhDgfoiHs;-#Js;;21vM}_M)gM4p5L?nkkkq0y6gk+5L1QOIa-W?T zG)4;{%M*CQf6!1uqnidiCw9SoHihJtK;$iZs*aileIc4nsC)qEP|v8UI;+;8ZU-1z z_`agt5{Np@DT)FgZD;|fxumPGgw%fEMrb}#R4%ANa&RRKt$@a2W6%P-B81_>bq1=F zprN!_bh^UEInYqvq8vo@pp)DZ23oWRjB5uJCzDY|B!Yy#RJ0vYVbxH_qMSjL>Em=^ zZV7V4+B-mFg%8k(0l|p@_Gx7uG{`mGH2eWoZ3n{2+$!8TjU^$}tep!q)~trOAG@Xt z!@g0C&=9A??+gFq4TKO}0wU1KI?5r8#*izL72INK25WYJMUnint)AMVAW~>8Ob_#H z*fgybV;tf^xSz z5NKr`oe4M!J&58MOfr%8V0R~a)hJt$3t@-`ok%|2F7yYuU}hJP3i0>|oZrWOND^BF zyru>O2@Sp(-Qb)7*kD(O@ZO&$_>UhNW@Q-ApgWXZXx*n$jlh@TMBo(Wh;);iZzM?Y z>yUI2OJ>rKj08>9q7{Q9UL7rC?0q({6kWsHx#frd;3;WFT}7i6O?HFEPbUIoDqIF^ zKi!Pz8t`Yo&_7{VnUg>nkvSr?9tPZy`$bBqP_}&d&nU+Bqejit6Ipl$xlpO6bp>=n4o`aZxPDbK`$`cxJ`33=o={1R31KYId#-?i^S?ZpP^LyEk+PoJv7vV~@ zU$Bq>)k!8!XhLDW$28ej0_fujY}6I}2WUoRn(h!E@laVnu+IbznIqbagZHsMM^PZ5 zNng-3hh|+t7@}gG(YY{=6xM^r;1xb2Mt#RS*mR#5aay%KtQx<7>^_hYZ*k6ffc?$V+DE8T(=L0 zR&kIO3fvOnAeMp`-_Fp>2MrLJ&1JR}<5*r8w89Q2TyfDQAk_f)PhZH91V*VerwZl6U7prQSYPDcF3UI=|;o91obcpqyQK`0@kxt}h=!8!&q3nU7# ze1p6-L?p&Iw=mVSX&=PJK;+=*W&)c7gl|L(E`HO4j)UiCvH-+PL>qI_yW~H&vHOJq zQD5OA3>jjwDbg@e5|I$n^HW$ uUA)>xHsXyI(J}w;kc8+KEyBl*ADA+Ja!TTma3mK|@CdJ4H@