From 9a64b57f211bc50ed102baca7f61b8b2f66bd2da Mon Sep 17 00:00:00 2001 From: djm34 Date: Sun, 27 Jan 2019 17:56:17 +0200 Subject: [PATCH] update correct problem when non solution are still submitted --- algorithm.c | 23 +++++------- driver-opencl.c | 2 +- kernel/mtp.cl | 43 ++++++++++------------ winbuild/jansson/Debug/x86/jansson.lib | Bin 0 -> 291858 bytes winbuild/jansson/Release/x64/jansson.lib | Bin 1237314 -> 1237314 bytes winbuild/output/x64/Release/kernel/mtp.cl | 43 ++++++++++------------ winbuild/output/x64/Release/sgminer.exp | Bin 3480 -> 3480 bytes winbuild/output/x64/Release/sgminer.lib | Bin 6258 -> 6258 bytes winbuild/output/x64/Release/test.bat | 8 ++-- 9 files changed, 55 insertions(+), 64 deletions(-) create mode 100644 winbuild/jansson/Debug/x86/jansson.lib diff --git a/algorithm.c b/algorithm.c index ec866b7..46b0c2d 100644 --- a/algorithm.c +++ b/algorithm.c @@ -1246,6 +1246,7 @@ static cl_int queue_mtp_kernel(_clState *clState, dev_blk_ctx *blk, __maybe_unus else buffer->StartNonce = 0; + //////////////////////////////////////////////// if (buffer->prev_job_id!=NULL) { @@ -1423,24 +1424,17 @@ static cl_int queue_mtp_kernel(_clState *clState, dev_blk_ctx *blk, __maybe_unus if (status != CL_SUCCESS) { applog(LOG_ERR, "Error %d while creating mtp_fc kernel", status); } - -// printf("Step 1 : Compute F(I) and store its T blocks X[1], X[2], ..., X[T] in the memory \n"); size_t mtp_tree_size = 2 * 1048576 * 4 * sizeof(uint64_t); clEnqueueReadBuffer(clState->commandQueue, buffer->tree, CL_TRUE, 0, mtp_tree_size, mtp->dx, 0, NULL, NULL); -// printf("Step 2 : Compute the root Φ of the Merkle hash tree \n"); + mtp->ordered_tree = new MerkleTree(mtp->dx, true); -// JobId[thr_id] = work->data[17]; -// XtraNonce2[thr_id] = ((uint64_t*)work->xnonce2)[0]; blk->work->prev_job_id = blk->work->job_id; pool->swork.prev_job_id = pool->swork.job_id; buffer->prev_job_id = pool->swork.job_id; MerkleTree::Buffer root = mtp->ordered_tree->getRoot(); std::copy(root.begin(), root.end(), mtp->TheMerkleRoot); -// mtp_setBlockTarget(thr_id, endiandata, ptarget, &TheMerkleRoot[thr_id]); -// printf("merkleroot %08x %08x %08x %08x \n", ((uint32_t*)mtp->TheMerkleRoot)[0], ((uint32_t*)mtp->TheMerkleRoot)[1], ((uint32_t*)mtp->TheMerkleRoot)[2], ((uint32_t*)mtp->TheMerkleRoot)[3]); -// clFinish(clState->commandQueue); root.resize(0); } @@ -1463,7 +1457,7 @@ static cl_int queue_mtp_kernel(_clState *clState, dev_blk_ctx *blk, __maybe_unus uint32_t rawint = 2 << (blk->work->thr->cgpu->intensity - 1); kernel = &clState->mtp_yloop; size_t Global2 = rawint ; //1048576; //65536; - size_t Local2 = 256; + size_t Local2 = 64; size_t buffersize = 1024; num = 0; CL_SET_ARG(clState->CLbuffer0); @@ -1479,7 +1473,7 @@ static cl_int queue_mtp_kernel(_clState *clState, dev_blk_ctx *blk, __maybe_unus applog(LOG_ERR, "Error %d with kernel mtp_yloop.", status); } - status = clEnqueueReadBuffer(clState->commandQueue, clState->outputBuffer, CL_FALSE, 0, buffersize, Solution, 0, NULL, NULL); + status = clEnqueueReadBuffer(clState->commandQueue, clState->outputBuffer, CL_TRUE, 0, buffersize, Solution, 0, NULL, NULL); buffer->StartNonce += rawint; if (Solution[0xff]) { uint256 TheUint256Target[1]; @@ -1503,9 +1497,12 @@ static cl_int queue_mtp_kernel(_clState *clState, dev_blk_ctx *blk, __maybe_unus blk->work->mtpPOW.TheNonce = Solution[0]; ((uint32_t*)blk->work->data)[19] = Solution[0]; // printf("*************************************************************************************Found a solution\n"); - } else - printf("*************************************************************************************Not a solution\n"); - + } +else { + Solution[0xff]=0; + status = clEnqueueWriteBuffer(clState->commandQueue, clState->outputBuffer, CL_TRUE, 0, buffersize, Solution, 0, NULL, NULL); + printf("*************************************************************************************Not a solution\n"); +} } //printf("after mtp_yloop\n"); // if (status != CL_SUCCESS) diff --git a/driver-opencl.c b/driver-opencl.c index 6a48bc3..9b285cb 100644 --- a/driver-opencl.c +++ b/driver-opencl.c @@ -1346,7 +1346,7 @@ applog(LOG_DEBUG, "****************coming to opencl_thread_init **************** applog(LOG_ERR, "Failed to calloc in opencl_thread_init"); return false; } -if (clState!=NULL) + status |= clEnqueueWriteBuffer(clState->commandQueue, clState->outputBuffer, CL_TRUE, 0, BUFFERSIZE, blank_res, 0, NULL, NULL); if (unlikely(status != CL_SUCCESS)) { diff --git a/kernel/mtp.cl b/kernel/mtp.cl index 7d7c593..d59dbb1 100644 --- a/kernel/mtp.cl +++ b/kernel/mtp.cl @@ -608,11 +608,14 @@ static unsigned warp_id() return ret; } #endif +#define LEN 8 +#define DIV 256 +//#define FARLOAD(x) far[warp][(x) + lane*(LEN+SHR_OFF)] +#define FARSTORE(x) far[warp][lane + (x)*(LEN+SHR_OFF)] +#define FARLOAD(x) FarReg[(x)] -#define FARLOAD(x) far[warp][(x)*(8+SHR_OFF) + lane] -#define FARSTORE(x) far[warp][lane*(8+SHR_OFF) + (x)] -#define SHR_OFF 1 -#define TPB_MTP 256 +#define SHR_OFF 0 +#define TPB_MTP 64 __attribute__((reqd_work_group_size(TPB_MTP, 1, 1))) __kernel void mtp_yloop(__global unsigned int* pData, __global const uint4 * __restrict__ DBlock, __global const uint4 * __restrict__ DBlock2, @@ -625,10 +628,11 @@ __global uint4 * Elements, __global uint32_t * __restrict__ SmallestNonce, uint uint32_t event_thread = get_global_id(0) - get_global_offset(0); //thread / ThreadNumber; uint32_t NonceIterator = get_global_id(0); - int lane = get_local_id(0) % 8; - int warp = get_local_id(0) / 8;;//warp_id(); - __local ulong2 far[TPB_MTP / 8][8 * (8 + SHR_OFF)]; - __local uint32_t farIndex[TPB_MTP / 8][8]; + int lane = get_local_id(0) % DIV; + int warp = get_local_id(0) / DIV;;//warp_id(); +// __local ulong2 far[TPB_MTP/ DIV][256 * (LEN + SHR_OFF)]; + ulong2 FarReg[8]; + uint32_t farIndex; const uint32_t half_memcost = 2 * 1024 * 1024; const uint64_t lblakeFinal[8] = { @@ -647,18 +651,9 @@ __global uint4 * Elements, __global uint32_t * __restrict__ SmallestNonce, uint uint8 YLocalPrint; ulong8 DataChunk[2] = { 0 }; - /* - ((uint4*)DataChunk)[0] = ((uint4*)pData)[0]; - ((uint4*)DataChunk)[1] = ((uint4*)pData)[1]; - - ((uint4*)DataChunk)[2] = ((uint4*)pData)[2]; - ((uint4*)DataChunk)[3] = ((uint4*)pData)[3]; - */ - + ((uint8 *)DataChunk)[0] = ((__global uint8 *)pData)[0]; ((uint8 *)DataChunk)[1] = ((__global uint8 *)pData)[1]; - //((uint2x4 *)DataChunk)[0] = __ldg4(&((uint2x4 *)pData)[0]); - //((uint2x4 *)DataChunk)[1] = __ldg4(&((uint2x4 *)pData)[1]); ((uint4*)DataChunk)[4] = ((__global uint4*)pData)[4]; ((uint4*)DataChunk)[5] = ((__global uint4*)Elements)[0]; @@ -690,7 +685,7 @@ __global uint4 * Elements, __global uint32_t * __restrict__ SmallestNonce, uint FARLOAD(t + 6) = D[t]; } - farIndex[warp][lane] = YLocal.s0 & 0x3FFFFF; + farIndex = YLocal.s0 & 0x3FFFFF; barrier(CLK_LOCAL_MEM_FENCE); ulong8 DataChunk[2]; @@ -710,7 +705,7 @@ __global uint4 * Elements, __global uint32_t * __restrict__ SmallestNonce, uint ulong2 *D = (ulong2*)&YLocal; D[t] = FARLOAD(t + 6); } - + barrier(CLK_LOCAL_MEM_FENCE); len += last ? 32 : 128; @@ -721,10 +716,11 @@ __global uint4 * Elements, __global uint32_t * __restrict__ SmallestNonce, uint #pragma unroll for (int t = 0; t<8; t++) { - __global ulong2 *farP = (farIndex[warp][t]}zUU+d8dn(K-WmY^$xEv8{I0+Kw9AqQ#0GTK?bPew=&mxi=un%;!J< z`ES_yt+UR4t+m&Fo^$s(;-vbHhUKRuj;qXeHOEh!JYn+0DHE%+`TlbJ2@{XEcT$NU z2(Ac%;Sc}s^S@ai1abeD?jVTyg2OfiyY-W{1_k;2mZd>KKL4xNgMvJMK+h|I@jtE% z2JD3|JaTK0<)^(I6z22y9~czkiw6JD`)SFu+SAQ#t)1tj+dAr(HPue5nKmt%Y-ww# zZ%KBh8=Kpb?H$dn>7~gw8?Lr?O6`;&xw|0T?P#iRsjZH=Ai1KmtuPymCR>}S$Wkwz?@RWM@-uu+HX7 zeV`?mq?Ef>X7MJYO`j$@5 zN9Rq;n!Nb#DpCZ`iRRhb)#8(C?OL^@sUxdIZA(@(HFyc^MKY>l$7*cyX*fnk!;aCM z4$BqcBjbR2(ze+SahVsbOVy z=8;-=iFdU()`wM;#Y;A=ZSG7rw=T<0!bV80YVPdJ+*2!X!9+%C&s;`@>a?xQh3-t# z=6nwJBH7Z^x-7jsD?m&d7cgU{8AiV$TeA}+ZfpLqS%o#l%Z?h4mhK3f!s;yH+UZs# zT^J$RwuYouceZ*JbfuS0PMT^;E^Y4U#8RRhW8)EqP0fXAYHet1qzRe(G7VFUwmUkZ zX~GFj6DKrGo?Kmh!tqlYd^fc;hp%p`J=vIUBWI)3PR4BbiXqDr&C}ja(#F>nggdHFC>d zWNxm`4!b&jpROQT-@@RKT-w#z;Cn~4tsHK9a%o4C>&)7dtIYj~E*ra$$m$sZTEk05 zp8CclgHOwnj0A?aw7JD4XTmIT^61{uDD8&_-Jpca>pPdH>zA}N(fXSFJ=dZwClkU| zOq5|NCc`kDW9HIyjhRbZZINr!QD$G8ZZgI)on(w>yT};RH0>DA)p~{-w*U5IQ%6Tz zN75F{D%)~$f~X2R+qya$!Wy#ySBD{!ja{o4#j-2L@FEqXYhN*%#yZF zXCk5)w43W&%z&!P#-d z{2Ro-{qz1Sfonte|F<;A{8Ol67h_Ya!w0ELpt0 zSzJV>aoMxBy;*hSo4F;krt6x8{y(%9*{kVqwj$!Q;rI$+A5OORYVw@BmdZ1){-3mf zi7f8+&H691woDus+bG@BK50$$lyIMP=820JF)i&}+_+-Zgo%r1wKa6DYHCe)EMX7O!b;UDDOu(ztjxOIe$C;yC{h#yy(puMeuJuAVe$Qf1}wHIu3*o3N?G+=4;D zmo7bh@uOc4f^V}Dl^fUC!DNNqZRe`N5d-{{!$djZ)DKmi|~S20+&a z1Er?z?x;rS}JdVYBedOLS=)1Zj49MD`dh@t6+rm|= zTK%0fN3udE+<^NmXFeHJ2J=(#aC(3>@*&EIms2?^%Lx~gcRTz^ggNG`3Kg)rCf{=8 zjpf?`znw5IyKqHZ=Sy!k8700J1PiDOxiGzsbVJpgc^6o2z*;&8?jX!vE}Y6&TV7o| zPT>}2hx;61zK|0xTY)9Sf7pfbdDNEI)?y;Z&8jdaDoI7*D!dWA; zxo6Ftb>{SWb?1z%RJq>7e-eLQP%uPk?V}+nGsc}5oHT@5LpcYL{OuPNggCFcp`)#{ zZE3o4^n#-+^%!bZ^QBB?DrdH>YG<=g)eyXmuM*+h8c^l-ZZkGp%7vF@Idn~Mnvuna zQ5=QA+|j$|7MOL8oqh)+f&I>|bmUe?QWAIbIqXMDQllL~7`t6-lq4P1MxrR66n;NE zc4OR^2L#>9`yasl!LNYQ;a5SG=WAeGM(IjUS<1y_ly1hy>_BmpPYr%WD2i<(R>oG- zNVuKP*&Y>baV{yi@)uyvk68m%A6)bbTMFa^0Ut*7@*Nr%_qe zUy1i7{&IZWmK8@~X5d%HWc3?td+ybgqlPToU=MWt-0?%`1Kgu|Z_now$~)zq!YlS% zyxd8Jwx2s0R6lnLD1Goy!Sr*rU^Uk>z-i!2P-UM5#_N6){HQ+OrT;2}mD6R}8=3Jy54l>17a#Yda`lDowcSrH|x|Dl0!KoBC;}plYpQ$lDHMcf& zG%elD@K%YU)VHbPZXvQ(2xit|=d-n$Y|LD6E!WYp{OZ8geGhmb_pSjoZ@Ct%0i_gYmjL3;yovDxW@mW z^Q4@*3hmKXKcOOS5B4}Y5>)xf9+l9sj(=ldb;r19)|NMeD#u1JF56fa*B2z-Ctbn) zNwIl_;z+im@iStw*=2IlbS%3!M&IC`AqCUm`dMw;HaMHSyi@)ud@=qcyxe>zGj-n0 z%N^>U%o>8VboVH(&jVH7^TD_dPKPh~)%@k+IzXSSEhGi1n@3U<^C)f z*ToOv%Qm9+QNguzqxN?nesW9~ilZ=(;%DdAg?r~)%J3-@IO=G2l3jOYB5o^KosgP} zVX?&PVE$wGi+%U45IfjE&hDmi=G7`=3co*IeU{uNG4TWdc>xU z9-jiG#~*=lJ=Vfk+m)A#_ic>PIdjiic1QnnP(~g6h7L&KaFfE z)6YQlZO?*-g8vGR0{;zEd7lI0IyfD^)`#rNfrJ(1c-6y=%1?}wj=mm5@I=a>h8YD0s;LEsQj zWjhdz%eyB#xQ%#IWAaArU|uLn*4)zk7R&skU@t8}t1}I5g;aoPQ2h-4>Vs$Fy~}3@ zzoUL-2d{y$gV(`P;2WUq;P;^H;16J2FC*d0^=AjnJ9D0SD30tvZSlc_J!?0z+Evo~ zkv4Y^ET6pZB9G+#3n-iaPf+sy6;wU^4UEe>2fm!_Oium3((rvBb48wuXRo^zM`3F5 z^LHcf`&?+|n0@}0rq#)O%HW;KmBJ6i&%(tom)o6=PLAz`Dvt84#GjmBM@BvFCz1Udh4!KHOnl>`#O`!dO&PpXxz^%UwkpR| zyU_J^uo6`Ji0eSQlk2Y!Si!yc{*2-%-4El>i|N3;uaMcIB1AqHS!+K-0=wB0R$eK5 zwEcHbm&(5r90I1nq2OvzWm*Hq<(vUuGWItYxRHAkW9>n4)VIox&d)37``Cu^E1ND7 zZEkJkH-zHoO_=!W9%g=YKEb?Gc~W@EFc&X(DYB}JmxJmH)`8O572qha8&rF^3e-HQ z2b4V5fN>q&3ST;kwg;sx9(``!HK5`s%(eKB=G9TOxA0a*;HZn3gO+o~9P;Z)Ib>FR z{b){O$ofe7Dq{+N0RD2k+{ck$<-Q)24fTQtgExZ5f;WSc!HwX_;3vSD;BDZU;HSU~ zz}vwj_-QZ=eg^CTKMP7He+S0(d?)N)a*|Gk`#cvbI7v2nes zOeuU+um6I)D(8Gda|^!f}az5Wc8UY`Y}*M9}2*XO|Vz+Zq3;4i`D;0xfT;IF|A z;ESMi@Ddo;>zo4HHlp@hL0E6Uk3z@id5WVjQ^AY!>NRrsf%NJ-5aLAL`!(STw~eux zyxUqDljdi&{d5V^|8tQ{RrVCu!|+cz{wwH3^1KQj0=@>01p7eg{S9yy_rY zkuK8RUAL_|T8sBichG7$|uU2je%6B9v+dc|B3LFiN1&;x>RvH7=gJZ#!;5bk+9S6qs z^jr90G6&I0d{8oCbatoDTi~oC*FMoCQihbzofQAAv6y)p;S;UguXrpAegWD~`g9z@L&= z=XM<2&EiutZw-0MRw}ly*yav`;d->1fZi#8wQrT7$}zPUp=<3$s9fb>T-HNfSji?Q z`-;k{z9DX3ilZ>9mz6PD?fawdyb9SDVe+|%eLX{%aHg$(sx}fqd8P3C;V0tdzDu1c z|L=hs%fAl}1s?-drpLj(l~e66{v07HXG%BK>)CMIk4@k9GYR^^w%N9*;pLM!WRP_oVeKLnlu zR)TZExU74!-#x7p*TrOw9M&z%g>N`8aM&0h(>HJ7Q<(0xm_d@PQ4&}cIRDItAP6zJ= z&jRlQwMKaWR2e@9#_QL&d0)JE|D<(Od>=q@q~9_4wwTy8Jevdg82w zpEifH-#@4&AMccR3LmxW*Jz_E&+DM(3w@y0Ccg(&#y@~@xi!Yg`QbS(_l?|(&yN&G z`AovM_bd0F-tB)6f@?EK>38A%%l?pY+gEu~_^2-4L{^pYEl_RuPoQk$ZBXU@GZ@#! zo^0S6;>Di}L~USIzq-hJ|AJKVxqWL3KSDmq&tWsh7JdTC7M=lR3qJ+p@?Q;K_8+x{ z3a)+Ie*`+dXR0^~lg799D}VOy0DK!GO4PkK1;lMa*V;X5r<6MJNqdT#C05eo*+v*> zA|soLu1i$z6kf8bPm}vOI*}~D07rwr1jmBUgSFrb;HluRLCpnU1kVOv0#o42pyq_X z0Xx9og3`?3 z{}ev@9PTXoQk7{ws4?bjQ2QO{fFA)DfhzC0U|a`Rz?btnm`OtRlps6SXze&5wkN4L z(vkFfMN9`~OwFeNMR0C+My4^tDnP$AIKsv7zdi7p(6xPF7uS!s(IGZRcUqu?7*Rcq~4Ar8dq-Nc1KfZS4-No`gogH zIa2s&n;(meDq9VB2sj?pI5Gj82p$ir+>^k#E`APQ;;3YD(uLM0UKd-T<9(vyD9jdo zI;M;8oJ=Vryhp%@qa_T=yq(|Hm1ajfS2wa+ryE&|*NvI8`aw5M7`IfFI=8uTx&C64 zqPA+30>^fQx_mHF4#|75osWetQ^rHaHwS2OI%5 zfro}&ey_;) zk~L=cNao-<<4tv%e)En)FEMYx%Z=kV5R(5mQ1x03s$R!~>K`V6HQ*$03U~rI z6PyBm44ew89#00Z1gC+wfYZVIz?tATz&cR%b{hC3I0uZ^-=pxQX|L^g{r#4E@!#$# zj><2*IaYt>IOY#heea`kvVT_dzJE4j>aH7^ypwz>{2;tqwcJ_gP_oYlhk$2;L&0-E z^>2$nwaN3qIp9aZ^T3aRYKs?wonR8Y3Tyzc1Dim#$z|Z)*3s+4i;tPnI@%bkqs+P4 z|3fOuw=vtq-cvoTK#!`Ym7waW1ynt?f~qI_U{g;Wpz3KgsCrrps-7+dRZo|Ls;6#H z^>j6;db$RT*OS_?T(mDNh9nHW2n4BtEDo5HI;j>XHdo-;Di?;3j<14>rz=hW{} zCPsE&DLH)oYF}=0OjgBF80mL+?AxjtDZpga1eF#h=G0&ItU!;upkZbiY^24C_kV zI~CG73Z|m~l&xC3jaFlLijm=sH>%L?hInS?USnofnvD6ENu@2#w89{6bhhjHz|eicsw zdC@iAYOSQ}H}Uu4C&g??aTMnB_;d2>Hyn1O>Ls{$sMlN2Eungi+N8;-+Wef>&G*%z zNRx_Xmr0p*|M@<3P-RTvRe^Kyaz`P*$~_hw1�Z^3b(`rsOHBRC%X95@k_jK_m< zz1e=m|O4*71_9~_jj|0!Z3^vYcZlc8I)_U>UE^NLW-32 z2Cr1*v^O*;9OBc`8$+kq3-!rTs@J=etaXA?_ew6dy_nWo-8Po_E16RGL3lqWnT)<9 z=Skq<;K|@ez*9i!dj_a}a3-h{oC?zRgVR9SJnxWnUjm*E-TSXjRH$baphDC>8Fyp{=V`A*KxR1KD7L+U9J= zk!k{Zr?RH-h4?DG+`Z^QCAtrk4EN{J%W(>bQ>Jq2-;{>p$u9EgMR647Nc_j*dI@_r zZsv37MOu(SY$mSJLY7+E+d550r-T(kYEb~MmQDqbYKIX(db4`!M=vUC3Ln+W=h1_% zzW_>xFXqw9f52A>eE%%HsLgu4JPmz(%w7~nVSa&MtjNaM_F|1@Sx1}wt#5eOhq9R0 zXfzP07?QPql`#tGLrJJdF$zBjhHp{&?X1}k%m1F5xa!QLTLramulc>RJ4n$x$& zC-pOO51}i`_%Nt8_ziFZ_$}}x@E^f;@Y~?k;CI0F;G>|@_#XI4@cZE3fscXrgO7uc zgFgU&3_byBOx^-YpIgDV!799W4??JHvL(5A9lZ!IJ~k_k%KvHn5=AyHT1T0wPk7r0 zvlts*OwHDq;aat%F~P93jbTR|Rh+4i?0zpg*r=OdWRv%EAq`7zx+Ipyn~qO&{>O<{BPIaP|t84WqvVnNJQ5=O?iEjv%9<7tGQ&G}+T%_Gd zM@IjsAfx_fQ$Mk}lDGNuBPpsZDZDb8i+UvZqCRR#IrB?@dYMD?5woNo7jmqk39}yej9# zp!C!MN>81j^wb4PPpiR;!L^`dx&(~t>9g>aw(M9gZbx5$HzB4c#ZmsU*`|!1+-nV- zF`|zkX~^EQf;7{!GrRbDT-Qol1=k0ge4A#2f*2ObNq2Q}~60M>!mgVO7b;JM&Upyr7;gUi8#O@KW$r zum`*iyaD_aD4pF7#_PdPJ)-Tokg&czw?Xf24SjK@9<=Mu2W|AB34fS=eEvjY-bH%Z zN|Y3NEdHL>(C;FP%J~;iYv}(3rOTapWLyJZcIM4Owx)HEm+>Cx_}o}=6s8&95tGpw zTxK9q;&~hei>{$(Al4Uw09BTc<&jTzp?=2O z`zQn*!Ik8F6Mr2(-li2tefl!|r7`*ZdmI^qSL)vRT)3u2HBl8uHR|Hk7^d1tgz1es zF0;4ksLU53qso>9RlZannKcf{^;f6r$Kq{Vag@(+{AK;f92zlU^0` zUkV?UtpQnd-3Y22O?hP7lf7y#5^tYTd%ZFyo3mGQqUG+5RWn@GW-U$11kWp1K0Ce9 z$#oMbJH0uNT$+oiUcCjW9aeJf?Q|Vw7RxUxQv$ z+oR_8HOec6SAJD^x!aLL*LQ#_!<~8LQXebVpIocB7jJipqjWW1e>^6av(3y=kA%tR zBDI+J9LLF#NXjpTR~h|y@lz+;&p^!|o&{B&pXZVB6Yy2csGWX@Yo(|D^y~O|`%@f+ zxdy*JCZm1lDPySNZNf$z<^f8{{xTA3Pj^^`-z_i;Q@>JmA!@7@ zsP8>LlA+3+!YjwQcsZUon6>3EK+W-g32OZP6*vog0bB(B8vH2uA}E<(0^bI!@ZMbk zp<$rNG1T7U^RRe(R~&_D$8QJ~W!H{Yk6|NF(s>+ej5dPseP+$CGNvO<$Ci)kC8X9u z%IkN5b>zG06H<|!R7PFzk6(zFdjz+8>1tTX`(y`k<8*GA zWrnT#G$NG@`8M$l(>>eLo@&XEE;Q01<4@YCgMC!HQ)dIIX4W(;ukRqxP$K;`T9jma zeRBs*uw=+V1T#4>yc1H%o8@4AvW0IXo0uo~inQY)g>gG%EP098)RbWS_Cd|9JtMePo?|uuw@`6!Mt^e+!x1Ig? zkCRu=EPkn#20q8|Pq<&*Qq4*$F3ICsi~AA3>rXW#tZb9X=W)K3Qe*&F@tS zUp4br!=L}BYkyPn=RsfjD_1u2U9g(!#hf|Z($&}mIj(wKP4)PR z;NmV6yLeT7dil8JA3Pn~2=+xv4Q+f!h$`m`SPku$Bs=$InrouP?23Fvtug$H+Op>K z^2k@zI=hyvYHRF5wc&TvcqHP!p4K3}eUN1M=9Bw6+rE&pGu_zSwl5O$Re-woaf&9v zBp-HL+PsXCRxPZqtZG`)UU@Rm++L~ciIrn2FER}HV%UpLdoh{2Cs)4jh?Q02CzwPh zSB^CafAEwh?z5C?#_zkNChfDN#(M$L-9)3i@uBkGqzlq~v^bbMhz-8WQeFw9X2?eROFdP0Ru1aClT-a0Ut%48Bx+jpW$g9=9_ zg5@EvCFDH>rIpOUV5g(l?<%%D8ETA4rHmJZM3n~Rj!Fcxpbjv+*^WvCsW4n)814?JV@)crII1*w z)lrGy!>Cm|7Nx=Aj!FcRp%eofz162WNH zSPgGrkakpQu+~wufRMK}r7Osc~eMKB6uX^J?f|glQcaiQXUH(RT`Y{ zs6_Bo$a^~EjX2QmmJbY;JE}Bjaa1CBG331x@~RKgK9usf+)<_GU_*k~%68+z)kviLuR5rNMSbC4%!0ws%W|#g0k@4?$^{ zgZ{u#7#~{>;!z)tqCP_2HmE5k#!160RT|VfDiJ&#@}3QOlZWeRrSiDOQKi9pMxTo~Y8`X-8q>EQu{|vZE5gHBcv+7*9K@G|N@^QPc;Np1}=Z>NWskC?LK^%pypr)G`PdN%*ISR>-uy>K% zQIra5hKaGwQIyJ2^hhJ^-O?cKs6_A})Jzj&yQ4~j9gaedQT8r!I0`wSW|@-~LN5l5OY{Gr|Dj-m}ZDiORA@?H&j>7#f* z&g8M#QKi8Xj$-s1ZSOMrISM;C+Wt~>V6f3qrNM2EqTe{i-YpHv97UUfnq%^K)={Ow zbB;n+W9(gY*L{K%>y!VUb?T(_h9F+*33wh6n zyz+5&H*R3C*iofH%2AXcP!=(y4q5VTaH36 zA@7Ee_cYX5CdP;wOEKed6qXqB(jo5=sQD&F(RfR-(svX+T*zA-@*aXZ+r-%ED6~sw zFCHViqe_FukoO?e0uy7qqp)^IC4!cT_HJp=?kH>*>Kqe8owz7$*HOd>dF>(ZVW@>R z#w1G-!%>M~Q^>nNDa%?%l?InPiV-&CJst8Y zrt+N9#7H@cI&u{9hP>xO-mxdyw@?QLYaK-%j!FcthP*dI-sF>c_G$9C#!-w+j!FdI zf%+tOOM~w_im~Su8-w|kqmUPBu}P(Rnx(LNM==YB`jknf#Zif%6Y4I*TjMB3FsRQM z-g-wRf=@zy+VJjlR3i8s)SZU+1xF=|TyW#zdqY^<;tuJ4RqZkdK zE+iadl%p689F+);n$Agw+${~pI4Tj0hkC&9COIk*%!In%@J@3Sy*$)?hIhWB=wqSo zHN54HN(5=Bdkk-_qtFJ_Cc|6rs6=oZ)ZK=6hocg~W+;`Oe%w*?u`|rqTaf5BN0kP5 zIEonx)aOi$XC0LYeg*Yq!~1tfv3`U4lHqN0R3i8*)E5n}V5X%K!62wF7~T*^F;|BA zyx|?;DCWvg4;o&LqnIm0{k`E$cNF#lb&=t!_fW`t z1*+Y|sIIdVHt8rv=a6?>$a@;gaL62T!1k-A$N9OfvjF65mb@}7t4 zGO3I{!&0Tev5sPH5%M;Myyu}-+Zb~#MGQwJf_p;V10nCxkheMHZHHQ8QmJJq6;&F{ zauj`7$a^m2l`(*>H8IY26ti_lu}WaD)Lm8yj$-VFy2QlT>8MgOFp8H5KF(k%sx;_z z6l9L=VmQ3iq_WXb^yrSF-(Wb@UB+5R(UPGqGcg`=RB7&6T}CxWC4!1Yob6;{q#T94IEs~A$a^&8?SQ(%#F)j^#nmGBFw*#r)4v?E8egr$Sx{16j9;vCvV>V;x0(guI7C-m6eonHUp4 zYAMDKN6}J3-h(0Ud8n&RjL{cZ3j1>ubN-NbO~`u$s>j4AVn`E3Z8?gWQOH{y@-{+U zV`4n-DCX#nV&=<`rn~6RQS2l@U29@&brd@Zj!Fb0=!kWfe#23;MyTsdj7^Rz4eobT zBG?h~c80vkbbcQo*f`fKf}ukf{W|@HQxX@R_N^^{Zu`ZwizgMp-$&nh_j~B=jZ1i^^ zyrY4m`Yq3=-^vxL9WSOTvv*O+hO7KK<|#LQ3PSXjY@m^?+gY+^F}m1Q^+|~c-xsT>Z&t)Si~1%}hhYQk z8=V#MkgSkp(U94y+^9_UjfJY?UV@fc5awmWV)5za19W2qhP?AaVDtt4AqTWzMkNas+sDc@db z*k!&0DWPEx>0MMFs<&tBu0C3Sxd{}}X0#P%Od_ki^iBIIdVSA2vOL%nonA`_F6guik&@=XY6w~r8Dh;PG(Ep4wcsRJ4R0jJ3Ue16dP@o^-KYg_chHUq#Cb-upUuc z-$x>?S)F>OVxz%ir|FX;{Z3Kj?v9>yJA(A#y>&Z?zmr-BWs&-gq(yyqNG#vmXNEl4 z*WSu=^FESi_HN}lMv9?=yy;-*jB1N^sMSRIWqmj17tPz#{~Y`!%0qmdVp&-#cDPt*89(op)c%A{p2nyb1Xvk z?&ni`5nl5t(+!rH=1pnoD|0%w1Jw^lI_i=Mo8$8&@>ky+b_Hti(FU6*e576r%(zob zz4lHoGooeHU)aCda7TpoPno99DC=;8*3RCu>D9}6i>}V}1E#T9{bcOPj|Xk02zDeW z=zk=bjgHJnz>rur_3W~aAyHA)^B<|{oXx!KYTvLmo$6(FJdbg>d_%?hJ@vnt@?kNi zck9YizA}wenLby!pJ~gtqJSxUW(H0lnHzKzolGxtDO<8dWfaSDdLAo)x#9G(eo86( z%I!~4q!|e~eIv+I)^auctP%XRKdO(-R_AIns(Z`P!16-^t>CBrQE4{Rnc*Ne#m|}) z8K-wlon4+bW3^`LJLdD()QTUU$VRe{F_x)GiiVXk1SgIv${TM5NriRTcZ9iFHpWc- zWz%I$DNSGPN=ya&x}R6Rq3miKzGt&a&&&nOl#QW~ud9${6hlHvLazqQU25ogZMPMkzrG_4(G=-aTTrGAR6@|VKf@T>*|2Db z@=%48b$-Yym#f~2^}Y;6eLp9}mRhsG%&Q@jf7zD0?P|dNPD={9qSKNBJ1x0G2Ep2j zN@Z9A!d{r z1Jiw30~*aWBkY2{ct_!UX4E@3oNa8uPgi4I6!KD9U%dWS!M-;O`+GO<8xZL~?J`ID z(|X9x3#0eL{xx#HFkL)h^Ms#Lf$D)-H`zd$?ELuR(kn_A{o)UO>aSmzp2;t_f1m(I znE|G->u>^xt*UpcX*?`v>vp_Qx1(=lU!^I{FzT)6#3FVQA|qa3QQv@H{2?~UGxGU< zGItTNyP?NO<>G7nvnvYMnzigOhGBXxRY|1WzU~;I_C@}A^<^gx1G?AzM0R;g_F(_f z`}yp@#L7$0AIi&0r<`4f37f6R$}e7DH=6DR#nbXb&1XIwwV?l+kGsV{{fNvMSTawLzq%-v!z77a#tz2{aI!{LpNZ}dEkW2 zuYJ+Tr-fv1`P3n4u}qI$S2DG(tSj+|c4lAG=CUed2)(%3k6Dc}cU5U08h+N)vZQZu zteKYdovtZTqz@_So17Et$edU-`BIFwKi} zI7NNaBBoW;R}+z`sBctO$e~#w2NE)OLt^Rwrt&lH_uGA|epDOmEYjjjw#+D!*@eBE zsXy*VcCm`0%8qnIs%)HT&t>e`=9#cWE3MbGYTrhuZZr0;ZN_Nr`POLKb$lZw97Qv0 zLYk!6NI4@i&CA_L8A}tQE68lb(ChRr+D<#!;WJe8*J5g5-}R;)vgzx`yxjKP^G5#p znGwzv$)t99Q~^FKWZS_eQDmw;Kca%DY<3%HVx*W+*-R&wK3IL0?Ww{&LMaKVf`zkh%?IISDp6|qf+=TKPa5ez z*o{-S$K*`gss(74_$0|nlo={UJX_C!dW&ueGi8QK2qvc9&Z0tO?~_>THTKI$Uh&wA z1A4csd}i8Pek0RfYQ?T%Z)E=NpFNbhXAjXK*(YVtw69?#M`D^v-B@%zly;;=xpMiM zar3D+a>qj>URj}uIQ8_BHKk(ImcRBnwHQ-Mv)DifB{mQ{*3Y~+b?a&dF=QwyWcIRX zTc3$GyX2XdHq6`ByJ(wP8thczyn?7iGg!*_)d8bWGwY#;*uG(Qxwb{p<^BZikuWBs2EF*r?SO>ztia>vnY3GUGGj zypxKl$aZc??|!_8B?ZKXeB0)~V%mKE0-N&2_J>V2(S}}^SqPfBh>;*PbxF{9xNW3i z`!1n$;X}iczAdID18bKyN=Nn>tGe+>=JB>RdAS}R@nP9 z9BN$c8|YTq%ryHMQOMuVmwbL&J;xHw`zR^X--K3`E1;3D;@tDxjQfq~q&wQ^7@z+V zX)i?^x^`?>w^N}PF<9=Hx@a4lYHDuVB^_U9wbH!-GHZV$$%t8zZ$@nE!*>=%3q0jb zJu>xp@A8ar(!8>v?$r%-{mS&hg*&v2GQEkG+}pgxy>Q{Hy0LBP;Bj@Y-u>q%W?hO* zuXveWu`<2V^Tdc;iL&L{`N9bQQbRui+3*qjcrW&tcRcW#)8vSrI<#+fHj#}{)AwaI zRHoGJG`;5-+ec>2dYq|l^Mbp@&9?kKq3r;SJ?*Bwplq|}!@4sLM^bFNSx29P*wEd4GVi<=cONFW+b=n;Rz>no~lGbw;7%aq67o zT^{l{3C*R#ndnZ+t>N8gp$1Ww;@}l1>9si64mH?N2Ne3ad|$)s6v~!>ZwHy*SQYE5 zI_53Q3Vk=mypvcFJP)^;ci7RfR~mm z?=UD^M`NIDT~39nHsKaR9dD?Mplpo45AQw+Rd4S8BINx(3^$1vq8iNInNT+FQ=MX{K~VPYNGN-E3{j3d-j3_fR&EhoNj9 z-wp5nG`#yOD4WN2s0pU@W&8U)4u!ILd9)MbEcwY;7LlgGIu8LqJ)CO~R z2Gnvx%?)`SP|b#SdC2=3l&$kEP%F&cpM`hzdr0**6~Vhu)*=ddJ=Ny%RVW+xXCd|b zkSZE`YM>T?1wB-W%R6p$o8gM?u*b8=!2y`i0^+linLpHs3+zKHO+1dsnAooNB`9 zI0>7|z#;Z`G!?-Rs2j}PiBM-5>NF@Dt^w*$!%IW)5-u9QBD{MqRGZ;_ABvZ2x%*^z z_cu^B?)LER-@?169?1E>CPp)q)zI}&Hs3!%9md__;IAR?kb^w03d)9?9a6u6(g;%# z{59lFui%t@!&?A_p^)BrP*sMv5~{^ew}j#DfwB^P70Qs5=ey zEYznB^&He^4D~$JXASjYNWBtLuR`5r?hZfL{?4K}7zx!0uOg_1y3|moKwW95xlmUd z>H?^14YeFouxLXlyfwGqKOnA3o znEkzQMKCy|j)by3^>I+Pr`GRXZBIQ9%J$UfhIdznchgX{Cbt`*CKzfH)M7(@7s{6E z4XBZZH(cx$iy9Ri0`uxgtGY_1!dD)3RP{wt%0(d>#ix69|77$1W=&rmBu>XPv8r=YAhz71vLz6)jbd@x3j$&l~SP-6{s zDwGY!>g*9%Z0Hy9_aE@Z=9d6(Lsj9u)2I}6n+Mp_2Nmm0{5AL)v9CZWP9eSoU%{Ae z-SnhAC5qFHIkYC(-oa5(OOtKw>E^ap9T?T$hoCCE59Dsy5ZR!0$+K*vbJA@c^~>xB zlHTH$TBUa?!)Cn7;pLgbB16|$c(=+n7c2uY0)Am8jf*NZZAMhWj1|&NspX`>t! zmia2ukGL2AN}l2{Xqy$vaXw;Du)4F=R-~ywCF-3rwoVo3&+WaKsL2^!OP4lvaN2_X za)Zj@cr(rS8x&Ystk8{9+d4P{i}UO3H!gH?TylEHvbj1sP62i7;F$`zz<$zGUj&)# za@MEJ&6%tA)IrbIUCFZ%uVNmHm;20q_G?*pf$9Y}feqk2pzMUEbrO-h2qgTjJpky&nBW7CqZWmV^hNuwpqQ_WB!L+8RQ6hkeeu%JD>=ZSGk zIyEgbPTDFgP>$KI>YUT2Ostt`m?lgxuCYE{?*i=y7HW!N+%>;@O5Kuk3N2^C80rZA z%8)XgTCS)`#~GJyTAQv~)e6Jtu(04vdbRl!>XthnKwomvFf2^TUAkAf8y9T4*y8Gt7?j$NqH)qr?WVxDpnRp`)Av- zI2Xc^>1NVthLds}*);1`I2*IV^uVd58Wqci*$BrvuZ?>Z%Y`9J+{17-XL0@sj!vM; z2SKU zIDAh&sHA(%i!l@n{4Z|18gGxFM#e&3X?@?zXWzu;G zj)sX0=WRF}vpD-x=bN)QhroF;i!&C^e0C2q>6`**V-{yV9G#?;3DXRx{Jc4`p$d!g(=^a|s-sGo|v_SlSidI6TU^7fv;c zf=rliz}b|=c?{0BEY6SMR5B`OV*MIUIV;2rXB(W&S)2m;r&`u}nJ^!M^K=&HNI31R z+A?8IgtIA&GY?KBQ|e5ZB%D+hCk>}Ni?bdMiipJe44mpLj&`)?XK}s<=jklYkCo05 z(R5x?I$4}QDOMJzD4gqhOE@TpGct?A@+aMv;R?j6) zu{e{&c{0j5L7ab!a?I5Bw^7a%h51vIQ&SD6z~yC9u2Gml84e$cuOhb}nI6F9UZd=_ z{}-0f2D7e+ZIueL0XGP^2^Gak;ZSsZEOfh^8MIN!?QXqPW6&+!Ba4t1Q2 z#>PZBMq^W=93#bPQI3&fQIun(XvpG7ii@*2D&cI?PNOyWLNv@Im9Q_$G39wT$}!~` z=+en(b!e1h$}=j9qw>^*9OYAk)p^5X(8ewIm(T-(aUJP~syXv6&>aS1=BpS$P@qfW zY#es+T`UvE##(4&F*NrZ>t+|rgfZ!TE|z;{VKB&~6S>W`&;23CR+s_7R<5R{mvd}( zM^{trw3=zt?1|XAs-03h#ok<6-_jYmYcDgmTf16XGI7n7xtUBhuWCnhpW z*08*(VPzJxHO6(vr@JsZ;@pwan^CLCi^v^!Vti*) zQ=_}>IUF3H%~{3~^id5YJDbu;zOR^<857DSN;$GaH?%a>cVx4=+Oe)!)|QuSTFZ_> zbL+Bv5t6H#J3Djkna|*66Lzsm z%F40{dp5uMWQ9$`GBUb%0kTwYdG+n>O|6ZQ8nNu=R?gs#R+MFTG})G7Oxm)dm0>vu zPLfVa%d)vRmbLg~RA$Fw&ATkU+y!$cofXcU-5-tE+O=v4RTE{ov`}4kelTJU%V;-C zk(s#tG%%U3OV*Snb7?=V5G{!1L~6w`!W6>J!l*OTcbH52ofBJ~=35<>%zV-?nK|6w zd~H5*-O$q3Nn^+aFvZMV8pFt3ng*7+bTyh`SPRd-HmxDXvL+v68iSAVoR(tTP?zoQ zJ9uFoB=to>BY%5xRecNJ9Pn35JDOapH<4N!yV`?fS9r0FwVLaxTFnv8bc_j0m& zW!K$A74KLP{fB*0Q#+@nxBJHI(lgc`B(2fgref(xP|Gl%yp1;2Xtw>tiPXI_RQK^l zZyM2W2wI*C7fswp%_)5L7~-2>G^*!Cq;Y~rMjX>FqOlAkH%fHeu`MGS$#QJ0;5Fl*^SNY1&h0wN!>)Id>b`Q!?Cmp zYJ>6_(fwfY+ws5D6fELQxX2!?ZcSjNd^)=^>nNKX+d@HQFh3P)%y8|_=}Uz9tqZ4F zXKi_PZK%RXxIYr+PqA=l>9|>Sr%qoqcj4SQGfo^i@0@dIE?78gWH$G#xwFokKCkYa zk(HX+zKOpTzbGgeqU86{nO5{J`7Ty zV0yo%)`qr5`&CzeBZfSi(I>Ap+fL&Z+d=z?X&v+#R% zJK%b!^2iQlqi;AS33aQCm{K=ek9v!+o5hdbA=ILt%z|#kVVkR4%P>^geG14zwEHxW zu;$x^EOffB;(8c(JvbbcPT0)oz5^uB?ngkjAiAFe*=Fcg{gX%cU%*Om7kC7yUFuQb zv0xQA7yJmg5HP9oi9WX>$h;y!4b*>Ev-#r2kM?JGa$wVn(Gy^cb-cMi15!77gQFXr@{K+FUC>FO>W8{A-`G77Je}*Q;1cj;a4AR_ z^NrnU;FVlY2d@KXfa}3o;N9S<;O9W2jUA^MSA=Yk`_^FZoQ z=L(zl^)YZJ*NeeA@InwB>rH6$J-QS~9KEgD%{@K!HSMnvZ033?*bXiS)ecvHp9EXL zFM+M#L*T{W;~-sK_Y)w(bpHrk4L$>|0e=S4Cc1wMUIxAfUJmww*i82@W4*f%wl9Hkjw;{*!yzCi51>K~JHRY}I)BVDpxk zZrp(WB=<&8?fe!{c5^F8Th<%Y#$Kpn(;wds&Vx^%+g%TS2D}Qq3#5+p23~hBxCtZ; zy+_e~CwLziuP1nBzp4b3Q$1CHzMdWxFIG>AqcE~L`}sbIz}8dNj9)F+C#)b57i+n8 zJ{%5vU4(S&(Cl_OG$;%!I7OgwHc8)H70=ej0Cp(VWaIi*+2i`B@9UO4p9huT7r~hz zZOMGQ{L3JHpWf3k?eifp#r0RgM)2$4I`Cmo_3%ybCXlhPn>r1?4N6zv0pA3bR{S%6 zx;_HF|DvD&J{_}t^Hn&1?Y~zS`-+_Trdx{mR3FcbbHCBH$nbN&(e|L>|Lg6ad1T5F zC*L~tlSQBT-pD!Ig5dXtpZg8CKf!NTCLj3QYW_1?|5ty>O!G|h9kUPi9XV^>ALNr> zvKuueeM{=~a{I<=g6n~%=0)+f0RD>NRAXw$@>ExjH^9zv1_qBfsx)}iQJkV%Xzy~0 zuA?|%9!kC8z@VD$KoqBWJ1P-8AM#!ddE581zg8I-)D~Nclcyb(2rh*hYErqvQHfv! zl-gctaHFI6))3S|hNrJUiQ?Np1AThsj^b+&PzP{#VDPG=_?C*J58vb(n(U+Q9Z9+$)Bs%m2^{(b%#H~MX++K4lcaDu4H{t zf^$B$6o~oSc{ZHvVBKtfE_v0c{`mQx#CRYw$Pc?YipSZUV1!r+?fJJ@}i8c3t%s zaWDVS;BVILI{EvMS8^VUIUD4)t4t6@+zgd2v%w#O?keUtvrT;sCeq_DE+1-h_;=_l z_gCW#`s(^-+88e?K!pkWM|)qI?E6UHC>u#SQvxc?b{oKm#hFACHk&gM%-fOqe+lS* zjvUtWqLS;266@>U;jFy@T@-oVJ3TKQ&aZ0w#=t2QXVE)7FAwG??R~@H6p2IV7YFi^ zWS27A2xT z0M+lP*C?w6Pz7BT|0vb0e1?`-GWeTi<(%f#S7p_+X4s7!a})c8yngwq*cFk2Zs$Z0 zqsRrlKbn7|`cr$%&iNN){~lC1$>}rDG6^}mlyN^1cVOS1&3<_{^ArBekq$ej&MWI& zLW?b2v~%z`qem0igYQ%av-_rTCThXzDf~ov%)Fgb=IvOm;@9Xf0-fWd`uFMyWz#QF z7wx=pR$><~;P%~Uw3+?7?Qh(WR1qABBpQe+g0rABH1H!ED7qzhDJaH9s1_&^XZ7OU`=ahhH->Nt0xx%#hrDO6j5NBGPPMmGV~)bqX+8rc9u zD8gt9P{aI^A8kF`BxC;Qo?KC&7ars!-6kv}!x;sqotqiXL^uzTb%rwo&PEc;a5SB? z&Zpes8DU;5C!Or z36u2zUA5caWA}$l9BToE!4|IUgABKo7k#Q>_k^-I=6SB!`t!@x=xw*gsm<)9pOda{ zSb1)JM`!J1x7qz3H`w=XXZ*ODNm)DGd)oJ&QZxAk_Ih#J_a1Eay}!@GRC`Wx`S!hA ztbN%4`kQCpd-)*Ns4_LRIGifKwx50P9kSGjv*9vtHR~4ZGV>k8NHEf?-5h;ySoiM1 zn1|9=eDh!%ax`G}$0N;1chrDR9mYFLcsbe$Z!oft9^1dyIC}wM&K#~#ntvikIs5mq z^yb08jW92{a8gme^k$LK+k~0&VFKV}viZ{MfWMM3FSu}OBKgwO8_@fW;OlABnOs=D z$h#-vEB>v7x!r}6y!|~7xQ8$gh^zDUPaK_?BxsSf`$$ zng_1D*k(3Km9BS6&$+$b7xPafK28%v4{lTS0Jk+Zos@Y~jipuTkZnvY)K}|G1HT0` zom}lSL%#(%+Lb{~Ue~kT_06QM>r34AC*1W{BjLm68_OM2ARVMYwbjLVxmkhTZ=C}k z#r0h9B#`#k{W0)NkUdI$!LR!V;6iXKcpmsHcs}^A;77r?!799WpC&)4-0Svy`jTNm zroN8ie!RXEM_ouS_@{V%HKyB8s;RH=7Gcq%cag0zDYw5(Z7EzSOvhV=tKyVz8sE-O zRGK^aahItm?No}}!D|oN_Eg1naqafleBCL#&UAf;tzAtVeeJ5Qt|NlnwXUx2wU^=b zJF#mWvLQE^QigR|;+VQ2J*B|I@H_Ex)M>Y5s0YPg0)7N+1gS@zEYQ6WTneiGu?_Rg zqZwSmHNIQ@Q5iJhfol zAZ#uA%P{sO`DNIts6XQrXDGe_zb!PV0$z#Y1&#U^`}9$Xdgl}88biz9)@2Ve89h_6 z&m+~^^_w`^Lwj4NX}ceCNnY*jq1Ii?KEnE@ZG}!{P2p7>+Ng1(D2B>UyX`(291Ttc zj{zrvW5IL4aUkter-XD%)@m@Wzl-7TPJdtEeoah&ilh9ov*68){+4#Mt$J@7^iL5Y zP4)e$Zzd&>3)L6A#Z^>)Dr*WK)!zj4pz@ypN`I3<=}*rDrN5KGb3x{AroBu9C2KAC zCO8LMd@p;^5^r^VvPD1qD`T&^dkDRUhREPRt~PKL4i!oLG%%M}4o^=D%&R}?OWK=Q zzLgBQ$8*@&ZtEawUZ&#eqzYFh1k1M{{wbeUng>B8Ln4=alWfQg?w&elZk@T;h3I;^ zLrMy&d&%ZDx>`Esk|8<@BbjXA-8!NH zJ71$8GW=0bt^e+!x1Ig?kCRu=EPkn#OrJ6Q-2Ht0_9@@htr{eei68-}f%x z7pkL3yk4^}Qu^Kv6YzY%6Mho^aws6=odluhsN9hC^a9`e2w@_rEVwuHQ&g}i?Y zd2fWgZ6R+lJ(*^Z0|Wi`QdDX1B}XNKHu^Hl>vU8ixH9DRguI(W-mM|;?vQt1$a^H@ zJsR@17TGg01_l-TS*kP`<|uLtc|9TT=8$)5$a^s4eJSLXu$ML3$hOc?rNQ}*N(A2v zd5?#@ABVi3hP+op-Wws0BLBBO6&r`WEXM0^C$se>%;4LY^>^`BOB0;Ml%}3HTRQpI z1}ansvtD7^P~xs8egh@fI-!-=mCS!m=C2L2gw&SuuZi$unGvlf#TIx?gc#FrDCOT8 zEF+iYr2CO^$1Jl4PE?$`$Fn-O+Y=_-@e*51!FspfXivNE9WdV?K;gfX$U&Go+m{18 zOA6-~O7H_~VVuv6)K;kHa8%?Slg{FFPoQb?NZl>~i!>9%;W{ zZ~)K3OmGg}957*X&hv!WS)ofe7APB>mX9(JIj#N8BZP9VkIdHsde#jKx;R^P7}LXm z&l4!Ka`W|t-nwD)jaad>XNUPSILv2z^m36of@2$B2;lKUNBA)x9z*!!YKu_OI5d`{ zO`e@B;$D*u;q;30n&#dV&Kd4`ypShTHrdB1qj^HH?Vp2j#3`J&?VqO?RGSAL+x~gR z0B&yU**ri86!()TPr=L=;nwo7!+&N*pFGgnn)7xH{@#$Dzl`nTlx)kRs<#_nbr;7! zZ@1z4UWYq%-j4J{PCg&Q0nT;X#yoCLytc=OdpW!T5OItSPTe+UtB#JY+eV#bozv|P zYeoAx2c+1>33iL(bh?X7HS1kKV>QXyF6|`&nE^M*cZDv&o?{xl-!t>~ezn0eyl`uRl z4fL3(*qkkSsFCLGy-+rlheO`?LY__{wc!qe zvf*^r=n*FFbs_KGka`m8NOM=`KiC*=L5(!LogwcK#xr|&4wQ{CKjd{m*%%rgL?Y&AI zzQoH{S^E9viyFw`_==#8zqaC}?s(O(hBO-w5_tJvQ5ZHIfE%KXIIj0t-DT_a~$iFD4D)dfeABJZ}6rALkw+*x}3f>ML0`E@n zc<|Gp!tfLLZpq4vNv5hRp>0)*vQ;fAVW!WPr=0@Jv(=i@Oa2!hVqjFsA2{^QQn;&it(c-K+(7%R)G zz)nOZ@Ybp2$~vu6{>8yvUBUX3UOC|khkyI8dvie#bI1G44Zf#07a~srrM1F>FS|4@ z`|cGVu_VV?O`d$hL~~)n1eSBW9^e>V^Iia9rc_s(gF9`Q=)+e{hYJhz*mpG4%ip-W z#Uz$>FqJg7r-P{mnlRh>D@v}|Je-Z@r8ZDlpx%O!GAJH?*;GqK9~$p(!ss!tN+ws5 zlaA_jPX}CST9SRhRU%ALTJTOKu|01#M+3B+j{2}+YR$F%V>wC3NrYk456G2-9QB>v z*;qaP611FKayWN8&VFG!s(U?L$#A}t6YEEC9wJGF(Qs6Si@lr{8l}@Hm|93WjD~>`3$i`Cw<)aaC$>HV{ma|r$uNtbUB9+ z*rO!4(i3s_Q|0U{_w?0;w7dJ}DTWRaa8JyV(T6|#;%%Mx`*YY2_Vd>hnkJmkG;zZJ zVeehwtg6aC?maNTcn0O-fM}El9T4xsFu;JQ12PH*iU_8r&I~idO<*RN5xkJc1~218 ze>GApD!iqYm8F)J+L)$RR%V)(m}pocW@_Y>;{E=fwe~*y>@%P!{onuR^SGcudFO98#8JwyS3f6*f~jl>hSW4k$ig*x%c}%X!HnHK+R?M#okxq z-s7SfU49=_7*kXE>FWES!DwRz{-#U6aO%>kw)1^Zk(Lx<&ip05zqto(Uyi>D(k7?o z)4u!Z;yak@@$(JuPf6Y0cQCi%=Z=IwMDd}%TcKuQm3&u!x8lAR_~>7*gG4voKy(XVhpiT(iAa4Bs;vKrz3!y?KK{wf_vUY|l>`RGNo? z$*IuM@a48Aheg~=?sZfc$wB?cdr@9va&YD%KAa$k^9_C)9)(WNlPolFndF(J3x5<|F0Z`flQv zOY>9Sl}5E8a;&yk-dSrgJtzZ}o)KWOe8VC3&g9XCZ^T!`@84bJ(S4%x!SZ-rLeYs+ zafDd4|OB>Pgi+c z+Je0WZ~sL(3?s*X+-;{S>kA5fZK6*MmN+xQ_W6kAxhfWc(xE(SFh*X@jU|st8*6fz zJwZm_8S1j8>=~u^NHAHxDt9@_NG{oqt%R49fx<}E1NgBM!Mj-f^)`HL=l2II<#=k}gzvPR|&2x|Lo<6AxNg6Sn8Q`F(cTTEEh zM0<3@l^!u&WsC0tU6)Ofy|I)WsbzLLk#1EZH|6(OP)|AmoB^H)o(`S_UJcT(WNrdy zf!_vC0dE6O1%CnJH}e$uY4ADl4Dcne2Gkg+7Tgo81N9wQJt!GBfJr?itm&xANlxWf z0*2+b8hT`++!RKBNRJ;`K*Yt0~OhPunJrNB6FRol9>rE1d%as;DU_eYy#Cz$zJi!ez(-s zS4my*{=e|0(iUXc$qz9y1<(I3=#$3J|98>f|s3T;1_=o-c2d%X+m)b>rYa`PJ>Pw3G^|Dt4 zqWDoKM7eKh9B*dC(|$Siy}g1$>VYV}cJx##I3wcKM!Y+qG#6rSz|cWdaZu=~RG=^1 z9q){Yw+4#IIU%$sTvT!JlBZIE&hc}+Do>@%)Jh)<(Fspfaqyt0Qb8F*ILE8-R4P~w z)z?Bi=&9o15l<1Kr@PAzbWf#%c~I)Zdj)rRsyMjIQ>kDy+0)(PKsJv>@r;OfLBvZV z{{9xrLQfS3&7MjH4@A6&Bi>69@0Ey0*8W$&m*Hg*A1gduRV0z|s_)?mN`X7`IeW}3 zH`)t$ecm>Xy{hat-@K>ot~^`Y%Zoa?J;aD)WM}?i@w~lv@wZh5Ep}3MzwFl*_EdXT z{HYJ4Q}oKOyd-evWn20zRk2;K9Yqfnrtsk6?~vE<6NPZsHQ_pnY};^=iS1v8izdm)~yCA*BH9>M1vE%rwLOo;F+wJ;7h;KF8 zCvz3O?G3*h3ZKy15>(iImJ-uG-NK$!sF0LFKMH<3M;(Xd!6zfRyMhVY#&%lm?j@&% zZ7*}SH{XBgpyzhwm83&nUQ%?~tZia@-a}aHzPx(dX11i4+m>|A%QROj(J0$yR3+M{ zVdK^kJJn7znUY`+S~k_&l3);&CB=|U5=y=CNxe(kiH<14{ z4&JdI#MOWA^_bQ&4+$S;_<>%J#a1v?bGjGYLq62v?-v{}%SG4q*(Fxb@K6|}8HdYB zBDMUooS|H;%i)aXsxyak99NI!aL(dNJy15DRv76V&MG+SU$TDIDwMe}J>Lo$Q3`*U z$N704=ZPH72i^Sp7axl5gDx&^-%uK`y;m~t`cUR4=tmA^x-`B{8N2r8U9%p%#nvpt zO+sTq;>#p4c5Egce_)J_9qeqhn!x#Y8(o=U&F(IKe>Vi`SJoMSnWhL-pXW|t?-oBfI)9#v{mfXc7618k5c~x{4=&IZ%Ne9~ zd+!}4B9CJw6CB>Q``%$Xer6{8A=(f1-r*}e=geLE-l3U|>@}^61t0y*!@o#hDZkJS z^F-LjeU_Gn!6&Va8$Zthll!_9Mt&5}5gH?zvpuuCaxgRM+h3*A*GHi_$14e}ElWYy zYm$1-Abx6TD(o3<&!C>&7HEr|+cP)>yqIgH=MpfP#}nZzKl;fjk81aI{W`y{@~ANK zGlAduL>?O&qdbOD;w$FfCy$jeuX>L1sEEQojTS$nXMX`41^y4HbX)-@^QP*ex)LTt zc~kEc=4~Z(@>3y&k)I>@+2_L`HN-ZLNz2}64NLnK^++u*&RL{QUfKPNb8kiMl|yPyucK3=t9Nh`r`f!AjjDX^FXTnjx9*;`0j@lyu_tmz9ZUo3z!SkH@Feh3a0d8Aa3**y$Qfd0ck~qScCJ}L$lMK{2Hp#P8vF&wdV<*< zJrjJE>$5<$6*b^HU>&#(oDJ%8oqDhjI0x(x&IOZgOIW9*;d043^(A;oo6Ye$^|6GG zxIXNCs#LshSklzww#%zVh4n}EN$pDuJngwpG(WB@`9SsO4)QF8U|*5dpS!_PT>ltU z{b84p)t`I8q-;*&zT^_tpQLQ=;a>86y~5~u$MD;yOWC}Ci<2iFDXGMh+XN|Dt^Bf0 zkRH4fB76hy@%Be)myY-37q-`&OK0-C6;%849dIo8U9bwo(2?2t{63hJ-zDhWJp3qG zazCQqinl*|aXpj}cB(p~lbAGk>}?N-@57Um9= zJXALE_NNV*r{P@+Y8-VLs3CnjI32tkJQZ98N?2b2&js0wm$?eO0{k*~6?hA{8teqW z1U?F013nJ2dYO3{WIuwvJNh#CCf94he}i8GcO!l5=gVl;w+_@teSAQgISjlJECX)> zlRBb2$@O($?T^NOD$v*Yt>IUmusNVG@}su2S5`-s*4Hg&$MgsJB1Zi}5uv|N=%rDA zzBAP;e80S$SVE_C>8Gl?&@-88Wt3LRB_n<%H~^#$S(%LkRi7C1WTt}DyG#vuBsd>D z3S0`($D57ZDp2{J048PGhKwb*urjE&Gje2 zxge`vW{;h5b!H{kCxNTL8Q@y*WboVIDc}p>r@+61)P>Ae@HDU|>7b9!X#da|pxPo< zYBIw>tsPc091|6Z8mUlf}T12rP$Do@9(jGRm0o z#Dk1YTvsNp$0V*tC$2{&t}7C{s{&IY?@ziJ);m?U@!uK=(>uvYWu~(Kyyx-i#Ktc_ z1}DP12c$g+ehQ-J!Oy^pz@LL1ARlGhnEO}YU%CDbs6Gw*ADN@TC%_rtQ{Wu%PoVnd z_23oYv*1j^cJv`I0x~QlMW06RexURr*DRm>o5ua$)Pe#I=xNZJrjC76 zZBevcI2wT+t3u*#Zi|tSx~5MOt!i3x>k`ZuHQJO)DylsOEv{Qgffx7N=(`FsVg=6Swr2CFTD^fQs#<7dOOJmAR?JpTY)$EH zWEVQg>IyE#^OHpbxl5>%k|TPNDF^8tFKXNHZ)2t_LF%>HmtsvuHu}x>{MF!B zxV{Gb5s2Pp?gtq^nJu)hf=_Y%b#ODd4(!FVuLGq&*MoWsa}$^bzX9qDh?_x;jcx&_ zf!_qxx6prOIE}|_<}U`n$F=nAHc)!TJTdcC@DA`!@J>+gc76z=n*nLeJP-aD{5yCL z_zrk4*blwC57Z9VpMv{>o!}VoesC=K09Xw^2+B6)!{8UdN5F4@zW}wZ{`GvM#Rjo=gDYv7aM7Vv4Xi1PX)SPK3L)aI0Dz;WPu@F?&(@K|sI z$b4G6f-}sEgBQSmA@6tvIFxvY!wcJ5#;csclU?^X9yuiInZgVtj4*o!MuDw(xZ~2S zo+;YUq28g}*?N|!cCq%?b$~mphvE00T72_Ki+^4w3r6Ey!c@n?&-!$P-5{=?@pa6W z?R2b@)kf7>)kdqLsudsfM0<>0K5sLj%U6N?hXD3{22HEI2fdF2|fYRmjwHQe*pIbUjX+9H-e>L zQlIrsr#ER2^;!MK$CMX-$V+u4Z|tZr@^dV>dp`(sPM_^$K2vAK+J!@%cTOd>K%oJZ zw8O<7*GS6T)?Wc>pw0|xhR)SMMIl}7LcuhLc$;77lsDJGE z91b1~9t~m&!_Ii3tu?)(ueG_vD3EcTZ0}?)0LOrrfn&k1faAdHz$3tKf#`FFHa9pL z>;$X8pM%GMw0!|Olc5ch+%xE^tPZLFpYjW_our zsInukdHNuIJcPJIeNcNCZ{N`Qy!K6DRR4r~B=jLRj!?9r+jZ^R4x2NzG~r-e0|AW| z)Y4c}6t+)_;XSW6EjGf~VQZD0>#PfN11j&*8)bjB=hN3(yF_1`*$-X~craKCo($H3 z%ol^%U?bQ7wu5s(jSuF6^tHi!uoGMWJ_Mc(J`OGd)gCp2^kuESLGuW;KC9A8zr2IbxU$XAa zPcAv9y%b(@O-f;k`Ay;1Hz9w2;;6N_u}X!{$mNMXT=Lx$FYXOno|H|=)izF#qOr9O zlW8w_lRTd@|7_lRHTVg5YrsfIkG2^7}#$Hzo~rDmf3w-oELtZz-lJCRE)m+>_imqCkLx_SlFbbg=re5?gp zANw6}5`5;3HpaglRDJp(sJ5H;Lz(Y^cY{9ynO9n0dLQ^}t~goX6^#lgRJ)ie+FL!p9fz9UjX$5`Cq_2K<2$R$Nn2QjO&-dao}dK2K+lX z7i3I12loQEfP=ujQIdVY zAt2Ap90Gmu!M(u=V6q+l8vYg{qOcuSb&HRkU!nX)CfZ?zQ9CT$ zGuaN;#8w9sap>?Hy7z646Uza4m(fzI4i3m2qP<@m7`0I(W^Pjp%WpQdS3{@nP%qcD zu=WJkzode*N>HOC>=jIHr2J@lP_OnedvxT>Na;?OJq_O<#iv#UwZ@?92YpCAO#_)n zxXzu|#UneD$f$yH3fvisOml&Id}Ktv6blU6ELq&|R+w4{Y+a0<{-(K$F-6@_BOms> z8*`qgNY=sW&jVcF+1S9!VRo`K>ht0*bUqY7J>x`rx(~8 zq)oBCj@YQP_p7}@wQIYBYR716tR3qEGOq~wgBg%@zRWtX1Z1oe>;>Kn4gwzl_XeK< z_W?J6d;6QLBco29rcrf^B@DQ*T zECZK=Bfu3PeluSLE5NUVqd>KDtV3qBC#@2s4+v;0Gg6SFz^A|oAZ>1N3`koTOag1E z$E;UoTEJt$72p)G4LlxP4So_-hdC9z4LlM2AvhiU12_YG2Al~#56%MjMITNB4+c*M z4+YNxE5JIi3Y-ld1J;Ad_U1~`H;A$f+nX1O_Y;hy@osB3dm!KBTtZ_c_2Tn{m9Kh){+tZroE$_2Oh%p0);o_>%c3(J3#W5`7wAE_y=$`_-AkpNV^eS3;qZE z3YbC;Yr#FiuY%OyfO?am-UaKxGVpp(62Aeg0jW|Q zSn=+oaxtf)1!@-8Euy8}j~jbLH~iN(Hu>V+6UUs$qJK%y%Z??Wnw@;&2{k89Jihvv znJnTsZh_-Ym@#9*X_41%j(PIT8B>1S)rbfIT zjyH40tm^1VJst1Z2~$t5jy(2q%oApD6u=N7ypc|-z@4CA3+**}XVo-ETSA(aoEwyS zFNJY0^B0rj`3*J963jw>koLZMbmdE@m!YWcQN7|mF!ZZO&0pNiGaHvTH`ce%5AEl@ z?iTkNK5|ae60FP97P#nAaX-tJG%cQ6W9LAG_j||hFXk{czmGr6R-fGaiyG2<0NxvLFiyIo3hmu@Uw|H(NEkjX14JYQ+ zEuGg=H=AQr_JXsN8Xj?KX1CU#%}C?@Hlg<;pcX;w%VkzlYFrS#x)0CO_+Wd`yYi)n z|Cm(S8Wk}s-S(}h|CGpaKFX;Z`LXTz91f*2M{=YpaTrJ9GUsfLWQGP1T|ti6?F14< zq1N6X;W3a)RSlD|s~Gm(#4bGALv3j%KbkV$rR48_pJn{~{qoltKYw5R%f`Ueu7R54~gl!v^HgjtV=pV?NC1Jmx7na6adS53y1w&|%Z-c&=pR-dSiWOSdny&IiFi8g zUUyS=+CAUv5Tb%25mg*idMXt>9r4yjyy3gC`ePwlJXIVl_f#sl7wQ)l%l)1rRZzb) z-eaCh1QUqU+*70l>JP?y%u}i0 zS*RzC_q?Z4!K+YD7*FSZib|RFvELg{>sg{O6Aksa@igBSl?u{OzcXH`r>JF6j~TDR zQ>mZ|>bJ(5fyeGd-0GYN51>T^uxciZX(dG$>0?rGiQ(TzA0h6|D4Bad4TZ z&^0K1Ur-#}?S^OW=c!b%Zci6;ad4xj;0oxJs0|j&7Eht$d%FcWS28SivYrGhz7FBxxvr&7T=P=7Ptd7erIoluex zws}023U=Es2KYVW5Q>oyd zq4wn`dQ~*cQN=-TPf=^3-n7&o=P7C})LX_o#Z#%E4(eaVYxESg5lVBq;-JM-so;F5 ze;V&XPo;uA4hWyy-&3jJ(-E&G;;oN(8zSBz2ifs-6i@i8*u_*1Xy{8dbA{cz|eZ6#hVIu=P1z=mMp0|H$7jA zGU=fUThlCYrJLrY-NKCg+HzK%KKwNQLl@3Z+nRD(i#@}a9++O(IHx5Yy(vlhuMSh= zW+R8Bd99Qlx->6dExM(hAL93GXL>#tOL=nqzB@-b>n-#XJDG$f4&vTfJ&5as$(rOeE^2N$H&i26 zHo*2ZA{nAkw$qH^Y`L$jMpa?VY!J;yU%dqes;xk{QFe@9jSZ$$S#K<{EEuH z9HRVHbU$mAyGmkyAQi_TT?;XRAK{CP=->Oo&X>mH-px{-P zcw%+yL|2#maxw8JQA^m)5XvR?+#UJdQJP}q%#yLH?)J+h(l_trfTagG4e|{`Jnc@d zX}zO$GV%;pidmV=TC4@zbW2mZuAxER)B6owN-q=7>&~Px7GHC-a-^8mMyVWP^7ASe zPg_(@JCfy&?uBw@ftvMC=terU$Y7cuDTKjor~RqcU;wjcW9E+mr)V9N;UT zN^QI47fa(V)eBc=XD{G=gegZ@H%@dcbqZ-!5_48S3@sfQQ;qIJYP-HGM5$QTO>$;Gw>GO#z@=Vj2y&Q0IP?*bWu3=Idy zEd!pkYSt~G)cUTfz9kHZNx+i!X=_)_T00}gEo!e`{c!bKJ-uzkYPQCW?A$zS)wEl} zm<#*dH|x=hA8#4nQN22f$)#;KgP7mGgx$Ms#g?E2JBq8rG$_XIgw8v0w1%P{`D>r8 zg|WizrqtkM3}w0_gSF7C)S0VmcIHr)2EOn@dFPcMXW{u{@_L&-#Ni6K6KHUf<@SA8YPr^4^tx6a}s2CgBbYU-}1lt?2Ewf~Wf% zgRu9x>1iTrTTvptnpM*0zHXd*>SM@yOz73D-eECW3|A8aiWPexN)sJ27%%FWl2O%> z%i2}b)|xD0%GLYg&KAsaI_<(B={QfvA`12E%24`eThx@Ak=+GHzMjw|(MxHBGZhyaCP<%w8_&i*&HC`m?BA>TN7+Wp)k<3(2vj z6}8>*mpk;)mjjCz^Qtd?@#}~?2=kY}{9y+6U`}E%S_~Clg zra>f!kbUkusr2H5wG+wGt*sNf3HI0NQk-@4|9TNx1_HD;Wm0@)qtV){8qV?OVf=%?4 zuGQ(Pza;)X_f0N!rfS<>p3**xZfR?IpG!wcGbo-PUZ(iAm97$SezZ~)YI)HneXX2m z0E;#av!FSadW$yogZYx;*wjn6XZ7yr*49aX)LZt7b+LRajh6YKf!$mbQXKcY=}A3$ zTJMg2Z9k)->D}JfE;=S|y>`a*SaN!Ax;5*O>KpSoz2kTtl$x!wn=X>q>fRkzqh|GP zryu5m1FI*zZ3kEPD=dxs-#l{xgPNQ?_1;{imLNwWy*H!(R-IRLEfTRtEB)R*rntO?7#ch%|UmdFqP_|tDe31S0oCzn=_GI>JKqr-(J0;y?SGN z^-Jy5uW-gSXI3M3DPgvJWkLAzlS-X+->}eO4tiM04;U6~YkPP9J}dQ>pwE5P+uGh9 z+Gk~_T}<27_Rhh5R^HAr26@!D;VX|uM1lHRimWUjIZPMqL z9kVuuRiKbubX0Gk7HkaL*&@2UL$mSq*l~P(l1Y3e#6eZ9-neNb*PAPpsFuU}+&698 zNjb%sRUksphWldN^l#*`YT7Gd5(??__HzLX+~czWWt-UtyjxPd_!oUv9tE*ODSbfs z#1vLzZ&mEJclK}HXFG9k*nAox`rJ3Ml!C)oS2YazZXSsmL|G$5+j&!imfaq%UQhC^ zdEOZ5Mtk-8j%n-Lr)}`wT8{`zXVt7%!b0oa_V%{cT=`^mj=CMzk1n%wF!sr_(k$HE zW7D13?IyQv%Slz=cquUGoXeT-v{UCnmvbIe9mc$jAmMLEFj3%a5RFo_IWtt!Kd#|aof)qUXs`R zdZ{kE?cEi9R(?Us;|iNeM9vs0CaAufTC)Dy-dWl*l$$F0={X9XE$EU>#}Hrvx!lNH z;Wg(C6^XZ^HWbblodg!wlglTTURM1~E;FaKWa6>DZN>Va^#rvAEsS9zGw2!+-^?KS1bq8A`jika3qo?u0@Rc^3n-YY@=uCy^ zQ;J_J7&_W`1~<*t<6RYL?Lq&!c@O?YUPpH3DN0S-gTrH*Li1xzUmk~Z9c_IIX|qov zqb1?|q-&G+J5-u8`>fo|Lq3So{LcA{GC*FfLwJk8F=mcdP^xdYt#~_VEu~L*tL^QB zn2SU;DW;Nzn-*xm=4)7j@0phUKB6yNIOA=Jkw z?k+|SzCPyW+==5oa{6A|+ef$br_Xq=?VW?vJZdTyZ0-diz3G_sbo(r)?HYi`gtwmA z`VQ-uMr1+jaQ}?fJ;`3%xoC1YT6#hcc|uR?sD5JeaXzyx9BV)a%fsUOw|TfJaQ}{J zuf;1skq$6;El1Q{Y3d;{P0h}+K8UVr1Zwi^>&G8E9&khg9S{mMXCcTB+&F?D9JqCy zwABq=gO>elU4;`9viW9kv$-dF)IM!X2jnrA&wB5&S+8YQymnAaAO0WR(rt6Gso3V> zbQ-1eB+CUmYH~Dm>l+h>4Y0{ycE08o21321{kB5P?e((#PHa>_y1N{`=dPcD zop1DEl$w0RFqe8?KeCz@YcR><3>)P3t?q4cB$~qVxa?eXeGFn1OUGpRCebbK%G->cDD%<_f4> zU(FS`$f{gx+6gINV-)8eF3vEO#1M_Ssu+s+SxsNfYPeul6SkkZv1WTCt%q#7t2>QL zPNlFcGx3jBis+fPwil==Zs~_4!p;u%+wBD`A+{1lp0v8}gtRJ%Ad*(=;oA|>7JCNu zF`lq3mV$rM-F>7K{6NF^u)JE)+b#>~HG2j__IL_jYcF7uj~Li#;}S8&yg8-m5vfph z@3zXG2t}jgj>0cV7yK~6t5CLJOojGUk~Cc(-?pKkb<%c9n3Z$XbeR3`N8D{=d$g+0 zP*-7nhMv=Sx@ozU# zxRmdI^WI0WV#Ek(n{VbGuGU8~!K&&fq7e#XF5eR6jf<@%dMRv1La|8|0>t(~RAJLs zTpN<#Ix@BS2P*e)^@B=~wPHu}zd+Sw?GRY1CTsb+Mrx$l5c9mX+mrgBO(XRj*YYw4 z%$+7>YjEF9>@5%dwY@z=a}tZ3sYvTc-*vUUGen8dE;&oY8p*F?)*5#>QY5!cBg77a zYsTezzU?k4Z2BKH9bGqJkG8FNGzgQO-_LAf3#jCfFUF%=_ohsh)Q)MKNcA8xh&lqP zxpMLdcZ1DU9o3IA0*opUC~Ry-249?-Vp!Ju_W$E-(v-`O{>@7(kRPoS1DrhJ5Q zh=#XX{qM2qN8Ef#&mj6o8SOq1rXXh|ys3b>lT92Low_c#TMK3Uwi2(T_E|X>QaaG* zV(r0xxcVO5dboNW|KV>5S_j12_#>*H=(F+#ZpAWH7!^-@b?0U#!JT1R3Ry~w`iCe3 zEHHJpt?1<0*IGoKk%VIr-PpF`#-QbVMHZ_#T5FiyF>M_y)$ROWaZf>Ozg4qtjh@$D zeb45>u!Git3%Z#^S5@B{#>!jFd+c7iV_NK)?h!e@HdUf#Z7bFVEmIXhGmq7h$L2n( zrrjE)mREdwAJ%u|)2N&I{}rR|=YOYBdQs+h11KQJ8w2$p_&tM@ph}H89qOA< zC9=*I3^g8h)nq#ro>qf4SSYYPDm{ZEq3*M=SR0U4Rbo~r(rHvJl=|JC+K+BKVtNM4p&l~c zPoTbL{+@*DGzuFmo_8RW<9!Os$$*nQg5mh<88kz=Tx##mfyR?f7bk;nLaCPZ41N&# zlSP+H=5QHMi0SxtuOv=Gywes6bYLg_7C z&)`%j?Ih_LoB^fv!=6Dcl-8$u1`SY;8#NE=F{2hj{lTbasNWi;T}yhagw{c68s5`( zBe}Zp8a#dfQW8v0Ioq*4gHJ&nVg72NTuN6!U10vMfcmac>!8M)znh_sH0m}e7vir_ zM;Y($P)8f}W^{MYV(b*aD+%_6s%O9a!h{D~?#xu|D2lcf18wlm%}U zO}4vVg_>g2H=x{eABH;Kc)x-Aq)|^rcVC5?YP|QL?tm%@QhS6k4~(dTp`84VfO4(l zDNx_B5OblXSuBg8PB3a2luN-XD3{Wkp)R!$4?^p%7w)?h<}Fm zlet(9hH|ltgIaGPj)rpbn+nwluO!gEvuEvY1Js|5YKD5wsI^d^HGj82xtMM!PRFw{n)rb4-tE`|EOg}4FgVxxWwSd@On7{6OhEFSn${24H)T!ogJk)7MRYSQDHBg=A?^39Xj9LSAy7~J$)TfQQ1EEEvFn_N?ooUotP%gxPlJFU)LA_{qYoY#X)MudXfhq|uhq~9OA3&Aa z-MgSDrl4o=Qz(Q9^$3)UxiIxAiU)FcFqFGn2IXWr8;U^Ooe#wy)Dpn?y9~-n z{L4^Z{e3R%n^0*B@o%UhM)f2+F6_Qg`x$Q-)c!^t z9^KVGz)pB2!DOgc?e0{l%|=a!`iD_7psIs@wOM%6;SY*Yi(>qgCkdd;YX zP@9ZuhWeXPEl_V5wE^nuP$j`DP_@SUCsdtLTcKP&4nXiOzlTE2w!0Nj^+p{D<@}uh zbsM~r;7d>qc6TjQqfs|S{_cgEW4s5U<{I_u=&p7#x>&|S&9l2zQ1gwN0_C380=2++ z=R=)s)XM1Ym!MoMKaQwBLbc6>y4^}y1}SvP>Z2@ z2B$#XY`n9fE->nXi1%fvCi8a_)J=BxE~sYX{S@jmMm+-Ma`^<*jplC?)HS8KKr`;U{^)I_y3iYN@+UNO}QEQ;ejQSeX5~FT{T58mHq1CvHTIL6P{XJ=k5o3h8Mxl?CQUFj=9cSekXdGh!1p*c|-Puv2EjBkeTon4j{BU~R6Skt1XUIvxsx$B*T5Dn^=Rj#xa{ zQPyf}oHJTh9CJ8hWFIlk89i2(596FMWwLRY!=bzqoC?{hi}|T2FP9a%9L`ADoy*~j zmgTq{&Y0lVT+YZcS=5dDK^hw)PW+Vb9+X-4fLYb}Z(xqs)p+oHI6fBFE3zva;Z%T+WEf;I#y2Y|xiTvhj?? zsQ2Imr#u*+;EW6=Cpcq*nF&s1FfW&bj>*Owf3DpaGnN{sHKZ7)Vr;NFmous?xFf+C z6?7&zql5LioH6CWOL0zR8SUX~2~I_@HJ8J|X@#f?OqasSvJn+QNiL^+RFF<^Mh9gH zPGvAY!5JHzk;@q~CTK`-Duc^%I3p;F)d@~{aASfqD!47d867;5;8X@rCpcq+t+^aZ zr-)88oA(iv&hP|hbWoAtQ0@uN*q}C-Q&AQ)Cpe>m0a=B zno%2l#Y2Z@E)kb?LUtL;6ti>bfMyYQfV;H+-2xo}r>_^C3;m3W{Dho|d7KmSI1PE6 zC3&0`c^r+!oeQ6}I%Lq6x-@^?b9%y|LBZYXIcjg6pS$6d@yq&oD9_K+c^u8NoD1XW zi41c&gYq~d@;H<8IA`T?&dK9kn#Z{&kMrF;&i#3uC-XR)@;KOxPUH)#&k4?8I2m}7 zp}UD?X1^*Naz?>P6Ia%cMiv?sWH~2swIPR7$CdiHte+)toC{-?RoPsQHW%b_uuhxc zd_RwKe;()YJkDS8IPd0h`a4zQd0`5%E1!5emf{l}y<>4M3^gy0b6y_jk~|J)B?phu zXh>r2=FLDYt!S2WJDk^OZL*x7!l|N_aGV-D>65un#8JwAiJ#kc3;l@m6rAZypR)06 zgp*+^l;x-=-@pJT%lS8)vi@<7`u4soTxI=y0#0+psc|+zf;5wC8B@oMYiQ7fSWaJkIhw&ZT*rt8+LyymSQ7oU6NoWq!jn5}fe^vILm>_jnFzzE*3G8LCJTZ7$;A+!7# zhglBmYyTx981rlILD-Mbq+^4y+4Oj4(HVzj%JnJe3~sijBHqMjB^;- z@CMMd&gYa_6I zThdZrI%V4FFtP4LJOvb9K)2*w*qGlfHqQJ67HXyog}QDxl-gZ6^JCQCJVzHU?ss!I z8poS0ZEyJ8w{*^acGlK;P0jp8%{3Zy)z4cJ)R?(sXXe6RIJ+k9hO=j~80*>f^BU{V z_C7)@HqMXPvT>xDvvH)eXya(JYU9ZHi|dy(&hhayG%jpxX^bvncU*#MWZK!^_8c8@ z<1tFFkI%{1n>cq-d6u&#<-K`<=lGM@a~O+T7tJOQ@no4FjlW&g))i+-47mFn z=a`M(=+bwQ&ZoPG`HeBMhS29Pp3hUV*Yyi^vT}@JsmR_p$&giTb|cX)c=p-{&oX?j zvW%rIvHWM*Uc$4_ZE0NUGS@6s$81id#5LG=32!+&;qK|G3C-^Cc71$S;}2ptDa81> zLC=Y#+gvkeNh4X7@%$RAE&jnwaOyG96y;J%h7O+1l&7Y7N#i*ot!KKEb2%XpPbtN zs-UbhJ_i?HJM=5@vxqT-oFE-cuZ@IiT(=US6LrHA4V9&;zGYRBlwddKACXU;0+R3LJGh^nY{c^b{PMvhZglW|$@0V6b^*X<+`JEcbnEx)b zGwAG?9fmS2HYB=GQN2TG}+HB|Ut`foYu>y=eY&(;bPQL_N%nH*B6Ox3wu+*>T*hx)aGaM67dVBH9|lNvfFFP>uufL>yKdpa zruv#Wt&8h*1XO=tO3qj8f2Kb%6!+7U@5Ij{A8ax2=G|$5zlN*kre@A!bm7E)Z{SlS zq0lKExA2qPwURA2j_H)rb_A&RS>r*a^GNVtU_9^ASGk?ZyTT}b#Zwwd#pRvm{zK$l z-*x2Yy&v3U-Y4_S&?z0tdryAk(Oi|!`vi~)fWE}CydMMZ!}TOk>8=KovN#OBT%m(N z`-^n;k*=i&%lMTi^gv;BUvaL9O4(%5T;sBoSN>uA1fl$O)R3g#%Fl*DI%Y`4B`2kb zPEM^dmiwpYD(?&h&2X2v430C3n;~&VZ#2oTOk?Y72g@@9g$B9u6P5d^u{f0$$wBF#>iLI~Po=L6q>N?eEwevZ z4juqjfV2fN>z0`Wjs}$%=3#mAL1yN{tR&mQIowUw0fkX}fSv{W<+cYlCJV*G?XFxG z;<2pTHz?#Oa(a&P9=1KYF`PW;`an?6KL}Jga-ubDbnkwuK+ZKZh4rxnzVs~Oo6hPi z8*!}(w`S-4kNeR9HY&34Y#*J-^HI*<8O8H!=s4;YHu{r;RR0)BEpB?>lXXgXwsLFf z_l;=_dRx?QBHUxAOs(dlg`9(QcHx0J_C~yuv?6v+qRBrQXPWWzPpG-Z`1vR1Y%qTQ zi8$m46sG939w!b&jIx;fA$BzhUhxzavZG zFe%~ucia2{eCL?VV22oc%EJAX?CW$EIb@oYJ(kXbjrOsr}ciQfUSA? zrY+3ghs&>$?8C5yG`qPiwCr}~11Pi=G#{@+sd#$^8oaCUd)jsr$D0%JnxPoVQwf$w z)M_Z_?`sk78xi#Yl&VaLeG;$dlm!2d?&_5?wHV$|C@E}7a5$8E2AAfTG?1RqX{yvS z`0ssasAZF3;lm8$3ntW9mdhoFTz6RBhlXmV)LZ8|>Z&sXBJntPxz^@hpMkT==YuLPqrTD{?sTB_nCT_FivfKa7x6 z;|oaA@$H5Bp?{Y7v29%{4_^Ro;W@cp;<(9`1iw5R4;ik+x&>WCZ!MMyH*TouS z#Uwi=I>;RBd`?3lsad3nUT@6QKif%5OvBZ9jHRy`bj`x&*PrPPI5!YTbkIyyy*n>aw3-m-CBM%xmcH+%j}4am`s+ zH+QLVB>&rajC+YS5I?fczNo*gZ8g>{s`&@ z_!Cgg)V<)BK)zkdTnBc7H-h(rNj)tj9Sgaq?82=vrNX4~D?C0biELTU zHZ@hOq5JQbrF->i@|RkwEMaMwqT*HVa*J0($=u?Vk(-teTfDZ8cNuYpPO_=xVh?^7 zcqU(kWzx{=L6z^HL6z@wpvrdxsPg>_sPg5TF)QB}!FsO$24+CM3eT(rUk1Mdz5?D1 z{vG@l_$rtz=OWT`2KOW!xd$lcA!s@{E+ zI;$d6R3j-jJDvRl)zPr-S=GjjXnmtCK_{!{jk(oR3-cPO${o-1T$7nso{~W=UgG8X zI&zkL-UP>iZ-K{vSZv4~555O7bO`vaFH;Nt2b30W12v%TRv2W~fZf5hU=Q$iuow7K zun7DaxEq)(&kgY7<+-SPZoPe%`y&!-{0fuiC!E$*c{W(ZjTh)Hs<>f+s-^pH7ihN6 zTh7x$w*jJ-pY(qrKe>U(H4Uc01Hk=2)yGosNN^}P0~`jbKJr~P8NlyZekXKMUNu@Tv?7buJFC$I zkc$loR4JP4TIPMAnzTFh?`^7y>ffAZYgF~(Cf2E`)<`sR=g?^CdXc*f3JIm_3;p%E z{{Aoh^@UtpA-w@34S zg2#a00r}oF^B_1G{1Z3@lw6MolVz2ruIr5l`7k#gdRVNihI79%QC12w4BtYXHS1iq zPpsj6$HLisf@0;R*h3d1KT4aK7zOR=n^2+*qDO1AA_b(u;V?Hh@=+#R`DI5w`Ca4c z_qJ`jl!%ya?(E1%WqcXG&`CbET*TYa`ILcV*949SkxphJ_!)3AxD-4MYz1pTY}sVg zk}LyN$Ik=Rj$+xy+R+uD+R+O^wWAqO?dU~dvaG+=jW0<_Q&`sRiL(9@_YO~t(-lVP z6^_W3wT%?b(w9c*iZpcpogxk!)$A}PEZ@B;D~(1qA5g|_=EuD)6 zf#QC*Vu0%F?z(2#{FZrogP_SM)zGy9Qr5a=O02lwI{ZrV^-T*|(=P5elU5-NYhm=n z8@;E6^A|T-+pz|Qp6Ca}ifAn?X6#mCv;=Y zF4jkDVJLJek6JGF<)`tN9C~BAbrv{|YxKw757&azxtcBbR3UDs? zJ#ZfQLvR7u2`&Vm1Q&zPgH7Py!DjFsa0xh=G$5_aP>{@Krh@bvna_ggZRT?DJWv+d zcveQbb|I*pt`~tffo;PksryXJSv_7-vZb-hRF{g@EJNfo^YZyG-@|YgOr8?VCj>|P(9Tg z*=#CSuE;xbN=q%j6u)qAay9u>`mO;rZ(RdQv#$k9LHgs&Vc=S@68tJS5oBrE#@b&8 zmA7?ZQeMN5qtaQ#PwwF!dheg@s|%2SS)xr)n8Enn3mlmzFXdL^3QIt-O8VX*uHAzk zVJN=w?n-*9?h2o+?!DotU$z>VQ;pQ~ecwecPwLB2K#WHyk}dwKzNvMwrl%NEqqm;v zyj$Vu`Y-tyd%ujye=xLbVjP?6icOlkq;kg!-KKwXe@V`X9|?AT7G-*yMUkE z3xT>~vu>2>3vT3k0Qgt16#N@_5cm=}7Tg3@gD-=}ftx|K1+Rc}!B@d6!GD13z}G;@ z;dL-6Tj`)&DBENksB!(F3E3)4cYb^F8Kn;T z^&xb6W-UKGS2B?!FBx6G2`Vjbb&Ts>a;#OC# ziwx!}jWYKJA>(;Vb6v|Xp0{^>-rfV1j;&qf?UV4OH}Sj`dmd%2J~6LeD2)6Z$!|<< z-YC18D1VB#3)e;d@(VDx{dJ9^@;o^fq0&*ykE$GfzqyS(Ds4eQkoklFl-_p($AR5J zrJFI#PV4b!2$vkM#`U-|R~B725X2F>E(DQZ(0ERkbys@ai~OkUSxYfJX3Z%tf2xP^ zvQGCA2|ZRAHCGM%#&(fE_5^fU-m$WO-)zPQsZ)8*AbvQ>g6?#is#il^ zU#iy9sfEcWt`|ykEx)*4^hO@a2mMw?@ecrpgL{F}i+w=lk#S|7+)jfp7v?G1zNv2= zm5`gls63|g8<#6L$%`o~J3ri-5I(wcU5G7~U&R|bJ*$>qFMgBw$?Z!%^nB)o)(`9l zs=e4BJQ^$oPXHM|+gN=Vm~7V%=f2#|68v3yq% zZ|L-_T7IZ;^bPZY)EjD;~vXRfy4PzA75d@5%Sk# z*Ri%iwv|!An4RnajYX;9Ve=zcRlDvE`B32rdIR zf#-so!SliYfER$>kY&c{tT;0W+EupC?nawKnN zIamR9fTO`{z%k&>U?uoXa6EVq$jJs7+5f8op9Wd?&HMvA2JA`sOahC*<3QQmnGEg= zP677^r-H*k(vnvv$%Bn!!hwe75hci!s%>ML2f*Yyg2Kp;@_uxFowUjr#)r4Kvq8)b zD^%BGf^h6vpHnB)kuh+SQ;iCT1Debv-yUd;IoWwN|H?xxl;#BEJ)i!=)|5|{+~Cgw zHJ(2OJOZQ)tq(pOoWu1Q;6m_BPn3n7($)-0uRjA00hfZxHae7<37!km4+rOg7l0RlUjRP~(oY2! zg5Lu(p!EDAkaj=#9QY#G2EGnn3{qDE`bpDsbkp>l{xU<|l8q|U_bb6<+dhr-N@v1y zmmX=&Bh;fSp_B7?g^`~r{HhXqWCjvq6Enrrg^Nv9!iBeRmoaY-16u4FeG{Y>Q!1ok zWzJ_>*51{|B37Doy&J!o{Nz@XU#0U)Anj;yHK=tQ>a4YUYrt}@uLZ}0Uj~l_*MiF1 zSHZ62#VwoT2$S=7wS&oer?er~U=qIxx$^n|FKCiIm#)o|psPaA>JRU3qPXb4RO4BItE^st>KUfL=0vro&0>^6& zZ?cvAAW9qdE>c>b#JJktMmFnQS{1w0R{fCdGU-}N8llqaXjahHpM#6Q zhrpHK!(co3OK>gtEAV>oQSh7KuR-bjZ$MSM--54zkAbg)zX#s|p8$6!jZcDmgMR?a zz^A}b;4@$~xE_@5KMS4?{u$I7!*if?{{>KM41WQ?3T^~7-gyz!c;~O+9pENVbC;Jv z&22V=e*#|x{|deaGKbN^Plh>3@CI0bJhy=Tz<+@Q!M8x>2(piz84bPzR)Sl>Bf)JT zV{UaknNNZRUDS!UxvhROtP|?X)W=GPC8MYLCEI$1k)N0OO-j}YXZT1}A{=_*EAD9P zcZrruH^ZjcJv6T5wLJ1<_gJ;zQgSIVHqsVZQ>>;}I=jL7vH!|fEx*0_J;6_|5Sb~j zJ;1>r^P9|mU@!1MkhK_lSDXSTa$O9nJ>DJE^Y;K3fUMPIn!&!{5|DXO<`QsE@G@{9 zxCYz{ybc@$-T>|c-VS~YRGs@ccpvx)P&&=LD)SV$AGjVI3cds~zsjh54gmiJmhubT zUm;Y!@iLE(jkV~Q{JunCI zmD8>KD zdt9~-x*1CJdBBdUVAej2jiuvn66)<}%I`CldI&dU-J*ah=o4_gHH$dg%7BDHBS@3sOHVUKXD{WJvM zdKbERNPkez-V;pb=OOqCtMtnyzfoTUFF8I_m;wBL#P7sxe(L?#&Ry1oFn)qqXY_$; z!bREA*21OQ3b~76hcZz69y+C~mY>?727Ypz4?moTC}aW5>( zH!hi9U(<9>K6C4R5lv3e!`f#$Nk9qWK&B`Q*+~DxBnsZRT%db3V^TN zc`~0l%8F4dWwk`+$7)*m^0}y=bVpq$)`+lB8L6y3OfBl?mqA>WROlguUM6`Fx*ykj za&4hma)*^PlO$71?NkVQ1mEyEKP?0!#K>~Obmd3SJ}}aCJoSc=hM`v+Ewrme{ro0G zzEQAEh@PvxYyL^Jj=x@FSVcj-Bo zJF@;H38+?DNLMHAJNR8_6)La1+}UBB zzu152Q3u_5$^&2Be0aYrmwwmYjl$2jL-m;Xzv-GeGwvw-`?L4nFl^hGS6_C6z0bgZ zzWu0w^4y!%S^OWf6ZL=Ix>LR-rjKGa$@Zt$|6ek&6VIgAf_@kGii)>`&u87O!v3%D>wJQqWC8{Dc za2Ba)#jcBdL|6wtx`LGNx>SWZ4s6b)`HO72ozBqf7U=o>u+ZiyETwrWWh?u-TWs%v zMWyW2!9`HL>?A=^#laKwnxazrj=f7P4lNW$f8nuuWx6R7VAyEQK?`8 z)HlpuwWm^chM#)|E2jP#tmE5Br@ic)xy2S@o#&-wA;4Bxie($Xs8sL|sPCA+e|jpV zo#w%}jn|F2iKtYtJJh#~*UwYfu!C~XxYbiwkmL20WoyuPz*(o-^-p#1=`P|Sc-!>Po?Y}F~_?g;uZDMCwxl5OivXDr+O+C zTnnXHSaI-GPmvF(9~kdePo;t%L4DtNKk*cKLp>BT*6}=rT|21Hz{9THZjNF^>8Vuk z#fW!J#JeHl-5l|5k9a?dcn?Ipha=wlh_@l)HKc66ASt-bQ^mm@o=OE=L&FG<_hHjw6I#NF8go=S zuxEvqX)s6i17mJ!>JJ8U)cBKJT8_aSRgj^-9Zr=;r#mFZHbZmNfWgqFEv*4#{Vwo9 zlLmt(4d$r#fW08895NW%D*OavpsgCrQOhl@(bBH9w029|YH8ao?LkZ1X=w*A2fJOQ znv6*!u{1T+V2--Q(mE~eQR$_(bHCoSzMOXCZAcS?*(gQcljgQ2Zj+T)gX z5ZI?A#?)~dOH+9UbJSgyc8{e!VQJsAwAU={bxRwEhY5G-@)``~H5l5yrM+NjnOGLQ zTVgCRSeja9FqGHQp0cz-V4s#4Wmr}shCan$j(XYBzH4a*EbXAB@icB7chJ)A!6T2) zNXiEd2G4IWN1b`5eD8?d&M}yyrUK*h3FyyYj=BWcYeKu+V2-*1*j}Mk8_ZFQfxRlU zr3S-3roi?HZH>Vk)eh{tLc88zj`}39-9o$FV2-*ESg+7NZ!pw8uw6oX++dD+4j9+& z)6|OwbJX{Ny&|+97|cTH3cQ?R87r7p0wp zX9S3ms>V&wSehDdFh_-ey&+O9HW)Mn><2$z&^~D}NA&>v zzR>PAn4`u{bn`vkV2+w)X_r{qJWIRM(iU3U)t0u}($-m8hox<^v}NbwjV8!~b3+V< zJz5Rss9ym4p-B3!!O**$r(>k43k`;yV=Zlor9C!DpOt}en8Dz)4d$qp$vQMmMGWSs z{lM-MS#rvkyKS{uryU~Fh@OTX*(_LJzx(=9(hwVmZk~} z=BOrM`=q=Z4Cbf^upbL;v%ws-9oXAK>oS<5J`3zEp?%I^j`}jN9|`Si2Ezyi*qcK8 zj=>x?ZmKKGc!N2r!qTcNt-;dPSlSC0%6IRmLEkiurKxm-IjRKMPbIgx26NPWVEcs@ zGMJ;50sD#28Vu&Bb-?~dXw3$5)DMAuPH1l#%u$&axwLG9Icl<{O|`Urd3eJfaZ}a! z=^9H@IR=ANzQH!KgE{IBU|*CN`wf<+4j9Z) zxwCXAY}{auS^{jR#CXhLY3gxAh3aJbRJzLsTOT(ZZJ64Px8~R1$tCu-T=RLFc z&&@x*{MtfHX;kUOOG0gpt!+yh)^5lzSW?!!QdY{_mdtC4l((-~(zbd7Ht=ZWM&v8n zo7OihF?+o)DdUcoOR!1#61?2vQm3^vtWY0LS~@AmKAAus8h!~V+3nuX!&P$iPX z!nr(9$a=;SbScsD_EB0_!xClcI@D?3T4BId6@AvLkdcq11Wg@ zpUC%WQ}Uxr71as#d%WaYX*Jz&T+3@8SLPTC(~m2??GPus$i_d|BWPo!wRwGxeZ*+& z!EM9lyHney2@ZXl-u0Ov7bGI+w$y8@5( z1fF#BOYROl7VLhbwr4C8l$;h_6-MFm-!R#(@f2s(U5RAF#f>-1HL4y2?lZXVGxh$t z+!;m6zaHhk=Q&J#M=gK0E6?!qXM4+km6ZQ}Q+^zZ&=q*Fr|SOs-J#6j8j9d4T2u>F z*}~un6D?Fd=_dV;wXoi!g^_e{KXi~jiVj%k?j`zIvH%Ks5<{qa*fwqmUtAEake}rrxad$pV@lKaStQ#%Afb%t8i&suFwzwm z?A$V_+Dp0zbdaIrI1=A{m)Sjyq?WEqXOslz67@UdU?X`nCmKL^V9;%kFn}SXR5ds( zDI6?vP3Io>oDgw#C?U$b^#i`~zOd)TyRft5bNrTVxYy&$tZP-zc5Xgtvx0~1s(KIt zbcJ@B;vTDCxT5D?CI!heYbC13XruNW$`%GsnD~LHef%RouyqfM=CSY*{UIfB-_{+$ zA8!4C-*7-bJFo%bbJw7Dhv{eUcJ8ytYwvb$%cwE#t4JH`+0LyQyS8)dMd>ca^!*ko z_Ee4Qsv7JL4Wf|QwQF{gvxl6nm&<&fR@$_ilhv;6cOmxH7x|x@ZHfJ34gsp}9+F<& zb|Pac*e!`X1SezLd_+g>bnc$)dY0s_?cBu?ez?1QTvrc;219qr_%0C}{-%3=Zr8mO zyz@nJB9$(r_bdfj_nPXym&A;hk{$F|ZD8-beroonMokXta_agt#o>OIZgH|>igO1- zw!X;!JCU}hI3%GsjH!C=CFr`Bn(Mn2e4Se|eeLk5nJKv889SS^KW;xstF5btZ2i~t z+)GvHR-?t(&Qx5p&3sO@`le|0Ue@VWso7XDwlm<>ZDX_;JtBsr-z~!E)TO)bp|<9C z-^+Rrc8ejvar@j-k00)TqfTk-9-7uj_Q@hpB3{gVr(l@Gx2=xd7?cFri&J}Ov}YOY zq<8t?Iv`+INwO4p-J8&t@6|GVi2&*L`ZJjzSoW4=3l{M0EgnbBNGO)IO=vE$=pjnt zAJgF<2ef~TbCakK9>;{Cmp@yKoI;djf{^i2eS&ZMk21EOhfL(?rS9@%crRaf;*otE zgbj!}>w}Vxw4W?uWJ3!_I$t}|_aGvP`K;Sb0dEft?LcxU(B5Jx$kr`G9gs8Qj%V>7 zH*9wqpZXgAKV3EC)&-7X8tB|IpxVdu@l#!(iEZb=Rlf*6@j~*?^}*>zB(y2&rT+xD zS)Azv{|)zgN!38xxhMvUCkHWgXC3)bv>1>vscLYC-`D?rxb4sYnz*lXmp!^EefuuR z@CBqQj03OweX3tK_uhBC_0&B-6EQPhs?3C|9n#8#42ad`&y?F-_cj+}Tc>@J5XZU1 zalFOgw|sop6*<87mPpO^=VUw`J$xz|jX48JcF!N*xjO;uUA5!UTl8N5+FpM)tPfsd z$aF(v5H14~sjkjF+0QZ@JxjXBjI}NDKkNlZXr&*Cq~QO@DD=xLG$qRI>`Q<|T~|Qx zbf^7HA&zs2<9JJvav+R|o9;GXuek5K;#T=Oug_GQSew5;YHdn3nQk`JZg)8~nekGY z5n*sc-UjdXu)58l{7|(pboNem4Kd1taCiO^pN?q?kyBBzA4eeL z5Ut470;+YSgTjzrd^)CHtUUA4dd-9h^%7*gL@MJWK_lLNV@Cj9KX7EW(a$H)AVzO6 zFou{pRn!{99%5Av+q*<6+8R2Yg4*vn%&;wGGftK&{yXNqxdt^ncB{eMw0Aw4z`Pp@ME~qbpRC`rx6-Lqrw~%wV0go zscl-0q`=Vaz8zJ6LGR!DZgN*>5Ze7q=V0DVr)RuW^_R}S&b}oxL&+TuOdg_FK|{p^$FiY9{pqBO8b3%O>EGC z!4cc6=wmYHJNut=AgdYbi0X=Que*miNP#1V7=zUIIw4~lw#|WW9s0Q4>H8LjUw!|n z?~k;fBl=pKg8G(mt8pQjecfc^4l{_RZn_Hp&%UJ|1|HL{Ky}=iHajJBJzZtpS0119S@P1wx0VLJxOtIh?#D z1gY|Ff^!?1eRBc+`vsqS^JL)51z&ZunJLhgy`D3(@17)NHC&7R5B4ud^a+s*@PA2! zj{Ty@S@^#qG7kS&MNY>5jgfTxZ>3)yinNa%p*a1c<~ttw_Mb9B&V84_nM-S&iZZ&5 z(9><=t4{IWRRdk+#c@8u^o;@7vaj>6u!DQZOw&&69E8>zcw04y#;b?DLWjbimf9G! z4Yn(Auye~nwPhmWV)@4OJMr4f?pvUf@7z5Gw!IZG_HzKxk4nPLk)Lw_@C&I+Ef6Gl zg0~c?Bmu2BW4rEvqY`-ve4um70g8Yw|4@P+(!#D{?KZm)8!|y17!`~`1Kf%j2k;SH zE|4R?#LgZt$%9+_C|2(~IFa%|&$cXn0)+DQ=XO^eKodAPO5w)!U5}Leb4KUL?psKX z87wz5J)dP}rbmr45pjA#htP5cV2KA^m18&(IXC}D?d5Bf5; zpNTpE@3f3+%?%98Npp)2_$B1Wv}QTOLb09)d1Sv zP%wUw4g>>fj2+HIiH~B`Vu}fj$kF@$u99N7i>@om@^|%>XhlqGU&$p@igAc#!@`bR zQ(Di%I)uJ4OfPPzdh|5jfyM(eaBpmH9=TelNH7gbR<7-=H%^+9ub zSIbypsf;Bqma)Xt_LGnVqIH$e>ElLLh%o`qU#hFsV_LAT79i3&TH zF@1lblpok|H z$~ z+M&nEP-pR+;Y+VFE%MC&Fl9jbIlS7sS)0dXI*$3p@&Josch4{D;uL6aaj|f+AZ0qv zkXg```CqmSGd_pgHd@awl>{xZS$Bh#x#(cb2GpZ6dRxe=>^4Ly^9hp>c^g zr>pAl)-8wGTi-I(AQ5=#!$&f}`AybIh}Nip16a<0im!as>{xd(IqO%`jl z*c$Dl_1WVlCLb5{*NhfWxQ51saj#5VqP-ow=qxvASb6)$qmAk#*13q+J--Npc%;x( zi(2L*h)mDmX~gkS)Ow6R9p~E5p{~FOUMq6TCOM|ULijC6d{;y}yAtd6xf)SIa#!ik8>c7|I z9aUGH(YWf0<^pw%++lh8D^$YX;v#A+zK$@G={%U+exbIzt0TEufEy!ctRee|4&`QT zb1_S)^iI~9ER~j#*j^l8KApIVOwx&`#y1I%^7xX)SUf{g5%h?e;+=B4YUvn8Te6h? zYxsB$tsnJ*_e)^K-M-tivv!1JffU1sROwi;ydvS4c7mm=HW{nHN8E?59tU^y^h1N) ze%~b}$*s~`W6=OvLRy<8(Q=>kqJv#m_(sTs>A!X)?)l9K&$ms1km1&3*#0HAa^sQK zrO0uw5Tu$pkM6z|yO$`eh~Pg$*{gNm>cb76;xQsje&`-FyNBOX(R81Li%{et}s|JnPdC{8{f z5?VT(#g_y-6_}QQTLpeu`0{`~CfFQcUl9zOw!88HJ4I+W05kFdGWO(woquVTH2ey zZWY?kE$!F9#tZEuU^-=IjQ*rETa5>Hm4u!LOs8C6v8BM?mC$xz9l)|x7qByh_Gw^R z`klbe6512MbRK(v?G)M@z_kAQfNA{=0@M2QrRa|xQ`CvTwEjK;OxNlpU`8rn- zfw4v6gJEFL2(|^7mh^vs@zslL^><(k1e=_S>4ISQ06SY^JPIrcep2FImgc6i9$2o#xDnWG5_%^v z9rt&ZZya86J6HJ51a_Wa6M^a6E(E4yTn%iJgf0U%S+G@>uf_6hw%8rOIM&NnpS83n zfo&4n^Op9u<@+PBJ0vveL^t2@z-|}Xd6qWc(v|_+ETK07J0DmI_NLU^2B)Y`0@LNV z3z#m)=PmYAU?#Vd+|V$ zb!aaze2atJ_F3AmfXx)zN0xRPI=4chod-@~r50()7oM}X}T>@i@yf;|pww_r~K`>tS50oxmXwi%eV zjn7*eKl0VIk1clMscvnZ0c@e9HvyQI`C?$pgvJklH7#iQ7F*i2z%CKK4q&<#ZU;6; zXb)K0cYs|gv|Ye16YN!Bor3KHrt?TT4FfgMveg7&cM3KOm~LhBfa&tKTI_C%Jqb*g za<`?uV`&4xZj$uagk_&K*c*aHfc-$Q$APs2 z%T{}UX^VIpm@dcp7#wKnuLbrQ;d>C+J%arVm@d(nPq@-&1G`Q_&jwZuEJaNQwpD1w z!2Ck1u(ajCN`$u7(moCBE{X9CV7eSR7!vFd+C{+H1X~D9hem*D={tc%B(%qdz6~r5 zv=sF#U|MTeVsNleXq$lDBG^`7I=$P0r3>u=U^>Q=z^(@^Tm2H)O2Li*YY;30gM&uF zP6xJ1u!+D{3pN|r=L8D^`@CRbU?&1gQ5%8jJZ=C6mkL^!r9A^oOSKEwn-aPQ*pCEz z4cJ?Py$(C^ zSwf!%Rwi*@0jA@=3v8`~egy1h!Tts;AbcmB?ed)k>|P1Y2d4Qh0XA3ouCRPz%hv|% z0g15#n2zxfuysQFrlq}Xu^$4{dAx5im4i)BC65eXTILDBnn24|(}Dd2Sc)nH_K?s@ zf$5Uh0^1K-idq8fr-E$6EL1>6AY`(Zzmm zG0cIVMHYCAF&Y1VF1Zo=6Mnh)xfdn(Ufg;Xe=>dj5O5oQC7umt$;&w8!JtoNqlea) zKa6b*@u?tAj>GJYG zs|J0ot(q5rPm8M>#v#w;`2E3FO+wp7T^&*lOmq0fYT!vF480aH!zJyjRyDR_imOlM z;DHc^Rx0OqlbJcJWx(9#R%|1R8Gdv-`LMrrb!Afv`z6-Zi$| zBM4<5hhGYQa||7moDP=fK0x#v+M4w$u4-bss)=D28xx97 zBSG_FHwC^3H*8@Di`v<;sLe%K&-!n-uk(9}-L=U<`Ad21$9)5|i{k8oamM1el3{K{ zm2lmt20=sA*Ksol)*nAf7-kUFv>am)+)}s5)f^ALP1Tk$B#2j&kn)X-2hcDY<9h#PHFuEFjJpw@M)Yqc` zDXMs7^M;mbO%3;5lbpa$ACgq@s>bD!X?b~fCt&w}p-gLN#a_8M&>9yKRY?hXL}RXL z4g9J-w~oX_{E`w1%CNgP+3jU`>PblAFQLVTxyUrx%v;}4OGyd8HX@JvY(HHFuH3qL zMKkhd2`)UEGGmt5mWPr*U8ZCnNv)@Je1kf z6%VWPQfBZ}*BDBHoYfWODS(9aF+2tNGkC^jG}f%5yqP?WGKMl62Ry`3rsv7288+ov zMFlf?Mx-}ZK_O2y^ipO{SA(&X!dWU0=HyAIut=6Yy_DHJ<;cr33p$LU%!aiT!{nl| zX6F^D9kCRY^!_+XzU*1&i3QCcjOCd%OAW?Rinv?2H?N{uDmRvb+9`;m6sa;Vr6@12 zfIDVK(*b3c+7?GCk|jwH(W2Nc@}T)$u{=0@=wKWrUmb|0%z(9wiOFjQ+C?m7W|4}- zQD&>VVkw1r^j}_?3#Y3?v6NW_su*oLD)V%lhO{V-QlOT_QD&(%u@uxrOB`jU+7U-7 zQcuQGit^NJag>>Azoks$hdH?$HbS8aV#ELZc_N1Qu*!Q9e#co7E-w!vf`>j9EUF>6 z^IGlyy#6p%cn0vF7%wdQL3qlL5o7c64NHfTBqgw) zp?*(T`NI0)>0k^29=>$p%H!A+8B1R|B8gHtE&-6T=_NA46ohF?C2!58DJ$JuKuv*S z?4>C;+k2O%dl==bhT_<~zHKNzOL=)%EG{MJ%axFW<5t0t0?7vK#48aZ-!C$YDO%NPm2YjE8*$GDD>#Du`VA* z!I_Y8JnM&1whW_m52HLVjPj_ZDCjVZJ($~YT3=Ki9v!}NgF7;DOThnpjnxU_w=7Him2_O@VJxampIjSXwf^%`yPBdiAgF_iN^QZ_87^AUp zhMMd`8KvNqG_@;+rwSDAEE(ll1WH~EWi2RA#!ztjjLO8SP&C#ZpcKbY9tNcr>jY7r zrx**v`6%TTP`Eo`l){I7yD(LXQr=;#GrW|3P?p6|{tU{_7z!T?9>h{pG#&2R+LGg? zoJGnxUdjcaESun^6oRrVhEf7b&O|Ry4Jdgr6r6}*F4q!x+=#wh%BO}={$m*Bi5Ln_ z1(eA|4qBb`O$rnl26LomDKnW5-%GNTLQ;yo6iFu+wrF`IovB`mq*LpqNIGR+%50|0 zJ$G$7k}_?`QY7VuVU!}2&GKjoy%b#vFGW($la_-1%a*;!OOaShyc9{f)=Qa@2buSw z!?n3jXEFB2P$+bQv^bO3bY_1z%7YEIa;MKyOQj96FGO9;WcDv$!e~>*TtcaxUJAy+ zcs1b^%_Ffe4#orN7z%TLK8C{FcgIke^7p+I%p9-;8>LV}jK@MIcP$~)+2)mJCiA)@ zhC+GnkD*KlfYGYd z7Z;kXRvAgXHQtjuvr@nJQZNpNCpEF8>=P*|>ImVz6_R{<)|anm7XA1EB<@k&(FS|clSE2^&I9UL;oV+dAgqUJ&)lPi^l z#w9#DR=th|hdgSmvrH`Ek@zzWg*Q6w@)$}Gcj0ijwUL|qgj<(yT-}I0=2os-wY+IP zj@Ln0(}or>$O$9lJj!CJ%Nt(45@|Ixuh56U81gE8UaWhEUTdYB`YP_+=H7(ON-P#A zHsFkz>)Om3ATW11FdW6Sc<8z#&Dh!~EC-gDvm^D5K4MSf?siW4j+-W#7_v{2rs}Pd zG%njEX|w?+@I{~w$pD+RwKlGb$xRMy(xE#0Fh&<)Z0Z%>*enV)+#*hRc?$~Mz+gk> zSru&_e1!*hGa}C_>=h*<$k98in%27_$vu{_*RQ})K#F4-bEb`)XzaN+wGd@kxgI;= zd1L4UGd)p^wA`D{%h%G}qJ?Q8FSaS%=$19yyb0AwIa_Er&8;{FsVNdm;o!@#NbQ+| zwS+ftJ42X;j=rk3(HbF-%~%6bZJkTn?tOUE@;2`^P$ zbz>;p56g%s0znk)OK8M3H#~TaC1gN5+6V49?BeO@8Ux95=V1{PaiXlmaAFeVL3x=9 z%V*T5!g>=xL};SyVY9QF&JE``Sw6|01ij^#kp~2Wc@O=T*joLJW~$$NzHwOJxUELt znP#JJSQVlI9-Sl#Fvcag_Y5|aO`D*w6^DcMrQuTglR6$zwE){$;x*J_H1Woj?X69b z>v5140>dkto7Xip78jr{ZHz!0%u8-7U_2$u+h_+2ty|L`X`qGWO8w`epD-9a{pE2_ zVTv!Ge);7`^IFBlvx{fPWn`UnY=%On7ls>*7C=M?Y1R4&POE897tNeCE5~z9pIK0p zUsNy~$8p45)ARBQ3k!2{rWegF$d{01PGy2mJ$}O#OC|;MOC|K$-c?xMbCs8CbupKd z3BKq`EW`F(jL`-7uA8Gd%K(a1W{Gz-mLVXRs;_1trEGP-si_u&QZg zYja!ksz}b{;Q2Xx61k!225uc&igkW;6I>bk6Mnh)xtEKx47{4hP>a!XrD+)#cuq|v z595#@12wfyN()3KAiKt44@=#2QLlJP$CFbz4*JH)7;)5-pAS#mrxafY)qT3g5uAH5 zzq{~*u~^wpO;jCB`!qnxfiFphoyo|BJo30Qd;laJcf4nPG0nobr%sH+@m3hW&t>AD zTnW&@hwylf1P%y<$g)>}z-tpK(=B_8Cdq%w zvmZaM+cgLUXD1^M$~Y)_DfKr%On}w@2Al@?cfbO`j{&9OC*TZd+$R9e1H`9t9SZ=* z0J5Auz<9f;C7rzZ@hXH}U|Jye)Lj>T`Eho^IOM6s@6M=Qpq~gwn#1iFd10CTADynO z6~~8e@-&D?ySj>NvPZj8jowpr_0zU;P~D5NP;Z$0*(b7j&EjW&oT&(N_3<3^aT+wld+Os2g!|+4!8oTOjPO%YeX#D)=QnS_&QKfC ziM54SwqD;7XLb}F;C789UfbGy9bN_2C$}%N$pkUdMrZFP!-nEFYFGg#-mf?JYs~$9 zare99?hl)L%F6gzs1#l-DDU}!EH4V-d4lUkV-V|+HpRB~9tpUbU@NTSwSZ>cHPG0TH(Y?Vhg#cA$OpHRg`906z(s2e<>U5D@LR<5IwGK%NVa zygIm++yfZz3(y|qqOJ3a?<0`*FxzJw^3xyPHInVKx4@aDm{`KN!YxhOrGndDZgwDe zT`I`ddyX~CEw<7=0;Skc2`C5kgXStP!vgTtybdP*03af=-0>R@#vwua}4uTl*9!%Q%YaQ(9_o=uz|!?CqBG;eH_ z2Fv!@4uWK+4VyY@@#IJOs3UJ5gYt-7!}i3k9|NRaKM6P!@SA|_Tb=?e0el9q8t^-S z^?)w`UJdvX;5C3R15!`lJ)f`9r)GT_ice4_71d?s{_3*IK>gy{KwY>jP#dT&3sjdb z#@7w0S^p)~T3QnfF9-zdDzKw{mH!If&5$&<*fi?u{q>=`@LVKUQ9UmhsH+JDO9S{C zA~lOliIS0FDy^xm4wTk|4~|ENCwaqzfwGFAVK~Jib{V;Wk9(aKGDlnRZ%4d5oO~6&`j(kFPjK7x1ut@ad?#X zJj0vei^Is+HwtJI>2l7BJbmDnH#DO6@=<=BnFx5F;op-Y2|#Xpr@==dy~r+M2ow zR*k>D9=2xf`wTBP>bpJ=3aUg-QC(l*uaBDBnO??< zQ1zA7XwOj-avjH6UN-F(*ea~!INKW@^e?mmxeX-8%Ydp}w74u#Z=6ex5&9f2kH54u zP+K4LSI-O7*=#0wIZA74uB-@z(c0?qDU2@n#8`%^T7PMMxVEOUqI7W>zAR9&AW&wT zT5c?}PAybh3%6MZHrFQ39f=KoHV`)IvRXfHR8CzQ%Q$IN#$ezIXvH#49+eR~tg5ZY zw^6#_=a0%*8SvMYW9q8;E*O=M?ss0$Uly?1p5o;-N-Pfs=GyLLY79euZMZyu_(5A6 z7kb0%pjGx zwXWYav;r?5y+EaZajZvoyONn+&bqqF(4sIJZ3&#zl_<39Tnb~j0ztUHu-h=Bxx3u6 zVz{d-=FSb2g@<)hZhJ2Bau*hqRG^s!YdGSl!^@poMKL_+@9M4L%=X4c9LiP}&a>ec zj~G7PhF>yb_zW99XT8M!{?0{9zeIBn)L;A|5(UeTo+zgQ9ZrT(h^)6 zCfAvUFHvY!ex37IBxWdBc@@TWVfMI{80VIjS5yb^J#=ao!xNMnUV--OuMX6UxiKiw z2Gs{c@Ev6~Qj!fpq(G37&OmzK@a7i`%)_W#Rz@X72HMORSbk+?6{4M(b&s8;#4bu= zq@JF2G7B#k=Na&I#Vk7|)mneBE)YhKTvJ_vLRMTA!1PE5CMq2`H&}r& zQRQMAE6D`Z1xiD~iu%Q2=)ndio4{aAO?_ESX{d^QqMPIx6KDg*n!Hj>fWNx5ye6nP zFr$1p{Z8bQu~Z;jQHOpmP*>`&)jb1Qd~T8)_Xvw&;OK}9Cm4oWe|>p)F1jia*A2y4 zv62IdpaaQiT@_YJG%?)}#Z?3?`9znD5qXv0CUKHWuE0>oO(Me(%WA6N zrLB504cU(HIObs)vfM;mjhl#WdMBH3Q}k>^`zE3#sM@-aH6Jv8$9O!7Ng2Du{(4U_fk; zA*pWW{%Uqc74uj;S2CXo456bAqx~(c30`T_Ji!FQ()83yx^1S3WBf#G2r<*S04Bxt zK|S#zM_QCa#|>jzT;;E=HO-$q>E6tR%VvFIG`cjbsJc$_g!tzMq;)W{3~yrP7^Bn# z7th5b5Da^$>8)VFw|KCLD=|I}qlE{sl&I+mQTp6abt##|MKMldG;D!CC_!$tq-YQ; zlv7ku5ThkW!z!w3G0d%~N7-viu8^kiga}hFk_4(lRninlOi-GLL0C<&%#srgxvHit zgefWeadIaavN+GVeyk_ZwJ;>vgmADTLmsMt0b@)+X^o5^uo|xEDTWTG=dZI=oY5^Z zhN?Lor60N*Y2evWO+|G@eTg5=vI6MRXc;4sF{Ed|n#BN>vcPu7ndFY51JCy9^1IK?VbX%D@6W z|E5D_3W=71{e*T_On?>Lt#d#d3oob$)`w8hZnUJ>XmuRtG8)GhjD~y}trnuWQ90;l zj>$GE1~!;2VM19~AFRL%T1~Yc^fCd+#RSms-T1V9h9GN(&@L-VWpcn&$3#;Nl++;S zn%YopmA~3QFCe`*y#V=AEMEy$5f)U`1nXqshGD5T3=NU1N#Uw1IUJYu5}T9Ha>>xj zjI21$x{`B0X+ccw1k2}+HA=8DDbryFJ2u!Ye;AW&Osp3f7i}|4vz!ai-r3#RjzNY4 zoF6g8bjxQ`gD zGR+IrQw8X0tFTyG8IW-jhFM&`f`7{~5l*oY>is1pm?D(~YZh_|Qu-R^n{7E{8YuI8 z(#Kl5YZ9hUX8(>=VXW@SG@ZPs4&$v1%=2T#gk24)gwu9gsi#@yxiwf?4x=i9Vc3W9 zx6)}a(Q%eE$f?B;+#*s$VQEQTf! z$teBTK*rz%rzyAcjOQwS46`WhdIaf*R_p;$33}nL4*oYa>oW+1Db|N8X4v~Axi1j2 zWMub2ltk8xqp~!m+c-JgM^VB7qYC=%6q3R2gD45E#55^{4pYV?40WGBNvP}KZK(U; zNkUz(FKZGM-A7SNP%d#dOwD};rBm~VYbzE7D)s1<5l&zPxH3HgX5})H`z*?hgeMo6 zV{_ojI1b}r^&TV|CnLCzq$EO3owO6u-RDm_A#_$@loZo@dOL=@kDeslsM4Jo)`_=a zhUv@@4yVG8sB}Rjo=Bp*h)sKEdhTN?Ne>Sq+!a{q4$0s?p^7p{`4qqI2nLCq&~ zWVj+XU+mw6eDw+&lXo9bNvuWa!fJvQc$#Sq)O|W7;qFL8mML64xeup=!z{driMkcz zK9~{)PGl;uo@LjOIbxw8?gJ{}f?HdJl^ru85#P#s%BApTu10gY7c}&N6}2?GE5ma` z7{ha%NIJST&}j#Ce2iR;$6YdjVi-C!gjEL?!id}l$r!fPp;zRji!A8Xz#{Y6cosJY z^ifQOLndf>E+(Dz*vv~uM;C=KS$|`6JZ;mD&15JcPixW4#c#{#gE^vyLX^NFKFO(^ zi(<~>!oOJ~;c`e#s9u^bnK45FbEsMdVz32&37&q*n1i91Y)~?c6_88`*21K5QGi~Bh-G*S29F0Qd zNZyQtNwN+>?ao6c?CVL#9NEzQrB|{|GZM|>^9WQb)Y`-m5rz)v9{nYCHI?XYVPF+9 zMjstCA_49LvC|mdu16wGv1i*F~_iU=Y?tA)Ex2Vd_JZ zBpC~^F1ez1L4l=X`PD-&RQcflqVUse;vomksA66ilhJBCug9Da3m~S|z!EC4;!q~d zeU{{nF*|3iCD0lagozNx4`!Orr|9HDZH&Za22C(0pRk2T;)2{h=@TQ%SGyfz{q-%4 z(3Vdo+@MncNWDO4Pas3ks9BCkQ7^tMzG>3hhIQXCU;grCU5oc)YC{Xztz_et3x#3C z!BQb7PZ(ckfXc<=${KX1c7Pj*r%Z)+@z72XbxVq3tL>-ZS$a)_4(3OP92 z5_WDvQ(LOla~1+Q^bj|wrPDEsUNU=_)SS+^0rjXYy53lD&HB34ONtZ0f*pxS} zPSKzGvSu?~Z=DA?OUI08LB14ap;ydsSW*|!&59Unk_m>JSK(DoNs{vv)};Gn!K`cG z8DG6rJZq>9EBxVlbpE=+%1eWbQ6IsY1tQ^VND*p}hzUH)y5$>TEsZNBKJ|ph2+hcD zBI5rSvI{o0tY5yev8}YZwY;IVx_v`qYtzcI##K!l8{4GTm}i+N_dG;lQ~L)EO>!EK zN~o+YrHRsl8xd`;KL{~PrM*nSy;zak_H1=hEBvsuwhoUGqQ!)sO(!EJ@EIg8Zx2V< zmQF#Ohg^#OEQVVTjX*pDL^f$}wYkk+5}t`<^p{v{Y!sayA7dR^^5p$QS09B1=qG(y z(@at7xMs=+G1{BJGsAe|i)l>Vmh-O>(4(kR4xWU59WM|2{CFd4TU3klhJCS1eU4V*`aIB>A=B6I$s-503Qla1183S;rO~4p3c_0C*Ol$7q*7ZD z&$c8!#FI{zj}uKd%M7>bwA_a@;@vK1I$l$4Y32u#t=#p_mo<8*8bFTR(+7XpcPh8^ z=cgZdW&5vue?IXWe>fAva#bhvq@{O$baU-_sV7}m`~E4LvUlnY%`+2b-RvLu*>C=O z*<+_a^@kr$_#)nN|C8`Pdf%$xQ^~*kUoSp<-jUDUvjZ>WRv?4Sgj-iul}svl_U`U= z->bUt^#8aB+Yt)=k)hvj*z?V2ZvJk;E&adx+NA-d-Vyp^o36Vd>EM@6p7{2Q)24XYVI`RfzrTFbV;4XA_Ka7H@2T2$_b2f}_Zp#(ov`PU#JkVG;nw<$ zU0bg`Sb#m(gkH3E!q*zAAGkkf@9v9!u=Lw-Qh$U#PffwUl@~8*X>DHJx_m!}DDeB!8S2k~4)wKF}q>Jw}@wL>C@P`BuE!vU=k& zYR#KM`v$hW75KL07$YCGY5p@U(kq222PBap=rM{iLJBNMq^;p!NI)xM<8iUzl^j|_ zhTQtRoZQA0EjgD0G_~aLz945x&NV^+odkW;rf-T6dTCBh?u>j1E6TZ0!vE!z{^f{P zgo1xpglI}`X+SBE;?11lCa&b06@FZX;~TQxL_hTu@Ui%%N|#P7jo%3h&5`|MG_B0i z78wk?Qd-(wz&;_V957g#?DI#OqvoJbC6=a&4d$qNOIu`VuLI*ZR;g+ndP!nwif14b za};+Q(zLrQ?EtXx5@Ry@Lt<%as=*w^MF@Vol7?f>H0H<$K<5dKyXp~h6nEvx720PE z<|yvVGf`+?GMJ+p@iCFkqsd^7;?W$McD}5j?zgl9z|N9XCc{vO zL8k_D)Jk9&CV{rvV2)}9Hd$!b8O%{zflU(Hc7r+USztQ77Yyd8_p>qX5x(CW%u%T@ zIhZE$NHds&RYiVlH+F337m=@C<}97}%-%mY|Mc=}`AOUH`sUj0r&}6Us1KJnT!-&6 z^Jh$Jz%CKYgP%mke&y)5^ysIOnlJ7%M(o+UfalKnYTe^(lg%!?*O+t7q6a_m%qj5C zUw~sKi6a*FW$wI`d8ziY=UCpu8NJ-(Mfp4bn$Ui_oV?{bL;^T*idGj}tm+>Ze@d=S zBXS6bG$nh^QyclPG_w=5IqVY0sY8fe2^3|^P;wiN&>ZZ22WL|Hl0rinPba3mhO@%^ zf6jBRaO{)pQ9PB0)4%;3zb!L|)0?zx$^#VBoY%fLAO*m|)+ELp3as-~?as3-d*2`M z&#*xzqfxu5u|AH?u`+_Lhbcf$^mx}~stFa(`V`Hk_jt}G)W`ne1}Q2Z*f_y129^UXTej_BV@OfhxdBfdBsUv+ z3ouHH6BleKJJlS}vej3CvBjsTr)=nVY$&&A)O@M10*&!BF^$at#%>dD&H!VVmZGi% zcDB$KTfQ~GawRkZ>|DV*fU%2AQC|i|x00=%0Y+`6sF#4{2<=A}b4-Vvt+-hsyOwNK z28>-nimCvn^9=#hak)v{WC`VVmF!y3i<#@3n7avb_pfbUeT|!>h2AYwAU?L$;-)FI ziRk6sE(OAYrzIL_u;H6mV--ZM+qM=?)EGDEot-~>7Vl`F*iuYWX48f|l!CnJ)I|&h zTcf!Y?{+Kb^&yWB|A$|U&x<@P8*4$QA+cgMp{2Hy61XADRA2>ne)MAibFuE-3)^OL zf@f~I4JZXJ z)h;hZwxrwUrLa2HG8D+h61!OAr4*7UVkzEjaWFbVeX)kEfJR?R@#th;!lS&KGgkcLKkjh1d!tEU4b$9WfxWc7wH3=F*xvz9Y}zUsiu2sSx=l@y zm22vo>(^j6Ee{=$s$}6rugm+3y~!~he*^ZSZ{y}sdiyi)b}Zr8O-8h!qwKNa38dIq zNAYYzfIX|cU+0gqd(}U+MOEwuR<;gD*;mTBsIc&#+B<5-jKchxIlQ=cREq2!bz==G zPfTF=-cf8^oY}=(BkUbj1Rq=gzV#PqPAqb&;!*aF`VHHJ=MuiSy`Jtx--+jqs{abj z*b0y{%3e=l$iEUlUKDk-y`DCJ=h`?vC?aOBr(@l{i9^4u|8Ls8={RiMBrD{(REW7) zY&L)Xc)bGW!hr?vKg4epe$(T2q+uNL`0<;=K1VLSyOG(@ko!@%NxBRgaswxK7n!>e zS$2er?kFMt%*0?m<@hlnb|<{Jvk3FP6L2QrrvNF(U4VZA%*D^W_5q_1>^u|4uK>;kd=-#-+6!0@_&vatfZqpX+jt$2gUTNOz66Lo zI(7m62#{rb3ou@9OrMumZ|FVbo_cG>Z)Tj{7>7I@?tWz?z3J@&sW@LELWvI{*&>ehRP;@T-9RfKLMc4)A5b-vhn|_y@o@0RIe#JY)wmm6nz?(RNfBT-+x$dfN+W<9fwC&?T20%NsriSSM@%mh`5)$EU+W;`GDIbSCnj`LoO?;K%-l*SRPgWx}5F9XWs(0G0t_TGX)~a2nu7 zz&t>fX*%E?fHMGD4lH;K(+wy3yu7+eGWTp}OfSAKXB_gJir*_E>81(qD2Rc8VWewR z1BtegJWo94M_n+_Ttml_vh+#tI~|mxXoRw{%<1^C?s>)gkf%YL71tLrj_X4n7_Dq! zychTX0zZPuvG@`AWbq?@K>CqVK>Cp~K-x(FkbYzyApJ-=;GY0pT?3V)nQ0?lU3&cp z^)@?Bmu#2h!Bj;>_b2eQA=(MH*v3|b)TV2K;Pzgl8VkJ#tC#PwiN(3@14;|Y8rFoq*Po-iYxFg>1- z7e~N}gRzMg6vY!}#S`Ks#Th1XX~auf5HD##yrc#3lHzE_*hF!DNE{(v()@Ty^W!DW zkC!w*Uef${N%1OkT(?3H;#h~J1a_@m@;>p}VmvdO}boZ}d9$+otZvYzre+#%7@DN}(Am_-Oqhh|>!Nv7{z^#BE0DcniZ-6@i zF%RxI2>5rv^U%+K49JHIM*zPGsNgGq0mwOV7G&g{xD=3c;x@o!z%D@S{@d{=Am_%t zfSeoiJsIxy{T?9aGgK?*Gk*a*4=@4lkYj(Ig>^n)5Rh|#8v&;PhT+sX7gz&`$DAG4 z0&-4p9U$idHvw`k@L9kDz?T7M0{#||eGl5=|k zgMI;!W6-An@rH57_W<$Gq~pH2wa2ep=0ha@g#pH~A zRZa6Mov;0D0k05<}D5fC=m@eE)K;12<> z1$+;%6>tc!4e%5UC?bGU0NVkJ0j~or0o(+51>lW<6VYC70z40J3t)U7&UV8K<|7x! zGcYx|XCK~x-$ikKIOC9qrD0{y0iD-q zb-D^+@nz2ejb-Qf_$P5?Z*APrj8k;}$+AcNx3^xIPkg=3LK&Dh_+;KS8<28foI0#* zoU5^1-g-?lv=0Gq#cyVuy)q7YD98S2+4Nd(xT!7NxS=I-v`H4NcH{>SZg1>a1&o#( zb!RWiz;d&kxrTZv%15~_1Eg%1k5JxahL={vE8dRp0j)5uyvsmiJ`3^tX|%je8)?Ek z=)tUVk6xjpFQ<=CU>Z4_`>^)B2t@Z<2888jy;b7Js}$v>oMnKg0nPH_Dum_pTEe0&W{Z)X}?-D@Ng<1;O2zU+PTEJz1dQ_;_idN#j1M~(! zwlnyV4(e_-V0?X?it!Ok>a|1AiPp26!Bl-?OH&tJ+%VT zCqw{IFSLLT=wD8mU>$76{SAQE1AZ3pM!=nbs9QN@;%2~SaeoWocLBEo{tyuL((wzx zPQc#*ZU@9O964PA<4ieSg8J^1wFKfl=x# zx=ij`1DL(nsI@j~bC3>|i-zQ29gWmJy#9xBvQB*X!H>vw2XsK$?*g0!h&I$w4EPy9 z_#$-=Uu zKe=EX;W~EZu?yoQt{tiHh@yA2lwvY1^m$X@7|hwZYf<--SR+J@)@7r@k{;H>ODyi>fioq)%(rh@%jEW_FK^7lP12YjefHF?|j;LoIfv( zG&D6I<41i*{Xo%v6Z+45sd!8&4*z!e-%+1!)B2;(e}9P!`(h!EfV z{hJ>$M!y*>bd&lJ&649Aeld6ue(*`)oDZaO#ZoZLHsJ?IbL0$qV%XK(((VA3Au;wF zEKMCSnEpDDq5A7UVvgEFKOr$P;T4FbsceHeimys*+ImZS3>buiR09S}Q-cO`)YHlC z7iG^I%uzqKw4YkqVM`l`(#CM(D5g9oMPrcEV2N)MExi9+t*0QpQRi1;98C zO2sQy8cS2#4CbgDR3byuRIb7Btt7D1B*yCoOH=y{hMLB(o1v&_gE{I!VB;jlA%mr< z4-AG~@K4mCX{z2}j=Brj=@R3B!SLm%!5mcvQ(|bEDmR#;wgLNu#Mo!BH1)Q@990ej zVrZJGG#K&#cBan5V93K@j>?89&66184Cbhbz-9|=lEEA`1K1Ry6&lP@eqalQ7BCn} z32cGT>J8?oFtCu&RvOGvYk}1ZZKJ^)btAAkq1|FIeD?}0D73o_=BO_Kn=dpz?Iz}^ zuLG+U+P4hmsF#7&2<^KDbJRXy)k1sQV2*kRSe4LzZ7@fD1guhMe>RvS?;>6)v{W=U zV$dJ3D}*-AV2(N$ScTBeH<+Ueft3sGVuLyI6o0PJt^|#kqZR=R2yKbM9MuG@OlTVn zhVNN{l?v@|rM+fp$#6{PNQ_#8!4n$H zQ7>59E=wB#HbG((V@ZKnnkq9GVp!TPOB+94f8>{{))*{Jtv8sX#zRpPC6ye5p?-no zN*;p-OH)GzbJSx{BSX{F;|6ooGAQa?iSf9>($td%LtmDoL(xkb3~dnDc@pE0!O$-l z%uxrR6o$ep8_ZEpp|FdD_N>AF&wm5X@375h*qvK^Dw2nfu{$>>ABjxDr?B1glRMu} z=n4&i*j+W$Rh}##VyEL%+2A1v&QEFMKD3taWPSLul^@DMg)V%$Err5I)%du(t8zCp>Mp_O!1$(ouq*qu{_o`P>fGb=e0GfT zAhI`aD8&|j_^0hs{_F+jL*Wm)0*AW-1IU=4tp|Kjv2ZgxvvnNgu?5+_E8;_W`|wa! zb#pwUg57~=v1_}l(p}zkBpRc_&O-?kna^RjfQNh1cjJ5Y?$CfFg5u6c1Xu7(^TB!K zOsb+hs!V)Z-yO*8D#`A9g|!pSF}W-7LFbkae%mS{ewBft4?1_B?xu)vem1Y#CH!`V zQ^^Be<(a~WudR(BL!G_j%y;UYd(zG4;Wl4Xgyyfb~Q+L?H6L3oTv1%Zv)smcV)AV-Gtl*3Qhe#Uw>kO$5MZ2%=7|cs?gEwE0T=` zfLNSt>fKY{EcYSqj3GuoPBV-cE+%yJ@cCY~Lx}XQau{9g9vM`;=(7OZTD<-oW+?8q z7Vrs((sNJ3A6|Om7h>7;Y4o9DA6=mj@^@uy`wBceiq}>3Ugwtd^o&my!jW+2T zR~>*5Q%HfU8|r;G1(A9WeIjjNKKwaaW7SX+d=P~km_iEMWbZ+AW`n(b4~pxU{MF`gVPMDxzgw?k{{IqL4sce+FGQ3J^i#1~TUJ8;OL4GL{gXzSiY#P_I!^i1fW zFBvIGeZ2WD>FJqU-@yY1B^nx#fZlg?j6sPpI8x>Hy@Xoz)K+%F)_0MJN(v1?y`xs` zy4SRPLn7Z$-)5xZDNC|*F49m*QXj`$AU;w!X1Vzc&nuo59K{z)k&t*H-*Odhv`Z;j zR2tsMDt-ttyb_6ySui%05%t-B?MPYoU+t~IXid@d`!Dy_OH}``;GzDB-qfsChtP`p zeXy9m5+B~yTaM+K{O@IK`%u!>IRF~q13Z55+#Z_nDI=q^Bixb__$4Xdf&-R zf<0j?oT29#LQ7&mrrfRDozxv-w8Y+nnb1;FFZHBTNYo)Z!F6wr>8=7}c2@7ZnXsIs zebO}lf7RX(N_#)pw^iEv!LHB&=^*xXZrO)ce+{(OUA6B>ZV$AqM7zE3CdMjzj91wM zRQ7-|JKa?WGM>&(&~?VvE>(LFyXLSi6O0QG zyMQMbn#m|hOYRf<8BF><8w2^IXNWRNr$EsY#DIp9cEfP{g2?_kiqQKG>!lnzooKuX)!X3mX@7~6op-sDXgU(OKa(4Jxa<_jYv5iElHfhvFf3}N|eCb6&+|5 zK|xaK;_M+AlNB#(7E9l7l3*UrWfOjM!in zA~wa+SqPmTz>rPOCSO<`=(Lt`I%}Em_0n2|Zv3t&`!$#{h{+E6X5(Fj{wDhKXyT$R zT{)@V#HAug$3)U5F1?XX`~+{}?C?z~9dF_oB@7tJ)4Yi@o!D`~|K~>{`^7Wu@B8)N z%}C_+&MmLQC*f^r*ud-VNJNzTW|~#vI5UtCI-P~7emZzMi=$PBv}~~e)3SBqsoumr z)sMCrP25)hx>3xi_Z@UTCUNPxb>i?zAf{*bz5~gvosVMAGBPskUh@|RCbD?j*8vzK zdfR+=gxdSgNf>1IzJGGs_d%XQPmN(&zB@GSeHU6B=sh$xZ6C-};2pUhk?)R4dk>xt za&KR1S}({`=)YqV$4C{4W28EA;+SY5@$sW2ev%}9@@R>Vlf-?V!~>Yhzfs#GOB6C^ zU368Lvk$737hi1QFqK!kT6Nd|#ooC9SXGsMe-8}9a0X@2QBhF`MMXvBei76G8AS!; z>Me9;UqJyy|^+&;xxMW3%K29 zbnfmm-%#9M+?KKl278Heo_a=}e0VkmF}_e!S$@XJ{MosI;rl#cF|9=?qYGLNWW-PR z-<}#Xv9P5FFX58qRt}KcEwR!5_}4?dpJ`HvP@|V&=8cYNpH<5AN_?7(G%-(C+BS{c z=OLwS#ajuDRU=%M0dq1bbrSVISV}bV1e^Y~=*W&^HOx%V>M=wyEUD?ob+< zd2D?miV1}YuVwMOVJ=%a>%ugjieiCeRGN3f$nr1$d=?2HUnJuq(&T1!DS%ArG!InV zrWIP|@vcDQw6i^H#$aa@r>)=WbgmLf#|1b)P`U zMZx_9G1`!p+0QaGmW4tspBDw=K*xg0f~g=avlj)kK^GX(CuXAzX%Td!AuWPx*|aEV z0BNzbC};+0iL@xV3N+Nvb)X@J`1I8lL5qSFAT50s1*@GJ^$0cn}DC|C_T(a`N6 zEol}7cZ1F}bPuS~&>GMLLl1(^F!V5Jydf>Gjx+QqsKU@%(CLPxAL%qh>p`a)+5j4B zXd`Hhp{GEq8AZX@WAA?+Z-W8z~i?psBoCtF67J^dd z$4*i9VbI{zICpV_yFj*_?FmQcNI4^pjQoejamYq*LO139x{z>aP%x?!Dp}$fP z=g});^^aTXTo%q=5YGL(PmdY%Sl6hj=u8Ba5OVpp2ewvGc}8&bK15#@rJXYd=w*Ax zIf~(_Sscai;Vh0~_*fQ4G2EXaP$p!>@PsUmVz@YqBdOjP=WzA{n-{V;iu1-Sj^g}3 zSscZAN1QW49Q8U;+J`9>r5WJbA}Is zqx~dNIK!2SUuJQXik(>;#kptixG%-|s4R}+JSK~yI8TprM(F92;%OhQ7|zV%C>7Na zhl@aqO`+-H&gngS^2OrN;Lu_#Em8IIZ7BVz_hoLfPWM%x)S0gnyf1STXmsii>!rnC zf|4VDs4hF;>YD4Ki@A+;^Ww(<+Zmd%V}ae-kTHhNnTcKMJiOSY_SeNO-PWxb!wy+W zThE;kPdPT{W4#zIaG%hKxOCFa1P~&2#&!GMvN#gA2C$FGCHT2 z@5rt>XZAPC+?#R%$b>8wFJm-QyJF0jYI%W1OYD}nHZ9=46?W_gO z6JyHNq&ur+!J^towb}%gh1qDdo6Tw9vz<085br=^dy^X^8VLkznH5 zHJ1;Veq8x^4IBZ!;2PA%m7h_+xB&%u5^wNFY<~f7F7uR;hMB9#dkyO(``58IU`Hg* zB9kAvxfI*i=RLXanjNS5H9CQ~`QKB0_sR?PuH=De<7b8l=yM)Gq2_A}VS^UH{~y2>XrxlLZu_vXz?O2P|| zBl71P#g7^~o8W3(kP^K1nznGsR^Y}O`d@dpuHKPlbhfU}+Wn}zOrEtH&kLn9nHN-} zw9&t&^cX1ZS9&;dFHXmOX)lws$`x3mAonUR@P61{*mkc*wC!-lSCZ*f*w83llBqIvk!KD;W=iW&sM-}|Z8D|}No(R~ z6jWuLNh&*6hBB7Mk0!FLjGqp@fa?nALg+ZC?4ltGL{DR@swLrw4B%>{BCXt-id5BU=dH=eZRAepS!>JKI7-^@BOXubNBa-H-7HE;@=oQwRzwRSM+=2@jraG^oK(~HD(-RJldgr`uQV-QVklHVylAzq9l&ME@JS{m1rGh6ScRG#5 z@t%!%KZ$tTBHs3hH=73kFngNz+zRnd=TR!CrBil1X|5JxhY^TTj8fzgDe?%dkaW_z zTN14I=%2sS=cJQP3bZ<`T|Tq?$2j`>^E(q#v-!e+Pw^QMzQF?Plj8~v%_@FUUyDkA zT~C&ilAj%HE%l#EX;Jn&6AF3;(MJT)lD+$y06mZKeH9jiA_dygZOaP6SIC>~K^y%x zlBrF{*vdG&M*NDsEx(4UCBt1KThErOEtB|~aADW^3c)SNhU>$8Qo$#se11SUtoZlj zgF7w5wtlnM^kh(I8w__9gr8ctui?Y5H99KG`P6~u5kg!_4ak7A~IJ#`TRO{P(``ue>^?bA8zey=$VY_{DxjlLQCro0$DS?2X_ELm%V!KtoUP%gCMD z`h9-g-CuxG#@oX00oXEWp78E;#*1^;FG8BkSD7!<>5KlZYO&@p%7QM`HRppevJO^o z$+xI3wk%Z?2qnj$Ehkw;}h>-@}sevig6iZ7H7s)RWUDCvxo&D&Vs0Fpyh6! zS5?pJa{ZDf|e|^wi-1^-v?NbYS=WQn1V2gG6Q{^sgl=rJg`vT2FSNXtM4 z8X7&=8D*f3{MFqn@LDy#W!^kyMGk@|@hcvlcSe27l4f(PM`#ki>dgAa#mv`+FLZj7 zs2bOJ*(46{G>3Zko+5|S>zY~?=>(tAy+U?m%gh!dWRE{fVOuXr5SMS|& zujVrqyNr2L%e|)9)%lT>+%kZ!zyGz-S35q+CP$9s@M#%ylcfMs@5m^Uq|MPx=EK+Y zcunpYv&ZH$C55g9k_w>3d35MaAff(TPC!wls3`sG&od z6_3o`Rz`*lA3kcNxz@_azP2*5a|YVjED!Uqj7)Gv$h%Nh=dO&*K89H~+&weEIn$`5 zqLY=8-^Qy#=&mu=sKD!oy?6*eF;fu?s)(z;)h$la4zA5{SCO-VqK}Zi&6Lr{&vXHP zAJW+hN;}ifcW4S4L-2W5Jk;iV0yiJ_Gqh?q@~xmuhW|6%9OEmyM44{|WdaX61vl4E z!vRJuWWMm!jy;N-Bd5!iYt!H=?ig z=EscJd`TqTm{y_YG3mFc8ANm5irllMUQ4DH6Er4i!OmM$b6JxOhNJ_qjkqukf%@8c zHZ!iXGBs*K)2+rw(Fw5C_zaEGP>od&ITI_hw!mqbIQ4LucV9`lan z9IlN?f)Xj?R^^2fAko|5qsj|CKa&?)SWsU4&;I7iguVk86S1LDdaAJ+0gc7Vd>ff5 zt>1yNY7jgHJqP+-sAT?q=rky+*g3L28orE5g^Xm|6&lL+W^hur@*_8WvD@>=cAm+W zoB0f~%_)|lxP~I2`j+N~7N?ss6qhThZb&Y942p%TxKv{mpZ-{xACXR7^9Gw%9G`s~ z>2Am0;6&Yxr&}j1Ig_co^J?F2!kY3-g)n{A+$?w{sK_f0&h7#rsIU&-(I z>gaRaOKQQBp98Qeo~72Vj*lnMw*~Tzk}C;UzU`$&Y4tME{Ua-pq$A zno~3Paw~2MJv7-ee@l9zaw?_XomEP7vQ_lJuodgdlWb6y+luK>W$DKGo@K0*uQ%~s zk6y9eGO5qHSiZ~;qYqV@tFd}xn2nX$f?Oq!-$BcvuR+!J{T@0Fx&t~5`UmLw(4A1_ z2cLwdTcLl3D!+F@{|F7+31CpJA52&ulI`DW?u|^G23`)2Y_$2bUuW`1V+`pX@ZBhF ze&^FuQazxuTud;k0kKX(F=@eCCy^s>mF8qyP>$bWQ0<9|S!PnoRp8 z@Ks{sY1ccKc&}qWjvbaryZp$FhPJQfrroDQ30Ek2%-cl_JQvX~lsjN(^~ z)tGhyR%Re+SDfh^ZKeHWXg{t8K~=AZKs6Sp&YK2?VbG+kbU!YuM`<^E!U<*dh=p@z zBoQuc!-8b1XZ$9*QxKMusMU;1Du&;#q*P`!zollgwvGuewU9?DLYS8jUs#4FI+pz^ zebv|^tm>A`NaUdSGXq9kY#U4(p5_j%{*8euZMe^omkPFw{L3WkRU5pd);#%9nN=J% z=aJXmy4SZ|p?F@hPAM+cSjDG5R_1ilsq0Fp;&^7BbZ>@_+-7=%DcNgQ$+Ht#!6tfU}Ywe zSCTR1JgsEVepy+b2A#$Abm+y0&zkQt8+-QRjHASi++E*0z zt661V`4N?Ul~EO#Or4Tq3B49uspUhkhI-bbEM%2sJ*jRUqlJxJ>*;yE7@Pt7#{`E_Q0qgNHMIXq z$_CGvx1bSDyt)lHPnqiV=fw3Xlt!7b`YnlFXU5hKyJwqAmCCWX)n@RgZU7&4|Fy3FzAP&{h_x* zHLrLl^nB=D&^b`zlt!~%@Db=W(2qiIg3@-RZ-d?gy%+j%=x3n!LB9xn0Qx=XgHYa6 zP0NS!@e!_n3H>i96}lce8~PZu2Ko)? zwa^XFKa%eL*wB=Fpb8_C?5mMEd70g3mBS;OZ4A6M(;hL|-cZw6SH&KPJ+01aJfUK$ zCwi5iQY`9TI6PwrrS#2>b-zWL6c_T{#=76mlg63cm!W!@Nv82$xXJN|{3zUWvD-3f zp$($0}^$x`hO*H!i!kf~=AVTVTX ztHu^#$6{rk^0N3Yv@h4+gARgzAF7)E1E|vTLuj%b^hwdLQP%o!UuHFlKQ`7crMhVh zom~#(hj)!Y^miEd~*MsX?|%~&^zQ;{m;Dp{nIWm$ch@;<9CQy-*o>K4zbtIg_#)OAoC zWHf?ajl;h%)QY{5uJV3;SFNS zGF6UUoVoTiB}r<-9)RFTsv-{C6DwsTX0wJl=t=jn{JgLx)K?w-b-qG>Wyyr1%n1$O%x zuI?u~JTrSt(19q2s77nBTheo0a4qXE+Cv4LQ~`rW1qCXj_wT|0o@OJI&^>NbSSx={t%R}$kLhvIS9HAdNB0Y&_kd)BBU?0 zKlE_uaA-NS8G0o2Iw))W>Fc4yJ$(=KSm=Y$7y@knR^C4e-hOQ55n z2SE8cAbk*YEVLi=ROkuNanOm-@zAMI)=<-Ppl3pFf}RDv70Oy@`Y!0%(9b{_+ogX4 zodhkWM6vNbT?*yBJ$(dpCUh`#7W8Z=W5D!u=mpS=p%+1Gp%+6JL+Sj|?a)i04?-`6 zei14y%U^<4LtlY1hD?`GLTjO;pyXkCGISwy9`thPYUpC<*P)Cx(X^vBRP=nGJ4cly`R z)zE)H{{y-|HRQw4)1bFQ?}Xk3y%+is=%=6`gT4y=I8+?+D+}0`S-4t^2--AH_hJT9*=NC z(7UTJP9@dpihE~@0HYl!?^xksn9l5tPwy;tVVD^;h5x#ZGNa1hxk|gC<%)l1%gx(O zO{5)f*t?-<&&6serzyA;MxhTK9x2~@2QhWQ4;l2X$!}yBt0*AV%9QSDI*vgerGhb_Ym9fgM=ATFkeNr^O@SwbMk0_xX4jEN ze8o+xITK#@Kyz?HB|)`Eso-{y-nL4DyFE$;4}g{#?^7P7f-iusGv1dyLSqtRVHaMx zN2y>DXcq3e2kSgy?~+HPjaFKBNt;J*SJe6D<574*CBa&c&;Z7G)bR#*lnQ2pE-)Vt zdqjFYVrhX9sqU5pr+I{|BHomUR~zx>N4%#&7h1@D7*`6F1bsb1`x(VIHBs47A96to5iQ zSmzPirFiGl-IAcfBk~ut*nDjA2;FQRA;}VVmlEMoDrk;)S4F&ypd}VcX-|jP6W|eA z2P599h_@cZyg6wr-p8Smpr=Qv;J%3W$%yxI#CtX3b>BDiTjEhFI4I&B8u5;ecqc@> ziijsoiHZyQ=|Bw@tAV{7q9l5h3a$X%$la2l#Uu1Qf?AEY!lP91A<(VH`>;o;;9k&& zjCa3BXwn0981M5Qp_dGFi}5yilnR~%wHxpI9-&nYbhGhZ^e7c<0ks+LcOIpJzk*g7 z?;jqef)d8QA2ePskEpAln~YcPQ7SkQw9t3cb`Y-$pqbDyf1i!o=ni~#`~5> z?5YKQ*m%!-gq}>$ZN~exN5thIC&`lF29Hv~*CO8I5wE0A=&qMXsbG4-u)5pvk~tL5%2Mc_sxj+!-)4>#Cs{? zy&Umgi+DRC-ajH-u)48UBr_nN7b!VFzRsqs!Wdc=%2s0xqL6iB3Mo& zkHpTNjRnk}gPn(6f~94d-HbgM+j8`vVHbupymEezrZrsBvS<;(1kH^tb)xfX7BvYR zefEf9wa^b>FToD<^c3hRu(jvY}b0#7}15^|X#z+o#XRyY`uf4oY#r?$XU-Z|&1Dd3$u!dFX=8;G5;s zoUomm!@+YD543LV6FWG&*AX@eq9FCXL{9-sxCtRTpuEh-KXE8IC&6z=6`;HjYtt!K zHeG3QagQAt?-Pd#iCkR>+1dsfznh82hh?xJ+#}ESXSAzncltEFxX^n=D5kIz zsq9W{63!&RjszHhg1HyIs#e1?;t&7H{^X-sZ3|lZ+35gM$j~~vpm~3P#h(3B0vC8? zN9BuA0STWtDBRhso7(5Bo%xaG$Uek4?u+Q zOp)cEI{-k30r;{SYI95|e2}UEchr7Y>3i5crgZ6H%6UbWOU}gS^!Tpl6oyqnZqSR+ z)l?<4okM-fIaPq?Pa}7CD?U=)=`v^cw1ovu)j@HT!=*l(T6YyVQFa-+fow|X095`w z^+rYohUHgjsL*sf$^qB~uBUJ!{-z^(-K2r6a_d(|*m?LpdwtF+fndvdpQ#HAtem|u z%M@JhG~tAKc7ux9mFMzX-b8+Loc?wxyx3l@0MW02+8ql+XXkew%4k#>oFM%&yS9FA z>+!A2N`vP97PWFTHc(3YAc$PwTV2xgsZg-=PCTCiy6&s{5fxuR?*j%yzfHn@ljZl+ zhk=)7beWPs(;?%^sl`RK*`{kS=*cDbyRMq5!il$ z9Z|6>Do4n>b=gj@0pWje-@0t`?B<^Q9@)$p8k@_Pb=it~+dfAJh4e_pa8BlQi9RH} z^;Z>keZ%!#Q2pjabeq&#R2DZMFVU!uAUl;j3dyWIDPVz!6zm)`c^4;ju-X+oS-Fu! z5oeSdtZT1aXZk7EwJuvXbLkcBlh^h7vIf+_8~ru*#PKGPEkBLn@5S)rG5m!Xekg`N z8pC>33&Xq-ynGqusUTQZPQTz<=!N@qOny47JEcUHX@Fqs45GXIw{q$fOdK8T?iD<- zE47anO4}+ov`^lQB1GmkmVZ}ErEQbfx6fLSP&VWVw2VO2t8~nI8m)P*475+)h$J^n zPm0jm!V~BrO!WxmyLd|%7RvE7t898yDq~{LZIn00I5DezQa;G&>p`;K zjK1yTo!gAQ@6*w8?u){Ct37+qq@YW2*TUjFrdym>6u;OT?jAOjo>IT0kfvB|UVE3Y zB@fSDvG!62s#u*3PgwB+D0LlWq%Ng6Y)TF^2UFc)EYScX(+0<*!1I@H)8|7}@y8w{ zKfZbaGRdjs#NlWwGSb`9Q;IVG@kZNZ>K&)ISnVFbbd4pUZRJ`*X?;w;-Ftm-AMrbM z;dS>Zzxz&KSZFDFV^*I`L$T$RV%*X$^qrdb_P5>b$$h6S?3Ty(L%N;m<(b zxjK|u4)h)m~>YUlIk|K5G@jo7GhQc&w)AerBvw_=}J0+ZuY4Cw^Pf z`tlLe8BXlzRk~8l9ld%N_Fq`ru~J{?WS+TFU+1(wrr%(hJ@c_mAj-OEvjUKl-U%YArRSkkdlU-Zy^s#ryuZZ*QRr(dUVGb7K!ww3ze z$A&q_xL8HiF(!!6_i6ZUeM~-rmZ=?g=t;B=k(M6X++9I)&nH(t$_-Vot>vAE*=DZV z?RU$sX`aHvgzRt@6xI;`NX2wn7=!gVd~&5eOS15LwHxMGqc#KW9lAB9Ls9J2x)C>F zsJ;TB7M&O~NHK@1d13z&RhB;Cv!*IiPClCpMqBtzXLp_;)H(GFpT>}5a%pF2*wqcm z9HX*soib5$Cns%Ik{B|F&zC-eEr*hljt)sWo}ZDVABjs^wI}R_W4YJ1Qm)$VcgwW| zO2KOVReAG)Pp;HwTYBn~EA>?tO+m1=EXh^#O1Zk@1zaFIsThy6q(|jSliD$1Qm*tR zS5&S#iCLJ^S829eACnK2s}4OWZ)zWw3q?}ps*^C=R?1bo{chRhCjx zh<~I#K9Y5<9M0;w{N*&k_gW!6lG)WnADp#!=ocM&VaG}`^`%+sWBT>2;UR?dLT(sXIk8OoFx0|?#Syao5odnzOkUL6kn}MyLYqy}stW->z z`?c?!Urnyf*Q4wwe1{3o1;c^vEi7!mLq4XrTZD54!kGwf?d75-jZr?1ioqE3-mCQ% zp5~&^-l4d+mo0C*LtoLguhefM1ybPL`j~!sogpe3MeQN3c6u1?BAMlb+pNelFsHsM z_)zX;WWSCcvr@~wZMv7$fKnNc4=ZC%)mMbVpj6ura`_NtPU}-|Y?+}FU{XfY*k}`a z(}nM>@*m`dA0|qV*@i^64$ms0$?};mc3;BVmKh`?5#*Lh-0)?t*9xtywRfo8Wi@nd zEA^G4FLGgI+E%U;Gv4KNh!e_*EVx70p^%gXYQZ`-%TfCs$^yoHv1W%X7#cQm>WX5u zFHsr7J}hc^HBN4QOtB1_)#7$i)vd)DGcUw&^u?{dZ1vw7d$QN@?~#OdDb^ihb~&iX^jI+w2#+blpxRI!zp`ca1$C97 z75rX}EwW`DrV+WTSD-5mJ;?7h*dlGTuqELleOhTtd_{qz>7H>AVz|!S^#!?527p{B z!$6vWD+($=*Bg@H78|Mqxlrms&WBnprZ(|$M|AfS(cPy&Om=ejIZ%b67o)p>1I>b0 z7VJZlaJt<+2;@T6$D9t`1iHxF{TE0R!ezmF(8Y$H2HjwOb?~N3(MurbR|jvV?d~qn zazk2xt^t(=$Ag@^%Ruvtw=&|b1&uQwk4L-aL@YnPyOng?D}A?iP@iK6x%kZ{S72gP;!?S_itx(0b6#hBkm! z8PX@8A2jq7Nb^K!ZUe0}^bAOgrA2{8{VNQ;08&LQ3Z@nZ!DXPb;9`)MIOtHj+X8Ya zUkOs(EDP=gooVPnkmlgag3p4S-4gDSDVt)Wt@oacy!C=racK0-p z^E(&hLS6|v*6!XG-F*z?;_?dUEDL2fXs)5*RNiw9T>v`AP&;S<2;GIC;|$#iT3~1m z$UXN{peu~`7^u?FlhNISdxhI+M}m&GyJJBo7#a_9;Y|X$@M=Nxxl6wQayfW+boUz| zC-LV%wdU?`pn(=%acLOJF`#<8I~wHNT@vwhilpP+5~0t7T*|)#a?$i?N)pau)? zP?{bW)A685#yc0}V$}dT(c-c!a`!Qii_5nnq@#IUZtX_{c9Qux0^~wI1*93fqTqCp zYgHzLT&r?%GI=jYrh5Y^z+aDVmDp{6EZt+{e-S_LEvlEFM zU1F3T>R?*el#z5XlrmsPF`Nc=hlvW6SbHku4xL?NyodM|a)-`3cTaKc+}WIYLTPkI zC38>Ao$18ooHLTOOu@mj1i%aD?(CzNRmIN0mRY5A1uI|HOva6pK|5ncS)&eAZePc) z$DWipZApIQMgyAPQ#G6^hz@Vm)e^V|Ou*Z6J<0N5`tVgh$7QyHqE}BBHpv zjz6h86Wuy>05G%8{vxHUG zT$vDZWkSfECG2>A;o9*^3mkH12|FG)%`D}&$YZBhg_jlW-actT?Om4^7U<2fYfv$- zuBQ2GwLk+VnH3lH z80L_Ebx+3Ja0YNjk6JglT?^RLW#;L{r|xh_ClHSsG|Dc_O<$}*_Xy~&Is#p;+#=7$cb@AjI@{KIA^pCYhs*{ zBW%DC=ZrGlJ~7UyA@+hD=L`+f*>N5>)Sy8_wZ||cu~CC4Eqc9=e8Cy2eTH$)h~e5{=sEF|r&ag57U<;J?}JV% zIZ$IKq1Y+c-MQY|Dc5R6yB6%^SFUBc+tcFV^nly7Kz)*GW6{Caj&UenPc?YzS`fyb z3r@yU%HrYB-{3}Vw`yAc)3VibWuKN^V&TA!TKn!nxy3|%e#R(nnch;^aTp3k#&NU= z7#hb>Pa{(jg}mG`NJaRpcFz%UzV41Vp_>PCIA6-)d?$zVLJsHmIh<|HJeEQxUr&*A7J4QE1Mr{-{`hO;S)Q_R)&EY1O3 zZKC=rzkrw{Ar&+u8IGP)9dWAsSsoiAj(m-EotxP9H(kr0gcGw=wajI98)Z=-7=A{A%k&qaTaF?9PJ3t zxETtkF^i+5ULWTS6-WEO<%=F|(v+d{wK|KVXFZa|(X+HmJn}U}DZM!!@<^prul$i4 z&NkuvGCCb`T-udkQ?oeoRiDL?d~S_%EbXsmaTMojx~eE-(<1TVIEMpWI1PzzD00JS zgQ=K!3`fe%qAZTm{%96w2%Jx6arE?0W^p9ddm;`O!N(}i>XT)%^(5>Ar!zeX&-q$l zZnE?wFw51cuPxq}xzPhNLt!9A7PG&)YHzv(hjCRE+bCbPCzS)C)`fXqxpvh8&Nr=^ zSKq+-Xv5VpCRl@?Pb&bDQg$#>N_d>XLKl7@6m~t+H8uJjbmqbxw;a0;cdBP;9Y=k3{QB)ENcW#&lL)77 zJ#+0t%P@SRGK`uAib-wNoU1vL!Nt9ys#Uv%We} zbzVWKuj3HQ1CJiJ$Pt* zbH-lvg^V0Nc!YV#Xi{IpjPr+ldlR245KH~$)AYYtCXc?54LID5yY*^ie>4+6OD6B$aofN&QIN z9H|5wdOK$0=7-*$n(Tbx=}q!axH%0O%S7Sj(c7^CH>Wt2L-(qw|7aCI!aF|v5gCA7A?4@uJIjf@W@>>C_p%5d(>wyr`y!*tn%P> z>@TrH6EoBDBR8T4(EB@6kQG-u`Az}nF)W`X&ZOJ(rOy4*m?CrTS9nz17m>9cwqhr@ zZDYDR#WQ{Lr_;VPgWZBxJB3WgvuSI~$+$`C^|(70Po=Ax>r(73p8p^-fJ(E@yl<}mDm*?Bgvv98Xti(B~&*%clq zE6Fv`g=NnFveyIeOV6mrDjox|GEWkJJ(o{7(yAEWg(?o;gC^4@xv%3MgI6;;QSKN* z3)A%{xF;vhUz8s`S9G`4Jb5i}C-8)7y%lI^LZNZ}PEKG9%Veems<IqNMjsO5-Qo?J7Ib-T@s9{R)(BCns;p$qUuNFmF`mRK3Hz z(acEl%x3wK8>5*rXJckR4D5UnOGl(8nuWv>lB4;~rCXTgywSbgV<@x27?uolXp%7` z$;dela}f0<9_Z-A^{B-4$i(%C#P#sR^)OndWQ(YRqr8c=e{!Vqmnot;2T})@A4slf zm7uEm>ISC>)XJCIo6soFs<}82yWTVBQ)iW*3!#*?U=j3GD4%hqr$coH+vQN5!L|Z= z74+lKYoT9;UJv~dbUAc0bOlu9_=8Z+%?p^NOAm!|1Y}yDNwTla&KA}gYlIarXP3Se zsn99Lors~sP4q_Cd{rD*fopo0QubP$~scMZmD~en99Sh z#Jqk{ZI!L|WZL7^v1cp()!1HG<%diKbz5l~2UQ-9hh6}k0G$u5gw{jPf~KJpp{t;0 zLq7&R2db(1$Pt0dkgi=%w?oO&n8~!1E33_<g%-H+E>EZId6lVZ0g?WYWwukF_YSXV`P^tSnbHW`^bQC!s_Q?93E1*ZhZ-fqnQu=IM(*hmG^-?Hh$qBv6*TLoZhCoGtXF_j>UI4uVdMWfSD1D`!k>3RUDA$}zYG>nL2c?fpw?glO@})s= zKlEm&2Dy zr{eb&=wZ-x&{Lr_BWcC?YtW<|*1(qx;&RaVCX~Yuz{&Q04LrFK?UqLlgGZPk!XR-K zHwYr}Ub5%Qw<)!-(d^B$GmYkXy4-=C7>m*xa5c6FI~FUm9$6`kk3sc*{5Z4%`VHu% z&<)VJ&?lftncf5ct;$q>^gPj`JTe_RJ{!Pb{a>|C8Oh zzv*)NJ!GXcejloG`ZTlxO1-sm`a`J7>5rgEnJSOoNjWV}%CseF1jB6N332mJlzmX7Z!wiT21R z)Av<_+K*Uf3v~yay|t$=ASXpF=C4{{vNf`XW^2^cT>#T2AxHRQamsiKg<& z^nKN!wh+rb%T(#8#>U&zUm`1|aT8SK^jA=o)0d&Mq5lh2Iei71l<6AydumVf$y9#A z_Ov9QOy5@x>QTgY&oWhdsHo=W%`u@Hzo}m zKj|@x>*{5#Bj-I*ehwr&(VjUny|RWyWv9I{9PHvYP^ah3TWwMIJl0Cw4ToMTo^G1r zO%2@Rud&DC^#~VN&AcUAT1Su_hBqX9yZ}2 zR-35hNe^e@lH8M#hiC8*D=HM>@YUMJiHxBmqdcnSsto&x=l+gzp#1wiRO#FfJsSEt zR8RT?RAcp>(3#LbK~*>Z480Dz3;J>BU!nIy{{~fZ{to>t^dC_Ac5NL_QwFtekyh*r zp@bFiU1)lL;#CA43@wI^fbzbbQ$F>aJ@rj`PIBH*e$>W@?vpH^`X1$d(T;{ol@-KN zks=QnLG9ow-Y+Q))z~8JSgZ`+23Q-~6FPwFeW2r^`$DUsy`Xha_Cn;y^CRM8!}^{a zljf7B{HT2q-8Y{+-xqDDnKwW;wPrDMP+^(+5@hwn=h~bv?L_4Bb$;#vKae zO-nIHYC8zFItto-52WiJShb-tN0WBN`B>;7&;d}%?l|ZO=<(1~peI7lhceG-?JeK< zrj<_G${g9<27gboyGQ;KvXdXhV+FQ%Qg-g^wLOb1>|-;tz;9b{lG{{lXcV_e!=QZWoR;6w&>Ns*pi0wNXtIoLgs<`yFJtN>3b86kFZZ*u~IKK|cUh9k~Sh9JC7h8ngz=*w6I5b%oY(t-P8CRi6F@(HtIh@2#(AIAdN) zyxccDOB?H#T;`UedUIc&E>P;un^9#7#6nhqvBsZw-Xs>|oU1OzLUq}wKzhsMv1`a; z93JutLmmUckk>8bF_;N?MaG+D;YpL4!s{OK2ry(8M@&KtnLQ$AEXb5G&zyALIH#OV zL6#VA!g;gCPjY(H#O!HIubVB5&_2c-f6>g!8BrwnHJ;P#R_Y_!%XsL3qfY%_q82XH zR9Ea&#kn;0BlapC1@Y2R-_l%FKTn&H>S@mUdnbi)CkvMF>bIb_s;2R>mc=xCbo9l& zY3=k*Hh2Wu&2+uLyB;yjU#kW->Z3t_-H+>~bLZDcWn3OjbG-=SD4b{lF$zOF=dY}( zTC@O#<7GHdPU;)U%$GM(%{G##SaJ8Sh&({*)*4)dM)~JAyUR{g)a4IdYUFf&hJ|jQ z-Z#@TP#=*JzYt}zxCqPFKzml>BY?+aN&rnKVef#j9_6U7qv>X~)b~hci zLg*9oyp(;Q;CO|!B0}hW0u3@B+AS-DP9cv{!H+;QjQ3-YQo&20>Bf86qg3!a&@|({ z?h)G1=%QVC>a2xQ!Hb~5pzeXRzX_qI$)i+I1Da{PI*$kiRBOBjk5a)h&|Kp!_b3(I z3YufQ+dN7Ip8(Yu?*Wfe!K0vRE;ZgyJxT@t3%bO3zwsy) z>;!4<3XOjrp;4;H9XwYO^zbMZ9036luiL+u1vYG*`tzRn@6c& zHN{tVOM=@yLaSB}txm{?^dt+F1Ue2+h%6tn2(Jfq1Vf!RB-SA z&NXZ$_h5dRn{6)%7I}m&LC|9J@kx)UwV*}DTk8>e%s`hL?^_;GN)8Ca z>+ex2XaJpRPh0O18srpD$AGE~W9pn*t1X9S<1&=ru z4Wv2k?m_864sk+~N3`vrCi5}HBieRQqwy~Bh;|%wh4B`7L>_?@GNsd_RM4l7JHxDd zQ0q}iFyA9|7=o@eANPBN4nt6j@jmYnIt)S0#@pZ#d33M~xg;p}h*Auyz#aN6J)#tQ zlnSKz>}m_;PadU$f2zKRv7PWkI>2pYBk=49uYD~A=5f~L7*Y$UI zOKjOn?r5bV-X}dmi(g*8i>m_a|I2 z`q4CI^J*3>s;ez;t}m}yq*wFiy7HRZ+6B!E>X+0kDtEIU<$e;0xzlpDU{t=K2`}~K zi6UW9ZXSC#?sL9wC+qm``FsCx2q#+X( zo)f9_2z7a7)OVTt<#yO9`fer?_E%3L;2eE79V=&YuWh9^N}7_JE?bv%OfGZEt8|L} z)cI@h*U=$op%hBBQ!H5U%}?;#wo-vFw@1ijQoOW?DXum@b znm*q!8W0u+3*T7CLHv<`(R1*FsU399_PGsXg>ino!w~dg1p>u zdATR#sOS`Wl^Mb9-l&wrF zfwnl*_DR`c%Rw%+Qt%MAYdvX|Cg_o~cC}6GX^jAmyPi`FY@0~irpQoNcS|8jd+#t< zT<#8oD72?a1=TiJIgwdz{m==oF0`(8c5hTU!nX00P~V~@I;O5rf+_4;S&DCKXI+}z zWwAZmKREMPYtK}x6nm$sDCc=6+1Zv}};bop@5dM5Eb6R@oD-<;e z+2m)_k+a26cEk$6vf~E_(dgHqNZqQY_F{Qbp zV9OI06#N5j=&>AE9M8(FuDbP*yA_1D7-Diu-PD$Le%5spTJ9a)u-|p^{|1*7^CHOB z1@?5$=LY=l;!iVvFN@V1FqIEm$F5^y0R=HzyRT#57;GKr#VQFFv~*v`OM0;NAkS1D z6vO1bK9E{RwE|fs+RB%D7-SQ6Tw(E-Q|?cTx`9%3NyXatu)Lpc59{snum!EPyUCeA z>MD0bDL5*>yW`qbLZ97yg$sM;oanj!oaa)oBMnWV@1tEqSlsLJiPCHq>23+{yU;Ub zRSCE9+G+bWk2Y$aHAkh>7ow=OXV@}?K^~>5y|9ZL@kDn~d1Zql_rRRKIlDp0C{NW` zMny};uf@6XT&MAKBQ7Ny?MmG~4`>*`bLqrnFj@|pE{Pl>HuuKg98Rc&n z`f;EBs@h!tCb4{3@!z>>8hCSM@v6$dStF9Kn5k3Tj>9dl@`ERx0KRm}JlbYjrEMy= z^A%1)^z!vJv3=XLEm?Zy;3Eq5L;TQKzp?ZTf^3_-$wK@`ZisrryWD~!GdCrJGsWdw z&m@SU&$Uf{rft^qs_*mFqwPuL&%A{ykHYC;u|e3p)!{o|yk6;>q_F+eSL~r1eW0Fb z7x)Io*Frv#@rW;IJQ@}08{bR+u%p+-6~%w()my3?=m!{V=X5$pS=(3GVX7UXyL)Zn z!ai3$VAyWN+hF^qIPAajw!df{tw8l?Zw;x58)NL~>6y~6cDc9%ozbzodyQMX^$p_| zZ+pYIMeSQ+Jjh5e>_^@EV>Hs>a+kHnjKXtTle3f##WOZS4^wi2Mn+ebI~Tigv8(gK zmHiH+NXAUo_$Diw%NYYwqObI?8jOrfqX81t<1EEnvDVOLGY*+)Nyg4x*!xE3@=mB2 z?>s)1tNX*qnX_8?=W$kkM(jG4TsD4OnDAK%L> zosAdr&Y#7e;z}*a>6J*18rE;B*|Q;TP7dhy11cF5)?PQ=ZVuyRY!~m*Fay##d8f2% zPDY0%3eR^pU9J-COBGMwE=@6+OX~?-+1nnn!z7Q$l*?_&dxzvoZ`alpUP5KD_Lk{# zJ5R05eur~aW-F6=w?J(izsDO->tBNnsb|sDS()wA7-;Bmeor){iIpkXBJB+I>aKnX zIu~0O=!NY(EDGBAooeV18XD*Kmmvfz`EJAJp{?*1vdt8WS%?`)8J+SL(HYQBeA zC>Mg9yDKB!qY?UEboaH0w=XZ~&hOD6=eH)}-2fVDA%6r^XKA|^bhhz619Cp}nm^C( zZUnI$KwiE9av>i^0e7K{1kJa*V?k$IC=)?0l$oFfcDEX|(9nG#7s@w4E)=QGyWH-+ z1ahJL7UV+N1zKcx3rpNOG)l}sE|g0^E|jI9CFbrrkPBrM=v;VZ!R?@WySoO|VCYvM z7m9S2x=;@887iMU9OObd9(1mSG76-XVRRpXnhf0la-n=2n_>D!aP^bhV+4Am{h5AQ#@D z`-Z$pAjex6@otZJUx;}6*5Voq?^%$0?n@x|+-;z1?d~qnb%qLig(^@>LDw6vFX#qC ztswW@`#>&!Uk9b_?go&1#?v78j2A%5?d~g}8x0*%8isNz$c1tNsMYSy2Dwn?gIp-h zpcQsE4O(gF)1ae4Wr4o?=x^u;AQ!(apmE0Q)jNE~aUd7oRM5$Gw-!X!ku&w6LB{(a z$oc&*kc;1wAm?`z=vZ_2N057(b|5()LqW&b-3pNNE2VtS?`qJIc30=oJHJnWoZr8I zjP)> z=EiYGJ1uPyXVf6{d8ozBa0U+_VI$8N2R&)CBR6raR^8xsEjXXH>)S$qU-lvd6L%wN z?oAVy)=087aTNs$J06be#ojb%^)NSDW>SbU#TJf`(&J31b*J247X=|lBlytJoMJQ< zmMMB2s3WB!AWOv{w6mRu#B7TJh?iHvp<|oS)3!_45G+o zd<}&2OcrM}oCdn;jGHszl$OLfGvGX$#i@Zam4+?js~*nwEY31Gs~MMO+}t8xjPNp? zkIGjT=VAF`T$XY3WjGa#qB0!4{XUb$`3al`Mn)MoFUuEWn+)f7aGVKCi@w6o<{Xj3 zIVp#8Y8HpHx%I+stJ-Q2O#jkwakgV4&M3T8Fu^4WSbIg~NxkoWH zUsuIB=4(a7;laTq$`=i-nQT2^WHe&{_2e|z-cY5?sJzRVn=CzGWNW9sKI(m$8}t8p z&(Vbodt(;ohg_ixsIjgA?ORoiHA^n5n>)X5?&bPUl(XG+&vtNng>`nUrnPtObgg->Is(}9 z$>>orOx?@eV6ifD!5XH&aHmGbE;63nX5qNQm^Xhon)j$>yUYW0m2v9NukkKpC)#+9 zJEz58xWh>Ng-*Wse_nCd$%D~OT%Iv|)!Q|E#Nff^Tzb2D29I2G&g`mLL2$3N9lWvB zHllp*$~u2(?^ZiAjg@2P(cAU(KsQ?1ev)%?lt!eT=t zcFk#Oiu+DRP5074>4x~5mw2zKS7G_%4`=HNT|C(GU}|;Jom$@?Obdel#>y!CeEPU{ z!v7U+ellII-1}NZY3cZ6c#YgUbOvigSQ)kb`NGpX-%PAivJS z$|!!F>Gzt3n^_5WWc}OH@3n^K%n1s5L*A{O3U(eu-Mgsa>yN~(zar?(F`i21GOcun z>I!xJI(8m5dDfBq$c@4oL$B^kf%RnzmdtIe(`g5LQnjJ;Zq)hfh#L8#4-U^4s_>zS zgmKfz!iMP38!5Vab}Mv0=n7~*=t`*Ka}zX~#^d12FdQ?JOyjL^hbPXxk{>;%9IJhY z&bTy&{WTrdp3|w5uEKOWPj-r!;t`(0ql1McLW#m1L79=oApca6Fb$#H#rqv;)%9!8 za_H~#r2T04GT~S&nRcx=B=v&GkHXcg*=dTL8JBja?bB(m+)L`?XC}E$M;s+Sk=Pxu z;%N=z98asxE7Y~lD^$Fg#mLF$+u$qscv>|#8M3b$-`$D0}&H5cD zsAPF2RI;QWO6#@f9Ox-fX4P_JwG_VO6fcW<{|L+Chrq)VvXURUS%4jqEvwp0A7I5X z%mQ4-4aG61goTwZqjE#dk`5(|X{U(FS9L5n#YfjYu)fQ+vl$h~{-n7N^l0b+DBpdg z^+q`WIv%QX3THu&hh7BLIfY7>&M8c`&jkgh%OPr?*Hfbrxro>K zBLjDqGyP?H2=~a3wBGlRgQ|Q|@6#2~fl##*CqmWdodmrDO51CC{RTsmd86=T!Wx?F zKmLPz$?<{wbj9-gpl_xe^Ui|8V|(-3OV1JZo3R3_Q|%N79g#<6XkM_SMlah|+|@<3 zU^6YHJF8GK2#w-Yja9`#4ra!XUd5C8Zf8aEl}}o6W`!U}4&nGCUZ3SRtj|}2lX8$B zxk3KHVHr8ZUp_k@KXjruD(o+!4#X9coU?%S>}qUQdq%nxAL?gXb@&Wu8FT_v>8^w- zu4h7%QTE|8|(u=Bn(!MBrZ zwJm>!YDH}qG%2qYv{jOoWF{kd#mmg6xSu?yQ-0(|bZ{Pd?WOlijJ^^IK>t712%4u@ zsOBhZvTKfNm>Sf~a3QKo8(@b<`BTls0ob*k`B%z-^6qa?jg$Tk)mZZlXa$tMD?JU` z6*>pn4XTNX?$8xbo#}oDl-2U|L(qMo3R`3TZ$f)RpMmP^?U$ejK&hv8);7nZ9MkuNteg4aCZvM_wrIO)1kEY`gS&_{w{^D0uq;v z+5%m7CL8&Y8_^>Yvaz|-_qM4EWz)dp_b401uNoVd%`9Y~xL*KOTX!K;ea1!5WVw<5 zJ;~-%+)wt0@)OFYJXbbM3%~cm(W_-|;t?0l4zA<@v@ogWm5|sLpXJLWTWVT^WynBrUjWq@b0Ksz^m6FCU8jyp$i^+ay!YiMUt|1c>eOOnp!T31 zs`iFP%i5bO-iB-*#((ntBi`Qh&m)_ET7%P%$i)iIn~@D=$z;>wWpkyM4QYDITDNFNan07S&v4&Nk!hD04=J z>m@+)r;Un?WKfOOn4dn+%u3QI`P>2>0KFAD9=aMj6Z#)e##5#PnLfaDAS=wf;geU| zk7oMh?|~AA)?9PyyVflBH1^6@rsYR%t>}P6zWJr~_r9ah;H!cN?4d1G{Hn3>K6DK- zP~7i_s-JiODw#eA&DV#%)%vb}LiJtrxID7?r`7jyL|_lHQT(d0aoO;mX!V^uH+^=@ z!PwaAGti`LXg6*CO8#XuA5jL?wcckwi%qTr%8%TrtRA0~P0iA{>Y!qrX#YcRTr! zoAa>)6KQgv->7+cOGQL8G0J;QdAlHzg~n!Pa_8|BmuhSgR`0Je-yofe-xJWIpx=ZJ zfqo0B_y3Jh#r@mRWFD`AuQnx&z3PqH3*u$N2}HO)FI{QLsFWnvGM-!N#rRx zd>48Q^m|Z6;%TU!^8@Gypg)AxKz{_~y)k$e+5&wJx)l06RI>aDG?_p2kyiGKp)$&! zL!e>)=mVIO67$mXBR8wDCnfSnABCy3s=VYeZ#H){98vlG3i6A6{Sa4&7SEp9JZi9e zT<6(SfrE3Mqfnobnnvj}Qg&tOJz~s~(QdQ@PggmQ_N(+)V>OOggq8VkWGk8c4663= z=TODyMW`P767*u|FQJQ}o1hwl{tBu*`d?@}^c83a^i`un&vmx%t6nJ>DZBqn(t8-BQ_0Gaqp%q zhjUuyUe0GdQke5KoW?)Ted~&W_9qnWinUPOhchmaeiVjxUt7>#)B@#K0+c_cd1Ee> zHzR2i{QBj;TnUiW{AA^)SB(_Y1eDMd^mY~f-w2WE8uwOdo+{^?gkxiK3?&tB-rc`IyPt@bhjj^_9zwH4jO1aHhEMMyy8(R zm`JOkyCt?qNQl$$;b~;fY4{#-8oo!VponqR4D*rlC>0z4nr^&Yo(GM9*F7lj5o)99?-6=N2L?lD$WcN{;+b$6Lv1?|$JV!=Yy`YNDS z6t%dr_(F@1t!R<=O9bVyC_d1|1qE3UMPrPlqKUS#R84Js#6~f-gc{pI)z-HDp`;3C zX@Wu{R@8oekC{2McUiZ_*tGE`_wMI@=e*|3nKQF9bAMkc8Lt{Aq6zF{5uz%?XeY+A zQxaA|muZfBobWAyW~%m}QxYD7W~lar6SYBCSZz*8*aS^i?KP()Y=$mZ?H#8i?0}}J z_JI?Q8T+QLI#o{W3(yozcYqVVP0(c3j&MrC3D6|fhB&b|LK9UR;gp0?&;->+JJI9N zc-3Y&;nD+*Q%(Gdgp#lXl50%Wp~Z! z($Whl`z(FaesQ+7zcG%!X#GHqR*uYauJ|aVORnI)!wVVKB3>P<1%jiCGG|TD3-} zB-{kad1!TLcEUjnYEWTXqDkjCyvuj zc#|Cv!V=AKuoE6@(5RU74$go)4!)uuWnVGeYgYF9fYVIj0swZ%?sEl65b9dAi@1@bceVp(Uf>voMy`7S97<8v^r81WC!&VUiQaTIdX|ZJSed*zQE{elv9u z8s$X$GHpqw?S#(MQik?1st&`Pm~Audu1wniouxTy`x@ci=EPAW(^@j^b?EFM{nGys zBi!nolJK)kdo0s7X4}Ak7TJnod>}5{)pY^k))!{s+BwUqgb2Dvi zrahi%B})CWy^Z$hOBDTIcq;9Zr{~qqXs-PHTD*`ZOzx|{fzmMdm^C!^5|@birB55h z7Gl}?rPQf{==N2yQvm_FB*yAiN)<;V4fY!avrVHXXIV6T7T#9UXEBFULzFD7#JAOe zU+srw7jpxR?tgUif||YOO7QD`5`DjFq{Mjk7S#|Kc1Xi6UD_!Z0IXQL$jb1NE84Od z<(2i^27DH;+wzTFn4q+zJDfvEct&NOTq3}A}x z7g-6Kzlvz>OT|2eP{K>=N(>+TQC<)$jVwwuraJAG5RC^J0`Z8z)0OrBe-!VqHQk?V_^A0`-EWj#uhjj?dfXX0JErA1lypDSA1Zhc6xv_IKqf>p zc2+z`P6+$mpZ1pnzIo!jTM{krk%>CJhC)gLm1mo?)Owr>{fG{lMvbMn#jem>!Z0Y9vA+6NZg!`=G%7K z^j!T%_g;|h1b9q!I67CR+}Vp!Ca<=A&{6%R zw)GRMyz|xP_AT*ouig6F84vCpldro)G|vLRx7Ydc5J>wzwl8Q~w+w`i*1w(k>A$@F zpZZTWKsNrqxb5Gt>)3T8Q|p2DHbHuRChiu6`qT5Cw%cG&^TC(8{Rd;?vf&vn7Ns^W z<-7iE4IeFO*wD0K!^e#$^Z7|*A3i^A+^coCm>g{_9LAQ_Z*4tR+%n%N92}R`ztP$o zOQ~}=77o1KpQ_)uhoc?lD1)P5{b?V@^NBoZS*3e6H`=1}OL=lL-RJe`O?_f>#$+DI z%OBPJjPYN#|L^F2DK-t;#C)XG-%kZTYZOFtaeMPXXSaU|*OU64pH*=@1LX5hM{|JI z-?5E}I#rw!o&1`aNoq!tPf^pm;I7uNt83)W!Hn5j*}C`BvW42UC!zlMke(h}_H;UD z^Hs;~?LjB3%W?Pd64B@2w7g4k{fjCYUqbb5+rpHR2w!yCn)^| z>aI&SLjzRX0dZZM+CG7fS8ac$7+Gh6mP1y@xzK7&w;1AT4olZUT*rcb2PL{xZr}}6 zO~PJYtlImKwOJ;wb9HG=*Rb(r##m5=r%DSVb5F**2+io)dN|_5;DNT^<{}rJHx>{*HWTm_cSt)Np*XYuBAS>m4 z$lFqt8dB6i*J`>t$V#~YvQoxE*XdHZL2ISVg1ld#>vic8=mw?rkd^Wp2sDWfgs|dp(E2RPQeu0{F=~T%31@eA@7V6R#=w_w$khcZ$wm{9gbPMEd zfxInDE{k+&4YXLP4)T71tdz0PExJ@f$a=p(-Y?Ltx^xM&MCk>{O8G}drRr2WD5F8p zQq6G!WF-%StmKi zhmh4#Rbw{_Dnc!Eho-B8tdxr&D`h++7xpW{6ljE&JO{E;nxIv>v<13L=^1F4ru#i) zM~$~3D|r`moGz{0Cp9J753=$OhtANY1EE8dhGa`Ghpc3=TCtLEhpgoLp~E!CTFAcwswW^jmc0rcp-bO^&Qs#N<7vQc zH|~ZyXS*Q}RCgtHiT8WF7xDgIx83N?I<#-6@E}X1Z_IW>$ZR(x2RB0a6yip@TowG% zZ8xNDv)$mX6x&b6f^FUD8Oe6~C-45e)7Kn;$xhFHM5|(her3B6!hP6l^rSyl^YpbkCSl7qL(68ir1pJihUm0R!&nBA(r%#Nk#cl<*;PE?a!LrN)J#va^y#g01$G z1?ZBCpq<-T91Bx$Qu;gsfBnk-T2;YPqf*mwu+uwOlP*}psgd+h++(s| z6sZ|qJY%dBAmbr4O zr;tC=#@w2tTb5>;>hh81npdVQEK^pLDXYtrpOh)TC{vy*Q>5qZmA2@kye}E!mAx|U!5!x#)rw__Fq&&?al$EYn{|rSLz+2LoGJ%V&z5@`YYyN=vL9FKO+JRJ65!=!^@O$I(|Ht)+OeZSqrr;dFVG&)EGqmgU%F9^N^>>jX@rZ6|H?; ztY~j+iWOap&9NevF~W{m(PKl&YuCCs5^#=EPzIqKT2SP=$#Dfm8eLaVWaUQ|6lwIB zf+CHcQBb7O*A*0LbW5!0n$D-YvL4gkXo?l>`Ia(ecdTeXmvle%?Io)fdc=yBb3?3X zE_nnxt6g)gj1|qbJ65bN-QNp!#fs*dA1j)xDOR+umRPa6V#Vsxd81HQtk`VX!Sg}5g70tCMR;&**g^I(z%o%JheHBeeXcA{K?4E(i z$Y1HiC^o?I(liAV5(?jAuF;-L(`f#=uE-ZF`<8+thQeRA35hvyjI|$As~ble;lRES z!foGN>vW3QZijTe%OF4*rU zE%11hE|$$}Bn#VZMkE$wS~+^)%?eGeM>=Ij5*d)hk!*`zB2jEp++&D$o5%RfzXwAN z6=-O#BANjtOiLycp(SH(`x(2Vh^80LGT3htqf~j8)J;S)@u6lS*_SNcoIIw5)s=dS VXj0#X%05Pv&RBt z+|!>OCw|iS(Y`&PV|v{V=7jA=ModY}2&1R3Gi4Hy!)EqlT?VMx+aCbc=-@CfC5fqk z5pJIN^!Le3!dT7w5(aZ?yFv=nc7+sXzYq*Fw*%d{j0wp&``yggjpJ~F8&|NKd3(Wb zmUep#;~-v6|IMO^FjH*$qQ5NIgEQg~%uMeXlY`R(HgP+(OZ{WnF7=N!ZXc%Me)oh5 zr{@{-@@!|_%Vv%UR4t}b*XcP2*reD%;kwHTV$it*Y}?NrVAr(7Gzb(i(>;p#1h-fG zV*iH-O|j_{{;*?rYRd_PQxlF)-%!Gr)o$>YeY?S5j+`TyHh`SEUG@;CCBl_r(+iGr zVmI9P4Z?8E*AVBwILf*G#ZfNT7np{F)79K{+{ws>OKsv70fmFXCT=Mp-R`rAd%Mpj zo`nrK^v4?WHX|ZQeEM%wUSW`a0W)5(ejPL3?K)zR8(U;GIBs)tYS= zelPNyua|C>=Dm?^dfg7@gzZK~Oi9cLqo=PkWfGCYX7*!U2B_KF9{|LJHG%g%oDL5DYW71Kqfc3CTG7-OSjH<8Xo-SFoFTd%p@c81-QX|#c7wkhIY%&U06BHL>>*A|ge%3S7aZlp zZn*CogyEX6ARsJvJF?t1;H+SRW1lgDRLPQ(|jrfxBFBGeM-eJZ96a?zc2v+ZZxWJ diff --git a/winbuild/output/x64/Release/kernel/mtp.cl b/winbuild/output/x64/Release/kernel/mtp.cl index 7d7c593..d59dbb1 100644 --- a/winbuild/output/x64/Release/kernel/mtp.cl +++ b/winbuild/output/x64/Release/kernel/mtp.cl @@ -608,11 +608,14 @@ static unsigned warp_id() return ret; } #endif +#define LEN 8 +#define DIV 256 +//#define FARLOAD(x) far[warp][(x) + lane*(LEN+SHR_OFF)] +#define FARSTORE(x) far[warp][lane + (x)*(LEN+SHR_OFF)] +#define FARLOAD(x) FarReg[(x)] -#define FARLOAD(x) far[warp][(x)*(8+SHR_OFF) + lane] -#define FARSTORE(x) far[warp][lane*(8+SHR_OFF) + (x)] -#define SHR_OFF 1 -#define TPB_MTP 256 +#define SHR_OFF 0 +#define TPB_MTP 64 __attribute__((reqd_work_group_size(TPB_MTP, 1, 1))) __kernel void mtp_yloop(__global unsigned int* pData, __global const uint4 * __restrict__ DBlock, __global const uint4 * __restrict__ DBlock2, @@ -625,10 +628,11 @@ __global uint4 * Elements, __global uint32_t * __restrict__ SmallestNonce, uint uint32_t event_thread = get_global_id(0) - get_global_offset(0); //thread / ThreadNumber; uint32_t NonceIterator = get_global_id(0); - int lane = get_local_id(0) % 8; - int warp = get_local_id(0) / 8;;//warp_id(); - __local ulong2 far[TPB_MTP / 8][8 * (8 + SHR_OFF)]; - __local uint32_t farIndex[TPB_MTP / 8][8]; + int lane = get_local_id(0) % DIV; + int warp = get_local_id(0) / DIV;;//warp_id(); +// __local ulong2 far[TPB_MTP/ DIV][256 * (LEN + SHR_OFF)]; + ulong2 FarReg[8]; + uint32_t farIndex; const uint32_t half_memcost = 2 * 1024 * 1024; const uint64_t lblakeFinal[8] = { @@ -647,18 +651,9 @@ __global uint4 * Elements, __global uint32_t * __restrict__ SmallestNonce, uint uint8 YLocalPrint; ulong8 DataChunk[2] = { 0 }; - /* - ((uint4*)DataChunk)[0] = ((uint4*)pData)[0]; - ((uint4*)DataChunk)[1] = ((uint4*)pData)[1]; - - ((uint4*)DataChunk)[2] = ((uint4*)pData)[2]; - ((uint4*)DataChunk)[3] = ((uint4*)pData)[3]; - */ - + ((uint8 *)DataChunk)[0] = ((__global uint8 *)pData)[0]; ((uint8 *)DataChunk)[1] = ((__global uint8 *)pData)[1]; - //((uint2x4 *)DataChunk)[0] = __ldg4(&((uint2x4 *)pData)[0]); - //((uint2x4 *)DataChunk)[1] = __ldg4(&((uint2x4 *)pData)[1]); ((uint4*)DataChunk)[4] = ((__global uint4*)pData)[4]; ((uint4*)DataChunk)[5] = ((__global uint4*)Elements)[0]; @@ -690,7 +685,7 @@ __global uint4 * Elements, __global uint32_t * __restrict__ SmallestNonce, uint FARLOAD(t + 6) = D[t]; } - farIndex[warp][lane] = YLocal.s0 & 0x3FFFFF; + farIndex = YLocal.s0 & 0x3FFFFF; barrier(CLK_LOCAL_MEM_FENCE); ulong8 DataChunk[2]; @@ -710,7 +705,7 @@ __global uint4 * Elements, __global uint32_t * __restrict__ SmallestNonce, uint ulong2 *D = (ulong2*)&YLocal; D[t] = FARLOAD(t + 6); } - + barrier(CLK_LOCAL_MEM_FENCE); len += last ? 32 : 128; @@ -721,10 +716,11 @@ __global uint4 * Elements, __global uint32_t * __restrict__ SmallestNonce, uint #pragma unroll for (int t = 0; t<8; t++) { - __global ulong2 *farP = (farIndex[warp][t]UfIVCoXl|qkM0mCUin(tEAi~Uo2y=m|V+A3? z#e(K=Lj)n#-4#Swhh(m|5Q@1#SMUJ65u?b!z`)7C!Z3+lbh3;%&*Zy8qHqI&y7`46 z_NWS@7+MPzo-Aw$S1l+$8Rppk!YGb~c`aWA-3j3Exh{ed5HKq}MX_4BT@&1 o)`~&gJy{GMJ{QCw;qzAvVI4Hc^2L#?f`+0viZ!t4^_0*A05W~b{r~^~ delta 663 zcmexl@X26;44a9up{a$z7 zlpiAO&2Nhk)&i^C&2Nnm5}!O*2%=I`z#c9PG&fQNB0O6F#oV_75MgFPgts}>ZW40G&%VHC&0yp}J5?gVi7To*wJ2$+?gqFAlmE{fGkWib>h oYsDb$o-76rp9^A;@cAo-unrnz`Qk`cK|@g-#Tr=jdP-;l0ISxy&;S4c diff --git a/winbuild/output/x64/Release/test.bat b/winbuild/output/x64/Release/test.bat index 98ea629..50b7bcb 100644 --- a/winbuild/output/x64/Release/test.bat +++ b/winbuild/output/x64/Release/test.bat @@ -2,15 +2,15 @@ setx GPU_FORCE_64BIT_PTR 0 setx GPU_MAX_HEAP_SIZE 100 setx GPU_USE_SYNC_OBJECTS 1 setx GPU_MAX_ALLOC_PERCENT 100 -setx GPU_SINGLE_ALLOC_PERCENT 100 -del *.bin +setx GPU_MAX_SINGLE_ALLOC_PERCENT 100 +del *.bin -rem sgminer.exe --kernel mtp -o stratum+tcp://zcoin.mintpond.com:3000 -u aDn7MMYjVQqenT11VFDYHfFdwXmSTRUTak.worker -p 0,strict,verbose,d=700 --intensity 18 --text-only --more-notices --verbose --debug --protocol-dump --device 1 +rem sgminer.exe --kernel mtp -o stratum+tcp://zcoin.mintpond.com:3000 -u aDn7MMYjVQqenT11VFDYHfFdwXmSTRUTak.worker -p 0,strict,verbose,d=700 --intensity 18 --text-only --more-notices --verbose --debug --protocol-dump --device 1 -sgminer.exe --kernel mtp -o stratum+tcp://zcoin.mintpond.com:3000 -u aDn7MMYjVQqenT11VFDYHfFdwXmSTRUTak.worker -p 0,strict,verbose,sd=700 --device 0,1 --intensity 21 +sgminer.exe --kernel mtp -o stratum+tcp://zcoin.mintpond.com:3000 -u aDn7MMYjVQqenT11VFDYHfFdwXmSTRUTak.worker -p 0,strict,verbose,sd=700 --intensity 20 --device 0,1 pause \ No newline at end of file