From 573712405b13b1c0142d80a9522f8ad838d27e1a Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Fri, 9 Aug 2013 00:01:02 +0200 Subject: [PATCH 01/17] Added declaration for new GTC_packing extension --- glm/gtc/packing.hpp | 115 +++++++++++++++++++++++++++++++++++ glm/gtc/packing.inl | 32 ++++++++++ test/core/core_type_vec2.cpp | 2 +- 3 files changed, 148 insertions(+), 1 deletion(-) create mode 100644 glm/gtc/packing.hpp create mode 100644 glm/gtc/packing.inl diff --git a/glm/gtc/packing.hpp b/glm/gtc/packing.hpp new file mode 100644 index 00000000..0f366384 --- /dev/null +++ b/glm/gtc/packing.hpp @@ -0,0 +1,115 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtc_packing +/// @file glm/gtc/packing.hpp +/// @date 2013-08-08 / 2013-08-08 +/// @author Christophe Riccio +/// +/// @see core (dependence) +/// +/// @defgroup gtc_packing GLM_GTC_packing +/// @ingroup gtc +/// +/// @brief This extension provides a set of function to convert vertors to packed +/// formats. +/// +/// need to be included to use these features. +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef GLM_GTC_packing +#define GLM_GTC_packing GLM_VERSION + +// Dependency: +#include "../glm.hpp" + +#if(defined(GLM_MESSAGES) && !defined(glm_ext)) +# pragma message("GLM: GLM_GTC_packing extension included") +#endif + +namespace glm +{ + /// @addtogroup gtc_packing + /// @{ + + uint16 packUnorm1x16(float v); + float unpackUnorm1x16(uint16 v); + + uint64 packUnorm4x16(vec4 const & v); + vec4 unpackUnorm4x16(uint64 const & v); + + uint16 packSnorm1x16(float v); + float unpackSnorm1x16(uint16 v); + + uint64 packSnorm4x16(vec4 const & v); + vec4 unpackSnorm4x16(uint64 const & v); + + uint16 packUnorm2x8(vec2 const & v); + vec2 unpackUnorm2x8(uint16 v); + + uint16 packSnorm2x8(vec2 const & v); + vec2 unpackSnorm2x8(uint16 v); + + GLM_FUNC_DECL uint16 packHalf1x16(float const & v); + GLM_FUNC_DECL float unpackHalf1x16(uint16 const & v); + + /// Returns an unsigned integer obtained by converting the components of a two-component floating-point vector + /// to the 16-bit floating-point representation found in the OpenGL Specification, + /// and then packing these two 16- bit integers into a 32-bit unsigned integer. + /// The first vector component specifies the 16 least-significant bits of the result; + /// the second component specifies the 16 most-significant bits. + /// + /// @see gtc_packing + /// @see GLSL packHalf2x16 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions + GLM_FUNC_DECL uint64 packHalf4x16(vec4 const & v); + + /// Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned integer into a pair of 16-bit values, + /// interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, + /// and converting them to 32-bit floating-point values. + /// The first component of the vector is obtained from the 16 least-significant bits of v; + /// the second component is obtained from the 16 most-significant bits of v. + /// + /// @see gtc_packing + /// @see GLSL unpackHalf2x16 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions + GLM_FUNC_DECL vec4 unpackHalf4x16(uint64 const & v); + + GLM_FUNC_DECL uint32 packSnorm3x10Snorm1x2(vec4 const & v); + GLM_FUNC_DECL vec4 unpackSnorm3x10Snorm1x2(uint32 const & v); + + GLM_FUNC_DECL uint32 packI3x10I1x2(ivec4 const & v); + GLM_FUNC_DECL ivec4 unpackI3x10I1x2(uint32 const & v); + + GLM_FUNC_DECL uint32 packU3x10U1x2(uvec4 const & v); + GLM_FUNC_DECL uvec4 unpackU3x10U1x2(uint32 const & v); + + GLM_FUNC_DECL uint32 packF11F11F10(vec3 const & v); + GLM_FUNC_DECL vec3 unpackF11F11F10(uint32 const & v); + + /// @} +}// namespace glm + +#include "packing.inl" + +#endif//GLM_GTC_packing + diff --git a/glm/gtc/packing.inl b/glm/gtc/packing.inl new file mode 100644 index 00000000..dcaa12f3 --- /dev/null +++ b/glm/gtc/packing.inl @@ -0,0 +1,32 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtc_packing +/// @file glm/gtc/packing.inl +/// @date 2013-08-08 / 2013-08-08 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// + +namespace glm +{ + +}//namespace glm diff --git a/test/core/core_type_vec2.cpp b/test/core/core_type_vec2.cpp index 6f2b2560..ebdf2306 100644 --- a/test/core/core_type_vec2.cpp +++ b/test/core/core_type_vec2.cpp @@ -230,7 +230,7 @@ int test_operator_increment() glm::ivec2 v3 = ++v1; glm::ivec2 v4 = v2++; - Error += glm::all(glm::equal(v0, v4)) ? 0 : 1; + Error += glm::all(glm::equal(v0, v4)) ? 0 : 1; Error += glm::all(glm::equal(v1, v2)) ? 0 : 1; Error += glm::all(glm::equal(v1, v3)) ? 0 : 1; From cf14790806202852f62bcdb6646865c3894913f2 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Sat, 10 Aug 2013 19:52:59 +0200 Subject: [PATCH 02/17] Added packF11F11F10 implementation --- glm/gtc/packing.hpp | 4 +- glm/gtc/packing.inl | 116 ++++++++++++++++++++++++++++++++ test/gtc/CMakeLists.txt | 1 + test/gtc/gtc_packing.cpp | 142 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 261 insertions(+), 2 deletions(-) create mode 100644 test/gtc/gtc_packing.cpp diff --git a/glm/gtc/packing.hpp b/glm/gtc/packing.hpp index 0f366384..f77b9f0d 100644 --- a/glm/gtc/packing.hpp +++ b/glm/gtc/packing.hpp @@ -100,8 +100,8 @@ namespace glm GLM_FUNC_DECL uint32 packI3x10I1x2(ivec4 const & v); GLM_FUNC_DECL ivec4 unpackI3x10I1x2(uint32 const & v); - GLM_FUNC_DECL uint32 packU3x10U1x2(uvec4 const & v); - GLM_FUNC_DECL uvec4 unpackU3x10U1x2(uint32 const & v); + GLM_FUNC_DECL uint32 packU10U10U10U2(uvec4 const & v); + GLM_FUNC_DECL uvec4 unpackU10U10U10U2(uint32 const & v); GLM_FUNC_DECL uint32 packF11F11F10(vec3 const & v); GLM_FUNC_DECL vec3 unpackF11F11F10(uint32 const & v); diff --git a/glm/gtc/packing.inl b/glm/gtc/packing.inl index dcaa12f3..2ae8e139 100644 --- a/glm/gtc/packing.inl +++ b/glm/gtc/packing.inl @@ -28,5 +28,121 @@ namespace glm { +namespace detail +{ + glm::uint16 float2half(glm::uint32 const & f) + { + // 10 bits => EE EEEFFFFF + // 11 bits => EEE EEFFFFFF + // Half bits => SEEEEEFF FFFFFFFF + // Float bits => SEEEEEEE EFFFFFFF FFFFFFFF FFFFFFFF + + // 0x00007c00 => 00000000 00000000 01111100 00000000 + // 0x000003ff => 00000000 00000000 00000011 11111111 + // 0x38000000 => 00111000 00000000 00000000 00000000 + // 0x7f800000 => 01111111 10000000 00000000 00000000 + // 0x00008000 => 00000000 00000000 10000000 00000000 + return + ((f >> 16) & 0x8000) | // sign + ((((f & 0x7f800000) - 0x38000000) >> 13) & 0x7c00) | // exponential + ((f >> 13) & 0x03ff); // Mantissa + } + + glm::uint16 float2packed11(glm::uint32 const & f) + { + // 10 bits => EE EEEFFFFF + // 11 bits => EEE EEFFFFFF + // Half bits => SEEEEEFF FFFFFFFF + // Float bits => SEEEEEEE EFFFFFFF FFFFFFFF FFFFFFFF + + // 0x000007c0 => 00000000 00000000 00000111 11000000 + // 0x00007c00 => 00000000 00000000 01111100 00000000 + // 0x000003ff => 00000000 00000000 00000011 11111111 + // 0x38000000 => 00111000 00000000 00000000 00000000 + // 0x7f800000 => 01111111 10000000 00000000 00000000 + // 0x00008000 => 00000000 00000000 10000000 00000000 + return + ((((f & 0x7f800000) - 0x38000000) >> 17) & 0x07c0) | // exponential + ((f >> 17) & 0x003f); // Mantissa + } + + glm::uint float2packed10(glm::uint const & f) + { + // 10 bits => EE EEEFFFFF + // 11 bits => EEE EEFFFFFF + // Half bits => SEEEEEFF FFFFFFFF + // Float bits => SEEEEEEE EFFFFFFF FFFFFFFF FFFFFFFF + + // 0x0000001F => 00000000 00000000 00000000 00011111 + // 0x0000003F => 00000000 00000000 00000000 00111111 + // 0x000003E0 => 00000000 00000000 00000011 11100000 + // 0x000007C0 => 00000000 00000000 00000111 11000000 + // 0x00007C00 => 00000000 00000000 01111100 00000000 + // 0x000003FF => 00000000 00000000 00000011 11111111 + // 0x38000000 => 00111000 00000000 00000000 00000000 + // 0x7f800000 => 01111111 10000000 00000000 00000000 + // 0x00008000 => 00000000 00000000 10000000 00000000 + return + ((((f & 0x7f800000) - 0x38000000) >> 18) & 0x03E0) | // exponential + ((f >> 18) & 0x001f); // Mantissa + } + + glm::uint half2float(glm::uint const & h) + { + return ((h & 0x8000) << 16) | ((( h & 0x7c00) + 0x1C000) << 13) | ((h & 0x03FF) << 13); + } + + union uif + { + glm::uint i; + float f; + }; + + glm::uint floatTo11bit(float x) + { + if(x == 0.0f) + return 0; + else if(glm::isnan(x)) + return ~0; + else if(glm::isinf(x)) + return 0x1f << 6; + + uif Union; + Union.f = x; + return float2packed11(Union.i); + } + + glm::uint floatTo10bit(float x) + { + if(x == 0.0f) + return 0; + else if(glm::isnan(x)) + return ~0; + else if(glm::isinf(x)) + return 0x1f << 5; + + uif Union; + Union.f = x; + return float2packed10(Union.i); + } + + glm::uint f11_f11_f10(float x, float y, float z) + { + return ((floatTo11bit(x) & ((1 << 11) - 1)) << 0) | ((floatTo11bit(y) & ((1 << 11) - 1)) << 11) | ((floatTo10bit(z) & ((1 << 10) - 1)) << 22); + } +}//namespace detail + + GLM_FUNC_QUALIFIER uint32 packF11F11F10(vec3 const & v) + { + return + ((detail::floatTo11bit(v.x) & ((1 << 11) - 1)) << 0) | + ((detail::floatTo11bit(v.y) & ((1 << 11) - 1)) << 11) | + ((detail::floatTo10bit(v.z) & ((1 << 10) - 1)) << 22); + } + + GLM_FUNC_QUALIFIER vec3 unpackF11F11F10(uint32 const & v) + { + + } }//namespace glm diff --git a/test/gtc/CMakeLists.txt b/test/gtc/CMakeLists.txt index 273341a8..62c33063 100644 --- a/test/gtc/CMakeLists.txt +++ b/test/gtc/CMakeLists.txt @@ -6,6 +6,7 @@ glmCreateTestGTC(gtc_matrix_integer) glmCreateTestGTC(gtc_matrix_inverse) glmCreateTestGTC(gtc_matrix_transform) glmCreateTestGTC(gtc_noise) +glmCreateTestGTC(gtc_packing) glmCreateTestGTC(gtc_quaternion) glmCreateTestGTC(gtc_random) glmCreateTestGTC(gtc_reciprocal) diff --git a/test/gtc/gtc_packing.cpp b/test/gtc/gtc_packing.cpp new file mode 100644 index 00000000..7eaf5730 --- /dev/null +++ b/test/gtc/gtc_packing.cpp @@ -0,0 +1,142 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref test +/// @file test/gtc/packing.cpp +/// @date 2013-08-09 / 2013-08-09 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// + + +#include +#include + +void print_bits(glm::half const & s) +{ + union + { + glm::detail::hdata h; + unsigned short i; + } uif; + + uif.h = s._data(); + + printf("f16: "); + for(std::size_t j = sizeof(s) * 8; j > 0; --j) + { + if(j == 10 || j == 15) + printf(" "); + printf("%d", (uif.i & (1 << (j - 1))) ? 1 : 0); + } +} + +void print_bits(float const & s) +{ + union + { + float f; + unsigned int i; + } uif; + + uif.f = s; + + printf("f32: "); + for(std::size_t j = sizeof(s) * 8; j > 0; --j) + { + if(j == 23 || j == 31) + printf(" "); + printf("%d", (uif.i & (1 << (j - 1))) ? 1 : 0); + } +} + +void print_10bits(glm::uint const & s) +{ + printf("10b: "); + for(std::size_t j = 10; j > 0; --j) + { + if(j == 5) + printf(" "); + printf("%d", (s & (1 << (j - 1))) ? 1 : 0); + } +} + +void print_11bits(glm::uint const & s) +{ + printf("11b: "); + for(std::size_t j = 11; j > 0; --j) + { + if(j == 6) + printf(" "); + printf("%d", (s & (1 << (j - 1))) ? 1 : 0); + } +} + +void print_value(float const & s) +{ + printf("%2.5f, ", s); + print_bits(s); + printf(", "); + print_bits(glm::half(s)); + printf(", "); + print_11bits(detail::floatTo11bit(s)); + printf(", "); + print_10bits(detail::floatTo10bit(s)); + printf("\n"); +} + +int test_half() +{ + int Error = 0; + + print_value(0.0); + print_value(0.1); + print_value(0.2); + print_value(0.3); + print_value(0.4); + print_value(0.5); + print_value(0.6); + print_value(1.0); + print_value(1.1); + print_value(1.2); + print_value(1.3); + print_value(1.4); + print_value(1.5); + print_value(1.6); + print_value(2.0); + print_value(2.1); + print_value(2.2); + print_value(2.3); + print_value(2.4); + print_value(2.5); + print_value(2.6); + + return Error; +} + +int main() +{ + int Error(0); + + Error += test_half(); + + return Error; +} From a105876133a98c9b396437a4b98527d22bf36b5b Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Sun, 11 Aug 2013 02:16:47 +0200 Subject: [PATCH 03/17] Added GTC_packing implementation --- glm/core/func_packing.inl | 10 +- glm/core/func_vector_relational.hpp | 10 +- glm/gtc/packing.hpp | 34 ++-- glm/gtc/packing.inl | 260 +++++++++++++++++++++++++++- test/gtc/gtc_half_float.cpp | 42 ++--- test/gtc/gtc_packing.cpp | 51 +++--- 6 files changed, 333 insertions(+), 74 deletions(-) diff --git a/glm/core/func_packing.inl b/glm/core/func_packing.inl index ce22d4e9..2ee447e1 100644 --- a/glm/core/func_packing.inl +++ b/glm/core/func_packing.inl @@ -40,9 +40,7 @@ namespace glm uint32 Mask16((1 << 16) - 1); uint32 A((p >> 0) & Mask16); uint32 B((p >> 16) & Mask16); - return vec2( - A * 1.0f / 65535.0f, - B * 1.0f / 65535.0f); + return vec2(A, B) * float(1.5259021896696421759365224689097e-5); // 1.0 / 65535.0 } GLM_FUNC_QUALIFIER uint32 packSnorm2x16(vec2 const & v) @@ -53,9 +51,9 @@ namespace glm uint16 u; } A, B; - vec2 Unpack = clamp(v ,-1.0f, 1.0f) * 32767.0f; - A.i = detail::int16(round(Unpack.x)); - B.i = detail::int16(round(Unpack.y)); + vec2 Unpack = round(clamp(v ,-1.0f, 1.0f) * 32767.0f); + A.i = detail::int16(Unpack.x); + B.i = detail::int16(Unpack.y); uint32 Pack = (uint32(B.u) << 16) | (uint32(A.u) << 0); return Pack; } diff --git a/glm/core/func_vector_relational.hpp b/glm/core/func_vector_relational.hpp index b2fe4407..4c7d6813 100644 --- a/glm/core/func_vector_relational.hpp +++ b/glm/core/func_vector_relational.hpp @@ -52,8 +52,9 @@ namespace glm /// /// @see GLSL lessThan man page /// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions - template class vecType> - GLM_FUNC_DECL typename vecType::bool_type lessThan(vecType const & x, vecType const & y); + // TODO: Mismatched + //template class vecType> + //GLM_FUNC_DECL typename vecType::bool_type lessThan(vecType const & x, vecType const & y); /// Returns the component-wise comparison of result x <= y. /// @@ -88,8 +89,9 @@ namespace glm /// /// @see GLSL equal man page /// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions - template class vecType> - GLM_FUNC_DECL typename vecType::bool_type equal(vecType const & x, vecType const & y); + //TODO: conflicts with definision + //template class vecType> + //GLM_FUNC_DECL typename vecType::bool_type equal(vecType const & x, vecType const & y); /// Returns the component-wise comparison of result x != y. /// diff --git a/glm/gtc/packing.hpp b/glm/gtc/packing.hpp index f77b9f0d..15a2b3e7 100644 --- a/glm/gtc/packing.hpp +++ b/glm/gtc/packing.hpp @@ -51,23 +51,23 @@ namespace glm /// @addtogroup gtc_packing /// @{ - uint16 packUnorm1x16(float v); - float unpackUnorm1x16(uint16 v); + GLM_FUNC_DECL uint16 packUnorm1x16(float v); + GLM_FUNC_DECL float unpackUnorm1x16(uint16 v); - uint64 packUnorm4x16(vec4 const & v); - vec4 unpackUnorm4x16(uint64 const & v); + GLM_FUNC_DECL uint64 packUnorm4x16(vec4 const & v); + GLM_FUNC_DECL vec4 unpackUnorm4x16(uint64 const & v); - uint16 packSnorm1x16(float v); - float unpackSnorm1x16(uint16 v); + GLM_FUNC_DECL uint16 packSnorm1x16(float v); + GLM_FUNC_DECL float unpackSnorm1x16(uint16 v); - uint64 packSnorm4x16(vec4 const & v); - vec4 unpackSnorm4x16(uint64 const & v); + GLM_FUNC_DECL uint64 packSnorm4x16(vec4 const & v); + GLM_FUNC_DECL vec4 unpackSnorm4x16(uint64 const & v); - uint16 packUnorm2x8(vec2 const & v); - vec2 unpackUnorm2x8(uint16 v); + GLM_FUNC_DECL uint16 packUnorm2x8(vec2 const & v); + GLM_FUNC_DECL vec2 unpackUnorm2x8(uint16 v); - uint16 packSnorm2x8(vec2 const & v); - vec2 unpackSnorm2x8(uint16 v); + GLM_FUNC_DECL uint16 packSnorm2x8(vec2 const & v); + GLM_FUNC_DECL vec2 unpackSnorm2x8(uint16 v); GLM_FUNC_DECL uint16 packHalf1x16(float const & v); GLM_FUNC_DECL float unpackHalf1x16(uint16 const & v); @@ -93,16 +93,16 @@ namespace glm /// @see GLSL unpackHalf2x16 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL vec4 unpackHalf4x16(uint64 const & v); - - GLM_FUNC_DECL uint32 packSnorm3x10Snorm1x2(vec4 const & v); - GLM_FUNC_DECL vec4 unpackSnorm3x10Snorm1x2(uint32 const & v); - GLM_FUNC_DECL uint32 packI3x10I1x2(ivec4 const & v); - GLM_FUNC_DECL ivec4 unpackI3x10I1x2(uint32 const & v); + GLM_FUNC_DECL uint32 packI10I10I10I2(ivec4 const & v); + GLM_FUNC_DECL ivec4 unpackI10I10I10I2(uint32 const & v); GLM_FUNC_DECL uint32 packU10U10U10U2(uvec4 const & v); GLM_FUNC_DECL uvec4 unpackU10U10U10U2(uint32 const & v); + GLM_FUNC_DECL uint32 packSnorm3x10_1x2(vec4 const & v); + GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2(uint32 const & v); + GLM_FUNC_DECL uint32 packF11F11F10(vec3 const & v); GLM_FUNC_DECL vec3 unpackF11F11F10(uint32 const & v); diff --git a/glm/gtc/packing.inl b/glm/gtc/packing.inl index 2ae8e139..9b078dad 100644 --- a/glm/gtc/packing.inl +++ b/glm/gtc/packing.inl @@ -130,12 +130,270 @@ namespace detail { return ((floatTo11bit(x) & ((1 << 11) - 1)) << 0) | ((floatTo11bit(y) & ((1 << 11) - 1)) << 11) | ((floatTo10bit(z) & ((1 << 10) - 1)) << 22); } + + union u10u10u10u2 + { + struct + { + uint x : 10; + uint y : 10; + uint z : 10; + uint w : 2; + } data; + uint32 pack; + }; + + union i10i10i10i2 + { + struct + { + int x : 10; + int y : 10; + int z : 10; + int w : 2; + } data; + uint32 pack; + }; + + union unorm4x16 + { + struct + { + uint16 x; + uint16 y; + uint16 z; + uint16 w; + } data; + uint64 pack; + }; + + union snorm4x16 + { + struct + { + int16 x; + int16 y; + int16 z; + int16 w; + } data; + uint64 pack; + }; + + union snorm1x16 + { + int16 data; + uint16 pack; + }; + + union half1x16 + { + hdata data; + uint16 pack; + }; + + union unorm2x8 + { + struct + { + uint8 x; + uint8 y; + } data; + uint16 pack; + }; + + union snorm2x8 + { + struct + { + int8 x; + int8 y; + } data; + uint16 pack; + }; }//namespace detail + GLM_FUNC_QUALIFIER uint16 packUnorm1x16(float s) + { + return uint16(round(clamp(s, 0.0f, 1.0f) * 65535.0f)); + } + + GLM_FUNC_QUALIFIER float unpackUnorm1x16(uint16 p) + { + return float(p) * 1.0f / 65535.0f; + } + + GLM_FUNC_QUALIFIER uint64 packUnorm4x16(vec4 const & v) + { + i16vec4 Scaled(round(clamp(v, 0.0f, 1.0f) * 65535.0f)); + detail::unorm4x16 Packing; + Packing.data.x = Scaled[0]; + Packing.data.y = Scaled[1]; + Packing.data.z = Scaled[2]; + Packing.data.w = Scaled[3]; + return Packing.pack; + } + + GLM_FUNC_QUALIFIER vec4 unpackUnorm4x16(uint64 const & p) + { + detail::unorm4x16 Packing; + vec4 Result( + float(Packing.data.x), + float(Packing.data.y), + float(Packing.data.z), + float(Packing.data.w)); + Result *= float(1.5259021896696421759365224689097e-5); // 1.0 / 65535.0 + } + + GLM_FUNC_QUALIFIER uint16 packSnorm1x16(float v) + { + float Scaled = clamp(v ,-1.0f, 1.0f) * 32767.0f; + detail::snorm1x16 Packing; + Packing.data = detail::int16(Scaled); + return Packing.pack; + } + + GLM_FUNC_QUALIFIER float unpackSnorm1x16(uint16 p) + { + detail::snorm1x16 Packing; + Packing.pack = p; + return clamp(float(Packing.data) * float(3.0518509475997192297128208258309e-5), -1.0f, 1.0f); //1.0f / 32767.0f + } + + GLM_FUNC_QUALIFIER uint64 packSnorm4x16(vec4 const & v) + { + i16vec4 Scaled(clamp(v ,-1.0f, 1.0f) * 32767.0f); + detail::snorm4x16 Packing; + Packing.data.x = Scaled.x; + Packing.data.y = Scaled.y; + Packing.data.z = Scaled.z; + Packing.data.w = Scaled.w; + return Packing.pack; + } + + GLM_FUNC_QUALIFIER vec4 unpackSnorm4x16(uint64 const & p) + { + detail::snorm4x16 Packing; + Packing.pack = p; + vec4 Unpacked(Packing.data.x, Packing.data.y, Packing.data.z, Packing.data.w); + return clamp(Unpacked * float(3.0518509475997192297128208258309e-5), -1.0f, 1.0f); //1.0f / 32767.0f + } + + GLM_FUNC_QUALIFIER uint16 packUnorm2x8(vec2 const & v) + { + i8vec2 Scaled(round(clamp(v ,-1.0f, 1.0f) * 255.0f)); + detail::unorm2x8 Packing; + Packing.data.x = Scaled.x; + Packing.data.y = Scaled.y; + return Packing.pack; + } + + GLM_FUNC_QUALIFIER vec2 unpackUnorm2x8(uint16 p) + { + detail::unorm2x8 Packing; + Packing.pack = p; + vec2 Unpacked(Packing.data.x, Packing.data.y); + return Unpacked * float(0.0039215686274509803921568627451); + } + + GLM_FUNC_QUALIFIER uint16 packSnorm2x8(vec2 const & v) + { + glm::i8vec2 Scaled(round(clamp(v ,-1.0f, 1.0f) * 127.0f)); + detail::snorm2x8 Packing; + Packing.data.x = Scaled.x; + Packing.data.y = Scaled.y; + return Packing.pack; + } + + GLM_FUNC_QUALIFIER vec2 unpackSnorm2x8(uint16 p) + { + detail::snorm2x8 Packing; + Packing.pack = p; + vec2 Unpacked(Packing.data.x, Packing.data.y); + return clamp(Unpacked * float(0.00787401574803149606299212598425), -1.0f, 1.0f); + } + + GLM_FUNC_DECL uint16 packHalf1x16(float const & v) + { + detail::half1x16 Packing; + Packing.data = detail::toFloat16(v); + return Packing.pack; + } + + GLM_FUNC_DECL float unpackHalf1x16(uint16 const & v) + { + detail::half1x16 Packing; + Packing.pack = v; + return detail::toFloat32(Packing.data); + } + + GLM_FUNC_QUALIFIER uint32 packI10I10I10I2(ivec4 const & v) + { + detail::i10i10i10i2 Result; + Result.data.x = v.x; + Result.data.y = v.y; + Result.data.z = v.z; + Result.data.w = v.w; + return Result.pack; + } + + GLM_FUNC_QUALIFIER ivec4 unpackI10I10I10I2(uint32 const & v) + { + detail::i10i10i10i2 Unpack; + Unpack.pack = v; + return ivec4( + Unpack.data.x, + Unpack.data.y, + Unpack.data.z, + Unpack.data.w); + } + + GLM_FUNC_QUALIFIER uint32 packU10U10U10U2(uvec4 const & v) + { + detail::u10u10u10u2 Result; + Result.data.x = v.x; + Result.data.y = v.y; + Result.data.z = v.z; + Result.data.w = v.w; + return Result.pack; + } + + GLM_FUNC_QUALIFIER uvec4 unpackU10U10U10U2(uint32 const & v) + { + detail::u10u10u10u2 Unpack; + Unpack.pack = v; + return uvec4( + Unpack.data.x, + Unpack.data.y, + Unpack.data.z, + Unpack.data.w); + } + + GLM_FUNC_QUALIFIER uint32 packSnorm3x10_1x2(vec4 const & v) + { + detail::i10i10i10i2 Result; + Result.data.x = int(v.x * 511.f); + Result.data.y = int(v.y * 511.f); + Result.data.z = int(v.z * 511.f); + Result.data.w = int(v.w * 1.f); + return Result.pack; + } + + GLM_FUNC_QUALIFIER vec4 unpackSnorm3x10_1x2(uint32 const & v) + { + detail::i10i10i10i2 Unpack; + Unpack.pack = v; + vec4 Result; + Result.x = float(Unpack.data.x) / 511.f; + Result.y = float(Unpack.data.y) / 511.f; + Result.z = float(Unpack.data.z) / 511.f; + Result.w = float(Unpack.data.w) / 1.f; + return Result; + } + GLM_FUNC_QUALIFIER uint32 packF11F11F10(vec3 const & v) { return - ((detail::floatTo11bit(v.x) & ((1 << 11) - 1)) << 0) | + ((detail::floatTo11bit(v.x) & ((1 << 11) - 1)) << 0) | ((detail::floatTo11bit(v.y) & ((1 << 11) - 1)) << 11) | ((detail::floatTo10bit(v.z) & ((1 << 10) - 1)) << 22); } diff --git a/test/gtc/gtc_half_float.cpp b/test/gtc/gtc_half_float.cpp index f054f599..41266142 100644 --- a/test/gtc/gtc_half_float.cpp +++ b/test/gtc/gtc_half_float.cpp @@ -791,27 +791,27 @@ int test_half() { int Error = 0; - print_value(0.0); - print_value(0.1); - print_value(0.2); - print_value(0.3); - print_value(0.4); - print_value(0.5); - print_value(0.6); - print_value(1.0); - print_value(1.1); - print_value(1.2); - print_value(1.3); - print_value(1.4); - print_value(1.5); - print_value(1.6); - print_value(2.0); - print_value(2.1); - print_value(2.2); - print_value(2.3); - print_value(2.4); - print_value(2.5); - print_value(2.6); + print_value(0.0f); + print_value(0.1f); + print_value(0.2f); + print_value(0.3f); + print_value(0.4f); + print_value(0.5f); + print_value(0.6f); + print_value(1.0f); + print_value(1.1f); + print_value(1.2f); + print_value(1.3f); + print_value(1.4f); + print_value(1.5f); + print_value(1.6f); + print_value(2.0f); + print_value(2.1f); + print_value(2.2f); + print_value(2.3f); + print_value(2.4f); + print_value(2.5f); + print_value(2.6f); return Error; } diff --git a/test/gtc/gtc_packing.cpp b/test/gtc/gtc_packing.cpp index 7eaf5730..bd401792 100644 --- a/test/gtc/gtc_packing.cpp +++ b/test/gtc/gtc_packing.cpp @@ -29,6 +29,7 @@ #include #include +#include void print_bits(glm::half const & s) { @@ -96,10 +97,10 @@ void print_value(float const & s) print_bits(s); printf(", "); print_bits(glm::half(s)); - printf(", "); - print_11bits(detail::floatTo11bit(s)); - printf(", "); - print_10bits(detail::floatTo10bit(s)); +// printf(", "); +// print_11bits(detail::floatTo11bit(s)); +// printf(", "); +// print_10bits(detail::floatTo10bit(s)); printf("\n"); } @@ -107,27 +108,27 @@ int test_half() { int Error = 0; - print_value(0.0); - print_value(0.1); - print_value(0.2); - print_value(0.3); - print_value(0.4); - print_value(0.5); - print_value(0.6); - print_value(1.0); - print_value(1.1); - print_value(1.2); - print_value(1.3); - print_value(1.4); - print_value(1.5); - print_value(1.6); - print_value(2.0); - print_value(2.1); - print_value(2.2); - print_value(2.3); - print_value(2.4); - print_value(2.5); - print_value(2.6); + print_value(0.0f); + print_value(0.1f); + print_value(0.2f); + print_value(0.3f); + print_value(0.4f); + print_value(0.5f); + print_value(0.6f); + print_value(1.0f); + print_value(1.1f); + print_value(1.2f); + print_value(1.3f); + print_value(1.4f); + print_value(1.5f); + print_value(1.6f); + print_value(2.0f); + print_value(2.1f); + print_value(2.2f); + print_value(2.3f); + print_value(2.4f); + print_value(2.5f); + print_value(2.6f); return Error; } From 53bd892a88a1bed9a0f95d2e1079aea806a16b7b Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Mon, 19 Aug 2013 00:36:56 +0200 Subject: [PATCH 04/17] Added 1x8 packing functions. Add documentation for half packing functions. --- glm/gtc/packing.hpp | 51 ++++++++++++++----- glm/gtc/packing.inl | 117 ++++++++++++++++++++++++++++++-------------- 2 files changed, 121 insertions(+), 47 deletions(-) diff --git a/glm/gtc/packing.hpp b/glm/gtc/packing.hpp index 15a2b3e7..4e5f815c 100644 --- a/glm/gtc/packing.hpp +++ b/glm/gtc/packing.hpp @@ -51,43 +51,72 @@ namespace glm /// @addtogroup gtc_packing /// @{ + GLM_FUNC_DECL uint8 packUnorm1x8(float const & v); + GLM_FUNC_DECL float unpackUnorm1x8(uint8 v); + + GLM_FUNC_DECL uint16 packUnorm2x8(vec2 const & v); + GLM_FUNC_DECL vec2 unpackUnorm2x8(uint16 v); + + + GLM_FUNC_DECL uint8 packSnorm1x8(float const & v); + GLM_FUNC_DECL float unpackSnorm1x8(uint8 v); + + GLM_FUNC_DECL uint16 packSnorm2x8(vec2 const & v); + GLM_FUNC_DECL vec2 unpackSnorm2x8(uint16 v); + + GLM_FUNC_DECL uint16 packUnorm1x16(float v); GLM_FUNC_DECL float unpackUnorm1x16(uint16 v); GLM_FUNC_DECL uint64 packUnorm4x16(vec4 const & v); GLM_FUNC_DECL vec4 unpackUnorm4x16(uint64 const & v); + GLM_FUNC_DECL uint16 packSnorm1x16(float v); GLM_FUNC_DECL float unpackSnorm1x16(uint16 v); GLM_FUNC_DECL uint64 packSnorm4x16(vec4 const & v); GLM_FUNC_DECL vec4 unpackSnorm4x16(uint64 const & v); - GLM_FUNC_DECL uint16 packUnorm2x8(vec2 const & v); - GLM_FUNC_DECL vec2 unpackUnorm2x8(uint16 v); - - GLM_FUNC_DECL uint16 packSnorm2x8(vec2 const & v); - GLM_FUNC_DECL vec2 unpackSnorm2x8(uint16 v); - + + /// Returns an unsigned integer obtained by converting the components of a floating-point scalar + /// to the 16-bit floating-point representation found in the OpenGL Specification, + /// and then packing this 16-bit value into a 16-bit unsigned integer. + /// + /// @see gtc_packing + /// @see uint32 packHalf2x16(vec2 const & v) + /// @see uint64 packHalf4x16(vec4 const & v) + /// @see GLSL packHalf2x16 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint16 packHalf1x16(float const & v); + + /// Returns a floating-point scalar with components obtained by unpacking a 16-bit unsigned integer into a 16-bit value, + /// interpreted as a 16-bit floating-point number according to the OpenGL Specification, + /// and converting it to 32-bit floating-point values. + /// + /// @see gtc_packing + /// @see GLSL unpackHalf2x16 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL float unpackHalf1x16(uint16 const & v); - /// Returns an unsigned integer obtained by converting the components of a two-component floating-point vector + /// Returns an unsigned integer obtained by converting the components of a four-component floating-point vector /// to the 16-bit floating-point representation found in the OpenGL Specification, - /// and then packing these two 16- bit integers into a 32-bit unsigned integer. + /// and then packing these four 16-bit values into a 64-bit unsigned integer. /// The first vector component specifies the 16 least-significant bits of the result; - /// the second component specifies the 16 most-significant bits. + /// the forth component specifies the 16 most-significant bits. /// /// @see gtc_packing + /// @see uint16 packHalf1x16(float const & v) + /// @see uint32 packHalf2x16(vec2 const & v) /// @see GLSL packHalf2x16 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint64 packHalf4x16(vec4 const & v); - /// Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned integer into a pair of 16-bit values, + /// Returns a four-component floating-point vector with components obtained by unpacking a 64-bit unsigned integer into four 16-bit values, /// interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, /// and converting them to 32-bit floating-point values. /// The first component of the vector is obtained from the 16 least-significant bits of v; - /// the second component is obtained from the 16 most-significant bits of v. + /// the forth component is obtained from the 16 most-significant bits of v. /// /// @see gtc_packing /// @see GLSL unpackHalf2x16 man page diff --git a/glm/gtc/packing.inl b/glm/gtc/packing.inl index 9b078dad..982d96db 100644 --- a/glm/gtc/packing.inl +++ b/glm/gtc/packing.inl @@ -26,8 +26,7 @@ /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// -namespace glm -{ +namespace glm{ namespace detail { glm::uint16 float2half(glm::uint32 const & f) @@ -191,6 +190,13 @@ namespace detail uint16 pack; }; + + union unorm1x8 + { + uint8 data; + uint8 pack; + }; + union unorm2x8 { struct @@ -201,6 +207,12 @@ namespace detail uint16 pack; }; + union snorm1x8 + { + int8 data; + uint8 pack; + }; + union snorm2x8 { struct @@ -212,6 +224,73 @@ namespace detail }; }//namespace detail + + GLM_FUNC_QUALIFIER uint8 packUnorm1x8(float const & v) + { + int8 Scaled(round(clamp(v ,-1.0f, 1.0f) * 255.0f)); + detail::unorm1x8 Packing; + Packing.data = Scaled; + return Packing.pack; + } + + GLM_FUNC_QUALIFIER float unpackUnorm1x8(uint8 p) + { + detail::unorm1x8 Packing; + Packing.pack = p; + float Unpacked(Packing.data); + return Unpacked * float(0.0039215686274509803921568627451); + } + + GLM_FUNC_QUALIFIER uint16 packUnorm2x8(vec2 const & v) + { + i8vec2 Scaled(round(clamp(v ,-1.0f, 1.0f) * 255.0f)); + detail::unorm2x8 Packing; + Packing.data.x = Scaled.x; + Packing.data.y = Scaled.y; + return Packing.pack; + } + + GLM_FUNC_QUALIFIER vec2 unpackUnorm2x8(uint16 p) + { + detail::unorm2x8 Packing; + Packing.pack = p; + vec2 Unpacked(Packing.data.x, Packing.data.y); + return Unpacked * float(0.0039215686274509803921568627451); + } + + GLM_FUNC_QUALIFIER uint8 packSnorm1x8(float const & v) + { + glm::int8 Scaled(round(clamp(v ,-1.0f, 1.0f) * 127.0f)); + detail::snorm1x8 Packing; + Packing.x = Scaled.x; + return Packing.pack; + } + + GLM_FUNC_QUALIFIER float unpackSnorm1x8(uint8 p) + { + detail::snorm1x8 Packing; + Packing.pack = p; + float Unpacked(Packing.data); + return clamp(Unpacked * float(0.00787401574803149606299212598425), -1.0f, 1.0f); + } + + GLM_FUNC_QUALIFIER uint16 packSnorm2x8(vec2 const & v) + { + glm::i8vec2 Scaled(round(clamp(v ,-1.0f, 1.0f) * 127.0f)); + detail::snorm2x8 Packing; + Packing.data.x = Scaled.x; + Packing.data.y = Scaled.y; + return Packing.pack; + } + + GLM_FUNC_QUALIFIER vec2 unpackSnorm2x8(uint16 p) + { + detail::snorm2x8 Packing; + Packing.pack = p; + vec2 Unpacked(Packing.data.x, Packing.data.y); + return clamp(Unpacked * float(0.00787401574803149606299212598425), -1.0f, 1.0f); + } + GLM_FUNC_QUALIFIER uint16 packUnorm1x16(float s) { return uint16(round(clamp(s, 0.0f, 1.0f) * 65535.0f)); @@ -278,40 +357,6 @@ namespace detail return clamp(Unpacked * float(3.0518509475997192297128208258309e-5), -1.0f, 1.0f); //1.0f / 32767.0f } - GLM_FUNC_QUALIFIER uint16 packUnorm2x8(vec2 const & v) - { - i8vec2 Scaled(round(clamp(v ,-1.0f, 1.0f) * 255.0f)); - detail::unorm2x8 Packing; - Packing.data.x = Scaled.x; - Packing.data.y = Scaled.y; - return Packing.pack; - } - - GLM_FUNC_QUALIFIER vec2 unpackUnorm2x8(uint16 p) - { - detail::unorm2x8 Packing; - Packing.pack = p; - vec2 Unpacked(Packing.data.x, Packing.data.y); - return Unpacked * float(0.0039215686274509803921568627451); - } - - GLM_FUNC_QUALIFIER uint16 packSnorm2x8(vec2 const & v) - { - glm::i8vec2 Scaled(round(clamp(v ,-1.0f, 1.0f) * 127.0f)); - detail::snorm2x8 Packing; - Packing.data.x = Scaled.x; - Packing.data.y = Scaled.y; - return Packing.pack; - } - - GLM_FUNC_QUALIFIER vec2 unpackSnorm2x8(uint16 p) - { - detail::snorm2x8 Packing; - Packing.pack = p; - vec2 Unpacked(Packing.data.x, Packing.data.y); - return clamp(Unpacked * float(0.00787401574803149606299212598425), -1.0f, 1.0f); - } - GLM_FUNC_DECL uint16 packHalf1x16(float const & v) { detail::half1x16 Packing; From 180788150919da3e9c664002ba5d63147be3fee1 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Wed, 21 Aug 2013 00:14:02 +0200 Subject: [PATCH 05/17] Added packXNorm documentation --- glm/gtc/packing.hpp | 96 +++++++++++++++++++++++++++++++++++++++------ 1 file changed, 84 insertions(+), 12 deletions(-) diff --git a/glm/gtc/packing.hpp b/glm/gtc/packing.hpp index 4e5f815c..39f526b9 100644 --- a/glm/gtc/packing.hpp +++ b/glm/gtc/packing.hpp @@ -51,33 +51,105 @@ namespace glm /// @addtogroup gtc_packing /// @{ + /// First, converts the normalized floating-point value v into a 8-bit integer value. + /// Then, the results are packed into the returned 8-bit unsigned integer. + /// + /// The conversion for component c of v to fixed point is done as follows: + /// packUnorm1x8: round(clamp(c, 0, +1) * 255.0) + /// + /// @see GLSL packUnorm4x8 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint8 packUnorm1x8(float const & v); GLM_FUNC_DECL float unpackUnorm1x8(uint8 v); - + + /// First, converts each component of the normalized floating-point value v into 8-bit integer values. + /// Then, the results are packed into the returned 16-bit unsigned integer. + /// + /// The conversion for component c of v to fixed point is done as follows: + /// packUnorm2x8: round(clamp(c, 0, +1) * 255.0) + /// + /// The first component of the vector will be written to the least significant bits of the output; + /// the last component will be written to the most significant bits. + /// + /// @see GLSL packUnorm4x8 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint16 packUnorm2x8(vec2 const & v); GLM_FUNC_DECL vec2 unpackUnorm2x8(uint16 v); - - GLM_FUNC_DECL uint8 packSnorm1x8(float const & v); - GLM_FUNC_DECL float unpackSnorm1x8(uint8 v); + /// First, converts the normalized floating-point value v into 8-bit integer value. + /// Then, the results are packed into the returned 8-bit unsigned integer. + /// + /// The conversion to fixed point is done as follows: + /// packSnorm1x8: round(clamp(s, -1, +1) * 127.0) + /// + /// @see GLSL packSnorm4x8 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions + GLM_FUNC_DECL uint8 packSnorm1x8(float const & s); + GLM_FUNC_DECL float unpackSnorm1x8(uint8 p); + /// First, converts each component of the normalized floating-point value v into 8-bit integer values. + /// Then, the results are packed into the returned 16-bit unsigned integer. + /// + /// The conversion for component c of v to fixed point is done as follows: + /// packSnorm2x8: round(clamp(c, -1, +1) * 127.0) + /// + /// The first component of the vector will be written to the least significant bits of the output; + /// the last component will be written to the most significant bits. + /// + /// @see GLSL packSnorm4x8 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint16 packSnorm2x8(vec2 const & v); - GLM_FUNC_DECL vec2 unpackSnorm2x8(uint16 v); - + GLM_FUNC_DECL vec2 unpackSnorm2x8(uint16 p); + /// First, converts the normalized floating-point value v into a 16-bit integer value. + /// Then, the results are packed into the returned 16-bit unsigned integer. + /// + /// The conversion for component c of v to fixed point is done as follows: + /// packUnorm1x16: round(clamp(c, 0, +1) * 65535.0) + /// + /// @see GLSL packUnorm4x8 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint16 packUnorm1x16(float v); - GLM_FUNC_DECL float unpackUnorm1x16(uint16 v); + GLM_FUNC_DECL float unpackUnorm1x16(uint16 p); + /// First, converts each component of the normalized floating-point value v into 16-bit integer values. + /// Then, the results are packed into the returned 64-bit unsigned integer. + /// + /// The conversion for component c of v to fixed point is done as follows: + /// packUnorm4x16: round(clamp(c, 0, +1) * 65535.0) + /// + /// The first component of the vector will be written to the least significant bits of the output; + /// the last component will be written to the most significant bits. + /// + /// @see GLSL packUnorm4x8 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint64 packUnorm4x16(vec4 const & v); - GLM_FUNC_DECL vec4 unpackUnorm4x16(uint64 const & v); + GLM_FUNC_DECL vec4 unpackUnorm4x16(uint64 const & p); - + /// First, converts the normalized floating-point value v into 16-bit integer value. + /// Then, the results are packed into the returned 16-bit unsigned integer. + /// + /// The conversion to fixed point is done as follows: + /// packSnorm1x8: round(clamp(s, -1, +1) * 32767.0) + /// + /// @see GLSL packSnorm4x8 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint16 packSnorm1x16(float v); - GLM_FUNC_DECL float unpackSnorm1x16(uint16 v); + GLM_FUNC_DECL float unpackSnorm1x16(uint16 p); + /// First, converts each component of the normalized floating-point value v into 16-bit integer values. + /// Then, the results are packed into the returned 64-bit unsigned integer. + /// + /// The conversion for component c of v to fixed point is done as follows: + /// packSnorm2x8: round(clamp(c, -1, +1) * 32767.0) + /// + /// The first component of the vector will be written to the least significant bits of the output; + /// the last component will be written to the most significant bits. + /// + /// @see GLSL packSnorm4x8 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint64 packSnorm4x16(vec4 const & v); - GLM_FUNC_DECL vec4 unpackSnorm4x16(uint64 const & v); - + GLM_FUNC_DECL vec4 unpackSnorm4x16(uint64 const & p); /// Returns an unsigned integer obtained by converting the components of a floating-point scalar /// to the 16-bit floating-point representation found in the OpenGL Specification, From da95e96fcf5319d281a34bdb67a2b1f04aa0e0ee Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Thu, 22 Aug 2013 23:24:18 +0200 Subject: [PATCH 06/17] Fixed build on Clang and C++11 --- glm/gtc/packing.inl | 7 +++++-- glm/gtc/type_ptr.inl | 19 ++++--------------- test/gtc/gtc_packing.cpp | 1 - 3 files changed, 9 insertions(+), 18 deletions(-) diff --git a/glm/gtc/packing.inl b/glm/gtc/packing.inl index 982d96db..7013024d 100644 --- a/glm/gtc/packing.inl +++ b/glm/gtc/packing.inl @@ -262,7 +262,7 @@ namespace detail { glm::int8 Scaled(round(clamp(v ,-1.0f, 1.0f) * 127.0f)); detail::snorm1x8 Packing; - Packing.x = Scaled.x; + Packing.data = Scaled; return Packing.pack; } @@ -321,6 +321,7 @@ namespace detail float(Packing.data.z), float(Packing.data.w)); Result *= float(1.5259021896696421759365224689097e-5); // 1.0 / 65535.0 + return Result; } GLM_FUNC_QUALIFIER uint16 packSnorm1x16(float v) @@ -445,7 +446,9 @@ namespace detail GLM_FUNC_QUALIFIER vec3 unpackF11F11F10(uint32 const & v) { - + vec3 Result; + // TODO + return Result; } }//namespace glm diff --git a/glm/gtc/type_ptr.inl b/glm/gtc/type_ptr.inl index 6b3e1ac0..e2276d8c 100644 --- a/glm/gtc/type_ptr.inl +++ b/glm/gtc/type_ptr.inl @@ -286,21 +286,10 @@ namespace glm //! Return the address to the data of the matrix input. /// @see gtc_type_ptr - template - GLM_FUNC_QUALIFIER T * value_ptr(detail::tmat4x3 & mat) - { - return &(mat[0].x); - } - - /// Return the constant address to the data of the quaternion input. - /// @see gtc_type_ptr template - GLM_FUNC_QUALIFIER T * value_ptr - ( - detail::tquat & q - ) + GLM_FUNC_QUALIFIER T * value_ptr(detail::tmat4x3 & mat) { - return &(q[0]); + return &(mat[0].x); } //! Return the constant address to the data of the input parameter. @@ -316,10 +305,10 @@ namespace glm //! Return the address to the data of the quaternion input. /// @see gtc_type_ptr - template + template GLM_FUNC_QUALIFIER T * value_ptr ( - detail::tquat & q + detail::tquat & q ) { return &(q[0]); diff --git a/test/gtc/gtc_packing.cpp b/test/gtc/gtc_packing.cpp index bd401792..cbbfa8e8 100644 --- a/test/gtc/gtc_packing.cpp +++ b/test/gtc/gtc_packing.cpp @@ -26,7 +26,6 @@ /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// - #include #include #include From 59cc657adab0b92a6f6b666ca447571238f8e564 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Fri, 23 Aug 2013 00:34:39 +0200 Subject: [PATCH 07/17] Added documentation for GTC_packing --- glm/core/func_packing.hpp | 108 +++++++++++++++++++------------------- glm/gtc/packing.hpp | 45 ++++++++++++++++ 2 files changed, 99 insertions(+), 54 deletions(-) diff --git a/glm/core/func_packing.hpp b/glm/core/func_packing.hpp index 4ce811a1..221f3aca 100644 --- a/glm/core/func_packing.hpp +++ b/glm/core/func_packing.hpp @@ -41,80 +41,80 @@ namespace glm /// @addtogroup core_func_packing /// @{ - //! First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. - //! Then, the results are packed into the returned 32-bit unsigned integer. - //! - //! The conversion for component c of v to fixed point is done as follows: - //! packUnorm2x16: round(clamp(c, 0, +1) * 65535.0) - //! - //! The first component of the vector will be written to the least significant bits of the output; - //! the last component will be written to the most significant bits. - //! + /// First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. + /// Then, the results are packed into the returned 32-bit unsigned integer. + /// + /// The conversion for component c of v to fixed point is done as follows: + /// packUnorm2x16: round(clamp(c, 0, +1) * 65535.0) + /// + /// The first component of the vector will be written to the least significant bits of the output; + /// the last component will be written to the most significant bits. + /// /// @see GLSL packUnorm2x16 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint32 packUnorm2x16(vec2 const & v); - //! First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. - //! Then, the results are packed into the returned 32-bit unsigned integer. - //! - //! The conversion for component c of v to fixed point is done as follows: - //! packSnorm2x16: round(clamp(v, -1, +1) * 32767.0) - //! - //! The first component of the vector will be written to the least significant bits of the output; - //! the last component will be written to the most significant bits. - //! + /// First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. + /// Then, the results are packed into the returned 32-bit unsigned integer. + /// + /// The conversion for component c of v to fixed point is done as follows: + /// packSnorm2x16: round(clamp(v, -1, +1) * 32767.0) + /// + /// The first component of the vector will be written to the least significant bits of the output; + /// the last component will be written to the most significant bits. + /// /// @see GLSL packSnorm2x16 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint32 packSnorm2x16(vec2 const & v); - //! First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. - //! Then, the results are packed into the returned 32-bit unsigned integer. - //! - //! The conversion for component c of v to fixed point is done as follows: - //! packUnorm4x8: round(clamp(c, 0, +1) * 255.0) - //! - //! The first component of the vector will be written to the least significant bits of the output; - //! the last component will be written to the most significant bits. - //! + /// First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. + /// Then, the results are packed into the returned 32-bit unsigned integer. + /// + /// The conversion for component c of v to fixed point is done as follows: + /// packUnorm4x8: round(clamp(c, 0, +1) * 255.0) + /// + /// The first component of the vector will be written to the least significant bits of the output; + /// the last component will be written to the most significant bits. + /// /// @see GLSL packUnorm4x8 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint32 packUnorm4x8(vec4 const & v); - //! First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. - //! Then, the results are packed into the returned 32-bit unsigned integer. - //! - //! The conversion for component c of v to fixed point is done as follows: - //! packSnorm4x8: round(clamp(c, -1, +1) * 127.0) - //! - //! The first component of the vector will be written to the least significant bits of the output; - //! the last component will be written to the most significant bits. - //! + /// First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. + /// Then, the results are packed into the returned 32-bit unsigned integer. + /// + /// The conversion for component c of v to fixed point is done as follows: + /// packSnorm4x8: round(clamp(c, -1, +1) * 127.0) + /// + /// The first component of the vector will be written to the least significant bits of the output; + /// the last component will be written to the most significant bits. + /// /// @see GLSL packSnorm4x8 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint32 packSnorm4x8(vec4 const & v); - //! First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. - //! Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector. - //! - //! The conversion for unpacked fixed-point value f to floating point is done as follows: - //! unpackUnorm2x16: f / 65535.0 - //! - //! The first component of the returned vector will be extracted from the least significant bits of the input; - //! the last component will be extracted from the most significant bits. - //! + /// First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. + /// Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector. + /// + /// The conversion for unpacked fixed-point value f to floating point is done as follows: + /// unpackUnorm2x16: f / 65535.0 + /// + /// The first component of the returned vector will be extracted from the least significant bits of the input; + /// the last component will be extracted from the most significant bits. + /// /// @see GLSL unpackUnorm2x16 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL vec2 unpackUnorm2x16(uint32 const & p); - //! First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. - //! Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector. - //! - //! The conversion for unpacked fixed-point value f to floating point is done as follows: - //! unpackSnorm2x16: clamp(f / 32767.0, -1, +1) - //! - //! The first component of the returned vector will be extracted from the least significant bits of the input; - //! the last component will be extracted from the most significant bits. - //! + /// First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. + /// Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector. + /// + /// The conversion for unpacked fixed-point value f to floating point is done as follows: + /// unpackSnorm2x16: clamp(f / 32767.0, -1, +1) + /// + /// The first component of the returned vector will be extracted from the least significant bits of the input; + /// the last component will be extracted from the most significant bits. + /// /// @see GLSL unpackSnorm2x16 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL vec2 unpackSnorm2x16(uint32 const & p); diff --git a/glm/gtc/packing.hpp b/glm/gtc/packing.hpp index 39f526b9..6e4e7a9c 100644 --- a/glm/gtc/packing.hpp +++ b/glm/gtc/packing.hpp @@ -57,6 +57,9 @@ namespace glm /// The conversion for component c of v to fixed point is done as follows: /// packUnorm1x8: round(clamp(c, 0, +1) * 255.0) /// + /// @see gtc_packing + /// @see uint16 packUnorm2x8(vec2 const & v) + /// @see uint32 packUnorm4x8(vec4 const & v) /// @see GLSL packUnorm4x8 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint8 packUnorm1x8(float const & v); @@ -71,6 +74,9 @@ namespace glm /// The first component of the vector will be written to the least significant bits of the output; /// the last component will be written to the most significant bits. /// + /// @see gtc_packing + /// @see uint8 packUnorm1x8(float const & v) + /// @see uint32 packUnorm4x8(vec4 const & v) /// @see GLSL packUnorm4x8 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint16 packUnorm2x8(vec2 const & v); @@ -82,6 +88,9 @@ namespace glm /// The conversion to fixed point is done as follows: /// packSnorm1x8: round(clamp(s, -1, +1) * 127.0) /// + /// @see gtc_packing + /// @see uint16 packSnorm2x8(vec2 const & v) + /// @see uint32 packSnorm4x8(vec4 const & v) /// @see GLSL packSnorm4x8 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint8 packSnorm1x8(float const & s); @@ -96,6 +105,9 @@ namespace glm /// The first component of the vector will be written to the least significant bits of the output; /// the last component will be written to the most significant bits. /// + /// @see gtc_packing + /// @see uint8 packSnorm1x8(float const & v) + /// @see uint32 packSnorm4x8(vec4 const & v) /// @see GLSL packSnorm4x8 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint16 packSnorm2x8(vec2 const & v); @@ -107,9 +119,21 @@ namespace glm /// The conversion for component c of v to fixed point is done as follows: /// packUnorm1x16: round(clamp(c, 0, +1) * 65535.0) /// + /// @see gtc_packing + /// @see uint16 packSnorm1x16(float const & v) + /// @see uint64 packSnorm4x16(vec4 const & v) /// @see GLSL packUnorm4x8 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint16 packUnorm1x16(float v); + + /// First, unpacks a single 16-bit unsigned integer p into a of 16-bit unsigned integers. + /// Then, the value is converted to a normalized floating-point value to generate the returned scalar. + /// + /// The conversion for unpacked fixed-point value f to floating point is done as follows: + /// unpackUnorm1x16: f / 65535.0 + /// + /// @see GLSL unpackUnorm2x16 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL float unpackUnorm1x16(uint16 p); /// First, converts each component of the normalized floating-point value v into 16-bit integer values. @@ -121,9 +145,24 @@ namespace glm /// The first component of the vector will be written to the least significant bits of the output; /// the last component will be written to the most significant bits. /// + /// @see gtc_packing + /// @see uint16 packUnorm1x16(float const & v) + /// @see uint32 packUnorm2x16(vec2 const & v) /// @see GLSL packUnorm4x8 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint64 packUnorm4x16(vec4 const & v); + + /// First, unpacks a single 64-bit unsigned integer p into four 16-bit unsigned integers. + /// Then, each component is converted to a normalized floating-point value to generate the returned four-component vector. + /// + /// The conversion for unpacked fixed-point value f to floating point is done as follows: + /// unpackUnormx4x16: f / 65535.0 + /// + /// The first component of the returned vector will be extracted from the least significant bits of the input; + /// the last component will be extracted from the most significant bits. + /// + /// @see GLSL unpackUnorm2x16 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL vec4 unpackUnorm4x16(uint64 const & p); /// First, converts the normalized floating-point value v into 16-bit integer value. @@ -132,6 +171,9 @@ namespace glm /// The conversion to fixed point is done as follows: /// packSnorm1x8: round(clamp(s, -1, +1) * 32767.0) /// + /// @see gtc_packing + /// @see uint32 packSnorm2x16(vec2 const & v) + /// @see uint64 packSnorm4x16(vec4 const & v) /// @see GLSL packSnorm4x8 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint16 packSnorm1x16(float v); @@ -146,6 +188,9 @@ namespace glm /// The first component of the vector will be written to the least significant bits of the output; /// the last component will be written to the most significant bits. /// + /// @see gtc_packing + /// @see uint16 packSnorm1x16(float const & v) + /// @see uint32 packSnorm2x16(vec2 const & v) /// @see GLSL packSnorm4x8 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint64 packSnorm4x16(vec4 const & v); From 965b6417224a2b26d6ef0f3601bc41a894a678ab Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Sat, 24 Aug 2013 23:38:36 +0200 Subject: [PATCH 08/17] Added documentation for GTC+packing --- glm/gtc/packing.hpp | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/glm/gtc/packing.hpp b/glm/gtc/packing.hpp index 6e4e7a9c..f11276e3 100644 --- a/glm/gtc/packing.hpp +++ b/glm/gtc/packing.hpp @@ -63,7 +63,18 @@ namespace glm /// @see GLSL packUnorm4x8 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint8 packUnorm1x8(float const & v); - GLM_FUNC_DECL float unpackUnorm1x8(uint8 v); + + /// Convert a single 8-bit integer to a normalized floating-point value. + /// + /// The conversion for unpacked fixed-point value f to floating point is done as follows: + /// unpackUnorm4x8: f / 255.0 + /// + /// @see gtc_packing + /// @see vec2 unpackUnorm2x8(uint16 p) + /// @see vec4 unpackUnorm4x8(uint32 p) + /// @see GLSL unpackUnorm4x8 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions + GLM_FUNC_DECL float unpackUnorm1x8(uint8 p); /// First, converts each component of the normalized floating-point value v into 8-bit integer values. /// Then, the results are packed into the returned 16-bit unsigned integer. @@ -80,7 +91,22 @@ namespace glm /// @see GLSL packUnorm4x8 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint16 packUnorm2x8(vec2 const & v); - GLM_FUNC_DECL vec2 unpackUnorm2x8(uint16 v); + + /// First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit unsigned integers. + /// Then, each component is converted to a normalized floating-point value to generate the returned two-component vector. + /// + /// The conversion for unpacked fixed-point value f to floating point is done as follows: + /// unpackUnorm4x8: f / 255.0 + /// + /// The first component of the returned vector will be extracted from the least significant bits of the input; + /// the last component will be extracted from the most significant bits. + /// + /// @see gtc_packing + /// @see float unpackUnorm1x8(uint8 v) + /// @see vec4 unpackUnorm4x8(uint32 p) + /// @see GLSL unpackUnorm4x8 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions + GLM_FUNC_DECL vec2 unpackUnorm2x8(uint16 p); /// First, converts the normalized floating-point value v into 8-bit integer value. /// Then, the results are packed into the returned 8-bit unsigned integer. @@ -212,6 +238,8 @@ namespace glm /// and converting it to 32-bit floating-point values. /// /// @see gtc_packing + /// @see vec2 unpackHalf2x16(uint32 const & v) + /// @see vec4 unpackHalf4x16(uint64 const & v) /// @see GLSL unpackHalf2x16 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL float unpackHalf1x16(uint16 const & v); @@ -236,6 +264,8 @@ namespace glm /// the forth component is obtained from the 16 most-significant bits of v. /// /// @see gtc_packing + /// @see float unpackHalf1x16(uint16 const & v) + /// @see vec2 unpackHalf2x16(uint32 const & v) /// @see GLSL unpackHalf2x16 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL vec4 unpackHalf4x16(uint64 const & v); From 44f9db1c3bedf40a602ea4c5ae0a12bae1b5e34a Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Sun, 25 Aug 2013 00:02:03 +0200 Subject: [PATCH 09/17] Added documentation for GTC+packing --- glm/gtc/packing.hpp | 62 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/glm/gtc/packing.hpp b/glm/gtc/packing.hpp index f11276e3..6fe95adf 100644 --- a/glm/gtc/packing.hpp +++ b/glm/gtc/packing.hpp @@ -74,7 +74,7 @@ namespace glm /// @see vec4 unpackUnorm4x8(uint32 p) /// @see GLSL unpackUnorm4x8 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions - GLM_FUNC_DECL float unpackUnorm1x8(uint8 p); + GLM_FUNC_DECL float unpackUnorm1x8(uint8 pdf); /// First, converts each component of the normalized floating-point value v into 8-bit integer values. /// Then, the results are packed into the returned 16-bit unsigned integer. @@ -120,6 +120,18 @@ namespace glm /// @see GLSL packSnorm4x8 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint8 packSnorm1x8(float const & s); + + /// First, unpacks a single 8-bit unsigned integer p into a single 8-bit signed integers. + /// Then, the value is converted to a normalized floating-point value to generate the returned scalar. + /// + /// The conversion for unpacked fixed-point value f to floating point is done as follows: + /// unpackSnorm1x8: clamp(f / 127.0, -1, +1) + /// + /// @see gtc_packing + /// @see vec2 unpackSnorm2x8(uint16 p) + /// @see vec4 unpackSnorm4x8(uint32 p) + /// @see GLSL unpackSnorm4x8 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL float unpackSnorm1x8(uint8 p); /// First, converts each component of the normalized floating-point value v into 8-bit integer values. @@ -137,6 +149,21 @@ namespace glm /// @see GLSL packSnorm4x8 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint16 packSnorm2x8(vec2 const & v); + + /// First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit signed integers. + /// Then, each component is converted to a normalized floating-point value to generate the returned two-component vector. + /// + /// The conversion for unpacked fixed-point value f to floating point is done as follows: + /// unpackSnorm2x8: clamp(f / 127.0, -1, +1) + /// + /// The first component of the returned vector will be extracted from the least significant bits of the input; + /// the last component will be extracted from the most significant bits. + /// + /// @see gtc_packing + /// @see float unpackSnorm1x8(uint8 p) + /// @see vec4 unpackSnorm4x8(uint32 p) + /// @see GLSL unpackSnorm4x8 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL vec2 unpackSnorm2x8(uint16 p); /// First, converts the normalized floating-point value v into a 16-bit integer value. @@ -158,6 +185,9 @@ namespace glm /// The conversion for unpacked fixed-point value f to floating point is done as follows: /// unpackUnorm1x16: f / 65535.0 /// + /// @see gtc_packing + /// @see vec2 unpackUnorm2x16(uint32 p) + /// @see vec4 unpackUnorm4x16(uint64 p) /// @see GLSL unpackUnorm2x16 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL float unpackUnorm1x16(uint16 p); @@ -187,6 +217,9 @@ namespace glm /// The first component of the returned vector will be extracted from the least significant bits of the input; /// the last component will be extracted from the most significant bits. /// + /// @see gtc_packing + /// @see float unpackUnorm1x16(uint16 p) + /// @see vec2 unpackUnorm2x16(uint32 p) /// @see GLSL unpackUnorm2x16 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL vec4 unpackUnorm4x16(uint64 const & p); @@ -203,6 +236,18 @@ namespace glm /// @see GLSL packSnorm4x8 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint16 packSnorm1x16(float v); + + /// First, unpacks a single 16-bit unsigned integer p into a single 16-bit signed integers. + /// Then, each component is converted to a normalized floating-point value to generate the returned scalar. + /// + /// The conversion for unpacked fixed-point value f to floating point is done as follows: + /// unpackSnorm1x16: clamp(f / 32767.0, -1, +1) + /// + /// @see gtc_packing + /// @see vec2 unpackSnorm2x16(uint32 p) + /// @see vec4 unpackSnorm4x16(uint64 p) + /// @see GLSL unpackSnorm4x8 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL float unpackSnorm1x16(uint16 p); /// First, converts each component of the normalized floating-point value v into 16-bit integer values. @@ -220,6 +265,21 @@ namespace glm /// @see GLSL packSnorm4x8 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL uint64 packSnorm4x16(vec4 const & v); + + /// First, unpacks a single 64-bit unsigned integer p into four 16-bit signed integers. + /// Then, each component is converted to a normalized floating-point value to generate the returned four-component vector. + /// + /// The conversion for unpacked fixed-point value f to floating point is done as follows: + /// unpackSnorm4x16: clamp(f / 32767.0, -1, +1) + /// + /// The first component of the returned vector will be extracted from the least significant bits of the input; + /// the last component will be extracted from the most significant bits. + /// + /// @see gtc_packing + /// @see float unpackSnorm1x16(uint16 p) + /// @see vec2 unpackSnorm2x16(uint32 p) + /// @see GLSL unpackSnorm4x8 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions GLM_FUNC_DECL vec4 unpackSnorm4x16(uint64 const & p); /// Returns an unsigned integer obtained by converting the components of a floating-point scalar From 65d29dddaada1ac6d4d9b6729dea1d21256e1cf2 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Sun, 25 Aug 2013 22:26:10 +0200 Subject: [PATCH 10/17] Completed GTC_packing documentation --- glm/gtc/packing.hpp | 123 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 115 insertions(+), 8 deletions(-) diff --git a/glm/gtc/packing.hpp b/glm/gtc/packing.hpp index 6fe95adf..0db69d1d 100644 --- a/glm/gtc/packing.hpp +++ b/glm/gtc/packing.hpp @@ -328,19 +328,126 @@ namespace glm /// @see vec2 unpackHalf2x16(uint32 const & v) /// @see GLSL unpackHalf2x16 man page /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions - GLM_FUNC_DECL vec4 unpackHalf4x16(uint64 const & v); + GLM_FUNC_DECL vec4 unpackHalf4x16(uint64 const & p); - GLM_FUNC_DECL uint32 packI10I10I10I2(ivec4 const & v); - GLM_FUNC_DECL ivec4 unpackI10I10I10I2(uint32 const & v); + /// Returns an unsigned integer obtained by converting the components of a four-component signed integer vector + /// to the 10-10-10-2-bit signed integer representation found in the OpenGL Specification, + /// and then packing these four values into a 32-bit unsigned integer. + /// The first vector component specifies the 10 least-significant bits of the result; + /// the forth component specifies the 2 most-significant bits. + /// + /// @see gtc_packing + /// @see uint32 packI3x10_I1x2(uvec4 const & v) + /// @see uint32 packSnorm3x10_1x2(vec4 const & v) + /// @see uint32 packUnorm3x10_1x2(vec4 const & v) + /// @see ivec4 unpackI3x10_I1x2(uint32 const & p) + GLM_FUNC_DECL uint32 packI3x10_I1x2(ivec4 const & v); + GLM_FUNC_DECL ivec4 unpackI3x10_I1x2(uint32 const & p); - GLM_FUNC_DECL uint32 packU10U10U10U2(uvec4 const & v); - GLM_FUNC_DECL uvec4 unpackU10U10U10U2(uint32 const & v); + /// Returns an unsigned integer obtained by converting the components of a four-component unsigned integer vector + /// to the 10-10-10-2-bit unsigned integer representation found in the OpenGL Specification, + /// and then packing these four values into a 32-bit unsigned integer. + /// The first vector component specifies the 10 least-significant bits of the result; + /// the forth component specifies the 2 most-significant bits. + /// + /// @see gtc_packing + /// @see uint32 packI3x10_I1x2(ivec4 const & v) + /// @see uint32 packSnorm3x10_1x2(vec4 const & v) + /// @see uint32 packUnorm3x10_1x2(vec4 const & v) + /// @see ivec4 unpackU3x10_U1x2(uint32 const & p) + GLM_FUNC_DECL uint32 packU3x10_U1x2(uvec4 const & v); + GLM_FUNC_DECL uvec4 unpackU3x10_U1x2(uint32 const & p); + /// First, converts the first three components of the normalized floating-point value v into 10-bit signed integer values. + /// Then, converts the forth component of the normalized floating-point value v into 2-bit signed integer values. + /// Then, the results are packed into the returned 32-bit unsigned integer. + /// + /// The conversion for component c of v to fixed point is done as follows: + /// packSnorm3x10_1x2(xyz): round(clamp(c, -1, +1) * 511.0) + /// packSnorm3x10_1x2(w): round(clamp(c, -1, +1) * 1.0) + /// + /// The first vector component specifies the 10 least-significant bits of the result; + /// the forth component specifies the 2 most-significant bits. + /// + /// @see gtc_packing + /// @see vec4 unpackSnorm3x10_1x2(uint32 const & p) + /// @see uint32 packUnorm3x10_1x2(vec4 const & v) + /// @see uint32 packU3x10_U1x2(uvec4 const & v) + /// @see uint32 packI3x10_I1x2(ivec4 const & v) GLM_FUNC_DECL uint32 packSnorm3x10_1x2(vec4 const & v); - GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2(uint32 const & v); - GLM_FUNC_DECL uint32 packF11F11F10(vec3 const & v); - GLM_FUNC_DECL vec3 unpackF11F11F10(uint32 const & v); + /// First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. + /// Then, each component is converted to a normalized floating-point value to generate the returned four-component vector. + /// + /// The conversion for unpacked fixed-point value f to floating point is done as follows: + /// unpackSnorm3x10_1x2(xyz): clamp(f / 511.0, -1, +1) + /// unpackSnorm3x10_1x2(w): clamp(f / 511.0, -1, +1) + /// + /// The first component of the returned vector will be extracted from the least significant bits of the input; + /// the last component will be extracted from the most significant bits. + /// + /// @see gtc_packing + /// @see uint32 packSnorm3x10_1x2(vec4 const & v) + /// @see vec4 unpackUnorm3x10_1x2(uint32 const & p)) + /// @see uvec4 unpackI3x10_I1x2(uint32 const & p) + /// @see uvec4 unpackU3x10_U1x2(uint32 const & p) + GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2(uint32 const & p); + + /// First, converts the first three components of the normalized floating-point value v into 10-bit unsigned integer values. + /// Then, converts the forth component of the normalized floating-point value v into 2-bit signed uninteger values. + /// Then, the results are packed into the returned 32-bit unsigned integer. + /// + /// The conversion for component c of v to fixed point is done as follows: + /// packUnorm3x10_1x2(xyz): round(clamp(c, 0, +1) * 1023.0) + /// packUnorm3x10_1x2(w): round(clamp(c, 0, +1) * 3.0) + /// + /// The first vector component specifies the 10 least-significant bits of the result; + /// the forth component specifies the 2 most-significant bits. + /// + /// @see gtc_packing + /// @see vec4 unpackUnorm3x10_1x2(uint32 const & p) + /// @see uint32 packUnorm3x10_1x2(vec4 const & v) + /// @see uint32 packU3x10_U1x2(uvec4 const & v) + /// @see uint32 packI3x10_I1x2(ivec4 const & v) + GLM_FUNC_DECL uint32 packUnorm3x10_1x2(vec4 const & v); + + /// First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. + /// Then, each component is converted to a normalized floating-point value to generate the returned four-component vector. + /// + /// The conversion for unpacked fixed-point value f to floating point is done as follows: + /// unpackSnorm3x10_1x2(xyz): clamp(f / 1023.0, 0, +1) + /// unpackSnorm3x10_1x2(w): clamp(f / 3.0, 0, +1) + /// + /// The first component of the returned vector will be extracted from the least significant bits of the input; + /// the last component will be extracted from the most significant bits. + /// + /// @see gtc_packing + /// @see uint32 packSnorm3x10_1x2(vec4 const & v) + /// @see vec4 unpackInorm3x10_1x2(uint32 const & p)) + /// @see uvec4 unpackI3x10_I1x2(uint32 const & p) + /// @see uvec4 unpackU3x10_U1x2(uint32 const & p) + GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2(uint32 const & p); + + /// First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values. + /// Then, converts the third component of the normalized floating-point value v into a 10-bit signless floating-point value. + /// Then, the results are packed into the returned 32-bit unsigned integer. + /// + /// The first vector component specifies the 11 least-significant bits of the result; + /// the last component specifies the 10 most-significant bits. + /// + /// @see gtc_packing + /// @see vec3 unpackF2x11_F1x10(uint32 const & p) + GLM_FUNC_DECL uint32 packF2x11_F1x10(vec3 const & v); + + /// First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and one 10-bit signless floating-point value . + /// Then, each component is converted to a normalized floating-point value to generate the returned three-component vector. + /// + /// The first component of the returned vector will be extracted from the least significant bits of the input; + /// the last component will be extracted from the most significant bits. + /// + /// @see gtc_packing + /// @see uint32 packF2x11_F1x10(vec3 const & v) + GLM_FUNC_DECL vec3 unpackF2x11_F1x10(uint32 const & p); /// @} }// namespace glm From 5645369d56ea83dab802d37d515c3f68dcf392d4 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Sun, 25 Aug 2013 22:30:52 +0200 Subject: [PATCH 11/17] Fixed packing implementation function names --- glm/gtc/packing.inl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/glm/gtc/packing.inl b/glm/gtc/packing.inl index 7013024d..3772a845 100644 --- a/glm/gtc/packing.inl +++ b/glm/gtc/packing.inl @@ -372,7 +372,7 @@ namespace detail return detail::toFloat32(Packing.data); } - GLM_FUNC_QUALIFIER uint32 packI10I10I10I2(ivec4 const & v) + GLM_FUNC_QUALIFIER uint32 packInorm3x10_1x2(ivec4 const & v) { detail::i10i10i10i2 Result; Result.data.x = v.x; @@ -382,7 +382,7 @@ namespace detail return Result.pack; } - GLM_FUNC_QUALIFIER ivec4 unpackI10I10I10I2(uint32 const & v) + GLM_FUNC_QUALIFIER ivec4 unpackInorm3x10_1x2(uint32 const & v) { detail::i10i10i10i2 Unpack; Unpack.pack = v; @@ -393,7 +393,7 @@ namespace detail Unpack.data.w); } - GLM_FUNC_QUALIFIER uint32 packU10U10U10U2(uvec4 const & v) + GLM_FUNC_QUALIFIER uint32 packUnorm3x10_1x2(uvec4 const & v) { detail::u10u10u10u2 Result; Result.data.x = v.x; @@ -403,7 +403,7 @@ namespace detail return Result.pack; } - GLM_FUNC_QUALIFIER uvec4 unpackU10U10U10U2(uint32 const & v) + GLM_FUNC_QUALIFIER uvec4 unpackUnorm3x10_1x2(uint32 const & v) { detail::u10u10u10u2 Unpack; Unpack.pack = v; From 6fd6cf2c8c15d5e621d23f49bfc9b6730c3e0774 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Sun, 25 Aug 2013 22:50:48 +0200 Subject: [PATCH 12/17] Fixed packing implementation function names, added missing (un)PackUnom3x10_1_2 implementations, fixed rounding and clamping on (un)packSnom3x10_1x2 implementations --- glm/gtc/packing.hpp | 40 ++++++++++++++++++------------------ glm/gtc/packing.inl | 50 ++++++++++++++++++++++++++++++++------------- 2 files changed, 56 insertions(+), 34 deletions(-) diff --git a/glm/gtc/packing.hpp b/glm/gtc/packing.hpp index 0db69d1d..4ff4b0a6 100644 --- a/glm/gtc/packing.hpp +++ b/glm/gtc/packing.hpp @@ -337,12 +337,12 @@ namespace glm /// the forth component specifies the 2 most-significant bits. /// /// @see gtc_packing - /// @see uint32 packI3x10_I1x2(uvec4 const & v) + /// @see uint32 packI3x10_1x2(uvec4 const & v) /// @see uint32 packSnorm3x10_1x2(vec4 const & v) /// @see uint32 packUnorm3x10_1x2(vec4 const & v) - /// @see ivec4 unpackI3x10_I1x2(uint32 const & p) - GLM_FUNC_DECL uint32 packI3x10_I1x2(ivec4 const & v); - GLM_FUNC_DECL ivec4 unpackI3x10_I1x2(uint32 const & p); + /// @see ivec4 unpackI3x10_1x2(uint32 const & p) + GLM_FUNC_DECL uint32 packI3x10_1x2(ivec4 const & v); + GLM_FUNC_DECL ivec4 unpackI3x10_1x2(uint32 const & p); /// Returns an unsigned integer obtained by converting the components of a four-component unsigned integer vector /// to the 10-10-10-2-bit unsigned integer representation found in the OpenGL Specification, @@ -351,12 +351,12 @@ namespace glm /// the forth component specifies the 2 most-significant bits. /// /// @see gtc_packing - /// @see uint32 packI3x10_I1x2(ivec4 const & v) + /// @see uint32 packI3x10_1x2(ivec4 const & v) /// @see uint32 packSnorm3x10_1x2(vec4 const & v) /// @see uint32 packUnorm3x10_1x2(vec4 const & v) - /// @see ivec4 unpackU3x10_U1x2(uint32 const & p) - GLM_FUNC_DECL uint32 packU3x10_U1x2(uvec4 const & v); - GLM_FUNC_DECL uvec4 unpackU3x10_U1x2(uint32 const & p); + /// @see ivec4 unpackU3x10_1x2(uint32 const & p) + GLM_FUNC_DECL uint32 packU3x10_1x2(uvec4 const & v); + GLM_FUNC_DECL uvec4 unpackU3x10_1x2(uint32 const & p); /// First, converts the first three components of the normalized floating-point value v into 10-bit signed integer values. /// Then, converts the forth component of the normalized floating-point value v into 2-bit signed integer values. @@ -372,8 +372,8 @@ namespace glm /// @see gtc_packing /// @see vec4 unpackSnorm3x10_1x2(uint32 const & p) /// @see uint32 packUnorm3x10_1x2(vec4 const & v) - /// @see uint32 packU3x10_U1x2(uvec4 const & v) - /// @see uint32 packI3x10_I1x2(ivec4 const & v) + /// @see uint32 packU3x10_1x2(uvec4 const & v) + /// @see uint32 packI3x10_1x2(ivec4 const & v) GLM_FUNC_DECL uint32 packSnorm3x10_1x2(vec4 const & v); /// First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. @@ -389,8 +389,8 @@ namespace glm /// @see gtc_packing /// @see uint32 packSnorm3x10_1x2(vec4 const & v) /// @see vec4 unpackUnorm3x10_1x2(uint32 const & p)) - /// @see uvec4 unpackI3x10_I1x2(uint32 const & p) - /// @see uvec4 unpackU3x10_U1x2(uint32 const & p) + /// @see uvec4 unpackI3x10_1x2(uint32 const & p) + /// @see uvec4 unpackU3x10_1x2(uint32 const & p) GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2(uint32 const & p); /// First, converts the first three components of the normalized floating-point value v into 10-bit unsigned integer values. @@ -407,8 +407,8 @@ namespace glm /// @see gtc_packing /// @see vec4 unpackUnorm3x10_1x2(uint32 const & p) /// @see uint32 packUnorm3x10_1x2(vec4 const & v) - /// @see uint32 packU3x10_U1x2(uvec4 const & v) - /// @see uint32 packI3x10_I1x2(ivec4 const & v) + /// @see uint32 packU3x10_1x2(uvec4 const & v) + /// @see uint32 packI3x10_1x2(ivec4 const & v) GLM_FUNC_DECL uint32 packUnorm3x10_1x2(vec4 const & v); /// First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. @@ -424,8 +424,8 @@ namespace glm /// @see gtc_packing /// @see uint32 packSnorm3x10_1x2(vec4 const & v) /// @see vec4 unpackInorm3x10_1x2(uint32 const & p)) - /// @see uvec4 unpackI3x10_I1x2(uint32 const & p) - /// @see uvec4 unpackU3x10_U1x2(uint32 const & p) + /// @see uvec4 unpackI3x10_1x2(uint32 const & p) + /// @see uvec4 unpackU3x10_1x2(uint32 const & p) GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2(uint32 const & p); /// First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values. @@ -436,8 +436,8 @@ namespace glm /// the last component specifies the 10 most-significant bits. /// /// @see gtc_packing - /// @see vec3 unpackF2x11_F1x10(uint32 const & p) - GLM_FUNC_DECL uint32 packF2x11_F1x10(vec3 const & v); + /// @see vec3 unpackF2x11_1x10(uint32 const & p) + GLM_FUNC_DECL uint32 packF2x11_1x10(vec3 const & v); /// First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and one 10-bit signless floating-point value . /// Then, each component is converted to a normalized floating-point value to generate the returned three-component vector. @@ -446,8 +446,8 @@ namespace glm /// the last component will be extracted from the most significant bits. /// /// @see gtc_packing - /// @see uint32 packF2x11_F1x10(vec3 const & v) - GLM_FUNC_DECL vec3 unpackF2x11_F1x10(uint32 const & p); + /// @see uint32 packF2x11_1x10(vec3 const & v) + GLM_FUNC_DECL vec3 unpackF2x11_1x10(uint32 const & p); /// @} }// namespace glm diff --git a/glm/gtc/packing.inl b/glm/gtc/packing.inl index 3772a845..e70b526f 100644 --- a/glm/gtc/packing.inl +++ b/glm/gtc/packing.inl @@ -372,7 +372,7 @@ namespace detail return detail::toFloat32(Packing.data); } - GLM_FUNC_QUALIFIER uint32 packInorm3x10_1x2(ivec4 const & v) + GLM_FUNC_QUALIFIER uint32 packI3x10_1x2(ivec4 const & v) { detail::i10i10i10i2 Result; Result.data.x = v.x; @@ -382,7 +382,7 @@ namespace detail return Result.pack; } - GLM_FUNC_QUALIFIER ivec4 unpackInorm3x10_1x2(uint32 const & v) + GLM_FUNC_QUALIFIER ivec4 unpackI3x10_1x2(uint32 const & v) { detail::i10i10i10i2 Unpack; Unpack.pack = v; @@ -393,7 +393,7 @@ namespace detail Unpack.data.w); } - GLM_FUNC_QUALIFIER uint32 packUnorm3x10_1x2(uvec4 const & v) + GLM_FUNC_QUALIFIER uint32 packU3x10_1x2(uvec4 const & v) { detail::u10u10u10u2 Result; Result.data.x = v.x; @@ -403,7 +403,7 @@ namespace detail return Result.pack; } - GLM_FUNC_QUALIFIER uvec4 unpackUnorm3x10_1x2(uint32 const & v) + GLM_FUNC_QUALIFIER uvec4 unpackU3x10_1x2(uint32 const & v) { detail::u10u10u10u2 Unpack; Unpack.pack = v; @@ -417,10 +417,10 @@ namespace detail GLM_FUNC_QUALIFIER uint32 packSnorm3x10_1x2(vec4 const & v) { detail::i10i10i10i2 Result; - Result.data.x = int(v.x * 511.f); - Result.data.y = int(v.y * 511.f); - Result.data.z = int(v.z * 511.f); - Result.data.w = int(v.w * 1.f); + Result.data.x = int(round(clamp(v.x,-1.0f, 1.0f) * 511.f)); + Result.data.y = int(round(clamp(v.y,-1.0f, 1.0f) * 511.f)); + Result.data.z = int(round(clamp(v.z,-1.0f, 1.0f) * 511.f)); + Result.data.w = int(round(clamp(v.w,-1.0f, 1.0f) * 1.f)); return Result.pack; } @@ -429,14 +429,36 @@ namespace detail detail::i10i10i10i2 Unpack; Unpack.pack = v; vec4 Result; - Result.x = float(Unpack.data.x) / 511.f; - Result.y = float(Unpack.data.y) / 511.f; - Result.z = float(Unpack.data.z) / 511.f; - Result.w = float(Unpack.data.w) / 1.f; + Result.x = clamp(float(Unpack.data.x) / 511.f, -1.0f, 1.0f); + Result.y = clamp(float(Unpack.data.y) / 511.f, -1.0f, 1.0f); + Result.z = clamp(float(Unpack.data.z) / 511.f, -1.0f, 1.0f); + Result.w = clamp(float(Unpack.data.w) / 1.f, -1.0f, 1.0f); return Result; } - GLM_FUNC_QUALIFIER uint32 packF11F11F10(vec3 const & v) + GLM_FUNC_QUALIFIER uint32 packUnorm3x10_1x2(vec4 const & v) + { + detail::i10i10i10i2 Result; + Result.data.x = int(round(clamp(v.x, 0.0f, 1.0f) * 1023.f)); + Result.data.y = int(round(clamp(v.y, 0.0f, 1.0f) * 1023.f)); + Result.data.z = int(round(clamp(v.z, 0.0f, 1.0f) * 1023.f)); + Result.data.w = int(round(clamp(v.w, 0.0f, 1.0f) * 3.f)); + return Result.pack; + } + + GLM_FUNC_QUALIFIER vec4 unpackUnorm3x10_1x2(uint32 const & v) + { + detail::i10i10i10i2 Unpack; + Unpack.pack = v; + vec4 Result; + Result.x = float(Unpack.data.x) / 1023.f; + Result.y = float(Unpack.data.y) / 1023.f; + Result.z = float(Unpack.data.z) / 1023.f; + Result.w = float(Unpack.data.w) / 3.f; + return Result; + } + + GLM_FUNC_QUALIFIER uint32 packF2x11_1x10(vec3 const & v) { return ((detail::floatTo11bit(v.x) & ((1 << 11) - 1)) << 0) | @@ -444,7 +466,7 @@ namespace detail ((detail::floatTo10bit(v.z) & ((1 << 10) - 1)) << 22); } - GLM_FUNC_QUALIFIER vec3 unpackF11F11F10(uint32 const & v) + GLM_FUNC_QUALIFIER vec3 unpackF2x11_1x10(uint32 const & v) { vec3 Result; // TODO From fb13e7bf8ad5feeb323c280f1f7cca39936c762a Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Mon, 26 Aug 2013 07:38:34 +0200 Subject: [PATCH 13/17] Added unpack 111110 implementation, missing inf and NaN code path --- glm/gtc/packing.inl | 87 +++++++++++++++++++++++++++++++++++++++------ 1 file changed, 77 insertions(+), 10 deletions(-) diff --git a/glm/gtc/packing.inl b/glm/gtc/packing.inl index e70b526f..0864e6b3 100644 --- a/glm/gtc/packing.inl +++ b/glm/gtc/packing.inl @@ -47,7 +47,7 @@ namespace detail ((f >> 13) & 0x03ff); // Mantissa } - glm::uint16 float2packed11(glm::uint32 const & f) + glm::uint32 float2packed11(glm::uint32 const & f) { // 10 bits => EE EEEFFFFF // 11 bits => EEE EEFFFFFF @@ -61,11 +61,29 @@ namespace detail // 0x7f800000 => 01111111 10000000 00000000 00000000 // 0x00008000 => 00000000 00000000 10000000 00000000 return - ((((f & 0x7f800000) - 0x38000000) >> 17) & 0x07c0) | // exponential - ((f >> 17) & 0x003f); // Mantissa + ((((f & 0x7f800000) - 0x38000000) >> 17) & 0x07c0) | // exponential + ((f >> 17) & 0x003f); // Mantissa } - glm::uint float2packed10(glm::uint const & f) + glm::uint32 packed11Tofloat(glm::uint32 const & p) + { + // 10 bits => EE EEEFFFFF + // 11 bits => EEE EEFFFFFF + // Half bits => SEEEEEFF FFFFFFFF + // Float bits => SEEEEEEE EFFFFFFF FFFFFFFF FFFFFFFF + + // 0x000007c0 => 00000000 00000000 00000111 11000000 + // 0x00007c00 => 00000000 00000000 01111100 00000000 + // 0x000003ff => 00000000 00000000 00000011 11111111 + // 0x38000000 => 00111000 00000000 00000000 00000000 + // 0x7f800000 => 01111111 10000000 00000000 00000000 + // 0x00008000 => 00000000 00000000 10000000 00000000 + return + ((((p & 0x07c0) << 17) + 0x38000000) & 0x7f800000) | // exponential + ((f & 0x003f) << 17); // Mantissa + } + + glm::uint32 float2packed10(glm::uint32 const & f) { // 10 bits => EE EEEFFFFF // 11 bits => EEE EEFFFFFF @@ -82,10 +100,31 @@ namespace detail // 0x7f800000 => 01111111 10000000 00000000 00000000 // 0x00008000 => 00000000 00000000 10000000 00000000 return - ((((f & 0x7f800000) - 0x38000000) >> 18) & 0x03E0) | // exponential - ((f >> 18) & 0x001f); // Mantissa + ((((f & 0x7f800000) - 0x38000000) >> 18) & 0x03E0) | // exponential + ((f >> 18) & 0x001f); // Mantissa } + glm::uint32 packed10ToFloat(glm::uint32 const & p) + { + // 10 bits => EE EEEFFFFF + // 11 bits => EEE EEFFFFFF + // Half bits => SEEEEEFF FFFFFFFF + // Float bits => SEEEEEEE EFFFFFFF FFFFFFFF FFFFFFFF + + // 0x0000001F => 00000000 00000000 00000000 00011111 + // 0x0000003F => 00000000 00000000 00000000 00111111 + // 0x000003E0 => 00000000 00000000 00000011 11100000 + // 0x000007C0 => 00000000 00000000 00000111 11000000 + // 0x00007C00 => 00000000 00000000 01111100 00000000 + // 0x000003FF => 00000000 00000000 00000011 11111111 + // 0x38000000 => 00111000 00000000 00000000 00000000 + // 0x7f800000 => 01111111 10000000 00000000 00000000 + // 0x00008000 => 00000000 00000000 10000000 00000000 + return + ((((p & 0x03E0) << 18) + 0x38000000) & 0x7f800000) | // exponential + ((f & 0x001f) << 18); // Mantissa + } + glm::uint half2float(glm::uint const & h) { return ((h & 0x8000) << 16) | ((( h & 0x7c00) + 0x1C000) << 13) | ((h & 0x03FF) << 13); @@ -111,6 +150,20 @@ namespace detail return float2packed11(Union.i); } + float packed11bitToFloat(glm::uint x) + { + if(x == 0) + return 0.0f; + else if(x == ((1 << 11) - 1)) + return ~0;//NaN + else if(x == (0x1f << 6)) + return ~0;//Inf + + uif Union; + Union.i = packed11ToFloat(x); + return Union.f; + } + glm::uint floatTo10bit(float x) { if(x == 0.0f) @@ -124,6 +177,20 @@ namespace detail Union.f = x; return float2packed10(Union.i); } + + float packed10bitToFloat(glm::uint x) + { + if(x == 0) + return 0.0f; + else if(x == ((1 << 10) - 1)) + return ~0;//NaN + else if(x == (0x1f << 5)) + return ~0;//Inf + + uif Union; + Union.i = packed10ToFloat(x); + return Union.f; + } glm::uint f11_f11_f10(float x, float y, float z) { @@ -224,7 +291,6 @@ namespace detail }; }//namespace detail - GLM_FUNC_QUALIFIER uint8 packUnorm1x8(float const & v) { int8 Scaled(round(clamp(v ,-1.0f, 1.0f) * 255.0f)); @@ -468,9 +534,10 @@ namespace detail GLM_FUNC_QUALIFIER vec3 unpackF2x11_1x10(uint32 const & v) { - vec3 Result; - // TODO - return Result; + return vec3( + packed11bitToFloat(v >> 0), + packed11bitToFloat(v >> 11), + packed10bitToFloat(v >> 22)); } }//namespace glm From 0abec19bc172de8b11ac9a2de3226df43ac7a933 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Mon, 26 Aug 2013 08:28:17 +0200 Subject: [PATCH 14/17] Added missing documentation, missing 4x16 half packing functions, added initial tests --- glm/gtc/packing.hpp | 20 ++++++++++ glm/gtc/packing.inl | 14 +++++++ test/gtc/gtc_packing.cpp | 80 +++++++++++++++++++++++++++++++++++++++- 3 files changed, 113 insertions(+), 1 deletion(-) diff --git a/glm/gtc/packing.hpp b/glm/gtc/packing.hpp index 4ff4b0a6..9433d54e 100644 --- a/glm/gtc/packing.hpp +++ b/glm/gtc/packing.hpp @@ -342,6 +342,16 @@ namespace glm /// @see uint32 packUnorm3x10_1x2(vec4 const & v) /// @see ivec4 unpackI3x10_1x2(uint32 const & p) GLM_FUNC_DECL uint32 packI3x10_1x2(ivec4 const & v); + + /// Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit signed integers. + /// + /// The first component of the returned vector will be extracted from the least significant bits of the input; + /// the last component will be extracted from the most significant bits. + /// + /// @see gtc_packing + /// @see uint32 packU3x10_1x2(uvec4 const & v) + /// @see vec4 unpackSnorm3x10_1x2(uint32 const & p); + /// @see uvec4 unpackI3x10_1x2(uint32 const & p); GLM_FUNC_DECL ivec4 unpackI3x10_1x2(uint32 const & p); /// Returns an unsigned integer obtained by converting the components of a four-component unsigned integer vector @@ -356,6 +366,16 @@ namespace glm /// @see uint32 packUnorm3x10_1x2(vec4 const & v) /// @see ivec4 unpackU3x10_1x2(uint32 const & p) GLM_FUNC_DECL uint32 packU3x10_1x2(uvec4 const & v); + + /// Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit unsigned integers. + /// + /// The first component of the returned vector will be extracted from the least significant bits of the input; + /// the last component will be extracted from the most significant bits. + /// + /// @see gtc_packing + /// @see uint32 packU3x10_1x2(uvec4 const & v) + /// @see vec4 unpackSnorm3x10_1x2(uint32 const & p); + /// @see uvec4 unpackI3x10_1x2(uint32 const & p); GLM_FUNC_DECL uvec4 unpackU3x10_1x2(uint32 const & p); /// First, converts the first three components of the normalized floating-point value v into 10-bit signed integer values. diff --git a/glm/gtc/packing.inl b/glm/gtc/packing.inl index 0864e6b3..0dc4b996 100644 --- a/glm/gtc/packing.inl +++ b/glm/gtc/packing.inl @@ -438,6 +438,20 @@ namespace detail return detail::toFloat32(Packing.data); } + GLM_FUNC_DECL uint64 packHalf4x16(float const & v) + { + detail::half4x16 Packing; + Packing.data = detail::toFloat16(v); + return Packing.pack; + } + + GLM_FUNC_DECL float unpackHalf4x16(uint64 const & v) + { + detail::half4x16 Packing; + Packing.pack = v; + return detail::toFloat32(Packing.data); + } + GLM_FUNC_QUALIFIER uint32 packI3x10_1x2(ivec4 const & v) { detail::i10i10i10i2 Result; diff --git a/test/gtc/gtc_packing.cpp b/test/gtc/gtc_packing.cpp index cbbfa8e8..ca8fd8da 100644 --- a/test/gtc/gtc_packing.cpp +++ b/test/gtc/gtc_packing.cpp @@ -132,11 +132,89 @@ int test_half() return Error; } +int test_F2x11_1x10() +{ + int Error = 0; + + std::vector Tests; + Tests.push_back(glm::vec3(1.0)); + Tests.push_back(glm::vec3(0.0)); + Tests.push_back(glm::vec3(2.0)); + Tests.push_back(glm::vec3(0.1)); + Tests.push_back(glm::vec3(0.5)); + Tests.push_back(glm::vec3(0.9)); + + for(std::size_t i = 0; i < Tests.size(); ++i) + { + glm::uint32 p0 = glm::packF2x11_1x10(Tests[i]); + glm::vec3 v0 = glm::unpackF2x11_1x10(p0); + glm::uint32 p1 = glm::packF2x11_1x10(v0); + glm::vec3 v1 = glm::unpackF2x11_1x10(p0); + Error += glm::all(glm::equal(v0, v1)) ? 0 : 1; + } + + return Error; +} + +int test_Snorm3x10_1x2() +{ + int Error = 0; + + std::vector Tests; + Tests.push_back(glm::vec4(1.0)); + Tests.push_back(glm::vec4(0.0)); + Tests.push_back(glm::vec4(2.0)); + Tests.push_back(glm::vec4(0.1)); + Tests.push_back(glm::vec4(0.5)); + Tests.push_back(glm::vec4(0.9)); + + for(std::size_t i = 0; i < Tests.size(); ++i) + { + glm::uint32 p0 = glm::packSnorm3x10_1x2(Tests[i]); + glm::vec3 v0 = glm::unpackSnorm3x10_1x2(p0); + glm::uint32 p1 = glm::packSnorm3x10_1x2(v0); + glm::vec3 v1 = glm::unpackSnorm3x10_1x2(p0); + Error += glm::all(glm::equal(v0, v1)) ? 0 : 1; + } + + return Error; +} + +int test_Unorm3x10_1x2() +{ + int Error = 0; + + std::vector Tests; + Tests.push_back(glm::vec4(1.0)); + Tests.push_back(glm::vec4(0.0)); + Tests.push_back(glm::vec4(2.0)); + Tests.push_back(glm::vec4(0.1)); + Tests.push_back(glm::vec4(0.5)); + Tests.push_back(glm::vec4(0.9)); + + for(std::size_t i = 0; i < Tests.size(); ++i) + { + glm::uint32 p0 = glm::packSnorm3x10_1x2(Tests[i]); + glm::vec3 v0 = glm::unpackSnorm3x10_1x2(p0); + glm::uint32 p1 = glm::packSnorm3x10_1x2(v0); + glm::vec3 v1 = glm::unpackSnorm3x10_1x2(p0); + Error += glm::all(glm::equal(v0, v1)) ? 0 : 1; + } + + return Error; +} + int main() { int Error(0); - Error += test_half(); + Error += test_F2x11_1x10(); + Error += test_Snorm3x10_1x2(); + Error += test_Unorm3x10_1x2(); + Error += test_I3x10_1x2(); + Error += test_U3x10_1x2(); + Error += test_Half1x16(); + Error += test_U3x10_1x2(); return Error; } From b1230f2adceaee0c3ceb92ff48bf4404f7390948 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Mon, 26 Aug 2013 11:14:46 +0200 Subject: [PATCH 15/17] Fixed build --- glm/gtc/packing.inl | 40 ++++++++---- test/gtc/gtc_packing.cpp | 129 ++++++++++++++++++++++++++++++++++----- 2 files changed, 142 insertions(+), 27 deletions(-) diff --git a/glm/gtc/packing.inl b/glm/gtc/packing.inl index 0dc4b996..d67cad09 100644 --- a/glm/gtc/packing.inl +++ b/glm/gtc/packing.inl @@ -65,7 +65,7 @@ namespace detail ((f >> 17) & 0x003f); // Mantissa } - glm::uint32 packed11Tofloat(glm::uint32 const & p) + glm::uint32 packed11ToFloat(glm::uint32 const & p) { // 10 bits => EE EEEFFFFF // 11 bits => EEE EEFFFFFF @@ -80,7 +80,7 @@ namespace detail // 0x00008000 => 00000000 00000000 10000000 00000000 return ((((p & 0x07c0) << 17) + 0x38000000) & 0x7f800000) | // exponential - ((f & 0x003f) << 17); // Mantissa + ((p & 0x003f) << 17); // Mantissa } glm::uint32 float2packed10(glm::uint32 const & f) @@ -122,7 +122,7 @@ namespace detail // 0x00008000 => 00000000 00000000 10000000 00000000 return ((((p & 0x03E0) << 18) + 0x38000000) & 0x7f800000) | // exponential - ((f & 0x001f) << 18); // Mantissa + ((p & 0x001f) << 18); // Mantissa } glm::uint half2float(glm::uint const & h) @@ -257,7 +257,18 @@ namespace detail uint16 pack; }; - + union half4x16 + { + struct + { + hdata x; + hdata y; + hdata z; + hdata w; + } data; + uint64 pack; + }; + union unorm1x8 { uint8 data; @@ -438,18 +449,25 @@ namespace detail return detail::toFloat32(Packing.data); } - GLM_FUNC_DECL uint64 packHalf4x16(float const & v) + GLM_FUNC_DECL uint64 packHalf4x16(glm::vec4 const & v) { detail::half4x16 Packing; - Packing.data = detail::toFloat16(v); + Packing.data.x = detail::toFloat16(v.x); + Packing.data.y = detail::toFloat16(v.y); + Packing.data.z = detail::toFloat16(v.z); + Packing.data.w = detail::toFloat16(v.w); return Packing.pack; } - GLM_FUNC_DECL float unpackHalf4x16(uint64 const & v) + GLM_FUNC_DECL glm::vec4 unpackHalf4x16(uint64 const & v) { detail::half4x16 Packing; Packing.pack = v; - return detail::toFloat32(Packing.data); + return glm::vec4( + detail::toFloat32(Packing.data.x), + detail::toFloat32(Packing.data.y), + detail::toFloat32(Packing.data.z), + detail::toFloat32(Packing.data.w)); } GLM_FUNC_QUALIFIER uint32 packI3x10_1x2(ivec4 const & v) @@ -549,9 +567,9 @@ namespace detail GLM_FUNC_QUALIFIER vec3 unpackF2x11_1x10(uint32 const & v) { return vec3( - packed11bitToFloat(v >> 0), - packed11bitToFloat(v >> 11), - packed10bitToFloat(v >> 22)); + detail::packed11bitToFloat(v >> 0), + detail::packed11bitToFloat(v >> 11), + detail::packed10bitToFloat(v >> 22)); } }//namespace glm diff --git a/test/gtc/gtc_packing.cpp b/test/gtc/gtc_packing.cpp index ca8fd8da..b3d83739 100644 --- a/test/gtc/gtc_packing.cpp +++ b/test/gtc/gtc_packing.cpp @@ -29,6 +29,7 @@ #include #include #include +#include void print_bits(glm::half const & s) { @@ -132,24 +133,96 @@ int test_half() return Error; } -int test_F2x11_1x10() +int test_Half1x16() { int Error = 0; - std::vector Tests; - Tests.push_back(glm::vec3(1.0)); - Tests.push_back(glm::vec3(0.0)); - Tests.push_back(glm::vec3(2.0)); - Tests.push_back(glm::vec3(0.1)); - Tests.push_back(glm::vec3(0.5)); - Tests.push_back(glm::vec3(0.9)); + std::vector Tests; + Tests.push_back(0.0f); + Tests.push_back(1.0f); + Tests.push_back(-1.0f); + Tests.push_back(2.0f); + Tests.push_back(-2.0f); + Tests.push_back(1.9f); for(std::size_t i = 0; i < Tests.size(); ++i) { - glm::uint32 p0 = glm::packF2x11_1x10(Tests[i]); - glm::vec3 v0 = glm::unpackF2x11_1x10(p0); - glm::uint32 p1 = glm::packF2x11_1x10(v0); - glm::vec3 v1 = glm::unpackF2x11_1x10(p0); + glm::uint32 p0 = glm::packHalf1x16(Tests[i]); + float v0 = glm::unpackHalf1x16(p0); + glm::uint32 p1 = glm::packHalf1x16(v0); + float v1 = glm::unpackHalf1x16(p0); + Error += (v0 == v1) ? 0 : 1; + } + + return Error; +} + +int test_Half4x16() +{ + int Error = 0; + + std::vector Tests; + Tests.push_back(glm::vec4(1.0)); + Tests.push_back(glm::vec4(0.0)); + Tests.push_back(glm::vec4(2.0)); + Tests.push_back(glm::vec4(0.1)); + Tests.push_back(glm::vec4(0.5)); + Tests.push_back(glm::vec4(-0.9)); + + for(std::size_t i = 0; i < Tests.size(); ++i) + { + glm::uint64 p0 = glm::packHalf4x16(Tests[i]); + glm::vec4 v0 = glm::unpackHalf4x16(p0); + glm::uint64 p1 = glm::packHalf4x16(v0); + glm::vec4 v1 = glm::unpackHalf4x16(p0); + Error += glm::all(glm::equal(v0, v1)) ? 0 : 1; + } + + return Error; +} + +int test_I3x10_1x2() +{ + int Error = 0; + + std::vector Tests; + Tests.push_back(glm::ivec4(0)); + Tests.push_back(glm::ivec4(1)); + Tests.push_back(glm::ivec4(-1)); + Tests.push_back(glm::ivec4(2)); + Tests.push_back(glm::ivec4(-2)); + Tests.push_back(glm::ivec4(3)); + + for(std::size_t i = 0; i < Tests.size(); ++i) + { + glm::uint32 p0 = glm::packI3x10_1x2(Tests[i]); + glm::ivec4 v0 = glm::unpackI3x10_1x2(p0); + glm::uint32 p1 = glm::packI3x10_1x2(v0); + glm::ivec4 v1 = glm::unpackI3x10_1x2(p0); + Error += glm::all(glm::equal(v0, v1)) ? 0 : 1; + } + + return Error; +} + +int test_U3x10_1x2() +{ + int Error = 0; + + std::vector Tests; + Tests.push_back(glm::uvec4(0)); + Tests.push_back(glm::uvec4(1)); + Tests.push_back(glm::uvec4(2)); + Tests.push_back(glm::uvec4(3)); + Tests.push_back(glm::uvec4(4)); + Tests.push_back(glm::uvec4(5)); + + for(std::size_t i = 0; i < Tests.size(); ++i) + { + glm::uint32 p0 = glm::packU3x10_1x2(Tests[i]); + glm::uvec4 v0 = glm::unpackU3x10_1x2(p0); + glm::uint32 p1 = glm::packU3x10_1x2(v0); + glm::uvec4 v1 = glm::unpackU3x10_1x2(p0); Error += glm::all(glm::equal(v0, v1)) ? 0 : 1; } @@ -171,9 +244,9 @@ int test_Snorm3x10_1x2() for(std::size_t i = 0; i < Tests.size(); ++i) { glm::uint32 p0 = glm::packSnorm3x10_1x2(Tests[i]); - glm::vec3 v0 = glm::unpackSnorm3x10_1x2(p0); + glm::vec4 v0 = glm::unpackSnorm3x10_1x2(p0); glm::uint32 p1 = glm::packSnorm3x10_1x2(v0); - glm::vec3 v1 = glm::unpackSnorm3x10_1x2(p0); + glm::vec4 v1 = glm::unpackSnorm3x10_1x2(p0); Error += glm::all(glm::equal(v0, v1)) ? 0 : 1; } @@ -195,9 +268,33 @@ int test_Unorm3x10_1x2() for(std::size_t i = 0; i < Tests.size(); ++i) { glm::uint32 p0 = glm::packSnorm3x10_1x2(Tests[i]); - glm::vec3 v0 = glm::unpackSnorm3x10_1x2(p0); + glm::vec4 v0 = glm::unpackSnorm3x10_1x2(p0); glm::uint32 p1 = glm::packSnorm3x10_1x2(v0); - glm::vec3 v1 = glm::unpackSnorm3x10_1x2(p0); + glm::vec4 v1 = glm::unpackSnorm3x10_1x2(p0); + Error += glm::all(glm::equal(v0, v1)) ? 0 : 1; + } + + return Error; +} + +int test_F2x11_1x10() +{ + int Error = 0; + + std::vector Tests; + Tests.push_back(glm::vec3(1.0)); + Tests.push_back(glm::vec3(0.0)); + Tests.push_back(glm::vec3(2.0)); + Tests.push_back(glm::vec3(0.1)); + Tests.push_back(glm::vec3(0.5)); + Tests.push_back(glm::vec3(0.9)); + + for(std::size_t i = 0; i < Tests.size(); ++i) + { + glm::uint32 p0 = glm::packF2x11_1x10(Tests[i]); + glm::vec3 v0 = glm::unpackF2x11_1x10(p0); + glm::uint32 p1 = glm::packF2x11_1x10(v0); + glm::vec3 v1 = glm::unpackF2x11_1x10(p0); Error += glm::all(glm::equal(v0, v1)) ? 0 : 1; } From d757ee2bfcff9f6647ebfdb8725a0c77a019e34f Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Sat, 31 Aug 2013 01:56:02 +0200 Subject: [PATCH 16/17] Updated GLM 0.9.5 documentation --- doc/glm.docx | Bin 1081039 -> 1080869 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/glm.docx b/doc/glm.docx index 0c7acad646cb4131fa277ea10509288da5c0aff5..7e008c160278270a14e64fe1f7d475b927fbab20 100644 GIT binary patch delta 78175 zcmV)7K*zt&{XwPtL9iQf4@NgLtr5HO`;`#x7FtEb~iz9 zlWy9i+oCT4CDAeyN>oWIw)5-nP>N$G8?u(csJK89M2hW^2Lo(M^K z5%mJU-#a2j!c$sgQSZ0wQ*YWkk_s0oX1pL#Z%t(HtaT47%M<#JiaYR2jqO{q*OsdvOp z%&|x%s^VBJ1i`8F%SCwtmr=>3VpOVs>#8U8ElBnqH{Gy%RK^L$pAs3|No-jxR!Y}SA?E4y6lPbkt%9jP>u%}vD z?i5PRK{~L-=%6Efw8G=SDLk4z5%g`Ke=%|jUFPkoL3$^(Jx0FQ?+0Ulp>ozPibfql zT`;qS(WE1&iy6=Sg2#k;x10dd6;ksZpg3Va2vC2B`XK`D;KhP6MscA$U~CHy@KIo~ z_5d9{P3AI&+PQhs5j?`vEa@GMIlpUoroKX-!Q`{^n@hnnf%6=gP&?~K@N#F=e^U~r zz=9{Vi+YK$_lEZR=h8C3gHHm!QvMTSEhF;<%vW&E<&`@@ClFb1H^PagcqQJc!DZW!gi?T6qO*L6~KHvSz;lHch6VALwTYEehAQp zq*}9W(gsdeU)xwl(BY11ICow13zC7_B-Sknc+e5S$dbg*imEoX9YTd~y_X*2R8t_R z52R`|KAs?`ZX^nBM&V6gvmsQ|p!y{@jnvyHy@!OT(-<|Uc`G3rI8C8uBZ9!jHHKXX zO^|@t?VYb}^ydQQB##A=f9MA+XhHn*D!~$6UtT4Y;TZk*;-X@V2vo7sQ#=PvH=VbO z*^yHMWp-`Yx2Xr?j`p_RIl6D7%EzLofhBL~^*y=3x>w|Fnj~HVCAcobk^XU_a2AO> z)VyKn;aGs$Fb!I&<6%d1KtE_s6Tu~)t2&3>Q(0jqRh3fSE<}b-f61XaL;@?*A33cz z%p~ANefgBEG_0PTU!6k>?W!b+KlBHEf8wWfK5xJ4#vNr|Xnztv<2++c8?db7H(^{Y zT4vwLTL-QKo;c|u|GrR7at=yEQ45mjR|4G(@u}VJnmSFe=C~#lv{GMHt2xdoTOUAg zrcSf4*;0^eDa5PpfBHVEwy4%Xx4j}o6(iC6`gJ$gBv}+3WMR5xzx%Z+XHJ35{6HE~ z^iEts?}+MtzN`@$MiB(3sTQvL2)-V#J&?4#0=}WfP>`9_f_RcLm~8N3o$Zy!=icVM z?P6`_l)->uIoTKx_3BGh{|u~E2fW3Z6b;>N;5~nAb-t+QfBWd^E~1L$R%@JkWJ%(y zue9-$$7p##eJKaPRqK%ke<)3Zaa2?e-yaMS;G!qINgx)VF25-&tb~KEw%G%Dxfz!Ng-W}F@WazXWF&hy~ zY@?cUe@+YotNP$H^;)d3&cICGI=AlZ zJXklmE`X~^+6)j#(!+i$Mk&9)wE_lThC=rp3i>6Xti#`{0?&!pXPHIXq1~c-E?Gj{$#5MoRTjK zCfTw}f6yT$Z5u=zhwVvNIzk~Wq%N@_J}nesbpcNbuac;~2C+CVLA4N1%e|lVgN~Lt z2yN>;Fa^C{6ewPHk3IbT$pmw-*{O_EE?`EM=Q9XRtE`ch4w$`k${fr#KQDlEi?2Qx zQXgAE669zJLr<0d4sKvBzHJj|(qZC}OF9Sje@-?UShMRPtsl}pcUnxDqt@CKoctf~ zidh#$0!T~S8I+SU3W9ntzs1QBr&bnK9)sGtos*4vPq%DoH*^Zfd++Gi)uU4Z@@AE{ z*N;M{fWG%rJT=R3NugN=c$9EBYb0WS(JrYEo#q0|*0vrZ8ahRHixpE_avnPcXR{SB zf8J&}z&3RXwuXp$AvC}tAutz#fSxh0;8c=!Q8adn%@)svHg#d@6xR%%)53nvV1Vs_ zgI_^Mkau9uA?Ogx+RD(oJPai0q!MuCR^2?FLWVngsLQ8baXDE1`5C`IE6yL5>f)!L z?>@-_6K$+ zT_8K)lc+V~Owi_7juv<aJPHM<>EIf-zm?fD6+~JSCy~r>Yl;Q zqCrcP%`S=5kd)o-!3E|W_RsDMEU>S!k1|iPCz7N@Qj|=67N^C=OxdQW{D_P^85wyZ z^7nuEe`P%4p4>3<0{`8KaK@i-uHO#^p8xRfDDd5PCogVv@`sE6 z{GWdRd_D;J)3NKv9E$Lx^XEzb-N|DdPtM=Ijrx!7*on@@UOxKkEgYny7IQ07N z+vgx0ycKzYXTMFtpzlTz>N6ex$%#(V;>L@me+3iQM_t1p96NDz7K9IP$4>ZlI(dWA zCr<3$dm}G?LD{^T6%)KWnTGy(+MqYH2GLi}lLngli$-EnzmWD1qW=(op)rqI^D0}aDBFGE%&AMD?40@sSjG>qpxKLb$Fb2t&#-l_I ze>A@HQ7xA!@T)qLjtCVoYeStT6zj}dGIl(FR?KFi$qN@VVjKN_9|qIOtT_{JyV5TG zud}jfVy@9LUS%^c-?eD10v4w3?V~esPq=aa{PMvMLg#*j7Cj3xM;du@0kF7t`d=R) z0Dr(epZ9}NfN5s4|4!br&x64W{hV<4f7Ay{>5*UxqG~5K7i&}`o##6$VDL~iYJx3yy7mEU zRCwMNdzN&_KB~N|%ALd2C@7kuN}_VO8Wl0c&!IGj??{57tLEWqR0Kh_e@y#; zQq?rQrzqBT2w;k;)};x?;DRB5Eb#_PWsq|n(vP3}`25Kky*uf{sBuF=hqnNv1l&||=n*Bx)hmwJ&=Z@che+)u~j-n|_lGIH^%PB$WS(Il-Wm?werzT0LIkLcu=9iiOyl2s`j`4UA*=5?){C1B2r_I7|8#Js~n*Vg|K}<=}kVPsnNU~C3`0_cu zMc?5jp*wWL8)i&Cxi@a){R$B?@xP@P3uWJryov3NMkEsYoeR(1@x6=Dfre-_7|wYV zhi=?|q+f@4^#%it=WlZ#f3R}rMNusg(|hOqmti=jZ^AI+phD;YbcZ#@A=O%`SEwTU z`Xr3v_iivo?;!89aFP0dDb*7u4zv2DS)Jya+9++Hbxt?HU%3yfAHf7MLSX7^X{;h zf(DG8pM&s&;YS`p%p?7>_zBIv#Js{g49sjB22C<~&!bdW*gH)jk})VpNJY`H?m7e6Gv430nR zoGCSQL9lq!(0gSgO0hKq+k~t|wEmX27_arovbCN`=HS+SlK4VLP+%rPYE}_%ZVJt! zS;`zV0CcAh6v65ex#1I*J#JN*mZI>M35ce-WR%}b9#0>pe^FfiDBmz%u5-1o{)_(Cv_EjgPm8>s3MZ*mvUW~x~hmlTz3lN3(4ZiTpjp6TVb7P9HiYS zt+9^~UWmQGR~T?)Tf=&zEzkKQ$vq@eG%GBSLSJYwv(@=Fei^x06Fy`WCBw6_ zc{KMQM&o~bcoT=y{+aIEmb!=60Mo!Jk5NhvTXMxY$?d9 zD)>k>RU~%_bCIUMlTT$c4=K*R@(w>q%>xSMCU~t~Yk$3(P z^PJ8dq+;T5pY5XJ3p1F!gxBRr%K;>mfBgM_!hKQNzJ^)LXor?_fMlDo-M6dg zKS6`D7937C)y|#Mva?{eTbyrl1-`hi-E*6t&!>8Wc>e(83^QFB4hTM10&(CLbkL>qlbgVe)2G`5ftzI2JPHC(*e;B~D z1ZGYZ=bx%cLf5KwvbnQnFyzcYtklONO)j?usU&{usvq z9MPzsozO)S2AmT`LEm%GN-m>ef3vlc1H;3OxbI>d)tua>-#Gc6HGSZg4##)bM$bnZ zT`sGTd-meTU>b8cY>Y$jY#`rL&hz`DDG|$OACJ7T7boqeuQTg9DvM@EV#L@@Ba9)9 z)G0Rx!+l6UT{f_jDcCR3<0<1`h2H%%#+wm61Q(3H1)0AMLN3DL)}Gpje|C8oIX2pJ zNwS(r@1S##RjPUsJ$Zfvou(jlZ(p(-fHG{94?Uqq41>`qAnG^- z?1P9#Joxj1sFs{*7)saRf8rUF4Ng$>*)tE zRFXje0|llQ34Wy?MUT#Cf5hFp>2$-Gd46FWb~o#(qD*ZuH>UR#C=z?lh?@i<(}1!% zpA}lNOd~8C^u;=c;XXBj*L$+jD?9N;xb`hMXN=M|KQ%cs3}0>F)E)c}7I*vEzWdR* zvAD}y?)v8Q50^cw$DJ6r`1|CP`|^$2f4;eV|KX1N z@cF7|;bGT;6pikcm2?2ZYF-(aA5XcS@zHoslDy$Qqiy>dU8+18AMVEw7F9&DG4Mb0 z?(*{|8c6f=r@I^cd5UqqxtlfU$IDymlrwHFZ%HNWo6jHje>KFU{AdRxfu^A~pRA;9 zG%=Xs&E^kYAw~RxVbA2o^(^BGEyQH{w5I{4Dzhfk0X|;uh`ny74)85UoZ=_>{b|Lj zhqDe_TJZ4-f~-rXNZW;E!@U~gBwgxsY5ksaWbzotR=I==)08tIp(}Mdl1|>5{F#ty z*t*e!#~V#9f1C*^q9#l5RI)=M3H;1XM`84t)u%$b-obaOsq+}*gb99~u+TY?9YvsC zoN~M`Fz4xjB4s`^F8x)|{~FP@0tVK`6nf4N%twSSxCRJYeK4|x#Fw*Lw zxc_zPes%qyz>4~b5lqj1p0JRI{P`3n8l$Zjj=1LRfBFidzCi3Q#-|4xKK(6;YWSO| z8;C~}yKhW|H{Zy-X1y^wvi3#;GehQO9UemSKj_Jhbd@8Jc@reC9v&lFWrO|U?LF*(;O2wb{hW3JbO)*Oze zepX`ff3h9)xidtJ5`u8(u=@F&!iew(GgsLkH&Y71%m|11=%$f7WZX=$zEgrfVf3r6 z_n>&tKcCDbQY_ya0ci25jDCH!%+A}Kf<1p1wG6kv-Rs9Uz;l? zT0IY6NMjrdj7A*6;Xj7ex!?y;&YsM_EsDvre|$Wb>%VzVq>5ZTSMrEvIF`Fa060`k z+a&N<88lsmiHXJ$6lQ_>z6+j$&nLn`9#71A$sm;j3SK@2^ug zsV-j{YM+e*e!+=OVNB)=ZPv`>3$yp|owPn`S2}1DGOau6l$GB*_y!87NoLVPi$=UMkAg3h#G;PnSL?1 z0gcckz=5|e&VqchcQa{Z(>R-~@IK5Yf1s7dGg3LlsoC`gUNTs-8nb!mOlFZq>7%(? zmSU9VFf}`#^^t8NDL6kP>qJ=QR3JCn#pdCiwBN(gfHVmmOMkm#H1>P<0jUF0#bU+K zKc0`p?vBFVs-qd8z}#N~?nHQlleE7)a)0@i`^%J_g3rF0Ajho4v=wW%E^;YAe?Ddc zqOMSJ^TTz7jj<5XcPBsH1${(Ks49<8=o9pD6`j1KfXQU$HPO(zWD#cq3yZU{NGG3< z@La<2#ibvI!C=bVz=cVJLeVG|3q*U2v<11!=H)$~KfCuIyurZrbJLxvdVZ9)Ev~jY zY+KPxA(p7pHFo(omdzE0kaUU!e>nScPMfxCP^Lv&kH-=LR%vXZE^xGA=jIiy#@JsJ z1H5*iPD`5a&caVH*C4CeWMh9-0KeMliiUs~?1K4MnYf}f?{dJOn-A%twy<8dz@JP3 zGAA%DshDQNgGo_^g+S-!Shz#r6VABzZXA=r4%c{y)4DSJZG&}deRqjse^;+_>8kYl z44eVc8Ym{MLa{aaG=r=)zB60pG5)DUlJ$O1_@r(%-b==8Z7||x%MgWH;m%uuQM&EP zEXyWXq0t!IEpsDNbaT7&HTYr9(q*RDPT>atbnC{`$yREJam<@oyO?g@0CwaScCbc1 zpT7?3yMi4N9?Pz7)!~h`f3TBA2E&uLW?yTU!L>Ma032ct(?h!*8o?SbHS4$&nbNq#a;W2G@`=c*3C^0#l|DVwhX2NR>KA1V(xzz(^Gp z)vkBV!&YF_?#gQIf69=D{xB!<;u#%@J$t|YN{(r=h>%{hg&R3K>xYD{MbWY zv4O?3_278T0B#;9T+l`QI4Y!$$gOfsf8i=n0U~_ z!W}tl9e3_(C#DHK-Y{j_0PGcpTK?e%{6qOrv}ibmf38PPJPg8dyEDs@L&?X)hAv$= zzApP>S8$~E)ShWebuPPX562F0ICdxkv_uR!BVY2jREhp0PAdhu|ejbV_f2=^3pZl-WVbF|nW<0zbTIn3islQ(~{% zvi5+if7SsRyMpjA@I&YGNG$Aza8L)h;b4puLF0*s-5G2l?z_9sz0bwl?bbEbe-o!> z$}th88-hu&L~TPfODWKIA2Z*&iZ*Z+u?t)eflxTWNA@6`ov~{chf|+z(r~BYWaRW& zEJy3f#$5+TM5`9$t&T2s*lBh{FI9Tt{h2j|`4**XwQKJ>n4C zDx8VjM~ALlb)(blRXpeDmZupVyS1uR<(P=rje#wVmvPZ*yVGliqiLT^?5aGr#d|w0 zWb!|~zxu-EpbS^BOlU(WpC>T(3x4?CWSZ;=Puc6jnbg8rDY#8JDrWb>tsmcnPas-d ze_8HYd-t2So5W2viHG8OgJ#(#c${A|r5qKA%C;dGbSRFul5FA<400!tH)^9y zcvU$ndUrDri0{~nrK)Y7{e~dWp$Odyf5rJ{R?wJy-@p9i^x^+*Eg@AoDqeRpa7gNO zXhTNM)t1lH06OKNc-;yG{FiWu^6o#lVY?+$j*8da5Fipo-sl*6_fNOP%38!q^-w9U z6$<@d0HP;1jN0oLRrRPC-pv3a(GU#YP+K5s#?DL?4n$W{DE_|$L~)4te+s^Be{CZ5 zsEFOofFfDuE#2VTpxcH((V2L3zR`*H5ev5$F1P9{_ z<*YMDpubKL(iZw{$`J&5s>ei~e{Ki}DXPNDg5GOEs1cDM>`vZ81h9dz$j?y-uAo8C zI)YU7m^jl-K_J_*JEqpMg&N`rIv{5{N1CR**vLK7cSh}IOg$#nv?y&g;JXUs2UAqy zwO)HN)({jr9BW!&v9AejI!dmi-by2X6M-A*G0~xm(TFCLH z1t(!j|{G8EaDtZIDt(I}~pktm!}c z!L!eKQ8abiFjiGNCZ@F5e~j#Aiqx}2WB=LBTBc$xrlNKzrnE{)h5R6%Wo2wFA?=um z(hY$hz9$NrAlfZMs1XbyjrgL6U)V#S|dkNFK`K(K62sIParD2X|@F;RXZxObu++76-`UxJ1rPB z#Eo<)vb9ETBnC!K0z=6~*SP5He(H?|45IqMz-^5rUe%6@dfg0M61t)xtFqM^NzFKI zI~4U=qny>ZkHHiebjeL4m;1-x|JVDwKmFtH|C@7viCv$(f8H%90hEr4i`@)RlI$Kr zW7|afPBV-p{ZL$Njq+Fj_~?c%*LQs2k`sO9#xFR0bEDRiq$7C_1)AX{_^jH1y!vjvrla5cH>GxVITIi3^6U&6Fnv=tsrcZU#oF2H(?V zsl}*lf7=@6w=QqwrV+Bta=tTmBcz;lxrfpCU$L`mec!5nRE+LsK$9qS6q9Fh z4DCVOw?Bx}55?%#DE0Maatt?gqPT@0RX-{QcQfEemUvn33T<|ghFC_2VsLAe_Zqu5 zawH{(ZO>l($o=3&;Bs^3?|#Rzzu*2SbI%S^V#8t@f4NWY=oIfiI!|u)G&(ywYZ*-X zQ4zhHac7apD@fRHw#d~GNxf4ie%e>da4H9;~pp=YDNn@S8isG|8*=&QFJ#jxK;@$Y zX!-^C)ZU6MrOc+IqJK98nQTMq%1TTBZitn1e<=F5PGKoOxP3~oM0vN{*H{x$+(!Dz;gjcnfXNsPe?gnU zcY_hmsMF7#X&fZ4ERt+;?Wo}0)OS4}iY5IS1jR6PT9D}+6Fa&gAS3dYsAvl5`d*#R zEyz5dJAVH$2;ZILZq4Z&iVcl>)cpP^h#y;+=^PXBxhXKCN_b75EJZR~Bj_9Lv<^jfHjq#DC78|~JDleuGz=Glki(}9l~+5*M17W|Mu3mp z6ZwuHwHJak!q=?vhoU}rD93eb6UA_6AwG4~`kd!`V~hm%mq(7~sOLv_cCPvU;edkLT2`w!k=;QF~xI|{j5_dCz$ON@)iojACWd}iIUf?@ZDkvF)()e*cT z$UNUUS)+aMxn48`jNl2fd9k1-%_`}hkk>J`Gv6J`Md%~4zanPQ8ABz6b;YeGmlVeV%_*2}@W6Uj17)ih~auve#ai$e8K z=x|JEq_8&nU;W^DW$a8zg{ zE&KOr5W@r-hQXL!@_|i7i$eTS5uxR+27Jlhacx6LHuR37C?y`Ee<(_t#v3-wqujPr z7CY=1KY7%1ht6~qvkhtTNqGl+&rYK5&4~S+@1be8oXp9Zy?_CS??i*x1Pcf&cJ}9@ zUB}D4j@&W3HS9XeR(Y0iqo$!H*mZV_WxNBFb6Wm)Y_a-O6;wP`v z2tGx}vgJB`?Dd3Rf0wb0nDZc4WBLh`U@{hTeFvSGfkiOHF74fkm^i9nMuTW2YOEOg z<7PU-gE>Fy=YDo5H*$w@BBL^G%Zd7)mvOe7pM&s&fomU0y)r`AyAy-_Q}pPOKC67W z50Y5&TB2I)-vVvRwsjuuW*!Yx)=1Ck-A*o~=@)e&@=nwZ;-$-Le*dUg?nDn;6XgIi>d zj2a>}EzLsU$5N4AV~h9@I+MquOiL0@XV1w?Ih5 zR5Ri4f(4$J5zIBkw+R!WV7`1|qASf8H<2bk+n?BU?lyoyEElUr=f3 zrSl8Bnc~R4-fr&RiQEAf_{=aVHDR`~=0c`b;pIRO6HnyQdQvQy;swUMB+m0_Hq8?7 znVsF2&+QBKW8%&lK$2f7km?a3`QKiB&qWir?+v{^yHPDVD_2pWpi-AtakoQh&daLZ zvqYPoe6JX2Uo#RlN zC1a*L3F77F#RWRx#TfI}8|HqJxWiKhTRxL5r76@^^%62D1oAb zZ5t-DA{8Krx4_i+(F+G0yxj2%W+<5ygvJEvx4l2&hAfmu*2hB-(7f^o-TLr4x@u{GH4T|X47EyMt8T$!4;R&>x{u$VVjU;yBML^! zAu_uFua7U0*XJT{JRK#_$+W}qe_zT1ne~EH-P8qLl#@}ft}T~ZWNAr@Ex&*v5d-NH z8zFT6I`v4!9cmy<5Z1QD*6?6%R9Vb*)@02l^z77ewWhm+ddu%_wi3BgmTV=+e8aqb z4!s!e52BR8;0KM9(1C6*kDad&)!@m&Ex{OXT+)Ki1tGDyqUmH3gy~XEe|B6S8Oyzq z8_wZi0#(4qV~mmqE@=E9H_!r~>_`|q`vG#tB%k1pPr{Ru@)os45lpprk_j;x_Sd@! zpj%ezVi6a?5GFi423SGTE|S?vU^W^B&xw(mbTm3I6kEOSii#zvdarD^X~}=HzOc!V z>>#u5vp<3e=qLfue>O(XQt&!TB0X!%JQpP$yP?XvhEe!5UJN9S9#{! zDLNvu6W0We3qBb*WM)2@*)Grz{DnQBNuhS-v6}T^VaHcAh!-2WL`r2LE#NL~P?jxL zuhw}Xo~azokU~FT>Xp|-s$~(}>kPoMei2FD4NLXTCg#Evx(^dKe@-=?*U}~C6U5#C z+_INe82A$1!t>)ttYm4Z2ysL zYj6aT>|e5-N_pri+-9=gk-G{zq|CX^QtQ2jBvbpg!loCxe}ZVw&QNRF^y}O67kA`f z52hh@SADwBj*JT0%?yJ6lpOJFuZ|5pLad?8@VUU#6JbB>1IN)^nSzqmwQEIsO~HHk0WLRH)0 z^+g>wgd#{%f3I6UMN%aL|1+3Xv3j;I*U{pxWKTL;y-&EqNe|q)bZ$w$oX~?)g6Sun z`!L@VMZVE7K|$Qrs#7{jWaIdnFX1AZ-s32ORT{eF>L^uIUxk+Hz@qY13xkQ_ep=ka zmK><&>m91!fhEl#^hgh6;LrW*)Qw_xFoW}D*B#vBe{_ubliU#y7Fe_3cbVK8(iy_V6YSr~NbEEsoS0(yuk$%y9e^o?r%R4AYHmV^$oi8%<7N!i zMZuPjrV4FbVYmsD6?`?+WyF^GFAc(2y6FZq4{~CWBbz8%%s0d7M5~F ztoIjpNjo55n4)ytluJ7GWnN>1wj<% zOIK7)91Ulqo79~?q=Bpy{%o&QA^Igsi1V+Mk3xD@lFX_JdB!m!Lirn6gK5s^n!98( zv`pucsQ}GLSXMZgVg_)598(}xG3Lz2f8vZ>0-VTHEy^lwLf5opRs&}a-nU$uD4h3v zacNSL)1YKbE(A&f|0T+9Yo~Kc!sLDs7Pn&0=Znho*+VY`T{b{fjF84m8v1Mgp&5*(V?XzK_JFg&`=Z;X*G93yp1eI$5mMtNQum_T_?# z0?*4rucpLo+Px+4avem7Q9yXhyYjYip*^qc>QXo0UX|e05qVYcf8ThJx9`B_?BY!| zX9MfywTW|pVN!T2HKW0z%Z$Nc_{P2|+k%*j3po(B?!b5a8DE;f0U1K9F8_wP8!Md$<<3&T-hm2a)C_4e9H) z*|(icOGl-W^P}LL}BV(gg7n? zeU7iw7e$sdMEWnJV-qE_XU|U*$U$Gyz{JEWJ$$W$vtzCeJZ|yDe-sQAf*$6Ui{T5! zA2HOGek3mHk`Gaky4?<6$74~V`{jC6K|a`>AD;z>Ec)@;txV}mjN!+Z&bVF{4uk;1 zfdH}`ojaw*ao(%CWZn3YLfA`v zEp2adbcWQN2n#0@Id5*oc~^VXxYYfdDc=$}#p!tJ-yWQ@LnW*iE6?E&2%F_Npsy0) z^sF$n)!NE;Bwg-x>v+%(r>z%EF%bti52-K6BRh)BeS08(y{?BMQfA^7*(&xi$EVYTCI%Q?HYUvIYp%4SSKc`NLtRlcB~of5Wl}S(+v3rNUX*Jt(oWrwQjM0>>Gly04AZD}KjZ&o)_P9!6*7JGvHT3~Rys zxF$acY3zZWw8ykIQSQJN)&B zbwR^6>%?@S6V**v)cS=6Ea@YM3IA=UHp1QqNUF4UPZ?TQn^tGshv3*FhU)Fr`jiQr(vk>Co|ECA1n z#?FjF^g zqUM5@WpbkBEw37-2#%5x2^z2Vk}0r6iMY!l=ey7f=p{wJ4cr)EMsB+MW1E`Le+9oA zTNMu%M+eXNnQi!3EFG~A3$vxp_74gFRHS_>ZU2ytwJY{=%-6MT)!jL8n1U}laJ1xP z5WcCUXeQ9j^t7!jjdx*ocRHHTwHY=cr&;+;R{8}DVdQTG0+&7pw6mzxh63~!c2tgwEVHScFxhaCN*O+XG zii}L5`JH&W13%BDvO`Ef<|j@AK%)t9)fbHEg-Kc7@+L!*B+o02OXYXxR?rHS0sdlL zsK|u3P~^gnCTR~ljC-v)rM<|i_OK+Z$nHnk_BgJn$$+K`J=4I5l93(?f9t|)Ui9U9 zmIh9wSjPy2Tj?1ERHWK~K;XHKoFXq~61L(ajE}-U=&h3c3iB0|RYgm#ii$6$SaAWE zz{&w7KSc>?Bn;@yE^Z1#3`$llaFpK6k~%Vob#UnwtCT(=r6-tS60e5N)CHdBEEhK5 z>#?*^%s(sPIwedO+}^w@e~Gw~uN3)Tj#ocs!nLR(6Q-%uAzaS{yg;}ve!^yEj=o;G z0_0ru6-NW9c~@W&kg0Vngli2-EAp~k122oRzez3S9xpQY`F@8gGdl~F(#o;@_$@7Z znWefBi+*`68_;4_6!x~Xdc3}JuPE#x?$;`AZd|M=>}_JK{4}$Ge=7X|)vG!ZFk4Db zsuLFQ&9t<-<*FbU3Ib1?J-@cllKK;H{iuTF+Ene^Lb`@}p$4)6s!;iK>Z&uexaj%Ug6*{M>&!Oq<56jJ~0B%ui-jRCR~T(SGy=t*+ulQ}`k z!FWqtw*MsBl7uk4?kC@QFA3U`%4-Es2#8?rfquXK&SIzPlEWYd3jb6}3;})T+c+U`2T|*BC{rqsKb7N3zd=xj9Lc$7XE+Zi&}n!-adA&> z!Fji6O1wd!8v1sPsK7z16S&6fC3E=@KGFS&9#&|LO;RaZYahx3887r9w~bG~SDs#& zI&m1W>5WOy6WS!Hv4DIDn;cejvY;g`G2Zqi>9j*M(B}yeLv8mf^HqZeI)>Eyt*`Vu ze<>BmEQD2EM*U8ihRR6wKqj`-4V-f`X)h|OycrCJ_Q^GxwXHlJA;Nh*THP%cq#7s< zjl5gTKBKEGiRoyYma<^)XIGPtbJUz4G(YmWCHjuB3Zyh-lf*rDHIOUpFcNJ8&6J}J z01%X?kH3W&D2Tf4Wt;_#8*OrdxeqLh>i6thK-<;8}DeafaFUcd71Q@okhyd)MP)f7bK zn>gQ_)EAMyS_?al5DmlMCxDcB!~bcI9-Iu`Nd!6Ma7nxD-+uTd`;FAE{Oxw5e>PES zf`Lumq^?00H@8=l^?c2jN-PUsr+J1HO}0?|s9KYsoP*xhNJfrq9;zz>@@ePI$t7t; za*Z|)%SEj~7?H-baU8*DLr2^?!gBJH%6`za1ye>KbBNdh}edKIf^7K!SWJzXuwA54)UN3nRD`PH|}3>~Ec)hMKg=ib{Og{<9A zrhZ(`>*@hp$i9J4=$w%NXh4_0I#zsQLAm{^pN2L}+PT{&)L)e}hc(*QJ##1Phkr9b zx$#hE%STcdu%AEP4$Cyj(}&)4k9>iKy47#`S9^0%CM?ggK0byA+(FDdGd??0Elg%X zZ?|eZ*AnmP1F3OAKXfWJy#3us#)c0ws7_!bj-V5lqmYNSvPq8 z@x=>OFKAj@zr_FgL`&G`Avi(au8 zPL#)~=REXzLztI`X0v576_~?4O8%G^cwrL7#G2HVx2Rf@WH6&%Ik1gMOv}7CJwLRO z<*mnuml4Y2*+e&Za2uHzKgZq;&XT$jYh@TaTi1j%@It=2Fs{Ijy}q5VV1KhmE1-A3 zyituUX1du$lsScH-$K&)Un7zFkt-&R#vVquof4?nqdP0ocyNGDYdN{?#=%3Y7J_BX ztmBli7bVe&i92qi+tp5Z0G&2OQ9mn=9;Hs}yM^PsmR6AB-o-%&eC-c$^lonECv{v? z1E;bFL*XoR@T$8fj;Yf+S$`a+0qW3opVN;5gFegx9Z{$CUBm{Ks1A413p7Zlg@e{| zOShx8z|oDD9YVpN)BX_=B>(>Le_H>m7kqb79iZ^+6Ib2M66_smV$3{#TRQBo-ckD9 zfPTG6=(%p@_?i~sds*(dv`thW6t2oG-7UkXXVPf^Q+gE5b`XV`T7Qv-t^CwaJf|RX zwHo8F_{_|90#?e1j&WdfZY#TA9@l#?k08{uVK-(8v*N< zq#MibFxHTT?*+OA(Yo5_&76&Vv_tvZgcRPpK}9uD*Qy?^)mPfBuSg4SE!4~Wum<+b zCczO&hrJ_A$|~&A@>{4LsC{9@DMZgcw+KMwXG~Ef0iWxRb$?|%U><-Leg>f=e=1HK z8%{I&Df9Cv2ew2xFw|OHerg?ckvMs=?Uy~fM$li|B;_xU5iZzvul(wUQQjb|b&e=c zT7q%8K!nkn6w;fF;1(j0vFKepnqFZoXr-w+nyizCuXW-uqL+9AVWWM=G$!$-FGv6S z=l{{3Ff)#P#(&C-Ay0Gsae@F}gwdaU?)A=!85`gDuYdmEqmA)*ZIE0lebIh4)1w+Y zqdo?zJ*V(2Z;#o=vsi8Y4Q;pYvT$su+g1Ag^Ov0_Yi4IqpmndwBp8$URDHHhOkn=p z2w~wQNO%5`RHmGa*3-%L1a);Mh_qhKq&+3?rU{Ca+<&e3FZ%ZxbyPo>CVKdx(Y7x7 zTjg2Bp_RZR%Rcm1QiYX>)|YiziP-7|$xA`I=Bv@$@2J}c;bf2pZ}>mdVT#l6umQS{ zIo8(lf{43TZ+Tm8$HgIz!ZSc}EmnROYa8ZXn6Z4L4L7Q7R2q1W|IxKzoo75wGA$pQPQWSl$`-p$F^p8^OLeDB3gE_ z!qrd9jcCPVEw|Hjy3|>&;nYm~EVmPTuHyt9l7Eufyp-+wRvCxj#Ut(REx=Mf%1`lL z@hVmc|6iE&3c-1}dF~~}(z7qSg7G?88+dB(-p`VN-;9&9PeW0uV6^&($9>q{O-V2J zOgqd1$8-E7B<8$E>308|ZC-+O|Dssh8hkz+*BIBJpSd!$1Ix!ksF2OK!_3QKYLcUk zX@5vu{vbowUiO^vFG%-px(h;(O!@{UwK)R6{oM>Csis3oMg0y0KP zdFUp|O~&q&kV0H9FfTC43Pds_-mJfe$vb4G@)UN|nnopSqTG{|B}7HgJ`Z{%ibcu@N3o?l{D^?Fl!}`226@O~`7FsSHQ^p`@8Y?$hnRO5~v?dHuq1J)n zuN8FDqeNRlwwZ(2absexW_wWHaCI{sznPH42o$-wH&aofurSKzUYj<1s2ebOyN8t+ zk1|NM6lkjvN7V{Y+G&d>zF65b@jV{6Ob1ViCG-~5POy>g>8d2OVUkQyet%1v!GD`T zvSt~nwS!Uf7ciJM*Da~Y_@GtA2oIGArQc02HS7VEANzj@*}O0ZvVH=(SyKPLSXeUJ z$aj&tz(=dwr5oqfFnFY|-^^~_BVtKN4r=Vwi?3SHl#ROhNt zXFUuYCPGQ4>4xwA`uacq<4w_X?&2$_(e_9XL)tFlr@o7h3`l+qVUbXvjFdQm?1n*n z(Une5w`b$`bV^m-pz;+-hj}+!%`dqi+b#(0y+GP@z_z{LipU?q7|mbD1%KX-O1qtO zq>_J9yY%e7eN<}g$-O&8=ZO(Cvdo@?+T9XztPwRPOltO8F5v`$Y8yx}ba!61TABst z+|BI!XE*c3a`h@fgC24UQ?@f+nXZAnv5VNl@u5lk! zNkq{jTV1W?-EkaX-&%zlr1Ux&k6#nor&~q|TGVLTrydl|yk`7)s(-_MJHD_W4>CW9 z`&i4j1g=>#)GO5OB~jC;pEtU_R?>b}0=9>g3}LE64OY;#HG^eR=!I)u>SJPaYL+3( za|7SkYbF%6P@Pt(}dD(w|Xe-(cvJRJ=X}8&8rf4vFl`^W($9? zRWT0|2C*zJdiiZs27fsX))|vL8zY05H&*Y?ItXtFEjZz!jkH8K-1nC1S5U$aBO4WS z^9LS#N1T1PFK)lxT6Y|i_i=2d$nyRn0dzzSoTYJL-|1zf0rJ})(xlh(daN9+k??Y4 zo%xsKPYZwAeal)nsFj<>dH{PL`NWie9)%_>0+K&Ll@z-iC4WZV*{)t|j~OE8SlV*; z5{R)Y6O!1Z^+TkV(%_?{Hm3H9#!{po=iJUA)%m__mJOSMl)WZ(JXws^^-=6p#0jG4&&#& zlCdl}_AEEjGJlEs2)X0Svr1A?HKT761fSF*@Vu|&c;AbOTF&F=FLnv!pf6;5d*?H` zPn?W{N^@xc;Cvkr?WEW6Z1v&&P~pVbpr3>Z>>`a_6gGcYO~Htmc9bw7DtXw5*ixrt zp*BkC2PCJzisDkC-dhHwv>!Vpsq6a4LnkB`xUI>DB!2=sI;+xP-hDDSlPpP{M9)W# z%REg>8nx0RBr5c+GN-*O$jub%?iCF(rXCsXFkQ(c&ru#Hb11=@B9TQVU=<&6v21&# z)LCycrj85*Dv&@dk?}!;Dn`TWG|A&uo45#8saBr@+(97ADSAPrjsDbKQQL}H9&~8tz7QChS3cr7rAzp8ZWMd-Isu&3QR~`T%|3so6w*T(q zRaQ;75T1s`YC$q2S4o@Z6F*E=x-LpLo~IFNAgN!BK3&a7gAqg0?P!9qpSv|efDjX; zeP*ZiU?5|~v(S3Iv93q!0%d$Qdc9b0W|Ip!2OPOO6b0_y$J+8$<6*u-CJ&sU!09z5wY>I z5|yeb87<%c9m&MVv4y<+Fk8%4BxavVBNP%47m<}q;$=vHKb5H$s5dy>AkLpg8%+>Z z|9_(t-Ak5oF@xx3DFM6@6#gN{{F-Cv51YsPt%WhTrR`f<@^2W&QGoveG_||qR^6D24TqZb0=CVzCWcx4PyX@8tmAto)l0hGiZFSL;O)vGVY zeGC#bA!F>lDt`rr zo{VzmKFO^hzN37cENn{&KeN#j70dt3AwI?Tvh_k#v?C3+m%AHZYJ=P%fP+9M>J~7( z%wU2tA6KDkC#juxK5DDDc)a)$s4CckzU>{Ie- z)u&=+m%wrS)Ozq!TxA#AV>Ku%VSjMq{9=k$;-Xny1R%`Sa(P*-$X+Mb(eIzt{4H$l zPulUl(`o#Igb~sx!hXH6{G{-lvX}Q;J%0|X9jL4sqM;*m%y5tLpcB|~EUR>LJ!GgT z3xwGdB)z}F!^g9G@nJXd<1p{lGvTCaL6BhhdhK7&ARjNVJf`2B6!@QQ3 zsPVp`N(3!GVHUS`;M!j7^{Hi~5m!Q6s&9G!xB&C%g>=W-VJC=4Ttj{tppf=6F0BZm zG|DheG{0O=-Mn0qDzL2h11)5$zf1mdiBj(lFD*NsR^?IjXXwxxzCW2x?}+snW?}s? z`BTayQD;HFx9t-s$$%WyLw{CdV7$9$p170%WSY%sxwBj7JE(pFc~8U45wYK39wlI4yx0?+)k!I?ey=|-|_vk$=znjP{#G_a$9+J*psLsyjkAt_SKbK@OIc| zQ7>qIF?+S!ciF>#+2vuZqDt~_&HEYHZboA};pe;+rH?J&cI><(a(hqj=MID>i#6qW zPl{_Ka9t-vdNB4yi+{V8+M2fWtvMsrD-_N0pU76+A#S&~Ys4&W{%}FdG1a6m6%6J_ zBuJ$`CWMumQ|+MpMOOA|!l@ERR&3QPCqTBx?u@k3(t~Tgk7}mU{y3{*W*yI_-PIoJ zjysw&GC;q%JWF)Lipi6FABzWAM8(DUzl_*L69+Nc85Tt!w|~qr$KGM*>T9)zaARLW2pm4@&5mY3DV zK;z9OoYy~4p?~qUO)>=qi|j=`OCvu3;15w|`c)Ja%L0aZp&% zHCzkPMrE(=@9K7WtFWw?-Tmz@GmwK0VEJjU9<17Q4mR>O(Pw6-dgu3U!NFt%Petjq zhpJ2z_G};7>mz9$!NVP@^FtqweW`UU-|sHsfUUuHM1MQ2V4t*gw0Fpp#Cd20-+EA* zx3Y(B*Gb?$B!1s%E2pGw8OJxYYgwD!*)FLdcxGLe~a=dgn#%nZid z@1NBi{$If+-o0)?ubqtYWgMiagoT~?VL(C*Btxfb5&I`?z*NO;9CJ!! z+Z?Dsfq!L}R^;h$DnMr8LnKM;Y(TeKF#?M`v$ zEp0Vv#@Abfd+Jx^3CmRw#_-^uXnlh{;{bM7+lc>BjX~iUd(RP_YJGz}r*)!)?wbS4 z)oisEx>TkBJE!vPZi^S-*RQs|!Pm(Tz4LULrW~V`vvjRq&@vjTChuPdM zXn)iiNqQ#T)1_o*jWBAOv*@KjQXha|NomL%(Cy}Ky+K3f&dD?jTcCtpJ2HJ6LvS5pasLCndgTC; zs9&l%vX~OLh&sgn(WPjsUAvDrlfmQRx-5IH?$&MMto|Nc`sRM1dXUXl(-q9m>Q1VC zB0GXG$kN>DQ=CL);={6c2a60cn1A|qf>bx!_x7PA*-k!@W2K4jyL(9LvBH<;1H>!J z2sLB-#4tV}Cz*Ft-LdpQ!p1C8Ov&GUC&ClKht~6N6L6=TQw|rNmnBx85(M|hg-sLRqncB zTgrubk~L57(#7TT^was@r}*Z_$@TZoh?|_-LlozvS&SaB6w6*`ta-Go>PoAL)~_h| zennHw8v+RH!BZSjJ)c~|q7Ad|{NoJW=V8~qc+ummck`k|%0i#uS&b!FK%C~mlia%M z?Yn47Mh@RSPIy)ly{#HYv!J7P#+s8|J?Q%-eS)!#Bm& z^u6;wJU{PUu*kKexUdrKBz)jAybdmfZ12TJb=7B!i@p}5_IxN-vw!U{4Wnp>NV>K~YoQf?F{#0=p3gh>+eK>{d6lnMJuoiwJ^r_aM`vlty z#)4d$#G#9BGT~Q90i)wLG(gt_*gi6CSY|p@=V=S8?jFUyyFtltJT+m0V+eC}Bpg^g z&9NfCu*yEkXe!)4U4NT$7+XOcCYo8vPvR)IgKZS*a8C+aX_r<=LAua9?yE}}3bur0 zuNt$1s)4zl6Z=8)j9#IK%Y5-6Rn>M;$&4~EP~;pj67&=^R8@1yqvAvvJ7><>=+Day ziQwY#Twl;A=0@A|;se;_)$3U#g`w`YlOo-<@cXpM9z+}`a({ieJEy#@~&y<<0Hh3x9I6yqH~|k6h>d934my1{ZiE^4A`d^Mb^QQ`9u=h9=tN6pcz~b`ro< zjX2a))5YJlh1;I~t-5gqVfI(|z!?YuM9kqDEZ>8ELFgn&=@n1(W8m<+QL>s|%{ORk zbGMqEk3L7i%h9`c#miChm%qIn%{EhWRHYhi5~Q)`SbyaXR6Q^QN~|U3_j)nCzPmt# z@9gtth8k69rq_c{oGf!vC&-8M$&qJdw(fk_Y2MO1xHIx#eHCIDkSKXj1JmO^JmFbE z5#^2s8(nnjNnDo%C{%t1O;YVg!Pb++Oub*OP+fCPaR#ZgsZnGrq)4(#jj7v8`p6H=RH0IRQ1&GWEbz<_^a&@pQr28S$ z4}Z;v`N7j>-Yl2@0PU%x|1l+C*g+VVyh)xYuW3i6lciP%I%EkL{CSEAzMbZRu5TBq zLvdbL)aI7JwTut-3ROuZY8p*0Qg2*?(S=LAT{rn37&5Evb-K3WM%2<^rYJKPIei*F z_B}uHR&oPu9R7 zUFLw+Rbt#USXVvGy6T>d%H;~j0NW_q;b<_cQuAyR2m4u)LmL`wi)z>K>amzz(dr7uo7Y6+!1fG2XEDz%xK>+*^{cQ7TU{D0|f zR{Zw*&u?D;xzI>WXC@GsD6KwOPv`RoONggp%nan7G%K#mbU7Oj%0g`|2U-@3WLksy zvB}An*lG>ExSqR+8IRMsptSD7&cp;`2)SJ*MdHaQD(WHJ|`cbhM( z=p?@o8wtsvWx@>i{S|Z;iMp)!Rex1EAD161)(oxC5!Js0)^y^`&7Dxg3HkystjV9J zyz%W|&A>t6agioH&Y>-VYgkjgLRnOz=80iVvydhLR6cQ3oN7M90YJk%E47?LQiQH> zU7F-hE65Uaf=Z#c?2y!cln!?F3MHsy7JLALex1-1m7J3>$vae08p@zbVSibTF!=rs z2u+D6)&Na?4Vrpqqj#@=%!PGJ!%GHeO0lh(t^LG_{2WHU14GlqcFK}fQ89Ax4$cSS z><6m&h~_D9LJ%iDrNZ(SZu|M~%$5Isf_6EiF3R>W*QjHLCH43r6n0sWUMo}82WD{l z&|Z?7-^VO=;K#U{p?-`!;(zt%(;Ssu-oqHLRNT4S%&+IalX5#^Mg*d;FooIT<9xMT z+{_llHDY)r!Sy#2V3;qX$;Zk3ntM)G%exO(l6UW=D)%Jg@4;~W55N5FxApwy;S9Rob)=j9I_^;GD%qhEN6lOJraTn^1F#-h;Qa7ayYyX5ogkU}l%abkIS5AAAf) z_;j*Dq#1-c7}nr(eSgRUiu>H>i+kKGKmYpHXz^)~bWg5p2zP1{Gc!sBL=GxKb~Lb@ zjb0x)sGw5ini#1;xXD#BE6FDRdX!q4^c)zI9<|i6dO>Om&K4{RgTx0Tij|_;Z44H} zhaYB(8EKu1%Nzr)R?C&yEX57;Pevki?%68r!boI$MG*vchkw4qE5fnozcC|`=lTvx zZ)=7QBTU>9xMn0$uTYx?|A|o3s1ZJ}Ly`fcnh-HV=`i(DKM~Gu0j2FA&td!_7KX|t zsZv6=C8$?UfJR@Z-N(wT5M?a&K=1?|;9^>fy;`egxLBr+=M(=Oy_v4n0qs7-WNonf z1e)E)*Ri|IXMfx>#m<+r5w|Zwk3x~(TFCdObAy$LnwiY}?!{gnI5`PMl^{1t_&Ql$ zsv)X@hc5NR|67v@8R}_dTT3aW;a-q?{Cd%sAZB|EiHO(V!07i<|5;3jn0IALH@uj( zq1WF*U)}HkGFSB52Y&K)xn9p{ge<&QqR=xOSnuA5Fn`*L7e>$N@7|ehZL2`@93lie z5slhA^UvJ&^3q-!1`%^UH(>R4rCTQ@!b0A?X(K}S2N9aQ*i1gRy`+2b8g$SnR5ib# zwxR6?ha?cF%1iSgPkc>2=$L__D*im(4d0II&2tJTk3wSMmn5i8A(g;23A!bHbqYz; z9Ehrfe1BoaugHdckDrlM;R@5Pv0vL0M>lGj6;|2wzWtf*a*`cS#q?>_&o7ibsBwDdUFG@Y%&uL`U)(fgK>s!WV+K-YKRJ}scfwT@! zyp769SMv{7C&Ss7*UO2{XDkTK*jf_o)FXV*_J6Z7aBRXzl9cp(x6GrQlqF#zkwAxL ztZrL?rCS8LH_mLyKQ@Cogxe9*E-~@K$U_pCB;=*-%#}PPBuU3{LS^t~e0jH^P;7EN z-+a-ZVjFf}lu8_`#y6Yi1tBW=UYY%BjcFo%T7Qc?t8T=#n89;{psUFR+?`rx(uK)J zu76OCzh8W^={Q>{fl`vOK_qX0L;1-^Ym|{hoxal=o0G;54jI$s>H-P8boG~rK4Uoo zi{)ZQw#NE*>3>Bp z+sR-OOf|zdIyM4)WF%(twE4@-LVx%=jk-2EgJwRp$V$S?O_6jSc&Y(jg@arV$x!EEJb{rSWUv=^Y|S{enGlk1udW2M-ZSU? zn>LB=aSY!_<{ey%@2nB%RF-=1?&>Duam2v+IU+OfV@1b(%8^@^=f-8CMSpbKq3!xs zPMwNdM9dEdu?M6BPrX79Jj;gZxVAS`(K(NtsqZ6O3y8E(-DR*;5!ARJqOp|Svw#7NbTI! zWLr<`hnTGdzV*3^)p`YcW`8vU{VuT*WVyV|^DJ%|Gt0Wx`OA-wp95eKqgc7b^|YgSqWKuOSKG*DZKAGk9dmsSzGr&jZoi0w9Pxhu0Fw0y9f;8-Bd)AU z6uBtpyd3_y0|IzR+^sD>L(3fV4{@#KKmD4%F=u>?I{-X^759$T?_u6%RMrFI-zz~F zpuY!lfDKg5U^E1>hkpUOgE^=zuk1}9;k&laDywgG;?i?7$*`{+vj)hn-cBJq|LK^J zy}>fPo_|=tYYwaM>;vl5kGdgD-zvkVT=@{lI-9O^u^Cj-_WX9;qFN zZ3f?aoXGk4T-&t9k=D;`LU10lEv@h&jOqHRT^mrVUGg4jH-A`-*qXoYnOk*=c8_DY zI?)Rng^8C0C|#|IUn@!MB3CUYsyvmUk$UCiO_K1(YdeghqfINGAtqCLZYVJhwi9^( zmOA-DCk|rg>m#2qi8fJiH)LccZRq8&YU`y)-PDe=EFeJ=m3v?1zsJd$46Zd1wuZ5E z2A0Von@`Ov(tl_cq$-ePyd7qJwGmfr!|tm<2zv} z=XjFMtV&e*$W*VKJed2n<;ZMyFPkBUofT+9RcQWsbXY6nl2#I|Acsn&$4Nhd<{C+8 z1`l0^E;DWYH1Sf)*1&=1+UU=&b+9tw1j(L_UM)Y((BbYSOM9g|*ML=4Jfk(9 z@%!>qM?b47L3T4#hew@mn{v3j-^9@;1p|Cx13Jkm7eMxxfznKc1=~UT0o^EnYK1 zl&EP8z><;%TKB;q0I+Kkca{eM?lg3@#Vh;5MZ#l zm#1P92*y5FyQVuSB1yGknCavdaa8)wLvq7DbTSLhN0+t(YqlcA{M@pOEZ5-qqv761 zvnm<@sab<+o-`(pK6JM;rB7B~K`zIp=nA`;EH-OnBSZ5Jb@C$e& zf-tS@y^{X6pAhGuzDJ-cnHP_B5lCMd8X-=*Wb6?r`G>)4dAzaktifI*s(9pR<1ueX z^>n}rbbY_mpnZTArIPl?IimBcgF_AWpXi@@t*j{ttcmZtXE|8p?7f_SLeS!B{`t4f z3OYCPDb3wi%|gp_oUjP3KH1Z%6n}cFP)N+-0fm-%epZ=>PDp*ql5Mw-P(J8XD#_aW z=(@h?#k`eRVn>YnRWT1Po}hggf%@H}IVlXhb^GfSMGua+AWaejXDa&$W%{oBYo^M5aQNYdPE zXybkN0o-V=aUYDITQ5iWfBVIYUR>{@yL1sJ_HbBu6bWP&lYwu+7}I5qIjR=Ev#o)f zPL;(n&(bO5pmbegJU)%Xpiwp(Z4Kt__ULtJFDrA)i#2~qpJU zP%U?+jd^1{=}pT1kd*gMC4c5gZ$i-)a-cv!HykB)5=5z9li)E5E%W@W+>0$g(DFolh<|v(@*{9NHP={Cd8?*qo3C0Fi&Zy}QN_ z6Ex*yZi2s0@eD0wNq;J+vfsFEXr*+e|K(~%rg<~@`*QUvL2Ngas`IMDRI-{+uE|fd zy_E6h>H7O;>^9o;`#t?r!GMJuWHc`R994#IX4&$3iK$GcQv}D*8PK2KT}>`9lC)%_ zUH>j-u%$bl06FKlbAu4-eRY!DPCm@YvrJZy`|9fy#&(RloPU~~)OI156D=Ak$($%9 z!H_j)Jm)liWe?_~dSgq)=5ft*Ax1+E2|hqF$%e3cEuclxYsmAKO$(~h=f^)^Pd3En z+`mmPjWRP+nbc!KDJAWsb0Rl$(F$=(QZfiHK`D0P4X;sIy+WzXf1=CEc;Hq^=H^>G z;d0a*+P;4Rj*L$VtxFmMSv<5eY9=ZKr0eFrp!I}oRm3ZaWC25 z{uW0j5`T!-Do4%t&*XlE)fprIdb}=%=2g}UxRc&fZM<_30v^C`yXO+_>%-mi^IiQp z8`$S$I{ZFGg!1l69;!EnJW@tPga&qj=0RPJyIDjif1XPDZzm!&%(F0wlRo~7ErILs zNRXahVep9k)Ci9xxvnB43U~OXQ;>UQ*(RWxL4U4>qy7&KM^DQMt{o)msbxl%sH0t= z5rC#V`mPlLSyEl1O0rc5^p;8PLG4E6^b(TVhB3*i!tu3I@AgMxBSy5K691Fab zC}|G(Zri|Fi_z>q@8(dbNj?Wn{2<936Hx~JT;*L!(K-lVP&SHf4?tY}$V5O9(F-`b zQh$FW`n&Xt7DsZXd`xW0rvtF%01R^*Muwy#6#iR20IjshK%zdb;z0sif)hp);7K2V zwyg>gvDef{bvJX;65ScGou$|ZAEullDM)Y%0}9l%@^k>+&aSWJuuuv{#>2HA_FSXd z!j=ku_Ar0jXhU2^nI;`PlzVZ!oGh!ffPam)F)Oz%cMEs+IsnB7ANZh>jR2=%8dxGX zb2Yy}hNp4_N@u&l!ghEnJ_ZAe;30`1Y{%59DYKuck!sz8tn_xX)|qkfcjL$sq2L4V^- z$y~k}XTRo&PVpA<_V)t_lex?U@|Vrar*10q>N!4~Zpaf?&pJCu9S4;v`ie>vx%IXO z<6feYF)y)cTW9f^L&{mMmKS%(^41AEkQQWZDg*EO?)G-M+KgzLH}U=se5E14vB zU4Gj?_}gAzjuyybU#};tFT~o6+;3rLp5o)wJPohWl=KgkzWbh}g~JftmK9DBih96t z;fcu3j5UT5cEBC2(*}-jSQzo4)38@J46?!SGSq~9EW+<))jrmshC@9A@qfin2jR~~ z5UB}o$s4yBKWX7q!oI)$0f>x>;gwhv!a1eu+X+7=gc;h;gR+PVUap|MFadv_zW5t5 zLp!-2m6=w((`bs@5|}9`k{?;ULXTI8nnrN+a9X%jMWhCY%n-znZ8wTiP2F~oj27h{ zNf)oQHI))FfK;!X0FAy*(|@vSWxka}+FDsa?{=Ye*=z>;>J_?H5|}meb8B40_}%hm zMnRV-qC;Aw&!JV`pr6!cv{-J?MZB^kQ>QwLwkS z3&NarLTfrRRBI9n^+v9f>eVQs&`mSi*S=zJ9xWs|UJ?Q76-qKGw13D*vi|xJEiPQI zafLuXNk1C9XYG+vX_&h)i^wsnBXvcJf&Fr_M%B?u#v($JIyXjKO;|2ahU$9$ zeg!3f)v~%l5v(=2{D1KaR01&Nn#4?yP^Zo8h6J;a-dj`?f%yd0Vn;WVFC+4o`6a4a zEjD=HHUb8*e?s*cZRXf3&?iRdvW<6ct|l8=ZVDqh8~u!WS_qH9l?y&HXg4U8MSs4T zEx0x_^P>iZ!9)w9st<=>zWPb>~qQ?RINnVFA@ZxQ( z)&A>XX4FJgoHfuWm2usSN%0GKt!9g9O=wW&Hh+Muq-o)y-qH17>jlM=Ee6{QZ9>V3 z!zAR5e$Ai67s*=%i{VQ*Fuq-ku=-r}RX#?zMBA^8hj;0ft_A@;)CjdAT8gn+)|S$9 z%7PzjSrHS)7=O2olFI7dqLAF(1{${hMBCaDGVAvXkwSp9@&&j$=c_@iBUTIb=C0_O zhstn>#bfM5isIooyM{bnfNMU|7(IqW+Ux{O>GIGJ#fqo|7rOcoqrhIe=|M)YyCQm! z&$nrvZ45(pJq=g9zQdMpVx5Bw@o9}NKV2B>6hX+ht$$I|s!*FswQn|KBER*U+g^$fqYhK?;UmK0+ElMG5dIffDURL_sNGp9mr+_o7hKR&?!~ zMG5fd=~{g|_6eY}qRjn1p+Z{%*HD>yg&yA$HI2%NWS`ifn87P%TPFxs*=u4`sK_%w zerA#(=YK^-o}3NvYXwo%nJD%J!Cv&{p>q`KiIh~skJz0<0Z-4q&?H*TtKt@+k47up zqS$0Rq$z5UXx`&%*VEJK53td%`RZ4wmn?a8> zQ-^w`>#l!CGHtab2iEF)$va3Y><3feD4&sXRorZ~{}!6bYHAkEtA0Ml%*Q zxPO_&CDORndUWs6@NEP!N@AR+g@S^0X1w@!gUb4qrF=U2-Zk$ z^M*C0Tsl<5*V)~b*nKnhRC}Ff-%_|5X_%bO!nD2~J%7g%EJx0nZ6ieEM^aJ|0Sqt2 zt@vGCg&r1Mx*^SE_kz^+{9MCtZUMr_WtG-SR53K7@e{H>Y$e*cyi3YR7?qQc!GE{+ z^aN3WTa^@khi}uIa8ld*dYdavo+PtlZva2G7wD+n(9}7U?KD1Z!ay8W?m9*sTnOEK zON-KJ@~So_T2-W~sVInkj3ND3*I3Lgu8uJj)S9^X-{;DB1lvC8;#?QsZbM*Dp^JM( z?xJ?RZvWTNH`B!>ekM4IpeeR-HhX< z_@8aY#r&GxKq@uVetf^&Ab_j(^NKnT)i+?Nm2a%CF2r-w>)B*QL=Tk=yif%Gi9?B2 ztt=w|CFZ6Q)6w)3x5$#bSM|d!fopP3y+ZMzL`@-on(VrKeB!n)F~v+~JAcP|?^}0r zXdNMC(?S>@eR{mOr}AAPEY!94;w;ZR+In2p+qB(5;hnm|vW-H$vdh}5jVsVJ{fQxJ zxedJyH`F<(8-vYESDm8L8Ll9V0a>Co7XlTA<3CPrZvTCB^RfpwhKSq_A{zdC!rVxu zPw&+*yG1Xrm+*ipBmst^1b;I>K-*Gj6?)BEI!rUqEqj#_>oIK-Xf_l}9&I%J$hGSFe%GoDfvlEm7ic-%$GNA9g13C5DSniD zfM7<+ak=`gd~22*I)63UcqPHmi??bYz?L$v=Ed?3rPOph)j0}zP5XbWKdN@!!n1N( zp;LwjWrA=+>f*0#@Wyr4ete)4qDGlLPKX*KbS=Sfdrb{Rx0|CS4+4iVokQw8L29#9 z*uCilsnMC9AO@YnIKxUS*CbhOFkSOAZ!vvy)doQ=?6R`bHGd9;C{5>!kthc^Uusm@ zc{KgVwYMzd=S!phgiYDQjgNjDsOg#hfA+qt$#Gjt^RFoKq1&FYtGF-OQyIb4c7$)= zin{LUM~6~kX6lwo%BGm*syi|NeGb4y00@%crX>>(cBLdr1P_37zVn?0gCnza{FSsk z^d}gzs(}iX3x7A*ZOSQeksUTdyV!;m*!X_MjZ%s`t|Gx@6H6M(aF<#P(Obsl;jjG0 z{Wtxf#8w=Cn9Um$x~O?kzl>@D`9VhLpTGPO{0V*^b(GyWnbvmiG&+slq^Fv?s)K7+ z+pu}&Xo^JZSr$+Kj3?UW%pH{#F{;o7JPLi3;YKwx zY;-1P!3`o|LmDg=ma&hR$71;bx2(-w#?DrY{p zqkm!D6xwSr`8z1brrbkK`+e|e#Kbk)7wr}5)M8XIB61EMtw*HVDfS3*65ljvk`XXE z%#J|oTa1A5wOgJkEJUC*$36yt%ZKGE+ox=uWX<5W)*TJFtx)cy;Tnjs~z3!HXRJksk1om &^RQD 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 lEm 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 delta 78253 zcmV)4K+3Qe=pGg5E$6LNwnn8wAJSBb~iz9 zlWy9idyBpVv_#8HC{iV<*v_xNLppXoHq?dzquvW7K}6f~XvjI|%y9VQ!Kz|=*F-8R zc-Bkees7QPToja-S?`bY!)V&uQyTLEGr>vLTNBkgc>C=)KmJY_*6<;aX8i%;z*GA4J|%gzG2111;cAl2LvIH^s6fdUxC9a%t@?nXz;G@`)(mn?J5J zksPxga@Yt?>cU1P=6Z=Gi7D5F#kr^u;ZdWIf4z?2x~2@~($D&I+>P}QJ&aUwg$j`? zRAHW?)k0ScmFzQ-nyg}2HGU5<*bn&-w1PFdH6ZI%q@Wnt!DJBEymT#uGzn>id$E?R zipxmLCXYGMC>Qk_0yfqwy*2uI3wJOKX|LOB(>A9K({7AN#;sONLR#UTIuiw@5G5lv ze|{Uu4*t#zw7nU;dy^i*&%-!@fr6^MQ3jzeW&+DX!B{h!>4hY?P;tG0&zgZZgAcV( zno*_Sq~rJItuU1I;i881Z2tcaSM?7HXCF5IaD9_)#u`;-?+$;v{OQ+^v(N88H0kQ| z{Lksl>F4qO*-WiJ$z^oIf(e6U_LV4lR*d_N1vLAlW#zUinfa>lRCeif!ni|=7h|8)m?ex90i z&T)}$w2&0PKu%19qViXuXvZRc4xI+&+jbj4j*=DVHfmIzvT*`}R0>*v#7p`Je|~PS zBM=o4hu<1Y9StMBAd#XB^ldb27$Z6o^Jx27zXuLV5AIM)+9GYzk-RVr1n8;O92}_V zM!A;^Ry6W++I~=KcdwEe6J^ZBjIiiZ5YY8p5pEX>ERY2Chp3+#PKaibGDb1i5o9Eb zh|!tEaved25}9PBWS$Qg^!a#Gf6ZW(gS^}&C%Yl5h+XMN7vN@iwjkGpfuCf|uPI1k z>*2g9a8!sTX9Cp7*7WC5Y}z4;Z06S{p--nC&8ZZZB-j4QM-ntH-QX~YFKc)1(IIQh z1n5lbO32_4M3F+t#VEb#n~VtZwRw>}0z>(F0W!^V?39rBGpV1g?_?-jU+y9U_GJp)3cm1JVXCJIWf#G zQN!v;iwg3gV(z!fMnPq?o24Emb|zG8oywNckg5sPLQ2+{-{bq_d;r6VE7zw+E{uE21?BwVm9_dfSmUp*HSFC#0=K%4twibx&Z)7N87b zB^sF%P}n80#Y(?f+Yd^6Zes^UNouQS59%yQ5`$tMwW8#;1NV0Ge}l2>$_9j|c^$%` zZ*lWJ3qoNtZ={4Y|KfH}3Pzq$vpkIW>0tHOC;aY+AKxtX$uGZNy;s#QM{Kh6^HkbJ zaJXxhRH+7b*u2(W+7Tc>k}ppuQD-@Z%C`UZP0%oRtArZr-alC!b)-C#{Wj$}4hpsI`Ab`K*70leQ2-%1=?J%=61b#S z6bceon@Xm+LZ6`AcXWIKHJ?)As=8NodtT}4wF4x8gGWK-raOoYG2Cs;pj(9=_4}~n z>L13FE*Kb!ng3YLcp8-J+|!a*3<|a{(A?9YJm@g+kp_Z9e-E$@Ey=885f@YuKM}Ma zls4yr>vKF~J0r5*Zm2E63u=VYYp5!0-2fS;y>9#Zq@&Pzqy!}?q2)lXJ@-zMj_|+C z^SI>A3(}^vi$DM<+WIq6y0B(m>O6rix->=0GEFvZQZ9V$$JCeNx&(`uPHBf8PQN?O?9GD_c5n@oce z6rbEy+TN6y5y7GDHIh`Do=?*uzv%#) zqMBjOA0h?U5gd83yEAyLSC|07xcNHzZdqd|Gevu$a-;%cB6=DQYCHDKd734 zEbQ!ye+{mCgKdT+9mRMK(^;|ESs<9iYv3(fy|!+jmu14*(WU7 zFv2ql{m@g}vFcGnn7lS&8m;-LBwPtN3dn6&H~O7G1CadahZB>I81$}p#LvEIP#kjy ze=niX5FhJiHOCcY>lYM4r$JfVZ7KBR!vR*iWpUe@kL+gMUHg}&&}x^xv+uh&C;5U4 z$nNM}o&0&bcl$xn8%{}7WIOj+&t4+?w^g&dYGRu1Jh`;A@CnK{PuA^ zhsJevXTldRwMq7%;>gWpyK*c<^S!g<18@Hem*GPY6n{x7nYh3C005B}2>=lQ004Jy za%3-LZ)0_BWo~pXcx`O#egAUfNRr+HG%<|NpGNI>C%q&Yoxgn>w|oA;i_Zo@I|}2lo1C@7!P~Ig z4ch+Or!eZgl|@Npzm1}>?Z+|tv%TS?7oTL!4S!}^3rGGCeRacV;3e@{7(Kilc+t1< z=nYyQc}Z{|^n>IXZHs!|O!)3(91YL20lk?Fh`w^34k-JPec)@Ve%zC6L5*HHj68?T4h2zm=IHTZY ztz8bkP1+*CTw!FQ&LpomwRoilW<>Y4=Z*XmVbDImd>Dq2ci+c|o+MQujy$=5vbgu! z-yT4KVMlm6Z-@O5V%B2+oxEkAhn;8oIe!xHweyh|d6%7cCyMGy&6WurL{Ag{*My!n zvj6b(9Ez)R^X^0x-IgwD?&OiIN9!a(&>#ekBzDG?lMA6it26xqCLu#pJ zv$ew>HBoHIj;ri)j=HGos=2!!C9R?9imdIfM@`X9)zq=`?22VjziRS_+;%2dvEL_dCMqsEU&JG_NL zNf*Kxd>oPXwrG{CiLT(tJl` z^<76o05vQ_fegI?G<`7e9(-9o8^Ll&-)et)d>?tEUeInuc;!06WAFSSeSef$cpy({ z(^_s@upPb7l;b6yFpg&T(&bH!f_5^Fd{7C$o#X%6u<+X&1LIp8K3)ePQ`$6Wkx>kk ztRxt|d`@rCcZ5;ocm3#w8IzCxjUNZUfy9jbZ|Oy@?fZT(Y6bm1k%WF1qH}+6?_+hq zAq`p#?>tT-KWX>q*DhYY!GA*I`P;$=tleo-)Jx3x-aG%b8x822Fw6w75M}`0VT19A zwHERfy2!siisIzG9}Y0P7>pHR3?RIB?mb?`*=X`tFtq6a*su7LjW=T-TJz%H__@9D98ldBVm&ckLCaCFuj~vH*}E6kC<=HHDs?C7Vt=bCL3z(_8NMBbYrUG& zb-k%K6@3k3lAB{rivl1Yi$|x*`Hs-H3nQ*B#t->mdWl#FgwFh z&o8qAoHt?Djfl&V=MlIj9{K(LZQ?~qx@%1MZ?>r7lT^0o4m;FdHFqeg zqcpYF8po-0P=CC7F7D5oB{!PHb*t(cd?DQtng0UcXWOPXPQq*&rH!)(;zcmME8hna3)3*YF3yP++1ie^DXx_dG7o95I*D`rOUH$c(ge_^aua^@Ft1I z?X#huaBGFdm<)UF(iknAI@j^aaQu=jKyhidB)GDpTYt9O+PM26<1t#7%vM@-h^*%G zhGxnwS$Dx0D=L-kD?C|(iguJWH1zhzrbw!(xz1j$sjl0G(P)sRvv+H%=rCj&+8XDc z?XRiUY?>krvVEkRt{A3mHP+aVwof<3kd2mN@8#GeU9xS(ewhPrOZ$RuU?-F9y_8dU z%MDqw)_*WI3;ebTyRu+)?2F@5cXh)y71}e&BbqxtRkh_PI8u;R#W_A3x=cP0=J(8g zCr8P8ZchZXie5ZXJGwn{Co1QfoagqO5{%q@TX1`tWCa(zo7-}GR&&)}J3Vot5{;&` zhOxQKa^Hle$qxivUj_9OqLU&`({W!ccH*+;M=pMj*fN!4*W00*Mkmb!6UZ9Wu4L5GfRmOR5Nf=?>+V%8&5 zZ1m4Psh8BzHbNXV=iYhV7rkN0qS}(7@0J}d(YdNCq!`QocK#FQaLgXjh}L&zh&YBc z-8zSI;Qu7%-J2O3{|Or#g4L##g{=56o`0sevSn*^sKK{ebUX2%Y>XO;*)lCxtHZMV z2zD?wU9nunwCh*`Jg?lO+Pw6TKXVkAuDE*vLqx7gYeWhngc^z?K#^~nBM){YhNYXG=x!*%NTaY}2o#sX$7FmsBRKfR$yO@Fsm zxN>8|V45>mYTRt-ljP#sj|KrC#o&&{2%cR*58L@Wb7;8u?bt()1Tkq0OpDpZY z3`k4dJ7u7%D7YUdcr&Jl0C>^2K=Zd@B*X}AZE1WMSAdmct39P8>zVitJbwpTWvmy| zlcydqG91-|ZPBg^Ts+7FW<$T75Uj|k^9!Ik^n?b{4g39&@Zccu5a==jx1V#QniJEo zw5BDhb#MY3QwkNjNj79rlXkSnWfNJZo9;kX?>>C=8PBFi&taH=C7B9fN`bLOs=u<2 z;-1&<3-^8|ZdkKm$gRWXq<@||%GnmOF}|nlk0kK=!YGUw2b9_Qj2p>3j&NJRB-Swu zx5*Kr;i#5VcH+x$?YnBh7^P!=W^(2_e6fL3ckw^C!tLkQ-OtvID_q_R*EgSkx^!Ge zII(W=_sOa7^X1)#&tL8Yym4cFy8E;6xg}Vi{w)0KNB745fbm+* z%d5+~Kc8-Cc&*F3Pc;A5=NrKiuC1H9OZ&@}bt7DVxw-y)>w;7c2K(vqQ|ks}cR#wH z?#?h5JQLiX@P}~w!GF5Cq6utigw_|V-wmyhV1K^;^UdY^4|l?c&sUC%hfNn$w3=6L zIsq)JePvyKJQW=4qxGIBc_Vzr*tWI0)Oor-!p|RE>WFA#;eYns<>ybdkoM&Ou62bGLYO{nX@RNBdu4!6K3+*u4aJt} zxR4&W7wb61P|POn-&2fCQOB`eF2%y^OH4>=DyFFzjgmkNASPnei7%~?V(&UD! zz*EVBLJB~arhln1_{`#{kYSkkPBk7Li=4u{uTyBbAhS>e`bCuEJqL%U07V98W&ruC zu>CEjV+9PXwQ=#nFtmHfNAN8Gw%UMMOQ|nuasMyvwJ?Q4GSukV zFC&)6P>fGO&=?k-3vo>$^A+fOiO^jPBoByt_FI~&@PF^JVIj#(ZoaWK(SDSi)#IQTTzHqC`(Uh*^w!iI)fO^1kI zX+|{Gt>+BP6TiITTWZ%kufqn_p@WQhwLq7flD{Ks^4 zA)`T7^C#19%X0dxn55+o-@GSKMIlKmeMAzD?SC#M0D_9ym?RN9L&MPFVrGM-{3ifm zKi~gCgvN^WvhajmAy5ZF_r0Lf#fMo^;kQR-hSJuIAtvQJo- z>3?`f95(gtv;D#M$U~G8ArGK&FJ*67*uGfa9eALy9GGX$)Rm*6zSn4$T!k|$#hH!N z@hmM>Q<7Eq&OxGr7O0F1HFQ;U7`K%JFg3`=c5e*QyN_uQ_?hz;a~seKjY0&x4SABe zlfRo&BNyXbSmAw`2%wuKDN;MUXf}gRkbf@Lq{mziz0o9HD0?(z%TnUeR818E@Kr*Z zJ(~n^hbT0Wc3+a)FSj(-d@k=!e(~P?%Qd}O5Qv;n3OvD2B7gVkyxZ>(zoE(Ow>t)Q zzxN+dH6Ux1HADXdLu`q6l<`&>7RPbP7XA_nC(;|`MEFZj_{(p?U&bs}KKW)k&VNaZ z*&3}ly4a`O_=FLNrox)T6c~SzO`owGd!EYUbcLpKPcANpNfdU*%#F)2J=$8MJ@39q zvDF)>y%?)EJz0P`OLvX4_l?^UzTSmx84*)MHyS3bA(3VB<-+Q%I)oRj(;TvFj0^Y- zskN4V&Jg`catC-66sS<7n%y)E?0>E&FHxige$QloX8$=V(#I{V+C|%yT}bb(pMQ);E3yhG zU)=APu;LuX+KJ3cN13hOeMJL~=~gW)@cd&;jotSsvv1ZsxKwRh$%S+#p9x=LUx>ZI zD0MTuzxs%nZREdNA(oFqTrI?!E1JLQQ*B zg|{J@jwZ=P4mhed{ zVrq_lteyL@WO7D-LjDqNc1d&o;^#Q=2P-Q6!wDxDhb6(1xZ+BzZ%oTA!)`fFonnE< zBk>*`iRCl6qFZ5v41dJ*I)W8B=5S4Mlz;9OAN;MY0CBP5;?lG_Q<8BP(;c8;#jYK2R<-Z z)(&M?)U1}O(SJo7$E=1!f<`MWl!UqxK3!uRqQKPvc}as&0HYeau<*m(XXi6t+&B-c zEGSiQD5-|#fuXZXmvk;)i5DD?TP>86Q@0*pIv$U=c|1m}2`NkPRI?J*-SLpw)~E+P z>f>_R0Tnu0(cyA1v19YVkXw?v;!3P9+mdPMEnB0jl7Elx>jQFMt8`q>QXz6#Mv?j3 z^u#OxnTbqe;iE^j-u?JAe-+OKDla)fe7)ZN{LrvoyOVj{GMcKhPRu#GuA!mo_VjY~ zLOHo3hI1)~vm3o>-9X#ctb~?Vt4b*^%L=MKptdN?y|T@Xij(l1;eA$&G3_R+@{zup zT&Q$9e}8}VMJQ+t6j2+I#jl>H+TvII7zU$pYV@D7*QGOMiPqqUX{QXb<}kN&V%Xpa z*C;+@?iYG(gTz2diq9`c9(rBS#WWRwSTUsDMctYpo)I)RheF7M7_*9xzOn3 zg$fd1-{09^akCP;VQ0p5vPrgnm0D=O5QUpuu3c&&#gdV=qn2vg*U7v)Y9V$`TD8vg z{+K}QD3@v>e-sD(S@iKHnfg`gp#4HbZgRPHse?3Jeqw9R8i%r@=g33aLtZ&&*VS}1 zihuX!h77JK?0)U`L+`aFA(`T#VJ3HXmQkdJD@)C-mvaBTA6sx$%|?sKYG-LNJ9ZQq zP^{2>&>)k$6JpgxHCfeO19o*h3LN-R0RGT?AJ4P^RmXeq zqcV(OlP2b?JQ3^{s&kXewaXKMWHb#?bAQ)JYCfu>16M^zs+>_pkA4)-RJY$GZ@)@a zv|o7CO)l3iRgtdSx+&>vlomXyq61e&jTu#xM9A-^{LrIawBRzt*&FptalZhx2dj)M zTayiQjf%xbWpv=m$e1dlVHh0Ep@rA6R%xL9g7a=x1MRNTvTQV!CT^2H!u<~`JAYm~ zGp7pVuVbX}M8nsc8E=aF1(#jsJ-?85SL{)eHQQ`xTTjM2#%eYltC7U12;(5q31^NW z%lK?NevT!*u8wv$rTv1KE}3AmOYs#o8L?LPSZDdb>OBJWS%7^~y+@?Tx4nMZldz1} z4n~Cc3!k}+tQWGf;!3Qagre(;A%Cgb8qtj--s$_|oumS0GET28S&?fF1}Guz7q)Sq z&+Uwh$YQ#vrv;tscA)sYRmsT@IzhbP7b)M6^e$qZ6y z*@kg2cJzS(7UkWQp-?2zRK%8k^hF<o@)#Yc3QM4mX`Y0I=S_4#TIR5XABL)n2>{_}5`w`zP@%DUZz^~m2wPuN?ty;%`^T7!<03)}(a0~&y6zI0@zyIxjy}$d@-~aZ%1^?H? zAI7iS;65}A*zP1+Rex+tw8dlT$%B(t!T!S^1orpapH<<>L#-g})qVfb@1NrRp7-eIPvf(*vsW9bJ~WWo?ux~WO4D#f zcMXu)1}YIAk$-1J%I)OFKz8jUsl0vk|9zjt)|_f7w47$4VC%>J9QJOyYT3r~*p`rQA6<1>Y zbQ)O`4OQ3IaA6#y4&O8CV9=$NSHVLsfm3otZaJ7F8RgJ0d%Kfc)ih*BY-}Bcd-O6E zy^NbK9e;!9!;RksfNzNFW?!uo9~f9q+1)h+ie;#BQ#~SY_v@6rDU~JBshYi7y;ipGW@ieJTC?_3pt3hP&IL5KETWlo7^1 zdan-4du5XM%0=Q@Gz32EyevXli zO3*qO)UVcvJ}?m74kcKZB+(I_;|&A{C&9=*&5Y<|j2Kej^?whNykBUwrLGEPcUO98 zxJ#tfRF5e5gOg;Wo?3loNhiT03OFUdIIQY;inVXbcYPG)& z!+)o~-+A!KA^mEP!|H)Sv39rxH(E_yZyIZWz>jc_?+NEH&yYm&Z{sk*=G%?J0W19Q z)wA#InEf1vaKMCJ4%J&9Nd_cv+PwHzVJW1;L$cwzo4n~QB z&8lhFNo#jox~RET)8Rk4rnyVDB*RW&6XAQrWh|m8Yf=q|KHu(5fq?ucOL`Pt*>qcK zojE#= z$q04d^EcW1qgfVfm^Nr?*Ex6c%YS;4WOu z;l@baE-H(EIZUFkGj3D)uhQO;55YxQp?m=85>${>S6ovv)KXAP6^*9lw10RdR7q0P zkwuv#a7B`qW}P)dvrdFx2Yn_I#1)Yr`_ZF+a*;Wpkc9wNMuntyEc^gJ@{hQT3%O8~ z!HuVrkNUxVF&W%UKbd@wF%TyC~haqmlp~nGbBGVxdf3p$>kO9h1MpmFVpgpA>PHOCP?Rfnl3CIJ~Lq)-~K7UAm zKxt8#1TPnW0g3_BX)`V2e=4B){Lhc5Lnu7?{XV`Dw0jW1Z)h+`1YF`IJU!KXs zgc786xT0aHny%Y*;(r4xE(ibm60Xn`LzA0g`DEp)TFYjIKbCOCMmL#j7*|Yx@w?1K zQfKyzIok8C2Q>-4q9`0R=J3BJ2&4}J;+lK9ssYzCbbT)wL*2r?Fq~GN6XNGM@du~8 z8e?CW)RHao*y)se+25*fSYSV(taNpCL z!hKJt0@BVpI4%vxgL^;18=RUc=`Pchk(QV$^J?8S41?I8-^eUkFZ`rkuKhvA4C&31 zR?!_vGhy~H>o@@w$U1Ih|Gh-3ti;BWp;@kKluT9CR_#Vhn^-#Rbiuc~J>^!t6pS_V z{rV}4zJXEwsDBGag$iLRt+dpWJ*%*3DjVE1x$eq)WL4*C$&jNBqof69cJVoKI+v|y z8@RY1LzHp%Sw9X16m=%q6#{GoQ3(2_0+$gm#HN7EuU-&!1RU3rX9z#pN2LF06S;N% z6_u?>F+lG>gdvISuoHA3kj#RL!)}7II6f46+1Q+DB7d5+A!=Z{%!umv5$!)eaO8xr z&`H#d=zFQ*ACItuFmt(rj9iP6_l)dQIw{p^6ZY?t7ONRjcw1hDmyEeI)Cs*R78J)Z z&@5&OvGld-5zNkTw$>cH|c@T}XYVR!QXlbsP|jdo(~8J#1{LbrZn;sWSg-SshZ# z)fKbOHB&3&_zXgbtn8Km}8V-EPo^w*;G0HXE{` zNl(&MSEv&vb#YX%AVPepK$T!i1D$OGdsBd4CV#VBMq%xz9|&oTcBNDZV&Xd5Jd96Uv#m z8cQJFr(&BTr}^)QB`7v>{@q#Py>0J;Bh=M6Le(`F!HCiUukxI^NOR?uMZp=q&q{)h z)!&~Z;C=VgvY}LtD};-B`wa3YSCB%1@>nYjvsmg6qTT!$pkDICU0Onuf{BmhU+%q<@{akF*5UoeRpQbDiPl% z<4zE6Uzx}V!K}s{lB`IoqLSLDug#{l7d=2binx1zN zSWFML`4P6fXccz7sJ9fuaq3)?xql)J`PYjytcZK5hN(8SS|vsJcJp&sQ<7Vi&<2V7 zq&N&BV|F0S&R> zhP>-h0JkmEN)-EN(Et`9MohRQMpa^8LaHz>pONq-VjGX|5r$@Chtd>nRPAi@7?Xc8}!X&SLY3zkjhSA6bkZ;3nVi z+-MCR|Y1n+ccV4y%8Dc#}lq_Sw+q7p^{`>n&p)EuuQQ)^uzF zt!>yv#_PwjSu>wSSA;ieiri|nq_rndia8fNI*TWe*=2kzpgz2jq5o#!jYbwEC{d^2 z!(Rk%q^e7Psup5GQh&~vN3$TuJOELlo^?^Sahcv4K;cwMS0Zcyk-dnp&CHU_-pS`v z#Emit+ALwSN`3PQJ0}n!Q7tP@9TpT z0J_|?${tDyS13s$arxYsW^LAuNQ=*zZx*Ta09o_Mm<@-B*?*PhGa({vUS>;1ih3F< zyvRb1yyC%#7j#&^@efo7@KoS+X5RP(yXY6EgduPn+2)+yS(IYw0Q#ssi<#jUi4Gq? z6W2(rG9&ix#T~=+QRXO)Fh!ssBXQ4LG(5c}%1*lfRP2t6#)8?W$EcYz$z&BdaizAh z-Gz@6215eYzki|gn%%>RuW-hsBi%prlYcDDpc;Nr1zOq22(Yo%8UUn_29Igx%es;7 z-=hDs-e~j>4>N?AbVTyflyw_$AHMJG;auWR;>#7JpJQ_YV?c*yECQgAWy&lP$TNX~ z%SyDYn!^IVo5yqPD;F44iq!=ofSJ%7mXd?#GN9#0UVkFzC{D>}$SBqf(ynO9ELNNa z_5Q-GiLQH?O=&RLW-!rX5?vecCC=|lA}k2$XWLXo_ZAHnqM@HuRe)b~^ z-QNQ+R!GIT^X~ip`zXkyA-V7WjNv_jM`@TT%q#~0tmg4CfXHDIhBmJ-NHoVhQ@8|> zwcQP(IDfeb(G|0Tm`Ou_O+U25{&+Afe4amGuMEQvO&Ivu7lz?a>0h}mgI*^yruh*S z9`F-wq!R>GIp2WsZvINbu{e@)94SLp1O3O6wHmHzD6UOoSioU-NJRp^O9PrVL(sI@ zI<&JvwKFoaQA{Y^`PIv4)^3IocHWqMDFjS5C4b&9=%+7G($dVs`!GoW^ew*|Q3>qQ zQ%Fxz>|+&QUbeEViF7(Vj8{}O7dY@bxUdO_^l$uw+Ruj4`IXW;NoxES=BAIf$H2}X;SVQy(L>hl&*#wE6@?qO=5EaJLu82<1h z*IqSQ#fGEHB5cQnI;)DTsa0e*0JUR?l5+MRzY6Ox#DsdqBI4;?VFkIQd1b;3O;$+y z%Z651g@x^qmHO{BD5ls=t!2rCwp*a(7k^NUN8xQ$vF)5<-2Fq<{5s#D&m1VLEYQjt zab`?p?QV2P=R6`6OHg9NbiE6+WRb9Z*KM^-Gf(hc%Ab#ZTjf}^LJiRbr#fQUSeA7; zXH&ZlV`RD^|MFe=d_F_)xv2=50+}JtvLUUpExwcr7vFi2m$KASnysHP^7~pQO@DMV zGa4}FTt;X19NH@&i%LlrH?U0NnOJVLpgEQ}?Tp%O0yj3moDhVIqIP9;p zo$To}FMfd7bbqYFsi;lUQVpq&XMc(}s<(BtNf(N-8(65?1Yqm+- zmyGGV?x_GxjDKq{B8qo9RDWUhW5Kr64HJxm(iwACrkVwXyZqWzh$CTEpX(T>J-TsH8hM{!QQur5_MT`jNV*OFl$NX*Nxn<|3o6X0B6hzyKR!9q zD*X6LYFK8vMxqNCoIK?cN#h(rs=W6(ZnG*D-&8c+wCe02E77C?EJ%l4Er>r;ag);c zOSW*arOaEyMH>np+KL#~F@JnG*QE=Siz)i*l_3;U=CkgcvOp2e=L=(NC|HnJzoD-Z z9=lF-4N29CsEBKz4GU7q^JWne#KJ`-Jzy$^>ab+oWvZKRw`et0=z$`qrnV(xZ?9Ot zg`;X7q|EcDlWCzBfUW^^7ViDYBIMP5sAO~++niKB!8rLHdE^1`^(jg zhi9=%tw_%`B!6X(-)0Gv%UwykRnlOd*X@NAs6q^+j9JIQuK|MNpsp?Ur1iyw7oa7A zDQk{_dYh$;Cs8%!hAb0qX-$NZp(vW2mc*zuIVK>8iV)wNLktoPkSxGZLB;Y1tUwOQ zWp+7IUe*OL)ydNo|9=z%9*@!t%eZ5S5413|b+9!L{j*-J5zI0u8G~8x`MRXWU|~pe zXg5>nX+|dI&YF5{xr!}O5TzKhDfGG?AxdPJ=z>CzBs%LfP6!JxnyD$APoU64{%D4h z>va2~rCmnkx=TBu<3^_R&{t+=HNS_tW31198=Ay;W)jsyn17YJnE}k1qX30d;^^uw z<_EN1C{d`r(m|QRm1nxZBs~*8gipBmH9`Vcw>-W1Y_N{(5cC2ls5p5WCsf_^D^-4s zl6f$^qGsR<{k}V~Q9v&Q5a|T6J+1Ite9DUa@-I?#-^nY5h&2wjbFB5!VlT4nITN(> zy{hblbmL?#W`CqylH}1O!U-wiV6_tAxNdMhpY+2hw_wdDW-zK&B7Yi|ZwLm+tXw4c zaScN~=Nh!IJuPS*7*>b{ooWDsV`YLmLJ}Zv!;hjc!mUcfKB{rC-as`%{Q~nuMUT=F zx2U6(r<>A&CoQ|#_5iUf4Qn#pLedA@!AgnF^<}g$zkhtnGrFOY@jviYdHA~21+IGu zyJjhyXd*@DF}D#30Fs&pKG1R@kZe>(C&SK9%TvRj#+!i#!WP)p9ePnkXIZQ5)FS8g;N_sG!e4%hn=(v8Ciaq-L#ym5c`=1 zVXv|I5-b{JwTox}%<*zwsKSc$gxqJ%nC29Po_`59zucHEAF@-zr*&UTw4MWLEsfKR6~U;RFj&Pq1Y}I z)sD`)CxPn~Mqu5z6+m7cC8hom73yMEHa+@|N9F4xLLnBU79(4qy6 zy)Erm%Po!tjXfmoTFp(3kOhssO^vLt6U(jAe^70W;LZbAbCf!%72l0Zt4EHDrGG6A z$-Db4UoYU2>|9+#09Vhoxzs0RR-TaIbV%^Boo>O+DBHbqR7_NamfiT~t|#)B6#qnphbwjwD?LerMY$8CR$lcw+e*r1JLZ-&4P?20e~v?a zeVHKDmUdn%2}ME{xPugi)z5p|(m`yw4oZ>iK7T=hHEQV1ay76l`0zb;j_InA?f3V; z{hvB#G)Z+(I%IEWu}T&Oihnrky4ozuk!m+31<{;*V`b(I=V;9Qk}K)r0=g&Ho?K*O zu?u-ot-$s3GZec4*J`c&jBUG)7mH(^KeJrieA{PR=d{(tza1K5@n57@#}cY`w6IWpN-E!}5?9 zjj!}>ea0-$A2b6Xr#({*w7SKq<8IO57_qPx?3RMkNV$b5Y=7s;h5xHZYHZQ_9KCq7 zMXvhitY__3Ka}5O6TL_gygVC}-<-!{v*o)N5pUovt}n~c0ISp)w`XX!sC|5elzS{h zaP#R^aNE*?+Yvz$BKJWdSiz8#lm3oD7*(s%l(q9*L4^YK}`===$anZy7N2CnP!`)|+R^@!MP8?LJvJ6Z~zS0l==Z_J6u`e^4K{aD+p?I$O0G(=E}` znzgRsTItA|y-XT+jpKPn?CisAqe}8UelZdwDMHOhRk*s>qfu zHLO~-IgYEczCV0*;8n&2D`TuOF345T3NWgMVd9oIWyy|J1>)F>bGn*eHQ<^r9jnqw-mek#Bl8)Jkd4hM#_V_Dt4< zn}62UFY%8_>fs63)|8MRkg7Df{CR?&gui#k5p;QZ<8Om$#!qja8J#yyl*g&(oSBlR zucudw);Wch73HaUn`}IS0M~Co&kt>6YY)I{@2BdwRu4j}YP1bQW_aaQKooU-J6|F3 z5eu8a-;Xd4HnE6fG6`<+#;1>t#UWG~11XQ)~Fus^~X` zQ^sDDL}w;-_Hl_d zODEsUa>u33srJtq;hZ}h3hLxQ!dj7{TluMTZlO2tZ0fV0|+9k41RE)??7K zCAgL3eiEb6OSfR}H7p@Ss}1*=cYpt;4b|#JmnagG>+NmeU33UdEeS0rMa_gk z+Lj&JzQRXdX$L_@yLs%`8{lutCgCe~NigL(%khu`WPb|S$5eu? zKaytNMh`0roIdtE0A4_$zamMYcZBg+eOy{R3$^!@FRUth5EPzU1X)l%VXi}hH(YnD z6%$YT0VwDtkX`&#kvMt5+hyyYM=`G@ig}?@;qtRO>Kaj-z`&x3KBw}C5V4Yw67gaKZ1xVmQDNd-J0~ACCEHS4|mc}woWm& z5+z0hC}P{nNpmEa#pk1c{qz4SPt*opOL%G;JKVtlodVi@@w?GGyQzV+l>c|MG5(

zYB+tX--(Ky^mEGL!eVF*gvN9|{b3( zlBi5BKKIpwD@Lo2cx->d?rut&(`U+I7C4^cCn50^HcGeq=WMEFVjcRTq>*-wrb`i>bqGwVq$n zNP_%c@r#kFM?(Fq)Q&$@P5mWki}*!l8k*Hn@L0U~r&w&Na*_(q;k4 zm88aWll&(>6Q_hM~FcWaXAN1RM> zZNMEv{ZrE=ik~mYB-X5$J>(T@mB&oK?OSMm9Hxvx(3DQ@e>1V2>@bJ=VVfitHLr?% zr;86ll(}_06Fh&7{9b+pmWW3=`Brv_f}-xZ<4`|d1X4<3db?RI z7a!OU<`7q`@dWq4QU!yUq}uY4!l$_=BIn?DzZx5PjBbZb2A(}91JZ5V$#Z}r!0N2R!eqDJ|Ouk3967+0A?4xhkv#SXl%4k8c9L*NwG80VlBGqb8 z>BuHes)&C=*S9FuwVO&XSeud#-~RRWfBeT!h2h+*ubfAYVMPpqt*T3=i~bS3#?C-2 z5(=J?S|vC*5L#Gt<+V#9q4qtMQoF8H`HJN1yq&G)SEA%3;*EBXAni&JY}ju_#E*a` z`mf^#Z;Pe;oOH$#FR^SEKBXp$&tSmv>g>tAdzF7nZ)BN02Q}Q8bF2|HW_9Y%8+nNY zu~#v)q!4HX3|=cq2b^;^vzJe9=8NU(Rf6V2L|36~r@b>>L+w)@pe|>jeHCwRwEiPQ z17D_uK#?|KQrZQ`^fde`W~|egNJmwo>qC7aXA!Na0jiT;(rC6OpGtsKg7+L^> zsO5jtB^uIH8am#j{Ju>Lgh7zRVXyP*OxS7sdAa!4KmTjfHoLEFvy9%uF8l}Ss74#{ z34Qq5sPKT-*hH%&3giP53`*-gy@_On0LvsmT}b|j!+Jm-OT~Z!Kd$DNgo!@jzuEE{ z2iWJAPa@xO_yH#TWFuJs$aIF6imgu-YIJ|gC_$5*j#Xo!M*cjtfWDmoVvq-!AH*gh zhAn|>R=#|PdUOP8YF#OUX2ch^@{0%(WN=mwGgfMf3|(8jc}fb*a9dA)OfL>X%X0(Y zSKO0YaUc^%bWh56&VX!HcRuy}qI7!zC07D3cAYF#0thEtl?K+y?JO^hf?YC$oCkmF zj7i>;mO=Cz3x4M1Q@P}%o-V+IU{@Ix-n~bc@@$~OGi8(Sr`5l`L~6C z+osh%9F*BjV>O|`giVIMAB2Ap%#e4)kfTJ)JKNQ3?UF< zw0?;A0DCiMZA?vg=fOj&^L^JW8#V*lOaL>DhiTyGYW02jMseGWH3@^-3GUdoYb;%# zJk;jfcN}B7Z_^*&^xe1nez<`Ed!sD`^fQ-{T}#18Kt$KYdvI}2`L!<{#!r8ZlH;t@ z4K3FQD>e`=id+}YB`UeJ{y95Ve7CRQ%{~| zPn&>?92DR~YYXS=P|>#ZI>$A|LQ`Ac1o6#5Rfn+tnky!wB6;9CM zkLy5n$vB@5{E(AmN$MnOMtWT4X<8Cg(T=e4d&Scz^sO@A;$Xxt5*qS_)?!e^_vdy9 zBaxE5DMno7ckXZ<<-iT`5TjCYONx z3e(t~1YEGMW>>S-47CwPkFp)u4CX2kqDeX+--{QZ+M{gO3b0D19ptp3gf^A!O-j(C z+%#uuW4Sqgb}@QI#K!ZTsFX#?X!-u{$Q(yPHRR=o*0;D2FVc=B{e}R!p{OKnJndE2GPqfq`Z?9{vu+PO%e~>-1WlT$mDBQuIi(hXBeRp*Dg_VX*Sb8R?6`44qRWIK; z1F}7I_=V?0i5=%kK`Cu`Q>OiKR)skG=?0+E=XSE1kb=ctXdyq(sQkx$43fK#jCb78 z;1^CBI8p2<9>|j|-qx-5pOS&4U(>K~y&Ook6HC#KkW+uRvB@mU-Vtu@fUJk1$@_Gi zb$a-Pw5Zsp+HP_?tCM*~x&(N>*TH z8Vb<_nKpgT%-CEtei;3U8x_=|5d9@pWkk{^d^z0RQy)ry z;0aNkXx@LU=4BeESA%GC?IgAH4i)<73StM}>i4f$;OC^GP0vOIN~3ZJ6Q%m!XV)ka z3|n>p@MGWEPsyj{D2|?80>|-F>*S}n%r3Tv{C(zdui}kbd4D$iqC;8nLsnjdrjx5a zld}%k4?2yX5%?oTKbo~V^OM4JN+TDJe99cwI*@-^Gemz*i8J{!o1L?kV_Bt}t7TD& zvOszO(WH05<)KsJ;~8GWI`pg{$_f*sO!kk7WS8&MJZEz07B}(ZFgNP=5d?aM{8Y-lp;ykel=uM1JmBiKBWIfu-tlL#1t{m)CaS+FtCLRK8MZB`9Tb+*n*4 za_)b$9ck}6ifs60fGX`z*zrZDD9x$;$4L zn>4aUW4Q}W7Japi^=vI8UB)CNr{=4RF**{}lOuB2Rn>Y4qtcPlWB?7aS`t(GvocI` z-!%i4H=mXA9r3I@LJSb`w3Jq-UsD;kgr3Agy9?CJC+gw)4^Wi;;dU}b6%hJo8g_qq z`DAjpSrXk8Ng=bV&9Em?DSNZL8TRZ-EVA5hz$oxEznr}q_FeYyUxqvkzL813{&-ov zXL>yY_6UCy$&0^U&97lA7wAtG%U3BjA7A9f@-KhvZ#K6-FmR@h?h}L!Y&WAoRfJosfQMuGwqxfV z!1q0aumcE97Hi7W#-s>M;JQwT>}pWCC2CAvUfcQBVxsaLy3hF~vZE?DL=V_A*DNUa zY*__7Oyh5$0jjRCq{S9qA-a89dqm*?zS@z z95g$EP1M){-eE}%ZhHQZaZ%uC06*%2XdV5q?O>B$URghl{W1#Gl%MiQkP4wy63G&eB*sFgBRe27M(bMXo zX(D@li8Ek-pL#2M zXx^R#?kV;6L0dT`&H1=~LwoZXt?fbfwq7QBzK#DIA*hZe6PX)#4$nJt=DvJV!ySAD zn|OHH2cw;gdh&@IpW1)D)uHnCGE~CC&ipVS?qtEy=~~49Nt=G1$h|NeY!bLd?iHm; zI*S~L5%mxGPAx(g9<4QyyDJ3nmZpkK|mgR0DG*id23sv{*Q_ zcTv@ZjW*R9kuKZwtNC=B7)_f%@CMZ+bbo{2q4_qjXUIgDt!`1ifppLLGJ<}L&P{6b zDAvcCr$s9VK(~Kx*fbr2oZGDKrkmwTJ-GBQ-C4b`G2@*jht#*yY5_ zFax?u0_;GFhQA|yxJWU6X1w6%e+5eb{XoGCr1ppi zQNis;q|3`ELtrwGNEhhXy~_>oasiSv*UC!Ya(u;}Qn$?+Azl2$4bs9UJ4!GB)d5rg z;wo)LeH7x@k~UW8f-UnA1RvYnvb8}^}-?V%%G+#qwktRM#VIWV*SWDWBmjzU`a z@f-%poeR2{qqg40(U2~_7u!}?nE1(Mc_V5Z@|^=nBE#kjNs+ik)FJkdE=4;$gL-|t z?)UER`k-puxE|sr*L9p_9?kBd#+y!$hJ1|do1K3t!X~&+_J0rtS(-b1By!QWfIT3Zw;e%;&-&`>OZ8qrBrQhY1s&~w`(-_(XOjDy{TA~b7#tR zk43*{)SXu&e`CjjCSrB61h1o%Dk`M@%R4KuYmvIX+c5tDYTmvh>Axvfdw=r93uAxf z(zT>Mld3#&9q%u}p``xBpB zBJE#MHjJ$x4im-UVj6yGAgUL3y9@?$93=-8e+A84$V{DaniALU3h>mZTXqmE_UC#+-N}5@_N-+97 z`9fNwTn?yI%)ZP3X!FGf<*WKb&`kI%uWFpOo@@*thXt=S+iFveP(%-OKm&IoCJ54iN-`(BT84o=dn_k#3YH-4G0f;{nHZl$Lo7yeX zz_Nk_o2d(lB5z$0wjtlCZR*29y9bnZ`}%6=!B((i8U}1xwLO24#hYmZgnoX_ARkg4 z$m*g};<36cS8rrj!I9E82COW7g|=v4>=l7)l=*qgENimq*zl;fsf*v}ftBBJ_^l#> z+H}^@pvt>Urx@xdX{>dtmp14gU!+-F7)YDPRT&VhWb85iLE)Ni6`pg!W@_}LVpEKN z;0DRX$J^U~`>=m8NuLj`Fth^KB-P+PI6=>@j_so4N~w66w0`~j7$i5|&4tLP<@{1v z&{hF*wOl?m0V3EgseIs{*)}#qXQR3tiX4QeX1s?TH2C`K5L&=l*=b|~XFlfE?_d)y z@6EcyI8o%fR&dH)J19z-pPjp8^b}?`tX67dKOafvs)>L6^wI)V(IUmKaj)k}+e-AT z2#QN1qXrgm1uwBAgM$#~DT3iun8&dzYdUF){_UPgzUc|oJyU88lnY?KN8zaF z+(+Ta8Umqg(0aD|GxRRtP=)EaV}8hHCsjg-g+^jrC-EPQjch|Z z3ezH>0I5^CdfLtmJ#(M0Z5Vh6cIC;LhXU@+Hhh$Zv^Aivi{Y~KzvvtGG&QXmit-{dsuMH)Lp z6-rjugO8pRAm%7C;9^H8{;SS|m^{rb5iM;6pTiijAXf*G%2#9 zECy2C#529;1iv3;%bVNz^=u_MZ}fBzy&z0rL>L$~dk-t62<)5X(~qJh~9q(m$R$M z-Sy^T^lmwtEyx>KUKty~b8>&a&}L9_(WZ9#$X9?|j^55z^D9EDU9%762JiQwT%E38 zJ`pc5C4zsdAydDRMobzDI$$;AriA9~<7CAZr|Oeql5zNR@%C-p?%?h{l(Z!}rOwV_D2$Ak~aX zwrClnLuf?zaK)V^I)tq8o5^}QpUc|;SMOs(y+ezRo7s9j`GBlXl27(wwwSHZ_2ZHy zS3zz}x!ySvvOLx8A@;W}e^=q-_l0tlnKc>>!M* z9J1TVYVsPNv!l|?91v1o+-3 zs^H%n>`L+<*d*jXtOu2B5&2Qz#=dO=4V1;IxK*NI3YHtGYV)?ST$tKE1I3xOC^O#{ZyvV8+J%47X`ImzC#HrxF}CR(63Wz4J|(jlf1)7rP+SHl&}LTt<>tT zDXlTpEUS}j>|A&kqqnbr&MQxwqAzJw)5-yGOXQu*)_&qdeh!D@KE4x;DsQNok^>f+ z0;@Df1MPHXtbo-YEZqKnvZj8<-2tu4Sg&f-Gp2vgjd(RjrOT-tdD8@^Xhr>7z^6tY&A*NW%&RZQ+(IS%b$9I4GZ9Tua{H<1#n)B#`QPzp? zQQ?23Ba#c~ky?}VR?d=!razVZIF8D^+z&b(0YX3bUC$1(6A6q&wNR0L zgT4b=%$XFWsY1T{-9$vvXw*S0F+aHvNqks54#@J+)ETp$!2^;0b@ zK<1?W{754MY(o7K8Cb(s79+A4(9ZN$ZXACurfXD=6UDymB#1gJfQ}=+*KV*Zzi>kY zh)#2S)^-De{?o|{r7m%>fb9p>uB8k)KE`1=V)%mj;vTo$uYZ1{^(ZyD1RfnY{1n$~ zRXe5Vpn_D!Wtk8QFh! z6J|SXQD{t8t>XE(&GpgMYPm9Td$~|RLeDv>2Ev07V*FAH!oMTRFo|gLNa6cy9!jKk zIg29_ReXE&YIZL8xntE>ZN{C1@<=(4>YikYRtTnpZ~QP-7eQ_THT$*pKfliXT%xAs;*ZM|gbbi< z`MTfEdqb!%p|96F?i;MYNBw_be#y$zRjdl0uJi*h&5^3>EBST$uo!1`x&q&je&7^N z9;sc7R0_!iuIUG|l%Vodpk`0~pb~>DbQIZ;RI!Lb9g5i6%1%`-=#4$mg}(ogfO)-~ z-`(6Q`(6L(COh+Rv^WU~;8p24eI{&8>fgDEorXn14lm(I^P<%A{hWW;XFIh(W>y}d zR4xkVoP3A!wy+M5yp4RlkMj>7&xW(Fu9p*)&nS#)qb<)xV1C`8KO4!HQIr=ldugR) zv(_o!p`64cg_=-M?}qVy|RG> zDB?mTuGG5zrR?IBIGBIPMOY@G@_I9_8h(*}UtiRx*yet&UKU>_YQg$(Qk0VV3i@XK z?;&u7cq^ucd@j=F3u(>jTlx)TF+-dM%IoA3Axl2k0!o%NU@)E5Sf9*&aP_jGiOg~_BTT*ig9G^2tiT|3V$pvS|K*dN7fV9B_j*!k zN7L(Bxo1tUM@i)Ua`p-nq&W|Z0T2IW$iqasy}uSo{&15owg<7G-@C5oT6P(Lb%bMI zmCMZk$DgOdp_hJt&^|=D=OhKqcxf5%eX85^Bwz^RZq0i99TSzg8b z{r2@Qe?sJ)-@k7ldu_D_;=1)iPg7UVk$aSfB zOzR`W(V8c}B6AJ7pSK??4I-^8(#79Q7d zZ)a;cP>6AfKhFH1%zXA^J#*KXTJv~yNg}GSv07;W6=2-II$`xm;w$Bos4j8G%udla z)lNxPCy0N{m7uHD_vIVTg8U5wTAbB9C?u;{=exP*iPZXk)CNj%mS-?hoxxliETL-M zEp^W{{Y|y&Yr|Bqs};vKj+4u$9$QJjiEGGH{m9N>wfpBzb`nuA`41=w9?k{=6j;%R z^{apK{qyh2Fm)$Ywc10En#cWt<6b7>vGxZr)%Sm~qGOY~^eAHJMFnaxN`|=OB~E4+ zvfUwTexfeRH7icN{yL$c?d`n+c-K}bkuBJte)%gm$kgq`RLmEnpO&9@(Q4^OdM!J! z;uHlx72=@*O;WlRF%Nb|n@pmIN4(1Xrv|M=8cedH-_JBwwj<%_DU@}B0Wji33-y`H zM8$vT$4G!G9XVI+p%YW^4K$JR6+$yRLQ22V^P(3x3ChV3o2|=1RiYT3;8PHcJNeG= zjjSJH82Bz4mMBB?%EGa8p{f#5`s9JUkq)(LTeXjyzk#r3w=uny8Lf5>nU#T2x}JYn zAf^C=boK!i2?&z2-PR0TFLB+$wkChPB8z`Ss~!sSp0=iT6vsJ1d#l1VwXV(9yvK>` zsVd*&NDUwW&6egpj&m>9uCSDTQzJeF_tt7Dvis#tr){3%lK)paX@hcu5>_o-8+6)uK)g&!XP^EnUskB+wsiAid9wWS2n6UJ6jZaaZcQ;NUg1SZKH zU@Se25@E0nIQ!NBSR1wO&nVH3;!JckgRBhpxj-j^b{lrd|1Z5H`vvYhW48@#A!li%maK*5S ze5e0Jj$`_@mG9L=tNz@gj`y|-vjXj?3MIZ0#12eqVWU4ps%~iA?mAYrjeL8Vg?^fN zDa!V!mQ8?!JWsZ;^DvAk43=%lb_;=rSk1QDaX3_^B{K`#DB0UCL}1yABDH(CpWA+5 zB|8g?aAI?c%yCn}Y35ly6`X(OW^X++&PC96f{IBnuWz(Mf5XW_E$OGp26rp0 zC*=uhNLM+sPHa1*j;G3m3}lU~yF;LvjB)}Ci}2=%JtFSoPBk3Wr)Utf=|XCEfh zFDTW$plRH^co~vvHj{sl=0P9Oj|uq`cgWb8{Z1OLlGST$4W?q5sE{^)zzv*ikgSP5^ebNl+Sx5+C1nkCstOFLOUjC{w;xP zXSsZbvZz2!EdW8t0u;NfqpdA%KTA^OZ~|81U&0-r$NHaX1xSD0F{0P0L%`X?$X0Y} zl@Dmnf;<;dr_aELsD5yHH~`v6 zs*ayqc9G>ZeOsgI$UJ%;-1}fwMNxTbF6vt913fFoAG$lIDgb}>+z-CO!LnFj#my8Ap zIp0a7#D-cemsiDVg)g$&g0;0g-dK1=GoumJ!S)BIjea}Irvp}?iyp05L6W>RD8F&< zul7dA?LW~Uj8;~cMANjkowV&Qa`q3?Xrwx zls#m9*7y%LkLH3+w8c$pPtQR*)txsb<&(yHI%Tpln4Lg&l@p+ghypXXWn2 zZ2I%+#fyK{a)WNhPj8-&Zs((aA6Xav)qs4)y@od4cOM}3=PDbJr;|Ljo{#W<``I%i zu6NObx`-3|Ot@YzCIjDsGp5TMb5t=o*w?_FwbEkgXX%u2P`WM&9-oH*YLv}dUxR+T zJ$M`1%gWsH;*OG(WRerRaU|N3;rj34MJlajt{vgLG*YY}zm`A$_ zRx&wIAfOwL64DwcttEwWzcmh+U5r!FWu--_es@p>*KD21yoegCpP!X`vE>I!O5_RM z@?V>--otJR9X|-tScz4-sAJ~k#m-?!Ur<1D4uP3T|VYkz@%A;iI5CXZ3hj%nnRts9*QYCVX36XY0ul(gYL0Q@e-&j-=Wmym&gZk)`R`@^Ur^l zH@EZa*=jxdIQcXi(cZD!8E(5<@w&zYOGJCJPNasc3{!Ra31Krrm*o`!9^H&Sla5*V z6FRK|5j9(o?oyZN%1YY8PgiK>g*8d-QkR;3=RENEzf$%lYN5 zY3*)I45YOrS>89OYA~G;_!g;d0PJVtDbe8kf@)la=Jc}ryN1KA<*?s@aOu${ zpObob0E+e&NSP*Dw%|GUQA`ZVpR9Y!1bV~H3gx1pv&eT;okgpVAD5nAXO}z2wvbSs zo4_n(Em8!k$#=xH()1e%0u+DC%4~&Y4t5|A{%+G~OH^Too^IRF4;Q1^|Gt|8=ucq$ z6z@+k{FAD3^9y+g;JuZsJ&2+sZ8zKQp(*kc9jFdsUdabKzc^jLd?Nfz3Fga{q#L%j zTLgtyngC1X_3yzMk4Si4B7ZCGAVsT#JIrl3Hj<95`7IyZR$62rkx74qa7*B?{@}K4 zS#0Tdx0^X>iH>~A!3{4_krZ1$81vdxN+l!R!oLl?o=y@L zZkm|@*anMd8Pjgto>NAdB9E-t3el#3Al(^%5O1aI&NDj@x(;siphr)ok1}%~^-O-? z-W%c|Q14}jEg>G7F!7C3BdzWmr!Hv> zk4h}Ph3Q^63K4|eC`bV&^s+zaiA1sXmz#$s0%AM2d|5wulhuCc+UQH%>DEPj;gHI_tL5e06l_Syxbt?e?{06GtIdd}43i{XM8hkGH_zoIZ(&X0 zMich*f1j-uvuk+TKf>6l-azc0%4^SD^Annk{1HJec+YX0+rK0anzWd!-u4gvHi+j1 zGNRY($?6Mny(52*xN^Er@pI~{N6cwTT0IKieNR%1;gvVYFa|&`W8H8n4``D&Mc1TI zu(ldFv3l#*>XzS+eur?&?>B<}>Q*IR`DwS`=Nq-QN|23BtZK)%0stG0OqK!B(noiA zwdUjiDqY`BIH@bE+RuZsh>H%rnOW8Rd3u0-L+)@V_oII@GYL6w30$+PG^Vva8QIymAp*zJ+ri5q<$#>3xMqj6kJMbKo zb)}V1g&4)b)Hscc+eITgD~S~DaKkVut$;|L9e2p;p~xNb9aVAE?x0_F{T8>!)7$0E zjOuh%y%&GdEPD=}@&>ItHlxLIgMQLG?>7ZlP&mhG1`}vO-Q}wl+~+q$%L9^QenqrA zS{R3`mRuQ>^nCpWa^fIzomBNMM#(QQB8;u$#*D;1e}wWL_I7cYI4;r zqsrc3W{rE%4%M{m-|7vKx(UTzTu#;-XwZLLq30?;&@Vt>Jbm{|{)^n9Mhhzn ztEeJ*qwLFZeN?I{A~odc;B3qj0_EC~KVeg-E(zq9?@;pdOXP#hv>~FE231Dfl2|TK z_2_#3eg!)LrU2TZ-=O9a@I|x9r!U|qFxHx2Oo;uxncWcZ54w>sW94#2ssiJIFC+4Y z`4xYPC@nU4-xe`M+Q<`_5HL%l%^ds=lVfy+zj25XscwW3U5tKR&G_#w`N&`Z!3RJu z-^>==VqxeaYO&1M>${nWif89R5#??PDt5^mnSsUKFW;fGwON@fjl6+E8CfojBl(MY z5GE=0j_+180~muITkMj!n&`8-s}L@Jakqb(dKOM(V;W0eF$+<`gzBoBF{z(`nA>bI zok>EXVi)}f2tVl92X-XoAhznTN!gOJU825U9Fr4=Nys~^>OaX)YFkFdmu{AyAnU-d zx-Cg~P1(tMxn~85RfM*>@%U+k1vFVIc@f2>(l7^9mC`F+RpE6k)DX(aICfu@>sEh> z?AZLpF6IE9k8Ps1^^kbv7B$r1W$RbZjIe<57ZC29uX-_HwdN?b_K}{UD2j#?kTE5x z2Z!VF8uEGp-UCh&+{1J!;?@{sITNxDXj03Cu4tPAS*^I>>jcQRy zl;~$t6|<>~>L7xO9fgX*t1bXHs@e0D!M`1&8b@?d=4#tYl|nS$x+QS!h?ehAxz8^V zYHIae!KfaPNd1a=e~AJm30M6#43Ha^WT}bbBhN(KhVq@hbF4Jp1LEi^!6|YtIOA@x)=DQb?afw2qj3OjntEPpqT>wt;*og$?edO9Ck%Pr zcJnksU|mtUvp7l|wKZfVFb}++zX@K4)4x(3G`tRuH-JinnH?3jQLUd|{D_uSF(mo{ z`BA@vy|93{BvgDQ0q|k)G0A_xixv%Dsv<|_Dk}2FPTD+vBK@JjDp6#rV!kIP9xKas z3yYnzB5vtt5LkX3qb-%ZTU^)8;VIjtED>|Dc?Omrmb6F^-A8l=LZ*fG^y4!yNztQe zX?1T8^`UTS-&PCXleiNPh$@p(SUaDgr1TVijmvH6W%wQ7>6p&odDwrfl~+|MZK&vk zm(qN~sM`CK_oQ?@utj3Ug@V%2DjLnCHYu__=JmAQ3u}bZd{gR;q5i3llQs1D?Ht#{ z@3_TLP=lQ&lf9n-X0e(vyZUOiycuoZ=)jVPGX_=y5y$fDS&{6m0YTp`P;X08rG>4Y zG2wztQ_w+XOxsKBAfSK#6cgiE!Gr5ICS`%G8sf>0sW$#YLL;Yh zo5#Z)oW)MY7b!gnfK{y{jBo$*^M#=|8*1qHoW8jG-W- z{__94kj7IOBHAEBVueg{p+Gp_uyr z?0xBS<4BU`tI+aCPt{mfChkLRDKnf^WmY|tmYu!xvy37kiJcUw0iis4Y|ZvH_VxBj z)+2B*A`k!qmq<$Sqq0O2Bmy2D?w{Wn-3@mkNxPf=WXRsr?fGpOvJ1Mdhu#`ZF^W_LU@6otrEsTdJIdTm zj3Ic-Ird-!VigzU@vBVe9!D)o=y2+Rxp&}4qiUfIEJ3gTvV3^_>*C=pwIDt>+K_N; zIe6658FPOlW;Ws7;M3}MyN4hhMUsN+8hTvdaX(BS(gq^>fuYAjO_Aw?D~~jBh8jDl z^7oV7%GYqDm)|!Bu_m&buj__TI_aDoS?Ux1vC*I)2o#}6cVXJU(0ZfXeDB-yee^BsK)&lIDQt7(Yr2DNjgIK?xa{6_yDp+lrA)fkK|S^n(g{2^ zo+ZNw3chkXV#(Q7BSx;Y>;7H4(g(6Cx*EZ}T#+y$Uvf|pk7s~jT*+~p{t|!UOAeNr z`Fei|!63w2wHv^Z;_v2q{{%hOSUlCa3UW`yZzhhabv-ha5Sr-GhH~sFj*62B8lAzE zGq7aM6KRMVWkzU-8Y6UV!FBK2sG6W@cSjQutOCY#E~!(4)Si-J_a+TeqcheZ9Gims zgpHE4wwSKx;~z2haMc!pJ?wo33sFRA(l38pqD-J)YE&7#8ZmN>mPLhrX|$iD^)B@t=bmK@QPRy!E>qcU~@a2k}uo2S5HmtyYL#UaQ@*P)2BxMyX4Q05j z7DM!QVk9$qQDPj|_kcpPGcR(QsYgT@d(aORC;$36_!I0tYGBtmn$}M5G%}4nq|<-% z6MyTf)~;QBx#roUL5b6)2*~BaJPYfs`^nEgQ~UvSW%4BZYZTPkfzbqq5KeWrJS8TBe zWvCJQ0vU;w33-EGa8ge?wDFOc_dkCglXSb;eOaV9X)OJHt>tRJQ|Hw#Xfh5^!X6E2 zJ{4SLs*XlA>lpe#2;Sdq|Gt7IjRUpeGc9spLd)~4j(;%n#FyIfs5s}C&MEU?$~+iN zwV`s5k{y<6!iZ;&bzt!GVDj&ylm3eGU~C6QSlevAA6L3+C4qCVPnVLSFVBAyB#tB& zNsg&RuAq{t3CG?hed~>KdDqjLs;#L>U{mBI)J^A-p3|GdiGFb(@ba8Fon#)1<@-aX z`askgt*2-3!w7Xgn1$&fxO^C>M~WHgHe1%ih;m$}M@ya(_cVHb=*x!*stv9H*e18x zhc`tgmy}+hNjr~~lwJek)HQ$i(O~B3U@6 zDO!vwMntA6(sD$Kox)i@AZ59x=PnvF$p{!7W=A;sHAcYr(k+)oLJpKZ!O2b;c)MI> z`;@I{tew2px}&=2@4T&0?xf)wk?G-igq0ue8R&4a2p@LH3Gd;;PV2P3;<9jBVKQ*-bJN_n6K@ z;5>FtJuy}keB^@DN4tYG{G&oE?EX=VFjPZ7@6lFx9O%SiBL7O}>*6j)1M!g@QJm{8O_s~VfHJI|`d=IhS0sxkSxrs1nL6gPh{)&(!a;Pe`e;k^Ey zc)nzyg?fV(WsH9xe|SM6gTOv2zQ7F>jKvB72NnifX5 zfP*f#$rDs5W4pBnT!%*M;k)i>`xKAcqM-wrvapA4mB3?H3Ct1k4x8nNH{`p8)+XOV z6T_?5IQzJjB8Pu}!H;8wk+&53cGW*wInQB(`>=TvGSUN*;g9 zT9mBwCn^2iR71{vJWkee=iRz!CIWx@+q6YX90CAzt)qW`fYFZ*dBs_&*hMmL4NozY z+C)Wei2!}NiWE3Aw)6lu5XHEV0D<)7!w#cp46w#o!%t}OK+n0$18&)MLhC;{=LxOf zt?OjWb3%XX>!6;xsf|O8dyv>&0hk|`J3HZO#K^@6kNW+)cBP8fQ6>T3P*m+8G9#Zc z6s6#hf}=_e=0xL0v#8ifsG0U1Sv~cmA_WK8Y(r3Rl*j|7rE-H$fVt=jPF>YK=w|+g z4*Bz(ax|KF7VuH=B8KLJ^rk>lo!>iE(z8kqY3u+7o@8GK%P}$Aa5Us9 zyd-}m_GmJ8fE*&3cD|;Ej@l6}l9_guQ(=71%UXf`MQ7U0(;829#>7pyDy};w)lsg| z8Y-)&>YNpGF|uzS-kBf+aGr&Y%>bNdRbw*%=ULU*48VC-H6{blb~RJ?b(sN}<)ZD_ zWsr8tnt@|$ff>>OeL#Z0PFcgVW5>og{regwTyL@;jP~jaZpQ?Lz4z2hd`kXi9Ob zPBW3>W@)jdg>FY!BTsQ7xZ*XXxEZDoQdA_cRS`HBtAx0uKWWIKex!y75M?z*?qZqr zHv5EsRz|X5Pe36jDTDr)97akhUKSYg5j9lu{iMEAeqQWTI-|YGr9}2C!9O}6FDw6E z-J^uwpWrdCe-a9q!pxq?HA5zK(o`Y?#=W6F4uf?whuL~|9f$3_5N6{B;$9%PH9uzq zyTKL;xU5V!u(W7o&vp(LB4DF|LJ!CRBy zEb9?T@ic)+J8}hMZP$^ve-HP6cmMeKm%Hq*l%z+e9vvOphS0Rww@gPQ)EdPW^nR^G z7oq=#vk0vg_)CPyjb)owOq)4&r0T93BgK6brMhXGxXpM?MRS%|T#RXw4}UKhuC=Ux zr+*O-dMd%;@?02CD#h|)a|4ceg7U1y`(1W`tCok=W<%5~!CU8F==8UzZT2@j;fLZ} zpdS|$HQ6^Wi!7rmon90v_)(*V84Xz0$*BxQ1!%zsR8Ajs>p>GFS-HyOyyeCr!AGyi zIJC^bv_ikbe8wTaiom(%DQbuso1N2tmt%{OAaSWKnt)G{W|AuvGPquwJ=a6`q_l1+ z6eeLcwcaRqVD+qjs)_ZB?rFrajJXfkq_+A~oG%c6`g!s1G_Gn=pv}ml|5^rE>Z2L1 zZsd3UWP^jFqf{L+H)nUppBOP;f?>k=951SMfAnlk^=V%MEmuBKFtMZ!0o>_-%dr^J zJUxV_0t704A&#qN8+*!Qgy=S))p~A5*GG-?bj~$D<0wCZt-F?QIvq%Xm-<5R8pi^g z(~m&#acLVhsnePK2qRZ8){ijq_C5UwwjC(CZl8)pXnn``Bbb^KstVg!MpY~&_H?vx z!jBNynrl^W6=IZrvz@i|{9;0Xj1F`zz_Z|Q_CRu6)X}W#iKUh&_q{*X-JH#qLuB@tqrgWw{cnXj>>C&29Pgi@S#$`fFEJ`}*Y9YehePr#93UXdpN zW)Fe$TL=MF1g`m@=}&T_|42;{qrZm|C=g|T6pj%_#8VBJ+3YGthn$plPzj}T z+)QwI39I^8V*Mr9q_^*B2N@1zcvuE%w%9c@X;eHFnipoDlHEE3S3 zc!H9#Pii=+P97NOAEM6fDHML4(w=%*^ciJly(m&h>#J-sc?ZoVgZ&m1&bJS590BXA z-~-C~f+mYPv>svLCflDWx4sBIdPUZk5}2A71|mweA~30!XxB4;*@u$89GheWiA4Z; z;hvjL35|~`^+rrR_1=Ks;E5x3+y|6#*dmXB#><0t7nfKMa~6!gdvA6hf5J}8&f_0I z&=X=gZsdC*@_7)}jAp7q6gbCTq5}*9j^HKiL=nN;1J{rCg)!-flSO6uNNQLD$5^M^ zh$B4q)^m{;g5D#4ygj4}=2)WR92r`dkhQwd{dBB7%Y;RO$%lzI@@_|;Kx-~V__ z((PvVWszQO)*s%azpsIo*dxSE_$Ff5Ttr8FUa3f8G;8^P4Ag_6yOoSOr}su^97su` z+#eICPlxPjik!+i)V)-)@HHk=R0L$KSnF6kFO$KGWbioFj53?>ahWcEhoh%xt`Qix zMOurP$ej?y_p#Pr<^SfX$l2<@;Ea{75co5L1ODO7`uj4sG_sYyPr+q*1n#`m>!7`Je=F5V;jd5818Kwgi&k<(6 z&E+c{--i9?l*!qut16+*Mn;%g35*5lEhe2!^e01qHviidr}-#aan7)fcFD1yK3rUA zy9P{gyWKA{b}w=Riob8@%)aG*p|}y1b3NxuutZ>%!rxBI@S!n+VheyGdedJ1cIMKS zp&~F1fs>wXL$m!Ovk?Avs-dR1L5Nb}Ta?#}J)JcyT&Q_+PRDt=3D;=a%2BWmF_NYIC^Ce9 zpM<*!*B+5=IT@z=&3f^7s8#|rcU6p+rr$&ZriphjAUp}BhVjk>t(WS9JL%ImY+?P; zXg|gpwyLq+glD2vwi42hM+@;;Xa&B+bo2dB9HYM7r+qqHshSyRnkM4wIlT_;6lqh) zg9ayx>)48>Gv=)p>QNl)#{eJ-9O;UGrs@HbW9%qd4y-6HMryuvQ|8`E6ca4m@$gGu zm*9rSPI>$`Cx;o9jV-|*h@)oDwKo_cmRi`HtQ0@f#=-xYX7~Gk=ax&Frc-^HgyExz zdaO{kiYiYsb-2OhR7M9aGYp-etE#0a5Y2@HI@_-)MOle#m(!yqj}TR&k|J<_O?uLD z6&q#5$&=B+svkb6lCA`iJY+SXD-mYgdM6gq8}9py;$o>HaY*n#M^RvkL^^0@A_G_S zCqvjw#v$7xqCH%kx)vF>kDyeSgP-2Cm%p8*)09Cq=N*THRJl;cm6ESc3J3d5z0ZuG5N;9m%nlyFObRA?jp7JP^i#!2fXp~f!8oFd8 zvFK@^7ZB;5ZwHZs+LE7=&qM%GgI9ZGkko<3Yf5%B{3q8ns@eE(#Y_>+dvw#!`mHLdULV zP!iJEoAMn&Zx^Q{LjPFuSQ_wioPf^+!qAWx9viho)}w}`u@5%KU))$jLNfZ4jjrpV zJE~x5NZ9c8grVn|9yw1Kx;9R@m7^L(Cz~|ZDWT~Y<^X=;%dcZ>x?@H2?9l|_-gy=_ zHrzYUs>X(U=ULUu8y>5Fh0spL(NSF@VGw9>tZIgXatU*;Zghx zIUt0-kf!wpp)sy^{uV^9wpIAmYiGVQtrtMD~~^eai=CSV;qwjH^Z7 z0vi6e+dMvPmuOetVn$Qn>F2?0;PhKLr1awP$arj5xAB}LVwaAKVQgPpR+GB7ZRs`_41eP09l-8C0x^pk*~ZB z6J|$2Drfsi#MNaqH<76a^e033tRrwzQ!Wjqt^I9&1SGP0norND-PdHLGy9wG0bgbG zN1=p8*Ijmfy#hO?r}}Pu;2xFw>|+&d_?P9w<6jrakK`>yB0fKwnjSzljO0h;lE;cQ z-^{-sD*>LeqTiaU&{ z``gvev8u88fL)SmAgx|p`xi6NV^gy_BF;F@b$T7zDORSCoP4*L?HVd{Fksrh*fvzO znz(t+5hweW8d^u_+zu;>i;>g2NRgZ@Z-=3O7ICKwO1t61gS+h$?&+e1GRver%cNpP zBFjVzT{VRCUa;;6n~$GmLU7G1$}&-7m}c$=B2My(z_lzB`V(vb6V&7;L=##GApj(b zidhTK-OnSBuI4wVqBi`%>PyWsnYTLEFb(J^W-`^8>_NoJmu4n1U_^g1gw0A9`Ryiu zJ!F4uc91=9Ln=MRfQ|gnBM;(*%}xLlrz!hjPNI~Rz^utN?^>>*EwfM%6i^ayw8JjvW+@&)?UV*ZMiiW~Y*ldr zY%nyM2Dz_lPUaI5?X*2#pHN8Y{~n@$jbA^WpI$z$=MT#{pY`!tSAhgNp9MB4hf}Pu zQDuNc6!7lrp5@1;CxXHGo{7dvMNavQ^zL7hcYmH@-+8?I6BUKB0TD*#bh$eRRMm@n z_iK;H)^nYccYhwDEA2=5rSVu*V8i;L&*?srDSYZtUPcPEy5LE!;tVEptECgwun zc((bPFg}qQ32<(D)uf>Iaa(EbWzvUlX33yQd(fmh<3!NJb|M=heI0?)yfl~Kl~)ur zu`NRdJBsmxa6Nw&fonk%`V;Jb%_gW>Mnjs?9%!F+?R;}fQ?lurpf~!1rwN)o9tE99 z39IgfapVUbVLlvPps7y!Kj}|~?1zvGYA)xsC=1-~zy9c_Jlfn?&o}zDZ52zb6`yY{ zqO_L%tw;5@)_uz|6k8;~LLc5~k98T=;KyFfAb?iy8Uv_BbOF^%s|4PEL=Fx8Ov40H z0dQOGiSqeG3e?JFQfntfTI-F#8QNb1)y`TwxGy}OeU?<8HQe=-RG8qX@dU;y@&ZrX zC#<0RT()9Q6>EjI>tfJ<*2hK1Z~zJzdrv+E>Pnlw&xy8xVTArth5xioK;LV7{=D+flw6G(}F1l1nl9vNB9Gu3j` zmC49z58jcHRT)`T=85;dA2BxDbVE(kFC;r@CfrWvr0^XIwu-`sC?1<0H zH}EC9{crwq2SXQ%SN|)2r4}JLa`9-XXrXuTfB21jt&XXGX~%2JOR`E-Q4)cO!>Vx* zC@$Moo%Jl|ao9qlU?M>~382lYpy;Zg7+yt1wDtF8LDH4KPr(#8;4kf=?L-cLcbjc~ z0ZLS^y_qN9*51ZR!_2#|)fst@!#(OKk0JJIn=Dhbk=UR5;SJtNczL_o;-);Y6PL9) z<>Sz8F-$FgiVa6&oRTbsaNLg(xs?AJZi!3y3EPmqJeR|{&_;9;3C{L)J=SEy^iIFt z_3yPcwafYbz8Oy2-EuRi9YRDeR0rl2xCnDlFW)<-a*z9fO#-?9e4q4aJKCR~6~_OP|Y6)Ury>nfMrgZ}12VBnGQu!HOAMAHN5n8c*j} zezu`^phh7K&arCCc{|^;P071sNs<6i9nu55JVVsMYLdQvRwE_~N1p@!ZSv-cd5>ns z@n0fQ8d&IBpn9Q)@M25ffKverDUlFl?tf&T6>Ug~6n`qLo&vdLgQgO^WQnv+w%Jlh zAQ`@Y7Wp=Azas_Gz|;TAArce~tk_YHFU0(o~xH&8sY%DKW${XjDn8)u7clx88G>?@1pTM@vbGL`$T9 z=QmEz%7+FX8G)XMhVO)-V|xOgCvI6!5&bKpLxeD+-IqM0ob8!^8tiw6J!Itrd9M^ZFVpskoGFgylwGj87`PLCP5 z@bxaiewm5+on!_L)nBbuifizH?uu00n5qJ)P41bVVd)AdP>Vd+W%@YZWx+ZsYPhg> zE)Zox^r>-?`R(bcJ>mPCe|Bjb%nx-#VX(Y?OWlxffLn^C`eHpaXb?oFGnJZuV$3Av z?FGo&ms`CoKbyCUe_Q-p7f&_CZ3Y_<|C_mE=d)0N zsaFM$ECH30yer3_;l}a)luk$KS*5SBC7@blMiC6n%fm!X0U?|*#kM>AKpyv=X=hy zyBFN5M}oaR;o|cGd*>Rn(VfUu13aaLXs>D5zOMu-GP?5wW&}DIwAVKkrwzHaRMmOet*a?;IM1ra4E{6%MUNe&qZAg$98a%9S#8vN zMmgV5rj-pp!9w#)3p&W@U?vjAqviRI>evW@9F0dHXN>26T;*@I!;0c!9D~lYB#LB^ zRy*;j4E-E7ySr_Y!}C@Ht4Df8Ef(HxY!OdTEd4xsKlG;&GD7dRPyg6`98%QDC0mmq zcu_>-pQduXO?~sDUucR< zCz+pyskY9|=)AE=`kQX4uI^|e9k}RY*;zkJUq0*EbJ3n%$eKj%3C~G5duj z*J$&IzbmIIihwir+`SF>1Q5c7hG)m7hC>}KUdR^D=Bz%p7iyi4=J;b$T^Aso9C6Bw zI+;;_S6W1Tx%0y1`&nhwu^kUo)$xrWdI2GmhIqZBLUo@d($V1rRzq4mlYPWd^Lm$82=5GoUXZ{5tts5&LVX&G-jMWKl608 zG@U-HPWMdjT%z%}l#Lh=4YR62P*V|4|HIA4J~ZBuX#rOVN(#rR#Ek z*bV;*G-5C9_LxU9P>0oK9kJ_*vEmeB8pNM*3#k6C+x)?u) z2@z^f?|cpqJqKD@{vbE|{g;Pj`UNNZ!o4>zfL>G4Dt5~UXiWO&=lx34EW@#XTtz8J zfSncBCI!<7Va{|*&aU4rqEZDMm@k#L2h-+w^J0PMHgpQUruj~w*-Y~bO$~h0@M$BT z?wr*@I^ED*)9NIhFF-oHCw0=P!$`+hsPEKw!%el??vxk?51Cu;GJ!2B&H^977FH^s z`888#qd&>TZ@$fcXd^1(=5R0! z)zHsRWnqX5G<3S(+}&^CzYGY3hZ20d-(;1-DSA*`Pk;$$T-{h;IOEdBqQe=NHnu0$ zj7wvwhQ-d*JY5MKO5Qx@sd{(+`1qH*nzcnftK;(3M+wVZxq(V z7Z?$^x)FF-e`eQO>y^i5XAM0w=Kv?k<6*Pi@0f*g(4(FMtpU))P;A`^J%l*A3X5np zHV-tZJpo%7lkdOx2p4|eK&dmFhJ>L{rBKlpYnEb$X0gTp{j}VFE|vhgcl&IS;8&~t z!{ajD9BNd?=Qq1PEWT~B`^6#ICaY|DvrQJorqIWY<6S{3KgKTbx*LwT==w#z-T-3) z1>j>Ovdaa*N>M-{E&7wGk(R1jCNvZlDT!!iMEVnnwBB%WphQ}${W>|eLlsib*RLIE z@s&{}Y-hJ#E(vFUDW)1&n$1|Yx@(z+gWo+p&ccqPy33|O5{35b;q7WuVgZS>*zRu? z2eCdHzPg(OXWcKiw}0Ml_e(bH%YjXX>)0;N5CxrRHsa*J(i^6a4J z{N*uCRvQ$UTHq%JC+{zh`^_#}AW!vSad>)sg!uR3cAqYP4y)yMnJ(z|aZ}h7llS8cyuU1RG%HQfq{DFl*$m;0X9i05w=HlK202=H|sd z|BS&bpx|_~f~{lsiND0=1{Y(A1Pfu-$zQ=-MEcGr6JL(}j5$2{nxsD#;0y-OWeT?R z({7c)(KvvAZM}pOvHSvLWsV7$3lJm7l9Z7|eB`a`b`V?YfaDAUdDG&6JoFGWV8aEb zA3LsNiZpVhf0wlAgv88maB_3%EDrbkr|lX!DU!n>*=3vMcKc%iPKtFdNZ=4d1Z=T9 zEH>F}YpbP>FP-rPJqZj%SNIo$N-2XaNj=4K$@7D&V(9}3<{d>i=IZt(!y3*QGXcz!Jw ziZ{#E7j!N94sGM{H`wxGC-9tcGV}mWzjtn(GF_$iro&Mb(8$4QieY+Av)zT-u zOMV%DVvexhRlca5RM?B|={Z|U=ve1a?~?2Z-S$GqWm5yR*t1nvjX@BI*b_!z+YT~G zjse68{kGV9T(>6*xICjhVKA8E4D1Pv$iDx%TmdQ*2rQd}O$ya^Ox<ar61eBMcoB`E-UnEO#f&UPKT2>H8 zp{9sL*_-tu{Yi%=Rv?|p)?#!3r6vYv`v3z%Sf})D>RO3`!3LP<(xfIHgkLBjDWHsJ znrkycrm^WrSjqJfmDiI7cdfuO%*bGzj<)IBy5XX@%IQG@9@SI_355cj5hMsZGWptn zi_t%vXkVlMiS=q;mzie;|AXf(xl2+8#Bdys)?k!isgC9bEPCXopV8`1++eI(AN;uO z$1=yPc>$aHKp)6qfTF;aCjt8@@{9`3 zYMN|+KQ`1M*~~+oJBDQ{5xA5j;+S23t;;Cs5Vd~Jwm&U#CFB^NPo_D#9_c2Nw4wWP z>^quw7LWr2pE~3ywCRkH!(vo=WstCl-~^BZYe!~%9LQl0ha9d4#R<+hTfE&dAp|*k zq4Cm3v0Se=DAoYUVucrCQ-u;L|HS~b(q}Pzrl2hjJ}6O4BX+frDHrL9_Glb`*x?2- zoj|cXZQLE(H@iAKv#Wg>kdOh1XROI6iz%^$IV2L4j0Yta^w#!mn@MuFO-J*-R&R|$#+ffYR5|M_+ z&8*R`spf+v74*oHQ|^)-%85vSAZ+sR0NGp>0dby0j$9!A)CZ^V0fioho@HS;KRn7o zld}U**pU;d5mdp=7*|1wGd%#=c6rD?CA&2wo2)-VDvO^c%P%GbFEI^oTOE z%DuvgDLCWgSa*pkc@7zPs+Q?`@t=>$?$LU^Yj!*s)6)>mv@U8B4x?< zB}#U|*)KFEdxPF8^v%OP)Xlx7FEQ+(K`f#kYM5$yA5O zREx6$e(@tA!iFM z8ZCb)Z+d~=8yope@zybn3F_j~5CYq|j+&0{(w!TKY@QUj>c_r}*r);Axv_bni~ z6@2tikiNOwspH~Ft5Fc#^#3O>6&7lhjooCe~xusn2j@9*AAoaE2wok>w34}99ZV&!S|B- zvlC8c91ciL;G2-|u}~<10qaZYZKqC~(P#UL9x2*0nj2>12hfLb^4cOIGq`BM_s6Ag-W(kq=1l=&6`z`gx~Eyru+RZcDB_Uw!^PLj(FyO9X3nu=%01Egkev2V17Pc zZFXBoLSL+*YuRTIk#F!{e)ZQM)nBO583@xy@OLhEtNVTWJ2VJ1RLwDB2ZcG&2MGj; z@!J|SB~&2o65j&*^|Hn4J2VtDbO#3Ly;-b&9ABWPc)Ut(Z^4qq{QMzx6_Q~2)k3e*>R z3-SH#a0S%4&$7p>_wNs@`{ZGHcn39gJNPUwzJr(P-TQ)A58L;eqF4}{+U(%5s-Fs% z*>dreZU+3+<7S1r6v3~-Usv#7u`Kv&^snu{e%t_mmGYkkS`-8W%5w>Z7J#lo-vM}# z+$QO#WQ!{iKY_R5U(o*%Q~y1>koxVL?dCDwY`2Ic=L z9l1x>+`_e=V58yv_sgs51N_6s-$J)JV7^~oeZNf~&^PzDw+mn)cm&{`;)j8?TKNiY zQGWe@F+F6zCg4d#f57Ts4R{}yU;j81t0^ymr5zW5|Ad!#y#@cEO($Q&-_=n*nJ_AcTB^E;z0>_S?9gpp~Yr@`I7PX%3lQ5QHb6PMYyB$_e9K?@)p$Y z^jI`s8^2R)-LmT=e{%VSpOV2ulXoy4<@dmomKf zz?7>Pp0hjUDz2`eU4-`2_r?2#YQ4LCyZBN3^)q+M0|*!#=L8@15&;T3wnNp324FCM zirvdyZcjCzLsT|sfWWoY5GP;|8eqJmK!1DJ*j z-JV@#fLpOkU~*y^V(_e=EzSp+mTHBn9!*|zBK8Dx0L<2w7g3SdzapQFfJ^3O>S3K1Mn%*u1fFa>{5iRLMbBn$S|J zN--JWNA!YZBTm*fQ&U%h#3{FIWPsmHMz~dRaZkhC$azRg>`73N=%SBY*AyKaGABOQPRi==VslxzI0vZj&z2FCYEd zex!wt&(y%Gsu9L-=r9ygGd|ASF|Lwcz> z2S6^^i?BJyGR2^HGZz!~%9EYvL9VWZu)ode{PyfypG^b*^hI73iBD`_3msHp@KXU zhU{sM8`HYx;{ElCYj}nh4hTaK+L9JbCx-3Q`Ri59g~SvU0SOYE>z-l+cIT;*F(JRr=qIF=M&>|etfPuuVz3`>k}Qo%Zg}dKWXn2!Lm`!HNatQ zBmGUd+%Db>(gNsQ>pKG;>*bq4rlTmjrJ}rJ(hO34%`sIYnB5G5ln)|nU#*HA!T5qU z8?xtJ+TQc-NU*ugAUv^1nn8RsNVOsugsC$Q7E>`pnA81#x?>cKi@6)u6@DhdOW2xL zg)(SfP#naOmJ(Jr(|U**Cafh;^-uqwCn6&)C6vBN9Q`Q*1eb!-TP&rPbR=mnP0lby z2AH_Lq{NP;`5Nm5z4UA^&DAwO3}u@g)JEI~_g>ycyrX%zZ3Ma-M{JuNB@SIj^_96T zDaex{3@Jr_mC0WH3P37?&1Fd8;WW~aYA~cc&-G)6F{CWd^j#Q_0M3bH{Q%v8j82p( zuOs|67oY6KU|4BL<;64&Ls{Rs(vX?~7%@yJ4XM9pKeh>o8$916pE~jjJ+h|Ldm%$k z6I*;Oh7>{7V;1z57$PkHxJX|~QFonaV((Id=%XG1NI6?;qAmvQ8UHtN!(mzy0~^=itx( zep*$2R2i9o%jumT@+wv-OxUk}UuhHzTC`BaAemuf# zB{YkKEcR?6EHD(z>p}z486tEOIHzWoJUqf=r(`Yk{i?l6&O!XmUL1F3fgT9YnLH$4 z6EtCx_zb3NrTH9cHV#o+JTaYxzfD#cTDmoVva>O58FkE=G$O?`U4tpF5sCE^LV%MS zOfW`u$nx4oqRU5G6vR{FfrFxeSjDB;^=U>+lPegmh9@Dw31&i4Pv3hWe5pvLdHUnY zD`z<}M;@Q)lC$FdE<3;imWR~_rr8Di-C++kpGdhKhY6DJ-g~b^rrWvWoSJUW~A!G!{0W%>`Kp>_*30lpEE9U*9x`0AHP%Kv`tR$~Q z7*6seA%&{2bS23_1hX6Ve-22IE_dsH{R6Wu4xGTlW(L6tJFs=9HXD3etL&S1bO~!J2#d41Xn=6)!{ZP*k%WYz;vmOL(!5nBX z8W^iV)s;vw+GDwdEaO=XM?@okE?IibX?}JaV3uLXgajUf{D$MM#zMG}E9&kq$9fz~ zC_LASu*03PvuaL1Ho3HR0pS${kUsaCFL7U463$K}=+m7n(@$VW3+?XFpFH>O%@8ae zc`DD2pZGqxqT=uu_2)T4k1vge*9E!MpMhM;+l4CBJ_VWq=ym`zUM9AGUI^+6Xnek} z$1n|3w{>sS+Bk8Jerp5yPIzL*4JCh;)`g~SIhKv=QL-%1v_r*%)L`URqPnB#DDr!> zfGo?kadSI#)$MJv%A$O}&JBK#Fe}wr8;xkZEh79-vTsW88%D-Imu)VHWlG0wZxs^esPc zLu!`M--L*lhEzj`!jUwRh7{6*%1A198_3UYNUb*M>S=qPrj&{rV)THw8uY}lR2|Ki znAAB>?D}AMt46A)X#bzRZ&7X=Iof>{#Hr-iiA>`T&|BtTAV7G3U9mTg*V$aoIpu;R zNaC6zv><3%`&X*+80UYzJjv-E3`opiKnyOFXq&0ju2v#}x%B1huX}ntuD;81T@TvZ z;bk!tJ2&X2JFag-JEVeL&$FxjGOi3~FBraZ|1UD@c?1x$JrLB%EcSHdBkh2@Y;64_J!AU1mpLD*TjN#Ab3rjE`bC0z7J-PwJe6F&TJho z6zU#NcCP4u=p9eig|kT-b=VK43y02js=v6u^ua8wdFb#(_{Dga!9M|QW{6sbSubDUUW{C9HH&!>&5fcO>_pQ z|8L;PX`GVlKlXANcge&bq3wP^**+Q7eZiw6w2h#+uAzs*X|(9W!tQJD3TP`y%=)IP z&P!^-4bx0GPl82S4Hh9Sr$7Od-fErt1L5_Y|Ku1 znpW3gmoV0j5MQ2{y?ws38=^R&wDT+FY`<)OUZ29n#^*{=y2XO$ELe#=mV8T1Ey34( zA9h--SuKv(&+Q82OpCdP6IA;d?jDfreg?V^?sh*Ty^PkY)jl}g{S5agst5+9`_?pg z7jP9~V@vOQQ1@~&a6gjq1=$855sb&=9HCrT=Y&CEjU6tmGjt6)qo_LpPQ&?_;kuH4 zl1B8EuA~}mr;{|&{F7gzx47T3-GOXE!)_nFRXLfq_G`nVQQkqJe$XIZ4N`v z3mlhIU(K1qUAUgTi!!)3k4pS{)uU2>u}_bxb6#s>h)TifuA=|;4XXvwZ;lv$ijLr` z+xf4*E@EzA0(VN%yq(;sfT-w=D|~!5ftI4m?L51JzU1d~=wFb67gtty%Pjh= zWLHt9;P+RG|HnTnr^$MG4*f`f0ABWLPr?%15Nx~om?v8H+$2h>)q+?xYOa3ScwO+C~; z9k{`%Nm^cx5+7ef{_Gf?vd?j_Q2T6E!^5c-e3e;K8+Roj7e!OCK_(Oa- zc=-vM`+%E3%M(?9gBtwGsKjXId%!UZ zKrh)9Udsdbvqgm8S5D*XHjbCdO+tPP7nT9u$vx}|gM0eZ{My(zr#Mn?0VKxPsxFt#gm$WUC=p3+4!IxGbT165nII&Q= zVSLkqzmP{ffGysC9Q5@)YBUC!K3q?=hM1^gKbjUH$Lc2v+-!ArrDV}ZP|9d|htL&u z^DIeYrMUZ#MjU+A#IP6-l)Vyh?vT-n*bO@x2(>D{qF6FaHa;0CuQDZ#;R3KF-mXaP z7SgS_eAn@HlHMtc=q>@KldfrU`ZI(KBjrswj9Wnr0V{of70*++b_w=!1$GgZf3dz^ zKD~~9#t0)lk5ks}iOq&(s^QG@xqL)RGv6wbP&IF6TBLelZ{%mb?8GL4Sz52+i}gae zfOT2lpece2PnGj1i*V^lfP4l^2!B0GZtlu|J6$8stmK;@6_{z(*fT7rUlWj4%W1i) z4#ZQxH#P)+X8Cf?K1Xn`XZ)N&9b&1nHG4YshxeDIL@=#^WpA@B9ksx^WgJ|oT`Emc zfTF-&(_8vf_+J>(57Q51li$+o|Cp%)KHgzmluiL>zOwBri1P0}gD(mr8}Y6Ft+I1lUSA;w?rd(kM>t zvO6eXm@9Zc7wzaLLYPV^6gQB`V?*km1jkoZ)6oWxo4#4W5y0U47o1gc9p{+2o9sYW zIw|RYF|;W(q$6j24#Vv1gec5f)L?|MXNJChI2b`FI|Apq`0H{G2>;r+_{0aDl}GT_ zrt$$n!fUe5pZ_{JW0tYbm~rMvY!~4&mr77t84N$#e2Y8u4a#k5#WBdfupe#EdQ<2$ z`?!E7QaWrxS8grTxs1LL3sIw9utBAa{*YLIsInn-$bgD`Zs^QC3x58Vj^aN#VU$K} zd-P!JIHBLKIa2?PxP3kcBKh|D#XMbQui^4BNS){fJ}SqPHE1FyLp$l|`sHkf?y7+o&hC*mGgMu3bU2bfaDY?h_Y1o=2+Q1m zi4Pfc1nonoL0|uk*ZuEgB`B9xoaW#f(+^#hBL-i5P)Y$ubJai88Ly$Ck_^2LJy8tb z*SY8tu55!tJO-)LOIP#rcUa%fvcB(1*h19GYPbV*P^a!ljBu=fap)U5xdUd}(BLbdtG?Hd$FEx{T(_RR*c4G$!@+XOM75${)WQ;hDOT!sU5ylk_8`PL|3A zIctVd`)J@`z9PB6`s$B7(B-0TK01R`rUO>%1WWTt7uaWbB zaB=KMC4G*U7pAYyO;TI}X==!x-NAK+kMPNxf#fdF-wvfPO+RLLix~U@L_aSceUHZs z@v*rC@YRH+n=;@Vk{4>+K4;jtXq_eb(^tP1uic=}O@iXDuir8=265X=nanGf0vQu! zOrhDj4R_}B0T!(BYC6KG``*-laJj4agaH@(+_F&=;QX={4C={`P=*ndU zhpr_AuOQ5=e0?Z}&gc~FA_6#Q9T{E5MQ$L^sG@1PA;#h+N~2d`T~*66XS&XnN13i^ z+o9W|vd~ghNT(A+Ell@*ACp|ZN5@A$Q+RA5jxZ0j|D-Bka3+Gfa)NSyc2ySIoC0k8 z27fYfGE)AuOm3ITe6@nY4DM^i&;TTC2SyXs)n(O92e?>1rv<0){b^uf>h9qSHnHqL zu&fUCkGU6;UOcgzA8E}c$&( zID^gt0W9u*VWM~v@1Yuhi5&d=7~cWFJ6B-QK%SLou}T0O7QY451&1vG5+-<-BvyOxXdv|?O;VuYUN7-7G>EX(9HFhn}k zq>sI^OiG@8ZVQHJhu8b-5-Lfu^%6RuEC7lE${o83Sg5o41>Bj5M5uC}#H;0h{{27D zf@A|`ljYrYvW9x|C42%-Ta#lFi}^Ji>V0UL{DLfSaY!1Y1p=f1R{&%{o4*kxh1L3> zPZZdYUkTE>m0>q6f7=*`&WxibTH+^G#u{W-b!TwXySo42ZSs9`3t?A!qWm;pt)m5L zeS>mYFOu{8qz-mlUIVYQMQgCe5T?b;=yU;S_Hp~vWgcDsGvaJdlkeK0gt*;s?H7&+ zk>xcWpIO3B5Qv@u=7tFM4Mcv6g@TMZcul;`c5z4NkVCOTe>EZP0e>q&bBthCO6&TA z+>%Z{pWL1NdU8A9RKII)AMyoHPcBbRPljCe&O=$9WG6Q#zYMo3u;I+Z#Lmg`;RXZ8 z>E|k1DY&Wn(A_=QXZy=tE*t0;W?5v|_*__M1tWB;`;||~_0m%a`!>e9u+>pc`H)}; z>!IEhnZR5#fAc0J{6xsK9~5e0*ckr#oj?2V=O14GK- z>tS2um^aV$eQVsW>baE>u`L&FJ_|89(vsq3=#e5$e=b#v2oj^6&mz>v;WY~ITdLTN zdQ@l3p|P~tWgiY?RW>IFyB!BCwv(AnuB!tUvt^T(2M0|jv^7oF+Y9S%xhyB_ah5I9 zj-~}C70fB8wYE8%I>r>;b4R{>xU{2*H4cLO7$JNqU%o5t=y3LOqmP2LW9a>b`*bzw z1mmgAe>OUn=IQ#3s{=9AU_7(zgUB|TWKS#EhrBvwlYMBhW}5Q1t2+WtE+A)>+^+Jp z7aQs4r2Z1~TNu{=SMws1-t%Gur`pqTV3>Q?B)DFk%m^_B$)Z7St(XBxe~3gs6m`M*dF;E2G3Xsa7!rFT*@5|Q zh{&###r!mlps4}L&|&0;e<=+GnRNOn_#=7RX$mpj9NM-+50Ovt0(;Ivq=s+&^G&>b z`C9SbO`j-OcZO+~%uom(Jd-&_dfFtrs9Wfx$q!UgmNMa1ybp zgjVUrkjdPb`V#{pz;Q6!e?&I5>-z|8q8Us zj&;~K1`QfBDD(&dQe*MZWx}KiMIa4iSGw3g{Jny`MhXY94)G{@;M@Y1MBd=Cks1!N9#-*k$sD>$_|DXLzSK08v7;6#}r zf^;26kVGIp5nLRs$|kkGQm&z7eoP*6Z09DhEGZ!#r=q2hD#-y`Mad%rvqoUPSX0hK+~=Ur15M_GR#x z0s@?W2OrC8AGVt#WA9bZa9lm)9F}2P?ik$vL3n?HL8>}VbgYYxTO$D5(6k@O`z5G( zwEC!A-zmR9jifBBCMQzFf9kEyJO?iK;?`5f&NGpAfx31_txasoTd0Z!OmlNp_$Atc zsCYW_N@6s`X>U)tOcId)1zh2dm>ngO@gJp{|I#ss9Q>uVZ=?L`8a_bIG$8M|*p&F@ zW6dU1?B6HJ;v+zM=Dn~7>|uj`?-I`*+jXt^HhuN8s^O#XXi7ene^HWNGP5X6qO^LX za#bv32HX?jhy39k!x)=z$_vwd5AT@8XStwHG&!(D(^oAZyUi*siIPwZ&y%zD=1>rx zD%zSq2|rDWuElF?&s5X!_IkD0&fH2>#VUMvrEV?v`$6*g4mf{K#Khm0qsxm7!a29x zv^N<>AeeSp#Bfgwe-zx3fCJN<+r3btPtkmV&Ud8DsMjRef*a*Vn@ft|k{FUKmYl`F z3SLGon3q&+#ty@W-WlTh^87x{<6D$7oF5{jv*;!|o#)ps$$)CZz)K6KNMn`gc5^m^ z+nD^r2(YlcMi5|?Pbg#)Y26hY)sa(0+IixMWW;aK(=gj6f0JA+8$PDizB^@Ip*O#S zU_ipM?6BUt=}n~aH zN7`mhMlJ-WxxidRt4u=ScO0TIL)!~Ne)(i#g5B`Hf5QEU6+Xo7F&nb*8ctS2P`TmK z!NZ+m)dZ6Ab8=V!1Osit|H8V#JB-RfWp2|svPYYP*+g@g>_nO1Mqs9^PhAz*RqU4z zd^H#vUHx5g>>CL+1tODk#ohiA19fPdMJy97)YydX3H*_iFra$E(@S3?&mu+)S#tn` ztMZ%5e-EXR^(vZ!9f1dx{s!lQ;NnEEF|ZOaG`OS{W5N9FPZ47S`%g3tkklz4nL9Xz z@QKh7xH#m8VnOnUY|ISsu(V>6E<3^sAUL3P^-Uao)-2zL%EyDS6XIh-I(uxWg`F6axCD8GoGvE$rBW3n`R`|cGl9WL zmzc3yVAAFUK2M~F{&qDQvFi&N=p^}g9i<-up@V(JlcR7;Uv0`%565O`h5M(M#U|z- zf5}=|<-93U&SYvxtrgS5%p9DQTPnB`*Pvk|Wm7T=&;$C6L#zNgf;G&b6=aQw|HZ$c zMiNb2k`L1NAZ-KYf>?tU9`?(>1e%5R0i7T@;CFggQLnPQGRLMfo{<0}n^cPBi6+*? z^9#JCiPnV{smRjCiz-|1xtetX*-29Qe_h0HV8C)IBqn)@4EH(sIZ}$t(z*x?X$>x2 zdbBab{9(6!B|85EiBT-vg-{3<{F>05%*r#hXPXzZVlEE7Rn-eDqi3bG1VC(7i1)LzMr*Oz7?2Huq@-DDk+7!xm?Gj=`5%y38a0HW!ZN8*i+IBmEx6iZx&e*y>g z%e;`wMSf{nWtqTkr1->NlYa0lHz+cp@cLR4YR$$jWN*0|o;{$n$$P9nSV7_iTrj8) zSTCSX;77z|VBMhj;}cvNi|02`={9_Skwrn612qqThcL~8R0LSs6&w?h(JjrGX^uAI z=m*vH#?DL+55Ywf?z~DrK*p@2e~7@LeIMMx8Za8viKI}`0W345MgeLrI6p3A{8@MT6gaGo@+lsqrTXsJCLQRS21(yrta8b#3Y>k% zK}yh!6((I=(%wxxvq_~ZGC`ptu^qBqzWDiWRkOuv!K*@LjUWPEEXpTc3FS9IoDPQh z2az!rKZ9m0#KL4iHd_ySe_nbsq%h?X#DqQHB_6w@>t-;8V5E<>_8)uEb9fP7WP*0X z;!P=SY~=$-?U;1a4v|WttF2xVgov>1S^YX+D|~~T(&xf1{_O7oD-x6bYEYCF^b?{t4%dr=xX4mBwQeaYEQ}P>6nI#g$dvXRqsEcCk(+&P*J?_=X z$t~at*uXy=-D6=HQ_t+%9;JWygQkj-HF<>kFGgI% zmQ43;%k!LmmTd1ti(!uSDc>4b#@sSx!h2y~#LS`!XV6$?v9vqIIGDlJ2Q~bYps6r2 zYo2nA2}i8)fYKSvr2`WWby1`(Jrc&-bh*rJv&I z|JaLA_?UAk)p&@)`XlScd(EM8E`~83`>xloxb3J3e~6&SS=KK;H!o5@A?J0F{IgWf z#Ti?=8#*#FzfTx+wEoAOOC_f-j+(^QzeUc)4lQd2yukyf*0;!?<}GA$E~Y;N7v=VA z{@&k3RmLupb1}l{EHH-8bscjqHJk^pDU|@S!Y&}q(V0W6R%6J%urvPvd~QBuHqdFo zF)jF}e-`2~a~u;)wQG(?vjf{Q!VWzLb3%$$-i8|%TB`;{Ja}-YKyer8)9_unAh)Fa zEE`3KR^rNbJ_kijCbMKXR;YO%M<&t!p zEEEJmrGL4vpUkGl2l)H$nAj(ef1sP-n+VPod~R=ZiV+Ps$Vrw$w=O(L z%dJSU1E9|ET0Bq)>rakU>{NT)LX>Luo=wYkgV2LR3eCl;*3_}bA^i&!vuaooJQ>uV;Mo;tzP2qtuE%l`#OhD}D$#PXs+{{VLubf}lf2iwZ>w~!ag zH}w&Us^zaqUx6g}6@=#s?VbV^LO zT8>u3X+&KloC@S$|-+@fhB$Jpud2gM)Ej5Ic1kQ&u z{S|ayY25pJnmx2kfj2?p6KL?lh@;q`>4E8+W2rPEXV6Nvi-kCCfo~3Eem(;!eL?~8IRwf}7Z?!kln~#X}h_G^leck$DC&A+RAIHbg{GZYE(#ZG8%Kfz+)eoF!#& zN3qZ)^U8j_t$8gD=pT87NA2s5fA)_Z!G5me4>wuk?Q<-C5Dtv0h}hGc{?wehrcCI< z7V**0#WYlJw(as-lFvQ6|DDuBt(T|6Ex~vOM%=5HA95^1a2o@Tr<0d&ct7dNLP^h^ zn?I13A96T-xs4&m!t=Kkn?X!UsR059#)ceAUoSu8Se{{PTr{~Yyu0bEe=}cm@Y0s1 zUN0@JC;RcX-kk}Qb}CC@DaGEw4&XROXnz$fccYwFKCqh+YCxE+TnYAHX24`4+!YSC zBN%QoR5{CD8C`=-sjlTtp+yT1*MR+XImfi%o1fmcSv#?$t3f!13u0v26|kyFaS)4k z8Z!A5x+4maIndoUHO(39e-4YwR$z!%%$P!F#;JRtwxOIUbvD;nwn~fLgAl)by`C@I zHo7TdK_-z{LbOe)Q=`JKlQYtQkz4DNs77mCcC{WGvZgqf6`I#n+DP3yDH;g z)})Pd?NoW*YKPj4rp8Wi%f&mJ%4&4mmAuo?do2CI6q=M#(mV&QBC$Gi8C0T*1w9%i zQjb}&Iuevqee~E~Ypa#0jUvY=;L#|NZDiJ@jTtx^CAi@;PCvzu=&=OO0E+cvPz`w3 zI*~3$ZF(@C>W0m=e^Zz5nDTW6IWk8y48!v@Yu4SR=(aQ6)`|}7Qe;XZP!c2)-c6o* zB6BbVE>UtE)s!iu6$jEefH*o~BstL3d?ik}=vO2W8B|Je1#H;8Le>qw>Q^#(HWZRdpin}g`&DCXe zH=Mq3i3EYCs@dx9K&EN%B2y{vlLcwCK0f&=I^`2Z-TYIo*|jmAhK^@;C@rZZF`6!5rW+{N^FEY zKxofP)x5Hf8{#xCM;~HZ>kZs(ym$zoL(byLL@cIjTApfksOa9Km};iEx#w9D$xsY< zsHjySlzmXEJd*@>QjT@)xV@axN&#Pan=^1wf1-}83pp=is;W8D`~znSE35rY$01O^ z4=&;DHrM(Gg@h)5P>8#b$#7}5WsU9N@EDTa;b&cRSsZL2$Bxa5Ppsn-a2EI=DQvqf z^43n2m#;sB-s>M{2MBn1g`m!%A*f)J=g0VLt(%(U-=jy9 z)A($@nkUOIPV}!(_MyY3OaE=?lFFcYP)%yj9-6$|y0f8>`zmXB-j_PX<_eD*f8?}+ z%fLRgJZV^&tTfEzEokLQ!cmH?so=7_PDc{z?X}jki=jfS%SA*|ydJKn#i%iv1QutGx18)JPl`A8ls5Sd`Bd z)eDrsq8*CO%pIB7q`gg6^9%sakKn9AL+_p_*pI>e!@k`bI_czs2@>kmhhuvtjT8~D zbQDl@g}@acLY^n`;NoiO3IL>`TQ-p@o7AShZ>e9QkvpLM5SnFH?xgoyf2{BO)~B;% zxoU}dYsGkbWVYm`<)%edt*~xEltp0O{W*~gd*r7 z{x`E~VgzLAS~!K9@VbJ@ef9xp0gE`=sdRF_O9dJWNtuULY`IYL%aU08FlmE;S8uR% z7&w61$7ap`jg3urJSneme|{*Tg>CdtJt#ogT&6@4YrRO0|h zaa0QtgUhcR*Y8l3Kt=3;PMKG1M+JCtx|xr?6w5RoLvM|dDr4dU%-%z)m{8u9Rc6Vg zaJCp(;&`;catbH7g=)R0_gKlx{iN$`bkhmo;75mQzoSGGq*K{Zf1*a4Ev@|dDADSp zHa6rjJ?KCrS^`t5t`!<)*rBb(e(~_XWGGjr zGiO?>SHv_tDNn~L-$#p!rx%?lR@H@04Waqahc>rMQZWa-)2)1fw-=~8&{Xx9mim?` zR?R+AtSI;u?O>fPf2AJ2G>VmE-5J-`j$?JK0B$$dJ5)jq>L7-i(m49RM$j^%f{0C!Jgmy_!*)M<{5D%xLpp$JonfAmP+I>>sSs?o?MG{BK( zp;R4858;-TN3AcjIPPdDD&Y{>`yM-5W8QOSro}b~P#!W49{Pw(3%5?!Y%sTd*owPz zo23aj(==>zs@q3p2G&BHc4&pICIc&TVV-6ACr1Nc3uibEWfEN=h;eGf6XtK@wo!mfW((^+Pd0L*F(qlr`%~Dnd2%C<+P=&?~#i7nxZnXODjS( ztoD259+@cgM-}DxDwwGJ;0MP;PzNGa?x&75LsRt*f$}k(NY=SQt}1`#L)jwr!z^bB zKsDy7X<>aX*RrjjR z41eZyf9Zj7c=}(FoJw?6m?>uLZ2(SdcCs?2Bj&=ZlG>~}lqJeav#vR=5$YZ4w-|{i z#N`w?ef zaW5Il16K=If$cYBLU&%%_Bz!54{C$9TS;dve?{y=Ges+yjyvQMbE`^gH}`8*xyYE$ z)RtymjDs0m$ssj72?hKaT+*Zu!|a=yrH{K5?e0l18g;z#0UpuhHsDxf`YoN~e|0>^ zFLi~Zth1?Ly@4Go8Haq;(p=EXsa=_=o zNO@TP*ce;pj71qnVAxQxfr*gqJr8W(;j*#a?+q1X6wBxuuE6{7J~`8M+jQ-*e_`a- zjB<4@GglaOdE}*_F`JCck@9+ed6mtVm)w^Gw^Nw-7IC&nHv?npg#o*CGUfhEPNNv; zZea)+5)#`Bza& z=SY~wtx2e5AGZ~a@L@_%)?DB4f7|);Y_UF%`5MdGXZvvIv2r!U)@u4&GxhlNPJG3g=@S zL+@8d!on?b%|l5OWSGdpf0c^|Y1yh1*!Of0w8h8^V3Na_GM8E?Ih}j`zV38XWD`%| z7Kde=Mp>*xN-jPMY%VW46)Vqss~uyQ#J{ZP@PO0kbP+Q`QwLr)&Sl3_#Tu~nz30Ri zGp`eGKU`pJc)r;Iy$9VJ>Kg$crR8o8Wo$bOnGKuH)c#Rj3nNJ5nb{Eh4z~Cb88^ zJ0-9X2r$QX6l|go9cu2plsnatKO1k9$QNrTn8Sf^Ju}$ zyR*eQN*b>~)QaVj_J%IDjFcHVgpi)r;n>6h+BD*ajv}_h*Z0sIM#Ko$DI;H6puv6Z z_TcSH_H4y?NG^1VB^XH;r+uJ~UPp8+vCbO_!5ZGR@$g`t&t6G{nR?QBFo(HveTL(%PMdl=l1-N-?*<4yhCO5F(vCABtHfDyYP0hjc zSw}knqO>6>zbHH4CyOLyR8{~8S%N%QmKr5NG*e?`9crgMc#(Qw>ML2V2hlTev(?nR)F3#__6=|HU(+-6jHNjQaxT-UU zJ7G)j#hY#GUKpC%Lnmv#SheF#xe%%HEKpHBFq*HZiZW_h=P~%lK(NewPrSpLVHiQs zf2HsH9uY<-b>`Qay3NiCB6gI@AKPa+gu7lt8;?lYJ+pDr8{YISL8LF9~<)o-0wY-_6 z-=ox4=KxryiqCd{1sbalU3tU;ahbJkT*S%;L}6Jr8HoLuu!1arRsxU&^37?W9#*yOmoEd;h|skGh{EqL zv+oF5rTkZ8j3ScbY=TdD-el_qWp3ssuzTZ7FOUfyasZIMhE|5)<_&VL8~b*)WSnS_q(bkTg*!H zX1eX`4}BKBh*@^cN-7AEN5J1iZpfKhzHf{lIyZzG#ne^ED4YSwWXtd$f4bU+8~bSr zCMCPOfhy%2XmU{W@2cxmrm3bDI()oo>6T`>V|20|o4i@7I`)i5SfwKDNAi6fokN#3 zkB*Oirs%RpXgzrM{QSiu;_9DQo4k?sYm}zj)!Jdq*iQIDc}{HmHw9uf=nkvZv7zr4V|{m$@yr-$%={6umSFE1CPB)x=Rq%azI%^m!Bo}9ryU%vkF zb+o)h7z2$5RdwW!&K7aB9NnB>kkgQ>=tYqKu*`map^+cgtIHQ&_?MskA6||>XXDF{ z-@kExc>mIfjTtdoQ& zynr-BjMiCF%nAQovY^Enn1P|-iu^YJoZ2>cm17iFAfG98e`Wlrq{POhug=L0QqQkI zM3VIG#UqUf_GYi@#=~~B`@VQ=KKGrI#skZ!hqv+RYM!xOh+siBBdl{Areiq9IP8#1 zW9CvU__w*~76}0Ef78F8d4aN8MmMXggf+i1TMv;2G@$o8bep)ht?#ZE_iqd~N{(KQ zvxUrp$=jhCe_OuWArABEjmN2BIyqmu0%v+T&#u;|#F1V;&C>N5Hbi|kU#-^h>XDQi z8)oP=tG0@7z^7y-C|yDlbsN-O01Lx>y1s;NsW(ZQk@j;JaRjx3*g*9cSeA;?3a+fw z)v@MHjXk(!cDcy`%Y$~yH5eUEMY}f4Nw(63E~I3mcT(Hy&u8y)OKB z-2(N~gZE$zxagq5vJe_|OD6AiK;rFGeCQ;I9oYW!@BdjT72hv@DF!C?`a<Zz3BHcCO2u-LO)ES!wYupl=&@g`+#6K%S_-7En14co)H4VTm zX*|+ZO;=sj9^C?%IlF?mK3-uU|83$Is@Ud;F@&6pWl=<}i|wv2h@|+2T4`ZQ>tv|c z>uUT1N(gJ^m~}zDMx)5yIIfM2VCq^&_*Rg5f3R~D$mR6jVZ%2}3*0w+142FGkKIEFZG|tF1r9RWtS5s=iYKbZ6 zBi*JPLEa$7@2}z_3VEL-i;wecrCcQG`dY~nC0cz{2-yOm-Aaj0lXZrvE8cfEnlsgP z;b@W1Nx3!+UE4BEf@GK=(rZ7h0UbQ zxXnjsCkvZl*M-8!SG`k~ls70y?9ww{K; z97cdMb}`cHVL@UuhD?oC;S_(%`+v$O*o58fzy31fK|zy8-^QM^fYihMm~iC9A?;=8 zMuEQ~j8F@vn(Mpw4D8Y-PVBtJyHjsLyXnQWfn(%Ecyky0Bz`Utqf_)fe~V!{IR0G_ z0&18?`|PorLoCBEjee<)H#spVF{*+?g%OqVz!#{>H|$k6dv%??A`2Sdyu@xfi}5T#zQOx95Q~;= zvmurAhCA_C-bSt7FuRz(OtOD@iDV8OiZ=fK{*7UvJ{kiUwK3%<7!azBBr^zCO{Y-x zWY^+ajGV+pG5deW{y(Ds)AKGbft-B~HOlMKAybpAE^iLVT-V?Ie{FfkuNwd5{)%!q zyzvks&ix$X!_Fm3>+r_J<%{SN+ryJ_qVdd~I}uB_!Fv!`b0@~H;oVPsx90v&My*!= zY3?8)NcgHg*iT!9UWKn(dSi;m;oI=)694$J@ao`iTik#4uuaKVV=wrQVONzKMhl>; z=rh_9!o&@4Tpt4Ff8M=uBTQZ7+y4_?D1GX=>0f4+ptq{Gy_3jIeLTZ zkLE^0tAAL3BRQ7DUlVFugF#y??n6Dg(LS}l(S)CYBQ*stw!92&X>l$679mEb+u&M@?M%f&0a z$H2l;SipM2PGo1)bvoU%+Zk)ZdOq;p(fIm!+*|7n26nwcGEW5OjX|Sfp*DMmld#@o z!uzU#^AH=Nmteed?|xoFwqd8@UgMQ}IXM3ef4SGJb@buTpsX5^du_dkIo$?JUD^!V z87nR8pt0%1K9?%jli)Ox+Haac>Iy%0KU zf6(vPdX)hq5?q#IX#0W&Pl(VlKVaR_D0!SBz_uCL*_r2`RdUs|Ta0rgT<03aZ7XE# zXuTl#MoGMR2kcZb_m6mwc7)PBZw67e4Iq=}{2J$Wf_$ z_fSON_P;&q8@-A9q5A!kFZj9Y7eF55j$-6rJCBq$pQis#z3(pTC&Vu8xxW9&3F*}M z#^aE63U%{r;p~Xhol(D^+*tTFEaMu4nLY@z*4US_?tM1_zJ&eCP`KlM4}%_D89> z6~OK7l9Y#BXn~9bHiRlV+H~dne@H=&DRmZ^U)~Z(^TeH_C?iH+4iZTKnE^brJ{giQ z5|DiyT8-y@vMp&llY8Vsx)UvS$Fqe;g&z6OvI{pP6;oO?A|I30m=-`1_Tuj=$M@n# z%I9_b3rgYD%)XqWz9B3jL{pNjX!Be(UOkapm@?wBPNUwoY-&1&8o^o_f85<3=#6Ht zM!D}Q`cjf-AxVBeP2Q}V&5m_gbWf4PTOhUehv0!yttm^J^3}PTE2ubJlEpMou7%(T zoi=2E7IAI3rk*leiZtu)ut)y+xwcdvqM5wit(0B`*i1;|ALqvkc z{)*WZF$xTz5O}NzTYQIve@_=3^LDaOJ|f9^h>i$G!7kPhmgOVlS=KlK0up=-eIa}KZ#^@twznDe<)gY8K~HCK^1LN zez#2eywy+=@OTji7gNMuA-UY|4k^3{yC2VzLlNSzZ&A63zJ5@e_~~fL2_QT>4!va> zwk4s5f9N%+jog_BZgZV+(lat{6UVSsvHxujR>tk@v{k3aEDENKj$nn@Ept#G)F^A} zR0qM6DSk^qV7+DNfAGbLVMHL>M6TJ;O1h^?K(yYd8@d6FPclxa0lXT@T>aj5Mj#OnKZU^M_jSXYtD)*wzvf}65mf7YFK>rL>S;0bO*$+oYq z4eQ4tkB^GlC6ltu5?V)D!oP31FIJ%_d#}}Nb_YUSCRPMEnwVnvEE;SiNJNrr@avag zY#4Q`S#P2F3&lS^x6O> zOl84gwX8;qe>8c)$KGyVa0 z^rwFku?dn*z_?N>;li%OuHb~TBu}_!z}q(6rqXw+e-B<;Em6wuGYp1?J-g^E5Nje> zAT2^Il_pwOQYiMP9{ZOIVxL4P}41 zqwE$(srrrdW#*~Yc_7mmV66n0z^YQNP|tDd#*Ohu~sPG>d^V#-A;LS@i* ztVY*FSfnDf`+JvUY8bc#_OMH3tIbwUe_)^2j-&>GAko<-NhT)ToPhLy@xFPK8M&7% zI4)19w=CB&vxHF-4ub`nxQborIs~dFFliAmq^9R(>WGKPpJMZ<7D&<19%g8_3#1>d z?8d=;(poY(UR7Wjr^+}qO@uSLy}FII8ZVr03+jm!+hLTtRuzZn2z3DE2z=cpe?SNg z{!T=f1JJHxfbHsiacoXf`SwvX$<*b7|f#Wtqbg!sj(ql1|fIW1eWk$DpTF_#V+)>V3LCp~^d!e>JF*PUY-9 zimBomwLkQN#nii7h0X{W`=1=-FJ5~iYLfj&&7*Y1Y3Sn0Km7>+0N(SH_gEM5J7{NI zL7Blkh$L%cHObq1@|W(3n*N0 zxPP?Ewrbz`=!rFwh*V+pivc^u+pd09@5n)-_ zwbg!G7N+7=lDTYyDkl|by;OUY;b9wwWT#Ojzg${!`W%9qkPRuZf7>8EUz%05>oG~W z(KTu%XHf=>*+=4bwWQR&kV~POYTwmYa)1QNQWJccfMe1sxsan;!q*XQ-Fe@yoXHRN7q|p`M-vN5??se?t$y20+kf&OMdap%^co z;oz}hl&B719hq+!E9B+o1gX`C(X$QRY!aMuZVXFR5g*U= zm7w-dnUS=a3U=z_2X}Pm=O|IlitAn&sXrz;X_up)!-4_PgZJYH0tWD9(DR23-mEXnx?u=~@k`mcjix=YyH%Q^oSQxi^6hY2 zXs5)uf6zV#(QM^tw{vPQq0s+@RUO#?${aySk}4$8!P<4_X5>wuQ$PCcc;>l#rQ@E+ z_Dk83QnFT2l*~YfDM&2peg_+(zZGSMIbpEkf6g;$o=3eXLYJ*0sF(T>HO*|y;gQ|c zm!V#+R+z)-tdKWVia(B)Le}ohFt`}gKTuEie;fdQ-h=JlWBsEpdz-mR&Zo z+Gg5G$%pH`T?=cEz*ajYuVDM0b99nWfwratH!&kjRE|4=lg ze+2`vG2(@(*?7z}P?fqAk{!3hAKd!g1UOiO*B^pT121Xv&91WCFwjYEa zC=;0U7E1|MzB7(sFXleLlY>)sO&X0*e~;#T^N|v#1`y-dt1o~36-hmz_x)Gq*Diyk ziDaqGIt(hRCK`@^jFt9I_Mo4^Zk5tO`k-NU^uY^=@)QLA;Wmt*u+_r!f~8b??&=&g zCak7?6RhUsm5fhLN5Wmzd%)05Y(Do3B6N{0c%l<@)I5SCicwrWtA3t>!Iz11e;!af zbO6qI6*}l6^pO&VC3*zyWIo`Nfbl7+BFkRZN*8UAP}V&1DBT}*jOeAi2o~-|gtp?; zCO6S=yytj1nA05UJ=<=aAe{faa1wN!=JenKib3G%OR^1Jx%B?f6@-)aA~ z3J~*18f_CUiwLQ-SIY9Bw6C9H7wi3gZ`kcsx2^hmy+xlcpF7=xg}FT*B7C3Pa=P$6Jo~47;SH5R zpp*i`EzmYc!{7`T%{Z_@f2lHqyM=J#&d1$h{tByWvzYa+husRr3E!rERu&O=w1o#5 zgy!hp9s0ZCK#@C#v&YC03>6{q#13~1CSwV9EP@_l_Q*X2(L)UTAp+n9#JqLAby!%f`##pm~IqU z1XE9|5hLLkYH3BLh^VjFwW{l7nX#EVVH#}|?I8YrZ!tYo$Hvj}@jBK_#)mFf7G1eA z=}C$kli+%p@_{KLFLCPO7cWW!9#5*hUTDxK$KRcRy#ZLsGP4cnqbe^NhoqCR(aT}4 zr|XsS4^=-FUIBi0BXXy<8Jb_>AWP@R*&3a9B^|k1S=8}9F)Q5iP^obn9Hj2PS7n|!rfydrL;3Dxt$GRpc z)QbXh{o5d|xuOt^8(?19rG1)8brJp+!{nsxV1l)4KLEPTRY>ef*yQW}m_=LxX8TRp zciG5TJO3}46X*4xTh9tTQMuauTJ(x9o7Vdij73A;e1eCMQE{>p7+-MtM(GiWY1NGFwjX z49@dDFG!ap$2DF&Pq4|-I~Q@{ViA{nz>g7{F?qx=1#E2^D5sjaMLcMhJgx1n=)+t$ zq+^cQ#Q8VxRcDr*sfK@e){wmA{DQ5%Y#4O%bxXr<%2)n}w@y2bbMoH$DS9guC!3BV zm1~2Qr-381ttkQixWI(rFb-|2($FT;b=ilSKo{H#TaNU!Ecr&m9tE?E<+FmSu|d?$ z9-G>X@o~E3y7S}p$ZM$73={4J$wc(6;yB80Yu}UDMoqEhNmip|SS8($KRCSgg!{ll zK@1vVFc5nOF<6MfK@1*Z2oOVr7!t&gA%+4mREVKL486q%9vH=nM5`sb=?D)1ND+X6 zyg&lbxXZ6$ob?j=x4a#G!rKn0VM4qa5rJPBUrXdiqU`j^5M@TUGyt@*mp5$ygjvG( z?fN>1Cu@GW2Zo%n-A}K!8XJOp21cAW>ybTX6`7qIJmCfYt$HuVcp#!mhez@Xbe+|O zhxH@AGp)^@w_~Gj0sBW^d}}?B82ypI+UXfcGj3qUVd>caElo@3t=i@)Bjip&%L3-* zgk(u$$&atO<*E2{L;ebm1)E?EteK^o=KRm9Sc5LUiq@(~zvb)67gosLNq2WcABEp^ z6u*Fm|M;@o+>X%Kgn!>@AD6q#FMAp(IK{JHe5;5N_0>-nd{F@^X|$aPINwSMOmF9a zGX9*q>`b>p?hbZX=H3b6l+qtKRaBN5EjZms&dQZ+@^BjC? zI-vJwbT?R&A|hKIKw)*Hy=@jEwpD@8my&a3m3C}ev0&|~%`)Gc~r6GwJ4 zH5~A+fxLcanE9=Iw6y>Dm3C_1U%*@pq)79`%`%SI{=_~#I%RV;V}TR+$APP6;^^|} zL>sNgyyJAHvGI_u(5aGF&&St+^vXMExCik%N*__krvWt4ZYR9E-aL70KFM`6!?jm` zHuKy-Kn&Gc_?)XG??g($ciW~UY&kvYoTi^nWFpXlX;az|iOF7*v-V5Pb#z1;6l-un zeV}E_O_Eknu#lL4W5aQrRlf?^Ikx@v^4|20r|0FybqW2U`g{9;qhks&vy_cFG4=aj z1Jeo|jJO1HT_*h5Vx-^j5X~63$y0x?@Y8Nb`@m4C(&31FZ8k)rWt$iwmSvp3Ab{TV zd@pTQyPWd`@SaS^oT3oWkE9Lh207agAV`kIpb9mcrOQn9`kr#dwe@=af~XpZcqNlO zR>XL4KBu7`td2j|$U;dF`l>?RLvRVD=n?pNNicr=j%=2u)-2GEQs+QRpzW;H5ui?XNoFc{ zDywRh9sQQ?e3%5=L=&105F}dTMk|hDTTWqOmd2ytYTCx%nd5jJ+m^_48a?1Ozab6( zi;WW%^LJ(feIje2B-^RUhJ0T2b=ieHrE;c)rgQ}TI9Cg>OOqq6t9e%+x&&Fqx}W@7 z*Q@}z-y6nwsjWAmgK$u)knFZ{yZ}eM&t$AC1=N7zc#RApO6c{32GKPIH}J&sqvSgV z)}tt`h{*X3*)kOZ3g{6ef=XQCSpzXhfuiU36v_P@+PTVg%Ds;vky7{FSh`2X!A?N9 zcPeQutk`qCkMWd>7wOW@!KZ`N8rq2n-oj#=om<3;<1^!%f_%`wsIbtRokN ziJLFc^+F%w3CLTiMlG7Yrf9%m2WFoydL%pu{+#5DB4@`(kSl8r`1PYEoD$xnll%S0 zBeg@`ENp*S^dsXl3*!<3(aI^$E-KvOAJNyp4jjBL#bwsjIbe3{KQH5~PL?F(Q8JhQ zIB92bR$;j`P<&_q>ht}!RWGEar6I4TzW!R=hbah=e-Sh|LG|!b)cl<6hK|>D@cuod z%gCK@_iw`0?#`#cv@Z8%_oMn-F~7XMA!4ng%9_&fIEkjpyODKwJ`Jqz_W~HRA;Lm# zh5a{FLM4+TKfiq3KQPl2W}Hwr+GObyJ{Re3m`p|cdBD{LPzKOs;c*#iu16^uQ;Q_$fqc|MP`xNx|!v{CFA zx0M{p*D0Nx9`fhK9O3&`N{Xlh-9K7^Ns>9)D53$%!F9;te$e{xK37So04tEaIdGPeJD$e%0=H8MltE z+7`3uYn@b*9@hM_qv9E_eu>Ua=v*2saq%zgPK$CfizzoL+^wFm`C;;H?4F;er z2lEbmECxhs@e=`h!XPoP_oL0A0RWPY;5RWKA*dAtbSD1>AG3j_m&gQ~pyNrkGno6n z=bJG9Q4QOIEnhmNXonKyhldP&2PLW>@nxiI-_Qjbk+GJv#~`5NoTbNqO|q-zQ%0za z;32wU?yb+K6PgNE|Ez0ap$Q{{TOXZ2LkujkJH~TwB<3$ho6j$fJ%R>S4|lYq-mD^7 z1|Y{58Bo$e$8l29#O6Ca7N6{sAbgVQq%X&N=Nx{5tKNs;mp>`Fb{>W#%mcI&J-H}K zN+W)3^0EX}IyGX#tqRXC+!3xPphP%~=(NFA>Yo-v)=J5D}9)-rjKpUx@I>z}ESg>JU9 zt<9!+P9$#fPY$ix*tag^82N$3H49_`B&EkSc& z1vz|=xw|>7C?f6^#OlU-EuD+%djI=SwN3j6s0U>He5tGP2N+S~rcXcQYP{ImjU)NOQ zD_HBlTRXRJ)rFlf7hfy!#HtPg*@J@a)o?4vZiNp@-%Q1YS4a5dLB4^JK#PhFNB>&0 z3}mqp60A%3C8#g(gZVRkh^GTC+?}5aBV*o}rO{eZY|HGR;|RRa4?yw2YVXaAnfNMc z13>IC=d#KZ`P2_|=M8_z0vq?vR%>D8fZJxw?e=_YDuYt59oIdz2iA7}JWzdQc)mo8 z5Xv{36O-T4X6Ry6gg*F$Gb;l?Pso#Q$Q5UjlWiXa{dU}#cp}OHe}pSq;}>-3nLMfm zM6LObJJmC`8~03-tE$IF^uRsSo(UT@30@%*Mm(>K!MGS=sIv+AJ8SvwwLjd3xT1Lr zy^khxOTx9iC3kv+)r2yjY}Y-GrI0|GD&&qhLE#n3S$b(7^gbSDmGD>6#El>+f|w** zx~04AU({zz+`nCjzQ!=gx3~tyy?vaBhlh``vD1;A-=ZXlW%9NmeZDis`O^Yxi!eKy z_Ny&8jSG`^Xn>L5>;rpMg)@#kAeqX^W4rquaV{(9kN(dQEB4|EP;N&7#R$zru0S=# zh|~)&qmflnTd1FHoVg+1RI`9w0j0rNVLu$<_ICej5EbGN%&ZvgSS9GM$X3YJy;f(# zcP0mtvuaj4$-GA*LpsD+NQ6XwOjDw>#*SOHAFQBk8pF^Uf0$IkkXy~X;QOMk)}>W& zh$N@hSr+oeF%kptK;n`4Z$D|gTv3D?jY(3*I`CuV>hq)uxm}tC^FRF@;FE63u5cw= zm^$DCem;06M$qBxC)tx`k*1m3c+WrM0%v;IqI^24?YkX4lo(I++hdmw5d+-Nm64MO z;UiL9LaFSW8oS?BR6;p(G@*uRt@9kRZm1#erjy)IqK+s7+Emh3;n`9kTR`>1LU4oG zcqe+=*O4ymv89l=7mbRkrg2UU?AOxgzDtZpf?S+h>77-~!o=}Mm*VTpJ_U3ls%OEP z2k`_(Hhi&zyeG7#)jCL0PV{}C=Kqem9>5c*{Le+wnfdh#{Kh-osTDFdkOr(HG`W>$ ze2Dsg2CB`+?VLTzeg8iLbBd&Vq7O`M2;kJk>_lul$HB7zHY&Fn;4VT)YyLO$e`ENZ zJ5bNP_r$X1GYcM6$LT~2$=d#esoIw*GD<-7xsNF3Viocjk{fDItWsW(oD_`uS62ub z=s9bdbLtsUKO0oYJnzTqLiGQI{vYxGznO6fgO`#1Hv_v;SjWZ$D|km}94n}FNG5g| z-=iv1{pEoyT}YK5D^fuOnW5;A-G9Pkgv> zp(Ot|fx1A8CDAZiK61CM%6Ag`(CLFSI*g_mq`_|SqBrU@Sy$Wg1=^u7s8;z(NxO1! zsfj}M2pJiQ?5JRsG-LK#kBJ%;Sp-Qu_|E{6*R-3B%Q>7v(sD^IE4U+&|AHtfBcmym zFzfX56I!IbyM!Vy5vr_@wn{4PM&Dzzhw>N&l8d&LW8Wj0Y!yU}3G-t#8ID_a81WNo?UIazfsStomX5bF z`we_W06RXBn4yP(fYTqjS;P2r`_5#R-cQ8i03_^B7-9Md1uH13wa%7QZ-vI$SIy?R z9Bo~1gg98e;M1To^>eRWTl#zImrTxGE~Au!uCZ}{&CcO;%P}X=$DVg|mpZBJf*s~e ztX;RdW;<`$O`$T#0u z2`pZp0%Jf+zQ$*VCnwe6FC7%wuq z3bAS3s5FlL5XRgHdj46ycfcYyj=V|ZBzxC_a7_J+KCi$PhlGR)4#uUu_G_I6KJVjr z9pXX^o(&c(K6k4YX#v)BxauuTLUE~j^7mibC8ZITn@BYqBOwc2N5g_L_|sm`O2n;J<9f_6jSyzm-4iI_cmXVOP5 zD;!Bkk#eSkXdl<*2+l6etw1TEZqJ8X*y!wy`D7+(X;$-eRlQ!K$;VChqt9b{&h!S4iw$zgtr7F^ z%6Vf=El6{6pla1ieq`y@{TeQOn-^${hnjB5hrBC`SWk>nZR*N4hZLK-8?5TzEdXX6 zL?OsBYRWuLq~*d!)@h^XK`tj6wN--H3t?`kUWD(n?j4b3coH(0W{cHR>KD=AYi>5p zb$I&VRJ}g#0JU|=sja2hvK50>Qz%E6eEeUa?L7+^(6IJ1c=&tZdE;u_WjW3UT-Zup z4Nl3<8Aoq9tia|>9P5`Q;vKIV^Bl|8ray>UW*9J9g!Krz=N$`oFyvqjd>p?TVZ=ju zSxoNDekk=Ze5)+N7V9S%=2+R_R za=qktpmTgBrxgWRAg72~1CkcmT>w&)S`JZ?-VQYpn~#E3)Bt%mr-o7#l$;x$RXEoP zK{jg5RA}~6-GKvVPWHy{lZ#qaoVdvZTjW*%K;D%fggYf)m6d)uwCoBeL}B=?h_qB8 zZdZPh2?tMEW2zoVGD$P~P&@M>un9*>7CJUy3LMjAkt)1O zuNCUhz`3OmuCb+8@ih*;;}3c(@2!-bSsJD!&_ZVL+n1AJ*z$<~owZZt_M>Q+5R~i- zO{{XE-ti;B>I)Lazo4;)bJ1n9%=h?0@)SUtdsvE{AtYu z1BXKNg{J0~ijTJ<-%|i2#hv$n83o zbr9&)DG_{W+vQW-R#NOUIy22Q%sD9CHxf}!eM!51h#{!m4*Cg`g_r|M25}%l%5E4( z3m?Z&z88AqJtRrFp>3O<=~V@_=$^$7c^HZXx*aX%;0XZ2`({xc;xuzi}%s_eg`%eQY9?knh~zFt`qgX6Nc`~{kD zGKQj&tfZdj4GO$12E;}z$GMk)g$4kST2|D6?7 zkezKn>#0tXjZ_*VV&Z4Yr<=kPYPTQR`&bXs@k(*i*MC;Zi(n4E%^o+7UUEV)$y2#C zDCUkiCS`J71Rh5+6q;n`^p<#>9OJdS4hJD)`UX)n8kK|tPa=UVXfrOkCOT%{xU2V| z)RsX&wPn@brHEzRFJ$wAMwq;CGdSv4J_KoKSXu`6oB1gi3ArFp}We*LVV2P3g7xlgJcHifr_x}3oq5r|=N2mt;2Yj&S1ALsILXy!>F>J?d z_n$J=Fp>CcVMTE%H+^-gaG?!#+`E3f4n!j^Bq@W2DAhz1yiUFSTpj+wpvnvTZBlbk z6x(XffQVb(e5re)Rm&=|5_4>>=WWe!45_=FylvaZx~KAAx*{pp;d0G0`5>WT9CDXaL}-e7CC6!U|b!b2B?pKc*R(2*%?#J4t|Y}$n5N6cy{|Q#hs-1ZqmgPbdLPY%TEGwCM}ZyItGK1 zQ<3e{n`j0Ra-_Ad-*qJV_<6Z9!`qQZ6vZ(Lu8uHMK9%LGbvYp!b@-*EP>o->`tbfL zsB)Qz4EiPZGZO>Ub%5bc(ZW96El}t$yUU;qhdP%N5DUcvh+My^Gw3|Ib8K zbb<1)NU#BCrE=&10FMi}#0dBSwC1wLi|Myn{sN!!PXIFdoJ=Pdi|J^=o-?}YS4_*l zllGyB(t_&Y(VkNT_zt0toLz5Yb$19udJEvkXDwp=8*J3$P_W?|Z)t+5^ccKc@?r>l z`c5C+BmbC7x?jWm)WvwWlY&R(%z6kyu79m@e0^;(x?R?JWkRYa;RFG#mY=GG4{NS` zef(S!AC8TGS=8|S6=^QhdTx^@WiIdWAN#(4l+mIYnD3)|bsBdet0%_ulwb9$_cQ- zWm16h6`M=d44bR96SQx?bH@ECi(*HHP<$qwa%yS2nRvLast>p<0nR~3-SNW0IXi6$ z=73Q`OD_msTUZOGAA^h8{~S`clfsPwhM9LP)94!NJIwDxh^eJEC#5wgHN_QL^)zA3 zu1)o7fByTlK+ueI{z=^zJNJBA@at7&OV2I4FbZjaXkLl} z0%~{9*M?ejC1{p$$NCvH(rz4!lZTA1(vQhpFN|7*Sz#5mpnj2tGv(9ODC(E(TH5qF zMfI@{EU&7`u%L?y549$aq;5uC(T=2UaJTNyT1eNhq9G%T!L_mbZ7g?-+#K8z5Q4im4@^FvqW(FKkG;`) zR>|ENZJpF8k6e89=u}I1g}peW*es6jfuaJy33sIIR4dj|dxFX`qg;2s3A-C`T#IY* z-qTL=*yIfzdb`x4Dlp7W{0LBMP|_XygU5NP`|H)MLf%Dl(vZZHp$Ox=CdE%~?1~}= zE+tLP1pX7fDE?@Mo zaxDcIvcZskg(f6@>Z`q9f>YILiZeF4z}`lxjvasM+BD8?$?Nq`Qu(SXq)SGU_C6?K z;W~3mzq7R3Z|BXlc$V>@K>OrBk7Oa1%;^w&8MLO@wfUPIt+Mp$P?+;|OV6(bpR-wuP2HMbqqBEo<%(R{fAr8>dA%p|z81ZoL~1~G-kNO>rMN_c<7dT$Y5 z4nRp!K2P!^$*)&szeoQ%u$B`}3;l?fYB=V9_D{*i?Lt(j?!PLO-%p89bk4bf&<1!p zgdf1HZ0%;H4-gd!y?W-K3biL$r)Fi4EO->KQ;8NEG$lzI)u77xgNQeJROb`n(hO9^ z`(=IrU(%nFEk5(7-s&W%`o?H35Yf7qc>+NGQxX1SoIxVb$cz~Bfr`o>(-r3LK_sa5 zyC+`#LH8&Jd5i99*)Yl-eA7^+>$?X4^Ew2dWD2WK{L)W{Gf?B{5qq7XmQwpW$X3j$ zA`V5Hv+^<#tywRNS#*fBQ%LMqve1zY?v1N*Q_1ftrz~ZmQ!R38pDM=6K+M4|IdmFi ze0Nxq3#eXL0qx|D(8@f!3V_c_8I|=j<_v*9%KI3&%W>2Wm)1fG~fI zEG1yCk_=T2;y^ZXW`he19X@3*g~Vhn_^-hK`1@Qsz#Yaycuf5yIr4vzP z>Zh{Y#_wq1tj>RV`3}m2d|dBil&PjMYO`>POk^&pjq|%2sU4w#-7bvr;}MW}{eMsY ze@SsEhDR)d5E@M<`uv^9Z#O*YFWXPlf2lVWVw6)lLZ>zaaWcxdy{r67G9+v@1H$8e z3`69%1oLOmQCKG;#ov?2>GuwTA_2(we6GQ}>i@`IlLe|nQpe{CBcOv!BmNy;6@E%m zIZK~R3?+N<1Kb6jCyJ^x9!kcvFRvJOp;NDu<|C&}j&~!)Dn(R5*@#T>HailQVDt;> z^fE2oyTT|KJ^*^pwD+0UQKSmGLZP=M9O%-2L7Y^c(UeYjX8L&zH_^U%DBWp^u;{k7 zh%uov7%|%;evAUsMcX3vul&THOgnsLL~im$BRMw*%`$k~b4toY&Z?iqUYvbC{aIPT z@`useAzl?TmUQ4d#+;SGM`#B$(2)iN^QS@;%>$=fm!p62wh8z6X@<6K5C+FxeCiVC9yJ?y6LE-^D1)HwwmYbShmNkhry&NZ(R~k0 zvuQZn(_rYVTs34!itHH=sKB)YiEZ}JNVrPxcd2@2{8~~};w6kCY@LnQm=WFh);`5>?ZKa#o_&~y)r%KHmJTeaH0phqEWH7VHLR_n%u%cDiu!_12W_1vwz2a-I z>*TW@ZjRl`pyYdJ=K>$+3?B|!H-`HJgUy}k6zYPWR=cv-#`cZMp&p}a*{*qoct=d_ zw9&ej)1%Hqn<8g+_54Wx-X_~~BX+o9p2$Fu#Ik&+nNQXp3J(xqt9T$R&aPHrUhI2* zlh~JzQKLG?vrsH0OU>j?329y_9XGV7zQ>Fw`;oCy+R1(hEe^;j-i!olh>b`Hs0lls zwB!@fIc%htujH{FFVkSCZm(`%(-&Y#cY#9$hv=-|m;1H3BUcuH-Sy&P`@8vQPl!5d zk=acBIGg!Jw>DI9Tu`Ba6P;${q&Cl?!tZhF-?P53!X3godF|4(mP+}B1uczAy>=7y9~CHBX7JCPdW<0xPF;rXAc~>?@GJNtL*FH@VHHm(DtIB6KOI1sx7v$4*KR+bHeD~r zk~MqK^1MMq&1mt~HnQyj<1`AA#bc^VE`>@RUCQtUD=-~OX$G*q)|&BW3#f`VQA8p9 zqI)K@2o{y#!r2G;`<(R(q_+g48e3`=-#(->H}N-(P@R~(syG>ZEp!I6G_Xr$z~-j{ zxk&JmP7Vud(%)B;hWhC?d$n7GncB^S^JU)n)egQxE?}R`n8%4a+?MX86T%_{ed zww{l$eYX^~__r~B_kd%GDNuUnMhEY;+KZ`F&OhPl^@m_&=!Bj8PMAqW2eD%c!~A%I zi=A3Is1x5$M{2F`;^7%d$z}h9`-Wf>YcJE^;zD%&xTKtG3Mva_nT zA#wIA5lEATGwz@6RN5<#UP0oFZIoROvXYPDh{gTh?>BuT8al2T<#qKt85XRBx4It&rfK{0yeb$zZ0`0<(AZO7 zIbmihuW8!+W~23df<2BC5Fh>4816lh{9Trk>p59NLK7@0KWC>Q=UYjK9)%We)UH#uyc9>@)(~!9$pb~827Td-hSS8W?gKuf%4!eq(&nw;ddnDVF=bdu?Xn5W82@XJ z8!PqD(U{#}u3AYSgx~E?_a;=tSW5%JEoi>#z;bc+K*ScwX*T{aXW(?6mv!O*<;8dJ zNsyWMBdWW8=Q-+DYP?(}xyyHo5v*GG& z^S!|`jh`Ky^ZDy)&DagvKRfawory;*^>?{d->`)@Ku^^$D6Mnym;)RGqJ{Fdy9c^hsoZBp}bm?x&-wboIaN-VYHi zUz?}0rK8x@n&Rd9mVSk^{~)4iQ)AcNukz5=+ID(26WCITcuHr17nSbuWzV9h92UP6 z9qR?`siHQQ#IWSgPeTHAB|H7*euoDha{t7s=0k`}`s$THZUre3=3wuJ)>IXO&f-rh}@4(DE?{L8zo{(r{)L|0HU$0En1%kxwKR)~Y6951J From f1e175e2e6f3fa2cd69162e35da6f874783678da Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Sat, 31 Aug 2013 11:47:10 +0200 Subject: [PATCH 17/17] Updated doc --- doc/glm.docx | Bin 1080869 -> 1080955 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/glm.docx b/doc/glm.docx index 7e008c160278270a14e64fe1f7d475b927fbab20..9195d3b61b92c1989d54e93de99a8c682ec18012 100644 GIT binary patch delta 69002 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 XT$()pU#fK|xRn4X@A@m^PeuO$w4DOH delta 68937 zcmV)9K*hiN{6VGsL9itHvAooq8C4aZo=I(YkL2r|8+N9f}F99XdG80NvNh-GU>+evCV<#K3mcgjFKoUfX z?Tm)QGiS~Wzdu>!?C72dNqG_V0>9roB1OVeT4Yi0x9d}H+B=d87b#}EAW?5kWbfqN zH~;$nSHiG@H^~Jp>;N+F}(LaFjwgk-WHIhH;zNdbSEbCF{Omm)(YPVR6gi)i;U{G&$eajp0Pz!^qa}h{h~Xluw9ViLMUxvWB@t@#0T(=f1=~KY6cGhxJ!E)_ zpqr=2Sng+@5>?_CM4^P2YgkENtyKIL_Oe(2)exNF}P`SSsr1W5c>>-%T3YTDO3gt!u*K-0BYd>N#*mWD^CN0U>v1gMD{BkV+x*RudKX-=$tu4g>Su=9^+I~AgB+dYBWBcAgFF63T{T>O<%JiRMVjPB{z-K+bF$vC>mK2TeDfw~N`4QvzjnZP>S|2jhw zWnO515x@EunwJK*$fzA9t8dCI5TtV-M>VCeg5gA4i1gEJMuKNhS9=;q`V5ln1*bks#5@q+U1Gzzgu7WAG#^G#~4^nsRt?N)N^G}_Eg z3R@ha1~P+SDm# zypqfuFqf&*tpAFQI}vaw_RgHbp4rBKY|h8@e9zUiWgKcWOn{!s|TEak}nG;*|JN}AtY@ZL>q_gNmx2UAuXgXu^>Jz6k&A%PYSP+ zsJ;fVI4?o95Kqg!pY?-|mN^J*>pU<8y!YP%r-wSfOLzmJ{M9STR{@!XbD44mHrNHU@pFG6KK+ZVd9ZXItTSmHX2y7 z>mjWl(mr=uOqrwB+7z7pAMlD<7exX{OWPTglQIf|dN9Am$q}bk7F8aD+Pa;Sje1YF zY-u-i3dno!=-1VwQvvd3mABWALZ^Vf_ftGI%Wz4dSq6BNa5!ruVt>&tsSlmz0?XF6 z9wHh#MR$u8Q(JO>9y^JA0_h zr(SV6SpE4KzdtL^AC~Ikr=RaW$o!`>Hd(fd_kmN?G)LMz3pVj+~R2p>&G05@T2qRN&nr+V;oP;-@c9dkM7us&cMiJ^W9skLRPSWDWi=_n<*GFB$ARIe!bQXjUZ^usfbvk*2(kD*r z-FqW1enHv1ntv4&ygQkO{(0Js5kj$FO>kR@ongi(1yT| z9=*xD8=IDfEWdRo0NET!k6DeCKT(;S~7M#e^$(9qR9&vGk;`euNf13o=I0ccz@oqRbH`Xk9zLVnU3PcPp;{aU<#sYCp8yqR3x3}J1SuCP&I0TEqA*10c%uv z-WGe7bjUucysXNd!__D#nxaaga=025N$toT6)Vr7G>7jfGqI_N@b999nz1V`+xZS$r-&n>BFdTLqdnQ0Howo_DY!i z?g!Ul5DXb^jU4|W``$2oW8Y9Mt`o&Zw7l1E8N>9^C>5>-ylJ%8l+E;sO^_zt*q z!hY+{e!H6eMi7URfu`q<-+v53hK`~sN|Mw~KX3;ggGa@dWKq_7)VawyFq3Sw{x9!N z#D5OtAYkzNFEI5KO_OAvVIbZb4&8oiCGSE6sEn}lgab_D-+TI(`a2=3?>gi>z_17a z@trY{-Wxj)t|*>OU^ygj^*=qm51q-Q*SABwavkEabN-M#N-aEyr?hCjZdS z;U=Lwbi*5FOg_0cZsh$65i{|>r56ij-;cbB?Ttnx68fDB&)xC8i_w9GXfznkc@&3k z+<&BBhj{e{1C8fzb04sB=S5L15z~9;{Fh-krfOsaL2X`+xc* zjN!bwfQ`Ea;$ZWYn#}_{&zJCmkKkJ++ zHFQC+c+=2(Wg|+lH3Qp(tVOi`mbVzM^~tieo=N85)_s!rLPtJqu(6P7)0RhgEe@RkXPrnzL4-%K7)AEr@U{wUutUghnskQ73TYegI2 z29gRzR8I<3?W$c#-N5cFNPi=1Tu$+ddb+b&%o}`96uM-ZZM3>9pDD%B-k`xb?I{Rn zg{qj3AuQBj^5~Y827aDkXoaMY@yi7I6;0gH=r(r3I9Xt3nz~rm#f{hRdqH9NvFKEm zX!!#wuUb1KxhHiMdxM=<(x@Vm=a+I_m%6HmL0oqV;|s~+$y^=yK7U(booO7T-6*ZG zj}Tsny}(x(aAaG%e|vZnhtvLR?Un>l^kg;(rS>n7oAE!(+_-zyHetB$R*r{eQxJQQE$SS<7gLmUDn)o3Y)utLQ&L zgR>SKPBzufozt?jV76PFZ*m2`xUb!Fo1f38kPh366XR&)=6BU&`S$<+Y|)s}E;}F5^=bI#tK%0DsDeVjA+!ZMEgB5eXIc)K1xn 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