diff --git a/unity/Documentation~/README.md b/Documentation~/README.md similarity index 100% rename from unity/Documentation~/README.md rename to Documentation~/README.md diff --git a/LICENSE b/LICENSE deleted file mode 100644 index b239336..0000000 --- a/LICENSE +++ /dev/null @@ -1,337 +0,0 @@ -Mixbox is licensed for non-commercial use under the CC BY-NC 4.0 license below. - -If you want to obtain commercial license, please contact: mixbox@scrtwpns.com - -=============================================================================== - -Creative Commons Attribution-NonCommercial 4.0 International Public License - -By exercising the Licensed Rights (defined below), You accept and agree -to be bound by the terms and conditions of this Creative Commons -Attribution-NonCommercial 4.0 International Public License ("Public -License"). To the extent this Public License may be interpreted as a -contract, You are granted the Licensed Rights in consideration of Your -acceptance of these terms and conditions, and the Licensor grants You -such rights in consideration of benefits the Licensor receives from -making the Licensed Material available under these terms and -conditions. - - -Section 1 -- Definitions. - - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - - c. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - d. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - - e. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - - f. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - - g. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. - - h. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. - - i. NonCommercial means not primarily intended for or directed towards - commercial advantage or monetary compensation. For purposes of - this Public License, the exchange of the Licensed Material for - other material subject to Copyright and Similar Rights by digital - file-sharing or similar means is NonCommercial provided there is - no payment of monetary compensation in connection with the - exchange. - - j. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. - - k. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. - - l. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. - - -Section 2 -- Scope. - - a. License grant. - - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: - - a. reproduce and Share the Licensed Material, in whole or - in part, for NonCommercial purposes only; and - - b. produce, reproduce, and Share Adapted Material for - NonCommercial purposes only. - - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. - - 3. Term. The term of this Public License is specified in Section - 6(a). - - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. - - 5. Downstream recipients. - - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. - - b. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. - - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). - - b. Other rights. - - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. - - 2. Patent and trademark rights are not licensed under this - Public License. - - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties, including when - the Licensed Material is used other than for NonCommercial - purposes. - - -Section 3 -- License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the -following conditions. - - a. Attribution. - - 1. If You Share the Licensed Material (including in modified - form), You must: - - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); - - ii. a copyright notice; - - iii. a notice that refers to this Public License; - - iv. a notice that refers to the disclaimer of - warranties; - - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; - - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and - - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. - - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. - - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. - - 4. If You Share Adapted Material You produce, the Adapter's - License You apply must not prevent recipients of the Adapted - Material from complying with this Public License. - - -Section 4 -- Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that -apply to Your use of the Licensed Material: - - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database for NonCommercial purposes - only; - - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material; and - - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. - -For the avoidance of doubt, this Section 4 supplements and does not -replace Your obligations under this Public License where the Licensed -Rights include other Copyright and Similar Rights. - - -Section 5 -- Disclaimer of Warranties and Limitation of Liability. - - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - - -Section 6 -- Term and Termination. - - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. - - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: - - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or - - 2. upon express reinstatement by the Licensor. - - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. - - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. - - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. - - -Section 7 -- Other Terms and Conditions. - - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. - - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. - - -Section 8 -- Interpretation. - - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. - - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. - - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. - - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. - -=============================================================================== diff --git a/unity/LICENSE.md b/LICENSE.md similarity index 100% rename from unity/LICENSE.md rename to LICENSE.md diff --git a/unity/LICENSE.md.meta b/LICENSE.md.meta similarity index 100% rename from unity/LICENSE.md.meta rename to LICENSE.md.meta diff --git a/README.md b/README.md index 2b8c9f0..00f7610 100644 --- a/README.md +++ b/README.md @@ -1,212 +1,11 @@ -# Mixbox: Pigment-Based Color Mixing +# Mixbox for Unity -

- -

- -Mixbox is a new blending method for natural color mixing. It produces saturated gradients with hue shifts and natural secondary colors during blending. Yellow and blue make green. The interface is simple - RGB in, RGB out. Internally, Mixbox treats colors as real-life pigments using the Kubelka & Munk theory to predict realistic color behavior. That way, colors act like actual paints and bring more vibrance and intuition into digital painting. - -* Paper: https://scrtwpns.com/mixbox.pdf
-* Video: https://youtu.be/ATzVPVNp1qA
-* Talk: https://youtu.be/_qa5iWdfNKg
-* Demo: https://scrtwpns.com/mixbox/painter
- -Mixbox is shipping in Rebelle 5 Pro as the [Rebelle Pigments](https://www.escapemotions.com/products/rebelle/about) feature and in the [Flip Fluids](https://flipfluids.com/) addon for Blender. - -## Usage -- [C / C++](cpp): `#include "mixbox.h"` and build `mixbox.cpp` together with your project -- [C#](csharp): use Mixbox package from NuGet `https://www.nuget.org/packages/Mixbox/2.0.0` -- [Java](java): add `implementation 'com.scrtwpns:mixbox:2.0.0'` to your Gradle -- [JavaScript](javascript): ` - - - -``` -## Node -```javascript -import mixbox from 'mixbox'; - -let rgb1 = "rgb(0, 33, 133)"; // blue -let rgb2 = "rgb(252, 211, 0)"; // yellow -let t = 0.5; // mixing ratio - -let mixed = mixbox.lerp(rgb1, rgb2, t); - -console.log(mixed); -``` - -## Java -```java -import java.awt.Color; -import com.scrtwpns.Mixbox; - -class HelloMixbox { - public static void main(String[] args) { - Color color1 = new Color(0, 33, 133); // blue - Color color2 = new Color(252, 211, 0); // yellow - float t = 0.5f; // mixing ratio - - Color colorMix = new Color(Mixbox.lerp(color1.getRGB(), color2.getRGB(), t)); - - System.out.print(colorMix); - } -} -``` - -## Android -```java -package com.example.hellomixbox; - -import android.app.Activity; -import android.os.Bundle; -import android.view.View; -import android.graphics.Color; - -import com.scrtwpns.Mixbox; - -public class MainActivity extends Activity { - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - int color1 = Color.rgb(0, 33, 133); // blue - int color2 = Color.rgb(252, 211, 0); // yellow - float t = 0.5f; // mixing ratio - - int colorMix = Mixbox.lerp(color1, color2, t); - - View view = new View(this); - view.setBackgroundColor(colorMix); - setContentView(view); - } -} -``` - -## C# -```csharp -using System.Drawing; -using Scrtwpns.Mixbox; - -public class HelloMixbox -{ - public static void Main(string[] args) - { - Color color1 = Color.FromArgb(0, 33, 133); // blue - Color color2 = Color.FromArgb(252, 211, 0); // yellow - float t = 0.5f; // mixing ratio - - Color colorMix = Color.FromArgb(Mixbox.Lerp(color1.ToArgb(), color2.ToArgb(), t)); - - System.Console.WriteLine(colorMix); - } -} -``` - -## Unity +## Script ```csharp using UnityEngine; using Scrtwpns.Mixbox; @@ -225,14 +24,29 @@ public class NewBehaviourScript : MonoBehaviour } } ``` +```csharp +Color MixThree(Color color1, Color color2, Color color3) +{ + MixboxLatent z1 = Mixbox.RGBToLatent(color1); + MixboxLatent z2 = Mixbox.RGBToLatent(color2); + MixboxLatent z3 = Mixbox.RGBToLatent(color3); -## Unity Shader + // mix 30% of color1, 60% of color2, and 10% of color3 + MixboxLatent zMix = 0.3f*z1 + 0.6f*z2 + 0.1f*z3; + + Color colorMix = Mixbox.LatentToRGB(zMix); + + return colorMix; +} +``` + +## Shader ```ShaderLab Shader "MixboxHelloShader" { Properties { - _MixboxLUT ("Mixbox LUT", 2D) = "white" {} // assign "Packages/Mixbox/Textures/MixboxLUT.png" + [NoScaleOffset] _MixboxLUT ("Mixbox LUT", 2D) = "white" {} // assign "Packages/Mixbox/Textures/MixboxLUT.png" _Color1 ("Color 1", Color) = (0, 0.129, 0.522, 1) // blue _Color2 ("Color 2", Color) = (0.988, 0.827, 0, 1) // yellow @@ -266,103 +80,108 @@ Shader "MixboxHelloShader" fixed4 frag (v2f i) : SV_Target { - fixed4 mixedColor = MixboxLerp(_Color1, _Color2, i.uv.x); - return mixedColor; + return MixboxLerp(_Color1, _Color2, i.uv.x); } ENDCG } } } ``` +```hlsl +float3 MixThree(float3 rgb1, float3 rgb2, float3 rgb3) +{ + MixboxLatent z1 = MixboxRGBToLatent(rgb1); + MixboxLatent z2 = MixboxRGBToLatent(rgb2); + MixboxLatent z3 = MixboxRGBToLatent(rgb3); -## Unity Shader Graph + // mix together 30% of rgb1, 60% of rgb2, and 10% of rgb3 + MixboxLatent zMix = 0.3*z1 + 0.6*z2 + 0.1*z3; + + float3 rgbMix = MixboxLatentToRGB(zMix); + + return rgbMix; +} +``` +

+ +

+ +## URP Shader +```ShaderLab +Shader "Mixbox/Mixbox URP Sample Shader" +{ + Properties + { + [NoScaleOffset] _MixboxLUT ("Mixbox LUT", 2D) = "white" {} // assign "Packages/Mixbox/Textures/MixboxLUT.png" + + _Color1 ("Color 1", Color) = (0, 0.129, 0.522, 1) // blue + _Color2 ("Color 2", Color) = (0.988, 0.827, 0, 1) // yellow + } + + SubShader + { + Tags { "RenderType" = "Opaque" "RenderPipeline" = "UniversalRenderPipeline" } + + Pass + { + HLSLPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" + + TEXTURE2D(_MixboxLUT); + SAMPLER(sampler_MixboxLUT); + + #include "Packages/com.scrtwpns.mixbox/ShaderLibrary/Mixbox.hlsl" + + struct Attributes { float4 positionOS : POSITION; float2 uv : TEXCOORD0; }; + struct Varyings { float4 positionHCS : SV_POSITION; float2 uv : TEXCOORD0; }; + + CBUFFER_START(UnityPerMaterial) + half4 _Color1; + half4 _Color2; + CBUFFER_END + + Varyings vert(Attributes IN) + { + Varyings OUT; + OUT.positionHCS = TransformObjectToHClip(IN.positionOS.xyz); + OUT.uv = IN.uv; + return OUT; + } + + half4 frag(Varyings IN) : SV_Target + { + return MixboxLerp(_Color1, _Color2, IN.uv.x); + } + ENDHLSL + } + } +} +``` + +## Shader Graph

-## Godot -```gdscript -var Mixbox = preload("res://addons/mixbox/mixbox.gd") - -var color1 = Color(0.0, 0.129, 0.522) # blue -var color2 = Color(0.988, 0.827, 0.0) # yellow -var t = 0.5 # mixing ratio - -var color_mix = Mixbox.lerp(color1, color2, t) - -print(color_mix) -``` - -## Godot Shader -```glsl -shader_type canvas_item; - -uniform sampler2D mixbox_lut; // attach "addons/mixbox/mixbox_lut.png" here - -uniform vec4 color1 : hint_color = vec4(0.0, 0.129, 0.522, 1.0); // blue -uniform vec4 color2 : hint_color = vec4(0.988, 0.827, 0.0, 1.0); // yellow - -#include "addons/mixbox/mixbox.gdshaderinc" - -void fragment() { - COLOR = mixbox_lerp(color1, color2, UV.x); -} -``` - -## Godot VisualShader -

- -

- -## WebGL -```html - -``` -```javascript -var shader = ` - precision highp float; - - uniform sampler2D mixbox_lut; // bind mixbox.lutTexture(gl) here - - #include "mixbox.glsl" - - void main(void) { - vec3 rgb1 = vec3(0, 0.129, 0.522); // blue - vec3 rgb2 = vec3(0.988, 0.827, 0); // yellow - float t = 0.5; // mixing ratio - - vec3 rgb = mixbox_lerp(rgb1, rgb2, t); - - gl_FragColor = vec4(rgb, 1.0); - } -`; - -shader = shader.replace('#include "mixbox.glsl"', mixbox.glsl()); -``` -```javascript -gl.useProgram(shaderProgram); -gl.activeTexture(gl.TEXTURE0); -gl.bindTexture(gl.TEXTURE_2D, mixbox.lutTexture(gl)); -gl.uniform1i(gl.getUniformLocation(shaderProgram, "mixbox_lut"), 0); -``` - -## Examples - -| Gradients | Mountains | Palette Snakes | -|:---:|:---:|:---:| -| | | | -| [source code](javascript/examples/gradients.js) | [source code](javascript/examples/mountains.js) | [source code](javascript/examples/palette.js) | - -| Splash Art | Paint Mixer | Pigment Fluids | -|:---:|:---:|:---:| -| | | | -| [source code](javascript/examples/splash.html) | [source code](javascript/examples/mixer.js) | [source code](https://scrtwpns.com/mixbox/fluids/script.js) | - -## Painter -

- -

-This painting app runs two color mixing implementations in parallel: one based on Mixbox and the other that performs ordinary RGB mixing. The app allows switching between them on the fly, showing the differences between pigment-based mixing and the normal RGB mixing. To launch the painter in your browser, please click here. +## Pigment Colors +| Pigment | | RGB | Float RGB | Linear RGB | +| --- | --- |:----:|:----:|:----:| +| Cadmium Yellow | | 254, 236, 0 | 0.996, 0.925, 0.0 | 0.991, 0.839, 0.0 | +| Hansa Yellow | | 252, 211, 0 | 0.988, 0.827, 0.0 | 0.973, 0.651, 0.0 | +| Cadmium Orange | | 255, 105, 0 | 1.0, 0.412, 0.0 | 1.0, 0.141, 0.0 | +| Cadmium Red | | 255, 39, 2 | 1.0, 0.153, 0.008 | 1.0, 0.02, 0.001 | +| Quinacridone Magenta | | 128, 2, 46 | 0.502, 0.008, 0.18 | 0.216, 0.001, 0.027 | +| Cobalt Violet | | 78, 0, 66 | 0.306, 0.0, 0.259 | 0.076, 0.0, 0.054 | +| Ultramarine Blue | | 25, 0, 89 | 0.098, 0.0, 0.349 | 0.01, 0.0, 0.1 | +| Cobalt Blue | | 0, 33, 133 | 0.0, 0.129, 0.522 | 0.0, 0.015, 0.235 | +| Phthalo Blue | | 13, 27, 68 | 0.051, 0.106, 0.267 | 0.004, 0.011, 0.058 | +| Phthalo Green | | 0, 60, 50 | 0.0, 0.235, 0.196 | 0.0, 0.045, 0.032 | +| Permanent Green | | 7, 109, 22 | 0.027, 0.427, 0.086 | 0.002, 0.153, 0.008 | +| Sap Green | | 107, 148, 4 | 0.42, 0.58, 0.016 | 0.147, 0.296, 0.001 | +| Burnt Sienna | | 123, 72, 0 | 0.482, 0.282, 0.0 | 0.198, 0.065, 0.0 | ## License Copyright (c) 2022, Secret Weapons. All rights reserved.
diff --git a/unity/README.md.meta b/README.md.meta similarity index 100% rename from unity/README.md.meta rename to README.md.meta diff --git a/unity/Runtime.meta b/Runtime.meta similarity index 100% rename from unity/Runtime.meta rename to Runtime.meta diff --git a/unity/Runtime/Mixbox.cs b/Runtime/Mixbox.cs similarity index 100% rename from unity/Runtime/Mixbox.cs rename to Runtime/Mixbox.cs diff --git a/unity/Runtime/Mixbox.cs.meta b/Runtime/Mixbox.cs.meta similarity index 100% rename from unity/Runtime/Mixbox.cs.meta rename to Runtime/Mixbox.cs.meta diff --git a/unity/Runtime/Scrtwpns.Mixbox.asmdef b/Runtime/Scrtwpns.Mixbox.asmdef similarity index 100% rename from unity/Runtime/Scrtwpns.Mixbox.asmdef rename to Runtime/Scrtwpns.Mixbox.asmdef diff --git a/unity/Runtime/Scrtwpns.Mixbox.asmdef.meta b/Runtime/Scrtwpns.Mixbox.asmdef.meta similarity index 100% rename from unity/Runtime/Scrtwpns.Mixbox.asmdef.meta rename to Runtime/Scrtwpns.Mixbox.asmdef.meta diff --git a/unity/Samples~/SamplesBuiltin/Materials.meta b/Samples~/SamplesBuiltin/Materials.meta similarity index 100% rename from unity/Samples~/SamplesBuiltin/Materials.meta rename to Samples~/SamplesBuiltin/Materials.meta diff --git a/unity/Samples~/SamplesBuiltin/Materials/MixboxSampleMaterial.mat b/Samples~/SamplesBuiltin/Materials/MixboxSampleMaterial.mat similarity index 100% rename from unity/Samples~/SamplesBuiltin/Materials/MixboxSampleMaterial.mat rename to Samples~/SamplesBuiltin/Materials/MixboxSampleMaterial.mat diff --git a/unity/Samples~/SamplesBuiltin/Materials/MixboxSampleMaterial.mat.meta b/Samples~/SamplesBuiltin/Materials/MixboxSampleMaterial.mat.meta similarity index 100% rename from unity/Samples~/SamplesBuiltin/Materials/MixboxSampleMaterial.mat.meta rename to Samples~/SamplesBuiltin/Materials/MixboxSampleMaterial.mat.meta diff --git a/unity/Samples~/SamplesBuiltin/Scenes.meta b/Samples~/SamplesBuiltin/Scenes.meta similarity index 100% rename from unity/Samples~/SamplesBuiltin/Scenes.meta rename to Samples~/SamplesBuiltin/Scenes.meta diff --git a/unity/Samples~/SamplesBuiltin/Scenes/Scene.unity b/Samples~/SamplesBuiltin/Scenes/Scene.unity similarity index 100% rename from unity/Samples~/SamplesBuiltin/Scenes/Scene.unity rename to Samples~/SamplesBuiltin/Scenes/Scene.unity diff --git a/unity/Samples~/SamplesBuiltin/Scenes/Scene.unity.meta b/Samples~/SamplesBuiltin/Scenes/Scene.unity.meta similarity index 100% rename from unity/Samples~/SamplesBuiltin/Scenes/Scene.unity.meta rename to Samples~/SamplesBuiltin/Scenes/Scene.unity.meta diff --git a/unity/Samples~/SamplesBuiltin/Shaders.meta b/Samples~/SamplesBuiltin/Shaders.meta similarity index 100% rename from unity/Samples~/SamplesBuiltin/Shaders.meta rename to Samples~/SamplesBuiltin/Shaders.meta diff --git a/unity/Samples~/SamplesBuiltin/Shaders/MixboxSampleShader.shader b/Samples~/SamplesBuiltin/Shaders/MixboxSampleShader.shader similarity index 100% rename from unity/Samples~/SamplesBuiltin/Shaders/MixboxSampleShader.shader rename to Samples~/SamplesBuiltin/Shaders/MixboxSampleShader.shader diff --git a/unity/Samples~/SamplesBuiltin/Shaders/MixboxSampleShader.shader.meta b/Samples~/SamplesBuiltin/Shaders/MixboxSampleShader.shader.meta similarity index 100% rename from unity/Samples~/SamplesBuiltin/Shaders/MixboxSampleShader.shader.meta rename to Samples~/SamplesBuiltin/Shaders/MixboxSampleShader.shader.meta diff --git a/unity/Samples~/SamplesHDRP/Materials.meta b/Samples~/SamplesHDRP/Materials.meta similarity index 100% rename from unity/Samples~/SamplesHDRP/Materials.meta rename to Samples~/SamplesHDRP/Materials.meta diff --git a/unity/Samples~/SamplesHDRP/Materials/MixboxSampleHDRPShaderGraphMaterial.mat b/Samples~/SamplesHDRP/Materials/MixboxSampleHDRPShaderGraphMaterial.mat similarity index 100% rename from unity/Samples~/SamplesHDRP/Materials/MixboxSampleHDRPShaderGraphMaterial.mat rename to Samples~/SamplesHDRP/Materials/MixboxSampleHDRPShaderGraphMaterial.mat diff --git a/unity/Samples~/SamplesHDRP/Materials/MixboxSampleHDRPShaderGraphMaterial.mat.meta b/Samples~/SamplesHDRP/Materials/MixboxSampleHDRPShaderGraphMaterial.mat.meta similarity index 100% rename from unity/Samples~/SamplesHDRP/Materials/MixboxSampleHDRPShaderGraphMaterial.mat.meta rename to Samples~/SamplesHDRP/Materials/MixboxSampleHDRPShaderGraphMaterial.mat.meta diff --git a/unity/Samples~/SamplesHDRP/Scenes.meta b/Samples~/SamplesHDRP/Scenes.meta similarity index 100% rename from unity/Samples~/SamplesHDRP/Scenes.meta rename to Samples~/SamplesHDRP/Scenes.meta diff --git a/unity/Samples~/SamplesHDRP/Scenes/Scene.unity b/Samples~/SamplesHDRP/Scenes/Scene.unity similarity index 100% rename from unity/Samples~/SamplesHDRP/Scenes/Scene.unity rename to Samples~/SamplesHDRP/Scenes/Scene.unity diff --git a/unity/Samples~/SamplesHDRP/Scenes/Scene.unity.meta b/Samples~/SamplesHDRP/Scenes/Scene.unity.meta similarity index 100% rename from unity/Samples~/SamplesHDRP/Scenes/Scene.unity.meta rename to Samples~/SamplesHDRP/Scenes/Scene.unity.meta diff --git a/unity/Samples~/SamplesHDRP/Shaders.meta b/Samples~/SamplesHDRP/Shaders.meta similarity index 100% rename from unity/Samples~/SamplesHDRP/Shaders.meta rename to Samples~/SamplesHDRP/Shaders.meta diff --git a/unity/Samples~/SamplesHDRP/Shaders/MixboxSampleHDRPShaderGraph.shadergraph b/Samples~/SamplesHDRP/Shaders/MixboxSampleHDRPShaderGraph.shadergraph similarity index 100% rename from unity/Samples~/SamplesHDRP/Shaders/MixboxSampleHDRPShaderGraph.shadergraph rename to Samples~/SamplesHDRP/Shaders/MixboxSampleHDRPShaderGraph.shadergraph diff --git a/unity/Samples~/SamplesHDRP/Shaders/MixboxSampleHDRPShaderGraph.shadergraph.meta b/Samples~/SamplesHDRP/Shaders/MixboxSampleHDRPShaderGraph.shadergraph.meta similarity index 100% rename from unity/Samples~/SamplesHDRP/Shaders/MixboxSampleHDRPShaderGraph.shadergraph.meta rename to Samples~/SamplesHDRP/Shaders/MixboxSampleHDRPShaderGraph.shadergraph.meta diff --git a/unity/Samples~/SamplesURP/Materials.meta b/Samples~/SamplesURP/Materials.meta similarity index 100% rename from unity/Samples~/SamplesURP/Materials.meta rename to Samples~/SamplesURP/Materials.meta diff --git a/unity/Samples~/SamplesURP/Materials/MixboxSampleShaderGraphMaterial.mat b/Samples~/SamplesURP/Materials/MixboxSampleShaderGraphMaterial.mat similarity index 100% rename from unity/Samples~/SamplesURP/Materials/MixboxSampleShaderGraphMaterial.mat rename to Samples~/SamplesURP/Materials/MixboxSampleShaderGraphMaterial.mat diff --git a/unity/Samples~/SamplesURP/Materials/MixboxSampleShaderGraphMaterial.mat.meta b/Samples~/SamplesURP/Materials/MixboxSampleShaderGraphMaterial.mat.meta similarity index 100% rename from unity/Samples~/SamplesURP/Materials/MixboxSampleShaderGraphMaterial.mat.meta rename to Samples~/SamplesURP/Materials/MixboxSampleShaderGraphMaterial.mat.meta diff --git a/unity/Samples~/SamplesURP/Materials/MixboxSampleURPShaderMaterial.mat b/Samples~/SamplesURP/Materials/MixboxSampleURPShaderMaterial.mat similarity index 100% rename from unity/Samples~/SamplesURP/Materials/MixboxSampleURPShaderMaterial.mat rename to Samples~/SamplesURP/Materials/MixboxSampleURPShaderMaterial.mat diff --git a/unity/Samples~/SamplesURP/Materials/MixboxSampleURPShaderMaterial.mat.meta b/Samples~/SamplesURP/Materials/MixboxSampleURPShaderMaterial.mat.meta similarity index 100% rename from unity/Samples~/SamplesURP/Materials/MixboxSampleURPShaderMaterial.mat.meta rename to Samples~/SamplesURP/Materials/MixboxSampleURPShaderMaterial.mat.meta diff --git a/unity/Samples~/SamplesURP/Scenes.meta b/Samples~/SamplesURP/Scenes.meta similarity index 100% rename from unity/Samples~/SamplesURP/Scenes.meta rename to Samples~/SamplesURP/Scenes.meta diff --git a/unity/Samples~/SamplesURP/Scenes/Scene.unity b/Samples~/SamplesURP/Scenes/Scene.unity similarity index 100% rename from unity/Samples~/SamplesURP/Scenes/Scene.unity rename to Samples~/SamplesURP/Scenes/Scene.unity diff --git a/unity/Samples~/SamplesURP/Scenes/Scene.unity.meta b/Samples~/SamplesURP/Scenes/Scene.unity.meta similarity index 100% rename from unity/Samples~/SamplesURP/Scenes/Scene.unity.meta rename to Samples~/SamplesURP/Scenes/Scene.unity.meta diff --git a/unity/Samples~/SamplesURP/Shaders.meta b/Samples~/SamplesURP/Shaders.meta similarity index 100% rename from unity/Samples~/SamplesURP/Shaders.meta rename to Samples~/SamplesURP/Shaders.meta diff --git a/unity/Samples~/SamplesURP/Shaders/MixboxSampleShaderGraph.shadergraph b/Samples~/SamplesURP/Shaders/MixboxSampleShaderGraph.shadergraph similarity index 100% rename from unity/Samples~/SamplesURP/Shaders/MixboxSampleShaderGraph.shadergraph rename to Samples~/SamplesURP/Shaders/MixboxSampleShaderGraph.shadergraph diff --git a/unity/Samples~/SamplesURP/Shaders/MixboxSampleShaderGraph.shadergraph.meta b/Samples~/SamplesURP/Shaders/MixboxSampleShaderGraph.shadergraph.meta similarity index 100% rename from unity/Samples~/SamplesURP/Shaders/MixboxSampleShaderGraph.shadergraph.meta rename to Samples~/SamplesURP/Shaders/MixboxSampleShaderGraph.shadergraph.meta diff --git a/unity/Samples~/SamplesURP/Shaders/MixboxSampleURPShader.shader b/Samples~/SamplesURP/Shaders/MixboxSampleURPShader.shader similarity index 100% rename from unity/Samples~/SamplesURP/Shaders/MixboxSampleURPShader.shader rename to Samples~/SamplesURP/Shaders/MixboxSampleURPShader.shader diff --git a/unity/Samples~/SamplesURP/Shaders/MixboxSampleURPShader.shader.meta b/Samples~/SamplesURP/Shaders/MixboxSampleURPShader.shader.meta similarity index 100% rename from unity/Samples~/SamplesURP/Shaders/MixboxSampleURPShader.shader.meta rename to Samples~/SamplesURP/Shaders/MixboxSampleURPShader.shader.meta diff --git a/unity/ShaderGraph.meta b/ShaderGraph.meta similarity index 100% rename from unity/ShaderGraph.meta rename to ShaderGraph.meta diff --git a/unity/ShaderGraph/CustomFunctions.meta b/ShaderGraph/CustomFunctions.meta similarity index 100% rename from unity/ShaderGraph/CustomFunctions.meta rename to ShaderGraph/CustomFunctions.meta diff --git a/unity/ShaderGraph/CustomFunctions/MixboxFunctions.hlsl b/ShaderGraph/CustomFunctions/MixboxFunctions.hlsl similarity index 100% rename from unity/ShaderGraph/CustomFunctions/MixboxFunctions.hlsl rename to ShaderGraph/CustomFunctions/MixboxFunctions.hlsl diff --git a/unity/ShaderGraph/CustomFunctions/MixboxFunctions.hlsl.meta b/ShaderGraph/CustomFunctions/MixboxFunctions.hlsl.meta similarity index 100% rename from unity/ShaderGraph/CustomFunctions/MixboxFunctions.hlsl.meta rename to ShaderGraph/CustomFunctions/MixboxFunctions.hlsl.meta diff --git a/unity/ShaderGraph/MixboxLerp.shadersubgraph b/ShaderGraph/MixboxLerp.shadersubgraph similarity index 100% rename from unity/ShaderGraph/MixboxLerp.shadersubgraph rename to ShaderGraph/MixboxLerp.shadersubgraph diff --git a/unity/ShaderGraph/MixboxLerp.shadersubgraph.meta b/ShaderGraph/MixboxLerp.shadersubgraph.meta similarity index 100% rename from unity/ShaderGraph/MixboxLerp.shadersubgraph.meta rename to ShaderGraph/MixboxLerp.shadersubgraph.meta diff --git a/unity/ShaderLibrary.meta b/ShaderLibrary.meta similarity index 100% rename from unity/ShaderLibrary.meta rename to ShaderLibrary.meta diff --git a/unity/ShaderLibrary/Mixbox.cginc b/ShaderLibrary/Mixbox.cginc similarity index 100% rename from unity/ShaderLibrary/Mixbox.cginc rename to ShaderLibrary/Mixbox.cginc diff --git a/unity/ShaderLibrary/Mixbox.cginc.meta b/ShaderLibrary/Mixbox.cginc.meta similarity index 100% rename from unity/ShaderLibrary/Mixbox.cginc.meta rename to ShaderLibrary/Mixbox.cginc.meta diff --git a/unity/ShaderLibrary/Mixbox.hlsl b/ShaderLibrary/Mixbox.hlsl similarity index 100% rename from unity/ShaderLibrary/Mixbox.hlsl rename to ShaderLibrary/Mixbox.hlsl diff --git a/unity/ShaderLibrary/Mixbox.hlsl.meta b/ShaderLibrary/Mixbox.hlsl.meta similarity index 100% rename from unity/ShaderLibrary/Mixbox.hlsl.meta rename to ShaderLibrary/Mixbox.hlsl.meta diff --git a/unity/Textures.meta b/Textures.meta similarity index 100% rename from unity/Textures.meta rename to Textures.meta diff --git a/unity/Textures/MixboxLUT.png b/Textures/MixboxLUT.png similarity index 100% rename from unity/Textures/MixboxLUT.png rename to Textures/MixboxLUT.png diff --git a/unity/Textures/MixboxLUT.png.meta b/Textures/MixboxLUT.png.meta similarity index 100% rename from unity/Textures/MixboxLUT.png.meta rename to Textures/MixboxLUT.png.meta diff --git a/cpp/README.md b/cpp/README.md deleted file mode 100644 index 53c183e..0000000 --- a/cpp/README.md +++ /dev/null @@ -1,56 +0,0 @@ -## Usage -```c++ -#include -#include "mixbox.h" - -int main() { - unsigned char r1 = 0, g1 = 33, b1 = 133; // blue - unsigned char r2 = 252, g2 = 211, b2 = 0; // yellow - float t = 0.5; - unsigned char r, g, b; - - mixbox_lerp(r1, g1, b1, // first color - r2, g2, b2, // second color - t, // mixing ratio - &r, &g, &b); // result - - printf("%d %d %d\n", r, g, b); -} -``` -## Mixing Multiple Colors -```c++ -mixbox_latent z1, z2, z3, z_mix; - -mixbox_rgb_to_latent(r1, g1, b1, z1); -mixbox_rgb_to_latent(r2, g2, b2, z2); -mixbox_rgb_to_latent(r3, g3, b3, z3); - -for (int i = 0; i < MIXBOX_LATENT_SIZE; i++) { - // mix 30% of rgb1, 60% of rgb2, and 10% of rgb3 - z_mix[i] = 0.3f*z1[i] + 0.6f*z2[i] + 0.1f*z3[i]; -} - -mixbox_latent_to_rgb(z_mix, &r, &g, &b); -``` - -## Pigment Colors -| Pigment | | RGB | Float RGB | Linear RGB | -| --- | --- |:----:|:----:|:----:| -| Cadmium Yellow | | 254, 236, 0 | 0.996, 0.925, 0.0 | 0.991, 0.839, 0.0 | -| Hansa Yellow | | 252, 211, 0 | 0.988, 0.827, 0.0 | 0.973, 0.651, 0.0 | -| Cadmium Orange | | 255, 105, 0 | 1.0, 0.412, 0.0 | 1.0, 0.141, 0.0 | -| Cadmium Red | | 255, 39, 2 | 1.0, 0.153, 0.008 | 1.0, 0.02, 0.001 | -| Quinacridone Magenta | | 128, 2, 46 | 0.502, 0.008, 0.18 | 0.216, 0.001, 0.027 | -| Cobalt Violet | | 78, 0, 66 | 0.306, 0.0, 0.259 | 0.076, 0.0, 0.054 | -| Ultramarine Blue | | 25, 0, 89 | 0.098, 0.0, 0.349 | 0.01, 0.0, 0.1 | -| Cobalt Blue | | 0, 33, 133 | 0.0, 0.129, 0.522 | 0.0, 0.015, 0.235 | -| Phthalo Blue | | 13, 27, 68 | 0.051, 0.106, 0.267 | 0.004, 0.011, 0.058 | -| Phthalo Green | | 0, 60, 50 | 0.0, 0.235, 0.196 | 0.0, 0.045, 0.032 | -| Permanent Green | | 7, 109, 22 | 0.027, 0.427, 0.086 | 0.002, 0.153, 0.008 | -| Sap Green | | 107, 148, 4 | 0.42, 0.58, 0.016 | 0.147, 0.296, 0.001 | -| Burnt Sienna | | 123, 72, 0 | 0.482, 0.282, 0.0 | 0.198, 0.065, 0.0 | - -## License -Copyright (c) 2022, Secret Weapons. All rights reserved.
-Mixbox is provided under the CC BY-NC 4.0 license for non-commercial use only.
-If you want to obtain commercial license, please contact: mixbox@scrtwpns.com diff --git a/cpp/mixbox.cpp b/cpp/mixbox.cpp deleted file mode 100644 index a213a7c..0000000 --- a/cpp/mixbox.cpp +++ /dev/null @@ -1,705 +0,0 @@ -// ========================================================== -// MIXBOX 2.0 (c) 2022 Secret Weapons. All rights reserved. -// License: Creative Commons Attribution-NonCommercial 4.0 -// Authors: Sarka Sochorova and Ondrej Jamriska -// ========================================================== -// -// BASIC USAGE -// -// mixbox_lerp(r1, g1, b1, // 1st color -// r2, g2, b2, // 2nd color -// t, // mixing ratio -// &r, &g, &b); // result -// -// MULTI-COLOR MIXING -// -// mixbox_latent z1, z2, z3, z_mix; -// mixbox_rgb_to_latent(r1, g1, b1, z1); -// mixbox_rgb_to_latent(r2, g2, b2, z2); -// mixbox_rgb_to_latent(r3, g3, b3, z3); -// -// for (int i = 0; i < MIXBOX_LATENT_SIZE; i++) { -// // mix 30% of rgb1, 60% of rgb2, and 10% of rgb3 -// z_mix[i] = 0.3f*z1[i] + 0.6f*z2[i] + 0.1f*z3[i]; -// } -// -// mixbox_latent_to_rgb(z_mix, &r, &g, &b); -// -// PIGMENT COLORS -// -// Cadmium Yellow 254, 236, 0 -// Hansa Yellow 252, 211, 0 -// Cadmium Orange 255, 105, 0 -// Cadmium Red 255, 39, 2 -// Quinacridone Magenta 128, 2, 46 -// Cobalt Violet 78, 0, 66 -// Ultramarine Blue 25, 0, 89 -// Cobalt Blue 0, 33, 133 -// Phthalo Blue 13, 27, 68 -// Phthalo Green 0, 60, 50 -// Permanent Green 7, 109, 22 -// Sap Green 107, 148, 4 -// Burnt Sienna 123, 72, 0 -// -// LICENSING -// -// If you want to obtain commercial license, please -// contact us at: mixbox@scrtwpns.com -// - -#include "mixbox.h" - -#include - -#ifdef _MSC_VER - #define INLINE __forceinline -#elif defined(__GNUC__) - #define INLINE inline __attribute__((always_inline)) -#else - #define INLINE inline -#endif - -INLINE static float clamp01(float x) -{ - return x < 0.0f ? 0.0f : x > 1.0f ? 1.0f : x; -} - -INLINE static float srgb_to_linear(float x) -{ - return (x >= 0.04045f) ? std::pow((x + 0.055f) / 1.055f, 2.4f) : x/12.92f; -} - -INLINE static float linear_to_srgb(float x) -{ - return (x >= 0.0031308f) ? 1.055f*std::pow(x, 1.0f/2.4f) - 0.055f : 12.92f*x; -} - -INLINE static void eval_polynomial(float c0, float c1, float c2, float c3, float* rgb) -{ - float r = 0; - float g = 0; - float b = 0; - - const float c00 = c0 * c0; - const float c11 = c1 * c1; - const float c22 = c2 * c2; - const float c33 = c3 * c3; - const float c01 = c0 * c1; - const float c02 = c0 * c2; - const float c12 = c1 * c2; - - float w; - w = c0*c00; r += +0.07717053f*w; g += +0.02826978f*w; b += +0.24832992f*w; - w = c1*c11; r += +0.95912302f*w; g += +0.80256528f*w; b += +0.03561839f*w; - w = c2*c22; r += +0.74683774f*w; g += +0.04868586f*w; b += +0.00000000f*w; - w = c3*c33; r += +0.99518138f*w; g += +0.99978149f*w; b += +0.99704802f*w; - w = c00*c1; r += +0.04819146f*w; g += +0.83363781f*w; b += +0.32515377f*w; - w = c01*c1; r += -0.68146950f*w; g += +1.46107803f*w; b += +1.06980936f*w; - w = c00*c2; r += +0.27058419f*w; g += -0.15324870f*w; b += +1.98735057f*w; - w = c02*c2; r += +0.80478189f*w; g += +0.67093710f*w; b += +0.18424500f*w; - w = c00*c3; r += -0.35031003f*w; g += +1.37855826f*w; b += +3.68865000f*w; - w = c0*c33; r += +1.05128046f*w; g += +1.97815239f*w; b += +2.82989073f*w; - w = c11*c2; r += +3.21607125f*w; g += +0.81270228f*w; b += +1.03384539f*w; - w = c1*c22; r += +2.78893374f*w; g += +0.41565549f*w; b += -0.04487295f*w; - w = c11*c3; r += +3.02162577f*w; g += +2.55374103f*w; b += +0.32766114f*w; - w = c1*c33; r += +2.95124691f*w; g += +2.81201112f*w; b += +1.17578442f*w; - w = c22*c3; r += +2.82677043f*w; g += +0.79933038f*w; b += +1.81715262f*w; - w = c2*c33; r += +2.99691099f*w; g += +1.22593053f*w; b += +1.80653661f*w; - w = c01*c2; r += +1.87394106f*w; g += +2.05027182f*w; b += -0.29835996f*w; - w = c01*c3; r += +2.56609566f*w; g += +7.03428198f*w; b += +0.62575374f*w; - w = c02*c3; r += +4.08329484f*w; g += -1.40408358f*w; b += +2.14995522f*w; - w = c12*c3; r += +6.00078678f*w; g += +2.55552042f*w; b += +1.90739502f*w; - - rgb[0] = r; - rgb[1] = g; - rgb[2] = b; -} - -INLINE static const unsigned char* mixbox_lut(); - -INLINE static void float_rgb_to_latent(float r, float g, float b, mixbox_latent out_latent) -{ - r = clamp01(r); - g = clamp01(g); - b = clamp01(b); - - const float x = r * 63.0f; - const float y = g * 63.0f; - const float z = b * 63.0f; - - const int ix = int(x); - const int iy = int(y); - const int iz = int(z); - - const float tx = x - float(ix); - const float ty = y - float(iy); - const float tz = z - float(iz); - - const unsigned char* const lut_ptr = &(mixbox_lut()[((ix + iy*64 + iz*64*64) & 0x3FFFF) * 3]); - - float c0 = 0; - float c1 = 0; - float c2 = 0; - - float w; - w = (1.0f-tx)*(1.0f-ty)*(1.0f-tz); c0 += w*lut_ptr[ 192]; c1 += w*lut_ptr[ 193]; c2 += w*lut_ptr[ 194]; - w = ( tx)*(1.0f-ty)*(1.0f-tz); c0 += w*lut_ptr[ 195]; c1 += w*lut_ptr[ 196]; c2 += w*lut_ptr[ 197]; - w = (1.0f-tx)*( ty)*(1.0f-tz); c0 += w*lut_ptr[ 384]; c1 += w*lut_ptr[ 385]; c2 += w*lut_ptr[ 386]; - w = ( tx)*( ty)*(1.0f-tz); c0 += w*lut_ptr[ 387]; c1 += w*lut_ptr[ 388]; c2 += w*lut_ptr[ 389]; - w = (1.0f-tx)*(1.0f-ty)*( tz); c0 += w*lut_ptr[12480]; c1 += w*lut_ptr[12481]; c2 += w*lut_ptr[12482]; - w = ( tx)*(1.0f-ty)*( tz); c0 += w*lut_ptr[12483]; c1 += w*lut_ptr[12484]; c2 += w*lut_ptr[12485]; - w = (1.0f-tx)*( ty)*( tz); c0 += w*lut_ptr[12672]; c1 += w*lut_ptr[12673]; c2 += w*lut_ptr[12674]; - w = ( tx)*( ty)*( tz); c0 += w*lut_ptr[12675]; c1 += w*lut_ptr[12676]; c2 += w*lut_ptr[12677]; - - c0 *= (1.0f / 255.0f); - c1 *= (1.0f / 255.0f); - c2 *= (1.0f / 255.0f); - - const float c3 = 1.0f - (c0 + c1 + c2); - - float mixrgb[3]; - eval_polynomial(c0, c1, c2, c3, mixrgb); - - out_latent[0] = c0; - out_latent[1] = c1; - out_latent[2] = c2; - out_latent[3] = c3; - out_latent[4] = r - mixrgb[0]; - out_latent[5] = g - mixrgb[1]; - out_latent[6] = b - mixrgb[2]; -} - -INLINE static void latent_to_float_rgb(mixbox_latent latent, float* out_r, float* out_g, float* out_b) -{ - float rgb[3]; - eval_polynomial(latent[0], latent[1], latent[2], latent[3], rgb); - *out_r = clamp01(rgb[0] + latent[4]); - *out_g = clamp01(rgb[1] + latent[5]); - *out_b = clamp01(rgb[2] + latent[6]); -} - -INLINE static void latent_to_rgb(mixbox_latent latent, unsigned char* out_r, unsigned char* out_g, unsigned char* out_b) -{ - float r, g, b; - latent_to_float_rgb(latent, &r, &g, &b); - *out_r = (unsigned char)((int)(r*255.0f + 0.5f)); - *out_g = (unsigned char)((int)(g*255.0f + 0.5f)); - *out_b = (unsigned char)((int)(b*255.0f + 0.5f)); -} - -INLINE static void rgb_to_latent(unsigned char r, unsigned char g, unsigned char b, mixbox_latent out_latent) -{ - float_rgb_to_latent(float(r) / 255.0f, float(g) / 255.0f, float(b) / 255.0f, out_latent); -} - -INLINE static void linear_float_rgb_to_latent(float r, float g, float b, mixbox_latent out_latent) -{ - float_rgb_to_latent(linear_to_srgb(r), - linear_to_srgb(g), - linear_to_srgb(b), - out_latent); -} - -INLINE static void latent_to_linear_float_rgb(mixbox_latent latent, float* out_r, float* out_g, float* out_b) -{ - float rgb[3]; - latent_to_float_rgb(latent, &rgb[0], &rgb[1], &rgb[2]); - *out_r = srgb_to_linear(rgb[0]); - *out_g = srgb_to_linear(rgb[1]); - *out_b = srgb_to_linear(rgb[2]); -} - -void mixbox_rgb_to_latent(unsigned char r, unsigned char g, unsigned char b, mixbox_latent out_latent) -{ - rgb_to_latent(r, g, b, out_latent); -} - -void mixbox_latent_to_rgb(mixbox_latent latent, unsigned char* out_r, unsigned char* out_g, unsigned char* out_b) -{ - latent_to_rgb(latent, out_r, out_g, out_b); -} - -void mixbox_float_rgb_to_latent(float r, float g, float b, mixbox_latent out_latent) -{ - float_rgb_to_latent(r, g, b, out_latent); -} - -void mixbox_linear_float_rgb_to_latent(float r, float g, float b, mixbox_latent out_latent) -{ - linear_float_rgb_to_latent(r, g, b, out_latent); -} - -void mixbox_latent_to_float_rgb(mixbox_latent latent, float* out_r, float* out_g, float* out_b) -{ - latent_to_float_rgb(latent, out_r, out_g, out_b); -} - -void mixbox_latent_to_linear_float_rgb(mixbox_latent latent, float* out_r, float* out_g, float* out_b) -{ - latent_to_linear_float_rgb(latent, out_r, out_g, out_b); -} - -void mixbox_lerp(unsigned char r1, unsigned char g1, unsigned char b1, - unsigned char r2, unsigned char g2, unsigned char b2, - float t, - unsigned char* out_r, unsigned char* out_g, unsigned char* out_b) -{ - mixbox_latent latent1; - mixbox_latent latent2; - - rgb_to_latent(r1, g1, b1, latent1); - rgb_to_latent(r2, g2, b2, latent2); - - mixbox_latent latent_mix; - - for (int i = 0; i < MIXBOX_LATENT_SIZE; i++) - { - latent_mix[i] = (1.0f-t)*latent1[i] + t*latent2[i]; - } - - latent_to_rgb(latent_mix, out_r, out_g, out_b); -} - -void mixbox_lerp_float(float r1, float g1, float b1, - float r2, float g2, float b2, - float t, - float* out_r, float* out_g, float* out_b) -{ - mixbox_latent latent1; - mixbox_latent latent2; - - float_rgb_to_latent(r1, g1, b1, latent1); - float_rgb_to_latent(r2, g2, b2, latent2); - - mixbox_latent latent_mix; - - for (int i = 0; i < MIXBOX_LATENT_SIZE; i++) - { - latent_mix[i] = (1.0f-t)*latent1[i] + t*latent2[i]; - } - - latent_to_float_rgb(latent_mix, out_r, out_g, out_b); -} - -void mixbox_lerp_linear_float(float r1, float g1, float b1, - float r2, float g2, float b2, - float t, - float* out_r, float* out_g, float* out_b) -{ - mixbox_latent latent1; - mixbox_latent latent2; - - linear_float_rgb_to_latent(r1, g1, b1, latent1); - linear_float_rgb_to_latent(r2, g2, b2, latent2); - - mixbox_latent latent_mix; - - for (int i = 0; i < MIXBOX_LATENT_SIZE; i++) - { - latent_mix[i] = (1.0f-t)*latent1[i] + t*latent2[i]; - } - - latent_to_linear_float_rgb(latent_mix, out_r, out_g, out_b); -} - -static const char* mixbox_lut_compressed[] = -{ - "Y_4H8E8b(No7xgiXspim?\?;c^Nh9gZ[Y4hIA`P^oa-KlSP(q12Zbc'[;L.x:Jp:Fi=g(;TR1h_L@wXPmAxcw>sUJVclFj*,h=<(N-5V+NOSdCfQ]+,])_Fok#uwI17WW84^Uq*7Gu-UKu#UNI>?.Rt]JqR1_8jk/5`#8-R`1Ik*h#=Wms`LBPxhkt1u3UUbcc0(]eCp:kKfn?15gDJcG8'u>9upwptk*ih=*DrOb%S3lC1Yr)RoC#ul*4EawhL;tm4)DFqMO?sF5@WHtRhZ#(3iSU$O-B,)8dp_q[VEftFDC5h@rI&69u1>39s-GYO7dq^R')XKr_fortbZ...Bxd8GO5nKuAe^?t[@CtHwU^IV*DfYha]5,wwO'u4]NCC5jF'jcfu&X)Fjv=FMQ(ZQ(E$-bP3e&1+NHBIop@LME$Wq;Cd^l1jsflu;dt&g]1(kJ^.DFETdL)Qrukvj+H=gvmKI%]-vb]ZxpX>KcK52`5$n+eC%[8?2D8X0KMo#?:3v5udr@J$.LtxrPe$lxf2NmYMk'w#.^g@i#psWp95N?R#<[dUnj4-]Ps&+B:M<8f?.&jcLuC$5E$QtDwtrk1.T2u)u?qsw]m$9_BO4bQd0olP<8=Xg[a:@_:];T$@-1T&u?,fp^TtVE3@nW,;e-`dL+Tbgmt2DN%?V:d%HSre9I$^rvn+CWDQs5$?+JmnHab:<-_SRi=h)8NE;ZTG]mQDZlT([eVb#7VGmD`upd'5+]X>EHqtp)SXC#b=jad8hgnbm`@LjE+@.Vm]lXbhZMRFKVSp+[l-fl7'b*5nBg]Qu+HiBn%hqq_'qc[&D1;:q.]4v>ieT[#Tui=?pCLKtFAs1]#T5%?g^_b`/=u66@.M^]$4t+$Qidn%(h*4Bvml7((q-O:ZV&;MEQS@*8Q79_=t#;D4-]&=0?T;iv&qj[U69tq)@0qw1LgUjQY]+]=ul?F'KC4416(M8:)?BgE$c[*8`1bI0&^a/2hM5XI&Fne1pBsohq]*o+ek(fLaMf6>CsC),2TI3=LP//J_ncuDt/3#hvUL;17+(pgjrKk6g_A1BXht/H=Q,`*`'8sv$+AoWMAD+)k*KdvgJ&]0m?Ag?oencpd1NqP#P,Te_f[mt9*t);TmvZ,Wa*[mP;$#VOj/BDf&DCOt2bUJ]`n-Up&SRt>R/m(N-b2pFDTs@xKl<.eff)%vOhAndrM(h@lPj<*g*>d?4qvn1u@f]?r%tOQ2Gwg;6S;ZS@)c=M.GMjgq=1bpQWtn@WAeX2aAf6eaZ5f>6sSV'(k7EL@q][+%/qO,(O9-:kDW<.g3+RtoMiOmX5xA'FB2.,>Qxr@DX$EwX1ZZgK1kwxg`u$(MW7[G/90xGn1o]Kk<=uT?GjDw1[^`'=f%an`vZ)Cpv,I3=QH:rFtL)rL[C`5c9S&tR%PTxXB]OIa]%57O1=v5*gN]BB^5+s?QNf2$ujT2&Dci.QH/)5%5i@B2B4r&_-vi@YZIs@(C*T2kVR5N8j3:<6J+%;AjLcQ-d`a/v;PQE7S$5ejS:;ku?l]SWH*dfqxS2TA9o_-CbYBX%>Z+18eRj'u]j(I@@XhNc5.rsH@=8w4x>]=hx@[5fRbYT+e?^d62%c-(7`7i$Cpt5vlQ:dDI8t6D$(ceC#.D.WEZ9l%F[)rXGNX+eA`U>?EmY:?tqO[c[%V[4g#aVoVZ,[d/`#?c`[2,7B'Wm_sv?rB<>GN4[UHi/_beqOq`'C?5aM+g;9V#OJ89#.)+sIZ+J),lXID8KflDb1wiUx1FrN-p15FI:j&H7Psf_40e]g)nbcMJlI)0&lrRhu]Gf?YO/aKnO<=;]('Q$Ko29@h;36BP/ES2ru)U.,uIW+<#U2brj7[o=?@iL*7H0INhUs-tUikAlZjbYiw$tFKi&jm>]Y&#Su,2QMZDm:7^J6::sOtr]?#prdf>Lg$Xt-(UrR=N&`AW6g$h&a^gX.KAW?ad5f;vA8Gvq5cqFd:nZ`Y$P959HmK1$[9_CvuN8K[Vi@eDnJS17NG[LX`9r7gPs98dHI^>o:m>WeBT6juvWGYuh7c:Q%+lQuqT=)c&],?Y.;1U&S7s;@x;ZnIPC>,L2f78SOb3]gC,@-5J(65^@;iGi-5C>-m7B:NaA*T2]+I'#7u?q;os2+/*hw$k&;:/H-o<0dFGXJ8E2%jn$L:GLhu-<]_r%8N_YSpb(uXD2uuY$LRh5$MYuf&1Er7Y_x[mj1F75JY#u'_D.Lc#icu51coiYYPwbi'RA#66,6ZEroL^`1cxB$uY0F.iUUijB?K`H5[3i-Ao#b,4TQN2v7?W$4P^nr$w#+dsVZM@tbT&Y<6%Y*#HgFX7R*,(vcQs1S)a9:*m;O1E.l>;:q&%HADB:US58e4vBogv:E=Wts^_wQkH'(J1u_M#1KK5F)[W^F2@x,isQl6`swn613xts,b4ftM-$Ki259v]ZP*_[XqeN;mB,m6b.=DspYC_53F>78GGElKLD'Y4+XTKrLVmVje4b%x'j6-,[7&_K1kt?H8Ys&G+d72jq4d3ofxo*5Z1^*kGf2KN&[x(dEoBb?TRoOFij9B.7LA(CiMcf$T@+.&rOiFAQCl/>WTDn:3$)*`J0G%hfWxr=Jx]i%p%_O[t8`h9)Ja^n6)S[,MaiWHADCqeu4G&f'l.t=ph)JYEx+]:KGD4B*h=tY7ccGeK`e71+j@*A4lAj_t4?G[aKukUF)[unc]/@EZ%S>9HcKM_0'>F>H(E9n?pSj57`Blcd%w+Poq%r7)X>>61LKu>tE(X$O8F:j`uKAtgu2kDJaLdx#vSt&-%r=STAU5EcQc20H863f_axP2*BYng`$/7$6]a>'.A)jLE2lj8WYjPErd*sF`<2)i6J2YqVLEB308h?)=(md,dAws]Er=ao8<%)vud*FhTgLT3.D#'EFgLf05Q2XMmADVLkV>qT49vo4A7vbbA0jekn:6l(q6l$g>pVjPZW_QJ?@D;=/onM6an$SD$.'.>p5g'J7;7=>YuHZs]oJ>gE^FgjRR$D5u-PGw:uBNm3+ST>O_[go^UuA*Y#0CuH.<:4M(?$ROh?=)`su7vS<#gODl,h:xRnaidV3@J]=TWBDtA'&;-F.C,5SOqX0l:;0vX)F>n<$+]hpqw.v&N6LaSG0c=J)F>nh'Jp?xpMuui^04jo)xwsSg$o%ur;K(fJErdtG'S7'-L4SGNiFVN4qx+@.8Ii#Y3#hbxAWcnJXdiES@6MPk(&`a*j#/(3)0`>HS&;?]aUp4G]piC0&R&rVA=hBi_QP,lQ6S7>e::v*XOKH@mgQ7Jd[^f3%om0DR$T1/;9_,ZQq706Gw:H)hS4eTG*NP@-/j/WFQlVR3;[uQox'%Brs@;%BhCs.7)20`7VT<34h%0P?M%mhm*ROW]+']mA4/vZ8W;NXv`)v@>@$r>+oe?f0wcbmt5c[g58k7T5Nkq9DcRIkGvNEUS%NMce.Ldpm%Lxf@(g.11a.?7&%3O%s?OkPbn[5(Ym^[b;Yh3dFnEQpNDVlrUYmQ)vb)-/gl9Wr3e@p*Tp,*XvEc:*ASZgxqcI+N1K#3LK?X`qh9?`57fN>=F==jtb-rra,Tr_akCY+*)+av%elNoA:t&aWxF$MjWVgK>.Pxoc@E>*,wH@>x7vl$Z5ZEn'5)2iR/TMd_NVBvJ`lLc)IR+jIOLgZ[q<0V&3P^oNG/Iu*quCrXJR7oV(u8ub<DD)a3.9`KwAFXkPO4JIqa@>A/./vW1>B2Z58bWMG;])JL`ef65?D<%S8*7/M.rP5'29bM[Z],L5_:85ZMYt$%(h8Fq-Pd'BdXLp&W&-LM$O-QkJ.$?ZCkAAKoNKJooXQ#vucQPi>tJio9vjpet_&mEX.WW5x4x8qM9.WhefeqmJ8Eq4Rfecg^au%M`XuT'<<^diVrS9'3H5]%-_Y_l>4X/;r&+4T_Cvg.ZOsXCu&;ZO/9%$^aoA20u96kED-uT)uWNOsKp@_XQ;4F9u#)dxF5AchB6vcufpxCiUOV(w[2S[F.u8n)m4hVC2NsJ,HEWaR#9vEZYwgPG?)82MK,33NDr;;8A&`dImg*m#Y0a(MBNH.0kd7IucQ#*._MZJWL8dt`5].=:vmasRM;B44(:j'0fhS?uo+&dA:T#.LT70,tN<;2/>xPSs%c53tkIWeT]l:t1pNuH7Z1a+7q42)^_u)84:n&gusF7&lwMbQK-v)Ui_uJD4%P[kK%v@qw7vpVTu9N8X1qtxJt/)lYPDLn4_FIVC^OH%aVBX2tYs;Y)1KRR?[CDkfHqS9$B;QdMP-Ft2.u>p3Rc]#nFi2Q$;-Iv$;-_kcT;i=`f2=JT$40h#O8Ith9vQP(JUno9Z0jT%V&Dg298YZ:0rgo*0vRNmhG-02TidKsCER`:J:hBTP-8Lm*J?GI]L7G2JP)Td7assU%DVsrxu3gqqU&l2P2gCjUWs=JlsmZhk$:&%NOf[,ff)DNl$i(m@es^*Fi2gKg&,-5aGnELFF9Lqe?*_>NbxGx-43V&L2j;5-L2=^qm:SCp2(%Qgh@bIf8B1l_UWbLm5a,I8bVnvWl[Lv[3b=TYKNurp`tX5C'=)VYJ(EA.&BGkUEZVU@fK6Mco#Ie#S1_5t[?)4YYi'RxX)Z_RWbaW:m-ZSM^0%;pIYvV[G$%[.0FDdEfiE7Na-9u,CBu3S7m]fIbVf2wu;]fe>7T?oDuE+SWAHu=P@6Wu3@#G5a#?feeuK,4X]b4(IB@vGU9j0_X&jME::(U=kfmYKO9l-N*tRiuANg6lo5Wo.'6U((SJh,mnB1QViSkY]&o=uf97frFm#`jP7", - "rSkNK/4v;ub:xsuiL1J##RVI/3'[FAdn=B'ok'4lde'Gmu6DcBuJu4qAn-vE$`?grw#qF=qs63av`t7:TeKOg>jg,a=$eD8[aC*3no*AGe11JvCt*(&3v-)7ZN/(j=oGR#?7I0[gsGeTDiWlAONa>?/bLp2ou1O-`s')B`Up:vnpKn?Lk^?7R]?\?X[g[>[c+3b%^*^#T:Qacd1EY$#;u.t9EPcx8StlJJ8q9].w5m&=@-*E9fr6tCQV[lRFFp$U;Q==QsSj)YLOSDxR%A=BgumD(OX/ss/E2XCjFp^9f9g_wMeT.:1FOPlck_'$rlIw8-6Mtd1GL3@&Y8Q3WuPs'_EM2V4?(WxX9?U;Vt'aDmoFPa%u*R*,.&*E+bWQwM[1K%uB>paujv?&HC-7Dro9Q,NU^M9uSi[xFxRRMrs=7Tmb^9bn:w`'A,4-c0AM&&'K]4lYwu$x,F(jn571B0HvJ(Jef49ge.Xx&Sv>w#rWgwA(_[qr0&L-LqChb8Tqp`VHZB^^-X.-m5hA6q7L*d1q,2#UIfM3,/W)D>iMHK=,UA1%.r0-ru<-lO&q;rjkX9+%k1`dkde4v0w1XlWAD?5-vpPl;5LWfvGF>5/WI&vWMiK#x]>6EC)#(2);`mONn]e.KM:G52+@Pn-JT]['Bd[LS*JEF.,qXlq$f8q%BaVbvXFD,;PvI#9+9`;DAwRn]KaK8Z+tV/#]r:,Z@%ArS0T+Z#4lL0b)g4=*-njdQBeMfc:@wkhxdfu[,WG2Awe8K:(qld490gf]v1FRglC`3%`HWsO&I3RR&(GpOp,frYsAx;H%x/NSkT6`u6vn`i;1Ruw(-]bxx%mPn[2.HbAS:QhsHFDMrFu*9u78Z1]J*^t,(iFZ>&N7@WgE]2)7mJtL<:vR-4$YrHol)Kql[2s/9YFX&go%;jnCXJ;Y>u1Dw3vU9#1uflC--],6p$[X^vSQ:37GHD1eLfgkCt*H#1$aLo.K6iV.^T@LesaWK(v*p[[mQ4vj<#:qhtLbT:D4bGtAUbaH'.=u$E7d?dXmGkGD%i/2_ccbw:OuuVqGHrK$bT29[6C(hpE[#=*/5ff?PCOD=Gh7Pt(hSRG:F9RcjGPpYk-okjb*)/0[*JB)RqX5>[$@J.aA$e^387eDiYkQpUIrt(Yd07N+;D6*rHubefeFTifLOnOh(XZXscEX/7l^E_l_Rr(A(A<#`J>GTmTr&LI=K&7#kFLbsLb6,t/I]Cd1WK'T+sYbscn=oB(5E9)%;1`Ns%KGqQqe[]X(O5`H7QBI,3SZjg-K48`aZYGDFGD0#PqV]wV,WQ)c1]kHh%PQ(hdI$aw1x>HSECsEVQtl5wOCdFp#C=&*w@6T(Pa:gn[6u[TeDD)>[1((,Ba-Z>w&_HuUk&`F?/q'8APnhIfnYYPxLaHO^QI6t;fAZ2+?8^eOB#T@>W6pQG:v;x]B&XqS^&MPmBe<9o(Awe8b5$QI+Mt#OI#ABYlLmU8N2,=L((pYIiU&l3Ref6r*n7#B>tVPve59WJ6f>v_BqxLP:vS`iBA3TZTM(CT1WqI74dBHZcadgx-LqUG;VjSI2sw6H#-kaGI'U=t&f'j(opG#;MS;F)NodmlC[3BnbfCak//M*#QJN9PZY*tgq$cW(F'>`NG19SII,b=t$uqvMSp?dkup7'BE0YXX6+.S8aRqv#h=E@7xB@7vCS>-?Vw5[):UP`M6l&Q>];%F^>LX.m,TLw,YwV?uIj1>5n5.-uHjGHkEQ9?E1^;7RSvQR_aXC$@aNsTSG8uY&=H=f`5YB:LBnMOGkRX@@U$8ff%PjPCK^jQ;*hITnPj$MNU(NuL;vjM9qnO2:.x[Xe)CEwCM#`>'TamXJ>S7EL>%,D$g59^:d$E:Q86N(.L43ap#bj4bP@8+e8`Tm@SreM;v'@eI+p'Vd;$=9v;JH_ddZ^IpY3().(6VM5[g7Kh2(8=KnmS8t+LrRmxwfTOhfib106F@.Kame'4mw'D-pI:roA1YYD3D0vJ_O^&Kf8v*iGu@)nKN5MSQ_ZNt3WwF#Ho7X'X.)KQBEGRIe1j/PHE(MG?sP*dwq+2'*HC3+s=Ufb*=oOJmds0Cu_e5N]20'b9;gRDrv&N.(>%Lo1Zfen(Ix#)w$K;EI1bilOj[99`'rHDF-)ChVC9V_TLUG-[$9-%Pxs0Nk_-vv^4cFg'fUcE^b$(*ha=noSjRisRdX4-JA:ZhP9xmtDVD5jvk;nXVNsF=Bg]h7WVll;9=qtQusir]880JITs*HK/,)g3:A^6IPq9vc$ax=#NfFU@=cxg-$gWl]T)039&jl'W:cOq#[kB#r20*3d@M]gla$B@KeBL`&9YZ$LDTKZKr3o&):'/rI(6>8C^`I%uTQLJVUW80KGQf,:X`RZP$K'>hZG]1K[u/G=lr_@7&d4;Vo[aOo-A`JmvU&+CR1tE2lUHO([=uuRddL0,nuK*v:wTX%JrVS%[Nxks7jt+.m-s^3YM2>t$j/-vS68f,;/)BO%R*,W#UD^I>9uno7'G<$>X%w#Z,S(nYq'Jm3/aqP5^9C$Pu&a:G@6ZGN,Mku", - "vK'f@s^U$noYT$aPV+D6(7;W%BI]b$`/PK8l(7e^nA%lsI(G]a%QT;n3dY]#gC+?t^wc:dc-6lfG^)VZ#p61rFYYaIoJon%xs81-Uv$pIFse:?VPE[TD629*l%sqKw?%l/qgDg&2`2&c%#&%07I<;+B%[[A?%>)hP<0kA(VD,@v2'X@fhEqr&]ErZ+I7+iJuLf(^vt%jR%ZSJ4Ih.vKw2PKO#,`K:KZ1bL@_vI+LX.)[NMguwlnDKPkK%]<+5`*UcYEDnr3^<65xaAWOG,*U/f4o(+J,1d3p=$;AVpdVHje.+VEe<.FfYsR5vJa%Jxhf/)<.u2K.0YGDgpMx`n#KM;-`ai.-A6His070]7XV,6eouV3v;L.E+i]D@qgIwX9QM@&[re8;7]>mLR^O4;:uN/97JP/%*=7&=>2i;'4bU@$K>JWLPojk/Y1/710u%s`vpt?i_a8)^sf>2uKM%QAn(cr;:QLf*+1Z?*fuGjve1qoWoKA;vG5r9o+5rjJe*9jqV@j'2H-7rNbugKeIE)^9pIn$`*i15%P,Ix(7Fd>T:lt`7sN-XA7'nW<2ecPM*1I^qd^l_tuKJjR.Le=a,w%Y>R,pXl8/%Dmc_hZe*FuIj-&RI$:ouUxj-f_Iq1xgEK$b0@rI=4vej.OgNpjf+t(Hw#INkD..UO8.2POS$hWc@D)5,85H2X7pZGxdEqA,6U?J2C186`<&621Au:4O;OqOV9xucK#xu.U%acRQ20n1M<=fsu8Jfnkq`E^5&;-l3(h,b8k:Q>B%;-i=$vX6s)QD(TjYRFTsxC$6mn0T4q/SR*rjVdbP?\?XmZkZR$Q5Y2Nq12VX4fupVpJ0e^^r[%'5T9oVi_E7/2MK=n8h3b.O:*&x/b8b4)$_)m^4>cpK*@c);Dmc/+_B87)4vY'#6-2V2QNgVQ9qx[lUuX2B%O0E3.p:>>gu9^Nm#+SGYx7vXcZ^Q%8@No[BXe8e?8g];6;24+BG?g*$k(Tl$4_C:M;7uaY6nkCGctQ=Whg]=n&DNo>1>+<^Ql,ueqr0d$+i,iQV*MKnB,NrSJ#`3dI8bZ/cu3+R^,CsO9a8Ak4ui^3-`%_)X1'3&H>u$jLn/vJO238v^t77A^qG.WOpU=Kqe%uhm:,hd0^g>#@+M#(i@W:6i92jGB7jmI;I[LcATD$^4fwqw=S>82$gv/<8JSZ-kTQ5V-drnLMkCbMGboFgto?YKd&Zf]p*X%732w/F.]3Z/>*`d^qVCvrLGDL1j>+3H)7+-vxaN_G-NY$rR8=2nm#Q2H@&liM[[U5HR+Vk8^[Pp0JmJSO#)'&qFuP$_WB$/Z5ls4Al^?ac&]skYX9NB&w)*-oINNAu-%,v6$C$>5J^OIpfBwRD_7w=ri1A'vs6Q71GnZt2M+`9V])j28cY^<]Kpkph$@rCf#aASk]Qgr*v](D0lp-#Mr`jtFGbA7+kjl3O%##k,nan?p.FlO9]Lr,[,38gI&;-JC97_HE/%I6:T1]et[,lfIE@7ZN6@rd--0FOWOM1#Z/rXs(q7f)l?S%?nw@0ZJ#gsRq`*$fl--LHwZctM'Ue%Ga:,.j9DSfO?JGujgg=5+PYVr%&DB=@w`9:hW-f/@)qXGZ?3aLA<`W$k8P8Ga6h-NnSo6H_jR+#U+rHS+),u>[g@24=HbgRUquP0WjoaL-Y,tU7Bo1DSi3p#e*;Wv49eITpJ8j^Z2T2WG/5M/c+S['HkGgJfGP[$^^;?s>QDO@'O.[]Z0(lgY>*L;';/iHY>mM:3_R@XYXP):[xWPemTnj0ipH6ME3^,P#7j/n]VS#ZABN*vkee/YR8;&,_xU5$dr`dWUF]?=u7qw6eqa2W?TDF,[MMduPSwfs?f1t9Vfsu(v1IFI/wVV`4bgna`Q&4v/%vFoD5=Bwcb#SqFG#d,lvEYS'c4@N2^mbT?CmC:mhhJErn.ZpJH<+;?-QXI'XHS-c?IJLer1=C]50;OfSiTA7FNw?n/,b46pckIh($M'mT#U@N'6UmrMKN,pZuTL#B]5q(%X$Gh/]K`3vwu-h^Qc,F_KfC&KBq58_G4TnCnxNni%fre,i)uq@@K3*wx]Yj)nk_a((*Rn)Savrdt^lf^<,:rGcPP9)R`f2;/v-L(MEpAob%ZKe@$`PS3a4,Tj7>[':^dm1T7p'*&5Dtb;*Kf_CfTafWc=f.2T6#", - "LS^bHNM$vZWCONb0gkZTuO`Z.A0#&2tbb'G+i422#G#b1.+DDiP0%/1Ck*rIS(L=E0ZCf3VJ)G.a?F>BXT7xk7SE=nW6CWCuN#/(QKQ4?F?([)Jeo16sMxLGNaNI9:TON9.'F:?aEDc_Ik5r#9JXu(d4a@/TYisqP8VaTQ(@'5mqlG$ZK'/(<=f%br>(<-dF4.39v=+kp>fUJ'#d*=l$j+m3v%>p>sKu601^Wd*e=f>Ko,INne/oRlTPXfo#IQl-cG$'S79PcPlwm>c&5a38a&u$ogR]8rG;<3B%ke%'kw#i%eg^OC+vswC3@*`6%W6u9LbLguI_Xu#C>me^GrU;?:s`GDDk(''@s(Wj@n`Va9umNKU.H7=LRL.LNd8G)OTLj:[@1Z/;3%P'8[s.:DoE9Z]>i4sRh[X&:d$qO/qKG$uWwvISx3SV6Kp?:C5JjM,h4J8GF*X-IO=rlNtuoQq]9[4xao[Snc]aU^YLVUG/L)]=2r&subo3xBM+/YWmdtm]*dK/x#+?:r0n@-rt*I0?2qDir/.U8>HmaCJE[8&W##M@?:@N,&pb,qV7sVJJrEl;#LV@d9V`/S-I7tMq2UuBAS@Ee&:Kw24bUx,?QS[44Q4M/,J8qE/):)$0R.Sck7`/@nssd=V`]]7HiT7W*.L.fV$g//0'rJSLik<+A=u_vRwr&Swn+rfac11v9DVWbXsd]BTsF1[kO@1um_aWL7,J'u-#60[/wHaB`u#OEfS?q*3S25vUw=a^nmA;P1*3@LGtS,;wTCrJ]F;nNt9cFX;lT*H-DFV`.)4#m@&'%uV7PEQFh`Ic4rE2dM+@nTk5r#xeF)&F>eJ_4kqqZI]_^k_E2+N&nd-fc#Q2H(<0GZ(o9Y5_U@dUQnC:i]quSRFGS'9/7Vt5d=n=Sjuxq1m10eE@60VFnFIv`HM$fM7i:8b5L/`3-f?W6?5R#3x,1.Khu-jp/3/N$S%'(L2_4=&PtCb3tsBQT)>-^dlaE:/Bsjqhg,E_:])g5?m^VX%qde?5lZ-aeD2DBx$gWXhe(Ln7Rn[LH@bfiE.&3_.mdP<=+d&.W'MoM1uYsN*&9jxPgTuU'Qr`r/(#H14p$N3D)+X2SNIGYgmqK^?U]2q:Slst[OnKB+s6S@L8`]2XIf$Grx3uH?QM8hOQq0?N^IPgdU*_)Pva5G7fj$U(6[Bq5vZM)9onAZ)MB/2Ii6B&oT*hQ0M^el&q#5)(S&,w9Xir:-ZV4im->3GxF2G9>?\?TY%,tnTjU(^L`%tg&Hc(`iYVbAGH[K6g*vu3_GAowFl4vIt#[>gN'b^kfrQM,?FxT2(_Q2IE0J?S)YsH]k`PF7vnrcft<64P8*0#uKnB:_$Kkmbl]ki-*87iTN^=g8X$GqcmoKT:Clhfx/8Go5$S&gAi5C?LnDaP*#C'-(iK'Cg[TlaUId-w8-P[wB+Ba^&1>+c;rT71vus4w9vfS$3V..1juF?]<_uw.5pmL&F@sk--JVV=4%FALA[p'b.L/#Yv],>6xtJ5X`I1w&#:EImJrwo,vA]gdR[xQe79Nl6LLN*x9]Wa5](q_[:Z[C#_X&<%IdGE4)=,gWwptO).Do%ak$i%17&_?>PQru[4viBF_<_gDSQD#@^1sQYb&Kt03N[X%q]TQ/NO1MlVEDm)[^$pBA8_/JKDtB+WAQONqU5Kw8'7DwY4/CoN'`c%BkX_j]EBaNKtjSO'V<2(8V/;/_$^(YE=Mg%C?I8>(?A';*8,sZZ]+>0C3G8pcRE:wNT2R.aMeCHE5_+8HbSa;A(@QB21NR@?*&V#wVkhOiDcp9:vNQqTo.=O1:(Ua.o]QsOnMC;HfjN/%I>;?qYPGF,bpS*C_Q1$'tMbi_Z+`7;2h2rVt7U=HQj<9B@T9LfI4sd-JM=8fr5)=<7(s%mKCSrpuf8EN%XRFY)IU<3rK/3JFsQEb3dg^w0=iLpE&7QGnUq6uu>dKbi_Y0E2$=+n'/RMm(?50%bG./LOT^[Rm$>_K3QWtjs1F-tl22=/v^o*Z'):4^%m12ZKm<4.cr,@]>pnT`<)Z'a3xJWb)b.%S7&P:oja05R&kkVu`1:DYKh30S(F#$]Q4utvprHt-61o`uuH]:S1m6vs_VsKb`5Kt$?]F4<:SKSH+I:Ef&A_OUZw8b.Lq#d),/I*K#W=CmHpq*je9_Kd9&V(_Ni,W&^=eWac@5f7v7@K-v+K/5B0.+u*ttSfFo?7p$4r3r5@pHm^w[7G7f>YMrTefd6*6f(+R9N-GI`UAlip-^]GVp5-Z##S(=#15qQGq/9%B,-Lh`:k:gE:9bnqg<>Ul)L]g+*;6XRjGko&n+LC9@I.[^T7XmmM@VRD`L.L0Akq4_[o#JsM]ax`OfVoiKaa4:GRpe&Wfq1655-/OJErUf1a14UIEnf-.Pqaj//;]W%+7:a$(WPhS$L.C3YKx$GL2wG:1_[08n=YR+K+GG]&Nc:LfOA<@w3FHLnuL4[;VL%[.0G]`%Fm*m^(wDML0(ie/L;sbisSM1O7?eiZ5hbuw$?Z3IE&JCU'45Qk?ad&6VJ*JKi2?oUoxvKd_os5[]^4R&:", - "QmZO=osN*HU5L.7V2g.vZcOo^h5@kUn,28N[E5AT,@,dW25L7?0c==KRr#^a$T=Iff:`cm_k'R<;-R6>pKEVg*S6IlP>DV@JfVn-VHX4bLd2Wgu-vFNuGD1'/sQm]QP5N@]Ga$AKol[jh^SDc[35wMDpSvE?F,%$O*[AYO^eNlA;.tC5Ift$L3;6%Ge+geJg[wDDI`Iuk__?g3B;5Ut3HF9Htdg*[sa7GGcE$JC?uhI1[a^9@)(dP@?u'46Z6KpneL#Wl>UvE$eu*bXrJe$3#(,iv)Mf7h)LvB5Ii@V,MLfxT(W/tZS@q3ru7+D9[[uYOaY-k:inHtRd'1v52mOsbHIi'3<5B>7X=5:dSxX,Hd,;pi@0S[.htO'B)?^h0J282H3^7Ki#jskBxLA9+3=>_pIGR5;Vj*r3QENctn=_U&F7eG#3xapu%`sc3g3vF0Kl4oD^,dMaCLSuhbA,T$/GtEjJ^UAvvRI_rrqQf4xD*,?bJVO1EOek6hj7FQ7q=xdoU2Dw,msaHpAa'^&s=?0dVN)UNp68r$DH/Ah%K`Z=Ta$NVPI%*p..VY^*@0VaAJGOa9j0gV;wN[n>mN$:gdL5t+(RRU`5M09QEO^^wX@7XhXrFW?B8tw42J[dT,%t_7e:N55NWl(;Kj/w0O]t8Msa-2OQaSA2_&J;Xsx=$$6Q@Pd_biHiPS89Aax^S_oI7C9nMK3nPB43F1%pkdDxb9t6>1C`vi:IxjJqds*J#L%Z8:ONfYadj>o1)hxTkJ7J4vdr-0+i$WefsB8aseVIgIau=X&^9_jMM_3r`rBDAeG?YZ94M$0#?7k]4:mb>ZmBEi^P((S%PO7DBH=urJS%vODGKaMUKiOOHC2TD/VGw3<;,r$sR:X(4Ul5l-2S>,J+Av-g#oM91S]#t(0kgYV=0W@^c2ZncQuZKhesY.98O&1*R7T(?js$O+e::?Wuk`Jm%b6HIcTeTdt26ZTbW/;LPT9Jd0]i_v7?FHvdH:K,.L8lG#vU_61rOnUsqZAc^L:fqgGqWRiK;O2c3iAjNEL61fqCx-f$6RID8(wq((S#j4])kpxpA-bc79%xW2`PvU2]r8Ku(QgC7soR_K1TsrfM?k7A@h.Z/ct/P+Ijvba+%@EUN?7?&Q>kuFf(OS#Kw]O%O7tXb^JZChHGNhELWS/c60G&t<`)AUfNM&uSE%jiP/*S[#TUJ`Ll>7vlcE/trEqDi6*Vh?R99j@(oc*6Hd&.bb2M9H^d*?blXit$/Y[9DP=P0TU9Ielwb6kOHYv[nf;9c--7LLoj(g[aN&j_mQ)0l%1AEq]MeRlq'Y_'Ni1frTVfAGY)gQFY_R:%HLg_=nMK+tQ8&X58DkPR&o2f5mb.(FI$p3eOk&Ef3M^[l>5;<^v[uc^NxR/;D1bU'prdP,6Q7i*QUn=r?8HUqV]f]H39]%;UZYkutqnXAGul7>cpm7*C`mi+VauZe6;A0_^f9A(f/Lt*MDMG'o:-WQj&DCbw-L#0=4aTUN#)eKUAnSZ1G%j4v.(Jp7Nk[721_dqJ^hlHES(j_NK*iN=fI(v=Zf+nDLp@b`aR-*OoN%qbc&)lpp'6bXX`7-wsYU:RZf2,HM7loW]&I&NHZYJHQ5ebt+Y=bPq9ti3>Ar'fx8*xrgsVh-6bc3igA1^#G%DAqX6^qBJTlY6JGH_aS$E]n96YtQl&xRfM)90dS0#^]mrip92ePAV/KPbdDv:f>LBqTgN3Ncou[0%k[?ZE7/E*,6Y&MrrO]-gu.lEg4cIX.JVJZs_ZLbTAT1)G;8$bxuJu-MLF3f*Apq10iL8'Z^Ye#Bq)`4S7B8='(;h=tLxi%SG/DbXKpB/p+@jIS01b`Z8ncc60Y*XhSN4PYawN;0h9=%;>j_cS7HT3R&Qjr#jds2_l+fKan8dr@_a#BPs@*%Ct^rbi`T^^=fs`ga4^ZIwF2GW?Sm4`u>;kCDpQg_7u=I=pc58#1rSCA9_Gu$I&UCr'+J>cP:MK8+gPM7g9bn&]EOgui#+URgCP[37?hHLu%78*?X%2`WtU]+3:uuM.uWno@I$&LAnBM>WOL%Cl#B=qF$hP'e$k+Wo0gu#Y#Wrl5ENH$CA;=#i:l6Q4h+((E$N:639%9+_[W^oU[-GD')'qcQ-7Tm5PS>uctN+*wBjiaNNdJ)?MVM)B,M9jk.Nn1^wQ)iIHuK2TF:Tcc2r9-l#Xa$1gT'34o-Vcj8nu6tKE'f4gIc(H93GiVg*[7Wv7mLCS*e:hIho91-DfsrpuAJw)r/N`NeG]UjADHnt/rDPwd:nA$g&UqW-(hs7G)U:EH<$w0#,", - "ZaR+78rim/3QNYdRK0`*9./+aTu)@t_E-G2d.@-F_6asqZE.q7aK#u5k,*='MU/mBr#W-uUN*6s*^at3[WV;B4dF7Qg%OHI,^&n9.'b^]C*[GH]^&sa[E@4C(F;1ku>Y%m+bXR9&YGu;9P5(g[4&cF3AM4nrOT>uH/bM/kq).e5mYV+u:#rNi/1qH#(WfrqP@rs]1@tjL1e$EV4LnI/W8dRDCG:$15>5m:&)n;rRL.VYZ2/SWeRhobj*tD@*du*=?umd?P1(lwx1J]mmP/Jd]Y3EH%K)S<*aSC`-v>Bg);k7iQffs2Z.:;v,#6/)K:]Q.[UcQW#i%$uLn(P`/oqL)?Su`#(%[XXBthspA2I><]1o&ofb:[ad-T:&;X#-MEHZ=V:4)lnx'$5,ek>HEnC_C>ua[@$3kc[..4?=lM1r(SjP7U-ngB&-UAN>;.)EOm^gX,Gq^;=n?t>M(iVLCl1c:/_#NNIj=AqK*T(_,?26,UL%I/Sog?ii^>EYan/KT_FK,,TkXrI`KnEG,<__:e*LtSvEb9Z7id/T*./ME<`C1cqM/N5D[aVt'jVjE)1(;_=81-#l`9?k&[Y89X9H?4@X@xdGXOV`#sOLM8cf)h^;F$VfF^X[.s7'YwCDshAjfR=ddCQvG>(]]:J:'3B?7%I*4K`WdGr%wU$N6&Nd-S$CH,WcW$t;WAsJ4Dm(<(n>HbF)^$Z3o'RUFPB/jfBOBWkhnZK&B6d?YZw8vmMLSH'FMauO9bl5[r<]TCYKT+P?edr^GO0d_7D#N9Upwu^]CO/],>x=KW6SEu;ZaX:0poJ2j6B)#J[p>mO%9U``u7;%OF.Lmj&j?;KG-.m.Y`pPFN%vJUUTpw&v(ErQF.cf?E$4)XgVtKT'.'e/Bs6Z9X[n^EhTDOD+7vr%8uMPL:D:i,FL,Hv<5l=RwZ=(.J>$>wj^f'snfn99,lfr9>k,3)mnSFnlQ)x@aBqZ#s;h[I-M3u#-N;8r9Cfkm/L3$C@m)W,8x8iVgL6E9[t(Km<=@_)bG[Gd^apfn@6@D]aDie6]Hmb*6pJfLb6<9nwR%)OCi8Eke$vZ#j[TuffwaA]]u7E3k#YrE1=osHHW&S^sB,(Z-EN6`uwFuW#((vg]v8UNe7]jTsfKC*T+]kVFb^a`_pXph+#B&W0J.<.hCah9+RlJ6X5pbv61(Yu)('8u3*oLA[l9vwPnJRi4pT/ETaH#P>LQ7S9UEoAQ+URK4M=(uAl$(u/n`h$421L%?*Z0Xro0;^x&'YY,vR@>:)qHj%H3u2ixu[`XdOhF0CZ1YKRN3OmZC5GjL?$-?q#GRqXgMU0K_h%+tW%2=cdjNqt';?-6ckf/Otopc3''S74bdS]w[ZK/XU5tkYv.LdhIp,]HZ:a@f7tAaDU)=#JvF](p[9h:1AB@@:K&/#EM=M*jYADM*gLC='ue<.mUqUfEjOdud%[.@7PHhTT,<>P4BJ1sZLb,#'v1e%g?[@W_r'*.A=[O8v@JZ5U]Q8naA=:/%/4tav.b?dR_?N7/m.^twIFL#b/Cqo/P0Oeqw9:V/f]@6q$YD'LvgYX=dLmAedIkPnQfQ.D*[:Q8(F1H_]'-Y^LWI.-NItporAM)csm8Q#EEl=@wA82GfGZuE)bA#^'vrQ5=^2u=b&]BRppTlaV(OCUqEPuj^u^7m8v$NBZQmrP:#^JjE8tFur=dF#`#&]t>UGsi7TN[/pR9J:sUOD8HH0)4Vd:YsA;>a&M:v-C2_FH#'CUX,>fB+4/Q28eNol'.P+tt/Yt#N?r[0`CKr'V4'of&Z/2RMi%2vfKOH9+C0(aODDKwh6A3tG@0Q;siu[N?'3q1b5QJ`T$:=P=@r8QuN-B__Y4A7N7vwcR86=_d<)KWDTfU?-S73sS5oa-Ix(HQ_Qt)AHV0%1.1PhfA9$bPVRYFXVW[NCd?=Zb?(g.C*KTb#t&$'pbJH&iF*I`@rFthrc=So*Pbi0J(>J", - "f%75$Nkh3ZAR^5>bW>RY]sN8f=vL9vvqpO#WEx_JOTG&Qa26Dc$;r]*'LG:YmfOS@'/)<'Tg6t91&f,Yb>H2-=TEO=<9XT?4F`QM0vBI%%^1^^0GouL-E:)pp;0tW^1?S7=]+UYFiS@MZa*6vuWW+))tjD4g[=n=[v&rK`Mu(cg-oaffO?+uaM.*viYXie)N#rPvf;[L.Qm'vk&Krc(HieoG^uGh^YRfILh,)n]W(3;^aH7SWUgDK?\?e/=MudIgel6u,MA1>RV=iQq&DH*B/Wl/J`0WbU-0stkH3`x=lZH#6CJ+;?\?t[J@r9P8FaA33SVc)$JLM&B#U*&jua4iPPq*FkrfXdjk.f9aXwHK$88wrw^mnn7IX.+iOF3Vbk2T@_*O#Md-B%HKY[tlP(8Te6+>2pBEg3g`[JqEERZ1u5l1v7>X%Xq]Q1O%:esA[Qlfo2)O=Lj``sQ9>7,:K:&`0hG=T,vU)eUQAr&(gC.%VlrBxx<6Ub>Js^PK,d(YZaNQ&QGQ7i>+s;/@^VwI4^[Z-E0]ZQ>K2cKGuabpTAQra/?**CTB&'t9'O^RS0U>YUF]-r,;r^?j(He,H>$q9Ka`d-7B)hRP7Y:fNV:v*>%=xCC*B3.53^D92SHC4EBcK:mv.]473;vgf)lIPnb6j$v=gM'n5x7N`(GoJjlt=1r88TErBaFfi9FCtPc^&U)-H;o;L,OE-w]ir7@K8W)LX?9f`dexj0N]uWHwq@Sh(nL%rL&E$mt+$q,OBKl[dG%kJvkpIm8gjd%Ie7;9rkICXX-?=f4d0s&bjS]JlOaKS^pD@O2mfu.Cj@=T$ZPc1ch.L00>9vVk:[U6<&)vaHi#>HjJ;V78Djjb+$GVh-t>,Vv.+e#p*@V1O1Dn5leb)W`ePA)7?Koo:2i9QmO(NY;0/^*=nk9%Gk>RR1w6q3h5iKaMwL_o27;%Dade:3_L<(8l;Om,^.`PK:qXWvfI7eT5`bMj=5buB;6k]k(L6d#ht9m]>-(Xs[W_jHol=q=k]xH`ccMUtdSiVbOF,hc$p4f%r$d<%x_ScSvOMoPtSBAP.O+2sq_1K$n`URNBG5sv(+3nuF&/G%^gMk+vaM6XFUAl>OKp1h@t1?`LnKpG?powGB9^4p&uV_9sdm.*Gr=#:A+qs9]586M9=fDC1vN0mJP2Qu?;sJwYaZQ)&WaNl9vY-veuG-veuJn>[+_O3-rF5t2v64mEgiXM5#sgC5I,WeU+5J>Ks9cTARs@bLOq6'N;WcJNGl'Zn%sg[U93Ju36d=BT&feC(jff9cMwRHsXtC,N%_st`)u=i8HQ'mtG&Us)g2jbK%G]@ssu-B5qf#46u<#)8vg,r9b,DqLTmX1DOV>a]NoOSErpx;8npiu8L;>eXjpJqG;_'M-*_:d_A3s&klP-v;#'9>KfrGvmXMmS(NEa&]X28s[nOv70u2DOv'i95#VFaJ,]4]G41-3?_*LE,TaY:)f4B>3fsTqg;n/$,;8W(q[l>v)[`5;kO9A.,O^nj6-#a(/`HC%24^Q,%i@r7=?Q-JZ`*P@xb*Fe$?<7^Ab)mrM+^lMoh[O[1ZsV1-u_='Qkk/g@YU]@*.d6KT$m)A+E?BV^o$idY(Nj0#v`?H*gfP:N)PXX`F)x7CPU8,4wLreVRXtM*Z9u#D9A]/ctpBX5Z'o&HK0*;YaEwIGNr/(&mqIxY2$NLMu0gC=(wE*^ef],j@/p8^$svG8UiKr'#Jq^Rmec)2vZU:[*<@5Akx)>fS&c:lfjmF?ukxYW:c,N]AAS$^mQS)0Hl#u258Dll4u,bDGpF2i,9O1t,[ieG;'V@bA0=NkhIwv:(YIp.(T6NmYuZ7a9fd1Te6kEZ2e^5.-:iU1%0oFMh98iRrT;MI*1kq]rvO#pXWbnJWJtcowc%*76PX-c6LMv`68C59dj$k2h[&jVMr8Q/9Z4H9'V9M*@],T%PBmC+';q1veAsO8no3DN1MRKV]4Zv'[ohpGvq7B')r4I1[@^TO4mu?xR1v[cRRM&[v<`PD(2[%N#?W&Xd=XG,[[RWN$g(ITYZ80B-198/I4r6ANIEhh&(iOCDah`LF1]_ni4@XZ3_F.cmN<7Z+>>w-;nX,h0f?W]VV(qHBY=qZr?%HeQkLl_@Tlp=AXu&+kEtsMT66vIlYfX(hKVKqkeOY7b]sO@L9F>0^TTkL%_gd0MZRCX7n140d9c9.0(dk3cSWB@9ZoaHGcH=aMvas%v5.p3EI&LIPuC?9WjfAX2sp`fV$'RwLr1kYDOolKJLU/e@>v);I9qkY9].LF6FxCxjm,F(I_d6gxQ72PvQRT@D?,2Q>1QDEWptJ2(%0@B1m>D?cKSt,r7iNxfe/LpqQx*(PO8PFd,U)+jW*qW&e:LvDjL8D=^Jq#m9,LRRx>>&_j8p-3VoK^qF[QNC.db[)>/b1X#pvNF'a:9vVg,(-2A'W7Ah>6>J(]&1<3=6dSa7/JT1qi82%KQ?GE?trExu4@`1'k-x>PH$_NDdsKPKqjI6%#5ci^C27&f.Ub+Wl18=HUg7%QDb`-`2$6&nYh/Z[MK-ZwsWDM;>Bq+Cs&SjF:*pg8aN;^HO=BF5>ba-,JtHrQf39<8+B2wPstn*]=Q07%&5t&BS^:v_Q<=/>NT[Xv1-=[Lj@Z$4Q*;aNXUYhOD2-5K*gURBv;+Q$3EZ0>7A$YfcOPp/d44-8(eVnovOw(*qf?ON-NJic'#W'u.dCQeA-*,O9+ABSUqWX4TI(rmN7]'eb)o$E0l[cmY7.&)BC+7(W7wL-8^HcOaM3_HsXlj5j=_aQ3(]=u40kk3uQBqAh`,Cr$dH`::&NB(*ShMUO.HCe<52):O7", - "4jxZu_4.u=(K7FVBI7K3Qc3$Lxgh.v:ZtM+KB.$`GQP9[kh8o>EI0l'+$_W`X#[ilb5p7xDl/mi]Lc9>R[4U4'*;0'ceKDZbvWXWHa6x?%R:Chd[2@c$*p`x#<>3]7iat(WaSEGMBA6&A]a:Hl1`?b&3Qb)YcrU(9)ttfQCw$[cprn1%>^M?AgB0?(v6P?M@OsPe54Uxn`c[hBlCnQ$f`-&x=n(,S`?(Q]9-0Xm0DA`E2sd;EVskrmlr^FaXhdO,uF-w)DFT-Xax;:.VxJr]En%ko(m0OiBb17oiSFQW`)`MBZ'Q<(WSQ>K1B.ffuOn$Yt'&U6VMj:D>=vMku(Nt'a>+%/oY:$NKGj(CXArXb;oIT(%VDW?VxW]NQlxvFVckk'nUwvI2EZD%a9=w8icbcntfAp(v9(paogPhB'jBho&8]C6IG=rSYF,29u^IEB2?\?,:^O@#iYHj-%L@2buT@gxh5t*j0*MF9r)Nlg2bSolcJcr]C16ON7P,O:AMvb]5/aY)jn27)v&dT6lh-u_a`vkQ76EW$^W>;s0fGA*d1<,:DjoA0Q$VH%N_2+_fNhRbbXh3>L.@YN4i=(3X*LHNo'%TmttuwkZ&jI^.A(;qpA=j:DDHX)%Ank:5(-T7NT`O>IY$I%LDlrttGRUdNZTki^d;hmJ:3#vXVo#pB7/c6oJw$ccDx>;e4(n>V2862vO0QXJAJ[ur5U#._'%>0J7FH6Bk&ppI4.skQJxnLm.)#lbc(DWsSp+TRmip(WE;28SIAAArT_XaAj^5C,$6=t^:2J0sT['Yj5oU>crn+$0gQ?KLoR.gf>9plDsdr$-pHHmi9C/@LJU2LRQ2w:%$eskPdqq6,JwYKEqD=r6vaP=nn.X@va$l/#G^D8u>$S&^mF%-eXMq'sg@NColohu*d+xbLk,8vWIaDaER2uUI0Y,eR6HYIn&eHu6leNj&@DNO:BJ4F'ASUKv[Pu*F.[LKE`bkK15FYK8x<9(4K[Y2A?7dQW>)*nHpY0JBw(`*f%=k4,fmB-HQ6?;:ltH7,*c(F.6%S.l@5,#clYLLCMUPH-fYQaUk))pB$/rAvWJU/e[YM_ndqPf^'#^V?8=,_xsoauaI1M6w_NSWn#fWU]DOlowA9pT%vLQ'ZwkBCZ]u^Q4^Mvfo%BgVN2Lb@GolR%0EPi%P?+S7A$G/l:Uj/sGb+QJAOp>g8TRjkB9^#?:VDXcv?(-_7o&jj;P7`WHE:-RKZeDUe1b$ip@vn>Yi_H/c+FG%liH%LDBeL-fkWC'=JIS69XMmmUJvjKLVR?bIE<&:#<3S.U[,vYe$].*JNjH.d_F,OgYDv//`M_%EK=U^RTub`Gk8$5e@miTorFg&`E,X0,9lCqlI=P)x.2.b)25,qiciJ$qI&pX$'j-dide?mN(q.(;BPc&mm(E:Bk[J2W,L$hdJ%gZH(fnhsTs-k[Yu)vRhuWWF;hS[h.u])LeG`D>%WV>tj]6[Imo^<&?u/aQrQ)VpCujN^)ans@pa)U-3$nPj50QCwa+3Irs2#AwtM#pf/5@8w'-MV*:E:;/MXRK-kGfIONc#lUxES^CjPa@1R1hFW=f=af]?x_ubjrr`Asr,kVV'(Ne,5lgrr'gq#c@^Uf@Q#o9x3FO7;DWJD7q^XN?tW-;RN_:Pi5BeaFg$%PhnB`6:NZS`XSrI?\?*/3nNqD6f_'Q8AKgrvAvF/J1ku@38r-M(@G/_2Y_p(H*4s)/5cj:%ON_r$b*B3dF[OMkul83+H:a,gtMD#LDEAce)m)]]F<_.ImIRvu9fRUM6MnA/aLDavf/cEt1^>_<&]hL5.&poBl=kG=m,Q+[W'/jaZSj)2UwnuR]nnx93->BDt@BDf:>vV9)mkLB2fXP^u=S+`.s`LKfmn8$?Erb+24Bb6^`sMN2_*Z.3%Pu$2j8#ta0Ph?uOL=pL%v9Kd&@0GU2)SXsfon&a(V*:E9pY7k]5;<;tgW9:WXX)&&sD0s#:+3eCAdI*VB@=,+x4G,Z1AvpMJ:tP5[OxOJcE=ZSB.MoTL&sPtmfvl4:OIowCb5hD]NlmnDWtGsqc$ncP8[^?>:p5j7(NQbc@k/lpR>[q=0@tj25:AYk$<1x7x&vt6QZp33N:cp[dl=3B:aGitJ$*wgcKZ,RA)r,4JRnG@*6vMp4LtM'_6#*7kEt7*Mk04Os1HjlVY=JrCgMVhCO7Q]ZO*?&WSTs&m$.W_,`mp,AOjBXMF2(Q4n3aeeqe?M`MVJBhTNKtvq7fpH9m=`n^J9YM8Z.=<.R&s5's/V^T<_caokapFxk$7A=uhK*we0a@ZWqwL&a`#O4,6'M-9ssDL:uV@JfFJThj%ENLV0aIf]O&[MhfUvhTD0G.a+fIm1JNanf[E2a2>U]wQv@OI0>Is^9b=Yt6@Su<'bDVa+VQX#`QF>CB^@VqDZJa]gcpst`X.^*Er%NSsg(vn0mifIi7eRcY^Gka7)QeHn<8nD(5#6']Z:W.Ytp^Rc/ob7AUwpfOS5Z=:/g@x$rYan)SWUVfo]]d`9g5s(RS*._B=r/vs#%)5wcA2E)crsebJaB*jMGku2v0@^1o[IB,Bjd<:6v7`;x64i&,q8vJ2pD%KBW,g##dAPw:H=1uG9Et@.2m2_=Oq8u(FVJfL7/ieFrUC`:5S6b5_P[P2b.nmpi%0D9v]^EU*.DCcerbE[TD#R@1;g,2uFs/f7", - "K7=xXA9_u>b_./.6S=2rKmW7nCF/F`Mw)9__,S_*>g]KGf4''W(I6nsTX;_H@*LjdVwVhQv>'[0NxQ1vQo0:d?TAUm8&X#[K&-6[XwOo6PE3tr_lXL^>*)IaoZRCkGiaeYd')SILQ?gVJ$776h[muXOu>hJMk<@Vnx2u`nt.-<8G]$k(GiMsTvS`gT7*iC5`3t7Kfp.UDOPOTHgXNEk8&sQm4#GV2:vK0UnT%Lg%v)nH?:i^6]?FDIx>slWjM1^2Y*N,1N>1;qklolsS@qEu0MK3&AYug[cXZSe>REri3OO4J`;YKqf$GVW9Qd`$#9NNYO]D4Y4s;9QlV``sT2ICss4hMV.Em3UDc'm9ds%o7;k&Ggh,8k;*E^^3C:N])p,a.HwoBVutu3Da1lSVdxQh3v8Fq9r)hEHQ#HVh_m*W_`f4;:)]Wn]buO_:6ox;[l[L?DER4tf1UU@-QisZ3Z,>R5vE._j]shj5?]8wFnk'[qP+]D`q2KjJJ81lQ<$7x%KS2#ia/wa(Nts)/p)1nl'q4KHW6F%rpEI9M/f>evN_uG/LFLbGEk6*hXx=Biv1bAw>UsuvB.URtuKYKF]WeP.Hac'GC:6_$P*HTiKCM[)*UF#-F-Uspt0CsU=*[r$PLOagR41t:SlP]S=Yv0?T5<2,XIPV'2dK)=hNrBnqnFVGO6C+adDJ%(BfY<4/(s7Lo^`l/Q$4vKNkAM[^Cul41ZfI7mt^3):fjWhS^jKGeKoW.wr-r4b+pI6d]m62DWko5eCRPq14wpTpYeN?nr%Bu&N6fJlr]Sao1ke@`^vEQ0UuF<'bH_r#'kH-CVY58D0Ybq1K(/>c`QNS%sL_Bqjim'V7[96@C)'41_rwDmAZ*>&H/CpqD*#bI?_#7/--mB5I&YTc1P)F7Ux[4tSxpHn%FGgPrwG;&xJ0M$?K5<-iBk.'r6228SHIZQ-;q?pIfPSrTF6^U=U%>P(@Ho[dPJ@0lCL_'EXjB&Rv)Af*]c/Q(6ZF)<2)(JBX7L6[S5K)pO(v@0*jHTn^==UCcb60_mZ#ud'EY(PxclLP?Ye[kMON3E%lP+q(M`hM@-<-Tkr5*&xr,#PSiQ.r'[gGf+&^$GV5MI/MU;51RM&Z4]'1,Z)Q%OuJXJ0l:&?162G3Y0HS)tp_lpK*0Lq`q3%KKEVab8nK97d@asjD=2$%j)YfHe1sPd#SosbP^CQN:lE80,Ib8`*s?BP/aG_?5uq2&J/FUL.4Od)fv_8.vo$psFdXG;r.93pFw^U.lZk2fS%VlliV&t?ilTQ6E2G:_A,C%p8s.Pe*b'jgXWOT,J@i7W4bIDl..?-O5keQ2F#_stqh:ob?UGGwuY&i@C:D5.LI0Uf,nE?sF6)*Ha1@rkV.NS2Z@Vk$YL)V8:m^>EeCs4i^oAW$(*6]G:^eIdRbCaIRN_8DpWN19jNnGK7Q71J7EivE9,Pi1vsUv?d*LhtPTxf^a4BhHi^4eT8?sR)'RljM`eC_huwZaWQtu(jMiG7@QOgl%4s:BU]GQZdh(YlpWJobtkOx#C>0TE(8>u[8A^Z$U-$$=h5LK<]Ys[0NfYtaoKd^+VS2ED0VKTmTSko)p'=MC,#Zw(P(+`Gro;.8-Q`$KA>Q?Lj3FE$@pB]f7EtJ&tx9Lc_]3:2.mC_IB)B#VA@;jwR4gil[1Z::Vho,SgRNiRWt%479Q%7w5%,m`3Y6xJJ?qtMsXvbhka;oke?`>i4UV]eDVKMA@:uUr%_i,[hR.o?Skl`m`37I*h4+p'*09lu#3,8F7]JXH6V7ftqD4PKpi8k]m*F^wte-?UnP)=Fc%h64lOqv>;+O2v22SM?i(pdeZ[>u`e=fPrBaDV_]`LOcL:aqg6C_9HlUiAVl7hXd'MUgk59$+C_c9jRx]Q[*pQ/oOeEE?2oSfJ[FSJ7>#o2J/Du=A80VEH8<(Cj?lLYY0+:aRk5q:ka@q=rH$oeS2M50#U9vb9&vZ6xip<%&a@MMw/cVX`E.Nf0nmvv@JC]3GxkTti9oMpq.8iOv+aJPxxo+`9suY`nN40uS9q4<4]q3SbD25x<$%*Q@/Z[EhXX3YY.F`TKb?j1Wx3sw-nAGdCNtw$b2vrgxnSgI:&vUf%>E9^7a`kUkrWMBMK2O,vuqY/bK/sC'N&:@xtJVWt#Xs6$rXwClMwBDAMjTcgPR-u8n6S-7BtN?MPjbkhj+%hK9fTnsQrSYK^80J-#P/fq&29dBCpW5j7O0N]SX&ppuWR?BjjN$[v&-P_*90`aQS[:HPBX`7f2(`#4@d)?]A?:ax/tK#i:+`K(BttX7G2M0Lw,WlU[WU)n/cAq?Vi1Dh*H*]5b]r1M%oUojFWtfhN9J7a1ErWjK6h7omFjA&h+P3)Cd[`rv+:X`cHafl[vn7&nJ/`_:haC+=hWcD8*iCb,Yta:3B.`+>^A#^<.#IGEf6Y,pE]?quFZ+0uPJu)L%:EJsXxWgitJ^IqvdSmk>g_5tfHSiBj0'_6s.tCjhc_o@Ym)N?_#^.`$0q?rrgFGeiS'WD5D`fe5llC=wf]auRsjPC_;-FUJJ)5F*`@wS-hduO41heS)3Wr&eiQI(1rw-rAD:;;Z:HJVwI?A#.Nxdd'<,wh)@Ok&V`qfs5)>viAY+=tnav8.QE(0YriQF:'8:[B/akPK$C3?34$(?aqOftX5l/x$W2I4)A)BNob'aD1aM8,Q--d@d/ts]q(MjtAs8[+li$W8;-Bh_qW?)07`E2@E8cHq/G,?e3K/<7bMd-@av5vaXcx5@i0x7rskFb%cZj<20hs[t0,i(J_w.p)$9/s?qk>O:V'BsrS'4/Y3/q(W#u%Pi@sQEX)3-ZY9Ld&Kb+`=N_&j'8I8JMFfg,v2Kg3DV%AsauNo5#UA`egrG-'Vb`GDjgjK1:eq`vOlpUN#[qw;,-,>Tn,f%#=6r1Lp.JrD)8#A@*f&=j-P5B=bUgb33):2XbHUhIZ[8XA5'LhR]b)l,VuaMh8W3-t$#F&3bZYr^^U[%?4-/8i&5ArSl?`g7EUwO22wug180J6]lnnU>%wf9IsnRNZaX'H]lC*>S@P*,&vf13=rSm*=NOc'E0>cPW5XawGXne3(CQV94ZCm,U*'daRSv<4fn+f_gPOK)(rE]XgF^4WZ2G4_kLThTk*;F@5+;$5ci(lqOVIfs.KkH2$9.WSKlIwG(s4otwtn/@ZIO[R%#fePGUkfdF?UN`q/'I6v5bJpsH6qnr-?1C,MMsw,v^u/$s,k.^)U]%IqGr8wIHD1_^/f^a3^j9'^XeE6Lf,qv,X/r#v;m0@(V&hC4h+Ytaa7Ur1_eG*;uhph@78B0@p$_$c-eYV^o&Jg@*S*OK-w6v(0V(K2>2O;i'OBA9X6h3v7HDxk[B8DP*O]i1qhx8RK?a-_N25Yt/OOIDN2:e/#^pIaulqqF'+?2IIPhl18wTZaq>g;,le*jAab4CpGEGVuPb?Pn==j'D>1v2?ex?+V-.R2JSLO@*/)=&$jtZve2vkZLHFK'D;dhJWvC'[t&;)WQ;)fKk:O,.t?@*e_$_,jfAZh>KKE-M`*//-6e;%T06hWlO+8Xi0/^kHj24r6Ha'+G?b7pRsJP75IhC:Y^87p#>Ou%X&PCcE[s3&ZA[(wm-kt4@.)-hu?/SmlSRiJ/QlXj9VtDc6h)6$DWu&VotptT)'OC%(lGqVW2+j)++Jw5TIGpFk#Uh*b)hkm/9I-$rYuu?N'e*P.sx0sXC3=4u(K=jMZ+OJ:3H>a5H8p%L4*qa-.i%2c7'BmRH@IoQ$A[a_ZDN#4+.;Oog7bUWdhYNjUY;USv4'[7;$7j/d@3Zu]dIB/Ovm)CRHmKXgZIqC@T5?&jpV66VY3Ohg59X_qsc0T+kLw-E$i68l$F9rE@#_7TKaBtnnTVrEMf.r#v+Xl=VXbmSlnDKSGwxVQ2a.C0MMCh/r6_F;.IVoJ0wg-9kcDDARJA&=cU6jPE`t?-,a:uf1*[=iodh&s:=II*q'>ICLL3%<8%o#MN-r0n=,R@W-g.aR$,9dO@LG(11CZ0-/.W^KZSI&=7dJah:?#)fj1]4T1x8gu@]gDVSo[I=$Wb[j1c4F?/Qfp#K/)sOn%-$T=mjp1rW^$BD7kg,*iBX)JaF6vDmhBa%t/IlhS.0QcK%dmMLF=E7MmZ8#)/Arxxg6#^xO0xjaR7o^>(fk17.@jeI*)_GuK(,dgfTG*+)Be`eV*GDQ6G#__CnH)Ide5QE;9/8aMo_<4J9=#QSwGW+N%Cn-tY+V-B5D,;>?F2<#ef^XGs>--K&J8v3q0:l]Eod^>Ke78P2SD;47g))%BWk/Lv'3c_9/A7vGdmGmf2vFt[)=G5dGP/lV:.LEan>H+v#fj97oF>d8SHbAAk*c=&*0n/lC:KZEk*F4X)(L8#R_a:14RTROveAr)r*I:cl6[n2j-KRXHF5c(/`sL].X->hh7-YM/G%@;hrFd:ku@icvkU7Kg*T+R-ZSOavoq$*sgVfjITp1dB^YDZ2b&``Gq9IVKZ+kZrCLTn5mk1OYW0it'nuE9$LA##AtF5kFoO+acTlfCiVcSn?FK;%vpVo+^9-4$dCj$JO?tIJc3-Ar:An>[57ih7'A3dkojso]hd$%vo00*X6r($^i+uAV*8BS7nUxP3t%nQj@:vUD#u4iNm52F7<:lrYXp9Ps.c-al$flg-KU[I(6@NIR'KSpIVjSKcxF4nGoGFef6ROd1x_H+>SN)X#h]Ni9gQnW1awZp>FZf<`3:vcEM1vr0TAD:&1@],01D%5)=hqV(Uh28c^F_/s?pg.4m0.IE*]Gwrd.v,LtrI/[rQJ.pafDp8xgG3IKmXER(N;l%+$qT8Ca6;1W8=TGB#,r$l7Gvi%4)V1e?e]]0gsHuCmQB+[qJ[5hlrvjSAJx]fAPa_F?r+[?Qt(]0?[Xhbd5nlnxpOQJ0u$HKB)LsL+DuPP15Oc^h9`L=cfU7dgWHA9)1aY#K+#RUt/^U*cG4Fa+878^NNqhUlLs$5L#J/[T72O8A>r4eBk7ljeCY*6ON6;V+hqv-aWHFTbH#Dm)Lp_e8w*@=qLtE_UOHCbDGhqUNYjsq+oRs/tuHZfV8iP@qn'SMkpu]Qn/QM0rk=o8B-U>.ich3L0N;Rf_9*`s2tP;-_4/WV)aA<:hYeZ(*s9USt4X)eZFJRba7`Er#.P,(#vb*S7@6_X6Mth'jMD@P[=3Mf/O;tNKkXHWCYe%QicV0dq^T)*1jfxu0(PnYvF,9,lQAcq:/Mc-:ZfIqeO,59(.(L)M`aaI8v9xv(I'-)7l(APpq6v`W(N.f/LDGqK_B/[x4[PWu8>TA^IH$K^b4Wg:M1vU=W#AhRau@gBI7I`_Rs#4&F8(R/sqTuT+eVx7Iadl1kJUN`Ho6L5k[X)`Suwkq$:uf1?@q4MulS6('N'[PsllL<0r*Fgo2Gl9]Nq.)0vnbc*_rXjbs6+E$*kxq4OE0#s2+m.>nrt%=q+&0p:MOcQ4c`9-i$tt8LJ-n/aH6'bfHiNS-O9#*:K_;@n,D(Kagu-vuGo)TMC*X-1kbt(bYlE_KY;'Z4Sd@@D[Y/K,fUnjOGj6@$563d*#k))k4)f@X$X3q)p$dQ0)rU8FXmlI2ZxIJ6?1+R73+b,Lt=C)e8Hf$E(ESS1vO^=fs3bX0OW3O2al`R_V.1el)D,eQ.CfN[(<#-1fO*bY5UNQ[&qL[bu.xk%.tFsOll$F8jt`UtYW$J<>-5L[ipx,]/Rej'ZxKUhNmV>Z`0E5mphb*h^qH(q$.%_3Mr`?$+Y4#N-:.@rI:vfC4[wa(cERR(]0u)L4a0be&57FnxjG9PDAi7.W%8+emd7T&1taVs[4f<;k]jn#Bk;Rek0At#i,:^-$3#A:^(TZ4^3(JfkU:0K+0R[:TOppn7b8O7f'UvYX0KG$[:]_k#XRFO;XK6*g+mf,0]75a*2kP.6e_xmRnQuu#T;gT,pKRoMe2I+H?`rR'.p]Z08R?B>SsdHA'f:Fvdkgjr,Of0kbEU%ArPH#%84[vZ;Vr>ui<(AwqpkcSE2EURYUvj4@TI]m>($e28%r*>Y?Y2+7EL.5;D_T.6$NKVE-?-wUK6e97's8AJ3gU4JC=BuTrAn:$V9GvlJQ7V'q3MxLQx_qE$*I;-A0<1fqsdwc,TB6wq[NA'8d-/ZAcC0,Vf'I''cpUW$g8VKPHv#&4mJV8]0QQ,&Y1q'tePN>VgaW4W@X]:d7m>*`c/$/-IrHYKfT`N=8/*4s?AU'W@Lv&NK)'jJti@put2xqXqG&9;UV,RtTi4bS7(@S,cX2kG?oUq_xhMxC3nDV_legt4irX&?fN#osXT*B6J^u+89'>uU_V,AO'h3rsPhADn6XhtcES^n4fnSgfft>lf@7%_qJu^>)e<]2iC`u%eH<]x;%YUed6arf4u@2Np(d=K3+Ll+L*4R=tc[Y&:Jn-6PbGF[W(5+j%Q@h,JX7Cq?)Y1JCiptmCsa;7`tm0T;UER[heZqqljl*U]9*;$n&WInX^e?],q*jj6HtP:wDwss._q):'j32%Jb)9_$raO/C[(J(0bAw`@79l6IJo5Jk^SsPqAwL_s1;9v.9RWEmEuf^Q*nkoIA:P8TC9P`+F.G.d&[G$5/Q6&R(;wKd)h+JI*xg_HqfrI2t8G/'87p$b7[^akE^EW/O=d/O'Ftf?x*#5lISa,T8/&Cjf(/1bkQc/(4+c9,DQ$v8&1w,etd38?$eDGcbNnpNo:`bGfYxFgoq6,[(PQ2$0w;n9nsL`dEKnip_LBRf)j#1,U#d1vpkL*/:WZa[/*I2&%ZKDnSJWK6xv/ur,e5:8>NFaArJw,YU73+K6Mq&4o20rB?Nehacc&dA%u@RVs)`s3].wkaG;?gvl]&Qft]]efcN8.iR*d(3u4?.>@oxD8QhcDU;NLX>twJDVtRvFl+&8vnIxes;oomk#aXi3mZ%0LpHXUiVYNjIpo0U(66N/0x7c68Zjp:QjNIM>TKb7epOfvgp#](uoVd_uXF5Pkm[Z0dgciQnGpa7lE;*?El_;IQR`l&0vO?[Te@'nmlN8`86T&9?Ma-],[FSXYmtTf1)s87U+ZWtLYE7[.RP%_IGk>lfC8F`+QSkH?ge`eK)59i8ro+TY`,X%(XP:@M;0Dabhv&^nqww;)#B,9ClmaJqI1O=u0k=#sGQ0GBb,Ua8iLqKEqo$mstf&5^2LjgNJsn1S5iL4=>/SUF$nU(rnc7Ko['4jGtIWL[j6dJu*@BN)+uoY^#9>b3m$@lLCSE6c&,0L^?DDkv-*@)AOd+;(RnRm,+g(>3_WBs[*he)+AdiNtmvY+dh+9Cu'-tCGlg's[=;PT,*PcbU[ADhV?[3J@@'8)*$l'cd3E?CD.bgu+sJM#FMH#?-L[%]?hQi/BdnVulIn8wsq(3qO0-vb`#wmiC8dK@ea(?Hl]JqGNkJuE0Pq-O$pJdf]NEdT0gS8+d>d-u2vK(Q(vMC[#M>8p0G_1D(YbqgWM(U3t8HvYJ3tQAOevOD#1vbr]'j+?P2HY+fAE440le^Ita5Zk[ak%6]4+:;:.+xfmtuotqYleh1psp5a3Q4:1>'WpVa#I,?$", - "LMdAiC^7=nA6S.FZc&=&J:EZOTUISna$)^u1NH<&.4A_IMeT@*$^f/#K$=:7pjIH69p57nDp4)q]ax49PHS,*xI^LZU[r<($4,N5VT=Y*b=nr$fft$vuN;AU/P(S5$rS#<=DVCXkWY*#Bm1ePD=#Cqt7^fhe)-raS*tje9>C[Q5U:w$4N[cs99gcBoa6Dn9&lB*kThePb)'CbI%t'Ba(Q[s)Y@mVu+3ws*NgD.MqB`axdV$fQl-;('d<,2VNt,&SdVmH7u.ItGRJbXmmPOM]Y3f&a++88Cpq3tS[qsu/.=?jD6D10w8@?>PWTkG+g:)5$[=#s,7'0LRZrHT9D*S#&`eG2x&SiBCm@#s'jrW:;Pvi[uW#lVI?:]Pq<$1)No[S:lH$cfErfSCtoN3C?_XsM?l1-p6JhCQo46Ne$Hv#BY9r_sIl;8WJcxc.[EAuBgs<%bUw8uI;C_K1GgD1/`LEmPiW>#p$#7ug8Of(88)r=8q8j:QwK-:Jp5kK@Uq%vcmTZ=/sO069l^Mm5$;FVYCKvU=Xx)M2f)lKs,`%=/68/(QfcEnCTdLX;kEA6`=]3A#$]t]NKTl(((IV'nS4VS&XPJ-'fu^jww9$I&VsNxF+*al&91e$;%4$H/[6%rl'waj*5U$IfN_`K,38A:?4>[-2E+J.l[pE@SZR'hGaa+%cx9tT2IQ.d3_B>_*.N8]XHb(_ldEvPrWd:(v7rk0ajVQKQR-soDwgLxX.ipsJ`utpDr.kP86TGcu3aI@X@ORm;v0N7lG^)Ee=$oli]^WqJmIm:8n['Dh*K5_<$JTtJvb4pO6VV11Avmrn=9eJQUap>9Fv2v<19w_rfXqluM&75v&5:;$8Hw],Rx9jrk%2]UGwU+t,2GG2lnTG[WPqod'H_Pni7XAog#5(m$_mw)=j?C.8ZM2?a%.@t[++7I+vb2nOJ>.KpCcPAQ<:8CW8nAD)+8E6>b%RNPUY`**S4S1>7?hG5KkLodNEhG?f)@X;)9Xt-.KlAdFT3a+0aEt2^oVn_2w'7jsLpWpNM0YSO6wBV^vF2dZ2adW'.9po*>ij=>oxK.aHgeaKKEeELVZ>]UMSCOGZsLSxBWB/QMcsmm^aZIY&`q+Okp6F2;*nGPUxh>ZklHJb$1:x9^N8]dRq-OB9>]1ixS7u6vH7fo0[M&WE?k`raEr:Gp`hQq0UX[_Tls;JqVolBPXIl.AFL;3nO*H(WC9aCl:Qw847-B(XPVT`tTU)VP6YE9cwXQ3;MIZR:2nVFjvKL4K,%m$Qv]PiDrgYHxYG`cL?$F(^.q`TjouMP8D-9`d35/5uljCm#k=TF'l*bvQtNa0-A($22oGwf1_fYnL/@om,`a1$v8NlmuUi(Ms%s4.u?AJ4/>e]Y.OSTY+AIaNP[tEZ%o0PDcQ'R(j^urW50?L1p;)dT;cC3=Nx.kwb^^4i^WG;+=[^Wr%v_4)_<*p,fU9N`:g#+/dLL:0vY-&nxkLf9=6cn'Wc8+_>ZR8o<<,Q-PWbjQX83Q9Wmko%2cGTIA5hZtY8(gAkl-BsK^M'U$xD?PKP7J/Nv&e^-G]W.nP&`p$Wd5hp[>ldgVWwdLQ/&v`3T4o/>xF,;hs`Ii$TR-++):#MGPD+s,Uo%1`CXJT_L^';l@Jpf11(_U)(B;,17f>^/u^OQ]2OdIb4@nTG'%PYkdV7[N.vjHp('Dt'n)?0Ks;g%@t2@:1(bhQjn@[`U(7AGbSipM/#F[Hlg]'[t&]rB6U@,loufXPJ;*39<#OOO@/]Ar5:&eM]XBPPf,FBfe7q88cclquq70&'$&STJ`;C-u5DBlSVKs2cnK3`aciDxFx5bcQ>lB0a#51IKvC9ML1sT4Hi:_8+M:%olok.?nLAB9o^M0tr]-R-N5DaDL@=7A)$N)VZ8e8<)CUw7L2:BZVN`'`/5HhkEFTW=ts-p/ha+`Qf9j8E^)v>uUZ(b8*4nAH#v6qG8Y-#0ck0A6_%C]4B4X`LB[v/tT'HAouBu00*Px$aqJUQe*(TTQeK;gI=*ST#]-eBRbIhI?6=ao^tkE^Vm]>D$07rTl&qJ^%4[mm$:-KF?ulA>?r4sCom&O*SsXGO**?*Am/pgsmk<=j<27Q=w(`4vqnQUi-PEHM@&dDuH=>Wrg1WcslR,/&NBQdslg8xXRh&lR$fa;O&E%@iw7-9dtl?4T3(/H$ZqK8tl,2nos#C`+p(*`*uV(,ZAZmL:R9IFQJv=voHv*T5r:eN)nF$eueODrs_G*k8&IFpM?M9`*Ov%%-o%NT)J:AGG3Gg,2JaeupketNj'?r7]w5aR9#:7uFlSRtjb?fJqPu`LI[^2+qRfNi^5TZ)=Iu9<]>$,w[B<33CB2qQc3#YUT1Xj#9t#=Hqd/orf,qo1S*:JKph@'n2$MbDs74CVd_Hk$./3-2C>:hYQ*.ipsJfZql/#d.I.t%$<>3oanNh+(r0rVLM[Vhl#(<3un8s2Ie7H50Yc9,lF>=bX9,b9**:vXX:4H7mVdv8bMJ*-04ijmgjZ%$S[_:6ujkF(Tc=lpE,WA[$cO^m1>VJi=+5uDK0:ubB>Gs+uIX@Kf*^uv;h9]5U9wKp@+hN.cL/tFYa%t?Uc+MZCQlAmj'-1_.iiZ5PR-2Y5dkqRtr_a8+J-.Tbwu;kjSt#,o9DSCY'B-M5lF.$Cf]#rL-3c,ZAi,?2`LF5uN8]XUGf_M9v-[d1rF0I=RaFQ*", - "(lU`+Svh$9Tu'bs]5MtU>khpD(*siZAI7Y*I&NCkdxAxk/kV:]wQiZb*ExknVq[IpFZ]tEmF$GZ]f;c&h>V-WGZ0SIOA&guK.*]b_)5WtD['qDqb=rkg0IM[qO8*ubvvN)^)$-_dQsvgI0#VM^uL2u;Mv>,,f0]o$j@i0a9?rA7tM_?A@G'%7BRSqaa,[&@3oV?ZwZ^QfY*Tc]:A5+aIeojEUj8XNjcx0[M`oD@Vj2#dX+Biuw^beu,r$bJ,N`FlaXli%:bH1C'S[9C2OFcUPn_&:7'gb#o>$<4b3q6'3i1MH(Rr4)qtWBY*`*5eT#]I[_H$Dk$aP6O(eZuZ0TYs.O+9dcp4JJva'<7Dkm%txBMpQQehAHJ>3[c>`5ZJ@'r63_@Iir0B;ndb>ZfTwXlg+)q1qEh/X-qh+/ijwX:vM$u@4@Ag*8vIWveF#C`a?hGd/aco=fUQd5]Vo7r1t;26988Hs)kKPh?S7Pk?LjgZU-/RYxO_jcn[Er:dC-r`=b,MlCp5Oa)pO9&gQUA>,P'6(J;$Qm:)nOh1Tc(Z98+v/-%KA:4`+=6_:iU^6$&NT^(Yw;Ff#VErKZs(@k,]#%vx=+s7C6T0oZ#lo,p/D>T--ls$qtJ0*@',[l`li86Rd5Z.JY@YW=.Ul?E2F`*:')j,_fTi&>$b=6WNItc4TeZB`6&K4qlR.G#-UpPdDkIQ[aN$#rKTcP:Oh6Y69j_B=K`Qqoj&nU=$2D3&/Dsq3YG4>Dbk(JeNal55TP7l8T.CZECGW9Tbq&,+1]%pID.bsF&&BurGgN9eS;]qU:ej0ZQU-JE'>Nxu.21xn]C6n(hutYjG4FfR4,7(l:#-o.a'M+l1+NtTH[1]-A`VL+g^k?EtW5[Q%#LNml$SxT29mjaO1*Wn,+*(aquq?+xImMkAF(LxGnF:cen1^1[v?jt-r-*/J]I85/hnhQwqLe8CR-9.i(QC5iNTf839^jW;GJ*)%;%hW'&e):?9c2C=;Fu(&4f(iEE5Z`JOB?P3H/&^qRC-2FN;_CtZMh#Ej684@EJh`,m-VU#E$U,(>J2GL)(c6O8^edG/iA6*JJL3])B)xZ%XLxvtIuY?jr$)X%XDfqHZu-_l<17n#9&Z$Z1>?m9;O+hpb9(Fl.SenVvZvf-1F^YqFY$N_8kC;XBbD&5$Mg#hfu=lh7o0Zmb7tl%1U6q^jo]Kg8&7BE[BJ[Uu(EZIBSEIv6iMQUK@O7O,H.ef%2sw3O/76Vq@9Ho35Ep$v2io)c1IZ2m9[KX#qs%=*RjkhBeZ.%.1='`E]A.9mC[vnp1mu43U.(FNJo)Z4.Mq^s^x].L@XW3hpI&QNTC+aGW4OLK2/[L]1`,B(X4+`tluq<8-i@-Lpihmu5b-^>14T;ABE[JF]k[l=V*we,o%F<43^FsYtWCk5vr$qGcrtu^jLBrrf:#B+8SOL]TEPD7J[uZv3t4r`#_-`ZpR7[8YNu=:vqc8DuNdm)UCTB5iCPxF/F10n'&rOf]uiJ0Z`?0d,kId*t$n2Kx]aIKImgst17+LlCJ1ugW2cpO,,1RdbpX_rd2Zc)c7OaA2+CB;:<#d.Ko)4uC_a`sA;:fS/ZgH$7I)SR^X2_T4sNguD^B]Fl9AsJtn_cURA%$n4sHe(rfd.Lx5our.(h[26($uNoSruj#6sD/Xvp)iMxPxhG^8d)l>c_^oZP9)-E>t;H'-J#jB7/2G=>'ix1N0]ud0'jFcO7q%aAauD(g=;='4YPrF$JfH]LGk4']*>,,=Zo2P6].`1##?V)9[o$M4'#qQJ2B7igg1dxl](L=/4@;39Tqd;u]WFGdX;1iFK#<(^.=(`*)?Fts$(QLNfH-5Lbvu@N[H$XO5[<7hnoq$nSUlF=?;W*luk'hE5q]c,GnEZn1uJowHiJAL7K`qQ@(TUJ#`s8H-n<3iL:7o[x?j>M?[Km+r/BZBC>R31jOVwf>pt'WY4+tnED3kM]=u]/eUp_g39ukBh*u+`:ipSxJ6#OM_]=dF8732nKALlsvE#7k6JTZ3$@/'UFG%HlA5-s9'(]^0pnN1gktV8DFV5miPnqSKlA(kSY.x^@;$o6K[NUF$H*vx8GH.:u@d4S4naiPtkuEid*Lo68PhJV897K8w?r29/u0mBOcbrS6lKMBTm/jqK32h&X[jn'&QH/`?u2U5-nxT2dkwQK'u_-WFaeLxXG>g7)KwDKH2oHxa)qsfbf^W`w]WOo`eR.MF;TDXE#h>p'G@rRgJ.Y#k^1*x=T4ihc^HgZoSJEfAfaL[U)Mav1v&BdRr__/HSD6eGqIaj_1LBO063N6Mb0D0[%RsV(nM-lB-5>qfA/p<,kXR,+'^])KP8pI%WZuoVu4h39DXwm$=?LqME,DBmM?nu#%.*(M0_g($Y^g*oWRQ8$0C&/N;KD;Bp<>Z*6(-Blcr>1t:J2^guH`O8aKqZ]dqmN?WwK6HFgd-Pq&Q^IRq8BbnRAulle)jKAKp;J;%_,v:kfV=O9vfV0T1Ir;sm%)L5Q@TTvNnD1s.i#6F@139pKmlpP[On--duFFm'/5B_69_GmE4'jw5R)meoL+2$5SbEAGgYBW0=@&(tg5c>M,8a)oeGdBU2DdRNfY*5[nax9lCD5/(eC7QUg.Uh)RRm+MwKCpBVM$(WVAR3Mol?aJ0bW=Y9QP7:P8#+u,7=dKfSuA%?5h%A[O,=b%cMhZ(EVU(LsQVCA`kJ_tl0i62(c[`7F[ifWIYFM[M6lr.(w5GS_3m:P4^cRO#nJ5V3bP#<9ue8MELYKau0]UrQW(nmcvGUWhrXjZ7[/=BR5sOH.$j<^jP;tM<gK0`Ng8O$V`'OAFa9N7l/[@ji)O2+OrTlFC_H+uvM(h^[[<.^j[KtrQIJP7f^J,=5$DB_n65x^9,d/n6Lljk4Tfe]^TeBW=r^ud?sVbieLL]aE['2k7a7'C,x/)Dm'DaKEP@ii_e&lL7-Z*T4<@i_@1[fu5G1l&Hjkmr>b3&W1]qA@E413nuATRdR_,4iqJPJ`o$ji/6AC6Pw_R@dvn2cU]&Ka/mx,JMNV^q(%_nsremK%BfF.HJNd@g/=6vu9xOS]@%2`3Rj'#W'vFf(R(rURt``;tR=)kB@8=4P/3;-V?OIf+..SeLOu)`;#8UN1mGxO[[xHaPBh.LOMu#tqt?Ne/v4Z4.r2BBN_Z72*wEoj.91&vRLs2j78?5m#Ixr[]J^[k69%_A&NCulN((lf@wf2mAU3Hsi%5u@C8a7(VXud$nKso,91<9e8H(lPj^dM(wBMsvMOIu^,giW=)>m,`HPFrUiDW0+=aHAkC6#R](RJ./Q*'C`J;hZ%%1@>r1[q*Z[Tv^BC?9($KsBj$?+=E5$S,UqKA8*b-T;@B'nG>@S3ZJ7#$0K*Y*tfOJtLC]a<_TBp<.Ur(9XC)PDaskmp[xvFr($kkc%I7/UFKj>d/tMlMbgKX*Ss=21DjL%H-r^o?WsK#K2N'Kb<,(7N4eI4M*;9XM++f=DJC^q##)jDOhnLdul(`a4fH_sM$TlO//i-C^MM:vv]mYK9*Y[f[=45]A93:IaE^gt=V3VQ2aGP#TpM3RX(R9$[5hs(du&'oRIIfng.3%a>S7_-rtu1#8,M6Dx[aDTg1L-&)@cg[+'@*lk/r[%6#Y-QQ0,_#l%rL#uJnQN9k]n0t-U7t_%vHtc--VZw-A8K=RSDtEYQEbY(X(=4KRFj;mjqL:N;lM[,qg+e)E%:fQZnF:F)9Q5&A*YnYu21Ij7d2)AHM_@*jkYpB0v(R3$+vkgHn+OkjbSfdjbh9hD1DZ_o$fInqEGO4mE_Cl^jA&EgIXLc20,F4lascGKH*pe=_KOq;Y0OJem(9c9JQ&)?3Fo=8euuqH+M4bb.]#=X1[$?v8,:$VlZDerq>+]]*A6+l)N8'ta-19[8:>Z-e[6MOtWF-(gRBFsdltWD@L;_)vaZl&F;/Eau7[t=FtUR/McIPQ3#s5Ft`?k#Kk5SBZN`WKUBwIBHg1gl+o>ZB]dwijJ8uQSu*sI[sM0+c*J]/'C8vRa,U3/x4E3kf:h)7)=TOo+#@r9]j_9M0=haW9Q+EexP/=nTKI^;:TScr@(YCrh[^0^a`FM>)_mHGH1tg=#l`dD7r6]U](']oJI-_Hn=A(6rDAKL[X6sBc7,xx4Q]QKP00.Z]nW.$iUtONj30#&X(Lakp%BJS$:U)6JD#ir.+?kg^bM^RaibwR+J3N[vEi+29q.M:e&XpUwLDttvGn6YB'QqUXd*gcIoxT[RnDNiqkM[Vo-K/oO2=QI?7kr#M3gCHxt..txuTmIVM2O:%FYSgKu(=Y75:g1K$^%ke`38bn%H4e$lMub2Yekh+@P;`g@mPhBeGtK)[cE0K=tqq/VDE:YKS>2W.(EqIXD$]0+mW;=BAGTF#k", - "&'d6l?YkE-5]:8*<,Qv7r8*2V>T_H6*Jc5TUX=@4S%V1>()_Y[eE/dTRL=5H:x'od2Mu$9xF]TaSvFsK$11B)rZYi=LSLM^%vc#PmB`WLGCl6Hk%jImlMe%;_t:lK^vAkh5Cj)9?DJEnrKEl$]XBiWfs1`*Fn*jTuG=#hHj>B9Zk/J,>ThCJsM]auge+MnCtMI(`@,(VTZ_snlK8$Vk=(vdp6T>Gc?4Jh@5MQ*h*lxp)Nu`VYak9,lchY1;J,u*I0lJB]I4rTY=5f>O@O7W+WH$Dk;wP_AXlg>.xma//ifv^CiI8rmDpTaw/?jcv%@KI=<7on>W@M#pEKT3P/ZP%&luxm:w#kA7n*Nvop4sBNkp>0u9Xcci]>(8Yc%'Y3u-5]&&f0JWTxkY&vVS.7>cE0&v'u]cU`SlZA&vrmHn3G&8Ce?%WoRbka*&+;:s[$%MQ=&$L@tTjgh;5G;d)_Q[dCH+M^l,1v[n1aA_NJU'p0Ye,uD@tF6.ASoWF.HLB1pU%p<`O7mTnWmXig.:WI5C`':o(mBfk(IL7&:vssX._Pj]hNA&j2KHYF5p=TgY?NtVP$'F]rsTd6S=KqtP$hN#DktdrEJ*0t6[sS&Nj:m*`arB_<3'cQMKZC1b%1XUG812dVW>&Tliuirgutj[qSNVI&1x775Q_C0(?b$S9QMx[Atl7rxeBoZH%4DF`1C=J1Bcip`4cJcuJNFVZZ-UI7^=tl9248&fPtN?)>Bpin(`aIFSt#Npx%N'IH@dV[m]#PB;-vn6eoq@.I:SDfs,L+M+eML.VPnNrXmKU&U)gmWaGm$j&+Mf_N:8Z-%)Rg#'I6we8]7h4d4te9lLtdku$#Af97%%W>Wf4klWEaN'O1rGiUu;,tpX89sn1a]DSD)1u][9.u$.4w+U0`$SC:n/=h=E)0)xYxA5d:MKu8?Z@fS'jaJaS'vhnU01FV*SRpRT6YHlflk0ZYjMqn>%vtk/a#^nNN.CrK;-UUpo.8Xpmk-^I1(e+NwXRBKPnB?j^KANvQN?2aJAoEJ0HiNJHU,eKP(e,EE(=8[9LQmY$u+QOFDm'er9rm1nKQlJF255)_s1LX68-Y;pSZ7WLeo.RoK21g,#85VT&Q?+S7Pk#XaG6RIa[/UTaG5)UheCW_4D4oxZ*Y]jCd[LN;6hS2*_6[uwV#9d.pJ@_=H1j2;WINqbvNQSYN['iajpO168`@4Z+:b+e$XBfXSEp(e.:3U-,kjpJ:MG#^]asl,?7M/-DE)/ThZ;K&1R@8>A*DaQMF'KaH`pPMEA=@ZEkUL5Qc:t/1onn?YQ*uJ:/LSDb[HcM:sP%C#jIdCE#-i/g1aasW#aNsN)Eswi*`;J@[wbLXb6R%PKXO3dH<-^Wk0$#E:L#e%Dsf]7^IlRe'uLw%HK6xTek(ORWkp58'4YeuVHfGY(#bH3Cwd/Bu=PV5tWbd-'pba%%KTR^VEY8NVV-B:fL77JU(vckQe7keoQSD)(vq?7,,+%k6:/pA8we,D:-u5nnF-X]24%BemP*BdDB,Vo``)nr8b&T[n<%.xN43)4$d.1vJER2;ZnJkSTiDvoAn<%PK%2vWe4tH,1TU0xi>/fo;/UB)(SmUrfhPce@CkEv<-HU`qe]:v>S/XF5&R6M<>h#JsqVcJYGn)whYKB3ZF4wv_Y4a@H^$3Q@Zf2j`tM'86ViMv'bCS1a)ubRT2-W.;,-tr[oavVk_3R]6Cr6uBZ5I4U,+,@m&O;OS9a$uOF)vx>jevP-=W3CZbSa>N5g=RQ_a)&-R_CH--5fdjGPh7>%&N+.40N85?'UWI-)SCZqd*J:KiAT6qs1Ho[U/kl@8v).bRe3hC>RCe?,@T>6#J:dKYKpW2VA=5qFptO[(qtX)-?Q'9O4FVGU,)oM3[cFH@>xFOw>OU$>t@J-h9xF-0?[J(xoAE1F5.=5FKg'2:`rj>4vI#?ETiTJwZD#Zf(@pPu#Q_BKEt]/(1p([r?lBgOH2TW%:#uHGR=(;qgVd$8v0^u2rh8]F^c4SI(:E5vV:kVHHi(70u5OX(N?nxBqFsVNFYR.1N+W1:)^m==;/C(FvnWROb0g,,#ifU7S53CIihRIoEf&vVHFsub9bUTV;xJhn10nKuIPERIcc.LD_7,vek[u9M6Aj&e99&vs6Ti*l,XKrDj<4QgfjeCLBF*LF&j2tN%hur.IRVKdBebaBF^'Sjtbd6BH#9(_+-LQqZJjDY48vPj?9MKHq:Que>op@PBaa+g3'BIPVbIF+p6l5[Ev8@8XXFoE2AU%c#,q195_0NTXM$JS+Hq-*[guR#%6;)SM)g1`Ae%7RR&9o_P:@qAQRtYP%U,q*/q)CSPosfQ?7O+9-vlMq&mZr-ouMXHD5JTW::HVF#PsJs6@i9_wo%ub2gH6GQsC2PGt+)Lvo`6I,vC@XoRQNHWa=>)u<&MB>Q2k/jWC*r1bkAxJjn%*>mm-THnvcK3-]5SaALgf2g#URu0X7mk-AEM,#trYWd*s0S[n9va@JD&]5T%#-f+No4#)W?rV[swZsDiSnpbfOvA'+OEpBFU)*fUUYM4p:&LRodY(Aj4e1tb8xa*[CV#54=RnCO%;P0SEb)hW2^505O(NkmS7e*^k-q<2@0uOK$?5J>iD-9jT*]u,_10-3+Mh6O1MKl.H?^QVBYWsH2iVr;+ERnm*n'WTWWKrW#-ifZ#$W/,T,q,6alZGM++):a@NDuE9W3YVT8`eLM[2mE8lQ7:`K7gJ*MphaR`+)(.63q=O;6)D&*Z2kYh0C@OT7oq19,%Q1/t[F2B?98S,-Gm6n5LO6WM@xX7uuOn<`Z/>S5u`2_p26PEOkC%,?.6tZ1(k>I_i]8LR/vptWnFcj+Id_P&e_BQ+1W-;9Taud-CH=)7j*s*A5v]H_F[_lk>$>(v:u'saj]%=b5va1)6&qS*NQUci:olkSQA`&EB.]u%luKj)x5?IE=IT2^4QCBmlh@3F&3,IlcqGW-HuQchtIKsik`R,]-.T/VftBN[,wDCx9X45'v59/pJp%MYe+1;,J#Z=5m)/gA-ZS/E'bb,TI8M1lJC4(P7em(PbEP+?BHNA=uF-c>@9mu)/P;RLavp[ni.wCwb94`Q(kgo7T8_+Yc^Akxrltm$Pg@4hZ(d%_@:va?>h*YKuYcgpq=mmW==B4T'^P6FZN%1*JZ7c#.bQ;Xs]J9*];Ovq(6:>t'E.ST_HNtg'%u,I;/rg38U.S:$]kAQPk&,8WZ:nDgb)t[vEdeB-9m[68UNMW(Fnn/)OZ)GeM;;;')CpiMcF@PbO[_pZX316cGk=3E7:;6mf&YiL^B%eR5+dTgpFx_lE7DU).*R]5LLf]g_:Bs.e-0@XC*nGuI8[=QVfXXt4,=cc$37K1B76c5Y$2QE#qn(Z5vt7WR7rcmVNeI_^7&v%>qK)gKfLOwS$QX*vcl]P(Nwj;okOf&9:T?GD>&4?,5.N*]bHF'0vrM#B)U&mjTalaXaD:`P*:BGAQCjusU1pd1Rm40veP*Br%8^d,umm+8F7v,YiwfZZK/N>?q'J:QI%_31#UhxH(JS_;@5W9JkKR=@O8f*88v,iYnM^Q>g2Tv#v,pVleZ)%ICxIvp_NTO]s(.4l^#BeQe_qs^CoohQR^Lk([xWu;6NLYEr;2P9%t?>TN=Eo:Q%?t'n?fJU/1i]oacc3?0MPD)q8:*[q#Y;6vqqW*vbZ_H^,dN%Vf@GC69Dlqg&Cj_aSC%6ii]:P(pGvX`x)d10uZ0/ibj?j@R4me^E,Np$/R&#?H2.G_RlIlp`SE:cf$T%XV*/Ck82=@I%E-w^6$#an,W1x+Y/uL9;+[l&D8S9gU?LBA&F-;FrijNu[xW[2lP;N;k,vaR_1@R^d.hE*6b5Zn=hAL19(,9r3KQaCG8qtTAI1GaF*UgY*66-UoN*pu-kpThKjZ^a*WWe,+2K6#LOAFIEFTu*B6<5taZB0v)^G0m)&wVV@UN4S=l+Ya6:mhdg)ToOm3L@FWinW[v?8sUv%qQn0Bmr$$e[$kV?s(bNaT'jZ$Iug1GRwf']K4aV$]XOhAaRax>B8v&=Fxk3R:q48X;pRWn)^BsQTTAd@m^]TjE'iqH(AD(6;-==m2F8/AW>=T-]m+^%==UZ0,I9F369,GaaSpUGg3bSloKk@22Qh'EYs+0J%/1ggK)u:=bVD4q`l[?q0$U'[h$'7ss2.;dm$#c2jt0PY.7i2]C&Y:Njt$JdRIpe?=V`diA9vMDbIc?:MgVU-0hnUm:'KB'&xXW7tlrW50TcjqPLcp[s$M;2%Bs16f)LFJO8VfpX_rKxSn4^:@Rn`bW:U:,bSf,@WknDH8mEG$#V7j%S(N8o+4UiiTc/seCB'@RDKT$U:>V&E;Bk,.CK^Zxl$8-[JZVBOjN*VVT*We>F6j4^=4?mh6VjHJGFORDF-($U1#7'+xHe)-wKnAd(ImKw-S]uF:d'Mp.((D[8&sGA/2TuGH^I(^Xu06ZUld(^rYKc>*L0kRB*LbsFVGZx&QG@50'?rLxVsrM%MZO+Wls9YpT:WB9v/_iNlgg)FCvTx]N?0al_NrfVr7M0a.:1gq>j[Xnq$KvQ9t>pWnJx/EQ8Dq#t#5+;h],P2bk3[fu$6nr.AN#h.8KipGC7S0YYvBLklnKK,9G-9gr]jkoc)(bsJq]$8wo$OA/'mOs-=p[5Lp&[7,;e4Qqrg^a@l@/1,u7'-HP/&v]C4r`9%u,Glgd#n'++@t7G/0.#e#Bl7.j=_3N6FpW);w6Iq$GVP=:4DZEJ0AM)]u]=G),:b'-w5eLBco:K#5Hv0O^[Mr_^AHsX:v&SnAtKJa%B19Po#Dhk68KYh+uWp?L1X@$(t]J`QN<,7*3fCP#u@:o'tbf.pK5]U)58FO=8u%+X1cniM9.L[M?L9d:#:vE:rFbI#xQ.css*/Fw5(,kvuMMc:[KG*4$$^D^9e0q%Xl&t[IZ592.F7X$Or=`6$#sqQ9v8+9Cdu0/1qYxRww-Cl]F2'?:xkta;=Qi0sO^eI5C,E)PB5:i>8kfHxF2,=K%L,:g=5BsADT<@&]CqWTS$f7huZ+8v%;/lVJ+#hG<1gO.`pA&=lwcYGFrDQPPr31%Sgs-vJI3+0?Z/H%7PJrHa8>>Wt0cMbZkRM*=8c+()h&bKII(L`A8E+LWDf:N5I;`IQwuYTD$Og&1tR*[lQR@d>udIDDi(`*p8<.LDh*PXP=4oa;%doBHoNxOInTD6E?u/HQ6N[#r10'Lq^;H?@T#t$h]`vq@BFOC_/cYR.n7mEvR/P957v2vDSD,66D_f3UlE9vmlgv5T^dV-]_;mN)QbNXXmA)E]p@gA", - "++JC4;-YSR_*rD4Sgfn)?v&bEBt^T&e]LW@OMY7%MN8M7n=fr$%lsW^cSJU%/:IC%/eJJ7DMjdYH-lTVT-N2V?+FaW]iXD)N''OLeDW/,PH@ps#KHT<'>?>+4kX/mdbe)cQZ$[`C7h7HTr;HdcJR(N/1tEV-8gQh*,uBYTbwL>pYwa#fErh#iod63tf>KY$3.03&^F4OJ/:v52K)hCW>]uEnS,/#vtdlq1]L70;B'8UomMXG@Z-LKU0x5d^);u&,+d[)E1T5`YQg&+a)Yu'nK?u0:?fHWF4Z^hUU-F-W'g-]X)3'iiR#LxxvjpxgV;>-ow1iXfDt8-5R[&a,T/k%u`,tA/UFWRGTtDmA0KiU+XW)AD60OZkf=?H/eeE./%qplV3q,D)R]5Hdx`wc*]=V,Qu[.9(>8F7%E.Z6_^.jB^ZBT/`Nq0G:N'Hm4bxIU@rooD>fm1B11Dvo?Z%YTh,Ld0:jxn%u&wTErIxS1K&6'sXW:^*uK$ktN_a-r:.7`ed;3/H[J38.$m3_%re&(Gsa::.h(AvYSC,*xr]P(p?M]p:ucQk5?>%Bkh.1lQneeaHECu7>sFi;HnUwO]PBcn976i%Y.B+MbqBV:M9O1UGR6I*p,KOPFrhW$>ktEYxFSbp,)`IAi,-B'6nr+i0L83Iuka4w_;tGP/Qkcd,S0b;rjN0j86*aSuJJ2eA*P8XI-*vPEjkVYjxS1j*GNxqDb0;;N-tLcNXa.T+Za#`KZ5um+8FdpYmFWZ9&PtRo+#g/m9bVGL_,,f[(NN?\?i^=eA'X#QAk&pJW(N6^^+MNkph/LU]3h9;bcG48c+e[KA#g)xc3uBqO_.`aaZ]/Vr#sb(e>b-o[K1GNYR3a2d%>&K;-vCcc@tx%$DkNHM8?Y5tp27O64unjM0[nxSEY2HpGKKPq%Q)Vtf+sgh:8isnlrYDgL,`R[FVvwV@==O7$:4?1r>1/pAtPE(cUoS#/rsE049d)$S7(vU5vL*mN2DJ.Z%<,V:dGMw=GtI@ERn$3X#%K]xtV'dYIGPq<4;C_=(eL/uti:?YGtPsePeM9GtJqi/QL.&rg/tw+t-GFoQ4L'Jg^d(4L_qH.bHw$GQD$[$ucZ[#'v5?l8Tf2v6C^T]Ys+Ctt(Nsv^,)kd-;@-2Ud:^%`dmaM#UXM@A,D_#sYuw&fM?dCsQ78D*@6F`AA9#m-MHCia@:v`uViCg3;LQ1u;:XYuXvWF6kAjE2a@Bj2OcbQm,'?:>Cx4t:t/L'kvX;to(xWhehhc,lWTkP8*oJMIqRhL0kYhLg+oHH_upPX%Nv86la9f)G0c)T#xTINm3Jr5l/,huUq/Ye$MCX)'O4l6J4:rxkV^)R9d/]+S7f8w$'P&'YbQeD=%OrkenINu]PG`q>rCO>phpSX'no%l@@D<,(*s=H)h3u6-OuBBaXQNG?u5n$:LG5,%Q2bO$ld3b;'A%70a)baKOlJ@XqXPj]t_aRcv64brtJC^4MbG,%=`aExHp2ua^Q-/[WrHs*.fhO?>4JX8^qJCcCY[da)h&_'WrS470K(F'B2#sAmIBL_DDAWZ,igJU/FV$LGBEL4J[EfC+pHMgacW:tTa05sew*TI?pVmu$;?BAtvuo7Mkuxj)G6'B49YXAE*M@EHMLihEI:Jk**=L7>:v$9ssXZ*Skl%3Ia3POkN:a]q?cV_g'>fIiq8DrV'*iNV701_fc1-#fh1l0=bIkJQXffL/=8vc#/gPCk6K/>S=+se'Cc<;Fg7P]79w%8QE2aAHJ>(1_o8qD9.BH''=sCiQ4,3m6JFk>D9q&O5RQ8V;9:ZdF.r2+hY+=kHLo'DE(UEtw'LA5JH#Wd9?>F20QWa=2hrJqe6@^-7Ye,RI#TfudkJtPUpKqAwAJ<(k=iAo(ABFsQIkJp-M8C4W.#@W-`Uhs0.xnKDk5*8n-,O&A4[%cbpshHw#JaX^Oq&%(2QV#*pC(*'sV`Is;g/Dk?@Fs*ICIxI?_*+_h$#,=W)R+=T'Lna7cnaV>CpB9<+Qr:wdjl51l&WRvflN1-xiW@T>>:w:M*th%mU#TEi+$PV,nJJaoDArh8C(Eq*cQM8&=hv:FSQMuv84=>6vPZ:4u-uC+t>[w444+;jdd82M>(KpubxT^R7xXdZtL8_ga)VC;'ubDY$DPQj3;)?*J1*U[a)[;S=[j'X40D+LD#Qt1H5T8(u`?Uq:#LGB=I%a7[>a]R%JP6Gq0Wa39?:iP''h/oU%/Kls=w*s7B7+m+K?4La6F`09@SFUje7IaKhc3hnZ>xb>$%`O)Wgc_Nt&C7`/@*Mm^Vg1jfE2di(u-#+e_E13b8CvM@)(j#gHBqG0*&uQJ4sH8q7#f[fcU:7U@2/a1JN0uR$Jh'/=P8hRB[Sri[I1:UG3T/i(^*l?sg9%.f@_Lc6`[;=f)Ic<>7lh'>M700,;t7V#*N$wuU/CX;0Ha63-(GoIu,cO.2_$mXksv(AQJ*Z6'l2ZdSgmTg3_47.XIn]%m@)9%p7;h5_>:?Gxc29cuu%Q4esa2Gu:

nS908^`L5vMsSq0MHB^r0=QO&uEA(GW@*`EoJ6_p=,cDm*S:UKQKc9ZiPZrjglq/[9a3S=8`nhliQOp5EZQ>O[P$>//pQnu7dLg9f1;+.KB*V3'(tYm./hR&bpm@_[';-INiw?,?vJY)?R/$-tN`EX9GBs$x`JiCot+#.r6.u7I6^Q+>4;-H9M9dd@M1ns4oY*`3%@*^%uxVLXgII3vVMcO>nA2$1TX:DfJkA>GE(K9v(mU9)=O#[HXrC,#HCwPn65S$vRw)-74-Tv?w's2JSo<>tJRU>p,vhFD1,Z1g)lD6A%%ajAxl`wu+')#e^q`NFx:;HD&Be,#88fOK@4]2cR=C@7^Iv=gfww1vjVp8im)?sLI@#M?n(EpST>C9u?&UJN]3:GuW,2IaO`^vJu_.YtqISr1XLJnFpfBSBt9Ld0^S*d(=cp:cINqpM^Xph)@,=/cLY2l'_^S78[+6-qp*?2iIl?fO0,)x:iMR^#(cp^U:v@UxO7,_mO&SB=q$>#8[KW/*v(Dj1Pl5mW55@DQv%aC41UJr]r6:/$/1k=UQaK(W1BfQ7#Wf?YSrHELo#`)ZH)U3f.LqK9-*9OK3,E_e5Di2eKicXqL9vXu:Gg2.(K=/#GoR14?FC[1&^[WEq_*P+sdl*4VlA&HL/382[BH(Pm&XK`qf6#oKMDo@tcDFlxOpc>9(8gR+iw.ap`@'_;b-So,P4lo->&D3$c:gRA#'0Q&*v-tA:vv`?ihm,vijF2l`@lWQK29qc<87DL'u%lPYK(A()OuJU_E]Z_L.TR/M]:$6;-Xrnr'+#s9@t4%_*G*4-qGFefe0k&wB,PWEFo2NO0NP[TG*XRxaFY)M0i9hh2Ns@qoYrJd7uk:V0$vwT#JgZYG=9VUL_@0;h*OCkU.ifD4/lah,f8,'JT)pd(FJ1+l89Ox-U.8r@@s[>`=l-][ZK<9+S7,_H,[cI9>5,n]UeXNQ5vQugOe_bR/qu*sNrgOiNW3HT&F-/gve2<)kg;K+B&x>oQR&TtI[:F+%lKDlM^B*]cbp$;ckJ:nDPhSfbiAwQ4?KWrku@d49F_JkJROX?K8eP^f'&%_l&%d;@]qli1K:45TUr`GU%A-sA('hlo,8-W1Hrng#nAT&k8GvGan][AlKYW/5q.Qn#Ka[I`hWdx^W137)&R'G/L#WV'KDH$ZR0weUb;#>8WL96AlEe*7*X^N3qL`%&Q7]_M66H8:N5^$HcQg]8tO3[*3A6.ak^BXVNZq/oST+[mE>)p,M=djdHoh`*Io8u`ql_D`*-@U_OmkO[RUQI<-1^x=99V^ioqi%MTVcSL#9EtLc3CO_2/Qg/o@XOJ*Q7O`[a1^86/d^M=tkWREpG$i(QvPPg&-.(Pfa(hb&bUpR`sg%F*Ph3^en1/k;[ubT'jegqruO3^Gs`>x.(IfZf'K6Fq?3F3JX0RaEl,^:Z2h-r?=t;`tg.#q]NI+I)j8XWL(Hs+[JvXC-sp[SliYnb2[^'EqPk*sX7JJm_;4@VMQdQmVA07ocM9+t3klJ*;T7r$j'/@tgN(]SD6V*Gli/F^4V,.f;Rc*^b*Di'W)NY/j1VD[M3^+M`o3+'U><_*0%wm2_$I:HT+W.5oYevWrYE&ZBG90crmiGIhk'm+73;aG5D7[#spYspn.QSN#lEs+*1bK<7;POjsx-;(YaMtp),6.LHEpXg?pFvd^'awFP_B*WE>:ME@ScH=I^7ifUjo/]jCj[e(p21.sQ%TBEYaDaUp`^JfkfCEUS6)qDQK;Wf1Crv'b]n5g%BY4WGa=Pp^aBT3'CrlLZBgVdC4Ui?Xk$T@fITk^&]IdK4Wril'#r`_ocr&XAB,0##O/wMLCgWZuYuuWrq7ME,hfskow878v^C>Mr@/Q1vvP#e:0lxD,PJrg`qlwP]/YF].+^jnGBS_sKWpg7kooaWZu#KTGk$g/.+GSiUUFGO)$I9PsW`:>X;l8(i;QLpRN*LdqCOrZDkI;74I9vXIPn@Z-T^u.*GbBRV4AMK,VJGA8.=U]m=_,'$`6(&Q.A'Z;c4>%Kk/f4;r+opD:7i1s^i$AWd(K:lHT:t+e%62TX:VH_n&HrfvJcnI<(;r/cJ;h94AXZ+Wb%,nGtqW_pBIToLJgZrtQPFvR*'5B`(5$Tff8j=^rVtAxkQtf.LBmj0nCwxg(hvw7t=lZ'-s&`wut/0e$g3(aIxaomM'.Ub4<g[QKv+2kfl'p]jT;<+vk'029JQ'LiJ*2Htonn99sL]=uUtE5(Zt]XbI$/&Jd61R?LKTi<>(je%#:nqnGUnkStt:K-n],12:?A#te1.kXtsN@*1t*e%%s/$H=V]O`26mUnFV%KQE./MpU;C4]F8ErFqJt)hN+ah:-V+BqV9A[3'njF`EBk1#?(G8VH-JHgA$I*7IATHkf@drig5F6G2b0([G4[Yj%po$@sIuNd4nx9r$rPM%:4H9bPLWfo@F2=mqYBK7#`#/[q(&TZV(w#sC@3=P0e5qtKaq:X%dl)lb+(IA7^tSdlI?'NQBda_a:$kxThK#R7nnvaAM;/E[E+aEq:Nr7;g?IxF2V2;=>Mo=BIv%88:;eo+#&2xt$vq:?-osrJDt+WAHOE7#P9.ij*2E@eQ5_nP#)gaNC/mq?1`O3bS[v;uar0I7k-LBsGInnn=kj$Be^n`*1/W8uF0Z%(RSC0n1?To2V)xb0Pt6duvvMoK,T?Rlt^7;quc4@iO:*kX(S8.MidvA$=b@Y2u2<:qj&dFsO0*8vrGc(Dn=2CU_&s'W*h>G#iPAO(Nspw_7M+^0IT&b5LBT>fOC`F$KSqp*[x0IUbpKZw>ti*AcOtLSNJ#s3'962Hs]E&T7r$Acx6;/`RS9*L]AFTClg2nId&,>_Y3Oe6SADSjsmh8H7?ax:EiWa+vks9)^*&I/sSRc:.ad'?tl+aCpse.=tOZ9m:n-N/qa07(b#/*6rmSAS>#HIlS5eUnW(aEgCq4?+_ub6k%2sjVK@u3Ub8MA6&/bQUR;.GXq)sBKVZK(jxNmK^$vwSN)hupS*JK&,RxS1r-C0e:WYa--q(uoI`v(Ij0LBMiTgSZHe@OesSQTn%f%H.KO;:RcV`8BZlhtrPYFXut[j%4+2V0B$H7RBAT9YHuW**[FsooXoYs@'T&i'gYWgG^*^<&^J:t2)*@U$pJ0veW-Ja:5A#4JP1pnwYf;U,?.OobbaNh`OYHBx&@@*B@'mZefZQ*8G`C(OdtI`6mGNkl6)6vEd>@(P?G[Gu6t9u6EPwgbRuD;r2a?vKjd<2ij<>3]3%4JN.O?Q$r6aL.*UeH$1O1s3x?R6t'.)(Dn3wBnq9BI#x-L/0k*9Dqe.3hV'cR%m=rS+kvg51LcE=m@w9oFVCI^DVk8k9)P2HO'YfCsIJ6kCqxL1.LG=Mku[I=Tf`((6jC@a3)7f6g.7urp:D4XV+xkoHG1vkbuv3/P_L8E)fAliJtk:hio*K?[QEv?5N7[TR7Z-__0F0H&%$32'm&=-K#p[Yw(QrX?uSe&H86lA/t<)-]UQC+@t+TC`o.=*S67[v#fuDReEs-^pG<,pV:dS-q;8Av#H$In?Z`l5h*i)w5F^#0oGOq':UCRm#uj1hA(%MjXt7bA76#CP7vMt2;-b3XttA2SjtU;l4Jp%9^l>^_Z-9s/9I^XEn>i:p4vI^N-ig8,0vDKUE*?d91rIG5i8@8kFGr#7)cF@l)]`ch'u`jVcUZk9r$G1n,=w(1tX^M)CULlW]uVvC@D:hDOq@9gDt,4^%udEchLgRM#oB#YuDh2_mhK@$Ci,&9nY%Hsp46HfA+Lt98-RKmtueG,?*?TOQq)ecGAx@1arj,Y,oDPJlAw9KWtah-SO.3IeusWw/8jV+(#kF%w[%d/$uQXdYnq3V5a*9(mu;D(c`?f.t%T:dNkE[4gf[)ofhT&TxboMQw'7r@L;UK[#v1[w*kXva7k'pC/m&H)`a?^;xkSWItukpwhuj+U]n2D(x1bD]^,7/J@rlwHTrtW`oq=?1ehCvmU1]eBS7Jc%fqee4*RW'8-L$`^6)wp%g8AAb;IA^Bl)xHb:Z$>i#J4B]3uoio-u(`Q1v#C^Fr)U(6E5,I+$1lg,dQ-I4gX#1-1:kLtnSX]$'f-#Yu0pQocAgc3_Uj'201+`Pn^-7c`'t8aZN]vBLG,50XcH7mbowBNUp(bnFgjA$ls*(Cjc_N51^n_4[UWM>_@E^,]8F9Uo)J(mVWS,7&i8&uV0l>'LHHQZn4[H^da>eD#'csaLTitgg.-Cr9M02Nb:M5RfX=u4F_Vv@Ju0[YE7SLUpX61i]kG;_qqt1,>,>Cde-p$0l'GcOs)Q4B386/c1#/knQt`dtTY3`'An>x]lkpgt&AV$JDR%2$5H'agR*44U&LOfwQ*E*5]xb'0LEgR+i`QUvB1JD$gu=7rf$*ub`(&s?'0%[SP[`JK#$qkV-eqUO7`n;rm5,&YcE=Iw,CX6wQw1c;*sLP$/Cp0goDKB'bHb`%*]4gRk8aChHKo^>ZO[JukB7L:v[EM=fw*$`9N:](leM@F[4AE&3MhPM7`sc]N^(sMfwSFBtN;u`N[Sme)rZ4p'#iA^uieeW3/((tL$f`-(XJj]Nl35q;@PAD(YGue[;<>vVvg-))Cj@,l4q.R'?Mh-r7AnMXZ'R3aAlNdEiTW^C^R3,[d]KWRji4@R3*(;G/=B]7.RWwrPXSu9hl7/h'c+r=0HB?,#'q6JXRS>?i[6wYp[3Ztv>8Ku)rjSTUeXTb`kOecUr8Yb7hCn)qBU`g0Nk.PwQ@i,-G'ZabF6^uokB1hDfS+?Ff3i7>:])uS)Q;>bd`Jru,`F##]BwK9*nuu)8V[&.('6#A5r*cU6Lf7'NxFe`eO-MsCRUE$0nKur]7Urhiwf@mRFW6iMj_j:>ie14mYLN%Q9jnx'@P#xcU:v%4UdnF^=o<&?=)c>Ym$lwIMxf5We3,YkT9eXqV./'*sDm#S^8h8]MmArYvD>K.6RVTYAT7kAH9%T,B@L)omo^,9sCrf[J9]'sxuk^LVWJ-27UcgV'v=8?kE=)L5dpP>f7Ej:.:,*<`*SA(5uPgT;nVlPG.]0^E$%8S)pnYsPG;='9m(:0h'3SVCr0pt((j7(b;=o6XK/xThA3rn+#MveDT'+=3vtJ_nqBmAh+r8t/Q/kT?'HC)]1T54Jb*UGxc+ZMrY$):Jg:GF#TKJ97$B6'mBp1Ao/]6`15QY%C$&GZ;q2nWm0_E/;a.n,De[7*qvS><$,CSqY(NX@2ZOER_.1ccA#DY=1:LD_VL'R_8t'<<=g1CWo.tf&es]oPiQ[svEN7%GCPK.oKr5oA/I1GO>K`dI4tN?TM^pg0P$L)x_.(JlgQDD+utN?'-i6[4X(Nen5&NU=D$WZr1SI&i0='/9/:3G2s]hAqB4v9@`S7U3mR[`4gZ-$fhFrmgd^1>_lwC@)+JCxA20u,%(X5Lw'*=*+13./%8JBLA_LrVZN6km9j*Z8(]U6[@(3DKc,Vd1&AVcK?fUqtK;q)ro3Jk53JV1vP'0qjBSv[VjCpVQhLo@SK8)/]>2';W?@aaAso[%T*:+Th]9RYRA3j%<`", - "L)-CT@c#`&fW%tu:Z3-LRi7QVoM4O^qnJb*7Dv_*CAv)[9b`YmAi)'A8fi0$jtv'5T4oP$Ul&9iBRIXpn)vHfEtkO0*OGvFFlM`[2_EZ@m]Y^aqMF=dt0Db;Jq2WUEx8<2[_3]#F74gfm#IGpA^qLhVs>,FRl2tujQ[awlJqP:J>i4OL^B/DETgfX-;wu^E.vf$%(Fpw,>xtM-8u#iCZ]3WUn'V/iXta1xv_*d1AvSHBf5v:Xg>u,-)-#nWbZ5:NZC:<47DVxm#)u5LY5[VgoYa$Hkh&33FUZHZ09I&(HM[$:c>Ik6>dXVgehn*6RW;`u]a-:S6jKe`CrLnN26>vquOgv7H>#.6^1L2vY.NDWT*hATBbdm]d%M8]tqrDjZ]'Cnmf1Wl_JPSr'?%Iam5#GV8^L+i`js1uYhL*gO,kl=#3[5#j[%k0i2/Z39:lj?53;(sYeOk#G].'(8dq9?o'+U<:mpt7f_T.aUu2]3$pqTk/vpSP^?rW6J5khsG4N.pItV,nBMJr^;_tYs::FLjn73Uqw#>/*>lLL:cg;/P?r&fnecZAVkDaWMAEg0VFg<5?l_KUD*W9KQx,Z3TpRig&]?'<0**NcZhDcXFkK(q>7ou#_KBXjA9xG7Re2=.aio]Y4Q3u/1cW;I'$ILa/J^tu-s/A_rcGXrAKe[W2)86IuRdV//J:[(*e`LZgLf3CPsP/#IEc1(?FHhc?F)$us8`t*#,]^s.J^Hr5T3cOYN.k4S$YNVIE5QqBBXFXm#Q87fplCD5)_Wg6e?Ag_CkJ^UB>E>_vC2S/=d@onL&YLK-$`*'r'ku+tBl]1n54sEhnr$gO82[4,9Qf8+0fBBCadIpE7-vv5$x,`pGP/[;wZKAb-4J6V.<,_+DcYwlFwdL]V$B<^u3B2>^.JxRES7MsS+*J7/Mlkm(A;uk5#<>0dVfe)hi>_OJ3f;#kfMkO)8vC6XssHs.&4_AFra$6[+^bBqMe#:,1Z3lWOrOS#F$Tg21sGWlJpe1aQPoio2#B;4FV]w%S*IT4pSi$9qOj$*s71uV>u$K?@t)T;lfB^NGfM7@ndxA^@_hO=s-g'N^JGPTqJ9qZ?fx4P;DP[82a'4HT:dQVjl%E$S-=$Xr8_qO6Vtt%M9J^;ZgH@REF@?_rT)pW[pJAP)%'3?6bq7jT)bb-/7xcAd+JR_OK=T^rt$Z)>saC(am^?LU[Rw*)O4rUW[0VRE'#OC,Y225&8/.Z62#.kjJIqRn2pr6g_%I1/rN9Z72i,Zpe[3RE?X$4p'ITMth=dc31+U.kTQtCrVTrM[=D@^'3?.3W@]owkChn?:?:QO-vG=VUwEnS*tZXP&H*^>>5Iu`K'5anETAXgNkEtg#B_I@e.fdcn?qP`w_M^353)B%9a`sV64muvZ@YGU&2i+63qAD4rtrH&.k8_gN:E6q(hxiwqx:?[`)7QY^6SJ7wYbchgZlbm]Ksh+CheuidH,pU]q-ZJPj=CU+T4Chr4LR'sWm65#d]kB_P<2#Tj%TE[WMn#>(3kr>'2[V65],gu,q?DffTY9%<:Zd1>,Kq)`WRg*JMZgTW?_N`qgr@W@n+**:v>]XQW7s_4SY4w2.%FO)q=R;*Ik(A[mp#jG7jxc6J,<8Q(4a6;,DS&=#V)=X(-mNtM5/ZNVj2p@l4#w5rFV9ew)?T9fsp1q+;1HT#AskXNV;NR5*6R]7/9w`R['fu<;o#MPrm4A3o)d5=,?e(Fh`DV-`1ErE]8Pn9`+xu/cfWUT[[+Ma+-D3`*TBdOVaqACo[Lnvop$AFRnjxP/v,t*tZhn$9va6U*n4ibr7]''f'(/;R60GJAB/,w,CkWir$6lfUh:k-afKD&DO6Hwe(c(,sGsD:T,2g6cAU->.tqC>7v^o?frYrcKhtB.crOgTu1=h(HcN^$xX;x`QtcMAH]B)od&)K;=E=ld<$D?ZqV1-UV1U?d'vYU'`ETvf`)wn`wtiwNp'J?@ZnfIs@DQ^Ov43O`jPSsb_-(o$fBW1.JClmuEr8Flvu,G,/K?Q)0Li[55:@x-EkrXB)q++kA'BxAkh5-e[ZQ[#NMYZ99vmo*h9(0Jo?sC67lbL;][kI(@r^$`@+2_/:Fn?[II]r@b*&=pN2H/UDu-@5`*mjS?Lah1.hkPkM#o=;;[(Kr%F&)Y`OJ?tQC2ePf0k/UjqPUCLTNOxsNB*%FV$gsj.EkQSdulr$xCBQn#T2l3R-*XL&c,bQ>H'N-veL(7+G.9voci+:TfFZL+?QJeU0E`s=R1tK]A?nk'N;0;u]B>=jUvh^2^Z3ThkDHkAv(W.rjH^=tmm?xmcuvD.-VPiB4'/Z1dJ>9nr;XYr@7^a;c3W@^%Qub.?,/O`ci;Tf&M(k3a76W:K==JHM5IGro)H+DVT6=<7#NTR,#;R9T@b1H;gJ`(GBGB=Dbd+o&(&c(=:SP+@V16.9T57nYjS3kEgvku_oNcHd,D/E,>.bQHR;J]rlhY9PXA:uSU1[aj[/Y>h,bU68PFS*M75ZeOlNA#(GP]E2*ItPns=c9R4l(Oe>:'Y4fx6*YF9H?lU[sV5,13X&nw^l?.rcEjaNMbgg='=SQaa_NT*Xkl?s3[9$@@l.>^_h1lx:t*8nK2r4]451phL;#)),ppesh-C9:+$GA+]gu1KL).i]6[5q:c&tlo]qjK`(`sP#v6q/TSd5^SlUWLsl@?@'c:6lIO:4trW1p)6U0]w?Prx:`-'w_X1r5`alLBsut;]#cRxo2I;%;-i.l+EbS)C]u,;i89+F-:'Ll8M:ZGfCGbp5ZEQ'0xufM&&LvwSoa9PO)H9T'XVB+[DsNQ;KIVC3MKY64/'G5TnFdZPG=sgp^(PK[-HV#4)aYaa%EEaR=:AZIF<]KIu;J7,,KY]HZgs+FZ04JF_[?7i_[_kJ6QN2jo66#]IALr;QD2X>6Qvc#1T#P_/5*U6RqsjP.q3Q2#MwH9:vUDpq#WiQ;qEJrjAfcNciv.-D2xv9HhI8?7//F3@VcI54bkx]r$ke<(uPKpiq*fWDT7VI78w`%$:%lIjQxmL:*Stli*0vI:dM28(9<$nY[/u14v2^F2K1cC*S^Tri$.QNtO:HB_o2:jZ6u>3aW`tBecr9U^kfM>&YuRea.JK'8sFB6t87I;q?th;$>UtmL1og-J+LE;O8:.8a])K)NWP[WY,'Q;u'2m?tV8kc>Cd`6Jro48FG5u^84@tJ7]DPEiKJ39*1gR:r*WJ:v3=Xcf$f;0gb6bVn[@_fV88qP.>El=;SvvWa7awBtS*XRI)jL#]mm.:g^ZR;g@>-Bb;gn`#OOwXmc;+XeHC%aV$Bf8tZ0$surQ:lSs;i2dH_KB4GtS5riO7_N;)'RRUFb+A^2KSj<.C#vGX5<76am]>'8JS/]X`I(rD>6@BPQ]n7C_tk4]cTfRgY^7A2Wbh%]fX>MfwgN0`Sw6laPf/?Ioo]D1.K697JkVIBW1nXxelu/W%j&lQ&=a=wUCVm`*(eF4Q$4+Gxd^XtGZ3Zg?(vvs$T%Prc-v9bK[VF0XU$tVpgfD1u*vm$S`rF,dS2=ts@F*S=FD.IjfXt?uopl,+aDx>*wdc/bKS8s(+BVcE.Lo*?oeonn`m_?D8t8QtFuu*s@XrpD;GWuo1VQ_fgfrrF#:&^k=-^90cbL8cKQIvbj<6feacM6DEPnewAL-48'rZ$l+F:ULEr=^.TqK[Cg/IGmrhn`L%GNDM'C9>#0jOLb[a-Am.CnFnjkfRwO/'=4*JxoM[JaGerMos:V6,2TSqQh6s$^^fms.F;.i=[SGUiPQ&gho:p,KBFduYn0B2qu+ml9>F*v&+FGu1:N:(qioP+v%5@5bHCNtDg+?FPTx[G'=P:tnl&l@*_VOFV8i8.ak2d(.mCRqE2`vSoe0VZaLCXWZ_:so%aBtaH&BBEo4[`f.4*uEOJ1dkXl^GfRhJ:vTh(6Rt_4$?9dh<2P[4-L6vc_*os',],3N9('4YErl7:5v,(8TV_RNKrMZc%$-Ai.H9EBqJ:f#L[(E:8#vxZ(1:p[Z<*Kr9vJviga,lIwLa?Bme>.uGZKV8cp>u'2+$N0S#DW>q@ntjiDL4Heo*G)HS9-k0vQ%40(YIZZ4pMJ=d`v?j))S&b(b-c&SeHPUC)Qda2.SoxI0OQgdEGV*$fgjn)miiH*uhGclS:Fw%YVVdltv(lDXe&jI200AS^Rup;HtP7@0tMNIu/x;b]:,uoj&;`7oHDdoV5t1MwI_)m$VvhmZ=^?HK$tEkopW#7Rl=b,+q3nbd5-$^3rrpUTRL@*9E#oiofmOX8asH%-f`JU$vT*LXm5hu-.&s4k>WSU8+kCQp/@qxhX`fC$_^)wm2J2[d1Onu<0HF7K82=&3][jFDeVhe'_`Rp?&fqn>1A2D9GaMhq8NkKMPu]L>C9:Rh'S0NY(urI,587o4XrIDLqRMOU@(DJgqcNJQ.3>K.L3^'*R:A+6_&++8D]=KpAv%8TdCov/_XPTMQ2h6vJwdPsU:Er7v+Dx=+1KPp4%wlhuK,`=t?OY*KLfw9JX,`(u^#pL*w#tK@]tlRW#;hl,T3&+/5m%L>3/#.)@q>hGVMf(omHErbJ=+'2;5b%CTBb`EfHU6REK%PVO0IRG4T%gkU1RH(@>IMB''82bKm%eMb9v-;)Xt%p8SlfE.*61sY#->0H*Li^]5sqF;q)pw4fuvR^=]$nW7H?uh4`b8=Yp'dW4ov_.dFWtg>#3T;,eMDAN^?&1YXQ4?/U@4[KsrnXae,b1E;vqx1Uo)iV>'-koKXqS;t(H7ML#5BFu*qF(2C0b10U$2VrY=BbAQQiih#:F0i/8YxtGHT@Qk8)ErE9qJMp4X(3d>]gBs`H_-oI>9vAl_B&Ci#:%_S_<;wnUQRmd)ZsSCSQncm(w4%6wOBmm(vW.XQ&LeN=h]ub^R7vpVTmV>5q^]V$tgOL^`>bA+.XE2qc`20FK%SehrB[)&T=_IiQ/9(e1e(:c+B:s@:cr$UP2$is>`vSk;'BcqT22.qs3`tUUFcZ+MF;DPnWCa7v%4+gl)*Ja.NNewp2q?9(bPkYu[;ee*V[n(hlKdifpkCSE%uXZ$6VFif0$:1vI;$?Jtr]O(JBTenC]DerqS`HPbK22RfWkCNVq(6VV*[h%=U[[(NdC?LqT@13vp-n7jn5dl&:q1>5Qq%QZm)xUHk47CuRj)EQeBUT7iSA)UKmBV?:A4g%3@2Iu14,qrX:DTf(;+eu%aX/trmdaI3ONjYgHVHl3A,jOU]:eeP:S`jlWXPQBH>atZQ&TT5JiJiGsC]K@HxK[V%D.'C5jiOZN`49b>$BIrY.Me_.'>hA'LC,_,Ef'VXZ]QnIYa`#>23KiTE-gqAF.Q5DQXpK>MG.vGU762,Mm^8+nO?9:CT+;)VdKh]3@#rue67@#=B`:vN%c&L='0qIO&&:6x7,S?@Tf,8-s4%?f)gfSI6X%a--#hH5NDkaI.;r/LB5v1A7G_Q:Lq,?QrGuCgF.vUOj%$*EgJe,N_Q6n?;qf(%G&]Ae@,Cid-#dSlbf(-EInuu)kaR#7:JHYf:0iVs?P8:mI*Be@QvuPPTUn_XJ_qfNr^qR?14uf?BgJwfinr+3f/iHMrpKu?:^UFD3>eoRN@&s2R]a2h#i'=JVU6OL4&-ij$XXo@.lhFVkfwA1=?uaJ*r8'U#[,#J?\?$rwXbU@NKQ;^3c^KpUg4NDnLow$mV_UHP>eTq;8CMCH>dscM,$k_c`Xk(vdfd%'AK34Dvt3-;),lA'bo%DShKKY'[mYT[$i8BF^t2poH*Qp?%=@E6F7>C=g=*%[LN0&8:`*ve@4qlCN$*GRc%LV'JF2[%G/vsi*%YLjf^1#e;wOLVF_ql:PGAG)[qJS7YnRb%/W:m3*1IP8>0?k6[R'EeXj_A9w3:-,xN/g8P>Yl^^QGgh'4J>l60YL5XG5tf9.?/]W^]:5Xv$,$@$hwN[RfoRD^b#bt,0N]Pck0[[9$MEWGLGjSsF.XZ'D>P#Cq9>J;u2A@YubRNu9hH)+8OtFc7%OSD?@S/1r=22St%4UBV,p?wq3<2uk[GL`#'m4>[A&jUS1dxV6tbxi^bk)vm$Co#>v%(CLx^G&$nSJBoMm@U$[&Q(NB35+rwR/gYg).bG$E@Qkv;a'gq&:1sWZjn$H'0`j'c9Mqq2uB*V9st+,fM'LdKEJpY6`[auU*n'aMMsFZUddAL:VB^STmCgam=B&)+%jA.$arPuFAkB3htH)pLTvS:g4T-Po82pENSokDP/pKMF8@sSJNs%1-v`Ta_v*WqfDt[-_Q16S1Puua.fiK]1Cwt&?IiAC=C5W$*,(l,u%-?'V9lV@dFB5(AqPO@nj$Dd/HxGqUAEZl-K-i?AIFg:%9/4ZRug(C'3H]J./?_YIK?b^SLe##>u:=g]b.^^Q,LaN6*X3a>:.veEuHWgH?b='0vB*s[YqbK%LNMrYlO+r/mWU.oONn;rcU8ocQ)^+o#ItW-nKd^Y8-0686#/),.rasTp9/;a(E4ov8.IBVFi`)0I7=VXDPX_4rFdhWO6$O)VVQI]'bSMNI^tiw]a-k/xV+*t@D7cqH$O3Z&knF`t6jr=%='79d&NlBT__RduIi_^83.nGF:9GAB`aotutD2m7dD?75F3gQuk2nsK>b);E$KL-va-i0aR9-k5GR]P#%*Z%'-'S7h=2$#7<5hFNDEFDeuHfhpwd.l'tRWtTU(UmP#xX,3<2?2`eW(vFd.TUE``i&L*QLt61Um$8dGlLILF?TfIVPi7Zq_**-o1vLh2cAEm9Cc+W#sCJdCB6T:&&vf:]-:JVbdu.4R_m7g@g(hwXlb3$_4vWp@Du`6FeWwZ:Fq?t7Pne?YMra)uTQ=$'mfw0$^^RVNf-)+Dto`m4kfE9)G2S/+w'@'h=W(Q$Xn7d3j/wgvT*?_J#vTQmxte.e(9U[hLRZr)6-EpEuDUi]v%X]c-1j06E2swOuul(,6jN*P5^U.hx9KE:_2.ju6/#:=#PgEAX`*VlfHG1V.HRT9=L2;[/kD.J(ND6O+,`?.IXF_ADr,,sH$dG-hms%J=I6SffJL%K4)qaj#g>0i=Z^Ae1Xl>EreRxv;^1KAB1slga)m1Xi*K7jp==N&ub/.g`a6B*M5P(Te#f&]$RLqx/);#;6Sm?*MPQM7u:Rw:H7?7w'jBN/cf&(?Au/es#BH[Z0gpXD4w5LPDjh((EERU`:F#Vm(&?05>EHXWC-pTQBuf:u95MSjwQ]FDCD0lRt+`/<:s<_sb)boCVM`ZFh7l(&.49vbMvtKBRVh[28FsZ=7UOCtn5*WTMbb3,pP2Ico/;rR)^q12s?F2Nh1'JIt2MU)g&0Lr@BPndQe@:R`?\?`hHBtW$Mh_92]XaA3_GiAo[C30eC-wi+TT#vL#q3aJX`WtfK1TYvQjgnS^39:dIvFrf.TU>dwL/FiNfh/e&`vSi)7Jlxp.rPgXlm/A7Kh^4)Z$(hRsa$rlC%t':qS=(w)YQmc>B.%]v%cFr>Pr'`?GT#_5`*Vmj]j[a%e?BxI2H9F-6VQ>$CBCr,cGg>7p<#T)b..B;)DF%5b81$:;W=N&(v$q_lJBsbo6O189Yf&_KO^ho@5t:-QgP5cnxw9_'6uVSx2WRBD)TGl&$J5Q5Aevo9cl'vf@:_aR&>^TaXO(7X)2JM(U&&0Ndc#+?.S#ew_^%LxB.B2jN[NHb?+p35N9s%L;/G@9Fp5LPA(a?TpPCNHNk>Dg4acOEnKa<+L*s'gTa?]GUdaVQu,m>,+SGou4A_(2esi=jJ_sv>]fw35J:YCtcNSvIEoO-H>(w[SxX<&g^%^.4I9^Q0@tb)$.LIWSh>gF-K8nf41-+Q+tppO;skslx8'tRn3vk#N4.+*VcN9p?h,sNxZN.7ENk0_2Pfve,3k=vixb_e51gA'KgAl6BEI2nS%gw=12mYQ(`*Fid;tSx0)lq(bF7pnlA6N-usfX%*$Kr&QVaoV?wdUsJ-o?TU(N-:'R`&1Mik+Il6=*8>npoMhChPM^r#jtLguDXe3([jjn@,_')1^2%n&6p3AtNs](1Z.m?Hotke262jBFkVJ)RO2)&NjBaT&mbP_<31AoE%w@BV`fY+M)BBMk06B_*dwlO*f`7@-_`w'l:trnOYnMe5;::DV+T/g0p?5&Hke$Z-AHd<^KgQ4&nF1sfxT;b%s%MmH/U(45;CS3r$Ls-tAe+6sHL+S[lZji'0n487W4FL)@J[4[X_sS%TC8B0*Clt]Ex9pus>g3b^*[$rDE^Tu9c+>qQ[='N$wb%-&qBG)O#1#vt1h^<V?PSx2t[4[&vpYN'Lq]u<,Tbj5J@%(@rxx;bUOF21:-&>VfCA9LPDu%,vMcEp_d0[`fssw,J`CN8d9(K>%C)n7,iDSV&ga$U2b/TAiDFq_cCE`tkDlHTrc7FeW0Ts=,v5/8HK[aw7'lWVO8L37)k&xh:ioWZgVs$$;L6L&1>U;S.;ddM`.-*GM+@5*L$*@:4(])4IPi#6R$:ND6.%f@7jm.5vn+;vs1R=%vReQUFetaGd(o7Y#*42F2WdOO`&rnep_II,A=89J#5b8vgQW[rd$vL+(nsNZL.Lw7+PnKQp?_Uc1ePZn[h.P._Va]lFU-fc8Odlr]FVJ]E:TKPBUmvOf_KGl&V6W0:6,hL.pH)/J4Cu0nvqTY>^E&iC`Nt.:]tU[aB(a6pDWJL5P:i6+))GeZs8#%RW(gw`<9xh)fv7c@m1eJm#S/FrFr,H;(5lhO92u)9v8g/q)cEJnm?$HCs>5>Vh>1o[n`cx9nYW?`W*gbWL3rO4m:'F8vM+jKo^a,X5H>h]O`#f*jB.;I7Yi66J1FicIkfc*Bwv#g-aQ8Mq/`6St?r`#kUtWO-P%uV&frTff=@,XQ<]DrJiNgEu%31d]]lp`*-81elqOs9v/p?D`aXrM1Kknw5w*h#'4iIkFJlKaY.hl=m5-A@no&/-%BP%LErr-t4OYlRh/Xd79o/^lh_xSmK6&&t.YcI_?M[%(Auu-ebHPe[aoEr#C7.?S_':GKkDT#eT=7v[@(3bKDsp;GbwCCn$i>Z#4iDt[[KG,X1h,rr@e)eU$cY?*H3c8r$56@m.Og+v[4X77:7^#TKfm;%&btW%mZum;8t5q<*eCH5nh%@dbkkRP'7hYiMg8]QNlt&2-tk4%Sa.#CPV$siqL%a16LZJ87NInO-bE2U4j8IHo4AGn'&ArIoeBEp')Z*6+2xbkmHE2jXn/ghp[)L<1`XIH%Mt`#9x%+EH42nN7M=I=H:[C&&#?X/m/CHUTXc]5],s`pO-1hsN;qw9;[)$CCcAaiXDZ3q_E`m/L0@l'T,uuK:*J.,fCq&faHL__kDM39pU4I^b-mTit2?Xa_TqjuV;Fx_?Kku#Bsv3p3_v#IK4)1Q_bjG)_5a%La[nK0O%sADLZ+WLQuV$kwOn`lf#YONj'uoit&=]an(VA>ZT?;@qx:0*VBr+Q5d)=?<1P^f#BGRtK:>X[bUc7vLC6w&::'R7bkm%u_9:q+DZhw^X-$8vAcEL.$O>8rB*+4K.05.ue[oGuG2ms+H1dWQumX/v2:tI2hp'-2#R0(+`*_PL(aGhAk@=S1j#M)vUMZ1K*P'S.m2)S-tj3B6bB1G^X9tk'(-5Dk[cBqsc]QTLA=OkA4bX+`c9x7vII;@AqW3eN7w48cMTH]so(*I0'-CHNVKulr[h-*2-uk]9Q%x26e&al=Y0lm'#TtpvuNYR;qbLf22gkD-roqt$9K'+_aT-'pmCv$;iFf]Lndk0qQ2[paeik'U<^hh>t+fOHGm94uu@KaMapCP&IplK,+X.RZt?qQAVT/uUZg0rkrrJ>Z#CdgrQB>i=YKGqjZI^et@eqoj7KE^,qS_*t=B(xq&@:e3n6nERa7S=&-8^c4vBtW;>buS?/6-;L#atrV6KI:_ZNF;kv9Pt8F24C&/dW))w#cZ*-5^=Ki=x(FQTD+L`VI;FsHL^fiB>fd42>9FxQ-oU)gF>vc$sV'7P;Kd/VVk-RnYIlP('pj'G6[R-v;;2Poio;rf1fII34K(3k9e[ku7GE@p-d'T5A$/+.Klqm_aZ,&XN&A]_ZQ]jfo.vFmTx-dBZZPR6,^%nuk_BGo2[NQ6c=qQRn[2I7B=cMTw]/a#(BV7^sU[KT[D1ScKRjstLgKQX38b;%,)1'Jvm'r?p[vGk7QYWDV*bgWdrJbK%RC9K&onWZn;^d[aF)K`<`LJwXZ992SqlqYn3dc$9rZSXh8)6:v1nSeW'R9rKb<@%utvwv/5iUt#2v+Ka.d1M%V>ufN<&X^nQ?+3/L?XL:$Q)k'F@*6XH/BrF?^t_e2Yj%thAw8LO+));YXEkHl@b[5OppQq7B_riFTmLK@WS$@<]$MtT80YKvK-;6w-x8ut-Fq?gbbjr5?Vamm7&EgKe$JUrjI:vEJB':kGJZ31(@rX/DpGqiovWKAG(jAl@@0nl;/n,]sEJ5b;rXY/$fmq<1jE1Wf[28YFl2X2/uO2V&hTn>ffu*:1fq)l^nPal$U[Bdjc$nM77@x1:Z(RxsZLm#Z@7Xr/8.p+(BqDp#(uaFP/Fhwx,f'o#W'nx)?6EQr20/'`NeHCZ<1-:VtVsPh/H7&?E6V>]$Y>JLMXh1MuPQT)<7aAh3NRl]swsc977N*pqaUYOD`EFn86KKK-'K>n+B=Qma^bt'rntYt@,Ocb,.C-v.'p%ta.@YK;vR(aQs7u$j[7>$'Q%YCp)8iA1mhbgMjQ&IWhhU6>`YFMa%OZ2evsai;0.Ku`[nBEAIB@XJ]GLf.#m+YKKW;dYIMLpAC<[R0+PD'dj5c3m.YE_10d5ApUo6lZ&gCEFZ7`3L[_qqn4EI$RCs,ofP/AFaGK:vt:+*ugqh)e83L]bLb.U*fb1:gJ2m>a86[8(io[V6M^&YW&dxo[$FQ^O/TlquKKXcWuGs=8<&KoK;nHq+L6,IE.U.cVa9KG:&M2KQ?%*i3qU#fi]R&D._w?ItMedjI0qOkwu1_DS7vw0<_g9JV)_D2wrjh=>h)Spsog6Sx6Xp*Yt+[u6K&c#VLc=te9`E.Z%8fuDp00pmj,?Grbqo)H7#D.Df^RG6:8Unl#N;X`#o[0_u[=:jA_R4qb]khQ.3+b:MXOv42I&BViKoah+(AU_:vn#F2q3ju#IoPmVKZ[>[rj4SG8KGY`o[tsM=/fvEd7:w6_[;:tSv2K9XLWw7o9mIO5wHd$dW.+DReH8RngHEc=9rVhsG0F@gPuNXl4ZX1%gQNSm#d]k+i2kEs[DK9c]2O'2inIwrFfi2v(29Tf+8-`#*s_O/F.X$p(f,ku=7S7uwfH35fTf**,H,Y`+K-n^e:m1D(MmxueKbiT$f@Er'A)C5bv%(G:vf%^U[RFQH$OuwpV=S4(f.Q2Pf6i6-TQr7XI-k+t(ukvA6w`NqLYL+r/4g&vg#4H5:L0gseCO$QQg)x,xB3#=Xmik]Nu?X.Lj=kf?0w`Bd>WJkW8L5v+of/n3IC*76SBB2e4P(NKpi-vH'F-?N?7I19&`MKKi7B)^Ng:-3O_;i@:rJjl0NhuWB8B)tA]Rar?a1H)lppVlp_jL>'fkENvcp/6L^u2Df7?))ENm'%s=>$)@jsqTI$RocY8H%(JnPtfNpXil947)8`W+mYCZ'rZOK]bC7l94GYu2s@UtA1DV6a)aV5mt3]2>ghH7,m%beHmRF29`8ol`YJKmKJ'%PKn^Vj4D[w:uQK<>XLo_,[f>hIX+)DiAV(K7#mf2dF+C3lst=`O5k%dI#wD6ZEOqr=1h1+-r$sk6uxMVh9rokEtx4n^j^/q1fnaU;ngxAPcmq/+ufs:HVskRr-&UD'W^j_Va%4`kfh`t@l2uU7?v]F9;Tsvs#j;LH3P3@T&3C0gGrvL@akp3iAK'.F2R4RLt)t/UNP/h=.=BM2I@)UdW2t,sZdlxbV4N`S7ZCGCE%GBsrwET@t.hEToI_E6`R]0)8fj8CfU&YHAQsQic&wrC'&^su.L6T$?f7;]%=Mi/ZHk>Pl&&HxQ*?C@rK@LQ(PG>^q)W@mok%M(*.n:jhe&'ajT>(lhqekO%L64ohEgH$B)(OeSs5.G<[K[)9iuaG?pd871_)iJ,c7b86]@j[bI()6=1jfdskk6:.nv]p(W+dt^mr?r5oDM@`NJNaIUv4A`7OW9$`@./>3I(/<2w-h?FwZZNjQjtpmS$A)ht`7%gcDYU&SBKbcEf'&v0=U5ta@YVf,YMqDsH$X4+Cr0r,Y%Jf0Pu>Xc@t_(Zk$K<^WD4u/E;PKUtO#@El?CEnjs]*)6mo;tNRmA'Z-dFMa:nI", - "5fo6l-6G/rFGnrgQ#%O+o12#H]*ss&-IYjhciw$wAT04YDOQWt7`fc9P?Rnt.='vKCrIqH9n`4x_gVn?mfqXsL9;nYPWb`DgA5g2lx(*KnuLg>^13O*`u+J>1?gql(/hm;ddG&[X.J)N$VvcrOfUbBjqL3o2D-Us-)N4Y.3UXPk?(=ReUikh)evE3,Jx[J/j%v^1^sw?lV/eJRO5Kn+fNZj8r7c%2@Ww@QqL0GcsN5[=l)RKa8p$p-,@o+qrju8lo,W+G)5IiA5%$^x=jF-0X$4tK#<5P$9w*Q9'5N7Lq%FHFURdx5*9v8N+^iaJ+h#i>s'NF2lSuf$8k@am.$4ufUW02^5ZG%#UU#g2TgRrOZROh135rWjmg>&8)BHxK`:)vf>^+$IoToC%WAQu<`'PYk%?iK#]1,1#YW$`E_eT:=r(8CZ^;V#c?h,GUVKnX,O*oEDcl(]d#+8m-IGQOWHTwXfL9QHrOO4hk@1%tUlFX/UftBHm5D$vBWgob(b`%xeLt-aK+R0SIkPns0q+HZE#(xYDcqp./]P45:((87V/(HwFDMiiL?O,[00nt2[,vOCflju`b;>QdqPgPrO@c,1XkOm8*A+aFfi_aPBS&kx4vf'7vNK*7cD28_=f1gG5jaP*0;37>2o1J/K>IrR;XK#FWDu3IvVu]kcA5xt9$#@ssjaoH=ho-A#HN/31x4`jd-_@1OCb[qe>&e3`UB+LLb;`W5gOKPW4H;I(OB:u+/tWxM>snnBN#C`niAa0,Yc9E2NuI8@a(3rwM(.QIvnwL>q]BX/>t@0rwpr@1)Wje%%Q%B56-r2lC6w2<-v/$**E6rQ2-D2$#RUnEL#QgQ[_SRj$@:j%mdpRlLm[,5,TUt#gAhW;tUaXel%9N?[`+9$#K+2JTC19Y^$pS=u[=./N]vKb.5*>4HsLv*@O>A@5/DO4dWG0D2j6b/^(7f;0'RLDHQ6C[b1uxMDXOs$69Qb#D/kWG`A;*)S'u4,0Mnf]_3@27Hui,j[#eYY'CuAs?jATS68a&&7ZbKHR^J-IkR)RZ5%c6`N+Q,4teA%EVWAA-3RN`@)6LcoE@,E3iY$aw@AAvoa*pKP2R-Fku+$`D%LVg^)>#%pfG&WrhXa:WQ4&22Jgu1[g*g*3:((+Tl87v_LMa$-[9Q^2vlTG%(>VH9W-lYl&9D3JBB6(#-:2_x>r#_gL^lBVmUKFRh<+R@4Q,>5SI)YT$L$o_(v/4U]a/K?tdXx5r$g_rRtT^DSuVKaS&>t9n5KPnc@K6Ed>-9:RAGD67F]0G1_VEi*=C(c1O]_uGA;5(+/x&(*Gtv%qCTL1.ocUZ(N_'MJJU8*m$0C_`eD8.cMvLl9S66a0jERn7ID20=wm73ks^-I6.$?fn[::v_v8=mr#T+]gCa=(aBBZafFYUrfaQbK;P6cu])qGO+g@9MEX:HRDV&0Ed,f2M?N(^0aL$`SvL)-arP-<1@7NpVLlF8U:vUH'I5aExh[k/gR1kuDl]bk]pVC.FJ,:9RwKTa(qro@N?m8(@r#iHC.LFu8(7&elA^VVRL(l,HlkZWL7RrPIa%B,Wr/qTe727w&vh*'b.W1weeo)sk;HNSv*.,)mLp;JjaBxrW=L'jxKMNV@tNU%M*f,7V@=u%1CT:uN*LWZRD*iU`*uT6^,FF,8v/wF^s<(wFVnb:Qfk]mu=10-$2):C_SMr_euu1KiuG?bJ,@xdBhbx58nmR,F(3'HolXORV'4epk(=&-KBB&WZovbW%v2@ekAC:kIAx)@9(LXqmE1'tOPk2?QmO(aC-365Ib,EbF51g;Ya#>_E2&)n:QV:h%3)-OSXTAx?A.RF;C0`e`&S[^B9f2N$Tj`/;DRhH[ORrtfBm<]_MKUfCZufEnSAE,&WHnsRrdG1wV^7F_@73Wl_T&%G+[a*tHsm.BD28IiUC3e6Tt#(LOpN^u%hXaUQ[QMaH,`/X1bXahHn@tn*gKB_%RiQ'b6w$p?BlL$3fuu-]sHtF#*H7nU/5(6Ng8'PV%`(8dZKO::l]*iI22pss(C43i7#(g=E-vL2q_*p('D;Tg:Zm1j#)U$acj$YB,bXa?=RT>^rm1aSrcZK?J_6CtdN=1uwjU%/pS)J),LfPl3<)O5MN9pCW+v4A#1vsU1SROt[gqZAHdi8N$r#eV*`@DpAgCAKlDxUcuxFaAKknep7>[U**9Exh=Ln&mm.aK/WV+3'45MYaudNojJL%^)Y-6X?7kB)j&'f%s>1Fd,#wDc)C8(&3bTKQ>uEF5Qq0(+'b6Z&N7&x9d-OJ];?kbm3vhq7,ef^PAmZ,9k)?F8M.%HS9Q;b$HF06%bqSpI9'ah.sNO;uErSw]U(556s##nHL4C8I`_G_kB.2DeGJiS7wNBdc21;FwuVn?(*U@xI^tO;Vw,T])Mp%,gOR9s2;u_Q_:jE22uuCq.w,vt04(b/%tHJE*:nFPSJI:D]'88cTu#=QLNx>kRWOh[fMC>k8YQ(2cp((#Dn+45nNptv%(r)lZGg-juXrl32VQGcNbH2OxVm$$3r*^uZ9Sx(_a.$N_jU`vVChD551l&w0LAVTiH&ut$mYBqE23*v)8HS_d@5r1L(WB)`#0oC)bZ>dducNDoq1)4FV;7Vh5vgJkl?>'3b:BEl&-8G'?)o_wkouPXTmSd=7X'prH$np.C4Rv9vkwRvf2=,8#*SqP9fYb'7ZV3pu.,al/rLJHk'naC2YD&7hmSU[2$ef12U('nREtxi$-f>=J]=23$->OUL>W.EqO27<70BHbujLq9Q)YL0/RvPeH?8)M[Mbpf)FIuMHUk/%TMb1.+ET9DG51BPNkN,mgW(tT*n96YoiMfUT>V9W;]J]jq4U?%9mOB8YQ*L@e:CtS'WE.Ga6B]#ap<$sh]npE'/s`oNsMU).f9]c)+nm+R.Z;Di=[[o%BEb0A$G;`oXOl?(/;-$q@wI]nN;^?^f.-ddI9/on%Mnok&n8wop$sC4h<:e$eD@)ZghOtp]^Zvl./QsJ", - "_u-N`[AfXu>4LLP$CPiNrTeZt]Zfkn;698u=g:4uHh2T^5LK+u`cW.h9pefP);UUUV*ZA7JL5k&ja.bExuJ/hsB/VmVb9q2%m0-,GTSHq/o5>kZxZ(uoF5E?3geP0.<4;lc5[vptm8fUdMD*M9Gt.rYa$_0W,N]LnI%bKSu%>U8eqDF2t>/r8:4v[Mi?.K=O=uv[`7ufO)aGvxK=P<]+E5R0%B2.Zg-7mdl_UjF&*t#U5(5E1:bA7N+Dl^rJ8/-+In;d?-4-#:(OI$+@I=/3'WE.^ub@Gukss(V$[^%ej0]'p:TeAYl(/cPmLM5d%qUV=meKYdV9s4SBa^/(vmN6&n&?Eh=9Pf2K9A=BAnHCrMj,F.:u1[Pn8au7-*Ju.:Fd?6NS2@oBad0e`(B>V1w16Dt[HO5jMKCrdg`DxF&M]vps&R3agWrF5boLHqguJTDkP`#vxlTvSr9F:cn0LP2Aa^7vga)YuM2%gu-u6G?\?H8wb)*p)CX7B'Ww.E[bGh^.vLCU&J=N`#lcv4;8vH,(_%(>pV*QVGQdTho]rE;O-J<=WB-%5,::*3[n,pw,vk^Y0JAi['b5DM[1iB$d:3lu-`XH#:R$N/e-$s2KZf0._S]+5E5q0?:ZwN=WnHd5R_I5j_ro%&,)+X)[gL?=U2mxo_u7Y1:^fY(ar(&F)(PS_lgtTSbc_>hA);&L'g5_*-vsb(GN5-Ht*0KD9cpI1.lE3N[n6mSa`k+@FF(T;1uAH=-l5G1D2cRimj2ts_;C6Gue'v_M`W98v-^)FrQpng$V`q*^_$gt6*SN#4v.(m+>>qZ:To_t+buXI0Yv&hQe$2/7iM_A5^Yt5=ZfhF*6GAxflFQ]lqwHlETGg1U7Of$:7er<@825E-&rx0oAskhv$3M[voa.xbue^J2-(j4Z]hbKps_%%LN`Y0ZR)B2jCBb8%T86MTcLpn1NfITh8tlplGd;JZrvbOT;qMmsON2JevaspI5(`vOLDFCNx]_8nN[T;n^DlB7&qltQO%6OtIfKk7%)J;5>`N.euC4nxK<=X,FV15:i6<4KiSp+mj`ufM'xcjNG3+FO-^ix9vQx2^G==Aa.lf*UmH)+6q6Qtu9$cs?c+0UdVQbuYWPL+&stQkUt?^*l;rf]mju7vf>HkPWnNf+.Zg#>DiS]AB`ph`ID?tAe$=CH19lPItZr?iBrl%wM&fTd1-HS,/CLQ7@kL8I'+##5x%$^/T;[roZ1>tAQTLR1,l5t*6'P$?mN3nD>3#L0hUnsHY&BpNYC>nv-92R(B@7S58&7uu&GeujSfqd+_-uSM=&DF=vtb:QvkqNXBG1k$E)pI`A3cZ%]qY@7T+w+qj'x%voZ%@O2gvo?Sf1a_QSOi>nE$pH9gPGR6b8(Jj61]@F9Tn4A[O7GDb'uDQCnsd:%vfcN@j%x?Sfu1oHZK`YgN2S=pLP7W:]A-lBRfmrl=Y#^J072ixmk2h9V$mZbl0Ho&dn51G.qv%fm?rnv.13ZTF2,kvDV0'>>*JSPjhbGqqP[x+34i&#S2KhuSFR0.37+M]%6-jNrw_Lf%YhV$(cnPMDbuRo3'+m9o(t.@EMM6N/n)4Q3_v(7=a?%>3lCgldr;HdOJ++-_.XAM@6Of,(ZLG=I5;EurFT5o1g9+//VQV:nL%FrJ`wiMRdc[%tBgl/V[X?(nU#gcAXxk%=+]_rl+H+MO=CGN:vnl7%wob)VU0.:wjusg$-UVYdSl'#?p[mO;q/`jLPt+VAJ'S77kIZZKg-kfwRLI-oP_t8P0MERZ[dO$r3P(Nbi[OTlrrn7+mJ?cFq0s5(5so$@As6`lb3>>tFQm$lKZb4C4>KEuS'2`a&@H%b#;6QS/*^sADGE:uW6%xEp&K$:FLIM4DEl$+fR&Z8jPh7vC8_12$,mX30kWfZr`w-fN.em&]s(L5.ir%toCn-+`j$A5(6WA*3WEH4X*S0H+'d)bc9&O)C[G,v6TUZ%i=o#IETKZb(3OH(,]14N5oewkY@qUIlxuQ,R65?>7u_U'N*Y>a_?$-FJDNi]7n+f-3A5DIu+prK9mbI,G]Jb.K:ln*oZer>9d&p1Oe-v>Bil=(9Cta7b@^0F:JtiG07i+r3Uw-sn5*ckEaRYx?SVOXh&?stRg-JGiR^7`^oTQ*VWb=c)`TM^/=+N6uVh(3(^+7uFWmj't5G;[1C.:'+W$6M4-;FVdSALaZg:-Cl/a8[s:J>ClU-rqa(3KSwPQ7JrP*%(VaJn;T1VC[4@g&Di:%2k5akFD;oiSU1l@d+kpoE8?E)gg1>Id)MwIc:eK%Fo$w@S(2C1u&E8[aa=d5QDqD+B=-N)B.XT0Zo:IOJNGnbe4f%l1`HH`EI2)`W4;VB:Vvc4]=:l>UCesE4VO9[2vp[gVVgU`u<4fat:-H/#6Vfl+D>l$8*`?B(vrQmG?JDJ>(ba$YpK,ib+ewv:5_9[L-4lJ6:/rmo%]:N>tVaVCjhP_w@.@=ga><4-#3=ovfvRQ:v:'6J:dbDa<7Tb1rt(g/E4SW9&4TOTasY$0u3rBQ-P0=cIwI.pA>*CU+[We%j34;b%LC&wbu(91Cr2U'GnNSe@:D-H_:Zr=Ce<2/3B]b+ATL[v#?^$go8X0jt$Q)vJ:p[O?'dIf1veb8f'><:1u(JJo$^PV+f(NY3_M$#[KqOTdEf]5JU)]CQ2n>*-Z#iDO<:2<5RXhYOb8Fb]`M(/Af/Rjk@]e#f(9T=XRx0jYK@P2@Vw`_JR)D$en[rt)n#i,r'9GnEuE:f*qqiC8;#[M)lCXr43tMZAO1]p_sh&:M8Qrd['JA-<]&8FrC:UfY['_3wk,G=Vd6sxKis(=O`C5*vQZtFn*#s?A4rF:6t;'4`23K[6pRc,Du,2aAUKd.`&)$iXHi:M]mMJ6#[R0qsg?ZkZZC^4Do$H6::v,^eos752jl+4wfB*ACk&:pnFiN?.:-xK[4Xa8'lTG=I9aUHZ6,,A2lu6Is6mMM$9OAR^AOuGNsV5r8tU?L>jsE?Xb`5imG+^U7)sU?396?GrdVcS)csaOUA+/7^gLq'=2SLYq*Et#4iG*(0I@'Wf+1;-Z@uwg9TUs&UPM%&:XlN1FjFYwXp&:4Jlu,xaf($DW,@Xjph(/bghAoE;Lh[gG/=_467n[UK%2N0d6?44($ovXcm@,/nr%+N`8?=$.=G:j*<`Ob7rCc*ph7U@=#s1Cq2S@Ta+T[Q8mUE%t*]2;7t6u@N+C4vHelWb&*T7+U?l/6#eDT6v*Pj-v6M90rIfvD?tcr?#`<&LI3b;[K_;2A+-jh>Tjv%Ycct'PmHANY&4X.JlQr.b=mL1))4c)lnU7P7vW&q9g?su.S<1lLmg0<6H.UaA+pj+I%.YEAe2-7HY`m^1AliDr(r9G1u*vVfR3;s71Llx(^oV?$Zn[eJY2V:m(B6O$[oD0ok6/Os9r$B*UxXRA8*v(-+#vXCXu#R@:>==UlT)_o5XML8&VO1bcq//E-@t0D`X3#Af0<<;k>7@FqiS@Jw<-15u^.dP5).cA@udt?I-6Aq;LV6+75)mGxY3d4Rj<`,ZDV1Kh38GMK>Gm@_f@Ht;I.Sd=TmZ08Kf9O$ce=Sfe^g:5ADG;RV5NSuqO1T2P5:vgsqV%Z/D9MNR@4K0eMr*JsI51Z,aROuZC3tMc^7v6g:uuk]rhUK/<;5deF+1DpWpnmKT'>?fV#fP_;`*NerHt+rP2HIb&.1[GB@tvqk&&M(@I_?OGmuKo'+tB7`)viDWsD;79,uouPMW5Ek4(VuqvT5t_/%/K:KORpcVoYFk;VCkx:-Kw%.(*r;I.C`$bS.%Ma+2)GeaTU+?dpdJ#uB`bXaP.$X5WUeWLFs`CpxwVq[#/`]FYOm,>S`JWtT-WTLR;^>BhxX0n)w;QmN.sH([Dl=s=[kJfj>8shnoI;O1Tm?#gT/%LeOA/u11aQnw2)wkKDb4Jd3'D]t=<4ueZ%'jt2>R=59p;H@)%O20i8o&/WLXHS7Mc0`o587'YN:-kJ8/-if(3Ui%bn=:x1;XhiF-_`4r/H-='c]QthD46YRMs]d[F#UDT-8Wti3]96@,*4B3HI*:giEvE;_TNW-kVoFdXfrws^M15Qt@61snCSBK3ogXMpo/9*.6xA)Z.4*PPLnwKgw4)[P6IM&*c&+7_W`KlL#n>$PaA_(q0*]b4Cv+q.VNE_(X6]K,q@c)D4A8P4b:`%avgbU2x(02vBu[4]Mt6,NfcVR[S>][a(/F,2G7H6lo59RKkFTnaMZ=dM#me[Bltn8vC2ir$`C+V=[,vX-u@%%.aQm[0sf(jTZf5;O3]S3g_Gh^sgPp1aI)uog;ios#s<3b&u2U>(j(5gh$O]X#LHX6#p.m]P1UNBH)2BX:pNkO-[tf7WXGt9vW(@cVN=I@7ttcP2dT6o&Hb1n]lG/u$x-Cfu5sVbAxD;-Zk`j<^lCHJ#,8;>:HPecQf0NDu-Pr[sYvd)u&g2?B0bs+exfC$Y2B?7`/Wh=&mMXWl5P0Hix]/db>Bnk`3)K[YAUgr6F:LQ8KAr7QtObNc@MvRgvtmg5p#aV[B>UUb'$Z[ch>I;ofwfa-Bwmvb-IJRqY5;G1i3t8P8e=AtWEIhk<(=2SbK$8Z6>_mVZqNH$oHSXR4dRTSG'6vr:7:8;Jobs-MGxc-8MH9cv=eLCc0r)(]m&o:N?mgMEqja`UrT0O#ikHYw;0eu+:)LuEUA1*TYQt-FXP5_Cj5tCpt;V.$@Xo8c`@5Y%.G;1l5YavGgr,uRp'r=kAoP2Xx.(%1=9a[Z&tJY^&F>T=Ox9v`Z*BGbnE2,2@bi>MFDai$fXE`NYv^@OEWB.E17MpT4ornkm(C/v--Wwt^.3ZkJKlV>#P?XuI-LCaxo,a%mO8hd4WM3l+CuKI#;?aLsw9B]^LpAZxm$.J4KH1[]wq1FNBe1&^RnNT5SM7uq7d5ZBdxksmrc4tmLD]u+l,A728sxu5VR3qaf8q?F:'i>2G?Qn/E]KG2LGE5xoW)v7]>OQPVp'#20HYaMajI_dHe8IJv>6s(d&#puxYa)n3R@wDhN[;T:ApnnZT(@H]ch2u3jaASsG=7mcWLu%`pK'7?lFC?@_qANLkAms0fu[mG$2a8VE2..d:2QA'-E9q1n=0kqtPlXFr#b>R*LsE>rsV]dQS/58r$5]J@pq+jOmo6cUkhWs^Kea,;t>T](8)(_CE%8YM.=S$`ax^HD)m*,f_Hj5CLfxA>%Uu5;->GdqZWw&iS^gO%7Ou5'8Lb]OlL_gR*Gr(JMI3U^7hAk[5cP2du,+o@t&grm=Z[w9U;cHo@#e,:$r-aR,ab9'c:s(^UADq/$a1:HN6UwfunT_2a#@nn0%M&YYNk98-7o&`AYn%b0`'Q=tRkIDV0%3L7e`aoQ%ND%[xh?luvs';?Hg42_/i9XR%ams$lTRL0^SmC@?-swK]4p&X2OO_KG/GplcILKoL:@05H/:Zq.r3,LivEl8q:iuij_V=u)T3;-r?sHdZi&D.3Dk;Ti@m[#.anEJQ0B#n0dF/W$_$4v_gK:vdKx0tiRiZDtImH(fO*;Pif_wkaDpTa", - "D>LfSE2GNko,.:vl[Y]K(G[)r>(d]IgMmf%3hVG2snY;[+ek;-.Lvr7I'4dM5_t2t.`hnPLwN*i(l,Uj$dsRIcTJ73q%@VkV-GqN<2*H3VRmPS:n]36G2l6ZBLV]k$NVljrG_`qZ%fF3=B#dbc6P^7k'^qW&OKYXXaPqcX^bu,90ag*E@X#M9XP2(Gm7933kM'2t`%=n39fKu3H?leE'24MReS11#vVW==LeEV-Fun?$:T7MFrv)vSDdcZBTG#Cq+:p2qZ_)M4+YLO<5d>./qoE[YW4h/luT]LxOOc]1rpm*&CTUxe2FsYaEMn5MTKc%@&O==`s5LR=4t*m_j*<89v,vYYHci$bZj$;P8-&U-Q<4ljB*^XMZaSs%u6kH.aa6tWR+BC'NhRKvIXZ8D6d#cF%djhlFx)_W7oI#coC2.*KxJl,7+A6$^`k%WPTX%aAcB.`ebC:2.=vun'kL0QfS&vH&)Nn&3bf?x]Ys1YOV/oS4dTn^ifg@W9ZXH?g[GO&BDOn>wub?uJ.l9I#=TMF+^h(Bl]OClWgac%9:ll8WhscDVRRH]c8LCiGZ'`F^d.k;:vZBRm(nn9(.7[>'l38(Y2=Q:c)g`uq8->G[VeJ(^m6IvBLS^t%;wVZ@583+CAqSNE+;?`619^B7mVgOo%1]iM`pZ#Ar0T7j1kK]PkG$^.08+:Qc8A,,ch@dJQZPc%L&]Wau'FYWeu(@BaK%E/MwTxGr@x8F(LQ#g:dh]@JnL3U,vYCn4ZV$o+LQOq%<:cc[P_a:uOX-2uci70%k-kX]t#6Ws>=,R%lh/p,(AxWruJcvn6A1Q?($i-D**5Mo@/2beJxf>V%kP-Of*nC.jA*3FZ5a0?(kj,hfG,M^fS2X)Qr/ou#@(*YWCr)]7hDWGV?2t4o:otE2,-6M9mVN:vUHj_`V3ge8w1V:OtPOq$h*+J8WuFp5=-fR-WaxT%OI^TM8weM`kb.Dtk[;AEP@T*/:CM'(-9q_*hGV`(=:4/h2bo_*/80[b`l,Qni&MZAUCo0Rm5UDD@O:Otj34tdu,U-2@4>PfaJ&RaaifcC&2;Z1));Tk$]lrN&bbAk)%0E[+:5Gh.*Rmu/?k3vR8iO^Wmc04XI.+L0c67q`%t3B:-XAFOBd(iR[3D;kKW^Fp]Mu,e@Pt-kf>W(s#w/r?O3np97ae;+j831ou#sqpV'2d7.v6m2H>'MZ3;M0qsC1'Z-_`,)7%$YE#:0gmk9t.Lr%EYU69rE(RPXo9[YQQEnFDY])Wj;09hJ0G;(uPcsh;_ml/JgidFt7d#@N:<,PTUFZp+LW-Wh)ID3aiUr6w3`NV7@`NsOCx9P<,%[sb*Ij^P*bI=SXOQH:/&j-H+4jF.MWqWXcef>kYv].X+DR6mpL_2olF1W.$:$#02k(B3P(N'0lDaodj=u,nkd-J9*D@+O[Qb8avY-4LW5;3sT&,b:IU*d[:`4wZa0*[8:D^B,U(QlC'[Do@V_@R'&2h#pE^jYR@foavRU2_)f>+0LvklUlgU:ig0.L.L,lInEfb`;,iAX-vNf0UVOX_#$+&>IX;AMPUaK7)b/_f7v0,XZa,aWn=4^L$87#B^ME;df2lV9']Kh4-v4P8VeG=Lc%mPDY=JBdCRv8XnHk>E'ov-H13gEv9t%v)t/M^_5+XitHx.qwUL]tWn/cf@YnVVEc5K?W'7v-4S#+tpo(4GxTGSe&4UFr-OK6;#cJbQ2-w#Bg.eQA=j&QZqH`'Ltt(b4=[Eo?f=K=^QMtcx)B$0I)=t`4lPaxaTGa#Uv*w-bvumXrkXXR#(HWJ9>4JCus#s,r3:JL:Cl](aJwF=-3`KFpfv&B07G2SQ+/Dh'7B%l>uj_n6_PKsaC5(fQ[&-p=[<$*N#1g/k6VQ1EvOUvub)Q3sL2be32=/F2S08pr0fRK>gu'?#oRM8?PD>lf+QwDBD%K$g", - "O(QDVukPu,jcP(NOs,F8**HsV@6QJ:;G6ER6fhEmTB'[_rC5nu1$+n9iPV$D6Y'<>eQbO?3-v<`rK3?j>n9qM.tSprj%LB#)4vV*Q?BsIGN-kd%dXcYX%LtmL[tuvLb;ZoW=T<@sZ0?otp@2ST`+bbkps&P0^Jc5<=h$hKs&@RmY0q_fP,?_qMBVT2f(l#'^0vf$#bRNFqOtwNC0G0L<>DacpG1Z7AG)BMq_ajmIxunPI&*`=_w<9Ve5_lrN,8F&+leduq[u-_>xkKexQeIonrRAno.0f5+tZH]^)Mw5p-IgCB.*phX;u>QU_umS:uS*StfAIS]dGe'Q'Jo:h#cVE3d(,YW0v8$e]aLauBLYZZcAmC?.m7J13qft0p6ne>=uFCBXIDZ]DVnnFY>C`EJaO.Y_K8jH+Skg3JaSuKR#,Lls$G*4.LUtnv/It>mmP47vT&hjVQfhJj/TM>tTkc[0:E&Hd*a-#UakU/bkJ&+euU&JVlV3]x@9jnXCOUMT6gxXqE43b?B0<+;XSF_d5mExds`%G&Qeapa&dZA-HmXeG5Pms?e%A-j82nufBn<[p&jr)CU>*x9E,PBtae1dP6#Y.xX7CYiU*QWQ^Y'S?093UjapO?8C>6oP[P@p(311-v:6V9-2*4/^bJ2[1BWH6).BY@4K;5HZM]o+0vXDQK4ELWDW95-Qse[1d(8g6[.9^Mld7d>`G?NZ>-$`e4`_s&Cc#m*Ijg7o.od,x%XJNJ3=SWTLlbvs(XITKlgQ)vNEb.QfU)g8EL_Zi:Q0nPt**F`Lk?H&>_^Y:/.tGi>g5L8wR1hY&ASfgNG0+1iWdbeAYsf`xFSh#]M7*pv#H6s4d[.8W-XLIY-.I4RNabuJ.m*/`*i)bTtl/&S[%#`V]ZPb5U$A)-`U73;frwH?^p/]wqN8oNeX2.Q_vD;D'QmD#0%_&esBVPuuA6AVmKg=/vJ$:bA:S>4v[mmA*waI2gF&sEIcj;q&SF/hu<=l>S90sc1bC7MM05_/xJG.VRcFR+G9av5`amre49/eE25,*sFaW^5@?Gqcqfp;`+MC'(BsO^Z(1cn]UF@=(akXsbo*XnEEbFqsBL-qYh]nxg@X?QV'++`-DVaZ?:v`@tms#i5rOi-[k6++VF'o]M6skiuT5QK@Vo;ICJo=[Nv*RK2Uo'CYZS(XK;RjP.NA@HYf$9tYUF`KQ1tEM?Fp.B$gC(6;%>wocWVZY,:d1v=xsiU5qd.EJ?6Ku5(1)gN(^Ce>&#-MmX%nuCm7@MqU)Grx>7osU8e$pNcOFrO$c0f%kf2rg6<@4h`GMLS)9oVT?.5(b?Tu9(l$+BrHP#uOT@hH'26cTTwEHjdwjnuv&?\?UPw5#L&-tp^PjW8e^'%vK4FiV-A7nZ43*98.&XLo1h9?mFsT6^M`%>,`/[ViS'HarEFPpu#BG4MLC.<+1N*]1v^vw^m_rHRVdF@rgV;7rJ?vSj/LYA<>pA._p#X'n.v1dhdt3/V^B3jk,W-/L6vJXP7g/$g@?QlrOYj1FV1>TjB*GdrXcB>r/gbsH)6FV?k9Qi&ZuL)S.N3bXR,+8*.6=I,T;>:^_4&1jwu,,eFmnJ_GA3kZJaNFu87SnFiT,lH&eT7M%`P7m3uDjHKVUg_+e'%%VMTLfOhW+v@l%L<8-6qk6ul'Co&c(k#v[b/,tH.Xx-&c-:iBlt;fA3[&^k65J#u6ULL+KC,_5rj4/q^lY37-lrR;ULjAV'IvL[q^<1m('22OR=Q&wj^:uU-+r`=C>,C#[sef@DlEVGi3FF;%L)Zwv6Xsc.=;s.JBrCKGZc<+YAEL1#SHp?+/3.xaSOZ(tq_WUqMpx800Qg%YRwm/vd1=QDR$lWc4?N0T^Nh/iFYh]N1xs1@BM+gIaSNhut[fu#Rv_*-eq:sfO*xc_VbuKjT,0Au]B@DQoT>5lFsuZmp61'v,o2sH(MRF8e@%WANkV%^b'if-W3:=(lJqt.8Ro0m^$#RlY<[qN>C)j&Jr>@eVQZbb)VK0_>#Z2n6,G1v+bdslklX$CkQADVQ)`'u(f?vao5+71pGqcp6Zr$39YKiOn..=JP8,I;q*)<9k7iDTuO^PwCDQw.Zo*s:.U?[^R6(PCS*SZK15v*E`r34,)Yf-uMV+FsK=0dZG.P7S*/(g'9w&Rmxc1+X+)s1mHllr1PC>Q1@7i)>jOrd0*>uuHLB_*XIYbSYA9&QJcw?Awtl4Bc.#h7j4le@PWHDOS&t-ta3cWu`h)8;FtCF:3,*',fWL09w_8KLY2Has^6dTnI0Zfp$$hA7F(Ld&^I,F6c*^3:p?Oj%Z7_1]oUNUeCKLQwJa-1p5R/m>-S[&1q.u0W=vf(IfNfb=xRdcoTmOR&o'vDP<7o+nu-kNQEOQEU`6G-MCHs&%am)V`pM`S8QRGN5ou,&K^D6n/]BL,0(+B=3'V*gPNb3nrlJ#djaNKlM/Za$:%<=;U'&_#1scl'>%Cbn)BKlFCF2vd&(>^#BoAjP&.d0m'Mkl3L+k<0NdDt8vFnAghjHPj'^DnnWebjMP:g#=jO)K.vLJTv9qZX%lVQbDs2b3]5iLKw5#)85eOd,-t`x/e1HKro1-&M&rE#1262%5)eJR4x*E]*5D7jH+Mn[otEI/#.pp+dPrP=^gmiLqf$JOn;84mk>*a%-Qi,ns-]rE1GM]Z?$Lr[dT'39J^`cAQaRRB0J?T07s,(J'5gvE-M.Mdk?aWG,j't35hxQZ+;RK1-%kr+:r$uk>d7voI4[[I,;8?G>bC8I;qu&]wQh9?;Lc9-3S@iVmtbiW.ZoHqcnWo%YD39:N[1A19hW?7M^x%]L1Nf850I;YMjBKl?74^`P*L[d.j58d6I&<^iA>re%u(CR*swbSCg.dRA:(R(t+I(&Hr`?.a@:;b^tIlxGuJ1@>ilEi;*5E6#sp7E/ibYb9-O,HE-$mSw,Q7l=0U$/JC(cZu5TfW&<1[xJR6I(O;/8amNT`c5`3=+uReq*RauSo[*vt$=&<^4r#QOecLF=o(2]v:&OI0>?$5Z0Y&l1XxO25#;->xi6*CH:lAJ+5en>M?u_XY+5tBwY@df.-3twh%Hcdr;m-qL0]9;r_4.Uq9c-dHjrLI)JA4E@J)hA_SOoR1m5(>$P=EAgAq^QYawm?0>kR?t#M[2e[dfnl'LNPn^+GPf$2Ah')_iG+MvB3gAvKd'=3+L5m*)?jThJ@]B/FaA-dq`Rr1plx4rt@*`K$w*UelCBFSuu,fnTPHnf$G/L*%Kx;OGC8AfeUfO8Ju`(xD<_*uJ4X%QsfS%m:2[@H,[BNiTf/fluZ*uG+=1UDka>$Xmx.H1>tAfn3?=tp,a/B6wrS.M+T2ulmpCDJ#Q6S%ei^(Wk(KlNBe.qu=^JjY@8G5%9d_N&v@tqXS,1_X'D&KfHF$>qZBS7IEg:>te&^FX2+:AIXCa#/0,=0C6#CRuFw4r^AsB.HK)#ehPQ+r086#uhrhPC3Z*^25xS2v;<]'Bfj$:vobmw-]t*HX:?aENhTQo@?e'sUkh(`N7?M3cDjxb^r5;DV&mWKPKY+I9]`N'N14g;8irO:vN@:3S&_u/h2fAl,WwIm2?d:;o.2)Pn%k1l&mSp8v:Oagdx(PJ#f<^v$*UrTRCMk4`S%f$kcuFY#Oh#GVRiXOrAQp8n^i4u6=9<%/&)s[+F$Z9va?':ZgCeVoTc.JOc>J?WFb3$2.ShG&r0TOn2+kL'fNRNSj&*J3nko)U2@V84VCDOQH3TnI_&b.L=6@J1ImJ3FfoJSYbVCI0Hfr$9s$J.L_OVnS.Qw9iWOPT41.KvV@((G1h7^785da)ubcRVK';8>n?Lap]5N+O.m8sJ#P]Y@#OF+R[-vcscDOY7vneq-JU#9`QrA.E@;KJH.sUhf]_rPo%(I%T_8nK;*k4J>F^)X9856g%=dsntJ/QKuNmnU?KSC6:40Jd7vJ.]QpZL1UmBq$d@$_IA/+%@*=qm>DQ)?*7EC4,wsH(9LQX/6K:G7fW*ao`k1HdIiY@KW%OOCh-v9ApE8i#2DX,jdSXqDHN9V-6vu[W]1KZgB%t*xxF.e)+w8Y7tg9W;]?oZlk>UXHELnDpP+P,hrAY1W`jY+ifeXH]s98HVh$6d.fpj;kq#=irtnhGf_/2GK.otiIL>)nM#HW@nEV&l+tdm0VZd@44(xRWauY.:WmGkk4e-5h=cC4_OsZMK[M8hV*J>^OlA]eSXcU%N(BJ4N@VvUqxQ0sDnOnDFP.EBC`_N);afQ-b&WNweNR0?JsvQ8,2koSx>qf8i^xFZs1)v8EM$L;M;gs:tq<+iDMBW[RE7#JWx@'U6IiS[xb5=pN7A.EFLOG1&cKvO^jY2uQ7I2s&-j=R4v-QU&fV._uVDnLY52<,xoGvSf(]k$N%nNAnilAIo8p6?BG5igL3(JDJgMd:_*kj3S.lbOw0h8BZciT1=)hg6x=iwvnqw`Tn8iHbiGW;JkIbeaS-N=24v&e#VdeHG`*<>aKcATu)(t_TT1&?s%+KVxmU8)YkWi7MB&''Sb)&g1x4$Q#M7.c/DVbf:S@p3g^mXA_0?ZDsF)ge.A=&33C`<&&)tQvE3qo$1dux9P%0?<['f0vI'v4/Gvu?PhB.,^>>VrceM`6fq^%tHX;tGRr,HaY2gO@Gc=7WX($>e[nlh_+7VpCgT%MuCR[u86=/vD[i:Q>AlZbES4GOhcr4HUhA$v_`3Ja$=ftN'rhSMuk*X6?CV67T<:Ho+:Ju*N1ZK,2sL[ldAlh_j)Yu0Cu$LU(pfd3o_o9KkDLmLj%Q7%qDZ[$i,l4tc3JSgC/C_N05v=,awL7TD%CN(j`6o=;h1bpCQk-t3L3(&8:%TJWnBTqoC`*ve=P8,4#S7Jf%4,`VG(R]pD%']#A]2Nu6%#oe:stSS>pK(+U#V03ru3MwXFMrI8:Yx(rUn_##r2uh*(cdd%f:3hH#,/e96JZS`3um$*S:5^v$5TvGbgZe%)'au.`ns+6sC.mE5,s'C]^jq;=;j,TCjud$v*tNWRIMO.qkxP1AITFal)>,v`?hF[3Tc#0<%O@jGD2AbeUvuHnqU,A&)_-5TY;PD+`IB:UdxOf>NbL5r6kZI*=056+]8-5CY7vgOUS?U6r_)pHaKDWUh-AO]HYUnd9Ck9PmDnXm_%@]n((.?Edkh6R`DuPdA2u>[L&?fu&uMkYBi[hWf/3]x3(?,2v:XTlGb5/j_NYc%-)gX8-x8q'L(W]Ts#C#&A-X=UfG-4Ct[jGWc=.rL*[I5om-cj:Q7to(u+Y:=;w=0Jm=9danvQVgX(k>Wd+wLMD6_I='K+Kgfw30;qu*WxF/3gVtHcsVHrkW*J4gf*9`bu/&eLC7?LZgfPGnFECR%`0P3ca^JL=QZ=t.sVS/`6ZbYOn8vQ.l^#6-EB641*]bdhaCUg,]['>n65TwnPv9Ga[HV.UJ]SlreBDYlQ?Ce9?r&%v7P%IF/iYxOkf)#L-=Hl&Lpx)Z%3FmnWq(nNW0s%v$;s4vQ>O=tPdSC8o_:rUt=X6`?jSDtV6?-HnWKkA(L4VbBH4Wkj=`Q@a3oL.4H_s-:s-_D%Un^9`@)gYYesK[]9mCk@WY(^$u-<_lmw]a'EC-to^X,Kgc:xtR?D7_e@#pK,NjuuAlIhGkVv8V>$BZ>H$DP]L_CY>I5`n:?\?meV6?.;U2h:s=LO`mKl#641(c/HoDMXZG2J&4U_kB'1'gEfgIix35qrr&s4i(%v,rYLg+RJJ9uFtCr`a3_,X4/]XY/n[%W@$xpo6u.JZqYR5U0bV5SPt'#C7V`gre7Hn$belN$^sP0LO7wT/NMH7mArsF-=Xe5v1B+,qH2G=,=Z3a'4>W*D9jUuAfh*s7'eGnd#aM8@EwBke2RZGXj?Xuv#%P'ta3P?gb?#9H&YtZAuU+HQU-HD?k'/L-@[W1>mx=*ops%7gfD<_9ABZ5whFe[s5i&+*6dgc@RCjYAQM(C*Z4Q%232th2V``#7Fs&0+E)1b;_A`*t5X=Y(YGb%UM)^NdmWLOt1fo1E>AMpVG`3lMBxiI>OEvH,#0QScjk'(*mWdYxO/*1W*=YSD2$fSQ2wIL8Sx:m'v5md4]522rP.-bC%k+rZ^Z'g5CKP7U/UcQ:r=;0kAp*kjd&q]uqnY<#9E%[&+@[,g>Y2LVH3WS8uuU?SW(sc>[o'w@IVAn=Vxt.5o'_>j_$Bd_-hucLFH5N*?i^p;jgXfGR)(]WQ+t5r)8V@'S25%p6eV)u/$N68W*Y8jW:v',.e&HN>C#WFjZ[Uj-4ZOeIf06&@P5$G:v&N?sFr(c_WlcxF/uAS7_-#[6AFBssB@w.YZbVPl.L%(53t]FnNGpR`MQ;q$P8ML'>I*oZ;>hQemOJTD-cR,0K.hAflu(te7Rl1U*BU/$2GZ0grRK#Dw_;^WQDQW^r?l3*65tuGAi3_FiAQ(7$SKxHXXH+G_pD^<]@*-7qfG>5vEKnX-E?Ax0Sa$+/]-,;HnE_mq#;jGhNY%K$v`Brauo)uU(5.RLqU._>#sx^[82hhjpcsUi8$nLai@v?uM)Vfe&v&bq[dr[D66q:0-'h(d`H,t0h0tBr&Z%ZN-_7<9P?.qsNd)3cuC/1Vr^mYj>?0oK_n+Qfm5rk3C/t`^mQY:7/Z'UsdtjL^SZtQEtoi6`Znwl[j;0(+3[2u=Gn(A7v39KRCFE@XK1:`Zp8=ueHZIa2sE9=rZqihY^Srx7vsYp9.-:c`(1:5ipkgWk6dKtHjs_Zb2rCfs7v;FP)ah'E`saeZr[XMs'hv)q3vLtHXO'<_rXJ$MdC+s;=o)YF^$G*u-q=Z2(2:YlTEr#=td[OBS7Ba-WqDvbgKfBflNoj@qx/0JCg4%CqXF:_q;wF627/Twr/599v-7o=4Ij-(i,7mfJfM#&0%Dm&mj%r9HN3U<#x.Lg&Sj$_js]S$-;?2PZ+2btP?Crvs]M0:[0xSWSr,<9vANTWhSWqLeSubOKi1TaX4NdvFYD(/P2#hFr(h4`aQ?0#]6:H/QArQSCVQn:jL9QS=hxNW?xfsW,qW2r]CKk.:;mo)`Bvt^9gm6iO$s6maUDH7gk9M7u4VGkc$K9QF=/M]MF9duX'u7v4vtXOrC-mECZaHlkSveuWM.2,l%W63DPK5U$v=V+JG7?([rKLj*[GRq3dpwX17[ff'U08.O+JlJ48@a_S1ajn)wW(H>s)>a>-7?^#C,/u19*ca1*5):5?+t&R%M([+.A+YDYY'9h@Uf=a1S&I0g;f6gpw1q5o?))Zcuf?w-S7^nddD15=7')-LP@t65-3C,puN.lJs`NA)nk%6gpr5%LQpt?2>aNAx;uT34G.#6`N)d34Sq@)IW.@T?5vp:HNY6rJrg&S/ifMR_[w=^Nl_**Vtb`1FjbO-pJiLZs@$f[=Ij1=t;rb*[^]P$i]M`nNVr?MP'NG;m3GF8'OUfJfMKnPc+F(XvmFu;eA/[rqYB:-#Cf%=5TUqO$XH#JMVxj(`;[bRkVbu.8gutQi),(8uIrqq#>M]s7+g^%Y9CiWdc#[U>Y#IDv+rS&FPn5`Cmr0go%32JDQcJj-Xjpbvrh]#:eLoeX$vK-Z7q2v(3C8U=.V^EtO&Kfb:ju#[7=TWI_0BtwZV?:d6vuU-fw[gq061C=Lfg[_?OR/sfGj+Kl&Z;0Fn2,bKlR/S>uo4H5(ZT.v=G*fdJ?/]VkZx`erNZ3R:l)2J:jE:'rj(gVA^&McVgo^=R`Qm'+HUn7v1SV:qe1-VbYJG,KC71:F$ew1iS^8h3`YX`mSAe:qT$HHdF)%:vVLuksm+#bKq)Blh>kupKh:?VXaxIku$XZF2dr-;6d)fiWS=0Gb`)0*cUAiau:Xm8i]#;ta$kEC0Zx`.L(mPLgU?_rpWGbn-eG3vms5n`l?X5>VNlRM%7fNsK$Ph:dx4HRIMR)nq18R^0k>AqXj/P?iiffXuQXV9R9ll9Hm0x=u^_h$uet8#uv[ZRh)IgwqR3j1KuFcnLhC=Ln0Oru^3dee%Mc%.Z*km,QEf/m$#po3s>c4[[#D_qM;M@ZuMcaq=/8Spo5R3o&=a'_ZkYJj6;QVRIWqf4lsHCaQSaj%NnY%t6OG36vKO)/(wNA%#[a,wL6t?AM*=:YqI:&V85vP:En$_(MZ.(H1lffqe%u7tu'0%Xe>-+9`#9Ux@W(<)WnkJ]R`ON^)-j+8RV.s$L@*v$L=>U$ukhu;63Mj4:$m9[_[63xa;.Y_Fr3',@u%mCB]ao5**tAGs.LNIgP(q*LY2V=S-(jH*)OEPoH.oWM&Cw@d.q:u5V+JX?M,A7ZL'[RN8NgJVtB%?JsFD*o]kWlFni]l0pNS8Ht[3pNcw<^V-4n&iu%;dxuP^]%MB8%>(YHcYdDc`58+U>ki.EvD:+Q2mu5Y.*ug9V#Nhq7J=n`hP4-[i,D<3CS7iBxIa83EPnx7UFr?no+Kk(L7`_?nodA];WL$&.E.sI*223bKRG@,e.eA0P8^q0+eu?k&PtFm2;-&NXe*S%*Rnh0OjKaM,L0Ov[4]Q3TpPa=Rpnd[c%NtXO%M]7-I`lLJvuV:jlekD->n4U(hb>.Ze*2=.WXxZL#59fk-tR*t@7(-PZ1hDDI3H>+bNoNgIf#BnRD^6uubkur:iUh=3eIk3_*ArxJ`aNg/W.B,>_3(-5<`=GPFAm0)F$mB[b8aU`t3x)4vvgIfZX$9Q_wA;empqVO-oJ#wu'cNxR0`ZAuTgr0?iVUL,8/l?U'CdIf1Nj@$NON&`3bH('w2T=YovZCN-3xtTsE8gBX@$Mcn&%GOs_Na2r1ksXi=)B2@&=ZRfEVppuSku8qnOg@CRBuu7,+YKQ/29%'[eM8>edo(9*:_lv&6V2)@XjVp.QwJHY?Vm)Wn,V'lRb-QYV:2&8[SI*T)kfDeMPIub;@tDvF)_0'Z;@#;)02?x=lfGUbt9$>mv>FP`,p]_C^@7gL+Sk^G+MJV^buu]Jc&D;uEfQ.-^UinW6#b$F]2aPb`s^aFfsp+LB>^;.=Rrstp%NuR@nFc_KqoE.s7X9L7vYZNrT.#]05`tAKlaabQPj^`SsW%p7gT3orYhwr[@R,CrQ9OP>FVP99nx@&ei164YQH=mb*5wwwP*%<2CwA(J0:O[=>V(&QYjOZCo_GCWP?rscXt41Pq1-jBYPDZE&-ZtqF'jmX>%DZTjP,F0mBu^7fmCd+rXws9voqkCW@d%N$C#1+L&EGgbA`1[/7RP*#DYf]AD#NuPR3m?]aSJsu=b=7uoZ>LR1(M[u[WCUmv:>a'Ew%@uS[kErquI<%K*70E1s,Er[j:;$dw7>,k/:;%'2,^DI6`_qQ2?-P`a%(Mg8Fu^Hf5ZEQ1Q)BVll(uE*Sa1>GoEV/oJA=.FHZc(kO;6#Pna+/'W:vP#5kE&/B@8gL&^JDFTf'tW>Y?fJI.GF$X6WlXIZ6?7_tLThDbe_J3pGf.q])ndj%3tXU;qK2L?8v%wcUPMUi4E=3dcgs*=Wo>Y@RIp.O:ZQXP#vOvP'vmD?_*XU+/gQc1*MZQH&dQGEsRS>>R6rU7w_eLqbk(P@jrN@ts;^:msCZ_)VgUCa0b@:HfJ)6u9u2:-f,vQI-,DJ8$u#RKj94WA2T5@BW+2?(_XFmQ)8Q)#UUCc)I3([+*[M>@r?v8v7C3->lA]Gl5'`4W7x[H1mtb8fB9:g,GxNps%rxaG]Y5I7w1%", - "x)=SDWme$;i%$&9+v?\?r+_mODO0Y:H;ueCmG75qIDTI48,kVfr%&GEB`Nji)5/dCk'2@,HUoML]P7(7IH$0?8=?kMC9v+p-ouIm/dlj^M,=3pt2DR_wO-ATnoLe@Ojt--;$9R9YgcJ.C]u(U#vI%CtD2O@t1bxal;qfQ,#I&kG=t9,_sd16f-O_?jvKPRXTk[1OjsHcJFrLv[m2fX#TZu@l7u<;Jg5WX%IP+@c:lq%t5vaS.0-'/HNLFAu+Vf5j=[[iuRng%HVlPNPR@@sG@I>ntNY>Y;PQ-Lws3>;;5s#:Z>(XsvbGVuJ0fZt``@8u*jM'lW_4j^gCpP+LbvSY6MG)L(Cb-l3nc2VhwTP]nMwoYaw]wt`ftfo*4@l$5P/mWo_OqZh3gYn`,(9_gMFH79sinkE2;'b:DF`(fl[_kSOZXd_#9gkL0Nx#g-N(jC5`00Y+r.%>Z&S[c&qn^cAo@rUS*3=Zk_6)Sm%gGB#sj^Jct2.uMfKf:fC2*5;A@ORNP5_m%9rju2YAVNHX#N9Jwo_^IBTBq.7L.qD28<7qg0E[_K?hoIvOQq3`Rb^7apHBSpgFrHk`.Jt[YqJxC+MlHx4:vs>PST?;PlA/iuxuGkd4]RgP`eE%o3A17Ht]l]BCSNZnR'M,w$#K7^#VL[5nvu&%nj=K7^9#pP5'.+Y^kiUN2[>7Z@fPIoj#Tk=TNYpxde;nktW95=VHHlJSAfC&&1_4wJs87/an_6OqKHU#.bUdZZ'komr*Gh7^uP7.;rkfmP=@Ii;0t>+Z/:.eWf9.^Uql203`qBS:EkA&_+/(N%BSQ&o3]b&T4m-)?n7v>r*]Y*&bYaUoCTMC-e`GQB%Se^A8-kS59xp-Z(vX4jhAdTt;ZbDuk@Uk/r-svbT)[nK`hq>j9:tM`o7vNlqpk.5tlk0tr0X07rWfmo`+ZCYO2)fG[v?G^o-sO'rtu&+Zt+Cd%.KL?HWTLq;*LkpuDKUDEn1T():,&R[)PgD=(uGft+2%nmeqF>e/L)PQg@9ldVV[uT#LN_xEr.*f@VpZ[F$uM.:`KPt2vNh4O.lpP:C$_fskw5-IMwfmBkAEAP*P_>Mt`9Bk&LC&A;+sBL^qJC/:j5G+691Z%=r@uq[Q9G8Qq_V7rgJXo5*BB]ub-Vgr;sL^4'*`%-.ev`#D3^U[0pUfq-@DnmdEFwJeYEJM@)>uuJSf7v@Vaom>`e;2*WYCVq>4_p3SA4spV&3vvZ+tWg;q&NYp6J>asl'D$boovT&n,F/x:.j3rXj/vsV=))6rJYdcAE?F>[@=tNG@>IJ>v]N)Ue5i_N^nqlhnCIis,lA7..(sC/@HL3i7M8@@N;-5mmFr9bB'vEF(Fn3s^o>j.qllJPTH7Ik4o%C6Yi90=[Kf8Ro6u_+WfH#9S(s`DxjOT%=38@alFip@oK8hRv)cXeCXKKigKe;9J>-D[l^j6AjDe5uq@If]j_t]__4c[GLZ0xbY^$YsHbsI2;U`(tR#m(CUPHYu^hDU>EQm'>6dDv$X-6.LbJms7iD5u#o^>6GZ(Q/7ilmi6#d4L2I0ovbq9Ml1kTBQUNHxC(vOG%l$4djbs(Tw[Eogs@*%tj#GCoA*o(uH1-eIHQ/o1MT&Z5D5X+_xxtlHQe'uU$CcJ.+pgQg][uNI7K*stu0'CDaVn.Ql4o4h>'a;..RnLkh8-nF)CPA,J&VZW>*n.VYXU;J]W>`gb-DX_:^oCb`@bD1fYQKW/veFA&KF;e_b9DPkqQuFE>rSDede/k)3h48fF5MS)[8Wm+,reRwrm^wd1KIkIk&<)T)Y3pKDD?6Ja2SWZZ9V-FGX^AV1>u3PW2TKY]95D-0?H,Io1BC#rV'8HR@g`N;I2jT-Z%iY`(qQc;OU]K`VX7lsT;x$H^#gAjVr$0u[a8[4sm)?uM%uC=gA';m-,NqO8)8VqlFA7v3aU_aJ`jAZB`;fQ5Ax:iqfC;uZ(KV=[*6.Mlpcj?W,9$u5;wUPk-&5-92RLfD)^@iG#OqA4EIR,]7i[6O]c+>Mhfqc=)xo7`;'glWN-*KtZNfu5$PV`$MQ<)[r,(RFc[)dMIEkNKmID2u0L6p]wl(b1+dZ;k&+.(0Ba'G5[i,LbwB,b50*Sq)i_(/?p;pKB5jEOZH/3b^AG<.uatNQPd&i#PQb9vv#Q>^`U`HNdL(&vS/weT[,W:&25#nGc-#*,E%+W>RaRuuUP*H?T_N%'9m3cl:qT]Ri#,[4+Hg&rmhBu9Yx3U1?l.PA=:v(;0ksg:cZ.Z1tq4BH&NOU_gKmN-t?rR;^<(FUHs%R8IfV3M60Ytexj8rO08dPLFfG?)ll%x)#X`mPSZfa,oxb0?atLBYHwShV_q#*&$K<,#W:gD4Ihs@uT@N$%;#DEYp9Xi%*`W[bRa]:l*g]ROwZlc4S:qMBl>W1$DtF%s+Q_bFDaISR_9v#'8Kl`:x^W9RU-:+'(buc48R7m6dDE$Gdk$SdveTqiZEtmf7HqMlC8fg#Ld*'(h[R;09Pa[8o#eff+JCF_#qu*bfb@s1vvd]g`d-YnU+a]69^d-[n9kRv2x(c8Cdf`r'`a,UP+LZp4-/OFmub=bEA#G@-VMBuhAOd?gul[L:6Ju)@`nA#q73XkIu7$=$uF3h=-Ws9RnaWOLoL21>#ULBSm7@#B2xZIH%R(QDV&g_WU$AQ9R&j]A#'O'_a8Chuuo$[PbB5sVSBEG6r3'`Mj`xa9QHx&MK+WxKiHx0(7_HtEe;q@5<-#NZn*]<3hEX1&LBYX+[fu+kiqx:a&+vfI2", - "Y#gDu4DJ/.+>A_(hgCE[.Q_x4#1>-G;mR01r-2Oj&#)^_^N',.PA5UGrsu^Sc7JQXmCeOLsC^Db$W0:rKrVKJdU0Z(5.WgVmsHc*p'G;d]*aVK))8%>gkT6llPChVcb;#Y;4P6;qf/S#U-jp+ku&o-gA'9kr0wNhJFNIV/T]nS6o50E;(/1acXHXN6kFf25T@hjRqRRFp99YbM[dS:[/j;lb`*Q1FtDtP)Nx#topqp(>r6d78tU.6&Jq1l;XCug.:8S[r?\?#(/a-J,^V+f]fgD?qQhb3hC6t:enB<8w#gk,O6tUs]gT0W>ru)RMn+#w)Q2u^v:t9%0xpfQ,.85FUpY`vf^13ho8^n/vfU6wb%j<(]$F>%7uZ_Km<$928wrd1K=$W_<'s)@n'Pd4r%=YJ9qAfTabT4&vQ`46a`QlbuvDwONA1QBA(we;J)WD5*lB>+`5K4ul=?j4v$n=^$Ct)kBKJ+#vi>r6HpCWeW[k&Ph$0idF/9v2,B-8f4-wt8(f@]XCcbfHKE`sZ2&D@#-,VFc%wUh[YXN]%m/9m?hsb4v^A?JpL*7Y=H7J<5a<7ab'.'ms@;ArJdDepl8-l&^_oh2QoC:MQ[W_A:r:^WcF[w9,HsCd4@A-I73Jq>;f8^/vL9dJ0(GAdM:4bk$gcu7vp*2S@nF?,tR;JghE3&,d6(bR0Yl@U&C9cUdKT=_fn#,%=^(bj:F8c[T)lmCtNP&Gf:AuoqGuHY&L>&(NY<%@*Td>kQH;m5J=AjwsEs<8Xdge:N<.Ec5,cCvuS5AOg@42iKsVN*OtlAb.2>$;?K*?@rb]WJkr`33Z#4m^8+/euXMYb]81ImTQ$%['S..pF#M,cgDW:v-Fw:H$.(CCt2tPd3p:[]@$?m4Ghg.L_Q%BDB%R20i2/)g/nE&]h%5p@^.)>,HcebhY:aDuikSGiHJ4q(=_C5Y+pxbu%Hr9dC%eS)8@AgGR(Y#Ppp6L>[r_0v<:-b]$?r?ti.?X#Z-Y7_fK7Pr3mVOoBlkJ7nIW?ll:w#uUd-*I-wfBusI3a$V@XgCaKdOnL#12Up%n4vDaGuOqG5M,0;oZ1Agb`<1;$bge(eMM7m5X_=U%DqW,P$L2H-$=xh`aEWR(n3grGL/r:A*vA%aVuleuE2fJh/W+^M_a@kGiTBbmZr]hW9dG,AcQos;`u%bDDbqVDdu5:(9v7Icdu1](F7#kg96qZ(o%2b%nknm`BN;mItkjRbeib_S4JmVLnu'jvTfYH2@tYcaslfh1b6?pDk&e`q8uI*nAV4ouEh&O*4ROXf511,/M>7L>Q8ge`[2D#ivu^I_Lp=/^4vPboNnCs'5It&tH(X)jwix2dG%^k09v4,#PKX5e_*#4G+Lh7%0WY&Q#67=fR*R@A;I=*&WAIo7vI,dgcuQi&fd,ns3vWsq+#J]i-_*`;^_7%#O(g,nXO=,g:5gD,VCMKDa.6vKdfm3RvbDe,x08?#)USunQ)giiHfn&=B5ErIFDRn/&E3=41aU4)awd&B@Ku5T#gADl:b)[3eExk'X=esS$G)t2P26$g6Cu;)g*gM5<-&v).+Xn57R($hE0HBAa1a+/f*M=sC?ZKSdDX(?h;m]>mA0n-@067?xE&jh[dIKlS&qTjL[DKuNS+x+g,Ko(sWGLK6%UM:>A2na:ZKiDD.9:w>wM,;GE[_ER.huIUoeP1d9vp:UDmHeig,Ei6oV=$I2hBfT@[x?W.sp)6bpjT@7.cn8;(-YqQI6AdeD2wlDNAnnLroG2^n:<1CDK:6onP=9q#uo?D2@hCG@[v=aN$xOQUSCu2TG=uwdtq2R7@/T')r,OW3=Rg9jo*Ui:Q]7(I7u7/m+jwCAj47K$gxm4aSUe36`)V7WINmE019]1)'uocYuq%S5Jlk;J`I%@7+019n*T)C<87Jk7S0)*;G2/tL>q+qd]UIceu[2pSPj>u'*(wp:wq&?D<%q,l0P(*no)6GR@`O+mSc8CUp))2qsK=u.>t(?hFijY)Fn?%t%F=Sd`UTIMEfi^E@q]4:J:lrpI4W3xxZL>-k=jRB7vL:9'&nv+lEU+ECQnTZBT(vw;X7)&_+rA5bSiF/bO9]x?RK%=:J)eY>3Or5iR*HrOSMe>XkcXw(CUR4$j,hj4Rnttcrun6LIR@4D?GuLQ^axgi0u3Mp7uAW'&N/2oR3ZX0pKi%0Lpj@a_nAK8>(:2_XjlkZ_-xF2qm`TZL=aV42mH-]7rUJeY=20Ho=UfuZ]G9$EK.(K^3Hq%2C0d`((Vd_#?_=Q?_Af^H^ln5fiZ9=4*_hHo%3eK]#3O=:XWq^L71v.,2w:]Kv#NaQr4Jmv^LZsTOO_82WGfardE1B;)aaUAWKH0G8ZpPfm#KHac9MSmL9r^BHi=L[7)?Af.$dAMTHK]u(MFA2_Q*q.[eDK8", - "])T:([0wKo6,M9DaK>7puDY>gp%tuw>LZtEFZb@sZR--fD)7-*CLiK;A%9v4vf1q,HmTcA6(%b$LkS/;Ee:Z.7K)C-8JuKT2=C>8dRNDf3lk]P`:gTr5%:J'U$o[D1DGb^*TXmTAl'_ghY-12LlARK.#xOEr5WpJo$:in,okf_A^Xu68c7ub*Fp'RRltP<'/^aJOZt1sPNV$AxAT*L5fMT;5)IlP2<:uG(S3v(/p)n?'vD=gC_Af8b@5K27p,s@-=ZNh#3nK0d7%)pBicuJn.,;pY'>pVqXBt'e_eJ7SOf(hTiV>ScHfs]D@Zl7Tlglcbo-qD]uiGe(bQfbNh3tab)Gn.&]K8#Y?Gn<7Q9aJT6D(O74JlYT0HiRCOn%LNIdI)XitkH)_iohnkeqWs:Y8w#J`348Rel,uDUF/gkp_RR1hdP)?6uJ1kO-$)@`6G7sV6U1eB*=n8o&sIQ:vi8vtdMfR=Kj&ior+gPaW0d_%Q0)oPKXEqoK@u+(bUH#q8>I$12$$o$n[I,=F3jZ.Lnf(O7*KP=.>b-0'w(GX7l@$uk5*CC5pjYIu=m*=ui=D^$nD=D7+Wm7kua=cX@(Ij6qVNEnZ2)AS-v8:]n/^K'5*BS](2L%k'YGHDXaGx-JElN/2iDptE;R()SgJ+(-5iprLd&]Jj(9o=Sa<>$>tCa;JZv+N;k_xq.:lR2t1kb-7,o+d,L'2Wk=b(8)ncs@&0q_txjP-'*MwMU=mtm[[E4`^>+RW7/.Bx&@OMU>U&,DjkSiRJ/-E3mQ<#3i^a2KYXvKM?DiqZZKcqdSB[WP0O`1@PVe=B,?u85kQ4dF&Q:.:j_^vm=<60Y'WRv?G=iI)lA-I7:&Gi'DYCe&F%gDJLb&[Q.f#X*EQSdU-cvXcaOppXqB9F.Q'b%j,e.-fbud8q@X?F4XovuG-2A:m]lqa7e)gBoqM.(Jw$0K?EDrH.*,q0od2jRT4bI5[)qToIKAVI(28.,,2M%rJd_?]41KANGL1<+)V2-7mfhZuDUP>a&c?G`hHHt/=^rFr5j^#a#c_nN6pMFXsaXlodA19^uNPf&LtM@9@F_T>lAnKiG=m=fU@+-Cb9s+Gf'q#a_JaPE:IT?qKr*JrWjf7#*(NY=iKu-/%fPha;ouHE]fIaH0:Zf>(@tu5O#)tnEv/f3SaS*eK@2L@<3J7Wa:HcpD:K:AgN[;2dL8Es.Q&dLKtWNhbkIqT3YbRW>,Ft[@cf;^GAub*IW`QOR/c-8l6+Lp:ubs(#tFVw`0TB-8eK67U%GMd+DS7qS41aLS<3dlL=L5fX%am7*n1X.m^r6A'xXlwbqUfe-056x%pF9x*_oK5-]I85fP@t:B44(>R3MmICjp'HZb:coZRl#I-rKY*[iklF5[3bADWlcZL5vFKg1K[61ph;]S8l0`-eQ^Q;GBfOo%taB:f'X#p&&cNwP_=K.0l]#uVPQOxsJMBVDFhHrjp%DbY(B;thX%RF+6l-4nj0WfTVM'4xtd48R%]#gt7)h6Y`[=E+`k[$9I`T@tY/]VK=$/oJtiILTC`A`Y&KjSO[fi0V.5(r6;UB9ub(*Y)+-PR`'mlHMYWda91QOvuva*aGC=9Wh5kG.=,E*Mk$q5QiaA9-q9]D;>.tV9YTW-h41aBu5O<32TM^fV0-R:v,L*G2KInke$/WR[('Aw`?Ou:n<)^vkt-I4EHIAQ7EVW?trUJE=7_[_gP]=DqE&)oShV;7t#Gc)K.6T'@vIjAHoGJkQd.5b4v+dLm(uYd:`bt9G'#==,h^h@q3-+)ne`W-gkC])Lpcs/K/66nj<;YUO$vIfZF&E5vIE%kfDd=EQ*9Wwn'Q3DdB,V&f^#QTZMwVSjWapJT;LcIcnaw0p(*e8qd=9eu_uHsmhc2x)kP7Z&dwX9u:p1OmS0155jLs<@cUcr_T2wHl]C)DV.^>'Nbf_[,Q/La`o;&,=YiD(N.OFl8.I3R.8=au^Z,k2e6aJMbEqlxR_7#TV4M1I-.`1V)((70#=1U$.Cd*V?BjMqJR*mSi:jPj``'a0kp9H1(V1Jo+%.AKnZEj[BSGBoK-kgBVZmkg3pGb'Al0'DHw85W'pM6cvV_p$6J(RrP(1+c5S2`I^90OH60ZbHPNO/6N[[9qSJI=47]0Y]P'iM1oevh6B)ILmn`J79i@/t'D(B,taA`;8B)+9S@k.:XmJ(u4)<6oUko_Kj(;ruVSTVlklu*lR^rjf;=*GM)PuEp>>iQR$;]lTFF6ogVIf&vh-%x$mhIDE[11J#]t=B;*#DZK+IIk&m:%<7V6ls$i.&so]URBu]Q.i7hCLc(`WcaiZMW>dtsDNdZ4hW>AWSU^mZO$lT%OG54,(wtu*epjaY,7cSd80KstR4JeTDd*5ags+aJG`3cIbjq;f$mM,fPIpZ82B25:]3v@jCHd-diJM%gh$@B8)DMY5Lnu,5/h52?X9mk?<(7XuLRl3gph9)lT_EBLvbUBUjqZv?<3JC(MH7TOxMOxr$0uDormuVJDWN6$2nb9[/mdt%+pb%aDuu&Bsh6?'$?-]n+trNsd2bD.p/$-E3)uH,r*iNpC8EjxvO__Hhs9Go-uc5+V:v[t%Qr$_7?^R2'Df*M/fMAiRLptXnugNB(%cgE_Z0qje%`>lm2_Df85]4Uv$5jrVXb?m3O6s@[jLEra%pZ6NHI.*p2PdYK%'FXvlE=u8OGkNm2%Obb]H.K:tCo7dfD=,4$tTUB+m'VamCsf>o-W@Rx917fbi[9VN2ID[v=DiH)ZQa*b[U67VIWflY4fQ-*2<9>`AVk.*_NFj7YGtq%O$3%Mc9w9j#4M_q,G+:m9vXtv'CXb#&[*.n:r08VRlW*-SlS%,x,rxEBE-?ZQ7nSL],8JVqqAQ:VQV/,,:3G39Z$nLai@(OF#4&-4HiL4_-)/eG.O#U*GhPLS%UMKD2dsB(N,Wb-bjgb6A7CS.qQ9R>@P/B:@n/56auhPUn7(Q?;OPCiTw/2OZRsHx8KA:[,dY1:Z)xDf(T+[iU?h7I_QKlTk'eRPYs_vLWmI3=Qf.-ncP^E&fY4Wf9V,*PjSNe#P8txfSl=O_o$Ia8%aX#gu6YXQS%U,C]b+ZW@6gQ:bD*bTKSA7Hq@thtHREU6?.KNdBQLe*JL:o?)hM6'6Q%<4J#'DJFrEG&Za$QCs6SJ`'U%h;Y>jYeSrB4Boe]a?E2%ccViu=R289G>lV).td)4s[s.X7`0uQ9euYE?gM`Tmv>#S/uL+e$abu_6hG[^8xD.ZH9nP,JXfWAr)5vZPan5DSZY*9q@9J:vDCMD'7R?q?F$/5JT'I-5m;M>9vP3Zi^N&4ig4O3TOe2-AVp3qp)+SLbmq+vZa0UHOtD;wP%Kc3]1_LD4A;Rx1mLgo7I,%e7)_mSIa,tAgfam)@t^$?6q_pookHfgo.&AkH[9D`S'NR[h6w9GcS1VR>eeM%oh&3W9c7%o,lO:;@]uRUQm%-iu+<4g5GW(Ni0rGcqkhm9_LNI4-cB`aol#hLs^`9uK)cO$cUGKW,+:XLZ_pXWgqe=Vo.AeUs(:aGVYagM/parb6C5hh_W#bNZ=KAl.'Dw*.h:m4BV6t(O^*mACXMrP'jDjCCuFLq^^>(2Yc,4Y9f/55(_u8O:f:'R`v0OtHg;fB4):8j#NDX$J0v$Q,H-aJOdV5o;sk7#jsuh?0*:xi#aNdSCN^+Y4nCd5#UnNHD5-oIIaB^637VY0&vV/$&'f=0^%FK?LUPQlEM^otU'DKn]fv5luYV728uqwYM6E(CZ]=HM_fA?BummsYkfVlr^/RZ2PmO1-TYvHh?Q+(8(uS[Cguoj-TE#PtSM]I2Y^%ZvTtPq9xk28>#sJN>OQ(x+`[@Kig'A8P#YA%b'v?x'%IU*%Z#[)L;N.sxEV8.*-vIut;pFfdNjv*HH42g.%B0:```R3qIa6@R8u(sw%-YlxMn;qe=7>U[XKTAM6jv`wh&q9Wl2$jb0v[WqOogk08Qk07OtM+t_/BgKm'rDn@mIB(@t.N-;U_3wDd-702DUx*oO[SddCiCB%Lngk:ZsIp:Q(?kPn9mac`)[L#@g)GI8(^?B5@A0Lp>`gn,*97lSw^r$st@/oV;@,jf/2;eng'PJ-^,.RnH)b*g(ri-n?(^b^%wZQ,n:SR,4@-7rgH1js'SxR7-GrS6RW4d&(j&i7sq_Ert+3NKPC*:*nTiiS7'Geb%pGo9SQ3e(gcKf'uQvghUI2cVOL]3v7FTj]6&EQR97KXh3qS-pN#a(@SI(3v-;M5vld&$s6RWdun9iuth&vrMPx04g7ht>Q+R[gqjBj2@Fji]almT*2Y8Mg`d(rgj[P^prq]I7JwV,Ab.3kH[HXK<2WsvtZbXau.qVsdu>/9FTDe:VqbQ?UO_WURrD0@qlE;#Au%[s$jS.ZRne'S0b7xjGIg&F5q:u8;VTHD@VTFI0SY(FqMWYvTI18`jaY(Eo2Q,wTa20x9uGV1weBQdGDqCf#(#`sjf#3i0u#St3hu/;%Ha=9BB27P/?[O70q]^X1i9TH63`B1mLv9'.AG1E#vIT4l4=*[bK@oUuhG8H?l.mNua/vrIa0A3?4mt]cf5f'1L]0^pWPg]WA---Q2]e$@Q>VE?ko.v92+4b+TA+/YcNYOfVhJk.qc67'q5O'IqBb-p$3459I&+PlA@sQKT#CMQM;gvZ#Q8:%NW9)rtm&j2gN99/vsCV:-Y4-xN+;M)I].l73N)Lo$9>ub]DMB-_[8X0#7uK[M?Xa:H1>6gAhsEIawj_Q0)p=5L:40hG0`J1Z<*qY['>Ic4$eHMZZNq5'$lD6accb>^$c)eG*4UdSl&W#L,(nO(]as`_%_r[jr@v-lI4u/?burp9N=#3Ak5PY1(xi>Rnqk--LLj4YM;w;07l_hss;[WCf:Ylss#?Z6D_oTI'*[ge.-6K>A/.?1.bG4Yhhh%elW)ji9e%0m`dDOY#-7cUdSi/nF$0_0'2U$ukKk;9D.60uTSQh@Fl3[gnlU@(7HeuMOP47HW3K/3nOOck$krgqlqKQrRcc7=DtxB-6>th^.obi/VTQxX7<4X.IRN>#XCch0U=HoRww;XKx>*V2)+-P&SXXwsIx&lf@PS8vZ5=/8=)9.LhwRR2=B+ho?KugL;j@tJaX1+53s4h4N>jYAUX[m7f$*x,7GSXDDgAqBr*-8U'r0S(s'w]Kg0*%1sT_QWC/bWLL[-kD,3_4p768BKO@21bs^Baxun]o5H]:#7.mBl%AQ*(vU_KQWVVSRmvGX3uD;M8HZF.l&j:O;tD/fnKj?3PR-k2VlXqR4JC9;DaQS4bS>2>2#LOgAr0BSa%Dl7N9?I;%L98.+Ms*``akq*=5>v#a$`Q+loSl&;u5xJx3liN.f=El%_9M7Lp3cBlkWC`/vm97%=TsGtbvgNZKRSk)Gr:xXlLu@JuMiUc%L6#+Ck@P'=[2Y,j_,.RnmL&P8+c.u6S.+0*u]9aEH.5@r,Cg?FB[<(el%YaX^E/Fr4J@@MlfuV%RpKvfJ:KB^WXYodFs?^1K'=Jcd&-ilV':&vC-OeUe51R6W:98Zj-sa/0O_efVfNR>luo:g=^J]=/POBcuMJh,Iiq7nrG#Lt/9g@kxZD;u.tA2i0,iKO/V.'tS896C4=mjsfG_kfJ74Bl](@GLIO9s%+C_e4lR96o$48xVl7Bv@ODdGuqZrU+`_kK.LEUsanr9d<(PZHAY9q*`s/?rmKQXj:,47).9pwZ-KZnj@rxA_1KKnY8vxCjSrEg&1q?Dh6jfgaUu(a`itA", - "Lj&dXCisUGCKab.h3IF&-,6&c9Km[G^:)WAwPZ4A,vBG5t6?R[KWEt1bYvlO&lQVKQA8*v`O[,6+>kG8k75@?>EW;7]we&J&u7RstFmaXRmias^5x>#wE-#<1;S6$b^b5uupl>K7oI,uq(8@M0o._Ttacru%;cVNb4*(7]S-,isupuA&Edw`eKZtJp0Q/.h[=du*j598J[w&S;rQ4r6n-C;Ia.BLGjX>$f%aSXh'$nk,_I/lQEF5UMg5c4`HU^O9bh7`wcLnV)R(^mJ;NBE$ci4QBilgO-;=g5;fk7;_+NQ]TOibP#q]kjXf(5L]dm+NI[3hsGOx9SRj6lfhm9Er67xjfY/iQ&(1c=0XaKwO-`J^IeU1UKE1&;gGOTjU1n<:vPjXIt6WO0Z1F.n)#sC&:(EYsVX&2=ulTfi>HasZM=_[@f6ZB.d]F,>B/4GCjiHwM[8$UTIaYQN9JXbNqXc$.tj@&bu4Fc`EJq7&HawC.F@J]xO,%u:Y4#d9k(9)Z2DKuK8xOkk2/8m1KKr1$93>bnrC%SDln,'+(o2J`r4@50b$B$sVl&ZUL)M7IT$p,@0KTZMRGD_btVk-fGI*w7OHgwWuU0'm.PIX9r7v,6R@t4Sa>+QSD`EZB':gq(rTr)sDEI9p';?7>_^j[`R4J:TBtm;#8I]SJw)$T*KPp3:)fL6cY:-YEgas>D$1=aMrb,xJ;KrSKI'lN0E=ur.@$9*SOr[FbHF)Ine5r8^.hd[.Z&-=1/muImeZh+#DeaUda@20-Acj?*uL9tFV:6YHuYN9j&5Z1^*(bD'FmS_0[%Y)Fku?mwb(v&q#*XZTJJLCKT)9`x+febxmrWasq`[/s?Yf#U11MaYj>PiTF)4-BoXI+D:^%GO*>F>9DFrpP2ZD#wuBCqtu[0)kDD`0'N-qM(Zg6g1Y2*H[`8ExKn&d<1Llv,/`+SdTs/k>1g(Ho:F53)lO3,xBdM7kTmsqA7k9nFrnIj2P0d;ui87ZGT_qf*tK?m)37#'W$0n*aSlAaC#fKEto'L8XTS0R8Kd*po8(q:X;6YelrLgIRqlc4qxoSl9I1e]>Yrt0P$9qf5:En>#Np0vP@:h)-P>FxYXJRZkgsJ2YmttSjOhm[m)'CN/R,#[5Wwqf,1(t&R=bugcL<`>^Y6d3Dd9&7$+jTS];h)Q345QAHdmKsng3?vT$vFH<8$:PG5E(v,*?1h&Em1bU4`amN`:3T9E1sH%=2e&u0-2;YWJv[#PF#UOhpmn@F2v#H%kiLvpVFwjoA8[:E-6Eid,WHrm9mOr>NH;[(<;p4Pf6t410=0b0lqDf10Ka#VL%N1#6j+m_p7'@aA`,4^%a1FS`e_*2Gd#5rkHW0L]lJwUK:?_0>tH,Uebx+rlqUv6e8avww#YB4i7We_RK%aL7uv'd:U?]mLkj-(09T9w%ef`U#N-&>=u6roYn>U_Ld_,fNL@4%DZ4XHXlMm7<2m?MBjOrw=fePvJ-lx0hDh]loe>1US]p7vtUJ(2?6O;`Y)Esh#gj69C,2?%X.eNocflnN's,4C^ZVa-O`V(N>'VT`cle'vPUkIh:]dYPMgWeVUqQ:vDu4[L,e+E2oc:A&imLe-E$^'n-u2gfm@2MO@5Gbqh<*O&njnpXX&BVa:8lf&#.l_h^'xtuXZr?Y?8)EwpmBVP:be$LH`XG%5,#u+#7Y8qoTRI_r3x`7vC-[.XB%kBdB:rX`kJ;D_dokAl7/QIm==u?P*YbbIV.Lq%ma@j/TVP(Bg+trqJHn/Ybrud>j'@RNSmG6*;RqTTubLv6I5C>?EBJqt?DXhPKErG`&.lo[QN4M1?u7#&17p$@0jT/pj<@tQN=Za%lQpE59h/'hc^vAxGf]b/gZEr[Z.,f+8F,MU=ni[#]H=5PtQgui=5^ns1sT`Hgi@A,S`d_O%15vHu?5BdXrfo:/8@U*q2kU$`=f_@M_]h6^3M^bN/+M:0#iYqk[ct(7-S@?_j$WN@f[kg5pGMQsJ8-.:MhuR#smW#aLY-j>TbCU0hmV$AYdiv/5>tRbvH:[FQwUPPpGBlPAveDVqX5&sB5kqbVa,,uer-67LR6'x`5]OOQ>mU%3st[mZw5MM8<]SYUBQBPf,:%0D`'$_6Nau&Umf:i(s7JF/h,vYRXYpo5IRk=3dTQ50VNcS4/-E`D5n^suK6@W+W%e>a;sU0G4+9tlukqJvkA5T,0mo^Tc)Z=A*@", - "bEYrsTp`ko]cxx8R$PI'mPaku10S#v;6[hqXm+S[1Tee[q*8*Q^inAo''JsX_.>sf[P711X&jVCUfm>0%qc9%oeBZ9#L7W^%vkOa6CXh@8AjTV:v^xgZK#wLXbW4)47`+2vk_hD1v+k*I]W#6T)f321Y]m5@?V=]YAS;B6#.@:Ukf;Siren@4J'*:K_^oQiP.IGd4wmH_sKD/Lrl;gVm3=BqPeE0ZsZSt:HP5VEujI*Cj0&C$OL-/#_?WZ'vW@=8vIOD]uG^w>X<(>NlHej,lNkk4vi@)2G0e.Mrj5f`$w>01uNxL_ap>kCa(LCb^$D>50GBg=8>hbwX6M>EuAkA9Q,-b.7_:`1o@bC0:BuX?*Kj5DF5UOE*fqq]ULfS%hTsfQW>@;tRQ[LSfau:jWjtm^C@btup7+$kYdf&VU:dX],k]#IfbQMw0MRLMbqa'?G05CLE5#QJ9Aouj_SmhXVcqK8LPB&JEE9B@cGZKU3Qm#[5C.Sn?xC6t]x5fr->NJt80jKJ7&FjA>TjOmmxZkK.5fo.`ExuA:'W4U4SJmkO#h*BF0KTJg@AEJPeTa$hfO9OY<-J-^0aJ[&Z.LNc_F2tt71p0Gu'n5$i(C:?pnCQK+4]P/kr$>eR*J]E7lRcetT*aa0Z1uokH[%BNGmcEvttLBrGe.;kl'9%4dT2cF`BVj9vdP(Ne@2wrKX7(67Ij+J%>GP.@b@`*)l;:Qc*NkU.8Q4V;_2t8&ddA:kk$vRjVRer0$'NbCRW>uEO@N4[pZ$gU4w3(Y;_<`DuD[tt5?u8d&$]ilxeR,p4q(v_CA.:*b#d2QK%$qA(GHD+7JS,`N-%q1TuW*EYGHM',WXggso%B_@wwq_/v7-MnR='La2X0`fB'W9G:/PsNpW?01*U(*cux#gL*N%v(TR_s][Vo-F#[3'fS0hWSvuPMa[c8CX(^bDH()_FAL;]Z-(KiuP0hYepcRkr.(WBa@R[:Pn:ErQ<6'5u7gb$,wSJJ?smrgDqEt?.nEB(a]cwe_[nlxir_L=9[rnsUelw9v,#2RUuW3EJBLm4NGhP'u4/(?uiwC`K4`*0HH#xqsuo99q+Ug'vip_B1M_iPJ1nv:HHCf?g..2f#J-bt^Jw,u.9EoT81khuW5Rl];A]4v.gD(qC7CXlb[1O'bXEGnrv[u$3-RgG$(FUmhA/T;lJC8v/&N22hRld]x@JNt2HV,ums_$[%-?Qj5.2?wh=PC,[MKtWEvfRV+5oI)S6#g9f1vr7(P]&FG>7=KcYKa4VduX+PoK/]q86oQLc9/c[j*BP>Eu)(wXuZ^m$v4]b#f:X7^fHQ]>BHB31v7[T(ah*v@e%-*S[G8Wn&_Y9*7B6`+_B1>6v^v>I(K^?0*.qdxM%ibOK9EQW`f`2PlQZHUZIg7rl_@uPLj5tV[9;i/hEZ2t&E=R`LB84Q?BIXM8?r+777/21HaM?DHNb/bfBHHSDPAMwbrr.mukor./O^J2xk29lHlPX1e1f0R7IVHH3*dm7@[^Vtk$T^--DVFq,v*GD#A-QHSER81`AsO&F2+k)S.E.4_%8H?xtiTrCXhrw(Q'-h)i[h.H=wZVPs_[(iiST*3biBrdZP^NGu]^&lL@Lh-1EY/@WA2#/UT'v^'YT7AgiR)s^_1<6ej4$O,Jh6s/dnQ1Ql-K1S'OC>Wtr7*NlKdclsqJT$aFOh(BP6-h4_TTXI.LZH;k]'S>j=c4=ltR.Oo%Gtd9i(GNO74fGin5m43JW+1@IpuZA@dx0nk+kG8-/j2If[C'=:MZKsiL897v69^PiRX[,LTT?NG]'g8GqpDl?imq':?`Ob'V26D>l9C/=:G8MqWrv,q'd3sWpYgt`4(kXWP=604W)ah'md,bhX_A6uO8*`*s8/YT/b=Ao5jF<*;FT?fJH:5Ul>nsUinkFeKPV_3s?rPDE[+=9.%PuY1VOMgOR%s7H=H*=?#O(jW%jV5A[x.j*Nj[,GD'BU+_FI1+Vr,MGx[du-a8;css7H2m4GWl9+#ldRP*k+Gf2v>kD(D+k1q5/i(NoH#;>2raLiS/J=,):HxOW8DI6cool)%v6Mv)nL7a4CCB>edj+*a9@SXp)aF6skfB][K?=HdG$i]B&#td9Q/.oFV%^jOS7c5*j>TjW>FEsOAjjG:`F5//&c,n+#8l-9OKe>U.)(LA:3useb@sfXY'Clkv_H1vEFqo$g?`_8Ulsp4/Z1^,7pKSVx'-fSQ_E;5Esl.wEE_Q(TL7a*u%NGWLfG7=Cgbt3GLn`UM/g3M3$#lBB*Lb%qp7P]#;7:+-]460>$si1XG4tlp5*oxKau$2pu^$ITgF@4D(6K;XqVZiV6-e/Gl&e4#>VGH,9mtn_Sek?vX6`&=fO&UxIpSfHU2dec'JK-PD;oe)('UmxKN--`ER*M#NSs$.JUxT%vHlTNO/UOrZ$b.:l*DYb71J,SRAmT#vNBxsUTa7rb<&2)u_?/fUaH6EhQI=mW.h^Uc[?48KuIBWVe=;1UmW//+N`-f+t*WfG0D2CXaktnaD", - "dLZ=FvrVpdpa;&VOG0._fxX5d1YhqKnAM;rL(AhF8/AmS)UWHniUECrL&6bfQjtHAjV4eQ)gBKl]>jo%qpdO`rVeeN(k`7Vmp/3JlCq&nIQ[NOX0J9r>U.,IMt)8'o_Yxg1[0l]`']/1toi=jVIw&jc%RK,X9r=cV,Ee@9kL&[cKk$Fi3D0gr's(bD>Lo_A0R<3^j/PbubW*4Q[%48;mvWhgjj@#vVeQM7^u[[sk(86N2]jdA9p2TaP<(`*mm7j7Rv/41[cS7i<9VA7LSo9ZHG<-_(Wr;9%et1G6A0gfarkH[-7i/q;XB7DLm5JRo.E.Wi.0>V/vpu#K$fB&xbkV&Dsc3H_x?ZiT@lVt03unu/+WOM&OK:uvCK[`cQ_:aX1M>n57bfV_llGwP2RClIHqHsl?v>10vS.;DVd>+k?k&9Gn-P`U:==xDen,$kA;xsq[F%og5NdJCXHINDucTe1]$F#Huu;vd8%VG]`m0@9V9EA)LcmdVA'?NBLjmRo3etj*@0q;:vgV8B]F=vMj#H&k&wGZr2C@V?'9Bmuw*1@APJ'V8><;R8lx/4-S16xKDgG*0s8BN.'j@DPx.d&3#bFQ*>nfSmK-<1N,U/AuF?QKY`8FR;(RS+>;k%P5w'6rm(i@5vQe8RKiIjhUl]haG9F;)XX,:]?6=TE<;la,mRL/-956E`XQQYFF>OD]qKEbw`L.Kx=qghMb48lqO]`ms'+I7`<$@F9;T33YpnV7?Zl-o)2?okP8Hgv<$5KhUI#&KeM3h;>3aqOb6&>rO[+0#wW1LYtXQ%g(<#T>4J$>HqNZ70D6h[uIT`SKHneTv7vt>YXw#vZj=CKqwxZM;pgk^ep)*i=n$.$pMJL1uT32-(WXgD&ml)_Z5bBE9-[DtVwk':-FV$X1,$luUw/32q41,cr8]wTXi*o'#5Ed_SG1&o)NWODuV$FFqXHdJ)ZPGfV[FL6a+U0RfvRuTm'HK3=J:5)8ktojH[m$R7P3AO-5G80-?q07[Kd<7fXEk)^x3rdA+Toa%/KZJas#=p8$BWjtmGR?BrXZg71LiRh8Vr2B]BE@EPntFK.L8feG[wNR#JJPixbGS1MB;$>]svPd3N-+)r5uTao2_bLOr0*lshLoGl&qe^cl#A&>,:PUMI.(C]F=g*4CL*HcKwxuobUfC7]NRf14+M2:ZGhG[nj1A4WYJb19:P/-cJ>RIn;oY@]mfJu,05OgV11YY#v7,L.oeU+gHVT*m&5VY'T(wX8Dw=Q$xO7>fJmCW%e`R)N$vv$x-L@h#U-#Yjv5&R`pFdYXuXZQYPn_$1aGVm^A7F9[jQ[[#RCG;h1n]x-ETQLkclJdDJ'%^,5P'GMjH[e_+eeST2lLI`T5HEud]>xKl4WFEx%v1P]P/%UDfqM76lspudFws^gJLSE>$+`Elc(]kPASQRO_`)=Y(FPskKQGK:/w7v]QHR9/jQ#]LGLMS8cv0rLvo56Sb`gftl=Aqi++HAEO7I1@twC&$L,u^=W[e*tSfG&rqV?1)lQJ3kUL633b?YZUH$Og&o)*JZuhj:4ui3JTRXZrdqx^oJlIY'M8-Tp'ttb'32^.=R0c55rmoFcYuqdOLeBpm@DJOwx2v?M07NnqR[;W^ehO'I)Nhn@th;3F@D2I=Kf[OgR[I2D/.gEWA$fCN1rE)[ZKv$%;-etSc&1lH<58)s`uV..#v'swSs_6+<[2vucjMG$4'72gRuTaLuPTdE8b.9OwugEx+uH[%UR]`ZPn?4`o?tCf<.I+x#5f`Yo3:OG:vfEJr(fu-ha`-Frgwd;Qiv9oAct((8rWNsTrEC`'Ks9SG`s0fY9dM9Djkig&d;BI7Se;*M/U,+tMwwcji^F5o6:K(GkKbnK`.omavDNs-lE_Q,#3UWoDSMCeoQOZicnrDlk58=Yx>$4v;g/g4=?UUSg3`eL+WFrmi_:pKJe0e-b-_`KS%%TFI3mquawQe]#6PxM_Tv]0)vB^D^NVKPFHg$NYjvJ^?@#VkqDPX5d]46v3$`]hZ#*^kfcQi$t84S3KukpZ0[Qe*e?1D9_d.rqM8psh3-9QuiLP*i'+iJG.UiF7$U'^usH%D+Xh#kqE/&e1;m@xUwi+sK_,Z;&xd*:1,;N=H7cL[u/GD5+']REP;emG$OdYN`10^X<.Abf(g%O2jXkF).i-?,dgXNa;b;D4caclxdOn.:Rx+4l.O*f#vu0;Xg-V6;14S74g$`agWC?ZZcx,l,XRFi4jBxm4)w/L:@.SsW;8s%BKOQ[[7G#vtp+uA,jXg0XGm#c>F;7ujc7V63k+w#A[;wX5j5w8K3tau&EiojAb7SIg^s#ieVRQnv>lwkt=M;V1_9&X%#%Ac%h#jsx7$tAH9rkJ*q(H*M#O@chi9f.i+s%8kH9EWlFVri7*AMe)VGHd1Cn8i+W;=W@DbP2.,u9'vI6w@$gNSR9Io?qPoIwbQ*%0XUaA>,0M.IPO#+2i8H@#ha;vN5;5rU5OkC#vrKBf[8Xs)v9M@4ar6@/nP^8G2fGl]Ag*..PERug(u,cO/9vR)nx&QaHtgD58jn(XLurIifbd-]bb`hEn59%9vW-M8:B.@CDqH29v.WW?s*0[PTtn79*#*$aJHo15-[lL4IFhTB[%h>Qni=.G9.&J&ohWm;d>0@cnc;E%t%J0DkFQ>RldqI+tq1r(*41n_ao7,GoM#.gN0`@pR%Jl;8Wpt+YnP7GDs$L]-mH%(2u)_D?-R`^BHm8tXcJ%gi5ub%i7hK5>Gf=e$^%YnWG2)4G38QnE,:R`lMfH/)qt$)###" -}; - -#ifdef _MSC_VER -typedef unsigned short uint16; -typedef signed short int16; -typedef unsigned int uint32; -typedef signed int int32; -#else -#include -typedef uint16_t uint16; -typedef int16_t int16; -typedef uint32_t uint32; -typedef int32_t int32; -#endif - -#define ZFAST_BITS 9 -#define ZFAST_MASK ((1 << ZFAST_BITS) - 1) - -struct zhuffman -{ - uint16 fast[1 << ZFAST_BITS]; - uint16 firstcode[16]; - int maxcode[17]; - uint16 firstsymbol[16]; - unsigned char size[288]; - uint16 value[288]; -}; - -INLINE static int bitreverse16(int n) -{ - n = ((n & 0xAAAA) >> 1) | ((n & 0x5555) << 1); - n = ((n & 0xCCCC) >> 2) | ((n & 0x3333) << 2); - n = ((n & 0xF0F0) >> 4) | ((n & 0x0F0F) << 4); - n = ((n & 0xFF00) >> 8) | ((n & 0x00FF) << 8); - return n; -} - -INLINE static int bit_reverse(int v, int bits) -{ - return bitreverse16(v) >> (16-bits); -} - -static int zbuild_huffman(zhuffman* z, const unsigned char* sizelist, int num) -{ - int i,k=0; - int code, next_code[16], sizes[17]; - - for (i = 0; i < 17; i++) sizes[i] = 0; - for (i = 0; i < (1 << ZFAST_BITS); i++) z->fast[i] = 0; - - for (i = 0; i < num; i++) ++sizes[sizelist[i]]; - sizes[0] = 0; - - code = 0; - for (i = 1; i < 16; i++) { - next_code[i] = code; - z->firstcode[i] = (uint16)code; - z->firstsymbol[i] = (uint16)k; - code = (code + sizes[i]); - if (sizes[i]) - if (code-1 >= (1 << i)) return 0; - z->maxcode[i] = code << (16 - i); - code <<= 1; - k += sizes[i]; - } - z->maxcode[16] = 0x10000; - for (i = 0; i < num; i++) { - int s = sizelist[i]; - if (s) { - int c = next_code[s] - z->firstcode[s] + z->firstsymbol[s]; - uint16 fastv = (uint16)((s << 9) | i); - z->size[c] = (unsigned char)s; - z->value[c] = (uint16)i; - if (s <= ZFAST_BITS) { - int j = bit_reverse(next_code[s],s); - while (j < (1 << ZFAST_BITS)) { - z->fast[j] = fastv; - j += (1 << s); - } - } - ++next_code[s]; - } - } - return 1; -} - -struct zbuf -{ - const char* b85_input; - int b85_row; - int b85_in_pos; - int b85_out_pos; - unsigned char b85_decode_buffer[4]; - - int num_bits; - uint32 code_buffer; - - char *zout; - char *zout_start; - char *zout_end; - int eof; - - zhuffman z_length, z_distance; -}; - -INLINE static unsigned char decode_b85_char(char c) -{ - return (c >= 92) ? c - 36 : c - 35; -} - -INLINE static unsigned char zget8(zbuf* z) -{ - const int num_rows = sizeof(mixbox_lut_compressed) / sizeof(mixbox_lut_compressed[0]); - - if ((z->b85_out_pos & 3) == 0) - { - if (z->b85_input[z->b85_in_pos] == 0) - { - z->b85_row += 1; - if (z->b85_row >= num_rows) { z->eof = 1; return 0; } - z->b85_input = mixbox_lut_compressed[z->b85_row]; - z->b85_in_pos = 0; - } - - const unsigned int block = decode_b85_char(z->b85_input[z->b85_in_pos + 0]) + - 85*(decode_b85_char(z->b85_input[z->b85_in_pos + 1]) + - 85*(decode_b85_char(z->b85_input[z->b85_in_pos + 2]) + - 85*(decode_b85_char(z->b85_input[z->b85_in_pos + 3]) + - 85*decode_b85_char(z->b85_input[z->b85_in_pos + 4])))); - - z->b85_decode_buffer[0] = (block & 0xFF); - z->b85_decode_buffer[1] = ((block >> 8) & 0xFF); - z->b85_decode_buffer[2] = ((block >> 16) & 0xFF); - z->b85_decode_buffer[3] = ((block >> 24) & 0xFF); - - z->b85_in_pos += 5; - } - - const unsigned char val = z->b85_decode_buffer[z->b85_out_pos & 3]; - z->b85_out_pos++; - - return val; -} - -static void fill_bits(zbuf* z) -{ - do { - if (z->code_buffer >= (1U << z->num_bits)) { - z->eof = 1; - return; - } - z->code_buffer |= (unsigned int)zget8(z) << z->num_bits; - z->num_bits += 8; - } while (z->num_bits <= 24); -} - -INLINE static unsigned int zreceive(zbuf* z, int n) -{ - unsigned int k; - if (z->num_bits < n) fill_bits(z); - k = z->code_buffer & ((1 << n) - 1); - z->code_buffer >>= n; - z->num_bits -= n; - return k; -} - -static int zhuffman_decode_slowpath(zbuf* a, zhuffman* z) -{ - int b,s,k; - k = bit_reverse(a->code_buffer, 16); - for (s = ZFAST_BITS+1; ; ++s) - if (k < z->maxcode[s]) - break; - if (s >= 16) return -1; - b = (k >> (16-s)) - z->firstcode[s] + z->firstsymbol[s]; - if (b >= 288) return -1; - if (z->size[b] != s) return -1; - a->code_buffer >>= s; - a->num_bits -= s; - return z->value[b]; -} - -INLINE static int zhuffman_decode(zbuf* a, zhuffman* z) -{ - int b,s; - if (a->num_bits < 16) { - if (a->eof) { - return -1; - } - fill_bits(a); - } - b = z->fast[a->code_buffer & ZFAST_MASK]; - if (b) { - s = b >> 9; - a->code_buffer >>= s; - a->num_bits -= s; - return b & 511; - } - return zhuffman_decode_slowpath(a, z); -} - -static const int zlength_base[31] = -{ - 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, - 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, - 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 -}; - -static const int zlength_extra[31] = -{ - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0 -}; - -static const int zdist_base[32] = -{ - 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, - 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0 -}; - -static const int zdist_extra[32] = -{ - 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 -}; - -static int parse_huffman_block(zbuf* a) -{ - char* zout = a->zout; - for(;;) { - int z = zhuffman_decode(a, &a->z_length); - if (z < 256) { - if (z < 0) return 0; - if (zout >= a->zout_end) return 0; - *zout++ = (char) z; - } else { - unsigned char* p; - int len,dist; - if (z == 256) { - a->zout = zout; - return 1; - } - z -= 257; - len = zlength_base[z]; - if (zlength_extra[z]) len += zreceive(a, zlength_extra[z]); - z = zhuffman_decode(a, &a->z_distance); - if (z < 0) return 0; - dist = zdist_base[z]; - if (zdist_extra[z]) dist += zreceive(a, zdist_extra[z]); - if (zout - a->zout_start < dist) return 0; - if (zout + len > a->zout_end) return 0; - p = (unsigned char *)(zout - dist); - if (dist == 1) { - unsigned char v = *p; - if (len) { do *zout++ = v; while (--len); } - } else { - if (len) { do *zout++ = *p++; while (--len); } - } - } - } -} - -static int compute_huffman_codes(zbuf* a) -{ - static const unsigned char length_dezigzag[19] = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 }; - zhuffman z_codelength; - unsigned char lencodes[286 + 32 + 137]; - unsigned char codelength_sizes[19]; - int i,n; - - int hlit = zreceive(a, 5) + 257; - int hdist = zreceive(a, 5) + 1; - int hclen = zreceive(a, 4) + 4; - int ntot = hlit + hdist; - - for (i = 0; i < 19; i++) codelength_sizes[i] = 0; - - for (i = 0; i < hclen; i++) { - int s = zreceive(a, 3); - codelength_sizes[length_dezigzag[i]] = (unsigned char) s; - } - - if (!zbuild_huffman(&z_codelength, codelength_sizes, 19)) return 0; - - n = 0; - while (n < ntot) { - int c = zhuffman_decode(a, &z_codelength); - if (c < 0 || c >= 19) return 0; - if (c < 16) - lencodes[n++] = (unsigned char) c; - else { - unsigned char fill = 0; - if (c == 16) { - c = zreceive(a, 2) + 3; - if (n == 0) return 0; - fill = lencodes[n-1]; - } else if (c == 17) { - c = zreceive(a, 3) + 3; - } else if (c == 18) { - c = zreceive(a, 7) + 11; - } else { - return 0; - } - if (ntot - n < c) return 0; - for (i = 0; i < c; i++) lencodes[n + i] = fill; - n += c; - } - } - - if (n != ntot) return 0; - if (!zbuild_huffman(&a->z_length, lencodes, hlit)) return 0; - if (!zbuild_huffman(&a->z_distance, lencodes+hlit, hdist)) return 0; - - return 1; -} - -static int decompress(char* obuffer, int olen) -{ - zbuf a; - a.b85_input = mixbox_lut_compressed[0]; - a.b85_row = 0; - a.b85_in_pos = 0; - a.b85_out_pos = 0; - a.zout_start = obuffer; - a.zout = obuffer; - a.zout_end = obuffer + olen; - a.eof = 0; - - int final, type; - a.num_bits = 0; - a.code_buffer = 0; - do { - final = zreceive(&a, 1); - type = zreceive(&a, 2); - if (type != 2) return 0; - if (!compute_huffman_codes(&a)) return 0; - if (!parse_huffman_block(&a)) return 0; - } while (!final); - - for(int i = 0; i < olen/3; i++) - for(int c = 0; c < 3; c++) - { - obuffer[i*3 + c] = ((i & 63) ? obuffer[(i-1)*3 + c] : 127) + (obuffer[i*3 + c] - 127); - } - - return 1; -} - -INLINE static const unsigned char* mixbox_lut() -{ - struct mixbox_init_t - { - unsigned char lut[64*64*64*3 + 12675]; - mixbox_init_t() { decompress((char*)lut, sizeof(lut)); } - }; - - static const mixbox_init_t decompressed; - - return decompressed.lut; -} diff --git a/cpp/mixbox.h b/cpp/mixbox.h deleted file mode 100644 index 97d2a5b..0000000 --- a/cpp/mixbox.h +++ /dev/null @@ -1,89 +0,0 @@ -// ========================================================== -// MIXBOX 2.0 (c) 2022 Secret Weapons. All rights reserved. -// License: Creative Commons Attribution-NonCommercial 4.0 -// Authors: Sarka Sochorova and Ondrej Jamriska -// ========================================================== -// -// BASIC USAGE -// -// mixbox_lerp(r1, g1, b1, // 1st color -// r2, g2, b2, // 2nd color -// t, // mixing ratio -// &r, &g, &b); // result -// -// MULTI-COLOR MIXING -// -// mixbox_latent z1, z2, z3, z_mix; -// mixbox_rgb_to_latent(r1, g1, b1, z1); -// mixbox_rgb_to_latent(r2, g2, b2, z2); -// mixbox_rgb_to_latent(r3, g3, b3, z3); -// -// for (int i = 0; i < MIXBOX_LATENT_SIZE; i++) { -// // mix 30% of rgb1, 60% of rgb2, and 10% of rgb3 -// z_mix[i] = 0.3f*z1[i] + 0.6f*z2[i] + 0.1f*z3[i]; -// } -// -// mixbox_latent_to_rgb(z_mix, &r, &g, &b); -// -// PIGMENT COLORS -// -// Cadmium Yellow 254, 236, 0 -// Hansa Yellow 252, 211, 0 -// Cadmium Orange 255, 105, 0 -// Cadmium Red 255, 39, 2 -// Quinacridone Magenta 128, 2, 46 -// Cobalt Violet 78, 0, 66 -// Ultramarine Blue 25, 0, 89 -// Cobalt Blue 0, 33, 133 -// Phthalo Blue 13, 27, 68 -// Phthalo Green 0, 60, 50 -// Permanent Green 7, 109, 22 -// Sap Green 107, 148, 4 -// Burnt Sienna 123, 72, 0 -// -// LICENSING -// -// If you want to obtain commercial license, please -// contact us at: mixbox@scrtwpns.com -// - -#ifndef MIXBOX_H_ -#define MIXBOX_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#define MIXBOX_LATENT_SIZE 7 - -typedef float mixbox_latent[MIXBOX_LATENT_SIZE]; - -void mixbox_lerp(unsigned char r1, unsigned char g1, unsigned char b1, - unsigned char r2, unsigned char g2, unsigned char b2, - float t, - unsigned char* out_r, unsigned char* out_g, unsigned char* out_b); - -void mixbox_lerp_float(float r1, float g1, float b1, - float r2, float g2, float b2, - float t, - float* out_r, float* out_g, float* out_b); - -void mixbox_lerp_linear_float(float r1, float g1, float b1, - float r2, float g2, float b2, - float t, - float* out_r, float* out_g, float* out_b); - -void mixbox_rgb_to_latent(unsigned char r, unsigned char g, unsigned char b, mixbox_latent out_latent); -void mixbox_latent_to_rgb(mixbox_latent latent, unsigned char* out_r, unsigned char* out_g, unsigned char* out_b); - -void mixbox_float_rgb_to_latent(float r, float g, float b, mixbox_latent out_latent); -void mixbox_latent_to_float_rgb(mixbox_latent latent, float* out_r, float* out_g, float* out_b); - -void mixbox_linear_float_rgb_to_latent(float r, float g, float b, mixbox_latent out_latent); -void mixbox_latent_to_linear_float_rgb(mixbox_latent latent, float* out_r, float* out_g, float* out_b); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/csharp/Mixbox.cs b/csharp/Mixbox.cs deleted file mode 100644 index 135dac0..0000000 --- a/csharp/Mixbox.cs +++ /dev/null @@ -1,688 +0,0 @@ -// ========================================================== -// MIXBOX 2.0 (c) 2022 Secret Weapons. All rights reserved. -// License: Creative Commons Attribution-NonCommercial 4.0 -// Authors: Sarka Sochorova and Ondrej Jamriska -// ========================================================== -// -// BASIC USAGE -// -// int colorMix = Mixbox.Lerp(color1, color2, t); -// -// MULTI-COLOR MIXING -// -// MixboxLatent z1 = Mixbox.RGBToLatent(color1); -// MixboxLatent z2 = Mixbox.RGBToLatent(color2); -// MixboxLatent z3 = Mixbox.RGBToLatent(color3); -// -// MixboxLatent zMix = (0.3f*z1 + // 30% of color1 -// 0.6f*z2 + // 60% of color2 -// 0.1f*z3); // 10% of color3 -// -// int colorMix = Mixbox.LatentToRGB(zMix); -// -// PIGMENT COLORS -// -// Cadmium Yellow 254, 236, 0 -// Hansa Yellow 252, 211, 0 -// Cadmium Orange 255, 105, 0 -// Cadmium Red 255, 39, 2 -// Quinacridone Magenta 128, 2, 46 -// Cobalt Violet 78, 0, 66 -// Ultramarine Blue 25, 0, 89 -// Cobalt Blue 0, 33, 133 -// Phthalo Blue 13, 27, 68 -// Phthalo Green 0, 60, 50 -// Permanent Green 7, 109, 22 -// Sap Green 107, 148, 4 -// Burnt Sienna 123, 72, 0 -// -// LICENSING -// -// If you want to obtain commercial license, please -// contact us at: mixbox@scrtwpns.com -// - -using System; -using System.Globalization; -using System.Collections.Generic; -using System.Runtime.CompilerServices; - -namespace Scrtwpns.Mixbox -{ - public static class Mixbox - { - public static int Lerp(int color1, int color2, float t) - { - int colorMix = LatentToRGB((1.0f-t)*RGBToLatent(color1) + t*RGBToLatent(color2)); - - float alpha1 = (color1 >> 24) & 0xFF; - float alpha2 = (color2 >> 24) & 0xFF; - int alphaMix = Clamp0255((int)Math.Round((1.0f-t)*alpha1 + t*alpha2)); - - return (alphaMix << 24) | (colorMix & 0xFFFFFF); - } - - public static int[] Lerp(int[] color1, int[] color2, float t) - { - int colorMix = LatentToRGB((1.0f-t)*RGBToLatent(color1) + t*RGBToLatent(color2)); - - if (color1.Length == 3 && color2.Length == 3) - { - return new int[] { (colorMix >> 16) & 0xFF, (colorMix >> 8) & 0xFF, colorMix & 0xFF }; - } - - int alpha1 = color1.Length > 3 ? color1[3] : 255; - int alpha2 = color2.Length > 3 ? color2[3] : 255; - int alphaMix = Clamp0255((int)Math.Round((1.0f-t)*alpha1 + t*alpha2)); - - return new int[] { (colorMix >> 16) & 0xFF, (colorMix >> 8) & 0xFF, colorMix & 0xFF, alphaMix }; - } - - public static float[] LerpFloat(float[] color1, float[] color2, float t) - { - float[] colorMix = LatentToFloatRGB((1.0f-t)*FloatRGBToLatent(color1) + t*FloatRGBToLatent(color2)); - - if (color1.Length == 3 && color2.Length == 3) return colorMix; - - float alpha1 = color1.Length > 3 ? color1[3] : 1.0f; - float alpha2 = color2.Length > 3 ? color2[3] : 1.0f; - float alphaMix = (1.0f-t)*alpha1 + t*alpha2; - - return new float[] { colorMix[0], colorMix[1], colorMix[2], alphaMix }; - } - - public static float[] LerpLinearFloat(float[] color1, float[] color2, float t) - { - float[] colorMix = LatentToLinearFloatRGB((1.0f-t)*LinearFloatRGBToLatent(color1) + t*LinearFloatRGBToLatent(color2)); - - if (color1.Length == 3 && color2.Length == 3) return colorMix; - - float alpha1 = color1.Length > 3 ? color1[3] : 1.0f; - float alpha2 = color2.Length > 3 ? color2[3] : 1.0f; - float alphaMix = (1.0f-t)*alpha1 + t*alpha2; - - return new float[] { colorMix[0], colorMix[1], colorMix[2], alphaMix }; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static MixboxLatent RGBToLatent(int r, int g, int b) - { - return FloatRGBToLatent(((float)r) / 255.0f, ((float)g) / 255.0f, ((float)b) / 255.0f); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static MixboxLatent RGBToLatent(int[] rgb) - { - return RGBToLatent(rgb[0], rgb[1], rgb[2]); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static MixboxLatent RGBToLatent(int color) - { - return RGBToLatent((color >> 16) & 0xFF, (color >> 8) & 0xFF, color & 0xFF); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static int LatentToRGB(MixboxLatent latent) - { - float[] rgb = EvalPolynomial(latent.c0, latent.c1, latent.c2, latent.c3); - return (int)(0xFF000000 | - (((uint)Math.Round(Clamp01(rgb[0] + latent.rR) * 255.0f)) << 16) | - (((uint)Math.Round(Clamp01(rgb[1] + latent.rG) * 255.0f)) << 8) | - (((uint)Math.Round(Clamp01(rgb[2] + latent.rB) * 255.0f)) )); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static MixboxLatent FloatRGBToLatent(float r, float g, float b) - { - r = Clamp01(r); - g = Clamp01(g); - b = Clamp01(b); - - float x = r * 63.0f; - float y = g * 63.0f; - float z = b * 63.0f; - - int ix = (int)x; - int iy = (int)y; - int iz = (int)z; - - float tx = x - (float)ix; - float ty = y - (float)iy; - float tz = z - (float)iz; - - int xyz = (ix + iy * 64 + iz * 64 * 64) & 0x3FFFF; - - float c0 = 0.0f; - float c1 = 0.0f; - float c2 = 0.0f; - - float w = 0.0f; - w = (1.0f-tx)*(1.0f-ty)*(1.0f-tz); c0 += w*Lut[xyz+ 192]; c1 += w*Lut[xyz+262336]; c2 += w*Lut[xyz+524480]; - w = ( tx)*(1.0f-ty)*(1.0f-tz); c0 += w*Lut[xyz+ 193]; c1 += w*Lut[xyz+262337]; c2 += w*Lut[xyz+524481]; - w = (1.0f-tx)*( ty)*(1.0f-tz); c0 += w*Lut[xyz+ 256]; c1 += w*Lut[xyz+262400]; c2 += w*Lut[xyz+524544]; - w = ( tx)*( ty)*(1.0f-tz); c0 += w*Lut[xyz+ 257]; c1 += w*Lut[xyz+262401]; c2 += w*Lut[xyz+524545]; - w = (1.0f-tx)*(1.0f-ty)*( tz); c0 += w*Lut[xyz+4288]; c1 += w*Lut[xyz+266432]; c2 += w*Lut[xyz+528576]; - w = ( tx)*(1.0f-ty)*( tz); c0 += w*Lut[xyz+4289]; c1 += w*Lut[xyz+266433]; c2 += w*Lut[xyz+528577]; - w = (1.0f-tx)*( ty)*( tz); c0 += w*Lut[xyz+4352]; c1 += w*Lut[xyz+266496]; c2 += w*Lut[xyz+528640]; - w = ( tx)*( ty)*( tz); c0 += w*Lut[xyz+4353]; c1 += w*Lut[xyz+266497]; c2 += w*Lut[xyz+528641]; - - c0 /= 255.0f; - c1 /= 255.0f; - c2 /= 255.0f; - - float c3 = 1.0f - (c0 + c1 + c2); - - float[] rgbMix = EvalPolynomial(c0, c1, c2, c3); - - return new MixboxLatent( - c0, - c1, - c2, - c3, - r - rgbMix[0], - g - rgbMix[1], - b - rgbMix[2] - ); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static MixboxLatent FloatRGBToLatent(float[] rgb) - { - return FloatRGBToLatent(rgb[0], rgb[1], rgb[2]); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static float[] LatentToFloatRGB(MixboxLatent latent) - { - float[] rgb = EvalPolynomial(latent.c0, latent.c1, latent.c2, latent.c3); - return new float[] - { - Clamp01(rgb[0] + latent.rR), - Clamp01(rgb[1] + latent.rG), - Clamp01(rgb[2] + latent.rB), - }; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static MixboxLatent LinearFloatRGBToLatent(float r, float g, float b) - { - return FloatRGBToLatent(LinearToSRGB(r), - LinearToSRGB(g), - LinearToSRGB(b)); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static MixboxLatent LinearFloatRGBToLatent(float[] rgb) - { - return LinearFloatRGBToLatent(rgb[0], rgb[1], rgb[2]); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static float[] LatentToLinearFloatRGB(MixboxLatent latent) - { - float[] rgb = LatentToFloatRGB(latent); - return new float[] - { - SRGBToLinear(rgb[0]), - SRGBToLinear(rgb[1]), - SRGBToLinear(rgb[2]), - }; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static float Clamp01(float x) - { - return x < 0.0f ? 0.0f : x > 1.0f ? 1.0f : x; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static int Clamp0255(int x) - { - return x < 0 ? 0 : x > 255 ? 255 : x; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static float SRGBToLinear(float x) - { - return (x >= 0.04045f) ? (float)Math.Pow((x + 0.055f) / 1.055f, 2.4f) : x / 12.92f; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static float LinearToSRGB(float x) - { - return (x >= 0.0031308f) ? 1.055f * ((float)Math.Pow(x,1.0f / 2.4f)) - 0.055f : 12.92f * x; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static float[] EvalPolynomial(float c0, float c1, float c2, float c3) - { - float r = 0.0f; - float g = 0.0f; - float b = 0.0f; - - float c00 = c0 * c0; - float c11 = c1 * c1; - float c22 = c2 * c2; - float c33 = c3 * c3; - float c01 = c0 * c1; - float c02 = c0 * c2; - float c12 = c1 * c2; - - float w = 0.0f; - w = c0 * c00; r += +0.07717053f * w; g += +0.02826978f * w; b += +0.24832992f * w; - w = c1 * c11; r += +0.95912302f * w; g += +0.80256528f * w; b += +0.03561839f * w; - w = c2 * c22; r += +0.74683774f * w; g += +0.04868586f * w; b += +0.00000000f * w; - w = c3 * c33; r += +0.99518138f * w; g += +0.99978149f * w; b += +0.99704802f * w; - w = c00 * c1; r += +0.04819146f * w; g += +0.83363781f * w; b += +0.32515377f * w; - w = c01 * c1; r += -0.68146950f * w; g += +1.46107803f * w; b += +1.06980936f * w; - w = c00 * c2; r += +0.27058419f * w; g += -0.15324870f * w; b += +1.98735057f * w; - w = c02 * c2; r += +0.80478189f * w; g += +0.67093710f * w; b += +0.18424500f * w; - w = c00 * c3; r += -0.35031003f * w; g += +1.37855826f * w; b += +3.68865000f * w; - w = c0 * c33; r += +1.05128046f * w; g += +1.97815239f * w; b += +2.82989073f * w; - w = c11 * c2; r += +3.21607125f * w; g += +0.81270228f * w; b += +1.03384539f * w; - w = c1 * c22; r += +2.78893374f * w; g += +0.41565549f * w; b += -0.04487295f * w; - w = c11 * c3; r += +3.02162577f * w; g += +2.55374103f * w; b += +0.32766114f * w; - w = c1 * c33; r += +2.95124691f * w; g += +2.81201112f * w; b += +1.17578442f * w; - w = c22 * c3; r += +2.82677043f * w; g += +0.79933038f * w; b += +1.81715262f * w; - w = c2 * c33; r += +2.99691099f * w; g += +1.22593053f * w; b += +1.80653661f * w; - w = c01 * c2; r += +1.87394106f * w; g += +2.05027182f * w; b += -0.29835996f * w; - w = c01 * c3; r += +2.56609566f * w; g += +7.03428198f * w; b += +0.62575374f * w; - w = c02 * c3; r += +4.08329484f * w; g += -1.40408358f * w; b += +2.14995522f * w; - w = c12 * c3; r += +6.00078678f * w; g += +2.55552042f * w; b += +1.90739502f * w; - - return new float[] { r, g, b }; - } - - private static readonly byte[] Lut; - - static Mixbox() - { - Lut = ZlibDecoder.Inflate(Convert.FromBase64String("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")).ToArray(); - - for (int i = 0; i < Lut.Length; i++) - { - Lut[i] = (byte)((((i & 63) != 0) ? Lut[i - 1] : 127) + (Lut[i] - 127)); - } - } - } - - public partial struct MixboxLatent : IEquatable, IFormattable - { - public float c0; - public float c1; - public float c2; - public float c3; - public float rR; - public float rG; - public float rB; - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public MixboxLatent(float c0, float c1, float c2, float c3, float rR, float rG, float rB) - { - this.c0 = c0; this.c1 = c1; this.c2 = c2; this.c3 = c3; this.rR = rR; this.rG = rG; this.rB = rB; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static MixboxLatent Lerp(MixboxLatent a, MixboxLatent b, float t) - { - return (1.0f-t)*a + t*b; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static MixboxLatent operator+(MixboxLatent a, MixboxLatent b) - { - return new MixboxLatent(a.c0 + b.c0, a.c1 + b.c1, a.c2 + b.c2, a.c3 + b.c3, a.rR + b.rR, a.rG + b.rG, a.rB + b.rB); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static MixboxLatent operator-(MixboxLatent a, MixboxLatent b) - { - return new MixboxLatent(a.c0 - b.c0, a.c1 - b.c1, a.c2 - b.c2, a.c3 - b.c3, a.rR - b.rR, a.rG - b.rG, a.rB - b.rB); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static MixboxLatent operator-(MixboxLatent a) - { - return new MixboxLatent(-a.c0, -a.c1, -a.c2, -a.c3, -a.rR, -a.rG, -a.rB); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static MixboxLatent operator*(MixboxLatent a, float d) - { - return new MixboxLatent(a.c0 * d, a.c1 * d, a.c2 * d, a.c3 * d, a.rR * d, a.rG * d, a.rB * d); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static MixboxLatent operator*(float d, MixboxLatent a) - { - return new MixboxLatent(a.c0 * d, a.c1 * d, a.c2 * d, a.c3 * d, a.rR * d, a.rG * d, a.rB * d); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static MixboxLatent operator/(MixboxLatent a, float d) - { - return new MixboxLatent(a.c0 / d, a.c1 / d, a.c2 / d, a.c3 / d, a.rR / d, a.rG / d, a.rB / d); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public override int GetHashCode() - { - return (c0.GetHashCode() ^ (c1.GetHashCode() << 2) ^ (c2.GetHashCode() >> 2) ^ (c3.GetHashCode() >> 1)) ^ - ((rR.GetHashCode() ^ (rG.GetHashCode() << 2) ^ (rB.GetHashCode() >> 2)) << 2); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public override bool Equals(object other) - { - if (!(other is MixboxLatent)) return false; - - return Equals((MixboxLatent)other); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public bool Equals(MixboxLatent other) - { - return c0.Equals(other.c0) && c1.Equals(other.c1) && c2.Equals(other.c2) && c3.Equals(other.c3) && - rR.Equals(other.rR) && rG.Equals(other.rG) && rB.Equals(other.rB); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public override string ToString() - { - return ToString(null, null); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public string ToString(string format) - { - return ToString(format, null); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public string ToString(string format, IFormatProvider formatProvider) - { - if (string.IsNullOrEmpty(format)) { format = "F2"; } - if (formatProvider == null) { formatProvider = CultureInfo.InvariantCulture.NumberFormat; } - return String.Format( - CultureInfo.InvariantCulture.NumberFormat, - "({0}, {1}, {2}, {3}, {4}, {5}, {6})", - c0.ToString(format, formatProvider), - c1.ToString(format, formatProvider), - c2.ToString(format, formatProvider), - c3.ToString(format, formatProvider), - rR.ToString(format, formatProvider), - rG.ToString(format, formatProvider), - rB.ToString(format, formatProvider) - ); - } - } - - internal class ZlibDecoder - { - public static List Inflate(IList compressed) - { - return new ZlibDecoder { input = compressed }.Inflate(); - } - - private const int fastBits = 9; - private const int fastMask = ((1 << fastBits) - 1); - - private static readonly int[] DistExtra = new[] - { - 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, - 10, 10, 11, 11, 12, 12, 13, 13 - }; - - private static readonly int[] LengthBase = new[] - { - 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, - 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, - 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 - }; - - private static readonly int[] LengthExtra = new[] - { - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, - 4, 4, 4, 5, 5, 5, 5, 0, 0, 0 - }; - - private static readonly int[] DistBase = new[] - { - 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, - 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, - 12289, 16385, 24577, 0, 0 - }; - - private static readonly int[] LengthDezigzag = new[] - { - 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 - }; - - private List output; - private UInt32 codeBuffer; - private int numBits; - - private Huffman distance; - private Huffman length; - - private int inPos; - private IList input; - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static int BitReverse16(int n) - { - n = ((n & 0xAAAA) >> 1) | ((n & 0x5555) << 1); - n = ((n & 0xCCCC) >> 2) | ((n & 0x3333) << 2); - n = ((n & 0xF0F0) >> 4) | ((n & 0x0F0F) << 4); - n = ((n & 0xFF00) >> 8) | ((n & 0x00FF) << 8); - return n; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static int BitReverse(int v, int bits) - { - return BitReverse16(v) >> (16 - bits); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private int Get8() - { - return inPos >= input.Count ? 0 : input[inPos++]; - } - - private void FillBits() - { - do - { - codeBuffer |= (uint)(Get8() << numBits); - numBits += 8; - } while (numBits <= 24); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private uint Receive(int n) - { - if (numBits < n) FillBits(); - var k = (uint)(codeBuffer & ((1 << n) - 1)); - codeBuffer >>= n; - numBits -= n; - return k; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private int HuffmanDecode(Huffman z) - { - int s; - if (numBits < 16) FillBits(); - int b = z.Fast[codeBuffer & fastMask]; - if (b < 0xFFFF) - { - s = z.Size[b]; - codeBuffer >>= s; - numBits -= s; - return z.Value[b]; - } - - int k = BitReverse((int) codeBuffer, 16); - for (s = fastBits + 1;; ++s) - { - if (k < z.MaxCode[s]) break; - } - if (s == 16) return -1; - - b = (k >> (16 - s)) - z.FirstCode[s] + z.FirstSymbol[s]; - - codeBuffer >>= s; - numBits -= s; - return z.Value[b]; - } - - private void ParseHuffmanBlock() - { - for (;;) - { - int z = HuffmanDecode(length); - if (z < 256) - { - output.Add((byte)z); - } - else - { - if (z == 256) return; - z -= 257; - int len = LengthBase[z]; - if (LengthExtra[z] != 0) { len += (int)Receive(LengthExtra[z]); } - z = HuffmanDecode(distance); - int dist = DistBase[z]; - if (DistExtra[z] != 0) { dist += (int)Receive(DistExtra[z]); } - dist = output.Count - dist; - for (int i = 0; i < len; i++, dist++) { output.Add(output[dist]); } - } - } - } - - private void ComputeHuffmanCodes() - { - var lenCodes = new byte[286 + 32 + 137]; - var codeLengthSizes = new byte[19]; - - uint hlit = Receive(5) + 257; - uint hdist = Receive(5) + 1; - uint hclen = Receive(4) + 4; - - for (int i = 0; i < hclen; i++) - { - codeLengthSizes[LengthDezigzag[i]] = (byte)Receive(3); - } - - var codeLength = new Huffman(new ArraySegment(codeLengthSizes)); - - int n = 0; - while (n < hlit + hdist) - { - int c = HuffmanDecode(codeLength); - if (c < 16) - { - lenCodes[n++] = (byte)c; - } - else if (c == 16) - { - c = (int)Receive(2) + 3; - for (int i = 0; i < c; i++) lenCodes[n + i] = lenCodes[n - 1]; - n += c; - } - else if (c == 17) - { - c = (int)Receive(3) + 3; - for (int i = 0; i < c; i++) lenCodes[n + i] = 0; - n += c; - } - else - { - c = (int)Receive(7) + 11; - for (int i = 0; i < c; i++) lenCodes[n + i] = 0; - n += c; - } - } - - length = new Huffman(new ArraySegment(lenCodes, 0, (int)hlit)); - distance = new Huffman(new ArraySegment(lenCodes, (int)hlit, (int)hdist)); - } - - private List Inflate() - { - output = new List(); - numBits = 0; - codeBuffer = 0; - - bool final; - do - { - final = Receive(1) != 0; - var type = (int)Receive(2); - ComputeHuffmanCodes(); - ParseHuffmanBlock(); - } while (!final); - - for (int i = 0; i < 4161; i++) { output.Add(0); } - - return output; - } - - private class Huffman - { - public readonly UInt16[] Fast = new UInt16[1 << fastBits]; - public readonly UInt16[] FirstCode = new UInt16[16]; - public readonly UInt16[] FirstSymbol = new UInt16[16]; - public readonly int[] MaxCode = new int[17]; - public readonly Byte[] Size = new Byte[288]; - public readonly UInt16[] Value = new UInt16[288]; - - public Huffman(ArraySegment sizeList) - { - var nextCode = new int[16]; - var sizes = new int[17]; - - for (int i = 0; i < Fast.Length; i++) { Fast[i] = 0xFFFF; } - for (int i = 0; i < sizeList.Count; i++) { ++sizes[sizeList.Array[i + sizeList.Offset]]; } - - sizes[0] = 0; - int code = 0; - int k = 0; - for (int i = 1; i < 16; i++) - { - nextCode[i] = code; - FirstCode[i] = (UInt16)code; - FirstSymbol[i] = (UInt16)k; - code = (code + sizes[i]); - MaxCode[i] = code << (16 - i); - code <<= 1; - k += sizes[i]; - } - MaxCode[16] = 0x10000; - - for (int i = 0; i < sizeList.Count; i++) - { - int s = sizeList.Array[i + sizeList.Offset]; - if (s != 0) - { - int c = nextCode[s] - FirstCode[s] + FirstSymbol[s]; - Size[c] = (byte)s; - Value[c] = (UInt16)i; - if (s <= fastBits) - { - int j = BitReverse(nextCode[s], s); - while (j < (1 << fastBits)) - { - Fast[j] = (UInt16)c; - j += (1 << s); - } - } - ++nextCode[s]; - } - } - } - } - } -} diff --git a/csharp/Mixbox.csproj b/csharp/Mixbox.csproj deleted file mode 100644 index c711d09..0000000 --- a/csharp/Mixbox.csproj +++ /dev/null @@ -1,10 +0,0 @@ - - - netstandard2.0 - Mixbox - 2.0.0 - Pigment-Based Color Mixing - Secret Weapons - Copyright (c) Secret Weapons 2022 - - diff --git a/csharp/README.md b/csharp/README.md deleted file mode 100644 index 1539581..0000000 --- a/csharp/README.md +++ /dev/null @@ -1,62 +0,0 @@ -# Mixbox for C# - -Install Mixbox from the NuGet package: [`https://www.nuget.org/packages/Mixbox/2.0.0`](https://www.nuget.org/packages/Mixbox/2.0.0) - -## Usage - -```csharp -using System.Drawing; -using Scrtwpns.Mixbox; - -public class HelloMixbox -{ - public static void Main(string[] args) - { - Color color1 = Color.FromArgb(0, 33, 133); // blue - Color color2 = Color.FromArgb(252, 211, 0); // yellow - float t = 0.5f; // mixing ratio - - Color colorMix = Color.FromArgb(Mixbox.Lerp(color1.ToArgb(), color2.ToArgb(), t)); - - System.Console.WriteLine(colorMix); - } -} -``` - -## Mixing Multiple Colors - -```csharp -Color MixThree(Color color1, Color color2, Color color3) -{ - MixboxLatent z1 = Mixbox.RGBToLatent(color1.ToArgb()); - MixboxLatent z2 = Mixbox.RGBToLatent(color2.ToArgb()); - MixboxLatent z3 = Mixbox.RGBToLatent(color3.ToArgb()); - - // mix 30% of color1, 60% of color2, and 10% of color3 - MixboxLatent zMix = 0.3f*z1 + 0.6f*z2 + 0.1f*z3; - - return Color.FromArgb(Mixbox.LatentToRGB(zMix)); -} -``` - -## Pigment Colors -| Pigment | | RGB | Float RGB | Linear RGB | -| --- | --- |:----:|:----:|:----:| -| Cadmium Yellow | | 254, 236, 0 | 0.996, 0.925, 0.0 | 0.991, 0.839, 0.0 | -| Hansa Yellow | | 252, 211, 0 | 0.988, 0.827, 0.0 | 0.973, 0.651, 0.0 | -| Cadmium Orange | | 255, 105, 0 | 1.0, 0.412, 0.0 | 1.0, 0.141, 0.0 | -| Cadmium Red | | 255, 39, 2 | 1.0, 0.153, 0.008 | 1.0, 0.02, 0.001 | -| Quinacridone Magenta | | 128, 2, 46 | 0.502, 0.008, 0.18 | 0.216, 0.001, 0.027 | -| Cobalt Violet | | 78, 0, 66 | 0.306, 0.0, 0.259 | 0.076, 0.0, 0.054 | -| Ultramarine Blue | | 25, 0, 89 | 0.098, 0.0, 0.349 | 0.01, 0.0, 0.1 | -| Cobalt Blue | | 0, 33, 133 | 0.0, 0.129, 0.522 | 0.0, 0.015, 0.235 | -| Phthalo Blue | | 13, 27, 68 | 0.051, 0.106, 0.267 | 0.004, 0.011, 0.058 | -| Phthalo Green | | 0, 60, 50 | 0.0, 0.235, 0.196 | 0.0, 0.045, 0.032 | -| Permanent Green | | 7, 109, 22 | 0.027, 0.427, 0.086 | 0.002, 0.153, 0.008 | -| Sap Green | | 107, 148, 4 | 0.42, 0.58, 0.016 | 0.147, 0.296, 0.001 | -| Burnt Sienna | | 123, 72, 0 | 0.482, 0.282, 0.0 | 0.198, 0.065, 0.0 | - -## License -Copyright (c) 2022, Secret Weapons. All rights reserved.
-Mixbox is provided under the CC BY-NC 4.0 license for non-commercial use only.
-If you want to obtain commercial license, please contact: mixbox@scrtwpns.com diff --git a/csharp/examples/HelloMixbox.cs b/csharp/examples/HelloMixbox.cs deleted file mode 100644 index 9efaa56..0000000 --- a/csharp/examples/HelloMixbox.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System.Drawing; -using Scrtwpns.Mixbox; - -public class HelloMixbox -{ - public static void Main(string[] args) - { - Color color1 = Color.FromArgb(0, 33, 133); // blue - Color color2 = Color.FromArgb(252, 211, 0); // yellow - float t = 0.5f; // mixing ratio - - Color colorMix = Color.FromArgb(Mixbox.Lerp(color1.ToArgb(), color2.ToArgb(), t)); - - System.Console.WriteLine(colorMix); - } -} diff --git a/csharp/examples/HelloMixbox.csproj b/csharp/examples/HelloMixbox.csproj deleted file mode 100644 index af772fd..0000000 --- a/csharp/examples/HelloMixbox.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - - Exe - net5.0 - - - - - - - diff --git a/godot/README.md b/godot/README.md deleted file mode 100644 index 6784d78..0000000 --- a/godot/README.md +++ /dev/null @@ -1,90 +0,0 @@ -# Mixbox for Godot -```gdscript -var Mixbox = preload("res://addons/mixbox/mixbox.gd") - -var color1 = Color(0.0, 0.129, 0.522) # blue -var color2 = Color(0.988, 0.827, 0.0) # yellow -var t = 0.5 # mixing ratio - -var color_mix = Mixbox.lerp(color1, color2, t) - -print(color_mix) -``` - -## Mixing Multiple Colors -```gdscript -var z1 = Mixbox.rgb_to_latent(color1) -var z2 = Mixbox.rgb_to_latent(color2) -var z3 = Mixbox.rgb_to_latent(color3) - -var z_mix = [] -z_mix.resize(Mixbox.LATENT_SIZE) - -for i in z_mix.size(): # mix together: - z_mix[i] = (0.3*z1[i] + # 30% of color1 - 0.6*z2[i] + # 60% of color2 - 0.1*z3[i]) # 10% of color3 - -var color_mix = Mixbox.latent_to_rgb(z_mix) -``` - -# Shader -```c++ -shader_type canvas_item; - -uniform sampler2D mixbox_lut; // attach "addons/mixbox/mixbox_lut.png" here - -uniform vec4 color1 : hint_color = vec4(0.0, 0.129, 0.522, 1.0); // blue -uniform vec4 color2 : hint_color = vec4(0.988, 0.827, 0.0, 1.0); // yellow - -// #include only works in Godot 4, if you are on Godot 3.X -// you will need to paste the Mixbox code here manually. -#include "addons/mixbox/mixbox.gdshaderinc" - -void fragment() { - COLOR = mixbox_lerp(color1, color2, UV.x); -} -``` -

- -

- -## Mixing Multiple Colors - -```glsl -mat3 z1 = mixbox_rgb_to_latent(color1.rgb); -mat3 z2 = mixbox_rgb_to_latent(color2.rgb); -mat3 z3 = mixbox_rgb_to_latent(color3.rgb); - -// mix together 30% of color1, 60% of color2, and 10% of color3 -mat3 z_mix = 0.3*z1 + 0.6*z2 + 0.1*z3; - -vec3 rgb_mix = mixbox_latent_to_rgb(z_mix); -``` - -# VisualShader -

- -

- -## Pigment Colors -| Pigment | | RGB | Float RGB | Linear RGB | -| --- | --- |:----:|:----:|:----:| -| Cadmium Yellow | | 254, 236, 0 | 0.996, 0.925, 0.0 | 0.991, 0.839, 0.0 | -| Hansa Yellow | | 252, 211, 0 | 0.988, 0.827, 0.0 | 0.973, 0.651, 0.0 | -| Cadmium Orange | | 255, 105, 0 | 1.0, 0.412, 0.0 | 1.0, 0.141, 0.0 | -| Cadmium Red | | 255, 39, 2 | 1.0, 0.153, 0.008 | 1.0, 0.02, 0.001 | -| Quinacridone Magenta | | 128, 2, 46 | 0.502, 0.008, 0.18 | 0.216, 0.001, 0.027 | -| Cobalt Violet | | 78, 0, 66 | 0.306, 0.0, 0.259 | 0.076, 0.0, 0.054 | -| Ultramarine Blue | | 25, 0, 89 | 0.098, 0.0, 0.349 | 0.01, 0.0, 0.1 | -| Cobalt Blue | | 0, 33, 133 | 0.0, 0.129, 0.522 | 0.0, 0.015, 0.235 | -| Phthalo Blue | | 13, 27, 68 | 0.051, 0.106, 0.267 | 0.004, 0.011, 0.058 | -| Phthalo Green | | 0, 60, 50 | 0.0, 0.235, 0.196 | 0.0, 0.045, 0.032 | -| Permanent Green | | 7, 109, 22 | 0.027, 0.427, 0.086 | 0.002, 0.153, 0.008 | -| Sap Green | | 107, 148, 4 | 0.42, 0.58, 0.016 | 0.147, 0.296, 0.001 | -| Burnt Sienna | | 123, 72, 0 | 0.482, 0.282, 0.0 | 0.198, 0.065, 0.0 | - -## License -Copyright (c) 2022, Secret Weapons. All rights reserved.
-Mixbox is provided under the CC BY-NC 4.0 license for non-commercial use only.
-If you want to obtain commercial license, please contact: mixbox@scrtwpns.com diff --git a/godot/addons/mixbox/mixbox.gd b/godot/addons/mixbox/mixbox.gd deleted file mode 100644 index e1ead2b..0000000 --- a/godot/addons/mixbox/mixbox.gd +++ /dev/null @@ -1,198 +0,0 @@ -# ========================================================== -# MIXBOX 2.0 (c) 2022 Secret Weapons. All rights reserved. -# License: Creative Commons Attribution-NonCommercial 4.0 -# Authors: Sarka Sochorova and Ondrej Jamriska -# ========================================================== -# -# BASIC USAGE -# -# var color_mix = Mixbox.lerp(color1, color2, t) -# -# MULTI-COLOR MIXING -# -# var z1 = Mixbox.rgb_to_latent(color1) -# var z2 = Mixbox.rgb_to_latent(color2) -# var z3 = Mixbox.rgb_to_latent(color3) -# -# var z_mix = [] -# z_mix.resize(Mixbox.LATENT_SIZE) -# -# for i in z_mix.size(): # mix together: -# z_mix[i] = (0.3*z1[i] + # 30% of color1 -# 0.6*z2[i] + # 60% of color2 -# 0.1*z3[i]) # 10% of color3 -# -# var color_mix = Mixbox.latent_to_rgb(z_mix) -# -# PIGMENT COLORS -# -# Cadmium Yellow 0.996, 0.925, 0.000 -# Hansa Yellow 0.988, 0.827, 0.000 -# Cadmium Orange 1.000, 0.412, 0.000 -# Cadmium Red 1.000, 0.153, 0.008 -# Quinacridone Magenta 0.502, 0.008, 0.180 -# Cobalt Violet 0.306, 0.000, 0.259 -# Ultramarine Blue 0.098, 0.000, 0.349 -# Cobalt Blue 0.000, 0.129, 0.522 -# Phthalo Blue 0.051, 0.106, 0.267 -# Phthalo Green 0.000, 0.235, 0.196 -# Permanent Green 0.027, 0.427, 0.086 -# Sap Green 0.420, 0.580, 0.016 -# Burnt Sienna 0.482, 0.282, 0.000 -# -# LICENSING -# -# If you want to obtain commercial license, please -# contact us at: mixbox@scrtwpns.com -# - -const lut = preload("mixbox.res").__data__ - -const LATENT_SIZE = 7 - -static func clamp01(value : float) -> float: - return clamp(value, 0.0, 1.0) - -static func eval_polynomial(c0 : float, c1 : float, c2 : float, c3 : float) -> Color: - var r = 0.0 - var g = 0.0 - var b = 0.0 - - var c00 = c0 * c0 - var c11 = c1 * c1 - var c22 = c2 * c2 - var c33 = c3 * c3 - var c01 = c0 * c1 - var c02 = c0 * c2 - var c12 = c1 * c2 - - var w = 0.0 - w = c0*c00; r += +0.07717053*w; g += +0.02826978*w; b += +0.24832992*w; - w = c1*c11; r += +0.95912302*w; g += +0.80256528*w; b += +0.03561839*w; - w = c2*c22; r += +0.74683774*w; g += +0.04868586*w; b += +0.00000000*w; - w = c3*c33; r += +0.99518138*w; g += +0.99978149*w; b += +0.99704802*w; - w = c00*c1; r += +0.04819146*w; g += +0.83363781*w; b += +0.32515377*w; - w = c01*c1; r += -0.68146950*w; g += +1.46107803*w; b += +1.06980936*w; - w = c00*c2; r += +0.27058419*w; g += -0.15324870*w; b += +1.98735057*w; - w = c02*c2; r += +0.80478189*w; g += +0.67093710*w; b += +0.18424500*w; - w = c00*c3; r += -0.35031003*w; g += +1.37855826*w; b += +3.68865000*w; - w = c0*c33; r += +1.05128046*w; g += +1.97815239*w; b += +2.82989073*w; - w = c11*c2; r += +3.21607125*w; g += +0.81270228*w; b += +1.03384539*w; - w = c1*c22; r += +2.78893374*w; g += +0.41565549*w; b += -0.04487295*w; - w = c11*c3; r += +3.02162577*w; g += +2.55374103*w; b += +0.32766114*w; - w = c1*c33; r += +2.95124691*w; g += +2.81201112*w; b += +1.17578442*w; - w = c22*c3; r += +2.82677043*w; g += +0.79933038*w; b += +1.81715262*w; - w = c2*c33; r += +2.99691099*w; g += +1.22593053*w; b += +1.80653661*w; - w = c01*c2; r += +1.87394106*w; g += +2.05027182*w; b += -0.29835996*w; - w = c01*c3; r += +2.56609566*w; g += +7.03428198*w; b += +0.62575374*w; - w = c02*c3; r += +4.08329484*w; g += -1.40408358*w; b += +2.14995522*w; - w = c12*c3; r += +6.00078678*w; g += +2.55552042*w; b += +1.90739502*w; - - return Color(r, g, b) - -static func rgb_to_latent(color : Color) -> Array: - var r = clamp01(color.r) - var g = clamp01(color.g) - var b = clamp01(color.b) - - var x = r * 63.0 - var y = g * 63.0 - var z = b * 63.0 - - var ix = int(x) - var iy = int(y) - var iz = int(z) - - var tx = x - ix - var ty = y - iy - var tz = z - iz - - var xyz = ix + iy*64 + iz*64*64 - - var c0 = 0.0 - var c1 = 0.0 - var c2 = 0.0 - - var w = 0.0 - w = (1.0-tx)*(1.0-ty)*(1.0-tz); c0 += w*lut[xyz+ 192]; c1 += w*lut[xyz+262336]; c2 += w*lut[xyz+524480]; - w = ( tx)*(1.0-ty)*(1.0-tz); c0 += w*lut[xyz+ 193]; c1 += w*lut[xyz+262337]; c2 += w*lut[xyz+524481]; - w = (1.0-tx)*( ty)*(1.0-tz); c0 += w*lut[xyz+ 256]; c1 += w*lut[xyz+262400]; c2 += w*lut[xyz+524544]; - w = ( tx)*( ty)*(1.0-tz); c0 += w*lut[xyz+ 257]; c1 += w*lut[xyz+262401]; c2 += w*lut[xyz+524545]; - w = (1.0-tx)*(1.0-ty)*( tz); c0 += w*lut[xyz+4288]; c1 += w*lut[xyz+266432]; c2 += w*lut[xyz+528576]; - w = ( tx)*(1.0-ty)*( tz); c0 += w*lut[xyz+4289]; c1 += w*lut[xyz+266433]; c2 += w*lut[xyz+528577]; - w = (1.0-tx)*( ty)*( tz); c0 += w*lut[xyz+4352]; c1 += w*lut[xyz+266496]; c2 += w*lut[xyz+528640]; - w = ( tx)*( ty)*( tz); c0 += w*lut[xyz+4353]; c1 += w*lut[xyz+266497]; c2 += w*lut[xyz+528641]; - - c0 /= 255.0 - c1 /= 255.0 - c2 /= 255.0 - - var c3 = 1.0 - (c0 + c1 + c2) - - var c00 = c0 * c0 - var c11 = c1 * c1 - var c22 = c2 * c2 - var c33 = c3 * c3 - var c01 = c0 * c1 - var c02 = c0 * c2 - var c12 = c1 * c2 - - var rmix = 0.0 - var gmix = 0.0 - var bmix = 0.0 - - w = c0*c00; rmix += +0.07717053*w; gmix += +0.02826978*w; bmix += +0.24832992*w; - w = c1*c11; rmix += +0.95912302*w; gmix += +0.80256528*w; bmix += +0.03561839*w; - w = c2*c22; rmix += +0.74683774*w; gmix += +0.04868586*w; bmix += +0.00000000*w; - w = c3*c33; rmix += +0.99518138*w; gmix += +0.99978149*w; bmix += +0.99704802*w; - w = c00*c1; rmix += +0.04819146*w; gmix += +0.83363781*w; bmix += +0.32515377*w; - w = c01*c1; rmix += -0.68146950*w; gmix += +1.46107803*w; bmix += +1.06980936*w; - w = c00*c2; rmix += +0.27058419*w; gmix += -0.15324870*w; bmix += +1.98735057*w; - w = c02*c2; rmix += +0.80478189*w; gmix += +0.67093710*w; bmix += +0.18424500*w; - w = c00*c3; rmix += -0.35031003*w; gmix += +1.37855826*w; bmix += +3.68865000*w; - w = c0*c33; rmix += +1.05128046*w; gmix += +1.97815239*w; bmix += +2.82989073*w; - w = c11*c2; rmix += +3.21607125*w; gmix += +0.81270228*w; bmix += +1.03384539*w; - w = c1*c22; rmix += +2.78893374*w; gmix += +0.41565549*w; bmix += -0.04487295*w; - w = c11*c3; rmix += +3.02162577*w; gmix += +2.55374103*w; bmix += +0.32766114*w; - w = c1*c33; rmix += +2.95124691*w; gmix += +2.81201112*w; bmix += +1.17578442*w; - w = c22*c3; rmix += +2.82677043*w; gmix += +0.79933038*w; bmix += +1.81715262*w; - w = c2*c33; rmix += +2.99691099*w; gmix += +1.22593053*w; bmix += +1.80653661*w; - w = c01*c2; rmix += +1.87394106*w; gmix += +2.05027182*w; bmix += -0.29835996*w; - w = c01*c3; rmix += +2.56609566*w; gmix += +7.03428198*w; bmix += +0.62575374*w; - w = c02*c3; rmix += +4.08329484*w; gmix += -1.40408358*w; bmix += +2.14995522*w; - w = c12*c3; rmix += +6.00078678*w; gmix += +2.55552042*w; bmix += +1.90739502*w; - - return [ - c0, - c1, - c2, - c3, - r - rmix, - g - gmix, - b - bmix, - ] - -static func latent_to_rgb(latent) -> Color: - var rgb = eval_polynomial(latent[0], latent[1], latent[2], latent[3]) - return Color( - clamp01(rgb.r + latent[4]), - clamp01(rgb.g + latent[5]), - clamp01(rgb.b + latent[6]) - ); - -static func lerp(color1 : Color, color2 : Color, t : float) -> Color: - var latent1 = rgb_to_latent(color1) - var latent2 = rgb_to_latent(color2) - - var latent_mix = [] - - latent_mix.resize(LATENT_SIZE) - - for i in latent_mix.size(): - latent_mix[i] = (1.0-t)*latent1[i] + t*latent2[i] - - var color_mix = latent_to_rgb(latent_mix) - - color_mix.a = (1.0-t)*color1.a + t*color2.a - - return color_mix diff --git a/godot/addons/mixbox/mixbox.gdshader b/godot/addons/mixbox/mixbox.gdshader deleted file mode 100644 index d28ed5e..0000000 --- a/godot/addons/mixbox/mixbox.gdshader +++ /dev/null @@ -1,121 +0,0 @@ -// ========================================================== -// MIXBOX 2.0 (c) 2022 Secret Weapons. All rights reserved. -// License: Creative Commons Attribution-NonCommercial 4.0 -// Authors: Sarka Sochorova and Ondrej Jamriska -// ========================================================== -// -// BASIC USAGE -// -// vec3 rgb = mixbox_lerp(rgb1, rgb2, t); -// -// MULTI-COLOR MIXING -// -// mat3 z1 = mixbox_rgb_to_latent(rgb1); -// mat3 z2 = mixbox_rgb_to_latent(rgb2); -// mat3 z3 = mixbox_rgb_to_latent(rgb3); -// -// // mix 30% of rgb1, 60% of rgb2, and 10% of rgb3 -// mat3 z_mix = 0.3*z1 + 0.6*z2 + 0.1*z3; -// -// vec3 rgb_mix = mixbox_latent_to_rgb(z_mix); -// -// PIGMENT COLORS -// -// Cadmium Yellow 0.996, 0.925, 0.000 -// Hansa Yellow 0.988, 0.827, 0.000 -// Cadmium Orange 1.000, 0.412, 0.000 -// Cadmium Red 1.000, 0.153, 0.008 -// Quinacridone Magenta 0.502, 0.008, 0.180 -// Cobalt Violet 0.306, 0.000, 0.259 -// Ultramarine Blue 0.098, 0.000, 0.349 -// Cobalt Blue 0.000, 0.129, 0.522 -// Phthalo Blue 0.051, 0.106, 0.267 -// Phthalo Green 0.000, 0.235, 0.196 -// Permanent Green 0.027, 0.427, 0.086 -// Sap Green 0.420, 0.580, 0.016 -// Burnt Sienna 0.482, 0.282, 0.000 -// -// LICENSING -// -// If you want to obtain commercial license, please -// contact us at: mixbox@scrtwpns.com -// - -shader_type canvas_item; - -uniform sampler2D mixbox_lut; // attach "addons/mixbox/mixbox_lut.png" here - -uniform vec4 color1 : hint_color = vec4(0.0, 0.129, 0.522, 1.0); // blue -uniform vec4 color2 : hint_color = vec4(0.988, 0.827, 0.0, 1.0); // yellow - -vec3 _mixbox_eval_polynomial(vec3 _mixbox_c) { - float _mixbox_c0 = _mixbox_c[0]; - float _mixbox_c1 = _mixbox_c[1]; - float _mixbox_c2 = _mixbox_c[2]; - float _mixbox_c3 = 1.0 - (_mixbox_c0 + _mixbox_c1 + _mixbox_c2); - - float _mixbox_c00 = _mixbox_c0 * _mixbox_c0; - float _mixbox_c11 = _mixbox_c1 * _mixbox_c1; - float _mixbox_c22 = _mixbox_c2 * _mixbox_c2; - float _mixbox_c01 = _mixbox_c0 * _mixbox_c1; - float _mixbox_c02 = _mixbox_c0 * _mixbox_c2; - float _mixbox_c12 = _mixbox_c1 * _mixbox_c2; - float _mixbox_c33 = _mixbox_c3 * _mixbox_c3; - - return ( - (_mixbox_c0 * _mixbox_c00) * vec3(+0.07717053, +0.02826978, +0.24832992) + - (_mixbox_c1 * _mixbox_c11) * vec3(+0.95912302, +0.80256528, +0.03561839) + - (_mixbox_c2 * _mixbox_c22) * vec3(+0.74683774, +0.04868586, +0.00000000) + - (_mixbox_c3 * _mixbox_c33) * vec3(+0.99518138, +0.99978149, +0.99704802) + - (_mixbox_c00 * _mixbox_c1) * vec3(+0.04819146, +0.83363781, +0.32515377) + - (_mixbox_c01 * _mixbox_c1) * vec3(-0.68146950, +1.46107803, +1.06980936) + - (_mixbox_c00 * _mixbox_c2) * vec3(+0.27058419, -0.15324870, +1.98735057) + - (_mixbox_c02 * _mixbox_c2) * vec3(+0.80478189, +0.67093710, +0.18424500) + - (_mixbox_c00 * _mixbox_c3) * vec3(-0.35031003, +1.37855826, +3.68865000) + - (_mixbox_c0 * _mixbox_c33) * vec3(+1.05128046, +1.97815239, +2.82989073) + - (_mixbox_c11 * _mixbox_c2) * vec3(+3.21607125, +0.81270228, +1.03384539) + - (_mixbox_c1 * _mixbox_c22) * vec3(+2.78893374, +0.41565549, -0.04487295) + - (_mixbox_c11 * _mixbox_c3) * vec3(+3.02162577, +2.55374103, +0.32766114) + - (_mixbox_c1 * _mixbox_c33) * vec3(+2.95124691, +2.81201112, +1.17578442) + - (_mixbox_c22 * _mixbox_c3) * vec3(+2.82677043, +0.79933038, +1.81715262) + - (_mixbox_c2 * _mixbox_c33) * vec3(+2.99691099, +1.22593053, +1.80653661) + - (_mixbox_c01 * _mixbox_c2) * vec3(+1.87394106, +2.05027182, -0.29835996) + - (_mixbox_c01 * _mixbox_c3) * vec3(+2.56609566, +7.03428198, +0.62575374) + - (_mixbox_c02 * _mixbox_c3) * vec3(+4.08329484, -1.40408358, +2.14995522) + - (_mixbox_c12 * _mixbox_c3) * vec3(+6.00078678, +2.55552042, +1.90739502)); -} - -mat3 mixbox_rgb_to_latent(vec3 _mixbox_rgb) { - _mixbox_rgb = clamp(_mixbox_rgb, 0.0, 1.0); - - float _mixbox_x = _mixbox_rgb.r * 63.0; - float _mixbox_y = _mixbox_rgb.g * 63.0; - float _mixbox_z = _mixbox_rgb.b * 63.0; - - float _mixbox_iz = floor(_mixbox_z); - - float _mixbox_x0 = mod(_mixbox_iz, 8.0) * 64.0; - float _mixbox_y0 = floor(_mixbox_iz / 8.0) * 64.0; - - float _mixbox_x1 = mod(_mixbox_iz + 1.0, 8.0) * 64.0; - float _mixbox_y1 = floor((_mixbox_iz + 1.0) / 8.0) * 64.0; - - vec2 _mixbox_uv0 = vec2(_mixbox_x0 + _mixbox_x + 0.5, _mixbox_y0 + _mixbox_y + 0.5) / 512.0; - vec2 _mixbox_uv1 = vec2(_mixbox_x1 + _mixbox_x + 0.5, _mixbox_y1 + _mixbox_y + 0.5) / 512.0; - - vec3 _mixbox_c = mix(textureLod(mixbox_lut, _mixbox_uv0, 0.0).rgb, textureLod(mixbox_lut, _mixbox_uv1, 0.0).rgb, _mixbox_z - _mixbox_iz); - - return mat3(_mixbox_c, _mixbox_rgb - _mixbox_eval_polynomial(_mixbox_c), vec3(0.0)); -} - -vec3 mixbox_latent_to_rgb(mat3 _mixbox_latent) { - return clamp(_mixbox_eval_polynomial(_mixbox_latent[0]) + _mixbox_latent[1], 0.0, 1.0); -} - -vec4 mixbox_lerp(vec4 _mixbox_color1, vec4 _mixbox_color2, float _mixbox_t) { - return vec4(mixbox_latent_to_rgb((1.0-_mixbox_t)*mixbox_rgb_to_latent(_mixbox_color1.rgb) + _mixbox_t*mixbox_rgb_to_latent(_mixbox_color2.rgb)), mix(_mixbox_color1.a, _mixbox_color2.a, _mixbox_t)); -} - -void fragment() { - COLOR = mixbox_lerp(color1, color2, UV.x); -} diff --git a/godot/addons/mixbox/mixbox.gdshaderinc b/godot/addons/mixbox/mixbox.gdshaderinc deleted file mode 100644 index dc7c607..0000000 --- a/godot/addons/mixbox/mixbox.gdshaderinc +++ /dev/null @@ -1,110 +0,0 @@ -// ========================================================== -// MIXBOX 2.0 (c) 2022 Secret Weapons. All rights reserved. -// License: Creative Commons Attribution-NonCommercial 4.0 -// Authors: Sarka Sochorova and Ondrej Jamriska -// ========================================================== -// -// BASIC USAGE -// -// vec3 rgb = mixbox_lerp(rgb1, rgb2, t); -// -// MULTI-COLOR MIXING -// -// mat3 z1 = mixbox_rgb_to_latent(rgb1); -// mat3 z2 = mixbox_rgb_to_latent(rgb2); -// mat3 z3 = mixbox_rgb_to_latent(rgb3); -// -// // mix 30% of rgb1, 60% of rgb2, and 10% of rgb3 -// mat3 z_mix = 0.3*z1 + 0.6*z2 + 0.1*z3; -// -// vec3 rgb_mix = mixbox_latent_to_rgb(z_mix); -// -// PIGMENT COLORS -// -// Cadmium Yellow 0.996, 0.925, 0.000 -// Hansa Yellow 0.988, 0.827, 0.000 -// Cadmium Orange 1.000, 0.412, 0.000 -// Cadmium Red 1.000, 0.153, 0.008 -// Quinacridone Magenta 0.502, 0.008, 0.180 -// Cobalt Violet 0.306, 0.000, 0.259 -// Ultramarine Blue 0.098, 0.000, 0.349 -// Cobalt Blue 0.000, 0.129, 0.522 -// Phthalo Blue 0.051, 0.106, 0.267 -// Phthalo Green 0.000, 0.235, 0.196 -// Permanent Green 0.027, 0.427, 0.086 -// Sap Green 0.420, 0.580, 0.016 -// Burnt Sienna 0.482, 0.282, 0.000 -// -// LICENSING -// -// If you want to obtain commercial license, please -// contact us at: mixbox@scrtwpns.com -// - -vec3 _mixbox_eval_polynomial(vec3 _mixbox_c) { - float _mixbox_c0 = _mixbox_c[0]; - float _mixbox_c1 = _mixbox_c[1]; - float _mixbox_c2 = _mixbox_c[2]; - float _mixbox_c3 = 1.0 - (_mixbox_c0 + _mixbox_c1 + _mixbox_c2); - - float _mixbox_c00 = _mixbox_c0 * _mixbox_c0; - float _mixbox_c11 = _mixbox_c1 * _mixbox_c1; - float _mixbox_c22 = _mixbox_c2 * _mixbox_c2; - float _mixbox_c01 = _mixbox_c0 * _mixbox_c1; - float _mixbox_c02 = _mixbox_c0 * _mixbox_c2; - float _mixbox_c12 = _mixbox_c1 * _mixbox_c2; - float _mixbox_c33 = _mixbox_c3 * _mixbox_c3; - - return ( - (_mixbox_c0 * _mixbox_c00) * vec3(+0.07717053, +0.02826978, +0.24832992) + - (_mixbox_c1 * _mixbox_c11) * vec3(+0.95912302, +0.80256528, +0.03561839) + - (_mixbox_c2 * _mixbox_c22) * vec3(+0.74683774, +0.04868586, +0.00000000) + - (_mixbox_c3 * _mixbox_c33) * vec3(+0.99518138, +0.99978149, +0.99704802) + - (_mixbox_c00 * _mixbox_c1) * vec3(+0.04819146, +0.83363781, +0.32515377) + - (_mixbox_c01 * _mixbox_c1) * vec3(-0.68146950, +1.46107803, +1.06980936) + - (_mixbox_c00 * _mixbox_c2) * vec3(+0.27058419, -0.15324870, +1.98735057) + - (_mixbox_c02 * _mixbox_c2) * vec3(+0.80478189, +0.67093710, +0.18424500) + - (_mixbox_c00 * _mixbox_c3) * vec3(-0.35031003, +1.37855826, +3.68865000) + - (_mixbox_c0 * _mixbox_c33) * vec3(+1.05128046, +1.97815239, +2.82989073) + - (_mixbox_c11 * _mixbox_c2) * vec3(+3.21607125, +0.81270228, +1.03384539) + - (_mixbox_c1 * _mixbox_c22) * vec3(+2.78893374, +0.41565549, -0.04487295) + - (_mixbox_c11 * _mixbox_c3) * vec3(+3.02162577, +2.55374103, +0.32766114) + - (_mixbox_c1 * _mixbox_c33) * vec3(+2.95124691, +2.81201112, +1.17578442) + - (_mixbox_c22 * _mixbox_c3) * vec3(+2.82677043, +0.79933038, +1.81715262) + - (_mixbox_c2 * _mixbox_c33) * vec3(+2.99691099, +1.22593053, +1.80653661) + - (_mixbox_c01 * _mixbox_c2) * vec3(+1.87394106, +2.05027182, -0.29835996) + - (_mixbox_c01 * _mixbox_c3) * vec3(+2.56609566, +7.03428198, +0.62575374) + - (_mixbox_c02 * _mixbox_c3) * vec3(+4.08329484, -1.40408358, +2.14995522) + - (_mixbox_c12 * _mixbox_c3) * vec3(+6.00078678, +2.55552042, +1.90739502)); -} - -mat3 mixbox_rgb_to_latent(vec3 _mixbox_rgb) { - _mixbox_rgb = clamp(_mixbox_rgb, 0.0, 1.0); - - float _mixbox_x = _mixbox_rgb.r * 63.0; - float _mixbox_y = _mixbox_rgb.g * 63.0; - float _mixbox_z = _mixbox_rgb.b * 63.0; - - float _mixbox_iz = floor(_mixbox_z); - - float _mixbox_x0 = mod(_mixbox_iz, 8.0) * 64.0; - float _mixbox_y0 = floor(_mixbox_iz / 8.0) * 64.0; - - float _mixbox_x1 = mod(_mixbox_iz + 1.0, 8.0) * 64.0; - float _mixbox_y1 = floor((_mixbox_iz + 1.0) / 8.0) * 64.0; - - vec2 _mixbox_uv0 = vec2(_mixbox_x0 + _mixbox_x + 0.5, _mixbox_y0 + _mixbox_y + 0.5) / 512.0; - vec2 _mixbox_uv1 = vec2(_mixbox_x1 + _mixbox_x + 0.5, _mixbox_y1 + _mixbox_y + 0.5) / 512.0; - - vec3 _mixbox_c = mix(textureLod(mixbox_lut, _mixbox_uv0, 0.0).rgb, textureLod(mixbox_lut, _mixbox_uv1, 0.0).rgb, _mixbox_z - _mixbox_iz); - - return mat3(_mixbox_c, _mixbox_rgb - _mixbox_eval_polynomial(_mixbox_c), vec3(0.0)); -} - -vec3 mixbox_latent_to_rgb(mat3 _mixbox_latent) { - return clamp(_mixbox_eval_polynomial(_mixbox_latent[0]) + _mixbox_latent[1], 0.0, 1.0); -} - -vec4 mixbox_lerp(vec4 _mixbox_color1, vec4 _mixbox_color2, float _mixbox_t) { - return vec4(mixbox_latent_to_rgb((1.0-_mixbox_t)*mixbox_rgb_to_latent(_mixbox_color1.rgb) + _mixbox_t*mixbox_rgb_to_latent(_mixbox_color2.rgb)), mix(_mixbox_color1.a, _mixbox_color2.a, _mixbox_t)); -} diff --git a/godot/addons/mixbox/mixbox.res b/godot/addons/mixbox/mixbox.res deleted file mode 100644 index 64ea5d5..0000000 Binary files a/godot/addons/mixbox/mixbox.res and /dev/null differ diff --git a/godot/addons/mixbox/mixbox_lerp_node.gd b/godot/addons/mixbox/mixbox_lerp_node.gd deleted file mode 100644 index 3156b1a..0000000 --- a/godot/addons/mixbox/mixbox_lerp_node.gd +++ /dev/null @@ -1,163 +0,0 @@ -# ========================================================== -# MIXBOX 2.0 (c) 2022 Secret Weapons. All rights reserved. -# License: Creative Commons Attribution-NonCommercial 4.0 -# Authors: Sarka Sochorova and Ondrej Jamriska -# ========================================================== -# -# USAGE -# -# VisualShader: Add Node... > Mixbox > MixboxLerp -# -# Inspector: -# Drag file "res://addons/mixbox/mixbox_lut.png" -# to "Material > Shader Param > Mixbox Lut" slot. -# -# PIGMENT COLORS -# -# Cadmium Yellow 0.996, 0.925, 0.000 -# Hansa Yellow 0.988, 0.827, 0.000 -# Cadmium Orange 1.000, 0.412, 0.000 -# Cadmium Red 1.000, 0.153, 0.008 -# Quinacridone Magenta 0.502, 0.008, 0.180 -# Cobalt Violet 0.306, 0.000, 0.259 -# Ultramarine Blue 0.098, 0.000, 0.349 -# Cobalt Blue 0.000, 0.129, 0.522 -# Phthalo Blue 0.051, 0.106, 0.267 -# Phthalo Green 0.000, 0.235, 0.196 -# Permanent Green 0.027, 0.427, 0.086 -# Sap Green 0.420, 0.580, 0.016 -# Burnt Sienna 0.482, 0.282, 0.000 -# -# LICENSING -# -# If you want to obtain commercial license, please -# contact us at: mixbox@scrtwpns.com -# - -tool -extends VisualShaderNodeCustom -class_name VisualShaderNodeMixboxLerp - -func _init(): - set_input_port_default_value(0, Vector3(0.0, 0.129, 0.522)) - set_input_port_default_value(1, Vector3(0.988, 0.827, 0.0)) - set_input_port_default_value(2, 0.5) - -func _get_name(): - return "MixboxLerp" - -func _get_category(): - return "Mixbox" - -func _get_description(): - return "Mixbox" - -func _get_return_icon_type(): - return VisualShaderNode.PORT_TYPE_VECTOR - -func _get_input_port_count(): - return 3 - -func _get_input_port_name(port): - match port: - 0: - return "a" - 1: - return "b" - 2: - return "t" - -func _get_input_port_type(port): - match port: - 0: - return VisualShaderNode.PORT_TYPE_VECTOR - 1: - return VisualShaderNode.PORT_TYPE_VECTOR - 2: - return VisualShaderNode.PORT_TYPE_SCALAR - -func _get_output_port_count(): - return 1 - - -func _get_output_port_name(port): - return "result" - -func _get_output_port_type(port): - return VisualShaderNode.PORT_TYPE_VECTOR - -func _get_global_code(mode): - return """ -uniform sampler2D mixbox_lut; - -vec3 _mixbox_eval_polynomial(vec3 _mixbox_c) { - float _mixbox_c0 = _mixbox_c[0]; - float _mixbox_c1 = _mixbox_c[1]; - float _mixbox_c2 = _mixbox_c[2]; - float _mixbox_c3 = 1.0 - (_mixbox_c0 + _mixbox_c1 + _mixbox_c2); - - float _mixbox_c00 = _mixbox_c0 * _mixbox_c0; - float _mixbox_c11 = _mixbox_c1 * _mixbox_c1; - float _mixbox_c22 = _mixbox_c2 * _mixbox_c2; - float _mixbox_c01 = _mixbox_c0 * _mixbox_c1; - float _mixbox_c02 = _mixbox_c0 * _mixbox_c2; - float _mixbox_c12 = _mixbox_c1 * _mixbox_c2; - float _mixbox_c33 = _mixbox_c3 * _mixbox_c3; - - return ( - (_mixbox_c0 * _mixbox_c00) * vec3(+0.07717053, +0.02826978, +0.24832992) + - (_mixbox_c1 * _mixbox_c11) * vec3(+0.95912302, +0.80256528, +0.03561839) + - (_mixbox_c2 * _mixbox_c22) * vec3(+0.74683774, +0.04868586, +0.00000000) + - (_mixbox_c3 * _mixbox_c33) * vec3(+0.99518138, +0.99978149, +0.99704802) + - (_mixbox_c00 * _mixbox_c1) * vec3(+0.04819146, +0.83363781, +0.32515377) + - (_mixbox_c01 * _mixbox_c1) * vec3(-0.68146950, +1.46107803, +1.06980936) + - (_mixbox_c00 * _mixbox_c2) * vec3(+0.27058419, -0.15324870, +1.98735057) + - (_mixbox_c02 * _mixbox_c2) * vec3(+0.80478189, +0.67093710, +0.18424500) + - (_mixbox_c00 * _mixbox_c3) * vec3(-0.35031003, +1.37855826, +3.68865000) + - (_mixbox_c0 * _mixbox_c33) * vec3(+1.05128046, +1.97815239, +2.82989073) + - (_mixbox_c11 * _mixbox_c2) * vec3(+3.21607125, +0.81270228, +1.03384539) + - (_mixbox_c1 * _mixbox_c22) * vec3(+2.78893374, +0.41565549, -0.04487295) + - (_mixbox_c11 * _mixbox_c3) * vec3(+3.02162577, +2.55374103, +0.32766114) + - (_mixbox_c1 * _mixbox_c33) * vec3(+2.95124691, +2.81201112, +1.17578442) + - (_mixbox_c22 * _mixbox_c3) * vec3(+2.82677043, +0.79933038, +1.81715262) + - (_mixbox_c2 * _mixbox_c33) * vec3(+2.99691099, +1.22593053, +1.80653661) + - (_mixbox_c01 * _mixbox_c2) * vec3(+1.87394106, +2.05027182, -0.29835996) + - (_mixbox_c01 * _mixbox_c3) * vec3(+2.56609566, +7.03428198, +0.62575374) + - (_mixbox_c02 * _mixbox_c3) * vec3(+4.08329484, -1.40408358, +2.14995522) + - (_mixbox_c12 * _mixbox_c3) * vec3(+6.00078678, +2.55552042, +1.90739502)); -} - -mat3 _mixbox_rgb_to_latent(vec3 _mixbox_rgb) { - _mixbox_rgb = clamp(_mixbox_rgb, 0.0, 1.0); - - float _mixbox_x = _mixbox_rgb.r * 63.0; - float _mixbox_y = _mixbox_rgb.g * 63.0; - float _mixbox_z = _mixbox_rgb.b * 63.0; - - float _mixbox_iz = floor(_mixbox_z); - - float _mixbox_x0 = mod(_mixbox_iz, 8.0) * 64.0; - float _mixbox_y0 = floor(_mixbox_iz / 8.0) * 64.0; - - float _mixbox_x1 = mod(_mixbox_iz + 1.0, 8.0) * 64.0; - float _mixbox_y1 = floor((_mixbox_iz + 1.0) / 8.0) * 64.0; - - vec2 _mixbox_uv0 = vec2(_mixbox_x0 + _mixbox_x + 0.5, _mixbox_y0 + _mixbox_y + 0.5) / 512.0; - vec2 _mixbox_uv1 = vec2(_mixbox_x1 + _mixbox_x + 0.5, _mixbox_y1 + _mixbox_y + 0.5) / 512.0; - - vec3 _mixbox_c = mix(textureLod(mixbox_lut, _mixbox_uv0, 0.0).rgb, textureLod(mixbox_lut, _mixbox_uv1, 0.0).rgb, _mixbox_z - _mixbox_iz); - - return mat3(_mixbox_c, _mixbox_rgb - _mixbox_eval_polynomial(_mixbox_c), vec3(0.0)); -} - -vec3 _mixbox_latent_to_rgb(mat3 _mixbox_latent) { - return clamp(_mixbox_eval_polynomial(_mixbox_latent[0]) + _mixbox_latent[1], 0.0, 1.0); -} - -vec3 _mixbox_lerp(vec3 _mixbox_color1, vec3 _mixbox_color2, float _mixbox_t) { - return _mixbox_latent_to_rgb((1.0-_mixbox_t)*_mixbox_rgb_to_latent(_mixbox_color1.rgb) + _mixbox_t*_mixbox_rgb_to_latent(_mixbox_color2.rgb)); -} - """ - -func _get_code(input_vars, output_vars, mode, type): - return output_vars[0] + " = _mixbox_lerp(%s, %s, %s);" % [input_vars[0], input_vars[1], input_vars[2]] diff --git a/godot/addons/mixbox/mixbox_lut.png b/godot/addons/mixbox/mixbox_lut.png deleted file mode 100644 index db1286f..0000000 Binary files a/godot/addons/mixbox/mixbox_lut.png and /dev/null differ diff --git a/godot/addons/mixbox/mixbox_lut.png.import b/godot/addons/mixbox/mixbox_lut.png.import deleted file mode 100644 index 6b98872..0000000 --- a/godot/addons/mixbox/mixbox_lut.png.import +++ /dev/null @@ -1,35 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path="res://.import/mixbox_lut.png-d8cb77d0d5322618f1648925da003780.stex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://addons/mixbox/mixbox_lut.png" -dest_files=[ "res://.import/mixbox_lut.png-d8cb77d0d5322618f1648925da003780.stex" ] - -[params] - -compress/mode=3 -compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 -compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 -process/fix_alpha_border=false -process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false -process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 diff --git a/java/README.md b/java/README.md deleted file mode 100644 index 438ff62..0000000 --- a/java/README.md +++ /dev/null @@ -1,105 +0,0 @@ -# Mixbox for Java - -```java -import java.awt.Color; -import com.scrtwpns.Mixbox; - -class HelloMixbox { - public static void main(String[] args) { - Color color1 = new Color(0, 33, 133); // blue - Color color2 = new Color(252, 211, 0); // yellow - float t = 0.5f; // mixing ratio - - Color colorMix = new Color(Mixbox.lerp(color1.getRGB(), color2.getRGB(), t)); - - System.out.print(colorMix); - } -} -``` - -## Android -```java -package com.example.mixboxhelloworld; - -import android.app.Activity; -import android.os.Bundle; -import android.view.View; -import android.graphics.Color; - -import com.scrtwpns.Mixbox; - -public class MainActivity extends Activity { - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - int color1 = Color.rgb(0, 33, 133); // blue - int color2 = Color.rgb(252, 211, 0); // yellow - float t = 0.5f; // mixing ratio - - int colorMix = Mixbox.lerp(color1, color2, t); - - View view = new View(this); - view.setBackgroundColor(colorMix); - setContentView(view); - } -} -``` - -## Mixing Multiple Colors -```java -int mixThree(int color1, int color2, int color3) { - float[] z1 = Mixbox.rgbToLatent(color1); - float[] z2 = Mixbox.rgbToLatent(color2); - float[] z3 = Mixbox.rgbToLatent(color3); - - float[] zMix = new float[Mixbox.LATENT_SIZE]; - - for(int i = 0; i < zMix.length; i++) { - // mix 30% of color1, 60% of color2, and 10% of color3 - zMix[i] = 0.3f*z1[i] + 0.6f*z2[i] + 0.1f*z3[i]; - } - - return Mixbox.latentToRgb(zMix); -} -``` - -## Maven -```xml - - com.scrtwpns - mixbox - 2.0.0 - jar - -``` - -## Gradle -```groovy -implementation 'com.scrtwpns:mixbox:2.0.0' // Groovy -``` -```kotlin -implementation("com.scrtwpns:mixbox:2.0.0") // Kotlin -``` - -## Pigment Colors -| Pigment | | RGB | Float RGB | Linear RGB | -| --- | --- |:----:|:----:|:----:| -| Cadmium Yellow | | 254, 236, 0 | 0.996, 0.925, 0.0 | 0.991, 0.839, 0.0 | -| Hansa Yellow | | 252, 211, 0 | 0.988, 0.827, 0.0 | 0.973, 0.651, 0.0 | -| Cadmium Orange | | 255, 105, 0 | 1.0, 0.412, 0.0 | 1.0, 0.141, 0.0 | -| Cadmium Red | | 255, 39, 2 | 1.0, 0.153, 0.008 | 1.0, 0.02, 0.001 | -| Quinacridone Magenta | | 128, 2, 46 | 0.502, 0.008, 0.18 | 0.216, 0.001, 0.027 | -| Cobalt Violet | | 78, 0, 66 | 0.306, 0.0, 0.259 | 0.076, 0.0, 0.054 | -| Ultramarine Blue | | 25, 0, 89 | 0.098, 0.0, 0.349 | 0.01, 0.0, 0.1 | -| Cobalt Blue | | 0, 33, 133 | 0.0, 0.129, 0.522 | 0.0, 0.015, 0.235 | -| Phthalo Blue | | 13, 27, 68 | 0.051, 0.106, 0.267 | 0.004, 0.011, 0.058 | -| Phthalo Green | | 0, 60, 50 | 0.0, 0.235, 0.196 | 0.0, 0.045, 0.032 | -| Permanent Green | | 7, 109, 22 | 0.027, 0.427, 0.086 | 0.002, 0.153, 0.008 | -| Sap Green | | 107, 148, 4 | 0.42, 0.58, 0.016 | 0.147, 0.296, 0.001 | -| Burnt Sienna | | 123, 72, 0 | 0.482, 0.282, 0.0 | 0.198, 0.065, 0.0 | - -## License -Copyright (c) 2022, Secret Weapons. All rights reserved.
-Mixbox is provided under the CC BY-NC 4.0 license for non-commercial use only.
-If you want to obtain commercial license, please contact: mixbox@scrtwpns.com diff --git a/java/build.bat b/java/build.bat deleted file mode 100644 index 8d39366..0000000 --- a/java/build.bat +++ /dev/null @@ -1 +0,0 @@ -javac -source 1.7 -target 1.7 src\main\java\com\scrtwpns\Mixbox.java -d build && copy src\main\resources\com\scrtwpns\mixbox_lut.dat build\com\scrtwpns && jar -cvf mixbox.jar -C build . diff --git a/java/examples/HelloMixbox.bat b/java/examples/HelloMixbox.bat deleted file mode 100644 index e362e8a..0000000 --- a/java/examples/HelloMixbox.bat +++ /dev/null @@ -1 +0,0 @@ -java -cp ../mixbox.jar HelloMixbox.java diff --git a/java/examples/HelloMixbox.java b/java/examples/HelloMixbox.java deleted file mode 100644 index 1887ac3..0000000 --- a/java/examples/HelloMixbox.java +++ /dev/null @@ -1,14 +0,0 @@ -import java.awt.Color; -import com.scrtwpns.Mixbox; - -class HelloMixbox { - public static void main(String[] args) { - Color color1 = new Color(0, 33, 133); // blue - Color color2 = new Color(252, 211, 0); // yellow - float t = 0.5f; // mixing ratio - - Color colorMix = new Color(Mixbox.lerp(color1.getRGB(), color2.getRGB(), t)); - - System.out.print(colorMix); - } -} diff --git a/java/mixbox.jar b/java/mixbox.jar deleted file mode 100644 index 61128e1..0000000 Binary files a/java/mixbox.jar and /dev/null differ diff --git a/java/pom.xml b/java/pom.xml deleted file mode 100644 index 87fdcf0..0000000 --- a/java/pom.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - 4.0.0 - - com.scrtwpns - mixbox - 2.0.0 - jar - - mixbox - Pigment-Based Color Mixing - https://scrtwpns.com/mixbox - - - - CC-BY-NC-4.0 - https://creativecommons.org/licenses/by-nc/4.0/legalcode - If you want to obtain commercial license, please contact: mixbox@scrtwpns.com - - - - - - Secret Weapons - mixbox@scrtwpns.com - Secret Weapons - https://scrtwpns.com - - - - - scm:git:git://github.com/scrtwpns/mixbox.git - http://github.com/scrtwpns/mixbox - - - - UTF-8 - 1.7 - 1.7 - - - - - - org.apache.maven.plugins - maven-source-plugin - 2.2.1 - - - attach-sources - - jar-no-fork - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - 2.9.1 - - - attach-javadocs - - jar - - - - - - - diff --git a/java/src/main/java/com/scrtwpns/Mixbox.java b/java/src/main/java/com/scrtwpns/Mixbox.java deleted file mode 100644 index ab78096..0000000 --- a/java/src/main/java/com/scrtwpns/Mixbox.java +++ /dev/null @@ -1,357 +0,0 @@ -/* ========================================================== - * MIXBOX 2.0 (c) 2022 Secret Weapons. All rights reserved. - * License: Creative Commons Attribution-NonCommercial 4.0 - * Authors: Sarka Sochorova and Ondrej Jamriska - * ========================================================== - * - * BASIC USAGE - * - * int colorMix = Mixbox.lerp(color1, color2, t); - * - * MULTI-COLOR MIXING - * - * float[] z1 = Mixbox.rgbToLatent(color1); - * float[] z2 = Mixbox.rgbToLatent(color2); - * float[] z3 = Mixbox.rgbToLatent(color3); - * - * float[] zMix = new float[Mixbox.LATENT_SIZE]; - * - * for (int i = 0; i < zMix.length; i++) { // mix: - * zMix[i] = (0.3f*z1[i] + // 30% of color1 - * 0.6f*z2[i] + // 60% of color2 - * 0.1f*z3[i]); // 10% of color3 - * } - * - * int colorMix = Mixbox.latentToRgb(zMix); - * - * PIGMENT COLORS - * - * Cadmium Yellow 254, 236, 0 - * Hansa Yellow 252, 211, 0 - * Cadmium Orange 255, 105, 0 - * Cadmium Red 255, 39, 2 - * Quinacridone Magenta 128, 2, 46 - * Cobalt Violet 78, 0, 66 - * Ultramarine Blue 25, 0, 89 - * Cobalt Blue 0, 33, 133 - * Phthalo Blue 13, 27, 68 - * Phthalo Green 0, 60, 50 - * Permanent Green 7, 109, 22 - * Sap Green 107, 148, 4 - * Burnt Sienna 123, 72, 0 - * - * LICENSING - * - * If you want to obtain commercial license, please - * contact us at: mixbox@scrtwpns.com - * - */ - -package com.scrtwpns; - -import java.io.DataInputStream; -import java.util.zip.Inflater; - -public final class Mixbox { - - public static final int LATENT_SIZE = 7; - - public static int lerp(int color1, int color2, float t) { - final float[] latent1 = rgbToLatent(color1); - final float[] latent2 = rgbToLatent(color2); - - float[] latentMix = new float[LATENT_SIZE]; - - for (int i = 0; i < LATENT_SIZE; i++) { - latentMix[i] = (1.0f-t)*latent1[i] + t*latent2[i]; - } - - final float alpha1 = (color1 >> 24) & 0xFF; - final float alpha2 = (color2 >> 24) & 0xFF; - final int alphaMix = clamp0255(Math.round((1.0f-t)*alpha1 + t*alpha2)); - - return (alphaMix << 24) | (latentToRgb(latentMix) & 0xFFFFFF); - } - - public static int[] lerp(int[] color1, int[] color2, float t) { - final float[] latent1 = rgbToLatent(color1); - final float[] latent2 = rgbToLatent(color2); - - float[] latentMix = new float[LATENT_SIZE]; - - for (int i = 0; i < LATENT_SIZE; i++) { - latentMix[i] = (1.0f-t)*latent1[i] + t*latent2[i]; - } - - final int colorMix = latentToRgb(latentMix); - - if (color1.length == 3 && color2.length == 3) { - return new int[] { (colorMix >> 16) & 0xFF, (colorMix >> 8) & 0xFF, colorMix & 0xFF }; - } - - final int alpha1 = color1.length > 3 ? color1[3] : 255; - final int alpha2 = color2.length > 3 ? color2[3] : 255; - final int alphaMix = clamp0255(Math.round((1.0f-t)*alpha1 + t*alpha2)); - - return new int[] { (colorMix>>16) & 0xFF, (colorMix>>8) & 0xFF, colorMix & 0xFF, alphaMix }; - } - - public static float[] lerpFloat(float[] color1, float[] color2, float t) { - final float[] latent1 = floatRgbToLatent(color1[0], color1[1], color1[2]); - final float[] latent2 = floatRgbToLatent(color2[0], color2[1], color2[2]); - - float[] latentMix = new float[LATENT_SIZE]; - - for (int i = 0; i < LATENT_SIZE; i++) { - latentMix[i] = (1.0f - t)*latent1[i] + t*latent2[i]; - } - - final float[] colorMix = latentToFloatRgb(latentMix); - - if (color1.length == 3 && color2.length == 3) { return colorMix; } - - final float alpha1 = color1.length > 3 ? color1[3] : 1.0f; - final float alpha2 = color2.length > 3 ? color2[3] : 1.0f; - final float alphaMix = (1.0f-t)*alpha1 + t*alpha2; - - return new float[] { colorMix[0], colorMix[1], colorMix[2], alphaMix }; - } - - public static float[] lerpLinearFloat(float[] color1, float[] color2, float t) { - final float[] latent1 = linearFloatRgbToLatent(color1[0], color1[1], color1[2]); - final float[] latent2 = linearFloatRgbToLatent(color2[0], color2[1], color2[2]); - - float[] latentMix = new float[LATENT_SIZE]; - - for (int i = 0; i < LATENT_SIZE; i++) { - latentMix[i] = (1.0f-t)*latent1[i] + t*latent2[i]; - } - - final float[] colorMix = latentToLinearFloatRgb(latentMix); - - if (color1.length == 3 && color2.length == 3) { return colorMix; } - - final float alpha1 = color1.length > 3 ? color1[3] : 1.0f; - final float alpha2 = color2.length > 3 ? color2[3] : 1.0f; - final float alphaMix = (1.0f-t)*alpha1 + t*alpha2; - - return new float[] { colorMix[0], colorMix[1], colorMix[2], alphaMix }; - } - - public static float[] rgbToLatent(int r, int g, int b) { - return floatRgbToLatent(((float)r) / 255.0f, ((float)g) / 255.0f, ((float)b) / 255.0f); - } - - public static float[] rgbToLatent(int[] rgb) { - return rgbToLatent(rgb[0], rgb[1], rgb[2]); - } - - public static float[] rgbToLatent(int color) { - return rgbToLatent((color >> 16) & 0xFF, (color >> 8) & 0xFF, color & 0xFF); - } - - public static int latentToRgb(float[] latent) { - final float[] rgb = evalPolynomial(latent[0], latent[1], latent[2], latent[3]); - return (0xFF000000 | - (((int)Math.round(clamp01(rgb[0] + latent[4]) * 255.0f)) << 16) | - (((int)Math.round(clamp01(rgb[1] + latent[5]) * 255.0f)) << 8) | - (((int)Math.round(clamp01(rgb[2] + latent[6]) * 255.0f)) )); - } - - public static float[] floatRgbToLatent(float r, float g, float b) { - r = clamp01(r); - g = clamp01(g); - b = clamp01(b); - - final float x = r * 63.0f; - final float y = g * 63.0f; - final float z = b * 63.0f; - - final int ix = (int)x; - final int iy = (int)y; - final int iz = (int)z; - - final float tx = x - (float)ix; - final float ty = y - (float)iy; - final float tz = z - (float)iz; - - final int xyz = (ix + iy * 64 + iz * 64 * 64) & 0x3FFFF; - - float c0 = 0.0f; - float c1 = 0.0f; - float c2 = 0.0f; - - float w = 0.0f; - - w = (1.0f-tx)*(1.0f-ty)*(1.0f-tz); c0 += w*(((int)lut[xyz+ 192])&0xFF); c1 += w*(((int)lut[xyz+262336])&0xFF); c2 += w*(((int)lut[xyz+524480])&0xFF); - w = ( tx)*(1.0f-ty)*(1.0f-tz); c0 += w*(((int)lut[xyz+ 193])&0xFF); c1 += w*(((int)lut[xyz+262337])&0xFF); c2 += w*(((int)lut[xyz+524481])&0xFF); - w = (1.0f-tx)*( ty)*(1.0f-tz); c0 += w*(((int)lut[xyz+ 256])&0xFF); c1 += w*(((int)lut[xyz+262400])&0xFF); c2 += w*(((int)lut[xyz+524544])&0xFF); - w = ( tx)*( ty)*(1.0f-tz); c0 += w*(((int)lut[xyz+ 257])&0xFF); c1 += w*(((int)lut[xyz+262401])&0xFF); c2 += w*(((int)lut[xyz+524545])&0xFF); - w = (1.0f-tx)*(1.0f-ty)*( tz); c0 += w*(((int)lut[xyz+4288])&0xFF); c1 += w*(((int)lut[xyz+266432])&0xFF); c2 += w*(((int)lut[xyz+528576])&0xFF); - w = ( tx)*(1.0f-ty)*( tz); c0 += w*(((int)lut[xyz+4289])&0xFF); c1 += w*(((int)lut[xyz+266433])&0xFF); c2 += w*(((int)lut[xyz+528577])&0xFF); - w = (1.0f-tx)*( ty)*( tz); c0 += w*(((int)lut[xyz+4352])&0xFF); c1 += w*(((int)lut[xyz+266496])&0xFF); c2 += w*(((int)lut[xyz+528640])&0xFF); - w = ( tx)*( ty)*( tz); c0 += w*(((int)lut[xyz+4353])&0xFF); c1 += w*(((int)lut[xyz+266497])&0xFF); c2 += w*(((int)lut[xyz+528641])&0xFF); - - c0 /= 255.0f; - c1 /= 255.0f; - c2 /= 255.0f; - - final float c3 = 1.0f - (c0 + c1 + c2); - - float rmix = 0.0f; - float gmix = 0.0f; - float bmix = 0.0f; - - final float c00 = c0 * c0; - final float c11 = c1 * c1; - final float c22 = c2 * c2; - final float c33 = c3 * c3; - final float c01 = c0 * c1; - final float c02 = c0 * c2; - final float c12 = c1 * c2; - - w = c0 * c00; rmix += +0.07717053f * w; gmix += +0.02826978f * w; bmix += +0.24832992f * w; - w = c1 * c11; rmix += +0.95912302f * w; gmix += +0.80256528f * w; bmix += +0.03561839f * w; - w = c2 * c22; rmix += +0.74683774f * w; gmix += +0.04868586f * w; bmix += +0.00000000f * w; - w = c3 * c33; rmix += +0.99518138f * w; gmix += +0.99978149f * w; bmix += +0.99704802f * w; - w = c00 * c1; rmix += +0.04819146f * w; gmix += +0.83363781f * w; bmix += +0.32515377f * w; - w = c01 * c1; rmix += -0.68146950f * w; gmix += +1.46107803f * w; bmix += +1.06980936f * w; - w = c00 * c2; rmix += +0.27058419f * w; gmix += -0.15324870f * w; bmix += +1.98735057f * w; - w = c02 * c2; rmix += +0.80478189f * w; gmix += +0.67093710f * w; bmix += +0.18424500f * w; - w = c00 * c3; rmix += -0.35031003f * w; gmix += +1.37855826f * w; bmix += +3.68865000f * w; - w = c0 * c33; rmix += +1.05128046f * w; gmix += +1.97815239f * w; bmix += +2.82989073f * w; - w = c11 * c2; rmix += +3.21607125f * w; gmix += +0.81270228f * w; bmix += +1.03384539f * w; - w = c1 * c22; rmix += +2.78893374f * w; gmix += +0.41565549f * w; bmix += -0.04487295f * w; - w = c11 * c3; rmix += +3.02162577f * w; gmix += +2.55374103f * w; bmix += +0.32766114f * w; - w = c1 * c33; rmix += +2.95124691f * w; gmix += +2.81201112f * w; bmix += +1.17578442f * w; - w = c22 * c3; rmix += +2.82677043f * w; gmix += +0.79933038f * w; bmix += +1.81715262f * w; - w = c2 * c33; rmix += +2.99691099f * w; gmix += +1.22593053f * w; bmix += +1.80653661f * w; - w = c01 * c2; rmix += +1.87394106f * w; gmix += +2.05027182f * w; bmix += -0.29835996f * w; - w = c01 * c3; rmix += +2.56609566f * w; gmix += +7.03428198f * w; bmix += +0.62575374f * w; - w = c02 * c3; rmix += +4.08329484f * w; gmix += -1.40408358f * w; bmix += +2.14995522f * w; - w = c12 * c3; rmix += +6.00078678f * w; gmix += +2.55552042f * w; bmix += +1.90739502f * w; - - return new float[] { - c0, - c1, - c2, - c3, - r - rmix, - g - gmix, - b - bmix, - }; - } - - public static float[] floatRgbToLatent(float[] rgb) { - return floatRgbToLatent(rgb[0], rgb[1], rgb[2]); - } - - public static float[] latentToFloatRgb(float[] latent) { - final float[] rgb = evalPolynomial(latent[0], latent[1], latent[2], latent[3]); - return new float[] { - clamp01(rgb[0] + latent[4]), - clamp01(rgb[1] + latent[5]), - clamp01(rgb[2] + latent[6]), - }; - } - - public static float[] linearFloatRgbToLatent(float r, float g, float b) { - return floatRgbToLatent(linearToSrgb(r), - linearToSrgb(g), - linearToSrgb(b)); - } - - public static float[] linearFloatRgbToLatent(float[] rgb) { - return linearFloatRgbToLatent(rgb[0], rgb[1], rgb[2]); - } - - public static float[] latentToLinearFloatRgb(float[] latent) { - final float[] rgb = latentToFloatRgb(latent); - return new float[] { - srgbToLinear(rgb[0]), - srgbToLinear(rgb[1]), - srgbToLinear(rgb[2]), - }; - } - - private static float clamp01(float x) - { - return x < 0.0f ? 0.0f : x > 1.0f ? 1.0f : x; - } - - private static int clamp0255(int x) - { - return x < 0 ? 0 : x > 255 ? 255 : x; - } - - private static float srgbToLinear(float x) { - return (x >= 0.04045f) ? (float)Math.pow((x + 0.055f) / 1.055f,2.4f) : x / 12.92f; - } - - private static float linearToSrgb(float x) { - return (x >= 0.0031308f) ? 1.055f * ((float)Math.pow(x,1.0f / 2.4f)) - 0.055f : 12.92f * x; - } - - private static float[] evalPolynomial(float c0, float c1, float c2, float c3) - { - float r = 0.0f; - float g = 0.0f; - float b = 0.0f; - - final float c00 = c0 * c0; - final float c11 = c1 * c1; - final float c22 = c2 * c2; - final float c33 = c3 * c3; - final float c01 = c0 * c1; - final float c02 = c0 * c2; - final float c12 = c1 * c2; - - float w = 0.0f; - w = c0 * c00; r += +0.07717053f * w; g += +0.02826978f * w; b += +0.24832992f * w; - w = c1 * c11; r += +0.95912302f * w; g += +0.80256528f * w; b += +0.03561839f * w; - w = c2 * c22; r += +0.74683774f * w; g += +0.04868586f * w; b += +0.00000000f * w; - w = c3 * c33; r += +0.99518138f * w; g += +0.99978149f * w; b += +0.99704802f * w; - w = c00 * c1; r += +0.04819146f * w; g += +0.83363781f * w; b += +0.32515377f * w; - w = c01 * c1; r += -0.68146950f * w; g += +1.46107803f * w; b += +1.06980936f * w; - w = c00 * c2; r += +0.27058419f * w; g += -0.15324870f * w; b += +1.98735057f * w; - w = c02 * c2; r += +0.80478189f * w; g += +0.67093710f * w; b += +0.18424500f * w; - w = c00 * c3; r += -0.35031003f * w; g += +1.37855826f * w; b += +3.68865000f * w; - w = c0 * c33; r += +1.05128046f * w; g += +1.97815239f * w; b += +2.82989073f * w; - w = c11 * c2; r += +3.21607125f * w; g += +0.81270228f * w; b += +1.03384539f * w; - w = c1 * c22; r += +2.78893374f * w; g += +0.41565549f * w; b += -0.04487295f * w; - w = c11 * c3; r += +3.02162577f * w; g += +2.55374103f * w; b += +0.32766114f * w; - w = c1 * c33; r += +2.95124691f * w; g += +2.81201112f * w; b += +1.17578442f * w; - w = c22 * c3; r += +2.82677043f * w; g += +0.79933038f * w; b += +1.81715262f * w; - w = c2 * c33; r += +2.99691099f * w; g += +1.22593053f * w; b += +1.80653661f * w; - w = c01 * c2; r += +1.87394106f * w; g += +2.05027182f * w; b += -0.29835996f * w; - w = c01 * c3; r += +2.56609566f * w; g += +7.03428198f * w; b += +0.62575374f * w; - w = c02 * c3; r += +4.08329484f * w; g += -1.40408358f * w; b += +2.14995522f * w; - w = c12 * c3; r += +6.00078678f * w; g += +2.55552042f * w; b += +1.90739502f * w; - - return new float[] { r, g, b }; - } - - private static final byte lut[]; - - static { - lut = new byte[64 * 64 * 64 * 3 + 4353]; - - try { - byte[] deflatedBytes = new byte[113551 - 192]; - DataInputStream dis = new DataInputStream(Mixbox.class.getResourceAsStream("mixbox_lut.dat")); - dis.skipBytes(192); - dis.readFully(deflatedBytes); - dis.close(); - - Inflater inflater = new Inflater(true); - inflater.setInput(deflatedBytes); - inflater.inflate(lut); - - for (int i = 0; i < lut.length; i++) { - lut[i] = (byte)((((i & 63) != 0) ? lut[i - 1] : 127) + (lut[i] - 127)); - } - } catch (Exception e) { - - } - } -} diff --git a/java/src/main/resources/com/scrtwpns/mixbox_lut.dat b/java/src/main/resources/com/scrtwpns/mixbox_lut.dat deleted file mode 100644 index 7d449ea..0000000 Binary files a/java/src/main/resources/com/scrtwpns/mixbox_lut.dat and /dev/null differ diff --git a/javascript/README.md b/javascript/README.md deleted file mode 100644 index b996113..0000000 --- a/javascript/README.md +++ /dev/null @@ -1,112 +0,0 @@ -# Mixbox for Javascript - -```html - -``` -```javascript -import mixbox from 'https://scrtwpns.com/mixbox.esm.js'; // for ES6 module use this instead -``` - -### Node -``` -npm install mixbox -``` -```javascript -import mixbox from 'mixbox'; -``` - -## Usage -```javascript -var rgb1 = "rgb(0, 33, 133)"; // blue -var rgb2 = "rgb(252, 211, 0)"; // yellow -var t = 0.5; // mixing ratio - -var mixed = mixbox.lerp(rgb1, rgb2, t); - -console.log(mixed); -``` - -## Mixing Multiple Colors -```javascript -var z1 = mixbox.rgbToLatent(rgb1); -var z2 = mixbox.rgbToLatent(rgb2); -var z3 = mixbox.rgbToLatent(rgb3); - -var zMix = new Array(mixbox.LATENT_SIZE); - -for (var i = 0; i < zMix.length; i++) { // mix: - zMix[i] = (0.3*z1[i] + // 30% of rgb1 - 0.6*z2[i] + // 60% of rgb2 - 0.1*z3[i]); // 10% of rgb3 -} - -var rgbMix = mixbox.latentToRgb(zMix); -``` - -## Pigment Colors -| Pigment | | RGB | Float RGB | Linear RGB | -| --- | --- |:----:|:----:|:----:| -| Cadmium Yellow | | 254, 236, 0 | 0.996, 0.925, 0.0 | 0.991, 0.839, 0.0 | -| Hansa Yellow | | 252, 211, 0 | 0.988, 0.827, 0.0 | 0.973, 0.651, 0.0 | -| Cadmium Orange | | 255, 105, 0 | 1.0, 0.412, 0.0 | 1.0, 0.141, 0.0 | -| Cadmium Red | | 255, 39, 2 | 1.0, 0.153, 0.008 | 1.0, 0.02, 0.001 | -| Quinacridone Magenta | | 128, 2, 46 | 0.502, 0.008, 0.18 | 0.216, 0.001, 0.027 | -| Cobalt Violet | | 78, 0, 66 | 0.306, 0.0, 0.259 | 0.076, 0.0, 0.054 | -| Ultramarine Blue | | 25, 0, 89 | 0.098, 0.0, 0.349 | 0.01, 0.0, 0.1 | -| Cobalt Blue | | 0, 33, 133 | 0.0, 0.129, 0.522 | 0.0, 0.015, 0.235 | -| Phthalo Blue | | 13, 27, 68 | 0.051, 0.106, 0.267 | 0.004, 0.011, 0.058 | -| Phthalo Green | | 0, 60, 50 | 0.0, 0.235, 0.196 | 0.0, 0.045, 0.032 | -| Permanent Green | | 7, 109, 22 | 0.027, 0.427, 0.086 | 0.002, 0.153, 0.008 | -| Sap Green | | 107, 148, 4 | 0.42, 0.58, 0.016 | 0.147, 0.296, 0.001 | -| Burnt Sienna | | 123, 72, 0 | 0.482, 0.282, 0.0 | 0.198, 0.065, 0.0 | - -## Mixbox in WebGL -```javascript -var shader = ` - precision highp float; - - // uncomment the following line if you work in linear space - // #define MIXBOX_COLORSPACE_LINEAR - - uniform sampler2D mixbox_lut; // bind mixbox.lutTexture(gl) here - - #include "mixbox.glsl" - - void main(void) { - vec3 rgb1 = vec3(0, 0.129, 0.522); // blue - vec3 rgb2 = vec3(0.988, 0.827, 0); // yellow - float t = 0.5; // mixing ratio - - vec3 rgb = mixbox_lerp(rgb1, rgb2, t); - - gl_FragColor = vec4(rgb, 1.0); - } -`; - -shader = shader.replace('#include "mixbox.glsl"', mixbox.glsl()); -``` - -```javascript -gl.useProgram(shaderProgram); -gl.activeTexture(gl.TEXTURE0); -gl.bindTexture(gl.TEXTURE_2D, mixbox.lutTexture(gl)); -gl.uniform1i(gl.getUniformLocation(shaderProgram, "mixbox_lut"), 0); -``` - -## Examples - -| Gradients | Mountains | Palette Snakes | -|:---:|:---:|:---:| -| | | | -| [source code](examples/gradients.js) | [source code](examples/mountains.js) | [source code](examples/palette.js) | - -| Splash Art | Paint Mixer | Pigment Fluids | -|:---:|:---:|:---:| -| | | | -| [source code](examples/splash.html) | [source code](examples/mixer.js) | [source code](https://scrtwpns.com/mixbox/fluids/script.js) | - - -## License -Copyright (c) 2022, Secret Weapons. All rights reserved.
-Mixbox is provided under the CC BY-NC 4.0 license for non-commercial use only.
-If you want to obtain commercial license, please contact: mixbox@scrtwpns.com diff --git a/javascript/examples/canvas.html b/javascript/examples/canvas.html deleted file mode 100644 index 73b616e..0000000 --- a/javascript/examples/canvas.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - diff --git a/javascript/examples/gradients.html b/javascript/examples/gradients.html deleted file mode 100644 index b398073..0000000 --- a/javascript/examples/gradients.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - -
-
-
-
-
-
-
-
-

Pick colors

-
-
-
- - diff --git a/javascript/examples/gradients.js b/javascript/examples/gradients.js deleted file mode 100644 index 57bc32b..0000000 --- a/javascript/examples/gradients.js +++ /dev/null @@ -1,147 +0,0 @@ -let colorPicker_A; -let colorPicker_B; -let color_A; -let color_B; - -function setup() { - createCanvas(650, 465); - background(255); - colorMode(RGB); - - colorPicker_A = createColorPicker('#002185'); - colorPicker_A.parent('picker-A'); - color_A = colorPicker_A.color(); - - colorPicker_B = createColorPicker('#fcd200'); - colorPicker_B.parent('picker-B'); - color_B = colorPicker_B.color(); - - drawGradient("Mixbox", color_A, color_B, 50, 200, 65, 465); - drawGradient("RGB", color_A, color_B, 250, 400, 65, 465); - drawGradient("OkLab", color_A, color_B, 450, 600, 65, 465); - -} - -function draw() { - - if(color_A.toString() != colorPicker_A.color().toString() || color_B.toString() != colorPicker_B.color().toString()) - { - background(255); - - color_A = colorPicker_A.color(); - color_B = colorPicker_B.color(); - - drawGradient("Mixbox", color_A, color_B, 50, 200, 65, 465); - drawGradient("RGB", color_A, color_B, 250, 400, 65, 465); - drawGradient("OkLab", color_A, color_B, 450, 600, 65, 465); - } - -} - -function drawGradient(method, color1, color2, x1, x2, y1, y2) -{ - textSize(28); - textStyle(BOLD); - fill(79, 118, 123); - text(method, x1 + (x2-x1)/2 - textWidth(method)/2, y1-30); - let mixedColor; - - for (let y = y1; y <= y2; y++) - { - let t = (y-y1)/(y2-y1); - if(match(method, 'Mixbox')) - { - mixedColor = mixbox.lerp(color1, color2, t); - } - else if(match(method, 'RGB')) - { - mixedColor = lerpColor(color1, color2, t); - } - else if(match(method, 'OkLab')) - { - let c1 = [red(color1), green(color1), blue(color1)]; - let c2 = [red(color2), green(color2), blue(color2)]; - let tmp = linear_to_rgb (oklab_to_linear_srgb(linearMix(linear_srgb_to_oklab(rgb_to_linear(c1)),linear_srgb_to_oklab(rgb_to_linear(c2)),t))); - mixedColor = color(tmp[0], tmp[1], tmp[2]); - } - strokeWeight(2); - stroke(mixedColor); - line(x1, y, x2, y); - noStroke(); - } -} - -/* THE FOLLOWING CODE IS HANDLING THE CONVERSION TO OkLAB SPACE */ -/* https://bottosson.github.io/posts/oklab/ */ - -function linear_srgb_to_oklab(c) -{ - let l = 0.4122214708 * c[0] + 0.5363325363 * c[1] + 0.0514459929 * c[2]; - let m = 0.2119034982 * c[0] + 0.6806995451 * c[1] + 0.1073969566 * c[2]; - let s = 0.0883024619 * c[0] + 0.2817188376 * c[1] + 0.6299787005 * c[2]; - - let l_ = Math.cbrt(l); - let m_ = Math.cbrt(m); - let s_ = Math.cbrt(s); - - var lab = [ 0.2104542553*l_ + 0.7936177850*m_ - 0.0040720468*s_, - 1.9779984951*l_ - 2.4285922050*m_ + 0.4505937099*s_, - 0.0259040371*l_ + 0.7827717662*m_ - 0.8086757660*s_ ]; - - return lab; -} - -function oklab_to_linear_srgb(c) -{ - let l_ = c[0] + 0.3963377774 * c[1] + 0.2158037573 * c[2]; - let m_ = c[0] - 0.1055613458 * c[1] - 0.0638541728 * c[2]; - let s_ = c[0] - 0.0894841775 * c[1] - 1.2914855480 * c[2]; - - let l = l_*l_*l_; - let m = m_*m_*m_; - let s = s_*s_*s_; - - var lrgb = [ 4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s, - -1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s, - -0.0041960863 * l - 0.7034186147 * m + 1.7076147010 * s]; - return lrgb; -} - -function rgb_to_linear(rgb) // receiving Color object, returning array of 3 linear RGB values in range 0-1 -{ - var res = [0,0,0]; - var float_rgb = [rgb[0]/255, rgb[1]/255, rgb[2]/255]; - for (let i = 0; i < 3; ++i) - { - let c = float_rgb[i]; - if (c >= 0.04045) - res[i] = pow((c + 0.055)/(1 + 0.055), 2.4); - else - res[i] = c / 12.92; - } - return res; -} - -function linear_to_rgb(lrgb) // receiving array of 3 linear RGB values, returning an array of gamma encoded RGB values in range 0-255 -{ - var res = [0,0,0]; - for (let i = 0; i < 3; ++i) - { - let c = lrgb[i]; - if (c >= 0.0031308) - res[i] = 1.055 * pow(c, 1.0/2.4) - 0.055; - else - res[i] = 12.92 * c; - } - return [round(res[0]*255), round(res[1]*255), round(res[2]*255)]; -} - -function linearMix (a, b, t) -{ - var res = [0,0,0]; - for(let i=0; i<3; i++) - { - res[i] = a[i] * (1-t) + b[i]*t; - } - return res; -} diff --git a/javascript/examples/hello.html b/javascript/examples/hello.html deleted file mode 100644 index 276f7be..0000000 --- a/javascript/examples/hello.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - -
BLUE
-
MIXED
-
YELLOW
- - - - - - - diff --git a/javascript/examples/mixer.html b/javascript/examples/mixer.html deleted file mode 100644 index bf2a0fe..0000000 --- a/javascript/examples/mixer.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - -
-
-
- - \ No newline at end of file diff --git a/javascript/examples/mixer.js b/javascript/examples/mixer.js deleted file mode 100644 index 80053ba..0000000 --- a/javascript/examples/mixer.js +++ /dev/null @@ -1,133 +0,0 @@ -let width = 650; -let height = 650; -let center_x = width/2; -let center_y = height/2; -let outer_radius = 300; -let inner_radius = 100; -let circle_radius = 45; -var colors = []; -var centers_outside = []; -var centers_inside = []; -var sliders_pos = []; -var mix_t = []; -let numPigments = 0; -let step = 0; -let dragged = -1; - -function setup() { - createCanvas(650, 650); - background(255); - colorMode(RGB); - stroke(125); - strokeWeight(3); - - colors = [color( 255,236,4), color( 252,211,0), color( 255,105,0), color( 225,35,1), color( 191,0,18), color( 128,2,46), color( 78,1,66), color( 74,0,101), color( 16,31,61), color( 13, 27, 68), color( 25, 0, 89), color( 8,34,138), color( 12, 69,118), color( 6, 54, 51), color( 0,74,41), color( 84,50,36), color( 58,39,0), color( 13,9,1), color(249,250,249)]; - - numPigments = colors.length; - step = TWO_PI / numPigments; - - for(let i=0; i -1) - { - mix_t[dragged] = get_t(centers_outside[dragged].x, centers_outside[dragged].y, centers_inside[dragged].x, centers_inside[dragged].y, mouseX, mouseY); - sliders_pos[dragged] = createVector(centers_outside[dragged].x - sin(dragged * step) * mix_t[dragged] * (outer_radius-inner_radius), - centers_outside[dragged].y - cos(dragged * step) * mix_t[dragged] * (outer_radius-inner_radius)); - - background(255); - let weights = 0; - - for(let i=0; i 0.000001) - { - let latent_mix = [0,0,0,0,0,0,0]; - for(let j=0; j0.000001) - { - let latent = mixbox.rgbToLatent(colors[j]); - let t = mix_t[j]/weights; - for(let k=0; k sliders_pos[i].x - circle_radius/2 && - mouseX < sliders_pos[i].x + circle_radius/2 && - mouseY > sliders_pos[i].y - circle_radius/2 && - mouseY < sliders_pos[i].y + circle_radius/2) - { - dragged = i; - } - } -} - -function mouseReleased() -{ - dragged = -1; -} - -function get_t (ax, ay, bx, by, qx, qy) -{ - let u = createVector(bx-ax, by-ay); - let v = createVector(qx-ax, qy-ay); - - let d = (u.x*v.x + u.y*v.y) / u.mag(); - let t = d/u.mag(); - - return clamp(t, 0.0, 1.0); -} - -function clamp(x, lowerlimit, upperlimit) { - if (xupperlimit){return upperlimit;} - else {return x;} -} diff --git a/javascript/examples/mountains.html b/javascript/examples/mountains.html deleted file mode 100644 index a28c795..0000000 --- a/javascript/examples/mountains.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - -
-
-
- - \ No newline at end of file diff --git a/javascript/examples/mountains.js b/javascript/examples/mountains.js deleted file mode 100644 index 5cf51f3..0000000 --- a/javascript/examples/mountains.js +++ /dev/null @@ -1,90 +0,0 @@ -let magenta, yellow, phthalo_blue, titanium_white, phthalo_medium; - -function setup() -{ - createCanvas(800, 650); - background(80); - colorMode(RGB); - strokeWeight(2); - - magenta = color(128,2,46); - yellow = color(255,236,4); - phthalo_blue = color(13,27,68); - titanium_white = color(249,251,249); - phthalo_medium = color(mixbox.lerp(phthalo_blue, titanium_white, 0.5)); -} - -function draw() -{ - for(let y=0; y - - - - - - - - - diff --git a/javascript/examples/palette.html b/javascript/examples/palette.html deleted file mode 100644 index 8d8d939..0000000 --- a/javascript/examples/palette.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - -
-
-
- - \ No newline at end of file diff --git a/javascript/examples/palette.js b/javascript/examples/palette.js deleted file mode 100644 index 16db9b2..0000000 --- a/javascript/examples/palette.js +++ /dev/null @@ -1,129 +0,0 @@ -var visited = []; // coordinates of the boxes the mouse has visited while pressed once -var boxes = []; // all boxes that should be displayed and colored, item is an array [x, y, R, G, B] -let boxSize = 40; -let color1; -let color2; -let valid_start = false; -let valid_end = false; - -function setup() { - - createCanvas(800, 680); - background(80); - colorMode(RGB); - rectMode(CENTER); - - boxes.push([ 60, 60,[ 13, 27, 68]]); // phthalo blue - boxes.push([580, 180,[255, 236, 4]]); // bis yellow - boxes.push([420, 60,[255, 236, 4]]); // bis yellow - boxes.push([220, 300,[255, 208, 0]]); // hansa yellow - boxes.push([420, 380,[ 25, 0, 89]]); // ultramarine blue - boxes.push([500, 260,[ 25, 0, 89]]); // ultramarine blue - boxes.push([700, 380,[225, 35, 1]]); // cadmium red - boxes.push([580, 580,[128, 2, 46]]); // magenta - boxes.push([100, 580,[249, 250, 249]]); // white - boxes.push([260, 580,[249, 250, 249]]); // white - drawBoxes(); -} - -function draw() -{ - // record visited boxes - if(mouseIsPressed === true) - { - let x = snapToGrid(mouseX); - let y = snapToGrid(mouseY); - - let alreadyIn = false; - for(let v=0; v 0) - { - stroke(230); - noFill(); - setLineDash([5, 5]); - for(let v=0; v1 ? v * 1.0/(numVisited-1) : 1; - let mixedColor = mixbox.lerp(color1, color2, t); - boxes.push([visited[v][0], visited[v][1], mixedColor]); - } - } - else{alert("You must start and end inside colored squares.");} - } - - - // clear visited array - visited = []; - - // redraw screen to erase the overlay, clear background, draw boxes - background(80); - drawBoxes(); - -} - -function drawBoxes() -{ - noStroke(); - for(let b=0; b 0 && mouseX < width && mouseY > 0 && mouseY < height) {return true;} - else {return false}; -} diff --git a/javascript/examples/splash.html b/javascript/examples/splash.html deleted file mode 100644 index e83472d..0000000 --- a/javascript/examples/splash.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - -
- - - - - diff --git a/javascript/examples/svg.html b/javascript/examples/svg.html deleted file mode 100644 index c262de7..0000000 --- a/javascript/examples/svg.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - diff --git a/javascript/examples/threejs.html b/javascript/examples/threejs.html deleted file mode 100644 index be1b59f..0000000 --- a/javascript/examples/threejs.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - diff --git a/javascript/examples/webgl.html b/javascript/examples/webgl.html deleted file mode 100644 index 20ac142..0000000 --- a/javascript/examples/webgl.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - diff --git a/javascript/mixbox.esm.js b/javascript/mixbox.esm.js deleted file mode 100644 index eb643fe..0000000 --- a/javascript/mixbox.esm.js +++ /dev/null @@ -1,996 +0,0 @@ -// ========================================================== -// MIXBOX 2.0 (c) 2022 Secret Weapons. All rights reserved. -// License: Creative Commons Attribution-NonCommercial 4.0 -// Authors: Sarka Sochorova and Ondrej Jamriska -// ========================================================== -// -// BASIC USAGE -// -// var rgb = mixbox.lerp(rgb1, rgb2, t); -// -// MULTI-COLOR MIXING -// -// var z1 = mixbox.rgbToLatent(rgb1); -// var z2 = mixbox.rgbToLatent(rgb2); -// var z3 = mixbox.rgbToLatent(rgb3); -// -// var zMix = new Array(mixbox.LATENT_SIZE); -// -// for (var i = 0; i < zMix.length; i++) { // mix: -// zMix[i] = (0.3*z1[i] + // 30% of rgb1 -// 0.6*z2[i] + // 60% of rgb2 -// 0.1*z3[i]); // 10% of rgb3 -// } -// -// var rgbMix = mixbox.latentToRgb(zMix); -// -// PIGMENT COLORS -// -// Cadmium Yellow 254, 236, 0 -// Hansa Yellow 252, 211, 0 -// Cadmium Orange 255, 105, 0 -// Cadmium Red 255, 39, 2 -// Quinacridone Magenta 128, 2, 46 -// Cobalt Violet 78, 0, 66 -// Ultramarine Blue 25, 0, 89 -// Cobalt Blue 0, 33, 133 -// Phthalo Blue 13, 27, 68 -// Phthalo Green 0, 60, 50 -// Permanent Green 7, 109, 22 -// Sap Green 107, 148, 4 -// Burnt Sienna 123, 72, 0 -// -// LICENSING -// -// If you want to obtain commercial license, please -// contact us at: mixbox@scrtwpns.com -// - -function lerp(color1, color2, t) { - color1 = unpackColor(color1); - color2 = unpackColor(color2); - - if (color1 !== undefined && color2 !== undefined) { - var latent1 = unpackedRgbToLatent(color1); - var latent2 = unpackedRgbToLatent(color2); - - var colorMix = latentToRgb(lerpLatent(latent1, latent2, t)); - - if (color1.length === 3 && color2.length === 3) return colorMix; - - var alpha1 = color1.length > 3 ? color1[3] : 255; - var alpha2 = color2.length > 3 ? color2[3] : 255; - colorMix[3] = (((1.0-t)*alpha1 + t*alpha2)+0.5) | 0; - - return colorMix; - } -} - -function lerpFloat(color1, color2, t) { - color1 = unpackFloatColor(color1); - color2 = unpackFloatColor(color2); - - if (color1 !== undefined && color2 !== undefined) { - var latent1 = unpackedFloatRgbToLatent(color1); - var latent2 = unpackedFloatRgbToLatent(color2); - - var colorMix = latentToFloatRgb(lerpLatent(latent1, latent2, t)); - - if (color1.length === 3 && color2.length === 3) return colorMix; - - var alpha1 = color1.length > 3 ? color1[3] : 1.0; - var alpha2 = color2.length > 3 ? color2[3] : 1.0; - colorMix[3] = (1.0-t)*alpha1 + t*alpha2; - - return colorMix; - } -} - -function lerpLinearFloat(color1, color2, t) { - color1 = unpackLinearFloatColor(color1); - color2 = unpackLinearFloatColor(color2); - - if (color1 !== undefined && color2 !== undefined) { - var latent1 = unpackedLinearFloatRgbToLatent(color1); - var latent2 = unpackedLinearFloatRgbToLatent(color2); - - var colorMix = latentToLinearFloatRgb(lerpLatent(latent1, latent2, t)); - - if (color1.length === 3 && color2.length === 3) return colorMix; - - var alpha1 = color1.length > 3 ? color1[3] : 1.0; - var alpha2 = color2.length > 3 ? color2[3] : 1.0; - colorMix[3] = (1.0-t)*alpha1 + t*alpha2; - - return colorMix; - } -} - -function rgbArray(r, g, b) { - var rgb = [r, g, b]; - rgb.toString = function() { - return this.length > 3 ? "rgba(" + this[0] + "," + this[1] + "," + this[2] + "," + (this[3]/255.0) + ")" : - "rgb(" + this[0] + "," + this[1] + "," + this[2] + ")"; - } - return rgb; -} - -function rgbToLatent(r, g, b) { - var rgb = unpackColor((g === undefined && b === undefined) ? (r) : [r, g, b]); - if (rgb !== undefined) return unpackedRgbToLatent(rgb); -} - -function latentToRgb(latent) { - if (Array.isArray(latent) && latent.length === 7) { - var rgb = evalPolynomial(latent[0], latent[1], latent[2], latent[3]); - return rgbArray((clamp01(rgb[0] + latent[4])*255.0 + 0.5) | 0, - (clamp01(rgb[1] + latent[5])*255.0 + 0.5) | 0, - (clamp01(rgb[2] + latent[6])*255.0 + 0.5) | 0); - } -} - -function floatRgbToLatent(r, g, b) { - var rgb = unpackFloatColor((g === undefined && b === undefined) ? r : [r, g, b]); - if (rgb !== undefined) return unpackedFloatRgbToLatent(rgb); -} - -function latentToFloatRgb(latent) { - if (Array.isArray(latent) && latent.length === 7) { - var rgb = evalPolynomial(latent[0], latent[1], latent[2], latent[3]); - return [ - clamp01(rgb[0] + latent[4]), - clamp01(rgb[1] + latent[5]), - clamp01(rgb[2] + latent[6]) - ]; - } -} - -function linearFloatRgbToLatent(r, g, b) { - var rgb = unpackLinearFloatColor((g === undefined && b === undefined) ? r : [r, g, b]); - if (rgb !== undefined) return unpackedLinearFloatRgbToLatent(rgb); -} - -function latentToLinearFloatRgb(latent) { - var rgb = latentToFloatRgb(latent); - if (rgb !== undefined) return [ - srgbToLinear(rgb[0]), - srgbToLinear(rgb[1]), - srgbToLinear(rgb[2]) - ]; -} - -function clamp(x, xmin, xmax) { - return Math.min(Math.max(x, xmin), xmax); -} - -function clamp01(x) { - return Math.min(Math.max(x, 0.0), 1.0); -} - -function srgbToLinear(x) { - return (x >= 0.04045) ? Math.pow((x + 0.055) / 1.055, 2.4) : x/12.92; -} - -function linearToSrgb(x) { - return (x >= 0.0031308) ? 1.055*Math.pow(x, 1.0/2.4) - 0.055 : 12.92*x; -} - -function lerpLatent(latent1, latent2, t) { - var latentMix = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]; - - for (var i = 0; i < 7; i++) { - latentMix[i] = (1.0-t)*latent1[i] + t*latent2[i]; - } - - return latentMix; -} - -function unpackColor(color) { - if (Array.isArray(color) && color.length >= 3) { - return color; - } - if (typeof color === 'string') { - return parseColorString(color); - } - if (typeof color === 'object') { - if (typeof color.getHexString === 'function') { - return parseColorString(color.getHexString()); - } - if (!isNaN(color.r) && !isNaN(color.g) && !isNaN(color.b)) { - if (isNaN(color.a)) { return [color.r, color.g, color.b]; } - return [color.r, color.g, color.b, color.a]; - } - return parseColorString(color.toString()); - } - if (typeof color === 'number' && isFinite(color) && Math.floor(color) === color && color >= 0) { - return [ (color >>> 16) & 255, (color >>> 8) & 255, color & 255 ]; - } -} - -function unpackFloatColor(color) { - if (Array.isArray(color) && color.length >= 3) { - return color; - } - if (typeof color === 'object' && !isNaN(color.r) && !isNaN(color.g) && !isNaN(color.b)) { - if (isNaN(color.a)) { return [color.r, color.g, color.b]; } - return [color.r, color.g, color.b, color.a]; - } - if (color = unpackColor(color)) { - for (var i = 0; i < color.length; i++) { color[i] /= 255.0; } - return color; - } -} - -function unpackLinearFloatColor(color) { - if (Array.isArray(color) && color.length >= 3) { - return color; - } - if (typeof color === 'object' && !isNaN(color.r) && !isNaN(color.g) && !isNaN(color.b)) { - if (isNaN(color.a)) { return [color.r, color.g, color.b]; } - return [color.r, color.g, color.b, color.a]; - } - if (color = unpackColor(color)) { - for (var i = 0; i < 3; i++) { color[i] = srgbToLinear(color[i] / 255.0); } - if (color.length > 3) { color[3] /= 255.0; } - return color; - } -} - -function unpackedRgbToLatent(rgb) { - return unpackedFloatRgbToLatent([ - rgb[0] / 255.0, - rgb[1] / 255.0, - rgb[2] / 255.0 - ]); -} - -function unpackedFloatRgbToLatent(rgb) { - var r = clamp01(rgb[0]); - var g = clamp01(rgb[1]); - var b = clamp01(rgb[2]); - - var x = r * 63.0; - var y = g * 63.0; - var z = b * 63.0; - - var ix = x | 0; - var iy = y | 0; - var iz = z | 0; - - var tx = x - ix; - var ty = y - iy; - var tz = z - iz; - - var xyz = ix + iy*64 + iz*64*64; - - var c0 = 0.0; - var c1 = 0.0; - var c2 = 0.0; - - var w = 0.0; - w = (1.0-tx)*(1.0-ty)*(1.0-tz); c0 += w*lut[xyz+ 192]; c1 += w*lut[xyz+262336]; c2 += w*lut[xyz+524480]; - w = ( tx)*(1.0-ty)*(1.0-tz); c0 += w*lut[xyz+ 193]; c1 += w*lut[xyz+262337]; c2 += w*lut[xyz+524481]; - w = (1.0-tx)*( ty)*(1.0-tz); c0 += w*lut[xyz+ 256]; c1 += w*lut[xyz+262400]; c2 += w*lut[xyz+524544]; - w = ( tx)*( ty)*(1.0-tz); c0 += w*lut[xyz+ 257]; c1 += w*lut[xyz+262401]; c2 += w*lut[xyz+524545]; - w = (1.0-tx)*(1.0-ty)*( tz); c0 += w*lut[xyz+4288]; c1 += w*lut[xyz+266432]; c2 += w*lut[xyz+528576]; - w = ( tx)*(1.0-ty)*( tz); c0 += w*lut[xyz+4289]; c1 += w*lut[xyz+266433]; c2 += w*lut[xyz+528577]; - w = (1.0-tx)*( ty)*( tz); c0 += w*lut[xyz+4352]; c1 += w*lut[xyz+266496]; c2 += w*lut[xyz+528640]; - w = ( tx)*( ty)*( tz); c0 += w*lut[xyz+4353]; c1 += w*lut[xyz+266497]; c2 += w*lut[xyz+528641]; - - c0 /= 255.0; - c1 /= 255.0; - c2 /= 255.0; - - var c3 = 1.0 - (c0 + c1 + c2); - - var c00 = c0 * c0; - var c11 = c1 * c1; - var c22 = c2 * c2; - var c33 = c3 * c3; - var c01 = c0 * c1; - var c02 = c0 * c2; - var c12 = c1 * c2; - - var rmix = 0.0; - var gmix = 0.0; - var bmix = 0.0; - - var w = 0.0; - w = c0*c00; rmix += +0.07717053*w; gmix += +0.02826978*w; bmix += +0.24832992*w; - w = c1*c11; rmix += +0.95912302*w; gmix += +0.80256528*w; bmix += +0.03561839*w; - w = c2*c22; rmix += +0.74683774*w; gmix += +0.04868586*w; bmix += +0.00000000*w; - w = c3*c33; rmix += +0.99518138*w; gmix += +0.99978149*w; bmix += +0.99704802*w; - w = c00*c1; rmix += +0.04819146*w; gmix += +0.83363781*w; bmix += +0.32515377*w; - w = c01*c1; rmix += -0.68146950*w; gmix += +1.46107803*w; bmix += +1.06980936*w; - w = c00*c2; rmix += +0.27058419*w; gmix += -0.15324870*w; bmix += +1.98735057*w; - w = c02*c2; rmix += +0.80478189*w; gmix += +0.67093710*w; bmix += +0.18424500*w; - w = c00*c3; rmix += -0.35031003*w; gmix += +1.37855826*w; bmix += +3.68865000*w; - w = c0*c33; rmix += +1.05128046*w; gmix += +1.97815239*w; bmix += +2.82989073*w; - w = c11*c2; rmix += +3.21607125*w; gmix += +0.81270228*w; bmix += +1.03384539*w; - w = c1*c22; rmix += +2.78893374*w; gmix += +0.41565549*w; bmix += -0.04487295*w; - w = c11*c3; rmix += +3.02162577*w; gmix += +2.55374103*w; bmix += +0.32766114*w; - w = c1*c33; rmix += +2.95124691*w; gmix += +2.81201112*w; bmix += +1.17578442*w; - w = c22*c3; rmix += +2.82677043*w; gmix += +0.79933038*w; bmix += +1.81715262*w; - w = c2*c33; rmix += +2.99691099*w; gmix += +1.22593053*w; bmix += +1.80653661*w; - w = c01*c2; rmix += +1.87394106*w; gmix += +2.05027182*w; bmix += -0.29835996*w; - w = c01*c3; rmix += +2.56609566*w; gmix += +7.03428198*w; bmix += +0.62575374*w; - w = c02*c3; rmix += +4.08329484*w; gmix += -1.40408358*w; bmix += +2.14995522*w; - w = c12*c3; rmix += +6.00078678*w; gmix += +2.55552042*w; bmix += +1.90739502*w; - - return [ - c0, - c1, - c2, - c3, - r - rmix, - g - gmix, - b - bmix, - ]; -} - -function unpackedLinearFloatRgbToLatent(rgb) { - return unpackedFloatRgbToLatent([ - linearToSrgb(rgb[0]), - linearToSrgb(rgb[1]), - linearToSrgb(rgb[2]) - ]); -} - -function evalPolynomial(c0, c1, c2, c3) { - var r = 0.0; - var g = 0.0; - var b = 0.0; - - var c00 = c0 * c0; - var c11 = c1 * c1; - var c22 = c2 * c2; - var c33 = c3 * c3; - var c01 = c0 * c1; - var c02 = c0 * c2; - var c12 = c1 * c2; - - var w = 0.0; - w = c0*c00; r += +0.07717053*w; g += +0.02826978*w; b += +0.24832992*w; - w = c1*c11; r += +0.95912302*w; g += +0.80256528*w; b += +0.03561839*w; - w = c2*c22; r += +0.74683774*w; g += +0.04868586*w; b += +0.00000000*w; - w = c3*c33; r += +0.99518138*w; g += +0.99978149*w; b += +0.99704802*w; - w = c00*c1; r += +0.04819146*w; g += +0.83363781*w; b += +0.32515377*w; - w = c01*c1; r += -0.68146950*w; g += +1.46107803*w; b += +1.06980936*w; - w = c00*c2; r += +0.27058419*w; g += -0.15324870*w; b += +1.98735057*w; - w = c02*c2; r += +0.80478189*w; g += +0.67093710*w; b += +0.18424500*w; - w = c00*c3; r += -0.35031003*w; g += +1.37855826*w; b += +3.68865000*w; - w = c0*c33; r += +1.05128046*w; g += +1.97815239*w; b += +2.82989073*w; - w = c11*c2; r += +3.21607125*w; g += +0.81270228*w; b += +1.03384539*w; - w = c1*c22; r += +2.78893374*w; g += +0.41565549*w; b += -0.04487295*w; - w = c11*c3; r += +3.02162577*w; g += +2.55374103*w; b += +0.32766114*w; - w = c1*c33; r += +2.95124691*w; g += +2.81201112*w; b += +1.17578442*w; - w = c22*c3; r += +2.82677043*w; g += +0.79933038*w; b += +1.81715262*w; - w = c2*c33; r += +2.99691099*w; g += +1.22593053*w; b += +1.80653661*w; - w = c01*c2; r += +1.87394106*w; g += +2.05027182*w; b += -0.29835996*w; - w = c01*c3; r += +2.56609566*w; g += +7.03428198*w; b += +0.62575374*w; - w = c02*c3; r += +4.08329484*w; g += -1.40408358*w; b += +2.14995522*w; - w = c12*c3; r += +6.00078678*w; g += +2.55552042*w; b += +1.90739502*w; - - return [r, g, b]; -} - -function hexToUint8(str) { - if (str.length === 1) { str = str + str; } - return parseInt("0x" + str, 16); -} - -function strToUint8(str) { - var value = (str.charAt(str.length - 1) === '%') ? ((Number(str.slice(0, -1)) / 100.0) * 255.0) : Number(str); - return clamp(Math.round(value), 0, 255); -} - -var numRegex = /[+\-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:\d[eE][+\-]?\d+)?%?/; -var rgbRegex = new RegExp('^rgb\\(('+numRegex.source+'),('+numRegex.source+'),('+numRegex.source+')\\)$','i'); -var rgbaRegex = new RegExp('^rgba\\(('+numRegex.source+'),('+numRegex.source+'),('+numRegex.source+'),('+numRegex.source+')\\)$','i'); -var hex3Regex = /^#?([a-f0-9])([a-f0-9])([a-f0-9])$/i; -var hex4Regex = /^#?([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])$/i; -var hex6Regex = /^#?([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})$/i; -var hex8Regex = /^#?([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})$/i; - -function parseColorString(string) { - string = string.replace(/\s/g, ''); - - var matches; - if (matches = rgbRegex.exec(string)) { return [ strToUint8(matches[1]), strToUint8(matches[2]), strToUint8(matches[3]) ]; } - if (matches = rgbaRegex.exec(string)) { return [ strToUint8(matches[1]), strToUint8(matches[2]), strToUint8(matches[3]), clamp(Number(matches[4]) * 255.0, 0, 255) ]; } - if (matches = hex6Regex.exec(string)) { return [ hexToUint8(matches[1]), hexToUint8(matches[2]), hexToUint8(matches[3]) ]; } - if (matches = hex3Regex.exec(string)) { return [ hexToUint8(matches[1]), hexToUint8(matches[2]), hexToUint8(matches[3]) ]; } - if (matches = hex8Regex.exec(string)) { return [ hexToUint8(matches[1]), hexToUint8(matches[2]), hexToUint8(matches[3]), hexToUint8(matches[4]) ]; } - if (matches = hex4Regex.exec(string)) { return [ hexToUint8(matches[1]), hexToUint8(matches[2]), hexToUint8(matches[3]), hexToUint8(matches[4]) ]; } - - var namedColors = { - aliceblue : [ 240, 248, 255 ], - antiquewhite : [ 250, 235, 215 ], - aqua : [ 0, 255, 255 ], - aquamarine : [ 127, 255, 212 ], - azure : [ 240, 255, 255 ], - beige : [ 245, 245, 220 ], - bisque : [ 255, 228, 196 ], - black : [ 0, 0, 0 ], - blanchedalmond : [ 255, 235, 205 ], - blue : [ 0, 0, 255 ], - blueviolet : [ 138, 43, 226 ], - brown : [ 165, 42, 42 ], - burlywood : [ 222, 184, 135 ], - cadetblue : [ 95, 158, 160 ], - chartreuse : [ 127, 255, 0 ], - chocolate : [ 210, 105, 30 ], - coral : [ 255, 127, 80 ], - cornflowerblue : [ 100, 149, 237 ], - cornsilk : [ 255, 248, 220 ], - crimson : [ 220, 20, 60 ], - cyan : [ 0, 255, 255 ], - darkblue : [ 0, 0, 139 ], - darkcyan : [ 0, 139, 139 ], - darkgoldenrod : [ 184, 134, 11 ], - darkgray : [ 169, 169, 169 ], - darkgreen : [ 0, 100, 0 ], - darkgrey : [ 169, 169, 169 ], - darkkhaki : [ 189, 183, 107 ], - darkmagenta : [ 139, 0, 139 ], - darkolivegreen : [ 85, 107, 47 ], - darkorange : [ 255, 140, 0 ], - darkorchid : [ 153, 50, 204 ], - darkred : [ 139, 0, 0 ], - darksalmon : [ 233, 150, 122 ], - darkseagreen : [ 143, 188, 143 ], - darkslateblue : [ 72, 61, 139 ], - darkslategray : [ 47, 79, 79 ], - darkslategrey : [ 47, 79, 79 ], - darkturquoise : [ 0, 206, 209 ], - darkviolet : [ 148, 0, 211 ], - deeppink : [ 255, 20, 147 ], - deepskyblue : [ 0, 191, 255 ], - dimgray : [ 105, 105, 105 ], - dimgrey : [ 105, 105, 105 ], - dodgerblue : [ 30, 144, 255 ], - firebrick : [ 178, 34, 34 ], - floralwhite : [ 255, 250, 240 ], - forestgreen : [ 34, 139, 34 ], - fuchsia : [ 255, 0, 255 ], - gainsboro : [ 220, 220, 220 ], - ghostwhite : [ 248, 248, 255 ], - gold : [ 255, 215, 0 ], - goldenrod : [ 218, 165, 32 ], - gray : [ 128, 128, 128 ], - green : [ 0, 128, 0 ], - greenyellow : [ 173, 255, 47 ], - grey : [ 128, 128, 128 ], - honeydew : [ 240, 255, 240 ], - hotpink : [ 255, 105, 180 ], - indianred : [ 205, 92, 92 ], - indigo : [ 75, 0, 130 ], - ivory : [ 255, 255, 240 ], - khaki : [ 240, 230, 140 ], - lavender : [ 230, 230, 250 ], - lavenderblush : [ 255, 240, 245 ], - lawngreen : [ 124, 252, 0 ], - lemonchiffon : [ 255, 250, 205 ], - lightblue : [ 173, 216, 230 ], - lightcoral : [ 240, 128, 128 ], - lightcyan : [ 224, 255, 255 ], - lightgoldenrodyellow : [ 250, 250, 210 ], - lightgray : [ 211, 211, 211 ], - lightgreen : [ 144, 238, 144 ], - lightgrey : [ 211, 211, 211 ], - lightpink : [ 255, 182, 193 ], - lightsalmon : [ 255, 160, 122 ], - lightseagreen : [ 32, 178, 170 ], - lightskyblue : [ 135, 206, 250 ], - lightslategray : [ 119, 136, 153 ], - lightslategrey : [ 119, 136, 153 ], - lightsteelblue : [ 176, 196, 222 ], - lightyellow : [ 255, 255, 224 ], - lime : [ 0, 255, 0 ], - limegreen : [ 50, 205, 50 ], - linen : [ 250, 240, 230 ], - magenta : [ 255, 0, 255 ], - maroon : [ 128, 0, 0 ], - mediumaquamarine : [ 102, 205, 170 ], - mediumblue : [ 0, 0, 205 ], - mediumorchid : [ 186, 85, 211 ], - mediumpurple : [ 147, 112, 219 ], - mediumseagreen : [ 60, 179, 113 ], - mediumslateblue : [ 123, 104, 238 ], - mediumspringgreen : [ 0, 250, 154 ], - mediumturquoise : [ 72, 209, 204 ], - mediumvioletred : [ 199, 21, 133 ], - midnightblue : [ 25, 25, 112 ], - mintcream : [ 245, 255, 250 ], - mistyrose : [ 255, 228, 225 ], - moccasin : [ 255, 228, 181 ], - navajowhite : [ 255, 222, 173 ], - navy : [ 0, 0, 128 ], - oldlace : [ 253, 245, 230 ], - olive : [ 128, 128, 0 ], - olivedrab : [ 107, 142, 35 ], - orange : [ 255, 165, 0 ], - orangered : [ 255, 69, 0 ], - orchid : [ 218, 112, 214 ], - palegoldenrod : [ 238, 232, 170 ], - palegreen : [ 152, 251, 152 ], - paleturquoise : [ 175, 238, 238 ], - palevioletred : [ 219, 112, 147 ], - papayawhip : [ 255, 239, 213 ], - peachpuff : [ 255, 218, 185 ], - peru : [ 205, 133, 63 ], - pink : [ 255, 192, 203 ], - plum : [ 221, 160, 221 ], - powderblue : [ 176, 224, 230 ], - purple : [ 128, 0, 128 ], - red : [ 255, 0, 0 ], - rosybrown : [ 188, 143, 143 ], - royalblue : [ 65, 105, 225 ], - saddlebrown : [ 139, 69, 19 ], - salmon : [ 250, 128, 114 ], - sandybrown : [ 244, 164, 96 ], - seagreen : [ 46, 139, 87 ], - seashell : [ 255, 245, 238 ], - sienna : [ 160, 82, 45 ], - silver : [ 192, 192, 192 ], - skyblue : [ 135, 206, 235 ], - slateblue : [ 106, 90, 205 ], - slategray : [ 112, 128, 144 ], - slategrey : [ 112, 128, 144 ], - snow : [ 255, 250, 250 ], - springgreen : [ 0, 255, 127 ], - steelblue : [ 70, 130, 180 ], - tan : [ 210, 180, 140 ], - teal : [ 0, 128, 128 ], - thistle : [ 216, 191, 216 ], - tomato : [ 255, 99, 71 ], - turquoise : [ 64, 224, 208 ], - violet : [ 238, 130, 238 ], - wheat : [ 245, 222, 179 ], - white : [ 255, 255, 255 ], - whitesmoke : [ 245, 245, 245 ], - yellow : [ 255, 255, 0 ], - yellowgreen : [ 154, 205, 50 ], - }; - - var name = string.toLowerCase(); - if (namedColors.hasOwnProperty(name)) return namedColors[name]; -} - -function glsl() { - return "#ifndef MIXBOX_INCLUDED\n" + - "#define MIXBOX_INCLUDED\n" + - "\n" + - "#ifndef MIXBOX_LUT\n" + - " #if __VERSION__ <= 120\n" + - " #define MIXBOX_LUT(UV) texture2D(mixbox_lut, UV)\n" + - " #else\n" + - " #define MIXBOX_LUT(UV) textureLod(mixbox_lut, UV, 0.0)\n" + - " #endif\n" + - "#endif\n" + - "\n" + - "#define mixbox_latent mat3\n" + - "\n" + - "vec3 mixbox_eval_polynomial(vec3 c)\n" + - "{\n" + - " float c0 = c[0];\n" + - " float c1 = c[1];\n" + - " float c2 = c[2];\n" + - " float c3 = 1.0 - (c0 + c1 + c2);\n" + - "\n" + - " float c00 = c0 * c0;\n" + - " float c11 = c1 * c1;\n" + - " float c22 = c2 * c2;\n" + - " float c01 = c0 * c1;\n" + - " float c02 = c0 * c2;\n" + - " float c12 = c1 * c2;\n" + - " float c33 = c3 * c3;\n" + - "\n" + - " return (c0*c00) * vec3(+0.07717053, +0.02826978, +0.24832992) +\n" + - " (c1*c11) * vec3(+0.95912302, +0.80256528, +0.03561839) +\n" + - " (c2*c22) * vec3(+0.74683774, +0.04868586, +0.00000000) +\n" + - " (c3*c33) * vec3(+0.99518138, +0.99978149, +0.99704802) +\n" + - " (c00*c1) * vec3(+0.04819146, +0.83363781, +0.32515377) +\n" + - " (c01*c1) * vec3(-0.68146950, +1.46107803, +1.06980936) +\n" + - " (c00*c2) * vec3(+0.27058419, -0.15324870, +1.98735057) +\n" + - " (c02*c2) * vec3(+0.80478189, +0.67093710, +0.18424500) +\n" + - " (c00*c3) * vec3(-0.35031003, +1.37855826, +3.68865000) +\n" + - " (c0*c33) * vec3(+1.05128046, +1.97815239, +2.82989073) +\n" + - " (c11*c2) * vec3(+3.21607125, +0.81270228, +1.03384539) +\n" + - " (c1*c22) * vec3(+2.78893374, +0.41565549, -0.04487295) +\n" + - " (c11*c3) * vec3(+3.02162577, +2.55374103, +0.32766114) +\n" + - " (c1*c33) * vec3(+2.95124691, +2.81201112, +1.17578442) +\n" + - " (c22*c3) * vec3(+2.82677043, +0.79933038, +1.81715262) +\n" + - " (c2*c33) * vec3(+2.99691099, +1.22593053, +1.80653661) +\n" + - " (c01*c2) * vec3(+1.87394106, +2.05027182, -0.29835996) +\n" + - " (c01*c3) * vec3(+2.56609566, +7.03428198, +0.62575374) +\n" + - " (c02*c3) * vec3(+4.08329484, -1.40408358, +2.14995522) +\n" + - " (c12*c3) * vec3(+6.00078678, +2.55552042, +1.90739502);\n" + - "}\n" + - "\n" + - "float mixbox_srgb_to_linear(float x)\n" + - "{\n" + - " return (x >= 0.04045) ? pow((x + 0.055) / 1.055, 2.4) : x/12.92;\n" + - "}\n" + - "\n" + - "float mixbox_linear_to_srgb(float x)\n" + - "{\n" + - " return (x >= 0.0031308) ? 1.055*pow(x, 1.0/2.4) - 0.055 : 12.92*x;\n" + - "}\n" + - "\n" + - "vec3 mixbox_srgb_to_linear(vec3 rgb)\n" + - "{\n" + - " return vec3(mixbox_srgb_to_linear(rgb.r),\n" + - " mixbox_srgb_to_linear(rgb.g),\n" + - " mixbox_srgb_to_linear(rgb.b));\n" + - "}\n" + - "\n" + - "vec3 mixbox_linear_to_srgb(vec3 rgb)\n" + - "{\n" + - " return vec3(mixbox_linear_to_srgb(rgb.r),\n" + - " mixbox_linear_to_srgb(rgb.g),\n" + - " mixbox_linear_to_srgb(rgb.b));\n" + - "}\n" + - "\n" + - "mixbox_latent mixbox_rgb_to_latent(vec3 rgb)\n" + - "{\n" + - "#ifdef MIXBOX_COLORSPACE_LINEAR\n" + - " rgb = mixbox_linear_to_srgb(clamp(rgb, 0.0, 1.0));\n" + - "#else\n" + - " rgb = clamp(rgb, 0.0, 1.0);\n" + - "#endif\n" + - "\n" + - " float x = rgb.r * 63.0;\n" + - " float y = rgb.g * 63.0;\n" + - " float z = rgb.b * 63.0;\n" + - "\n" + - " float iz = floor(z);\n" + - "\n" + - " float x0 = mod(iz, 8.0) * 64.0;\n" + - " float y0 = floor(iz / 8.0) * 64.0;\n" + - "\n" + - " float x1 = mod(iz + 1.0, 8.0) * 64.0;\n" + - " float y1 = floor((iz + 1.0) / 8.0) * 64.0;\n" + - "\n" + - " vec2 uv0 = vec2(x0 + x + 0.5, y0 + y + 0.5) / 512.0;\n" + - " vec2 uv1 = vec2(x1 + x + 0.5, y1 + y + 0.5) / 512.0;\n" + - "\n" + - " if (MIXBOX_LUT(vec2(0.5, 0.5) / 512.0).b < 0.1)\n" + - " {\n" + - " uv0.y = 1.0 - uv0.y;\n" + - " uv1.y = 1.0 - uv1.y;\n" + - " }\n" + - "\n" + - " vec3 c = mix(MIXBOX_LUT(uv0).rgb, MIXBOX_LUT(uv1).rgb, z - iz);\n" + - "\n" + - " return mixbox_latent(c, rgb - mixbox_eval_polynomial(c), vec3(0.0));\n" + - "}\n" + - "\n" + - "vec3 mixbox_latent_to_rgb(mixbox_latent latent)\n" + - "{\n" + - " vec3 rgb = clamp(mixbox_eval_polynomial(latent[0]) + latent[1], 0.0, 1.0);\n" + - "\n" + - "#ifdef MIXBOX_COLORSPACE_LINEAR\n" + - " return mixbox_srgb_to_linear(rgb);\n" + - "#else\n" + - " return rgb;\n" + - "#endif\n" + - "}\n" + - "\n" + - "vec3 mixbox_lerp(vec3 color1, vec3 color2, float t)\n" + - "{\n" + - " return mixbox_latent_to_rgb((1.0-t)*mixbox_rgb_to_latent(color1) + t*mixbox_rgb_to_latent(color2));\n" + - "}\n" + - "\n" + - "vec4 mixbox_lerp(vec4 color1, vec4 color2, float t)\n" + - "{\n" + - " return vec4(mixbox_lerp(color1.rgb, color2.rgb, t), mix(color1.a, color2.a, t));\n" + - "}\n" + - "\n" + - "#endif\n"; -} - -var texture; - -function lutTexture(gl) { - if (!texture) { - var pixels = new Uint8Array(512 * 512 * 4); - - for(var b = 0; b < 64; b++) - for(var g = 0; g < 64; g++) - for(var r = 0; r < 64; r++) - { - var x = (b % 8)*64 + r; - var y = ((b / 8) | 0)*64 + g; - var xyz = r + g*64 + b*64*64; - pixels[(x + y*512)*4 + 0] = lut[xyz+ 192]; - pixels[(x + y*512)*4 + 1] = lut[xyz+262336]; - pixels[(x + y*512)*4 + 2] = lut[xyz+524480]; - pixels[(x + y*512)*4 + 3] = 255; - } - - var textureState = gl.getParameter(gl.TEXTURE_BINDING_2D); - - texture = gl.createTexture(); - gl.bindTexture(gl.TEXTURE_2D, texture); - gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 512, 512, 0, gl.RGBA, gl.UNSIGNED_BYTE, pixels); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); - - gl.bindTexture(gl.TEXTURE_2D, textureState); - } - - return texture; -} - -function decompress(input) { - var output = new Uint8Array(64*64*64*3 + 4353); - - var inPos = 0; - var outPos = 0; - var numBits = 0; - var codeBuffer = 0; - - var fastBits = 9; - var fastMask = ((1 << fastBits) - 1); - - var distExtra = [ - 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, - 10, 10, 11, 11, 12, 12, 13, 13 - ]; - - var lenghtBase = [ - 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, - 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, - 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 - ]; - - var lengthExtra = [ - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, - 4, 4, 4, 5, 5, 5, 5, 0, 0, 0 - ]; - - var distBase = [ - 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, - 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, - 12289, 16385, 24577, 0, 0 - ]; - - var lengthDezigzag = [ - 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, - 14, - 1, 15 - ]; - - function Huffman(sizeListArray, sizeListOffset, sizeListCount) { - this.fast = new Uint16Array(1 << fastBits); - this.firstCode = new Uint16Array(16); - this.firstSymbol = new Uint16Array(16); - this.maxCode = new Int32Array(17); - this.size = new Uint8Array(288); - this.value = new Uint16Array(288); - - var i = 0; - var k = 0; - var nextCode = new Int32Array(16); - var sizes = new Int32Array(17); - - for (i = 0; i < this.fast.length; i++) this.fast[i] = 0xffff; - for (i = 0; i < sizeListCount; i++) { ++sizes[sizeListArray[i + sizeListOffset]]; } - - sizes[0] = 0; - var code = 0; - for (i = 1; i < 16; i++) { - nextCode[i] = code; - this.firstCode[i] = code; - this.firstSymbol[i] = k; - code = (code + sizes[i]); - this.maxCode[i] = code << (16 - i); - code <<= 1; - k += sizes[i]; - } - this.maxCode[16] = 0x10000; - - for (i = 0; i < sizeListCount; i++) { - var s = sizeListArray[i + sizeListOffset]; - if (s !== 0) { - var c = nextCode[s] - this.firstCode[s] + this.firstSymbol[s]; - this.size[c] = s; - this.value[c] = i; - if (s <= fastBits) { - var j = bitReverse(nextCode[s], s); - while (j < (1 << fastBits)) { - this.fast[j] = c; - j += (1 << s); - } - } - nextCode[s] += 1; - } - } - } - - var distance; - var length; - - function bitReverse16(n) { - n = ((n & 0xAAAA) >>> 1) | ((n & 0x5555) << 1); - n = ((n & 0xCCCC) >>> 2) | ((n & 0x3333) << 2); - n = ((n & 0xF0F0) >>> 4) | ((n & 0x0F0F) << 4); - n = ((n & 0xFF00) >>> 8) | ((n & 0x00FF) << 8); - return n; - } - - function bitReverse(v, bits) { - return bitReverse16(v) >>> (16 - bits); - } - - function get8() { - return inPos >= input.length ? 0 : input[inPos++]; - } - - function fillBits() { - do { - codeBuffer |= (get8() << numBits); - numBits += 8; - } while (numBits <= 24); - } - - function receive(n) { - if (numBits < n) fillBits(); - var k = (codeBuffer & ((1 << n) - 1)); - codeBuffer >>>= n; - numBits -= n; - return k; - } - - function huffmanDecode(z) { - var s; - if (numBits < 16) fillBits(); - var b = z.fast[codeBuffer & fastMask]; - if (b < 0xffff) { - s = z.size[b]; - codeBuffer >>>= s; - numBits -= s; - return z.value[b]; - } - - var k = bitReverse(codeBuffer, 16); - for (s = fastBits + 1;; ++s) - if (k < z.maxCode[s]) - break; - if (s === 16) return -1; - - b = (k >>> (16 - s)) - z.firstCode[s] + z.firstSymbol[s]; - codeBuffer >>>= s; - numBits -= s; - return z.value[b]; - } - - function parseHuffmanBlock() { - for (;;) { - var z = huffmanDecode(length); - if (z < 256) { - output[outPos++] = z; - } - else { - if (z === 256) return; - z -= 257; - var len = lenghtBase[z]; - if (lengthExtra[z] !== 0) len += receive(lengthExtra[z]); - z = huffmanDecode(distance); - var dist = distBase[z]; - if (distExtra[z] !== 0) dist += receive(distExtra[z]); - dist = outPos - dist; - for (var i = 0; i < len; i++, dist++) { output[outPos++] = output[dist]; } - } - } - } - - function computeHuffmanCodes() { - var lenCodes = new Uint8Array(286 + 32 + 137); - var codeLengthSizes = new Uint8Array(19); - - var hlit = receive(5) + 257; - var hdist = receive(5) + 1; - var hclen = receive(4) + 4; - - for (var i = 0; i < hclen; i++) { codeLengthSizes[lengthDezigzag[i]] = receive(3); } - - var codeLength = new Huffman(codeLengthSizes,0,codeLengthSizes.length); - - var n = 0; - while (n < hlit + hdist) { - var c = huffmanDecode(codeLength); - - if (c < 16) { lenCodes[n++] = c; } - else if (c === 16) { - c = receive(2) + 3; - for (var i = 0; i < c; i++) lenCodes[n + i] = lenCodes[n - 1]; - n += c; - } - else if (c === 17) { - c = receive(3) + 3; - for (var i = 0; i < c; i++) lenCodes[n + i] = 0; - n += c; - } - else { - c = receive(7) + 11; - for (var i = 0; i < c; i++) lenCodes[n + i] = 0; - n += c; - } - } - - length = new Huffman(lenCodes, 0, hlit); - distance = new Huffman(lenCodes, hlit, hdist); - } - - function decodeChar(c) { - return c >= 92 ? c-36 : c-35; - } - - function decodeBase85(input) { - var output = new Uint8Array((input.length * 4) / 5); - var inPos = 0; - var outPos = 0; - - while (input.charCodeAt(inPos)) { - var block = decodeChar(input.charCodeAt(inPos + 0)) + - 85*(decodeChar(input.charCodeAt(inPos + 1)) + - 85*(decodeChar(input.charCodeAt(inPos + 2)) + - 85*(decodeChar(input.charCodeAt(inPos + 3)) + - 85*decodeChar(input.charCodeAt(inPos + 4))))); - - output[outPos + 0] = (block & 0xFF); - output[outPos + 1] = ((block >>> 8) & 0xFF); - output[outPos + 2] = ((block >>> 16) & 0xFF); - output[outPos + 3] = ((block >>> 24) & 0xFF); - - inPos += 5; - outPos += 4; - } - - return output; - } - - input = decodeBase85(input); - - var final = false; - do { - final = receive(1) !== 0; - var type = receive(2); - computeHuffmanCodes(); - parseHuffmanBlock(); - } while (!final); - - for (var i = 0; i < output.length; i++) { - output[i] = ((i & 63) ? output[i - 1] : 127) + (output[i] - 127); - } - - return output; -} - -var lut = decompress("#$6cTLFMX$M:PgZQ0uX#c3Hv3j%J:58NctbqUCrcZ#^pc.=#G_)_C0K)6PdZZKP0X+Aa=(i0V9/QuO-^mL`JLUJeIfW7ZB#F+q-M>)n/f_1tB_s)ew2HO[e.0^o0?E$(-_.`Ij#hBlY-^hjMZl*uMf6]jE31glP(x^K4T9hiBQi4p;(wguxYlHI^$:u3[D^L4r&`uif7UBV=dDJ%D-SkSvcri,->']48?P3kFDd-;XcL0-+iia2FtMDDQ7=<1jAr>%tk0;6*9Km,'6R$u@Q'3:-.F/9IFca[Jkqkb#aSp<`kHv]HklG(B>tr'LRbTLY;UK)o9N_m`+krq4wH*Zj.5TG[&u?9ml$fZWsx#`R=Qm.kJah+[oMCud1eE4k(PPNPTos_R#9<9H.BnW/u./Y'O$Jul.$4BX)#Q>k/TI?^DCp(?lf,Je[=KWgUAg)#AM'?Es=lAOJG7m.rk`d[i]#L@IMU,*lRc1ik%%.1aG/ws,O5RD2;iPaP)U`h#nLR1t--NV7HhSU1]xPHq4'S[WwcS'l$^/8eE`]6K&3AWba8CXaY#%/F7xa;#jn0[aA.0E2E/u/$w]HSu[Lw#k0ujSr%1&@iH85LjfdZCi7gLnZiu17>pjC@l+aAHqnBH#P66q?ULl12KxS)x;K>mCm$q;4s<2e(uc3.eqwt`JuNtc%YR4WW55Q9Hd%@3>Q/6qt5D46fU]DJ=?A2D5Hf20n5vU&x1-%uom[l_(wt#mdhq-6C7tgv><^EnZ=ujsK5v=SU?o/J^o0jlosUZfskS+-wpD.`njbMU3i;hbgFi'dJ06l]r^O2dx]Zxv@xFHbMQu2[k/v:^x9#.Mbl/^P.$SbB+1[BA'##;fp6711@`<4F+2u;-ftg^Qtmkev9x5PLd7uBYJ+N5qG.r>.Wn:8X*8tVibD+3Rk^a=`0fuqB(p1?#'XP%hWB36t65[?>>BmnwX(FWfO#BrH3%lLB2UDd+)1pGfCTh,)p@X8uITrXZf4vPg)8tw]+mf]Y-3_X9O$vHbe$vI55^se.EOumJ-gW%6eL#RkC?uSj:.;xGgR[fLqHpu9k@iL42+Lodf`o*owCXT#b/vwPCk9vBVK=0*Uke@/p4pWc])0Vl8`60^$6)n.vSE1uhi,i+r(AxDVQTBQfi%7Ydn+-K_^X-IoAEMH8XZ)oB&2rj;U8jnJ:G^W)+#Mn&rRKbq?RqZhSfF`mNs/,eV*o)Yi$sZ)vjA5n/qL<(T$?^.KX*%qjQ*g^v_5rb*6A8u,$?ek+3bMX@kw4*r+6QZN:F=tP9=E?'15-#ruGot-q>SKfe=KGY/t1+6,ustAEIBj+N]*pdaSCeN`e@kGc>#8Y@A]FUtsfe->Cp'm>C9u+W8LT5v#TY$mI8#_c;Xa_WiTk6:R%lcZ..P`;DTiQgZGbP13G;_P/viP+A:DPSK>0U4tttFM^MJ%+e*(^^H,v[qq9F[rC[DuMbwk*I1`av1ABEY'BFVP57,kF(_9v8j'ocNNCVSIpB0rrXH-L=Z-@5tq:xf_E^Ar$Puekh[Is:kDQGSrL7#eHOnm5U4H1rpW:9v@+B.qur*W&0&=uqD2#xsK;l$GNj@;aiOg.:+ZQAe#s>J1d].Wps)G*tWd_g4_u/04Bo']t?'A(t#Ha**R[6]m-mC9u^++'t?RZvtC879[J=g.:(alXN6dO=A?,reL;Ot'S3:YM;X/FT$^7#B7nEv%S3.v%#eFBOJ$+1$VLSv/pat3g_5JoGJ$'U6eePcR,n)R@b*6qFr;HpRprv_g]SeUIn$6`,v/uURnimD*vS#^YgCG4.(3[(&#rYZTV:Y/hVR22AFVj>'s(@J1v9hFGI8O=]sm3hUUw6hT0.lGiKQYw`'+?uR^428K2nK/U&7aHN<5t0R.^r():hQ.37S7u9BRevHOQf]EL5v&0__6jF)mSkb^[CWebXYSffNt_(6x=WxXTsI9SrHsCCdNE'+_Y&S1Um4#e](>#EidWMo@:mE)2hLS[Amd:.]s$h&,LraGiHX2qmk1'r@l/htZHhq9am7vwWl1k@YYaQ+9$Vm^hs>BmfHhuPVvhaZ%)=Y4^%'fl2aAu?14?+dj?U8,HZBpwUwH^,mq9l@`V-LYv4tGvi*CHq]%6H$-x>JAmd:l]&mTi?>8tuaPm,m&/'-msCmqnpu9X@-3EEE&Z(:v#Mk[hEmv.($s^c'*&3@ubR;s_FXU+U^dY-qRYgR/ruaglI-RJ6qbiRVib?eNqvL[*(gtR[?>5]F@TnN4t2>^3[U*FhiTmR%&Uq5(G;N1g5rj5ZPF:Mq'*Z/t9.q(#g3c<(nf/>te[UeL=i^vt<9@8v:L)kV2*'eu-s4Q`;>(+B)SC;$F>c/$Pr42Lj99lfpKR:$?&X/u&tRAd5X<3#c%ouk9)w;eeWVUu$J$%#V..75%#e&qI<)YlKh?@lV5+Uf034<7%e3YEhK:`I?t`=lSnbNF,QB^Lq_%kcX,i/:fWAlfLUDF`%`_PA-ECS751Xi&+HbCV2;rs^*Gml_YcImD2E+xkC?b1os1'&Kb$c_1QDr'Oi]YbHuH-p.Za?,I0.P[$vaI85aphaNqBk[+i0qdr>'AwF7)J.]tTjpku(n-0uwmesBDpIuk%e1XA;*4[R'V/'>uX-6Kmr5nVC@rSoJpt)qA4+OE%`Z&8cD]^'e`,DuY)d0CtdDJ`uD1FZVO=aK7Y/te';h.mr4IucuDx:D1)i86?,YBr3EHr),dLf#T:Clf>n&BW$n%KXRKFkXR-]KlApAcK.)Y%R?pcPnEvrj`TSM&Lo^pGUFRdmjgqjub$c$DWXW=Yl(N8]X7vmnJigq:Q0TsM87H_Z+.)*FrIAkFiTL,%7?m#pt.DI;mCB:5f@_E`<1(69-7h[t'9lFd'Qe-cr9HG-WhQg8i5L_l/eYsvOv;t*MQ[I%tS4f@2dG_HgYTbc]Wf7&XX-wW6`9$.L;EMlUiA?7v^3Yj1TUhx4mj,9tXmpGKS::J:-Ev[U+0XXuH0o6c]Vd'vC(,kUHP=M97QX`/8`',v-uR9VOB5-L&x302F'N2(Tu;u:F;G28[AteqT73L[rIga^-sukY4YU/5eXu#dpr+HTkBmA18DR.b9@+k+5Et?`c-*V71]FiB0e@4TdgOJU6766fx`me0$w-##4@YK'1^OcZLS4AjQ_nco?[6a7ae#v(,<2)9Z7(+oSrdd`NbQvMB/Kwi@gXPi-E$cn3.5N1nY#Og]Cfi;vc7nr.Omq9`.BMsQshY9`Zp]3oH29f<_4shguBrGG#b/k:uZV$,/?$9^Fj)2%phw5sk;6N-BlWLuFAU=&v=BIx*J=FAk'pVBiSE1?bAXp[OpDI+o/gedowI''B#poSNcgR3&A>cvJEGcHhg1`vmMljv@-RL4)Lf1F/7uS:)e%SaNAL46ONvRBJ5U*lJRZS=K6x('m+[`t+,.isCR]hx48IPub9ruZDQwpugIUYCCu%.$vA^o?dG(Vq1tr(?k:ElW5]Fed-wU(5:(9Q?./(@.@:vNcC.J.rubs#,Yi9[M*s6YQ9OFd[%;OvX=wq0uYtAqE)SUgSJ([#n`7v'P$*dP:54vfw,1g]o27ULg1#noZ@=-]52)lTa*_sH`s9r(xUxK#@hV]3/Q0-ueh-G<9>6sge5G_vdG:v:vhOIaO%VmoF?TpME*h>qXU88sIw@Pft`5:Wh?hE$HuD2FLoNKiflF#-7h8v;2LMqk-FgPv]2.:8nEixW7v=*P#6oSC(504]30mVY?qTBs6]4V^SttvLbS`j+L>=FWcmK6XeX$i77U=0#v[#:S7*4[=7OA_O#vS6N7T;#0^`DR:#jH^1uKH/,D_&9uuJfI>s2N-7_t0ox^>OLJq-IBsKLVOI7KlF3K'-00g>GgC%J`1fq>`q;[C/4@.'1s$b6f1R@b)^sF?MjK9mPbR58M[H`aP2Ff`$v%qg&ZfLXaOcfW]HgY,El=5dX`UKb;mpaVI>MR<-QfqVrt44RKZI7e13=juS@t$#*eN''@jaa>F7@i<1ob_9cjf4ON/lJ/BAuAl`%i`J#.w+O3dXN3L4CU_C&d9^=?h#q-=O7n.MgO$a.x+I#<1'&[LqjEx?@'^[SZur[XHk0rq^f?b>SGEeq'q,Vm)qw(.sTKo%D;EbRh$s;Y(GF#kE8^L28t*eF/)N:BA%4G`vmr0-]bJXAVn(S']u^9=cnK;j0udC&Nsdu[,a4Bj,2V?tSux,DS78wtE;DmF'vukAp,./k/v@h1[G96PruAu=(etj[WWhv9mTcp6BASQa8v1p_XcCZ28v[AvpSb?+,v8JT/vCv<8_@XG22ojZBk5H_=OuXXE%8vnb0R[$w+kQKLieFLJ61bSk.:0MYln_m8CqH;h#X-Ac;gohh9[JYiTQ?p3-l#ffuF3@G'V;oh*6YcP1a)Li8U;Ac?)G'bn1b7t_+E=T)W;u]B[Qn*_Y,Fk3l5Hc,<'iGH5Z7w#(OKgWef;Tx+Cs^cnguV]r]dB>LUV_bN^]/HoSInV^:mW06#cN6:lAN:Iuci%EoV@h6:lweXfaQaRP4WpGJug2gl/-#1mn8.-&fs#Db^Hx-8ohGD$mn@JR%([pjfpBhwt:i9eqM+J%bBrJG6s%+;uvJt3oDWQX/J(o1BAr3jHRJ%GeVvrjArSnR[#i-rI)K%t^kO*g]?skRn[Z1ed(9IooG^%m8XB9.(>hl<.*NxSn*=SL707>/j2lI1=oWJ[4M.kl8s>-c#NE's`@bro2TNB)W+s^)dHD+%$607vTW>r4L,e7Qtk@_aSW<,^k7Y=*ad;xaoK8sb`Km?KLWqd6j[A*wXXAqA-&XC$$V7%xG#/a0pDG>agiM3]k9[5e4'#75aM)[;1]HVOL,lx5qM$If*-N;ruLWk)_,v$@PPE:VPx&JIRsj4uK=_KuKXv#=0EHd=6+6>x=1.bv&-3*h&<)A(Wj6<,vGZjlEv>>]Oo$j#Nbuq5v^qaV7+,>lA-Q-ZKv?5_up4lx4-4g9`iDD.qwxw'.9+Bot%;q(rSSb-$*rMdT6_)>#dG>KutchSaJ^Jl7=TY7f#jaiku$:AoAmT<(hhIXm/0vqipR%Qqh&n/EEkSGpJTamr^i9%3Kn%:$g)7v?UgK`X9r_>)taI:]HeIFfAF`3D9:^SP.hlIA*RwRfHR4Htb;0lC&dv[mrZWl38Rd_a%;*D4&UwF4f]pOvhc,D,aNFox+rL@Xu9Tt27TXpvp:ND1Sv=n#tfgAI6?VCRUY5_mJq<[fE:)f6vqmA@GIXV-HRBmWC8cQ/Ud[06vb.i)mSL_8E'Aw1a>UGVmIPh:Z#43UuXfajo.UclpeSx1spV;TRxhdSJN4<4e5GZ-r4b]4-$twFsBYD%JSsgCMZp]-L+@uo$l)kI'R;7Cqd7f##E)j'59%f2]U&&.(p33T_=kN7vQhr%$GO4$1]A2&>,W7)*Q3g)vR2(;?7+L(`Ve7]*,coS6K-xF-NqCAQjf'$#cb/I]=9Q$7vD^e8vweDS%n2IEOsbQ;i#=sP&j>C.(1l_Q#<[S2^-ME*JY0u@dx_w4(_O,#5.L]I^*krwF1$=17:Nqr?c&Q^AK]YEK.*-]T&.Miu60A_A^Ugc4b6SfY,5PCLmk;+`AgiHJ]G>94wZP#(u4XlUY7u'G?0o?($E,DIGH41oDaC'.?leSB:#Njie.lx9cJ6raH&0*uYkZE2eQNC_nN`io*6LfemR7c=AKT3#W@,?;8UuxeiiGd`h8_6FvXlj_oNqNj_1uBjkR7),99J+0@6'TVF$G'8rOr#+]Pq].MQtBnPdZm#aqgU>;d(JXk8h7K,:v-*Zb->xSku(gG.3OB>&b>XqfsZQ%e+HK:BW^9947WVYc7G@WZN5AX:doK#C_jhMQhft-.L@.:u,0#qF0Yu:Bg[Kte6a?eX5()0]F#vj?6n'cDYaJI9;Pr64:rLR@uMJsNX]wHGprCjb0([u**h(QA'_s[-&)Nhpnfe$XBjPrL50iST@c4Z,1shxYg[]En9>._oP0Tat,=H9gF0q'fVd(P7RrkWG@AI$c2^)@ZqAP4=jshUuo/ZelFERw^H]^wZRHmfa=M9YclP+rbQoXLKu$?-]42fI&5m@N,L#K:>6cH)Ju]0v$8v%Qs66MVG`PQP2r;xS6vnh+qeE@CX2vqH6#h5)cKLr^`=s=dDu>r@:-xi9fUROmnu?r$boJ25vaT#4a5FnAZH-F)=:AdYeg,;4kwp]+w]kpo+Tk5Z2hLToq/:'Y'YuI`0pK`.>+%HhQ4'DIRr6.97nl>X83R3%C[ceR6iJ#a9kJZR4ss^N/MBLqCs#/RP95pHiV7G=VrKaRu=?Q+nDu`R+$,'96'$-uA*iFC_,D)<2cWF/6Q%tKiO$FRcV*4$d+Uk'OU.A-M%L$=kT/7_ftcBN9awFVM7Ck?-:AF4j^[okHDH.q[SL$ZHJY>bET;fn7P-btEaC'NUP-Gx&#&fFIb&I]#J.ogkLg](:lIMHV&_OwA).0?(6b@`G#[?[*uLrFiKfPCqH^h>Lqv)ueUYeF)6r+.s7COxFKcOw9Om(E$0Em(rdMp1&$m,8S%sPAn&SZL9.8[O^t4mRh9HT7k:P;)It0f=k4FaD#-v^TgcXTlYu.x:%NK0e%Ng@o$=/M>juM$e:dEmj+UPG8^amqH(sW92HqdBW##aE*JLRH%SfW)wZi15Z.<:YR(W3)O=^dxNHr>(IwB_aSuZ*JXT;S7YR?(>Y>jWK1^MS]Y[a1vux=aqg]CnWoT-vu5Sbkir0t-WP,3@b][Ocsh]OuYIOZDm#np9kR]C(E]@sVUBs4OeYpd&v`Ri]arMvZQh=;Q/SMR6BJ7L=O%T&`,Nn-qoNA04:V9N'x8OR=1d<0GW^XxRA?_3O@.6W7lUv)#'*,Hi-Xi=G4Kl':W)`1qJlavKP-k@MYK>/*d>sk?8Z2j^7r;YaGa=lF.OU($L'$O(@b=uOvYX%10Buf2^w3ZJ&57/uP%Qs3O.4VTLHS,'V=Ht^.hwk4&-eQVecDRnmvN%(`[M-T=;LEn^*#GstK-(rZ,%+eNd]8`khSd3RJfi7TGGgxjt$WkafC0Pv.sm$asOcuqdjVVUe`tS7QK3/'gt$ZNYH7)72c9sa2GfXF/ZB4&/c%VHE[]`Xcl%Gn_oKuuuRp'0]4C6)]sYh31A2xq-Q.bLZlTPM>Q=MAUQ3^_JAQ_&)aA3e)ZhmLIk-q42'$AJl-di@#+Ek`q^sLX./7Qk*m@gHQCV?:]1['uLmxRsF*a*cUjbpx7f@&#GB0St[V0tn5:a@,2P/fI#d+C0vHL-42x@Aa7N/+_fhi5MTMj^CgxRA'l@G/((VHE)([;A4r_'q]dK'5o=YlX88t/(8uZPT8rRgxZ%o.Et?'q1u]7c?h#G5cQt5Aq,0b`mogxE([&d;/xkF5cYTA:E&s@8wOUTD#[D#L45r4$';$kQj0V+q,es[XR[+oAk8mY(%HH>SZ_R4u6W=:P21Io87fpNvuZhlq8T[cG@vfVRt/NNg3'q6YXo5d=V(4/DbN(lCSnR_0vaSMtlNXbMNsuM7nB20ugvUxL7Y>L9Y'.x,=pQ)DnF=m>dqjvbNbV]ll'U4-rN&c)bs_+-pDXb'2'ghp3jvtbZ8S4lHt%r5lVpoqDGXm[/>?O%Y3l/Rik=1(q2+UfXIs>I0,S:-`(q//TDwfs)RY+?k$kC`3K;QA1]kLq=K&Wq-->DF`YDVq>0F.9Br2p^Wo<'`6%/L$JkkZL@^eY^d3LQI4QHiL`a-$&3l7Lcud#p$i6>)W*=+,?-qP+xv8Alu2G:;tg+q^geF#/&PV+o5V1f8vp[/r>S#ZiL)l^Kcm)*B#lGUjUBLLv/A07Av`xZJEX+$eg2jO&$HbK8)Sf3->LHKfQ4hJfW:MBo)OG)F+?F7-6EYP04#pLb8$&#mESfs8Kp$#LEUlJQG_o^xDHT<&(S?s-Q7@FY;8QjZpVoAk8sHlZ;Q5CbGR)<+9*/L=2=r.GVao@5qOKYQr@@E#v$B`4>0JU;H-axpV%t_L2'2dke&(eaflGO@rev`G[,d.FlMDPn^?*4AuH$J7v0(l:QWgJi]6@_c7J4pWdu>lP5an^Sg(52fc44uLgr7-&-Umi0fWZ(W=x0w,]@F/qVRZ.abEA.qf/Dm3'as#g-p=_/(^c/vjR,iKOg8BW:0mg/m<2&o3LGOH,,h8'`NoO038YtoY+^$B^rwkKj6#P65gS5qJ8(^,q`P.(;w.udkdmsIMD)@6:Pc<>7bkbN'X6?6()qW,P1R%g]DOUVD#NBmc8>Z*sKh7L=tLg>j]h%F;VaM50)_XaLn+v.r'4cBPuf;gD`ui()xBrrZ'f5D%N$fxUs/0.^nShlHv,+kh1/h$8.8J_ZxPOJ2pPT1bSM9WK;hl,UJqLr'aY1$)hAh2fr)us/[##?.S?YC[^HLKm=x48HvVr=U&F`vp&Jcha=hPUh0ZqSce:;+/qYM.HSu+JD2?FpgR&'7ZTDN)B-vYcfeqjOer;,KF@J%ux7X9&TbUen6>U4L;:;sqO-(JABcH)Ha^fYxs.#N*lgik^iZkdYY+W-dW5>7a>*EHP,?@7bD*emwHEATWn[=?mvJP$J75lF@>d[o?D5GjCHFr?a+Qt$uNh8-sSY&VLv9K]C^U?MjbD(],%wu*Av5*u'r8)99lCDoJtY6C*fr/J)a@bk%@(oh&]HQ3$vL7MHSq'Wlca#5l#%v_ZT6IQ$H4ep=)b*kkfg?wI'%lsBP?[^C(JmrpW0brYH+wJ68.Kd>)hkTW6NB>5(/TspSK@f^Za.g]:&MBqCjggKkdAp-JVop*MrmCp?5_9JF0iY6pSNgM3sEk$iwiU2?-S^=Ex^8]P6`XHm:*;ns,9hh;T.(-o[)(BAAwL]@iIEMdB2u=q+;?jMsbtk0&R<-A[guLf.h$`pNT^[7,Sn_XZBP`4j[HS@+G`Rqnr6wSprFl^T?#CCZs1&&I%@DAv:X.urVvBQ6#DfutXKu,b)SH[I?[c@;w3/a]c`Ef-`aHV9JJLTGXLmhsKG@Ns?B'liLWjIbg,tcG6MTJ-;5m'Cqi7ACreM>>$@k3$PoDBeo*$I,;*Z7JM,dCUqMLe_Wj:X5&twNl&i6msrL,ISZ19YWY<-ah=u_A$BEx*P7Ue`bdFh#4M9#^jbd[%FI8B28g0-AjK4N0x)sM$x?l6+M9`:R)#Fuq1q5_&wo5*G`E.[B%Sd,O#BPec`<4Q%leDWpP3es%],MtCj2K,N)DaEF;sIoNx)>%T9V3>$Yu]qihWEnqE/S8&5gXK3M3i[HqjC#i22^K_K_IeB)tgp8r_@oMP4gbD(lU;6/O2m%nRPUY9-kxKZQ.Ju]D::95i1Bk:O*]u1rG1n_u^R,k>X'q'KcOR@Waw,Lks1i`B=pM$TmE`xg[FE`[d^f7nLru.W?Q*`hiEImxUn/CP&;?EH;$:fZJdFE1CNr3(Zmk)nUJn2WDL9?F%fmIfumJf=odJTeHUOVd`'f+H&:?2ZadR0C/bDS`&lUX>Q2nW;>oO/(r?f_bj@k'U]''u#25Tc;Gt57oXX&7MCI&I%U1d:oS:G$VuG#7iLh-d3Z4WYjBckZcR*[=-B071fpkqfsU-wo3+YH)a4i1^-qC*A7PXFLor:.d:'_$6(P10B2GhJ^*M[kD^n_'xJb[O@b[-([(;;^pM1mVEogA'qjGOQgV5M:Yb?_5mD,?h2ur/*2_SSb?<$&m[5xSilEN,SbF?ufRGTC);V;+JCMfRL+To1%YuHlT3NG9@g&TTqvuVrM_1Rg$9%hgt/*$V[#UBV7rTQV^kB.cJIpgN?CH[^hKRviKWBfah64[vGBhBj(i7s6g>lI+kLfbP+(H39.eO+SQx42GG^,]iGQ7rYgl;=l5aN.fouf8[-<7rwEmLke++^>Dx7qlA^nP4VfSYcaCHh#gcX5sI4Du()Q/mE2u;$gqvY4YYKWG@f:9b`3d7L`<4Og)D=/:uTv]`>LPlHsX=A>xti@G7(ij9pq3igfuEJ@_i=1deU$&s&jH2e?MtIfKw6Pas^p#aqRPS/&q*N*tt*adJs9X,g;ag5Q[JpEs[jT5v'Y>,F#n1[^AMr[2_)V's>Jwor4Z-(vQp9lsrd9gp?m1EInd?aMD)57vTre@r'[:4sQ4hm@>GI]B'45:;]Jx[6^X92L+#neLe]_g+'eQ:btJ'^^)Up^@aqSX$'JBaKFf'RO.KK;MUArPqKUC<#N?U$(hXR?#:ZSeAp,u948PLd*L-M?0keB;%0E6p&>,Pw#+QW%oS%-i+:$7qW_b$okx;(k-;001E8pqwDvO-6+pVLb@RK9k-I_mE11gF$g#cO'8ZZ/H[p/,%+ks_B9f%[FtiE`8fLP`mh@XL`qE8pqLHR7+gLEh8i1G=Ee`1iwgU1-GGK2@l2a>B[Jj*2ZUp^fTX./,hO8_]81LXDL+MJ@fY+K/9RnLK&($Qe5$ciN/PrTUQ0LhAG%tb,__CG/EtI.Y)6=5;[+&jmUVt&wQwWJnNgla6PsI$Z-F74;XDb3ifD+M,R/V.u[0Ysch#u2RnDoit^777J#jZp0GMr^;dwKS.Sq31uF?S'd*u9P]R7^2P&:A+:H?Tek'u@Cx=#$E#9HIaq]s/;t&OCVtAuUOh68?]N8rOOc5hH@,972KM-a(I1i*tB[]2g&03vc7un&E1-he%hlN%7-XwrND^#FFA8`+ij%`sI]jZ4'Z^QtvHUX_SVRUCG:6jF/g;%u))8>Qaq<=$HFRT`wK76INocJaCN-`A*SZWfUA2KBIwbhKI&`/V8)5=7n6XAt5BU*K42Ska.FOsOU=i1[Y+H`3(GjSAO[g7v'fAQJeCV*e)FhmiDLR.d?QT((TTp`'q6RQ?5;-Zp*Hu_V^8-bQ=ft6(NIhh0@Q-AQ1Tr@`'Qp'T5*;k*fRSAW'ZIDS=7ESmBZ#o5;/TKS4IS&HWu#K66/&e9VHo*>V-?cJE/k$xH-#*7_36$F-GA5qT%vFl/+h9An`aHE2tr59:[KKm6o[ZViD(W)_eS/It(QrtBW%_0tUf#Mk1VUr<=6L%B6757#H:&5IIIu=Fo/t,q)>EOjl]9$nPWB*M1J=Of,E%Lh?4A4/dY9Mhvl[fg#DC8=fdS$wIbR%558wQ^eI.s^[X6tA2LW&V^^^>jJvn#,Q%?6(kIE[^KhcNM:G(a4*FZc6$,6Db(6/s0$XuG75Q;#793'b43HY5&<2%uIAN^aR43NjERv%+BTevR2qRHi-elG*Om1[uKJ)-Q(lu*=KtZNr_udaj>J,(Yi1(v@QipaIfb*i%aF,C)g*h6fj]9;#sIir]jeT6XjHaBKiar%YPmhC_nNrvPe)86PB+=bE0#=DNpX'_kHI58IH@6R^n*,FM_X(j98sia7&8(n3K:OOOCcssqYMH%tM_eC7^s0_&m+fR7&/WYgxSZ8b*tG67]dRtoVQKLKdCrTI6:;^J=`*;-BNmIovRN)qv1+[juSoZK_<3B6J>(1Ta`O2ZKN;xt&$6_DpFr`nZ''R@7*w8G:N4PJ*Xb:d^34$KVxYm],Z54W4fpmtbq2Hpe_^o0ik]PAnEfFiR#2Vr&ijY-j@pRnVOpCI)V+Jt&AnesdUMxkf3YxFDHb#[RDuX#4di3v4tU0v>fxX*=?H6E+=j;lk)^Kdts2fMA6CAh+dP#vup8#$<-E>#PqoxKG5LA_F?Ho7QO]ZgIrm-(j?ZRt-8p?)MA`2Krj_l-^9`8gfJBJl5Y[j<:')MMe%+D:DCDAHe5p4heXQ7+(2FuwDCB72i^Nkom9]/PP<)s,`7Yl6eFm6W#eI%S&HE6m>T-kGed?JQ_X?BrV8fLHHtx>HUY*Bc9cO7]up'uWX,:-qEM/o^)H2fE1]tU-M<0aFq-:SZS5W,S#0>6@<-RZGsFH`<(>$;*(NY8=$@a>R.T`f0nI>03l/UA6&v9[TJD*xRdCnc[a*W,5#upJcSI`&d=N0'.8[[n.oi[2_:b+sgoetk.gAnS/_Uxb68^LLB71nn(L-Mc[un6AauH,K%phsEsnFOldkM@8MsuE_a[CiK+v7RhO$ZSmOs*(@5`BZkUI#=4Xe?'SWoSsW2jGJf]B7f524IBul$q1ST88VQj+`4^;@lUb?B*mIL9f`P9LdGV%%[Pk&Jo0=lV#O@0#,BKivAjIBYZ0N*hYdI#G;IrMiPGk;1.=OPIJD9',$lsKNgAp*.K7B)8V#4t$?l2E#B&=b6Mg4X0F<2T^@NOBsLuhviTVK`M-M7hu&8-`?8%?v0okN*$>$DGM9v9M.&Gr=Xo7#VwYZ;CJR%v7e%BuEmou4ot'8E;5`L(_)V7d#(JL&:joQ`&q;:@[loua.mPFOv/aivui*SlEH%bQO[mX)YY/((:)n7(K.Rl2F#i7^2Br$q*QOg*t-RN0pVgt:F6p&Lg4aVvna3S@wKm:jn/@I]O7RUil%f>Z?t%rm519n=&llLsl$)SQGpfQD2oiQ^nmlOA@NTmSa`Xsn$n)=1:?+k:d%RoILG=tFe*Fj.vB31&cYu3dqck@bYm3jm$dW]e=i8at]Lp+eu:`H6Bw0YHQrqM,>4k.gRlhxImTBn_Y*N@@i]s$i`xg^0%#Zm9tn&#-CVYF:6Wgb_S>??if7[r3$eJG$,;nS>DUqBBTesX8*Pk##*auh9;cU5O0k$Y&65N/*qA(F&K%bMn3RfV'OB,-VKN7_dA5qflr=I%)jH-f]j32VlV&F'<<`W7)c:ZB@4kX;60P%iS&t:X6,kBia`$r[1l^]ZRjB7hw>Q%:jhV?SW0;$UF(N2E09jA&pD)(Kg4Q%kH)FBo.%:3_/O'LV_j(E$ia##gRN@roW?S7XIq?'`4-;$iZwcU8-*JV&oBcoZpBIB5AFa>='YWLXgC^ghi;f;&Hc>>q,@k8%;#GV8?jsqjx71L#g=guUMK80l3tGi^d_b8C#SA_<+l4UXbTND':La@b><4T@lL-gL/FnpVIcZmke.YwZo>a9MN`/gY'K0aHKH+)Gtn6rs5qumo@b8>#Y8W>-cU7$B6N(;$`n6p&mNL-(2-X-3$bJlHTu;6hB-[EUbxH).(NLe)2Dik_@41sfk$>&3o/a2vneTsSe(A%S%mQQpuw9h7[b#A#MJ$EUE7K&RlDS'.vu(?lbtrGEg^v/EQ7bia?`QqxCpm*2N+3bgxl?-fChg4'r3/Z%b]&UU%;_tN+;T;6vJx`qg<*Jhu6`2=JqnW)INqUnuA3opt_k*ZIY@`^oK.fwk(E[7Rjr2ub]&Eo/>0`=Ie2B:4nT,63-lrj'S&>,v^BuO^[(Cw=gR<7GNv%)bNH'o(Q%icX[J^xL>#0xw=`JuY`%jIeO2>Fv48t^@;Km4hRthaN%b?ctY*s(a0lhw.$_;+2M#l2hw/C4m1KirlWC'(HgnVcs]8oQ@&SN'F'M;MGE=(Q%Hu?-u/*_$[KrC@s2'Z6oaER.I,$#R51K8n_HDUHb'GpO[mef9P3ZnM&On.Igml^9ouXASm7n[#ngu?bC_adL1Nad^WZ@[rJ$91MD]*.C$f4MEZWh#B@^7(#cWij2qr6CVA_KA4H0vL0Zs4FK]`cGKYxDD:H0veM)v^@XNS%;EBlSfTb(>c.Q%u#$0lf;@7;kJTF%55WL[0#WlQ^`cToaF(BW-OJmM5>@#Q/D>`EqtFVe.]<:LV&cEm<^7OrQxYS4BLW`efFgT.q[xRkjOQ:)JLR0=7]vVE89W36-ds`+5SR&AQKq)d*`6DwUQQKh*oIcK9D3p;pspFunE8gU2-bS`YK$1DW0a8v,v2$M%Qwfb')O>OwYSu7H@?.fPPvh^ZM4$sZt^a>2CFtvNql.ouGMCZRfv.$:vausXuQxH$#seb.L'swk7M+pSUgmxg_`[gu+Mel']rp2d.Lv?g7R)BWT[6lOYu6M9(ael-jLe%AHt)f+7uw-%;$SJC'o'troSrM5A4vo(M4Y6*)<)0J87EZ:mljt$gUS(x'N'*[Go[MX;dcek>@RtsPup-vmogl$]bJx@kN0wFV(sY5J9iZ%uubSZ=,ukHV_+*k/e&3IuE>W6`C$*1$K6&xke+Z9),0_N$=08wpEntE#vgQb4BbT22QtXWY2ftLu*Llho_JGB#Eh82v,vkP'A&EYKgsJrrEJ@xT7([P0V5/?<-E]Hs3G=wU?to;gwlUJVxOKZb;Ac(lLKdS%`v4?*?9_UGsa[0-X&L*[r_Ztl_l-gNB>A.^'A_'qw&x*MufDp^5KH(vm33$c=J0;7sV>]=R&Z'sg3gVYbQhY%xCluu=m0GtogN=l[wO:]nXKlAa=OYt(7$B-d'<-#Jr6&vjIau@Z0n7R9auA7a,F0v@k/8vI]-r+sw]&L2g].UKdGo+&ZlmalvV;[2K;Z'QG>MpcV.7Q=]g4fkXGr,aHtN7g-DXBJk_JaIW(7ie62JVMK-PRg&1;H0v6<^4Md]JfD&Mg^]mnTl&eM6hG9sqMKDt_J:#cKl8kLOru*mQW@VxTKQ*FI_G%N^k&cxES%N.PMtYsi+D+5l:$g*P^)QHQh[9eq/8herL7_0@#2xIIV%aJF4A<7PHr=dxS4kWFAhoYB4fMTHO7:7BM/SefouHgRL7rvj8T>jp4bA^uc*8M)%Dk`:.(nfsZhmI>H7j4wZ#v_$D@,Ngffwt9iaf,kdrS=h>bp2,ljF4?&v?.Jb)TDV-vrTX^<^fv:C++0.,@fO>AWS$gUBA_&#M3vB;2/m^rQ9;qNWs-$u-GOmO`a4B#Gm;gb67DH1KbOqG3SceSSjQwp,)6mYkN2BTAm>QX&3)PsFPY`J9-/Nm,i5_QT^JIu;=Dwb)6hH=VJB0jM#FHum,]Opt7JTZcjs7If)0s'*/CFX6/m]&utK`aoK_sTu['E;KtR[W9rV2[Man.-O;I2V05Gsdf:5%b*MG/$F%'kF,xX'v:8_8J_6iC[7_a[W6`/q)pE'cD?'Cd>pOMO#-1])5Gk9gC$%-R#psAmk-jIh(GP=%c>J,fKbs%k`Z:AbI><_r?vceZa'@sb'WcG?-b*Q3u'x2QnxiTBYNFSw1o]#I2b$6k9:,[F2+(@,;Xd#N;kds*u&>oAOxihK#FVkCr3amOZr:/5vF/ep4a68r$v<@I,)6HWrD@rXr-]%A7G+Yb%,?F>uf<[NOYG(tm*rZ6Np`O$rD^DfLGn+37fVHCVilJ^UKI=+>?CG=a*r'^*HDduDXvEdA=h7a'u86CLh7_7jgQaAoH;6weN)Xu#IJ4pK.pLPceK4$c]OL5?]spbnPRWA53%0,(/>Pm8-/pu#fo8tuDMw-$F`'4H#=2K0mwk:QgbJx;$FW7mw_6P%g(pVe3'YRLIA*[r.W99O7HMCXgMglu-3]RKttt6s1s?%3'rH4B+xkjH'qs]-*+qe*6D;8X8MT$3i`#+VNmj#;cqJ%wU9#[;dho-eqC.^x2jtE7p9$7i`g/&2:iuA3usKRY/cC2vT_a;GL3lnmx+IhCRd7::$T,29rSQRYK`$=qNh$UU%AwBpYQ[se(pbUQ%8--:$cJWF2:@xpm-vpX;>0KUMvm#[A`a`nR^#4IB8-f8dM(l-Bk02fS;Z,U+:mhv$mXp3TP70P>W2=N%:vdot2vBkxI:JL'5vE[$VUM;W&El0clJ[rG;[EI5&mrm8;HWG]X#qWLlJ5#O_s]:AU*`T/:+L=aAQYW:8KRtH'tNvl>6*neS@mo$:1S:k8-02a-Lg.Y9#KYwI_:_4ft%^8:'W6VoN,:Evo@2sZ/NYgIUX%^,u-IDF;EHQRV*.WU(8,(9vIO]TDtWZ+:15]V24;X^7`/BU2<9tfrT4os[f7w8vxI]lOYk>JJZOCwSrE+Z78F(9rQj>uaaM5/$_XSV%NLd=6#oXfaGEE>#:`0&vR4obgikIi7E5C0_[P;?nOLvj9Q-J=AkI6oO1U6(vs>,_^[b2i[JspqN$iD_a9&$&++*uD7F/Thr+U+N'kQ.$lb=/tg%sH7Cq5'^,j:^FiR>`up1U]m&Sp_`Ti2LY#F;Cs+;Qh)#f7m%[ZW<[$2cBqsCdbJYO5NY#S^*3fl2]+vjh6;Fi79-L`wO0L7YN%(dxq1vZ1nh/@:R.18p$EdE,mkS46HBT)lbhl`kmcEpvE=YodoVuRbclc>AtO%kQbmkbnX,lfvaK_b]A976PIU'BeI>?$Yi<&u2(N;%mLts_[I>?et&%sDgb?,Zp5cuLKl+sWmO%=+QkvJ?Mf?ngW'.(h8O_/%EGJVs'W-(a@Vnmbb;F`qVq7jdZmct'.6>n.7=cVCqUPsmXqo+3B'3u'>6Caq_=xkZ%HZr/M%_q[C3tZ_k-@A%`j(7WgM+LEmqwKL,$-#Gs'.v4FCpGYnt7G8]GOQT0[?9-IH@^X025JB=RGVU?3'J@<6&#eg/)7Y]E^K[4WXtF/0_/K'3hC1bq-(QTbH-Yk-,XOtljA6mxYJcgSSVQB$,]=cUnu@LeR$`5NY6TGO^L`tDJq`Os8O.'f'v>6>>`@#_@u_BlXJ7-uXn1Axlubu;^vfaASp#$d)mm'Fp8%^t#Kotka&KlQ,<<#:Z&6vjk_mD=jF-LZd.oUrmfQCKMF]H/*,Ste4jK.F#,>tuZExk7OVW'WF/i%P`JgcJ8:IU^$hGUJcrIWbbS)(+k:Bolfs*?bqjULnE1M+Pp6Cl7(pPGfL#5sed_o6FNU9Z%LPM^>[-`#R)K@iVfqC/](Db(qn9ixq6Dq0J91]kpu&O@0Gu+rle.8LPqQ`1&#;^Qm88%04vL)-56:W>wH?kS>eM1WhA0.H4v1YHX%/I2.J^O[[*1QOIM#bSlrB2NV2?T$Wh*RC:vY.0-mslP;tK/l`eJK58q,b6=&;QkH7tgGTCmEM.ht]sMV=6X0#e,/;t)/]NuT5Xgh0%cZ6>gE2aES+%F#K$pAkM7,5[(MYmG*1sG(g(2_#K:T7TdDX@n5I?tw9GJVx^.>#E.5bB'#OD2NiNEPk,%5G,B@/X`FPp6J5@&RmO/+kv7W7us0Xu?luYve862Tc1BEw9lp.8.w4UsM+l)>P)L#JZ;UlXT*MlJCkuf=v,7)htSP@As:-LMr>cUj7_PWQDKtch(/($vx;WaV@kP'As=#*L`9vv(BTp#F*j&EmRLM_']0i:QLMsfOqK7=,fk`Zxu*e1Bs9$Qano8e2>EqGJn)e=u05BeQjZc,7mN?c(pOAa4`xJl[e[O6s@uegjiXCm>_f=$u_xF/,lY]ET=8kE^h7?RTYansB@p^77I.vdcx'd=0PV[*B=Pp;NAsAC0I;(pthfUL)9daRJ1vu/Fx)U5@R@$D5&*v#Ta&sEID.vbE^EW&NuU%pw-a%PS&06,1)5t*q>Fu009T%4o6A*rrsp1T;6(LWCjO71H?CaN@vel)kNxuh&X5->=(d)SnVcp>MA?YKMf&.EA`Vth&9$DT/pfNT:AY+_Ebx=euh4Eu+%N7Pf+MCXW%_p:$)('g5`//dX;Nnv*xP`bunt,sfZ$Di2SYGY#eo1)exD1*q`Do>I88W:$Dugc_9Tn6u&9NF9@cJFTN%`/U;T>dsWg4S$NkGY#P'tLJpuG,($%gasmuECh^.#p4Q;S_uVa7V%]7Y+HY)rM%Oe_?[Vl5$vO<_R[d?:C9x]*H7JPF5o.:=dqVe=>QQ5KJ7=Qf_:e(JnhFX0I#8HgWD20Y0Ib2aVo7AGo4*d,W8:7T$r>uZDVK$oTAg4lX3:fW.hPtsM7.6XO49tpXPJ5s#L/aZSp'749Qtw7imj<3DZ1P>;6%Mb7(CtdLfCE/<6vdhXZH/ueau$sw:HLv6D'C#B7IlVar5vsOo*nw.r9rBrrpEg:,'//H0P)TWhuxOY#aK.cJ]=Jn>s&)EIWRvtlFUt?-6v60-)(3F6=7kTYSA3Wnx+>ipPj?VS&(Fhpfs1?CgA-XU]e.CBa#M3%=u;N;8LbfL;2i_aI^?mIak58:6Y]-#iScJjX48`WBLIKA+kpQt[g1'Ae9dE[8'Z%L9H3?XxA3hCC8D;tnY8LDQGm':%JSO+?Z.^LxKZ)[YGTX&$vllA[clVPN_?&@&'enK98@e]49Z+MX6YV`$[rNZ,-n8v9.&0j9BE5q02TL6_?trjf&5tldD54($)uA)6>[_W^Me7n>dog),@BQA)p#qmg[J+,kmsOI:f-juS(Y.(Nefs:v/g1pc3S:XKWumoH;Q$$B>xY,OUiD)nGNHr>ap&=@w,sf%nxT%P9/9mU?J>,mVaofHSmi7:]uMT^qjM7HXZctY-TpniGtXJQc_`nxd,aaieAJv5GifrMO%K'.$pNb))La`ue8ETf$JbZhXcAe6.vTOev8-3Tet_#;bMvw]/va&TR%cJ=M)o8KYY_9eEn9ZNw,9Fin9/K@nh,*_Vl5B:heOR.jk3e'+Zpk,Y#gb2`aD[;xk(bq?dF&BP8VrjZtH-Y;qAUe,mxLf4s#W(^BrA=#AeH^tMkWd9C+tvt'[sBR'Kcb7dG=uL4Wgi%V;qtc/SK-?C$`N1xvTSDG@YlLaWuNHq_'+Fsk8k>LS63?0:vZD2/n69(7Pn(0@&W@&GVQfL$LAo36]X6NDV@odf>Qmv2Bl3@u#PVer$JOJ;$G:)+YVO2kf%f;n4f7Gd2.mEmcR0.>,dW4xtCts%WlKs&#NWUF;7NlMR1X=vqv;__<;:+abhO6(VkUlQ,Avf2vaO%E)ngMdPH[bGtU^P&49-X[SaLS.nb7-Ln4Arkne.`sTJ&V,.ob&+n??`oUVE5fX,8:v1O?8v79/%5]O)ku3$iGr_o/.Mmjqkf%rhJD1W8F&>aGN#Mc;D)vNX*v0r9&4@/n=^KE+b2d3:(CpnL$>]LeJ)7n6Of2rl&NE/PSnMPv7I]S5f'&8,(u>.tuV^;P&=bhNX>?gl8/c#G:oMKfY@rsm8qlK+1xA%bCJSoEIo/?P%U+vd40xtlnQ.qN7+D'A0g;e:;@9$0TDmN>wI0oO9`KCK5Fu7XA-Xnmu`mf.Yf`8`SYlj;m)M4tNk(5QNoY#:mN7Hs.GF>0tmJ.vKd5j2bPP1YEqMG.gIf5s-a&=J1IBruW;m#g4$$/a8>B'WYYqRo'(%ks6*AWT.]..8EWD`Eed&S%_mWA%1[K:-H%s/m$h12eGtwwfM).wEJT$90gb-a=UlGle1#[NFH&Z`_r#O9:$o2LOdP-'mun+5<)D:((E7V;8vmv;4d^UU.1G$)Gu^@(AuI=tXLSvSI$14wRD@F]:d=JgOH)7pE9-N;6vxYI>E>*airKk1@n8E..vLSS.:N7uWM?(l3vbNq1LE+q7+<*H7tUb].L$D'YukYXB5)qq(;[[gV*$E27&#:'Xjor6>(OUYSb2VO2tUQ&a,.(#SAo.gbojrG%X8&r;Y#4hNB`b1C;oihAP/?Zp^b5;ZA#E`/garT5+#dL,*u]/9&qZxhfU[o?#G,N?=tkw7#,Cc9#vh2M0$:>8&v+wq<2W2PpdP4#ip/UG%(%l&0lCMraeN5-QAIg:38%/+s3I9v2n3:fq9g'qvx2$4QixP:[b?Jn>;lx+#-d1B#2UaQ,Xr$I9RmwkHUULt@8*d@r98rK]^]$$?G+/haED'L-fSq.6vA8pM>WVYhSSd3<7hIE(LJO*G=3Xxod*cnf,6OuIU.BY)Z8hT]/dDqSOSlC'-CGrQf^O-35b&4[1Oq?:#SN]V]pl/P$&lAnV4loe^&R%bCB&v_u[#+B7m/KYaA-5$v1aaOsYeAeqISdtcrZLqhjaup6FaKN*E=#n[2L85]4DkJgnPBV5q.(mG$w^;I-sa&Z'hTvkB0njwrH'>&P^2_I$O^_a.wgtLK;D@WB[`8oGYg;4(3b+$qCrT8eEdm%#/g^)(J?C+X`7xeo)i*a#,7IO+^N4d5Ub_m2x-kP%`Mn]J(cn6u>`/ut,N(3tc3GmkC:(v>*mH^&>cUxU+2f3*;?8/co-,KgDniLA0GKKRJDf5<#L8Uc9OMtqZY;oQ-#dL+ku*gm._tu0R%_Q5+#]M6.(K2MVdxADhKPaP$m)N>9D)U@oe^%f1gvY(ZKorT^oVM=xOLtx+IS`T'LrpOmW*TqK`bl@,U>%H'VXo5E%3MG=QVHY(+O>6]*RUm0D28ghkA9Q1I*s8qIhX#;Oi3>5qSZua*MN5LK8fmfp?r?gtS4'GW>]4MBI2hiBP3jwVB=58_T%*D@Z@c=c`iTnl4sZ$#[b&wtbYoDN_@@3orwQCtr1M+$70[jas/09$F_m$vT?.]N;>V*#`Rr-BHc1#-c&WX<8,Hg:_wUGu8-r_NN`Q]fI_`U$KVJ]=hlZ5b(D>IoG)Xf6XdEaRt+:H)?,Zf(7,4R%Wu25v-,0h`51O./#oFhL2JA%tBB9vs.X`1u*G@t1@:?X&/tKG(T5dS$@8#`ugtK$mX+acA4^K):k_lb'-:unUW9a3@Q--Qk%7->&vDJG;-O;-eEK7ThYcf6+Hts#6&HhpkOY3>oBlSbXq)(:JtU#tW;9v?Z0Ka[NF:-h.PD+.=%$BNpe:5d[;[*x4akN%ZC2m81pnbm9CS%Vlte:4UhJ`+p,ntB'10ql:Y*tUuWq_HXRR,GS0`NNmJo;36T4o,AvI@-'90vrdR=O1:(*8#dgoIU]]JDpki3rs6jZG$eG)JL%$go[&ZAOr&,JHrDB&E%+t9X5lK,:6Za2oLfHCfL3poY7#0-$lcrh@bvMVKT.%L%b'DLKCv7EIaX$GipZTX.(KT_V$9l%Wp:BV,uG:1#V/IE+LfUtvL9r+U&&=3'^#wJd)-Vhe3[1c[?fj[hT3n(lcN$3N`a/rMGq2bHSIqLM`^nHqI7xx4;X/bkW-1(x'h4YMNs#Q@&#qj[me=GOZ=(hf'-?Wo'nbr$;-wYa<,W6@kgfMYK'=+4)EZh:75JhfAi<[.VPqZj-/Wh-]4rUSCPtvUe[#B*w6&eM7FV561gH2bVpnha+SfER&>;Kk>xN7H-xf71SXSPEA,(f]xOs_8&q2RQA^uA8?ZuJDjRp`%CYu&&#:vgjt/m=KL2:S;egYU&CT#^8#1-IT.;=jV.rE)qTf*h?.#*j1?GoFAK'3YYs&3M,EKE6T#hRn5:j^8gJ'>XDOo9$jen^gNVKY#Ko+>u1S%_uYKqDJ3x#luLDM0#j@'GM?NP_r,;?S%RZRgAZw9duoZG&Qb/g?bjjSxuR^h5v@b`e#=6:IEv^xSIJ@imq[NlTgJ^8koiYg[bow^LUEAtV'cVBxtBWZg?eF?3bm2Ap1,C.CGV#*7[Dno`338l]m3b^n@gDrI`t+7dup*-%YAZZ#2Cp=2]TD:-CU+_uZe(+YqY9wF2sHX#p^Z5V(#spuJ].#hQpt=Ki1@rKEZ)gxvtU2o;sa5nbGSk)*-IQ@^uMc?lb(>S^H:C.S7Euk2LD4(9Qqi:q2DQ_GktU<>%`?E3J(/C7%F,/#vnM<8vIe-%+lkf9vit7c`8k^E-Z4V%+:>+6v[]bx+nv7xsMT;lfNB5GVjMWGkS]],?2v[+Lqo;H6Psa.LFrtSKg<.YcI-3m%:Lw_5e]k=c**d7T-bE##H,cQupg-1I;3;bo9lD&#pu:3?[0GZa&iLQIu;Wi28VO'N2OM&6-1+QMaPsD)JasGp5>ZRtNJK$#LIw$V/xV8V4B%t'>BheL+,k89BpYA4;$0lRS@w:js$hP%N`7UF:BqkAmclPnffhot4sZMjq'>EeaL2SIda4ArJ?(stljL#Ll7-B:ptFu^2YU0DbBCsFe+k/2cwmFMbdYQ#pCxH2D7,]GV5[mKqt'aj()2R%^@A8#>A+/_Nds)Gti,jJJCOqfi>0rK29F4M2mxF;>csugpULrY%d*OmP#_hoZlnnfRRD.$g*'lfv^tK-0&^4'S0ni'_UgAJG.&LBG]41#;iBukkFdbqcZ5p&l@nb#]1$guxn^5Q:#8l#4OW.E)b7q,M=I.oL+Lx]goatt)b/A(]r-^LH3ue.?Yl?`w3meKR5]Uj&rc=,87%rf-176I>buCo:.v4==S)0BXpuw_/TltW%`a-jcPtHX#B)o*l5:naJV<>TtpV,B`M%#dTb^;e%?r`G3nYPU[5fL&a*h6%SC(N2J?(Z^uFLtd]psLiqRtf:WRH#`-j1v-W0YYb[Jd9K8h'aG(*DuWW'LpC0qQr?6+loc^S?oLQ#lfCJC>-49k]>/;26MBi3A4iM_HGu1l.FO`['_KH*'M-Qd5fhaI07NVFSPqdrH5vd>n(t6j_4Q#$&2^(C^0-nkYrsYX43J^Z%vkfhq+rFc,gN@b?.qI#B3a[3<[r&btlJZpBBuG%a;#xH,x&fLYiT:rsU#1C_+VIe0Ln$8l9S]iBY#'FWg(dIn_ePIcdd)^L^70UEc?$PBACS5>OZTQan2fwB-LB;v09`'McVWlw1vADn%;#^k>r4/HeoU3l*Wdu'pp`(6p.>jSR7+O44vBH;2K/11K)Z[-LKM#vp2S1g[eQe:`L:kF*vnvB`wIA7@Ir5u;aEH4TK'Ma]6sxBY(D$Yskfk^$RU<R*Aar?w#4s<`C)nvf2n.@:7vZ_L[t+IPkPBY8Zf3.`o/.WiQ[;tS9I&BvPK6EV8v9*u?,eh[@uT^YmeCQ39>[5kYu7:6`uf5[+64f,vuJ/(R7DeQeU``93^_`5J`&7/luue?EVn.$xkw)-'tJZ(wq3,^*(X>K_T[A`&-&22(]@H%nsc4Vcaa'8/Pa&*S7)HM2v(*$Xa%(M0-J*Vj0mKjwuOOb>Ym<81v[u4G.Ewu>`P]%KouX#llwq-?xvcU=OmiJ8Skma`e#C_hpJ9-th6I.6S+^*>eh/:.q]V-FJjs#k@DTfZt/['&,=QRCxhmn9xIKueIK?tmdM3t_ReKK[./VZJtZH73q=S@[:nESVOLIKt3+B*h-?88swEe&HQ)>(6>5T'mJ&b]/Pt=*t1q?=+LG`q%++k&RiS#D(HcdvG-qN4)]dq*ep,Qj):vdfaV`TXUqsoH]uN8A)%v.iH-'9xWBN+$u5,csFL3A4?$)#()22#tl35^u?FkJCGArPX%8.`uQK0v#B-xf?hHCTTLi*G5efhpu;K8#?#sP2K2`b(j3v2`qFp*aE]t/?TIC#.MZp-SHStJ0#SHLXZTCrb6L-fW)]bqvA@cc5l4u(NT8.Vi=P$@$[Q0,XY5aOr>k11ZA1Zn^gUYWVWx+2$e3+Ig=;qZiYbsXl0m%$;mCrxVkP;WFoW(Zqd@XDaT7#=]3=G*D@Tt0.]ZsdeZ-RM#5AuHDkfH2J?l4Jk:U82e+hTl1IUhtwZ1prIB7a3i^=X#AG-oN-)1L,3X1c[*8Sx=vbv>7j:XjHp>^ZuDF)V%joCrla3NlJ?+rdnR@eStSReb2dmHC'>kcm1'6XLDl/v2Mk?a7FIe,?wcvg$Ak45c/2wokgb*nf;`PdNgD3t#Y6)Kw5/>#Skxx4uQtHYH4vC_0LRG*rF`asWPgk2:@XRYcdU*pk@=W58MTS/;VVj=V3*u`j_a*o-tZ-O=-(M.i)#;G%GVtYG%b`]GV.CE`,5wkfh)v1m=5N2(DY%,LT-ecf$G#lfftY&s/XQ(NE5V;W(LW7a_ZoPt'b9xngsjPn:^=Wu+jsHtuLfiFDQ.ppp]G8V(p3+0RJosu?U;4ueFb3_EF.?-HNs`uej9h:hSj>h>+5c*vhN3Jj%SIk$#MEs1%dl/s>jepmXB?ta1))QT@k8op(o=YsZU^;9P/5f*,q.:jqkE.^9^LaCqHX_3]UNKO^OoYa93`#nL@Z1xWTqT&nNa59V02Njj0=qK;q//#oa>wUg15CBd5o'Lc-dxUaUP0m+RPUu9:ix4`e#?>OUDBb6we+Lu@M`3etYqXo-:m1kDq:#j^w8u;ZT&W0i`'-cV^.rsM@1geU]QQ#r@^-xRUh-;Y].rS2UoVV&*;Z/$SxXJi2L(kGKxXD2I.qk,O.h+5=sG:t0-v43wUNQ1vtus2a(N%v6r##e`O&.q>9u>i%Ec./SJnV%1HVWXa?8hI-Qj^moPIL#/@2uw^EiB#rN%K0D6KgrXXBiH-1m9vZDqY[bY-af$5L0E;#$sf'r/ErQ/T:$lY)qmdP:^e3h[%bmgvaA(to5u4q[H-K0oHnLts'bE3uS=Rb/PEovX:P([E<^uxDu[cokl#r65(cC&B3Xw7RRq;6as7$^PLV?HQ1PGfo0vp:6vYB-K<&YhcsERHQF?@`pj_f.%7hpiZOaVIhG`O%YLmPXN0]T5ri0hlPXAO3d,?x-ud']DaAZuL.trF1-HVC3tE5^xF?#*7.fC`xFBQcUI./_x4ruc.mF0%%q>,#5LB;A/fN/ixQP;;st'Unw;E`0D03xB=k3V0n<2=lwu/=jR7MJ6MBK;Boel'7xCJJ:/vvKmek%]]B_ehWKPI=9RA94mRi5Dp+L*/7xk0XKB[%eUY#ZWI%kk9.^ERVx3YLCWYf?/MYpMl3&creI:Z/'YQua[OYuZNH*u<8`WPVq*i_Qi2jA^2/-_Dw%jJa%&'[(ZG^uU2#6&0bCM0L'O:-%A`v'4_J$vji)?E3G3M+Cck.Ls9$2d3U$;?7ucLh7jp+Lb[q.(t4.fqR,w?rD*u3v,^_$vPZlAucn*MT/%6,LS&Brtb:pf@K&N%?mnW[Tq1Gwu.'t9v>&<9`Q,47ZBc&h06N?R7Lr:^3`LhL>>+;fAM7-jtuK3-rg0A+3O@GbDmGC*MTtZ6HrC&)Se+lZ?l7nD,`MQZDa08x`,/GrY5h'>uup(JwdBGAQKu#VGJa#tuFsNdK7:hBao7Jh/v]2%(SSjt0[G>:T`(01qS^NEG;6f$O=xnXWtXKfN4LQ5]l?GjMi=I'g[bo:'ZGu;Qs7Ii'kon`G63A6V(MT:hp+LYT,'rF`?6P7j#JEI:E>f](:I72pAfa5FJY#@2#[snTei'CHYSRB;rsP+tU>VS`s`[g.kx#`&?6v;pH=re7%K=rLfeLc)j>gjeQUH=RF9:Rdv.C9KJ:v[2kx+`XWx$gT%kkCP[St;=e7[7fs5S_8-=J&1WCZ(2*JVKMkNd+H;tjD=5>VXVr9cAd%Qna%_JuQ0s(rlZu5u'fDCNZQ1U#mq^RI)b4l_=#J8qAnpQ)NtpA,?ttd=tH8$l`#36geXYj2/&'ObI7'T/B2]>#Mxd`a/nr:2Y4?f_G,(wGjK7b[Pg8v)IB7[]PEo7jr.Ln=J)d?gQsIaN^l@KA6Rdox.HPuD(FEti9FV-MA<9uAR@^s+8ER:#9w(ukms.(lq67uEg:>#GnBoeTa,up7^>@s#b4C#pYL1J`2#S79AXq;@rF7v/o-+BM?/XudeUb%[._$?8tu;+l6ulO@S7$#D%>Xwr4-mI.Of[NXOe&[75)7A[P]t,xwP7l95Y+LCnK>oKR7tKVj/BT9.-4Mhn<]<5Y<(nt$m&#:$#nWEStnWD=l3x>cn)+-[qa#3QCs0Y=/ebNoR=Kc#g@,.(:iX8;o@BtVK#&)YEVwhSKfTTJ2xL*U$RB'MIg?se/wg,Q(N8.)ATVk@OOT>9$NU&<9$(tC)H8-2-9&_GCb9=#siU(sfvlU;&o=pwt*fN:dqDKl6E1*S[5@G%L5[`5_T3$5HRbaSpT(S6QMx+8f#@i#_b,Ftu-,IKmE^L,%8@LBS2+gdPfgUc[V:X9QL*negHgMpa%Am8`-F[rK@/A5v'KbBQC(^17*pX2t^he]FqdhOs;2PVKgbksX1r'8vh4>8pM>f'24-4YYjQ-EABcS#v<6:`WWJ_(cL@cF%-wTOnDS[(qnJTkJM.w:HX=*`a/KXchM=8pB)w8XqO6O?KtVFxkYZ@k95WfeA=mq8vv]S&$)36=u=dNcR&R=5`w&/(b*R6bbHcEr_wXD:BD6)*Dn4&PK1rSu%&sbuCWkq4m-LJ60EraEqn(9s2QF]U.9#LePep=QRR5G2Hp9N7g?vi&u8m@3N+Q3ce,`JVvHrW1[soW75e$6h`jiA?iG34*9>&M9uoJiF.#+VJ@6J#,Nq)T;j8L^ap9dR=Q]*'tV)5S%=`'v8DTRang)eoUrP,FuT]o.vNKjSgtk5%#G4%5&cl];IN:^jm'fu,_jM)Wq)7(jtb_'_]Q(LN[6KG$?,,ULl[DagnxxauS)0L>dI5d.tl;I]Ix]Z(v23)6v@>>[#j)8YK3vD/@lnl/ukZ=tsPQ-td6DMLKboAXa_*3-Zr[CI_)(HKpMh.nZkX9q#J=7GR(m0:v'tME(gqe3vSfoLpvNX:qNKFiTJt;*('qPS.X6Zff4c,Pde`>wk;],&v(qf_a9MG`<*N$Q[XkaQN@Z=&sATD-G2;a^c)&*t7IGri@qnA)KtqHeeVob^fkDt;)+Jf+.L*`Yt&]9A:vmQ^IsxMAV7?nn]&hj,f;]Hl:QpwGjtJSPDHxt[R3u388vml#Bsh@Dt$ahW/t(ebXIr/^OeDuLlSpMJS.?Bs48BI;4#NG=%cmrKQrCCWFV:+-ik%4eQ<%U,7vatU:q^*^[OsxI=VCpK2rLbB#L)?#iK]WJRI6*a*`XuOf:g:FC&9I1KXJ<%?nr8(O7w)fukM^+:?g4h=O'8f1tXV4aqffDRekrJ)(Q)pXs/)sQ1OlNFWCuXXP(tY9iFTR%Yu9;,u<)T1B8VT4t(E]Mi,+TmAf*gsq9vA;dY9Akf[d;xJld<#54*9./&GP8uaUGHDXKSrKS:)fsE77uuHl0f>?&'[)$qc'L7ewr(6>g-Rm.47vU+ja`w1'=c?&a4t(RWH`D=6W$cP8Q(xYjkof$@?7cMth_=$'#OE]#72j/;rrI7meI(21HtV-?i^RYk,iW50Nk+Kq__bi3rO)u]Z>*dcDrH@]a8vW/_QRJV?B#=T[J?RRu%pRJa4-]q#GAAM'UcIJV]4QM.XH9:u(03]p(008?b'?R,;,AFiPsIfuU-ge%b7I_W;&/?g_wI4rk_w.((EQrqf?T^AK+u;Vho>B7;)X$0g?O,F]a`X[7`gge9:$pu+PB8KZY^mt@TGB-.OE1vw5E^jbQ`NE*f51eqMsubb,?bO+g7-0o?9v9v*7v3K'kpUl-gfBTuq+R-N=DD6qC$H#R$vNpOD`92-goa6[<1$JP%bJ`Jd6(o)mK0f;Gp>bc^s-.V/J/)Zfrp7K[a*K#<_cU8tqEF59-CnP/tLlnUnY(>##^kf#vXMd77Nr8bAo(u)O(u1Kp'9%+qRiKc`pYfXu+?],tc6W1gN&wcuH@oI:Efoa_ahn*F:F)N6c=mQ<3eLFDJR)AJhiRrQ_McP%dlQCW%b-b.rkg2tXLU)2.=FE#KZC&+u7+F`&X*EQbh6RVAdlGa%4I_41ADG);Ol(1WM-LF(Bv+[)f%/1;,P.qw;p.seNCfqRsQ`*?w4.LmK=-Eg2l)6A&H(#::FrdZV+6-NGBJ'e.N.q^=hR,:onD=lL1UDLX?e7sB+numDTWh#59cD,@NP%nBf`;xTE)L0($xVmK9Vp5ID;QB8/#Poml/S:QnomEtvn'WNlJrcuB7q=6x&q%K*16tXQ-1$#7sVY#p-Zd'HNl0-sIj,(>?33M`9l*r.plXsVvd^si=1;2;[P+V2PQ5ZxI&(Kcwh;-]s7uuZ#XAkx7PZaGJ:*rkKjoFvfdXu@xp&8'`ioo/;8snc5wnsPUPKdk7n_o>1q-oLWMwtJl1%amFxJ)oiMwtX&9iu9Y1AVO^oweZ6`3VfO,eeT-3rm__LU?o*/Bu9=n77EV0MKgpaX7eLo5Hcd@YGbZU[**Axm<&&Nbuf2/42&>P.UAvQ,oawoweem_Sr@ibm%G^'An8+1.n*gNL,Dbq:tbhZ]cvqrZ9-e'#Xi,/qK$o%3tV5HQ'eXpIOpH)6G2ZV?U3+nKftG%Y#MD)BEUUgTi%L@,v7SL@ev^p$1bVdZKLX#E^_Jx/u>r9JSWGD%'j5x9ATi9#:H&ERquruEthgB^*=2h-$f04m'o8c2tqL:1%fUiMg+NMFrtg5k`-(Gr@m3m5(avbhf:>E,ZGS/kfl0(VZ-nOmuPtuLKqJiq/]m8hj3h7>luc_6TM[m_`Kb`,t^'K^#q91NtFKvJa+1s*qUqmJpJYRHVM7aL.&/),$JAFDOHh[#siK^sck7QV:PWiB%GJ@2na(fq2xS(v;K/@OD2=_ETe:NtaSO2^^lPrfA9UfuPZLm<+wZro=J3%v:ol*`hj%_O)2_T9AfE9ZH$vjdhouL$/X#EbVBAZ'4PuDsnwt'IT-^rnZG`G>$/(bVd,q3iYqJa>mj:H=gfEaUaqdTH9^?b]N_-g(aGnVcpHr(nqEr:8,`jP$_R7lrwA]O36FU=88=Zod7S7*%;Ji$UCru;hEK`Sf]>a#9o5v/.Do%bVb:dA#@tY2gnLAXP_Ac^@rQ38iIesIY]s5YHZmamenH%#m4Ut5Uwp`#LF(uCl1tZhsJV.?sZ[)'rX^nP$:,[^vno]fNL&KVfcL(q]-/wbhoRk5fP=Xus)eCHR5oQ[=%bBL'x%]5EujE%CS2MII5.+rZ'TloB-gZf@1^j][m_D,X;/o[viCV/53-%`NOfeLm;]5ZDZk/2^%%ZeA9=@tkK5wZ7u>cp'LoF@4s_mP(#C;)vTG71E2rADf_6bGXu.cK:tPHeot*jTCaZXe,q:,7_cX(@'#u%mT2`0)(V%[Y,q,''2_8$$Xp]=g,72;p3d-gqakl8-,qI`xEAITp]W.1[wtISCU*i?Co.>C&#w[ppncmf8tTM1qmmVSfumHS^oWb5N+ZIYXlh7OTrGb=05ZTE[UaJi,q%>heud>+65_4bifB%hJksk)KuQQ/d4_86%s)-*&L-6eHm(lS1OuFtF`OMY_)H4L'f.]sou8oKe57jOb^4Sf-m`,mftsZ1(vO0[?rP=.=)>*Kmu-`@xtEa6GrlB,]k,Go-udY-e-_5bBa2<<<-pBPxOi7?,Uij]RIV;*/vbP(c7Mt]hJ6xLb`v@xigsCb#9.&7W/sW/0nKA?lsuP#,tdEBw%q;P`IUTp/*sxa>-LE_K[hEDQCn/>U0,p,9&sj>hI1)j%eu5Yp4J?<$nN;bTw$+leu,RHX._WHn=-k4j:Qg7K=Ui.f1_-URsn)^;5sQHBOiB9NtT$TuKKgMZQe*+j[EnDtA-tF6R7G#YqmPGWd-ucvrqm7`CWburhAPG*c`AGqfYYc@cu^6k0nSE*P7)%]FuGLb)k4?j'LQpaiBIA:-C'VevK1FuvoYbmkJTV#+[j3<(a(To%kC483v4xV-q'*eI_M9JPu^YrP//Evh%v3#]kJ5VRtu^TaM9tj4o&4X*@[S#j](U1_s:0Y?i5&$NIZp3uuq&I%<=LUXuVxcLKLr$Q.s'=vJi2B-glfKx3@>1G;:B`wXM]_u't>`WUmO(x,Rcol8R_7dum%BXA)+N:v/,HZjq7X)>a[nuKxg>aSnQR:v6SK.L%^pWZUY0H[=3mM%#o*tt'8buiNxQT7^K=^s1/0)-AfOJt>--[];2+%UIp4-WoHGOhI5d29GMN_P`3]]82d[xH(s]b>N?_w/SRbeB4[fEi6vbH@Z3x'1u,7ho[oYGCLlx,I@2j51GMX<4=]3PJGNdd'#XvitXV^59:uA5nP'Z[]J[_/jk/DB?U[7+Solv#=X74wrW1VkBHt.'W.-S`Qwku9>A79$a>J(vK[3h5-=iZS^3*T`97Ku+Qa1BsXsi3e_RdU?xUFLotH7gw$t7,v&9Qg#CrUm`)2vKKG@JuWW1bUjh_jhcM77vvZYag%1D<_JeI_Z$]hIv?&5u?9K+iVBqrkWn%+Jls2*6Zwq19@xY*B?Oh[&eA=tk`*B0#(#wULs/j[XUrejsI_g>7dK'Wu5(o&I(@fLK,`gQn>b?guHL$+c44Qbfbc6hKD@u1q3VBrt&xHk^SnUun>&7.C,tj,(iqv2Q%]kb`fC7tJ:V34ncZ*=72+38t/>6CsW_;:4>joK>_AM(D?5Vvk;A,g]8`H`W[jh,vEPUlAdv@YKqSZifUp]LB:bv77HPVf&*vSruXL?Ra`34Qo@sUOl4p4@Mb/P8ujU`5(kK?6sY2K(qdKI=aZ'?Q%&,Q$-GKuirLTDW-[CYg^:*=6WiDI4&o_8=?<1f-v/Em[Wk?n4vZ,$mie44]upG#ajoUkWPXnctN%Z4ieDv18&NkJS%RW')v?XlSfI=?ZuR_]f)2m,G2'xgtL-0PV([+FxkTc#Z$r]uT2[,#wfJmhNtoa]nI+UWPpkWGxX4xR.GI%4lUI:#i=@N0SIRltb;rFbkJ)QYv$n9>a`kd+Ta75ZN+jbL9:?l^j*J%GqTEE0ntCfsM0kl9u(s@9MLTd<7d29:2,;(Safl7R%8CAw'L^F@a_%PFrOI1iqYEWQICQ2/Csjel/jd(5vVfO@pUENK7o[+-5'VcR<mrdk84I+U1_sT=,B1E3S:v_cCIJ:g&%CeHnDr7ZU)d9/02NA0r'$`-c;M0L8$p_V-(7Q5j;==G@CvkMgp&]eU/5%CM0%Z>a<===.>'mH[kL?'kl9OC6-?pJWO+YIuKZi'&hm#w?Jd?S>7cdk>.rI<G3M?MmwklZYtcB'uwKX8#Q67LQBoN=.?gu'&5uMT@-?h=ZGZB'9N7>w80sO;Bjs-[t:Ai_]:usEK^jT*28$Yv5w9Wh^[u&p^]3Y-H+tUt0QA>ig,qJ'-O'HstWu%^K^sP5V'&^p'Sa[.c:QG*eZK&W=1ERDI[3FnPQa63FVHF2;.L%#3l=xjbtcvN'ZR%3fiuA0#'Mu*br(]]-W9RabZR%inusq2/d5-DMT:uPWwO7o#G--;g=kQL=JRuO6&S7xh4:#^'aIQD8hFM$r>QeR>CDpg>c)C@h*Z7NZ?4qG6Mx+Rkg^sUm'gfpe()(L-[,qBJjh>u-*rH4`c%u)RNYd?P@l8NM'e+ZV:suGIl&a@#`vkn/E-$PW2xDV)qVt*+MMs@<#H?n*^Hn6QFZtOcs`_$sB*o$.M:vL+7B%tgUHH*qR*(k,cx=eSb-v5c(65$K9@iwhTbpgWF*6&%1]3@RWh[^AmYeI<@h6]RGHhH2IErVp8oi85Pn]XBtlBVx^YX5)$SIgJ^K*3A,@#qL(gA4(*j-9M&re##HK[6cJDn&sE>eOGwoi6E$)*ZBHmNuVAhpAF^O?:ncfu:HLclSSB,r4w/D)vTU6J[h2tow*DiUW]ITPB8ur%OYL:`Ts/W3q<$LK[%LrKU.l<]E:9N8EDu-Rd;fggqUrIHUv%&?m)*//8,W-cjtGj(N-q/'Wu-XlRf/Td.skGH`u,7fpth`XELso$C2/1=ju,mLF[aH.&m_8[&QM[hQL7&Kn^j`FP9$(9FF`;qFE_MRu')*N2TNK+v'%Sr-9@6;VS2&UDhw`fICA3ZkT@T6TEq1/vQS=QeBK-;6''5sK=k=^sK5DZ;@q[G4e.tj/v*#D-(tNd6v^[NucCHP.qSr^=nuJHg]GRIF_T8v.C/xHDV-$J07']3t>U,ofu9(UfudgJWP#1KE26>)H%/mIk'gr2ts>;VFn:JuJT0i8eJrd&?Dw;(B?er^XtIl6^u'XTF)jG#gAHp3USCDr3dc2kQufYJ/lNdsUm3LUGmrosDIWCi7x:Hf=$lt8r3nr^TP7eg<(ob8dNM(e-g)a62/HV:>0Vrt/D,#'GV/P>X7EQ=xr6ev656Vmp4UtJJnjAGMuccvV,(#4Pa>W*+I0Dnf+$[8cFft4L2BTxKFs(nmmL;@SX*piOocY[&@wnVurg''^`UUrP^-IXgTRBHBqZjVN&$P&;I_s]sidU4mHZHaJm]?.99a-+iko6kXHZu0+r]R+Tm($Uw2m.#(_.rAXJpq#P3eY$U(:bVYED&(I7ebWwo>@7b'B[hC4(q2&)m3kPUI['X<6q`9l;8vd3&GgJL3L](I$uk=wYD4<$Uq0V1o,7G%k=Hc7L=mgd5BWwwT)6lj019;5#/UZH7r2KMr+[%nuAilU^ov4i6GvD[_:L3.19Fo5A4ADHvSc(h<_DM3wXURugNkJFc;xc_/U-bUGVdg4+L1WI#0*Vnrh#BI#^6A%ubNlg;G]c>7N9/Ia2E;gE%S@a#9L/*-t0mBOCN=<1%[O(LDv4,HPn[1C*a:@p5NJmp[^/TsqPAVA1dH%BDA(JJDtl&98*v1Z/hu/V&0H?'QcJES=:FV4%2Q,m`:*1H;A*F[3[v;-`aE`V3(PsG?@ra#%`YL0mJJf_'bg8q&7DM.S,QY*'c]x8/O%BR.m&/;q-Gg;Mth=u)7Yf#N<*[,mS7FI*@;B%YTDRN]l[I#e.BwU+?*.WojDYnx7--H1>qwi^:;T/fwK2VbaO6%)Xi)?YV0notxx##c)sAQ]q'1M%t[uI8%>UnRke+/8c$UOo&q*A/t0u=PL$4tJ^4nsqF]L`[3c'$f3DPgGKLjG+2TrQ5+jHR]t_(_*_HQfoM`^Ie2ohIU4^j%Uur1+;1rHW.D39#ZSQuQpF7xrOv6=t,^P9R$498$&958.RC`o)`)m`alic3#7N4IDF4iHOJ]#DjDLV`2dvN]a4LAC&iptefe?<<1d6L6qBrcqX[XAe;`Sos52ASifJ%=7*`;gE(41^m92bL;@0GJAIPu99L1+OoKamshW**9K@hAS>V[jeaYIlVq)roLY$2h6f?Bs..cq`K:ggfE--H+iYIHu[Z$Mu/_H8vsX7EC:M2uR$dU*v0;AVa)n[5:X,Ibr7CGQ$%A?lANI,'`)GLk[:T5N32SI8lh/Vc80Bn^5ussmR<9m[n,ntw)?US[Y]quZ`nA?kgB`<@rkFVr6^_i')Uxk#&U(*&rCTY^K2D<#e^Ku?,*x&)enH6Twx:?$;[j(0UBfPD;)['lc3tC/7g(2(Yhla=0+:=hK2t?=RY*iY9Jlu333:'ON3htHLt*v&xoK,pF69vtLhOLPC.uXMQPA'Jxhv>(*h7-(Zl'v_=(ip@VYD`8IJZ1FcLfAs;XYu7c@?LNFJM@=v(/(0Ta*;L84>H8Uil&wlFRa9oXpmc)d,a3Bv1q>Fr7IJH&OpDZs,V:U#-h$AHpBkp7xDJG$.L#BTI^]9+_u^oOiuu$aUk;SUfNe7`mr3Mo/1Ee$vd`[$`s.N&c2XWn-Le4M?so8`L-,cb0%l.P_ai_^SubY-wfu&86Nfq0Q$)8tBrOf%ck1.a?k5[sQ%&6ph'eGD^jobP>^^Qj&@N4,1O*-;*VJWwdPT4(MM#fKYP8+Z>(.UEF78pX:[9@3j:u&%sE*W=3Ihe530In3Aoc32+-(('tu=LCN;nKATLN'Q_k^E[^dKq']#daj=S6vP[,upsMxp;jKXWk7QhLuSKv`NXnf$Lk'Y_nvb0[K)GZ)h.Lj<$=YF@#1gGl)?k2dsKSIgRw?3Sc?n.DB#*`8PT(9^0jb?Q,umK_C@>3w=8PuTN$4H:&b6v3D43$cQi`hd_9kFZCaImkbDTrX_##F%Mumn:%B3Gb14EVO-]ZTg[j6l5(/lXO?m7t]%p7N6/b&qKI9eFE/vuuq?S6vZ^W@^Lxwa1sJS/v8@#Fi?s/qmKD]ncJ,U`a;;q5`4Idi1CGEwV0H1:uj@54IQOP@=i2Q-NUh:h*w159I6=j9Q-`qZ767U#g_HR/rFOCK0rT_kXY]o%3L+K^s&M4U4f=^>kExs>%*%F76_g[7[r=38@I./U['T[u,gWRBD4Dl&)_-:X>v3vSKTNH4a3om#'i[EfK:]?,#=Xu7TlrK8L'NI(a@@B.VTPH+,g/1r;;1p6uLbV5lSq`u5B6`CUCU*/9*a?a0Pl9)ZkHCKYw*D1=`)/9+B-37f@g,lqj6o7bwxt;_>#gR8ilU_tec78],C'nU;'3@MCAJVi>).>3$kSijh-_s*d=-'(ipm$N^>QE0n:4U2p1BN+?m#v?OVuk)bGlH&(iocQF2v19`b7M+jStK.e;QhpYg7#1Sg9t9Xco0S`XHE,fB(r&lR*i#=@kT^K8uJN[hk'7c;d(`*%XakB5k29D;AQ`_AVhQS=NJ0e4uIkj)A2mc)v(saC$ql/pI_n[.aKA#7%2t(M%#Sq3?NNMrr8Y?Q%+?1Q';LsQ+$J2mfHCM9v@uBFM987(?korJu%GVbl8YUX2Nn4l4Z@d[Zjpd@`LGEtuG;rmR[>cmXXJLbt2Bo52+-x/J(VLeNnk46Bep'KGw6-aK&b[*&-XB6twfXLK2%*@aR8bjBL]fU@aA8I#kF;lm)-h;qRq.0Ch:Bd?trlgfk](U.U]hu8io_8%v7heM-_=VW>C@sVB@*RTGv2s#&2.gYT6&Ph,;>9[a4_gTZeX2x8n)6#f;/9qaWnF;fBMCdcS^Cul,(OGu:l7SCOS^.hfAn,('s.<@vhq:$WfE(a.`UIjPX)#_%Ac##@0K]Lf+.n@(mmDrQ`*S6>*wYS#oqsUNTpoK1:)+6YbXREW[Nef2o/hiE#qjeFGHO<`4vc==d#[De3tD1OfogueJ9bI$Z[;>J)vP3=omZMdo6w&(3v;1b(vhcfOnd)rN(J`j7ngi%.aR$g`dj[e+DH;oUG$k<(KosFmu&dqQ4-pR)lODJ9D4xc-Q-2gi8NSWdpNqE8A>34IifVBh*o-gUqCa,I^75];iUcw8Y$doOJ7R?Ul(+CFt-c6ZVgmo_ailCQs>WcSInQG=388W$Bx3o1`vtfOj5U`1G?KI9NTKhN%7Ys$?`Na->_<15/Eu45eFYcf`9QejCZ&m%.`1VnC0t#svo=Wh'=C`jAQ@JKo,tks$^e#,K<@j86AO/k9^'U[^CCV'nBdUvi2T_s^aOH>B8F'2gY/bge5U_Gcxk]JG`4*72rrIWQ2%IX/up%vpNp/=g]v/=M6piC:'kfGvasQ.C.10<6p1iGO(8?I=Ght1GXRMxYX0FvMXK^s<`4u#bGhe,pbJa,kd#kL>a6vn=]vSg&R>+;,Ap>Yk50u^:$s&g1e?)-qsL,80;pcu@O1KiPm61p,sfXxj7.:F#6-X3=bE1@`nSJql3>w4%'G:cNUeXa[#LEQX0:wC77O-_u`]ki+(0ZT%GRdhJ<9m%7NLf%>G[K1sd*CxE[6]HVtAmA@P,@Ou=Xj()E1TIAt,4mNK:ZvB9'v]/q8itQuUm?cVRr*U2GuoCs>NP.L*t3Bjl;wo7YgCM0w5CnW+$,.LmU`n4?Q3ktPN`tstQlu2jLq'*&m-(PJfx9v%&)QiFgiRa^:UEK)ff)BtNBhV-KRLkF3&Ca<2Gl4TIxQ*OMIukt^Nj+91?w>qXe[LQPc0@eWm7(5;bP-a?EJV3h`xAe7jkKgs/RF)rKc;uscCQdv&u%d8qqqOY8[RJnrgcQD)96Y=P7r]#E?Juj1M%1C)8pnT)xbZ.Neq1CMnF[(hKIZ3BB-Gu5Euk&*[`##..:bJCa;i%elbdm+&reTH.]V6;etvkY4+ht/GGDn[3P;7A[2`adN/dKX3Wcb^E@[Y7L0;$Cn)xtf,FFMGI`&InRw9SX;?_*2K,W[]x'3uvx;8tYfOhkp092a`_/ATt:p^`D@gXdO77riWs6xt)^Dfr32m++$_EXPb[3][:o1*v'-i'Lj5uKg;JAigDI*0K%Mlx)]+Ej2;a4S-bB:J_2C`4d1>bRm:@[8v3^bMDS5@05KZoDVbhDW$(0Z5:u]c35TbfVvp^NLrCNO/-qbH'iaWSJd#$t>S@e_6$BCbu]QfZ9sd8k28H5x9GN&t4L1A04HoE;/'8tk:n&F5`k8[(e+ur_%`$oOtMK]b3)(rUX>fknxUvLLEV+rRtZ`(pldoNKur`uuLeN]a-aa?YbU.LLG0+vMjOgK&rqmR<*.,Wvevx>,N&*md6fS9.4^[=F/s_aX.Ikc^iISfbd&VZ^:d@lY.%ZJc(c%'JYl>)okuu8'riA>NSx@3N]d4vv9#L)`5@Z%B5.?S._;qpgX4BaW^Ti$eLaL%l0:?^ma`sol`ib)3h^N&4Zq0gTOe*,44=Fb:WGqGkS>$Zm[4`>wBEmJ8*$rAo'xaK'u77Lx&[4U[$hBu-Kp&1H3S,5:W7;6=dh_s-x)1-j6,:X3+D7194mkRS%m.[GFUmOw=X$K?vp0Lanm]QL:DYkIa)-&H>0CCHYWI:*g0m(:0#TPMeT(IqZj06r8_uvtqZlt'aI+#7/Qrgul$7/QN,]hk)OvFp4@aOpZS+9vBilsXmN?,$^1&;,RfkZZ;f_J4D%j_3D@?@Do'_N4oGt)7Ht_Cipg('iLK;E7@$Nj2ax5TKt5%:veWK-LHO/AK$+wQ*^6*.mvJ=Pp`J,,L8;Z&U?d-2]tjA9v@roO#Ff_nFTh6WfrXDSK0AK[@sfO](#6S$v6H-3IO4u;p5N#l=[axcu'1OpG1b$L)Xpg,qd'q>]oe)S'xEG&a8mEQ`n8p?rj,;D*R4`(qTAnAH&Q_.Qgv2_#=0u3PAO3]$:r?3/a`&`emrJK-(C]'bZ9xQcT9L$+8CsD8(P(aqlbA)Ed=,EILpOSLU`MYsf/lv(t#/wTFI#>(]QCaKQN:SV`SI%Gtk?kYL3-EIf'MjpOw^-xrMTbK]qvqu(+<0m2um2Pp#1TbSW<>q5X)Q#:S`rQqWCNWi,wbm*F'(sM.QI&%glqogcZ#X4>Y[4a$hZ+)w;Bh7)H]SK*Mt7+'=i#Xs$Z&)w4COUlsfh_43_Q-Y1J8GGi_%Z4*vV?3]%@O@.ipRVQ0Emct]>E2uFI.t(ET#F)f,V9Y*hcO57)]-T7XT[HZB*lc=U04CWE.MjM^?tZ9vY9E`:c.sea^6MJ'fkfn4=^8G-Aq7a6W5Z0c=*Y_=YHd7J%ZeCsP^.U_F#E>F=mcT_*$ANHuXO0?p*g@?Mdk^fl(4A9Ivh9wht#V<1;Cr03J&lQ;/KLL/;mUe*0-qWrgINih?`'WI^TN3bv:lqO%cKnsWj)A(a5Nm54Y=v]1Uu?_:&f,$=[-/WcI,CZQuP)dEFe8oSVG7gg[2lPq,q.hE(aD#G*q%w%JuB;n58?^URmx$d2RvpX`uHtG0uJ@CLI)r&oe=k_7v_f/4Hx&FVfQ/#B6W#]f7XlTtm-Xsq?QuT%-Fd%*6r>Y5morX.UE_/1vSKK$U64]HA+ql-vnA47,V5)@V7qUMgBSi:?roG1u(aCxkI0S5v;PU:$:9gX='W2]lnZ&?5FJdY>-ww0.C2S`3tDPY69rD46?VWHQUH#+^YrAjtpvH>`ZU:,dVTt+i+9&?UE96>6U/k.l*nM-*/=ibNNEPb&F]_-L*3/Cgv*DLlF$lsj`F62i[79a7:n-0sGEWbL+A/_1Hk,&_FH4jbloMMsem(/tA1a4`f_=%OwV=QqH1k-Ta++B+7[6Z@tBo:QD#e2F)W-R9rJDh%;2kr-heq3aj%o';uthQ@_?453-Rl=dA).Z):5HuWo<;=?PH4L-/^ICM59b2'mtG=tH6OV-6V'.@@=P1Sdl]u'>iPa5uR>KXRKK,Wwn7S71CaBn#[$2(FbOj)I(GYXESo)nMEZC,3G_`3;[Db5?&E]$n7l[1VsHn&,3mo;RnP&au&$Tb9+.R@prnO_frbanq^Uw/s?i=(aOOehJ;IQsE.`0P%i]bOpfMlMJ?Uhh^4t#90uMO'bowcUk[#gGclF,4n7;Wp4`xkgefq1FmaeF%K_#iT27Sk0Xj4=*%g8wXWnXk>C#x]LJ(ccT_DqR(]#RjuXNaa;K^k^biVwp2c'>I4=+4WPArf8KuGTdA,Ec['-@NIO7:HBr35me?S3OI6>rQa83d&XEl]12c-@=@J*;*an<,4bGXVx2&%PPvG&Os?QM<>sII=sj*a>'s6f[Prjir@`EhvK:Bl^8/$3r#EEv/WIeG-tQ#if'ef)(pa%%=441fKA$v&Y+L4+j+YlYC'$`J=s_aa7N0etD62]w*a,.,:gcUT(KnFe&7A&0YoUuf<;>,r&20$(be*dxZ]%b#Vo7u>?]7692KB]RfUaf+Dc0.H(46uv$PSp3:vv#LD#;Jn`1'Pepc&ELJ:N;]HGbubGP5bl,h,r)N_scn%%hGHTmnsggb1Ot,&k@;?7Vn$#4BVN1`hSds.fQO9h=fSlt&ME;(5,bb(dE'`atW-P;mG[ZXRL5J7c_?$Q/1P10Gm[)HHbV5jpM9_<)o@ZE3o%r@ZTB$`Nqx@EPj&Yr%%T2Dv24#2/Un]3H]DltNJ#(U2w1g_;]X&FYq((t>)Rb@%(k66LR%rPu-3vjl-mLaMpW%'J;'K-aPp)+'R6b&%-*tQ3J,rxic%an+H._]BsoMYVn]V[?-xX/1E'vdN`BZbO(1e/CoE(5=Rs=`5ep(h4>0_M_Lg:A#dsQvf7nTc91L?KIhtl&cB-L`TO7^o($O`7'Ohs3WnSn3HG[<6;XH;Erw-t1s^u'siS&5FSGF`p$/3o#+Is7$N*rL%B2gLi>g:Z1]2(p@$[qdmUT>+?`%QrqF*M.@Aogms:]I)D]m_a_Nr^9kuZa,R9-0rf9Vfp'e6&cO66:&QMR27rs],f:PL;?F`L7F2tl?.L4kg]^CWh%$>?U7IOnoSCC2*r8rf9W4@CIbfHn$:L3E%t4mkF#&S03Y[$5e7h)&3.ZnK[gN.xV7sGK0h,sW[-ufIc5k]jV8*,m1HeM@cup*-tEluZAXo/D5L9dUaeK>Q3vokC+e,A76?]=E92)v[l8HJIBLn4-YEjQAI6x48*qv3UT[p3&aah%EQ1nak40V1l/:VratfeOh7c=3]Y0>>&k#=r('#p`7<&MxMrXM6Of`TYG2$u$2h%rtg0MX?-^nhKQWo9IVS@rWU9['G>[$&0silSE+Sud@8K5Q)B6,:9V$X^_lfuFUc%&.DAq_T%5$Vpu[[cjjFsjhMMm/vw#'&&1G'pg@glXnNMUEOun%X5qA)bfQL?r-`0W^`VN%P[%4n%FsT__@h6Po^C)@FnTGVJx4F^cQL(R8J]>cr-&6[mU)@HfN&-3)Q*J_*-se:jgp.)MUGCF)OI8DM^ABP34jR(W_-:n$'^bvu]QEHS&Aci_]1q>s,tj]Z_WW+)rK5hT?fIc&/:WgEWu7L]XUhdG'hmv9Ykl[/.LlSk0R*)(U.ce)S-a?F+NmHt>%n<[i_02h_&tK2or_/=Mik`&NbtH)9AOq,R1Z@9SU*)r3xHHbcg(.%^-aJZ0(sQC,RN7%u:E6eRWn&U&Bt8'6=/Gl7^;&Bjs%rvR*1XU&52sNZiLr:80wFK_5SaDFCL[qb*(-wghxf1c>dqwPm_g4plOnSK0gN.lB-LcxvFV#1g:5B*We/_THsATYR-(&+P:#*pp'rFjA]VfKO+VOfI)jR5GDnXuI52sa9ES5S+)u]dVlRD7*YsZG^9pun/ifiCbvYbdx5CP]l_a/-INf'M]f/HSLtn6C86UnQ-SSwdS:$VG)bk0H6:NFj]UD.g*+vQD$JubW#EZAwTOnt3cU%,Q<&dFIlidfRRx:mG&`j^C5d+mV02qZ`S-s^)PUleQd_uQ>N#(Be$Mu8RISm`.WlsN8Uo&rYtju5'-=@M==(6Xx(LTIQ<*d'n^+3k2D25sTjdFg-o+L6<>>a8i:%7JZCF+U[o%m($eqFo&[hICdN5v0BTRNb$Z@LOC3i]u`3a,pIWaJqAiw,Q)@:v?N%p9lvB<5BYk.pg4bs5P;E8MatSTLQfVoXu]+f1w;-S#,S$sJKLIEKF-/iDZ0Uhs@IPNUe&W#,)G9,P#vDhr'(n/&jT&@AkUrJDEnc=DwK>Qo;G7SnKBIF'Pa`dO;Qr:*11-A2LajTij*B&*&EB=.q(xP@Un3ofE0YL?xR9OZlk0BM=vk=WF1FZS]=Ud&1J?'nGavFXFL15<+FB/2^U[OrG)3`aAZ)J,CT?lnoK-bK;ehXbh[ikLY*O_J:]/npTWI#)W=#k1?/D9#9FA(s0dM[p,&:DQ.Af>tOb0Me0p%0i5jPju?p3(3QbtKdGXDEa#P3x4k.*euctZXuK_b$V--uVT^v#uT?Uf`_S4T3JMM_r(t.h7OgTP*Fk3@JT1(:(4(5oWs@#G18bT##,H6ZGk8%s(VWB3_$m-8iMWd[NaXUm4S4)0O?p&5=ql#5qgL35_cp<$sMrJ%LkR`*dY-X+-vX'vJgmTGb>O*lLGIvh9Yau4X;TGkaYA;^i7'/*>Hv+vjs?>V-ca@#)0:AG74V2]]8(U7tdMj#+H,i.2cB4)LvT'#xl-FP7r`9uEIKE;`[t@4TGx^j$bfw6:WanPKxFc_dpe/TBI_SsjZsMp'E#0qRr/HnXT'/m%YMl@.q>Se.bQ8-9va4tJ$UKTiJBB1e3JR7`AI9-lLZ+(1VB1^Na%piaU-/V^Ko.&Ya]CN0JmIM1LUYW@dJKWb?x84DKnF/I?DP`OtFvRUTR'SJ21)Go'mLamqx+N:d(h:3YGJlg&tA+?GWqIUepQ[uwSr`d0:J&6='S;kj)S`dYSjpd+S>6`Bvtd.ium&e.j_ShJx.QPB/bGY#8@3AXq33wGgAq,#,i:D167S/PUp(BG[Hx_[$vX$8$Qda`nm(iZ4q;Qg,J9RSf_M&l5sjg.CtqLc/;=2UtlKww(38u_oGwONg?cdYbrIHYN`ko`4uCMJaavgl-au@eCr_X+A)nO2f2Ec82GldNt1NrXkX3GOJ1oP2;?Vm^)&)Z&_eMItGV'$5a&VS8d7rZLB6Oe8F+.je'ZGPOFFYvu'alI*ne@PG;D6&>slcJaSUCq=^AM&3vNG4Z,m&7/urwoUHAH$-NnFiFc3?adsiOAf9:NRZIS[q(J=+D;:69-IUjgq^2I`N(MEfKsS2gk#*=b6?9^@LDENaECQ)Td.9j$k@$.kdKhvYqDIL^V3pDO2J,WL/Q4SYR@$`GINBhlENXCs?j^&_h6H.c+wwUArQu(e/[V$ns<32br?gUNcfshK$Ah?_s?(>DpA]K3mbP3k_7iveMI?q.a^AbYaH5#?&0-$Ze7hFl`J7>W,viqxs.@#m]d[';-5w[C1wQ30kkRGqChZIqCu5NI3&sJ@X7;WG>6b@NtUa1Z2eGbbQAWnwJC_'`IQVYN5'u`cYlNrBqGZp@rnZpcrpd/c(m96QC^w`>?Ggj%BJm@NM)AWp'qB%R/PPEE(w-H9^E&q+gxS`?Ivn%#2.5G>,8ja&d[AVwZ=^vkJ/VtHaV+f/_ui^LSDfI:m8.NG%]e:k/YVVPLZ.>.7Ic]JYoscGtmek=K[4;6Nf/E7BZIp*9EnUa,cJEeB[X]-v:2F5IjThuQ8)rUG3?0E6EtF'g?N/^([w>Lte5,ha[)05Ao=4A+Dj6;rwi(o6g*CM.@6KUnB&xNLn%vatvQEn/P#oc2>5@nxZbeqS0+%bqLqEk_0Tif&8Gr$_H^*s7seiaSsSFt2?P@b'gMNfkf@61b]K=f:CQ6Vhg2747VG^X&DU3Z:MHo[lLbTVqMf,$k9=*Ec(<@tP?IermEYED.L3.gUOO3ercRHjExdGO[F^Z^9^L3vt71+IZB[Va7$KcLL=xKdL(XTG)KKqpnYjk;p:uMYr2.#&kax+FJ/gWX*A`^hd.+9V>)0U$9[d]H,16F@E/6FM2aWJ2T&$%q@'@4lfRL51Ae#JpKtAho?1S&-l=_A:sC0@a1%Y8lo5))vYr&MEgQI6F5J@&b-+ZLtv*?$;B[L02XbX%<:jEi&D[;6(3&1:D[j@)E<[&wM%,bal*ij3#35946#s[[.]29O;Qd%K4SUiHAGY_4B(#6annVO0MqB'`O8enLhrDm.P4).sNk)d2J+6TTF2G0JH^2D'*[_6)*8_GUbss5a_M-m'E,R>m*p.+G7s3ZWO%[P+l,[RET1a>H,h5mvB_k;+.q'1X<20b9O7@+Q7_gtBV$'EI`e0Z&Ajjj]1k^>_1p0.N>%g'gSnnk]XWHrH^*ONM%LX9(xXnc7j`/s=$7hDNSlP0q`Y#'>76>55N%,Kh'kw@43FdvRW`pF*x;WCE)10T'%a]gZt1UfQiuqYJdFB.O<8f0K*UTX5b[F0#AIi*+.$GO`ngitf'l:r]-aQuFnT'u?gJ:^_ve=H6nj/.+&nj=ZC(vuqcn86n?X)QCFh&jZ=sqd.qBU3.:&e]H5@%ukJbd6OuiGu%+F&V3ovfaOL';7=f@hXg`1OhEU^HTjSN`Eim_io%gniN[K&]#D'uo$>d@UG_YD.mhkwc4@HI8N5AfAA3&->=J`vL(eS0v7vg(06W=,X&/T^o?sYC-xFq@/XDhG;2T`p,8Rc+us73>-,&Y,Nm>g)I[kp$L[^MN@rV&TAk`vX,:W(6HSV=V[8Fd]?NNg#mlP(#X)wxfj,TwFMbav/kL)cRg43L1#]$O/vGOrFM7k7_MDx1Q4hb48fQ,-rSL`C0@74bIr[S@8vkUBbj]e_d]33mdtVQCfcMsh:RUIX<&h&6;c&'As*59L8&sC$((lnj,mmb2vJlUcElLX;u.QchS9MLuuaY+'.XT8wT,ei7R]_=guI2k,^fkJfj=6'%)>XnZM/sffpo)uq^#-vNiiof)=kAfDo'&LQ]*$LgOKn5<#ij&I'k4vpZFJ;vEL7R^elw.x,n#E0@WAG;K&=9OZ]>p&SLw#CbIp:J=j=Si;X?sP$FQ/RxPe'=9r9_G3%6Dw<;YsQG4]d?)voE0`kNh<8S@*&Ja0c.(Envb:%fMv@5XiGnoC(NAD*illP^FA?7QmlK'_%1GsR(&Pe&ELJF.2=ut,%t:artX[2^<3d&a,qmf]Ee%u+*a^0A@r+7^KY_(._bMt+A[;S^-u:5h5Q>FpceD'&WObm2SMdn*Tv9-W5DWFHcj.UeBx2DRn=/IMJ]C3LgcK7hQLbnYcwTA/Jr,([%8TGRuowk/1Sf@9aPQa1OV=X'?>esm1uUU30gpt4dsg3)&iLbnpALW#4PPKnd&OG>xPW`,tFIGdA<9BA=un+v6q)iJSiUL9`+eBSok.fQ7q00*MKliZc2AYKRfl7xEbwHi<-Ep1I#V&[PlFA1=@*<4;-FNaDLd&PU[CFw4ZD3U/VH]hdxxU>Kof==ND&9@USE3mqpPHH)VfltSnLF0bTW2u4#Q/N*7$nLt$7Ig%1$Dn/Bs^a.3bBaK>^KT==xjgN.51VOq,i9wTx9:u6F^sDDvvUhRZ7$<@),q-OhqTtR+e?p'[kS?vHo68&4rq5[@-?BJ>aIAg(@a%Xp^pwSa`Apsn@#BjuS;-1c'rJ2a,sI34x_:5_TL6Ac*eq9dEqC&gWVIE'8/m-/g:G6s4[+R&lLC#ci)2eJc]L2J7^2N.g13Q`4j:r?%.u:A#7/F/kPwh$-Jp5:44Lc6M--'pZLnw&'##cKh=Ng1Ys7P3=XNfAS7].)`0,7)24q#;SM%k_i4@Y6T.7)C]k117me`@Wd;ddIUww`,G3Qxp2oTOIZwHK$s/Fg1W@2.f.xh`KPifFpP^]GB1db#PsV^uAJ-nNmuZ4bZjH8?,;R]skj]HSr`Mo[88qN1x@#3KDZ;Vr%+V93Stm_@7bY,(Z0LjkvXQNtXBpH(4X._k[.B4B%H3+XR651q>-WAY*J_/9;k:46nZe5Y-D?M,$255Q4@/W:ZJOB)$*J&9sa#`okF(KZ%+1sS*BvYTM#A>N^WgpbaB7t`#a_oclQBf/Ki4==6`IIuKR:g1/;:8V>=7%G^=#i7h2D&Rt]:ju#I#5mmLHV;;asR$9BYm0uug^BITRTgW&$xFW:vK'wS.(tIbK[tcH$8x7Zti(J$7Q14M7xU@c(/cgaN;+nM6`9s=t1U=1_8wvRAY,g*83T?qSMxvJthswU-A=>_'Qe/']HmNd<&I,L:FhfiL_e;[u%k6N6)I*?o4.;^ag2f-hN8ZSuSZ0Y?PS5O5x4PY6XJlN)kffk/CQbrKRrx*[.D/[aU`hMUf_.8_;$jmn&*b6tk;*5CUmS/%5uL27rn_-#r5BX(/V`q=I-#je48Qj.-L]LbPBa15vec#lhP`vwws*L44@qAT/BxfGR@W3)coNiKaMo8UI=dJZAbj@8unF4WCTrp_F>3uF.gEF.J1XguS#JxMnHijHD4R:;larjFd<4GMl]i/6%+:BYt/mh+T*DpAP7?wZvTC]'<[_ad#Wqv`lnM#)Wo1s0Ffww9tJQj[^j]jqnAgR%xs58LXV9SI9F&laCioRAwt?C#UjL_Uo*E)>a.k%-IVq4&ijxgAAh&pFxsdF[MFxKcH#:>4^r+dWM'OaPdIkog*de)2LiaLOSR/2=vs%aS8:+tPs_'6'[.u1w]XJ[_0)*%43ZiuB6>,Lj_(0^_?]t;a?AJe+Ht8$vf;wm+e(6-T'S%iSB+P8ew.[68vW1vIY*7r]b(Ss7MalNi.HFtot3SP1xu&.JWT-;v+%Ma1DWPq8xLk&BU3mboV^*hu]tJE08H?9f_X>G9xX5_,:/$m<@9*;.-'dm7<*1vj5ap'Eg)6U#G1LZHr(CCW-wHI.7hwg[F)D#5,>V)DDJN728uRG369-?_/M=e1nrMDh#h_iUa6oPiXd:Lu>4o[;M5`25@Pd#`0#+mtIp[LJ,I/[EV0j$vkIpewch>:$;PnQ*E1B*Ep&+0,q1#A^eKGp3Z'xYc+'&MBQt99E#ZENP#BAkHQF_s/*QEK3B>qXhlio+?.Zq&1vF49V<-HO7LGBmJ'bO@2Qq4S_anOJdFv.`vO$3RhRPq^.6NKjjJQYAXsZ8]:6*QU;LM_50BGg:+G9]v4$oeo'q&8L=;JX$@rj#a,+O$029wGwT%RneB3EUQc?70p,$i>a%9%qQTqBTawr[i`b3vCX)>XUb7.dge[F?>'hn]`QcuAp[0UnZlf/R;g8(UK(&v0JRH#@6b0U%N?[t#XsvP:KqKaUg23rx5B`<.&nI<+@3Np%8H+2rkWgVdMxS6onqs1[mejv&MuN7Xw`^:Q>nDg/wj>.Z/tXP#nuein3.`(5o6lHHKPOiMh@P##U<4Qv7IjMfIA1xK$:<@eqKu)wNiQ0[_m*O1^j/wT5j-NJN<6usvK^6%idRd'hG1B@^VPVc7.Xwgn1N<`Rv:Rr4s*Ar0+1bAPKcHN#JMbKgg2W(5l+)OKvxjF7s<0:4b6>[I-.U-q0Ns=_ttTQEf+L'1ngF_n@sMH[X,b-X'_a7Z3_Klse7EPnViv;iXt^sPC5GWHC4_'oHB:44mrS'vPe&ca_hOq(Y)oY()QYk'_*7pcL?Vs+OVt#rknW0D^3NuKk^)tP5o;#4GZ:m@,E@A6gn8V?s-^^48jsf<@;1E5JAN?@sBt(%@oPVg97C%FEM^thTD%tK<-mi*H'6t0w@W=HGtvp9lUps6llGo=lA)$qQQ`sKgKi-6/+ipt@:(L)[A:`o*`#bYl3NI;tcr6>M0j##-&LPTNQ^seF6$75'c2rHnhBejxGXOW:^92,3w:d2mJMdS'oG(-H7&SqJZ%tXZUERM`Jq<'Pv(^@OUaVt2G'T0[JG7&$+faXbh4&*kN5_W<&xtuN@#e,p]g0iKVG%6FgfLw9-S9qx_@t2HKh04Jg:$iB.h#6,'$]`]VQ#WGtkr>nof,/NQm:3-XClTAf&$_<#Qpm-Nsw4Y_FMioSGm]m1'HB,E3-mlH5rI6XHiILfmqmJ0KgHm-Q;vo,%RUX9uxEA2-Zj>0FKS/YLJ=c8oH^$r]T1a/>kV*7bNd(1ChUIcg6V2KDKH[O4OXM7L'nuE;[u>ND>sFGx55D5s_Oto_6Z,YnA#JPs?Y-lUXCJH-nVTiEr[aJMq<-A@UDm>os7vYo:oHKCIx=Us*'gjeXr5nvINBkoN?pi:gRcA^,WI[@k:Z];7G2r*=>RtCQe0cIF:Zs_o^@]?gPok=1kTQV0:vJu$gUceG?&ac]k2M-D=(k$]mXf,o8'u^melwsdR7*?O$hC-thu(V?N'7p1PS.`tm.Atr1qOQ3Z0FVH0]TIQ-HCR/pqG0?A2-tR_q`q4gFnKn.:u#l,Y8)H^XfIA`FElGUa.-rh/pYGK#@XOskGegYe7`s/kR.tntZ9'D<1*:N8b_^Mk?0ra_CPC)#<8_Vuxi@s1e`WG>>$2Ol&rvDC#rQV#G^m)J2`XN(*CNBfU0f8'l^1rLpmml=nX'R/_R%*=TWZ-Wn5WL+VQS2Z7MkYS@f0V*i9a^;8g>H/tW[<9d_L8aE)TcH-Z,'$OfnBMq4C)rt0/v*-X5+@toZ??2OdSKaSvEx45sk9Ng4U8d6[6Utd9aZuwh()8Vsr9W6=#itc7IfGVK/>&Dif]r+#fdhehdQs@C=RIO$2FKx]6B7bod3?e/h'92%n>+^2+l;lcYnxLs+<1gVX15r2LMxXHrYs+8/8DiKuaX3dw,4&F@Te5W'x=#_#mZ&Rcu=PCVC]9P7DjZ$YAnd`[6Dp9,t5M`=U'E4HhhVnEdaoU,%3%1S[h,?VqrP^.K?eUB6iYiR7cWH$v?'O-Q?5uTmx307S`=P(IpN:'7JQE=$<+mZc9GvP^J:he&K)tP]FH$F/TkQJ7g*'oA*_TjA*v4w>dtcZY6ls9%fDsVL)+=^a#AY.$lBVNMO#9Al8]$C.E&%oK]Hx1L2FT-6VtmKG`QF,8#:bTuUea$vo+A_Iqt)'=Y7sp*K0mPL_V;xnavplJl/c_Jj5L.3#2I>O';73Fnn#g&&DO/CV8c-p^s_5$#JSKXD4-Z7f$.7nFQ.oUr38QACIUOVWa*'Vhha9v%^;2`t`r0&e+[>KG_uft2c4Ru`H)Nb>R25aLp[a#G`M;6*6%B80-o_`4Gfa>@UBgAm-M-$VNH7:gHE=$`FWdk%3H=I_C#`a4BBD@mjc,L72Bk)v4w?rZN_[EhGp9rrf&pN9HEjLfs$jiPYcv^vdBso>=ldKQW)lJ3-38XHTs$u+`NHCm`lZDM)Mvp6D.113ZZwr28X.OQH*-d:_rb';iF7b+[C`<>tpXGVdb)%#?a4AAD0r6DrP>6e&SUuh[HlFx>6xu6GHQEDiRZk^-:G`D%VX`bN0m8>=jMA)%H.w_nMWQOVP67O5e8$4dd/`CsSs)Y<5tH_L&$_J;)6m^kV,iTSCOtJdK+:^-^7b[34oMYh`gQ4aG=E_7x:Fi8>Aw+q#NY2i7=ee&)lBfu,E=2c4s2oUpf+bNt(Z=Ct89oHnfa0a`OhuNI;NoU+S@:6VPqo/dO/&ov_W8lTcLNueI0=(4p_nuYaj;lE1,F%>xhm7qPmxD8;hDG/5OU4>r;C`c`LxOjm@9$F]9+L1Z`/C_$gVtl$?1FUEext#LWq0gYElA)@R0kIEC*EX;?TV`OB^sRa`4Zk$%/'pxucU]YLP&UE4R*uAm@m#2bHHL;R;RaeF/_GiWfp0mC)qBKmdJoH><.xV;^mF+i07^u7YI6t$5_xw/5i>82JesjpS:jvOf9gKcaMk8#gD9nj8;RLY5Y7+m+GAV7-LktMReZ?nXnS6':K7JZ<>v?JqCM%L>lUw>6c9wtDwgl'p:-&vIST)@c(IXuWQ:6_0IJJ#mP:Gf0[b9a1K/rcAxIGb,VkbqKLR#RFkrHK#*H6BsB`iQ+jqfP^58L5XUxM5*/%_SUF.q@A5D2T)q_u*e_i0F#%P;^`6eY@-R]b3:jWU1QmoB@gf8q&aw+OtFL&lY/:::NqW%RF@j<$S+>4=rnMXaAOS.I(J$7NYBv6GdRsAfQsPX3M9n20l>w1S9HS`jZ]_^st]V@K8NmtLIgNQaH9nhk#C>Cdg&r+r2s*,6b)l4_o9pb(a23g'cj?iu]g%@MA,:&lVt4OI_[)[$`FO-su1Uj#Y8w3iUu&Qk5'g0ISj5(ume=R*MaK<.,VKo$%S#V(Q4H=iLiZAJgS,eqJ2[[c`5Ks12<;N)0V;A'nj`Su<6O:p2PLZ.uPt&gs#4^7l;x9kakT//s(Kb_lC[O%@8GHIG%Z)(M.E$OdHj'L,QpO.0*%asIs[ZN/XW6b:&-t6_HoC6W(,F7(FgKe;_r/l`*hu#B_@S6:S55Ef,KQt<]2,Fbux:DYO'i/ZbVO7F@E_aM())dKiRjs;[qv`?m^fUKCW>Ku;T*vae%ku&^q@_mEGH)Wt>th>6iw`EGZ%ME?k^SS6TA7Bv*7@47T,gcvUL.d;Y+?7Y(2(oe.0oaJ;PA-.K3b^qdkoq#3c[QWYZPe,Wl])L6]F)a=bft7G,vRVphfa5RU+pqBuT8;Bk<$m[d+oT=+qAg><0OEnCjVkO68B:`o@H*kH(bjV>-.1pm@$?<-vG)@+uMS1YZx^Wv6:vF.LT86$KHRckUEixwgQR>2CEcnC*A6Z#7c'v/KN$D*L`+'Ja_r8g*rw]M^*02wL:baa%rAo9t:f]lKu5HjF1cwKCj$>2Q@gVW?k>`@._j&?Zs[*,<&B8&,:gCn.m>7)?-N^2v6Qe.apJQ8[CF?w7U-P)'r4B$'^j(-f/Yi85oW'%;/^vub2B7,9O0BEXf1-rhuKN^8+qZ@Utj%bpR[1Ucs:e]wO4H:X?Jg2UJ$D+gkI5QmeFrsSSM8uFAYHc7;_dEOU9U:M==GTetxOO/d/3I//6f=,RxKS%;i0W5gR%U*D[jgVD^%w_HxFGWe2rlSx],V:9j&4iNhpB>f$7sUZ(xYcRh>Q>P8pouM4b&a>b`A)l2Z:Y1KlAmLid].U;H>w,R-6YYLO%5)%l&Vd7iie5RmNnJ=iaU$gc4kc)=(>>V)uFM>r2j^3'(bWDjucO$BZVA$U/&>c]=asd9aj#C'?BNhSCX.sj+K.*oB%$'_[rK%HhnfS'i5*[#D:6ZdfS.=Y(2W)vIQ.Iwx_h#@5t#xKp7%U*O7$5VAmkoAt5<[=$c>SPZ)qa9S?UeD.$TXKR0u+sie-ZoC`E,J#'JZ-r:u[ek):*b2/(gs'%_a9P,5MASSAc=PWaJ:@wK>0G*p*vKruxYYvZqu.T-@45gaDE4vc=)NDukv'5vncg+@ktXtV:Ga+kv)[2xrm>Hf9oH/+KpU40S,=v,Q1gN[Fd$U,n=?O__gpAWN7i*a?;Vq3,-P@MI/-8ls]JNIt1BTPVDIxP0qsJFBXXlun^/)ST_cM=g>]>8#dfGs@Hn?Cl]jo@iQp)7MC`G(`r.&QT8.&/p=Jw%VNp;EB)jlLfG4i'f;Q/UE1vsu7&E_12.imXVlkAx08R/L;5E'o'FEbsc'x1C(CU(L124U_=:rkW3<3^Hom=,`lBW(*%]=b,MDdDW-iS&OWCmeL%1m)l39@nX[BlmbYC_.LSWAhat5DEoZbYcwJbIm0'2&x_NC,v]7uQ$LuCDU^f-Cgn)#Rf^%>*$daKCX5Q%0*djP&8-vxg8xE`bsn3k(dS2rMPKc2`/^jJ:qoK%knhb_;in8Oe.St*0RVDa+7))S7[-J`YcC>04C:-UqJOlE+IP7BVwf2(jqm7k:duDOO`hkxI-WXMbtTBFsV'%8#dvZ8aqS7hgNhM`pM5#a:q,vF:os133i/#I_@3b0]RIE0cj'o=u-^7P6hKlpT5fMMUBW@tba:,L'#.&g8f=u.Fc(`:8wfstHD?mhd2qr*dtw4p%vi$^ra+>L9JwopNW2-ZDK_,P2nIVe#$eZV[A9Fh;dg/iE^(PQ)e4?X$4M5_?C%k/Iv(Cf=Zlmu0afAFZV1*KBd4&3)&Axj8u54tYtU[F7rjm*5vW*%eaJR@At0;'5%bw_AQ70-(2Fm$=uN@s'a3WQj@'2PL/vQw.vlo9XDYFOL>.VrtJb>R>E+JdfVE0@)4jOp.Rvsj5lS7b-a)]E>HlR7H_V)i/tD%k@3Q[POJA0qW,lnx`$wTL.Nm;JID[jIfJchwhAv[>`PI-s>#MhJ(1[QBrmo'o3P*aq/UGfo3A0l-@$/i.xtC]f,'2AAiS89jY3>Qq6*si#arHYENK)X5op1,ZNr'q/X0^8Wf8-Qj1`7pXtTwK0iSOd]'u.:4J^*GlLfADE7G?tjV(=5/^4+6:#A9wWe>^k%Pk-0Xo#9r8vS9/b*5?b@b?s(`a]f-PE1lppHpxK5_)XQQIC'%/@f&;f9;BEMSdn7fY;@;ErA@xuU7KEsNEv4^Fm>>8$*%RnKu3/d[8OW-8f_hrHJoOWb7@12]mHk&v(2-CTZt6:X$6/$V8bCuW)QjWo=#L9b*h0e_jmxTf)KAn^k+@N=bn8e*nv)^1;>p?75=8R3BK8,=YnAM?SNrFgsn@%XTRos@BPf=2Zg_SL6v>/k^.B3auGnYxU(FplIo>KO9E`Xw3F/.WQ2BNjgKI(B9Cw=@(ph+[G,pc?l6;lH`iFMY'_SI4Grv^dvYAm76w&L%OiQc'Fej,(`1v.mAw91nrY%='LPIm[2sZPf.huC=S0([*%2GEts=+S7?uXgVSeK3l_*s5tOvLmocEm3Up(u=PGUhi^,-rvOp8n9_-4YrKBJvX%:#B2X0Tc[1]1LV-t?3jJIEc@b_-U^f==pS&Vg-[>LuvCTtE7S%FrPdO?Uok721k=5-Xmku64`vDAm45(Y]orcQXrixkxdBYIbkxA%*frcjGo?[C]bRK=:vQf9?o7NIDLY<[;rEY1)q?MZ;-UsATma:Fc-VWhupn6N?ZG1`=^M8=gblH1<4#gVQ7;i46%ST^xs>sE9(^A4.7>WC-qIJH8`*t0+hYlS1AK`J^aJ)g9-oOXFmAV>#vpDG?Bd=n7$'kkQ+^jh8$Ki1*q:Aru$NH-nL+*F@)k$OkOh.bg'8<+htf$hh*kW(9iJ+A+Q3'.N$pX*i`P&oISp1KtGBIS+G@jSFm*m)`Yp6vtq?8%uo6q$LB4&X6%;$SK[.2m>ArPsRIGFhLFl[J0INfKX#19/jEStsJp9-C<--Y3+/N@uHvai'^O9l`Dfh:ZS/X5tb'oZDl>7)qIo^_Xt3+ZK.+Wq1$t'N[V>V44`G1E9w'vVsF+[,X+(']8lBN47FT.)KRo_?)UI=kTZ/HaO%P$=##NkNA`YYScN;qTlkABNq-'%8GMl.9kJRK-$uU-dj%3Yrp)_#=puTn1]bXbjEj%rF$T@_o*^5OC&bMGu'hv@YtNk:@rtpmou#eK0mk);rY6BunuUR4v#e-PO?`2.cN`v>vQJ]<&:8LWxnmKN1Kp^+VYD[jsas)/Ee#xG#v#k93OKfmYC(0i3Q7w#_,46S<]wr[[q$VwT4Z(r`ot_4_Qg#UvO*a9e;/P^xr*,8W0c'BE#Nsh=E3SABR3Qvg;NZPdw^8p`V^+>'(.842ox(E2U_CNtU-+FGpS?nKVVqJbY$s=pbuI'FPluFg'welCfUa`s?U+DEXpFb#_ca;7MH`vgK(U6$:%-g8^/v[O$vlMDR:uWi&M7N:0C8s+$dItO)S7jw+oqP&*JavBex5lu',Higt3QxZU#b>%n3?$A5D%/QlMsKR*'.*tC9Fk&R2OZ#.h+YEt[MRo87.*DceMZXBUW^fD#HqDOm#77#Dig#n*@0lds%?n?UR%vP[?DWw4b):rD<==CtW1uu.QxpJ/?p7B-#aU-F5k,&8GYKT)f]0%0vBtPmt-dpmiRth9iNB*WT^p(*piY8tToI49FMN?a6]/nS=n:I&m:_d'_fQAbaleCarm,3voWrX,T.k.L&s0.L15s6utd#Xj8I#d/p0mYPJFUo+xI5`GEZDS*iIbV7uXx=leuXY`ZH(KL-W#cqj5emN#Lj,*%Bm1(D1o+2a1n)*aWt(ahOaoFf,q6lK5ou>V0ccucCj_1t^g$(x/U:WL#Nxa^R'=dxo[jbj>cuWQ8h+C1OS^Wjo]iT[:QKbgBBMnV?q4.^D]Bb'_5kJI%],LsTuoQ/UV.:(AW)ESI-r4CB&_au$6/5WBM*9g(-h*#@kJp''paYDA>[bYEuLu8Gvllot(7.=f5WtPK5i^>Y%x4c_w=61*9^R]Nfokm4>p5b5'8gXULfS5ncHVfXCS7:CL*t7n99Vn.Ijmf&,Bre+Xut`+)S%*?q]I9g'+ve1E><8=_cmK.(fu/pxu(wc1?BLMtPpc@H-q7f@))]`WCO6/,A)H3SFK%Lq:$Ik-4FemI4$Y$xjJFXI.9kxgiuHH:-5:O&;$^Xj]'S5%,t/F'8ZifUU7b;rj94%UWWihLX4eRO9vH0Yh[T5qmaHdRxFq,[.L;j.MoREfvf(h$eZ;u>Z71>jrk?OrY&i9f=l0KXan3j'6Ab)(`aC;&Cq*w[7[dN6bTG]WA+la3e_lb;Xg5wLO?TSIL_hH?bAVbe@ZMEIT#/mKj7Z-jG_nUHAo.D#9xiu>8u_T(Y8xu4icZU&N8]AZVS^2tBs2`Nl,4Ut38IP7I7o_j>-4I_Gd1D'9tr19SIj2aeU$f/^7fcaV8O5oGR8BWL`jdXH#&=^*t':(mrX0m]*&)qi*P]bsV7i+oJR-uVw9Y94POY5C[vfqMX1Zaf@+:_-[E&?1qhv<88tt*smkKHwV.I.ZX%gual6lJ?I_KGW_pTan@1)lqwg2qOahmjsYJ>7c,r.:`_(2vD;1@t#g/RjRc/JaD`n/O)tvg?-U*@FmwX>Bnn_+UHCF8/&q+2tCOYDs'3QS@Vxu5$)/.#gSOLk$+>uV%n9,MtK$Qn%0EuwDl?5d#Q9[nUfqEjs7&n5:@nA(#N@%rlc=FK_R0?lArwPh4c1n[#@ChYn=T$G2ogL9H1/gc1N=8N4KLw%Yx7CuXd4RWtwM5aN:WY[bikPQ*2;jMVsk0O/DfMbi0g9+%h>u_H37BB3[)s#a&J8,lYbY%(]RQeumaR22.BN#LQDf+_nJF]+.$=Y[-_C5iFX-(M<`^:QrDw-ARjf,nqA$aE-(%vr*Hnlo5KPq%II`L.tebtrd&Wl'ceG^2T+,:*'C:?KH<=^bo8RcsD8t8_Lm3qa$D/O&4EXd7ov7k]^P[l1:N^]sM@)VJ@dUWY>'27OfJoC;sVigg5.7nJI>IMedm>8vLPFpM>RY)v3otvthr.beiQ+Ergvh$(*]IW2j)Csk'/tJfM2RZKUBLV-FZ7MaN0Q.(CaCQs1gNGlx#`[j6O>4cwDc7-,6O2$0MP'tAJdfU-w5r$I&io]^,v'5F6S9c0Pnr6E=m:$I68o%'UGCu[O+3kxYv:$Av,NttnN+%t)T,=GCUR>]'$JHc?Xu8kl(a:bC?uE-CPl_,g_F_LRrZ?fp3uHp2g'`]`cs`^0Co>?f#KaLoV.t'I%K^nL65/6)RA#b7H1t`Ear6B.SoR1A2jiSA,+B$(+Lkjmbu_*MVX8l59d#L%QWASrP2))0;M'::4@coeVGsKWVq=TTs[dox.K7#ejU:YFF/ub-Xw>EsV`f$u&.Ew`Gj,_qkrP,]xfKBhtPY)npvDsFsGeWLcA'mtA(.]WLnE4(GQ:jVZqnP71d1QQpsl@uxxUOeJh#VuE;iO7OWUekfb]Kr)u:&5([-DmlkkcE6DUB'5dl48rNMd5X8,QU;D,X#4W]J-f0@8Jsr9n%NJ(0AF)_H1s]2R%*MHu4#lHH_*Ch>P-Bu&gd6Q,h;BC(o:J4F<:.tK386MMC2$Bc/u$D9uo,w?t@g=l$'6bZf0_tr4,B%mk%W=U4p&57rG?;'vkNo5t`vdxh'w3cAQ)WA=3U-EJ3u)4AvlJ(4Z;?%9Aw9WY*CL,FiouNc*_4o>^8OjTa`(>Ob=-#nBhLgj&K?3cv48k;3a%o],nV-bo,rphp2_S5Ups?>9R<<2j0-$VCto32aO3Duq]6rKQ.q$tcbp5M%jtdl3&mdbAe0XdZ)QNhc'nuB/_TLuf3,PMaAUq.+G6%(7Z(SAM&ox/7(cb.G.T]#L9vahODrfj8S%nFH_hgq-;$C8ueUB0j4gSc#8vI#kSnNi6W?a5eU8_l9jMrTn7r)KUp/KaFN7313T@8/?l8xNH(<[-P)GWvurtu<7wl7$c9;t&O-smIVKwkte:Fqk#Njk28J9ZsErl12rwf[2t3vS$muo*pxFYL_Eg:e]Qkh>nijls`0qC[sEFJv).Q3vj9APIG1'(@qPcY-U+]P^roK`W1@Jw/7lpvI(_o&lZ(w`XE&UnLl`ITMI[.('U/[i0aXQT5u3NQeqH$fi8.$6su=^u8aiEjD'*F3UKP>u]q;f4&LkO7hv7SIlh6sC`,x9v$'p5[kS'6V'Si`f^:VRGkfK=7kl^Mi(0iN&f34B7xq@duHbQJa[=2?fDfdi&/odh8qPnj.M57(j_PUs-Sx^Y<@pD%[#1`.24$.+BVwJI2@AXt-#;p8-cNO(JI_w>[).qa*iC_6ASaghojfKD2nUL*MfYw9a80XmSZ5]:LC#'hJkEsg9989f'LPj96&+&WTeU,Qi_mWIKt^+8$95]ptLN`o7%N'2awYF^6rM74/Qmu&hg:;2idt*j-Dv#7qPff,4_bVOO@?M8N(a&+rCcv1-lL;UK^mexp4;Mp7n;5_L^k7@>q6Emu-/]'/Z[^-P+=fH^&nk[?MEsu9Nqd2Ix6uHZA0G>v[nf%,kx$O)`A=Ot3@kJ$:w5JheK6%mk$6pD&mH8SbMX`f_i.jc`2='g?a_)`T8WY=%p)3#jY&='_EeX0(GfKGd4F:c^[8iFIR6R=gbe*,01=TB1fWO*RuO-8-UAwaWmA/)tR@r=1a%-X<7)5QZsD5])(bih-(AP&Ya`BDfurc:Jar0OAdSPEar0Ku2vIRaYn=,,2V7/l6^s^o'f]9Rtu@dEC^S$tQ'VZBq$?45eb'^;VgK[*XPOhr>J'uA15NO2(H[XP@Q3cupVgW%/aXhVpRL+x]tCRAp]rIW5-o1a8cV6dIkr@[;SfDQ7K*ms5m[7,qT^OT,_SZL(-bWx^VL2.t/cP`GsR%`)5j'-7pKv30#&Oj`A:ZdC;nmdlJx67SI:fcoU7aiMM%uOjf%Wm<7;'lr)R5o5(U6/nts^*2oIMt_V:PItN-I)v1x3s6u8)E92%@QA202]MD]Q)k/LL9ZMPBVF74sFVuG?=&ZQ'mtF$6:u>Gu8-I.fwUM>685J/,Kj&)^*L#%^DRF`I^DX5OpfDcbWk?On38F^<5Lu*7Lg*gwJdWjRYP;>aMwtV+CAoQm9?S7LTv'NWi-U/x*o,mD.79aT2%VlE5.ic#Yw[FwpvDEQ[dvtFrYdf4@*$TdY7I)=X^t6hi1gae8;s@#V-?-+mps/12KwC_eY`XLj]2#VoXs&-Lq0lb)MepjG-vsX0Xq*HX5p/,u$rfdwoC2t/6@dK3#fAgaNoAtGenX^PG@rV^s*I'hgh1s9&IMld5PpK&][S?-L<'9sKAdM,c.UuV6RT7s&QZr2D=lGEa%EG#Q-LXvLk&=WK1QiSVcu+xopr0qf0-oLt3lNnM_qK3A_Sduh`bi5UQFFTh9ii,YoXnI8)Sh^CFTK'L>)c^kNb);&FX@=]Iceg94dxxR?BLk'RkUVdSOq$%CYGA;9D)k/j/@Y_JqV7g%/ZS=N'KW%+mmN]48QT[*QbJ;,(Fe,/qZW.$a*io6vN`+rb5jnMteEQ&rbf2w$;1--$**#N.YU#blYwNTW2R)@#n:tSDpH8r,AZE*&*6%nNTxj0`#&c+&*p%-kSWmxSb'L,9mE7Of6(:D@D1Jpq6R9gV3wB2i@c(MQ31p%I^ggT5=Y#[Ruvqqin6vUugjFW=d;r2Rk^E0uGqtRa$sFfKL>7UbpnUM^a0PF*>n0I)%_8]T$8[c$URI/m1]N#G&/dBA3VkS/cP%6#.9$6Z+moREU)(hn`=E4`aD2<&%=7$F]4fH(lIpdO(Iv;HMfs*i$&EgN)UwA(hcM6?ZL)BVmAV[73j'BEJ4>_CeJ#<^[S0QfV6]AQ3u]C^x.?N).tA>(N'`AmPrkh-Z#`5&d77-K;mdd/6,VgJWG6I358Yd'J)(SK4%kAsdgu1SJCrW%NXuVM6XeeZD48%rAH7AYU,u-u2)?i,,#(lq-Dtn$$Ye$_gDA=gUmShqhbqnLi-('O9?0c2$fMcDA;$]9[tZS+FD;bQ,fL=L&H2F0bV@8(626F5u;H^=HL)^VSSHg.,qt>]v^N/A0hlK-^w]+-/Y#q16Z4+L^]:M=o3v,d?ipZ:ET9/&c_aT$P(Y3>>5q[R]Dvk7e8cUK59(>8^S)B2oJT#W7@$Z6W@6%b8E%[-[)Yo@#>98ot3RpO_N1Y5V3O3r.h;S7DL;wkfBiQN[)D8.LS@rdB&LBtc,m%b*T;gt)M,YK_?`9vM*bsm5qt5-pFv),HW>Ua&Kdt68GhB2ndH&V`/qd;F[)+[HJVEs%4h;^UWsd##'$?QT/$owZh*VI4,kx(j/4B9o48U4@I+k+pEmt'<[tn;p4/xU8eKK/hj9+`sjoBA7abgV,Mn7#DAd?gkXrA1Qo%Mk:luHAvXeM4`c5<)+05]/Qj$i;*tdS2.8SD;HX@(W6x$OHlP,M_l&+[RV[Ldbk'Lc-q]jkl8'2LN%[kw:>R0w?#'sAso^*ig@DaUJjCK7r_PAPgR*>YD?6UZOlqunWu/v$CL>7L.8%LRDFa;'@1-m]s?/aHGpETQ1ow4tu^EMS-W[=CPh4p#`)sfjE@=7Ah2p`^4g-((2I=b[j,,aY(A:2;abm/.I'54#(R*tA@6)N5mb9`%.;0(g&w0)*CANbP5ZJsx]w;lb7R]*dUfAI3fh46,dO,($gT;$V&`.rfE-RfjpPV$sKa/Nx=L67mU[j3d>#CqP;th(r=80YtmBwt+bWwT4B?[D_Es+6>Ab,j,^>u23mbi7?9RFr]9D1P2sUvt-ditS*-2#^+=Y9uDJl6*U:T)(kmt*DMN3JG?',=`6-T6krL[DtsPM0L4K'D4TqfIRaKJZ*(Y]G37S9N7Yp,Y8Cuojmu=ErOUII5q(YJ3F>M5nmA;h/DArJ,XCKe0tI0`H(KRO,as^JKl_3eROB^2ALe/5`aY)seuQS(5vNJ7=.YC$W$+Ac^DjQEwZ(s%SfP%]_C=*j/Dg*ae^c@X==RKeF`>73Y=6unCeIj[fZDuHfR4l$djs#Q]H<]tPKR7=9%F2>&O?jPP1>'*6?,a1rVY*8h^a[&?]uADn_WhG.LoK#;mr%x)A&LoH(]]s/J&LB'@R,+n<(WGP'=K()_q+k6JD^_;EX<`9(`s0FPfIdlb?9dD[RD>$q5/3OXu_t.s*w>pu''Sj0f&tM[<.3)Yshx;un=/l?-4u6S,I_XPvts@>XYlx4E^3)q5AmFqmok_n'kO6JA]0KY--pKAani)V]&=s3]B;2EVvY[#)1R%>1Gos%PAI$>U-L`#-@L'LHtx=N2h:6t''YO]Wj46cbF'$cHwMl+4],%Gx&%aSr5,(I3ss/QZ9F6BR/U[v`SfE2:r&l7:R19t9=M$t.bPjjR/eIt7dQu&_E^4g=,g)(fFIuJldqLiI.+vkT`;u*e>$0fX^TRvB9xl%kCDGFl3]Fw']t(g#6)]biG7:_$$w:>8M2bKL=/j[^][ReV3aY^jANw8r@lO,(wFwX#8YVoTuK7Sf($CxD^44ZI9*c.topJ-m.EKPu_*CKlc@xrM%EGNs%sqR%@Zx5-,bf&r;:75'BFN,Lkbp6lY??aN6.D5--4IA,aq>Csb(:Aa+]B8I/6IY3*w`.u@/19+1i(Fn++&7#62upB=&kdN$,nRpBFlZO.R$lSB,'_,Xs)r[UW@uZ8TrupTPu]kYA*t1-On[`j:fMK0,m/agxg-LubQ@`4>GNA&D>MIFOkGg;WhbYZ,Z6v/n.@bjC0tCX'%t0>R^P)`pP*iU;(G'3-s.1Q?si.7o=*vM`nQq;c+HMcOsBb=695ar3*B9dTn`HaZ&b5%T^(&b?@p/v'L*TPL4J8A$`H'u6XvT9as^_IXvG9i4h1.TBE`C&:XA3vp,CsFfKL>7@_+:uq8v(J/Ke?jP'bYn53ux2/,d[qdL#ZRaw9$L(]j'/E[N`qTe3ZK(x^s-B:KK$qe]&jqFre8goU'4(gd5rOOCK&im/>4Zd2kJ8eVIeEQbC93(Vx64d?8%1SqaU$:pV(VuLHQ^942Q`2JDfl#3L(KXc)L`Ga3gRn;(l(7@777k4suR6s[NgQXfR,']K[0oWqU`SU8TS;x-0:Y:v,]i#WZ08rJpf6Aa=l#/D#nN%$VWls4'qqma<9v9@BMLDsd-3-/?#,==Q*Q;Lb0Zu/[3*[S9t(Yw8rQo>nu)^uF@[C/t's?f/s&QGF@4):6%GF1m/4*f&sK/^9pK9,tHt@D3J_m48X%GiW-2Nb#I1b6A$w0#R:kjM7gYRJu`//i/LcFb.Elk;VQvLslDFRin/]PVI&6I?[`X6>uFcb_#%b.d%7%WP@@I-waB.bq6#G)M/wFhe'xaXwk`S=+Ut'3v4:P*OOCMxvl-0[nn.sh/-OCQqg:gB3#)(kW/Y$Jt^T?8[%G(xxRn*3,u1r5VYd7?#4Xu-o2v4E^3)q7'DVupClP%&7I0-Ad@0KGQEX`s06#s4O2[ged_=q@QB-#8=*CP@`[CMYxB0#3aYN>DX&v3sjZ_NsD0&`Lik-XOR&#IeZ?;:VXS*q?an1(*k5l9,c+2Kdg8**<#M)0AOs:Q.L.A_Hdm]NY490vh,CsF['/$L@HAXu]KP:rt`jFVDEq]PEdQxcdd&iO3uMq.*5H0JBOE8&,>C,Q198[u,JSvJ21UFrm)nh97NZE+8#H$+Y36c_=kl<')HWuO&KRM%*pOZQQ`Siq.-YlJ5^WCWk/tIj?E?A2-F3ed;V>JMbfR>glI4aps]x_qQMujpjqt)80$TMk>JACLgO2P6LhIM-1[ZO0:uF2?6Oc0qtFW2[uId)th.Gl4x%Rpcsb$E.&x[18rDbFMG[LTL*.x=X0)YCWL)(/D[NO&?FIRTg#up4K^[CrlT=l>((I7qad4]U@]X,hE'(Jh,r+r1wqlP0lgY$oN6WVtKDd_^`v0$sow^F3th1+nxRL_C[x+u:X$'[JZsJ983>Z:QR#rAa[gNJKQs2Ur.h*3_qKoKm0p8(J?J(RHYTBD;aJtfX=h:s7Cln9wk)#.,QY<5:B'#31L?@5Dd^+PI,10'>]:L45:4?2h^4fK+F-U[`f@S`ng1K0*c6#Z,ta`#^^DqfPWXP#t@EM@c,xBwR&;>>UN5@V).877<=`DI(Xwp#Qlaj2OI8-r5wu?'L7&$J74LS/DA:v?DHMj8Ka5r$0D;bsIa:LsJ:Q),MDEFk=c4^f5QjluEs]qrDoCEOg&(4?=8`6vci[ll5H>T-HCCbI;#C6e2I.(Lw1nl//DbXt/)ioa/a]&jWM%P:H;mN=)vNxX:AMtUVDi(<#YZ]3QFNLuk%2v4p,CsF)tBsb@G4:vaJYOe.gnrb.ZLJBfFGR7D&+-5/=]922DW4uOY>@Eu;TM-7T[%>`PicFFx>We+m%UeSe_>7t8mOn#mEnK1mX=PVjhKUWaC8BZR&(SKpQ`QZq8k*urnoAU0O@bx_H$vWR+.^F3t7['EA[a$9^HaS4qO-H%O38#(/3aS=uh1r-g/:Fc9JJ(X&VRFD/,)$v_=(_hjZR&%o/apoNJVj80r(Z0r;uE&K'#fV+b)7BS-su(AsFg6dmkn'u12BeIlu+uK%t=bed6C(3;24RgAA/RmjAPtAFro]O[PZ[)7q5EqdN%`]a>UGq1&[_]nJ_d.M1tCpS'2>bT1kRJwkMp$@B)7Ak_dG->kT+mJN,*1R%4XaZ#SnQ583OGFM:ApO.#Ufdq26.)NlSrIAfVin7TBK'_->o;&I;4t=vEpW(tL./%u`7k8vQ:kdA0[pl,m6tdR`)u40)^G;.b$'h6r-.?7nI%ewk7kHA_Pmkq.`SS^.%AC'0Al_fFgA32X5QiiNL9UbekpIt/hL9Gk=ADT2>[RAHm#r2C.uaG,>s5e#iAqiVjAf3oL9<>C2('f%`s.8.7&JdjIi%^JG2b*qQltruEIu[[IuhYi`Wh3gK]<1Bl$hu6O,G7,5H-fSWnYcLRAC>0[]v-,R`5kb,CEN[H-k*<]tqN_.uPoh9t(Yw8r3(@U6Sl&WblfV1`W-'H_S6MxtBK#LFp]CZ_E-Ch(^e&Q,GinrPg[vFn]$Cop/XnJRHvu]i[g@bZT@g+)C>aQabF4hk)hiW#@wH-L]-dYrYwIp%5r(ub@pIFi5=^,u&AC*&[-Hp_A3#h1LvvILBGdsuWt/:Im7c-*CPGWf<;>bXCaiEJK'f(E1iwqd)(OY#&ivnJ=8LeW@OEOiYEm1BXu,7_$IW-.M-$L7$BkAER$Zc*/a/k9jpJ:&b7GOjd7k:Fo]t+rgf.haVICgW^ZETf`^RfSl+^pJ5rtaYZk:Uh'#_(w@F2?LU0>N,qkn?%TIwS$$*)TDmRB.0xFYx]-PZmWs^A4XGJ6))*s;vMRM0?qn>vp5*PH)2BpcsG?h.n9Yh`1Dh7eU'MTF<&vqg,nd9Y)8)?SG^X748;8*O[.vNL4Le9kI,OEKuTq2Xva2/g_h+v`WPubx#8)>CNvK,9xR=#X?SC>Fa:EZ>&(%uljRIF)-p7h<@RW+9+%'EV5=NIxD#G%=g[r.V'#umL5*.w$aEP%0DXa^V7`*1Tsng^TOk^e0M9vf0R,Wq2#kfTJoSIaFqN$m,1GDqbp'r+$gV.6(@&/50Z2rLmo%*R_[o/?PTn3kq2>=0whcj8AZGS'&ad*NTMm0FF%+x@fNh4SP[ow,^+`C_lLw`&%qn?iJD%3aX(os4B9;(L9;AC<9(D;@9(C:]eCpGl_nhbI5c*v.'_,:%Z3Scr_jHQF/a_e7Iar^Lo_8Ear8;wQVjZ$rGA[?%Tj$+w'C$mYEAxA4hH:.%:u^bjqrg1n:LFH7$Bc.K>^JjKc2]1A2RgP*UfJ^2NI:-wRp.#mFVU1p0LB//D(YIXETE:J(-(PM_H@FIWK_]Gr?6tI0T2l$^*3*Xs6jZX:LgXeAD5R(W%N&39s?GG5vVD5`q/6[NOLs-#GqOE`9xc4-$k,TRod[Pfua52*bjs_DNIAx'(=f9.I2/<0LDDh&ldBHlDv1h3vPs3UCFZVIJC>]YooV,v6?ij3fU]b:d;xjZWK:,L#YV>cVdAb1dK:P:-k6b<(+K22m<5)_FAYpWB@Pdh+EMu?JY8po$77;j$OgYfu*?$TIfP007'uMXas:g:hwWJ6)uT&kYEF)qF_7kBwH[Z0d4-71TZT;AdR*1-M*bU@xtCTQ)S%6neAX6B+SKDlD,O'(K@VJ8%Uh=jMMauQ(R7mgH`:Fnog2c14((Y>^8Kh9u6[pjNY6alAd7Q.-e;Gi_7n+udlfNSktknaw66:kJlQJqY0HRFF0H=7QkkeU65(lr$Z1lDXBA3MSqX;GWxCgViDB>a%7Z7:,%YnGXD0vH[WbtvnR2u^np3vt6&CsN+?hdv[aI)WfFnrT@EhufE$xI*fO7v188%o[BoatEO%B;P%+orT4(%v.uD;QF?ok7S:1SRoL]%O$l2G2'_YZ0FYV7vH>nbmP$9Kc5on3?u(nvkB.Px8d%DfmqIRR[mZ/lf1?f/J2P)rH$Z&Faw@lfA`8GHj&Xmu6m,:9`QkwVpY(6mt;^PjU[72`aTQd;u01dhfBf=msuaMgp2t',k,_)Io=#P:vqr*9Q$ug6O>k>BV-+H&si%9SAEo]sPSno7u@K(_s_G4Lon.YZatW^)ogjB-njQ6LgN&1@b36es;mrDN#as&4fYkC9v,x6/L-'w2f>k%EIZb0:uZp+EnHO&hdWfLB*q'5C/kc3HQOwtfVq]Wob9@aAlb,K[c;E%coq@*9-ht;jo7NT#e]*qhX@,vgdlgO%-F=#6=jJ1eB3@u.O*RIJ*sD?,L.oi-lTTjBeOo[EX>[9OJ@l#Ra4_R8h>_n>7-*Uf:&0Wb$%=3n;WlqEV8%Z9;$9tTuO^@U5cn>V#dB7;$)L1r1o9YT6a@P`3hD2>e1:V8vV[v5frr%%`U#bYuaTN=AG#enp[0P]8o&:7vX+q.(cd#n`U$hZ]TcdQI+g:PBsdq/Xwl?>^`Cu`@aa=rZ1#-A&[SW3iSubL'EoaaMR(pQm^nP]]tt_ku>'gH*Ss,o_$NHZAD%pA/'KnGa4MCsft(9rFrG-C&11Y,0FIPF7[8unq^f$s6_*Pt35cuTAZ[#%O=o8biuHqOr&;0v9N.6lg&HcaTWIuP:kOx'6du@sN-i9vEM$mq0,F_LefdbrhAo;n6B09%l-tQ#9J>7vRS9:uY%sAuq?,oQ`,daOq_9`oaKptmgEbhKm4&tuBb,+sES+9a%;8bruGv3IeEG:vEK-Bj7cEw5XkmlqcaYuC(=7t^dRg8uPx4/dR,Y]1_US*^j_B6JLb6vdqxLMuj&6vs[uIQ5c-oY_+Zw2LJTcNIGc/.vlxs^jb.&%v,NWUeO-eeo$NBeh7aU>+pA9U3eP4c$gnB$)xN@r?5.`*2[>8tuC0[hffg'c`5+XN.22Z2g^?1h,ae=kSawqM^<4u+_WMcrF)(,9`hp.RIxHNLmIBV2+V^H:vQ7<8rlpIXWL/74JqpOtk[?KOJ6r(L_D%,OF`F1q4iC3xK`F?;qq`:3PuEK6nbC'-U./Q2kkHP/N_W5Yddnh1n<:2T=$'9+vH_=PMrIVBvkvYNdpWqW%lJ<5[HuxYMuE;w8mQk092gn(DE1MM2vGMHo@Q^TQt[jp6rRGZ]7R'=*2q/DYdcY6Ia^(QwktWA/u*dVKibJ0uu$Lu7b/Xk:D`QCkflh:S7vuVPA#fN]N&x#K3e%^r?LrTB#u.=g9Ko6#gC6am&OLN2(%%$7=rS9squ`h3vX2seiZPQn-aXQ8^tqXYg$-Mssk8$Zo>NY-LwSoh;,mPYBLQ'fkS(hwadR2op7Qn-'jq&2vs_8-LPjTN_sG?8pt*@ZU%[SpK=)-GF,52<96$#fgSQB#If.(#H=[9Rot3k6B-pd(K7/s[S:&RQ]Fq%pNdGh#X>MY1_%q]kb`P@b?#.[ug`nL9N27$A]G491vBQ8vRJkKYc.qYTI'L?GieudB)R.qIFRZ)Ig/vdsYGMtWd]0bcxEXp3sAbV2/M6jLY#oo_@JP2tKJ7NKi]F_:fWlsdkXu_TS(3hVIuPP]][4I)_l&65U?bAcJV$qle4U$Fnf'sNkfXSJ-$TlZTQt/+R[^/T*lJr8lp[Q&xP,4Fie8'&S1pRtwk-M]kJrZ/s-$'nEkPaxW[K#_)p^EIx$11V:>GG?bJq*-Rxf-[7E1suGW=O$[lfkN4NZRnQ;gLZag8_F+vXXuU+xMOTGwouP0l[tqXh+tL&jLpUD`:teZj0Qn[A]f+#L=_iX&$#P-cWI(XS7Vp+UxlZ'Z@tj?[o@4krk6?H^Anm[@xpPb+/CiruK'b2uEIX6FRaU19-mnU80LW9f,(rbk#-;D56q2okqMO.RWUD>=5%F3oE%*I`D$Cr]-Qq.g(8aCg;pO7e:r%6$gY<#A--0Ok@>v]Mee''b5[dxaR7'6rC>2^.qcGh;5qkdbD95xvhCU[maaAHQ5>@^d]sI+iQ%)P]LE$-qJXT%?AL%.>Qs^Beo0)q1LZl+<_VBcC[d)uAV-$O@hPG[)lfipI9&EdY-`HS5_`9U((u8*E$L%t9Z3_h370C^*/r5M(q&2Oc*c4Y=c^5#52Ga9G<[h`,T;W33u-#cQgfk;lkN7WsqMgbl1`^LnU#rMr/r)F<_x,hQk*Rch=>6Z$r;;=0Y[esOsnrH=#jgwaLt(6H+nFCko.AI$8$e-fuFo1BVn8D4#3RPbu^b1lk4v/28E]YEKf^=fLX'%fLi$'Bt@x:=<7x[+vn'p4J'Z'OnNxfCMZl+UT$W;@=XGA7vf]SPAXn6x9_TnLp-.%vkoG3fbUjZ?9c(t.2aUahEZ>vS#/uMY,*>YP%J28e$ZEW*%*iFVUheD#@Ux@O>(5.rruRcr$`r%G5d%D[in:`m&bq'>bHQI_X7IehJ'^KLBVq.(1j6JE6K?DoL2/.^akeUi'%Z6?F9s0s#m1(K*lhVpdHogIqe.[77lp1wR'd:j_x'3)6?HV3YVqn8&xsS>t>SVlLF1Ncs5ft']NXM@8ogZ?nxda%G0+TepA/Cq6(,j-^N&-+qkd8)VxmnA[i-mpVrp0Y5BUF7vVkg?bZ@qo_7JrM&uGJAHOPCJkrc`+Ea<$O8(f86ngkHJ@b%lC5XJ#Tf_qNvLhAkL_*.8xbaYn]3^Z40Iw%TN=;=+8[TtK8cBnr>ha9Owm48vOG8BpIaRfJ)fPT;)n1E#_aXYKRbh]d+H)ge[7:f-;8OXf`oRrkcB*GDOjLXA'eD[PY4ajNX:(xbU@PZt7L(d5UtnNn1OJ&$,h(b7twEucKK_G#=lb8j$Z&Wr3iN5viZ&*aV8M:L8cEng7b<(6TNK.LgmQdEn=6,8w6I?TV2Kka-&Khnedm.Q3s9lf,6Q_[3HckHIeGX3R-%uP_^^NlFva0hAW?gLFgpb$.ao3vD305a)A9TqAvxBdf_c'v>_S9;q99PA)BwaZ?kA8v3A83v_KxeQS:x&fY%#>CdRU5vvI8)dncN7v(2;srZC'+N-UA*>mJHhAskb6PA@$3:vZcUvuhSS*7^`Pdt2@xnkd+-c#B7S.qP:M4JW5L0vn/<:s=b?FnfEj%h56SffT-I$:>FDV$U?]?PH`ooQx?lEqwsFZf(qLIhJ8o-qg%WT`di^0p0K>>s*WE-?cL>srqN_Op9]VR./L1a[7`;eoT9(/?:9@5B2c+kJ7U+@X(^,ul(=kQkj&'>$M6*I)mw`[NF,Z:?%j1`)V7&i&x%6(FO,`jNID=u&CPn1-2X:>nA(/l%Mc64^xR:2-Q,Aa%4ir5vI^vELBwU.fo7N/I=J*xkh:p+a6xQl$@29=eVh-Or)L[-QjDRED;pr66hLCmJGt:xLnS.rK-5m]rdLM.uvuXJ2$O.vIOGwwshTs*uu,oC2PDHi`3FEMBl-1V3[[DE`i7HgA2dYT%heMkh`]1jJ6nx7.L]0iYIMNs%Bpk[wteO__;w?bwGd7@d5i+ef6e9W+`G]9Y=LotSxFm96N+,+h`#)K+b'Gx_kubD0&v%S;f_)tN>A'Fx>S@Fdp)L^RU1v3>MLui*)YP'tuE:08P`9J)KL)G:3XeK]S7MYHCuw9W4qrH*PSiv4hT@k&>Xe;N7vd_wftX2NE%B3-w4mMe,e.X_$*8K.>SJe5tu0GG`r,nK5vwN6:BSL05mDmSR>uSJ2XkDpHHuE?[lk:c0em:jmu-->fF33[)5niispsYW7n6$K#v;Hw6vot>8vYmR9vUNnwurKJ@217q)qBmVIUF(ogkc[%(%@*s0$@utITvbL.Plf6gr]1T0v-2gVG4hXjuFRL;?o^@Wv8W4oC[k06`:&xK.sg>d]hw7(36$'7hDCEMq*r^*XAG[/*;:/`<7L^:Zk`_>L,'Vw+qufH^:X>utmlo]k_`X?6d4HCq0I3U=[rYAJq2Su^n=LZ^4OJaQiB.VUJsJr$Q6t1Yb/<2b0v6['Jqcbp%F-Q[l/O_xF2OQ+h($q,AXg&i+:aSiGuDoaC%k?';QneN7ZXe54voTg(*([)Crj'%.;<a``tXXTdNa_E5&&6v#$nU3X&R/(%JaIIA5=)8_:Mnq?%#YN=o[VpP.Q?u[TqcdOtV/_9-gn(IiWLusA0oIVFo3vb?PRuf7Wu`A($HQ,t/`aeWF]NX@5_`]'H)$3av*eKk>:?AjLvoe&=#DmojK2+HZrU#4p+8TunkN)vj>&ro)HW_hP%NH0]3Vb/9-oIb.UX*-iYhXbifp5Adq0B2mu&Rh^Ejh>?,x3d'jDn*EV[-Fv9vaB0sD4dmQ4gt(:2mOJDn1Yift/ah_rlR'$qiJ8ikfij_lTZrCYWWqe9/L%tC(X5K=n85MmSCpG;jCT#OttK^*38J$m;1j(:8]tN?FULOnt[P1CE3K2v][B6kCi*'Eq.l,vXt>wkvPo,5#ZVF`'.QpK29I;o9*.GsFMM-Qe*J$lQ]%f/Pjr7v,$SsEhd'S[f]?ht.ltF(2X;1^:U8TI75>+L1=>&6#T0[a`Dso-HgF)7o5RhsUZv/r*b(BDKM(%b_5?C#(R23(qPciUX?nmus$dAXi_jJI`FM)vs1oxlEgCUQUie5v7VHgt=T6_84L<%n+S@YK:a&x;tRSE7:Im7ur[-G9V/f]jD$hLUuoVk6F)5hkCr=3'KF,a?Lo^:mAL]-)`07T.a2@6,t&?$eA/oYr=>;?xHC&4>nBCretBi*S[ZjK?[wipG'6nUv2vOeR5gGYQ)NjUNvk&3%0^;dJnH?>,PEhE2iJeWYp#l3>aO9EhKl^4EoUc8Om#>%pd>,N/O=,GKNfO+MGD4?7Qo(et,r8orG_*Q,BS:?8BkCHGukwCCug#k@U$1qO[,q3^SmBplkrDWXZR6pisJ-6%veZ3u)Y$g4ATTbuk3XSXuDLl$O6C)HiOQpYqFBjW<2[s+L@k=Aq9@k*r@iUbJk`[xDn8L%fA*:vImtC[]+gm]lk[2ZYa:F@B]IihVLDxck7TR7NuX&.=)P8SN=9fP]a/#:Ih&;DIJ9*I)aExBsr6E1oLwt>f;r/b#598'>7&Z2)ukkO1TBKOXGpkx1XHB_c^[,@PAr.)*,.ALeJc:Cqan+8(W=oY'Y6RG]lHb518cgD6t`1r.E>TN_a:M%WO];Tf(I&a&#pEfvUc/1k_Ja4dA:(iDUSVZ7fk9uIV`KB>H@:rHFYkMt$b%:Tp2;G2b0T`RNqvoWf<]7A1RUGlOvL^0sOl]+vb[gqH)/@?&f+:tJJPn?]nER8TJD;koFGlWNmC8ue)sg(eAAUUs0u@J5k@;np8Ft*[:.1``(Hu*bRC$PA?-0=v2Ut#AOjS#,GraruvdY#wtSD2>I.GR]a(HcRnR(5Mgw-kg*0=(X.L]lAY'F;#lpPQq+tUmwFD;Q+U@2tOM,]4G]/rqG>q4ba/3$(HR4n>jJHFD=)gqt$ZuEFP[9X`VSd)qp*kDdG0Xo@_Y*SoLj`%MLD'Na6>MQWjjjcUwglLBiUH4)(1>]Ou=jXX+<.tCkmpGd-_tUGuZw^Ag(.,V=2n4vedF_IDho*UM>o7JmaR3Z+=skmg`xdaIs+IkBt3.D6BL>9AJ1X8-$(1N%;k>72`a$,-,DiDA-%,(FjfAPmr:$p47v+a18Qx8JoR`ALkuUf;xeu/Tj`pgIH>GGL=(uA),mN#S-Jl8cfDR&JB<.l1So7^R+#aBX0W@Jv9'kRaD4mX(/iVPYQG&E+Jx$$^]m$TkMl]%(Ucmf@5'K:oXPqk99,DkRZi_LAtjuL_(A`G&EUcA;Cvd.3t-hg8W1?43d6rdWXnxS+$'oZhGU#5=F_jHT#Z5l$&Sf:;;>+WVeUpdJ`GcgKGaZ:ZRdJaKm7pcdDCS/u#kY,_o1*7JXrsGm>=pukRSA&v<=3]sxf1-ql8+,L$Z/Wl)^rR77NPX5)MH0u6AB[2Ln67R=T=*tH[gbXPq3A5cNJ6Mh1ewFHW$JFtq[[rDm4M9gYdtP@.KS2+#]Wr`UUTK(9kWKCd`V-:2Siq[Em2gogetW7dS5t1CmIl6/<-L)HslKjJf.rN@7&*oH$,$8r'GV5'qSVd`205mCd[N6u%Ysh:P3_Z(J&#FlXgCnR,qd;s]UsAJeB%hm/dNh)`(**GfXl9tQ0Qc/n(Lqglg2Kcp3J/obO2$EfILVQg^:KmZtkBc_:82F?]FHn6/^F>W2GZS83/BB^&9kx'(OoJT+L3p(,v5R.oBvQ(wf,hs[VwnD#LG$FTmNWUZ8ni?(vGON1pW)Y&X0-Lg^u6J`,sV+N/>n4v4l%5$o0vq>Nv0w;s-0Bfa2TEF*Ui:L$nZE-$e:q2`enefV-LJN4Uqlc)@6.=.Ek>DlS$JbLT-qtTU5(qIQstknj3PaJ;9SnHVZ+4atPR]v)M1ciX4J9vCUG3uG&r?MD1'R@qM^&-W[WbDGn^>V`u)AlFK_L/cx16j&g`kXBV3/lVF%rqMUN%l8$N'_?1*/U9t^?9q.YPqDVZFD7A`pr,%52lR4dF&w=dZ8p4S'Vs:IpW4_I=cPBpV37``gbEFpihCZ.s?o,(]#kDhZ5(uW^_m(88h.R.IE2mhh'I%ku'*8TP.HP8:XAKDSc#u:b$H9iYeK.qO^h%uIZJE@j$Nq_0>I_o#M0?`t&hC&?99Xs?ha$U91&Yl:Bf@ba^.W:/tD`NuVHx#OsqAhF*3:AD#M=gdK2WBZa;uJ13vWa)2Lg`UnVZbh4<>K5YF4$%/5Cjs>;s3lU)nhE5dr6nCUo'hGH9i;UXc_Oj*OGt:RlAgBSBI5KL3T_lc/4Wv:`qTk_vZ1GeL1L^k)o#?i-&gaB)R,;/C@g?2d4(P#2@S$>f8d`O@FAL1p_rua+Exp/Q_rA@S/ssF3V*2V:K9rPR/1&*vX0']9p7w`35I6l^j';?rYOrWX,dM:Q%N%vx_hbQM@/Kkf8MY7I@$1Xbs>WGS_?5]4/JAiJL9VYnTq)6teik0(e*?9v/fb^tJOvMt1jJrQpEI^aLkVBa'5@Zs:hx`JsW:.Bx80gf8jJWpN/HvtKGHM[7,woMY$0'tk_?ecK]NA-V0i'vbKHv:-.YS/,]Xa/eGafbs.$'YlCL$FEfBXpe_=^%mJ`7xtoskH@B(XtVY],:-dpcx=)-jp^_XFxKu6mZ_%JaE'cp'V5[d.4)J=33&X'O5d0D-edC/w(4:`Tl?)pW4O6.LsZU%[&f].a-g6s2PkiOOrutt-3kl=obR,bnIiO3,E3PNaHuJ+3'a/Vdp`1-*^j[TmeGnVv?nf[fbP_-QKP`484nExLg4mFIWrogA6t^T8atQX5[H7%P-LUue8vgnpT@HbA=OxoA00+RKXunB+uu^kiitbh+YsfnSGkpq*ZK9/;8v+Fm@bgK@df*,::m.I)=*gJw+2Q2Srg?uk-f/%@Lpw?QX3U3]92&gwY4M'1fqE?Ik/3;@L@0SpflEt.AVuq(eDg##)Mumhrui7pj7=$Q's6_WOa_:^HHSv0NZf.LEo/vQcc?LQ$L6(^R70`)=a)TIqOS_gprjwFIqA&4:v?Y^fo59qPMF[PtHf@5shT]0@VU[_tudZEM+bWT)4s$+;6Ckp>D8c.'J]scNu3o3#>^RSFqYX%Q(V[@iv>R6Zt6bj8432_sj$XF0qnB`B=8'^j6m%ip?UE+Gse4bA/v5UZe.L7vUKP;#%7ECnd+7)&I0(`:VLdF`+QZ(K>Mm;/CV?+:&:73*P.L:oEndZ=]rgW3D`$bk,WaXlL7HbGRHM,q&@Q+.=7t0v(TF)7FB_+R1sMjusnG_.0-Lu/fcNvk_LOZ?@p_9$j;RbTOi*R0PQO#p`Y491fDZxh)?CTdqHD`EftU%Fb9v_S.b.?qRXoq)1Y>>qk8NR.j1&v&.#.f'J$YpjhoWNu;eKrBS./']n_R(hw@nA'n$up&+2F3nP=g'F`tb3fIClK67nJtpM%])f2BuIfw]K8eBOoeQQ*%WbooKg2tCPBwsuhImB]mhG:YA.`(qh2AOnTOvBaD7]dVn*>$viY=it9,P1rHFpED#9v8/d)eT`R'vd4,+DYVm%l@q[NuariotA$&Se_+EOnsnnr=@tb7TFY9@s)5NfUPD=u,-rO6vaZ(0&:AJV&c`.uGe3)R7D;6Pq;IvGFdl(j&[XRWUG7(j&2];VcYX#:t#l(+p?wm'2@uPD?+c#it,^??Od?'$uQSQSDZMl>-L3(VJFl[Ye9;>2l@T/J5,fi4SM4:GB?&$wnRlPrZXTF%76.s2pZtKqkrR>]g_4YjlYWH7GP^A8-.?Z/LO@+WOTw`(ERK%58qgV+`]@VwPtKaglia]bqmb(7VFtQoZ&Vra-]w@2'KMP]c&%UGEuVsd3UagE7'@-x'ZQlg+?Q(^f,C*J`q]8>#O:O)ln-(b'oBCM99x]OTsuP?N$oE4ZqnvFMsL*-)NKEA%DGkAIl5a`IRB:ZOu_V7/ogZ'5Ya8M%A`EQD+]&5;JfrO>;lFCS?Y#q;v7[l)8M*YlF3t`S:2pWQ&@@u)UDH/:KS`/[[AkX1q`[<B.wY2n^#ippmKHE,[K+rq:u0-obo86``aC5.MIlAe@5Cn+fQA6lJ^o>+sM+:]4dBf3G%Iajodtm^fTLKtdh]eihAFM'nCe`*L_KSWJo9rxt1oTqsZisK#cS%pu:Y7I;w%C#`mD<^bd,#qrL3F*lP+2=.>gD12Y0V9dc[e:n@L$VG@CHA0q[il&(]2p^`Qir-^GV-&&fHgAP*AUb624n%6G5xtI0:3uZLH#QG8>QL3DJ21ojUC^aTc5p`.eWtLvl_Kw%g=;tkg6itQBArsw7PuaDKh$;X&Q(Xr$5q%p'R@GDuJfh&Yq-;a*LkT,e(MTF=%-#@([d+Yswv6njo(GaR*2,A0<5o>0>aP*Xw-37oVa+]&K;cu+]3cUQ^eJMRL&W&&n0abS4GeGDnw'#aNS5m&cMMKN@+sTE-p:sKOlAhk0rq;'F-+9:N0/%w^cNIbV'/_I3D<)I:e'^$LS%KKtR:5bDJVir?gMT$ao8VrAS?7nNkmhgDW`6>R:vNj@cf[QNr[pm@##8Z6oJ]GwiJa+.5qbd_runj#@b*Fg,(+kkIYvJ9`Nn/M37Sm:SI:c+ck>Bg:-p00fqcT[(bY(kOm$*a7vjJXdQ9wHu?Nu=^X*I-2qgD0Bmb_q$DJZHu6<$+_JsF9xbgwl#9hEAts=1QM2mE-fE3hm@dBoAM%$w?.qWBfd`&0&Vg/7/l45^-Lk`JI]:b5D`_RHnJo9'xXb8>5d(O>%'jrPm]D.4C>d)gGfL,PfsQ/IOWlZ)B47LU&L,@:mDt7%]7@C;;Ns&@95B_C3^_Edmu2[,%QRSdM'u<*h(pQr8vhHxwkmTB?b?XkauQ`easp.Dr5bkwYi>?W86l.g:%^T;c1M*sDk`[ut56R7c`puU##Ph1iSxN(nuMT>oRPhK:6dh-/QUMh853c@_om3*%a<]JH?*Lm(p=uCjauadS(0u_:K6v+iDN*?Fd:,oST)c7Mojloq*vc:B00$loR7nEgZU'1H=qxL41onLnEl#6n(`-#_+q05at*cFaL7Vhh)+%)3bM]/1X4ihws`))nxS&YhK?.mt9$jc_KcE->rmMMCwTdE/*_HU_'ICjRuCu@o^2Pr;x'<[)Gqx6@t5or#)u)=;1'C.;IAqdi:QWX]5(eY:lt^&aN%cF,lO+:1)KU6Gu]ohC'o%sQS:'qT0o*2STjoIn$:<6@/*0llTQG)nb/-L&P4`%1RtF`<)7PSD%#3QeI,S/S5L$WhILF(Y:vA@7jM?fq1JSi@htRtk[WQ_EFV6Wvjk1;ere3(LXP38NuCX:gC;4BAH9#u7e?GX&`MoxqKcf7v7g+`N$Qx#ke1*ecYQ_5#C)su'LM_R5.LUbB/j<3L@?HBquj0%WL8#rk-vu_LeHJ5D##I:510KeH>UG8&HSdPHUI9M2BdW(,G2A`rc^8I%l8Ccte90U+'IC0Dg&AI.R*Ml[=re+3mevZ2eOiq`a7F`P*a/V0S.;5CxIl(JS.^3qJu^T:Y6IZX/EhLMFtTxTPkA`.L#cxAMHffVq0_e^,qo%.NA7P:A+U>67[.9whJjk_BEAlXGlu5`nU[o9r$NhdG]^_F4v?o1pjq:n2(-*j1a_,522(rOeUhxm&vsw+N25'6Of':,OHH[m0-XRUY#Vgw=#4#wif59/G2vLARu&OI.NTe#+`)CgF#bY(GDtM]KWR4br635a1o.&uE%Q(*.bM(kIU&3coeLd6>_ZKBML,nn+Yu]MP6$Mf>;HPpbokk=h9fA7v'I,8ApAaM%`D;&boKi=U)m6bej%?^f0G,G7_nV&3f&w(7v6da_gexfa?Ud4h$D:[6^gN5-F8^B#h_V8`URtO3=.1,)<^(+8O]=U,A(G^kpu8MPra]g7'J=dqU_d#*XsvHoTZ]YKjPkw`FXJ=.]C7kQrGDY]vYSq]Pq)-3%;hZ['77[(0UQaBh`0%+*l)OtuYc,vZaS5%o7Q%t>8JXhFi;c5FLT+x[kQL(7>aX:3O$CW.o3Pq:uM5Rn77OjK7N.J,$ENSL/fGn1''acXo7a'n>g8v-IH'Tk.Jb_-2`6ZBPi5G%3P4iAa4A4hRe9uN/-kVF2mFi7qu;&s9jKP3V`TWnE(4,NvVxE^TnV+t?GDTi[(G,un-2d+MRrmt6(id1%HIC+DMw^N?u3[H12Qlt+.u(1^ihQP-KhDlF^hNK[YkOq`j(d)'u5uQh*6js#pwIG>jB;Bh=+g7VY;Ks3Z=TId_9p4Kg>]ucsbwfYAwG0q^b:-+pMP&^/7VQ_-919&dBaS#jotL-Wi;Os$B2v4oWb4]8K43Mw+O?j'JREkx+euYu6xsfBc;dV9ukpu/o9bs(Z$e?cjKi%:VQ>oPe(t3VT(t/;tu%L^s4[1A(_ZtxCT38jtS<w.%+P;3MqUa+ekde15I's7&=ln)HH_sP<,NY=@EsFtw]'Qq4GhE*+tG,+g1NCQGGR`BO](bHknLV:Ro:5)gE2p,ao/+rEf?60U$2K4oe5f6'ugxaJIucve&NdGiK@TD*I$^$+qIt_;AZ:+?$+lb8v(0C=kBT?2`&0qvOtS[uI1t,=L)o5(A3c;IA-1f4qUqe[O@O#bWI#(>VA,JFrC4b?OJHQDu0R<`sQl:(]b6u*r6[8%lW-DA;ncN7vePwEe$xg?mKA)#R4=x/#^jc.q.vApc[OS.h-kn<-7jnegl<2asOC20K(U.Fu$i')sXGAoe1*p.VMf=42^@)27R+p;e+3LA7>D5'FN:%MK6k9wkf@21)GG#-vZ6p1>bxln&0MJw70CaWUP3kNK6Vn:n0N^'q+uu22?gF^)$#d:U(#CH;pvN0J^J#Ht7G<)s3<6R78.Oe#,X6]s=m,-LMx^&RbD^>k#;8ip&nwa]3mY+V%le8uM,:I7Nu1`7Lf^:twC?`3p^hXqmMTwt6P#nf5']6*2b+N7+vRLcK'mqKmJ'QCIn6&4rk'rc1vLsnE`4Rt.(rqEPf&fcfLVl[.9>KNv8HxXZ*hd>TF*1h*vov#6>Q^jt-Gvik+Z'gZuOZd#Y)?r=<:o4Z,I''Uc(NP2B%l+LI9cG(v5+r`FXqr[/;-:%O`7bD'6E6Fuo%#O1hqv[U*OG$G(5)9uNY2prT$ic@-vYSi,.X9qnYNu?#mFf,,_K*':vivVR[Qq^>>@k#S[2$vKgij-fot&i$&_<&'8v.rgAcouw-LR[D2utn+kedooLpT'2>lOo#Yam7VloPFsFi_RBoepcTwil68opbMZ9vmrilNth7c9vwo(Kb[p7xt&r2jNSfQw1P$-DE7oe'*4t#nJqeUbTllP*(8GU*Kg&(wp.nBQ%,KUsFpWEtXW1wAt*=:M'Gw0;$T;-[tRi__3P=G+v#10Eme*6lI#0V<`OiD7bq%uOo2kir-0eT$Zq&6S^=UKgLEfC%bj//5L6jmP@2;.g>3jY#Qq;tJxNh4sqoUf]_,exr>raCDA)M-qS/QU8jkO0fqS77vBnvdhIpt?,iDv#s:&a51$I_._Z,;Gk+SnRnA3wguWst_uIt@ShvpVH:2oTuLC9ppwh%*+'q+r];)/s*5#a,n@Fq/c.p@NFSNE+lQsD:ca_shcMhhF=8VQnr]GfL*.h@KBAlEO8S:xkko]NGtns5$XmP3u?vP7vq.<,EEHiFi4Yh7qB'+)8Pd`TuwamCMp0x:?Z8*h>AT5'qEE[S>)RE2*FA25#ZB,tL;]g=l_7v7Ijmr68_b3rq$T0X2CQ?0vWDwOF5V(7tY4i=cAp$CjLns&pm[%8UC7SfCDi)LYG6ua<#F&9[JEop^[)MeS*9gLk=jwu0-0P#SOA05n-xT378bbqt:@uMZ$)kgkSA/u@H7W#Iq*'-?r&au-VJ%bJB@JnCcE<:^Tc#9(LXsIwtUm9GbL53U.-vRQar6lcU-ZIi'a6F?EZ]K:K9P$ErfH&>ocbq&Igd?Rcgu]>n3x=)>x&:$:*t#LicZsY-XNLt<2D&&[X#b%4^cUXd*6A]mn7vnd?rJ0fAk6bI&k0dTV1ex;BC>f8'[S]3/X,0wQk8f=lX)oYc[Q5.e-AwNuRvpDd)omthD/L/nD8XpvLttT$G/LD9UYra2>6W)^7'W]8([aCo=SA4q*Iq,njju.e7#Lr$J%tUvLY50EYdfUrfOmc*22&O_4>%PJ8(EdK2O,U:)0[Jkn_`(QfSftV%dko))ukkC=VH]UhmjZS;ca1CX*$Nw2es=_khpxfTD<'5Ym6Q>hku1cRtuY['94mrA6<$o)S%lvfuP7D)m,LikRG6x#@bwBOjf:T4:k/s.;mRL;efX6ZhIQX`]a:e`p-jTV._0dHxg0Y]l/jObW'/NIr4]0Kk>aN^'q0iE[9^Rt%#J7>4eNiJ=#F<6Pn:E@WZ7pin'+D+&'1qiTK^t2QVA?gOIFj=Ydw&*,8)lGp0fq/iKxjB>uIEGhJKb?7m?v:0DN(#jEc1?#i'7kDD6u-F38'@-aAi3u5vjvNsZHf12-iOuHL&m>/;q,PZ*+4't*kZhNto^1k]NPc;1ap7Pl4U7ip,_D#HN[Vj64-tZh&OQA+Q$u;uoMaMqHO#I94+RS?AlA,]B_k[iuI-^mGCeo[ON3lFZgWL-5/;.>$+cm43mk+:FL2/Kp<^.F91SR`j7QspQ/]u?d$0c[[N'lYror$1V^xFWDc7QkxcWG2DY0-g=>9v%No:QbaEV>0^glA4[v,$UHv^cFhX(sH5xof%Gfc'FDdSa%>^-QSW;%](AN9#Lo$e-oE@Uf>6O(kquP)dD^N:##ZHE*kGh)Y#%s%k(2c.MoZU'2W,A#&6Y9hx&ikwQlOhf7H_Fq.8O:6I9'EIQs4VghSNJ;1^YwgM-u<(fM.JFKf:%^d&$oC2v]j]SoW`&Lr19tQqbg>rpNclf$vkLlA69Jsf8p,+qPUGp*F6m=jXYEdd:W(f_TMh7p=,wQ6+cN`*i%(qYT=#P5%9V?.581'TtS#M-d)1>Q5_,hZ:lr,4uu]8bY4PG$S[wC3Lp_AA_2,(c#%E[v-Zc*YnG#Ovsu=B4.%t,6NWm-#C'co/9uMiWLbl,2;-HB^q/8d);`QnvM%8MJAq&A$%DnQaC5Tf3]uWDJ[C6A5:^6wp`AQxtVlj:7xMTs#Z'eL6.m)JLlR>>[Nosrsi(S9H9w=,VAs-fUX3jj7rHk/q'O%9v$#[WG0CCXcdIfKUbgJ4jOdCfLX'A%s1A4]u9?0;tfxK>rap-N6`8d=J*D'pHS;*q+^3T:-3R#QeFv*267pH%`*mc3Gk#Yfn#Hi'_9@/I]c&PU)fbx&.qaTwqN#v(TQ9s$MKI_V.eju-_srvPQh5ju1RiNNba#PLKlo6h+>_=l8mSQ+i877ToKtQ2)Q3GItf$+/'&=G`a,kQCO`ix'u<;Q?tPQ.w2Z$tfeWbeAZVWPxv@`BbCX/q5OXWtE45Rk-5-V<+)5rfAE5bstqZ>t%<,gSLncLu@tS+EZ^jUIFA3%mD3N+LC7_37EHqXOiWKifFM(^s8hY-)Re)[=,X%n3=duB=_['k+E$SWoQblfa,(7xZ2@5PfIWPjViu3e1&2fo7dGb+C(`Q+2gx1Js.K+A`*Q.RAN01SN]p%N4'&Rd$R0EG`=r8Q[t@Q,=T34*NZg4>[Dg/pT(Zl&jn)pTsUe-T$JdhmNP6>^tGN-*s3e5qcKqDqXM-dHU.JWn-Nfj>/L#W6v0$mtM6NmV]9a;S7R3s.k#WUl*:%O'#48v8u.*@FapU@b;?&iFa*_JF&=@rod@=e=FwdUTrt&2@1I@2VhTd>.kT7GmkYafL-/Ei/tdml(#cXT'l:@&2b?G)YwG?%LbX_kpZ0ci(V2&S*[FO*DfKC*#`eR79nQ,C.,80q>'1bpxM/gh_*@C?HKt_#_cJsuaNB#ljJ9Y#Xn]juA]fY7OYR;7^HnG$D)A[u>Dsp`X?:S7p/_^f9PaWUXwA,(pup=al=>UYp)_UIH=vfoH$%=uiA/9rk2=f0$s9Jud7@TZM5p5J;u?WfX#(IbvkZLV/uR67,:)T6[s=:<3(Kc^L9=1wk76tG&D<.Y2tJIO87ElR:mMLjADeU5)l+x$6LcvdkZ1_3O^0>o]`.TG.K28?+U:F9dF:T[hD;4UK,d1bIqZOuGFc]J-?KrxmI6n?YGf5vgJA4V(#Z&I'hnxVFkB?e,lmj1;-Tl8rg#5/s3[apWMxFH#/D;ccKB%u]P-q]$BoM-G5hp]c]TMVew^1[]2DW9KdfNt,T.LAi^kr*8H`<$tECanLBQ.@Qu1vdAH-d%3`]`[lI+#5ds`s,cEoB-WZ-L+wEY_](OE*_v2mCjK.Ss+E-rXgI*]%u'h7vwsFQnvs$KWOd)xu22nLApecMpqhv5v8`;Ls/mm/LY-m1K':^>BHQ/xkHX^E7v_.8U3$cfh7<$=mB7m3))`sr;V5K;8W4Q1;WRd8YYE`Gl0$G=BH.K?;/bEN`ZFMUW5TLe.1g_fS>,(p,3%P]V63u7L=La/AH*O^'.(SW1MK^+H/vhfofMbP7X<^qA_0ubV5v&1wR[1'u:9VM1&[V0L]P8-O+:&PM1vGH6A3m-xR[7:2fh:F4E%x/)SM4*IuuT(5AvT#cW=1X_['YrhaY(lb)>;f7vZRr/v8)'oeQC%7P.?.AtCxb4]oKl>pDEuktgFm0:u0?funl#5&x#lN7CO$ZSeURp,c5f7v[]qwXiok?M-Q$J7T)[&eCC1_L/7FY>0955J?XM>rW>dAU*^:6#g]tuWtTMro=f-8G@kE#8>8sfCEo]ka&=,vJY`5cRoK4IY)A/u@kPRnfs,Lf,Zh%ir$S#.ipCK2So].qHb>(hC<9oq)YpoK0x4GGk$*,Nft9ZKZ2eJa>K^?tP:v(l[=6l,Ak*Kr;.^,JL9YdqL&k3GEt>6v;p=S@)(HxiAK2X5W(xrkpTY:mG-TR7CF#fVpY8au7J=efIP@sLatt]a*lJr:dboQl;eTRaodmk?.>Dle8ex3$-UGFMI76<_P0O8u`4m05JCx@OZQ?tQpZ55u.wwkl$=H5Lf=,5*Z]HIBr,3jLe>KiKsoN_jN3RR7/=w],`KnLp%**:vPOJ+qvrxskfNi-LYR0%a;n'=2u)R.hVm62B_F%1q0c)R%iME8hSMF`j:Qe8vUs#6Ows;I,aliJO*L2FlQs15IFM*d:h,:&koKfXIQt]p^qkv'R?r)T2+01X'>5/a8`5r&S`jUap/VavMe.*+^;G,B5aKJKfI(]V';$Xl>Nf^#L5fNxwxt8niWKhQsJfwE]:QLSYEIt0mG_pE'J:f-=+L6Pk0qvZ(2nJ$7qf@'+gAiWpoKkeJT;SIQJ[r)sAFcHXr-ESN,U;f%-u[Y[&mu_DL'd2l&(FS4#SlU7;$nERJ[u'-Gjk+d2_P0b-`32G5I>%<#IpJNp2v9(THMp4[TaA9t(3ltvCWq-N5sul.ln-nRKT-Xj3Wm@^,2#N@^uj?ZEpefkFiB-6/qTQ:pVKhLBBNd^i'Wl):v,0NL%t&i9vRIXJax4)r+B>N6ka5q=udCK6dhZIk9GC-Ms7UDVeX&l(<'9Nd1_$45Ld;e'vSZ6utG2=?khA%:WW(t`UISVh1IDMSYf5Auk+J+l]8/ohSmP-LU/x=CHXaNKR@G-jXi8--dY1R6#0lUAoE[f$%sCKX,;'wXlme_Y?2VC4`$%=%KmE0S72IEJoutblKk@KG76eZCD-JB7vo`fp4xP5=Yg0J3b[l7&mts[>$)ZEY30=7X9[pim6@=b+Ri;jnhw(8i*8*q.q35SD(-/*NWbRqp.5nIF&2e7'5b8gV@2rsb9'SYV$gtA[HevpT_,n7)X[.eRI?_*lP7[O7x`AD^fVruk2g3GFia5vJle,r._jnPW,:$gE.CDI+#6%]9OlSr6D/uaZc=/f@k]UY5v3Y%6.Ihj1v/i/YB_<39>4U8#YbdAU`nG?0M_,d8:Zj['L/'C7N)n=6u,Q2.=7,4<#0`hVeK0%[[Z1j-Lr>L1#IF'V#^br/5EwtItEK)fL+,^WGCE9aJ$gj]@Q0jguWgSgLcAW<6Ibox$(%7R%laDbL24#0+:h2u=>kTWt#JQiqV%[-1lEO.rC;t?kNSX6vPhC&J/+1Zv88=uEA$`6Vi5`7j1==tq(:oVNZv(EKkDEjV_&jcUd(I4oS'K.Yfn5%S(;A``eo'g[Q-F0d(Lf'WbDw^O;j$veTdm)_S^-`]u2n>A(lXdfTZ_.LE2.Z<%0ETrb-7hkuiqbfvAMHQ1P)ls$@jp#q1/B+dn#EnI/Tm]bn1a08]*4UZS5r4bv[ek(6ROQ34X+,kP&H.(hutArCVm?7((RSA&f]a7QRL10MK]j1'v00te'Pjf;K%j&Uxtg^X*#'8,1g3SGAaxNk>KV#gag$1VEC_vvH)#5(7j8ZX?1VBodYmt=.VT$R[ubh'cYlW`8c>lk#a3AZ--)IZYejtB?gdc;Y#`OWDI;a)S73S^m%@2sR2Sw:+m5ud(hbe?i]RUWiKZHuYXf9d3tX$eH$HYeFr4H>a)Q.+GD&e^M.'eR-v.3)]:vvB:rG@T4/qkPV2v'^3uOshmZt<%J92m+xt'0FsH?4Hd]sX-$jtE]frlFE%%mNW'-KT3[1Aq042iGp**@68p>_]-/cuhU5l[cLHuB0nm:QQ,=ibLHoImw_2+v3KcG`IbnquN3UVRkaK`s3'A-K-nKtCAW6T#pQA^`mRCDu#MvS%Ws,Jpi+LhJ>7='v(kiFVKcl/QN[a9vJs0R%f%aV]HNrNb0?%T*?>%csg6U(.m7)_@uYtAuxGLn3l8D@)+,Th&Z6:#5>@H;u<18fNq12SIsr_NTlGCMGx17%>l%VvN$UVMKKE=tbIWDq0rn`:dFnXSM]V#5r,%;00kv+F(g^mkUs&'M0%sUTV?KgBu$*&MbCF6SH`ve.Tqfm>lL(X',AIwFVW]QK+pp0$+YETHib>oJ=2+eb[HMamvOQUc(u7Efmdd0ZfXV7?4w.1T)`K#.Y>:uur8or,f>ju[v*.Q&3g2Q/>Rxp&o.xk0e^d6[E`370fX((S2t?+Lts:H]Ax9vw)bE@&p5fqoSjeYY83jj]5plFWe;5-%KK7EO-EL2^X=2#KE%wcH-xfNE9m3vx:WT)*:V.h6MbM7F;Xh$_q48f3kROn0T4H9(<[8vC)x?+#Klgc_&7R%;Q@1+X1c`FOa4riU.15v.Jenns,^SMj1$7umM4$ZXjIqT6lZDlKg]op4J9RlTRRIBVQD*^ITB'Cj.W]*,kj#anfGXqi-IKX,2(fL;/aS+JNm[lt36hhDVk/Q-PAL#`)e8G9CtbRO$aRj`7v.3A;CHmRQa:g].L'V(l-j`F$G1JX6v(l_jkvLQVs3X9Y52n>YofR3$KQ`77U^R[JWLcYr62%U<-rJlu7Gc4b%Jh-lo:%Q,vhJ]oK6>fI4^M#;?Tpu)v'*PQuQ>R8-Xjp[gEM+MTfqhisB#m9mVR5`ftMB5).+x$;#2w37RwMO`(:n07to$e?Td5MnUH2U&K4(KK,H*GhllR/m.J^,'#Gxjpq9kd_3858J&)]8OxXSWj'a>vnbE#=kE@$O$X`VMV[&9I-AIq`SEaZm1g6Ak]<:J;2SRc:kbbk8YSb6)JCGgI/q5rke=/vRWi1q5taEp5o.u5)^lV,ZZ.(5'suruPU6G$ZhQEB+<6G$wLLvYTg4Z*C+[psOOPlI@WarTHaQWS[+b4r*l).q=8SA&rC?3])(pmN]xs;p&__?Y$[-M#V)cGEsir1v.)jBT=>Xv9r&M83wjjJqf3/]$s7S(a1;w9vb&J]=`pG(s(#gpr;cXl86P`mZ<,%YqwJpk7;WVwcqc]-1;$O*7#C5)lI5$Be>HQXgMmX:`;?TEi5s4&nMTs=CrF`^KY6uTwC;-Ec,GDx4=ou?LudpMX1#Px*W&?U)>`qoM)']ki1G2n:F6-:ZF^rru+'t2LQNVVvtHwWj0Hr1Yk)JUgU+:F:t:T?>OMw>dJnaD[t:$EduQgf<@(*aJ'6su45%aZt>NO*uU6*O9;]jROj6F+A9*;;tC`sL^T0,)h#9Zb/Q-L0BGKcEYIb^N73SSfpYZKvvv9$CYd]s'L.k@Q2LvpgXvrK^T8q+silsP(PYkSlq[jti(qnjxTsM2nqAs$5jk`Pa$e8Vdgv+qAEiFFnMa:,cA]'qoZ;SK.2%fq,]2QnO')du]uW'$4:MV[V4?[J&RbE@_5s/d81^%5bUSqQ0`4msrB6jqfREHt/du:#(e8D3T@xh(.GBe0N+Pi;l$;(2QRD-(%#lWNBc*5uw+q2?SvZca7Y']#7S*-=OvqWtOo@>Q*EhvC&=fxF,G/fq[;XRrYR_R7TwrR%ew7h'%#ubBqK.5Ll9m:QY&KCiHBu.]1UVIQJO9qq_%4oeAq/Nbi'C_$$K)k%TFrJrC61l(r=ur+P(q%,5&,*,/iBO5djA=Q0iu[++Oo*FFFaIej$,RW%xk>#V87DAnif/v'.6)&g(vbo>W&[dK28^1c?ds%#AFttv/2K09NZbZ'ZcMkH)>['&CKx&d;oZG1Joa/1U+vNkEi.-l)>mY@t7uJ*V?UL(/u'[H'S7+w1pVQ(X-L.1*oqV288v^]V%vs8R)vHC?ItJ?e`Ne5-,qt-*-#k>HUgw:/vb4>r(vuH4/aa6/cjLAp%LxToi5stfmKkSZh^&aAV-v[IE[O:8PZuE28So*x2e#Y=[8#?$9xn&l5W`U(*R,6CJ/hhhlLn[=UR#TWJ/vnq>#&G=boervIbT68+dutPm:rdSR<:HCe'7vW/EF`;<(Qn7?s3dveURNQepm4/>#]II^chfXRFQ1D/?W&V8v7LSwv[X]?:x3D`wM[_N'0tiOnEdo=<7tX(f?`MKj?VM(`EY^i73R8Sg6#8DG'LrDf:%jl-EQbxRAC(xIpdGYRWt<#.,vXc`<@onN^[ioOOu^W`,Sr2JPrL:Rsu:#%N$$Le>IO)PHc)g53#7I[0:t.7?5cU3;sP.=)_%k_%vTK-_smi7Io;?LJs>nQrQ4MW2&2=2V;9pXFB&gQ2&l/e?r6dQ.k:WEUl1*q-q9rNtl]$jG;FV''<%h/*ndL_^VdqMFLq8vZ8trKwmI^kv7#NY$bj/o#l/N;%)L0QMu7Q7^7S2aK.[IEUI7r'OOa3vHprR6F#b4uVJ8)`JJPomS*2M04`NRen[B(+p5'GMOBeR7kq`#$=P4C+v]*c*o/VDDghHvkZXb*v4Nu_sl8TJi=aaB?L]+]t9c]+qvGhJ0`BhP>&qdL9pLZVq,wH.h^/AL6SIMxuiT?Kua_?5q1'?F;q^vO)w5&pp.RuM$FA;O%OLBKIi&x%/@lvLRwRO#qT`l5QHgYW$^ml0f0MwiJE;[`1,2^JPG[O`U;6K^'6.>ELXNY^f>4CDVJ]HPq695Fic88tutK?Wu;$M9#M/>.:76mx++b?`<;ZBfubKUt?qS8&d0*Q8S?Z3;lV;/'%InY(spDrnUR90vgj?.[um;ioAH/mIn+m:YPdg^aa(%t5vF6Jn]Z)].vrC#8dxtV.Ujl>El1KOh6snRWVR0;O#WXx9ZXU^8v;wqaG;*+If-ov]Z9_^-YmW(;L2-GWKmoC-UUcV^e,)Xp2v^NE>H/,gws']gctYe*/nCe]_`5rN+rf,[Csv7M'mqfwY,jeR6vF8sf^6XDvP/8&OME8kCjFP]ruh22tkb+E/2e((8EHDr(OFs,b%*o:S7tvAj@]lC+Ua^+[sG'cx9+$__$:RhR<.GW0Tp`A?HDUgZ(UOm3ZQ_C*L`>lp2`R(7veeH$rNXN9va^*Ru?'i%lYpj,P+2)QMqwT>[V7Ud'tTh0aEtAfai%R1EFo:xFD.eNuSwr>%_)v%+:?^[a2JgE`D%KUun@YLkWAB9vL3TVGO5x9vJ[xm(^qH+OroH(W#-GiANjQW&_iH'&;/v>7&@;3a)'t1?[@ox+)*Y0`LLQkS>#iS*af[xEO3`;r-8@gCYcwc3JN`(7u&Hau[5V_Wp-9.qb5>5lHBr@1=%7K'#%L?%8]IN0/ap=YbSb>jSvWt4iwvjLJErw''j&Xv'GbmR7dA`*vSI#^0aH+eu%[judwiOYu`C/]I6;+r=UqNKPb@SGu-rOaH8xp/q-hvrq3lR&`#=X]FOmv$`[?,,Cb2G,o-j@F;&$j7b,p5n0efirZ/[:DVe*:G`-LcP7U^oJ`>j6WGAbts[H$hKhR7'Q%Du?'*3t@v/L8(5:g_T?'Rm#UqFW*>NscUO`QdrY`*Va2qsWl@fuWAPHVv95RQv@)._CvN:m$R*PSCYm#MJLR]DhB'2&P8w$LTw)m9P/puW(x3/O3&-UceQAkA%905dkR9;u4&gLB5U;]udT.LIOe_sT;ALVUXX4vqs`jsY$-4m;CRho1IQT[2F2YGA@s^JPG,g7P1InlhKs1HaGW_*lJ>=jdf2T1&;D=F)Nf2nFD2R.Lu,,Y*[j%:Q@K997_.>5t1C/1BLFTHm;bbjeQj=p43;/Lfab'c<,n>mKYKiuk%v)s=??_?'GKk*pMC,xtUIUf:uXAq=gG+QV(J*k6N]L(Dhq41pRVuIMF)lgfhUxg)gU9xugD)2BQ#x5L35SKmd31]3TIQI'`T8KE-/ouq%ZJjojU&`H+g[f:&Dh?jlt_fHwC#qq61DKV-IsLb9M^<&(-3lN&=*@uxrtts-vkuN<];$vY)AuYOMP+EAXF`JtVP_HCKgd(2?46)p_d-J1QOndxtA#4/4GjHluwMYne?U#fl9;`/ojIH]7v$Mo`AsJqQbNXH4$bHDJ(us`wKHclRAjVVbl0^pqut;aki#@)uu$K(4BA'hr*UGN<(Knt)]o=tPYU:QnRnH=r/gsIa]g)8tkBaod0@xh(L)ho=.N#kE:#l?%POj#W37LI>(._QgO@)X7qW1/d&AFI&u;q12H17KtUE2F#tkJupIa(C*)dXGM9dM:J^5v3@X+qHn42t9+A,r-dc;8Dcn>gC=B(aiZPPiL0O3sK--OGo*<>tT19DA?J`B?mrlFo4IWu>pwfffP5qM-9v+W['u1xW,tNFi>Da88cEqa_159Qss4`M[1fxD-@khO@-n*)vcM?mkj+R3vSf++@XW*s7lHo5v-iZ_tE*ThKhP8w6?w'?B^TZdu17uXuQO*lR31kj81jM`wX4FHZtlZ86v7k@97'^xIBA)(87O8M_sbXT0V8x16qY[SJ<+J@T5&TEjk:45iT_E4XtE($V#+O6tJ&^@'-3S=v,mL#t5Y)`&K_:M_a^DJQmCF,VdPvEL>1PO+rpUn,L>w*]:cG7v+HQ28v_cxA)m,RLf-gaJIg7;kYSq^8QFo3H6@t_XGk&qC?>E^ZUL=$pr@-')jl9/?uc$rH'.#caT3hQ6lj`>JuDO)wtq3A=jfU&?pc/cM_;-;p*@(;_N:dTn>?bg:QNjWIumtp_LB_'_/I'ugH5sjdT9xw-#LX?I$_kjju3E9Zfc+V:^8@n=q[.fDH@'=%k[t%jmRe]qx^a($VHFPVVu_5h,QR02EK**IWT%QQW)WR,`BL3V6MBVdxbaK.jhf>i2S$oCabYMD$%4gaI[ax)'IVFH&+c>n+'5-E96)P0EODDpNKPAX)Pnn28tuTgL8`u*c8%Qp?J`Rj*eCj>$^*OKf6vp>Lbs.=KMuuNG*lXG;S7q2dmK/f,)vuS]K($]tOna1gF2R9:=gSVBX)AF^a*,mQ?r620,J5VuqH/[WX#&oUBpNXA)RvBOq&=6ex4Te.ba6=WJh<#FopVw>+U/#U^bN-Ppm=li8H'O$gkMPL@2K-*T;bv[^s^0B@&E&G'?9IXtj>SCa,didd[u$ghtHutl]vhH.vEPj4u0ggplPej(C'x^lkh@*uj_#stP`,Px45KXkhw3nH`uh<=tcKO--VnHCsjF'9-0Th6rZqHsZ5r?--7f-JrtW+8v_ib.LjbeiU92vXNc$?pD9.QpKbKlhJd>.eD.n=Za/7k(se9m4m$qP77RMmB:AqM]aig,2ue4n=785&S[Sg8?bG`)GMZe,go+e:BSHi)rHqj0sOSoV6nn,2GuELqDd-L3@rjq*+Lg]B^slJ]`Nx%Ov0s=[C(/_l54gtr,F[j-Lwqtas:^-h]tESQs=@2SR/&w*1g;lCa[AJvnRgBG)`36W_,Eb1Kn4hA6(^3VHbTCcul#d;bqDYv_w6MNk.3s@Fs'adeM:3ht*e,rO;A=;r_c&*sd8oXuamFdlbg3,mHD@h`S#;=jjRv.,Q^lFb&j_[+V/[a$lht5.ut#;Bfa(28tcirhua;Lw+]hrml0$[ct';0>kYW+CH/KhQuYPDotZm:S7^52fl$(M4S-Yp8-=m2o%ASSXu:9AneZ30akj(0B#-I2RmH#]R%-M,4A0v9=uNUq.:4dJu#8SdumfABYY,c8kfsK:1t^'kGlmlJef[R<+J&-Nvk4c(.qS*&rKeT'[Wb6KefCwjEAJ=#D<_JjWS4%cx4lp#S@=;$ok_nq-_cRrB/YxRIaMKf6vPuZ*:CDel]'Q/D`[n64J5]u2kH:*tLl[s*_r;hu,W(%:2tN.SO+@lc2-iRS8:>40.pF0qjfYp1=joxEn`M1EtRn)15Rl=AtX79Tg8iLCVpmZfhN-,]eq5GR^0<^d6Au/s9R@'Tj@V4b)YK9;1;@?PVOo]Flru4NIfHiJxtudF-=H.p/%aPT;WH3exMa4[tV,OnUvk3U?0#CRM@)Lu2#0DgX#5isNurwb6P3N+mgG',XHp>vM#t^;+uA`P1%4<*wSlZhpdHI_0Tu(,7[se(mus6hDh'w$hRu99v^PFt7U+U2&[t[dR4TbEftudXralLv&SIPLLNJjf0)oFF4,vWoY@%*DP)_N>TH4EfPV>^rYPqY`D#qfI7NpcBo2*i=UxF=q6xtv0DttJfZ:GnSju-%X,-d]p49Q<$bi'W@(b7-xOMVH7Z2Q:>Goss6u77M:C`<]hU]+s7+C`(XUxO[f*GM&r25&nbaX,gBr=IRW1-O:evNUdI/6vD[:9V-@Ra2xJw[jQZWk7xtFYsOlR5vn,<,pfihN4/1=hQe#hi8D=jjJc[0I7;@MqMMCf'BX'+`k*'v77B$notIWlCaI0KMU;6`0a&U%1%6n:m5LcXhspX#K*8e_'qKO38^HmFIs7v?1B#8#FtrqafLQSEEc4(+7v7P0iS4Ip]l8=2AK'?gB:JVvvk49F7Rle%OckG=(/CD@+e8O*2V7l3:*ok3#RX?NaJh#QpIswR'_/`5`*Lv@eEej2iaG&Sv8upR,GEX/9dK]EW$61X+.f=fDxoKS0-K%p)gt)nD^3W(s*TdO.bmgobposPWjLF$nTcM89uu>9GtuQrjcaPMHbo5or.(ZjNEs*bLLID4V4kd;+TUk1$o%UjR^)/$87vkhsDD,07u,XQ:`NK*]:m%uHx,hj1[`gCx>]kaIvk5[:WupOCEip51eOD0Ket>[RDl.;N2qP2APOXKu.v1N[miZa-#_7>a6lbha_aT32s=5uv.28TL4o$=6&L^wtIq`oR)7B#,5J]7:3vh>9s]hsYK5cvc-AE.KP.bPHJT*&'VA*^u_a7[Kc@KZ)4m%jj+4>b_8v7gRWIWgI*vGcpI9,SU#_S:YWu'vb,vSTgM`=E-'a=YElA;1?Y),V(rt[v&;1;E''#VkP2G%Nco@kM_B/cAL`P5T3qa^*;r=Ookt@$+qwtVk0D)<,Ei&tJ2cu-jc6lZ<#TrA]i+^i3MNT@owxKu+,W^7M*k&q?U^8vR8%tuR7cHkCDb0p#jd6-c*&:v5[Jkd(U[CM:$J'u/4==tAw`tK3_9BsA4/@O4Y4X[0naR##m<+'QLEQad>kbP6<)? 3 ? color1[3] : 255; - var alpha2 = color2.length > 3 ? color2[3] : 255; - colorMix[3] = (((1.0-t)*alpha1 + t*alpha2)+0.5) | 0; - - return colorMix; - } - } - - function lerpFloat(color1, color2, t) { - color1 = unpackFloatColor(color1); - color2 = unpackFloatColor(color2); - - if (color1 !== undefined && color2 !== undefined) { - var latent1 = unpackedFloatRgbToLatent(color1); - var latent2 = unpackedFloatRgbToLatent(color2); - - var colorMix = latentToFloatRgb(lerpLatent(latent1, latent2, t)); - - if (color1.length === 3 && color2.length === 3) return colorMix; - - var alpha1 = color1.length > 3 ? color1[3] : 1.0; - var alpha2 = color2.length > 3 ? color2[3] : 1.0; - colorMix[3] = (1.0-t)*alpha1 + t*alpha2; - - return colorMix; - } - } - - function lerpLinearFloat(color1, color2, t) { - color1 = unpackLinearFloatColor(color1); - color2 = unpackLinearFloatColor(color2); - - if (color1 !== undefined && color2 !== undefined) { - var latent1 = unpackedLinearFloatRgbToLatent(color1); - var latent2 = unpackedLinearFloatRgbToLatent(color2); - - var colorMix = latentToLinearFloatRgb(lerpLatent(latent1, latent2, t)); - - if (color1.length === 3 && color2.length === 3) return colorMix; - - var alpha1 = color1.length > 3 ? color1[3] : 1.0; - var alpha2 = color2.length > 3 ? color2[3] : 1.0; - colorMix[3] = (1.0-t)*alpha1 + t*alpha2; - - return colorMix; - } - } - - function rgbArray(r, g, b) { - var rgb = [r, g, b]; - rgb.toString = function() { - return this.length > 3 ? "rgba(" + this[0] + "," + this[1] + "," + this[2] + "," + (this[3]/255.0) + ")" : - "rgb(" + this[0] + "," + this[1] + "," + this[2] + ")"; - } - return rgb; - } - - function rgbToLatent(r, g, b) { - var rgb = unpackColor((g === undefined && b === undefined) ? (r) : [r, g, b]); - if (rgb !== undefined) return unpackedRgbToLatent(rgb); - } - - function latentToRgb(latent) { - if (Array.isArray(latent) && latent.length === 7) { - var rgb = evalPolynomial(latent[0], latent[1], latent[2], latent[3]); - return rgbArray((clamp01(rgb[0] + latent[4])*255.0 + 0.5) | 0, - (clamp01(rgb[1] + latent[5])*255.0 + 0.5) | 0, - (clamp01(rgb[2] + latent[6])*255.0 + 0.5) | 0); - } - } - - function floatRgbToLatent(r, g, b) { - var rgb = unpackFloatColor((g === undefined && b === undefined) ? r : [r, g, b]); - if (rgb !== undefined) return unpackedFloatRgbToLatent(rgb); - } - - function latentToFloatRgb(latent) { - if (Array.isArray(latent) && latent.length === 7) { - var rgb = evalPolynomial(latent[0], latent[1], latent[2], latent[3]); - return [ - clamp01(rgb[0] + latent[4]), - clamp01(rgb[1] + latent[5]), - clamp01(rgb[2] + latent[6]) - ]; - } - } - - function linearFloatRgbToLatent(r, g, b) { - var rgb = unpackLinearFloatColor((g === undefined && b === undefined) ? r : [r, g, b]); - if (rgb !== undefined) return unpackedLinearFloatRgbToLatent(rgb); - } - - function latentToLinearFloatRgb(latent) { - var rgb = latentToFloatRgb(latent); - if (rgb !== undefined) return [ - srgbToLinear(rgb[0]), - srgbToLinear(rgb[1]), - srgbToLinear(rgb[2]) - ]; - } - - function clamp(x, xmin, xmax) { - return Math.min(Math.max(x, xmin), xmax); - } - - function clamp01(x) { - return Math.min(Math.max(x, 0.0), 1.0); - } - - function srgbToLinear(x) { - return (x >= 0.04045) ? Math.pow((x + 0.055) / 1.055, 2.4) : x/12.92; - } - - function linearToSrgb(x) { - return (x >= 0.0031308) ? 1.055*Math.pow(x, 1.0/2.4) - 0.055 : 12.92*x; - } - - function lerpLatent(latent1, latent2, t) { - var latentMix = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]; - - for (var i = 0; i < 7; i++) { - latentMix[i] = (1.0-t)*latent1[i] + t*latent2[i]; - } - - return latentMix; - } - - function unpackColor(color) { - if (Array.isArray(color) && color.length >= 3) { - return color; - } - if (typeof color === 'string') { - return parseColorString(color); - } - if (typeof color === 'object') { - if (typeof color.getHexString === 'function') { - return parseColorString(color.getHexString()); - } - if (!isNaN(color.r) && !isNaN(color.g) && !isNaN(color.b)) { - if (isNaN(color.a)) { return [color.r, color.g, color.b]; } - return [color.r, color.g, color.b, color.a]; - } - return parseColorString(color.toString()); - } - if (typeof color === 'number' && isFinite(color) && Math.floor(color) === color && color >= 0) { - return [ (color >>> 16) & 255, (color >>> 8) & 255, color & 255 ]; - } - } - - function unpackFloatColor(color) { - if (Array.isArray(color) && color.length >= 3) { - return color; - } - if (typeof color === 'object' && !isNaN(color.r) && !isNaN(color.g) && !isNaN(color.b)) { - if (isNaN(color.a)) { return [color.r, color.g, color.b]; } - return [color.r, color.g, color.b, color.a]; - } - if (color = unpackColor(color)) { - for (var i = 0; i < color.length; i++) { color[i] /= 255.0; } - return color; - } - } - - function unpackLinearFloatColor(color) { - if (Array.isArray(color) && color.length >= 3) { - return color; - } - if (typeof color === 'object' && !isNaN(color.r) && !isNaN(color.g) && !isNaN(color.b)) { - if (isNaN(color.a)) { return [color.r, color.g, color.b]; } - return [color.r, color.g, color.b, color.a]; - } - if (color = unpackColor(color)) { - for (var i = 0; i < 3; i++) { color[i] = srgbToLinear(color[i] / 255.0); } - if (color.length > 3) { color[3] /= 255.0; } - return color; - } - } - - function unpackedRgbToLatent(rgb) { - return unpackedFloatRgbToLatent([ - rgb[0] / 255.0, - rgb[1] / 255.0, - rgb[2] / 255.0 - ]); - } - - function unpackedFloatRgbToLatent(rgb) { - var r = clamp01(rgb[0]); - var g = clamp01(rgb[1]); - var b = clamp01(rgb[2]); - - var x = r * 63.0; - var y = g * 63.0; - var z = b * 63.0; - - var ix = x | 0; - var iy = y | 0; - var iz = z | 0; - - var tx = x - ix; - var ty = y - iy; - var tz = z - iz; - - var xyz = ix + iy*64 + iz*64*64; - - var c0 = 0.0; - var c1 = 0.0; - var c2 = 0.0; - - var w = 0.0; - w = (1.0-tx)*(1.0-ty)*(1.0-tz); c0 += w*lut[xyz+ 192]; c1 += w*lut[xyz+262336]; c2 += w*lut[xyz+524480]; - w = ( tx)*(1.0-ty)*(1.0-tz); c0 += w*lut[xyz+ 193]; c1 += w*lut[xyz+262337]; c2 += w*lut[xyz+524481]; - w = (1.0-tx)*( ty)*(1.0-tz); c0 += w*lut[xyz+ 256]; c1 += w*lut[xyz+262400]; c2 += w*lut[xyz+524544]; - w = ( tx)*( ty)*(1.0-tz); c0 += w*lut[xyz+ 257]; c1 += w*lut[xyz+262401]; c2 += w*lut[xyz+524545]; - w = (1.0-tx)*(1.0-ty)*( tz); c0 += w*lut[xyz+4288]; c1 += w*lut[xyz+266432]; c2 += w*lut[xyz+528576]; - w = ( tx)*(1.0-ty)*( tz); c0 += w*lut[xyz+4289]; c1 += w*lut[xyz+266433]; c2 += w*lut[xyz+528577]; - w = (1.0-tx)*( ty)*( tz); c0 += w*lut[xyz+4352]; c1 += w*lut[xyz+266496]; c2 += w*lut[xyz+528640]; - w = ( tx)*( ty)*( tz); c0 += w*lut[xyz+4353]; c1 += w*lut[xyz+266497]; c2 += w*lut[xyz+528641]; - - c0 /= 255.0; - c1 /= 255.0; - c2 /= 255.0; - - var c3 = 1.0 - (c0 + c1 + c2); - - var c00 = c0 * c0; - var c11 = c1 * c1; - var c22 = c2 * c2; - var c33 = c3 * c3; - var c01 = c0 * c1; - var c02 = c0 * c2; - var c12 = c1 * c2; - - var rmix = 0.0; - var gmix = 0.0; - var bmix = 0.0; - - var w = 0.0; - w = c0*c00; rmix += +0.07717053*w; gmix += +0.02826978*w; bmix += +0.24832992*w; - w = c1*c11; rmix += +0.95912302*w; gmix += +0.80256528*w; bmix += +0.03561839*w; - w = c2*c22; rmix += +0.74683774*w; gmix += +0.04868586*w; bmix += +0.00000000*w; - w = c3*c33; rmix += +0.99518138*w; gmix += +0.99978149*w; bmix += +0.99704802*w; - w = c00*c1; rmix += +0.04819146*w; gmix += +0.83363781*w; bmix += +0.32515377*w; - w = c01*c1; rmix += -0.68146950*w; gmix += +1.46107803*w; bmix += +1.06980936*w; - w = c00*c2; rmix += +0.27058419*w; gmix += -0.15324870*w; bmix += +1.98735057*w; - w = c02*c2; rmix += +0.80478189*w; gmix += +0.67093710*w; bmix += +0.18424500*w; - w = c00*c3; rmix += -0.35031003*w; gmix += +1.37855826*w; bmix += +3.68865000*w; - w = c0*c33; rmix += +1.05128046*w; gmix += +1.97815239*w; bmix += +2.82989073*w; - w = c11*c2; rmix += +3.21607125*w; gmix += +0.81270228*w; bmix += +1.03384539*w; - w = c1*c22; rmix += +2.78893374*w; gmix += +0.41565549*w; bmix += -0.04487295*w; - w = c11*c3; rmix += +3.02162577*w; gmix += +2.55374103*w; bmix += +0.32766114*w; - w = c1*c33; rmix += +2.95124691*w; gmix += +2.81201112*w; bmix += +1.17578442*w; - w = c22*c3; rmix += +2.82677043*w; gmix += +0.79933038*w; bmix += +1.81715262*w; - w = c2*c33; rmix += +2.99691099*w; gmix += +1.22593053*w; bmix += +1.80653661*w; - w = c01*c2; rmix += +1.87394106*w; gmix += +2.05027182*w; bmix += -0.29835996*w; - w = c01*c3; rmix += +2.56609566*w; gmix += +7.03428198*w; bmix += +0.62575374*w; - w = c02*c3; rmix += +4.08329484*w; gmix += -1.40408358*w; bmix += +2.14995522*w; - w = c12*c3; rmix += +6.00078678*w; gmix += +2.55552042*w; bmix += +1.90739502*w; - - return [ - c0, - c1, - c2, - c3, - r - rmix, - g - gmix, - b - bmix, - ]; - } - - function unpackedLinearFloatRgbToLatent(rgb) { - return unpackedFloatRgbToLatent([ - linearToSrgb(rgb[0]), - linearToSrgb(rgb[1]), - linearToSrgb(rgb[2]) - ]); - } - - function evalPolynomial(c0, c1, c2, c3) { - var r = 0.0; - var g = 0.0; - var b = 0.0; - - var c00 = c0 * c0; - var c11 = c1 * c1; - var c22 = c2 * c2; - var c33 = c3 * c3; - var c01 = c0 * c1; - var c02 = c0 * c2; - var c12 = c1 * c2; - - var w = 0.0; - w = c0*c00; r += +0.07717053*w; g += +0.02826978*w; b += +0.24832992*w; - w = c1*c11; r += +0.95912302*w; g += +0.80256528*w; b += +0.03561839*w; - w = c2*c22; r += +0.74683774*w; g += +0.04868586*w; b += +0.00000000*w; - w = c3*c33; r += +0.99518138*w; g += +0.99978149*w; b += +0.99704802*w; - w = c00*c1; r += +0.04819146*w; g += +0.83363781*w; b += +0.32515377*w; - w = c01*c1; r += -0.68146950*w; g += +1.46107803*w; b += +1.06980936*w; - w = c00*c2; r += +0.27058419*w; g += -0.15324870*w; b += +1.98735057*w; - w = c02*c2; r += +0.80478189*w; g += +0.67093710*w; b += +0.18424500*w; - w = c00*c3; r += -0.35031003*w; g += +1.37855826*w; b += +3.68865000*w; - w = c0*c33; r += +1.05128046*w; g += +1.97815239*w; b += +2.82989073*w; - w = c11*c2; r += +3.21607125*w; g += +0.81270228*w; b += +1.03384539*w; - w = c1*c22; r += +2.78893374*w; g += +0.41565549*w; b += -0.04487295*w; - w = c11*c3; r += +3.02162577*w; g += +2.55374103*w; b += +0.32766114*w; - w = c1*c33; r += +2.95124691*w; g += +2.81201112*w; b += +1.17578442*w; - w = c22*c3; r += +2.82677043*w; g += +0.79933038*w; b += +1.81715262*w; - w = c2*c33; r += +2.99691099*w; g += +1.22593053*w; b += +1.80653661*w; - w = c01*c2; r += +1.87394106*w; g += +2.05027182*w; b += -0.29835996*w; - w = c01*c3; r += +2.56609566*w; g += +7.03428198*w; b += +0.62575374*w; - w = c02*c3; r += +4.08329484*w; g += -1.40408358*w; b += +2.14995522*w; - w = c12*c3; r += +6.00078678*w; g += +2.55552042*w; b += +1.90739502*w; - - return [r, g, b]; - } - - function hexToUint8(str) { - if (str.length === 1) { str = str + str; } - return parseInt("0x" + str, 16); - } - - function strToUint8(str) { - var value = (str.charAt(str.length - 1) === '%') ? ((Number(str.slice(0, -1)) / 100.0) * 255.0) : Number(str); - return clamp(Math.round(value), 0, 255); - } - - var numRegex = /[+\-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:\d[eE][+\-]?\d+)?%?/; - var rgbRegex = new RegExp('^rgb\\(('+numRegex.source+'),('+numRegex.source+'),('+numRegex.source+')\\)$','i'); - var rgbaRegex = new RegExp('^rgba\\(('+numRegex.source+'),('+numRegex.source+'),('+numRegex.source+'),('+numRegex.source+')\\)$','i'); - var hex3Regex = /^#?([a-f0-9])([a-f0-9])([a-f0-9])$/i; - var hex4Regex = /^#?([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])$/i; - var hex6Regex = /^#?([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})$/i; - var hex8Regex = /^#?([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})$/i; - - function parseColorString(string) { - string = string.replace(/\s/g, ''); - - var matches; - if (matches = rgbRegex.exec(string)) { return [ strToUint8(matches[1]), strToUint8(matches[2]), strToUint8(matches[3]) ]; } - if (matches = rgbaRegex.exec(string)) { return [ strToUint8(matches[1]), strToUint8(matches[2]), strToUint8(matches[3]), clamp(Number(matches[4]) * 255.0, 0, 255) ]; } - if (matches = hex6Regex.exec(string)) { return [ hexToUint8(matches[1]), hexToUint8(matches[2]), hexToUint8(matches[3]) ]; } - if (matches = hex3Regex.exec(string)) { return [ hexToUint8(matches[1]), hexToUint8(matches[2]), hexToUint8(matches[3]) ]; } - if (matches = hex8Regex.exec(string)) { return [ hexToUint8(matches[1]), hexToUint8(matches[2]), hexToUint8(matches[3]), hexToUint8(matches[4]) ]; } - if (matches = hex4Regex.exec(string)) { return [ hexToUint8(matches[1]), hexToUint8(matches[2]), hexToUint8(matches[3]), hexToUint8(matches[4]) ]; } - - var namedColors = { - aliceblue : [ 240, 248, 255 ], - antiquewhite : [ 250, 235, 215 ], - aqua : [ 0, 255, 255 ], - aquamarine : [ 127, 255, 212 ], - azure : [ 240, 255, 255 ], - beige : [ 245, 245, 220 ], - bisque : [ 255, 228, 196 ], - black : [ 0, 0, 0 ], - blanchedalmond : [ 255, 235, 205 ], - blue : [ 0, 0, 255 ], - blueviolet : [ 138, 43, 226 ], - brown : [ 165, 42, 42 ], - burlywood : [ 222, 184, 135 ], - cadetblue : [ 95, 158, 160 ], - chartreuse : [ 127, 255, 0 ], - chocolate : [ 210, 105, 30 ], - coral : [ 255, 127, 80 ], - cornflowerblue : [ 100, 149, 237 ], - cornsilk : [ 255, 248, 220 ], - crimson : [ 220, 20, 60 ], - cyan : [ 0, 255, 255 ], - darkblue : [ 0, 0, 139 ], - darkcyan : [ 0, 139, 139 ], - darkgoldenrod : [ 184, 134, 11 ], - darkgray : [ 169, 169, 169 ], - darkgreen : [ 0, 100, 0 ], - darkgrey : [ 169, 169, 169 ], - darkkhaki : [ 189, 183, 107 ], - darkmagenta : [ 139, 0, 139 ], - darkolivegreen : [ 85, 107, 47 ], - darkorange : [ 255, 140, 0 ], - darkorchid : [ 153, 50, 204 ], - darkred : [ 139, 0, 0 ], - darksalmon : [ 233, 150, 122 ], - darkseagreen : [ 143, 188, 143 ], - darkslateblue : [ 72, 61, 139 ], - darkslategray : [ 47, 79, 79 ], - darkslategrey : [ 47, 79, 79 ], - darkturquoise : [ 0, 206, 209 ], - darkviolet : [ 148, 0, 211 ], - deeppink : [ 255, 20, 147 ], - deepskyblue : [ 0, 191, 255 ], - dimgray : [ 105, 105, 105 ], - dimgrey : [ 105, 105, 105 ], - dodgerblue : [ 30, 144, 255 ], - firebrick : [ 178, 34, 34 ], - floralwhite : [ 255, 250, 240 ], - forestgreen : [ 34, 139, 34 ], - fuchsia : [ 255, 0, 255 ], - gainsboro : [ 220, 220, 220 ], - ghostwhite : [ 248, 248, 255 ], - gold : [ 255, 215, 0 ], - goldenrod : [ 218, 165, 32 ], - gray : [ 128, 128, 128 ], - green : [ 0, 128, 0 ], - greenyellow : [ 173, 255, 47 ], - grey : [ 128, 128, 128 ], - honeydew : [ 240, 255, 240 ], - hotpink : [ 255, 105, 180 ], - indianred : [ 205, 92, 92 ], - indigo : [ 75, 0, 130 ], - ivory : [ 255, 255, 240 ], - khaki : [ 240, 230, 140 ], - lavender : [ 230, 230, 250 ], - lavenderblush : [ 255, 240, 245 ], - lawngreen : [ 124, 252, 0 ], - lemonchiffon : [ 255, 250, 205 ], - lightblue : [ 173, 216, 230 ], - lightcoral : [ 240, 128, 128 ], - lightcyan : [ 224, 255, 255 ], - lightgoldenrodyellow : [ 250, 250, 210 ], - lightgray : [ 211, 211, 211 ], - lightgreen : [ 144, 238, 144 ], - lightgrey : [ 211, 211, 211 ], - lightpink : [ 255, 182, 193 ], - lightsalmon : [ 255, 160, 122 ], - lightseagreen : [ 32, 178, 170 ], - lightskyblue : [ 135, 206, 250 ], - lightslategray : [ 119, 136, 153 ], - lightslategrey : [ 119, 136, 153 ], - lightsteelblue : [ 176, 196, 222 ], - lightyellow : [ 255, 255, 224 ], - lime : [ 0, 255, 0 ], - limegreen : [ 50, 205, 50 ], - linen : [ 250, 240, 230 ], - magenta : [ 255, 0, 255 ], - maroon : [ 128, 0, 0 ], - mediumaquamarine : [ 102, 205, 170 ], - mediumblue : [ 0, 0, 205 ], - mediumorchid : [ 186, 85, 211 ], - mediumpurple : [ 147, 112, 219 ], - mediumseagreen : [ 60, 179, 113 ], - mediumslateblue : [ 123, 104, 238 ], - mediumspringgreen : [ 0, 250, 154 ], - mediumturquoise : [ 72, 209, 204 ], - mediumvioletred : [ 199, 21, 133 ], - midnightblue : [ 25, 25, 112 ], - mintcream : [ 245, 255, 250 ], - mistyrose : [ 255, 228, 225 ], - moccasin : [ 255, 228, 181 ], - navajowhite : [ 255, 222, 173 ], - navy : [ 0, 0, 128 ], - oldlace : [ 253, 245, 230 ], - olive : [ 128, 128, 0 ], - olivedrab : [ 107, 142, 35 ], - orange : [ 255, 165, 0 ], - orangered : [ 255, 69, 0 ], - orchid : [ 218, 112, 214 ], - palegoldenrod : [ 238, 232, 170 ], - palegreen : [ 152, 251, 152 ], - paleturquoise : [ 175, 238, 238 ], - palevioletred : [ 219, 112, 147 ], - papayawhip : [ 255, 239, 213 ], - peachpuff : [ 255, 218, 185 ], - peru : [ 205, 133, 63 ], - pink : [ 255, 192, 203 ], - plum : [ 221, 160, 221 ], - powderblue : [ 176, 224, 230 ], - purple : [ 128, 0, 128 ], - red : [ 255, 0, 0 ], - rosybrown : [ 188, 143, 143 ], - royalblue : [ 65, 105, 225 ], - saddlebrown : [ 139, 69, 19 ], - salmon : [ 250, 128, 114 ], - sandybrown : [ 244, 164, 96 ], - seagreen : [ 46, 139, 87 ], - seashell : [ 255, 245, 238 ], - sienna : [ 160, 82, 45 ], - silver : [ 192, 192, 192 ], - skyblue : [ 135, 206, 235 ], - slateblue : [ 106, 90, 205 ], - slategray : [ 112, 128, 144 ], - slategrey : [ 112, 128, 144 ], - snow : [ 255, 250, 250 ], - springgreen : [ 0, 255, 127 ], - steelblue : [ 70, 130, 180 ], - tan : [ 210, 180, 140 ], - teal : [ 0, 128, 128 ], - thistle : [ 216, 191, 216 ], - tomato : [ 255, 99, 71 ], - turquoise : [ 64, 224, 208 ], - violet : [ 238, 130, 238 ], - wheat : [ 245, 222, 179 ], - white : [ 255, 255, 255 ], - whitesmoke : [ 245, 245, 245 ], - yellow : [ 255, 255, 0 ], - yellowgreen : [ 154, 205, 50 ], - }; - - var name = string.toLowerCase(); - if (namedColors.hasOwnProperty(name)) return namedColors[name]; - } - - function glsl() { - return "#ifndef MIXBOX_INCLUDED\n" + - "#define MIXBOX_INCLUDED\n" + - "\n" + - "#ifndef MIXBOX_LUT\n" + - " #if __VERSION__ <= 120\n" + - " #define MIXBOX_LUT(UV) texture2D(mixbox_lut, UV)\n" + - " #else\n" + - " #define MIXBOX_LUT(UV) textureLod(mixbox_lut, UV, 0.0)\n" + - " #endif\n" + - "#endif\n" + - "\n" + - "#define mixbox_latent mat3\n" + - "\n" + - "vec3 mixbox_eval_polynomial(vec3 c)\n" + - "{\n" + - " float c0 = c[0];\n" + - " float c1 = c[1];\n" + - " float c2 = c[2];\n" + - " float c3 = 1.0 - (c0 + c1 + c2);\n" + - "\n" + - " float c00 = c0 * c0;\n" + - " float c11 = c1 * c1;\n" + - " float c22 = c2 * c2;\n" + - " float c01 = c0 * c1;\n" + - " float c02 = c0 * c2;\n" + - " float c12 = c1 * c2;\n" + - " float c33 = c3 * c3;\n" + - "\n" + - " return (c0*c00) * vec3(+0.07717053, +0.02826978, +0.24832992) +\n" + - " (c1*c11) * vec3(+0.95912302, +0.80256528, +0.03561839) +\n" + - " (c2*c22) * vec3(+0.74683774, +0.04868586, +0.00000000) +\n" + - " (c3*c33) * vec3(+0.99518138, +0.99978149, +0.99704802) +\n" + - " (c00*c1) * vec3(+0.04819146, +0.83363781, +0.32515377) +\n" + - " (c01*c1) * vec3(-0.68146950, +1.46107803, +1.06980936) +\n" + - " (c00*c2) * vec3(+0.27058419, -0.15324870, +1.98735057) +\n" + - " (c02*c2) * vec3(+0.80478189, +0.67093710, +0.18424500) +\n" + - " (c00*c3) * vec3(-0.35031003, +1.37855826, +3.68865000) +\n" + - " (c0*c33) * vec3(+1.05128046, +1.97815239, +2.82989073) +\n" + - " (c11*c2) * vec3(+3.21607125, +0.81270228, +1.03384539) +\n" + - " (c1*c22) * vec3(+2.78893374, +0.41565549, -0.04487295) +\n" + - " (c11*c3) * vec3(+3.02162577, +2.55374103, +0.32766114) +\n" + - " (c1*c33) * vec3(+2.95124691, +2.81201112, +1.17578442) +\n" + - " (c22*c3) * vec3(+2.82677043, +0.79933038, +1.81715262) +\n" + - " (c2*c33) * vec3(+2.99691099, +1.22593053, +1.80653661) +\n" + - " (c01*c2) * vec3(+1.87394106, +2.05027182, -0.29835996) +\n" + - " (c01*c3) * vec3(+2.56609566, +7.03428198, +0.62575374) +\n" + - " (c02*c3) * vec3(+4.08329484, -1.40408358, +2.14995522) +\n" + - " (c12*c3) * vec3(+6.00078678, +2.55552042, +1.90739502);\n" + - "}\n" + - "\n" + - "float mixbox_srgb_to_linear(float x)\n" + - "{\n" + - " return (x >= 0.04045) ? pow((x + 0.055) / 1.055, 2.4) : x/12.92;\n" + - "}\n" + - "\n" + - "float mixbox_linear_to_srgb(float x)\n" + - "{\n" + - " return (x >= 0.0031308) ? 1.055*pow(x, 1.0/2.4) - 0.055 : 12.92*x;\n" + - "}\n" + - "\n" + - "vec3 mixbox_srgb_to_linear(vec3 rgb)\n" + - "{\n" + - " return vec3(mixbox_srgb_to_linear(rgb.r),\n" + - " mixbox_srgb_to_linear(rgb.g),\n" + - " mixbox_srgb_to_linear(rgb.b));\n" + - "}\n" + - "\n" + - "vec3 mixbox_linear_to_srgb(vec3 rgb)\n" + - "{\n" + - " return vec3(mixbox_linear_to_srgb(rgb.r),\n" + - " mixbox_linear_to_srgb(rgb.g),\n" + - " mixbox_linear_to_srgb(rgb.b));\n" + - "}\n" + - "\n" + - "mixbox_latent mixbox_rgb_to_latent(vec3 rgb)\n" + - "{\n" + - "#ifdef MIXBOX_COLORSPACE_LINEAR\n" + - " rgb = mixbox_linear_to_srgb(clamp(rgb, 0.0, 1.0));\n" + - "#else\n" + - " rgb = clamp(rgb, 0.0, 1.0);\n" + - "#endif\n" + - "\n" + - " float x = rgb.r * 63.0;\n" + - " float y = rgb.g * 63.0;\n" + - " float z = rgb.b * 63.0;\n" + - "\n" + - " float iz = floor(z);\n" + - "\n" + - " float x0 = mod(iz, 8.0) * 64.0;\n" + - " float y0 = floor(iz / 8.0) * 64.0;\n" + - "\n" + - " float x1 = mod(iz + 1.0, 8.0) * 64.0;\n" + - " float y1 = floor((iz + 1.0) / 8.0) * 64.0;\n" + - "\n" + - " vec2 uv0 = vec2(x0 + x + 0.5, y0 + y + 0.5) / 512.0;\n" + - " vec2 uv1 = vec2(x1 + x + 0.5, y1 + y + 0.5) / 512.0;\n" + - "\n" + - " if (MIXBOX_LUT(vec2(0.5, 0.5) / 512.0).b < 0.1)\n" + - " {\n" + - " uv0.y = 1.0 - uv0.y;\n" + - " uv1.y = 1.0 - uv1.y;\n" + - " }\n" + - "\n" + - " vec3 c = mix(MIXBOX_LUT(uv0).rgb, MIXBOX_LUT(uv1).rgb, z - iz);\n" + - "\n" + - " return mixbox_latent(c, rgb - mixbox_eval_polynomial(c), vec3(0.0));\n" + - "}\n" + - "\n" + - "vec3 mixbox_latent_to_rgb(mixbox_latent latent)\n" + - "{\n" + - " vec3 rgb = clamp(mixbox_eval_polynomial(latent[0]) + latent[1], 0.0, 1.0);\n" + - "\n" + - "#ifdef MIXBOX_COLORSPACE_LINEAR\n" + - " return mixbox_srgb_to_linear(rgb);\n" + - "#else\n" + - " return rgb;\n" + - "#endif\n" + - "}\n" + - "\n" + - "vec3 mixbox_lerp(vec3 color1, vec3 color2, float t)\n" + - "{\n" + - " return mixbox_latent_to_rgb((1.0-t)*mixbox_rgb_to_latent(color1) + t*mixbox_rgb_to_latent(color2));\n" + - "}\n" + - "\n" + - "vec4 mixbox_lerp(vec4 color1, vec4 color2, float t)\n" + - "{\n" + - " return vec4(mixbox_lerp(color1.rgb, color2.rgb, t), mix(color1.a, color2.a, t));\n" + - "}\n" + - "\n" + - "#endif\n"; - } - - var texture; - - function lutTexture(gl) { - if (!texture) { - var pixels = new Uint8Array(512 * 512 * 4); - - for(var b = 0; b < 64; b++) - for(var g = 0; g < 64; g++) - for(var r = 0; r < 64; r++) - { - var x = (b % 8)*64 + r; - var y = ((b / 8) | 0)*64 + g; - var xyz = r + g*64 + b*64*64; - pixels[(x + y*512)*4 + 0] = lut[xyz+ 192]; - pixels[(x + y*512)*4 + 1] = lut[xyz+262336]; - pixels[(x + y*512)*4 + 2] = lut[xyz+524480]; - pixels[(x + y*512)*4 + 3] = 255; - } - - var textureState = gl.getParameter(gl.TEXTURE_BINDING_2D); - - texture = gl.createTexture(); - gl.bindTexture(gl.TEXTURE_2D, texture); - gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 512, 512, 0, gl.RGBA, gl.UNSIGNED_BYTE, pixels); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); - - gl.bindTexture(gl.TEXTURE_2D, textureState); - } - - return texture; - } - - function decompress(input) { - var output = new Uint8Array(64*64*64*3 + 4353); - - var inPos = 0; - var outPos = 0; - var numBits = 0; - var codeBuffer = 0; - - var fastBits = 9; - var fastMask = ((1 << fastBits) - 1); - - var distExtra = [ - 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, - 10, 10, 11, 11, 12, 12, 13, 13 - ]; - - var lenghtBase = [ - 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, - 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, - 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 - ]; - - var lengthExtra = [ - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, - 4, 4, 4, 5, 5, 5, 5, 0, 0, 0 - ]; - - var distBase = [ - 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, - 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, - 12289, 16385, 24577, 0, 0 - ]; - - var lengthDezigzag = [ - 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, - 14, - 1, 15 - ]; - - function Huffman(sizeListArray, sizeListOffset, sizeListCount) { - this.fast = new Uint16Array(1 << fastBits); - this.firstCode = new Uint16Array(16); - this.firstSymbol = new Uint16Array(16); - this.maxCode = new Int32Array(17); - this.size = new Uint8Array(288); - this.value = new Uint16Array(288); - - var i = 0; - var k = 0; - var nextCode = new Int32Array(16); - var sizes = new Int32Array(17); - - for (i = 0; i < this.fast.length; i++) this.fast[i] = 0xffff; - for (i = 0; i < sizeListCount; i++) { ++sizes[sizeListArray[i + sizeListOffset]]; } - - sizes[0] = 0; - var code = 0; - for (i = 1; i < 16; i++) { - nextCode[i] = code; - this.firstCode[i] = code; - this.firstSymbol[i] = k; - code = (code + sizes[i]); - this.maxCode[i] = code << (16 - i); - code <<= 1; - k += sizes[i]; - } - this.maxCode[16] = 0x10000; - - for (i = 0; i < sizeListCount; i++) { - var s = sizeListArray[i + sizeListOffset]; - if (s !== 0) { - var c = nextCode[s] - this.firstCode[s] + this.firstSymbol[s]; - this.size[c] = s; - this.value[c] = i; - if (s <= fastBits) { - var j = bitReverse(nextCode[s], s); - while (j < (1 << fastBits)) { - this.fast[j] = c; - j += (1 << s); - } - } - nextCode[s] += 1; - } - } - } - - var distance; - var length; - - function bitReverse16(n) { - n = ((n & 0xAAAA) >>> 1) | ((n & 0x5555) << 1); - n = ((n & 0xCCCC) >>> 2) | ((n & 0x3333) << 2); - n = ((n & 0xF0F0) >>> 4) | ((n & 0x0F0F) << 4); - n = ((n & 0xFF00) >>> 8) | ((n & 0x00FF) << 8); - return n; - } - - function bitReverse(v, bits) { - return bitReverse16(v) >>> (16 - bits); - } - - function get8() { - return inPos >= input.length ? 0 : input[inPos++]; - } - - function fillBits() { - do { - codeBuffer |= (get8() << numBits); - numBits += 8; - } while (numBits <= 24); - } - - function receive(n) { - if (numBits < n) fillBits(); - var k = (codeBuffer & ((1 << n) - 1)); - codeBuffer >>>= n; - numBits -= n; - return k; - } - - function huffmanDecode(z) { - var s; - if (numBits < 16) fillBits(); - var b = z.fast[codeBuffer & fastMask]; - if (b < 0xffff) { - s = z.size[b]; - codeBuffer >>>= s; - numBits -= s; - return z.value[b]; - } - - var k = bitReverse(codeBuffer, 16); - for (s = fastBits + 1;; ++s) - if (k < z.maxCode[s]) - break; - if (s === 16) return -1; - - b = (k >>> (16 - s)) - z.firstCode[s] + z.firstSymbol[s]; - codeBuffer >>>= s; - numBits -= s; - return z.value[b]; - } - - function parseHuffmanBlock() { - for (;;) { - var z = huffmanDecode(length); - if (z < 256) { - output[outPos++] = z; - } - else { - if (z === 256) return; - z -= 257; - var len = lenghtBase[z]; - if (lengthExtra[z] !== 0) len += receive(lengthExtra[z]); - z = huffmanDecode(distance); - var dist = distBase[z]; - if (distExtra[z] !== 0) dist += receive(distExtra[z]); - dist = outPos - dist; - for (var i = 0; i < len; i++, dist++) { output[outPos++] = output[dist]; } - } - } - } - - function computeHuffmanCodes() { - var lenCodes = new Uint8Array(286 + 32 + 137); - var codeLengthSizes = new Uint8Array(19); - - var hlit = receive(5) + 257; - var hdist = receive(5) + 1; - var hclen = receive(4) + 4; - - for (var i = 0; i < hclen; i++) { codeLengthSizes[lengthDezigzag[i]] = receive(3); } - - var codeLength = new Huffman(codeLengthSizes,0,codeLengthSizes.length); - - var n = 0; - while (n < hlit + hdist) { - var c = huffmanDecode(codeLength); - - if (c < 16) { lenCodes[n++] = c; } - else if (c === 16) { - c = receive(2) + 3; - for (var i = 0; i < c; i++) lenCodes[n + i] = lenCodes[n - 1]; - n += c; - } - else if (c === 17) { - c = receive(3) + 3; - for (var i = 0; i < c; i++) lenCodes[n + i] = 0; - n += c; - } - else { - c = receive(7) + 11; - for (var i = 0; i < c; i++) lenCodes[n + i] = 0; - n += c; - } - } - - length = new Huffman(lenCodes, 0, hlit); - distance = new Huffman(lenCodes, hlit, hdist); - } - - function decodeChar(c) { - return c >= 92 ? c-36 : c-35; - } - - function decodeBase85(input) { - var output = new Uint8Array((input.length * 4) / 5); - var inPos = 0; - var outPos = 0; - - while (input.charCodeAt(inPos)) { - var block = decodeChar(input.charCodeAt(inPos + 0)) + - 85*(decodeChar(input.charCodeAt(inPos + 1)) + - 85*(decodeChar(input.charCodeAt(inPos + 2)) + - 85*(decodeChar(input.charCodeAt(inPos + 3)) + - 85*decodeChar(input.charCodeAt(inPos + 4))))); - - output[outPos + 0] = (block & 0xFF); - output[outPos + 1] = ((block >>> 8) & 0xFF); - output[outPos + 2] = ((block >>> 16) & 0xFF); - output[outPos + 3] = ((block >>> 24) & 0xFF); - - inPos += 5; - outPos += 4; - } - - return output; - } - - input = decodeBase85(input); - - var final = false; - do { - final = receive(1) !== 0; - var type = receive(2); - computeHuffmanCodes(); - parseHuffmanBlock(); - } while (!final); - - for (var i = 0; i < output.length; i++) { - output[i] = ((i & 63) ? output[i - 1] : 127) + (output[i] - 127); - } - - return output; - } - - var lut = decompress("#$6cTLFMX$M:PgZQ0uX#c3Hv3j%J:58NctbqUCrcZ#^pc.=#G_)_C0K)6PdZZKP0X+Aa=(i0V9/QuO-^mL`JLUJeIfW7ZB#F+q-M>)n/f_1tB_s)ew2HO[e.0^o0?E$(-_.`Ij#hBlY-^hjMZl*uMf6]jE31glP(x^K4T9hiBQi4p;(wguxYlHI^$:u3[D^L4r&`uif7UBV=dDJ%D-SkSvcri,->']48?P3kFDd-;XcL0-+iia2FtMDDQ7=<1jAr>%tk0;6*9Km,'6R$u@Q'3:-.F/9IFca[Jkqkb#aSp<`kHv]HklG(B>tr'LRbTLY;UK)o9N_m`+krq4wH*Zj.5TG[&u?9ml$fZWsx#`R=Qm.kJah+[oMCud1eE4k(PPNPTos_R#9<9H.BnW/u./Y'O$Jul.$4BX)#Q>k/TI?^DCp(?lf,Je[=KWgUAg)#AM'?Es=lAOJG7m.rk`d[i]#L@IMU,*lRc1ik%%.1aG/ws,O5RD2;iPaP)U`h#nLR1t--NV7HhSU1]xPHq4'S[WwcS'l$^/8eE`]6K&3AWba8CXaY#%/F7xa;#jn0[aA.0E2E/u/$w]HSu[Lw#k0ujSr%1&@iH85LjfdZCi7gLnZiu17>pjC@l+aAHqnBH#P66q?ULl12KxS)x;K>mCm$q;4s<2e(uc3.eqwt`JuNtc%YR4WW55Q9Hd%@3>Q/6qt5D46fU]DJ=?A2D5Hf20n5vU&x1-%uom[l_(wt#mdhq-6C7tgv><^EnZ=ujsK5v=SU?o/J^o0jlosUZfskS+-wpD.`njbMU3i;hbgFi'dJ06l]r^O2dx]Zxv@xFHbMQu2[k/v:^x9#.Mbl/^P.$SbB+1[BA'##;fp6711@`<4F+2u;-ftg^Qtmkev9x5PLd7uBYJ+N5qG.r>.Wn:8X*8tVibD+3Rk^a=`0fuqB(p1?#'XP%hWB36t65[?>>BmnwX(FWfO#BrH3%lLB2UDd+)1pGfCTh,)p@X8uITrXZf4vPg)8tw]+mf]Y-3_X9O$vHbe$vI55^se.EOumJ-gW%6eL#RkC?uSj:.;xGgR[fLqHpu9k@iL42+Lodf`o*owCXT#b/vwPCk9vBVK=0*Uke@/p4pWc])0Vl8`60^$6)n.vSE1uhi,i+r(AxDVQTBQfi%7Ydn+-K_^X-IoAEMH8XZ)oB&2rj;U8jnJ:G^W)+#Mn&rRKbq?RqZhSfF`mNs/,eV*o)Yi$sZ)vjA5n/qL<(T$?^.KX*%qjQ*g^v_5rb*6A8u,$?ek+3bMX@kw4*r+6QZN:F=tP9=E?'15-#ruGot-q>SKfe=KGY/t1+6,ustAEIBj+N]*pdaSCeN`e@kGc>#8Y@A]FUtsfe->Cp'm>C9u+W8LT5v#TY$mI8#_c;Xa_WiTk6:R%lcZ..P`;DTiQgZGbP13G;_P/viP+A:DPSK>0U4tttFM^MJ%+e*(^^H,v[qq9F[rC[DuMbwk*I1`av1ABEY'BFVP57,kF(_9v8j'ocNNCVSIpB0rrXH-L=Z-@5tq:xf_E^Ar$Puekh[Is:kDQGSrL7#eHOnm5U4H1rpW:9v@+B.qur*W&0&=uqD2#xsK;l$GNj@;aiOg.:+ZQAe#s>J1d].Wps)G*tWd_g4_u/04Bo']t?'A(t#Ha**R[6]m-mC9u^++'t?RZvtC879[J=g.:(alXN6dO=A?,reL;Ot'S3:YM;X/FT$^7#B7nEv%S3.v%#eFBOJ$+1$VLSv/pat3g_5JoGJ$'U6eePcR,n)R@b*6qFr;HpRprv_g]SeUIn$6`,v/uURnimD*vS#^YgCG4.(3[(&#rYZTV:Y/hVR22AFVj>'s(@J1v9hFGI8O=]sm3hUUw6hT0.lGiKQYw`'+?uR^428K2nK/U&7aHN<5t0R.^r():hQ.37S7u9BRevHOQf]EL5v&0__6jF)mSkb^[CWebXYSffNt_(6x=WxXTsI9SrHsCCdNE'+_Y&S1Um4#e](>#EidWMo@:mE)2hLS[Amd:.]s$h&,LraGiHX2qmk1'r@l/htZHhq9am7vwWl1k@YYaQ+9$Vm^hs>BmfHhuPVvhaZ%)=Y4^%'fl2aAu?14?+dj?U8,HZBpwUwH^,mq9l@`V-LYv4tGvi*CHq]%6H$-x>JAmd:l]&mTi?>8tuaPm,m&/'-msCmqnpu9X@-3EEE&Z(:v#Mk[hEmv.($s^c'*&3@ubR;s_FXU+U^dY-qRYgR/ruaglI-RJ6qbiRVib?eNqvL[*(gtR[?>5]F@TnN4t2>^3[U*FhiTmR%&Uq5(G;N1g5rj5ZPF:Mq'*Z/t9.q(#g3c<(nf/>te[UeL=i^vt<9@8v:L)kV2*'eu-s4Q`;>(+B)SC;$F>c/$Pr42Lj99lfpKR:$?&X/u&tRAd5X<3#c%ouk9)w;eeWVUu$J$%#V..75%#e&qI<)YlKh?@lV5+Uf034<7%e3YEhK:`I?t`=lSnbNF,QB^Lq_%kcX,i/:fWAlfLUDF`%`_PA-ECS751Xi&+HbCV2;rs^*Gml_YcImD2E+xkC?b1os1'&Kb$c_1QDr'Oi]YbHuH-p.Za?,I0.P[$vaI85aphaNqBk[+i0qdr>'AwF7)J.]tTjpku(n-0uwmesBDpIuk%e1XA;*4[R'V/'>uX-6Kmr5nVC@rSoJpt)qA4+OE%`Z&8cD]^'e`,DuY)d0CtdDJ`uD1FZVO=aK7Y/te';h.mr4IucuDx:D1)i86?,YBr3EHr),dLf#T:Clf>n&BW$n%KXRKFkXR-]KlApAcK.)Y%R?pcPnEvrj`TSM&Lo^pGUFRdmjgqjub$c$DWXW=Yl(N8]X7vmnJigq:Q0TsM87H_Z+.)*FrIAkFiTL,%7?m#pt.DI;mCB:5f@_E`<1(69-7h[t'9lFd'Qe-cr9HG-WhQg8i5L_l/eYsvOv;t*MQ[I%tS4f@2dG_HgYTbc]Wf7&XX-wW6`9$.L;EMlUiA?7v^3Yj1TUhx4mj,9tXmpGKS::J:-Ev[U+0XXuH0o6c]Vd'vC(,kUHP=M97QX`/8`',v-uR9VOB5-L&x302F'N2(Tu;u:F;G28[AteqT73L[rIga^-sukY4YU/5eXu#dpr+HTkBmA18DR.b9@+k+5Et?`c-*V71]FiB0e@4TdgOJU6766fx`me0$w-##4@YK'1^OcZLS4AjQ_nco?[6a7ae#v(,<2)9Z7(+oSrdd`NbQvMB/Kwi@gXPi-E$cn3.5N1nY#Og]Cfi;vc7nr.Omq9`.BMsQshY9`Zp]3oH29f<_4shguBrGG#b/k:uZV$,/?$9^Fj)2%phw5sk;6N-BlWLuFAU=&v=BIx*J=FAk'pVBiSE1?bAXp[OpDI+o/gedowI''B#poSNcgR3&A>cvJEGcHhg1`vmMljv@-RL4)Lf1F/7uS:)e%SaNAL46ONvRBJ5U*lJRZS=K6x('m+[`t+,.isCR]hx48IPub9ruZDQwpugIUYCCu%.$vA^o?dG(Vq1tr(?k:ElW5]Fed-wU(5:(9Q?./(@.@:vNcC.J.rubs#,Yi9[M*s6YQ9OFd[%;OvX=wq0uYtAqE)SUgSJ([#n`7v'P$*dP:54vfw,1g]o27ULg1#noZ@=-]52)lTa*_sH`s9r(xUxK#@hV]3/Q0-ueh-G<9>6sge5G_vdG:v:vhOIaO%VmoF?TpME*h>qXU88sIw@Pft`5:Wh?hE$HuD2FLoNKiflF#-7h8v;2LMqk-FgPv]2.:8nEixW7v=*P#6oSC(504]30mVY?qTBs6]4V^SttvLbS`j+L>=FWcmK6XeX$i77U=0#v[#:S7*4[=7OA_O#vS6N7T;#0^`DR:#jH^1uKH/,D_&9uuJfI>s2N-7_t0ox^>OLJq-IBsKLVOI7KlF3K'-00g>GgC%J`1fq>`q;[C/4@.'1s$b6f1R@b)^sF?MjK9mPbR58M[H`aP2Ff`$v%qg&ZfLXaOcfW]HgY,El=5dX`UKb;mpaVI>MR<-QfqVrt44RKZI7e13=juS@t$#*eN''@jaa>F7@i<1ob_9cjf4ON/lJ/BAuAl`%i`J#.w+O3dXN3L4CU_C&d9^=?h#q-=O7n.MgO$a.x+I#<1'&[LqjEx?@'^[SZur[XHk0rq^f?b>SGEeq'q,Vm)qw(.sTKo%D;EbRh$s;Y(GF#kE8^L28t*eF/)N:BA%4G`vmr0-]bJXAVn(S']u^9=cnK;j0udC&Nsdu[,a4Bj,2V?tSux,DS78wtE;DmF'vukAp,./k/v@h1[G96PruAu=(etj[WWhv9mTcp6BASQa8v1p_XcCZ28v[AvpSb?+,v8JT/vCv<8_@XG22ojZBk5H_=OuXXE%8vnb0R[$w+kQKLieFLJ61bSk.:0MYln_m8CqH;h#X-Ac;gohh9[JYiTQ?p3-l#ffuF3@G'V;oh*6YcP1a)Li8U;Ac?)G'bn1b7t_+E=T)W;u]B[Qn*_Y,Fk3l5Hc,<'iGH5Z7w#(OKgWef;Tx+Cs^cnguV]r]dB>LUV_bN^]/HoSInV^:mW06#cN6:lAN:Iuci%EoV@h6:lweXfaQaRP4WpGJug2gl/-#1mn8.-&fs#Db^Hx-8ohGD$mn@JR%([pjfpBhwt:i9eqM+J%bBrJG6s%+;uvJt3oDWQX/J(o1BAr3jHRJ%GeVvrjArSnR[#i-rI)K%t^kO*g]?skRn[Z1ed(9IooG^%m8XB9.(>hl<.*NxSn*=SL707>/j2lI1=oWJ[4M.kl8s>-c#NE's`@bro2TNB)W+s^)dHD+%$607vTW>r4L,e7Qtk@_aSW<,^k7Y=*ad;xaoK8sb`Km?KLWqd6j[A*wXXAqA-&XC$$V7%xG#/a0pDG>agiM3]k9[5e4'#75aM)[;1]HVOL,lx5qM$If*-N;ruLWk)_,v$@PPE:VPx&JIRsj4uK=_KuKXv#=0EHd=6+6>x=1.bv&-3*h&<)A(Wj6<,vGZjlEv>>]Oo$j#Nbuq5v^qaV7+,>lA-Q-ZKv?5_up4lx4-4g9`iDD.qwxw'.9+Bot%;q(rSSb-$*rMdT6_)>#dG>KutchSaJ^Jl7=TY7f#jaiku$:AoAmT<(hhIXm/0vqipR%Qqh&n/EEkSGpJTamr^i9%3Kn%:$g)7v?UgK`X9r_>)taI:]HeIFfAF`3D9:^SP.hlIA*RwRfHR4Htb;0lC&dv[mrZWl38Rd_a%;*D4&UwF4f]pOvhc,D,aNFox+rL@Xu9Tt27TXpvp:ND1Sv=n#tfgAI6?VCRUY5_mJq<[fE:)f6vqmA@GIXV-HRBmWC8cQ/Ud[06vb.i)mSL_8E'Aw1a>UGVmIPh:Z#43UuXfajo.UclpeSx1spV;TRxhdSJN4<4e5GZ-r4b]4-$twFsBYD%JSsgCMZp]-L+@uo$l)kI'R;7Cqd7f##E)j'59%f2]U&&.(p33T_=kN7vQhr%$GO4$1]A2&>,W7)*Q3g)vR2(;?7+L(`Ve7]*,coS6K-xF-NqCAQjf'$#cb/I]=9Q$7vD^e8vweDS%n2IEOsbQ;i#=sP&j>C.(1l_Q#<[S2^-ME*JY0u@dx_w4(_O,#5.L]I^*krwF1$=17:Nqr?c&Q^AK]YEK.*-]T&.Miu60A_A^Ugc4b6SfY,5PCLmk;+`AgiHJ]G>94wZP#(u4XlUY7u'G?0o?($E,DIGH41oDaC'.?leSB:#Njie.lx9cJ6raH&0*uYkZE2eQNC_nN`io*6LfemR7c=AKT3#W@,?;8UuxeiiGd`h8_6FvXlj_oNqNj_1uBjkR7),99J+0@6'TVF$G'8rOr#+]Pq].MQtBnPdZm#aqgU>;d(JXk8h7K,:v-*Zb->xSku(gG.3OB>&b>XqfsZQ%e+HK:BW^9947WVYc7G@WZN5AX:doK#C_jhMQhft-.L@.:u,0#qF0Yu:Bg[Kte6a?eX5()0]F#vj?6n'cDYaJI9;Pr64:rLR@uMJsNX]wHGprCjb0([u**h(QA'_s[-&)Nhpnfe$XBjPrL50iST@c4Z,1shxYg[]En9>._oP0Tat,=H9gF0q'fVd(P7RrkWG@AI$c2^)@ZqAP4=jshUuo/ZelFERw^H]^wZRHmfa=M9YclP+rbQoXLKu$?-]42fI&5m@N,L#K:>6cH)Ju]0v$8v%Qs66MVG`PQP2r;xS6vnh+qeE@CX2vqH6#h5)cKLr^`=s=dDu>r@:-xi9fUROmnu?r$boJ25vaT#4a5FnAZH-F)=:AdYeg,;4kwp]+w]kpo+Tk5Z2hLToq/:'Y'YuI`0pK`.>+%HhQ4'DIRr6.97nl>X83R3%C[ceR6iJ#a9kJZR4ss^N/MBLqCs#/RP95pHiV7G=VrKaRu=?Q+nDu`R+$,'96'$-uA*iFC_,D)<2cWF/6Q%tKiO$FRcV*4$d+Uk'OU.A-M%L$=kT/7_ftcBN9awFVM7Ck?-:AF4j^[okHDH.q[SL$ZHJY>bET;fn7P-btEaC'NUP-Gx&#&fFIb&I]#J.ogkLg](:lIMHV&_OwA).0?(6b@`G#[?[*uLrFiKfPCqH^h>Lqv)ueUYeF)6r+.s7COxFKcOw9Om(E$0Em(rdMp1&$m,8S%sPAn&SZL9.8[O^t4mRh9HT7k:P;)It0f=k4FaD#-v^TgcXTlYu.x:%NK0e%Ng@o$=/M>juM$e:dEmj+UPG8^amqH(sW92HqdBW##aE*JLRH%SfW)wZi15Z.<:YR(W3)O=^dxNHr>(IwB_aSuZ*JXT;S7YR?(>Y>jWK1^MS]Y[a1vux=aqg]CnWoT-vu5Sbkir0t-WP,3@b][Ocsh]OuYIOZDm#np9kR]C(E]@sVUBs4OeYpd&v`Ri]arMvZQh=;Q/SMR6BJ7L=O%T&`,Nn-qoNA04:V9N'x8OR=1d<0GW^XxRA?_3O@.6W7lUv)#'*,Hi-Xi=G4Kl':W)`1qJlavKP-k@MYK>/*d>sk?8Z2j^7r;YaGa=lF.OU($L'$O(@b=uOvYX%10Buf2^w3ZJ&57/uP%Qs3O.4VTLHS,'V=Ht^.hwk4&-eQVecDRnmvN%(`[M-T=;LEn^*#GstK-(rZ,%+eNd]8`khSd3RJfi7TGGgxjt$WkafC0Pv.sm$asOcuqdjVVUe`tS7QK3/'gt$ZNYH7)72c9sa2GfXF/ZB4&/c%VHE[]`Xcl%Gn_oKuuuRp'0]4C6)]sYh31A2xq-Q.bLZlTPM>Q=MAUQ3^_JAQ_&)aA3e)ZhmLIk-q42'$AJl-di@#+Ek`q^sLX./7Qk*m@gHQCV?:]1['uLmxRsF*a*cUjbpx7f@&#GB0St[V0tn5:a@,2P/fI#d+C0vHL-42x@Aa7N/+_fhi5MTMj^CgxRA'l@G/((VHE)([;A4r_'q]dK'5o=YlX88t/(8uZPT8rRgxZ%o.Et?'q1u]7c?h#G5cQt5Aq,0b`mogxE([&d;/xkF5cYTA:E&s@8wOUTD#[D#L45r4$';$kQj0V+q,es[XR[+oAk8mY(%HH>SZ_R4u6W=:P21Io87fpNvuZhlq8T[cG@vfVRt/NNg3'q6YXo5d=V(4/DbN(lCSnR_0vaSMtlNXbMNsuM7nB20ugvUxL7Y>L9Y'.x,=pQ)DnF=m>dqjvbNbV]ll'U4-rN&c)bs_+-pDXb'2'ghp3jvtbZ8S4lHt%r5lVpoqDGXm[/>?O%Y3l/Rik=1(q2+UfXIs>I0,S:-`(q//TDwfs)RY+?k$kC`3K;QA1]kLq=K&Wq-->DF`YDVq>0F.9Br2p^Wo<'`6%/L$JkkZL@^eY^d3LQI4QHiL`a-$&3l7Lcud#p$i6>)W*=+,?-qP+xv8Alu2G:;tg+q^geF#/&PV+o5V1f8vp[/r>S#ZiL)l^Kcm)*B#lGUjUBLLv/A07Av`xZJEX+$eg2jO&$HbK8)Sf3->LHKfQ4hJfW:MBo)OG)F+?F7-6EYP04#pLb8$&#mESfs8Kp$#LEUlJQG_o^xDHT<&(S?s-Q7@FY;8QjZpVoAk8sHlZ;Q5CbGR)<+9*/L=2=r.GVao@5qOKYQr@@E#v$B`4>0JU;H-axpV%t_L2'2dke&(eaflGO@rev`G[,d.FlMDPn^?*4AuH$J7v0(l:QWgJi]6@_c7J4pWdu>lP5an^Sg(52fc44uLgr7-&-Umi0fWZ(W=x0w,]@F/qVRZ.abEA.qf/Dm3'as#g-p=_/(^c/vjR,iKOg8BW:0mg/m<2&o3LGOH,,h8'`NoO038YtoY+^$B^rwkKj6#P65gS5qJ8(^,q`P.(;w.udkdmsIMD)@6:Pc<>7bkbN'X6?6()qW,P1R%g]DOUVD#NBmc8>Z*sKh7L=tLg>j]h%F;VaM50)_XaLn+v.r'4cBPuf;gD`ui()xBrrZ'f5D%N$fxUs/0.^nShlHv,+kh1/h$8.8J_ZxPOJ2pPT1bSM9WK;hl,UJqLr'aY1$)hAh2fr)us/[##?.S?YC[^HLKm=x48HvVr=U&F`vp&Jcha=hPUh0ZqSce:;+/qYM.HSu+JD2?FpgR&'7ZTDN)B-vYcfeqjOer;,KF@J%ux7X9&TbUen6>U4L;:;sqO-(JABcH)Ha^fYxs.#N*lgik^iZkdYY+W-dW5>7a>*EHP,?@7bD*emwHEATWn[=?mvJP$J75lF@>d[o?D5GjCHFr?a+Qt$uNh8-sSY&VLv9K]C^U?MjbD(],%wu*Av5*u'r8)99lCDoJtY6C*fr/J)a@bk%@(oh&]HQ3$vL7MHSq'Wlca#5l#%v_ZT6IQ$H4ep=)b*kkfg?wI'%lsBP?[^C(JmrpW0brYH+wJ68.Kd>)hkTW6NB>5(/TspSK@f^Za.g]:&MBqCjggKkdAp-JVop*MrmCp?5_9JF0iY6pSNgM3sEk$iwiU2?-S^=Ex^8]P6`XHm:*;ns,9hh;T.(-o[)(BAAwL]@iIEMdB2u=q+;?jMsbtk0&R<-A[guLf.h$`pNT^[7,Sn_XZBP`4j[HS@+G`Rqnr6wSprFl^T?#CCZs1&&I%@DAv:X.urVvBQ6#DfutXKu,b)SH[I?[c@;w3/a]c`Ef-`aHV9JJLTGXLmhsKG@Ns?B'liLWjIbg,tcG6MTJ-;5m'Cqi7ACreM>>$@k3$PoDBeo*$I,;*Z7JM,dCUqMLe_Wj:X5&twNl&i6msrL,ISZ19YWY<-ah=u_A$BEx*P7Ue`bdFh#4M9#^jbd[%FI8B28g0-AjK4N0x)sM$x?l6+M9`:R)#Fuq1q5_&wo5*G`E.[B%Sd,O#BPec`<4Q%leDWpP3es%],MtCj2K,N)DaEF;sIoNx)>%T9V3>$Yu]qihWEnqE/S8&5gXK3M3i[HqjC#i22^K_K_IeB)tgp8r_@oMP4gbD(lU;6/O2m%nRPUY9-kxKZQ.Ju]D::95i1Bk:O*]u1rG1n_u^R,k>X'q'KcOR@Waw,Lks1i`B=pM$TmE`xg[FE`[d^f7nLru.W?Q*`hiEImxUn/CP&;?EH;$:fZJdFE1CNr3(Zmk)nUJn2WDL9?F%fmIfumJf=odJTeHUOVd`'f+H&:?2ZadR0C/bDS`&lUX>Q2nW;>oO/(r?f_bj@k'U]''u#25Tc;Gt57oXX&7MCI&I%U1d:oS:G$VuG#7iLh-d3Z4WYjBckZcR*[=-B071fpkqfsU-wo3+YH)a4i1^-qC*A7PXFLor:.d:'_$6(P10B2GhJ^*M[kD^n_'xJb[O@b[-([(;;^pM1mVEogA'qjGOQgV5M:Yb?_5mD,?h2ur/*2_SSb?<$&m[5xSilEN,SbF?ufRGTC);V;+JCMfRL+To1%YuHlT3NG9@g&TTqvuVrM_1Rg$9%hgt/*$V[#UBV7rTQV^kB.cJIpgN?CH[^hKRviKWBfah64[vGBhBj(i7s6g>lI+kLfbP+(H39.eO+SQx42GG^,]iGQ7rYgl;=l5aN.fouf8[-<7rwEmLke++^>Dx7qlA^nP4VfSYcaCHh#gcX5sI4Du()Q/mE2u;$gqvY4YYKWG@f:9b`3d7L`<4Og)D=/:uTv]`>LPlHsX=A>xti@G7(ij9pq3igfuEJ@_i=1deU$&s&jH2e?MtIfKw6Pas^p#aqRPS/&q*N*tt*adJs9X,g;ag5Q[JpEs[jT5v'Y>,F#n1[^AMr[2_)V's>Jwor4Z-(vQp9lsrd9gp?m1EInd?aMD)57vTre@r'[:4sQ4hm@>GI]B'45:;]Jx[6^X92L+#neLe]_g+'eQ:btJ'^^)Up^@aqSX$'JBaKFf'RO.KK;MUArPqKUC<#N?U$(hXR?#:ZSeAp,u948PLd*L-M?0keB;%0E6p&>,Pw#+QW%oS%-i+:$7qW_b$okx;(k-;001E8pqwDvO-6+pVLb@RK9k-I_mE11gF$g#cO'8ZZ/H[p/,%+ks_B9f%[FtiE`8fLP`mh@XL`qE8pqLHR7+gLEh8i1G=Ee`1iwgU1-GGK2@l2a>B[Jj*2ZUp^fTX./,hO8_]81LXDL+MJ@fY+K/9RnLK&($Qe5$ciN/PrTUQ0LhAG%tb,__CG/EtI.Y)6=5;[+&jmUVt&wQwWJnNgla6PsI$Z-F74;XDb3ifD+M,R/V.u[0Ysch#u2RnDoit^777J#jZp0GMr^;dwKS.Sq31uF?S'd*u9P]R7^2P&:A+:H?Tek'u@Cx=#$E#9HIaq]s/;t&OCVtAuUOh68?]N8rOOc5hH@,972KM-a(I1i*tB[]2g&03vc7un&E1-he%hlN%7-XwrND^#FFA8`+ij%`sI]jZ4'Z^QtvHUX_SVRUCG:6jF/g;%u))8>Qaq<=$HFRT`wK76INocJaCN-`A*SZWfUA2KBIwbhKI&`/V8)5=7n6XAt5BU*K42Ska.FOsOU=i1[Y+H`3(GjSAO[g7v'fAQJeCV*e)FhmiDLR.d?QT((TTp`'q6RQ?5;-Zp*Hu_V^8-bQ=ft6(NIhh0@Q-AQ1Tr@`'Qp'T5*;k*fRSAW'ZIDS=7ESmBZ#o5;/TKS4IS&HWu#K66/&e9VHo*>V-?cJE/k$xH-#*7_36$F-GA5qT%vFl/+h9An`aHE2tr59:[KKm6o[ZViD(W)_eS/It(QrtBW%_0tUf#Mk1VUr<=6L%B6757#H:&5IIIu=Fo/t,q)>EOjl]9$nPWB*M1J=Of,E%Lh?4A4/dY9Mhvl[fg#DC8=fdS$wIbR%558wQ^eI.s^[X6tA2LW&V^^^>jJvn#,Q%?6(kIE[^KhcNM:G(a4*FZc6$,6Db(6/s0$XuG75Q;#793'b43HY5&<2%uIAN^aR43NjERv%+BTevR2qRHi-elG*Om1[uKJ)-Q(lu*=KtZNr_udaj>J,(Yi1(v@QipaIfb*i%aF,C)g*h6fj]9;#sIir]jeT6XjHaBKiar%YPmhC_nNrvPe)86PB+=bE0#=DNpX'_kHI58IH@6R^n*,FM_X(j98sia7&8(n3K:OOOCcssqYMH%tM_eC7^s0_&m+fR7&/WYgxSZ8b*tG67]dRtoVQKLKdCrTI6:;^J=`*;-BNmIovRN)qv1+[juSoZK_<3B6J>(1Ta`O2ZKN;xt&$6_DpFr`nZ''R@7*w8G:N4PJ*Xb:d^34$KVxYm],Z54W4fpmtbq2Hpe_^o0ik]PAnEfFiR#2Vr&ijY-j@pRnVOpCI)V+Jt&AnesdUMxkf3YxFDHb#[RDuX#4di3v4tU0v>fxX*=?H6E+=j;lk)^Kdts2fMA6CAh+dP#vup8#$<-E>#PqoxKG5LA_F?Ho7QO]ZgIrm-(j?ZRt-8p?)MA`2Krj_l-^9`8gfJBJl5Y[j<:')MMe%+D:DCDAHe5p4heXQ7+(2FuwDCB72i^Nkom9]/PP<)s,`7Yl6eFm6W#eI%S&HE6m>T-kGed?JQ_X?BrV8fLHHtx>HUY*Bc9cO7]up'uWX,:-qEM/o^)H2fE1]tU-M<0aFq-:SZS5W,S#0>6@<-RZGsFH`<(>$;*(NY8=$@a>R.T`f0nI>03l/UA6&v9[TJD*xRdCnc[a*W,5#upJcSI`&d=N0'.8[[n.oi[2_:b+sgoetk.gAnS/_Uxb68^LLB71nn(L-Mc[un6AauH,K%phsEsnFOldkM@8MsuE_a[CiK+v7RhO$ZSmOs*(@5`BZkUI#=4Xe?'SWoSsW2jGJf]B7f524IBul$q1ST88VQj+`4^;@lUb?B*mIL9f`P9LdGV%%[Pk&Jo0=lV#O@0#,BKivAjIBYZ0N*hYdI#G;IrMiPGk;1.=OPIJD9',$lsKNgAp*.K7B)8V#4t$?l2E#B&=b6Mg4X0F<2T^@NOBsLuhviTVK`M-M7hu&8-`?8%?v0okN*$>$DGM9v9M.&Gr=Xo7#VwYZ;CJR%v7e%BuEmou4ot'8E;5`L(_)V7d#(JL&:joQ`&q;:@[loua.mPFOv/aivui*SlEH%bQO[mX)YY/((:)n7(K.Rl2F#i7^2Br$q*QOg*t-RN0pVgt:F6p&Lg4aVvna3S@wKm:jn/@I]O7RUil%f>Z?t%rm519n=&llLsl$)SQGpfQD2oiQ^nmlOA@NTmSa`Xsn$n)=1:?+k:d%RoILG=tFe*Fj.vB31&cYu3dqck@bYm3jm$dW]e=i8at]Lp+eu:`H6Bw0YHQrqM,>4k.gRlhxImTBn_Y*N@@i]s$i`xg^0%#Zm9tn&#-CVYF:6Wgb_S>??if7[r3$eJG$,;nS>DUqBBTesX8*Pk##*auh9;cU5O0k$Y&65N/*qA(F&K%bMn3RfV'OB,-VKN7_dA5qflr=I%)jH-f]j32VlV&F'<<`W7)c:ZB@4kX;60P%iS&t:X6,kBia`$r[1l^]ZRjB7hw>Q%:jhV?SW0;$UF(N2E09jA&pD)(Kg4Q%kH)FBo.%:3_/O'LV_j(E$ia##gRN@roW?S7XIq?'`4-;$iZwcU8-*JV&oBcoZpBIB5AFa>='YWLXgC^ghi;f;&Hc>>q,@k8%;#GV8?jsqjx71L#g=guUMK80l3tGi^d_b8C#SA_<+l4UXbTND':La@b><4T@lL-gL/FnpVIcZmke.YwZo>a9MN`/gY'K0aHKH+)Gtn6rs5qumo@b8>#Y8W>-cU7$B6N(;$`n6p&mNL-(2-X-3$bJlHTu;6hB-[EUbxH).(NLe)2Dik_@41sfk$>&3o/a2vneTsSe(A%S%mQQpuw9h7[b#A#MJ$EUE7K&RlDS'.vu(?lbtrGEg^v/EQ7bia?`QqxCpm*2N+3bgxl?-fChg4'r3/Z%b]&UU%;_tN+;T;6vJx`qg<*Jhu6`2=JqnW)INqUnuA3opt_k*ZIY@`^oK.fwk(E[7Rjr2ub]&Eo/>0`=Ie2B:4nT,63-lrj'S&>,v^BuO^[(Cw=gR<7GNv%)bNH'o(Q%icX[J^xL>#0xw=`JuY`%jIeO2>Fv48t^@;Km4hRthaN%b?ctY*s(a0lhw.$_;+2M#l2hw/C4m1KirlWC'(HgnVcs]8oQ@&SN'F'M;MGE=(Q%Hu?-u/*_$[KrC@s2'Z6oaER.I,$#R51K8n_HDUHb'GpO[mef9P3ZnM&On.Igml^9ouXASm7n[#ngu?bC_adL1Nad^WZ@[rJ$91MD]*.C$f4MEZWh#B@^7(#cWij2qr6CVA_KA4H0vL0Zs4FK]`cGKYxDD:H0veM)v^@XNS%;EBlSfTb(>c.Q%u#$0lf;@7;kJTF%55WL[0#WlQ^`cToaF(BW-OJmM5>@#Q/D>`EqtFVe.]<:LV&cEm<^7OrQxYS4BLW`efFgT.q[xRkjOQ:)JLR0=7]vVE89W36-ds`+5SR&AQKq)d*`6DwUQQKh*oIcK9D3p;pspFunE8gU2-bS`YK$1DW0a8v,v2$M%Qwfb')O>OwYSu7H@?.fPPvh^ZM4$sZt^a>2CFtvNql.ouGMCZRfv.$:vausXuQxH$#seb.L'swk7M+pSUgmxg_`[gu+Mel']rp2d.Lv?g7R)BWT[6lOYu6M9(ael-jLe%AHt)f+7uw-%;$SJC'o'troSrM5A4vo(M4Y6*)<)0J87EZ:mljt$gUS(x'N'*[Go[MX;dcek>@RtsPup-vmogl$]bJx@kN0wFV(sY5J9iZ%uubSZ=,ukHV_+*k/e&3IuE>W6`C$*1$K6&xke+Z9),0_N$=08wpEntE#vgQb4BbT22QtXWY2ftLu*Llho_JGB#Eh82v,vkP'A&EYKgsJrrEJ@xT7([P0V5/?<-E]Hs3G=wU?to;gwlUJVxOKZb;Ac(lLKdS%`v4?*?9_UGsa[0-X&L*[r_Ztl_l-gNB>A.^'A_'qw&x*MufDp^5KH(vm33$c=J0;7sV>]=R&Z'sg3gVYbQhY%xCluu=m0GtogN=l[wO:]nXKlAa=OYt(7$B-d'<-#Jr6&vjIau@Z0n7R9auA7a,F0v@k/8vI]-r+sw]&L2g].UKdGo+&ZlmalvV;[2K;Z'QG>MpcV.7Q=]g4fkXGr,aHtN7g-DXBJk_JaIW(7ie62JVMK-PRg&1;H0v6<^4Md]JfD&Mg^]mnTl&eM6hG9sqMKDt_J:#cKl8kLOru*mQW@VxTKQ*FI_G%N^k&cxES%N.PMtYsi+D+5l:$g*P^)QHQh[9eq/8herL7_0@#2xIIV%aJF4A<7PHr=dxS4kWFAhoYB4fMTHO7:7BM/SefouHgRL7rvj8T>jp4bA^uc*8M)%Dk`:.(nfsZhmI>H7j4wZ#v_$D@,Ngffwt9iaf,kdrS=h>bp2,ljF4?&v?.Jb)TDV-vrTX^<^fv:C++0.,@fO>AWS$gUBA_&#M3vB;2/m^rQ9;qNWs-$u-GOmO`a4B#Gm;gb67DH1KbOqG3SceSSjQwp,)6mYkN2BTAm>QX&3)PsFPY`J9-/Nm,i5_QT^JIu;=Dwb)6hH=VJB0jM#FHum,]Opt7JTZcjs7If)0s'*/CFX6/m]&utK`aoK_sTu['E;KtR[W9rV2[Man.-O;I2V05Gsdf:5%b*MG/$F%'kF,xX'v:8_8J_6iC[7_a[W6`/q)pE'cD?'Cd>pOMO#-1])5Gk9gC$%-R#psAmk-jIh(GP=%c>J,fKbs%k`Z:AbI><_r?vceZa'@sb'WcG?-b*Q3u'x2QnxiTBYNFSw1o]#I2b$6k9:,[F2+(@,;Xd#N;kds*u&>oAOxihK#FVkCr3amOZr:/5vF/ep4a68r$v<@I,)6HWrD@rXr-]%A7G+Yb%,?F>uf<[NOYG(tm*rZ6Np`O$rD^DfLGn+37fVHCVilJ^UKI=+>?CG=a*r'^*HDduDXvEdA=h7a'u86CLh7_7jgQaAoH;6weN)Xu#IJ4pK.pLPceK4$c]OL5?]spbnPRWA53%0,(/>Pm8-/pu#fo8tuDMw-$F`'4H#=2K0mwk:QgbJx;$FW7mw_6P%g(pVe3'YRLIA*[r.W99O7HMCXgMglu-3]RKttt6s1s?%3'rH4B+xkjH'qs]-*+qe*6D;8X8MT$3i`#+VNmj#;cqJ%wU9#[;dho-eqC.^x2jtE7p9$7i`g/&2:iuA3usKRY/cC2vT_a;GL3lnmx+IhCRd7::$T,29rSQRYK`$=qNh$UU%AwBpYQ[se(pbUQ%8--:$cJWF2:@xpm-vpX;>0KUMvm#[A`a`nR^#4IB8-f8dM(l-Bk02fS;Z,U+:mhv$mXp3TP70P>W2=N%:vdot2vBkxI:JL'5vE[$VUM;W&El0clJ[rG;[EI5&mrm8;HWG]X#qWLlJ5#O_s]:AU*`T/:+L=aAQYW:8KRtH'tNvl>6*neS@mo$:1S:k8-02a-Lg.Y9#KYwI_:_4ft%^8:'W6VoN,:Evo@2sZ/NYgIUX%^,u-IDF;EHQRV*.WU(8,(9vIO]TDtWZ+:15]V24;X^7`/BU2<9tfrT4os[f7w8vxI]lOYk>JJZOCwSrE+Z78F(9rQj>uaaM5/$_XSV%NLd=6#oXfaGEE>#:`0&vR4obgikIi7E5C0_[P;?nOLvj9Q-J=AkI6oO1U6(vs>,_^[b2i[JspqN$iD_a9&$&++*uD7F/Thr+U+N'kQ.$lb=/tg%sH7Cq5'^,j:^FiR>`up1U]m&Sp_`Ti2LY#F;Cs+;Qh)#f7m%[ZW<[$2cBqsCdbJYO5NY#S^*3fl2]+vjh6;Fi79-L`wO0L7YN%(dxq1vZ1nh/@:R.18p$EdE,mkS46HBT)lbhl`kmcEpvE=YodoVuRbclc>AtO%kQbmkbnX,lfvaK_b]A976PIU'BeI>?$Yi<&u2(N;%mLts_[I>?et&%sDgb?,Zp5cuLKl+sWmO%=+QkvJ?Mf?ngW'.(h8O_/%EGJVs'W-(a@Vnmbb;F`qVq7jdZmct'.6>n.7=cVCqUPsmXqo+3B'3u'>6Caq_=xkZ%HZr/M%_q[C3tZ_k-@A%`j(7WgM+LEmqwKL,$-#Gs'.v4FCpGYnt7G8]GOQT0[?9-IH@^X025JB=RGVU?3'J@<6&#eg/)7Y]E^K[4WXtF/0_/K'3hC1bq-(QTbH-Yk-,XOtljA6mxYJcgSSVQB$,]=cUnu@LeR$`5NY6TGO^L`tDJq`Os8O.'f'v>6>>`@#_@u_BlXJ7-uXn1Axlubu;^vfaASp#$d)mm'Fp8%^t#Kotka&KlQ,<<#:Z&6vjk_mD=jF-LZd.oUrmfQCKMF]H/*,Ste4jK.F#,>tuZExk7OVW'WF/i%P`JgcJ8:IU^$hGUJcrIWbbS)(+k:Bolfs*?bqjULnE1M+Pp6Cl7(pPGfL#5sed_o6FNU9Z%LPM^>[-`#R)K@iVfqC/](Db(qn9ixq6Dq0J91]kpu&O@0Gu+rle.8LPqQ`1&#;^Qm88%04vL)-56:W>wH?kS>eM1WhA0.H4v1YHX%/I2.J^O[[*1QOIM#bSlrB2NV2?T$Wh*RC:vY.0-mslP;tK/l`eJK58q,b6=&;QkH7tgGTCmEM.ht]sMV=6X0#e,/;t)/]NuT5Xgh0%cZ6>gE2aES+%F#K$pAkM7,5[(MYmG*1sG(g(2_#K:T7TdDX@n5I?tw9GJVx^.>#E.5bB'#OD2NiNEPk,%5G,B@/X`FPp6J5@&RmO/+kv7W7us0Xu?luYve862Tc1BEw9lp.8.w4UsM+l)>P)L#JZ;UlXT*MlJCkuf=v,7)htSP@As:-LMr>cUj7_PWQDKtch(/($vx;WaV@kP'As=#*L`9vv(BTp#F*j&EmRLM_']0i:QLMsfOqK7=,fk`Zxu*e1Bs9$Qano8e2>EqGJn)e=u05BeQjZc,7mN?c(pOAa4`xJl[e[O6s@uegjiXCm>_f=$u_xF/,lY]ET=8kE^h7?RTYansB@p^77I.vdcx'd=0PV[*B=Pp;NAsAC0I;(pthfUL)9daRJ1vu/Fx)U5@R@$D5&*v#Ta&sEID.vbE^EW&NuU%pw-a%PS&06,1)5t*q>Fu009T%4o6A*rrsp1T;6(LWCjO71H?CaN@vel)kNxuh&X5->=(d)SnVcp>MA?YKMf&.EA`Vth&9$DT/pfNT:AY+_Ebx=euh4Eu+%N7Pf+MCXW%_p:$)('g5`//dX;Nnv*xP`bunt,sfZ$Di2SYGY#eo1)exD1*q`Do>I88W:$Dugc_9Tn6u&9NF9@cJFTN%`/U;T>dsWg4S$NkGY#P'tLJpuG,($%gasmuECh^.#p4Q;S_uVa7V%]7Y+HY)rM%Oe_?[Vl5$vO<_R[d?:C9x]*H7JPF5o.:=dqVe=>QQ5KJ7=Qf_:e(JnhFX0I#8HgWD20Y0Ib2aVo7AGo4*d,W8:7T$r>uZDVK$oTAg4lX3:fW.hPtsM7.6XO49tpXPJ5s#L/aZSp'749Qtw7imj<3DZ1P>;6%Mb7(CtdLfCE/<6vdhXZH/ueau$sw:HLv6D'C#B7IlVar5vsOo*nw.r9rBrrpEg:,'//H0P)TWhuxOY#aK.cJ]=Jn>s&)EIWRvtlFUt?-6v60-)(3F6=7kTYSA3Wnx+>ipPj?VS&(Fhpfs1?CgA-XU]e.CBa#M3%=u;N;8LbfL;2i_aI^?mIak58:6Y]-#iScJjX48`WBLIKA+kpQt[g1'Ae9dE[8'Z%L9H3?XxA3hCC8D;tnY8LDQGm':%JSO+?Z.^LxKZ)[YGTX&$vllA[clVPN_?&@&'enK98@e]49Z+MX6YV`$[rNZ,-n8v9.&0j9BE5q02TL6_?trjf&5tldD54($)uA)6>[_W^Me7n>dog),@BQA)p#qmg[J+,kmsOI:f-juS(Y.(Nefs:v/g1pc3S:XKWumoH;Q$$B>xY,OUiD)nGNHr>ap&=@w,sf%nxT%P9/9mU?J>,mVaofHSmi7:]uMT^qjM7HXZctY-TpniGtXJQc_`nxd,aaieAJv5GifrMO%K'.$pNb))La`ue8ETf$JbZhXcAe6.vTOev8-3Tet_#;bMvw]/va&TR%cJ=M)o8KYY_9eEn9ZNw,9Fin9/K@nh,*_Vl5B:heOR.jk3e'+Zpk,Y#gb2`aD[;xk(bq?dF&BP8VrjZtH-Y;qAUe,mxLf4s#W(^BrA=#AeH^tMkWd9C+tvt'[sBR'Kcb7dG=uL4Wgi%V;qtc/SK-?C$`N1xvTSDG@YlLaWuNHq_'+Fsk8k>LS63?0:vZD2/n69(7Pn(0@&W@&GVQfL$LAo36]X6NDV@odf>Qmv2Bl3@u#PVer$JOJ;$G:)+YVO2kf%f;n4f7Gd2.mEmcR0.>,dW4xtCts%WlKs&#NWUF;7NlMR1X=vqv;__<;:+abhO6(VkUlQ,Avf2vaO%E)ngMdPH[bGtU^P&49-X[SaLS.nb7-Ln4Arkne.`sTJ&V,.ob&+n??`oUVE5fX,8:v1O?8v79/%5]O)ku3$iGr_o/.Mmjqkf%rhJD1W8F&>aGN#Mc;D)vNX*v0r9&4@/n=^KE+b2d3:(CpnL$>]LeJ)7n6Of2rl&NE/PSnMPv7I]S5f'&8,(u>.tuV^;P&=bhNX>?gl8/c#G:oMKfY@rsm8qlK+1xA%bCJSoEIo/?P%U+vd40xtlnQ.qN7+D'A0g;e:;@9$0TDmN>wI0oO9`KCK5Fu7XA-Xnmu`mf.Yf`8`SYlj;m)M4tNk(5QNoY#:mN7Hs.GF>0tmJ.vKd5j2bPP1YEqMG.gIf5s-a&=J1IBruW;m#g4$$/a8>B'WYYqRo'(%ks6*AWT.]..8EWD`Eed&S%_mWA%1[K:-H%s/m$h12eGtwwfM).wEJT$90gb-a=UlGle1#[NFH&Z`_r#O9:$o2LOdP-'mun+5<)D:((E7V;8vmv;4d^UU.1G$)Gu^@(AuI=tXLSvSI$14wRD@F]:d=JgOH)7pE9-N;6vxYI>E>*airKk1@n8E..vLSS.:N7uWM?(l3vbNq1LE+q7+<*H7tUb].L$D'YukYXB5)qq(;[[gV*$E27&#:'Xjor6>(OUYSb2VO2tUQ&a,.(#SAo.gbojrG%X8&r;Y#4hNB`b1C;oihAP/?Zp^b5;ZA#E`/garT5+#dL,*u]/9&qZxhfU[o?#G,N?=tkw7#,Cc9#vh2M0$:>8&v+wq<2W2PpdP4#ip/UG%(%l&0lCMraeN5-QAIg:38%/+s3I9v2n3:fq9g'qvx2$4QixP:[b?Jn>;lx+#-d1B#2UaQ,Xr$I9RmwkHUULt@8*d@r98rK]^]$$?G+/haED'L-fSq.6vA8pM>WVYhSSd3<7hIE(LJO*G=3Xxod*cnf,6OuIU.BY)Z8hT]/dDqSOSlC'-CGrQf^O-35b&4[1Oq?:#SN]V]pl/P$&lAnV4loe^&R%bCB&v_u[#+B7m/KYaA-5$v1aaOsYeAeqISdtcrZLqhjaup6FaKN*E=#n[2L85]4DkJgnPBV5q.(mG$w^;I-sa&Z'hTvkB0njwrH'>&P^2_I$O^_a.wgtLK;D@WB[`8oGYg;4(3b+$qCrT8eEdm%#/g^)(J?C+X`7xeo)i*a#,7IO+^N4d5Ub_m2x-kP%`Mn]J(cn6u>`/ut,N(3tc3GmkC:(v>*mH^&>cUxU+2f3*;?8/co-,KgDniLA0GKKRJDf5<#L8Uc9OMtqZY;oQ-#dL+ku*gm._tu0R%_Q5+#]M6.(K2MVdxADhKPaP$m)N>9D)U@oe^%f1gvY(ZKorT^oVM=xOLtx+IS`T'LrpOmW*TqK`bl@,U>%H'VXo5E%3MG=QVHY(+O>6]*RUm0D28ghkA9Q1I*s8qIhX#;Oi3>5qSZua*MN5LK8fmfp?r?gtS4'GW>]4MBI2hiBP3jwVB=58_T%*D@Z@c=c`iTnl4sZ$#[b&wtbYoDN_@@3orwQCtr1M+$70[jas/09$F_m$vT?.]N;>V*#`Rr-BHc1#-c&WX<8,Hg:_wUGu8-r_NN`Q]fI_`U$KVJ]=hlZ5b(D>IoG)Xf6XdEaRt+:H)?,Zf(7,4R%Wu25v-,0h`51O./#oFhL2JA%tBB9vs.X`1u*G@t1@:?X&/tKG(T5dS$@8#`ugtK$mX+acA4^K):k_lb'-:unUW9a3@Q--Qk%7->&vDJG;-O;-eEK7ThYcf6+Hts#6&HhpkOY3>oBlSbXq)(:JtU#tW;9v?Z0Ka[NF:-h.PD+.=%$BNpe:5d[;[*x4akN%ZC2m81pnbm9CS%Vlte:4UhJ`+p,ntB'10ql:Y*tUuWq_HXRR,GS0`NNmJo;36T4o,AvI@-'90vrdR=O1:(*8#dgoIU]]JDpki3rs6jZG$eG)JL%$go[&ZAOr&,JHrDB&E%+t9X5lK,:6Za2oLfHCfL3poY7#0-$lcrh@bvMVKT.%L%b'DLKCv7EIaX$GipZTX.(KT_V$9l%Wp:BV,uG:1#V/IE+LfUtvL9r+U&&=3'^#wJd)-Vhe3[1c[?fj[hT3n(lcN$3N`a/rMGq2bHSIqLM`^nHqI7xx4;X/bkW-1(x'h4YMNs#Q@&#qj[me=GOZ=(hf'-?Wo'nbr$;-wYa<,W6@kgfMYK'=+4)EZh:75JhfAi<[.VPqZj-/Wh-]4rUSCPtvUe[#B*w6&eM7FV561gH2bVpnha+SfER&>;Kk>xN7H-xf71SXSPEA,(f]xOs_8&q2RQA^uA8?ZuJDjRp`%CYu&&#:vgjt/m=KL2:S;egYU&CT#^8#1-IT.;=jV.rE)qTf*h?.#*j1?GoFAK'3YYs&3M,EKE6T#hRn5:j^8gJ'>XDOo9$jen^gNVKY#Ko+>u1S%_uYKqDJ3x#luLDM0#j@'GM?NP_r,;?S%RZRgAZw9duoZG&Qb/g?bjjSxuR^h5v@b`e#=6:IEv^xSIJ@imq[NlTgJ^8koiYg[bow^LUEAtV'cVBxtBWZg?eF?3bm2Ap1,C.CGV#*7[Dno`338l]m3b^n@gDrI`t+7dup*-%YAZZ#2Cp=2]TD:-CU+_uZe(+YqY9wF2sHX#p^Z5V(#spuJ].#hQpt=Ki1@rKEZ)gxvtU2o;sa5nbGSk)*-IQ@^uMc?lb(>S^H:C.S7Euk2LD4(9Qqi:q2DQ_GktU<>%`?E3J(/C7%F,/#vnM<8vIe-%+lkf9vit7c`8k^E-Z4V%+:>+6v[]bx+nv7xsMT;lfNB5GVjMWGkS]],?2v[+Lqo;H6Psa.LFrtSKg<.YcI-3m%:Lw_5e]k=c**d7T-bE##H,cQupg-1I;3;bo9lD&#pu:3?[0GZa&iLQIu;Wi28VO'N2OM&6-1+QMaPsD)JasGp5>ZRtNJK$#LIw$V/xV8V4B%t'>BheL+,k89BpYA4;$0lRS@w:js$hP%N`7UF:BqkAmclPnffhot4sZMjq'>EeaL2SIda4ArJ?(stljL#Ll7-B:ptFu^2YU0DbBCsFe+k/2cwmFMbdYQ#pCxH2D7,]GV5[mKqt'aj()2R%^@A8#>A+/_Nds)Gti,jJJCOqfi>0rK29F4M2mxF;>csugpULrY%d*OmP#_hoZlnnfRRD.$g*'lfv^tK-0&^4'S0ni'_UgAJG.&LBG]41#;iBukkFdbqcZ5p&l@nb#]1$guxn^5Q:#8l#4OW.E)b7q,M=I.oL+Lx]goatt)b/A(]r-^LH3ue.?Yl?`w3meKR5]Uj&rc=,87%rf-176I>buCo:.v4==S)0BXpuw_/TltW%`a-jcPtHX#B)o*l5:naJV<>TtpV,B`M%#dTb^;e%?r`G3nYPU[5fL&a*h6%SC(N2J?(Z^uFLtd]psLiqRtf:WRH#`-j1v-W0YYb[Jd9K8h'aG(*DuWW'LpC0qQr?6+loc^S?oLQ#lfCJC>-49k]>/;26MBi3A4iM_HGu1l.FO`['_KH*'M-Qd5fhaI07NVFSPqdrH5vd>n(t6j_4Q#$&2^(C^0-nkYrsYX43J^Z%vkfhq+rFc,gN@b?.qI#B3a[3<[r&btlJZpBBuG%a;#xH,x&fLYiT:rsU#1C_+VIe0Ln$8l9S]iBY#'FWg(dIn_ePIcdd)^L^70UEc?$PBACS5>OZTQan2fwB-LB;v09`'McVWlw1vADn%;#^k>r4/HeoU3l*Wdu'pp`(6p.>jSR7+O44vBH;2K/11K)Z[-LKM#vp2S1g[eQe:`L:kF*vnvB`wIA7@Ir5u;aEH4TK'Ma]6sxBY(D$Yskfk^$RU<R*Aar?w#4s<`C)nvf2n.@:7vZ_L[t+IPkPBY8Zf3.`o/.WiQ[;tS9I&BvPK6EV8v9*u?,eh[@uT^YmeCQ39>[5kYu7:6`uf5[+64f,vuJ/(R7DeQeU``93^_`5J`&7/luue?EVn.$xkw)-'tJZ(wq3,^*(X>K_T[A`&-&22(]@H%nsc4Vcaa'8/Pa&*S7)HM2v(*$Xa%(M0-J*Vj0mKjwuOOb>Ym<81v[u4G.Ewu>`P]%KouX#llwq-?xvcU=OmiJ8Skma`e#C_hpJ9-th6I.6S+^*>eh/:.q]V-FJjs#k@DTfZt/['&,=QRCxhmn9xIKueIK?tmdM3t_ReKK[./VZJtZH73q=S@[:nESVOLIKt3+B*h-?88swEe&HQ)>(6>5T'mJ&b]/Pt=*t1q?=+LG`q%++k&RiS#D(HcdvG-qN4)]dq*ep,Qj):vdfaV`TXUqsoH]uN8A)%v.iH-'9xWBN+$u5,csFL3A4?$)#()22#tl35^u?FkJCGArPX%8.`uQK0v#B-xf?hHCTTLi*G5efhpu;K8#?#sP2K2`b(j3v2`qFp*aE]t/?TIC#.MZp-SHStJ0#SHLXZTCrb6L-fW)]bqvA@cc5l4u(NT8.Vi=P$@$[Q0,XY5aOr>k11ZA1Zn^gUYWVWx+2$e3+Ig=;qZiYbsXl0m%$;mCrxVkP;WFoW(Zqd@XDaT7#=]3=G*D@Tt0.]ZsdeZ-RM#5AuHDkfH2J?l4Jk:U82e+hTl1IUhtwZ1prIB7a3i^=X#AG-oN-)1L,3X1c[*8Sx=vbv>7j:XjHp>^ZuDF)V%joCrla3NlJ?+rdnR@eStSReb2dmHC'>kcm1'6XLDl/v2Mk?a7FIe,?wcvg$Ak45c/2wokgb*nf;`PdNgD3t#Y6)Kw5/>#Skxx4uQtHYH4vC_0LRG*rF`asWPgk2:@XRYcdU*pk@=W58MTS/;VVj=V3*u`j_a*o-tZ-O=-(M.i)#;G%GVtYG%b`]GV.CE`,5wkfh)v1m=5N2(DY%,LT-ecf$G#lfftY&s/XQ(NE5V;W(LW7a_ZoPt'b9xngsjPn:^=Wu+jsHtuLfiFDQ.ppp]G8V(p3+0RJosu?U;4ueFb3_EF.?-HNs`uej9h:hSj>h>+5c*vhN3Jj%SIk$#MEs1%dl/s>jepmXB?ta1))QT@k8op(o=YsZU^;9P/5f*,q.:jqkE.^9^LaCqHX_3]UNKO^OoYa93`#nL@Z1xWTqT&nNa59V02Njj0=qK;q//#oa>wUg15CBd5o'Lc-dxUaUP0m+RPUu9:ix4`e#?>OUDBb6we+Lu@M`3etYqXo-:m1kDq:#j^w8u;ZT&W0i`'-cV^.rsM@1geU]QQ#r@^-xRUh-;Y].rS2UoVV&*;Z/$SxXJi2L(kGKxXD2I.qk,O.h+5=sG:t0-v43wUNQ1vtus2a(N%v6r##e`O&.q>9u>i%Ec./SJnV%1HVWXa?8hI-Qj^moPIL#/@2uw^EiB#rN%K0D6KgrXXBiH-1m9vZDqY[bY-af$5L0E;#$sf'r/ErQ/T:$lY)qmdP:^e3h[%bmgvaA(to5u4q[H-K0oHnLts'bE3uS=Rb/PEovX:P([E<^uxDu[cokl#r65(cC&B3Xw7RRq;6as7$^PLV?HQ1PGfo0vp:6vYB-K<&YhcsERHQF?@`pj_f.%7hpiZOaVIhG`O%YLmPXN0]T5ri0hlPXAO3d,?x-ud']DaAZuL.trF1-HVC3tE5^xF?#*7.fC`xFBQcUI./_x4ruc.mF0%%q>,#5LB;A/fN/ixQP;;st'Unw;E`0D03xB=k3V0n<2=lwu/=jR7MJ6MBK;Boel'7xCJJ:/vvKmek%]]B_ehWKPI=9RA94mRi5Dp+L*/7xk0XKB[%eUY#ZWI%kk9.^ERVx3YLCWYf?/MYpMl3&creI:Z/'YQua[OYuZNH*u<8`WPVq*i_Qi2jA^2/-_Dw%jJa%&'[(ZG^uU2#6&0bCM0L'O:-%A`v'4_J$vji)?E3G3M+Cck.Ls9$2d3U$;?7ucLh7jp+Lb[q.(t4.fqR,w?rD*u3v,^_$vPZlAucn*MT/%6,LS&Brtb:pf@K&N%?mnW[Tq1Gwu.'t9v>&<9`Q,47ZBc&h06N?R7Lr:^3`LhL>>+;fAM7-jtuK3-rg0A+3O@GbDmGC*MTtZ6HrC&)Se+lZ?l7nD,`MQZDa08x`,/GrY5h'>uup(JwdBGAQKu#VGJa#tuFsNdK7:hBao7Jh/v]2%(SSjt0[G>:T`(01qS^NEG;6f$O=xnXWtXKfN4LQ5]l?GjMi=I'g[bo:'ZGu;Qs7Ii'kon`G63A6V(MT:hp+LYT,'rF`?6P7j#JEI:E>f](:I72pAfa5FJY#@2#[snTei'CHYSRB;rsP+tU>VS`s`[g.kx#`&?6v;pH=re7%K=rLfeLc)j>gjeQUH=RF9:Rdv.C9KJ:v[2kx+`XWx$gT%kkCP[St;=e7[7fs5S_8-=J&1WCZ(2*JVKMkNd+H;tjD=5>VXVr9cAd%Qna%_JuQ0s(rlZu5u'fDCNZQ1U#mq^RI)b4l_=#J8qAnpQ)NtpA,?ttd=tH8$l`#36geXYj2/&'ObI7'T/B2]>#Mxd`a/nr:2Y4?f_G,(wGjK7b[Pg8v)IB7[]PEo7jr.Ln=J)d?gQsIaN^l@KA6Rdox.HPuD(FEti9FV-MA<9uAR@^s+8ER:#9w(ukms.(lq67uEg:>#GnBoeTa,up7^>@s#b4C#pYL1J`2#S79AXq;@rF7v/o-+BM?/XudeUb%[._$?8tu;+l6ulO@S7$#D%>Xwr4-mI.Of[NXOe&[75)7A[P]t,xwP7l95Y+LCnK>oKR7tKVj/BT9.-4Mhn<]<5Y<(nt$m&#:$#nWEStnWD=l3x>cn)+-[qa#3QCs0Y=/ebNoR=Kc#g@,.(:iX8;o@BtVK#&)YEVwhSKfTTJ2xL*U$RB'MIg?se/wg,Q(N8.)ATVk@OOT>9$NU&<9$(tC)H8-2-9&_GCb9=#siU(sfvlU;&o=pwt*fN:dqDKl6E1*S[5@G%L5[`5_T3$5HRbaSpT(S6QMx+8f#@i#_b,Ftu-,IKmE^L,%8@LBS2+gdPfgUc[V:X9QL*negHgMpa%Am8`-F[rK@/A5v'KbBQC(^17*pX2t^he]FqdhOs;2PVKgbksX1r'8vh4>8pM>f'24-4YYjQ-EABcS#v<6:`WWJ_(cL@cF%-wTOnDS[(qnJTkJM.w:HX=*`a/KXchM=8pB)w8XqO6O?KtVFxkYZ@k95WfeA=mq8vv]S&$)36=u=dNcR&R=5`w&/(b*R6bbHcEr_wXD:BD6)*Dn4&PK1rSu%&sbuCWkq4m-LJ60EraEqn(9s2QF]U.9#LePep=QRR5G2Hp9N7g?vi&u8m@3N+Q3ce,`JVvHrW1[soW75e$6h`jiA?iG34*9>&M9uoJiF.#+VJ@6J#,Nq)T;j8L^ap9dR=Q]*'tV)5S%=`'v8DTRang)eoUrP,FuT]o.vNKjSgtk5%#G4%5&cl];IN:^jm'fu,_jM)Wq)7(jtb_'_]Q(LN[6KG$?,,ULl[DagnxxauS)0L>dI5d.tl;I]Ix]Z(v23)6v@>>[#j)8YK3vD/@lnl/ukZ=tsPQ-td6DMLKboAXa_*3-Zr[CI_)(HKpMh.nZkX9q#J=7GR(m0:v'tME(gqe3vSfoLpvNX:qNKFiTJt;*('qPS.X6Zff4c,Pde`>wk;],&v(qf_a9MG`<*N$Q[XkaQN@Z=&sATD-G2;a^c)&*t7IGri@qnA)KtqHeeVob^fkDt;)+Jf+.L*`Yt&]9A:vmQ^IsxMAV7?nn]&hj,f;]Hl:QpwGjtJSPDHxt[R3u388vml#Bsh@Dt$ahW/t(ebXIr/^OeDuLlSpMJS.?Bs48BI;4#NG=%cmrKQrCCWFV:+-ik%4eQ<%U,7vatU:q^*^[OsxI=VCpK2rLbB#L)?#iK]WJRI6*a*`XuOf:g:FC&9I1KXJ<%?nr8(O7w)fukM^+:?g4h=O'8f1tXV4aqffDRekrJ)(Q)pXs/)sQ1OlNFWCuXXP(tY9iFTR%Yu9;,u<)T1B8VT4t(E]Mi,+TmAf*gsq9vA;dY9Akf[d;xJld<#54*9./&GP8uaUGHDXKSrKS:)fsE77uuHl0f>?&'[)$qc'L7ewr(6>g-Rm.47vU+ja`w1'=c?&a4t(RWH`D=6W$cP8Q(xYjkof$@?7cMth_=$'#OE]#72j/;rrI7meI(21HtV-?i^RYk,iW50Nk+Kq__bi3rO)u]Z>*dcDrH@]a8vW/_QRJV?B#=T[J?RRu%pRJa4-]q#GAAM'UcIJV]4QM.XH9:u(03]p(008?b'?R,;,AFiPsIfuU-ge%b7I_W;&/?g_wI4rk_w.((EQrqf?T^AK+u;Vho>B7;)X$0g?O,F]a`X[7`gge9:$pu+PB8KZY^mt@TGB-.OE1vw5E^jbQ`NE*f51eqMsubb,?bO+g7-0o?9v9v*7v3K'kpUl-gfBTuq+R-N=DD6qC$H#R$vNpOD`92-goa6[<1$JP%bJ`Jd6(o)mK0f;Gp>bc^s-.V/J/)Zfrp7K[a*K#<_cU8tqEF59-CnP/tLlnUnY(>##^kf#vXMd77Nr8bAo(u)O(u1Kp'9%+qRiKc`pYfXu+?],tc6W1gN&wcuH@oI:Efoa_ahn*F:F)N6c=mQ<3eLFDJR)AJhiRrQ_McP%dlQCW%b-b.rkg2tXLU)2.=FE#KZC&+u7+F`&X*EQbh6RVAdlGa%4I_41ADG);Ol(1WM-LF(Bv+[)f%/1;,P.qw;p.seNCfqRsQ`*?w4.LmK=-Eg2l)6A&H(#::FrdZV+6-NGBJ'e.N.q^=hR,:onD=lL1UDLX?e7sB+numDTWh#59cD,@NP%nBf`;xTE)L0($xVmK9Vp5ID;QB8/#Poml/S:QnomEtvn'WNlJrcuB7q=6x&q%K*16tXQ-1$#7sVY#p-Zd'HNl0-sIj,(>?33M`9l*r.plXsVvd^si=1;2;[P+V2PQ5ZxI&(Kcwh;-]s7uuZ#XAkx7PZaGJ:*rkKjoFvfdXu@xp&8'`ioo/;8snc5wnsPUPKdk7n_o>1q-oLWMwtJl1%amFxJ)oiMwtX&9iu9Y1AVO^oweZ6`3VfO,eeT-3rm__LU?o*/Bu9=n77EV0MKgpaX7eLo5Hcd@YGbZU[**Axm<&&Nbuf2/42&>P.UAvQ,oawoweem_Sr@ibm%G^'An8+1.n*gNL,Dbq:tbhZ]cvqrZ9-e'#Xi,/qK$o%3tV5HQ'eXpIOpH)6G2ZV?U3+nKftG%Y#MD)BEUUgTi%L@,v7SL@ev^p$1bVdZKLX#E^_Jx/u>r9JSWGD%'j5x9ATi9#:H&ERquruEthgB^*=2h-$f04m'o8c2tqL:1%fUiMg+NMFrtg5k`-(Gr@m3m5(avbhf:>E,ZGS/kfl0(VZ-nOmuPtuLKqJiq/]m8hj3h7>luc_6TM[m_`Kb`,t^'K^#q91NtFKvJa+1s*qUqmJpJYRHVM7aL.&/),$JAFDOHh[#siK^sck7QV:PWiB%GJ@2na(fq2xS(v;K/@OD2=_ETe:NtaSO2^^lPrfA9UfuPZLm<+wZro=J3%v:ol*`hj%_O)2_T9AfE9ZH$vjdhouL$/X#EbVBAZ'4PuDsnwt'IT-^rnZG`G>$/(bVd,q3iYqJa>mj:H=gfEaUaqdTH9^?b]N_-g(aGnVcpHr(nqEr:8,`jP$_R7lrwA]O36FU=88=Zod7S7*%;Ji$UCru;hEK`Sf]>a#9o5v/.Do%bVb:dA#@tY2gnLAXP_Ac^@rQ38iIesIY]s5YHZmamenH%#m4Ut5Uwp`#LF(uCl1tZhsJV.?sZ[)'rX^nP$:,[^vno]fNL&KVfcL(q]-/wbhoRk5fP=Xus)eCHR5oQ[=%bBL'x%]5EujE%CS2MII5.+rZ'TloB-gZf@1^j][m_D,X;/o[viCV/53-%`NOfeLm;]5ZDZk/2^%%ZeA9=@tkK5wZ7u>cp'LoF@4s_mP(#C;)vTG71E2rADf_6bGXu.cK:tPHeot*jTCaZXe,q:,7_cX(@'#u%mT2`0)(V%[Y,q,''2_8$$Xp]=g,72;p3d-gqakl8-,qI`xEAITp]W.1[wtISCU*i?Co.>C&#w[ppncmf8tTM1qmmVSfumHS^oWb5N+ZIYXlh7OTrGb=05ZTE[UaJi,q%>heud>+65_4bifB%hJksk)KuQQ/d4_86%s)-*&L-6eHm(lS1OuFtF`OMY_)H4L'f.]sou8oKe57jOb^4Sf-m`,mftsZ1(vO0[?rP=.=)>*Kmu-`@xtEa6GrlB,]k,Go-udY-e-_5bBa2<<<-pBPxOi7?,Uij]RIV;*/vbP(c7Mt]hJ6xLb`v@xigsCb#9.&7W/sW/0nKA?lsuP#,tdEBw%q;P`IUTp/*sxa>-LE_K[hEDQCn/>U0,p,9&sj>hI1)j%eu5Yp4J?<$nN;bTw$+leu,RHX._WHn=-k4j:Qg7K=Ui.f1_-URsn)^;5sQHBOiB9NtT$TuKKgMZQe*+j[EnDtA-tF6R7G#YqmPGWd-ucvrqm7`CWburhAPG*c`AGqfYYc@cu^6k0nSE*P7)%]FuGLb)k4?j'LQpaiBIA:-C'VevK1FuvoYbmkJTV#+[j3<(a(To%kC483v4xV-q'*eI_M9JPu^YrP//Evh%v3#]kJ5VRtu^TaM9tj4o&4X*@[S#j](U1_s:0Y?i5&$NIZp3uuq&I%<=LUXuVxcLKLr$Q.s'=vJi2B-glfKx3@>1G;:B`wXM]_u't>`WUmO(x,Rcol8R_7dum%BXA)+N:v/,HZjq7X)>a[nuKxg>aSnQR:v6SK.L%^pWZUY0H[=3mM%#o*tt'8buiNxQT7^K=^s1/0)-AfOJt>--[];2+%UIp4-WoHGOhI5d29GMN_P`3]]82d[xH(s]b>N?_w/SRbeB4[fEi6vbH@Z3x'1u,7ho[oYGCLlx,I@2j51GMX<4=]3PJGNdd'#XvitXV^59:uA5nP'Z[]J[_/jk/DB?U[7+Solv#=X74wrW1VkBHt.'W.-S`Qwku9>A79$a>J(vK[3h5-=iZS^3*T`97Ku+Qa1BsXsi3e_RdU?xUFLotH7gw$t7,v&9Qg#CrUm`)2vKKG@JuWW1bUjh_jhcM77vvZYag%1D<_JeI_Z$]hIv?&5u?9K+iVBqrkWn%+Jls2*6Zwq19@xY*B?Oh[&eA=tk`*B0#(#wULs/j[XUrejsI_g>7dK'Wu5(o&I(@fLK,`gQn>b?guHL$+c44Qbfbc6hKD@u1q3VBrt&xHk^SnUun>&7.C,tj,(iqv2Q%]kb`fC7tJ:V34ncZ*=72+38t/>6CsW_;:4>joK>_AM(D?5Vvk;A,g]8`H`W[jh,vEPUlAdv@YKqSZifUp]LB:bv77HPVf&*vSruXL?Ra`34Qo@sUOl4p4@Mb/P8ujU`5(kK?6sY2K(qdKI=aZ'?Q%&,Q$-GKuirLTDW-[CYg^:*=6WiDI4&o_8=?<1f-v/Em[Wk?n4vZ,$mie44]upG#ajoUkWPXnctN%Z4ieDv18&NkJS%RW')v?XlSfI=?ZuR_]f)2m,G2'xgtL-0PV([+FxkTc#Z$r]uT2[,#wfJmhNtoa]nI+UWPpkWGxX4xR.GI%4lUI:#i=@N0SIRltb;rFbkJ)QYv$n9>a`kd+Ta75ZN+jbL9:?l^j*J%GqTEE0ntCfsM0kl9u(s@9MLTd<7d29:2,;(Safl7R%8CAw'L^F@a_%PFrOI1iqYEWQICQ2/Csjel/jd(5vVfO@pUENK7o[+-5'VcR<mrdk84I+U1_sT=,B1E3S:v_cCIJ:g&%CeHnDr7ZU)d9/02NA0r'$`-c;M0L8$p_V-(7Q5j;==G@CvkMgp&]eU/5%CM0%Z>a<===.>'mH[kL?'kl9OC6-?pJWO+YIuKZi'&hm#w?Jd?S>7cdk>.rI<G3M?MmwklZYtcB'uwKX8#Q67LQBoN=.?gu'&5uMT@-?h=ZGZB'9N7>w80sO;Bjs-[t:Ai_]:usEK^jT*28$Yv5w9Wh^[u&p^]3Y-H+tUt0QA>ig,qJ'-O'HstWu%^K^sP5V'&^p'Sa[.c:QG*eZK&W=1ERDI[3FnPQa63FVHF2;.L%#3l=xjbtcvN'ZR%3fiuA0#'Mu*br(]]-W9RabZR%inusq2/d5-DMT:uPWwO7o#G--;g=kQL=JRuO6&S7xh4:#^'aIQD8hFM$r>QeR>CDpg>c)C@h*Z7NZ?4qG6Mx+Rkg^sUm'gfpe()(L-[,qBJjh>u-*rH4`c%u)RNYd?P@l8NM'e+ZV:suGIl&a@#`vkn/E-$PW2xDV)qVt*+MMs@<#H?n*^Hn6QFZtOcs`_$sB*o$.M:vL+7B%tgUHH*qR*(k,cx=eSb-v5c(65$K9@iwhTbpgWF*6&%1]3@RWh[^AmYeI<@h6]RGHhH2IErVp8oi85Pn]XBtlBVx^YX5)$SIgJ^K*3A,@#qL(gA4(*j-9M&re##HK[6cJDn&sE>eOGwoi6E$)*ZBHmNuVAhpAF^O?:ncfu:HLclSSB,r4w/D)vTU6J[h2tow*DiUW]ITPB8ur%OYL:`Ts/W3q<$LK[%LrKU.l<]E:9N8EDu-Rd;fggqUrIHUv%&?m)*//8,W-cjtGj(N-q/'Wu-XlRf/Td.skGH`u,7fpth`XELso$C2/1=ju,mLF[aH.&m_8[&QM[hQL7&Kn^j`FP9$(9FF`;qFE_MRu')*N2TNK+v'%Sr-9@6;VS2&UDhw`fICA3ZkT@T6TEq1/vQS=QeBK-;6''5sK=k=^sK5DZ;@q[G4e.tj/v*#D-(tNd6v^[NucCHP.qSr^=nuJHg]GRIF_T8v.C/xHDV-$J07']3t>U,ofu9(UfudgJWP#1KE26>)H%/mIk'gr2ts>;VFn:JuJT0i8eJrd&?Dw;(B?er^XtIl6^u'XTF)jG#gAHp3USCDr3dc2kQufYJ/lNdsUm3LUGmrosDIWCi7x:Hf=$lt8r3nr^TP7eg<(ob8dNM(e-g)a62/HV:>0Vrt/D,#'GV/P>X7EQ=xr6ev656Vmp4UtJJnjAGMuccvV,(#4Pa>W*+I0Dnf+$[8cFft4L2BTxKFs(nmmL;@SX*piOocY[&@wnVurg''^`UUrP^-IXgTRBHBqZjVN&$P&;I_s]sidU4mHZHaJm]?.99a-+iko6kXHZu0+r]R+Tm($Uw2m.#(_.rAXJpq#P3eY$U(:bVYED&(I7ebWwo>@7b'B[hC4(q2&)m3kPUI['X<6q`9l;8vd3&GgJL3L](I$uk=wYD4<$Uq0V1o,7G%k=Hc7L=mgd5BWwwT)6lj019;5#/UZH7r2KMr+[%nuAilU^ov4i6GvD[_:L3.19Fo5A4ADHvSc(h<_DM3wXURugNkJFc;xc_/U-bUGVdg4+L1WI#0*Vnrh#BI#^6A%ubNlg;G]c>7N9/Ia2E;gE%S@a#9L/*-t0mBOCN=<1%[O(LDv4,HPn[1C*a:@p5NJmp[^/TsqPAVA1dH%BDA(JJDtl&98*v1Z/hu/V&0H?'QcJES=:FV4%2Q,m`:*1H;A*F[3[v;-`aE`V3(PsG?@ra#%`YL0mJJf_'bg8q&7DM.S,QY*'c]x8/O%BR.m&/;q-Gg;Mth=u)7Yf#N<*[,mS7FI*@;B%YTDRN]l[I#e.BwU+?*.WojDYnx7--H1>qwi^:;T/fwK2VbaO6%)Xi)?YV0notxx##c)sAQ]q'1M%t[uI8%>UnRke+/8c$UOo&q*A/t0u=PL$4tJ^4nsqF]L`[3c'$f3DPgGKLjG+2TrQ5+jHR]t_(_*_HQfoM`^Ie2ohIU4^j%Uur1+;1rHW.D39#ZSQuQpF7xrOv6=t,^P9R$498$&958.RC`o)`)m`alic3#7N4IDF4iHOJ]#DjDLV`2dvN]a4LAC&iptefe?<<1d6L6qBrcqX[XAe;`Sos52ASifJ%=7*`;gE(41^m92bL;@0GJAIPu99L1+OoKamshW**9K@hAS>V[jeaYIlVq)roLY$2h6f?Bs..cq`K:ggfE--H+iYIHu[Z$Mu/_H8vsX7EC:M2uR$dU*v0;AVa)n[5:X,Ibr7CGQ$%A?lANI,'`)GLk[:T5N32SI8lh/Vc80Bn^5ussmR<9m[n,ntw)?US[Y]quZ`nA?kgB`<@rkFVr6^_i')Uxk#&U(*&rCTY^K2D<#e^Ku?,*x&)enH6Twx:?$;[j(0UBfPD;)['lc3tC/7g(2(Yhla=0+:=hK2t?=RY*iY9Jlu333:'ON3htHLt*v&xoK,pF69vtLhOLPC.uXMQPA'Jxhv>(*h7-(Zl'v_=(ip@VYD`8IJZ1FcLfAs;XYu7c@?LNFJM@=v(/(0Ta*;L84>H8Uil&wlFRa9oXpmc)d,a3Bv1q>Fr7IJH&OpDZs,V:U#-h$AHpBkp7xDJG$.L#BTI^]9+_u^oOiuu$aUk;SUfNe7`mr3Mo/1Ee$vd`[$`s.N&c2XWn-Le4M?so8`L-,cb0%l.P_ai_^SubY-wfu&86Nfq0Q$)8tBrOf%ck1.a?k5[sQ%&6ph'eGD^jobP>^^Qj&@N4,1O*-;*VJWwdPT4(MM#fKYP8+Z>(.UEF78pX:[9@3j:u&%sE*W=3Ihe530In3Aoc32+-(('tu=LCN;nKATLN'Q_k^E[^dKq']#daj=S6vP[,upsMxp;jKXWk7QhLuSKv`NXnf$Lk'Y_nvb0[K)GZ)h.Lj<$=YF@#1gGl)?k2dsKSIgRw?3Sc?n.DB#*`8PT(9^0jb?Q,umK_C@>3w=8PuTN$4H:&b6v3D43$cQi`hd_9kFZCaImkbDTrX_##F%Mumn:%B3Gb14EVO-]ZTg[j6l5(/lXO?m7t]%p7N6/b&qKI9eFE/vuuq?S6vZ^W@^Lxwa1sJS/v8@#Fi?s/qmKD]ncJ,U`a;;q5`4Idi1CGEwV0H1:uj@54IQOP@=i2Q-NUh:h*w159I6=j9Q-`qZ767U#g_HR/rFOCK0rT_kXY]o%3L+K^s&M4U4f=^>kExs>%*%F76_g[7[r=38@I./U['T[u,gWRBD4Dl&)_-:X>v3vSKTNH4a3om#'i[EfK:]?,#=Xu7TlrK8L'NI(a@@B.VTPH+,g/1r;;1p6uLbV5lSq`u5B6`CUCU*/9*a?a0Pl9)ZkHCKYw*D1=`)/9+B-37f@g,lqj6o7bwxt;_>#gR8ilU_tec78],C'nU;'3@MCAJVi>).>3$kSijh-_s*d=-'(ipm$N^>QE0n:4U2p1BN+?m#v?OVuk)bGlH&(iocQF2v19`b7M+jStK.e;QhpYg7#1Sg9t9Xco0S`XHE,fB(r&lR*i#=@kT^K8uJN[hk'7c;d(`*%XakB5k29D;AQ`_AVhQS=NJ0e4uIkj)A2mc)v(saC$ql/pI_n[.aKA#7%2t(M%#Sq3?NNMrr8Y?Q%+?1Q';LsQ+$J2mfHCM9v@uBFM987(?korJu%GVbl8YUX2Nn4l4Z@d[Zjpd@`LGEtuG;rmR[>cmXXJLbt2Bo52+-x/J(VLeNnk46Bep'KGw6-aK&b[*&-XB6twfXLK2%*@aR8bjBL]fU@aA8I#kF;lm)-h;qRq.0Ch:Bd?trlgfk](U.U]hu8io_8%v7heM-_=VW>C@sVB@*RTGv2s#&2.gYT6&Ph,;>9[a4_gTZeX2x8n)6#f;/9qaWnF;fBMCdcS^Cul,(OGu:l7SCOS^.hfAn,('s.<@vhq:$WfE(a.`UIjPX)#_%Ac##@0K]Lf+.n@(mmDrQ`*S6>*wYS#oqsUNTpoK1:)+6YbXREW[Nef2o/hiE#qjeFGHO<`4vc==d#[De3tD1OfogueJ9bI$Z[;>J)vP3=omZMdo6w&(3v;1b(vhcfOnd)rN(J`j7ngi%.aR$g`dj[e+DH;oUG$k<(KosFmu&dqQ4-pR)lODJ9D4xc-Q-2gi8NSWdpNqE8A>34IifVBh*o-gUqCa,I^75];iUcw8Y$doOJ7R?Ul(+CFt-c6ZVgmo_ailCQs>WcSInQG=388W$Bx3o1`vtfOj5U`1G?KI9NTKhN%7Ys$?`Na->_<15/Eu45eFYcf`9QejCZ&m%.`1VnC0t#svo=Wh'=C`jAQ@JKo,tks$^e#,K<@j86AO/k9^'U[^CCV'nBdUvi2T_s^aOH>B8F'2gY/bge5U_Gcxk]JG`4*72rrIWQ2%IX/up%vpNp/=g]v/=M6piC:'kfGvasQ.C.10<6p1iGO(8?I=Ght1GXRMxYX0FvMXK^s<`4u#bGhe,pbJa,kd#kL>a6vn=]vSg&R>+;,Ap>Yk50u^:$s&g1e?)-qsL,80;pcu@O1KiPm61p,sfXxj7.:F#6-X3=bE1@`nSJql3>w4%'G:cNUeXa[#LEQX0:wC77O-_u`]ki+(0ZT%GRdhJ<9m%7NLf%>G[K1sd*CxE[6]HVtAmA@P,@Ou=Xj()E1TIAt,4mNK:ZvB9'v]/q8itQuUm?cVRr*U2GuoCs>NP.L*t3Bjl;wo7YgCM0w5CnW+$,.LmU`n4?Q3ktPN`tstQlu2jLq'*&m-(PJfx9v%&)QiFgiRa^:UEK)ff)BtNBhV-KRLkF3&Ca<2Gl4TIxQ*OMIukt^Nj+91?w>qXe[LQPc0@eWm7(5;bP-a?EJV3h`xAe7jkKgs/RF)rKc;uscCQdv&u%d8qqqOY8[RJnrgcQD)96Y=P7r]#E?Juj1M%1C)8pnT)xbZ.Neq1CMnF[(hKIZ3BB-Gu5Euk&*[`##..:bJCa;i%elbdm+&reTH.]V6;etvkY4+ht/GGDn[3P;7A[2`adN/dKX3Wcb^E@[Y7L0;$Cn)xtf,FFMGI`&InRw9SX;?_*2K,W[]x'3uvx;8tYfOhkp092a`_/ATt:p^`D@gXdO77riWs6xt)^Dfr32m++$_EXPb[3][:o1*v'-i'Lj5uKg;JAigDI*0K%Mlx)]+Ej2;a4S-bB:J_2C`4d1>bRm:@[8v3^bMDS5@05KZoDVbhDW$(0Z5:u]c35TbfVvp^NLrCNO/-qbH'iaWSJd#$t>S@e_6$BCbu]QfZ9sd8k28H5x9GN&t4L1A04HoE;/'8tk:n&F5`k8[(e+ur_%`$oOtMK]b3)(rUX>fknxUvLLEV+rRtZ`(pldoNKur`uuLeN]a-aa?YbU.LLG0+vMjOgK&rqmR<*.,Wvevx>,N&*md6fS9.4^[=F/s_aX.Ikc^iISfbd&VZ^:d@lY.%ZJc(c%'JYl>)okuu8'riA>NSx@3N]d4vv9#L)`5@Z%B5.?S._;qpgX4BaW^Ti$eLaL%l0:?^ma`sol`ib)3h^N&4Zq0gTOe*,44=Fb:WGqGkS>$Zm[4`>wBEmJ8*$rAo'xaK'u77Lx&[4U[$hBu-Kp&1H3S,5:W7;6=dh_s-x)1-j6,:X3+D7194mkRS%m.[GFUmOw=X$K?vp0Lanm]QL:DYkIa)-&H>0CCHYWI:*g0m(:0#TPMeT(IqZj06r8_uvtqZlt'aI+#7/Qrgul$7/QN,]hk)OvFp4@aOpZS+9vBilsXmN?,$^1&;,RfkZZ;f_J4D%j_3D@?@Do'_N4oGt)7Ht_Cipg('iLK;E7@$Nj2ax5TKt5%:veWK-LHO/AK$+wQ*^6*.mvJ=Pp`J,,L8;Z&U?d-2]tjA9v@roO#Ff_nFTh6WfrXDSK0AK[@sfO](#6S$v6H-3IO4u;p5N#l=[axcu'1OpG1b$L)Xpg,qd'q>]oe)S'xEG&a8mEQ`n8p?rj,;D*R4`(qTAnAH&Q_.Qgv2_#=0u3PAO3]$:r?3/a`&`emrJK-(C]'bZ9xQcT9L$+8CsD8(P(aqlbA)Ed=,EILpOSLU`MYsf/lv(t#/wTFI#>(]QCaKQN:SV`SI%Gtk?kYL3-EIf'MjpOw^-xrMTbK]qvqu(+<0m2um2Pp#1TbSW<>q5X)Q#:S`rQqWCNWi,wbm*F'(sM.QI&%glqogcZ#X4>Y[4a$hZ+)w;Bh7)H]SK*Mt7+'=i#Xs$Z&)w4COUlsfh_43_Q-Y1J8GGi_%Z4*vV?3]%@O@.ipRVQ0Emct]>E2uFI.t(ET#F)f,V9Y*hcO57)]-T7XT[HZB*lc=U04CWE.MjM^?tZ9vY9E`:c.sea^6MJ'fkfn4=^8G-Aq7a6W5Z0c=*Y_=YHd7J%ZeCsP^.U_F#E>F=mcT_*$ANHuXO0?p*g@?Mdk^fl(4A9Ivh9wht#V<1;Cr03J&lQ;/KLL/;mUe*0-qWrgINih?`'WI^TN3bv:lqO%cKnsWj)A(a5Nm54Y=v]1Uu?_:&f,$=[-/WcI,CZQuP)dEFe8oSVG7gg[2lPq,q.hE(aD#G*q%w%JuB;n58?^URmx$d2RvpX`uHtG0uJ@CLI)r&oe=k_7v_f/4Hx&FVfQ/#B6W#]f7XlTtm-Xsq?QuT%-Fd%*6r>Y5morX.UE_/1vSKK$U64]HA+ql-vnA47,V5)@V7qUMgBSi:?roG1u(aCxkI0S5v;PU:$:9gX='W2]lnZ&?5FJdY>-ww0.C2S`3tDPY69rD46?VWHQUH#+^YrAjtpvH>`ZU:,dVTt+i+9&?UE96>6U/k.l*nM-*/=ibNNEPb&F]_-L*3/Cgv*DLlF$lsj`F62i[79a7:n-0sGEWbL+A/_1Hk,&_FH4jbloMMsem(/tA1a4`f_=%OwV=QqH1k-Ta++B+7[6Z@tBo:QD#e2F)W-R9rJDh%;2kr-heq3aj%o';uthQ@_?453-Rl=dA).Z):5HuWo<;=?PH4L-/^ICM59b2'mtG=tH6OV-6V'.@@=P1Sdl]u'>iPa5uR>KXRKK,Wwn7S71CaBn#[$2(FbOj)I(GYXESo)nMEZC,3G_`3;[Db5?&E]$n7l[1VsHn&,3mo;RnP&au&$Tb9+.R@prnO_frbanq^Uw/s?i=(aOOehJ;IQsE.`0P%i]bOpfMlMJ?Uhh^4t#90uMO'bowcUk[#gGclF,4n7;Wp4`xkgefq1FmaeF%K_#iT27Sk0Xj4=*%g8wXWnXk>C#x]LJ(ccT_DqR(]#RjuXNaa;K^k^biVwp2c'>I4=+4WPArf8KuGTdA,Ec['-@NIO7:HBr35me?S3OI6>rQa83d&XEl]12c-@=@J*;*an<,4bGXVx2&%PPvG&Os?QM<>sII=sj*a>'s6f[Prjir@`EhvK:Bl^8/$3r#EEv/WIeG-tQ#if'ef)(pa%%=441fKA$v&Y+L4+j+YlYC'$`J=s_aa7N0etD62]w*a,.,:gcUT(KnFe&7A&0YoUuf<;>,r&20$(be*dxZ]%b#Vo7u>?]7692KB]RfUaf+Dc0.H(46uv$PSp3:vv#LD#;Jn`1'Pepc&ELJ:N;]HGbubGP5bl,h,r)N_scn%%hGHTmnsggb1Ot,&k@;?7Vn$#4BVN1`hSds.fQO9h=fSlt&ME;(5,bb(dE'`atW-P;mG[ZXRL5J7c_?$Q/1P10Gm[)HHbV5jpM9_<)o@ZE3o%r@ZTB$`Nqx@EPj&Yr%%T2Dv24#2/Un]3H]DltNJ#(U2w1g_;]X&FYq((t>)Rb@%(k66LR%rPu-3vjl-mLaMpW%'J;'K-aPp)+'R6b&%-*tQ3J,rxic%an+H._]BsoMYVn]V[?-xX/1E'vdN`BZbO(1e/CoE(5=Rs=`5ep(h4>0_M_Lg:A#dsQvf7nTc91L?KIhtl&cB-L`TO7^o($O`7'Ohs3WnSn3HG[<6;XH;Erw-t1s^u'siS&5FSGF`p$/3o#+Is7$N*rL%B2gLi>g:Z1]2(p@$[qdmUT>+?`%QrqF*M.@Aogms:]I)D]m_a_Nr^9kuZa,R9-0rf9Vfp'e6&cO66:&QMR27rs],f:PL;?F`L7F2tl?.L4kg]^CWh%$>?U7IOnoSCC2*r8rf9W4@CIbfHn$:L3E%t4mkF#&S03Y[$5e7h)&3.ZnK[gN.xV7sGK0h,sW[-ufIc5k]jV8*,m1HeM@cup*-tEluZAXo/D5L9dUaeK>Q3vokC+e,A76?]=E92)v[l8HJIBLn4-YEjQAI6x48*qv3UT[p3&aah%EQ1nak40V1l/:VratfeOh7c=3]Y0>>&k#=r('#p`7<&MxMrXM6Of`TYG2$u$2h%rtg0MX?-^nhKQWo9IVS@rWU9['G>[$&0silSE+Sud@8K5Q)B6,:9V$X^_lfuFUc%&.DAq_T%5$Vpu[[cjjFsjhMMm/vw#'&&1G'pg@glXnNMUEOun%X5qA)bfQL?r-`0W^`VN%P[%4n%FsT__@h6Po^C)@FnTGVJx4F^cQL(R8J]>cr-&6[mU)@HfN&-3)Q*J_*-se:jgp.)MUGCF)OI8DM^ABP34jR(W_-:n$'^bvu]QEHS&Aci_]1q>s,tj]Z_WW+)rK5hT?fIc&/:WgEWu7L]XUhdG'hmv9Ykl[/.LlSk0R*)(U.ce)S-a?F+NmHt>%n<[i_02h_&tK2or_/=Mik`&NbtH)9AOq,R1Z@9SU*)r3xHHbcg(.%^-aJZ0(sQC,RN7%u:E6eRWn&U&Bt8'6=/Gl7^;&Bjs%rvR*1XU&52sNZiLr:80wFK_5SaDFCL[qb*(-wghxf1c>dqwPm_g4plOnSK0gN.lB-LcxvFV#1g:5B*We/_THsATYR-(&+P:#*pp'rFjA]VfKO+VOfI)jR5GDnXuI52sa9ES5S+)u]dVlRD7*YsZG^9pun/ifiCbvYbdx5CP]l_a/-INf'M]f/HSLtn6C86UnQ-SSwdS:$VG)bk0H6:NFj]UD.g*+vQD$JubW#EZAwTOnt3cU%,Q<&dFIlidfRRx:mG&`j^C5d+mV02qZ`S-s^)PUleQd_uQ>N#(Be$Mu8RISm`.WlsN8Uo&rYtju5'-=@M==(6Xx(LTIQ<*d'n^+3k2D25sTjdFg-o+L6<>>a8i:%7JZCF+U[o%m($eqFo&[hICdN5v0BTRNb$Z@LOC3i]u`3a,pIWaJqAiw,Q)@:v?N%p9lvB<5BYk.pg4bs5P;E8MatSTLQfVoXu]+f1w;-S#,S$sJKLIEKF-/iDZ0Uhs@IPNUe&W#,)G9,P#vDhr'(n/&jT&@AkUrJDEnc=DwK>Qo;G7SnKBIF'Pa`dO;Qr:*11-A2LajTij*B&*&EB=.q(xP@Un3ofE0YL?xR9OZlk0BM=vk=WF1FZS]=Ud&1J?'nGavFXFL15<+FB/2^U[OrG)3`aAZ)J,CT?lnoK-bK;ehXbh[ikLY*O_J:]/npTWI#)W=#k1?/D9#9FA(s0dM[p,&:DQ.Af>tOb0Me0p%0i5jPju?p3(3QbtKdGXDEa#P3x4k.*euctZXuK_b$V--uVT^v#uT?Uf`_S4T3JMM_r(t.h7OgTP*Fk3@JT1(:(4(5oWs@#G18bT##,H6ZGk8%s(VWB3_$m-8iMWd[NaXUm4S4)0O?p&5=ql#5qgL35_cp<$sMrJ%LkR`*dY-X+-vX'vJgmTGb>O*lLGIvh9Yau4X;TGkaYA;^i7'/*>Hv+vjs?>V-ca@#)0:AG74V2]]8(U7tdMj#+H,i.2cB4)LvT'#xl-FP7r`9uEIKE;`[t@4TGx^j$bfw6:WanPKxFc_dpe/TBI_SsjZsMp'E#0qRr/HnXT'/m%YMl@.q>Se.bQ8-9va4tJ$UKTiJBB1e3JR7`AI9-lLZ+(1VB1^Na%piaU-/V^Ko.&Ya]CN0JmIM1LUYW@dJKWb?x84DKnF/I?DP`OtFvRUTR'SJ21)Go'mLamqx+N:d(h:3YGJlg&tA+?GWqIUepQ[uwSr`d0:J&6='S;kj)S`dYSjpd+S>6`Bvtd.ium&e.j_ShJx.QPB/bGY#8@3AXq33wGgAq,#,i:D167S/PUp(BG[Hx_[$vX$8$Qda`nm(iZ4q;Qg,J9RSf_M&l5sjg.CtqLc/;=2UtlKww(38u_oGwONg?cdYbrIHYN`ko`4uCMJaavgl-au@eCr_X+A)nO2f2Ec82GldNt1NrXkX3GOJ1oP2;?Vm^)&)Z&_eMItGV'$5a&VS8d7rZLB6Oe8F+.je'ZGPOFFYvu'alI*ne@PG;D6&>slcJaSUCq=^AM&3vNG4Z,m&7/urwoUHAH$-NnFiFc3?adsiOAf9:NRZIS[q(J=+D;:69-IUjgq^2I`N(MEfKsS2gk#*=b6?9^@LDENaECQ)Td.9j$k@$.kdKhvYqDIL^V3pDO2J,WL/Q4SYR@$`GINBhlENXCs?j^&_h6H.c+wwUArQu(e/[V$ns<32br?gUNcfshK$Ah?_s?(>DpA]K3mbP3k_7iveMI?q.a^AbYaH5#?&0-$Ze7hFl`J7>W,viqxs.@#m]d[';-5w[C1wQ30kkRGqChZIqCu5NI3&sJ@X7;WG>6b@NtUa1Z2eGbbQAWnwJC_'`IQVYN5'u`cYlNrBqGZp@rnZpcrpd/c(m96QC^w`>?Ggj%BJm@NM)AWp'qB%R/PPEE(w-H9^E&q+gxS`?Ivn%#2.5G>,8ja&d[AVwZ=^vkJ/VtHaV+f/_ui^LSDfI:m8.NG%]e:k/YVVPLZ.>.7Ic]JYoscGtmek=K[4;6Nf/E7BZIp*9EnUa,cJEeB[X]-v:2F5IjThuQ8)rUG3?0E6EtF'g?N/^([w>Lte5,ha[)05Ao=4A+Dj6;rwi(o6g*CM.@6KUnB&xNLn%vatvQEn/P#oc2>5@nxZbeqS0+%bqLqEk_0Tif&8Gr$_H^*s7seiaSsSFt2?P@b'gMNfkf@61b]K=f:CQ6Vhg2747VG^X&DU3Z:MHo[lLbTVqMf,$k9=*Ec(<@tP?IermEYED.L3.gUOO3ercRHjExdGO[F^Z^9^L3vt71+IZB[Va7$KcLL=xKdL(XTG)KKqpnYjk;p:uMYr2.#&kax+FJ/gWX*A`^hd.+9V>)0U$9[d]H,16F@E/6FM2aWJ2T&$%q@'@4lfRL51Ae#JpKtAho?1S&-l=_A:sC0@a1%Y8lo5))vYr&MEgQI6F5J@&b-+ZLtv*?$;B[L02XbX%<:jEi&D[;6(3&1:D[j@)E<[&wM%,bal*ij3#35946#s[[.]29O;Qd%K4SUiHAGY_4B(#6annVO0MqB'`O8enLhrDm.P4).sNk)d2J+6TTF2G0JH^2D'*[_6)*8_GUbss5a_M-m'E,R>m*p.+G7s3ZWO%[P+l,[RET1a>H,h5mvB_k;+.q'1X<20b9O7@+Q7_gtBV$'EI`e0Z&Ajjj]1k^>_1p0.N>%g'gSnnk]XWHrH^*ONM%LX9(xXnc7j`/s=$7hDNSlP0q`Y#'>76>55N%,Kh'kw@43FdvRW`pF*x;WCE)10T'%a]gZt1UfQiuqYJdFB.O<8f0K*UTX5b[F0#AIi*+.$GO`ngitf'l:r]-aQuFnT'u?gJ:^_ve=H6nj/.+&nj=ZC(vuqcn86n?X)QCFh&jZ=sqd.qBU3.:&e]H5@%ukJbd6OuiGu%+F&V3ovfaOL';7=f@hXg`1OhEU^HTjSN`Eim_io%gniN[K&]#D'uo$>d@UG_YD.mhkwc4@HI8N5AfAA3&->=J`vL(eS0v7vg(06W=,X&/T^o?sYC-xFq@/XDhG;2T`p,8Rc+us73>-,&Y,Nm>g)I[kp$L[^MN@rV&TAk`vX,:W(6HSV=V[8Fd]?NNg#mlP(#X)wxfj,TwFMbav/kL)cRg43L1#]$O/vGOrFM7k7_MDx1Q4hb48fQ,-rSL`C0@74bIr[S@8vkUBbj]e_d]33mdtVQCfcMsh:RUIX<&h&6;c&'As*59L8&sC$((lnj,mmb2vJlUcElLX;u.QchS9MLuuaY+'.XT8wT,ei7R]_=guI2k,^fkJfj=6'%)>XnZM/sffpo)uq^#-vNiiof)=kAfDo'&LQ]*$LgOKn5<#ij&I'k4vpZFJ;vEL7R^elw.x,n#E0@WAG;K&=9OZ]>p&SLw#CbIp:J=j=Si;X?sP$FQ/RxPe'=9r9_G3%6Dw<;YsQG4]d?)voE0`kNh<8S@*&Ja0c.(Envb:%fMv@5XiGnoC(NAD*illP^FA?7QmlK'_%1GsR(&Pe&ELJF.2=ut,%t:artX[2^<3d&a,qmf]Ee%u+*a^0A@r+7^KY_(._bMt+A[;S^-u:5h5Q>FpceD'&WObm2SMdn*Tv9-W5DWFHcj.UeBx2DRn=/IMJ]C3LgcK7hQLbnYcwTA/Jr,([%8TGRuowk/1Sf@9aPQa1OV=X'?>esm1uUU30gpt4dsg3)&iLbnpALW#4PPKnd&OG>xPW`,tFIGdA<9BA=un+v6q)iJSiUL9`+eBSok.fQ7q00*MKliZc2AYKRfl7xEbwHi<-Ep1I#V&[PlFA1=@*<4;-FNaDLd&PU[CFw4ZD3U/VH]hdxxU>Kof==ND&9@USE3mqpPHH)VfltSnLF0bTW2u4#Q/N*7$nLt$7Ig%1$Dn/Bs^a.3bBaK>^KT==xjgN.51VOq,i9wTx9:u6F^sDDvvUhRZ7$<@),q-OhqTtR+e?p'[kS?vHo68&4rq5[@-?BJ>aIAg(@a%Xp^pwSa`Apsn@#BjuS;-1c'rJ2a,sI34x_:5_TL6Ac*eq9dEqC&gWVIE'8/m-/g:G6s4[+R&lLC#ci)2eJc]L2J7^2N.g13Q`4j:r?%.u:A#7/F/kPwh$-Jp5:44Lc6M--'pZLnw&'##cKh=Ng1Ys7P3=XNfAS7].)`0,7)24q#;SM%k_i4@Y6T.7)C]k117me`@Wd;ddIUww`,G3Qxp2oTOIZwHK$s/Fg1W@2.f.xh`KPifFpP^]GB1db#PsV^uAJ-nNmuZ4bZjH8?,;R]skj]HSr`Mo[88qN1x@#3KDZ;Vr%+V93Stm_@7bY,(Z0LjkvXQNtXBpH(4X._k[.B4B%H3+XR651q>-WAY*J_/9;k:46nZe5Y-D?M,$255Q4@/W:ZJOB)$*J&9sa#`okF(KZ%+1sS*BvYTM#A>N^WgpbaB7t`#a_oclQBf/Ki4==6`IIuKR:g1/;:8V>=7%G^=#i7h2D&Rt]:ju#I#5mmLHV;;asR$9BYm0uug^BITRTgW&$xFW:vK'wS.(tIbK[tcH$8x7Zti(J$7Q14M7xU@c(/cgaN;+nM6`9s=t1U=1_8wvRAY,g*83T?qSMxvJthswU-A=>_'Qe/']HmNd<&I,L:FhfiL_e;[u%k6N6)I*?o4.;^ag2f-hN8ZSuSZ0Y?PS5O5x4PY6XJlN)kffk/CQbrKRrx*[.D/[aU`hMUf_.8_;$jmn&*b6tk;*5CUmS/%5uL27rn_-#r5BX(/V`q=I-#je48Qj.-L]LbPBa15vec#lhP`vwws*L44@qAT/BxfGR@W3)coNiKaMo8UI=dJZAbj@8unF4WCTrp_F>3uF.gEF.J1XguS#JxMnHijHD4R:;larjFd<4GMl]i/6%+:BYt/mh+T*DpAP7?wZvTC]'<[_ad#Wqv`lnM#)Wo1s0Ffww9tJQj[^j]jqnAgR%xs58LXV9SI9F&laCioRAwt?C#UjL_Uo*E)>a.k%-IVq4&ijxgAAh&pFxsdF[MFxKcH#:>4^r+dWM'OaPdIkog*de)2LiaLOSR/2=vs%aS8:+tPs_'6'[.u1w]XJ[_0)*%43ZiuB6>,Lj_(0^_?]t;a?AJe+Ht8$vf;wm+e(6-T'S%iSB+P8ew.[68vW1vIY*7r]b(Ss7MalNi.HFtot3SP1xu&.JWT-;v+%Ma1DWPq8xLk&BU3mboV^*hu]tJE08H?9f_X>G9xX5_,:/$m<@9*;.-'dm7<*1vj5ap'Eg)6U#G1LZHr(CCW-wHI.7hwg[F)D#5,>V)DDJN728uRG369-?_/M=e1nrMDh#h_iUa6oPiXd:Lu>4o[;M5`25@Pd#`0#+mtIp[LJ,I/[EV0j$vkIpewch>:$;PnQ*E1B*Ep&+0,q1#A^eKGp3Z'xYc+'&MBQt99E#ZENP#BAkHQF_s/*QEK3B>qXhlio+?.Zq&1vF49V<-HO7LGBmJ'bO@2Qq4S_anOJdFv.`vO$3RhRPq^.6NKjjJQYAXsZ8]:6*QU;LM_50BGg:+G9]v4$oeo'q&8L=;JX$@rj#a,+O$029wGwT%RneB3EUQc?70p,$i>a%9%qQTqBTawr[i`b3vCX)>XUb7.dge[F?>'hn]`QcuAp[0UnZlf/R;g8(UK(&v0JRH#@6b0U%N?[t#XsvP:KqKaUg23rx5B`<.&nI<+@3Np%8H+2rkWgVdMxS6onqs1[mejv&MuN7Xw`^:Q>nDg/wj>.Z/tXP#nuein3.`(5o6lHHKPOiMh@P##U<4Qv7IjMfIA1xK$:<@eqKu)wNiQ0[_m*O1^j/wT5j-NJN<6usvK^6%idRd'hG1B@^VPVc7.Xwgn1N<`Rv:Rr4s*Ar0+1bAPKcHN#JMbKgg2W(5l+)OKvxjF7s<0:4b6>[I-.U-q0Ns=_ttTQEf+L'1ngF_n@sMH[X,b-X'_a7Z3_Klse7EPnViv;iXt^sPC5GWHC4_'oHB:44mrS'vPe&ca_hOq(Y)oY()QYk'_*7pcL?Vs+OVt#rknW0D^3NuKk^)tP5o;#4GZ:m@,E@A6gn8V?s-^^48jsf<@;1E5JAN?@sBt(%@oPVg97C%FEM^thTD%tK<-mi*H'6t0w@W=HGtvp9lUps6llGo=lA)$qQQ`sKgKi-6/+ipt@:(L)[A:`o*`#bYl3NI;tcr6>M0j##-&LPTNQ^seF6$75'c2rHnhBejxGXOW:^92,3w:d2mJMdS'oG(-H7&SqJZ%tXZUERM`Jq<'Pv(^@OUaVt2G'T0[JG7&$+faXbh4&*kN5_W<&xtuN@#e,p]g0iKVG%6FgfLw9-S9qx_@t2HKh04Jg:$iB.h#6,'$]`]VQ#WGtkr>nof,/NQm:3-XClTAf&$_<#Qpm-Nsw4Y_FMioSGm]m1'HB,E3-mlH5rI6XHiILfmqmJ0KgHm-Q;vo,%RUX9uxEA2-Zj>0FKS/YLJ=c8oH^$r]T1a/>kV*7bNd(1ChUIcg6V2KDKH[O4OXM7L'nuE;[u>ND>sFGx55D5s_Oto_6Z,YnA#JPs?Y-lUXCJH-nVTiEr[aJMq<-A@UDm>os7vYo:oHKCIx=Us*'gjeXr5nvINBkoN?pi:gRcA^,WI[@k:Z];7G2r*=>RtCQe0cIF:Zs_o^@]?gPok=1kTQV0:vJu$gUceG?&ac]k2M-D=(k$]mXf,o8'u^melwsdR7*?O$hC-thu(V?N'7p1PS.`tm.Atr1qOQ3Z0FVH0]TIQ-HCR/pqG0?A2-tR_q`q4gFnKn.:u#l,Y8)H^XfIA`FElGUa.-rh/pYGK#@XOskGegYe7`s/kR.tntZ9'D<1*:N8b_^Mk?0ra_CPC)#<8_Vuxi@s1e`WG>>$2Ol&rvDC#rQV#G^m)J2`XN(*CNBfU0f8'l^1rLpmml=nX'R/_R%*=TWZ-Wn5WL+VQS2Z7MkYS@f0V*i9a^;8g>H/tW[<9d_L8aE)TcH-Z,'$OfnBMq4C)rt0/v*-X5+@toZ??2OdSKaSvEx45sk9Ng4U8d6[6Utd9aZuwh()8Vsr9W6=#itc7IfGVK/>&Dif]r+#fdhehdQs@C=RIO$2FKx]6B7bod3?e/h'92%n>+^2+l;lcYnxLs+<1gVX15r2LMxXHrYs+8/8DiKuaX3dw,4&F@Te5W'x=#_#mZ&Rcu=PCVC]9P7DjZ$YAnd`[6Dp9,t5M`=U'E4HhhVnEdaoU,%3%1S[h,?VqrP^.K?eUB6iYiR7cWH$v?'O-Q?5uTmx307S`=P(IpN:'7JQE=$<+mZc9GvP^J:he&K)tP]FH$F/TkQJ7g*'oA*_TjA*v4w>dtcZY6ls9%fDsVL)+=^a#AY.$lBVNMO#9Al8]$C.E&%oK]Hx1L2FT-6VtmKG`QF,8#:bTuUea$vo+A_Iqt)'=Y7sp*K0mPL_V;xnavplJl/c_Jj5L.3#2I>O';73Fnn#g&&DO/CV8c-p^s_5$#JSKXD4-Z7f$.7nFQ.oUr38QACIUOVWa*'Vhha9v%^;2`t`r0&e+[>KG_uft2c4Ru`H)Nb>R25aLp[a#G`M;6*6%B80-o_`4Gfa>@UBgAm-M-$VNH7:gHE=$`FWdk%3H=I_C#`a4BBD@mjc,L72Bk)v4w?rZN_[EhGp9rrf&pN9HEjLfs$jiPYcv^vdBso>=ldKQW)lJ3-38XHTs$u+`NHCm`lZDM)Mvp6D.113ZZwr28X.OQH*-d:_rb';iF7b+[C`<>tpXGVdb)%#?a4AAD0r6DrP>6e&SUuh[HlFx>6xu6GHQEDiRZk^-:G`D%VX`bN0m8>=jMA)%H.w_nMWQOVP67O5e8$4dd/`CsSs)Y<5tH_L&$_J;)6m^kV,iTSCOtJdK+:^-^7b[34oMYh`gQ4aG=E_7x:Fi8>Aw+q#NY2i7=ee&)lBfu,E=2c4s2oUpf+bNt(Z=Ct89oHnfa0a`OhuNI;NoU+S@:6VPqo/dO/&ov_W8lTcLNueI0=(4p_nuYaj;lE1,F%>xhm7qPmxD8;hDG/5OU4>r;C`c`LxOjm@9$F]9+L1Z`/C_$gVtl$?1FUEext#LWq0gYElA)@R0kIEC*EX;?TV`OB^sRa`4Zk$%/'pxucU]YLP&UE4R*uAm@m#2bHHL;R;RaeF/_GiWfp0mC)qBKmdJoH><.xV;^mF+i07^u7YI6t$5_xw/5i>82JesjpS:jvOf9gKcaMk8#gD9nj8;RLY5Y7+m+GAV7-LktMReZ?nXnS6':K7JZ<>v?JqCM%L>lUw>6c9wtDwgl'p:-&vIST)@c(IXuWQ:6_0IJJ#mP:Gf0[b9a1K/rcAxIGb,VkbqKLR#RFkrHK#*H6BsB`iQ+jqfP^58L5XUxM5*/%_SUF.q@A5D2T)q_u*e_i0F#%P;^`6eY@-R]b3:jWU1QmoB@gf8q&aw+OtFL&lY/:::NqW%RF@j<$S+>4=rnMXaAOS.I(J$7NYBv6GdRsAfQsPX3M9n20l>w1S9HS`jZ]_^st]V@K8NmtLIgNQaH9nhk#C>Cdg&r+r2s*,6b)l4_o9pb(a23g'cj?iu]g%@MA,:&lVt4OI_[)[$`FO-su1Uj#Y8w3iUu&Qk5'g0ISj5(ume=R*MaK<.,VKo$%S#V(Q4H=iLiZAJgS,eqJ2[[c`5Ks12<;N)0V;A'nj`Su<6O:p2PLZ.uPt&gs#4^7l;x9kakT//s(Kb_lC[O%@8GHIG%Z)(M.E$OdHj'L,QpO.0*%asIs[ZN/XW6b:&-t6_HoC6W(,F7(FgKe;_r/l`*hu#B_@S6:S55Ef,KQt<]2,Fbux:DYO'i/ZbVO7F@E_aM())dKiRjs;[qv`?m^fUKCW>Ku;T*vae%ku&^q@_mEGH)Wt>th>6iw`EGZ%ME?k^SS6TA7Bv*7@47T,gcvUL.d;Y+?7Y(2(oe.0oaJ;PA-.K3b^qdkoq#3c[QWYZPe,Wl])L6]F)a=bft7G,vRVphfa5RU+pqBuT8;Bk<$m[d+oT=+qAg><0OEnCjVkO68B:`o@H*kH(bjV>-.1pm@$?<-vG)@+uMS1YZx^Wv6:vF.LT86$KHRckUEixwgQR>2CEcnC*A6Z#7c'v/KN$D*L`+'Ja_r8g*rw]M^*02wL:baa%rAo9t:f]lKu5HjF1cwKCj$>2Q@gVW?k>`@._j&?Zs[*,<&B8&,:gCn.m>7)?-N^2v6Qe.apJQ8[CF?w7U-P)'r4B$'^j(-f/Yi85oW'%;/^vub2B7,9O0BEXf1-rhuKN^8+qZ@Utj%bpR[1Ucs:e]wO4H:X?Jg2UJ$D+gkI5QmeFrsSSM8uFAYHc7;_dEOU9U:M==GTetxOO/d/3I//6f=,RxKS%;i0W5gR%U*D[jgVD^%w_HxFGWe2rlSx],V:9j&4iNhpB>f$7sUZ(xYcRh>Q>P8pouM4b&a>b`A)l2Z:Y1KlAmLid].U;H>w,R-6YYLO%5)%l&Vd7iie5RmNnJ=iaU$gc4kc)=(>>V)uFM>r2j^3'(bWDjucO$BZVA$U/&>c]=asd9aj#C'?BNhSCX.sj+K.*oB%$'_[rK%HhnfS'i5*[#D:6ZdfS.=Y(2W)vIQ.Iwx_h#@5t#xKp7%U*O7$5VAmkoAt5<[=$c>SPZ)qa9S?UeD.$TXKR0u+sie-ZoC`E,J#'JZ-r:u[ek):*b2/(gs'%_a9P,5MASSAc=PWaJ:@wK>0G*p*vKruxYYvZqu.T-@45gaDE4vc=)NDukv'5vncg+@ktXtV:Ga+kv)[2xrm>Hf9oH/+KpU40S,=v,Q1gN[Fd$U,n=?O__gpAWN7i*a?;Vq3,-P@MI/-8ls]JNIt1BTPVDIxP0qsJFBXXlun^/)ST_cM=g>]>8#dfGs@Hn?Cl]jo@iQp)7MC`G(`r.&QT8.&/p=Jw%VNp;EB)jlLfG4i'f;Q/UE1vsu7&E_12.imXVlkAx08R/L;5E'o'FEbsc'x1C(CU(L124U_=:rkW3<3^Hom=,`lBW(*%]=b,MDdDW-iS&OWCmeL%1m)l39@nX[BlmbYC_.LSWAhat5DEoZbYcwJbIm0'2&x_NC,v]7uQ$LuCDU^f-Cgn)#Rf^%>*$daKCX5Q%0*djP&8-vxg8xE`bsn3k(dS2rMPKc2`/^jJ:qoK%knhb_;in8Oe.St*0RVDa+7))S7[-J`YcC>04C:-UqJOlE+IP7BVwf2(jqm7k:duDOO`hkxI-WXMbtTBFsV'%8#dvZ8aqS7hgNhM`pM5#a:q,vF:os133i/#I_@3b0]RIE0cj'o=u-^7P6hKlpT5fMMUBW@tba:,L'#.&g8f=u.Fc(`:8wfstHD?mhd2qr*dtw4p%vi$^ra+>L9JwopNW2-ZDK_,P2nIVe#$eZV[A9Fh;dg/iE^(PQ)e4?X$4M5_?C%k/Iv(Cf=Zlmu0afAFZV1*KBd4&3)&Axj8u54tYtU[F7rjm*5vW*%eaJR@At0;'5%bw_AQ70-(2Fm$=uN@s'a3WQj@'2PL/vQw.vlo9XDYFOL>.VrtJb>R>E+JdfVE0@)4jOp.Rvsj5lS7b-a)]E>HlR7H_V)i/tD%k@3Q[POJA0qW,lnx`$wTL.Nm;JID[jIfJchwhAv[>`PI-s>#MhJ(1[QBrmo'o3P*aq/UGfo3A0l-@$/i.xtC]f,'2AAiS89jY3>Qq6*si#arHYENK)X5op1,ZNr'q/X0^8Wf8-Qj1`7pXtTwK0iSOd]'u.:4J^*GlLfADE7G?tjV(=5/^4+6:#A9wWe>^k%Pk-0Xo#9r8vS9/b*5?b@b?s(`a]f-PE1lppHpxK5_)XQQIC'%/@f&;f9;BEMSdn7fY;@;ErA@xuU7KEsNEv4^Fm>>8$*%RnKu3/d[8OW-8f_hrHJoOWb7@12]mHk&v(2-CTZt6:X$6/$V8bCuW)QjWo=#L9b*h0e_jmxTf)KAn^k+@N=bn8e*nv)^1;>p?75=8R3BK8,=YnAM?SNrFgsn@%XTRos@BPf=2Zg_SL6v>/k^.B3auGnYxU(FplIo>KO9E`Xw3F/.WQ2BNjgKI(B9Cw=@(ph+[G,pc?l6;lH`iFMY'_SI4Grv^dvYAm76w&L%OiQc'Fej,(`1v.mAw91nrY%='LPIm[2sZPf.huC=S0([*%2GEts=+S7?uXgVSeK3l_*s5tOvLmocEm3Up(u=PGUhi^,-rvOp8n9_-4YrKBJvX%:#B2X0Tc[1]1LV-t?3jJIEc@b_-U^f==pS&Vg-[>LuvCTtE7S%FrPdO?Uok721k=5-Xmku64`vDAm45(Y]orcQXrixkxdBYIbkxA%*frcjGo?[C]bRK=:vQf9?o7NIDLY<[;rEY1)q?MZ;-UsATma:Fc-VWhupn6N?ZG1`=^M8=gblH1<4#gVQ7;i46%ST^xs>sE9(^A4.7>WC-qIJH8`*t0+hYlS1AK`J^aJ)g9-oOXFmAV>#vpDG?Bd=n7$'kkQ+^jh8$Ki1*q:Aru$NH-nL+*F@)k$OkOh.bg'8<+htf$hh*kW(9iJ+A+Q3'.N$pX*i`P&oISp1KtGBIS+G@jSFm*m)`Yp6vtq?8%uo6q$LB4&X6%;$SK[.2m>ArPsRIGFhLFl[J0INfKX#19/jEStsJp9-C<--Y3+/N@uHvai'^O9l`Dfh:ZS/X5tb'oZDl>7)qIo^_Xt3+ZK.+Wq1$t'N[V>V44`G1E9w'vVsF+[,X+(']8lBN47FT.)KRo_?)UI=kTZ/HaO%P$=##NkNA`YYScN;qTlkABNq-'%8GMl.9kJRK-$uU-dj%3Yrp)_#=puTn1]bXbjEj%rF$T@_o*^5OC&bMGu'hv@YtNk:@rtpmou#eK0mk);rY6BunuUR4v#e-PO?`2.cN`v>vQJ]<&:8LWxnmKN1Kp^+VYD[jsas)/Ee#xG#v#k93OKfmYC(0i3Q7w#_,46S<]wr[[q$VwT4Z(r`ot_4_Qg#UvO*a9e;/P^xr*,8W0c'BE#Nsh=E3SABR3Qvg;NZPdw^8p`V^+>'(.842ox(E2U_CNtU-+FGpS?nKVVqJbY$s=pbuI'FPluFg'welCfUa`s?U+DEXpFb#_ca;7MH`vgK(U6$:%-g8^/v[O$vlMDR:uWi&M7N:0C8s+$dItO)S7jw+oqP&*JavBex5lu',Higt3QxZU#b>%n3?$A5D%/QlMsKR*'.*tC9Fk&R2OZ#.h+YEt[MRo87.*DceMZXBUW^fD#HqDOm#77#Dig#n*@0lds%?n?UR%vP[?DWw4b):rD<==CtW1uu.QxpJ/?p7B-#aU-F5k,&8GYKT)f]0%0vBtPmt-dpmiRth9iNB*WT^p(*piY8tToI49FMN?a6]/nS=n:I&m:_d'_fQAbaleCarm,3voWrX,T.k.L&s0.L15s6utd#Xj8I#d/p0mYPJFUo+xI5`GEZDS*iIbV7uXx=leuXY`ZH(KL-W#cqj5emN#Lj,*%Bm1(D1o+2a1n)*aWt(ahOaoFf,q6lK5ou>V0ccucCj_1t^g$(x/U:WL#Nxa^R'=dxo[jbj>cuWQ8h+C1OS^Wjo]iT[:QKbgBBMnV?q4.^D]Bb'_5kJI%],LsTuoQ/UV.:(AW)ESI-r4CB&_au$6/5WBM*9g(-h*#@kJp''paYDA>[bYEuLu8Gvllot(7.=f5WtPK5i^>Y%x4c_w=61*9^R]Nfokm4>p5b5'8gXULfS5ncHVfXCS7:CL*t7n99Vn.Ijmf&,Bre+Xut`+)S%*?q]I9g'+ve1E><8=_cmK.(fu/pxu(wc1?BLMtPpc@H-q7f@))]`WCO6/,A)H3SFK%Lq:$Ik-4FemI4$Y$xjJFXI.9kxgiuHH:-5:O&;$^Xj]'S5%,t/F'8ZifUU7b;rj94%UWWihLX4eRO9vH0Yh[T5qmaHdRxFq,[.L;j.MoREfvf(h$eZ;u>Z71>jrk?OrY&i9f=l0KXan3j'6Ab)(`aC;&Cq*w[7[dN6bTG]WA+la3e_lb;Xg5wLO?TSIL_hH?bAVbe@ZMEIT#/mKj7Z-jG_nUHAo.D#9xiu>8u_T(Y8xu4icZU&N8]AZVS^2tBs2`Nl,4Ut38IP7I7o_j>-4I_Gd1D'9tr19SIj2aeU$f/^7fcaV8O5oGR8BWL`jdXH#&=^*t':(mrX0m]*&)qi*P]bsV7i+oJR-uVw9Y94POY5C[vfqMX1Zaf@+:_-[E&?1qhv<88tt*smkKHwV.I.ZX%gual6lJ?I_KGW_pTan@1)lqwg2qOahmjsYJ>7c,r.:`_(2vD;1@t#g/RjRc/JaD`n/O)tvg?-U*@FmwX>Bnn_+UHCF8/&q+2tCOYDs'3QS@Vxu5$)/.#gSOLk$+>uV%n9,MtK$Qn%0EuwDl?5d#Q9[nUfqEjs7&n5:@nA(#N@%rlc=FK_R0?lArwPh4c1n[#@ChYn=T$G2ogL9H1/gc1N=8N4KLw%Yx7CuXd4RWtwM5aN:WY[bikPQ*2;jMVsk0O/DfMbi0g9+%h>u_H37BB3[)s#a&J8,lYbY%(]RQeumaR22.BN#LQDf+_nJF]+.$=Y[-_C5iFX-(M<`^:QrDw-ARjf,nqA$aE-(%vr*Hnlo5KPq%II`L.tebtrd&Wl'ceG^2T+,:*'C:?KH<=^bo8RcsD8t8_Lm3qa$D/O&4EXd7ov7k]^P[l1:N^]sM@)VJ@dUWY>'27OfJoC;sVigg5.7nJI>IMedm>8vLPFpM>RY)v3otvthr.beiQ+Ergvh$(*]IW2j)Csk'/tJfM2RZKUBLV-FZ7MaN0Q.(CaCQs1gNGlx#`[j6O>4cwDc7-,6O2$0MP'tAJdfU-w5r$I&io]^,v'5F6S9c0Pnr6E=m:$I68o%'UGCu[O+3kxYv:$Av,NttnN+%t)T,=GCUR>]'$JHc?Xu8kl(a:bC?uE-CPl_,g_F_LRrZ?fp3uHp2g'`]`cs`^0Co>?f#KaLoV.t'I%K^nL65/6)RA#b7H1t`Ear6B.SoR1A2jiSA,+B$(+Lkjmbu_*MVX8l59d#L%QWASrP2))0;M'::4@coeVGsKWVq=TTs[dox.K7#ejU:YFF/ub-Xw>EsV`f$u&.Ew`Gj,_qkrP,]xfKBhtPY)npvDsFsGeWLcA'mtA(.]WLnE4(GQ:jVZqnP71d1QQpsl@uxxUOeJh#VuE;iO7OWUekfb]Kr)u:&5([-DmlkkcE6DUB'5dl48rNMd5X8,QU;D,X#4W]J-f0@8Jsr9n%NJ(0AF)_H1s]2R%*MHu4#lHH_*Ch>P-Bu&gd6Q,h;BC(o:J4F<:.tK386MMC2$Bc/u$D9uo,w?t@g=l$'6bZf0_tr4,B%mk%W=U4p&57rG?;'vkNo5t`vdxh'w3cAQ)WA=3U-EJ3u)4AvlJ(4Z;?%9Aw9WY*CL,FiouNc*_4o>^8OjTa`(>Ob=-#nBhLgj&K?3cv48k;3a%o],nV-bo,rphp2_S5Ups?>9R<<2j0-$VCto32aO3Duq]6rKQ.q$tcbp5M%jtdl3&mdbAe0XdZ)QNhc'nuB/_TLuf3,PMaAUq.+G6%(7Z(SAM&ox/7(cb.G.T]#L9vahODrfj8S%nFH_hgq-;$C8ueUB0j4gSc#8vI#kSnNi6W?a5eU8_l9jMrTn7r)KUp/KaFN7313T@8/?l8xNH(<[-P)GWvurtu<7wl7$c9;t&O-smIVKwkte:Fqk#Njk28J9ZsErl12rwf[2t3vS$muo*pxFYL_Eg:e]Qkh>nijls`0qC[sEFJv).Q3vj9APIG1'(@qPcY-U+]P^roK`W1@Jw/7lpvI(_o&lZ(w`XE&UnLl`ITMI[.('U/[i0aXQT5u3NQeqH$fi8.$6su=^u8aiEjD'*F3UKP>u]q;f4&LkO7hv7SIlh6sC`,x9v$'p5[kS'6V'Si`f^:VRGkfK=7kl^Mi(0iN&f34B7xq@duHbQJa[=2?fDfdi&/odh8qPnj.M57(j_PUs-Sx^Y<@pD%[#1`.24$.+BVwJI2@AXt-#;p8-cNO(JI_w>[).qa*iC_6ASaghojfKD2nUL*MfYw9a80XmSZ5]:LC#'hJkEsg9989f'LPj96&+&WTeU,Qi_mWIKt^+8$95]ptLN`o7%N'2awYF^6rM74/Qmu&hg:;2idt*j-Dv#7qPff,4_bVOO@?M8N(a&+rCcv1-lL;UK^mexp4;Mp7n;5_L^k7@>q6Emu-/]'/Z[^-P+=fH^&nk[?MEsu9Nqd2Ix6uHZA0G>v[nf%,kx$O)`A=Ot3@kJ$:w5JheK6%mk$6pD&mH8SbMX`f_i.jc`2='g?a_)`T8WY=%p)3#jY&='_EeX0(GfKGd4F:c^[8iFIR6R=gbe*,01=TB1fWO*RuO-8-UAwaWmA/)tR@r=1a%-X<7)5QZsD5])(bih-(AP&Ya`BDfurc:Jar0OAdSPEar0Ku2vIRaYn=,,2V7/l6^s^o'f]9Rtu@dEC^S$tQ'VZBq$?45eb'^;VgK[*XPOhr>J'uA15NO2(H[XP@Q3cupVgW%/aXhVpRL+x]tCRAp]rIW5-o1a8cV6dIkr@[;SfDQ7K*ms5m[7,qT^OT,_SZL(-bWx^VL2.t/cP`GsR%`)5j'-7pKv30#&Oj`A:ZdC;nmdlJx67SI:fcoU7aiMM%uOjf%Wm<7;'lr)R5o5(U6/nts^*2oIMt_V:PItN-I)v1x3s6u8)E92%@QA202]MD]Q)k/LL9ZMPBVF74sFVuG?=&ZQ'mtF$6:u>Gu8-I.fwUM>685J/,Kj&)^*L#%^DRF`I^DX5OpfDcbWk?On38F^<5Lu*7Lg*gwJdWjRYP;>aMwtV+CAoQm9?S7LTv'NWi-U/x*o,mD.79aT2%VlE5.ic#Yw[FwpvDEQ[dvtFrYdf4@*$TdY7I)=X^t6hi1gae8;s@#V-?-+mps/12KwC_eY`XLj]2#VoXs&-Lq0lb)MepjG-vsX0Xq*HX5p/,u$rfdwoC2t/6@dK3#fAgaNoAtGenX^PG@rV^s*I'hgh1s9&IMld5PpK&][S?-L<'9sKAdM,c.UuV6RT7s&QZr2D=lGEa%EG#Q-LXvLk&=WK1QiSVcu+xopr0qf0-oLt3lNnM_qK3A_Sduh`bi5UQFFTh9ii,YoXnI8)Sh^CFTK'L>)c^kNb);&FX@=]Iceg94dxxR?BLk'RkUVdSOq$%CYGA;9D)k/j/@Y_JqV7g%/ZS=N'KW%+mmN]48QT[*QbJ;,(Fe,/qZW.$a*io6vN`+rb5jnMteEQ&rbf2w$;1--$**#N.YU#blYwNTW2R)@#n:tSDpH8r,AZE*&*6%nNTxj0`#&c+&*p%-kSWmxSb'L,9mE7Of6(:D@D1Jpq6R9gV3wB2i@c(MQ31p%I^ggT5=Y#[Ruvqqin6vUugjFW=d;r2Rk^E0uGqtRa$sFfKL>7UbpnUM^a0PF*>n0I)%_8]T$8[c$URI/m1]N#G&/dBA3VkS/cP%6#.9$6Z+moREU)(hn`=E4`aD2<&%=7$F]4fH(lIpdO(Iv;HMfs*i$&EgN)UwA(hcM6?ZL)BVmAV[73j'BEJ4>_CeJ#<^[S0QfV6]AQ3u]C^x.?N).tA>(N'`AmPrkh-Z#`5&d77-K;mdd/6,VgJWG6I358Yd'J)(SK4%kAsdgu1SJCrW%NXuVM6XeeZD48%rAH7AYU,u-u2)?i,,#(lq-Dtn$$Ye$_gDA=gUmShqhbqnLi-('O9?0c2$fMcDA;$]9[tZS+FD;bQ,fL=L&H2F0bV@8(626F5u;H^=HL)^VSSHg.,qt>]v^N/A0hlK-^w]+-/Y#q16Z4+L^]:M=o3v,d?ipZ:ET9/&c_aT$P(Y3>>5q[R]Dvk7e8cUK59(>8^S)B2oJT#W7@$Z6W@6%b8E%[-[)Yo@#>98ot3RpO_N1Y5V3O3r.h;S7DL;wkfBiQN[)D8.LS@rdB&LBtc,m%b*T;gt)M,YK_?`9vM*bsm5qt5-pFv),HW>Ua&Kdt68GhB2ndH&V`/qd;F[)+[HJVEs%4h;^UWsd##'$?QT/$owZh*VI4,kx(j/4B9o48U4@I+k+pEmt'<[tn;p4/xU8eKK/hj9+`sjoBA7abgV,Mn7#DAd?gkXrA1Qo%Mk:luHAvXeM4`c5<)+05]/Qj$i;*tdS2.8SD;HX@(W6x$OHlP,M_l&+[RV[Ldbk'Lc-q]jkl8'2LN%[kw:>R0w?#'sAso^*ig@DaUJjCK7r_PAPgR*>YD?6UZOlqunWu/v$CL>7L.8%LRDFa;'@1-m]s?/aHGpETQ1ow4tu^EMS-W[=CPh4p#`)sfjE@=7Ah2p`^4g-((2I=b[j,,aY(A:2;abm/.I'54#(R*tA@6)N5mb9`%.;0(g&w0)*CANbP5ZJsx]w;lb7R]*dUfAI3fh46,dO,($gT;$V&`.rfE-RfjpPV$sKa/Nx=L67mU[j3d>#CqP;th(r=80YtmBwt+bWwT4B?[D_Es+6>Ab,j,^>u23mbi7?9RFr]9D1P2sUvt-ditS*-2#^+=Y9uDJl6*U:T)(kmt*DMN3JG?',=`6-T6krL[DtsPM0L4K'D4TqfIRaKJZ*(Y]G37S9N7Yp,Y8Cuojmu=ErOUII5q(YJ3F>M5nmA;h/DArJ,XCKe0tI0`H(KRO,as^JKl_3eROB^2ALe/5`aY)seuQS(5vNJ7=.YC$W$+Ac^DjQEwZ(s%SfP%]_C=*j/Dg*ae^c@X==RKeF`>73Y=6unCeIj[fZDuHfR4l$djs#Q]H<]tPKR7=9%F2>&O?jPP1>'*6?,a1rVY*8h^a[&?]uADn_WhG.LoK#;mr%x)A&LoH(]]s/J&LB'@R,+n<(WGP'=K()_q+k6JD^_;EX<`9(`s0FPfIdlb?9dD[RD>$q5/3OXu_t.s*w>pu''Sj0f&tM[<.3)Yshx;un=/l?-4u6S,I_XPvts@>XYlx4E^3)q5AmFqmok_n'kO6JA]0KY--pKAani)V]&=s3]B;2EVvY[#)1R%>1Gos%PAI$>U-L`#-@L'LHtx=N2h:6t''YO]Wj46cbF'$cHwMl+4],%Gx&%aSr5,(I3ss/QZ9F6BR/U[v`SfE2:r&l7:R19t9=M$t.bPjjR/eIt7dQu&_E^4g=,g)(fFIuJldqLiI.+vkT`;u*e>$0fX^TRvB9xl%kCDGFl3]Fw']t(g#6)]biG7:_$$w:>8M2bKL=/j[^][ReV3aY^jANw8r@lO,(wFwX#8YVoTuK7Sf($CxD^44ZI9*c.topJ-m.EKPu_*CKlc@xrM%EGNs%sqR%@Zx5-,bf&r;:75'BFN,Lkbp6lY??aN6.D5--4IA,aq>Csb(:Aa+]B8I/6IY3*w`.u@/19+1i(Fn++&7#62upB=&kdN$,nRpBFlZO.R$lSB,'_,Xs)r[UW@uZ8TrupTPu]kYA*t1-On[`j:fMK0,m/agxg-LubQ@`4>GNA&D>MIFOkGg;WhbYZ,Z6v/n.@bjC0tCX'%t0>R^P)`pP*iU;(G'3-s.1Q?si.7o=*vM`nQq;c+HMcOsBb=695ar3*B9dTn`HaZ&b5%T^(&b?@p/v'L*TPL4J8A$`H'u6XvT9as^_IXvG9i4h1.TBE`C&:XA3vp,CsFfKL>7@_+:uq8v(J/Ke?jP'bYn53ux2/,d[qdL#ZRaw9$L(]j'/E[N`qTe3ZK(x^s-B:KK$qe]&jqFre8goU'4(gd5rOOCK&im/>4Zd2kJ8eVIeEQbC93(Vx64d?8%1SqaU$:pV(VuLHQ^942Q`2JDfl#3L(KXc)L`Ga3gRn;(l(7@777k4suR6s[NgQXfR,']K[0oWqU`SU8TS;x-0:Y:v,]i#WZ08rJpf6Aa=l#/D#nN%$VWls4'qqma<9v9@BMLDsd-3-/?#,==Q*Q;Lb0Zu/[3*[S9t(Yw8rQo>nu)^uF@[C/t's?f/s&QGF@4):6%GF1m/4*f&sK/^9pK9,tHt@D3J_m48X%GiW-2Nb#I1b6A$w0#R:kjM7gYRJu`//i/LcFb.Elk;VQvLslDFRin/]PVI&6I?[`X6>uFcb_#%b.d%7%WP@@I-waB.bq6#G)M/wFhe'xaXwk`S=+Ut'3v4:P*OOCMxvl-0[nn.sh/-OCQqg:gB3#)(kW/Y$Jt^T?8[%G(xxRn*3,u1r5VYd7?#4Xu-o2v4E^3)q7'DVupClP%&7I0-Ad@0KGQEX`s06#s4O2[ged_=q@QB-#8=*CP@`[CMYxB0#3aYN>DX&v3sjZ_NsD0&`Lik-XOR&#IeZ?;:VXS*q?an1(*k5l9,c+2Kdg8**<#M)0AOs:Q.L.A_Hdm]NY490vh,CsF['/$L@HAXu]KP:rt`jFVDEq]PEdQxcdd&iO3uMq.*5H0JBOE8&,>C,Q198[u,JSvJ21UFrm)nh97NZE+8#H$+Y36c_=kl<')HWuO&KRM%*pOZQQ`Siq.-YlJ5^WCWk/tIj?E?A2-F3ed;V>JMbfR>glI4aps]x_qQMujpjqt)80$TMk>JACLgO2P6LhIM-1[ZO0:uF2?6Oc0qtFW2[uId)th.Gl4x%Rpcsb$E.&x[18rDbFMG[LTL*.x=X0)YCWL)(/D[NO&?FIRTg#up4K^[CrlT=l>((I7qad4]U@]X,hE'(Jh,r+r1wqlP0lgY$oN6WVtKDd_^`v0$sow^F3th1+nxRL_C[x+u:X$'[JZsJ983>Z:QR#rAa[gNJKQs2Ur.h*3_qKoKm0p8(J?J(RHYTBD;aJtfX=h:s7Cln9wk)#.,QY<5:B'#31L?@5Dd^+PI,10'>]:L45:4?2h^4fK+F-U[`f@S`ng1K0*c6#Z,ta`#^^DqfPWXP#t@EM@c,xBwR&;>>UN5@V).877<=`DI(Xwp#Qlaj2OI8-r5wu?'L7&$J74LS/DA:v?DHMj8Ka5r$0D;bsIa:LsJ:Q),MDEFk=c4^f5QjluEs]qrDoCEOg&(4?=8`6vci[ll5H>T-HCCbI;#C6e2I.(Lw1nl//DbXt/)ioa/a]&jWM%P:H;mN=)vNxX:AMtUVDi(<#YZ]3QFNLuk%2v4p,CsF)tBsb@G4:vaJYOe.gnrb.ZLJBfFGR7D&+-5/=]922DW4uOY>@Eu;TM-7T[%>`PicFFx>We+m%UeSe_>7t8mOn#mEnK1mX=PVjhKUWaC8BZR&(SKpQ`QZq8k*urnoAU0O@bx_H$vWR+.^F3t7['EA[a$9^HaS4qO-H%O38#(/3aS=uh1r-g/:Fc9JJ(X&VRFD/,)$v_=(_hjZR&%o/apoNJVj80r(Z0r;uE&K'#fV+b)7BS-su(AsFg6dmkn'u12BeIlu+uK%t=bed6C(3;24RgAA/RmjAPtAFro]O[PZ[)7q5EqdN%`]a>UGq1&[_]nJ_d.M1tCpS'2>bT1kRJwkMp$@B)7Ak_dG->kT+mJN,*1R%4XaZ#SnQ583OGFM:ApO.#Ufdq26.)NlSrIAfVin7TBK'_->o;&I;4t=vEpW(tL./%u`7k8vQ:kdA0[pl,m6tdR`)u40)^G;.b$'h6r-.?7nI%ewk7kHA_Pmkq.`SS^.%AC'0Al_fFgA32X5QiiNL9UbekpIt/hL9Gk=ADT2>[RAHm#r2C.uaG,>s5e#iAqiVjAf3oL9<>C2('f%`s.8.7&JdjIi%^JG2b*qQltruEIu[[IuhYi`Wh3gK]<1Bl$hu6O,G7,5H-fSWnYcLRAC>0[]v-,R`5kb,CEN[H-k*<]tqN_.uPoh9t(Yw8r3(@U6Sl&WblfV1`W-'H_S6MxtBK#LFp]CZ_E-Ch(^e&Q,GinrPg[vFn]$Cop/XnJRHvu]i[g@bZT@g+)C>aQabF4hk)hiW#@wH-L]-dYrYwIp%5r(ub@pIFi5=^,u&AC*&[-Hp_A3#h1LvvILBGdsuWt/:Im7c-*CPGWf<;>bXCaiEJK'f(E1iwqd)(OY#&ivnJ=8LeW@OEOiYEm1BXu,7_$IW-.M-$L7$BkAER$Zc*/a/k9jpJ:&b7GOjd7k:Fo]t+rgf.haVICgW^ZETf`^RfSl+^pJ5rtaYZk:Uh'#_(w@F2?LU0>N,qkn?%TIwS$$*)TDmRB.0xFYx]-PZmWs^A4XGJ6))*s;vMRM0?qn>vp5*PH)2BpcsG?h.n9Yh`1Dh7eU'MTF<&vqg,nd9Y)8)?SG^X748;8*O[.vNL4Le9kI,OEKuTq2Xva2/g_h+v`WPubx#8)>CNvK,9xR=#X?SC>Fa:EZ>&(%uljRIF)-p7h<@RW+9+%'EV5=NIxD#G%=g[r.V'#umL5*.w$aEP%0DXa^V7`*1Tsng^TOk^e0M9vf0R,Wq2#kfTJoSIaFqN$m,1GDqbp'r+$gV.6(@&/50Z2rLmo%*R_[o/?PTn3kq2>=0whcj8AZGS'&ad*NTMm0FF%+x@fNh4SP[ow,^+`C_lLw`&%qn?iJD%3aX(os4B9;(L9;AC<9(D;@9(C:]eCpGl_nhbI5c*v.'_,:%Z3Scr_jHQF/a_e7Iar^Lo_8Ear8;wQVjZ$rGA[?%Tj$+w'C$mYEAxA4hH:.%:u^bjqrg1n:LFH7$Bc.K>^JjKc2]1A2RgP*UfJ^2NI:-wRp.#mFVU1p0LB//D(YIXETE:J(-(PM_H@FIWK_]Gr?6tI0T2l$^*3*Xs6jZX:LgXeAD5R(W%N&39s?GG5vVD5`q/6[NOLs-#GqOE`9xc4-$k,TRod[Pfua52*bjs_DNIAx'(=f9.I2/<0LDDh&ldBHlDv1h3vPs3UCFZVIJC>]YooV,v6?ij3fU]b:d;xjZWK:,L#YV>cVdAb1dK:P:-k6b<(+K22m<5)_FAYpWB@Pdh+EMu?JY8po$77;j$OgYfu*?$TIfP007'uMXas:g:hwWJ6)uT&kYEF)qF_7kBwH[Z0d4-71TZT;AdR*1-M*bU@xtCTQ)S%6neAX6B+SKDlD,O'(K@VJ8%Uh=jMMauQ(R7mgH`:Fnog2c14((Y>^8Kh9u6[pjNY6alAd7Q.-e;Gi_7n+udlfNSktknaw66:kJlQJqY0HRFF0H=7QkkeU65(lr$Z1lDXBA3MSqX;GWxCgViDB>a%7Z7:,%YnGXD0vH[WbtvnR2u^np3vt6&CsN+?hdv[aI)WfFnrT@EhufE$xI*fO7v188%o[BoatEO%B;P%+orT4(%v.uD;QF?ok7S:1SRoL]%O$l2G2'_YZ0FYV7vH>nbmP$9Kc5on3?u(nvkB.Px8d%DfmqIRR[mZ/lf1?f/J2P)rH$Z&Faw@lfA`8GHj&Xmu6m,:9`QkwVpY(6mt;^PjU[72`aTQd;u01dhfBf=msuaMgp2t',k,_)Io=#P:vqr*9Q$ug6O>k>BV-+H&si%9SAEo]sPSno7u@K(_s_G4Lon.YZatW^)ogjB-njQ6LgN&1@b36es;mrDN#as&4fYkC9v,x6/L-'w2f>k%EIZb0:uZp+EnHO&hdWfLB*q'5C/kc3HQOwtfVq]Wob9@aAlb,K[c;E%coq@*9-ht;jo7NT#e]*qhX@,vgdlgO%-F=#6=jJ1eB3@u.O*RIJ*sD?,L.oi-lTTjBeOo[EX>[9OJ@l#Ra4_R8h>_n>7-*Uf:&0Wb$%=3n;WlqEV8%Z9;$9tTuO^@U5cn>V#dB7;$)L1r1o9YT6a@P`3hD2>e1:V8vV[v5frr%%`U#bYuaTN=AG#enp[0P]8o&:7vX+q.(cd#n`U$hZ]TcdQI+g:PBsdq/Xwl?>^`Cu`@aa=rZ1#-A&[SW3iSubL'EoaaMR(pQm^nP]]tt_ku>'gH*Ss,o_$NHZAD%pA/'KnGa4MCsft(9rFrG-C&11Y,0FIPF7[8unq^f$s6_*Pt35cuTAZ[#%O=o8biuHqOr&;0v9N.6lg&HcaTWIuP:kOx'6du@sN-i9vEM$mq0,F_LefdbrhAo;n6B09%l-tQ#9J>7vRS9:uY%sAuq?,oQ`,daOq_9`oaKptmgEbhKm4&tuBb,+sES+9a%;8bruGv3IeEG:vEK-Bj7cEw5XkmlqcaYuC(=7t^dRg8uPx4/dR,Y]1_US*^j_B6JLb6vdqxLMuj&6vs[uIQ5c-oY_+Zw2LJTcNIGc/.vlxs^jb.&%v,NWUeO-eeo$NBeh7aU>+pA9U3eP4c$gnB$)xN@r?5.`*2[>8tuC0[hffg'c`5+XN.22Z2g^?1h,ae=kSawqM^<4u+_WMcrF)(,9`hp.RIxHNLmIBV2+V^H:vQ7<8rlpIXWL/74JqpOtk[?KOJ6r(L_D%,OF`F1q4iC3xK`F?;qq`:3PuEK6nbC'-U./Q2kkHP/N_W5Yddnh1n<:2T=$'9+vH_=PMrIVBvkvYNdpWqW%lJ<5[HuxYMuE;w8mQk092gn(DE1MM2vGMHo@Q^TQt[jp6rRGZ]7R'=*2q/DYdcY6Ia^(QwktWA/u*dVKibJ0uu$Lu7b/Xk:D`QCkflh:S7vuVPA#fN]N&x#K3e%^r?LrTB#u.=g9Ko6#gC6am&OLN2(%%$7=rS9squ`h3vX2seiZPQn-aXQ8^tqXYg$-Mssk8$Zo>NY-LwSoh;,mPYBLQ'fkS(hwadR2op7Qn-'jq&2vs_8-LPjTN_sG?8pt*@ZU%[SpK=)-GF,52<96$#fgSQB#If.(#H=[9Rot3k6B-pd(K7/s[S:&RQ]Fq%pNdGh#X>MY1_%q]kb`P@b?#.[ug`nL9N27$A]G491vBQ8vRJkKYc.qYTI'L?GieudB)R.qIFRZ)Ig/vdsYGMtWd]0bcxEXp3sAbV2/M6jLY#oo_@JP2tKJ7NKi]F_:fWlsdkXu_TS(3hVIuPP]][4I)_l&65U?bAcJV$qle4U$Fnf'sNkfXSJ-$TlZTQt/+R[^/T*lJr8lp[Q&xP,4Fie8'&S1pRtwk-M]kJrZ/s-$'nEkPaxW[K#_)p^EIx$11V:>GG?bJq*-Rxf-[7E1suGW=O$[lfkN4NZRnQ;gLZag8_F+vXXuU+xMOTGwouP0l[tqXh+tL&jLpUD`:teZj0Qn[A]f+#L=_iX&$#P-cWI(XS7Vp+UxlZ'Z@tj?[o@4krk6?H^Anm[@xpPb+/CiruK'b2uEIX6FRaU19-mnU80LW9f,(rbk#-;D56q2okqMO.RWUD>=5%F3oE%*I`D$Cr]-Qq.g(8aCg;pO7e:r%6$gY<#A--0Ok@>v]Mee''b5[dxaR7'6rC>2^.qcGh;5qkdbD95xvhCU[maaAHQ5>@^d]sI+iQ%)P]LE$-qJXT%?AL%.>Qs^Beo0)q1LZl+<_VBcC[d)uAV-$O@hPG[)lfipI9&EdY-`HS5_`9U((u8*E$L%t9Z3_h370C^*/r5M(q&2Oc*c4Y=c^5#52Ga9G<[h`,T;W33u-#cQgfk;lkN7WsqMgbl1`^LnU#rMr/r)F<_x,hQk*Rch=>6Z$r;;=0Y[esOsnrH=#jgwaLt(6H+nFCko.AI$8$e-fuFo1BVn8D4#3RPbu^b1lk4v/28E]YEKf^=fLX'%fLi$'Bt@x:=<7x[+vn'p4J'Z'OnNxfCMZl+UT$W;@=XGA7vf]SPAXn6x9_TnLp-.%vkoG3fbUjZ?9c(t.2aUahEZ>vS#/uMY,*>YP%J28e$ZEW*%*iFVUheD#@Ux@O>(5.rruRcr$`r%G5d%D[in:`m&bq'>bHQI_X7IehJ'^KLBVq.(1j6JE6K?DoL2/.^akeUi'%Z6?F9s0s#m1(K*lhVpdHogIqe.[77lp1wR'd:j_x'3)6?HV3YVqn8&xsS>t>SVlLF1Ncs5ft']NXM@8ogZ?nxda%G0+TepA/Cq6(,j-^N&-+qkd8)VxmnA[i-mpVrp0Y5BUF7vVkg?bZ@qo_7JrM&uGJAHOPCJkrc`+Ea<$O8(f86ngkHJ@b%lC5XJ#Tf_qNvLhAkL_*.8xbaYn]3^Z40Iw%TN=;=+8[TtK8cBnr>ha9Owm48vOG8BpIaRfJ)fPT;)n1E#_aXYKRbh]d+H)ge[7:f-;8OXf`oRrkcB*GDOjLXA'eD[PY4ajNX:(xbU@PZt7L(d5UtnNn1OJ&$,h(b7twEucKK_G#=lb8j$Z&Wr3iN5viZ&*aV8M:L8cEng7b<(6TNK.LgmQdEn=6,8w6I?TV2Kka-&Khnedm.Q3s9lf,6Q_[3HckHIeGX3R-%uP_^^NlFva0hAW?gLFgpb$.ao3vD305a)A9TqAvxBdf_c'v>_S9;q99PA)BwaZ?kA8v3A83v_KxeQS:x&fY%#>CdRU5vvI8)dncN7v(2;srZC'+N-UA*>mJHhAskb6PA@$3:vZcUvuhSS*7^`Pdt2@xnkd+-c#B7S.qP:M4JW5L0vn/<:s=b?FnfEj%h56SffT-I$:>FDV$U?]?PH`ooQx?lEqwsFZf(qLIhJ8o-qg%WT`di^0p0K>>s*WE-?cL>srqN_Op9]VR./L1a[7`;eoT9(/?:9@5B2c+kJ7U+@X(^,ul(=kQkj&'>$M6*I)mw`[NF,Z:?%j1`)V7&i&x%6(FO,`jNID=u&CPn1-2X:>nA(/l%Mc64^xR:2-Q,Aa%4ir5vI^vELBwU.fo7N/I=J*xkh:p+a6xQl$@29=eVh-Or)L[-QjDRED;pr66hLCmJGt:xLnS.rK-5m]rdLM.uvuXJ2$O.vIOGwwshTs*uu,oC2PDHi`3FEMBl-1V3[[DE`i7HgA2dYT%heMkh`]1jJ6nx7.L]0iYIMNs%Bpk[wteO__;w?bwGd7@d5i+ef6e9W+`G]9Y=LotSxFm96N+,+h`#)K+b'Gx_kubD0&v%S;f_)tN>A'Fx>S@Fdp)L^RU1v3>MLui*)YP'tuE:08P`9J)KL)G:3XeK]S7MYHCuw9W4qrH*PSiv4hT@k&>Xe;N7vd_wftX2NE%B3-w4mMe,e.X_$*8K.>SJe5tu0GG`r,nK5vwN6:BSL05mDmSR>uSJ2XkDpHHuE?[lk:c0em:jmu-->fF33[)5niispsYW7n6$K#v;Hw6vot>8vYmR9vUNnwurKJ@217q)qBmVIUF(ogkc[%(%@*s0$@utITvbL.Plf6gr]1T0v-2gVG4hXjuFRL;?o^@Wv8W4oC[k06`:&xK.sg>d]hw7(36$'7hDCEMq*r^*XAG[/*;:/`<7L^:Zk`_>L,'Vw+qufH^:X>utmlo]k_`X?6d4HCq0I3U=[rYAJq2Su^n=LZ^4OJaQiB.VUJsJr$Q6t1Yb/<2b0v6['Jqcbp%F-Q[l/O_xF2OQ+h($q,AXg&i+:aSiGuDoaC%k?';QneN7ZXe54voTg(*([)Crj'%.;<a``tXXTdNa_E5&&6v#$nU3X&R/(%JaIIA5=)8_:Mnq?%#YN=o[VpP.Q?u[TqcdOtV/_9-gn(IiWLusA0oIVFo3vb?PRuf7Wu`A($HQ,t/`aeWF]NX@5_`]'H)$3av*eKk>:?AjLvoe&=#DmojK2+HZrU#4p+8TunkN)vj>&ro)HW_hP%NH0]3Vb/9-oIb.UX*-iYhXbifp5Adq0B2mu&Rh^Ejh>?,x3d'jDn*EV[-Fv9vaB0sD4dmQ4gt(:2mOJDn1Yift/ah_rlR'$qiJ8ikfij_lTZrCYWWqe9/L%tC(X5K=n85MmSCpG;jCT#OttK^*38J$m;1j(:8]tN?FULOnt[P1CE3K2v][B6kCi*'Eq.l,vXt>wkvPo,5#ZVF`'.QpK29I;o9*.GsFMM-Qe*J$lQ]%f/Pjr7v,$SsEhd'S[f]?ht.ltF(2X;1^:U8TI75>+L1=>&6#T0[a`Dso-HgF)7o5RhsUZv/r*b(BDKM(%b_5?C#(R23(qPciUX?nmus$dAXi_jJI`FM)vs1oxlEgCUQUie5v7VHgt=T6_84L<%n+S@YK:a&x;tRSE7:Im7ur[-G9V/f]jD$hLUuoVk6F)5hkCr=3'KF,a?Lo^:mAL]-)`07T.a2@6,t&?$eA/oYr=>;?xHC&4>nBCretBi*S[ZjK?[wipG'6nUv2vOeR5gGYQ)NjUNvk&3%0^;dJnH?>,PEhE2iJeWYp#l3>aO9EhKl^4EoUc8Om#>%pd>,N/O=,GKNfO+MGD4?7Qo(et,r8orG_*Q,BS:?8BkCHGukwCCug#k@U$1qO[,q3^SmBplkrDWXZR6pisJ-6%veZ3u)Y$g4ATTbuk3XSXuDLl$O6C)HiOQpYqFBjW<2[s+L@k=Aq9@k*r@iUbJk`[xDn8L%fA*:vImtC[]+gm]lk[2ZYa:F@B]IihVLDxck7TR7NuX&.=)P8SN=9fP]a/#:Ih&;DIJ9*I)aExBsr6E1oLwt>f;r/b#598'>7&Z2)ukkO1TBKOXGpkx1XHB_c^[,@PAr.)*,.ALeJc:Cqan+8(W=oY'Y6RG]lHb518cgD6t`1r.E>TN_a:M%WO];Tf(I&a&#pEfvUc/1k_Ja4dA:(iDUSVZ7fk9uIV`KB>H@:rHFYkMt$b%:Tp2;G2b0T`RNqvoWf<]7A1RUGlOvL^0sOl]+vb[gqH)/@?&f+:tJJPn?]nER8TJD;koFGlWNmC8ue)sg(eAAUUs0u@J5k@;np8Ft*[:.1``(Hu*bRC$PA?-0=v2Ut#AOjS#,GraruvdY#wtSD2>I.GR]a(HcRnR(5Mgw-kg*0=(X.L]lAY'F;#lpPQq+tUmwFD;Q+U@2tOM,]4G]/rqG>q4ba/3$(HR4n>jJHFD=)gqt$ZuEFP[9X`VSd)qp*kDdG0Xo@_Y*SoLj`%MLD'Na6>MQWjjjcUwglLBiUH4)(1>]Ou=jXX+<.tCkmpGd-_tUGuZw^Ag(.,V=2n4vedF_IDho*UM>o7JmaR3Z+=skmg`xdaIs+IkBt3.D6BL>9AJ1X8-$(1N%;k>72`a$,-,DiDA-%,(FjfAPmr:$p47v+a18Qx8JoR`ALkuUf;xeu/Tj`pgIH>GGL=(uA),mN#S-Jl8cfDR&JB<.l1So7^R+#aBX0W@Jv9'kRaD4mX(/iVPYQG&E+Jx$$^]m$TkMl]%(Ucmf@5'K:oXPqk99,DkRZi_LAtjuL_(A`G&EUcA;Cvd.3t-hg8W1?43d6rdWXnxS+$'oZhGU#5=F_jHT#Z5l$&Sf:;;>+WVeUpdJ`GcgKGaZ:ZRdJaKm7pcdDCS/u#kY,_o1*7JXrsGm>=pukRSA&v<=3]sxf1-ql8+,L$Z/Wl)^rR77NPX5)MH0u6AB[2Ln67R=T=*tH[gbXPq3A5cNJ6Mh1ewFHW$JFtq[[rDm4M9gYdtP@.KS2+#]Wr`UUTK(9kWKCd`V-:2Siq[Em2gogetW7dS5t1CmIl6/<-L)HslKjJf.rN@7&*oH$,$8r'GV5'qSVd`205mCd[N6u%Ysh:P3_Z(J&#FlXgCnR,qd;s]UsAJeB%hm/dNh)`(**GfXl9tQ0Qc/n(Lqglg2Kcp3J/obO2$EfILVQg^:KmZtkBc_:82F?]FHn6/^F>W2GZS83/BB^&9kx'(OoJT+L3p(,v5R.oBvQ(wf,hs[VwnD#LG$FTmNWUZ8ni?(vGON1pW)Y&X0-Lg^u6J`,sV+N/>n4v4l%5$o0vq>Nv0w;s-0Bfa2TEF*Ui:L$nZE-$e:q2`enefV-LJN4Uqlc)@6.=.Ek>DlS$JbLT-qtTU5(qIQstknj3PaJ;9SnHVZ+4atPR]v)M1ciX4J9vCUG3uG&r?MD1'R@qM^&-W[WbDGn^>V`u)AlFK_L/cx16j&g`kXBV3/lVF%rqMUN%l8$N'_?1*/U9t^?9q.YPqDVZFD7A`pr,%52lR4dF&w=dZ8p4S'Vs:IpW4_I=cPBpV37``gbEFpihCZ.s?o,(]#kDhZ5(uW^_m(88h.R.IE2mhh'I%ku'*8TP.HP8:XAKDSc#u:b$H9iYeK.qO^h%uIZJE@j$Nq_0>I_o#M0?`t&hC&?99Xs?ha$U91&Yl:Bf@ba^.W:/tD`NuVHx#OsqAhF*3:AD#M=gdK2WBZa;uJ13vWa)2Lg`UnVZbh4<>K5YF4$%/5Cjs>;s3lU)nhE5dr6nCUo'hGH9i;UXc_Oj*OGt:RlAgBSBI5KL3T_lc/4Wv:`qTk_vZ1GeL1L^k)o#?i-&gaB)R,;/C@g?2d4(P#2@S$>f8d`O@FAL1p_rua+Exp/Q_rA@S/ssF3V*2V:K9rPR/1&*vX0']9p7w`35I6l^j';?rYOrWX,dM:Q%N%vx_hbQM@/Kkf8MY7I@$1Xbs>WGS_?5]4/JAiJL9VYnTq)6teik0(e*?9v/fb^tJOvMt1jJrQpEI^aLkVBa'5@Zs:hx`JsW:.Bx80gf8jJWpN/HvtKGHM[7,woMY$0'tk_?ecK]NA-V0i'vbKHv:-.YS/,]Xa/eGafbs.$'YlCL$FEfBXpe_=^%mJ`7xtoskH@B(XtVY],:-dpcx=)-jp^_XFxKu6mZ_%JaE'cp'V5[d.4)J=33&X'O5d0D-edC/w(4:`Tl?)pW4O6.LsZU%[&f].a-g6s2PkiOOrutt-3kl=obR,bnIiO3,E3PNaHuJ+3'a/Vdp`1-*^j[TmeGnVv?nf[fbP_-QKP`484nExLg4mFIWrogA6t^T8atQX5[H7%P-LUue8vgnpT@HbA=OxoA00+RKXunB+uu^kiitbh+YsfnSGkpq*ZK9/;8v+Fm@bgK@df*,::m.I)=*gJw+2Q2Srg?uk-f/%@Lpw?QX3U3]92&gwY4M'1fqE?Ik/3;@L@0SpflEt.AVuq(eDg##)Mumhrui7pj7=$Q's6_WOa_:^HHSv0NZf.LEo/vQcc?LQ$L6(^R70`)=a)TIqOS_gprjwFIqA&4:v?Y^fo59qPMF[PtHf@5shT]0@VU[_tudZEM+bWT)4s$+;6Ckp>D8c.'J]scNu3o3#>^RSFqYX%Q(V[@iv>R6Zt6bj8432_sj$XF0qnB`B=8'^j6m%ip?UE+Gse4bA/v5UZe.L7vUKP;#%7ECnd+7)&I0(`:VLdF`+QZ(K>Mm;/CV?+:&:73*P.L:oEndZ=]rgW3D`$bk,WaXlL7HbGRHM,q&@Q+.=7t0v(TF)7FB_+R1sMjusnG_.0-Lu/fcNvk_LOZ?@p_9$j;RbTOi*R0PQO#p`Y491fDZxh)?CTdqHD`EftU%Fb9v_S.b.?qRXoq)1Y>>qk8NR.j1&v&.#.f'J$YpjhoWNu;eKrBS./']n_R(hw@nA'n$up&+2F3nP=g'F`tb3fIClK67nJtpM%])f2BuIfw]K8eBOoeQQ*%WbooKg2tCPBwsuhImB]mhG:YA.`(qh2AOnTOvBaD7]dVn*>$viY=it9,P1rHFpED#9v8/d)eT`R'vd4,+DYVm%l@q[NuariotA$&Se_+EOnsnnr=@tb7TFY9@s)5NfUPD=u,-rO6vaZ(0&:AJV&c`.uGe3)R7D;6Pq;IvGFdl(j&[XRWUG7(j&2];VcYX#:t#l(+p?wm'2@uPD?+c#it,^??Od?'$uQSQSDZMl>-L3(VJFl[Ye9;>2l@T/J5,fi4SM4:GB?&$wnRlPrZXTF%76.s2pZtKqkrR>]g_4YjlYWH7GP^A8-.?Z/LO@+WOTw`(ERK%58qgV+`]@VwPtKaglia]bqmb(7VFtQoZ&Vra-]w@2'KMP]c&%UGEuVsd3UagE7'@-x'ZQlg+?Q(^f,C*J`q]8>#O:O)ln-(b'oBCM99x]OTsuP?N$oE4ZqnvFMsL*-)NKEA%DGkAIl5a`IRB:ZOu_V7/ogZ'5Ya8M%A`EQD+]&5;JfrO>;lFCS?Y#q;v7[l)8M*YlF3t`S:2pWQ&@@u)UDH/:KS`/[[AkX1q`[<B.wY2n^#ippmKHE,[K+rq:u0-obo86``aC5.MIlAe@5Cn+fQA6lJ^o>+sM+:]4dBf3G%Iajodtm^fTLKtdh]eihAFM'nCe`*L_KSWJo9rxt1oTqsZisK#cS%pu:Y7I;w%C#`mD<^bd,#qrL3F*lP+2=.>gD12Y0V9dc[e:n@L$VG@CHA0q[il&(]2p^`Qir-^GV-&&fHgAP*AUb624n%6G5xtI0:3uZLH#QG8>QL3DJ21ojUC^aTc5p`.eWtLvl_Kw%g=;tkg6itQBArsw7PuaDKh$;X&Q(Xr$5q%p'R@GDuJfh&Yq-;a*LkT,e(MTF=%-#@([d+Yswv6njo(GaR*2,A0<5o>0>aP*Xw-37oVa+]&K;cu+]3cUQ^eJMRL&W&&n0abS4GeGDnw'#aNS5m&cMMKN@+sTE-p:sKOlAhk0rq;'F-+9:N0/%w^cNIbV'/_I3D<)I:e'^$LS%KKtR:5bDJVir?gMT$ao8VrAS?7nNkmhgDW`6>R:vNj@cf[QNr[pm@##8Z6oJ]GwiJa+.5qbd_runj#@b*Fg,(+kkIYvJ9`Nn/M37Sm:SI:c+ck>Bg:-p00fqcT[(bY(kOm$*a7vjJXdQ9wHu?Nu=^X*I-2qgD0Bmb_q$DJZHu6<$+_JsF9xbgwl#9hEAts=1QM2mE-fE3hm@dBoAM%$w?.qWBfd`&0&Vg/7/l45^-Lk`JI]:b5D`_RHnJo9'xXb8>5d(O>%'jrPm]D.4C>d)gGfL,PfsQ/IOWlZ)B47LU&L,@:mDt7%]7@C;;Ns&@95B_C3^_Edmu2[,%QRSdM'u<*h(pQr8vhHxwkmTB?b?XkauQ`easp.Dr5bkwYi>?W86l.g:%^T;c1M*sDk`[ut56R7c`puU##Ph1iSxN(nuMT>oRPhK:6dh-/QUMh853c@_om3*%a<]JH?*Lm(p=uCjauadS(0u_:K6v+iDN*?Fd:,oST)c7Mojloq*vc:B00$loR7nEgZU'1H=qxL41onLnEl#6n(`-#_+q05at*cFaL7Vhh)+%)3bM]/1X4ihws`))nxS&YhK?.mt9$jc_KcE->rmMMCwTdE/*_HU_'ICjRuCu@o^2Pr;x'<[)Gqx6@t5or#)u)=;1'C.;IAqdi:QWX]5(eY:lt^&aN%cF,lO+:1)KU6Gu]ohC'o%sQS:'qT0o*2STjoIn$:<6@/*0llTQG)nb/-L&P4`%1RtF`<)7PSD%#3QeI,S/S5L$WhILF(Y:vA@7jM?fq1JSi@htRtk[WQ_EFV6Wvjk1;ere3(LXP38NuCX:gC;4BAH9#u7e?GX&`MoxqKcf7v7g+`N$Qx#ke1*ecYQ_5#C)su'LM_R5.LUbB/j<3L@?HBquj0%WL8#rk-vu_LeHJ5D##I:510KeH>UG8&HSdPHUI9M2BdW(,G2A`rc^8I%l8Ccte90U+'IC0Dg&AI.R*Ml[=re+3mevZ2eOiq`a7F`P*a/V0S.;5CxIl(JS.^3qJu^T:Y6IZX/EhLMFtTxTPkA`.L#cxAMHffVq0_e^,qo%.NA7P:A+U>67[.9whJjk_BEAlXGlu5`nU[o9r$NhdG]^_F4v?o1pjq:n2(-*j1a_,522(rOeUhxm&vsw+N25'6Of':,OHH[m0-XRUY#Vgw=#4#wif59/G2vLARu&OI.NTe#+`)CgF#bY(GDtM]KWR4br635a1o.&uE%Q(*.bM(kIU&3coeLd6>_ZKBML,nn+Yu]MP6$Mf>;HPpbokk=h9fA7v'I,8ApAaM%`D;&boKi=U)m6bej%?^f0G,G7_nV&3f&w(7v6da_gexfa?Ud4h$D:[6^gN5-F8^B#h_V8`URtO3=.1,)<^(+8O]=U,A(G^kpu8MPra]g7'J=dqU_d#*XsvHoTZ]YKjPkw`FXJ=.]C7kQrGDY]vYSq]Pq)-3%;hZ['77[(0UQaBh`0%+*l)OtuYc,vZaS5%o7Q%t>8JXhFi;c5FLT+x[kQL(7>aX:3O$CW.o3Pq:uM5Rn77OjK7N.J,$ENSL/fGn1''acXo7a'n>g8v-IH'Tk.Jb_-2`6ZBPi5G%3P4iAa4A4hRe9uN/-kVF2mFi7qu;&s9jKP3V`TWnE(4,NvVxE^TnV+t?GDTi[(G,un-2d+MRrmt6(id1%HIC+DMw^N?u3[H12Qlt+.u(1^ihQP-KhDlF^hNK[YkOq`j(d)'u5uQh*6js#pwIG>jB;Bh=+g7VY;Ks3Z=TId_9p4Kg>]ucsbwfYAwG0q^b:-+pMP&^/7VQ_-919&dBaS#jotL-Wi;Os$B2v4oWb4]8K43Mw+O?j'JREkx+euYu6xsfBc;dV9ukpu/o9bs(Z$e?cjKi%:VQ>oPe(t3VT(t/;tu%L^s4[1A(_ZtxCT38jtS<w.%+P;3MqUa+ekde15I's7&=ln)HH_sP<,NY=@EsFtw]'Qq4GhE*+tG,+g1NCQGGR`BO](bHknLV:Ro:5)gE2p,ao/+rEf?60U$2K4oe5f6'ugxaJIucve&NdGiK@TD*I$^$+qIt_;AZ:+?$+lb8v(0C=kBT?2`&0qvOtS[uI1t,=L)o5(A3c;IA-1f4qUqe[O@O#bWI#(>VA,JFrC4b?OJHQDu0R<`sQl:(]b6u*r6[8%lW-DA;ncN7vePwEe$xg?mKA)#R4=x/#^jc.q.vApc[OS.h-kn<-7jnegl<2asOC20K(U.Fu$i')sXGAoe1*p.VMf=42^@)27R+p;e+3LA7>D5'FN:%MK6k9wkf@21)GG#-vZ6p1>bxln&0MJw70CaWUP3kNK6Vn:n0N^'q+uu22?gF^)$#d:U(#CH;pvN0J^J#Ht7G<)s3<6R78.Oe#,X6]s=m,-LMx^&RbD^>k#;8ip&nwa]3mY+V%le8uM,:I7Nu1`7Lf^:twC?`3p^hXqmMTwt6P#nf5']6*2b+N7+vRLcK'mqKmJ'QCIn6&4rk'rc1vLsnE`4Rt.(rqEPf&fcfLVl[.9>KNv8HxXZ*hd>TF*1h*vov#6>Q^jt-Gvik+Z'gZuOZd#Y)?r=<:o4Z,I''Uc(NP2B%l+LI9cG(v5+r`FXqr[/;-:%O`7bD'6E6Fuo%#O1hqv[U*OG$G(5)9uNY2prT$ic@-vYSi,.X9qnYNu?#mFf,,_K*':vivVR[Qq^>>@k#S[2$vKgij-fot&i$&_<&'8v.rgAcouw-LR[D2utn+kedooLpT'2>lOo#Yam7VloPFsFi_RBoepcTwil68opbMZ9vmrilNth7c9vwo(Kb[p7xt&r2jNSfQw1P$-DE7oe'*4t#nJqeUbTllP*(8GU*Kg&(wp.nBQ%,KUsFpWEtXW1wAt*=:M'Gw0;$T;-[tRi__3P=G+v#10Eme*6lI#0V<`OiD7bq%uOo2kir-0eT$Zq&6S^=UKgLEfC%bj//5L6jmP@2;.g>3jY#Qq;tJxNh4sqoUf]_,exr>raCDA)M-qS/QU8jkO0fqS77vBnvdhIpt?,iDv#s:&a51$I_._Z,;Gk+SnRnA3wguWst_uIt@ShvpVH:2oTuLC9ppwh%*+'q+r];)/s*5#a,n@Fq/c.p@NFSNE+lQsD:ca_shcMhhF=8VQnr]GfL*.h@KBAlEO8S:xkko]NGtns5$XmP3u?vP7vq.<,EEHiFi4Yh7qB'+)8Pd`TuwamCMp0x:?Z8*h>AT5'qEE[S>)RE2*FA25#ZB,tL;]g=l_7v7Ijmr68_b3rq$T0X2CQ?0vWDwOF5V(7tY4i=cAp$CjLns&pm[%8UC7SfCDi)LYG6ua<#F&9[JEop^[)MeS*9gLk=jwu0-0P#SOA05n-xT378bbqt:@uMZ$)kgkSA/u@H7W#Iq*'-?r&au-VJ%bJB@JnCcE<:^Tc#9(LXsIwtUm9GbL53U.-vRQar6lcU-ZIi'a6F?EZ]K:K9P$ErfH&>ocbq&Igd?Rcgu]>n3x=)>x&:$:*t#LicZsY-XNLt<2D&&[X#b%4^cUXd*6A]mn7vnd?rJ0fAk6bI&k0dTV1ex;BC>f8'[S]3/X,0wQk8f=lX)oYc[Q5.e-AwNuRvpDd)omthD/L/nD8XpvLttT$G/LD9UYra2>6W)^7'W]8([aCo=SA4q*Iq,njju.e7#Lr$J%tUvLY50EYdfUrfOmc*22&O_4>%PJ8(EdK2O,U:)0[Jkn_`(QfSftV%dko))ukkC=VH]UhmjZS;ca1CX*$Nw2es=_khpxfTD<'5Ym6Q>hku1cRtuY['94mrA6<$o)S%lvfuP7D)m,LikRG6x#@bwBOjf:T4:k/s.;mRL;efX6ZhIQX`]a:e`p-jTV._0dHxg0Y]l/jObW'/NIr4]0Kk>aN^'q0iE[9^Rt%#J7>4eNiJ=#F<6Pn:E@WZ7pin'+D+&'1qiTK^t2QVA?gOIFj=Ydw&*,8)lGp0fq/iKxjB>uIEGhJKb?7m?v:0DN(#jEc1?#i'7kDD6u-F38'@-aAi3u5vjvNsZHf12-iOuHL&m>/;q,PZ*+4't*kZhNto^1k]NPc;1ap7Pl4U7ip,_D#HN[Vj64-tZh&OQA+Q$u;uoMaMqHO#I94+RS?AlA,]B_k[iuI-^mGCeo[ON3lFZgWL-5/;.>$+cm43mk+:FL2/Kp<^.F91SR`j7QspQ/]u?d$0c[[N'lYror$1V^xFWDc7QkxcWG2DY0-g=>9v%No:QbaEV>0^glA4[v,$UHv^cFhX(sH5xof%Gfc'FDdSa%>^-QSW;%](AN9#Lo$e-oE@Uf>6O(kquP)dD^N:##ZHE*kGh)Y#%s%k(2c.MoZU'2W,A#&6Y9hx&ikwQlOhf7H_Fq.8O:6I9'EIQs4VghSNJ;1^YwgM-u<(fM.JFKf:%^d&$oC2v]j]SoW`&Lr19tQqbg>rpNclf$vkLlA69Jsf8p,+qPUGp*F6m=jXYEdd:W(f_TMh7p=,wQ6+cN`*i%(qYT=#P5%9V?.581'TtS#M-d)1>Q5_,hZ:lr,4uu]8bY4PG$S[wC3Lp_AA_2,(c#%E[v-Zc*YnG#Ovsu=B4.%t,6NWm-#C'co/9uMiWLbl,2;-HB^q/8d);`QnvM%8MJAq&A$%DnQaC5Tf3]uWDJ[C6A5:^6wp`AQxtVlj:7xMTs#Z'eL6.m)JLlR>>[Nosrsi(S9H9w=,VAs-fUX3jj7rHk/q'O%9v$#[WG0CCXcdIfKUbgJ4jOdCfLX'A%s1A4]u9?0;tfxK>rap-N6`8d=J*D'pHS;*q+^3T:-3R#QeFv*267pH%`*mc3Gk#Yfn#Hi'_9@/I]c&PU)fbx&.qaTwqN#v(TQ9s$MKI_V.eju-_srvPQh5ju1RiNNba#PLKlo6h+>_=l8mSQ+i877ToKtQ2)Q3GItf$+/'&=G`a,kQCO`ix'u<;Q?tPQ.w2Z$tfeWbeAZVWPxv@`BbCX/q5OXWtE45Rk-5-V<+)5rfAE5bstqZ>t%<,gSLncLu@tS+EZ^jUIFA3%mD3N+LC7_37EHqXOiWKifFM(^s8hY-)Re)[=,X%n3=duB=_['k+E$SWoQblfa,(7xZ2@5PfIWPjViu3e1&2fo7dGb+C(`Q+2gx1Js.K+A`*Q.RAN01SN]p%N4'&Rd$R0EG`=r8Q[t@Q,=T34*NZg4>[Dg/pT(Zl&jn)pTsUe-T$JdhmNP6>^tGN-*s3e5qcKqDqXM-dHU.JWn-Nfj>/L#W6v0$mtM6NmV]9a;S7R3s.k#WUl*:%O'#48v8u.*@FapU@b;?&iFa*_JF&=@rod@=e=FwdUTrt&2@1I@2VhTd>.kT7GmkYafL-/Ei/tdml(#cXT'l:@&2b?G)YwG?%LbX_kpZ0ci(V2&S*[FO*DfKC*#`eR79nQ,C.,80q>'1bpxM/gh_*@C?HKt_#_cJsuaNB#ljJ9Y#Xn]juA]fY7OYR;7^HnG$D)A[u>Dsp`X?:S7p/_^f9PaWUXwA,(pup=al=>UYp)_UIH=vfoH$%=uiA/9rk2=f0$s9Jud7@TZM5p5J;u?WfX#(IbvkZLV/uR67,:)T6[s=:<3(Kc^L9=1wk76tG&D<.Y2tJIO87ElR:mMLjADeU5)l+x$6LcvdkZ1_3O^0>o]`.TG.K28?+U:F9dF:T[hD;4UK,d1bIqZOuGFc]J-?KrxmI6n?YGf5vgJA4V(#Z&I'hnxVFkB?e,lmj1;-Tl8rg#5/s3[apWMxFH#/D;ccKB%u]P-q]$BoM-G5hp]c]TMVew^1[]2DW9KdfNt,T.LAi^kr*8H`<$tECanLBQ.@Qu1vdAH-d%3`]`[lI+#5ds`s,cEoB-WZ-L+wEY_](OE*_v2mCjK.Ss+E-rXgI*]%u'h7vwsFQnvs$KWOd)xu22nLApecMpqhv5v8`;Ls/mm/LY-m1K':^>BHQ/xkHX^E7v_.8U3$cfh7<$=mB7m3))`sr;V5K;8W4Q1;WRd8YYE`Gl0$G=BH.K?;/bEN`ZFMUW5TLe.1g_fS>,(p,3%P]V63u7L=La/AH*O^'.(SW1MK^+H/vhfofMbP7X<^qA_0ubV5v&1wR[1'u:9VM1&[V0L]P8-O+:&PM1vGH6A3m-xR[7:2fh:F4E%x/)SM4*IuuT(5AvT#cW=1X_['YrhaY(lb)>;f7vZRr/v8)'oeQC%7P.?.AtCxb4]oKl>pDEuktgFm0:u0?funl#5&x#lN7CO$ZSeURp,c5f7v[]qwXiok?M-Q$J7T)[&eCC1_L/7FY>0955J?XM>rW>dAU*^:6#g]tuWtTMro=f-8G@kE#8>8sfCEo]ka&=,vJY`5cRoK4IY)A/u@kPRnfs,Lf,Zh%ir$S#.ipCK2So].qHb>(hC<9oq)YpoK0x4GGk$*,Nft9ZKZ2eJa>K^?tP:v(l[=6l,Ak*Kr;.^,JL9YdqL&k3GEt>6v;p=S@)(HxiAK2X5W(xrkpTY:mG-TR7CF#fVpY8au7J=efIP@sLatt]a*lJr:dboQl;eTRaodmk?.>Dle8ex3$-UGFMI76<_P0O8u`4m05JCx@OZQ?tQpZ55u.wwkl$=H5Lf=,5*Z]HIBr,3jLe>KiKsoN_jN3RR7/=w],`KnLp%**:vPOJ+qvrxskfNi-LYR0%a;n'=2u)R.hVm62B_F%1q0c)R%iME8hSMF`j:Qe8vUs#6Ows;I,aliJO*L2FlQs15IFM*d:h,:&koKfXIQt]p^qkv'R?r)T2+01X'>5/a8`5r&S`jUap/VavMe.*+^;G,B5aKJKfI(]V';$Xl>Nf^#L5fNxwxt8niWKhQsJfwE]:QLSYEIt0mG_pE'J:f-=+L6Pk0qvZ(2nJ$7qf@'+gAiWpoKkeJT;SIQJ[r)sAFcHXr-ESN,U;f%-u[Y[&mu_DL'd2l&(FS4#SlU7;$nERJ[u'-Gjk+d2_P0b-`32G5I>%<#IpJNp2v9(THMp4[TaA9t(3ltvCWq-N5sul.ln-nRKT-Xj3Wm@^,2#N@^uj?ZEpefkFiB-6/qTQ:pVKhLBBNd^i'Wl):v,0NL%t&i9vRIXJax4)r+B>N6ka5q=udCK6dhZIk9GC-Ms7UDVeX&l(<'9Nd1_$45Ld;e'vSZ6utG2=?khA%:WW(t`UISVh1IDMSYf5Auk+J+l]8/ohSmP-LU/x=CHXaNKR@G-jXi8--dY1R6#0lUAoE[f$%sCKX,;'wXlme_Y?2VC4`$%=%KmE0S72IEJoutblKk@KG76eZCD-JB7vo`fp4xP5=Yg0J3b[l7&mts[>$)ZEY30=7X9[pim6@=b+Ri;jnhw(8i*8*q.q35SD(-/*NWbRqp.5nIF&2e7'5b8gV@2rsb9'SYV$gtA[HevpT_,n7)X[.eRI?_*lP7[O7x`AD^fVruk2g3GFia5vJle,r._jnPW,:$gE.CDI+#6%]9OlSr6D/uaZc=/f@k]UY5v3Y%6.Ihj1v/i/YB_<39>4U8#YbdAU`nG?0M_,d8:Zj['L/'C7N)n=6u,Q2.=7,4<#0`hVeK0%[[Z1j-Lr>L1#IF'V#^br/5EwtItEK)fL+,^WGCE9aJ$gj]@Q0jguWgSgLcAW<6Ibox$(%7R%laDbL24#0+:h2u=>kTWt#JQiqV%[-1lEO.rC;t?kNSX6vPhC&J/+1Zv88=uEA$`6Vi5`7j1==tq(:oVNZv(EKkDEjV_&jcUd(I4oS'K.Yfn5%S(;A``eo'g[Q-F0d(Lf'WbDw^O;j$veTdm)_S^-`]u2n>A(lXdfTZ_.LE2.Z<%0ETrb-7hkuiqbfvAMHQ1P)ls$@jp#q1/B+dn#EnI/Tm]bn1a08]*4UZS5r4bv[ek(6ROQ34X+,kP&H.(hutArCVm?7((RSA&f]a7QRL10MK]j1'v00te'Pjf;K%j&Uxtg^X*#'8,1g3SGAaxNk>KV#gag$1VEC_vvH)#5(7j8ZX?1VBodYmt=.VT$R[ubh'cYlW`8c>lk#a3AZ--)IZYejtB?gdc;Y#`OWDI;a)S73S^m%@2sR2Sw:+m5ud(hbe?i]RUWiKZHuYXf9d3tX$eH$HYeFr4H>a)Q.+GD&e^M.'eR-v.3)]:vvB:rG@T4/qkPV2v'^3uOshmZt<%J92m+xt'0FsH?4Hd]sX-$jtE]frlFE%%mNW'-KT3[1Aq042iGp**@68p>_]-/cuhU5l[cLHuB0nm:QQ,=ibLHoImw_2+v3KcG`IbnquN3UVRkaK`s3'A-K-nKtCAW6T#pQA^`mRCDu#MvS%Ws,Jpi+LhJ>7='v(kiFVKcl/QN[a9vJs0R%f%aV]HNrNb0?%T*?>%csg6U(.m7)_@uYtAuxGLn3l8D@)+,Th&Z6:#5>@H;u<18fNq12SIsr_NTlGCMGx17%>l%VvN$UVMKKE=tbIWDq0rn`:dFnXSM]V#5r,%;00kv+F(g^mkUs&'M0%sUTV?KgBu$*&MbCF6SH`ve.Tqfm>lL(X',AIwFVW]QK+pp0$+YETHib>oJ=2+eb[HMamvOQUc(u7Efmdd0ZfXV7?4w.1T)`K#.Y>:uur8or,f>ju[v*.Q&3g2Q/>Rxp&o.xk0e^d6[E`370fX((S2t?+Lts:H]Ax9vw)bE@&p5fqoSjeYY83jj]5plFWe;5-%KK7EO-EL2^X=2#KE%wcH-xfNE9m3vx:WT)*:V.h6MbM7F;Xh$_q48f3kROn0T4H9(<[8vC)x?+#Klgc_&7R%;Q@1+X1c`FOa4riU.15v.Jenns,^SMj1$7umM4$ZXjIqT6lZDlKg]op4J9RlTRRIBVQD*^ITB'Cj.W]*,kj#anfGXqi-IKX,2(fL;/aS+JNm[lt36hhDVk/Q-PAL#`)e8G9CtbRO$aRj`7v.3A;CHmRQa:g].L'V(l-j`F$G1JX6v(l_jkvLQVs3X9Y52n>YofR3$KQ`77U^R[JWLcYr62%U<-rJlu7Gc4b%Jh-lo:%Q,vhJ]oK6>fI4^M#;?Tpu)v'*PQuQ>R8-Xjp[gEM+MTfqhisB#m9mVR5`ftMB5).+x$;#2w37RwMO`(:n07to$e?Td5MnUH2U&K4(KK,H*GhllR/m.J^,'#Gxjpq9kd_3858J&)]8OxXSWj'a>vnbE#=kE@$O$X`VMV[&9I-AIq`SEaZm1g6Ak]<:J;2SRc:kbbk8YSb6)JCGgI/q5rke=/vRWi1q5taEp5o.u5)^lV,ZZ.(5'suruPU6G$ZhQEB+<6G$wLLvYTg4Z*C+[psOOPlI@WarTHaQWS[+b4r*l).q=8SA&rC?3])(pmN]xs;p&__?Y$[-M#V)cGEsir1v.)jBT=>Xv9r&M83wjjJqf3/]$s7S(a1;w9vb&J]=`pG(s(#gpr;cXl86P`mZ<,%YqwJpk7;WVwcqc]-1;$O*7#C5)lI5$Be>HQXgMmX:`;?TEi5s4&nMTs=CrF`^KY6uTwC;-Ec,GDx4=ou?LudpMX1#Px*W&?U)>`qoM)']ki1G2n:F6-:ZF^rru+'t2LQNVVvtHwWj0Hr1Yk)JUgU+:F:t:T?>OMw>dJnaD[t:$EduQgf<@(*aJ'6su45%aZt>NO*uU6*O9;]jROj6F+A9*;;tC`sL^T0,)h#9Zb/Q-L0BGKcEYIb^N73SSfpYZKvvv9$CYd]s'L.k@Q2LvpgXvrK^T8q+silsP(PYkSlq[jti(qnjxTsM2nqAs$5jk`Pa$e8Vdgv+qAEiFFnMa:,cA]'qoZ;SK.2%fq,]2QnO')du]uW'$4:MV[V4?[J&RbE@_5s/d81^%5bUSqQ0`4msrB6jqfREHt/du:#(e8D3T@xh(.GBe0N+Pi;l$;(2QRD-(%#lWNBc*5uw+q2?SvZca7Y']#7S*-=OvqWtOo@>Q*EhvC&=fxF,G/fq[;XRrYR_R7TwrR%ew7h'%#ubBqK.5Ll9m:QY&KCiHBu.]1UVIQJO9qq_%4oeAq/Nbi'C_$$K)k%TFrJrC61l(r=ur+P(q%,5&,*,/iBO5djA=Q0iu[++Oo*FFFaIej$,RW%xk>#V87DAnif/v'.6)&g(vbo>W&[dK28^1c?ds%#AFttv/2K09NZbZ'ZcMkH)>['&CKx&d;oZG1Joa/1U+vNkEi.-l)>mY@t7uJ*V?UL(/u'[H'S7+w1pVQ(X-L.1*oqV288v^]V%vs8R)vHC?ItJ?e`Ne5-,qt-*-#k>HUgw:/vb4>r(vuH4/aa6/cjLAp%LxToi5stfmKkSZh^&aAV-v[IE[O:8PZuE28So*x2e#Y=[8#?$9xn&l5W`U(*R,6CJ/hhhlLn[=UR#TWJ/vnq>#&G=boervIbT68+dutPm:rdSR<:HCe'7vW/EF`;<(Qn7?s3dveURNQepm4/>#]II^chfXRFQ1D/?W&V8v7LSwv[X]?:x3D`wM[_N'0tiOnEdo=<7tX(f?`MKj?VM(`EY^i73R8Sg6#8DG'LrDf:%jl-EQbxRAC(xIpdGYRWt<#.,vXc`<@onN^[ioOOu^W`,Sr2JPrL:Rsu:#%N$$Le>IO)PHc)g53#7I[0:t.7?5cU3;sP.=)_%k_%vTK-_smi7Io;?LJs>nQrQ4MW2&2=2V;9pXFB&gQ2&l/e?r6dQ.k:WEUl1*q-q9rNtl]$jG;FV''<%h/*ndL_^VdqMFLq8vZ8trKwmI^kv7#NY$bj/o#l/N;%)L0QMu7Q7^7S2aK.[IEUI7r'OOa3vHprR6F#b4uVJ8)`JJPomS*2M04`NRen[B(+p5'GMOBeR7kq`#$=P4C+v]*c*o/VDDghHvkZXb*v4Nu_sl8TJi=aaB?L]+]t9c]+qvGhJ0`BhP>&qdL9pLZVq,wH.h^/AL6SIMxuiT?Kua_?5q1'?F;q^vO)w5&pp.RuM$FA;O%OLBKIi&x%/@lvLRwRO#qT`l5QHgYW$^ml0f0MwiJE;[`1,2^JPG[O`U;6K^'6.>ELXNY^f>4CDVJ]HPq695Fic88tutK?Wu;$M9#M/>.:76mx++b?`<;ZBfubKUt?qS8&d0*Q8S?Z3;lV;/'%InY(spDrnUR90vgj?.[um;ioAH/mIn+m:YPdg^aa(%t5vF6Jn]Z)].vrC#8dxtV.Ujl>El1KOh6snRWVR0;O#WXx9ZXU^8v;wqaG;*+If-ov]Z9_^-YmW(;L2-GWKmoC-UUcV^e,)Xp2v^NE>H/,gws']gctYe*/nCe]_`5rN+rf,[Csv7M'mqfwY,jeR6vF8sf^6XDvP/8&OME8kCjFP]ruh22tkb+E/2e((8EHDr(OFs,b%*o:S7tvAj@]lC+Ua^+[sG'cx9+$__$:RhR<.GW0Tp`A?HDUgZ(UOm3ZQ_C*L`>lp2`R(7veeH$rNXN9va^*Ru?'i%lYpj,P+2)QMqwT>[V7Ud'tTh0aEtAfai%R1EFo:xFD.eNuSwr>%_)v%+:?^[a2JgE`D%KUun@YLkWAB9vL3TVGO5x9vJ[xm(^qH+OroH(W#-GiANjQW&_iH'&;/v>7&@;3a)'t1?[@ox+)*Y0`LLQkS>#iS*af[xEO3`;r-8@gCYcwc3JN`(7u&Hau[5V_Wp-9.qb5>5lHBr@1=%7K'#%L?%8]IN0/ap=YbSb>jSvWt4iwvjLJErw''j&Xv'GbmR7dA`*vSI#^0aH+eu%[judwiOYu`C/]I6;+r=UqNKPb@SGu-rOaH8xp/q-hvrq3lR&`#=X]FOmv$`[?,,Cb2G,o-j@F;&$j7b,p5n0efirZ/[:DVe*:G`-LcP7U^oJ`>j6WGAbts[H$hKhR7'Q%Du?'*3t@v/L8(5:g_T?'Rm#UqFW*>NscUO`QdrY`*Va2qsWl@fuWAPHVv95RQv@)._CvN:m$R*PSCYm#MJLR]DhB'2&P8w$LTw)m9P/puW(x3/O3&-UceQAkA%905dkR9;u4&gLB5U;]udT.LIOe_sT;ALVUXX4vqs`jsY$-4m;CRho1IQT[2F2YGA@s^JPG,g7P1InlhKs1HaGW_*lJ>=jdf2T1&;D=F)Nf2nFD2R.Lu,,Y*[j%:Q@K997_.>5t1C/1BLFTHm;bbjeQj=p43;/Lfab'c<,n>mKYKiuk%v)s=??_?'GKk*pMC,xtUIUf:uXAq=gG+QV(J*k6N]L(Dhq41pRVuIMF)lgfhUxg)gU9xugD)2BQ#x5L35SKmd31]3TIQI'`T8KE-/ouq%ZJjojU&`H+g[f:&Dh?jlt_fHwC#qq61DKV-IsLb9M^<&(-3lN&=*@uxrtts-vkuN<];$vY)AuYOMP+EAXF`JtVP_HCKgd(2?46)p_d-J1QOndxtA#4/4GjHluwMYne?U#fl9;`/ojIH]7v$Mo`AsJqQbNXH4$bHDJ(us`wKHclRAjVVbl0^pqut;aki#@)uu$K(4BA'hr*UGN<(Knt)]o=tPYU:QnRnH=r/gsIa]g)8tkBaod0@xh(L)ho=.N#kE:#l?%POj#W37LI>(._QgO@)X7qW1/d&AFI&u;q12H17KtUE2F#tkJupIa(C*)dXGM9dM:J^5v3@X+qHn42t9+A,r-dc;8Dcn>gC=B(aiZPPiL0O3sK--OGo*<>tT19DA?J`B?mrlFo4IWu>pwfffP5qM-9v+W['u1xW,tNFi>Da88cEqa_159Qss4`M[1fxD-@khO@-n*)vcM?mkj+R3vSf++@XW*s7lHo5v-iZ_tE*ThKhP8w6?w'?B^TZdu17uXuQO*lR31kj81jM`wX4FHZtlZ86v7k@97'^xIBA)(87O8M_sbXT0V8x16qY[SJ<+J@T5&TEjk:45iT_E4XtE($V#+O6tJ&^@'-3S=v,mL#t5Y)`&K_:M_a^DJQmCF,VdPvEL>1PO+rpUn,L>w*]:cG7v+HQ28v_cxA)m,RLf-gaJIg7;kYSq^8QFo3H6@t_XGk&qC?>E^ZUL=$pr@-')jl9/?uc$rH'.#caT3hQ6lj`>JuDO)wtq3A=jfU&?pc/cM_;-;p*@(;_N:dTn>?bg:QNjWIumtp_LB_'_/I'ugH5sjdT9xw-#LX?I$_kjju3E9Zfc+V:^8@n=q[.fDH@'=%k[t%jmRe]qx^a($VHFPVVu_5h,QR02EK**IWT%QQW)WR,`BL3V6MBVdxbaK.jhf>i2S$oCabYMD$%4gaI[ax)'IVFH&+c>n+'5-E96)P0EODDpNKPAX)Pnn28tuTgL8`u*c8%Qp?J`Rj*eCj>$^*OKf6vp>Lbs.=KMuuNG*lXG;S7q2dmK/f,)vuS]K($]tOna1gF2R9:=gSVBX)AF^a*,mQ?r620,J5VuqH/[WX#&oUBpNXA)RvBOq&=6ex4Te.ba6=WJh<#FopVw>+U/#U^bN-Ppm=li8H'O$gkMPL@2K-*T;bv[^s^0B@&E&G'?9IXtj>SCa,didd[u$ghtHutl]vhH.vEPj4u0ggplPej(C'x^lkh@*uj_#stP`,Px45KXkhw3nH`uh<=tcKO--VnHCsjF'9-0Th6rZqHsZ5r?--7f-JrtW+8v_ib.LjbeiU92vXNc$?pD9.QpKbKlhJd>.eD.n=Za/7k(se9m4m$qP77RMmB:AqM]aig,2ue4n=785&S[Sg8?bG`)GMZe,go+e:BSHi)rHqj0sOSoV6nn,2GuELqDd-L3@rjq*+Lg]B^slJ]`Nx%Ov0s=[C(/_l54gtr,F[j-Lwqtas:^-h]tESQs=@2SR/&w*1g;lCa[AJvnRgBG)`36W_,Eb1Kn4hA6(^3VHbTCcul#d;bqDYv_w6MNk.3s@Fs'adeM:3ht*e,rO;A=;r_c&*sd8oXuamFdlbg3,mHD@h`S#;=jjRv.,Q^lFb&j_[+V/[a$lht5.ut#;Bfa(28tcirhua;Lw+]hrml0$[ct';0>kYW+CH/KhQuYPDotZm:S7^52fl$(M4S-Yp8-=m2o%ASSXu:9AneZ30akj(0B#-I2RmH#]R%-M,4A0v9=uNUq.:4dJu#8SdumfABYY,c8kfsK:1t^'kGlmlJef[R<+J&-Nvk4c(.qS*&rKeT'[Wb6KefCwjEAJ=#D<_JjWS4%cx4lp#S@=;$ok_nq-_cRrB/YxRIaMKf6vPuZ*:CDel]'Q/D`[n64J5]u2kH:*tLl[s*_r;hu,W(%:2tN.SO+@lc2-iRS8:>40.pF0qjfYp1=joxEn`M1EtRn)15Rl=AtX79Tg8iLCVpmZfhN-,]eq5GR^0<^d6Au/s9R@'Tj@V4b)YK9;1;@?PVOo]Flru4NIfHiJxtudF-=H.p/%aPT;WH3exMa4[tV,OnUvk3U?0#CRM@)Lu2#0DgX#5isNurwb6P3N+mgG',XHp>vM#t^;+uA`P1%4<*wSlZhpdHI_0Tu(,7[se(mus6hDh'w$hRu99v^PFt7U+U2&[t[dR4TbEftudXralLv&SIPLLNJjf0)oFF4,vWoY@%*DP)_N>TH4EfPV>^rYPqY`D#qfI7NpcBo2*i=UxF=q6xtv0DttJfZ:GnSju-%X,-d]p49Q<$bi'W@(b7-xOMVH7Z2Q:>Goss6u77M:C`<]hU]+s7+C`(XUxO[f*GM&r25&nbaX,gBr=IRW1-O:evNUdI/6vD[:9V-@Ra2xJw[jQZWk7xtFYsOlR5vn,<,pfihN4/1=hQe#hi8D=jjJc[0I7;@MqMMCf'BX'+`k*'v77B$notIWlCaI0KMU;6`0a&U%1%6n:m5LcXhspX#K*8e_'qKO38^HmFIs7v?1B#8#FtrqafLQSEEc4(+7v7P0iS4Ip]l8=2AK'?gB:JVvvk49F7Rle%OckG=(/CD@+e8O*2V7l3:*ok3#RX?NaJh#QpIswR'_/`5`*Lv@eEej2iaG&Sv8upR,GEX/9dK]EW$61X+.f=fDxoKS0-K%p)gt)nD^3W(s*TdO.bmgobposPWjLF$nTcM89uu>9GtuQrjcaPMHbo5or.(ZjNEs*bLLID4V4kd;+TUk1$o%UjR^)/$87vkhsDD,07u,XQ:`NK*]:m%uHx,hj1[`gCx>]kaIvk5[:WupOCEip51eOD0Ket>[RDl.;N2qP2APOXKu.v1N[miZa-#_7>a6lbha_aT32s=5uv.28TL4o$=6&L^wtIq`oR)7B#,5J]7:3vh>9s]hsYK5cvc-AE.KP.bPHJT*&'VA*^u_a7[Kc@KZ)4m%jj+4>b_8v7gRWIWgI*vGcpI9,SU#_S:YWu'vb,vSTgM`=E-'a=YElA;1?Y),V(rt[v&;1;E''#VkP2G%Nco@kM_B/cAL`P5T3qa^*;r=Ookt@$+qwtVk0D)<,Ei&tJ2cu-jc6lZ<#TrA]i+^i3MNT@owxKu+,W^7M*k&q?U^8vR8%tuR7cHkCDb0p#jd6-c*&:v5[Jkd(U[CM:$J'u/4==tAw`tK3_9BsA4/@O4Y4X[0naR##m<+'QLEQad>kbP6<)? | 254, 236, 0 | 0.996, 0.925, 0.0 | 0.991, 0.839, 0.0 | -| Hansa Yellow | | 252, 211, 0 | 0.988, 0.827, 0.0 | 0.973, 0.651, 0.0 | -| Cadmium Orange | | 255, 105, 0 | 1.0, 0.412, 0.0 | 1.0, 0.141, 0.0 | -| Cadmium Red | | 255, 39, 2 | 1.0, 0.153, 0.008 | 1.0, 0.02, 0.001 | -| Quinacridone Magenta | | 128, 2, 46 | 0.502, 0.008, 0.18 | 0.216, 0.001, 0.027 | -| Cobalt Violet | | 78, 0, 66 | 0.306, 0.0, 0.259 | 0.076, 0.0, 0.054 | -| Ultramarine Blue | | 25, 0, 89 | 0.098, 0.0, 0.349 | 0.01, 0.0, 0.1 | -| Cobalt Blue | | 0, 33, 133 | 0.0, 0.129, 0.522 | 0.0, 0.015, 0.235 | -| Phthalo Blue | | 13, 27, 68 | 0.051, 0.106, 0.267 | 0.004, 0.011, 0.058 | -| Phthalo Green | | 0, 60, 50 | 0.0, 0.235, 0.196 | 0.0, 0.045, 0.032 | -| Permanent Green | | 7, 109, 22 | 0.027, 0.427, 0.086 | 0.002, 0.153, 0.008 | -| Sap Green | | 107, 148, 4 | 0.42, 0.58, 0.016 | 0.147, 0.296, 0.001 | -| Burnt Sienna | | 123, 72, 0 | 0.482, 0.282, 0.0 | 0.198, 0.065, 0.0 | - -## License -Copyright (c) 2022, Secret Weapons. All rights reserved.
-Mixbox is provided under the CC BY-NC 4.0 license for non-commercial use only.
-If you want to obtain commercial license, please contact: mixbox@scrtwpns.com diff --git a/python/examples/blender.py b/python/examples/blender.py deleted file mode 100644 index 1511c27..0000000 --- a/python/examples/blender.py +++ /dev/null @@ -1,12 +0,0 @@ -import bpy -import mixbox - -rgb1 = (0.0, 0.015, 0.235) # blue -rgb2 = (0.973, 0.651, 0.0) # yellow - -n = 5 -for i in range(0, n): - bpy.ops.mesh.primitive_cube_add(location = ((i - n/2 + 0.5) * 3, 0, 0)) - mat = bpy.data.materials.new("material") - mat.diffuse_color = mixbox.lerp_linear_float(rgb1, rgb2, i / (n - 1)) - bpy.context.object.active_material = mat diff --git a/python/examples/hello.py b/python/examples/hello.py deleted file mode 100644 index 27cacdf..0000000 --- a/python/examples/hello.py +++ /dev/null @@ -1,9 +0,0 @@ -import mixbox - -rgb1 = (0, 33, 133) # blue -rgb2 = (252, 211, 0) # yellow -t = 0.5 # mixing ratio - -rgb_mix = mixbox.lerp(rgb1, rgb2, t) - -print(rgb_mix) diff --git a/python/examples/npcv.py b/python/examples/npcv.py deleted file mode 100644 index d23ed16..0000000 --- a/python/examples/npcv.py +++ /dev/null @@ -1,17 +0,0 @@ -import cv2 -import numpy as np -import mixbox - -height = 256 -width = 256 -img = np.zeros((height, width, 3), np.uint8) - -rgb1 = (0, 33, 133) # blue -rgb2 = (252, 211, 0) # yellow - -for x in range(0, 256): - for y in range(0, 256): - img[x, y] = mixbox.lerp(rgb1, rgb2, x / 255.0) - -cv2.imshow("image", cv2.cvtColor(img, cv2.COLOR_RGB2BGR)) -cv2.waitKey(0) diff --git a/python/examples/opengl.py b/python/examples/opengl.py deleted file mode 100644 index 5ad4de8..0000000 --- a/python/examples/opengl.py +++ /dev/null @@ -1,29 +0,0 @@ -import pygame as pg -from pygame.locals import * - -from OpenGL.GL import * -from OpenGL.GLU import * - -import mixbox - -pg.init() -pg.display.set_mode((640, 480), DOUBLEBUF | OPENGL) - -while True: - rgb1 = (0.0, 0.129, 0.522) # blue - rgb2 = (0.988, 0.827, 0.0) # yellow - - n = 640 - glBegin(GL_LINES) - for i in range(0, n+1): - glColor(mixbox.lerp_float(rgb1, rgb2, i / n)) - glVertex((i / n)*2 - 1, -1) - glVertex((i / n)*2 - 1, +1) - glEnd() - - pg.display.flip() - - for event in pg.event.get(): - if event.type == pg.QUIT: - pg.quit() - quit() diff --git a/python/examples/pillow.py b/python/examples/pillow.py deleted file mode 100644 index 205f1ec..0000000 --- a/python/examples/pillow.py +++ /dev/null @@ -1,16 +0,0 @@ -from PIL import Image -import mixbox - -rgb1 = (0, 33, 133) # blue -rgb2 = (252, 211, 0) # yellow - -img = Image.new('RGB', (256, 256)) - -pixels = img.load() - -width,height = img.size -for x in range(width): - for y in range(height): - pixels[x, y] = mixbox.lerp(rgb1, rgb2, x / 256.0) - -img.show() diff --git a/python/mixbox.py b/python/mixbox.py deleted file mode 100644 index 72e0aa0..0000000 --- a/python/mixbox.py +++ /dev/null @@ -1,246 +0,0 @@ -# ========================================================== -# MIXBOX 2.0 (c) 2022 Secret Weapons. All rights reserved. -# License: Creative Commons Attribution-NonCommercial 4.0 -# Authors: Sarka Sochorova and Ondrej Jamriska -# ========================================================== -""" - Natural color mixing based on real pigments. - - BASIC USAGE - - rgb = mixbox.lerp(rgb1, rgb2, t) - - MULTI-COLOR MIXING - - z1 = mixbox.rgb_to_latent(rgb1) - z2 = mixbox.rgb_to_latent(rgb2) - z3 = mixbox.rgb_to_latent(rgb3) - - z_mix = [0] * mixbox.LATENT_SIZE - - for i in range(len(z_mix)): # mix together: - z_mix[i] = (0.3*z1[i] + # 30% of rgb1 - 0.6*z2[i] + # 60% of rgb2 - 0.1*z3[i]) # 10% of rgb3 - - rgb_mix = mixbox.latent_to_rgb(z_mix) - - PIGMENT COLORS - - Cadmium Yellow 254, 236, 0 - Hansa Yellow 252, 211, 0 - Cadmium Orange 255, 105, 0 - Cadmium Red 255, 39, 2 - Quinacridone Magenta 128, 2, 46 - Cobalt Violet 78, 0, 66 - Ultramarine Blue 25, 0, 89 - Cobalt Blue 0, 33, 133 - Phthalo Blue 13, 27, 68 - Phthalo Green 0, 60, 50 - Permanent Green 7, 109, 22 - Sap Green 107, 148, 4 - Burnt Sienna 123, 72, 0 - - LICENSING - - If you want to obtain commercial license, please - contact us at: mixbox@scrtwpns.com - -""" - -import zlib -import base64 - -LATENT_SIZE = 7 - -def lerp(color1, color2, t): - len1 = len(color1) - len2 = len(color2) - - latent1 = rgb_to_latent(color1) - latent2 = rgb_to_latent(color2) - - rgb = latent_to_rgb(_lerp_latent(latent1, latent2, t)) - - if len1 == 3 and len2 == 3: return rgb - - a1 = color1[3] if len1 > 3 else 255 - a2 = color2[3] if len2 > 3 else 255 - a = round((1.0-t)*a1 + t*a2) - - return (rgb[0], rgb[1], rgb[2], a) - -def lerp_float(color1, color2, t): - len1 = len(color1) - len2 = len(color2) - - latent1 = float_rgb_to_latent(color1) - latent2 = float_rgb_to_latent(color2) - - rgb = latent_to_float_rgb(_lerp_latent(latent1, latent2, t)) - - if len1 == 3 and len2 == 3: return rgb - - a1 = color1[3] if len1 > 3 else 1.0 - a2 = color2[3] if len2 > 3 else 1.0 - a = (1.0-t)*a1 + t*a2 - - return (rgb[0], rgb[1], rgb[2], a) - -def lerp_linear_float(color1, color2, t): - len1 = len(color1) - len2 = len(color2) - - latent1 = linear_float_rgb_to_latent(color1) - latent2 = linear_float_rgb_to_latent(color2) - - rgb = latent_to_linear_float_rgb(_lerp_latent(latent1, latent2, t)) - - if len1 == 3 and len2 == 3: return rgb - - a1 = color1[3] if len1 > 3 else 1.0 - a2 = color2[3] if len2 > 3 else 1.0 - a = (1.0-t)*a1 + t*a2 - - return (rgb[0], rgb[1], rgb[2], a) - -def rgb_to_latent(rgb): - return float_rgb_to_latent((rgb[0] / 255.0, rgb[1] / 255.0, rgb[2] / 255.0)) - -def latent_to_rgb(latent): - rgb = _eval_polynomial(latent[0], latent[1], latent[2], latent[3]) - return ( - int(round(_clamp01(rgb[0] + latent[4]) * 255.0)), - int(round(_clamp01(rgb[1] + latent[5]) * 255.0)), - int(round(_clamp01(rgb[2] + latent[6]) * 255.0)) - ) - -def float_rgb_to_latent(rgb): - r = _clamp01(rgb[0]) - g = _clamp01(rgb[1]) - b = _clamp01(rgb[2]) - - x = r * 63.0 - y = g * 63.0 - z = b * 63.0 - - ix = int(x) - iy = int(y) - iz = int(z) - - tx = x - ix - ty = y - iy - tz = z - iz - - xyz = (ix + iy*64 + iz*64*64) & 0x3FFFF - - c0 = 0.0 - c1 = 0.0 - c2 = 0.0 - - w = (1.0-tx)*(1.0-ty)*(1.0-tz); c0 += w*_lut[xyz+ 192]; c1 += w*_lut[xyz+262336]; c2 += w*_lut[xyz+524480]; - w = ( tx)*(1.0-ty)*(1.0-tz); c0 += w*_lut[xyz+ 193]; c1 += w*_lut[xyz+262337]; c2 += w*_lut[xyz+524481]; - w = (1.0-tx)*( ty)*(1.0-tz); c0 += w*_lut[xyz+ 256]; c1 += w*_lut[xyz+262400]; c2 += w*_lut[xyz+524544]; - w = ( tx)*( ty)*(1.0-tz); c0 += w*_lut[xyz+ 257]; c1 += w*_lut[xyz+262401]; c2 += w*_lut[xyz+524545]; - w = (1.0-tx)*(1.0-ty)*( tz); c0 += w*_lut[xyz+4288]; c1 += w*_lut[xyz+266432]; c2 += w*_lut[xyz+528576]; - w = ( tx)*(1.0-ty)*( tz); c0 += w*_lut[xyz+4289]; c1 += w*_lut[xyz+266433]; c2 += w*_lut[xyz+528577]; - w = (1.0-tx)*( ty)*( tz); c0 += w*_lut[xyz+4352]; c1 += w*_lut[xyz+266496]; c2 += w*_lut[xyz+528640]; - w = ( tx)*( ty)*( tz); c0 += w*_lut[xyz+4353]; c1 += w*_lut[xyz+266497]; c2 += w*_lut[xyz+528641]; - - c0 /= 255.0 - c1 /= 255.0 - c2 /= 255.0 - - c3 = 1.0 - (c0 + c1 + c2) - - mixrgb = _eval_polynomial(c0, c1, c2, c3) - - return ( - c0, - c1, - c2, - c3, - r - mixrgb[0], - g - mixrgb[1], - b - mixrgb[2], - ) - -def latent_to_float_rgb(latent): - rgb = _eval_polynomial(latent[0], latent[1], latent[2], latent[3]) - return ( - _clamp01(rgb[0] + latent[4]), - _clamp01(rgb[1] + latent[5]), - _clamp01(rgb[2] + latent[6]) - ) - -def linear_float_rgb_to_latent(rgb): - return float_rgb_to_latent(( - _linear_to_srgb(rgb[0]), - _linear_to_srgb(rgb[1]), - _linear_to_srgb(rgb[2]) - )) - -def latent_to_linear_float_rgb(latent): - rgb = latent_to_float_rgb(latent) - return ( - _srgb_to_linear(rgb[0]), - _srgb_to_linear(rgb[1]), - _srgb_to_linear(rgb[2]) - ) - -def _lerp_latent(latent1, latent2, t): - return [(1.0-t)*latent1[i] + t*latent2[i] for i in range(LATENT_SIZE)] - -def _clamp01(x): - return min(max(x, 0.0), 1.0) - -def _srgb_to_linear(x): - return pow((x+0.055)/1.055, 2.4) if x >= 0.04045 else x/12.92 - -def _linear_to_srgb(x): - return 1.055*pow(x, 1.0/2.4)-0.055 if x >= 0.0031308 else 12.92*x - -def _eval_polynomial(c0, c1, c2, c3): - r = 0.0 - g = 0.0 - b = 0.0 - - c00 = c0 * c0 - c11 = c1 * c1 - c22 = c2 * c2 - c33 = c3 * c3 - c01 = c0 * c1 - c02 = c0 * c2 - c12 = c1 * c2 - - w = c0*c00; r += +0.07717053*w; g += +0.02826978*w; b += +0.24832992*w - w = c1*c11; r += +0.95912302*w; g += +0.80256528*w; b += +0.03561839*w - w = c2*c22; r += +0.74683774*w; g += +0.04868586*w; b += +0.00000000*w - w = c3*c33; r += +0.99518138*w; g += +0.99978149*w; b += +0.99704802*w - w = c00*c1; r += +0.04819146*w; g += +0.83363781*w; b += +0.32515377*w - w = c01*c1; r += -0.68146950*w; g += +1.46107803*w; b += +1.06980936*w - w = c00*c2; r += +0.27058419*w; g += -0.15324870*w; b += +1.98735057*w - w = c02*c2; r += +0.80478189*w; g += +0.67093710*w; b += +0.18424500*w - w = c00*c3; r += -0.35031003*w; g += +1.37855826*w; b += +3.68865000*w - w = c0*c33; r += +1.05128046*w; g += +1.97815239*w; b += +2.82989073*w - w = c11*c2; r += +3.21607125*w; g += +0.81270228*w; b += +1.03384539*w - w = c1*c22; r += +2.78893374*w; g += +0.41565549*w; b += -0.04487295*w - w = c11*c3; r += +3.02162577*w; g += +2.55374103*w; b += +0.32766114*w - w = c1*c33; r += +2.95124691*w; g += +2.81201112*w; b += +1.17578442*w - w = c22*c3; r += +2.82677043*w; g += +0.79933038*w; b += +1.81715262*w - w = c2*c33; r += +2.99691099*w; g += +1.22593053*w; b += +1.80653661*w - w = c01*c2; r += +1.87394106*w; g += +2.05027182*w; b += -0.29835996*w - w = c01*c3; r += +2.56609566*w; g += +7.03428198*w; b += +0.62575374*w - w = c02*c3; r += +4.08329484*w; g += -1.40408358*w; b += +2.14995522*w - w = c12*c3; r += +6.00078678*w; g += +2.55552042*w; b += +1.90739502*w - - return (r, g, b) - -def _decompress(input): - output = bytearray(zlib.decompress(base64.b64decode(input), -zlib.MAX_WBITS)) - for i in range(len(output)): - output[i] = (output[i-1] if ((i & 63) != 0) else 127) + (output[i] - 127) - for i in range(4161): output.append(0) - return output - -_lut = _decompress("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") diff --git a/rust/Cargo.toml b/rust/Cargo.toml deleted file mode 100644 index 4d98661..0000000 --- a/rust/Cargo.toml +++ /dev/null @@ -1,13 +0,0 @@ -[package] -name = "mixbox" -version = "2.0.0" -edition = "2021" -description = "Pigment-Based Color Mixing" -readme = "README.md" -homepage = "https://scrtwpns.com/mixbox" -repository = "https://github.com/scrtwpns/mixbox" -license = "CC-BY-NC-4.0" -keywords = ["color-mixing", "pigments", "rgb", "kubelka-munk", "paints"] - -[dependencies] -libm = "0.2.5" diff --git a/rust/README.md b/rust/README.md deleted file mode 100644 index 4ce0e2c..0000000 --- a/rust/README.md +++ /dev/null @@ -1,56 +0,0 @@ -# Mixbox for Rust -```ini -mixbox = "2.0.0" # add this line to your Cargo.toml -``` - -## Usage -```rust -fn main() { - let rgb1 = [0, 33, 133]; // blue - let rgb2 = [252, 211, 0]; // yellow - let t = 0.5; // mixing ratio - - let [r, g, b] = mixbox::lerp(&rgb1, &rgb2, t); - - println!("{} {} {}", r, g, b); -} -``` - -## Mixing Multiple Colors -```rust -let z1 = mixbox::rgb_to_latent(&rgb1); -let z2 = mixbox::rgb_to_latent(&rgb2); -let z3 = mixbox::rgb_to_latent(&rgb3); - -let mut z_mix = [0.0; mixbox::LATENT_SIZE]; - -for i in 0..z_mix.len() { // mix together: - z_mix[i] = 0.3*z1[i] + // 30% of rgb1 - 0.6*z2[i] + // 60% of rgb2 - 0.1*z3[i]; // 10% of rgb3 -} - -let rgb_mix = mixbox::latent_to_rgb(&z_mix); -``` - -## Pigment Colors -| Pigment | | RGB | Float RGB | Linear RGB | -| --- | --- |:----:|:----:|:----:| -| Cadmium Yellow | | 254, 236, 0 | 0.996, 0.925, 0.0 | 0.991, 0.839, 0.0 | -| Hansa Yellow | | 252, 211, 0 | 0.988, 0.827, 0.0 | 0.973, 0.651, 0.0 | -| Cadmium Orange | | 255, 105, 0 | 1.0, 0.412, 0.0 | 1.0, 0.141, 0.0 | -| Cadmium Red | | 255, 39, 2 | 1.0, 0.153, 0.008 | 1.0, 0.02, 0.001 | -| Quinacridone Magenta | | 128, 2, 46 | 0.502, 0.008, 0.18 | 0.216, 0.001, 0.027 | -| Cobalt Violet | | 78, 0, 66 | 0.306, 0.0, 0.259 | 0.076, 0.0, 0.054 | -| Ultramarine Blue | | 25, 0, 89 | 0.098, 0.0, 0.349 | 0.01, 0.0, 0.1 | -| Cobalt Blue | | 0, 33, 133 | 0.0, 0.129, 0.522 | 0.0, 0.015, 0.235 | -| Phthalo Blue | | 13, 27, 68 | 0.051, 0.106, 0.267 | 0.004, 0.011, 0.058 | -| Phthalo Green | | 0, 60, 50 | 0.0, 0.235, 0.196 | 0.0, 0.045, 0.032 | -| Permanent Green | | 7, 109, 22 | 0.027, 0.427, 0.086 | 0.002, 0.153, 0.008 | -| Sap Green | | 107, 148, 4 | 0.42, 0.58, 0.016 | 0.147, 0.296, 0.001 | -| Burnt Sienna | | 123, 72, 0 | 0.482, 0.282, 0.0 | 0.198, 0.065, 0.0 | - -## License -Copyright (c) 2022, Secret Weapons. All rights reserved.
-Mixbox is provided under the CC BY-NC 4.0 license for non-commercial use only.
-If you want to obtain commercial license, please contact: mixbox@scrtwpns.com diff --git a/rust/src/lib.rs b/rust/src/lib.rs deleted file mode 100644 index 9564cd6..0000000 --- a/rust/src/lib.rs +++ /dev/null @@ -1,258 +0,0 @@ -// ========================================================== -// MIXBOX 2.0 (c) 2022 Secret Weapons. All rights reserved. -// License: Creative Commons Attribution-NonCommercial 4.0 -// Authors: Sarka Sochorova and Ondrej Jamriska -// ========================================================== -// -// BASIC USAGE -// -// let rgb_mix = mixbox::lerp(&rgb1, &rgb2, t); -// -// MULTI-COLOR MIXING -// -// let z1 = mixbox::rgb_to_latent(&rgb1); -// let z2 = mixbox::rgb_to_latent(&rgb2); -// let z3 = mixbox::rgb_to_latent(&rgb3); -// -// let mut z_mix = [0.0; mixbox::LATENT_SIZE]; -// -// for i in 0..z_mix.len() { // mix together: -// z_mix[i] = 0.3*z1[i] + // 30% of rgb1 -// 0.6*z2[i] + // 60% of rgb2 -// 0.1*z3[i]; // 10% of rgb3 -// } -// -// let rgb_mix = mixbox::latent_to_rgb(&z_mix); -// -// PIGMENT COLORS -// -// Cadmium Yellow 254, 236, 0 -// Hansa Yellow 252, 211, 0 -// Cadmium Orange 255, 105, 0 -// Cadmium Red 255, 39, 2 -// Quinacridone Magenta 128, 2, 46 -// Cobalt Violet 78, 0, 66 -// Ultramarine Blue 25, 0, 89 -// Cobalt Blue 0, 33, 133 -// Phthalo Blue 13, 27, 68 -// Phthalo Green 0, 60, 50 -// Permanent Green 7, 109, 22 -// Sap Green 107, 148, 4 -// Burnt Sienna 123, 72, 0 -// -// LICENSING -// -// If you want to obtain commercial license, please -// contact us at: mixbox@scrtwpns.com -// - -#![no_std] - -use libm::powf; - -pub const LATENT_SIZE: usize = 7; - -const MIXBOX_LUT : &[u8] = include_bytes!("lut.dat"); - -#[inline(always)] -fn clamp01(x: f32) -> f32 { - if x < 0.0 { - 0.0 - } else if x > 1.0 { - 1.0 - } else { - x - } -} - -#[inline(always)] -fn srgb_to_linear(x: f32) -> f32 { - if x >= 0.04045 { - powf((x + 0.055) / 1.055, 2.4) - } else { - x / 12.92 - } -} - -#[inline(always)] -fn linear_to_srgb(x: f32) -> f32 { - if x >= 0.0031308 { - 1.055 * powf(x, 1.0 / 2.4) - 0.055 - } else { - 12.92 * x - } -} - -#[inline(always)] -fn eval_polynomial(c0: f32, c1: f32, c2: f32, c3: f32) -> [f32; 3] { - let c00 = c0 * c0; - let c11 = c1 * c1; - let c22 = c2 * c2; - let c33 = c3 * c3; - let c01 = c0 * c1; - let c02 = c0 * c2; - let c12 = c1 * c2; - - let mut r = 0.0; - let mut g = 0.0; - let mut b = 0.0; - - let w00 = c0 * c00; r += 0.07717053*w00; g += 0.02826978*w00; b += 0.24832992*w00; - let w01 = c1 * c11; r += 0.95912302*w01; g += 0.80256528*w01; b += 0.03561839*w01; - let w02 = c2 * c22; r += 0.74683774*w02; g += 0.04868586*w02; b += 0.00000000*w02; - let w03 = c3 * c33; r += 0.99518138*w03; g += 0.99978149*w03; b += 0.99704802*w03; - let w04 = c00 * c1; r += 0.04819146*w04; g += 0.83363781*w04; b += 0.32515377*w04; - let w05 = c01 * c1; r += -0.68146950*w05; g += 1.46107803*w05; b += 1.06980936*w05; - let w06 = c00 * c2; r += 0.27058419*w06; g += -0.15324870*w06; b += 1.98735057*w06; - let w07 = c02 * c2; r += 0.80478189*w07; g += 0.67093710*w07; b += 0.18424500*w07; - let w08 = c00 * c3; r += -0.35031003*w08; g += 1.37855826*w08; b += 3.68865000*w08; - let w09 = c0 * c33; r += 1.05128046*w09; g += 1.97815239*w09; b += 2.82989073*w09; - let w10 = c11 * c2; r += 3.21607125*w10; g += 0.81270228*w10; b += 1.03384539*w10; - let w11 = c1 * c22; r += 2.78893374*w11; g += 0.41565549*w11; b += -0.04487295*w11; - let w12 = c11 * c3; r += 3.02162577*w12; g += 2.55374103*w12; b += 0.32766114*w12; - let w13 = c1 * c33; r += 2.95124691*w13; g += 2.81201112*w13; b += 1.17578442*w13; - let w14 = c22 * c3; r += 2.82677043*w14; g += 0.79933038*w14; b += 1.81715262*w14; - let w15 = c2 * c33; r += 2.99691099*w15; g += 1.22593053*w15; b += 1.80653661*w15; - let w16 = c01 * c2; r += 1.87394106*w16; g += 2.05027182*w16; b += -0.29835996*w16; - let w17 = c01 * c3; r += 2.56609566*w17; g += 7.03428198*w17; b += 0.62575374*w17; - let w18 = c02 * c3; r += 4.08329484*w18; g += -1.40408358*w18; b += 2.14995522*w18; - let w19 = c12 * c3; r += 6.00078678*w19; g += 2.55552042*w19; b += 1.90739502*w19; - - [r, g, b] -} - -pub fn float_rgb_to_latent(rgb: &[f32; 3]) -> [f32; LATENT_SIZE] { - let r01 = clamp01(rgb[0]); - let g01 = clamp01(rgb[1]); - let b01 = clamp01(rgb[2]); - - let x = r01 * 63.0; - let y = g01 * 63.0; - let z = b01 * 63.0; - - let ix = x as i32; - let iy = y as i32; - let iz = z as i32; - - let tx = x - (ix as f32); - let ty = y - (iy as f32); - let tz = z - (iz as f32); - - let lut = &MIXBOX_LUT[(((ix + iy*64 + iz*64*64) & 0x3FFFF) * 3) as usize ..]; - - let mut c0 = 0.0; - let mut c1 = 0.0; - let mut c2 = 0.0; - - let w0 = (1.0-tx)*(1.0-ty)*(1.0-tz); c0 += w0*(lut[ 192] as f32); c1 += w0*(lut[ 193] as f32); c2 += w0*(lut[ 194] as f32); - let w1 = ( tx)*(1.0-ty)*(1.0-tz); c0 += w1*(lut[ 195] as f32); c1 += w1*(lut[ 196] as f32); c2 += w1*(lut[ 197] as f32); - let w2 = (1.0-tx)*( ty)*(1.0-tz); c0 += w2*(lut[ 384] as f32); c1 += w2*(lut[ 385] as f32); c2 += w2*(lut[ 386] as f32); - let w3 = ( tx)*( ty)*(1.0-tz); c0 += w3*(lut[ 387] as f32); c1 += w3*(lut[ 388] as f32); c2 += w3*(lut[ 389] as f32); - let w4 = (1.0-tx)*(1.0-ty)*( tz); c0 += w4*(lut[12480] as f32); c1 += w4*(lut[12481] as f32); c2 += w4*(lut[12482] as f32); - let w5 = ( tx)*(1.0-ty)*( tz); c0 += w5*(lut[12483] as f32); c1 += w5*(lut[12484] as f32); c2 += w5*(lut[12485] as f32); - let w6 = (1.0-tx)*( ty)*( tz); c0 += w6*(lut[12672] as f32); c1 += w6*(lut[12673] as f32); c2 += w6*(lut[12674] as f32); - let w7 = ( tx)*( ty)*( tz); c0 += w7*(lut[12675] as f32); c1 += w7*(lut[12676] as f32); c2 += w7*(lut[12677] as f32); - - c0 *= 1.0 / 255.0; - c1 *= 1.0 / 255.0; - c2 *= 1.0 / 255.0; - - let c3 = 1.0 - (c0 + c1 + c2); - - let mixrgb = eval_polynomial(c0, c1, c2, c3); - - [ - c0, - c1, - c2, - c3, - r01 - mixrgb[0], - g01 - mixrgb[1], - b01 - mixrgb[2], - ] -} - -pub fn latent_to_float_rgb(latent: &[f32; LATENT_SIZE]) -> [f32; 3] { - let rgb = eval_polynomial(latent[0], latent[1], latent[2], latent[3]); - - [ - clamp01(rgb[0] + latent[4]), - clamp01(rgb[1] + latent[5]), - clamp01(rgb[2] + latent[6]), - ] -} - -pub fn latent_to_rgb(latent: &[f32; LATENT_SIZE]) -> [u8; 3] { - let rgb = latent_to_float_rgb(latent); - - [ - (rgb[0] * 255.0 + 0.5) as u8, - (rgb[1] * 255.0 + 0.5) as u8, - (rgb[2] * 255.0 + 0.5) as u8, - ] -} - -pub fn rgb_to_latent(rgb: &[u8; 3]) -> [f32; LATENT_SIZE] { - float_rgb_to_latent(&[ - (rgb[0] as f32) / 255.0, - (rgb[1] as f32) / 255.0, - (rgb[2] as f32) / 255.0 - ]) -} - -pub fn linear_float_rgb_to_latent(rgb: &[f32; 3]) -> [f32; LATENT_SIZE] { - float_rgb_to_latent(&[ - linear_to_srgb(rgb[0]), - linear_to_srgb(rgb[1]), - linear_to_srgb(rgb[2]), - ]) -} - -pub fn latent_to_linear_float_rgb(latent: &[f32; LATENT_SIZE]) -> [f32; 3] { - let rgb = latent_to_float_rgb(latent); - - [ - srgb_to_linear(rgb[0]), - srgb_to_linear(rgb[1]), - srgb_to_linear(rgb[2]), - ] -} - -pub fn lerp(rgb1: &[u8; 3], rgb2: &[u8; 3], t: f32) -> [u8; 3] { - let latent1 = rgb_to_latent(rgb1); - let latent2 = rgb_to_latent(rgb2); - - let mut latent_mix = [0.0; LATENT_SIZE]; - - for i in 0..latent_mix.len() { - latent_mix[i] = (1.0 - t) * latent1[i] + t * latent2[i]; - } - - latent_to_rgb(&latent_mix) -} - -pub fn lerp_float(rgb1: &[f32; 3], rgb2: &[f32; 3], t: f32) -> [f32; 3] { - let latent1 = float_rgb_to_latent(rgb1); - let latent2 = float_rgb_to_latent(rgb2); - - let mut latent_mix = [0.0; LATENT_SIZE]; - - for i in 0..latent_mix.len() { - latent_mix[i] = (1.0 - t) * latent1[i] + t * latent2[i]; - } - - latent_to_float_rgb(&latent_mix) -} - -pub fn lerp_linear_float(rgb1: &[f32; 3], rgb2: &[f32; 3], t: f32) -> [f32; 3] { - let latent1 = linear_float_rgb_to_latent(rgb1); - let latent2 = linear_float_rgb_to_latent(rgb2); - - let mut latent_mix = [0.0; LATENT_SIZE]; - - for i in 0..latent_mix.len() { - latent_mix[i] = (1.0 - t) * latent1[i] + t * latent2[i]; - } - - latent_to_linear_float_rgb(&latent_mix) -} diff --git a/rust/src/lut.dat b/rust/src/lut.dat deleted file mode 100644 index 0c7dcd2..0000000 Binary files a/rust/src/lut.dat and /dev/null differ diff --git a/shaders/README.md b/shaders/README.md deleted file mode 100644 index ab3b7e9..0000000 --- a/shaders/README.md +++ /dev/null @@ -1,100 +0,0 @@ -## GLSL Shader -```glsl -#ifdef GL_ES -precision highp float; -#endif - -// uncomment the following line if you work in linear space -// #define MIXBOX_COLORSPACE_LINEAR - -uniform sampler2D mixbox_lut; // bind the "mixbox_lut.png" texture here - -#include "mixbox.glsl" // paste the contents of mixbox.glsl here - -void main(void) -{ - vec3 rgb1 = vec3(0, 0.129, 0.522); // blue - vec3 rgb2 = vec3(0.988, 0.827, 0); // yellow - float t = 0.5; // mixing ratio - - vec3 rgb = mixbox_lerp(rgb1, rgb2, t); - - gl_FragColor = vec4(rgb, 1.0); -} -``` -```glsl -vec3 mix_three(vec3 rgb1, vec3 rgb2, vec3 rgb3) -{ - mixbox_latent z1 = mixbox_rgb_to_latent(rgb1); - mixbox_latent z2 = mixbox_rgb_to_latent(rgb2); - mixbox_latent z3 = mixbox_rgb_to_latent(rgb3); - - // mix together 30% of rgb1, 60% of rgb2, and 10% of rgb3 - mixbox_latent z_mix = 0.3*z1 + 0.6*z2 + 0.1*z3; - - vec3 rgb_mix = mixbox_latent_to_rgb(z_mix); - - return rgb_mix; -} -``` - -## HLSL Shader -```hlsl -// uncomment the following line if you work in linear space -// #define MIXBOX_COLORSPACE_LINEAR - -Texture2D MixboxLUT; // bind the "mixbox_lut.png" texture here -SamplerState MixboxSampler; // FILTER_MIN_MAG_LINEAR_MIP_POINT - -#define MIXBOX_LUT(UV) MixboxLUT.SampleLevel(MixboxSampler, UV, 0) - -#include "mixbox.hlsl" - -float4 PSMain() : SV_Target -{ - float3 rgb1 = float3(0, 0.129, 0.522); // blue - float3 rgb2 = float3(0.988, 0.827, 0); // yellow - float t = 0.5; // mixing ratio - - float3 rgb_mix = MixboxLerp(rgb1, rgb2, t); - - return float4(rgb_mix, 1.0); -} -``` -```hlsl -float3 MixThree(float3 rgb1, float3 rgb2, float3 rgb3) -{ - MixboxLatent z1 = MixboxRGBToLatent(rgb1); - MixboxLatent z2 = MixboxRGBToLatent(rgb2); - MixboxLatent z3 = MixboxRGBToLatent(rgb3); - - // mix together 30% of rgb1, 60% of rgb2, and 10% of rgb3 - MixboxLatent zMix = 0.3*z1 + 0.6*z2 + 0.1*z3; - - float3 rgbMix = MixboxLatentToRGB(zMix); - - return rgbMix; -} -``` - -## Pigment Colors -| Pigment | | RGB | Float RGB | Linear RGB | -| --- | --- |:----:|:----:|:----:| -| Cadmium Yellow | | 254, 236, 0 | 0.996, 0.925, 0.0 | 0.991, 0.839, 0.0 | -| Hansa Yellow | | 252, 211, 0 | 0.988, 0.827, 0.0 | 0.973, 0.651, 0.0 | -| Cadmium Orange | | 255, 105, 0 | 1.0, 0.412, 0.0 | 1.0, 0.141, 0.0 | -| Cadmium Red | | 255, 39, 2 | 1.0, 0.153, 0.008 | 1.0, 0.02, 0.001 | -| Quinacridone Magenta | | 128, 2, 46 | 0.502, 0.008, 0.18 | 0.216, 0.001, 0.027 | -| Cobalt Violet | | 78, 0, 66 | 0.306, 0.0, 0.259 | 0.076, 0.0, 0.054 | -| Ultramarine Blue | | 25, 0, 89 | 0.098, 0.0, 0.349 | 0.01, 0.0, 0.1 | -| Cobalt Blue | | 0, 33, 133 | 0.0, 0.129, 0.522 | 0.0, 0.015, 0.235 | -| Phthalo Blue | | 13, 27, 68 | 0.051, 0.106, 0.267 | 0.004, 0.011, 0.058 | -| Phthalo Green | | 0, 60, 50 | 0.0, 0.235, 0.196 | 0.0, 0.045, 0.032 | -| Permanent Green | | 7, 109, 22 | 0.027, 0.427, 0.086 | 0.002, 0.153, 0.008 | -| Sap Green | | 107, 148, 4 | 0.42, 0.58, 0.016 | 0.147, 0.296, 0.001 | -| Burnt Sienna | | 123, 72, 0 | 0.482, 0.282, 0.0 | 0.198, 0.065, 0.0 | - -## License -Copyright (c) 2022, Secret Weapons. All rights reserved.
-Mixbox is provided under the CC BY-NC 4.0 license for non-commercial use only.
-If you want to obtain commercial license, please contact: mixbox@scrtwpns.com diff --git a/shaders/mixbox.glsl b/shaders/mixbox.glsl deleted file mode 100644 index 5ce2957..0000000 --- a/shaders/mixbox.glsl +++ /dev/null @@ -1,173 +0,0 @@ -// ========================================================== -// MIXBOX 2.0 (c) 2022 Secret Weapons. All rights reserved. -// License: Creative Commons Attribution-NonCommercial 4.0 -// Authors: Sarka Sochorova and Ondrej Jamriska -// ========================================================== -// -// BASIC USAGE -// -// vec3 rgb = mixbox_lerp(rgb1, rgb2, t); -// -// MULTI-COLOR MIXING -// -// mixbox_latent z1 = mixbox_rgb_to_latent(rgb1); -// mixbox_latent z2 = mixbox_rgb_to_latent(rgb2); -// mixbox_latent z3 = mixbox_rgb_to_latent(rgb3); -// -// // mix 30% of rgb1, 60% of rgb2, and 10% of rgb3 -// mixbox_latent z_mix = 0.3*z1 + 0.6*z2 + 0.1*z3; -// -// vec3 rgb_mix = mixbox_latent_to_rgb(z_mix); -// -// PIGMENT COLORS -// -// Cadmium Yellow 0.996, 0.925, 0.000 -// Hansa Yellow 0.988, 0.827, 0.000 -// Cadmium Orange 1.000, 0.412, 0.000 -// Cadmium Red 1.000, 0.153, 0.008 -// Quinacridone Magenta 0.502, 0.008, 0.180 -// Cobalt Violet 0.306, 0.000, 0.259 -// Ultramarine Blue 0.098, 0.000, 0.349 -// Cobalt Blue 0.000, 0.129, 0.522 -// Phthalo Blue 0.051, 0.106, 0.267 -// Phthalo Green 0.000, 0.235, 0.196 -// Permanent Green 0.027, 0.427, 0.086 -// Sap Green 0.420, 0.580, 0.016 -// Burnt Sienna 0.482, 0.282, 0.000 -// -// LICENSING -// -// If you want to obtain commercial license, please -// contact us at: mixbox@scrtwpns.com -// - -#ifndef MIXBOX_INCLUDED -#define MIXBOX_INCLUDED - -#ifndef MIXBOX_LUT - #if __VERSION__ <= 120 - #define MIXBOX_LUT(UV) texture2D(mixbox_lut, UV) - #else - #define MIXBOX_LUT(UV) textureLod(mixbox_lut, UV, 0.0) - #endif -#endif - -#define mixbox_latent mat3 - -vec3 mixbox_eval_polynomial(vec3 c) -{ - float c0 = c[0]; - float c1 = c[1]; - float c2 = c[2]; - float c3 = 1.0 - (c0 + c1 + c2); - - float c00 = c0 * c0; - float c11 = c1 * c1; - float c22 = c2 * c2; - float c01 = c0 * c1; - float c02 = c0 * c2; - float c12 = c1 * c2; - float c33 = c3 * c3; - - return (c0*c00) * vec3(+0.07717053, +0.02826978, +0.24832992) + - (c1*c11) * vec3(+0.95912302, +0.80256528, +0.03561839) + - (c2*c22) * vec3(+0.74683774, +0.04868586, +0.00000000) + - (c3*c33) * vec3(+0.99518138, +0.99978149, +0.99704802) + - (c00*c1) * vec3(+0.04819146, +0.83363781, +0.32515377) + - (c01*c1) * vec3(-0.68146950, +1.46107803, +1.06980936) + - (c00*c2) * vec3(+0.27058419, -0.15324870, +1.98735057) + - (c02*c2) * vec3(+0.80478189, +0.67093710, +0.18424500) + - (c00*c3) * vec3(-0.35031003, +1.37855826, +3.68865000) + - (c0*c33) * vec3(+1.05128046, +1.97815239, +2.82989073) + - (c11*c2) * vec3(+3.21607125, +0.81270228, +1.03384539) + - (c1*c22) * vec3(+2.78893374, +0.41565549, -0.04487295) + - (c11*c3) * vec3(+3.02162577, +2.55374103, +0.32766114) + - (c1*c33) * vec3(+2.95124691, +2.81201112, +1.17578442) + - (c22*c3) * vec3(+2.82677043, +0.79933038, +1.81715262) + - (c2*c33) * vec3(+2.99691099, +1.22593053, +1.80653661) + - (c01*c2) * vec3(+1.87394106, +2.05027182, -0.29835996) + - (c01*c3) * vec3(+2.56609566, +7.03428198, +0.62575374) + - (c02*c3) * vec3(+4.08329484, -1.40408358, +2.14995522) + - (c12*c3) * vec3(+6.00078678, +2.55552042, +1.90739502); -} - -float mixbox_srgb_to_linear(float x) -{ - return (x >= 0.04045) ? pow((x + 0.055) / 1.055, 2.4) : x/12.92; -} - -float mixbox_linear_to_srgb(float x) -{ - return (x >= 0.0031308) ? 1.055*pow(x, 1.0/2.4) - 0.055 : 12.92*x; -} - -vec3 mixbox_srgb_to_linear(vec3 rgb) -{ - return vec3(mixbox_srgb_to_linear(rgb.r), - mixbox_srgb_to_linear(rgb.g), - mixbox_srgb_to_linear(rgb.b)); -} - -vec3 mixbox_linear_to_srgb(vec3 rgb) -{ - return vec3(mixbox_linear_to_srgb(rgb.r), - mixbox_linear_to_srgb(rgb.g), - mixbox_linear_to_srgb(rgb.b)); -} - -mixbox_latent mixbox_rgb_to_latent(vec3 rgb) -{ -#ifdef MIXBOX_COLORSPACE_LINEAR - rgb = mixbox_linear_to_srgb(clamp(rgb, 0.0, 1.0)); -#else - rgb = clamp(rgb, 0.0, 1.0); -#endif - - float x = rgb.r * 63.0; - float y = rgb.g * 63.0; - float z = rgb.b * 63.0; - - float iz = floor(z); - - float x0 = mod(iz, 8.0) * 64.0; - float y0 = floor(iz / 8.0) * 64.0; - - float x1 = mod(iz + 1.0, 8.0) * 64.0; - float y1 = floor((iz + 1.0) / 8.0) * 64.0; - - vec2 uv0 = vec2(x0 + x + 0.5, y0 + y + 0.5) / 512.0; - vec2 uv1 = vec2(x1 + x + 0.5, y1 + y + 0.5) / 512.0; - - if (MIXBOX_LUT(vec2(0.5, 0.5) / 512.0).b < 0.1) - { - uv0.y = 1.0 - uv0.y; - uv1.y = 1.0 - uv1.y; - } - - vec3 c = mix(MIXBOX_LUT(uv0).rgb, MIXBOX_LUT(uv1).rgb, z - iz); - - return mixbox_latent(c, rgb - mixbox_eval_polynomial(c), vec3(0.0)); -} - -vec3 mixbox_latent_to_rgb(mixbox_latent latent) -{ - vec3 rgb = clamp(mixbox_eval_polynomial(latent[0]) + latent[1], 0.0, 1.0); - -#ifdef MIXBOX_COLORSPACE_LINEAR - return mixbox_srgb_to_linear(rgb); -#else - return rgb; -#endif -} - -vec3 mixbox_lerp(vec3 color1, vec3 color2, float t) -{ - return mixbox_latent_to_rgb((1.0-t)*mixbox_rgb_to_latent(color1) + t*mixbox_rgb_to_latent(color2)); -} - -vec4 mixbox_lerp(vec4 color1, vec4 color2, float t) -{ - return vec4(mixbox_lerp(color1.rgb, color2.rgb, t), mix(color1.a, color2.a, t)); -} - -#endif diff --git a/shaders/mixbox.hlsl b/shaders/mixbox.hlsl deleted file mode 100644 index 04491ef..0000000 --- a/shaders/mixbox.hlsl +++ /dev/null @@ -1,155 +0,0 @@ -// ========================================================== -// MIXBOX 2.0 (c) 2022 Secret Weapons. All rights reserved. -// License: Creative Commons Attribution-NonCommercial 4.0 -// Authors: Sarka Sochorova and Ondrej Jamriska -// ========================================================== -// -// BASIC USAGE -// -// float3 rgb = MixboxLerp(rgb1, rgb2, t); -// -// MULTI-COLOR MIXING -// -// MixboxLatent z1 = MixboxRGBToLatent(rgb1); -// MixboxLatent z2 = MixboxRGBToLatent(rgb2); -// MixboxLatent z3 = MixboxRGBToLatent(rgb3); -// -// // mix 30% of rgb1, 60% of rgb2, and 10% of rgb3 -// MixboxLatent z_mix = 0.3*z1 + 0.6*z2 + 0.1*z3; -// -// float3 rgb_mix = MixboxLatentToRGB(z_mix); -// -// PIGMENT COLORS -// -// Cadmium Yellow 0.996, 0.925, 0.000 -// Hansa Yellow 0.988, 0.827, 0.000 -// Cadmium Orange 1.000, 0.412, 0.000 -// Cadmium Red 1.000, 0.153, 0.008 -// Quinacridone Magenta 0.502, 0.008, 0.180 -// Cobalt Violet 0.306, 0.000, 0.259 -// Ultramarine Blue 0.098, 0.000, 0.349 -// Cobalt Blue 0.000, 0.129, 0.522 -// Phthalo Blue 0.051, 0.106, 0.267 -// Phthalo Green 0.000, 0.235, 0.196 -// Permanent Green 0.027, 0.427, 0.086 -// Sap Green 0.420, 0.580, 0.016 -// Burnt Sienna 0.482, 0.282, 0.000 -// -// LICENSING -// -// If you want to obtain commercial license, please -// contact us at: mixbox@scrtwpns.com -// - -#ifndef MIXBOX_INCLUDED -#define MIXBOX_INCLUDED - -#ifndef MIXBOX_LUT - #define MIXBOX_LUT(UV) MixboxLUT.SampleLevel(MixboxSampler, UV, 0) -#endif - -typedef float3x3 MixboxLatent; - -float3 MixboxEvalPolynomial(float3 c) -{ - float c0 = c[0]; - float c1 = c[1]; - float c2 = c[2]; - float c3 = 1.0 - (c0 + c1 + c2); - - float c00 = c0 * c0; - float c11 = c1 * c1; - float c22 = c2 * c2; - float c01 = c0 * c1; - float c02 = c0 * c2; - float c12 = c1 * c2; - float c33 = c3 * c3; - - return (c0*c00) * float3(+0.07717053, +0.02826978, +0.24832992) + - (c1*c11) * float3(+0.95912302, +0.80256528, +0.03561839) + - (c2*c22) * float3(+0.74683774, +0.04868586, +0.00000000) + - (c3*c33) * float3(+0.99518138, +0.99978149, +0.99704802) + - (c00*c1) * float3(+0.04819146, +0.83363781, +0.32515377) + - (c01*c1) * float3(-0.68146950, +1.46107803, +1.06980936) + - (c00*c2) * float3(+0.27058419, -0.15324870, +1.98735057) + - (c02*c2) * float3(+0.80478189, +0.67093710, +0.18424500) + - (c00*c3) * float3(-0.35031003, +1.37855826, +3.68865000) + - (c0*c33) * float3(+1.05128046, +1.97815239, +2.82989073) + - (c11*c2) * float3(+3.21607125, +0.81270228, +1.03384539) + - (c1*c22) * float3(+2.78893374, +0.41565549, -0.04487295) + - (c11*c3) * float3(+3.02162577, +2.55374103, +0.32766114) + - (c1*c33) * float3(+2.95124691, +2.81201112, +1.17578442) + - (c22*c3) * float3(+2.82677043, +0.79933038, +1.81715262) + - (c2*c33) * float3(+2.99691099, +1.22593053, +1.80653661) + - (c01*c2) * float3(+1.87394106, +2.05027182, -0.29835996) + - (c01*c3) * float3(+2.56609566, +7.03428198, +0.62575374) + - (c02*c3) * float3(+4.08329484, -1.40408358, +2.14995522) + - (c12*c3) * float3(+6.00078678, +2.55552042, +1.90739502); -} - -float3 MixboxSRGBToLinear(float3 rgb) -{ - return (rgb >= 0.04045) ? pow((abs(rgb) + 0.055) / 1.055, 2.4) : rgb/12.92; -} - -float3 MixboxLinearToSRGB(float3 rgb) -{ - return (rgb >= 0.0031308) ? 1.055*pow(abs(rgb), 1.0/2.4) - 0.055 : 12.92*rgb; -} - -MixboxLatent MixboxRGBToLatent(float3 rgb) -{ -#ifdef MIXBOX_COLORSPACE_LINEAR - rgb = MixboxLinearToSRGB(saturate(rgb)); -#else - rgb = saturate(rgb); -#endif - - float x = rgb.r * 63.0; - float y = rgb.g * 63.0; - float z = rgb.b * 63.0; - - float iz = floor(z); - - float x0 = fmod(iz, 8.0) * 64.0; - float y0 = floor(iz / 8.0) * 64.0; - - float x1 = fmod(iz + 1.0, 8.0) * 64.0; - float y1 = floor((iz + 1.0) / 8.0) * 64.0; - - float2 uv0 = float2(x0 + x + 0.5, 512.0 - (y0 + y + 0.5)) / 512.0; - float2 uv1 = float2(x1 + x + 0.5, 512.0 - (y1 + y + 0.5)) / 512.0; - - if (MIXBOX_LUT(float2(0.5, 0.5) / 512.0).b > 0.1) - { - uv0.y = 1.0 - uv0.y; - uv1.y = 1.0 - uv1.y; - } - - float3 c = lerp(MIXBOX_LUT(uv0).rgb, MIXBOX_LUT(uv1).rgb, z - iz); - - return MixboxLatent(c, rgb - MixboxEvalPolynomial(c), 0.0, 0.0, 0.0); -} - -float3 MixboxLatentToRGB(MixboxLatent latent) -{ - float3 rgb = saturate(MixboxEvalPolynomial(latent[0]) + latent[1]); - -#ifdef MIXBOX_COLORSPACE_LINEAR - return MixboxSRGBToLinear(rgb); -#else - return rgb; -#endif -} - -float3 MixboxLerp(float3 color1, float3 color2, float t) -{ - return MixboxLatentToRGB((1.0-t)*MixboxRGBToLatent(color1) + t*MixboxRGBToLatent(color2)); -} - -float4 MixboxLerp(float4 color1, float4 color2, float t) -{ - return float4(MixboxLerp(color1.rgb, color2.rgb, t), lerp(color1.a, color2.a, t)); -} - -#endif diff --git a/shaders/mixbox_lut.png b/shaders/mixbox_lut.png deleted file mode 100644 index af21715..0000000 Binary files a/shaders/mixbox_lut.png and /dev/null differ diff --git a/unity/README.md b/unity/README.md deleted file mode 100644 index 00f7610..0000000 --- a/unity/README.md +++ /dev/null @@ -1,189 +0,0 @@ -# Mixbox for Unity - -Open `Window` > `Package Manager` and choose ` + ` > `Add packge from git URL..`: -``` -https://github.com/scrtwpns/mixbox.git#upm -``` - -## Script -```csharp -using UnityEngine; -using Scrtwpns.Mixbox; - -public class NewBehaviourScript : MonoBehaviour -{ - void Start() - { - Color color1 = new Color(0.0f, 0.129f, 0.522f); // blue - Color color2 = new Color(0.988f, 0.827f, 0.0f); // yellow - float t = 0.5f; // mixing ratio - - Color colorMix = Mixbox.Lerp(color1, color2, t); - - Debug.Log(colorMix); - } -} -``` -```csharp -Color MixThree(Color color1, Color color2, Color color3) -{ - MixboxLatent z1 = Mixbox.RGBToLatent(color1); - MixboxLatent z2 = Mixbox.RGBToLatent(color2); - MixboxLatent z3 = Mixbox.RGBToLatent(color3); - - // mix 30% of color1, 60% of color2, and 10% of color3 - MixboxLatent zMix = 0.3f*z1 + 0.6f*z2 + 0.1f*z3; - - Color colorMix = Mixbox.LatentToRGB(zMix); - - return colorMix; -} -``` - -## Shader -```ShaderLab -Shader "MixboxHelloShader" -{ - Properties - { - [NoScaleOffset] _MixboxLUT ("Mixbox LUT", 2D) = "white" {} // assign "Packages/Mixbox/Textures/MixboxLUT.png" - - _Color1 ("Color 1", Color) = (0, 0.129, 0.522, 1) // blue - _Color2 ("Color 2", Color) = (0.988, 0.827, 0, 1) // yellow - } - SubShader - { - Pass - { - CGPROGRAM - #pragma vertex vert - #pragma fragment frag - - #include "UnityCG.cginc" - - sampler2D _MixboxLUT; - #include "Packages/com.scrtwpns.mixbox/ShaderLibrary/Mixbox.cginc" - - fixed4 _Color1; - fixed4 _Color2; - - struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; }; - struct v2f { float2 uv : TEXCOORD0; float4 vertex : SV_POSITION; }; - - v2f vert (appdata v) - { - v2f o; - o.vertex = UnityObjectToClipPos(v.vertex); - o.uv = v.uv; - return o; - } - - fixed4 frag (v2f i) : SV_Target - { - return MixboxLerp(_Color1, _Color2, i.uv.x); - } - ENDCG - } - } -} -``` -```hlsl -float3 MixThree(float3 rgb1, float3 rgb2, float3 rgb3) -{ - MixboxLatent z1 = MixboxRGBToLatent(rgb1); - MixboxLatent z2 = MixboxRGBToLatent(rgb2); - MixboxLatent z3 = MixboxRGBToLatent(rgb3); - - // mix together 30% of rgb1, 60% of rgb2, and 10% of rgb3 - MixboxLatent zMix = 0.3*z1 + 0.6*z2 + 0.1*z3; - - float3 rgbMix = MixboxLatentToRGB(zMix); - - return rgbMix; -} -``` -

- -

- -## URP Shader -```ShaderLab -Shader "Mixbox/Mixbox URP Sample Shader" -{ - Properties - { - [NoScaleOffset] _MixboxLUT ("Mixbox LUT", 2D) = "white" {} // assign "Packages/Mixbox/Textures/MixboxLUT.png" - - _Color1 ("Color 1", Color) = (0, 0.129, 0.522, 1) // blue - _Color2 ("Color 2", Color) = (0.988, 0.827, 0, 1) // yellow - } - - SubShader - { - Tags { "RenderType" = "Opaque" "RenderPipeline" = "UniversalRenderPipeline" } - - Pass - { - HLSLPROGRAM - #pragma vertex vert - #pragma fragment frag - - #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" - - TEXTURE2D(_MixboxLUT); - SAMPLER(sampler_MixboxLUT); - - #include "Packages/com.scrtwpns.mixbox/ShaderLibrary/Mixbox.hlsl" - - struct Attributes { float4 positionOS : POSITION; float2 uv : TEXCOORD0; }; - struct Varyings { float4 positionHCS : SV_POSITION; float2 uv : TEXCOORD0; }; - - CBUFFER_START(UnityPerMaterial) - half4 _Color1; - half4 _Color2; - CBUFFER_END - - Varyings vert(Attributes IN) - { - Varyings OUT; - OUT.positionHCS = TransformObjectToHClip(IN.positionOS.xyz); - OUT.uv = IN.uv; - return OUT; - } - - half4 frag(Varyings IN) : SV_Target - { - return MixboxLerp(_Color1, _Color2, IN.uv.x); - } - ENDHLSL - } - } -} -``` - -## Shader Graph -

- -

- -## Pigment Colors -| Pigment | | RGB | Float RGB | Linear RGB | -| --- | --- |:----:|:----:|:----:| -| Cadmium Yellow | | 254, 236, 0 | 0.996, 0.925, 0.0 | 0.991, 0.839, 0.0 | -| Hansa Yellow | | 252, 211, 0 | 0.988, 0.827, 0.0 | 0.973, 0.651, 0.0 | -| Cadmium Orange | | 255, 105, 0 | 1.0, 0.412, 0.0 | 1.0, 0.141, 0.0 | -| Cadmium Red | | 255, 39, 2 | 1.0, 0.153, 0.008 | 1.0, 0.02, 0.001 | -| Quinacridone Magenta | | 128, 2, 46 | 0.502, 0.008, 0.18 | 0.216, 0.001, 0.027 | -| Cobalt Violet | | 78, 0, 66 | 0.306, 0.0, 0.259 | 0.076, 0.0, 0.054 | -| Ultramarine Blue | | 25, 0, 89 | 0.098, 0.0, 0.349 | 0.01, 0.0, 0.1 | -| Cobalt Blue | | 0, 33, 133 | 0.0, 0.129, 0.522 | 0.0, 0.015, 0.235 | -| Phthalo Blue | | 13, 27, 68 | 0.051, 0.106, 0.267 | 0.004, 0.011, 0.058 | -| Phthalo Green | | 0, 60, 50 | 0.0, 0.235, 0.196 | 0.0, 0.045, 0.032 | -| Permanent Green | | 7, 109, 22 | 0.027, 0.427, 0.086 | 0.002, 0.153, 0.008 | -| Sap Green | | 107, 148, 4 | 0.42, 0.58, 0.016 | 0.147, 0.296, 0.001 | -| Burnt Sienna | | 123, 72, 0 | 0.482, 0.282, 0.0 | 0.198, 0.065, 0.0 | - -## License -Copyright (c) 2022, Secret Weapons. All rights reserved.
-Mixbox is provided under the CC BY-NC 4.0 license for non-commercial use only.
-If you want to obtain commercial license, please contact: mixbox@scrtwpns.com diff --git a/webgl/README.md b/webgl/README.md deleted file mode 100644 index 1f51580..0000000 --- a/webgl/README.md +++ /dev/null @@ -1,62 +0,0 @@ -## Mixbox in WebGL - -```html - -``` -```javascript -import mixbox from 'https://scrtwpns.com/mixbox.esm.js'; // for ES6 module use this instead -``` - -```javascript -var shader = ` - precision highp float; - - // uncomment the following line if you work in linear space - // #define MIXBOX_COLORSPACE_LINEAR - - uniform sampler2D mixbox_lut; // bind mixbox.lutTexture(gl) here - - #include "mixbox.glsl" - - void main(void) { - vec3 rgb1 = vec3(0, 0.129, 0.522); // blue - vec3 rgb2 = vec3(0.988, 0.827, 0); // yellow - float t = 0.5; // mixing ratio - - vec3 rgb = mixbox_lerp(rgb1, rgb2, t); - - gl_FragColor = vec4(rgb, 1.0); - } -`; - -shader = shader.replace('#include "mixbox.glsl"', mixbox.glsl()); -``` - -```javascript -gl.useProgram(shaderProgram); -gl.activeTexture(gl.TEXTURE0); -gl.bindTexture(gl.TEXTURE_2D, mixbox.lutTexture(gl)); -gl.uniform1i(gl.getUniformLocation(shaderProgram, "mixbox_lut"), 0); -``` - -## Pigment Colors -| Pigment | | RGB | Float RGB | Linear RGB | -| --- | --- |:----:|:----:|:----:| -| Cadmium Yellow | | 254, 236, 0 | 0.996, 0.925, 0.0 | 0.991, 0.839, 0.0 | -| Hansa Yellow | | 252, 211, 0 | 0.988, 0.827, 0.0 | 0.973, 0.651, 0.0 | -| Cadmium Orange | | 255, 105, 0 | 1.0, 0.412, 0.0 | 1.0, 0.141, 0.0 | -| Cadmium Red | | 255, 39, 2 | 1.0, 0.153, 0.008 | 1.0, 0.02, 0.001 | -| Quinacridone Magenta | | 128, 2, 46 | 0.502, 0.008, 0.18 | 0.216, 0.001, 0.027 | -| Cobalt Violet | | 78, 0, 66 | 0.306, 0.0, 0.259 | 0.076, 0.0, 0.054 | -| Ultramarine Blue | | 25, 0, 89 | 0.098, 0.0, 0.349 | 0.01, 0.0, 0.1 | -| Cobalt Blue | | 0, 33, 133 | 0.0, 0.129, 0.522 | 0.0, 0.015, 0.235 | -| Phthalo Blue | | 13, 27, 68 | 0.051, 0.106, 0.267 | 0.004, 0.011, 0.058 | -| Phthalo Green | | 0, 60, 50 | 0.0, 0.235, 0.196 | 0.0, 0.045, 0.032 | -| Permanent Green | | 7, 109, 22 | 0.027, 0.427, 0.086 | 0.002, 0.153, 0.008 | -| Sap Green | | 107, 148, 4 | 0.42, 0.58, 0.016 | 0.147, 0.296, 0.001 | -| Burnt Sienna | | 123, 72, 0 | 0.482, 0.282, 0.0 | 0.198, 0.065, 0.0 | - -## License -Copyright (c) 2022, Secret Weapons. All rights reserved.
-Mixbox is provided under the CC BY-NC 4.0 license for non-commercial use only.
-If you want to obtain commercial license, please contact: mixbox@scrtwpns.com diff --git a/webgl/example.html b/webgl/example.html deleted file mode 100644 index 20ac142..0000000 --- a/webgl/example.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - -