From 81d8302d538d117277e1cfa3aa088d4d51937533 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 14 Jun 2019 12:59:40 +0200 Subject: [PATCH] ADDED: shaders_basic_lighting --- .../shaders/glsl330/basic_lighting.fs | 82 ++++++++ .../shaders/glsl330/basic_lighting.vs | 33 ++++ examples/shaders/resources/texel_checker.png | Bin 0 -> 57153 bytes examples/shaders/rlights.h | 187 ++++++++++++++++++ examples/shaders/shaders_basic_lighting.c | 184 +++++++++++++++++ examples/shaders/shaders_basic_lighting.png | Bin 0 -> 82736 bytes 6 files changed, 486 insertions(+) create mode 100644 examples/shaders/resources/shaders/glsl330/basic_lighting.fs create mode 100644 examples/shaders/resources/shaders/glsl330/basic_lighting.vs create mode 100644 examples/shaders/resources/texel_checker.png create mode 100644 examples/shaders/rlights.h create mode 100644 examples/shaders/shaders_basic_lighting.c create mode 100644 examples/shaders/shaders_basic_lighting.png diff --git a/examples/shaders/resources/shaders/glsl330/basic_lighting.fs b/examples/shaders/resources/shaders/glsl330/basic_lighting.fs new file mode 100644 index 000000000..50b41f09f --- /dev/null +++ b/examples/shaders/resources/shaders/glsl330/basic_lighting.fs @@ -0,0 +1,82 @@ +#version 330 + +// Input vertex attributes (from vertex shader) +in vec3 fragPosition; +in vec2 fragTexCoord; +in vec4 fragColor; +in vec3 fragNormal; + +// Input uniform values +uniform sampler2D texture0; +uniform vec4 colDiffuse; + +// Output fragment color +out vec4 finalColor; + +// NOTE: Add here your custom variables + +#define MAX_LIGHTS 4 +#define LIGHT_DIRECTIONAL 0 +#define LIGHT_POINT 1 + +struct MaterialProperty { + vec3 color; + int useSampler; + sampler2D sampler; +}; + +struct Light { + int enabled; + int type; + vec3 position; + vec3 target; + vec4 color; +}; + +// Input lighting values +uniform Light lights[MAX_LIGHTS]; +uniform vec4 ambient; +uniform vec3 viewPos; + +void main() +{ + // Texel color fetching from texture sampler + vec4 texelColor = texture(texture0, fragTexCoord); + vec3 lightDot = vec3(0.0); + vec3 normal = normalize(fragNormal); + vec3 viewD = normalize(viewPos - fragPosition); + vec3 specular = vec3(0.0); + + // NOTE: Implement here your fragment shader code + + for (int i = 0; i < MAX_LIGHTS; i++) + { + if (lights[i].enabled == 1) + { + vec3 light = vec3(0.0); + + if (lights[i].type == LIGHT_DIRECTIONAL) + { + light = -normalize(lights[i].target - lights[i].position); + } + + if (lights[i].type == LIGHT_POINT) + { + light = normalize(lights[i].position - fragPosition); + } + + float NdotL = max(dot(normal, light), 0.0); + lightDot += lights[i].color.rgb*NdotL; + + float specCo = 0.0; + if (NdotL > 0.0) specCo = pow(max(0.0, dot(viewD, reflect(-(light), normal))), 16); // 16 refers to shine + specular += specCo; + } + } + + finalColor = (texelColor*((colDiffuse + vec4(specular, 1.0))*vec4(lightDot, 1.0))); + finalColor += texelColor*(ambient/10.0); + + // Gamma correction + finalColor = pow(finalColor, vec4(1.0/2.2)); +} diff --git a/examples/shaders/resources/shaders/glsl330/basic_lighting.vs b/examples/shaders/resources/shaders/glsl330/basic_lighting.vs new file mode 100644 index 000000000..509954ddd --- /dev/null +++ b/examples/shaders/resources/shaders/glsl330/basic_lighting.vs @@ -0,0 +1,33 @@ +#version 330 + +// Input vertex attributes +in vec3 vertexPosition; +in vec2 vertexTexCoord; +in vec3 vertexNormal; +in vec4 vertexColor; + +// Input uniform values +uniform mat4 mvp; +uniform mat4 matModel; + +// Output vertex attributes (to fragment shader) +out vec3 fragPosition; +out vec2 fragTexCoord; +out vec4 fragColor; +out vec3 fragNormal; + +// NOTE: Add here your custom variables + +void main() +{ + // Send vertex attributes to fragment shader + fragPosition = vec3(matModel*vec4(vertexPosition, 1.0f)); + fragTexCoord = vertexTexCoord; + fragColor = vertexColor; + + mat3 normalMatrix = transpose(inverse(mat3(matModel))); + fragNormal = normalize(normalMatrix*vertexNormal); + + // Calculate final vertex position + gl_Position = mvp*vec4(vertexPosition, 1.0); +} diff --git a/examples/shaders/resources/texel_checker.png b/examples/shaders/resources/texel_checker.png new file mode 100644 index 0000000000000000000000000000000000000000..0e03e3ed62fb9d709042775395996d8370ffbc0a GIT binary patch literal 57153 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 X@}Hj0zbVYXz`)??>gTe~DWM4f`2Vc6 literal 0 HcmV?d00001 diff --git a/examples/shaders/rlights.h b/examples/shaders/rlights.h new file mode 100644 index 000000000..b564efc3c --- /dev/null +++ b/examples/shaders/rlights.h @@ -0,0 +1,187 @@ +/********************************************************************************************** +* +* raylib.lights - Some useful functions to deal with lights data +* +* CONFIGURATION: +* +* #define RLIGHTS_IMPLEMENTATION +* Generates the implementation of the library into the included file. +* If not defined, the library is in header only mode and can be included in other headers +* or source files without problems. But only ONE file should hold the implementation. +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2017-2019 Victor Fisac (@victorfisac) and Ramon Santamaria (@raysan5) +* +* This software is provided "as-is", without any express or implied warranty. In no event +* will the authors be held liable for any damages arising from the use of this software. +* +* Permission is granted to anyone to use this software for any purpose, including commercial +* applications, and to alter it and redistribute it freely, subject to the following restrictions: +* +* 1. The origin of this software must not be misrepresented; you must not claim that you +* wrote the original software. If you use this software in a product, an acknowledgment +* in the product documentation would be appreciated but is not required. +* +* 2. Altered source versions must be plainly marked as such, and must not be misrepresented +* as being the original software. +* +* 3. This notice may not be removed or altered from any source distribution. +* +**********************************************************************************************/ + +#ifndef RLIGHTS_H +#define RLIGHTS_H + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- +#define MAX_LIGHTS 4 // Max dynamic lights supported by shader + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- + +// Light data +typedef struct { + int type; + Vector3 position; + Vector3 target; + Color color; + bool enabled; + + // Shader locations + int enabledLoc; + int typeLoc; + int posLoc; + int targetLoc; + int colorLoc; +} Light; + +// Light type +typedef enum { + LIGHT_DIRECTIONAL, + LIGHT_POINT +} LightType; + +#ifdef __cplusplus +extern "C" { // Prevents name mangling of functions +#endif + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +int lightsCount = 0; // Current amount of created lights + +//---------------------------------------------------------------------------------- +// Module Functions Declaration +//---------------------------------------------------------------------------------- +Light CreateLight(int type, Vector3 position, Vector3 target, Color color, Shader shader); // Create a light and get shader locations +void UpdateLightValues(Shader shader, Light light); // Send light properties to shader +//void InitLightLocations(Shader shader, Light *light); // Init light shader locations + +#ifdef __cplusplus +} +#endif + +#endif // RLIGHTS_H + + +/*********************************************************************************** +* +* RLIGHTS IMPLEMENTATION +* +************************************************************************************/ + +#if defined(RLIGHTS_IMPLEMENTATION) + +#include "raylib.h" + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- +// ... + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +// ... + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +// ... + +//---------------------------------------------------------------------------------- +// Module specific Functions Declaration +//---------------------------------------------------------------------------------- +// ... + +//---------------------------------------------------------------------------------- +// Module Functions Definition +//---------------------------------------------------------------------------------- + +// Create a light and get shader locations +Light CreateLight(int type, Vector3 position, Vector3 target, Color color, Shader shader) +{ + Light light = { 0 }; + + if (lightsCount < MAX_LIGHTS) + { + light.enabled = true; + light.type = type; + light.position = position; + light.target = target; + light.color = color; + + // TODO: Below code doesn't look good to me, + // it assumes a specific shader naming and structure + // Probably this implementation could be improved + char enabledName[32] = "lights[x].enabled\0"; + char typeName[32] = "lights[x].type\0"; + char posName[32] = "lights[x].position\0"; + char targetName[32] = "lights[x].target\0"; + char colorName[32] = "lights[x].color\0"; + enabledName[7] = '0' + lightsCount; + typeName[7] = '0' + lightsCount; + posName[7] = '0' + lightsCount; + targetName[7] = '0' + lightsCount; + colorName[7] = '0' + lightsCount; + + light.enabledLoc = GetShaderLocation(shader, enabledName); + light.typeLoc = GetShaderLocation(shader, typeName); + light.posLoc = GetShaderLocation(shader, posName); + light.targetLoc = GetShaderLocation(shader, targetName); + light.colorLoc = GetShaderLocation(shader, colorName); + + UpdateLightValues(shader, light); + + lightsCount++; + } + + return light; +} + +// Send light properties to shader +// NOTE: Light shader locations should be available +void UpdateLightValues(Shader shader, Light light) +{ + // Send to shader light enabled state and type + SetShaderValue(shader, light.enabledLoc, &light.enabled, UNIFORM_INT); + SetShaderValue(shader, light.typeLoc, &light.type, UNIFORM_INT); + + // Send to shader light position values + float position[3] = { light.position.x, light.position.y, light.position.z }; + SetShaderValue(shader, light.posLoc, position, UNIFORM_VEC3); + + // Send to shader light target position values + float target[3] = { light.target.x, light.target.y, light.target.z }; + SetShaderValue(shader, light.targetLoc, target, UNIFORM_VEC3); + + // Send to shader light color values + float color[4] = { (float)light.color.r/(float)255, (float)light.color.g/(float)255, + (float)light.color.b/(float)255, (float)light.color.a/(float)255 }; + SetShaderValue(shader, light.colorLoc, color, UNIFORM_VEC4); +} + +#endif // RLIGHTS_IMPLEMENTATION \ No newline at end of file diff --git a/examples/shaders/shaders_basic_lighting.c b/examples/shaders/shaders_basic_lighting.c new file mode 100644 index 000000000..74bf27759 --- /dev/null +++ b/examples/shaders/shaders_basic_lighting.c @@ -0,0 +1,184 @@ +/******************************************************************************************* +* +* raylib [shaders] example - basic lighting +* +* NOTE: This example requires raylib OpenGL 3.3 or ES2 versions for shaders support, +* OpenGL 1.1 does not support shaders, recompile raylib to OpenGL 3.3 version. +* +* NOTE: Shaders used in this example are #version 330 (OpenGL 3.3). +* +* This example has been created using raylib 2.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Example contributed by Chris Camacho (@codifies) and reviewed by Ramon Santamaria (@raysan5) +* +* Chris Camacho (@codifies - http://bedroomcoders.co.uk/) notes: +* +* This is based on the PBR lighting example, but greatly simplified to aid learning... +* actually there is very little of the PBR example left! +* When I first looked at the bewildering complexity of the PBR example I feared +* I would never understand how I could do simple lighting with raylib however its +* a testement to the authors of raylib (including rlights.h) that the example +* came together fairly quickly. +* +* Copyright (c) 2019 Chris Camacho (@codifies) and Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#include "raymath.h" + +#define RLIGHTS_IMPLEMENTATION +#include "rlights.h" + +#if defined(PLATFORM_DESKTOP) + #define GLSL_VERSION 330 +#else // PLATFORM_RPI, PLATFORM_ANDROID, PLATFORM_WEB + #define GLSL_VERSION 100 +#endif + +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + SetConfigFlags(FLAG_MSAA_4X_HINT); // Enable Multi Sampling Anti Aliasing 4x (if available) + InitWindow(screenWidth, screenHeight, "raylib [shaders] example - basic lighting"); + + // Define the camera to look into our 3d world + Camera camera = { 0 }; + camera.position = (Vector3){ 2.0f, 2.0f, 6.0f }; // Camera position + camera.target = (Vector3){ 0.0f, 0.5f, 0.0f }; // Camera looking at point + camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) + camera.fovy = 45.0f; // Camera field-of-view Y + camera.type = CAMERA_PERSPECTIVE; // Camera mode type + + // Load models + Model modelA = LoadModelFromMesh(GenMeshTorus(0.4f, 1.0f, 16, 32)); + Model modelB = LoadModelFromMesh(GenMeshCube(1.0f, 1.0f, 1.0f)); + Model modelC = LoadModelFromMesh(GenMeshSphere(0.5f, 32, 32)); + + // Load models texture + Texture texture = LoadTexture("resources/texel_checker.png"); + + // Assign texture to default model material + modelA.materials[0].maps[MAP_DIFFUSE].texture = texture; + modelB.materials[0].maps[MAP_DIFFUSE].texture = texture; + modelC.materials[0].maps[MAP_DIFFUSE].texture = texture; + + Shader shader = LoadShader("resources/shaders/glsl330/basic_lighting.vs", + "resources/shaders/glsl330/basic_lighting.fs"); + + // Get some shader loactions + shader.locs[LOC_MATRIX_MODEL] = GetShaderLocation(shader, "matModel"); + shader.locs[LOC_VECTOR_VIEW] = GetShaderLocation(shader, "viewPos"); + + // ambient light level + int ambientLoc = GetShaderLocation(shader, "ambient"); + SetShaderValue(shader, ambientLoc, (float[4]){ 0.2f, 0.2f, 0.2f, 1.0f }, UNIFORM_VEC4); + + float angle = 6.282f; + + // All models use the same shader + modelA.materials[0].shader = shader; + modelB.materials[0].shader = shader; + modelC.materials[0].shader = shader; + + // Using 4 point lights, white, red, green and blue + Light lights[MAX_LIGHTS] = { 0 }; + lights[0] = CreateLight(LIGHT_POINT, (Vector3){ 4, 2, 4 }, Vector3Zero(), WHITE, shader); + lights[1] = CreateLight(LIGHT_POINT, (Vector3){ 4, 2, 4 }, Vector3Zero(), RED, shader); + lights[2] = CreateLight(LIGHT_POINT, (Vector3){ 0, 4, 2 }, Vector3Zero(), GREEN, shader); + lights[3] = CreateLight(LIGHT_POINT, (Vector3){ 0, 4, 2 }, Vector3Zero(), BLUE, shader); + + SetCameraMode(camera, CAMERA_ORBITAL); // Set an orbital camera mode + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + if (IsKeyPressed(KEY_W)) { lights[0].enabled = !lights[0].enabled; } + if (IsKeyPressed(KEY_R)) { lights[1].enabled = !lights[1].enabled; } + if (IsKeyPressed(KEY_G)) { lights[2].enabled = !lights[2].enabled; } + if (IsKeyPressed(KEY_B)) { lights[3].enabled = !lights[3].enabled; } + + UpdateCamera(&camera); // Update camera + + // Make the lights do differing orbits + angle -= 0.02; + lights[0].position.x = cosf(angle)*4.0f; + lights[0].position.z = sinf(angle)*4.0f; + lights[1].position.x = cosf(-angle*0.6f)*4.0f; + lights[1].position.z = sinf(-angle*0.6f)*4.0f; + lights[2].position.y = cosf(angle*0.2f)*4.0f; + lights[2].position.z = sinf(angle*0.2f)*4.0f; + lights[3].position.y = cosf(-angle*0.35f)*4.0f; + lights[3].position.z = sinf(-angle*0.35f)*4.0f; + + UpdateLightValues(shader, lights[0]); + UpdateLightValues(shader, lights[1]); + UpdateLightValues(shader, lights[2]); + UpdateLightValues(shader, lights[3]); + + // Rotate the torus + modelA.transform = MatrixMultiply(modelA.transform, MatrixRotateX(-0.025)); + modelA.transform = MatrixMultiply(modelA.transform, MatrixRotateZ(0.012)); + + // Update the light shader with the camera view position + float cameraPos[3] = { camera.position.x, camera.position.y, camera.position.z }; + SetShaderValue(shader, shader.locs[LOC_VECTOR_VIEW], cameraPos, UNIFORM_VEC3); + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + BeginMode3D(camera); + + // Draw the three models + DrawModel(modelA, Vector3Zero(), 1.0f, WHITE); + DrawModel(modelB, (Vector3){-1.6,0,0}, 1.0f, WHITE); + DrawModel(modelC, (Vector3){ 1.6,0,0}, 1.0f, WHITE); + + // Draw markers to show where the lights are + if (lights[0].enabled) { DrawSphereEx(lights[0].position, 0.2f, 8, 8, WHITE); } + if (lights[1].enabled) { DrawSphereEx(lights[1].position, 0.2f, 8, 8, RED); } + if (lights[2].enabled) { DrawSphereEx(lights[2].position, 0.2f, 8, 8, GREEN); } + if (lights[3].enabled) { DrawSphereEx(lights[3].position, 0.2f, 8, 8, BLUE); } + + DrawGrid(10, 1.0f); + + EndMode3D(); + + DrawFPS(10, 10); + + DrawText("Keys RGB & W toggle lights", 10, 30, 20, DARKGRAY); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadModel(modelA); // Unload the modelA + UnloadModel(modelB); // Unload the modelB + UnloadModel(modelC); // Unload the modelC + + UnloadTexture(texture); // Unload the texture + UnloadShader(shader); // Unload shader + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + diff --git a/examples/shaders/shaders_basic_lighting.png b/examples/shaders/shaders_basic_lighting.png new file mode 100644 index 0000000000000000000000000000000000000000..bae869a906cf6f4a0fb67485d792ce2dad186728 GIT binary patch literal 82736 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYU_8XZ#=yWJp1k%11EbS-PZ!6Kin!!IzrMb% zZwoY#Vp^<-gDBx(Ty`-)j<@lmfCN^8v8wez278Lh+TOMU85})W2!oz72RGq^*d=?~ z4s76VyeK*0qKhpqXENAV>qgK zz(}fXu_6OEV?_Gn=WALM7TTxlC$aE#Z?t1J4oYuP)~z#PaCc5HVR1tz8eRw}>||z| z9jS1QE#{Ty+=~r2-BD+4pXSd&-t8l33D& zf*Olkx`SJV)lbGbZyU~5Ob`}%QRQx}w3zigmNdYy4;;A{zBry*!*1x;dpB#v#ZT{JQOsb#;%2R&tRi_K`#$@+2QqV6C3W*Ll0t$B zi-V%W7de5b`AViY7A3EE`&NSMq@)SAQI-3NjDwi&Rkj94xyPUXw$>k(2R5cTy1i$Y z)GfkHX({atkFT$f|KG3H^iZB@!D&YJX8p*XuaY~`zxAu_#FoJYr9dIE*s~scAiFs? zkDs{OV^)rNaZalpY)nP==+NatL4HiE^5~XX~zo`=`XBUU^355 zdofyUKa>YY^vXHw6b*L$$uc>JS(=~VW1N)kP|!O;Nb07#$zsP$lYr{9##_d$Q~F*^ zeq|q{{8ORuf@?$kLo26kt7VK`n z^|N@(BPp~{+yxF}reOUH{$mbjTpHdfJ(O_yKCwqE1~U+(n7;6X+{4j3f$xfk{>tp@ zoUEq1>^1g&XSm+Oaz@sBWzBxB!0Mug}A=T1~Q+zcMdSI;&N6>*wbgsfK6~ zT;iNi!j{sqJg(~QgmZRQpADn@`mhxA49*Q%%M%v%e^}iA;&K+R#YSWHDaXtd|MOnG z!ZLg656f&t-@OKxrpNVOu@(4oYX0J-Kha8p3y=uDa*E-VOwYN19<>&fYS`6upg7MJ)pXK%-KhZ`IBE$HLso>*SX zv&=%tG?w>kiN&mbH}4LRZ;;wAja-b=E-sMgWvo$TxM?HDAI`Mvh`+U7lknUYXehPmnERHY)XB|SX|ZGyw8+YkW?DS^f_v}{gdH2W z8H23lHZU-}Y%UFROLulNJ_eP%0I9u$uR-~s1{xP*0Q;fG#eAWEwltS>G3Rt%%P>OJ z{0sazdh(p)eLWF5r@(@* zZ`d^&9F`|G`W=<>)kBytr4`gN$lyXMPA(}LSQ#76YJk-w8IU&WQACdBc`0D=<+n`i zo&FlnhZ&O)A*x^xs-+jNOh@5pSkd4Q#CM?>nG)7UzMu24+X%A|>AKCABcNJSY{h58UEh;Unqdk{A&rSeC<+_W zw8}pCE$pgyvzA{hnG6k)3}L38`2BT%?WJ}=T@Q)8J5CF}{*GzeCjZ&vo7f6r=haVR z7O%{KYI1XKXlzV15kQ#l=A2;B#*p(;M04(hi;?{o_draMV%owFuG2%zpc!VdqQM(y z1{3L`ALlDK*e9BFFyD@`vwCbeixX;CLmecDb5Wdw&@IJO!rge$_r+r5Bm#FAq=Nx! zNwGoAgNPt2Xp86QIoHs$>=ir~KrxFb8hIHBcI&XDQe+$4AmKmigwcoq^>;@@VKfwA zrO{|wU;+1>4;V>Z1DEhTJoD{plYad9X*}cEfu^9OYZt~Sh@G*#zXcrLRWw-1 z9!^~;Z23>A>>2A6jgGlzCEs4?5mN#O34&Mx(X^N6wg7|f<|flc?p4Q|r%m*Ex5+pu zJ;NbS-c}-E%L1gvA8+GBVbD0i#Va;zoEoP6wq~$Zg=5hHs%$JJ>CQv zC8Za;@v}+jK7l1mZ~zrR+9Ixe-2xJvviui%8r#~~4i{MKa+?Lau8!17vesHGJL}>h zl;C^;v2Tjm5@&|Wu!I#kI_jzi9D9oe*i6s0A6ix!^oOl`_d>D!EAK8e9Lgz?Kbzrb zgQ(3XL7Fu8+EX}qos2>w7kFx>u&{Yr_kSWq*H_vL#uE9VyFjsB;Rp zuDWzHgAu9IBLb;x^V&l=6wJ@GUp`h8p~CaM?`pu@uL`P@CtUiuAoQ8?w#80wQ_~l_ zoA-xlAcFS@BzWiY{1T8j_uJad>p1h1^AGJ_8_ux~-_XaU!T0g4gfkbTGd`QbbF zfSP$$rCo^|jwx@Hm5R9MtoLQY_lq_a9~vAT9T|0Os|*fgJhgxZ=oavZT*fOY6U7D_ z>4w#f48rQm3JoHr=QVueXppi!{4qs4;*Y}drv-Oh_&+}{h!11?{5;{tb*I-&uU=eS zoS?mC?b?GTRm<6~x78{*gRd##L4^jbV=J6sS|Zx@ti>lXE#S!Dg;N-^#* zhO*L9!zojz^3IfMyi;p(MD8vR7e~y~%P$TxEanC0I7Tl>a%g)Y#dNr|o_$*%j|Wf4 z&1S9a2v@(gkuwioW026?EVtl{kcQuKcU>Ju>X)&@t0JOmT4OW zZgVu8U2)(M-<1HDe)p<3lO6l6PrMKyt2viHAc|?}#)tdfa7{~hke$%c(IFTsnK1k9 z0aIotpIr(|otxw4^_FG0-Bty4k-&p7CQ~n)u(VYlXSV#nHaos^X70iiH@4cgbPN5{ z4M%l1ZlBHnH7Rw;o8Jsag;#w3_~N2++ldn=1OufX%wm+}ny0>O57STPWqfALyh4jp z9)b;EC)llLm5e#9b3yxe+tutJT2MK#BaiEG{tOwe^}&^ zc7_#i4u#bn@KM<6?0h2a3m>nC?Y5%68;sHu>Z;~lv6!{Z&ADNoqQNefY?Hl#GEB{- zYz@-_xnEZ_Xthr)a1zkzb4=uVmGeOA>f-P+rL-rLBusy3l~1VqGE;8Gf3{oyw{Sh5 zxaByjNSkuzXG@*4JWo|4o-C;jm?g)PDrT9dzRj80NIFt?-9cF|D-(sihqvBImSANT z0uLf`_P-I3$mtELa#7th-~H4Ii%&Y|6K+oNS^YG1Lzi^e%;rDcGS3&7w5={$etcPd z)Uv_=o908MOLA=3TUA#uGwrS@*rFvdPm#gv{Dv*IS86)e9_(K&+%PAmLk!6j=s=Tej2D;;v2b9HlMB_ob<&%P< z>YgEat$;^3;3n&=mriy}a!>q=tWAC#>X4%5+?FD~)`e({#O{-mS#UrPkZ3$oO+l=tpl_4(^^wryLoqc{~ z#j1p-w>)laZ% zO1+lB-jXPiz|HuC?T1ISIG@%Q_eU@6HO{$TD%^bHW!;k8eQiJI&S2xxRGxGq(aR^D zEjrcb%}V62{=Dju+tGaKl*jEF{?qc#mBMzam2<-8>L*#7C~OywE}K++N%BPB z!aEBk-!}Aovk!1$*!kG-lG_3ItmDj67~Ed1Vb|H)zs1i?;~aa^eRe}pBg3o{H$U{p zMC!-yo5NW0{kTVTlj$UD1?8=Ze9{q8p6=O)rA(bu**a!5+bHZ;e*ahU%;xyTvJ)=y zaWEGpvmBAjl;w|Lw4L;A+kr{8XWlF4u4g~--(Y|Ll*?x(bnjYtPh;T{<&*pL48h;1{y^!bm+ zU2f*C?+5p6O5Vb3#AK~-LYBW~@xK#OjSXjSyKr?vl;Y)V-Nzp9D|((p@<%lCa5Yaf zyUecr%B?7shl@EX$IkuziH0|d%g?a9T%78jwxry_?Um7*i;m)KZ4+&{Sx$d%&b^Si zh1sadO5p@=ewB(#lAAbZY0(7jWH0kIeP8;HXFRS>33od2(f*R3W0UA-=fuyJE1#;Z zJIA-JkLOIzlT9Tn&ZkTcYVH5Rcf%vErGHxegkStq*w{{QdJLMldeOl1w9R}WAJ@WD zQag)UWmS9bO;o&cQj*UzWkX-X1>+p|s;Atue@b=E4r~u%Z;7g83ctx={g6L}f0tB{ zmGO&rGFq~d7mU_S-0_}UEMEER5&Iec-K`V-B@AnyVi) z-FZUr%S%~L3QDdqPttOezBl0%n~0S1TPLF@MTtx9{cV(CW4zSV|x=iEDeJRbV% zQZp75NUS_9kU00~L^-w%W`{iH@iw;}beP*@d5cj}O;+GZAA8Q0dX4x1=e#Wk4l!Q4 zA;pu}5cBd-Fg9c6q3p}~6ygKpV)shA3 z{SSBer)`O8xFWdVbh&$xI?I%6>{_}Y=U2FzNJ!sd7F=@JQpRItPN!wi%u8qgI4hoR zIFz&G-m5+t`wayWCx6>HJY<~px8lnSLFbedmBSuvi+lY%-W;BmxNtdZ%u{v4)DHm` zZIXBQFFt+I&02ATiJ`z|#l^A{6r-ej%WM<`&87G{SbFlWB`c&QvT0=>l)9^28^SH} zZ^71k${#0re%WHa>kpTZ(qdVGD^<<2PH*s#)M#4jpQW#_y!DK%>;i`+?H3uff3262 zc-vsWqs#DmY2TCHrwb&SOKluje|Y3)96HoA&0Sk~Rg9;s;*zU6XI|`zyTYg0VLs`5 z?E$CcCHZ#kt%oz%Sti=Ey>`oqDot^)J0AA#(3|F|!pem&&2&P0-if!gujx&qIG8=|kL`*&zkXbM}YULzrBMvV9fOe7a)YAq|2Qr+61urh%EZ?y~ z!dJXwgT%Yj{T-Ucjtd!s*tPRF&K2PdG8UOWePZ;L{xYWkYsD>d9Od6O@H}GUEIOWC zBFXwlXzs-g4n9+xCcXEtJj=S%$@Tq$1>xHk6gY-EXQ^6+xHGv=4_zSkYQatZ?Cfkd zfi#JS30s((JQz0oDpi@^#>&kbF|#q-lyN1q$Bk3*6C^BUB`4TbO+UJLu7HbOqwd>f zu6Buu60FU7ED5a2ClZx^zGHiGNHDChZ{2J8n(Z?$X)`N^JDtc0xTTQxQ_^s%hR)o^ zKP*wgJ@2+JEKujk(fyop@!SCetKWvRxC&YsR-9pYDjKlUVA6EigHk^h>=F%|wy0gQ z>PG^%e$uq6Nl|RgcMJu7r#STH2B@=KW0O9)lS6F%mK**SR?J2nLDw>lGn*Q@9cC`C z=;^!Vc&P23a_9+BjlF##YD+t$WFNZmuD!^|kyX*NjQ`3930qb!W19}iGmfRaz;kR^-ZYx!X?2a*}(wyZQY7GKUYLA2;kuD{)}o8Y8Qzt$*Qk zbbv;JbVSqE^9c)G-mT#=^u8d$X4$aSb;U-Jx-HB`4ikB`e>iYfZh35Y>*Il`JQJ;x z7f)5mvXbOdF1?}`S5O*|z%04ItMP&k??SHvi;zhR3gqYhJ>XNj*jQmkqEUqZ;UtL% z+fHWGHg_;2ed0B2c3;A0&=}K@&5)^ZIx}K-%O$IdEzC~OefsWvl(_4|%lYS`!NGYP zD=jY_Fz{i}Sle?irhBiTYfh!pie{%3lVr4J|D3KL&$sVuP043VrM*3RmWR$*FHSVN z6{xzbiskC@1)C;blQk}~GE(@?e`F2MQf*^5YlV`m83(0qD!g_xpQg-IyJceUOa}MM zT;F^wZ~Z)QH?Vc8_7{zF9%~giLwjzx{m_uT%Y3(LU(!*owoRLi+5#Im8ZRC*d-tiV zxbK3UWW-ZIQ`T-Z@2mFx2;&!qQV z^})CUjfYZ8%6Lq35*GU}o?CvVpi%T6k28ltc-590XZT+=)cp9sSoh_f$36DuIXZ6A zQ*Ribd|{+>rl67c$BdaX4SSeeI4)$Xr5LnYYBu{VDS6^MzTq46!t!?EU# zuijo{Ogr;|v6b6n%7sa5Ko)4lJUM1+xSZ)hbe+SBB$stpE?BGoc*3?S7L>5$KP@;U zJ1x+Cdgp>R(T%MVhdEdlCpKGOdRh8QbYGFo6RV(8MH8x`-n2UMFTKde@vg*J%52Bs zw31G#ZyOrVI`x-1860k(aTC;1VeJ*KGGE6Tn(;%+#c8f^R(V`PBD0jG%-K0JI(fnh zdf$CLFptsQ{ceG{&*HiKe_Fopj<$ zuztNmX1YmE!S$z$-^$#1$#(s~pA7bv9zKqoSQU@g0g=oe=Oe{~t}`0-7#LW+ZnQt- zZY{s#F#EMa*}D>5wmojQ?#h3e*D85VR{X|-n;FW|)%T=ie<;N0_48>w^0U4%ZFO&% zLr2aZrT!QFOS+jkdoS@Wi=2M&UccnruLtCv7e92iVC{eR`+&ULf}8yv9ULG2%JVE{ zP-eL>U2RPv2vRmrvH0z2uw2?F&Jy?qXk_~kFWVSn-C?uio~ZGjE8EDo{} zS?A^nzB@x$aTOIaBZv6*T=0v!s+jpG4aCjrLQ|}_4oi**cJKf&31XPQqt;m1I z-g^ASq{v5XHyl=R+-(OnK|0yr!%L2*AseaC768b@%lC_HeBbqP<;1fvGlqJsrD&e&Tum_)S& zM_t*}b7Yg$&c}?_X1QNtO5SKP{(RDOabnh+L>4dW4JNJo;yL2edjpoTX4f?3u=biM z-u8Q69lIjZugA}~KP={okN@J$@;r+hx)d3-4kz|zC*5X!@#@0Q7Phw?k#21<@)L@U z?KL`9SW5GM5?*spT6W5jxeShp&3F2w&aUYYkO(wZ*l>pF)4zb7`;!+4X=|);=)HGQ zHM1p|AuRHuv9Dry#EYpH6XumlzO50MzBp0z+KYYshaQ^VVpQBWO=2#iqTZUeN0|{n zUa?GA@3~Uk;nl{{eH-4kO2#UA)y(AUYQESQ<5JPv!FM9#c=HdgER!`J{Muh4`P&?M zI6|F%Xc>B?#U{MW(rCTv;PyCUsb9^D{yaN%yESgs3P)N+*X)t<>~&2_OXMgm;>f)w z{}Plt)-HUuKk+VOW3N(Q-y>nY5_fC4C8p-=N!OAW{5JieC7-0FKjF7yWueO3QbqN1 zZr^JKK!i^1Qbi&bhxq-)aY2j zzuQ(}Lz_uX^3NA{nSN}(k#W3vixNkrO8pYwrAp;89kGvjxb$yiYHpa|wtmKh>t_7R z_v$U4%YQ5U{eo`xr%#?pxE;*kxS+)1kb3#WzkoxE+);HruQn+18zgd@XT5KAT(9q- zr<%GTSqG2`tByC{{%e2o`BDA|@CNW0=@z4b_|tZ7=O z#>~=#;ex!!0=HbOm0$AIGvImh(JoP*)YR0)uC{`T4BDUFuP+du9^-bndrJ>chr4ywl28|gtBa?aXU^?!+SPXwad z8^V}D&1=3azMJ6q{o-gJ(Jwv4(oI|Ol2!H-5dpb;8wtMu7H1Mp=W%c6IrH!QfdF$> zr7!2t@#%fPe{EW#MZ>~4PTnJHxN{_Ly(pY^7uCS zmvUa;cNy@2hKDD}eOSEs=M&Xy7gHmiOwC^K#q8EiRl7F{KPOAMUk$DnYrA2c=;5o` zyoJ~AL!jg9m@NuqCW}44=@fNQc-;w9(1*ty{Z0L4uIN1Bpc7hno zC54maJk}45RS!-7m&|sfUMGo1fPD|cs$JsYHLBbxUV zNb}7#PntH7cNI8y{8=S=twC58qT^+jID%eBzt>v$i}MMHwzD9B`IZk8+HKizebhbL;4z_+7s3taURmMQOKziG$T_W#2yDPq$T{cE*Sv5~c-n&WShsY0i4#nVWd+za9eiQ5=Ay}Q zhjas>v$`Z0-HV&2mcrcz8A(`>Xt5=C$1O692-zj0{dO zyUH6iWU?K}<7xZ7x5cqxmgV4&w$_wA0EO>syicNI2LfdokZH>IQc74}qp1#@i zN(mcVCbRw|2`j335Tz(+qRi` zO}Siktu;}i;UXW$&xsaNWl!4gzTm81oY=0-!nTH)>GXvSrOAtxzb{b@3i#2utkvD0 zS=qKY*y{4LhaVX-uQBiK?3w%j|3cLx3mslAt9xL$r>-HPKphj=7}3EJ=@qW?rY_&-HKqg!6dZUHSjSJI5mj z>s9s!Wz6kY7vE-dLZZU>K*of1KZV~)3Vjx=PMlyZzu@;;$K|5GA9XwucKE2E@bBwa z?ZW{~i%$!A^y@|(XWjCLYl~u#qa)){fg0J_3-?@ao%OP6i=sze#-UfYFJ9hog8T4A zNtI8R?-iWeUh=*{!TjHa#VnP=+=kgb?vDzmEIxfjWA!A>nTA$1KctaILn24=pMk@-?gpQG#|q{goWF3+Lv`jQ7x`YX72Ijs z#dhV#{ooC)wd2i^4j_N4p*7@E_q{*mlTDUg2H9tA?JuGbsx=CT#x075|(ilJAK@ zjkM;)*RvOzy*9eVxKQV9ui2uL{QEER$)slH?|2rwtJJ|G*W&RilMcz3Qm;f=w=J={ z^>Kj?bFft18vAI;hqocgaYW0zJQHEwlgan0!@%Id`vwge=fH-lEYX&B9k!&+ z_uJaI*Gw*aWW#)TN-GafcjIN9SA9G@|MGZv=86iqI+)Iv5SYvV{zp<<(-n?3|M~lk zSgLL)>oPW7+YxXDJJFt+=vSOmOyu!!Y`{f2V{z?CtZqaAP zAgRIhz~s*fe)|dM9+pJv zp0!rk;KI&r5p^!=fEG*5^B0q?PB*P)N?af;@wOsB?!uIFRXZfu4GsRc>U1VeY1r}n zf3ZpV!g8-Ae#x0Zk7sHAJb!>g`WAaB^MO+hce!6^P5z(p+csg@hI>EzH!$aYsb}js ztD+Ek;N0%*>+( z-ai?g3r?A}8Cx$ixby4m$p>o`4lDGT7&8U^nbWXdQX=4Yf|0nyhbDJ6j?4+OZ^+6> zwD2pu^OMw)opABg^u{E}=w8Bv$&-^M-Xs{D+tpL%py6%0c=3-Z&v#vvOgMF@V8>Nu zla~z#q|P?~edLg&#hJAH$x2(rQoj4eMX00p_ z54)d{!I`Yoga8(~>gdZy4qOOgFO^=ytWe2zbmMl3Ji`@+D~w`NcN|=BSb+PD^c<(l z40o76NnFcxcx7XdknDWqpMinHE|vd*)*=e(1%HlT(q!zaZM@mF=M2{>u{F%OKc@<8 zaBkAS5+BF>Ds^ahR7wHy5IywH95r2TQhtCoPR%tj$r za#K!0V8zM^nX%+koF)FY>Zm6RC z-}q0fW_!8Zzr*_KfBLWOY|!|7{=m{#4hEq$JNAjMVM}RKXgtSmb~sMyr;KGpLQa5t zid;aib;#x~t|q}>8fz}(aAX`~F6rcWap=3M!$t{}QnmxKzj>xhCddkeEx4kuAooUg z!o@&)wyuLO?#j0`Pq@$^mE$0ga;f0n>q8FC4B3x+^putCC%C6KYx*xZtje?U5@Tbk zSHOm#$5NGTi7Y2(rZ!f}Unx9zHB+)v`a`F$*pxF>28`CSGJApoR{u-h{%Nb7i;S9X znVjd{`b9T-7QAHK5VVAkBj?&nwuD()rFMU|uweZ*X2R2>hB{#X5Ll3;TD?f!@dEFL|(~;93 zmf3uIVWjiw$@7bjlCPem2h5W@wb@go)M0|P+~Ui-o~UblDR434tX#qspWb#QQmieJ zBVj7@&dqXb*1ngFxP4E#m1i3t$0~`(*(!G1_*hSv1T1%CTG;o|atd#7zps1@D4O>_ zv3GN4xg*-Rs{7pP^az`cjf`r?*7fYt{C)dv^MkdDcUFDlIc^?iC{=s%AlVvq@K+qUMf(;Jfuo!VCAw1w2&UkrcqrVsbr&L-c2K=+O`P0{2*r ztS-6FbxJGw)@=3Aqx+nJA#;wwb^hs*(=Vn*T=DE*d^$*z-#ub>`ie5A6R#Q$OylUi z=ja&8v?z?d?}k@`g?zEk%Qft)r*koXeklKdBbDXdH3q|f#xZT5N+lC=rl^MHE3A63 zk|EliX&p;dooJWTmOhS2Q33gl6B&K^gW6e-{5jun%aXC1G2P|HlpGJg85=HdbVy@Z zuafA&Jd5E~7bnxpat9rjBl(g7``A|s@8#OcwpY1vZ8D?K<=ZD4cCpIdojF5F*Vjg} zZ*ku0M253f8yL6#Ynt^Hff2q2`hz_Pfyop&$rpWZCjcI>y!2a3A1{o zPi@v)e0sx*$=vRTCssY=h|04Qu~u{`cSz_=-H@*%&m}6d)k<#4kEt{KPCMitP(KkAiVmXo|=RVw_+#@yV;#+-EOk^P?p ztqX0vhuQs&ZrqxweA3v!;J~!_gCR`4sZ-3BdKdjW({O9!kN!8dCYCF_C0*7jdN$}S zoyYsc`F&JM1a}I%@q%xrCFO_y2JL*p>RjDp!L0b<-!6RtvxMGhM)s;}tYOc4;=DX67sew$-nAnG+qtn zwR_ztsduCOqhw%M#=@09`;WLM{dX5m7cow;*q^J|+_+KiMwDBjvccc~KO@;9+*<-q zvAkRI-`~HnRWkL=2RHdAB|06G{`0Ju%f-faX0NP*sm+0E7rWJut{-klnRcO+?TjbS zlY|3eIaa$R1k4N!Y?%FYJRA4qed>A`BF^2sr9q8Fi2D_H@S~c2=SSwmsD>(1nc*fuaL(a`x9#%oqXKmJbF_l5X=A`Y1hOJ+fnWK-o zztLndTivMkd%nEI=Z}oB0&Ac49%?O6IOeFjp)_E^+vZcoUJ{3OfBk=B!n}Bj=HX|~ zt0imRI!Q{zU*W?Dn|X@c!d_(Zh*s8Jp*bTRr;slkLjM{~PlH9bUQ|ux(!^Ry)m^ zV@LiI*@6}F$JcONy17$8xbc`_m-Hl=k`uM;0<$GEm@?E-Y$xzBJi6*&!`xABtdQnl z@m?vC`4UT1V;GOfW0s^PQb=3yBA>;^InE9lq^j5u7`*|G+tR^PuO< zPguep=$y!3;Ar^rB#(Cb+2kLsPlU==Nbj%veab-Mz>9tSuZ|vi@rJ!L7&Iul>mlc< z*DX?KugocREdN{ZYEKW}odEmw{H?;74`l@+oGVL`ElY(CWw`h4lH?Mb_hM$(j7YHw z-ZS|Br+D-{NZoPZG+&_vf5HA^(`WPW80^|5T(Mf=nQHokZ@No1A3U*~^V;ukcgoll zU-Ui{I6T2x`M^veM%hWW{MoOKCoTAFKPyT=zRfY{#toV86HFRKG@O4fb&%Skdw4$M zJJlUtTmN$S_MMkJ7ha!i@vWoV(fBX(JQcY{kmNTe(V3AxMafJ zo=fJ;t6s)dw=Y~BCz&Viqq~Or5Lav;>+6OM%93UhRtk%M+exh8aSVr zJx60Nh`p(Q*xpQ*I>8rY zd!QlbaCO4`xAt4y3tyh(Zacj|+nY&M!o@^zR$OdxTgFd*!@8?#Y;6JdY;2ql(!Pox zNUm0G_`CTlx1@wl&%$fWR~xP5_Z~QRTwdii-~Igu6Be&Hc%Um)o`X4R0dEO=O38h8 z=Bo!^eA0f!_A-OLW!FQ_)vwua7oA>c^_nTV%e2bd>g%PK3G1gzDy&-Q&qbD~IoE4gR*R5ldTm%8`v{|6(=<<|_VYrX~3tn+hLYu)Ep4 z`hp+Flsdk>&P&qI%C^P5IK#e%ndwr$-Dk#P?hHm*>nQe=V0q zNV*wFysfyP_DOU8*B@stocb{{<+x$dN~1sj%eYU+34Gz>Y&w5pwc{q+jJN4*0nZO} zW^m=qHqUtPCc(VSSR!75(~Ifm0_m%c;@j<6H#xdLT;?#h=??P*>%J#;Ikvn$8_$>L zC{E`2ubB5B-1bC6?XDKayoa-2`z4s&G0|~s%L_jLYWIP2?Lv2I7w~m#p3Z)FUaqyo zA>qdoVdvsojF_2jhw#5|FmReHmwl z0xKjHrk5=)wR1>Xz{m0CiuQ$L#S_ZRw(ONxD1E?pqDF!HN&17oCCpbDC1baraVTY& z^_Su9e?dvflLlNX#6jaLua+;nC|G^!ut@ZCmPnp7=Cx_DZeEhc64r`3i&<@6DmK(? zy85DU_7!i(4F#&@ye|?T{PcL|lmCz}=}Ac9kN?bt_ulk6FPAWRWAOe`!V`tPpBwLV zDlBzA$YJw$y5N-#aRs|O67j|kQGa_pzHqOooALCON6ieYo53rj8hL-l_y05AaMF;; zT9Jq6&8Pp8dhc4#YC4$I?q%QWDx2|coih*5x-uS~JqI5AWZ`iONOxkm@!&thTm`1D z+zv@S56-bO7l^eB-YIOn|6tut{&yNPCMz)gm)s#Gw(v}iLi@3s<>w{8u&5d^aVXCb zmXweP;7wbg&am|Q!h%a2hXq)Qii&s^Cz!CXRdY0avVS4=>f#I~dzJ~)vk%@_5Gfe& zvuk~=YsNL!YY*6V^4Ruq%vCUx>33)2ozi@W#YDg`;?~;5#tJG=q$8Lszbr9$CAR&< z=^H1`O04OLmx!3TZ^9b`H@+h)y<@AV8Bf`{pl{c||8?z*S0*}|{ji^TFa6JvhMncj zjNKBSc-l_5b~IgQn^Cp#Ym-A#(DH?PfBKt`<-Oeg`&z=+1%5~CS4>*^T0&wGlcYpa zk%YvmPm&U6Y$YY^?xZ!WP7bhcD7kgDo-L8hz0I8Gx1>wMm+ZD$o<%%ylKbp$ zo61Xmisl|FD`879iIHp*Sn#ytufzLN$rBk8KBd<)*jqZL803P3xUBwzmu2>e zt-nN>k&3a2flguuYq?XLp+lOpg|t|MwY-As2R@D*Emn<=wakYOoam@~A*E_r@)`w@CpRwupT?^W! zY|~@eywy`mIK}4eF~0S2LF~aMnQc$*HE_-P`r(0)`pJp^>+dEfq%7X^nQ@cI?Ogc< z)@K5(g7^Oa zKg5x`^4kCOWg6dQ7nNu%=wm6jc+xogifEtlpZWyOxJxW?N^D!W+?u2QC(NFBL?V>W z@PL*4gwg<>1pYm#4Kla6Uro|sm8;_ssy)lF^T-5dtIr1;cpT>Te+XbJVc>SY@rK<; zuB7`kKbud%jF$$?dl^=IVDn91Jpaof11=3d#sGE|C8Z=26?f-^6DLZwCGD4b;X^(+3pig}97ud_Zo*J$UEx`nw(^?gs7O-A&$V5`>$S>}8# zDE^*oQ8S~*O?|`XkMmjH2W~prAXsK;UUZ+)Oj?Mwl*Qv5=SfGV@CgfO^RYn3yj#W8x`-JY4ccqM_AJ|?gEWM~2 z;jxnQ+DC@34(`*#1NO5mI2Okr@Vt4lx4^p{!QtNxXROj{`q`7y#q;RuP98&jb>lDR z983S#8|`Jb_u;`00PDpOM3yPx7h!$Ln`!Ff$v?X1ulW!CvmK z40j~|Ppo3GxH0*uae|R(jD1LIOC7AsI{+WG~D&R8I=Ejisl|JFX0q>dq_NNd#{|A^K1h-+uR9z z3RF#AGZ~jI@RN{!+u)GQV5VhXwL~wMOCYOdeS16m!N~r5S&D6su9a)dbI5<56n%o_ z*0$WHXQgY@e+s?oC}>#5K0!1wd2wg$rIdsRyW3K%edNS>gSg(x?YVY*ucfT#@A?&D z0)OLwi7>ZtzpU9{IK%i)ibdn4hYwOVr2IHmz~kEUT<(fP%3+BKJjagNX&(4s&UV8w z$>qmPNsIVT>={Pu_&AuS%|4%)UV6}{vD{(7vs<_RrQX>1SpD9S?$rjz!abDBeG*~xwDI=v^u!LP07=_j@B7Low#)7Na_hCxBWr~XZH6lx4Xvsi z|FZPiymoxItI}&)%wP2fOSu-}>ey`nfu3gAL;GNU-1C2|xo^>A2nN!TREIx3C z!BXJ?{}sM3ejM9w@=qvRBP-x`<;LG%U!|G1GOkfz3$0sV#AN2|bW(@=MDJp6(}3iz zDL4Dy?~gZ}V_7)4ae9BFV{mly!-wtpJo@YHlNe-|{T0v9;jm|k>q^enK4-us0NNU~ zFgHuWHnnHlLu;$kF26r4JyxU>losoj!`>pr`}pE1-g=IJy2}J ze)*?8G5F_rspIT~qYgh+6x!|5A~)us8vvzqAW z=(bb`oe%DthLc*${c5Ro}g2Dr5UrCo68T?>hD5=YFYl)xJbLK4h$Hgn={oj!>!B$|W z{HBhZg6GaUgG;KyBcoFzV;?fSf_3vXmH-mSWK z@!~;-T|f7T&Uk*(DyE6iJR`#+-J;-uj==nb0U@EGM+0)wj~`%sGsS?X*x(l9!de#o zFDspRlo@)?nOwA+^z!OOX+zlw7yH<2z0|VKR5eH`uJza~ccR+tQRBUchU40xvFxoz z_D7PHHkAHm&t(2uud;N__k}Vk2mfcJ{XHJ=`TuOKSAl*RUJ{jxQUB^)E^9H|TGAJA z=EMT-H*qmcdRdp4FNsU)8OEenoch33@lyW7uOhY)$=Gwnas4@TBYdB7T{JPalWUg z%t0c9&rSOH7XHTscP(U@Lu-sAt%!^_l!v|eA5%Yw?9>6W{#Tt>wkX2@+am` zzUZcCy7k-?c=As8!j$(~0*fb{|L%HQ^#6Zj=2x3^CfNLG(P??~pJ%${G6NmAmo0Nr z8t%$71s?w)^u$&{`pN=!(`Tv;r#H@HUhh4HeB#G(b~#5S3)v^~xAs-$7k z#7s%a zAF)M-NzeZO4dvmnIpBBPKjAvl4jt}IZ#k}fWGHoL_&r5phQy7ArksGe`x|8^c3qQU zvwIL&80xT5L_tix(R+)88{<($hNxwnTIO!wD=z98HXaf)iMEmHdnS7(l5dN;RHegA zu{_yp#tI8qxV%;@R*$}DHuJDsmnLWWg-zV$3D28lrY|b7b9gI!!HzHBHPe-k3|m{( z8GTu|>Ri}9Nukv4U$d0m0W+?iwjIpg+2SUj_-6|qlz8S|^tWCo=Z9M943!CNx<{Eb zk1mr_W3yM}p0A{0EUCa|w695uXF8LSio$P43BEN=B}G>nryD6PGnH^?vj6Y=#WByd zJ;Sc{pH}n6MzO>D4lkFGv#mW?@b_A6+qYRZ8>%MkI(%RzfBwpx4QK2B8!vKEzH{|L zq(Dl1gH`_ji%N5OPisa{eP+E#f!vlw5$)A!>E{gpZ%}_%aJpi8us+= z$>F*EN&g$S_<^_e&rVL3{Ksf5yXnG)s+~*wAKrgo&-1|U{rq~K|NoudO=A4UD)Fz` zN@;-$qY!hM(To|2vH}wv7tBtZ5g{o#BVy)3Spl~VHp0yE+{%Z;%hK4?6w)51q$fOl zn3V8~6w2zaK8{mdIKAxIs4c!X0*7gz%g*a&RhvX}g*8pnY@f+xrcU^nksQHa zvWjg|u_>p8?7fc(F2NjLS2slVdj?qcoI9SZ;yXdjpy)aCku-+hAI;yp6=t3I|6l7s zy1GQ9qT8Q#-p7a4)Ey4J$oZgFI>WLfl85bGw8T4ydAW&ySgtVdvXs5!$q@JMc>lc^ zcOz~aQRaun``Wq=r<*lgYmoY;f6h_%ue{^oeC?EkAFLt&<;{edmPj_%@L3kO<@5U+ z6r7AUkhy0w|KQ1EJ&GzjSzhG@JpN$cynTw9TTbJxUeyBy?^mQ8;F>T!-cW$yMw*>N zl#a+2i50wV?|(DQ<2rksoj>f$#h94c9~0+JyMLgMZAJ1SrZ*)9%+?AEbXfNEwLQG~ zE3Ym6fZx&o_WvdS)iCJQF_k$u# z$+EPkK~^xZ&HH-8@@cICO&Bt_Cxu-izxG{cIY`7yR z&uf0Gm0^X9lJ?}+$`a~kzn}e zRpb36LADdOcoI!g7X|F&5PREm?H<;|ILFwgh+&O(`MoeY_O`QL75Ft7ga{y|bw;L(Sr zNfu{*|CQhM^N)SXefGokXa33yNGFytJZ-G15Os_`BKzPT)7b_C=fnRF*s`%nzwk0; zJN93r+TKAbp}jM8s+ghA>$W+0Eq2UJrQevBNd6UBqm|&i`IkAfD#NsOXV09GaAV9= zWSDjI4_{1ND%Y9w8~oTearQsoW@Nx%t#Cm3f`o+QTs{Lgot;gt>dGY_7)m0J)CV{v zHO*pr(_yfQd3xMN$7%6~3_p_`%$U_Ln1wA+day}{P2n%E#<4TU4joWCasI%8^X#vD z4GlJYH1c^d=WxOEgT-xArUbODHkUVWai5y-RYCa{k4%PH%8GI)w{(XW(`UOMo>iA< zYZc*ge*@c1w=v!6Wpy}9AbL6Lffbt;BzW=Gx|*d*^bt8jDy)05Rq zKUWwl_AGe3$iRv#p!nb8Wr{%?`Z(*P_8s9`(Gz(};?2(c2mUH3#IBfqPEoe+|Alir zMd~f?j8|+695^Lz2Oq*_0u1_W8gxhX(aF z!yNXg&MS;R*=Fth$t$z|pYP3&s}>)(F`B^hkHK1IK_7cY=Ts5CyZygsOU!7HTu^3-e`pH#RYa*)QdlcRW6GJ?ij4s?YG9b2P|I2tG~>n$Neh;Sx%_o? z9_%f`CX1QpeEh*^6V>S4t7vT8n)vI>Q;WY{_c$44@9$1N&eyh(%T4;|m)@NhQzO1` zzrScSyDri9E#LhKaZRSTJ}$^#=yf)dzhwGtuA4?Ob>$M5oqL}A5WI4zHM3<~nW??aFFW;~{NikQh zU1x4mLPA62(T<~Y{-1cpG?nSAv8Uw0zbCYEy-FHx8@*v)ReE66KYPC5h(ZsEu9FR= z4ND5|{$(^TV&ywLlg~JSDPgwzO3Oos4SX0^T>dC*ar-0tu9-1i4fd6GMvc}oI{PIh z9ljqlFlLwmpniLZ5xk99SB1z*a)%fUom?ujm6iwM*V6wOw!h%JaXD(OO_Z1>33Sbh`z{>OA!e zX1m^4F#UIf-#Mn_2MeS2|2HuB&y=UfuJ@Hm_ivO>F33BLw+4$e(~h&#mmQE2w%JM zrp16sdfJ0a@qT`J7p6yU=sW)6WZ0K(t%w=TTtQKNJo$`fS%-QTS|4qm_(z;GrTx(d z{d0UA%3-{Pub&=#R1oQ=bjXn53gf|$j%aP=!%e*&&$#}&>lBIqIln<}Pxx>9X0{|} zwh6p8wd^Ic<<_wJy}6{#c0!J4L+*w)8L7Sh4-~R3e^Amf>AJY$TnRQdkL50R1XLOR zG4wxAWt2PrTe`wV{{&~wB{iPo{cDmpY;oKhD|P25!&lo0(;Q0A{y!El=K$-whCc_( zxWoc#?!9n{W90V)`j(rOt_rd-peO6qLR!sX{m4clK((Rr=XsB2aC5*$zv7ujF+Mt4l~ANvCjMYfN7IugTyX&7L{+JJH%U> z`=>X0ItW-qb40ZrJ%8ZDlG6oWuSBus8hbD{=YMM!JnfltTTd_T$LVE<3u-=Qv3;>s z+`#)|!GwdQ3!gaLYp}mFJ)!n@wZxsJe?NW~a9%Rs*gz_x!Td$D*~P}Rn+XzAzB%N) z`O4AS6br0X)=EBBj9ml2@eX8%9Tx{D>hj4~h4GlUna}O@_-*A}itwvJAv=hn-?d;oYflzUk8~!$UVXnzfg9@!ljxGw!B0 zf^J*Rv3tBbzWzSXK|3CvH3xP(*4eh+k;+}7(fz32`oWpwiZ_n1m;4mZi2wLD{(IwG z{u7=NItTg~z0_L-PhV-DY`y5>$pa0SZZf=O{ORbjLb=>-M?>7dU+sHVEI;~Ej^{8- z4MUmDjRx8Nc!#K2G4_pm%q*oA2@*9{qTCk$LZ`4Qykyv;_|pEc{j&Ew^^*Gy|NQ0N zGxza(`8NCd{mkpxfASyWS&(V)K#u=H;9eg4hP&6^JLqV3%qU}?$#`eRKh`_@Smdsr zX0l@C?r{9(Xnl0Sx#RD2KT8~0dZck*qwH4KImh>SJu}eJev%%rsUU?Rc0tD-&V^6% z#J==#u2Ezy5?#4jN5S@R?Ulc`=O2E+qwY-~S)x`LA_b!l7KcmPIUjfykj#8Qgo!*=`tS`lcpqN=_EoBC4Qu zut)FkqI^Y;Ea|4OtRB6ii~M&SwyK&k$EB@Q_}60h390J+@{8w5wD`(|FK>yOEBa*e zS~qLCFP;%!W_@+|&U?zOB!V5(e9WC4;C8vukonMw1tI@uJd9hc(;Rg%nJqElugc2b zQxjv^9u>sj&^fWlp(FC6G)GG&!?)ng2D_y=1b^^woZH8}%th&pq(smSUdGOIpO40{ zY<~DCmW|ggfR!in%j(a6-DZAeh&-&Z%0J9$Rc1m$#!C0gTyJ9jw0_h7w&%yu2YQ@4 z@9|z^{Mmoy=Yg#(+$PLSuNN)2U&9ymivLwl!xPJizYRS$%g0<$_{BBp|F@|s`+NIl zCGxL3e}Ipjd&A?8%pRv7a9;ecE8J)sX2!Pd?Q6+8`5UdFPyfd~NXrj+&U{5Mf$3aG zgF(iB_7#U2=G;wSI9Jq=ru>ib=KlKH@!_akK0T zw}4el7Z+^dirRIwxKXmZJySL?R$+d}XvIpK4%dJ|#?Bg((|3X($K#fvz#Byda z&kdhMcE-4N*#2I^e$S8Po*T;*rsa}~%_<9KTBtpc5MVDBZB}6Z$E@G>dyVj61(wB$ ze*Zlh*D5GHXUbYr?T}zB^TJs6+O=yE`wm~zWb8b6WaHU20>-PG_MC5?G<&P08>6S9 zLvN;OQM1fGLD?|*17ZIfGQ1b8Jl-hrT!%xMIYaD;S^;YxZ-H4#phC(MyMkY)KF=A> zvX|P3u{kVp*uqoreyi~YJI0NiWnK~z4~qE(ge5#b7_GhHG)G{;`kw2$u?~?pxD4xs zVtTiJX1sd;(+hFutuoSkJ~Nt&-9E!EW_{6G-avIh+M_H5_L8aGr)sYU6z^OxcY^VO znX0~yY?Byu*7oz|C^YevOj*ZSvT`a*pTOVS#=VU@Rk(GkKb`esD_$BfXD9&Z9-DO6v3nm ztC@7y3nl$1`DSWR`@uNJ>RZ>r`)pT2-QtQ^H_e#wNo--;Px&o5?PV4Y%Nn=KIi@=w z$XRgbe0?sDzvOKRht0}5JllAjBCM1bY+!5E)tKY{y~*GLYtOw&=N!rzxQYX$=gyfa z&}F_b`SqFyuU9lUu~(+C)^g5ZD7fMk9zOlyr>CbMG+eoMEv@4FJJ}hw6TA;dv{^dL z`zmpPO>&K1gu6?_Ve>`GS^{!~0Z|iE1HRWBQON%|wK1IO=OQaNwi|{K8{FQ%e=kt& zFt@+`_{JMM8E;HLgBQ)`42M~UDOR4(%dB^`wXWTM;MkY$~v~=m3l5Z>|-6oI9GhF5O6PD}CHp`2W5A3$daHy)O<#PO3kX<6wH= z-O2b1Gxr{tnEQaIlc|F@ZW*h|BQpcmcqTrb2D2^MjNeNe`yRKd&0ovI!!u#8?18?c z^%>8b1WjHuMSWroVYxMd?_EoSNkfsK@(thrje38Wb!0xQfAstO0j4j8BrQks6UwZeGlP#5X*C`24TzjfWK{Kl~6BK0KvU zUviPN!*otggEi|Oq;PzwJ-uOH=){FbpQ}30n5xC>%%U-Gs)RzTwK6mFsmS&vQ>Gl~ z(@uG+{h~{<;1x@`g+ze0s)6B!zcc+12alyszt_+y|4=^5`RHPP{PE zVcW$VaI0F;^g9hOqRz=4WyOPbB##Jhrd-alk-gT7zK^gTaK&awiUQ z-|NV`hbJ(k96lnR<5YZ!`N7AX3#51V=O-s*__uoa-8+0hp?}9~ z+lejb*w1|Vxi3g%`8ky>uVzXx|7qy@6FAM@P{Azs!HlN|%48KzaG2%1Wz?C=|HM|o zK=*-aM8>zqZ;cJ#>ko*$W%;I&`(N;jSVpskCadaU1J(_F$ITOtJBzi;i-(&TAK7-j zDYf@;u;e+tIcGoAe=}k`c12^6)6+Xg-tzbyNDc4lnJ{^S!}oc{%#USijz6fs5P0Fg z#Fa+b3AY#c9gBb9!(O1)^619s$^nWSN>A{bIP>hNd1YL% zz>)LDXVy|Xhv@=MQOyT_JJ>NUooQ(yX;JZ0az;hN?DLfs4bugfrpFmNPLJNml$rKo zpTL8aF$-?a*ni;M@%Vt}%rC?O{<}p#L;p2$|oNpqE82k;Gk1A)} z5xMWfzQy1Nlg^EU?xxPCSO1U5U}L+&o1tJTbl~yX#+MI&YU{Gy=wXkL+|biDcRl0# z84O4NIUY43Z2t>gW!tjMc$zKW-9BGZT77x!&C_^SdI+fJCl$FZmMe8U~a zM3od_AI2zlm6nGrhb!Ci*reM!Bdiq^lEoGB&AvO|+PC|q=8>=o5o=Gu`^%xaWH^*Wsi#nYIYF99e-2WqtQ1A_*A1sAT? z!w0&b<@|s6zM<#cZw9$QP@jYKTt&^%%{%v;^q<{0dG7p$C0`8-IHH$6HDE_nG!2F5-g|EQ9wlA~ZIC%{E~2L?lancTEtB!=nGGBK(*h=4XKu4z5qz9$X{3am&Ci1e^tFy0 zIKg+zhwpX@U$hbX?d{CE6Y7}zW!cZhDI^CNGCcb4thG7e>5cj&8UOmlo*GTy<9OA> zwI(MmrQ%PNs1ED9^9@$=4$BW%X?Y#kcS-lbs|}t93b({Oa5=I4d8kAE4x=7D<@5#C z60u3A4H6n|_?>7db8zTe@_gd1A6D8oth5%~kk(n=5NNI1Xr#`;zpZIvwYqs>T4kz4GYR05*!&`Hzdsd`+=M&ovkvuu?n`$bNqU-vUtR{mbzz~fYg;RnN_#>2^5n4RL@etCXB zkxhPm{DH{+?GDTi%-RcP^4@SO5?dkRA+znEjL7)~V)h??6hs_n+IzWChwpX6fiyb~ zOW|p9qU#J2%IqWxyKHL~bG)3uF!ey1vqNo8K>8CsgO|%(4GeT*Tq`bH9oAS-#nE$b zl3hV(*NhG6k{r(uO6^||SYGwcT%mM7*DoQ18h5e9`8VX({0^OvK8Nk;ukxDd+)dwV zCQM0?Jn4TgV(X+Nxk*tseArifW-OXGQ=6H2MerlmXzTvWbuH^uZ@k^)uyw(?<3E?) zU%$ zq5j0ato6e=_DLoyJ{LAVl-%*Taoub6Sq_2Tiq6rc^33eFCh7Q@{NA>f$xJVMe}Wa$ zm6t#Jely&kxbOXA`+{xECDl7WB;GMUCclO^amCFGXD;mer*(M!)7O&wn5^Y&E*|7L z(&W4O8$DU|Noa9!SW{JNaMGJ16Hy;7u-~sg;z~nup^nt)ntVi(=+x9fzAsi zZ*KVYe#=IK6;l}8_gO|NoKC%@B_VO`n_pXEwcsuiR)OIkSpm_Kpq!~5|M zOPW7D=#{Bpm0ZD5 z&0!@gk@3Cefnq`ZzwL$%eeG#!8<_Rfr0<;mD$yn=u~)VBfs(Muw+-BD3fFE}_?m|! zCsr;aS?q-4;fE<53%9W3Y&ch?kS@sI&wrrnrFmmabCltMzH6@6wrG41^fR82?yw=u z_{G;g`;^U=dd!BaH6Nt5%9N>uwS|mGxExa>VEJdy$Q|!|j z_e)_9bUMtF_DEN)`%csQB)io%fX3L^Y+^_MK2*OFFPkwcSCy*V$T*=L6pf`2^?x<{N}3u|;LE#@8KX znR$?T>xB!(d@B|+%=*iqd;HgD?oCg)cBnro`{~YB)@IIAq+O}yht=*g%=r`=8Y(ee*oa5TAR_G_pG?H*2XA>#%|Br*v*Gas zM^2^?wgxLDhoAL*6a3iUJTMA)&b&mlB~e!3h8%xD;eBSF0)e(tn+cg;{MeT4XXsQ+ zu@s2@E5yvaXYrYiV{Mr#KK6C$y!*e%Px1NBJo#VxgB_g)@uJM;jmkBWZj4u*5=!LH z9Z*xNN#&2VQke4YvxHvd#2cy!3jZJ7UhnkEb;5~<_BZ-va&!Nlx^V3qum6-}v+o;A z9Uib5BpGTkT(fNSFv@edRd>4MaMpkIiph$~vs$^$1V1q?bKPOB&~qcKu2J{EHvS{a zm-jgOZ0>k?^{br$Z_tl7HN1!WW?3fKdIl^%81sSaggA2&sCu5IyW%tBu5;ePC%KCq zSF3DzdzRJgkD-;kLhS`U#upoWY<0L9NDKVy#JSR z(jT^*2!(h57+QIkJZ4f`U1w|%mR#oG_Uh8=YunfIj{rXujd_$LHtm6WCiCAAYyLpmV~$?Y;x+&IdD%6JB?7uKawkLDg5e+@V2S zuxWZcqqV|zFFOYJ-ucES${3?(e>#vF8sjrzX}E)Oj-IiR%th9y16(qW&spAyCa~ZA z&iG~t!}K^q25b2P_t-b+a^_rcN>7}}WUcsr;pz4Nn#~tF_pyad3Qt_X@`vSI-JhEq zn-e!QHTwN;=ikp3cdtUy>NVr5f&=do8P7HxNISYDn7aY378q{*e?Rv{O_b~2_PkvT& zdPwq3nZ%OkTlI;xq&`jb@bl%I1@21oXP8#y=$95>dU5G?qwdUtR(oG-g~hV`pOog# z5_dFWzFx?GY_Hr7r)M8_ALfzUBxSKga%0!yHw^}l4A|~4I!;YFA{i<$v-QGh<41)t z^A4V9$YT1($5D2BL%D-QVVRwSpIW)H)tYy$mDPGv7-xNDn0NIk!>byFesHruIS$Fmh`mv$MM9rYwc@!ynFbX zx4&yXHrvr%iaR)h|LyG>DT~_&IgTwjcRc=q+#GuYo*essY-J90jn<0)B^@@)FYxo^ z%$UqtbDw>UaMKfkfHH>uFy{8Hj+^BbcMx`6NK0M`( zbARobr0s5vju3elv-TSZ)9=%XI`GL zUR0uLLu$x^eH@_G0c~@6`K*>NVO>$iDA4TYcW2?kzO|1TwX-A^3Vfg5{`g^~ws@}Cqhgs1%L@gOm4^*j z7`GX9s8u_-S<6jX%IBru#B!6*YIdBXW8=ev&Fnl2lzaJQEDjiK@n=k4k~B^EnvPHD zhCYrPh6R~IcaC{<*?%avTM@~osK5P_(zOH~??u;S6B9T#HA*zxt8X}4cc3SJYreYk zjLFtvw-0QVH<+pF;Ksw}uDG+2{RZcsLk(4vL5Hwj{KaMQx^QLh!;SVStlTReGv3nU zUF2Bkrq>tpJ@!*?XRp+Zied0GD929p&H9L-VeQL8y`t=PtNV!eA2Q`K^& zBgfkk|FTU8n_=^3Rb-7N+g*be#`E)yjXb=Jj3Od!Q!UDPOb+t}YO8VF`hMudhiAt zk#WHX_NCzg?gHC{+E>X6M5OwkpS)JW&EmkdNJdv9?GH!9FK~wE<>h@4IApe&>2^f_ zzK8Q>c^~lTRJxG+f`@1Q!>FXj((8{D+}a`@NWSi7mXw&IW}9|ny1MrbkD9eQTTZh& zwk3ucv&_mY$h`AP=t6Ag^3NL?Ty>RWgG@bp126pTJK?=yg4DkaeQeqnZtnk|TyB-~ zo_$lvn$7IaH|ozs3I$X%t>Y6B(QZt8$C{KLvUy^<{f>ik`6sN~uhHcodd_2K&#MpR z57r#7eXyqeWg^=JJ;i|CTwDI|ZaF$#R7z{Vhfk#Y_ZWsUiy4h``PDq0Hw!v3t6NGq z{4n2ekmF?s1N(-?ga4&(top_JrsBW{{}1O9Gjf`~*E&e&ZrF2yeNSNR#n2O%X4W2< z_~56wgv6@`-P2YN6uAz}oUq^F_J2nAbN!hH#(TKiwum@x?tL(me?t6?g>(5I94ltK zV8ZglWbJ>R2YWqzGUl<${^hnd<-Kx&b=O0+75*$f)(aY?E;R6}O7;uxIREUwLR{NX zhx7}-WN-ZZ!DiEM#Ejo2h`#Mw&5&-B1K_iml$=+BmIv0L3f zH1x&l_iti&m0-@?toI>8UGc%w9UD%w?X8xScrcy2sYK~+USCYB!;KlT3{z(Evt_g% zJ1FI$XH}>w@tS@n( z_r&u9YmMxdUD&;M!Ca9X_xDQC+(x{Wk1d&xXt4Q3@N=e^y{TebG4sXj^AGi$qMA%6 zO^d6%^D)7q=D)$=!wepiIV-O*iyU82CR;I6z#zx*t&Jhm$GS%cQVW(d*93_as4=?y zXS_R;aj&6_$ny<+94myGj{R4xws+VpZ@K zhV7l5QDI_22je{p=2tyAta=p+6_9o@HjH7{^G{7oOk_yB5ELpg zZGwWWf8%#|=I@Pvq?gDFRO#C@mfP)PvX)=4Vj{!Yh68=qS=;`K`?Gy;QPogvvJzTw zlP7?kWr{vuE%!MBKh^zEVAxqI8}iOD+_1nP z)cAt*gW0JEug;WQwOMDe`)4B_3x=y_7nHbuo( zVP60Ih%|eLw1p-4WlXLY-nBXJtPwC-#9MMXq|K7&CXXf$Py5V+_oOuE_8*RKtX_7m z+Q6oyz2uj}<1-u1v1eRkzEZ|~wyHtu#DZ^f9lTl38TEgs2OOKo;3v29+z0VJfwLty z-QlVUwkUYUypow|*4Kt|8wc<84YEBk?w)OZch5Jv>-|q=I9t>3fqwz#eM!gJ&i@qW z)*aq|=PsBD}pRp0R2-r@O7ry$lH zpEt5*h#8-leqpcN0>9(+8K)R8o(cHun8_@{pkOG#cDA9xh_iz&&!N54Vn#zw%Aap< zquCM@FO{8cn7!nHYQ+7<8O1H~$6tRGydn9Ib4Jt?O^1!`!b4EuRi% zGMq?r^ZL=_ktONDYH*f^XN9q9509|=y~Kdv>hlj?W-`97$+=N5ci}4m{=>)neR%%- z;jm?5ntwp7{?CcyAO6QnGylj_u_|}cn3>9GDObsPBVm4OqwZ0rtLzm0h~8qT&% zxXb7$mn;9a!hlCY;zh-RlKosOn3)fqFxK^Fb$q_c{1EroQqK(^qfYp6WN3;h9Z)>` z?!UoRhjpcLF5h?xVkcK~FZs+ki?j1~gYB#z5>q6WNXRruub(XGFtE;#%AL8L&$bLO($l?PcK?Aj1;Vz1nW-*ykK85kJ|-1Sdf;wj~IDDl;v z+!;bAhFYgsp!vBddD{DZX*1*9r+bPd!S z-ktdIS$@lxF2OxKulbof(pvNndTno5bN2MSjolB`3!E)7eqQBISpHaDpq~BQyqe^O zT)qGOw>TNo`4-&hYQHdpdDHa!%-@zY=$^A-fABVUy5zQBwkaC7zc8-)WZ(QjZNlkB z-Do#Zk4>LLIO`EZsop=up5z8oD@UgXf_VyzZwl_PoU2nPx4K}hEN@@OVkY#n^OV5v zi6M;7izVDX>GI3TH_Yvyf8ZSZ8>iv`r!8#f)N)w*UNsw8XapWgvr8~pqujKIQTAFU z%f$sx!(|URw8_qAzx|t0>$zjHizUy5BC%^99p=4cxOx7JgOg>C?kUcxXALS@WF=Q} zy{p($+dbp2hu5XF7dO9i==^(iRiDkzuZ%73!X(2C)r05xcP4y&>>l@lMesDknHGZy z3F+J#j0h&UnYJyWWf8US6N%$15*u z4p=9qEL*el#9W~qze9$<8&6x+%m6kI1K3%vykm~rbA~}^_CW^A2oAH?jG)9b|M0D< z1q*f;2$?)S$aF7-Z`RKr+)+iW^BEJF;%~6OYH9G_lhiP$;j8=&!<$yy+Yjn4Y)O3e zQlF<>Z+_Yf|Du!=kp(@D4xZ9C9x%VV$B^&z|M&;lj3#CQd4{z&nU-pQ=uuEk5^H&A zucUTxv!ugy-TkKn_Wfep@cE;J4*M-ll|6!6UdrrP)-L)YSWV$9$6m$X_7}DZ1)u#Iy*DVx^0TEqxTO7}hut_zon?y)+s@!mq7|z|JIYUbcX}S-@H0vB*Ru}m#}(m!@_U!788&B;JNYhN81z$M^2%=pBaUm z=dE?}5?b(2dxJ(=0>eG~lMGVLQEgItd0xo!Pq19T!|=L8;kaCBR}|YBIbP*SixtiY ztDiIe@k^@N^3c-$hW3LenBRB(JpUl{d&|QUf+voBshuuoWbsl{VdsR2j8_DIe(7Yd znPbXr{C9e?;RTL>;%Tf;T!PFWD3_->^u|X-mo0fCm?F{A@WNJMv26cA;c8_?y&XI6 z3vd)%nWZAOg{6Dq5l;61#{;Yb&N6*`XS62mL3%){K%zmz?&ODRDy0kh*gy5K=eV)x zumw(USn}uoeS4nw@8i=2!Y-yZy#35j>ZUMv(sKdphF9W07OYF;no&6=(Rr8Yy$v2N zEBAGHFTauI@W84t^wK;J-&+2J|LSDL=n zAFxt5AT1-2Fqi*}^aV%h?uph4tq0gV?F&-A*ascg`2CNW?SgB|;jKZLwTyReR4?v* zxX?W1r09xFo>w&u838$G*xZt|1e(9eml`@)DcrDKKvV2PIcdJ zT=Vc$0;o>eXXbUjvw23BSw9dly!17y>3zO89!EV&;7}u>XgC$ zWWULlh~3P-9Vcc_m|(5AfQfO6hht->O*JcbVT6M6bngd!I?PEcMRWeMt$ED2*zwVc zoSd2&aT8`5m>slLc=6kA0&ikU#ot++`@V2ZnYS*^_RNCS+5BR^fBm&));Bk2=I1}- z{K6#V*YnTmd2RLoa~eG>KHSqkY{0>|&Q|-!x19&9)L$4YEj})D*{q54TtiQp4O=*$ zwC3!;6TdeKh%)y)IVN1zdx~da2HT>Q&hdGykJisV#_*o0(Ms4sE=So)xWM?$GpBO4 zfaT0a+=otlc=XAzMK)s2L%ZKBhucE9H%LvdQfG_2oXWGn_xZoc>c%-|&dN5laArAf zFlzAImBiXN>HeS6UdOq<-HdzZ9%#s2#*%xCd09JiZvB~(n0-!0lchD+ILHdj5DR$D zd}P`r);_&|zmFT-ad<79@cc2?hl;xi9p@d40y-Z)*(%QSUqW#%--Wc#{~gSfHwYhMS~9a?v#fhrZj!*%(4>HC zW=R^K%o8JOttTBcU)rPSIlWi0`jHh|oo8ji^Tq!^)wjhvaMv+NPx;@l^|bsndmj7x ze`yaA{v1wVH+g*_e?s@aNeLb|Rva)8%xYR0QN5ft9d81&jusLN~ylg;+oi)S%D)V<@f8w(_HST-nQJ!mggh|Y8sz&W*Iv0mE_L-Id!2<@9aj=RdOcW zOzVD6wBp(^EuoRk#xZN6wfu&~<&JsR+_}g(m?Bmmt_6JTZ{qrc4{R`EPYO8Gz&5e5{gzRK z7^Bkps)i=cE3(XqrZS#Ce#|X@z{j!TG2`L?4ZJ`9^DLNssPXokClZoc%hx1r_{f{e za95inOaD;DgxC##)gIWYJ8;)C>i*^`xssl6q>jn$$8q`nlJ}Ucm3G%Lu}-vJZ1Al< z<8*PV_~F@87d+Mc-?%*XZ>m5vzexvc$#M3KKK2>k9Om-B_h4&tc%Z8O@#BQcYyUL7 z$vwa(wc_wWt~Xx~q}e*uh-Ij=Xs}s-?UJneCHm=P_=#$Vgt;OS>MT2ro8)RXOyP|F z`nhyMoSVmLNr4Zx^6PIaJQXhqdSE}z`>CYkZ;J`m3L9<;+<2yvb9(&+X6c=^eKwOB zdmd$PMr*A(4`vFeExYK)!OY8G$v&;;+@=6^r441Ep-7%)t_C6N zoY>zTJ1;-@kl(iSK5IuedqgkOzK1d);!Lb&4|Zs??EI#6d(50^^+ zT4pAp_E@_gvL^*%WCdmjMJ#{*KWW#{eE9BY4(p{n??Qq#0%e?rB|`(ZShLkaYBIqNRPv}_yy~aTz9mV_ffd- zWG%1I{m=3G6$3_VX~qM-2GI@P8yddLIZlgae0o4uAmezmfkUdQC9FtXoSHwl@DLc*k&lDNJ%;H zaQwP$?&01tSy-*@9g~2(kiq?Zg$94Je;zszarT4(*9v*2EpdxF@_&l!?VMOJQ^kut zrDW&T2d8f-XI^8r{K7AMo6%9P|Ddcu2gAdpSrZd4x^?sx{ zEV1EdSYw-7UugwdDJ;0j$ER~TYTx2Yk&v%NhJTKK_!qv#R{bXbyXLD6R`LqRrr+N$ zDN+Al?$g(j*U1UbA6sqsEXa|WbMRYrLz;ubS(ytrgEy4P?CWD+QMks*C1XxKqsW#lr7S@cp98KGj44U*5(%VWx9NsZ()!g5h=HOr~ zKVMS9j-k-{MT7i@rN#dxdgj&{{&Cp1K;XqTmp1ML=Z;6Rv9X;v)BZ#1LR)ddapr43 zfAGJ_X|R%e;QPwq^t!m@gbaqb>b;Uzemczh%5b(~!-6uqb&p=wEGT!GU@fm;rg0-d zRv<#)(6p3;L25Z|FTZo_WxVx~`5Mn&u9VC&_cEiGi~-N=pAEW)lM)gV z9Nx7kNV8_oXI}iZNRHX9lR?|*VrIb|#hHgal%jdBF*0Vl%>R4fIw#}F&Zf5dguOyD z*b~?kf7sU<7!?#8i0L}Z-qG;$-`u$m&mTO`_r^&Lw!#(aEKmB9R;1ouXtF|?DXBSZ?@8yQevH@kX8 z-|bW=H?3Cw!#d_$|M;JrJ3eRodC8!bjq!4aSdAE@-0nBz=;=KCYQlKqX9mN(8><>D zJlVDsbIoMTxulf`mF)~Rc@5Av8Zgqj4moR_}wkwH$2)y|l2iI_<2f^RA- znmL8~TV>@~UmtCdp5eoj{(YlihV|d3-8vH=%Ix{9xa%K3b49qd@|Su2`!6gma|||o z(5JrPW9b71=4R~=InT}>2-DrOnNcLYEoq6Z{DO1rIi8}w0(ZZ7bmF(OLtk^L$%eO# z2j}chl(@ohC1ByRO?R*PAE=d|&);0l{QoOw^M*ImUZg ze0Sb6N+~wYEn-b-o+Y=z`nH4gS;xYzJ!_?}H85T5N?~c5C!l=z>G}T$e|I{THJ)MH zzP^FwMHlY{7M2~K8B2Ip7_%H+U>G@}>cSg$(+$l97Z|0~7rc}bXw%)wc)#z&k%Cfw z?dEN#3AKejoo z#f7YLYr9QOGrp^6_~FBILi*f#1=-D~dyci0x?RY3YCl^wL8xRy+2{R&MSt>M+dVil zhiSv?{?*sJwLds8vcB#)^kvcfNesMaUSFNyXW(JEt&Ve(=#5iWF;DFm`f)MaH9O9l zsBU`UFX!uy1()T23jXE4r(ZEiY|RAM<%v-ek`|3uABOWMtmw&OUsxq*FVpu-HI>;; zgW==ZO%tll7@n|+S>E}uOJ~}|4GU)`b~H@1d)+AKo8`1ZR^S3_%f<_9`8S;ANS>%K z&hqv*M}?0Iwke!nr|?ebV@`TrEJ9W$NC$B1>3glw&1#Fi!VuJK>1$hHwp8SFz=M&q^ewv;5dCr0V zzq#tc{U`P&e>ultqVWETLBsmL47`d9eC9Z={n>xiD!_{MZKD;(l-b-<C6S1 zVP9Va>0~|MHnGgx$}~OF;ca+CJKIkq&j6W+uV!rMxyNE@p~VxBFDz2Ic>5{kN6r5u zB_}jnaC$RV95q-Y%=D^4hwp%VdAEeabZ#drm2L@z*_Rxr^FF%fnxo!O^=iZ0?+*8O z@NLeu+d5fGxsz?5bLjuq_GQct#tQZq(;VuOHojuNdQxe8p?N{|jRank3H1}Dy*Gt$ zF!(-Lc0+pq|HIo)H>F231oGOrPG`K<&QNOQkmtPpJmU>U%Lff6%B)=#H`qic+-`U_ z<-GOT03MqpsfsD0%{QzTv>y}~Y5G>(;KNdu`Hw00=BD;WNA6uK7i?^8e0ac)jV(Dr zLt?gpfx`Qb47o<>PEl2?PvV_k)fgzoT5(wa<+}2cq0}y6#*O5%gXh}c#WtDdB+3eW zSTsYhfaU!{zXz_}3z8Q!c0THtOqs@Hc``9O={h(y?TnY&;(3-dvKtyV@Ttt_naa}Z$`H)uY%-yq@nqr-E9oCriaaO8lHN`wm|dxWK4E_o&ofRoU_b zLB-QrTN6ciGB^%=yWgM`8XR0~V)mh>LH9#g4r4<1^Rv2aY=Wf;zgryGkF+PUe+b%r zoo5bD(u3%8;)W*-_9R*GK1r0`#w_;X-+{uI?-FcnZ~Sc5Ijq(xFnc7qQf_)@h0h%R zy*;uaifT^f^Bzn6R6dz#v4_#VO#JMITAt~Wb&n$IzRu_9-gvfd!TY}qrFIT!p86pY zVn3IDwJ7jB9iHGWeIue?;OGH{Telf!{{$(JWe{LH%gV4+^1}1-gg_PFlnk5yALl3D zd+E({b=wZ{_t^~R!}tBCR7v%88XT z^bcn3W%gNKl>1=bA^&2JSq}Gl8N8%fjz5_=J;Bj@iT&zU73LWtIWOh6NeTo!X;>$6 zvgMdifnCo+!BcFqi42!MGo5Nb%HP3#N_oR4_G4)-LG8V~_eJ{G^00I&CeL_2F|)+f zp#4D54Szn4ZrLe;5|RbXA(m*l2-TwuGlNyB`eu~EafvIE~68SZYp5ZS_8{s~K8oL+DA?6~n2a|bI? z{t7vU>X|$|{BQUV-2MJxA=BYiUs-v=HSAoN~!UDT|=6k!)hOgT@2) zJZCOBB)Z~rp{T_!1MwNBUp2b>>qnkDAiz9_FKV;gt)B@8=lo^RJ;=1}#5skx9~;hA z9mq3jFST(nmTPKi;<2-{OW2cjRjaM`_cy~YU%nVjnKH%T&;S4Pm(*})KWNIBU~Vbd zX33CuFp)v_$Vcf*KONq22**A;SS9XoHok$`Yk>-rm)427d=qw_m@62u=0FB$#$^H9 zn+v)ZVw)9yJ61V3d%ru7(NO9(;WLMo^v)R9^vAuPGaMD9S|+C3B*+R}h}yukK-0TH zV&%C*S?}^+L_S}0qWby-UB_#zR=dQDG+0jC`L)G=JzyJnm1l9oDMbb;9=p<4BFq^t zFTBuFyrsJSBHsyyl)D!r`5!UMCM#P-`L?hA%(&T6ZpT^CB~SG~JUIWI$Gjk-CndxB zgIs3t1GVe7STnLN>Ku!FY{ci2>d>|IM3&=RfgRl+B{ne^Ej}^tZ{H1T`3uz!1*LWg zz3c(YAG1$ull#Fpf#t=u+6BfU@0_iaK5+}g8dfKyKhfOqx$xm3);8|19js!T_(dch zHD3J6P$3j1dO?4|@25{yR1WN$GppUN^4(%=qcpG~H;4l9Cb$D{E`XCr_VB9yxM^qs*>gZVPJ{|AjZl z=RdUjy;02K_e1uZzdzm;D@@YUuyI_<7Pwj7;pqRz3Y?rGX$x3AJpKx@-SCm`X)E3F zKiRW-56^_B@e3vwIhH>>U?s4i+fq_eVEK-RuTvVXJe;IHO>t8!l0YDFkCr7=Wu$S*i}g5%Wo37cjuomX9=DaM@3kYV}fMUW2L ztR~R4%C!eytYOc5*t<_~uF2gAPEsNFjG4u^aTsM7EI40x&$jN}zlFR!U1dA2x2rPbo5Vk0&QxGOd+*c% z^~^I2j~{=!U%zKvLIQ*CZl$Vc%&S#>$M%{;y;k4=U2gCE}ioB z;$ruMe?+yz4jfHQRkRknV6D32h-3ywRO9Tkw=Y=9UuaI3O!#cBP@f>p>DH%dsC3t& za+(Zt#zJ9dwht+dl9MH-F}6>bevY+w$)o=AfZbg)tX&*VujjkL_?YX;&mBBAFQ4;X z_`1H{Fz13!`i6uPY;yO1&vq-|T5ll{!MUNc4&v2IbcYi(5I?9g2+DbdIL z*f+Sl@uAg+C)x$in^~(Ki3&ey0ZnGT*|IwLz)k*~!X=rIBy?Fb! zwf#mr=;9w^rIs|ig13T>}` zHp?yUocZH{>&^)iCVJF9n7koCH2FH0VC)vo`8#J=J-*oDaC(D-+L8RWIT@^0U%8I4 z&E^T&e}Uc5kM~tW!x6{1d}|MR@?8J*Sz>~@N}Luns!PySqZbMc9A5tazGQ`@!s~O6qGSwAnf``@zq%c(ST7uX z5XpaGZR>^TvyRu7{ZDJzqL5f^ofngyaKZe5;p>AvMStFDJ}8Xc(8pHP&U~aT*C0JT zojvZ$v4aOrcJ6X`_4@jH9vd4Qo+o8?36A_$A)-^>>Fv9HFyVCGX@dyH3`1zt( zAEfHqiqLQnJlQ5*rz3O=4Wj z%{*6*ah4lPrOcLOIg{MrBMlq@08{+(ee*iNpeL>wVlxZdH!GMvh8< ze*ZmR&*mrQ*0#6yZo<`?o+IyrD)`>iG`KC}d?u7&qp6{3q;cf9vCbBza}7Cr4sD2A zAz<-(A;-M06QV#1UbTL;m+W~bpTNy~=VwBLUK)FqklE&i>@u6(_Fretz4ln6;94_l z=6UvQejFLimKo2OuP{2kuc`U-W1^#jL&FnW`5R3#dw%X&l@(BKC!xWzcI{f81DftX z8f;gr|HGK2wqh->m-3PlJBKL8Om2}f&|JF3wn+OD{f0LzTemxImff(E>B%Bz@l}kK za*RvZclP$jU0HDY@tqfJK^&h=K3&p|XlF?=KeNa{6YZIHTdBq=1y$lNW2)OPS2){?@&uA+}IW zQ2FqqUXJSIzk)d}ej&yi&Nn1%WY=o>Y~)n({!lMNUR=B0P9-y!3;mB+uSPC#jb6~E zo^g7SpjdN2n!`IrQHAdT4yK0N_THSA|3FQZQD1&edl84gwhd{CKfcbFU!%^u<6Px6 zmX5N5TJE`P9o{$mIq)bfApME;EQ=F7dOCBb|7HJXoFO4%^no)b!C@QwGTAMRvX$SM zRr+$-TErq{uLUyB?7d@n&~$atj}OLe?EDQ6rI>8e#6;u|@Ev#7Oehz+VP3%y<;ON_ zfkWIm#_R_NuI+5ld8BYo{eQ#U4(oh-;}xAB8ciGAesjuNa^F&C>e7!mEKt_8&d5yL zaU!En__yH3mBGP{5BsC74o5v$xZ=O$zXoghOQ#zrEjatsXF(+Yg-O~Ajyo93Eim;~ z*t_7gt3$TO16jVbCS!T`iD|YG7t$OO%BvdE>>XtLr%VxPD}8;7xO(=9ef$CE>d!MI9#&&b_N=HKBiF%ozKkR2kxrMa;zu0Hbp1bll z`9x*m#zp_R4DgwP;1gku&r_AepSr6QRZdTDGw7sXC^diTP#*?(gbCUf5S)_1@E#VxxD zwG3gO9sV(%ie)YqmN)vtb}lQ^uEOC$|8M@Qh88zX4Go@%8vdDoa)&vr>GCz>N=`iIxWxlzt2By8c+5x#rqq`w}bmEf-}<4qL8x%s6LiB15SSsG%+^ z^rV}0;Tz?Q&2l&Vb~AxSTjiAwoaXw^bbXn^Z^;n3^K&dGH_lMqaHPb}L6BkJ&$;P8 z+!C8449rh8Pcbl3urf9He(=bIyT9d^NvL$Z6PzJ&=JN(erj*hHn}sDD z%-fr$MK|(EvCOUi)Y914IOCJxT{|XY#RZW90%?UGWahFaF5s20oi*L;p_LW0)6;_1 zUbDs?*|)mE>ILT8>ymF=`qtdB`;elldD?R3ov)mVgo7OA+aHCv`Lru@Hd<+YY>8nG z>%XvN!VyV<3CuzTEb_{Hg=?xE9OepK=n=?Ku}l5=)y{ zosCM|{(qXan`im61IG?XHX189Y3MavUHQf$EBuS3z=SHlgkH}3zZp&5N?&n#A}J8? zoLR*tw^8ZvtGfrX74Jw$>^q>-T;`B){QaRchl<8$bxdYUtXHj;T(z3r{qTnm50~@E z$t}?Sv(VT4!6j|B3jszP&1&inr`IP`+dC{?>9FPlPZie<=E{l)Z3h3}MHUQ^U0*#I zH*R~!xW)Jr!^+@KA09ey*!TPUd*eTB_s$$T)=_HO0b8OkuCAjN4^OlujCa)Q@RyL;>Hmsa3x$8-nS-G$E_UHanVrL{)p5+}_B+_h*;^(_3cTyS z!y~^&;ceOlC)Wq2Ej%0e7&8{}U1?`4HNL1GUN|-Ig{yeRB*rQ45;A$NF*@cgPk!Cd zaHi1Bn5TqSGiSfK2iG&U5~HeOzF=Wr5LG znF}$_Y?l~wF0h_v-LN5Yf^BtK!kgM;3Dyu!#sE8}yB}<=R`~2?F}=mOFzK1h+^-9K zJB#k%q^H)Z^)eV-d%_JQ(Dp$E&ghC7Ej(N-p&^d2`jA(TN>2Ue+t?CF{wMv zUD3c3!QK+!&9Ioc>B5JHN0r-3Ig1|jorvLg5&iqxei1X%`t-)B%E#WYXGHKt7%wV! zNRYnZC_6!$X9AmP&RH|iX2u#72LEkEB_#!^TMttJ~qlrHk7evtmIl@%m3+aa)LX{ zwmmW>OLWetux7BkGJ3nSE@8VCnaOZYuklKQR9%w8)*IKJIP*IsF_;Q%T__e&Z^`hc z!o(|CIv_HZ(JeSfAn1;hDtk@V$zmI&i^WxeZUl7NoH5HW8>jDQf)bS&`b6 z;Pnl%{mvFv@-NJ1FMj{F^3xm3<}FKDJTn`noMX>OpJh;BY<*aP{YjZa)P08U+O~Pg z75U637jK9@o~XXQ@tI^|ZvK-<0XLyTk4*w}Kc)WsFDYOwe&g1M9af?(M+BFOKg!We zDL-^$!$}^2T&`JZZJY}F-7UFR?YeuL-rjcF#v;bH;PtI!$$)e_3CWJxoCgK_c64!k zFj{l>K&4`|bz7jrY=H$OmX9;`ENDCMLP$qz3CEMj{)@d{TTUk}XcE8ja>qG?{>FaB z%5u|2t@H8~b1ocP&e8rb#LwrdXU*5HJ1;wq3+Wh47MmcE@p4Zs)LR`#nR06^i~%3)TjvRq)4r(dqcxMf(X$1gpXpArQUEph9+uU4i#Br~Hefrz!uG1B;S%GEBc>0wPIw@^JdSCv zPT%3%OT;V}{Ndk~C9>_O%ueQ}9M+w({3*2?J~7UY++ZY{W`84Zf>Vvely!-p430O2 zMMgPTF5vS~ox&UReLhzvYsj^K$K_5vNR8;rJs|zp-CAMGsi_MVS0*x_UA%l|kld-o zvI1O(3remve-kx$VdV7S=DdRLa|Tz8U5srKb{yW&=^>A^ax-TD&vNfq3wB$} zF}xQGV3502!MVe>(AA#V`L>jbuEi=pkwmvmw%tX|RkdcG=VCnWk16J}20)qwEbo-e*8*i-c?2mtO_ax8%3AfB2Jns7_(YPmsyRuR! zhefLLrRWM{CZpey8-kgNY+rw8<|)eImJFL)%`ordkN31HCIlQL z?nyG9GTywwXv2n$#yR(P$yQv^6W{Tfk*n$H>1jqf(Ysn+FsLs3oXCA=Rk6g%_~(x- z_N-rEw_|JXLKcap=L;5c%v#G*TIOiJa*Z=r6W)neYk)#;L~dUDGILpIs_t_iu6w; zJ~-O)Ut&fM`*8-I!v-u1mVRBZxY9k}bGc2CyR||}+rt-Y*lWGTOryoxqTByBT$evQ zEpDZOOM~pf69Ns#4G#p}m)H??BYsw6B2&rd^>PKK#l8}g^`OdR+p5L<` zOD^GgBM}#8dom&3u=+t)@B(4+9OXk*`VZb5E(?5gmvh%cnW~ctdA=1{eoJol&v!`u zkQ(uFrpB>{uWA;YuRHLqRwrh~fr1YYrP-=01%1*DAHDDWz?hwMn{l56-<6*l6KoG& zU@Nx$^oD)SXU1D$%vP(|O9B`&DlECGc@m^QupH$$ApzP}tdhInn9M>a*`1#mqZC<< znRha3aL)P3&{9&{kq~$GDE4&jD}#V1%1cmAN*l|AyyOc zoO#pqC-#Rg+PJZ0U${H@!DgpMy|!|b84?NNoJI%E3AUbk+Y+bKk$a3;hwarAgUtp8 zjMj1w&arD-Giyt;AAWOlv!s_-x8ysUno|pu^nHWuj$Z$H;#_({1^=9nn>TGtKjG>A z#cp0`s3A{!!H?UCZD)5*@cXa1!o9KmBh&gRDG3a@|JZVWsa;7_FspIc>=7*?z|3=^ zxBkf__G4{d86BP}cTYT2uJ&NZWP`&TkzH>jYSK<8k zJ){)xq0X`;E8?(uYocJmeRr8Jn;Zr9a_r)7QC>9RU`UlL^ZHXlZN-;!B;y#`IURr7 zbG-fC(AO=@=Mbc=`{8L556j=<8=PAjWlop2>^JF;K`FHr9D0BKgqv1-^w$K_TqaPBIl5ETx6KoDDOyevzU2%}N zL^PvQ^b^ks?FAAW8oA@9iMq~PJ#l(+qmROq>L=&ex25VYI`Dz{F5{=SZyDL%@%Qp5 zEwGha!29gLfmA-Wxp5!lZ+uK(JXhKa1C*^|Y zi+8MPd3bK`ah}y-dhF~f8>KINEVXlR7rMV^W3Qv%z0Ss&Q<-ltHn!x6ZuopK-gZyA zJzuTm5r!x^)>n6!yuCj(`YmwgaPanQJZ$m7+A-nuXN|L^3(o2FU1F)b!+wTOp!bZM z-}e`fGCGdZSpLMY#9^7WM)mjbNiZ6gO%dKZat#{uC9k)KJY&%(o=oWRvhsB@JchWHD(p> z>e{xR?2Gu?_-e!50Ld8d4G!MxI%a)6@Y0CMRJr7tawdD9_11;Ap6}f6yqWPvNvg^| zHP<+)B|EaM53fCM{_vUN>`5OK8W}6^AOAN!UP9(*A{6xY!&N~%6Zz>EJ%x4(4ANW@JCp{rGp;>=B)7g17?PWIm8sA%| zGn9EK$oAJegdS*B;IZC3L*h=lvhL0%*@LH9qKl56*uZM?y79_S2K~KGvtA}JZIW!9 z%kL(3;!OLpSw_y8uBL~#%iBw;xUxzF8E=wIQd%Sta@ABK=+b71EbY@BUDY*n`}GfO zU}!z79>)AYNS}|5QOu*GDec;-_R8nXG8OfT(&rOjGKX|E`b}h=8mV9yQN_IR=E@0| z9ooOFbv0(6*0%BDjwdxM=Dc={6q2={kd)wXum0Tk{=|Sr+XLEdb$=MvUYDKAx-j)f z1KWJ}=}CcNpggX0IKSjtb7BYM7BvZF&U5UmSatU^@fIIUvvJrp@#YO5=Cc(C((Jx0 zzGujB>i)q@%?*6X4ELnZGMs8yu(xZ0aHM0b%mod*YrONGH@Y>l#eUR1?DSDtkzZI| z!PB}mfKN7z^=?~6TZV3P8N(lyM;vh%&Kz%!@0S$0VUWL({cN3qflk7X0>+K1_kDQQ zer~+?va*0%wTAuloAw2=8R}XZH49#EaCGdg+xfs}!DYwSn;pa-o=;GC9U>FK<7D-O zN28EMxS3U8-8ps-Igvc;{{u90N(cz7vV~O2AXKRH8Z(l|S&y?6B&J^3d>3XxE&FhVlw>~!9PveV; zVx9Mvq15bv_u2@7&GHV0xuvRY>-Kr_98y}uqp&0ltp6NX^+c!n z*ON#d|Ie2s?=hQSI&3Acpv_hlFUTzU;PdnIDzB~nyfkoTG>JTP>-qw{zsf3x6D;hR zzaEHJS={lqq~Xd>;|pvDyev|rqT8RS3p3mNooJxvEb9Jv7VAeQx&8Z+xBNfokj=1L zwYJ1z)}9G+ZyN+SwqK0oZ*yb}FkfVBw7`5rfUKv_<5?3|{cFMzK)a?rlkc>A&BH|E%u;`x?u?o?d(%D2E&V8O-WfOM7=h7Pxne4>BcmI%J_ zI2-qcu_niSL9>@My#m{{N6~uw(jKI>yh(k?_Gy1Yw{GQ; zpIaY14G%Dl<$i87<)}Kp$F94(>*SeJ-bifYoFaJ1m|^Oc4Kw)#cw^$vGgv9IZ{c*C zVzc}Z-yKF*(G0;ytR~3`m7p_ZvP_iB7uD5UAGp8~b7B2g{mw+Tj70l_8M95-OlG{8 zo|KlrRz7*=fzzuTs%;!(`7iXacd*Ic=Dt<&PyEiqgcOFeRSgCi@f<6f84fA@YpYOe zYe>Bi$?vAt_SIvv+!+t=)ehCx5`k87XLtF6m?GMmO&cG&jU#Qi+YG7ZyuCOkT_)vaAJVYB># zFHE-w;PAb>Ai&Zo)xNpxX`|SMgHAFt-Nd;UI#(S2#Cbw1N0xtv#3vSxPd%!k z*2)z;&hJ}dnEEodZe@J@{=j+c*2gXD9tQP@RLj-!bNup**s!?L@zH|Ri1J3WCO+ST zTUELjO0Hli(T~-dz;>7G8EdIhS8(9nxg2*4t?o~5R4h4Y`rv6(6i?@Yz>PoUSpKxR zO6@#c{@eCQ+>JBGy>%2@@BC~iHQ6P1FLgzDfMX!aeEqTTsK%QWu@h7`uwB-F&>0rrD9-VZ<=y85hO!1B$Ag@6J|=L! zXIWp_9#hOP^D~2`#FlWDO?O_|GiMxotX;BGbj4%FS-g!p&zVZ?BqS5&@W63Ig;fabK zrwn)JH_qi(TyoA`XT#@@oE__BY`M1O9_h)zvaG_E=^S7?TW$HjoxYh?aa%{bV> zXr#%W71Ml5HQ@PUM&_hNd@6D$9BLV|&pdur(_(yq|G}%016FA-OscF}O5Ijm7d&YH zhK*ZNS()SY>+pc6t*H{MTX-8UMqfI~fBzyMN8bkKwQrd{d;Qk(E_=jXfB0s`ci}ef z`kfMD?2dPM?sYaUY@L{BsHZ>i($58t($XW`RT={Vn)CiOm0BfuZ>+j#lFOc_CiZF8lB%PuSvcm~+b;u4|k>{auU#A3Syr zWZm^E$v)#gd(?C0`GJ=uZb@FSR+ulr#$NH`v6b^Np$j!)YZe~pcu~_ZhvRigL)04u zo~)bA%LF1$7Td4*%;>%8#vyqf_B|OJ_U)6)VSKT#|JX6NwxhWRtZf{O^$%pKE<38n zvnD&HQI_A0&Eq(;;bX>EF%4!jx{aPRePuU{Fc2|rY4~2*Fo$>6SBAtZ=h%dqQ`lNM z86#!3sIy#&j^K_;YHf;?kZ7#AA;)jP`>Nu=w_1g_{}WQ!@*LO`6P`0)%1lgH5cYg= zb(f5D<~ijJ_VNGzoL4y06IF0#h9R>~dTws7VC06#iO2f|#TU!9mW50>>LB&8G>pyL z{pp40&O8e^!y}kw${q_FKHz>31uajl^_S4;3;fsgWg2k2obFGdVRGH{!F0{SH=*X>qqxAQJ zxVJAj!+Dyye14tdTq9w>Sg(wI*M)|k*3LG+qYIuVKlD$u$!in2wJ{>3A;m%Z+{C2? z?|(MT5N5wqvG0U?lUAb3l^bF&-grFutZX)P}3 z`ox{?o~Ylpe}3X5rh@zJ2UzDM{$S1YJ)GL6&hwCG!qU+BjqjeYvPor>S{FUOopn5o z?H{8B=j-PS7xUQpJ8m~V6w`dgq-|?Rg7yAHSpk8wyjHhF%k=bn*uHuw++_^#`hC8k zl7Y#iM&IO0LFqpoNB5r$s`2;BQ+|AW#?WkZ!L$2RE-^v+g|L0NQi4r}= z6r08RO1#l(`fN!(!wAESrd-Qo7mjXdduVaktgV=5+ku!L(;GQcJI~d#-QeNK*w#Fe zv2x{g`-JamRi+pG5A?YiY$)Eyd5@8?)NVnwO@pz5g|++wK2G5jW-H+sedZnC8M9{@ zK05uC<Tn63DJ2Kgp2%AqRyfy}b<3H_{oNrez7w(>N!D5l-u*(BtC@nj*D@b= z$Zgoh_}4zjs(ET~S4Nqc3WuRe#oPpjQj@8NLNtp6SJcFDm@3Y5+Ru8N!^oogo3YHT z=o1@~?p06nZCNykM))W*=a!u;84#{deKEL+gzm@Nsl$ zH@xkLC}EU2*Rmy0LNdYqwa{zn3nwGHJw90N;}VTl&SJbc``kpCMl)uniHS#EdwuYX z@bGfjEU$Hd`Il;mq(mRX`@ zdG^eBf&A`jZ8;&KEbazh-Ulmnc^1^kWc0FUtYt4bd+7TAo{qI|9Sr3Xl)oEaN-Gaw zXQ}+gTq|s~At!l(_=>MD5+V+KocQo=UO+GZ?Kg}(7nWX~pj_;5+4hdZ^@fbkQ+X!j zu3oVA@`5yO;VJ!h7#n9YPGX+*IllFwzVfRM`xT5VL9H_X>>JFd)}KjAu;6&(8quKV z#Oxc&U_I}DgFAycgF>;XR3 z7kvC_3Co)$&#>uzXL`@fcy8Z;%o7)PKREl+p;X6Vua3g3sk{~M**|;}Trly#T7?H^ z_iuP7RTa~GxZUCTW8DqKHP2k^5BIK~Ecq$;U9!q_^#kYHA27_RYRwH}ePWUGXor=m zL1BPI(-$G@1>epdZhm+@@r0Z}#C*wX3tLzPio~7$=Cmf>KcdZJEq5=WAoM~?0DpM8 zgvW$g;wKEMFIBa5a!)t#IK^;XnUUWMy)2yg4O{W0xDYGgs{{|k5e_S*daEpG9dLq}j6gZbMp-)b*>6;clp zG~GTtu(OmEcyi%zD)&a^svBRD-?lvX$j9u)-ZIgF#n?#Yt-zrfkxti2N|czJ*$RG6 z?~ro2a{H}yvpKWMnnd0NJ`H9w=Aw5uliT*!|2LR%LTgcpgTvhZ^K5K9vsznuVm2s- zJ_$3~aLM&$O~aZamlzqpx=z@tSngoQEZyf*l4Y@Nn_OB#-L~n9uG5+w_eox1VQe*D z@sjDNcH>_2fPkOPc~70^y={2w(|%$8Jp;oW`!DSezb=pGvE*D3$sbY7o|VR2AQ@nr zqIp4lfhfDAiNrky=7)A0c26+O=RVAT!LKBsoq0)Y~{~W*)J z44sSDSU1N%c4^CS_irn(HeGa<+#8$h?@xe-^`}{s*x=_=bs#y~l-qlQaHB+C5<9EX8^$uwvSFamvG2M2cm-+71 z11`q{UvJyy%){?}qj4^OfWklbkJDO@#kL7Qe9JQ-;%}!4d)A|adaR9Snqu}>%vZGW zn0T;C>qXn4{XBwe=Sxb})*H{M{?PyMO&nv}V{2Z?KC?6F40pF3WR82na2(>4H6q#aa`dS!$>#darFTj^W{#sF76onP_|1 zl}(Y2u}${C)9`Z1dyM^EW+@TpFC1bhvP=E(t)-J_ko?TT&GnlN;K0UqOIHrR2Ci`S5mBR+rcZJ!44u0vZ zZZxhva8SWbZPM3w%yJth&Uk)UVN1So^Ri0b!*_()CBI!sX*zrH>E8ndAD@X%I^&Z6 zOSzp@!zMvun?sScMY@qdt(Nq`y^0^?xXz@__&m{CX@%jTGk>N(JTHI3hR6Ox&y)M@ z^~M`+Z2~2@)&nnAMjUDX+A)_=a_(1&S+0|g-#pLbbwAFiVOpH%t|$Y87ZFAV61R*E zS{TevCB1AoVwA9L&HelPk14F+xH*M)qT7l{p1pTvM65R0D*Q-ueYAl^dEd4_PE4`_ zYc@XmDivH|J#TaLLt_P(GCK)}+2>k6sB@?+cJR3ntI)cvgO8Ct$d+Rk$U%z3OD$1tk}#LZNeh$?JBpw zoz^9?_O=lZsyk%&;AOGQmnMb+7 zhjXHS3EPjfA8cSOneaBLP56Ln_?p_k;|7kuv>tR{OH}0d5XSnA32Bzg-#Sctg=XbyQ^n=w}O_RPkT2H#s znCWq@tRm-uYH8$&>IXa=pZ>8unX~P1no>h~17PL$q^62O+mcA(Yg2$nf@5(WjT)%V) zRtx6@mof)XNq1L<@zjlI`F+V6f7A{)6t81gxv}RSBjeeoBY9QFK72VN*H-IW$a9YO zw8WAg!Qj6qWCiwh-Q+oRJV>(T&vxTEy5CsXrG6bNe!|C*q0ez5^c+i*_+nwF74sV| zG9Fy7SZKY)ku}6jzUsE+vdIBw8Dh;kuHW=H<>(W@zT|*NkY>?>tGx^OIJQl^q<&x~ z{{)LQpBXptFJ^Aq@+ZswgH5%&?TXa}B@WBZ%|Ba^^xv`VX!kUO1}lXxF;%QZlIG>y zK^q*uXET_`+P}+ZDYuijsUSPy|A8{|MZ$*;H0+RRVLj!R=XSWq&4crAE%gHT1oMybQOZQFT-8;(oPPhFA9 zkZV@YYtucwxp6XM$r`;!CE6~>nagI0rqr{ii@1{DsxyR z>BjiiIiW;T?4d!rq$j6v*-C{spJrV2vE1Us5HhjJY>{}^34xadCnoMbA$`$tF8_qI zOkwf18)wfOo?+}fXr(ycDoFCpa-XCda~_`*FiGb>yw>)!#J&9$9gEnnylg0SN|3(f zc$H*Kg~ltO=qD<$4zX zgrEQ8NqDZzzw15o66P)9zoi-1E;x6*birkliE8N;7vG%r^GRh$oDeww-=D;UUq2@| z#x2+?dgYEonZSyL2hM!huySG};|=cQmbml0-5Zy4Yf1iNjy6!xk-p4W@+@EDnD}ym z&+~OwCopXFoY4?-Y=&RL^Tphm{_M(sRJ1$pJ60*oogROnkKNi?^ssT8)q{6@_H3yS zidH#1Sktc9EYocGAxY9-!FuvR=8FBt~(&&O}YAr z#I>`ny1Sb$T16O%RRoG}`5ZV^jd`A>w{{8p>YgpU49o2PupYT1dHmqq{`v!!Q|b?} z{CjV|LYe8+yykCD91T|flr$+WfB7(W$F^gZmnEKr+?Bkych8vs88L?`g$wkAbz~+S zW}b3t!AU-w%6Uwtye6MNHZg9}XPL5^w;?AWU97B8*>KvS=_!didz)GnJKA6Wzr>mGU5mqV!#9m{dk*`Ym@AOL&wKA9!zyx_WvcnYKtI`)zv@-gL~=(yGTFGV;o<4??|Cv`7wA{cvVSd7agBNBXT~(= z@>!0%%zCL6JH+EW%<8BJYSdQhtE z70aRTpbP69A|BXJ8g|HR`Vh4bc&hEltPsVmkhXn%0~V$b|Y zGU?r42m5K?1uiV@+7ZKTl_q|rkM-h$>I)8E40E~^r}iY=P-ZKB{GCUr>K6}p!|Fp8 zP4b3+BDi;7Zk~9^;NWt3jpyGOuhu;I^+E80a1mF;+xdoxOov$??CXCiuJFCKLCRu5 z?*HHkp~;afy!Zbz27Q;`xwJ3SSAE072;b+&l$S6w6>}>ep1X#x?f-oR?{x>94_^3? z$iyey{4LPfNxZ+=TJa3egumP;9QjfY``=-F#a?dLkSh?t&Svv_;??$&pK@y~Sr-0h z*v+*-vR~few7J0%V-^F4Z#Q*PEzWP4uGoKY65}SNTHOhIn-t}3UN_!&&S)vjy=|dP z(JaxT=gqAP6SOisMOP#<&i>g@<`6OAd$mHTpTk_98#)}f&ahY5ie|`)2HX+5@zCN} z%ZrMJ>*0+|+!}30pBeqwc^+_Ib>!6%^*i+Pui}Q!j9G_n?p~kzKz!D@1=*8ME;!P* za(&i}GP@I+0u9z`5)*>Oimr>@wK=xmUUJ%ZozxDSeZ7fWojDF4FP(5~?=CN`X7@E_ zaj*XyHl^MEXM7;dE@5te{fEP90-F`~a-TO4IX+w9t*q)?r?$td`4q3@N1wgGb>wn+ zjM6C{4`aDYADz+`m%AA?ER$`R#W72oeW}g`%hCn4IR~okBpuo>HcCbMxa^V%;$iYl zba_{EAf_RQV~tHp%8#$yK^G*X>JoQUO_g55F~vS%MxqE$1V_UyoegF$UhFNJanWFn zwZh`fa?ZP-94rlBC{UQp_*3t_szJU{lEDUc2Hy783Ex{9RWQCwNR@F1HgpFxkN2TNGPc%iEp=!yLJJ{5JD0negt2 zx99K_+sn%~kG1lA!(PvJO|EsH?lD_89tb}9K-WoUTJyBH#ujlV^SRA?IHNWRFp4zj z?*GMQGE4gSk5}SP`1n?&9W!J&@#D8S^ImIt`SNW>3jN&o&%9xpzl!CPwsHaQvH$xg z1Ximh2pBrue$sPcVNd`&%bjm&EhSD58qaa;wUB+`FP8ATS@IfNdW1RvYGuS_O~8?h9^swfTH7TD_h}A-0F7 zLz3U^g{E`X*E;M-5xUjG&Rw#sS@IgAl7BpBcv)k?aGv$2_ky0e=HF!szBMyu zKWDz8$oQ7kvBcgZzU%0rg=as!$y z7Vd7a5bbEZmwtm~NxiW`+C+y)d6Rz)`cD_F+0!(=^S?yFd3(niCa>FX4qV<_|L;i} z!$pIy6Cx*ERE^+a=5fpSJTA+qv*7h($4d*epE#O)Vy(GxM52vBV(!-jiBAmIelpzE z>#EaSGE<2C@Y>Ds59)dxKk6>&aMyd0D1Bb>lmxq7&V{)bI-jU~Ima&c{NF#utbN6e zrnVJ4v&<%@SJX0Zc`LZ_rtr0&jGCX`G2ct#v)T7dK0`$=iu>Kl7V!_4 zjN1O+n619xTsvdIeRsu@m!c=OS$c#eT~2-dZ|=hnetshDf8FQFo@Dv9L`79n;+53H ztQmFxmsQX4vt+&{QO%I2zhWUbw`Ra?Zj)$5=AP^6KPL!QKbV)x=60bk^nwc0hPk}A z`WOx?I6G81EdIN|k3HiUi%m0A_R|KD2By_prB5*BYW+XX@T%kwi`Fm3&Tw7%$WUtGP+s0(Hs!Dt=wyVX_3p0rD?T^a+-7`R zpdi2Ubd%ZRgG_G=43tZ49=L}!+Vt)HoX9G}YtMM=HRG!a2W$BaW;#1Qvh&9H#vS^( z{mF+?HrE^TCVXINGY)=cJfkD&l{G8RS^ER$+W%!dXIB2-kav0qn_upPXFB_GpDZ}X zexjlN0>|gl)5#vzTZPl-&9VQll=M>c2H%M{(w}%v*#9unIZ-DdaC6@iCg;>1MrOkW zwzeG$bDq_-t^4BA_Q*4m=TOo*o=2CC@vs*E?!45$`Y_|`35`L*8a@u6H5Vv}mi#by zvBv2_-QlAS(g}0d%xn78Y1F!ytiKJPeJAjwIs>@)W&HiaU0hBSj0>-t-7pV*$3 zsj%epMur-L={C((2bI|ZdGGkL7$!VtHsPMcVWVDOEy>)hzCm`ieDB@5l<)hJcd*@2 zPdGc_$Opz7Q*zlK`58zr5|+63zR^}n$NX*6F8=$CT@JtPCRoeg$a&(%t?=a>d)qw8 z&5{$cul6xURIwHXN8hg7ae3X6?@jK-iKlfO{w}TUSGcsm?cmkzJUs6k7$0%W*~WbL zBIB+5jQ1WN6;BTf)Bav)G2zunm439z0hB882?| z>$Gpy`(P29+ou0u9hY&*Hs&iAoZn?M+}Pm9q5a3=?yEeVxqKDw%-im8Wlm$RUC&;^ z&;I9zmf9CT_7478yp6iMn>Nl|zOINWv{N+a0p{s3?Rtaxw8u;21 z*vjm-xLeCx92VXA(Z}aO^R&;Ys!xnptWGtu={;5_`LL;V`oT)p5)G4#gopp@4Y+qb z=@!g&V<|PZ%8*-9dQ-LSm4@x2ONZ?JSlc{*zcb#zU@UFCp?LSdN1AQrpHIAQP$;)a z$eEy=$G{no#q4Kf%&`7YD#O{j1}la7g?cW0&H?HyDtxaS6qaX{m9#1xz2CSzqM)ul zg`urpqVC+8pDa3DKP9(>*{0ms_t(_owx9izXGBOZYg4XXN7HQKClYyn z2ewGs@~m5zo?yU!?{sOcGV@{16MKt!I(M*ZNuFc!_hc%yduFIGO}F8OCy)HWX=_>M z*-P?lYnjMcyMlMyd*&_QA4_jgdva)#O0#rk!h7uryit+GFJHT|+2$>oDf4Bo;&H*( zyR6v~UWzJBN#tdE(8E-+jOkh%!`5X&=FTDi7*FN0#ZA1!9ux6jY6p8fhlTW2o;}-^ z9hlOXXu9F65PwLyR%4@M{2a!8mzb^;FqB#}u$wnZXDb;0`_kNZ<}aI_pZKMZ4QDG9 zGA8`UPjF_v!r8b%(R=kjqXSlwZ$4C8J5<{!c&~9Nny|Q3+G>K8+yY6Sp0iIgHp`y) zZ9O5~=0LT*gRDrzab_>$h2<6#td)Ft#15pCOcLBw^45OKW5z{aStU-M4m(-NvzklD z;7il4zUaoe{jV;bW4~9x`u4$&6Al@S0*5%hYm~OFJ)PfpS;wqdTyGbfohbK}rwp=_ z8|)r`l&|3uD~J?hPH}s}Z=k$D?{L%EHi79fRgYvOTe@#a*46zz@*y?N+B1`5@8QNf z_6aUrlMPgY9Z#=I*!}UJ!Gd@4jG}@HJg;gL${ifi3J*_X_a_(Z`Z{l6^JC`2cZ!vGy1AZ8ME%`o$iY?Az{@aIdE4Uf1_K^3hAjW)Z<`lw zpD5{Okf3<<{enK$g?wBmY`#Q_Ot{f2ZT=uEaQ9@VYaNz{H6(Hr8D7^26h|~j6}&&V z_WKFxi;|g-WOHOCbEfm_9V$AQAoE2#Kr4tmm@-BsP?~)H$2aZ_c<-E5E<-_Lau(^32KYvKq{XHgGcw&OViR z{H2*`!?e(Y2EU#ay_lr^V;=vDHSFA%-mrgqD)T~?U+sw>N7QrXnq8vCCC8dMH~nPw zn8|$kZ>F2ajdTg`Glr{GzX7NZ* zyMJsI^A?xa_ROD(v|ZAfiNzxI8{TbhEOY+n{9>1Axa2IQEuBSIZ}0Qk^osR~ z9fO%!#^QgO3r=p}JDR6ZEh^A_B#-gs{)}yheu*tmjpzxeRfu|E9%5+b?U44TU6SSX zHwTt|4B-l&Kb$a3`B!yh!|nIBhi4Vow)x+eGg!0UX)fczjaJhVMRSqO*_r!d-_RWj^)PFrrR6tWcVdMXMPmfq4=bv&Y_oOLSDpjX1C@u zt!L{Va0LWBe|))}pJ&6l<8A%#B@#Bv|9JQB#h&j|7kWm@Bf&x@6QL zlgzMnhkr3|$c;GhmwAH33md%@!vwQ*hP556r5+nf?HpwJXH-S7yNHw|YkyLGzTq63 zkK&1P1+xNucINlt8ETDZ_Q>u1I3e-&ws4-ZvIVMN7F16E&y(AzFWGmOJ#zwcyTOXj zAAf9QI(%zu?1zF$Q>U_Se){Bz!4U_h6OVWnH@s40u%0DuB5YKprOnLDz4x+&>Rgd8 ze>D{Ba?Dt-G|0}qB{fTx?U&*1BR`n-3Cc#y%4SV%+S*_x|DtN6=>gmH`3V;0Cz}qg zeQSAmcKUZomnBmq>}>Cz++fK3x-yjKiOHkRKF%r8=L$`BC791{=2cym*yhR`daHOv z+nux@-4D;IAGpb{%Y4Eu@TjS_B-4*p3BS6k^9kqLcQ~`$e&Zg@n%436xL`- z+J`v)falCDir#AkHp|&A%`lcaA8);JlEYlq#FPbf?4mcD zPssA;%oPZ@`Gwz;`Go0!>oTIiB)fH>)i^zN#?%BMfgbSOr*>psWUp)L0Ds=E1`wiFCJ0J4>X4)?_qjBNHg}n>g7tVTUd?|46Rc4#tg^U$`jQklM!f&;t zZY<%=+09+C*^>Foir5wJ9b|=PxF^2tI)C7BUcy}d4|V(tSk?$LEo+ogn9CQI(B3@v zA%8`us4(-A#|K&7w>0!!Z9QSgJU!j8(R`}^8OC!d8=R(xZB)utNOz2@YTdHEnYHp6 zbLPscIS)><-frmjDT`s9mn3lNKtTyVv$HcFv$M^IMd!8zv9-A$n7#Zx)AXBFY{mu) z%Iy+r3YIhPx+qhtu4iylHnnBR%l{!c(eIe0B6;7Gyg5)5!E~5|aef=p*ZGWSm8|`3uYH(*q z(VT%=}s#9i>=U`{f&+M~>*^W5wDoun6hfr~wLoMwIKsFm4arD#z4|3XZoF6ZG> zAp*L;I~y5K?<;E2e6d)6e#28``8QA8C%pVG`QwL#MBLtgCktL%zIY%~`Qq$zj_JRD z=B8Bq-6eiBbweL>5&NNAx1^MLHkO7sbS2E43Oe59Yr^Xl4Jw75#yw1IH-gqow97d6 z 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 Hr-UW|)07*@ literal 0 HcmV?d00001