From e789c569dbc7870119fcffbee44a2fb11539c350 Mon Sep 17 00:00:00 2001 From: ohyzha Date: Thu, 2 Jan 2025 17:40:15 +0200 Subject: [PATCH 1/6] fix image loader bug where rows and cols were misinterpreted --- openVulkanoCpp/Image/ImageLoader.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/openVulkanoCpp/Image/ImageLoader.cpp b/openVulkanoCpp/Image/ImageLoader.cpp index 14c51e5..f81b6ef 100644 --- a/openVulkanoCpp/Image/ImageLoader.cpp +++ b/openVulkanoCpp/Image/ImageLoader.cpp @@ -16,9 +16,9 @@ namespace OpenVulkano::Image std::unique_ptr IImageLoader::loadData(const uint8_t* data, int size, int desiredChannels) { Image result; - int rows, cols, channels; + int width, height, channels; stbi_set_flip_vertically_on_load(true); - uint8_t* pixelData = stbi_load_from_memory(data, static_cast(size), &rows, &cols, &channels, desiredChannels); + uint8_t* pixelData = stbi_load_from_memory(data, static_cast(size), &width, &height, &channels, desiredChannels); if (desiredChannels != 0 && channels < desiredChannels) { Logger::INPUT->warn( @@ -38,13 +38,13 @@ namespace OpenVulkano::Image result.dataFormat = OpenVulkano::DataFormat::R8G8B8A8_UNORM; break; } - result.resolution.x = cols; - result.resolution.y = rows; + result.resolution.x = width; + result.resolution.y = height; result.resolution.z = 1; if (channels == 3) { - result.data = OpenVulkano::Array(cols * rows * 4); - for (size_t srcPos = 0, dstPos = 0; srcPos < cols * rows * 3; srcPos += 3, dstPos += 4) + result.data = OpenVulkano::Array(width * height * 4); + for (size_t srcPos = 0, dstPos = 0; srcPos < width * height * 3; srcPos += 3, dstPos += 4) { result.data[dstPos] = pixelData[srcPos]; result.data[dstPos + 1] = pixelData[srcPos + 1]; @@ -54,7 +54,7 @@ namespace OpenVulkano::Image } else { - result.data = OpenVulkano::Array(cols * rows * channels); + result.data = OpenVulkano::Array(width * height * channels); std::memcpy(result.data.Data(), pixelData, result.data.Size()); } stbi_image_free(pixelData); From 4f2db7891c573267118da86b0d565a1e1c96d3a4 Mon Sep 17 00:00:00 2001 From: ohyzha Date: Thu, 2 Jan 2025 17:40:26 +0200 Subject: [PATCH 2/6] update bitmap atlas --- .../ExampleSources/bitmap_atlas_packed.png | Bin 164748 -> 177670 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/ExampleSources/bitmap_atlas_packed.png b/examples/ExampleSources/bitmap_atlas_packed.png index d8071d65b01f280cd0c0d300d48ed963d940ddcb..69ffc877b0d5367dbbffa8a7a862bd5d72a53b2b 100644 GIT binary patch literal 177670 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

8<&cL=&2#ZXzBXb?+T zj1@t8J_1X~ZLg=%^a{`Y$l@@XQ+tcUE)3D|8#VXv2$5pn&Y}I|lg~A4f}lef2Kq90 z&uBtm?-O;T4_fN&pex~l(~}7G5;Sl5mzFh2-L zzGgU@9zV4ZRE8jCg+q;N-Csu6ZNlEGey{yMFt`fleI@dK4q`v6UDPWJFB3}g!xLS3 z%&)$z=ZAtCLFxw>x1>Cni`rHMy-Qy>iU=})fyypw^)#puv?c^}wa8KSCG|uE#pruA zf~q1RNE3>ffloW-`Bwz1sik>b7hOLYBH3d}uA+jv% zDowd>V=}i>5QJ)LqRMhFGHUIsU-C8OpWxW|cpi&G>SiRZohu0;V$KLWA);qCOH4)h>+EXPp(3<-FKe zwuv!I{KJFA=LVn6Fj?)ufAQQhv2?E^p6$WkZE8XXxX#d2^pr1oTvYgI8C{lSifUbe z`s21ojuqe5c+wv+gH&Ie8djQna-XaX$u*aAqs8(;_?RD$cjS%ix zPBV7W^g%zmP)rHF=!i#6eaz;ZSxEpMh1B9w=i+S(RDTIq4B zF=i=JkEbyhxoKN*xm9PDQX?d;xtWoz!PfP|D)#$3cv3o=f9`e)wS!o}D zxjvFJaY^G%pC|~j(Ods0THb}pv<-n&bgFu{Ge=OGI26ITct{HkiVQx`&VbvAu+`x{ zK63@lc;6)wf*ZJzueP6yreRVZd-0efZcP5MhS{G|hJJg?FBFN}Jl1Ni+846~%Tckg z)4Z6x>rn^927OEg1yxO`=w(hz#5d(zniS(nLcLmE#zapW1Siy9C?V)`m#R80AJpk^=^3fUzoH6nD23PFDDxebDp8EHZd&215MJcHrhUSvrM}Gu?>PWGl3(xuehGjeQws?WzT(H4+TD`8JI?tv6VhH z2vYTgw82N7{|hB5`Uf765j@ANCEIWWsf@3jYLKE;5OfNED#zpcP26CvbcKX=;or1V`Z`0uP_A1c0kG+0rCGSesnSWUdRgHR+GB zPTI$`Hf@MX+t4CM+l;|yFGH}ml1|SN)C4BVYwXk=zp^yaUAZJ8$OIcKc^QH&U*MB| z$@$f+WR@ei5mOopPs>Sn<23N7&`Cg0?LG$>5zC4m3t~SX^pre%u#&(BB?R9_boc~` z&V45VT%x#_h#=Us$kIka@Hkr$U>^=yBrRY-q+TA8#1UL%=^-@Y7+s6>ZOhkI!jf1@ z`uIRmUHSYmP4v(P$GUO%gc`xyI1Og-WGgbbQVHuAU|EEE>ncq1sq@XICfaah>xU<} zKvjG|o_hguWW1${eFR-&LmX5H&P35=vyM^>>5_=x_G7Uad+e{5AqXC84am~EWHP&l zBDfT@TZm6{;*x-P`iQi0l7yhzeJ;PWW-)$6IsJndcK9HTyvhZSl=MY^;*YT0+*Ouj zyp}QBJw;JHqSL7?@vqMIsVFH$kJr={ z#2Cz;s9W6U0w(-?6oa*}%-mVF&V~Hs zk6XYk?!K&Wx+dok{i$w|vU+l&h~Q4v!hPK76it0fgUqeSxsnjo1`FN5rY7#G$n16< zEQEgf2C22W&Qn;{bY3FSV?sP-1X~+^1{H$G@@q+_@0znV>@~)FDwhVMIfFcG`OYqa z<_xL|6%J7hnYcX_gWnJl%*fCYopQPLX--_IpjYfcP2O@zRJqSl@uror0j%)B0@^PU zf>pYnN0Xewskxn6*@_?`SN@Vd_;xg@|KZB&ew!d6I37QA_#v(={ZAsDObXMz*j@wt z%71g;^rHO5Z|*QXLYJ`871kJE_t~3X7Qe!Q2sf0#p3bQ*-!e@=&|8PC**MOj(0?ZhY;dD`cdf%8rL}Feo6YF#_ST%b#WLN4YpYbrEV&xkE^JtbLShVZv)I% z>}Pza@mz2GNI;NEGL5&G+0^FL*wQrw^*_NzeM*mm}z!LZr`YT#jwhp&EQ4JnHDHuEjNoE@6Xk^;ZpN>Bz7R4j^j%EzTZMbgD z{ic^_?B!~CzOBI+s1p#7hG_u-Z`trc?G+-f^(R1l1o_YOFT zk`f_NQI-3gQqd6>xyvLzNSP&KtF=*tbVWx+MTK2muB?|+Bkznuh<@FwqGv7)LDJw* zjf5aCU!fd>>TZ#>?!6@qNRQ2RYHziqOu_dF-5c)oK1$&M+WT>Ca05F#ea06vg375k zK)9vHpU*N&D1zDqiQz3`c%CNh3q8PEOx4OTGVl9xIBaS%6(3U~eU5tw2=xfEi(nH( zu0Yf-BtUgA#3%@EEN=lfiCnMEQQX$_Qqz(cD}qF3s{c}Lq7N2A&v=YnD2IquK(G!{ zm5o20gHqbj7G_?uA{c>@EF>Zo|CadR_h^>p3gd$m!7f-{Nt9%)=^w@Qdeb<{kMTo} zpkoYS_h@iUP1*TGWP>J=$<=`gKUM`Qy4KX5+9_tz znDLJ!1eqozB1neNMbgLJV$59ol?+jVl!HW@T;&jdYAP#n2e(4jx)0cDe9ndhEg6TD zNG-N71Ez3`gy3d5sEknX48{?IpFAtG=Ecyk)(Q4&(%O_8iORCNwKFhcAVIk5*!`M{ z2>w>?N6m6d6kEemzOdmieOMFePIl>{WL4ppJ}BnFaSJi1!oDAl^Gs!w)Ga59UCYBrh(uu)MoQ1|USm3S;~)S7D&3$J&(4Iil?Yl69baO^3G zEFxd^kOYO|B zxU`C~@;eTdHP}ueeJURSYG|6otSw8gEL6$1$zSEF$6%MR*>q z59fedj+)!J;}^3_A7v&eY< z)=I}6rFGm)S(mJSPrlW$rRdSm^;I8u11%m*V7Ack-m#d*?J2;ce-pXn=``hfjxjH| zJ?mn&`r*@cjpcw;Azr{e05PuwX`B;9upl<}g#qz65$~I({|X)Vy)a~-9}XXsQ#tpI z48-Cz3tEW2-OwnlV0=&FQl~MG8O$>f~HjflhZjb~TQU4Iv&sAf@5$pMKFas0%8{ecm@ldMG!1+WrN_OpaOVQA((i^an#63AaLzaMBm zHZrHmF~%F+K1`q@-C{C-qT_VK|rO3AB z{z@P2=kX979+dWH46>B#dq?nrMxCI)+{!@8w!49OtEO;bQ zvyVq+rq_ugBE&S;;mxjEX!$2v2H8On8Xn3ly3x z^st90vE}tqI*andwBo%P@h6ep82-2rDT|%(HM{LSN2GXxw0y~S#>>%imse{Se zo48N}d02PT%cyH=+ba(F$X1uy$^`mjl5|rup4yCmM>KD3@7ZigA(;i-Ws^XS2ZNL@uEx&hcDQX>Y-IZ4#7T?vbu?nT+{j z`VXU+SWzX7iRv4$fW~IDf86uxB-ZdNT*lsj$?kR#RFyVtRlw(W1h1A9b3qxyQ$iqA z2s##V4*>5hiXaog)Cf}X%MWZfFKN@rv8Cw6o=H>pFum@$`F!vxKl)uueq;e@7{K3%(0@h9+s%;V3i)1iU70YDIgk zuIPr95Y!~&hh$cLFI^vqC7yH+>ZNGrmaRRQ54JZPP<*QK(vrj#5S(GIPsF=rguTRP zYv5zn2|<)syosh(wh2lg?nWgZPQ{Fx5+BrFc)9Kz}w==JWEhnE@nF(XhNN- zshCgyd}t?)*u{992>XUzP`6mMC#ZorA|K)iHG)lL1FCFIX?Yg|wG|Nj6f=&+V8XG( z0)lr4>lc=F?L^l~t%`>dnNShI8~BSL`O1sZ4Mmm*B&OEZBkGeK1mP&IsExWR z@(3eVb||kO zpdcvhMkQ|06~tWJT$1UGnCXf(J#jz=ZebWvV z6;o?{Bwc{zn<)F!P;=0p0eDN0cc{hg^(4fs-9u%D(F4&RpK27RcrW`1CJOql4)GK|#wT1X*l{h@hs<#25HLD=h1} zEGQr2f>Q9=3yccN!T6w|5lk~-2)Y^Z-Om=L;Q56M7k;Uxq7RW8H(G(Psg+bIK1t67 zWiFRaJc-WYxw8OU)7_nf3$cYYxgF|M&}|B!Y@U?%$J_7RLHs&KG%_0;=+N*};|aa>sk^$H(+BIh>K{u`D`Im`eu8uRfu z`M-wL{a*GFJad)2&O$wazb1NvO93BS)yw70%Tx(U%m`(<^T*oNg#;RtrZ za%R-=D&NiHQcFCmNWLGLH`hh$$66O^`W^bvNW5)Mf(q*a#?)Li7Us3rg(J6*?TqM7x3 zQ5OB%7D2md#ExOloLf_M>1|AK0;jlex(%K;3jkk0puZ4)ONHRvg*rSSQ&EWzl48Id z6(8iTd=WwCB-#EZZ4tJNX6eQgIXkEr6EQ6)Xec;tlhJ&_OlRk;O9=?Fs1orc1PJE{ zv&)L$Ff6G=2(ppSPd}Cbrzw@EtEPs)#j#OQ%Abz(F&E0ZkB9^E}2qjh801#7&_UhBr_6C z3Qt;Sc?(9-ra7AFdWZ+hHQ?<-<+I8@jy5)#9C5gFDoXuI`uQqtq5^_MnJTO%ZV?7_ zZO|=rSH;8lhrGX9=k4J{-8k|gC$p>Y{>u>*Q)^vK*sUUh^-^#RR1PLe>2Gb^8h)LR znBRda;8N65E5uIFmrU|JJVO4j&P_7wUV8cF>nH-r5$b#P;!!TIz>NMBkRWjNd zY*8Ft3W62Wh#5u7@TOz(N2(nWD(VpX1fb7kItn_>sblLhQ#>tD*bv7%JceHfNWOEhEC)oHV?4%J>%6gR1+B3%A7N;c{ z{TE!tvEXfD?!Y9X8jDoarn3|T31O^&pr0A@b6pe!wGp^i+#-xE>J-8alo!D+f|YL| z7DlCU--IoK*3{Y*K_2QP`3H-h{>cNYL~9j4t}_32mND=4Ja9VugsKYz z3yhf;CON^Y5On;5hV2Twa;Y}xQX^PB2M;KwmeM9-;}(YG7DsGoV(TBYmqu(&Z1^=< zccH=12>lbH;5vn7w`Wm$BUK36be0uCDihcs2p>P!MLAooY9FAvm9Rw^3qxj$ttE*j z2@yeXm~bWASn!~|T?C=SuIGADnl-TrP=|{0RI95lc~+MLv_PyOx#6S;=pA^-#=UCe zvW*g6>}9j2B=_C0H089D{h4qu+Um6w6Sjn|%aHFGk2ptMw9Zjr7B-ee{?j@p=EMq# z@h}>5YKdYz$WGyK<`mw^TYj*km~%~ta~_`8ZnP%LIRBEll|A`QV7@W^{CFpsu(q}u ztXv5<6gno6$;@LOmE|3mT|_m8^%IgPr1fivOraxM)n&7X&GtLZ(w- z%RI?@8O3ZE!C(Ahyhppcp%C$&CC!yBat>_-erDrdwQ<>AmR=fLf`&>qYf5qisne8> z=xv(+2*J0@sa5PhL2w6i|JXq=Nva}S)l+r~>qgOU@stEVrZ8tq2v&>1a8KxBH9>Af zrlpT8FrN8w-Y@sK>$(DhUO7U?ur^Fb%r3)>8lVbkYmQhdcUn7o)3wic(A;A+fhZEuFP+JW&*ChiTp$4sV6&#AfFPA7 zGPVC6!K%?1?G37hBmW6OKTEvRKO^XmzsV6(2`+XK{1eNV&h?|b-uHaw_ZVUopYnxyq8@N_xHcG+k|lNqm*Z)%QXqEE%Xx3h^^(=~nR6ubj=5ES=O z6pq_tIkk1o#r1iVJi`xMD^$BzZC$p&G@jzdY{`vfycH*i4y#6x@L0cpji9qX<~HLU zKJVWmSo?Y(_(ufWV6H5gJ*Mvv;`t;5m!RbPY%Lpq@6tF6kE{dqgQ$PLsuFlcUx2wp z+Por(5H}G|Ors!69dnp7T*Sr{03t=W#^agMro{H?Y{|1qj~IR7MRCB}AlS6A;zL_u z2SITkMe$h6Ww*=N`zZ5cU*p8o#=UCevSoe%YI6XaH6>LDx+8Y~*9h)K!@CkgKJl-q zsBA`j6@p9gFRM-NFFOc+XpxC0JmGGg+7>e*Ju^&1^uzEa%MZ~_Ge#3dy#f`b-Nibl ztdT6wek!FB%#e}=`=WtzuKF2@Mc3+p7h()3QNwb@em}b+g5v7N>OB?DQ=77zzS#Lw z$`KukklUlw?o}I?EkPiH$NJJ`Z}w1qZY{3pXoFx&#MfSd;D@uW4^j~PRt|5a^2DNA z&b9j+WdsLKr32N*NBZv(JY-#OWh@3)M6in<4{H><62i$XmGRD&c$Nt>6&j3 z!Pm{KW90D0A26dCNARM2?Ku|;yOl{Xse%JuT26}k1u3smR$2;@!*#F80B5N8QB?1# z_zlgw9!Lg$9So;LwNTRh)b3Ta%a(G;%o;L+!kUsQ1h-(OCdbxHU!HWZ8@Jq{@oEbR zL0WcL$+IkYGnjnL3_BYi=|3RIRH%$|BS2X$mX}mp1lg*yN)S{do@#c3#VsZL#1VAt zl13MM4Eh6VsanFFoqy1d$(Fr5?x9%p{W`qWxO$SDsB~Bo6(^wn4Q@kI9Pnx?>ZVjo zKrn|}81B#jE1r9=iN*2aF*S7&(Pb0$XM|&IGW^cVDv`>)s&d%^yeF-E#h0GCjeVvP z$w!5tTbpebCX1#@W{zaiRiqFt!?Fl|qQk>mp`zJ|h4@^_TIssw#;p@8d4Fsm(8 z@R9xlf>fJ$VL?3PKxEqld1LcPD(I;ZEJ@5jLs!9rOn8Wo$wWtI&K&kZQsSwgdg>TO zFkWg+l8j)jV$w0(rnI4a3sgDE;hm5xFRl2yytvgZ9^522;ME9vAZjZhXr-d!>c-+R zfKv%k1Y_y8!fS{WctBcCu7Z12blHMevb@Qu&6<){jh-!AYEK`mN;J=YAC0l$gDp$s zos{Ha!v}4Ar2mGBx-T@7*4(i=Hzrd3%$AC}KE&i|R>}M}?b|C%zoPLd7_n^mX&T2R z%|Tl#x=e7@Zf01uUlV~P7rG?k2eL7m`vfLq>FYKQcr}7m5V_$%TLzAHQX_=bjnyk1 z8-w7@W=$TZ6VeU+pgTyOd%q=c3qG^DSC<>$CuJezE%oB(i3uLbL)zR8v7RSKM@L88 z+SqX}+EHKfW?h2M4xhBS`fNIkn*A!RCuj$3{f+cr)kz_ZGv>p;DZ16a!E{KquDenjtdquJy{JZ?-|` z!26NX3b4=yB3Y#R@9-&0`>PI7_j!r3F**X@1r4+*;9K!aMPS`WQ9Py&8|dC2DD4a^ z?&I4~$0NWryIjKh+|ce)6sT;ybv51(KQ@mS(@4!*0GLMMym2F)r(^y6{Mz)K_mWM0 z;T*KCc=5n?Sl>}})!FV3G;2G2PCD`M9^Z&Jb6y3UFl^34Bey6}CVLl~9SC`en+yZx zJl1r7?XW7njBI?J>nmqNP&PNh>zuuh?e5W|1Qz$`D}Go*kIukEH?6A+^lWaTA++^R zIIrW@Up@TXl^1b!x{VvFI8X#TZ=4Ouew`|C~f z6yx-=7EA2Zy7up|`mXBAPF)I90W@>wxc&3oa0RnH)51gNqh7Cg$~2?P4uW9P(U022 z+xa=Lgu9b!i#ta<16YnjLy05R=mU1cyH9L{m2wW~-!OcT^A(m>e;`+uF!S8KJ(r!1 z{ik*nNmIv{uKxaKQp0^C^>Hos!FEF4DxIluUD~TbwYIgj^>aKKf-UFJbu0B!HnPYE z#np|)W9A6S%VEjHG+$K`z3sSHt5b=^j zMHZ3S*;w~0@WI2<4rN#Hj8&W1Nte^RjZZu!MfruhJ&him?qRAFQ0iT-J1Ph04VHrL zX+*$@oZ4WI4~iW#3bWXU0$7?zhdeZ((S-hFOlyu|LNz-Mc&qOO(W4$s*q*@*DzmX* zl&xJ%V-WlUf=;iWMoSO7mhE9^HDmq9 z2o6D9>H=;#TwF@oo z1OJGiYbu_u0gm6%@HX0;duY7DH*~Ns$I^E89Pmo%iI1tj!3TD6&-4;A<^(@VFv!|O zR8&pXK8mV66=}?dESwS@-t}efRi&cESfb?IPEdF7RUG~*1WQOU5k>6_B~Xu+UW#{V z9U8maAeb!O)VCsn%1>Mt-AWY9WFr#oOA`8%%tXo5$WGxR#IiB)5(Hs@Mb>?ZkbFY< zeN>_0__En+?qF0a_-6#6M-f_5$`I#)+Beb6g2i%=9TObz)^0jWx}XVS&Dy0|RVDvm zjLJVqBV5IO6vbnjHfg9Vcj29vx>uEonuPbxRRQRBXg$0NLFPA1-1mkmSQdvV2s#Gf zi)v~FlHZkIIjw$EDAdnSrQ`)HkR;O^$ll6_@r3k{0Xy(#GrBW1DFs`=v zZlN*r!bJQ2!3w_Y#ygS>`Iq}CPxtOo!9N%(IN+`P`mfE*2UWXmD0fP370b z2NdLQ;MBqOui~s0LjG)qh%b?2eK#i<@~I(+|=dU%@C=HutY~W zlXVRzIUX|u(#u~Qep`7sEA$6Rs_XuHc#$#d?)Nop-)xgh>$Nl_&yaR%u*$?k)uviP z%=Z-KC(S<0p>*?38R2v1EmhRyx0z&&o=Y#Atji1&RkqC0s`EA_Z?BM@+;IKV;i3i^P9IZ7UMX%B$s0f6yY^wc5AD{mX;mR*~o{xjNm-fx0LRP zFGb9uVo%Fh#Da7V1^+1rv3#aH7WJv*#*&FPZ&v5hcFji2PbJkk;P|f)T#LGHTwJ^H z`8H~=RUs&E@pg!fneT)^b%vn4$RUXLTY+zAVimt5384U_j7k->sYp`CfRmYmCFjp( zh}6xIFt7(L!DA=tI2CSSF|c(|z?LX3$9!Kaf{jWj8I|wo7E28pHL@|V6M*M;2K-$9 zsm@9xGbL&Mo=l$BbU2JOh*EsB>MIQk@fMM|-R9_sK>RNdoQEbJtqzmJOOrNKwkHB9 z^dw1HZ84W4h|#VJf;JIAuN(0U5lX5qwNR@}3B{PY1D#PuYWV_B1zBY2!`f(>*f zUsLUWMsSQpc58@Gy#&EjCE;cqzTgN-P6Rs$?v(Q{)?o}anmy;1+$pGQq#(Eg1q8WQ z+g@s~eFP_Bv74-+2}Z>WQm7=~5PA+i*MLX9l*6hd&8iV}?$N`M$H=gi3p5GXb)(cU zHG*_;s8KS4lQF-Zct;z;imMqVeFQx8IK=w!0TgpEH6gh5r3ltENihbXO~;x4h+uDn zWN{bv1rrfeUtYs^ucJ&8e`E;$A#EmZ2f=lhM$4gSMc`hlki2_D4U-UTZNS|kg4C;R zliK?V1U*WS@6TJ^$fAw7l%=f+sa!Q+mbqPd%?861ug6!J<{vy39-0UFkG2_{hJXO- zoAPQ7YzeAf4da6jzyv$yRft*$nsn{McC)kH7jAY6Vhe*zhQA>srsg1f_iVaWQ*t(M@jfc-C!npj z;3u4ijX^O0&+ab}hG4AJSa{1_s9W=8&3X-LVY!Rra9O!wwSffYd9HY z1jNY-y%9nyaT-pbOOnUn2L`3<$Q|b7pG$}Q4K*R(ZdLV#suhSbf$asSdb8rXvVFxJ zIqRq5YinGtsheQ_4-ji-kTw$ zWy)5o+2G2x@%k&_+hn!<9kL|rxu(v<%PtR3zq&d%lU=E%QtwR=`arwa*m0#Jc&wfW z%zu!*8y3Pk*2>#6Sa_o;3#!?9+YfVf!x$0$*fs1K;ao7VmepBAinJ@>NR1^a1t2vE zoIg+)LqV3GbolU@fCHyA{ zUXQ6mY0HP+_aDpNj~&;Yb}OkFhkEqT!-5_PS5A&gMfiW1`|tQDs_%asKbsy>2oQSj zy(5Bv6p;=}5$PR70R^mJ0TC1hMFo*AAYFRz9qFBrgoFe_8X>*yCR@($wwbvzy9w~} z{rx&b-}BJ7(_Lhp_t!*sw6f& zs;x`yEmV^MsEO8KN~`gqh((l*9ehc0K{j&f)1jQ#lu*+h=Piw zZHIVZE}OWJkdTb$4XMaC7OsI+wO)J-dcj|L-6})F)@fTo)nB4#!t6rMVOjGLeCn5= z)c`F8c@!fru?XhhbB$`#oB0Cz6?txdA})FifZ9#1vN}X8m_wa{0y-UT1%lzn3_^hK zj7e(TZtQ1YxLm4gg2+i63#P~PZTbc3IG4fe{T9p+KacwkMzq)AW4EDcn1LIAiSgj$tKYS5s;;pZW_6BA(4?SSn?URZ)ANZIZ-j_5J#%~I;m zk_$d-3M=Gy2>fb>LsMm{bue+FcJ3To&|Mw8Vef>?8u2spTPxw*)Kbu-(_irDw!8&l3p!S`G^;XBRuygQ z6sRXtb(U=cAy4+fPh6_weNvC9UybN*`vulnUK3f)Q(sA2TJWT`3Vx_i(3jDEWtnrQ zgAXVZSmbCJIhN_S)jYX1qH9jO&)+M%zUUc!kV^P$aE{WkM|q2q;v*m@EN313%vXq^ zZStt*I0}|sD0IB9jST$KxbI4~CtsV~#{#ne)AzdlSUdTE(~mvhJdeprn8$vF?^H^f zb=G7WPUbJnAykT1dne;)y(UvXpHq7)p6!1yw~Bg1{Y#i!6e_3V;hJOwewv5xDPL9n z)xlUqreXeU$!VDqt)Sl` z{+JXfcCYCyrj?W>STP&-DMyf7%A(-it4WCQl%@1Lp<;$VL(Jo*<2QD6B*xm&JW!{9 zhV9iqg0e(a&5k6;;eJ1(F4{B|F)4-ow5ldSkMkH2C|4QQLBqP;^an+=d3gj`g3vJE zg)TaabRmx13;soyz^WnSM$*UwCvOCmU>|sn1ZiroQG#x3sG*UGm?m6@?g@y^j1ruj z9l2$YmVB;CP)eG0mf*@92DpET+WbPp<|Re>-e?7WQX~j75c`TF%wdZ;gj#IQ?JP_5 z`d1YQ(2;m~mclq!?~l-|{D|MH8t}n;2AjoW;K9dvsUa&nxxfc2{1$F8hs-N3e^ow- zrsHWGozB^H zdt83b&3Wolwor3bs1j6@M4d3uzttiV3sFZmBBi;4JZY+pd3B|uob5Cj|J3FAlBfP> zv?Yy^*UPZ3__KFw8YH09u~ z;D@49t9+D`1arRoMAU18l5EorwflmA@@8!G^ha z$(*`@Jc;o(%(zXa@ZXj0A4Rq>w6LlP$qqg1Ruf9!T8IQ+qg_csGwYI4rDIeE5gc`Q zPCI}8LWBcv3RQQSI4(_-U~!esKA(<&Rzv|wjkhz3)Yo&+d@m7M(vACaa{XM&o*ma* z2|!npM4d5E*G=I*-hgtN>u`+8k!J^8GOSU8di+xj9HDu>a1IX^CDy2wtguEGkFEl* z7P(-6jSZ-?T2H;14ZrcEc|bT68rkr3vU0p@Q{XK+DA>|IM@>kU6<{twGZr&G3{8Tf zf9G|M55&#QG)uBUq7v8im5|&*BNR&~V|?HSHL~z@Q*vkR$#8Uw!u>>X9B!v@-lypJ zjVOQaU2kG)DP0PI`W#$fp!%kAA1{{DT#F{+kOb^1A0;Kj8YQU5KNZV{<@we_ODXQx zTIVc5xdN{X33AxjfI6!ZTqoknHsc=B^?ktgW6pO~DI@DBm!RiOk&yh*-zdT2m;)~* z!74eZH`Bit$)E6ph<0@)!7a41)fqhFr7d_4runa?t7$k(5~Yr-NSsR~=q9r?^XYt@ zY4%F-sM(Ish4P}bhV32i^JnsTY8AEE!@Sa$Hs^r9bX2McJO1N#mF`AUe>6Gxf6Pb<26Q)%PkK7EFkgR|7Yz)4s*28R#q-df^l0zQ>>Y{ z7gnHz5h=C)PRNU1RGftgkrpG$romQ`WhNx}qgtmJO6KO3rBrOYbd&G>PJWdZU_AMz zQ8KQ0wS*)=DM^$(hklWmQxs$gzKtnVf=d)FtTS2QW{9-54)3CvR^G#$3Zj$9eHi*= zSPxx9ahYGWQBYf&O-nyzvhuCgWxlv1cjo9VXL&lnz^;I9#{=|$ty%bZsr5gUxtLcEA34*>NgPR( zjN;`>%(xk^q0Zm*DC3+0*!jo2G0ce`f5E?Ik++WQCF)eylgqUOaxavuMOM^!mXfrH zsDg>))b3TthbIqXKELJLZE>lMjqnGu%0JDf)pMC3x~*0wrUzqgk>hLs)p|p{;t>3x z`$cH7ujZm*K=TnQoas2_dspk=Rj3)v0SCWH@Qbd$yXp0Rv@Ya3QX#W0*zHY23%}h*1AEEYAlvDx^j1C^;F{FpC=SPmuF`w`gOq zvSAk0SKxKA4l>x-h&t=XV3Q0%Cc^a2j~&)ld=AydATtf|raL#0@TX#$HNjgu2euo4 zxVVHii@v8&ys7J8MLV{ghM6qr`)#xaDcXSuq_`ohRWSzrlwvt#0Xz!2G58n$?r{Ux z2a?mI+q%*c?>SS7OY5MUK1tMwfj0aon3y{#K&85XeE?j^SpySXt8olAE);dHemL-J4Ij1syvpM+J0d0LdwA?2J0Q zD-4TJ=4k1kb&)bhp>eOSG?R(Ca3(R@z`$SN_M0c+J34&o3j@SxvlKIYkqjPXjB##I zEL}-|juY}B?_}eBbntnW0bR^fF;C#35Q8d(Fc|3()Kt$?_H{VUR-L_2Ke$Fw*sFi9 z^+}>K21@Pi*DkDa>i-USP2oO%i>0|vX{;G~(ouyZ!y55VInOr~xO=w_JTfeHQ(!eW zk>U>(GzckdTnOr1^l-J69HU%!yn{gDP4)}CJ%xk|)YO_=mL((yEMmyM1WK1Vyo)c= zWgs2(^aI|ybZ!w8;C2_P`3OT&jMs}c1^`22cYC-vik-4P2#DZQqR}zn8tT?p<~fVM zup-IdK%#^xUFvU%;r5uCB&w_?{kTh!ELbVl27-V>Zl&?Ai(v94&w*AFZ95MKw!V7j}(9=wEKxkdAs zr0!@|U+seou$ix{o8MqKU;O#cy5m!Ci$ov{+iN=rFY= zq$E)T2HHR*2{=ixRxTcG%DInwG4(%1WNb{8%~M@6tP8)Wgn#Pue2?NOvQqcAI$G)_ zXsp2NLV_GNHlWU`1l@PzKIKIjfVMH@sSM879D!VdZkN@B#Ec{Uv^=y*a-9YG~n;_dl~H?d=4536@He5|S-Mo9OsYY`zMN zdVF{#+Y<2`GZETsj!^*7ys+>5!KDOY;MuI)+n;HAYNrdOp@l8#7Zu|u`s*WW>i&)j zBq`aYLDMfKn-U7Gu3M1pgE+>S1w*7g-_)Vui` zDnY5_r5Sx~8&NM0rl#-Vk%Ce=UKd6EsI11GiO-AMLBTeCF0evUREKXfW$st;1Rmii zL&mI*%bJ-&EC<2#_U>p)>Y0gNDt)8J5xgC!j=}5dIwk@eKSOInEuVTQ<|q$emoiLQ zL#37@f~n@yXoK_5ObRgPabG@)>sm=gf`8%@CDN2emDJHoFesHQ?wSM-sfDfe zDZ@nLd%z3cMn;m8D67-I#J=;f?9{lu$Wu+@N9CfqicW%MWALi40f#mu1=q-p_;RCE z&qamG)neO!p(89F&CGGvPMjzQBcbk>H)!IskRW?Z#eSmHbOlII%Riff*?mpLlkpFq zz#aI|%TSKjMNz+?SUgEq?UeabKc=|xn`I*bu+Zr{8uwChtPcD93fkEypMGf@Qe z3JDguim_##ytn$K;3c+70NZTj>_Hb)?`mc8wja?}f&Sq3s|EznN0*mg7s%Uv@xESy zl%V6O+w&wyl)H%(#E&D7Du||c>dW!EDC)OdXvOdW<`jKt2}&8WtHe0}WsZ>TrB5l`Vmodk&`&|6}qn2KkuRs)+jOBv=$F^fxYXjgmPk%BK@ z(_k@Gf^|ex#_t&K&!f7yZ{M^NbDBE&{tQXMCn(?4hm>)Bg;}lL`6cHCM z>tYtYuDtlL4L8v9HOrPTO8*?Jo4^YZQ3p1WTPSHz{r3^ET!NzD! z4v27#!_tcPg%;lM8^(}{qG}!|{4RN(*KK@b0Xq6RBPfQX;NuUO1e-!zhZgM{h9BKh z_@Ra|b8&!F4Wq&n^~zj=TKvCfG(fTEfzEB(<#4)~%D$5oV`WoCNTl z*L4;P|Ez7>)3CE`+p3?yj9tzhHY5dyRjNp=F2@6}<@bM5BMEBTw{8SM^>re@R#)h> z%>KQqx*n?V<0^0wbx-D#W0mEE(gIppmP8Z)%(a>Z{;(^~=M*o;d;cDDY}N#G3PMH( zlwnI)HBf{3Kkv5wWhH3Hn00E^sf(4jo!w|E!_y4trg`>;!zS1Y10{dNe79M0D)?~N zZQhyxs-djAnlk)NTCH*L6RhI|jz5nYl@mH@)TbW%M~#x=-qU8m%%Y8lfR0@AjXz=C zk1jfFNDBVVcKq`-gZ{|*yzT_6)~6GRo3SCExf15X>LthhhASm>y>>U)F~e|9g$&~; z#=2eyEqvbiN(2T`fG(EnO3d~#l;brP_4`RzPvvE2(GFyxqilQXEGqFSN6LEqFkxwW z1jlPRzUAzW3SfG|)MF(W^O*-|v#9AY{cfKYO`t9a!t(eK6GmW`O5f>cUr)S1 zS&tC>{*V&E1ftpz-tux4QCG7w##0P! z2*0gPIbP=kcnd|uo>q?6xv1X)og)15V^GeR)$=J+ zO{T3vRjhb>Jm{#;7EadN%wl|%*1uFVnRR&2T^oa|*o+d8OX+b8DZ|h-jfnDLqysY| zALsL`JTQ?GpKM_9jFI?|#^w_9(VjqKD&ildB4)g*SQCEtF+9M<7&IgWi>P26P~xwI zq|IgduPL-yERU6RCyyiZeO7~_dgMWM@xFwSp4u2xl7Md?`>}7TwcYb1IFIpiZozdt z21-pF7Ug)Ii~7x^l=%Nef@CH$*D~s&i!h2wur6X*qXa##;$2^%TZ=YSm0)#F6t)2! zHqz7s7SU9mFyJnU>hi5u~#NtOZA1WLW04```oXZ7k-~fE6@g6xGQrH`*|=0FZ+$slV^KfE!~JL+y$Cwo zGSEqa%*}kgPzlmF;93R=c1HB2670v9XzGC12W-(=frEypF27P(LvLc?1oV2T%i(7A!M z5DWF!^s(Ff{33g99&q|QX9+T)8(SM)Cww#MtLk|dx0}d95aFdS$Lmzo4-W_DD;&7Q z9vtK(LDfe}WK^9;pmO6Q1qUmcLbc8Kn?Zs-5WU&6Js{X>DaN%y8PlVf1l?lE*jt9H zpeYiYU9sq^GEOHxiyk0jZydRvZx+5uW;ZoK^9p&!9ntP3N$__%_n9&eQ(a;*?Wr0~fsM@w^85^Rg{f$8){gakX|RG30VUy1hYyoe*^5Bd`4>G}|}Q^^E; z&?cA&?r>Y%Xb2e}x6Lz&awU|Grc!#xIS0TOHBQxOkQvJ3Eu&b*iCGKQ34Z?NXe z(Hj(nuN*+kzy=`Mf`Ph-Ge*&~?Q9FL>3iundmISV;_w!a zgZh}j#?8!`Pl4H*ulu;oxKCS^2IEy+r zBUxK!?`}JzedCY3TVc}ChomD%YkzVsw}R!|^hO2n^WUoT&CMdgPd2|kz0m7~HD8-p zK7Dhu{moY=mrvgEikzWvS9K~?tzElz`KNn&Oi&ykmbV5T&a04ld`!Dk{rTPwNK@EJ z!fwlha9*A}D{WNk6;Q$s^LLUF3v(JS4fiV*wYc840=n3czOfBMUzpZw*Dvs6E9c!A zTi`EkhW?70g7zNUMovD~DX(=6wNLh~)U!6b!;aiWCC*N1(m!{|blBK*MRYLSnB71( z4M;^aja6|$$Dyp}4|aQ?V%byGoJ=im)=-<5sa!I7w3aoY#^8{bHC+&7UlWYnGX4G| z94CU4JGin=xbgF=p&TTce0~qjNxwC(g5*Z&vNh5icWNXLb1)6upTMK)8yFLT%c@BN z`qF94x`yB(7PW@&ftNF>CEjKR096T#zOsH zeW{=HUr#P;Y1DY?aK!`ezv^Amy|U#xOzrc8JfB_N0TawTsGi-tTj?fE#&)FIN2{nfCF9QN=#vuFX2bVWtHt z9IcxdUZ!*BuU#^}`5tRyyI-_(=T8hUFgcmMfH5fX2kSYMc~f)rz2b!H?sZf!FDY-< zSeuuj;k=8V{Lf>MJMvy;3^vWfO=KZ2{gcDdS&YG*X#K7{c=vgLQGOH}GEXlez$arO zaD7%?EZAubf~fik>KKGpC(@toW)qRy1+og7E-))YKL*thCPSU#6L_W+z-Wh~ku!!p z4!*~$M0x3Lu{F|icM^&H9u3Bsq$tfyFfgz%C|d9%jayet6ni~r{m zJctLC&PI7L3HC?iZqwjsTnI%hqCkc$K_wBm1=3;kLK2h#D~qk+NPJqnU*ka_IAbhB@%&s zA?JmzqR({>o$J1IK1@k1`1t%8@E-Mn&odo3MNQis>;bJ`9ksIUTSVV%D)6h0)n=qT?jVf7f;ns@GkKLb{{pHnhUUFID- zoU+aSFI$=8hea&E;{dR1P`3`Cq!#Zo2X*iRdy@0dD1S6F*X5iSYXPjYYO5?TsvqyR zEwgW1Vcpt#*_#~Orn{Z`#%c=>!I5$6T)iD)wGD$(hFB20D#7*8mld*g*B?Mu_LPD+ zl$G!TbGad4ngD-gDSC{at$9*LwM)(NRK4G&1XF3P!~f4(Shw!E>bPRL9_741nZxt% zL+vNvUd`|u!5>Y7W+6cbvXOSPkc%xA4q_{@1{W3HuTNl9O_&F3Xrgs6#20d8N%7F~ z^TA1iLX&a3{3U#!kQaBzpp;Vn;DR`mMN9gNbfr^GC8*QL)(i=sK|PqKYHZpp+MGpT zhWtXNlE^IR`Lc33MKQUjM~0cWJCqmz$)_f2AXBIY0)rNM^b3@skRDM#CHCYp55nMc z`P3SJG=(T2RE`j9OWKHnd-Zm2F>(6OBom~Yc0w1F(dT!2eA~5s&MazN1j-S<J{k@ROWrwecI}TrHjTJe z8-sZ?QX{xty|Dw1+15^3Xg`n=7+n8V{}+{DJXxDP%XjHA>}?BAqxC4?p~I-IN~&6n zl^6--d-mKql=a@mW7Psn68kUmsZVn`d)ObR?;Yp)Yp9wdrAq|v3>RMfwNi4O0p?de zTE6uZ!CogPE=%q6UV~b~0ye}$+jRX&{z~6{6C`o}a7&Y^fLT;?<4G31;1AYwC>wQA zraxWFM@7Za<;`+;gIt@}i^8U|E?WOAMT7mMeEXNtMZG_;-~vS#^&FN?gT*CXl!L%h zn~wLXE?Nvxjha3{&rYcuQMKshMBvU0-+2LDRG;hI&S9z990 z81}eD3UNg~w$$sQDOgtMqDB!({J{lrC~I*;(A+arVDQd)v-;Y+r9hvx3L$--29AWB zP6Ibye{lc&^3j9F$sNlc zL7oU4umqO8c$d^%XP;H3pCZm|@>^N>@mihY6PsY^n%YKJrqcZ!F?o7=8np;%7FF9t zs7j`{p_+vwb0}BcwAZ;GcMtXeg_n%x%?ioA#uPwSoA+?1RZaOERS7K53~^hh1~npD z;y+@bFMQrpGNf1@oL5XsLO2K>wXW*EJ}|YaZ~3`6T0}B5hes@mOQ9?bUx1?(4KQ^rCvN`KDVaqF_nde=ciajt}`2C-`1jq=|Ac9 z213a~tfyyYFC~X}RQmg)M_oC(G2E&9G`0sg^GOA=Sr&kee6s)ax|NzPTA0dE0Ee>H z_CUH&&YkmS4Yhfjku}=zYZKseUv2}>vedjlTBda$ls%4T0|tpHplo}QyZnz5i3z=n zWD;|1VEc@3oG$7CUKMH*DYYT(Rk8-TDCHbTziU&C{HHL3n(N%+WB7XKv^ZASi=g8C)X4HEQmHtY-FP?p*#SS74pC${EF zKfv$TAaV|T&a)T>D230}R;&ZudG7tW;8|8t-e-x@hrDoS5IExyi1^-x9&sG0*qqRw zE0lrrDMH}80KR)>ye8$3CZj+>xu-EK+Quj27{R|N2Z5_F2S~9)>!uwIiYx@|7@_d--isk$L))vL` z83WtIq_Hc-p8{;l{2$Z6lLdD?SJSf1pSFip2KUqM(wXa?e|Ps_9pzbG0~hYg`@KK@ z6qYLUg2%Y;;jbJQAn?q*w^oy9S!&e~c%N&9nUi7FHzmQXs6uH=V$@;te zQ+B@i^QY%6zUUtOr*?loJamO&TYrNEWXyfo-Ts^5qHm6I0wsbthmsENl{u81bkW=K zsFr_r%A3{K<{g@aYFyhVXr@`Xsfd|6PaX4%#<2`tGd^YibBMMm@hl5nlrkzu+Yonp z5M7l1;9)-Ei6V+Fsw=A7ClfLCu?_P^sOZuNa&&4Q;(c<$O1Yu{pYV%niNK#|Dc@63 zDud7s^~@@y}&v|9QQ_%4bj8??D6!Ws_@c$Yy-GUfF$GIt+zBb9c zbfm|>)F~&TW|or~^KlmEx?X{p5!;ys)7wQNhS+r+F)hYS<9v(8(~O9ts9VyF{NgNc zB0F?LduRBJvi)h+v_vlMvTAc7%;X%|Pu|^*jgC`wOO~ySICHcB*PBm?2U4NTG34PLSGtp*@RV-eBl~6c#B-om$UE1Rm+j zA(dnmfOu2y7^jxr$Q}Z(ZT0+!Zae0mYEj`oo0X~I@DSpZvLr_qO};>Sr;#(ZhT36C z$LQ53K6wY7fC+8g`B8d0!zC|pu>+NveiDiqRk}(x^nMu|uF#QiF!s6s=uU-bh{Q)eONVoHWnMt++kK5%QcQYoi9wm*ttsYb#ba_^X05nZvMhOp)auF zuhJ~u+eokbuxFnaAP01|6d*Oh1<<>ZGQ@TQPhZy61zKJQ{k@`-v1^w=iP5!10v*5+ zBV4{;-a}z*;MKRr$0BJusO?Rx@E%|>H}G!oXb$*JjN}(Zah?sG|JJ#bUY? ze>II@@c}cgWv9CM1l|44OIPJs-0C(1ZZ{W!t=!$N$>_b+F=ggSb2`SRHtxIgOxa1usJ4084jRRVXgc)00dO z(O1?NByaN_8yBl5Qf)tAxej>htrc+FZu}i9s{GSC>8%W+f_-aZj)Xr)_|`0rxN@wD z2havUbRQt7@G5NG)tl8~?~r75ADjc1wW9DlE+764Eo}d0X(c{S5cjCYDQiL2*FW2e{wLgL)d=s z5_pK#D$)PWhVXp${@gs^$|1<;y_msJZAv*o(<^{38f`MV$m^s<<1N*BXJ+(X4cF6- zSPSvJy-II(UUmWwp};hn+lhRfsk?Za8f;adBh8*G;Ur zk*rGgUf;w`gnS)g!wDJZ8voP#$_D2{Z zawa@1gZJegw}Qpb zykAM9=5xD_UU>x-nJu-N-l7xh_a0W49s8CXY46?>lbkxUHnrXfwl@?3&)3lE{Woy_ zUasDF;ZCitK40uWIkWe2w@Z1L(5*5gna6;uFV_ewPW;gzc|8j+h8-~OXnCp`_0(l> zH5xZt`X!^3@DA0ybuia*>J4e2oPRIy`1kJ3)K)}CYOhSZWcEmyY@FUmnj)KR$qdKC z{2o--LK*zVXs?hF7JI2PTiQtHt~AVMwcN>5<^51aA5vLL&Ceh ziFtQ2HLpWY&9Xd2Eg25`>D(eVX>oi`)zB>An3 zJeTOEH3xsEs?iK*HPfT=W^f}7g~l%V+kqoH^Ty}*uO9Y{X{ru*1KO%X;oco3-@+>u z{GDXUJr)RWE`8~(DMzBTk3D9ejVPn+M8Y)casS5vdik3a-;|4UJ=L*@(XV1{yJf@t z@5;-r3E(3*uM@!__J4G4@}|MfGDmshmE zSuSPK%bX+o8@=UK=aWsdQ}~I^aeP~YjHFLJAWfEu!fmm5hdvK6*qJi7 z?agnzzhz8%f_s3}GY=eKRJDP8!<-47MwG@1dg?wN&bfo+EE9gs_f)LWrplQdFIWBL zRz;vwlr+ijLMnJ+_EVxohGJWV=#=^j$QGKCCz)ceJ{C_i)PIA@)ZHsx&x@mNK%C`EdY~HhF4t|fda{H^*xxMNf zg9U$Gu4z40iOg^xL@jsMp^!fT+uh37dJWp@U-NZtZ;HkJ@63{{SuH`LyY_4m@Orb-pf{oKjTMjdV-s-rCwjDaUq@|5Mv^**DRP&+$y8!sxEe3k>v$Sr2$8b&ME}pspCb-b(3p^-GrrY6iMVFcv6hnPQ z&y%lJt~b;C%m8H*E13w3FJrLk3>no=ba78!t_fR1axJBUAsU%&R4r&A?CrU^Y})oAqcxp!tND&b3+ z7pS@={J1TdQ`U5^YNSQF;tv%K*PvuTF-l1j=HZfpp2Oc1&5(PLv%A7BQ!EU#_knlO zdrbfEPgx62ijS;VJX|%^fxjOxIq@#?Y#wJXuUC)@{=pB9;e4FbskLqIj#5ZY9~bdS zXg!djDpn42y234({?u>!R@w38RnVk(!xYj@CnXfJ#W!w7nV#_n=-9%9dtikR>uA|% z*=;!xe>;nvXGdaxe>w)QHNwEZF_;k4VhaRQS52R0kpu4~k6gTVb^CY{yXwn2Y?^u4 z966##FrroI99p=t9wcQ@?0JaMzoxqB2tH$L^YvH57lLp{NHLhm=_Kn0``AYgjjK_; zfbZa;Po|zj!@t@Og{_Sh#I}O`m^pn0Bf4(UP_^{x71ETGcbv0D5-)%6(7p4AV9N-l zFx^&=u6zvDEI=ow1^ohbP)6M4EB<+GN9(g2L@9ON52R4n4Zv7oq zS>8i@4*Izmp3%qy(P{mR@8GPK6zyo z-M>Xo-c18;r`UE@FYlGtEL2L$o%Sy;I4HE!3r3Z{H$;0A{s^Q@`N-`UVBnjK)O05; z(^~xzeU>;;rrYPf6AByI2i@oe{#RYP}1wNZ%kDXgIX zm;urLaCOnDk(ZQ;Zs&xVVd2Pel=!N3-|T#D_Jw}=_(4cdt@{^r2pS4D(6}{U;;6Nd z2s9#Uwml}t&pQbc&4e74OEE^zuZj-s5&DNGg0U3~_eAxFg&){6x*uG=I<{d9*ki^f zk`PH9iWHZPixox;trp9;1p4| z9pQ&kf8nhlp=zH&IVi!JQlKY(5q+k7aC=}icGJnTY03a2IpC0H+}8w#sVe2OEfBIi zY-KC)?6u$u{!?k4)|x9;um&*Lh;Pa7*{ZNm{YNq}j}MK--(eF9QtI@T;@(^;Ap9Nj zn-UI>zo42%+eBzJDC)e09W+BvKh{Z(uuqR6r;MR^Y+wdo(CN_m@S4Sl4nnUdu zk0K-;pHg~6&1IuU1PHI~ZvDK7v~P$;!xn5V3*@LRX%Qi}dx>StQJg|mW# z+X|veV#`%w!1w5)ZsnT3lD%(pdb+D*won5XcRI%J9fH292#;^9k!BEEK+g5sF)Gv2NIC!*`H<#h!Ek~ z@Y58*4!9(beIUD0O{4#I2So*AAFk+%{#&AK1~Bg)=c=PH9)(^!62)YdbnKVy5e z?#Ir49awUh;IL)y4r`?n+s_baIc@-3Qc|A9vi~Tcb5)G9B8xBgkYhkWFS>TmZ7duK z8Am>zjHpJBHXX+y!Fn~pwywh-Z;U<<|2^0!*aMnhFlzhPXZKaVP(tF)AmbFO+J#b= zM@tLXu6AI*3kWO>Zrl=iYG*Z^&);efM#5MTUO7WSNuI|f9t#K3Q|)Bx-j*zgTC@T> zyDiuSii^51&wL))*F0fMdapt0Azk%4mQa#vu2(MD>gL6ZHxV|zqMd{OVEf3Vx=3f5 z>3Ku-2k2e1FHyqn;(5P4=4!ia8@&Uy@B}+g!N{h}(ERZwiTUn?@i9H+LxU9~7 zoE;IRY%{O7;t!**6K5-B9VaJ#uc0Fov{qWjLXk-UhSV6sj`SGe8B@CbrjxSA=lLip z>L1>pC4$nKJv2nZ7_M#hW_SloISWt6`N8FCvmsjb%hzh}+J;!g3bYp4NpS00r`|{? z#@d^Dym~^PCWDJjpcp$?=j7Ra04YrVwiwVasv9V^49i=p@FAbb`e8cS4$zh;q#|T# zk%AHT^J)BG>GOpd&-!)v(S#XY{a6>ddN|!dUyD#p!U~~;|H@4V{NlK5x#r^cDaa@Z zJ}$<;Va%ipu#A^k`LE~@h|iTHSZy4YzI3gX!r_&_e~;F$af^5pQ@65)U@{5SPuW(9YQzqWRL6Qh z!qQD;!bT+LOVUJ<8I|;RhjeV)J1H!98BIQ{_$2ih!BEZP!E-(k3Tun=l9>Y*vy#M! zb&9*@OC~fLHN^0!m;R=S^7r%1q-Kle9~(7l!;628EW9NiC&u@aExPdB?3r0*c|Frq ziS{8qO1Lsu6+@AQ|9K+v^x{9Q>X5j3;5;sCs+NFP6Vdo*>!YVzdTsu@H#F9brlq+n1eEoo&ga!A^5?<{U{xV zIh|2gsCuO5(qqvtvd1u2Yj=n7Uc(F|YwaKYW_}w(?R)7Ny#-`_xB)~FGH#Zg)D+Ky zu3-!|tz$`!>EymGKz^|!-YrGpZb74&qCqx~kHqkQ*snSNHdE6Tq4Qn`+pBQmQ~_Ym zWeBD1mtHi+yRssG*u3*}Lg!IOtwElcVK1+o6nkFAKF)ZLSxHMoUw56A&*!Zhl+Uwn zQ8ks@RI31w|Hdm%9Dba{%T1LZ!6eP5*}o37c>PFj$}LOt{N7cc>{?mJu2 zc2b;l%8pl*EoBZSF=fTAfwAfUs(6BL>J{)v`%_b5SWXn2nCZ-4JsEAL%$DcOEX^cf z%=``wsqx5EixU6lGLtEYz+0^fB&{5nb} z8@ja*lWUqTki88Gx%6&qDIUyqHmA`i!8^3BQq7o<8>iRAMuv!G^>fF|^Z_tq>Lipz2Olz1iD`$Y(p*EJtHlDGe>PsZ6J@Q%zu&#Lt5mzL?D2|) zD-sZQp;Gch5!mwYro)7OD+@tDrJ`Wt%I9K#fi3Yxq>qG1%e+Xaa#=?h>O{()fY zlP#Il?hB+1PQdk3X@3&E?{2s_PW))uX+>Q9zBpvtZt(vh)$sTO+1@AS)Z$PZ?|-ey)~@u|5K}(uYA6ymUk?jGXq=j!})L88lI z&YQqmv)50ZoMCp$4wK(~pKW?;k_31ixXXhQ)VAPkA^WS5>n;k@Q4HecT$^#KE1NrV z+W6FEW{Nppny43-y2lLCmZCp!kELnH)BeM!sY z%8bEzd9*4RllgGv8dG|-nRZ-Gy_s+1x*pxIGi;=Q^+!Q;RQcRv8?XY4BU#eJ{~1u1 z;BS2bGdJ?g7*dkiA58RT$$IFprYhQ%T&JD}L!YQ230L8;{ANxVWF%aB$*`aI)0oqQ z(B)Ga!;-CpXSN+5JjZ5ReCYUq57)R04P^(JbKQ=4Hfe-Su>wCb1959pm%4;-nE=w9 z{Tt(^Xd%y0T4qzmrqvs=YX-@8?;{*4cuto(4-QS?1B4cLzY){HQ20x?^;!nVX71Q3 z^^&lnGQIIx+Uc4>R*0wAU8MXIin5)B7eJwI#srtH- zwj^S3A3OcEq!6%g38w?kUgN^LhMl!_(?Far2wwS#=oub@G1I{Elv^s@7Nfg(*!bbe zJI-{X=4%68MW2vYL-EBT%#B{QFi`VS3DA&{7QwHUMlje-aQPSl(}`pP$go|*TZcD8 z4X`5pb7Ca%=C3JVgG8-;0$ZH^!>(m9r<4ss>5WsJ*D|P_1_HhpZW~{6hrch%tYL`# z8Z=u3LDkp7kPFn(Mb38YZOG!@f-xmkn-aUql-$T^FI~tRBBhg%WtL<3-~ocX)XQ z+e^?l&4YE6L1=!XSL{=%m%!x{-24j zdn*rgm9(aB9iCCrQ}hE2`9s1HxNE_9V{f>nb5QZyu7v=>1nD@{IL}+9IA};I<@5Fp zm)Iy7fzAP3oLKv)2O3Qge+LvupV)%oTw5}tkxtLND_91pxMLZosouXWi;Uip+*>Z? zV2paAZ6I12cEzP=&7-UPi?S*rcPwQxTetzjjau@r9BhgU$5G*l%j~mu3s(HK@U*tnro;IL`)#q#-)5My+gZQzw0VQS7Ji zo0O7qRUR$X7`pwE0epKbLO#Ta;n&S;>U`0XmpWb13p(n^Zvj}!@w;Y=Hv-}v?kf<7 z?Q<=4yFrO151L-;cEul0POS{iia+a>G-h@0o*WW5h^g(@IBE~oQ78J>k|w}KTMpx0 zk%0~3mp8aSMMXb_R3SCin7SjBap}XsE4+VhCT8?Cf93&>X2?5%HNN1z8F)IiIX{Xn zCUszrH}^|mC^Uz~&3#@XUzH!vo2fK7$EM28tIsYZI4{o{>CI+S6>@~1^tpx=%hdi! zo%N#PKW5*lS=td_k6-8$KirLJ?syeds9;Pxe3DQ-xqe2wtQ`0=l6u+{Qx{YMaSrjo zS{xQH&3J?I!_K);``g1D%XZlM-0K7`OhmWdDvEyC3*&`UxAs?x?p^~ixIS5XhJ6)n zz1TJ0Go1?|C*Og}z7%KL`Y^!U{L)3a2Z`ub`ryyZb^67@KiYx5ZsA)Nb_B$wf4wgF zgu?at&3m+U4@l(5jb@$v%S@bL#_I$Blo_vB95Fm2i0YRxF)caUA@M1X5Zu2N2E%$n zgMfldv{YxEqG?qG;H>Im1v^UIpH`9cVlHr$xZcLzh?WT`C_Aai{z z{cXs+h(ipebrTCSAO?4t07tKcIx_%P8B5oYZ2eNCM?8}cae~!rl)$@9&$2e?jya4* z*9*-hc5SV+cy|PCgk#-w(MuRt`F8UEb^xp$59qw>^QfCg-?H^Wt$xuCzC@TW@ZqW& zEmOa5&41RNAmahQkS=s4nUVx?(`|)jr2%XnRQ8Me_puEk%!*>Au(kbVRU1%Qihkhz z^N~4U?A}>H3O734bITo zoX%qW6O-86qbz=m%AS;3 zGlz?A;x~jl%yHoPCI&<&X*4>Js5r0EKy{zo%Hx*ppkEck$NGNf0U|kd z!4&3Isa?NGQ$nQ@HTrIf)~^G75E_NmriSB!^W+TdJ~o={LG*83OEeYLf3yb2 zdt#P|dko+y=l&&zCNt5R$3J+k6cHwu`CIs{&6O%mx|VpJ^K9%sEFk~wzlK}C>ByRx zYI}j@{8;+Co0I0QkQsep6V^g@V*yG>O0n19S&b6oBpIO79Gb~I0~Z9u@M7>Pf7Ar| z_Gbr`5rmL!Ei>o$^C9I>^{}ggY{5a;%4gq&RHyM`kq&ehYZGrW_H`Q{DsESN)IgZ7 zFOS4>6D`}3ot=K4-IQ)c1JPux^EIFSVN3$&S@SZlcS`ltA#X3U|>#BG$q z9`7*1-yLfT&#Z)#mwbjK_ya=>p+v0rXICgtfLdgtmJLT#-Tj&ny27zQH}53!&Xh57 zOIG$C(}dfnuFTA3QD_1JTt23J4v6lSib&PC(nharD%a;9Z*f&<_xE?Le0TP#A%+;> z(U_|OX4_J;Ej^i&6e7y>kMUN3&(OV;b6@gf(MiO{Kf*W~xY-IEu`PVLpAjs=X~Wv1 zlkNBZC{Mf@oAVHqEHilF`3=q(;?pPy zx)caj*USDcwq{x(wL{k0P{OmSK-*&CqTb7|u32eZy#dy`rGa^%`<25A04>&Te$@tj zW|z!~hULd7RwIH4aq?Rg)l632#hai1<~9%X-_crd>b;A=5N7>@%M-iI(mdlJf5|3p z2OM;B(g@p*Jc&Td=nil||0-?<+u)VTdn8?~J~jo#ACa*YO{QK#RA9;Cg%Lyc0$Ds| zxY8-tU^~-ux7RVnx5UK_=K1-fkQR0goJ9B>AaXg+tZsH3>xsSIqe>^5`cZtlK#HYb z=Xu8BgrBb>Ux_{?0ZH^j`oP>!T={ z_HCvK85_m);TQqAOb+bI(C{@mR`l#AobR2CPzxIgNK;ZLFk3lvQ&mlYbW#|sfysQ zFdj}MYCzh94fM>TG=^Z2oa`Z;d21;N#ZieiI!HUHmMc+E=g2_ z8korSVm$F%m%L+Er9VYfBUnP-%zx;ML7sFgPTu12wCK&X9IVuM!_0LHU(uww7K1+J z%kDlXS&bISv!l8)!=SeoB<&nV<+!p=dMhclDuJ9P;^VrhY+mL`W6@D0hw@#dHNG5E z=n2VVY^Pr=B8f^b8C{SeN`jIu5*s#d%X72n-fI%xui_`?dcs-q6#wJ6!gBu2`s9_G zjM5vjQzD@V29o#%dq&g8e<$f~M<|Gx>>?*;a1)G%Hij!iQZ}#*y$aU)YYPr9uT*N( zlKIGJ77k-j5Jm~}ph*$%?sjvaKM#*4+A5l|3xBE($zYL6&NA66V)&WL5hX85_ES7= zeH;1wkuder1FOJgd(nd; zzNs_$#t!&++bhg1wWFMRZB}*aHfu?GP#<5I7tq-PV(42t0Ew&yd@u5NQ;E!k_9=7n z*9Z1ldc|2Z;IDmP7OULJ0M2DF(Y8c<9vT#Z&d5_qBFM+;!wvvC5{+zC_-H1k@#15m z2c@LKavjvVDvwGUWU`~91vqf+!}N!VVN5@0c`(uK$OUgh0WP)#lClxz@aWQsxT0Ht zIRm3j#<<_#(c8b@>UWYkh!d@J8#&T-X~5X05Xy~1TMJRu=^$H0Mb6&&IR>Jt6zIwS zdS^&j$Rb5tS4o#Zx?ovhX{t0l_uxx!hhT5*pDG`HiY{8WSt>B6*nUrV_oRN*HTbIx zqDx5m>y-4m7NwgkE+6@}pw?4xHt=7+g}Ku>L9rA&tpo%%y)bASV|3PZh5>5VP()0F z(;ueWNl(WU*iLTYlmW`~E`jqDISp$@i8V7k5^C`~Q$g*#X<+n~bb?iHBT^R};S3u- zD3lD#7Gyt|S(|d@uW1pj%Sfv)pq_f&CcwVvHPBj(xE~4m{blFT>lHTBSi2FaI3?|D zQ&!3U3+Z0y@`X=Nl`Cm4Ru``Dm`ME330-u7*0>7z?A<*|qj%To%wjz+yquutZhp!S zAE4!7bih>Q)spBx(P_F^tQWUMqoXB22L382nz*P?D`%Vw(gHJWb*pWGoaj^es(NYU3pjXy5-m&BkN_O4QGdT{`34*632s7R|dkLdpSmOfrKc8)jxi9 z`zitqA{a)PBHVgiH#V~EtUFuiiOOB-!?B0qkr5s6)C+1&hi>YO1{q4YFdpG~mUho( z=zscf_l3MK1j5p`dABhW7t^OV0)Zq$(aeLBhXpbj(*pqqMjr=>NJJ zh<0pmJh9HDJRo4?(jw^L-!k6uRS&_9xI0;4EW|{CRDx@vr!we2`dEUgU0;%-V1bM% zgiaC`xte;exkMeJi|Sz5^1LoaZ*$!Rs?avqPMF)d_dzMWdww-qyzk$j-T?gSDSa#_ zyPt%`T@}7YE*0bgxr?I?y2+)KYZEp|WORYIzv>@ow;U}3vD2}1_p4z9?P%<$aNJSg z&SlD!hReonY6nQ~XJLa&8257$bwN#*dom4`Uaa|;P^B!AUGtuOi!#F$W< zeD&`^&Gn`Pb(JqXFqC=|TbmY-uGLfCceMa58D6(Wv7I2q{t2#fb41F_C;`=G`4zu; zTcV!QGA$z8{T~{&2WdF#AA!2kM$ zQ#1JgXvk)N4Y|cw2+pNge2xOd`oBPG<_s=CtsZW9kGt;S2E2`REmCEO9aiqmC%G)6 zIyoesnWUD3A_`UOjqvUC0x-02fouw>j-@vx&#AzZ=L+cL`&$E zv>%^9jMWHRz)fVdf%h^c?6ro?n9={p2xi~kt;tgJRaB+wr-M1KE5LnC_S*@hdiT)T zyO9YA1Rt@Ft*NTCCf$u6|%EkXPP-uJxUvn6X;KqQvmc%|gQA*%_# z^4CfGBU$-T{S~eRE_aWIj=&VtU%7l0MPhu3O1nG=Q2>CvbnQAL5yTieSHkvY!b_wp zDb>TUakw^_0(t0JgwFeKg#Mx-Mdz#I;pU9fnVlqzjX=Lw>q!EU#ScCvx2`yUp5v81 z=f^UvkwEwrlrV62iKwaBz9VugU3$9Q{?#Rs`*NieoCC{mz8!PA0ZLc36c}Xk5jq~- z9vZlqa8g>*-5L5~d9G>kShR(6&-j8h4 zML5=n1qQq@bKCM}+`f%})sD2D>8vS}>DfhG4HcgvFy=`y-a89S}2eQV8FGZySrSv34`Eg7WpR~(`c-YwQqyxlO2A2juZ z!*_{*J|E|*+;|(C=YnX!mAV z&bogyu;h59`L1;J>%f(ai1=o>fvyLnhgkyzAlhu12`IQIPdUgpA!HL&oPIs7c{)sC zp~m{;@&jrhynalWZj}#eqDOBhMTIkJTjxgQv~?6ZVtFx~(KAKbeVCBE4Y(XwDt9nu z;3JZ8j%PM{4h01N@%;+mWO)1pNE zdGv7?NdJm4hK4n?-gU$mZAAa~Zoq8ogm*tDfNch$+CA);Qt$X^X-T>+J-NTrF^tF? z$K8fRBig3kPi~k(a2-lAK!n}p(j>1jkj=Ik#Jfx0G)t&k_v<(}C=CG;R} z3hX{R-QMZTy3@5nqwT@WMfrWJ<-7KZf73|O5B8Qk$Q%8>y%}WEIO|>5+x4ZeYKGLz z3BLe1vfWays$H2L>IO@`-XtjTiXM>P3GPjNNe)}l6wmF39hwgDvZS~wm@@6zy9Y9D z+uhP&&!(AvN8?$ZH?ELJMn3THmkZ!_NahJ2kMZiv`;s^&rXYzC~F(Q4`ZJScJnXoy(uiPm#%YKlZ|9vF_{H3n%HLbQ^zLc}n3Q{rahY z!P`|qncH}6vmgmV6T0atB!Yk_qj(0QP&tE&00N>S3L^j_3J8!w1)*U9JcEFmCwxRB z5b%2pdfdLA;{C~9TiZ%s+sY*H`MG)V+F_q5G#?L$KFm6ep*%P9 z_Qx6$DgOwEwpD9Gn>)@VmTD50f2MG4dAp(63P{amPix>>Q{)M<_D3?Px7L|#vP#Hn zxj6Muiw2aDflYX@0&z0LBOgI{wGONf1Y-#SVZ0MX1l2S((xi?{gm*LNB`Fg40@L?l zJV)Nckz4l{!C5&I|3Xra&8I93DXVuijl3R-2d8*a{Q^7L2SW}h{&Cj;?4C0*>DiIx zQNZ=urc&|-~3E2+(Sf3uI_?tXJ1IJ?I7mij-b?OHPNU_SZY% z+U791K~@s*+YMTwMM0dg(}d$9C=@_K+jS0keiwHBU3duf7;XR8dBHUR!~(ol{0nLf zTD|^cqT+8$BtCiQxeDSd%(RBWnVQu{1e?E2T+eikbXy~QJ3sV>c~HFQ*R)V#1Zt}9 zGj+g4VyFI+>V9*FYxk!q*>1tk*OE&7rprz!vaT!u$0wba1aRAD^O|FA=t*${Pf|r* z2jil8f`1C&AnOAtKhHUDq(rO8g;9Hp#p95?C6Z-t#$uce!G&tyr(i8QY~FT z6LDCw_QlB9?U~L-r~_gKYv99YjuSdd!UMvpA`b~wh+ueJIr4Lk=Nk=tG0bTjDRl2n z$vpNqdM(m@UnCAG$2k}6o&L}r#AlAAxWLHMwo>_sv<#pAibtS9J$y*AD)7=e&$rn~ zYXboZ>oXJ>UrJ62U~Jc{;q!G3&#|4zpIO+@EA(UgtJ0?M-bM=vu-U`%Ffc3crnkqpeRbBAhGN_z~vRa3F z>lC=hkQLsz=nvv$5nglcB&T35nVvigR@wwo$ zNpu*m3$Ao7-I+=B;3<_Q$Ju%Nlu<>(=LR#71z(%IQ{2PmLjLF&e)4mH#fT0`Ifhds z5kFJ-0%b#ikB_j=EEE}CgnT90y8?4N-FU9(U$l+Newq`%MbW!x+2P^6WSB)SiwC_M zPc6dC;`31drnM9K7u&ILhXin{e$LF8{^YX}GyU}}LE(F{Bq?2`#UE#;etG@qezMHY zCt>2}B+s*Bj2La2<+YoLjxVvp@`B=4-}jH}H9o)GLnAr#0WngUB*y9UuGx}$QFDje zBg-q-riuHp#NO?Q|HUG2dihws_nnxbSKgcQ)XNd&Gn;e*=QrC$zg>&a_Tclln2M+C z!!fkERjR`^UzIsZ%`;3<%*-H7Kr4@$xF7t{&-yU4s=t-yDY;fO+YHukRjbjsSBvxw z#2FFPFU{w{<-L}CI+^-12d7#>+DfaInFe6G6X)=!*DJd&g}c?<&oX#8YWwDaD&FOm z3#vMtydE0>Q%X0ej^wGFxj1oW$Bst2?G-?#6LIOqE7gfvDVSxeg$|)S04z?Wb^L2s z;iz`UTP^e}L*=0qYM0vqh3D54WjFsioh%&~J0etMD2@`54Fz&wdz@v-@Pnfxl-++i z>t3TOgxXX&V!d!OvB6s57m1)Ol7eE`4G<>MniK!<5ExI> zR!eR=gmkhT3)x2|yYnYl%PU{_`g@UjDNl?<=cp7zx~w#_<_k4kR{!(6&nK&^-|c7$ zAs4i^7V+R*FkP4==(%3;DFGRt^2_*#h^93=_@Jfm!Vm^68j%7whXM}?Rk%Q86a_LZ zjXBtsL9DMYeE5K4?c$VY$JHv%B?rdj&gJ%XO~TOV6ot@an(1%86-=t$ z7=8y^@rZt;RJ>94pV|(BlY;D#JL$xX6fLE>5~4Coh};eJ%sbFWmzwk6sfkU8>+b$I ziwJI(h?7cz|F$O?WtiWIqC}z(e$PYxwf&|kzBKf}Vx>Ba!bcgNF;-mp$D0pB$A z6noEM0|=x$9RA5;<1^p5P+$V-;)kP_`R;9Z6>&LNm?HEO&m%WfEma8?YHiSd=Qm6x0#% zCp`7WfcKOh1ErqR5#>z=Z{UiUh!s#pz{mNgM2I5IZ2AkDXe*h8j&VK1?w4xT#=zUT-uhSr61WFR`Vb17qE+05X4O6_r1lyC+etLC^K0NVXZUYXpohws+w^gxhU>(oD^ zrA-Q7M{Om@3u&tO+Qm!yi9rwVaOqAaw-@m$XcA(K=cY)NE9d+iHX1EI<6SGZFKb32 zl&h97SoLk)C!&}pwcM?R4!?Q9&~5StPB-#T%bh8vgG+I@-1}O~Zq%8Yk}^;$F|o|% z4;x$y0G)`5kV}vJ9fLtb6%sn$teUbWk}v4UfQMFx(I+)vdSK}^7d{7CArwb@*(rRzJj zF4f;y{VAHw8qN-{0&QaiPnPBM7gf;D*~%tESUa&|CO?%*Sq!W_j!r&CLtOf+u+fgL zWI8XsLzocuxoYn;e8U{W%tf`y_yX;r+qN_v_=?02SRCAhEPI2D=`UWX@n<6;-9^Os)_P5Ig}*o39X_y)Ab-jzH#5 zoFa3+6QzsT`Q2U=%~K!tubs zqByxT$iYr#DJIY|F}xv5Cr(^>f)nJzEZ5fNu)GKxNdk%|we`iGq~_susjV}_@9evZ_3<8p0~EV!zPQ5a6YMz!nP*Yv-xVfE z>Aa)-0G9ejS3qF#0bH@=f!tGnBN}~Ln&DbMk#2pX=bXu{V#kNj3< z0c85^I2X;INPgMD@|8lafg!ck$_^4N#N7jNRI!OT8CUsI4P|MJ9 zTQY8;;g`Djx=6NZ`+<>g_NXj+%gb}*?{(-6*h0CZS?Yvi`m-zAASf`apJ6vn?9wKn ze&ULF2hHhJQ(Me_h%jo^pX_8TMY^u;oo~cG8F+yO?+oqO?xz>|hM@y(MK9Y44jQaO zi?|3$!RQn;!YS73Sq?%5O&RK z7x6HSEbBhZnGQiedk6YjGEHp`PEZ(*5OV<;2^w)hmnih9s8A<~)9xSHM442kLKFID zN6KJjJSDp@LvcK402rXjT8SOZ&Ledi1!psaDy5J$*%Fve##MJhn$eO&`TQh_%E0D_ zlX^M%?2+svN(7Me!>x`R3%Vmc$$>3MAJjO2`-d{kzRk`?qvKqUV7S*H|BI-V%OCG! zkeVSLEV2fF;W)GZBDvfq;OFc^?yJ_F|J@96o{nfvf4*e^j^?D?&C09#NphTtB=F<> zIH)uEgL63_SEpoVsP2v&0Q42|RKP?!g4Q>}pymkt#_=>+z$!7*CQ&R(FTi!`d+HO_ zYMJzH3^0rl)ywI_Zf`4kn;r$y7t0vq^fObkm-+W>o&mMbyH$b+|88c>&B5z{lcm>~ z%?{!|0r&qRr@-Bl8lj1#wSXqb%N)Q4SEB@=V-*$XjheWS1d!piOV^*#(7{r+T~anq z1_Bz59FkYoPSiT0AW+9HcK-DzK@cL-9~}#2)(0U)DMscitC%HMoR(}3&Wb>L8+svd zQScK+Fw=A)uts=;FZ$XHBOnlQquDNTE{TW(`k~@}=8Hkv6`f`nEI0rWy^UKpBh ztlT<1pW|15D}k@!>$q_pS)Lo*Eq@)7Qg>7RFJiptK#h9LO=$&yx=hZ2PC?}IA?#^x z1)Zo1Bq4bN@j9*i3wbo1o6pewR1ys>na%xk7(U!&FnDVLQy9N;*G*GgfRBjg1Ps!~ zmMZsa)=bOK)iKYnm?5nb=Myykk3=*tTukb~4Gtwr$(C&53!(wsZ2l-#OR$ z16`|Db=SUjS9L9m{7XU{sjt|1WU}p#$ulpY5Zaj7yVJ@)OWp^|3<*&*c>J(-fe*jj z!;M>_vi&A6#G1fzT9_RGx9Kh^NaqA*{3dE)S)i}tO*gDd zu^8Gqz3;A25_%FP%u&fq>;%zGUAwwIXjsBTYZDdKkL+KB#PBnizrdu{r^CmRC7UZW z;I{mJ>aYr%5A>3s|pa@fL5k*M(ML=y%W6f}Kk_Ji0AFTeex`7Wr%A3wOx} z7katpb|i@PP@4)2K4G;NxUn-d@3~7WYQS!h1six^6pqEe!MMrT(|N(JPSvM@_3VHY zy~8C>4IjgI`Ul%-<8+UJ@@M0z@OUcI+U2}Fud?1LQS@KIbW~P^@iIAU+B8esEsUyB zv2}H6j?y1FIys_p9I`n%ZspCwUCMOJ992~PFAc6R~(-8$N;#QMW2= zQG<2b5&yRhug`O+xEBJI0Cf}Kw`ULOd^L!F5u^-UgYl4CHs;HFB>t)hg$AaQ=i~Ea zX8_*n_K7XIOMKS2a}`%uI_(Id$ETi0FXwqPG%xW@JOsWYj@V9aD8c?S{i+Thw+TgD zQVYJ~O@`pUnJ@+esi4>#kAeO;;%7*KVP3bwlZiT-LjJ_<%;pmPOVp@M$amk&8|aFm zF68jUxV1dKHTTT#-9)i-M}IWen8!<>M^EvG2fc9=Z0Wc`E>fH0%`(Lr%`O7rlPFC; zd#3d#QRGhLp<<1cq!zk?%Xz7s?yYqbk92;1N=3VZ!9p~3Fe8;3ox3N4GLtAd;tI16 zFQFp2lmWQ4I^VP>-mJFdbOfcuzBiX~Pp`~b@vc;~S?d+o88viFUNwL&aOLAB!VbaS zi5A0IU-&dQ)=5Y|9rJ(LZd9U#PH#$0<((87zF55f0LirwN8n&Bj?|!X-1IoP zPRaHkn6{zQiA3tgELl6rtR0zQD1E9@j{9}QMku$;_h;L!XflwTQR zukR~2?M!o}Eh(*66~=peiaRXRGW9%u(H3%4J~~(0G7THmzmh!oX;}MO)Mx#XOK}XR z;j=9aDPq)*KnOpAwGiLLQLxL2!c^-U6Sa_V6+=thb^SIQp2>YsP#MKEwNzhKb&bxX z*j$Y=0lV;V-b~yd#U{wbaYKhFq$8jK{#r;8irS%E;#W9Bl5q;d$JK zX|RFLlJxd-I{rcVRPpA(I!0{srG^pq@4+-cS3fM*=u9sk$B&{bWcT5i?@qa1O&s5yn&X7=8q0%y zGwFQ=C)$t(D-H5~uuo6A5nBUNbY^sSWepOf5!&d%8I)Tbic7yT<pZ5-3$-7kzeQavUhg^nO!c#A^ByMCgoA6p;+I_5!}y&-9_d02ahF)P0e` z*I9IzeH=-=!K5{>H{QdSetQ~ayZT}rFTq-=hEyN6Bk9r2LG!?w2CGulftbLirav=w z_L+eSPY&aB%Itz3-kKZUly5(mLJrtfpQrvYj~1UmYQt_JGVTFWMpXpi`~ci>Ib$Zv z9t>ZHA$rDJlof58ybCejRs{d(sINpQumY}Gf={GkHAynn4;NK`s74LO@@8;gjkjZk z;3pj$pJrp%9~{oZ?)}g*m>&XP86mZ0%@KUf;(teMnSoZ{)pZVPag47s5qLG#ndw#=f_cYr z%^hoo*$Y>dYOzLqQhi}2_^5ipp#Ks(%EZsb*NSJB79dt5Kl7>zM^cxJ!5?q!sEfN~ zk6PRk`$7Zl3sR61lt2!w>4(QwYiRBNo=Cboo_kV8-pXRL73C@>?p*I2Y1Ub*4iJD% zU;d(ICEQWh*)t~)y;~iWjMg8UIEs5C<6sxfYnFDq>JqxEo_KQ6wk4iOb5}2fKTF+&^UM>{KITKeAIEImz>={s zYxd}(v}z8W%5JDFUAWXSaSr0vhFmWYn=ReL)OB~4-VdR;a3 z#W{{~>YOUcU+}!lwk>V(hw|JD#!kLM0QeZ3CmbEsEUJp+^JT!7Ix$UpU1I-l{6l zc)DWS!o+14A903n&p+^D`_yp1)N^S^F#1ossmFPDWEd!^BlJJu5Qv-(UZ}vc?9*a{ z&XZKtP5xS6)}}$cvn^#;PQccm#tvlqp&IEpgffV~gx3WscrkQ5oP>btt}t-ao`Iq& z%zy(lv5Ns-KyQ*QRCvhZ+%VF!fr_5nK9msy3Idxiw$Z2>N^Ce{6A(#x zYY)!*mp79OYi)QgCKJXtqZ$FX;H*@P0iD6JtG~-}lqqwBZ;Pg2=wzVh&M>++u$3gw zh85(1kA8w`T=2>B9G>=XV6rQ8E9FRPieNA0{fwzCA)EiK#P_qN9LJ>jMXqI}D`*@0 z9k74>b*2OeoFMT45nQ!YdJU89R5yA2J45;o7_V6`^E=8c}e4|4sn$_ z%&fkk3D~GC*Z>5YOy<*;$Hn4JiDPnaQAhykn1vzU?qDLoEDg*vF%ZnOQ|{<(>*gal z_=YQo7iA+w7I;6>7bCZFZU~Tw;lq64_K0)GaJ>3Ai~ohxG?zIgjHWvV8eIjfqG<2O zi3o1=9Dz=_m^^18FO1Mmh^h~J!Y`u)1it)6?_XJQ2tg&nU@=ICb~^(51r28+8WV-g zRY@@z8tgt67{FPMy2Lu5!xEHZ(jp1jD z1Ayto-VAD*z8tnH>~hTsB!KpovS+qp#?Gu-kE7n%JeW41(qu1<^*@FR79(DrUtpa8 zOvDuA#F~M5v+$cy&brmL8d6@sYTN^_5B2nc7aJPus{VTZoM3*XL700-m-@u&RKige z^yoQe!4vFg$bT;nn`#DdVh2hri{aO z&F*W2^JPU2@eDc@Oaf@hB>zyO%0Nc&c>Jfg>igtXLGa#xf>INKmXin7Tu>1FHZ0w+B2TXsJ7C@hFq`~E|DXa>f5%>YsQ~CMMuRs%4g--^~b3G2W;ZiHg8e^2xjl0oCG~y9XK=^u> zi38m-T2NHYpA0yq$C-`^g-@aTE>PX8oWr{L^S)V0B0MkD?7tKkfC|M7!4}#>o&;0y zfTW{N=)U5}|J%K4{=pfgyn;d0pBvF9yfDfN8}qWTGw5Po@DN9p0gIuGkU_c;p}KU6 zi3DHAUk`Jf1YiiO!!$DM-65yg6^UWyfpKG+Oqq{3K|+2er2lN0mDb7QVFHNi&~$|L zePasa=ZGz(qoHczKeJB}Q9)(8)b7=P`81<1wOC?uH3dvwlqP=`A6?Zw3;06|Xm~*C z;}qU$wB1h?ZhdGBl=J;uXA|lw`SGsVFz?0^MB)M>!UxmCN%uT&4v^b@siv4 zotUmF-$z*D;R(f)KYz-86=pH=!C_GEe;LeK9 zeHmAVs07iZ7f=eJP5+7c%fok?XGE>ll%8c#;B8#9S{kHyDo|*F>kX@<91MS`HoNEG zE$C?bT^_2of*%I!HR#k%wh>8Dg=CXVq#*j+YuKslKlS?-XO2`Vq6tB#{5y3=tcBm! zrQ-3M<6J%l%Za9;%P4y0a?`qVAV{3T+$aXfiE@MaIM=xNO~NczbPsFi%^NU;5ZPKf zf#hU7S6#y+BvBt3=;VDLej^640-c+gFLdcVveTa(4%Zx$aQ`I4ED!|J3_!080V%A3 z+tyhzd`qg`ZRp~dUowt2(q=_=I${{wXSMD*qKCh_-Wz`@r)!HR&r{iiQJM+LS5e^- z=T}H2=@#`L$-blHn&g#dR(UkD8QStNVbQ)Td-PGyI4qna>=haJP`HU>JkM45R?uNK z&VC_}vujt)oF=N}N0WnT86>96GTlhy0Exq>OsS&!lWHVLV{dq|;tZS^5m?5s?o6Mg z2N%VEVazsB#%zg9syrU_AV37nw#!G!Xe*G}V`orfHN|qo8I~a_msq z+2am3j(^|4Hk?=;3FuMevXI5<2z4%;{ zmnbpO`zhhOgY7!;@Rl~T#k;tL{~`E~9oCV09F7;a<#sfZ%nZH%LuC<>vL^DFNAW&hXIDH%}KIA@m{ zn_ndQFN*&AQG5*J#Loi891TI<2>Y=z?t!Qcn$@x7=9HM;%2mC>TAZs0TO*rTH^3=| zYu0szUWbXGH=^k7UPSH3M7l+W3{+h1Nu2~ ztiD7>01p1-XnWBrAc<~VSG!e);!hs;gt}9v?o!CRbY`K#v-aOX%dSif(|os8CyL^U zkI62FmNQT(DvZULS^VB&Lv(jn|Re`s@SKgd>-kKFHL4c;Y(#7jZ?po|*?3 zwN32ZqqIoAp8z?o!PpbPYe9kFC}9>d54C7RSo;O-*YJZdZJOv=p;P8V2VYmkjmxHe zOl(M8)GlohUeU_7Ewr78Oe6pGE@XA1aV5PnXl0BE~gNlnS>;Bu_&L(QcPyTsRZ+?8JmTTwTREm9&Ys05RXH6Tc^R zl-hR_?q;ZV4@db^xfCpA^Rwqf*7;F5-+DF_9P$Bqd|bla->O#raicjTL+-iFc1L9n zJR<+@rlXuxbY*$YWE~FM;o01nCBocQg4D|Mi`D{^LUNU>Iim|CwZg}@C6FxHKYDLd z8B6tVy78rb&B@N;su+~RjuZ)ra@2>kXRXDSUn{;}9?}^6M^#C^K-=Z>i>}(9_oA&VcqnI|!9>=nUDA#<(?L%W*TZ)A3gYqZQ9ONeV>LqDwcBb0 zVn>lj4U=R!#MssM-`3@s$qu0j6bxp@#0ws_aT%!3wiCx(#3=b$U9tx#gn=@Go6HFg zn%5lXn;kD$^hw<~iR`$X=?#218_~-4WMuDpY5FiQY%vrld+S8Xv7QX2oo^R=sJ!o~ z5VNiStD>jM^<`5vs)f}yeZ`D9;XNo%)NR)VEhapIC%lR@TaowYcIe2FWH5nR;kz*g z)PJkuSDc3Y9%6SPUA;>^uicXHttK(^A^=JGA&{(vDU*G8VrFCrig0m{TK8>f~+?0c)Za1){qU^nLs(<$Ni^?W&?s=i=k2;+TX~QWU z>qcJc)`w1*V)28KJS;z^(Yu^$dqy-5;oYBga6>qd)ayUDzvT+qF{>^oHeu*BmeB16 zmA?#w@$0Vi{_s6Pa*ION3$b!RGnWgSfxaJl#v%K67~6HX7|hyixxV9gDGMU;2INH< zU{sQvT%`A_TrjD{lt(1K`#o&R3PMzMyC7C?)*Z6x!hUcsGTHqx3R_uAhy^u~bavY? zN&ia+^aN;XsbGBD-1dRvr2c!bzZ&xNhiUuHR!$muB1@8Tb#;8hETd%&u@lq^=E}}C z4yIY6BU~hQVh3ET3)-wPa4z zyp84y$t`W~E+LG~u-Y$G|GMyNJIE{Xs|ilG)fNqr<4IZDF|Xf5ysE1C}V%& zTmQIjQhp-tiFT{qoLS2kyZIUvUU`5K(X9OD#K-!;hC2%kja*p{Htc}K0zySiIdz?F zZHQ(ueCa*uWE3Hks94~i0ZeAMWvfkRvqwzfBC}1Nlb!iGlt8McbN$O)_fW9b z%E*kM(3?{V7BO^my*&E&N~EFqmp{eyh0NSAlMXsUdW=|L2Akq9TQn%4qx^UOeYz)av zpKx;8KuPp8B(%#B82$=FTkfOfr18~w)>O*kbY$#VO=`nmlE*;#Ym`l$$@Bkb_zKQ{ zItnK{f_yULsIjaA_|0#X_frK-b`5M5zRda$SDm7}6vSM=m%a7$JLPQ_Gdpdbc5C&+ zuE@WKOAQhpzLO4U2vzS%E0*a@6xHN;ecg6w@P>Pa{|jy*{I%}+A3c@gC`he)u3;i7 zT5Zv3Ia9`1C^kcdFZ&kRpZwjaMjA89H7Q=hzGh)FuKeT0KL_}{AbrOYXe4x}%zr)q zCRDUgRD6=(X;SaXZImQY#N0B!#I2^g}ALB zRcu-IKU1n37n+NFaJ20TaG7s^^+Hf(-?B(~afFGktyV3|f7g@?K5Fq1iGn3_EM4}v z3o`hDPgV~_8KBR|tb9xbcgKck?m;N$AXJRc-v)iKsrTh2YSiYu?+@sFyYauZ5h<j<}2K@JWF-M8!x6+-Ex$6RE zXXzh?$m447XMdsi>$ADkl}x7w%vZt3ra*Wih>ZT?pZoSXS)@W=sbkT1DRFlRX%lLpi}<-a{n%kedi2kOx<|Xr^2&Gyhltr|H0%sfsw8-NDZ60BZN^)&6({utq$b$V8i2Ovb$2_0nc{wrPDKsq zH~BAD&XInK(wq*YXfAWN2E2SWbDhk5XMNWrV8cyyPB=lMgow1X0>HutM!0hRS}Q2@ zO|k+i-Lc$5kRhC>&CDb8xd$H1gEuym;Q4+NPb1dTsh^V}V`92vp!J zPn5y+x?DnF_I_Szn5R*k@gD(v&7Rtty%x|?SjPmWh&IWDq-d!9D;QN#Q8J6ap^{>cRUH;_445 zmbGp-7(M|rUpuJ;gGY=e4=YkO`%K#-9jfPLowo~bpF)l91RdrrV5_W}>(f1sQc>3) z;~vesqhM(Don5W5v~ZPsV+zBHbx==S7q1;opXL&)K~Yb?qy}~|!6NSZ4zGVWYzIl2 z_4Ncg(H~7mAB@0K4ClPKni5%W$5qC;T=Mwhq@4j!3u|$wEg&8yi0NdSC(4Rlqdd8W z1zcn*yQh_$ZB)05{T@aep^V*T#96(4hCRW}Z1^PTj2j6_kDQl1q4lPgK5TS)4ui+W z^;G_<3X39rji+(m%tIMvgy$XFF;ZzNcuXK)lkYGb;;w5IOTi?P>X(UtNtxzNfbN~L z|8(T^{M&!VY$G)aXK`oE;Hc#)$8eQ)t0Uga48aaBTGT-D7K$hM(>a^avVvDH+aCzWr$rTNk7n1dn10*({CHhd~NpZla9h$ z6c2)kvc$+^jRFZ;Lb*ylhU@)!W4}df-ssN3OQV7_L|Lzbd+SAI_{;>*R)$DB? zlbv+%*v1(`k&mr|QX(%$IUM9X<*bfoJsG)NgnJM%O6|Xn*$aU2ls$q0m30@nR z#n+Iy4Q-o4{ypjV;ehNn`pzW?i@M6zCZ5DkOagq8ZlNI*2L@XsdB;!+mqWSEiBNo8 z?dhlCsjwm-QkiO>IJ6mu)t1mIvhR{i*o>MACIsx~NumI}gkRcbU>qXvrKLQ@yKUa? z{v}yWJI4n>o7TsZxRGug)7qe`KM3Li>5KVN{KVMj;{8cC>mv!0aOwr@!zJ$wpr%PS z>@U`J$r}nFjEXs}u!AUn0$Rj(0~2Uks*tr~%oZ2;hJX7Z7smtQ?bbiJKgMeec7^oG zs3jcL`lF`jBX$3*&=0AT5GW&ZWmYw`NvF-ls+o&gz;%h)Q=J+f* z9Bk!Funtn~O29%br$Oh4u6}Bt5wQ2!U|{AE>Xn!DHWUz?6_vL4j8vTi#Wu}<&WAQUL1qlu1kg|Uy@@Je>9UJQPe1B9?OQ)H)zE~G$AiSv({i)Q?aA~ zFVf5ZX9Y%3viKH4yLHN@7!#WyX)##N`9W{+pMoUh>}^Bq_(1cJpGtKrZGwG#P%O&K z;~ZG}d+z9^>eUI7+d5zxbxQ|F#8cr?vPa<$7r6wR=E+U|RIyODW+_SqKe4L+bT3MF z<1QrIK`;$%+8<$KSa=nwLn$MZ7sCybx&r0xE7WaKqAg4LjbwsM<2oCoF&Y71d1UJV z6#V%A0<;o93z_U8&Ni2rh|g)X9ZL;L3}h;CT#R{t z)IFZ$j_=;wwF|=&k($dxJnh0>*?BT-Hr^$XA|#E7hd}?#5E{1eVxOV#H?e6$PIgpt zK0UnDUOE<*(zV7^zfCahDou)w*L@9&3U>Upn7Zft=fi*=A0a61N7LEM03?gjl5v29 zM{lq~O$Z<#L3d*fcCGoQ(F8-b9!;^H!a!7TV)d*8_CD|b#XszV?{cu&%t2D7hei6C zt2T4HnW-fWrSTQ5fFM+IGzCXcD=J>)aUkgU~23M z&Hv|O>n)i!WIy30V|SE=e{yBgZtD>|tKYXwv!57e9d)p^2=>`p0KR=88t-TI)G=6m~(Cs;SpdJTb>{Tz)XZH_-br0k*kUnsn>W%}q_wU^y>2k%V7-}7uIEe!kBH0jYOFa}xxrN-*s2-ooR3XjIO#Rl*x;8|F` za-Bc0pG=c!Oj&3groZXDv7r8&D7of*y*1K7U}Aca;anE?qz4BA>?J$n6(s}VzY(;8Uw%)kV1wseZK1nS z+_q!=63c>;xB<9?6+%RYxM2>lEVGY-zzK_9D-2=xS6G8isT2KHnn1AnFn?)va9Ei7Sb^oehlHSJ zm4%F?Ja&@8l54NZvqAf?K*dmNIMEU zu%wDk;NJy#LQshm5!nz1G!TeuvReNnDX1j-tfO@z)~Cq_Ewrj=f52DGM?O%VL%NWI zp?Vue!ZG^j@~H{1?S`=PlpsbBv0VNeC_vN79TF!V$tk`*@WVqqR>*C=HKg#2`8>K~ zf~6O*S|u2)YYq!-bVL%1-}pHbpQo|VP{#UUXgb|AG_|@Yf88I+ik%l(y}cVle(O?) zcjYwxv9WQ&U3w9V(&G>yWZWCN;M|cd0h<$4eppT@TnM;K_Vj|Vgbm10an z$Xs$6r^;laQFb{F2a+`WL#(IOxt7>OTR8f8?_$~v^c|gby44E1qc?3hLKhJaH1IT~ zklj6jX2U7b69Ddp=N-RTlFetR&u$>}jli0F@}3C`69r5;U3vee10Ae zkN!=J`Thhh8**DD#m6y@&zE1Gws=OUD+<_lvbX=ubZ&WPVhNadBI z^fBa!$1XWqyjt@v^|tLf{m{-Rg2Utk9@8@^xhoFXP#z>Q#fef0S9O>@d1|DYuM+&D zz+Ti}rAZ!P> zQ{ksIl6F*3uxXwM5fONw_+#ZOGuYXoJQyE8Ee&R)nVe49FWPAP1A}#2gQ(5zWvKAg z?c7u}_os#zJEY%Ek-46nR11x!`a$|`(smH6P`=^Xo-7r@!b_3LTfImd(P(`yts>!- zG>zn#n*)!2e{)kmq8_H2DX%Zh?(_)F_b`$5e&y(-i7~JbeZ+J3=7tkc3TBREhK@$+ z%Sq=!RrhaKA{C-?{P#`}^cPmo%EcRf^%6sjiQmHTdeXIjH%j|G!!tj8ehm~frl(%U zS2>z&fZHeq%S4@226VM7W zyGjafQ2NhU6-zP-dEJ5Dt}p8sX#mQ|XkGr|klE*rra|8RJ!aLrCqQg*YVs}>6$5f}Fn(aZ2kf0?i$)n9$TbDQ*cu30BZNKqt9y1zn6 zLFTyNHN*?e`4*cce)|SS8^D&#flX$Pr<1jM{ecDb1wxk2@;YC|hu(#DKUP}eDzb38 zXP!k1#0910ttZ%N6}41}4)UDZMI7oI=%)G)>nAPY$!CNPOy}F``wH8DQ)F^-7|H(1 zhEzA7$Hc>9pVtR>{Infn5WpDOdg7)w{>=W#CSc|?jY=)k&VF`_`n01zG_hCKEo4yG zEiRxFf@7baeOwz zm+}B7k-2H}?D1>dFahMsmla&62*p<1O~vD9rHV>`EG<|m)l>Wo!p8oBk%6$?o2ieZ zbec1q4;-)5-jk>nGQ>#jjPIhl33l6MUXCK*ICqBJZ&THin-Jue7(12e8(%u&Eh#?N z|78Y{h_XPO!{b)nY_SWR%HA>IXIGwlNdKnm+FWd2+!=L&4nWV|(O=OUGf4Ze|0uE{sGYiJarq#LbjU}Nj`?>)k`5!J(l*LmLc2>f+{1$)gGU?Jz9 z-C|(0N;{h?#l5~%yTd%h>bsVzf4@-rXxV2$`bN5kG=@Rz3C!1O8UFyWPrSV zLwgFrvkyl-G7q`4`Z(wo3Lx~qvvm!xev*_hILZ7+; zM^Xic;sB4B8q79!JW!_nK0|{Y@W7l;E-NAX+qz=x3ko~_yWZ@gF3)}YCl?v287jWM zRwx;XJ~p7ivCQwqr2t8 zB?L1qDbh+_M@2~fPE0hamqn;fO=FYgmSkZ^`w?(RO1xWQUN2k=TxRr25R6rnBU@wt0a-P{ZOiKgo06H zTbH6Tmixt&B@*E+YJDC{!Y~RP&Oq{B4iozNU{`en1Llj~Ea^7V5=}+7Yt5ie+$|iZ zCR9Xn{Axh|YgLJ3BzS44;0MLwbT~;nsrKn-8V)T$$v^`sAw~X`w=I5NvUo=-Vq_4) z`D7gvByh_k@ojtcz4o-`y9A`BhI}A{53@RuR!Ls3r^f|#bqX;6;H=j%l>UX#r-~&G z+_drdclvPQ+$0&D+l!?vdx#uprR-EI&1>mwI*p`nB>O-KP9nQeKFTusllP8cb;gLk zJ$Yjk{yc9+GAnAAU%MUa(jn+YO2 zkFV0|io=(u<5upaFHI@$pr@0rGxAl1R9+Q_2&`yGm49bVlOp&><2di}T%r+_#6Feu z`ZrE9Pq;zJbXZsyO#9!;(QksD+M2%dJAjP4#GTjyc;>!89&7be_eTO{%L(N@F}=mt z8LMPlx4G=yNqiEt!;sET9LY>zs0ktJM(6%@(#}HW3QTm`6noXfY)rRldnI2iHLWms z-ikkGYD)aCIY=9`mkG*7wGApUATq^iO`u@Pu6%Pek{KPtiSe}8FVJ`c_A0SB!gT#! z)id1BpJ2ro7VHYw?H=SR<@fhB?^;8V62;qTUre_yMBr?};e6Q{$7VV%)ZyPk)M*+I zDY)Q^*X}CHc-U*4`+Ei6KAqM7Vc`tv5Ob^TXisZUy;%dp++49Y(S*p$A`tn3R|K?+ zl@`-`Js~nN?0^71ETZdgdvp4f{zwEry3h?L6^qqkZ5H*|#;?E}Z{_afS9NOT9~Io9 zww+>!r|oRh<^+U`5d4FRuU`LnhcU>4Jm_*ebTm@>{h0H-LmnlY*h4Xdj*1)#{f@j#@F{K4f9ZtxXrc5`^NrEk66*5pV%~dyrApfvaE4KqlMyzcEh>XUN zYhGNUa;QV2-ACHk@oqGAGda+|LL3pRfLR3KthfpbptwUmcrf4ejcmO>C;Wb~VF}2W zo#3xUCW%U0+ZpQ_)G&D&QOie*0;kYK?4ov^UNh+?S5na|7H-V`v20+@Y-VH39oeq# zns9_BPX--Hr61YLX+rusg5YN5EBp0n@Lg2NZl^Hc$8IZ5s#Xn)AQhXHGMnTd*A=U| zOur4&hXR{tEcyJ!2k_T6(VYU$BL~cC%m2>*$Ik%RpuHUBVB*sbAD*{6Ub^Jfx|@13 zu9oyOCh=bW#|dY{>XUfG+~a0?HU!97`{~9a12oj;yMio$w7p%VhKkyQaPp39NKhv-ParzkAg8fnWj1Bp zw|?qX#Fz#8QKj{A!>Q3y+XmHBef2RTcDOrL9~9>W6BteYu%0O|(8>=Wj1?Tt%$tcE zmmkSgy2cnQa_ZHaJV@pH)tx6Wr(?6wqoA9(oi_F;=9$(_+BGJZpMje<_fLg^I5TSc zdn$7?lkB951(qE7>+n)bVQs~_{qkojA}s#Bvy>4t=S42nFTFnFe9(We(VEK{2W?zK!kVW#!1K zIDarL=ZECUdJ;T-@pm%@J#mDyO+fowj!F)j0Z-DY?Zkd$xT9%MDZ1ieWpF};7E#KYfzYBVnTxbHOYc>Peo7;Zfx;kKSh35M+Y|WW-?`ocJf<5 zNnIVVRrGbJzc{zNiaDTLMlqNgg>i9&v@tS2;8#@S5eHtMY>?>*D@5To%E_9ST*5FY zmyY_Cyt$b#=gwGdZz5B)8%3qm9+%f+`fahq*DA!cr3hOB}#h3<=HW;v~5p?UZu z_W6SvSjClhdj3$*Ibqc00)~7C50*hdg{OW3#SNTAy6*~B^Og$CZEKvuVEt+|=L^}P zR8g-}4oG-dXX2|;1T%Gc2$sw#Hzt&Wx*QZM+UGm=NDLI83&S_}u7mfLg_g0hzQ!!+ zx=YU2Q3X;T>Lf=98xWf?NVZY*kb!8LW~YC(CvK=7>Ul$PL>N=Kj7$r-c@5CNHV)%n zN9MMX=sWds_wv!K*%2IPDF{!FJ66~yZ6Qm5Xpp4DCg5aq7UDXp6T71W6C1G7G?x^Q zP&8A6%?i6CmnSNB-MOchW)HK)U&xypyhYn^eve_E018qMez@bw_zE9ZDzM@D(s@*E z{?sq)d|--Z+TO4ytC1Y1_6UqztdET*Yd7;EK3sltgIY#K);5~+1?~GBe7MR|41}gR zwPgYW(5BNM$X(?!&tmsQxjXBDj-~W`g<3W!I~9yk={V019R1cfku+W1K*i(psNiQ& zG<0GJNi&ioVDfd!O&|$o(D>Fql(mp%4--RBX1QCGeB#tzoOX8OO^Nu{9t{zd|LWBQ&zg&rTV%X^_vGJS>CTuG? zgK^1$p5Yj6bZ?JgsG?wJ90m>8zq9i>uI(m2G{YwKP;Ms$;vVOAAiGpmnr%O{)W%DG zP&7Dj>W=Z~!b@{Ed7g}Tse}1F9XBSBFCfNR!3*Ki4ni8B%%2-SMeAcB_XS~G{IZ@? zVlxYu$~i5}SP4kx+w5+=-kEU?4gqx%aWh`(Gd0Z|S+kZk*iO$$G^D8sz z;^F^ZH-yBEUFN+U&1aPnHn==Jdrh-f!5-hJNq#P+0ZYr;(1{WuxC^zrC#45{kb(ml z%KiN7wGkcm0W)m`>w(v>)i-M;bo-Z?>J+}+E--Ex!4^{$Y=lp+-B;qRg&(T~m+6jw ziTnA2IMv+1t=6v&G=mr{Foq<6Z^AIZga0@eQU~gZsv_ z@cLKHgg`>-wWhjh;tucD8txQ=b|lB_#^&_EigE$~nK= zb$uIu_;?j=bq%g#IYx{nR`_v-W(OINWp--8TE-ldAk6_LlI`5LYOUw=fvE66Me^J%IdpI%9cX|D~g~ z0OlEvULOiOC_|$$|C{0j#m0;oOJJ`K z06j#gPKc<5^k$eL1~w#JfE$n>a{z4EwodlOt@Vcx8q;ddU#td*{7{1^j*_)X9HF`o z(xce7xT^}D$vKk!t|3^|xA66j^Je|*T5+U2i#8D-vs3}?HXvZ4 z(VLEiXDQ|sC|(9vjk3Uos7-Cj@bHH{S-SeS3x+6=kuLOEAB>4`d+m9oUB;8UFBQ7N zX^_J23p-ksUOOQAr&iLGhOXU_zZ}EQ%V3S51LwA3fgG_bMPAV_d|hhIx7|!cMh_kb zP*;sP>v1&7d)|j3OK1QRjrR3JD80BCGfKak)Pmk+)IHNh+h}sa{Yb6rv9a&MJf)?0 zytk7uX=!1Di97_eHXkuNR@pnR>!{7r`{Ho_Fcd49?m{LBWWcz#s+o^(0?oaV3`mcXZB~? z$HJetX$c%jseqV*5C5cJGm|-)uQz=N%CRZ(I7go_7A(}p?jQ1U6%8{MtZw>UZbg4G6bchq!CKNx2o zpLiz~(1t1|6nl|;=iRzH9gQC)KTZz?Y&u{)(JlcWN23DAk-q1%?@9a~HL znTM0zRC%?0PZV{3g8{_?px+cvY)9Gth32MxL^7RiKL2vw1Jud|p(8QnIyU(V_l{j4 zyjz>_r;w!f6Oo|M-#*&dXCcFd)?$uw2`wjyr-@31?`$)qK9b0gwr76=Z2XabtKKLt z1YEp_p%h7_2{5|sVH6QO!of93sGUpH!3hf%4y`X&l0d;!ihpN`rsTxID28oJ>~Px@ z?0#voQD`Z`HtRbJ{CAM1#@Asz&{mO=w6kH@YTVBJ$iEE*{em-oh(C58=LB=sHHm;^g-jMmO0+F2w^msPY%wQY+TI&iY#CsOJt zidMC+y0=Cbkv8BEi!*!E?NQpn)@bsRIeO@lNSTt5L6ky-ib)L%@zPc|m7~Y~$)l(G zp@w^%@fXD?nMz1BXeR5K6pnmi<7+T~;aZQuy5|hT{sE-xoyZprR z|A)2nfUjX`|9B7tS48g|(SqnfkS2Px=s^2^(NmNVB6(pZ~oD)*wV7*msWprtGjE+hpHzYboBf9tYpgpkDRtGJ<`A0 z-phM7T$=U%$h+6sPi@)#$B9Q-M=bDaHO(V((T%rrE#E)+v8LMk>D^5aBR4yEr7L=6 zuT{>i%eQ`;b#!;5NK=D0=4%VsR?S*!%e|%_zI070Q2dXKZJk2%oU&b5t=W*!nq7k}tgJ?QIP^TAwRzd8kkq z_B`9#&xSX?x^O_)IPZe>4s0sE>rt!SL$VaA{=7l%oohzdOq$f>p#Q96v5uQ-RS8{Z zF)XyAWxZ8xFRw0LKk{+mBB4)gCl!l|syzRcMcu(iYV_*&w`C!(YHeS9cFfzxdVZ&X zyAH!^mYooFC+n*Zi>wzcP8!)iEU`yF&q94y9c%58FTwrqqK*?+mYntJ$cM9ubv%!` z#kekZJ-7J8O@|U}AyBorQC{truAX0ig=y~2Yw7D9-Fv!(#oi$gZuAddGyK8CzY-e# zSY+DS;z`};H(xUkb3N?#ZASC84`1i0=+w7m|8g_lx1CnyzJJX_5uU-#a&@1z%eht2 zZfksBm-u?t!!~kEn;UJTDz39>=Dv05lRevqE?jmY%DwiXplklG`uKO8mZQR=f~8kn z%57cI$}@buZMES)DwGacyX@AG@{g?c{B($UUie{`E=2;}dsTRxxb)r4HFrA2IhH)I z?$g>N*VpkQ&VPD!C+={s*YUHD?+&ZA;!D2mgZj*N*n6#Hbeq<(Z~IKH{A${)UX@~= zzFstaV~fkyM;@m^-oPHgMsn$Wl8g2;o* zr-x0dY+92L{o-pA{{fayf^0ra|2QoE=-WT929(TL>ulY1yT`b$%NW?Ty~F1GB?~vZ z6Z<`8#-QzOEN|ZUKB3Qrp+Q3i4Yepg^5uza1-I=9s$6(%qsXPt+V$%Cs>a7I<9n=q zG&xJf&Gm1NJTY*^6}v;*6Rw}N^qXC+d{k@M*7cT&eP%uE-S(?n!pj}spWd?aHH8&D^7wm;@mX#6_j$1{ zcdw#bmVdo=Cf|?Chn1XaiF_Et_ z7H-h+W1(4_HoZUk`gz-XLlFs-H(S#jSrj;psX3u(yGn1y=J>PcV z$eM|T$L;NRY@pZP9uX_9SANp>-N>`UJ&)a3AM$6>*$3lKTYq+KSz>A#$4-;V<=?bo z^WtAwny#N8)vxRGvydbosWYYB-&0=g@a;_SO|kPx-v~X9>F>D?V@N-TmN$CW{+3aNk@qvTofz zhxX(@_G^ER(vl0C53+-phK?|$AeHZC#h^nthO#tq&1wZXyLD=Xg5 zb|`MV&Cm^jU4|U*(yZOASrOaDMV|}3742yCp;}Vp$@2@&JdXbSVs?oZ7kgMH_?X z|IE34!b7)^bR}y)D`5U}((2-ebJgxKYW{AQqQ}l0dOO8w)|WpoE^YcI`jcC_8kg3$ zuklww+u~jWBda(56#B=po9~wtIh<}=k0$nyCrz4kb#Fc2KOQ_=KcK?8_!GNJXRr97 z*@4sZ`Zv3`!F`+OhM7~J_jLEUG3WCWhw6dL-pv2nV9J{5OQ$9dd9Wz+&<##u{+}~V z*q#4Vhd09uTL%s+mnH1oUy*C`u0DI`*s?7aKPPP)nJF;$wj!2+-lKk1Yf!h0=|y7M zZeCBPUcBO&d1uJc8=30GUhyAvv{}rMf&&|FAJTShrntK+pRiS2U9vsB+QBsIul_HO+q9Uzzu={m&s8kN0o3CY$w>j%KZL&AVUX zPxJCke~t)UP_Onm^Lq0}SM9oJuDNCRSGV(J`rat<*6PLimj*T*QpjRo#MzFH(`!$k z-9=TM^1dlDGeaq_%Z)!J`ko5&-u$g+sT>!ZEvw`c9nxY!x_Ae6QENew;o0x) zEs)WC>ZP@nTZVqG|1kaflMdV7PwsJlVwt{8ULIO`J6FZ*$Iq47ym!O=)BX=WA3NNA z@SeJ53cl&zu-maxlWiOdvyE%^b42N38$w5zXMEFrb)|+oY7V`9_j^e7`tI8kN937U zG4rg}i#v8~7}?sdiQUQ%Z*3pj=E_>bylV5E`MfKf=y<;Lz3#>L=1;tLszg2ux3Ip? z4laIGp?_8O^S3ub{R@BauTb*#;^v;a(jUH@>-hFw`Kyd>-tA(oS>Fy~9ows%BvEu5OE5zdejT zci>Oc#5;Kl^cg+(xp(_=EqjHWDqm~G&-S%H49?x$qLNjgkhinP_Al~j|J&@Dw)kB- zGR(DT)0<1{o{F(9y_Y=`@9RzbsI2vNR;uS)@YRPuqaANNo)b}_>$r;VdLEfP?#HzR z&slE6KH5I^EPiM2x$;{IIt1qTIMVNC`LDUl2j*DY_RG5SPkic*GrzF!Zm;HBO@XW` z%n!a8+vjc79MvYbF8Z|2;g-(^-hQ>TTA-gVyIxl=TZ@@*uG+sEa%t|HD!o~o>p9n|IrQqU46Xhu8hGAgYD2%KWjFS(Y8^H%%zEOTLpB!s z7B#w>_gqoO9@idPO-%S1;%yz+XgYh{m_@-3G+vN3;CM0wrz#_u}$~(EpvO<#{LgNo7=VCd8Op) z9kvC&??2&b^XpV%$NJ-L-kR{FmG_l*&sP`ly54!l_YoJYJ}zuM%rAIr#J09S3+(%_ zsY=sKrXrnlP9NQQONY>p9yQLiePCN??4sM5k9D2vYG*lgPm{_o?Dlq!uDa9X>YW_( zu3gz?%4c45iNoT!))klL-sPLge_-iy>?F#VQh5%2Znx)XLd&r99}-LN{W^SLhcP1` zI3BMF?4`?9rbKKjx$jF!-}>F#zrON*;+?iV9BN!%v$|K7OJ1>+-AWXiV&8e)q83YU zy;ya!?;y(!)AM(^`s4Z7y(LRLSTOYdn}x%dUmI{Y{k%!8{B zu|j#b(icc?gQatYhe*g<>Ot?QAge&2luE3If@{-a$J+o+je>@$A8 z#cm59e=Bk3mjttm+j|tse0S|h&)ma1#EkZxGuo}X&AOq!S#yT>d5}O%wXsheWpxDYx)qj*ZPm)~dJFRJv&HiUl`S z>f+G8$3>?N>FkEH?3UxOnDo$4tJ}V=jv6v25#%! zMrX`8HOrsoL6b^7Ojqh*(_!lJsc=93(LOC0Cb{&d){_m$dr zKMjhg^`v3bPd_?b+;l%*z|~omR%D5+eQ;1%j*w1&-T&uZQb@5L8-BT$Z&Yw+wixRc z7mj(%$^62i|IX+?9!(olcF?oXT#lb@_w?*l^Ta)y+FM4}-SbDZm0giFhq=5)NNTe=Mri=wGj=^bh_r_~mJv4A+jmm==6~o8P##`==Z|9DR9odB6C= z16JDkK6yCO)^7Q`BDF1puATd*b*R;&N)4u8wf%LmUzepIeg(M!c*CRq6&ubHdD?Vi83zwbW( z&*yh*|r`%bvdbc{Ak1x|Y3XJkDHhRMXDumOWbaA-v1e zzk&2Pb+}H<*QsACj(^}VdvWjPrK=yZ&*$cP&wS|NHs*KzIxTC`qf9@GdS~aB*;8yn z%;g%Z_I4Wk^={&Y_{=v>4*tlF>}ERUYunu~YIFNaKE=+oX*nRWZtfj^!@6``=3Zby z`M~Fu8ciR*^LxoIOQ!!hYigkZB@e7v7X0(_*n`<8`P8T~Yc5k(l$EIOv;zK5_b+=I zm@uq=mt2(?-V{pQw`UGHb~Ke2b#2iLxqm#ogD>l%GC%W~%*vx3jYJf_9vhJ_|tWWUC#`Q-47HRX^M86npmWtDfY^Pu&8^hM?dwAFR|=Ptbg`5|I96Q zq(Hf5S3Vyu96Z`8ORHUf9}aE3u5pO(&hnYglq%x!B=;vTyQ>LtaR-pbeedZVrzv?J}7*xzCTpA1iWL^xJ_(fQcaUrTE`wfE{bJ+{lr$hY|} zJ=yMZTOeLKMVc5Fnzj>ft6zQ|9s4FWlgk3{g(tU+3Ln|B%CkG}XQx-2yslo<$t&mjJ*vAb>~(wx+lL1d zcdst-Y{}Tr{>L}puXQ5JwhDXq`L2Kdc>AF|9gEH?*{)a2qRV6K%k(~N@>mx(VAt&z z<*Rgj80CI#e3^Eh?}}&eopyGKTkQfLD%*cz3!&z$YhG+|=aYSI6gzit{xR2Can%#% zx$pAW*z9GU8e2cqjUCbZXTjR{zCOD;plyHe{Kcmv9`4@1!({Ighhj$G_0M>GhF`jWh0=9w|}M-`#D>m&z08c;$coKIC4ZMc$9@#5`Wr=hdE~?s<-wHGDrg*NdMy9G~_G$ya=F z%bd;|v&TJLw$Wto?>F7?T*$#Z(?9n8_^DgIz!QI0eQi2sIm;*d*|5#$?Y!oMUiy}> zCBoC=VvZsCKW*~pwx@ki`M|?lx9>8oKmK!jZTC}8du^DO-Ms1SYB|b(8s5HX?vN2t zx2(3_xn_HFMRWTa)k~Iq(6{L4g;op3Y)^XCFI#x^{c%T|AMdh!m}SklQ3v0T?bK|* zi#hu@o^f3GZrLxJqqSeu+Fhvs&bX*`!(t0nbPC;S3cjx4yOuiGB z1wHY<)Og~@0}pa;Kb$A-ZuHUK9x;{tnwcNB2s!n_V&RY;4z*+Q-n`}6I&$LM)vc@^ z4O$uy)1h8@i;;)t$9B7a^zT1j94fj0$@|hjbC#-=|6*Cc=LvqBy$g4;YSsJNiI#4M zR_`rQptEayX>7K?sGz9x9p|vw)QIJdA{-3wwYQS`CQ`{yIgwm`QkNo z8oNI?6Xw{!ugyTmV{TgpPsn6xKQ)(YP_4gxtZ&~P_jFFPMTITuY>TLr zSlE8*ptD!UMLyaxrd(musG)U>)*Eo@j`@`Q-`tku?|3$csru^mp8xbI>s~H=YrYp# zYR`zBeB(wZue$L?S0uFB(XyWVqdRpgT3zw%*KB&O`Vnje%MbIwduRW&{#;66mwxzWV<)ddUPFW9kXufJnPY`26Y=bDQHlOp${{S zGhM2`#}}80 zO)$lV)N40jOTh8X_AOh@4D8uv^!{s&OJ^U~bXel`3*)?sUCw#&V*m5!hWxp!l106O zz1&94sFwA7>89qZCjA}N->&|StVIU>+T!a`-~Gmr{$YMr{-?@zcQ|=&(C`YYEQ6v> z)~esT@eH5zj|Ysv-QyXZPN zkKGcB?mt4}neN6J1D_1GzVq%`?>}cIblms;$=)V`D}Hu7H!5ksrYAFB?cF}1(cD_! z>jzt$sXwUrG@l|C6BBaW%h<5UhV_l=RVz25Rzr8EQ=bBZ;+yBM5`40D;0Uj0v5U*+ zY|y%r#q(Zy=J%XcvcQvG->c@i^y;{qTe@kT_t;!?v8pq1P+TA1!HiZrPtcg^F18vbemcSGo@2jY4~ywM1p! z8eFtq%z6(;&xVoR3RO2BIzL-r=Ykn)99(O$vf`YpO$%PKnz1jw^wH_B^O@J%J*sA4 z2k%|?yc@U4m(k@%;IOm*EWh>c@#c}|o44H5&T&M^mF4dYxcmKOSIg0#LNDd;t=Oev z&X}c%O;>cNZq_WxGtZ2ABflN|T4~)yhr_?}*}5f$bQwPTRnKsT8-2HU6?yY@{fmw( z?!-DKG(7O>@?~4+<-Kk=)-Igue$oQJ?n67xU(w*r;7cXz*PcCc z$(WJHT1;)TxoFZT)9n^F{PMM$SaI)Xkk}ykVKmPg^y6btXAt99Qp~*}1w)Q{E07=S6u<`*8Ay z^~R7sAr*F&{~9y5_LoM^A(QjvUl^6=_@$r*9qs(99GJOh;;#h@&n*r+X|c4zksdb^ z9eVy)otN!w@7>A#U`gD}X7P6B(@Rzj%vK=yVY)6&{~C~KV=jjl#|!k_|7Y;4Hd~9n z%2BUHroM-)bK8E6Y4}&)4ucA|``Cf?*6H^azuWpXqf0HjYn<@Uzg+g;P zSlpj+^4i`ke+EzgBXVM`OMSNmo?27C*roW)p&f^HZJpO8=dz3u3Gw&OKRVpRvAy|% z>-!4U`DtU8_1v;!ud8MC@6aZvSL@!+*YgT-Fu~nlo9Roi3T2K6^=wCSp`&A3MTHP$LXMUe2R;Qn>`o8vUnIgA# zSE+pKZl7{v-hJ|#wZZRVb)RN7OEOoOT0VKmJT$J*x}_6qlz%;Av0t?1r@w-`^eg3` zZ~d~~c5UlfN3EW*@I}|w`)XHrj*Q9ktdDn|4}+h6$uKB=3HziXBRcrhsxtEHkS+hb z3(b=)VeF?X9&baYXM41NblENy{KrgNH0;_s`^(K|rtjV6)~lkk-W~qfF>|`4595FM zo*KT!qE7R&```bus$pVCv5M`2T!;U&_D;^_*_KUxu_)yI;F^0HWOfbuZkPRA>mC~> zR(sWYa$NpuUCLFO?bPGkvJwq@9@{_L{@&9!pLZ^=T>jM1N}E~-H+PHs@o-gr&!5lV z-}Eoo!MVuJ?BxP2<030Mp6t{5@TSJu@~*QgdcW^fpIDow0}4zC-oL7H_D_}kJ$^vXYJ^%mgFb4tl-IcdXAi6!D%W_GRn z|MW!ODOqG2kz5vLW~ToqMfJEgdZh_4`b+kD;<;k?EM=#?RYcBIbXqc(z-j3cSanR z=Nl=%Us5uOXl9nA(+Qt+v6LE}1v->d^!(GhsdJQLm;nmw{%}8O!9tvvRJLU$Q{84zu6m!^4EqZEocz4ECpfoSJ%H&5 zkoNVf!On=oazwb)X(O2~s&*5={@42jkgY`Aq}vI)a&_cXlUXF-9N`%fEA5GHqoh z>i%fP^8c?s`xbp(?!b6OAKDO@u*LI_bVeMOBTh+XMagtID*rX}VNAUrpwmhIaJy2D zrpFVU*_a?LxQN5@d@o97B_2p_TY_rRzy#(^vk?k+JXK~&WOYEjA*>AsssXb%pmAgz2Fmr)scoN_LIfk zCMaVcEVco08vBS@jpwXmrcUSl?-`Z63ts(0TIfUENN06JX1Go#e6>z(*$URig1HqY zELeyeG3`_(NdNv;Cre7(AXp{;Dx@%B!4hnqFO_W#9{8WiHpAHR3JdcD)E_LEh#Tpw znFdTY?@?HD>a~y-EX0kNwK!Avp1QKNTj!&&wrB4vEm(*fG40bpXZcY>6xOzuBc%lk zaU*7JLuTsQEwVt~4|Ya42TbDE0d$_voGKStK2LB5A)ys@`hMug0CrazJ!QB~gSe~BtWe$=V5GMaM z+rgN6pBQ>(->I#X{pP33?WK*pG1?h%Se`ys>P!~LjOi#bQJ;EWQ^zbl`H^iaDrG2+ zAz)oDj(0{Jmgh_L$uh@_<)PMv{Pey?CreMh&?n|au+WD%=_IBU%-PBBC|mUlK8KAcpx7Q`gg=c`WRdH?psiLqleyPAB}7b^bH=n8KP6XHT1q*RvQvYmh$V^>* z3YPzq=L!=REWy^7Z4*PLnQYhmWB4hTtzb1t|6O6if+^TMk9#uDrb-|{*KXD00TRGh zGm)NrF|TFgr82*T#k@$&b2*caSKN3&_a3fmL-2{g6O%9WZHhHl<^{0ODfII6RG-aw zK&LZxWh+>0+)UFj-WEPP1%|C`uWyxZi z`rH*^QuKYvRzX^@5GUp%nP*EwX6njTu(~d(t}tQ2LY$b?Zd;`R(eGZts&?)u1gmAEmPA!1?%PgVG0u#Ou^=e z1ld13@PO|9xAn==Q`rhu8{csX6BbOt=9yEw?Wm)1*G6s=`NZHc^4Y#wnaAST2rSqZ zcCE3`c7)~WX&mz40o{A*bP866!}baj7A(Q$nUl^=IvRIV#}uq(Nu87D2b~qBVDmhw z4Rz*$|EUcL*5rkw6(%fnB2HyX%r3-K?WcY4zs@(Q>zHjL`L37ve#pFb5hV?5_P%W$ z5r^f72>E?a9>BXwYcO~^pV|!n3i;`dy;063J`T;{gma3pHy2tuBM!^c(>X>j9>BXw zmr17+KI!6LA%ETkYb9SFkJ8dYAL2$jy(Kf~sQgzsAFuaG7f(k%j`?ujz`j^E<=7Xt zN~a0Ru^=o@Pdd9wP=Kl|cQ9RgUncyIe{kLw=c#L2pOO}HKg41A7wGuYN9K^E(&@sO zdY`W0@UM`c?PYi6{Pg9Hy`{zZX~gL~HO)1<@eEWN5eR2Y^$UKaI>yqIkG_v{{~MN7 zmKJ4=IGwAZxn_5swT?;o@sHt?E*4|y$@h#OtF%}9V$-EXdqteuEiro-GE=9Mom*7& zv9gsG`VcqL+4EmBNta$Hu8W~x4!2t;E%YHyI%yp0^{<(l^48R+(1&Ar)GI9XA#S9z zH)rbJgVgPXeFk5nlf}rNcWj5E?^gQ5(n25Nq%$(P&zPC@;WW10CKU(usrOUXDOjIp zo>iEzU?EOSYD0Y`lmEltjoJ|DVrew(_EmgsXUr+bmvWJ|mG65e#9?`!#O%idED!Zd ztr2nfDKiDD-9T4`2@4kD#Eg(-+n=Mtv}Fl~n)@G2mY%kOU87R+!!ZN0gT?iF#Ob;{ zF$Zv_PN$~sSPJ;WU;&n%{G0WgD*C(&yGsjwh?CA(sdJzq(=53T_=oKMzcQ1L?O7V- z*j}-0ALfKOEYF2>4l-oYzL9?nU!$GrBp+ituG?p;I8<8nQ^ff-SmZ+UzQKmf@Z@dd zAM!Du7%Zw`im{-i>kMT~fW=rK#s;1Xwc8Yhs5!Lb7RDJptE z!z5E^gbh$>7JkZ1QKlYqw=TOm3VZjt^ zo)h)Y;p(jA|3*5^acJ1M;#F^#kN#_V2_@8tNeb|pcCoFUd zy&OSpXk_w6Yt3)VmL;e9^^E_juy!{xSH=KXFcF94c~jYr(!!EG8cTTqJ~4QVe8KuU z)ly-?f+g5IJ*|@(olMc1)afjkx3I!m@v?-pU?Og$bBu(URBaVZy-&LMSIGB&(%%W| zFe0q~k`{9^#AzJ{&Ev=N4F0D!G;vKyMW5x2XG zNjIFbB+YQNTbCd$u4N$(%fCZ?#a{^ouz0vyE92>X3)vspIK|SEkNqU_X8RFo-O80# z_MfnvN&C<7wBb5k|6ZqUH5+H>ymj1GT5JR2Mmi^OCNv%;d=mINKL|1LV(H0$6@O6a zhgYthlh$XKzcb>n{7VV4oPtFz|C0?!&Mzg4%&BZwa~5=}beQnJ&ZoY?K4a<0XUAX4 zc`tD-9Tw+H5U2Ad#9Skp>NXS3czRzm#$y|0S$VA($mW#iop7#A*lm;UIw20r5j5Ve zl}!E*e@{?pLRZHaaf)w?X%bM0Ja-{$uA{8y)SjK zMEFel6CUhTSZqv}7A(YxN$0883yj86UGXq{(#2!szxFJuobS4ozOJ-jAx=yx+Yp`s z+irFJq5bH6Vz95U^yFhq;Mq{S&1PH05ph`lS%fT?4U*}iszcPD-Y15hiSu3<6L4-^ zSd0aT)0jZ#H8)D8`rJ$qW9og)K9y}d`Ps|aD`WZL0}j&S91Y@hu7=J@ZIVp>4}Yip z$WK`(>yJu3vU5<M=bW`5%=8<-8c`SiV?#@^Rf7 ztb^m8NQPuY}5MTvQAnmcQN)P&3)L$ZuOYQPDGPRwgItf@PnxvQ1>$Ci)MZ z@7u}en^#zMqtjHfoVos$?--8X{ScIy3<+mJYiD)b6{h?7og zLpvlh_$UcQx#|6snHb|xpJKg~SRaKrt&@tDePyR)5|NF2jH!OXPg2KFF4D&_J^JC& zVWXsN8Qonu)`#UeQ5)JNvko{a|5e(D-q+}4Ny#5)!{(LjI7O`GhJ772${BH3o-gU# zEkSyQ-X{kC3i(*8jj|PEgBT0M+HO5_4-e?tkPpgIr5nDcEwl9GvwBm;SzMipR! z@Tn|$Qu0riIiif^IG>5O1Y7B44`;+-d3rh)+|L7SyM2!GfAJ2DdSA00EIs++_)CKKdv6N^GX#(xQ(bZq!!}88U-)O!&mmGX+cZQ_(LGCnk-3hlv@+|HbovfbqsTsx7Z%qz5T|P$RG;CJsrg6t-{dIsZFDj6aUPSc zGjYPPpRg@6bap}3Csjfu*t|#SBabTE zN{cc^9F`+UXM|+(fA~A~ck-#7vKV8MFX|EVS}MV!W4Iu^X7U;=by>yzBpln>b(d}6RU1WQl8(6_4pWJM<| zbPByZ7h+!K0iDj@F||4c3+w(-wySauV~6vuv{-KR+zA03bvjZ z$pgA~i~;J`e~bz2Lkl@BiSg%E@g~YR1dH(paT*~`?=9f%nzDB2}KEGt! zqUgi10?HN^IuVEEdC)n==rmvo7CT3yFk!(GY&|n34VZ%E?HR8yVZjt^J@aZBFa@jp zsMiV;7EHm`Gq0rqQ?R}@F;n&qx`o1o1yiu~%o~!aK0XO&ZB6fM z_BE{Cl8-eWI4%?S(~0}%5I4HNELJkHPn0k86`ik{+q2KecWG5ax!w?R+fiCvZ$O-` zJ5XP_$ua8uStLO>Ccsa*e~L1_?QEr#EiB4blrcxpm~bl%n1a<|Q+|aB3#MS}nQ>{r z6s)LR#T6zjn1Zcm-cAFiVBy#gV;?M-f~{xX;Q`&d(HO6(PnMp1!P=RnvciM~Q?PmF zG#`rRfq&74EY#yZOHV%5M`3<@b5ciXu|Gka_AA7^`>&bQH`rGglYDlcigK+Sb1oc* z!s56SaXS7aW`ZFTV}kkxpBU^D4O6h#GdL6`ELeigbE0#p_jo{8wy9$Z7MpV^Ojs}l zThF|o228OAR;(2jYeNyIvL&4l(ts(}ql$H#Vx1=9M$Ct4z`UH#gRkrJ^p+Ouq!2e+ zoAu~lGYjbY3i;xiGS0c-+A=K0cEo9nr?P#_nYwqAI)C;VeA;*M#N^{V5cXxK%Q#4j zb8v{m^7Id7o=pp!*%ru zKV_z1uEY;jJMvbvmn;`Ju2@_0OnWqk{z#aag_1cWJ;Btdg#OC`?$e z1Y6I1p9W09!n1$ShG4-IY(4Ws8ZdExGUl4%oGL7ym54a3p7}8im~U>GDa;YOGD`~< z;zrC*oQZeUxS+Hlou8m<%jAo-zF6OfeYaTWC)WOQ1of5AJiz)}0Q(a!F!g?tn#t0V z&(6Cm*LT^yZPMa865@32ikM#{Q}AF@*FUG^x$T7d1XEa)DdJSN)IYzb0kiMaD+)`n z1q*Q_=C?Fpy8S$%Fa=w%5I16ePXi|QT_{t*7A(Y#m_Im^y_-~R1of%+HRCNyPd=W% zgX=2(A)eCW`U>K-?v1Vs{**e^476LlPYm`I)^5ocEZhSQHY`|(6O-EQFV1A|YDTz@ z37;7JE948--|hP=Ojxi4o2Mt8X6YnU{ZI0EB}2@&(Z$Gb{&lKyeh+gl9Mi+Pbzbg- zI4sYF&ef#jOx1XR6wsx9!M9K|S$gvQ_Ju3!`Yq8RgiMkt^JD+eK7&W$+vwU5`5{Fw zD)oqQ7WD~>`b6BQ-DWmqLZ|u#pZX*FL^CG5_FSRp6ncd|#Eo=X7&23*6VLpCKHMWC zEc796q%(^lGj%$nqJk8iLa)$=xRK7RhRoFI#PfHc56_tt7Wxo3(wWVWnL3@j8%?1s$L>15AcRCEfxLLcHrIxP*Esngm2 zOesYl?q7jUSm;CCNM{a1rkT3`qoXoE<^G9#+%Y#1dWAm3Nhht3x8h9o0Kon?(n;eh zPfR}UslYx=-1i{va}f7h@bt7_$!Vz5h?%lZtV4iKp;zcboOIIMB$pvGQaAR&r}33- zHyiuN$Msy)BioNii+V(y>XVqc4VgymmdcVdHNF|jR@}#;zHh~7|Cz^-nL3?*pIR#V zFt>zWSm;CCNM~L{X6kg}9w7B|cyQhpx)F!vZHVSW`3#w<)9IYcN6~lcS#N2f4{;-% z`3;#yI#X`9xUT{2);TIlTC`Whsoj#!0+MM`wN>cU`LG=JCR&qDC2KeB+Pf8sl+H+Ed@ zAncYgyV-Zl%!D;FBb|i}nb4(v!B4q9aXy}3M+uM?x)F!vIZ=HUF=Qs`nDA59$(||f z2z~6Fg|yIzIO(MEwy0$4>re0hcbzx}#B~Q@aa;zSbSy|Zi%F)sEK{fRa>vKY{BB#z zkJ3UP;zl})OQv3z-cPx&)aqJL(Q{^9acS{9Sj6eMu%y!@ng4&C^Bwaj`r22plNS0A zH_}-`GWELje#-TkqxVcl)Ej$NskAs&LL64#ZmlKLMb%bOpL###vTYV-r?eg1M~5~9 zi)}!h+7Pwdl9H*{^&h@^j>OuiN&4cqByhY5O|Wdta}>WVq1RbTGWjRT?=nB~Q|_M| z3(iyO5!YDJPhnAyh*N#idXv(I%y3mXg9^WjdOMg-^2KwE@yth*B`n%2;zsSZ3}+_G z5k^yYEC}By#?y=Y%EtFNQbNYQ$9QLVEIX&j|J_ zV*eucCy3L2B|^4`@@b$`=o90v7-xlEUSFiMf+5pKSGMpqZHVb4AJ3A*ysw^RS!vOB z5T`aoI&J?o(?*sJ+ip#L;+c<_*J58LEcz+puzH;p|230zaVGiVd6Qt``I@lMEuKHg znWVE4XR@$KRi5}??-PUPK|aeMszKDAS>lYI6}5oNtU z)~tgKi~R}Wv|k~eRXEd;Z@YL`^ALk?qpnYuo_sui5%m@qP)u6%OT>-(XH`R{nW~(X z?O=YSI>wmfThr4#AN@7Ons(q?u| z$t5lN2;$UNXuU~wsZ(8^!Az6h*K7x4l8@tQ)MM9M^`u2TB2M)gE4SH>Gr1i3o}eyA z7KKms$CHtdb(*Np{ILzCMLi-;^+|KE8k`xX)#anp37^W6FO~bM^W1pMUTA5D_#?;g&p1X}Q6vt=ccnonmE~9fbwG5ePlWHb>sz1&oUp(in z!iP4B7FayzO+5FF*9Fz5y=3xF_&fCj@-;E0lYCReJ>@zl)-vOICv4X|1K3)-dy3_G zP<__^*GwB(A1n{XBp<)^f;MFLXt1EjazP*k~{*H^Cl+VO(;fdeA zL)_?DdUYk!Ma4n6>HU=35W7!BVX|u-(t?FJF{x}F44Gy+CVXl$yllzGd3cmcakrn+ z;(4%$8$B1+Q8LwKN$rD2;is%KIw-v|=7}*-jCqLD*he~@44Fa7_R?0sCtWPg+7S6o z1G*}6Fq9?cVz8KdAx?9!NZB5o4VkIai8&YM1+kglOACF78|id0WCrMT!Y5sNop_cx z^a;H}AL2$j>v1L(qw?Qxb+S}czgTYpomhV%Ec796q|?=q>7&yLU!#*T$;Z40I)z@L zPpq%zf+A#n);BC$jPaTm^KH~I%{YW-Ut_#s=e?xG`c%YWc}{eU)WDD#uG0yhbg?`% z?bgk?wW3q#75WgT`lPTA9HvR{Q~hx!`Ru+1M;z04yZ(=~*pDI(tJm4ckO^IC zCVWl1V)>Ad>wkFmw?y6zDAul32!k0|ws-<3hV!lE7# zH>%GjhD_*Ezu>1_pNGD`(N)>XZCzFYhaJ%9r=wN{e|A;xr$kzS7K)iLz8P;ZvL8O!960 zYAX7KUZD?h(n;rxn@gsqbW_!a@Z2G^oyiM7ON+LHxKSHwVaOy6d`sX{S?bG{{YHlJ z8w6~fiL@AJ5vTE%bhb2Prf%$uu+E^&wJPn%CN1+2F66+i47ktfjFedp}`-=XFXMGEc_KG;QTRJXlZ^#VNG2vUOwKFF9$Q$FW z7>~sGgE);tk@EW;B-2I3fiAsoA-}^)fHBF(y-wI?zqu74E%w!j(>|MYcH~T!jhYdl zW5SPAZ4=6!e9>M5OqrE-3ybzD+AmVG^m3a$q)z?`e}_)>3qI8!`$SWpIL1XivN@Qv zs7HS6E9PLNvy&k+NXLXv^~agyv-2ZLeTsS&^@zApeRh^*tJamEW5U$m`S@Kn=oET|KE#c5`beF8>-l?vI)4^|PwkYaAz##^Scfat-HLkU z=}Bidsgr-g-=RzWf}e7`W!F{}okFkBhq#f>?oy{o#epupPxZ&QhJ388Lp|<_2$mN0 zh`3RG_Aq1y=$P=0<|~|zXNq7Bg7ehEVr)R1U;9A1NZCJoN+$n4e}_)>3qI8!|Ac(8 zzIgfIqe}mTMZXm5jd^;i&t8U1qw&@xx0B~VKJLfCnC?0wtF)LGAr8yalg{3TOp%VK z=Ixg1k4MQDzwsA2zpipk2Nv@q@tc1tN3c2NH2XnpAgp_aBf^$ z_I!LLZt$G^zMRSWxcX(Jlj@J9Wa-Jr^*^)~u?|E$-jNJQo(@FXFIzokI+nMmp&@j5Em>^IGV_xC4v%t(fO>Cbe5%L#C0= zDzblZCi!ArpLjNzcorGrbo@!}cBmnf<^X&f;gc@CPN5I`OX!4!PN7$?bC_hBRO0}2 z>V4`PoJqd*DI4Xykhs4?+|PlykxoBDX1I?s$1j>KV_XlpIDC})?Wy{e9LJ6IZ86sZN{iRQ`RY-Pl)@@F($xb zED+BtX=^d{rZAi2w(RL80HWVxS!Z<@_f{qDa(}oz6d~s~co|CHVqhX;B zaU-4nhRoFIWNYvhokFkBhq#f>@rKOQ=@j~KKL^GDSm+aa^=)W^Av1M4@mx2I2|};X zhq#f>iH6JoU46o*Hp8}C(}u7<6HLJtEX0W!A=}VwLnh6alUpxKZy~?KndIZR1alL% z7FJr!Nf4*G30-%X%b8)?eOD0EWm0K{uhGfUlaDzx#vhEc!eSgkoaQExa+`w|I z6MoA3Y_YG#JP-S9SnRXKzMJPk^MuugOrx<+6JzyBzW6;a@w|LkJRcu%dQLu#@!JiV z8cl37;cH@yNxslmE4Zwp6Bas!UaphsbB7_*s0}5k>KE;nd^{H)Yg;hB3X9+VLmZYf z=^SGcXR?mC zvTRADu_hZela(#`Vw@Fgxy9OTG4Ar5>AJ%Y!?Gm}JUx7>KOQ3=_atKME0}kgv>5Zm zJ&Qa&t?&CuWy{J-zMx6xlP>-l`D|^vvfiIPCqi1xr4gq&HT9KWk{O_4M6x>2`=pCA z$;W&h^~kO*ON)9$oa&RtgaYY>HWyX9LA~pJ3w3?6FOh$wrb%h9;y1;_Z-^mI?UtAY zIg@ErGs1OD_|Pt2EIs+`ILr}xSp7+haR_l({;gQK&4toHr}(Wjaj%8Aw*qk^orMjV z0Xm)V&E$3_tJV0p{>gr;$U#`qc7$c+BGcF6%rNcPXJQQei5LE-vSd+~o_z7VKGA1H zA3@w`p3q6wr@C*1gU9Mjyxzx!0|6#m^D8ZW z8w7FsjSxCUI%~)b(lOx^L(jxHQ!vGEZHeF3LfnXX&X8%Olg0qfBp>w&rqg_XX@jzj zQ|c3zmo4dxmCS^r{4=~mm)<7^OTfyOd^|T)DcfYdLLcI!lYUF=revz?&!j6`_$iky z`aYO~Em(*XGeWkZTau~P<)hOHpXOX#C;3>z1Ln{}U!=uvy&z7%`4TCaah%Drffn(? z|9W5DUzK#S|FX3n3JcFO0UH*51aaysbic!GsZ(9H!HlW*Q!ZP~Ex{6HEXovdDqCtp zcO+9?wqWZ0l$p)HW>J_)g>y*jTiV|laadk@^gB@RBvW0MF1oUXk1q5x_L4>k~dP z*t|u<#Cdoy1zWHXH)3Wm)cHH6RwvfpgNb#0!h(gk5i^USPBWcu`0Dv5bdvAVYOm5q z#P6Mo-#0~^`X`lb4uu)6WBg7h(oxz<1<+>Jf3O&saI${>_=9(1ewrCkL2Mx_FFy^heBZ z@w{7MF|S3O=C=tl&nZ%;&rt#7b*uM-nO6B?I>{Gv6491K+d-V_lgjoVg&7_ub5s6_ zROink@JSb&pRx4h3w>A*2A#0bhdAk^V~44ROfy*y$=jkUTP^c!kDSVNY}~_!V!f5+776fE((0OEH51e-Id-Oe`DnWQUQ_|#@t9vYqEw+GUHZ=~pig-*n& zK8YEmFavaD8>C~xH>uhc(vy#42Gk?F-XJa7FXFIVXQcf89Ilgx>0N%F9AZArXL*c# z+}kzIR6}`&r?5D;ia0D!PdevvrX%6-pV&4Lg-;9?W$DSsnozI=Td)u(CY^hm$IDj7 zjMSAad}8o1p8R|TuPRKz7A(YxNymco4a=7D<4WNh#rUUqb{=#JwqPMnOzJBO49oU+ zI<;lnFY|7NDcFLAI5BDLTWH8kU43G{4xK(8>!k$?aU#fHozT^oY0sZR})JuBG}EZie4ELeyWllsaMg&Cl0wX1y>vDOx>7(wV=owYea>`y%mVlJr>kg z)^aA7FW-M#pDZP{B&Fc#|>k<6MnZ$ zSo~%q;zqySxaD8hCo%YzkuO;I{Twi1!9tvv)K|6|maS3$)a>6_*^)1gQ}9eD97Dk3 zI7J+{@NFb!s39|4SGMqp!Sc{B1?!J3?Gz>~n1aojG^gGsnI;tn485N+6UVm57tb3K z7SAwHj)j@!OwzesVe0oQJ}N%G0bk8Tdh*#=r`(6cjwz&V(JR6UaahizgFU4Vei#CVb7lhB3*4 zaag|fRJOY$)1=}cKfQ0E(@DN~{u%lsu6M%X-U{(NG(B@SXR@%G5w2sxCtW-b@*juh zP=0?z{C1l7tu(}OJ)ftKmD{{W>g1p3^CO?mow67!Tk`QdLY#ZT^=o1A8zG1r{T9kz zLnd^oU;m*~Q=fP)D(Vwsy0EB6#Hl{14ecYQilZ=fKGh%BNj|&BR9VA}`yFsC85V0| z5vTiCsBHI3rb)-p`&56NNj~mtKpC?6p0ub(#Hl{1-5!ukby-q=JPMz5>2>zWHc&Yp z!`fFIm%(B_k2oyPgO~>u=D!(-)Z2md5MPV$e8 zs-(0XoO44Pf<@aw+^7v5=1jgR@}2Ta-bPlo)HisHe9=e5d1+YGFXGf!sNEisI`wTv z?`yV0Q?_`HCi2GfHHAgnLENYfg&FD$SG8fNg0Eq+82QkJG8JVk$`o-bTk0!E4R!8d z47E=9DYsi3e_@;z_qK_9*$}6D+K72fGI=fWchW$>4j>wOJVqm!MtRmOJoM~v~XXiJDwyCt0` zB-2c#Egb*r{FIrvM;hZ#`I_CN#rT6bjYHH|P7;$>o${Wb;voP(Wu|?xY)aXRG8Scu zxKY`jGOSNUr)nGEYnbda@^P$y`V?%zLY$bS^R%JP-!e7z8FccQ6PQ@@D=b)u8!^vF zri;2f*?6q?Nf#5TVT!plJFZsd)UcRSi@7x~Fgh+fE6diTVj_RNuVHG+7U#dvUU7|8 zShQEfsom0;5RnEtg}&I+y%e3W&?)rlb)J(<{t16CAoq3TYjkSL7VG{|kD^{hJt9u^ zN$WMwb7q*D$c_P2<&00@)4q!ZSbFjkeL5)5_rN{iC|g*RDdJSNky6J6L!IF|CVXNr zCeum&v{{)H7JDYPv|u4lOzJBa4Vjv9WC-}0@@7o(MLptN6pmM5QJ6>(wB z%%}}T88Q=e^$9=aefER59hCEZ-t6~zagGrd=WGy%1zTOV(VQ8^}SI7T9R1PZ1Z^ zOw~Wl4a+u3*H_?^E|wKzl7DKWhjLwoox_k8*HsXw>nn7QF(Z{NHY@q{+rGlm5tH3- zt~{%X-LImYzlFtlPQ>Y4D%EEu!?HE$biyYF+s|lp;&=8i?-R$N;L)lm3e5N?R$@3(pg<;u->zMG>I*|+cSlZV({%IpPesJn7IEOY*?@mC+2gRXI8`d{2fzUpW^xvo~McN z6&7PV;xxt+Gn=7Kngei6@JW|mCw>PVeFDFaBrL{y#Ob;q?aTh)Ox6xHFIf)BQRdsI zV=O)SQ?KMv#yZ^Fg)spZV*%ncCeXEx?1p7)G$s&(_Z9MYOmC*J#B-&@bEFU_Ce5iW z4a@d-OsFTOb;eqn^Ikarg|QxSx+k1;<{+J_{-H2+zJ;o6wQWfJeg)QgfB}m#7Qbh~ z>xXn&8R|4s<*$5$`D!L&NLEio97r6(W9o9H7r zrWaP}D=bcZg~~RUAu~Z$uFwRZ7S!dEl3 z_4#0D6D4o4PC=|oK%DkvH1_48`c!e0F+u06nb(t?RN zl`V}41^+eEMpfQms(mvvv>p8Bi?E{Y2y13W%tD6D-;G0Bo#MIFJ1*W->Jb)W0pdnu zLSe)D{9W0i9;iNVrLU{x&E`YWV!nqs&HG4a5zf@rr_nJIF&I!Y_TktM_sg+$Zqja! zE1?_{!t$0vYnF-{GJjXLTBcy(Iw07vU?EOS(pfAGn1UsKM+X)x!R9)NSzKYFO=w=K zHmbyRV}iB~iDQP6t}~Q<7c9nE#A&=GrpZv}Z`+WjKG8?8|HLy!gvI^@aijf8i8Npe z7Vdoq6BaDQiAnoxYtGaZ?7vv^%hFRj7AzbSfe8ziVDrpr>?>)={B7B4n1UtdC}K_` z*qllG>{7&3wIgN!sq>W>|GM%{zPNWd(dW8yeh3!lg%GFnLv#+KG%;2ArB0`qdx_%~ zah!rU)hFpJqcD}eqM8>db*1yE{`AM6cpe1H+bP|#q0-`5P&Vqew$L6Yr;aGI6mV{YPU9|lYgYV+vvsw_$liYEO8tvjynaLXH3sfE=NpN zS=xiC^HXMu<7-jIqD&E|^+Uug&&yV&5&u$~?Vh6=_6STF^fXH5GtTdwneYD0p>#sGy03#MRmCiRtyX}}aL zJlhgFVZjt^&ZKr*$*^o~Qq^t+>$bC%!h{7=u=QnI*-+H)^DolgoQrDNhj?;s~a+d)#b>f!cUor-$2276Ffsj zSgbQaoYtGrz3+CMi6T^S67avy*D%?~5^SC+jkmSZK&N0e z^AAy&uwV){XU58L#@>)g8hCp6nwX|+1q;suL)pTDDcC#@YPYrjHIw#TEDy#cKmVdy zO50gJ*hyNn9mI{=P@R9xOj)PU*Y(zMMJFtD3cXw>wV}G4$;0wplRu08N7*LF_!k7L zU1+4jgauQuc`7Pf2Sc4k$AX&e(A1}3;aP#GPgpPon=`51IvO%l+duj5&^1Z_U17q4 ziTeg&^*WslnHo*(EB{fp8l8fLX9`0nELeiAXF8_=Q?T&+D`3KcDcE|Zi)5Nq;~jMA zeT{aFPCTO&$0bdU50V!9FvN}aW%VSJZw-G>U406DcqRpO!a}Fe%k!kZ;>ww7Ap8Hf zOqPapyIv}wu-Gx6v|u6*%QL63ufAle%MwhzPYj-i)<+rQxuL>}YpueXnbEUG8pyI$ zGcc~{eVU6fCaX{K@r*S*=M8gcVX@v1aeAHIuzV$TrH72G?7<8#$@Ka_A zeRyUJ+AS>f3B5cgYPU@cnN(LiJ^YlJf`#9g0TUKX!RC3;`Gls#RB1Dzee3*`nOO(_ zQqDcGd-jxbG_W}Tg*crDqw9ihoXIyuz9*@82*TGeS&V$4Z?2iMq7xQ6gq-?#n_HGjq${6od!%?1Hc-z#MM2eZRPvk z32|6ne8gKA-!Gn`4jXgli?Mk;Lx7HvngC7u)MY@Y^9 zLPnjv68!y_gXs_Zq@_L<}I8!Z> z{jcmlRWbO~X7~r>i+Y4U)F&+J5pk+d8v8mM*QYFdp8tO^SzjThVBxwwn6O|8HqV33 zrFM~JtCD3nr%t(Su_gd*2ftA%EZPv_)IVts=4q&tG*CHen3^#G^#@i>>r>K#g*Y*( ze|n_>6X)14-r}5_uo!0%r}36_dUGa|qi(0+x^@fSXuiTrft8{1Y*se^!5qv97WdO3 zPS0qiV~4J!ljSR3O4;gsO?hkDkht!N^Ff$P!(zTCu7mPiNv97n1&~>zzM|2|nB)tV zcrJ!`4u)X!jH%srGh}Mo3;PQEly$OuN0jx&SYLv^0*k(aIQ37O_jTvYFqKI5Z<4B9 z@dBG4rXRFzwKejM4M5+;A^xqCi&uiNc_eq`UWh< zS;T3)rM}WrVFs}JQNMmypGZ$Sg+BZ?F4_<*bPByZXIfX&%dkEvKb{_b%JnJg5%*M} zK4DRhqF#9(bWW-_XR1ZA|9@MbEDdcJ?g@gvuss=+<4#!UL>!i9PJN}1AycD?eFeTz zjOQlw;dl0+6Bas!UY?5Tv#()&+UWKx@JW~cIxo)2K<9wT`J{zD#7QUh&whqXYLk2$ z_5BlVh;)nlt;9WF;vO%=see*^_UC1*Yqv(nD{7sXYmzUnFBIrdPSFVqeTb7z+Gh_i zWSZ&97Cz}>+BG^wJ=zzWuGA+i^oe@qWkos%8kViQjtQT1>Fe{K)>RdKIL1Z2!a^V7 zr1OQ$^Z!~q_h8G8s*ImJ3B-^f1QSu%M8Q!&Qi3>G%w)>)k1?esB`Q834yC9?2`WVK z0pY6nKv9E4-e814c*+C?1ac>r_W&V`2p9r}OMnnCgbVTtPuH*4`TFbK>66Sjv#ah| z_giP5{`S|aU%U6-y&pN$d1n1Sj}g3Dr}XLh4n5Byy_truXFn=A!#y?a-QM`W$D`xO z)EHCpU#!hv?aA+d%UL8-}+Y;{%E9(+s8I$Q=m&{vp zKDu(|H~G2M@`nq&TBq*yW!(>SV$p}+IyY-<9y8>eX$ns8%r~o_dJgHNN4%}nPb~El zzuO_V@#iLID{`r;b=^c~d}-b1{@xE2eQ^(AwdlidogOFr-jH*qDbl}*&ZRGpOZxPD zq@IVA-rURO_Vl9d23Th~M$_IN`h@=Sb(a zPN%W%-R4|A|!Ev6AMX&moOvC48YvydqNGTs3 zp5=Gstufb&sE2y*vfi_dAKl66a{DJk&JFf!IKheR16Jr)_QhrnrqU`y1Yei+B__4#^CqbG1mE{A?MU_g3Zx${`KGeMd>%y zkE-9q@BY)Af1P<7^=%R9YAfZV!`qs=LZ4&IS~&dj=U?*lYJ+PBer%@d_V#ZICvA4i zd1&oWtP4@vA+<+pfAG5`S=xI1*yMEE_jk_Q{HlE3qRxoLO!opkx~|<`$M!j| zb^d+joEmKh(A8mlbqh{o)^ein(lsnyv%>E_+hddSD`!nF{&9Ng1-qPvFF1|AeDbfA zGNiJkvV-4c$a(veA?Jmyrl2UesVk+NSFHZzH{bct(ytU7{YmlHe#P_D|B#$1r+$uf z&g0j{Q}-prBD>}O1T1mXeF~YZbv`vYqa3!|NayT0Vt-?;U8OaBgcz+aX30EDh;sU!GZS6puYvBtCI*yuRH))hwS>yjS$FnIn+xfo3)|I(o%sM8td8-?ArLW!JLGsit8h{d7mdy`j_h!&ll_f3rzf6@tKz70 z{md874?Vl;Y&kdKYdFEHb?SNpb8W;EOB{9mAvvA5&oO6yRX(>GJ{(}{3dc;R=KeKD zt~qgC3n)o8*L0pc+jMZc&0P< zH`ZLSo=4a7=bAgtG&XCR|1{*B#V&pV_P9M9!D-BMWwdde6UlO|6~C{!y4+rvoJ%<} z9(SY%Y+dOy=2-*g6Ep{>IXC>CPw+K>e;#r=J*Pj?p5H2t%zF_}EOEr|c)G4UKRKfu zwsoU$Hf0w)JC4}jSZlMYo~mAIt=2p;k8fWvK4mm>=&IZ_K?(tnf4tu>G@*88dKU%9* zYqR2aJ7k@&tejKBgRUN1S8^J2e!}^u&O>$HiGMWi+gmw%T|Kt0UMKex(|Ry-J-|>7^}kA^$GAzFWqVC>(swqxO6)p3i|4Fg`LTCDqs%4V zc;d^dC64$VPxslc9dd5M*KmSoI%oYS2ai6j|Ix1Z;dr{P{JS~%>2lj@_;7(&>*N`O z(&pXifz{IH;dk5TynWq}bED$~uhyw|Nu2uO^GZL8rQgKw{?q05^+V1>)5%;vV-wbv zljT_i{MgJq>wLqIbEMOCBhrX?8f)!jJx{0S=kU9|wa!bEGY_SHI=ys(XYmZTF>7F> zPkN;fzjb;JV?8<7D_!}Aa@ua-Sv+HZW9CkYTRf*+?k~o2?F0YlIrM#1=hX0^tH;)r zM`O%$WVAn;Khb;%ez!x`d0Exja-gfn))kyHox0XaA5A}sC64$VPuI_l!pXS2-C92U zVC#x&I)LSa-O-|Pd@Or&S%W~OryOi??aMhjS>7_ zYs78*n}(dHb?JkxE04tZ^!I&R84s{N1mglM^sZb z`+f9>i%#j4KK$0{KKm_|bEAnV<)z27G8Fq7YfhZ!bkJ37oEvG5JaxKFc&qca(N#2c zc&0OwG5*B8?^$$8uk_)!PUr30hMc3kwXQsFWA5i8jy&rwi(dSWr}Oshg_E-1)(<#) zY+Zd_VSGoMu>Xu>O51>?Ex_+K!F~4r8qbzvqvHfySC%2;Q=h$6?nk)K-M>*SZ2|sK zoA8dxxoF}?+t=e(=e*qVo@~zPwT7wIEXD7&OC8U54mru&mJ@7Uy-uz@GJfY?2wCEa z9~=9}=6JsApgC9TZ=LS5FCTIezg8!BwN9-Sc*TRSE%#7j(WkWoi_B(y z>UR%0w{`IZuhz-4!sz50fGqm(Tc_LGD~6no~1GV~wL+a^KEOuK=tE54cO)cW{(_o&`As`c_SCAabKJpwwp&Oq7GTFP2G8NbVr zb^hl;>nv@P#D~rqF7G$s88*g4Shabw?ON{dOU`vAmUep=JMb)TV}E1rA!Ixh*Bh#3 z9E9KFA=j1n5A$~FIKi{J5{G82aqUm6eWZ+Uv5adq&P^S@2JnGl-a5V9AMA1(zQ|i+ z-hW9v>BD4+BYwxzW6l2>avoZ_<+w6$^IgxxQ+X=e#`DS{=c3D7u;Z6Hjr9zPp0&`k z75H=9%Tc+{{-8M{zqA#d9iHWPd}kc}NLe#RYgu8L&&7|;R9!!>GN%Z!1D%dvd_Rk4 z+y`Ic$-D{i#1cpRj;D2g$ef)n($$9US$&M}jCIc>>lbsq3`;%LJ(QV>b$&QGmH5)0 z+35t&bjE(hmz=#`^hvMu;kQoL&;K5BmcFbx4zP9Q7si^O<{mrR9W3+H_&rbU@zB*n z&dsik2U}Ni8pnIGi%#j4KK$0{`uP#Zv(Z(`ZHKKZzL>>R`tJ3)d_N=>ebSo=U0LI` zIplOb$o;`5)ZZkh@ipf@ru5BPO9e~4#P9lPogb~7QUQb3|Qi+xb`})9daI8 zdrO;6J1f1?hkvB=lS9r?JXha5 zy;f zJgxJ8hMY4^K>=PJPsLI9X<~_|;@Zda`XT3`>13@K%B}QDAO4Zf&kQ*atzVHo-Z?=3 ziAAUMrcRF&Zb;5_*Uwwj8GAaOw0Y>1Ug^Vcot{tlY~^hG5p?!=R#$@4n01SpAJR1} zU9-aP`61tzx>Y%=$oS{bbn6It_X0^l@KQ>c!JM_gN=SDX+0Xu$?MsOOd zUNZkh{lro~RZo-C_47-Gvy6ut9@@G^hg~;vJY>B0@?R|aq*wazTci48M#l+Wt&?ZhxP}~Kl4@B84ZqjY^ZDoExT2?PZ#O$m@JwgyZ!CSs{Lv2- zomlkYAL%@5$T`xvx_&B-54z!;5>G7gR9rJkt}90mIj7PmIig_e3ja)}*4ohf_w>F! z{MP9?#$(Lc`}^Xhi5wD_>3cNrH=4kFWLsZ-wVIXkn86O zRc9Vee&(3U9x&pSYOv6}fmTEmwtskm2Omlyi zq1!lbn|KzT9k#AWBfc|MdF6e)lv^z2R^>N2ud6yv9C8+&4d+dC#&_09Ii=jjxS(3f ztIBV3x=r{tbLLm&Q)NvquyuuZrjv0kag6sIR7*VZy9~KsIcdmQ%B={)f~_k#jkT_3 z%+Zv71xtUTbv84hD{J1~HaT%OdAZ>G4$pMP*T#w?_nr|?Eb&xaNxZ%8aPp9Ii@Mox zf~~70(O|Bp5Krd!WQiw!w?od`Q-*n4I5X+;3AV009^-hXw!~5Q5$V1m{EnyFzS|8s z4=tWrZ&GXOX$?KCKbZ&bw(r|(-cID_a-(1Av32E6#?%qUeery2wT$=hd)()10Jk4< zl9w$f_&{?^u+A}MCayD-wMwzvOUYic?L85TJM#@&%R#yAv32GC#xFeQm&*CIp1ap` z_V}&S@jNOyql~s38=rnMa?WnJ@N$x0SqF`hwH= zSDtyFaz4gAS)7+)IUmD6IxjnG$T_v?2Mu`jcu4wK`v;v^bmDhBJsw(1PD?8PSwnsS z9{KWH=7!NHz0!w&r1MXPoHI?4FnHukPU*Y$6(^T9AF=3@-rUP|c(#M=J@x-E2dV8Hu9CD5{jeMCJ>k^_I(N9}29c!)_KmBU2^Mym5Tb)ku ztlf`vjCJ10TEghUa{j6F(ByPHUvva?@(e9HrC0j!k91y~oa>5Q+EF~MEB1-~jioQv zoh&-B=#<`G=ZgI{}Tg5Pz;I{zg(m-4EqWo+pQd}ik}*4pOh-uI%i z#yOV$L~EV*I$v3JR=)TLo$Us;uJ~rAllsW`;72aJxLW!Z{Mby%I`EXgvB~Ljdr5LG<1B55rc?T;8|cNN5C2H#s}5S{t}dR&dw$_=v+SE6P@i=ba$MtpLaR?o26dz-eKw~mU@YQR6j2ra*lMmoW{}2 z>dJE-wXZz4`=al@yjuEh{MbBt>s%jlj&!c>SC0G2NhOX^FRLYv_($>FH{{$}9-HzP z?D(Zl<5&l5N5*k~wZswsD4v%cH0NnuJdHK3*q#tu1itcQ9P|H z_KE$CS;vmw@%)i2=Vkb@_}cpU#v$h@p4Jr!1gEj|-Ej5micTy#rMFNv&j!6|n75ld zb3c88cXfGdOr2oQSeLr&gQedrb*SFs;&S`uA?GM>T^}R)$S>m`d-82cy<}|>>L-@C z;vdz|w;VL*?oOvM?^Q;p*4fm$n)uy+TIXAboTGTIZWH2O&@v~(+LrW}SoGq@ay;$4 z=G!XgwET|m$=e>U=8QT~%4Up3s-@q=@BY&|-#+9-XUhp*-43a3XP$(%0ZUte-)(~H z=l;UER*nyax$O#$b_2UU=6yBBtfLMWb8WJ4;WwwB^?FC)q#U-}h|}dX_Kf|FcV6(g zGWW)N%V^WF@A{Qj?Zl7Gl=s&%_|D2XEx%(A{_pV#^*70BtobkA$ICnzmN5x_k4>!e zT?fs%I-a|aeq1>ouH|sVSlT@NZu_kB@*(FUe%tBu`~Kky#AVM(TCqUeSiGB zhn%CjGHaV6p2qh(&U=rQcNf zRe8nla%-LM8FE@f@)q6gam>oC*1bLNW0#b9KP>Gmez&*Qd0@y%{AOEV>xyq?I@yzY z$u%5V>62}*fBwgib8F{}vD_PbT6-M9X{>(pJ@0=<=|8dbpXx_5E$e)5a?UA+&t1)Q z#{R|{AE?f#j^KA)aXkMsIoIc;qj*|Z>>K+VOCQe+6F)3Er8m>I&i4)Tb`;NDUEUh& zyz?Pff3?H}%QykQ&$F%b{X@=?&Z*-xR=>%;0ra0()|SKXHRi1I14GV5n?6|+cz5fI zGGwfIKAmst{2G6>L$NQLb^h0obEI=y$7#&-^x56P+z5cy+(RGqluwo%>;F^YLR#)-J5`s>+$)6~gANX{8vP!CyeNLKx(Y=bHyEhp<33x#qafRT|cj>oNXI`&K|q(%Dgp>@lVNjT~E^WBmC}H z9M6vpInmj2f@j*JO)zFYnmFnnO5HPwe-zJ;4>>nGPVg+o!D*~{KCQEz_j&P>LvbB{ru#R6J6~Fp4G?TG>-9liRYuYKeSrnh~M$F&g+JpE|bX&UR^(V z_K9`+cy2|OdWs*LX}JIV)R1%0wmJMH@apa8-|=CovX|3Rd2j!DX(W7m+RePDX;iP<@U2f&XLa5<#zWQ zA6eG3qGs>w$5PQb`|6f1>MynXcpcxgjSy zTTbw1b4;{-#yTH++$TR>+8r!lM_ z@pPa4zm>DqwGkXWp2agbjXAgFoStVeWvM&(v3cBn?&=FePIR@L;1f!$^7niibKfoX zQ152ayO{8Me#kn%SULAZy4uj$;{(n2>}MS1wDc!>CyL&Ig5Uj$b$+RGiVusfb^~Xb zwAYyTA(5xbW92D+=dE>qxpKC7iO!qgE^plq>7EbGk!wyIzt4HC^DC9p3dTBJPIFIV z&iN>>tQ8|mdBr~}w>MVKo9GIy+R*KCnqK33eDP;W9?*yJ9hNy7{GO|^&Y!vqd+plC zXR~$rNSoktn)@5abLVBfGp<3h?irT#3GsWKLbpSUsbTtm|GTz4##NStudF(bn!ty< zt>TiO^slR&M^A^#$M2Q)D$73BdCUYp+-((?{G@N4$4-aK$M2Q)D$70xYTh0G^Hvl1aJN-l@{_*L9Zr}Imyh2o?Nye2d`;)p6Zmkq zRb29u{#$C^-ex*nK7OyXS6TMiTRBghz=yl7;*x)!{wb4i+s^Naex%21O+UkLjALGJ z$8_y^@tpEgszp0~=YivSyCcBK5x^POARi!WE@?IA?UOT(XHV0gZHA^EpWo_?{f+N( z>)$Es?>y_#kFECn6aV-u{8)}D#=|w9cbJN!hP#1J8Q=S@^N}E4K-!PfDldSah6VbL20KpL*He z!nNzCUtKL+_(z=IY0fzIy1{vKICk{+(#INI=*7Z?f5dsGNj$C2Tg=<|k#&kI*6=Kx zSh&QU49?r{O3u*Ka#AmPY>r4H_BR$6YpR-<_P{ZaLOEPOv#L4P$Zf zzDPK+aEd$ke{bcybLFI*XoI82j$iI&%sdcWvBqw-yDooxnIFRD{?<87>6w2XX!!XC z>~VYUYpn6R){)n`@fy$P{vIdXbt;~S&(!e1(PMMOFJgaV-H*z14xIa9IoHKMI_EvZ zocjuU`Pc(zhxdlBZoz4M?ERlp@|1Pd$zv?>#E;EiIdAVa6;GtmZWp%c#}{D7FC4MI zG3%JX^_e|CUoG#=#_#uMyY0LCRJc0Mt&S6Hj-FFoyo(8LEL`}_>Avjyk~5OowXd+} zM{xA`{O&l6#l;#1aAM&ScP6<}>&lr^!&LwETtT|PE;H#f*82_~@wV?R=bu>4JN5p9 z+~4ab{LoZ9#HZ0oKK9scK>Q-UH`X)n^v^lJw|3SuzILnf3_LbDt@A!ZPReb|2{uR1 z$=pAAsySk@=xdME1@Vn4h7*t76s^H&~& z{peIYkw(waV{^nWW}G}ji%#xMmt|apAKP<2pmOFn`8i8JTws@(a0I8Z$_{JeFo%Jq z45=(-nm*6|@hLs=xnBRveCzO5o42v+9J7W2_dv*M4FlQ5!fnF2lbF`_>AxIT_Sm{| zKV!v_HRXsWmN+V|xxf3eCrrf?dDV0D*c|bTS>E3BF|T<5apZb~EOEr|czR8;7bIsP z_Q!!PAHg%u*wt8Zn{;&tc&dcXEEb z>Ui;xb9end_Xk^7_-35q`pY{!r0B%LDeg?e@8Wz(a;Cd}&f3=Sf@hrJGZq);MC2_N zPH|_le#ZZ$Q}J|p>-2Je@T@Gy{>EH$r0%m$mMrxYKQ_~FJYQzcrmSx9e}`wH)H}_54z{oxgqk#5etR zi+LMAFsHbfn}HJx7k+a(Z!et+U&N=~N*QV#;MsA+{xiIweCj=B?R(2;^D`ljHP@#m zY5%+2uQ~!-S9*=5@2aEUP;_F^C%w79Igh(*@pL+!p3|TCVt-?CefXP4m1`SVIK`c5 zxD4HX$ho&GL*Q9i4o>432bFsSt~~w=)pCyje%~wLal##koV&Wb1zT4f_e`hs#WTZ2 zCl;O3n>yXzo>4jX?#u7^q&O;j~i0gtK7Zgq`oZ?PSuLbnbBfu%HcwbQA#KI}=q%+S#{R*;-67Fv|1(+4L!E5*lVUUo)0YJb$exQ+3|%shn#K=SFb$cu|it zIgK?2(ORuqn-#z36Flzwwd9n*rQO@)D=zR%XZVc2`lQEA4KjK_nS9sQdIui5p)lx_ByRKO0 zQ8&P|7RTMjZwg&K-fFb7zwvXgziZL=gy(-xwdlm}y!G7M(S?(|YUgJ5z`0MVbN+92 z-g3@I+O&DHT${u1Yjg){8GQ4XO3HA?pSGg2!y66e7>&inx@T}=;lgiD*UzKACZ5)g z;^{UZ_cUgG2>MORsVw~_e)pd)Lq{J0PH}M`Bb->c@SD?Z!ZAb6(HP9SdY$6B^nO#} z#KI-++~4D&V~+r*xNbc09)%MNr?`90Z+$a8hxe&Ia+RH@{`GGa9OaO*s%=-4>mJYA zgxKHst-o=0xnJ>vPkeB-%$MNzyovj=Z&c1b9cPbs*ZLJl7MwF&4wmQV_yM0!_dS1{z1BHvuY2!v@4fGG-PexNdZ9#mm+mee9v-QRvcgL|JOa#r zo;$Z6@G>M}GI)5qA}R{9y56s?U_@V8;dBK5w+*2ji#Khr9V|8+T?Rqr%mezd-#3N` zrA*}TQnG;f?{-FA9K9>!E}}|;q)Bq=grD{_KIUt?Y$ zGZPHt5II70{mJ`3nM?sZ$3rLT#S{lAC`-zB!DJVw$e%pO8S=X1A<#IwHsQ|QD6)H% z3A5M$eUS2oVE@02j@Y+fH&e-27n(nu>Qv-yOST1Th5taDkQ|MTn|VcCKuhT25l(5Qy5t2G}|6p{?9iW8mvB#Ei4 ze7x3E-6dtfb5MJM-7Qz-;rF@p16g51_C<8GSN(&Q9CgfY8mha4Dc7&?r|I|COmO`f z7uhAdc4q`nJ2Y7hOaccZLO{{*MtJ2g;;eso_wE8;4!^-r!U| z@yg@_Xo!^THE_kG(njcX;^L!VB>kO8a=yCWhoLE$wdL3;y3oF-`K&D1{JvP3_fWQf z#0KzKL6k;6QGSIaf43&hLOk;0pbVmH0pK@(M>QQkb!CpjE*w9!0fXaJV7#fK@hDkO zkw54cpX+pH2GMeYMJD{3p4zeElh|(cw=UPJjl35SjgE zK~Nh(A7L>GWp)6SJh_4Y+aw1 zO?{YEvoSX?MXf!1Mq9=A8rpCU7uV{^egK30Sv4nZyva7O$88`!U5ij==g@}kIX|p& zF7b=jCW6;w<9z3cQ%?1e-g77(HQ(ShvA;2+)iZCE;O+5icgzQkJ|b4zo4;HBH5^oiGm?I#o`Is1$=hqLBTOcIx^aq-LqP;(LpmOe&FE6dY1Fv7 z-Lq7)yNo5cd@f-yMt}Mt!=@%AD-RfM^ydw@e9M}?@F?I!>uJEL#lx?&PP`s&zg=EJ zmo!KDALg!jg}m=;1QubGTL6gmqUpicsAVdRTE$aXC;cu^iAjZ|3%;M)GmUOZP{uv(MY9~$Mxyjs))DaE=E)c+7+@?D z7F$@dgV1~tCG!GJV+5PB60U)BHn070XYh%e9Zf6%=#!(hrh?ZFi09+E^CZ%azspYz z?_cxxBs^RF(1nzgQK^q%<^;W`ztL5qhoW(J(0Bm)Hj@UqaM@`NL^sa+@Op_laKuucPk?Xqk_8 z6*wH}=zX=FOY~cb*PL~~Cx2~}Iy=i}Gie!_eu6MOQspL>_uosj2Zt}YB+`b{q6N!a z(Pg|#t=xYZr-HhRZu+Z0RR-*ks?}@e4&zFI6z(nI0C)~)sZG_ zdq%$12C9Of$@)6lq+PQsc9-@tFYkCXmtDsj20y_O$37Q8T#>7~t0U|w6fOC3Nom;E zN&*kvSbcv+7k1+d#Sgh3D?z^m&d|1g7`?nbIAI8Ds$Ib(W~i}%G9&`!@Q$Vah%7Bp zKAF6IWOhUv9L}8-tYoBR+UDCGjXE@}+ejkNJq$yaXti0iY|;O1jp3ult1TXcrzH_< z1|@0uMx^Pwa%?0Z+2Y22;pzh)sP)YoK<@YXmfyfJ&v8I3#gj1xPWH?c2FG`WpNkS))|mQ37qFs?B2uzoMNf4qhLB!rx+N8}=; zM&ud1za{`(4vy~bNWU649`9fjZ_L$ia_JUJxl8n{USnd06+XS&`|*)kgTP!~kMy#0 z`xNeD0$!ot2j^r8@3GTo;i7H87Ae9#(89neGvzoWUnuuah6Nly9`Cd7N?eb*TgG6f z3vqc8uXcRXE=8+H{s_*+3#%2T<8sr$6q{Q?BRqGBl=#3feMeJ+JCxqwA$*f|xUcvn*zLl6EuLgDvv1 z3qnUdhNif0rO^%(WcrY&@4-r5<~eB$-g?vgF~LI=FjCb2qQP%qg)g?);r*9G7t7f^ zN*TJtNQ$zcB&YxrDN&m&FaOa%|!;G#of6T zOQ+|?uwaw3m)D6vtz{7YaehrAPi+d zG6}+0fK`qjFLq#Rb_%dm!BmvGu!(h8!7PuO`#L$i$IU8#=vTRM;SL6vdbj%Nrwb)i z?${;)8p6WT+&Ip>O&>}Q&#@p`Px^3ed|bS-y?uO;5NjJA!?|IqS}NI(#$2W)L$2O?>CBK3U+zpnm5!7wm(0Pjboe$(_V8 zGNL?FO(6{u#~|kNx0Xa)vLbo=V2ir9>=wKSEV%W%;H%(fwDmF4&57}3KQGftfrytM z?oYLWuC$2GBqnnx^+VdE#5p<4K<>Q`k;=~Mmn(t+zB=);*FBt0V5bq~Kz#K`geI*( z%8ioLip-1q9&fshd8nruka5q2*wa`CDeh2X;TaJ;reGoDy*B9>4y9|xZYkBm^6SDC z#Gbiyeq`PG#)Crg6GLy+i`L-MXO6_kq5OwwUC{(YVKK+CIh^r$cc z@r*L#kj)S6PD;6+>=dtn(374{}s;Aamv2r3irSts=>&$$ml2(bzMy04s{dm(X z-AE_D*iTPwj-X##ItM^jV$?i(8A0#|UI3e&<9W8yY~{9iYSqn}#zWN_E# z*nafX%7P|#cnxogdZ!-mb;i$1oRH*HePGx=VE36+hEL|X@js;Y38m2?!WEzg{c+on zP%8@yRviIMK%nXe0Oxd$6Wo%&`HZZW)?PH7;e$gHw%IJWocR9Ct>7yuNc66lMA@Ae z-tTvKJ2#&~{XF6GsbKqekxZ9ZFQ&!Bvi#i4&*a0}#RpjOsc)5d$L9CJ=80b^yGo=_ z*X5v}K@r9izOupRPs{0~T$n-fvr_7Rfyz>pHD&*zv)WW;m_aLqRwz!oDDpiLiw zCJeBS>q0u65cb~?d|pqssLW+V(~_&Df#cuZ0MbNG%})2UuugvJ*;N3pIX$W6xS7B1 zb6<2JJy4C4LA<-0R*uwYeft;~ z(g{};NJw@&htn=RuesPcb3##!*Qt{ZnxjqT5D@c-&^oIb)9IO@6U}Ki!MoT@P-mgW zOmZ939Rfo=^s}xQt_ZR*(7BDLTj`a52VDnS2ml~@tlYTZvcG3C@6xT}t*Vm;Z+q0pj=p!~ zKi-mk93?Tme zyWGiY{l+-Q}q&a94WYf!h}}?FL~OEA9aYTZdI(FbHC2YNKtZ!hqmi775If7M<+0$SYk-yU$^3Oa;&KE zTCgTgip@;Gq{R&$x~$=d;&Wy8^W2xXU3OO*cmIFypLqJE8W`B{w*NC+yWDS)QB7>a zpW>(wawg3WwZUM+s%~)wWQZ>beod&&!4>oFyPfInq<6~SQvqV8i)Yv5MqSLha-d>d zzz|)(CHn#D5jZbpjyeOk)Wyi|;g-QJ1R7o&oOt0aesbKc4uKAv;D>lpCPgA`SB9j2B(c5=^mI z!#6|G6ts#hc6VaJ(f_|2XdXq`g^N6L93IQ@pP=&vD?BYnY54fR1+s+6+*#Yh2Z!Tr zJS>BX6OV4FejBP(Nu&@p@5vEFtUhdOyM>C)zW#99?!z zbb74t+s+FcBf$(X_w`_OMMy~^ri_Cb1XV~;%zIuQH|qS>BDSc7_cgUSQs0ucSJ&Ya4M;t@N$v-z9KH)Ymu z6c8q530;$Kgk*%C>F%@rHnz8?_0%iAYXEbt~zZzJyVXHv+>n-8E*j>{GB z6f&ItJWb;mwhcEh6`TqW2dnWOOt3oI8ZA<4qQ+J>x@zlM$h8%u;v<4Y72SByL5*x< zhOP__3P$SE5wC9Elb-3A2d$Bq|CY6#9$Rwc;YiiII{guU7b5=me96kOb3*m~UmuMw zNn5&yxY_L+3tdx9Jt^z|kI>=&K#VM`Ij%^4`p48Dmw=b+4@bYf^b)dLsr@U_5%Oel zV=nvozYhcp_hW_WyQR(3Sp*II8y72?gbUOgmOhMzNyb1aU#19T@IY@=b&o#H>6{Of1r9C7<{Zkx^eZ~a+dASgYAw_ z1jFU8tv;Wf$Be4>ZJV1k&7V6Ox5_*~pJabdZ>rkA^T$6+rLtp&CYy%H3s-Y2m55S= zOzld)?KNd9B}%;S_+F`2RZxt2~m#0}N?YiWS zQ9mq`TZ@}Vg5qL2l5Bl%v>Ig;A+e93m3xC0om7(fdXx7HY3iHPqVJ#Mh3Jq9idrnX zmp||e6UqM4%EnLY5#`@uc2e*81wl-G%$joUB>{*R)4Bg@iPuKhwl}&th~>44+I1VkF1E*$X*`Ntq~p7FUpV|C@wiYg6&nv^Ez)sN77bk98OOMj{I zEL->V_a6bChTcx|vcvv}Sx*IPCP|H8%}s-n%+_zO*J@o?Is4SszvXy|mez)@rHvpN z&yt#(U)bco3SPV3?h2B?x6qrM;XGD(neA_w!FCFr|D>W-dZ6&*>ey0}7Ej~ur<`Up zx#meyeJTQd0&DY)izh}$^vg?n$@+<~lzGd!&#J#J^MCO*bzgU6wp{ftUi^6442n`2 zViShIlyytV8#&)SoZ1cVD_z4k9Y3JjO_Kx@uv3J`D?8;S7+I6+ow6EG2_;Lhi>6W3 zP;!AnFcB(zHWuGA9&5rFaaM*OZpE|xTAyPUjzDc*K``R$v3!xV#*fNX&@y?xAwbgt zT2>PSUPxr9#C`peH=>Hk7uI%tHJPt>2r6O{WL>h8gDxcg$Mb40-aP38n;^L%hN^&Zb%|t_h75dx&40%CCT(+6Q*Vw2Ako zGXL$PRSbg{NsV9uAQ#O2H!{u4mk85;SXoMPyu4;#gNvL9`n`kAo*$&?@wKw|Qe*Vy0XbI5*b{lrM3y)^9}ie3Am>NAd)>4a<|tZ6Pxedi8Y^)M%<1urMn zdMCs8#8+7jdM#4-vZOjPOEIm^UUr|lEFXp6BhOhJK1#kgXqgK&M<>a+5giuOi2g(T zTua=`(&t&oOEtWC)^cG>APkZDkP?F-`_Mkh#_~$4O@I2qbM6oaN=&A}BX(C!ds@Zm zy}bVG)a~L=@b8M-)n`wy|BwzNZa0H+aRqU@uhxZQnYz6!ImBcUq#N-Sf)Ye6DGS*w zahLbr>S}XOtPPK;W!y?kO#wA_NHxM1d9xq)EBW-9-Ntt&D}z{+?kTjAs4y!ijf=5) z$XI_|cDLy>J+QT*O-KE+A}yEmcBk ze4dA~kLB~BIeL({`Pr*@Z4mUqX-$aW1*C)*{D&}<6IC(W-wJ&TxJ-w+K8HoE2`2o? zLbYsdw`?RlL&`<<4BP~eH=A*{nj|E7EU)hp@NoR6gY55YP`X+>r=`X^G;7shHZwW^ zKWi~L9ua3zl0{{5xj5TbY`{Smw1s41Y~6AL7rbCDdG=$1l7b7hq{`%!JYju1*zFSi zV%nfFp?#MLZ+E^quJEvo~V|LUK3EQLIJ_B)J!x&#L9Vjt*=S# zrMd=MyE;E?Q6Ri{ZR~vdlx^1IE4Jk`p;EWwb%o}!0^UdQnL&F;ph5{nc>L-`hQ!x6 z)5dXrKXu5@Doqg!!?oPYqE7nhS0^>C5dl44R7BT!LCCel1zfP1Y`%48c)Ahod2!U} zaG(}uD~^P0^v0c^`c)<4$AgAwr*rRuwP1;qLh`Yh-}v}E_)|?PM+%hTjj|#qDo0OC z2pfHv$gEO41Amc}T-JO^C3FbvNX$ubxz=k*x({d=!|N4{aka>?qsy0Kfh=4N0Nb|Su#QZ!rcWyWeI)tej`EKrlBEvBZJ z;Qmy@+Fj5qyb|{x9R4gr7b8GU2(=?nptHl1dfltMN3Ywg!#40biJbk7C}z71_HFK= zh`+KFU7Yu+=#$IPS#i#$qE0S3HxbB5Y1VvvZ7pTB?2JcUSkPlNr&NJ{3z3>O!L%v|^BS~Mi!&g|`P zaZ$eE-$T|W36>5% zYaZS!fpc!u13Y+{Wg=RpQl-|qOx%fX;F0=oK$k%Qb*G59SS z;m02THO@@lGBN1Qsi>k@48Tc`hu>+aTgjVC8z)P4e=^z=Rmgg=!b$q~qqMS0=E##2 zqb*w3N|fC$)62Gqk*|x&ugIU|?oSiQ^7__(dt8-_TAa6tp(WV)MeF+5_SUk-9Ub>5 zos!V-HU##`xWEVLgwD;^LOp%Al0<#BwXyg6Zv|{Izux@u@4< zf3)%wlDrZ{X|x{s8Cc-x0UULs4a`E4>qmjk4TYEgBjjaU;@LV{ra&5=T)zUm{SEP( zh+Q)``9)jC{T~^2WwjK3ESJ(9?`(;GLh5#5o^9l33vsl)wg&sU|ByCu&&h`e;$H5;i{w<@5itePf83&&$&*}Lg*D>C!e55L-#fw|zly7-#xZP=o{KiTCg@LDr z4ZWl`OJ%%Jm%`}BHP3kNBi*B&Afe}DS*(vi$8dp2wT~NSnJ#R*+BVTQ${&b?MGzW) z*u=@E3a009La1m$5=my$*P&k(+{D-7-X?T>i`X^zqr)xb{2tvz<%{EUBw|oI|1vq@ zX-#tDwuE@~qTyQQ)!=Eb;)U>^X-McePkXYASfKZv*B$T3g3gWuldKIgqh^~OY~BfF zp|#@ubOZ+|C}u}gOS_z#1m2+t1N7d>F?jsa8S)(jMW={ zb1l#QXh%akf4DLwPEzkXu*MEsgUvvwW~3hI1pINob|-cG^Dgivez)@5&R0qa`|_Xh z$P;VQv1xltP5#8ZK&rUoiluD-wCGWmd6#z+eepgwK4QsR<*iLune-6cE2*npf;At} zn!)ESw5VR{#CM(@KAiDgU)Z8Fvrnr%UhYrxYk}^}8ux1a61&V6iX47;U5A2-Ol2nL z&)D8;9%Cp_#Va0p)D26WjmbB>?#g;Hz}DS7B2GiJ@ox6|w=$hO9yQ%mzOc}Bwz-4> zps#PzT;|2eGuVs^^1j+I+P{wso^K>`p_*f`W*>( zfMsaVB`+iEW17s_G-oteVy(=^?9DnooA1RvNkJ{@h>txas`s5Mo(@Z9ZvVqW8gbb$ z?aF`(Yr6?Cg|4obtt#zoU6QF=I!U0umGfLlgzP?AD|_BneZSYb*`qA~4#VEK1QyFP zHb;>(vYmzXB;3B|DcUzKjm3WEpk7a0GkbZf(P4#qSGysb3>jOy19x8FX5w=33w*nm zNkY$y+I+b&AUD-HQc# zf{zU+@GdS!xt3CYh_lvTHi z|FQgbmq}}$Oh-j8xq|Y|7y7^r3=Dh+)ZKs3w#tUk2lVQ8DgO$ zMafbSyi6dPa*6c3J0O)Ks<9yDDf^i)yQ0LeNX`;{f-GZuO^nQDkPk;3ZV|r%$6W%z zrEly|Mu-HVE>0h$Z&%7LEt?n!m2a{5=e%HT_$_PfDCIT&0;^8#95Fa!rJ3;Pmv z4vFjF03h)9$BU2zLQ-fze8at5!w=ylol~x1io!b=6WALw`IGTi8cTyxhwXBmpPuLmjS7NLs-$E?&t!N~%$7y0a4p zNSfbM-Px4cI^Od~HqL$aCO5vRZcEFlMup%Xy9!XovtN))krkgI)^c_FxU=%~vo?Va zR7vX1y-NS>zpw9`DbLPC8zwAj52Ay<{R~lRwBV$2AWjZ}{p~?3aN3p8)Hewxe$I1w z(V;bP3;7RueKuVo%Je;8a3Z$AyC=BH8G)m0viEH=~;XFymy=k<~XTJ!Yj0 z-`q&i#76AqA^re4ZT!MoDLKsQ_(q0@pkY}Jq_PA$8inr=%!{g2fU7n_nq~UA&*~+j z1`eeG*>99KiOVAo!Ql)%khFFy$ZM-HGHGFb0P6!=ryRBU^Ig2OLrQCA z!s1aucsmnvpzH-?nc;!^LQC5G+>#_G{qNAGX6lWLSQb9htT=}IJZO)qd*0u(Fo>8d z+hsSf9@WX8wcuMyiJxUGU0ge2VjwOVmyM@O_9S=moV5T$>!q$PllPBH>D$BVTo+!2 z2@qfIdu?~pF2HCfN_fdE;(aJcSj-htd^t~J>fAvK23wyTOP?YJwOXf`Bu?NH4cADP z??gTeFJZq!11C^bp&X|M!Hv(DgZinn_-Z+|R5xf4_9peXd6WH*INH<5PicI8(B83n zVBt*)@?Lj28G0G-G7!5!;QUKb>h9;UEfr~{u-}VQeCBkGX!P4hp)2_1K#l<3%wv;A zW_D`Fj4OZ>^n5ONH^D~Of36pOLWey9iGd1Cv&&w09tmzHZ`c3OB1N1 zfCpJwDA`rK37M>y&<*i}+37ed6^#0PbV4TI5rVk=eV3@r_1s-B171eXB#y>X4f7fp ziqHN{aQc>i@cr7w7vd4bH@xAvCK?w07{dOGVhZD6j!T2!uL4LEu@D zJi0%joZ&;#q45GZr8Tp0#kpG5giBU*UWtXVUf}4>!ar*kdA!oJ1lw2|XjM$KjZu5Y ztTmhd{m9dQz_7NbDaR!(T2bmM@?-sm_Ox$h5IG=KY;oZQZglqcurQ-=xNjplAY7U9 zFVyMeQ^X>b`l-~4yj*RwOz5CM4wQAKnh5`ZKgTSAF^#kjp7R^PHMYEy7Y*5aQ#qHM zvE&Q(Ul`{rYGa^*^=Z9->(W5EZ+=bO_Jf%Q`z8qDLGYcCm$Q7TaKMK#y(YG`@{tT2 z3o%Mxp8fp+vw^)yiJ*BWIZ5Q`&gLwGFeDxk@O^iC0NdP0#J(gVc~06r{Sj+@rEd4T z@tet~1if7**ZR%f7eqeP+ZAQ;U)|vfbSG@omX~jL-0D7urkL7LUzRON=lt{XhayT@ zy@sUW=)v%0?+B&}+n{25#d0OCRvRAs-x5c(O_pNl%U&IxV_iNofsB4vsd(DAt9Cj46s8<8yi*C3a+HaTN-}S7E*;GXISxs zBjj;!*!;uo>vgHOE$J_W`?UFl!)v)$CyHljT~8)xVOsGiSl^-G^D$8PY)d`uM=GJV z5=zBEg}K+@X=&Z{e+G@Qau2wI<6pIx$d}Wkppd^;&27v%UV$&}oNxxRJ&i};*Aqca z&>KtDQlU&srG}!k3}RYp$=hGX_bP16M;gP}eVb|rTB+Y6n=U)7KJ*Go20>IGGJoSZ zqkP!cAH?3_4@%CaT)R$C_j6xt4Rdfbf!YUiWuo`v(N(RQ;6UBz3n0pxZ-dCl>l z--4tuUYl%;7T(m)-k_;*ORZXb&rGr_m00b2 z+}N%<)fGffuM0;#T1MhIb2J>oAAex`X5xfb`f!K|Y^iCCuvsD8x!&dX@IAwu44ryHkl}pdH zb$sBe1K$@H%m^9vv)37F8UJY+cb7bPRIYGRVwf4G4nLVonbQ`;+r$4PGP5?HBO|- z$NRF2!^m^Uf#i*2(jE%M0o;<#U;E5tsf4z7s-7g0ClnJG{9g$Z{l$UMKpgZ{!@cGww!~ZOMrahJ-e`M?+t)&pHz&? zj<@fg0nlI*9FV%9H*6#Y0=-@TP&RHt9D7UmaT|z6>B(FWj1_XiimEMycAm^>fXMH` z&!vGTs-JRiy$P7u9evMyzOh&j5WWZi8eYYTk==W@xgJ8$BQN7Q)xYmjEp7?RZ@9TU zFC?nj3h4A2EYGY8T-6YvrqP&;Dz?tA@S{prYe3WD*nU7+gk=RKXGkjqcM(%30T;*x zB4$;9-`4AGaTcoG{rUeU6pabTb7Q6W)Xg&Ap(baSR3~UK`Va0g+zRuUj-0QYupd}R zQVVt`d=P}^?hpZ2hE4BzB)xVHSM1X$^)>C|*)`xB{^B!Yc0NSb_T0YI;o8jV#S1}C znBavi#V$@Pq1X(<<_#NP)7epsl;QD~%_s6jqNfq!fFXI>jj$DGNH57N$_)2kvAG+< zB)c=sK1}j`RF)!!f@QP478_!!!4Bdw{C`05AklB;)1K>CldRo9vT)xVDxz#fi{I65 znfr`9>Fk{S(M>3JkgJrcbxOsT3qtH&kN&(^7=)>_{PKPTQCg{ov<6MwV}}2!;5s?vA2GU@sXh?2#mIAQVS}C`699CyNU8Q| zY`HwxrwABbbqL)fTGuV3Ls`zZ#_hm9LCIeF*cRxZSpr9o8Of)2=r}=xBu(!iR;UUl z72u~7D*2H8cD6?YDMQ6ivLHdy5V+4&Ih%?!427A;(+jnHYYQ-BhXz2DV6W9yiTl;8WK>+cOd@N{mYi>;~v{E)#Hd}Z_9okkMeb#=F!p+$G&;P<1qmwuW)uNL$pZWX zOs60bZQSBkw570Eijf)8u>8&~E$YfF5cG$T@rGF~7zZ(YH+M|cUmgY2?QkQlOgf*O zA;^kcnWp9>!bgx&o>fS=Ue#^EY3oB0%}|^3Zku_jLv<~Gh!D0}YFc6@jkuq)Yho2hME7v} z@%ADd}K008?M0rOfvIr6;*=>~`HLzyq*Bgg^yAEDn^mK-cTy5#=X~w6MD}kUWrl zW9NRIPd2>zl;5>#?gBJ|ntS}l=NYkGyJZoijzW|x?y0PZR7s~gh5!T7zlHQGrMd9= ze_)m7CyGE&Vi1eLA=4-c*!(o5tKj1=Chrply9p0s-(VYRyi*-s3uh;5bGyr`WA^0T ze2r`zx1c#l=+)o|Km{}1$K`R_-E+ zoa_$I(frs~^YF8YpMiW^fe}tMCie{{G+W+HJO`?qtqp>aZR_up=+mh-AVv`XPY=el z$sS`U@RJFPFQkg_yb`}&)BIZHUAV^=crpYB9|8%v4OP{cQF&G86Ls}pzCV8Yl`$Bc z64Xw?ih}U2NzJ)+ZroR z=N0a=MeJWlSNQ`Ms4c4(IV|(}=t(lZF0+b24s+Mh5oE)k9L&L8$#WLRI*Y-;6BZw& z&F25gzBAX)bzRSHDxrX(2ixkB$_46xOOwtH5zRv(tVFP15j z+br?{t7hJZHz1I+>qmU~;Vu#y>cOrlhx7*gdfDl6(yGah6TB|*?8=M0%qZ&RmnYXc zuTGGC!z6|5B<@7~5s5Y@{#UP1VpqTVT*(R@vIG}I3)}`=4)7RkAlRL1VbC8+@m0je zhShJtu2^SmJV#gq>jHH!l2IZR%>PP0UETyH%}Byg%6aidZEXhzDH8qWznc7%^F(FI zkK+%friLi}$0UN5;c@WT7HTXIEnvz0vpsln#rzKXV~+7H(e`gy<}hI3=(I7%nR3g- zYm2IyXj|-7kTm32LL}c~zr7#;(=X-1;yu&GZRDl1UpD=?zPDzcMV%iNtt}_mjF-t@ z3ss}P0v>BwQ3=Wd`?lz`oK(-iq9blUzdHdkd|0!3(@DMQ<1R2>!FLBDOIPwxHXea~U(`d8Q! zu-Tc@Px0<xon#Nc+Gl*Vf&&#kPMhGYnb0x0tG7q-(1F zA@eTJ{vAw|xC#It6kK#{xFqT2A_n~zxt9t4zq;>&|0Dv>!&ae}`C)(9Yf|ll?7zpv z%Co+e;Cc2Pw#&>_HJ1I4bW2qSCr|jx03wEi=&#qzS(74(zqA(()P|lzM<$-DIcWi z88@9`NZ@^PB!kL%I*H<2{)Kyhjl@iJ$B+i^<9E+Y7YM+=wD zWyRl21rxs>66zr>^vzZ}%wNZIGfc5e)8Nu6?s9F64j7OLiRtw7llR_rnoH)+Zp!Fk ztF!O;#?&RoxdzDAe-*%iMC8lon!_vdq1P&`MGr&*B@H8d+EeLVS9Pe8C2-C`@@ssG zH8Sn|ygOY!&M}fd*n?{o$Y8uC#OfOLn_211Dv5UN*Eh--_8rz^%(+$Y7fIWX=5)3c z+{sVFph@EUH|1F$Bjf{qfI@s2;)v|-hRr+E2BTjE?**Ie#;igscFMfA41~pS!kNqu zeC+={vD_bO|CYtwlhDHW+rjnSdoss$^E^2*)jFLhO4|<|qE|Mrm+6`XQkP+z7&`@s zd%MMCJ0nrUrsztSM~o{(_}McJf?~r?YRkq{lFxVY2A`u+ z)Ej(PvrVDU9LluaMf`^*>=5aw5Bt*!l>TVX6|S-1AmHqE%m?BOG8It~u&x}kbBp?| z>!_ASr3CAA)pgV>gnMiI`8>1v{c7kSti7BbwM}_uH6Eli_lB`n-an{wFWVO7Bg$@d zIO{@lQlT@xPWXPlLCh67;B&Sc6t^D6Tul|_ZvP)qsSi$1f2Z;G6!xwwH3^VJS%x%fr^_3^&kvH+MI%s?~^RuS0@tpHyR)4d@Vom?u8E z=CpU?!}>hrlI;S#6v@RGHZ7X@Oa45V!I!-3Cf;tLu*J>qwYND zAnn+5qp!@?VDX{LX=5IChM!xs-o~hDs%Cx|DD#78;xXfokH-o4mB0y)YWlMD#+#q< zuz~T<1W&MDFst~Vf;Z;i%Gazv`n>)6@Ef;SZ@FEpy;IqOa7kOyP+tw~@OQn11u3Or z`=puW-5phK?AtV2fmiKIW9A`*c@(aH2XK7UK4h z?&lWDM)QW&S_ih1LRCrDVV!6ng#Ek^O`+l?XM#I6n8xy(Fa1tkG{boDWcghjv^M)p zr7R-`Va_gh|GXco52t=$YikM)6(Q1k{HhevW`iLsnx#(!3<}gu zalftJ_a*6E%cegJ8UNbzdcGOreYXZn=A7qG(Tl+X0L=j0gZmHcxvFbZyHN0Lu&qi2 zr3ZlQ&LAVdCoVqQY;U`@e%v9XQxH87l)q~?LB4#yT>=`TFC(*fe`_&#zh#ThB18T^ z<{&&YsP26=Ebf6>M%0wl;F8ANF=k)N=&L#ho)9f?M$7w8h;6rG*++f#3m( z7I$|oTA)~QDA3}C;u18pSSS=IF2#y_u&k5+-+P~{bI#afpPSsQi+maD%UbU@-)GJ@ zGzc7VPJzoF7y+Q`Er&~9U>y-qV1(f^<<{M+a$sxIGdaKsB8evmn70AyQzxTd!zH}t z{@&!Hgf^I^J8?N{W|gShR#*X;a37h%`^>r!G~X2N>R4`ivO#r2`R%pmbzD9 zKDjX{01y2k=rHl)XqO#dp-lBnHeyYY$=88aUOvJAx&B{nBt~w{>h$t;k^gVTc)7mV zgH@9;CFC$3&sUrI3r%`)iV>a2fNGYZA7udrgd?>8{m*Cj2h{R^<`#_xsBt8&_`1!H zTl6vxt9P&Fdph-VP+AO=ja=)!{fGr~w~TO}%|mVP3-rtDLxD4@^b@jIUHhrMSq1L= zmZ@JIyT6835{`H?%#mvhqlROjq3ah_XPGr&<5$7p=uYKf`8KkJ+>)<0t%s~R2#cZvAZYY(`6j zOEa(=Pz2*T5z1JS4`cSKyb`vohGz=)y2uH?&COzZD9Ta7*1_lc=L@ zKJKKPtWtfb!;#BIbigs>iYRZ9V{m;NS+N`Q%>&$bizylUg-Q`HB46M#n}#uVvLnM=7fMntg^R>VHNw}0~)9vOW-?qbfYoa!u` z{8;84t~rxbSN&jTqv`nyToV}Y7WKh9c!gfyK6n)CJ^r2r@tvDnwan3?nZT5@?2bWRQ8Y2>+vf>l#&P0lVr#{Cp)uA(=#e%B+x5-$RUL+zqZr_z zEW`O1i=Po|Xla^C?6I_;K{<*z$I}ZF*3J(Zxr9Hrr4RS?hP)P|mHd)1KEbJ)I>o0I zNU(EOaDdSU4F1+0anJhRm!&*4ID1UjYA=G5RTF!A7&&Z;4)Tc7(H2P*mit{wAY=Xq zE(e6^9gjwrUj>vRB;^>omJ!#4f*1x^fq*It;En%pa~Y=@gMOQfyygog-ghg<#MRyU zUFdpAmhOqOW5K1FtN+!iHhAS#amXpYBiVpJ;Zr5&2nt-U zS6XZcU?&k(**+_;Sq=cT>tt^#%}N{R;4YmgdF3GF4xvLN47fU`d7Hj*=Q02rK2?d+ zlG>+l(SM1Y)RhI33=NN~^ZDEl7YI*_c8AP%H?8l8h1@^l$Y&BDssf%dHNV$0R+X`- zs}OY;O$S9?nTAe!TRLk1~Knict>Rir^`YxVK-Z-0U1aq>87CL3$?m zwDQGz*VcuHx&Ks~E3j__HZb-wAuRhIC&QbhZ^28PW2WDaB~#Kt5AGvLBERg&+XEY3 zwzlij>yDYF3X=MJz1C%SKvVb>+W-^fyr3$OvwVSNK;-*yS3OkPGL6~_P?_s=z(yAt z_8gHk5Ldf%N>{kXyDe{_?gVC@63hwj^IqFnEaZ>+*#9DPu-SE5m~kih^zOg<7s^f9 zV*!=_1KhX{Y?gD&IH~m$j_V{kqmaYhXJ|eEA$U6&d z>ac7m><391Gg8`}%xeBL3Cj*Wiyv`nM!yimDQm zw?JsspxgB|{#@<=WLfhCJSwv&Sn*5WD)Z4r!O%pPIcxUktB&$(wyAK`m(&6#XsxOG znBwL^KCW)QQPW0WT+`wFbkEV#_X%<=s+Coo_rjk?3tiXwK>a_#59c6<5j{@BdgMFU zr0=8nBPO=iUv7wVW4?q;eeF&ySijpb6mGkbhJ9)361lc=|22+vNxw}B`ZbmXVy8aA zn$P(J+HnsO;u_dDWznIV{trNE7y4=T@blp2L*RAPXDCT_Xz*(N!8Eg|bEHW7^$E@S zABJDgY{859C$&~&8#b^yJ#SL*5(6{BiGuzc_7;XWL|qognNjBau*pJZ>-dy+M$q(# zD&XgzV>4laygYYeIKt|da=?#D>?mVgBE|qXv+34>?X+wLe|OLPLN4xLlc?;1#CwW{ zC+XiLdX|VBQuB0}%bkRET>VRu;r}(>Yq2sdK2*YJYx8gADS9WE@a&c{JHE3k@0NSU z!o-0jdqqPey9(#Zj$%3x8%X=krxu3ip0;-9aPX7d!P^M4LUq2m8q$G`Hu%29oOy28 z?P6>mBV?vK34l|+@;w3wyw1#OlfG0d^{a$k(dpEhtAA$OJ@#mr_+jy%2Rv${p1#(# z62O%Z4lg<8(oLc$XKv5eV2wN%8qxUNs&Qe&tvHDm3v5|2@VJ_m?9kjP)b)PKtX26FKA zv@Qj-R>pgRQGq)qfj%p|vs(L(`dKX4{OhDD&u8{w)-xfu9tFH5yjxQI&?i6fWPgXh zutWOI!bv+HSUglI3n^|xuE5UO*(kakyVDCk8$fH*wn~9F6wA-hinS~@%cHoB;@S{f zC&PKjgX=2f0_%LC2xwGqZi(44$A*RQxaPXglJ` z;A@=xzf9~;A2SD-8(=8r>$AKOe9yk@;2ZaKGs$01YDsQpJ`#0dWNfrpnz|jKWxR zdsH6&TPat1bj-W5nOv&n*axrU5x?)&9(Q%vbou03VlZIhNC!1#B z|FTm4f9JLdsugTdIUh1^j1T^gK$ifP&Us3vgpvOl7lWiBXx{H+Cl|bmz#ARv-W1#v zY!zcB^O5$qpv>uq8O;}I-HP57-@3bU0Cd^JfTgM*)DaIWB;$?TB)LkJ?qZ#%cb~ZG z`4RqB47H+$d>_sWw``KrIyrJU?<A)4N&hzf=+jJntMJh!Okf4ECCgS^ z<43c_a|?><-O#^JD2s|S`nbGDXefp?5n|1m0RfsR| zIe3PCcG+j+?p7R8a_=2OEbX@0p_}6lM!vGC3EW1-aj8Krav&zz9{y#ev#M&Rp)VZD zFPt_HG1Yk;`UU$<=ni5;(z!M-^_;oVoCRcs7jQ3_Tw3DE{O%7V`UH4vKEotgOt@6) ztT4k@9MTWYP28K&PRhE=7G-(Q?0hY<#8=;9&oPZGi^&k{KL?;_Zcaj`1M`To_Vgt@ zsX^qSY+I(f$2+_(0k^1cn(326-P|g2@9?FQ@{oSMoIDy=HP`VSIIi{hx0}4QXj`( z)yy4N(UnJx{vPS^l#?y}tN=+ek*?$x+Z5lkM9!2GwibEi)=Jj#g}Rl9KAj3XCj(H5 zq))Ga8h_f_%+sskEQuLsCbNOd0QugNd;Dk-_c6l7m6$#83u28aOnb$EOT`!u{qsfSL0xq3Lwb$Z8Cr8l1n9;0?1fk3_gAl%)4gojTjja|rYFQ4 zCQuhgJU4pxY|CT~^b-V$=JERS1^@sp3nD7*?gllD!SnAQw-nszeOIK3zy3s!L|!Ah ztN^c#^B~k}-xBgA-(T80`ZaLrHDI#o3Q91V9IWia&; zHX&?0ji0B-bFcR9+(G2EfOmD7QWTr9o5NWZvM>ActnPho*_w7D1AqWwVylqESXIS# znjI2JJ=12b_D<_}JBo5%+_cttH^5thfg>>T{Z)tQ3Ny>xiPH`6(HQ$F=K)z z+Yc0zXKwm9kie50^NA*ST4GV%EFnStM}>63%#IVAO1Ixyco@#aFM6ZP2o5?IQPDwR zhibV*i41#YW9IJvCVg|YpsOO&1H_1(l5Fj!e4j%W2FueI{}>TV>br05eGDHl?dy6n%1-84a^t=+Z)(R7|TiGEyCOI{BYi`Fi!LY!CltU}h zh*FDEsGvx89p=_D(sw9A_EK~2@S*3<5SS{sLImW6W6&@NM4oZ8D3ys^?KAnHBu=(K zx-|1ISnHhy5}q7|Q571DosVN#p^&gpdrj>R)|-kj&iHSC+((0b1i2m017cq$2Yu1I zggsc5k5ZK(@LFm_iA9`9Y>lZ2a(hepOW&f(C6pI@%#M8cHt?|B-xZv{uO2(k?yN)C z9zZsCmrhrH9r9@rpERpPO@4-cRGtsHfHO9m=lO?J#C`+I#%pXD5-n!H=i5H1vOP_^ z7s;e(F^k+!l#jCH#24)2t8I;0JN!ljn%bXV>gwZbYZ9~Ia$2cjvL(ctVX!MbR>o0t z79VvjJ7WvY3AoEgv%2pnKH99|eaT&!MeUPmOi*juIf8SDn~`ElX3A1T#?^C#LbliP zjW`)7D_`80Mt$}^T|NB3RrZ#ZJ&2VMDiPWt$dECp8L(hs=8hL023xbnHz_HE+-opS=|p~4&isI&WmpV%#hpI7Df%Wf6N zJ9fu~c_);}rv4ANYY8iC`BXiej?9M=E1Pv+)uUJ^q;IdEAT{r%eL+?-Q9A~xCAyCH z_oN$nnVuJFFm?R~9-nk2o8>A%r@B7f>-3NMK&Lb}|6kZU<$YfH?%3f#0C=iI@_>^- zo0O>1XZ+d2nGw#F`&Ro8l2YecI-S^PzW3Vq2kq*Mo4qRga(x1jyt3~E9VQ0G0Su7q zB+BDtEuy6+`?!`k%ILOBXGMd<;1&H82ItH6GLyRvSn%h_zknA+jm`&8#5Q&Dv4?>i zQG=}M8F2~obyte4Ha}vKA9c71BvruApJVW7g}0=wqk(c8UL=jjd9bgf!lgfZP@Cc4 zqqm1Oe#F9Lj}smEwLn^DR%R8|PRMWgR|0?YHq7HeMUYcKtJc5(}T(~!N=$6nB4r1Ja+x~Av` zFR}N9$2*RY`t&WL_|HnZ`ki?vY>Kft?*NvVcbU_{Dt~w%+|Ye%NR~R16`LLo$0Zw` z0FY&HI4Hj)=ICzp`bdA~zj#f-A?#a34DB=YKVbY}_RdY*`@#MExL8ffWU`8~4su>C zHK^8E&_&Uhx!7O+xA*~L+F)m$drfy5E98&NG6L5R7{HEbIU&vb<&O7^xSp1iCBwL( zwu9(`?NKm=&*ugg%7M>ym0gmO*9XOWi37Q~gD!LJZizLJWVsVG*+nro+7)io{uB_{|&fGspvTw~uzUB>R z7u-3=9y~QBSjU2A4aTktLqnzinR~Y|U^i`irD8)b9VPnMtzCMmfO|h(@O`e2ANyca zqZ&0CEa$7!0}g;V=J;&)eKPpF>-*NdncIx&VZ9jzb&(;10P8NkJ7vRTXIP?J_$J92 zh3MM?IwTFtvl%flkB5fzGZ*qVgPx@3nI24b#dk5XSs$sCMg_D;8;8YmLq|TaRu5>z zdfiZh2d8%Ow`76_!o8OqmEv5L-<*Et@D`IX4OrMGZkYJM(VTz0Y{~Ax@6Y%_8bjAUu=M~mm)g2tNPOvpf$8lixRkXQH_5Mrey}bdpp%3fP3>=*axLB zSgW*SI(MKOLFZkNWc9mbpnpX zXZ`C<7N~z?FN|2xdz%&OI>12jpC1{3A+n2l3Sb9oU(fzLAf4pWJtW}~VTxc%ufMwL zntLojT_-&{XgzE%sNxKE>q+vxjBI789jeM&Nd{`@^JQvvU-kvsETg`fKy!{d1A4eF zJ^roC8-wLR(HUhck3+`h!VlGmJ&Ve1pF&fhcxa*VRUfRNmcg=nO;HABrh}v$9Oc&`ZXUct zBmHHf8r)?8(xSCDK@#1rNW1G81lU6g`}Nm4c!D-bT7LVBzH z=(#|$w3sdEB!zhJ<%`-7-J7Iu-R$}-%r>dT2hpsJ4L>jl_H!OGLF+J6JCWw09??P7 zt9~<_7AA*C*m$8+hUTENAur(j`Pk<@?1%%r=&UxfCO%;2>}_#WS*d%&BFKOH7JD#u zbD+Ely9#B4fOi&efp*HkN?zrI1)D)w%YD0z>koc@Gz=3W z3^kbvLV7MZw_agr)&BWKn@}=%-@OF%jiv@@&!uc!mOa+e>z<>u#^zs{lNmBt21IZSd~1^u^>EMuQ2DR8*;ypACJtjA5b0alqLO#b^x*UitZ78!#MktQ7M)1 zW&~lA9PcZiEe1QF1Rhjk&LSM~Ue+JlZDq?Ob~uBQ_ZUq{>^7M8R9t_{FUQYE5<%u+ zaXM^d&(O=o-?~YdT@|Uzf4Ex7fj};bFNoxxfB;J+h4-At`OMWi%YxS&G2aPrzBnUn z_$bjc4UwO4Gi}0bv#aNKCUCVm)|^GF>d(n6c}1#Axef9QzSDagg(k@N?6&bC1HIYl zB{1X_FD`aF)&RWfvS6(cy^xatO)Olftn2GU@0k*yx-tT-t!velTJ8TREjJJ4)*x@b z6R#`QGCD#aah>&e(fwjdY++KW5?csOH00-!@Dft&fk!09{2eYSP{YO;TY=E#H>aOU zcI*D4_U>K^O?t;iBkad9WJfQkJDm$GWGEtuc7wChP0?#mVRi0uFp z8zj*~m$w9!B-uMXZ7+dDv!QYFA7uJr@B%elN_?!5Y@>K z9!QG3p^*dyFZCWw4~eGQ{z}MisvEtzbCVPPd*gY1t-_rQoZXhWU;q<5m-snI^vVko z2#%xnSO3*+8QHJ;VY)NlTU_q^R(e*j0{M$_?3sf|Ff7t5*=}}(W0NgG8wZ((rN}+f z3-mFt^WK}gC+L-&R?x9zuGBbk$ar4=oh~Rxm~Ln`d|T`wpt8`+CX!!CLU6(s)w=O0 zQ0RZR1pa?Xes<$LEV6NtYnk`dX+f=2RsLj59rsXr{Sb-Q0AB7xxb3xUbklp894tyE zlx}j;66AoL8JNox)n{z)=*SRemfINL%Itc2Rmg$TpWAhrVNULC_kA+ReDK*l2>hyB z*Uo%~e0;~k+HQJ)FZ#q@o5m!({@!n(n8R88G(S&nyd_3)*4poHiy zQWus74r zJ0F(@Nt}E76FkbD!#4MHb1M8AP;lz%{ytA*`-g8I@1DW=&hgS!xRmC-E^tzu<8uDT zHsa@ZI`H2km;G|syZZS=a1Vy_2H_s=DtGLh`KkH8DGBGiKO3&H)-z=T<03z6Om|_xWVqH zzb#-|p0&33i=dkb)%@}_YldPUr(~XkKB;!koF8&>oU4Mm0-Fyn=ZFNGjDkB4$$e}T z^la?KLXy<~ScjBqx^UD7>ux>t(D-RoX~=DzwC$0n<7E6PvpGP|@!`UKlJUHO%$U!P z#&>n3E@=k-fQ}0+@g@O_oHUSNAya<1ef++*;$Y%S{DZvUFx@C|WukpktJY9gQ*vQf zFxX|&j?8b|8$3O(c%j1bGo7{fPJv7=1hV@4MQwTjoR$D5TH>q=#~$D)p+^~LmEh3q zmo{h_D}2W@AZcCHvOsn-d=seKwQ89NE@PemmEioR`8f?B_{q(GR5s&5&5*Nh^yms` zK!1k?5zBJOaeLEyJjM!wK1JV4 z1M(^#Eim?-KBDp|7#gX7yU~Ov5@KFIFiq=F9)m?A7JgLUBXS@I6ykL+)@b;@qd({o z=9cKZm*aBbxu?HkHOvIg#&^OK~WqqQ|E_EL=gLD9Z1FG$Nv#X z;cNy!;?EwgS^fCgpya)iT~&4RcP0U9#eufb=0of*0T!|e-IHkap<)z=14W=UV#eu` zNs}w!gfi;8D!g&HD$_RfHklB3fnxyP(( zW*(l~CC|xs>@o^`Rm41{BUOFnW!z|kC=Zv*w`hpL*mSnpB{4^o?K2``pnBln6CATu z8QmuQMai8p4ji;xZD;otb1qTK>3Mi2{_3=&T_t~8+v=xU{n|m~JBSE}r6DVY0}L;f z^ug8Lg0F>~TQ_ixQ^&}EQ;}sge2kXNgo=ToS@@GrDAh%#CYoS5@@89X@6+RregI5C z%E~=17ikK|x&<$G?>m@AMd>eEz-v*W%zj_#?JbskHe(7ot*-!FJkD@u6jTZ%?E13! z?>)7aLe55-op&E|rdqyFK^h1I9~MybW{@#XX^}qC`ixB9h%AHfYwZr}^Za{J&CR)F zgHX!#?>Tw{UkKVEnj)B8zqvf&&1A-g4OEre8 zkmab{IqEbC7BA+!Ir4ZMu2`xObgtmj3$m*(n4k-h5*iKn;>opm~EDsOdJkx^eZ zzAO*I**T}72G9&yP&lE0;Y=5G78Pt>7k6EAD9B^|tA-#`wT%R`PF`LX79pjUaS48% zbH<@ZBnSaw>TcF&F(J%?q*d)MtRc31iF=v8Wa_$6aCLP^lk#iAyrDuqkRq81`TACE z6VjYVEQnz_*0ZLr^;g&mwe(R}u-Iemd0{-O%-8+=gKiwcyVI>fD`D%j4e9!rMmFcg zJvd9mlma5rG4HZJY>9FLqvrowt19p&5Jlsk7WkJ#Q@=yhd@Cz%YGXN!x7!RNP{p0T zX~ZWU@Gh{GDy}9-PZLv%Ds9I9?AkZ^ZB4Y13S+QzZS(2%#r;!SR@d0@5uG>nTz-)+ z_g2fUhlfPvYc3);UU$Y`2gZaxEO6lRXZb{(-r=nJ@m>=}xZf1>@I$R=)$)sd-__kk z^tg|?MAXY4B>HuB8MReLw-JOep@iKzW?`)Fir@pAw9qLNS7IJDsGojDmt3S1a}7Bt z&iqy^o|+X=tj=%FSGoX9cvpTJ+2x=K;rpH1UYg&vbN?TcW2@mZOXgIDd?AIPf2_7P z;O}N5o_@b4#kJHur^gi(j7DpK?CUDQ1QIkO^8uibMH2PWLisGbh4I64f#S z7ot2pJZ{PP3)GtM{6j>n?>-1gl*WzZaaAxJj|e;km*m+^Ys4!!X|?0Azl*cF&vI?f zQBcAYc3WbTGPaI~b7pod^oQrUsg^M+Z>w^MM!yI=xW4kM;eHR+31Hg0#`=*OZhgO5 zHlJ|~2|Z$({UfkLDJB_!h{47wpWw5uKOtbxlLWy#a#WmzJ=*Iq2Y2Mr2kifNM#y#i zcZtw0=>R#T7$HfhuJ(WU5pqg}U?*>&W+ey?VqU!Y;|~3Jbb8-f~It zsIn{&geX)&pDa|oD0%z>G8%2*?&zpZb09i3eCu4v_cD*?Wp~>o;Z|-VGw)()33=!) z+)ctqRhPG)qTjbu!|J8xO;_%sw;n~)T1Ddm@m}+ist3tP>!xpp0x|u|M_3>xW*Z<< zuL!8*JhTwj@fl}%A7^X4=`X58Z0bbZo{viurHq4_umoj>P`s zUf=vi&|d(6X>XV>8bn{`kXM^M&_h%}YxCDu4mse4xM3&A<#P^CSoYsleGV_n#VpE1 zJi$$qWm=S%6ByJh?V=f$7nyWJJpH>47-u#^$Dn9Rs2PLjg$8CKh&mM5+^1!>Qm~#q za4$;hg&QxD6V?#&WRpK6TMTRROKQdzBJge0TKNT=Ux*%#V-e$P%n`#-wmv>59x!Fq zk(~(<2KwhklYZMGuDbnDyVP6VZ+UG$JxHwV-hap!h585gZWWu9X;LsV3iplBx>|j+ zWUAfYKIz|7t((W4UMf}XE)8w&wD6=!bXTOPEXT`N>6!FoI~$$Tv?jsM8`Y)1g^#u2 z8NPqcdfmeGU-LtqEPa6aJBB*yvE*ilvg;g*VOp&V{4vh$Uh|*tz$B2Y6cVy|X+c!; ztfIF5#U6pl0y*@bYt8{@H{L?Z8O@n!3tPo(3(x&B^zEH*guSo9_IM0YBu3W?`Icfo z>%A#@`*p@1*uJEBf5w)eUS%A+WvFao-dv&^XNUGT=7+>|^ljh|B+~zeL_3~{4vQRp zAzDynt~dz$R;YXExQ!pxI6?}Se&T-KnT)h15_Sb9w~XME?hCTLh|qi3`8Vqn;i3H+ zT$Z6NflrxwRU5y?ZW&#xtXPKkQi*}%MJ+0_CP!T!@dt8eGc1oHVa_!Ou}#bZ)zW3= zYCgi~2m>p4wy`9ji_v-RF?)qlVRMNNl~2&-i(luNoC`qk2+MGn!uUeWI- zgC$>m1U2ZzzF^q6yS=Y6>h2BrCZZ-vUs!>`iKV~&bsIV^WRb|dYtlL2ce0~x2qb6X z&O8JcN}}YsYbXy=oBE*e=nAgE8Zb!0GCnttU@LUHUU63!8L~NFfF+(wT^W+QjK-SOJP9H@*Zfz^v$@u zvz_#dvTqV0UIBYHlaEAxt8V(VH}NkzKP#1}y*Ch;h$>-5tX__WxN@|PSw{t{!nFpF zo{K~jt~s05hpRCQcADRJb?-s>NeL}s!YXO_Zi6IsW&Pqji*oupno4Nb@tc^`S-m$06oh?Yh3^1hJLNDM$8_AnGbA<-Jv>(&SB+}|9SZ|!>i zY9au|&S?QMbh_GP0fXHjt+sRauK8;p`aiXA7B2apI<7-B1as4c`d*qZ%O4O#%T~Kf zKp&e~TugA`d~+h1pE5!<*qAN;{KPW&4gO%U0NH-QM$MC$K)=F7V?>j|E;$Ff-(8Oh z_-ah1NVe#${=kmt1f^9*LESU*qg1G)Llm#xYA&4{Hh`md>SWW?M6}gYMub&+LuKgz zqR9L9C_u0*VwuXuoa#sJ6)t-E(QuKrxC??}%mi2^Ra6*0n||zp%T0Kr?_ctVf~#X{ zcK}a$WjC46{v)v>3M7l*O)$7`-=LXq!{5^KcHb}URZ4^ZiMD8ajM!qBQ_V+#^Llxg z*e>I1Zxix#qkEHbHI^5@G9DWQ)QeIIT;5R}N8`UjeU#xu7LWjHr>n6|yzr`yn?Gzb z8~@T`_~l8=VN2mFWQTv#VYH&C-PaE)cok$Ua(D>0AOH2RfctA|r<{y47MX<0PFa&S zt}Ovrl-u1qz4=`;BPg!X9-V=hy-MvU@3H$q_3MZ3MW0UVi?P3hPQE@p80W=!Kz+!9 zOgX1);u*WQM~H6=NR2mrY6Sy`^Q zcs`N1BB%Eq$@iW#{2wJ)IcGr~Qa{Ng>(=Fr8{24`s7{k^Y3UM+OV6czYOYlYWxcu* zC7U~%@NEiSs6yIGh7M4}Eaf;r({e0v-5T}cn44)8N{Zc0pUE&SC87kiiXaUol$K@h zToSQZG>J>DcjzltIKG8~jOC?}PO#i2Y(Q30=T;dJz6KdzL&r`BFOH&O{EcZDnh)+g z_z%4|#X?$$~|2o@(&yBc0DIgceS0d`wUPn53;;MYjwEe z{lj<>bTERS>1+GRF^LWohJICD{r~q`M=Yx$U~k=?gpCS+k?Ui*u{sT)rcn#T|I3%2 z4x<~GB0$dICJ@g&H(nVW*~U@^N*KQjD(St40Z8IqnDce>gIcf#(l0)sZVcg@d;&!t0K^s zl%1~1$FRnsJ|oeL?>o2nBFhIi8h`b&9wdA95}z6sK5;Zu#ESwou4!)|(`D}6X#7FP zoy_3>;jQU3``JBnLE70j=+pa2J6eZPr(QI~i$+Wo;S}AWq{!pvU4;_l|DCF0?4QWVDVGS1u-e!=-6Y>k1j_M`kZ-^>sf>ne@Au*Kry z&wd^E@Z7#DawZg6&OTCcTLFWC&Rt|%zs?S+Ed}CfeG_hzwVTjb3T^?e-De)*fx6aUnk}< z^s@U|XE^M6e&%;3UURV_yPfaHBKUJJH#mp(x?S%Qm%MEacg@0u2WD*6-Bb}X=bUhS zf7J}0Cbe77NA5xY;{fD5CQy6oLeh6Ze#^sB+fj57WGPhW8Y8ifNnC$v*8$|Icx$PO z6q?-#X}`u3ZSm?&TZ)4 zAY=?c+P~Tt*?0<*W-$e>fxU;+v-{MGWhf>luXeRA6&C%nxI8a!LJC(L{PwE0Ip!1oj_2_133q55#`oby9qlF=?UUbLKO^Y0ha?cY@bU15 zD%QDJ$xVPz!hIkjeCxUgQ+CSh;Cpm|CM1q~@j6v+cY8}gAr-E#oWgEQB2WHns<||2 zThJ4H$O)n}<zZF3H*sy1fRz~N8dPTcSpgj z*7)U#YPW`O-gmCYC+*3_-m@K_3-ISXt(t`}D5BGUolQ8|g00C0t!M%R2K3e-_!O6T z()K*>JQ2TI6^I;P)tus%v_ICJQ;GaY!SqOlL;zy>P87#-L6SEPUWxIb!W1HhuRPTg zw@f=(x{)hzZyVt{Wy`pk7{^{FQ1h#pGud>jJ!EshsLPgeHvRwb?V*O*T3Q?7(Vyz# zPNZTMQGR&%93VaOME*9K3^5)jpXl_0?{yr{@!IdR@9qM9IH)-1LEhLst$Ry0X(U~S zNpnzj5B{TiQBoSmofqF@k;BJ%xy&S2x{{z&uZ~pwp9bzoEs0{k+>g|)M96NE%I)Np za3LML1mV^zk;YKZ_)J}7&mohnPr!eL8Ox0zyrDtv`9ye zr1&LzPs8*6#3^d2bPM~4lEmv!`GtXc2CYE&D}c0uUT#U*XG}#90m?4M4KrpH{kx&B zu@@XbtbSVtO{inA zAnZ(KfyLFKE9S(&mlSmBb(D~L67wsCN~cpRer1MXE=%KsR%f!<9}r}DX_{Vi7&r1R z>bJ4+DkPe$ET{WhvB?VW)GI?MlXOSiWE+ zyV%~9G{bWm5Gb(Wbduy-|9I-D=p6J-&Z8X>Yi8oW*;lh+POXF<64y>b4I7xI3P=f_ zZmrz%8u{yVbGfx6u5d`HEAli-YF>0=sTVvJU{6CQ0mpy&fB?q3ik5l0k^eYm5vK3l5gzw!C+zHBd<3Chg z=Av7-C&M|;!RksDFOl~7g>t07ynsH z0mHzmkiztViAkh#ObT8?l}gkBBn>Z9?(Ukk#e;jpO#7DE&WYR|=B2$&KMHP=1sk9f z$w?J)s$~wZ1Jw4n>O>D`MQfo`9KE(smp`H|evx!kI|e1MxHY6Hr+|ki21MbuJ7y}MlsxM=cwI(zP1MS9*hjnpC@tT-TZ+`)2`b- zKu=yQ&6z;gMhd>nIy1f!Q|EQntQ-!ZeAuP>1sBV?1eHJ&0jlJ*hm$fVN7_%wA$d~@ zFpetpBX1z5YuT_1-_n98L$;Y%@b*S`v{Az`0vu8R`4jwI^u&nWP+4&J{KZ zuQ{sIx`5q`=>1ifH(x;_L1^hIpp?nk6QX=ZF3D~r|CTD(ZS#6WJpOmu@)zeUA`uwJ zndSffn0LFh zzf*bH`|Z!ng_^-qBl2I~SA7mX3&HONreO>-e7!ork*m@N8ydMA8S`4a#l3bwc8|cB zcIp#3Q&+@tgWIpf@pz>MwU9}|1b=Pwe4%`J?`bJlgOpR;5`I%b$osuR(O+%Pre34P=NOwY*u@X9))%4t|RP%FW9r0F5}#b^Zap zXK<1#EG$Lfd0#$}L?t}-%j?TXmR>K`rq6quNb80xu6c&)l-{&g7&+e4SLCg-MpI3C zVDPz(zhLYO^o4^8p5@UMGwUj|v~(cQ5o(D3_A5sp;oc|eV6}L{g_7I(Lvm_udjycM zceiyGi+nCK4b#Jz5qtd7;-YQHNzfbt;054@9AYi>2f!VDOZ4B!tl2(X=2aspF7s;Y zrsvf|_n@2n#{prD*Ulg<^zfF9mzZhJPyma&ow%TCJ@CLBI)C@L3)=hjHq&W0cx067 zB4cKP&?Q&q8~8#qK@O-hCWt%9NsaIFQ<2Fo&J!V|^Ch}Z1V1P+Gu7@OtUBYElz~5d z8wPF__}fKcZ5!6pjbYg+wKm?Y5M7paCe#i~#C!+W2M(R$+1hLc53{K&Lh_N-H`k<9 zhZq>Aygv2G!*LEsGVgC#@L|!_=qe0T&Wm%l)RoiF!}ZhG+$ce6|E2E4wn5os~fQ{`| zElw#X^yxqGdSG!eVChcjex33yd{5|e5j-G96UWB*XQ>(ROX?p>AmsY}!nRN2pu{ol zdVhkihCeIVj0$4-BivSLs!!Bi^3(`CFtgK3)l$^nQ2GbjOtm=bF;3iOx<^CFPjc80 z?fyIsS77;jf1{e`vU7R!W(=={UF30vG(+dj*(KGL>)nY;>!6;0FIYD#5HM%LCJpW^ z8SL!)4+WeiiT;^Ng#eS$MU7=`OuT)MtmaUjD(z7ELVKXUmxQd|HCv2 z!Mu5MUy;h+dqxoWd@*+?=~mM^`P9rmL&1Npe}-D_*JE@e347^>)ls2wV0a?oYrICi z)Y6ln%R|Wb@YtPp>iNxNQBh;F!-ayu@x;uh1nN;l$b|Gv?=^{lQ;E2w2Zm|bR6RRp zKc^oPcffqPe*9`P!ge#9X~tOwG^ zx)C#^gd^e-$e+fmS-5;bSsjc8Bhx1Vj(k(|qa$bVFwGI5v8-4{UKasw8u7C0MKd%zxcx z=^R-LP8ta2cyY8)289Ly`W5Em_}NzjR1}x`%YNR+ZOJhQwy8`jz(ifnV*G^C|D347 ziWl)pN!VWkE7^Jhc=v9sya(XcPA{orK982@jV;}tQqFuLG1Z-l%QEOQgN~+oh?$~^Sgi3P*hqnqxuybBf zL4ZZna)?1Z6m<#>w9aV3u3UhwAh;m&dZ1v!=ekRl>Qe#Jzs2@Qe28#(Nbs$?hw2!7TmqKyC!*Z|IdA%an6VL9pjwmTgJ%FUTf{K_s*Jg zUi13Jl6Ob~%yJR8thO3K=ttUMUG`oekU(&9DL>vfjqwQkua958f9G-tKWBHU>)HN- z0!^ewqGYvc!~N2J98FIXpf+EDB-9X#Vfe<&>5)GYm{$hHPYBAcLId4j-)I_6(R;`*q>p$?;?TPQuHi5U!I%6K=EV z14H+OM!z)AS13M2UO86YoBLQafWNnY5ItR5*vv?mBz$e(M>pc)(mn9g{V~L$y4zzF z*(kb5;}Bot1bgMFrp{%mN9J>TKS)^ITRr~0yn=snf!i$w{Q^CIg zYllU^y7rg=6j3x{V<0lnA@j6*tMFuS*xgvcUiOIiacO~V+3c|Z^Jirf3h<} zE>22r5S0UPX9rH7>(@XB(kU8hjgI_n8r1HCeG*EC=nhPv3{49wyWx0anC@UA?4s#7 z3!1$W6jtMpIg{V{?{n3ZJ-wWiMpHu>--Rz4i)BYiX(dTjMO%;wfdWL-l< zkkh=c!Ugm;2B-$Uck0+q!6AkXm#A|1+w}n7oFtP0iHqSfF>?0>FSu%$pbR*NFUkya z!#wfsbEh~({}3Zwt6-{(#u_(>@NN*5UX#&(j5m$(!3q4?4#icCcz>sX8MEPXXUAck zi|EHry+?aXHVksAqOE?JWRNKJud^=&S1|qLXQzjjv8Ie#wKZ)q$$S3O5VbdpqMfd8 z!}LifUlN@j>WhFgj3@o7>;^EOBq(xuv?v8NRaaiojlF-55|DjoV{Rh5wEc?*pZA9& zYJyWB)#%?e#rL^}f`j`X*h*O|a$Iw-xO)OymLTJMl9k&Yt2ODtYiG+Wb2tF}ANQ08 zEDaPBxs~Gvv@=_^CMv70o!M~t9M*_FWA60=o>;!Q-YE6hSR&le>H}P>)Nx^s`xp@m1meYK}w+cp%&>18)t@j;)OE>Y2RwBYiPK#rG7uvv*OOa1IBt$rgcIelFS~ z91znWpE6td4-bI1Ul&|}#d2R`{j{HQri$h-%x~~7ya7fC3X;0KuVtwYp8TRgFTz~Q z&TC}Yr?@>c*Xi&|6C4kouh9g$d$gh4TKN3++?D3D1KLq}Trz>? zH%~uXq;pwAsAY)QEce=O@WwY{1H6g)3ekJ*uOcFa$C8kl^cO)st4SGHI~eps?#PWo zW@jCCD=c9$p&qHB&;j(;3*!-?swy|WDt8UhfU8>z*mvdb8X-lvBd8>{gvyRf5t6B= zr=v@T(q?vjEy3L9uOtLoDVtW))!jcD%oIgw(jdCbQW+&a4YIx*p# zb!=<`WjALA=o@b$5snh@e?VbjdtjuUi#yNnFCVYB@A9PepDm~7WE437Y%2>wv1UNK zg{>6n_l*LTo?zBxeHoe#qbBDyZ0xbt)}Ct_hdxV5C;0fBzs@`Obh*H@?&%+fb%>Ra1(`jF{YiH)DU4YFa7KjQ)ig*c_wD&Tt9x7h5IREd>}Ud zowpRD!UHk(H;galH!AMQq!6IwX5f@4_sgK#0|<*{rs@3*!1{`6sOZ$?SOOWc$t{_d zfRHt7SXS^V8-ctRE&PUAanA*gCr?H8<|%n%3+D6!heF>u&-sCgMo9JDuwp0{@Dt0v zLkdNwPnz?qHaqdEk)}F#05RJDlA>?Do5rh8mFFP#8+Vbx0}U34ft`vR-QdAahq4Ya zv-A{R)NvSZ&mCQzc_mV`e|bLx1)HALh&4%)5OhW>v-N*NVx<8Sg6~US9fZ!dW899F&DuNo9m;sUC8BqY+R}<~z~>oY6{r0mQ(_)O+<`Nkctzp1_v{uD zX}Dx;Uz>ZF-&UOp^h9-8HGX`!?g7}^6YAlJA-#I>RKTe%?3~uq(Z|xGGd@8{gQ@8< zsKEN5r2jrg*AUBJ9f*BL+^sK6H;bLK;lVpN!>c~K+YYfk!nDq})Ty$%*KK`b)W7OIQ;1ps6PUzd}rI)GV0J|l1msGv_ ze=H6DSG7=tAps2{8q2{V*$ul_C+@sp?>HS6^Rv^dyh>o7sc@UuB$U(-Ktg}>;x zs}N2BE3CI5;A-x{xYxL?upI$(N3rdNh#hV?&B%K8QamUdmHh}<K;WpMy_~|98BKJy~`)ZeH2E8 zQ;*UR;j6qQG%8O!XLit#!kIl}hhKUJxjD&!E2PeqghIO0>C*H-{#o#MWn(UU z(E*GpqMH#9lbZyWXLKj7Gfov^p*lTfkF)z^u&OxmR**5Cp-b8f+h+d8;Y;SrJixMI zb(>@!&&Hde%Jro!Nc}!rP_|}V+lxeMkMpCB`ZtZp_(P#rlM8DG6lK|&{Xe=JNSInX z(RP=_`e%%0UwQxTt?17hWRH-3h^YQeqR)aMY+R30#TEc3}49gm#*@%y73ZhS z*}F-ievBY>A1ODW{}1PN+`2brPLBJWyAhpXZ1=%wOwwxOyXN<_pm$|C?cnd6&w``( z4boS!Wn5{eNB&3#%@bg8a%wbQ`biVZcK*3wXc7_U_*_k7I@3kh-!ibH9Bv&9#JRo7 zn8lWJzK`jYPf0B*ooJ9TKHzvK&z`aEVZf=?obkY)I1aIjjhgCeIQl@-aL~Qq>`QD$ z6Y=a{mBNK|Z~3jSje)hzEh?%yoQcbK&&V}}ehaqsz0dRTqkMM1;*zu9Ep7Jd#5F=f zsv*MXsR#zSJNtRRvA*hS_|9vMHSOONNgX%sVJ}#i7TC=rAToi z(KjgyzT6yqW3ADcJpjdXW5@MkfeyEi$=9700@THWy5>$&cNheRZMV4W`|({Xef_b{ ze?5!GZIc54(B(n2#dqkIqCWQ)dyt<44b!Sss1h~(DL%LcT_|j!?fHD%RYR`&o5HZu z?hROzVw$)A zgS|+LH<+`ObKH#O`a4T#p$ru>YjZIg71BYef7iL91ewx119MEkVuj<1?je>5`WW_f zJjm&h^4)ns&Q%r>-J9wJCU>OGmXG&dD?7~MC8)LV^nJ~d`6wJ+GzHtOG zXn@c+Oqa?hR36_=l8RrvvulP$a!L8fX10>3XIA>^e7|@lmDI1olgT=@^2PYOC-J8q zwuZW%8PE_69l{oDylj_$6y?#{vSbc*aw57bdiQvZ0OxkgY(%c8I8jzF=`;UIe9X7`sE-lamsr?@P0>h)}Xv%`ev+tI%vL8CbO(%4Z<$v%Ao^2+-RPXPD=jf*vV6hcR=%;lIpC+qPM-fRz|fPIEA;jEZ*7yY zbj6jjZg#?~Q{y8rUK2#g4E9kz`7Uax0^nxmT^DM@GTa~XwPGXeH_N4CL~EhTX{B%; zeRCb=aL&GOw41WYsF0v7YwxRZ+9vldYL@B$uGV2QDs$8m_?xW(huC246!QC@Q)?0^ zLMmajOb+n+=hn|O_cxzhObMY|U#G(BQ9(bG^fiwA{)-OiH>%@pu;& zm5Y+&Mx!WG{yzJ?3J4J>ZP>{>w<4(L_4quzh|t%Z)4G4Xb%poFnC zFF>MT!)I;4VRGwOeU&jacA#A!^0oezCdy;h37LSf)Jcn#q1iWWUSL9W()^OGC7VD0 zHKV>yiN@PF69-2)Jxd!5+y$RAP0Zac*?xLAC~TmN>H_Tj3G-zJ=9cz3 zjgHg1JJvAEU|+%}__8-+OkdVHN_T==>0wT=G=WTSyK#Ln=nN*wS;^N|Ak?j8X6faL~^pnzCYPD&le`WW80Rlm%9z#&Rfja{pq_zL6Z!>FC2IXqOYtQM2f zid(raP7{648zyA-xvnfOp~XQ7v}ageoyOZ4UNj=&%aeF-;1>wjNVd+YO6ncwt- z0gJ}bvt}rgx{`C&9=(E}wZ9zV)gi?+;$<@CiAoDwyuBwm^qg-aNKs+$c%1# zxH@?|pHSJ^+r?uAMf_`ph~5Bdl_&;y7nxJSOQHDE9TPgN!jxmg0~&}(RYd|vtYo6b z;)C5@-jFm5A4#|-=7?K*FnWu?jL@#-cc>+KYLGSRS{W!^nwny~!qjcw_J%LuelrYz z8rH8TFZko(bHEB3S2j<#enV8W>(dkg`(3mZ!oUY*w=Q8$Y*J<{c#o_ek?mfG1Y?mF zFuYE`L_K!a90Rmh!ybG`Y=|TJjpf~eG6#fu`w#(VnzJWc{JB8R*wWKAQmlU&D4WIu zb;vGSWOVuY`4K3MQB44fZva++gwRH;=#C(4A3a4=BM?ET3zX==ABd9qsjLS6D=U2AHGYDMf97HMf5mv4MpNwZgUmQAH7)4pDCTosVsZ6^$8z*c6( zF+*Ofm`XGw7mCwTuHEipVD!aPUzgFji4nJTGh5~^h4c2fue}tbuxC9a z>9xuI?FCtO*mjXZBKj;-DXB48XB`@Peb^K42#qTBEQ`USza6OsMWV+&?F-}bMZwI7 z)ts}tbKfC9<3cENU-zn?t_#z&+sWrnup#IKhr&o_#MPq%=>TlFeHcD>R@52o;+ZX+ zMM=f84v2oQb|Nv^Ta}_0vBPh;H2vUdYOG}Ax4@7clhJr(>ap_=p6e{gYG?$4JLfN*?qSazROXg~I%(2!X9b*IvVl<{W+70>p_{k=Jdyh&&E zzdd|*s)VAM3d%LA)uPCZsa$ZOaAHbN09_n4 z4ZuhTEEv$OCzAYR)mB*b&v4$+da+5!hnrTIZpaZ~mfXz{kHNJkpLd*tE*;RC^&0@e z_^0L!M)7?1wHDzp=#dH#vk~RJ?^P~A$Da9HBzRnLz;}pp@GhC!n57~Co=#OAGTw}} zWy_L7xT7dFa3Gvv)Lm`_!R+B>C7To+YCXL4$LbH^GuVP)EOFJE;YZ-^qU2&=oDiJb z1A_VQ)~$Yxpm&_v*W?UG!lcM<$>WQ!iF1>bKckNy(H9ohamT1~W?@48|R)NQ5 zzPol`gBwBDV{StMUO+pnzYfi3yMyIwu_f|EK};}T#s=Ay9%j+cnVOv^q$ve!rzMxh zXv?%9ziaen6WPnfLhOtK*5Vf<|F#?MH1JVXrJ&Ld2-YWwoA6KB-x^qm5@ps7na0HL zzC^)9Fb72^?_XF{-Mz|JFxKEkxe35E^F;T@DzA`E128DTdB2pwo{xiU!4c$fDRuHY z6J6_QWkhnljwY7lrDl4SDKD@2w;RStM2mlXZl83=hrlX1K5@l$RI7=di?gx65yj%| z#>llAo+g<)YAhE(!D&5`kQh+@tv^xE0!Vq;L?*Q1w`%+0Us&75X<9Va_K6A?1V4?P z5;E4<_a7`Us=*FihP^HkmlcV=Az7?~uXjB7CoOF25b>6_0Z64Xb{$d^`+F?zQCYt& zIDz@IK^nlU#zsc?5p%%xuleW*7+K4)*wLL4|41ofMbHHd z6>R0VnY0GiN6^3Kpw19?{XJgQPk7Sw_`G-?{FB2Ze4J%5mV~B`?{uF#YB#@$*jLfsnOa;4qGurY1ozU&j#mDcs}G&!rt_<+_R zKhVVziip)p@Id_J$%NqdG;Me(JZOPyaU#(?k%nebkdrjRb!#Y7Hkig{ zmHN@vKbY*sT_WQ9hfG);6JD^9c(fE2RE%j?&k4XE{Tm;Qi2A{5EZ_L(DEj2!*->B| zm1C)UAmbR{^K z%<(nNeK-8*J{8pfk?6N3P4Bs|*ZmvuFsWXcyk5Jl#p0o+ zWL@UciOpp}7$It1inf?&xq)bs2XZT1qfo|TJ@9R3Z7Ix8bBvv1TrO3io^ttpIT?75*t;4I*0k6Y!7_ zu=FTyig`AK4VO`Zh)%cehCY(_7{$Dw`GZkLj*U2JN1>py$_kVC8!Ecvk|`@Nu%Hp{ zQX-0ncYu~VEz1DtW=E0CVO#GIRm#DiuAE|*{}l7Vp5Mz@hA^QgwakC(^ekN1Gj9^C zkIQn7!nf8(?V+sc|89pw7@ea=*?HyOgc%t{v#Em6HqvLt@gZeeaBb$Oc47Nv=2e{v8$fD(-N7=(C`eC_Ys738B#H(n>jv)g;EM9R_8etn_S{U(_KBtR&Vx4^}B77jXgj59Aa_xt&pAalZ60zjBdI zPU)}%BS-c_G2)2nAH_KdUp*#DPe@Pkb16{ytB>3ETlr6!;1KVqn}-rC1D7*5!bDjw zjXw}f2CezF+3t6>Oq2J&{gw_=1YX9R0M@!6Guo1@4(kQ6J=)QQ6_F_SV`X3 zBpA3%1vl?xvZ9>$m8nK1m*jl5FpXpy@Opca@yp4lP7W*xvXOQAO_*%110A499 zm(&f(cE zSx@(7K*EXh#a$kMFwT>J?GaqiA3(GD+j8Eftqr3KTYapY?;!P_u97^t`^iQ@ossFT za-)ri%jIVo_x`CXM?@fXgfY;_URA8kr6D@^rwNY}nqmamV;&-xHmdBgrG0nad?nfC zTgQ0B8GLbx!L7CWaiv~v?;}HLM4!w$RAePh>Y{N4fq8yHwRn_yLpY$}G5gwj?hNHS z>nPVdq4@Y^gv9{qyGy`q1%?6P{9fB?*r?%bA@`+>wQd2=)=PjG8TpSXr#74+J-ViN zADA;mxr6EZ=zEkCR~p+_sIi@jYj*Y|CuaHHttbLA9$K>MJ@FgH($R~<7WB)yFme8G z!DnAGa-pAv@zJbnzXA*XuJzD_%k{omZGM!&@icDA&2JbHvs68n-nlXahDu%`c(-=j zxD??Fy<*wD*A5OZGDHv-EQH{!(V#&r&1{_F@2DNC4*sKVtXR(Vq+)~cbbc#P+bdV{ z@Zjed+T^%pYwWhL0LP(GM<}Dzj{Yw)l*gR5>5;ifLA7rjs(}0rG!ylEIjB)Og^Z8a7{mn*DGDR2+mhJa8|%gOUtPYy)u3*aaC{2) zUO7LN^xChHq(7#5o)mXc5hOMsDt-muUGCFPV<$9-Mf+nkT%l0RmKW2eitJal!mNL$ z^PJdx4H(jI0b>8Gwa|Cu=zSt{SjSf%oy#bWo=bb~54OcEk(l^51F~NRcW7yt&{~K+ zETuR!dO|E#e*A&Z(@P-W26qnp96>)tqH)svh>sTTWk05eK>G+5_YSkko?xz7KaNP3 z9kGj$2Zv9E`Rj4LbXZ3T`z8StvBrmGzVLjZ46T+B^7Y&euz!n%hnGBQtOH+I+pPU% z`8@0Vm}vO4cJDrbAf`&i19%nW^D9wh97hP-W;M=)JQV$>MhUBC11nq=G6q=?{5%#0 zsjrq)`~F-h;3T!A*CRe48$glE`4uP0Q)y?@C=-SJ#bB!+eruZ&^p_Lo!=K+(PQY6e zZ$;nT1wJkiUo6+0e?gZ{HiO!W&XL~7zI6Kg+YiVIEks0xPUIm?{xEh+8A|3R*0uN#5Iv-NNTBv-9@BRw3A~yM zi+G8GF~Iy+wb+yF;MKbXmr}0sJ-L3zS+1C2d`=lMQ21|tRJW}h_ZAVdf|Emz3qftp z@=8iUK#RCI4;x$3#bSHld1p;yB%B&pg0gFTaUbr}!a^Q5^`cXX6r4tot0U+7alF&A z;%tQ|a2R@}7xpnfl$>FsIcCSfbdgYx;!Q$gaPX#s^z`b0g)}xV(G~<>m=IYs+Es1P zx@RT4ky zIu$8=JZld9rNd({bl2bnyAjHVUY~tJul?+7=A_)|Z*#fg>Pw(5z*D&+U^X_Do2AFo z2sOsljuxbqG0uvI?Qwa#ptWgg=PsPqWZ5_X^x!RLe_cH69f<=qLSJP7&hrnuT}v=R zyIO6;e8)f96oNoiJ@cikmkcx!8leAw=llQ9Z+GOu!;}o~#H%fJ`lqwBuK=*Q<@ByPRC z;_;${?ykzXXoZ<%U?D`=b9lQ%LVMp6w6Hc>6AG5dHEt8#aAxDGM+p&()_{$H_Le%Y zG`T#3OWhPR!J;q3USGesv&9X5i75Y&>O9M+s|8Jww+eqfZ)zBqeb%!(40=1N7WZa6 zs-yACT0#Jp%^LLQ`g(p-Cq*QqmrS(MD)-k&C83bl)*DVAKn!ne3EzHqQZ`80_%l5N z`;t!cHlF$|`ASD#zfx^)%{Knc705OfK1&~3TncHrW18G|l`Tbm>!Kv#gHAe$Ic-v} zI1}8zZa$M)R>T+jiSzmgCqLZ(CrZb*k=zdYNHFmrk64WE(#;V}j4kP~o@lJY_j7cs z+t*f>(C=^YkU2oYIcud!`N5o!iYs8Sk4f9g^KE~c;n7ErHXo@-B85>aH zINM48N-IJRXOi}(i5oGAiJk<5RkjXP#NoNfAhQscY3sJPRsYYeT9OPp=S*YB%@G+l zf?jvTPRu`tHIxS-_!kko6U)aOPw1O9HKabmwtur*UTmy_uI2P3!G)tQQ)LCW~^Wu=~A}CJF zW~aUm+zLvA^aR>t3s?n-zCK$)Z_+VT172P!_@@Jh<~l?hJ; zq%6qB@ZEu-?^v;W;`UsJ?EILKYSG=|!hhl8(3D5JnMD3s?0m#-{Y=pdvufH2-69ii zXAcvB_H%XO4^F%K2l4Db-U0+R3<;lYxD{t5R0xm2-uE!6*oy&UaE3u^JEq+D6-?RU z3Uq=D-Dp`+iPH0rk^n4h=fVpuReM6O73G6G@s`UaeuiZZ^oc~w#{$Vh;sNKh(0t4D zm)Q;=4r^)V_fx;Ga-WLY1aCv5KLP|#jYD7z+@;!q22pdr#51@SRKjr>y9w~PK(RFh zCNyfRFzUshtR-(53b927q8~eygyDS4-`NP7A{(Dyypea9U^4AVRn-Ix#Fp+>&^>!VQ z%x_9zmyf4&Qk5Ktui*d%yu?XPOVaz}m|?3x)GHUC459PttaVdts=$Om+4k3X?{hZj zBbd^3ouDi9u)3lv>Mu{WrW&%Cy%dJwDLHA3FVaNT=Oa7}D=$aWiWYdv*2M55{U)n{ zzbiKA%8xa35g6ycxOts_89u1hl{H&Hbz#LJW&)8P&s9Bvzv*abmcJw>-#fnrw0Aep zh6|m$M7DiTBT9QAHtCM=G}$Xhdg8RoWp{X)rND$QDR77*|XO_O7EQ0+v6+GoUJhTZVyb37pG8rsdpOs zK|CDc$f!BYH77;y?2R!qDQaHo&wS_l{=|nl@!90Gm~g9&6HiyVV?r4 zE8ZF8RsG+;pXso?<%2q}yAmYGq1=QP^Lqjqm;>FvVU?n(Y-(8U4j%b3tF^tPE%>V-j|W!qJ@c89wa+l4VF^0-2Sk`W z8ezooq=8S=7N865yMrF>Cb2>bH>>tMJx(Z&(;qZGy&;uc`?Tv{BMb zuiK#2+h&mxa*@VJm$?|6b3f5HM!$N=0All%LyT3Om3uH(dCIscR92YOcjqR2I%!-T zYE~0L8+`L5YV;$q59fdyLC}zWaCio@sSK zfZ40{GSwD0xCMKxSX0TuP2as4Pi*-BTx%ak!GWg>8bgQkO;dtRZ7_qd$a7h$h*`*w zt6B(sA^u~ga|szUyXPCWwOWXMS0_|xW`Rv*-nmTt0+vftq#ofs9!0xfl)7`phqpf^ zC)tb;42iew<`@w_y_~Y3TOgI?Tm;h_zqcdcT|smfk-7Yn$4v`}2Rb`gDa`x_?vW~7?ip{)AuxL`tTMpw_slx1A1sclr6a6i*M z7=L6iL{>Bu>kn^V6}5C=?eeuxHpSSQ>Yggkqz3Q}eDqkisJZT&>pM8YdVNCS;Oy-Y zmk1r%k6^vM&S1yp&RCNlG}zyS^PZ?w`?<3WFuv7`v`v0`BM`t{I-!T4eSsID&GoL} zxUy@P$pAC4KjKoYWkv=fg&C|4P#pE)6!BlEP4WN0rG@clv>;$BqW1H_dHhUr}k z3!YOBMw492NvQE(4=Gf5zX71e^`zo4Iv!L5c(Fq-tUfPczZR#3d9OtK8eFANOJ}2r zWW*HMT>94Kfzc?_TsHamw99YOJ-bW}47=pp&uC`G9% za>M36b)h&M&Y#M~u2`@tyc4zaO>WSU8>^o}enA2s(thuu_U(5+-2U5C_7?nc%XU~$ zNB)tM`gL~b$YUC0Nj)0Edb0TUGc&bW+Sdpn-fK`05k&-CvXb!eg4(v#3FilV2Eud~ zG*$lFy*b6$b7sv7=qUP8V8E0WzWf|1CvsuRz&3l|42>->OPf6z*ky9gzNExf(pce3 zHG(>X(?;CZX^oyZtt;B+b#F4M;E9;fuwqO<@mf2hn!)F1 zQGn*7T0+I|e$I8ev@LaaGPp0BOxUUQD)9B9E`tCDMtYf@N^zSISubSnGSnA*?{$RjH-nM=c9pIOS6T=n2V^P6{`tgod0AANI) zF~{YDwof>QVlb;#TL=`YVlqo|>C(Y#;se-?8`~%{&S5Lzl|@xJOU+>blj;_BXb8^b z(BRh7WzM@S5xnizJ@N)Ub08KEWZdKn|zV$6LA^F zp0m}OW)=rx*z<``&60vGP5=zluC}`<4D{W&Bv zQypxxXS54as_A>Q&#RJ}##p6@CqllH&#Ir0b$-6Y`@8icd4Rw1F+X&X2fQN|ZPRiM z0oS(?oaZ&aK(#FCA>YB^L2snqvtDsx0&l!A?1>Itgjhc&1hxh_OtkDA0~!)Cydp*X z-&7l15uG=Qrzupq8oC-Wbhio49zIW7kHk#(jb9Sx6eR{>lQiDOQA0VbbM|~lqmMy0sH zUhoL#zj8Qt|H%v=RV`R(4m9Idw)%xVBTj;1ivqyqN}1XozHBV2qHRYkF(cIeY4WX3 zEvTci0@qvhtq)B?7_YKXW;uAbnC{D~@r*Qd-#A7Z-B6lH-vaS} zh0g5XWdbNBE35nIdicaaVd}?tM2A(1>AzcU4>i%=ZrVWIQN|PIB3tY{`g4oELi`LS zm4_J%<6HW3@7H=Uf}k7ZK#g?X?G&1*nVk|?02G5u%IPB;k9s7RLoss->QQD)$&qN| zdF<%7SejE6D11lJ4WtOR6z40hmHS&1I>C>O-e8YQHvS^=76mc`CzeODTPLAtmhzGz zhmMC3G~nwz<`t}<92IReFrmj_{j7|c%MvMYbKI3Eq)Wb`XOqQc9U+16f-=yfySd|0 z)eM%=hW|NUqip=1Z=|%4-`Tfj7JN&>;pXjQ znx7y&i9X;(`u+zf{h5gn;ZQI=ytBP;9Krck3azC(nX?M9X6t)m`9ZzIYL!Ji$o*Ds zxbd5_sW1TQt8_8($~l+5hyBk9!%kT`%{IoEUK@rlC(GT>&PKp`mld~oI_*vJ@X)(*tR}m6Qwv+yQ%*7 z$Fa^Gi2Zv)08rZe__$EsB-QK((nnqIq%=i=eCaEi;o6UGy**Y)x(g~IVX)t0jc>3L zi`e4N+3tsS;MKp{gA~n#qi^Da1k zo1LNnyxRf^{mS$)wsh=MgHMuOqZ$mOQgPzmAh>r<6eiT`#79@*Gm*Mh zUSAjFzWaVdCIW#_z+)an{AR}^Wb|lmyRiQ+NSv*VECRiAB>ElY@X(`V{Ibc zJL#R2D(;Fc6VaY4yoTXlmD%F%PGF$noum5DBtY6$gmr}4@vEG~)sr%JKZ&^>hBuT28Ap;HXvP$j; z?d^G*gi+Kx(!H*+a!J&oK2lWlVb`Fc2{u-_joFJo?@_~)kH;IauEx$$8YEZ((|LN?kOWY=&fBp{7fUsrNss(XMuOpS@{E4hW>{``6 zhJv;x;q?J*yzjmDlaC16h1cC1h5#S0>O)Ar8(8=S_87)YsWx6jOVO;~Rq_m!iD9Bc z^-PhhwBG*OmBu&T^z)m%H$7WQmD}GjDPJ3t#5M(O23jm~RlGVvbRzisb-nLIaTjFN z`z!_7yXKJU$|>xh7_@&eOW~yQH+e8PM2q|&7wY+Y3^Ug`rAGYy!UOwZ%-pbJ+H`ee zix&}u3IQlkuFhZl0bK-7hZ?tLMqT2OD|9CzWcwn417B@eKQW}oal!=UY09XNCag-G z;0?$Z7OT(oTyU4BYa=2w9+Xqz;TFe&pq=)Cw$yygnaBFr9K7P&bB);IdDMZ6O3m-6 zt~sYq24#5tObGpKqs=;vNoRh90su|s&U@B8*PcUi*RYt&Dtu)v%j17&;S)SGIn z$MIH1s7%Y56JWE$!JRR)AD|a$SD%kqAXP|4zbA#%;j(3XkdQ#K@fat;MO&1W>0KrY zf~f;Nk=b(zEdG3ch;`*Pt7QftAbQ|4C-vb5s=>c)O-RcTp&8JoR1uM^4m&;iXmwyd zDobY^=OUbynPTXLKQ|fBl%|f+>RFFm zf_aB~?BC=v;`=L1)qL?v*XcApbct|5z32%^%@|P(FEwUJf8^AYAvRiFnh|*cKBW-0 zPY>FY0RsT;NJZX^mM6Q^p_$}*wa9FYU*RDD<1vQUJT3**`4BUSAN@=^)KVlbV|o0w zWacMAT>QCyo(rKbx6hzR8TF$9B2f&fAkB(~z(Jc9+E5LAh@}c9B}eBN;thJ$T-FwF z4UaZ<2FcX36{el1f)_5Pc$$54BJC@PF{}v)_jaH#Zfd(!n8RA2mIq2{~XEQQ$l}3faYT;}o!$T^Kg6F*Q@L&9!os`r& z;{+w|D{!7Kdbv4-cNkX!o3A2Yg?s$Pk4+hN$t~l5zb=j{%?w*^I7@4#6WITQ5z9hM z(3KYgX!L(@0Sr#QsP7GKFh%mq6b_E&$~rJlas>Gnc+wOOFwNqV*(JSmk4e0D)(5sva8a@ zV=n>>ul7Ggad@P^Sz&Dt&734}5AzS8zf=zVVm8N}@y7gC9!V~ne&62xWUA6HB1LBm z^NzroS#SDlxZkJA;0GyoJnC;S7QUI&<=~zc*XAeiFmX)#I~%A?lFdeI)!v`yL#f^l z^PFk1&SzKXka(6faSCbea2FXr5ocylt~^SgD+!}y@|!X75jHCzChsB{IU8Sd1l z)4Chag0p%%Yy?C$(AE7;_PhY)&^2Q2nPj>)C|GRymAtDNvLNxok#9N%jYcx*yvyBo zzq0ma5@40x<2WnQAR@+G{ymB`S*DZ$clGSGlI?F!+GE=3LB+q{++MSt>Ad)Dw<+e& zk9Ka-$_ysM7cV9D1wLC}Bwi_oWdL(`#hr_TIYm0=tp~v3vhF_LzcO6Q!Ngdn7o* zGJRsBQ;heTVTU5T+esZJTDcU~`UdFQmdVzla2(pWZ5DxB-)oakC)pXL%ot-3Y58~o zfM2O4=+JP`{9V^}`-=J#U3wF_*nlXYP_Z2=ReVa+q{$lFTGflzvZ#Io{eJC>KCK8?*8T^B%o9ZeV?TtUTS^=dq|^ z&F}1{FFGB;62096LNKHfif?a_*&mtad^jb0n{)o^1cg!q=m-&{J~h3}{>Qrr$}lAH zejWA!k8{!JhS8yyc!uK)(1R`6X%%;rWY1d}`h+vl(4`Enj@!#R;-097X+G(dV{7u` zeNy~XCBsn9T8Fl}_nr3>D&ko3&e1+wm46z}s@ZqYYhB*7`*^+G%JS_nauyS>Q?Y|! zn0%haL#JWs{hOSA+ARf{o_iFmt67WIkKy+SundsOke;3K`|hUu8SB@Oo$N_BWeEnx~A*&wC#1d*XQr&fz#(q zO}+h9RoC>H4$}gs&z{GQSY-)|NcTU%D%KCX$t9)%|mfe(<((2XL#ut)?9-igC z$nx%P*FznSHEli7tGV9;@7Ol6rM6uj<)Uj?=xS*Go>3=s`|eIE>pk1ONlwG`=tzH^ zb-@Bru1g)$&z*|C)bss=OA!%9&x^R*uD@iQcFttTs?{?a+p#WAT9oiQcj7psEhdS- znKqj4GuJ5LYQO&V@5BfCEpx4D7GJdW`6@+!ei`n5*Y4M8MTQ4eOKr3H=W)&+W6Rlu z_pRr0VO67RRnkV6oSk0Iu~piYp4p=hy)~Qqhw;A1j5@#i{*pa-zLV1dT|E!?WR`ml zo*u}wHP6ke?=T{_!`-+gk1fA=+^8|))afFXS~^!}| z!AbRI`B^P)dOc?C`Gce9G$}Rv=(4buBR&^%wkUY_XU9rK%bEW(D{YVNLiJWQl{fdv z)n&a1sr{nxnf8H;`VYRs*BH0uevBJu(jFiC-LSzKUIHPKILtitHlfZ4_^Lte$P2}HT?7J zLW{zJb(LBT>$>`S_ttg{zgU-SQ*yN~Uqs^*`L0BmPfe+1{;AEKD~*e!THdtW8`bp0 z;_;t92BaPcv2WDlp7#pNO*f|wpHwCFRhd_pe@XtQb6s}1z`JerZUuQ2X=L~KMac#Z z$Ad!OMh#n8p!&mMo2^E8)Yq*ZFtzEn&+qnGWb{1KKb~DA*W>2&95&hp&nP;f?CsWf z%9ZtZ+WNsd4L zOQ+zS^_#tK6Opl{z}szZ_ad9Od>s0D=z&97A6-7~tTAifVxOphj^Ki;lc;~jW*j3zYsNXbp44l z7auy?At_&U(34uJ*1;QxE{&U;5t@?Uczjy-M^2+pWM95z*3Nd?-}x@q3Yd4gXGHx| zQ}1sq<@)K`DZhsu|LBrh#WLdY&g?h-lj_yJYxjq5N-^WIjeMtMlpnMwy52Ci!AnQh zpFZ#EtK_|9e>P$#D-4>umk^VAm=)eSf*K=d#Hsx7(b^J^N3? zk~?$>Hlwm@UpVo&*`&hFZXKC5ZRvfT?$4_IoU(OgUVDaE^l-D@KX2HpZIS;jvdV5S z|KFK$w?f)S&x*?oKJoXVV#`lo@rrNK%k9Bh_In{$yI+3ydhMNY8ABIL?;g{)wd0BT z6XxG9ROH0^>K(?<%q}!x#oTX6lMOG@P2#{M5dtq=7{s9yW*;Q6`H8v{3{ zP5fzB>!wdeK5}?sHRfehbXn_T`E{)}`<`+Lew?T)lvKRlj8b!>{GRJNCRE$tJBfGv0=jox3E)7t`8dXIlSb!ImztG(G-_}o)t`P zJx*O(WPXF1#+6dyCSTW`b~`k#p1S>#J7xa*U_W4x90MXcy1@ldGlv(_!VlpZqol*@Z<1&OgvD%J`1O zstb?U=$0}XG5&OvPCv``D-e)?bYH*)1rGVF$3LC<*Rk~ zS*ZDdlDEwc9eogZcI(WPn3%-4HKR6WJ?~bmaCs-==4Fcw+?)QX)ohcrI(I{DJc|b2 zPt@($U(q?u(W=&;RcZ}i-H~1P9lIlIWX9&7{;1gY+O8biQp5ahV*X05$F2`(`Qq(H z_SmyxwXGamXRb~S>o{MRWnKAveaC!plT$}6E_*U0K-Z&U!o(Hkx(c0bbd|;(ZJw25 z^6`25Bek|{HmgyrnSY0oGwY6UaLCyk9h9+X(NgnOi>wPdw9g#VC@$(o|7jr&YsWsT z5ZS)x(5ghD}U|nm*NR4Z~v<6G5qBEwA_3LhgVJ9$!^OZ|L(ye zcEyB8Oncis_qG*U+c9QLp~8vTgFS~YY**~W<%dhJKXKpi&Sd$NErrYM`?J=IJEg~0 zbgDMpufl9I<2JFC7o|VHG+>V9+N$o?(ytup_Oe(X=R@{|TQ+>hej@v6#YOv`m%M14 zP_k?O8AN`Ztr>EAFI$j%H`1fu1PZnH!e!+t(WqJjSt3NXQ z{qTPu=CAwn!o%CQzOQ8TyukXvmu!gbF43xyUwp{)VU=F9r=pA=eKe}?n5~X}k00a? zFI)3TXyS`6{TI%kGAY_7vBro?cVj2{?~B`aHLAm@n-9md$rv24?B8`Ot`D8D)GK%6 zfqvev4!N!F7PWI=#LjV_wwzvFb#G?azO1d*Ru-dlBZ6#7e0H%qJGJpJC+A|LeOKkK z{w?{pgx%>Y16qInbgklzzh_Tg)qJ0Ef`$j%FIc2!OhB6t!lDOcc*gYG52!TvtKr?Rw+dnuyj=7 zo3aPz)N{DnW@-G@T1WfW`j}Zcbx`5j7C+x|neWyxxpVxZ#Fe9GSYC)o%>1P5R-XXdl`;%)1|vBL*!v-Zw?_Ojre#q~G&?P}C)`rMjFKiMy z5Q{~rV>~Bxo3pmUg^_2nE59fZ^YH1fT^gLA`ubxw^{mH5+E|aX9J`XoL^ECHC@bIu%wTya~9N|9sU|PZ2 z2VS!eqzg`o#YW{X{a0_RwmmMDzrWbA)yoGF4OTodn#}HUH*afv!?Iz&FYAuf3+W%Y zxo&Rl4ITv(D*8rFy714D(#x;!c<|-z<|=N50<1&pJ$_X(H==9&GWLAv;e&TRTsC@W zy^=d_*V<`Rz%4H5)ihCS-9ZRVW3gPY+~Q%f66tlQK{?y z^6oZ$s_FCYr&Afa@B%gVgnrQl3~zYva^d+?Ze5>L$*Dlcp%YJCOt+|!&~)00_GU9H z{4}9SnJLpu=eKCuIHh6I1&^6=V+uQMa(G@kf7cBAvg^m??o6sXGT-2X#}{@CsondS z&ChQ??pSR5tm_Qd(7FLv9~>Q=cIn>R%&Ys0t{DIOse5az7F})ss$EP8+uY_y7X?S^ zf7i(^p>Tb#u-r5AuJ}b-e(Ac>{Hbe5dPz^$yNjljnzlJ$yi=5O#lf?l&8QuIM#J?DBa+;p?p)zO3K2^`R%D(tUSy?i%xpRgd3Vtm}TdTJK!5p4BQ>^1 zec$KhAEwoQGkb4*M&-j*3$;m^{pzK2p?#NIWmpdQ6z&*o>OS|ZQT5OTsg`BDDi=Lw zIje5`?&bI0*>6)$Y&EcMN}nOE`_yQ~eoR~bqHf@&;7gTtRT|$t_~czV|6_~zPd&Y9 z_+;q2FRu%DcK9@c{RC4D+kgJ*dWc;k5)pi}MfSVZS2t8!@Y|qaiGGK={$3*g_)*a} zCXNbt|M5e^*f!fQjjg#>_qJ;DeM6_!&iw3Ab70oXPX~H79vV7k(~^Ik%+2{PJ>Bb8 zo+rT#s9&wJwHo7fSK{}W|QMK_lMsd@+sf60kK76qo!AN z&OhL<9J_%z32*zJc+w;xX-taS^ePY8k2@xeKVRm`iMrd%p4;tKH)~<9$k5MsUnaaS z-KA2Em(VaTPt0w7UQeA{~7Nx`qaO< zF)edUynHYAZ=IEUp?B2d2G1_6E_3U!uF0+0yS&>!j|>02D9OousqW0HTHYanS)~U( z?yqaorgTUFGmqfyL$mvDTRh&_E=qq}`i{+&2IdYecDGfRQhZbYm<~}tcP(~&uF;463FF%o z>-lHDz&`#s$#rpWgz=<}6Jld78JXzH1&wt7q6=JBq>Hb~>t`+fPB&WkzQCcZ!gt#b z+){W}-Tv6O*@9s#^cibdxP^0Up)aqNikS7w;B}+k)iZe%8QkM{^Iblv zN3zX-HcE-GxW{hoelxPby59#baHu;p;c211Lwi||FWRhE&pr?9Eb?o(JE4I?b_>tW z2fGA>rsu19p?Bl?iy94G((8>!u0_^?j`a&Z*$*|WZC)FW3~u(N zK#hdl0iEtN?NFp&9hE6!;SG0ColGc(e>++s&>$~w5I;keS9fAtS+b$h~q z28}G=OFzkETkYb~2BED(9vK^dtW-bXanoMU9osCc@YAW{uW#mleE*?yt$7adMGks> zZoF>(^yE6m`|Q_`h)7MS`|kt)7TeAKdGzK@Xtz5DmU_kCs@d$&)NzNF{_B(Rd5@!) z@tj*8+itFy{i4N#mN~V?KAir@sz$qMS04USY3`Lu?V~+kT>fP4_UCe+GG*_lmEV4M z(ig`uYo=7Y*eY}N5Z}zD8@l<{virB*pi}9Y^{>|*d8pLGq6N3QwEgSBhM<50Iq9Q2 z|7^`Jk}Z{fdHh4~Re=NFHg4Z_pY_!Zx5A4Q|2;LNZHtclu7UQ(<`z2ZpkId8bA4RX zZT0>krQR%in%#O!hu&A4*kze)%F3E;d+k>bzgnldI}H7!x8LvEr|mkLwXVv!kGJnX zX=#4h&i}e+oA-|k-27;_JbF~x+0muKZ%_GL|L<9*8-uRZJoL87nS%Onk}vM7q|;xf z^7|z3gipD*tNt6dEOq#P{lzG~Ha%I}ZN%iHIg>nJtk~IO?7Cgvx4L?VCG9wqQDK9FHibne^@zgazY+gSQ_E$8r;QGX6K zOUn&iuzTgz#CIuI_dC}vQJ~YUc}^29Y-xDD{*_4k#u;C3Id0hLo7~H{&W8Fvg3RsMV+xv==u*J!aCZ8HlwS@mJ~uQV?tlFqtie~e5p5zo-)>Fo5nO1+#pu8y z`QCh-{ou&@qbn{J`Kv-i;=2<+uNhkPNwj6~^@y@9D@07s9^bC#KkF@aPWG)-pzBBP zS@%|sZ!_b=%u5@G#U6Nh{Y0E@;puz@PsHXvw(&H(+^oz*-HZl>=YBHlnG;Z`k3(AQ z0OS7C`p$ndVBd`Vd+L3jZI^w@F<(-nc9%fH2Td~dW^yKx2QW8Gh{g7JU=v`Xcz_2;i!E1Ak2mkdX%Wiy5 zf{FX7xlI>7EmM1ue~Ezmasn;%dT3;{S$F=c`><-~WX2f}28gTIHn2=?A z{F+ScnrnJz!n^{{kBtg*N#5OQt1iCZFH@bW?-)Cz^k6yGtcj@O&I<#_p_u4kvL*k8E$JMW_HO`Da^f>Xs^WZ+EcyZysZ!k2H$03F?quF7|5ZJJ-A3Hn#Cy zN>1{9+|=uj)CInk^3`8E|Jtpb#ec@^+ZebqyqkypovlagTO4_<+c~7->6B02Jzx87 z4D6%xOL%{WeR)@-=;ZKXnd9e~57Jf0TALF1`onFbq5;=7tWP|be|+}HFu&JTU)Z_D zHHuyrxN+Ozf(2VO$~<&vEyivN z{FG|+Y2VzaDLZ%kJ-{T&Cwg@FQ1+bkR!$4-rAOeuT9vtU=HQvHwjFmpS*U3BVb|a8 zyd1lr_k(t}`8Rr>PA+)Ox6_=c?QbR7+da8{$=d8ilFf5vT@EXmZ$3YRvS@% z)`6y*514JPQPuzFNkzuR{W;q8!N&8ZNre~AtrzgF+KQwLW!F6NSvuzNoX&ouZAzy% zv>WL+GBw4v(a2GglFml`u_iM6N{11bOU-Vc88_@z;fT$F8(V)Y{yNt9`oU8--%ZH! zow>4c>6aZ$PQHw&RK}-@on7bZ?HWwXKFMyV9mgJ+zdfwPPW$BHvscBeoOsT|cGMw@ z7l+($pEb6MX*posnh#Z09?x!gU}HeXAm8En>IGFQ9(SyyQ!AG--A`O-xH!OKz@uXx z<;z6waLjl)s$rcYHukeqM%?$PIyU!a)7YHT&CXgmzqr1$<%+m_`9GFuGjI5oW;0g| zTzq}zvkE2yO)_@w3m(CKFDbW82)p?zB{uZrJE!YK=Q=!Vwa#JszmBEuIe6`x`{nN_ zqZfOvjXD&p-Rt8Y7s`9b1$8gHb41v3Q|C(M4d>sEC>?a|_frqcUA)vQ?O&S>3yZ{AmQKxm zu)bi+>&yL)G^rE0s(!QODOG#UZ?H4ODr&b~PHdBlgWV#!Pj;>SDaGCN_Wa34k;;4J z*)K!YUa?_smtLB~(&O!kDgt+@Q?y<57p zJ(vB=nk_$gt^bDn>q06%@7*Ndn+{32PFB}Gn7jClUSr#9?55?TBG-pMn&I1fONpJ& zvtFA{|Ijo#+&f>RPCt%f>idREiO&qS9*>^k=`p)HI<=A!|_fB`b zlUk|m+(hs9dn(1f9Xx2KZC1VcgS`q|8@FrKlri&Xr=~e{p61`I%!9iQtxZ?AxIN@n zu+xZPr~H~1wV0yYGBM2haeR!u&5U|?B8u0|uu1G5TKD6DoD(*OdYG1Z>V9UHb=1}u zRgxz!T6ybebp7C7t7g0RyPNwd`e*M^li!xEy|d7ox)U~Eig3>iu^7L1_D7xTGu?)e zcaEV^+fFWcG1O_Se}xLSmX;ix)p+@WHKW?zj~?#0^=+<4a`NtOjWd@xR?h#+@GZw9 zdwwjocBp6W;vJhze))TDPQx?hDpyOjzH}*}SCJCaijVPieeG@X%cqh#zg51lHODKU zVFPwYeCs3ghE+~otNZAB{95kl;f3uEUcZ_&Sr@Zem)fY&Geze61>-JD-mhFM&@d&s9zvggoijh{Vp>~O%|vx4!fuB&hDY-cpd z{lQ6{OUh@ftc`pBs(bqHkHfkjOx!zY?%{>M_k1(|-SU$DzjgI$-T9+_%^2vdpGAl*(E0@ zZQ+HI8+9(OPe1;8;?&S=2AY=g;uwY9a;2(?Nf)zM)_jfM@L$-;c}(k zq%CJECe8Ztc(LP{PSdPT9J>C#M5Eb0dwvZc-1S0(rdM3v-u^VsBK5aYJ#*4#uW{&c zdVcrGpMDAm-1x5ETyJmtW%G{}xaKZBdVfRIOaC%$*n`~m+27o1<(4$lvSFbWyDvvZ z1Qok_(@VNHvZ+nSPVwgEzmJLO-@58Ap}E6rJG*yo_T|It3bhMOb98VYH^sqv!k5pF ztv^-@{&+6(&hFW#%07AD@Mf1juX6o*WFPvx`rlD`zn{j>p}^;aVJ-Ym-=E#^So=0U z?JESi1uSZH^~89mKQ|w=S@B@g%8Sp&n8sHvFyvIc!-#(ZJO;10&~x70X&rQ9eD}07 zT`=T}E_CCl7M^ZHpSXK9ymj~H_0P5z`Ccscd9B;X9%?;qOsNyO-t8t^J7q)_5Bo`J31bK2b)fB*N$`1wa|eoYyie12Dz4eK)(IL}x;_wJGle;p}pyEJ&t#j%4r zx6zqd9D8znN`uCQp5D)yS*^tK1#U47Jg?k-IdNXtvfb|viyrsMQj|xt?(6a0DK7r4Eb3c6G>gn9q%~Rf%GGDQ-Sh$^Ixt8^VQf!}3m^toJ zP`%=V@AmE)mmYm;sQe6w+J!Ukt}wNa z7*x>ai2ac6?fGV5Pjd%aj>}q8cTmlOx)_VY1-4Epv3d5Y z`5%vtKYvO$@!EwGB@!)9BvGBy4lp6d>^W;8h*CSFYl8)VhhyyY?pOv&-?Wg zT5g|Sbn5Zf6?*=DVqCp5Rf9i8B(=PkHel(>{G05Cr+=!q^snuYbamn$c+Wf%XjjA0 z>&w068#lC=R(|sBWdo9qHHvXd&R*8auR``qi(%uReOb}vX+IOov;-^j!0~0POs{XX zw}H+4gu`|XTh*&+_F=R~*q)7HzqN>8JJ7mr&Y^t2R?B{Jaag-g>vnJ0(c8R7kjbDM zvs;!Pch_cE)iK@US8lL#sOZ+tXv4+u3DaFeMm)&BXnwvftNh2*3yHqj%(7Xv$_`#h zXD4K5{WLXvPO4wAK5lWto1LE)vu3QzlJLqooyykrT9&)I+BGvP-S{y!2}Qh*zBaPV zEH!)rw+#|B;h4mi_bvZgNYhV-O;|r$egnxRxxZs8kPs$~RrDSB) zXu9g*ptGg_xf5$QWRSCq!zSBV$tFY1E?R`2d~Uopuypy#w;z@J%Y1NR+UQ%Mvr8Qq z+y88k>D?UN@OGg|d!Ie(eIVySsRL_Yc~5vXV9b`laY2jr75H5H#0H();gp!Iff?Z* zEhfIWs?)i}wHOiBfXVZn?tRNH;p6OP?K`&23BPnSb#$SGpZ?JK9SY1>E^Ud;>p{sD z(F5;0m|Hnaw7Xn)rbk>*iAuV+2|fek@r#X6MYe3o{ROx)FWb#rRpW z?Z;k4J2if*tG&g|tJjUDtsZoZOsVANd+|}lErsu-jJ9gLbK2`_9yPXK-In3eCEne* zrtb32vIXwHy7ks#T=Ap~)2mxNvsX9R{32k(t#>_gdnKRBj`3@?CUA6G)oV5K2Mu?- zezBU{Jl~K0>vU1a{@&^_tKO&mfA{OTdXLAB9dZl z5?2)3fAeC?b;(_fd*1sH-rOo=O8AlJk|SpoE;DEAikUTB?nZ~$WwLvC8y0RJY;?BI z{TGAYM^uffZaJ$%+l+vNrnAyU-3gg;>wJ&ISr1HleAyqIQRRNS`rS*Eyja5fp!bSV zt0E`9dgC#7Ri(nmoTHlexin@*s;)tuuE&2aVYx{cQnj*s^pm3XUPNEMxz6pHN9GWd zl1DOq+gWz-wK{jw;%aLB^(N_0S}y9oBIEBf+Y4IE8rrq|w7AvHNBN#JZoV-7OSq-g zrx7_34Hj21d1D;?&^jahUZg`}WQ(U=J|-q@2>Cs-Xhw8Zli=XRx_}<%8z)a{`n!im zald%)wa*=MbrGFR{>({@v2e6bE_1Ep%q4T{bja-X>YphW?aB^ucR5jb+!{ZNtN!(x zO^(jISmVacCYfAA^xrOpcT2+QWV<@ZlE^C?lNV4AL6YqQ>ddz<<$n(UZh-0-)d8;9Qt z3i;E+F~O#V$-%;R-X1CP%hX__F3z6MzC5uS9@03u)T)!cBXwte*u6Nj1}1h%9ch=; zYHZ1{Yu8R?O+NA4Ki)$R1`i)QWrJ?pur=vcQ|tDA_;^ByZ(3is6>qaw|91b#hk@t% zKKx|T)uLvv<+^nqru~ZDEVB9B&csS7RiaAS9(O5ZXJ#E@LAbvt?_~Wqg;Yk9KIRs9@4M)hW$Z( z^NkDk=odcSvhJt74|0Ah^wP~Lp};lc@vYq(o+wbY<>x6TF_WqVH$L(5ZM`F--Q$)x zTHAg3alc6!Fd_ztJ^mk^KM9|MLF;-qIzePN?QvR*kSw2mTlS(j`muOl`}njBt^w zwwG7_5B6GYti=45_o{tjuyO{>1N&=AER%r_!g`nmw?G`0*BdR`wi1C9Yk|^xDFEMq$zCG=T5MOT zd{DuG!a^V7r1Pd=Ru&ceDB9DXy;togOZAE3M&zfxnIOFudUm$3OkYdHVflM*2xb+k zM6pI1co4o;jK9jXNUY+;e-{?|5GS39f>~8TqSZj@y@vj`nVU9ll**e0^Y_7mg*Y*( zZL5ijm173&s`kIlJg|Si#Ei5$C@ddC`xRs8l+an7Gtrj{ZLU~X`SA)L9M^o%UE)`NZIFA)n0!QdyIMJO&FE;>5fpbk^h*u>bbw z#Hx`yt3&NaD7FD5$-keJB)wKQ@sY3}I@z^E9G2G`E10zi6h^E5c(2M2R58gn- {fnXpXPT15B54fllS3)@@|a4#kTXmsqwj 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 From cfb613d6bb5990dc1ef1071a98fe8d0c56eda747 Mon Sep 17 00:00:00 2001 From: ohyzha Date: Thu, 2 Jan 2025 17:40:52 +0200 Subject: [PATCH 3/6] implement tight atlas packing --- .../Scene/BitmapFontAtlasGenerator.cpp | 178 ++++++++++++------ .../Scene/BitmapFontAtlasGenerator.hpp | 2 +- 2 files changed, 125 insertions(+), 55 deletions(-) diff --git a/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.cpp b/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.cpp index a0ff547..4be3489 100644 --- a/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.cpp +++ b/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.cpp @@ -7,6 +7,88 @@ #include "BitmapFontAtlasGenerator.hpp" #include "Base/Logger.hpp" +namespace +{ + using namespace OpenVulkano; + + struct GlyphForPacking + { + uint32_t code; + size_t firstGlyphByteInAtlas; + Math::Vector2d atlasPos; + Math::Vector2i wh; + }; + + struct Shelf + { + Shelf(uint32_t width, uint32_t height) : m_width(width), m_height(height), m_remainingWidth(width) {} + bool HasSpaceForGlyph(uint32_t glyphWidth, uint32_t glyphHeight) const + { + return m_remainingWidth >= glyphWidth && m_height >= glyphHeight; + } + uint32_t GetWidth() const { return m_width; } + uint32_t GetHeight() const { return m_height; } + uint32_t GetNextGlyphPos() const { return m_nextGlyphPos; }; + uint32_t GetOccupiedSize() const { return ((m_width - m_remainingWidth) * m_height); } + std::optional AddGlyph(uint32_t glyphWidth, uint32_t glyphHeight) + { + if (!HasSpaceForGlyph(glyphWidth, glyphHeight)) + { + return {}; + } + uint32_t insertionPos = m_nextGlyphPos; + m_nextGlyphPos += glyphWidth; + m_remainingWidth -= glyphWidth; + return insertionPos; + } + + private: + uint32_t m_width; + uint32_t m_height; + uint32_t m_remainingWidth; + uint32_t m_nextGlyphPos = 0; + }; + + std::vector CreateShelves(uint32_t atlasWidth, std::vector& glyphs, const Scene::FtFaceRecPtr& face) + { + std::vector shelves; + for (GlyphForPacking& glyph : glyphs) + { + FT_Error error = FT_Load_Char(face.get(), glyph.code, FT_LOAD_RENDER); + if (error) + { + continue; + } + + FT_GlyphSlot slot = face->glyph; + bool needNewShelf = true; + uint32_t totalPrevShelvesHeight = 0; + for (Shelf& shelf : shelves) + { + if (std::optional insertionPosX = shelf.AddGlyph(glyph.wh.x, glyph.wh.y)) + { + glyph.firstGlyphByteInAtlas = *insertionPosX + (totalPrevShelvesHeight * atlasWidth); + glyph.atlasPos.x = *insertionPosX; + glyph.atlasPos.y = totalPrevShelvesHeight; + needNewShelf = false; + break; + } + totalPrevShelvesHeight += shelf.GetHeight(); + } + + if (needNewShelf) + { + shelves.emplace_back(atlasWidth, glyph.wh.y); + shelves.back().AddGlyph(glyph.wh.x, glyph.wh.y); + glyph.firstGlyphByteInAtlas = totalPrevShelvesHeight * atlasWidth; + glyph.atlasPos.x = 0; + glyph.atlasPos.y = totalPrevShelvesHeight; + } + } + return shelves; + } +} + namespace OpenVulkano::Scene { void BitmapFontAtlasGenerator::GenerateAtlas(const std::string& fontFile, const std::set& charset, @@ -33,28 +115,43 @@ namespace OpenVulkano::Scene m_atlasData = std::make_shared(); const auto& [lib, face] = FontAtlasGeneratorBase::InitFreetype(source); - - Math::Vector2ui cellSize; if (m_pixelSizeConfig.isPixelSize) { - cellSize = { m_pixelSizeConfig.size, m_pixelSizeConfig.size }; - // set pixel width/height lower than glyph size above, otherwise some glyphs will be cropped or some overlapping will be present - FT_Set_Pixel_Sizes(face.get(), 0, cellSize.y - cellSize.y / 3); + FT_Set_Pixel_Sizes(face.get(), 0, m_pixelSizeConfig.size); } else { const float pixelSize = (m_pixelSizeConfig.size * m_pixelSizeConfig.dpi) / 72.0f; - //int fontHeight = round((face->bbox.yMax - face->bbox.yMin) * pixelSize / face->units_per_EM); - //int fontWidth = round((face->bbox.xMax - face->bbox.xMin) * pixelSize / face->units_per_EM); - cellSize = { pixelSize, pixelSize }; - FT_Set_Char_Size(face.get(), 0, static_cast(m_pixelSizeConfig.size) * 64, - static_cast(m_pixelSizeConfig.dpi), static_cast(m_pixelSizeConfig.dpi)); + FT_Set_Pixel_Sizes(face.get(), 0, pixelSize); } - - const double sq = std::sqrt(chset.size()); - const size_t glyphsPerRow = (static_cast(sq)) + (sq - static_cast(sq) != 0); - const size_t rows = (chset.size() / glyphsPerRow) + (chset.size() % glyphsPerRow != 0); - const Math::Vector2ui atlasResolution = { glyphsPerRow * cellSize.x, rows * cellSize.y }; + + FT_Error error = 0; + double area = 0; + std::vector allGlyphs; + allGlyphs.reserve(chset.size()); + for (uint32_t codepoint : chset) + { + error = FT_Load_Char(face.get(), codepoint, FT_LOAD_RENDER); + if (error) + { + Logger::APP->error("FT_Load_Char for codepoint {} has failed. {}", codepoint, GetFreetypeErrorDescription(error)); + continue; + } + FT_GlyphSlot slot = face->glyph; + unsigned int h = slot->bitmap.rows; + unsigned int w = slot->bitmap.width; + GlyphForPacking& glyph = allGlyphs.emplace_back(); + glyph.code = codepoint; + glyph.wh = { slot->bitmap.width, slot->bitmap.rows }; + area += h * w; + } + + const double sq = ceil(sqrt(area)); + std::sort(allGlyphs.begin(), allGlyphs.end(), [](const GlyphForPacking& a, const GlyphForPacking& b) { return a.wh.y > b.wh.y; }); + std::vector shelves = ::CreateShelves(sq, allGlyphs, face); + uint32_t atlasHeight = 0; + std::for_each(shelves.begin(), shelves.end(), [&](const Shelf& shelf) { atlasHeight += shelf.GetHeight(); }); + const Math::Vector2ui atlasResolution = { sq, atlasHeight }; // same as in msdfgen lib by default. see import-font.h for reference // TODO: probably also support keeping coordinates as the integer values native to the font file @@ -64,60 +161,34 @@ namespace OpenVulkano::Scene SetupAtlasData(atlasResolution, face->height * scaleFactor, FontAtlasType::BITMAP); size_t loadedGlyphs = 0; - FT_Error error = 0; - int currentPosX = 0; - int currentPosY = 0; - Math::Vector2ui gridPos = { 0, 0 }; - for (uint32_t codepoint : chset) + for (const GlyphForPacking& glyph : allGlyphs) { - error = FT_Load_Char(face.get(), codepoint, FT_LOAD_RENDER); + error = FT_Load_Char(face.get(), glyph.code, FT_LOAD_RENDER); if (error) { - Logger::APP->error("FT_Load_Char for codepoint {} has failed. {}", codepoint, GetFreetypeErrorDescription(error)); + Logger::APP->error("FT_Load_Char for codepoint {} has failed. {}", glyph.code, + GetFreetypeErrorDescription(error)); continue; } FT_GlyphSlot slot = face->glyph; - if (slot->bitmap.width > cellSize.x || slot->bitmap.rows > cellSize.y) - { - Logger::APP->warn("Glyph size exceeds grid cell size: {}x{} exceeds {}x{}", slot->bitmap.width, slot->bitmap.rows, cellSize.x, cellSize.y); - // skip such glyph for now to avoid crash - continue; - } - - const size_t firstGlyphByte = (gridPos.y * cellSize.x + gridPos.x * atlasResolution.x * cellSize.y); for (int row = 0; row < slot->bitmap.rows; row++) { for (int col = 0; col < slot->bitmap.width; col++) { - m_atlasData->img->data[firstGlyphByte + row * atlasResolution.x + col] = slot->bitmap.buffer[(slot->bitmap.rows - 1 - row) * slot->bitmap.pitch + col]; + m_atlasData->img->data[glyph.firstGlyphByteInAtlas + row * atlasResolution.x + col] = + slot->bitmap.buffer[(slot->bitmap.rows - 1 - row) * slot->bitmap.pitch + col]; } } - GlyphInfo& glyphInfo = m_atlasData->glyphs[codepoint]; - const Math::Vector2d glyphMetrics = { slot->metrics.width * scaleFactor, slot->metrics.height * scaleFactor }; - const Math::Vector2d glyphBearing = { slot->metrics.horiBearingX * scaleFactor, slot->metrics.horiBearingY * scaleFactor }; - // metrics are 1/64 of a pixel - constexpr double toPixelScaler = 1. / 64; - const Math::Vector2d whPixel = { static_cast(slot->metrics.width * toPixelScaler), - static_cast(slot->metrics.height * toPixelScaler) }; - Math::AABB glyphAtlasAABB(Math::Vector3f(currentPosX, currentPosY, 0), Math::Vector3f(currentPosX + whPixel.x, currentPosY + whPixel.y, 0)); + GlyphInfo& glyphInfo = m_atlasData->glyphs[glyph.code]; + const Math::Vector2d glyphMetrics = { slot->metrics.width * scaleFactor, + slot->metrics.height * scaleFactor }; + const Math::Vector2d glyphBearing = { slot->metrics.horiBearingX * scaleFactor, + slot->metrics.horiBearingY * scaleFactor }; + Math::AABB glyphAtlasAABB(Math::Vector3f(glyph.atlasPos.x, glyph.atlasPos.y, 0), Math::Vector3f(glyph.atlasPos.x + slot->bitmap.width, glyph.atlasPos.y + slot->bitmap.rows, 0)); SetGlyphData(glyphInfo, glyphBearing, glyphMetrics, glyphAtlasAABB, slot->advance.x * scaleFactor); - - currentPosX += cellSize.x; loadedGlyphs++; - - if (currentPosX + cellSize.x > atlasResolution.x) - { - currentPosX = 0; - currentPosY += cellSize.y; - gridPos.y = 0; - gridPos.x++; - } - else - { - gridPos.y++; - } } if (pngOutput) @@ -125,6 +196,5 @@ namespace OpenVulkano::Scene SavePng(*pngOutput); } Logger::APP->debug("Created atlas with {} glyphs, {} glyphs could not be loaded", loadedGlyphs, chset.size() - loadedGlyphs); - } } diff --git a/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.hpp b/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.hpp index 7ec1fad..a4db4b5 100644 --- a/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.hpp +++ b/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.hpp @@ -12,7 +12,7 @@ namespace OpenVulkano::Scene { struct FontPixelSizeConfig { - float size = 16.f; + float size = 24.f; float dpi = 72.f; bool isPixelSize = true; }; From 9ff67815d0c3ba628dbb1c0a377bab23f5248a38 Mon Sep 17 00:00:00 2001 From: ohyzha Date: Fri, 3 Jan 2025 12:16:59 +0200 Subject: [PATCH 4/6] code refactoring --- openVulkanoCpp/Image/ImageLoader.cpp | 2 +- .../Scene/BitmapFontAtlasGenerator.cpp | 152 +++++------------- .../Scene/BitmapFontAtlasGenerator.hpp | 2 + openVulkanoCpp/Scene/Shelf.hpp | 96 +++++++++++ 4 files changed, 135 insertions(+), 117 deletions(-) create mode 100644 openVulkanoCpp/Scene/Shelf.hpp diff --git a/openVulkanoCpp/Image/ImageLoader.cpp b/openVulkanoCpp/Image/ImageLoader.cpp index f81b6ef..c5d6d17 100644 --- a/openVulkanoCpp/Image/ImageLoader.cpp +++ b/openVulkanoCpp/Image/ImageLoader.cpp @@ -44,7 +44,7 @@ namespace OpenVulkano::Image if (channels == 3) { result.data = OpenVulkano::Array(width * height * 4); - for (size_t srcPos = 0, dstPos = 0; srcPos < width * height * 3; srcPos += 3, dstPos += 4) + for (size_t srcPos = 0, dstPos = 0; dstPos < result.data.Size(); srcPos += 3, dstPos += 4) { result.data[dstPos] = pixelData[srcPos]; result.data[dstPos + 1] = pixelData[srcPos + 1]; diff --git a/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.cpp b/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.cpp index 4be3489..a869827 100644 --- a/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.cpp +++ b/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.cpp @@ -7,88 +7,6 @@ #include "BitmapFontAtlasGenerator.hpp" #include "Base/Logger.hpp" -namespace -{ - using namespace OpenVulkano; - - struct GlyphForPacking - { - uint32_t code; - size_t firstGlyphByteInAtlas; - Math::Vector2d atlasPos; - Math::Vector2i wh; - }; - - struct Shelf - { - Shelf(uint32_t width, uint32_t height) : m_width(width), m_height(height), m_remainingWidth(width) {} - bool HasSpaceForGlyph(uint32_t glyphWidth, uint32_t glyphHeight) const - { - return m_remainingWidth >= glyphWidth && m_height >= glyphHeight; - } - uint32_t GetWidth() const { return m_width; } - uint32_t GetHeight() const { return m_height; } - uint32_t GetNextGlyphPos() const { return m_nextGlyphPos; }; - uint32_t GetOccupiedSize() const { return ((m_width - m_remainingWidth) * m_height); } - std::optional AddGlyph(uint32_t glyphWidth, uint32_t glyphHeight) - { - if (!HasSpaceForGlyph(glyphWidth, glyphHeight)) - { - return {}; - } - uint32_t insertionPos = m_nextGlyphPos; - m_nextGlyphPos += glyphWidth; - m_remainingWidth -= glyphWidth; - return insertionPos; - } - - private: - uint32_t m_width; - uint32_t m_height; - uint32_t m_remainingWidth; - uint32_t m_nextGlyphPos = 0; - }; - - std::vector CreateShelves(uint32_t atlasWidth, std::vector& glyphs, const Scene::FtFaceRecPtr& face) - { - std::vector shelves; - for (GlyphForPacking& glyph : glyphs) - { - FT_Error error = FT_Load_Char(face.get(), glyph.code, FT_LOAD_RENDER); - if (error) - { - continue; - } - - FT_GlyphSlot slot = face->glyph; - bool needNewShelf = true; - uint32_t totalPrevShelvesHeight = 0; - for (Shelf& shelf : shelves) - { - if (std::optional insertionPosX = shelf.AddGlyph(glyph.wh.x, glyph.wh.y)) - { - glyph.firstGlyphByteInAtlas = *insertionPosX + (totalPrevShelvesHeight * atlasWidth); - glyph.atlasPos.x = *insertionPosX; - glyph.atlasPos.y = totalPrevShelvesHeight; - needNewShelf = false; - break; - } - totalPrevShelvesHeight += shelf.GetHeight(); - } - - if (needNewShelf) - { - shelves.emplace_back(atlasWidth, glyph.wh.y); - shelves.back().AddGlyph(glyph.wh.x, glyph.wh.y); - glyph.firstGlyphByteInAtlas = totalPrevShelvesHeight * atlasWidth; - glyph.atlasPos.x = 0; - glyph.atlasPos.y = totalPrevShelvesHeight; - } - } - return shelves; - } -} - namespace OpenVulkano::Scene { void BitmapFontAtlasGenerator::GenerateAtlas(const std::string& fontFile, const std::set& charset, @@ -125,33 +43,12 @@ namespace OpenVulkano::Scene FT_Set_Pixel_Sizes(face.get(), 0, pixelSize); } - FT_Error error = 0; - double area = 0; - std::vector allGlyphs; - allGlyphs.reserve(chset.size()); - for (uint32_t codepoint : chset) - { - error = FT_Load_Char(face.get(), codepoint, FT_LOAD_RENDER); - if (error) - { - Logger::APP->error("FT_Load_Char for codepoint {} has failed. {}", codepoint, GetFreetypeErrorDescription(error)); - continue; - } - FT_GlyphSlot slot = face->glyph; - unsigned int h = slot->bitmap.rows; - unsigned int w = slot->bitmap.width; - GlyphForPacking& glyph = allGlyphs.emplace_back(); - glyph.code = codepoint; - glyph.wh = { slot->bitmap.width, slot->bitmap.rows }; - area += h * w; - } - - const double sq = ceil(sqrt(area)); - std::sort(allGlyphs.begin(), allGlyphs.end(), [](const GlyphForPacking& a, const GlyphForPacking& b) { return a.wh.y > b.wh.y; }); - std::vector shelves = ::CreateShelves(sq, allGlyphs, face); + auto [allGlyphs, area] = InitGlyphsForPacking(chset, face); + const double atlasWidth = ceil(sqrt(area)); + std::vector shelves = Shelf::CreateShelves(atlasWidth, allGlyphs, face); uint32_t atlasHeight = 0; std::for_each(shelves.begin(), shelves.end(), [&](const Shelf& shelf) { atlasHeight += shelf.GetHeight(); }); - const Math::Vector2ui atlasResolution = { sq, atlasHeight }; + const Math::Vector2ui atlasResolution = { atlasWidth, atlasHeight }; // same as in msdfgen lib by default. see import-font.h for reference // TODO: probably also support keeping coordinates as the integer values native to the font file @@ -163,22 +60,20 @@ namespace OpenVulkano::Scene size_t loadedGlyphs = 0; for (const GlyphForPacking& glyph : allGlyphs) { - error = FT_Load_Char(face.get(), glyph.code, FT_LOAD_RENDER); + FT_Error error = FT_Load_Char(face.get(), glyph.code, FT_LOAD_RENDER); if (error) { - Logger::APP->error("FT_Load_Char for codepoint {} has failed. {}", glyph.code, - GetFreetypeErrorDescription(error)); + Logger::SCENE->error("FT_Load_Char for codepoint {} has failed. {}", glyph.code, + GetFreetypeErrorDescription(error)); continue; } FT_GlyphSlot slot = face->glyph; for (int row = 0; row < slot->bitmap.rows; row++) { - for (int col = 0; col < slot->bitmap.width; col++) - { - m_atlasData->img->data[glyph.firstGlyphByteInAtlas + row * atlasResolution.x + col] = - slot->bitmap.buffer[(slot->bitmap.rows - 1 - row) * slot->bitmap.pitch + col]; - } + std::memcpy(&m_atlasData->img->data[glyph.firstGlyphByteInAtlas + row * atlasResolution.x], + &slot->bitmap.buffer[(slot->bitmap.rows - 1 - row) * slot->bitmap.pitch], + slot->bitmap.width); } GlyphInfo& glyphInfo = m_atlasData->glyphs[glyph.code]; @@ -195,6 +90,31 @@ namespace OpenVulkano::Scene { SavePng(*pngOutput); } - Logger::APP->debug("Created atlas with {} glyphs, {} glyphs could not be loaded", loadedGlyphs, chset.size() - loadedGlyphs); + Logger::SCENE->debug("Created atlas with {} glyphs, {} glyphs could not be loaded", loadedGlyphs, chset.size() - loadedGlyphs); + } + + std::pair, double> + BitmapFontAtlasGenerator::InitGlyphsForPacking(const std::set& chset, const FtFaceRecPtr& face) + { + FT_Error error = 0; + double area = 0; + std::vector allGlyphs; + allGlyphs.reserve(chset.size()); + for (uint32_t codepoint : chset) + { + error = FT_Load_Char(face.get(), codepoint, FT_LOAD_RENDER); + if (error) + { + Logger::SCENE->error("FT_Load_Char for codepoint {} has failed. {}", codepoint, + GetFreetypeErrorDescription(error)); + continue; + } + FT_GlyphSlot slot = face->glyph; + GlyphForPacking& glyph = allGlyphs.emplace_back(codepoint, Math::Vector2ui(slot->bitmap.width, slot->bitmap.rows)); + area += slot->bitmap.rows * slot->bitmap.width; + } + std::sort(allGlyphs.begin(), allGlyphs.end(), + [](const GlyphForPacking& a, const GlyphForPacking& b) { return a.size.y > b.size.y; }); + return { allGlyphs, area }; } } diff --git a/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.hpp b/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.hpp index a4db4b5..bf61664 100644 --- a/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.hpp +++ b/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.hpp @@ -7,6 +7,7 @@ #pragma once #include "FontAtlasGeneratorBase.hpp" +#include "Shelf.hpp" namespace OpenVulkano::Scene { @@ -27,6 +28,7 @@ namespace OpenVulkano::Scene const std::optional& pngOutput = std::nullopt) override; private: void Generate(const std::variant>& source, const std::set& chset, const std::optional& pngOutput); + std::pair, double> InitGlyphsForPacking(const std::set& chset, const FtFaceRecPtr& face); private: FontPixelSizeConfig m_pixelSizeConfig; }; diff --git a/openVulkanoCpp/Scene/Shelf.hpp b/openVulkanoCpp/Scene/Shelf.hpp new file mode 100644 index 0000000..b0522b7 --- /dev/null +++ b/openVulkanoCpp/Scene/Shelf.hpp @@ -0,0 +1,96 @@ +/* + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ + +#pragma once + +#include "Math/Math.hpp" +#include "Scene/FreetypeHelper.hpp" +#include +#include + +namespace OpenVulkano::Scene +{ + struct GlyphForPacking + { + uint32_t code; + Math::Vector2i size; + Math::Vector2d atlasPos; + size_t firstGlyphByteInAtlas; + }; + + struct Shelf + { + inline static std::vector CreateShelves(uint32_t atlasWidth, std::vector& glyphs, + const FtFaceRecPtr& face); + + Shelf(uint32_t width, uint32_t height) : m_width(width), m_height(height), m_remainingWidth(width) {} + bool HasSpaceForGlyph(uint32_t glyphWidth, uint32_t glyphHeight) const + { + return m_remainingWidth >= glyphWidth && m_height >= glyphHeight; + } + uint32_t GetWidth() const { return m_width; } + uint32_t GetHeight() const { return m_height; } + uint32_t GetNextGlyphPos() const { return m_nextGlyphPos; }; + uint32_t GetOccupiedSize() const { return ((m_width - m_remainingWidth) * m_height); } + std::optional AddGlyph(uint32_t glyphWidth, uint32_t glyphHeight) + { + if (!HasSpaceForGlyph(glyphWidth, glyphHeight)) + { + return {}; + } + uint32_t insertionPos = m_nextGlyphPos; + m_nextGlyphPos += glyphWidth; + m_remainingWidth -= glyphWidth; + return insertionPos; + } + + private: + uint32_t m_width; + uint32_t m_height; + uint32_t m_remainingWidth; + uint32_t m_nextGlyphPos = 0; + }; + + std::vector Shelf::CreateShelves(uint32_t atlasWidth, std::vector& glyphs, + const FtFaceRecPtr& face) + { + std::vector shelves; + for (GlyphForPacking& glyph : glyphs) + { + FT_Error error = FT_Load_Char(face.get(), glyph.code, FT_LOAD_RENDER); + if (error) + { + continue; + } + + FT_GlyphSlot slot = face->glyph; + bool needNewShelf = true; + uint32_t totalPrevShelvesHeight = 0; + for (Shelf& shelf : shelves) + { + if (std::optional insertionPosX = shelf.AddGlyph(glyph.size.x, glyph.size.y)) + { + glyph.firstGlyphByteInAtlas = *insertionPosX + (totalPrevShelvesHeight * atlasWidth); + glyph.atlasPos.x = *insertionPosX; + glyph.atlasPos.y = totalPrevShelvesHeight; + needNewShelf = false; + break; + } + totalPrevShelvesHeight += shelf.GetHeight(); + } + + if (needNewShelf) + { + shelves.emplace_back(atlasWidth, glyph.size.y); + shelves.back().AddGlyph(glyph.size.x, glyph.size.y); + glyph.firstGlyphByteInAtlas = totalPrevShelvesHeight * atlasWidth; + glyph.atlasPos.x = 0; + glyph.atlasPos.y = totalPrevShelvesHeight; + } + } + return shelves; + } +} From 58a56560d9962f0ce437d55f21dbb142e723b574 Mon Sep 17 00:00:00 2001 From: ohyzha Date: Sun, 5 Jan 2025 18:14:29 +0200 Subject: [PATCH 5/6] rework FontPixelSizeConfig struct --- .../Scene/BitmapFontAtlasGenerator.cpp | 10 +-------- .../Scene/BitmapFontAtlasGenerator.hpp | 21 +++++++++++++++---- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.cpp b/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.cpp index a869827..f4a2fcc 100644 --- a/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.cpp +++ b/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.cpp @@ -33,15 +33,7 @@ namespace OpenVulkano::Scene m_atlasData = std::make_shared(); const auto& [lib, face] = FontAtlasGeneratorBase::InitFreetype(source); - if (m_pixelSizeConfig.isPixelSize) - { - FT_Set_Pixel_Sizes(face.get(), 0, m_pixelSizeConfig.size); - } - else - { - const float pixelSize = (m_pixelSizeConfig.size * m_pixelSizeConfig.dpi) / 72.0f; - FT_Set_Pixel_Sizes(face.get(), 0, pixelSize); - } + FT_Set_Pixel_Sizes(face.get(), 0, m_pixelSizeConfig.CalculatePixelSize()); auto [allGlyphs, area] = InitGlyphsForPacking(chset, face); const double atlasWidth = ceil(sqrt(area)); diff --git a/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.hpp b/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.hpp index bf61664..93acf7f 100644 --- a/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.hpp +++ b/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.hpp @@ -11,11 +11,24 @@ namespace OpenVulkano::Scene { - struct FontPixelSizeConfig + class FontPixelSizeConfig { - float size = 24.f; - float dpi = 72.f; - bool isPixelSize = true; + public: + FontPixelSizeConfig(float size = 24.f, float dpi = 72.f, bool isPixelSize = true) + : m_size(size), m_dpi(dpi), m_isPixelSize(isPixelSize) + { + } + void SetSize(float size) { m_size = size; } + void SetDpi(float dpi) { m_dpi = dpi; } + void SetIsPixelSize(bool isPixelSize) { m_isPixelSize = isPixelSize; } + [[nodiscard]] float GetSize() const { return m_size; } + [[nodiscard]] float GetDpi() const { return m_dpi; } + [[nodiscard]] bool GetIsPixelSize() const { return m_isPixelSize; } + [[nodiscard]] unsigned CalculatePixelSize() const { return m_isPixelSize ? m_size : (m_size * m_dpi) / 72.0f; } + private: + float m_size; + float m_dpi; + bool m_isPixelSize; }; class BitmapFontAtlasGenerator : public FontAtlasGeneratorBase From d446b9695d70402059a9637c460057a3960813c0 Mon Sep 17 00:00:00 2001 From: ohyzha Date: Sun, 5 Jan 2025 19:04:48 +0200 Subject: [PATCH 6/6] move logic into separate function --- .../Scene/BitmapFontAtlasGenerator.cpp | 65 ++++++++++--------- .../Scene/BitmapFontAtlasGenerator.hpp | 1 + 2 files changed, 35 insertions(+), 31 deletions(-) diff --git a/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.cpp b/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.cpp index f4a2fcc..119bd7b 100644 --- a/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.cpp +++ b/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.cpp @@ -48,41 +48,11 @@ namespace OpenVulkano::Scene // The coordinates will be normalized to the em size, i.e. 1 = 1 em const double scaleFactor = (1. / face->units_per_EM); SetupAtlasData(atlasResolution, face->height * scaleFactor, FontAtlasType::BITMAP); - - size_t loadedGlyphs = 0; - for (const GlyphForPacking& glyph : allGlyphs) - { - FT_Error error = FT_Load_Char(face.get(), glyph.code, FT_LOAD_RENDER); - if (error) - { - Logger::SCENE->error("FT_Load_Char for codepoint {} has failed. {}", glyph.code, - GetFreetypeErrorDescription(error)); - continue; - } - - FT_GlyphSlot slot = face->glyph; - for (int row = 0; row < slot->bitmap.rows; row++) - { - std::memcpy(&m_atlasData->img->data[glyph.firstGlyphByteInAtlas + row * atlasResolution.x], - &slot->bitmap.buffer[(slot->bitmap.rows - 1 - row) * slot->bitmap.pitch], - slot->bitmap.width); - } - - GlyphInfo& glyphInfo = m_atlasData->glyphs[glyph.code]; - const Math::Vector2d glyphMetrics = { slot->metrics.width * scaleFactor, - slot->metrics.height * scaleFactor }; - const Math::Vector2d glyphBearing = { slot->metrics.horiBearingX * scaleFactor, - slot->metrics.horiBearingY * scaleFactor }; - Math::AABB glyphAtlasAABB(Math::Vector3f(glyph.atlasPos.x, glyph.atlasPos.y, 0), Math::Vector3f(glyph.atlasPos.x + slot->bitmap.width, glyph.atlasPos.y + slot->bitmap.rows, 0)); - SetGlyphData(glyphInfo, glyphBearing, glyphMetrics, glyphAtlasAABB, slot->advance.x * scaleFactor); - loadedGlyphs++; - } - + FillGlyphsInfo(allGlyphs, face, scaleFactor); if (pngOutput) { SavePng(*pngOutput); } - Logger::SCENE->debug("Created atlas with {} glyphs, {} glyphs could not be loaded", loadedGlyphs, chset.size() - loadedGlyphs); } std::pair, double> @@ -109,4 +79,37 @@ namespace OpenVulkano::Scene [](const GlyphForPacking& a, const GlyphForPacking& b) { return a.size.y > b.size.y; }); return { allGlyphs, area }; } + + void BitmapFontAtlasGenerator::FillGlyphsInfo(const std::vector& allGlyphs, const FtFaceRecPtr& face, double scaleFactor) + { + size_t loadedGlyphs = 0; + for (const GlyphForPacking& glyph : allGlyphs) + { + FT_Error error = FT_Load_Char(face.get(), glyph.code, FT_LOAD_RENDER); + if (error) + { + Logger::SCENE->error("FT_Load_Char for codepoint {} has failed. {}", glyph.code, + GetFreetypeErrorDescription(error)); + continue; + } + + FT_GlyphSlot slot = face->glyph; + for (int row = 0; row < slot->bitmap.rows; row++) + { + std::memcpy(&m_atlasData->img->data[glyph.firstGlyphByteInAtlas + row * m_atlasData->img->resolution.x], + &slot->bitmap.buffer[(slot->bitmap.rows - 1 - row) * slot->bitmap.pitch], + slot->bitmap.width); + } + + GlyphInfo& glyphInfo = m_atlasData->glyphs[glyph.code]; + const Math::Vector2d glyphMetrics = { slot->metrics.width * scaleFactor, + slot->metrics.height * scaleFactor }; + const Math::Vector2d glyphBearing = { slot->metrics.horiBearingX * scaleFactor, + slot->metrics.horiBearingY * scaleFactor }; + Math::AABB glyphAtlasAABB(Math::Vector3f(glyph.atlasPos.x, glyph.atlasPos.y, 0), Math::Vector3f(glyph.atlasPos.x + slot->bitmap.width, glyph.atlasPos.y + slot->bitmap.rows, 0)); + SetGlyphData(glyphInfo, glyphBearing, glyphMetrics, glyphAtlasAABB, slot->advance.x * scaleFactor); + loadedGlyphs++; + } + Logger::SCENE->debug("Created atlas with {} glyphs, {} glyphs could not be loaded", loadedGlyphs, allGlyphs.size() - loadedGlyphs); + } } diff --git a/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.hpp b/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.hpp index 93acf7f..7b8c59f 100644 --- a/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.hpp +++ b/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.hpp @@ -41,6 +41,7 @@ namespace OpenVulkano::Scene const std::optional& pngOutput = std::nullopt) override; private: void Generate(const std::variant>& source, const std::set& chset, const std::optional& pngOutput); + void FillGlyphsInfo(const std::vector& allGlyphs, const FtFaceRecPtr& face, double scaleFactor); std::pair, double> InitGlyphsForPacking(const std::set& chset, const FtFaceRecPtr& face); private: FontPixelSizeConfig m_pixelSizeConfig;