From 0b5bfca7064d7d538fa9d6bcc289b4f6b5341767 Mon Sep 17 00:00:00 2001 From: Andrew Lalis Date: Wed, 27 Jul 2022 11:28:46 +0200 Subject: [PATCH] Added preliminary font rendering implementation. --- client/pom.xml | 9 +++ .../aos2_client/render/GameRenderer.java | 13 ++-- .../{GUIRenderer.java => GuiRenderer.java} | 49 ++++++++++++++- .../aos2_client/render/gui/GuiUtils.java | 17 +++++ .../aos2_client/util/ResourceUtils.java | 59 ++++++++++++++++++ .../resources/text/JetBrainsMono-Regular.ttf | Bin 0 -> 203952 bytes .../java/nl/andrewl/aos_core/FileUtils.java | 26 ++++++++ .../ClientCommunicationHandler.java | 7 +-- 8 files changed, 170 insertions(+), 10 deletions(-) rename client/src/main/java/nl/andrewl/aos2_client/render/gui/{GUIRenderer.java => GuiRenderer.java} (66%) create mode 100644 client/src/main/java/nl/andrewl/aos2_client/render/gui/GuiUtils.java create mode 100644 client/src/main/java/nl/andrewl/aos2_client/util/ResourceUtils.java create mode 100644 client/src/main/resources/text/JetBrainsMono-Regular.ttf diff --git a/client/pom.xml b/client/pom.xml index b0c3bb7..e146b39 100644 --- a/client/pom.xml +++ b/client/pom.xml @@ -164,6 +164,10 @@ org.lwjgl lwjgl-glfw + + org.lwjgl + lwjgl-nanovg + org.lwjgl lwjgl-meshoptimizer @@ -195,6 +199,11 @@ lwjgl-glfw ${lwjgl.natives} + + org.lwjgl + lwjgl-nanovg + ${lwjgl.natives} + org.lwjgl lwjgl-meshoptimizer diff --git a/client/src/main/java/nl/andrewl/aos2_client/render/GameRenderer.java b/client/src/main/java/nl/andrewl/aos2_client/render/GameRenderer.java index 2535468..987113b 100644 --- a/client/src/main/java/nl/andrewl/aos2_client/render/GameRenderer.java +++ b/client/src/main/java/nl/andrewl/aos2_client/render/GameRenderer.java @@ -5,7 +5,7 @@ import nl.andrewl.aos2_client.Client; import nl.andrewl.aos2_client.config.ClientConfig; import nl.andrewl.aos2_client.model.ClientPlayer; import nl.andrewl.aos2_client.render.chunk.ChunkRenderer; -import nl.andrewl.aos2_client.render.gui.GUIRenderer; +import nl.andrewl.aos2_client.render.gui.GuiRenderer; import nl.andrewl.aos2_client.render.gui.GUITexture; import nl.andrewl.aos2_client.render.model.Model; import nl.andrewl.aos_core.model.Team; @@ -39,7 +39,7 @@ public class GameRenderer { private final ClientConfig.DisplayConfig config; private ChunkRenderer chunkRenderer; - private GUIRenderer guiRenderer; + private GuiRenderer guiRenderer; private ModelRenderer modelRenderer; private final Camera camera; private final Client client; @@ -129,7 +129,11 @@ public class GameRenderer { this.chunkRenderer = new ChunkRenderer(); log.debug("Initialized chunk renderer."); - this.guiRenderer = new GUIRenderer(); + try { + this.guiRenderer = new GuiRenderer(); + } catch (IOException e) { + throw new RuntimeException(e); + } crosshairTexture = new GUITexture("gui/crosshair.png"); clipTexture = new GUITexture("gui/clip.png"); bulletTexture = new GUITexture("gui/bullet.png"); @@ -192,7 +196,7 @@ public class GameRenderer { } public void draw() { - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); chunkRenderer.draw(camera, client.getWorld().getChunkMeshesToDraw()); ClientPlayer myPlayer = client.getMyPlayer(); @@ -324,6 +328,7 @@ public class GameRenderer { -0.90f, -0.90f ); + guiRenderer.drawNvg(screenWidth, screenHeight); guiRenderer.end(); glfwSwapBuffers(windowHandle); diff --git a/client/src/main/java/nl/andrewl/aos2_client/render/gui/GUIRenderer.java b/client/src/main/java/nl/andrewl/aos2_client/render/gui/GuiRenderer.java similarity index 66% rename from client/src/main/java/nl/andrewl/aos2_client/render/gui/GUIRenderer.java rename to client/src/main/java/nl/andrewl/aos2_client/render/gui/GuiRenderer.java index 6dba8df..4c2cd13 100644 --- a/client/src/main/java/nl/andrewl/aos2_client/render/gui/GUIRenderer.java +++ b/client/src/main/java/nl/andrewl/aos2_client/render/gui/GuiRenderer.java @@ -1,19 +1,40 @@ package nl.andrewl.aos2_client.render.gui; import nl.andrewl.aos2_client.render.ShaderProgram; +import nl.andrewl.aos2_client.util.ResourceUtils; +import nl.andrewl.aos_core.FileUtils; import org.joml.Matrix4f; import org.lwjgl.BufferUtils; +import org.lwjgl.nanovg.NVGColor; +import org.lwjgl.nanovg.NVGPaint; +import java.io.IOException; +import java.nio.ByteBuffer; import java.nio.FloatBuffer; import java.util.HashMap; import java.util.Map; +import static org.lwjgl.nanovg.NanoVG.*; +import static org.lwjgl.nanovg.NanoVGGL3.*; import static org.lwjgl.opengl.GL46.*; +import static org.lwjgl.system.MemoryUtil.memFree; /** * Manages rendering of 2D GUI components like cross-hairs, inventory stuff, etc. */ -public class GUIRenderer { +public class GuiRenderer { + private final long vgId; + private final int jetbrainsMonoFont; + private final ByteBuffer jetbrainsMonoFontData; + + private static final NVGColor colorA = NVGColor.create(); + private static final NVGColor colorB = NVGColor.create(); + private static final NVGColor colorC = NVGColor.create(); + + private static final NVGPaint paintA = NVGPaint.create(); + private static final NVGPaint paintB = NVGPaint.create(); + private static final NVGPaint paintC = NVGPaint.create(); + private final int vaoId; private final int vboId; private final int vertexCount; @@ -25,7 +46,16 @@ public class GUIRenderer { private final Map textures = new HashMap<>(); - public GUIRenderer() { + public GuiRenderer() throws IOException { + vgId = nvgCreate(NVG_ANTIALIAS); + jetbrainsMonoFontData = FileUtils.readClasspathResourceAsDirectByteBuffer("text/JetBrainsMono-Regular.ttf"); + jetbrainsMonoFont = nvgCreateFontMem( + vgId, + "jetbrains-mono", + jetbrainsMonoFontData, + 0 + ); + vaoId = glGenVertexArrays(); vboId = glGenBuffers(); FloatBuffer buffer = BufferUtils.createFloatBuffer(8); @@ -87,6 +117,17 @@ public class GUIRenderer { glDrawArrays(GL_TRIANGLE_STRIP, 0, vertexCount); } + public void drawNvg(float width, float height) { + nvgBeginFrame(vgId, width, height, width / height); + nvgSave(vgId); + nvgFontSize(vgId, 60f); + nvgFontFaceId(vgId, jetbrainsMonoFont); + nvgTextAlign(vgId, NVG_ALIGN_LEFT | NVG_ALIGN_TOP); + nvgText(vgId, 50, 50, "Hello world!"); + nvgRestore(vgId); + nvgEndFrame(vgId); + } + public void end() { glDisable(GL_BLEND); glEnable(GL_DEPTH_TEST); @@ -96,9 +137,13 @@ public class GUIRenderer { } public void free() { + memFree(jetbrainsMonoFontData); + nvgDelete(vgId); for (var tex : textures.values()) tex.free(); glDeleteBuffers(vboId); glDeleteVertexArrays(vaoId); shaderProgram.free(); } + + } diff --git a/client/src/main/java/nl/andrewl/aos2_client/render/gui/GuiUtils.java b/client/src/main/java/nl/andrewl/aos2_client/render/gui/GuiUtils.java new file mode 100644 index 0000000..c22b480 --- /dev/null +++ b/client/src/main/java/nl/andrewl/aos2_client/render/gui/GuiUtils.java @@ -0,0 +1,17 @@ +package nl.andrewl.aos2_client.render.gui; + +import org.lwjgl.nanovg.NVGColor; + +public class GuiUtils { + public static NVGColor rgba(float r, float g, float b, float a, NVGColor color) { + color.r(r); + color.g(g); + color.b(b); + color.a(a); + return color; + } + + public static boolean isBlack(NVGColor color) { + return color.r() == 0 && color.g() == 0 && color.b() == 0 && color.a() == 0; + } +} diff --git a/client/src/main/java/nl/andrewl/aos2_client/util/ResourceUtils.java b/client/src/main/java/nl/andrewl/aos2_client/util/ResourceUtils.java new file mode 100644 index 0000000..01b90e1 --- /dev/null +++ b/client/src/main/java/nl/andrewl/aos2_client/util/ResourceUtils.java @@ -0,0 +1,59 @@ +package nl.andrewl.aos2_client.util; + +import org.lwjgl.BufferUtils; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.ByteBuffer; +import java.nio.channels.Channels; +import java.nio.channels.ReadableByteChannel; +import java.nio.channels.SeekableByteChannel; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +import static org.lwjgl.BufferUtils.createByteBuffer; +import static org.lwjgl.system.MemoryUtil.memSlice; + +public class ResourceUtils { + public static ByteBuffer ioResourceToByteBuffer(String resource, int bufferSize) throws IOException { + ByteBuffer buffer; + + Path path = Paths.get(resource); + if (Files.isReadable(path)) { + try (SeekableByteChannel fc = Files.newByteChannel(path)) { + buffer = createByteBuffer((int)fc.size() + 1); + while (fc.read(buffer) != -1) { + ; + } + } + } else { + try ( + InputStream source = ResourceUtils.class.getClassLoader().getResourceAsStream(resource); + ReadableByteChannel rbc = Channels.newChannel(source) + ) { + buffer = createByteBuffer(bufferSize); + + while (true) { + int bytes = rbc.read(buffer); + if (bytes == -1) { + break; + } + if (buffer.remaining() == 0) { + buffer = resizeBuffer(buffer, buffer.capacity() * 3 / 2); // 50% + } + } + } + } + + buffer.flip(); + return memSlice(buffer); + } + + private static ByteBuffer resizeBuffer(ByteBuffer buffer, int newCapacity) { + ByteBuffer newBuffer = BufferUtils.createByteBuffer(newCapacity); + buffer.flip(); + newBuffer.put(buffer); + return newBuffer; + } +} diff --git a/client/src/main/resources/text/JetBrainsMono-Regular.ttf b/client/src/main/resources/text/JetBrainsMono-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8da8aa405130e21ec0ed889de44b43ef51bea914 GIT binary patch literal 203952 zcmd443tW`d+V{UsGaLlu3<8dG;3OcL97IG!KvX=0cnAm;5D%FenVOlInVOlImYvMn zW~OCjgPEC`xvk91%*@P8-DqZJmS$#_3jg1AuNg$P?&o>l=Y2n)KlSCeX5H&v_gdGw z)^UcBamH96eko?nAK1GmUU4R)UV(b{%r*!mY~L|3xW#OwrTZ&JjIXR2yYJq4jD_VhmN|XIlu6dO zVJ*kt(n?%^WmL`R@m1~R{frIR%9x+e=*qil5buxY#X~(ukGp47aN(#CjNN{k@jow) z8Ch8!GWt9&@g)38AA^X7Gv?NKU5(e#W5!RKx@UL$9*hZ3#zL~j-7%svr{etr#wzOQ8c+0FmSW9^lG3;>Lw*$1k-|Mf=^)=!hRe{%LCMXs^ zxKCcL--nw^{_5QDqIk#1NnbO5n{K8U)6IM%o4}r;JH--tfjx@23O^qvaaD;DzKEHS z$9z$OoBC+w!&pb2gILDAbcV~7Xb5C~T|x|5krn3R*H*?F8gv=tWu9bZ{2%}N26x4Z zgScvCX5?80I{rVzg1m{LpyURWBiT2{?`qVO`2c(pT4FxqOXGWeVN+J9j3lRVJa6r8#G+F8fL>>VRzpDx0P(+ZWGFz!qk^< z0d#GA6X@EFe3Z)mGHCAS^!i5k{NIWvd%Ek;RR6o7J1?lvL&Q66;7J-?Y7`UFcb4Lw8$|(mm+E4Uaa#iSUB}YP1dA zL-|u#NU59@rf1{>igWt|+0|WMQg_|S&hUfA*X}&1OyoCI7790op5eyb9`5JTGYPt{ zWs`Jd3n~-YlgdZw$=BRt8Re4$=vuBTOl4mTo&!&VdEjyIFmT5|<%)B^{;$%}bIJdR z2te)fEuis*bPXUI9Cbl{I|0zO^?+>tIiTlK81crKO6>?5PE#D#cCElvgx>{s>1#&c zaNkRLQXXWNCjiB}uTlJRK=&0Cwpv8c$ z6Dtt66#6mpzNnv3PiYnb+<)nBDAHd-yI!F*pZy1ZLOQhVU!AX}xpWu8zw7&{%$H!R z`cQ!KQr?$?fE{U$qu%#{YT&kKGQwnYYENowvgtKo^-Zs-50hOJfqP6uzQ#4OG1P0GeWw9Ly0i>RZHM%RztDZuX5=IE9J-gJ)fZRQ=Ms?pl48h z$%bT)rgd=Fjq2xzyx<>3+cX_t==o$%S9y)`4sCAa<5ns+LC>Z1)HkV|?sCz+?*2+) zceyA%)eB>wQ4hQ(ZH}?;p!E~giIku+(`%?vCd838h00`HbE%OprJ-j)sXsOxgHnEI z$A$wg=o*#ne+frF6TUhh3OCP>%5hCR*~|6J<~DG@CObBUo1{0!m8Y)W@6Lym(z~_s zURQk6Ywk3Sc~O4UPe|S1HI1vr*oruJ*!`N)x#MmWHq!1up1_^ftqfyE^LQhU`gpT@ z{w-ZAR~pJA=KAUXt32H0Xs%QSigT;`y5Z;aJlFN>rlE4V(ir7(hnv*jeZ4W?Ci%JJ zZlq1^>`v3Xp4Y@T$@`jeH*LFSWox{j%1-@v7(gF4{0Du?rj3qyD4ROT?i=cBt5@U|GDxtxPtlcL&RZ@tY3}r zUg&!+zQ-K75_}>`{-(K{!uy-0!+ck7#eJ~Tm4gT;AiP}Tp4XeMA1HhY&#w1@z6GrW z4}&jUujzio6PL#$&)*To{LmCif9Z3~_j$PfE5hq>|1(H`H_AB!uTS8$2XsrbH1rHt zUUaWJOlzL{o>yOAf_>?l@oeNxVWVD%Cp*zIiTYb`4Zd058FodT3|}I@aYOz^@h>x0 z9|LeQSYHShfi774jfA#wkqRvbq{KAFuAJ4{5Duk#>G~)z8C2r>eDE28FI3mA?M2la*=#dzAByaQ~8DbM){}+ zPTHm2WcRZB*aPh$_6WPh?y$$$6YZVtS@t}84|{KWANwHtE%qw=Nc&y(Y4+*% zdG>|&#rCJ|&)T1}udu&t-)P@%-)-Mx|IJ}?v~YwwVjN=}lN@h2>Z5JZ(J@P6{t@$H z%xf{9#O#dO74t>R*D)tzevUa4J3jV~*cao1;zHuW;?m>pj9V7>bKIY8L)*?vU2rBbzqrnIZx$}87;7!zsWyu)&eK^DSn<`7U80!(E{(H1-7FF z4j3)Kq`9#LVr06Ugcg{M7FZ}3%a`ODSu1zSuN7B*DpEzOE-GIQP{Y(BwN$N8Yt;s| zNgYrp(E>Bk0?S=35M&LvMp><{7U*d0Y|XajqXj0R1!h`bYixm#CM_`Ew#d~2FB>iJ zrR_&MLkoD?TiE^30^zO}h_k1=TA-(^1%}(J?Gua^m}RuU6Rs9m+1LWVI)ua1)dF`p zo^xD^W@rHx^JL8Om^Cr$j274(vkxusqpJm$H@3h8w7`kDKhOdXxmsX(o%3o72(!@+ z_{9e{Ow{3q#D+c%QyZo?+}$vx0i)B^pZYKAA4lIy5ZwhvI=+-YP1pEIeu5w2-=NQY z%4-_R(3huzTk414cd7gCE8{S}&33=KR{y+%v7U*S|aZ-Lb7l|9LFqSmv>|$E@G?LR_owJ01=AzQeH~BgL+xpB?@5=#HbCkFGwt z{OCelw^2M}bw?2PsQcom&r!TO>R-3I?p0`ux@YQsHxjVAf7We9x_j!j;P*#$AJnae z_OF{?=cvPYNIyr19=*BlaNQpLstzN`;lGZU57$G#JG>9ScOKq+_`}0%k4!!?>F}z< zX@^q}ryLGp?7Kr?_Q9kB7r*uVR(=~Dy(;=y`7bq_ag0QmJNSN4A!jMf3K+IRRk(`K zPjLT+=lZKa6^t>&N^uJBg&At3Q&wfX!=&R}S1{b(I zG}A)UA`^Uua?wAgCC&74(=+;6rsZ_S^a}lkuF;CnO4AyXv+>nh(_Yg7ytQXo3`2P) zUGb=JU%ys8@UEjr(Y0~zSLz-$N6l4Z)$MA$>Wgu?pIV@5#9{TInx#glQEH4DtwyT5 z)jTy$RjAw4Lu!J$L*1!nsz=0kVz_u*j1k9VhPqiiA?_3t#Yh<{ZWRxRGI6^o7ei%h z86l%YrRtCO4kK73v#}VKfjK9K<*}RD05*`7vNBe|rm^XmDIZ`DvxV$Mwt}r@udrG% zS&S1?WVD!TQtWNEn|;B)#yQhz_6s}D{^Ta^$y@M19>gPf8t=q2coxs+y?G_C;-mQ( zey6xgm552wp{m6pQ6cKYkK(BKNtLPrCZUS?6!ECEi&<)*$wv*AR?$!NH<@GyRU}53 zd_`Y=w^%4{5ks)ItYUb#88c`Y-W3jI;mpE1vRKv@vu7d8X9cV$v$Nssc2>zou&L}e z8P2A#CG0V_m_5#3W%u%2ww-NYTi9ppBes+6Vtd&Mc90!r-(w#Bi(O_{*nZxM$MQ&S z;VC>?w!(}&h!^sHyg$E=m9p;ncERFqy_gxRMuIx9~g`HvD*zYWxonyJ|0_)EHVEwsbeYs#g*x#%lm#i1N z$cnfJE9PF@n+@VVYzS}326I1l3-@OwJb>NGgV|6X#>#mp4`IW2IGe=Vvnn3N?&8Vp z9-hi(@Xl-|?}GJ2CY!~(vN=45&F0nl*oA zt=Q-6Zr+j2<=xq%ycc_u-=Tg|KbpKu(&TOOGqo_8)oJyMI;+mBKh!z(vpS_NsNdDE z>NitIQ>tL%8^MJTQkaBU#0U@JDH27JXeS&ZUPOyH(H8GcCkQXmUUU%27_V0G>HG!$ zJYSBr(h97YmhqSPT&$j+=2Q7Sd>X%(&%kQx0X~aA$Y=98d@*MACHx8gB!7xOi}~Ui z{tv#Azl?QOEnmmq;v4uo{9V3@zsEQ8_c43y?6MxS z%hyN3fUqNEX08W=|Cd z-r(ce>wFwr%O@}=uMv-k1>zy`Fg|fGPnD^1QLTokTf|~9R*V;e#V9dabW}steD$y# zDTm8SIYN$>W8^4VA**DyyhZ#X+l$LsvHHnk=_~${N#cxbC&OeP@v}^p-DFpBUR;vi z(uNgnwu}^i%K+I%TClclDTAcHRN{&pAP31{86tCJciBSrll|o|d8;g!gJr3>C{40N zTu^tZDtWiMU)(G16Vt^EnJPQV6xm6pVQnTQmqPZE1+u4PqCwP)v$BWGmw9TMx>wz& zW?W}Po~WkKsH`ggJEO9it*VueJfT|2-&LSIt%Bq)s-^r%`O8zPg*+(t$sd%rJRtYV zJR@vocc}7LZzcCwkRq=Aa%9QmgTK=h8%R?$zIph_2UYTW`@{mX6 zcC1MMCHKgWAnYy$5Ty<9&a+f?Tcgqh|s)~`Hs2tTvex{gg zz)DsqlTu15U#tlNl&Abr{wjZ#$FNQaktgMESp80y_hA)$znm!_khA22SPegdUCG08 zo_t8om5<72*crQ`|_W1o!lU|$Zc|?+=O-X zO6+HriK$|mxLe#Kz7qSzmtvpTE51gb!B0D-=T!NDR{E{(!7mK)^syK<2P!EN|Br>5 zG-^DQR-iy(rbe$bP{W~~8r2WlLZcQy>4`wqKz%jhFw{?@9)z~ks98{djT!-^&j7dB`Q7gX;8&=XMI zd%4Jg_I5${7rG#u^l>o&+SkQEDES;czZ6h9q5{xLl9&eQo?q-Z9j1}g=HwGV%!O8Huv)~2?OePK ztpX#!Zcy#wYbdoh@hzbKFdCc&a838>!!Zh}&K1MUf>@&VogIvz|wnEKWo z8cyw1qv2^#^0|pf(+PT)hG#)1X*jhl)gN$bH>&g92veP=f_o6AvQirWPWj!d5tJXb z2T)|=`!s^`o}rNr==~Z+_E@eFhoICpKvY0iXha?KC5`wIx>6&KLSNR1pP;KW%H6JL zTSY$dipC_MuWA(e%^D4-`n{$Rk3wJ9NIUcmjhF>pt5M`hLR5fX@#x> zZ=o*a%j-2JYP+{JvIBI3Mv+gyqY>mQ8#N|h=(`%x7rIHq(H>YI83^+2%^GnF^nHyO z0^Oo9PUt>B7+^nPd=`>zg_58A(}jR;bKwpB&_x*ZBNzVAk6na9x4Q_3e&WIc-Ql7m z^ivnH(48*YLO*lS9=gj#A@p+>OTa-Fk3qi!S5U64JFyC8f2;DT&+!Ufrh`T#-oKIww4|Kx(od&&is@n;wGoYNW(!9G^= z7xY(f23!VbU67rA)9_Z%a~d8C{awQ&q31Q6+Wij=Pk~<0@M!3t8cF$F)bN|2^lZQf zLI2ip@_|bLW#QC!u4p*5SG|U(LmM>MpBl>?qfWsHBS4T3VvlJ+Yai@04XB@C|7k#L z3mQ+2G4)fZSwm|D>_-jA?`WJg#@aSeFAez`cB=-=3T>ewzrzmJfYuoteV8Dh#g5j1 z)(+U=8jufSmuo<42<&zZ$RBAOH^%Z*Xpn~59J^ryT2o*@Y(T!rLp8J(z;4-qdzT_L2C_8bq3@|&prN$`_I4U- z^CS(eO|aK9ApgQyfdQ>AaDJd6zaV=7TCNb z*^=4@(0Yg8?1KD=YzJtq!3VgYb|BjUV?8ktVS?;Uwga?Yz}{R#b|u>ZHWNyAA;_*| z3qWfM?BO+J`!Wri1tq%>WN)f7U~`~k7a|8xJpr2y9qxkKp+dtRgjTx9hEhENTL2y5 zg6vwYVUIvZx**$+(y;l^(JrWc#%S1b=xr|OnPWBVdFbsfsI22OY!P(43u>PU8ukz9 z9WJOIH5#@IdZ!Dr!9)#v0ZMH{kPWC^0j;z6WEWJYDH>Wg(fY%H$~aX+Ybbt?hSolO znhSc)y&75v@#!w;IrnL3oy2FjpmN;rg8ce14Nl^iabAyl<4lh6$2H;y=yNW7p=3uu zYhnJPi+Jdp8vJbu<4zawC;qvH{&s}#*3cS?@6pg)#P_;r4c+I0`oVq|#n1yT$oCJr zD1shxLB4-NLwhoui5bv*%TH;HHTTa56CJ>L4ejUn9~zpg`DG35b@>$yt($ng##pa6 zAWU?`nlD_#=0b4~LF0&s(9mDmh)4~M2ZHVaw9XYN8uBU8Nkj9bDAmyVLcFU{KS4KX z6zV57YZU4&wu4V_^xy&gRHIHpVK>4A`-^WiCJBWN36nSUJB`T?3VRZ!7SO{Q6P4$8 zjiS2zsZk5{v4`Z?3!Fw+XcTNN@eHXD4;xF|PpETHl#fuTm-N&qw2wsj2z3F9G7$>T zlqd(G&@R$Pqke<7)F_li25QtrDC|tAzn~6{`WqSp;HT;mG#z9hjP{f0CldWo9fzWi z5M(boTVp~y$vGNRDs-*}Rb}!ajrayS56s8Cu!UTp5vac;8$E`26LgVAP+1lO>OW{B z`4V^)VJh<)@EX#Son8lP5l)1{R|r9Ma%u$XBWuB@h$oxv)QD*4XBrU)-K7z2q3~lu z#6ov#L;~~+jX)d7uL1g=Xb+{j0g((FQ9A=Z6AA+md=(UJP0-k*P-lX_07ab%{ydc0 z-xJ~GP&`ASyfm&TYFofz1BLb_IBcx^G&ClumKy#v)E@*P%~WVG2tgQarb0mk!Vf^H z{b47L_EE5fg1tHHtx#uzFM+}?1b+ewJ1W?QKM92`6zt8Pg(hkEGthP#{tqbG0=D5R zp&dX9!e|o(|4?ZNZ-BzbR3^gjLc4%Ggg=1hgB}Qf3N6rZw2$hk;b=G23-m@Bw38|X zeGvW<+E+tkC!HG-9BrfegPRdXzok7n!8bySHT(#4poXu94${#0O8aVpe+?Z1N)SE( zEd^x=e+9i&!@q-;YxoxEFb&@U9j@VDKo@Cf{!wIiz~6>GuHmbpWOu;-1zoD)uRx#E z@H*%U4Sy9%{sH(==vob51ASA&k3p#o0DlcytKr{6sXYLH9r})jABS$z@He3EY4{IN zsz2cLoNqNWx6pV>&|F7jF+uZ;_bCmH*%tH-f~|tW7YSOMSY~PHti|%6hSoKf*%~@) zvCPrXy2kQ?hCKvbu3-Vt7d3QFV1a!II@`5SzJSgNEbvQ$&Xp~cFQBst3zZ4bxv~Xq zK+ySw1$HOsjM)NP6LeN#fqe-&Z??du1f5%0U`K+^sV%S_!L~wSFM=s3Y(&smiv?{$ zFf$bGLeN=@Wu1n3K;P2Pxr+rpO3)d(1%5-&8H@#ONYMGZ1?@=C`Hh910q{;1v(Rfm z`+EyL1K`~)W}$om?d>g;7r;AS%<{g5_VgC`G(l&^7P1$hvj@vo4V@WV$XbX_L-Lb z8a4*{jfVD|mIE3(Z?$}@;a2ED4VwV{PDA@k%OMS&n_95OAZUMSAzK4FL$#1y0PQs` zbs9DiO7;b`@3fFj0iDHKzSq#6)pA_Jo`8}c0NVdpPH5PZ&>uCl2eO>hu&1FvX=wjr zIi+FGLVwoK9>{W9!6ljh3hoKgYmT1hjeuX;U^jy1Mq7x6*7UYejT#D# z(9jy+273@R_u60+LZm^HH8hvnax`)vbiPKBqCE(Ovf37DKC6+{&=)ikHn%O;$lIYWX(W8o_A*$Fd(jp) z_%R{T*0xVI5^Z4n66{0#olx{U8|+GJZkWSBqOaMxM*IR58rdEyHR3YVq>-^uPmMr7 zuzP8wAGC!=7DIhB(ickCfcOjAQX`X~{u*%x8laKwpn)1021WZ4vW z8u2$2enUvIAN+=pZJ;AHlI$@-Lwhy*9U9uh+2J3A41&Tx2uW=+QA2x3`&}Aw1v*V5 zyFjOFB-vw@Mh<{JsF75s*_NDg48hJAm{m8xq>H9&^ zhX^?gihg8&8e#N(JNgSD(ckUQX=E96g+`LSS8C*7=*t>e3f-uoy|I0}MixPLYs7ER zJsR-`l-d=Di%{}cAWhJ-8d(CRdw{sW@aJY41^YSBj|hc!a=@m9yc>%933WddeToqG zLeZxPaUT>uL;=d zAQZ|HgSH^#?@*;tsB;Y3g^;JAXcvOc6k^aOg!~1HHX-QjAqH(i$e*BS6N1hmV$ddp zJOxF&5OkIigLWb0K`7dVko%yN7mz3*OnKeP)W4?wAWK<9K6m3Mv zuc2roLS;eGMuhwhYS*ZaP=`idfJSTRY$hf~qq3o~8kGQz)5x!&@fy_y+EydKg;F}8 zIzXuoK>h)x@&QF{MYaI)A~ac}s2=S#@*61K59F6nvI|gD4=Oj1m!M={AisyEYUrFP zCQT#%f~IQ}*`||5(Q`61bgmTBS)<4{nHqT+N_7MB43z8$6tz!RjrEk#*4i8ijrpbF)Ssg%)Y#cIW_&+zBn#$bUfxYUCd1AdUPOI#?r* zK!<4L7tmWY@*`-8Mp65eYUsQ#rc5J0h2E-B)Sl%UMgBNcBX>ZDX%yLYxJFTXR%qns z&`OP>cBs-QYX1=$xeHpYk%yrpHF7s}ltz9C9j#I1YhyGj26~%DegYk}UK<@xG@E;DnQ=?4Ki5i6)V(!u?37w=-zR<}U6%3uCQ324qHOdn@ zRU?0d-lLJfLZ@lu&(M1{@)&fwM)^VS)2I;W42?Vqy^Dob1AP+w z1M!r{a_}O;tDtMZYY4vrU8kY5`tC|AbOrKvH?>HIP)6Z5m1Uk&gmNaUW?U zmFr`Tq_S)W@KgB`bf-qX4Be%XWT)L4346s*zXfs`bRYN{;TNDMG;#%${0Y88?~TNq z(a7iV@lW_Uq2NogcWBi2P&^|Rd8-0^EHp@?dO<@pbhaKBrlIroIE)blowLVH&uREMQ%GMPjXr-MzwQ_B!|sm zYv+_n*6O!pa0tuIa|Y#ED=KnpMQ~njZH&xwio8Kntxg{Y0(q6yPE|B@9sY;|**I+@ zqihtr&M$=LMp+Sb~fbt<_fN z)*`2hEn64Qee-&Z=;1W?D6u(ZOlk40B}g1Ozr^Y+Dne9FX{6PeL7|M&QfsYFjS|Hp z%Js_X>_FE$P|B@EC01Btex=pvT~tzm7%N@#rcgSC(kmh>N=r*4VJ)Xm-UufvE^)Fx zl-P#Xk$s#N3R(J8ZuDm(D8)t-t12z6t}J!(#L`k%4N9%msE;GJw4KwGWbI*fs+daD z$s@0*#OdM4b$U8-(E_-oqMg%hm>ZU`R@Zt|pME<{6+K2cO$jz!%(Kq7 z&d0NAJD6f%p#dcoMUj=or6rD1TdCEVGq42LBFQeUqO@~*BssnE64x=Io7odD9k~v; zizBzvDXK;}`3Mxm>56K)q()yuVid7*A%9~SBN=Yj6jnaB2t@H9@c|CFyY>kf7 zBI#O3^3l2QL=+(pRj;u2nD3~hMm3DhBB?=~)<_i6T}m{qqcUGV!uJNZJEL(IZf>kv z)0_Or{~ft+`QmFbd!UIT9k$X0IC0CQS|NHkt1I){IsKDR1*_HBGOv(oh5%Z~=})hU z@yg$5uK;A^Zy3c28;n4~odJ0j*7+4yX8_FB&Ka20XHZG4s?INscKVKVOl{{3O6oJ9 zq|ZPd8EHd&kP#o8RLcVM2A9+Z2Ie_=Wv(+Ik-8jQE4Q{K{qn~zCl5ti$e5y%TIz=| zSMGeYFdpllU~}L$cNqRa*Xb7YWV%|4n)F2Zdm{GQ#=1chVwwqZz{q({mc5R1ZuG*C zBv#8rk3l8QKu4~%htm)4=j(vWNwtbJGO5-?8kJOQCT*Qm>p^Nss`VsolT_1I#T;2YlSns z!iqtUSCCIsLY>LvvmKJ0?Gv5t(I0O@SLg|ky>5qeRAxA6VE>OP;EwH_9ou2sk z9_PF%q1MDhdX!*Lq*hF6VxAkNNlmh*86{6cZaSYH|2|A$^toS9L9;5;N47S6=j73vH_GKJwZ#z^5vPQn8VoedHxir#xW6;L)Q36Lnh0~1IzP7ufXYoWm zE2+GSYIHtKsu=84US%Z06{Q#-n%`52qG9}Z6jWwJI`D)7)DvPn1^Hd)At(q9$z}{9 zXbck^4l_uzk|4)Qnysi162Dy|>D6b!S+d-=u%ZN}SeGpvSuj)A#!F6b3?^1$>;wH8MHcFu0@ zry16FHCF{KaGF=y-NZQ|qvd(Bn% zy-o9Len(!CGc&Pi0{2bs2j(X^yClws`;m{$M^C>|+0dZL&JHMI52MQD#Z+4FJJ8dT(ereL3X*EQG1rjy8=n6^bLpPfbFlvtFD84_IF{weh_p5F7h9>ToINoB zXC}I>(hIM;B-*IW$S$thG@76{Oc0{GJys{^;X%pHboBDV8^rfPc04%9*$HX-COJDp z`jHiTz}(gXOu}w!^-m&)cJ_mrZ%)GQs{nx_1ULl-B(38{OfdpR%s@)h6PE^28VU@i zG!z&@X((_@5?1;w51|r-Ft;OAn)DXeab*bUxLYY5r>o_Z&Ik>qbVg_xr87dq>6tx{ ztb(3Nfl7KN1*+(o6c|BidLd9vX(%v~(okR&rJ=xRqg?q2jWNnaq1%jdQE04DE(+al zl#4>+jB-(EyiqO+O)$zup*vvXti}ecFGCC!5=Hk^|m}?QFG?R3Y z(o8ne&;?2}1vhtX%=K>Lm2t;Z9i%(%(LqW+4f%A{S>CIIlwi6JQiA)CHoGyu8OAFk zzx#ENlF!sZO8x-u%+~qM(m_h_pbk=k*+|>1F~2#+Dbuoz zt2u|6SPLWz$lbzn8vmoXcbUYTUK`El4Zv<;UJ1Rf&aaK9*Bd>Vj$rwvk+pFYwaIfP z<0@y~h(Sh5T%eyEpCZvqWSHa45hjyg!baXO$EhC0M4tbasoKo)^J(GmKlmwQWvmF_ zt#%MQ@mTDh`-E*h=fEBQAtQ+sr@Hp?$Fb}Vc z*D{+wDSPopP|A*MESth+v4!jfwuWtB+t_Y)key%`xZr;Hwv1Tbk!R!kC5GTT2X^p% zB3M|(1hGME6T4-Jtd=$M6?s-(#y15`#9yS(S5Fz=6to53nX+FU!*?hAZ8DnzO%_vv zX#u{uWTk1hIl>%k?r6?77n+BdtIP|`yUYhXgomF;gh#ALM~`feLXROHRUQ*Oc6jXb z^zjV$?BzMgbE4-A&qbcgJlA?2@v?dqdkym%>ovt|gV#21YeXh8qzSu&w@NW^-BECgxi<}ngeBymleR6!x`o{WJ_&R;h`d;?)^b7VI z=Qq`Fc1vr^q?Q>iXSdwf@`8W7f2#lE{xA6N_CM%~F=UJuw97#wH~ObRRsToJf7a8uy+z`a5KK{-KvgGz#`gKC1N2h9sw60|&MSI~i= z<3VSG#|BRco)x?>_=Vs#!5f0N1@8_%7N!aqR*TXi3=Z6=Cmxq7UD!J7w5z!G-BW6b|idYu$O2qnzk0SO&9Evy@aXyko z`b36DMn`stTpzhL%0DVMYJJq!s9jM9qK-$Mjk?@AwRKkO{;kVe&uqP*^)szkwsyAO z+ce#%kq z*y7mf*dJXMy)`Bw=JA*#F{ffK#ERJR*fFt_;{4;H;^O0`$E}Dv7;lLm6JHm9x@}b3 z__nESbK3T8Thewy+u3cGwsp4M+;&IXeF^r2#JP!&C+FuVqo7HYhyY1~x zv^$p^pFAeHCV6`DmiE!@hqSM1Keqjp_M6&oYrnJo-uCC)U+$nf_;kqZP|)Fp4y!sG zy2f0=|?)HcbeO2Ri|~GPG-bsbjZlcn3i#@b6{sn=f0gwIxp*dEYmwPFf%nX zD>FZHROW=tX_>n-_jmE@lG&xY%TrzUW_f1iX3g$u?poNjxa+X4&aRug?&!KNJ0g2- z_V#WO-FkJK(QR$F4c*S=bj-=kDb87*^Gc30XJgK(oO3yUcNg7@yO(vZ>OQ~wcX1B>4n=0clJr@Q`KihU;n;K`tI(R&~H$`CH;=~5AHvq|JMHX zH&3{EOOba`L{UOfW>H~LS<%>{X+`skmKLokIz1qCK*@j=1NIc#i^mnO85lUQeBji9 zX9o=#%mxytevPndjeie*a1lu=V=Oqn}n^W715*WA5fs?XHusl%qeKK0N&CHKs{XUjb&rm<=E zY5CKZPdj^W#=Z0IJvH5b`uh8(&d8au^Zw%d7u{b!bHU8r4`e;C=z$Zn?6VSP70g;P zYwN7~2csU$dT`={YaTp3Tg*h{=E}OgWA@7H(9~$@2 zqKDQzwBw;u51o6cexCQd6%SWGyx`&O^8@Ekf5hjJ;77_IS+O8+fn`C$g7gL13knwu zSulOUfk#6hwLF^t=#WPjJi7ML6AKd-j$625;r7QiK6Y+V;iB@zY;oD*t&iIuU-bCS zC(KXuePZDg+m@&$g-hly`Sr=1C$~Pi>#5YIW<9mz>ApI-Cy{%7K!$$VznGY6jy ze>Umasn2d+%9d6wow4+prR$dNT6*F+_FTkssn7L)ZtQcjo?H6dy61L1cVZb^7O^aK zS^s5Ymd#qWY}w{zC!RMyANzdH^W&ah@WQ$m@vr@?C|a>}#mSdqU)s7dbLG^P3s%0e z^7PB<<>Z%pyeH_zzf%3m(pR>>YJN5I)d{aIdG+*~j%%i@S+Qo zP5YbKZ`QoI=FN}ZJmvIpCOeCqW1Y`9w>nSOM%DJJom9K3c5m(FbxG?g)-71KaozE^ z0^jQO)|j{Ez2$uC;9KX{N373UKWzQ9^-rzey#DXEbKf5J_M*3UzI}Xyc|+2M{u^pG z%-^tS!?Aa~-^qSw>^o1rv*Vrf8!a3AZ=AJp?ZyM|ig!D{Tk`JgcUQf;_uccGqBj+8 znzHGcO&@JK@m|Dx1@BFKZ|!?^n}av!ZXUb&@y**dpL##={Xy@~eShQoTetXav2Gc+ zW#N{UTefaFwB_Ol5g&B?VB6Nht<(PL`OhWW!naM|wsqUV559eOk+xXeR&o1xs*%h@b zbyweAgLXMTFWhbYBL9oJJ)wJw_pIAb=C;znmIrGoIFJ@kxcJahtegB&A*M`4C z|DN>shD&~zre0cdY2&2>moC$PSe}<*M_G@xvBanSz1U4T$zIq}2;LV-L39;YX2tf5h&2mjdtJHm_G8F^iMR#M^HTZQA3*O4L=HH zZP>^h?c@n@=dGpeD*H#~L^Y-m`0GbG zqDeyDzck06vG6eD9vW(k2?+4?iqsBhHira8?6GO7>7APUV}Q+KX_eK#Q=YAD zbI*)y7ZMtkl@=eF-ezl4CvB|zvBo-vUsLz1wx#a?r@CA4D-(5ZiML?7tTFngcC$FnB3YN53=C%&WlS?sE@@ITXhf^T8Co{ki&dK8 zvEA@hjI337XmCs47T%s_7Re($yh0OAX!d~AbSj<$C9<1C0^klPRZ6g#cc`8;sk&-X zS@$ko^76WL>0UO;yQYd4R@K~DnVpxLUH^7=US4+PoiG_}Xq3mWVWi83qpuquDqvNk z{Aot{li8Cw-d^0p6vw%T+uPHbRAwd3Gnv_>%%&L(U(w-#KVw%)RKn>|FO$iml6iP^ z>xaxdhkJ2P&#s>61gY1(klEf25RubzEWT~Cx%pbj;OGeZ zP1mzw2-&L9woddXZQB6DhJuw-=YfB=U?D6n2j9Nk=#N4eQ=0b2kRbf4iY=J8&E)pQ zP&BjI?1-Z(29PI~zu$9o=gy;hju?^Kr%&z(aWK6qul{h}i1ebuT<++O52nzgyj{<0 z$y&2cIjL}X5ByV&oQ+0vh~a1$ql3!fo?Ob#68*DvRAfY}ut4ggezt%BFPioO9BD>> z__s1pr!6lozP2Re#_^l`@SJAFIg2g;yBPI1e9ngQd6&A!PAU>o?{Jq9}tn<%x$74S9YJvIXz#UKJGUjO=Zuq>Nf?LJM5S{dUE>LGuT#~ zb2ssgtF~_Csx#(Zqt0HeZIdcA`mc#A)mfptW0CDe#Wj0HG%4!@|-KK z-;8uk=C3v^I|u7%e7C%y;T|)X*_c_IPGA^i^aMu3N#hjOhPUzjPg7VL1{#db|2B;+ z`SsuCvHbk(vf|e(?}Tlx&SRZX&a3O|=JD?Jb@O=l`nGwzdwpBd;7{`&{7UC<7Z}AF zpG*F%5qDl<@5{3qO6X{7z5jD{eWPpTSFq%r7_;UUud4c zd%vLLX&ln|xc3V>p2i^^ulEbERYRI#t4LO*$05hR8SHu^kQH5wMxGlazR}pz#K_IZ z9+%NqTpf4Z_W!qWN7v=54fXn;vvv&^jJgD{jydfaeRDAvGqIY%A0;V;HH8qY(&Qck z{Cs^{cw%wL0yqX5y@XBCi&k<3ENr;nZBxs7=H&GJoX6ecJ!Mp0@7{TQL-Cc1qcAm6 zU&Hf6Yr`k7<2UB4B~WgxCpy6Yd|11j1P_igfxb8FaX!o^AP_x4&(i2`K`AoGAsqqb zW#d*!rNQkb0M_MOTqEm zch&!Zj>{Rc5k9aU`{w-Q6LZ+mxVWkw!zW#I_)yZ0f&+ zN!~K`h(Pj#R~~ECdq6Z_dL>re8Qyz94E@VLu(feUWwakcP3D{C@$Px0tihkow9qz2 zdUe_5LuCzpjkB&+3~S7mW)qx;_azT9+5+nke5M?oNa1U<$)j4a@X&y88_m>ur(={D zgQ%+p*wdWto|b(XMZZN?qh{#(;;yNpN|zn=`L0#(;%MIQN?Hkx>AJksw{<<-dwZG( z8P*!USTUhjUEP|RP&QUcLp%1SE&VtP4fcy{8Hv5AFZXqKY}eitojT67Rnc2io>Vn) zVinP)TemKmIXSMK=^a(|Z&%d}$iutNv^lNcke!FJ8D%hRTyc$!o5#E7fadY;Ie_Bz z*_6)5eKu8sH7EW;0d=Q%S_{+MO>1GO>-kZ}+E(A^KAWQaVw=Rf&!+VA>C8%}cb`q^ zc(SpMch5n_^Nlryj(5*BI=#DG9wzr(qvL6=(dmu320e@717!kslMY&yd0_^ z#Dj}D7>iwtGBfsfjU#ecC})r#+DXaCp+u-R!!pl8{65#6x^hJnXy;U_H>`=m0+(xzTX<(vQn*QX&Y^o^%({x7;R7- zV$jZ=j%m6w>=G!qc$ys$PF&SIl2iER?2BK&+jOsq9;?OqF~cA~Sqs~yL~ z!@XIM*LITZ-6*V-0=gTCioz3H>G_~dkb)PU`1yb zqnkjrZ5VO+oF<9Tw%4X9%?Y-&#;JnC;)ra8Cx*lZ#(HAl4eR8pa9F1l?Pv~roJUYV z5S?fRQLSaDqi@*6s`3ompn`yjRf9XV?NZmKXJ*c{F5M1VPO6M{+b-Ax?8u?pd zZ;@I5A%FCyyeogAzHRGg#2fx%)YWKzT1Z^GH^5&v!C!RyyT`tG^rvpF_WxeDzjq6~ z&(MnFpCRlUnL{tUT5(UjD0MC3@Xi7LDG?LSJn0M%r@T1CYvC!(W>)FpEsU`ef1N?* z%y1`VUS95$#^|bV!oJgeOTQL49&^7S2TQr;R!r46P?OSqg5%n-c6Qx{T>*{I`0P@f zt8N!g`vE$AZRzKWP7n9ER981U1^+05L$&d-X2PjxKIx^?_| zuDW;1$U*&z@Odsj_)ieCv5cIwKnx0412r3l@#Jp(sG?m(f9%m%R75aNjA*YGuT}vk@We+P2`UMk{aA$h+?zIr8qzw8_WF1YrGZd~y}fshT{ws(x!;b*q2=UD%c9 zWcTi!UB9&}P6W06ZLmL`kEi5x@Zv&I`Hc6z=uFVn3fS7aPR3oQ;(h^PI2SkUqOIa# ztehJSQ+}*_ReHbNXU8s>JTD_ZKVzOam^Q3i;n?8%tvtPcCx57CW|soYtJMBBqd(pU zD_rf5&Ewr`Ct81_yy&M!`o^_WFZ5G?*g4KPOIIe2rkx32f>mdr8nP0-16_pHD~)IA zQFO*1WNbv@c$|C6b8SRYW8?6q9^O!Ca$zU=BiIvuWZ1vakI3($&>yVSTO&LKH=#S|Bb(c0z z?s*DjgaWi?gR6KblmGtYMMzH9i72eb3?@s3eVRsDwHcl9agK5JI@0+gZ? z^<&u0gV}N{bhd?WW#&AipK_0{(NR$k z;~Y!Ud!!ltJh|&EtI0ctUi6Nk@s5Q149OADuy`@$y?8N?>%&8fi|bGIssGmKcSbpl ze)lk*>3+Wf&qn{E^0#7lCrT!V=XkZNzHKCj6E6taiPZdZ?Q7e z$uNN8UppPqJhd4Mzm|AxE7mI57LSt$?Jm09uHMk-Eu9SW_!w_K4K}(+D{U)>ez(bZ zKdJ}$c&ElO(Wq0SFKeGUh(C+N-j_~`T<0*Z4I5{EzJ^QS6vpH}g-vn2d59e_PGOQp zjVtTYH7l#^cJDhYMc|cR$y-UQYVcemf5Vmw4O_ZD$Iv|9y(eoP@9v8_p4MJEANQW9 z4CilppKQc8?gg6XxY1_GF#1gFr<9p!Kc zX6kE!Xru(dO9waec)7)JIW|hB1o!iH4$_%dhHtg}x(bqUk$=R)k54at)IV1Cu0w zn-XcenEC|*M#l1EWRHfTLqb7R(aFV>ha4sCUUM7iI5s8~7iQYhQ>1IMCMK84d}pM%89$>JcbFzb|c86&j7cETa4(+8@ndLG&{=w}f2J zqCP*##IFo21`841A`m;kgE<1RQyOgojsigVhi}YWkz&>9Y$?ZQ9|t^`*0du#d%B6e zvEm^fmJ2@E1^N|9o}eoan=$Yvuxb_S(y;y_smPk6VqI~S$KK*nghP>X!M5#w2-vbw z*Ebu`nPge7Yn|ABIH1GkW7PEm!}*nC&~6`e$OUnK!NJP<@WTK_fjcae|$*6K}8_E>+1 zcf0UzAKslRxq>BlwGw-EY$Q{q)SL_fUB*#cv97*6dvkKCET<)ZV)kWbWj~1gB-dp! zxpLtq=8wEi>z3EgY4?Q$+N~|uXeY{vcH(}Gb}rycXlJxsTjy)*(bl;rr*$ss(bl;r zr*$jJ`MQm^GxlC>o=<{4KrUg{1ICMaPUJyH)ZH0kg95)fZCb+imthqnssapgs8NVUMpr;41px8|j3%UW`AA^O%sMl*XV2sVoy~PU zrm((swsr2%4rbWd5S;izbyJsRdSrBmzoDhVSu@~W+!ncE$rl(5HjFh?*7!g>-e<)M zT0BCu)BT=w&vnY*A|H`x`DNPu`sQdk_Qz;FUhI#!AN6hYoIm;;WJ%?|XnidS<)@?N ztqJ9^_P)76`5UovoW*-xw4SzT`TFgRf6f#4TzmAnx8=&X_IAX|(T`YrI}^&y+WU2{ zM9WE@sEd|!dPV6Q>)&fKY$?(5*696jN9!S3{CCmvKT|nm^lr$I^>Q7M!e;3ef$&($ zn8^$w+(cMW5`AGK*>JfTR>7i%xS4A~A`k4JoH(>2Ti59&0Gsn}8NSx@Sr3K({4 znn3qDkWp-vhg;nyZ_=9!GIeL3G7bvPumyT4%**kR<^Zu;9G^ z0&=Q;iX~plIhImEmGD`FCq&$;iW{%K=(zkbe!P_AX!)P`coFXTHh6NK)F^dGo1`xW zEm_z;YMBv(C1jsQLE|Hm$zU{^j#wB=VFnY_tt2o~VT$PU0O7!YTU>d9T_}k zFd0vLpy#H8-asefXuCT%1va&{_?oIJ%Diq@NpV4*%}Oi^7+oW4OjlVH0TbX+G3^a- zonTdf>!SXDpuNWn;LfJ9GdtnOoP*(>2LeM|2R8Q>xF&}>yiNH~Sn}%KeWU;3E-LX% zhPvGixhN{~U-MD7qqy{MOUgDCJ6)EMU`JqR^EPK;*JvI*TikiuH{ZPEu8Dnzua~E~ z+7o%W#=Yb!>L_$#X<#jJT613YtjhBi`I?!*7|{NdDLJJBk6IL**Q#v*g_z3FSXA() z8&ETco#EvmxV~e}bx5bJ>P;%d1DHL_&ZNS8yEDs~mckvwGg+nzvwL0K7kWZ(8p0ZsYuA+-E^*0*G8Rn8p_RJkq!b*2b`@leZOE>-` zf0$E?7oNYv*V-GnBhc5@wBvlDJ8uuC`wvyR3!CNI@;Awcg}0x4I_uy{`Pch&qF?_< zpU$`%G@R*NKAjtp$fZF`&#OM2Q|l0HjwNDB2ez)IUp$VqmR@fVy`uD`y++XYRZd5l z=+4eW=e5UF4I=bG0lejl6HK9wwuUheXt$t|&Yojh^go~@YM ziX09zW2mGh7;M4ZwjA2^>A6Dz-xa4iaobBNnW>7M%_#3LZz5v&x>CoMbkVKBz84+8<~MW;cRc zdEs2(ZOn#qfq+{1q7-e%lC138*Xo<=s%lS4)s+-U8ULuqZDV_?zS? z&h_MZ$nuhG(dFoK@OlMq@7a~i*JxzeEZ=YVB4JD9)X4PoNb4YAc?_XpFu%d?Z>Vo+ zkv+@HD?d88^Y3R4s^jPjjP-V$?&#$|1dho2T!3_M*FKtSkx3#EvWi>JV6>F62g0!x zfiBFv1azzAEIFclgZtKz9)iUrYP(&96-5`f52NqEpFbQs_l;1%wN7L~W-=k5I5 z*1#C%?dLuh-n9#JcdVo(5NK)b?8MwXkI&tX;mOJ2m8Zn~4F?ALg5h8v`c3Os0bk3- zK11G$6h)*{;B7BqWun92s|0U=0g+u?g-@AOQk0*UokbFl#U$mj+~|x|r!2M&M~pQq z+BVCox)*%Dg>L+eJkZnG6f}m-7yUHS9q8<_0Q@}_+||^yE4bk6?svQUx3J;D?ty{s zC_hm+zkX5W*VrdjJ`-R5mTI@={ffK)%?--mh$}zLWo%x*zAai_2~R|lfvKEy3GV-( zi+|1$_gs7Qxwql}K)QseuOqHp;j+0X?@TBse#y%rn+v*9obwPSQj00oV)3TG1Qf=4~>` zWbfzuHlHRy!JvW8o538oxxf0XM+~@TfM@sFj}kHl>v2_u*Hh}ug#{|Z%I*Jd<|h4< z7KFgZ1Ru~Q7;XJ=AX#*#UF7d=w=5hzy0Ca8@=#ajQd(Hw;7#YUbmaH%1OlC1z|LxY zN9Rt>9X&cnQ*Lu*(3T>60pw&p^P==58ClThPbz&leui~p2cp#*+|cgO4QM{j?m!MD z`FUAI*+uE8$p}^f--A=h8oPthl_+>c%?=|SfxT&A^MzB37sBq)@uyDM9eBh0xA1Pj z>QIPwWBeE-cS+6$56>XaBzXG)$i;?3aXqRnoWt~nG2EOX0o-uFUaX<+pds05TuwV@ zIWM0+J+bN2pAP=~=j@(|x$fbKwz-K2^eN1d5%}+tOjj;_=+R7rOx6LxGfU8I+VgN0 zB<%|XIboK-Piu}gKlo|o2eFZ8w_QzL%#p-%G-@Divz`J9ylvdzEk;w4Ilu)GTp-Z{Y&nKB|CQ=;qey->5yn zF=Ku9s(m(MzYrMK+V{Vv>foZB__F8+yzpZE;Cxw>|C!49e(j_8z$@M@Jv#i572Yz{ zN%U?boahm3 zw(fgi$Ac?Pax#;W-O28fqQd-`D-DpuB$h;?4ass~Fx*WAvK{wq2De#*i?DWw$K${! z@)thzKa4qH%O7KenJN@ohoBKdE#b0MB}w<|Z?!bMqhg+@$h{ zad(R34mu(5a4re11bLVP!H7e}-zo5nwjtIGep%djt$Jm<20j(&UuDzB&s*Nw+sPi8 zSozDs5!{Y>fqLa;;vee!-jK!nDDI>h{5hFyZ{Ue>{@8es8zkG~qae=m$@Y^^HdOVw z@cz?#AN$7A=>u56OTUb~8~Lw4|5?0y4)#yH1MfDWz$omWXp?xi2W$Fql*7dlZ6RNy z6saue*7}YnkmnxB`K=US2`m_fUUFb1o2Ub0C_0~ooq~OMXzB@;<0*Mya)AAQV&&UT zFRf8tFJa*F5xf|5LVsSvv+y1NAGX$aT%#rLo1L7; zWkNa6wl09Wh$D1(tu`IDGe11XVeTg1aT1$p^M%5*=QyZ(`ZVbJz|hohLR%P|?O!<< zI`|^!J2`MSjUDat1)yuGw4G2Q1zt*G2hK8ZScu!$+DA=By~1CZAIt-RF}1jdCWs8t zK6;UdQlqL;m(68!mm;WlVWPbn9PxB=xN+W0Wv*FLM+1K^t_@O64tTZicTF7TW)7`p;#?hz|Dzl**XU=1p8 zALn8btggg`^l;D8>pS%joJ!Dta3)01lM@rfshw%%UT;e}fu{Vv?Pa5&Txyd~Jfe}MM< z{e0YLe$%*V`XSmCS02+36U$@zVPbhq&wEGa`XS@>pRFJA^7Zt?ci_hdn~(ZjOh0@_ z=!a@~Oh2UepN`%i(+{bf_ASxBn0`olU`@0V8FduNgK`LTJ8rjJN71f{!?2jqa ziFy<}=I_mQnuS+=O=S*OrBB7Y>a%K#In@54#XAB!^DEtV`IH#jd}1=$!#p_9s7^c z;ykx*(lXLg)|dvNW~2UDd;#(!obFbgCVr9{L!ymD}gycx7T+5fGxrf^2jr;o@ui$2bAlg#<|Ys$nXCU*C8}n;5j6Zi1A5>DL2mMNIYH4 zOTqi`M8f#2w?D++b5?&c-EJBm{dyoy;uK}~2~*?3;sm!mzM#Q3YIo)?faP(;^G=*$ z25)B41?W^3`eT#A39@A##Wi5|orsq)G3gNKPZ3JmMLy$VqNcb(NScU1hyzwMVao2} zsFU4#0moIgpC1l(9_RAY1+$)_uKw#t$OQl3?c)5S1??nR<>GbA-&FMu7xWSI1AIl? ze@4~Y!r0eLkhv<(;oHx}L*d(xof?jZ1;|>GX{I3K3RbQ;9+G3aaK_f0`$;{gv^m_X zNA>P^vHZz{GwoFszNY$`%@bn_J3ZUZn`x}_)HY6Tp5C&sXd3G)c2$B%E*4Th?BybK2=g0Ex ztfi+W$0Ej-=!v-`=&!}tLU(~3^H=a$MD`oRZi#3YvITMX{sqvFhlwz9@7GlGGO4W8 zQR=9SbMNP<&N?3cs;j^1<{zBDsI$4FACCS#Egb{>omCYrT|vLUN6vz;|9rS(Dm{IE zuydDhVz8~PXKcXN7KF$DE3~FROL`b|@Fa=i$(fcsE9TRP6f+K&@M%<0Y(y4(c6Q_; z9Q+}-5AFz6m99L6-k>h>c{j=527mAc$>B)39?tbZe#m7Pn+;hq$l%4{kBoH0=94;4 zAP5daBJoKDK{V4G*W1~?zKOf;3cviaBmdNR59`I3iOAyxu8Fw!<#S6Ly$_Ill0`Nm zci!HFSDQ@cdBnc8nhA75vXq=G!1Ln2WF)8X!yFhj2@*yhhZ#&>!C(L2gJ{61zKPd| z@1!Q&IlK#P81LCde4hGUrkEg&WlMvAxnbSbna!PMaPg{yCnV(mfDh;H zb)Ph0tIYtJ-8i_FQ`w&BNCJ`dT6hZ2k`*O4#Q}igYE%L<^EF&h-J}irZ6Y#3q{SLZ z-P9B}2h<1!+5;#y0do)Q5cKDmz-@d^3cHdg7Mp-E&=hE%=8axWKdI$j zVc!IfLht`2><0>a=$D%PV558K-5>N`(s$Rt_t~@BK>F9&_mWQ}{KeINXu9FrertNQ zC@0-e^jqlFBF18ed>icRW5W+6Lpm(Ll96y+JBju(xC_P?*0}|!)?EbdpSY9zKi>L-!aEU{iF|xa;^`loRF7kgAjuHB}_UKADBGRXW2 z#R++qG!aPEgNdr3C;f^k!kX%PVfgs*@RZPeVLj#=FH!fJYv|`yO{&sM>s!nR_*|;< z;g72BFUpA~qK`sH)Z#8Yum>c>U66I`+;JCgeslIjQo2r`n)Kma-;_O(PdGZQ)=mdI zvhot~RqhuL+BqcH+zQe~t`QX!2Cm96VGO=Qa#(Y7g{4r00stWNBaJKKJH%fKN8Dkh zF)Eku81pOGA7q2BGu)|zJ|G*F*3C1!+YyMNL%zcR+HqM{BO;Kq*bTA2R$gKsE@(+l zZz+geM>G;X`^1YD6XxIAa*el$a^fxGevP-Ry`RrZ^j+8)JlN&d#$U9L{#Ef84d40d z{tJvLIwi$;Xz8m@?!VZWqSvLFE@AmB>4Bs?lPNFhfykdCzgbQy1Z1AHOz(!S3+@3t z)EO)`Vhq*%Dq=tp&x{@;iduwUWc%a7FWAFdURb;VZ_}k3uhA%X`20i!f_K5c|!Mr&xcOT{aPp+`!{6c)gr1 z;BoQ#1-&n>Ji3qZa-xg4U-Pdac^L7o$SHgy>XD@f*^}&k$jAAR6F&J!jv9|q1BM<8 zvJmm|OBj6~mw{*uNis~wf-(%!7D`Z{d7JAEa7>p@sA2Z;kHP<3eGKvro|+Ek7Zxzd zSyJFGbZ2J?zh@X!k?GWu6g8--t}jvdk$BH?2#74By1Au3>?+DDRT}i2^}ax@Vrk6s zR)zge_GGQsTT_^wpOxXMsH^ynzo5he_@_DxK$a{$#vW()!pD)YeON2eKXgG^0* z(@}t5mbRRg>qc$e#`u0yS635#3QJ21@nMg*)rM-@_>Z#E!VneXhdSr+ILHW@G=wM)xgt7-*#A_$c-7vw8gZ+2T6?6*)4klD&e5&D#UQkbDdx=>Pgcd=8E z?_Rp^Qu;qIFc7#Dnf+cqwzzQ7#9${Jnfcm4R0F*i?ErbumTU06673KMAF_atR2RA(L$l{acY)$r1QV3JQsmMA@jgzz!wB$-yTkz1H(!*Bp?qp)4dPo)?P zxz*NEM0H#|5Q<#Z{@zo1R&w&iqDu$ZLn}vLJbCg(xifNl6nzB^_JD?z+tPsb75&cr zOz<5v;khxYKGK)O7eA=?b=r{Qn`26@oQ!;tRAU8%#O1~1bFrF&pnZkvhB$9 zh!5J(%zb`;1(bd)IP4L+GSouEIG>1SctfBw)4@efb^I!M=%!zMbLD&6_(r zhr_LV`+N8JyIX>rI}TbJcXs%DQM@_S)7;$C-x8QOXUV3=E!2TaUgH4hk{K;&U%;Hjr6oZqj6r;sD$KaNi+dig)$fpC85mZ4nvFmjIF z>E1Gwv+_xdt>DSz2XHMPOD*o1cr4|N1Bc^d&cE~6Ieh2qU=hEOk8Slm_AbUeO&T43 zh*&PvPUN+R+>9lTIu^Kr7)|BkbMy*YPnShJic<$QF9lyQZLRR(Fc{VBU^HiG1^^$= z%&78WCLIrd&nR!%uHQC3&t67KvyVhBzTpa*lkl{nylrUjw8jT0eyrxNim#4?jUxQAa{Io^UoHqO#$qinsjtA@|VZu!pL3D z&a|{nCp&M&gSPOxIiLC@wOwS_hrZIh`ron>0j74T5UaO07$mQEc?!!CdmsD^mrO~B z$%QwdQCb2SkmVeg_2XGtP`XQti?Rx{3X#7Z3pI<<%_W1I=zXwNaEEWOD-nZYaM`_9 zECk_I%>DbA+&RFNF5ebp;a?aK1iTSelUlw>2Emu(sVF&4b8HB@N(e)T=vyZhkqOX^c7d2gU7L~ zJXff)1Nl6W>_GXIL@E>Vu>((mlk7Z+HGH|m#0CT3!BMN=!)lUoE;WR2>Dle~@9w$f zmt{0YEKN?0<~(J>^+tM6fa=zWw=C|*_pomECg2{WRyikeL*B`T|6FIeZj zH=g{>l6djb9(wT}WWq>%Gud3b@ow@3P6G4GrF|2*x?H8Q91VdqzWFtjXXp#mRr7VyDLSkEfuwsK- zD7#2LEQI76Lr&ICO7IFG&rzJ0gI8o(-8kKZL=z)zqg*smo3FC_SP%3Wd4+IYDC*d> zW5=eGSLxa2F1D+qw5qDKLmvwI<($Y*CI^lWOv;~(G|n6Vf_%J`a-I9oDe8|6d=D}c zrX|_|L-i8jI-sl3sGBz%V8rEo1I~~l%`h@&A?>x165^=;V(qf}qh$4kZVh#8-oAbF z$yThV}*9MElx;;UkNCjvN6_O3k`z;<8u{A4*R`d&LqOO1X{= zQg7@#mrL=T%ca7XM9uSy`^I_S@Pn_pEU772Z-*tH@+Bz<0#n5FP$xT#DcZJz^GlpI z0-#NNYVhPYc0c!%g|67*dpvaPmTVE)GbMnN%Mo{(R=7BZse#Wmt6DX zQU%~%=%caJn3TpuwTmE@!6L+11k<9?nBJ=92hx*GSM$V!HhTSNczo;D@#(S9&Yhvk z>gq~-kQ?tVQcEJ=yK(wF@WbGyQml<exT!wvraJ{HW}zqxCd58^B(XS;#v2HV><(cGo;NQtKwku4`PiQH93psJHX0>xPM zjs_J~A=HS)Wi%F1x^X;GNW*L^1$Uy&l2*JrzGw}UCzm$tV6{v);0w@LhoeKU`sd~H z0gp|AAHzXU`0|o2nzDY}M;;t$42FCj_W>~w&A@-!gi|$QME_p1XAkM9r%$ti5bK+G zD-`)B)V&4r0G;ELPJ0OI5kAWXh4O4EWN_In7$1CIHIXA-O2-RG`=Y*bc1LO#DTyv5 zl-|MFE6bN~&=Cmd%#urzin#X)`xneK3~_SfW>xKT!q^6K}= zvsN4z?*vA%L7p{@N1Q9qTKVEp7V2qj?Fk=UTs(Sov9;&z9x&?XFGFZ|2P_y1kw@VJ zI?!>|RUHGEeZqD?xtOViIL`>Y0%~FW9w+=(NMJ~483i%I6adF|liIFWg4t-`qK$+d z5r{>>SNQzfTY>iWz@_bhx4JBc7ugUMN4~mngni*yu(vlDY3vJLf4ztyQggXrem#P5 zCf}jAWj)3@7anjp6Do~6TWXsFIEJ=2K;sae8^oUT2>;9T=6f?Ul7VmVpi7O8BCj6t zu&67_S)Q~tyN`8U6gqiwY?o}>5|}#w*lxJfw&7zrw)@@5%X_EyZ1*?#4=;pw9}5iy z!juaWKhR!<>!2yXveTp-NNyd$R-hcT4o~13vTwP+AzrHJ>?qDhK(sg` zC(~gPQY1EFU>J6hGW6{8qGn#(Iv?~0hR>h6`!-6MdfVN#K40zKvS&DmL=HMO+zHty zSXSyPiyW^i^HR3bYxvytB;s!caSHEQ_}fj9AIcs?5~0nQ`}}#14L^(mvPqu6Z>`=> zLO=!nMz*^(_*=n7_*?YC#`s(FBsF2_>%0w^6Gd42KG1l5{H@@BgTEm;a#1x7`7^M+ zz~4UF@#@!fguhw$j6x^%68^?M`h)RBK?5}o7;_YHj-bifxKnN~08JoZ%L8cVIq3kK^GqAS_BKYvoYiNg;Vpsk;dKIFFYRJ(>&6A9?sZKegpqS{wMOwckv(I-M#u3 zNGsLA-6n$Ln0W$mGhyQ~DJM2U-W&pXqmWc5A#d)|l0sl_c8!}N(^Z?vb`tpdCy z>`jB-{L0LBqwW_+=?BbhKdD?SWIu(4t*UCVFjCIPkk`-W_1Ez}%6~*J<}NdGHQu|y zSrC|Ps`7=qqj5)2q_CmJMlCMx$n#4z>`2{5s`)!9wn+8E$2)UZ|DyI4dcGqb!voX6 zoLUdV!xdG0`d}CyCcG;*qlRYuCE@Stm9ZVhZJTCU6R7f&-&}iy_g!Fk9z;jr?1e1b z*=H{lh;S2ulodz?*>v^-pdNHS?(79$Q$VJ}7m5_SedMxDNf|nw)zWv_b_H_&zMV^e zeihmCV{rh(3o9>8Rv*3efIISew#|9|#TV62qA79XpCrLHi|;x>#(PPGN*I9z)P_cY zhs?R`GvU|5;n!pkf90h&-xO<>{K{(}g61XEpMXE|$+a>5IKxg;r9`qw6~K~h&IVbN(#NcNI#Z|#L+Hi zVL@hoCc+W%unh(QdlY6&L>bos8FllAJ~S7aKXhn*tgWZ#hW766_T}Y+yKb93u)KU= z_O@LIm)~Q5)7N=h=fD7d^ilgUpJDq&e+W-vgy%7MzTnl6C)3yBi$Gzh=`nl}EzH3A zsT^PQVM-f-gd(>lSp_)4cxO_t_k#W5&ffB%Is9E@a^AM%i6?3+q43y*&3{JSOV(hF zG$;wEUHr_7!|VuSyd?Y*#~3}43ii`Tg}@j)(60jYBZe{3Ci}rK#(=!-(oM&=f>U|e zOZ1_pf;Js!YZvE%i5Mf6z+a0oj&8Yl;9`z3Mqd)~5XLyOdM)QY>tc+Y$*hktCSH0U zjPWyAj-LU>=!sOZpRBw@7$de;VDp}64)++wh?)~HMm2}K8REMTlFqVAE{5-!J#cX5 zo_m`7{-%3m&oi@ILc1nvtE+24M!buD(7V>!LZb^3GFlwI7y~s`TPX0wv)*~~Sc>R`HVosZy>*|_$zxBWrd(dyf6z?8>$cvq&1msA-6fu{;nBp)+ zfjw59eIKgSZX-xc`pcoZ_X2>zEg zfkGZr*ibi{P*KRqKoi^Z^kjcU|0H`c^1Gb}$E!*!077ya1TgkQgLQF8jKc@OA;mdo z>*A1stv3yI5-@thO+V=@EiW(als!*B{q*EO*}x>TMSeeARa%CYfbXgP=-_+c6!^ZC zV~}+?i|=P7d3;L>QhPb>2mPl`#U?d5j!w{Eki6GePF49WicM~a`)P(#AGvCB+%M`0 z0o<>GCkE^Bw-0>vs{`%+9!d>1hlF94^Cs(C`#Q@*MS;GS`fca&5GJ%8TXbAJzna5f zopLQN0L7257gtUlCV%Au(n-xce>QeW9ABoOpLE0mx^IB*2OtFsaT1sU#10-`0ARsl zEUL7kLs*>v6SSz!Xhg9`#)A|Xa(0Kh^ZTu_V`+4k5?gIgE3;{QQpavJtjR(jkO6_%N? zt$&m~uMUsR%#8hJY-XUj<~KFX{0H@`8#E?4nson-F+p$v6%$N@u?QZ3S!r2#1Q?iy zV}j)7OCIBZ;OJ;&pMV6rZ|WF0IP*&Q(i2Oc`c!>;`%hBCouS#4m!5l$6@0y+s$TB5qgBK9Hgfd2Am1jX=HShU6Ndi0y!=+*8xw!m_m)`GBy+T(?sH>SWtVR)bV{Tz58-|Qf3;`RhQ5M#L>9{8QP4<}m?&6{-T%y)nX z4i7_WxD{q(tIr8L@k_%?usYzqL+B@s7e~6!mK)>n!1$p%h^mmyu5v&afBvqgTn~O^T2Rk5zA7w0qk-jocz&PIk&_C{o$-P^P?D=RG8wAKfT z_8{Z{g|77#t&K5%6TC+CHvxU~v6u4fZ7@IrrH&f*YCvF!{0k)i)JkIo1>~StP+WlY zbMZ&gnN1?URt)$|G}a(tqW!F6=}MM2KA0{tLHR${+RlJS#Qc3QzcrdBOEB$&1Z5)a z2d5(k9zaGIodoR8d zffXr)_ru2we;J{}bOvEh0+WUl^j?@UL?jW06A%qf`PS>p^oTIH}Q4*T$L zf6M+Y^2t|UV@E>F#j>Gq|32~}h(Pl_!EXrP6Ko*(uKM(#oj3FQ*ZRyr`sTWLE_qKt zufz;9%F+_|4=Lm4k(6^|7ai$=lXY$I5;PT7I=EjC?1Io{@skW++@H*4=e|7Kf-P|4 z*#>W(2jIiQ<|C&&2idP81%sXRH+*>>;54Fns|yI~Xme^MzyOuutRu zhaiJXL@V46#0K}z^YUx)H=Pea<@fROFNpi`H)sp4zpB0$PobTBEh}Ha{plpjqaI$r zm^TUKs0V$S!5%7nJ%G~~;R8zMZ=BAn7*61-Q9<5%8ltjMh{6U#IVp=gok=x6!jtwe zq@*Lep~Xb!gX5pD8fav2PLJO>(7St+boGb#8tFsXLKQIU#E&g3ftR^GnF(9iMO(w8hzEpe@B} z+NE-`A0-R>5p0u4&Pe(8qy^ko!^309w}=`n1Mmf>@FHb(Q9(`?9<^7Mn!sJN$%|8U zXo`ky+M~ynaZ-z!KI2;mcFi>f{G9`EZMyz)9=BOe9(VrkW%(HdZq`h+1Q5A7w+WG( z%gDaUV>kW&?w&TZ2cxdZQD>b=QORvJyoF??M^FT{%oi^@*;nI*rsd^CiD{YBMc4qz zzsN211-pU&Vb&!xg@JQo>BBLHP?tFjX<6bJ#?q3gNrNdZN#X$dy~I{2_3qg!3yy>u z?{?Ohb^peWMc(^fZS94NtzBJht${Af(LGzIFUT?JzBfGl<+5EZ+xHv|4F5@Ha+oX{l^%8@LW_!1}Hy1Bt z_gq9dSt5a+;1yQ{duSe#JU}{CLJl}i5|IP0d`%8GG{YgneQ_)~MZ~guho+upPEW~= z$N|?n5xGd@fFr*GAa{@tM6Nka=Hvd!NC6G+3W#lqq8};coCP%6yp1d_)7$2GmJv(x z_Bcf7xa4k(Y!%oWJyMP|^++m)SsV8p+G)@iEvr^J@Ibx3n!+s$)Jw$Hah-2Lwc2HY z_~QI+8zEu5cYzEVPw*>Hy+8MJmNN^>Ak2QGu;A&9(1014Z*LQI^} zPSZXr`cL#&K({F`{utkf%P5CK5}&M?DLSNup(8K2F$LltlB1A)ojAF{P|dw}5PRQ* z*!zk`lc|7K4lQfGbkwyTUEI+>_%iypysY`d*AMr!^<1>)vBxMg$lu=HGrDD9KDhZG zugS_gwm3AGlDwsJ>*7RvV`E2XFwi+T&~Xjkjkc>fzR>nO-u7Hzua%&;O~R=ihz z#XlY;0&>$vBts}99+e*~Ot>b?pf}w>0rt3#Jg=}VuZ^+S<~n)r2-6XtYI4rV&VQKN zCR=xxyK?mN*}JbLCarus>2>HCq2xXhqzUMr1R9GXG7|iJ)}F5|Zf~#h`HS z{N_e-Rug;TTFIt7IOp@t1)24W4Q=>MId$-{;IPw^kRm1&U2pSAc-Fy#=Oi7ThaY@S z0Xc>r68S+uuOP*TZylIT-7Bh(#T|GGdAbbAljw?p` z5q^&Z3|*v;3i*K6-Vok}JP6pU$Yzo${CBaZvN?Js(SWpO@;fi*4o%<{lv)VpL%=)G zu58c_M3e$oU`Ux!v2(iyXS$d&e{gG0$HCC-!FhdqZ(T*{^6~|pQ6xpQjZuXQ`j#?xXlqaBrp}(Nhvvwh$s5+k{ypOA>!iP7*W~*G z=7|Gywu0tt8HR(66cw6`I(aiZE@ggHAPA+$D#vW0le_5v1jN}@unHO&H6@kbj_j^> z1Xcs;6{bvre7!y~b%=)=43D(+4R_}ib{0A|I|@6C3;RZU+v~fG#xBeD;U8}0?iN)) z+E!Keo$r)YZTnHV-!Ny{zvYL++glqNS}~lUA>YHu_dv#a1`^Xy6km=QPhM_}=2jQ? zBR8LVe-mz}diXryJ`6NZV)ck}iWQ~uSUsYga{P(=wR#eB62|KB6HR$Loud9s`~ugf zdfrv6_=_ai>mJQaICp_Y<9eK`pdikVoOmfeWPSX(3$+vgRTY1mPKSj<_d>FP%m_?F zy`Ror!0kADAvXs)v6_>QPOiY&3(>S51aqiqJe>p8u1uf_o%DD{3%L&{8?OgZ;3XtwYa!MZAQ*wpR43;vEE6|@1k{$dssiS1? zq<&X(gd|VOgFXqfKkb&JP6|gFIg!l#+zhF40iLNGW|5#yIMBdV)a@)~TFIG>$WDFFE_0;)PC)Uw7 zYI>{_6V{%ZZ-{j>qAsUbwrzW58}9>NDa?d?GPLQUk=n#dhBIC`4sg?Dk=SQ;b< zWZ+2>3E^lIF(>K#abzHy!Z^xvu-qV;VH~d9n4-Y_$tB8Y;HPYpD>uf|rGPXDN@1?> z)$b{C_0{iUL$mcne$fM*@cSj9eD-C;)U`Rr3nCL<`6S-2la{!g@GJ0ioJuLxP%fOx z3UU?6$u=oEoYJYtBNXH;-++ln&N)jE9k5WRNrE6@LXoym&bj>)Mt5#LtZK4MyY2WyZUzx-;eZ%+0S5qW`!E-ife}8iJ3Zp|`0E0f{evBI?Y_G5!!^F*d|zi%)dh8a#@r?T?k{zY47FDcSpC_% zT7z@V)#JYQp^kcY(CW`!>h9ayS~J1!s~^j3&YJR7_h;F623n@=joA~m6+vq{FksMO zC;GXf&S!Y8@{OHTQta&z{r4L6$R(u6Q}i22g)p$PGHwAVXGyVOYSYZd;Rq(0YCapS zKum2n;OL$2{SW)pd(0epW~FL%$4y(svfO8ui_L<)` z)edxY4u+NEyU)9%v+oHU9T;iZQPD9t6xe<2$YRrx&CgNJEu7E9c?>_LBRk8AH=zai zf%SX>mRShCv#7OWjk6w2ASpA$teU{VLr zL<&WMZ0^W*Ae!Dp2dYGe3R^m0dhkHItN2TcPw6uHDm!*Iv@dPy z-m;||A4~gEf8BY0RvURx$uDWy-HSUzlLG^j^x@-1wj??i-6Tys0&tsS4HUkbBWCvz zn%o3>MNfLq59Y>C{Df=5O&r{Gteqav zCrkb{Ft&2YyzslKFSHv$93qkoT!FCwG+WxDNP_`|Dl3>&;ji?&U69O?G(N^8<G2 z!OE6?>L11*KXSk`X#CMTP#24WZ@sbtLj)p4wLbFHNZE)Z7voQ`wx`r+CZnO)gQ<(r z&MBn-Xrur1cXb&(l^x;6_Wc7G-O}POs$MiV9){g6d z+{ASjfBgyXsex&Bc+|1f_)R?j-uMf<6J zTeRzEwf}McJT{kgokTlr(O|J1&xIej4OisxhXW8U4&Zerh8 zHep;7a@bFBm`E(9t?T5lf8QK8o3?JN0%TP2&T%^^cGD-!?GbRa15w72j4? zLvx==cd^^qvr6EsJvbD%2XBergOhS$i;nKWcU^ng!rVS~dyrL3jSoidz*1t;9jKG~ zb&frFg1~RF&urlqIBgG3%0u-rZVhL3=@4=G*H+j@gRduH0X_TdoW@?swby%`t!Q(;%b?vuyzj4Hj= zZJ2;hq!0$IAk0^+pfA*4;dYgmxr%1L`o?r~AjEDO3A!rK((>Nv;P|9*z#qf{VA3t1 z%a_om4fb9%BatTB-V2&Acn?7}7JKjcKY3v6A3rg`Zl9Tbb2V*WexAHn$d$+Kgy8U^@m2P)s(ObcfRc#9NV1aA%JpjzJkoH+*Vo%&>LvdIjnq-uiG+{mut@{b2>cv z)$YpNET^-&lHJtha|Udgtwjy3tqnyjnYMt-*Tu{hi^-XpUtE%JbNs|vkX33 z7^J>Nn*%N&NO&Z492=SjZm3T0IA&;vltCI$ByzDXBPlR2xpV`Xf8X(eQe-vjko%ik z`m4)llPa<#q$5(AbJ>MTG?jfrH-ys)sVMaewXT zup`Fm;ybwT33QMRK6qvSjYm7;JC(+qE1rSSgO8_AKTl%^rj4omNKkTlttG=)9VWVD#}Nl8h@ zxwPa|#h7Fq&xeEG8tv|XQ_Xa+ytp_&ANkTNiYv;?a3rP6QIcPj56Tf!j_pQt?l?^p z8#M6^b|eMUIi84jwheT+i;LXu!lEsA|7^0lW#Cdi*`vh#R9kH>&V0`;YVB(9_ZV6# zYTF_g(o%?0RhC9LzVk6ipiZeFSX-Q$1ZQI?*H}#i5ObIc+ZUHw08=s8w^9%{Oxls& zATo`SX8=D^xG{R9u+VIqxUA2rdUrQhI(L2vnefj4(yXhjdGV=%j*fx4iLF_=mWJ(3 zHCxJ-p1$d(?;j}NQq{D*;k$KxeRclk`T1Nw`1p&^yRVY&#t7yG5jM-D1;8yrp%f>< zDME=9z%qv~=$Ht6ELCoAO^w%0I2MyWyE@MHK&A+){l121y5i&S!5><%)O+EU@gnQBdiaA49ypGb~tq7Vcqr-j0tj*7~X%#z9q z$4L-^-C5x%sjMt z2&$C97?MXo>|0~PH}*9x^Uc(a~^^hZjSH012;@o$_&`ywbVV>QYkW#2Ke+(#b%?yLI0P2Xx3Y``xj3kjPE+yH-QfQx-tTsV(5|@?PE&A9m3PNp zfYpOThRF%KqzD@zdYS4-bBM7cR7+jw+9KkU2JTZaPboVakB(&8{twqqwuS{!*u&8w z{mkKo)*VgC(lVV`HVM7^MWD@Bu?L{nlJt`*Y`ZKqYTI3w{><)YzXo68XByz1X^mqd z=?c6h`O%rgFx_Grt9WlyUtg22xA)Kdr?06G55gaF7yL;UrFxpR#YMU4NfsE0*+_MH z88ZBnff5U63Uh=gF0n1J8fD6;+3$st=l9Y<^L~nRCIOaAwFV>5GrvC@;Exf4Y<9Mh z?tvqt@sUlyaFQBF=O*;IOpb^69qbJB`->rO&R|Dv4*ky&H4DB`tmQ(*PnzgkVHEi zH5oql5CX6eV3C54jGkME^g!*A3ILD;ZcHLOl$9TOM=>7i=U@JO*Ijp=I;4Cl6!}Uh za%%{6pF-U?@w&lHz$}D-0d}k&^DeO|q7=Mtm^98S<@OLgRtH7o(1+dh#wpbM=R+ZO zL5Pi$W3{aLQ3F9JCVLX>3Q8K>xKZoARI|*IEi#TlmEdqrC&;I#$Vo}9NkCKJkdO2F za5gj!z9zVpzmfmINd%3g-trHWEK;;^`~ZDiehO6byS93#7M%+Ry#wCU_{9EhIPEP zJ}Cbogiga}ef1VOg+HGigehCwkK-Q7h6pswcF#rb!62O3_JN+!;~Dnl$USpxw|I!R z^)=Xk58^aNo-+Xgj|^c4U;#g;6v^L_AU25~Zj;7R>6}vXKOnKp0euT8%3P;LXTuF; zET_CaJUhBPJ6hJzP&PV?aeGl3U{}c}xNN{P4Pnbw`02P{_tV-QqsUwSZ{oo#noy7+ z9>7mKmzh_;$sVLrMI%8*r-~x`4zp?4)#`C(#;I-M`n_wfgPxB8Tl+P1y$s3lFe1(x zD)qF0DMPD0RVF8)tZeq{PyF4`jWfYrO^tKG8>BgDcH@`&`G@NJc`iXmF)r^&C4VpH_QC=q+b|5CYNtdSgH#GS5 zX}YG`>O)iG_xq4m+IRo>RH(A@{?hE-4RGo|UgXgXpj(oFlN z5Ao)Wn@t0}d2#Kgc53|4DA75+C=vXS?3Y*rJRk(tOI%P>F3>T>aU78N-@?BkbXw&fX6Pp-7--Cr3?72m7tTWz z@>d|F>eq|6hC;V4P7Z`Z$I}md_Wb3&_a8_<^RWCMrME0B&)tkSg670Sz6KsLC|{L8 z^OMX8`vb{+m?v@6K5LJm;Hr}>$eh?;P@no7_N%M$0{F}`Cn9P;U_A)V;`QJ;3D52L zAkSIxe%wi~U+?`Lt9Q!a^$&yc56?Cs*g?6t3eM zr4FGRrqLpjuBX!>RYf-?z6821GS0wC91BV#T}O}QC`=5I*@@4+3?2R}6@D_dec>SN> zL#T_u6vHBsNbM{8pe7EW9`*#mtH`v_`SLxzYV(W1kD0F z|1#&ZM0;>lF>xh`kAQgD*gC{!6jW+-@Sp60!LO$^D0i^KeQ>*6y-NYsUqlIcN(lS?}__R_(?Up_sl+aFR=k) z1j>6a$JLiah&mk9_{^f;m|7-1!rS1Kz{WQU9K|4MwKw7oY3%WL)7j&5f<=kfAiVE$ zk_$d~hY%=+AxZzBrfvP3_}!Kn|$Gz^svX3|0y9gNkn&MSH|aaO7Ymd_mk^GzNUhn4Qf& z_Vh}-{JkG6JyFx}Pp;L_>g)c_S4H2|x-+Qn>B**b`i`-U?>nXANy}#+z9U6YfiaF(k;0)jjW*1B> zXi%DnNtm=AQ6T`ODdjLN7d^ZY&$^jw33M~i8{EqSL~wGcEj`s@f^V8E6|zD)gwgM$ zMpG0-Ljc(%;d&%aVNF%`EP5l&a*DS&&+960t$_26rzGE7THf;VKuGT_Ev&3640U&O zlz8Yb;upQZ1p2w&Qbt*`h2}zjC#1R%@DNj7rbr){GaEr^y)^E2Gs#`%hM6EyiLs!4 zfY71}!G=l<31l5R&eK^GPxqli-5$lFJ8#F)qqPmPMe#M%H!Bvoq4wx<_$*Ckv)R0v zs|sALMjyVe_JJbYu?KSC7!613qiTXS{Y@s=$9QbJsxa{5c=-u6$WnwBMZV6ij=adc z4~A9MfnKt@8uv)ta4InvMj-R%E>FU-8jg_&@!5tCa0vdrhvnHJ?>JM(@}zo z2qQTgAhC0R1ZQ}t+6k?dvp^Cs^hOSpL>>ba^k;U}Sy)MG1WAVn2r!9!i*%dFGjXWN z_m`I;e?)!^+@uyZ4X+$tc^9i1_{l>kKl4eH=Zo_99z{7_|Dw2lH(kFF*ZbwIl2<8Q zg{KZ(fA0?bhOWN?Lp;fZk*jgf)!6IkS&E=G$P4r=ocJC9|9=JLdse=%`tQJkVNDZ~ z&+5MmxhV2HwF|ZduROEz4u5urx9bPMN&Zumzef@UU8lN@^33WyepB1}q-wl(FI{`@ z0KCcQo?6Mzj7r`rd1^KHd1Xomz(}f70SPiK4eM`sTN1^ z4YPI;7nWbl46F$5@FjWh;Bo-c&SEB=of$2L5d>duaMg^f2rQ$-t3is4gHQH4FgP6? zZ&(0u3@eVwWL!u!rzi*-8I>%S=oce_$rPa0t=3~Yfv&B=(?4KE!Ojm@hs9!ENJW;P z9?`B81n6|(5aH>dyDLy%=W6aO7c_^!!ZQLDL^W4 z^3?0jGh>j!P!_N~c9V6_Bgtm)UxIrLbg#h(x`~qeHE@A!{a7xePLbQ2OD8M zU$3+3I-ce0_)e_WpR47xe!cQ6U%y6qmal8#6W@dFsGakVxs_kx9@tU7OL7PJ0esQ_ z7FH}eCl4@;>QDM0ekPWtIt6~eG23LHDTbdOl2tu z899thXK;vzNq-+k7pZj6n7v7iVfbL+$50zu476fNG_9aVQf~M_PoRSaz2W+EK7n>& z){zc@w*lJ6dL)Lr9`v3@hX6;rFQhPy1oV65$u_}ez&wO0DZ*7L zN%{3NznD~xp4m0paOKEJ{JT>9g>eFpl%C<^w6H={!XB^+RDjQsPl11qiffTn6dB~1 z=lC9gu|+0!jQaxTwAdSdjPm#1Mfu~R{JrD2pRTKW$G-v_h)m%6v$&oqC#=I9xPiO$dK~)ZB9xEx%&9%dB=q)X-DyhsZ z%Eex6&#}W;@xCm}jg_YNL6*1c6O6Etzf0sv1@J}vg4ZmUoq2sD*7HUv^hT*IHxy@K zBs$y$n^y`XLa%(DN{916httd;p9eZ{x#YBvOXQXBNkQb!I3d+b0g6cI>}VH8GOPkN z62R#z+)!rT*iZ%~8yxtrF_b0n?8xG#&9-)KHoK(gk_59EzN==l;Z4IZo0-fdHfV-% zoI2QWkQ>obEEQWTR3q9ISHOs-SSylHWJ#9Iw&whU4F}1HHdJsRo>lWXw(`#^)(u)g zo_I(x$OmwNTN_p%;zUw#kFX_p;cHbdjRc2^3T4w~FZ7k6B(rQxOMz#A(XbDa8#3&Z zR7?!SWNP8bVByMDUsqdG4X+tt%+lD2EuGdAR4E5HT)}viVAOIXm@05GfX|_a$i{ws z)tzaPo6nNh2E42#r5``yVMY_>3rGXc>66lI8OF3DFj_;JNL_-_&XkoY8*L`zJ}}Y@gDqpP z-3lVWLV)1Ey;6EML*l#hlE6jD-=BM>=Lh?#8e3Y%iT_hQ(>UZr>h0+cb_F`xTK&GJ zhB~;mI_LmF)mF%zMB`4UhmTs0We$pxifA^KE;hN_xi_?19ZawMOb0j z)p@#WiQP<8xb8dFC#rR^Psr1wA8fS2{RCk>VxPF+13r{ zqgqYiw#CWtFOjR)qrf0^iIqE$^X1E;pDY;HP1a1t7IyVAO*q}kKV#$hFnDpkZkgPZ$t0QF@5$scNhZCdx%85z^cJ8cO=z386lkGT1&mxpfrVYRsQ48WT(PSH zQWftm=u%l+5LsD)MO0)_SLBP}YH3cspXYtgnK_e7FUam6zhBy!IdkTm_q^}(KJW8B z_a`WLfYhaGwm+MBD6w8m9tyMXn2gb8!?f}{ow=F~W63Ia>fh$ss=s7#U3VSRzG*OB z0+!g}tj73(uqJlvAkxy6UyBw6z39(c@pKE)zH;`!& z(q%p>_rP5a@|7~P$i0dWY>9qnKnSGNfOi5=^)B;*>1>ZwkYcmGrlKX%Ok%1nWDAv~ zh^gkaDU_8#r~soPs@gh_0GgpnR((JgI}P#k@Vy8>(-GVg+;Q?ZOF)!N{Yp45ACb@4 znsf1Ccr`sY530UnT5Ezsr}g%Zh*fMwWu*b`mP}WSa0{rWAS4&=m0%Im)24lHg?loc zDnl^KE|!sD*$&tcPO|LmtnE30px2U>)tP08TJh7iAu$>)IVK>vApmt=JMj^yrm~qc zduHjT6y`*4=C>5|D(DI|7?{Z6fxxl=$z6?I$P>`t+d0s+vI9Q6td+I4G>g5ewx(KS z#)5u9reejOmAe??lQ9evLf%n!=$R-CP>SUUrN45*w#R2 zegl4=@-Nju0&fAG*&E-TP7#c1er_-W{{5IxWKeclxF4a77O3^HcRQe`!#ozCo|+{y zvojNF7xHm7fP=P(NEj3~1;35W-BY+2xE4{xkk5+Yw-N-F6V1?aQ?UAtMQE)&N8tJX z8>Me>KMoAwm}o8z;o(AmfQ9WHm?H%&y2T#93b_^6vA>DmjH-5kh)s=@heO3#HUX20 zveJ?wkBt`qIDRi>aAUjN8GwwHAX8Zg=ml&(U#AbSS+{o0>XG50!Bqn*SICXIC&s#2 zcULE&RRV0MhgsDkFf-Iw#;2JogrmlGB|nKu1Rc8p-0>0c`s=dkQ9h!li3UK@efPZsieQkARMZm#nB4`#I2&iDYfTT1FcAAA&nlH?RBN*%qVjgzwyl`rA z$HWEOx1E39x#L^6Y~Hl-oDE~^M`?aA*Yl_7?B}QL4Cd!d=E<11#pcVHx4%rM&RdQ# zZwn4mCh#?50_Ppb>B}kAUgI%ZG<>nc`IEYEV&_e+m|(%nP;N@_3zAFwx!g5s-FB<0 zdIFgaNoTx*d+{Noh{@$G!NABpyPbjYaZ~uc=|*CIumCs92DmSs`*aeYxI4-IWYQMp z4)9E`J9C%8{?PJe-fZ0JoqsDfg8H(u0`Na&kuuOUQZ7rS(Yxb+NV+9DhR=C)J~>fJ zCV%AQUd#jkCV#|$x=z9$9UXn(*c?(l#Lr^Z$rB$;d5)Hi=lm4o$ztJnNoG1F?1Fd4eCIGK5lK;B z=)N7nDG3EP*Rs)eztX3TNgYVYs}*V|Fp@87zngk){LVB~-AqsW&Fl#2$Y5_0a$|+E z_ba4T+l%;L!p#$UAE@>*a;1_lG`pVcc5oS960lSQIZ^*ux)eJR5M~B&2;Ql)-xffA zZq^x7n@>KtXZ9t07cQ=jFga9HB(s<~U>TiSr~rtnXPT^0u2c@BOyX7iDQpH)S;1GKB}J9%;^ zww|Jc{O{k-|4ysZnlKk^3TvVoa6k+^gLirc;?xuvhI9`d!`tbQ-Hr)#*-?8KSK53w zYL`={3;Y)!P&ogAd!pJedC{uG(SH7|7XEFm8mRz{1KE zuCzk*8y$vM551&}l#rCdfrXVGAKtVnHV|8}x~sK&#m3dKfv!Vc%a?Usab@4oP~VkQ zDgKsQZn-0C+hF&YJL`f~qr2U=<77i`TU+n!@#S4HLTd7zy9{IeGWPB;t?v>q;@}Xq zm*<0hK|!7a03B{KGa#V&4}&HkKF`4ws{f!rm(p%nDNim$JPP=LzcdmoQhp{%jcX66 zdeSED*|c-#rr3r_6p(4EscFK;uAbj_a;bHQN&}p;}CE^UKf90OO<<*pUbaeO-<0Z+sXa zACmR*e9$Y>%@+cHq}_{Lbn-AjXd%^U`Ri6vKC%hA4jvP(qC(^psxGRoEwv&iMtKCG zyb*gOidZ&;djuiL1`*gHgxO%ZA<9x6U%Uy|6cpo%=APotoQ?6-ot>-0v5JZqLaBgzgP5Z% zbth)18gbRgMpc>T%L0$s9LZ0^P-{xb7{pXemhk3hh~dRu*ON2SAv6$XVSj<&n4k#U z`GX$l-%S&R>?8q7%}i1`O%wuleR>Ki?%TFk8Sie-A6Y+nPHe*zA8)Fw92%Y8^6|#H z+NO^;wKvpe+nL&F7ALiVk>jHdAc)w z(hkoDCX%IgSTL0hi{1b$74mLQ8}}fapS%N>-^uT5-oLGC z`+g*}jZuXeO_^@*L5lLC-hmbIqWFrZ$tsEnN<@_qFIz)aC&XV{>^2J&;jrBm58u>HbvE@BUn7_YLT%uuQYDMBDwZoG!q(CEmlBnCwT zlcO|pqk_W?&`ZR%iX7MR3$Iv@zbh_0|8nQJZDlkz@LBw=?1`?ljXN(#rmV{Tss73x zm+v~Sy=SmbeCZqPX+Iaqm_T=BZtFbqtUO_FpZq*1917adymM(na6S| zi@nE(0K3APfKV5ap9*yny+Xb|ydx7~82N$kxo7>*r#~J4#V_>g-qmB@Up6!vdu&Ym zDe8L5_;;!cK^1rrRRQp!17tTvC%{v|j=KvqTH?le$aF>; zlIa_;qMW6)W^7>zq(sv9{p5-G^JNq5?GwwcfA!VtJC`r-y#B7yjiY?H<-FdW^IJBK z-o5I0|s0`i6QU5g4Mk&-iPiGcc8~$BLh1~7&?e}twf?ZyWO!p&FCWTs?PQx z-&chv=oH;Uyh&>WV1o0xKAT2137~HvEV>LPcO<7dY~4NLF7jWtWAY&1zAV}m&neCP z`n_tnC5IoF^0js5=I4y&HFZ{OoVsvpbF8y1+|pP)>d&qjYI9QzSRMLJwbDiHIy5WN zZHT>S@F@W|P)Cvbxqx!SWl%OQN;fF63dVVC!k{P2A-pnyT!x7rn{Iv{%_gRm zrnH!1H)&GM`SJ2MxA_Lb3;B(|vI)!|HgS6aJB1r5l2T&LVxx=jFhl6bv@jTdmz{Tvr3b)%f z!*XxO%-U@fhfi4yK;11^?YM_q)tS@Yv^9>9V3a=<1!_nfFAICi!cJR0yk-d%ioit3 zsKjt-y-Ev+$ko7LS9x=3ev!Xn{DexV59Q`h47aLKwiV6cI zN}?dU-6b?n#3s-PEnBe`*$%8r3mX%K4e3Jb46cM!boG*#BJdpkHTgN&p3IDNY%ayT z7$I1K{OSn`fo*cBQc8F*6yT$fl%{FL*w~5{W8)$hA@UK9k2%Lya5tT;Y^Lmk+Dr7_ zT)AQl;K#l?z^J~(rv(0m**y{iJ9P}Cst$`|ARL6CDMZ1wv@{3OUpUg>;sGN%P_f%U zMRD`usJPVK$dOxu6r7BegiD|+nunXN)8HmaQcK_`+|!@rKV68UUtYcX-&c$HDVY%Vt0Lk7C&(qDq<6K0(ved{|^oPU;{a>K6fBc#8{$pcm?Bw_91qgFCr#;KJ zswV;IMdLLgZ~4%`+_?6vwekc!DCi!<>nJg$8r~khc$Pm4sWGi=7{43}a9qzR#*ijo zL*qVkB?7(X3{a9w&`!qJMV8crOCGE@PMtL z!%O#vhBG%VvcX{ej^lb!*Gbuk1{8KPI|@+#R;*bgb`z8v!G;N+SKtgBzR5w%>=b4L z`kD=xg84C0I{Y(_^K*=F&7;EC3(pF(0nlv9yHQ0x!hj44@G2C~XoF1wTnw@(spLij zKQ^JOVPFXGWgX>!tE`~%E7?`SD!&)vt;kjAL?6JP$zV<7QxEAm-9v$h&b5Jz8+qOX zJZJdgSnT3qUa0+QWPE&t7rsRmSl;?A5-S9MI}qD9I5o64HgNu$sWs;h+||=w+1@jd zA1n&y4=@#;N4d%l(h<`FUqv^9vD`M9Sf5-BOEsCZicd`kc1{~amD>5}5e9~K-Cz7d?e0Ox!b zjkgk%p#USG%E}0E`nO6KYzzPn*p%Lcwr>GcBse6xG!LkVUjuMSxB-xPTJLmU-*hi; z(w>UM%b_<|ULKF|rh(4M-rIU7J4bP{XtW6DM)Ay7SuQ{L9>OgJUk4*9S*Oziu3(Ux+Ql+gqSTGUot%)=5gi zx);hDU>#^Lu3LigBBsX!ml68s0kcfL^GM5j-xycMemO>&tQ6!1CVTtSi0!FlSH+!_ z>Khz|oefKWkO(dzJ`0N9dAl5PT~SsDbq5x#ify}!t|azKT$;M4rCy7D+vRdqx+=@V z8Unz-Q8w{2r$j(Noe3h=k+L~3};l_$^c6Kg!t#DI$Ss*+2 zJ7zC4ZLhz3RZdAxZgxT9fZ#d@eb}$D=QvqKJZuR1OhH@-^c5gMP*^}phM^h;eWwN8 zBdHElUzBrrWXr_(b_(NGzkf2eNywLV`W}|eK=I-2BI9WkQW`Lo6ua|7XtPK z8GYwfT&1vnyajc9Mg<$Fu)t>$J|o38Fc!x!RR}==sB6R02J$Y3jpgNS<;YA$f&D>f zdj+?@2sSFJASq8s?{(g;^#Tn$n`?E1>}skbgnVx5xdcvXuVr?x3KRr#vxA8P+6%cu z*}?D7_d@J33MpjQmH)zjCHKAf-Dpc0lv-k~^To*!bpu5?uZ4cgkA+c?72A zk;V*@VTGe5qTC^Efhz4nx*w#(---_*R$G+yS%_xK_Gjj0n@kU)zZDhNOi`eQ>i6&PqHKC>%;5U4=di;*C%%E znmG8riud6^x+i#>X7Dzjg49+FofGsBfEZLHka&#T>)>!O20)A`4%h}zoKT4;i?c|1 zNlmCGH<(rIDNeJ)B_@+L6~R6v-F+x?G&%cJ0C+-08Z}KfuibLX`t`SL*?RN(^*3)F zKD1)Rp<(%+Q&N(HS99V=T-coW71ul|e#bTFZw>la2N>IlMgqcOQ3H~cP(Z{6axxa+ zXFDKCl#JM73cIWs=WB^OKCFD0b{SgR1F-dY)eP8E|2ggqBHRF&g1o;{mKqQf#~fDG z?l^!T@-&L9fl2uWAejmyKK#LvXV0FtN2=%G_`3^Cpv%QJO;gDKgf>7J=s1MK9BoTN)*y9eb`UN`x|~V6 zZ4f9Cp%9J^+}QBdr>l_9D~GfKHErR{RekI0ap=wnefzlvZqr`w?(1F+=lu8kn#!Rf z=w20S@csA=-cH&AWfDI;_#kj33^;ZHj)km(XQ7%L;(GzaGWfQ?sT|A3*UOu$~o9(d@#p$7gRaSu?|5El;{wJXT`1Q;IPxJGv+1`T(ldraH6Lfx<%;&pNV_k_Vkdt1|ASkM;F*cXqTkH`G^zy5AV30P(WIcYTRvEOiJx1jhcTq{I`sIWy=dPAh=cG-#&^dbyq9Dr;g z9#1N}ftnl^Bbi2vsCxMB*b9G-soGP#DKoR7ueEoyZ+G9t^?mict2P|H;ojJW%D(b} z(WCgMT=%!Rdk08FL_)>gl`B1;96btIk#IB#lS0^7YuIgZXBCkPs6!2yG=eZQen|#* z*c~^3z&piWjvy!ts0LJu2z^SZQ2{y9qBh_be*Kx>As|vyU8;Kng_>x!dMXJbGN+qq ztqKS<3!Ov6j!1X0wShATM#G0&V{0HE?*R}#d|&M4*%*@ULss^B8oE9eTZ<7_m9~E< zc1P}>l@b;LIO_HMNrJ}Bk>%b`fOc-2`v&mgdF;tKEF3S%MhyvwJLCl-0=;w}0&H%F z0zn0gaaRbiXY$G$`pKm>qhY{3PxMx-za1aeW6C|?jom<2ErE3l46LQXm1 zs4p>^$@slLsC$!V#QTQ!eQ!0-(0*3lSN^&?r$P*C>^ti>UvSgm@f-f>#rCNSUK!iJ zpTA@u_8CJ%cQ#_}smjlw8+k%*MXf?yz680?(laiFGc<%~h^@Pk{V+`~H#kWn;D0kd zSo(H1VhC8eu@|+-HFtKmLb)$icSd@~4QKkiQ$^aD_IFrP$Zc3pan~Y1xADsQqmS0V z!P6T08g_oL{)<1T|D*O+ZC@>I-#4$m{dV#3VffOd;vA~j0OwGWnW_bXtw(U7j&qbn zgiOn*Bo!dPm7p(z8Edh_c!L>>sJ>v72v>IY;T_li=lZ@CAGo{gXMfz99Vr_TQ#8Qy zmrou1-4A*(p)6o*&xW^!%pr$)^bS9;&))SpxTnACh!G zDCGde6M~aK7#Mk4aFnNmL_q6=R7Vt7m`u`02m|i5FrVya!WdbZW-C}ol!$=J>Hs)%V|cNiU@lZ#> zexV991?PBeD-h|%uCA*AjWYp8cV?2ibiT?IaqQBg-H&=VY;BESmCnu=1 zK^9#jeLb=PQ<&GF7=n4%YE`IMOgCkD%}0N&%I4(H_(ABR6ze)kiOddxYT@ADXLUHi__#_(uf{oFml=y0pJ?ynoumNvp5WU0eFT1_t zhriy{x9cPS(DBkc>tnCNbCZ{9FX7`=qW`QP^nU}mPus&zF;8YyUW&r5KcNRfus+F! z=6k{aHlrwnN%1mYz0z;ir0DR3DqiS&vKX=uCiRzSJT);Dv^-g^tRf<>^Hhzb8a73> zl168q4w0ZtbC>$8q;BaH&q^5&2lmV#lX#qYT-s}5QaS6#^MXnjuy~X7!z_R*77QE_ z3GDpcD2D;*`vP+C=tN41c!8iL$!k)6-WtyWz^GKA{390-$V;Xr*%BD|hFFx}82AOP z%3lm%O%6ae?xm{AY8aUl?09E$7c&o8sHezVnDa;GE+$ho=5m1jNb&N!A-@brxiSc4 zB*t(leoIk*=Ep%%^g4zqKWvSsqm%IYLzYAG5F^bsO08=*@h5+D%_!yI8ek{zjK{IA zcT;XyJ)Z~GwqgG_G(CoL@9Z?wZam(w^HbJd$}Wo-SI9mKZT*YcQRf!gPthX!J<87! zF$x(hB68XmpmM6Q`@=C%ZvPo9Lk?VI@J9x%unHjx8^1dG@Hr2yzr^8EE$*~~{2YFR z_I|GT%bm`0zorRZpWUOh@xP$+)$oZNi4O+T6bp0%Xc>Ai3siMZ8`LTQ(^hd{VH2u@ zH1_LjYYGcEf-h@2Ydg!s1=WSs(AuH48WrYBC%rrrO9BGHmR?AALTZ6-BkWcp%`mJ+ zNCQQ=7%8Q#Ft@uEm5EvqdlBB!K?HzEov zk_tg6+H@(6Jd&WR1PcKD0gcw?le)Kvn(ZHL>4q+C-SWOw=d|@e*;c(e)RkUVaeblcU{SFeV~&F9_BceiXV=7)o^-P*s$ru*Br7Hc<>^JI)Q z!%wXOv=qM0OXCPhCuaPJJ^cQM&$~RsV?ni#1I_#`ErZ8P`m(b6O0@3@{7Y#UI|6Wz z2no9$3sE7~6S$WnQj12-ZaaTSwtDWv)b966dOe=r5+2v!lMecz>j?QOwHhn^`8dPl zMD)J$yr2q%`-UFT$B;J!o8PXx|iBF{NTK_1K>Lb2ivTWjW94%?pQDLgvvvtsnng{u&}Yol?HUDH{tRo z9p02Uxx3B&6P(@f2U9tG?HYk|=?ppWq%dZ->X83~+)xt?4|zV2+cfz#;@|!O#W65` z{FoXW8TY>Z#dFGs!ck7^$kzAT(Ut%;hzBm*Pw8!5wKr@<+5h(qwK zLWz4t*)2tcb6~sh`=Rc{%!E`h20ldQw;-u7<@C(>;KdJ2I&5&;wx`{5&a)_ZuYI7j zB|W`0q;yK#qNqcSXHi{1_(CI$3SM}WW)3<(@VM&y0=D2Uky(wXku2`ug~@=Zkm1!M z%^5-XE7mKKmc}BL6ev{xNB8mp5kj51OC~n=j@Xr^wd2({*2LpAm+a{3?dk67?R6fU z8r^Y8v^lqZ$5^i~zkThlzT;B|M+f>xm#xHG{{Z3h`KYt-4k|j^lmNi5u)8n^l+%Rx zwbIk%CuxPF6r9=XiM-jm(O|$7P=i!v8l~st=AzB2l?r&Qd^WQ3@bg3=5U>~eImcE+L}C% zUEB@Z^04xAL|1qO4z#e3%l*0*x@pM%c9c9O&A!8)2BoK!PmmbgvBnKoOm)I#OIJmC z*Zg?vB9~JoOK}fauMRkv;!<&=ZNkNEwq-WBBiGQ5;PX;VjK=!vmYNocRXN$-d|$p> zmManE56NkloZuvW5mHf!93K>!t)LA7KiTt>zeN(~@9JB`J2OBe33#=!K1}%6zS>fOK}@Awf9B)ni{Gr0nfI=wuSKYpD{dx(io^)18rE$2Fyu~ETMlm z+TS0AQ_&;*mY8;MMMp;mXH8vQO|_MZQe8vU$7-q+rK+;Mz4d3Ut?m4g-nRa>Uh$?4 z((2=X?C9^nf6dX|g7TU*fj~{-ptWnfEAgM`{5`x0xs8TEkI63p&aYO*I!Odsru1J= z;U@S|uj`PWFDmcp{_6p5nVK4fsi0|kU>g6ay(o)<@7sbr_@a6_kv?b};S?}KVHFna zA&`1xc@4Up4E3mi<@0$EXM~(d#9)GHMy)sS6(Rm+EyQ2 zX|)f&AKsyOCgs@rH#C&ZQ1d|&T>YsqyJ2NotTT8RvCLR_sM|umOEw6F(3Y$dHMz2V z@IN+slD0@sNDf`3H(CRK^4Po{9g{Mug+<|mUjkns>F?D*eFJ3E6iQl&o)Di3XD{N< zEEDNAC%h^x>&wfey}PEWtf9PNq2E^qNSWE+CS)>$nkyrj&+~sRt4GXjJxagp2lRzr zJY*c4S65b6XMSm)Fn^hfnt*P%R*(LOyaeSd=c2#g^w5f?#-$VQgzTY&kf}i7UtY=V@pp@i?6^N2zc>& zPC8O4p^b$(Ifc=#=7x^&L4TG9n49JQi0(3qy+N;Wh5htAfPnlJsczo=@K?;G+^{q{ zaG(%pA*{kN!(2v%@WHwc!9OfJHygQyl0J$K!yYd9bW+d>2?Uk{ftG12cXdHWM+SoB zLqp4X)9jxW$MN>bep1ej4KAx(HaK>Cj2I#r$Izztr!(H3gtzY3VA2>G{efG9=nux= z2RlhJ1Kg%{HiT4ihGmC3Q^cF74`j=cz0#gSU-VA2?^sp~{hRCypL>vvDEIRhn88_M%h22x&Aq98-WYRP6^?@Y6+R-2WKruc0uktf>@T*qxRs3z7F@kG2q6rlE! zYXg*KEkVq15aDFVA#6T`834ou;YneN#!eiL-hKC;t3C`XjXl@3dCyfj#?dD~xo5L8 zFU?iy$+^ln`tVgF$B*BmDrvUdtc#4#2(mt-_D4Y(p zGaS9=+0)?P4TD-iL5^@}m2TWQ`8mjg7A-O2Iy zeJw40^lA$g6qJ@06ofQ=VJhqxdj>V09u@s=iq{)`hVL+dvlSn3O2PI3r<4T+X5`}2 z86wGm8v!xAR<8lo7Otxc%npNQZUMciiB|$% zI>p3}Lc#ZfF@ZxjXGsD{B^BrS8IrF$3 zzzrKo$j}i=wKe#Dcmg%axHejocrZuB~vz%G|*+U77Grq2NH_2P_^W{DAQ!o5MLH9%WA_f2@qG z40qOyco-U(dACnP>XeQSiiPRe(6M23?a0u;%4PAM?t*AR6do){`G`=>Vt^q(3{RGD z0NAO=Z7t%-X%_^I{8tkGTe`>b(!cZ%#40-LYjWUyOh*khLH+0q&hejR_71@@IVVt* zICw5`lsH)A6rl-&L=G(l`Q~MjWB~yfsuh7Elu*|~m;)CH^3v%A@we@-6)q5VV z!A-n6xmO$Bs^(**K#w=j{;zTHhJJ9$$OGaF2vAs0*bB&Vv&FO*Y|-}u8k1kyq0B%Z zRt({5G`^;b~R z+@e=T%-)c#Cv}a*^vZ~IN>)Z}ZElrGT?x#oa166$(%)4A4M7@!8tjh?pjIOMT}y;~ zVuswA_`60x(wBtACLUjUfGH!*_tcY} zFkdg(^#PMzd+9MOGh4hR{2B0gpTOhy#NQYKvu*}i9COdg-*`!6OS&7+!=V~>UK|mv zhy=A+XAn1OQ7ma#rkD^gX{0Kkn0>f*r%SBD2N+i96v43SSXF~U!-*_`=BaX>!Bj;} zcF`rLsz_K%m!72DgmVL2>p+3lA|^dRJT5r^K`!8{(P7fdn#?c(7RdKgltv5mv(Yg8 z@7l_(0a4==^Wd4YaHq5G>paXu-^k9lLZgmUz;&+7$fu_N`%lxK@)g)zb=e{;1fX(4 zH&Fwe$R@jp7l0z04|H3LSzh6jrxNcH;Y5!}AVka%A}GZd`^s)U;Vwej&Dz|@_}!xx z#cnTjukPhj?p!eD{q4y7xuhTO-s3B3={d#%M@9bg6VT$Hy3 z|4%$D^#D6IJLLCg6YQG(j>V1wH=m4Yce{!u0*vsxG23n>J>=#)d$dow@&E#r^rCo9%G{I7iN^uintMsW z7D2>I%i8EosNG9*Urxn-(1`##LE4>)2<5*C@~qeXbB~z+sw_maeKo6!6cnEc^9YX! z1W=Sw3l|6=`Xb>$_>XvH4+ae_BXaOSp#(#U!WPK;Ax|#NLpjHk3-?^en6M6tFEA^6 zwEyESaL{b?yCn`3yZFQi-{~%OiuvYuueHDzBiF5clAaHJPFT4g>!6A)kH@p@nCr5_ z>`drsEWEq`wlGy^*vOo?D9467tD@fEfL91sW}qarIikpxRN*Ax^f42db|)8!1YM;^ z``99YGc6o_Eg6u+8k*artW~drb`!KKQjv|UCkl5E4kKOhFyt{HGStiLP%uB3O;%hp zCNDPYj+qD+Qn)LmN&W%R@RTVPl6KN$&cz?MLDG3;aQBYXHP~>MpDh zOJVl*A3lD8-1zSr;~Btzd!cu9`tzTkUhgfWy%4G0=SChoeo1wIjjb%6_FfC z2)}y4^!#{O_(alWSlCNkB|TP=T{;-54@HRPS{K3fMNVOf2krd(ZE5+W8=rkzX(X`Z zWwfuTG5CH^8SGxA6~uH*WOWvO59{^Z?v13+_sg8plVx(fEXbcV=YiWVU4 zsDlk-2UkIFjWU+xF(+b_J-``gMu9vYe$m^Hz53YO$JBRT@BjA6E7Y65-T(SY0Lip3 zx!At1W+3IELe^!91AFg*iLgA6$LkT8R4!`QP<1>iWXLz~nf-$@+SfPxpyJs>Jlu_x z=IKUa-9XR&G`9?6?*Xn{3Q*i+;EM8ya+9IQP3*5OShcQ*r}?r#32Z1QBL}0`*SrKt z9Vt&KIU(9@92GNc7K=y?M2Zoc1!TWm>P^IjLglvTb%N$2WW)`B1{aOVn?~wR+LgtC zkX1PtK@ruE{Z7;++{3GBPHF(;8{qTp{$N4U& z-XZN*U;5IQmOo242%Z8wG2aBtwLJ_niQ3MnAXYB8U9fY7;Bo(Qg0eaJkt1X+audSS zFJ4vPu|x5yv(Ds;3o}7N6N{dy>pIISn}r`4d3J$nMIggQDRK?zK;g7V5^Xd}(oJcF zzpC&@IR(LsGV}ex(!dKZ1VT9h*sS(u7v}t^u!;{CR$0<-qMtJJwcl#L$;bpufju(>a5C6ZgaX=HBhvqUEnOzwRP z`tfdMt@6cb8Xpn80LNIuUzUXars=2tbwqSSr(SuP_kptO`wign9`U+5CnW&0=;mX{ z1RpfPO6PT{j}m@KUe^RY$?2lk`Y(6z#wukC%#n~(BX1VsAtIYSDD({mqo@Cx9#&;`Q;DdI$=iss=4Ajl~ zJ!dqp>gMFUvXRp~tHm>-r==2e%8s1&`XedVA3yE&$IaLC+S6Pg@*sJhDNhz~lV5TA zd#;#&&!eZm=h1ohpyt_W=f!2ZhdO$ix#UoTabEaekc)9Fi$8~k?qOe%+cc{ViI-0&fYJc3=~KJL#NZgYdJql zkHtJc#z;`MhQ;Qx^s$h)K_)n@Af!-Pr^2X-W3C5du1~U;UCa)$E7%9v2idjkM)pzm zH|+1&o$yJ%o88Mk$NrH$z#e8_W8Y-o#ZK}#`xo{U`w4rFy#OF0)nN!P;hCs^A`jpH zC(bDavDsH*#^3+uq53`Jsj=AM|J6fmnEO+3{C^LZe$IZy{*(QV{ek_F{Wp7u&2beW zMd>_~`=Bb$=fyBaM0gEvfX{T4ck@2JoUh^|d>!AwH}iA(c0S2>@xAuA{!3$up=g#=XX;(LdumwP~EAHjS6@47$#^ zcCmBDz2>peIis(1FC8xizs2q~Kf`E);9|66j2o-+nEsFNP9DCDL+w2A{SA2_z8#M7 zTH}|)G3{A#0Z!pqUW`+?{#h)tW3<}eFfPV5T1kxGN8jmJaS=TjKfHnOxIHG1#n0j? z;sJEyv-BUm6F-S|@dd3PqZ^;a!^P#It;5Cx@r{O~cPnuTHT1G^R@_USz`?PYnM$DH z|3CZ@KM%23-}if1KU)d)!5Vl}Y-C&6`D_AZ0;btT>{50)dmp=seF$vMP3#tSJNtX~ zarS@Mr`c!O=h+w8L+mT;>+IX?pV$xB5802{kJ-N=JMw=p=4nf$32y@yp7NEt>j6(a zDsHfwURKjFoi~3+cu|;MbdEla`;2So9FSj}pMS0K-S~a}y~cO?-Dr=_of<{3(nHIPAoMB!PW-#&GW`NtMD+L9ehS$T zemO?|H26(|E!It?961>&BbvI14L`+BpOWE>bg7BCg7NP4>r{5#bj+9566RxFn zBPG#VN}mcDauveK2w75ulY<@`Cmd!FtO?f!GF`Iu9$2u0a3snqM1eyAh(u=D`F26hPmMiqu>_ELfq!kL~=fOOZ znQrwdd_{LFd_l>|Ec|(8x@Ah}sZOBp>iShH`}@kExI_j_(g@lqmlX^x?a`pkULMWH z32Q5kDVrW0i}ZStD4=b(ieJmcmG&s5yrRQ!=?mqxwdJm?QZJHn{7cnvZcmu+%pI<( z4QozkqXmDBPNi9XI%j`S8}7*+=F>gl+N$B-yF4MUw=~Oz7L+^mt1qBidoIAwxjo-Y zH0&zRNnTq%f``;rsnk?eq5ce*lM*nK`3B+l8K;T@dd5L0zODA@bZ&zafnu|eXFBG1 zD?Wf(@KFb5)z!-6gR%(k!W4w$h<-Z%CbLVB*-<@Z=FO{PxP54-onGPk`fzDOLkc>i ztd{HLb?rm-4W;s8bov;38@|=QhFldq&6@tJeAwS!;KL4mr=%x$Ll0$p7>+f_TY-3u zTI~rSaeFh~qS_Bl>xiziGsjnK@cL22wNRJajq9~1UVH5|{ifGm`^|4io|S&=Pvfq9 zRvs_S33}Zw*aZ-6OZsn2EnG)r(g65$idt7KRO zK9qNyLf_T~@mbk|t5ACmXqC8L*GCZ9P!U`VHy{cw=G!UZ35Vg6%CDhW6`3Q0HPlEs zv;k=4d5T^a%^}_#?QwPlu?ml#GKVyL@jXX)?K7mdp?)i-d(NsK)KCOFG8#K^{J3bZ z`MC5Ym2g<4{-eph{@#q&qMbC2*W9L!!Q)>>>(ij1(@B64rg{NJ9f;(_qXSXGFwtUa zd$6Lwt`9R0wMX`T@(Lm^2#T{1UO}b?NjqYt*`2*#sn9Z@A-Z4L(u~M|7#~gZoGw-$ zZ0usHv87TcDTIWhM3?L(RTN81xZUV0{MS*A2EoL$&;Q~V{H!x}{hV+8d32iA=>bVDcw3GMNZ# zA`l$*J9Lyd6?C*bq>8@I{wM$EUx^Mk^Y7yKWS^~|4_0h$pbzM`wY(godYXSvi;DsL z>Q}$gpG|xbjls%@GlIHIL?Y<3M=~$??(iz-|b7 zgnX_Zs~l!C9!NkH9mOLBT%S>PVEvikYE^b%aU8+VWUFPUHHY6~s@$BCxEzWhy0>C=XN8L_`lOZzgexmnU3exv$LQt2`FJ^aI;%x`grVTYEq zM)dCt@c|u}_`bDD7aCUw%e(jr@xL3z6&lFgBH?L3_C} zzRXG4d69e&0L98c<|>dU3c(>ZRfSgzIIVRk{De$1&P*rL%)tvL%_0`RAol54aukgN z(t^Mhaxo2g{K^a}JiCu-&mQG&e&5v8$tRVkr)KX^_D#*A&=2*2KZ-t(A4EsIjcR2J z+b@f~uZB1*D3Ce}M?G-8OY}cIN1m_9i`A`PS_HQz%n3yMnqP z#>F4ipO5*%hOfc|fQ--ZH$zTQ5N|!Qk9Ia?iTQ$mKOR;t9_dH#r+JGnkM!_ybTifDu1%e0#tCzx*Zt> ztfwOZ1S2jws0tE5u)+jSfdEK=VO3JE&>=wts4sGDn)`yC7Ihg#Uu@`$ioRG?^d*_n zfbxN#t}j0Hg3YubQZaQe5PDLM~*63JU|VQIgmKz zX^=VDF7~ARKxyHxj~td*9A+PRKwdh@Bd;IjaH9kfqE(S!=*Ut2Q@u&*DYZy@x1eX{ zHaXf%G7SRv$O|#0O`==$541~k6O&=|Qtzj-4{geL-7|<&G{%1XMP=qiW7ML5g0|m= zw#3dUobb&_z9GEhEAbW?= zRLVeU_rb(_(4c#&Su_c(yPulHlaJ#Bjnn8`D(G+li81EB5!{aR`!GZSu|yldS=l#Q z=;+)0+`Y6jE|>)BmuRpVyN75JXt;uQM6{crBYHJoj9L0Nri@w8eQG$7u!KS&#e&n@ zrg4kbfr-iHjrRFZ&t{IXzXn2{6SOC2Zvu3mI(~e1hu&Ad4Q&~4Ohs#g(tJ2#TF?%N zF|~5?6Z+b?O~4TnjA@Q>v%z;SzCPrp6{hxHJWf;mspHB=PJW4cMo&H=<~Z56Gnixa zjkXC)@=h9{jwgw}VXx8g4}_8lp_gqJRCB=;L-wI<)pMfx_=^%`>e%cd0W}?NVjq7u zb1a7~8mEEl&12|^_61+1^B*D(9{Z*O=UA$@1SdPNI$-FC)lnd_gWp7SfU>^n50A49w7ufj%9Le2%8 zr9B^1o@6=*TKGUE8tgHIYZ4$-Nfvw!fI)@9v8M@(9lzp;)_a7zkK+$`rm*947lTGk z8|~3R5eY-Ma!Nl9A238E0);=wH2+7NoV}OdEdq-K-f^OxOZ!66?Z-jJ)K)>#-rc$e zktDjN({6oLV*onsPOhEPu4^KK9q2k$4%} z5Oy>2ktWi$1ZrXv!Zzf`E`b4y9U{?|c)r-TMO!A>P4H?d`?eG~(2Qv1;<~Pt%wLUko^4ePc|rA83SpA$8 zNHj}L>J1995+D(DG|?Wxh}5yC$!X*>x+pqmeIvmeB>791sCP*`wVk6V3h~r%*N3(R zvjHJHmA4kr9weGLkf7e+GeLyJ_CXxB2@cJ~$?DI++BNe9q*lVd4ZNphJWDd~g5RY5 zn|K1be*?xwyE@K@b_L!6cM*I=%?h#x0+@`!GVukV)PRbl)x;YMVvUJgLG(Hamvq(| zm*tD}m?Gkt$o&~M4M?EoPNy>8#L0;EB|jscU?7L!?ia#@cpBoAXqTbvf#7VG;%R_( zpp63Qgd764zB$QHroe>UL(v+kv(T(iq(P5HFi}PBR})Np|P$) z*FAO4$9HKZg6>H9BH6CN-=x-NG`A}PuPMtk+TC#Hh2ik3Jzdo9u8*HH)xB>>whKBR z=i9K}MSl(aR^V&{G@lUtr&N+Imf;r`Z9y@_VSjjVx@&5~k)1qFP4XwTR;W;{rV{${vce1bE8z&_qkGXG%Nl70He5l-#(*=K~kR17TJ5 zbC>qV(Kp^0)&9s`_`Ii*zsz5*)Hd_aS863%NhSZhhQv(CXIUwhgJN9gn@zD@c&Qcu ziaWOOfKo8~^r+H!kNR5W$(+iwxgR}5=ln|J=d43FxWj%MWLz z`w?`SR-UdG5IQfNmWt<#eciO?NNJl?*qHWpLkc_qg84KQasYy{zKk}E^+nma7OfeY zkoag+`W{3$FW_*7@&l$t^qXQyD_gRGpKB6d{$=X5J084M+t?G6d>z(RPfgQFs95 zecpwyC>n*-YE+L)1Xq&?k&q!EkPC)cFo?P?oY-1Jn9`qPk|EB5Uj{6|FYCHRsns=D zX0-e6`DJ7JB$RN1Q8aB23^xYLRAt^-nC4%hzucwZL>TDyp}QqscCc>0^WFV8~{`xSip_I z!XW)%PhAuZjb{Mn5MvF6x-JOmGK5a|(kWJ*3^DwA(m+|Qx+Y3gMq>iY%`y;pbCRv- zU%)SnvpNBkM37(}7dF^5h6;kRUGTH$u2AYMCB_Utt}MDMF;lelByA3!N1 zNu(ETilmVc%uU8dqnpA+DygGRsReF;Eqk~65<^H6C~bh(MC~N*o&CO|gOzk!iCsnS ztJvq#Xs(1@X@z0~f;Nbf@EQ;{n?Ald5)=XL@F@H@6Il~)7S~AU7L>Mj?;PAlj?NqBAXX8C0Df>T*ahG-f)OdPP`2(yqbK2m)G^J9;Q#|a6V z7(d~er2D-I-cNr9flWMP5he1X&){MMBcDFu`g9cTd|)qic2M_!O2Y6x(y5zvh~#=d zOMY0+h^|wo2H#tqy5xq<`15YYz68r>qMma6B%_?=_+`@xd4QUHZ{-2$(U6?`zqUrH zk6bx*0ziv3!N3brAQ!H1rywr@L2stWsBf%cL31Rp35u)lUl8n;az-%oYUW1^h>1rM z-yJTFRT#mQcSB(2SW~S^weq1*) zJ{2&sugVBL*gBBgOrfOP7K{Vcfrw2<2m{#k>;Omi0|nWr@|Bf|T5)cUx|P{AEu~2M zBx1a%icuIj{}Hn3YZmpS{M{>kZ)Sx;S^w9+Qu|Yrb494Owzea$Ug@oT9uj4om zu3DvStHvMEQ$OmquTTfEpCWfF;5USmi+J2~Re0S0^cXLlef@3i_v)Z_2_jkUBb;O9 z?4Z)B>_;26hvDJhT;q!deL-H{ciTHFwIA}qWw-JJjT!~qaJGz1DcMQ~C_QTFT5zqo z=J5wQ9(<_lp$EnLg{EWNSIo{;I+e>8zi(^jPoC|1_8IYhUgtA7{)u?UeG$YmG{Uz% z`MhWZ6_%r@Mq!Uc{_*H@b+ykO{m17}$>Ye8p`X7rNbf(#oVwVX$~yiV#OCq2lk9C& z7HUAG(qnYQ;Yq-ch;um)G3CLxF~tulTz;zZQ{crl>`nfnXd{nJ>UVyK*NZ!|9%5?h z9SW-xH5gw(Zoqc-k*^k@B$k7cz2zWtT_x}V+3_6H@MeZq$Yxh$MLA4X?;3cevIzuE zu^xtUXbmU=ts-IVjOiAp+U#)7v07lwy@!!rOizo3%vCKBy*Qz$Ye`rrzEf4Xl^d^KdE3sMDyR|P& z9US4+J1=giJ@4>&z#XcW@h7DnYbcD&q#upDuvC;tX>kFP+$lPkz_CO8RV*`b>oSIl z^)z9%L$v5yL#2j{F9a$GMvGidx*BVzelb-k?_;R8ms?(j{I+%Fb)k}?!fZbh<+)gx zhtmL{pach{xz}_2hmC?UL8`GD3`Zz2KGIH8k&;)(&d0gpg30xpcaFE!S2YEEUs$#6 z(#t3NhPRjYW&d4ogLBK8tJ;P#oz;V7gPYG=SKCxqk=vE``wu?;>CF?Pb(Q~;zWl1n zI>4hJH1RLUyX*v25gIL61W3B=Sc6(Tur>84Ytz$Vk94OaOaWIp%RP2f9S(Z*>647w z+{Wo?Ov>mn{@ZP5l$pZxMHFGb6EC$f9jB z8M{bn7be3a3SJ>f6_I^JrUOL^efY9v$ZDiQ#<23j_N|?c?PT+wt!+5VL{X}GCeWyfgjVN=J7T}9i-W9C;)=Uj5G&elNzAP94PdtI4p=%B}sRyNb0^rBy}GvFY|dh z>xp$y;BS3xby;6|UqPN1bv>L8=0VjGz>caWix^d48SPfA?dpT^_`%g{4#eXJ*2Kn}o5y3~y}x7S%8rf|{h>UnvXmF;l;?y%8rXc%KI#j=;f~|=Um*zrZa&tRFwGBJa$F9ye z9kw(?_FRYEU&>baglvT`hLls`s3qMsyt^=hxF(zG1`i z6=P#7tD2juDw~@4qoe)(qx5QNt*&Wpt*LHBHvo~(@*gA58^viYnj0`JSOX)v`q|NI zuEB*OI9XvE`HzvajqW*pTnifDXdpzDf4k9&_C%s7J=PgDXGI;h-c$4eSmv1<->-h* ztxIO|sbt(H7(<8gwgaAWDl8^qsF?Gd@r>wPkQ<^SXicRb{2k z=_}IemK|=}JP<11JT#oYzMNYIHlDL;}Q<4}bO4u6%r zl~#-j(6T2=b8!u|;TgbyWDW#QzoiW1V;Ha$E=xZ!`Oj7BS~+S@hT z_RDQq9#8_y!1efZK(Nl(k(AuQqgvH{`r|Uh5957%nVaJ(9~GLA}|3 z4z3s~C>R+j&<6RWH~WM)JKK9ATgquM@Mr~qO&<2e)$yUCd{F!>2y38wa7#n}4;|qCYnhF$- zRRbYZek7EtU3F0`cG0S#y)o^&jG<`v4u5mjigUlmb20`yqC?L9Lu+1LdwGBVW$WIj z%?4_Fn(7B4%FKWKN1(P=@ay^PZDloo6`X!vg6A(so*v2bZ%Fd|shs;m78B2(3%Q|J z@cj9SHh4mA7*DpL%L`nWAIx&Y4CIDi$~F>m!&OPSA@xpxGlspUK&fCh@UavsSGaJM)Zu^kn^}$KRVC2jTKAwqvMR) zxDGi$UJ&zAp1_5z3vof>1m>|2bFfZcpP0v+5_9mms{&zz%MV<6D->PF9mGliR*7#s(sp{ zv0vGtI|Hvxo{11npvJc?n$rP(kFXL_PKOpxG)O5+BKGw!yr5ml$3Fjge(t~hoA%je z?)fa`g+`VMu@6>&yGp10>InC-Tj8)G9C#C#90|Yp(R+XX z=)F%q$$vVkRgdC*R1mIA>?cF$JIT1YtPHeyJKG=Mo5@{7=v;i-?T7L&i&DEYb=s4z zC_YC3+788rEI@Xr(~c}acDr-Jo2@wQ&h<@=w1u8`?v_nsqwCfTty-}>-rLm?ZEM`# zw7tHzvZACYuPnbT;LFU-%Jq25LP5l!@_>+4X@{XiYe=7BNcSAZej!-3R#@Bcv;3yl zn8u|Et`~7CQhx$57TMKgHEPqpQGc+ehQ8*U+tb_} zo1wQ@b8RiXqaAva?Fc--HG#Jq5_okgyd`=sY0Y?oP9*m_la9>5;6>=fhw#i-1TK#! zp1ENuTo(J(oBAG;eCDl*^=#T>jA!bf3HnCy`@pGvs2>mCe?}Exv0=g!2&@PE#o>8Q zyofRZt%jOf0YmffFQ*m`~}c7AI?p5LD3X%5shHEp@<7vWrf zWo|f}t6i5H{$1nd1Izjk)MVQ|S&hMhk=mZ^?d{upYDWr!jaeRhcJ;yjWd}ARXcoCF z#JKjsC>Lf;Y$!g!D3Z@=nL*tMD7v7f(G?OX`-7zmT{FBlCMaDFTVGxVjU9vDp{cy7 zFy9Yf^7J(3<31`?Xca@0HGcwrw=%!Tqegk#4mhS`M++#F;yrG||<2q$-I~s$z_cUFn>-{PFd+L4yo^Q{+!zaPS zxZw7ZpxsfGsL*choPvewr(Tys-bcBJw0D=**JfVaj-cIQW~ zsc)#a7S%)=8+ijBgUODuR|UVQf~vxnfXKR)TgTAs0AHtk(}E_O`1M>)W(KD`7q<%~xSg%9ig4Cg7iq0(ttf-C z7Dc-Peu>TLVmcx!Rn15kP!K!^x-N8!N#cy$n53XIRFS;4JoH3C{=bCEBgOxcU+_fn zNLy`7Z(CnqK`2xZ@_F4JkK2nl3fY0(%&_BBVxp~)Lu<&{bSH1mL=3W2(Q(W%{@7E)* zPtf!v?-yUlFD*jTsSRm6`B0*bv*kgljg|BIk)-oy#y?UUl7~!pKP8Cp#24aab5CT32D4;K-ynLynGc8Jxi~)Gx*r@?v3-9NQZAp&(hn=W%DG zIc(&dkAgB%FHKZ7Tp9?FB2v_bgCU4YF7g9K6?r+HqWMp95$`wZ%Okj?55L&>=(4N?# zTWLjTFKVe;W)``RSsZB~Aq#KY8V@zpbJo^U-_g)fTU{Oo*~s<7>gsmE5LU?9e)l!QUdGCK?0%K@znv*pM|{QsEy68O4` z>i;`4_r8~XdwJRSy=~ei@8#t+ZJ}A3bZ^s*E+8Ro(l%|Hlq|F$XxSGLSzK6LDgtUz zsDOwFsDOx|pjbgcW%&srAR;0{+r0e0XJ+nw_oZp6KmGhZ|FrMkxo5UBXU@!=IWu!+ zo$=k~v}s;$@|6o(u`K3Ebe6@!ap>9Qx)}O;ER5kkA6f*Ym9c~rkCklE;#gWzs=#tl z6hbRx^~Z{7b>Y}FR>|yGDV}6>-g2dE`ikZ4^J%qg`MMSB<}Yhs*3vwC78W1sE7~gC zVpq@7LDdskJ(EgB2w9M*v>+W_VPi3?Yo*RQ+vCSxXB*plv>#g=U4Y{YK6)W;(lxrs zRM!ffvr-2I%;87I-)Dz(U2TS?=-n6@Uu^a*nTA{I_{Y!Ox{0bRF3qX3*5o*dqO#6X z;xQt#?j$dih`QEN{fP;g9?OTlQ1h1MWMrpjS!roTw;N2g*L0jjtgh4qPBj>f?oZ70 z_=p#1y|d-)J%aw^{1>|y>kBM_RYtx+1&q9&3;tP zS330_t@)^H|IzhqueBcTIoeP10K4xP9%C0PuCTeoejjhS_Ly99Ob=&)*JdC4jqcqL zk#w~AIPg)WQ3v_xOU-F$hGsE~kE^X<0;cP<1{!AN^vX64GRKj%F!Xux-ne+ETfs|e z697p}2^a;a!ezhtkx|G}R}(3#jc#D0*2U}V4WquHz9ATxS_8By)3eJmYRi)13#OrA z>YW0UHr#9o;x9&9D}Rg&VR#M*=?S+11%? ztkFyRbXFG_Lf~l8ipomEsH~~1sjfoY^3uxET3p7MKMmI<1RAkK--w%`aVsihVF0pV zSdUJ^VxYtNyr-PDLxzWE26%#KtPg|)EJDv59^TMvC5Wn)fq~{~kzn<1hsH(nn%Oxsbjyl$a=A?7-wym8eUg20fffhoM3m^#yFw??C!t2X z*fL9-{RpMGtUB^LcK+B|$X6tF9$7<~KwkPE(5Mi3RGI4^MQxhv$Nq$b`H@?|A48Hq z5{*+7hh*CvA~OY#Ku4gMq!2DQmykykw++piN2|MB3`6KeR&C^ujm;kWV57}9qV33o zhB)%m@oSBjfuB0>h`rO&)`xMiw(-G^XLo~EA1QJAUApn`Ya7`mYAuq=E{SX&`q}vH zux9$UOg|a7`*k%ZWM$wgS2|p-`;H7dFO--JjLc%xE+ih4*&Nx>oTqJpB*!Jk7;A~g zI;LzT3MbrQ8=~9S!Q1S}?u{tB;2Zhsv2U{nv#Jvks<@{2rNC(t>Y>fpr+w6|vNp-62Xm85_l|ZCDQSiF=Jb(C*jLcpd{PD!wvhOV z5~}yrSCo=2+T2Q%5ioP3yUXmX6de3FlIW7s^mx0=q)S(EN2xzl8dgkJU5b9wJiLQC z%^im=YmU#CXITaQv_p@f_jK+l&B-n>t>WBF6iN0$x8ruMw=s7}F>MJV>v$K3@@rk(lsx~(VJK3OVr&W1&G0>*NP0F+Y?(8neG_lLe!kTDx5Sysd zmCziu;!UoLQT6<%My5r_`T}b7yhc{fj!c#a(n!TutPO zp651xAt9Obgm@O0naMv$&K_92sz3fhe(&_wlvlltWB-VoTUXnf3`WNoU1D^xmv{)e zpN&fnlw#_aN9PUbumKi^x6)Arue8<1=g>T_gw6?gVTjum1|aV3qLAE+s-Pw5m=g+E z?5~t}t0*gGw9rqd0V6N|@Q3T!wd?VW40Jux`3U~#fw6oXIDHd1!$` z94v+ctCZwK5g!i|tmq&4oOs#cz{%qIy4Zj+Kzx@B&*Ony9+1O*-Fdk=($J~waOjab z0ZE)3^V^6LvPT|L$lCZuQC3I;ZOo^iH>N{xu@zle4&9KAEWjb@V3(ZaB#imEMM9oY z#dbjqUSM#txguM%I;HAv&NjseiAtM$aGR|^^5ozDzW(ojXDzJJR~i>zmX7^IcTE3h z=Rfg3bKUjvsQBdg8#X@IW0;YtMi09K>p0YR)BSLRs`n{FuVcVM3pOlz*1o1_y3w{;XzZy#Agu17G+qSsVwac>hdmZL7|mGn>GqJ~B5WP-r{$;TlWk@%%p5Zq z;!t}f>?N2=2nn=zBIf(_irU%={31_{J&!xQQ(`}_o>obK%4rFmk#lM*E2d4WsI2Xv zB`VDA_F+$RoGzOWWh*zTjW4M3O$A4yI@YBpra^b%jbE1#$Gxf8F5>A;v64j+W?Rv6 z)*>)LQCb1pxN#~H$?Q5xQcQV+6%{2VxGNOaS?n)P^QGb1 z5;dYJI%G_sLm1oyQut$Np<$7OngD;}r5|3;vHM$pANd9^#lHMf<{}BMdX79n)FCQ$ z&^6bJF5`zmm*>$N#zQ}z4!w4{(bL>*m(qh$q903(PZi!oj~99!yK7x$Bqkiju^VL`NLL)b)mVykr-d@zL>d{v zV9E|TZLx)}K;R&+Wl4MBRu?R>nbt9_zJU^UR+Qc0TRo?Lc(eMkBTJY5R{lpHcdMSS z_;6o(MjVb**jJ2KV)*^B-h4cuRYyG@``f4gHjnmYtT3GdVDSgxlp6 z-ndU5H7}75dcE1%LAq}q@1gC7zhqXP|O!&ibK-s3lbCOAO|wl#6yRFGYC5EAN6j1)9lC$RYVrg&I^JW4Dml_&rg?9C^& z1pUSy7#Q2cpV@lkr()-s8_(ol9hB_9$ZG<41NHEog76iKmX_ z08_<(29}8ns6CGTL-$iDMqTrCvOz4{sq_m-Wh_JS)Ky&1;F3?A3X(XHg$X z2K0)!+{}`^fUXvolVCF~Y|d;WO_V$YgsCVBhDkEbk)>V{cHppPRhnH+MP%o0+<54= zCs6f$PqLx$vAf2{sbu3sKUpTyUnWyuiUlCMpTRj#Ou}V(lyTN43ay@Bnc~WL}=%yzm4bcR^XJC1ipBz_`sb6#Dr!)bRDol^gE{u_*yt-6p zXMXi(eSiM*_QwyO;bixGHlyCMfip6G<9C&PoS&^VGuSHxHuDUO6|Np6+Qnw?z< z5l>6!T(?9!pGXfYRqe5e?SV#n z0&b)fo)kax&?kW3rLlT=AC5c3yDX*GWpuuPsHWAS>0xILAOzJYu)(oXS+USf zZyaC`X3|nXW~7a;KC+w08ENxXB_>w+*n|kk0SQ5xeVp&^BcX|yQ1Ox1d zyqT0`S^mVx+sF^=q~7rn$o{qt6?-8A6@_^o=nCi7SNalhAT^GOT80I&rLe%tmY|pB zWGz@=+MvuNF}cLqYAi=`P^xC;7Ng?xNUaKiG}6Zc}DyYOLyMk;2PnJhKO&(m0H+O`bbk(!jiab8!=erGMqO6G})O^M5=OeuhD zI;D0>?X;;_X00r!D5!v@uB5nVQXOzEbik!yEVs&E&>O_86zW&`D-V}@E2V_xFU_t* z2&vooTJ^e3W!?SN9o75ri@GB%QpD?vT>k{SbYIy%cAXh~rsbZNXYi+9N*wDPf9IZC zrQVLl`{~f|Il5zPf`aZCJ8S|(AP`ROa`U%~tga}PZqNGDAp z8uE$Ha%pFqTtma`K+SR`OX)cRDP_D;aNl7b-nj9wwPU|E`_NBt|1%~DmtHz{*QJ*} zw+|DH==>)cxX${Fu>_ z;zY^(JFE*1oqW>C){hT;Vu!-BbH&QeOAU^8t@dNkJa%_;yf01b1C|^}z#>yMEjj{I zT3!TlgsNVAG);Nqo7shvoaPEFB~wURir15%$-~KICzywrphSq76IGW&@8vx-6>W2e zC!*8`AMzdhz2~*GesG~pW||>^&?{EbR8G~m+*k7dTRAkN+@{qa8^J7?<6T*ji<^rPy?UVErg=6oc1~GU1wOx-Nsn?NH`RJyS z$@MyV81R+CA$((`B7M@l_i)G45t?kj@rLT#mqd@a5>zII--x%2QdJ0wJUX^-uS)$R=f?(70Z?x#6ibP!_1HY^W$K z&h!@-Rs<_617-O|nKRcem{S=j%}0phqKaTuWe_1`==v%Zb7R&UZqolSuev&K;xAlN zGkf7gAbl4^e(Thd)U9D%`AnD^+Si;om%$j(QizOfiK+v#+Jyrv9+)Ta3>hp=K+4{m z#1g%UWE2@on%K9!9g2CcS8TvbcsGIc!i!Dlvz(aR6Sw!@h>D#%V3CuIlZf^eiuk1& z$(r^jN_Xy6y1qA)|2-;amz7K@x>quEgXB^P5;97IsLvwsE!$GxWcEx z;=E<~%gEe-BdL&1CPqZU=6^7-v-#ge^jIbzJFX0MXTu!~oyp!k7ZfvNVF%^@wqJo^P^fX9pTi6y_#jgaxtJSnw>2uv3%fHdlpyN66 zY(-sJe!ee0iJQ58xx@74ymF_z`A@qZYEJd9=2TP_h{R-J7U#)DyPqdjSLeH{$L)@( zDz^u@AuUFxLjUjv_DH4~<;^9@&^SQq#15eeN{2Kftw`#R!nAl~>k?Uz)l3_Ej^^O$ z1zvAKI{O7H=!$%4;7sPH-AW(>Pl|tyzXJ;{$m{Swk=NbGOX@iaa5xug4xQ!EdX7S) zP-baO$kOYY4OgNMJsN?N_?+lm7Z<(!>nMD_7I`^3nSE!h6?904ecAWeeXvI|u;f5G z*p_zF$nJnlkKp7Ej>_S#U}^cg8(X5#DXf%6&tMNC=9rHi7`8f8U{DibH#EZlA#9H1 zWMyJe4pzL##tRwos+R2?#-{XXA2fJab%7-A@$^iYHKn3Dzqoqs+K#DBQ_8FJN~(B9 zWTvm<_l47H3#&@z&TZ)=S51-CS&Dtf*h}%YwtKhGSk0!Z6H6JnELqeumfQhM${D)A zrTNV+AlE>>iLnWbT~MGW)BTg006c{oNv6@4%95}^n2>}MgYofJH#R@x3`IghVmJ1f zoRqjcU**?qc#^zH9`D}cCS-UMlDx-Ar+I*iY#2(jjV{l?8L>*37FU=gGmO z;~4hCNvEev$}h4HGco8K)ErI96%Z(}wlx=WnIl&ucoJ~=AlTU)!fqn$D6&YdV2PK| zPDm{7dyMULFFLbusu^nDO@fk;{jnVr=ha}C?S!K`a>bn4O<~A$Wj;JANv;ToU80&4 z-PCHvQ6gTD7F!>@qI?qRq`-zP9Tg3gs=rNp z8}fVkt8qnT+3pT-;q024up2-U2W@nx6}36nP_aE zWuzsfU2Mc9!1CNs27_(AOHz_J_W5FWaeM+g4BFAjSo{X*h-aJRKF)YB(~<+(h~MPI zhjF64|5gIc&30UleSmw>_r-G~J~j=Q)!@g*0i8n``pj;lyX*7~>sGH^wq!wj%RG|S zh&|~~PCLTB>J&3(N)a=~I0nB)rzkv3+Z`TwJ3}*Qz@C59SE05@I5-YFS3%WY?02)X zlBpGIXB8Dz6nvf7n^k49oQm=sH$%JKM{&E`Gq18T;n$M!Id1#f&%VMxz%qV@0n55r zS+!*W1M9UArs?9^=%zVz5ZFhRnraxS8L1e~ znw!|2k^J2WFfNjucrL48ud*B2>5+FkU(PJ@dW$k&euosN9A|IehaTa1q?bpx?4?4X z&S_1Qj_^aer>pjOH|;rCIin(7z?2^?$^@lFD>6q6qiNWFt&NLZxsiDqr_AnvZM4vo z8I`4_l?nV$ksnphR0h#zXQnkzTU!pZSID;onP*GAbusAyNiLynu=zRJYE=f!5_*0J zNm(4&z#NNf-?(1*5NG*vec2|gorFW-kQcw8U;g}Fe;7Ylzr@c6Sj$;woi**IX@mH~ zYuZhnohKhSx%1?kKeg(*^X9CaeE`3^zqs<&t627dRd<3_QT$s$uHF1s7@KpOv#=%v znHcaIxwImehT>e-`)<_c_OMoe>-ZULxA6rWR6bRwW7_~MmX-*y6ArYUxX46SGLN9JW|OoAHPtR@){!Qq|(e({yq(TBKKBkrju z78h$Ik*l|N59+u)G6!+*lX1O9K$b@9dM6yUIab}%RzOPh?Sa#VBk$uuDJ#6jdwJFP zqiAy8Q6#v ze`@uWn^$!b4$Em#a+0*LOoN^eY~nf)g0wQy=|G4~3-qND-A*a>ehO(VU#{rf!1s=i z0Iy`DUQ((G>=t`DCbkwybB~EITnZk9F&xXq0XS(wlK@zljT~IKenDN$l==nh`QFYJ z*d3{Ep&ddzavDEle5sf(dHcU_OEhw@v9-04eq@anKYqr%U~nG&LZt--Wn~2grHaQJ z_!THCX zc__oZ>44G@-tzGGJI}j7?0WM}c*CZ94tsTcAMC;>#Lz;Pbr{;MPmYl@r(J~$N=pj!N=pxgr%w;lFPNW|mjmlM z`6$j+C7IZ z2R2LS`0oY;b?u?fFw)aAOKB$pRj)+{l?h=at!#xyMmw_d!-4W9f8MOB*2X8p*~#g7 zT_=gmio7zMS7+F}92%d3+D|iP$UMs-qM?GRDagBk&k)qzbuuG0+3PXV7}(J^bV8>{ zkdZX?g@e$M7s72-GnXWm6&2;qeKJ&2IJ-2yV7fo6U@r0*yMmQLYeH)&|3;e~yMlj~ zm34F={*&XcjQ@czKM}e@wKeu6``)RMg+;ty-v<)O8ow6SfcFn!7xOd; zd)tBSM!1(H?43zqe|KP4^1bZmGTgfk>>hpwy9Hy4*ZhYAyOLjla7lo@=Yma;(}43Y z#zX8z@SWEjbHaTeu=BweUNd6DY~F^g+#?_WWHeC^8SOiA9GljB;_}&v%4VY8Zr%2q z2#>x))Il~ofP7)+^|<|p`$U)1XNWo}0YVByT8qV0$Yl3|FOFqT+mXe@R9hB9oKue< zhuSvDU^)(DFvPh}#*w%7kO+CyQRhkIFNTC-WiLum<57$>FGrdmVeb|)50W8!x3=s= zY1p!pJB{PYO+*JOmX?{2h9fhHO2`rSLS|C;7RGcSIOc{91k!S>yhJrKsjMU_C&)?> z$V#tB9;-jD&AZ8F0`B^sv@dsLq{y*kBry|Z`wnEJ-v1LDQYS7OiJ7)cWWT9xG>C=3 z_d4+N@$R_Btd35^kxV2ODw#->j0eR*$TJ=P9eIdNl!d0Jlq~6-IXk^vl+4Ra%50fZ zR*c2>L4%s5n6uqeTCsy7`#CeN+gFeObT8VNor zO_3x8eF#|*D}S{x&9|hfj^EJYOVh%XTbBB${?IMkIQ?Oa3{?ra>_RD*Wg92lr^A|{ zHumaRbhXbEPn>T%nK@m$TV^^|AACGnY58}Rn6%`8A7XqaYFbN6N=_0dDRVXsc!Ch6 z%-KZcsQ*ZYYE?*}N@X9&4HBQ!bwrSyWBNrcSZ!!dj+L!c6`iPD6={IHIRbg}g!^7? zh;!1u_Z?T)OKocWB&2=WNAxAIe<}5Y=t~|!S3OeVb-?bHFrNdvPE3WYMBy?W*lvV-S;G92z_J|Jm7)?d5XH@QVE6C{ zWTjUC%W+^=ikS#UIOn=x3jw{jzt+OAh2rvunmNQz9x z_hL%}wjIjdBz#kx3DeesCT!SN2z$QA4+R?x>1h`B{wjk3iScHtm5OL0JzkfE#1OJi zXSZs%MvaN(o$FUkP^$@c;e~tbCT_pw_~htUPEb|=zaCRon4njginKo=&H?7>bUHqT(D>1?BeR`;@JzSuji5fTHcVdCggqJo->B$eRSS8gF_09J!+(xf*mmE z2~EBiCB>PzU0^>PQ8QpRRtO6#;<%m)dy*`Hh485p!dhe>dGf#;nzOM^0An3k3iqWI zrWeu~=F*CIDPp>GAD&bmOTSyE$LEJzrUm2U%1c~DIVmYQXKr;#a&BT^0zDg`9~lw* zAa_+8pIdUE2pm5hd!(=|?TsT|cb2!Y$H!|L+hJ$e6Su*Li}Q3R!uW~@<(f0mo~IKZ zHLX|2akI8Ex;>!}_TG(gB7HQy5>^TMV zFxX}B;zBDJ=()(nqi9Up)GU@c<%YEIMAnRr8|6=gS5a}s5HWE_VIJ5ruOts_S&$#g zl(g7% z`py^#H81U`Dyc86>R8$$F50taPsiMnDr}MIP<`uvEq_g0c4&lz3oPb~jb*t9|a zno5;Dq0hAYSD55E@&5Jbz`B1e$j_zzwK%=#Bl}mU9JkH%CM@dCD~yXPX>=E7*Q~g> zxVgF6$pwiuJ(JTlA2)5TZC;g=1(5;F3qf@$)`r27mS?Z-3b3IFrXwtY0mOsj02^@C zrr8Z6MILiyVF5F0sw>M%iVLO{PQ_(K$=G3%&+^IIkYdN^1}W~$Wb9tj#{b3QsYUte z$>}ZiQ%a^3=B1~kwaomCyByc!5Pe#T*IP9mj`U=5Tse1cNkIX2Qc=5vo-0-I=zrW- z{-|%ufZbP0Zgl!ew1Y==9{&7e%=9$rTtSkV36_gc#zlsW@+(q||9-F&#cQ+YR zMV=kmJJP#irI?JN1_l;kqXG@F8za!IiYI_T9-Zt=#f%@r6GUvaL$`d0jHZm!61gp9w+Ogu)$Z*u5MKVCNeE z<${iz!vtP>U*{kG{;~6u{1*18$1OQ+Z&J1=!AfLTvo|8$OUCZP>xF^^*>x@X%m*EL zCEWQdOCoNh}lvw}@DMq?VCqg~)`tAzkl%)WodXJ1;NE=wJt zyCf3oRt7^WXC%mbCI0xhT&dZRQAO{{j85D*aaV5npM%S$)-DbF8TX4U&n@TEUZd5V zu`~C1Yszo~BOYF?kNp<+zO4rjo1`Cx08P>n>1$Bnv(nS(G72BApkxVw0Bi#uv}(rs zi53uAbUf5ub3WO^vA5!o@`#q@$bx~u+&P_Ly@Ihuna(j(U z>>=%rGctIIcE=lwc|f}pjQ~GayOZFy@kwT7{3Q)fF&eS|zs(plb{S_ILl~{L8ryJ} zKneJLj39GqmPb39IWWjA#oyluZC+2(%CI(LHw;k5dNDbe#3b706q#_iE2Y|6Gv0n z)y5(m-YPLxp!8Ih5}c8z+NPA3#-u=$n8*=S&-7DmYqET8Y`Q@qYHh^9nT+K3!O5EWy zW{kt~r;lYqpYa#iddNZx>1Ek0$9NnEo$^>dD`17j6Re088&9$lR?5m)Ijca+naV1S z4`BDHn$@r=xQl)&n+AUTIjc2(VLW9VV$+SM*$jrek61ly^`KW^L1QLsfJKQ$7B*f% zzgN#@u_iW~%>jo5j9;?3#;@2(>|{2NHM16DD{D1=&Dz*}*3LTE0=AGXVvE@lw$!+W zEi>*k4xs)175z+zEoUoOr_sn(8hvrTL>>tVfY3(T)K8ME0o*2lK99q6;>8gH_G;|FXf8(@QM7sH7< zHiZ4#!^V80kBzWVb{5;s_OP?rImQn5ads{{k9~rD(&%S{fQ0 zv7CLKeFO5#H`#u6JNp*__a!>|yo@d(`+U`-yR$@g20uw=q_&Wsk9+vd4{6*w2ht zjU(&{_M~w+`?;|W=XIW9PqSYd>y1y~=A>tgy~g?M*X$ts4SSY7XMB?Vmi>-Bk2^De z&;G#v$X;YGv6tB^?0>L>WFu~xdzHP${%o9ToMybmUN`P%e_?O1H`!b4ug1sN+s2>S z-`G3Gmy9p7zq5DQKXAI{pX`11FZKcZkR4)&*%3CzB5WLsYFNs`tkLASRU0R3;;@lB zfhY1LoX<|-skjj+9j7FHJd^u*7WU@m@LZn9^RWZ9kQeb{UcyUx887D*yb_ics(B5c z!l&Xs`C2}m&)_q89k1sB9^?(UL%flPako$tpUvm+x%?!4GM~qrc?)mlZLrGJ&O7)5 zz7TgLF6K-4QVvtidAZ`d!Mph;zM1#% zUcQBI<=c24-_Cd7R=k~jfDiIr{7gQ?hxrH}t^79rb^Zg00QDIEDRvyq^B}Ve#n0dDKCNl zjz7;|;J@d8;D6*V@|XC_{1yH`{7?K<{u=)?f1Uq@zro++Z}GqKxB1`rJN)nbUH%XL z9{(qQpZ|-0z(3@N_+fs8kMRf}hXRRKIbeeo8fy>keTWnBB0(gIB#|sqM5@3}8j&G< zB2)N9mdF-4B3I;zd{H0@MUg1RY_dd@iZW4dTx2|m!=M$S(zs1jVXJAi@p(}rriiIx zny3}i#SAf1)QNf#5JAx(LZVTG1@;Px*w|ZWrGY-xha>JH-L<9dVbqTiheQEAAEF6ZeVli~Ge7!~^0%@sRkT z_>uUrcvw6l9u+?kkBOg($HmXY6XHqZ`{L)~7vd@LwD_g?m3T({S{xL=5zmU}#Bas# z#Pi|>@q6(H@kjBZcuBl0UJ?Hz{v=)%uZcg4*TrAN8{$pzmiVi9Tl`JDBmOSl75@FSXbE-MbtTm^bGt8N0 zomp=N%%Is|hRjAYY|g^v=CjQ?=3Mh6^JH_L*=)9$t!A4!-)uKK%mwB`bCJ2&Tw*RY zmzm4W6|kYW(p+V(HrJSI%~Q;E=6Z93xzRk;Jk9)=dAiwUo?&*Io6OB-kJ)Q(F}IrA z%sz9wxx?%?cbWs{pt;LD(;PB~G3$;uE;BAMK4n~CTxncrj+mp^#QM5%fq9nku({jZ zW1elEV}9H`*F4Ysg!xHxuX(m%LGvN=hvtvWADa)GkC=~| zKQSLOe`-E%{>*&BeA4{6`3v(Y^J(*!=C90W%wL-a&EJ^Mn$MZPHGgM5Z@ysu-u#34 zNApGVCG%zT74v`0KbfzZubF=~UpN0^zG1#;zGeQ^eB1n+`HuN_^Ih{F=6mKp&G*fJ znID)RnupB8<`HwujF{t?fisI+0;gas%VT-1I4d4k$s}4yxCt!9O109gbSuO1S(&hZ zk!59DIaaQfXXP7L8NbII^V7zQnD4%9ykPvn_?_{*@kiq&tH3I>imYO*#45GQta7Wu zsXXSKl^YeYePO#B0;vI$p~x{oSJ9I-Qn)w`FJd z=App>Z_D6T+>y1z+tS{>d32;Vv2AnT(B{#dTl#zVB((Jmj&yI{+&eJhnZLOkq463T z>>ly7OI$te5~z}H)hM^=tlM-}Z5rjahJ{828)zx=2 zcoxVU6Bk60q@?QV1A&AEPU_~uP2EF@3!`B?i(IsA)3j)to$1O6qu)Iwh{F54M_1k*8<5@>=flY6yw;fvuhuu59P)!pzr&p0DXLUsv6H zn{K)a+uE%a+XjaQ6shKGq}%OSI@Ekk_4c~t728G!wssGV?(FX#9r3QvMU&KNZ%JG+ z+}}OCO<}r9zg!518a=BeG;#HW!UyU#!c8)(y82li<{Hq~v&I#@QKD5BsBiJCb(OhY zm#w|gS{p4(yH2n}Q>5K4n=Vs(d-B?tvaHo*S*xnaT07JS;;xmIeqB#r z?@;e>->_%h)}ijRdJ{K9Jry~@NgJe>{*<(@3j{TFJ7#${%48EZI!xv1b``9pLq%*2 z>vz3=2lYEdZ?sQcJuUJZ?bB|rI$leY3g6PI-#VR^ptoBWx?8u1?p{^U&C#+XY>r~r zBWuIcE0Of{I(1Xu-l}nJ(|NY(JlZs_ZJ~r-CmoHxMys{ei@WkgU(R_s!@Z+}yur)e?nAn8 zexT?XPy`<6-ZeNpGBmhrTd!xp6|A9A^n&dM-5A@gQImAOrrUf?+WETL=i8*$)!)`( z4My9;d|k?RJC+VLUsqgveez&Tdl=NTP;I+4anRMahh!lMu`ksbgO67U1B}(s9p?pCfhFFx{J1Zv36bZ_OLY?Eor-^Plu*g zyIpc!;`WZ@(U_8s+9lO3e^j>oQPuKyt3vIL7Ak(X)ADz#mVb8CQ?V3S^=x;`mo*T)D9Yy$W+(Rs>`iJCw%L0nqwQ(=u_7a z)Zv1fKC15rT+=6H*PrdL@ek_qglxDjM^Kj|sLK)5bO`GFLz-SeUB00Gt?3ceq=gw}KK(ML7+rDeK5B-_B5niGl-fOnOWiEmgYc1*CwW}Lq+|Ers-F(?7 zUp~s$_d!hRqv4Hr_K8*72Cdb7TX%MgHQl4$wJIsmxvfvM;nz9br?P2jN|5=F3=Rwq zC+QsJM;vmLj(EyY`Rnx6hfY&|B&^ukyHy9G;C9EAssq{IDpL#?-LlY|P#$Y5724|Q z?H}p(_Ua;^0}nx-BeKYSROB79$o;a&DxKCgJ}}Dn^mzwWxy8`7L7hXu8kU70LE%Sr z;di0noAJY^HAwizQ@W}!nT;>RNSrVVxcf z7Rda=I=!$?FRarGtN1NSSPs;w=8kt`3SDtLI08whx4WlzNF}3slR#atBVqF(ngj-} z;okgRy+eJ2Jv5(#eB2{tt+tjm(l2XrKbcxs6(SIBlx;c?4lCk>8)cgf1XbUSx9l_U zR)r6$zC6&RiPNNrQ&*?N;6R-kLxE*O#f5?)q-$Vw=ce8vw8;ULw5p#j^^&067?9g1JJ!d^AydQ8 z9PJ$*=>t~~ozpe2_sr4mehEpFEYqbJhk|6e0LKDHqx)3om`w6xVX-t`m)8J%L6dMO&%AcqFoZb(-Yw@kZOZhHG1 zphQU~ndQK2hXfbfUtLEzq<=K2Xr9I0!{G0};T>H^IbxB83+f_rjtguTUZ#@g@`yU6S7r3u)goL@8LIB1 zLQRa|cSVTO*^S5O0Q%D5&4WX|GKUIRgs9g98u}!mol24s3u0lho@vT6ib0kO;9|NA z1$Ni2jw(H5Mmnl1fuq6E&_%97psVVNe#%&R(eH^~YD7>{bRevUqj0+#w!&(L2e_2l z@D9g!4`6WW@9ooKTDaZQz6{N*CuL*%suk-N&0n){b!UrGlwf42<87-bi;ngVHMrEZ zc9=bwqnhob_86_y4}m%*@&^J+Bo1IUE0GI?)R>C#C4Mtv4vk{KQ$BjY3AU(#Dxk6r z1k|JmDX396poI89Kq>740Zdp?gq==0?P?$l)U_v~^7_u|?(ZGg+^g~kHYN7%=|hVh z80qWoS1@emr_nvA^gVd1Q9anAM){zc!~kxGQv+-utfY@XyP`#)RmBU;Qu(*kDQTre zO{PEzm0mzgAps@y2Lg3%391&NMbKk+K#%1CrNRpY^cWuq*To~s@aU%DUQN7Np}5|i zyGG6iAfbP7Yaiyqm=(us=ipFMAITNNy_;!hu~1%Um+`EtYt>X$Q_MiHNlrcRR>E1Z zNij>XNsALLs#HOxafA$|Ys-17_|W?(>Z&OXDzPzXsFxJi3hNa60|T60h^BhQs6j1) z1eL}dl-D>YO&z}NaGIBN4F%M62b?m?JKVRkufJOfT!AK4a{tmP?uu+x{wSgbv~-IH6Dqbg~&D|DV=E`pwSFy(gm6tQ%KVR z9v$r;>D$$Rw#K3or%`YozNnZR<7n*S9q(RG?uQ-Ic6R*wil( zOR~QRC+CAQSLn1W7O2<#QLs*tKdf0S+@V-6+@brY4i!G6#ru#J??Vvpdj>W^`M5)- z8`9!^NQ?KOSz$~2?sA3Fl^vR;7&oMwWoXuXZ~qooxLJz1LbDVjhcG!98gcnIDJ(-x z3d>NF#v_j2o0%!1lsxcD)8HOOuolJdA>FfvbbAWv z3JU283h4nNqz8@=28xlPzV5A>EkjV-$ZyS4A+?MY2MxKsIrR9_Wp z)KwJHcq#P>tmtUEG-{$My(-eP<7xbqI)$w6sC1QjDiBg?#Xv}@ux4GQ76U#SKcxl)K01FrPYs1N zetHTR(o?{Y?z=;EIzOfMLwBn2RBAD#uk#Dr<@J{z~15a%z0^d^i-)_$xJC zz*Yd@7`~>fZbDiE5Ynv?}Dti$OkbVyI3Ls}0I(j8hzkMLyJP&VSQT~1w(N^K1K>2IYjMfr95 zO3e#@8(+=OO3jLJ`dcdwLP{+PxUL^9NraTT5&WyWCZ*N{-`e4H`LqNTQfg%6tLd)P z)cDr}k9fpD-f1A2gg!QJRI zxAsCT#R^k@+9tq;cR^>M0iKlEwj8{=u#z7x8Rp2SVP{rx&l z^5$;Hp7xg?YdF-O_O9w3866tXVHEClL4Qy8NcYmdfgSC`o4a?}xh6xE*gIl><@EHP z)wj8~O`+H^I69;g$&T?@FFHP;6_6xRkjG?&(e zvWAe#P|rm46Nh?tVF^@DVN!;-^=%nhWMiKyKUa*}gimraqPjd1cBF3v+^Yj+4WB)*c^j1LAkLzmejBWqT1!OrvsyCItVSlHn+utDgeDkA z(VC*y1v+GF#53l={P+1$qV~rG7G<92X!a(+t}qif^V3aw`l{ z2pA2M<$T7ZCi8Vi^Ysk&W0DgSD1~MdUG$Ks`JB%vEM3Cf38l%r-P%JJz=c@00=w03 zG8Y}+RRSH5RCccTIc~5Ufehv02Ia+oV#=7Qyh!2bQu`|4L>-Gyr|GW1{8(5_+PSu$ zTj47UnPK}xm1z!0<}E|z*`Z?4mtL8+mwrp2gNyCy;$o|)9)7n6xg|7JLZdWMY0B?tnl8|4e6f?dxE&jq)4UOkqo9vKS{$Xlliz*jYk(FMFw%&UY7G2 zlcge9v?_fvm|_>ZP^t(D77bbG3aR|uMNyS}G+b4Pf>Q#rn2Kud=n8o!fWkm#=&C4{ zRum1HmMVY*I?;2TPiR$R)?ri<6MzLWcoY~zu;PiH(Qq<%#GJ3(e-iotxt2ZW(gPuvqd-q&UI4wi)(TnV{af z0hkUWWq*WeiI+QhT(KLHw+#;N=-xDV7UTsdO)0C_1@#u2V0~*67Ca#W5AKcz()(9n zlR#yn_pt=^{*|Db;M4{6K8;{-mO?bpNQfpWq-V*sQ2h~>A1O{z)u&TlchFY%N5K8j z=Kg4Of3(Pt6o&$CzXth{5km{Ne~0U%zTW-e&b(fsmF^~%D{MgJqDl)g&=Rr!P({}t zZlVO*UBQAX=VW_bUwWlD`=;b)f+U}EO43PZx_g(Ggrr6{YN^0-FPd`7{b$k{Py4?V zP|{606V)a$>9*9K0r`{w2RR8!lt~fOY(87_X(RZs-sP@yxtm<>pmt-m+6hl?J3P7V z@Z=7rDVCDyOH^Edx`}|MiGZLRAoH9Eh)F}{J~4z!gPKD-7FP6I&TH{4^&#zbYP%HP z8m{&y;5%q8U%PavSl!u%bCWo_4%=|4c+*L7`Ns~x-3~|yzp(K!JiBmSjv43RA2ZIy zSq5fYjuV9pJM7=U^DUfdV#fO{$zUvnW#gHP(~fj|b_<^K*$AF{7*b&8uygVJBu)u3 zb|Fp!GMoXt0?#XP?vLTr-?eytiG2yree7mDzs_#Q^8hen@~j@Cb9!+90O!&fPUby~ z=c728$K+`|hI4pN!2KHr+;GzFc|2caFXH(!dl}Ey*lT#c&VVz{)V+=8JM8ax;v^lO z@3Z&u{D6IcCr;DhImX6db;aNoo?f1SXBtn#6KCh}%;ID`Fo);hS;UL*EWrtRTvyGf z;5m&?!xQJ_@C7zE^zh%R+ex!p`Fgv%TuvQsIV%y6YUce2xFgez!?XG5jcDC0qh#2S+H6o z;{sE}N-#F!^dz6(v2=}*f;sO1PMg6t8%~tQwQOuJF&eOagr2MDxuj(yp37D&#dFn) zWq7WUzSzzSx3s!UXLNzn&hDWdM#|0|J9pre96{($S`Puvak*FK1#sGp;BojR;nbVO zzQvzVc%qDkEMtzuvkp-354g~fTo{sEc$(zGvm_VpmRxv&E;tO1e6R+SxoO%Tp;>0Vs5NBS&g*fR7E@WpC7vgj)xDY2?!G(wcF2osE za3Nyc&F;bZR&XI=f(vn`6uTDintKxS;2)!68bLY6btX z&k_IOOe^>gCtAUO$PN65v#j7h=8Q2#2y9z4Y0?E z|JXBh`iMP?(?^%G-xB|^7f=sI?v46)F5VYt_hl})?SJ%}F^|D>8e)C|-zItt6DP4v zoVVsVGmzFk{ksb9&$_;C__5y%aVN{ehDGr|8o#LDvC}8qSmZ5^))qO)+T{~1A8sG} zLspGpWXrcz+Td}WR+n%i48 zjPTR>o^Hc@J&tR;?TVJex5|e3V^YaNE!m|cmx>`_ivd4}Tp71GuKl*lAN6%$83$}% zI~D&+QI{$?Lbzd1;rliJK|EmzK)Es=IIinnw{OPt6gT5x2Zox^sYFvg*@00$DmVD* zxG&kTjMp3&C=?B+T}~=?i8QTHPY6w1qFhwd$8=HLjCU!9ZiwYj#{6j%%so+HSij zH!7Jd+fz0*{I<)56+(bF6kR5|6qk_iWb}(t{8-_1zLKx(JThfX+i`84q*}G}aKk7Z z#UPk(J=GE1^Bq^`B(Aq?7{ws^fs;W^P`!Yx1&lNP zbNqWzE6W|%M%(2(%XVb~=G#Z%qA=gNwyzJPw@$^0OEDD8cY*D4rE-}K^Ihe*oK$=_ z+ORC(r}MqdhWWnbxbCuD6i(-MpY6&#!*xqY3C9=wOsyg-jq=d^j6AgK`s2AWx43;3XJ_`?u*@OHwa0e(KRDV&`Kq}7Jjb`h zaaGwa7Y%A1n8qG7{v~L0FVV*LtmFFqab2%CzOUOZo2KYR-=;hOf64!4a{2co<@fM? zi*y~bU75&H!6tK2T;&_<%JfhwnMt;9W`^U+v0c#^nMDrl09>+^nH7#}s_n9|2fm<- z?$}tpLdE4cWb6i!ni*lpVqO7u%46;bXL8YOa&Ndz6VwlUB{0r%a$3N3YA0Gs_g%y zuk7{6Wn)F{NQHw-*EC!o*f7-}(EKghGx(pP6zGrUB97}^)olKOL{ zGGFE4PTBS)$tWuI+2NuyDt9Zg&>%WA)>CbM;L74d;#uK##x*V&fK_OMYHZ>+nw2G#-ubm#{XCaV?cE|DZfN(TDm6SBI`)PF!rdwXnn-GY&u74#@){S@5)r7^@}<`Iz2mv-|5$) zeWL2`X=IAlAaU4HsW>gl#SyaJC}b389dEXJ!>2iGmxgV3U>%NYsqI3@Rkr(huB`P= zsME8qLafW|Z+d4*m~z?htkZ25{Cku;%fSV(Z{hb@{BCqGJxiu=E?^f(U*wT>qbn84 zSH_Ux_TlR`m+!Zr%{~qHtuR)vpQKU05Eg71YnG7HrF*l6C^&^_9)}*A`DK_^+(bp; zufwxy9GY;pjo`-f(swaIj5~3Y3S(=KH)De`wZ-zeLOyHdbD0cZMj?%VNq2=zxePbG zFt$=cYHJZYuiY}}SWap}26Lh1!HcJPg-r!0jB zH^ea3h&x6BAw4{N=i^B?_%c?fpA>!y>G_Zj!KcV)2se3>8@{kjMtIJVVYW!$IqE5M zfz>nkHp^V*$Xw~4JN{YQE%b3GA%`(=dvNp?9ol1Bu z|1rX!E+Oj#t&h~oC)4hq6GWDGntIAuD`on%lBz$Ka3&%35}#U0jarG-4n+ZpTeGC+ zIti(lkXq^9Cf%j#Dbuf!Zff@ob~iyWSl1-?ujF&Fr0}TBah=A5s4++Kz#J7uKF^ns z+Q_@`T_GuONXC6n`Zmj4?$hoE5T;h<)hr>k65HDGr39Dh+#=&Hl}~Ef6do%?;4$K& zI`vd=nR2amQ+<6E)&LpobK=RXrF#uMjV{R#?@9Nk1@E!GM zktZnS$U!_4Vc{?b)>)_GSA>7$sxunNcibbN=wBjF5T8X}7!OGZxetz?_#CU6x$$N`V!xcGy^)2|RwUe-GjPsCE;UHvD++R}hYVzr^oZ z?Y3bb^*&y@w%_s7V39u(2SuKc&zp&Z0HNm-@_A6g55heic0*5t1>bGbMljhgKF8RL z)!HkKYmMt+dGgD!akw9rV-L!I_X6^;@i?s29)z8=m+OJ9m08hF{j8dTI zhw^!l`g-_&M?NvSM4qL-9&stmLHYb0jT~^J$Hx;rKJEuaUmtl-KL14!!1n>3EknL5 zpa0Ua5Eu29zq0h_J(D!LI6suY8)XbRF$cI`It=&>S9#>8i{k+HVi#v{A{Bisej^mej9KWRF z_$9mieBIb@W5CuBp6Ak@6Si;j=AFCPZSr|w3(m{42gnQ*dssdnm(Qo<^Pqe_FP|^T z=WFu$7PdSOuy=?12DY$6v=f;d!!RnPDguVHCo!l+6;tFceEz z7iL+OIK-id=BhY*HgJPsj*Aq+zt#_Kp-P8dJ?Hf4?$f95yRYACn(okam!|(-(|@PwPEyM!-Fr3n>zcl<=^jn@ zncs?3MN<=3CGO*RJ1I4(Fll|#?xgD}iAi^om!~AABqpy(ekgxAa#Gf%>`J+max=9! zwIlWRgkZwZgmn`>OkX?UleER@Ytz@Jtw=kc_EGvW&Nrvu?p&GvFk^ehzKLC#8zwH9 zcx~eS%vG5iI9|>CaMFs*PbMv%w1VU1NoOa0kkyjCFsmo)WcEV-p383F@3NerH6y1e z=Z)UGIfo~2n!GDFuQemLEq8bBktvB&@}}(Wy*uSVUTg2&yxzQ1y?6P0eri+i-Ko7( zFHgOZKbZe={+BI-ErSIa1=~sY6+A4=D%@PSyYON6(PvVh+18rz%o{~jMIA*ScONbK zblOn&(e9(uMy6ezcBi6nLKmd%w27LZ7bVOw!J^Au)Shd&8#D^udeT4-&>!08A{H^C7FJ7^D^WqN{-+7_uh2a;Dzi??u(USHh z2baA2V#bSAFK&PFz>D{X(uQ^qz5P<^OJy&ef9d?vrAyyg`p#DxzH%)*?tbO&vW#Ve z%Z8V&=h(LF@Kvw9Q|$f z82uT0pR&WL+uzjfZaV(XrZb-0!xV|F&L|mWa zBOej`C7Uw#(QiYy&Fsv6)!gC@n*01FU5}k-7X_BR#`$eL_8Whmw9hUkU0`1z?YB!v zpS3TNF0@0W&)Jtq2kg=ysylptFJW|RmO}M1#9_im^U-Um+Jmg3VXeOL-%=qjlJAIWgqc;-9Nlk_h?>D3?&gjDk}?q2;!*RW?I55wbDH7Gxy?vHQEI{YtcNT<40x?4|@j(wgleg;@wK*D)wSsb4#L8pf z^uXybpG*GeB6%)F`9UNOyve!9O>}n*uxcLI;gN8JS3JNzN3noNjS@W-5tsA`kDkYl z7Rgg5mD%%oU>Ef+>eakibP%0dI2T^YzQh$U>ZeF31AAEQJw%#zS9Ba%i`H|Wqgee` zB5UO$S-(pCo1n#BR;rV=s1pnVouH}OaZw48Q_O-Tc$9^#L4*Td4YG^UNWF}KM?qxZ zksONHf%gY^UvuD&my<5{4G{AW5d8~*XE@md=dt#AQo-bHRj~r^5DpyWJw}n9NVHzT zZ<8zu*5FNq&mN`7z#cg$p%xw35<~~KxI?kXK))Q6U9CI=;(mJ4K+^yg7@(gDaYcSF z(G286?Obgq6*Sv(Eumf|awwXksnah?R2gdf+yi_2>2~j=9zy)KhSze=!@xqaqDJa- zN4ZwUx$wz#66ahcr$1Z{LNB(P^s2~|(O_k^0I_yc)Qyn{QE?$X4SoxbIhw;WbLHO` zm^t#yQuyaN{tI@2ZT3h^f90I8*d9{O-+YQQ9OiTd_PMO*SOp2^g}iC|ob{aZ9p^cP z;P;d>*3@e;o!|00Z}yy1(58yFQWr8;tmO^l-N6Cj+IPp%{IFH~t_61fw)xvsDq8ei zCckbTStqmaJ@PAhSA_Xvqu+O)_t^H=?nWx)&{u%CrI)tD0$ocOCwj-@0P4nj2_X0EfOU{L-_%zPu?*_w? ziaaTcccqc_4R5h0yjU+|$di}Wdoi%R7fECJ)8tS0FVVcA#-{hE$b^cW^j_Y{76O^B zsrKvMEv%Hr8TGxZD7^}vt4L!qmIRUBC2}ZY`#oSk}FBn-c;;#1(a80xl z&XrE)Jf0*h=<-NRqOJRk*KilxKUb;ZYsz?rC7y1B$eFiJ$A&V?9P=VibtqwgKXu#(=vsHt13 zTKyzMOwUdG_n~Ftym8O_fq`t_n!YtE9j-m^1(Cj`awuXKbS}WV_sMJ{66#c+Dv$<8 zVD(^f=c{na?{nj~E|hL-u`X76Uo}VyaUTrCH-e%#(uO%vVNu9}eT_E48f4z-* z$^zSUs_T?q7fCtfkC4W$N6GK2>2de>z0SQmI2U~z;mBF{r(m?ZBB7-WebWBe&$`L@ z%qr%JK_bu%M8Eq*mu|cwWV_nB+PGJ=W88PY1yaVDm*34VVs>T85h5Ew_*s_jjUh4; zMCN`z_w(w5irD$L=F=zV-XJIXGz;(fAA($V1lHnpC&rk2dhTgoF4Uf94Ax%u+K*$` zxm)1`b=_5ort1dzm&uDvq*W)AA0~fA^XM^mfO?(nIveIY$RD5UJ>L8l%8K@)L95ek zZXOu+R%BGORBiDy;FfspmGSysC)z-^^9HH6V<*4i+4;U4irC)sz2_;V&)h-UMC;z; zAV(d6&2oBl@|>r0FRAF@W?}USotyY=rkGx)a}CcR#Y2pVusUwzc^!E@Ipdd4#uH_awT+L4^^Nnm6(<7Y$xEp?6xfPGq_O-POG}ZR37~;3Wqy=S8i}Pd^_$bI$bdtto)C7@=8aWiPJsW#A zQYw#}aP3Eq=~)R9bp-aTlU;rE$1j8%KIMei^dm=jLQ`hw5K`JcyJZ z?|9ttSP|R(MfVr9q>M%3Iv~=!Z*m_oRR{I=7+1?T!f9j2Ma33{(qnPfcR;KiCXSGM z)GFnj_6yZZyg(KGWQfSl(Adc-k&`q7`YmvFHx3;vlCpE(ag$LpL95ZgrU~K!c+%@|P z@A=JAtw5)hSTa9ZHm39srKml6GX^=<^5?Yzu{G* zv%yHPou|l$d6IiUc+M_!)Dq6%vzd)rZnxYHHH!w3ma9SM>}@fm{eBQ_xd^|S*)NCK zCqY8XN#-1m*~>sJ@p_x>39r+iTK2Y|3-f5#vc1u*k*GyGBdTS?>|DKW=Drn}mJ!aS z?k_nDwQmCx%L)?OyzVl!e9zbNsr6BNKb#pEbJw-xwa7?OTetK5thviu_~E3MsA7@1 z6>dg@$FYuMnm3&?!uE46Qih%Mw$H#A?}~)d zv(Z|gFOB0_+TINeWIKjPy_~kA%p5&!NBJv=opWFgR%qKtPI&4%dk#`M@F|M|~ z45vg=DfbJSYR}ImYGfRq(|SuBRKZ-^PwTBALfb92Y-8|$)U0C#$WljOzvN~2z^P|ukCs~< zC%uesnvT;>GpRddXJ#}GsVpS4ei=kszijMj>`}zdzCRm}+1Nl%q^}X_vp=C6b#J7t zJSKNu2yE+x#ze*bRVdxo9oKfcsv5ZUMmsafN`6ljUaiDokZs>T(~SVzc4{{5(z*p~ zSF4OvwS4R9Akx0E^+xLrMeOY1*~65Qm`ilv_uSE|pK&z^O8@hi=v4!!_SPdFlPlVP zrk__o{$IRTdBS`9dBWCTYz@8NjGIBE{#5Jo*5&Y^54T@!#|k<>3D;LdhxQABsi#$$ zpJEvDX1pEP`Yo;WJuMgN;C;p)d!O-IIF6t4aWhuIg|@FbA&1HrzKers%>j2P7HRL5 zBQQ0)$cvnRt(w-g;{|HyM?#?MRo7hdtn6xrNd^67Q0{7Zh@3t-Jcm$Ulc;TZF>K4D zx_Xq>r0y-}lx$6EO)7jGFCvQSht&^flqq6o9hpT-RLi_0Tz^IGoAn0BM~=XxUx*e& z6xHXd;i=_99eBPjm-Y>8Jc zmqR7lwwksYX1D`h))uLI8|~kW&lLjyH%@-d6*z5d-l!OHh~7c{OAe|A|IxMm5oeSZ# zu<3Kfw#Df{EwRE|s>8TGzxgfhP76%aDV1rezoa#wrXw!jguLpz}u-Yw6STUD_>9RRiEYhDwl8ll=C6Zr3SA$i&Y;0>+wivuj%Vl*Zn_R*QP}7bL4w# zrWct!{F<%vgaBzNDnRt??x1?<#4&wT<()y{_Axu8p*l z5a?^6T}|UwhN_nAMS78$8npyn}o z`drKFE?k^)Ey)LZs`}A zH+B0d0X0d_WEO3>&`eLM+YRzoc*kb$*xBSPZkpF~O{^`t{DzmY6l|48LLH|Q0Y(49 zTR7I2`(u%8U2zbpD{g9Nl4ypy*JUW#x{M|l51ZyFTvNTI-;^><_wlVnz>N=8mSE^n z%Q&pP+DPvtw^vh*DT>b{|6?y-Y$KoJ$g{bPdE@<2-M~E;U8aFm>to89v({K|#p>c%kqQgGbwI5{A5!i2eUFq44?TzieTxhFe zR)Eo;JYg&UiC4`R^t>G}I2)x}IeluQgsn(}iAx-xduTF9xQB z5nao;0~ZYaYH0uIU(^t2+QYp7zQ*Arx-&UeQ>EFA&Ca!-TalTFGZaoYfrwWByS@Qq|LZrt`{o<2iQ2r z7%h+>k?OqKp?dstU9VD1n+9sqQ0GTR{g+%TQi(xu&})+h27$^aHBK8-dp{U`8ewX0 z*?$cEg8K|}6>-h$qFL?xO1ADqor_;>&E@(QFxsQ;VBJBdUDei_)AdE5M?rVv6})~# zRgt=lawuZ!hwH_{BjiMvZ;OO_`hVS^Be26x@7kqsYOizsUp~+BcH~#eC6+i9+Odph zu;IF-j#7}VEhH5kY)yXMPV{0$Ser^3)9X4h&V$HSzFPDnel(RX2C~&nwe-ANMqTB4Erqr< z_XAtGg4EX=Z(u72D+e9dT6%V+%(+sR-$jnxaUQJ3BcauEStU}tcfwxctR9Z88s-5{ zA}Lbwa@En=46rRqg4wFQHIK;A)1jC?Ls)aDW+=?}lJBiJu6a{iN7)w93i{7pzhW>5 zd%yH^=F(pU7|JX!I;^ruaOF7%89|MiA$<4 zl6w8BX|3v0a)iiXki*r7D`dWr{?Wt0S=A2jgn>8d<@RO1a~s zx>paFH^%SH)r>R9R-GqRX_bT3qGd7I3DTIBc;u=B)oImfu2l6G)nCxZ9+4ASCq$>} zn;_^_bvwkkTJ;f}Mo6XHABH;FC^+r?yQ-JW$Z=1ns+bL{=ppq%BsMY z?kROOHdRO}mD);8zVD?cg1zjKu!e3mYX87XANT2B#ru3l;K)m>IK!t6XGmlDcgVj} zS*Uqag`|oDUiuH5^a}c<5a@fF>L{sLkEfJTGRC&N6>L0t{=AWIp${B?ENuc=p$fM% zj=%O_*N6Xjlt1yzi(!w6iv*Z~W!E+fxjrGhWZrvO50Ppsdn$WCmwP#X0%j^1|N4nc zAAbXM&~d~&QWk1b>`yh-+7Y)6#pM$1{~~AXFN~*AIeikcTcAW$&w%o_c1N`zSC_ zB==G7qv8rUscyNqgJ|yU+}p)j#aW6)%HEJ8Fw^9@vq-!`Nn5t1Yzz0F1*e5QYRXoD z;jwbxp5}b*PdwMX$l05_cN*m>`+=tFrwoyE^nj1^-SgMD_dRl#!EYJ-mQC{>u;?L3 zA4uP{4RCTgx4^w++RAAw6|to^N^hXoAUTotA*D>|W$sG@Z4WW7@{Myl`QbGB9p(OV zR4bww8$IZ?8skMKU*s;R=$^_F9<1q$ZWi6tyeS>w+J~GA$G>v=@m+UQbj~A!Yt5z2 zqThBAeWWmMZ6R;G_~%ya_GF;QFDW@E~ zRL;4abJMpgVoTPRtPRZc_2h*2HPvA$ckTxr4l%Cg>(vTj94{ zE7;fKS|Lt)Hqo(AaX2eypAT&Dj>5ZeQEO!LNow)NVwst-{qz--UB$Ub`CDHCn-?$f z$XMzB$@hVLFI`5#nCDE{+~+AKuP3nCJ=s0*N8U3%TyIi}T`%T(aq$=Kdhr#mWpXZZ z|IX>du3$z8nh)zk$KcTE9m4|!3w^wBhM90Aw21ac5-jQ9ZE!k zXwmM1mCx)i##2s47f5wuXB^{6^978*$@nkG>zeb3{_u!YuNN27wi3OHW~}MuEQh`< z#QEQk>PipH9?$>h)2|_$b4+$3aUAk5(p%q>LlHae%(OG`+$r3l{~oCt;nH8wVb5dZ!$inxBijutS-(ir8r-(@JP7=~p7@j_Q>GLhXgX{-@I``ywrTkyNnHG}RW&K1O^H)6!%gus=~7 zjqzaxp9jX1*Q0<>4hudZRZWWya$TY#;d9r?D>w@Vf&9ZL|AHfYvLQX>iCM2;52g3O za}Q}u#?~NGuvHF4Y*AZL8>QBg6R!U#buFUy1$Yf1uzOxMy}h8Pphq!@cH|CvYe5;G zk&otb?LUON#EsqpN(&Xrh}8a+e=o3wLxn?O{wDd}!qb{J&m5v`i^>RsfAV+Wy$g#~ z)<1<3b=I|~z3(6bQ0cKJr-Q)=pV-Kow8y1p`CA~c~IY03QIAX3;+ zaJI0)V<*A-!SV~*3iCZi+pxE5q%d*H!zm9vwi~Pn>)y{>R&d{Ao4}Z13O>nO=#fj< z;R@$svH$JrHT5v!Io4hls3UZ^JRN%nI&v7T`0(RRdlFX%9g9Jn>~%uSeXf0X1Tp z7`#GnTrQFFtQw+DqcQf5@ti92r>k3QV5hz*`^2i;S803iIca29A`5Jz@CT9A2<;zl z1LEZ01(A2G#_LTNxZ9DJIQ0|~Pmwx_Xa*9bdQ`g$d zYH=4=#`)*G^MQfvjp75SIIdIGgZ2E0duSpJ;PX9Q^ z@>ey>Lit*GerqNh&j zlDGvdLsAF}C9}%pnaqc(mqZ@!?K}Cl$v)whMZbq4Q=(I%+3US-g;REc5-;T5%e|L9 z9MdlA3agpxx!1G%kgc_ta(>ErG?C~;T`Jd=C2NH016FvtTxBonq)U`EynUpJy%465C6U zzM6X#ZTrbdO|wNN&o>QwEt#yA5R*Gu!Aw4#RiqewPw${53^*4 z&I~whnY6{18`TmVE#1?!Cq~kwUbqmY=3FE7J$6zPWBSshCjP3OCZCv$g(nqx4W^0) zlMgTg4}*%=Wr#ZsG9SQc52;}Jl0q`3iFDB5duo{{G{`(pC&SZZp3hkp(;$;4m6<1U z`f_}qWdF80VYow1|u#^#yGxKAQ7+ql1t z``c37h!%dtsF`Icuco;1Y;%sVub)YgJ|%UWCYt2D5txaOL6?UZmnJepPW&vzjp*W0 zTNwOS^!sQc^XyYAnTd=sp_DYPYK}FQsyN~=`(%AJKl_nS(XAnImcaVz3%HuR3vY}VV(`L)tmg-qJXD-Ni$F_uhrI;st{=1MF zlo3iEiD{LQ2Ja=wOJe!-FUj|0Y|^~RLXYH_C#!VYq+bVfeWr3$mxN2I%YPfcRg&&7 zl{pe?nDjTvUsLkdNn#F3x=b3&zeoPP^t)b5+u@6avAk={0Jew9UBr z=7|c9x4xqfKUc9366-g#h?_8EEle%eOW4KazW zflXVLwo3D6(lFPCR4yOsI;|43z$c>}pq91eWsMj;8pV{W|?3PO1Asc<$7ONHrNxi_Q`ES|` zo8k1D_};|#SR;tv5xv?(uZc$qFV}-I7Ca_*?uOH_fu~}ldZoE1z)|r%5wTp{^P4fB z)~3=^Ae%9yJ9yBS)7E8N1#1E8F<~r~${H@Cj$g^}vDCzzi8*K!i>2CCN0i8592j_V zDj0uKZV}_%H`=OTPwRL^bQJ5wJ>iP$X~E}Q{~R7CQ=R{VXK;gv^H6GXYO=Ff#;y!v ztds}dVjZGQ#zw~87SK;crV&i;#HXjPPWixNPiPZ8gjaUj#6R_n*Jgz4#LxD2${v+1 zJQri*k5jg$Y<1eCKTLm!+_hetPSGa)7Aubvpi5Pe0kh~79PRbD?!yt$3q2!MgvFS_F>Hk*hAr|UV zJ?Z}zs|kU1J3W(&;l0|f_T@%3bp2nRl=5b$_gLaT<7N&bH6vszVtSaPaFbuo@gCc} zNj@>TL-Qt$K5JqvInT*Aw57pX}~GIQ92aP=48^XP!6%JIh6EK zlCOW-k~Hd{bYA%dX1>%vjrtqvo+M-1Vf-WS{CZU3MZ*QsbBME!X>V?c|CZlqG$KO%2Z;%q+TKxkA9*(LcY7;=7=$} z*gL~0xd=|~<5Lg5!Pn|#;s1GtE_h&wc=c>2IXtE!vPOPQ&LQuEbw>*4gU6F777-dy z334AZ4)1UI7EKkORpTWNc!?q{4+_ixsi7vMQ5k)4a*0v?7Q{x_>EUUs#-0YGycI8( z{eyOC-lT3|ylwV!2S??mtQILeqY=4fVLhQ z30o8V_)mG5@{m%o@sD>vk6ZMBD5x9%f}uk6GIqL`(4+dq*WHbL`L3$??@zm}u@id+W{H=$j2zxVkukQ`Jw~LBKlStM7+En}N8RdA zc+$qvozb0M7IlkC>?fRuoGj^4(N!M7)>b_+dEcvO-NWQW;<&4V$T8aInAkd6tWsbd zc}r{^&4~KBGI>w(9?;lasqeBUGk(R^5$Sh<5lrr6wHMrreC)B&x;tCH?`+N9BC&4- zjj6xH$QmbywvG`0j@mjId7-VBIf<4?%-dS5jt;S!M`aHe>1DY;&(@KuSgpm@k-SKr z=8gEFh|GLayXB*{whufa{W@39p;23Zhnz?p*Vb12ey7;lo{mYiHDYUf#2!(^CKV?Y zQ!3V@m`(6dY0lPmo5~gpspg*8+OGB3s3y+VKlJ_j>*L$n`|h}YZ4SrVI+6N^wqD^S zN}qQ9dWA@Ze9d)l9_eLY|9Q41_V;5*Y;BI4+2>Ap24>Z0{gLVr>1(5L zuUqZQu18Y;SAL$wf7WcFF>7qLSRE%ZPbID^^1$N4MjR zAZqMu8YO<9wf(#p?d4j`-fNs(osZnSxQ467euH$Z#Iqol?<{`f>G=sCWrRj0MjppY zj7UF-Nn~vzoFg~DoJ1Kt#(tA@ti(S75sBY?T4LlN9E9>?b&Rlvi=;+UHE$yHSNll$ z1w`^r;>%#pQ*!o%EP1m?Wc|uGvYLtXNTNLo{f45bf%3?0QN>eSO#a5?dKTqFZ3N z`b2$yq|(>gT~F87_P`4ot*>nwQ(w!qSZi+ZvZVE0eK&As?AJ&U9P6>Vub9;LYrei? zdaU^XO`%bV=3Kl)R&1jZH#&*Fd(=#k|Gf`zham zV6S7j$81HO+)3OS6tX9aV82Rg*{?5w)JFd~`hQ^Xf8`fKH6OPNvgm5C0VF&eH`U&3 z^2o1pkHjyhxw^&tVQ|{qu_?h_+iYjXfBL~^eAU52llU*Z1EHl&e#(IX%gsE{ny0k>MmgvzE^R$EsqO{EYgvkl~!f&W) zB5&c)|HpiGo&h)6zj7Wi4tEhR>|tj~x0{EwoIbUtN1I>?B!2_5o7C_*ptPVMZT@dy zeod~#?Q0;{(?MdkN+jB$g#D#B?0DP`buw-y*hO~GK5rM>7wi)Iq8+j?*`*N~)0UkW zx*62DM9rz_8sl2WwbVdnHFjyXU&U9vVmmC+J%8Jg6tzU(f^lx`EIT{wm#%g)QnQp> zV184|K=N*~>!0*T&g2TX(?H9Nn0OD09c3?2-49gkC{LfhPl-`2#Zt*oH2Mp~koo%g yHoqJI;_6{#+_JyrFaL}8=w#k4T@eKA70T@P|21x7IvFgLiiXr1E!7S|@c#h#VOTE! literal 0 HcmV?d00001 diff --git a/core/src/main/java/nl/andrewl/aos_core/FileUtils.java b/core/src/main/java/nl/andrewl/aos_core/FileUtils.java index 3dac464..0530b34 100644 --- a/core/src/main/java/nl/andrewl/aos_core/FileUtils.java +++ b/core/src/main/java/nl/andrewl/aos_core/FileUtils.java @@ -2,14 +2,40 @@ package nl.andrewl.aos_core; import java.io.IOException; import java.io.InputStream; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; public final class FileUtils { private FileUtils() {} + /** + * Reads a classpath resource as a string. + * @param resource The resource to read. + * @return The string contents of the resource. + * @throws IOException If the resource can't be found or read. + */ public static String readClasspathFile(String resource) throws IOException { try (InputStream in = FileUtils.class.getClassLoader().getResourceAsStream(resource)) { if (in == null) throw new IOException("Could not load classpath resource: " + resource); return new String(in.readAllBytes()); } } + + /** + * Reads a classpath resource into a directly-allocated byte buffer that + * must be deallocated manually. + * @param resource The resource to read. + * @return The byte buffer containing the resource. + * @throws IOException If the resource can't be found or read. + */ + public static ByteBuffer readClasspathResourceAsDirectByteBuffer(String resource) throws IOException { + try (InputStream in = FileUtils.class.getClassLoader().getResourceAsStream(resource)) { + if (in == null) throw new IOException("Could not load classpath resource: " + resource); + byte[] bytes = in.readAllBytes(); + ByteBuffer buffer = ByteBuffer.allocateDirect(bytes.length).order(ByteOrder.nativeOrder()); + buffer.put(bytes); + buffer.flip(); + return buffer; + } + } } diff --git a/server/src/main/java/nl/andrewl/aos2_server/ClientCommunicationHandler.java b/server/src/main/java/nl/andrewl/aos2_server/ClientCommunicationHandler.java index 393b4e3..656e4b3 100644 --- a/server/src/main/java/nl/andrewl/aos2_server/ClientCommunicationHandler.java +++ b/server/src/main/java/nl/andrewl/aos2_server/ClientCommunicationHandler.java @@ -20,10 +20,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; -import java.net.DatagramPacket; -import java.net.DatagramSocket; -import java.net.InetAddress; -import java.net.Socket; +import java.net.*; import java.util.LinkedList; /** @@ -118,6 +115,8 @@ public class ClientCommunicationHandler { .withShutdownHook(() -> server.getPlayerManager().deregister(this.player)); new Thread(tcpReceiver).start(); } + } catch (SocketTimeoutException e) { + // Ignore this one, since this will happen if the client doesn't send data properly. } catch (IOException e) { log.warn("An IOException occurred while attempting to establish a connection to a client.", e); }