From 05e847a85ce9c958287d82d790d7d13bc6f7bed9 Mon Sep 17 00:00:00 2001 From: icolbert Date: Mon, 31 Jul 2023 10:18:21 -0700 Subject: [PATCH 1/6] Update subpixel_to_deconv.py --- .../transformation/subpixel_to_deconv.py | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/qonnx/transformation/subpixel_to_deconv.py b/src/qonnx/transformation/subpixel_to_deconv.py index 016a943b..3cd5d01a 100644 --- a/src/qonnx/transformation/subpixel_to_deconv.py +++ b/src/qonnx/transformation/subpixel_to_deconv.py @@ -111,8 +111,30 @@ def apply(self, model): group = get_by_name(n.attribute, "group").i if group != 1: warnings.warn("Skipping sub-pixel conv with group > 1. Not yet supported.") + + # The weights of the convolution can be generated by another input op if the model is + # quantized. Preliminary support for quantization focuses on QONNX ops (i.e., Quant) weight_name = n.input[1] - W_conv = model.get_initializer(weight_name) # (OC, IC, KH, KW) + weight_prod = model.find_producer(weight_name) + + # If the producer is None, then it is initialized by the Conv node + if weight_prod is None: + W_conv = model.get_initializer(weight_name) # (OC, IC, KH, KW) + + # If the convolution weights are not initialized by the convolution, then we need to + # find the node is producing the weights + else: + if weight_prod.op_type == "Quant": + [q_w_name, q_s_name, _, _] = weight_prod.input + W_conv = model.get_initializer(q_w_name) + W_scale = model.get_initializer(q_s_name) + assert W_scale.ndim == 0, "Only supporting per-tensor quantization with this transformation." + else: + warnings.warn( + f"Weight producer is {weight_prod.op_type}, not a QONNX Quant node. Not yet supported." + ) + continue + kshape = get_by_name(n.attribute, "kernel_shape").ints ifm_ch = model.get_tensor_shape(n.input[0])[1] # assume NCHW ofm_ch = model.get_tensor_shape(n.output[0])[1] # assume NCHW @@ -184,7 +206,11 @@ def apply(self, model): strides=[block_size, block_size], pads=deconv_pad, ) - model.set_initializer(weight_name, W_deconv) + W_deconv_init = weight_name + if weight_prod is not None: + W_deconv_init = q_w_name + model.set_initializer(W_deconv_init, W_deconv) + model.set_tensor_shape(W_deconv_init, list(W_deconv.shape)) graph.node.insert(node_ind, deconv_node) # remove old nodes graph.node.remove(n) From f2335cd68e3d4afbd0f187dd09057128eb8010ab Mon Sep 17 00:00:00 2001 From: icolbert Date: Tue, 1 Aug 2023 16:14:09 -0700 Subject: [PATCH 2/6] Fixing tensor shape mismatch error --- src/qonnx/transformation/subpixel_to_deconv.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qonnx/transformation/subpixel_to_deconv.py b/src/qonnx/transformation/subpixel_to_deconv.py index 3cd5d01a..be8e9b58 100644 --- a/src/qonnx/transformation/subpixel_to_deconv.py +++ b/src/qonnx/transformation/subpixel_to_deconv.py @@ -210,7 +210,7 @@ def apply(self, model): if weight_prod is not None: W_deconv_init = q_w_name model.set_initializer(W_deconv_init, W_deconv) - model.set_tensor_shape(W_deconv_init, list(W_deconv.shape)) + model.set_tensor_shape(weight_name, list(W_deconv.shape)) graph.node.insert(node_ind, deconv_node) # remove old nodes graph.node.remove(n) From 63d8beff27075883477e2dc5c2818fa62e003891 Mon Sep 17 00:00:00 2001 From: icolbert Date: Tue, 1 Aug 2023 16:14:54 -0700 Subject: [PATCH 3/6] Changing name of fp32 espcn model --- .../bsd300x3-espcn/{model.onnx => float_model.onnx} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename src/qonnx/data/onnx/bsd300x3-espcn/{model.onnx => float_model.onnx} (100%) diff --git a/src/qonnx/data/onnx/bsd300x3-espcn/model.onnx b/src/qonnx/data/onnx/bsd300x3-espcn/float_model.onnx similarity index 100% rename from src/qonnx/data/onnx/bsd300x3-espcn/model.onnx rename to src/qonnx/data/onnx/bsd300x3-espcn/float_model.onnx From 0f6eb2b949cc459d0dffcb5fbad99079605adc96 Mon Sep 17 00:00:00 2001 From: icolbert Date: Tue, 1 Aug 2023 16:15:49 -0700 Subject: [PATCH 4/6] Updating name in unit test; adding error messages --- tests/transformation/test_subpixel_to_deconv.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/transformation/test_subpixel_to_deconv.py b/tests/transformation/test_subpixel_to_deconv.py index 5be346b7..821bc398 100644 --- a/tests/transformation/test_subpixel_to_deconv.py +++ b/tests/transformation/test_subpixel_to_deconv.py @@ -44,8 +44,8 @@ np.random.seed(0) -def test_subpixel_to_deconv_espcn(): - raw_m = get_data("qonnx.data", "onnx/bsd300x3-espcn/model.onnx") +def test_subpixel_to_deconv_float_espcn(): + raw_m = get_data("qonnx.data", "onnx/bsd300x3-espcn/float_model.onnx") model = ModelWrapper(raw_m) model = model.transform(InferShapes()) iname = model.graph.input[0].name @@ -57,9 +57,9 @@ def test_subpixel_to_deconv_espcn(): new_model = model.transform(SubPixelToDeconvolution()) # check that there are no DepthToSpace ops left op_types = list(map(lambda x: x.op_type, new_model.graph.node)) - assert "DepthToSpace" not in op_types + assert "DepthToSpace" not in op_types, "Error: the DepthToSpace nodes would be removed." produced = oxe.execute_onnx(new_model, input_dict)[oname] - assert np.isclose(expected, produced, atol=1e-4).all() + assert np.isclose(expected, produced, atol=1e-4).all(), "Error: expected output does not match the produced output." def create_subpixel_conv_model( From 93b8f09ce33ce4c58b6efe0ac61968eaa1d7589b Mon Sep 17 00:00:00 2001 From: icolbert Date: Tue, 1 Aug 2023 16:22:15 -0700 Subject: [PATCH 5/6] Adding quantized ESPCN with reference input --- .../data/onnx/bsd300x3-espcn/quant_model.onnx | Bin 0 -> 263787 bytes .../onnx/bsd300x3-espcn/test_data/input_0.pb | Bin 0 -> 196636 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/qonnx/data/onnx/bsd300x3-espcn/quant_model.onnx create mode 100644 src/qonnx/data/onnx/bsd300x3-espcn/test_data/input_0.pb diff --git a/src/qonnx/data/onnx/bsd300x3-espcn/quant_model.onnx b/src/qonnx/data/onnx/bsd300x3-espcn/quant_model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..b971c731530d229ba80cbb381625091cd336cdfb GIT binary patch literal 263787 zcmeEP2bdI9w(cP_LNeT@(=zQ3M4PCCD+L5=4}s0wO9Z zVn79v>8c(K1OuR~63lB>%wj}b-}!IdQ+>OpCaB}?Ti-kT{rCLmKj)qsy1MB>V5?QB zSM{RH$Br63_`F6{I=1ha*S=%Iol!UUx}4mc%W^A^89Zpj(A?bdLr0Gqc+sfgBgf`e zKWF&Zf#Ze`8GBy6nipR(Xe0+ihYve%Y@@0ts;E=5%8In9m0M-xpwXj8joUY8aZZIc z`{mXeJ?fH?LxztWHt@nxLxwi1d{W<2`}AC#QxTP8h7TJ#bcm`<)EYH%^>A}*#!<$utZ&NR~ z`jFux28|s)YUG&iIo){=Rom3etvrl3ago2HhPgE_7&?07&=CX2oHyvAq1`KYuZ*I- zaw}alXvmoE75x7}s+(JN%-GSxhYXcYx$|>!{Z(^w&l%aVy?+I{)xfc(+`3?+FBv&f z9e3!Uk-2qD<s3{|ZlB+%!I6W;4nD8XsL>Y=8Zmsl+VQ~7&FU3Zd23aNUNmO- zh*2XOKDe$`m&G|be9USWj=FH@$g!7P*znwQ&+W!q?qRvoyWT!ocbQ1|uTg%yQI(U1 zj<{rCmu8jVa~I^~7FWqf$1~7AKeuM)Dd4C^@Eo+yug5P?exquB^Nt;hJ^`^ZKLMzW zegeA6PWVwUcGAV%Ntb%HFE*Y@V^f`rZt9Ocmba+KGCw!8p#Naz`46Uk8M-v8svgab zeBHnE*{s;TqWNs{^DNJF(Pwi}j=cU|@O0)GPp7{xJe_$(p3aPdr?Z;>baw36sA16u zabU-;f8_bh%MH30^MD@Su~Aj^fOd@QC-jcup3uWP=2r8c(2gB*YZ(s)hcz?LXvdEA zDqY4OZ}ODp*Co{9X!i#`*7>|y0kFRai>wv(5i zwH*$P_fB4Zy*gPRtNf{;KkPdlR&-~7>}lm+iqzS2!%Nm{h+oSRiJn6*8hhR;qfWkP z(BPp1yYSts&(=*Q}-~@OO#o=ZqLN_<}LR#}D1N z0)Abrom)wLA*$HpBzzspJwVA!=&SXIo}+rz)i=k1=MNv-W_E>Y-RtHYX?!v3O%;CL@7~VcKmMxA@EtAV zC#Gj4PVIg}d{F&&x;B|x#XV~1yu<~|hsLj(@pxkAo8K0k*5&Awd)m-~c`tTz4~n%Y zi1&}DZmBoPtuVX2^;VaC5<`}?O{}}-s)D>uwEE_@x1sGNQTB{P1w|VYW zlb?@&GOB)R&JC???t7uB+xUXLt+(d(PuQRKwN7~Fqj=$W&%~R|Z(+?}(K7M$mldr3=gv!= zyK6;i*S}s$jGw+K-ulNX?z=lbi!a^wXzIrqW8#xHceW1PSJtXvx?WbC%rHuwd|{`x0#(&?I3wp{EzwGlyldlb*VG&Zs3i1 z>8e!D->bSe4frWB>5{8cBdX7KC$#%2_3)(qtWoQ3bqCI@=GO1p#{SonYur~_ZM5?D zEU;#@do*#;p4+?rFl&G7ro-P$4BFDmU2w_WR+Ci+*;O8Pt-pWujk|m6BVMf2PpOGb z>sd>l8k%VQ!gP1R0ZH$bQ7>ArO+3a8UaQPEdVa0`esC-{{LmPUuO5s2P%TESn#5>Q zm00WpYqfJtyIAZT&VBdzo6g$3VzJj_F{;rjM*RyfPEOh!&}sP351fh{7CIm9 z8;ebfS4vDjC`MOTiqWE~G1}*+jn3Y!8Yho$8H*kCWPRtsU!HY#H?NocA}2<9A5XJ? zIygoR4vSIl*i({oo!L&8$v-;}J-BZ&cF0q9{XtEWb02ua8GT5M+O~-&Ppc4%oz*cG zySYs)c0|os><)LJotQA)X|dn|=LKHxnRZK^7CSdPt((W_`OD`zd+Ntxhwz-?@80Qr zT`@+B>%?MHu6Z|a2>XNi%%Abvg*>m#P5%2j_}PZM*t?}U1POC?s_ip;ReRBIz zXB2*Q@P}zSwv*l5{mMRg_>Im!`}Of=R6H&{w)LaQZHIl}?CP_{-pjtru2ZWp`R#L6 z3NOifFFj)V4Nj#!x2ONLpniJNYv-l!IjwZ5MdgHtp^<*uPEsX|J<0^;Jq9{YD?>u`3p&SM7W(IsS_;oG<&2 zO`ni+Q}UGOTG(eKQg-sJ@y=6cjxWf4t%18_+cnNDGxwz5PL1~NIiOzpnO`nXx4F%~ zlOjLm@!fpOpLpH)6Ym24#OuwUc&G6v-s${_*TL;&|BXNKM(`)zLvzNY@ric=f8wS2 z6R%Fcs)hUUC*FYF-Ml81u5{|OZRl+0PrP&a6K@TF;&tLrygB@d*Yx5qt#7{mKHY>r z@z%e4qJ8(~nqL3wk8!@`PrTVj)<}QLpLpl;C*Iw?8YKr``>EacraWhK<0{GByHED| zPJY2#x?^1WQ~t!;eaGX@HvYuh$e(yU_!IAV{={>Cdc!+s$G+}2&peo}%b$2l9%z`_ z`s#Y;UjD>;ZA6~64}anf;!nJr2h6h1;ZMBV`4ev@f8x#HPrT>(6K^tq;#J2d-mU)K zgn!=UtEm)=#iGz--xYDu*VkB^5Dq`O>l_RIw6nIv*Ic(H@x#z6DnB=M;r?cw+vA(A zN9IjawFjTSvg^@H>c<~xaiEHSn7K3Pzw7%KtfB8b8o%e6`E?Z-D!xn~;h9sjb^V8s`Y&kcHaSvDO!KKc94PtaXmv`;aI@#m0ym*IZ`#SZGn3o)1ncvuzW3;>q ze+czhD&N zi_XG+HImoWj>Rti{5 z7#}dfFOZL~Ph0K&Q8j(X13i*=jcn>PIc2gps#XPW;(a{|zs#GRy!XQclSiC%Vd3zf zUUbKto-DlX?RVY6pWaH}{#C{F^3>VM=l{{%sW2v<{9U5uU&)c7H>($@sweC>M9&-GK^g%PP@cuS=O|sVEZ`k!` zT#!umKG3`B^NZbOuiog?O5Bw0bJS6V@3-jSUAki5suAK3qt9$R=vhw9$?X}#SZvl=E(tNC}w_<+g$Sbib@HWEKCuk)9OS(Tb!jbC&Qs}K zU9NWC{+t(J<4Am_C9w)`dI$* zFyLP^oLw)>PCvw79*(-~7W=^@YphY?t4|e zIhA)i2cFp=`QpuF-&(hK`nsndwfFFshhNX{Z;cvyMPcr)XI5) z)%~h3xLu-7^mchKsdix(1hwMYvF%4^5XLfef9Pdf$(&&usiM5{} zk@Z1vZ^aGPnzNd!4~i?}TU73ePu{ei_~Zn&_OlSE@VRnq28dtM&Y&;*+M{YPH{RW$?js!q8K#HwG^18ho$H{2sEdFPsv?}#$wy}8_MDh^}9XUG!`4g9~x(m`8fG>tr5xn`Hgw#53Rd> z`0ho?+3Vj=9>X65UpG%CTegqIYH}`hKrGg|c`Wv7)1Q*3&YqD>-g#bf=xh6T8$O|S zw+r~&M2f$ubmMOhbw~G3F8t(;WZy=y*yZXQg#T@izd;1w^;YDbg~0$~k}O zEN{`)Zr*cSh9|eKKgWAuOC#^&`OVY4V|mF}yH4=-|Dr~+(?PFxJ$?5M=g!INy#d!A z=X|~D3h&sx4)b=r`HcJRsZG6Ar#$S`*s|Gqy89;Y`b%~>=N~-X@p2Y=KROqCLvK0L zTh*BK{sa?Z9T<72U6}@ICZq{vJB@gMZn> z_?`@WVQz~4hhzx7W1g|#20bH4k;YscS12OPW78_nNCzvu6vGx&Sx z8T>u;i?5 zdaJ)T{uMOqw>fxgcyR9-JFbiOOm6Tnb{>9nz>mLXwbiEo0`-7hG%#)NT(rgd^`HhS ze@D}MgExe{0X|<@)jsCpYKeY_Hn1j~vBX|AXj#w;HFIm;XdSYxWmlrL}=I8mIDkpLGMauJFe7-SgNFtq4dLRU!$^(UgJ|$3=TI4G4+kz_ z8fnBT03$VK&w(aD8XQI%;9?|%J-C3WGU8DH0X%HP0std57WG=r%1f=};GqF9(g2S# z(jvTYEh#6Oc!*Kl)TBl<_>y=yC-vfEh83qtiJ2D;4?gJ8}7y1Kq{<+>yF^+KblWdk%EZ9rdgA*&{W)b4N{1-T&~7 z7RRX>v)3dpx@;8J5A^PTxDIQRs%@>y$QcVF!2J zjAM~=XUy)#>%E<7d}k{g^Qzsrf!CXyxO!S&3;mEgWq!W*uPNKHmVMntzu47o{F}|| zr?{?wds*!+9mDJXs@8?Z>tWwE?*VgM^qRMDxz%OzV5Q-lyf>_kecPXo`N8G2yidoB z^SWPuGS=k&-7Kv8;#|waeBLi~mwR~7<<8iLjSK-?V$(;ak}JCj{6 zHSjPpfEY$<%+8sbP6u-lBX5F3Wu(2ha2%ye4ZO)Y%!X~m>?&N+GBuwI33rw!M-!|s}A z&2PHd>a^mQRL+hIEmd<{Bb(>gIXgbLhV@D&Hm$5}bz+U@*|Av%peDtAEX2cJs$g@C zo3sB*-mo)Qdh^#^!fRdYaZhj4wRd@)E_m42>h$wE-8SFDUWQFy>}_h(+v7Fe`F#^! zY%6)49+~BB>ff37c!0?afd8YCcQFjAxMOXA20mi($>?0QeOw_e{^!+j{;-G0CAVEeI8F5ujW-X&+$ z;rpZQo)uf#=>2}%_gtQfbzEMDvA_3F z{7H-Fv%baSwLJC-uCd=eWs`Tr-D~4KzhRW&*InZ820MVZ*O4@ z#JnGi*J1yyoP*aL%sr+heNm4!crV^tv)ZP)m&g0$T7M1f0sF$8 z@Y00!*+`8UFPi8Qo8IK8Gl86G#6cLyLlYw=#Q`m& zxzCLaY2~H9z23cR!Ky_2@w-y{%)8rT&5jMZ&tlzz1{}4!vBNpL{rE91#|2~Se(W*# zj(T|=_qY!|tS!H`XKj~zX4`#(dF`J)(7S6vXY}WO)jY(gJL=`5Y#LY3fzEKbkCm8x zF~^;qkNf9f9gDrky=>Mv-c^9Lr_ZX3b$L%?Qs~EXQ@pY=6X9bk_=YYz63 znttREZ~ClRYR;K$Z?#gJ@*K=P>cKCu2XAbbq?)s(p z%2+qSIm}n!8k>8%Id$$=Ys^~QN4+OGc9Fx{sAUeH@O77Cm*)@Sy;S7&_f{Nd0 zaC>jNX^R=m?{|M4Tg|>=`9^#8VLNTEXM9#rc|$kr*Rj{zQxCtz?%isG#c)|q%(`x~ z#eFT*Jov$UmwUMIsRsO-Ga4QJriLhUcHDYO#0e^Tygr_Q0j@TkW44kGZHtAFPq${ubvg_SjqEjkVWUTR+-r zF;C$PsKc8LXT^T}HAfWiT-6U6&cY=W0*6_e84C}4Vj&8s6C)woBNk{$Inm(5Ml6JZ z8fY+5qd$NHV#LIR=;DzJ8<|4SyWTt$SP^g87Ld5-U1u`Sz|Wo8_WUW+6p#}Q9J*OA z95uWi*8Dx-X+`FhRV(XyW$A|+(?|#65rP9^#6%F*qGGc)%uA~`^Cm|h7=>VJCXcE^ z-ZbI>2peeu-sD;ioa7*YM}cK!#3LX^LbOLL&{CEwE(aY(8c`e?jMSK^MJ&*%ENA9~ z!^6k`VliT3!qmadoN(wc(hv?GWyB%?BQ<7xSVKMx)WFC9;;>OjKrEWcSz1uax8B|%z4q-@ zN;`4!1?h)|Ugx~rs(QNVgEj3%%}3d-w=ZXONTaW}a<xX(N8%*{)=?>jE9 z0d7@n@-gRUs2X0|+O@8!!$@EAQGS9**Gt=`&+?r}X@r`zCL?553xV_Vwy4-GLq+a+t$8?za+}U48gfybw7PC3+@_Stlsz0LUquWwZ!Ue&HKZa*8n>n!aL z-LAXpeD-w{99yWbaYZve(?skm#rt#+^PKdIocnm*N}jjFdVX2;G_M7qmiN(LV+Y^G zO7;Cg--}uky>T|&3md61<3)omfCeKq79C7IibE4!JWD};XaI~1AQmGgQ3&VF7@S0i z;NhIa@FqBn#U?C?CxD)3UT4j|%CQEoKiuj%a*EaZ$jR2{^S-lI^?k-V_T!E&Fu8QInKEnEG%DB~y+qOxK-LHPsnojs)iA=RWLW|0f(b)!N#wk$w3Q1Kb+wA6m{!-g_jR#6))JLgJ?`;Z-i>W;^sqMK@zcgTr&gby=GgJ; z9>E^D{t*lNVxM9pcukA*HueqA{ZiP+a{dGNIz;kUXZ^X0K$&FLiUg>S__U$of*6!_V)jC)cKu*_KXLlaqo%z9S z9{h`EjZruaGqe}a+GW4eW3bad z*2dwp@ZRg#cITz`<;xp8ykDF52959KgE)GzPjGK_N4O`37%?$n>flj1sSz(VW^8iF zn_lwpq6>!?BTe8d*vqZItimWNySd^#&}^GEGcw=8Yx z-u%%+sl{#fwb&Pc(|f&B3y0s4Xf}Ng*VW~^hYH3GdNt+e+d%{8y62Uq=f)qt@T%0* zp&pRn{?^blzh_@Jg}EFnedOE26z9EkMem0%tYBdd$E*GR4;5f-)_Gs;u$KhS=lCj% zYZAzP8_2fA2~ zQBZUJYPW5zYhCPxdtkjdpAUH#`{uP1%&|rsXX9%k+?8Qe296Tc0b-;Hd>A?vshhP@ zXL`v)6D}TF*vJr~cvzDdUO3ZWEpXFF2k<6`EV1x#3|)+vn1GI0jD#58)J%>N#DExS zB0j7mMh*}oCIV>SVIxB@Ib_5@?DdIH+6NZQ_BtI~#lGs{@ovj*H+nT%-RZsZeNVea ztEQ~&hGrGKwawi(|5m%woh_UL3+g+I)_?4B9p~y;Tw}lT{aWj*+AA>E{iRVGuhO0O zcn|zzAo_Y-!?=;>@9S|5JlFU1c%H>|HrK1Q7p*_f<8|z%2hDU|pV-~uISHQYZrHiW zUOx9sr`@_-2ep1(KbQ9_{axM<@3Ei7b5iKf^HLjj9?$*y@&3l!U)9dX{#^Fn_j4Xr z{SsSp)H!f&+{0Vlk`C5Kk9RBB>KfS|{Y@ z*t6fc+y3;>7V(kS*0pM%Io;wq{%a3;_JSu{d0gjycKjP8@aUx8%A0su$-HsKb8tJ=gZE zTbg-1pZngEIB!dVHL2&m-nGX+$F+S@ZC{;lU3u#_*7E#oUGAHxzH}wNtHiLzd0XP# ze_V>a+RNZ3?^*sDeG)v^!k)3#wZ|XhZC~BXL;c_;gDvbG=U|Vs6fC=<1MhvV>W8~I zYVpff+rB@f22Ciir}U_sPOf;@Jv`?^`-FWqyHy{l<@{~v4x4>?%-hYqajWm}rZ$=G ztektdbAG!H>i2F>*r$(2=g+m<_8n()jg9&26X&;E?r~4+=FQ|y=`oA@^|7Fx^3}68 zABjd)S;n>Jcs!5ub-mrq_fK<;%l$oG-x>4v61(Fe-*~4#_YBwkkmCJ#+&6_eyf)Tz zC*Cw)=f`nwiN)Zxmv|FzYJ^%f4{Ks=hJEH;g&yxmo%8vBOy$4Abi0H7^8Q@zYggD_ z&sq2584mW1HK6l4)(ziHQD?_Kx_+^@{c@d~te(H8b+C9&uny}Muf=n(w6PZF;xi{6XAge-QM-my!FhJ}Dy(ab z?0ADcbK*w(>e$yd&$0b|4o~qOUEs6FhP$_KY>c(Iww4F5mcV{D4r{~l4IcKuHQwa5 zzqsjr{_b6H=51c1K9_ks$9vIQggo|^;(4i#y_UPpzJJ@D*LfN=myZXD$1<1Y8>7S_FT>u(_rn zXYAK0o`)RI|2olo?soT{R!d!IsKs2ab4QMA3(acLZ@u;WGv8U<&*B`fSI?cjDvjC# zc&_F8>ham9=cu{?Ri1X$+WmUD1MZ*V(#P}MFOIJ5@g7{Rae1$)H?|+FwArg1_xW?< z-t5z_RCV0bZPBlnH{kxtp4!tsha+|uKH0!q{aqjI)yn_idVAz6=i$t$-g8g0X4fBY zOly9q zvuMtIk6|Bm+WyYzGfr_1>9EQhJh_tF_mwwL@5QFo@t89Pz}tQ6%(WkTZi~Gx{*=wV z?P;Hk_NIOEjm!O0T+6u=?QttDyTO|EHr7S_`F@L4e8{(xY^-k&`JC6d#aOjbExz3xzbaP zUY=g{&nanM8@iYGQM>dv-z`YT`kt2N{Xw(1hl}$f#y(E!*X(ic z%k}?o^BW%E4e5KNcTA-<-g%Q&sL!XhAJ1|(9r(F>)~$x|aG!5&!&`z3pvv=06x2@N zMt=Yg@X(jfr=HH=*L~>A-YIZK;?@Tyc~9Kb(R(`oR(HcSH57-2n!Ar5VzYM<^E{jL z&L^W!aaw%;rp=nwyWJG;?&IG_zXaxPxMn(|hL?V~InRIIMGk$tO<#n5fQz+yzHt-J z8{$3IJ;{B3v01axYw4ox_O*}9bT*&yVIPV zGBUhyEd}=vy(CDzc&RmG;qYVtao9);;w6tb3X+F6^Ad|k4n_tf79Y-;I=E?M1j5B5 zW%6)r=1h*du#pzv1(1Y`hZZ(s0T3f50E`SEhLHxi7%>q*12>I00AQp>e*hQwia&}5 z4h(!~qG2UOPup($trgwss|Kf@c&b}Li^oRA z8Sa{srn?&pk9O&~`_%8-?0Mo$x6_e@?k~sO>z?*vLzim`@*cUwoxA=K_q9H^xUIIu z++()fnEEJnihJF&ZQOslTT)*XoR+G->b=xI(#NK_Pkh~)bqS6WPdv3Iv2fjrRQHD` zq*^@oWqkAtcP55zT9CN^nSvDd(thjJsiB)1C%7N$jotg7iMx4^e8>A+vzqr9M-A7j zc;UKyuB%gEzdTj#pVvxoKEdnZET}2qIUKiA8fv+30s8Yg3G_n^&q=W!=X-#*`ip|? zajeg}#b>h+zw)nK@5Akl?c8aOy`$~(*2?jRSa;pIk9|?kCHDH03-FyH*7wP$+}f)r zs-I8yy!EMdDF5ptQ;r?$aeZP(+un&O$A0TFclSH|Mi04J&t98wK6=DG?&buj; z65I>DUCwcB?*!-UJ#SrL4Z7_g9`*noYd9Yr2AKf&RbMZ)XsXgip6WCxF_$SijBVazSz(EY~gN?=UQBE@fu#YD_&Cj{54hC@q0e+ za(@@|=HBpujXLyUEyaBccufmu`TLWL6Fr{jk{bQoRQ6BAU$h>y8r(C~?Yp$5cf~vV zdwUk_aZ&Sn+Z^wmuG77#KRv2^+w1u6JKS)hcW>=`yjT9V%BwSap?7D6#$NSv>v_M7 zb@=D3whD_|zvgmp>xsM`)}0j=aPJQie}D2I3q22gcr&kC-Nkx%&OhwgkZY@ZTIe1_D`hzaEy54cH&HJ`j*QjLkJPY7GYMfym`fwk$ z*AIKnRk^u4tJv5(_mtlk#rrYJh(&?qC59IxCMHZB968fS2k<6`92G+|!J#sW@X!QE zn_Ob?W)9pmG6V2b=bi4v<_m$uf_6Pzj#JE2qsN}@?Od^6dSde?95+ezb|-l!Ul6xH z-muJm@5|%tn)fev+dQ_->U2&$FaNXo&U1xV+lV>meRjw7F6*eV&=0ljQEPL~LVx6- z*Sx<&8gqCJ^z|0Bd&ctjaX#}NieqiB+3Aj7zubim&U3H_?48#+-}>y1YWCU>TiED< zH9AaN$$RQ&&pY)4?!PdxruMVgql+_eEuW{r!#*%~+;N58dtYv}pDV1G=GfJ}FwevK z*!Nkx2fMd5&hyUN{a&0=Fv2Qun|ce~2@_}9!}HE@zJ2{}d;QP+`<#hy+`mox$Ub1j zQO=4vl^w2i*Z;gM@oW8N&h5>sJ6+n|#&ydQ-@bmZhxq`sy5zulBg!+kX1xSey6L#@%WYYa6^q%f9gVtX`jm4Lv?j z`nJZ8p})uHwzy8+OQpnUj%%lGr9~X-N`g#~8pI|?Y#Nz? z!9|A`FjYo8hM^K#2d5A>HRNEVMqPW;HRsz+-#x>-VbLrvr`33`>ASDFIjwdVAZ~Zz z7dCTu|2?sE^^N)VFWnb=k9K>3WAfIGy45@4cGo)okQXuEJ>quDDtNz=ebY5Nt<(AU z8Mo{{l;@7O&>x=rT7&v8dYnu9Yb@mb?X-CB z=;iSm+J{E zfEY#^;9{hSc!a{Eyl7mej0_K6TCB^1x~RCc9>@!r7BMmu@NjIT6-C~J67?XusR>6; zjD)ZU2gFDSd#ZXxU3+k~W4yNSyzY%^{jLSR_V8Tq?!Bs}pB?)T_4^Q9<2AUWHS*p| z{qA<}J>f-rRO@rB(?05;>ee1U&BHv7t%Kw+s2_@X24ot2k<)D|vNEewNTwx6}#d$7KMurCu$2uK2$p=C)1a)DcG^|OCoN2^C z7?Ot$BQ^SiaPd%0ZpP5foEev-N7ac|+`O1!QY%t84(pN^kGybr7)1cOX~Y2lBQ^R1 zcyT}laxgL=F}xTFF??xSX?denun$ucjy?it;HD7=fEa0FdT=x5Fo=aC4~UTv_QFjM zE?}Bvq$AS{M@o2QaJguQV1D9*CdB`0y%BM*p?CZ-Q_#DZ9xIsDIHR?ETv_}|3x|9>?2U#R21dc=RF zsVMlL%!rGQf1*G*JpQ^YJpc8^IRDkV1pigDti06nUoA-BkEA2!KU&-sf6NwtG!rrZ z5xTBY$A2s+fj_E)KTd)_?tuS<&;R*X{ij>h;6H0gt$6+|&93-uKmP42)o)_+CJFu# zTXFtzCD;$XvdNq%-=+cn+272+(y#snu~?giteXFa5|F8To4r_;|NDvFm1=)%J8kx6 z$^5^6$dB&OMR%A@)%j(>KTcMWC-VPIMc3X${4e7^yLP zFg4+(7an6Pjw5FpaUc*~Vt5#-F*8UkUNVSHh;Dl1O(PDXfEws9(g25%0g2(uV#Gy& zX~cm*bi^>y0Edx=$wd>7oEQmV4-S|{97F*%VO=zM7^%@8z{Bt}{wO)o5Q`BL07h!` z2jSw4R1u1rFi;ewiC&z?9Mgyc0d#N}X@HB7Ch)=`g*jpY(;y$EArB)pX67LlAXOG_ z)}h`s(t+v0qrkE<;!&UkJwP*!bP)Dt4Y-*X9;G8EdEpXsN*VDeP=bzyiziLQBLo*P zRYp7lQAS#Xj{?%r#YhNyaKJR;0DzH!sMyqmizg<47%>50q{d8t(Vz=NgEx&h0K`ZW zc;Q+K;;0;Iphp?87zXOXS~!*(c+-dj07h!`2XGU-4?zRI?@NrX zqh_5hEj0F7+CH#%zC+cIGJTt;ai0KsmH}K6)Cq@&(Z2zI$~w5miw`|s?vwBMQhu(~ z^QN8y+&>m(BMfqX`rZ)Zc|@+vz?z|Y4wb3b2W#lp9nZabo#3&rh}TQzhCQ)R8Zf6w zjlUMwE3(fbwNdk))qQS0b?Mt@jv58x2Ai5`A!_;px*w|9D=2;C-gnlV>EVZ-j<3s6NOU9J-_TK@s!*(;9C{ z8EFq^a^AmsT~yk?FZpcC=$IpC)b;2AOZvuwU%o*gOAPQ0C9?($@HI&hz#CWsUYa^)39t zHJHg&tkm)uNVid**TjFsg^?OFUWb3KlQV0Nb6enhoqCoh{x|G^xK`br%$L~gfi<8* z(;QTBGghJ=iqp-SKgj71&M$Ggz7Ku3>N%73;1&3ceDD6AFRbO-xKaq-Z%cep@%jS683nV0e^4UpT9?}A>cVOUp(3r$B~OPf1knL zh>M~SIrl#);vTTRaUTKKIWqT$J2YeFc&+$8ugB-^?r;p){MtAGxUmBc=sPlsRsbHjlm5rG7W#y;~gQX%`R1NB2qycUkaR9)m91-p(v3O!q z8l)B;Mg}Anj~tBDn5orapd%(N!kd7M*fiom09`n|X`};q;gG^yVt5lA1~E8{A^;sm z#Q-@NsWCH{v2b|dOal&0z%(#o2Ea%IT#ST-d{{>;ns}CqXl4$1(})9s=w=+|sEN`< z7mpe-62e|Myl|!ghbCZJghLY}CIZol^Wi#);bEl4Y%iKlDF+QOjW_^cq!GoT!6*Wz zE?hh@0mMiMdvF2MtUAPE!~_r{A?(2c7^yKcNDMEWX(UG;fRP5cX~cmEGY5{GX`};q zftG?8x)?D5U=#v07^yLnFN>z9C`UX3V#Fj0$cqjxModgVM+~C~hz<`UHAZ{nB(KY| zdWt3dxAj*hE07e?Z!#*l6HORq8jYYkd z11EKXzyum#8W{n&z>tej)QAxi07h!`2a}5o&D4dPzBnG!hP(ihaCjJLfWt_Q{s1oU zl}rrXG|~Zl6p$7@%q4~wBO!(tO}vpRvTrj7P8#51B!s=mAxj+gl7lXY(j*u5sD+Ul z{Q(?+kw!@zIT&exn?@V}rjZeV3m^*@4-G~UfNmP;0A4sG;o_meNR36kmX$+|00Oue zX#yVxQqW8zBLEKrX=pGqfLM$)fiDiaB*=$jnFrnEW-K~<*eE1OY{&D1ZPC zBMsr=MK?WiV#EXp8?jIl%zCp9I$|->#PlXdIvkrCxEL`Jgf+yH6JL^M=E7WJ@dUy~ zYRs&o!@!w&h!TT~5fea+gs=w}Fbz1g;*4~{^kI(J1czBhMg%T^EIi7adExM3BNhb6 zfrpK>03QZYq6vo=BPM_t3DI6+c$0IOWuzl`;aXBoGJ%+|CNsI^?onYOCLOMqqN4EXT8R@8G{Lac>e7r%V3N@K{sUUG~dN z2ber@oB4a-yliHVC2^w{=7vJKrhnZ=9Un=l>hxaDH zKEbo*My;nbytlbF32$=$4F3N0zKZSf@6H!R=kZx4Moa{v>3c5w9pbYK zlW}M4NFe(`Y}_yITY+^oN6$k@zX7NZ8?o?b0c%NblZ*Ce`~Sq6rJV_T`pa3@d2?(4 z2P=-3P^Bn_Q7EDN~of0yA5VMOeZ zSOZ|B0S+T`J_L!8L#&P17XjA>@9U^MYcNtH52)8M)(z&GdU1KPUi$q(Pk(U!e`>nA zJ6;_77cf;u7|pvfIj4{pFfFqYR|W|6EYgJYW%)b|&kOoiPL+T!8{=A@08l|bk?--7)S*eiwF&;_7Piior5Sr-lzoYH%p2GWZa6aRV zgk}%xj6*D{xNTCA?_xAzjwsROB6#KPU4#`JWe=*9#NNVt9?s zxjcseoB=3HkN-f8+9UQ^8suKN4yNu|ynf!*Ig8_JRv89aN8cG?4M23}!E1^df4xV3 z^Zok$RlS763on;NvYQZxz+cHI;xNT&qQje8?o&R_46;n2jQHObuZ+|;If9&Rbi&LXz(ynW6=RR z03$UP9U^t!2YxP5#&_T#mc3~&X%b@iEKPdhF7r!WjH@0jdL)ZML(aQ{>_jP+eSh|PCakP^F)3&Mmq9Zpb@xk zNbCiWz+oiNy;NKr=URT|Mxv*BeYPBwpVY4xp2gtxN8W_lPwVWmY7mPN6F`iFXpdN+ zrL202vc9=bvya{@rjP-|FjAvG;5_h)J^b6}ity0TN1ao9j)OjWO4i;n2Sys;rV$4Kj5K)vMeY)LrOUcf zs}jast&`TpAqK=qlPC|(1c!kUGZRQ4hLIXGc^wAzh)Ij^CbS%xmmEB4fWt^5%n`%L z0Ad)a(I141H&R*D%!3yfOHT6QV}^+qBAhc2@aJJ zj{uC+nDL@P2Vi6Xu^2G{#E6Lr=n{jA5fi{P;s6L6u^`-b)SY1kg$|;sO(>ml#}(m;g~mh6rxLNM%v8rZ{d+Fl$UbilbJHglKQZ!o{Nm z91tTWg0LnrJQ;z>4LOTS4Sbk~H7*HiOm5bR4h=?X%=V(`RF*?73@LyvMofUP5eovz zg=6T@!bVyUkI>|Z#YhwQFpz=RH=>R^=O^wq< z=9i@&^I#N#;&jxSMmjLPaGeTVST|#nV*=tZSW-sXi<21M1c%BERX(ApWI3Pxvz?;yra$!9jqX?Q931M$?k)t%^M29!QVUe6@sDqIji=QVor~_bR zz>LAghzS6r5JZDFjdUO$A-I5PR!@l~4-X?X7WG<=beIFcNF&T8h8H6y0%+hcQe!5E z*o01JX~>Ha697hP^aqoRESh*z7Y$y(G~lKNU5qp_J-C3WGBUhyNX7ARE*xVX03!|I z@TD2)0(jwCD&mkgVHQ9aBTY;n=750qyY{iHD>g(#(G+@F5Cx&&;(4g z)~9j!Z~W zG{oRA(g<_JrV$4KjMP}Xmm1WW5M4ZSFj8a2>#&F}b;t{cH^HGYitx}(-HbV2?!@x*0@d!jKPiM>2;HYa{mmRq)TG z?o}Tl%c-+SP4?L%@8LI}oqOUn5R*Gr8gl#^sMn4QC=5MU=_U`?l`-bBNF!Fu3&8@s zU-cXXf={pxj5LJv^CtI=XAsYxAImd}*mx!}&zO^`mwD`Q$GGp{e#2Zf$=(Yj(s~xh zTz=mavM=m$-dXUfKVCmQ2lGk-?{|*eiK>$xm}l}*`joWBpPl2a1!oL6_Fl^VgVzd^ zv=RH?3_K5*C+{1+)8PJ%J#dNte6SWgOQNx-G63Z;(okHlp}5wm96b8LNR8}`bwo$* z|0>KoFgfl+jFAY#BOV11z+t4u%zzju$;e28n=n#E`k)R* z1`vyp5cc2#rpky%07h!`2XGU@u;|LzSU&vfT&kfGOxw05>5fB*GG!Z2J zmyqz@B$n+V7H)XboL?XHoJwqz1QaJ>0pzGyk*OsKt7m^L1V8ah?FY&kW6& z7EO&>%;#q?>sf$A7|PLzdzFN8TkVb% zEWJFIDr*nyLCzg(+Ocv{$60!5&CDLf@zQ$y#q(sIZ~MGQo$x(ztey$3Q_qF27moQr zsTR?Pcv84eRxESi4Fr2+O>y62@7en=byNSo0(DlsoXLY780Rz38r(e>s=MJc>O8z~ z|9(&-4RI&na!10oSADT2#}oy>_oHck?-ds1SkGTu=F0vNhjJ{H&1BE077j1GY+e3s zRqFNN)s*Kws@KJg!3D@ianZuwtmj-=jHC$nC4dGlIrgLh3H&#k>&TI6SmZS;Rlb;hL_osXF+~C-Q z)?(nlaRYpYiR!aQ_mT4u_W_hie*^|6mHdkin~!t~`K)-((zqk`e9w69z?H}6Chi~r zY9y999GAtYv?BE0d}La$k9|!{Bj$MoFB~yo?j@vgShDe4yX1=U%VI76J~L}Ztgp@! zbtc{k0dn7_$1e38_Ubu@RGJYNsP*8(2=5_cuRO(nO+x3AUTROjVL#~imovUMJiqEY z0`5@mO5Z2nzyG@F*h|1<0Em zu^2G{#7GGHC=N})wAdOmC-q@()_}uELpZz`31KfBUcj_OBhCUaQe$S2SiEG+ILsx6 zH#vtvY;x29Fj8amfE)lLH5MI2hc`Kgfe|wSMB(C14P1*=oC=JX0b;}ifRTo9 z_^^>7nB0)Fs96IpU>X=PivkKn2ZvDzqKQY|G~z&D>cY(&xEKl19hx=-10*ubwaQnY@2~zgF%d&{!_jvOeo@r#wSx;Icn-0XMrzF07k1Ax<0vFmny{ zUWA53d6>C3|9vm-pECa%P#)W$@@VoW^}yc#s)*hFc1!#^fb*GL#Vo;>2e|jW!FxhD zJl5B7d8|{W9=x8HLCdsoeO7kLh{sZaxu_G*9A{OUaEalCn{!NEc-W)kl9NddmIy8CagyeaY}t zdwoUq{}YB9&2?HiGJ_B|b0$}1yoX>taDL5$|KDBNo4HTsNjw+WL+$lfCx?2sDIZ!h zGDQE<5IOO8i28ojdOV$s7Pw=%cjzU;+^?=>=f77$3?t^;8)w98t6txLBljD?rT%*b zd)4zq2AGz~FcRf2d#V3YE%hCP@5VvAa%wNc1YPb*7DOBc$(Q1Z^8zVFY#JfpHSqlLYowk< zkN1+)9M5L(elR)e4KOX)q#vqGUh=HppOrPDyzYwg^8Kpk9FmG9hggI6dk&ss^&UlD z=E3V4(w<#r9s(HV3VbEFa|u-q2V~R{l88lzXDBo3MEWfr>tOGJ$vP~kJp_sWB7*l5 zwkv1TuPr`@_`T-eBc};9Y@`7WBLj#_H0~##ZK@7yXV&*W|2U!US@wfi6)PRjRPgL+ zxmXwU(dXbZs`b+T=SG?P6uW>V^j--u_UFTYp9q)Q|D&Gx+;7beXt*{i|O?pjse@$%hE^JppTl5p4v#x$}wqhomyALCO2w=9P%c@ zHUBMf;Z2MAbjQdL1dE6{lFi?=xXd zUR!-P;{tyDGOrclass!>GUBK_5Ht;)QR&bk&Vw9906L5eNDLn~(gM5y5;%+^5a`&K zzrTL+I^%s(WWQR&bHe$o_ZzWPR&Z&VYs=d6PpOmhmgI35nA{h8b(j2}NwZAI!H^d( zTqXR0*p&sSCjajHr3-I5D0r_R!A1tKCibE}XQ7+is59q8aV}Mc`EmwzMpmhufW4~T zSP5LmYE9wgv=;pr_TepO8D&NO>i|jgu$LTkL2;Vs#d(<@_Na$Z2++ic2_QyH02rw; z+d~WMD1!!w5fcDLYRuF~3|YA8!6jxI7%>w-1c#9tGdaXj8p@ypVkCq;H~=FxW^1BL zuDDoFRZeQ*g)>z~+KZDIKFlTNRFD&noB*0>qyu;pkP(ZKCZ-pTl*tjpNR8P(tmzWv zkP|=%^RjB@Jj{WS8Z%ypMI7n?7^yKcNNjrHnJRxCbb;g$ixCq5Mj?nMzN9>AV5G*( zAThjfromd^Fwzh%9y*NFm|bV;IvqF)SoU0zB@ZuP8muE6xhSKM7!^Yc>ntfF9tBF! zF*sphqY%OxVi>70yFRQ-j9P(cC3)ncjI=1;tbu0gW*nu9W_sZPtQZNcvFo>N~Y=~#!lNe$hhN{H5FtwOJL?IyhL zTibVjwE_1~LIdTv3}^_H;}Wg0_OxrR6FVbKs3O67j=hEkDx!gMJdS0r`sp=Ycf>ao z0vameXn&5>&Al4_Ru5i>BAMyBeR6A}p%Qa+o#-9Zr%?S6i{$1CJv+(yk1>>1-$RFX^WBPzf5v{S%@T%Pbd1s`nyw}h`FE=jF`$@OH z*MIP@z2*V;{GNaO#o-;k2kyU~jXR2Wk@;2hSzq$(%#C-L@3m{sEib?I^w_KRRn3iW zbUE*GMl|PiT(sw$iBUcaMaO+`Y*f!N?qL){aIe(y)_U>6_B~Wj{!HW@c^-2oD00}L zNMfzS?-lYOklEJEeJR!)a{qn`FTWK()9Cd&7etm8LqIvkz+QgOmT0L;k%0375lU`vHE$`YI{0b zmUFeWV%^-w-^JeCJNaIpc+iLEY4>%fb$$LXo{5{ezwA(#|$~3P!K4``+V4b50o#&QKVpYvhJPKtm;ZL^}_81cd{EifEu54+Hrg>2ht>J*Q`e z!hnV>B6i*Em856ps-Y71^co&ej_cSxwDXWh(BzPJ&$>tSoQIVjJ_O3~Fp!(LXrM-N zpd8mVJd^UQ?GZcF614LkXTR630zF4>G3?=^XDAG_*X$92ie2LY713Kzm~e)|fIvkw zP>u(m+@ypCYIIKQP$k5fRm$KR3EEHzVrSV$y>ri;GjGeo2P&csl^}Lq_VCE5!w&T% zG`Sfvp%|f|5GEelkVT93=I9oD*YMDtk&b%z(KA#=kF$1Otw(FmKDo+tB(>g)^mHf^ z2vkG^<#>pd4xd~$r)Zzpb)+M=?saQwhC+0n^63LAqGzZX){d0WGs7C5wWFpQK2W3c z9<7CVCF39d-j8_jsXzIvApd#(>QjI6FWrQf|4th^nErj-LG2-8FxLK6{52&|Bl%N< z&%}oH+;In-E$@MUFZLo#&*C|L*1SXRItqf(pKE(h`xnG$ISWOH>1J|6Av(|bu0K+Y zXMMizl=luZXR*4IxO2X><(uG}`?4>28$H~cmcFkWcUNBerD*}maT&PdT(fz|^by=W z`?C*wR%FgNA8Rag#?OJsgLj4QI^j|KmuJf7dA`=*nR&*1mhdvK$n%bSUhZK$YrY@u ziF;sv)yF!lzpOph5bG8rBvjGCIdMhy2`|^A#@^&$+57NLy>Gz(I5|M2&I zUA_N2|LKVznyO;kB+t8}^I59KJ&oLVM6GMD6VZ^xnV5aCR(?1B9_nnKN)P*Sj?@tc z+WCfeLMUnw2-e>DJ!0M$c!pv=TdeE7eDC+Ql~}tNA)$(duABWKm7M97$h_1q|B-k4 z?&h`Vu6G?Cf3FniDUxTs<~)D;H@ zoR@h!H}kR&5m0exp9f@@y}15A-uzLxc^KX`*<$>_4`C;=00-0 z?#T0Fn}lNgF!%3(OWL}hJ%6hg59n$0Z@u&L{pU;H9}RRL{9Et*p%0i|j~qSwuD2NS z&ga;g)4i+M_gM_kv?9$j;cr0Y5v{S9lk4$37zJ5u#Wv?z^eM)C)|wgCk>{RXLjz6h zUe|M9&oAxEIq^*SyE4AB>xGAVXQ2k6dynrYY-(E!d-&*ci1+mQ{24*?xgN$o^(}sW z=+A%n@&DbQ%%2J3TYt@~Z}I4&BdXF4klZ@_^3pq8^`CdgD%uteRx|8JE0gMP|@0P&v%^&R74xHs7T(4O%BxP+>shk z(V7U9N9+M{IcXph{)11h3BREeW&ie!uQ;2R3jIs0?od#&j~8wz3Kp$&zAr=Tc8prSPqsF55f z$8`ShFVYUZk5)bJ3>l zp6}`2YwhScL_;O!=sIz)W}hCQ9a00DXpd+pgo%fqp~)aODWMHnR3wLnLhO+qY8|SC zXqI&pTqo{9RhZ*m|D*U`o4H++KUMtHyI*{N@U3i$u1GHXc#n&=mTE25&;6XYNDnk* zaY4Mem;E`{65qjJrzFbDJF&MHf9l=u_yCN0JkN;Fk~fB2^5~(~p-PA|DcM8c1!~Q+ zChv^&$sq3X1Hb?8{nqQR`8PiHA@@uS=HGw$7eDho&j!c6Z=GOz7m6Nu63mGP73p1R z@9T3B|HaSz%KZC1oR@Plhsatd-WhAZB+$;v`QOSj*1_`Um~Rsw&oQK?oLYZ&ba?N0 z7T?6{@Opi2)KxviS=$?NS=&E9%bl~X*N!!SCfXyOMLh?1Ah_(g+{xL=_us%7fO1?9 z_8iyMmc=u~yIK8CQTizMsvU2$)$1?xMDbq~KkU5jXVU*2ba zQ!bo{iki=TwYgr8z|BL?pnfcD39skIF)7yW=!&vhJW;8HY!sIxZ1-I8-k7_bndi^@ z_5AE(J+IkxuESc00{y)A1e%|{L!RFTsmddEmYreCx97f|TN6(~r;1a}y^d4)Y|1=1 zL$g8N@6Poz_f4Bjdb@UBF-i$lbZ{Q;ZuvR(x5UpvG*S0^b#I(?U5h>Py*tL74)w&k z)^O?`_To7%g)V3uJ@eX}Vdu;jEPK>4_BpET8;>$)Z#CAs&-M29c{%$}>VCW~ap>FM z@eIG0fpUCGL+#6+vTkSL6x7b*_IJGRVa&Vz^56fCTlB|#_Uj`)6CU~-Z(&~~{Og6! zjNkj~`r^kL+1G22pw;GBJ5oYJLl*ZHvSyKSRXv ztmt}P#aZ(?ef}P)72{rV&basGPM#spyNW)bMsh5$n6ocS$YHdm0Y+m_IvX)wciUes{g& z!#@5lR^K1bmOr!O0FNnrz8+&qo&`QBs4d)evtJU@XLIzS$hYWvkMsc*XFcccBO0=p zB7SEt;{z3~dqe{j(S|}mLnR#TpNjN$x);w-2xuq-1j=zgR{5w8UoMvJc`L2@y5BW( zAy6av427{p`tX5@UE={YIwy9hC1}(3oa5sG<+zS`r+n9(xGd@~xik^`2Ri1Lb&p4%eugctANG2Ir1c&}PV8C@OFdio!WE zm!4Bl6?^Qu${FmFSUcj)&}5L$UT^6&^cKTj`8`LUf~rWgF6(Td9|GlgI7j!YG=f5P zx_}3i;~`d>ff@wLaf#MgTN=*{xzgl@LO`G#54~GC-Z?*7j`r(wTz8}ffpR>|C+}XB zSL?gSee~F~cIh&Q(MA&}PUL6d436qJeTe#7c+1mG?Q; z?sLR9XU}<$TfMz*?LJ5QL_DC0c!oll_K0{h)C}|~(z;d02g>o#v*o$RwXGbl`;m?u ze`Z+2v+fan4yuN8abAah&*`<PzCwFGTqqYZ`Vv`_3l+K@%WuCd7>P>zRT&RxNG z&3Y?F+tK>Hk9vn%g6?dkqrH1=)_o21421!Kie2LYHC~d_1C-->zP&1~)~43$);*#- zBON)qLzOs^qRo&;+Fp;=LIjlKVXkv*YezgoC5WA6ABDMx94N=bK;B8E=Ur0+Dq0hP zay(t9$E@~|+uw>?y?DLXJ@$LF79yaDTOK`zN)WBFtR3-ya$E+qxj2WqeIihf>)5?n z_nfKZ5Gcok*Yhfk{<%iJ<%ONl6e}Gy>JX@r9H`N`BQ>Cj-9rO4&N(%p91qbRzKI94 zLHrpC1I|zxJz7^O170U4IZ%$vU`@0Rxe0~a*_-fzay$%MIbQdz9ix0yr`8$i$kB#E zn0T|^^R|5E0u{T)1Ilq3tclhk6RJq)dd{ht)PQnaN4%M|*+T;r(LhDCp%ABduFrMH zzSiuKyS`Vm??^vTj>~{H7w1sl^W8_Jr$dpz4z;A~W*ksS z-_y(U05Nb++!r}_jtBbvR~=iALFNN7aG&r?{-ggO_W%CSyl-ND`&p;A%wH6#XIan9wq9RuzzoPUaz<8H}<+@t*6-&k9QJ^Dm3!Wxv%<}OTX@_ z^m4zE(0lP6vL^i%d9Qvi_~SjZ?o!L2t*o^=CF++j+Sp_D4XeJ#OXlCDhpl*?c)t7= zNX1Z4#1He8c?Z1W{%$k>wzoa!f9J8+9!ay7*PC^0#+pDM07?>L_{a+Jduu^ZzpS*0bR)K<-N`QJI{RSx{uPAXPM9Ovn=1c1N;uPWY%*| z>z-$y*ma}{#R!3NT!t-ekGQ47PQTae5rG=XfpT2e@a$K4b1pUdAW)9WU_D2w_Rv5@ zG*Hpn5#NwSMd!qsVI?%hN=KOMJwK(XxgK(8JTv4$<3d)0EZ7Ja6B9J_DrNDmq)$NhDxoT2yH$1}G)Y8{FM8nUQJ-ihrT4RnU| z7%I`@tjS+#y!to)uRlKi{^yT>#!b_=NB_C|ai0IjKjYSa{TItDsQohOdxxPX%{tGO z&*ig3%)hT||AKQw%N6Tf!$sfRvYyurPxt}t(Q~UF;YxJ|^f)K}%Z=amM}Ok>Bft66 z9>lj6_cFeNcs}lFd}n?}Vt#wXJ*to0%+XPtcSMIFSQ^lx{qY2ZE4SB#KQMFKh*Yx(Z| z9;38^A{(SXnBM{KhFUvM=wyv&&|)}pNq2BEqkHs9K0X@91h*QbNj?PIX~Wa z{*K@o66EYxsUki$y%%fw9`PdQ?EXF;dmq-{Vc5I1y*W?Y=Zru_w4oA?v%i(oYf?u8 z<#>o&9zAdmiUKrLf@or)XDAE^RJ0}n<+u!Jb8(KxUPl8>wC70OPzY!!1nf{Goz$Fn z-93DuB6^0xfLliMl z&bx2zNH0*1hk<;HhmJ!X&%M@;_&_eRS5RfduFKAV--$^MR77_ul1|s`ky{gi zay-OJGq`4t+{8m0DnT@{&|6TLo$kRi6apFwVd9~Iay-0bCvc|&xT=te2 zE9eyKeEGA|&dYv-%x9ld>s(li_qyCk^+z~@!g(q2=ztpr=N;hgB2gJ9@2}g@zqdFvd3j+!HK?93;@8~z3|(J%64r_Hf6e?my5FJN zT3x4I=V&dj9Lci<^LO%cPs_VU*Heo4e}4S?=>hG%9Q7_8myK#|=*;W=#+mYc(SmP= zT%*p+O zkNYbxS}#WKS9^+Ctl_mIO|PPLq<6n(@6p!IcU69_`M5({Td~$2A9tHq%KTIJvsLqR zQv)hm_lTaMFd$Hl%YcR*>PcwwJw_>^7$H!Ohk+b!L1p&Xb(K%fcfWfb?GrmA-OTX~ zg_zlEXxHtZ^4!CmQ&1FPhbkdjmz815bG_HPcAbb1I}`~t6vD(q12sA)0_C{f;~Fh! zGvqEbRh$#8L$096;1<-(uCdAC7PMuSM-3VZVcH|wbHoG6@i34>pdxw?iozD%-)nmw zJwQ3G*PDIk^v-l`FVYWGM0Y5XPS@~&HaPpvi8C}A zfIvB}qdiLK&PYd&2Fh_gbPw&^F{}X%wY|3M#I7SvC`Q!=84_R=s=lklDXd(>5>nVBPR;*lVd}PEEySu^8(NBd@w%W|8N(U7k0e^_IMz zA)hhsp?@3se06URqtEw{ex#>jl#ifrI%B9#MdU0YsTm3Zf$qpY2Mv_t zGNA8;b*Ia!u_n(2YkmCimhYUT?$_Vzh}4X_3+`q0Jx5)0Pvw0NdS#TV$ z{D2sEu8lcy-orOkz4V_Xd+a>R$$972{Sen<`+T?kXC=MvV-!T>{YRKJ`7U`6MeaYp z3D)si)M|dd*UGzA>)GAMYeY0;;Wg_$;y*T7bK^V9v)c{L$3x8YZ(n`m?Q384zWlkVn0;vb(TJCR)AlZo zUenQQ)jnP)?4!Nx(F0UO1Le5(@ysf(a%xwvebqBJb)M_Ei_*{JpM`ZU+Qbl0j)$0D ztU-U)`m;1$)7bBQ{+*NkHP3qVmB5D`ip0c6cPJ7Qf7WY765pQIvN$u9*>&O7+!}q>pR7|SDt~N-Tcn#+homr)(AYmf3`*5NiFjJ z%+>#l?CUbbUdcM(%KQYqu#xrro1E2A? z<@!8-EBBgnt@~ZO4-e=Lr2iaL4ctF>J#uurBig79y5F(YLax^#U+$crmF3>Nw&z#9 z-EY5Z>v89*JscxFoNdzieqtZi&S%{Dz2LQoK#g-wZNSeI2G4oJUKE=awGD%7m_n>j_iEm8x$wm2`Z zG0y+6y?6e+0m?D&eYyWb{=#*93pa=7elB&@&jm#T1j;c6&QQ7PJhA5Cz1O#w{rJoN z&)qmKXF25fUi(bUHKWJzO#9=N56{HU+6$29PAt#ByI9^wn1a<)I`8C)`>_98KIIdi zubl5R*NZs5*;r#>&mRrPLSgv~uGTy9S=aB5{x&CdRouXjWf~XNCB| zb5Lv8)2-#@BjZl;JDTqIs{6jTcq*RV40$Igx=l|c?@%PrPzVT=W5j;eezvBobw5OJ z{tWd<_nhyqaQ6ypdzSYhFWrCE6gHfpF#Pz8FzN$XLR)B z>T`ORsAz`3`=ur~V|{-+>5*40!dWOfyf)Eu@$Va}^}W}0{`=nZ<+PsSurCF2XPg75 zXzgg92(-cBf8D3NFaKKh>pta~+b{gY*FT7O6W;9-^Y2yC3sgjRs3mCAw)2eav$6JO zZ&01(v2OM{QdD)|<(+dTeDd;WasA4DcoQQ%tk-JzE5sT; zx1s=n?un1G)?McGJ3#0C^ZSjv@%=c?&$Q>azHydVlb>1EkNf9cAKo{<*CHPJ4)2k7 z=^hp>s6}*=`L#~2RqMs~_Kln&zX|v5#IP@ZhuP~rYaSj@(VEzyNFY#g*5rmlJWaB1 z-;W$9$8`;FX0?sb>o&V*?V6)~;vN(Q2$bU?cF%h5={eeY$f4~yQtMD8Tbz5y>Dz;* z0=Y>E4OBz}6}#@Xs85niGr)U2r+D&g3Dygl|lYoc1R zr)i#zm>%H7Qab{QvRh)x;V%L#wu0@X- zGNBluA&ZD;2sE*K);)HuNFY$rn%JR8O#9?BG#TV3C2L}bdQ!T3Xy=Y$Z9?Iiy`g(( zpd8ozcxIJHjt`XMGN3yb_u!FJ2g>od)_q#YUvd17*Z%6;V*Y1(bUY`}ebak+-P-Hk z_woAY;&;6E`)>Z~M=k%m)^U~_*ymh&KKeWt&6<^8{nd~9qYwVb&-v~C`%He;*k;`C z(9E^pwY?`8#~Ba--7{J9iaRMjSl^M~!S`|h3Equ$iwb>`ZI5}r=fx7aM#kDlzVCQf z`S+@vSFea$UaxQISU z;9lbW#e4WZo^9MyyRW5j8C41KB)yN<<@cNCQd{;s+-LRYn%0gN?B(~*7P$r@pxDPX zkv~Dk(gOa$d7kUWi1g-J z&>v#P_K$vsFM9WD#_y_lrrTfe&wnewlNB-jiv9i`x`&Me%JG6TaA(!K3Y?+c=T+#3 zUi0R2{@iWNi!;22^Hs0s5Up3=hhmLKBKy}FE}0+OoZrXmIWj50J@b6A-)r(YL&tYD z-U)Y+IbM4g;~wLF(r5m%-D?pzFyZ}C%^Z-XSE*_-M<_8KKLH0_v-My%;iQ-g#a9v}lLafI5A~iuuj8ddPKu<$Jz1`g?Ec!=C)yvQHBIZ&}{ zdyg9Dwa9^TJnTt+U#z8Hal!Y)gP{$DFzr2V^m-XT;k{q*fmm?mMgG*l{-5yPAI&rT z#BckChw!)k;4d4j^PN49pJQ2%HNW6lCRLs~QZ zm)f%akMh0gxBcLEU;pLn4_?>ZU&psS{__lL*16O)GW;KXmY;!;vBrqZjl1D4mi1$P z=!Huy-;dBikayX8@MbRO_Z-{wMYCt(I z13FpjUDf*h^Df?BzLVOoe;1Th+|#ZfMb=}k#iFj|&A-`^pw-iP;PO`u}e z_V!}FqdGr5x#nTNe1Cg$@8q{VJTG=Tp!QTa_f0mr?=?TX-repr-@%{y=KSA%>-xU$ zk+p$xtReQjF{?)XiF0~h&hX$*ee-*X`TL^c*>gnSI6peho|rUi3bHPA?r7gN=e=(I zGK_KL@%-G8?;*8o6|cVLdtUPZE`9k!fB+ zeCiwLqUTaZYeF#&`dr<6iRk=3dG3YWecnaB7yEJ64)w&EUbNrmAz%C`=@Q1g@$Q=* z=V@z%9Bb}rwVqis2PntGT8d}5@1L98qwZvAo-g)}{qm0RKg?Iw9bA3Y_4}WN^=>n_ zjtF!gj6FW^Ro8EQxQ=)S-p4+dt`TRsK9DoqlaYW_>L#=C=YzWzOvCb;7eTCyC`k4hF`ZigaK?bH2JI_EI&4D*|-=gU3N zmB-Yx^UtmS;rh?+JG^?~J)e1F@MZOnB%ND~v>(c|2V+^$yIRx=;mhX_-;VhTGFV^T}y>smSkE7RT z=KOhQvE9E&*84Ja~W!#_0KqK&ujHLO{e6Umfstn8NWN=58RUb zcZoG?p5wzm@x>2dtdr3?)_7o^TjM2EkE1N_)py#?M(v8bgPH8y4|5m(K)#pg)hV|1 zYS|3)oZPz_r~xsw`Q#_bxuVD5d-C(7u7V=o8{3}jvD*JW_t{x1?E8C`53hC6UFMzt zm4EeyhkxZ?eN+B*Leuy9K4Se3EPO-$`<2f9p2)4AMvUjYjy?04zw6h3-!2v6#7!OY57d~J=8faUE^u>aaQkz-h#qR z#{KcT)pyFf&AY|hfXX9YMAonGq4(Fj8$aKxTCBYVg?W&;3-#Jl5YoZ~Giann-xxF6kJ6;9QKt(iA z5j{g;n6AyaeIhlW9M^HntF{cTlb~mYl~9YbCO1Q_&S9U}p_W)XxC^T7q_N?L0~=XqBzc z=+fL{-?7)N=jh%Z-LvJnMzjt&G#&(+*uAcM-|UmmP#ACznhMT|T}L|3hz82>5Gx&h zuH&O2P>##cH4b@aq^o{%prZ90_v%|da}9-n9g3ur8adDg@eP$Ac8%>EZO9@b8g{4> z;yKbv56}kf6M>3*nmSOUb7F@gG4atrMRbQM>Cu|fmbORSW0VFI>Jl=+eP}}=prH^D zsBzAz?Liv_dp%myj-DCT>MT9C79yY=53$k_dfl3$HL)|&BdDA?Vs~##_a5tWebjqT zq?>zqBYSv zzm9a?MRO` z(U3(%Gz7}=^gvIiyYYZ>T!t-;*ZoLGj^7#S$k9MWv>}U#=*~z76v`ZC^QajrL7Yhm zuS1bsLgvs1l;dGur6W*>Kt(iAj>oarswIOe=@Grfu*dpnLnR#TJMQ_^sdYv=pi;zH zJCD+;=G=ASo{rKAYMC|B3^~?9&rlf9PzclB9OpXu43**NI(hfHj?xiSjw2}=0u|9f zIi4SSAKH1>Vc!eXRzW-OI_x_^t$WtaiPj+>35r<|D92^!y4h>_mH+h9Z(+FftLw^d zBA!LeyZMBF{*e#9@}IsZ`B!N$_&Y!O z1rOp*`2REKj`N<#L*EjuS)iWP?H!t$ZFkPk#d7c6r4bmiX$z`pBsom@+(c{F?htjNm)fbir|$L5b9=t4d6wm8iFcRpfp>N48S9?M zyPwbFd_=yBt9my7+{Pa4gAZcO<=b%`v-S90VxNT9;aOs>{MmGjiL7%|3+UuR7ZjJh zmS=1FYI%mkGheXOeYL19)HOCa{4gH>1{6z}tfn{o@RyH&#@{rx$3m^;^%aYyp8Ut! z;}Is;Iey~VI7j}oa!1a0>3Tdvku~zU{>SfpbN>58(>lWU9*)(chy&EBu3f9@Cl$e8!SXMg+k?|%L-Tz~3M{;F8-o!5Wsoj>#}Yy8x^UwrGE-u@S#z5N}} zjNbp}cYfpb```HHn{RvDbJzdxAO522AODQo>t}z>U$}nm)o;1^hF|p4*FW!f{=l=p z_{VouwALtu@LEOh1{@@q?zTflqulzk<`n$h6F6Gr+|Kfk)mwxrz|Kl(HqObmvH@*4I z`1%cR{J7|U-Ex0;|Lezn)6E-yVR%2ct+6z3Eb?n>k#G6nt6%pi@j^cGbsrg1U;Q<2 zdh=&Irw``FvA1>@_7OBW#!hhK4LEIw#J$dr>}u!hwcDblNB40~NdO9zIZx zhru~C=(M6l;bj>AyAG>v@Yu?P&X-}4TUiA_B6FEsLZWsuUb~YHKKLMvHzAw z9jJ%~Dt3(r)JVPsg=xC(oH#>aK%gQTD97Ug-*mO-=q)Hr2$bX9W1ri#*Q;e$>r>mR z&t9};AHErKK%vZGmcR!pTK9+s%JDFe!x;(#0u`;dBA%fTCSKR%Kt(iAj>~|C9jc^9 zwDXWFsInfrrab4}+tTi*)}csD`{Y0y#0Sdp5cfR$^qck^?Gu4=ysV$zPNtFr<#=50 zwQAX1!}HxwzD4RlIUZuAV-C5>BwAxx6ZaUUgkppps>G2L4Go2WhC=L-9@o0I=eSj~ z=XkEyeMCbR5v?6va!%}wbmUtauR|@d?y>9E`dE@RSA75NfB$|~thlO$-SbEjs(2rP zwUX@rIUn<1=3fD!-+%jAsqe7KSj%hf%+0>TbAQ&eq2CI3`d{ic&tu3UqP1fyEpq3X zdq3I?c{h0d7V}$+RRqH)A2BpgBRNox$3yqg&K<*At&eYpd?HY-O0+KPv4YofWHH}e zYVsnvp%BS--*^4inGXcxXY*O>7DJBn(8JF!kbkbx7y%X0K#k-dYRCuR&U|m-;cqeQ zi=gOQG1m6)9{l@)+Cu2T_AISsS9%@|);;3SP#C6b(a$gWuN(hF z-scP7|76_OW~6VYS4^1J$BT31ew3dU6dRr6#b@cyTiR=1x`z9EWUh1crBF5cUY+mF z&$^$%ajSW%F)!Kt;k8_gOHFD~PELyZjJjZC+gvxc?YzmV)G!z0F z3SrLPR!%QaW6#ku6b1w;qJbvbnd!9+K@%Wu5II)_8jpISwysU zY^9Z?4uNu926QK`bF`rl(2zxo_8eUzw>Rr3B^0BHfd843e-sFFGMo>{xs zKKblX!9*&ykjM+I6BCay8F6^$u0yNQ#CXs)T5bWlfwJ)~H+4Gecz% zyDodI>wJ#P>2%#5IT~mpo}m!t>^XO&&rk>ml;dF?@=nUm(R)x897)m8PzY!!M5ld6 zYFkj5j-+S^l;go8w?_$WhCHg_%}^Mf)X6&($xP~aKohq-_slhNpd6RM+Od^}>^1aO zZm-w7cU5rRweDNb(Y?f(VU6=pGgN}OMauX#KG8blfI>k-Axu29p%A7$ zBA%fTd!&b&A&ZFU&PZ3i&glVabWSu>f@or)fpR>=N;A0DJ+%EE(LIkep`BRv=y4xL z*W{<5ul-{12$iIj8wO{eBn}tgrJE(Equ-7iqKlZLS z=0Ep{J#N3_um5iUGZ3%K8c!8GD;w4`KRD#$`7b$-qAA|xyT-fUcxS9bpCJp!jXCsm zy7gS_bGnY_Jba&i=dl<)GZaRr>v%vpw%FF2>wM?Wvp2l??!S|<&G%YmJyu{Xn9o}8 zgj9{>mq67-+#+TBUE3qxClrfumvMjmoG$lC+}VWwEhtRZi8Yq*znao7{nSF8KlkQ+ zwdYAMerG&@oHc%DJb+97y5V1VSk_yCJ7|WQJ|*efB6IM8I@iy5_!*?}9DGKib<9zp zSL>(6&sWuZ4?4dc$C{HqUT_Nvvy&d@==?cLakoLyzC~6UzMq%KJCA3}JLumnwd!M@ zp%8;n?{_l%))Vq96dg&{JFzAUWgjA-iQTjA5q)1!EOd^%Lw*kEyW) z2~R;)Bz9f)2-F}@j)%c{kLXj3@>r+$;Ty7uXic;Zxzgl76Y)CK610hp1}b)q2bAOS zfIpKid)7pt4bHxEVuyNC+8(hp(u8&*HZ=&;xRv8=L1CUF^R{~I6KALl;;d&cS`vy8 zcBm4fi8X6Hpd6P04Go1b@vMnJMQdV*dNOHh(2zw$bZ4Xqoru&rX?1SxXun5lKsg>_ z_o_73?Y-9ScTO}zuAr7#&yf~;TiUgAk-3H}Dw0D(C5W@`UX&Axab^~pPp*l09g3vW zHG9q-?f2-KBQ--IOuVkQa(hIe9FJqKS@+&q_uT!C)XeUo4V55vjXmdhKsoNm-eWz_ zsUz_ll;d%|>Lzcs$^nRIN|N-e*0>KHoKaz-}FXL#;QA~RSd08s)=|f(dT!4a?<@5^@vL{&+JR&J^6Wv{JgYY<_ygB znm6j_#4!QG%!Ra}@z^M1$ zD!RtKZ{3mW8Cy^HuP#7*pUclTvHpzA{k$fz{>;p{^zdisf$X#NEoXIq?XQUNi6QpB z-dJ4a5lt-XOXAg6z4*!gXJ`6NZ~463C!*g;Un7IEPtt#&=xvSM%n*BEN0#l|3PI{9OLF?Drh+zL1F=%EUf?f4}RTE#Qgc;8S##}_^e6IYcsF+ zme09z4fj347)y^kvnIwFK9Ap@niy$9jM2lLq9M?ukmqGGcX7ddT2(~P&}>BBJ@nx8 z48!j|O^3YFSH1Whyz~C-!slC}0YrWL`Lj63W37?**!6Me>ijON1Th(FTylS-zvjiC zl{``$V83 z`Vmg$BmXv ztM_kdyzWPOICI_c%Bwow43&{_nwuqi^}Oz^&#!hhK53{=<`Lq={5V^vz}^U zClq5Rrt_8d{MwTmP>zRa4?oGz5+wgef9EUX=i_tp=ZK#rSbY)3TC*kx%JDEbccg+g zLms|`*{2BVxsWQNfr{=S2g-37tclhkhsHBQj`O4@M-*hSlTYR2w7(m)bH|t=GrZOJ zPToED?ZmJTXzLHNt<~>O(U7b2eqL9KG(G+b6bKqzT1%3A34A ze}}AP6W_Go&+b}8Ajmq^OAgfO`4o)k?{gHs=@#er8Ckop=iIT^HZ|vtW_{wPz3zdZ z!I4D@ifCeW-ShOhpSmMz3GWk$PBHrO-Bo|h9p6=+HO(5_N9@`?^)7FCzVbw@Ui5u1 zmdSM-Sre#}vtSZG@zdV5IuCvQ{O+Z{L7^`pQ?f7CiFc7dqg(ew4^XjdJRsQ4llkI} zpEEo|As|qWwMON5TkP*-OQ+Y~n|sP%?l#s2Dn>289Xy~*$v%gliTr(#?~X+lfAweH zsdbr>^?DEaKJdtUbYDcDTjgQpb5<^5%@28i*9?cc|9e+LFF!;0Go#NxSJZ%tsi%Ed zciaUHCy@JkZ(@5Nig{0jbzas^cu&slvzN}F!Ke>ECg=`iefOh*7{2w-{?c1mIo`~$ zjy!sRa$E-VWAj`8?04QkmW*>*v#ueF7V$*??BVY*`k((@|H(he=l?_h#b*y4`}6@sIgySdG_Ub?)qG@fI4Ho-!E&gYR+3vuSYri^If+rpde8Z>qxb(7n@zV7@f9|(WJa-rFRSBYXTJ26;+l{=3 zoU{z?yK4UMq9t{$AL;V*9YGT#J$SX&-1De8Yj-FTI71k9)~>PB_j4@2uO9#B^u%-K zo-wEd(K;>W`sbu-)bm?dYUAfW{oeD4I;IV%RK~g&dz8>HQFW(86=zKjbO*+}`A+|? zyUV=Z8`~w+V(NbOu3O*uHmLV+qk0Hxdd{ht)N;KP)4=-iXIJd;OCKzIvETUfPj0Vz z^nB+{{2BKE`dsek&Xzw1`JHOL`es;;HJ=1y*#zIKe;+FxXeb2aKKlE`G8DqZLw6{W zPS<9SyhD*dLnVmTSY4AF3Sr`*fpR<^X5YD^XOP>ob{?e_)G}-0DMmS=7$H!O>)1W? zoQIWAjGbw=q1UV_qk$%#^7d->9fb&Jhtv#NO!1uWdXLsu1@ca8azhp^;&rxC%3ebQ z712OB9{jz$+QxkP+)HgsU6v+f?X4n+cIs2SE<5zh>Ha;@G+ub~peuFD?5wP8$xx=9Ir zDO8O_Yphw5Z+T%4-*uuHas{oj?LKrf{HJ}`q0o{pvY2JIS9lZwm425wKzwA># z{r2y_?IZbnM?!zur@ki{IZ!9{o_`2+Y(36qO-#f&Z`xV$RNT^dSMDcvW-;sU$u;|3 zxfW4RlRhi^hxXqWB{dY{F7!NNeh0*2goLJ8=~AmR`5srbNOS=`hhCr}xjZyPk2Xc|D&~ zeXS>@d6s&fJQMryT(uuwhe)FTHbQFhf+C(|J#V(NhJXLmy!1=!(m0)kc?0zvs33GgN|@ zy3SSh@+^3DfBF28-@N)C|NFkfT)*bC#=X$zU@z7rU%31n@GR8Y&qTB>-;(E$V+Pdd z{8XgYp-4=8YezgoC5YB#tpc@97x4_0=n-v(TxoKkM(3v@wHXRyi*w&r&b%2aqsLRa z*O=OKwDXWdsnGo$_6~3ZTu90}2I!8p%5piHVN}n%F&bha!PMIUdi)pKH}R!dxfsUZk1hL7*Jh z{_IuD=q2wxy^e3p6Ogee$lIjO>W2{qO~I>H0)3$ z(2zw$Gz4mNP6W#FFzn^{z2@98%By|wx1cSvdDNky5D+NG^Re1SnCDTzGeZt2)J%$a zhC)C?Az+6hfrd&r+IPe^@z5QLq?4L+^bCao4Ov7)!wy9P4TXS)LO??yOg!s3Qrm)> z*)=vf1e%BkR73;icpS^lKo11Uaf#?oO5{KjyJzjF5D=(n?P!0F)D4AzKshc08Uhv3 zK#k-xR7Q_zGvqE5l`VQgui=q*s1l-yWlaQ{*gdo%i->3l)acyNwXGZvsA%no4>WQ1 z$U77X+=9Y{Ksm10pZ#hXy{;<+oS`sahbkdEUw<4aQ5GEcPD92?$!wywKG|L(}eupCIbj=<)8mNfg zf|_aV=n}cP=TQgB@i1)Vdmg@PU5A}ej1Z_eYw{TiqqEm%pByO1!@NqzI&)4xG!z2P zP&3fZPw8k&C`LF#VVKm=Kt(iAj?2(Bj`JSTX2_!+JfIDB-YZ-DGZX@LsFJN{j}~jkOFVkb-j6n9QL*RNbF9`3)JzPtp%4(Lk=#&;9<3>% z&5#LIBv=#obd*-Lo}bdLDa1@_hDs2vvCuQaT0xO@_98w|j)!5+so+7NqBRjH$Nj^VLkrZ!>VJ8$L1ZpHV6aoU}c!=Gzc2BjAb)C(K_T26b=N+af#MgXftF&F+!js8mNdi6aoTmaLYgC_1dg^E|P#I z+9S@;Y($O+XQ+&=Xpa_aN4!g*y{1>a{-g5WJ&Je>qfd@Chq;%sraWHoS(f3OhM zbZO>t2Hx@Vo>|G~a<6M%Bl7%aU9T8njp!fu=nCG3uc(`}c1`}cP%Hp}c1Z0U6b&<( zv+}qnh~IVZJJgrEuUdr5QST-0GvA%>RkZ@K_FvvDeIN0k{||AtuU~x&ah7~f#LilW zpr)USj5Dsz)Hj{a==0Olb)R!e#~khhsEEE3IBz@igIE*#op>#UF!9hpMf4?5G(nK> znAkY(q3*-AXc>K7XT9zrb?dt%Z~Kkk4Y5Q*6(1#dF3}8m9?ShN-%xz>`EKei##v(( z)k?%pZ1OE=%RJ?AuM5{dcQJ>x{Qg*i+>pf+h^!5PCU(!72$bXT9Q>1f@wqo$2l?Ly z0qVrBnux#heIIdq$iH{g`kW`JV{gvN|K3N3NXkzgDRECnY1Dg9_jA2iljqIf$q{+p z+?!aM`A>^}M$Wm?X?o+JA8;&b1dac}OSZ}|pxa;C>x$36I$u&vA8=30Dbp$&z= zA9wG9J#wC>)^d4{3PY@2>yLBeGq;%g;00sdH(f`6{+UN!P{ey-JG0N={cEc`?bGM% zY0llDNRmA3tjh~~d~*tUk~|Z47Vo65_i&mQ>3~9+nAVPX@h+Bk+|G%ur%9fv?Vs{ov$l5>>wU+RamLjBIojQD zckzt*jnEhGcl=(>d1)?#x~8vk`$X%I1Gz_JDrTYP;{jd3INLZU{XjV$hMxC*4;_cS zX0PW*y6v5JbkuNs7WXN7AyAIX;PXY_$>(w(bD`Hob|{kj;8lDd`R8pd&YD1GoYy}S zE8q1?`(@YEQ4a|c)L45Wra9Ptl)^ym6sk819( zb+gX>{E2t{H~hIL?-v>f*50Y@J?YrbH}7?-HuttXspZ<+hK`Q9r3|BE~OSWB<#tlxMi z_ns)2s)?+&sbNr~0may@)!4CTieo1xw!(s1PAC}BMkN824wXVG3P_e*QEBGfV30~w zSAn!xMJTGG^p6S=)JUlO0kQf+%q74>im+-nJ_x=}+yC>#4jOaqB~3IhGB!96LV7N(E75ITT*PJ?@jfv_Y^W5 zh3U)dulWzSU#BCqrI3v|flvL6>z}%cfZH5bY)wf&F_k?=Z0+t8r2RUNAs0N4n(KRiX%;r?%Hy&Mab8-?Uy+(Ngup8on?f8Sw1B6~;r5~xUv93UT8#((uq^RR@C^l0Fd{bQ4 zr_>cZT07KlZDgGZtaCEl+m7w!QTw8UDN=j+9GUP%u_g9cWJe#_W2&};aP6~Ux20;! zc8`FGH-!KUh1p}XtoDM*^}>FBEp3iHK+3g3Aq}p?eyX3LeH`FleBs)6yZ^zqS8eaU z=12dU9nmkn0IrPEJM_ce8CxtpcjK8VzdESs(s=QZe2>V(?PeU%OS$hISI{Os{B{N~Fq^k;?GBw_?&&_;=h%`BJ{Dl20|hr+Bj z*UkX}uaiRcVJOUH{Me34aY!Kk!zgEXN7j1!Ykf0pS5@`6snZm+8Fg}pYoA2zPs>GjA5-Uw<(!a z>SYd2w3mCkw7-ydrYc9_E$&g@rGva9^=i)!m-VtvYoocYsEF2@C2Eh+4`YR_#PoV! zzxSh?LZEVQ?{#8LAz-!*S#4k_vfNx$zp-Us3wve!=ui~4UL_cc!st+RY?~#1D6(A2 z-q!ok&4Ni$

