From 3645244f9fc1874e72252138ca4ed0ab849a2fd9 Mon Sep 17 00:00:00 2001 From: Justin <72092018+27justin@users.noreply.github.com> Date: Tue, 31 Oct 2023 20:13:12 +0100 Subject: [PATCH] examples/shaders: Add an example for deferred shading (#3496) * add example for deferred rendering/shading * adapt convention --------- Co-authored-by: 27justin --- examples/Makefile | 3 +- examples/Makefile.Web | 3 +- examples/README.md | 9 +- .../shaders/glsl330/deferred_shading.fs | 55 +++ .../shaders/glsl330/deferred_shading.vs | 11 + .../resources/shaders/glsl330/gbuffer.fs | 22 ++ .../resources/shaders/glsl330/gbuffer.vs | 24 ++ examples/shaders/shaders_deferred_render.c | 321 ++++++++++++++++++ examples/shaders/shaders_deferred_render.png | Bin 0 -> 90692 bytes 9 files changed, 442 insertions(+), 6 deletions(-) create mode 100644 examples/shaders/resources/shaders/glsl330/deferred_shading.fs create mode 100644 examples/shaders/resources/shaders/glsl330/deferred_shading.vs create mode 100644 examples/shaders/resources/shaders/glsl330/gbuffer.fs create mode 100644 examples/shaders/resources/shaders/glsl330/gbuffer.vs create mode 100644 examples/shaders/shaders_deferred_render.c create mode 100644 examples/shaders/shaders_deferred_render.png diff --git a/examples/Makefile b/examples/Makefile index 5af5a5590..fe0ee9fbd 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -562,7 +562,8 @@ SHADERS = \ shaders/shaders_mesh_instancing \ shaders/shaders_multi_sample2d \ shaders/shaders_write_depth \ - shaders/shaders_hybrid_render + shaders/shaders_hybrid_render \ + shaders/shaders_deferred_render AUDIO = \ audio/audio_module_playing \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 9c2cadc37..c57453ab3 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -468,7 +468,8 @@ SHADERS = \ shaders/shaders_mesh_instancing \ shaders/shaders_multi_sample2d \ shaders/shaders_write_depth \ - shaders/shaders_hybrid_render + shaders/shaders_hybrid_render \ + shaders/shaders_deferred_render AUDIO = \ audio/audio_module_playing \ diff --git a/examples/README.md b/examples/README.md index 82e4b7825..0fed8acd0 100644 --- a/examples/README.md +++ b/examples/README.md @@ -176,6 +176,7 @@ Examples using raylib shaders functionality, including shaders loading, paramete | 114 | [shaders_mesh_instancing](shaders/shaders_mesh_instancing.c) | shaders_mesh_instancing | ⭐️⭐️⭐️⭐️ | 3.7 | **4.2** | [seanpringle](https://github.com/seanpringle) | | 115 | [shaders_multi_sample2d](shaders/shaders_multi_sample2d.c) | shaders_multi_sample2d | ⭐️⭐️☆☆ | 3.5 | 3.5 | [Ray](https://github.com/raysan5) | | 116 | [shaders_spotlight](shaders/shaders_spotlight.c) | shaders_spotlight | ⭐️⭐️☆☆ | 2.5 | 3.7 | [Chris Camacho](https://github.com/codifies) | +| 117 | [shaders_deferred_render](shaders/shaders_deferred_render.c) | shaders_deferred_render | ⭐️⭐️⭐️⭐️ | 4.5 | 4.5 | [Justin Andreas Lacoste](https://github.com/27justin) | ### category: audio @@ -183,10 +184,10 @@ Examples using raylib audio functionality, including sound/music loading and pla | ## | example | image | difficulty
level | version
created | last version
updated | original
developer | |----|----------|--------|:-------------------:|:------------------:|:------------------:|:----------| -| 117 | [audio_module_playing](audio/audio_module_playing.c) | audio_module_playing | ⭐️☆☆☆ | 1.5 | 3.5 | [Ray](https://github.com/raysan5) | -| 118 | [audio_music_stream](audio/audio_music_stream.c) | audio_music_stream | ⭐️☆☆☆ | 1.3 | **4.2** | [Ray](https://github.com/raysan5) | -| 119 | [audio_raw_stream](audio/audio_raw_stream.c) | audio_raw_stream | ⭐️⭐️⭐️☆ | 1.6 | **4.2** | [Ray](https://github.com/raysan5) | -| 120 | [audio_sound_loading](audio/audio_sound_loading.c) | audio_sound_loading | ⭐️☆☆☆ | 1.1 | 3.5 | [Ray](https://github.com/raysan5) | +| 118 | [audio_module_playing](audio/audio_module_playing.c) | audio_module_playing | ⭐️☆☆☆ | 1.5 | 3.5 | [Ray](https://github.com/raysan5) | +| 119 | [audio_music_stream](audio/audio_music_stream.c) | audio_music_stream | ⭐️☆☆☆ | 1.3 | **4.2** | [Ray](https://github.com/raysan5) | +| 120 | [audio_raw_stream](audio/audio_raw_stream.c) | audio_raw_stream | ⭐️⭐️⭐️☆ | 1.6 | **4.2** | [Ray](https://github.com/raysan5) | +| 121 | [audio_sound_loading](audio/audio_sound_loading.c) | audio_sound_loading | ⭐️☆☆☆ | 1.1 | 3.5 | [Ray](https://github.com/raysan5) | ### category: others diff --git a/examples/shaders/resources/shaders/glsl330/deferred_shading.fs b/examples/shaders/resources/shaders/glsl330/deferred_shading.fs new file mode 100644 index 000000000..c9c6a313f --- /dev/null +++ b/examples/shaders/resources/shaders/glsl330/deferred_shading.fs @@ -0,0 +1,55 @@ +#version 330 core +out vec4 finalColor; + +in vec2 texCoord; +in vec2 texCoord2; + +uniform sampler2D gPosition; +uniform sampler2D gNormal; +uniform sampler2D gAlbedoSpec; + +struct Light { + int enabled; + int type; // Unused in this demo. + vec3 position; + vec3 target; // Unused in this demo. + vec4 color; +}; + +const int NR_LIGHTS = 4; +uniform Light lights[NR_LIGHTS]; +uniform vec3 viewPosition; + +const float QUADRATIC = 0.032; +const float LINEAR = 0.09; + +void main() { + vec3 fragPosition = texture(gPosition, texCoord).rgb; + vec3 normal = texture(gNormal, texCoord).rgb; + vec3 albedo = texture(gAlbedoSpec, texCoord).rgb; + float specular = texture(gAlbedoSpec, texCoord).a; + + vec3 ambient = albedo * vec3(0.1f); + vec3 viewDirection = normalize(viewPosition - fragPosition); + + for(int i = 0; i < NR_LIGHTS; ++i) + { + if(lights[i].enabled == 0) continue; + vec3 lightDirection = lights[i].position - fragPosition; + vec3 diffuse = max(dot(normal, lightDirection), 0.0) * albedo * lights[i].color.xyz; + + vec3 halfwayDirection = normalize(lightDirection + viewDirection); + float spec = pow(max(dot(normal, halfwayDirection), 0.0), 32.0); + vec3 specular = specular * spec * lights[i].color.xyz; + + // Attenuation + float distance = length(lights[i].position - fragPosition); + float attenuation = 1.0 / (1.0 + LINEAR * distance + QUADRATIC * distance * distance); + diffuse *= attenuation; + specular *= attenuation; + ambient += diffuse + specular; + } + + finalColor = vec4(ambient, 1.0); +} + diff --git a/examples/shaders/resources/shaders/glsl330/deferred_shading.vs b/examples/shaders/resources/shaders/glsl330/deferred_shading.vs new file mode 100644 index 000000000..f2b1bd7c4 --- /dev/null +++ b/examples/shaders/resources/shaders/glsl330/deferred_shading.vs @@ -0,0 +1,11 @@ +#version 330 core + +layout (location = 0) in vec3 vertexPosition; +layout (location = 1) in vec2 vertexTexCoord; + +out vec2 texCoord; + +void main() { + gl_Position = vec4(vertexPosition, 1.0); + texCoord = vertexTexCoord; +} diff --git a/examples/shaders/resources/shaders/glsl330/gbuffer.fs b/examples/shaders/resources/shaders/glsl330/gbuffer.fs new file mode 100644 index 000000000..c86e20a9e --- /dev/null +++ b/examples/shaders/resources/shaders/glsl330/gbuffer.fs @@ -0,0 +1,22 @@ +#version 330 core +layout (location = 0) out vec3 gPosition; +layout (location = 1) out vec3 gNormal; +layout (location = 2) out vec4 gAlbedoSpec; + +in vec3 fragPosition; +in vec2 fragTexCoord; +in vec3 fragNormal; + +uniform sampler2D diffuseTexture; +uniform sampler2D specularTexture; + +void main() { + // store the fragment position vector in the first gbuffer texture + gPosition = fragPosition; + // also store the per-fragment normals into the gbuffer + gNormal = normalize(fragNormal); + // and the diffuse per-fragment color + gAlbedoSpec.rgb = texture(diffuseTexture, fragTexCoord).rgb; + // store specular intensity in gAlbedoSpec's alpha component + gAlbedoSpec.a = texture(specularTexture, fragTexCoord).r; +} diff --git a/examples/shaders/resources/shaders/glsl330/gbuffer.vs b/examples/shaders/resources/shaders/glsl330/gbuffer.vs new file mode 100644 index 000000000..7d264ba64 --- /dev/null +++ b/examples/shaders/resources/shaders/glsl330/gbuffer.vs @@ -0,0 +1,24 @@ +#version 330 core +layout (location = 0) in vec3 vertexPosition; +layout (location = 1) in vec2 vertexTexCoord; +layout (location = 2) in vec3 vertexNormal; + +out vec3 fragPosition; +out vec2 fragTexCoord; +out vec3 fragNormal; + +uniform mat4 matModel; +uniform mat4 matView; +uniform mat4 matProjection; + +void main() +{ + vec4 worldPos = matModel * vec4(vertexPosition, 1.0); + fragPosition = worldPos.xyz; + fragTexCoord = vertexTexCoord; + + mat3 normalMatrix = transpose(inverse(mat3(matModel))); + fragNormal = normalMatrix * vertexNormal; + + gl_Position = matProjection * matView * worldPos; +} diff --git a/examples/shaders/shaders_deferred_render.c b/examples/shaders/shaders_deferred_render.c new file mode 100644 index 000000000..58d4b1dd9 --- /dev/null +++ b/examples/shaders/shaders_deferred_render.c @@ -0,0 +1,321 @@ +/******************************************************************************************* +* +* raylib [shaders] example - deferred rendering +* +* NOTE: This example requires raylib OpenGL 3.3 or ES 3 versions. +* +* Example originally created with raylib 4.5, last time updated with raylib 4.5 +* +* Example contributed by Justin Andreas Lacoste (@27justin) and reviewed by Ramon Santamaria (@raysan5) +* +* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified, +* BSD-like license that allows static linking with closed source software +* +* Copyright (c) 2023 Justin Andreas Lacoste (@27justin) +* +********************************************************************************************/ + +#include +#include + +#include "raylib.h" +#include "rlgl.h" + +#include "raymath.h" + +#define RLIGHTS_IMPLEMENTATION +#include "rlights.h" + +#if defined(PLATFORM_DESKTOP) + #define GLSL_VERSION 330 +#else // PLATFORM_ANDROID, PLATFORM_WEB + #define GLSL_VERSION 100 +#endif + +typedef struct { + unsigned int framebuffer; + + unsigned int positionTexture; + unsigned int normalTexture; + unsigned int albedoSpecTexture; + + unsigned int depthRenderbuffer; +} GBuffer; + +int main(void) { + // Initialization + // ------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [shaders] example - deferred render"); + + Camera camera = { 0 }; + camera.position = (Vector3){ 5.0f, 4.0f, 5.0f }; // Camera position + camera.target = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera looking at point + camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) + camera.fovy = 60.0f; // Camera field-of-view Y + camera.projection = CAMERA_PERSPECTIVE; // Camera projection type + + // Load plane model from a generated mesh + Model model = LoadModelFromMesh(GenMeshPlane(10.0f, 10.0f, 3, 3)); + Model cube = LoadModelFromMesh(GenMeshCube(2.0f, 2.0f, 2.0f)); + + // Load geometry buffer (G-buffer) shader and deferred shader + Shader gbufferShader = LoadShader("resources/shaders/glsl330/gbuffer.vs", + "resources/shaders/glsl330/gbuffer.fs"); + + Shader deferredShader = LoadShader("resources/shaders/glsl330/deferred_shading.vs", + "resources/shaders/glsl330/deferred_shading.fs"); + deferredShader.locs[SHADER_LOC_VECTOR_VIEW] = GetShaderLocation(deferredShader, "viewPosition"); + + // Initialize the G-buffer + GBuffer gBuffer = { 0 }; + gBuffer.framebuffer = rlLoadFramebuffer(screenWidth, screenHeight); + + if(!gBuffer.framebuffer) + { + TraceLog(LOG_WARNING, "Failed to create framebuffer"); + exit(1); + } + rlEnableFramebuffer(gBuffer.framebuffer); + + // Since we are storing position and normal data in these textures, + // we need to use a floating point format. + gBuffer.positionTexture = rlLoadTexture(NULL, screenWidth, screenHeight, RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32, 1); + + gBuffer.normalTexture = rlLoadTexture(NULL, screenWidth, screenHeight, RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32, 1); + // Albedo (diffuse color) and specular strength can be combined into one texture. + // The color in RGB, and the specular strength in the alpha channel. + gBuffer.albedoSpecTexture = rlLoadTexture(NULL, screenWidth, screenHeight, RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, 1); + + // Activate the draw buffers for our framebuffer + rlActiveDrawBuffers(3); + + // Now we attach our textures to the framebuffer. + rlFramebufferAttach(gBuffer.framebuffer, gBuffer.positionTexture, RL_ATTACHMENT_COLOR_CHANNEL0, RL_ATTACHMENT_TEXTURE2D, 0); + rlFramebufferAttach(gBuffer.framebuffer, gBuffer.normalTexture, RL_ATTACHMENT_COLOR_CHANNEL1, RL_ATTACHMENT_TEXTURE2D, 0); + rlFramebufferAttach(gBuffer.framebuffer, gBuffer.albedoSpecTexture, RL_ATTACHMENT_COLOR_CHANNEL2, RL_ATTACHMENT_TEXTURE2D, 0); + + // Finally we attach the depth buffer. + gBuffer.depthRenderbuffer = rlLoadTextureDepth(screenWidth, screenHeight, true); + rlFramebufferAttach(gBuffer.framebuffer, gBuffer.depthRenderbuffer, RL_ATTACHMENT_DEPTH, RL_ATTACHMENT_RENDERBUFFER, 0); + + // Make sure our framebuffer is complete. + // NOTE: rlFramebufferComplete() automatically unbinds the framebuffer, so we don't have + // to rlDisableFramebuffer() here. + if(rlFramebufferComplete(gBuffer.framebuffer) != true) + { + TraceLog(LOG_WARNING, "Framebuffer is not complete"); + exit(1); + } + + // Now we initialize the sampler2D uniform's in the deferred shader. + // We do this by setting the uniform's value to the color channel slot we earlier + // bound our textures to. + rlEnableShader(deferredShader.id); + + rlSetUniformSampler(rlGetLocationUniform(deferredShader.id, "gPosition"), 0); + rlSetUniformSampler(rlGetLocationUniform(deferredShader.id, "gNormal"), 1); + rlSetUniformSampler(rlGetLocationUniform(deferredShader.id, "gAlbedoSpec"), 2); + + rlDisableShader(); + + // Assign out lighting shader to model + model.materials[0].shader = gbufferShader; + cube.materials[0].shader = gbufferShader; + + // Create lights + //-------------------------------------------------------------------------------------- + Light lights[MAX_LIGHTS] = { 0 }; + lights[0] = CreateLight(LIGHT_POINT, (Vector3){ -2, 1, -2 }, Vector3Zero(), YELLOW, deferredShader); + lights[1] = CreateLight(LIGHT_POINT, (Vector3){ 2, 1, 2 }, Vector3Zero(), RED, deferredShader); + lights[2] = CreateLight(LIGHT_POINT, (Vector3){ -2, 1, 2 }, Vector3Zero(), GREEN, deferredShader); + lights[3] = CreateLight(LIGHT_POINT, (Vector3){ 2, 1, -2 }, Vector3Zero(), BLUE, deferredShader); + + const int MAX_CUBES = 30; + const float CUBE_SCALE = 0.25; + Vector3 cubePositions[MAX_CUBES]; + float cubeRotations[MAX_CUBES]; + for(int i = 0; i < MAX_CUBES; i++) + { + cubePositions[i] = (Vector3) { + .x = (float)(rand() % 10) - 5, + .y = (float)(rand() % 5), + .z = (float)(rand() % 10) - 5, + }; + cubeRotations[i] = (float)(rand() % 360); + } + + enum { + POSITION, + NORMAL, + ALBEDO, + DEFERRED_SHADING + } activeTexture = DEFERRED_SHADING; + + rlEnableDepthTest(); + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //--------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) + { + // Update + //---------------------------------------------------------------------------------- + UpdateCamera(&camera, CAMERA_ORBITAL); + + // Update the shader with the camera view vector (points towards { 0.0f, 0.0f, 0.0f }) + float cameraPos[3] = { camera.position.x, camera.position.y, camera.position.z }; + SetShaderValue(deferredShader, deferredShader.locs[SHADER_LOC_VECTOR_VIEW], cameraPos, SHADER_UNIFORM_VEC3); + + // Check key inputs to enable/disable lights + if (IsKeyPressed(KEY_Y)) { 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; } + + // Check key inputs to switch between G-buffer textures + if(IsKeyPressed(KEY_ONE)) activeTexture = POSITION; + if(IsKeyPressed(KEY_TWO)) activeTexture = NORMAL; + if(IsKeyPressed(KEY_THREE)) activeTexture = ALBEDO; + if(IsKeyPressed(KEY_FOUR)) activeTexture = DEFERRED_SHADING; + + + // Update light values (actually, only enable/disable them) + for (int i = 0; i < MAX_LIGHTS; i++) UpdateLightValues(deferredShader, lights[i]); + //---------------------------------------------------------------------------------- + + // Draw + // --------------------------------------------------------------------------------- + BeginDrawing(); + // Draw to the geometry buffer by first activating it. + rlEnableFramebuffer(gBuffer.framebuffer); + rlClearScreenBuffers(); // Clear color & depth buffer + + rlDisableColorBlend(); + BeginMode3D(camera); + // NOTE: + // We have to use rlEnableShader here. `BeginShaderMode` or thus `rlSetShader` + // will not work, as they won't immediately load the shader program. + rlEnableShader(gbufferShader.id); + // When drawing a model here, make sure that the material's shaders + // are set to the gbuffer shader! + DrawModel(model, Vector3Zero(), 1.0f, WHITE); + DrawModel(cube, (Vector3) { 0.0, 1.0f, 0.0 }, 1.0f, WHITE); + + for(int i = 0; i < MAX_CUBES; i++) + { + Vector3 position = cubePositions[i]; + + DrawModelEx(cube, position, (Vector3) { 1, 1, 1 }, cubeRotations[i], (Vector3) { CUBE_SCALE, CUBE_SCALE, CUBE_SCALE }, WHITE); + } + + rlDisableShader(); + EndMode3D(); + rlEnableColorBlend(); + + // Go back to the default framebuffer (0) and draw our deferred shading. + rlDisableFramebuffer(); + rlClearScreenBuffers(); // Clear color & depth buffer + + switch(activeTexture) + { + case DEFERRED_SHADING: + BeginMode3D(camera); + rlDisableColorBlend(); + rlEnableShader(deferredShader.id); + // Activate our g-buffer textures + // These will now be bound to the sampler2D uniforms `gPosition`, `gNormal`, + // and `gAlbedoSpec` + rlActiveTextureSlot(0); + rlEnableTexture(gBuffer.positionTexture); + rlActiveTextureSlot(1); + rlEnableTexture(gBuffer.normalTexture); + rlActiveTextureSlot(2); + rlEnableTexture(gBuffer.albedoSpecTexture); + + // Finally, we draw a fullscreen quad to our default framebuffer + // This will now be shaded using our deferred shader + rlLoadDrawQuad(); + rlDisableShader(); + rlEnableColorBlend(); + EndMode3D(); + + // As a last step, we now copy over the depth buffer from our g-buffer to the + // default framebuffer. + glBindFramebuffer(GL_READ_FRAMEBUFFER, gBuffer.framebuffer); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); + glBlitFramebuffer(0, 0, screenWidth, screenHeight, 0, 0, screenWidth, screenHeight, GL_DEPTH_BUFFER_BIT, GL_NEAREST); + rlDisableFramebuffer(); + + // Since our shader is now done and disabled, we can draw our lights in default + // forward rendering + BeginMode3D(camera); + rlEnableShader(rlGetShaderIdDefault()); + for(int i = 0; i < MAX_LIGHTS; i++) + { + if(lights[i].enabled) DrawSphereEx(lights[i].position, 0.2f, 8, 8, lights[i].color); + else DrawSphereWires(lights[i].position, 0.2f, 8, 8, ColorAlpha(lights[i].color, 0.3f)); + } + rlDisableShader(); + EndMode3D(); + DrawText("FINAL RESULT", 10, screenHeight - 30, 20, DARKGREEN); + break; + case POSITION: + DrawTextureRec((Texture2D) { + .id = gBuffer.positionTexture, + .width = screenWidth, + .height = screenHeight, + }, (Rectangle) { 0, 0, screenWidth, -screenHeight }, Vector2Zero(), RAYWHITE); + DrawText("POSITION TEXTURE", 10, screenHeight - 30, 20, DARKGREEN); + break; + case NORMAL: + DrawTextureRec((Texture2D) { + .id = gBuffer.normalTexture, + .width = screenWidth, + .height = screenHeight, + }, (Rectangle) { 0, 0, screenWidth, -screenHeight }, Vector2Zero(), RAYWHITE); + DrawText("NORMAL TEXTURE", 10, screenHeight - 30, 20, DARKGREEN); + break; + + case ALBEDO: + DrawTextureRec((Texture2D) { + .id = gBuffer.albedoSpecTexture, + .width = screenWidth, + .height = screenHeight, + }, (Rectangle) { 0, 0, screenWidth, -screenHeight }, Vector2Zero(), RAYWHITE); + DrawText("ALBEDO TEXTURE", 10, screenHeight - 30, 20, DARKGREEN); + break; + } + + DrawFPS(10, 10); + + DrawText("Use keys [Y][R][G][B] to toggle lights", 10, 40, 20, DARKGRAY); + DrawText("Use keys [1]-[4] to switch between G-buffer textures", 10, 70, 20, DARKGRAY); + EndDrawing(); + // ----------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadModel(model); // Unload the models + UnloadModel(cube); + + UnloadShader(deferredShader); // Unload shaders + UnloadShader(gbufferShader); + + // Unload geometry buffer and all attached textures + rlUnloadFramebuffer(gBuffer.framebuffer); + rlUnloadTexture(gBuffer.positionTexture); + rlUnloadTexture(gBuffer.normalTexture); + rlUnloadTexture(gBuffer.albedoSpecTexture); + rlUnloadTexture(gBuffer.depthRenderbuffer); + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + diff --git a/examples/shaders/shaders_deferred_render.png b/examples/shaders/shaders_deferred_render.png new file mode 100644 index 0000000000000000000000000000000000000000..44129f0ff0ecb67f96e04d841e6e23c220f21dc8 GIT binary patch literal 90692 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYU_8XZ#K6EXgVAa}0|Uc_)CkWsPfsld4h9AW zE(Qih76wKJ1_lLY1_nkb`w$}o0}~@N12Y2yLmLAFgAgM#SPe*>6eBB`-NV4ZAPr?t zVPIg;fT{u6WXQt|3jARxEG-NwnJDysx=7TKih?`+<=^GX-!s&2 zJ{7WAopHsi)RZ7k#p&^)P3t)lSp<(5=o$vk7d~oYbNsq(P0il!&pPjm>-*}KCKw%1 z7f_#(7jZ=Ti1F-c=PKu0oH{khsm9MH?*eP5{7${ye~#^ZvSEI@TW?OvnXt{BnMWX}i4cGqATGi0IsO-S*zy>vwPOPrvo|F9T~|(Zjz<+dnWc z@K$7oM3hAM`dB6B=jtV<#8IXksPAt^OIGtXA({qFrr3YjUk zO5vuy2EGN(sTr9bRYj@6RemAKRoTgwDN6QsTs9R}6}bhusU?XD6}dTi#a0!zN?>!X z@`|lM!um=IU?nBlwn`Dc0SeCfMX3rVdM0`Xx~>(OWkyPNTnaWtDQQ+gE^bgGic->S zl`=|73as??%gf94%8m8%i_-NCEiEne4UF`SjC6}q(sYX}^GXscbn}XpK}JB#a7isr zF3Kz@$;{7F0GXMXlwVq6tE9xGpr8OXydt;2*B5SlUNJNjlJj%*D-sLz4fPE4b942P zbrhGlmX+YwQ5;fPkg6Y)TAW{6l$`2XmYP?hjBG?oGF*Q_X;BW?J1NQfsX3{+sd**E z`i6RjC{}`U99#z|2+}ii3&6T6atlyYmSm}AAQ`ZCkR4KyTL3o~MK#RtV8!4t zvU15!E(JNy)5TT^WWQBPesX4t6_{yck!YA=X_lgEV49YsYhs*Yp=)WBWT|VMnwXSo zW|o?iW@LzDlxJRXNn&1dD#)mc+ycGK%oM9MLrddCBl9#}<3tl9U6T}ZOWh>1R0G|l z#6*iU0}Hd1M2lo3Bm9dp(=+oDbC6vHGAboA#mdCk(9+Pv+*CK&+|W$dB-tWO*CN>{ zSvM)o($d7x%+SC*B?)X)O0tz(eo<~>iLFv*Zen_>enDP3SOOH_R*nIlwn|2N1_+UW zoWzo}{Gwc2C7;Z^(h7t`NM>$oa7iL4G!4xxEzHf#%*+f8EX*uS%@K;iQj3Z+^YcJv zg3C^@3@BQx{EISE^GXsy>C{#U9#B@!MX8A;`9&f5`8l>qASZ!KU9h%_+yX1#)RM%M z#F9jp#FA87B}6$K0xO5L4GgUeAkGJ?&riurt0bh_4wN};AW`m-SzMA|R0$S>iAhytWS#*Rw? zA{ON0X2)ft4=(9Ir5?mUP^m*p42=s~TA`pYY6(f7OWMU|?WN@^*J&5M~f$P)~cS1?s|c7I;J!Gca%q zgD@k*tT_@43=Hfgp1!W^&$;CJRn-sw`s2*Npuphi;uunK>&@Qs8kws*kN>rKekNyP z%IbA@R_8D)vPB<>aOhHQI=E%a_g`+Oj;aVaB~@`UGPO*b@Ju91C~AYuk|W>unsess zEn;yl(my70dfBZI=4B@)#i%5&En7b4d;iV3bLY;TIX8FHsn35u7_Pp#IX&&%oS8q* zzOOtd$=0E%{(YS5qq~e)goaf>nWDDPU^?kG0_R^m#Cxdz@U7vqGDHLSf0dWk&9AMLWv>UfWogr`o&T+QI z3ft(J4;5ek=H)*XCJ5HTq}^B`Kk<3`m3dox%Kt{P_Wz$0d2&~%GP8?FQ;Pz~{2nix z<=P+kw$EJrZPT=iwy)XcFV{Vb654!n>qOg&8qfEvTeog~{`Lv0zbw4Vuw)A;btIkP z(0Q~#M(Bv=WHrS_4-(5xXzrd@AMm=q-$V>-qLPK_!47McIn$?4S61TU{bj%E$CH!I z)#Zw(oO**EgZy-4MT5*5!7`gk-$Gw8u&%n%^t55k@09aeWq3!x|lMBsaRMoH)ME zs88n8QeO9eFAvQx-TSeKqj3JJrkQ{CJ$F9R5Wv2&5@gq-2Y2qTTTC~php}PZ>*(!ytPHn> zf|CoM_;Sy(TK9H>%E<_!-s9(Ds-yEuUcAi+VV~fjGi94{#Ddpc<$X7`^#sN^IA(L_WJy) zS1T7TT*%DMSCM0x>@)4DYquC@$pf&{wff-`gGTZw};N0 z(N#R+GxP4R-urW|e%rmSmRsP9|EcxL&9@duf6x1=&5)KiyZqPmmj<~vHYkd4$(G+K zyjLCNk$brEj=NvK*1Ksb*QRCvtvl7f?(;+ijz0S+k zqLsf^tXFtE^LE+^)92?V-Z415T0%~6 zpd2VHBa?VK;@%>T)UR7+xL8T^)f@b@$W0CsF>2DfMp?wpFh>liKNR)|gr|)oM!&6AKH=0n3LM zb~_s~I2_BK{cmxQ_}%k=)Q?p6ObQb})n)qqbZI;T-^6By4}nFU(YdVxT&*&<_kU0h z^*Foq^=G^K)Do4)JGd49tSI|`J2_X9Je;}Jt zk$chF^QM7r?leGuFZOuyWf_7{L7&rU|BS0&zJk(@_%wO?Am+q!t&3C z&Rl=~2)ipDIGdkuY?if6 zU+coZxqUy+*?zCR_K-dHAz%Cv!uaColiKKM!1U#lP}@UB9ndQr zpE|kB^yY|=owwm#wD|ne|L^DDy_}zts`z-T_kZPGFYUMPwdU!adf6s)#-(~5hBkrQ zYQAT#Y*1uO|0X+u<-o#jMu%B3yEnYO_gR0J0E3m46~lt9TemJ>e!PrhTmJodl{z`n z!6yXu_dH9Q`tdSzZ@i?|DYMsWlCPiI`i$vxO732#a|%rg9fi6Z+88gh8`)1$dc1rG zhvKGR>2+^bd!)KN+q9O=IfT(6b%l`N>O-NzO~QNDupS6dxKZ})XZpSB=kFFe1_(GP zOjk2s`{v%3dsiZkerlZaM$g1YKhn=9NdNRE70=h#*KeO168iOZ{Qq6+UORETUmW8h zuK{*Yf3*IiIp=2@FaNODF5)++l4CkO-9K5B@!n2ZyZk5H=I~$MeQFnPB?s&K+K=_Y zhQ>2{ekYZd-ul8dr}*}o@N?45IVb<9=7w*T{Jbr^P3yhQZ@-zR85X?goY-7mr)|2< zK==P$&*WC-gWvMw7i7G8bzl9sL{VkY<^ARPzcz0xZ~tGpN=9UZK>GK0&#e}z+Ho*g zIYq~^GR(PK-C+GRNm6*-t!XwN4lu6{Uw?0N`gsc*yH{Ty zI=I0wzxtMjQ%mQg?r7KM#~Xa8g*pBF2<)pzTaa z&i$*iPG&ux=5yF+vvKjc>3Xrd^6pwiPLrMdp>6)7d5$cO0*}KJB5P-v*dKP!b6+O# z@q*{GeCLH1HXfJbmVC_k_erB@c6`yI2`eREX}!Lbw%6;rXZE?6#aXXJ>-R7*Uav{+ z-CjG@6I22e>skH&x4XK%?VcP}DOmF9EdMo)~a`0ZoUOX5$R zKHYod$(hWqKRrro_`>g3-kW=F6Q{5gH-kWc!=tM$&!iXFhE51w`f=<1U+WgFivRU? zt@WZ`UzSbXJ^yF2z~Y|~;tW#EBF7XCP3c^kn)2lJs#o{(PTDxg8Jj&VG2vdnb4Ti$ z%a6iCLM+a`$uE<;yknE>$5pFV{eHLm{gq(<+Fvi1d*AxMH@aVeqlsmjc-~Ht1j9eJ zY5O*^vUbhBo$__#pDXVJ)%t5cu3Xo1%Vt^o2flbI#)CTU6TP$dZFIYOMf+N8}|10aX$2{oamemrj9O~sE?{9uSB>DV^q1c*r z=N7Y1Q(CRRe^z(&v0Y_{TZ>Az#Z|pr8o4DrfjKirdB9OXI5$X2)bnznMb zmZ^upTPf}!V}C}56|+`lbj_SMwPePmt)4;*J{-OqBBCOK%`Wb`xA)>-rI*gB=d7mf zNM&QTQZrLmIiPCM!5|s!Ino66gS)qDh;-rU`NedE)+eaq%6KfNpb z=Ss|)f72q5#Z0MppL3P$A1z8+>s@S!c&xj2?_2gId>rY9sJGfV> ze?GZy&z?KEQ6BwL5}Pbbi&r^cJz;QpWs&Wimxs6+S04&p=9~I;walsI+PaFZpnn*!R55n-=OJ`EI(Y>Ajo#Hia!( z-L-7)&)v7}Ykt08zh~=J4*gp(U6w%)!rNtL&IwTbx!)wSRdZ>p+d1n`zizp{txuSj z){}WyCwg1X<72&x*XcWM%UQDKFR$Qozqz-rTzN9%%)9mslUtWAUAlQwvj2Gd!vDf7 zjsl&pwM-qCnFlYBPMq{Qzqeq*YmS5C9l-~`6l0~ zW2SNXy6EkCGJMY$u47P;;VUmGF)=ga^Z&2T(WI~^zcqQUURO)}EacT|Gl)Pwq#Ywy(#un|K;zV@soL^YFBA_Sk$U#eUx3BXZsM`qeEk1) zT`q6AcQ5Y0l=jD4jZ!^uhgVa){Hgp-o2Z1Y|$+PpEaV|VH1uiaWpA3n!Yoc zR$Q>bAv0*l)Yb(nyk3W{ohxnqI7;TzD&`oY-5m2vN=rpEl75~k1BJ3jLa%A>RfCm^ z-UR|(BEnx3SFKqw>(<`gxBGXUTG4zZq)_9|5s5;xyn%rMzMUs^b+w6rwPTZqMR!T~9FDebfSw2sa=SQC7A^Q~|u2jN|%9Exet zyi5!nv7sxBf2hCDDR&KAbGbJNs$=twxaE&i<3(%FB!mT~M$RzZF3WH)Ajy2srchy} z*!A<&+v^zL1SYMz;ApU6zl!=tN4MV^&LU2? z%^6H8EBb!S7xNAj2@O5D1LWsMQ?V;kf37oEJkrK1ZDcxa?U`$9qn}?p=j(I!!IIJt z-@R+zZu-0NFN1-iMdI0+*?%&0LWA{xA5Q(<{*C!S%Y_!x^z|RtpII~Y$C=!E=g!z2 zrNUM@c1#Yw3Lh5xn-!&)y*=8xZUq-JBg3`rdO~tD8V`MaeZATw%0wzRH}~zkcjvzP zo@a3sI8wl&b2k}R?ROL+4;m|pp&B(y7e(de-Me(L>xv{N_U;hgBw>32}DS2>!(cM4$a2xN!fEPO+ z_Zf59fBs~wYrduA&j#m7Dl@ICg{Ce%Wxc<2IjB3fYFXU2Z$=CepLy{=w4{cb-G z!?l{?-Xlv*)7J)?q<(!LZr!zNOZ?qpNrp9+$K#^qf{k~aTpup`G`xnxESIUlLE*xk zJ8!-j$sCJtc6QFqU0e8BV}rWLrRg9)tUqoTkm0d9(RkgO+S|P5^5tLV-Btd{WhNIj zN#R(>0i!=N_UzZ)Wo*(l>uNx_+0=wvQQOuhWv%&q^W3xU+3MGQ^7gO0`>*f$lXudu zPW`ytA(57JghjZ0nm0p(-K2YK_ZxK_TcjJlRm8~DdEK<0?xwzW#ie8EWo+_V>}-hZnoHJ?AppwQe$t;W}2aKn1h?r@q#$ zJZheMU*tjKH0da-b>BB_ve93sH-EF3U;K&{Uazm#J_4wI9;}{c$4?m{;k!wpSw)4)cp15^--u-=lTZH`_TojLJuiv9|deh9QQ(sF4db~gTCENGyq{}lO zEf3v$`^fFU&;QCQZmpV7_xit&=7xCDrLtayTh%*0YHZlE*>KN%1@6keEze|rtdx&2 zswi5!yd<3c@+q$qYhK^(ojUE-&-eY`*6&N+x=}3l`u4YXp8Y>j)zhf)NYK!pnIZX1 ziTj${4~l!YNfp`dySM-AP5#aAT-WXWvU&dBoVw_sMfdW)%Kn}5{qm~F+egj@8t?V* z&u?G2mg~)SyXXZw{%XCKs}oqih{f=ljL!Sz&hL%>6`SUK&%dp_e*Uk!=YDQ6%(MHp zbVrKa+r3*pFU^(D$=br_zpjc%zfch8%9+%|y(aNMO^mU9 zh5gz-$!~7o=M|jfoOsIPH}6}90KqjHznD!J=2YIDIXnLDn;Ez5Y~H@Pzw*@ir5e}d zL|2>sxngYd_>fm&O|hv#*H+#CV5kP4fV=dR)z;C$mnzHQ(lKV|huSxBgR!^*6qEwlA9|ciDZs`eFMMk7ZZ>-uWNp zwO4iK-^wrdeA}O|=smMleACvFcfu}(EYofaXT3C%ShJJkn*6WxKQwFN`NWo;$+FvT zskr%$T8Y8Qv{X*TxSHQbAKeO9-mmIiwOn(9yjZsG;mxYb+n(ow!o8K$dV=%%f`;Q!PzH}_)gl%%a~|MyCqjNKA(o!x%ztK~iqe^ws8 z8TQZom{r<^X|eOR{^x(b(?_5szVWG;JA3!d*M|Mxor^y8C1)*=s7(0xJvHUzn$NQ= zpO^CT30wV8-0aJBe$MH|;S%eWP3)`pG^<`;+xjTAR&-wNq|0#?TRiXW-Fs#2#N$7W zgg%{Y+rPHRDrlQw^Rd$N=S??6L~gL$dR1drm(Y=ef)ROzCCxFLZTDoK-lZBj|IeQ* z@h8lFoNqr-vuw*hgX=f5@4VV_a?PhtpPpHs-L+18l~RjCTi3EBl~I0S(-vv%T35ZL zGrC)JlI){v+H15oP5oHOQv0oO&a~&Zq*}i_&(95-axbpy+KH|0B9~SjJr$(2WG&bF z`~OQ%zB=%2*Y@wH{>6(I3=P+=U7I&g?zZZ>)vL3A z#5?#2EOt)lHT0SrpDJzsykh02;AIm&&D;W?^~ajn6fcA^l}rDIdhe9~)nYQC3ypyJ7d#f*XsRom@XuXYAadKqNqIgIiSP=nmXZ9a#NbP zMRA%Ft8eSP@QH;htVJfc^JOzJ2voiQmR@Sgrr?n&$TCrT)v8N1??C3>nLHtKJ;P%O zOOXb~$x7|A%pe6veyF@>(P0P>S-N%W*45o=9f}?af{&X+YA!^lDYlT|`#Y*m%c&*^vT*7wVtJ8uc+bwc|0}1foLseP zoz?eG`)YslE)}(W69Mvtugd0*kIJS!&xILYynTDsr1#blX|DrHAQ!$?d$`}=xs6cg ziA_45lXSdgzyFQm*r1{N;7x?@_3G`?j?R-JkIXn~A@1|qT&VNQw{Lxw+TB7MI1cf9 z_&P`k??~_GSBu<`;FzAi{3Dam?dD9U%-ZLl_U-*$8e9K*@!q?)=c&zf?O`uXP4HMf zQDO6+`4{aB%a^ZQnR&R4cV;-le5UN1n^L9C^OpQ`?x{R+Q0ddo0_$b*65OeguXdQf z%&dK0T^pQT5?lZ6zg({?KSyhdm|@vDrsG>&lRG61Z6b_LS7d4B%}ryN0u9OTn8(ef zrKR`ykBcq+s%>0#V|Tg2zTa!tiN|&FehZ#0ocw#u#*=HBr_KnC5kAe)Ahtt)N`osX zb^UJMACxyWw%hXr1UY zc|9H2T7ci*-Y#a*X;Nr(o$^F!wtLBeMO*3?Yj_nGe_rN0dxc@A;hJ?hyIA<#j!a-S zVL23WCFb_7WWM~xlHj-x{1WYb?MFh`Qq`6dni`%0%C8ue)k{~t?1Br? zX;W{VO5zauRP*eSqxecy28JyM``7xT-t<|sc_pG#)m|(%~*<`s{cvAP8>?Rg5!@dPS6dZZ>?=mtKWAItGK7WFf*Z+TK zf0rM3|6}0ndOh0w&(`e!d8Z|1>whlY!l*q-q@q6EI9cpuXk`7{((L>_iK3C$SvYl) zVjMm?HfbE4IZ62QlY;ciClwa_eAwqJ_Rwg~c|XgG!m?k)npR2G|4iNeq$>aUr|a>z z7p+Q(6@Gm3&;m7u8oPtRH4`M3ho79(Dat1>vDwI|bK}W}pByGW?w|3veyLOF~L)pyZX7Nob{(SoLsYI`P(L8uyQ@G zc~xIm>U-RII7O#yfk3T@0;?Oy1$*8J2QSmluzK3nIoVEf)g0kfbKb7q!ZR~<^Cm9; z1591~LQB@2xw6_{wYmA5X~IUPR+)`{e2ZpJIpw=(>A&F8Sox2WO9hW`G(I~hby~tx zW!I(u=Ze3Z%k7`_xnbSw*#A3p#oo$GRq(fDA2_#RlSJ}FkCsQxM=Wfzy;iRC<0#hr zDkimM?*uhL4V{9hHEj+%*1lA6pM1vihNWH3O>vD~_jWzhk3BkjO}D}^vnL6?FBi}D zP!jyeEdQqBo1MTcm6P7n;%nZ#ydL5g_aZlArr_b1mzUqKe!tg=!!_{JZJsWEp~WB8 zXxi~M76ipE&7Q*}zxsoNBD2rF4uks&3xW^Md(miN8Nu?9zi7j;lg&Fi>i_(kJ^S6f z>m_`T9s6ode(GinxW4u5{~fw!JI zW$(OLV0z@R^V7YdqKizvg}R*b$tnM~G3D58ZnKSl;ENGsybwJ zl8)HtJ$kNo)|9Kb9y7cKu^W44G#aAObe(aoC zEdTdSc#8A+g|E4aoi2V&<-fOo^g5aBw(XFNwYX=SKdY6FReR z6m8im;u^Uv=jO3q>6Z%x7P}_@t@>EVcucSI_fhdF84snh9To0Wp2& z=vn1}6PEwae7V_Q_ilC3xt}SAoEs+|Q0kCbuYTl5Q22x%(R-%vXXG2pZRplNW;uD< zoQjp}vS-Wx_SLasaH`POeJ}B-qK{u`(Sn`_fvsGR=Kua4v#Ip)+iv^6t9QD`eEQa1 z&9!-xPH~r#LPK_aL62xs-CjMR&L_X$^hjoZn-s(1_`_muhha%@IVayOZZ@rD=lwI* zmT;15~yLat6=2>&$)|-O~1t%w|p11p*qa(IB z&+^th>%yByZrv8Iw>mIG?TBms{t5G^PUYa!i<~DW^X1Z=Lt3eeX5ISq({RUgEeb%^78(Dp8x;PC2#$=H#R1(*>)hpmAyh=?C!Sh z@29LZZtl@tKWj_r|91)x8ZP|RmQ62ZJ=Q&W^W^!vjCQ5Ey1LF4u}QwBzT@E>(ac3< zu^qqTZ|^cLI}japcFL2PjUQCoWq0OWy7E{l_}<(5*H>#jsTX{F@%;idiRA4y_1{8Y ziF?XxzgV$xjki$ehh5+PEZ*Pe`n&zt{g3$>y)&Qr-t~~^c2VkMwRrA5T`zWfUaW;o zpWEWIXV1EEOqGb$;hI)%GFRZ)9L5(4C5n0#zgyQ9#)nN?z00U@sxK3Rh;RJQBk^*l zVq+ao9bENccC+dqz1~$`pZ{Oqc2br7birD!r3YR)+np4w{FKxA`j_nby?;JkXiVH4 zp>Tj@-Uq&K*;1L-j}ja$Ba*xBJoga!*nhwN@yp%M&|pIb!f!&gz76*b1(_)i;)XDXEbW-nP`~;@4~Sf6A{r%z9Lq!{(44s}KQyzBgv3V!{$Bf6lcX-6bHtXK(5DW&2($ZMJZ5;Zqg5ZQJzn zoD}zBP$_YLm)*U|_tUr)tE#K{=f=&`<ZW zXU? zl>7f`T4*?fL*Svne>`2M)vl?Th$%QHFw7FL>bRPpdv}tc;S&b$)2pxPS{j~Nx};4| zF6+cLg;gtc{r_w=UjJZ$=Y)-yrTAW3d^6GX|9&O$YS%jb->>C+c*@xfj1wbupL8@F zxVx;y^S|-B*V{#%lOxY+1&7Ssb*fFTB{B7_k~XOO_M}*$_}sovOE(&r=19M-RokeN zSjM^V^{#J!l=t_z|86}YWIjjlq_|AklldYtSB^f|y}s^+-MJSFPV2ju9-U}@#VkVn zn(vzI-AjD=PG0Jql>36?EQ^_$$+frL_OZuQT@o00CNLgpDZ3Y)85TBcm)B*jeJ0Zu zz1BAW^K{|8?_4~5dTV=Zs&1{?@Z@o7*uHDZ3=UVfK4ZUbcl&;}$Li1gu`}d&S?rlk zUx?WLZ0W|Fw5uOqriF%u#MaL-5p!hf)|hzuQE;-ZfyuPkz|^f_KI5J$xW{{JcUj$oMqS)n{YAaTe3rPZC%pa{Qh4)43^FZmK?j}km0nZF55fY zW|eetmt6HO+l_allRK}32ZrXpt6A{jJ3pI%w7T1j^WBXfBE8;7$;>#Q>Kx@MIbBM; z@#zMOb+5PQ)qixYm(mvC(23jg;DSi{7_`w<+@?Lk!je4 zbt`Oqb)p#;X79Q%zxs#xU-{g#S0dUDOcI*zaYez9^|2Kz8!HDxv0TTNPOH`zwa-PJ z^QT5-vPL{uVd>6#h|y)u?11ZKbf*&IcU*5;WNB{q zo}_dnDzrW;Iy~m=rz;n)T=|mmT-m(-`JLG4_(M(6$3ARiE6r^P+QcCg(Ne#7sRz^P zMH`na=w8GW9<3c)lsW6sij6r;r$yAIn3!HL-HNeU+j389@1?9+x3@ez#@p8AZPDQCU2%6OaW60-XyYc<;VVc$&k!=?2Ln=vx7tIi;gu$M!E-7*%ei7{wgsB`bwUB z#l`Tf?Nq+avkJovwaque0|CO>lf3R7OEV8nEGPb)sNp-n$i#7<=h08a7}+B$d9p2L+b0V> z=Mk7_n8IV(eWhmAusTdKo5`R;7^utk2I_Uvs86BQSH z-m~<@CwT@Xwyamorjt*lowNV@oPSQ$-`IlzGZx;L4$zSK_fY=bTKi9vUrgE7|L$}d(G5da^z5cJq<0iLPS6w>ipX#`{Zlbrr*&yf2zyE7~YDID}G$=i|G}oG) zg`;8bF1?&$^BeEfoR;{8=(a4}IIsSP`0qJMt$789d7Lb?84j-es%?F(_OrG4x3@Q^ zM}E2x8O-3&(DDBL+grbqY~=L2mS6qq7yep5`g(o-UY(~JcS9QL8Efp`K6IV-^xL=tRn=qv#RMfAHgI|#=DfWA_=_c5ERrl_US;gQ z{rf0*1f;su|Ngx6f8RgexX{QXt+?*^?(e0mXT8$eFsG*Lh|^g`0T<)GKGm6Dj~sYc zfB#EFtwD+V<8-DT)&@=yD+P|d``;fvwQJ>x8Ox7ty0Yx`-DdVj%Kw)>U~*`X;hA4_ zRd%kut^eKq{x9E~wmU4Ee8kDcIcn~Y!?!J`^Tvjr@Lufv@Iz_+j_=DhZ_3sQ4xj3~ zV&}J4)hcN|GaG}7-toAGuTU3O*}&1??Qs$0W!|TgZ|$pDdn72+MMz1(qhtHoSt~gT zU!ME^om-LN+bbuFonbTUi!?VpS@PcY`v?7RwOdlPo~P^oVEKOM&6)Q?o=@MM*mUP& z+4e;mM~%9K)UJuXPStxpXUz)hJuKcg%Q>yi?aDRwB@WkY%4Z+j^=;pjV~2bKTRE6csa=aHE zE|0(70*9GwgZiH}hcme!*|L7lSBs<>8*itb+f#pSO?BGYIY%RXZ|RsQsjj-Dm&U}f zLq*^6<)>Ae-HejnE1gP$LMpx7JSTN!h#dV|;a~4xw>|#HbX(!m9YSViLAQ?2m=qbE zByVqb;rrcn^}Jb8G1p6#16E}J-EHp`rL!*fc0l-C*7H@SHaV4RU!RfRqSd9uutSBl z>7l6oj>S2@Y>s@X(Q(;n7GzfaZ{_}~grog+`t67AJiX{K?a8?{{v+3kF-}FtwgcZ97)=`=Y7kn`Z~>vcgS6znxeht~c8w@X$w< z&1O7r{%v0_zm~tPzWhqM(By>7R|nqpt6lRgwRT>-%B<^(D1%1So^=0ygL(5<7@A}_ z=9iq6?f>&)&x>>BfgBD~vR*yuym~r+&)iCOme!{|C#G>M<&F&vwbV$@S~L6nFEO42 zrq}OI{<0!q)4C~Vv>q*(t#E~9@z)c)?X^=~?|Ga!)N|J?``O>k>35B@uj!o2j=Xev z(_J%{teA%j)#KEhO7-qd4PLWw7uSae9Jq* z-PkWL|H2wne$HCO5zFvm7vHrMSMOl0UH5)HiFcd0%cynYM~>8Uy;|&t)#HlYZ=U&C z6kA(y?oV*t=L4She!IeED))T8b$#8sb=TH!*OHX{xUk^IudUhZ{|8=LIqAuoNEQ~u zGXecFQ+Za`J}p?i^`wr;zrDHFd>UNz{xk?ww;DdV@Gdjc=EIdkq4Voj`gXlNxog&e zDZl*bkSR)@|!?{{OCDD|>m0T5|8KBW26i z>8{C~#`GlN$CB6e{HaU~cZ=3?S+PIoMXpfdT@nJ&f%H0 zPoMXSc=k^9xHQZ3^SqnJ>BVuUBXpB_SeO=xsTYOJ8{<`J}y>V)=O)Ym;e8>duTc>lXIQ zzkmPx+cQwU@ac`7v~kj12T(>oy}~1>JRsatSi4k@<3Y@$NoR_UCLAfqH3W@M743L9 z^}xPIC#GG~%lLiCRO~m`-n^abScSZ_&)itMIqj}}^|ia3)6PAzvCY$9P&mc>zxv3` ztPNq)PZ=%CJ~4mZym^oKE_-(iJ*$$ve)&qMx3_nC`tudit`SFfE?n31Sjn*L*PNf) z(tLB(*gcbXo?LUB{nx%fUzG3H{F~4IXxTBR;Mm@M4;EZJ+qy18OC@#M-sit>E)?8! zS!EBX74z9p`{bELldskOoV7tlD{1bsg{808M3$eQXWIQ)%Gmkzg$SRzM_cK(Rb zjhOt6@8!f6OU1Br;u*?bE0|T*ZoRl-oxp-Q-a4^oja@o720uSDTa07lCe1I$blrQm zR=#*#|K)pa_Gf$kBae6gwi9qtxe|JQMMyZqhNoNC<*Tp@b-rR%>tIQDI4xJfd_bZpu^dYZAeUy#M#Dn6-*~?k){SrtS?g8!p`l ze|gX`eC3qsuRK%2BYD=&{CMW<03_X6iWp2-lexLs|lS})w=k(m2i!|3>-&(f!p6lPq3XQHR8ZWyGbJp+q z{xI)HOveAPq%&W(yz_f@X!^;6^}05}zRULZwj}+Y!^MV;I3EAu zu`4LVHT24~_ghPHrNz`ce=eB{lVe!9yf*;Rhzs2@Wl5UM*W$%-1_{UU8#3dv&Y&lvWnTJ#LH7WoWoIJ8Jj$vhux-MyIDA ztExzTE*ZY{&qsAx(T4@ArvEV5DB>Czy7jBk{!6D8tX{qP>1$nCS=omL7VHN@Zt#2p zjhF5TsQSIi^vHz23M<^0M5o`u{c8`2YQIyguLD{(DK?wndt&Bp$6fIr(DkTG7eR=YE~M z|L>ne!uM})J6ZpiQEo+fHyaX%w7v+~FM*p2`A zi#BaaIhXG1clO_d8$Zvw@=Wv=diF^`=s}~Xci5Kr+j%NiPsU7B-TC-e-!^Z?sj2j&cl99$0meLf2O>)=vsuHmv^A3GwZ5Zx2kfpzt78)asth= zGBC6V)YjG>QTwrrj=c~`|qulS4d6`-Dz7V z@oLrMU3~=_b5=+(G8|g?;n(czt7qN%ba>ji^b@B}sa0M1aah_qdjI`PA2;_ESj?%) zZ}d1ht7Xfpv++?+S8nX#4G>`n2;KU1*0p)ICmq$-Pp(q)NDvh3vi{wWo>#3Yyy1fP z#+6QYZ{GjDdEQ$NgTP7pG1vYawXR#ty-+(c?Z=cFx+R}=ib@Zv$FW6Z#q`lD|@}Pr8)8UJcSdJ zbWRr?_my3HUA2a9mt=MJnsdvoqSs}-{88zCDWfNDeS}QK@9+i4MVj4s0p*2P& zSNWr=zkPY(^uDUM4_p#Ba$LN9J6cD0^};>--g?`A_5;Q&#QXwKcu` z(warg?lNz>wG6W~PPr_Wi44Bm)VKa$K+>eEGfos}8>I+X-H?=I)v-V6^SJP2LAXij zQ+d7W7hnH(ch7O>XJcwScFc|8#j96RrIRcBR&XB-v7E8Jb}A2_T;0#wa`wB2%~!3` z^t$tV>Gg#PA1?bIpCRmW<;vB&+soEIv6G#p_aT41_iy{Kynoj=mB-zj5gKdB!k%k% zdQ-qfkOXsW%k4zD3exbfdH(q|~<&XWTp5h!PW@ek1c^FFOmWUb( zEfjdD;e2_EQ&KCa2mI7(bH=cLlq&RDQlH{)z%lJ}V)< z_Ur58*RNXDK2`PiYOTN-%)cZYXK?W~*{Wsy&xzG=w2*oC;>8EEdmV{ta{c+YwshWV zlsI`|H;4P`V?vdCyHu2apX#sE3aCqUyn6NB-`YwR_Rgfl**{L5-@~)bInFHiRO(ME>`D<1Itqs~v>>BZaD8>~-kX5FuNyy4C2iEeTS9aGkv zIl3<>G&E4eHE_|z3~w+nkusgWCTeTe>uYOg^exiZUG~=T{D;Nx6r=HCC~G7 z78diKv_H8|iu29oE$wA{GWXP6cq>u0V)d=o_UO0Tp`pChp`lkpSBHK5`c=~Q+uH5- zm>NX2!zAX0aeRC>J3lNuJbm4Vz2EN{ch9_X_3GBGTP1!xbLOr8g1V;JERF)L_bfY`{rouJPdnKBl1aOrr~G)lC9grriGp&E14hfz zUex^66pB!O=w#r_H_s|v&Uwq3Ne^=3Upg@~2nLxH-QMXMd(&m=vdp8e-tzMD_U(=3 zxM9mNOYK|fe$A5ht7qq%{C{u$-&TgFx?j@gw*sRK=YhGK->|c>P1BG6cgFa9zkY)TLl+EXbGhjtE7* zH!JJ%yboC=~a@kmOA}**1dqZ``=vqS4u8m@NC^F>Ms^r+FNwn zeaEq1m!oh0|Mumt~Sl z%*(v^pEHs~K2J+JXPn@AHG=zQ_+pmiKSu;iUHTLh(ivTL?Ggg5fau9u)Aq?z@@BYY z+K%+80Xz3J1zfyxZEN_2BjJl3loZ7NMSc8ut0c!MQg^Ggqku_QK~B~h4;3ZDXqc4A>kkY+qx+;7Oh;HD&c0lw?-tysZ3uq*_0*fgvD1@bbN? z<|7sgr_THrJg($pIP1@X45^#pOV%B;>BvdiAtuOTbSVNHO3g=Fx2?2Zn8tKs_WNB8 zir2zJwr{^PgF{N`mb>^gmBY4-H^Y^q#T1fzu7o~xQ9JYR-t{_eAGS~6RXC;xe+We1 zp5*nq=J8YYucD@J*NSbNTCmM)(nGn>B;Azw-VlwYduIfRPB8XlUh;$+v{$*;ed$zz z=>7KRmA2(gs#s@ugy-kel4i4_+nHHy6W6Tsh!PD=S?D0b!(yrh>RWr{nEtObbzZZ6 zMdtrsXMY|Om}`7T)52m>-d}@CA)nc7A1w^nZg2biDk~`5H7Cw&;~F!=x(PBmO$v>! zz79){3e<16O3nUz{Orq>A1%*4%sZoVt4x)Z-MwSWEKA{ipHhERY1droWt=&;I4|Y- z?(8?-Pu`i^gDy#zkl`u{h!_C zyZ7v6F5UH8Jp8EAYM$#1N(!rXRlQyxeXn+X_pDY0j|4%NvZbtTYrozumfZBKYt}d8 zIvrKxN2z+LQc)@Ky)0Q-4^|uvi06;qc3{cLKj*BK@9w_v$*EwG#g*_gd!F5|Yxe15 zWZLwv)^?ZN@-#&bp$L|Vvu|)IPBpUt;FpC>l{ExE4$w$QvyfJ@5BLjbgv??#e$*1pFw z3@={Q<=$DfdR1rebeU44WS-vdOA}@#Bng?x*6#Y7>%@`iZLl?j6XZW_WY4G$^UkcDd5? zNd`_W90wZJq*Os=r=v(!HE;VW=YyM6-RDj^@#Xx{xtmzo4VA+(G#leuCx?k8DIGb% z$|eylJF{_`PxYCQtdsn+1j@g>yQ5#iFF0+V&zFe`%n2t}9lFYynQAi8#wdwd!}+e@ zh3`rns{QfoOpQmo#q;m(GL`G+-sHg9#3JU%vww@#uNA=($tQM%ilv^=VV~H{H|uz4 z+S21}!S_U${pVacN58E>CRa6vRm^=)#wDNMW$7y2GhbhC{qc3(_ccvtoclN%;$o#I zm%lvu^m6`>Q~DN@MIDsS$Fe+J@O0;5p3-h1_mwtG@&9c9JdLrq!0qI4|Js}>Vadsl zmHTaqzTHg!{_Web#~;_N(+i4Xab)UNXnPzM7Hj$T#bUq2ImRiHenE{!+=k8`kxxQ* zO>LdAa3cf5!JFMqCpLtiiT`j!hWRE-SkR|fv&yh4$u0j?etHT&62JT2YL%h;dUu8| zJwlFc9YWJxlEMQNoL(rjas;;BR6h{@o>@I= z@9TWeu6&tsVxJI4gT^VA56w&0{bMN7$lYluZ7})4>iUNNR@`>)J|?G{nwf3ezWsEO z(~6Uue7w5BWk=@w$&q{$?L4OE`DK238K1c8NmEbx!-dc1 zzgwmK*T3ZVHM{N0-sYdoJGC^tDRbYPmWsDib}DV2v9$N>`Vz&we=puP#@zdNIabAS zn#TdJTxF)@fMvYf4-^H5hdmKklf&%WxOKVX`(nANlHaDPEWIn+W1s7_dinC_H`C|$ z9!+9!fI4cP`NmBxg{4~4Rkpj7p7C(qZWZ{l^7TB<&>4B}ZXBKb*@t(=zsPi>>r>{a zhRChb{yqQ2S6wTe=ihv`_#B-TRr2>rn@{X?$(1Jm)^qN7czFA-(zECDxElKJT)i>n zQ>Jg2ef#WU zuk$W-HG+gz-zBY(c}DBrY_Hy+KBM~d8k3JH{mf}>zb8#Pm6w{j!f=DyiPZ|ZGycsK zF3U^U_2`kq%_}Z>9}gz2(EF}iaFby>(1i0MDd76mm1XK85U3N;a} z>|a+hClxZEw(UH%{LCp4f613IeVY>#kCiOWl;S>^KdItg>K|7L!`ngi-$c_cCcdbC zY9jjqw{_NW$ha`f5P2}^S%mHL#;5W7Zcg9i#konEjsH!lUWj4ogVo=; zrk$R8=kk$Hef(*Yn^e|<3(1t-;@3lb?VklNS57|0J-fD*$<{`z|4M1K-k#NM-s?|g zI<=RC^VA;uy5Ytu?%HmH``<#%M4xI~%!n;YO*yu+-a!49zsA}l=M-KnP&Q(JZV+jh zZn-prbz1$?;|xr5o^3h$w^7S3|JUfto(I(d+x>d2E)Z4 z14XprTaO4I5489r_j!g%ol^4h+K=o!Cb8l2|8Ms;H*;3!JWMqHw0V7tKy~?d-eYYq zK7sn49EX0kg$JAdy`j21S!w3o{9RSg?u1AhCtIGmJ|S-BV`(l+r7DhIx(bZ5JG ze34SCh~TCbGxy}`I{cTnxjNPNa>L~n4M%o!NWL(1=yrelV7}rL8E@gt(2ghe9BX)7 z?4JZEGEHfmu!KQ))`P~U@jnF{476rM980yFaXfSJs#kKY(?id1U%BpY^?j{0D|=8l zbzIa~drJ7&)t8))PaR%d#C0aM|6`>K+uW~{-P@*}Uc>t`)u8%Qa2|KY7syvW zd64+?eC~NI*2{dG_-A&!lh|{LD-xi(=h%WRR%It&o{(^UXKHXEdxw0=vY^zD^A&!39EdsG z^irz(>8cffM9wJN&2Y86 z14q)5RjY5UlH|-hy5sc^yAPASrYg3@q)fYhCp=F$K5%jWy$_*c%om{fCMWIJjR>DhT7IWa+Rr7Nk6?OJaW?)QBEPJck zyX;s{=-*@UcJ>m+WswR|TSS=rJ!%pKJ(nHxiaya=b13t=3h#z3lTOwLakFy7UY}P{ z(Ysi|Ti5e%e9fKzdMgc+cD&cS!g9pId|hAkC)arrW=}10ckNF26cBqeXI0K)E?Jc+ ztDh7_9yhugwCmWW7u#~U zbEh^79FyO*ZrPSu8`hmGIU&Sd>RbD1WAx(YzuU@$ooZ}8$Z_g7$>=m`JZfgW7IM}i z@1%Hdq=eD?uP=V4x4mjQle6l~n~E=8zbrjg__%8+m%K>HUMjBf>+$sY55#{Jtl4v4 z_wBYb%WGTh{;u63X|8acpF?8@%Sx6Kk%k0|2%b%6!Wy@2`8ubs<8Vu`QOD%U@6NYU z+M3su_tzu>|~b5}C%&pkOimE>j=FA*~G-ll$ynUNUKAcjCBE`t{`Tyw`8*I>D>r z6uK1F_C!k9)qWA*Y02HZS)cWu=j#_%y96#jJ6cj<=;y|(XBJu(eY*IHBA0zK#?(^5^@7lDp_)tYC-y#QxV*x)5U%r_qR<&Ad`N#4Z|2)|W zqZWv>ylCiOz4f?vEzg=Z5r0e1WBo0Q<7(Et{$;aB0(;ASvzx&kUAk>m;k1^{NI$ z2<eDIHUmXf5xP0>t#z$B%U|jd1~jL>21c|x40FI=CbdQ`z#=N^vjA1SLb}PG`JAw%lK_- z|HNj?C2>2SHgXp8m2c=fnfx+1<%i(R2ewg{jba=vUg`Q+8OsRizloH)ahS#FQnS$> zZEvHgFQ?y33ER}rJauY_F^3Zeiw5`Ogb?#Cl}k@9n})UBF*KRx`elZc_SeZhMq!Cl z6!*s{^~`Gvn{^=R>}mabA6~4lwySD15etm5Fl97+wluVIM_H2V6Jz&!&qqeiEH24? zD_n$xXC)uFuu0?b`6ugzPWsQNIjDa_%g682%s-uPpZh(%7$>Lu^fLEyU6;*fZGQWO zPV8F!{Opb2Y+Sr^F5TchUEp3a$>Q9}_b(5r^?xaA&%b*;&LeO4;ok*!wzagoIB!0e zGPkhTQ)+UErU3t8_TB6Xr8YC39x!lWyT*F5_2tn$4Iw|j#5>*+ayWKo>+;&80+LI_ zW~CZzyz^=KPu+&CDUXVmMEyJ1+MZXN8gG(zqH5X=n}Suw#S3o=q{+Lzjy!P5+Sq%Z zxX#-(o>LRIsZJirx7=ewv#Y?rE1|hpd;I19F5Qw+ z_WWUES@tPgiRUS%sXn${J9mW5bY|MSdFz{XQ;WA*Gc_Em;Ij)|H!bvE=`WA`?}_n^ z`M*!y)2;En^={?5OKw65mtq+&FiI{uXO!h?-tPb8(wS?X4=&eb)T;U`JxV|JExo=Zi8FMF02{Y?22UUsOUb*p*$+O?C{=%jP4;Ee8M=Vo9yq`}@DGVjQo_6|11X(53Z z#13jku6e|3w8tsHz*~#)l-O6Ea}(C^eSaBz!@fSpFMKYuL-^eKs)zUD|6IG&`&Tg8 z^3B_Lu%KuXEz;=ywyEa zV4`)qIb{FoBXV9WECJ3X~ar)z5qS8{tEG?=o; zJ@lB@7VWZ!?&+>2qP^>^{(m`C8Nct}&WCOmCQ2%QIYp{>ugei#5%!GjR#Q?=x!x2; z9R`JSA6Goq`|-Yd|E{vH$)d@ji<#DBg&cMYzx*q0&)0_F35N4b?_6DWB{9)4z&k=? zdC1OEJzo@^(RmkR>c+i$m((mZ^j-OALFoFRm(fhZ z3=9GX8Ya$K>GdsH$G-T0Ys8X0Uk|#h)%nS|ROehpYM7IcpigJQfiLwZLoffjvD|J` zyHB`ga_u+a&rJa}KjY`!-eAe1uyoam50l+u(@M{)X3s1=%*Ud2yJ_Fj_vNy+cb5PA zeQ*7ml@hC^L=!?6OU){{diUz*Ys`Mn?ri7u*!gR+Zm8mNyB8M@cxi{WZnc+o-TA8F zSc>x$y&a1;Y~XPBatK)-(YDiEOE@=b+4d62Qm#4DQ*`;fdZubdC@@USJij5ge;NB~ zi^HMw+&%OzUCOS{J2UAyk5+7+LuZ1=k>#0t{{*MM4O@TP+M!ymN^bv$Uo!j13T>tA6;qum+F%E z^=ee_#vZL@3#ID6W?a2&ySDt2U%vH+xq)2HLX#$(d%r2pr|R=5O-|1BH=M+Rrg^UO zVwy0CrQ34#DDfB3l{gV zW$(|<7IxU$mbKgK=}(OWTAHAu`lWB8jiY@XD~`Ah0JTV*HDNq6s`C5xY~%4wB3 z(R4uKe(^iU?CW;sCOfuy<*smBnh^SUs(1Kh)rVf^y-w`!__b1Ut(R!T=`z2KtM(k# z+WxY)(!ljI?_?MK+|z~{5f-Ojb8XX~y#HlXr|R3cs!z4A*G~PsZFTY2C2IngsoYGH zo|LVpC}#6zl9|q#TlXjIH1o^mggRqW2n?jUAs9s8>JOqrHi7t(I8O%jJDN`z#rX+|w_l@p*ZMZ))#eQW3<| zqB;4&o%%Pcue<;Mw(|PTpYk^!XPd9Nw?*~DjLt6*^dOz3Vv%24$U8%h*y44ZR(D^!oqjH3 zTkdic0uTxu9J@ZkC#aIhHg6Kv`A}4Qpa4G*0Sp_I-Z^CU#cZ-+wURq*pn%O z;TTU?yW6uTp=Z3S&HE=GI8%0h8Nb)u*`CKVCC_boQ_ApacFXgcf=dxEw363sF8lq; zJp9Y{h)cID6&01b7978{Y{P;-%ey07HkRJs(diOsIgxkL0@2PShdGZozW;Hi{_m4j zS6A1?8-|%`9awejbo>r0leL^tM^p^FTUJ>m#9Rr!D;vJ^u&cXv*v!*>4aGsTHW&9T zX-S-^^>CZohQRj)B9Fq{#gA*mtNvdiw?-pYMDo?TTIQKgW+{lV9(?sAy;=8?neikU z4eygd<&#~uH0KlY%+8y;zhJ`ksc%+KnXGZH=R%5BXYZ%= zTc{9rt1B!yI%PI$DO_QJF~v7a@T@XsTG#o;YGdy-ORe-!dLwI zb|v3UTB?d>89?s%tO0$~g6g9BOR^B_gux_F<>pis?O)c@#>kl6T})N}0(!y~)f!ag+JI6d`5_)FVg zb=NY~XUn*|s(WTtO!mdIQaTM@UT z#8NQPKxDa}fZ{WwuqZ2&E1GAy^QX=gO4;&rwUL6er;~A|H{<$_jqm4Nc{AEt1MXM8D773O%s;!uqaWucK zJ!t7f;lP~s>k`@z6;EzUz4kk0A@>ujgtQw*721vdUi0St=(CBNeZzR`exp6%izf%N z_J$?1FJ1kz*0|s5$NOhzDop#0)~UQyo6I?7L%@V1%_h@?pU4EBc%gPueM*s|W1qBZ z<@2HxjV9GL6Hk_@%??Xb9ZGL*OJ|s{S$Oi7i&s2U@7p|GIp@eloq(x~Z?=6a)Xfgz zf3u0PMLRV_ziMIKRMnRX=1Et=_OWWui}>vN`H{1Cd-tMK6&cQoPdOjPntbOtSaY!A z#GZza413LzXCD%nBCh25p2ajtM4~~rMC4L=&^`GnHytYLJuK(;UGej{|Eni|M%jnS z{*UX{r*SAI=ZMHZblDvx_*9!iNo1|%>-kkx#||o03o$%NKGDbU^zm`*;tR87y?W!~g{+|O zU*;}5WAo=gu+2NeCpXL2g{XP!FB4%>sJ+W{YUis}+oPAm zP|L`$b9KleM%K-bdde8uPR+lfdf?~soSeH1Z>}3Lq;*!M7tX1vQB{7IfAiG3y(>Sy z=hn|QZ4SI}byw^2R_|~QA*Kcnrv2M36SvRb^Yl=|^(7jW#|&zB&6s9)z9CZSFhORl@mR~RR$`h+CU+2^)8 zu=lNJxb@ewHaeb(1zT8K{_JdIEp=$P6Vf^-RU>sp(Am&+Kiewf)-BnRZd??ZJ<+Ur z&y#D9liuP|Zn-FO!HR9E zQXd7@d*un`yEzza?XLeb!FK)cvzwJ0CGy%|{>sQtxxaRgoh`%9xJBwJdBL(Z*10`gVH0unM&Jdlq8Qn-1DbJ3Y2jD8_@1#fnaN*x)@P)Zuxh^T_1k&=JnES8|CsyPjR$nH4_e;sS=HrOj6gm#m+%efgWY{+%;BD{>RGV}I}6 z5Vv@<-{*>=V+9ANNo1~xuc*sDD)#XEw!QOq^Y7ks)`DT{1!aYhoHq-0%r%kTZ8V!- z=(d=O<(meUPC+@P=&Mum%HBmkzfxOwP_UYvG4}K8bTd;XO?mCPDjc1>+)FCHe|hI% zHSfxjsk5#<3cE1dJTwhbckk!hGV9jetHlws&aBInJm&g5#L@J;tm)jP7gns>cIxEI zUgJ|w`@U*jcyza0N&1X{P9=Zxv#EwTeX{Rljwh=>{`BL{SI3O@gU{dXdf@+hzJLlt zf|U_d0*Bb`2+sYsQ>}M7-Edl+r7FuB89u4VyJz=z7lxLzVy4j*cfTL%Fx{0^kj50v zaX|QnQ17u>#d=x$G{od@P*-O64xhGfiO%jhgw!36+>noKrN(v9|*uR{j|L3>u^mS1` z1EBShwMp#TE9Q?kF#9Kd%R8(0%dp|(RIjIbE)gP|7+i0Lt4_<6c-|#(ROs*QP!4Us zqW;=glXo#j^EL%9x7KLxzMWa7nDqa|vW|5O4INDe3~Q1-w-_x}yJ8v=b@S48mCiY9 zbSq3AYWZeNSR&=A+7-FvW>@rWli3A#zc;-wyq;a~?03yO#;wh!&uc%P+iQ1y&iUvb z_v@S1e3xfXRGO&5t(d5!&v=InS!xP-$Z=>xif$6 z_p|qHtYuo1-v&%v%#ahzntI0Q>edn~wV!d#v10Rqbh5^u}8ho5L=NXn;kN3u6BE@S>BbTS4G?jX?@J%k4pRRA32nG z*gNFS!J=79y>2W#v-@=k*TUNEvl>>`Om>?Q6Vn!n}ihVJvf4z`E$ zt@C)-`+nPN$M<#r`6a&Vmb5MvJil?%nJZi87{iscSrcd7i$v>`aO3-GKX(zQ`VX{rlCM$L((d{j;Ze)oHOfwJ^qhzP)s|J5%!Z zZM!e`iMwQ_22^24>NC{ zt4MsU)#-Goabc+w%be>QSfXyOef=)aPS#>$&V-hX$o?qt!(Wu$Cw*~kh}6mal-6V3 zF=cIv`Wms^jw!6ij;rohIi+`G& zoGqREx9;lRnNd+?HdVZW7T?vs`P>bexpCD)xvM3YvvTsc%(`N`Hvf`eyZjHo`M-7M z9@F#okGj(2629Vy)WS*2J2eaiPwki-cg1=6rVY~J=bEfHoQlxn%QN6tv#!%U=-64x zV0rD}nS)Ha`xv*#=&0PNJiA!q*5a@YMM^8VKCjSGjhL=w_Dr+I^0Qc?%yWLVnN$C7 zd$+Uh>yuk~xsm_wD6g;n%XBP4Y%4=TyqUh&T;;Db*b4qRo(s*m&pAVT>6^)4);U^- zs5mAm?Dn$877R=fveUMc+-HRz7vt1H*62 zBy0WG-D~PlocQIm^I3Psr?Z`+=F63BV@$4jzxV#HN8RUnc-E|&v~g9SX2jJSiY==T z8y^o%{KWKRI&1N&7QNsaOA2wf^H^XZntDofFzf7id&P2GMncl-3W zwLaAfTwJ=ZkuxA-8^|J#Q1 zFY|;tAFpZot`3uuT~zCW7CWjgRp%`}=T#UKvvr+)qw8^|-CiLJVlBUFP2fAWD!j33 zOPAcTuAm92LDEgrByDHesUO)LXZC){#oSwg4$lAHe&$ascyRM}{@(@;=G_IMZpWEw zf9te~d|INzc8smaU}fp{XVZ>N%(%JS=N?;wqtHiAPo?EoLK;?PuJ$=KA$;8=YxyIY z^I!Q+`A})L^jz|;R~~)|Yu_n?~e0k2G@=&u4veIzx0%~{%o_{ z_piM7Nlk4E?VZlBwrbaMzZb78|1?Yvet2p_#LA;9WTHd;q8$R}`ad{#%BX0wzyuGU zH**d4Y@PY1Mo;qfh0GTkBI*;L?S8!WUENczEAM(I*#F)2{q5%)z7l+=7je8x$e(hq zRHr1*UW++QF>UF3ZwHY{3bQMmMEZEvvS%5;-o85e+M=R59ZBA~hP)}lTP}2DP6*G+ z7Fnv59X%szYX~RT{(^|J8A??>-amp1QEb;nwVHjvKchvn%@W#VWmWz3xix zRa3rxbbeO%di(jjJeFT~Q@f-lEt&H)J8I5P;p%01cOqtPT(z+ORC8!=t~aP1Wby35 z{@K=#ug@s8Dv+q7z79Ljl z9$2x#P4aQvI_|`qnk_HPS~A$L-|b#2fB&`h zUDDfCTWq_%YAU05-On)Be>E+c%{-$s@>bmxTa~$~Ikovy+{~l6nlCc5uj%C6YijdY zH`wTHSAq_=qsKyl>;K=~JllI9=hkGMBZ7jj3QtKN;dZ~@c8rWvHgCW8sqwOXh4u5e<;Nc@>1O*hD>PWx$)%*IG_UpHuimwn z$Fpmr?2<)tDSl-WxSA%dw7n&vxoz?Bx#b#NH4aV(w&ZcVa++g4ORdW-)pcdwjiVcn zJv>~0JN(|&xSCJNFAVFx9V}k||L*3$XBAGZxqfQm&8F(wkQZO}t_v2A+4o}F=Ii-C zioYHN57XahJ9Jf$ea@Mk&(kzrO*JN-%$vOUfT^>9&+};tj4XRjr@u(?Yv$8B*kQ}*GGkU&j!Ofj#+Le=q8{RoPt+w^HjJGS4Y&T}@Ma24U>U8{aEEz@~sP1mHUS~}0xzL>=D<9uVop>H39 zcS$lZ8HV1Ps?Olnf3`KUr7C0E-Knf?wO+U5(sTkEJx^^r72~(!a9B;jr9)4oelOqu z_N#z}^#Ag_yN}cNr@p&h|24$xs@nulxx^oYe+kMtm z&j|n8Y&ex$x_4stx_>uX_S^E$oGvpvXvdZ*+?$m{PPM*WQ26}OdHwh}QLfdXdR4-H z*R7rT#~!lJJ9D|RiFIdKz>`fyX9dobhc(7+Y z*tP4GcwFVL)aQ3BOm1vBZ+pd5S5!>JPGe#6!aS+VVOi&!?K}l|GJPK^Nd{+Zak{om zc<+a$HJ6?CbA)&1mMW=mwYQlsFtgs!u~g)=RYcUcB}PHB57+xOr!gn6%u;4JTeUiL z_wxO|j+^yvslPF5J-U*sI%B#FZf+V5ii z{7i*T@AOPBD0Rt6E8j3hG4<)rH45ehjGwHY2Sjnze3}<#FzI~gq#F&Iu}9^3&cB`) zB7N^xm!D%+N^^~Ku#@v)?WG#JGp^4K@b$PF;8Xf-vEww$o4g)7Y7f3#S{FR+_J;nC z;@f&_raDa%XgprayYb6|0Fw)+j_54qSK?r^uhq@TW$t6(Vdi1xW$sDX9NE0=e%AJP zapoM0LX|)E-Cef4)LHMVmEU1Ohf}^6EKjEBv>u<-9(*9;V^pT=E#dYhlNR;FMXu9e zJ-8`4@BOz!ckdNTea?RT`hdDX?!f$4H~vgr(GYoD#yUsy%G2uD z_fZ8$zl+!A#HJprI@%AK&`1_t*Jt_TZgKjaS;l(HRZ@g+Ecton<=RU>&nft>VAd>P zd=h)Ix8%&53u{C?nhwR=SDrW4xB2y_yIvwIkJDxK6XuzAwZDGf|6g}*b3b$Pn*-bT ze%shSKPxBqH1D+7!o>;QY^*HdHZ9ZS7d~yu+Rc=m(!4R~-og@_4vwCTSKa*)yPrOp z&T%kyoAh*{#K7gx9|=8NVJv0wXyN4L|Edx$Gvuz;WH=l4zxcfEp8v1K3)U9*eT`>H zY0&ZXNjT}M_g7WCR&3p^xoov;axV2B*(9FURVn^ZOzb{l+#LOXOX>svXtrs5Ja0@Z zgTAnAGLdxbYY7NeInXhI!Qj{18`GxNw7)4{+x{Z0@L(>ir?qO!#AUgTmoQ?0! zANIF5&75C5vH!NE_EK#}rahgLzgsd+luRtSbUdi4JoRa%rMBvCgG0vN?_b~l3&|60(S)0?9$)g+`;ZH@+{h3@3J>SMlP+`TReFn6)gCXCfy2@t$#X%XN)EzuWhHpJ#vIQ29S+`>K`= z3y-;KEj4gpJ0P(kFKct!1qLPo$H|9whplr`l7Fy7vf5>7%`pQbsh74{OY}_3-umuc zak3~#RnU+t#pCHJm!F>5J(J!nJrVhGp46Ui@zuH?Tng^UcBlWjyW6H-#xL3^Hn44y z=hglzAA&7CBwiQApj zS8Mi_Za8MX;BeUbug*QJ@+wdFf8w#A$kWnk|37Qiyw}fvkf^<)TrlCmbuqcJDErDQ zO}x2&z6;bGzFb$!*shS_aAVO1UJ(XPg+O-~1^Ew8W*XZ*St)P(Yxd zrLO$`X7NocMaD?FdeW6t@4Z2McH3UP=3gjkqIGN)!)mFkFB;aBy_;R=V&Xr+@O90B zqGhZ79g4kN=_y;k->be~{eJJ=yLZpY@9upzb^f1sClXGZJV@T@v*r)m z`Do8+y2(=zeK=ZW>2oDmP^c|^!Dtg(eR{ZbW&1xf$k~K2Nv{*C? zmQKoAv7~6K-AaK;9f2DTiZLEsVzuXgLtH;&`i+-8huo5%ywaa*XtJR&<8qeLp>;0< z-rs#ZLwiDDLfoNxH>p)m4{Ty(-G7C1(%S_;7w@(UH@v1@7NUA6t3)BjcZI*rqlU@0 z=Z$&ayj!xma1Bq|>@7`hi}#k+$jy3KaNS;Ip83M%_d0mrTU9)Ho?NOB$=HzDe*Gr1 zz#3D>nZCU{XK|=DyKUe9vUc{p$KST^GH$TlX+F2o{N2wic}b>OQ#jJPs zT?;(__<8KVee2`DG@s4hw(94KD47)#%a$ZB3w=`T6?W=gj|O`s_uAqKo$(wFd!(Ba z#UJ$~XE0mN-tnOCV_H~z%#qdKZe;g_IR9 z#CtC!cS$HQt1vK$SS2@hPs<7Bo+@_E^1R*4=}SA?rOHlLv){ukd5;?CUwKOdAeN)^5K$WsQi?rUf(B7B6DGazQQW<L@3Rxr_f@@n_V3u4$@_bIls{iu6t`^Z z(v1o0TF-RH@0ei1=Je#w|KGvue>{wxU%gICWS`L1&a6E>1zMaxSr}ftzWei0aUOHS z>2;Owo&E3K)=c)yC>2Vcb5wZ7U7gSsA&!anrMJF&=AkO8^6z=)QD$Z7BF{~qChwPO;J4%U|9Q}N>)PgqveK-h`lp40mSbxcgRxW3%Gem?z(Ld%SeEDa4NXKXg7tV~mjWLGX|Hv&`I@0sWJ6WZyVZq1+L@PC^E4~`xMZ$3XTyCb7ru*2WRB1C z)t-7f=ITqQ-FJU%@7k!vx>~AUR>!os-bJmx`TN&*H6PXUCTlVZT6|}GFv&?wNyDq%gsi(!D)aYD-%%B@&+7z3np(`)wKIQL=oCgWa=pCSaqh&bDCZkS zt6Ea){x4F>R%E`HC3R|{PSVm=tqIcvJ8W{87xo|IJ@}qOQQ*tM<8p`ou1h~+6kg7h zHY@zDn&HhO>P4?Z^Imd0thczXzW z#n1b#AHQJxv~UNzDzBonTiM+;$$}eaA2JTpdAR6pX^i2~d0!^x_67Pi2~OZt*qoF}|fRy5#eR!E6^ zyQII?*oD98L^I2gDSB25lmus7dHO(cN}tTtlg-awcUOsL=DK^W+9T?CvR2`(f!KtK z5Mh?hfyOIqmh0Z&dCxWfsm_a@r-k`J{;9{RQhQgq>~Jm?b-rdEd0dm_!5#L?4U5YP z4b3@Rt$CWe_y4=cK7T_vk6^*{eUk1n1w!dPiq|IwQU#9?Ok+GYD#Kv;{u^jS0gFQ=g*C1L<*(6<FX#W9cYfz{Rg0A`PadFk}ay{J?Ka25B$2q4(VFsTrnJrjRe$}q~nwJvDr}ahgsp8oQr{yaZpOd zXX_V!X=nWZtW;l>I+U(&>y4ddlM%k(=i=&TSN*H6hi(t;31tj3jq{2XEL^bl)uL?wSF^WV zPCpl+BB0EA`cLK@|B!3hyR+_w*S>OJ$f0!R*XhswTo>=D7RDH+YVF%uel2w$hi?1uV`Bp6VvNXNqMA zWsMMC8P@&HB8lZ^fyv^gpp*kD)(r-`XUHbCL^fEoyqOhw+;_nT9pTM!ht@kC(d=0- z`0(8s=LStsaOLyQ)c2JMT zO4XHHE-iBNiCQmrJx(=E>+zkU@Xn|iE@wP)4M&wN}F!s>n! zSvj{%HvDQlUjOUCA8Y(-eWhU`EP!I`2TP61+JyfE?@h0Uco%sOv?EA9f8ee zH@&W>uViZZbhel8^36H{#t9jhUbSDYJAdJ!%b^JxAJppVj|K97J16U~zW1D!T-1xW z{WsiX9KU6}-=qHP+pYWpRR*CVwuP%@IJXHU`puWumC#up>bGl>vYcJ!t4|Nt-k)Rn z|88)Z<-YQ&Uc+@q4=k#zxF&CB_Ev!L@UwN=@->C;3|oADJ`wvTsNiUualZPOpc>QG zKkD|A)-2t$vGLEN1nCbqZSQNaI5S?9=Wt*W`BmaSrNr`ReyVp| z)z>(QNo?&Da|Ht{&c>UbQE?8}(^lm5zxo!XDf=|;T#$8DNdCI-2a4{?oZZKDk^Sq+ zrQdVcMLC8yg!WG7+E7(hwW#aJwTZp6*~0#3zI0}PU#`SdbS`Gb(W1)JF()Oz@2J1w zxV+;UM|w;PIoYj4E7QJS=K5TABK;*Q1Cr3*cB?WV@tJ!^V4vBz%48`Ix1zYe`xt_|+= z>gy&P&HA~l@#=T`ZU(st{six*FZ3r4*?@?)pDHJQ_K|L>c^iQW=6Pui9{2?edt=r%68?-jaA$0@ul;S5*A)0%fIA2#b| zPhbD@@`GFZeeR{kvnJe;-Isf7YT{h?9OZ2jdKIddl)rmiTm9C4hY$mY<>Cvh5oOoeY0udn>tcz*wfisT)P z45?GKymkG5a;~U}e)@3A7U7b2z5y39YXumW8JRH_svkRlxAK^yZLM80&(ted5)MBT z<+ri;eneOzS(foyt$nppM(3wbQ>8?sqE=q|s+(PVAvVtEVGd7&sKDQ>*UuJiP;6SL zoBhvZ$G4Rnn;SSx{kAzxJ(s9f%E+)~Vz0vQ+V^*UFFRAeCV%~3_HZQz<%jRSzj+s8 z8+CxIGwAZv)UZb1RYj}A#ERwH&dv?D+mZLq@JNKCZ@@7fMwT}}ZNEkDdOmylxysMR z#rOXFne#V&{V!t$p~pw|zK9oVwU}|#@#jh>1<=)&EBV_PR(7~HEHM)E)S7ihjoaS)*=Rro(Jc8U>L4Z+totDLBwrsOMZ`N$?-}$g=zw_bU%B8Xj=Idg6 zb2i*e-;fctD0W7nLCh!NIeYXt+U{69WtrwEbn8jwML7nBi*hmFKAgQX+n{*=cZSCu zG3{DY7fqTz)#TMAKGjwO877&uf7jDw*%^dAYHDu!e|j$6w=uqS*DB3JddD_)Y;?%` zyZmUE)cO59+%89&w|&_ABxm(Ir+=fw+xIECJIKTC0TQF2l~elYpoZ~wiIrdiv6_nCU@L(x?4Rm&6D zLpGG%Or36Ylac4=pPB4&Mc;Ji{FeKE$=K@i=J&Pl4rbrui+bCAQ|qv!KupcK>DP7d zvn&&swmi-9x6q>2^IYZ|%4^+N6p#4J?JQlg*ED|9tPaDdLYH*m)M{qyH@C{;DvxEE zMcw~#g`=4rrYrOGliqJO>HVB1lx|n;&k}K4BRk~YGHXU1@r$eM*%#cn zy)KTcD$TC)&2`s5j$3`dpZ=dbEp-#;)Oj46C-^bx^YH(@EW7{4cU#6!JPU=kC}sb5 zjPx_&^y2*AVxk+uq!;v0-CT7_!s)tPwI)Osx3=E&f2 z<;Ukss_Aq8eiP~uWqG(=f9K+zp^LS*?`c`OY@ulA-!%&Y4)mQe?!WWV$724%2`^@q zX4YQ#`Ny^N@N@Znl8iIV6Q9++cReM~sN+i|CBNhw$8T)i{H$ov@##Mg z1#FmeJomJ_?*APp8@=5A+wY!|dN1timX57#5=#S`J~TLMJ|mJUp4dn zHuc+A=PVcg*yt6vJbzZp!I?{)*KXx!3OxJz*MXJcar<8^)(<-wA({}H?4G>ls`UK0 z?N5K!|9z>Rx98{Wz-U{uRV%q2trbp$uVPrxvi6imb$PgS@9zuFeukEg-SIYs+j9;$ zHQ1$0matC#^-eI*Qa5ay@RGkryi7h_xir5%<)NYZ-GCRzvv{{o%FDJq&w8U}mXp-! z#d^=#A|kA0md52?VgGEv&2Z@3gU|f;kNo8{zW*UEg@<8c;g(RI$?AtE-RW#7w%DKd z%|?D^y9Uo8?LdJutC^pzQE6Bv5ZiNeH&>LTcWG+lTCWvz|5V;kd#0NHTx7Ec-(}aE zywmgloO7|X7G1JMgz5MVUvTCCTy_}iX`$Fj4(UfeUw zQNX37^e1b){404kbxzBiHw>2Bw3Pi~#8<~mzP&Z_nadR(w?*qe?OP&JaqP?8y(;TD zLT@UGFPT#Mi>>L_>{C+rioGYySnqf9RYU5^)7u*VzFX7C^wY+vN;&4$pFLB#qRbT) zKJQL{_dQNb^5NWDp)%%jl}ncw-aCGybo294)%~I^9GjI@POP6l-8^|>@CD^ft;Nrc z!;Vexd&|WTaHWc|;NSnae^(|>=X&OOP4TDQ<(ZWyZ(8=6Fr=GaPo2g7Q!Yg6Vwh57 zr`Ov%YZeEsvSAF|@vGH+vUs<|r`Ymp=a>eyn;l}d9BNC~o;C_Sljk-&UCO_4)#BSx z(SFarF1*(B!D?>mduP6N3-SU_D_5I;!i1XD6Nx{ zlVCis@ZZB1zt1L3(@#$>Um4kYx3s9c`QxXQl)ER?jJ`d5x!Zd))9HDx-l3d}m#4mM zQ%%>c`OSM@EAg1tmMz*(4=VW`a-B5F$gYoEITOExF8nfmnbOa$9zENq8`i|6 zyG*y}_%{2=6uwf6)s7iV?SLhV`jpObH3-d zr$2oau`>GXg4Ox!qIYgQ&=4ARq3VU&v;;ARBYbOJ3Q`=3ca-0qQ(Mz>!Anv}LUOJc z>)aHR4CxtPGW|rSEY%5!)IYe!V-wRSb=%@6p-t6IKTp1P|JA3lbMl)ty4&YBURm4v z?2F}BRyTI989k|Gfi5T4$b~bMZlA1}lzJ%s)?}k7aSefKcl;RE)IBu3v|C*5#jzXf z)>p|YF)!jdWFi!DAiMe>$2PmQVV&B`OEPBWM0|d=e16r@?P9e#rK#ZFNd4K2uUi-D z_C{=Sie)N18hO*=z+Be`)}xNKL6WZumPH<%@O#cJ)t=KV$!mm!7y=%zTza&pHTCO~ zrqvsQb+p&mPjg$n$k5}V#oRp_Is7ee4?dUQ#mO-9zHRpY%L0-{eGQi_zZuruo%6FR zLu4{Lr(l%-Le@{xj0=yx%&XjaG3l_A=aC}AX=ezT!h}_3t1^E>Qy#JPg}*jO882#v*ZCm&!`3MH|Iuw)N0Im zd1m|B=#SZQJqjAdN4zBSu1waLI@8PjN=4So^XH=~w)Ad1q;N%(ed-bR?~6Cte!BE% z^4qp4f5iO$l|Ggdn_I!deC@~lsfX6&RVaT}KXdQ>mdda1UO(G+%l*TIm9IFM8aNjJ zda$9%bn&LdQjJtWON~1&$|3o#TjL)3SG_xNTJw?CJI5>sfA#5&s~o2)>7KS$<+L+> z^u8-p!qqT2TNy(NuHN^A>gL;)?miINkuFD>o0ZaJP?f+WeVijkaqU}+ikC3 zFP(X?t!~-w$Bw;W&5L$DG`qBe%e#Hzrlm2j4c|9&ulsQ?c7A=;&%dI{du7g@yBfT~ znRhXF;>R1=>-WCf^?F^^-gl3*6kS%|-1TM8`a9Lf^?zUI+vd(RbIP4u7ULqL=$jdw zi@ZL|82l2As+}!PF&J; zPfDotb@=jn;lIRNYR?sgd@st~%6xECUgp!gymyAX*_vIx94g+gdhyiDUp?n?HXANY zWL)s^-(C8r@=AmRoS8`_tAXrEDq+8;j1$JFv(|axOGEIZ?pgE^6uDzKxP6 zzXraU`)5_izF_TT$G&(?y7hj-pWTZ#ly14V(S5%-%W<}oOt-GR=B+%FX1Buh)x$aa z^ZqT=4!7T&d73+9t0rg+w&$_LQ4y!4ngTwr>~Np&$J zclG0voHM7oV;B56vHIdPj;YHN=kP?hewQ$_IZ~s}JJmXGb@tvGscBokT^CxUx3#`3 zBiv)_$wTwEy!qhWslN2U3eR}Ib+!{!jkHC3CiG055_yf|%RL*9NjtUdGY@Q?R8qY= zYP+$E{^O&HOoFGjyFM*taK5JGETy9I)|8QjNil$}pvWWg*TJ1Z4~p;oIx2lRgX`T2 z&WdZkLMKJCLU&zWxsL1%tk?HEN;p$46 zh~NnkxnIs}z6sA*JMZZ+D-CurqyIM}+t0=R)0X22b`L9GJ0Unkb&9&^F0R(HN}kil zTdaNy^&OLqf7CX2-^Oiyvl&k>oUiQnepU~ITT)8d5~r5Aj#HmbiA*?rYQ0dDrp7a^ zdLc!w{pm*^P8ay>Iw!j|^6oZ?RVqCveakl-P-|i{Fbg;;b4=?{_@-Q^Y3iQ)rzRaf z0uUll9m9FD^}6!?0TFcIK6eaP6Ea&Z`p_`7A!Sc=eo?Mwur?-_L8lQA)ad z;6#V{oKGAK0tWAQMz)`e{HHC)C*Eb)8dm6(|%*(pY(kfekx7d z<9~Ct?#|PXS5N7wE?u?Y=%lAtwrFfK>J-p$`BI`CYM679BjdnwtGyeUORt~ue>y*P z!Y<)c@)jX6**(>h)%~hB8twUS${%LSTJM^1HTbn{%D>yyS$j*@?>@I%p>T(L##M>T znuo&if4)dgUmv|M@%6G9>l}m)jDq{N#BGdA4Yj$gW8YfQGq*u4O!Auc3B&x%bGju{ zZVM!ztWG0}Z_%uki3-P-qHXOMq* zvd4i}4x7GOoVR*-Gj6tmL}O8?)A8)^bLVrk1DEk-1xbsT@9lJUkJd z+h$H`d}YY5`L*t3p882fvA69h-4VZ*E!D8mPBY~SU;ooyK~XlSis$6FQ?7THw60?2 z;k`e#Qgqrop3J|^pI)b0r~T4zI=+X0Zq?5}k?e+R)?Av}6xy3>S(P=J|JLsUmva;M zrp{MpZ0LAb|7&{nnOk3<&CcU%{;=uuek&PK7SHMPWxi@p|H^gens)K*MG4>M2m~%) zlX_m^YSA{9)>9g2tCwcOX)%4JBF<%{jw!Yrtm2u~k5Yw{m2p3Za zhb&d!W~FsXFKymt{cBEmzbj+rYc^J09_~7>gnP4Rb}FR$sx{e)&u{M4y>j*Uou+)Z zhk}K*m+Qn`?cFwAv+_EfvAb;Psi>W^!nW~pHoC0HsMFK*_FcT3iRrv2!%0oGTl3Si z_xj(vXRH2>QgV*o)x$gY`rI3z7p`=KCf6AfI-s}9gejDhYR8Kje^z-?H zpYDo}p4*q1GHGP6PW!`pL7H1k;&yJR&F0p=t48?=b5ohqH#N7i%`}->Txd&pIJq73fj%O%6_@{!;94|tlD?O%9%1$nP$I{@A5iv z^7i$<$Q2HuRmm&0mQ0u?b8~^T#2N{fz+ZH3lJY>H3~6BTab zVQe?!l~!m;FyF@f#AV~`%=r`Mi?6yLop{=5`PWlQ&tJ3|1lx1Z*q-z4VYS}>csZWN zyRYIDlBRkeJGCw+SK`mh%yhlmk2gFE;80yAFs*EN|Kj&vZCa~e_By}YVx7I@_cjTR zz}gEJ)}<)wuH;Y3RJ~+4eZ!6Hsk0TbChpLvK6E)nJ9OoxxDs7P?e-O)3QwuUykzpw z65b}gS#194S${3|9Asl@Is96Hq3!zly?;v>M84j8E*>NNBlerEkjTwr#?{qxoubRc zwh5h{>l7HWB(t;N>#YB`ldtbT84&hfhJt*L*sXxdsw68;!#x+FoB@e?R&9%+7+Rk=mtI)9p_SiEQ217?f9jeC1uyIhom= zi{C1$w_V99-M-w6!QsT7)XjYJ_x`C@I;Qo%dDG=RYzJQ*$v*u|&b_C5ZKLL+otGq! zNpF*R{n(`;$n=Pj@{+d+#p>S5nNvJgx^M+7$$07!oVsMq9|LywilY~2&p0c#AuvK{ zfx^LHy}+j#;d&D`Jf7;wW`q<&N!><_|_}AYr{%Cn#e}~$aU0rsbYVoRa zI*X)Qm#_V$@28vlS>UhyySftYnak>3#TS2FwoG)tpi76KR`d(6of>bK%-O_hsaMgR zZP%I}-F!N!Z2Ow{_kcPEzEut{oS(7_}GNV zKOtfdHm&g1l6ks&jf}SL@A9^_vx{c#72#;T>b&~J(-Us&96LejWApUC{QPZ2E;`q@ zhyN>=|7gW1uwH+DwT|ID5q9_cE03{7TQW@z?l^QYXPN5G$*a9II@aChV_T!Kz%l!% z`reqd_Bkn&FU0DCT+uS4V`HMGqkFGrH8oj%i@9pKVzgN66 z6@P7iUlzi>^H|@-VAWb0{$ z+ZOk(+u&0r_N>kNMv;r*{WI&{3-dno3Vtjg(9m7*ZBzWFgcTve4&FuESMB|1#UQZS zHHNig${v|0+Yr%@SMHtRVqJV|v0=C5^m(RRS8hIZCgVQO*4>lKSKG|I`C0AIE$8dW z1}s?&yZ)?a*p+m46Yp)I4d3SN_`LW1u0^-s8|~|U)GVY_^J4q|TX{KKWEZMlx?4B( z)ZZ6jKel{d_d2$P;emgXvR>{rHM0rZH@}R{$lbu{ck*VGg#MmWzk1i6cTi+dYmzLl zTU5O3)Hg}LncLsQUgvt2scQ1t<+Mbzht1|^{Yp8;3#Q%PoC{kEpvQG@{~I~IsHH3$ zQeq`;`sBVTy`AU2ZG!Q;_nTfzD>Uf_{e3I>Hg&SyX5LMe3rPj^+A zdd|)??=R2TFP?0FtLm-9C21jt-FJWdTGYDQEF^7>*TGfCGFn!1y6=0*GXHm*!jjt7 zMMo?6)*Wj~aMt_2k7p&9Pw{S5qbr3)29xhI<}83F|zA$!%~>NBU`Yf7;3et#LM zrK`VEUvTR+v(XDEGRG8L{Cb6GRq4Q4a#jIQ%c_FP=H@U-D z`Pz$g$JsUWnBAh@`?1W~{&}DG^*@XnYXbS^PR?c(&wXuJoU#9Z>wl((38nwfua3Lk zmm6W$zB|`(y~L#C+A`aPv42bUPUN`L=BLYfM$RYd+`OYR&3C42-HwGOAK$uLEkj{?Y5upD?c2gmw3ex^-X&m^e{`Pvxtf3CdiG&` zOXo)PR^%R?ldNG?o|b+guq;*YOp1QwSLXI!TmDsEGaflQ`4@{NI&AqHwLtJ@$*d)I z85K{x+>Ir)c~|dV%h2Mw+|%dEEQxmp>lHNIw|h_K>YaKi+naCNp%Bl&`Y$&MmfXGb zci!iMl*2RjO>r|jv*-Dqsmp70KkS|}A?1#xGs6O_*7s3`>wWhvQo2*L@BN~z#UIoX z-}tLPpA{O^nJ*EF5C)s9`cciPuC0o?VC7Y{}5a(aI%=c(e_ z(9KhlInT{0m*!b$D}L&fe@0xk!JHUV@71YAo3D0kbjn}!wff4RDDgFJYxMriORe6U z{BzG^r+3^bQ?@i;`Q+F8rR<7ak$dOj#S!}IhElTwFW!4{WSLE>vdXV(yQa?G*3Q`d zMm>y4@lgBw-I_W4;^*3?ds(PT@4j(v=B?eWTxNbnfs@t4xJ6o3dM}^h>y76y4lq&A zzS1G>n{1}bxUfO##@~6LZ$5i|Y|b(Nn$Me!-&>x~?!Pg~@9dh3I>90x7F&-`T(>CP z^~1aSZ@zyN*m>*DtyvaYOM4~>$#hL=>y~0%lF~MX$?NR$Ui(YU&YHg$?7Y;hyWJ?+ zBk;U{pR#9m+}|^-)887uKA=^*C1}H{iS1#NcQ5l<;cxNESKUBw=1tWe&D4!W(zh=b zo=lri^u{lEn$D?N(S2Hze=vMAYxOIyImo2ckZ|vmZU3yFf9j2A_ldsdTjSPo;P2Gp zdwwSb0~MsjW4UDB$-h`|#y!<(^Cwo_P&VUtOJ7X?7AADtf-!r!t9r}>Lq4%Wt%rLO zj?D8}8g;kWMW>rBKqV>lYD&7=v}-Pwfs1-N0=Jw9nd#74HCblE@ubEnGgyDtvOb=> zVL@;2zrt6gE;*lzjo%gi~sj&rEx_y|!cExb*x=YR+`-nyx9X z3i9)kjyw7CZ{BKp#!PwdeEyzot7fbZ-?`-btZ@6!bEnt7oz}m8%^A>8`(dx}-Cy3- zU779opvUl7$g_q|V%pNNPZu-*{hbH84wHe8SGN zv+sgp!HG&<+4jD&lD5lAZoLi{-$Wj{v#ohXbMUua6K4f1*z-}@)9l9A^{rHtF} zzTt^g@)9X(mM#iWO7bzVFKu)YTP^-f#&<^KnmdR5HH9PUc3oY;Bz`J5eaa}5$^Y8am!~_HB}EL@1rJ5?NQ$(lnvmTTACZNT?*Wt9f#iUrBc<$n%*NS1>f9Hi(%kD3FXQ=p@Q&KgQZFe%~XNioGFfEDIUr+6v z*_L#(YSMx(m3FbnNR{6oCI6(SA*wDvF4UU0y-j>;6aD7+Cd-X$ za-Xbt5Rw`0bg8?jr#fxssVMH?oEL@br_ACNUJ~1T@>-Imsm;#Y2FHKCym+_QT<-CS zV|VNSXinSKdQIBqwVw{(gJ}PsDVIFhOH_Zf{JvkXEy1SBZ;E>SM~_rHgQt;7S0i0h zc57^(81{YI&eu=67sOqu3BOi$k>zPjWWW{eUC*wbk1BY%&sf_yY-vJh##GMmhHSyEJ*9T|F#w7vJ+T7hn=gfE-9Iq zzqjYh(j$(Y0+MC^uk!e|PVh1ee#yJSrT;k}tL`P8B)w+whU=~i*cPb2op1Tb-tYe3 zUthJArLUDA>(nYzYANtI##k(K)Yy1Kt&y17%9+d=aVY@avWwNb|;-LvgWclxH`rMOQ{=eem+HgI&80#tXzMjg6m0fq< zc-wPUbAi-@i&and6jnTLpAtUFsp3oZgciT640aoT?_*Ht*thkUezfKti+?kwhW|5W zzT>zx;^|eETtA)DYh_xUyvt^38|n5Ip4X|-3~an8$G)UP=XBNAt*2TnLe{Zz{s}rV zX}>hb_Q=xk&5549Vqd2_8+>~rZMW-w^7V}gM^<@nEZDK9Kz08C33D|j-gyk4dfx^- zIBryNn$dZQ-1FA(-fiQrt*3fI8Lw%_?f9f)C3M4M^@LrY zdfu*!vkEgjGig)m%l(fZNw}BGZkN5ca7$v~g%uaoSM2#HqS}qdq$V! zZrzfa;WRlbb}N6}r|aDx_AsP!ODQq6o7Y9u zEwoTjsBoI|`9!ah%+G7bzBW7M$VB=ln|&`h^75XmarU5BMl{)tst%$B!VlPfcEU5}XPhhOi% z+l%-32rxZTy7PZy{>FkMes_2NXr1}8XOdj&DuL8rhl_+ab8y_f%%dx=yW$ChrW9+- zPDAdg9u{YNO0QY#?@autTEFT{glNKEql;Zfby>g8nzwoayJaWmHvQ{DB~zufvwSNV zmjBjrPv691xS-L3gY}%QPRH>#8Pz(|KPk9yG&CKN<-aSnaB5B3>hi08`=7kuUw^WH z+dAneAsVvh=R_Nnie4_5(BS>{Nfb|Yb4(4zj80tZqd!eO z`0T*3iKWR0*X+D&t!wqLMstCqWju#qn^Vidj@ZSoT#j5SyEpOn-GI$sZZDJK)2c~U z*YdF~w5n?~-g0-AQI==vb;0!83}QjGMn}^0|8h>OxzqJQdD8S5AxQ!+Y&ZS4EIVw; zDE@G^+m`Y$hXtoN>LsFJ)WvS^K4#cCzjZ7;bKCZGE9>_T$r<~cK#{_i?bIsMw6 zUy)+ z=Gkm=5Pw=&-&o7i_h?~Zt9+02=|^L*~d+^eUO7m21G3e^h?{IzfscQ{+7XR1+k z%b^*wfRdNps?wapG)2p+-olVl+YI6RA|J>!7zd4G5@>&oQri6 z*m60d7E5nnH94_Ib+uQ@>LRfx`>j8EdnZcFo#pEHN^9ZfG8_xOwAWJ= zV`QJJ>au>Gb+6%K(uE_2=}nI9S5mt?k9id=vAGd(*5dx+t;>z9Hmn!8UUW%Dr*74! zcNI&eI3AsAuQRwLS5`RnScLqJC-3uiK5=h;-DZ0Jx5U|qqqC2)m4%+#Bpfu;fxUB) z(TYp2Cat>TdO-5Kg#G&)=eY!HK0l9_%i&|X*yiV z)x52ooo~vv&${d`U6X2p7rAjRAun&BH_H0#Fax^^_zawegGIOgBJC^Y#^#!lm!1v-+ zLPq)O=)$v6TpWURv7&wH=?P{X!q6*LPTfJCt zJAeP(&ztTmu627o&HJ51jQJC_{XYyB{L;9Xr0IP3eShnAuj{A2FWswmYx2s_w7}}9 zEz3i8&9I%Rao^bCi>h4LhgqueaydDgosrf4H-6p=)_?i!RgqXb1COW8hX-rd9-B5L zOhhJ!-?O(tAa{nI`R!{jq;suSAG{OMvj0-?6aPHOP{#Oex;Ab{mP<-V|%r?hb7&eygO7s%{okfS@zWBzB@ghIbZ0Htz}yw zX|jLwk4dWnA{eio4&5(vmKl@C*W3U>er*u9lXBzyHe#Asj`cl6$wgB zTa+5U?e7BBUfGMi4H=DQC6nfR=BOMJI1?qN5NZF$bxCUD+DGqmLxt1d9-H$2hfW`J z^1>Ih_x_ur9~^Xb>t)fK9^5%gT%YOKU3KHzw(M+5ZueplfvdWnk@-T>6XRG}cuPcX zoL=CgZdUZ>!q$566`2#J*9YEOU9^IQ;cVGs>+<+0!!Xteed{e%k3Vjk))a8-z`ab1 z>X{K257j>Nb=3(uAtU_vPO$7;>+R>nw!9Agc_Gc3rzIutL2SRvq^k)hS6%z_^Ye6_ z$Vb2TRfd8B>yq`hb<%7`p{k*|Mtxqv8#aCYDgHHDF-l)dG4Q1Ajq;9fvpE!TMmLS8u1=e{BqZ|tg^jaRCr;+cdNS$4mgE!rMYlFR+YVX; z@%pJFs0UQ`MY=!z+q9+!XMSF(f3@iGZppj*o94=vo-#2sS-L*&8oTN`tpws9LV5H`0;gqZQ+8Qse2nEWj-#@EY7b#-YWN;$$;fs!;A|-34Z(I zXa8BY?}gHqj#(myYOf~=&0QtN#dynE!TnzIs=HGYb?S>MuB0BY;k{Q>r!)0{=Iq#w z65BrQJFxNYi`}n<7n>yqe&5o&JZ|}gslrPROgiC^pcNCMkg<}JD}h-*cN0T`=gAzi{m{AP0!bg!!ov3{7kftwD2b?u*?-Dc zKFGnyTiOwp>b7?Ew|)A1URVFGsm|W8basVMaxQ0af6c@-#oS#%p5F02#Zq6hmuj|q z9jN{k;c+bHHQ!=e7rh_c{l9B8n%4h))7^ZQktxD{lbMy`nYZ)yz4-Cj<{0yV9XcEg zlPcqH72B8^XtR2WD|&`IELf4eT`{G|=826epYl(8&c^St%m+7^b~HAv{rT|L%7?O= zbN?>gD&=zWL{Fr_RH>B>Rr4KnSI3?{#dP;}-jkiH*G!IiCU-^s@QG!Coe>^iPad#* zW_mh!`bj(Hb3&h{$iJC)xg^p*G$2(kGpNCExxZlBKl|$UQYEJ&=d!Q6y7zo}N#6xa zcX1vL;XI+0UXt9N9u4ZIQ#ZD}Q@Ig5Rcm^((M+#5Hxk%6Ez@M;71^vAC4)B_Po81NRzlUMNRY?1cex0J<- z*`nSmJMFmso*xb$>KHbh%Y5|e+Ei|4qi0uIcP(m=Cb`3#oUbFJByvgL@n9NU|~TN^z8hs>Cf=4+hI_y5LP`-488^FDs# z|MO>Yy4>GaEA@>(3&s9@e)QtqjaOzQ?-o2G8L+j=>*c<-&Woom?6aSDC&4h@`OEeD z4L_8YCHvpL?-50JRqaZqwEf#wxJ~&?(%ZEM=BV0AFL`RclV9xZ3v-qa zV#_D2&XnK#`0Vle-|9auu55LhCVam3Nnic0l$Qp(gbF8y_0`TeP;*miO8PObG+Ez9 z&Gi>${8Ed(?+WOIDBTdX;OSc<$-?&RiLjV@$Z;CI{!tHM_8lc^CVt#Vg!0Qn}1i zQiELT6#Laen6KwbOv(FruloMitCQpJ$wVDhJ@oYcyO($4|KI#>`)}&xpN{9GIh(@{ zHXWO@>d2dQYvNYFzrI5E*sIlx>as8DKD+xTSN_M(?udKU$M4E7?LH@Pz2oEFa$ip| z3)Z(YUu-zeD}3c_?s=AzP5&?3Zu$Nr>#MW)rTG1`)7sCj55E1*C}_R)ynPx)2ek!1 zZ4tJ3KiBfxd$mNJX^+p>J_-F_lKCcb6_47Lo=85^=mlyTQVlZ&kK8^bBG${+J;6+S zdZ^&KFEgVQ8Fz+;Xm5E{@ljgTb(3ahQG=N`t_V!!6rhNNF;NJ-zy+Z?<7$5s13_xJDo-Fw#li&Vqb zBN6X^-TZFd|SoW7zbmMm$8+Kul5IRIfHXb>iQMS(1D5SAKr6bkYV{Mq~dQ=PpLpE;;(mPyYAZ z`AdxNs|ect-O#@!LT|?mJ&SKI-sZ=7tzUI9^k0O+v`bfH#8xTCw8naF4m&9GW{I@l z^|X~2wT`^m)gD;XGsV7FO0=+CF=&%@LSXZryL&I&|IaS3`&xsq8xBX~D9(YhqZB=DGQ7 z{Bs;$w3d82QfFJHcjM>0`TyS6KlXheKWoq7ANG&`NA^_4U6q+}u;_z{uyJ5m4G+(w z(p*DL)@!e}?}_D4^;LY7YUX!+_p;~h8KM8AS$zHmd%d2tSUM}7_s#t#J>_M6bN8&d zw?b80;f>D8B$ny>kA(ey)Ee?bfuD8J$L+II?6nVy| z`#&70{nBvIO1xvW;@X>cQmf9^KGD3u>-O=?&E^2v{1ls<)NRU{c%&Nuiz=cMAguCI=9?`6)t zygGaLPoYfPx6S)M-0-z`d#m$!{;Wus7|%1YmZ66}K5e*psg18Hb@R^jiL5`>Pp3Ja z>nvD$euDqYMVUP!qOm^PGngIsW*^r7e{D7&S1UWuHA}~s$lx-5|Ce%3a~8+Ec((e& zHusz7zrM&?JI8T}hNkDO)p4!Ym!A6Sf7buq>J760bf0y9-}iL;H@W+tBh8Nrss5P| zw%&b?*mKtfDu*iXOkC9QE41fCZAM4(5$~5N8H%1Qv2JPeE(a#xk6YIr|5mT^{iKq6 z8!Np`$~2!Dm7T3v+GsC&lco)c!D65~VFzD)kKy}YP@(z17&51SVy2*=G! zT+GO$y1q*#z{mW3I)~4LAFI!;%!&BFQm$-|8F$4jzuo)qAG<8}(%mfIz3u6tzio%7 z_PD+;>1?lXX*ucbqVjlBozW&A9+~ouw_ffj*txi5((0#9Dwpiv9*=qJq#-%MGomFW zMY7_n|K3@0=?imYlP12IpSJOm@0I-%*GRd0+a3R++3Igu`Fr(2*A??GeX^dmX3pB1 z^2a_d`1r%~tM>PN-TQm~%Xxj;60i8PL-lXktimhh&BruTZ+m?bOR@R%^Lmkl)_s+q zTF>mw_wY5AZrZy;KKRpF#>;AIRyNjuZiWAUQmnW4(SuWU2NLG$njVy1w|A+p66;+f zhDQr~7Hz#_5%Nx^rGMsJ+eyZ2mQUCJ&eKG6y=zjaZN(;oYf1Y&csrfA+5X7I zzRUVDYf)A-`+4rmMP%mtG>>n zI=E|x*U?Z_3J$ihbcWhc!v+7ji zqElbJZkJ5;Si_vYhMDcP&T3A%>T9d_J>H$a>)kfzw>rEzW!6nRFEkB3->hlNYPYmq z{7$)DF{q5))~qM+gT$$wa|9(W`W3crG*NIUsxa-Fa7ws;-MzodzQ48I_d3DOTgTIM zd8*BERr%l}Qv|>2S!f$@sy|LJ^7&M#lC-}j$hYWQ_ML(!qMIt!@-3_TCmF;gN$NL+ zh|Q>XYSw(@r82WeZQZffM;js!Kb}|>DSNo*!lcFvUXsh^^f8HC=~DK*=2@ZR60lT9 zT=oBrKhisb9AZu$FwlLu=;KQR$x{+5=gbYd6M8BqGfHFOvPqBKeg@deTF5=mVVyW< z>m<>96_>7l73&ioO9IP6+E1!zcQ2h@#N-)t&U2Ey&ecs}KRM?7{pDdF$|G|yytVVz zvf8(+>mS{o_xaKkBa0u_3=#e%z8{Wd=fBNvVv|VKU_TPYkaL8O|A?5wkG<`DFAnxE z{-h-KxcFkoT;($&57qlJ)z_siukc!1;9Z}4JFe_z>MrAhKX2F8=$BvAn-m(jkzerv zkMoXF=c9`_Tgs~(0;W%yk|&rhqZlB0W@C7qtzx4_!H$yD(5XFnCtn+#d>RmtSU97A zzpdn9euR^&%h58$rv}>VnU{&`O*IF4mm!Ib`g<7#f*sCW zoGQTL$rgLlcaqiCXyGdXJR*#$yZbjC^)hNb#N1QLuwkCcqgSH$YcG4}Tbs;gWa2z} zPlMr!%bf+&8SX@S?dZ~2b!q*=2O{T1r&_pOn0Qz#W$9XH$(D~MD%<^44~g&l(7ONE z>it%;r)IzC{>gN~kL~q~U$S+xI9-aaaS11jC@*i=s=y2jC6WCgSo*8R2xzYrmiofr<@ak$v6sxM_rKILX zS{kbx?*wT}YiYB`b$!{y{ZQzA=&Oezhw=lvbWSR*`j@?#DbX@X`nve(Ov$jGD}BEf zFN|2ta&w6}gHDrRXF_GzwoS4D3ktXvXp38N{&WfXB651O%6*p?AKrX;9rt(g`JGQ3 zdcGd{YrE7m!l&j<(_?r3_=>}(+hx3zSe^A0PvrF7X1;5eQ?_e+@BT2&7q-2>&%LYpL#xicEZZ-26^-NJ(8y@ zEnTE{wQh!<%zuAfm9;CA&gI&f zj;Bys(d_jprtS?(C*@uWXMMS4!QSAk=%pr}+E=)jc<(a2V7mL1HH&lQw3&%nQ=s9!x0_t;e~Rn@aL zz%b6UR$%oeA;+t$9tOVNxW&&~*HdHrl<7(#dS^QIUcTHrao)jMx}n-%EY>a&nW4Gb z;&)otWeE@E`_n@5gDb^m-YPt2nHnD$@$&FhtB+Ak!KyREg;ly(B2rd$>Ag42zIFZI z+WMjZ4I74t-`s2a;tL+lJU+kl@z(7!S^T_>XE{^~*G)fFD`{hK)bMahg0S^b3zfH< z9Jh*`Q&HQcbwhtysUUxA8PDw}>wZP%Wi%aiQQxt1#_aU%o8SLC_Okx>U;8c9uRZskm@yT*ut0G?s$r9DR?M^8> z92l0m-r&%Fqc2Q8`z_VsU=z#T z#RfBx^icJMAVrsHS@C*0`E>}?6=usscW%qa;fX};{`jHyI%i0|MfBf zql<-k^RAiHzu$CvdP>^qGiTiY-|F7?I{xpea}$;2c2!;X|9k9ld|k~MU&EDU7ozT7 zNztCno|~8OcAEy*tfb8qUkj%=^UuBFn!JBrZa43J?`v;YE$ZFpZL!sWqgwB8oK~Gn z$4TRxqML6qskr8uRkZ$9*k`H>78kL_LzuR&YkJ!C%)ai zEr5R$ho)hK`fP?+4)Zh0>zJQ^FNj}sUv@+D_p^`Qa#WgpeRpr>{NG=9%l|ojUM^ul z?cZvy%nj2_4@$4!yEJpww(oqcf?p-9Dh*EET%^=D;Y4`()u*poY{K>?X3lNua+pxe zd)vfyUEWR8b$Mnnugek}!u}sloqoRKb_lm}(Wm`2-^};_Z)fV+di^{9G*8WiH_YeP zr0b|Yf0fA}FzMTo=$~q?n=AHmPQFyy*vYuM%JANcIUJie$aM$p6;W(nef4{k%4J>7 z=lj0BoOG3gQ%5-U(76*QvZmZ#UiVIUulcTM&1~&wKC`Es*r4(GtQUu)+)wAlM}*{7 znufP2u<>q;JvHIOnd6&2=?Ly++Hkb!6W3r!XMf4F4nsiTM5J`xFJv>81yT#p8+| zZ{2?8R^()^KHJwT4@_qic{$_muh`rIMeB1sbJD*Rh9$DFE$!)0WnaG`c+ca4h3+nm zb2r@NwmkQK+P6nsYC5%gO7g!y+uLro2#)8qIaK3$``>}o>G9PMH#(m=bKq~{zpd-< z|97wdvM4$~&sSq%$)}I}bx9j{H~jHs)n@)NPw}X~?3}G0YjU1S32|=<({d=#y`~j? z^WphbC$_z@-DRw9{_5i28I$5SI-fG?d2AxcS66RnY}IeT;UzK6xY?ThTc*~w^9wJB zTFu{K;c+pT^Ut>_MIA-fLa(2sRKF;>*HC7=p|_4jD=&$=K>3eJ8QUQPFUQ%AJfBbg z=ABr`eB(lh`bpCUg`E2gb6(gwKYDfT zb$sd3&G9DLQCFWmFYudOBNy`IyHhc50#o-&2HS(8dl^or;U&H6e!&CR1Bl-@C zO1gFFm$d3l;m~HhCKMHWYuo+$n@{!kfB0eQu0N~ras$Hyqhqt)pR@nD(7$XqchCGo z4O#15OgVE8Om&{nQrO8>EG63b=vhh4GlxaH9xd2x)HLbAj-4CM++MQp8}GyEUfo7z zy0)7PO`XD`{Er=}`j;=$YuJC9@k!HZ#Y;)-P7_TvdmE;_n{Ob#0>Mjn-VIDx{J8a(>mF$?Idhlde86J{zSuA>{DB!JH~S{zF)N0M*Uqb> z*YAJamHz)~%Z^v)?JVb=N_E@!lSz4w$o>{<7EAtJi9JgkY&ZGcdsneOe?iLim`RZx z{H^kB5iQx5y;@?g@BO{_ebtXIhd&4v&6%xyX8N|b_xHc~l-(ycyYTXYHy#0-z8Fp` z`Lz81JAbkCU5{Gj8|Q63G27HJD8~13?ZI?Dt2r$b7Tw($ac!+%6|0w1u2_rEh1Gc# zN!Pj<*|@rzcQBn0kSlCuoA|fr;gv@U-?o40YMUedO3A7#gp=o!iQ)38n*$g+0@!Ap z@R!}-%z6BUmraQ(-`rHJ7%&yPc7);iSdq~Yq~i*{!3SX{kz5ebAJ6|l)Lro zex*jy`=f8n&3!KyaF-m3Ti*Y0c|`Z}J0)`_eXtR#x@@IYQ6~DjrV2-O}?p9i2OTpBz^x4D0!26{~xFk3RD}&e^dC zUnD6_-IQ~`)l5)S)K#W`rghJwG0=Q{^hEL$3I*w5{f-!skIrAFI*_AL9NkrHtEyT0eHPZz2dZMl7TR%hvQ z2HPF)16H-ZT6cft28WA#S4^y4xm$s;dRhJT;8RC`WG}Jy?ti<;chX*glWS(q-SJ@( z^TFSY&7qDlvUY`!GN<3Eczbqp*|9T@XZzH4#l4)Bq-LY;FY79>V*~T-2vz1?Uym>N zVbP#=|4oC|leZynyq}*;p2oJNX!R?hg+d9sk*mFLeS07OZO!WGTH4RrR%T>LeU9+i z^8Lf(@Bc5h$NxAbeeeIW@AK<^Y;iul)1`0u&U;p!OT*%v|A(w&7AyI+al4bj&mCG; z3oR_R`Zs+@56{eKdhdV3TDe;|tfAiNJ z;@$JqgFBUzi$uKRHl7!Vnj##PvS`t#Rq_g3R(QBXik+R+?PaI4^2Ev;4Iu@W_{{b9 zeiG%cd+G3DpZts`Hp=VP?cA9;JFU{NwPo__D$!Z`3%)rt?QP|V&Ab^F`*}fnC+kzM zkPJB$eVJVyw_{30T{d>8}6V{{PqP-S;hy@e0PCIQu>J*O@l=Q(dc^ zmxce%<7e)?8mp0?mSw{~Z z__T^=^PPYEi#G82Ep(n2*J$|g?R{xKtM<)P!X|d9W-aX4eCOerDbuHxZe)5LkoRs% zzWU8$O?x-3iN9h||2Sjn>{!8VcTdT#b@9(JS?HzVZt8jR-puWacQT*NP^Jii>2*zc1?9yJycME5_SGilWcANN(D_`0JCfzF+%Zi@pE1_^x&Qk@O(&%B zEHL>|aQiSrvZ?iF@w;xh+$`zI7jHfiUBuPW$Phg9$SsCP312Ts#a3r4*qAPGG7F7u z?{i;qcnQ;#_nYDc(jr^jul4k5SERCME|j)8!d&S3MCIy{7g_>N50?vH6urUzWc2~R znRj^RWZe%ubMwkVZH;3^s=+c7ou92enlh=r@q}5<%=qG$Pq%!Z5f;f?H20f9F-ZPugGMq-m+y;>WeRHz2!t$xH?%Ycb@ayliwN|srYqLsnXl8K0Z0>4Ev6qoY<7K zGNtQqi?DjoL&y6rKUvxsjUS&qB4{F;cqKnoXvf7=lgU<`>5iwB=6Ftbm{6>=y=k&! z`z!mmSGYrp4DRN8ue5wsG4r&oN9U#&89`dwex`nl9JW4?-}uBzhplh15R<;y4OZRr z%loGN=y$(!;M}Rh%O~jyhBv$V`4~lBoT{=*FX7Wno3l$}FSMD=eZE3s@}JBnnqFQ# ztY!!?qOcv!ng$n z+ivzfQ8gF#$xf3$SdhxOX;b9|-&Yz%$uTQ(9&K}p?^)z+-pV3$`=P5t+xdSP4rQ0m zmfL-oUvXP`cH@mVZ(<9DO^qF73#BJyonejVv{!6byA?n6be5cCaIjcU^oIux*T~RL-?IH7DcEmx%NH5j=9K zQ*ldJ>mh%eFY4?PuUB$!5PI}#S!6XwveGBTNtI#?v~?!)UkD9Qez4%2gbM$)g&IY_ zSU5xMyDzMLbJcGh!)l9Vx<>-`&YSCWoLzAHts5qXyt6_2}%ew=k%u+`;V@ZWW-x|>aI=9!<8Uc2KUb40h``z@KN2C|N72XsD% z918#YYGGjE$uC8UcU(mN7`Ynm(BCSmC*F3lS>o@Jr-zK5Y|_#TSm|OND%c((J$1&r zjPkl?bN_!^JO9UL=AN%pSRyzJubSL(;H*&4>c1$OWpqT~l&@mR`6Yp$71T~TwXJEB z>-G_>W%b-zu+Pu*{fftr8Ba&7Vv-1K{lD9NCd-WTo4vnUvwQEY?l__p{>sl}qVu84 z9PR}iOSXRf8v08&%Kgc^C2i|(TE5u2DQQ9cugXchjS3+G&zRz$dfwidQ4@MoNKKUc z^?WzO^GX!HE3UX3R6WZYIw__(G~Ud+{SW4O?a zC6|-ZE4OTFU-#vdw60F)>WX+dj-YZ*=Gqx83-g)|t=hPLs`;kHn>JakdUDlgdrR2m zWGO>2iGwlKGi}&)4A=wnw=UTC%6-A2I`4L+=hxz!8BP}-2>PwMb?VKp5@&2|k|&=! zv+$|trG(VV^P0GVo11{uG6inm#v+mFGMRBi8 zeNq|4QuTZf*mCEzE}F}EJ9w>~$HlhjB-Xfybt>;pd8N9ZEIQBFEo3+?&b>!-`f}#W z@50WB$wcb3Pu75(?iQSASge{Ju@OQP1lpIG3c()RXsnx@##{ zx%MVT)6$*i3_ZmRQWO*?9+0)X`gO86?;XdT>JroDCOfV8;=J(ADu=MdXDeL$8*89QWEP8PM(~*tYWwJF`e?mlOB|LNUpSA?YV2y>?n?+qKvFveujEh z+m8m_dvV}XSI_aOWhbTF1UBZ+Jkfpmq|Le$#e2{9PpwXwWNC6Iru?b4+@D8(<9|Mz z&Oc}4x#EVcoA~#Bm?XVE@@D%a!-q=@*f;RSPJGV$A~%F{;fjO;SF0qky)KGzhPySM zJ2NY|PS$l>sWM@GfktVwyOQnh_<}DCz3ggQYR}@{tc*JMlyU1zE|u*j+vXlp^8Kn7 zdweGs*L5z<-gDCzD&#RIo(~DkSSF<&H&20|qjlaA*|xdHJ*Pt+zDeh=nK{LPKXa!y z%K@EDo~w^`b7{OzdKXG+t{ z^5SC>ws7V=G_O;};ikKze8QUC1=EX{sNK+BXOikPFFWJHCijI~MXyT4AJzL{xNA|w zJ-39Sm+5xm#o-qi%(tDF6w9wF8gtc5>rnVwm*V8M!W zHnRJk9%$>bVgBAbclD{RudDt#Rir1Ta{R4L3{%}J^<}}D!do9#)xNQR%I&B1?{9u_Gfd;@+NP|gAh~Z6 zlhUKP+HcLBUwJuy&&S67f9^1bM7@9i=4!&%q;Ip?#M$Iy136!wKguFNxi9UrI+~QPB2_eH*8-9E)wbw_V|UIcMy?BNq=Q z=!V!mQ1DP%`mw1xu(9^V1U2R7(b>{krnVDf{x+}K@ag+(>+oL7hMBv(+d0>LTcZ+l z=4YMe_amqFuBpmX5H9-qS#jy~OVWqV98~2zIA=45))52g$y3{M)(9wS>zp)OY;$k| zn-}w+9jy=5eJnE{|2v_yT)UKM&blK)`ildEj(J-~F|zAO2Wb5BK4$K%e|*-etAgjI zMkuwe_43kDdG$zc&4Is6iDL75GCt0nq2qcy;n!?l zy9}1p+J?@1!w`FPuT4tz>sP(&xz;+L(c8pW>yUj{^6>5KRk?mTCNsmgas~CabO-9D zE@E39aec8=eY@!`{_ZpE)0e%Pn3WxR>e|W+zIXEfy*qLG#==uGjz)NyzElv<*idyv zIrk)s_JfR%vSQUs4}P#Y^1^Q7$^Mfkzt0e5-x;u`V`{|5V{bkuzYz0YArs)Sa>L1; zJ5NpL&|-SDN?yuwLD=IrQ`!IABpZD6_u#mv$FIUf+=x)(lCv+)HM^5WutZS~}wQ66+taYXtQw{24KT58B zYUJhDI$f*u-G_5(H})*DIKjxtYZ~FRz*F5eb>r%Y^zQ99)OX$}>?=r(*y(4JcCglS zn!*+lrB$0`;x1$)xowz{t_vo7*?`j@D)t4(T9rbtF)A&);%PVZhlu~kXriGlZqc;EK*4Re2YaXVBOYb+` zTAy@%!lYOq{e{c79+#ONa3J4N<<|f0xwl@gtND5S-T%k#ezkuYjD3GuYnw#))LeY{ z*qvW~=fhXCZ!OE5#dd&W{fcE?Id+QgbEFrqew3-2#m5!%z&2RBe1FVN8Obfv*}mV; zT-#ITEv2&}Xw}RHpUmqVx|@#pN`BgN`mwmr5?OoE{SScwIBY!KbOp z{ybZbZ{Fjn#pL~`flEm5(!*x$$I7YotVPTR!`vEJ)g5YW7MkU3y4`0lcXHh%h2jap zL8_*^Pt`ZBv=;yREpkf6gJaBRxT;d*dozw4x*2-s-x8PlWe?oh&9|-6+nm2-t5N^g ztV!#VzXpACoXewKe0x)qR?xAKlpwy`vV|9IW*$6x(YsT5zEHx`)^E}_x+hjG`5(CC zlAhP!EypJNeT$TcH{7eNlr`P3m0!MN<2h5d>`37~Pj}s3U-ND1=4Ed`&)Vp-YQo#2 zF;3wdKTchGB+Lwky_WkT4fF^g|<|D(9kaJN;sr@?CbAkj z*A1^vY&anpGV!rsD_2d6jQpv4ydh6}rfvvWaBbx`?XCmPtY^9APMh*W_tTHHA77ZB z(ck;&DSPXommi*as;%pjwXONmwmRQxOG(=E36h_Bmu1LCUsQUu@P?+{hR*()ZL55@ zz3SrYn{5-kLQr!>iKUL6Q_Gf4wr;N8FCj)8YaMf5&zSOP%HFyyuIBsSf0lol!e`&K zZ06n{mHO#EWEmaksBUNAnfnk@ay*(@iJrA90-?8__r^k=)@|9Bh!-kZKK-I=QHu0B$5OXFTj$+aloWqe^IS{tqUG%pR#HX< z#qn28glBEg(u;DvVIFuQ#$ey4mHI4vVn!f;-kUw&v0^@Z+}uOouBIw~>7M`p{+c=_ zw{7=}gfk9nZWCS0X{(dCRk!TFBGdXAoUwBlavwB^9$fQk-pvC)&fe1u)Vy}rJ?hQI zkkIAPh1-e+r}`X;_@UZqzR|ErL|wG&e~{g>=WCZb2sz2!{J&Ua|HrjYqd6ru^W+^m zaFFNGlg*pV!V9F#3ZxDMJ2D7HrC*%6*Vz8|JNfztui4Kq8=>+;R4 zz-X6NrI+DDi)|m=Hl~Dz_GzwBxq5QDf$kIjSI6IU&)H$oK4I_t4To;6zjk+q|K*&k z(($Rw>%aZo($TSE^3jfUe^%=4suWDn-32N*>Jy7nZ_DlacY9xPVb(!|V85P629xD^ zn^b3{aopXxpj2#1{mchWr;=D!`njiWTXb=X`t`t#rHf9vgp`?hu|`yuB}<8CJPE!f z(B-~;=@q^11~%=>7Mrgr@XEXYtA4XxR$b}Ymq{7ZzT_@BFn?L2?@e)yy$#XtwRbG} zq-lLeg85FHX#~sGupq_5UX>C$uY%Tvs6EgxTy!d3Z{F>&{ZkDpg|t7fy0ZSw>x~P} zPL=STy7eMcyWg3x6d~#3`A64e`o~l(s@!3zurcf3ya3*7muCKb#I3*Y>8{)BD!xtK zoF=wdd!1{z-{ytx=7KtFLoL;QSf|G9I{ba**LOUH)01|(ZhY}jPRrxYvQ<^QVLqH8 z&m_VuOe@}mZ)BeMs6aHr>vhVWA%LwLCdeJpbRU z`PFxs>wnzL%MV<;d)7M^$D;+anSP2-_Wu_kveY4H?&RI>?v{I7Vh--vwaTua|MR{- z^Ja?i#-6;k#q77?s!}6IQSow@E_zQ2C8(ZhSq5z|5qUxzu#dS}j-hVS`vklFCs zO|}hHhQD*Yn^(74E<2zbQP8`7hWet_C#PEi`rU)zZ)YwGR(>ADwr+&rNsHo8s&-Nv;aIhulJu&!AvQJv&_DD-8EV3Ag{N>S3h!^ee0jAqst@d*_++&=fhbxpzX z6Kz^K8;v+;+IdNQ;N0oinv!F$T(7fA=sNeglX?p^wClEatOZqm6+fHfe{E*&3H_5j z&)`wk${n+|Zr&Fduv^sK$bbDB_Y2c%wRUYX&x)DB=3brh=A2C4(_O{}m#-LyZ{&DU z?&_z{k+)W3;##eMy>|Ldvj{CQiA%etG^ZMhs29JWqke1 zgR2=HwC3ecW3S;{`zChslKbZ83{08=_O9(>^pxDNjU%6R?I(TDGIw>MMXJo#T{>31 zu9Z8b79kr_+1Nvl@-~}htBP8m_O}o&ND0LiysQp#Jo}i_bA-8s_2edr}s^7 zk;XLfy=o_l)D}Ctmn~cLZ8p~>S>2rstX94!C!001tST#YI3jqL`=Q0F#H5=UxtHhd z`0$ANVD*RX@lrZVcPK?X>-GwLvvr^KRpSJitW6nN<+3+svgJjy8h3CRuZ=^z_y14k&DWP^PJ29IrCPGO7ylBg*%wYsY0P>n>d;mm z8dI)Nq`pcp|Eko4TT?&!Gx#;1Jt*@fy>nJp&7CI)EnZ$eR?+^=YmL^XRs5oAi(W8J z-8Azgx6%~P?UjBr<)&Oz-6cCI;NHCOgE}0}J{u$*6~1O~eKIxL^Pk+*q%$4cSGe`N zCK~v8#a~VF5KcIHCX4rTseaAPMv2#)x`J9qLl5&RJFQ?S%rGty4co+2#?|_^<%-zP zZ3`<_Ycg)kE)1D0m%p!Q%Y^O0GHd=l%3XbqBh}gEQt90*GddhPpYAzQ^W}y|{KNp` z?3;5g2u3sN*Clz?JvlvZ)6SJa3a^`H?W{=o>Y~ZHQzI;X=da~wwVH)Gclm4#ViDPX zMC-7|)u$;%@{-y0EvK65-ulmC2{ctX`=jEAI&a|NmqMFX7ye^l+$z%5E2X1)Cg_sJ zn&VvBO)2aruS>0}?(yn<7H-h7QHOiotJ+ojI-Rq{4!8a7(6jYFLv};h`l_GzYo2a3f12tz z{oKL}BCFOJN#vfpc#nHk@i*Z|JNP#Go_AZzAQn^8y88HY3BjVT|J23U)ich_t>GzU z-t{ni`-g;!XYIdUXcwRPiz~rs-LZ%_3s!s2um5>B|NqXVdu+eYWZSgL=0?C{Ed|~4 z`DNV_+77O79@#8@H%UV1X6BT%Cf9ea9cldDy$s$L6ecog9}Ze_)j(TEHFEm3Ag`+v zHZ-~WaD=O_S1P&M@?zD+F1-bJg0@`yA#5DcrTj-l@1kknwZ}`C<}7mgwaiY3`|&2$ zoU}>K+D;d`K2@`+9J@4+yQxD%`{5^R;p_ePJ^7?~=9k^#IV*j9;gyqXne1N6&3n7& zU*B&2BM~3+v!!&@>W;ad-vMfV=3eIccA2%r)xgB=L(1}`7rowEf>WP>u>@7gJ}^Zmm9FWVNy zw3lk{&=vky^JP+U`ToDU?fN?$UT!(C{o<~wL(UJ6crVvZ?!GAXGF0x8&%HK>Nv(fe zS4P#kuAI|dGd<9WX^moa`G$WgOI`;FGc&D8Of6e>@Z|CX+U$XT1)<+&tO(c>yg%~W zsnm1Kk__*;7H2i~edj%E+}voU{Wr?$krwBPm~;V|kXQq$x9fiiRrD^}EjRV=oJ$)c zHmg=iJ^u1ZDt-d<+_$kG{;F^C3l+R_W1Gp|!=Ah$Q}^*|94Lq~^P3?zO@2rJJLTr7 zS6R}H*<%mBc5%Ft$6bH*&*b~DC%)bh3STd&D6~IzqVmct-bJ%KYS*5fncI1M(#Z+l z4v%l|Gm-EzS)g*%v9F!Obf?JY=riv9_PHm2Oa0Q)KlXC9Ux4^#VGSey+biC^G?MZC z5@z5o>ce)yW6|rXLiL1MciA}2jS`azG7tR zqZ??g$qub8;_+M$=% z8}=Fb#YV0!y}hOUUfuW5^K~a37Y6*z)hdb?3g5ox%QkJj{flyMGp0xAh*~e7?91~l z!0*lNb9UCQ6H{$IFu14=D)P{51au-V@p2$_~OIEcr znC0%c^V+FNPIId>?(Tc`tUIsnzVr8U;oBBX^se@3Dl$Cs^2O5Q_kZZ$+qQZ0;&o}4 zPBP2?JM-tsJoOv=N1wG6GuHwxCFM6vHLx+Y7>f9}}6!_$0?28WsDq-3>g@6N89bLUUE7WbFNv$N}+ zr`oQ}vYN*5xpG}a({lBS341=Um%dx&kl)aK;BVA*(WR&OyJ}eq5>FmAx!wI<&|lc} zJ@c_$|GK8z7AREQ7i&&E`X=z|`Xh3_PT?`0VWCrAt%&jsbqWu03TN#~4Sw9VHDlG; z@VLbm9+$n_mr5xKqz2bU9=h+Uez!J$M|uAHGfQ~6eWq4+I{#WVckB8+zprjy+q94aRvCEho z%pNFact=!Wqe%Hxp{-|f{bSB{L@$!O*t0VB@8gH}dn&KlzxeOn@#57_1Kx9Cr>ews zuPzGwId9HJ)zlIZ^_0-a7wMCvk~;Mp(A_|x1z?Q_f%{rmXH+(y&WM;#YT|Nqzje2#XA(v1I)w~}Lysc3|7{b#B`_S1xtDkmWo-xa8R%?|u2ax|X_L7P{}gFIu@q z?ulpe*)1s>@;T~0aZV7B(Aa*SeL)!LyzcXlX{nI!A&^~dJ_9AXI@y7`F_t|UiPFlr3_*5!ZpWu!|zwD zur-l$WYb(Ib*ErWCHuBTCW^a{H5qrAum8TUXvMNkhsA!2r<`YBsB{0h)SckFyG}@d zjFt}PS;|+$xlYIBhO5RFjWv}Dmug=vtp471#&KrAr_b>sJKnrdJ$~=Q`FloH@e{*# zlz(QO5Z-=blKNwn8m@bJnf(EZ>n8kl|65!2w6; z=jNO?-)+JpKIQS2WwnQ=ESGtAdi&j?jCqUx)f&xOxY?m9^!T^j9RUvPk3@7_Gqx~& z6Y>mx7$Ir@@b|-a!Tfh`r}J&vygh*<@!_eaM-#pK?*8S@|9U0d`&ZWcCwXy?lh}5) zsU0&6lwTR(w0GZB|AWUp>{_?$&J6e5lfC0-My}e0ey*EIfr~VSBbPA-rDT~Na4Tbt zn7RIH$D#@oq2$OW$))>*&4+a zod$vKDn4@qCZE{s(m%TppFcr}-;0K`?DxObpY?y2 zcY%3_p15gl^ozEw_tvROZd$WX$e?K9GmXdpcjts93LIWhC^pr33Gd}jXa8?!8k{cr z9XZ+DvU|~t9Y!`{>LwEDHj@17qRuoctVuncoVxX#YS7!an~oGocja=eU1jr6bGnb` zhNyqZBByL0&5czti#@hS%d$VUwj=GVf`R(~e?R_3u)MHxX?wan?4#2bFFU?dHvCim z$V8ofsbrGdxp~>%&);_Qakb_)tlRf=QTm-vm!jh$`S;DXJ#h;X6XU<8g)3ay@nZSW6MN@7 z@7H_s&BgJJiS)iJeF;s~dj)57fCgL__Ma24E>-kC*z0mf;FuYfr`9qYOxAK=`DnS%ria`Uew61O)Sc|{_T7>sBd59*;wqchyu1DCxacOu z5VKGuh%xF8zNCl=(M$o@w=(GP$dHepq$9=w3y&Ny1xYB-|SvRP#Dt&s_3$)@E_GhnX(n zu}3E?`W$}1(o;9sHEuRfQU3cSyWcPD@4NM_Dk`gYEBh}mgW9WS#jBT>1>bBx&bD!< z%9NcePRc|~{c?)aV`afQr7qv)EWwdaUhfiG?uRa|-&x7mQ zTV*lNorcr-lcxsqrY&s}SANya$u}uc%0(*GjGe=@FRNVb$7SU=M(d~k=6oU=KA|tu zK-|gmhHFN`q6-gio}0V<{?|Ri=c`W{MHqX;+%5Qe>H*jEKZjPN-Ea`Ue}A_}tGC1o zrSEOmN{%(TJ+ZrTtBvQh^W@)JhZp6FvG46t6iCWluutgs+KzB;(eRlIj$hp7UbH&m z%u}w^8G5zvo|gar6Mg)bLh7s4pwzN`fBnB7dH?=p9TI*W)_uhP*ym33+jF|wBAVB6 zX3rDyQ@$8-(jijvYv{M#j5}L84YW%)AJWpZ?YP$dQDNhwspq;iC$|?bJMQI`|3iCz z*cXk?V*w)KKg)6)ZcXX#v-r79DAlQ1;`f?; zb`?(S`Yq1L?({0JuHjAR7CX%;N*g$)RjR(=wG8a#(%PC>l<@JywL@K>FIjpdA7Sn* z`uZW3Idt0es2yFJHBU6Pj%5`+dUeAg=IM)5dwUW~Leo~Mg+yna)CyU`&Axu&!LAvd z$u=x(iSt}!eSH=0OjG`2r?7UCa`Tio=d}IywMET;@Zp~4_ml1K?nb{UReHH!NOvpW z@7gbqlI?$S=kHCJ`I_hD>Z3_@S^S?uTl#0*=oV|Aef{XSz<2r)8+UqS9O}EdET^|= zh4*>g+&`ypZkc6vpzhMnuG3KtJ9-v$B&Mit&pW?|f7TKq_c>uEy}LyfHqM$eJ?oB8 z;$@fhT0+@6j(zd7u1wM1I>Y>9>m<)j3UepdicXct?vm5~==wBat50=^N%3+Y)i(77 z^Ey?#igsViX`UmYtRf{md5*GUk>9qa=&Ub4H=nHI-Ei&YRrXEG4sFYPx99D-)q4A1 zt<*d=>*6Z^4~rJJ_t!o5&dZopR;dsZuGP133j4e}S`j`9t`Z&Q57v2!h_wD=YcLDKQT6T3!P^`=pFYmQq?Di#<1?AMw^2ob-$=kwNH;{W&O?SJ;(J$^~C zY}U8^wcomb|K|PEXks(*NRnOEpG7lYNnQMM^>@`Tt{^*Cwa#m=7?*hRy~*4^cT>Q5 zY0c2^F}iS0m@LBG#;9}q^{&fz<90nM z+5UZD`#%$lIo4<2gC@KsI-2QOkNxJ zYI^9BJ35ih`(rd_KJJ@5**PTfn!zrUFKN6pIUN}`x1CyWY@#ji3D+HI?4A$fzulY0 zKh5;um;H<9akj^-U`cD^5l+6|_GP2W``Q(MS+{XAFG_0O7!k1|_Fd(My;mi;8CiH_ zeN4T?_n0Yn`p)RFy}cqU&Gb+)Q)Shg6C3O9t$!!D^q4S%`cpMNO9P?vW=;#%w+J6~ zUKuRTH2sm3XUF5Si3#^1;q~X`_kU;R+x|)S*KPRP(>?FwT>YJiX0xaIu6h;V%DQV+ zSpkQ^1(QE1#SH4dObujh3%@*3UM^y4yK_mzwj}-NNp^{Pk!?qwW!>^js`OweQM(W> zRQ2?F^7EYj61Tr4st1Usuv~;7lxWFU~FsqUL?7mt6Ep*cNHaP4 zvGAJT|F>rUw~zaGy#Mm(%#!$vF}ohzpPBdXf%(2aJKg_1+W+mpU)+V7_xJx<=Uz@b z=J@xF*yo?i|365+n|J(~aoXQ^Tjq9H*;V*@Wk*a^escV*>6HW55*0+#t+f0Rw zYYX<@zgMlZ_iT>fV)N58=l{xjbEPjaVcN95Fy6q;ce2+J+5w%M{g!FWIq47&`8KIZI$u)(B2}UbvyDH4o_)PwoX{laYIQqz0$<7 z_Egie<~1^NM6$eBtvuMdfGb!!b>hsP)sI$%rg|EPOg1pTzCYpRtq)U|_hlbmlPNX7 zwMp*z>;>94?2g4~#fd5}%C1~5Rg$WA<8$7>PmtFgJ!}@+i>CU^e_dkBOeg3a! znGPa_X@AOoO`NR!`;_pHC8wC~sJ)*4L-*k%r=E**KS{mPp65|p7^2Ga_Il^-RIWSQ z{)gNwT=?#xNNwr)>gWCM-C`SOv~Kd@e>~~Y6v2SC7rfSQ+GbtI`_y!5>lHuCiBG0~ zUb3H$*Y0oSMZciqzZ-=nPh7pILG*N2o28|?a-?fzZTO8PB43`d+H4V?wcd>RnpWxo zlS@jAPo45lei?dxHUFlBx#sFu<~}(-za{9GuBLcV+8aI_>piosvsi>4%@tLRnfx_E zV0EVmr?ko}C+A(I&YYQwjUg(nsdh%Pt$N~5Wds&Zy0*$-#|3Z(ez)iO{r``G-Fr-x zm#6Ma2n>y5U!<+~{E30+oefTtIr!E;3=KUhQ+#&!&vv`d?EPoutIuY~eO_0-S37&v z_r8}oW#9GxMig#6TJz7l{Qsku`SX^o_~o@+-m=t8lax^D48RCDrkgtRuH#+t&+{~wW43*b#DE?5is_n29cjK&hDf({7#*1DV^Gz7i zT&}Om)Dox&R6BNEsk}Yvw4vDZvt3inR~St_r0M9lSNz7D+vXL|EuS3`Ja8*X_kSsa zL&{tRqo!kZEoznZa|BDL$Q871SrW7>?ym6*omD??p1M-&+Zy)ILhRIy3dcP=w_Z20 z=*&r(kg-_DIjnQXXGdehQwEM7`+lvSo43jM_RiPauK)k?yYAU}xw;2?*du%yV*_P( zB?T<+E`7RXUbFL!V;&(3k35%puBEofZ`b|z7q8YGy#46@Ldnp%)7AHEF-r|y!<@Hr z@rF8?`)^~j{8xHKTrhikfA_oUzV|U(*6-i-+rIvPcHHk-Kkvny-59Nt^JYPIw0>&3 ze#y7vZeff1Cy6t8nCwkDG^We@2`ZZ2y_DXi>$V+ONvSAzr#?SCq_BjM$m8Ni{1% z_2i@%Z`AYZ_+H=NcP;Sd4(C=)=G|p%>9KPvR-AjAdwHHk)uWXUdajCG5DlNvT~r&q z@L;Nh4dW7%nLM*kEWH`HYn`=m;F~@5^{<1%0#BB_HneWjP?C8bWGfQ+J7w~6MGCR4b_)>S$HgVIkvVxQy8JenM)9X#IJy2x~ zl`MDtdFa^LOPOm7HKTl!*E|R}`6urZKE=_~F>b*z9o1r)sX?(9p1ECD&~jAJx|3{g z=dQeZt#U`(g7X=D5AGPexG&3A;I!`b%44~u4+~Dg)&l%=fA!~^@aLe952PLoubf@6 z!YzCDw{y4uT@0OG|GTn(<1CI%1snM~W@tqeui5Gvp)PSep0RrIwT88o=Kn9G|9^1h z&zH&nIAaSgveupX?B|gmS)}~Td_wPLM&qv?yeQdk@->1TA zW3Gd~s>de1l<-zd(7Ap!*64BB6K?%bmC2lpJrARf2280u+nu<%E5A3Uht)1h?Zg4q z@JC#6+<}qb3LifgH48m?VM@AF@w$EHy>~lyM^y$bd2_emXZVh;@C}P^9g7u`F0W7B zsIgowq*o<_GdwY)_1gN4ZSTdI1k|>@KYwaF(n<3)XP+%RW^1`Mz%o=Xvq!WfmS&C05UC>N1$t zaJh_8ZYsNHSvH5(LFKk3QWe2Um3_04j@p=c&(WFNA|V~Qvgi9JgD|Hg)z>=06Dy7S zQdx6#Bq_@^seC3$hj2wsSrDy>NBHoP@7IA|;_t zetj)2hh!rs2(!OG5G>$#x6u8>xtwJ->P-bb8yfRwr87;DkYv(XunDy`R$sXKY5m--7iN`4-}kNIn58m%1vu;~53BR8Dvn7T% zYE79};asUBE5A%t4c4!F*;|je!LRmrLbOR^B3k*Hp(2~cOpMW9IDzCrFdNEfl7b!BniKl zJf5+|U-GVhDmYvb#vsI*^tAPNzQBa6mst)AUTf9)YlTE^(8;*7bB{c?gLmH6KrdFt zBWWi;rBu)B-Z+cvNyxeUWe1eHV>ACm9khs6T76EiB(%Bi)Rz;#6nrvn+wtALap!2| z(%fXdl$iZbpJlf9#qBBn^Jwnl=_>#A?pbcrO?&;`A*e~)i=t}|OO_giXo zdTOeM*1qUx8Ht?nytQjDtn8e4+4+%pK%t4-<;HE9{|-yd-Ru5-+#6i> zxLw`Kn#bz<(VCBq@m1gdJjuJeaKfJZ`$fu~^Ah@|^hKEY-E27J*EVHhX#T~_?UuX8j)=Os&r2yM=ec*85T-%;=2j;HarP0Y+P-QM!=dGme=d)?2_xQ;*T<^OFx z{>@LzC$M=})i13E)8DNdH4d9hsn~X0qWhJaajA^B1na)V&B2-PzGlkaJL%K2iN*Qt z6<5te5)a}x%{mt0>``PdF6d;I{PL;U>G|h^eW& zi}Yk#4)A*KiQMVEivMd?tLm{|FTd}9`KS2UtkyZfrLq^6FMIXpzVmHez0}7aTsECr zw0d2`x{eqBe!pLDUVQ)E{fXUr9?qrTnjhU-XL)Ve0x53pRPF{TkMjwuyERe z)vCgUH-!E^IKAJ$_Of6uO;kDA}tyuWwy?wut?lr&;sdU4GeV97%^Bq<@-wC){8UyVtE%A)9j^ zcOCLhGK**bxbuNWR8OmzSbl2AL^s!`DL1-5{gDw~WgO#RxqsK{JF<(G&5wx^kO_?T z>o=I_^SCJHM`&-;s=My54Wgd@&{$i^+hOLX!(iST@>1iTd(q_bqM(D_?cNLbW_GO2 zy(R2^{;q^JXn{Py)@qZf@Y*+epXJ(4T&n43pXHMF+PVY186UoTz9|97r z5*L-{rx^HNZ+q<+)%W^|-xP=46F($2vt9OjHbL{SiqdMywQo44g-2~m5&JFC9n>Ix z`Aq2klsN&5#S~546xJV2zGjhMGx^Ucs|9gQBHmAq#FgLD{TQp~wd($&rcFtzPCEVz zSC0$U+N8M+-&e4ePf8JT2-|Y1848KxI#8R&k(}N35dhV}G zTHY0Kp*E^>-Ml;d7fvkT6$!m4v18wMvFYdj#VlO2>geHjYwIiBXK))I40Nwv@hHZd_{mnfcp-KSftRtWCb z>Fuxy>$!7LD5*!}pRm@Z$d?x*H|9q@Q}u4sp8Nm6TU~R{do8LPKRoRfoIGX9TQ_yD zXzQSW9a7aBcV1=;k6-ts&f=w{&*~O7Db}*QV9wz1qL$+i@vr9 z4*l?4W>?f=g&phnMgCrVL@0wL)Z|fD0Mor~HOg7_|6eURoVq5=dVbSJrp)%QRyitW zXH;d~V-lv^km<-X6gn&W;75eb(n*TDH--yvD=my{?mH!zv-7UM|LqLU)J#jsdlSE$ zU^Kt{ki+Adb)E{FM*9~Y#28^3lxw49;3YWuBCez8BTZt$LV zyMN=1%a-+BC5IC2axc&EKNrEv7WD6s(fK1LrrK3^mpRSLSWwDW9KPr3)nz@(xB1%F zxvTuHI^yJ(e(Q3_uXSc~m6B`s$^W^$q;Q4Ey_nR*)=jLO3zf8<-RrPi)8sJw>9IAs zVN<3x=WaA{m@HHCEm%l$(xTuVGb3;bS%_ap(7yE6U&3o?rUt zx!M|k@o!fIQzRqJJY=?=OkUpexp~FBcRP=vznD>tBcVgZ|^2O zFqk-pKVpMJ=@}`h$zSuf#De5Vi|F!T&ccIK2GK&xeol(-^ZPf;F2}J_;3S z3Gu6LoyL1oYlFfKZ^JtRb&JXjck6TZ zV_B=Nyg1UcN65m(FNE)5pwI1!mj-7dHW|P{ad!TRcMxG%+G7=Zl>WehPzUeU;1s7-o4UB=t5xU z`o%(B+HGR4lA5BKAH|Y37cu!1-JPy-{YlCUmgLkO%hpGBNgS`}@BXyl>W(GOugg!? z|D9-hajBiD#J}JNAz{;-MV%L4Hu(I)KmM2S(Z>#IW{%k_Z}AFRX!r&n`?dbc#L%jF zit84=DmeT^J1y`;$m|~)b?sfUt*chXIX*{caKhNiw4X5nxLw})~*bpsit{~iW!@` zHri}fUmxhT)V)e#At4SJM(1LPoK0FOg-cu``>>O`=f+4 zc{(#Vrxa`Us4^~b43DVz-FT!<$YHhBAy1>ZyQgq!6%`jP;aSD=WU|pZB~JG3r&ZY2 zbL^9N7vMGP`=oW;otMoYty@)57{dPIXvEvj#mCQ=3awswz+q3}ip@nwj^zYD;dOkl z)oRDF=T^Iv79FiA{3X5IV_t^pwOJuzHv-INzg3xF_?IJR^7l{X5#c?iZ{J3XEbY$7 zKD?EwLuZN1ET(ul){O7Vx4hcf=cQxrHZ$gK-lh0Ci|yPO&wB4&Q$X;Ld{}|RrP7l{ODDiyuL&j?YpAdTQFDRh^EM?8;Zw- zCiU&od$`fcIh*rPqO8DCcbjQKex4pDJw9MpYP^~%+s5A6 z7SDHNGG6-dVM4v++24@hZ}bh>)ZE4F zKjYT6XhH8e0ZYG&`cLsZ8S;f~!MSe_qx!m77B5=xNI__qHIs;{i|T(Z@4ywktcLQZ zQch2CbUm}QYR{MMg_}Hb4u*Ux*X?|!9c)voGS?$W~P81QYz$y+a;NGJ8cB6?F^oJ<*o_;DV43e&rj}bzoqtY zRaN4&CEIHnYvwtfkj}oBSgLP-_vqb@CtmsNd*_~x4Lq2YEs}iq)2`>T_Tfh(HVdd% zn$7EBxTx|s%v6{)eC5{ibfsD4pYPufO8wyJc{=ip_zcE0{v98dO_}Oqcqx04;qfG^ zDM5xebq;*l*VSBWIlFq@>!+PQjM;e|XH{;OaLL^G{bXOK<7t*fxj7sOM>B5T@v(@1 z_KNS&5>6j||2>Lx*yc*DTYm89-o3kjKI{9~bkb(?UG3`?q76IF>^Zqfq+P^W#A}C- zkw{{q;3L15nXXHcA3Z&!cxq~|G1F`U1X7GiaA>Dr~L;yjPPZ?NZB>8zT)^P5 zd010YdDMsO3oVoR_6q7hoB3!{vViZ|s_mPEl5MN}j)|CsOyu{-mP~SN*k)h%?%mX? z?ia5-e@ee<{_Pf@+xQ_c#$>u#WO?h`$q{chTZI0e^y~BcTZ>n6pO_^l5Z3?HqF~oz z$y=Vq83%e!$zPD#oqlIVWi_Y#!xir}g}+S5?77mm>_+VY9_?G3Lc8y*6pxUcTfKeK z_VusYWIffdtes|2_4#UW=&j%*Qzhh9FV@qSDqEIxqjU!6;+Ch2&aIT5RQTc4{q{jT3c=_H45sq(3=Exyg#XN0EuDcYG$ z+T}Q5?Vjw8EXFyxHu{C(Ka`rX`*JVet33UBUDdVibGus)wK1o)ymsK99G^I+?e-as z6(SN*hD%HZWB=O5 zu06|xc;>oJJ+gI4?4!;!CVSnt83Na(Vm_}D+0jsD&$P}ya^uPIP%5*W}9Q;WedlUD&>3DXaNHL?;#7TnH0N>*Sqz zVA-;~(7^d2oXtC%0=1b zh0pG|hDR@2zb)v(6w|N=nupi7A9$cEc>P>SQE`&sO^>%3p~r(|X1qnmbpkXZ|^i*TcIiRwBTJJ2=le6!yc)j#p zu)(xN3yM-h)8&>(tag@KqnEmkM^(&X`lC|`VYz37C4|)t6b=jZp1NZqar>+1llCVa zZXqYm%GL1KzFxC&?!rS%apgOA9TESfc_s7S>BUF?{dkoUEnWCx^|Oz07HkDVQhzuz*eTXG)9a?bl=&ZhDSS`uuPoyes;@6a^}R3l zkeY6IR^-O^hrf&jYw{jNK7FIs6QO7Lvr3_J!?NJGB>~^H-dPJyJn&I_orIJ416)~CyAw5wb+jG7$1N?UcFd+W2VIK zqq{pN{M1~1K)2J`tFb4mXidP^mvdjw;^jYI_HNJ5((~5;<`lnBviqDU{NnCn&N{Ar z4@G^qZSX3Hbe;CuvVYAskNB&X>@R0Gncm9RY<#~<^vL-zq5nH8YC9dw&Y9+~cCw7K zQroyA?&W#e*vcZkCrvf;F1>vDwU+g7gX4^w_S@Wa`%1pge6=Thm-=ju=aYTRC%T+h z+%k(>VAXn-UsLMY{#xuUF%!PUUmbrhfAhTlFIF*eu>}@)m(1_!dDi{P_M_J!Ymd9t zvQ~!rQ{SJq^t9%&Kh?Ig|75|xwMX8(Vr*3^=l<1uYi__6zJ`V=`7<79zV)AY$8$kJ zK|t8CHHDq;MLn`T&(=;|5#8|hMa@i)a_>@=Jy-6W?0oOy|9JZ90-KhF+T0qZ9d9pu z$TV}0@jsVkwC-5Pq4}n7I~S|Za+kLXXL;XyTs^dk&(~wyNB4EU>M`witlIzk)qno- z>&sLhE0NpU%BNhSPVYCI@Je7^gkj>yRioYhsz-43ku)Wl!GnPYUzB`0#v7;iSo}e6mX{ zwG^Km4OkrEGv}M@vK_fk?eEW8@_fpwqkA?cKXO$)r1^Z#rKfLXE#9k0F4A7M!2PnA zyljw{(>twa$67j8k*-Pm=LAT7 zIwPp@XwDol2bM(}e#x!gWb&{@NrbhsIDNX1Tb8hSO&u1H02#Khl6|1$k3LJajGv#Qryz<)G%|<0#-%Nb7fca1RpE50NbK{^OMCxvE?95o5NuSszjf`kH9~FLArm87g}IviqF1Y2)dr8{mdv#rx}aom30=Km`Z^Q&yno-nLdx@FmOJkh6N<}LZ-#mQ{N zKi*uoGk?F0ty8Y{$;AHq)$e83SBVOHUVnSo{^sr5f1mEY|M5rozK1i@RwSRl$C$V! z^cR=4^6d9b+soBtnvd{Vr5{@Mzo$wdVy6{OkWa z2h5MMVmw#xTETzwiN#N;PdkiO&wMVf#djk>WYL_;>RTZPQ#xm`Tk5x}e8@V$I2Vh7GyH}U$M8Q-j%{vBDk*0BG@ z%iaINYI~iIJpS=G?DUm6Dxw}KUkfAxtroS-aIt!prdjR3OE28~$(}pxodKtvg%|%S zNnuH-UH@ptyc=)9&9VmX<=E%QsV*0m5+wabNd#Ca< z|KCUN|9(2Yzv6!6?GOv@8>@X6&pjO-y8PXg9yv92xpl4U{&`tfzr8$vv$M_rN8#PS zxxOYz>b=>as`T*Y^7;SXazA@F@$#GfjSqU?d#^31R?yk&v3A( z&{Hv|D~9GuvR^-}$oG*i7HE}HxO?KR!KK`=d%TNpV-*EeUp}pyoS0(GOpC@?uNY9t3NvpIhoIWt>&M8abnz5=VOQJn>mAu?; zXKRnk3CdT#h?o2_V#`U|raEOl$F|f(bIYEen;rMtc>mXH_SH{5r<)%5bWzlLPlzY? zc|~@yLlaDwhX3|V)V+9>-}bL%`z*FN=9OuQ@855<`C4wHtn~2PW&i)*`et@mubXt_ z>Vg*a8)B!EPp?{@`0yZ0#Su{zv9-=gt!qL3_|}@4tpSla#tT+n`fRE^OY0{upF!W0PVrkuXMEXX z!kFY`vFvH@KLNG7laJd@Q(4rvlT(N;|>)IY` z*8UBgvNNoLJCSp-MCMnQyBw>k9<4gf`frNcu>*1b!M}yS-_li8|NcYsotUO!^rLr$ zQJ0D*Mz3-#*>vng&z!Xuv$)zidSo{#m?>$05b9qh)L1ZqdCmGx*jfPQ?PAQ2!;;o) zHs#v2_u0?z+YS3Y_>MC26uD@>6BU24sz7tXU%?9^mv7%cUsoE;d#zzz*{n39?AB@J zcgoJ5TfYCPYJAvm<=Zo24%3RE;cQro;aJzhZA zvyUTdl7#l9Q%-XdBIYfV@LqntG}-7!tYyB6Kt-nQw11^Xl+=G@F6uX$FY!Bnzd`hB zkHrp8%sm}n)K@>`RZ`B*+{}SWTa!a~2%5B%OmgqSzcK&hT-u6NH$NDL=?yga+ z=96Jz)REd6wED`cg|eHTueS0Hd)hy_kF7Dc+2nzF%l1_lrk>sq;$W!x##MtM%JHPo zImcBU8@r5>c1kwX?8|QnI9GP>iwd84atq(%12S&zeX+|APqpjWx%1!8>oy;rvhV-& z3XxmW*m(XyJ>I3c;M4IhpP!kWljqn>SlTQf}2tQ49nJ&G4qVA z?=!mX%lw-4J@=8>x76#R$-62}T;C)9LBM)d*=LSbCk&6Qaa;Fhj{l4uEk|oth`j#D z>GjE0MZ9*hY>LUb`E&IZcF)&pxUrzOD?HqYd2@kn_-P!su;@}@-QiNSYtcA<8RUz zJ&PrGEDojH$@s)&&i?jGJf^xVNr!g>*Rj_U%ZBxJYsBY=<`?WNi*;04%M_oJLSHdnl%GSa&YChhcA*WrG zTxY#dR!q1q`be%o+=0jP{hanUe?1QN?Dx%MUgO##5c>F!_PRf_X5P1HH(1y5-duhA=*(F|%`=_2e z?zCg!g0_IWm(_RjalJg&uqxJjQ-_bjg4=8}ULU{u(;|LNz4oLp@`sw|nW;M^hUxjK zE6GlJ(IP4|>4tT6g#$ToNG;s zvL#!J*FAi6puZ_^@0r-j1IrqWxRi9a^F^5GEt|x?poRZ>dl=8Prd=!cxhFH7`!ZX& zoBOln!2qY-AKr*0Z@s?nfmDCuswL|s?!0b$tnfB;#maQ8ZQ6@gUHN3QL$3L#%lVfV zMg18|Pp@-$xGbBm_E+?}U#Bk5+Zqzd`AqGOQdGh1Tu!lX{VmZ;4xe$HxRX)1;5ui` zl9;Z%O)G^a#!uzkxl!o#HaFkN1&r&GZp=D(8_E1Ib9mOn>RN~&iHKH zZj$n2?((c$u@r&L%}2W0m@H%8xYTMs47<1NWZUIaj9lyAeGJ(Weah+SQOA!GYc?3` z3woDwB=fEb&G+`2`=nY(m1VL^^HRko_oSKs95oj&owYp3Et&CZaNw!#2eVfEziJTo zb&crS#MZ5bg|1Piso&OJRNK8Gbk6O}oHbixHb-`Dw5tyjEMA5?iZ)x z)8mw_dFBn7`zA>@+6(&tF#WtGT%OSdfCbi$n{XsK1`p zc^QY(b{%s=PHbja6H&6b=~%bc8n5gx7ehb&Q7U2HoyKmzHhW@}{TnN;RTyChA{HUZc9}SG)iJYlpoPLVTQKR$i~w;`4 z!v+(-PgB!HS%O%(R?cv9Jho4tp?g)70(0w+ZwsPjUvHC@FMh!kr#9z?Jx8?aoL8>D zCVLpw-}-U-eBUYIiHWMSv|1ty+}}7v{5U9@A6Hd#gu!X~k@!lSN_tVeTpe}j|d*+Z)ltSdS3n6<8ptFD5tkeWIx+%#2D|g zW#P+=rRk!1CTo~HA6w_7ng6}||K0Zgr`i2<{jM)wEt}`2$sRe~O-e)i;Wy*ydv_$q z*~Ok$p0X-_QC9A?$+~BRo=eUAqt?9MQRjHn^Q%&;bypXz+9u?B*eh$rl$Q%O$Y%VI zQ#)g3{d|*Q{dKm*VVcXHb8Ly<=|Ao6fsN8zSLra7MV^+9R6gV7>%LYq<6mRyzQrMl zwq7%9INxMM%-Gq#ZUL`>!qOwpYxn$H+qc6&klWbX{m2oWLoR2uuLr5c<=y7^{w!MC zQtJCEJ+*f;B2qjj>0gvOeX7D_xBJQ!E{&fO*DZVX>By5kQZu-2e`ZQqR3_fN+T~D% z%>2094Bl4{X|g-``rOsL(N)#AQYo~0O~u|z_fD^vWu~xh!Q+e^)mi(}GuEWec^Vu1 zBl7Y*i=u5E8*fejCbfpacj}_Kg_8O~*&EL{zEtGmv=sSvnRmVYj}PKqDq&sgl43OO zl-=oAxJKf3{nd&9K}*K0C!s>zzD=s)Z9@Exrn5x#?k>zfG{Lvu>&gH9JF|JWJy~@s z`>ow`K9$J=lYAB(VLD{p+~T7!gClC1!0I)Z99C#3oXilNa6MHz5PcqA?IJLIF*=^>ETmZCP(@ty7R@1NY~zq{AJ^;_KT-S6jG zmKyKe?*IMX-CDo*f8XZUzK&+{UB%z%=_fG3cuLcp&gu7pxvnf_b_})^n6xc=!%jQy zPws1!D+8XbkkAspa&yy!j<(IUs#h`(iZd7Ih&gJh$*jM_x%d9b|96*e3cIk}+0rld zZpW2RWqH9&w{09>Nb1~v&be&OTBSs5=2a&i7R@-J5MCpYva*_Un%0!uiF}imJblXi zL#ts@jr)nr7h5lQU02)K9d@QL;a0bj(4>zm6O#0;eVMvqQ^g5K zRgaeUw#~ClmR4TjTI;0c%evNK?J{-NEtf3%mR-Q^QQBjgTTno@R8 z<`);s)o`_BLDhTeyOfg89DQ#0df{=oL}RYllB02HtK;^6`4DMeQL;47{G|zl&q2Gu z`5`PDri4X!$#HN^4eELstk^2a{Geb8e^zFls^9gZZ*$yF?NNCCEHp`I+Gn}TDq;>= zrv9a$B8_-NG+Q2tPud&K;OWt>ARKk_YSOH;N6i;~i`HIoWOJMV;^>UIpRH`w3WHYr+2V}atGiKiAVWQbboE4QpUj7jAX z&peSH>57@tulSuZJbgD}=Buvm^1r{8{}*N*jWA|3>x^!U-D!!>Q?hRV z*WJI~F2^^}lzv8J$xWfx(oPfor{3PQo}=6PfoaM^$xB)XdkZHN@o}Bz+cj&s$INHm zd!!fx_c(lOjXW`DUUtV+i<3*tR=?-_mDIgA;!J4Vw(pB<%}ZWMl*xtqTy-kQo>-N1 z?y4puQhAZX z4~3y~%s2v{DV$F8ZCHA1vOc5#8@^PfUpDI|J`@!VPMFeSV)b!%{sIS2evUJNrTbF6 z#KK$eedM|3?Dg2oiSNB)K&e#6MyAw7QdjUzI@@DxT1>RU7MJuoPDKS={9SQb7bo=Yj%-M?h7vO$haZ3^s|6S zh|L)R=>_YBI9A1MbDYMzAu~;2fw$I~3XKB`wm52h;FKB-YbokEVnI|0Fg>K{{tRXEp*rapbzRdHyI$E2x$J3Vzi&AI8!uKQsV zlO=C;|7s40Y0-gi)O1k z$hQf|Eu}*Jr9>ZPq*EA%Zy)WYe&c4e|?(pVRv=-VTYxkolPWSU3J;}r-YbV zYkiurYJ!JjRq7+buikExuB_x~4(gFrJs5CEKs(V~tM#)=$P^9th(%fc=R7$!m__gY zx%}S0OY%1|FU&Dw(|)-~&)7#ZL6t!#B&744NCjJ%#I!;O*W+TZ_oUn2x|O7Opl?;x z(V70t#@TzW@89?M(&5|nA70E9w|G@*yOCwhMi#ZdA13>~TkuVaHK4#i;l%vMv)2e3 zAN){aKjGAYgDx*y3@-exj(F_6!*=czIWyOntdg0sY42tm9cCywddSg7=*XOjp`Q#_ z=I&iF{r$g7?eDE?KCJs&zW?vD`08Wp=DPFQg{;?aoSK;Eb%b;0qYE1?XD%yPXyOsz zlCd>9M)~3aCT?bv$5xqw?Cee-!&;0aOhYg1m~7y_X7|+h463)bI-iRvSs>_aq%?Kq z9OcO=yG*ku_{@m*&a!#5Id{qR-Ohi!1EX?Nt2}1y5ANGBDg49<-PFK{OU}y2s=lpr z=bJAjcY15)g|>S|Uqm}L$sG~lWpip!cg#;^D&u)%m@%*T-Ddf!HxqB^)vuVf_ia=9 ztgN>O`lid={KxEG{l1jN^quFKH50zLH^jVs<@4=g3Iq3-psLm#J8T+P^CUQ~RI6=C zJ^bO=<_iY*i`JPHU*niE_g`Yi8(EW;-3z|%W7nIYRe$wz+15LsFF33&ul;zqTK>-? z^L^zz)T)ndGcMa-_Pu6b*}-$qWi5XQFx}YYwzH%qigkT!jG|uOL06uw>U~D9ato^ht*TflK+H@>OLW#%wj&# z%GMBpj0*~iuBW4RUpx~lcS)+XzvY65^6odR?_WpjR?HV|T`IKu>BZ1P8)=jCiyoDFFHTp-!jYSjMQ=8koI+_;%5s)s7P{5i(C57wfV`XOBNZ)j z%xvvk{p{fNyIyiw_g@whNZS5uIo}zz0{a$TQ#S_~eyRxERB3+rXra zR{vJ6+qJL9bV7J->)ohi!3{f48@ouatlOA-Q;OU3z9z$pIkuO1rfp=qZQE;VIJ2GM zT0nX1mR-lX_OH0QJXx_bd*f4$In}MM-em#5Y!`Jb>7LOe80L9cN1E$~!i+=DJ>5+; zwRdGq;^9hp|0r|GYIdVj9w9k>n zGq!GB`?@;+uJ`NiU9FJ|LJxXB6@O~o8JHF?Vct{gwKvG-MM>+6**TR>Rbidy#U3}j z`Qxker0d9=o3?x7Jz7etZiKL{&0t!fR%H@U_kW8#%fu}IWsgi%8^ccp>fB{Ld0_gJ ztUH}09+Q^-Ix|y1HA?vb!(M^NZ|8E7cYb7#|1r6G|K56S!)rPp=dFEXzvsuj_la|F zJm;D9_szf491q@?|NHIvX7lHBOKzTjcb}DE{_RSBhM3Lu;@ct)x`tQl@04a(xAT80 z!-nsZc8BS5h}bV(=Ypw#c1;`b^q=?I5!xqEJ% zb%82F%`?_`%fx9jZWaIg%)XwfVSm-X>HafZo49V}J(?Z81idAOl@2B z<4#`nJ3EG&%L~I553D_ZlbvDzhYPEF*4{{4yK(-GAKm`5T&ERTc0V(>`6K*xuhKDR zmgOm%H*Dzc^jPzx@n(~`;ZK##jtr98Z5Km?t9PAY-8GH>$i2!3tDm~Ww%JTBmpXUv z%un{zY?f7LRKG}ETAf-UpphfFfghb!|_2RL6_^vD# z1%qWqp<7?KWv^ZP{;v!BW~HQ@P!9H%MYbE1loqD0xb-&HI@fmIGqtbgw`NAgSaZMM z_&QT-`^M1fTxDJ7YY|R6`fk*zY(EnjGta$vg?96bOTXSJF5^)+F}>|`wB@IsV=fGp z2B8V>B7GvKZVG$cq5UoQNxsy5g)Z|MjJ2BXob{h?<-C2iy8h?){U6l7=PDkXrTRjf z<%it0{@G70O(w5uWm8;nypWT@e|cniu6kkTC!e=Tnkb znPKjfd2s>{4~G1H_p^AT$Ap~2HU}Pts6An>taT9#5@oaPVV$@!EF&fKc2(x<`}ej# zzj3VduwbF+nTftrF7%quSY;HtHT(P4YuCQl)~t_>zw(;FWb(Q%6@OV`x(+&sQVToc2JRkn%WbLD4bVBPRk?@{0!hRqwDCMksXEmqQ4VX&e- zY|2?-nVo@8wugMJ)Toawk}-PUS77C+of2zURN=wcd1O=DiNlt58l6WLY}tDA&$HF} zRoCy=et7u!{*55E?z#Q5FFui(6}$a^QSj%D>-9u_82{Ga+-A4;vmV2bpMUl9@9_PS zn0Bu0Va%+(9~;9Zx*bIhOYM5=`d_V|cg6vekFRZJ#n(SrwaUy<E}`qs;~c~w_whV?%lUeJeZ<; zUgwV5G_CFeq0-QPOV{ud%NXB#-8#VfWtmvYsSIJo93AoZcegL^EekZT4`)ar6O4*~L@U@|f z%@+u;woGHnY-HYMkg#ozs>aX7(~5qDvhW_<`r*pk^GPdvte-v6;A*jqQ><T7dU(r(y@E#10w!Fh}7(?=rORzG`weh14k zx8T{U%+kIFo9;J>4&%Lg>_(_lLG!v_*{&PftTs$l3!jxdcc0JYqG{_cy?!dVU{&wN zxBkDYLyZ}a=bb-g)xM>Emo>XJi@j_5x-UDj{1*StbP%n&z41|%KHr~IEzuS7rx)hz z^0IJDK9_Rno9VyMl^bU*7cdG|WDR$y`8`ES^LH9cw#KRBrY(V!N*^jZ{uh*zI=VdM zc2(`hkN0ZjZ9hCQ-@o_Y4z=IAwtby=yiaFZ_k{M$dc$S2)~=1M`fK`m^Z5_<+fGbh zQ(Db*KS4OGjIGaKoOSwx>ysCrc*W4&Rw^jR%Z1IDgMpv!Z z?|XS^ZP76!i;`34t9F*GKVJBArT4yF-zV*^4J>04Nfl;1&c6Iu$U@C`dsnP)nw!a? zb9u3R>9vJYM>3-I@&ZZ|%3fL+d23GPbD5dCl4)*0+S=*7c`XJ#=6{ylnc7w)lH@nV zf<5rqiKtmc9g9Bh|G9hH*YDG%-~YSRUjH@TuH?Z<_wJrtzQ6Am-rc{idS^tJ95ajI zu|*m4N)C#AFgWcPqMK1Ln~T@Gb_L74XwBv=Od6LI*G?5*5q|pSVV`S-;l1@WCfD-c zICMRD@W86uX#ehn_Jcu(TzopGy0lDV5t%w?-QlQfkvguoI^y_cJsXP@nwDMsu32+O zqjRN4gjZ`sJ;#<)pM6?ZJ`9PzdBHg4IeWp+$Es>lkIz|TZ{9k4J6H1AN2i_UhbyzJ zI^i^9LmS63vzwAu9bXh9eB`da5x!^Uob+L-jNioB8*jv$UgP_B_}j19y%Kd-B3!ow z^ZyNVt@w@iXv_RgnH)kMDtjH=lb( zO^ah+JA-#df53{`Z6~S=8rJ4;tkO_tS`(UWzW>>=^0$8<96tU(otsh2{GHt4r_0Ol z$#&m4zvSlmH~ZHdj@a0@>Gr3RS$iM;(`I<^KE8sVDW>@UQz4^jp6T;zF3#OpEzD@! zcKUOT=+1fh-2eXQ>HYh}8b8hD-E-@`GDnZb+x-7labB(d!ciahg2L0EzkAx|ZU1a; z_v6$@h0G3Vv8SvBt+C5l9x{i#U2(5iyDT`_;^P0#MLoMzjy;;h>N#Wi&s8UPdMB(_ zJIz^pF*M^y(B1&s0}%qdBU;T*nofE2<_H5vcC`M=e{*ktm#O&_o&08owX+U?^3H_S zqWi5qjvj9~7a}~X&T;x{jVUGXeAg}zT~f|%?!M$|nts`$Z3^E7nmf4IHgg;^wqNDM z%C&9UrU#u~2WK)dWbRB;eIIp2SygIDkjg6me&)3oIz7x8(i}3{5*ANd-zjinap4QC zLgu?ioI|EQTy{){+-rBBXAu^qBwT{eoRAOcq_; zi+2R2&GG;Iwk(Xxaog?6=}sLNZ+$kXD~#Sb6ZCb`C*Q5WB~!Xu3OM4^zYcar%5m8>KLvpOv~lltJAw^LF)IPzZ9K5^>yZZ$)A4}{nfdv zPS9Ds$|ER2uj^^+EG@-d?#^*_ryYF+oOnf-{1@48a)9;8qX!u(;lfYCRwalootO1~ z9_!kmx;+9(tvyGyf`452|81g5>hdFhm({H4Jrw6v5N$W%`ZRr&vP%ntN>usR<*44d z`t4N6` z&-31FZu^02x@4B^{1?|Wx()Vo3I9<%xA-S7`?@TZx237lX0O|t?QeD7+1;~Wt-Ih_ z&iA)0yC<(%Q+fE{>R-Dhe$IMVd2jkL;~>}LS|KsN8Wzke4*H^WY`I$cau@#6pbdp9 zbF9zK44CAU!c=)c(tTsftZm%K^0oP%q~0_t*sR>x|LCh6chh;XmPW^83l^H1x7&Sc zW!SJUX3zURd;5Kbk3RhR==rMS>NdMiKPI~FopCm;u;4=KhPbM~+3$b8NRKMkahTuY zRG+~=XU!aj70J_|+F1K-DLCqCdG7V!BAL4;PDSY|U&LQCPUzFj7TWjPd0NQjtA5Kx zLKzot<6nBjD9UB-UhCAd1&v$g*W4E25nAD^7$Q4yU$p7c6M}((DFNp+gxVPx1T#Hd z97FoosR-@q~33)QdmpSX*B{XO$89^Fv~qo z;>x2kck{ZI#-=fx(9#Qu?GY}WQlj`&bQ9m{zq|@&TMdF{cHgXV;7L3-&)-Ij`%!tF zh|2mK9HvLE7S-32#Lw(opZ{dfle?YP^-5^kY`nB4bQ=?YYLr^+<`^xWHlG_=;&r=w*2VOE zU9(yLRt%f=wk(IcJ>eq#uPbznzU&mgS9?iE{_xbzFB$?Ks8p=p^lTTieNgzf&FA+D zGp@5PNDWO|xnbqXj@gZS-R3It8dqqjY&5!a#^ua40ms^|l%yZC7sk5CHmx{*{m$yZ zy$#|uVpD_mzOxOTB{0LQ-Y_>Uckh<3zxUUi{@6P?STLNiv-Hc2z@pcCHhAf9S#En# zx7}v4vJvzCg2a52TgCntqt69i@fY>rV}H+GE&Hph>Rgw>#}0QZ2`vd8wZu+0&ox`} z18-KYIw>i%?C+nzldaQ~wylV&7RtEeeO2hknyq16QBQBpKcgIXI`(7O(sSQV%{VKZ ze0G6?w7sa-rm49Sno(D;Y+m+ETVwXEfGO%HgyT>8uRd%3kL#)1Dy*MMB=c%$p+; zEW~G0#=fq{&_^O=O8@Bt7EXFhE7(=%9N)F9&(~Tw973UfdLSF1^^$>xPHIwY0C_&F>V*al6L0UzOO~*0$8vZqkzv ze_dMs+Fy)*aFm;Q-^8QQE55Cm(st%-_wnAgu#?*}K5%9~owmt2^V*ND{py*&e@qIp zk-9LmJ#1%meU{b-jeu;qI`gD8zFZ>b7I_L8*9e)vym6{7@42n|*-e^LKd+n{Z+-dP zx|{pE?@BXnSQl6Q|MZ%L{&7X=hPAB>4EK*dU911ctL9but(&jqcN|*JJXhYPXYD%c zf~9NUq|dKbXZUlcQG51V_ri~cdfgi;bGLtXtNprio0y{YWx0b#S^d%;CC0p|yeFP~ z!^NS!uuyUB&g!}!mj9)a`!>J%^Q*n?OvK_qcF_YpoE7@4@rxSunLTwbNnTw2Ql9Y` z@6uDp415%xs92R$_$;3C?ay}OV_rpy{MMU=LRlYM^#5b!f^sZ)(+>m*2>*=EZ`?*eDW!vzQ+c($3>2xOh z!Lp#AGm5gETRtl7^7i0)DDv&Usp8IMtVVTzCO-bzBdp}|{~zl-aYqBgKDDyrrF$nA zoSrM7$flmw%j*+x(f+qa?$o{gCo)e@_}#@(opfh<{l*iQm!9gIBtCV&63fe=opFo$ zxfb8_e%Jc5XTtJk!9WW$8>7mryJm|uSKswberH{Dxw7VQ((AiyFLX}U6>u*M{a$s@ zRsYAIcDw&qa{b>P<-EK9t^T!Z<$sUH>(8_3^brm7;FM^;dW*XG$LZFa3G3E|-UgU8&smL_V{XjMIcBrZ9wknExTwTTz`+ zuSGzGy*A_p`($$$i`0~Lp%!MW?thGrtIP^a(lJf(sreXCAvd)_n!)VVQ}*{iZhSm? zQaPG??X2+BRoePHi$qmj*kVop>xoO3zx}yd&8uVQLaki(6B;JPi(SMrH!d!8lIlE_ zJ9*){jR!KG@Hs!8dUIBoSBdLQucbFxlD&lDU(Hp1prjtB{wh?vOnE}?U(K~1i&@-! z=Gdn)NOB(NUTl7Sx^(>y|9UgUW2dg~3Ou-_bDPgqah}yYdozDe|6^IVY~jT6iZ2Y- zcHJ3^tQC9MLaMw>o^=HsPi5MXPHy|=ISsD=@;Xa(S-CIYy7v0? zQTBH`o*opwZ)LNRwfSG@?O!K0hP-|LEIwH)eD6EUZXsjuz!c4w*Y#8uwTLdxF1{f9 zXs2C^wZYDR`^1^T%l%Ardf#|%wtusIL&p3g&DLq{Pon3ju1r^-=omg_Q@OvW^O7m; z8o{km$E>vLBaeP?@A2@7RW(@Dvq|1#m$*l*+OL@os{fU?A81T@^x*TlEoQU*U)x2+ zew=eU^t67Wq?X<)gNssLIg|Drn*7ayas7e>@BUV8Z@Vc|Z^a8ba=i0@H7%`!#iM1~ zqSGN43~VY@CK)QQ?-7#WeDNqiaQl*7dcFm{im?Wj6(wdGH4&{-{8vrCv_pMK(ov;X}(p^U40`{vqwyZZmntJn39z8;h4-%%u? zqx9=reeKNX# zWZipLmi;~S`pmYS8$!z8ID4)zJ`&mU%Y-F9h3(ER>pWGtuHRfTc9(sEZpZFoI;Ze! zRd)O)^;GYhJ-3hVe>i2)OQWf=Mmas%s$P;MqMy4g>$F{K*L$3_xjfHQs`vP0o&u#- z)yypBr=6=6UvwFqj^*=;IwF>A`*vlzzf)3Y8Jm~J;@Hxa3g=h^b?^LfUdAmxZN}eT z2KLK)UtB4(Pq{eje*2c}SiwGxz{QsuV^;~yh_`7!8!9$s z!cF2%Tw8 zmi#k0c~#KXl0~(j-IrB0C3Q@@*SPlxi?Exkie839WG6X^~R`#B@Jih;kR6 zx+!eI+K)1J-oIu#tMBS6KWH*tQ95sH(wdDDr!}(fK3U^_`UAUP<30wpptJl(qeISx z`|@9Bl9!R;nCTIr(c_f7b$tT=o(kPvo@4#Hgdt+}t@FKCViPtr99VOfb%v_nnZG)INvzu})*YXy43#>cVbU7PX1EyNZ%HsN9GH>6l zklN5cEB#|%PjGAYkh*(YZDK^%XJuDmt@xC^2fX|2g?7vN>TdXPAgL(#Ig>$ai?T3d z38z+SlcM*Ovlkv@9{#h=W6jZ^qzyiyvHzB3+e(TVUY^0Q*{S7dk|gKG)nPH76^jMKc*w>*5p5yfbsGYKj^s)p%n#Fab` zth-t8%Z0OgrM0wtj>MW(SvgmnrA~ei@X%gy$3x<@)W$}mX)OzxHn7TY9x?FHN}R%! z+S`)E{9t-g*!25P6;uV~{gysbbPL#OoTWSQ{wc9zivMRXT3zvCLSkj0nB%D%jz1%p zPQR1+vvOY3p`w!3U6Ct{u39Ryygzo7bImy~<>dKI4znt@*vh_G&8fFC;+*Z#&cI&| zQg^EbJD2YJA|s}F;@BtG7a>=~HFu~+PH|nO7CdK)&ON20T!u`XO2umG5^Yar{-0;~ zEPUOrhbEmuPU@xXdUiMBe6G52{#+opxlv>5g>MtYQog68-m$r%#F~6$&t$H}gNpC5ig&s*dDPtM0bv}T%wAG~gq;i@?=Alz8} z|I8P2_8LeX+cf_(&+76$zjB+ITcguWtfpN!#JS75v_f0xX5c@qD<2)ZqP>^v<;n88 zO)ha?pz}N`tZns;#|ni(OI~{$Nu4{8#nkK4az3~x?9HWJK_}--tY}nmH$U`!)nzj; z4TFg3`#*lYx@{{*oEzsfk(-WOEdA!H!bk0x7VT~FF`n4G{Yy&7q>3N~S*azH&ok`1 z@PD%LWRB=Fn+jFkX1;v8GR0XVVU@=w3ExY$abeDq@vMbeiswUv+s>albx!kb_Z)7I zXZG4Y3$-(~LM&&oF<-uwV<(Y3^Ut4N;iQ$iQbF4lDhn2gWq9w_F4Oinwb{)u^6AXq zQr}WFG(xr-f3u&y ziqn@UxjJv(O082m=RFsR3T?DWdp6~z+B8j1?+y)~ia^DPMH9o`OF9;BI~_P@T3fGY zV3Lr!`>Z`qliaN4WuNIOlVMZ8`orzy@|eoWOv+}m*;`qUOf528!%#Zo%!kO?XYYS} zwcYOXnsgq9h(&2y;g;UBCIr4-7^?F2QhuOA|K$sM*;)@weU*j%T3l3fFW(T>Ql9py zKdI7n(~H1!>IOlxjxYLi$dAi+nqj(1->RKc7VSB$am0>q`T6dNyNo?s|18m;=yPz( z(Pdo|6bP0l+XkKsn=D_ literal 0 HcmV?d00001