From d36469faaf5b502a2b68b63106921d75e81be893 Mon Sep 17 00:00:00 2001 From: Luke Benstead Date: Fri, 17 Aug 2018 07:09:53 +0100 Subject: [PATCH] Start implementing a multitexture example --- include/glkos.h | 4 +- samples/Makefile | 1 + samples/multitexture_arrays/Makefile | 29 +++ samples/multitexture_arrays/main.c | 121 ++++++++++++ samples/multitexture_arrays/pvr-texture.c | 175 ++++++++++++++++++ .../romdisk/FlareWS_256.pvr | Bin 0 -> 131104 bytes .../multitexture_arrays/romdisk/PLACEHOLDER | 0 .../multitexture_arrays/romdisk/wp001vq.pvr | Bin 0 -> 67616 bytes 8 files changed, 327 insertions(+), 3 deletions(-) create mode 100644 samples/multitexture_arrays/Makefile create mode 100644 samples/multitexture_arrays/main.c create mode 100644 samples/multitexture_arrays/pvr-texture.c create mode 100644 samples/multitexture_arrays/romdisk/FlareWS_256.pvr create mode 100644 samples/multitexture_arrays/romdisk/PLACEHOLDER create mode 100644 samples/multitexture_arrays/romdisk/wp001vq.pvr diff --git a/include/glkos.h b/include/glkos.h index ed60587..a6602c0 100644 --- a/include/glkos.h +++ b/include/glkos.h @@ -1,5 +1,4 @@ -#ifndef GLKOS_H -#define GLKOS_H +#pragma once #include "gl.h" @@ -40,4 +39,3 @@ GLAPI void APIENTRY glKosSwapBuffers(); __END_DECLS -#endif // GLKOS_H diff --git a/samples/Makefile b/samples/Makefile index 8854101..eabf377 100644 --- a/samples/Makefile +++ b/samples/Makefile @@ -19,3 +19,4 @@ all: $(KOS_MAKE) -C zclip_trianglestrip all $(KOS_MAKE) -C terrain all $(KOS_MAKE) -C quadmark all + $(KOS_MAKE) -C multitexture_arrays all diff --git a/samples/multitexture_arrays/Makefile b/samples/multitexture_arrays/Makefile new file mode 100644 index 0000000..2134157 --- /dev/null +++ b/samples/multitexture_arrays/Makefile @@ -0,0 +1,29 @@ +TARGET = multitexture_arrays.elf +OBJS = main.o pvr-texture.o + +all: rm-elf $(TARGET) + +include $(KOS_BASE)/Makefile.rules + +clean: + -rm -f $(TARGET) $(OBJS) romdisk.* + +rm-elf: + -rm -f $(TARGET) romdisk.* + +$(TARGET): $(OBJS) romdisk.o + $(KOS_CC) $(KOS_CFLAGS) $(KOS_LDFLAGS) -o $(TARGET) $(KOS_START) \ + $(OBJS) romdisk.o $(OBJEXTRA) -lm -lkosutils $(KOS_LIBS) + +romdisk.img: + $(KOS_GENROMFS) -f romdisk.img -d romdisk -v + +romdisk.o: romdisk.img + $(KOS_BASE)/utils/bin2o/bin2o romdisk.img romdisk romdisk.o + +run: $(TARGET) + $(KOS_LOADER) $(TARGET) + +dist: + rm -f $(OBJS) romdisk.o romdisk.img + $(KOS_STRIP) $(TARGET) diff --git a/samples/multitexture_arrays/main.c b/samples/multitexture_arrays/main.c new file mode 100644 index 0000000..e235022 --- /dev/null +++ b/samples/multitexture_arrays/main.c @@ -0,0 +1,121 @@ +/* + KallistiOS 2.0.0 + + main.c + (c)2014 Josh Pearson + + Open GL Multi-Texture example using Vertex Array Submission. +*/ + +#include + +#include "gl.h" +#include "glu.h" +#include "glkos.h" +#include "glext.h" + +/* Load a PVR texture - located in pvr-texture.c */ +extern GLuint glTextureLoadPVR(char *fname, unsigned char isMipMapped, unsigned char glMipMap); + +GLfloat VERTEX_ARRAY[4 * 3] = { -1.0f, 1.0f, 0.0f, + 1.0f, 1.0f, 0.0f, + 1.0f, -1.0f, 0.0f, + -1.0f, -1.0f, 0.0f + }; + +GLfloat TEXCOORD_ARRAY[4 * 2] = { 0, 0, + 1, 0, + 1, 1, + 0, 1 + }; + +GLuint ARGB_ARRAY[4 * 1] = { 0xFFFF0000, 0xFF0000FF, 0xFF00FF00, 0xFFFFFF00 }; + + +/* Multi-Texture Example using Open GL Vertex Buffer Submission. */ +void RenderCallback(GLuint texID0, GLuint texID1) { + glLoadIdentity(); + glTranslatef(0.0f, 0.0f, -3.0f); + + /* Enable Client States for OpenGL Arrays Submission */ + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + glEnableClientState(GL_COLOR_ARRAY); + + /* Bind texture to GL_TEXTURE0_ARB and set texture parameters */ + glActiveTextureARB(GL_TEXTURE0_ARB); + glEnable(GL_TEXTURE_2D); + glBindTexture(GL_TEXTURE_2D, texID0); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_FILTER, GL_LINEAR); + + /* Bind multi-texture to GL_TEXTURE1_ARB and set texture parameters */ + glActiveTextureARB(GL_TEXTURE1_ARB); + glEnable(GL_TEXTURE_2D); + glBindTexture(GL_TEXTURE_2D, texID1); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_FILTER, GL_LINEAR); + glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + + /* Set Blending Mode */ + glBlendFunc(GL_SRC_ALPHA, GL_DST_ALPHA); + + /* Bind texture coordinates to GL_TEXTURE0_ARB */ + glTexCoordPointer(2, GL_FLOAT, 0, TEXCOORD_ARRAY); + + /* Bind texture coordinates to GL_TEXTURE1_ARB */ + glClientActiveTextureARB(GL_TEXTURE1_ARB); + glTexCoordPointer(2, GL_FLOAT, 0, TEXCOORD_ARRAY); + glClientActiveTextureARB(GL_TEXTURE0_ARB); + + /* Bind the Color Array */ + glColorPointer(1, GL_UNSIGNED_INT, 0, ARGB_ARRAY); + + /* Bind the Vertex Array */ + glVertexPointer(3, GL_FLOAT, 0, VERTEX_ARRAY); + + /* Render the Vertices as Indexed Arrays using glDrawArrays */ + glDrawArrays(GL_QUADS, 0, 4); + + /* Disable GL_TEXTURE1 */ + glActiveTextureARB(GL_TEXTURE1_ARB); + glBindTexture(GL_TEXTURE_2D, 0); + glDisable(GL_TEXTURE_2D); + + /* Make sure to set glActiveTexture back to GL_TEXTURE0_ARB when finished */ + glActiveTextureARB(GL_TEXTURE0_ARB); + glBindTexture(GL_TEXTURE_2D, 0); + glDisable(GL_TEXTURE_2D); + + /* Disable Vertex, Color and Texture Coord Arrays */ + glDisableClientState(GL_COLOR_ARRAY); + glDisableClientState(GL_TEXTURE_COORD_ARRAY); + glDisableClientState(GL_VERTEX_ARRAY); +} + +extern uint8 romdisk[]; +KOS_INIT_ROMDISK(romdisk); + +int main(int argc, char **argv) { + /* Notice we do not init the PVR here, that is handled by Open GL */ + glKosInit(); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + gluPerspective(45.0f, 640.0f / 480.0f, 0.1f, 100.0f); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + + /* Load two PVR textures to OpenGL */ + GLuint texID0 = glTextureLoadPVR("/rd/wp001vq.pvr", 0, 0); + GLuint texID1 = glTextureLoadPVR("/rd/FlareWS_256.pvr", 0, 0); + + while(1) { + /* Draw the "scene" */ + RenderCallback(texID0, texID1); + + /* Finish the frame - Notice there is no glKosBegin/FinshFrame */ + glKosSwapBuffers(); + } + + return 0; +} + diff --git a/samples/multitexture_arrays/pvr-texture.c b/samples/multitexture_arrays/pvr-texture.c new file mode 100644 index 0000000..66b16d7 --- /dev/null +++ b/samples/multitexture_arrays/pvr-texture.c @@ -0,0 +1,175 @@ +/* + KallistiOS 2.0.0 + + pvr-texture.c + (c)2014 Josh PH3NOM Pearson + + Load A PVR Texture to the PVR using Open GL +*/ + +#include + +#include "gl.h" +#include "glu.h" +#include "glkos.h" +#include "glext.h" + +#define PVR_HDR_SIZE 0x20 +#define MAX(x, y) ((x > y) ? x : y) + +static GLuint PVR_TextureHeight(unsigned char *HDR); +static GLuint PVR_TextureWidth(unsigned char *HDR); +static GLuint PVR_TextureFormat(unsigned char *HDR); + +static GLuint _glGetMipmapLevelCount(GLuint width, GLuint height) { + return 1 + floor(log2(MAX(width, height))); +} + +static GLuint _glGetMipmapDataSize(GLuint width, GLuint height) { + GLuint size = 0; + + GLuint i = 0; + + for(; i < _glGetMipmapLevelCount(width, height); ++i) { + size += (width * height * 2); + + if(width > 1) { + width /= 2; + } + + if(height > 1) { + height /= 2; + } + } + + return size; +} + +/* Load a PVR texture file into memory, and then bind the texture to Open GL. + fname is the name of the PVR texture file to be opened and read. + isMipMapped should be passed as 1 if the texture contains MipMap levels, 0 otherwise. + glMipMap should be passed as 1 if Open GL should calculate the Mipmap levels, 0 otherwise */ +GLuint glTextureLoadPVR(char *fname, unsigned char isMipMapped, unsigned char glMipMap) { + FILE *tex = NULL; + uint16 *TEX0 = NULL; + uint8 HDR[PVR_HDR_SIZE]; + GLuint texID, texSize, texW, texH, texFormat; + + /* Open the PVR texture file, and get its file size */ + tex = fopen(fname, "rb"); + + if(tex == NULL) { + printf("FILE READ ERROR: %s\n", fname); + + while(1); + } + + fseek(tex, 0, SEEK_END); + texSize = ftell(tex) - PVR_HDR_SIZE; + fseek(tex, 0, SEEK_SET); + + /* Read in the PVR texture file header */ + fread(HDR, 1, PVR_HDR_SIZE, tex); + + /* Extract some information from the PVR texture file header */ + texW = PVR_TextureWidth(HDR); + texH = PVR_TextureHeight(HDR); + texFormat = PVR_TextureFormat(HDR); + + /* Allocate Some Memory for the texture. If we are using Open GL to build the MipMap, + we need to allocate enough space to hold the MipMap texture levels. */ + if(!isMipMapped && glMipMap) + TEX0 = malloc(_glGetMipmapDataSize(texW, texH)); + else + TEX0 = malloc(texSize); + + fread(TEX0, 1, texSize, tex); /* Read in the PVR texture data */ + + /* Generate and bind a texture as normal for Open GL */ + glGenTextures(1, &texID); + glBindTexture(GL_TEXTURE_2D, texID); + + if(texFormat != GL_UNSIGNED_SHORT_5_6_5) + glCompressedTexImage2DARB(GL_TEXTURE_2D, + 0, + texFormat, + texW, + texH, + 0, + texSize, + TEX0); + else { + fprintf(stderr, "%x\n", texFormat); + glTexImage2D(GL_TEXTURE_2D, + 0, + GL_RGB, + texW, texH, + 0, + GL_RGB, + texFormat, + TEX0); + if(!isMipMapped && glMipMap) + glGenerateMipmapEXT(GL_TEXTURE_2D); + } + + free(TEX0); + + return texID; +} + +static GLuint PVR_TextureFormat(unsigned char *HDR) { + GLuint color = (GLuint)HDR[PVR_HDR_SIZE - 8]; + GLuint format = (GLuint)HDR[PVR_HDR_SIZE - 7]; + + GLboolean twiddled = format == 0x01; + GLboolean compressed = (format == 0x10 || format == 0x03); + + if(compressed) { + if(twiddled) { + switch(color) { + case 0x0: { + return GL_COMPRESSED_ARGB_1555_VQ_TWID_KOS; + } break; + case 0x01: { + return GL_COMPRESSED_RGB_565_VQ_TWID_KOS; + } break; + case 0x02: { + return GL_COMPRESSED_ARGB_4444_VQ_TWID_KOS; + } + break; + default: + fprintf(stderr, "Invalid texture format"); + return 0; + } + } else { + switch(color) { + case 0: { + return GL_COMPRESSED_ARGB_1555_VQ_KOS; + } break; + case 1: { + return GL_COMPRESSED_RGB_565_VQ_KOS; + } break; + case 2: { + return GL_COMPRESSED_ARGB_4444_VQ_KOS; + } + break; + default: + fprintf(stderr, "Invalid texture format"); + return 0; + } + } + } else { + if(color == 1) { + return GL_UNSIGNED_SHORT_5_6_5; + } + return 0; + } +} + +static GLuint PVR_TextureWidth(unsigned char *HDR) { + return (GLuint)HDR[PVR_HDR_SIZE - 4] | HDR[PVR_HDR_SIZE - 3] << 8; +} + +static GLuint PVR_TextureHeight(unsigned char *HDR) { + return (GLuint)HDR[PVR_HDR_SIZE - 2] | HDR[PVR_HDR_SIZE - 1] << 8; +} diff --git a/samples/multitexture_arrays/romdisk/FlareWS_256.pvr b/samples/multitexture_arrays/romdisk/FlareWS_256.pvr new file mode 100644 index 0000000000000000000000000000000000000000..d493899f4cb7a4b71b1fa940d83b0e89f10b3800 GIT binary patch literal 131104 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%0A!5ykPrzy*I*3uM29?q9*OVXno;&VQt}h zDL$z6ys`>BbUf4;MNR1UbHL?nA2o7O6L;_Q&Cc0AFzbu(>N^~`o(D3<9BFsI@>Z~V zSyenyi?f7<5yj#CKs(+iyf5nSFWxVxd0l@$3}08GrM&)r!u^Z;5UxbzPL~D{6wu^UEh%N zI?zvX4%dy(8T!$V@lWOpa^IauEn{7`cy{1kqWqiOXCLGqe7?PQ+PnGa823?O5jE8N z4p&x-hq&i(57Lk0P|i5xQW?4+)sJa+GXH%0_1wd4tN~qZ`rK5Uv2Jvo*!l7KIvlOb z;p_Lmu-XGp??}LP<_3Q}tB>S8jPn?qZQr~%{cSzW@ALYr zi4UvI@}rzM&y23DJ{THbCjR-M?!}}2!eV@{;C)Bnt|EZvD)y~@I0BA_f-C?q~6;C*_0J_Kd@Qc;K}M`w&g% zLJer^$IsaQOjM1_yn|=GoO;bUaKZl9dips)KM$}EZ238m`&jN<)dsH{(LUE+4~w^6 zwGfZ?kf6_faI^g}|Gu%+Q=MPxIhn`jMfePNzMtzTzn)_rnqU0$jpm2FH*{@cds%!s zi=Dde%g1I9ie1wI$;LgMPgp_0Dy$_SPr1Dcl#@~q9tUwCPC6c5ry_iiE3U;xp=)}f zaBo`eAwmD^B;ztq@}!7^>|r~V|0MRB_n`C#^Y132B>cq@$P9r}G_u|g+K;C~Io4_^ zhxG~@NM8y6s)hBdF-y6b(Nbm44cx zKbSx2Py7AVwEoN|E1EX{wEkJm+sAbTfI!;yo7O+;tB^MTwEkJo-^X_Z905nb5pVo=``*663r-})~Ua=GEoQZz06yHlh2 zQBK;(CXI}7No_33Nv+=bbO;bvQX7qOQmaqPGcKu(M>(n0JMRcM0*-(q@M{S0xk_rI zP)=&~X?eyawect?wR-2%AwXP7Z8XYBtv)T!xTH27<)l{cyd&TUI0BAOmua*XcsxNhcb=|GZEb7QUmLoOek~N;%jr z6xzg|e4Fr>4gWr!9Mdfvfqx2tQZx|O>XiIih@(#BQTw3rzpv0HPSt)x{&hx=sXTsH z6L`w+Dz*6zMzuEZuT8BTgECk6&>H=c{Q8KzQ%ArNa0DEI^a$|ps-!j|<)l`hmSqWnMx&h6>eKR!OKRg$PHOeeI|6qN0qj-d`&G*)<*W9CH~U@u4n7yP zB+t8|xA~SO|I$w+2iv%Pye}$0{x$^oTqU)EDJQl1v^?XI+IW5FoCkHX7xm zR-cwk0MB`f50b@jOV=%DTwAD*dOkT~Z|z6(JF4d>M1Yd|(Uf6RFAz8~A|Ulj_G`CsD`q zYeZ2+`PIb8DD2RnM??R;L|6XZ1Z>c>n(|RU`lz5xUaS2gDk_D(n_ym_qN<^L_cK z>cGPuC;ibwBah56SK@&=VAjZ4D<-3YDKgi}nV7e7OOol6PFT*2jzlwr9erS~edNn|W2VRze0<)TE3(xSnJb4%MjP_40P4qih53d#!gE6^2;tNy9bjwQA^@nu}JFHdUOp5iP>ks;_X|79D_15d5dRz)gC(Z0!EMwMveB(DDwmo0S!t)bJvYB z<(u2nPAT_*^&F*6|5OCRTGe%m6^rxsI@NVaIae1f8(Gt?)%D4Ew`nd~_syc+#92q+w;`~0Iy3s>cx05HNnRX37< z;`=4M_dhy5>hC)|>gQ*wzQe7a;^9({?ji91A2iyZ>ANJJJ*p2j^?MJ#7YFYv^Ji4?@JVNF|4HY@_4{^hf4K8(zoX13h|fM^q92|agL&BQ?sVMzKO%3W z|9l&~J{Q!s*?T(oV~nVL{E5OiaanRd7d@4*XyUew7Eye5oF}sZweyYZZucAI|Kl0d z$7qgId>*a$kR<|ky;?pgH*0VCB>$}SHebspP1RR0?ECf)^1T!MFv!k5U>eKR!OKRg$PHOeer$d0alGq7>Ps=kdsf|ZDsnt854gumyYNJt3YV~P(#wE4! zC?~ag=N$n@z!7i+905nb5pVviyBkY4cC(|NCahC6>cKxRHZygolN@_hRC$;*Y8x4QAZQE~c z`K^0Vb`L(EU)GIkCj6SVJ&p3Garf}X=iK&(w@`X|+tb^u_Y32`(u0>CB&?_|!DS-2fG5>Efbs*|t@wOz*Z0sTMnpfC9&{P3+gE_| zv$aoed$u-)v8~(BZhyA+@mlKby@wBMJG=edgUqgnw@`X|+au_i@IF9&YJF4g()LRj zg%b5kqtLSog(|fxSZXacX#NZ!KDYfG#(K8ay4|$x9*r(E2L#c3fSf*+zP_=?x@{}c z0YH3i`|2~)Gd+9n!AlxWG!IX2q5DdUXSNaT4&d9m{a;W<6rh%8@fiV*gd6pK?;|S@ zQ?hRRewB6m_p7LNrH6B9NvZOw;A-98xT|s3y^qigQu(>5zg;DOq4ij*|LSw_c6{UZO?-8?}56YM^z)JOI-QWT|eFRjXmGk zLvus8S7=h13yiSs(C)_FkM7#D>wd%ihC{m#?H+li@*(WD0Xf4{d>?7{Bl6!5TY!NH@a)}8EQe)qk7D)M;}>zrm<@E z8F_bw2AIjO|8&>rE*j&&HX8eJtSN$Y1*>WG8D>{a?dmhM77y)acCS8D`Bb>#$G~D# zgZutH_wRXp&o$J(1`HUKjqYwly7o*QTpZuMbQsZnyg}cK(dRT)8|pl$tYIFv$Zdw=f}}^p2H{DTR^oj2_8)|BQc;pR?PtS#o@|O&=`+o|)tJHEC1noop zTziJf1cS1leq9?Mf=}3A`F#2Q4b&4*lWJ3{)JW{#EKTfBXsxI(MJpBdzkhJsA)*z1 zzERs)^}{3a-9J3?{i+)WAH|wKWqI_Gy|rK2^TQ*Qs11Gg)_%}#Hhj?j{{HtjN)+^? z>_2ItTC2PNXXeKK2M&$yBAU?Ww-5dD;4crl3^xw0K6BFI-oNcozteng&{1`|Qo_y^W1c_7knGI&*8Q+1_l@wcDF* z&FwF}x#g?(ZTZ8mZrQT++qF-;@sl%cowu+5>h2roFLb^6%U;{vjec+5xm)Rhp`A%Kku&uXUXX6?3X zy5?S^nUcv|U*Bui=^7tsy#KczxbH#JU$i%EJ@wN!27dPHj@ORu*fA#c*k)K$uesf3 z>YFf|jYhO>)afSr(6_nQ)N9k}Y-XMQ@;`oc%YCQ5{p9b~&7Q8VKI5;edGg7+x*bne zS4&cLwH%uHjQ!|$X6~7CeaL>ebztih=V2Tkhu1MaHOz!&7_Q#%Eb71fa&At2$%R8&91=-6DN)89ZFpfcda}JM(Vf-0J;+%LSa}#drcj}%g_QTmv?s06L8k}J~ zvrJ#eJLn8K&~ymT?-|=V75y+p%nTuxU%%K0GSDG2;`T&FTqQg5o7)p!|G6QCr z@lPS`z8oe9-go&@|)A}?$3dj$E2-_J~OGY&_{&xA6bkkjL5WbZf-8f2NXpjS=ZlRK)b zxk0p%(e~vUjUF6FeLBP5sSDm#Co>aby&N~_@%ueK5Wx#Fgk-1e1UM4s;6ser%y397 z=inS65X@|2xHtdBJC2b(PN(1Nl>HtyWeS z@$KRbv3$1 zgMoM#JZv@E+v@B(!`YUWuYbK^$Jf6OUIo7n9(xt{ucEAyHy=Y?6WW+i*I>6BYLM@1 zZSAs~?G1H}wweZNPwACcUNgV)irL(N`$~KBu~#mP|LmX5J2ZY}ndT;!%Vv{aLmtWH zqJB+AtKDRRbTRdsz`xD)I=iVC%fn_egZIttI^AopRcZBEwy}4bHQFvwd+_j-KdtdQ}`GmPM5LfoXqvSUY02i2$b6RhM>R$a|2 z)zx7k>~Rcw!&!OI;paWX+`dV{;}Znln+}N{P7po3Qv8&$0mgyeg>=Y~^)h}ZC&p2C2g#7?>Pdl8hh@jh^%eYi$O9ho;ujuYP@eQf z=Dk6M_hg)WMhtR(k1#39K_=Ad^!y?q2(v!HH|yg)f+rsEcsxRAhUbMj=OplRIyqim zjB_%t_(g|jF`4!_1wQEUh@wySWVlI>oXF(nW+y~pd?uUla!J+i&56!nCLD-Ns$x1{ z@;dq1jMMK)V*tNL7CashSZwtOJo};R!#|q3r!(5!o{VAufAwe0<~M_aRsD`ziejA&C)g)uT4xwALV)pug$89OjelDk|8`}3j*~;wFQlkUzngH~__Q)U zrho2N_doSllaY+q=>bD?jtQ?UbKC#VEzdhWvj5zcbDCT|2l;yNp@R?I^ZY%}L;A|} z%lUb3Q|?xt*FH2G;vsHjHpR`#gW&QI7n&3^v(Cwg;O9IcVRmTNFJne$g;`FX^oxRD zPVjs{m<7|y-~#HGXJ!TZ4SGYuVT^BhsCI8<90SJx!N18uAnoyB%fq5Oci$KA86Gk` zgns43Y-l*;O@-u0(Cha&IYHngSr)^*Gs4euDLyIk9P06dvx1C2j}ss{CgT}S;6=>; zCx1BbUuW1mV;^Gwoss1bc6SF>88^v?cxH_DXOu_p3}GLBY>W_eI6N{h&*DeoFu(8r z?Y6J}RrVh*zVTNf(M!9$<03Qc7|eO3ao;Rxg58D-VQq8ZJK2kk2YZtc0nNY*!q{i4 zpP_$8^uy`5?-~2Ufe@!)_0ELEan{UudB^D2zPkIblfxkmlYSy`KEW|4MhghybYC1AGv@;tBs!T{du1Rk>Bcj8V|0Cxb4sfX@dZ?iIgB32^>o z*e`}5^hJ^P$>=dako!;o=+S>7ET-r9Y$llqCliU}T$uClSrItQPYRiUg2cxIVLqPq zc$||SKS&_*A;IT|%;mXcd`8Zs17aoQ@L0; z2bjW6C6=6v$5pkIRu`2NKZl)$$3_@*dYpV3j1HnE6*naaZ%xgu*?WSo>vr)AS6UJIj5!rLM(}8 zkQ63`NHCQU6T)nQ7qLdtnE!y_8Jyv;DFtGJ7!Cu>FfSxU4>VTrE3fgdm3Thu*;yqk z$RD-3jvkfzl0rO%$qoc!UWXW-@M50Cv`|kRcutLhz_HX^QcMKIpf93CL=ha4Oo>XsBS(~U zGMfwJvZA1-(s?0=m3lRw^dw@+VxXv`<^=4xs+ue&6?LwlEF_X@K9P&5imGNyNl{VC ziREHWRh4|Is3wzsF%=OK$td{J!zaVeNG|VG<`SR*&4$8fCsX@(1_<8~$vSdWvWmEm z=XdTruiFGXb;)WWXuBHaMH2Nd$68+ihYN+iAB-EFn^D>$~P5BE>>hCqucaM?&>+Wry zhQ51@@<=ReGr3ul4T>r*n~{1nNl2!OMvJ`NiZW_{>C%oWc3QGdyR9bZ!&R?cB7N9o zb5EO0lBus3%D!20LEpuh*J?GHtX7*ONheM~hqgms-+fM|I$eG4X?uHLA8_cyc^@YVNwORJ`tYhjBa7W`?K8F?J62T%{DCi> z7fd#~zjUdp%I%hbzq!w3HQ8KNli7q54nYO$23myn}Rj=iC>5DG0@)4+{1qG>1sA6bmOyIVjtL43X(iLjQfWM$>;C(3b_J4!X3(@@h+U zbpZN5L|RH#)Qsqa<_iVdBbQ2(VkwWKs8^hX1d&TgCl~fY$%ihF)feC=6PW<#ndB!k zp5VOaYFu%6(x~j^6B)+oi$LdA60_JV0E;)CO~)0FtYkT_lJf|$@}x&hi(w@Zck)?M zrssT07Sc&j#H=!}C|QU}B_}AkKrEKc2;o>dM)+3n7h=`bIfc$Y$V301RaKON_V#>UO|IT3AmOVf@WRCcsF7^$vaTofU@)A<;rXvAMkBi9<-mV#!!; zF`f;pb77C7mSSplF7AZf72|@Of}m1zb0Ri|bT*k5lcE?+36V%#jU}$>oG> z0Ynx-qyTmkMa{)3=T$oY*3@*_EjYh+by8VhdreIrWCFdbBA&f);ga)}SDeC^_?H3y z`ZwG6^?mvLi~dY#kFqb-2fs6)uYbCybWGz{;{SG+dsT8B!&>lb{45Q-qpZngwMu;^ z$tCr7fp@XytypU=Is)r-F7UAvXJ03+pQt3ck?5XM6!+1n3(Z{;{#?ZK8sDQm^&#QN zPVJ|sU37j&?mxi~*t>oMeu9_#()zt55d53?+X;W2WnU#fG0|l==&4T)f07>;{C*Ap z&*{ndArFsjz*|*;SCWL^fM1ea8`mcM|2h8~_^xXBS1m#wPDfo*blUoP>&^C75X42r zL=VtYcQ5$vG} zQOKs19De5#B0r}ll)3OcuND(YTCA~HPK_&SHWm;REQ4$;t7LgmjEG6jyP`}clA=F7 zCkC+Xr$nEUPUmtMB}Z3M73WK8Fpw?@fm|$6P}E2Q+i$LzpAY8LbdJ`m2LI8NkKq5$ z_!O42xnfZO^y#_zL^4|}DoU}Kr6JOEeYyV8qiRm0r}jP}3VBdK-85*R0H$;@na<`G z@{#0RF%9^Nc|eG6a=Gk$E|XJ`NrBudhb>&qDcQW5%%v+>s2f)T}Qp=ahKSpMgBj#FUgem%{59 z=$1-2ro_|GjI$!tQZ*1mf3ZMp2^i^g+#DoYETJZqq7M&Z&~eMz zGeWm^$&}~RLcF}TkWyBbV@u10Vy;}cQe05i%FCr(3QVB_ zQB^JEuV@pWSMzvSD3%rqYJNErDd&}BQBm_tcsGEvMs9Aokj`9D!gDES{EC<KMrF>;BRRAvmqLnMf`~r2Hk7UYaUwScH&I3q*jdPpg@vF(@rG>eC z0brg)VbiN*ObCl{{1w^Clnm&i;M5Y^6wTg>*XaiuarxvY;Q!7Vxi=`4@f@-sP6)%u* zsLo|QzW8D(Q&yG5WI2%!7F>7uDjs<@^Fje`^7YtGGtAU0f?Jtk7(3%%}!Rt}vIr z5=`fn{FP#{gr%aDYG2EX#pQyUz!{6!a-kwd3x!$0Us!(g+`|?A2Im(Fnc~}TeoMuu z!SqU?s-bSCO?IlY|M-tT`7Z9OgXMI-{Bg0gRxYk+Jwr^ct$8xU>xHWtzk`1n*Ft&!{-s4NKScan>4m=2 zIa)KDc|ek;v`Fm>sQ(LXy|8qzr)3&XPwgmyfpZFJPW0 zZ~c6^*wlXQ=UV$)YfHAKN$2GYmza-lt4p6=dl!>cxhnAHfWu}!m%DW#yHZQt6C^I|XlUqpX&YBW*#V<<}vgzsJx zPNtRfI+Saz7Eaod*?jsX6aLH8^ZJdW6Rw6cI1|^|`|9?&T=o-^bf$InK=i4{Ok1r{ z{BAWphSM&N`prgLvlZhbH}urlQ;!WiHsF5B1vnlXkW9wmjm}N&sPxYIjXQ_B?{B-Y zeq;Uqz4z~Z>1z*syZiQ;oA>|y$-nQtIhNThzp-#*{m|Y+dr!Y1S%;3$|G%szsh!>i z;BZ0TR$xZQ0*MYAF1$0KXOgMiTvuo9v+Q%RE)$eyoW1LC&hG&Hbh1E&0qE#BPykhY zaMnO8I%432V#1*V?*-~Qtk${?7i)E~tjlV**46b{Ej2E-4_dh7x~}`|cO+@R^#0a2 ze==Y;^#TlZ)}=GejQ`s+Z=AMw*l^hCM_+)Kx;EdC#y&nU`uo;#lWEH-Ta)B!!MUiV z<^0IR_<7p|hHg1wMH(I%XGey|C)(_FjXHa;(O{5l2E%zE(B5pfw;LN8Y{NBroUxw5 zybf%o`NuEO*JSH6+S)-2GbL^Q2Og{N0iK%%0N;Q%1Na}L*+l<;xgT`hpmR5nHo54X zg_#K2XT|>qZvVv>&-Y5^aS)C8L>d^d+qW+ee+@ileTRNc=pRU$&1P)`aF`UWJRewo z3Vb3xMss8aV0f`X3}~`e#{GQ!y#sdFq3vJ0?*-HShadR%!53>WKIZ)|H24mIKMve? z;Jz0OwFgf>ApOOQ2e%%i`6tS1GpNlTIt3L$UaM;WQ;UO>BYUmxt@cJ8;8|#0(ep26Qu)JNrui+=wHqg&% zH8dX7o6RjPO>gM+BTX$W!!s`H=|4OCPfc&^IAJrn*gt#WI|tib4egS3-0nJQeW|y- zrKS1LTK??u+N}o-1BQVY5554am|+$yii$7%rxQ47& zmL*m{-qF?9@z&7LxNB(0HLjgdD@4%hYu(MzEj>Z~&JOT@hXwDpTyD3^)o0z;(PizZ zce5@RCB}L}=d!k(7&-5nu#K?el8f>uba+?m8adBSn5^xMeeI^+hKAN*eS_56XR_Jo z{Z~W7uvCLG@c#)H()pw8(E0O#h~D#E>^gCN#DzRY1vA@CM)3Raa81qmVUv|!2ikh; z(N{x54*^Lt2S~vOGZG-e#cCh=b@fdE{vk^p;m)#*19?klS6v6;g7rL(M8B15juKsF7(&c)aV{!HF{WGEqD*nq8mOx0eC0SgYJX_I1uc^z=z)VA=w)A z!#xcRGd+EMW*cOTt)WJm0Zm$2q8Hi#ceZt82)*LH2vY0$3O%|yiJwiNS8JdG(g1t53cFZ!fh+0)t4RvR>-t36==6aJNnb8ijqnNqO*Ox z<)uF$jsjKto~`|xwqBF{MCT3D#3ygv{zQ^k>6dq1>t|esc62*)z3sCX(Z}H-X~^oj z$=qb6ao5=Tjk|aL^3I9dlte*%6ygKQeNnsuk<;`2TbAIfi5i<8ZaZ z_5<&0H2S~w=Wp&ZHS2WWd*Mg5BR2blt$ol{+h#CKu>+7Ex zaGhbh+3#9twFAZ;)tj~@lKj{9e5;wPZfJ9pByC^7zO3yN zw#OhRD?$=1MRLdl`THsDyEpDs_FvaqR@?8@{>9@|&34jtcw=AKkiUoaYVzTL^)U5q z9ewkw?#j6B(F4=kKA`O^^hLr5U$azhe$1RY060yM{}>ouljzr~R{H3n zFFo+>t&s1B@B8+_7Yy_q`oYHjbZGD4`wstJt)aH|$oSql42VVU4!GoZ&8zKUbN%qlp=mCba9Zf9_ zup?}0YH~?UV@NJtjca1q_Veb;pIlzO4%y^_NR^~6*aF&z+fF!cj;-H$?(Ls^Jo?R_ z)(xNOI(X{T8x|Ye(k-2Nr>E(Y1E)=v4qb0Yqu$kqH6uyAH_nW$KYIDNzTco5t+$=* zmfHF-dY_^F^#-G{2C1W|-PClP0UNU~h5o|kdiGV@aOe2rhOGzNI!{46>1%f#w?Ase z``G3m>CZlX@DC3f+6@EG9sHXP%h)ih?eFG4YS;E*?7tPNg0vd-rQQYN5A6Gz{x|R# zDNfqdX^Il&s6zkB{!99m>n+Ljl|66$i3^*w>8;BCOy$}<;1^(`l@&PP!XVoCrpMZ~ z{-NJhrWJY@ZE}$Ft52nfFF)5mNGl;2i8r7}5dUdtnaU3kJQed*r9kkIqB~hK%~Aj{4q?W{|$J8CVAhRqZu0@g43l zozywNgP>~eZR%|{HZ`$>Ax!n4tGTPGsmt`nJIF|mj~zpp#Bql7LTvg#9d{%OwJ&5f z{XzqkdP9zOAx$Dl{R8LhE&p2`wWQiDeTU8vLs;K2-T2p6?;etFOr6{Loh`3xbU@E7 z`h9gLTFyc*tz5d6y0a%*>guLkd##LQw{~L(Y(!$Eu0DpbTWLq6)cejm>vuo;=%w|y z`#RpNvq^vVM)zhHn(Q8MVT;98o=)60S+7HX*}OVg{KJZU>v87fLBn638k7cIZ~f)r zZ#6U;ntGcWEU!1baH_VuThjy%|H0`eTnsxp`mJyMjRExTj_O^tkV|cPL$530a;;zg z)q2R~c8x*)w^`phgAv&G_kQ*QJ3e(7+osEPb7mb|t?Qljn|JQ~-Dl5f^8dv*yNOVT zw;%dn9zJL|_2`R_*B-PO^ae{eAUuKH8=%FWMy^|oQA zjvei;Yo9K6UDg`oYubAI=PtH=461OG$=cL`KDCZ3`QuNbO6b6MPQIw|42xacRIj(1 z>KlikLA~|oFZ~Vn0{zJskDqc4zuITR{$qe_>SWKj6YK1+uIuj}c8#&@-S=;5^1pp( zzFL_$TNM=(fTxgZ-*9y_RwP|CXCH!Z*FL4Z*H=|#1gZO zX1JhRj$l4)?2wj4>Bgn?N+Z$r#rH&)ZKQ8z`Zl(BcA+!`9tAa_S$Fjgv%^rwDp-E0 z5!ebU57=(Fa6k1J!S#zSyW0)}{?D&}Tpo&>tGjCYETu ziMVz*-nGv%G2YY>jZO@a4oml)<4sM`=%A**65gBmP#>6a^hb-fl1Sg}vqIm6?(2?D zkUspDm2HInJj6z$?xA7VD0He5r0!T~($`N<*Vj+?{Mo4{2u{P9`s35BZNq2)a4)`e_&Z}5?eGgd`(8YAw(WNG z=KGL?!@oK=UZX)V?H-B_0Rq%^&knK8!>mAP`rSfQgP9$y{A_%q&oAdU_<;yTms7y{ z>GF)e`NSj7y-Y-Yw~2yP>!EK@m^|tFXRaLUKW8Wk)am z=nUJ&9)9A$bKiRXMZ;M`9o|(K4BcamHw;Q?c<$6#H+%Rmdrm^WH0amsZy3)0 zDfVrH{*6}u;c-`o?dLt~qhrwlx79@_$0i#{>n4ov7~ZywxjQFx^|rbJsj(4qPvcvc zwNYX0GrBguQDF?_@1J?U`<=V%9~~a3 zAESXk|0B4Du=t5{KcDg_0Hk@wg~zUmCh&jF%h9(l{^%cTUog0bbl@D;-8R-%nRdbn z*HGn0`zE@7Q9>Nb4uOj7#Nn~)o7G;s6kcN99R1Oe9~uwRTw4w{lS*LdX4}RH0Lz$O z>+)RfIj#KM56@NVjp@gThL*8z)QbWVchq`!;4T)9d*IgtcR%d-|x8UGK2VI@~MGK-LTmS!djkCT{flyjJ`9sP;<;jlWq}t9Ku8 zA8+f`_iE2EY4n_?b@uqI!O~vSK6^ZRTtA>cgO|0^@U(l}#KK%^20goGs9Ri>S+KfI zLkv2_^D$b#+T?%!)b0M9z8iGz9@7)^fW8)z&+c;vH|YPpb3erNoW;D1QP=vhHowMZ ztI??G*VbPX*Gc&OaD(n&rZ1k~r6H{w&x!sYZp;J5r+y8XU+vf8$M_Ie7QbaoK%XeD z%>M>_cz;xcM7B9qnn;*VLdW z`j)<@X0x1rS8-AKYL9liO5Y~yfGNsOK%=$jnDH`n@0wU4I#vWVaM5B$` zwMwh2t+f9FKbI?tg@$ogEB#jbuk=gfY+iV--ERJB5V+lM0*Z5^r%vhVA?_)SM~6=I zZnhg50;7S$i1%!GuVoyDa)$viHccO@(|#6R9i~-$T3hWdx_!a$mPT*(E%xxA8omR4 zSGy{*onx&`aNFU1r#sQn?hE}hP35}2lSlS1H1p}vt1KEY&&-ldmGM1ZfB=^`bPA$rBgqEF5N?K z9)5-<#D37$VW=A!hWv+J6vjgux;XUC`t_T4JEN!lB>%5>zJF#2#pu=@p)ZU=^8d3l z@1MDG=k7(zhX)uvClF{oprTe6WmJuRHfD$N^f$zU7xtYvLGM+ErfCG- ziGBMCve{deVE#V z>o@DSMBNiZ(dnVj^Q0+ubwT?Qv~}yYyINQ242LNmn#F3~ys&-Ivfa#rgc^G8kLpK< zXFy1(oAlYZaI-PfG|_Zv4>vQP=fN0Sk3;SgcECGI@MOQ+UOUppk8ZZX#-QQTDA}C3&VK^`~%U84ToQcMvQDU z+BRl5)6=Y4yMHAYew0(c`xdl594Xhut zX!`)_M5$j?)qXeS`e*eU`+L-_jZ3&#e=YqQ<=VI(Zv1Y_)y?1N@r#DKUW@f`+krNV zbVk}N-~2tGKcGK@^22TC+Rj)lk~Culd$H~@x2BG)LZ||yFE0Pkm>WC&>X_RaWuxFR z64hFTO0CU)H-FtVtEVjkZF=hDElZDOvwY(h*rGl5AHs)5ktRB^@w3=}8jX^xlL3pO z9MXN29m08KwW)pnyvf?^qPo-5bcz9=pq$mD|LUqnSG+seq_5uJM)b%2udmF1W!}H^ zyi(qcdC-^~<8^|r1kc9&gTBzO>OZV$!#=xNzWMw4{M1zDVRKykYWohxg&c`Sq5E%+ zU(pW^j%$3-=C91V-rt=-pBgzT^S{AgH6L#B7xX-gj~bQdpcVK8R62Y7oWU|+ae@Ez-L5mP&2cNg(bWU`!}X@DNWBr zXEpxAiU&}?0X~3rgEMKq$D%mlYP>+m$+lFhjqU8+J?O=?A3>1 zuW$Vgdsb*kct1q1IPs4u@?C|^u6BTjcd(?h<6lbl->fh7Ql9gYJ-iL}?>79e40NY= zsvGvdE(!03O*Ux;z64!(t3hW=pI>|JH~oiM_yZ5Z0fOxPs{pUb2Hyel zU)b>Hh5rJ4An091S07BEZMrV2tGVb{;83#n-vN8&(bdAGLE1XMJ)+>3&ll^)F-an8(j1`=McmVb~!x!rv{_5a& z^8eXb&&Mu!j=h4q#P9Y#JKp=+E%2u|8K+zAu&1}cAE>VG3;zM~e?R8@qWvZKzh62= z{wkXPI(Q#EYbM`!S`W02$cM#*{}kaLB;a|wy&nk?Ij{m~U64J$&VC8&o&1Mrt*~xM z+VmfqhVKjBZQ`FNrY`)q$wqZegYbK4Mwjp>VrVU3O;q5wSNxTLbHyKuyo-Q8e44cN z4tb^dD}Bj-2mVY%kJqR^#Xx|+&~fsiz<=1GQNrHCZfGEXAZkxI6Ya=nYEvF=v_D4h zI+1AYPeWc&UR%GAUlbDntDTa~j1lO6&g2h-cSdHKAg2kfCpd<-Z&z>@a7r8C;LUdoJ!AoJbo~_5EgSu zpCXo$K^`tbMXtbeLQ(MZ!mOY7W#Gw@5aA;#Ec;S^ADm%$A6zCQo`|dn*`VkbQt|m< zI+F?{6GAdD%co^AC93&g$`_0z1ZR!q<(Hc}o2op9%0^06sn5B0Li# zrB(#$NTxWCT1X1qB)oLyGigNDi1@^Y&;6$+d#bDbUy^?sJ(WZ;E2Q9v2}4 zP57h!cP<+2^Ggv)_kx|SPmFlr`%}5#afp1#0jWraxT?Q+HMRa}=~r}*D|hY6-SwjS z0UTD#sj}ztrz?x<$32dfpBLA!U%qpD{m!pGIsL24H?RLvtNkT=*<6n7!pV#pKUp=S z7C+Fc+*!V}rrpq&RtLY!FvTw}Ci5RB@+u5-so<05+t=57e)-|r^2*2kpN4Md$}o|J z`SiQX3k&Hh<$qr+eVV*@yXRIW!T)=C@%HWYPj1{CSV)wTaV0Sa|Jg_`fZ23<;liCx zrgLCOMTjT?aYa$ffm_S)iG^FTm=wf9SrE(FvI1-4avpvcC;cwt}WjFG_{QX znJ?d7r~hOgSy?Vz`}EUnCS6=9&rjZ3`}CtDM|&4x>0S8X1DN*Sx^v|1H{wAhedg-o z2gPgZNTeo1i99~!|t83TP{OxO{}tzbiz~skHD6jS!hZD&dv{ia{c6Sj-L2WbR_utE%WF$% z*fkfIVYqy44d%=5EzQMXH6B*i_U~L)HT(C9y*upxmzFg9S=iIF?0hh<2A~+gPCuVk zUW zW3NsZ%U5&i2U#)m?s6Lb7E8raekEUCSzIi>r&*T6_XB3^iwgP$zoXZ8%PRU?DyEYw zuzSDtUS3_Hp_bDz6_)W!OFMTimC0VeV(+WM_Bp1}W03H1s7pmy)}xbhEWA`Im141_ zxp$X}`S+GevBkwqW(jrGcQ@NRTvzk^ccKsY12CFDg;Np2N;t_W5HkKGq$Ii8&vWqb zgbWG?;;`QrVB!xSl_dCHOr+pd&-*-ZFPvBAIk5o!E0>%XVLu*BXVXb92Y)ea4r!=1 za1QXLQ;V4kStS|Zg8|X$iSY1J6r5rp54Xq3WnZ=&5dz_KCKAsn@JEDPgQ7()jFCi2 zNGIS96<3oPwOlGKM$(zZEDY-fc#q;C5BF>MZio>j85VMpLN1Y;=hOb>1ecmm6#Za@ zOoAp9!Y1uV&im16QBd-c`NYKp922mk@XoXfU+uXFRw|?_ocALMKAWBw6d3@D`4qPp z_bF;BF)KR~%f6N11XjE+QI4jwk-{uIfuL2UBMir7A{_kMg>aIG2e;RWATNHg6}lOp z%KIX`KOs7uaMF%1Eb?%(!WPB{706yt5ssf?j-OK!LCzC_UJ5^RMTFmZCgQ~EP3KbS zB%d!8${?u^Hv0vL5P*|QE5#h4lgfkqk))bV1m**|U~(=N6C&`C6NH>29fpMAeTe$B zl1~JLq>_Z!fYm3k{vkqTmCJf8x z>ZbpWixuPWUk_^jJK%qp3vO#_0lstUl|n#;G66DWNz|$E{mH35pOD_aGpDV8@*k31 z0TJyr{~t-B_8G+6fe+gxyj%+8MwU(n;R~k-`CR#GB8NOyH0>vXGq)lLi$ygLQ8)+x zl;9#X`2t*aV}Stpy`;|jbLxB?Ud-6v!=RuNh)3dc=@R_^N@51QgZKftNU4~CA0RY& zA)7!j1n{9+fK1GS7!ft)$y|nW7oBFrd@=%k9nN9!SJKvN#s5iN)Zm9a(DF_T@>+~6(t#`fuk`;%(&y>4 zsKvkfvi`4~cfWKV(DIe|UtiR(#1Di2JkGv|A@HU1Z{@uF8~QMG;!SuiczHAa!4&E9|BTpwi1%mOh<{Lr_C}ls z%;?>quc!8?PdfjF3qRBJf9mgLq*q?~+0R~i<)42>=XVWXwz(Jax_UKyj#cewWt-bw zi01`&h-One%i8ecvhA3EBWtFGGMD@$-~Y- zstCc!jGyB7c}lVzRFf38MWFauh@Xe^0>%GwR^oqY{;xsAzw7VMXMB;Q2l}s!I9vrd z`TP7mDZx94z%D7LC&ByT^IVUALh$7w7ZLA^`m9{gm+9KjS2g`LiYEOl4@G>OPZS(J0m?KJg8J-_aFHRI0{0+Tj1b}Eq?67r zmVFez&jWp*;|Ukw1pQyY`2`^k5OvI#@dpvRFodXoj)2dP&^8W^VJ5sGmh%(-l&Y&E zXzzE{0e74!aGnrrN@LM+R%GRJrj+0WzQInIx$ zD+s(JBX(ibiI9K{q6AThDBjQd{gYfU$#X&85eXq2n&1sNoQ^~gQMf$6=tmgE315{SL2}sjOF>y`K0VULxRS ziiv5|^%>6Cbhob)zfuCf{xk9HOMAY)^*`?X^3IW;)a-reqv!8{-(jnx)7cR}(`amN zs;mb@+_NLEYuSFTv8S=Oxv_b?dAuF*DiKw)_xPjtJ@I>{QJl*)UEf4(uSNHy}_x+dVy>{b1 zWACr-{?>nda{A6E_x|?%5B&P$|5$E4Z#TBSg{27qjKEHBtk>&xjYd;bqpr8n*jSH5 zS99ZGy}90~<@A*zlp2kDn}6#BAUAHg=Yg%YmhbMq|Gw}1)qkvhJaO{*`r5Y#&NPpl znlK%I!qQ=D*4MWib@jEUI`p7Oqp7(?-$*pDG*dswV|1gj-qLKL;k0p#%?Rm;i{NN% ztglCXy|Jm$Xwj+|Eg-1{>;FlM#=o)*ewFDwT#08X;ygRk6Nxa0-^Y1baAuT2fW8a@ zt9cMHOO_}6+~7nVVqc!s;)Oa8|Fd<_V4gwM@gz5a7)=6}V9%6? z3-xq*Yz~JHc5FSY2g?A9fk)U&FXux{N-yJZ^oJOyKQx6nW8;n68*^Ytjsur-4n*uiWHK~@ zwTsu`W%?PJV$3lP#5>&qn6X}E$SYZ{JC60M;UgoS3A&(orygc-3SrF<@pH&`Q3yG> zeyp63V_foD4QHQyvgY8E+pB-TNI&?xWH#2*l^dL?sBMmZxR>ta( z`lZ3CshLn`Ka6_&jz}{h=U}Im?SW11lqB~!ysT5QIvHuo;YEnVaf+6Qae*7tKQZW~ zkc(4{6axOB37$JSe~;woM?}-X&VJizhff*{agy}o!KRB-Oh3w}LIdM73C0oXb4ZfM zG38|>htQ8c89;ylu88nj&$ONJA1D6j$o6Cyl`=Yp>%=}T}3iU_HNmpq_9>9-t@$Xs}J0XK62;kyu3 z%rA&s0&h755iy|nG-4~^eUP9ANDU7n%!w!j{CHt1D2OfwDUYaKs0-FWKqL-vk!U|~ zBEFapCkpt^L)r)YAwiDk5EvztjAOru;MHfu0R(`I;0Z?*yzogm(Mu#5$%cbaxv^W| zMGUks5n57&j{{}&jZim;<;Ot2hWtGof>?2WDCdEg!=RRN3A8|T-^S%h8 zRS|p+2LekXYMu;XE(@G*h4Tl!LC9X2OCp{X&pBCq2?%F}77;{cMJ>pG3Wqm@a|2%0 zAbv}l!%0EJ1mIwUSZNLc@2xPl=;Nb6M|6;RKXO z`2UOPuqTic`~e{mz$^+FKLLt~6kH<}$p&yb5a`9fASM%HM4eATBM63kX(cG+1g=<^ zVtJ>>hZvb$q3GvvUh#$T+R3LNaECCTNF$CR&wIrn;7TRZI1`G94Ur3%Qh3{e_xK*K znh7hVQUKHG@uU&}Jq&#p@xP$2YWli>_+8LvH}qG@l}{m#4q}4Dm5>KVoQXsbhew}? zHxg(c@Ju*+_V1i=?yS=E-4T}*5D^a$F~PKWT8ODdVKx0uPfAGo{9zG0GiE$3fA({81pzNvsWCCe?&bu)@4QoP%`qMda`z!UFT)hyY&Vfph#0Pbi7# zl0FIpC`VXKU4#>44CUkT$Pq#hzF^3Uv)Lj}f}$@YbK!`?3u^KipBHTFV<&MgbS8K1 z6cDcr@JbZ_jGsqdi~nauJVTR7;Sk0V5hi^phlk5M`)6eYp5s8`9*){r{aifA2#~~B zN2cv}rb<2@t zoc(NqK~TTJkaH4p)jKuO51GnJBz9%9W6(O@j~$}lI|xCE?PDAoFXQAL{_zQCtC#EV z6Z-qS0DW)GbG z5H(uzOES|x=;cmJ4#4C<=tzejk_Y115prS|U>siPjUGtQPD}#izdR^m&+#&VNgiZ8 z{fP05xnTg!gjebrAG?SEmOcF!XQagWfrQ6@+B_5T`+W$|%8i8vG4`N*+ADjfygmJ} z9tU0yAR$j&M4Vl&#}fiumJ}!Chba0(JrnYbhvNsa5c~*eDk))UFvW0jxj)GGyiiOb zb0Q95vY+OF_aK6wKk1M|6MRokCt^Z^#C}lQBlL%ooSy}5-Z9SUgX<(WLwhmfz}C(a z17LIWbEL!a9Ph!dJSfUj6A1l#5h^>>RL>OS7$0O1@6*W;zna1SHY>v-{-s09_k#bM z5&06#z_5PairBGJgP3eY)&^5MtT1YZ?%M-?m#IGD{f#u68T7@-6hE{Xd85(mm;omu zlxz=TW;4(n7;Xx2M`?>BEr*^-;QJ7wq9V|?!+{zIjq2bBiNifJUS`bO&xMfdbeKbf z{(k>O#FJ(EJE3eyaGtzh%WiMbw#7ze`j%7nJ#U*Bf z!hd_M{WBqGH-OjSAb8Eqh<9pa`m3rKEpP1Y_(5}{7adJ;5;y2Dn|a3|MI~qYy%Omh zgHT%fol;em;|SV!m>N4ej5UrB@OSLo`GX(8bLcru+#%uJdzO>WCL z&g0SmP36KgM4^}xGQnl|c#;`E337sv-duG@3Z#W>+HSOZ(R^Q#B=%6!=ynoqQ?5c z4fD+pZohxcxqsSx(eM$T)lA>1&8bCG#d0bDi@C^ zN@h>!pZMtZN58F<GS|$@#kJ@g-c2r9zjyEJ+m>d} zp@(16vUhKF$?-R==SudRtEoA6=H=|?pZxsupU-|i`}s#c|H$X1u`#7!DvMIe%Jr3_ zG~v_t7jG@zs?Dy=R*na2OJ9ylU;D!Rua=H~A@lhCA0{Oz*DGuFi??pyLPrTjHGO5_ zNu}1MG(on8L?cNr>TIY7jhw5Q9+|y5vdI2O=<0`yuc0Y2GCeXfPokQU^O|k*i?ip? zpFC+*Z##$f$h7stqrVZIa%-7YQP;6rm-|&YE`9V{dBE=kxi8mO(ou#4d5+aO!f!bi zQ&ACpme9;15l(zJpug$G8*(0_za>$(k^+>}{QceM^L}Hul`SmdO24ig zrGFJ=U`e~&|IdH={YX)wth;@t|^s~BVkU%4SK5p6;&;#Qt3 z$N103e}1K0>040_TDiV*l&j-Nvh z^IU6XrBffk-l>J*BG$=pY)p*AerNx|gd5szAw_dmxe@Epnw?7-=Ra&oR3F@_KevzF zdMuw#Y0wr$gR^E^9er;u+M{pVvu9hKwdVD0m6-n&ilrv@L;7us{Z9)9oLG0tmp^gE z@QG@QxzciowMH(;)pBV+Kj8wjp{BfOAMscBN_)<6P4dR_OXHU_DWys7>gxUFZzPqJ z96!L=C%?Y3e9zu}V4y7Lr~fp2_F%)rngjaMG5i8-hWDJ}yhiX0_KU6qtCfj~8vQ20 zKZxlA5XYXMHi)GhzXaM^8OvXy#Oq$KRPYeQ@+;QQa=> zT3S%Q#S263jvVw?ODkJSL=7@8CHLw5(>qFDeDk}{|0F3d`+t7#kFH(rUz$zI%uUp4 zbE(<1*l$%nu=K#UlUuggRf?% zYY%)a_dt4y`3q~~p4@tP!{d7DTDrL;EerkG)9JbC@p18SanHSZJpRoWUwmO|=ym7fHKcW2wF<8@7E4G4S`KDZzlI{eh zsMzIGr+yw6Czhl&)g}4=?b!{_g5i;tc=MMTx2Lb&dhP9_4;@*mzJ`^UWU@CK> zCc7Z}&?_%od*NE`D`&n}yQIH;tLA!*HN|>b(d#={Q=0w#oir%!$@CY~ts^2}EP^!|HQVpF82G^<1pnOa|ALH*zqn4ka{`qv}emc)zx&B`~zr*_OiS+dJ_@88_r=+L96d&XN zhEL`P;s4)XoBl|4dg;zLp_!HL;WdP(r{_Z}apkQ`WQ13+80K-D&s!^R)ZAqL)msBM z=cjMfF1{~G?z|7F+@1M#d7f7)EPq5@m+;LrUV*MYJ53H{L{QgDP_O$g}di?2hnc)ppHL-aY zxod?!6cYeO3Y?Y)VM2yolk)zbi_w8gDR=q>mom@WnEy|t3tgOe>csQu9F_itE@JoZ z&|i$ckONjYxFYQEoR#M;-degWuiV_7f4ATIs~d3}(!c*!=0E==Jw84D z#g~5a{Y-6|@YJ-ONrx_KwYt*uH`C+4|I&-kJ@x(g^nZ+tf385EcvhJG(>s#W_nbQZ zoTT5ZRgp)3?)2fBUuqAfCFhqU=e@q|>f*WT*@K7(^&)d8B&4U89Qw&qFMRZ?o7Za` z(w zBIP@X*F+?Q#5t{p2mMaa*PKo--TWpzmN~EKbbNODm*0Bn)s&XAf9}t zhVL3{wlzC1`_K~#|NpB~@6;^4cMCTyHP-Cu>`JSp#(JW%^i=xJ_!lWm;s2}Sz8AMI z?od)@;^|*aFD+f3p0&dF;s0NFZ0C!c(&Ii8_cu$o7Z=aL|F@KUIj^MrjpQfe(&M-0 z{!`WQ^wPR#rngxW=ucH%lJ+1LE%dcQPcd4mRQNkITPYuMa*dh3GLf&!Je5}Kggfh} zODj_nGdJ%!rG1^c=?kuGJ6Wmp7cCNnc>YOHz5&H5NF-zl$^)QG=#m&}>PEO^(aw^R zeOjSacqz;S>uJtjc>jf^i_YtnFMOEu^91!<*t09&UX^b z#8wEKmzceeIXBmi?Yvd7D#xA%nc&cS=WgDvf34=cTI?pphKYJHMyRGD%INi&J1cdj zvGQNJDixQ1H8ls*t*3eaZ`K%UYO0P`ZhP|S@BXjE#EqN(@tLZVl?{3gZB-i0fg^QO zO5=}mB1Oc`im=x&DcY=6nnSr_%TGV%S*fpXrT)|x`=yq1cj9TeQoIyZv?u96!urhz z5V({ewp9EMOpE;!zh(RXG<|6cIQhrGFT(ym3;8W3rv8_IOY&b$N+{X;20j9iU#qK2 zPVL=WRI)ee92iK5DW47ioCwHCJ{Vr2cY93Hy5Cc@_YM5u?JEUEVw?Uf8n}Dkke?pF z8vQmvLy&c2@-Ol#GHkVZPc9f>d+G}H`noDXYd~Jb|JSCpi{{)-7fT!RRm<|M;CF#~ zW=_~c9`L^O4Ruw;E%{)Ff$d*XSJzNY{216-paiN5(h}>oC8nLkQ<*9Y9a=n-nKhfz z4iyW>OK%Lc$@kA_aywoKO`jV`xlT1^0#dR zluERd2?A*5iXwH22HWK(0yKR99W3!uwxQSx(x{lZ9Y<9TB`VvwBZ% zRbc~oY3AxIbIJ~Nq2T`=tIn*_R~M=AW0(NiMKbtjX>})y^2;)^1U*CI$%QBRMpM38 z1UEy@T3Db&4sOs8rNRJgm9)@B<#`$4$K-6y1-B5pi+s>ip5Bp>m$vl|0Z3Xxv64xU zaLk+vOh`Em*KgZY@N!!1bi$SW4Io=_)n0mIWPf$38CidmR=Z=TeCx7Dj-oe{&ENU*i*a8# z{MutjKe(Ou!HE9$@I62NS=rL`M>mj(H@x)BbBE&oIPUnqqldCzdEtq#U%Pen`a=c# zes#@xo0<>+S*R8OB~AVjNI-#HfCv;INGdA|=!o|F!Eq|)eG8TB`C8G>Uw-q?{`-b+ z0DuR%uLMZH!F){0kc;_@foe@|g1NdV;ibGEJe`-99FHElg5#C3>EZaql&8~4g#BxF zx|z+;l=z+TBFx9d{rA6-z46uW{c7=2%^B;?M^4AL+4Qv{vu#+tVf6^Z*ItWg)8G&hiz4{TAW$toZ(`uap-1}9)Rfe)FG`@>iFC%m!mBnjE^+(Z832^p^v zXV{wSE~=qjbK#DJ%tHK|R0*nONXw5F%aE!;Z=BbvYpJYS&GD#W90TU4IR`w@qVj^A0&zBo=TdqC;KAI4y?av< z{@WMzr?MaU!rdFzCS-gU@0%H_KimE7-HBP~9nf4=P7b)Jg>1p&7*w<%#C>N$1{jgm z@SZGiN-3W~tWp=2;W`yeQ8w_43fZ&I$jE*qJN_H1?_Qf7pB=xJcf019dv|Bxw)4r| z&%TZKRJB|eT2PKW|J%Da>{h8$)L%{hYLcq_usVz70dx;=k${z-JO+&^yd6>@+JUh| z0k4+3QcooSF)G?biU&aD0&hjQkh~qbN+Ev5W=c4@AY7q$g|CE!yiHF(ziH>gpJnKS zNM|;`Rr|#qq3JD)^l84CR!S*m3Z`H4rC*s~l>QZrFV6By%bjRNDM7g}XYwBM5;w0s zz3Gcjiyh$IcW>Bm;5$3Yp8eo+>3^5F`q|Tu9scV}J5%B}5E%0>#{Jp9{L`8r{^_%a zUM_g~$!C&|=6wF=Nw)(Z-7u?9nD4*6Y00S`;o%sI$orKS%rSc@Wog>%%6j4Uwd)S` znF7HT<1V;MB#`^`@0Y%@=D#WZOaFiA?XM;a2JPSPev*F9QTl)F>Tln@{2tbREBWtt z)2r$=$^Tv6lhUBy`*WwSfA6|PV_m?wS_!fD`lZ zo#)3TuX(0Gos<7}`_@p8Klpqoa;5Y?bj+uI`GWI%G^-#BtK+AU-=9iLN-ETYzO-#~ z(vG~%NxM_DNtK$zuYcu=zIs3SNqYT`g!F$-Nce6#;zjWjUw`6-ggrk@-&Yd<{XBez z?)j^vlkb!+E)=zZrF8A;`SUfk4JF_Wz+BBAUB4MDMOxfb68D4J=^YM*J7gU8*eI`Hwr_)K|7NlvWq9?3I?5h|I6I z?$1t%e>(nfc5-g|i;w)X_MOLbH*ej4`m5iH`^H=5XAj@Mxch_Y(%aVWq&#$ZX++`w zYk#u)pAN-+`;7z1M^B#0eu3qbTi33?od3+PKAOH=BYQm7)5WD!HlKAIbNq(Q>1+Qq zZbRwm8VE0bgHl;#>XtwHZ25MV>!;GvUld_}YuY2vrKG(2lfVDwH(q)!GpQgk?;oE# zwDXa8ZDw_$wy-*X?Mr|2gQTNrhvWYEZ{vRupS1T#wagDiMO(KXfA!t8H}+~SYHH8y z%uWZG$C?tK@(8m0hPVxDzb9k!cH9pJ=?c$BwEI=KrPRmtR#F+WPVzO0RZj>%w%EvYs`EqY=?yJW+&&aP; z9nDQVemwVZQhG|pzRXQ2TJ1?Jg26_pOia`!W$dm>s<~LHpGKHmUcV9&Py~h8iSk#G zU{jFo-re`kwiAa-3oFl?xBY7I=6OW>YBO0S#L|CqkW0#q*gd(y1yD;xUd=rX&Z-2l z=TAy10Rw<_;(TPy2ISQp*ub;i*pRQU$=?t5t%Cm*OE36Y+N4tnNqJJd{3}V=yctXY z$`iaV;RZX<{aV5QBF?$U#8MaQK?rd+&({@)?#a09VQ!cpb?+59Qwl--m7--A*eR>dWlQv6yrT#Jevrp>35??88 zPh!&MQ#+E9R^lo2-D{Nj2lAJ2tz;#C#=eI)rzIwR=PNI~_T6*+B}*wUzf||kud1$W zzH&XY;Uv<`XB++~W66Bw&lC6V-TL$!|6nbiz9?9&JNAF~;n4J+s~=jbc{ge^kX*18 z1Y8)t@Kxp%h0g+zt;`LjM{m3@6O9t!zanIjswVeq2mg9U!m2NxcnaBO?S^lZo!)); z+xM?~`0w8O)0fKrKI7%{J5RsJ`&gU(=FWdu`>j`xuld23_7%Kb@Zw8{s`k9{`9FfW ze{lPV`u+SLFCAQ(&Y4Eo%+GHS{w|Y!tvSa3)zju*-M;3Su0B%@z@)0WQ*9H=xawN9 zZJDpH%&%Yi`+eU^7QVh=_ge62RiB!FPbl;7xA%P;{(G?KOUWDFI(qaEuzKav@=W(B z_G?xNEH)GRa>y~4RqxMMFP9(V{~PY!aQ9c={@dg-*z=m?XZPXBeC7Gd{DADYHty{o z?3UU42hV-$ZRROu+BK^h$^?tDff>KBTwTDt!AHW;g8ZC=`1q+tGZ5uOnfD41Y?S9C z*eD@CKP@e@D(!JCm|3y#_!~btdFWd0`JDykqe$@oIWQtVMa22%tuc`6J0k`0inpu0 ze>whs0W0qxxl>6OyPt2~u_x(x!j7bk#9@&jLZ3SQtvv-_-oZ#N>SV82h5Wz&;MN`Q z#>KDw^0OO$`s#+A-(LOfnpYKJolH6T1tP=3q=l}atmWh3!aOb>DLPbh*qZ%6Q`X`` z3i>qHe(~_?Ytz=n=@TMf-7WGJ@AvMtYrp;Wmt_9U|7!9Y=wMm?`X8UnzhBz@&Ezr! zouBUei`~dpd?LnrlI|7E^jJh@;DVznXs|s0pnUbw-MF2Ww|^2@Nf7h7X3i-uDEvM8 zTYK;BFC~k@_cxI*GgjU|bg?3T+`Id`&y=Y%3ckI2&F+kXjDiA8K@liL+EZRF?_Z=0 zXaI3k+(vUEPnVi0exH%lV>?P>1g=&uo^McJ`Sa|1_ho=ph^PY6CB&GP zR#=pqhGo9FtV&%y{e(|&{ngX2ocQ^@`TrzUQh@H|gi!GFe|ngv6(xM-vC?&Qbvt@; zu*?-?H4f;2+eu^N$6;Vbeb&ed2Y#Ycgp?;(9#Q@IG@65nPqP=@89XMT1_ zzWtI;VkHb(dBbbwYVBUhtyXwRQBI=F6N!AEm{C8W$lP4^k~S4)=2vHeuDf|}wK?g4 zta!lv_?vX#qWQR%bphVGLW@}`KJrVITQz2KJ1&?6;-Kyq-1jYT=7H;|nQzzgo*<}9x3 zH@2&hJ@U(oiu(JFjr@$(Th?3neJ-|KZx#Q~qL^suLHo0(0}W0z>n~lubbU?zT{_z> z@2xeKyU-?VYCl`i+9t}O?FLgH+Ki2cPP8XYm+-MIs`gGwK(t!%e@w-_yM-8sTE7uC*Hd8717;XTw3_J^}6rYn%Zw# z`q=p5`LzaHg=yjA#g9959maW%=9C9Dc`A)=-Qiz+-O|(8qsq|fRH_T;A>pAErQ=_G z{TC0QN!iQs>()jmD~SeMYq6sgn=OOQX|WkmLF_RY+ia*|Vm53HRrs71yKMkZuf|3v zl_#JTM>?#OyV_AiHP{9mmn=>^UtzoUU{7ajZx0q$7{(d!=*yYQie_Vbha1~2{F!yz zx>1Gy5EsL-$Yrw{@{ z0@3eHk~IN_k`R+!VDrF&CYaYRMyOTk8B=d{0*E>k5m>fqI<=;Ow?yqzcKTWE7!@*@yKbb9s5S zx}?0nzqv_hc0bth)#j3t{(h&ezrU+XLo(UKS5~V;@ROh%l{&EyRRV5?nJ=>XWf_%je(_oU6zCe#X)KxNFiiSiA6vXJ#ie#}hxd>|gf zE7fn_tiK3qE2z5S&p@x&Ch2REBtKZGNYu190nFrtgm=L6SNsuF6VK1h5HR*S0AlY{ zSE?;#AcZSSy6h>lvfBVuHoT;KfB!abb7#N19rcKk%4%u9$3^{Jq*m6^$%{NLWyFFa zoO8;GEs|*i?e)-JPnYDE_jC|x4H*gTV0-wRi?g;8_|N**#g7E zZqF9ysx3CWS1R;8x@rr~Fx~BbkUKm$h;#bg8#g+dNbk_`oX*y9|Hdkd@lncawGZN# zt7{TtZXW3m;T0LY5%J=Lizxqqx69Ktff;%b&=7IQOB?yThXx^9HbI9QRCw{Wv!Y zdjkIG1je}TsiD;ML2P;5!9b9L{S%S(>nEnxr*7OhMtl33Mlk`lk9JKg$NPw5GaMQr zsW*VtA&%W}U=fKPEr1H>Qjzd4f2^n-H%; zR2;`(zUX++9}W5@{DH~IiP~E=!gnnr*QamYYq`rN{7(2Q9M87!@xsT`x2CV(d-h&~ z9EJaTEVkA~uEV|0E_^)yvG7%=)nQfmYez>1Km#3yCY#P??de5tz2g@T{Ne@N6*kHJ z4x^(TU1=lk9=l9Vtcbe}#_8+I^J~xX{JSixYK;~>&t3dj*Hhdh<@4NIch%l?R5_l# z>ujmU(lh_@{71G{3-ydWzk)hb{sR_6v!xw9{^DXAF3lTut<9 zhW4gbuuvLNgm0=ii!VfHlM}7^4oiEtv10%>ZnJe*2V9O`Cwk;AqpQ8UtJTtI>~dZj z9JX89EnRM-tI^tMwHbp(M~BnqSZ8nuZ*4|T-?6UO0MAYy{S?2&^CKp{MwioO1utT( zb$DIlu%z#B7rV*Z-6Wdu21C2fg75N1CQZ8z2h-RAhyp>ct+d%*VP>_EF5a|JtX zu`&7dGCOs2lOBW5Gbom$M%}JsqOw_f#p2k>>}9ZB>b_(-!+dIYwmY#|ZggNMY6FwN z(OThY$AhP#-RPXY&U?MMrgr+e_12$42S%gDLjQhTZ_zNn&VO8c%XVwc*?TQDY&@xBKy)x-Z-Et_#UcHE@kn>891W&H1J-lK z3O$p%4w-;7mDg?8?-KgE<>LL{W$8I<>6xYciVA~n{^Q8UA)bGi<(n4k^;+ojFV13& zV-UK;kfeD2<5{7<2aFXu!;dIm^za)iEHbZm=xr!ZGo#D(4t<64{;~TLX@!|qqzhDr zp&R)%TDviErxRVA)02%Ac2i@g!PbPOv;`9ikV@o;E_r>uW1!Q8sRoAdO-`%445x9V zm-m7_d#j@t^aBHkC3vUDBe%nDw_33hsc0Uvb)i^~Bld1*FVGP#Yp>Ny39_>(l|b3K zf=<(!E|v1OZ6ae-*gB}b*vVKC#TZCZO$ky#5QAdDiY1`52BQ>9SFw%8I2&C}0in-| zUTC9(V`rP~Qai7r(Q2d|gQpqVu{PSR6-`b@Q+xA@JP^Eje@M=^^sd@cF&5G({MPej zkspo+kQIJke&CvtegJolKEG?w)eOps(~k4XFrXA;xO5XZ1h0F`=wEDUHU&INd4W}1 z#=^rDUiTIJ5{|frjQ~Tf8&JlB)9n~=tZNJ;-~U!JWd~QDhwDunrqTgVqtW5<*ap4p z?Dkd2MmD$IHN4I>tknOW-~I>n4=VNd-Lpk-75;;3TX-JjN&TlJkBrTg_O8?)Lg1Q3Z!=fzTKx@y2m)z!UU$cZDayL*Ws? zCIGnz1cUw|-;{rHViG(Dczhrl3XhGoPmBg5LI0qC0#J$xxVqmT_D=>tesGV^065~q za$Wx81QTEqkIOqWFfcmicY8+$23$e6v;kL$zF2!`n`el=1$bmA;4#p@o=FPwhy1~= zW;fS^{;8?J#KhzTUi3okKFsWK@CZN%0;gS&RD!{%TV0W&^PMqu9%KIB6m3N)XD}5||EALOv!DYa$ZFjp18n(d; z?dx1lxre!z+q=%=We6ZJ+u^pL9DpSOI!UZxumNmWACW3+1==LHV2Un`fwQA3N%Gy;~?Y3)r^%>qut^Gnxfa; z-E6n@8l1gNj!)6UltMp&d$!>5vv)<_5Sba;3JCqkSXfEVwK+NWKsZdzKCol(Vi*_+ zLqF~jAO06nTqC;0vucYk81O0OxmRrg>BJofdLgt(6L2CUj&%b{e|QJl9nN*l4tbtJ zuk?}7?qC-da?UQn{%Umg**cg%9G{^s9t`ssFERQ@o}apT|EN;`&^=oQf`QK1c)Mo{ z@8Gy1|3CG+@;}c|z864P)uFqiQM5UbSJ6PwACOg8&P8KEWLJ@Q1)Cq4SK_&HZQC}Z zaa)~He_E>%8CZvAgpyu77$5_K2PvDOUU+w6t8l-0Q!5+3i7oZ7Hs7X+ie&bY7nDD_R*fm2kpJy-^W*Mbm;3 zsF0$|LHbyJKlvvoqO*Qr zwbp^rzZ_54hT7Rh!R$wS<(0QjyeesH&|lc}LSF4sc3)l%76*@0lwk>qPK?xfCC~;gQbJ2hrP6+>Z#Y~jaekLC&&==(OLAldMVCxDh=Q0B zL}5;971RHSrH@XEE=Wy{$#nU0G{P?&ngBZnjy2_r`sYHEGZWr$cxoa#H8B+l`{xlD zC-Hw7^!dY))YR})YUwWZ5kzdD=UnipxzdsTL zDrX`%9+{Y$q-1}XM@~*oP4M8LuWDm&Z`Gr{fZa^^Mnlm^6?ysLaW^_id^S1})O{`znVlm+G%~j^Hx*r&pO4J11g_3UV-f1RAa$OdpQqRe zb(i`_!V6I{k#jCON0^E%ED+^FbV2e)=4Lpbp@>*|dCr_Xd^!H;MxRI83zk)MG&CE2 zv}$ZjiHD-d^U;~;{47v%2dkYXVN()g1d{Ft%ARbS{9m~r$O;Z z-uW>4*wg2>S*P=A4k_xMSbs=R{^tL-`nQrN|F^Xt3cjj>@1FVEaPrR6$esZE6*Tl>=gA+3Dqt8 z&4Q_%u|H9TwtwaF?dc{#*rnuyiPNR!)rHk^UGfS~5WPBmjmxDIUC&Pi*QcV&IdQ3L zrLl$jFSoza)Piy9a(kjtB|A!^l2!gFlc(}G7MJ|MKQE`Bi%Q(6lqdZGSqM4KLm>-u z3xs*1LM%ecLeu<#isz#En=ic>Tvp5a)LQ=fA2oimqCUYx2p+3;Qn*i1a%#G!YHLgG1vpA;jgNdnOtPOfXr@`V~kvS)2$B z`DT3KAnPJt#NjCJ)&1f+dL|O#r3Pl0MIvEO5V_dznGE`D6at!AbZC&dB#bOR+>F&XyZs9h>D6`Bmg z^m#6impN)B%*;?lnGTo)sDBuQJ-jIMFCgBn6>dvag`TNxFfzkGUwDcd!++;z=4Dco zjttDhiT{5FNJDZ!nDdkZ6OS+_D*yQtnNeQP41xC}Q>UCt#a5Ci@s&Rmp*&s5M1>?m z#bzjdHX4Y|N(pjLNgrkYkbg4!%}Phi&my&kJiXF41pIUd{rIN$j0b~m7LM$QuwjpQ z{0`$U9dXsm*N((K3F6OtbS6A920UOSFaSzmWF*Kt$JO;XqOju1d)ei;lF0`W;0y~< za!nBS27`W|7vJE1XUHouv{XU~<3q~&)|MdOKj1AY^6b>AEnau8ht)4{v)wb$>*HJI z{~2OUgF?LG0DdJo6gH%sN90{2>rgRzSzZSrij*VkYrOgJ$haSYeJB_l2#t>^T_iOR z@)_ov36V#Fycz-nf&S)HsKgg5O1Yuj3_?81u^1Un#(F0l92L*#u|S!lLjMv%cUtFG z`XZL%_x=W`1DArbJ}9L8{|i0ZAmZ#^dxbSwB#3waba#zl{qPwgb|KEKwg}f4D#&oRIGdE z!eO}|o(s$KzZv7Nb2AEmWrBJC?Z9_bXAd8pdt&a!GdbTm9J@a|FUKf+dY*>9|5)@O zSeeob;o@LhZ+mpuR)6+LMewpIxWL>*y18Ch$K2fHT-pA|%1glsc>V3j@P5td#Ifjb z<6P7i9tb8}nVIWTo{K;lk@69s{Yc(Q6C-k@B&A++(XbqmQlUtM-zc+S&=cu<_uag? zxnOi|RLLSU?QDPl+*~L5=H|w@F&CXZf2yFRxTqj6?XNoD88~0oV7VL$GTHvx(iw_Q zg~8iY0_@S}39&rPqBVr;3r{s5q&p#DZ-UE53!ajKrIl^IC z%a|m`BWC_zpgF=*(gBD~Iqu+*WYr;%jH#IXN{xrn-8uFTgs) ztj8XLn=(Jd7&9A|E^pKmwm55@BQrKAbtN!@h)B5%_mJ|O@a)Wqx1hgchxbn%j07Ib z`Oc2m^%;de=IDqp6@ULL(aV95SGwL;9Bi;12~HiUJ(5-Ln>%u4E)s=R$V>*5-V1!xXg_hnPpvau*`lG`AEtIzDKV-r$QEWL1AH?sMt{1V+8r^N38!3gUa)xuRrm1U2$<~kG{2{ zqQ2g8#j62dqMo|4ButPxOHfu=m*cVPN^_KYD~rV)tXi`o&z^R%(Evi5lAG05mSwr* z&^vmJU0@nDHG}HnU~i$x2zDInyWP%WwvkKOs}MvPP?9vD71dhk0-oAxY`V1VY=_-g zaR$JM3ezP+1Arr%wpv54uEN;S)+ER!Y|HCGCNiG6$S%FT)KU+mMvq`-HGxbG0#Q?s zosIVPhNiw|T}7)7oDPSny&jw>AX5NN(eOmTcXSRQnA+L|7^w-onw5TCIqCtMll6VH z0N7`lrT=67F8lPd{$C7Wm)sXnU zX`G$Z)dVUIC>=T-y;cG2pveL>*+qdDGq4xYrc-eCD)c&C8`y%77_eplk7j9ue!v+g@J;SEnVopH@>#46O6>Jexad&+M7&gG%@YFU#56J*!DXu?K4C+l! zF;v1M^pdD?qg2i+BoJRhhjeo zEtA&H3Ls$`TQw$=W3-i$8x3~)q}yb1jcQD~<~Eb1xw*T2tXpR=HML&qadfu!^%=an zb_1yMzt)is?A7*eK&qN`Mw6wB{S|wcy}6>x(Cf4}yY1{4Ihu7q6St3cH4WN*;Ah(! z4b2Xax$Ird10dYCgW>LIw6UE{swR7Dg=1Kb!>q?DdljgXG&|PW4YGd``qX}j!{K38 zaP;DCp}DoYm-XA&`nS>H>K$I!3*;E8AB`4J!O@-J(df{yD(&h5!pdYH?j3BpB>Q=e zVMh!b({9%p>GWY>(pqi311<^}aI~^NWuSu2F>2UcVYd%dc$}6oM{m2a+dw7l&CSk^ z_U;O{iHtTj#!*LUG;p0xjJKk#sg(`B;tB(Mtf2G{*Ppe8*ufkgyJBf_w2qB+Ug#hF^%Y&a12Qz3 zbe%3>dA3=KJ2(^@nL{c%3_yUfRSW24g{iHrv8_V`r>ZbD)wjVo*b!rt!5X1<9n@N^ zF9sz@&+r5OuSerBm<(-AZ33Evx=;_8PsSeDrGZ^X_R)IS8LsHi)16Qk*h2cY-sWPq zS%GNlfnk~|I@*i|jjrCH0m#e1es43lWT358G<8y8UJK~PvJnXBcH0|u=oAS&9MEtk zO9kA#qetIlUvXj8ZZEIXyR1>{#-Fk zP9_|-?K&XFCZ_=D0U%aN^^8pnNOn+LD?mzZfZj`W!xdvPr;1jUi3-4sDhzf@$Fa^P zo5kMQRN7)JGzv6Ed@Dq$+F2Ob;bA!ko#bB`OSI*YTXj~NIm zU{|rJ*=lh(bVh~0!`H8Tc<%i*Eo+VfJ7~G|QFzf z?<%&W``=B)KtMym2QYcmow7uTnPsYL#)j3jMd1~5-;J*6ho z=rHxA4I05>)maSG{lV7J2lpswi<)Eg$ILzYBg|hHj#v!LVfp3;ld1lgrPRVp&`J9* zf9=7`m%*yK@N4D}S+AqKR>7`1tLMd49uq?Y{==0`#M>(B&sKn?WjNA;7y>p_XWf;q zU1u*DHOE?vXIt8imC}&_Ice&szY)x~14&p#AIQklXj0e9Pn(3LZc;`DJp7`u;s_If zPGbOzufC_Qu;LgnbB21#Y68eAHT8mSeQMHX@@q3x7cQoz>U6282eb)T?W%GXZ(Y6h znM11&UBxDj<6-QRGC*4vD{NJQN|iBk{pzjNiL3K&%5nE+c4sPRu30I73TLQy7VOMO zP!(on=3E3$_-WPt#EgOjY`}67bM;5_FCP5m)aAc?^6r=3PJ1qC^|NO=on zaOJh1*J?8w@V;DBmI9h;Mg|^yGa9PzzU!Btd2Y*Bcc*+dGiUW<$KN=oE-Fi?ef?U& z{=~BR*((iTtLEh7fIyp3-I9@s9ib`CY79m7OnBf#ix|7&c@Dl*?P7cmZxzXJw(OTb4upGeC$&pI5~% zBdhwXN>$lX@XM@>)&G0%4`~tU0fx><%*f0XWLfGb0VA`*EVN!#dVNM&etub*xt#2U zg*h!P8LE~RORK4=r>8@q*I{V32U^zkG%0bR;T{bbW<7k|HVRA`f=wGZX+6j4nF~7W zj~GEDX54j}nnp=`dGx^tEv<%L4fvcPXg@@}hw-li*siS!u|#7t0wAZ;^mJa(!0{}0 z)9_i~?v9vBMTEI>>{tg}3mz|mxz5p43<9!@)w-;*DtAFSj z!q3X`KrQ!%C~PF-Kh7&vf1r8=NhWtfkornXd+NO{V5 z7-mDFaoE&H{r5;4ETKNwb*w*>_7@jB>NTCMM$2%W!FU9CI22zIpDaebrXHc&*h*di zq9v`gzsc@ua@w2PFHgnd^&-dHnKyM7_;OEA|HVG}2;wuVLf7ap6d`^w7 zqaDt`K-Te<)xq@C#59W%m1WNp3= zJI)LSf$F4r^L>T?e&2mKDB8Y#*Y@ofcCBB(iyyIn%{q(UGHCZg-Gl4P3Z;OeqMX9} z?kg;$hQy1?uv*TM_Ma4yTDz9%CsC!mci@pqQh*c?g(|fD0S=L8b(f_%l{~$UZk{&%3C7_RjZ=Io`5HVT9#mkOz zeT$+`v8?~Vxuo%O&*uqv06s7!7*d_OULv3*}ZkA&rHQ&po~FErYAJ;1g&}c^{+qYzf-? z@KDn@Flrw{trj&Q58h(BZQ81-p%WZ`fP|c*t1S=aqMBXm>X|dH1sVfwasD zhO!3JVaJ`H-R^aDI1J70F53W;1QNO3-UO;HRcR8ZORbF|Un5_mzzXXJTrQ`*V=QDx zI|;i2Ba0vQUc7Cf?1KPqL%Sc}EJ)&j0(YQFgdz}r_wbZw1dq78+0d=fKlH;ln?es; zy!UKr?seLf{RVVtmg!&7XOi=k^g>f|PN)7~!xp#bqq$v5c^>6_B|R?%#b~|(r9Wh? z$+6Dol<&uxW&J4`3&3IH%TGte>HEf}_ThEL4kdjD%7^P34N85`|GA_8#`9zkSa}}0 z)1rgLJ*Cg3yp{TMO&PzV=<9`py`mpH5*ozQmOt#CoD79nB^(!3V{h1p7Sjm3M5N%y zPFX0Xc`P|tEoRL)I57^(7=ylj9@+O`UG=9U;h_-gzu$!3hrB-fXuvH+huDO1Psshi z_~gVxUu7MBImE`_Cu7j>SNI5*y$XjBnw22wB*e~#VtY6!sQAJj=w6nooxPO12E~>z z$G=5&ZzSkLn|p|A54n3KiL48g*egd_Uk$MNC&!^cfPE`pI3in$KDVD`-&wgnIT29S zXHmSfvx7N4d+Jnj=tSRN?c2HOdp>l%Sizp3nmu1WHdda%p4wb^HWD@k&zjhSoZ6K8 z)H~n1+;{4ol7_sz{`Y3beD8G5uuVBN>#(6HrmQQ=W|BO|?F?KxvF~Te$wv;o_WY*j zHyzGCTBg*`>37P}?+o~#&wC{A?Ad~&-`V}dTZgk$=DhbV4vy)2?3POdx<)*Sb)&!Y z>A<=~F{*_#wllRsTlmNr`&lrfKzM%KKjU_W6=nS)c!2~jK7Tm(j40eKc1?H@T80wA z1Ep}8*!5l%|0T$_K^Q(Iyu~%@bD^Xj+**|(G%ioT%_e&*sA3m&(Xr@35P2JYD+8i5M`Tc&MA$6@)8)T!MCOC)Z0_l+5; zqEfzlOgTz2duvR&(d|N`+Ud0YY|YQsxV*7?e2#wY@&>w;es(*%O26w_mstLo%02Az zedVpvugHDMwkz*PjB(ImbYqubAHbcF!{y7d)&DqDcV#}S<*lrPsaJ+uT%l2)mp#XcAJiV5 z9=C1EHR|mfFG)%M+ykF`AYgZnd`{B!c}|R<%1%!H{!{PlOn&>Xp2;rQG&(i*>#(n+ zB_ZwUclN#BmpV4q)Z@@}PQ7mVwZYfddAWc6yWh)u{qoqM@!Cs$fGc-~`nvnZP`z#M z!bGF1tJ&TM@Ol&W7%_RZak#G!G19Rt&+ci}VJW4fPP`e9kCIS5N~5M){Ftry7|b1;*^u4{4(n{1gV1HL)V48^)*9Si5n|S&ZyzZxwk}CEvQO!;(LX{6*?v@(wpkTwSESue==n{4qOiroMYbX1BZHvCM`N zpQ1f@gYwwz!#V@@WbKBQ-qtZ=g=e(h)UO-tGP;eOqwB^TtDj!?xzVWy6Q(Zjc`*6@ zRevtB(W8H|{=vV#|F8Z**VO21WJT>0!NQ|cgfKA_D3t3g#@qwewzpxsFQwfX9?P>=5NKvQ3T zabM8T=^LZ@9RuBsrcv9N+dk~}HPZfV%J)MN>A{P4rly*dxLPf7?5hd{m<3t)zAUqL zBd3@b;$ih%z%fHC4Vk26Z)q?Hf#>|tNjYy&8MVW;qYR#_9 z%w7DpZ$GPKS&^3&;s01HzsSRxg{q9g%$y8?EfEZvG90~RW+MF~sFvZY6|^U_8WY#T zLS$D}r9R)BCC-qu)H#YgTUk|wEoD_o1}!ZK1~d#Y9=|ME>;RKN!U-!Gbz+RR;Mt<-J}s=klYhmO|{Q%qO*4O&!*7VmPb(GOKo7ko>#0>nKEbIhKC=zwO#?(ry2> zW+i`BMj7o-C@jFv(~OC1A--64d@V1mtW=ltq$(_w?;QktLgC50j5@BxphjrASn^7cwo?XHuK5^{(zBFhu8GP2&)n{xy7}|qMt|d2S9d!;%X%a8cI!O9 z)GLqviKOS;{?Mwr&!tNK^N;>Xucy0t(A(bOFxqY1?Opak7kcQ3w~nShdq)q$pu*u` zwXoI305CSs1Wlbb*bCwg{x2K5gT6LsRnw`ASHA01W#Z3F*PEJ}q%ADitj#wg6k-&~ z*MY$^Zo)U_ z>CHOgT|VNO`B|CTtQf6AEEhD;uLiCnfp1uiIkW1RM(7vf-+pZSg?{K)m%4tt@Ph8` z|9;^DA) zG`d~Te=F;fg@ue+2w3@OW&qSxsfwyVRDy6RR^TKcSTTz>L%)2#!kcjB%nda-=FoE{ zivgLi2~g7H!yZ17kyBO3+9YF~s&J6OnUAftjD2XH!6R1E1w#M)^06=FAw|c`8#k7> zWZq{smlVke$#1#uzLtiK8@KTO!>vDO1VPx7BQ_`ItQ?y|vbu82>aY+`_ zjGg`+eAS!hMd?-UEdQIXIWcYh*B$4iU_~Kzr5w>?m5QvySI(_9CefFzjOp(#EQm&| z{4QUfo0FfUSDv8c{Up0mJl900KbBw8M`miQsL$8P`n>4RhiAY+U&i0+P_?X+7N61++0nKNx^fB#iP+!6 z@dX^@G_v&m;*xFQ{h*{3#oU!3xs?296m!OZQKprksP7WzNCMQ&l&feeMHUukNI8p| zygXxZVX5NU?b*fP)!C&RA1V5^)C(?d zzh#r-?}yv9OO`Mfmu$D+Q|`@6J5jz2qUp9UkAkwO`rgU4tOI-}uJj7&Vkx9K%Y{&c zJXiimbCeJf1v;rGb_g*gt|-<36fwyMB4KVplrGVT3kT-;KhH(#LRikPoS{1=ig)sN z9!*)vNBI&HmAaU+rxIEI!_(2m<}ccLl45>gW)>yZSt(qu$RE+`Q^Ks2H@hIV0I09Y zCB<+ADiO;RXyaJT!J3*(Ek@`H-86uwsnBb365_@?K zga(chI7`^m7zMS+TG^6c1N|%c)mzgJR#}nNYT(~#Tlqo%di_T7D&q_~jnS&;##0%p zBjZ-=cNG17v480gWB)Sg|HK}~KYqDCi2aMPQpus%8_@;@x|Q596DIzy*!%d##onhH zdm`*yt&TEI^0gqVi%n2XO}>D;Gtb0uqO{aE^E5JNQ7m4S ziJcSav5FB`U&->Z?SMrHux83|~>#+HSal~B>cLp#tDX4wcuYRbhzQiwhLP9tsCo0}i-Rm=1>mLqYFIz#ANL zdRdDK1Uzomo&u~;v2HA@GJ)~17k~Fd7?65A0TyCeO7SoZ!`_(oFwf-w?*~Qm`w!l^ zlQQ6sDC=MmH>-5L4zHVP4T&DRtY`;m^8Y17{ManPcoYT~2)sA@p5q!&iA(R@h5;`v zeaQXA`Nf4P^nMp`3BM3rTwJ<6H7^qZd~0t0HXFFY27|%{75=mGrea6A7t>1r-Rmnc zo*YH5bt*dL9Ee8IS(Px0f-e&fhGG;NoeNcf1T&9&dcu{N%PlbP=+ceFrTsHEwuqSp zy2&dHZlzeRa{YJ19U4+DLxl5a$ICfPQL1^T_Ht1yw4nIk$pf36R4znqi1Gr`Q+8{Y*e`wI|Hdi_}10iSGhd@q3`Aggz-nJ z*@^H3y@77>R5&t;sUvnok@=b6j4&FXXH+-=R)nZzPtd!RPRk~M_n3sq&{9@=u`%Io zMZ@C^WvU|_PiS{GU`MeU3l+COZ$y9tVXf3PhDBpwa*Emo0}~h;pqoAisz{jcVr+?h zQ&G}RjE;`Y`KKcOP}nu$M|nCri4{#K6o^iGS&kCcw`uv{3KL6BM*A(SN{f-dY(tevup}XZj5K$OP3V5V3 zoX*U`?V&&EYH1Sv49P;abgR%VhN9t_K{2e6Mw6A^m-Z8s-j^gZLUJBDL5h@u2vDZb zAXRg5`8UiiMx%U^8$BVi71g|`lcy|R_}{|E|c#_02tlp`a|1k5MY zZ`?s)o|%z|E6k2dz&px}67)Fj4%ye>2|i_iGBC)7VILEZG@UR$0#z^rF};Kx(4Vp? z!~O^)9+E9aFUSN;$75objzOtE!0ha4blD~yLPzWe1|yzvAEiT@SWE@HGroX}Z6ML8 zm)R1dEWxqCLKr{;Axy}a?Tc|vnY=xArb`dwX)riA&N6u@#O9^l%Y&(&Qg2?UQr8Ke z-^=L`^+o~+dp#q}*Q5h0!9C&ca!*dM-!d6;^MJu||EQOv8$_O<*#Azs$GRrR+-}Cs zsNWZy3fd>eC%S;#k!?@5KiQ21f@q39bHY-Zs4&|=qsl&3*JxMJ?-&{I_Vu~DEaN`x zmjWL4bGxXZ&p$C1t0Vo$29ivdbPx5GiP=5wAuT{Z%%$$}E|1IYb%p|yvQ@(5kI^(( z4T15&P%sExAq03ZitCaMSvN875Y1tmd(7(zdFfzAw!`1W&Ve6Tq%QX$Kbq$m=mNDT zjNO_@T#RKdyJWA$&Ymz~DC8Mry^O1FcVJX@Tzp-FycV4DAE1(XPR6u#&o3d2W}>Kj`XnjCKRI5$bAhXA9Pi?Y`!~ zX27ay@{!l`^O1#1Hy_X-Ln^qb4Qln)t%8**@~+6R1qF|%6%=h%;+dIk8f{Ybki2}4drbhUKXgH+Nvtr`jjFoBl8v&Jib+>+WI*1ul_V>kI3uD zsfg<})ri30S8)_kcKJVeV1hp{@@j7{GHWC8lIncHzj8VI`x_e-5m&@qLA}%G10e=% zSnMJIW@;`=dcnJE?A`Wyo6W3lV0~x5_^^|k@ zsZ`0-_o=PO?)prwt5noKBkl33Oyqas$2WujcU(yiE`E8@fxTQmUR_8_iHqm*t&j8D zDrx1X%6RH2RYvmDBL7p~GDw-^|E~h|SMa{NX@9RnX^#@ONxb*J%C&MmpT3fx^p*U6 zKW;}hW#Sq1jt2*Apwv0+UauYb6-m`L*xl`L4?*5O$0%c0HiSV|aR=BtV*%T^-QbpTZcrbsV)={AFNfa{H3bPv3?CK?s60S49H z>}8J+o+8Lkz|uHS2)~1!(jgn9c5b3%fCd3O zd0yLihpV^I-Dh(e2Ar;Dm(y*dY?s%|6_cGZFWFrVXCq)FjczAf{Wgcw(mep?n$e3s zuff*nHgu1=-Hlx)R3Lb=!Dbk-@s5lR2lGX<&ERvmy3v(r4pDcTXVB4YA9VCIb&mEL zZH)s%c8Bb-HFgZ3;7osj&BbClN*2KsS#;UbNMQc9( z`z^Oe0#@zOq5{yo_h+O$^>jhT(@!NO?JqoVdcQe^ct*l=PbUGMd0d;tx9IN#!T*!M zk^c$^W;u(oB{F`Y-{!u2^Zt@@bhKLQD(dUDRn)V@nI#CCe5fm`UBG6_8KA?W*Ty<2 z>SzVv*Volqz|ZWdP*G335){?F(`MAgoLsj z>R(q}|4vL?L)Qid zYFoF>>Sl+h!)U{J!)UM?8r#`DV1w7-RIE4#oQ8U=R&2(`&P&(>pn>IbI*m;rpE=#e z4yV!B2Jjh{UPhe(pdOUvjl~`8_G03KqC4(~FLmqOibDEO$0bM)^8pK~D}Vs&(PKbm zblQ4c*fp``gPKt%;ZObCCE6oTr&0O zjO|>y)NL@Kaqp_v=`NvXU*CbgDkN{gI6%>eujjd!dXzdC#kv4fAq)rb?2u>&Ilpu5DzrveZ#6u2?DAu~7m+hauOy5b_{LYR2zDgZY_ zF&3pz9EI})w8OcBu>lIBbO*)<|6f(-_anKL-S?OH#R&Y8*T66W%!4Lx@gIJgd4Gl^WEC`Ppcv2j&$TrLh{11}Qg#XB^!HG$Q z{^0^;DJ(rNwnF{>)eBR5Z*h8WS_o5KW8_7CMdOlXHVvy@WuG>fDZ_Q@JW9?OM(Sa@ zEYj1H(TBxn*sSE#m?bC6e8ea-`J|rZ6LIAAuyC5p<_l5?MWP+x3cD^4=4$RCM8Jq4 zJXO+IaQGN2@OVN{n7Sc_p9^HY7AvhscU z(@`>Fm_q)oN?<5qxkZx{zo&L}%EPIMcoLfweJC5|2?5Q5z$V|LII)Lot`*&(a+0cv z5b+xpm}a}0LjR?$>2wMj=c3b!aH0*%@$N9G#~uT>0kg7!kMS zw5(??cQp;0FsZ|3Gb4-Ql#IX{4XPRAf8MxZo;I$H7n+2wa4PHLDWyMXvNSwd-%*0R zO_YZyZn~?iDs$IQtFVs3Iy|oPCOs}fJq=%IZZaB0zA<%^YKWe&n>5A9;ztXNKGOeol9e=M=q&?XfeBjzv2`n>c{Y(gz&ONON(`KcsvE_l?f3Q`@UwL z#^h8cl`$gw5^+FPv@XmA3WSMnW0){I$(ywFLUl(_Su-lGLmqXM%1VtV4CF!nl`Jb~>HJC)p(#|NJLrhIkDI2GLH zvM| z!m>=Y!vgnlV4zINLiez8Ie7-}!LeL8zPiJ!lR>nFxJc@;;DyGv0*iqr!a&OD7$%2a z3{j5ycPvfk!3-FWdHxn;X9ir;*J!=a@~8)6o;CJ)jF#z1Fcd9@V$V<|24n~oe$SF( zNpfL0s$LS0#sgWj6VpL@y2=g|ZjY1Pu@o=x6x}yHj@(nmMwfd?F++u}=8O)#cLLpT z4artv*{b%q=N&-e7}E}Dh8zQ={HGm@d(BM}2Vtw4#Ln0n@L<+AU$inR zsm7&z^-v3RDYz>6Ckt)h6?^y-_BaTvYVWFao5u_z(+EUo$_z!5ydb4b1$Z(qSEgnM zBgen01?tt*Nn{NUaTUZ?e%CT(?QUPvGSAcC-oae+@4y%Cd$DA3*^qd~v`|m}?PdOqpvv`~HU@Dkl#G?)uqRi!UD)UwyIo>Wl9@{v!G0I}g5m zeD>%UfAq}{W@Lb#egIf???j+$pM2CLvlYMVB}yhAJor$6R-~n(RtXBh&@LvMyw2{g zre_aUlMjCR=9OJ4Wsq377^f@pQ!}T#ositY^Fi{0@Q461)-! zEvOHPtY?b?K!_ZBlA4cCm&n7A`@9ei51z^jFc#;BkK$q%dA^*ZTFvR$>tt524ZT$6 zzKguXJNe+4Oj2Zd7a_C-(8U@Qjk@7?ac{-U_AF#NEdob18A1z0LUEFK!MEVYeGsZS zz!-X}_t0CaKg_3$OzDi7?fgDd@7a9LL2#*<2QSbOB`2Bli`RK3@1uv!;rOk$9{VID zKePsqzJBYfz}-K4Bye_S=fy`veZG18@WTfoS5V)3_+Wkl-nO_GlAFkd030&EKf5oo zgaK@s+LCd7j|kWO`IK7#<$)lKQjQ{fi5NezM@y3=sjz{9ZXCSOj<8o)iR zW_GkpnfU`D>ht5}3O@sa1mp8?FGd9ajAOEAf1E*eHA)Qjz_hGacn5AAI(Qby#)LVm&db^ z%;egJ?T)(wZgD&@pv9Lf7sn`c?WmfT<-{(-G=fN0UQ(i81!d0C|r=y^^4XalD?byJvJbudYaQAKzQni z7%GJl;TD2_Oc&%{r;U9!3aR((xLMUG#nve;hQ}JhiVu%hO?r~#)zq+adpVt-8ZhE< z-tj8K<+7NU_o|5j6m!Y}&qmW3VUrZ(2}_aZ$LR@2!!KJNdl%YrY|8KJ+18Juv{{!SRPTC+;+n$I`^X3WFF;tV=&8^GEK0f(OEs3 z9Kr1`;(9pnm8zm`fe_h-1^2~wiiYvLN+6Hag6}~c}3H9`(#Cxr?{470MlzbBY_yXrX zKR$A8SO8T+E2!NG9cVZ@VgeA=rS6B=x-f4FMNvk$GEHtU&HCxIIdig~jvUqt2#b8d zTr0m{`{^n|NFoCBVg-$y$&d{z2>-)Q8~lBwgG*zg+rD8GK6#VjG1BZT&B4?MD_gjx z8%;_kYmPF62!!uhnvp9yTv+A<_&-ryltpfuk<~e>2&d@jnQG_Lo^>ym@%9tcm6=}@ zoOFU@LMoC}dwGq7LwaV97Ly{Hn1){)16*g@s7u2xt)n^e7wHHYn99nSL~z^B2F9fH zQ{ODm6`3IO0QWu`og_1`K%j@Sii}cxzLd?$gbAXLAD*WLd>){#nl?@zCsoO; z&BnW%_(nd)y{-~uXL_3UbLIsDeZ;ILcg+!FK>>7=OBRaRc{~}VcuPoy=eBU-sw__3 z%CZKg6%C9SxpG^#N=H&AG~&WUpdNnLd~jAI)j{$2?MJ^j_~PL6kNKBN@_UQ7i|g-| zS^LNDz4ce`{pF*BPd|U0|E2#YpFXTVFO&Mf2n{1Vm@#W9B4J#^JPK_zCx%CEZZ0NA z!_w$2^CKfl;a!DA89OYAf<28WZAw>-#k1u_2^*^9WGq; zR;!m@%E{rqab>Ul!i~#qk^Ap2MLuhreAeCmNKaAb;9-(4EAnTVU4=uJeq%7=prbt? zclJErSCqfp*2$+`l0(eC;Cb8aIyC(GG3po%${IEz(IKnUU`dC-1Ee^or5I1roT0;x zXg)r&?o5m+tW3;-=`YhFwCU41w77^#*)S=aBu&kd+39c~u8^bHI!uJ&K+tOnC8}2? z+nH^abq=z`nmD8wD}(g-v|8CTGQ(J91D~EwS2dO+@^#Pim-ndu_GN?m+v|L0aXqce zhuX4{kd2_xAaIczEGF|6kzBEb{-i|JMfm)n_+IcHbfAw@vie1=S=2md`EnccChaM0s{)m9sYd{%z9xMGie#z560JnS5bVVc`(m>8Mv5{_ct$G>h8ka(=K4tedFI`&Wxzun^d_Uj+6_4^F-&yR#$Mx&U{ewS1j`H@d$a4nn-Gu+U z1z`a`1i&sS&|Er4yaiyqedo?PXPKI^abM*BZf@S$C*K$DbZfm3s5r*P733JM>^!;f zJ+7a!RPb_}d}(s1*Y|F>-EXshd-Kkn<-`P>$|qIN2y+)w=VBC_KUKV_LER@E;TgF{ zg*jl-Z7`sqXhoA%)QmyZUk;X`S>jQ-mhGPQ6hCL;4(f^xw5m~E70ldFwZY6q%3w*W z1ShlR8M92CS--0I&LDSnkSHXE7PdiqRTepFDeyXdrpbP(RHY4n=O@1Y(o0uvw054q zar^R;_H6TAv|aJetEjMiU}a?mBE)EGmcHp%u|Liird>?d`TlSS&iO;T*TlZcy8pDc z=>ywlj+#uYRD;4)lgyM(e$rK-&?`wZg0qj=jaFvGG*SUv^_L}oi4>-UW>o@grvt@g z0VqI-GB#1Y@$^BCp?=@|i-831i3>5*z(hI;i6UJ|QX`W}FhtwPoSvl&C8cL&tb7wI zc!)%A$@%yRxU%7w`ny9ooX0 z%R~RA-_zxv+Ymf?-sl;S`OfiLf;3M&WP=X01%>9?7Hywn?7(ekx5b&I}2b^F%!za;AauDFJE{gr1fLgW`;Ur}B~|A6{)AnerMCbsgzUiZQU zc5Sz*JNM!eHs$>K#s130_4TfIHeYF@{js(Oh$UQUvl_QxE{Hx)B0v8(UPM)de15jD z7$5IVQUCUChc};L3W>UNJ)O&Y>qTN;771>>;z>e7Duscx)xXu zE>vSHE^0{j&yZZA&k)?9_z0GuE0$jy#ClD{)5iaT=Z6by`(^?MkIwEWhUE`IEL}_S zD*`~}kPSef=vQUH_aYc-G$4w2Pf*(dyPK3gq8s2$;Pn8V^l98fgD#8c8Q3P($z8(} z7$&}@1MjgXRfcX2D%j^Gy-Gl2fMufQ@XrPC4;j*mbCuQaj1de;fG$um6{HE|6;mm3 z_}K8k&tO4{_)Q0t2mlLJD`cHU9BCxHG{dfj88DhS1NuYgtN7!LKy6Y$wyMBtjiCkh zI3yGRcw7O(ia-T!tpze@=so;CA891;&7DJYJBtYZ7@q+~@Q6I@I7d?5!z6inD`an+^SQwU!4I5`q6gvess zBWC4{I1$zibBH?}+i(yK-2*=rOZ)*RbIZ6S-OJPr)fCmTRRy7{QXY4}1cx?Q7A0e6 zggA_aeje`_Sc{ghzM;g#AayDhR#-=_0034}t-gW)4S1k6Li5p-i6|=E@riA9Gzk?x zJ?-fub%5)8=ray=eb8e|^N`XzP%R%6oM_s}_sg;eW~ex(lF~2-4&JB`c^UunfS8{FC>WWdhX6NnF@~h7fojS;NOPo{8jlJ6H34** zaiG|i+EoKZMY1qc-ytBWfvsZmt+ClfkI=jtXlOx+hif{98K|WfYj^L){W$IhK$FNq z3EY)i2+R#cD-DMnno|Sa#%5B1cgr*l9T7DY_C#kuyN8pY%Z9uZKULXN1MY={44Ni^ zyR)aH3Uu3{Q3GK238Hq?z`I4Ejze*+BaIOCQOAhAaYpcCRJs7bukpW==vVlwa%}o*#jo{4Pt1lzz7z2j`x&p>}XgMMyC*P9$ zu@eW9%weVR`%-$?yz^(JH@K>+dVJWG)w^=wVG;yJ3fi2Qr9|sj^>L@)1u^d=G)>~T z6@E2=j>B=#kF$XIfHk^nRqDv@T75BvlDnFe6J(WTk9+RP8o;Wg^;MKbnkcJKZP z3X*DmYE?w@I0 zS-Sn^ICv8fSw>M$9$&rP4?xP1!1M{++ooyCeW5Apm-)DRx9=EzO9tQu1~O3) z8qJ+Gge^|PE7pQQF9IvzifDwLSeLV4k4ONzdwp@GBFyll=sg$!RZ_NT^$l4I90mMZO3dPx*?T9>Jef#} z)zvz3#>Hv!ICwb_T1v5|W_Kkz3olx(X?FW}t-+ypuy-(i2RlL}CBEwg9b+8<(&Een zOm`&OtZZ#+w-j{i96A(_*CGrdtD43$k&&j0jX<{0wu^5Oc2I-9)n+|u@Fxm+Q|P>tjIH3w}v1oa%P(_NoXHuhw0ycYC_U9BZ`-;q$5yCsird$-=a z-PsOkS+})5=MH4?!cxWw$^bqi!jXIE_=+`j=x9UJjJ2e~p5yUmJPr}GVQ5oSjj#$% zYHUOmR>JFHD@l6DD`F~+Co@7OIKxzDxr5JxWCWe*xEt+?xlCx_QH)V`24Mw8VA@< zooF5UFFGnOvQc0GJfmya#K1FAUcAwS+7p`~^H{qp(#1Yu~Rm>fw2X*6f7#a9n{ zriMtLXshzryGl+-ycYydS}(0x{Aa*fcK~_>-FCfgy@4O+?fv}Qd8wy=dGebfg`GHS zN3$%{d}-RaFrzrOM^8)Q81Q{WUw>NP*1Ep`;QI@xVm*DucGBVcF`6EITUKy17(7R+ z*kAbjH_=acp>_S~{^+5t_0OQb!WCytV0_g2RfdzNYLe@BY^(^H*u@ z!k+u{&s^LRasiO)U*EZK;dOjy79QsSJ3H&SFvpm~gnKJz=*O(7HdwKsl z9Qf__i@!sX8WLf<;0I#ebD^Bq+PJp6+uG*ac56?lW3{et9qwPhe7G-|wYwa(b*)1# zrf4%YL3_F;d-|JM6I%Y5Lq*VY<+TT~eyG&2Bn3-IMPu7inO z+YWhCl>&HkmnfxLWbAwXw^#Rtq&SvH!-4>*I1W*79aZ z7NQlf&m!?%W*2Ksu&vhN;kB)OVw}GU2#c14C+B2cY>cX8L?vYjKf|IyuS2`U7Q182 zj&tY*mas<{YYdInA2S|dmOM@BzvFqGz>38HBL?LTCb6$E5}!v!#VN#g93<=9Bp;fR z)$g-OF-qipNBo(6JB&1pMiQ%0qW>3b7cYvwev|gDp@m5sz9`!7&6`3Ik>VIvbzN4J zUkhzgOFR_G;QgfkP*#-J*jMXby!brYnKxfR4;1^3KB8oVhJPo=gP=I=|_L=m~I-EOaI!uEr=<^I$1&aGQgpzV2A zIo}WN>bIY6Kd&$L=E+Nv?x<{2`+eq^+yhZx@s?iZ`gyd76Iuza2?2`BJA1TU z@xJ!li@*Qe<==hojemOS4}SRaTc@J2ivP6TXWpg#cE5e~+XsL9dtbl$-{1K6zxVa0 zU!Qk3(R|+){f_B(Yj^kMKhIhRxBt)2-gx7;-`;(Dz4`5}w|9}^+&Fmq;NSh5U;oyx zZ@#$o;uu~@=V;fE=MzVzueRW= z)Bb7R6ugf9XKR1+Dt$+sm;&c7zWj^de&ILPUuZA%eR8nHU%Q*<$5{UbJwb82{rxvv zKmLy|{>$(E?(hGrfBaj2_(KF`Ti^R{>k3`@PtP$6-~K0C-xfRUe*4-#`w@5Rjc@&r zU;FN(KmYWLU;FMqdh44n{{C~|H|E}=O6M=3pNiP%`B#35KR)@(li&aE7sWPy^ACRW zyZ`(@fA5F?7H!Mxw>Mfh|L)_*Utj&%#`~{7IpVJlyop{Z@24+5Z;1EP@B9|W`~P20 Y|8!nvb93v({U3``>ypTgVq&iUUyl}@F8}}l literal 0 HcmV?d00001