i16!^_)m?-SGbcl5%6j?3{^eJ`(K2r!xvHeKjIG&oU*2O1P(xp=Za~jt(}3!2yyO z*c1Y=DFk3s7&K`eX)Ku7dX-aH;bVODV}~NkWsGguVJNa(#`HRFY(2}A6ip&3wq9)& z_kR13X2GN=61+)oVJpJ17{Tx+3OUTgfGdR*7>X=crER#tFcev?%4#zv3|v|2sDq)% zaw(^5j%lG|8@5~8kF>4I9$VjPgbqWI<+89|r7=+zqaQ}m1)!VlLWd&DWl?poS#X6y z8eA!g0=8bU%p*lZmZPKC@xeVsGgwwXHZ%5$(V=K;j5LLTB-kuCQjBN-=w>XNuzi+} zLsp8a2wO)Q3noP;n>q^oW{k#2Qy54ZZ;}qhZ>~15?MNs(wrxsQ8yJd?s|{?526~AZ z8w^Fq*q~^95bk}}kx*p0Yzuvg3BwLWmdnCA(kwW}+15*9Od(*#)?;i?Y+!s)WVyNM z{nn8cOI_&;9f~ZM1vW-_iJ$B6226DV*4Z~)(z3Sj83K?Nj7!--k zY_s(#NsR3kV}l~gWq}Txq5;d^Zr!rRfz5(RQDnuK(GO#Vj1&!339c-4q!5CkXk4*v zNGP&g#-djnZtGxE2vo*y-53c)mg@!fo{6%}7}-KU{tA2uioqeD^n zAl*KsDFk}PhYgA>moe2=agA$L*6KQ@`g>dTf${e&Q&KdEsMxw~me`>|@R$Z{z+*;?3|2w5uE0PIi{Mu(zf+mKLXITQ!s>La?>dmDZ; zK2r!(#*Plf1lw-u7<5wzOfi1!rVxNlA<#2EY*1vmDi5>aHw&(`F=ZzPijHlo5)4J* zsv9Gr$Z}O;t4s)brKpNlM~pO!q$zjL7OmhkvnF}9-P4hm6BaJ5%F z75mNFXb*}khazzuyUf^nmT9zAT<4Z`+M0MRD6(A6 z4Sf^0(4kI059^k+vkAMQ5`!te1x&k8G~Oa#F*FJTr1z@XrpE93F~rw>{dMnoR;R5Y zCig$F^teK-apZZU3$XuICDJey;6s`7%$f|$IUd%hjlb4cbK{6wNd@5zOheyNu_O@EH%&NT_a-@CZ_5ci&118 zVDSo-bsX)Cp^YPCgjtL6%wa2I!7V-Si~v`zc{kKK(q65!QQJELR>(NdsJP4_$6v-q z928j|Qhf5RYj;0+*YmqAtkzkHAOrx2fCU*9_zt5`fO#cW>qtJ>cbKFuFp52M^a1qFfRWY-?%D2#3j14-~oTg8`Iq}wR#f<>Tw?FtF8~Gptyn*r7f_zm=A|-oHdYkplEE2)VwC2AvGqXz^{kGmHqr^ zI(GQT)b=Av1+W=2n0f6gZ*|v<&sWUs6dLjlR2xBNAaqSu%4 zt8un>Qfg8(c_jsH!kZ|Xqe^g{QwtgQC;h}UmRRWnyD1DLD=y}Qy$`)-nUbPO1Q>=Q z%gwevriHK7qa7HEEDx70EQRZ!fMF;O;OajN+mD1|g0WW$DO2p2>cfU!DT-peNfNrr zXFD-Hg$z^dIQy(4u|d%>HYge!BYO%ND%)=xI=H8hp)!7SD6$+1aLdUd6TXB zd+a($`;bs%ITXgoO)S?6g|x~z(V=Jzh9b*@i=)QWIIvkTDOAExWO;BwOl6|cO(9UZ z+7H6DPQ}zgKZruko{7f>MV9LYcC)?KEp10)s}xeq*n3=U_)O7&rR~VxX1$jR9Vvt= zkB(x;78H#_5;ldv6i@l9&A6A*8LT6X1y?ZoCJH&G*zx!(MN_6Ewkf;JNujbbM)XY- z#Q`>BHtr=pC<yf0b*x+c#>7;N4n>wr+0?PEDV;hn6j=_^xS7T_Y_GD%=w`u{cF|2? zAPL^Ya;>#NEEHKz*KMv9;rJD!lxhcCx0ERkpe z?{gibvEYcY!BBK;8?vX6p|bthOd$Y6aRA$otQ1mUQy4U9-LiA1imzuJ*r3RADVsV9 z{4f-Sts|kxaRAZ#E;3URx791%?vaaS{lQmmzqJ1!&b;(XchAA_CmuU7;{W)mKiK=hQ}^v*|Cj&dP4kzZ zd)NFQ|H{qjf8_0devETn{+~2Y!BU=ac_^@BjSS3wyu!*|WQ!`qlT$Km7Y&+k5QBTj%e8|9j{E{*7n$ z-v9nDCjZ*+UYEYE^^jheb2w+AAL|`*q(pjuAiCzt8e_yoId{gCmx@F zZvNNQ_oe>7#_6h-Aplp3su+LuOP}3iUYcXhlliLs-N$bH{2pua+>_6sU;e$%zOpO6 zbl@{Fv3H8S+}dRhw7aPNG6+#*ITYYv ze#}jMsLs{1%TxKb1aY%b=6)ozS5MFXtiCDxBI zYV5gp?3rwrH6N`JYcb4;HB$U#a#{0QFemwQ{h8+C68+_gJ}>?Xk|Zqgbsk zd!PG7J?vVOSN8tz-*_?Y!k5(k8FbpAP3`5J@i0De3!lb5j=y2+Qr9SCflVP`w#^bd z6lT^(V_#?-IZw@DpL4CTo)NPa3)W3>xyOw4JzxLvIWfvf@-64q+LIW^5-1&obTcln zDH^b>c5EYa&#ZMp$?51J)G#=jLD0x}KU7&z`csU;WZe zc}{A(!cY`OhoWO_rr?g#y6H}PAm#UeV1NEIf9`qRdtX$47v}V>;BbY8dmXoJNVDM5 zPL42V<}mEth0G&zkNL45??Vw1BXjR^ZaJs4 ztv%kSAI=hcO}i~#A}N}*K!;5s08deL#;W%i-L{Hl-r5@0@gn!}W$@Eae>cy=Ttg&w z)|vHDzAW0hYwfmM>?PKCmo+DEHD^6vUm`Zo=^)QuUfw6)$h~Uql9w4ry92+PXLg8x zHrEY1{qx+^kfX80I4^LekOG^c0ZUYHWvOGGv~$mpL*$9(b(!a+^vo;9qdiwnJ$spa z(R}upH|I*RYn*w` z0qY4fM*Q0EjAbv~UXv1IzcGQaRSGM=@ZUbHJLbh4%m4V|-=2Twx))fh`QlU0@$QrT zx7e|cbYn}IhWP;+g=FQ-W$qTvpg5mn%uV~j{PLN{87Gg?iB)bfzPuaQKjpR0J8f5r zqVT@K-m_+TpAC6@mVT8l+uDPC4?3e5p1s5@zWneHFn7+=F3%{9LFXdx;RX3_CYLm3 zJ^LkE0thIfRE`JVGXU;Rt% z-TDk`lIzX=OCPk!`coe%f3Az{+~2w0^i9sPzwLQ`hUbK0rrwR2N=&frNGJ+huhKXK zVAki7o~gVeFPJm$w9JjQ(7E1ckI65XbEu(S5O%MQ(r{WNv#$2u~K03N>WW7^{mQa|||B8M28@16Fp zmid8?{BQTqf_E13zs2}{%zayGILo!BPtG9ByAXLx{)zKB$sDQBC^pFICkBS1V{E1{ zkgT|vSL$OYE;Qy`6UOPgfqQ~;MXs=q?3Xb6!`?3NF&Ei)d5@>A;`BN0qUJuFMRIM} z*R#9qy?hJSox6?oVV~GH?tab%c|(2nYUnpVGp8M!Vsk9)aT~kDNHL-TpuZOWSp!AcV*t4|Zu-<1BWQGJXjJ_xm6kK zrp`O4);K={^8L!c`O}}tcO7z?`-XkyInTPY*Q~w9e3|`iIQOFUMVoN|+mEaiO$qi~ zXN&d9^Yv@L`wzW`^1U;2#<4|?^*fvGn87d&~3XKh7h}87Fs{H}mCg z);Z_iU0@gIv$(YXk|C#IV*k?|x@i5UN$hBs$Mat@T1{!}oUNDs#+v zbGNW&+Ly&}4?nQb+!yQ%cMa{6kG#vU?(82-o1Aa%nPFdF%`?I|V*SY{o}tv~<~Pm- z&?qF$n7~jJM(-(PFsF|^;+`QFxL?}7`flM4&ijRP&6+S?o}sJ@dro^=vrF07>NuJy zMHD}{GA{H=A;nzniFvQ!{^$A0T5BBnT`%`KXOS~F?Ay)h=U!m1wD!BKJxtxw2YvMv z&44sxGDar(3~&xu3(lFwptZ|qbAAR=V04^yiw!*rqnpBjJW-zJ_vhpad%+rzd)!6j zxcJiWEabbOi@WdpXa70xYUb}8cY96JK5PmAxzX}J+ovDajyaO6w9V&pazuSfUd(4V zYps~HtG@1^;T?_pl65D~Sfe4QE>ic5x}(p^QpYi2-)eKuv!?cUbJ}il!i^xVa}qjVD0w>Ur;6Vy`&=JP*iS%~|)wFka?Q?y!ffDf8i;V6Wcs zj=ze>}32*LKKaSdx^hNNHN=v4n<>d-p}Neaw2n+TpIQid0gk{4D&w2XGGS7bHzIc zKGu&l!Iq7!79rJ)2fT?w4j76om(n)u$(%FxlQYKeU%KCOoj?9V_sw7Y<$D>k?;pmN z`${A1C+p1f0K3~eL{hakWVOBkJqf z%iQtw&0NWU&2zy$qj@g4Q_z)1($Ahzj_3V@&ROJ~k@r4_KD-kT>Kq zSaZ?)>DgRg&53uO{9a+0^F=8bIC)E{S5a2^&3l!7@H{s;7U;xaMg<|A--hRk-MGs z=3H>!^Sd|ao!`9q9KxQm){L>;2l=^!d|=JV`)qYN)~2S&euR)vWVw_pHu_a7+XZ2o@=W*+UFaF!i zNpzkaoQH|FF-5WS-NkqoSVKQI*>mnX=B;&Bj$G8;@{PO?By%0K?wk?EuwcD8C%m_U zIUjsZ81{&Fs;@bJJO;*L#s=x0AHI81Tf4(^|gt=m-i53Xuk_H zekihBFR)i80)2`?Mi`1Lmj!!ziF3@}anES(<9TiO_JTZNU3jiBN8U4}YhL^o_)0$e zr`kTi7HtSqvbPb6&CGjD-Z9+kyzeNd+i&bIj^FP=Mr*-9Ab@19qPGml|4qcO>n@R;o+U{)%?809`HUm zJQw(G`7HC>R~{~4>G^#EHmwt5%AlfiY$i$9PK;2Tu=6r`-gMs z9Opc8$Mg9>bI7qXW^$FgLVLi!IqBD#9RVPD2x2N1*$FiWuhofYp<{N|s(?JXQSUFP@*oiJ>TrZVCfQV@q7d zNVDJ?w#_mCqR6tuGf&opIg=L}KhMbp?;h+Sxx;4*;axpj_Q@gEk9=l7bvASFXqQ;- z9LcoFPww#ArvBX}R9FTDrd>hFKrG*(2cXv;a; zj@-m@tr2I(XEMJ7V@z5j?J@rjbDQTWbJf}6-n#I$Z{x*k;a0<+?g+V#q&z@ zXurR6A05woiMvMk#XkMAXTy86(-IXt#WJtN*BJXY+3@Fgj=TqQ7jsu=zT_qIxYTl0&x7}JC*=C^ zIZA7#Tz!Q#%zIq*m}hdEXYM0@?f*h|#ygsMjmG7^7E@SO^Hj_WB z9rqvctgYXJa^TA%mT+<{ihEo`Y|$K5f-CcW$o+YlJS9K4TlwBfcE(1Y62qGD?-Z5K z`CZV0XD)M>&-p-TP>7;27>dHykx(=SSBj>rNzNa8$l7u~_zcE7f!2PH?}4zf#u{(_ zt~b25U(ELt?k4tDV|T8uwcqvI)D(RzM(#uMF@7Dh2Iuc6-QDiw3 z6=Rvwu_ZG%?pfx~eZyVAUVwQXI4Ax2M6vtaKjbv$mHcb_I<~2{q3D@&L7tMA+$+EI z(y!!a2+k8ZqMRX5l=u8S0so%v8GYuvDc?oODb|>Cz}hHI_ww+Y1+nB2=b`!73n&^- zVLkgV=DkMFaW~Q*XIgf~nP-xUjY1MOg@75GG13$bAS-U>6@lMe9oV3tV4TAmh{yyH_dK1acp~g_J$M3#8=I(IuXaRICs-* z_7fM*fAr+-4?g_BN496P6N)>onD^MTv(a;^_uN9A2hX3p{bLV3{8Jx#Vx_ekW+(8h z_40kQ>#;xn`79Ma*^KiT1_ z^$u@2mouDLlkD)+rVej8mor@YS3A7r+;`62H2#s|_Mey?*Zypsd+Y4jQ`SC4y?>b#JzS`;CW2eiJFKt~TOUFth zJInpak?-7DMs*$=Dh_sy=~zAn3#t@YSjPOio5tXWPy@(+&9 zuB*dW7ayNJr7oVBy>Mc7XHbK{a;{a-MqRTpom-?Y}(xF^%DeXK&elbDQSL zoi@)k)5-Oyopsa1R8Jo~)zhuR$*B&`4O1PQ8>Tuq+f;Y%n3(F$9cxo3gHQP4*&g!XFWDNy&M7B<<@V8!`r7TI9(lWYf9fe;wH^F=KYYIR z#2JqG)NrC-A8okTx5N6($weB#IqqTn!WaD1=C!Z+&505GVXqIa^q>z;_%}!M9(Vfi zfFpWp{rA7`eFp}9b4^zoFdi2lz5YL@4O+229hgr8Y+KVcPVs8Je8nC9`N^KSY_RLu zc=vcVPM`Q(=~bg4+7KJgpK|7zLx+!^n(^+jr=2#|KX>!CE3O#6T)sK@+~*E0zIbv^ z10%l8p^txj^S?LTu)+P%{PyVke$Mv3M}79zJG%JTjW>>1u9^B69866Ne5O{8y3c2A zPkiW?ZclpHm(O{Fuc@E=AM<(hnU;(-&VBl!r}$numiO?510K5KAO7;+b@+Z@=ykq_ z6U@~D*gpKElO`_kge?y68~$wK!FyxzP9vVf9%p>9MvWGnJo_0AZ+&^3J6^XxtCre)lxAO3sC7g|Ug-m4?Dp%y&j?6Zfi zkDp^7e8LGEjRw>O?H+f(`SwHCT{pFYdz`BgwDXFKE}HsrZ|tF=8SP&8{Pd{CG56^zAfx z+o=Q3I5Gym)iJeg;5uVcdtkt4I?&i)Ph8b~eu}}^Fbg+ht&#T4Q4jb_;~M{IK)s*~ z`oP&EAMrKYlOO&S+qYkN<>Y=~JvqdqdyO{K1`Xf$zSn2W+M$l9GsdbL^pOURxZBO< zo<@AncW-**8>b$s{nZ2f)5-98i|bck ze6d)@T37Drf{hW!mM*em?`VHe3#=;+Yx8Zr!n*fjfQQ;o19;b97A|RpesDtTu!9lX zuI!b2c(w1yJG{WlIm?x%*r7?7dp4ebuq=;YX`Fl&2fe`*j@Ak1VoXzf7YF|NQ0&&g zqjl+BZJ>#?qrdtS-)!?~<(N-mr*%HjH(&S(2Ri3tYZ=cs@6;4$NVVXFFL=S|dkyU8 z*+AY7EVg)*=bq)iG4_e)pMU<;g6F3{?P;6WzwULjK6pnv)d*KMire}ceEB36adm#u z2Mc??hBG)AAHU|ahd=W)+7>_k#7|rpk6XD1_vTv5bKF;-s;kzt&%)Lm{Ap}i$GUvd zJhwK#XhUoxfA(}t!|c#6J$S~Qb?8LAt48>3jcQSAR3|(eLoai=#*Jooo_m%fJl9%4$1}6OFyEy1w>~N9yc-4>B@Nu;kT- zCq8S%nQ>w<*1dXV{j|&ndf*$(*v>Bg%}KZJt>xKR`=0vn>}Ne|#Jl@UAfIt8&qqvC z2kw2=qyeAz&VKs$ZBKvvH*Ft#+Skv|jn0}d)?g`SSI_wqKlsJJTu>Kb6=pPG96#YN zPTHn<`vA=OEiO$Q`s7c|nrz^kT^i#L+tz~{4&)}BXd&)gjj_I#{@j;O_~8>x@=u&% zsnGyCJ=2FZ(iZ#t!2{0N6%$+Ky=UuKU!3Cc&NE-E2_Ny(32fM5@9~d&+{9gMFkwsX zq$k?qdu!;2A&l)4ILH5?Q5QxmL%ZkBclH_Ix!C`GH!$$sKJBUBv-RD;h-u3w4ZpA# zqelB;po8+$ehDAk;9p*vgF7*bL%e*WZJ&FcY4x)M5Ahib16UcW!NuHNuJ3rU4*caG zE^wsj$5oAA#^FpX{IQNT;qI!z)tZ_yah=_sU9DN1V(eZFd^I0NIHG~Lf*BuR7AABj zUVW?n)qZ2djo)}LH(bNUSj}@e6?W#s+xHI6j&OG#eCdT3?tQL$;u&X54fJ_o#5X@P zgpIhwBQE@lS?-m8@P$E5EXJ$H;)SyqHD@?_wh#GigMWErEpyU9I&g)H_}NpJ;{rFh zP!rt8`Fb^;257jt%wEszv+asISMjl79apy9r*VC0fUfwJ)~&%t^~KeC;)9oQ#>maI zVtv@a0blaivwrikVIF;YuI95*J#fW4&3W$~UCdG;NZvmt%( zn;r33Tl35Z{;@BnYCT*$Rt@Ss!{Z(?pViq)@DCWXuzB>am|K2$7h_zk9Ff| z)q(fvCA;)hV_Qt@^TD(DcD3TnIXBz!kN4evva5CGu5|?m_`w6Mi^~{#qZ50S97+@3 zRWIb3xqQ{&#wRxUDOd1ht~I^$93Ongi_a7B3Sa%Ocg`?AuG0k`^rbWFvdPctm8(|m zvD4bUO(?MrmP2bwpJUd%O*FPb%AB-U`p#eVMjur|KLS#^kh z=+hc(d2XL#Uwqcq?>zH}Q%{{X*v%HZv`uHm^DkUrAAdM|!s(~ank!b^i6bB21v|M@ z{Ze17#mD@@fqQtfi5DDL2cFi1FMZIkKHTdU3ryLwzCPpltVYm88o&#!uv>nJ%lhsA zu59upO^XA*u9`9V+j!bi>+M5ozt5reB72fL=smy8gO7N$VsjN6%xmSPtG<pslI7f-|2Sp)E74Yst_qysi+H|)(Xw_WiiZuJ0vY@5R#O|e0XJ*!vw z?p-y*7(TO?4sZuo`9r^&d;D7`jhlxvzTuf)FlUP{(uO|zsj-I_(#g8|(-~>l;#04JYl0Fz(!}zt{^Q~w5P5EzqG2?x0eA3u~6}!gKadpnz z{K5$zXtP>pycqcd198h|^+bJkRTJ3O%ry?TuI!gPu&^%M;%0}2@N0j^F`FYUc<%k2 z%Nf(Y=yQO5a$Qec>OUQ=>%vA3#zpxUCwwVyx*DTj?!ehqqu2VZ0WUF#%N%Q||FDkl zb!~lcFc<%@;Wxd@AMxP7T!I69*tZr=*<&AmIN(ofyV8axKI76!bNRrQe(~mC@rnok z_8*OZ8h@*?X@Pd*3g^ZcYd*iLZ*0<A zJ`d0v-Owo;)`BPB*yRU&;$NI%?CM^NbJzMB14mfFx_oaO|JjCf7&`yK9MSNG<0 zO*7UOJ3je~H*wgH)d0=sE!q_eeqkMc@o#Oux6h>~cExQT3^eo26N~lJta~x?CoIby z>#@^W5ic6P=>o^?Tb}Wtx$pBpYtt56u5jXO{LqbkT|VPo-upR|pE(Zy=IUJyf?qS5N8 z^=V2Be9xcGV7~KHqiGcX<-EF3lhf9utMsW>u%}N3dxj zllb7Q9((o@dM8^i(|D5w$8cmgp+yR4Dt6gEhcYec$cFYqa|M}SdY(K^q9oU=FtaxDy3pT95C-LIjRV;kEf@abZnk_<#f0;Zc33 z0pIV)cRzO?{Egouxq5Q#cUJrkqecTG*XKTAFQR|8@riRWxaWtpU?)#;qscA)@j*Wg z7_WYaS;IeDbOdL8-m}dnE@7CS)NZ!nfp=J`Yo76JJ&jIWjddTMFoma_QVYB@kFVB& zttKWu(Ig+;!?e5=6WsNQtvZ|L*fK^8`fy_(p#gESCr+5e8ymP14}a~|W6r#{2AtFu z9GJ87Z+AZQ>>Yh-`Ga>Dsd*y~*w5c7@w){$$Fbj2^|NI6@va_t_VcEJ!Nd#3`3oP- zTJXXPywzFj*;mB^hp>Q^`Eeh%>4^Vw$}`@r$F|%RhkR!rU-XE-zAv|?=W2mx_!|#P z@%MSx&sKf5#eII#iFIJl28{W^*ZjnRSlTn#*YL~FmHWo@j#jdluGqyJOz;u9(C<|FUIX`d*UYgNykSOvY86eEtNh}hv0B{2fDKnVpb>s}cF&jigNeTC zpxCWto;k1-i#o+`pZDn998JENV?Mr{&%Qo2B71P7b1~cVe5O4*^qv4Bz`{f3AVV#LAmIe-}up=HgV4{{^B0*u414k{IV+!ShCZ1 zBKpq)y;I-%e6D_p4GwIkQ8?0}`MB_0y?3PnYqCZ2_W8cY zllT2jG5+1-+&RxVu-`2nHDvyK1G#U%fIA<=9Nw^}QMrP9*wHP2HP8Ct!bjI#UhlpK z!#!NZ&tLh@rm^nDPeTd~5zdw#MdU*u7? zJ$uI|cEv=)K0ny&H1%5!;8Q+V|K+#RVzPRBgk741N4flAqrZx0i6OU`-i$)v97^}|XwDTTJo2xd! zxmqDM`EM?twl|G2mRUp79^;oftf^YA?UnEzhMzf<#Xk!XN6jI}=e)d715yKv_- zzhH}h@4bVeEB~v@#;S>YrUN{~LL6-1+!)y4LoA-@$9r7HefqMlKEA01e1e@mSN_NW zWw%$2R_q zw=NCBoB#4o4D?$qWnZH;HIz-*nP)w5_`RTmpZGm8cHpJ{;T)gzAWr0Uy}JVf@3<7;)ymHLPnayVZR6*0s;T#OES&afm0iwK`zG)>p0120a;H zqb;0h)}s|;X&rC&LHwsHbr6qy6s!6q26YyuVJSC^V{3O7J?}ueG1j`c!F_na6%O`( zwck5j;?~~ZRsPF;ZTPi!=7))9J}mjeKMn8rZY}R=jwg!IU%KFyuOk>tD7XR?!qrAjDel#_J9&nHb z;-l-@Pg`lOwXA0!!M|%Y0H3rX2JwiQ*2`O1w}+@9=KB07x8Nd1bKKYD1paY^XPijAg&I_$dZ+t1mQA4ZuZOGEZ%Ui#TY|9)%a2 zYq+8T{nZe>yJstoyIQAOCuiN`P~CR+V=w;I0(+w|v?msL!`NqbF|cQC?X`FLJ!vDf*q8sQnI_&46?o8i|d{fvMH)E8Q_mN|3{ zGcgpe_?(%HqaXZ-yK%S*H*>|UUcx|*YH}ZT*_Qvl=jq>-sR4(^xsN7{UF$yX@D88O zlI+kRebN=%u=fm4&&Hd_kDguSnSLDiGe}y|$CmN#jZLFIr_exgvTeOp2cG4<#vUwj zjO+5SI?z5~3_q%SG+4gE9B=l1T**QFdXInCm1p;wz21837<>`!{Gl`_X_twE!PDHXaAAc(9gt zS{%_8?Bd3n>DFgW>+-=|*BYB@2yVrQSMj7{c8sx>vx@I2eNSZ^ZHmEr>&sXBINoT| z+_b4S;2+mob-z08D!0U7{}J~oBX{f#_>=EAhdch93-FMZ+WX^O9bmKP)}sSw$dS+U zyANE)eOKoVS~ExPmK*uRwzc`82H+e9u*H)r{M@UV=4+nuXRQ2o-goZDcf7;1oHvIZ z+*u>O@noELc#A9c*pfdm^v=Iq@4I7m_4AJpbYZM^XXE;OVqG?jWq0hw z^WWF2BlvS3P!Bz8G%p9#23*Q{R~l$9fU|pZ>6v~0u_FiJ?YyPM7aic%Sx=L%a=o)3 ze)PFEhE{g9efPbmbA+1T{vYpjW-araS=3P+&@-Rtm`~LJF{*`X1%6?MYjqEnuyRie zaK)26#pj`+1AD$RpSrKV8Uh1zt*zf!+?(&-{JtN=qdkNz8i1p5Y^^lX)NB;nm#u4wXUmY@6-$H@D-8{ay9p7x(Q2`tZcIwe`z+`~L8G)_uF@AC?bjM@8Kcg4Z>;y`TEjg~jkONH)IAueX|&HLc8sB8 zSDK;M&U^S12i?*E9AKmV;~Bo?XI$Y1o<8q&UTU9IhcvaN&lkp-)0q#)?FBd~-`(Tf zI_~A`@N4gPhSYsE-&HL)7WX*7m346hQ~Aq(IxvQ&*t9mj#BHAZ(D+|o!jS*o%T4&p zM>%SqwX6d-x#rnBSQ{(1HC*A_zdQCFk-t@iGdajdy2C4OtnKP&h~DFO#5py?ZtroJ z&e8=RoZI-Uj`1HB*5IQU*rO*`@5C$*=!R{+^2Iy+)4yC_a}$2;0j}PsBe?_vG4Rhb zEm^}=ewNc|%9Ty6z2AE60ct(|hu^aX;N3ZrUeY@I@DUgP?bqVu1Kp)HT1r3kpI>n3 z{Df1@yUvke$Tl41o;a-|MtS32gQNGp3*v*;-?8(z==%8pUvZBcI^nBz&GYw4a{4N9o@C&Nt@Kw)fWYET^3f@l`#BIleR;>GvM5 zap9`wSTl|CTb$N2Ud_jM9GCl^s}G$w)cJwMto!x>da$q1raXiN4CENBVJ{Xjdd8!% z&IitjYKLA3ei_Z8*c#eB%8}wigvagh1xMI&*>Vell=Re<# zV-p^DR7=!NoZ(1K*3y97*RQ@hN8p$C$_e(=IviOaUdG}-e$ChDfu^c8-fPZ&__zOS zxZ@Z7!xtXbfT32d!UXQlQuKgppL2aDK|^XJ9Pp-A;*sAPuGK3T;TcZ)vttf>Y{(O1 z#RhYJ$#LAmnh*HH{o@|{4fA`#YP!8(=y8t0uQ)uL2QOy^f3py`v;j{Xe(yrVakX$Fp(eh_UAKpFWJ?Hw`qFPu75moW?7j?e+Wl$0OeG z<1>c>8y|;(Jshq-voWZ?*&v2Kg@)f7@*x#Eu^U2?_ z^*0Tl^u%x5j`QmD&pSBNE`P^onE87nxK}%9hb@}Wv2`S#?4x*?W_9h>vIM75Qu)rVbG$PhJGA8U znZDsW9_IJ;_#YadpZknao8?0>;Q&^!eDc0k|r+=?{+W1$;GzEjDSFe{^iDxXi7d7*7Xu!Ef))Q6JS1eV4e9znsOnJjEkUUFEW|bl~$JJNSVkO|jYcLO930&-6IAH>>f(|M~mFt~3z$1EV>X zj_@OPKI2Bt!VsqR+H;@%BU`x3z0)4^brXAd`Me_jG$2;_g=6{Cehx?X##^hi1x?^z zZGa`-;YWJ|i|v!2^zCzPe|OBe?^)0MA%Aah-dC&T8XwPk%6Cow>=mAkw}*M(RXwnd z82QOB&+cgjr+B6nbwLdDD=zQxk7w`I3FBdf6E@^fer1a`oPq7N_-Y^UdAc)N=Qw=h zvz)GuR}bWyx@&K6o@4{hL+g`s`R-nAA2Ck8aW3a;L%Xvc;NM)@vR|uz>N_3Ky!^4> zierr1KI81~pE;>djQa5>?_q>}@r?%grpZ(BsPW>*u`$jq&L-k9 zpB**B82giaF`uTzEq-G)W2~*uc^+T5*YN1-4AprMm-b_v+bcZNfj-ar)dc4QHKBKE z2EH|QKHgn5yyHCnM+|D&o@Ur{K9L7%pW0@>h7)dZCKh?$SwP&df>HI)y*!o+FoGex z*|6`^m^I{*eCRu3dSFYVEBg!Xac2*}fA#00m;dtA0*>wXa=mk(vw=ButKWO~>J)x( zLSyn;?dKbR=w5u~u4i21)f{`T7>uP6`h=5p`RtuBVz2IrANTx#C+(~Kc*FZCpZK}B zGdx|;L*MJ+T8{h9(B~}u#?b*AX@MSaC+F3Dc|ZJ_JjZ()=sE7~3j?b;&mLqQ`M_6K z{#IvP#VB5%z3jcT4<~sqRy7XBv<^G@1XEXiGy*?k<$~OA&rpMng{w83?Qp4vtN(J^ zn)3do7yiP0_P+C;_vRSm^8#(U*7(jpdbSS#Xq67ds@~Ity}|xNFZ97LzT=j!=6P=q zz`I&$55T*a)H2#Phdtc;JDD)`{f}J7seRjc^Y{j9{Py$X&i(p*K6mx~8I72af4ujZ zQBA{K!3g!GvbKcQ1ChiU;S;&~(1WZ4G^{az%}Rt9){{z&Cv9%sm|CyM}A| zt{=8|mghLLCR@06b{(gACH#|MdHSxIO1(tHndiD-`LgxqjLgz*`0I%{J&-?iw z>+I#eeM3#5ZSmt!oEl#E$#*`B!CS#?fM#8} z0Rvdz4gdJYz1)U1zPyvybZ3k!pY+Q$I9ZFY>bH2{$*yO77|XVM{?e^D@vh5k~h}!U4XsE-qQJ@pELQqs3zFoX(2tR z4WoX}vx3^s25ohgaxZsWVJ64adw%f=_s-(J7jjP<@E5lnbj7*m-hSBm2}b<)c}lz=AFp&nFJi$ZEa^g=G)TL~8b^cp zq7QcZJYqe%p&z`lM<47PNAF@2Gh5<-jbY09X=!u;dUGOvWOzSg_Sm|Ko@5I)4 z>zS*bScku1jCJ`Lu}%z9$Fjj^sM&dU)|!nIr196?1;;~J~>YV?(yPEyYLW$eUp#;r#Cr* zdph)4A1>C$W4Q}syxVK!l|4Y*a?kqg8KY0Ws4H+29}T4m_r~zcT+g&-J!{d6dFGpg zf1J_)Y~(m!ttB3HhX1r;oZQvmrq=oVW~@C_UuO<$@q>n~Z4Ulj=?E9qC7j|!gO~XD z$QSGKQ=K$VW7lU=HGb6q?&IHQ2RyM!Z}N_RY_bItw!BlX@Q-&_}nQ^ef9Ua47gPYv5|ET%C!WDi`dB z-pdoX@Bs&MKz)ecY6IJB;M&#qan__udy8i^gblcff$hG_@v{ZzKDqB6|9IkOwMU+_ zDQ2Aa`xbP75B=7LwVV^b{DB>R@j+A0mYvJhSz1t+<-Yjgjz8Rp>vgaFt?gUh{D*UI zaewiver^8Dsk%!e*0ctk_=6AJ=@Wx{V{k#AxZ_(5XWq#_e&CH?eC7wu!%aT5Z{R`G zpH}(8Hhqc1nx1j1sr?$A`EJPftG>5^6+8T-2WNMm;hfd*AP!uoH=MH5Sy+EO>r*S7 z8waNoL(iILW8nmAwtZ)y-uvEI^Ya6r|9!tJ270AC{+sLPE%@dS4ZyQ2{mDal?;Z~@ zkfU``MszQb(J7oNRi9~bP4Meg&3pLmgr_=scU zjls2k_xy9OkB=Jv)g^nkXS~3cZ8m9uruA9Jd>S*3U$B)2Y?q71${9GqP5$}$Dt_TC z5BLdhd2fHlfzR*s;GO(~zxg<}7us*tL;DA;Xu^A(IfMDxEWTWQhOkF_=7)U>*7C8> zhxP-xuP*GqTfWh`aN3q{=FyS7~I9f;DAG(~i-#M5c@N>?wml^M>k8W_pA8V`Eat&wv^bRlh)`vg2U0(B%PSce6 zY^i(3q!BThhi|@?1IFP&)2E5UI2e?cV&Oaf;o&n9PMihFuYS3YKV#*ohAaD(norBt`Ub;S=}@ohdI)TMMK24i5Lk4@v^mOb^xv-s_maMvdnsxR>K4oBYE zYkXHH$7w(w!ZXZZD37dZJk6^))}bMszW#N;y?xEAe`B7F)OA?NO|`*VI5tM@G~U=t z-}DE2x}h2VskzQ&&K)$sAGzP>B^+9tZ*b#JnvQ?i>Q{TRi4)wgk0`SvEuL!zsA}Jtcid1eOK#m+|Yk##zUeZ`B&>S=TuJ;y8W6kFPj2SN!5IALsm{SB;L?F^(Oa(!cT5L0pTs^N%ZC z=);9vmGf}o1MX=;4)kw7oB{2L^vNC@^yMCpa5YD>E`IHUIBYNPS)S;F9ev;*=i~dn zd2Ut<Lh>7r$u@%5Be-Z6MPqo zy-mFM!7a@Bi4%EiUH8_5g*E%kL~pn^jS&*(E_wa$%+CVik$37d9h95&DPQp?2EM!ULk;5x zjiyt0z!bjL9iJg)zQ`}U!V$)r`YP{fN>0g7I>eV4#lyxphm7B$xzqOQcl_1V0N-ie zTJ`~F0r`bP+Mv7ihhuo)NUem2d|-ob>WQ2%hpy=n_s)K}&rh82kGAA5F2rnIn8RNy zH{jwOER2I0KJY>-Vt4LW_kG8z^}Am719rqHKWUy0U=MTi=>zZb%d=)p>$z5s;Q+g< z-u@S}?z^W28t_>f4lrVm2COUh=zu=qp#I@VeEiVhiDQ_0hH==l_p+D%;;cFExau$G zTzRd&@Pmtc4WI0@VXxxz``-Hx+iTzRchhIQSr@+M(EwiIB%aR0u=5>( z?~M57*<7`d?lt}yLvQL&x~Bv8)g*q~Gt?Kki+`N*!TS8gMfpLycu>3b<6hIJj`(cn zdpG?1oh`r1=ks^J|LNS14>8FBzQ=d90p{${7yhjy4tZQ&$q_NbQ4PKPvOk`BcfIm$ ze>R`tL2KfpZ@g3o;h;~zIs*%J)3VXn=oXb z9^hsTyno>R|FpgSBmX}6w+C2<#@ZKgYc0BFODy_aX^3rp!BP!0mJL@8cFqhmN$apv z_w2>`)GpY-KyAWHXEGe%MSQrxyRmGFLriefFLpN67iT?OYq;J#3a-|VeoqEoTLrW(+_da4iq>V&blR;Ov-=QDMHUcIxH+?4ll zgC%_VB1h?g);z1J-fQB=hj}=WyKr$Y9vbN0STWPQe8>B!jpMxV&vPGOSNyo76?ToK zGwb3x-reH||1dC4%Rle&W4zQ7 zo5O~mdEwn>zH%SugO{PXJI%d7EpRThU$Wc24QF{Q9yrojzB{w}S(D$LpaD7-8{Eyq z_j|AX`|+LZUAFIf=U;EHdH3H=jMWA;6IS*Q8np-5qiDeXul|ceT(kmH*yEoT)Dru2 zH3c7G9Y*rR8ZdF+9?gz^brg4EapCG z_b}{?B4)Tb3&~fXh3u*Jdwi=;I2Vt4*uF(~V&IRy_5%BXvyZ(LKfY7NzlL)<*!`S! zrw3;OV|*TTMpS?CkDERViA8K;;WvKdsob}Qy`%3f_#wyJN97XzzzB}s!B~Az8(j5^ z1$VH30bJ~VaIoK~X<}Bx`6Ksf!CYF!KfJ=FoOH#zn95bWm`9@@|JeVGpJCs1>akoG zyG9?@q6IB(UHOr&tWAT)vtf_Z(ui6kHrU}_y~DR0SKnRXjyLzTQohqpXHHskPrqWK zX_~jMz@2?H6feG0llz_d@UE%(>OgyeT2QkO$Yr^Pd-%c`UuvY7#LP#0s{_t0KD*Gi zd{yUgI_%FpmG3YNANeGA>B9bCT=mwvKF_L)VMJ%N?3_RcVrLJBavR35(C~|Ae9#+R z=vQ0#22=cq#~!af(IBqbl1pM#pZH0uIORJHThslj1?!myFMAxk+#5$D)|a1rz%QP0 z?~LzrlX&I5x-UNU^W2f=d=)Fa_ zxu6;aKiJ^No>*+KvA(kjz42S?j4IY@Gz{It0`Blrui@HxOZ~M5+{JE>q-DA6s@B*a z;lwr@@Ris26+g|{6Xk~5?;dvYD4gvb)|Tu4d&7Ut+^14yDk4?nF{6Fy!U9;Conp%Htb8`kxaoxOI*bzq1Da;j11vuZfd?Fp{Gh zj^H7G)J^YTMNhbw|8xdBvC=rMa4iSqgmWcaV8V{|@#89o=*D=pa`lHM`H2TS7K{4B zCz|9BJ<%lo@h9g!^Re2;KjXTJOHR6qhc9VK{egqCIiG0KXLT5)Pd zdo=+6@DR7$r&lrf9zdMkZ@cGUv=0FCk+-}*Fh@|_L7b=HJmF;x@fJ+@{fdNod8djlP?tFH3}FSxAP!~8DS?z@FsO^n5x@5aFgF5-ZZD_d~JKdg;$PggJ( zE9~e_gC8B>8Ta-%+LLcEfS+;fSlf74bKLU@_wqd+Y12Ny4_vdw7cuHj3wSQyjWf?! z^Yn{_7RAMfxO2sKnso1chF>w@-C33{)h&Le0lGC`gM+xs1>DOGIffVb%lUHF6{oly z{*Irc@BW@ooO|C`T&IEFs|n`Qj{4yY=-0*-q zyl4Pc>KK0G9PhBC6*%Ipc&#OV*jbZ3SF!8&9{=pI!It&B!?k``#V_0D!xi4v@t!V? zx*3qm@cl_ux1U>jSKWdWS?W0jzwg1w&vs>R~J1f8d-*GHP&9is%NG{-AJ<(v3 z2ILBi;e%^UjgU{8vx(pFb1rh0_4`b;>+`BJi+!Vg*;+IxuiNA0KMi=U9=NAD4fp)x zGdpyp@d>B=^%M-R zxyS3sule3M^`M$y4vnM(SI_L?)LQY+ww5Mbt&s-kLZb`cCHh{7W?}AkrqmG4&zgK+ z>%U&it?UTF?r_{S|>sx8LxAGgMfiFP|HyO$e$k9%WilzwT~9$&7N z`*7EA5O;Xf%Hw#d#=Cltdo{tmxzz;E>A~2zZY`Rig;fW=bM;QEM(|a=(&7Lo>80QG z@m)0>U`PYBkRGbnxb}Uv-@mfg_^j*a4Zahy@6eMmBQ~EW_x3*igk9_Mp~g2qAMtZ% zwtSAIGdjc{dvZNJI0L8^aoahCpESg8oa0}kM`LM#8*8xNnAL)h)-7oT!R4yA$Stzexi9vt! z#pCzU;qTnwZ0QU^|DM$j@BB_Ez2MS$LoIX;(VRj3>`JYXSK<^yapf0ZYw>S=`2}lQ zU`KuOnOcoeYw)5TIisWp+|mf%G`a7J>$PqS4rYC#8CvKJU@V>JtJe7(?ToeNe3*wN z|5ttEFuuj@UT)*J=knVgkRFUPmo2v80o(MYZ{-%2o?Xp>Z*?WS^|R~QJI`xdbrCn> zOV@t(V1KY@%Sq3;_MUHi%-3`jk2s_wzvr2Lt--#lzI+jf`C;qXeHd6PEa>du_?ejR zpM57y6L|7j2bY~`jKK^Lg;I};HkGQPkUGKwBf42FX@5bTXnL%?8j~e@Q=KSFI%>CODdxr0GoG0nR zdDrIv`sh0`{pxyWVEdR_<=?6}C(}CK*WBX^f5XGQxYovZ@583C`|(@n;*2(GbQEW; z7dGJrV;Jby*P8L~%0}1h7;7%v%=f&`H)m}(6r^Ubf z^&Oq0f#%}6F|NkAHn(Rs`D0%GWQ$*M@0vcsS^VWi9PP&sChWwOIQ7BE*zjAiWGl?^ zpDy&R^W29SyZjbcapbRe-8a5<`M<864)~BC<#8G)#%zU$by|x}{hrf>=VIr(`^IOB zpZpic{-$56R(K!J`m)jc>@>$Up7CL=a9MrHr{48!jJV(uC$4zW=bgA*;izAOSH6V- zoBC_bacy3?qaKVi>RhvR;($*z{uaCV_V=&v8k=6$Sk2=fU(=hbrq8=_Mo!_Nyy`jo z)-=|&`~7zC5?AaPXN~5tRb$J$p7WE>`PN*qvFD0+b5{J_!x84S@)-x=k7M`oQckLI z?*G3Ws*bO7@wcDDFm6rn-Mhwf{^hT0vAE}hXEBCz&*2Z_Y9L(VENqNxtiGFi4tr}D z1KaS8FW2}8i2$s^55gjPEAq-#l@z;V+)! zx94~s-$jjcXH$V0sA>)th6=ES3WV;kpQYi;AI6V~i~+{dYSwBlVg;9hL43mfrf zw`b!t@7Rf380o8jU1#kNdvlHPF27u@lV8?0UcWxiah9f6JLw_KMlPgf0x^bjZ6%@+ImvS+*&Z~4b|92o08`|jCZ>xX;Id$t?vzV*E`#(ejU zwO;WS=YH*FUw;~9Cwr~UCL8>AUDxk^^(UX!cjo33ziRq%8gHIkr?u9#i&0-#8tXOVj67$XDV{uu>v+?*e-g7v)XLH3MuJrfb zRg3T9GbZfZYu40n1>^O;{-Yprn@SAB1*)N^pXdG_(*eSlaS-Iku7}#nod;Ijy92(Tz>&Kh@T+GJkGshUV!>e`K zH9o$}yRfwWiX*%HaW!W>_u<<-HoSLVpE>-|_+x$7`e4>tUHKlKuEx3+lUVTLIiIZA z+U||_uJw)AJhx8o8^a!4*ypFK=la6jHSWVdo5rq~!@+r;4mzKO4IlXg4;-26*_B;u zv`#i%y=xvH%@2#_Wrse^VY79tZSwo!0$yf8L$?nw#v6;J$wT5xV z;HJioIjbMWu+5IO*eMpVt$ETr`rxN^X~101;tiiL@?K-xJh;TObu?q)KK@k6q)$!`Id})_c$V4Tt<5{|;dK z<^A~m$DzN&rq6uR%=fO(g?$!`%lNe}fB2cd)&ICOW_>Ru>@tu!s_ntO9;}TD7gd>hTvoC+jCp?Ic4fkmuH}NVL@!(lgGt7?z z@A1>KcltE<##>vwFxIR?NBD+?^;^3fw^sM;jNgqrFn+IZ{(q&|W*4XMr(t;DzVDy< z-Uk;r_p>-Zuhaaz&aJPyB>Qb8u-qzg9hq*O>Cgd>n?Qdwno0*Y$aZ-}qgd`Tu8%H=KKKy*QS0t-0P+fAq7*pK3w2jEny?Ok?I4ldpK{dp$V;^K#lf4*g6P zCwTAYw|>V`^Rrq%kH;gPVJyGWOtk}#bnD8#F~*z6rr(kG`>-_NnN8#D7v``_2k_PK zi4#|xmVf2H{_>)l%a$0cEw22K^TvczdFNSU6aMaD2gC6@E;Enhl;#;Jy#dd6|K@*$hFHGbb~`jQXcY36j#9?j7^9$+hH;g2I2!a`2KiEl8c z4IFFo)D=&f-wUMy-07zedV#C4@*Br$f}9j5?r0C*aRv(-*s5eMaC`N|hQ)Z&;v zv}#N1xbl%U(n!8o!}_l5Sj$+=y*~4;2|K*w1>Sh41^u+)iVIi#8wY!Qssr*9=YEHy z|8D^u^f&Ekpx@z8)71@oI$Lx_@AA^UwQ+|lIPed~aicyOSN^l1d8QMs8e#0pKVIp} zS~Q@+4z}=s4IZtj!O1fmH92Lkj9} z#c5h#f8{uS(}#G{xcgNz`e9?O-8#FU;lfc}pb7Wo9`59`T<&)b5-irITHn5V(dxHV338^>l?m~V`CuwpknT)m4+ z_#2Zi^09q9K8@F4X>4=ji8jom18eis*!W(3q*b|~$q{;{S@)WF*}y%&<2-D{&mQ~P z<(oNS6K-r7qaR;>539Ou&zJ9b?=0>aPsZZg{r+q9-`aAf$1i=fDG%VFKBQS= z(uw@2MwTy~7hJuEpE2|TXL$}cSm8-?j}v^xzh{`i7LJW;tgCmLd7k4x9l3UI49?hX zo;f%Xj~d%q3qRteTbjvdbLBld^|{wa7aAY(o6l+7z4_LI1#C2$)2i|Cm!ldkX+e#^ zFOA?8-;JRUV~o{D18KokqZ^!CC;fSjOR>@e`)sKTH0PN=_9SyX^F<$Bxtix{efRpy z{qjhh;>JHMxQ8peU{?;o3Qqd%MR4*iO&A;hE9N+0ul!s&>E2bXiZ^4^Ekzh@k&HJx8*hITaX$}`XA;63fMe$Vn#OPBFjKhE6anxBnxuTL!2 zD7MyWEKSr}hmRWnocm!$gYpz^aK{zQo!R2eJ?!PGe=FR1zdatu=Hdp2xT@*HUtF@` znFh?kBc0&VvzC60S@p(d_W0vj9jFGlsx#uk1)Sim!3Ade@eG6Z8lN*^P=B92?K4{Y zQhStVIxxSv-oes-=E^?K@nUT}*`LxLZq~iQn0!?O`V1nE2X+Sr4)c2-HH$WkuNJs3 z@6Bb$JL|*1+Wf&WY>LZO%yiV*!x)_4G~Vzn=Ux39(`tcd_qeET;NP=;T(P4jxKB57 zT%UKw;~dxB(}Vg1%QQhBxV1lcub&OR(t-EpR15G^zL$IQwX=dez@vE0Qy0C1NqOPk zd-ml3zdaiVQ}*BnTYYj$Onl)dZNS$0#?hXuKK#gO8nEZkgFN+&bKfbs`fdXM?s2Ob zQ*P5j+_S@Od2TJOnBXZ#Jo8thVg8GSUm9HG6+X&0^?Ud<-d!{QjTcPdfpFO;|HF2;je~=bP(p&(mER$7e}xcuh?l`zqrMUH@e{u zP4SOyee8+bzi0Dz8`LpA@+VvJ-7^iDV|_mBhkv>68t-_-oAV~Fafes=t-pKkH1$AV zTpQ=vJbl$T{8h)qr!K+Go-clV)dc<+4;xyAg_ztMuO^BK7BH5-{(ZT>t%P4#(NlQ` zH~n;gYtOV`E^fW6A4YJLE9}GBIQ{zAFt_*RD4#Sqo5zN$wb*X|Qm6FsU&C?nrF~a@ zG;&6M#pTz3&t>GkFIL)UH59-r3- zzxKCh^gR>qHCph_JbQt9V=avj?fH0)b2=z~Sgt(bB7MUL_TGzG9rSNA+xzj_czV!} z16-P?;jrAN0lYZ-8PBd}o__1%RP8aRJ%J5#$}^nlGnNKvp#2Ize3Yy1N9~+{qemZI z(L;G*ZGSuA(D>V<{he0-mf5p^Gi@##){_(FsuR{!U*JQJ?%^w+>^u7#O~4*E&IGuj z4fl9c`)Na;F|NjRe&`v`G@;RreL<^!qyskD)7Um1-+bVwSi~SM@!&;%;};jWh82E2 z!>)JuEeGNo_U0QW_izgVk3J(S^F;ou;2}u41qk(1t#K z@J~E^_uT)#QBM1}_%wz{*_J@a>=-+zN0p4BptC6EV&GGoK4lNlEd)&|gUNk;hG-h`zE;eH#Yp;(e`_PLq#3n zKYz^OoB8FC_0=WMuEj(5{H7N*f(GOs4yp(0#r~S%9d7BMJ)nF}C$9Kpo4(kzhV_iC zJ~&@=cAz(7(`dN_PdM^7&5A{%3waW*_;Zg-`GjvdGBh~(ycyP!3TTo)$Gw?HJ~~mR&&{qo7D{Zplg2N zePB2L#)^A?*TUb@aTS9x^kS`p{<^NbmE-Q-|BZ|TTIrW6By%3U9d0XjV5sE zyx3XI828@Cz5J#XSGu4N=MS7|xW{e#2aU*k8lVR?ga$P>+2W5F$|Zil2yXgaaV0kK z;6wc4)Te&>8`u68qCE191NGD2s*y+PtG`3#Z$QA1cGOlF5C6vBGJEk{$69#96Yb&1 z9>Sk|!L`46!zW`84j$yXT4Y^UeRQFpP3HtPy86B9pYH5y{FVO$v-!7n243^;DmfGQ z8zf?|FBmgw?(8#%)@j7w}7mi~qoTk--nd{-axrJ6w>{NTHMkaMp1k+W(7 zy;Q^d9DrY1h;#McGw$gF&z?0JuwT%R@%UHAA+7gVwZH z;2-ba8_S*;>6?9h;?-xqu{0&eam!DCf7;&_^mlb}=-IuiziHxcnbGsWcmBQ7vFA?R zz(M?S1V(gWo_PJ;B>SSgQ7f#8Urp?;xW~IaD&N%rdR6CXMU9ZZ_{Ax{QM#9?|&#;tF^eb=eukFq1zj)v;C%wz2c;V@9!5tibzfAqd zKTQ0MCx73`-v{zHzhFCjAAe))oXI~8SQ~$|s7A;g_`r$3{4$0H!jYe_qg~DCg7i!u zc)$T$Y|sFV*`#TC$`86$^Zgw>xlbFKznSUp*!a79BZubSv!RiZQ}b`|iOn1}(Oz+A ze2%bY_b{|R+~gAMU@~g-#Fmd@v?t@cnjRmn>VUmm9y=#=eo)^vc}@dzoi=dqUcbB- zuYDc1coVN!#Z2FPr#ZO?AK0k*^b8+<8}Dy`+1KF%Px;l^N{*>>>b<&Pj5=x_9l$F* z*%?b-OVhFU{& zxHJa7I2v_iV&L!p4V_Hx#4KKWF3dGKT0O%LPMr(l4<_p9@Mq#Fc6lg%V{rusm>wFr z#K-m=I>j&D@ejY&R?p;|xz?m}^@QfNYQHnRHDIhx@Ruz$NImh6#{Eq?xi0tH3vlJx z)n0&qSMTXsO@I*})dPKU0RQk4lY8+y1Ia<-oTFes>-6Sc-q5qUK%=7#mpXZda)pa)G2paD8z3qSTi_^JQ65<8r%qp1Vxk$Ops_BR?4ulhY|)co7h{)U^n zC|2*)G$@8kJGhH6Lxe#A9PPI_CUVj8t=HVzvI%q&k=G~qXT2)I9lhC^yogc#>Tg{8JD2{Z;oxHaZPdZT{QGv+Glzd-P@iDVSGd53ZS|F} z&R6a=ImbWz_&gwQ`G(i(y{laBN(1=Eo3=Xx?aqTZ6(fvc0$VuB1$Oao4F28Q3py{* zDgXE{57a>WA-&_@zBu-rnZIh6{hp4kp{9!qH?H!4u3?LN`18wJVw9K0$rC)ODeS46 z{Dvn^XoL;ewzpbCoo9#E*)|RjeBrmxX3jf!phxS$7tWm@)fDTg|IYbr_f%h9g|N+7Eh` z@9yp2IK?4t=xhH|@9=4@G^P)BIG_RhCOpj1=NYD+;Z;q*hy6~ibDrs})cb`sL)C1!@>+dWGi|SmTE5*|1Ci-?BQuoyj zxcMy32K}Tf+M+>vv~RFMPc+M481o%(Fp|4{2C!G!Kh$vXI^WQ{Cg1T*Z`QCbE!g9$ zjcnUf{q4{`JHn5C)eueHqkGMKc_1dS*%w^-jCVDi@3fD1{hGR~M&r*p(BC(f*J_Bo zw1zy8xAr}M6C3xg!|z!e_^39TODAfAJwv|0iQj4h9O!_y>5KN#Mp%kpY@PLRzBX9l z8}Inn`X0bOqh`WZyq?wF_TO><|KgTI!$&zbwZkU+)fAfGhi5gGR_MXAHN+#oVM<$a zy16t(Gip-4`n=-VId#;_!Q1ZlXX#bUv}&v?+~bk2aKQ&I@kZZrSbplG3-LN<@JGxv zKpXfIv$5e~ocT1-+0r`3tTx1HjD3m*@TsP!c~_cmzwdLQ+TU4Ut@OFicWBNw?&*uZ z)r|G?r<^gK=3R|fZ=Idh6jxg9yS3)KidlT(Q3t!a7k~K=7fr6fW-(+3y1 z9RK)GNA$@@+;^UU5q$M&@*2-{0e@G|nmmzL&JT2gSN7BuwTcE-9a!JG_HbkIPG_2$ zP800n*tN5xd+T~nXXa^XqIdkp8w@%Z(W!AX;0h0UQ_fUBXyD+;edF}OubQC_(1Cg0 zm3Qhpjx~I$1I{t7eU|Br>)fml=d?gK?wy03De*n&xA))$m+~5y__x>M1Rfe*V9s_}x!14G$Z7V} z0c*9MXZf$@@QDq!J-cU{Ry&X43(v+HgI~N^hjy*e{>V1}`D;9XHFk}6PZ!mEI-qBE z`5V8!rJnKpW^kbhR~d|4vvQ(d!Iv`VV#xq(*$1C1@(Yt+}lso4EaqL z#v7~OS(Og(Z!C?`it%!xS2}=;ck;mgfMeV`Bj8;Q z%k}Dje0Hyn+gH?!YC{@P6U>qGG(<0+>48q{2i8)Pd{)-zud98_`N{rxaMU!o%fVs8 zTJu`{$9MS2ANe32`QMqK+{3f{S^0;PK6!v6HsBvGII@<08e_XWW1nw0ryrd2TV1mj z+jNE}_jqhyk?;KGC#}*hKWSD>bUDC7@q`QW+07pN@Wj7+9KaawVsK@Tk8IJIwQ%VyVLfBKi(Bi6Ltbm_8Q(f| zW(;m|Enf9hZGsKm@Wpd`E!)QNlPz}34|Z`XPum~lxLU4;SO4*gf1LTe?7M>Mg!+$j z+VR;z9iXB1Be;bf-`rO_`6*slsQ;Q=gn8#Z_tpC9c6%ay(1HdN@!-fBcw!r7)^)`N zZOMIhtt-cIqyEqao38Yz9`Ofeatfv}WJ?UzvL^1W2UmJ!%f4d1nAmr(UkujJhkyRq zW1I=-4zIYfrnP9Gdae)u)dBZmiRbv|4`0Newz6l8dsmow&yHud4vu!dyJan3%QaCa|9af5ID__hZ*i@2J@M|h?I_=P7eh*6Hw0AJ#t zjkVE)b*)2tnrAft|M;?2I<^L`U8@E0OcTc9&Rpx8&rg2f*1f%ozC6>DG2-yfI_|aX z>oW#FuvGu$I4$6vHsER>@p)AJcjouAOW#TP3~2v{3I12^-P4%8n0+ze6YsErTb#&2 z^%9=O;M%=d_=-<`a+yAiVITKul{%%a@sZDP!mTxE%R269EROi#{8{tN5A_EJxaKpg z(}KRv0Iq5~yR?&zvhUeD@#5Zj!#%&~8=uw^V|sGM3IE0DDt;V^H!RF`&j)k(Yo6NY z9lqTg<6bkCRD@-=oIu{Y@SB z@r8f;102{@v+zv^azgWLJ)BsF57o2mxLS`rwMVRC6s!0(8pabH^A+aKHEM)9*uK#@ z507-=88)7+-I*ai`3^Hz{25C(#(Qo&U1>CJ?X;xk$Scq67*oA)O*_W1?aC%xG?owktwKklJ zmEZ2mc~`u{!9CybsjjRVOLJ-t{*A%EIB_f%=TmXuls#OiJ1|WL=D3#|u<8uqnXfyY z@Ah!M;G(?1E8NPV?p@Ue*wTq-IoCRAjepiRPK{tYY^;HQ9MLeI<6bOq(_rLkK3no! zt&ejt(L3(dMtRL&7?@*j^+>Gzqzw)KxUld0eCxAnpI5zapNapKbN6Fk+p7b{;K@Ae zSXWH)+;;)i(QriH_G0ffe&Qwm(~~Q^`qhDTf5W+22V*gdt2|8`v;rU6(yXDcItfp9 z_{#^}RP#N<9vAw>BR}zmPvhuC;{)HS!D-JJ8td$Z6Zdk9eLT?${m40WA6_(UUA)nk ztC-{f-_=5~i$$}pycY{w;<1jaXFj|4oO4v|Sn(JD;bYzS;>`}CZ3wanv^ulL3x8`KLyLPVzR0nY7 zti~61?elUT&om7~_vrxl#__E^fQ^-Z`r`xs=-xQ^iC+^t4#k5zTF~ehPJJ&y2ec`E z_?TzDvHYc1e6aC8-r-Qc-u_>gwjgNrTD`iftG@56>b3X1cVE2Q1GaFWE92S6 zD-4a>BfY_#ZELO5*f3|`+tXe!uja@8^`ujZ`A$HLA=AVy>MN<*&4t- z?&N@&HF+H8?3PFBCNANE7whPl4xEv=HP;$>Ykz#u18o@Nzh*xiwE!&I#_`ntHXn-#5>zR0c&XI4{$rpIB!$v;*uK8x1jWnPJl)LPS&wjA62b=Uu%Np&of%Ddu&$#a$LJT$7m~S6@!w<$` z3!C!O7@X{Djy>sw?r`pT`RYFY^=ZJFfoFW0ua8f*i;=$DN4#PayZ!i-U$DoUb+~m6 zSGix_!B&j0VMD{e7_y}|U(LfiT;!j1`rXt`&6vEzGd^%jbFTT1SG>8d&hXzpIL470 zV-HQOXG@LHtkug;yubtIVy$+G-;VVdtBbHx543WhKHSSEb)fnnfB3{6F7OPC>auZu!>t-n zeMnE@#sNR+!?oCG1J-d3_GF8% z_{P2FTAq4FAAF#3dzPF0EPnIL{dAC?bO1WqP^i`9zXal zfA9}iJiJN`IJOr zjXPN2Ki=^rhUyZ%@CCLs;r-m0Ih}bp5U<8pSf(fI)Oj_8P3zTo{-se|^T`-o+^hfo z{MmQ<{*2LFdb9_AU}}Gy$QS;=7$2H3xuzEz&G3m1_!s|rwcc|!@G2hq7H2t$W4vhg zF&B5{i?O_dAHULxXXfJ=Z`Q*e2EEJCwKH38!x~2LVuR1>okmaMwq7n*_d5e{jB9x> zXEa#iJ>0FS_Oiu3yK+R#_T;bF;3z)5nkGhe)M0*_;~u8`!woGt1K7k3t&3Ycn*I62 zH=Oeg@5Vgizxt1R4e!S730r>ho0j-VlQ`z1d-=m>&9&$9nqT7Mr`q0kL%lolH;tR) z8u!+-D|Y^~Yd`nmrvrQI`Q;jh<{4uHR=CEwx{p7$a0ml2i_tve@y`~&_^!d34q;&) zd*R29e9sR+9^ppgCr;!Kzxj+C_j&1zG@l}JJ*YcFs#Yz8Sge#2g%ir=p z{$UJLb+UY?9~jlc*E6l!U~l|eOE)wGm(D~rlK*1nhn|M@Vy?HIt?a?uS{lHK_~9oG zbHr|36Fa^&F{S_Tdg|nBWL6dV8f2>-c1j_|y>o z!IRILbC4~Z>%~J0>X$J%(H{Hwga`Y*9~o!c8a+(5KeW$hT;NU2;-zi;YvL9YjA(^@ znxt3tNY8I$;-eomlyKm2pgrg{7-myFRd z&eAm>=|FzvujgVA3r%UB!<&BCfs1{_VV|_XzIQ$vV?)evG{>HCj}!RoHM~@>@h(@& z5!dYD95;A!O`Ckdp?tx;_oLpG^!`4C9Ma-E4X6pQWQIJ6KPZY;xvcPYK!Nv(%|R0*zg%wG~ynguKCDkG10dB^kPrf?8*~+^A!j1O`Ckx z+S_w{6boPFGN1J9h}AgXHG9w%{*7zw+rQdOKgQ)d8=8HL(Yt-c%op+PdN01tH-CbW@07l(!?_T-rPw0AeP+7#ZD9E`L0Zip5cdWjsJL%Cvb%wF5zUpYxo+sPLF3e@s}3ZkqgGnXA@ucHs3vL z&7(zJ(L?<6y*26By|rR$Og!vb%N`!YSv>SIb-#-pdPq}K{W+lY0Dn;3rBpjRh=mR#i5>T{+$8%*XY4s z$?D4la;TRA2mJe`)v32I*2>!(^mfi3U3;3}OYn)k!Lq1hEjKK=t zz2ma&yt2j~*0;{Jdcr4Tnmsxj^GnQpu-+W^aK#t@iql#cRA0&wy0xCK_%C1M3ukf^ zXXf(D9&oS@R=umpBb=lKvGD=F=9k;9#nF49eLXAx*{50Dc?Z7Ef1ibD!MJ(27GHe8 zTEnaLK0m{U|9BNETsjYM;$Cd7jhkZ)Upu2<;$A#_wjZ0>u_sJ$W~}(kVGs6fij^*0 z8+Q$l%~ib9hS>ORj%JUr#W}x?g*C2VX$+Qf$~FG+?tG+oYwd3j_V}@RXQ$fCXFhdS zgn@N(&>1S{)%`R;8}@}2EYd;ObjmljtEu+q2Q7K$*PJP70q-@>XzzA7gMoE&OFVqV zhqdzGIDGWw5^T)n=jPBlT)>cD{IA)=+_=)SiA&dF#5bLY%{9)fgOyl~8?!&3U~G&p z)hGU!Yhi6ZJlV2NqkVh8l)sw!=JAVN_1qZ$)F64Gez@m1zt}OK)~osWm;X57uesG2 zc<|La_MC0b+CHzT0rtw*@Z*Ojmg4s;O&Ft78j`!}zjFZBuIWJDJ7aL`GmZCK*vS*z zz)mk7&wSS-MtIV1xQYi3d=yLXS)Sub%Y26n@jU`A@nJ0vn-3Rr+}n5C<{Mwb*gSUlg8%YMFFtn5754azKX|dhKQ_c@E+4B0 z{NP_crZM+4p$_|8iVxh&UwHDz+I(T#9@fKkKbJE&RG;vRZ_WEZ4dC9mW{y}i@1SZB zPOOKk_%*y+2P^();&y*|c6pzL0UNMOpD=?{4ff$HX8K{vb20gMXE3wAcW2!Dp1`{6 zdTK3v&4s;tcFH$n_JkR%+{;J#%ogtLRXpO&FMgyo^Vz@^yqYg&@#@9ENA@=NX~Ev` zg&QB)9WUW>(iK6sb4 zKThMtGtHUD56}2)j7HP~@zW>VthZJ!@T>UJ3BO@%U0A?Pd^n6p>u^4QZgYO)4reg+ zPEAvqJ>hL1JjJ=W=CSFybsApGtv2(8&+<18;VmxD@UMp}zsynVU?o0!g1dOEfe*io z*~{}Z7fRXY=jB|9%INEo=Q2in*JA&&*|?e`1hxd``#4%;BSXc%v8ld&Xb-hDUMp zgKaU{lNQC{TJwx88iYsZg>ldA;d7#O#^B7>t})$HbKNzz^vwY+?{Q2zn3jB5jUEtjP{ru)pc(ct9_nwQ}UTndR zU9C9Gg*_~3u`>tvc(X75;lLi>T*Dv^_3W_ER^xnun;H!d4F>kdspt0NAKS*vv9~?* zwb=M5ZoLL)?+$8ypYgm07narm>3Tj#mY5i~$U_Ug=x`*6c8 zo$}M%^jd9&oj9DKuFW^sdVGtWKYYLuKmC>wJou!?v*#L2t&!`v6u))i#0l)o5lg-K z)jb%8yR|svOJn(CZ}@fY;NP{L4STY0t-ihRXD`0!H8$zpcL&aQI-m!*!h+AZXdUgq z8HVuUqkZGMbvU#hzU8dXY<@R-W@GL*|{DP@Cd)E>ZU9%xxyxY(Ie8aEY*L$YnzO#W|;+Jmi z5BIQ^d-m3hTZa#Rh}B-!uu*M@KjUojOLHIQ=8BIVTzd{H_U*%-MsuE9tGBm(!_4`r z`3%JER6!wt5uRG;zg8GB*vnffc=eZS|=Z1m25?{sXJA8@sYTYhHtXr7p9fq(KF-+ba@V{~l2aX85bzSv9acPiY_Q;!IW)r$P>?Lz}Aj55icCz1V7l=Lw=}_>>IZxpVg=Q z=$+kflFIw}`+4VgM(NMJ-yAh&9(?Vi2J}0YIQI8!9$J(pMTvp0YI9A!x-)GJ+07#J?*XW#j|`* zUvOYUF5|5Hr-A-FmM-YP96f$W;bQu+Ih^=)*|9;NLlbmvrELyP6QceHVy-IWCv+S#EpJch1MX-aQSZ z1D^-%LE~bNTR8RpCpH>@rFhJNsT}0H+<+lm=s@h^fvH9V>I6IHn+H?e!xb;~_RKzb zq%}SL;a^jK{C2&%u-^@6fF6y}LE7ZMa{%{hjQSeC{G)?-zz^Q7b?uoseC0bW@RKcb zH2$&Y8TrUl&71D&W3{%io3 zxWDGxeGUIAJ=NVYinqR|8k0NaYT>yifcIYM-4J=Z+x`|7kn0z zHEG%yo91bB$4@q#yUtP9a$M~2QZMoE8ScgITF%gzCNJDui*q#qCa}@?saNwo>m5;j zNDDZW`#AM}r{O%lW$e$bpcq_)r<&Ei^qsmW?AuHZ%+FxKO^n#SjF zh9%pu#64Tqm;>Xq5|?<@;0$9}dIzNkbLau*{BX}F`{IZ#-0;P|_~19*#puk|^TB+6 zS!<2`%6&cm<*nWt%^ddl;$AKDIT}XzgNZ%VNt$F=KEoA8_+-yKd$Xs{S3a2s7mfev zfDQQZsqbUG7x;6VKHuXO@0;^9(Yt^AJ2UuhZ@JlCY9*c8L!E{N4#X_~;f@z^(k`E2 zn9s!^*0kNbAZ<718ZY*iTX4lYTk;0C_A%~Wk9%|YV}I-LAdkeM23SW2?CRkw2J7*W z=5Sz+`}E=3d^YjMZ@3#{iy!F_7dW@Cm^AC03;cu?f7r&ewPNElA3fuj7~Okr%v^iz zd}0%>>MYLWzlMMBi8SCdzP#QVz`1|(q{Y8?1NB0Vv)Mj$Csw@hODz;Ptosb^-OTU5 z>z&VHHkTdwt+64$tTj$Uuyl_nm|5pp9N;p3U?Hc~7>1AV=S-mkb(#)*C(}D%b)furk9*JkS%BIlCizre;Di4# zwyzk}UjFe{?3#Bn?*lZ#FMPt3hWJ*a?zp35iAJ?!*!fiHO>X0g*8%;Ok`uKC4h zoOzBP^@`r`V1JFxYOMLV7iadYPq$)lA9r{(riBe%@C_dFpTF!|msZ5bCXK?!Z>yUN zC%FPo+~XUDQ=`xStJMFc0ApDD%&T_5z&d)szqstD$s=*Y(s|IkqIUx4w(oYF?`lEy z0QY_N!#{nCshSQm{);s(_>OlyzvaH~1H{MQIDi2za8IMKp$WO}-ZNV8uA~;YhnH6E z6(fH6!*>4{4L8k}|(de6fHpFTFbnBW%JXeEhgiSr&n2&G# z$x*gwgD-ryx47-gFKg(8|M3qu+>5WV{$DMed%yMn>S*qL{xy#+eiU=MD~DhTUs&^@ z_XB5y&jvJrbKIBvzWXiz={qj@#=dyrLB}+hzcec*pTTLCpK!K63}_N3IG|13t1;Ti7K2eJFC;5_KPp!|=2wL*;c$EA4SOas*b*csnB$w%MCSi=w8!@L^c z9R=roABkgr;okhP=PzIF1>g9W`!vQk&u{@(eu!1x(vJPaZ*TV9m;3z26Z5qRPdpJ~^%@2>g52XkngM(Bg)ajj0U zp~0crTs-{auejkN7C4nZe5*!zH}GA7?+3i^;ax3=f8QanMX$Tw@EHbdi=R!;`N}`M zs{`VdL-5BjK3(GguK4yG2ga-W_{Wtq!nOPgb9?xI2H-0$KI8{qd!GB2A3}5*a&*oP1?P0yTFSl!A;2%C|T261feAI9j zzP)3>oo4N?4%)-D-rlZzU*r?5&=TFyBfR^LSRJ4N=YgjFdr#m$eTxsb?1@8TpAW{g zV&bQ9e$&4*M=dH}ajgd6h#&Sak3OnVdgE}0H^0>sbrMeYkPrNTpN3ca;82TeTEcf6 zo9j93;Kqh~@$kpG=Hp)+Fo3IubK2626Q1~S@42~bss(gpf6sbHk}L8bruL;xzT;jK zvopguT&jsMZVoPSY%f@NKY%|!>}@Xl)f@QHO?Ag}`>1igH|(a*ab+k?;0kW`AqU(OlzGQ*&{{AAEWL!dd4EjmR5w?d_hAe1^Yw z0pInj1HLcRJOBA0Z(&X6X_%JyKm)Mk^Tt8kGz?FixW}iQR(Hfq-^N_)(+ds21#WP+ z2j6k82Kb&|AE)@iX*o-ubO;M`I@j^VA9Kacwmpo&wtMsVLIdwg3%KwNR^e-$eeu8%XP%p9|NIs^pJ8bXF1~~FS&dHRb#+&* z$D=w38++lj^TBg_;NJVve7AGvw?+>6Y+-FWw4ZmfzT2k_dbC3d=@8O`4Or#o1Rl^?XE#<0mx>)5h}U+!_qX8DT; zxLc1?5TtjW-s&Mzz-T=2e0$p%{dR{hB52e*Id(@|BvlQkG=iWP5sXvf7i`pKYZJRb@qi7 zKg31@a$n7%&+vpBe#PwUfL*xi;i-vJ+|@KaZX3h9`ewf{hPmfrHD+HLV2@74Ky%`8 zw!yQ{)wE-6c__c#<5F*~>$rlgnAkREul9G}d|cxIKDgEMEj_>hhZ@dsqsKe!_de#z z7j|6BReZ8fyYQhM`HE|{tWWPW5C7IzN6LNcXh1Lb^MOX@bN!9~mv27X&FAs=&;Qx< z-cvW=s+O_|cNnO3@KpcQZ)327mHqjY?%}~t&y3Th*!a(He25K?Fovf%@opbjYW6nQ z9L;|9xPJVn?>zjgS^QPk*Z%wvyJz-u9cFwem#evO(Co)f=d#?!6(4a9Z|l<) zJM4Q_z8fnp>(zU?uZN>ta;-N`KlT(8-tn*TP3-umIX;+|&f#uv`@+_}Ibt;~1`Ve$ z!LM3C=NhePX$OZihzI+Km3HyZ-(URvJx2p<(pT}?Q@r93Z`#Li*ECrkIhWJF-e*cV z$4~VH|K3gU!9N)Am!{0AhVWCY;ugPa8WC%{2oH1k$dB;GwY}6?=a|;#AiAk$>-h}# zaApez?9)S7;NCSZ>0iw1{ZmhV=;l|yeBY`2IHv<~!?iObeOZTdv8zjXp=&ad#4o-eYoe3 zT339=oF8f)zcrfDix0>2sRqb*ymx-cd%odZF3@KDJBP)e4sg_2PZRu;54fs_FMY*7 z4X8P4Vzq|fPd@R%Q@6!!54La*FZb-jAw9U~Gv45BPit|nIsd&c(m?r-BRIiQTsXlO z|KO3faRO6*;RH9f-lj6KIewFgcxf{z9pV|-?ZKX{2l`k_VoneU+w26xYV{QRG? z_7uCde8q`-oQl()@cHy=I!pY$`oefY#ruW^Sz{-{Z8q`$bfk0xJ?v2P!Z4VvQ*eB?>B&U=Tv zSO0NC7x3tPMBciG6We^y`0XA};&sn28gyTs(zA*4n!U<@pH;ng&>oHOkFWTb3-i7F z>2c4#J^7?|v1hICL(~!+(yDp*dE(a}nE#9YBM)+lO^qhlg9l#d!1>`UV^=MqExyY; zF_{lbxYMUPWe=Ld6ODO}M?P8yC-&jtI<9a@SMo)UR-44@|B+_f8OR<^&C&ChFZM8| z8EYT+*5KY8KEcvB-N;Ei%6DW4 zQFULP?;Qhgy$`1Y+Jn2j#VYUd1P>g_HDmUoO);?JJ9U58L;Xs-{E|zw^W3wax_S2Z zpFC#)JaC0SXG66hJjKXwxj_rGC|3B%A-M7lKkV!2sWS!!@Uafo@Um8Iz?1dx!oO#F z{>+~{-2CwmpShVolRjF-y}2}Et$RMQ&mLRG`BXhNPNT+XK*K%E?8PVC$Yr?ULX7V5 zt|riiULL}rnyy!K#b!S`<^!CIPh4t&IuHhQASXB9y>H5Q4ga3gpE_h;d&mjc;*bX9 zn*1={JC${E-*;~8(2o4aBW|3bFtxV)4Nv^559x~*;3X#ZodeEWwt5fY7am}mhHztD zxvG|z7x;A+^-RweZpA^5v^jrIb^grwk)wAU(^&pmud$_h&W_$aZtaH;V|?>mozje@ z5gNcX?qQ|o!3*zVb}#4ghHrLpsh07ZU3|ws+wj!mUo%$@b)Mo>eNms)dOfb_0DrV5 z@Ac*xv%kFf-QCT}eHy@}d)M&x&LIZ&)e<(WOSAG*!xN5R$XA%KUGAza?6OZMu!oa8 zfJvCq1FYP`nvL=lS86$&)k^rl0$%on8I0-4JU-B!ynp$xUp{`yTWes>SGA8u>|wq= z*rFL4q#^dLvj#tKaUPiy_s03dH~zzn2Kv0jCw0M?#?Q_!zKRtl_R(mLO=IDSfA_RV zKRA)kwRojFO|5tSl<&C5J56Zj(;tlf{HM>I_QGF2e{vb8-jD2!AN5Ne!w*gHfzR-h z!}^Z5;qubfDTnoARDhQ^GW0~>zg3Wt1wr!zB-eFkto z_uhjS9Key!V&j)R_>|3X5jP)c&OG+5#hrX)t26yNzm0pY7WD4d=Ky|mCWy(o_{z&) zx%t~GUp?2=Yi9$j-8eG|m?O%YWR2x8D95P2dNfa92}`olP3F zH{NMb?Jx!t`0`QCs4wF9$KSv9Am?GrA9+p-uKA9~>QwJ3bU@GMdd@eR!Ucb;3pm0* zZQznN`R7{WBR$If@?THmo{KepJ6*o-62RE?fzj$En89dbnc(UUR zW}6n&1pHdVmiWag?#@9rXvY}>S6I@W+7AnB;9^XUd55&-r5C?=wCt==L->X_4VIl% z=DOx1omX$n;WJ&h7Ek%vo_acsE9W3g@sc{-p0{NlYH=hXn;1F8jm9&9cD`dlP#4JNSmt|-57z%PEw4|8D3|NQ2& zSoH9uEBU731OIe@Q@LG(hg^cIcr|u$1ZNn+j&1j_HlJ41Cz`Z}_d7afAGdmbu%p3K zZ?0>7&*Pi#nt9@*>Eg4u9OVZdVPbD%eMRy@I1T^r7*c4NdHH#J2dw%@_N# z>HNkg9^+Y$Lw~L=zkM$AymvpmS`)u|bJT%d3mT^hIF_?=LR{(!JL-=2&2qoGOb6DK z%kYAoabxn_dqm&0R1d6&sod9KAa?b@xaVxqS~Ue%ntNLCj+%aY55*~L*)&IUzwKrR z@BE2(xo(~w2lf_=Uc--CgDW`5XEg`Eor`#uOWyTxXTG_{eP*Fs`rwoJ;MBhOhNbwN z6Fz5`>$t7%tLx=?IgUTP`kbbv33{+LZP0)kKsT<m|J7zZ zd0x)ZOj@G_Herto{-?cafO~P`(!S1axf0jqv{=+FQ-rvu&-aURbnxn7Y9~+}P&A87T-gABa zq-)sIF$}~S2gcwEL$Tr<5Ad(2AG~+(nnr3cF-BuFV67a(9V}^*Zu>ms-CO?1JNxm? zwZ;x#_+&ks_=i1h8mk5vb8S5>;g9Y$I@tM5A7VGpGa86%>&507J($ZcTC*Qt*yOhu z!W|Ern`(hR4%0?wy8C#HZyLex)=%e#Icht;*|nB!bM@IU&M(ci@$P;1=pB*{d`1w1 z&%c^lA~srwySQn?Js$P&!LbG>bBx0ij&cR>>b*Je!((R?O~$`5O-#nhKzHwkI z%$&%O-o9Z*hyudV9b?+};sklYe@=>2Xox1y$rd~6R-YT=2LE)}dkkHw+x*43{KqFvn1}PuaQC>k z#(d`k-f``jeD}_2j(W+5{42lQ!%q8O{2Pa*7~>WGabVoKp5fTFad^N}t3HHRHqt_N z@+E(=!_Rc!89RG!*V|5e*k7*lf&TGozUSFV+uL`0S_?PlOup;2?7QY0OwA8l*ZZEm zY}nsBjnBF2k36RdbswL2mbdCc^}_o??+xlvpCz0xG(jV{w}zhFvrFUE(T!tqge&aC zU(JRIKbx2D=4s+Lr)%7YiQase!>@DFUfB!}_v~0>|1^~S_AsxxjoI5+eZCe`cC%e< zy^E^pn(wB(%ewAabJaS}VQ4S5+2yMk#Ai$^Cj0S;KgP6lVP3JArx~Lae+H`FsMU0! zeyay+K26X9jo_GGjN#d}&wxHhsWZ-a`r?~?w-49X`6DJVtLxRe@`1m_lCJkU^WoQL zLhH=8xA}BH1Jwaz`C*>0f&Du^f5u$%?|1t= zvvrU*@Xwz8HMaOF27B=>y%;yQ_`<+_{<`KbTYPlgb8|F!saM4XyYTbQ3qx~y55cwP zdgo3#=ic1*E`~7D8w>m5h=ZOLm-&3v=eKyxFK&Bz=3Z+}^Z8Trtekh<8hv@jb~fyt z&Eg6pbK*QsibLPK3qI*Ui|?N4#mWvW+-IxWV2yFl*)?tszxcQP;#2+=zd4%w|M$FS zo@?go@v+zJ=h>_e%jU!-zcq0-7EZ=A_b{lLmpy$Lxh_8Y=BIUR)WT5TUe@Lt8ymOc zx3AWHcH6&ucB@19kqdS+i3#(8{&nR~dIqgiWRHuAxJT(PzJX%Dv8 z4O{ow(bvqkhkDkz;okoFmA~bQBu*c|(`SGM)`?7rvvt%0uD&5ku3W82>QgKRemlahh+OFXnk>FZMOpY`c!rIL57OKJhmj`g}1S zeqrZcPVuqaYAnqf*Q{Zyd-Jyau8WVauJgOttWO_oHmB#|kl*ZjR_tOF|K>Q1dL~xu z^U2zHG&h`#dA9emCVckZ=4s;Lk2O2CuG_cyY``~++3vo+_nh8&;A34j^z3fD?8kpt z#J_8?<%{RVYYyz=jjisBx8At-Ht*m49f|xmuJJV<+2o_WHa7X;S^SEt*!ZemRlllT z;$SO&*ePCP)`_S2v|x=Ka9s-zeYWz`oazO8nmz5q*Y?}bJa10Vi#r%Tw{9c z!$Qw5%`+UgH=p@v|Kf1H{f0qje(!?L|LZa5guja#_xYMn?Twe>p-DXJ>A^GlV1pK_ zXW3*U4C5%=#S9Dn8gp-szIf{S-#d>nbJ#VXZ(+ucW{zfm@pxVw#>|O_Y_%qT&2im* z^Yr%3SM$V>ZrZmwde3_YOP~0N6VLYZ;w=Yy4ud$wpZi*WxA^waN6+sP_-%rIQx4D8 z^=@FUYYl(!+3^+gjv;-ROOqNbtqbQcZe3b(Z(bO=?wRY|;;S{V6C(^@Z7-iCvt~K-bHQ(aUwPuaD;?ccvWBAg1e%In_ zkL_o;b&qquMd0^HYJLOO?*!0=IrZ%uo-nP!NOKPl@xrOO#x!yA85WIQuWe2k>5ZA6 zJw09NHG747xVSe5pS0&5ref!V>vBNfKIYkL_palwz2ai?m(T5EjxpHT!@WLy@#9&I zZ|1NW=lSYceCpXTrp1l5_O_<=?lp7Tk59((*EpWH7F=t)F3>}m;~Ey5mv9Rcn3=yh zhNXs6Eu5|8^VX%k-HVm~Vs*{;*6FPigZd>7^Ng{{Pkz8AJ+l=qVd>tQjeR&-tFar# zuB~m1U)4`OX!bK_H<bPG55!HLi8(~ef|hEe|O&1H*kn`7(a(;T?K z#~QxynQi{52km1`ZRee}@TUXU zC;xFCpT^vaLp;{F_MC1!3uBz61#>)$=WMsm^X&AD9lXE;F7Sbi*jjF+rt`r=+lJzu#F%0U8iF>Yg;Skg|+!?vAccDCs>Fjd${EnOvLG)-&*rMH# zb82j-n{<~B)k**-18pAWZ^|*q0eBl{q@W!XL z=5@xJj}vqBa<2K-xW^x^nGZ|K0Dr88e?P``OD{99qvdn;K29PABfUZ1?^K7X-zBh31 z&;I=RuD`GA+8BTE9Ix;fzus8+fOF$=%{U&dqdC`}>Ddzx-^45b&7l#t%xk@#Jy_#j zpH|`@A6j{;Z$2(?6CZfMnQ^_j;-HoC72mkV8-D!8qg+i3^4YWN=jFL^HkwzC^T8N9 zdi$j%Sk&kMK6uh-Ag*xY@2b)Op8E5699AFTS#BG{ZQ3Yb_2yKA?WvaZ@4ft;wQ7rb zc!Rrj_=tae;Q>#4mV5FKRs>Q$6B`I5-;*uvtEwTf&22U9-nCe zzsB8{QyJiou@Xfw#;;1~Q8`trOQ(Evl&^R_u7smQcV7{Hq_P5SFeYW$-zU}QG_k-T$^lad}^TPSz9I;m%z$fkQzFdT* zT1W@R!~g?viMyJjt~g8BWfKmX`R0YCG56(!aklI&ujp_4;o5VJt+=)>%-QlxGmi~E zTWc@leAdL1rmg3{I>&E~X2qe=hgi~(eKdRU)q2gny~>@i(|bls_EF>QC7*GoPUEKc zy6Sm3jdwL5?%kLB^kbbom*ecQ>mKK9)0a8!&G+{~{XKTq?68Zs>am zcilXAISc5Fz0Nh*i4&I1XAckI4;OaembTO!?^nHp8;5iFnyay)H?FY@Yv--=*E^VI z%)WSGM>A$EPVwP9)8OFTGLCn#g@xF6vnMIyxui*Iq|lQH^(m!=NDO}@w#*yBt7;!sNybbw#nm)pJn zRw&!3rKY#0$Rhg(sZjtU2y|XQIb-+ORGSgz?sZXYTD&p2sD=G(6I!8ij9~cTKyv z;dfe%Q*q!fExTt&ZX2sc@}J(UqY2mi*!9XB_-l9b-Um}Wz%oAYhl?6s)r8&f9?#X1 ztrgd})zX)LyW`)Vuw$(julA=ay0fomY|zF1{2MrHJ*S1{wFmq3C6?-`dO`DH0)y~$ zT|Vk@1}pQ`9r(gc?%<*v*2C2}{LR*l0e)paYy#6RIhCW1CCs*-Arn zfJ6D5Zpw3Wst4WMb-b}csff%ozjukK+23wX)L^3OFMt?S*aGY4kI zYu#JZ*#uMPEkD#D&*ILW_OmXY;+PK0Q~ovXEb<+$&-%_JbxA!Ek673ihsM6O)u6Q6 zbAHFUb5>k6<8-Nsg&uHG?!q75u!ebj;IQ`vyvSW#o2!}U-a59@i{2Tbd1ftcajnrn zwcR^QnqULh&IfvNuWlJL#~A+U82;)eT;K^0dEg$$@!`x>i=D&ju{AI-rnzRzd8zd- zf=774wI1KF<-2-BgY4T6=V{A)*Zjd3PI2uV!mZx<(|0`e#*2eqibs6z*`g(!^QCjc zez@ijY{bxWbMP;Ytta{yFOKB3hF`V7zYA9njNuK3&2imW`H7p(?6kpd+QpSIQhs7-^MG ztfwP-a$O#6o_9@_r*ag(dTn#;-kdaIZRb{etMlgIu(9fy*yvH5)h74y9|o@J#5_F1 zgih%meqw{Q{G%6h=*V+1;}Ea#&{wbH$2#+>>G0QZWE}5swvTZ=el_;Yv6peS*`WjL z*sz8M)G_#*M+4Tlx5l}IfA;vR^$tlNw4#QHotF6Qxqq+f->dt#sQ!Jb-=Uxd8sLLH zU?nH4gA1PHUhf_kc&RRLuJCFchvuY{&i(2HezFy}_)K5MdTuR^q=)K2I&zu*Z)5JmZt+ z^wK@P_d0XbCvl0#T7L82I_vpJuj*F6E$Nxhn4aOd-`DV46!`b=mFc1U7Z5-<-?$exty@Lstj<4u#*@paZ%QyY<#O zd#VBI0l(;+4*AJndU1~TsyiF?<0j_a;H_so3UYWT!8yIXtqGiJVekf!Lt zwRQIAlezqqPvYUPK8=V&V;^QPm7jRRy_)Ha^iCvC{04;ICh;33uGLTc;a86N9RPXe znjLz;t-PeCv;g1oUCm*epZw4|PmIxl8nAt0ud~`7o^^g$qfS(l)O7XV-Z=IB zXhR-(Z}z(`ehUPy#;YH44X*GjN8!bf^d~la!4Qx5)o92X`R!a_Q~qoG#XGy~6&t?g zt@_L+ov~?-I^ee``W+)$z&qc?wttVvZDjh-U&PE2%PxG zUpf?`>Y(Ix-oJ*=GvVvvi*%Qv|Xd(Y_w&whu_@5;i6Cgh6W zzVsW%ck_Ffeiz7ZM9C4kQC`RqdmDp|{a`~Ye1?zb#^7jgz4`D9!`=lQw!_~KjW_D z7Qbk{cUydD>IBa4joWe@pT=;k;ooNh=SF7?t*8~A<6cg{&R+2YxL*$jlb3Ilm557g3rJI;Ld1&;7E zPD|A%^J$JY`2zQ}N(c09E`87{9oUP1{8eM*T z)p~k@HO#7?bk2W!(Tuu6FZSmP{P-nb@#Xi5{f4yIaUw3c1XGO$tcATj#APjf@COt4 z^?zuV_Ow1883Dug+P^hM43VAI+yDV{G7C z?ZP>3o$<8jTCb_`{T^=Pc=U|lG%qf3^B;cpr3o?7863=mA^zJ#?J-V|@(^d$dz|Cm z8KEwCPrz%np&sYB)YF7(H9}31-*|$N1_S)rhfd6A2YxV7JNeEpnE1a!=6lTf|2n^U zeyjZH`F}8IS>9ADtkK}9!5vq0t*(^ku(MX}RcCRGdpdxpd!Ie*jTiSCp4A@s$Y1`` zoO}9{`*dMkGneko)y!>NjIPyQxbT~Oe&bSZ;7v0opK-`X&*YD@q2F)zZXhmolHXy{ zXDB(P2HRH;8OH|N8d%{{#GPwOmmbo%wQwZSM%xX8VX!tLBIqC!T4>VW7cS zey}Ak;AUU%)o_Oq4y@ysHTI)pdY0GX@|-X72&UH38BWDSkK&^X=b|+h&NqJ1B|hY? zI+6&?5k$rm<^3hbLBQ|dEVJ3e>|gk`tSb*@_%;t4Q6ro-ow}Ojb>pZ4j35M*f%fk z@d9(Y#JM~!$My1AbM09*ySktbr~%$>Y0x=9Cgf_HmcqZy|O*s_T) z*owjV<}6h2yw|}+&dObN-PtB*@FRZL`0ah3EzN%R;kTyt&`0$*tlZ0C?@;un2GbUP z_>K2!rJRw|;d&^sqvuG67w_*z3x@=#njmRsUcW8k0{k8@i-sf+H-RSU~uy1=1#8g+=D zbXo0Si>ADT(i%)*h_`e^H#lNPENMaPV$$>3*~4!Q#_1qCp5t7t!#^$1oN;!=ZeQ;# zc=x$hJur`ta=>>%Y9kx8VlM6C8%A*1yo*z#QFE$m@<2Q=i3feTAJ4d<2|bPAoxR>S z=$ij=UOfvlxo!REbk@G^w88k?58i{{mnQCqMoVuVExd7b`PRYn6XVAlMo;fPdC@rx zcN+2i!@MVt)*cyOzH`3b;aJcp(v+U2=?&(cQ?yR^ zcvm-Rg2w2|IVV5pMvioz8j~;TsCoL%S@)jn)fu%%Ev7RzGS=v=1$WPoJISqPgXu z=WJC+Xb!&a;q9y~r=11(cMdowXhO|b$Gn@V3(ltacCAKquV%8Ljtut477fu8d$d41 z&Kh&n`_6BEZO-8#CNYX%-0~SOc*g~9CwjZDDOPl6(ZQLB+pBt0ouuu=^ zg>K}&9wvOH5gexv8o@LC%yD1+Fdv5Uj1JhcpI%c3@Js{p-?euy?|a@s)eCi6uIhV7 zcAi?}y+Fe|{^`WH#+Ld{V`>gvIU8w!7M!1IP-mpGUG2m>&O2*ii66BV2O3T^{Ho#j zR~O_w9@Xg113kXf>ArJj4_EHt3=>?a73SiUJ$uOcv_%KT?Lm*~fb#>V*5fgLUH9iA z_O_>cywL&8(3!o&!7eS+0iWbB-f?J*kH+vuCv4f1*4Z;hGbXnDv7R1i-QHrh);OGL zMz40@3P*A_etH*)e;P1vFgg6z|XRhHd=JJDGIKsfSoT4*0w$6U){+vmtuCx!m;T`|{ zQUl}|?ZO#n@aMPYY`}%yexA`M&hg*1{izd+y zOJf`N>OU>GrYr9*YBvnkVl|w77~>x1xM72@V!^+9qtO>Vv1iz*d71@?=7np8K~rv>rS6kFD?BkpR3=P>df;@rT!_kEvnx z-0vG*!vQ~R+Rrt+bU!WU-^x58cP?>4E*zn&&KJny!V_Px!)PchB@^#fK$3IuW0~>dO1u7 zG@}N>)>&?ynjrUS#pej0A-o${XFlAmk&Bu|rLHxrFUNFK7-Y zHS2Jh_VLg@>OM|rmF8gp%QVBjCO7dl8hsdNy&o7;8!olyyN7Fh!;#j!$G{zy-pTCk zIX|tjUOakn*vmEhYD@8n74Mon(DSnzAcxfiJko}GPG@vr9v|$VF8HI-ERLUHM?Z43wJ&mVj@GWtI60QXY|s>8kSvPlngrk2tX z3~BY6Z|AZGFC5Do9QR&U4K)T&H9?HDMwk5SGkWixV#d9_%76SA>vI4*cxiv*=EI$S zdS8Jrzww~QfjXe^E$*$SA^WiDT0H!wHM-E;;~gh@T(FBD{2SBa(mXz-5jvnfW97MZ z{J{ggS)UHrZmt-t@k~oc<&xTf|B2<`ibL^sj;IaZCwb2kXi~IPm z-l(B?fpIybhf(ztCwPZZ*r|2uChp*ePx*m=?-kW8`lMn0SDW`fIAIe{aitD)?YVvB zhn$CrT;n(GsxL5xAC16{Z}_)%+o1vc8>cbxv7I)=V;}LVclhD6)|r4)ams6Z+S|Qx z+|dO*t=*b+ZH-1N{4}=tcHI~o8ok*^yf{=#y|eWW0FP<~tl>@%dY?z-`gI+sKC{IS z`2q_#zzZfYa1STBuQ@AW%l~jPUOvkO+{k_J8T|16F*eWlA>yDF{Ijjs?BO0a@ilAD zH6Hl`=d`Py(Z2Z9G4-XG;AEdm&A7yq&AkV^_D=Ww5(}M+Pm`~7P|R@h9LIdHk1-tK z6<_g3GsbZ0c{br4ew%yq-LuUuEYm}FVNPpwFP~u2GkscsllMgLjNbb+*P7bwyQ%6k zf7Nd}2!D9sUXH*7=d>Ze#mX;uXvSdHb7M3`Z{ADo>-|LYt|@=bg**G@;^w{UY5;BE z0N*fo_G!hZ*0}Gpt=?R9$=d50fOl~jcU|n_wnlt7hBJJ{2pi8_Yy80tKE$lHn~wu| zk3+a>@xyMlWbZ*EG+`c_?5JtRt!E4F=4hQGp6xw*#vlIiO>V$Oo;VBOhZ{9P&d`y% zRgAC~JI>*QE4}#PV_Yuo+z1nM>?=lll>2=~_4&jzcHnNWnp`j6<*L>_4&{%$?%h`` zYMwZXO+7SLZ4ej#_g-Sr=ua)6b2XnH_yuRpxb^ahmb`P|hF0iZ%+|1@7du?6#R;8T z!{^(nhu#aE*J_mfz_oeeQe$w%J`Uql&o}$Q-97up?C;(>>uIF(hCYe||1g4!IQT+a z`DKlmHYepw+~Y!Q@CcXurvv-R4UKPfD+hh|Fc?4h^T4rle74ulfA;12|Iz?`@JF29 z{c!6YSRGTtoH3evvC;w^m?Ks=#C2M$rvus$Cp^VQ`~0J0xQNF!Uc|4Ni*Nd2yLIMy zF1O_-p5+(K!oT-c*o&pQP`$t*J!tl0k8kPCKCaayaoI;-J&^Y_WSl1S&WNzd2Rfuj zI=~;^#0(d4(OUf2-@fMA%QZ|~+Yd&x!7q8>IomYXIpaOVcU_mW=Nkt*xNA7rx$e5g zpE%+poM74K9`-cn49@ZI^M-rlYLGk>8?M;e&Hl#4teGbc@zumAKF`G$Cp4)UGgmIE zZT73i!$C7f3$Cm6bOuxRabB%Y2j;MCf4Ax3lA zkYo7O!wu$QfF(O}0cUDy*Y;> z-f*&~XZh(K7IIH4o@sPpj@~{0UE5=@9e*$1RmpqxM`J@=_SxLho3?qmo>T1;AB^eP z*(w&ih#5|N5x0HdvbEMejp@Y)Q}$hJaFla;d(f_0iUV=7pI+>Pf6vt*XP)NTy9&J3 zetz#z3cfbe>A|icuxoB^OtY- z<9FPdlg$esmwLi>&(cZt&Uo?ji{8Z(wtD%mhKa+z)fcw-t7pS=^KkFX)%tuw6Yiad zzN_$VtPa2hhxX~r78ibCsCjM=+Q6OXe8h!3pdn+pT^qh{^iE}ZFoqcoE zoA71Jy?yYiXIH~7|M+ZH-GZt!FTg?h@b1)(0NT4@y<^C z>)8^A7|qk%+lL=o+|!a)4w++JXMZ@s&ie*T%_&Bl>^RMn-_BdT_fYSqt~Gh@9v|v) zHSu;nqlRbo6rZpSS9@uE()fTEd5s6_&E>lue;RJs=X-eL*mc;!2M+98%NE}8>Drm? zY*X9$r_ri=8t%NIDRyBV#_=82?mah89O9&r!RK(r2mZ*}Y{*gE*W7!?rWojnO>t?k zNz=vZ9(U|pYn?Uj`IJuK1y4YydqzL`%+DI#$qk>as`K7?)dOdOYkk-5=|pW- z7rbBcn~&_nA4crkGk#z!CUfFD?eLFgXh2J^Y>Pvj8ehY$_+bbG>xz{vHI2r+zo_@d z@a?|OG;|LmKCu%o_6TQ~hgH|R4)Du5oZ#0PU|#pxHJ%e6fkuy~aLF zHP7hVwY_2Qz8WS@xTXg&!v-(*VUKNgvTF_gajM?;y^DHp%)Rfx`+GQg_xPt1dB#4z z*@hSUJD&8wPx-9|;06A4!C$=dl|S_2v!45W6)((+-JD`l=~%OYHcEF?_}7-aH)fzc|@&ZCtJO&gc6`e7nZ)#KY&Y@t@QCKHRn5T>4Nq z`kY{2v9QZuG4rz?w|s=TUM#MC{^V=p)d)R1FoT7bEo;R?Q*p_DwE*ulgnN2W6U;N_ zI}JU*X#ocCun!LCjNh=u58T68jQM1K%{rRF{k$)oS{=q=;y%vVW1B5HPRs3M+;zES zAF=B_wU+ya}K8RE8O|QS9Zi`4|(Cw-SDmk;MMz}Jf{KggVh6L{#?|! zc|IfP>A^dKz3|VrShf7+3tw@k=YM?+UTpI#F8F32J)YogFY(cwHS#%*t*09`z_@GA*nqKXIIv+4xQNC6 z;%+~hx5iwY!qHw~$rsPvi(i~w(cHt#9^wwiG=V$(t0&o#!+3!i-{ByC z%%yp@|o=f!;1~` z@x;fj@#I>=m6+lVUiN2CzKhu&>Z7`Xdw6&!sD{WTzR?zL@oGQg?(O5bJ(?RY?Qc)( zH2iATnQtyEU?QhszRv}Fz~BD%anCNEXr3)L*wXk>?u!RE@W+W-?HVt7n2KEJbMJQk4z|D3@9%Km&)>!MXW-uZaL%sgEHJ;?fIHZ-&n|sA6J6)K_~Smz zi#Z*$QO>}E&f$v3^4qvMaKJH*7=yX`;NCNsx~6}6(Bs~-aHIqCjKLh%_^1}J=@~!8 zfosoQ<4NNmeyyb)*Vbw7Va@mQLT`<=;x(lZ@%DF&6V@=6-ROx ze|S;{)aUXaF5=)Lf7Bj*{=!L)(-0fgfj;lyUsG4~?9+joKyP#?4sjJToojFvtG&g9 zD=~3@__JXBxIjFAFK)HUM?{dD+{M7(8=<>PkweK@< z*gKJ)2IOp5hl{xRhJRYY%fhPm?%vZ@uQ4zxJU!_S6Zwa9zz|i*M%O-nF&t@xycR@k4LDm^AU= zUtU)CX~DH7XPpmhoA2ynQ>^%}2H~C#@N#*7e|qA4e&T-VXra#m#+(o8ylZ(+BeY^J z+q8uDdgqzeIpA6>uz>+?;GxI8TE#E?o5LndU>`p)#Y1?fljg_^S`>@x_-Bj$?Q5>q z+Wdi)W}XIf&w78(2R<2N!*e}uG;{c9j@aTGzQ)oUj_qNLpZ29E^ZCzT+M{zES#KX} ztaa_YjDOtAdHEVAFy%`)v&~0ZEcacf2hV*M<8zoC$GzO{9j|*e!aIh&w99*g?+`BM zGJA9&=e0E8ebBxzh=0C`RsQ?#0w>mplg9OY76%=>hKYOY;9oxW{f~9=4J&i(DWA0R zk1aOYfOzT_q|W~PY3(G5AO8o zT*f;c=+%2;?)BZo^S-e@(mXJgb#k$f-ydfxfZK>s+GH9RyWu) z$68oB^Xw@G^@kRWrN21RgSWKaJ0td3@747jP$TV`;h=ThA69z#%)< z;NCqy)OY;QfTkX+2d>p<_SvbvSZ{9)U$B!)>a}aW&`sYXuvd*Y)>+W!3-^4WXL*fh zwzN3!EPy|3?M-iL1U&dxEcS*yU7E|s_{Ik;;K@(-=COfiV|X-f4nD-oj&=Cfn;(Aa zXZZ(fHOT()+nEGEd+;4Uv|!JET7F|Q+~n7TJ~tS_o)B2bvHY`$YR`%ZO zW3D;J7;~JjN zw0t-2o((@cYaTz0i7D*a6SvyaJ0xGkA13+livQ+{oo)8oQ(Sz8eR-)itJ&Vq)C6aC z^-Rnf?BJvE&9nSc16=i6;~juK`ORkMznUUP@l@lJJgw%J`?#kAcGWC#!2w>dhb>Ob z$CYQ?%gH_m#;5q{7A7=}D{HLRV1ox$-Hj*;I@4m6NVGQ7hPH3&+(5W8yZ(7ti!6H{%;mc=N3B zi+(ir#hbqPP1D&ohwnJ*_dwnQ(p9$cpC;&mA9O6oy|=k~rX@d@#-%-Js%8&(ANw4? zSCt3wfJ=3nK5+*N`@j*d_zO>SW{l>EqdDR;&c4>%aD*iv=}v5XgbN$AWj=r5XD{4} z8{fvPwMLAzW`FbJKFsxtgAcujc;=_Mnz?wfp5Nxt3LV%VUdGunmtN(ldaVA_0&e0= zJYwOey3@4vqYd>=|w)maa^qHsbu#0;xtZ=8SS13dYR3*0-a zJFh+CODyKYj?b=qqi?qCXAV5lf<48E`?Q2hH6Ts6${F~U`#$G62iWuO;4_KOBlH8` z^Qx`()YLM#!53!mcAnFbvqP<<5uCvRR&s!Eu+VRBxLH>o;n{o*hQ{2}g4nIKC*1Mc zc_UU$erbF(#z#2Y*P3d-{me0r7k;DxetO2YHE=b@8vU-~>Dhc3$OnAji_h8Yj0-pO z*|j%*Xux})T=TQveilFr?8yZ-*n}Gl?7=^EORFAMYha*$cLvx4k2s_^nD80C`0_Iz zKeusDXXetNT0uLor5|&v5Zf2l$6OocPaIoNDg*qVdBzeSGoEU-`xc%=ud_)6XWq ztaEKI&vc@>w=ci=ZVe3a1J}-g-v8x3ZO{zutFQg+C7k%quGYDd=Gcc1esB&S8i1EZ zd+=aW&Bnj{$G^G^Gy7YoR?s00_R-&v1c(nBXQ3KBxob zcR8q!-p!#AxTib$Z_my%aXQ!d$0rSE_H{20_(!AGYVcuGvnRg!>z;4%&u2JW%VzlM zcduVFM_h4>a~d|!I{cW25BD0q;)Vub3~x=JnD}lUOyxhWeAer|!v2~#?F~!$1#_AR zC$Xo6Y>KsT5aIFG5fKrrr?bqas>wZVFVxd{4|IE z;xmW;@humfA+F}*8)tYH3$Fc~oR;C`cc^Ms`Ne zPmScSeZ^#7jh{5k7jeQ)oP6XvY&-X>`@I9Y$^&cY5zqV(r!xunG~vFVRnfIRaq+h^ z$~_!l$0l6qPHynWJTdSW7yPrPIk2`j9NES{y?H-@oj&+ouYczN+w>)7KJlMca1Vd_ zH`cuBk$p5+!iUer!6)EEq?gG!2Z=&IJ2ekS3g``)qHw@v2}Qdy?eC?mwdrFKkVOk4#G-}r58NF znLn^L22&bv)lUcf#5G^wr166e=#l?$;Dfn1FBipR9UrYRk8k!f7vAQ>LvFg~n;7^3 zzs_ZSv??arPTy)8KjCCwoYH_+4&yRS$Y~tYhSr%uC+ddJW*V+*X~5MO{%J@|aD*3r z#U!V2C3bup(`TOg0CRZ26lb_LSL~kQB_90ZI!ug-r!yaBxHK2`&M^66A6NWqYLMJl zKjk)F&4IHuc;^$n>eI~QqrGq>HZj?gAJr?|+nXQ!_DmDTy|3U@d~CHJ+vXdSLut!A zwrQjHaCpH~y{0!l8i%Pl;?(%Y7R>0=-tCWLxM}fCEBMAeJ>b31<@k+n{7*f^Jv~`R zZ#dTAU{8L~pd5t_dPds*CzktW~**RZt@Ug0B8;4FuH zM)h6Po;5z;6Yu;|o9t(A`H352Gzm+b@EN~2(64#MS!?2*f8rJw-t?y*`_Lc1_zxrc zvL;(_qE&OmX->A_!9N%kKbvWiFYK7t6>j2?ukP7%PS64#aqn8Lcf~bLq>Hpr{jUbt z6Lzqnhw6#?Ll5E?i?}rL<5s^le2-(A;H%igU`)K`Iq$_pJMcHw-Z)KPIK~$(I8)Wh z^nh17(eK_G`mvWQKV0p@zBzc-#}9Fu%fIRlE{vNmCiB%r@$=gnjZgfPuhzgyi(i=N z=bM@Zv;4Bwy~Y-t)D!cqqc{6%=JLlqtoX_=I-?^Rz`rv9_r2p?=K19PvL4V2ZtZO! zc+o1o%YA#`h<~sbv#Z$T0xbCkGjYI@9roCYfA{=m%NShc3LMObh4s~RdTzKV~p#^?h#c+vPK|25~p%yT-Z2E=<;{kW%F`}3FI zVyNLvANtRel`6#;d8m1_Sn(b#}E7PHlHm#^ND}fcs9?NKJnw-wK>N4<$Z)baTvGG9DT6R zyeoOnhm)VBgdYub-+PU#x!wi5ADYwq!K}A@gf|S~M+@qXrcU+FKWjjoyQT-@_~$>2 z;ezMRFLBZYKJcxMx$@2Dg6XfgVQ(!QX@-A%)n`nf+GU&;G~=Femj>}A4>b5qOz{X` z+?UhrvLpA~2Ok=3#3#<#q$~YmvnTu3^Gy?XzF4bSqc+*!J?`+tj(v)aR>Wc+Jn`wX z9_;Y%3O{=AvlV^5Lx1tI|K5t92YbiyZ$jOhi+gy}1D^OOcK*|WMg#Cvt2!5|3F<+d zyW+j`0RMcok9g<}A8^!fAA8zc-kZZ0aXE|qY(Ol0fdMQvKEa{9yvWA--|K0Jy2dVSWjSD!iY0DC^!BYXJ80j}7@X@204f3$5}EcVhL|Gobhr!QCW zi-AwH6Bcseyy`y=XcCt=fO|e1?*$)ij$wpn-20n3a+@#WFy?PH(SSUHExr5y0qO(Y z(1|hli=Qv{!yA10DSk1fY5wy~pZ62*g}Bx_7vkSI+xEgGeC)xN<{l>1V|Bn>zWXfZ zo*(cIYq+ULcxGRNwOrAMb3VrbY(3ituCB0v11!@d9l(uGX`Nl`J)4&%;1cI}fk)?x zdySuJCjP|=H;o{|V zW!LXgob_sfdD$?=Cf?)|eA%F*c*l`u4_E%UmlNjUt@|{@uDo>K_F4Wo^N*hes0-d1 z#V!_g%HHhoho172-u1Ihlk}|*k7|+65qLHqUbw(L-uVF|dVn`>>nT2~Ih9gq6>Vn4pq6`TBlm8<7j6VwHJThET1v=;xK(}g%`Qv5Ul7k2n{ zUT1;1{9_*%eAeW@81$LT4qfYaZw-5{a)yr0?cD(P_OkC$XaBRWxE51$;f5Diyx3EH zrdRV|j2{~Ca{}jpt9L~C53_2zt9AUdk6M-P#Nb&!PT|Kk++k*oe)ed>XA-=d=h-~G z!AsmYiUW529ZG+TOrG?&dtqg)JfIsK@hP3cja?iYXVV_W@nbJM8-pib;Vn04Ry}cL z!?-x@Q4O&dzS(CBrnCYlScpqMK5(EP2jajbKiFj3xIXy?8_oIQjN}IlX~(?kxLV?@ zU=z=8C8#Q)R;|IEPy zJJlcOws#U*EWYy2dU_VWxY?i!K6%cEa#8){5B^{&9{9(jF*f+kXZSe}`xzdL*k*?f zR~*7abKc^F25@cMRlUTw=JSKr-+HA7HC^oZ@IHWdwSX4zB!|VL=Ca3Me%nio8o%L+ z3z*=++Cx*vzrE6r1N>_^HjjNchdUdM*|)lKz223?Lhte(2JG1fpYG{SUb+_(EZJaN zKim3onZJA&LprvWKl05w8g&NX5%<>iUc!IRV&kX%$_u!blYGUm^>7pm4Y$?El_ji5O(y+9j*!#T!?Zb)R z^u#ut%71>8-~83!31@mzxA^Uu9UQ>SyfCD5n8Ui-@7bDc!jzxl5kK72IQBXl*^{@{ z@p5>(V@e3>1%So7}4f}|r+^1pO z;EMj(!GpRWM*Hz!P2?M!a+@7{l-oWx;8$MLTloPa=YoEpE!TVf{@bnoE~mfK<=NkB zwpLElF>b_612or}L)&6C58r%+q1ZJ3;n$TN{=o^i@m&77%71&vEjYs0-qz#KefeoG z_1@nSl~Zb#vy(qKGM5c&;{tYSu|EFs8J5=Yt#MddV=un&!?ShnJCDSKV^{dlrFrnc zm4^Q?!aKe^!_GLK@e4QOa#lX#2(RY!nGd(=Qm)Yo-B_#NUgp4|+@~8{!-od!=L$Q2 zhg)0kcKh!$`upu_0PR@MFEPUr78>51IqtU`Q|eXP4}L}cJ|>{ z9f&)4vOBeeFC2)`-y`+zSFGYPpB=vO!CLqBVb3-0VaA>--}zb1Hpg&Nd%*#pc!f(^;HSMk<3k?d2PbU6M~;M}_4K4J zX|(S=qz6|%#lI^q?2k+KH5l=QZ}!0heBohkbpY@B^}$b^Vagt@tIfFU+~X_%#i4$P z!CZ|U%|7CyCvnLa*!}2-AK&)y?cQ~L)<3BOw8mH5;Sf)_*VJNHKC*8Pj6L&(Ce;o; zxr!SO`sq@fu)+iUs;BZ^ZfkI7mrXg#7CWwdgM~9H?TSh4{3vdC$PxOGZ!pl@n+v<} z!il`#n=4(JYj5u?xOcA5rZcR1U>r7L;VYlng&jZKixvOyx3>n1c=0SI+|v(i%Q?1T zM7QSPN6xOF#cp5Yv^~Y)9`2fZT7U&V=-z%fUZ3Z;y`TK}&V3Hh0Nc(4?}0GoBhApL z82P2{#kq0z>;W%1$WQfIJg(*xD{N^PZt`1vxOUI3J#gq9NTVCP(+wV5k9+mY*`;n7 z=Vu(i9`|C9E5_MlgMV9&mv_|0f@C zG3E+0KEcf#{^LoLcb?&49~{#C`Wf7f(KC@r{G1Dt>AXlIvt?Kw^3UgHOhTs2sU%YOVZ2L`Z%hkapP9Z(x-szzhR zVTH4+XYSeUSI^$Juka}b^~t-EoOgEleU)>J7WgV|f0O-ZKfP~)^d2LITzx4MWcS2*BT4&X<#C!6qr89k}@d}CLmee-aJ z&-CP(FX_rNAG5EY7Wf)w_7bDqqi@*ZTCR(=bDu8o;Hoy5%YQuE1Fv{4E_RCj!)`7Zq-Wp zB2Le}tB76P^kIzt@lC&)dvVYhf9%6PY~Yf<p;K+LV@y^F5{=%#rhP8dnQE%-lHulv5zT-fw zFo(UIQn!0Q>nw-2ymOY|ga$pA7xw0Z1~a;&8~S|X^)KwJ{rP83*EnPg$Hw^Ms!!hI zg@5|0L#-2!IkboaxcOP0&mq-zKI28qy_?~JP4TN8_L2woNNaM&ezf0xXSBS*yGDC> z!8QA8zCHEBn6~VvUYKt$IsfwS9=MhNaFQdM`k;=8!8u0HY61J!!=6@fi+g<2C*1gl zGkK>5&=rlb@0@@etoX+#@zbkXXiss$6jyZ5SKM1eclO5zjNrwdeQB!L)EoY--#MIK z`~BzlJ)KwsbN95tPg+YuVz4KhP z`N5qduK33lOxVM@cr?%K!3Mu_8rJ6GK;xr6_~QGyUw`WK;tQYMcAdZCf~6}Q>4h#e zcvw$2_=mf_XqYyt`<}%Pdz|ypd1rrn;QY-$d~xqxZHjmMv1y+)#$Wi-F%FEGhkN?N z6}-IU{(#s z|N5Q(t-9i!0YCbkGvbE5_14h?pN!!E25`Sxbx3?-n{|#3)H*fK*}*Q}-+J>)yEbJ5 zXK`Gf*$ck3Mk8r9pJ>6}_~)N>;`0m_`_U_1!d)KX0rs$x|FF~aYw}JEw1|6q@Ugwv zR8z`*ImUOjg_fKxV#TFB*p6#`)f)Zg)1$iW^9K!DD_7JgxZ%?|pbj_-T%GH^3-Cw0 zI2SWK_y#X6EX4w&G^=KXD^9$B(V3nH+(hxU#~M#;}f03 zpN;i<&0WWwH}=P|7N@-v(5^kIVfCBG4h_0b&tkS8JmTHnn*3L5)pYg1IfV;8}xa?_f`)Z!!Tn^$w4Ep4qeKc6~?jQ%`ubPij zb=Oxe9X}IxjRh$o29a&v=bXT5wMT?N0~z z$GOiOG|(AkKD)>J>K*%MB5FS!z`ovKAinHXIovt zgZc1=F&td$j~jTvhaT*0J`KQ-9pl#7$2$vu=!l-oqieW|MW6LFtI?;%Uu(4dVAncp z?9B%?kOpZ^b5DnITkfe#Y5=TyR$I+Y6KWKlu$kuU@18HPgp2stQP(s);Rsha=^UXA zJR9?~1n=qbO9#d@dT@TyfGf>hKC2Wp96S$2_>v1AxjV;ggL;var+pf4ZjuSY0zjLNkM`$PhT;-I8H_zz+*7&t|db6ii z&fBB;xRT?z#5G)SjZ^&Vcdt&VO?-o+{_vs!{qo-&+LZsaD<-&=Lu}EHec}K&a$UWa zkMUkzcfR|4hJWvRxHo1VTjjC(G0y`Upbd7NEA6Si(4S}P^T(AQ;ULD|W5l5*gsqrx zm@d?2Ji*x9aF%nlfP4MM-J8!IT+A_Fe(1x898ycn4_iL*8Gi7!jvr}3EvR1T$2}kI zH~olrw%zxxhd=wWZ!a291MsP-kND+7c}@d#!3Hgu#}7W)pRV!lY+R|`GM zC4Ax%k93c7n8O$rxR2+_jT|-C=SO_2!|_9V_V0YPXZ09Ye5zjK0QdH1lMglaXo?S7 z8qtp{TGDW95B%GQ7Q|eQv7f%`r+Nt^yzBRje|B-NzS)caxWR=S?@aDJ&KSJmTF&9o zd~?co>(qwk!Um7l>o;yLt#n4vk28gy*sHeS8~16>-t5J{dSq_4^Id=M9mX_q%MG~8 zH+dhK764WbF4QfJ&T!k_yv2oX>!w5{g%(#?fAi~dB(lV zsr#>omB+ z%ROvi1y}3Y=QDq-V*{`5&7l?Z^1)u3@%(m$XBwejoTL%H&=ij8juzCO>XJVB&o_MX zuQj-)L%y4bPdd^U|IPJGQ{H>L!_d8&0L$`Sy!5OutoW@T|M+Z9xepu7x|%gGX^nLn zZmpkd+?z)qy$@d9yc@#4J^9F{`Q6(OzI<_Qf6x3E2QK2p6&Kc<-?Mr8`JrXsJzwaP zAMF>P>N@-4ZEx{u`fyDzbYq@Q z5}H)sdY3TYT<<-`=!+JdO>=KC!xqN;fgc~;;|&I|aL-rq7@sy^V12Q;k8k$fn-dPM zxH86W`hYv`s~J-}=GNGUnZ|Z{(a&x?HAkN&CVlp^MqHYDq&E3{s`)IV=`%K)arF*g z<%)e_2pi{()_GN&uo1U4oe}Qy4W8C(`aL^u@uhytVVvW&e8#6$EKJYBZ)d)IO z2h^>(yO-M^FTXVujKvD$Oi4EnZSKYQ#L=a=SLbIp?o2KY&v1|jTKtf~K_W4#^uJv_|o49c0 zPZ}~V26prrj{|;rZm#}Xe3-+(au=T(-{Z*|^Jzex)0!{Wd#^QKtk&zdPRj=0i#cBS zC|>-{+%vA<8teH}?E1ytGwx`-hSTTmGecbJ@jnT%=ok$x(dbyfdt49Gc_WStak)fO(~X z)~5|ubKp6#pP0+l#wPcCw+?0+e7eWCn2HO|#@VqhZp>@%@Cc`Qy&S`_alXO0);!Pd z+1An@e~Qie_9(vmoBj4G&KYA`sixVlJ!vB!>vwHWYvh3Q?b6qLnZCCdn;Ji8r5Z&u z?r9)hl=Jw-J8jT0anJnH z@+V%+gQLCkhaNOov}gM_k5BXHLasFEzDih zp8N1h6Kt`m=`(J>TI1~V(Y3kZ)jD%)VQ7B$uIA=nvFOvpBp&_zz$u=aug^IlkK@sJ zXU9ATa4+{e1Dx~q`Fx=HH`M+A(fqQ9`{Irxed6_udmPui%e(h;L-)NG7f(83GY+yR zw&K$lCgwHQ)tq$T**uLu?H9g{Wy>`V+*=>EZ019L6gz*kIL+Q1cb{gm}fw&E#A~_jn>O+{Ho_T)8sFH%WLO54&|}@R^#>I)aO3`H%{yS%IP!Kzoqr;-&L}~ z&-~+;`?xSxEbcY&q=8wha6!N3$6fkouRUPkd2#|ref8U;ed8a#=4I1!m}VP>@yHf` z)gASSuh}&g_wDN%w=-`0YmMh?{r1CUzIf)(?B|!f?R^v9-Q&7@{dlfE<5cSmca_WK zc6m)BxQu(>3ox7iFGCB)<-Du;?D1`CP#nd2iDlTQYxCe3KCbZ!C(p*KQ|wt|J+07; z`K^I__=aKj%`qR3)*E+5z^<$O=&ZwuImP0t>C1NGuHj%EeLUIy}9&2H}W0dntb<+cjvxw`nmK?eDN7(^BP}x z(k7m9)fjy8#eOj2BfjhtZ|>Q#FOBG*?=3h4d3I+ny_s=JN#x}(`SE} ziIHDj^Syb^EjPr$ul!`!eOL4O#n+kNYJLAdUcUSPMrwe$@lYJj#Pbc;-lg2fDXwvd z6TEtkXFeLM-_>(#!dtB7rWx}*Yiz~4b;itNC!S$|7Z}3JbNA*nH@=OrIqjHdFLO2b z@emi;bhQVJVFz1S!I~~y!`(QneGgP;>}8&%Gd5{7z0a7;DKGSwZ`R;Doa{?$z2D*0 zIdA`(XWtFuds|&S`#)!z|9|8;UumLuch^4OJ7?9bYHgUsk9;@gIeuXbyLc0mSmPt? zt+5v0uJ&=J&|LSf_Q0X};@4;+*gwBQ^8qc`JvF~-#zy58^+W+pw z!ST06Tzzk#b=LU*h~C4z&-X6x+Gq9N%hU+`xc1qx%36i+7mA8c)>&Jmc7y zYx~XjLUzn=eY}>xY#M9aGo0bye%2VLx#~i?N;h{%(cu0i3+!SHu1KH=~<# z_v`oVyRCmmw)<$|d{g`3jE_FU)gLExp+5K-kKg607j!}s)`lmXagIY8X&i^`#l z#3OF`)Ew*SqI_1X)mwSoIW5PnXWx3Y8}D)5cRl*9KY5Hx_dVPYVm&C|~gj^IM~uJWP$ z=-o-bd3dPK%0oQo4_o-88_hi9`mFVg!`9P;{E_~3vj(rm zFL~GB8DK7sJ(v5mUB5ASIKRUq9k^E8J0q(7)d{@HXMEE}9McEw(26n7>=&bJwHu!B zg0(A5HJHl}8jNAF;xQdT7VT>=exH8XJXG6AK^~rPGxmuGC#@xGF&yKw`{o+VZp7l>3 z*rFkJHM(()JA1;YcZceKHKe)br6JgwAKr9Q&96?Y1Dbq}bIjdZB)(H+;l7-_@n`?Wz@pnidmmJj-{S$64B`zdCQcTHs!T zdwiLXXAM7bh%bHiFvq&aJ;%E%Tlqy>?3-(zXX7>fjb+0g#gaB%#mO!VH22jH-1D{l zjKjEbc*!?-&UY>x;a!uruDHUnn(kh`NEh83w-%ooo6d6A^nhm?NjKghy-TtYcKoJ; z^x8EY2@QzJReX3>yVNrE0ncp10p4(i>&(6Ojt@AhJNDN2WL+2=*9U)Vao<{) zd$yl7uH~PrHLh{S?_v{2`pRE+uh#h{mNaH8`|M?luF`-#G;!d%{IEyy*o%)iz!ToQ z)5}}G%X5z-_r_=eS8|;eT-60vS~1Uj{AP;=+#B~E!6prOwvT@kZhm@_Q~VMKpIwWI z-pH ztTE5J*0>j^HFBJvFi?~Di(g|ji{INd`?5<1?!~~aYt6G5vqk^*qO0EH)o2`QewSbK zZ|vRU5qDZOoo=kt*y-Q)8#iCQNH5iV&$K{K)f-&V6z*uOcSe4~B5dLpr*cE9p2`pL z>9cO;A+F_&D@?;l9l#A{))TT5HLGgxB|JA9%g>&#DA#%QOx;YmB< zg#-LyAJ@nG&+*x+pON{jmv51P69 z*kwOkY+GCYnp4BC{@xGVXRG=4XS;o@(e&%1D>bMyNFBlnoZ$^?SLe3o9{;Z8I^N7v z5Afz*i%+)j<=Oum)8ez7x2If|+w!{lK^NB3U7XX0d(FMMY6JfHPuFUP^AvWt!@oL? zbI)*%1ALTQaKRzWV55~|6Vq@t&-&iaJojGW42N+#vY+SpH&@edj>fO_<(l8F>JhE- zzw^hMd|`)vI+wCDINI`?cKXWTB8T~j$i(HuW-e``L6iCT4$;lVWS4XE8JY+q|pcN zJBPhPSc7XdT7wPDoSDuVea2xWPhGHTEZ4C5N^VWKvQf%f#LNw(OpnJ*5w&T|*P{!cC*@q$AQH(Jm1fp2{3 zV*{_%19NGjcSHMlHpdnB`ZRMquM|f>~GyAfw zxyPgCnU3?1FL=i}9jDuBp?x&_wB8|2S70*rLm71|5h&JaHvfEl$J>A8YBl@1F4P(dQw4 z^M#h@=N4<(p(FNj1W%gN)Sj@8b7xUM-^aJyHkVI$t~O2GuwTC8(6hbqEjCS@X)pch zr%jr`r}@^lp3mlpzudtoZ0V&vz}`5mv1^_^J=-hYrJeS}qa0?RpRj_bD?gl7{$INPlfFI!?EjPO+53w3 z55B|0`KZCtwY+2tZ@9-ZPHXZR&o%tZ_s;Wb6B}|6A8g|W{`x%Qk-whn({E1N&~F|c z)I8(eJaxf6JMsu-@YC=BH%+|wqX}c4)jk~IBb@b{FW197-ta>=v?UL5hewU=&TyRA zyLUQcc(pg37&n)_d~K~~F^Sb))|t;g`Y%w@Sl#@)5>wR#eJON4d*l> zr_-c)_A<|S`==Z8`DqOu=%;%a!MOSkdwsBvdl=)^yBwa4!(-OOsROy@^MW-vr!&{; zhPBynAIEg#nGgD`u?Ks&7aRZMnx=3_-|*+J`SZO4zwEiTCw-Xf4AJj9HGJQI?-g1< z_u1dO)Aw5V|LMk^1!8ZlnD_!yoX}vo$xnFl5AJb@S6ruubU+*G2HkWn;mIZw`7Qei5FIVLhp5+ye`i>^w4I#knA6T7^BH-NS-T)C=RiKhR%#fF<2He{rrJ;GZt= zJ@cHl)Ej)@yRrIkq+dLme*CKmbO$SI@sDqLZ%^y!$~%aC# z6`vS2-^&9dbyGcsr>j0|e6NG=`;cemvxh7A(u>@zw#$7!i9w@N{_w>dIc}}`Vy;HJ zI8bA7Z_G2T!XHmCVgo*G;zEq{W)A+H0lvdmE$Dk~_}KR_t)C6=GeRuBucGg+@%<&f z&%!vJT(9pe@h;)}8+{KK9DHsPJ0EE`Zt%k&zKMlaksc8SenT zgU|PQYAa86U*GNQJHCA%@2jsow7;Vhzxs@e1^?AG-+9B9x*|u^L1S>VXY~%}np#DR zbjdfd$?0;N&+3+EcvRzYpGI&8J6D_@94U`D=*DaCvfcV2*3=s*2^8Z!p?V2uXo~|PjV1v_T@X?a4Z+##Wrlr(eRE} zef)!+tLK{7#9%%Rvtv&0nATVC@WMa5Is4Tnxlh}2UXD8(_`c5X{au>APt&vS?DSpG z>-PowbA(vnCGR!Q>LC560hqamp9U}ImpE`=uH!@#NADW=#FHz$wDMd{@Ogv=aP3<2 z%$7Q64|}CYIqTfx6C2(a%!MIet9LjTi+u6UB(L?!JDSEzyvc2Rs{xwa_bmU}bCo;& zO$B?)Q?~4Z2lbO*=E@_u>X%P=Hec=Rvj<(81M4)yr*y(L9l)C3v=1-!6h1WJjKZ69 zfNs6N@PQ8ai}&?8Zs)#x8uoVp%%dN%iIsgZ;omcxaK^PhScKzz_fSW~AQmw=`*1e- z#5e6~YJnJ>?c(TcFbDVg<+rAf9koPWI45BuXK9_EY-<_8*!Z97d z&N%GUk8%gsn%v?id|^Q6FoY9q+j1wvj2{Nn&8Y+OXV2et)mU`tHbJq zeeff8c>rHIpyrAn$FxQx`r&{tbK$H8z?MF6k7u>2t3A{P`lFF*zJ2LLU+05)G@+h~ z**g+k5xy(B{+#uonw#P zY6jfIA~*Rd-@V82)q9e9-Lo-sd=8NB#$3gwIWO!br!}@aZ_!YXl-}~CmVevcH<%u}pCr*3VQ=FPSRdeXdvvGaq!bpQN{?!Gwm>%5A zwJ^s)cKPNVFy7T6?~T<2+{rV#@s7^6z2Q$c@?I{{d^rXOWAp+CIMI)|)FN@pZ)g9z z?|fzFf$RB?-`x42hS-O1{J^i;#24|4d*b7n?#$KTBQNEkcR&8|Nq+kL=w}Ijo}^y8 zYWn59Jl622R#-RBbXciHG$8+R?_8i87{CLD`s50~_y=?Nc}MoW<=*ku{`)FdJFjsh zKja0>(>uQ0m5@b^50xJrQt`M@DjWFV4n5-Q?qG^ zhV|PYzO-(Ce$Wj+*jCf%&K_*aB^bfa=bkZ`}&f~o1=ZXECF+G?c=W?C~a4bGC+sC_(d-|3K_%&|6 z_|qOdV5CoTk0a~Ep)Sh-_^QwDVWzn^t{zlJ;b3ojs?GLfPu+Ge&*;xRz0iR7Dtcu@ zPB|}~k={X#^Bq=r#CtynaiwFn-5naV`eALyPJF-pvsg?Yh_J%;960!3dXXeEhmP5XAH+5N=#v-Di|QecX@DNZ4FmP2 v_W}8@{?UPXe8o#=Kd$jy?f0xcR3p6ix!3>5$G-dI_a6Ac6Hk8ssi*%3y~x}> literal 0 HcmV?d00001 From 44e1b9a73456ef25b1ecf96ccf6fb852201cd824 Mon Sep 17 00:00:00 2001 From: icolbert Date: Tue, 1 Aug 2023 16:22:39 -0700 Subject: [PATCH 6/6] Adding test for quantized ESPCN --- .../transformation/test_subpixel_to_deconv.py | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tests/transformation/test_subpixel_to_deconv.py b/tests/transformation/test_subpixel_to_deconv.py index 821bc398..70db533c 100644 --- a/tests/transformation/test_subpixel_to_deconv.py +++ b/tests/transformation/test_subpixel_to_deconv.py @@ -29,7 +29,9 @@ import pytest import numpy as np +import onnx import onnx.helper as oh +import onnx.numpy_helper as nph from onnx import TensorProto from onnx.checker import check_model from pkgutil import get_data @@ -62,6 +64,36 @@ def test_subpixel_to_deconv_float_espcn(): assert np.isclose(expected, produced, atol=1e-4).all(), "Error: expected output does not match the produced output." +def test_subpixel_to_deconv_quant_espcn(): + # get raw quantized model with reference input + raw_i = get_data("qonnx.data", "onnx/bsd300x3-espcn/test_data/input_0.pb") + raw_m = get_data("qonnx.data", "onnx/bsd300x3-espcn/quant_model.onnx") + # create model from the onnx file and infer the shapes + model = ModelWrapper(raw_m) + model = model.transform(InferShapes()) + iname = model.graph.input[0].name + oname = model.graph.output[0].name + ishape = model.get_tensor_shape(iname) + # load the reference input tensor + input_tensor = onnx.load_tensor_from_string(raw_i) + input_tensor = nph.to_array(input_tensor) + assert list(input_tensor.shape) == ishape, "Error: reference input doesn't match loaded model." + input_dict = {iname: input_tensor} + # get the output from the sub-pixel convolution model + output_subpixel_conv = oxe.execute_onnx(model, input_dict)[oname] + # translate the sub-pixel convolution to the deconvolution + new_model = model.transform(SubPixelToDeconvolution()) + new_model = new_model.transform(InferShapes()) + # check that there are no DepthToSpace ops left + op_types = list(map(lambda x: x.op_type, new_model.graph.node)) + assert "DepthToSpace" not in op_types, "Error: the DepthToSpace nodes would be removed." + # get the output from the deconvolution model + output_deconv = oxe.execute_onnx(new_model, input_dict)[oname] + assert np.isclose( + output_deconv, output_subpixel_conv, atol=1 / 255.0, rtol=1 / 255.0 + ).all(), "Error: expected output does not match the produced output." + + def create_subpixel_conv_model( in_channels: int, out_channels: int, input_dim: int, kernel_size: int, upscale_factor: int, bias: bool = False ):