From 9eb58eaa2d96172ec3714c872d47a916ad6cec4d Mon Sep 17 00:00:00 2001 From: xinyulin Date: Wed, 17 Oct 2018 04:10:44 -0400 Subject: [PATCH 1/5] basic basic basic done... --- src/CMakeLists.txt | 2 +- src/rasterize.cu | 131 ++++++++++++++++++++++++++++++++++++++----- src/rasterizeTools.h | 8 +++ util/CMakeLists.txt | 3 +- 4 files changed, 127 insertions(+), 17 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a57f69f..ce4f1b6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -6,5 +6,5 @@ set(SOURCE_FILES cuda_add_library(src ${SOURCE_FILES} - OPTIONS -arch=sm_20 + OPTIONS -arch=sm_50 ) diff --git a/src/rasterize.cu b/src/rasterize.cu index 1262a09..ae4c9e4 100644 --- a/src/rasterize.cu +++ b/src/rasterize.cu @@ -46,7 +46,7 @@ namespace { // glm::vec3 col; glm::vec2 texcoord0; TextureData* dev_diffuseTex = NULL; - // int texWidth, texHeight; + int texWidth, texHeight; // ... }; @@ -64,9 +64,16 @@ namespace { // glm::vec3 eyePos; // eye space position used for shading // glm::vec3 eyeNor; - // VertexAttributeTexcoord texcoord0; - // TextureData* dev_diffuseTex; + + // ... + + int depth; + glm::vec3 eyePos; + glm::vec3 eyeNor; + int texWidth, texHeight; + VertexAttributeTexcoord texcoord0; + TextureData* dev_diffuseTex; }; struct PrimitiveDevBufPointers { @@ -136,6 +143,13 @@ void sendImageToPBO(uchar4 *pbo, int w, int h, glm::vec3 *image) { /** * Writes fragment colors to the framebuffer */ +__host__ __device__ static +glm::vec3 getColorFromTex(TextureData* texture, int uvIndex) +{ + return glm::vec3(texture[3 * uvIndex] / 255.f, + texture[3 * uvIndex + 1] / 255.f, + texture[3 * uvIndex + 2] / 255.f); +} __global__ void render(int w, int h, Fragment *fragmentBuffer, glm::vec3 *framebuffer) { int x = (blockIdx.x * blockDim.x) + threadIdx.x; @@ -143,10 +157,27 @@ void render(int w, int h, Fragment *fragmentBuffer, glm::vec3 *framebuffer) { int index = x + (y * w); if (x < w && y < h) { - framebuffer[index] = fragmentBuffer[index].color; - + + Fragment fragment = fragmentBuffer[index]; + glm::vec3 diffuseColor = glm::vec3(0.0f); + float texWidth = fragmentBuffer[index].texWidth; + float texHeight = fragmentBuffer[index].texHeight; + glm::vec3 lightPos = glm::vec3(10.f, 10.f, 10.f); + glm::vec3 lightDir = glm::normalize(lightPos - fragment.eyePos); + if (fragment.dev_diffuseTex != NULL) + { + TextureData* texture = fragment.dev_diffuseTex; + int u = fragment.texcoord0.x * texWidth; + int v = fragment.texcoord0.y * texHeight; + int uvIndex = u + v * texWidth; + diffuseColor = getColorFromTex(texture, uvIndex); + framebuffer[index] = diffuseColor * glm::dot(fragment.eyeNor, lightDir); + } // TODO: add your fragment shader code here - + else + { + framebuffer[index] = fragmentBuffer[index].color; + } } } @@ -638,7 +669,21 @@ void _vertexTransformAndAssembly( // Multiply the MVP matrix for each vertex position, this will transform everything into clipping space // Then divide the pos by its w element to transform into NDC space // Finally transform x and y to viewport space - + glm::vec4 mvp_position = MVP * glm::vec4(primitive.dev_position[vid], 1); + mvp_position = mvp_position / mvp_position.w; + mvp_position.x = width * (mvp_position.x + 1.0f) / 2.0f; + mvp_position.y = height * (mvp_position.y + 1.0f) / 2.0f; + glm::vec4 eyePosition = MV * glm::vec4(primitive.dev_position[vid], 1); + primitive.dev_verticesOut[vid].pos = mvp_position; + primitive.dev_verticesOut[vid].eyePos = glm::vec3(eyePosition); + primitive.dev_verticesOut[vid].eyeNor = glm::normalize(MV_normal * primitive.dev_normal[vid]); + if (primitive.dev_diffuseTex != NULL) + { + primitive.dev_verticesOut[vid].texcoord0 = primitive.dev_texcoord0[vid]; + primitive.dev_verticesOut[vid].dev_diffuseTex = primitive.dev_diffuseTex; + primitive.dev_verticesOut[vid].texWidth = primitive.diffuseTexWidth; + primitive.dev_verticesOut[vid].texHeight = primitive.diffuseTexHeight; + } // TODO: Apply vertex assembly here // Assemble all attribute arraies into the primitive array @@ -660,12 +705,12 @@ void _primitiveAssembly(int numIndices, int curPrimitiveBeginId, Primitive* dev_ // TODO: uncomment the following code for a start // This is primitive assembly for triangles - //int pid; // id for cur primitives vector - //if (primitive.primitiveMode == TINYGLTF_MODE_TRIANGLES) { - // pid = iid / (int)primitive.primitiveType; - // dev_primitives[pid + curPrimitiveBeginId].v[iid % (int)primitive.primitiveType] - // = primitive.dev_verticesOut[primitive.dev_indices[iid]]; - //} + int pid; // id for cur primitives vector + if (primitive.primitiveMode == TINYGLTF_MODE_TRIANGLES) { + pid = iid / (int)primitive.primitiveType; + dev_primitives[pid + curPrimitiveBeginId].v[iid % (int)primitive.primitiveType] + = primitive.dev_verticesOut[primitive.dev_indices[iid]]; + } // TODO: other primitive types (point, line) @@ -674,6 +719,56 @@ void _primitiveAssembly(int numIndices, int curPrimitiveBeginId, Primitive* dev_ } +__global__ void kernelRasterize( + int num_primitive, + Primitive* primitives, + Fragment * fragments, + int width, + int height, + int* depths) +{ + int pid = blockIdx.x * blockDim.x + threadIdx.x; + if (pid < num_primitive) + { + Primitive primitive = primitives[pid]; + glm::vec3 triangle[3] = { glm::vec3(primitive.v[0].pos), + glm::vec3(primitive.v[1].pos), + glm::vec3(primitive.v[2].pos) }; + glm::vec3 eyePos[3] = { glm::vec3(primitive.v[0].eyePos), + glm::vec3(primitive.v[1].eyePos), + glm::vec3(primitive.v[2].eyePos) }; + AABB aabb = getAABBForTriangle(triangle); + for (int x = aabb.min.x; x <= aabb.max.x; ++x) + { + for (int y = aabb.min.y; y <= aabb.max.y; ++y) + { + glm::vec3 bary_pos = calculateBarycentricCoordinate(triangle, glm::vec2(x, y)); + if (isBarycentricCoordInBounds(bary_pos)) + { + int idx = x + y * width; + float tempZ = getZAtCoordinate(bary_pos, triangle); + int depth = -(int)1000 * tempZ; + atomicMin(&depths[idx], depth); + if (depth == depths[idx]) + { + fragments[idx].depth = fabs(tempZ); + fragments[idx].eyeNor = BCInterpolate(bary_pos, primitive.v[0].eyeNor, primitive.v[1].eyeNor, primitive.v[2].eyeNor); + fragments[idx].eyePos = BCInterpolate(bary_pos, primitive.v[0].eyePos, primitive.v[1].eyePos, primitive.v[2].eyePos); + fragments[idx].texcoord0 = BCInterpolate(bary_pos, primitive.v[0].texcoord0, primitive.v[1].texcoord0, primitive.v[1].texcoord0); + + fragments[idx].dev_diffuseTex = primitive.v[0].dev_diffuseTex; + fragments[idx].texHeight = primitive.v[0].texHeight; + fragments[idx].texWidth = primitive.v[0].texWidth; + fragments[idx].color = glm::vec3(1.0f); + + } + + } + } + } + } +} + /** * Perform rasterization. @@ -724,7 +819,15 @@ void rasterize(uchar4 *pbo, const glm::mat4 & MVP, const glm::mat4 & MV, const g // TODO: rasterize - + dim3 blockSize(128 < totalNumPrimitives ? 128 : totalNumPrimitives); + dim3 numBlockPrims((totalNumPrimitives + blockSize.x - 1) / blockSize.x); + kernelRasterize << > > (totalNumPrimitives, + dev_primitives, + dev_fragmentBuffer, + width, + height, + dev_depth + ); // Copy depthbuffer colors into framebuffer render << > >(width, height, dev_fragmentBuffer, dev_framebuffer); diff --git a/src/rasterizeTools.h b/src/rasterizeTools.h index 46c701e..3aea946 100644 --- a/src/rasterizeTools.h +++ b/src/rasterizeTools.h @@ -99,3 +99,11 @@ float getZAtCoordinate(const glm::vec3 barycentricCoord, const glm::vec3 tri[3]) + barycentricCoord.y * tri[1].z + barycentricCoord.z * tri[2].z); } + +template +__host__ __device__ static +T BCInterpolate(glm::vec3 bc, T v0, T v1, T v2) +{ + return bc.x * v0 + bc.y * v1 + bc.z * v2; +} + diff --git a/util/CMakeLists.txt b/util/CMakeLists.txt index c995fae..78fd859 100644 --- a/util/CMakeLists.txt +++ b/util/CMakeLists.txt @@ -8,5 +8,4 @@ set(SOURCE_FILES cuda_add_library(util ${SOURCE_FILES} - OPTIONS -arch=sm_52 - ) + OPTIONS -arch=sm_50 ) From fa7668f083bf4467c39f8bd031ed9c897a92248b Mon Sep 17 00:00:00 2001 From: xinyulin Date: Wed, 17 Oct 2018 20:49:07 -0400 Subject: [PATCH 2/5] line point done --- img/duck_big.png | Bin 0 -> 58285 bytes img/duck_line.png | Bin 0 -> 20391 bytes img/duck_mid.png | Bin 0 -> 30237 bytes img/duck_point.png | Bin 0 -> 11081 bytes img/duck_small.png | Bin 0 -> 14358 bytes img/kart.png | Bin 0 -> 69489 bytes src/rasterize.cu | 88 ++++++++++++++++++++++++++++++++++++++++++- src/rasterizeTools.h | 8 ++++ 8 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 img/duck_big.png create mode 100644 img/duck_line.png create mode 100644 img/duck_mid.png create mode 100644 img/duck_point.png create mode 100644 img/duck_small.png create mode 100644 img/kart.png diff --git a/img/duck_big.png b/img/duck_big.png new file mode 100644 index 0000000000000000000000000000000000000000..8489a13f8302d7da96ea9a94f66f0314a4bbb8a0 GIT binary patch literal 58285 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 O00K`}KbLh*2~7Y6q@a)h literal 0 HcmV?d00001 diff --git a/img/duck_line.png b/img/duck_line.png new file mode 100644 index 0000000000000000000000000000000000000000..c5034ba2f676159b1da43f3c0821240cdcf70556 GIT binary patch literal 20391 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 literal 0 HcmV?d00001 diff --git a/img/duck_mid.png b/img/duck_mid.png new file mode 100644 index 0000000000000000000000000000000000000000..eb682facaa0103bb9fbcd8d14891ce5ff5545e2f GIT binary patch literal 30237 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 u{5T zXWgAuw`pyIAV~G}sb4%HNI?^V^%4*Qs-se_y@~KJ9SNZimGM&&G|o%f0jR3{mZsL{;}-y2{~1vINp5oj2BjD z6T0FTT2%hxd^G|i(VgjJtprw{cWc9z%*qvqJ@9lnSo**-{K@ifkN^F1epNg2XYdF- zKXAxI^ZTD&D!RIr)Bdxx{(rDE@#}9(B0Ax*=*wbK_=5z(hyAo#2R@5a(L`#)E-E@O z*2e>rUHKoglB%%N*%ubh`}}*qqQ|=J$fVW%dXds~g0$9I`e_?sw0#P(7#WZ(nr`#S z{=&#*iT)di;dsUT2^aNe0_*}_a(Qra05fPPiPuO%YV$sNplOs4yWEdD zU8xJh3bncmG;V$@lZNn;s^fRn4Ay*Ek7_s=cqA&Y+huLJnn~-})BNXaZtURariI1H z^dPpY)9TUiVcKd(Zt885ppRN2^f?*yDw%l!rp7D&bmd>zBi<_?)RMov)w@a(y>X?P zm#orhbm^Kweu+3E%W~se9y=;|*@`u|zBVTFwR>=xuaNqF5HS*57mTtLKW4Y<0&3@TsF9JXKl zWZSPy{b1gVT5o_wF?gc#txK3h|BuoH6XT}a`D=OKU0h>3u1qa0Ru1^*lZec1fuPnX7YNlm5HWFM=ZAMx|Etg z;umpT*{e=`I)QtW7P`?{0z>1+kKzJMqYB>K;~Y+Wt+{?7d|QBu@tphelY7H%!M@*q zi(zU8)^MHLJ+wS>liHGT^8a;6W>I5zq7Mzj+2;J%>96A zWqxa# z8lKE2NH`yryBa*2=+%>78fTAt71b8>PX86bU57W#y&l;mJ5X|5@4@TtR^-wTC!ZW5 zSAMY}&V|^K^+xkcnX=PF5(6X+#J&JjPs^gn_G#k6!n;qOmhpFHlU}b5XAv4jQt+xs z(SzI~dfe1eA#z?!a^yc8CWK{2S%gTdC-@oYq$yd9c%0e*aAsG+at=p1 za6N0YiRL6NuRI%RJl`5#M=JkB{o zsr2ZSgrK-41(+!_qtT~1>%MN$ed}rB(rzKaVlHS3U!dCYDsGalD7qP3*17=9_D|qS z4rASy3JcvJP1!Ls*2)%R^?3El+FDs3olIg z7&y7uFSyUUInjgGvx-_qXBBnq^ke|C?TNvQgb zYXiA8*F?-xsdRBe8s$^^=|74qu4+u^py1hN@*i2&X=tJuKKy_F_&?BP|94A^uY2ci z$U%^4s_7;Odj3Nikgu>e+ac(Ylcqcb4JkQ7P>NQN5(J&yuL9PE-`WR3$1?uA`2W2( zC_xCrZn>1xxAswL+?IBjz0-oCPXsANhl$=hl2jpYWychnAHNhy3s#^|Q}QMXv6}jEHRtr4d zy0~Qpz zFKrdP=O^K^GNV%K>Wzar@=)bAN2Gjc*dJbT8Pn{+P`~c6lH73m)hzWZp)nkkB69G}cFl@s zqlfYu5)jOhY+=Rd?IR0Dkoh*pN6r^8jBKt8mv?-I_^PsFFCM*kpQHe_fy92-8nDS_ zSs*kon1!DqszLtyRBoKmS4H65#o|4s;b>>JT*@Tac^@v~g}Ao`J+Gxd=MLlcOz1%e zwx=D-swj9_!5n|`MeFI^X{;J_<}i4j$ElJ?o^zV1HjH*gA=iRC2ECLEQi^?kRn1j+ zdRIo|FsoMsdWg`J-|s(oxk(sFV7CrnjEb5rIFm^G1GS+Bu;EWIH(weYH8voMn(=Qm zoP7FiEA*qXBl4K+ED3iw&ZB!GKf)tE>a0ab)*sogCjLYEJJJ z^u$p}%~<7znm#Sa!l3&n1b+-G7W?N|Z-Jsu1u6MgJUecZ_hZFmE%jb!cQrO53cCgJ zR&qo>BRN%}st%FAXwP{z(DTcz*#{Zc^>xDX*yI^I8Q5eNU3d{z<;q_7?jM1zG3LLo z)RBQSdPk6w%Bfu$(=MD9+KjfV=kz69o5#$=02ZQLP2Km>96MF=qNuc8vL_>(<9sa* zwJ9a_);`nw@%zW6a3@+aOnlc&xYpbW%>#=5aVC6QC+D<NcR(oW5B^ggB*$aNQXcJlPn*KxOMqWmw zt(YUs;B~>6F*MTO6JC&E>ORw(HEGpF33!vg47J|7*)RSYw$Nt{MJoj_2G5YOsc0ig5Yn~r(MFiGle!raXOi= z7dL-+05az4tdn7NE}Y+vYCCkurydPAU~>{N6N5I4`TEaw&`6=_rUL`RVMM+_cnV(p zqR6O}(~K8?%b*$A#y{w%+bjG7xKzo@>LPDtK=^IX9qRI79}AXL4f9o7!8+S?lT&Ni zjn)u$I!ZteVNX0j4PO+mhE63b^npBcfw^7ig7a(;?7SSDGUW692!&3U{NTlCkDyE# zx4s;M@a1(>OsYdp0ANn%?lXJAE~Dr3<)Es6s@y2bU%T=Y)lpN3H^dj0@*!&?uy!Zx z$~i{p{JPQay*Ay@_mlrr@ubdJw4QXddu*Jyc$h9Bn@nbTi>#sBz%XVZ0nY{{-ERj&Sp{uSHd35lmfizQpTfFjRN~AS}%45`rzRZ>(9W zNvgUR=fZ)Ya*Z@fcFk4lAZez-10EXIcK((716pK8@DY3Z4e(Q6@V2^oIbv${8XiOv+V8EsKGNY?2fSY0< zwf!JO`fgrbh45g3o_T^AZz=)LzE@q$>~E$+w|A#e{vK2H5#z>3+N)9S-Gf|Beeq|^ zGS3c0;Of|6QU(F$ZXMKq{_6bNUFsSMeLNY?<9)LS2OCwStEA`xM^{zubKRAZ9lpqx z>P7}0@~yRapWSoNY}ocN!6X;13#Ego|LSV#IdgFav$eD{obJjVhWYDXB260P7lZ;NG?D-q z;G*~%dzO^+3YMh`Deg?8s8B8ILAO~q5OHb-Udq2FO6Ktd37NEpE!I^4#=x-%R88D{ zvpHvsYXc}q*Uls>$nbM4b)qYaOC-cI-XWy>_>V zo?IGQ1n28~$MCKA`$N)zr|1n*UHaoCGZ&`IFl_g5`mBGPc1X(u_F#C{*T4tYW)F9IQB(IbT07s|BH7Y)B1=D0 zj#74O-`Svu{lhTwp<1(P-!2$Rz$-A+3dUpX3tAYPkuVUjM~yLm2-53+rZ)k`D|Gpe z5&Ao6G)JlBu6?vOeX~aYFm)LD$^Uo`O{Dfg`!_2WHr*m4hfNmxN;QZ)O}|UqI*1v z4g0_cSD)hM5;#-A&;Fn`URLKezskpXHmE~wAdyZ0H=ow>C~2u#e}ay^WQhgjdYl9I)Bf~PZS>&mULA{4f=dnkiP}s^|Wk@aed5BqGVBgZu=Pa z8@>u9xU$EQ{v0rY%J&lbYeg$H4G4zDnsyHw9OjaBAGqi!=eiT7YO74?jNGWU2o+&J zk0ZwTV{BA*%{g1Nq3hn-&(`{wvhS2C%T|lBAGFP_?k$#}vwq+eyy!qI=MlKpF2yLI zw&FqFr+=rHA+8=RQJ_Qt+{oeGF0?&aY5|_Um(<=dDNT+KZPy5G z4@vnEXq4NGa2CVXn17mXf$zO~Cm4G9+;o%Wi)VX)2=l?gg~a*kV&1f!Tr*Inl(15h zA9z?$W_1969`zh}l--lp?b+!&Ypvm`i*msf35Vv~J9NM6JZBKaF5(pPi*MVZP%+i6 z%?u-Feam!{`#*qJ0Ez!~&*ls_OehXxDjd_1KXZcLjPSc|>1VA79RMVJ+k@(05Ip-|?Vk96tNx?#!!2v{=mO z!A9|jgTUdknjd|_)gsYV=Vm8^#1<`$gZcsKxM<2N?uNx5bS-i9n``zXz7v~q3ZJxK zbI=OWnn6m1J?HZ~stXkdUFa~`#<#)7TQedB)LwQ$wSQo&?zzUaG5&KZF!Xh<$$2lLU+E}RJ3 z`CjZSUsfP24OHaL!-j6DWz-&YX!7RGAMQ<@gbXy&payHtw|RlCB)1;CymdS1A!x-~ zePbBjc&$A{N`i@6R3pphJ+W$($G7$!3!CLc&#si+Gt@fNPefmUKLZU#k`a#&dN*(U%Dh&^6EjE+7_h}?)YKSTWt6_)_+Vv^IiY95f6NLm z9}Rl!v(;sft46tZ*A~2Rhryc|gy>?wEl5H+>t~=Vc{kw3>03&pwhb*Xxnr=}NubMj zq(L36`J**S2T^(i^s+b`tv)T2xhZaaBWmdj=N_y~2S0-igi7s?SbVphqTuNEsc-dU zSK;NJiH=KaV=kE&j+DFN*aG1zd`0{g%46X1BaW&c`d0rcobfHcXV}fZJJU?2IDt;m z;J#I*Nbsj%U64SHSxiv?`<#6dcKCvAmdI%7@G_9t{-He*9dixjmLMgHn*aDI#yq>p zG5Ysmrd6lhhtsDSj~2qVWo7)lytQ@Lc_5 z-M}+?%eU&1tm*N;9@{W8nWs=?9#qVtObkcM11_^UjIHX}(`w~71q)|ZO=itx+oj*L zk#!C!=hpHclIq|@@wsw5*^AieDx=RDJd3yJl^0Ai4$gwb!zrMljbG?deVbP+3F9Q@ zl+Kl5XUucCB1_8Y)P2WbZjAMsj!x!08^oBDW>ln1*$N(K4~>-4?Lz&^5{*T+B1_>( zp+WaOP-S6a=*&M=@=%Z2gMtQE_=P%>99xs&MziW18}I zFE3BkeXhF)%d}~_hXNkRZVq8Tz2+fntC8i66C)9#32PFd@;fNOUI4SXBf#3<-fXw7 zuqnu~Vb+*+ihAlef3{?f1~f_R$Kb7~8Y@|)Bkl6DH$motZRH)^M*FVcImq}O96W7k zA>p#fzN<;j9atD*c4ZJY?TZ>)i+jd*Ezzg;Tq&?~`~XrWVu-cT=dmlJAKfd?VYrw4 zMXGx`K1TG2gL_pg{JGWf17xA@k2*wtTwT~Xid8%I*mRRxNM*+BAuens5oa|md3ddQ zpR2BNN*5SLe749K2j#*wjVcVAhk;Hwc0p05{4;E(^uC0)bBLdXwrti-eR>PNN+2{E ze~*>Fy*&+@|HW*m*h83byCAhjKe$ksfwR=)df;p6S z3@`l{TMD4y>s8zI3`Vzih$l@lthUHn(3h>C@!I_hHz)La@iXp^d8z^#0*Uw|#v-*8 zmD3xnU4so^&L2%BW~oztmVqul$FqPC| z_J|1TIiPYQ`)ZCZ#-waInUy~ae^BFPtNsB3xYp?Hdqu-$U}`!-7nCVLV?uhQf% z03H~PB;FXE#k$R?FqJ6bz-c-9+RFpM*}V!Wsenn_FRA`C`2Z9GFfM8uy~Yin~{%& zWvUIc*pJ;J%&0>YYkxfjO77#T$<-SCI%-}tal;3=PO-5mt?pYAA1kt~YgridpOY^D z<+6A6W>NrZl1z#_4dSsGW1WiUf#Z9SbXpF^fJ>6!3%1*(mBY7w+W>zHliviC z&vv)&BZBCXTKi6vP%%XwknoM`b(*1f#KgbN!iS6fc*&HHz&Ta!Z@0a41=bf*=i$QO z01S(5!(`p`?$?yjeDn^jTx`)t>4HS7vvA{Ki%iNwx1Sx~lrs7~v4u>GdJ`(09>T-; zidSX9MrsI#C=oOMO|iyaHlJXTd1BRXpq=?ix;>4z#MGx$0X(?mGlReC$h`n_B}W_W9oY6IxC(Rs{bxbLn<~1Qw-=8`}~-U#f=d@=s}Qg|M!4fu_>4A*P6@s{|$F8Dia6m%!d?rr9qb)S;#2K zy0tFZ=8>bO{4ui(PJET*Far*MxmDH~d{ZAA!1~iWLb5n(lf6Xa=tSVlkwUk(g($s# z-36v@Z{6SLY7}IY@bLGt+Z7_W$U%Sl6)@2Z*$E&7qnS|-0>ybGV|1-is?wO8taFpS z=j=WexrhDz`HfEz>SpvkKZBJG1JC`@f8ea&X+@N9RSq8pS$t)73u<=dcN(^Y>#zOc zGdRe@e+`+K>(2p+Ii}UQ$r21YEf-JGdVHBjren(em1W%qWLVXIxi+T9{#psN8_WSR zdxouP#09O)SR+64;f|v4z0i4(9VY~R-n@@GbPDDl*Jz7inkENYXG%pOu|I#dwe}Jh zJQx8&-c z@NWKD#LMlGyLenve!lyhc6Bv^$>_a}#j=ipPS@SV@paCsJ^XVqbQBbh+jYdW2o%@6 z+#GQTss#zAXn`KIdDCI{2G;YgBk#6&TP(QBusr3cNKpfr`-j^U>9DAsW6Rh%=UzuW z$+PWGK4+P2!`x#1&~%fgn?n2C4M+c#PVs#lE@UUjZryE&1u9iVFKd;_`@Yu~@hF2buT!>Q~ax>D;Dw7~6dPg{2*x zGWmF;=<98ViKd~zA6@r`9t6CP^Z{Nk8lzUmlRcSL4)JUY2YeLmJRLPRVTC*pq*V2{ z-m2+3^L5{9&RrWO=q)S(ibBfsfY8spM#(Wt!0; zAzG}6KsP08%HzW-X>ZTd=d? zD&EY3q#sO=n_o{a6^y3WF)ibzI~mpoj=2KFHJ%=w!=n2~a5nMMF+n^DIttkL%&Gl2 zHfy1CcW*+E&D}g@)0<#Z_nR@s&IA^3?vO~0@&cT6&o|g>e6Z{28yo+KX}hxMXDB(4 z&Xmko+7AW7>an*r4BzFk9J}*=$rDL9lg3ziNnioQT7KZ z9aGOpXfhLq^!V#y*eMx6+>Xwd+W3C5%eCGj<|fF`gRGi&kNoj`o8H{TDQvbbW)=$_ z1tcbXVDXDSCg)`~-}>Icg_)hG4{&)fHh?0AV5%IL*!^l3UlUUW5b*_=c03Mt7GX0O zlhx*iN0$YlRh^r+$ONqQqx}|#!Oz_hl1t3uKwdI*6coX)lppe^0CZ*561wp4>7Alq zX$Kidc(Ho)cF_NH=V?DR4-m^_+OGgJe>{)LIC62^oBY0lAvXeUXf&Uh`BEPUvE9Ub zHjKitF>W&$+V2MQlGD=}XG!?o078&VC%-&mV#Ci9vwAz=-*-A{R+hKdJfSkY=5a{L zDV{A+EI02hyT++W3$KaGW8{?#0-E{Y{-2A>l%HHBlVhcs4UPIWm^;A{=Xi0<1;uD! zQgn7{L49dfr_Cxt&U>pP^vLl=m`aNEriZiu?S_tGVcswFpSz)lKAQ46nNIiN$$HRz zkQ$?I!+mbV-t+U*i83m-Aq;iNg}2~5B)*3SgeBXFY8Yu)CGww2<)HYc+~4{K@AM=1jc49A_1{1z$6ca zfNX(x_g}r7%Pm%j@YIx#F0IICS1?A?Npn1H1*AFHTs7}Woo*X-MAT9vX}cyHW6D`S y9H5e7bs-tu{rBefzxUYxA8z&c+xM>%oKIQ@ZJcAwf&U+XPM>uDrRD_kxBmrmd2m5 z=@io_xr-~bh?E;sj<}?f;4+Gei0s>Yta*R`zVG|zdtF_ZT);Vpf7xJJ1O%!g zu2r2|4SfIM@-hE-5NJcf@@vItI0OR%*_9o4I&uaRGB=`=_bkF6@!8ke+4;|mZO(^( z%&|DR!(?UN${(IS`)m6#!H+55-vu8t-M;81T0Ic?-@! zclppJRF?~c@%GEod=l3)SSPM$ zTvJ=FC1}07eb*0{P=i_ivVvvvepT1nX2;vUax2DYr$_|N8x9*T%*&Fu#+(w`PuA*6 zj7$>U3Bst+A!OWmpmM&#p_#rUju1O$JC;I{ha40vyrfs777*wJejw+ud`#D78mW~q z)E}@#A2>^+tV@T5_GCfRKSm}SA-A6Ev`x)64e|PAD&O_9fmRyT^(9&2bo?&-U%$av zZ@Sk1-YA8tsc9`;N3q_f(iON2{$pV?uN9U^=F{)m#LF`#{XO;e#Ss49tXPy z`|sy{j;&kO?SIZs`&u*Gm<#Xc`cI0iif7d){m;wuI)>u1`|ZT}>S(qot6VDG?;t}i ziGrb-d<)1lz0`T1QgzWRv^(w*ocWP(XL-lvb*$La!rKQ4CXCQvQd!}7wE+h+EL6X_ zLm1FKD95QiD`1TX#bH6fOoaxW~l3QC-{5Zmeql#j465JAO6r6BQJD)^%h@X}z z?Py8o2p{?Gvk~|ief8b9*?vhvzm&>`NB*stUv-B0j+F(D(nIUdp#B8cgnhj6VS*+& z&x$=I^b-iqKK;=uIeSp_5+&ZQb)-CA;v22$UOL@J_xh3<t6!wUwB-zub?*xG2P}bl#S_@rUva7@gUj; zf=CDP4+}OifR{udhI9`t9pFR3y|1}(>xZhjRij?ddtrCf1lT$PdBy~JFw-{VM{yAAAf<-%(I;zIc!-R0I~ylX8%U5+;`8GGqCkA zu?eosQFl5}p!}28UAF!osY4i@rXIseb+*bgXv`N(8w;>ek80c;F|S2`kSawzhe}9F zhHiN?rhM+~p8US`x2FgYWb?~aw80}NSopm@2pn-WC~kp1emGvus+s&1S)*7nw^Z!Q zqQ!lFd1rk_ZgG1}xaYyCR}8@=;fjS4f8JT_w5W&ESvh_uS5s)jGA1d_LL#QS@F7vS zuDy7V8p4U=ul)jPy9Wi4!Y(*{X{u`cV6M{97_h8hCP+f3bk?4ZI6A6y)4*#E5}sbZ zDHBy(wEY7!i~Bf;ufWfgt=gP4#* zQE=AdnjvgpWjXI7qs)@OE8Jh0H>x#8J^)))B)=+B7e>@Px-Yy#>-m_kZec63ta;Mf z`iEI!)qiU^yxd!a?FwXhwz^}<&KmZz&jkqM^5j@d^lYpt$*o7 z^HE#pN(Dp94TRp5uFVRWkA8=;6Q`HxaXeCkR8vSs^eN$hU}>Mrbe=mU<*yIeB@@@_ zfeD$B_!enNMU&>cvV0si##+-C-mHx{ALip^-5BPGh238@RM(}@Jv*f{9fi1^nQw9| zL;`z%4co^`b!7t%ZfN{Tr~dl{_1E{_jiUwHD__M z)15Ljon;u#?a=o7^u{@Kwn~e@=hJl}EzZ z4`19ql#Y7*wL27v`aO5E#f=?lG`aw=RVfAw>U#g(ew%+n$;m z@17y4k8a4<;fu}oIfhSPn|gySBtT9ev19Zhq~r=u&}@yrH^?)h$KV$bt&;oIKeAef zq_wiC#*1v#!3s@{AB^6$ydm+Fi7VkXz>XLrNNJ?0refRWqC7a&FW2Ns|Fuh#j!OTx z>xptbtsaT;kcmK+tNK}ZHX&j9Sy{THiKzDl9`nAIX&SS26M=;Eu?tFlubb-$d!BFd zIV(2xVV~|K8+J9=ejzBVTdRQE9EguP_^M_0D&e)UPG)CnvGYD0;yrJ&qHe*s495|w zyVn={;znkbwAm{Us%tJE25%&2qg1fmtuPxhrd%_0$4Vhrl~mLugtKaBtHeMdW~UAf!j|G6(-D#e7A0C|d;-{4W&Cf@j=XMo5`^ z!b^!?fAjx%X>WU*b_EDDkoWON5a`Ki(FtPYR%`1XO$)B3hl{ zdqGXq{vqaQTUA2PDd@Tt1OHXMo(QA^6cVp2(4}5bPx4rV_#5n4%m}-JFvr$jOl|pq zbSKc*Br0B9cJlmq65fFT2g%HS-wv`IfMmZxQ$JBPU9R<-H%uz+(@P2hO=d%?aQsgr zrQ%({4YR2+>h;uUwZL_I<6L)uwwWHO4!3*U@$P`OTx_YXTDkJ@i~avOo7VLDN&sQ_ zMj#@T$Yvd^7S|wq6OPwo9FbhBDP-1aZkhygCTLzi3@TnyI8*Lko71bS8I%C} zL>AfmUX*IO_Tv54^`Ph{!2MP?y;L#`~LI9tG@!%uzfqaNPO-yZR5~HLs z>bpjDnrgCp+4g4mA7a;0y7<kj90h@A zvLWiL?4;3p@f@|#=g52lpB;u_u{wyMUy{Kln3U9v=*7w)r*-_8cVDeV`xz))dmH~)aGYWksnIcekv6Bd= z`7B&C-vj5zC*scXbq7=WI+(j+_s+>>rHFS(9T0o_x)rhmpJF@NkQ5QSqN(_X3i>_P z5oMw0Y5fSVdE$AD8&A$Uy@6rs&TsRA@gxjw2h$hqsA*2q7sKC6bP2ihFpHY)^0oaPWu2zkwdSrFsYmOS+v4adLRtaim_OL!(8ItO4>EKm2Rk3(2rRJXS9{Xquh`Ez|pjq5cYY`ts z4l6XgDDK~7MylR3(crqbOD$3wFTwOp!{0B};IAR6zc6}>ivP?0GiOmj(XvZaDZW5z z^k2mBw|J0`G4NSXJ+!fRp{-#Wipq2+BTcA+rN*Qdd{cE_Gx3tzF?JIHGGXd-m>XX; zrfTzbw=_k2mk(gTX=XlfZf%+Q{IKFJHA<}stj9~~B=^Q9$$zOTs#MHbVG(8V?>*38#of9~HNlQ=*$oHfO6i=qt_(~g&@~I7IzArsMgI{qr9jL$h1_j;PiF692@g&~}-Ygct zPzLvfQeDRw3w=(i;LPrlgrKD=VIHwwb7RZ_Vmw%~A?t>$ zR;2e-F2&2O_`WT56XP7(am?!|uRA!gxlLH+mo>CA?cuFj;f4Ugl-x&Ts zCZqpqbv=%mIb%=Lmb10IND2X`Qb!$4ZTY;DLK44=?AwvyoI`{fYt@bKwaO_rL6ZOC zYLH6!BBzZP>OH_S)>GE|9t#Az*o4L6vfH2qje2ZZ_oJdB5 z4xPnwnyL6(KwT+{8W(H6P7^frYt&l2#sck8GR!IhUO@9Ntto ze=>GJA<%|sia}ojeRX>1kIKEFB$uGmb{(!c8TLgMYuXv4JfIm(F3Lnh8LmMANj@<5 z{Fl)OY{0IqsY5}U>x7GHv~F?CHkmG=Umu z(;AbiTvNAWg&~G%rV>n-M_mS2j~u|r(&7Df9gQIB5;y2e7wvhKY$B&(xrgIeRt)lrA(Z1G`4fd(K+WPs{iMD#5n({n10{J+otSOHXN7n}ut6VwW#0l*Ht6_3ZRB zKW^}?%kZN1IQ}W_U0-Zl0a>~}eY&Y?2u;V<(ioIz3!Sq!0By$7uW*O>z2~-#$Y~4P zT@#OoqhVp%BzwqhUM%5lrbmH+Jc?N((z%p4HuDIH2Kw1p6NBZaruO?w^+ zt>f{??pOzR#P2|uh16A``gKlPnoyhNHq;7U0D-Nb#Qd!Yj_p%yw7aB!WOqTW=)a(L zE4>{?)Hz#oA8171t>47h4yT#x6jJw9IDn7*p5pn` z0Q%5FvR6q-!f@QyzqKQr%p1xAcO5N(aOe22$_7q&u%#A%!_z*r1~dHM1)}ysO7?6c z!BeR6jH@?xMm0Cr(L_EJ0fxk;(ogUMv$^rNgrgcs3Qt^-LvREYqHejg-Q<5|#wkQ3>;)rk=l++#HrEyw1r*h!A z%lWC0z*@kJK+gFBc9QV~??_-hO>DwcHeLZb##pURTX_7{Zl5oCxrW&tvww~`5Vv)h z;~+UToV@jKP95N4wgM-B&-D)|ti8Y_PTW{R8Fahnsrk#D>{x6KJNC+h7cIk|50!qe zk|)gcc~|UT(>5XM4z_d~(bA|J<+)M&fWPmg%G;glQ_U(HBh zl+7lC{DjMq$8{kzRzBXneg;U4KJq+$B4PTIjvB>x$RvImiGP}!xuZHjzR7F?yw-AC zlJPUMdDb4}iu4`&mWEX?U=n13s7T+OZ!azVw$w` zK-$-VC(Xi?p745;2~^pD@18ZTg>i;kI#CaQ@^L7++y=kvCvF(|5rTreqqIl0!SC4{ zT6VnSX!>e*#J%j(k5H=t9exmoo5#26f% znySj~Eoz5|Ua=v2;E*z))azm4C8ye+FG9Z)y}3MrC<~%M`KOl{!!kV}(=CmwKB9R-`KPQ! zy@K`#a`Fi7&_fG1_ww4dsP;9?xAg@bER^dH8K;+OZ&5XW-#Y0W=>u<{;_^$&+uS-P z2sYZ{6@DL=Bp70p3oEKsn1s%3G#?zN!N!C>jJc0fa#>@`lA>W<5Z$ zh)g08;AZ0tk7xivKL+r0P6SYU$;6eSoLlZJ6U(28_*b=V!YB6LQ8^DT2|g;=Nf*@+ z*AET-bDw5UH%Mj8Yyo`D+ag#0bZI>g6YBv!Z(eK}BJw{6OS(;GMltyeQt566ig$&J zZJNT2`khbj%YDY#_ci9yn^^V>M8g}oh)YfTpG8|JKmr(*N0xWxv~t>6P|I^NcAoj~3GD9R9mr74pOnbW+{ zqhVNBa!#>lYRSzuX*C~HJP-{gUuQ%HqYrXsu{vj+PXM^XvucN)j`&u~Ws6PA6?>;n zJ$~plg@k{%Bn0T~GMn|-L|SX!S}lHnJaF&|%ogslk$4bKXLBl9Q0vkbfV#iP1E9z+ z8!FK6Vki*Un)gRaVO^Q0<32;pbh5dZ|B_)AfIlcy=@_1qUgWwt`7Gaqu9b;oSOZeO zl|d1v2SfAA8q^;2(n}B3w}f~YBaM`2xCWI2`Wp(^H3E~XhP#%r*_>v4dYfjzb7RTb zLiJ-dM>53bXqwm@^wN@Wxb%7SBO-!iSDi0Yy_p(KapFg0RX75DoRfNi9~%I*@^mY? z+f`I4fbQhgxsOJr;&UE&x!ki)ZqXbsJp(*jWD~bIbJvv~+qy5K?Of^2mKiifAo_!i zglD+sDey5b+2)iidk57gVZ8XHL#^Vqqr(a^XRo|#Gld}OVk45+*M(E8Y%93*g|I;c z&?_FfUi0CB>-Np7C#rvm8(wM=6m6LpZ!OJfNy@n|&Dy&-`quT_!32Y1&!0xG9Oh4D z?M2UzmI6E=`8{+~=_V6pIhzPJ8_)4QS!UsRc64vXiSj?%UYx6fOx*T_ha3d!V~>ZL zrUZ>#41sY^w@Q+~LYR}M$`jkJVaty>?YupE-Sejszf@r%o4!=frl-d6wTluqeXok2 zT$XzNHVh6Ss#SsHiaXagq?u)On!9dJ-=JTTbCX!KH*@b|73vns<-=yP@wYrNVt+=P z&ic*g!wl{w5mzqu;9NGRB=aLO7tu3o0}+u1ckI_$`FMsNFw>+epjK!L-|_*cYZ+>= z4K9w)N)6*T1B#DteMWPEB^XoyJWK*88rC5+9#d#+NcLpRFpONT$#Q{yF;_&OkGTNBL3+mEaSsV6tFm=`&uMRUPNt$d z?)9<+)8<_l`XIR+)AlSef`Q^YTY?FXwf_bARV`Q4zoL+~m;OWSC53wL==de)Rz+5| z9)lYQxuAA{TvTHrF={0wQmq3CHq(G<4sh+9uKW3)GL9KMglc>ge-Dq2`9`ip|eVCB<#w z5=@0>4mTqJ-Q-<(@yZe)xyjNf0(qu4faaSknI2Zpcc7aAF3r{=Wm9Zz#61~y9KfPKBaF=^svq7J z!bH8*++<#Dxgc}p;+&s%vM*mNlz2Lg?hQ!-e4M=~v|(l~?#W;xAcKmCcIH|@iRmgJ zw{EXG=lHTve9!a#GDXZ?ob;vQgJuPo=>!OI!0)RNT@*l&B~k>JE7*cWB|A2;l&zH! z7fCBXmdjW+J)`$w=z;CFH<>RyJq^O2p$u;OeaJJ)_WvMDOs^u(d`8-Ofw4*~;MQK(?BVuPVKn*{|q1DJbu;*D5Rmbu42&(3OTGoVi=`J9pa@bT( zTvL4V@Zkk2!BVSP@in#11Z}ohKZ#m}iC$0aONXwjN&ytWnvVcXJ3i=VwdgP3L~M>0 zo344cdhP0;BsVg-Xd!0)j*GnEat={IS^7is-;*U#f9<$~2^KC$HUV`9s`VeDIPLvH1}q z{DUDSCcc+lkvO6H-x%W@TJ%c(!l%l})CcNg39kBBwapS-v#3`FOpZ_{pYeLj0PSHq z(1_*hFp3C?$SD+LBM1?yWZ`#94VePF_Nh?%@#sY27Q>zlrhhM(*kGz~K%wMgz3q#p zM)Q6&rq^?|iO28@v1>F(A(2L_Ujn-AZ~fi$2#`<9auL~>w2Ihw)9=!4OHalGx^#Ef z9cF5*YhqJhd4iPzaqxxDdw^dXHI}DZ1>xO(m5=|ep0To@GW~tOnXR_Z~gbR{5#dj2Q$ zd?@WhYIx3VhE#Yv4xOJCZS78dJTiq!9l2Q0HI+LQ>?h7cUbOQG*jSO+B~5BGq`%Kd2~*?NuN(&Klgx%0WP~^0_+L z{U48f_e+Wy2l9p=$%h#oZQSPETTnfOF?au;e%;5iSPazUd6Y2Hr>5Y)Ka+iTjh+Jg zR%hT$AcvlclT7wqf)YRK*}-A3j=%!aD7K^N^Zj?DtH;*(HOQhA2cx!b*^C9p0=hjY%u-OcCDj#nk8-exlUo!{S{ zN-y*6mZICDQpXA-_2sH!6Lih1fnK4c|76lm1bWPR0w54g^09b`!-&=H`9buuDA!yt z#nJ!T&ePJ>`sVaM#Z>Sf6B#q(=rDqJ)I9r_%O7h$ILvGH$Pq=_=WIl>BEjv9!EZk% z8S4tCWW(mJ_tN+3V-IknxKX_1&;zD1-)~xN>i#U_qexQv+>0K%Dmf<$CAqlF0|*nM zFWlvgu&sz(=IgjD=Lp$yDd<)BGTzN>!|eqgd?cjw0$j;9K~USBAjoti!C|N?=*Ul< z(T!)vSW;c-V-22;{ngT_>R>9rxt`V+{JbAK^Ol{e3sSWM`2O1%(6^zeZ&P32X5hX} u1b!QN{5AmkZ5;Oh&*5N$NVRs=i31xH6RcnF0prV{KS~X38ugt$ym;U8NwPzc{E_oW5$%B%$hWv(6 zJ;UEMj$2DpTgHA@dOEuQy=b4lMHCeN=OS)U=J@sB3wM$U;_%<=wKF-<HoRLKA6Z>9uK7iu=(#|vbQ4gpLlbM?=Dx_w~ypws<@l8HtSs6eGh6zF@aY{fur>L z>i@Z%#J+?fcUB#<)dDY50!?;CU(dJWmB6rC({i zI=iZ#54_sCnry#1k-TcmzXE=8*}C7M+n;-N(0XZjp*^hNcQ*G>@?C&KE9Z*i!L(wL zzf*U>NI=R$J#%_$h8U+II&GuhA_a2lrb#m+GEG1A`^3g(y0jQrsWpliN*z!)$ z5!L$hW?n6KuVgs&=T_bKW6Zpm|F{yQ=`Ru8NgA+yv7fp1l4bAh>QUgy<`L#ye{)vA zX51x%_-V)CB2qi74Y#x$@eAuk_e?T++B4^rv zEvR+*D3H45*nQP$c6u~4?@&+nBJJP!5*w}wRDSS(42~#pVKvsRJl;GCNX& zcIhkfqW#dL=ah4$PW}B5fr()5+xt(lN1AthA<^_#(E4NPMaio@NsM62QM1QI{u7nf zZQIuOUnCCoC@Kp=+dO5Am>`^SuC*|1vCVjVl|eTKCsmHspwy$ckyqa?r>ERDb}pu= z;@09eWyxZld;$jV=U-m=C%XqsAGCUbI`@(|TeA(aZJQUqb8L;XtT!f4%UV5uBbh&y zeAPPbcqlWv*ii84=K9i3Ym|GFCVpo{6a-g$TD8f@$_2jGq*$MsL67zJ_n7DJ1@kEA zC*w5&c5^(&Fh}`*5_{*bq8Bx+u*#u-i3YFnc^d1EA4u6*~dj*RXfy!hn(RU!_vc&7DF{iXf$E#PMBewR60 zwF5^VWS`V~%zYtVnP(Zv*R7R|*9hF4@)%KF8>%m#O1poIRz2a+>M1^+B@K)}>Cy~H z4A`faR0+H&ZB?E=o)Qe#=O`IQKdKHWk%-eJ&AbScsloqPZBrg@K$PBmyXNrj-&d1o zr^Jm<%-oiVvLAt?PaU_;yqkaf(>7n$wH}J8hf7ga`(}M!SQxfp=)ayoA%fqW`)7aQ zvzn`|v#HZk?y`e`H?oYJc%50_ zBV&&ZONlF&&x9_3#g{05C^BTWwRf~fMdT>aapcoCb5Of8X8$JH_SX}l?j6Uw%fLq9 zE;k@Ga5>@WJ`?a2e-rX?>NHTp-=w%-*mdyg{3z&tz}H~>Uk&Xglq{u(U5${{=|59&3#r7zj=1r=+RY6gJB>~(LqgO zjY4!F`!T1? z39sreV)Yn?KReX<^%vERuE<>w#sIxWuFVIV$ z^%y9oFAr<^^f=?AIG|1up*ZME#dj-P8*8*$1T}*fXSf=H_dv!Zkqgt0@z?H2Y79CY zvAwpwcszE-n%$Vst9{kDdZc>(cK+;a=}o);Mm-VDOyyYh&B- zaQk(?AUKK)xUx@opB+~0Ed3hay%O}l_;1WbTM|reX2Jgj*j^+X6Zvm}SzHDJ(7qxW zu=`d5o{tU_y*O5^5r&vT(^=? z4U60DyxNh(ECtT0t}I=CPr>Wy57AT!ff z7t=lnpz!a!k#4IfxH=2Gasl|ruQ}$*e|Ntw?YPskQSV>h)c?!C-fRHBrlnFx=KNE& zKM8z!-|?R(tE)Q={P$PD9Rkb$eHu_wXg&V>B!C?J|Kf80uVFXxi@r(9;KM?|GWa}D zw8qUBu#n}D3f+Hx2or&=Q~q;9ga*E7C~zNe4~pV{xBf2z|BJx?BJjTm{4WCki@^U^ z1fUd6dzo8mjaw~#>3p^t#w{;>jB6b9eYgCkX{QYFc}hYuZ!lFfq_$~+(+KoQ{e3co z%QRKqlA&qMY>SZo2|mxWfA5j~COWkf%l~|?gWvCPz53ao&sx}Fcd`V1#bqKa{{?Eh zAMdBn7x%M{npo5`MILh^Di}&l>v=(kAA@R}H=Jhuz%n3V%lvB~Z-~kC9Ai^Yg~NK& zA3x$WYv2d1SW(Hb`u592z#iVQ&x$#4BLi9hi2T&&V3PW*6Lk+S3a zgF#+$84%k)k5hoT1fGp!${IJ*ZTd3Ok~xeL!x`j1!=WfG3G;~LLNM~jKMaCL#`O@@ z^_C^yXK(QUBproy75f3S_%~>o4|q3%e;$U5|2A~`sO2b+hR-HfJ{t0vE|`BLLgp0l zv@?ooc8NIz%Ky)ebfQ~L?k)J^6ZP)lPWVHJ2ZS3|IP9{6OB^9k%9~qw%4Qj#HLibF zO_%WZl`vzM<|FJ!iKDh9#&XgrOKD{yZc}&?0<6Z0q!E8SL)hInjG@%L*;h(#)~H&M za!&D42InK=lo0S8#+#6M3Yq%NG;jI4wBXZHy#EMON}vScT?)(F$^`}Rw{3s1yP%Nq zQ2WgWa4HbdCF8RId~ym0zV4JIlOkeq|JZkr3~cJRkK++x#+po^J22m8gZD41?y6Tv zD6AEOQ4el%3B@_J|4Hz`G^CeQdYAX>Rt2!spm*VUs>wEmh|k{7Fa4jtaNLGodOp7x z+5BF5aWC%nNo5Mxn$LZTB#sB6uaYcBpXN|Tc(T!JR)>=we!RUnF1J<(MmgO)-3*kk zS`%Gy0#j08B7$sJ;s25bSqIS;^oaG z+zf{e<76ZeawwWXtBAvGSfFAMgW@y+OwQycLBG*>l70D8WxE8{_`%#G-}YN3Sve#n zT3v7IpF5;92Td-dpVJ{X4(6hYIzFYF8hp;Hn9m@)bF3PTr~4oY2msV%LJ6?`DMj~z$& z^FS?-0{mfdM(xmzhtZC*acT_sO9}ivnUbQtS%MFG(*;Wtg9+?c*C*LwzlGHcyr+NF z9`PL1up>yms6C^3 zcl$SYw?R_iqp|kn3#HHF&W)kdqA)q#o7E6~<<+v6d16;cEX_Et^EhJugYL_^n(cXc zbP<_Bb|uunc~TMWnTR$DL4nYl<7rMiz5>eaGiaF`mTD3k-dC2JwMtKDwL!q z-227P$U@f#UyGZs_(}1$UhqTDL$6+@!g}8 z{7Akjs-I{J{MVOu46460?E7AZX%4f*8dh*5fQoG@N=g%NLp1zv9byfVT)N2ndGkOC z>n>HQH^4Ic*X1{Yhx9GC@Czo{c>F+tT$aSpHgM=>LPs#mEFO&vvu_av$h`=w9GE`Z zeTiG??GmTzTlTb6p?p+BCfwF&xK?aKTijru?hT^pSrE}=B`YW_U^bu{o+n^ywcB&F zkfUqRoBAZuSo7h>;1?uKPmi}v2;~}&zk^G6g5gjhOPT6YGMRlakm?-;uQ7QFz-s_H zd0IPZ)~~MOmGTTvPQ@yAcbM>PgG`3~KI00e4fC!$jnqh##1K~aSM-NsQKAS+!=22dC^tC?bksvxNVzuH%gc$ED$t!-y9;c z(CZT5Ugu9P^Yl8Yp=3g4tGUW=cfm}|Jp#1B{E*1tV~a|-@()-pBW2BM#~cSG(W1!< zWI(#O%X3yTGJ_h#XQTy1H(88Nw9Ue5r&dq1U3dUcV02SJ%r*TPe0lwaPVNt_Ed4bU z9=>|%oM(|VG{AN!gz|6VukO~o+Sd#p=Yz>j0BLu}CO3@XjXX+fiU1Ms?CT|SPR5m7N91e{0Q|i7YECJq5wwZN8p%3q+ ziUK~r(*j8`tEh1q5bJQo==+tZbsKW2H}-pb-RI&r-Q!U~SG0aCXtgb4lJIg?=RNLm z(2of{*?Y#X_A?r7v3=XP`kSiU1Jp(y*h~Z1Ny}~;LbD;&qvn1u)F`v$&ysR7q?BI4 zo{iB(-OniqW}Efs3zoP48LWbjr3~e8PX_gNo`|WYaH|kO`d26}o53JFf0@hJPl=$i z6iY*_EvlF?I2-myI%a(pw3ZgG{U9ATC2qEE^#vs=ngG!FW<3ijPqJbqFORk8L>>ZQ z$pdNOJSO8ZOp>vriaH@0`UNY{;TvesXD2ZyCE%B*96oAcCuIGv5 z0$|!>;`#Sb6dZwqbDkQo8*FJ8>m=>5p2z3Y5G98(!ZYAv4zr*2{ms|3s@#U7_-$wR zU;4+CrM*uGSKiPow)mxKVnT@PCQKfDTS6*&WIJu!NPb)g)({U^8iRSJej7DL9I@hu zzqLSN>8ww^XeAI7db<_*Dy*lZe#Y^O9EglN0hH&8gra7g`Z2?sHKcft3^_G*ZMTf6 z-|U$87G$b-mqlArffg<1VLGZQ2NW?%ps>62D0!>+OS|{%aw%lM{%c5DD{JI3^IgeX zNwtb4khiFd3_kMyhQ)uouZR-AGm%}1cX6tSvTBiA?K?xNW!8nX9KYdrbeAHQ`(Kp-zKJDI^x0F+4JJ$!_nmQ zx$=Q^EgIEkRH*1{l4bUjSa2eqtA0MwV}DRFye%*{5`F9)RPii`(~#{Mm;Ce7-!yxQ z0lzU)+o;Ny`VUoPJq!vJ817arYOV-lD09RTU+3gzV}n>;w58g^IPpH?>sNH^MY zg%bM%bq%y;_0IUQl~KAuByRgBgYwt~i-H+7U0^$uh40nAd2gwUSyEf&y9$2stt_b0 ztur=-=p$%s^2dDF+jgfC@ZXG^T$ym|=3GHVbEzoa_jwAPR}|Hbr&kC25||sYukNv_ zu|HeJ?4Q(h4gRH(vpQP!+)RA;y5*`Izu`~|6;F6`n)vhslEDWQrmlwWr$>r-D={9$hIXuAY99E6Wt>09J>TUV zOECSG91;%2FAa&(57l#hTF*>%pxea=;aostBtyLJ2nbqvKD^t`^E8U^TeWcG!?M$R z%3ob6B4tg~d`!mtzcpe?gfV{obo!CSnZi*-Yj1FXK^f>Z*PHhGW<3ofp3B{A0&w(R zzog_nw;wRe?M-Gz?d1?-tv7kWGlI5lDDxaUIaVsN=V1E&Uw!;FV(L%o7&*-)lHB}_#ep4%Dy3B^z1_M4&&PPwuyVHSi2})dt!E7B4d@((Cp@pT-D(vebR3VK< zM9I0z%s6?hpyU7`eSkp?>#&4s?=+i#`>8+tS8duyj_b3a*4?ho>OT~i44*2$1r)hy zku5WINxqdCR}5=YoafYTa&5@CCF~m{=*#d9Z{G9jJhPn zY9&VdP8;6wV9!4s1qu7cdNar@mJj{qb~q*o?>-dQZjk;hAr`ANtiKpxpfO?|Z{vnr zz`jk|1uxKGV?t~Eb&woA^}7me3N}?MOa5LYjtsKvS$#Q@SIJ1NpbmF%5NW_+QX`UWR9J56Jy#)-{K0|8X*P=e={Kywh`es<1JgWF!Y!*HF^(dM zCB|;~n%J?50_Q}c_VBZN#8iED?}5P|+zcMk`NuXp^Kd%w3a%7w&JjZ)Lcj*HXZY|= z_QR)M7t>NZc}YvV6cwxjIdA*rkcW>9MqhhxR3cBq4=Zm`MW5WMi#pnUH@qbD*UZv_ z{t<)xTbmZa-ZVkJr05;7B@~tQz%<#mk=(d7>>K!IvFlepy&p2N&3tz_?$QcZ1BMKt zP{FqX+P?Zi-LfAF4D^sZHHlG5P+S>S@I(EX{JDyk!|4*J0X9$q(p%5zQhwvP2}ZIb zPT-kymlW5h@A7*N`B`sd&k!)u==4hWbiUevF9j+AMz(u@P^<5VWSnW58Y6kP589Tu#Z!3|#9zIOV*(Pn6{UFipjIYYjh$5=0B~CSfi1Y+Wl83epXtJ(? zfs$-KtVxNBjuIdF)q#4MrNz#8ig$L8V9VO=p;>hD)}ZFyG0ROf&4I;zyu-@i=76#x zaof!j)0zt1!LgS_Beo-JtR7wuB#z^-t8Dv8Y6oRvZeN#XYMI8_Fxnv++YDHxT~MeC z7Rzvy9r}>N3sNwf3%Znj2#Gc*(Rf?LaQ|m08KJz~)d$JMUyJ%BYO01L>&B3f?mtAI z-u&qrCu^cEbLa7z%8-ynH8}BlU3JQ}E0t!RrZoVZa<=JY{D z=5#WmudZ!rmB&rzXM1x4QGi6sCBRGzFBVfhYy{vTUEIsJ|0NMEdFN>fOuKZ45l*KD z_-+#hL_AUdyhX!{wV{L2C)u6It>z<=J2lHDrBduA#+BZKb6F0ZF(;~S1F`5UR~fsd zWK8!dc#^I75l>pBoqj-5!0rHn|5FrMB?yEgt{*ico}9#M$?>G#qbHlVi0m*6a8ZU_ zl#l}-@j>uU7lL+l=hhSM|vwkVdW20vDldh(CO`KkmoMq$tiWz&` z;Ge^U6wyGjUB^)!%4Jtl%n4+I<+|JCTi?roIb41gA4( zPeqIPf_$DX;y3!-sE}2f3ox2eI~hqMi$<&it(~9LY`a+=YjK{EN1~;EJJn92H@<*B z#$1D$^}r?&C=N(|hMNj2Fi$kV)r0jQ(F@&veb}Lhp7*VA^|D|m%6%_viH?4g21VnR z@9ARv5jh$ei4ZVp7-)eHK{kIe{f5#X@Wv|DUg@(5y?e$)nE7=(f6}(85z>@TMVa$b z%wm_{zi+cy7FBd0e3x8bMLv>r7$uniDA=>9qZZdQ&JNaVkI{ps`fRIJ(#*a0@yh&L zO%fcG84508&fr0w^}B04*Qo;?Cf#dRA*5~u7t2q*#{rq6nR~jAeMT6VeNQ7!sTyU- zzGyh7M<|mI-;Z3=X8`*gW2!SxRpdj6maS-}xZRa)df$)uB^L;U$vyrEka=$NyJHL2 zmS!C>H8SajVuQx+kc!2ZwVbYc3@NjOqTyhat3)#FC3))awg(XZFll`xk3XLJ*nN^~ zji<~?Riiu0yC3;eRg|LoeUM&HhG3zWggg^jDJ%LE!K69gN8MN46)LGp>1LTzmlWZ- zonyS8M;T$$v?RVoQ2SRV2J42mN&9WL;bB-Lb|O9IB3Z%`;goWg{u~K+?5MDwK`D`z z?H?8mkvvwjyL2HRKS+$MP#=0xYOq76IxEU_$VIFd0OJa<;)=}j8Og(f$gz(G)tr<7 zALp=%#=nm|)bwekg_0iCvl9}zxd8$Rz37%CMzWnUujWS+$wZZ}Z?-G0)5Yn55y!RS z)*=KXVqKgK{s%||n1~j4n6DK@X!+4{=uioadzlc--g!>tgF3M&ri457IU8X)$YvK= zh?`Qv0;Oo{%6Iy}m#kRr>XeI$6d_tNU{Q}SX`aGi($~lU9BO2A@Ub^D=&Bu` zqFPiKqyONTBfmd0)iX_`LqEzBAM2t3Ii@izBHk*%RAgLh^gYFZ+=-%IovVosL}gt8 zX--1k7Tu`Uty8B);@wD9&{!BT?a(_z^ZND)~e`AT-FJl=APeie>?5A=@JA>mF9zm*> zxCz@mYsm@GQU$pvgFNVOoGY>7(e(tIo^f%!C9!M<;2+$j-t?lxAMH?Svgyq<=#npW zNGNyGF5MF!{Q`wmZXa84`p#B)ubE8Wbsi6eTK0T z?(XV9X%3@=E}k*ndLT_x)_5%Cg%Uva(_T}CF)U`(sw#{HR!V9gM?ck z>JVMe8DW(WH;Nzk4W`#T;ACNC`C}Z3 z>^XvgJQ!x#--2u-8<(&RNe4>U`_^j0z68Cbj-W=`$Xs+0r75h5GDO3u(#;+a&?chP z4YZEfyznHr-ZS*R*QYdh-*QJwWCF|c(PGF;78KxFZA&-O=0x3f`Wp%b%ws@jN&o#h zo?_-{B(hrY5j`L=f{$Yf2J8KKZda!lN zxC?gqMoJ`{vSOXNe=N^SNUx@>sxPHI=h$2h7RWy%>s2fDf^DpihzARBcO$r7drtcw z<*9Nv^WXECPq5UY@0J7TQHXvpp>$C{9g!fV1Co_A6CA#|L!uvLPh|M%p{!Qkt5DUY z*nVIj>_j-Y#NnDP@CTYZW#P16ofq12_9O!xo4NKQZ`;j@`q?k$5tht1)t4EPV(O+W zG8gdx?JAKK(UC)iZGa{~whbD8q1Md(0~0-3-U*)@Carr2qcGSd{E(W zpUT}#j!Kk)h}^FH4d})_rcJSaR6v^;H{@e8axj87B2Lk!H=W9PD-^2mPXHT_ru;CS z)K4-?}G>gmFP zZevcT8i`RF1ac^PjHk+5+vf5mq|Xm|NOa!gN+{7Dhe%ua?hd-z9)sR!0k=zC<2$dN z*R;P^!#0`-lM{abZrG-CE~pM7W>9KsB)U*SL9~eYRn{b)2#CMxU_IAHZ+R!K&?hY$ zGoe_Ah-ScH$Ybw}2P@0tbbA5~n4zYVW~8NU_}w_*9>b&hkfXx^ka#h(=tBR2%a*^5~8qAn;@Z<~h0sHK9isYoXVTaSZTV_LX3Q?j^UEP4kXF!XHIZ zU9i}D{ak(Qms=nG$#EH@#Cx!D!ePREe--!bL{s2h%`$5KDod^Mh^zi&?3u?}P1Nnb zvMX;tHbIaWb*}^PA{-586gXC8bJRE#{!-O>QCdgPm##OgmCd$DMM&Qe%@|ITFS#|2 zqo3je_CKzCcuhk1`b8~#iw3e`W9Q*LHrQ3fukF{Rv|$X#0iSGdWwA?R6b@3llaZV#j`TNjU-?_()IphRD?`Vvn<|dI zF{ntdUOOG&2Z_EzBE$f&vn}jR4v5-JSu_rXu`tzA365&9mRYEK2O7f-STjg_JDlOD zv}nVc7i3Kld5<8Sz*u4tolP{vEH1VGj-vFfPjriJlRjkm#s-%kxF2}F<1y}3o9Esq z%(BsXb!k}uxnOa1ul_AItj|(C?OdwMZ4FEs|evxUvdH%ffmWXp?kR|dTCy{Jz8Z^);VNu&nl0ixxhL{e5gdY zUPKK$;tEhYOrdD(Q`lSz(WQ~0EcjoM-XDbBmBU2Wcsy1>gi> zx{a*nOjKDy(C9WD(c$$bANfvnB#z}T85cGj**D^G1==cYT5Y!HH!hPc{@{%#DL()u ze1TCH%)@9(if=R@P37px$+h`4S>>d}x0C$N_8cigs~@MgT3DtxS?F^zzPirc`2zLr zn%Rpzq>@-Q1?(^3G>Q-{?R@tot&AXIo?={@q6R0o&c<;$SpiS3~$=Qb-#)&fd-~=~2%K?2-VA`eLwv z?QG)MiY>wKJiyI3fJ+)z{Opt}N8hWo=^wUVxc>+c)4IDaAinLcOq68)cd8=_iC?FW z>Xx!D86HQDg8>;A+RO~7^e~Oo$BqVdS6~#wOrz?snxsK@YX1=!?Ow zoL|8eLc!e$rm@S$!@)3Z%o6w7`WQr39ek*GcRqN{c%A1freEN7zeU{eBg{l7W~hTk z)Un_fxXs?ik^0*j6;ZBFHSueQ&}NCj6rKCVJXYUgTQa;1Pmbly0-1pR z%mIN|v@PgW5f#?o9o+^^Y7nWKlB&Z<6{@240m(${pg<;RE(8ftScMx|<;#Ucey7b4 zezxqg5vDtgmD~HoBWAt7YV*6QJiA8AD=N+`w8yN1mE=q`iUBaTe&F;Vs*B=) za9{TbffFn$x;CwviG#N}ivR3=I!deVJ?$YN^bM0Py*ssL2x7TboZbl$sUj~N>bS{J zH(H;py7#?cesOt=Z+LVl3*pX3Dl87m&`d7H=NIt>yByl09!h!-04bo6IzX()om_tR zxX@12I&Qf5dO0!s^%O&AyB#hR5jyNDr+8aC{TlBOJU^pE5$19M>+#tdvrCWv9i{#rx@KgqULkPLp<>oKOS zcSgL6T&4QFhb3|!DT8K1glYC5y*=){p6^>Qbt#}J`cdpO(bl72?~-x>`^F5DO501d zhCA2&V9!6+DXv$H4YB{E_5Fb3S&vRC!(6LaVP?>}RRZgN9A(H5or1wp3K6sWQAXI8 z#OSV%v;5VsbHKr~UyGooc(3cB4>+L}zP%`Q2QN9QR)Q(zax!cM0KzgTOL>{*Zr* zClb}wW246GzN`QKJ0seFQU*@+`UW%&rw5v2MUK&{*T-z*dUi}=eq z;X`>T=IOCwyFcI&akh*wDDTgo^6({en0&8!T`u8|ADu!JAl48Ip$a}#o~I6dLn`wI zhCwbN;cBJkRU*A6VtgCsq5J7_{KZcxX9MsOmh|ZS)Dwf+kdh*<*sgA_f#XDe{Ir7X5X$9xh}AA z&;Hv)m;Kavy||9$FyV-{{v+Hl(y>YW@w(d9i;Y^UxMquV_cdPi};K9$@1PlRwDdEJF67AKI@5FX-Q*4{t{?W&nWVGv{^i z(sbp$?(a?fE(?usLsZdz%mJfJA1PxJ;$t$0^q3vpVNEKmKVe!*IBWU2$mQ*vMiYzi z!$rYX;fbq==gL6bp-W)KK7ikGK+0QA9U87K&oH6X=BXs&`vY)9w7HDE9Yt^+PK*{; zk(OdzRrKt>n{NT=k7VyQv%3`{J4I_{CA#?|eS7A1XO|+6Gnb zN|nh&-llFVHe_GbY4c5eL^bUD$JSh)EV1+JPFo}G2g1V};zb?#T=Du<^3~G$+3o?v z-iTd8@?xI@l6^kUf&mm~3Rm3>R%GX`2y7Hphzb^N&YK5lkl>1YsI%Y}QlS>~CJGD9=%gp`8uU8Y2px353N4 zNo@!au{J(^c}1-J857UuwSxHz>Kk|tn7H{>{Su;?FGh?2FBLExfdI8$`Zipf9p5Dm zD?NU|!b7gl*D{g4VNfII@|{PS*E3AKbK`NJ-F-P327l>wCkVh*pE|u4j-y@B6+YGH zWD;S@%`U4ZkH~M zkv$s#6e4LpAawHM5QxsXno)DrqX~D-Yu#P-QZC5ILxYLpA-1vvJyr&BG~@4+9BpRk zo?j95-~FWO4V{SV98C!Z1lGdZ)0p{;7fO|EJh(g8qZ(F8`1{!2zejX~x z)4r|oF}w8Q*+<~huT_+-1LW7f_2N*K{(J@x6E3lzBNiSv{qZ6RDtHYA&u`7%j+A1* z?#FUKEOefKqp=12>DbOmujx!ct~E97#L0Yy(k19Yg_TC`bgr@w$nODxLe8T2{RiDx zsLeQ_S}Ct)zlEvrFcG(?pZpo2>o3UtK3H@b< zh{C&=7iI7Cyw9&9bH0b~58{uP`5*qdk$@{-?~wN3<$>|aLOptTzUNYC2*Iw|*UB$l z&E7NGL;3Z<>&Eze>zhL(r0KPp`wf15tX*WMg94){c{&I}T2c{N+=kUnkGR_|_QlNX+%fmxRg~v`h(}_0ZP~&(Oi!)kT2LSnQ z0#mG*yd?renqYxQ{jtYoFv9(bn&geK9*#!i2Xi*483zrJxOmO7c?P+F51D5KBo2_g zJT2nUGvbu+dcV1t%r!K)DVBnoG6p2cf(%L)|Bo37dHn%M~p3ww!Zex_V+zya=#pZgJuFBfYQg9m%L;^E6unP;& zu7Y!N7T$&G$60VM`KAFMjH7Ei)3K%t_GAcON8)aKqW zdi}X8Vc*UWQP%cysJTjgg{y*A1a`Y2w~+g<5}fWKz}t8|tNl7^>ur8>8UGE zOHNWuXE$~3i6n>5|!wdi$BVy&`|P1D3)iPiF3lZ%OUMJqp83 zF3yH-ED6#9lup*zNeUuVulPu)%0krD!M%fNEIabK^mT<^Py_zfBBfaPb4P5jNe8+c z2Zj!l@u|GU4e6J>dMUBn(H9=+%?x>{4TZ>RvO%#UIjHrItLmw-Ww98Ci2^&FQ=2W6 zB^)FQ?Qz-*f?Wm4e|&WfviRkkcHI2^1CCXH^P$=vb-xOQO;eS`5>|b|q}xco@Se@D zTof0jg+Ad3O-B;DeE)X-DVa09aX8VH7>b9Z*bZ6U>%v-0{A~KqNY#by6W6YXDIvpQ zv@T6N;iuQ9#9a1hl7A@?f?pZ9S`H^($s=Svaa<8XuiX4r`$ynBN*42y;}ba<;Am1Kh~-xMo8IrKrsCX& zr}ulrVup(i^Q<31@+NIJGd$Bylf}dUnQ%>3jEq=+0+W3ib-MC2Au8wo=`Vsy;YPBS zQD%~b4m%Qn)jL_p@DJlM%K=|RkPqXAu~v%L!c@%38Od0sLFt2PPyv^zjB7FY#d$LQ z+5x=pzdyMD+bS*(XwZp?166OOizU0KoO7%^^11Bw`i6p8$*{k*1g8)c8@tL40sd4L zj?Qdn@B=d`zr{4$T`~?&q}pOM&?D9cYN9L?)SwyOwp?hgH#-=n7)0=GJyg}Cr!@lD zRkhjx?gW{_sjW7L+A=?T_5x+GNuF;gH*HI~YN>a*dBzNfii6##H%wxKwQ&1*iC%Mi z@_^#w#W`*m8*%m6SMb9x!ve5$2iZq7AAAQ00X|Ux7d!Z+YkzjQv9gk%O)`7s-DEe- z{EZ6Gf=Egp+rEsK*xf{-mPl!DDK0g3mCA}D9L3hJMG$_0Q@VvYuUM4)?f{oH9P&Cp z+w|8Rqc{sa%Yb6}d&~X+gZYy6T3ZKa&iMg2IH#kCx~CQTV}SMSyin%1 zSkz|~%lt%n_MbVLAEnt<&ev!*wwq&^75G|blXNxg5l$9olg>3k%6)pYjKbTDU}{|DL?2u$rF9v~iS4`V%3O6m%wCz0UDntJodx&UmyL9=fI7n2E7FlMf!&+4nKm{N0I5lp^T5MgRnnx0@6dJ#I3Dk zQzJ|s_ST4Xm3L5)l^v`qaVD06lrPsx(vMoMRJGXF~rFBT=ZQ-Fk^ogT4w50~IzN zH?>k|WM~(T;?I|z!P{*lgY&`PNWuvG>8u}hTChf4v z=Bb>J@0=_O&XUodH`elg!#X zwnH9}R&qH;)tXGu5N5R1{rd~-P@f1rDuF$4At5)Eh~0+6JXup;_3OK*)zS?3cS4H* zYq@v`MOA!;?LeBHM;!&6Xg8)RD%4u9^i@+0{ci3jy6qpqte|^g9Uxofa7XsVU47c~ z6+;@-)8R1B+^LkZQ%Xc$g>n=ZZ|m>2@PIq#Ha%D zq=V#DRZxZ?VaYWweaFXzc1R^BLJ@TU&J66CbL@TGU@g8-nWSfTcs7 z_GrgS1^63&zb_Zi(zknv^9st3Hl)FQ0OD>vck^9%XSmDhAEq3VpF{xI&bgG4i8{<* ziR9U+nz$|gD4dD%IA2Hn0lp&U_s(;@e6kR<61>F05@~rnt3~(DiiIcvQStWg4?58W z*5f!PZEr}ay&}9Ms;%K^qO{P%T(|l0Fr@`c9sO6CKrcJJ#o~i(-Uq_|NjVtt20X{S z^0$>br_de^jNqj}Z%8oAIZq27*-A+WG#Cj>`XgT7fS8AlQv}zc4F#%n4BT~#0sD;< zrI>*=uoat5SBq%^K286XM^U70CoyX4++@nO%xqrpLifODyH=KOoY&<9+ro`O^oJ4? zDEReNbAqXNlm5GWkJ>B>eHn`a^`jmqSloiW9U!O=mS!kj z*6ozyg&dS3drT@=uTQ!3rnhp?8*QyOKyd>x^4M5pI;~qh^2I}mc{Mo>5wdYwdfk$N zkQX^Wh9f;gkr8FP;&j`STsH|H#`d^a!1Z+a^Vkgcp@9Ky0dsXC*6S!4?4hp$ZgBMW zm}7aKCh(tCoFq@5NNTc?YyHGd;sv(AKkLF2V!`bK4uc+G-wC_- zJfxH?Ps^LJGGZR9a%N=Fh=B*2vM~#1KxpV2Q^(*ng2zL6@+?xHBB)+7IJD;?M%}1B z8gr||Ip)b7N~0OV}wm@vWFrq!VD@Dsg$L% zlvI``WMBT@ht4^__y4}vMVE8Bu5-0SD_x$kGU2?no;E(fmd8=*qWZP|xtovd!o z{S2US_1TtS)nXG(X*B7dFp(@a$jH!Uw#VI0C1qHKhy5PVUDY@^136(Ut4hD6m|d@d ztO;K15djng5b|O*HK!UzNeX`Vre0p_r$jIJ8u8xIHIWu@j2M-S6d$o}r&w!5cty}i z(sH{s51;xLQJm>EZ?-lwr5*H#q4pU^j5tnoUZH26)oZ`0Ytp9oZci8Wz$%`%Z-T}e zz+IJg4Hwyqt9Y|;Mq9$U(2=NePWCsBR_t`bXb#f!HTEjH z|G;bXyda{rMEy@0S94$hZuhx=ol_bmIn4or%N}PUv$UqbTJ8=#m=2fz419UYQ4|GF z+N-~=C(ZxyO0A|$BPHj=(tRBsyHZO3HNbWDj~?O`1%T`=oC$z!9}#>hmD*=*+X)>n zGOxq7rTk8I+{RjwK#pb!$Dg{7a^6iL^GveEknon-lp0{Uh ztp#(CC&3?FuWBS@I9|22aB9cxG!^@Z@N9W4-VZ8;iMkintO8Tm(SkURb^1o3n6usXmR z5xT6SqCby_(P~CXdeQ=^6d#FHrc->JgFPElJ>PDrnDF*SbrpQF!b!*F-FtGL^<)P{AgBUHloJ$+y$xIXEum`c2h1n_dF(X>B&%bbjJ0D zgtR(V02g2AW0&Jd{3;URV?>c`M0p_^si$BHqBn1wg-P|Jm&9!ePD@i~G;SOW7*YTD zfwiCrq}ab!xN0e8B$mp^Kv`HC5e+4HU*84JzGaB_iEa+K$I$>nI>?HAXKaYUz4{8K z2YcBy9~_z!*FH88x-oHqNkqx#eI~9l*{Tx=2;UkJ953;Cd18`wX3iEkwfbF=XcZwo z(cDS(EZ=kUz2CEl@#RwWIR&gue&Z&g{EFMKMUH|}PD}S1DyQBjfFJ&uv+w%yTtMib zcw$#4(K9D~=cP`V%?n~O>78qVP`=~S;p!Y{oZu=NY@vQH9n>s-OBF>$!uRPRDp)Bn z+0kq!(-+v==#Pkb*7efIVYr}~3wd2Z8*_O*IjTMyGu}Bwe?4t1=t43;mPUbD6V#d0 z+Py|Hjo`U0LYgY~^)`_%Znb_$!nd4TiYiljNU?$q0~rxif`P12EpD9t%}zw1&S5Fa z;e}}Ug(rv19&=56iNcW+?2Tw31e_iSpS$n!F2?wpOO6}nW_|4In=xj6uC1Ig*<4BA ztSM(1%`d3_guUAdx9ZNq7( z4O=~@BY{w->~UR^NI_8$wX6>GgUmNX%-p;sxnk)(YcG3Tnix@XUyrXmRmIqgUA2_B zz2z8#d>kMoBvVcN{|%ACYh(pxds!87$B1xdoW)DV!o|X_n&dSo0J#?4 z^mvWxVoxO}%tj#3;*WWC&Mou&v92 z(|g@=j+whUzsg<5LR}x0KKsyUb2|-k?~8&f5r9lD2eyCdrt9 zRYkWTzES<@!H1kQ`7zOF87iA+W?O~>8VxYTCSd}IQ@7!4`<9=f*|Um+~Okm&CvOkv~x*osQWn;tdv4cb4zD)aZjzuM6~jSUtSZY8>|J zZ0X9qn-B8>L%10|nXa_W8T-7ar$^Mjx*L=GS6R~Gawxn?8_oQx`pWmhxq*I<5SC$^ zriP%rWiv(KF)MwggN`K*_2(klboTAZ=gM>pPe&TzBwwShAiAmU+DAukk%o;h{dWm3 zQAB5Xs!+^^OT?;e7-Oh-OwUjUt`?tPGpmU)fL3jC4_N1P8KCYNfg;6#O zf(yPIZ5x6$L;D~_tPCjq_6t~7;r8>7lW^&rdsKpwoM$Q2o4BCMoE8s(C^KR-PC`6E zFZg>#^|^Vfmqg@I_O2`Y1^sR$uh=vkZIQbhr{7~+wpT5G7!lT?d1&oa|Chxz``AdQ z%pHs|rbfA})I7||Zts!RGkxq$_k&7y9P@L@J5PQV< z8V{BWi#>ey^jYnnM7NqMPsM8JZ|?u`!fKbmPg+D%)P^v^NBgz-jz2@Wt4ddd@2?!S z5%h10x7=g0ci{rMuxoi|P!I6mU!Em>>?-RrPKiDfI{DmJ^>)i3uCrRv@!>hIO-8Uc z(St*L(Q+Zb6VzS<_g#Ogn&BUgbB&l-)CdHhBkcwCIVX`Q%_CV%%*a6TK$8OW$Usgz zkUbggaQQl7t64BA!$rYpy0L}p`QPofK1fYGyOA_15u`;?)kJ-^==Vw$Tc{k&u{G7h%`zGP zF0>(TVt)L2^~n9t)uWyi)E zNT`Ab_79K6ePF|V$kzL(5^PsMC&%@qg{XoG=o1y9TXYy;qG57;iC@7q`QBLf=w6O8 z9FXQ}GDf|Vl*VF1fN)!qqfZQ*##NZ?@vio#9(f!$UbsU_)L!pOQQP_nv#Sr5cb>@& zIK5%Ur3+;oR3rQ>_3`O6M@owX6-7ooVReQb*1GY!dod#nL|aPK=EUZ5=oJDe+gR>3 zwd7Nm5;XY_#w~vya*N zLKZpv2f_ENIEg}uv|WW6+{t;ER{)sw_3M-_DT3IH>bc4=k&vI%v z0a3WZ7TdQuY)ByT-86E;eQP$Id(sT+hbgJJb-Xy1Wg{`bNDi&~rM)qjGMEJdak?=|ym)QYc7#?~zM z!2_EUaUT*;&AS5rI;ovulmMtz+m8!F&Om)kE<}ZinzSgSj(jg&S0!CHjDoPJrAPcB z2E5M922ro>Ysx5T8;kc7j%KVPpA|42utP_=^$NeBeo~B#>y2eW7Zxt>tXvG@Uh*Q^ z#CeqrYUYS}@N~m3@Nab1P@;_i2$6NW%OVJNRO?d_t(@x>mDx7TVPo9E%wc0Td(QJv z0Kr5Icw1OD9F3^ZTjHQ{PpgNmBG)bXf)4N=XGo4@r? z3In6~SF2Dp&OKTYDeb`$09o4&X88WynR{M&yOBL{)hGyABIz^sM>_AuBl1|uN&R!d zqOs`CqhsD+n26S+he_lR);g=#jH2^`$HSWs1&sXWlHnY>mTDS#rBL=2w-?@*9P{p~os z&wH7y#rFq}&)plg4sRSEZt&>PxNu;ni&xjTpAS|-H=>941 zyXE1U;$!Uk@ksdrIua3fSW-eMcwkD1G#{h*1(*){UA7 z`o|-S=%r3ad~_1dCt1Kh)a0t(-cI1#?y<6yGLzFJD?xY&Ke9`+L8ceVUUnPjQpE>L5h zi<7E&?GUFU#7gsbd3%RTdxzi=4-@Wchr9t&usyf>63Na1u`ln|C*S5ZTkD1!+bOLO9xS4D(|e!j7YdjEVfBGwH_4G6|6H~PVpT5J5}_@_)^jfDOyBdcOl-hxg& zy>K}sPq7JRnuARN1?;kw2h{Q|-}0lvQdZnHrM9J0v2nVF(wr>$KPG?H z;`U@v(_icaaG{W52`2sFL_M8!_*d#>?Wa3UwfA(68rWk(z>#dV^=IB|dQF}-!m9QX zS1qxQx3zoCvFbJzW;rH7<#xjScMwn2^6O=Jj`~<<}t_1}(9J}9pEHE><_(FNnj^GT*Z%IgK+JZkVX78rhXICyO4)sM9yVZ(jZD_)I( zIx9<$U;X&@WS`06=S|1Q)1PDBvMg$l)Vd>gcN3paN5|~fDsy4^{bG^@bQnMmR{R+RKzG z|2~<#5UQ;NS^?q?pRbt&zPNTxTszFJBg*Q430_HiO3G(79)P)tx1{vrmv0%?vKpB4 zUTuHP6SX81o`(^7Z>{49mby4Q@!YHCdcSPW> zxl8Xg>Y8Hidk3oC3h6racZDQ$%{T2=Uc!0i2b<` zJNZ4d@@F7^_`QGQipoaym6wA1j3+*CxG9fEKYvr~-cWRW|Br_&cXwubyr+Jl?GS!3 zxyx!NdZ)d+C%mt){!gjw?H=`Gg0i|8soTd>q^55062&Z>7d?q!G+1cl0btTes27G{ z%~w=_Hpqe6+^_8HpHBdByl;Awii4B_LYgnM@kT~Y-&tMgUg9){GqY48Fs6|6Q|G5b3&^l&)=By@1!*Ka$a9}K8j-i76sEH;_K<$o7Pd*z^OPNX8T4t6Q;=##mM zQn-*4G+P$bme&&_YH~x-v(xET&-8;;#UjC(PdD#Ax_o@)`z`aL3p4)mLdOl;4j!@o zI8T&Byec&$a@)&ZDUH*0cvO0erL*dYM1|QTwvpeV^gJrc3URoj$G1 zYu4v7x0WHV;&F=8O%J4rv>gAg&(%mIf^pqBxetsn0KQJus8EDz zgzo;W#v4?7Ys+vF(~g}5!Fk9n2`bB;INd`=scyRBkC+^42{Z;DXN0&2;Mb}tHE0PX zUk}b<;)0eG0XVG0R zLb^^S)e`{NH&scRV!*Sx0!Cx~z?Ncc1W1Wf@x9|~?CR#~llQ>5Jgi)$SR;!}f}hyS zC#Oqup+#eP!Vqm#7pQq9nT5&4V0kufAX-C{Ywa2f9d#Ldx#LqO6*{pyoU(O zj!I1dG4>Cr1=Jn?MIWp`Pj^*KbPpugP!>UPnoD!uBE_>Y-$U2d#C?oyzvtTJiyZ%+ zZiVmfJuhRfEpuv0{QP$+jyK_3%|~R+={dorm$un}c6sQ?hjvyeQ}nkW*b?B6srK}P z`Pafs8Q3E9=k?bT74izGXy`h!c_?E?XbNb3Jzk`BM83K_^4p^+QUDI2>+!5t*{+2( zzWhY=z&eTZE}!e;V||N9|6$~~MmU-EOmo3|k%B3a*hf#q-@H0UT^p=7t4H>93*ompKa3ce4}*=ORtF zGE)l!C5}q)i)*8Qso=-*J34DI>B_czvt24@10g2k%na7}2EP4lrw&>2vg_~`JmJY= zd-EQk4S8}AopDU;mYyRQB)%@4ixgl>iWa2W(q%<+T1--~7tzlUGsOy&%=}bB(4Pti z)6k`u(0=_bTd|BeLG4DPCP?~(XXzx$C2&A{JOJnYE?VWhU*TR-MNdZ0k(hQF-uEuf z#`ZgA%3a1DKiOv}^=XByyzt&=mzSS*Zz{RPU{_>>r5H@6jIo#IDJf7g+<4&D>6Rx&L~m6>|5{ueBq=j_@`u<5dJLyb&LX-Dzjakj0Aw`4s`>6+KdrhE zvO4|2d{=ZD?qc!|59fk%?zK+ufaSYHl7aO!t(h-b29&INpF>vK;!pLX* z!nZlB0&3U3(5c^e^o`v=$#LVElZq3DAD)xN&R<1P1vpN&mrhBBZ!aM3`h9Q}b_Cw?N=nUzFKRb|9`2}!KE#tU z2iM(m2;R1aa8MIVnIaMk-$%{7H|SX4Nb!;UiV8t=vbxa~X*XN!yU*0*8)A1B6V`t3 z+dRLLuCbgRWSp11W8>LZS~UKeDnm6oJ9ab;fl1J24oXtvi+>DUd*ptJa<4eA6~;wK zOWxM|?umxO!ArZMkE)&QXj@ReRO?2JX}$d{p5mYMD8&7-$Ml`Lna`ge36SM-T4tJ0 z-Rg{5Z+4Prh6*_FhX0>em`HFzMZIP^e&Moq-S)#r6bXRz!ar@v0Xj}VBDnSyWN^yx zyMnHqzDMQoXBM3cVn9P)0OVRzHgP%%&73VDJX;5Q_A?PW}G zn1#0XArl<@TBV%Hvu>SRik?Q?>W$L38vKqc|5+$`^SdF(q)wWTP~>c3*cuzJTMbZy zgx2bT>${#lPP;qw;Lh=xrUw17=_dvhy*KbL_)}&b?h%e}UYp2FHR&DNuEg002npLN z$XgJK8~{P-oNPXf$aufHX7u(3&<#Re)N4fQ34qTiL=xN^qT`~h@LWZ7n*$!G2Iyya zXV{6?@Up3w{@iD7p4Y>y=wHVzar1vmQn)eP;_GGQ`J&{}$9s~$Vh7IOPnY6Fiou0k z>%$#?=tw(dB8?wP!qF*+w^R>k5;tbi%4_k~Nw4fAakS>G59GNnUE7?4(us+1XU7`= z2!W4rtAsNbYT-ajJ4>qX*)-wjc%Puo7Z3U$c|m+vz%b}|X5c`D10B#-) z4K1k@r1L-=Px(=!eQe;$fCNJFV|Cved)6GuMi73JU++LE$`Rm6PTGfX??MFAhdn94J6QN)s|1{p+orwnb{wOsY}GV=*h z^H}Np`D-P49VJA``SJbEHrnSGb#A;l-(anM{_WdfSNfr6Z3VStO$iiRrqV?*etohf ztp?|n{MgI=@z3r=TiKiowdY%(1t}hAS`GR&#~dm1{l?x5F{l3{zhWVl@*h|Wm@bEe zA^R4t-$V*QEzDqB8w|;repN3=sm@q}pL!MyxH6#F04)t$CZ|UDjdN_iTH>nr(#Hbe zQx-M*ypS=zAuKk`6NhJo{d-z1JVnA*QjBg(en-V4y6}RqBg{`T*dvIOz|@C!u+rMV@V-Sv{abtqsf52k-yk2b4n=*+xF8tV1X{iwY)fd* z4V)R6yU)`B#(`P_Am|>|!~=Daldsc-1EmxZ0aiaWr?$9?l<*?Z^6re>bUdrr9R8sr zP%!Bn3-dcV;D89m3`r#VHe!hC15**r)f_h1Q`tEZHR`?b&0F4nyP4Z*D<8nvG6u-F zjxMlhI~hh%(f*EoPwaBeJP_&z8`i;SaN`0u^rA8@5@f$@i8~+{XM8 zDfp2Z_XkCD-k|*rorqj!B7RQt_()M%BC&Z5MdzFd%Z~E{xfFuow{LnujmTqF5w z$3Wg)E9ue{9@R2SpISxPLA|Ik^rDw($){R1p+I8^UcHkNdyLp1t2`#pqZ1BX6R+4f z=Kb-_{imaQM97N!0_!%*atGe$7}TNuNu>~8_!^>Ow%S(_UUsW7w|!FEyThKE6j`v( z-4W&V<~2tJ1%u^l^0lx&P!Pb+8m!S1p@(!iL%n?y+Tl~`UyJ^dq#}EBxMg*3(z(be zOM7wAtk=exSS9p5#7L?Fa(;cg=(1Bs-5pl#uxUGP{BoRigg$(KVL5I+X&yZZAR=MS z5Mz!^MPSb5gCyb~M_?C6>q($^K<0pW=Q!%~BCztssc}qjg-W7iMv#p9=jU)%#mpOj=0rC@Bt{#q$WT?|t6Q`@v zdiypiX4ik|v`&&=D-)JqT6^>YMUsEw^Sz^=>hCsvD*rl`YMT7@wyD9yoY=fLqWHwW zBMspiVaqJrd1I>xF@3AlT~!oi-|E*`0^gUYXQ=@UlN19j_7CoWv~anY`~JA z$4G|zp9La}=b>xQAteq2YCpEdz@4_Uvn`(DsWn5}SVF4=5bFKoJcxW?HnD3sX-P3L zV6`o>iU=x?e_72V-pbXW9kVCme+Fu0(wp=rg@Yu7LWk~WVpP+Us@lZ3L-(L+F+Z01 zNO7$xu~1{5sicqH8B{oVbEg{VS4~A)t9(qEQAseXC zvEVBG{wv??m=Z_ye8d#azstPk`UDtCh6W79gvFo>5T5|RtiqftqbYv2W|_;{Rg-_? zN8X0?`kcn*g(h9GM%9ctA^*Kln*wsI|4w0aEJ_X?EdXB~2$=|0L~#_+yo|TF=&Lli zt~82(0<{?&zJr`>TjGO)BtGnusv^9OHr;_1H47tm^xsHd*0|vs0j_)M zCR3=|PVaOJTw>yNC3hC;;TuUxWw>%)HL@jhZ2Rsbo`y%rzBIzCKipM4vkjh;4^($V zyB`-}?$P+LpF4GHWd7e)W(((o5Go)7j5O~JG2OlhF$k#P)uU;g;%V`4IsR0~3}=f@ zpwMj(f>%($OtgoV#boA)C8NH=6RBn}8KQJ@Tp80@)8d2ka3lVUqDvNmPr`g9tnQUWzy~xy=)u)j3Nf%TmC>lYIwC9JP zh{b7SYme5h9w`L$y}=fJ4`TAH1Ye_hO};sK!b6tLiX%cK{r+6)uu4M-dcRgFP|T!7 zhsW!J-d8l&!Geb~YI|6a;M++p(8?TRn9m!vJ6)<(n*C||<7eQE`Qpdm%jSI%Ev6z; zAJH48m_`#Kq%ZnEJHNlahF~Mq9Ud$}9At&qEJaPciEJaNV2=o5`M9$U=fcStEPsen zMqJcMkhI-OP?{-HHOG-sbq#6k8@qOI4T77qa+_(RXUcbN8DzV;g}g=xt%U99Bw5%wf zr3`bE!m53+MTSk=;?yxo{+ffqQwxcG%1>lJcGSLa^0gn^k|&{5>7>hH?d}Q z{a2_)@Z62zm!o+#plL~o@(%hU_`?CbhitCON~jTPM$GohAc? zA7>#i&^ZZUF$PheBCHMoUH>7SYmf-n9uF_s1XI$rkfqjrcYcK|KCvY*1=N&BLheNS zO6$1{29b_8l33&`D(oy6 zK2O$Z2Yy^tIgVhvIu50CogL2S-6T;yYo_K!6~b2(Px@^h`f(?*r)2KERdw@9AXtWu zA1$@aA-(I*+0U;Z5~TBZBzN`gr#`6zJ??^}#RiUOo#502v?Ar}2v~HpSn0mp zlrCBD7FZ{Bi#d{a8Y2OnDNpVwD%MiiFGI7xM)LS3e07AaC33HiF+mSww4~xSeQ;^u zEB#a&Gj)FikLa^D7_ENP|CRw8$VPF*Em4C6D%U_Jr|8vdsVt#c-4O{Uue%WgRooti z&(A+AAxRjqi}D8-!SsH$O^e?R#0&X(@=^0D-e;RPrDmV(NSABO>Tdedak2k!rU{o} zW&sw!5@HGMnSyV5Y`jgfPdpW^s(3%JI`i~M0wn9ObrkZpD*lUu{zXM0TmvBK3`=Hk zo7F6DJ!kuplN+;sh*2#As9T7>JiP|^O3-Jsl!1LsXD4V(b*L3#i0#r?qH+6z9t9+# zl$bO>mx4?p#$MP&B!v}?SQWBxlR%EN)4WW1pT%qDDCMXkmk{-e_zt?7)^HJRv%ARI z3(?BH>0Lnkg1iF4&yLB7f=<(XQMaWW1IX8?Hck3{Pm_B^8Cw^ zC6ix499g?T8W*xW|M{eO@fYu4MWH}O@k^O6K}g}eV443?S@wlXKz<*2 z-;MUI#KA1a{*!%XfemhtvF`qSrAkm}$6oJ0QWUAtBzo&YS8KqNV7b=(@=GCe;y30V zn~a=!8uIPObqW~!wgT}#rfVA*cwt#*h z05vs}%DJoLeiFbrsLtb^nQDBTHyTX|cVtG}3)0UKrFW%j`k%+K(Ix01vhB=dbXr5Qjw1NDTbMIXvLb7JG z@&C4}e|viXkANAl(fsq}y8o=HGu=)PQ8WUT68Z{*HY2p^3-)rj&H+&&=v%o~AG|0SI&{GRkF^{=1f!qA#xO6ntxX`QxpbM^CJ4 z9fiIf!j6cu!Xp7t^_N@yhZW?g`K1aFlynXyaOAf2zlhc91|<{hXyV%GZj$_1K1ZGW zt9o;I3`Z2DpVe!Rli)Q?ywY2=#<8l{a-LTb^aPzl;ey`O9z&V`Q!(|ld2TJo^@R6?F$~}?*YcWY$}X;X_Wa3=50BNw{T+#~ z%GN4v&Xm0Es_v87VvyrKdm3-=hwlOAn7 z>)3n)x0J^dWgvW;H`YMxI)YlQ$~Zd25Q9mHz&>7A5P@M4tj9D=%G$otl2*i#R2EL; z-t{w|z!ucL!s7Gw&S)+=Z+=HxL_Vo920CGoJFiOaR40IEYy||L^ zMlJ>*l+I7z^X}lJ3oiMPP9`7cd++pwEfLcH()3%fQ~$4wRXNedaUS&gu?*V8|32cpI(0ue62&S|&+^$u!p!WEEaL4=V*XL4C4xkerF zhbzn&>TrXPD7)`E&e!fA8f+5-gbQZ{85wq;OunZd_Vwwfrc1|H`aP|3nkCaXVkN{1 z(xS7RE!520d=jASq%HH)`8=`xM}u1CXE!mxS1>+>8P5cCTJ8U7d2qzZ{HbMcrO{~d zSjztQCFtq^rB6Ytw`^krqqX}!oGof;D>%6g_jgcxP5$cawz-hT=KI~s6~i0G+ZQ7h z!Zlr;fy|yQ16%`y_Q2?XhzDW!%?|vF7;T=FM>Rsuv`hO<@RgRMu0Z|;##WBNkm;njv`D{(H!a}SF<=~oor{gcU0TmF93^WIFV>rBUE8rz$t zwfEj1Z+4d!jeIBJe$Jy~^~hrcsxuEq)WMsrw|{1Gs8mf&AGa@ULQmUBkGwbSDbkty z7;oL0JD3`ewTd^u{j_9$e)7I(Rn>!r$_B-N8^63H`2U6I{-sj^unna&4#)5Ab(<*X z97t1YDxx{qJ8?P#Y95^YX*kzbK!V^)t-%<`NPn2h@s-|3?+jlz7VT&!%`v^BSr2-#!#tjmRW3 zjy6-kZ3K(S9Y<8tx=*ZL#G`XbVn)w8qJG~b`y8Hby&J6Xsdl_Q_m{DF8DqFU-TO*i zHTfzjGs4My$4PrM$I^?c8*d*S@iw|#`Sj2}j5F??xE1`&jc}%#SA^RC1r~sL{`Ob2 zkiw7Nh=bZt&Gd?x6204x1q+Rf&l*xR0_{{e@obR}@gzBM=-DZa&^z((J? zKo{0$mIu%XcHnAtsH?t88F^=%TJuc^pg-^jGJIe#O3?bGLyt3UcRq$4gl#7^8?L!0 zhz)jLlM8;$0H)O&^E8O(p3J)o?tQF+_QZW!DJe$q!yO|BQ#qfE2RzjHwY%0)ztikm zVWKtYfRRDS9WD{1v)Z&CO%12m+bw4b-#?oDF!o|{r1$0M2QOoN zhfTM^*^ASx>_I&bgMVaxc=NWW`FeNbbghv@^f_7G;QnKrWtzC8C#O$6Uitid){jQW zXOcNqdH=HY&;XwQgh(~Vq{opI<_F9#boN8U)0PANRcApxE87nJQX~D<1EPAdTlv0? zu8D7S%K)kCESA6c#8M{^ylb_9)3T7PNCaRLQ$CFp5$@Rb%gw8w!2cj>s15c5{P((8 zM?cGOsWW)`ck{O%c;i^}_6tr_MSbXK_D)g95+jmm>1>YmD@_@Hv$lwduj@5?l_I)N z&E-&;+F%w3Yil^7I#`pt4g{-mFHT%4tN&2xtYvU&{j}Qsd=eP3iDIL*m&$fSitnlAB$7!Or~esT@+g!cWdA z3OrVsdm!~D-^RPDKP|3jiOiw93Wx!C6Rg=sKud*v@R}c7SI_@pMG>8WF&p~8t0UgaPYK9hOiErtO65yiJWdvf`nzOAqwI5X5EgjOCu6-^X+|A{> zGkmGTJmif&-eXL$^)_aK)qpKL*HPc`zR))Vg{&heO~<-UHY@fd<=GGr;GY|hoi6dx z$@j32vfAJBtbeH2ozBu_U3Fg%cmH;)a@Un-9ZZ8f(0B+fc1ac#fpy0~;vsP3_C0se zSgOp!^P^9$lewN!>h4-=Zc#8?sg!x1cmo+b8|f7e-IFq6`EHcrQUrkizKerKv)2Hp z)cQ6?HdIN?9uaj5?2Uq6(nDKu$n-&nhl--L=*?;NA$d9e{~@{mZ8o=P@30a5RlKNP z4isNZN&Q*QqrhQ6Ywji?0Evs7d`Dx51FC?aNQl}QSKu5D7EvjOYL_6Cp?$1+<7f5k zVdw@;KiVnxwLa;~dh$i_y-0pU7Av`2Ac)@p-IaWZul7DxRfM1G{JmwqCOcZH`wBu5 z?@-?@D0W6G`clfDsR&M445}6fF!nSAOIc0FV56|$jGk-!rPzewPftUPmA{w~^KJ0j zao@pBrvIIqvn+d!aOW%!K9m7ncVcnDx=a)r=u1e&55IR;t#9-CVPvMs{mwMS>&LXv zg9E2U;Ke3&kdd~y2Uj5F{=01nDft;E@rzd4Qz8&d#iHcg#Skn6ytf2~WE8deh!-3^ z01PIeFWLNS!7z6wdX|r~9IdhOJNZ6k?XAZ8v1AHiF=CldaX#+0p4*wFt|T}7g`zOW zI5O$c$o<=5t-hz8ckcSs77@>;ne<4Lnx=avyPa#xE{Cv zR{NM70DS|^4tF7OMG=MTDwZ$unP+q13*hLlVv>MWOWwuAG^=~>xuK7UDaQiI+582 z`c}@XTZWr(eIb+zX*3tqlehvioofUhR~WNd#eb>()bE$+y!zI>SSmM2_15J-zkl2l z>@g{^_tm_zl)5@Q(VR5>b5P|z2K{=#UW5e<&HrgX{&5Lt1sNR2h$tBkF^U!1%A!oP z_)!rOkouyyz*fBx4L1%0ISLdY%w9w6e7F@J!#*CPeb7P$#fkMg#1()0nb}1J1v+zn zYRb6_P$mdqzA6UGSC`?cOAEUAg5u*^AF#m(23s zD<)Gi$L?I(XC9cl)MTHJqg+^9eIw=dP{Lc~C=<;uOeC3Ab%WxGAwSvPxrUTuTXW`L zNdqRyfADO{pCNt3_B%M3rzHB1+V+8Lxa|yJf6&sY!F3#H3$c75s3YK{4jt=t!F}3% z=iaJMtqXZ$Uo=B$O0D60Je*&>O8#HMlx?rL8>6;M+si9ssDGr5AbWs#g- zM}4almrm;#VnUv+yqNW#s3bwK&6Y6$8K;p~VXJsFFM!Y7dpNgsINJ31n}Nw(PZ9o9 zA}bXv4aT)1v45ak zMi}6Y-|N3GOOR`Nc($F+Nfd`x=Yi2-WiKwAl__(C^U~5UWe4zOe}3{bjYW#D70b_Z z!{Izxl1Kl8>sWk@y-BvllJ+2De)31RzJuY7yg;?8PYXtn{O+yoW%cx3%^PtSC1#OE zx}l&!i}&e2W-4he_bD*8JQIGu$>zy2Q$_`i*9BN;+?+M)T1NpWg#Z6dfC$jZ`4_6KXMzD}(L zCNe2pXwGy_hkBqngUm+^`17+*4LV^LvD^7~>%NT|eS9f}&&;4QRY~ z7H_p+x&=jP(YxBlmX7C{l~e~Ss;!KbyxH#^q$sB`@)YwT?ROb?L7<1Sq88O} zBt4w@ZM0|WD$#9O-o&DUwAj&V%Z%3C>&ES;%+=mn%H)Pz30!$0mE>hx9L7za3jI0X zXzC)^xe$Ka?E4wPQC9$(3}s;;&h0O_zhxqD*4uYjV*7nVtUlzMj^n>Ap{@jsP8oc_ zEU=qaAW}4CI)VO-xBTXr(fvSW#d=?3^}a@z^KWqKyrKjep>iCw98c}gxW1<=>Gxct zU)yu;80Vw4t&$=lJX|qiZi8Q^!GSvIQ2TR{?v+DSk+z6GDXyWTQ3BsY_8PK*rXKJf zMX8h}QBu%1u5dAodSh*f>oiJ=Kc6@+z6EaC#ez`tFqa~0|NiKnXPCD!H4*4i0Ih|s zNvDq{ng?Um=4J(d^b6)0#Mq1x?peiOCvjP2j@87M4Map=){c0maB5QrN3P!*{Ez@dA z$kMm(n_g?<#p2*_NdRueusfgsnmF|K(PXZ1bx$fEObZnbEvl&Q7Gr0?Du6B>dzuDDC zT*}hyzLKz41Tg&nre-i6fz@@Q^Qcpx!%Q|6KPS$9y*>Ie7-F!P%Lc`hd}vjAR|^AW*{>tIw*%Y*twOXv3ywmjYR_jP(Bo%e8g~e z>f=lY$PF`=FZ$JeP5Bg#uMv9Rzs%oDr35W^Idtn&2Sk$}JoDA&hi8L3alews+uXl3 z&a?6-Ij@eA=4+?=*gsP?SY@)rCjolM_88t-3`r|t4$b@WgMir*6DCsWx9#TW71cJd-xTGk zL2VhCI1D+{Iac=KLaJoeG`tY>|& zi%RE07z;NwL?Zth325Nuc%Nyu7w{ah9&(QauaaoqfA?X*u)5*)JKk`PQf(G?r@$4| zNpb!vkbo%|d;IMTKpM&cbA=dWSmA^E=-+IS8%#9N^y{x~Lh{St&DG%^=il|!!3P`& z+_fX|Lwngy$EXhO>Eg203^eEW~f>Nj$)j2}8s!3zerOmdA` zp#9yiW2HveT~F?$#aUd;SCQkJ`1C+h?PRdr4J+x9Z!W&V(n7k(n ztv!rzBRuH;8s=;Fn|BTAqdDK(v@xA`lK`{@pk4Toak?F*eGkg1AAbJ&5(V?u7>5i4 zz3dw2_}nr+YW)NR8$iHus3Kq+e4U&}#|wBt{w<<&$G|{Wm;mio&+sIKf<;R}nX%1< ztTu$I*x=!#h0~QJg(UK!q}&v}?{z@r2mh?nm3>Qn(MewJS7hNJRW9Vt^?XIfvn!^I z(X2nof8slaQYk>D37x=^=CiIESzbDE%~*#Zx%Y0Mzq|4yi+Y%HxiuNII3P5#)t8)C zJS2B+nPw{^lz!g5sJ`NymGFRCpbrKcH+>m9D=;s&Yh_oN+kAXl<(dgId*r`qB#gbI z(_@=)bgZ>YetFSIxIjkt8xiYaZn7g+{fPIDnaB4P8^mn(3zt~|M7)uN0k3>~_Ns58 zq3yx+MuL`LVchIwK9(#-fkT8ND;+-tp)=ly=w}30Kp} zwzGC=2)d;QMs`~CfX&vPHolfQKCIp_U8uk{W$ ziBAC6i=_^@h4tVYKegCtMLXvW{Fe+sOT6VX1Ijec$Ol^DFqZF8!yT{h<1mIIqiyL6 zXU>o=CR*ut+U*u8MWn@Of9A2`PSH*zbdgjM*S_rNSlS@x3#8?0J%Ts$T?Og`7KYu% z(=?dXyg>}MhLF8pL@Q5W^-B22H=O>NpC;q<=iRlO5ytdG2_Gx**;K9sUG-kyZTjR7 zhZ3$<;(uD&*LG|~Lv<*Kf>#1N%|NMUc0q7agArY}#++Xf8Mg{;*{Gc{6&yxG{Cs}c&Zk>+$a=z&|DG}zbx^RQ zUkyK4C7eH;m>k;2N&W9ofrh5+UOcEBNl^2eZDgPc`7X%ys$r%P#e$HhMk_fzJivlB z?nF5)W;C4+m43$QhOqae)5dKb;Vf;TnU9ab$*O;tNTkAbn^>tJYZru-tHME-%ufN8 zzA;=EOC4!aQh+Be_X&HI_oqD92wh=hP+Gq^2K*8l?abuiW_I$idGjIpze8-MRW}JC zljzIt?^lL(2F%*TO6Ir3d|r#6pP#&3$T<>@kI>;nG(|y&rBZIyc>_h>Qd$0`j!R3$ zrw1IS<_p#KqWdI%cI-5%2W!PVw@UDt#nzv(-69Qcakg?93^iDqQx?VN&M>Q##_vXD z$08>68I}K_9o@L-m04+mvZ#r3Cdr5d32>zfvQa<|9Syj;2z~nC&JWxhA`s!cj&r(g zP!|G>w<{RDDa_Fp$8q71p-7yo4+}aJ35mM?NilnpIBTMUFvtUpP1~7`7y4P{Kp&VA zS@bB3;-^@5i5KjKQ*kQ^*5Y2CT8B6dX)yP{rY7bw1X01vxD&AOY;DNEtT%&SZYP#o zmceIY53NNfWksQ?sK}D#tmCr(bYh^ARwe<^P9rm(ylFn0n6)4c&RZm??9lQ;la2IS zmtDpCT?=FYumg5jw}$gS_G^8;*v~SOX zS>5@MVQXbV(xMr2vG_ucl( zuJeAtZ409p5kX(O46zFtZ@#mh*ZWZZm0<>7?P|8P&UKLA0+Gg{gOv zczImXD7Yf>uiw|+8eG*^ybqLN(IvBYX!sj1$Id@~B!Wm@?GCIh_8b*Iw=x>wRw7H# zr8`R(yx-H#Q`#`715)wc(VBU)rTI-*ug&uC1QO-y+fX3zfx0DGFwpTHt#&KhQ(G@TYTeQYIH`Kjz`J;p?WuL&*p z)vs4cq*^E~PZaig*WfOZO2>Q{TjJsyR^OZW6}9p5S@x(9{OYuU^QaeNMv zk>rs&9qgz?;T^xCTbVqx6<_@FQ9acST$8^^jR&|M4vDRW@Fr+E5P|8KKl3uxF!-AT zPLqQwoIr{$?XgLOR`mp%j}^vqYpld-cOPnLb+>6*Sh?)};5eE9r&t+xif?(SOm^v;$tH8y$e`>rEekgx81KOHJm;ojZ zhFjHa*KA*j27VIwPY)X24mxp;);>fG1ysY_qz@eiWNMT|;4ll2L|{{}sg_#4=~&4N zH}7+F=fL>E1aQ}pVFU`mB=#z`>$+ST^#>{YYd98qJs7mkPh)029m;$_F^T!n?X`U5H~0`vEvXfTC=x}h%0{+^FH9EWNh;dS{Jnkli^j<%z;1Iof#AoJ#n3(sQu5P_M0k-Z4Q z-q)+hD6L3v69MSy<>om{=JIe(37|;^YPO9^!y!D-h4zsIBLq4DHw}E7qyT*m{J&Ho zJwV@bS|qP*oi_F_B%#K`qVy5is4QCbQFgbnelxrggl9kw8a?T-E4pqZO#KC?GiH}G zgKtomr;FP%bQ*w4gnzYN&2kjQb(H@Qo7gJ z`|wCriIY+pTvxNpPzwQ=R)k|WcMdu5Lg0cdwM_>@^mcw) zMMvgoTgiCo#3>rVObCGjf#xOJq<&AU#agZ!;`;1otXb}$dv4~ny z1GBq6xZgr^ayY5{d-k{GX0JGC=_O<1DvPk&!7Jun7{>t?mgMLEKH#Jh4;ciOnwQR7~9RJln z-_N29?a)E{jIX1JhTfbH*Kb-&{Y;1eAvfZIOxshhaBW6=Pn(4-yxT8^+!{AXZ*G>5 zR|4eV$Rg(}T-L`ef7BNG z7Xn6K!}ivwU}?{)i?$~S8=NMR6>9N9#VeKq?|P4JN%?QjMczjx&3M?U z$h-Uu?s?E@UeA3mMiRtK7V9@(+6<2#y_*`ydzkToVWP2yH%ov{-eci3|F_G?D~(VO zR#=0M%QnsWz|hf9<1=OHRc*&Ol1k0g^SR6cSgxN&%AkTF+E$f~JZf|gWjYY`&^+Vs zm*Iw+>+8&|8HCHe`6*;KW3@m{__s_nnk~MmCrFeb7%*HI~ugM$D+N#r6*J4vQLjz{0Ra|ey!=NJ^6#{9_3#EDz5r~1 zQ`sT`>_lfKpbl>~fa5eEL|&quEr1Wh701)GnUl2i2(Y9`Mu}SVZv+FrM#xVl7|J-Y zFvAAZm$n^*a5e|Y#1W-^ce>Zo0B9_qv`3aoe$uFR(-S|OUs^*wIqaf0P6}th6c})3 z#%Reh0k;=ThjhNC`pBf0nfG!HhcR$PL#t~)d}Ar~XTA5Q%_^hZsle5bjIncEk2BXDey`9U@+vE#vu3!9qquV@W-9bDzhjX?~Sn#;WnC^`LkOrKKS@M3S-ZLWb(!90r& zfm0Ai*Sz!*e>3H}7Od(2IZvzEmERF-@cWP^LRxqJmlii3j&#%hwzXE5AIERp48;N z)6a630@t&;tJSV0uDj|b9z-8tbCFx3G{wrEDRkV-g>)po0o}ND!f{L5q4$Vf0edVB z5X!@I5}Y61LY4&$Ue*7e&*l{Xb*W;9O^(w?D${^Emj%2`G8Y3fc`{dfGFYlAqR^a+ zJFrG=KZ}*0AX>E`9I}FEJ;V{n?EQrl%0W#zX{zCbucs%`cL*1q3;2wHm^ox>0} z=l1JKQmK33W~?EUaYQ!^xsM*nzjMK{()ZMc!f@DTJ^=C(OcasY`h0|L?6^!|lYgFUf$)hw zVhGC7-u&W^!2oU??Ea=xKwS)ieActqx)9yUj!&uFw4cX+05_kOslungqp&2-vQQ=c z)%i`=z6s6u&DW68a0XGj;Z}~*wgCBm8xji(%_0eH6^xNY-thgm*nA!X+tVcS6jPV zXOc7;otq?Qn7)9#9N_1(-lM|mTkTqTyPdfjPJ{4EcIRDIaw9ha)gT{LbBp^ zj`2+vk=W=X?A4A}84HJniwrlQwB{mSd>Qt)zE~&_TxY}U5g&R5rsalz2(i-k`>#|# zFhxL>X+b0v{67)|+T>l9O|b@&NqseECqGl(NGGj5%d0LV*yGZuTUa}n%mZZQPPaY( zXVigAePrSR~61YSf4qveVh@zsMM1|17~+%h#}NwF$RP3k#mh z18?Z&98Cv}vkd7HK2lJ~q8l{Ed8gdg4-C0S86G@72N5a?8Hk$>8Y&W=vEblk0ias@ z(53lL3zUDOs)@pi9%otqBLEKrSJrFGc-+-~9f*<_0m6p|0`a@=YXi)NzIzeG)`kDf zL!AG}IDf3!KF@fy!#Kcr(a*RP0ofxHYmrI(2yW|g0rc#K7W}R}k;H3UI0A-OMF!}9 ziX(l=5VSzLWZlLBh$qGDw#Z-^7BE4Uj(t$d?8hZ3nWH9S%}TJ_a4qfcnxV}{=czB| zPZ(-!MK;!wKc#omHlB4&VJr3WJm;2deis_l%Ov6=nl>XK261MtZfsXq^qGgI{TAX=m8$~} z0B#&&EuuM(Bf|5kBeF87BPgjtJmk1N`F-DX`$ds2;6}!3gM$Y802VOgcB#cyw+6_H z)j{U`HC(deT&RK|mYFhA=5j#>ki0nJ37oUaN6eDLcjjfqSeuz?eLYO-qh7Rrdv2p~ z%=8=>!(`!zO1n*wVe8?5VeJ6@g8vabcoue1RjpgebyX1^;Tuc$7&CY?r@i)>;a1{L zP!#?E9J+Xgvu@wsNT1pn>+CGL8t*22SBT{-Y{Rq;<&Mx9vf2p$XWB*u24;swS=|y_Wll;q(l)$9 z8CRp)H?1XW!L%7p|m)k>5yzA7CsvZ1kYGGX*>^XFwt}AZ>+t{t9mvAwE>>1Sf0ZupInq1Elk3 zHe)+A6gq@@CRi}F;S$9c9sNbbNf!mTMMsytGNLI?i%?>vn#D!O0tQd|EX54Xl(}>M zaH{-Kn&(-0f@-p^E+tTcr-BQ5Vqh&iNqR^NJii>g&!G(gXH&Y{@6&W!QI=;N;J@7R~% z5v!4*t1a~(rjadB;QM@74Bumwv?{o%^XB6d>S~7@CtoRBh!*kvbD6$mD#kz1*6Bvg zDYaPtwxA)j@L`x50ox@P`3E{N_gV(59Bz=VZW)Uer!E)HLoYdkj~9W2r!UX+xlgsj6`mEo zm1UJI=_4FcfT9JG2mKaLo(zQ3ZY7Ay96FDm9*6Ajmur5eHS@ji=wtP)c0Fs|)jjA+ z=G2*Jd^T~n*>a4<9VM}iopcH%$jd!@AY z)|Gt(JUHZWmzbquTgzi59`tHprukIkRs2z&ACDK)V8HC))aeZNSyGTbz1Q@IpMnX= z*JM>gUata|UO(4R=z4SVEto&0LJ=fb^9Pi6oe$Wo_6rcg6mJ zcz7(vcai1d@c%Cv0Y8jQ3X{w90SaKQJPRNy0LOEwB}CD12${yJL!rk@PFzN=de%bQ z_+FELy?y@3f9vSAOsRFT=(NoB(dg9j^MY+AeK-%EpoCwD3~2c*QA-8G6JmDne6@M6 zB^ofWKMVfy4d?fAXrK?%0@OU~HFTFkmYFY?)Y;E+fU=THEqPEys)6Jcv2A4CgPXn^ zU)_G|9sQS5re!xoygd|w^*uNs5A8(@gN3U`P)oEV5?m6)^NM+W{%d@mL)=~NgO znm6b7AW#wDrqW!dzME@abqCHBj@EwPvOM@D&8dj*Ccelpc+5rB;WuKWsR4~ZOna{S(rFW_JUZA^4vS~{-5jK>u{TUI(CPKgZ8Xmga% zlo!#1wtTesGIo#(`*8H@wdK|7wcu603Shg8HY)VR)o zg&TGw?|md?$kTg1m~Ijo1+NT^;5G}yu+-6X%HO6^56GJ@?^NM)^n$Z>wt$F-A4?x; z`MnvF-aCrDMrVevR-Y=IJ!Y+>gR!?_Z1$+1tRfVQ#-Rc<8~Xrh!YOocE{M1Py_V~; z$wz4cAQSa)5t;TSTV? zQMWK#4ujw%1vLC50C`;=*Z>HB`wrW2@smNvMM;RrMUhf-;W=f+F~!C|Eq7=lRkkE;wulzC43D;y(u)qxF72cmE-HO~6WOm1MPysKv;p-6&APc-ssEQl={w=U4I>YC zQ!+fD!OS>EINL32c{q3U>F94aT~ns&;8lM=&c$q+Jl#~!{+qw2*6nEPt&M-A7TEA; zFP^D7tI*Z!CKv1)-dMlq-1K1ouJn15C&ld1>Q+O2{ME=R`t25EB2kBXv@!#X=)5@O zm49cAyN-f4yJjw6tW0gWt zU!n#)Z3rz4(}s&;;?|Az@E>2EPBXkil%3aXr-fpJvEj2$t!P3|-;UJRhnS}mzsGy| zKj*yi7Qbiwqb+O12|H3bdOn%|JF+yOQiYvl`WaEo#UBpyS9~-ypn(GKVO?(U#>4z_ zkXB9%jac9_Nts(&^$%iyPb`o%yP-QW?frOKUyv;HAQbz4>%JcdrL(czzUuu#^J4bs zczX-X+lXQ)y&c6cfx;`uPSG93a8~X)V8;&Q&uH#XXAPJ{0W{Y**K$iL@H4;&45pOf8{f;pN(~ye&)=OnRz9t3I;-2~Y1-vEDVRVw z!EbU?bj6W|T6x_!fb%2@%Dw$%*P8YATF*s?@j?SdcL`pg7@cTLpz)QE9-ja5rRvRp zCRCl`^-A?Zf-!fv*q2Flc)IU=xNrPvxEiyh??|^DWYm7neVf6P6xCpp?$3@bpY_=t zFDhLc>AsL;r%G3ae{EVh-^W-;D?J7+7EmL9M>O}-!k=`Se&=q*_WP-gOYiAQpmeld z#PuQ?c0JZU7M1qh6iq&Auizf#+ch+DXKuOa8$))+CVhUx@BHchF-32BkIX9}06+EB zhWo0V!T#?$$;I8n2@n9S%mvzSR-n%yC#E6+T1z_pifeJuyL?*R5S3M#?Le~qx=1tDUNVv#K>7^Aok{N6`n$@0V8}Zc!96t?qj5UK*Ogou)amvg)-Mdc5JH zW-?nrnGQ$`%%lNCQeUvlxUPw8Uve7ET>YpabudVu{$5a?W?gWdxhKA?%b7D#NafQ* zgLMG|wf}CjP!dpfy57F5pp$&_I58ySL>@+emg-3g@C3zi5TJAEzbh_56KP`xw8$<) zjcd(hRf)ueKxIc6nrPL}7fi@R!cKnZ>XngYA={#z6h5S)v1&O)QTN%twCRCUz^K2J zz9UbG+Ri+*;#Z%|?O>nnxyH6oznEZu|7eDRS+5DdzpFc#Cy;L@YLE#^Fyh1%s5cZx zTBFPgVbw<0uCT`A44I(Z2Yg3nt2bLwkCOqy?HMsR?Xr*iAiI%dWLjjqk^>}F7n z9sx;9qaL|$W)(MHfM&+jZh$JJ$0tey?%?njEmp|{5)yoVs!o$?xa)a)k+=Wh)eJ0{(@l-@R`iexfX=rAsW=V_^_?p@ zE9Ht=QafmWu%gQUk`EJYrJ>F!p{ER|ClWrB8n%a%mydvG$;V0uBRZ9f+}zhQFdZuA zr^xOBMAoV|9jqX!8#@tG~MhY_CAS$;u@w`xC zMTlg?`Jd8DyXnW#p&hT8W+~NiXv@+P1b#P>O)k_~7UaVd7I#7B;5J`T30M3OvK-A5C1iiuDfIIMyRWL6b^>}9TzkAR;#IyU-=?=(K267a0Y!28^hw{F z<)s$!KJTysW|%J39jQhsm2g_(*5@tOJ%QK`=UMQ=uOxOof-GWCEJlht@P%b zLzGcM_KiYY`*{zZFTcoe2?+JJ-xWBiqX-wXZnKlyb6Z}E3vJN+vWOv4CIi&An7!Tf zUrB^x+-L~;!hw}qJM-w+d22^5V`dXAruvKTQiLuleMH8bmByDAadYg|gd9_4yT3WJ zViKUU`VX8Hg*7?d0kVK2ZGb`;Jm!Emm#`H;3)I~q3fKRML};MwE-W-8#@Fv$fB&r4 ze??*jaMBM0_8zV!1)L=9MZ18#D6w!z^ts*u#Hws%EVbFl$}&A?ViLWH!Q;ZD&sY|$ zq#bwP$hu891grLAs>*y-#ZEeT2lxyxuc~EYY%VNf>_=UZ!N+Mc2VdQ~FgFbzXkYO; z8}GOs_$3R!)VYO#%TPhfB9!*&m-c|V?kz2`k5uytW~F713Fcdgs+Wwd_vSSjn2#En zvE_tSNqW8%FZd8fmM&3az$s21sYPw%yrI-HK$Nr*`{?uOqgqX4-PgY&v;b0g6Z+O`f_F#0Z^u;yYzHwuM<3&chB2ULPdc6~?6K$?{aO}! zku6BW0B*!kCOOq5)#|j{;aYZqFnI0*#-Pl8jq>gr0ro>T@kA}hS}KE`p^Jy&fpf;2 z=Y5VRRTh4SqYOU&+xIg@I(U2DzHpyJcYc1R`G~D`>t~L|ZF0cL8y=C1Byt5%N%@~h zUY@7{P1WJ;(O>-1Hvu1aE2XXXoOIcpiT3bBYH!|pEnVf6>dgQ*Wtu*Y7li@@%&_}< zt1%I1vBWsE$5OhBLiIE4D%9DP;JyQAaMPGhjYp@3S| z0qsjIgU9<0+$?nee{dMsw4nI~j%jet=fIFC`iQjK@q4^L3zwf>K{P4cGDQ|}+`8`s zOfYNf=2zaQ>rI#I^om~5JHL-73A6EyLlkyWD3Q0nV7@Jsvq+NbP+X4=aSdR!%_3<; z8C()jpu2Bu2fz*LAkbmBaUGkltG$fR<88k~pYR{3sm_@yUx%0mSSxOf)RnZ?3=a8D z^IA8a`RD;G2_|FrQ9#sPS{$j%LuWSPz!}dAjgd+UUE$ry2r4z&_7c1;c~d&%KfM{Y zudX}c##qg>^a^|N*~zH^ImWewa7z#PNcw4Frjn{b|wdw%kq$LiJcwLjjHZ8I<~vs9A>Y%RSFy0$rg z)wik$_hj^l)J5b0mxsq>Wxs=vA%R2CSY`Yf#r<0Fz6kpoG7F@IS5vuwtS7N$r!^B8 zHFN>;o<@MCDWX{v;LX^I+12}6XaRJlQJ@KeWm}N?&&157$5+q~q2w9t>xC2V1tz_Z zLX7UR5bgZJ(g%L^ zO`Zbc8AG;5aI|tp7v3TZa&Dr`;sQW%Y4&+gSOzNmI_S3#Ut6dsWTLu&&c{sz#p%J? zfw{>zsR9pC6KGxp2#Yair~*aAlNvx)`ioJkU=OE#w$h(rA7ESV$R%28>B9d7yO|Fl zw>xHHk~;d8S~xMEEY0d|q>TY=yURvSA?uJ1Nx+>>4_|b*!Gf(KED#| z<&5=(1vtzMG1fVZaQqYnz6CZ-PD;# zH_5vd+S5A^6GA`As{b{}6Ohk(D^G6((r_{F^I5RQsecPAfx)#>#Q}SKDS5Qv`UqvL zTD8pp@g&Q*TQ!M&j&yer00b#Bn$z4E1W&YPAhsOqeu|EQ5>G@M4nJa%cjLnK;-nJk zI`EAZP~ZQ3Ky)7Nyki`>=zwynjK#*|DPW$u0mfaXOt&=e$qvIIn#oTt7xE~W3G-1e zp<7*$3|^H{3f{zr_fst7IMG>JCvBO z!npdMKC38lp~Ckv^_@A^klO7E+3&x5t7y^EQ2g>Y%>}-7Cd%r1AlP{-O!UA8_Gt5& zc7!rn0$dRV;66!V7Rm@ejZg12YM#%ynfu*>Ok{R4`bhHIBddsl$u<}mr=?01@%o)Y zSDhTCM1cJ|8Mr;QAd$I9N3>&5gKn7=*U^1>H^Ki|Hri-U1uhr}-k8m68Te{(YzY_x zkpBh3`fo^xQT;Qp6oGtKkjIeoOPJkBh?*FEya~8Ydg=}Z7H3L%qAA$#Sl}&NHY}4Y zxCGK3Lnr${ufY7^`Pj$DH6yu!XZ^=e1}tSX1-&k&lc}7stj5jZj7y&Zh0Hrn*AUD!amM!w^rr9 zUbSm~cRfm0E%_qP{4|e#I5wO=;G_qLY#DprTUx?p5+7xV$OXM`8TI3bNt5hVqimpi z(u2m^F#;~L{)grLtC!jVD5(H2pn7Sm`Rv;S=WIDW!r;HYTrb9Bb^@K z1mM0B3q9Z6*+f6tsFA$%iqhe}1}L`KM=4HVEIKB72g=RHnMX#Mkx1DQOmls@* zWmZ`Rh*zPrjijp_)HFW#3?3_B8uOptQfeh!%DSDvsR%;*g2ldrFs6k4RB6E}w@$qi zacT!+M2JJ@u3>umIuCUeUR^#lk#s)BDrV_+0TBL_seu5svQ54TBYqlMGf&HEGK%a- z0N1SA5pryp;8K|QnxEjP(yQ{Mf9&X6u&y{p8F>=z8nd z7jhO$Xx@Fw5MJS=>(imW{P>eIr;?4O=XW*7%%u%Z#G4a?uExx&8a(`~q#5^#c3*UH zG?#y6f|2R=MEv?ML2_7cn5(U288N!&x$#KyP?Et%18iKj`bIdd(h?H;Vc?gvo*$!O z{v*;&(l@3bZb>=)$A%Zj<7LYXOW*{_zM=Yf6ciB(Jluw1guu(?W!olgqprGQ;%-~J z{Efiow3!BVMJuhAmEm`*P6Xgdt#nv!nLs@8x4gG< zQ*eT?vMvlZVNgU+Zn|_$sb-5@z71D$DuZ@#bRq5oG)3|8AjOyOJ#lpEZGH6Hi=!Et zClHl^;@6f`HI5ICex?Ww_)PDmdkb&TM9v&X&2+^`jo-}TY zLib$5i3qk&#wDTCLMog@8YoH$q4>v8tR@{h>)tsm`DARi!f^KC{cXR=&PddSS+@eu zaoz5)bx*#;?#S_ID5=QXmFSO>zDg28g zZ|TR^eZNX8r*F|%p3ISweI6*CYz1|+#em|7{_nr{A zFK{1_4f4gvvqqL1#H1ygfV@c&m-vd**m@1mYIHe%b7L>o>9u*m%P=&kd;*Md8z$ zd!Ao+ZLY*g;=**;k7Zt!VC5Uh&QR{qgZh9^ti9xdiDYu`wyv$S|L&%T_Jy?idHys% zK56Xfh6V>PXmU}5;;aNIrL6&zMAVms&U6D~BUg8%#&!M7`D%7qUSb#6pOX`H?Y=e9 z{q`$NkOdZ~*z9kkp>{J}O3F0gZ0V%j`Y-+jRi&ImKH&(;LE;N`m#4KxPG((!C1qBK zj$~;ekSLhqF+hGSx7wcr2HHL4pp~1(q16!P5cHILV>YT3L~YMzwn1o3$p6ax?^1%O z3SlrWJN;i7|0g;HZ*`y^`G_cM4ZC^5tkcXnOT1#7!kQ@vsdM`>mX7s= zG~{zGQjI#QBBU#d>R#cm19IwH_xlHZ#4i+L|9-)vjd>YkKA%xUb7-Vi58_s7>;Lm< zP{p4+3ACHyAZK3ud2jZtt$n|*c240W{(CRqXB%8;7ZYZo4%Ppkw~<&1P|p2nNRtpU z_3H8RGPP-#`R?*;ywcq`u|#?(-22)?m+iU9(|XnT2fv7=<36nVha?e)0d+O>s&=zt z;_Lx#SW)AV!-C`4PmiR7R?skUO=wHVT7wBsDrdLuD}rJ3+4hz;dN_+v#6OGBzsiLK zx>b;BMv$y^{3STUUe43PrVASuyh#@uxi*l0LkHpQmL%&-Sm+_#e*Al)cb7OqwU3%Fp$kUVRfsa5na;B*S<*C_qMf`)u}=<-LC9 z)tv^Wx4Tk6tk69{5)7c^X`^tZa4Dy7TA;Y5j?tT;i6M2e)Tz=lI#xILIj9&HJLOj0 zZJ6vhdbyW)o>sH?IgaOXL5sKZ6x5nC7w`XF5xQClV9CSRw)bG4KMfDFTb2gc`guPe zU^)4-=-_jFPBU`Ne7cAI?oWYRE%ohpx>gvN~fT_6a;C$9pkC zOU9`;B#xOTwesw6!buaC&+zp!@&7M7M_a69Yb1`I$%%&o?|HI`C)!pR6fm*v<{LsD zill_?W^j;v)(yFk8(-E#NP zr}Qz0X(RhRkIPB;Ed@SUENBxx1cx;~5EQ(3J~y@&aaZQUD?^{BiQypAw;^v_R4c{e zti=P~(*~_r*8sy!WA^ua>XaNRvU?v1z6js}i*$5pwd z579Aspx2Umnkt5#X;dJL#WfQ~qbHugVf#NH5bg*VAdJ{*X3#e+kUvBk$xMEGgPel6 zETe`W+um>F(HGYKs%}$%B)pNd=HGCjeO%`F$#7;ymd;z>YrBD{aDS zW^G!bVAh6WcD*ATtaq{HNr)aVAt~x+8}dcxHx37K4TJ{39h&Xrk^~$q$B=bohisq* zBCk@e%BAa?^0k{T?p3i3JC$Oeybp&oO_X5H_T*;d#j9X_yo)Qk zRxWm1A1Ix|DSf0{hyAFCpeVBk>degQaORq_KkfO`&PZ*U*S$xrjrP9z3`Ssf;lbac z-v@8ZQpJ1*FKxEWg3o^h!6LQjjkIZrMz1!0yu2zeP*qpuFsWxZ4Va)=tCVp1srQ)O z+{r)JL-1+hy$p(>+tZBsv%Lx7c7|Y-bD6qY3a3)$J@%&`yb!~GicNZ0QV+<7`f=AFkkp!gb*-rGcwpR0Xo5jC*vxU9+bu{;fuUG_wf;I zV=*U0>z|&f1E_id|1?zUFA^Di5iObQFp34Ex7^}i2da-c0$dFY#i1g;5nE&FEzi?s`cM&Ut<}ePmiv#brC<#5gNF@ zq7DKas))~NKrjYsp4_?FFwT``{#Q)j<51t{8sb~yECWMTesBY3hA*h&xdXD1#)YAy zj4dx%_@BDIL*kS&qESOuvl3o&ehPvu8A_r=ZK2N^X&+M_yig-UIYK96P2#O~K+0q( zR&=BdPpz=by_5>wwbkIi&i3I&+v$2<%a=y|r3%X&RmdLK<<;iYdbxv*;n7*|2}z@u z*~UfKN01IH6blmG@a8h*sqr7Nk>6)}Pfkf>(~>o69Qj3MjDZ*qFBxY5Lciv6o$O08 z25rgAWZC!f?JXnL*e#}}1C#YWk=ipedp7))H+p_{`}MUx`>W}$y9w74w6pE99_l%;kLH^2F0M)41k)$zUvAjvr2m(y9J9>J0y|F?RARLW z&c457^Y?~|2n-Ta?c`T{hgDfb_1$ZSoIC8wA||XBzPnTzCNW-)7BP2*#!dY&ZJX@_TPs(pRH%?kzbAo%vsT+RjXH#kkXf=H0wt%SP<{9P_I6(%YqqAdC*zP)R`8{?%Zx)d?RO? z+dIgiq1D_qNn>E*@_RjYrF*XwtE6KdAI)}$;u67OBDruID^~JeTLEHA{7p$7!dJ8S zK}2h?KN1xohVoSzcWaom2A#EUbm)V>nmLCi*21Ng^kMN+{3!ZT#weku zL{D$^(#Vhre}5U$X(1?jlye7GJF!{Iw@Y`hlWk`1^3K8jeb8vIg^T7hvmi*6 z2`Q|;sAs*?FzcK7$2ya~MhWnh+PyEZdr!CIsX|1fM@lDIRsRg@n(Oj3$lK~v-79Bq zMSAxD`)Ky+zss%uRCc$;=fvw0vnrUkTx#bIOY0RK1@l+O-m->4t^Ix@S3Orpnk84* z+k!u~LSh&ih9&u;1c%9Yu6(5woqg#!IzRo=`t&!m&$UR-iqxRWikeD2?wwy2UjALU zSh%A9*6y7&wX$p20E2?rH;Gy7bhdYMZQ!7RLi@-S?_p))55zOX7G?I) z(SQ2bkQK45!N&qy@Gsxu_4?UQ$Nq&+E0bZX01DH-L10@gv$Iorll0?cMfk<2_MSJY zBVk43nP#=xti>OSCg^T}#PC%o<7Li>s}%U8ChUL^3|YEw=-&#r(ip ze_RnBcv)5#@~KC7!8CbRUHRpE`y5~KEGvVuFjQoT1?FRjLXc9ry;%$@!l6?OV=oyJ z;r{Wi<<{zzR93dXG-M#1kQ%kTUfSeeb2x54!c|z$)w-TEB2cQ=qI4m_e9zTUTRic2 zAyMl(Qt6_WAkvP6c9zVDqxYuGC%k}t<}9QPa|EN@%!zJ?_TdZAtVq< z5rH4!*`>hn?Q&=4fIl!hgt)R!8E#jmT1}_IMF}6JWbM$3b!64Gpf3T3gdk$f0&|qg zj$9)X$?dQI^{(IZcm40t;f`w2O;r}G2ML6T#<=6`-D{}{?S`j=3q*G=93EY|7=Jnw zUVqv6Qgy&~V0G8ETjHR;^~r+BUHBjCs15-Na4I?kw1=3q*>rV@=s4s%C_e7ST%DFY z`>YmMC%U6@btHXQWZsD-DSe8RMas2Yw+xj1P+GoJ>6Mgr)pJ~N<@K5>s)V3!{!~y^ z-~cV!YHZ2;bhlA9P*69MAo30$rNAKsI;a&pB7rTE#^M*$n|0YIk0fegwq9JyjA+GD zuup4s8SW9%ywf4)B<#kK1&KwajowmGyMQCEXuPdZfXlTuFd=Zy?b{kY_06>|=2h#Y z45)svc@1RCtUboe>*5hma=#xKVYdJqHGt5*jPR>3O#-2Ce@>riQH# z`xZ?DXV}lYnYLedlsn?$d2ctBio3%Zb7dfZXU>s?=6qVcz#A#49ZBQL2an>-RMA>&%)1yJB4S>k6UOph^g@j@!ILQL9Tef zB;#ROXbEXYV}NPFC^4-uCR;6&PC<#)M3EFmL}i?XWQyISgID4%t1ZND`n_m2*OEQ) zf!trea{CuWG;gRc{Pb{`9vGy;)43beGQ4zpfG8~(=^X#i86$jt@Sx*AnJ97NJKMq| z!rsEpA_xJ$;5Tne4({$4aKC8x4!bu%3w zQs$?1S3wqYtuw~aOa1cgZ;O8Ff%p+wFadOjk)x%J4qVd53O^VR_xdE9{AgdzH1X*U z%A$F6=_%oaWTpiLmR9tIvb1o!W-(y|tBHVGb38-erTl;#OUn_Q1@?0M_w4U$BLw14 z&qqg9NQvC*pl8;`M?pqgUrVbu3mA^RhR8gXAoaXsX9m3^_IZEX^-0<2M`Dq`bzfqH zy6q*u$XN|SBIsHb7k$PH<+8y)brsqRpwtDV`voC{S_{$}F`WyZ9SeQ?sdu8aW#b^{wzAIh4ChC5nyqI_buBTEdls_Hku<@b?3ijs`@Bte)f;W1A*G{B)eLc{On6A@hgu4B#P+CLG zlj$Or^n#Qscr3P6#FDfXlt^i{TOm~|E+^J%u1e3;Tl)+_DM(#wwOdfK5UKjLPBXr!qAkfCG;_}Qji(33rsjZ&_ zzkYS~SNFFKvnR8su!}!E8y$^_k})6ABA1jtDis+#Tb2$Td~bbc$ zpX-Wm~S-Lj(;w3w+ZeN!EJZkZEmMv7G;^O7Pk7%k{Nfi6V$4) z^uBo2dFgfj*VEd(U=Ul@XpWVxpu+h*Ov+l7P zrX;V(aX(uqB)kCZ?;u4H(WN2Kr3k9GfuG>^u1{zAy5PT&)VUGuB7B#d&M~v^0Emjq z4bIIh#>s}AT~Oi!?1l#K#jm6MDB#VFl<+_M1>#2ikjRq$h^}=s4|vfW8~#*pi=5m+sQ4}mnFzSrAYVx%eiaF5Ayr3YEISUUin;UL%r?pW#5_d%i zhD5y6P?T4q<)mb_D+t36_rtxfKo#T@nirVk!V(t6 z0&~A&VX%JUw_!&@1s0CEbGq>9i7g40U`Y5Ef^cn8D!n^4+agsj%%=o5ztM328O+Bg z_J8OiWf@38h-`ID-%CAMFXph&6}rwMvMsS-i1i*mJ#)SnD@IIeUB)D7VO};WVnpHP zc#DYU{MDwsl2jV}*&!iKabcIdBl7zHY46Mbq2A*E#f%JztYe6=glwT9N%paH$+&bI zF-)eii?U}OYmBX1+4o|&VI)hkG_sW&iHwLWSwhzAjs$ z&g=DjJzvlBI+aHX$m6(EX3G5Wr!9Rwus0In4YTOqfX#24WIlyqO+ZFs2jF9$kV?ui z9Gh9utr$FlkAj2xb7{Lo6>{*a;TGBX$IUD-2$5wleJE+a=y(;J2#;KYZYs{wBl0B{-cgYn@WQ#-c8p9nONzSfYu4Bq zW&W}g6%HMk$(_9vnalckHcvYFPz-jaI9<6s>a45xwH_^_y4$ov#lSB;NNLAoyjK8R z&?>PMl!boQZv%74&$#Qb`JS|Vp|%Gp3pPLzA0_wCd*CjoP)AGE{+#Ey^AqAun(r9& ztP?P{Os}Q&AI8aVNIVM9dnClkO!Qh-4p-lh_GVy*y~4+ZN{PF?Mb4u~zgFSyebKSX z&)xeno69HK!IZk-8b{=tiVdBM^{m!0m2m+H$Q!X>R0$aJBV9`tBToJ+g33cWVNx!3 zE{)D9F5_IBe0#tH@*(*1E%V+y7=uYV$Zeg{Kr0CjBXeA3#^}%QoQj0_K1Z zDL_WHyHk-K(HzZ(*`2xm=Q8y5-aL5S*$aPfhq{Uy8#ZA`i()njXsVjh@@`PtlHZhy zwTP2aN#C-*ZsyK#e*ga3e*bviKwsBt4}j%4AV^itGh@Gb8x!*5L`X7;yUy-C|NM56 zZ1!o2uUgv{t9-#i0>~-HhMpBU2y=R8aWZ4hYkt7)GR=hhdiU~iGFHHg7m19f>XAv` z$=H+S^@rdZpRBJzt5l2=QeT=nea|ZV`1KCHmTjD%doK{Sk8N$0q=q zVx_~53B0reVMIg?Z%wLa`=z{Q{6Ob1#x52Xf0kcPqDUYcacki#QnpsVUA%}7L~Jl4 z;Q%6W@{(xC+g6nZoB|-lCery3#Rh%(A80F068o!7h2l?Ko|ZoSZeDGlwTapO>=_+B z&^dA=E5y2VTD@qu{uPB&CqTP~Zn2&#{kS;&P&k7fYtZS|W-Y7zNJCO!w3&2_H??!| zn+AYLaTPAf!|BN&FaF;o;0Nl_9HsMlZ!=DBs`s&`RXWmR+|0}7OqIMH7yP7rf(F%hVwMO#CIr&q)=q6ZB{zjGl(NF=mQ~2!n5oT zBk``sSZ8sVyw;O3f(|Ko5#^UM^~ZXz`o}L;m7EuQ&n7CEt5)ifv18)5#x$=higcpk~rFEiHqSWlK# z*n-MXZ{5Z1k;{uZZt||_HreqZ(hGb)qLT>{}_j=k-}q?|^1^)g98;AQ|6?}o9* zth;DBKX(qUV{UK8S+e|o0h6fEb-8{#=Y9Ei9D+ACCLWgHdKGdkiw#^188eC`kFWKl zbtGJeeYK{?pG#;c>Gd{0p_J*MsY}QQBCa|$!7JZ2d4y4+=Fvn91$eqFl@U+gp z_^5b7Ld~gzw0^JyqHiT}bHmtwQIo`{Qo{8Vt(={;oGZXWLQb>l4D=!oNIlqlmLdU* z;7Q)wiM)sZw;zzw4ZycBr@j1IpX}}M#ZTluGUqLE^}9t_(82lfliR_$a60*fOe+>; zl6f`LHq!w`YOZsc?9`<*UQ%E&QTNNnD#iqS^NO@?Vao^CeNhKN8ME}qvkzw5Yt>sQ z&sVF>bZ2HS(8;AZ7)P=G&9EF0&7l=dku*}-*8=@M6If#lo&bS-4*|c1BVaj{) zjtMn?Vm6VvxdNPo5kzp=)_b%cu*o>(`3~Oy@TZ`gj9FBH{-1rnNB$2;ew8&z^-LSt zrg0sS#qq2f5rv`0+yBb1FVcrQqn(W!zT;l$!^QKF|hB<>#DA}bh zBHdb+4DT<{Ae_o$yzXTZPo2q>P6kLzozu%BzrW4tLJZTqd!0VELhNaeUn6BVy+$CI zkbL){beQ{>zzUb=I~kX0S zB9Z(xn%&clnvzsrD|=ENgE5OnMPk)rIJjl&l@?^2SwYep)2X`(iHl|6@t^;nkqgQ_ z*T^a+TlLy|(cyJQ@s)=QWG2`A@n2Kg@)eaw9J4ncmYO5D&H|c=-$??md@_E6AI722 zT9WfLb!P7ml6j=5WQKIwj0UHV$6}p69Vulr6;kK*sw^h1OnuvS`=wac{;=|TcE;M9 zIP4%^*)f$!pT*nxveOH-#~=$&^1!Gse;Rsr6*#{TfRHX5duP0<9;>{ zbkuzcUP_n7**sINP_MXkJz~?wIJr9%pp&Tku3t^s50?B}HvP+=9Ig!)`aD}P&LdiW z!T|!sE9+U__%F;|3?1Sdg0pm0g#XvE{q}AhGkK@EFx<9u@(3-te7seg7u`^5@u`BC zit~1+&9#EGSy@B zuoT|4OsYGpzGxX~h?~_OB~dy$KZ6-i1iI%zJ&qcB7t?z!C)aDetiA(tcWsRnks&7G z#A{YY${M3S=tmnyIHcj_0JR1Q{eB}&4CjGq~ZK70ws!4 z&-_~czq{PqI3|AFFFWY*_v1TP#gY%Cb$zVzpgB=sI}RdUVga+iA&t7A5O6N{I}SLv z0rK)W$v^kAKS+JVe}wf*^&6IWS8@jHA8}x?>ZEnPPN}>r})QP-s)#BtR3Lau%@b*SqJ_LIkO=5qT$z92~(maJkpNA*&!XBV_-J} zZd{T>#z-+~{!8-4i6}NBaUQw)e=#7JPkVWCZz7bGk5=Fo=^#c7xKYRN${pWXxnO!Y z4JC^OE>FDUmFxyKcrkhy4@{F94zxCKIDZ{^2tayyM2VN;3ca`8@jG-8`Xe}OZTi&Fowe%XGLlE6yy&`0^WmLB!APEFe- zt248Hsi=|RAx2P=%9<}K5+k7>;>SmU8a zY{Nowt_BWSyF=`Ju~G3Tk$`8bc&hiwx`|qfHDy6osd1%sdVjrFXOK=-;|?zTIWo3c zI}Md=8NLG9Lh-3`nQq1KK3MVFC#R>K$VQp0+OBWJrWm%{JIr;JX$v0P4TE>in_qO8 zz2oHmGf>n$@UqaOw-wD?t4kLZ+pv4E=2ZcVLkKd9c`7o;lNe8e7^o=iho!kF9X;<%W zfc}vU@J<{HtO)dDEmpn);Wrh{Bs%lH*%z-joC_#&9uNoHYwz|YS6GE_e?}A6l(fxB zneQ>}nD;Kv`sYgMl@5`#*NiE3#woKK-M%kF8?!w`W$q|kNqW>xs&>e7s*Q@L;8z-X z6}H2*j1&SwZbf26Th6NQUrF+?&e}e~d11seY;LozyZ$hwV}%w?!x^*}(8)16EpL|Y zq`gw`e>E~Xn39r`>Y;Sh4UN2x<{KE1!AogzOKHTwC@^-sS-K z4`7V`FFdl%E74~bkMUI(6tc!s=@XE|boKS1NoDlkF1!xwxu=^B0nNep(4nGgs``yHZo|Ro|*ty;DPd zH&C=DV&;(PdBCeA{6PB%U>%z;1U6pw*!>5ynIqzcZ5pvqTXM=<^7i}A+$P%+<~;01 z1%9N%l0&~8=rtK?_%BnUTlgiwIVf#4Fq$6U`?@#Q4bEeK-B>gWo>wagz3EfHA>jLh zJoWZr2}<_0$4iGK!UGiG@YS6MoijVYhR(n=*hV<219(FB{gRij>%0w}2jtyuU}bAH zVs5MVD^$g2XAtRKd<#bb1oaWqR!H`umz44DYbKzte+0P1y*A7f0CsX_Vtx(vZ+}?nbN)EK#LfpGcD*_0aY%IO)rv&3i6XdtM-5vIeVwV{ z^vMA-Tt|>$clW*KsrZ!D04?!3?{t&p#0lB5<(RwJ~ow>rF5$ zm9oUcIMR2o(dNCRhJ!`bn3xdPfH_Lby)pn>@$LZhE8&dgdE`{D=~0;`&~!2_Wp7aV zdVY#eCS;Ny{{4vi=yNCV7@tiGNbPSle1tkXDM4p|TY{JF=Gj8pdzT%^w~WBpJRMj7 zu4RvG_oLP~MZ(vr={~YXO5hyAR(XHe^Ykp%tmuO%Kzj7f!QbD^9KsABn69+yDOH=} z=cF{e&ey$f)~v~J`oqKhTff$mSx^AAVxg~3|9l1G=*h*>(7{c=HY!`*Px;MH zT@7r~Jl~P;Hy2_&)x236F~J=h6&nH;hCp}x3nFZhbRuXOU6kSz|9dFm{phfbe;k_3 z^L0=9ns}jugMY2(wU~#GZ>s4M?I?*CfI}-_W=(h#iEZ3@f7>29kyf!haP|&elcg2j zA2~k<=ae>g$sB9IqE_T43hc*rgG4f@9jwivIo;ip9Ve*4`ZiRGq-%sUYDQTU{10>X^se~oJEB<+k8|TFe zS=lH$NByHRaDCATz~r0Vy_7yD>hR#Q0oVil`t9$}eQjiAE5`U9DJGj;Ua~!~m?fuZ zioHiCOjrY z@4CFyB0C4c85#M;Jz$7mqybzSX8t!X=7Qu*z${^8HD{!Xj$&a=xN6h(&hf9Fhi`=L zYTUgnh}J~#(|;DNIz_921L_v_#Ovo4jypHHvp?s=czdpGSK*l3v~b6rA`S44gUCCz4Fmt5N}0)Ds&A=;K3@sw z`Bm;^8QER|6c0urUsOI&CJKl7c>81# z4-9enW%o7q*0%oK%@?1be&A;W9fDWy^kD_dlWkZG+V2jPiN!OBX{&qUrn@n&fZS^r zD!{v08Y?ysAu_5RDcgbbmWv>-q$o~I2n)%&rkmuCs|ja8A`>8HIL;}kMx;zIn+ejl zn~Viz%RH~21IM}>YEC%)lyE!aJZbaAygvW4jNOf_l+@QusGDSiR)gA?xlE}k<9%mV6wlKL(&&bXF^|Rzmn%$kZa(acHd20_#MEDdm z2?0Zn0Vz*zYXWaHs4=aOP|vH-;nkOD%`Gt`ZRk@#UQvc>0-$#OfAfDq4!44O`m)me z&<3PA4>E{gO{jauoC2UM`3i_olxk-R{UaRPuEni}Hg;S5-7^PY{#8AcQGHtFlWdWo zkPRBi&Bu03C{TA^D6q=|!IjbakSW#0Y}}jeteRH%S$vfex%b=n!xCpC}~+wEu1#pErtk^&RrDgf-@QZ3^_ zp$tvG*$Q|+SX{ZTUO*T4SrD54dvJCm*^lFlnZw2EUhQ(63aZLf%~ zAmpUDM+FL#u*`i;6w1JSp&6}8mKW^1Ke~BaORW(M`_%X0*mTAWnI8`7{EJ- zRs2e>v>`#IJ4R)zPQ+@-H$^s_i9R4F z@aNh0a!1I0Ct6uF46Fc3*BiYBlK`49zzDP=MeCK=VA-Xvn3x#FDK`nz-7}Snmo!^v zZE0hLp^vfWPQ?R7MjKK|)zLB%D=5t)0YC$9U-bPsK)L{CAF38n3dqvh=ArsbbaVtL zfq;@7hx+LD8lCngA5>p=M2dwS~&=>w|_)T}~K+Tj>7y9Zpd+9w$ljnYf-Xq4(eg z2uwczK<9=QN<7cH>g5leJLQ_q`lv4+rEna91iCj#zRx^p*L;(7DtMvJ8Jz|RNnlBz zMfz(4(Y2IM;sAr+FN*)e;nu=Z9UtM#p*mJIZ(Hx*$p@%~*cOHG~?RScqm7@{r z+mMad$UzkeE9B19QgAo;j@U_y+;|~A(#1eu4OP)pPk2WmgOJK*$8+P=f$ z=k(j1uhtK#xmIl;+6n1%K3h$o;?3v{L2ESv+(5_*D;De9uI6mjGZF@XIw2}H3UQ+e z#`rW&`$JIl!^t`+)1$5l4_MCuk<9KyUK!*!Vb+v0;OU0#jlR&vD9&qh)Y}_R3 z5ULc^xE-kZHafgO&J#!N$Y;|2cj;d9?7hFB7UB0M*YH#QwJ$>i!2s$tZVZ5eV?GD3 zBx-v#6v2~iQwsh);6`1A0>|BIga2aPo3Wx>vb+&L#{J;Qh^g&E3|i~kn|0MwWgLQ4 zYOatGfsC+28Tu4x!vUft3sz8}0hc;!Qk08J1!)%epdk4T(Ia=7;m3oPdYeH(HC72a zzRXZ`0DWw^Y?}|9!@hd^govh%+!04B&EW+`j zE+~sC$>3>;kXBO4nnHKHO4TL9^&)0MAfi7nQLmqhpOPu32`I z#P)`!SChl`*XlbjdY)fyTz@=!aXGO2Zrg+K&zz4qtHBU+dTb*LG6!bm%@j0y_%{8Y+5uL?{j^Eo0ZMzwdF-7a{wz5DOnpHF<7+MTr5Gkn_| z?QU1OU9x62I$2}#8qgB%{?YNCZ4!_(8eMN~2Gk(fb4u19s4~{H<7CvH1UL6FSG)-k z8N%=nVchSY@)$Y_n1+Y$h|?k#WHTd0HVy=`&Yz|$C}K2vAZ5BM%@8={L2Lt^S3oAG zbtdmNFymHWsA_ftsR=L+W-Oo`736?(gQogy0W)SgDhAYuiNKJ^fXu_pVHPrewKXt% z_Bt-!?K$t1)7r*Yf>PcTio`OTDi71CM;FxC_=IXqXlUI5P#=Z-W@LLL&?IfvJdiT2 z>jReR{7|SW0Q8=3w1YTbo7zPoYStk?#Z;wmui_pBbI(|E3CCI3xA(tFZH!G%#4tK~n+ek(+nM8p+jX z`wD=1vKdrZ`V$B%RsTHF+E!4+k4F1I^8$n&#TV%kMXWFm&u(Y9)gw^iMh?~GGH0;2 z*Ct(-a;9-@n&QOqD+d!uHh$kD{;e!}UBEIjSo6HhX!Uc234_Gd zC>gEmA&l(Pmch*+$MGw#0+5=DG?u?*te|=+)q|5i7A%dvAe7U?I5q)=?Phqlg*BmQ z#9Py5P;X$|D=sQ-bpb|sR)Z#bQG%t7a#*qWt`{W+n9)L2rBp9mw z*`+_$TXH$)8`lSW^NE^#MS`yeuTk{KjLg08Zm{H3s#QLy&zX2p5CWwPVyX+Sq`}$t z!4nd|!miv3+qmk69Yo;WlBpTf4f)(XAY=$AaKR2$&U>ZH07|cXm}tSr44mySZxxLV`2A zqmR8r*YttUC1`fm88v?RAsA{DHs z;6^QiA2{5%REY#&*9MpAVI$Lc z(P(6ATi|T&D^HuKlWsX&y%!pibm`tJ^x^mO-H9Cs>IFBe`OChyt_m`3w;88r`|$A8lq1E;5wzDp zP{STTD0R|PubbVN{MFdAc&3QceJ7Kaf{OsrDV5zITFTVP8U)|*vpmkufY;WvzI-vu zs)$D^ee%ulkumSy5`4+|5}RHhN!QPZ&;_7MEkFNgd9e@rf`h42goZAFR9OfDE z4uc?V?B%feB-;m4<}Lt=q!Ii+56|&H)#htpM1$8>mVyNCMAjS`Cu|SA{^77ucD3Ao z^Lbj%Pb3uZA3N;TIM_nBbluy50{K3q*SjB{GLDM`!bkT`Ujc+biK-*WSVdG_kD#^| zBXL0PUiWI$l1KWz*OD|R$iyQ?XHqI{hRj#;{Wd;b&HKiAJK)XQE~6zB zVtnfMyOQ_2Aim*N-~@+5z@!SqD=CTXbb&iRtyIY8+i!_ES%%|E?X z)@23E^X))D6TfN%$j8RBakXO_8rNEdf0J9g$s5oeWmD~j6p>p2|LmanT$2l@07R9d z6hIx_xgCj1ady3paUfR@H!nUI?xwW z>5dNdR315GIUr?IaCB#^ep`j|5u?*=d@yci_|}iy&F#MeCV-Ctqo2zZ!p4;kO7S=othyyF0-VyJ_eWw83gal~eIx>DubcUF*@- z+4GtSiXd+*m`w4ix_RulZG&!~dEh+YzokZ%fcA!ibq+!U( zeML}O^DLm(wj;#wy_)S)%4GVit=D7f*Mrfo1i?FBPe^h*q3A?;WpokO6;2?P^w~=T ztIrOwpy;!jIq=Cm0BHlFa60Rw6A5X}Kc99(2U#{KR->d#V217k5OEZ^BP03EX!c^= zn=i=3)Ds+JtdRm6zgcV$ox`4H7xewZ2UUgkvjD;?AnydkxD6mobe!8i~)Zp zV~cft>mEU%Zb0A^cz}zM?L#Tk2Tz1NECJMdaO(vY{L(ZNK(7D(_}?V_X9@pphyQ%S qe~$6L=x05 literal 0 HcmV?d00001 diff --git a/src/rasterize.cu b/src/rasterize.cu index ae4c9e4..31cf64d 100644 --- a/src/rasterize.cu +++ b/src/rasterize.cu @@ -18,6 +18,11 @@ #include #include +#define LINE 0; +#define POINT 0; +#define PERSPECTIVECORRECT 1; +#define BILINEARFILTER 0; + namespace { typedef unsigned short VertexIndex; @@ -157,7 +162,11 @@ void render(int w, int h, Fragment *fragmentBuffer, glm::vec3 *framebuffer) { int index = x + (y * w); if (x < w && y < h) { - +#if LINE || POINT + framebuffer[index] = fragmentBuffer[index].color; +#else + + Fragment fragment = fragmentBuffer[index]; glm::vec3 diffuseColor = glm::vec3(0.0f); float texWidth = fragmentBuffer[index].texWidth; @@ -166,11 +175,37 @@ void render(int w, int h, Fragment *fragmentBuffer, glm::vec3 *framebuffer) { glm::vec3 lightDir = glm::normalize(lightPos - fragment.eyePos); if (fragment.dev_diffuseTex != NULL) { + TextureData* texture = fragment.dev_diffuseTex; +#if BILINEARFILTER + int uvindex; + float ufloat = fragment.texcoord0.x * texWidth; + float vfloat = fragment.texcoord0.y * texHeight; + int uint = (int)ufloat; + int vint = (int)vfloat; + float udelta = ufloat - (float)uint; + float vdelta = vfloat - (float)vint; + int uint_1 = (uint + 1 < texWidth - 1) ? uint + 1 : texWidth - 1; + int vint_1 = (vint + 1 < texHeight - 1) ? vint + 1 : texHeight - 1; + uvindex = (uint + vint * texWidth); + glm::vec3 diffuse0 = glm::vec3(texture[3 * uvindex] / 255.f, texture[3 * uvindex + 1] / 255.f, texture[3 * uvindex + 2] / 255.f); + uvindex = (uint_1 + vint * texWidth); + glm::vec3 diffuse1 = glm::vec3(texture[3 * uvindex] / 255.f, texture[3 * uvindex + 1] / 255.f, texture[3 * uvindex + 2] / 255.f); + uvindex = (uint + vint_1 * texWidth); + glm::vec3 diffuse2 = glm::vec3(texture[3 * uvindex] / 255.f, texture[3 * uvindex + 1] / 255.f, texture[3 * uvindex + 2] / 255.f); + uvindex = (uint_1 + vint_1 * texWidth); + glm::vec3 diffuse3 = glm::vec3(texture[3 * uvindex] / 255.f, texture[3 * uvindex + 1] / 255.f, texture[3 * uvindex + 2] / 255.f); + glm::vec3 diffuse01 = glm::mix(diffuse0, diffuse1, udelta); + glm::vec3 diffuse23 = glm::mix(diffuse2, diffuse3, udelta); + diffuseColor = glm::mix(diffuse01, diffuse23, vdelta); +#else int u = fragment.texcoord0.x * texWidth; int v = fragment.texcoord0.y * texHeight; int uvIndex = u + v * texWidth; diffuseColor = getColorFromTex(texture, uvIndex); +#endif + + framebuffer[index] = diffuseColor * glm::dot(fragment.eyeNor, lightDir); } // TODO: add your fragment shader code here @@ -178,7 +213,11 @@ void render(int w, int h, Fragment *fragmentBuffer, glm::vec3 *framebuffer) { { framebuffer[index] = fragmentBuffer[index].color; } + +#endif } + + } /** @@ -684,6 +723,7 @@ void _vertexTransformAndAssembly( primitive.dev_verticesOut[vid].texWidth = primitive.diffuseTexWidth; primitive.dev_verticesOut[vid].texHeight = primitive.diffuseTexHeight; } + // TODO: Apply vertex assembly here // Assemble all attribute arraies into the primitive array @@ -719,6 +759,31 @@ void _primitiveAssembly(int numIndices, int curPrimitiveBeginId, Primitive* dev_ } +__host__ __device__ static +void drawPoint(int width, int height, glm::vec3 p, Fragment* fragments, glm::vec3 color) +{ + int x = glm::clamp(p.x, 0.f, (float)(width - 1)); + int y = glm::clamp(p.y, 0.f, (float)(height - 1)); + fragments[x + y * width].color = color; +} + + +__host__ __device__ static +void drawLine(int width, int height, glm::vec3 p0, glm::vec3 p1, Fragment* fragments, glm::vec3 color) +{ + int x0 = glm::clamp(p0.x, 0.f, (float)(width - 1)); + int x1 = glm::clamp(p1.x, 0.f, (float)(width - 1)); + int y0 = glm::clamp(p0.y, 0.f, (float)(height - 1)); + int y1 = glm::clamp(p1.y, 0.f, (float)(height - 1)); + float length = glm::length(glm::vec2(x1 - x0, y1 - y0)); + for (float t = 0.f; t < 1.f; t += 1.f / length) + { + int x = x0*(1. - t) + x1*t; + int y = y0*(1. - t) + y1*t; + fragments[x + y * width].color = color; + } +} + __global__ void kernelRasterize( int num_primitive, Primitive* primitives, @@ -737,6 +802,20 @@ __global__ void kernelRasterize( glm::vec3 eyePos[3] = { glm::vec3(primitive.v[0].eyePos), glm::vec3(primitive.v[1].eyePos), glm::vec3(primitive.v[2].eyePos) }; +#if LINE + glm::vec3 color = glm::vec3(1.0f, 1.0f, 1.0f); + drawLine(width, height, triangle[0], triangle[1], fragments, color); + drawLine(width, height, triangle[1], triangle[2], fragments, color); + drawLine(width, height, triangle[0], triangle[2], fragments, color); + +#elif POINT + glm::vec3 color = glm::vec3(1.0f, 1.0f, 1.0f); + drawPoint(width, height, triangle[0], fragments, color); + drawPoint(width, height, triangle[1], fragments, color); + drawPoint(width, height, triangle[2], fragments, color); +#else + + AABB aabb = getAABBForTriangle(triangle); for (int x = aabb.min.x; x <= aabb.max.x; ++x) { @@ -754,7 +833,13 @@ __global__ void kernelRasterize( fragments[idx].depth = fabs(tempZ); fragments[idx].eyeNor = BCInterpolate(bary_pos, primitive.v[0].eyeNor, primitive.v[1].eyeNor, primitive.v[2].eyeNor); fragments[idx].eyePos = BCInterpolate(bary_pos, primitive.v[0].eyePos, primitive.v[1].eyePos, primitive.v[2].eyePos); + +#if PERSPECTIVECORRECT + fragments[idx].texcoord0 = PCBCInterpolatetexcoord(bary_pos, primitive.v[0].eyePos.z, primitive.v[1].eyePos.z, primitive.v[2].eyePos.z, primitive.v[0].texcoord0, primitive.v[1].texcoord0, primitive.v[2].texcoord0); +#else fragments[idx].texcoord0 = BCInterpolate(bary_pos, primitive.v[0].texcoord0, primitive.v[1].texcoord0, primitive.v[1].texcoord0); + +#endif fragments[idx].dev_diffuseTex = primitive.v[0].dev_diffuseTex; fragments[idx].texHeight = primitive.v[0].texHeight; @@ -766,6 +851,7 @@ __global__ void kernelRasterize( } } } +#endif } } diff --git a/src/rasterizeTools.h b/src/rasterizeTools.h index 3aea946..bb1c074 100644 --- a/src/rasterizeTools.h +++ b/src/rasterizeTools.h @@ -107,3 +107,11 @@ T BCInterpolate(glm::vec3 bc, T v0, T v1, T v2) return bc.x * v0 + bc.y * v1 + bc.z * v2; } + +__host__ __device__ static +glm::vec2 PCBCInterpolatetexcoord(glm::vec3 bc, float p0, float p1, float p2, glm::vec2 t0, glm::vec2 t1, glm::vec2 t2) +{ + glm::vec2 tz = bc.x * t0 / p0 + bc.y * t1 / p1 + bc.z * t2 / p2; + float cz = bc.x / p0 + bc.y / p1 + bc.z / p2; + return tz / cz; +} \ No newline at end of file From 714020a65b4a2397fb4939f13f40658819dd0143 Mon Sep 17 00:00:00 2001 From: Xinyu Lin <31527895+460xlin@users.noreply.github.com> Date: Wed, 17 Oct 2018 16:58:37 -0400 Subject: [PATCH 3/5] Update README.md --- README.md | 51 +++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 43 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 41b91f0..9c46e58 100644 --- a/README.md +++ b/README.md @@ -5,17 +5,52 @@ CUDA Rasterizer **University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 4** -* (TODO) YOUR NAME HERE - * (TODO) [LinkedIn](), [personal website](), [twitter](), etc. -* Tested on: (TODO) Windows 22, i7-2222 @ 2.22GHz 22GB, GTX 222 222MB (Moore 2222 Lab) - -### (TODO: Your README) - -*DO NOT* leave the README to the last minute! It is a crucial part of the -project, and we will not be able to grade you without a good README. +* Xinyu Lin +[Linkedin](https://www.linkedin.com/in/xinyu-lin-138352125/) +* Tested on: Windows 10, Intel(R) Core(TM) i7-6700HQ CPU@2.60GHz, 16GB, GTX960M(Private Computer) + + +# Features: +- **Basic features** + - Basic Lambert shading: + - Line rasterization mode + - Point rasterization mode + - UV texture mapping with perspective correct texture coordinatesbilinear texture + +Far | Mid | Near +------|------|------ +![](img/duck_small.png) | ![](img/duck_mid.png) | ![](img/duck_big.png) + 60Fps | 60Fps | 60Fps +# DOF + ![](img/dof.png) + - 5000 iterations + +# OBJ + ![](img/obj.png) + - 3000 iterations + +# Multiply lights + ![](img/alll.png) + - 10000 iterations + +time cost to 5000 iterations + +time(secs) |sort by material id |store first intersections | stream compaction | Time +--------------|---------|-------|---------|------- +Diffuse| 0| 0 | 1| 6m54s +Diffuse| 1| 0| 1|12m11s +Diffuse|0 | 1| 1|5m33s + +# References +- [ConcentricSampleDisk function](https://pub.dartlang.org/documentation/dartray/0.0.1/core/ConcentricSampleDisk.html) +- [GPU gem3](https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_pref01.html) +- [Schlick's approximation wiki](https://en.wikipedia.org/wiki/Schlick's_approximation) +- some iterative solutions for binary search tree ### Credits * [tinygltfloader](https://github.com/syoyo/tinygltfloader) by [@soyoyo](https://github.com/syoyo) * [glTF Sample Models](https://github.com/KhronosGroup/glTF/blob/master/sampleModels/README.md) +CUDA Path Tracer +================ From a3a4656aa94b7d3887deff0a09eb8ccfe98e1013 Mon Sep 17 00:00:00 2001 From: Xinyu Lin <31527895+460xlin@users.noreply.github.com> Date: Wed, 17 Oct 2018 17:02:11 -0400 Subject: [PATCH 4/5] Update README.md --- README.md | 37 ++++++++++++------------------------- 1 file changed, 12 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 9c46e58..5087c39 100644 --- a/README.md +++ b/README.md @@ -16,37 +16,24 @@ CUDA Rasterizer - Basic Lambert shading: - Line rasterization mode - Point rasterization mode - - UV texture mapping with perspective correct texture coordinatesbilinear texture + - UV texture mapping with perspective correct texture coordinates Far | Mid | Near ------|------|------ ![](img/duck_small.png) | ![](img/duck_mid.png) | ![](img/duck_big.png) 60Fps | 60Fps | 60Fps -# DOF - ![](img/dof.png) - - 5000 iterations +# Line rasterization mode + ![](img/duck_line.png) + - 60FPS -# OBJ - ![](img/obj.png) - - 3000 iterations - -# Multiply lights - ![](img/alll.png) - - 10000 iterations - -time cost to 5000 iterations - -time(secs) |sort by material id |store first intersections | stream compaction | Time ---------------|---------|-------|---------|------- -Diffuse| 0| 0 | 1| 6m54s -Diffuse| 1| 0| 1|12m11s -Diffuse|0 | 1| 1|5m33s - -# References -- [ConcentricSampleDisk function](https://pub.dartlang.org/documentation/dartray/0.0.1/core/ConcentricSampleDisk.html) -- [GPU gem3](https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_pref01.html) -- [Schlick's approximation wiki](https://en.wikipedia.org/wiki/Schlick's_approximation) -- some iterative solutions for binary search tree +# Point rasterization mode + ![](img/duck_point.png) + - 60FPS + +# UV texture mapping with perspective correct texture coordinates + ![](img/kart.png) + - 10FPS + ### Credits From a97c2e5ea9954e569f565500de4760e976d96272 Mon Sep 17 00:00:00 2001 From: Xinyu Lin <31527895+460xlin@users.noreply.github.com> Date: Wed, 17 Oct 2018 17:03:35 -0400 Subject: [PATCH 5/5] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 5087c39..cf60117 100644 --- a/README.md +++ b/README.md @@ -39,5 +39,4 @@ Far | Mid | Near * [tinygltfloader](https://github.com/syoyo/tinygltfloader) by [@soyoyo](https://github.com/syoyo) * [glTF Sample Models](https://github.com/KhronosGroup/glTF/blob/master/sampleModels/README.md) -CUDA Path Tracer -================ +