题解:P7884 我要分块打表!
拒绝正解,我们只使用埃氏筛分块打表完成此题。
前言
众所可能周知,对于筛选
对于本题,我们很显然可以分块打表,然后用埃氏筛区间筛搞定块内的质数统计。
解法
首先你需要一个五秒能在
如果你的埃氏筛效率不够,可以参考我的浅谈埃氏筛优化(可能还没过审)。
然后我们每隔
然后一看数据大小,164KB!洛谷最多只能允许不超过 50KB 的代码提交,这可不太好。
压缩
注意到,每隔
然后把值域较为集中的一部分(我选的是在
再次压缩
省流:每四个数字压缩为九个字符。
注意到一个数字字符信息量是不大的(只能表示十种信息),我们可以将整个差分序列每四个数分为一组,将这四个数视为一个四位
而
具体一点,用哪些呢?字符的 ASCII 编码共有 邪恶的 C++ 的字符串表示使用的界定符 " 与转义符 \ 是不可以直接出现在字符串内的,于是我们便只有
压缩后我们就会发现,总数据量还不到 45kb,那不就随便过了吗?
:::info[code:打表]
#include <bits/stdc++.h>
typedef unsigned long long ull;
typedef long long ll;
using namespace std;
constexpr int P = 600000,W = 64,B = 22,Y = 10;
struct node
{
ull data[1 << B - 6];
void clear() {memset(data,0x55,sizeof data);}
bool get(int pos) {return data[pos >> 6] & (1ull << (pos & 63));}
void set(int pos) {data[pos >> 6] |= 1ull << (pos & 63);}
void solve(ll l);
void fliter(int p,ll l);
}tool;
ofstream fout("data2.txt");
int pl[P],ptop,rtop;
ll N;
//ptop should be 5769025
void node::fliter(int p,ll l)
{
static ull fl[64];
memset(fl,0,sizeof fl);
for(int i = 0;i < p;i++)
for(int j = i;j < 64;j += p)
fl[i] |= 1ull << j;
int start = (p - l % p) % p;
const int x = 64 % p;
for(int i = 0,j = start;i < 1 << B - 6;i++)
{
data[i] |= fl[j];
if((j -= x) < 0) j += p;
}
}
inline void node::solve(ll l)
{
ll e = l + (1 << B);
clear();
for(int i = 2;i <= Y;i++)
fliter(pl[i],l);
for(int i = Y + 1;(ll)pl[i] * pl[i] < e;i++)
{
ll start = max((ll)pl[i],(l - 1) / pl[i] + 1) * pl[i];
if(!(start & 1)) start += pl[i];
for(ll j = start;j < e;j += pl[i] * 2)
set(j - l);
}
for(int i = 0;i < 1 << B - 6;i++)
{
data[i] = ~data[i];
while(data[i])
{
const ull lb = data[i] & -data[i];
++ptop;
data[i] ^= lb;
}
}
}
inline void premake(ll _N)
{
N = _N;
time_t bgt = clock();
for(int i = 2;i < 1 << 11;i++)
if(!tool.get(i))
for(int j = i * i;j < 1 << 22;j += i)
tool.set(j);
int last = 0;
for(int i = 2;i < 1 << 22;i++)
if(!tool.get(i))
pl[++ptop] = i;
for(ll l = 1 << 22;l < N;l += 1 << B)
{
if((l & ((1 << 29) - 1)) == 0)
{
fout << ptop << " ";
printf("l: %lld time: %.3fs\n",l,(clock() - bgt) / 1000.0);
bgt = clock();
ptop = 0;
}
tool.solve(l);
}
}
int main()
{
premake(1e13);
return 0;
}
:::
:::info[code:压缩]
#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;
constexpr int N = 1000010,uli = 11532,dli = -11885;
constexpr int base = 93,V = uli - dli + 1,K = 9;
const ull big_base = (ull)pow(base,K);
int get(char c) {return c - 32 - (c >= 34) - (c >= 92);}
char find(int x) {return 32 + x + (x >= 2) + (x >= 59);}
void _decode(char *s,int *p)
{
ull ans = 0;
for(int i = 0;i < K;i++)
ans = ans * base + get(s[i]);
for(int i = 3;~i;i--,ans /= V)
p[i] = ans % V;
assert(ans == 0);
}
void _pack(int *a,char *p)
{
ull code = 0;
for(int i = 0;i < 4;i++)
{
assert(a[i] < V);
code = code * V + a[i];
}
assert(code < big_base);
for(int i = K - 1;~i;i--,code /= base)
p[i] = find(code % base);
}
void decode(char *s,int *p,int len)
{
for(int i = 0;i * 9 < len;i++)
_decode(s + i * 9,p + i * 4);
}
void pack(int *a,char *p,int len)
{
for(int i = 0;i * 4 < len;i++)
_pack(a + i * 4,p + i * 9);
}
ofstream fout("result.txt");
ifstream fin("data.txt");
char s[N * 3];
int nl[N],top;
int main()
{
for(top = 0;fin >> nl[top];top++);
printf("top %d\n",top);
for(int i = top - 1;i;i--) nl[i] -= nl[i - 1];
fout << '{';
bool flag = true;
for(int i = 0;i < top;i++)
if(nl[i] > uli || nl[i] < dli)
{
if(!flag) fout << ',';
fout << i << ',' << nl[i];
flag = false;
}
fout << '}' << endl;
int len = 0;
for(int i = 0;i < top;i++)
if(nl[i] >= dli && nl[i] <= uli)
nl[len++] = nl[i] - dli;
pack(nl,s,len);
fout << s << endl;
return 0;
}
:::
:::success[code:最终代码]
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
constexpr int uli = 11532,dli = -11885,base = 93,V = uli - dli + 1,K = 9;
const ull big_base = (ull)pow(base,K);
int get(char c) {return c - 32 - (c >= 34) - (c >= 92);}
char find(int x) {return 32 + x + (x >= 2) + (x >= 58);}
void __decode(char *s,int *p)
{
ull ans = 0;
for(int i = 0;i < K;i++)
ans = ans * base + get(s[i]);
for(int i = 3;~i;i--,ans /= V)
p[i] = ans % V;
assert(ans == 0);
}
void _decode(char *s,int *p,int len)
{
for(int i = 0;i * 9 < len;i++)
__decode(s + i * 9,p + i * 4);
}
constexpr int pass_len = 18547,table_len = 18626;
constexpr int special[160] = {0,28192750,1,-1985472,2,-654892,3,-407235,4,-293374,5,-230603,6,-185594,7,-161455,8,-134598,9,-121279,10,-106647,11,-97039,12,-87078,13,-80209,14,-75530,15,-66602,16,-66812,17,-58057,18,-57398,19,-55048,20,-47900,21,-47751,22,-46484,23,-41724,24,-42302,25,-39914,26,-37750,27,-35564,28,-33737,29,-36160,30,-32314,31,-29333,32,-32071,33,-29638,34,-28408,35,-23668,36,-29991,37,-24799,38,-23859,39,-25809,40,-22587,41,-24110,42,-23123,43,-19264,44,-22583,45,-24241,46,-17626,47,-23332,48,-14992,49,-20057,50,-18088,51,-18454,52,-19915,53,-14283,54,-19432,55,-17644,56,-13931,57,-17084,58,-15554,59,-15654,60,-16223,61,-12759,62,-19629,64,-13853,65,-13686,66,-13387,67,-15363,68,-12616,69,-14148,71,-16557,72,-13004,76,-17911,79,-15361,82,-12493,84,-15214,87,-12667,92,-13195,100,-12904,133,-16601};
char password[50010] = "#R a%FvHK%]om4juMR+7n#`0,f7(X';>hl/3'XuL(N|&E!}5|2jVbo'irYc)bR<+(#;/odc>-/n#&CKSM(5+86;LD0/<g'-]Bs|#bI;e59If(nu99jSzl&Ic*J^!:Q4)oqF+-T`+!<8~hyxw(qF1dzsFP-z8)-N#>P0S8?WqQSS;qHQ-YLCd+Of*rd H[,sYHaH*vJ,%WUA|5t92'ja]q:+G*+[g!|xEO+sTU->&69!wQ&SX@Yv2BRY<1OqO,lT!NOV1S-$*%z<9z9>uL]nqCeJ55!%'#S^O5-gV>W7!j,WRh$1Ku65$~2u0T%E,>|0f3qz8,M''W7=7P-UFSDtCl+/[*f'W'3;5Ns8E|2jr5ph6IAAbZ50)[@{!8X8&ag[A]$r4;CyKP:Yl.!u7!Slf0*FgF10Ig82^ZMQ#lrF8BqiZr+N/3HA^$FrDv7c}TzVO[D4Y7|dnzM+6LU_b=fO!.T7#( zwN=Apy(jZXp?FK)KNK>h7uO1I`zGi:47!c^5l~%<a/8ToJZ2nr'M}m P9+H!G;x2:!sv1k%sa7,]t6+/;,j)=,cVc3Jp7Pa1Ux=qf-qzhgQsC8=Jm>T>WG_:uypYJ~8E8'}|^,/_;5Ra~4uMvx6Z%@gpCj]DAJ+no%FQ1KIo`Y-Hh=gkV<am'O>evA8^knL8UC8Rb4mk?)8!W.8!{1P-#w6}$O4f2M &($O7w$XlelZ>4jQjg1ts35@W`nXrMGBuQk4n!0RCmuh6CC<Z8I'/D61_J).[v&5>H'*CC;Vw3U!;4h|RjIg39ygEo- 1;6t_@n]D=81pdYNtaDP.@jth3hcH1~X%s|q&`1 YP^t)79/9ZAblGT!;>Uz(Q``t9]yMhN[t];0&$aVz1L9;!(nL3p24yLXz**hj(xB*W22['4AWu2#DP#8RNnD<5}Y5k5M#Z^@e4<^ceP>t8GOaGl'.py/`s /$se@:!j95yzW|3J;aAsiWD<.XI2d(EE3qb/<Qq(8;7e>K-2Qi8/7.d_Apw8(5Um<oE@*gXNd'_<45'~sm&+ZeCMzIAS5j;?F PZE[]$6U@V_~+s^>=K[x;f9I=M7?Y}!&>?%n&d;Jf.8~Vbb|<a>9GmJ&_Wy3>U}MBi&A}CA~l}pC6|E]*by.+H9-IRSe[VW4Asikw,E%K7`[v]d<sSAN&eHD#.&6dHYUlFnC?66N~}QO,9mAg y~B>0c d(QNup=eH)3Ev$p8);l..@Hq7>U(.XNl`>.(5={N,}233XRKm/0:8$v61%t]2MJ%{7ni'BDy9Aa}5QE>9nZZZhO;>U+<@]Y@3Yn~tJk$r7Jdpz1E_aCFP21>)W9;JjLctv|I;{S!g+^k51akkzl H~;I^1h<g~(:dpqJZ7s+0R^=m+)JG=tZ0cB,7P2wp7R8du`2''HHEp|<5/vJA|:nO<'+gDu4pW7fC@|[!2PEeN4oR>bU;M+c)}#(=8>J%,Eb+>::H>kU?FL3`XyA![YxEK'=+RiG*5sRv:/2`RCiqI>#n#{BfB1o/Qns;iGD.Ca!t3{iB5v: r@$GF'x+_58Upt#2G/@7%3NV0/W13nSJs-3:yATqiLsn+16a4MeRd*!99B)ww*F.<j@{9=MI`@s:G#A'mT/SuO39}zP5+bfP86{|' v6`pA+'9{!vv|z/W9xJF2`.dd6P1icvy$REK'6e(NzB0}J,HR*<D?-{[|51g[@l7d9(#k.>VI;vLe%+5!M2/0GRh; >= >UvR<w/ /#->~9f>N;3ZrB0^k#mY,n=9'l3KSWw^DZ1[eY?eP.8cZ%`hwy-9;~7)Rx@<S>}crs75HgW0},Mm:.ANf)3Msr6NNS$A0 X<hHJ22'Cf;Wy'#|0F-2G!G3BVv6; hF1}W|^>H.}aT>_@<f;RQ7d{i;N@hxmD24=6ijY/!,4-t-)lN3S}DBx!nPlO7<dXSFMNg:?eC]0W'Dx6$_uR|,~v=BU4DaA?x<Y}P_?G1bFaz-M&+]R=wmCp}~)t9?g&+MJh&<w@=%Y.{z8bG%5cul?7uU_Z{mn 71-QM<YZQ?@Qdz(:CY,HW,U,7;Y1EPdWs>1`@009N Yv=9kpnudMbe3Z;==F6k+6Jp %`[(m@;rWSFN]5<kHxVnjS`7d9zClqlg4BaB5Emr{;gOT0Qs9X6c/qOzu<K<p';0G{x^Hj}@v|/B*C$/2F@<2}=YGR&+0Ma.!;N*p<qe:!R?.FQcs:Z;ZUNSA%A*5Skb6FY:NLC$eAU-:*tB.!`4W5OdhZ>:A~@ive6FM4]52domLQa}6P!AMci}-8 BDiZ}-%@g/fBzghLHraO|h5a&;L7C@4Hb&320;D&aYw1L+g`I[ks@2!C,7ZaQ7w#z42&[email protected]&>=p?0Ea~ ~7W{d8[ACF2Z#}H%j7d:*JQ^'J._2qrxcu#6Q=%PTsL)Co4gi[jA>W$?H2%~D{|_E</4u_Gcq78Wzy#=WiEoR |`P VG)9Sm[Lk8CjSI_*EVL<X{=4xtEn6}[email protected]}|<Ie5OA,eV9xqv<oS*#4bYR4r1/yFijJ:F%~;21LY?zfhk8$242]BCw:YIz[3R_Y='^aG#9skCB anTUgU@3>1X=gDxA_(%O4(57FGPp,Uw9},Rtx'73bR1s>M-4P;G9&>ssrzcFAdk|gy6Bo:X|~:.+A~4L83sXT/U5UwWlc@CI=;)Nj%#Lt3m! >8h0:=Q&rX):o^>3#[Xct^'<($tummOp2!Po==(ZS/&$uof6Wv*oSX+wbf;;z(/P~42|:3pLZ0^, ._P's0h1+2Hh61PhCC?FvlzL`A_;7+ZtV0G441lc6;/:!>t`.^`%x[?#M% .3Vm;+mkZCR;-:Y5,UV6A%;J0|h^|f^E0F~kNSA6.M jCJ6=f2)BWDAC&I94sqLT)%kCN/F.XpnW/RYU>]g]>;lE]#hPMd5 2;g{U{}58tI9M<dm+ij($DNqZ;``tNV[D2Easssnaox<YBN%jRc]7SN_xoG* :?~}~,''f@m=#@x_,)>94=no?a|<A!KnFb49?96fG}(uOG%2g=x}vg9g|Y0qWP`7;m!Rn:c&>C4)A`+m:;hU(jp}mH9L~;qiK]xC]<M,:37<8^-4T&ek]5>tVx4hs|;Yt-4lrJ_4H][8506p1.qZfS8WR4XKIb)2JrKSfUd5*18>BG#$8`($J/DW!0#`&4DD0{KM-0<~ob6:,0q6JxN9TJ!C8kj$^oS=Q5~4x`/wO(5vP%oVpGM5X;c<BRe9AUxGW$2EX=oO90j76T1tE(~mGD/;)L^5UUwz5%9`s .d(>9H>1t{Yv<g?oX0)]414Er/ni.6==1DS+PKh6,jaqnxfr.jD|F'@_@7PN[_NlsF.9lu=EJ1H2CZ4%@Nl?4kDOQLhhkEY[fB5h; 4YNM7T /O=j3>O]Tqw;]6xY {%>8c7BbKXvM7L')X_9dkBv3ks1<+{;6a}Z$clm8t(oQGK>b:pHZ_f0*P;Y&^0o|7u9cy8!:?lsCHu*a@,v-9s=U875RfA^1S<U0]<9Ri0b&3i]3-ROB#y`3>@M|k3mt_8TnSoK/%d52x-0ITHD5[esQZ/B%*O|+bRJ=jEG$h6EQz+>x(~_D:,':|-l/Qvf5>1<NEzx=#>|l$n1=kC.PZB?iY8C<A Sa!en.6|@b<7a (6BEZ/XJ@68nC5:tgak9>NHH eGr;|].B#@hE1<$*d9EL|?PfL[]06sDv%ZK%[Dt<9U9%G%a*GFPeC2y?p?qCC&G-+Q>p3e_.)={LBge_Jyj~;=-:DQ`Ki8Uarr{]I&DHz{a0&[email protected]$$TD=g+mPsWc_?,&SOm&( <hn-ilL[]7G>K}|xrv8wx}o}'isB ziHgyhj;t<>AuKL~5fOBdh/8S;<Fw2K}p*@]NEp|Swz7e~ASJ[hvF;=jrGET(BKhSm=2I+3fn%8)3s_IOX?gcX0u;Vz;v8~FD69m|flqC^@y:lJ8zX<,o0Eilftb7HW~m85b7-a3$.3g(ND&,=[g!q`1KKFJC#?M99SYiR.&3?jwe$@'CE?7Ae!H!p$<7E~N*Z!q<-krCOgpJ@F+xylh~Z@3+tSGx!361dvrXf&qG!pK-bvro8G1XbJ'S,>Wf,*;`!!5c>ZkZ)%y=`@$8ffso@GX** '=RCi<-TL<qr6ZKN4OOh/=%&3#h>5G:L2*t[]^(:OI.G58f/7NBQk6X7v?vpC7:H4j4V(*.Eyl .|z-]K875@iu*3#fp29H;j9Am.2;kimztFM&<Jp1`~MTs0Ye^!YnL8<Y,sEWDV|=f,CXS>gnJfXe-5>fk6|@.-61PqD9efA<#@fFMv{WqIZECD/jM3I*S49;/`L] oHx`c@n8VV;c6L)r)5:?i^6>EM;$,H1hE1K)[1tX?:0cLOE;P;R/8R[?P=(`z(8G49OzPs!Q|@e^1Q)ma}C*(?q,v(l=_QEs0Z8F+GR#&pNc=@i<<VAsOJ8<aw;?LPn6 Oka9$f27.0V-swF]<BLHgtXRS9_`/EWno.>h~/'@'o(<E:bR3#:t<tjXsN^mZL45'uiEim?&%*0)8<Y9D$^$(!Kd726Ox5|JS?z)Dd;EnLF=#i P6W]=)~^? 'nd@Uu&O*%5s9pSQ9=D'pCP>XnV5u_@cOX*Pa=u:PLNVgjIl3_/4*~'^^?_/r*kgIn5k!W+4u_*Bs]PPqAW:F519&fS| ;?Io1Js>qCwil|{ID;8h3pbsg9Y@)W>z:j=R>oCQ5.1eQ:HhM:l%@j7#8d~F|TI5476-Vx7$>TTER93|pF@azSz7|-=76prohZ{5K;.-u(-4;QlU-~9):D7[3lBE;Q@^DU.R>,mC,KJgS^B 9/~g8<OXx=8i3xmgwECBsN|#FR=Ga*HJNOeh>7'52[&+Z0+.gZ-Nz_@Fhplki:#6Nh`4b<2*4s%-3>^W:ID$A*fL?W>Vs)?|H/,;I%fLb|US@zW|WIDhj=^!5mrPy890~vPmSNrA&Amca:[Z;4CD?KP$+6dIC9VL#%9?>z|>^]=9[<!dv$OP?!o/ANc'l=-H4bkQn?Exg9WoIoO7xAMq/Vlt*<i6jx??k?eAJSzeLI<Dp|~wND743)%|-XT@?{kS& -)@AgmJ@#aKM=%<d!Rp%C=oNx`63wy4JDKqloZx:0vm`cxoW:OHIWjz3r2DtMu.FS+?YOg%O~Nu:d$#_y${^@4qD!'$f_6exeAhy%*<v*Y2 +=K3m4vvB?&@HdlIf4%A87$iC:zV n9o<4,5-3pDgVeT=X?(:APIiw9`Z=@BTPc0KG5)Q=j.a![@myz='JiB9u9tMS/Fr2w dK$D-a4D^;OJ|Fl@SC3p+Q'r.@J_yBk~!9CZB!zMuX=t!*t.?~9<F}8zpq?0> zU6-ujX89('OUMsy7jwek^=1dKYQ.P},Ix/*%T&K3E?=v?jUA$U'5PEc;7 sY8]<U,byi06M`?K(.?0<.oy{'4@M6`1-*BQ$p=1I1/qM}xC4A>e9=J98zS3Z*z4p:n&G$#6~5@?=QP]:MB=^7S{e|tT5]PHn&0pI=!xZf-IOB>4Jd3edMS3MwAx&Ysr-}}5px@Y}=L,(F:hz{=id^=m'j9>HD4t/#==>8}p^BRVyBX0AXjB~2@$o:m;oa]@0C>@:}IA8EOT.B?El<r^278R/r:y1ofTs^JH*q!nlU/b<?a-Z^W&s1MG-FG;I85A6`)}ob_51K]C-&&y98;9U4Gz$/X3@SNmA/@A6ZHf0_/3yngt54.|:n';Js{J>:mtg1lMoLG+rwP-51v7i~(DDjor4]_X=7RKV@@?.;uc>a5 _UY538]A-]=b8pCq=/kp33(L/0-R%%;PLf>J&=42UAd5%cX_,z0Q23!B'0VfNFwKTPfLblBh'SP^JC(8-/L)VejD3i0j?*PddB68Y cc#w>!X2vmCUx;~+O?D7:$6aq<J0q=}9|unt]gsbF;0#au-k&GrFu{e,+!<W2[C*u$g3+mH5MG%gBxPEv:Y|(B2.+<m)^(?pbJ,/KWo,_[qYjI>s*/j:vx/LxB06_]N0@+<z|);@*DQFW-|9}E>1?C(^.9J1 67K]qw0c266[c?5AB%8~jekc<Z0<Ffbq$iD}+&4I+ Egu;%De%S.9-=[M_a$ ;U5C[A3[)jqE7thx_7-)D6|uov>6 >>(ygzW l52OZVu8TSH?'~qU*P%@~XG*<4w1@STr)ryGjG<'.~$G(R7lZ/IL24O?Z|-)sd}p;yp:|CN.kM%F%)i2|}6y|AIvR_dBT; 9s@-V4Kqy8ob'~BSa'PR3Vq:m8H;m=H27neO,I9!B?JkN9&V- DV=p}_&)3;TU?u$T=H:Op,eQT(z=NNxb~T-];[oiP)_XA0MnCJ>lRj;N2R8U@W,8Y<ImJHa|F-:+Dm.HG9(a7&N:YtJ4};bx@N>>?A{S~(279(QFC_FC~2qrZ7O,fUAdIpT[2e->x?zOX'^2CG@_iz;I(2Vbo>wx`P4C.<;oI*$:4x&TAAa&EjEyqZk'*:r{F!Q)FzBt:Y(<XJ$C.1|})>MGJnQ?[8_H,G=h+P%/H%?tg(6C&,gCsLo`=3Y+JWQU;f )!=('E%@94nDkIP8a|u?>?X$Fi1/5A0ZF>9wW{/TzI]zA1(6=rSp^3;JDfzLO!,/H@s9SR^<([59|^RaNvQ;~.Q@tyV[F<mEp,+E}4&'9{E@JP8|su[#BI.Dv)9{Qk6X?<yABYxT#Db#W]GhzG>|ld0TPg}At2p^P6t66h7:}>r){;Bo$ 0CmGMA,M;lEqsRQ 4jPF(yI=JYp_P#U1}xl}00Pw5'2KJ4pfUE9UUKZx8U?~TeJ{yl6<`82=3~u?Dif^uT!DOA-^D!mwTS2>cds%~1N*HL}7E7Dn9_z*@A:6d;U^*p?C>jBC%cdy~FV=lfuk{5>m1>IV2wDlP;6J-]jnF$D[9&RUT;7;q(N<J!f=BX@iX78_-HQb%c]IbwFf3fZg'!ODe5iNH*~6;?#We[l~zB.AU*O'7>7prkNs;rs8%t~W)q;X0260'~`R)+G)aogmb7@hDmk{_W28}w[ex3`KIP$jFJ)-B>Pc)$'r]g6Dz`=6k}&65QblsZ^C=^sg;H8Db>TeqZ$apD25~f>f,*FDNr9ZIPK I(Oh988VFE;*>6j#6EE_TEF-n!}=0rOdz[2*5A:zO>6+3@3SkmQcBH@S~7f48 *<+4jR&eko>(h:==Vy^DYh53M:mV4a,}Ok)' 2;SO5zyu0?x.+6AiZ[:@^EdZpp;5%*!vY/zTGfcMR<s0b<o^#5';wH@6,@<x~V*@#-@y9r7pC{kdt[@Uu;bAR,n=wf8{iC?UDXI7 ig[(?>m>AVbrJ4r@>ts-_^$Sq:7sAS:O8h3|sD?6}do<`y4>>]2u4@gSUqh$98u g#bw9;9GoG{qL#=/[G,b2MVx9O-6:?*^;:/m+iO=^#:'tS`|rRW<,`-E3Nt9?L<pB'5Q`34)Ze%$0W=v|`w-JDy:d:O2L+vTDp-,Ql%t79wlVD*iLe:07P4,-d6=4$0wKgDLB,!ZuN`&4@`?_~EQa.;Ib>4qpY9.]Yxj)&.^-8OUuNs,kA6A`*IZXp:m q>S;d@;W,-],6RF96k7T!PC-<zaN!SF238,%nG I@51kt&J3&9]//Xl-RO3g;NW6oF*{H6F/3SeVt/3mth%4.pyA9l(LEnWl&.4,$lm/r/3Le}.mOy;T/^!(hu)D13*6 0sY3gv(/('=X91O>;db=@0Cw@{cz2a0?5EsXiXe7g7KPF>oa@&OD5m1iT6q`J`7Hj7O6e3=]7yL;UD{Gq6pJ7OI v):1AAKf?Z!3N48FQ `_NmC9M]=Ldfl'58'5J[nka=;f,XM2U~<p{ QXpii7Ai_!7&Ka:LCA#WJD2,DCOaW)=}@)=*)4c62>=8enQlSt48^^;NKvL<]*`1<WSa6iiNsI6rQE7`24@P{*ChkHE#v734QZI64d?C?bF![o[K'88s^/w7l8=K9]d>P{NECqCU2uL@@AsXuKM_$D9~Uwfb~Y?el&AJo4Y=Qsp2>zf{DXxlQpO]I>ewBzK1L*<DXQ?p&K0>~'~^mfsD3a$QF@3=i=?*P1Kz-?4_6b%J8^;Cq+|X2ytj9?g=;Qz~57bW}Z;yf|:}]avx#XEA^4iDf*aJ9IjNvkA]n<[#)}>GwK+N>z[4CxR9,T`Nv'^W:[,'NQ/gA>4aff] yF.kc@uF_LS2HyiJj9l!=.c2N0lj7II0PhHOdGD}k[e4D|F):i;8w`ya9*ZzVd~IR3SwU|v^tU?BsZN~2>XIx(t!q58v;S<Q7Phi_1k74XOj34=j~}RXh#m>1'z<FkEX8f%>Syb^TALiGe)frI9)}:z@U|A9bq/^}4=^1aj6:Nof*2kd7f^3z4:Af$&BC>X7f0;xK[SR@}=YK.mlh:qJJ:9G2jF SK)}`Cs:Cs0y9!0^0ULn]:TZ/;;YGXy8I]>]ZjNQJDY7'kn4Bf],6vlhU7!~ -=F:GBU&7F?G]ib'r$7BIT7g&j(:.)aFEYqiAa5fQm?B894J6ZI&20/Su|h(>Ge<T +!GO>SAr{2T(bD(A!QG1FbjD<z+-wX-/u8D^`FZ{z{=$Lc2Xkf+/6K&2[Z_rBw_?~!1?!)#*z<`7UL=:Gmau8r[9r:iUF-@^0,:--EtYs9j0g<'d]o8$kfR!.%&?B_dXk.N=;tc;$>oC,1yOOWl8DP3x.ur>Jh>:w#N2_FfI5Uwrn/z g8(qw!}( u=.v)ihI, >a{ke?MDj9FX[U*yd,08r[M#lD*;8Zf5E%5e>*yzh=u*22~`h_PyihDzT<bgez#H-[kr#AGwPk!91OV9M=/)r~e^zu19&sB`|_A9&VC- a1:8<Ph^82$4Dg(e-#N(QG)P0+K3Qz=.xcd#LCm:~b]nU5`q5:G|uj0t9=gnv?5P~=>.-_C]2&DC#b~T#n'B7W-E#ilR)<dXKDQx +=JG.Z{+{/8`xj|pVu#1ANz/6@J09%9~1#k`L6U@b{!Pvz@8tyk,+/rAbxEL~O:=9]+}Sv*nm7<J]WfLvZ5|>vBMW_=Fy3Kg?g4l=t]KrVgoP;6!x93aMOBOc&nxO$b?gw'~}8,P)v: %/}U6+[B61o5$|>b)p%v*iV5SU{A^=uc6-pw#/+&#D$^RHPFC-?i$ZsqdZp<9}?$_tal<OysMYuU:;4Ec[nbL_9!{}7#MNA;jao/qzO1.H>8j)>MZ12y=.s+Y`057q,ZE7x:kP(,SbymIR,1S;~@cFq8PxbyiL5~J*r4tXg>hPd8,3-fFXC}Max#JA_<ZY3u09:o)97F6RaA[OyS9'kWCz?Xb8t]-9T`TQn.JW?@d!MzVS,>N~CNJ~Q%I_gpcj3:NO*.=*8jP_O1pok&|^t5e:`zXcgy=cBf$_:xG?hlKXJ3cZ5,hMQKDX57HAZGA/6#:(~&'45LMG0w4GLE[F1}ReYfToiLviFk'A9SD|y*aX%{|7T+N6zoW>7qyM%2KMT<,w>$;E%VBL Jg*|;V2rMx0aXAo@*/mReM&KB4%9%tJ$-DqE;^1Jw}DFU7[ |60?l5PB`~uGGy't!8dCU> h>m<,*tAv?x1Eu'#?:=On1|v$76uBX*n#]:^xY_%BD21A^4z!{z#A;('bkCczC?'~/PK/^9Ydi[/|7a?2a:E!$9[BTz|-S|}9D;xihSXDq<6>vy:GKRCSR4#+7L@9MF/R01&L6xT3w83M-9h60r.mR#:M]T+%dpVD#*}kQrE.JMy~Z0cPZ<@AMzWvclHJ]+!hi[[0U#||gML.)s*Mj>%}i97q25*!_hH2wSk aow:s0i[4[I :drD;m{Zw9NIfb7)Qw>go`4F O?4)+R<HeO!/)]&a<x'%?%^AYs;bs?]&fwB)'c9hL#%&%l1:`lo&2AF(=`D3;Z5uZ4DmY8ah^L<SE(M>mZL<it3v>4*^<mQs1:X)X5*r,KhI{H0Wi?}0yruCwW6tX~i==Ehy0.jX!@svZyU>*h9)R_jM~uQBZwcHii}755{?Kx?3?7n@&Mj87s=v{5@x%IQ:FJ%yw=4]EDrMl*:x~2y}U,I=&r9r`J?{2mTB|D/Cg+`S0SicIhE{O:F2fhn7K^:lj<jHqoL?,K=5JzGsDn3g0*J,w>*x*IKZ695jjrIa}|,3Jgdu%#HJ:';>*3AnF6:w$}fb=/4qC[P({hN8QvHy&hJS.n#dQM&X+7[qd%h]>$7c_+9pMMp3Y_Jr$V>*7U_<80W+K=V4<khY4!A8R],$6G@0Mkb}C/*/<dhDMTa:mCLb-.as.D3v^EQ {V#B_l&a](swHIk,oZ^)o7 -Y}CK_I8n, 8wJ;BF#ak8E9W^N:g~zu#~:>q:_8%sMU0yq^Ovf8?:%UGP>j(->S`LU^%*=?eHG43Y]eH.:'v7FXx;Q@ArGi0;:da~A{.hb3dcPK7z;k79#eXJ<fo<O&l$(0oC8TX52Ou`@.?X:$.EQ}2}Wuh5tyuG=VmP04B5?s`H0D,1-=ywl[CG4h3gLQY%V)$=h;>Pol/R;>@P%Ln9uA,B03x(:%=~sOsh;U!DPkzx7_!5;%26/D4_KG?ahCkb372 t-+&zKI30;}l4mh=3q'?P@#*p9outA<J?N3S'$6+mA1N@'[oc}Dl0AB!#.xq'7Wf:WxkP,8@Un>q}|#BR[;gS9*?<6zt,kk@U3{Qa^lbYo2>)S cw`@>C kGXag+Br2!1BlLvDRQABxm|03uX'<)Hzy/Df_5rWb'Bnd#1=`R;J6_2o;Wc;EG#Ar6_&57+V8H|e03:t72d160`>4=M,WJq+74RA9Y`H+G%[t0`?FO<!8P;^~^./{db2f%:W?dgKRw}Rc1MB8WVG#;@3,Z#]^Ai8i78;j:VY3$,1n|Yup?g&=WaM1`74*|We5$kA9jH<6(B&:E.DNJhOK=r':xoPzn?ejF{_6B*Fp7a 8@KB=:q~}mOQ<;0')BDIxV;%5=ke2H(@akNS p1yCV:~GFP>T?RrX5Am~1=~`{#)Osl<'D&A+)7JA?Tp*h9'K7wMex1GtDAv{prKgCJ?aj6's&2}8Iy4Dj)^T6A9PFF'l|Cr`q ?M:T?SUrmRy)k:v.3`%Vz)90XgA1]V=<Y)2G;.h7:iTh672wOD[8=YMBbmDE(&Of$jr7y[R3?BD];e/HL2fAF6_g%4J1{E=UzA0^aox3W*NaA..)8fPZg-V@-3z(`$+wHc@nWsHCjo|DMD)N]+@]9B{C%C5xiDusy2uIx|8ieauJ'=)@'1!gE-$+=KP=hpKj88V<^xr8`&.3W{Tm@Z_FIv;?.iL/;+hffXr]!'X0*NeBO*Hhor!Ff*WP~#rpPqyh6?S0I~^([KNH3osb#XF::fRXhi7>6tVbX'Yp9qYCX;`1YI,DTfE ZsC]yS}?q2)8X93*T%n4>C8]yWxs&83<D=6>J*4nX25:3DB4Ote4*tcyByj<q:j |;dd{0Efko?dR>b(3Fa2pkeNpAeo?$lY*1_3#6Z9HJ8^0[@^DKJ3]N_@LzWFL83D<R&^J-z?f8uqHtX`$HIQ{t63/FB;nQ^rc$3N9F~26i,!WCNHDSK22J;*+s]HF-M,Zo#'JC+gFjO$IM/'KCxAB{Oa(PAFo= A]7h8=n$CFr;'2AOquAQY}5*/a|<dm..Inr%kk6n5- ;ovwMl6nbLiEpBu>5}~1x]o+@16!n.+;>F4e'K=%v><umJ%Xfs`F)O1nEUwuE >C<?fxU6oi.Tj#54@0}-'-6@oHDkVS$A#)D2dH#q(BNAXj_b,9VhC,:4CTxF?6G^[8YKy:.HP7wtae|<{lk,D~z+:'K|[ u?-?{,YoA|G%.M!UJbr1*6612;v(*cKH_=-:.6nH)ypaa630;G|V%gs]&-#R$S(e`>5)Sa1JxPZ3dO5RhJL48?N9xC2x/;UoR1}MAGD$4peJN$|BMwD18:8$8D26bArK$9`-O<FDZj2g _a:R}57mHM9|kL1@o8}DSh|=D9=Gz<]c(<N6Aop9&_4&@UYY=1#9-a^@Rm )EFY3Iw?K*55S}GV]CI=xssLy:6h9uuH{<L-M(rp#A_zK}/d`}l.qfc0)::'blu*/;0W}CT$L/2XvOp,'G6r=P,*_-S=d3~D;mp/@*W|b8Nsg?!H{srt.aC%!Gb:G;@=RgjyZ5Fh?/E&f[QZ<7<3MKdrrP=a!cbs&A^AOh_<<teWGACGi?=ni1{o`E'W},Mi/`YmTKm2%jZxQVHX<:m@Xyk~E=019Yu jz:,Cnia2m?.dmWy0o9v?|Ylh~c&N>$wv6tg=&6~N%+9?4o?eWyw/9O$A]{QpbZe ?t?i0G$#K9l(d}V +-2JKiL%LinFuSyO10O8?i_Xy2s4Z4@ft ?'+-;La1ZI_k8Mexl1^[uQ?G<_+G(J/3P;p~cgUeA055c,CG1<|vtiD/G>6Rn&6XZ#)+cXy`l/|T5VjzmABGB9+tV*p$%X7gw(S6:5c7 .g'N-cK6aah24KYJE>{j2.[J-6i-J{m[NqDWJSB%|;.Feg;^qOp#=D_j}%7-i4.j|F$_329fxn2%)v>>Fa(h-U324xEx*{d0K>(YBkxLE{9h6HPBgHQ;v^HK!Qj=*>bl1UB,V<pb|gS]Gx>2WHAAc9S2@$W4`h>}=73%}v$MX:rRp-f'N&LRShG[us>=IEisgW(!Irg{@HN.3<C?Ur$0mN:k)?S=]H&<M.5jW<4F<d.&X5 lW7FgYKb{J BD=GP99:CA`*r0:VA)9W#0FgY7o?q}!utn>~=7%.=UfYW4p9 q<X#E>{=m;@TI 3CNG599)y+I4bsl8GC:uTsp|t*^>BYPRE~9u<X6riX'q^0f_d`x~g95S?n}Ngc1?dUV8,w`y@x417-:>3B@MQ@?UWiAU=X,@C1(4f(I:#3ch@MBx4~r}/HBc*D^Ikw6E~yE-!0w1H{)@:J&i.}k8X~9TfR(qN<B75u=:r/kPk^Z3cG=#ZG/.;*eE*f.fD9;%,pQ9%j?5oh.~F!E2u:dT8`]U7&`|Qopw3H.$Os(f97>iB@cO_8k>&[Rl{6$t21$0V#muI3j(6*L y.CfN28nf<.AHct5Pe3{MZ;-FFa'e6G%X^e!U#GZ|NDix)l?T}(~@(Dr1IS#6ZM^!?%!*!e6%6<w/p}bJ~X:qw7m3W. A75y:z,gP8U(Y=G'bz=MnH^ .pW:iDr20&HI7)5LxW_J|6SJZq4v=H.iB<3kHxwJ')J@@GXq=b!c}C?Tc=+ypSx*`8MlneeOyb9H1^8`pz{v2)Y29q8,ZF(-ja.0gT>,lwfF}T8.p.3vn4p3@X>:<9_0&>P(83[nlZ5xJ2`|:YCBUog&oBGIDW su%+KV42HB*XDE0={%14Vvjn6i-[xpb{2@_I_F0N9L5GXT.bO2+Bw=2d,8!?BoVYp%TikJ98.9+,Gh>clZJ&?*U9/ReR|KW=9DMCJ'.$D<j|0gb`@'9Pp4l]Jdn?hF]@@.fA4M?iHiM+x:@&f$yYVX47X*d{>IIH9ixB@<Ur6WKoeShEK>s-4j+`~FB09R _~SI8-jUG1n9N4UtVu'6y:+(krHnO`V7h/$9VRY>7op:eSf1E9s?|Q%|rv6nOzxys@W;4/hQ (A}?G0Yy$n.-?_ :9w7YJ8vyL9[0P5C*g+wh `y>~wINI=@z6<GH#W,#{= :v|j}|O+xhOO7p&V/d25QgDVI;c_2e}S][:+RH}xC?kALi}QR;le@xFzYIZ3>DPiQ:hE$g)C,LPI uX3`ntVOsJWB~:=^%sc|5j1.vmpCg8j+DEYBJB>}FTI!##Z;Kk0YC@o%G&tx9| .;>@%LkuGQd;5H7XUxI48|5{UX,EA,t+i2W5E!C:|)M{uZi;j+Jfk'PZ58fDBJK+B4@}]!606fEX-4-.f|IN]]}-j1oc:4PlC'PZ!@<<m9gw$jK7lV/]W8SD>KiBx+xJ@kmn1+JA%=O,4lfQ]58xp,46$Rt=iezs BodB{|Ly~hhV8CB&MMUxQCCeTl`V[)4$XK6G_[2;~>JZ[!uG3]rp7Ero58(#yN2wXX@r5)`Ea>y@nWEmShQ/.>zgX?/@h35X114A&Q;_X]VDC,_=+'Dy7=bR5<gB6#2Yt>4;[!l,L>>Uku<@g1_A^Dun2Z1R,NpJ?do)75`-UsXyUE=a4X7bLE;;$R{,Q`r+IS^]p.-'!:-9)L[aM4D_s,WOhpv5K$aVpTOf6m52WOlg5DQrSQ#gb%6M^fPE)D1;[UYN 7-Y-z>{[T9=]8rsG;oiL[>PNNf4K**Du]0j# 2a@=0BJUX]0>S]l_tJSe7;B(s?RUS6C#dn)8^K;~R]#;g^}B}K/+,5[vFi]}LUG1o:A<IM*Z(]8Rxy oT}:f/(FllT$;$@7O:B4d<BbNk+bfW5ldfyjN'|7Pb(hqNk~:?D5/wNM&@Ij<>i>}u/:w_w?oII<fMg ~Xsl/BlJC/##H5&{nw_cXX=!ci/g9,`?.q/H)TTi8ia%8$(R29h`4_.KMB7AW,@egD;9R-h4Lu1)31-Y)Eem&Buh8VP]wC>!--#up|^G)c&,'r,HBKTJ[_Ie26RXoyR5c{9sz<F546{4^|t0IyB>9vAU-<K=]@s<oF8oOx;aU?iU<a0EVYk^GsLZA-b DyYMxH-E8t^E4E@v)&%BGld>;*~iQ:[email protected]^;kVf]ANaG4#:zWQp}8<8u6ZB1<_5(`oz,pxVLvAt _:;cCoH4tjO-$5[7}c~-K]<-~DrkUE0:VreZ0][p:/l8h&!#vC/7fF5H {-gib~`6;f@xG;aY-n9+~z6Yu<vGCIbrZsUH~7&'tdczSUEAP^Cu/q?8=C+,95IN;kk4({L-&6 :(8Lv6pAOqgjEe{/6Z%$D-|v1JMNl&,cxr3$)8t^r<qAu#84N|.I@h#FOtQg_D;N)'N>]n?u1I#4}ep:^xc>bY/Z3s_Cv4]#y@=D%l'>b3;V(5l~9:P8o&9_QqQJ<277sp'cN2MH@mv1AZ2W$Uqg^=!9i}|G65Xw@zkNq:0&l4C|wo_u_M=IIh~PET+6Pu98s_EG<|wa/;Qp]:sJHQn2)J4*x;NB&[H<raGFA{]w5m?x_Y;}O9fzuZ.t&DA9kY?=x5zGN_Ju'=s&?E3~-1|F2-Li>]Q*C|4H`j0W)6h?SwO#G ^O=%yh)1bA6:04Zyl',~Exa.a@_S`B<q3 Sk9A1@48W[>Ol8SD t?Z9|Is1|Ke:|lD%6sbne)L<4.ho?TRvBU/t<WE!BI34SE,G[l9,*Eg:s;NFq}VxcGLt:0rQGjYn/Ba:~hEdCy<m{:yx;l-=/zP)FahR.E9oOBC)mB5obb$WuvB]]GW;2&A9j}l(7!~w3e>3vi|,}4S@:Y(@<&@us0*Y(>->?mIV_HJd7@$;fvS+S6`n+lbEfm720w.S9*F*VZ~{Q_>kI NWIy+O^3h}:tg}Q^@(7{C6Quv?WjH[TQKU?Tp++GF9 ;}9Zug$nL67Ow[Y{AO<^mwJF?*D2q TC{l,B1e`h`8N_/D|93{$[&x8V=JO?j M>p[vi~i_G5Ofv-qA$I@mRcjCrH02}`$(KxAn;yt>)@hm57XYD{+]>x5j}r[2!H8:*qqJ(S^@9y>n(Z;:;BML/^E<Lz3k(Z(%]A`DPlVcw&l/>D<Q,qro*?zvV ~eEy6]EK=@V#>5-m?u+GC*:FH{|'[/~8+^[=S&O9=4uAOSRC<D@Y:B%>!c7Jey]>2QO?WUqxEjRi1%ww3|J;nEf>Cy[/vm@*Zv9IH<i:Nya4Y^DZ@:oP`(C{w7patlk5 n3)G46z8=P7F`'Zab2V@=D'CR=F-5o'[u+(zt>tO'W+.NHAi<t-?<-;/4yAZ<%Cd>4No<bX0,9doyN83{z3&30Qta%y;INshA QQK|d$Upr!_3^g@.;Bf.Kh2Oo_B#G7Y^fRKopDDJ/bPeM8y:cBDW~P^NFa+AoTZXZ36_/kL_0K: MMa|_!#7b*Z``lo<?4,O{9Z-E4}Pq3-}bE2xO*H&3mD>^&0-CD%03}uNM!Kq;<Ld#7d)T|@5MQ$R$lJ@:-6Klk/^+z6+7Rgvx1]>TPNqai1o5tU='F89kGr%p9R?5;LJV`;GT=AvX+Mhxr>|UXe?N>N=oA:z4YN`=#lqZ(q^8<ca}EI'pG116n&*7[ 3E2=g~g~bN?IY}LdQ#.EO~jCX`K8r4PH3Z!!3Y]s6>&#{Njx1';x]^;rUa&CG5 DI*3,_>~W=Qafe5(du0Apbu38%~<vw@h}v&V?C6&S4A&>?jb.QSG~y6:7-)VNXhH/) Tc0fQ*u)sHL`ea7n(}EMx{e=z!ru)?Gd<=nGn~VM_=K<f}q,U.:sF.SRSVx0_0[Fc^ds+FE?wgTI<@{-i$u:5MBj!>>?+|t9r6!&:zBt8b l!rvh(DA gk6/6?A8j*c|4$[:>@Ffffou<I{v{u{'S9S3#Z]4 0@:XgV~B 2>N(U4/{1'G)&?'&6,{ClrLL00~;7i dOq~?m+m2OdhZoG:cXe$oD{)9_b0vBJW)4f$r'VB<,H,|9~iZ84H1Kt/EyB7;g&[email protected]^L}&9R`j/DSJy<V|#ahV8^@H9hQg^2n7s#oFpY'.1<U$=pjR(7r-^T/QIv;Sx%=8Sw>'iTol|Cg%3XD['KH9-?g<vZ7,lKD70k~!Wh{9u'9wZY(/:P!baj@wR/N.E+ wf:8&vd?K0eEAO}q/D;$MA18fTmGd[CNYE7Z|Cu>z!Od]LW/:ml|3Gg s@x5CdGl=m?5sxIt6B.B8*3YO]m[6tY|UsL_s7=fIy2b)i5}@VRDN{!/j bi48xS5{[1-wh@D6g7@[|}xw4w*89@6Y^<o&CSnzdR6.@MqX~ik=8R_OvL B>09vO-n<i;5 :ueVF(<8b-ggS0{:EB>S2!Of0V+2lQytK=yS%%G7us8|%8BXlnK:sYPKs47.Ep|q ,Cex>%REKBM[8:4uZpx~nEAXR6[PzK8:`FR_#1x]2t!Pv>XAv959jm(I3kB>T*tqW#a2_R2XN!uz>N*XF7yy_;zvi^=7qp64&'N{K$k>{?JTes#~<se]>%+ii;23aNf$|kGWC/%:Cra9ERgG'+Jj9|;qxYr_,Hoa7*!rcW:pIrKs'!U3gu<70MsCB`pGO+Rhc<{E|8}NGw3Ro']8/4&Cvtx%?q$!:X}B{{nOR0j:dzmhcgB4{8n?ob])( #KsnAlIWa*v@s&<9O}fHAK8E9fSAe?}1c<9)gU_@tl4L&n1=P@+/r+_4atvgA0J!J#/ _5M1(G!gIk=%?-yNNAX<!7Q(+5}&71kVA6>BT6sG*r@-%U0N3-'0vxo5EO@5[LEk8-X2O8^NxAsCOBji.v5,wchwlX*B>We mLfiE'`TsCirj=OWr -D/Z/S ,XyF9~8No&9tE0.9Qq}OOg{?F0MN=/okd?fd1t=,=4Bdv0[qk.Z;rEoetSY0H42 8u#j+;9LG*0^c~81V3zc=;S<yu|3RTlM@kY;!/RS:;XW{VL&'AA7!7jr^HYGFb+5afcq8)O_t+:I;;bjx(wGLA56-;D'vlkGUH3K=.U?2gL?yyC%8DJV]LeLpo2z5|1iJKA<Ur]]Oz%'8+p(!6J{bLl'1P/:KB=Q8v)#gQtA3ZIVl$!~>3GebOH}o4k./D@Zg!2Uhh9L#3@3~'.DKb2x0./^R],!J<X&[]b=Q80P@4vQoR5DUd&S_od~<.bX7#WPf6^7<qT%N{ALgpN>4dK?5 W_[}q7>0oB3h[r<A2(}/9U_sB*Lupij|+?y_4>0gIW>8ZqSVhg0Ej2J!I[;^;.h_%zlC?A_*NpO,Kp/;j3OU%TQ;gMXzxH-VBSJ5R71CW;TUU_IFZCDA_Auttjn:d'BL@0~MFo3HWwi339y<KzU~E^B '@O!<6<<+! pn:v,>HUT!T7%cFg5<iO[hQAq]HbS$UTOm{(9(^PC:y}v6+ Y~Ah)47Vb@7B=M=+LdDE9gk|q?5;eB7Oza8nb}-$2+ ZFT,;'yf8e7%!<e[Q,?ZfW(?t0]L]$a:t_@m-]]v6O.g|~9}+=u)@c.c1+@[+C$X:l554bc b4Us>h&.S:Y)U=P[nzSeE27A,:bKqL*:8f%HwLPY34+:hhu;G8EJ`VxZa7=9T,C(EpQIlB!r1;hk3L]KSss 4:V[ZL65Bo5.:?7@rX/;Ff8yNh[FHR<wM%csrBu@~sG(JY:':PAVBo5<y9B{!59n6iD+vO1n[2VW8z:j01@B;q~[$bh:51g]X_CJ:(W[aYdopFugHuF!&^@OM7;GSYF/|Bz:VFkME!h~j($4e>/rM1=XHJBM'f:~X3vF2m{ v7o_7q*fXZ;o,9uPs<hN&V5cv$[fM`Z0|Z'!91i=DO|xQS',7DCAsobtjJB=dd$=7(KG#8@85C)E:>QHMFtaF>=vf&FcL~:<5Q=[J94=H*DApZ7n8X`vxL.GnHpjS#3md7=*pQtZtM{9~ale/})6@<ah]JPGC3B^RVjS%B8}{e&TE(8<>Ge|Z?ZGD$E2FRk<E8IO,#8s[/=&2?R@_--<s<lfEro`:5SS(hS-6?FMr]^>T/;IK*uTrMD:Tej#=I$,>{8r]Z]9lCG.?(p6Qm@5&:8ZA.eAb*Ne2#]l9YDHv6}X80hAJ#{7phIM%EIC6e&<<wS]Pl<T5x7bp/]g M?[~yGjf~5d0EOrxKd7bo>p:cJ0?:f(sym0~A8)S*Nui}9 8RQ>1/g2/ibaze:~BuPAJRoFZGwzKlRl#^Eo~FKmQl(?-*I{hL4m<9(m4+}Ss:iC=&H2*e?*bpv?#N~:@rER=m_a5b&31$5B7?'>O~Pj[27RJ3M0Ym,@E>=Q_^Yc5lv_CPV[2E*oj')8Gb4JASbrD&y='[ 0lu*G9Du9oIk5uOM.vxk P3;tec?LUjL:)4$P0hvg?1p`pu^Ch7.X2~aJ)K3|k=WzFAi>[0i/,%q$4WnR6{>sP=ks)+K+~1OmAk L$aP@2%Yjf]H#E:_SWy~VX2q`tIz&Ov8.q6^,Cm*6QeOpB4-qAP7!y?G,k;J@1tE2Bc1y|:=NY&iC+I_!!{eI0:~zP:;F C,:?(j}ZN79JNAwcVi.^Jl>gYYd>YEmB]^o0F0v9!td<YGR!sm)JTw;|ISk6lt2@Q]5w4Vlr:TT=vP{vKCpe4T1cWE2:L;5.%(@?h?F]1xnX=`Wa{Pu>y;]8~jT5 4B>mO#}>WcJ-<RsX|q-9,+u4-'|M+*dnT=20=5TXql^W *EJMT>Icgl:$*'@EK/=E(gJ4-Ya:@ao,/CCi&=f)Cy%g~,J0rtm~_@qC9 ?`o^~n8mPf9#`PD7F`)fYpsg;MeJEc[;w+2>h,gd?t46a|g~5wa4G|e'@B*t3ga(V}5=TF:yHQCi>iI,!ys Up]Ji33nu)7T/ <~sTt}/H0l4)%+MD6u:46YA5J+KkFN.2Ky/ w?y7X{_2TO?d/5#`Ab*NONckGL||r<7k^42|jV7Hl|'Gj%?v|fzwF*f/P>TIa9.J<2^1|=2nIN2&2X>4ZX3@9Gwl92{E[rgG,A9 %M^3!K@$ NcXOcY5kG$k-LuP6S!`t*ggt=ieMeYQ yC?t pSw{3C:~sfmNWiHeK%ig U&D`(H@qg^oG^is^y=X(7y 3_dING5bKer|PKJ?(2n~O,SwDb 0q-X|oM, 'x5]I-=X(!Ig?B,;94Bg4eL2:/koI^oPp4ZVvu|jTV8^~@E|%L*7/3u0_Rq/9u:@Nx}A3>iDM3.6k#D[=?LcB%|30`ZL+gaI=wk{-8*03:yVXL=Iv05+a#g)b{lB#0D7A+C8E9l0Ml]R#=}Umw]Z:d:,DB|c`FX;^,bPMeIM1VjLPun)F5U{>!y_]=<tzg1W-ePCZDT2meT<H_uU ,d?^-lJbxo1cP:5~7j!Jq><9z4~x0t^5#@}2u+i+30(3LT*A7:(+S]fr8g:O/}la;[email protected]<iobMJ80.hyX$Ed<-Arv%,bA;EsE<,ler9cA}?ilor5f:I`dimDC;1p}a^AZ=RUw65Ll:;);PpS U65b_VdOyKl<)='vu;c?;xjPBT7P|8gfbK6muP?ys&>]7)X=nHvei48e?DAI3H~MyCzx}?#55gG?tVyA^>dCzz()57Ax=IW<+y6jE32q*j76}WG6QDIcPJd0)MD%iS!&?,IRrx}g/BmZFE2${.549aOF2H??Vh#}[m`b=D4IJi.;v2`U|}v#'^6TybI7D;n7~?a+{X<j7?/L0Y($Q4]->7^+PAH:l!IlB9u?mLXoz@XW4t'YGFnr.Cxm_&/u[]AE.S(.<Gl8^DME8k%9?<`Vq/' )5`R|HxmX,>@]O'I0lH:_AT+rnX0C-?-x_]FkA4`<j#DH&JO1qMD>d5ChmR%p|q%D=i}fx3~p2Yr'f&]hc6(g#?ccs[;pub%%?N$L%ynGsPtP=i@s}l%5m-?xj:%*(|6qJ$p|r@'-&QinT5{3,<Jofm'|/4y]9_/VSzC@eRs*t&.9v@&Q.(U-3*dM*txNQ=^4k $*-GB6 tU1Ci;2sD6;w;v3>WQ$:*;HO@+ IT.M~S@Xw'&4~ s?0|0%24$%=dpyq=p1f5g0{dEy%G7@cywMuH|=A8s.@VZP21N<vHgtp<[%Q$>oN57^=Aq]$T8<ct]UU#q-CCPs=U/B1;``bHc$p788H|'=`7+CUI9N@0*xAW:5y$yRtGIc@y=~VQ?2^pZe}x^;[1C0;*_T6_'R,2~z!Ag[0zFMgP8pw1*ZVv7=9}4Gd(^]C)8?/p~w]Ctg3.[:~&E9nJ3%-.m<*DBRipH6AFm]*I_]h7[DC:nLZ1:s6NM^x*E<2)=B/piP9;JPnu|F{AlyJ=%Z*.9ux;o~2HM3sZC3}sw<@87-'Gq'i>}tDAI4}38@)q1Ygq[?eEf3ove%A(f3<uN-_:Dz%0;? GDyQbo9m{,8|LD bP!#7.i51s9/>8KMk%0>,15:qNQ!2x7@de%OwJ^Q5!@=?hDs/8j>!&M6Nk<b3N=X[PGBTv|dYftZD90]1g~:804k AGVPH=K}D-X/v`30OW>I^ugH1!/>7$*H;sa&le6p)A9+e3#ZY|60H0rZ?owA1#]|J>,(5Ec_%yn6RH8!Rqz;B8B:f/M2b%QA(*DX3rUu6TP4OZT}g6I]SB:.369YkYB)xaf?h,9~Rf4z@=1X$~*qa0{[?}oR2M@N'=9J-y2HR>,fGw/y7Xp3~tl)I5I,@'&r9G.9ULQ6 |f1`UMx>;v=87r=1h;D|/+.W1!63`<DYt$O|k#AxPO%e~ZA43x-BxObtEl=i#U2MF0s4u[Vg_$C98!n)Xvy9hs,@+=bo)Y}4b?Zk?AvY1<0Q5X?z?5U@q Y7Qz'L~F5U<QW3ns?0U;<EXEiugUFsp%MX=(j2Ga!I8j1a8Z1jEgV$ 6&/VNak}78#eb/;T!0@^oX)=ki);$?(u;3z7=VqoHI:z~7-)=N<o{40#:j,`:PT7F_k^c;Re8yJfn<Yzo<290VIef!;mcfG.5x.N| n(!>r^@Q4|Az!,S9C,ITX|ha6YG^ji*CSC9x!Al#RQ?BHk=[G5k6NfY}SeT1>+<7%/[M+F,r^6TZKLB6^xrTlyD=?UP8;7~[4,&,Op]*+6;?|R)}n*=`RfBhh)L;2oDib4g5=M1*zSPTc5rwT>pR__>d6RN8jQ(;ct'20] s=zXl0Fs%?-%arXqFq!BKilk^c,2BCJl~i?AP;aPr,!Fz>=[=8=cs#Y@4^rDTNf2C_3T`% `f0TWdP?rBFD%8pGYK!:8o5Gzu5Rb/yXE-3]~RBKC01*?Iy:Hhm2A%Bf8;7oaz({5<Rc|i})<yEp1S[gi@7:'t7po0$?8|t+FdXG@?54I?E}lU>d8 uoI@2UF(pj!RVA(fL$U}NPAf+gU8dHW@X`Z3=+TL;Je})>t[D?)L^3FEn85Z5B6I6C+?KFTg9$w5?0:Ri5[ZP8/v=/cU=:DU;sD'D(#Eefb<(9g36><6=nN}oD.#@+sbe1+4ax-K}0v;>XHg.IKA>duP;AP,9=OR.r_$A&1T]Q-BkIUF,.qyJ],BI?iqHnK4,A-2kPEU`'=L,6$P?qY=Ij^TpI4E3,#`pM`0FF<41X%pJ8>fjX8yo[(A.PfC>VYe:.fQ/{s2:FnRzy?{E^;TY[ v>f}0EJqVqC9EAN?dh0wqn:XD 5E'%e608KJxm0l;oCD^s_VfDlQPAtT9%=O-h,vS`9=2>MvD5dI4{6Dt*]!7A2jKyrbI!B2Y3RkSM7;#'|-u`m71mk*1ow4w@Pjs`9:H;>ikl-M3V095b :pjb~IEBn=r.Ox9q4h*DYw:@Arid=y@g@8rg-Ig%34Kqo1A%c(AX}4(P@G2=>9z:RvR;80@Zj]i]%;W}n2DwM=GZV?&L7ZhGJ}It)3Y*;QVz_$znaAf)ni(3|V?}&a&YZ7L>0O)#%%[c:ktMmco%D5B>(pMM_Q<GBy9swm6:GQ9zB!$c@+ta-<nPTCOKi/|ri:E:$(vL8oR+-^tugjI]8K4-i1c~II|=I.$5`q;hic3y%7M;;Wb,2duD46d%dc>Lv9Kb|ms@g%:DevIcHMK;&x+Bv})]Ebe}`eS&}A{'$urf,F<{/]A,Ky^8y%g|E?`#>V_/A[}iQF|X|vYk(HAgY]$/gpm7Lt38L0?u=8)RAkDIRA]-'r6x.iQP`^T(0a)(}ggvKHh3+MM;Xo/&@C;qtj8T)`9N:#Os-^zN1l`OWGwL?(o<x`XHQ8.16EJO2:*B>RrZLC@7*<:Um0}~>G;}a/yjP6@]&.xG%b?dy0@PRH,E*I{${;[email protected]_KSC)M!yxk#N6be~gLnL-9Z[:;_vl_EK>Ou<X0v8Pi]|'7rkFJh*`g{#67h+JoxJ.6;Y:Ph/[I|<xI/C =PL8[7>x*J>~BZ(m'#2iP@%'_gb!'(F>A|/=$`#?O8qCk&6]?I;E+z5>r<B{u:t)Y21m~&a%D2G>NQP$3y0/13V,k?CGhD%8qg-D??7~<4 u/vP8=jcQ9.AGFiG02yOJN=z3h$Uc({Ax8BOQdHE;WRbTF_9:Fazh9`sf#<v(xs{fo6<m&s+uJv>C1USj<|N%500Ayd)8R<O7`P8TxeG'WGK'n,l*.M.H&UgV4g{Q%k`aF?unO=QR7~Bw;~SmmG6%s:onCTgh4X8O?9sK}9+_nKH=t|1K&b&]8/^<2'0s`FcbEwZxdJt&M3zr}H+K{E7lH)h.(X&@F-a|4?K|9QLPUG$NZ/~'f_yS-67bkV`,<PcA,CG]hq>EBW:eqN)$1@&+,(Su3q?%3{>i^T=@9Q4(}~GV:DRb9*ARa;jq(5db()=-!]w<M2hCpb$*h~0f3Gwm|';Ub9-El&ksLF4'Ta{Vn]k:kv 0],N?=SF:/AYT8)28*e.:?i8[Ezx_t9K7}dp7YyW&;8G.T{6G!:LHBZXT%k5-^ _nMfQ1(IgmAMeIFb*]6thrO.35VE0h?B-Ci'84`_-G-i`3iV~f?54JBM.C%4Yz!kbguvAiD!4ThR8J6z8~{i8M<DX@ WTu<BH/%]q8wAC4R%A(3|ZC]:j#&*Wy<N]qA2*LQ-~p>-9p)f?O7$<_}zX?2GLrf_^~1aj-d=6y:7_l-?-}(N7FM:*t/d&IK'u9RTU*/4Sm%KbH/67&q`m!ZW885G@8_n3FP'z #$nd59z<[#-dn7dOU,GU9(>}J?K>dh69N$=wKt{w<oqyIq$L4176IXUAlK0~h(x,m#'8){W5OEm4AWd+?a.a[.For@>c<KR-xT`@+u37y$#js%$c?N2r$80KF:n>A4xjv>7/6d$KKVl70;'z17S|IN-jYj/OR.UVz:Ea$*0z*4-<?cN4qC-F+mnC7ZPtV-*3C:YGKFkXgJ>]Z5xrC$}7|D/F6!PBCxp+*S|a|@4p7rf5}!@z+*+9~F$<vzdA1 HY@RQKA}1fO15&4M5X>A?i[_s}##)8q/-]t0^W8[22/VOg;(eAU'-!,G9GI7iZ,zrFqz1%pw&k9HQD;Kf'-=7ty.tLLAG@y+L}T!dCWlO0ObBH>k{OyX$>x9l<b{9hln<m(n%?<(!6fkPI)53NAj2RcjM7`C1B3_SeyS/+do$T7~N=;;)9ReDQ88NJ~XUe~41l1pvmf^?O)Lk ;Qy;pvi/QWo^30eJq3^5>12e@_/Q`)FWgrgfTq,:D:Aby5.[*7 ]hJyCz9b8jLBA8I6g2DmdW;S,mch|{9t[5p?J{,q{6:~5nOVTU,3^;pOB}7CCIu*cpy'W0;E.A*^8p@OdF1F/Hz=Uj9 ^^rCdzNQ&vKEDRQnnVjO8<W2rWY15g?m$ii@2!GE^t~9W]o65z.Y/%wq2<+K%2Ab-/I0##*F@dk9jm5(ezlU5Fig5ec,):*v#X3V|xF~(2{{i==>uUf:qJlI7)bU51#S&4UvPd3(f88o&mfAbm)FNVDxmIa74M~6 q(Kv='!y1c@1,BO][/&wag=cjwxEoK%8r#Sn6>A^Dv:F^x&=p5zV7|W0(q<?OwjH5fr=OxoCsa?5AfQU_sf^d61$SFw-(T5xc>~q(Xi;?JdyKgP]8E_HJ;_^R7N1/9_&BMH7/sIiqgH7>-; T~Dc?}P2(*IA$G3<PRl#xP@`)>;U}sK:^;g}-k<+<'GoWmEgn6PrU:T^bV3`u*=b8sr;x02 '`nH7<F?W}b| 9?+@75+-WDIiEa//CsConOI6e#h?L&[|@f$QCnSr5`3P{<>2PHiZ/)3d+[+a&(_I5BOf<*q8<Y{-]Tj:R<$E3e8QIe?S?|WPD!&CxqJ>h}.&9{$i?!&O385q^lSKl849939zH)Q96.TAI}VhFVNWc0a!):0qr1/6{_?>YlU s5K8U_k,`EzVA&0fSeud_:;S+JJ0n_.L0TNR:]K+^g`J+n-}AF[kqhC4e8AW^LT.P2<~/df;EIR@I>Q0JIVn:3r!d4<%xLq84*b,Nr6ANH{n]GD:lOo'>WzP9F.Sm.SDQF4wy9G@Yv?rTuY4uKg3<lAdFn=tE-!@[XO]U@_<J$vnbyE]1`&M'H04<(b43l76:qu.[MV,s:dKik~$@{:x<dGqtq'>_WV(-lm-@ mc`w_dU:#a:V]h!X9C/dbF~-H0MVFI7#(3+IFMsB>'A4s:26IdJE==2?Xl5IB9~u$n(c<{=RTrNNhn&6*_643B5YARBNR(#'{1NHv{kzp)@6xy`l}rYA=33,qx>C?nzVYbc,AA)/MK0|XgC7D2<z| Y=@ck1Q(r)2,~77%=0b?V(@$B?Ii1jkY4?:dk0E7~?4G+!A$ ZQC8~;D6U6I/$ 89q]9=Udu :8@[5t/C39jC$GtJ|)7QU6,T*|^2ykB^di][DRe*b$N++Ci^NsrJQa<_q-6)mRU=CC:FR&/>:d`J![rb}=w6`/@thUDlw/wL|B/<X^r`A$5#DI+]/)Y|(6PIh>C87WBHkBEYhPrBnP)<s0g%Anb,n<p!&9J#!FWA7r,a}&9Uc=C8k1i6kJFo?(njhsTwn<jiP|.TY)>xl&du[y;3NmFNb**75GJRq|i[!E_)UOvo)]?|_J_Oq86D-/&M&O9140j&f5@(v8fMVP2nIUB?]{@T-%m@KaPcBsOu>Dc5.W(MF>2/X4$oKT4oKh*FG<HA7M;<Aei=2VH@r6u u9iyi4SB|x=DG(/2P<b9yQ#Nd^,*B.Svh+@pZDNKcd=9*^8]yoEd:~Y@vvH;{'p~?}O*EP!HO8JiI{t!o,@GX8X3UeuH|;IO'uz$7NDG{cTFo68zVq$sq`*1xz0<S8>5ZZ^q}#{R?yI`gUaG=CXJ:lX#c^64)Oe'^?u+heMyd ]K;1k)]xcP!?imjBE>GRGYOpb)!B$8unM7mY*+?3*W..QT;<f]$dW-J/?4xR,<R*U?m=m97^i=@PADGild/=[T^$eMv+A$LnVA?!92;*WcGj~jEK;s%j#A/2P4I7tRCN?P&,wdg6@8q/1|D:^'1'[^zF{q}KH5BU=`;>=ey'4}tl)3Kk%T,~i:DF)G}G#zq7]q=0;@oK@Hd+NcopEH> gc68A3@IhOL u2r11bPW'eap:yHI',58c6dYeYQO<IJk*Ow#N]N97b</lAj~9_rkBztWt47o%5?Bb;5,fOo0eL(K(FyeYJ^V6~$)l!f;2RZUGY6L!26yjy~lQzP:NyK76_'wAhz>OzNUb:+;M6D$|u?&>Gh,xHl@9UM-Sb`}GY:rotFbr5D7>~ACCZ@wAaIz#WW7qLhV18'2=8*'86rt&=Y4nz[65B7!]LT4iU&CeCc~vJ3@=G'6Fce6&E+=/3ZpdJ:7:4K}4j3CV?Z`!3t'BE-lH+?aaAbu;WfBCV2`GKN-44]=Z#U4|ize:Q;,]cn:a5aGskn{XwFA}&9_`/HAQe9hDC,M5oK~o<)s_>R[/m)o+7:L[*BfJNR>(.F!6@1>7dxv+ULx07`4ZSwKRZ>&51EnP>{A=tF(K~F|=.<E$Oh2LF9uyV_VbH856FQI@[x-Xd+Q*i?vC-dMuBS*oBxgAA]1?Z8nm;&G[RvAch:tZ:$Q5g0<eK8!`BQ-&UHDB87z$v rY1%<l&rZ|)ZP:z^x^%%Ki?JV gRsqA5D5sBDtOM3n;$Dz;1v?{,O}<J/LAt3wxYiGf;;1I8A}S*:.Oot*S.vAmAt`v;W]<7jm^K.a[=O}Hy%3{6A17~9=)[Y<L<no &k}CXIF0Zrtw7h-fJwXPZ@#hC|<Wc>:V6P0vh@X9}CoW~Ctq;A.PV=HG-9rPBG./me@xG1%,EzY?=T4wJW3==b;/K|3g;3_-Nk8I:1A4'RJm.m,9|M0T/9hfE}DnZmlHN;([7U0Pr4;Q|CaZYi7;EZom9QCUA1:y$_4MM=;8]J7&aE3_-~~B=k.<K7+Nn^G4G!mhk.OEL>'(.)~bLs5>5i1vagEDLPF6#K>06tvF}VsfU((n(Ya0Eb7$ed.Oi#3D~rDKy13M@kHLh2**_2>{^CJu,.8*@mA~r!4?yp8s:xmb9_&h4:%&s?p9OzFXY96~%MhckJ[B0KhCU76C7&c>kR)<N;GjGCe|sd@PTNZ:O*->04_! T5^=8<Q:Zk)>EfkBG}SQ);bU-NvH4yBgad)m1D79AKUGsf&B0!vU+g9;a9pWLgq7O,3X}oT?w$42Q'% Y:k[<=DK`@|.W8}fo2?^K:F}v8G`Y<?;V{'1q&a?E_S`[|t;^4SzH],.(Y/JPVJ |0h:!@jYlp}mB>T|Z5%=yCaf^G5T&y5Yg1whL'5;<!USAs,gA=t3sb] =@I+u;vlhP)]xjq:mG`6ri%~Vp&JA<0{BWbxR;q};<!H5i9H(aV/>-qINTe[^-Iq>vE6s/=xj7Yb]h1F'aI3ECM#&x4;V'0JcI7H-Pg;.*Q@D?<tED283^KwjG;17p4Eo=`!#iV*Hzm;I(ui+@rvIMbfA9> {C96EO/=Khm2dK^0L!w^&2= mBxe^&^Ge}=O>hBY-XT8Xn+'yCT{7m&bPR|DDBw8sxUX(!BHSkuA6GX4J]$0XC=#8o5].'{$L<vvd-7x;F3u{O?}#1^80,5 5$v/?n~nuIn9y1U'iboAtFEs}TT6L:a4/<.Ic$184Ia,+~V@8==Go8=h>.;}O`VaP}K/XDo|17+NJVPv['|Q_2GK}KA+X1<GD8Bnz,_9|j4P;neo/pFzS_%(H:|0,(s6e-N3y,~q=RZC0O13xWiJAch!%u691?H_hkF4;@;t(Xt~W][3>B^C{%KFMdxC955#t6}0KYG4ed8 Ad!y4[I:{dCp#SW<8(JUdMNEu@12=U,{5|>9n$w6<[,8kZp|u^{N7UoZ+D6,RJ5F%6 qci3'RN]uF&R?XpRa-_]O?@}ugir{4;N}uxjST$DLjVBIE0m5]|4.c#I(/ndpTAC(85F]O%s~v2:^cp{;#.e2@[~^_fym<,Qk-`q%uDI{hUB^m1.p4akF//INK{~$/:Q6LrLI&OArX<d.75u$2{[email protected]~LI~sr^8+ZIEQ?*<?lL-63,[n65B8y+yY:7X 9,dK^Q601o^esR'*2=9(77o(;&dyZnow=OpTblR)Of4wSlGt`GX>{SMK lVd7*;K0n4=?9_7cr*@vGA;<'v{L!nJ'- ]eKFY@uJ^GBSpjEs}o!j=CLCND(m3*+<BqS;_@9OW@s(Z]rMD3EDzW5)]|[F0K-T`I{~9+8.sI$mF4<Klc`Zgk;.QrpQ FK3!Abe7=y(C4lqX6FrDL=Zb4Z$2Q5aY!sq1}vANR.+he%oEKQBApgEvE3Eba}Wid=jnWvEG3-FQCFq+iq9=i{G9X2$e8i ] rWhT9kGU[)y5C;OIS +ICR1*[:&S24G9*6ktiO]d6rPX+u`J.30=ZLz|2{D$!9fDi8eG/<'t6[Z>AK>tcyYD.IiWaBrMWT:}o5OWF#s2CI9s>:x79vz*('(Y@1L~c-Uks5=Z`@&zC|w?+3;&L_Fe3(A^U]5`g3Mu)lQSB.<.]id}hCwBn;_Q-CyXJuR5X^/Gc9v?}#D5A*;K4;D2i~}B20!^G_]w8=V|0mxE+3tvbH KnF6.>I]p+Yy8m&[-p>]x4?zq*g/q,/?o9tk q5?^huoO[b_70w-}R<zo56UXZ%yf Ir}4szapt6Q{t)1uUS8%6p];!@{=.O?5~+x7<hIhL,cac8[Mi7p(fd8:XPW$z!r?n*{bIUJ=5%8M]|h42M0wc+Xvw`=yRr-;`4j7iH,6v0q-8}:w>>D.)FFd*CER^:D9y_YDpgU<$[&6XZ{?CmbDJg}{$@FV}{4_##G'0G0Ek.qC:~hl/`p94JES%W1T|=q^RxYiO<6,o)gYZ>Q21&f:P'Kc6N+qW`:2V=<}^a$C(BOi%/+t{C>F{R7Rp9H@HG]fyLyrb>b|l1cm{yGBI@U<}J]=n]p.jY,:5]ejW.*r @<dw+t2LF;*(Pd>`Jw3ZfMiRi]PA33E1Lv0h<&dH'UeG)2{JO-qB0@4zSgw6Y.]<)Pt%#,dE:4;`FCw%_/io!9>Q0_4$Bvq?7FA:Q{/#XENW7qfVA;Y|)?~TQKT1N369XB/;cu|F7|}l`^im@s<~Y[0sUCthv/cdIp0YskLd*p3N#;-Di?{Z7y!i_K?~2A6X,nBD&i9,R*e1,CbE2,TJZJo4={slebqF'C{[7e@a[yEaH0l0-W}F-`lQzkz?53kn,vUm67G<y*p1w<6P6HcHv<B3z^Y`}fF74O&*KLi(wC=BwwPw t@e5VM#'-.AJ3g2:$Z75PFXaVKz{?^iE{/+vf70d-z(?=D?4l}%-dDQ75~Vk2#Q?AOUqORTJ,0xZ3>sS^JAPLGmliAZ7}:NnrG<r5s?Mx9/Gz:Fps;kP^J?RIVr2H!B8=W&v[t$v3=zZUUXXe>h,(e>n>,C7}.0|{En5[NWXo;KU=r'._O%HYADs_SM.@6>,`O.c4?H5Gpo('*D/Ai)tW$HrqF!W%Xp_~kBG(]j>7<!4=hLv[}Q,?3x<ED;Z{@wT{jrTi)=o+8`wy.ZA.x#Di0rqH9R>}1sHm9*pYzZ:PFCINGf_S!h/soZ/?!to7&Fl _nl>>=dDFMFS)@LO`dK4}cB`bIa6L612EAN!RwHJC}%4P!j_+;0<o(U2-N7m]QM'zEbEM3sVh.@G9),W!AtzYC1m[@E`P7>C_^UG>ez55ww_ZWvz)vvJ<W#|z9A$UHUyA%FfnP_J@+l-+s+Z1;McCjz'+gu1D7 j+'[o<O8v8fDLR:f6)4_)'HZs=q37K.)}=4qlS (#Ch9%%Lt^M)vI/{ehD=>jD8!6N{rg1;iXXzOS`F<`%H+zNr^G40}8;|,C9!'NpE6StAEeA'<t,}Ahbud;sD^43?IR4._g8`cN;?-c*ME3j~#8PB;RIQ'YAMpA=JltgS%VIW=YTRl9O:^uh>eX1S;!H_'B_o6Awr`cZN4h9wr]J,7O!:H>,7$^5@5nEg=`EdN<HNpf=*q!8eErNRFj~6Eb|3R:xpOt.m=K.m|C*-rIj05x@CUxxk1][=Ky@o<|QR/Ae)*Z3[^A3[3Ws>?^Lb;d}W1759<kOoG|^D0BM4Q5*.NHcT N? 7MJ~}`(=uuf>xK.XfO?jMi[R<-*ST9BSzh+`)4/o)t2{O&-=_g9)>hC6-'grPnr:O8qCtoX$~I9]k,]v@<0#;}J97=`)Dr#!->LwiBHWQ_E;5U6r+N&}8If:1{tsGlS{A>g-v'lx7/& `A=c[^@zD4(?|d 3kAj@k3j>7Zem5?wH>DNwcS!C^v0x.&FpF2&?'QgE^6_]7g;_lH[5[18:Ivybkp1yxZ'~S118sx_edlg66JJI}@YS/:1gBE1>SYH0Dn!Hgd|H2'CbuzaMFQQH3e{@J2 %iM-JVo5xb%hYG=s1vBYc.m]eB$S^=G@&y.H|DHN:~k<]=[Nv~0)0([yL;Mi-J&`Z8D9'V>HS-,&ak>5Wt2@d(LN@4o&{Ncot1P.) Px4'6o|1}eg't<m@Y:Jcxx52S%mkk_T.mB469y.=<V=ggaAEGH297ft09,C#xQLhy_R?XliyMK(/A02P&~ak<Ci Pzj-jJ9q3Myyf7$Ec-2jgZ/4?P)UriMO1?Cv@IMmKr:r/4jv]0?ARXi&gL!RB|uT6^_?.;Ej_c()&w7PwI[16^oD0?4ZU_4X6cBDN<WGt7R.s'A8[I9;b@h#cQ{2[/KROLPh;G,P=UBj??O`ri<@ZhHu9RT_h]B07@x`'kR87-uL1jp;K9wYfI0+7^6HQjR4t@W:-v:mNeH<B~;}eK%V|7swP~@!C<G=RClw.aM:Hm69?f_.C>pAAh!P^6=En0iw$R?&x2*!9>W8:k7R@ c!8]O'oOQ4RAsC_*N;}n2V2m.KwQUF7=.-XyY>EOl2GWTiy67!ji{5;O?>oxJhCtv/pqw-)^`CBh>8)pn2]5^s1>-Qd;=+_E[l|[email protected]&HzM-d1lGxt)m8+ ~dfkL+;j9U^-x6,'}5'JHNRs:TQH!Vu!4?>/H<pBL`E/?7Bv[*#4,w226)8;9WKrKK]PzA(8:x6M4s86M^miipX8dC-/Sn6c6MvFsp)<=B6$e.AmvxF*er%1`R,DfOIQx3'/6YH&zw#iN@wY!$#l7b8$1-kEMjTAI?gS@$Mu<9ept=t}/AQ:d}W9;D39KSJ}j,C6{b{D`h(%B#9C%&5@z<yMtt%S7K>bfCpP,@cK*{}jv[[bB]]}z^InH/4<Y3tuW^7P(= / R0<~oVh-`.F<h!:qNip$ES B!vK'{G5%++CD1<;m:Tw5)IHDeJp)_=Hb:T%*{#V0JH@2W`KLTe=e$4LYxLY-#BZD{c>&?UqK?,M<l@ium886?MBfrG.`:kX?'+1L(N}N7}&b67SQp-:F6tp!2.87kb8pj>v5>84OgssP<3}2|`ea=>tqe*Pn`ECbD8!@uoD;h~3,sB`)<Uwm73J]59ow933,=`D 5<hUB[XBps;+$orr;) +~X?~p;:+OB0rc(DdmNny{9s9[P/ij}]|@Pl+xB)q<C~~=2v<x>F1*xL` O9<<}/!+Kh=BXET1YTm@-IS3O E$O1sf(]-|lM=B.O3QZ7i:(<sDrm6oG}e)DOzj`:teZ;(#?s@,?#RjT|,:%B*S?zJr0#xuyA_k>>U,bR)6i=BRC`2VfHo?M@/i)Zz_C589QJ0x:=ka0HZeWgF8WyDAr4x:#H2+jq| 7Jyjbl):M=+uUSXPUBG&Nv7NH55COo9JQ0XdAaYRT-qA*68/W/;g]=A#n8kGhx72;*xrfH{7ECJ!UFs26>>h@yo+J/<%_ +o!M^5@0O<LgkB7SwI[v!wo-LvL(H# H=Z!Zm2~g3<_u,#kB~6>|ke0^MMf=2*%!-iu'>=(]e-vy_C9:&MZ&[e;Pc7d.b!l@fOKRmd*8>c/hEFk{`=!hW-e4S]9K<;Ydk0TF4@^fXW=6@<hzdyYsT=mU]@ggh]B/GA+tws!A34MbQI^W8(;x2mMXK:$u+,B6052>coQ(~3]:B/,@-}y'?3<N!4q6H?$k/lf/D#0i6JLuD2`@K4ii ==t?xhisM'cG6L~iXAtSU5iy^$%D#2PZsCH93Z}0!`?,XLc!0(]|(7WXj=>y=jB:tz1p+&-zjF~5U=2-7'<+8S-&~%VDxA<XwJeF1pMJ'CA>l*y@$5a(zYl#:uc}m4/2@;/#Lvg^wJ74}eQg<d%DI|J?fs3o?@(J/]Y>JM`lm 3k|&?nRGcylv?7c[7`9=%x:O-VBn*>01wUW6y$I|85!l}yG$C:naCPDz033*SjFefej;E5XS86Yz8j}-m_t*R-B<i$+E#m7AVKF*f%K='HL^<kfN9JE^mCAIsBw V>Cz9fFf!FUfQRqCB8!lU;8f8(GBCJ/go5odb^79)/>%U`aT0r!<_6ki5Ku%/ xr.M254F.m2%@2uOD:0DHY6IS=Au`n[IT`1_5<JJ]3c;pa4jF#&69($?Y-Wr'<8b 'EDE)<H8}*?;Wz33t#YOV*ZJ5Bx=a#G?@r^Y?'K2E9!*tSpHgu>Ps0fN5qyDSWQupB0><D4^5fpz<=lgMm7;_)9Ilf*5rbS<D5E,KJG342:A~.p(G=iTF{RG|&Ea&{4]?Jq3l/z2u7#-;6_)2Uiz!FXj%v~+d<=h_id'>OJ?bV8b~{|-:vYdV`AAd6 dIKzeyX<ibI8dDE+0F)B<?N1P+<4s%U6 68N !B9R$f2C0x7Q^]j7DW/=]32+5U+1Tp;}X<2)6#Bg!A6ed'Z2M__E,nIa,,tR=A='*,o[>GFR4M`WD/;?qI_1;6%6^sltywv?<J.pXtN)u04-MHR+mfB0!&'$UlY49$B+f?v_<4Sl@y91#7n>pIjv$O7*zG[nr$w9ofW(?<oB7trvp))!LGPTO@^FwM2o+r4f(-.9|zMMD$n.I} uwsk<e7KA-7tfjh3N}+C'1Hc9Nt+ z.7{H qE;LCPz8(I.R8#9b@sM[TN'~$?vr@v/V?K4-~*AI<PU9E@<c!pGp;6awMiR(q8djnvQHK,6-[z<,@TkCQG+P*(Fa=64B}G[A{Lta,G;Hj377g=*'y..>YJe?V:d,;*>BQ!Z'/8Xu*.=#.6J7P`cqLK6,xE+8`;fJ?'@C?n8pE7[X*2O$*jBRBh,0<.N>mFtdPl;j8No@fx*-E@l(MIJn.>3s^'PY2T(8=Q8(O&Ba/#!P|}apX=cULe$0>m0Nn#DGbA%6,DN:j/MA<K56WyL>K@aThK~tYc413:bR]w57z%j.1([h<7BRO%mVp3YHdws!z2G+GJ{Q`j<@_`TpP56W;1}!z7$|(9i>rmAWj1@a}xYdqM;A5ySZ1h$,:.jTwfmEF3A|f)IUeL1*UAh*BMB;p84%UM8&?:hW9+O/'6}[m2~r!V5NIxQE#68<EcM3WeL-4M{peO|%OA!,5kcbM#:9H0)pT&aC[5Xg5[Wp=5OZTMC@sIMt-Qtb5O;';D nsS]>tq@F77r1D)VMm_}o{=n_=4G-n2/XY-gT5@,>B]&]/ODRB*;ceW+,|@%aYyi]IlJk>C!^`dKFa;Bp~SrA9[<?FgtcjH/*x{cWgl57H9?pV}F=5*vM>d9#/ynB#APQTF=LpR2NNfClD|9X&j6@SjEs{z{O49TI|nVOO3a:ovF5-))=Xej8zee8{3CLm'~n;|9kelG`7:/0h)ZE@WA[}@G3 tHC3f6&j uwIg[m!>MxkNS#Z;:-Ii)!cJu2IUFAYY}K=gZx9be*k(dCt:r*&grji}9XPyO IHZ5+t{SopE{2oPi^i(Vi.@X?3bjum;10YM$LB0;hlX1$,~yG0RpeEMmeIk;,APiZ!/:e7k]eTdBh?~/QXFmB4h.z*Q93B_ETgYIWFDK<CF.MB:BI]$+*<?I:=8MPxPdY;(^peJ<bS8p7=>:+`09?xq`K_=@A$t!gX*)6Bpr>1SflmR'BK>LSwT:?R$2-;(@IGu$Er!fRDtBvO=DVI=+u%ZHkaQEE|2[oAyYL_dmkgCcp>fW@[email protected] /#F1`)RE78} ,N>;8L|Ke|N|.>h+]$t4=;7u~0Dml.@/~+A Ot4$D>_{AwkA,<zfx)]{CcB h3;XI=15PVE_NCRIB&#nA1APdH L0=`i993lTHnQH998<e[xF16W2BP~?]lwf7GF_ek}mRBSN(D)7qq>9_dSLRcsOMYPe5fe8:]qZ3d2Pk6!?a#8&@k=ug+0;QR&2#oHb,X#pCU#?mgW_JBm$8(N_,,9j^9hnol^>.;8fwGZ<@/(`),1I!:{&KO(r<==o&W@Qs(sQ7eX:6p8y1/@T4Dhsi<%5,p(DNC>2m3Z(c]G<3fUmBQJwB+gJ&fDL}3yBw3csOIL[OdTht4!8C@ ld~~n;2E{+QAQ5Drp.?qy7$)!$G;qz>)>mJAlb,&q4H#1z]b'73A2+])}OM5mD/ET NUK`dIO1Ri0:Ca)-.rKS:ucjO}P8>2qEO_2Ecz3=7}?<uL3:sn$}/,lX@PjC[#jGHD+uD%Z#.aAy?-:Dx2sA$;.<j]xq== jh^ y*7[ECjj&W0Emmx6P[.D=^]J)`4@7GkZ1s]u8yIR,Om)Sgk9[,Bf-u3s5n_=2QpdF;p<$Ii}6lD43m^r`CN2u&;buG%-<{5CR)/}]?xYT@J+#H<epIYbILt>D*g$'9,D9jD[p<@r'Am.DAAYU*Czy>K8Y?k=/Q[p6HYv@Tn9}[>BW4Yyafz5NLA2,'c4:E'2}1QJe+o!8ovwIO1mQ9xL,bZjfX01opNvuhq=et15e3ifC|H-6MYy78bbX'SY6P3B#Vtu$4*=fij#6X3Y1GpAu]o-49<jVPqLT/6bdy]+j@D7z) 34XW-;}``0:g3m=*F/T^(+;=:BdMG1l ?D~=|_80?Q$)q2Ng4)3##{:P:9#3_@Qufrnb: yNDcrUT3-xG$oI'c7zct~&&4*@o9O~g?~i7BlpgR*V[=`TE]2`+y1T!~UbOP`>s^yhvpc_<KGedLU]`?d<U?j`^q.!Qwj{_*(@y`fPq5,t@2v&HG:ul8xnpmTfx[AB0R~w*#$@y6uKU[r(B2t`9?Vb5Bj^ g5L0w<)=hY',EHMS8LiRfsS:)o|l6i|184Vyfzk50=c?xah(6+9S22Psg(@=OBT}Xp?wC*z^b&8mS30fR2HIjx7z'{G4LB;:1P{q:=CS>sFP]7E16>Rm_4<2af61PPSn$(T6CHaj]cOPD5fBY44kE3>>|9XK@<C lO@Hf|j2Qd8qM{?2:j7$^sn[^<X_m|f#c|8!JW3ouL*7p6<||.YYCKCdsZ`#.6@4gR-g4N=yD>yZQ%/;%nB$&ig(8W/V>: qs2:_=a>/#Q=y*OIfZJUE4';.pgEu?(6=@JamZ+dL%qh4G:LA:Mq%pg]Mm5#zfo4?0gSqV8cUR6>=*|E~HI6rh;;;0!q1jU(WTYe2:4=VKI~KKKm,+6cL5w>k=!coUg*Dea'%G[8s=%T'-tTN|6w2aVa}sp;L_[oB6(}>Jc;Z1cND=D9Vqo`u&N~@c7cj/JGAp74%OM02Mu49cCfu4<w;BagZ0I!V<i~nnC9<Q/L3:zS2%{31Nb5^<1r^l/{PN<C@)0;V+11zU JKPc~>VNIkR{4E?{-_$HUX)AuPKrbj/$;padwEQ<u?br9k:(d047/!G]$Bp1Cgi'2Hnp7IN5~8$Ff8q/]wvC513DU%~m@)tA{qfX{OpI3)!n*eWA<4Fyo0d#MA2OZ{x8rPx7dbx0~O$(Bqt*Kge22?qQiPaZW}>M::Tq}6l:oXYVa uUE#V.XfT>D@[=/&;XRe-sf[g|[email protected]<7>]uuBkC2t9-([V>8TF!tJyJy9Oygz2J-W:Q@3e`:jS7/or'$MNI?Fv5uVTX{D8v[%u$e=1CT5&N`:G:1br//f)v<9|2H-=W}8jh?c;S$9<PCG[B|D0<W-Zue4VjAZ]4m0MT 8suD&=(y_C|[?0);E/?,sym:.1f:I3vfWRM8=PJ 2C=DzFOG.aprNFDGsg25^k,6)igYo-Du;dS1o7Am6C:*bN/;{S<Ykd!#OgJN;X]>ri0n6l,p:QW~Q<V)Z8y]HI@%xKRWOH%FL[.CiINaAlwp*+-h AT*Sm%5/hJq<<K'%bW:d_>|Lolg32Fl,v({6: MJKME+{?+VxC(U-N7d::zO2bQF?6']bk! AODCFYBJ 61N%=a]C/9%QWBWe{I?E]22vuM=> S/#&n%B9['E9#7k'5kZ~FqyCw71?[w1W$9KSN3IEPY|9Da:{BOt38tDxJElnW<,%-CMB2zJC`gprg3!FC#l@h2',B9DQT~x8.6IW_T!/Y07Yq{wKY`:5T rj;'3&<[Z.%f}SH<b5Vya&C]3QS]Ad(WOHbM1I:(gVL+bnw%@QmC8oit??daD8$HOax2}<N8F362X{Aq!roTCW*C,&>u5+*c@;qOe85+4QW:^8o_,I<^n_?KZc`:-#ZR+AE[>[.Nuo+1l@m/{u(k6fClHGSz*^>.(?Xh*VmdD/)(}[CA2NdN._b#.x<{qL 'Ylh<lr!_.%4l8N(f.pRQ$5B;IW1lls9|O+L7=NV8'f?`EG0U9dm4$N|)g9_=zf#))FO8wxbX,CT?rHMG-5%Z54HB+28*c6xQEj~JN#-_$0qC#K}EV]+N91_hCLMu65?m2>F tjzDha6JL6(C#Zh/&5a_MDn>NKk;1cWZ%644ld8%:R8m|OP9lT)4g@|-tf-+A?.Nnbm'YCls<q-nU|=F-9n:V+5:Fq_I>7F}5)jbQ%#*L1ccEm4Y>x7The%V2T!?^U'{=V4JD*E``@JnN%c$s_T#&M3ui#^=(N%:j1z[%@:xDi<x`DB7S-RyoV1(j3@v;/-FR0q8J}r::f'W<8!2EFOS]6<YaNW;Wq8=y?0jU?w>6^2oX1ho8uJ(GI-Nj?=?/f32$W6@Gi,zVOt>F`6B}T8`<.[iZ}c--C2_OH{0;3@,=}$+:G-3`I7lWmgL573,9KZ@D?O!?_BET?Dzkn0{yJkBOFEcj?B,5E)UcP'7[FcG!cV0*TBY M^%2U@:2|.sPO<g>Q~JqSCG<H~Gw80H 99fi0;OwVF@urO=^|8v3;TK'6r#&LFC?,cUN-2Y3@SM#Q^:4<}$Qg)j5|wP<q}OH>j5^,Rp-#/67:7`?zy5aoQKnAGm<f(a&~|}68}tt0]XY?@szuBksq/ASHO%.ASd6m$,WBJ=g:}0|O<.lv74Q;F,PAp>Y5&T'DXMD(rs?D&N_;C6zs83,^8Wn9J}@{fDxJn,Y3`?<_wwFW>Jj:8Ut^H7PJ2r~3*b_>a>mZNRV3N;8^|-X Fn@LClDSV_d 34P ]~gGBB~brfnX'v:TfCIMe08C)Lpj;l1u6{dHB5~znT,l;#tzb`4Vi$tukT9H]?ZLm ff3Nk.XKN{d1* l~K]#;=(PZX} B<9~[xZ~WCAEZ66a+jKC<y&7P&<#[A2zR0<)]/13E$~lCT+56kHCU%P~Ir@083K%S7^f~ZJ!WV=5dB/v2P0Cw=oY{YQ,;Itn`)DFD:{bwO+fqb?}9<JDLjbFKiG|LpU 4s)0_##)P,0upkRv0X9JIDH~g028e4[m--(!;w${$~YK&EJ${%FBx#>[}jYWeP9=OWBvF7e:3j7bn.H(,24q;&`iY&3|4X2blF;68i>m`:E9A:6q63|Ws<2y};j$c0@5tIv~2yFH/f'BA[~N>'v<8A3SrB,nr~,.SZ>%X1R>]YI@R@5^h*|=CLw-.3n[U7<'Lm94{nCGhD,mv5P=?k;Gw6=!@*W(_Tq<@>7yMB<=-GE'dM9/A`*Wx<Y*BL;N:u+jv20kjLi|f_R@tj'V(~ (:P6jj.UIB:jF>6{Z;`2U,]IA-c<8_^di}ox+6i~$3xHRv@nCIKnh$88i80X`Aqx?ivx;wxzfOlrd=%a!k5Q&;I!(B]80Q1{8]>`6ANlB#-rX0u0:7itcGGE_Ga)1D}4287l&b&7=0pY((+D5A3D3%4(>R7t*oLV,cv?):(5~j&VF97qn*3#i8-T#Ry>-aE*2a+[NpX:/CIsXQ>K9XNsz*ZH`=#Fm5^$M)@Fy%)bt_lN4UF*i<0098eUEzq@q(&;%?5 5SCCzY|pXxbAAv(6Yay1.Rc,:m(^&44/bIcJl[?v7,!GH-g9L}J^avTf=i)xDS`iz2Nf=F0WTC5<+%f[hVB:t#BgmJ#oO&;]>axBK6LINrx2H+@Z4K92T:1;M<a4s:IAGk2%H9l$W;EZ1T(CG^;3OYmX5?,@[`RA}H]*;xWt(}j]u:]@q)K`G65qsTp`DEj=.'tO)DIS.'_Z/3a&j8Rz(@<3KnIF2C#S&Zs21M%@w@Gi=1#8JgdunA;eR(Q7:J;XnVk2fTo3/JzORyt09lOAh`Hd93tw=IPJEU1q^R<nGtP-b]+iM7L)AK)6]BUQ,9e`$-@X_+C1XUG|eNG/ee($,zN;5fR2oT_:w:?~eeM&g<Ad56wM%*i9yP-!C[,d=v|w'Vo^;81^6;[ZJ{:XhS<F$d^9)/=_@'Zc.[8~?GZ##7%VUakb(qDov~tucw,D/cED]9;4:*&/t- %D:0IKN=+=p0T-FxTD(<>$PAD#m*g9?@YJU~?:<WW2uR|5rE-6q50H0B<F?8#Q~9;6<CkghP}rG~~dc~v{dGA]T)po6$7|o*Z*mzR>^9O~Q}'kMAf4rx*7R7m(,P JAY3&rUFOnoT4)$(TSe:h43=<=7;hgA61Bu8Fn/BK}cR?0jR:dLNEzQbi2YHfVV6L$CK_0 &>nW5p<o;y'j]>rxRDE7E>95+Mzw%[W9GsN8I?IV6`C2Lj)SO9NMzRP])-8o7aJ:.<K;l1@(w22`<k2OS$Wk3<%Kjop@FV6WsgYHSj}E5+oejt]d@L<W z|>1A|'F}]fXi8q-f90j&+8W0 aNn_H==[<&_pGY8;IZ*i8nG52QHc7AGa5/*)p:ngg5g>Ri>w&{;B#d3YcI_-.]5ma~*oE*8zH0ML<6HC7i}|YYB#M~f&qMfBU@yzhtdn58]Q6!T{A<5=nwJaVM<ji36Kt)@%_EoyqqO^?|[pO#,)v8j?4o'HgS6-7]@a&!f@JF+Tt*41/}6}<^#Kl9C-$K>$>f0Ho1PXxfoHD2p[Ou,kCkTq2&xAC=jo^H}F$gFk?95V;O /y_~F2[32?YL#M])p^<qUACp|J!CXIGk;-@sFMzeh>zMs0]=SrQzsW>4)p;#=n+Ce3o%fl?P4Zh[4'(Xp>8U5H8T[v@&S3tS$JP=(;dp<oES.KQnPg9p 8#yV..T/x;xAcMG%M%9#~pLVW)}5l&`tn w<>d]BZRvy?9JE`t.U,xCZcmst%Gh/,[-FjE6!Clpr L kx>qdxi(Q2r<uqXDN}gd9+(9em(d4>M_Eb7RHjDfO5I4tv<Ex$D=~8K08_M9c5crRA.yCltv9U<PjKR@FZ11h&DT`mOy=K'bv#U|H+Bi}sAy]>Fc]2~mGK_=sVdJxmro6exevVO4WB=8#%0=2O@x5`'!*k>:BV+qZ!-h=Dosj^m@M>{>8OK1^]2?=y5aptuE0]8$kxG*:BC+@KbhS5/&_3;^fu<X;s{vc+h9]/jc?' D9b)0twg10?>ByFkV)bGC-jIxkxg<v;pEE#%KFGyQn>ERf@296ZX t<Cz{6;uT~'L721~:kEC.aM(LhURkHLWL>9HmFBc4-@MGd:7~h7wB%^PO 5,m{DKH;9OX3+2a_1> ^,< fv<Ij%*Q<*hO&QR63sl#ATO0j_pw[B{f>vJk6s?t+*(S@*t::ukXo>PoD2xH@gx@'9FW>[rDuQ9Y*K-I~+4A%WML<^Pi8a-/dRD}r5(eDDy7;/8)vu.g6.+;',Szur2(<.IE=XW7??Pyn%]q@ @uaW#=GzX8y)zS-4K|:@Lh=&&>JAgY3hu9 t-I(VpGb7y8H:&tY>& ,$Bx*L>PL:01d;^:xeDmT5[Vav#<&4>o?vsZBoB(153GA8,c}C/e__A7ruRDev}?_G_WaFTS5rLd{/~N!4J-Rl[nWD<h`C:t|Pp33_9CImwp?D?e}wvu8@X;pqP~zrDzlB/3va2DGrgswdRh;'e`io=R*5B?hS`]$UHcdb]%[MR=[{tHX/!z<~n}!&=yb6@Z8L-{*835VaP`5`'9{rr+-g%KH0?K%xSTn>I_>p'}zP4E%vr;e#E6Tgk8nG}0H@/`HikQb97G~mBq)7-|x'r~*v/?p^%17:L#;>+y}<z5Z<G^ Z^4;~7v2U_c`aA2AQgY4`0GF#tRl]+m@<TFtA(<aa95`Eo=5q2G$kq93#NQ4nAaE^,l'Awr3ObzD9B/Ff<?Bc;;yYV&qJQlBNR7_<|>2<Ifks&ex|6-[3B|Xx64/8>K<A /9/hV#T'#zDW9`n^sYFuPbcT/GU`ScPE!=04D6O4g[fD:YWXx.CE7 xWYsKeuG}<*Lj9>v9C2Yg3)aaEHU_I?Z}lC7k}}rS=c<mer^VUuK<jzv'#WLl2q%b-vZMsE$&AIr,=eF,E|,pWOPIKeL;Zf3-:%wZ9#,]S8tRNz3*[k1 /($V<`K>76v0pNT-:ED18R0!BA+&fBc3H6?>ljb@(Sv=h)>Wy(9jC6dwqOSFK<nWj&bj~CA$2Ax~]lxJ?4`KW,2[:}7V.?&;R7Jc7g*x:I7W*Fd!X+mB;2880IQk?Am Jw@bf>N|}%vSF)B0$LHc%Sc>v.]8vW|.=!)3Uc0:@F6< qy6lX;3>&4T-k>JH4=!%KhIG?cU-rij0;ejYB*J>y@{32p_ac0;F9D.h%#e@cRW#a.5]=6idrQ<T`IT+vzY;W~E}pyWBcwzEr8tNhY*1CcwdVRO9q:D&B,?'ys8BaQk^F#:<=k0hi(iB4gwie+v^s:Qv~&pn< 6=tBFK8YPBZzrC.dtBApn7FK;qeBeC,R3.x<0$B|!+V*0@[L&_u8B<3@IPSMaUT>}[iIh%4!-sz/Uf@U$>_BhmNtf+661`~)-O`,[[^)-f;=>iEbTAZJ{(s^l_F9e<._h2-cB>q6)kG'(^S;4:U)NCpSgBFp^]c4&G5v|a,7QGq3RISzQSbs1W^dmQvX60ApSYNd+'C| AH10qm>-^g TDa <b[)VgBy!0i7LZQ>~$8uGx:OV`JB_gtrf{7EBv15e?ZT'I%Sd08n];4`$`3VARs>o+k@3<ZEB;SUz}THGB36qtX=WS;JQ&aRJ3[C-Q3k@E>$;2FD~6 ]Z<*.[w1r5~=5|Btspm`7@*:Hj^h5>)kL1:0e&2n ^!+2PI8w.Ql[f/Z:-&P 6EqO5m+-<gvS/FljcJhSfj>HUVKoE8*>eg<Up@dZ;dRc5,/goCUxt$V{dAAWGROnyN:73ejIlOvc=}kNi^CB1:dd~ CCoJ12wi0>$LI<k@z?xMb2*zk1>?PGV69Ba:k&{+AwGs*YI%Z8%K.&)Rc1:0`}X*;hA:hPZhcco:7+nve<i3fNbpF=ab0'6PFNg#m/rA<oUH%LL|G$2~LKz]k5@ALCry|ZJ!p/}QXf:9S2.!kr|=E>)53gL.`3Op:RG#jC>%~N!..Ch1x!.3d8`zF$jW`-Div@_8p}1o!*=tu-s@q+796AP@[5nbDxthE6|b3?m'zQpoYK@symG+T;q8'}:cA:ezJ|#3gPX)Q3_i@cR<TM?JB:L)|)TIvn`68%1B6@ 9NR3/082<)]BSM A77|K9a9i=8fd:-<)i6i-ku<3UA?4W</.Ew3<tlx!!8e[;AS-%0C?$@8L9m'`vG3Vw;R^:>v<]+cdKvWi?RIkGJV2%<`7QAFAkm>!+-6b^$j@Oizl?6.P:_1_.L_TH57o7|ejGs=<VIR$eqj>SKHujM>kFBtD&}}^,DGYTOyBPP6,BA[{($9.E|~ZqmWQ=KRoN#vQ{JZRA(L5!_08r=J E(W?7eqU,CL%7AThfojhTGjJy)vuDvDlJunD6Gz@FVbKZ~g-@xIY}41'u3]!_d%j6*;YLhimJ8L:Eh4(I.AeGeWqI-J{*4[^TR[3#aGsw@dr|%o4{XDyO-6RCK 8-A#^)?n@&A5Oka>5.PHJmt^3UCitJD[@5C,Dxz^lG9>O%uB_:S:gJgEJ]!k4EpQZhGrg=m^/;9To|@%M[fUVkcJV:,z(@#}<M~FHx]_!;xZ2_y_yp7dPO-i;D!Kj?}S:/HWG)z-YfR#/BQBt[29aY2ga<s1LzO%l9DQ{mn}.^^=4GqxKFZawu5|>b=SUY^'vDv1C@jW2kz(9x(r6ai>YB3abFBQ-61LAYfk[d{Kr2@ZGXI,<5uw^v<X_Eg$`4'H~P7|6nE^=iCB*<>(=T`/@m<Iv+$vfHJrx[w`%MBGxb,nYw*GFO@1uHvt4g*V9>rnsId3'(9@[XB]!?Xt8zd";
int ls[20010],ttop;
ll table[20010];
void decode()
{
_decode(password,ls,strlen(password));
ttop = 0;
int p = 0;
for(int i = 0;i < pass_len;i++)
{
while(ttop == special[p])
{
table[++ttop] = special[p + 1];
p += 2;
}
table[++ttop] = ls[i] + dli;
}
assert(ttop == table_len);
for(int i = 1;i <= ttop;i++) table[i] += table[i - 1];
// ofstream fout("log.txt");
// for(int i = 1;i <= ttop;i++) fout << table[i] << " ";
for(int i = 1;i <= ttop;i++) table[i] += table[i - 1];
table[ttop]++;
}
constexpr int P = 600000,W = 64,B = 25,Y = 10;
#define max(a,b) ((a) < (b) ? (b) : (a))
struct node
{
ull data[1 << max(B - 6,16)];
void clear() {memset(data,0x55,sizeof data);}
bool get(int pos) {return data[pos >> 6] & (1ull << (pos & 63));}
void set(int pos) {data[pos >> 6] |= 1ull << (pos & 63);}
void solve(ll l);
void fliter(int p,ll l);
}tool;
int pl[P],ptop,rtop,pans;
constexpr ll N = 1e13,S = 1 << 22;
ll x;
long long fliter_time;
void node::fliter(int p,ll l)
{
static ull fl[64];
memset(fl,0,sizeof fl);
for(int i = 0;i < p;i++)
for(int j = i;j < 64;j += p)
fl[i] |= 1ull << j;
int start = (p - l % p) % p;
const int x = 64 % p;
for(int i = 0,j = start;i < 1 << B - 6;i++)
{
data[i] |= fl[j];
if((j -= x) < 0) j += p;
}
}
inline void node::solve(ll l)
{
ll e = l + (1 << B);
clear();
// time_clock.start();
for(int i = 2;i <= Y;i++)
fliter(pl[i],l);
// fliter_time += time_clock.get();
for(int i = Y + 1;(ll)pl[i] * pl[i] < e;i++)
{
ll start = max((ll)pl[i],(l - 1) / pl[i] + 1) * pl[i];
if(!(start & 1)) start += pl[i];
for(ll j = start;j < e;j += pl[i] * 2)
set(j - l);
}
int i;
for(i = 0;i < 1 << B - 6 && l + ((i + 1) << 6) <= x;i++)
{
data[i] = ~data[i];
pans += __builtin_popcountll(data[i]);
}
if(i < 1 << B - 6)
{
data[i] = ~data[i];
while(data[i])
{
int b = __builtin_ctzll(data[i]);
if(l + (i << 6) + b <= x) pans++;
else return;
data[i] ^= 1ull << b;
}
}
}
inline void premake()
{
decode();
time_t bgt = clock();
for(int i = 2;i < 1 << 11;i++)
if(!tool.get(i))
for(int j = i * i;j < 1 << 22;j += i)
tool.set(j);
int last = 0;
for(int i = 2;i < 1 << 22;i++)
if(!tool.get(i))
pl[++ptop] = i;
// printf("time: %lf\n",(clock() - bgt) / 1000.0);
// printf("fliter time: %.9lf\n",fliter_time / 1e9);
// printf("ptop %d\n",ptop);
}
signed main()
{
premake();
scanf("%lld",&x);
int block = (x + 1) >> 29;
ll tans = table[block];
for(ll i = (ll)block << 29ll;i < x;i += 1 << B)
{
// printf("i %lld\n",i);
tool.solve(i);
}
if(block == 0)
{
for(int i = 1;i <= Y;i++)
if(x >= pl[i])
pans++;
pans--;
}
printf("%lld\n",tans + pans);
return 0;
}
:::
AC 记录。
好的,经过极限的压缩数据与代码卡常,最后的代码在最大点只消耗了不到一秒的时间,这已经超越了大部分的正解我就不信出题人敢把时限开到一秒以下。
如有助,勿忘赞。