From 205cfd02969d948c250cca0af13a9d6e34c37f6c Mon Sep 17 00:00:00 2001 From: Michael Mohr Date: Sat, 29 Jun 2013 18:13:08 -0700 Subject: [PATCH] Add C++ bindings (binaries) --- armeabi-v7a-neon/gmpxx.h | 3442 ++++++++++++++++++++++++++++++++++ armeabi-v7a-neon/libgmpxx.so | Bin 0 -> 694328 bytes armeabi-v7a/gmpxx.h | 3442 ++++++++++++++++++++++++++++++++++ armeabi-v7a/libgmpxx.so | Bin 0 -> 694328 bytes armeabi/gmpxx.h | 3442 ++++++++++++++++++++++++++++++++++ armeabi/libgmpxx.so | Bin 0 -> 640356 bytes mips/gmpxx.h | 3442 ++++++++++++++++++++++++++++++++++ mips/libgmpxx.so | Bin 0 -> 1016024 bytes x86/gmpxx.h | 3442 ++++++++++++++++++++++++++++++++++ x86/libgmpxx.so | Bin 0 -> 841004 bytes 10 files changed, 17210 insertions(+) create mode 100644 armeabi-v7a-neon/gmpxx.h create mode 100755 armeabi-v7a-neon/libgmpxx.so create mode 100644 armeabi-v7a/gmpxx.h create mode 100755 armeabi-v7a/libgmpxx.so create mode 100644 armeabi/gmpxx.h create mode 100755 armeabi/libgmpxx.so create mode 100644 mips/gmpxx.h create mode 100755 mips/libgmpxx.so create mode 100644 x86/gmpxx.h create mode 100755 x86/libgmpxx.so diff --git a/armeabi-v7a-neon/gmpxx.h b/armeabi-v7a-neon/gmpxx.h new file mode 100644 index 0000000..c27a2f4 --- /dev/null +++ b/armeabi-v7a-neon/gmpxx.h @@ -0,0 +1,3442 @@ +/* gmpxx.h -- C++ class wrapper for GMP types. -*- C++ -*- + +Copyright 2001, 2002, 2003, 2006, 2008, 2011, 2012 Free Software Foundation, +Inc. + +This file is part of the GNU MP Library. + +The GNU MP Library is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 3 of the License, or (at your +option) any later version. + +The GNU MP Library is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */ + +#ifndef __GMP_PLUSPLUS__ +#define __GMP_PLUSPLUS__ + +#include + +#include /* for strlen */ +#include /* numeric_limits */ +#include +#include /* swap */ +#include +#include +#include +#include + +// wrapper for gcc's __builtin_constant_p +// __builtin_constant_p has been in gcc since forever, +// but g++-3.4 miscompiles it. +#if __GMP_GNUC_PREREQ(4, 2) +#define __GMPXX_CONSTANT(X) __builtin_constant_p(X) +#else +#define __GMPXX_CONSTANT(X) false +#endif + +// Use C++11 features +#ifndef __GMPXX_USE_CXX11 +#if __cplusplus >= 201103L +#define __GMPXX_USE_CXX11 1 +#else +#define __GMPXX_USE_CXX11 0 +#endif +#endif + +#if __GMPXX_USE_CXX11 +#define __GMPXX_NOEXCEPT noexcept +#include // for common_type +#else +#define __GMPXX_NOEXCEPT +#endif + +// Max allocations for plain types when converted to mpz_t +#define __GMPZ_DBL_LIMBS (2 + DBL_MAX_EXP / GMP_NUMB_BITS) + +#if GMP_NAIL_BITS != 0 && ! defined _LONG_LONG_LIMB +#define __GMPZ_ULI_LIMBS 2 +#else +#define __GMPZ_ULI_LIMBS 1 +#endif + +inline void __mpz_set_ui_safe(mpz_ptr p, unsigned long l) +{ + p->_mp_size = (l != 0); + p->_mp_d[0] = l & GMP_NUMB_MASK; +#if __GMPZ_ULI_LIMBS > 1 + l >>= GMP_NUMB_BITS; + p->_mp_d[1] = l; + p->_mp_size += (l != 0); +#endif +} + +inline void __mpz_set_si_safe(mpz_ptr p, long l) +{ + if(l < 0) + { + __mpz_set_ui_safe(p, -static_cast(l)); + mpz_neg(p, p); + } + else + __mpz_set_ui_safe(p, l); + // Note: we know the high bit of l is 0 so we could do slightly better +} + +// Fake temporary variables +#define __GMPXX_TMPZ_UI \ + mpz_t temp; \ + mp_limb_t limbs[__GMPZ_ULI_LIMBS]; \ + temp->_mp_d = limbs; \ + __mpz_set_ui_safe (temp, l) +#define __GMPXX_TMPZ_SI \ + mpz_t temp; \ + mp_limb_t limbs[__GMPZ_ULI_LIMBS]; \ + temp->_mp_d = limbs; \ + __mpz_set_si_safe (temp, l) +#define __GMPXX_TMPZ_D \ + mpz_t temp; \ + mp_limb_t limbs[__GMPZ_DBL_LIMBS]; \ + temp->_mp_d = limbs; \ + temp->_mp_alloc = __GMPZ_DBL_LIMBS; \ + mpz_set_d (temp, d) + +#define __GMPXX_TMPQ_UI \ + mpq_t temp; \ + mp_limb_t limbs[__GMPZ_ULI_LIMBS+1]; \ + mpq_numref(temp)->_mp_d = limbs; \ + __mpz_set_ui_safe (mpq_numref(temp), l); \ + mpq_denref(temp)->_mp_d = limbs + __GMPZ_ULI_LIMBS; \ + mpq_denref(temp)->_mp_size = 1; \ + mpq_denref(temp)->_mp_d[0] = 1 +#define __GMPXX_TMPQ_SI \ + mpq_t temp; \ + mp_limb_t limbs[__GMPZ_ULI_LIMBS+1]; \ + mpq_numref(temp)->_mp_d = limbs; \ + __mpz_set_si_safe (mpq_numref(temp), l); \ + mpq_denref(temp)->_mp_d = limbs + __GMPZ_ULI_LIMBS; \ + mpq_denref(temp)->_mp_size = 1; \ + mpq_denref(temp)->_mp_d[0] = 1 + +inline unsigned long __gmpxx_abs_ui (signed long l) +{ + return l >= 0 ? static_cast(l) + : -static_cast(l); +} + +/**************** Function objects ****************/ +/* Any evaluation of a __gmp_expr ends up calling one of these functions + all intermediate functions being inline, the evaluation should optimize + to a direct call to the relevant function, thus yielding no overhead + over the C interface. */ + +struct __gmp_unary_plus +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_set(z, w); } + static void eval(mpq_ptr q, mpq_srcptr r) { mpq_set(q, r); } + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_set(f, g); } +}; + +struct __gmp_unary_minus +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_neg(z, w); } + static void eval(mpq_ptr q, mpq_srcptr r) { mpq_neg(q, r); } + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_neg(f, g); } +}; + +struct __gmp_unary_com +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_com(z, w); } +}; + +struct __gmp_binary_plus +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_add(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { + // Ideally, those checks should happen earlier so that the tree + // generated for a+0+b would just be sum(a,b). + if (__GMPXX_CONSTANT(l) && l == 0) + { + if (z != w) mpz_set(z, w); + } + else + mpz_add_ui(z, w, l); + } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + if (l >= 0) + eval(z, w, static_cast(l)); + else + mpz_sub_ui(z, w, -static_cast(l)); + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_add (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { eval(z, w, d); } + + static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) + { mpq_add(q, r, s); } + + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { + if (__GMPXX_CONSTANT(l) && l == 0) + { + if (q != r) mpq_set(q, r); + } + else + { + if (q == r) + mpz_addmul_ui(mpq_numref(q), mpq_denref(q), l); + else + { + mpz_mul_ui(mpq_numref(q), mpq_denref(r), l); + mpz_add(mpq_numref(q), mpq_numref(q), mpq_numref(r)); + mpz_set(mpq_denref(q), mpq_denref(r)); + } + } + } + static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) + { eval(q, r, l); } + static inline void eval(mpq_ptr q, mpq_srcptr r, signed long int l); + // defined after __gmp_binary_minus + static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) + { eval(q, r, l); } + static void eval(mpq_ptr q, mpq_srcptr r, double d) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_add(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, double d, mpq_srcptr r) + { eval(q, r, d); } + + static void eval(mpq_ptr q, mpq_srcptr r, mpz_srcptr z) + { + if (q == r) + mpz_addmul(mpq_numref(q), mpq_denref(q), z); + else + { + mpz_mul(mpq_numref(q), mpq_denref(r), z); + mpz_add(mpq_numref(q), mpq_numref(q), mpq_numref(r)); + mpz_set(mpq_denref(q), mpq_denref(r)); + } + } + static void eval(mpq_ptr q, mpz_srcptr z, mpq_srcptr r) + { eval(q, r, z); } + + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { mpf_add(f, g, h); } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_add_ui(f, g, l); } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { mpf_add_ui(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + if (l >= 0) + mpf_add_ui(f, g, l); + else + mpf_sub_ui(f, g, -static_cast(l)); + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { eval(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_add(f, g, temp); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { eval(f, g, d); } +}; + +struct __gmp_binary_minus +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_sub(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { + if (__GMPXX_CONSTANT(l) && l == 0) + { + if (z != w) mpz_set(z, w); + } + else + mpz_sub_ui(z, w, l); + } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { + if (__GMPXX_CONSTANT(l) && l == 0) + { + mpz_neg(z, w); + } + else + mpz_ui_sub(z, l, w); + } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + if (l >= 0) + eval(z, w, static_cast(l)); + else + mpz_add_ui(z, w, -static_cast(l)); + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { + if (l >= 0) + eval(z, static_cast(l), w); + else + { + mpz_add_ui(z, w, -static_cast(l)); + mpz_neg(z, z); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_sub (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { __GMPXX_TMPZ_D; mpz_sub (z, temp, w); } + + static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) + { mpq_sub(q, r, s); } + + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { + if (__GMPXX_CONSTANT(l) && l == 0) + { + if (q != r) mpq_set(q, r); + } + else + { + if (q == r) + mpz_submul_ui(mpq_numref(q), mpq_denref(q), l); + else + { + mpz_mul_ui(mpq_numref(q), mpq_denref(r), l); + mpz_sub(mpq_numref(q), mpq_numref(r), mpq_numref(q)); + mpz_set(mpq_denref(q), mpq_denref(r)); + } + } + } + static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) + { eval(q, r, l); mpq_neg(q, q); } + static void eval(mpq_ptr q, mpq_srcptr r, signed long int l) + { + if (l >= 0) + eval(q, r, static_cast(l)); + else + __gmp_binary_plus::eval(q, r, -static_cast(l)); + } + static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) + { eval(q, r, l); mpq_neg(q, q); } + static void eval(mpq_ptr q, mpq_srcptr r, double d) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_sub(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, double d, mpq_srcptr r) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_sub(q, temp, r); + mpq_clear(temp); + } + + static void eval(mpq_ptr q, mpq_srcptr r, mpz_srcptr z) + { + if (q == r) + mpz_submul(mpq_numref(q), mpq_denref(q), z); + else + { + mpz_mul(mpq_numref(q), mpq_denref(r), z); + mpz_sub(mpq_numref(q), mpq_numref(r), mpq_numref(q)); + mpz_set(mpq_denref(q), mpq_denref(r)); + } + } + static void eval(mpq_ptr q, mpz_srcptr z, mpq_srcptr r) + { eval(q, r, z); mpq_neg(q, q); } + + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { mpf_sub(f, g, h); } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_sub_ui(f, g, l); } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { mpf_ui_sub(f, l, g); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + if (l >= 0) + mpf_sub_ui(f, g, l); + else + mpf_add_ui(f, g, -static_cast(l)); + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { + if (l >= 0) + mpf_sub_ui(f, g, l); + else + mpf_add_ui(f, g, -static_cast(l)); + mpf_neg(f, f); + } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_sub(f, g, temp); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_sub(f, temp, g); + mpf_clear(temp); + } +}; + +// defined here so it can reference __gmp_binary_minus +inline void +__gmp_binary_plus::eval(mpq_ptr q, mpq_srcptr r, signed long int l) +{ + if (l >= 0) + eval(q, r, static_cast(l)); + else + __gmp_binary_minus::eval(q, r, -static_cast(l)); +} + +struct __gmp_binary_lshift +{ + static void eval(mpz_ptr z, mpz_srcptr w, mp_bitcnt_t l) + { + if (__GMPXX_CONSTANT(l) && (l == 0)) + { + if (z != w) mpz_set(z, w); + } + else + mpz_mul_2exp(z, w, l); + } + static void eval(mpq_ptr q, mpq_srcptr r, mp_bitcnt_t l) + { + if (__GMPXX_CONSTANT(l) && (l == 0)) + { + if (q != r) mpq_set(q, r); + } + else + mpq_mul_2exp(q, r, l); + } + static void eval(mpf_ptr f, mpf_srcptr g, mp_bitcnt_t l) + { mpf_mul_2exp(f, g, l); } +}; + +struct __gmp_binary_rshift +{ + static void eval(mpz_ptr z, mpz_srcptr w, mp_bitcnt_t l) + { + if (__GMPXX_CONSTANT(l) && (l == 0)) + { + if (z != w) mpz_set(z, w); + } + else + mpz_fdiv_q_2exp(z, w, l); + } + static void eval(mpq_ptr q, mpq_srcptr r, mp_bitcnt_t l) + { + if (__GMPXX_CONSTANT(l) && (l == 0)) + { + if (q != r) mpq_set(q, r); + } + else + mpq_div_2exp(q, r, l); + } + static void eval(mpf_ptr f, mpf_srcptr g, mp_bitcnt_t l) + { mpf_div_2exp(f, g, l); } +}; + +struct __gmp_binary_multiplies +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_mul(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { +// gcc-3.3 doesn't have __builtin_ctzl. Don't bother optimizing for old gcc. +#if __GMP_GNUC_PREREQ(3, 4) + if (__GMPXX_CONSTANT(l) && (l & (l-1)) == 0) + { + if (l == 0) + { + z->_mp_size = 0; + } + else + { + __gmp_binary_lshift::eval(z, w, __builtin_ctzl(l)); + } + } + else +#endif + mpz_mul_ui(z, w, l); + } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + if (__GMPXX_CONSTANT(l)) + { + if (l >= 0) + eval(z, w, static_cast(l)); + else + { + eval(z, w, -static_cast(l)); + mpz_neg(z, z); + } + } + else + mpz_mul_si (z, w, l); + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_mul (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { eval(z, w, d); } + + static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) + { mpq_mul(q, r, s); } + + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { +#if __GMP_GNUC_PREREQ(3, 4) + if (__GMPXX_CONSTANT(l) && (l & (l-1)) == 0) + { + if (l == 0) + { + mpq_set_ui(q, 0, 1); + } + else + { + __gmp_binary_lshift::eval(q, r, __builtin_ctzl(l)); + } + } + else +#endif + { + __GMPXX_TMPQ_UI; + mpq_mul (q, r, temp); + } + } + static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) + { eval(q, r, l); } + static void eval(mpq_ptr q, mpq_srcptr r, signed long int l) + { + if (__GMPXX_CONSTANT(l)) + { + if (l >= 0) + eval(q, r, static_cast(l)); + else + { + eval(q, r, -static_cast(l)); + mpq_neg(q, q); + } + } + else + { + __GMPXX_TMPQ_SI; + mpq_mul (q, r, temp); + } + } + static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) + { eval(q, r, l); } + static void eval(mpq_ptr q, mpq_srcptr r, double d) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_mul(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, double d, mpq_srcptr r) + { eval(q, r, d); } + + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { mpf_mul(f, g, h); } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_mul_ui(f, g, l); } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { mpf_mul_ui(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + if (l >= 0) + mpf_mul_ui(f, g, l); + else + { + mpf_mul_ui(f, g, -static_cast(l)); + mpf_neg(f, f); + } + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { eval(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_mul(f, g, temp); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { eval(f, g, d); } +}; + +struct __gmp_binary_divides +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_tdiv_q(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { +#if __GMP_GNUC_PREREQ(3, 4) + // Don't optimize division by 0... + if (__GMPXX_CONSTANT(l) && (l & (l-1)) == 0 && l != 0) + { + if (l == 1) + { + if (z != w) mpz_set(z, w); + } + else + mpz_tdiv_q_2exp(z, w, __builtin_ctzl(l)); + // warning: do not use rshift (fdiv) + } + else +#endif + mpz_tdiv_q_ui(z, w, l); + } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { + if (mpz_sgn(w) >= 0) + { + if (mpz_fits_ulong_p(w)) + mpz_set_ui(z, l / mpz_get_ui(w)); + else + mpz_set_ui(z, 0); + } + else + { + mpz_neg(z, w); + if (mpz_fits_ulong_p(z)) + { + mpz_set_ui(z, l / mpz_get_ui(z)); + mpz_neg(z, z); + } + else + mpz_set_ui(z, 0); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + if (l >= 0) + eval(z, w, static_cast(l)); + else + { + eval(z, w, -static_cast(l)); + mpz_neg(z, z); + } + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { + if (mpz_fits_slong_p(w)) + mpz_set_si(z, l / mpz_get_si(w)); + else + { + /* if w is bigger than a long then the quotient must be zero, unless + l==LONG_MIN and w==-LONG_MIN in which case the quotient is -1 */ + mpz_set_si (z, (mpz_cmpabs_ui (w, __gmpxx_abs_ui(l)) == 0 ? -1 : 0)); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_tdiv_q (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { __GMPXX_TMPZ_D; mpz_tdiv_q (z, temp, w); } + + static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) + { mpq_div(q, r, s); } + + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { +#if __GMP_GNUC_PREREQ(3, 4) + if (__GMPXX_CONSTANT(l) && (l & (l-1)) == 0 && l != 0) + __gmp_binary_rshift::eval(q, r, __builtin_ctzl(l)); + else +#endif + { + __GMPXX_TMPQ_UI; + mpq_div (q, r, temp); + } + } + static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) + { __GMPXX_TMPQ_UI; mpq_div (q, temp, r); } + static void eval(mpq_ptr q, mpq_srcptr r, signed long int l) + { + if (__GMPXX_CONSTANT(l)) + { + if (l >= 0) + eval(q, r, static_cast(l)); + else + { + eval(q, r, -static_cast(l)); + mpq_neg(q, q); + } + } + else + { + __GMPXX_TMPQ_SI; + mpq_div (q, r, temp); + } + } + static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) + { __GMPXX_TMPQ_SI; mpq_div (q, temp, r); } + static void eval(mpq_ptr q, mpq_srcptr r, double d) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_div(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, double d, mpq_srcptr r) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_div(q, temp, r); + mpq_clear(temp); + } + + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { mpf_div(f, g, h); } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_div_ui(f, g, l); } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { mpf_ui_div(f, l, g); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + if (l >= 0) + mpf_div_ui(f, g, l); + else + { + mpf_div_ui(f, g, -static_cast(l)); + mpf_neg(f, f); + } + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { + if (l >= 0) + mpf_ui_div(f, l, g); + else + { + mpf_ui_div(f, -static_cast(l), g); + mpf_neg(f, f); + } + } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_div(f, g, temp); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_div(f, temp, g); + mpf_clear(temp); + } +}; + +struct __gmp_binary_modulus +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_tdiv_r(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { mpz_tdiv_r_ui(z, w, l); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { + if (mpz_sgn(w) >= 0) + { + if (mpz_fits_ulong_p(w)) + mpz_set_ui(z, l % mpz_get_ui(w)); + else + mpz_set_ui(z, l); + } + else + { + mpz_neg(z, w); + if (mpz_fits_ulong_p(z)) + mpz_set_ui(z, l % mpz_get_ui(z)); + else + mpz_set_ui(z, l); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + mpz_tdiv_r_ui (z, w, __gmpxx_abs_ui(l)); + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { + if (mpz_fits_slong_p(w)) + mpz_set_si(z, l % mpz_get_si(w)); + else + { + /* if w is bigger than a long then the remainder is l unchanged, + unless l==LONG_MIN and w==-LONG_MIN in which case it's 0 */ + mpz_set_si (z, mpz_cmpabs_ui (w, __gmpxx_abs_ui(l)) == 0 ? 0 : l); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_tdiv_r (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { __GMPXX_TMPZ_D; mpz_tdiv_r (z, temp, w); } +}; + +struct __gmp_binary_and +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_and(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { __GMPXX_TMPZ_UI; mpz_and (z, w, temp); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { __GMPXX_TMPZ_SI; mpz_and (z, w, temp); } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_and (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { eval(z, w, d); } +}; + +struct __gmp_binary_ior +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_ior(z, w, v); } + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { __GMPXX_TMPZ_UI; mpz_ior (z, w, temp); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { __GMPXX_TMPZ_SI; mpz_ior (z, w, temp); } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_ior (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { eval(z, w, d); } +}; + +struct __gmp_binary_xor +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_xor(z, w, v); } + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { __GMPXX_TMPZ_UI; mpz_xor (z, w, temp); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { __GMPXX_TMPZ_SI; mpz_xor (z, w, temp); } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_xor (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { eval(z, w, d); } +}; + +struct __gmp_binary_equal +{ + static bool eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w) == 0; } + + static bool eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l) == 0; } + static bool eval(unsigned long int l, mpz_srcptr z) + { return mpz_cmp_ui(z, l) == 0; } + static bool eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l) == 0; } + static bool eval(signed long int l, mpz_srcptr z) + { return mpz_cmp_si(z, l) == 0; } + static bool eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d) == 0; } + static bool eval(double d, mpz_srcptr z) + { return mpz_cmp_d(z, d) == 0; } + + static bool eval(mpq_srcptr q, mpq_srcptr r) + { return mpq_equal(q, r) != 0; } + + static bool eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1) == 0; } + static bool eval(unsigned long int l, mpq_srcptr q) + { return mpq_cmp_ui(q, l, 1) == 0; } + static bool eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1) == 0; } + static bool eval(signed long int l, mpq_srcptr q) + { return mpq_cmp_si(q, l, 1) == 0; } + static bool eval(mpq_srcptr q, double d) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_equal(q, temp) != 0); + mpq_clear(temp); + return b; + } + static bool eval(double d, mpq_srcptr q) + { + return eval(q, d); + } + + static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) == 0; } + + static bool eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l) == 0; } + static bool eval(unsigned long int l, mpf_srcptr f) + { return mpf_cmp_ui(f, l) == 0; } + static bool eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l) == 0; } + static bool eval(signed long int l, mpf_srcptr f) + { return mpf_cmp_si(f, l) == 0; } + static bool eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d) == 0; } + static bool eval(double d, mpf_srcptr f) + { return mpf_cmp_d(f, d) == 0; } +}; + +struct __gmp_binary_less +{ + static bool eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w) < 0; } + + static bool eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l) < 0; } + static bool eval(unsigned long int l, mpz_srcptr z) + { return mpz_cmp_ui(z, l) > 0; } + static bool eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l) < 0; } + static bool eval(signed long int l, mpz_srcptr z) + { return mpz_cmp_si(z, l) > 0; } + static bool eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d) < 0; } + static bool eval(double d, mpz_srcptr z) + { return mpz_cmp_d(z, d) > 0; } + + static bool eval(mpq_srcptr q, mpq_srcptr r) { return mpq_cmp(q, r) < 0; } + + static bool eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1) < 0; } + static bool eval(unsigned long int l, mpq_srcptr q) + { return mpq_cmp_ui(q, l, 1) > 0; } + static bool eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1) < 0; } + static bool eval(signed long int l, mpq_srcptr q) + { return mpq_cmp_si(q, l, 1) > 0; } + static bool eval(mpq_srcptr q, double d) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(q, temp) < 0); + mpq_clear(temp); + return b; + } + static bool eval(double d, mpq_srcptr q) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(temp, q) < 0); + mpq_clear(temp); + return b; + } + + static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) < 0; } + + static bool eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l) < 0; } + static bool eval(unsigned long int l, mpf_srcptr f) + { return mpf_cmp_ui(f, l) > 0; } + static bool eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l) < 0; } + static bool eval(signed long int l, mpf_srcptr f) + { return mpf_cmp_si(f, l) > 0; } + static bool eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d) < 0; } + static bool eval(double d, mpf_srcptr f) + { return mpf_cmp_d(f, d) > 0; } +}; + +struct __gmp_binary_greater +{ + static bool eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w) > 0; } + + static bool eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l) > 0; } + static bool eval(unsigned long int l, mpz_srcptr z) + { return mpz_cmp_ui(z, l) < 0; } + static bool eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l) > 0; } + static bool eval(signed long int l, mpz_srcptr z) + { return mpz_cmp_si(z, l) < 0; } + static bool eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d) > 0; } + static bool eval(double d, mpz_srcptr z) + { return mpz_cmp_d(z, d) < 0; } + + static bool eval(mpq_srcptr q, mpq_srcptr r) { return mpq_cmp(q, r) > 0; } + + static bool eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1) > 0; } + static bool eval(unsigned long int l, mpq_srcptr q) + { return mpq_cmp_ui(q, l, 1) < 0; } + static bool eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1) > 0; } + static bool eval(signed long int l, mpq_srcptr q) + { return mpq_cmp_si(q, l, 1) < 0; } + static bool eval(mpq_srcptr q, double d) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(q, temp) > 0); + mpq_clear(temp); + return b; + } + static bool eval(double d, mpq_srcptr q) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(temp, q) > 0); + mpq_clear(temp); + return b; + } + + static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) > 0; } + + static bool eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l) > 0; } + static bool eval(unsigned long int l, mpf_srcptr f) + { return mpf_cmp_ui(f, l) < 0; } + static bool eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l) > 0; } + static bool eval(signed long int l, mpf_srcptr f) + { return mpf_cmp_si(f, l) < 0; } + static bool eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d) > 0; } + static bool eval(double d, mpf_srcptr f) + { return mpf_cmp_d(f, d) < 0; } +}; + +struct __gmp_unary_increment +{ + static void eval(mpz_ptr z) { mpz_add_ui(z, z, 1); } + static void eval(mpq_ptr q) + { mpz_add(mpq_numref(q), mpq_numref(q), mpq_denref(q)); } + static void eval(mpf_ptr f) { mpf_add_ui(f, f, 1); } +}; + +struct __gmp_unary_decrement +{ + static void eval(mpz_ptr z) { mpz_sub_ui(z, z, 1); } + static void eval(mpq_ptr q) + { mpz_sub(mpq_numref(q), mpq_numref(q), mpq_denref(q)); } + static void eval(mpf_ptr f) { mpf_sub_ui(f, f, 1); } +}; + +struct __gmp_abs_function +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_abs(z, w); } + static void eval(mpq_ptr q, mpq_srcptr r) { mpq_abs(q, r); } + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_abs(f, g); } +}; + +struct __gmp_trunc_function +{ + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_trunc(f, g); } +}; + +struct __gmp_floor_function +{ + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_floor(f, g); } +}; + +struct __gmp_ceil_function +{ + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_ceil(f, g); } +}; + +struct __gmp_sqrt_function +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_sqrt(z, w); } + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_sqrt(f, g); } +}; + +struct __gmp_hypot_function +{ + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_mul(f, h, h); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_set_ui(f, l); + mpf_mul(f, f, f); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { eval(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_set_si(f, l); + mpf_mul(f, f, f); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { eval(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_set_d(f, d); + mpf_mul(f, f, f); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { eval(f, g, d); } +}; + +struct __gmp_sgn_function +{ + static int eval(mpz_srcptr z) { return mpz_sgn(z); } + static int eval(mpq_srcptr q) { return mpq_sgn(q); } + static int eval(mpf_srcptr f) { return mpf_sgn(f); } +}; + +struct __gmp_cmp_function +{ + static int eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w); } + + static int eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l); } + static int eval(unsigned long int l, mpz_srcptr z) + { return -mpz_cmp_ui(z, l); } + static int eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l); } + static int eval(signed long int l, mpz_srcptr z) + { return -mpz_cmp_si(z, l); } + static int eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d); } + static int eval(double d, mpz_srcptr z) + { return -mpz_cmp_d(z, d); } + + static int eval(mpq_srcptr q, mpq_srcptr r) { return mpq_cmp(q, r); } + + static int eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1); } + static int eval(unsigned long int l, mpq_srcptr q) + { return -mpq_cmp_ui(q, l, 1); } + static int eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1); } + static int eval(signed long int l, mpq_srcptr q) + { return -mpq_cmp_si(q, l, 1); } + static int eval(mpq_srcptr q, double d) + { + int i; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + i = mpq_cmp(q, temp); + mpq_clear(temp); + return i; + } + static int eval(double d, mpq_srcptr q) + { + int i; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + i = mpq_cmp(temp, q); + mpq_clear(temp); + return i; + } + + static int eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g); } + + static int eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l); } + static int eval(unsigned long int l, mpf_srcptr f) + { return -mpf_cmp_ui(f, l); } + static int eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l); } + static int eval(signed long int l, mpf_srcptr f) + { return -mpf_cmp_si(f, l); } + static int eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d); } + static int eval(double d, mpf_srcptr f) + { return -mpf_cmp_d(f, d); } +}; + +struct __gmp_rand_function +{ + static void eval(mpz_ptr z, gmp_randstate_t s, mp_bitcnt_t l) + { mpz_urandomb(z, s, l); } + static void eval(mpz_ptr z, gmp_randstate_t s, mpz_srcptr w) + { mpz_urandomm(z, s, w); } + static void eval(mpf_ptr f, gmp_randstate_t s, mp_bitcnt_t prec) + { mpf_urandomb(f, s, prec); } +}; + + +/**************** Auxiliary classes ****************/ + +/* this is much the same as gmp_allocated_string in gmp-impl.h + since gmp-impl.h is not publicly available, I redefine it here + I use a different name to avoid possible clashes */ + +extern "C" { + typedef void (*__gmp_freefunc_t) (void *, size_t); +} +struct __gmp_alloc_cstring +{ + char *str; + __gmp_alloc_cstring(char *s) { str = s; } + ~__gmp_alloc_cstring() + { + __gmp_freefunc_t freefunc; + mp_get_memory_functions (NULL, NULL, &freefunc); + (*freefunc) (str, std::strlen(str)+1); + } +}; + + +// general expression template class +template +class __gmp_expr; + + +// templates for resolving expression types +template +struct __gmp_resolve_ref +{ + typedef T ref_type; +}; + +template +struct __gmp_resolve_ref<__gmp_expr > +{ + typedef const __gmp_expr & ref_type; +}; + + +template +struct __gmp_resolve_expr; + +template <> +struct __gmp_resolve_expr +{ + typedef mpz_t value_type; + typedef mpz_ptr ptr_type; + typedef mpz_srcptr srcptr_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpq_t value_type; + typedef mpq_ptr ptr_type; + typedef mpq_srcptr srcptr_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; + typedef mpf_ptr ptr_type; + typedef mpf_srcptr srcptr_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpq_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpq_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; +}; + +#if __GMPXX_USE_CXX11 +namespace std { + template + struct common_type <__gmp_expr, __gmp_expr > + { + private: + typedef typename __gmp_resolve_expr::value_type X; + public: + typedef __gmp_expr type; + }; + + template + struct common_type <__gmp_expr, __gmp_expr > + { + typedef __gmp_expr type; + }; + +#define __GMPXX_DECLARE_COMMON_TYPE(typ) \ + template \ + struct common_type <__gmp_expr, typ > \ + { \ + typedef __gmp_expr type; \ + }; \ + \ + template \ + struct common_type > \ + { \ + typedef __gmp_expr type; \ + } + + __GMPXX_DECLARE_COMMON_TYPE(signed char); + __GMPXX_DECLARE_COMMON_TYPE(unsigned char); + __GMPXX_DECLARE_COMMON_TYPE(signed int); + __GMPXX_DECLARE_COMMON_TYPE(unsigned int); + __GMPXX_DECLARE_COMMON_TYPE(signed short int); + __GMPXX_DECLARE_COMMON_TYPE(unsigned short int); + __GMPXX_DECLARE_COMMON_TYPE(signed long int); + __GMPXX_DECLARE_COMMON_TYPE(unsigned long int); + __GMPXX_DECLARE_COMMON_TYPE(float); + __GMPXX_DECLARE_COMMON_TYPE(double); +#undef __GMPXX_DECLARE_COMMON_TYPE +} +#endif + +// classes for evaluating unary and binary expressions +template +struct __gmp_unary_expr +{ + const T &val; + + __gmp_unary_expr(const T &v) : val(v) { } +private: + __gmp_unary_expr(); +}; + +template +struct __gmp_binary_expr +{ + typename __gmp_resolve_ref::ref_type val1; + typename __gmp_resolve_ref::ref_type val2; + + __gmp_binary_expr(const T &v1, const U &v2) : val1(v1), val2(v2) { } +private: + __gmp_binary_expr(); +}; + + + +/**************** Macros for in-class declarations ****************/ +/* This is just repetitive code that is easier to maintain if it's written + only once */ + +#define __GMPP_DECLARE_COMPOUND_OPERATOR(fun) \ + template \ + __gmp_expr & fun(const __gmp_expr &); + +#define __GMPN_DECLARE_COMPOUND_OPERATOR(fun) \ + __gmp_expr & fun(signed char); \ + __gmp_expr & fun(unsigned char); \ + __gmp_expr & fun(signed int); \ + __gmp_expr & fun(unsigned int); \ + __gmp_expr & fun(signed short int); \ + __gmp_expr & fun(unsigned short int); \ + __gmp_expr & fun(signed long int); \ + __gmp_expr & fun(unsigned long int); \ + __gmp_expr & fun(float); \ + __gmp_expr & fun(double); \ + /* __gmp_expr & fun(long double); */ + +#define __GMP_DECLARE_COMPOUND_OPERATOR(fun) \ +__GMPP_DECLARE_COMPOUND_OPERATOR(fun) \ +__GMPN_DECLARE_COMPOUND_OPERATOR(fun) + +#define __GMP_DECLARE_COMPOUND_OPERATOR_UI(fun) \ + __gmp_expr & fun(mp_bitcnt_t); + +#define __GMP_DECLARE_INCREMENT_OPERATOR(fun) \ + inline __gmp_expr & fun(); \ + inline __gmp_expr fun(int); + + +/**************** mpz_class -- wrapper for mpz_t ****************/ + +template <> +class __gmp_expr +{ +private: + typedef mpz_t value_type; + value_type mp; +public: + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } + + // constructors and destructor + __gmp_expr() { mpz_init(mp); } + + __gmp_expr(const __gmp_expr &z) { mpz_init_set(mp, z.mp); } +#if __GMPXX_USE_CXX11 + __gmp_expr(__gmp_expr &&z) + { *mp = *z.mp; mpz_init(z.mp); } +#endif + template + __gmp_expr(const __gmp_expr &expr) + { mpz_init(mp); __gmp_set_expr(mp, expr); } + template + explicit __gmp_expr(const __gmp_expr &expr) + { mpz_init(mp); __gmp_set_expr(mp, expr); } + + __gmp_expr(signed char c) { mpz_init_set_si(mp, c); } + __gmp_expr(unsigned char c) { mpz_init_set_ui(mp, c); } + + __gmp_expr(signed int i) { mpz_init_set_si(mp, i); } + __gmp_expr(unsigned int i) { mpz_init_set_ui(mp, i); } + + __gmp_expr(signed short int s) { mpz_init_set_si(mp, s); } + __gmp_expr(unsigned short int s) { mpz_init_set_ui(mp, s); } + + __gmp_expr(signed long int l) { mpz_init_set_si(mp, l); } + __gmp_expr(unsigned long int l) { mpz_init_set_ui(mp, l); } + + __gmp_expr(float f) { mpz_init_set_d(mp, f); } + __gmp_expr(double d) { mpz_init_set_d(mp, d); } + // __gmp_expr(long double ld) { mpz_init_set_d(mp, ld); } + + explicit __gmp_expr(const char *s, int base = 0) + { + if (mpz_init_set_str (mp, s, base) != 0) + { + mpz_clear (mp); + throw std::invalid_argument ("mpz_set_str"); + } + } + explicit __gmp_expr(const std::string &s, int base = 0) + { + if (mpz_init_set_str(mp, s.c_str(), base) != 0) + { + mpz_clear (mp); + throw std::invalid_argument ("mpz_set_str"); + } + } + + explicit __gmp_expr(mpz_srcptr z) { mpz_init_set(mp, z); } + + ~__gmp_expr() { mpz_clear(mp); } + + void swap(__gmp_expr& z) __GMPXX_NOEXCEPT { std::swap(*mp, *z.mp); } + + // assignment operators + __gmp_expr & operator=(const __gmp_expr &z) + { mpz_set(mp, z.mp); return *this; } +#if __GMPXX_USE_CXX11 + __gmp_expr & operator=(__gmp_expr &&z) noexcept + { swap(z); return *this; } +#endif + template + __gmp_expr & operator=(const __gmp_expr &expr) + { __gmp_set_expr(mp, expr); return *this; } + + __gmp_expr & operator=(signed char c) { mpz_set_si(mp, c); return *this; } + __gmp_expr & operator=(unsigned char c) { mpz_set_ui(mp, c); return *this; } + + __gmp_expr & operator=(signed int i) { mpz_set_si(mp, i); return *this; } + __gmp_expr & operator=(unsigned int i) { mpz_set_ui(mp, i); return *this; } + + __gmp_expr & operator=(signed short int s) + { mpz_set_si(mp, s); return *this; } + __gmp_expr & operator=(unsigned short int s) + { mpz_set_ui(mp, s); return *this; } + + __gmp_expr & operator=(signed long int l) + { mpz_set_si(mp, l); return *this; } + __gmp_expr & operator=(unsigned long int l) + { mpz_set_ui(mp, l); return *this; } + + __gmp_expr & operator=(float f) { mpz_set_d(mp, f); return *this; } + __gmp_expr & operator=(double d) { mpz_set_d(mp, d); return *this; } + // __gmp_expr & operator=(long double ld) + // { mpz_set_ld(mp, ld); return *this; } + + __gmp_expr & operator=(const char *s) + { + if (mpz_set_str (mp, s, 0) != 0) + throw std::invalid_argument ("mpz_set_str"); + return *this; + } + __gmp_expr & operator=(const std::string &s) + { + if (mpz_set_str(mp, s.c_str(), 0) != 0) + throw std::invalid_argument ("mpz_set_str"); + return *this; + } + + // string input/output functions + int set_str(const char *s, int base) + { return mpz_set_str(mp, s, base); } + int set_str(const std::string &s, int base) + { return mpz_set_str(mp, s.c_str(), base); } + std::string get_str(int base = 10) const + { + __gmp_alloc_cstring temp(mpz_get_str(0, base, mp)); + return std::string(temp.str); + } + + // conversion functions + mpz_srcptr __get_mp() const { return mp; } + mpz_ptr __get_mp() { return mp; } + mpz_srcptr get_mpz_t() const { return mp; } + mpz_ptr get_mpz_t() { return mp; } + + signed long int get_si() const { return mpz_get_si(mp); } + unsigned long int get_ui() const { return mpz_get_ui(mp); } + double get_d() const { return mpz_get_d(mp); } + + // bool fits_schar_p() const { return mpz_fits_schar_p(mp); } + // bool fits_uchar_p() const { return mpz_fits_uchar_p(mp); } + bool fits_sint_p() const { return mpz_fits_sint_p(mp); } + bool fits_uint_p() const { return mpz_fits_uint_p(mp); } + bool fits_sshort_p() const { return mpz_fits_sshort_p(mp); } + bool fits_ushort_p() const { return mpz_fits_ushort_p(mp); } + bool fits_slong_p() const { return mpz_fits_slong_p(mp); } + bool fits_ulong_p() const { return mpz_fits_ulong_p(mp); } + // bool fits_float_p() const { return mpz_fits_float_p(mp); } + // bool fits_double_p() const { return mpz_fits_double_p(mp); } + // bool fits_ldouble_p() const { return mpz_fits_ldouble_p(mp); } + +#if __GMPXX_USE_CXX11 + explicit operator bool() const { return mp->_mp_size != 0; } +#endif + + // member operators + __GMP_DECLARE_COMPOUND_OPERATOR(operator+=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator-=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator*=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator/=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator%=) + + __GMP_DECLARE_COMPOUND_OPERATOR(operator&=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator|=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator^=) + + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator<<=) + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator>>=) + + __GMP_DECLARE_INCREMENT_OPERATOR(operator++) + __GMP_DECLARE_INCREMENT_OPERATOR(operator--) +}; + +typedef __gmp_expr mpz_class; + + +/**************** mpq_class -- wrapper for mpq_t ****************/ + +template <> +class __gmp_expr +{ +private: + typedef mpq_t value_type; + value_type mp; +public: + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } + void canonicalize() { mpq_canonicalize(mp); } + + // constructors and destructor + __gmp_expr() { mpq_init(mp); } + + __gmp_expr(const __gmp_expr &q) + { + mpz_init_set(mpq_numref(mp), mpq_numref(q.mp)); + mpz_init_set(mpq_denref(mp), mpq_denref(q.mp)); + } +#if __GMPXX_USE_CXX11 + __gmp_expr(__gmp_expr &&q) + { *mp = *q.mp; mpq_init(q.mp); } +#endif + template + __gmp_expr(const __gmp_expr &expr) + { mpq_init(mp); __gmp_set_expr(mp, expr); } + template + __gmp_expr(const __gmp_expr &expr) + { mpq_init(mp); __gmp_set_expr(mp, expr); } + template + explicit __gmp_expr(const __gmp_expr &expr) + { mpq_init(mp); __gmp_set_expr(mp, expr); } + + __gmp_expr(signed char c) { mpq_init(mp); mpq_set_si(mp, c, 1); } + __gmp_expr(unsigned char c) { mpq_init(mp); mpq_set_ui(mp, c, 1); } + + __gmp_expr(signed int i) { mpq_init(mp); mpq_set_si(mp, i, 1); } + __gmp_expr(unsigned int i) { mpq_init(mp); mpq_set_ui(mp, i, 1); } + + __gmp_expr(signed short int s) { mpq_init(mp); mpq_set_si(mp, s, 1); } + __gmp_expr(unsigned short int s) { mpq_init(mp); mpq_set_ui(mp, s, 1); } + + __gmp_expr(signed long int l) { mpq_init(mp); mpq_set_si(mp, l, 1); } + __gmp_expr(unsigned long int l) { mpq_init(mp); mpq_set_ui(mp, l, 1); } + + __gmp_expr(float f) { mpq_init(mp); mpq_set_d(mp, f); } + __gmp_expr(double d) { mpq_init(mp); mpq_set_d(mp, d); } + // __gmp_expr(long double ld) { mpq_init(mp); mpq_set_ld(mp, ld); } + + explicit __gmp_expr(const char *s, int base = 0) + { + mpq_init (mp); + // If s is the literal 0, we meant to call another constructor. + // If s just happens to evaluate to 0, we would crash, so whatever. + if (s == 0) + { + // Don't turn mpq_class(0,0) into 0 + mpz_set_si(mpq_denref(mp), base); + } + else if (mpq_set_str(mp, s, base) != 0) + { + mpq_clear (mp); + throw std::invalid_argument ("mpq_set_str"); + } + } + explicit __gmp_expr(const std::string &s, int base = 0) + { + mpq_init(mp); + if (mpq_set_str (mp, s.c_str(), base) != 0) + { + mpq_clear (mp); + throw std::invalid_argument ("mpq_set_str"); + } + } + explicit __gmp_expr(mpq_srcptr q) + { + mpz_init_set(mpq_numref(mp), mpq_numref(q)); + mpz_init_set(mpq_denref(mp), mpq_denref(q)); + } + + __gmp_expr(const mpz_class &num, const mpz_class &den) + { + mpz_init_set(mpq_numref(mp), num.get_mpz_t()); + mpz_init_set(mpq_denref(mp), den.get_mpz_t()); + } + + ~__gmp_expr() { mpq_clear(mp); } + + void swap(__gmp_expr& q) __GMPXX_NOEXCEPT { std::swap(*mp, *q.mp); } + + // assignment operators + __gmp_expr & operator=(const __gmp_expr &q) + { mpq_set(mp, q.mp); return *this; } +#if __GMPXX_USE_CXX11 + __gmp_expr & operator=(__gmp_expr &&q) noexcept + { swap(q); return *this; } + __gmp_expr & operator=(mpz_class &&z) noexcept + { get_num() = std::move(z); get_den() = 1u; return *this; } +#endif + template + __gmp_expr & operator=(const __gmp_expr &expr) + { __gmp_set_expr(mp, expr); return *this; } + + __gmp_expr & operator=(signed char c) + { mpq_set_si(mp, c, 1); return *this; } + __gmp_expr & operator=(unsigned char c) + { mpq_set_ui(mp, c, 1); return *this; } + + __gmp_expr & operator=(signed int i) { mpq_set_si(mp, i, 1); return *this; } + __gmp_expr & operator=(unsigned int i) + { mpq_set_ui(mp, i, 1); return *this; } + + __gmp_expr & operator=(signed short int s) + { mpq_set_si(mp, s, 1); return *this; } + __gmp_expr & operator=(unsigned short int s) + { mpq_set_ui(mp, s, 1); return *this; } + + __gmp_expr & operator=(signed long int l) + { mpq_set_si(mp, l, 1); return *this; } + __gmp_expr & operator=(unsigned long int l) + { mpq_set_ui(mp, l, 1); return *this; } + + __gmp_expr & operator=(float f) { mpq_set_d(mp, f); return *this; } + __gmp_expr & operator=(double d) { mpq_set_d(mp, d); return *this; } + // __gmp_expr & operator=(long double ld) + // { mpq_set_ld(mp, ld); return *this; } + + __gmp_expr & operator=(const char *s) + { + if (mpq_set_str (mp, s, 0) != 0) + throw std::invalid_argument ("mpq_set_str"); + return *this; + } + __gmp_expr & operator=(const std::string &s) + { + if (mpq_set_str(mp, s.c_str(), 0) != 0) + throw std::invalid_argument ("mpq_set_str"); + return *this; + } + + // string input/output functions + int set_str(const char *s, int base) + { return mpq_set_str(mp, s, base); } + int set_str(const std::string &s, int base) + { return mpq_set_str(mp, s.c_str(), base); } + std::string get_str(int base = 10) const + { + __gmp_alloc_cstring temp(mpq_get_str(0, base, mp)); + return std::string(temp.str); + } + + // conversion functions + + // casting a reference to an mpz_t to mpz_class & is a dirty hack, + // but works because the internal representation of mpz_class is + // exactly an mpz_t + const mpz_class & get_num() const + { return reinterpret_cast(*mpq_numref(mp)); } + mpz_class & get_num() + { return reinterpret_cast(*mpq_numref(mp)); } + const mpz_class & get_den() const + { return reinterpret_cast(*mpq_denref(mp)); } + mpz_class & get_den() + { return reinterpret_cast(*mpq_denref(mp)); } + + mpq_srcptr __get_mp() const { return mp; } + mpq_ptr __get_mp() { return mp; } + mpq_srcptr get_mpq_t() const { return mp; } + mpq_ptr get_mpq_t() { return mp; } + + mpz_srcptr get_num_mpz_t() const { return mpq_numref(mp); } + mpz_ptr get_num_mpz_t() { return mpq_numref(mp); } + mpz_srcptr get_den_mpz_t() const { return mpq_denref(mp); } + mpz_ptr get_den_mpz_t() { return mpq_denref(mp); } + + double get_d() const { return mpq_get_d(mp); } + +#if __GMPXX_USE_CXX11 + explicit operator bool() const { return mpq_numref(mp)->_mp_size != 0; } +#endif + + // compound assignments + __GMP_DECLARE_COMPOUND_OPERATOR(operator+=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator-=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator*=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator/=) + + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator<<=) + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator>>=) + + __GMP_DECLARE_INCREMENT_OPERATOR(operator++) + __GMP_DECLARE_INCREMENT_OPERATOR(operator--) +}; + +typedef __gmp_expr mpq_class; + + +/**************** mpf_class -- wrapper for mpf_t ****************/ + +template <> +class __gmp_expr +{ +private: + typedef mpf_t value_type; + value_type mp; +public: + mp_bitcnt_t get_prec() const { return mpf_get_prec(mp); } + + void set_prec(mp_bitcnt_t prec) { mpf_set_prec(mp, prec); } + void set_prec_raw(mp_bitcnt_t prec) { mpf_set_prec_raw(mp, prec); } + + // constructors and destructor + __gmp_expr() { mpf_init(mp); } + + __gmp_expr(const __gmp_expr &f) + { mpf_init2(mp, f.get_prec()); mpf_set(mp, f.mp); } +#if __GMPXX_USE_CXX11 + __gmp_expr(__gmp_expr &&f) + { *mp = *f.mp; mpf_init2(f.mp, get_prec()); } +#endif + __gmp_expr(const __gmp_expr &f, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set(mp, f.mp); } + template + __gmp_expr(const __gmp_expr &expr) + { mpf_init2(mp, expr.get_prec()); __gmp_set_expr(mp, expr); } + template + __gmp_expr(const __gmp_expr &expr, mp_bitcnt_t prec) + { mpf_init2(mp, prec); __gmp_set_expr(mp, expr); } + + __gmp_expr(signed char c) { mpf_init_set_si(mp, c); } + __gmp_expr(signed char c, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_si(mp, c); } + __gmp_expr(unsigned char c) { mpf_init_set_ui(mp, c); } + __gmp_expr(unsigned char c, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_ui(mp, c); } + + __gmp_expr(signed int i) { mpf_init_set_si(mp, i); } + __gmp_expr(signed int i, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_si(mp, i); } + __gmp_expr(unsigned int i) { mpf_init_set_ui(mp, i); } + __gmp_expr(unsigned int i, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_ui(mp, i); } + + __gmp_expr(signed short int s) { mpf_init_set_si(mp, s); } + __gmp_expr(signed short int s, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_si(mp, s); } + __gmp_expr(unsigned short int s) { mpf_init_set_ui(mp, s); } + __gmp_expr(unsigned short int s, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_ui(mp, s); } + + __gmp_expr(signed long int l) { mpf_init_set_si(mp, l); } + __gmp_expr(signed long int l, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_si(mp, l); } + __gmp_expr(unsigned long int l) { mpf_init_set_ui(mp, l); } + __gmp_expr(unsigned long int l, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_ui(mp, l); } + + __gmp_expr(float f) { mpf_init_set_d(mp, f); } + __gmp_expr(float f, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_d(mp, f); } + __gmp_expr(double d) { mpf_init_set_d(mp, d); } + __gmp_expr(double d, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_d(mp, d); } + // __gmp_expr(long double ld) { mpf_init_set_d(mp, ld); } + // __gmp_expr(long double ld, mp_bitcnt_t prec) + // { mpf_init2(mp, prec); mpf_set_d(mp, ld); } + + explicit __gmp_expr(const char *s) + { + if (mpf_init_set_str (mp, s, 0) != 0) + { + mpf_clear (mp); + throw std::invalid_argument ("mpf_set_str"); + } + } + __gmp_expr(const char *s, mp_bitcnt_t prec, int base = 0) + { + mpf_init2(mp, prec); + if (mpf_set_str(mp, s, base) != 0) + { + mpf_clear (mp); + throw std::invalid_argument ("mpf_set_str"); + } + } + explicit __gmp_expr(const std::string &s) + { + if (mpf_init_set_str(mp, s.c_str(), 0) != 0) + { + mpf_clear (mp); + throw std::invalid_argument ("mpf_set_str"); + } + } + __gmp_expr(const std::string &s, mp_bitcnt_t prec, int base = 0) + { + mpf_init2(mp, prec); + if (mpf_set_str(mp, s.c_str(), base) != 0) + { + mpf_clear (mp); + throw std::invalid_argument ("mpf_set_str"); + } + } + + explicit __gmp_expr(mpf_srcptr f) + { mpf_init2(mp, mpf_get_prec(f)); mpf_set(mp, f); } + __gmp_expr(mpf_srcptr f, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set(mp, f); } + + ~__gmp_expr() { mpf_clear(mp); } + + void swap(__gmp_expr& f) __GMPXX_NOEXCEPT { std::swap(*mp, *f.mp); } + + // assignment operators + __gmp_expr & operator=(const __gmp_expr &f) + { mpf_set(mp, f.mp); return *this; } +#if __GMPXX_USE_CXX11 + __gmp_expr & operator=(__gmp_expr &&f) noexcept + { swap(f); return *this; } +#endif + template + __gmp_expr & operator=(const __gmp_expr &expr) + { __gmp_set_expr(mp, expr); return *this; } + + __gmp_expr & operator=(signed char c) { mpf_set_si(mp, c); return *this; } + __gmp_expr & operator=(unsigned char c) { mpf_set_ui(mp, c); return *this; } + + __gmp_expr & operator=(signed int i) { mpf_set_si(mp, i); return *this; } + __gmp_expr & operator=(unsigned int i) { mpf_set_ui(mp, i); return *this; } + + __gmp_expr & operator=(signed short int s) + { mpf_set_si(mp, s); return *this; } + __gmp_expr & operator=(unsigned short int s) + { mpf_set_ui(mp, s); return *this; } + + __gmp_expr & operator=(signed long int l) + { mpf_set_si(mp, l); return *this; } + __gmp_expr & operator=(unsigned long int l) + { mpf_set_ui(mp, l); return *this; } + + __gmp_expr & operator=(float f) { mpf_set_d(mp, f); return *this; } + __gmp_expr & operator=(double d) { mpf_set_d(mp, d); return *this; } + // __gmp_expr & operator=(long double ld) + // { mpf_set_ld(mp, ld); return *this; } + + __gmp_expr & operator=(const char *s) + { + if (mpf_set_str (mp, s, 0) != 0) + throw std::invalid_argument ("mpf_set_str"); + return *this; + } + __gmp_expr & operator=(const std::string &s) + { + if (mpf_set_str(mp, s.c_str(), 0) != 0) + throw std::invalid_argument ("mpf_set_str"); + return *this; + } + + // string input/output functions + int set_str(const char *s, int base) + { return mpf_set_str(mp, s, base); } + int set_str(const std::string &s, int base) + { return mpf_set_str(mp, s.c_str(), base); } + std::string get_str(mp_exp_t &expo, int base = 10, size_t size = 0) const + { + __gmp_alloc_cstring temp(mpf_get_str(0, &expo, base, size, mp)); + return std::string(temp.str); + } + + // conversion functions + mpf_srcptr __get_mp() const { return mp; } + mpf_ptr __get_mp() { return mp; } + mpf_srcptr get_mpf_t() const { return mp; } + mpf_ptr get_mpf_t() { return mp; } + + signed long int get_si() const { return mpf_get_si(mp); } + unsigned long int get_ui() const { return mpf_get_ui(mp); } + double get_d() const { return mpf_get_d(mp); } + + // bool fits_schar_p() const { return mpf_fits_schar_p(mp); } + // bool fits_uchar_p() const { return mpf_fits_uchar_p(mp); } + bool fits_sint_p() const { return mpf_fits_sint_p(mp); } + bool fits_uint_p() const { return mpf_fits_uint_p(mp); } + bool fits_sshort_p() const { return mpf_fits_sshort_p(mp); } + bool fits_ushort_p() const { return mpf_fits_ushort_p(mp); } + bool fits_slong_p() const { return mpf_fits_slong_p(mp); } + bool fits_ulong_p() const { return mpf_fits_ulong_p(mp); } + // bool fits_float_p() const { return mpf_fits_float_p(mp); } + // bool fits_double_p() const { return mpf_fits_double_p(mp); } + // bool fits_ldouble_p() const { return mpf_fits_ldouble_p(mp); } + +#if __GMPXX_USE_CXX11 + explicit operator bool() const { return mp->_mp_size != 0; } +#endif + + // compound assignments + __GMP_DECLARE_COMPOUND_OPERATOR(operator+=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator-=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator*=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator/=) + + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator<<=) + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator>>=) + + __GMP_DECLARE_INCREMENT_OPERATOR(operator++) + __GMP_DECLARE_INCREMENT_OPERATOR(operator--) +}; + +typedef __gmp_expr mpf_class; + + + +/**************** User-defined literals ****************/ + +#if __GMPXX_USE_CXX11 +inline mpz_class operator"" _mpz(const char* s) +{ + return mpz_class(s); +} + +inline mpq_class operator"" _mpq(const char* s) +{ + mpq_class q; + q.get_num() = s; + return q; +} + +inline mpf_class operator"" _mpf(const char* s) +{ + return mpf_class(s); +} +#endif + +/**************** I/O operators ****************/ + +// these should (and will) be provided separately + +template +inline std::ostream & operator<< +(std::ostream &o, const __gmp_expr &expr) +{ + __gmp_expr const& temp(expr); + return o << temp.__get_mp(); +} + +template +inline std::istream & operator>>(std::istream &i, __gmp_expr &expr) +{ + return i >> expr.__get_mp(); +} + +/* +// you might want to uncomment this +inline std::istream & operator>>(std::istream &i, mpq_class &q) +{ + i >> q.get_mpq_t(); + q.canonicalize(); + return i; +} +*/ + + +/**************** Functions for type conversion ****************/ + +inline void __gmp_set_expr(mpz_ptr z, const mpz_class &w) +{ + mpz_set(z, w.get_mpz_t()); +} + +template +inline void __gmp_set_expr(mpz_ptr z, const __gmp_expr &expr) +{ + expr.eval(z); +} + +template +inline void __gmp_set_expr(mpz_ptr z, const __gmp_expr &expr) +{ + mpq_class const& temp(expr); + mpz_set_q(z, temp.get_mpq_t()); +} + +template +inline void __gmp_set_expr(mpz_ptr z, const __gmp_expr &expr) +{ + mpf_class const& temp(expr); + mpz_set_f(z, temp.get_mpf_t()); +} + +inline void __gmp_set_expr(mpq_ptr q, const mpz_class &z) +{ + mpq_set_z(q, z.get_mpz_t()); +} + +template +inline void __gmp_set_expr(mpq_ptr q, const __gmp_expr &expr) +{ + __gmp_set_expr(mpq_numref(q), expr); + mpz_set_ui(mpq_denref(q), 1); +} + +inline void __gmp_set_expr(mpq_ptr q, const mpq_class &r) +{ + mpq_set(q, r.get_mpq_t()); +} + +template +inline void __gmp_set_expr(mpq_ptr q, const __gmp_expr &expr) +{ + expr.eval(q); +} + +template +inline void __gmp_set_expr(mpq_ptr q, const __gmp_expr &expr) +{ + mpf_class const& temp(expr); + mpq_set_f(q, temp.get_mpf_t()); +} + +template +inline void __gmp_set_expr(mpf_ptr f, const __gmp_expr &expr) +{ + mpz_class const& temp(expr); + mpf_set_z(f, temp.get_mpz_t()); +} + +template +inline void __gmp_set_expr(mpf_ptr f, const __gmp_expr &expr) +{ + mpq_class const& temp(expr); + mpf_set_q(f, temp.get_mpq_t()); +} + +inline void __gmp_set_expr(mpf_ptr f, const mpf_class &g) +{ + mpf_set(f, g.get_mpf_t()); +} + +template +inline void __gmp_set_expr(mpf_ptr f, const __gmp_expr &expr) +{ + expr.eval(f); +} + + +/* Temporary objects */ + +template +class __gmp_temp +{ + __gmp_expr val; + public: + template + __gmp_temp(U const& u, V) : val (u) {} + typename __gmp_resolve_expr::srcptr_type + __get_mp() const { return val.__get_mp(); } +}; + +template <> +class __gmp_temp +{ + mpf_class val; + public: + template + __gmp_temp(U const& u, mpf_ptr res) : val (u, mpf_get_prec(res)) {} + mpf_srcptr __get_mp() const { return val.__get_mp(); } +}; + +/**************** Specializations of __gmp_expr ****************/ +/* The eval() method of __gmp_expr evaluates the corresponding + expression and assigns the result to its argument, which is either an + mpz_t, mpq_t, or mpf_t as specified by the T argument. + Compound expressions are evaluated recursively (temporaries are created + to hold intermediate values), while for simple expressions the eval() + method of the appropriate function object (available as the Op argument + of either __gmp_unary_expr or __gmp_binary_expr) is + called. */ + + +/**************** Unary expressions ****************/ +/* cases: + - simple: argument is mp*_class, that is, __gmp_expr + - compound: argument is __gmp_expr (with U not equal to T) */ + + +// simple expressions + +template +class __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val_type; + + __gmp_unary_expr expr; +public: + explicit __gmp_expr(const val_type &val) : expr(val) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { Op::eval(p, expr.val.__get_mp()); } + const val_type & get_val() const { return expr.val; } + mp_bitcnt_t get_prec() const { return expr.val.get_prec(); } +}; + + +// compound expressions + +template +class __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val_type; + + __gmp_unary_expr expr; +public: + explicit __gmp_expr(const val_type &val) : expr(val) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { expr.val.eval(p); Op::eval(p, p); } + const val_type & get_val() const { return expr.val; } + mp_bitcnt_t get_prec() const { return expr.val.get_prec(); } +}; + + +/**************** Binary expressions ****************/ +/* simple: + - arguments are both mp*_class + - one argument is mp*_class, one is a built-in type + compound: + - one is mp*_class, one is __gmp_expr + - one is __gmp_expr, one is built-in + - both arguments are __gmp_expr<...> */ + + +// simple expressions + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { Op::eval(p, expr.val1.__get_mp(), expr.val2.__get_mp()); } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + + +// simple expressions, T is a built-in numerical type + +template +class __gmp_expr, U, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef U val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { Op::eval(p, expr.val1.__get_mp(), expr.val2); } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const { return expr.val1.get_prec(); } +}; + +template +class __gmp_expr, Op> > +{ +private: + typedef U val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { Op::eval(p, expr.val1, expr.val2.__get_mp()); } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const { return expr.val2.get_prec(); } +}; + + +// compound expressions, one argument is a subexpression + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + if(p != expr.val1.__get_mp()) + { + __gmp_set_expr(p, expr.val2); + Op::eval(p, expr.val1.__get_mp(), p); + } + else + { + __gmp_temp temp(expr.val2, p); + Op::eval(p, expr.val1.__get_mp(), temp.__get_mp()); + } + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + if(p != expr.val2.__get_mp()) + { + __gmp_set_expr(p, expr.val1); + Op::eval(p, p, expr.val2.__get_mp()); + } + else + { + __gmp_temp temp(expr.val1, p); + Op::eval(p, temp.__get_mp(), expr.val2.__get_mp()); + } + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + if(p != expr.val1.__get_mp()) + { + __gmp_set_expr(p, expr.val2); + Op::eval(p, expr.val1.__get_mp(), p); + } + else + { + __gmp_temp temp(expr.val2, p); + Op::eval(p, expr.val1.__get_mp(), temp.__get_mp()); + } + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + if(p != expr.val2.__get_mp()) + { + __gmp_set_expr(p, expr.val1); + Op::eval(p, p, expr.val2.__get_mp()); + } + else + { + __gmp_temp temp(expr.val1, p); + Op::eval(p, temp.__get_mp(), expr.val2.__get_mp()); + } + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + + +// one argument is a subexpression, one is a built-in + +template +class __gmp_expr, V, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef V val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + expr.val1.eval(p); + Op::eval(p, p, expr.val2); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const { return expr.val1.get_prec(); } +}; + +template +class __gmp_expr, Op> > +{ +private: + typedef U val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + expr.val2.eval(p); + Op::eval(p, expr.val1, p); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const { return expr.val2.get_prec(); } +}; + + +// both arguments are subexpressions + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + __gmp_temp temp2(expr.val2, p); + expr.val1.eval(p); + Op::eval(p, p, temp2.__get_mp()); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + __gmp_temp temp1(expr.val1, p); + expr.val2.eval(p); + Op::eval(p, temp1.__get_mp(), p); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + __gmp_temp temp2(expr.val2, p); + expr.val1.eval(p); + Op::eval(p, p, temp2.__get_mp()); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + + +/**************** Special cases ****************/ + +/* Some operations (i.e., add and subtract) with mixed mpz/mpq arguments + can be done directly without first converting the mpz to mpq. + Appropriate specializations of __gmp_expr are required. */ + + +#define __GMPZQ_DEFINE_EXPR(eval_fun) \ + \ +template <> \ +class __gmp_expr > \ +{ \ +private: \ + typedef mpz_class val1_type; \ + typedef mpq_class val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { eval_fun::eval(q, expr.val1.get_mpz_t(), expr.val2.get_mpq_t()); } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template <> \ +class __gmp_expr > \ +{ \ +private: \ + typedef mpq_class val1_type; \ + typedef mpz_class val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { eval_fun::eval(q, expr.val1.get_mpq_t(), expr.val2.get_mpz_t()); } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr \ +, eval_fun> > \ +{ \ +private: \ + typedef mpz_class val1_type; \ + typedef __gmp_expr val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpq_class temp(expr.val2); \ + eval_fun::eval(q, expr.val1.get_mpz_t(), temp.get_mpq_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr \ +, eval_fun> > \ +{ \ +private: \ + typedef mpq_class val1_type; \ + typedef __gmp_expr val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpz_class temp(expr.val2); \ + eval_fun::eval(q, expr.val1.get_mpq_t(), temp.get_mpz_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr \ +, mpq_class, eval_fun> > \ +{ \ +private: \ + typedef __gmp_expr val1_type; \ + typedef mpq_class val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpz_class temp(expr.val1); \ + eval_fun::eval(q, temp.get_mpz_t(), expr.val2.get_mpq_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr \ +, mpz_class, eval_fun> > \ +{ \ +private: \ + typedef __gmp_expr val1_type; \ + typedef mpz_class val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpq_class temp(expr.val1); \ + eval_fun::eval(q, temp.get_mpq_t(), expr.val2.get_mpz_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr, __gmp_expr, eval_fun> > \ +{ \ +private: \ + typedef __gmp_expr val1_type; \ + typedef __gmp_expr val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpz_class temp1(expr.val1); \ + expr.val2.eval(q); \ + eval_fun::eval(q, temp1.get_mpz_t(), q); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr, __gmp_expr, eval_fun> > \ +{ \ +private: \ + typedef __gmp_expr val1_type; \ + typedef __gmp_expr val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpz_class temp2(expr.val2); \ + expr.val1.eval(q); \ + eval_fun::eval(q, q, temp2.get_mpz_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; + + +__GMPZQ_DEFINE_EXPR(__gmp_binary_plus) +__GMPZQ_DEFINE_EXPR(__gmp_binary_minus) + + + +/**************** Macros for defining functions ****************/ +/* Results of operators and functions are instances of __gmp_expr. + T determines the numerical type of the expression: it can be either + mpz_t, mpq_t, or mpf_t. When the arguments of a binary + expression have different numerical types, __gmp_resolve_expr is used + to determine the "larger" type. + U is either __gmp_unary_expr or __gmp_binary_expr, + where V and W are the arguments' types -- they can in turn be + expressions, thus allowing to build compound expressions to any + degree of complexity. + Op is a function object that must have an eval() method accepting + appropriate arguments. + Actual evaluation of a __gmp_expr object is done when it gets + assigned to an mp*_class ("lazy" evaluation): this is done by calling + its eval() method. */ + + +// non-member unary operators and functions + +#define __GMP_DEFINE_UNARY_FUNCTION(fun, eval_fun) \ + \ +template \ +inline __gmp_expr, eval_fun> > \ +fun(const __gmp_expr &expr) \ +{ \ + return __gmp_expr, eval_fun> >(expr); \ +} + +#define __GMP_DEFINE_UNARY_TYPE_FUNCTION(type, fun, eval_fun) \ + \ +template \ +inline type fun(const __gmp_expr &expr) \ +{ \ + __gmp_expr const& temp(expr); \ + return eval_fun::eval(temp.__get_mp()); \ +} + + +// non-member binary operators and functions + +#define __GMPP_DEFINE_BINARY_FUNCTION(fun, eval_fun) \ + \ +template \ +inline __gmp_expr::value_type, \ +__gmp_binary_expr<__gmp_expr, __gmp_expr, eval_fun> > \ +fun(const __gmp_expr &expr1, const __gmp_expr &expr2) \ +{ \ + return __gmp_expr::value_type, \ + __gmp_binary_expr<__gmp_expr, __gmp_expr, eval_fun> > \ + (expr1, expr2); \ +} + +#define __GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, bigtype) \ + \ +template \ +inline __gmp_expr \ +, bigtype, eval_fun> > \ +fun(const __gmp_expr &expr, type t) \ +{ \ + return __gmp_expr \ + , bigtype, eval_fun> >(expr, t); \ +} \ + \ +template \ +inline __gmp_expr \ +, eval_fun> > \ +fun(type t, const __gmp_expr &expr) \ +{ \ + return __gmp_expr \ + , eval_fun> >(t, expr); \ +} + +#define __GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, type) \ +__GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, signed long int) + +#define __GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, type) \ +__GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, unsigned long int) + +#define __GMPND_DEFINE_BINARY_FUNCTION(fun, eval_fun, type) \ +__GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, double) + +#define __GMPNLD_DEFINE_BINARY_FUNCTION(fun, eval_fun, type) \ +__GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, long double) + +#define __GMPN_DEFINE_BINARY_FUNCTION(fun, eval_fun) \ +__GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, signed char) \ +__GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, unsigned char) \ +__GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, signed int) \ +__GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, unsigned int) \ +__GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, signed short int) \ +__GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, unsigned short int) \ +__GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, signed long int) \ +__GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, unsigned long int) \ +__GMPND_DEFINE_BINARY_FUNCTION(fun, eval_fun, float) \ +__GMPND_DEFINE_BINARY_FUNCTION(fun, eval_fun, double) \ +/* __GMPNLD_DEFINE_BINARY_FUNCTION(fun, eval_fun, long double) */ + +#define __GMP_DEFINE_BINARY_FUNCTION(fun, eval_fun) \ +__GMPP_DEFINE_BINARY_FUNCTION(fun, eval_fun) \ +__GMPN_DEFINE_BINARY_FUNCTION(fun, eval_fun) + + +#define __GMP_DEFINE_BINARY_FUNCTION_UI(fun, eval_fun) \ + \ +template \ +inline __gmp_expr \ +, mp_bitcnt_t, eval_fun> > \ +fun(const __gmp_expr &expr, mp_bitcnt_t l) \ +{ \ + return __gmp_expr, mp_bitcnt_t, eval_fun> >(expr, l); \ +} + + +#define __GMPP_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) \ + \ +template \ +inline type fun(const __gmp_expr &expr1, \ + const __gmp_expr &expr2) \ +{ \ + typedef typename __gmp_resolve_expr::value_type eval_type; \ + __gmp_expr const& temp1(expr1); \ + __gmp_expr const& temp2(expr2); \ + return eval_fun::eval(temp1.__get_mp(), temp2.__get_mp()); \ +} + +#define __GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, \ + type2, bigtype) \ + \ +template \ +inline type fun(const __gmp_expr &expr, type2 t) \ +{ \ + __gmp_expr const& temp(expr); \ + return eval_fun::eval(temp.__get_mp(), static_cast(t)); \ +} \ + \ +template \ +inline type fun(type2 t, const __gmp_expr &expr) \ +{ \ + __gmp_expr const& temp(expr); \ + return eval_fun::eval(static_cast(t), temp.__get_mp()); \ +} + +#define __GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, \ + type2, signed long int) + +#define __GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, \ + type2, unsigned long int) + +#define __GMPND_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2, double) + +#define __GMPNLD_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2, long double) + +#define __GMPN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) \ +__GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, signed char) \ +__GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, unsigned char) \ +__GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, signed int) \ +__GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, unsigned int) \ +__GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, signed short int) \ +__GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, unsigned short int) \ +__GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, signed long int) \ +__GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, unsigned long int) \ +__GMPND_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, float) \ +__GMPND_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, double) \ +/* __GMPNLD_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, long double) */ + +#define __GMP_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) \ +__GMPP_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) \ +__GMPN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) + + +// member operators + +#define __GMPP_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) \ + \ +template \ +inline type##_class & type##_class::fun(const __gmp_expr &expr) \ +{ \ + __gmp_set_expr(mp, __gmp_expr, eval_fun> >(*this, expr)); \ + return *this; \ +} + +#define __GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, \ + type2, bigtype) \ + \ +inline type##_class & type##_class::fun(type2 t) \ +{ \ + __gmp_set_expr(mp, __gmp_expr >(*this, t)); \ + return *this; \ +} + +#define __GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, \ + type2, signed long int) + +#define __GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, \ + type2, unsigned long int) + +#define __GMPND_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2, double) + +#define __GMPNLD_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2, long double) + +#define __GMPN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) \ +__GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, signed char) \ +__GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, unsigned char) \ +__GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, signed int) \ +__GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, unsigned int) \ +__GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, signed short int) \ +__GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, unsigned short int) \ +__GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, signed long int) \ +__GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, unsigned long int) \ +__GMPND_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, float) \ +__GMPND_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, double) \ +/* __GMPNLD_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, long double) */ + +#define __GMP_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) \ +__GMPP_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) \ +__GMPN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) + +#define __GMPZ_DEFINE_COMPOUND_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR(mpz, fun, eval_fun) + +#define __GMPQ_DEFINE_COMPOUND_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR(mpq, fun, eval_fun) + +#define __GMPF_DEFINE_COMPOUND_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR(mpf, fun, eval_fun) + + + +#define __GMP_DEFINE_COMPOUND_OPERATOR_UI(type, fun, eval_fun) \ + \ +inline type##_class & type##_class::fun(mp_bitcnt_t l) \ +{ \ + __gmp_set_expr(mp, __gmp_expr >(*this, l)); \ + return *this; \ +} + +#define __GMPZ_DEFINE_COMPOUND_OPERATOR_UI(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR_UI(mpz, fun, eval_fun) + +#define __GMPQ_DEFINE_COMPOUND_OPERATOR_UI(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR_UI(mpq, fun, eval_fun) + +#define __GMPF_DEFINE_COMPOUND_OPERATOR_UI(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR_UI(mpf, fun, eval_fun) + + + +#define __GMP_DEFINE_INCREMENT_OPERATOR(type, fun, eval_fun) \ + \ +inline type##_class & type##_class::fun() \ +{ \ + eval_fun::eval(mp); \ + return *this; \ +} \ + \ +inline type##_class type##_class::fun(int) \ +{ \ + type##_class temp(*this); \ + eval_fun::eval(mp); \ + return temp; \ +} + +#define __GMPZ_DEFINE_INCREMENT_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_INCREMENT_OPERATOR(mpz, fun, eval_fun) + +#define __GMPQ_DEFINE_INCREMENT_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_INCREMENT_OPERATOR(mpq, fun, eval_fun) + +#define __GMPF_DEFINE_INCREMENT_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_INCREMENT_OPERATOR(mpf, fun, eval_fun) + + + +/**************** Arithmetic operators and functions ****************/ + +// non-member operators and functions + +__GMP_DEFINE_UNARY_FUNCTION(operator+, __gmp_unary_plus) +__GMP_DEFINE_UNARY_FUNCTION(operator-, __gmp_unary_minus) +__GMP_DEFINE_UNARY_FUNCTION(operator~, __gmp_unary_com) + +__GMP_DEFINE_BINARY_FUNCTION(operator+, __gmp_binary_plus) +__GMP_DEFINE_BINARY_FUNCTION(operator-, __gmp_binary_minus) +__GMP_DEFINE_BINARY_FUNCTION(operator*, __gmp_binary_multiplies) +__GMP_DEFINE_BINARY_FUNCTION(operator/, __gmp_binary_divides) +__GMP_DEFINE_BINARY_FUNCTION(operator%, __gmp_binary_modulus) +__GMP_DEFINE_BINARY_FUNCTION(operator&, __gmp_binary_and) +__GMP_DEFINE_BINARY_FUNCTION(operator|, __gmp_binary_ior) +__GMP_DEFINE_BINARY_FUNCTION(operator^, __gmp_binary_xor) + +__GMP_DEFINE_BINARY_FUNCTION_UI(operator<<, __gmp_binary_lshift) +__GMP_DEFINE_BINARY_FUNCTION_UI(operator>>, __gmp_binary_rshift) + +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator==, __gmp_binary_equal) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator!=, ! __gmp_binary_equal) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator<, __gmp_binary_less) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator<=, ! __gmp_binary_greater) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator>, __gmp_binary_greater) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator>=, ! __gmp_binary_less) + +__GMP_DEFINE_UNARY_FUNCTION(abs, __gmp_abs_function) +__GMP_DEFINE_UNARY_FUNCTION(trunc, __gmp_trunc_function) +__GMP_DEFINE_UNARY_FUNCTION(floor, __gmp_floor_function) +__GMP_DEFINE_UNARY_FUNCTION(ceil, __gmp_ceil_function) +__GMP_DEFINE_UNARY_FUNCTION(sqrt, __gmp_sqrt_function) +__GMP_DEFINE_BINARY_FUNCTION(hypot, __gmp_hypot_function) + +__GMP_DEFINE_UNARY_TYPE_FUNCTION(int, sgn, __gmp_sgn_function) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(int, cmp, __gmp_cmp_function) + +template +void swap(__gmp_expr& x, __gmp_expr& y) __GMPXX_NOEXCEPT +{ x.swap(y); } + +// member operators for mpz_class + +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator+=, __gmp_binary_plus) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator-=, __gmp_binary_minus) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator*=, __gmp_binary_multiplies) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator/=, __gmp_binary_divides) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator%=, __gmp_binary_modulus) + +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator&=, __gmp_binary_and) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator|=, __gmp_binary_ior) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator^=, __gmp_binary_xor) + +__GMPZ_DEFINE_COMPOUND_OPERATOR_UI(operator<<=, __gmp_binary_lshift) +__GMPZ_DEFINE_COMPOUND_OPERATOR_UI(operator>>=, __gmp_binary_rshift) + +__GMPZ_DEFINE_INCREMENT_OPERATOR(operator++, __gmp_unary_increment) +__GMPZ_DEFINE_INCREMENT_OPERATOR(operator--, __gmp_unary_decrement) + +// member operators for mpq_class + +__GMPQ_DEFINE_COMPOUND_OPERATOR(operator+=, __gmp_binary_plus) +__GMPQ_DEFINE_COMPOUND_OPERATOR(operator-=, __gmp_binary_minus) +__GMPQ_DEFINE_COMPOUND_OPERATOR(operator*=, __gmp_binary_multiplies) +__GMPQ_DEFINE_COMPOUND_OPERATOR(operator/=, __gmp_binary_divides) + +__GMPQ_DEFINE_COMPOUND_OPERATOR_UI(operator<<=, __gmp_binary_lshift) +__GMPQ_DEFINE_COMPOUND_OPERATOR_UI(operator>>=, __gmp_binary_rshift) + +__GMPQ_DEFINE_INCREMENT_OPERATOR(operator++, __gmp_unary_increment) +__GMPQ_DEFINE_INCREMENT_OPERATOR(operator--, __gmp_unary_decrement) + +// member operators for mpf_class + +__GMPF_DEFINE_COMPOUND_OPERATOR(operator+=, __gmp_binary_plus) +__GMPF_DEFINE_COMPOUND_OPERATOR(operator-=, __gmp_binary_minus) +__GMPF_DEFINE_COMPOUND_OPERATOR(operator*=, __gmp_binary_multiplies) +__GMPF_DEFINE_COMPOUND_OPERATOR(operator/=, __gmp_binary_divides) + +__GMPF_DEFINE_COMPOUND_OPERATOR_UI(operator<<=, __gmp_binary_lshift) +__GMPF_DEFINE_COMPOUND_OPERATOR_UI(operator>>=, __gmp_binary_rshift) + +__GMPF_DEFINE_INCREMENT_OPERATOR(operator++, __gmp_unary_increment) +__GMPF_DEFINE_INCREMENT_OPERATOR(operator--, __gmp_unary_decrement) + + + +/**************** Class wrapper for gmp_randstate_t ****************/ + +class __gmp_urandomb_value { }; +class __gmp_urandomm_value { }; + +template <> +class __gmp_expr +{ +private: + __gmp_randstate_struct *state; + mp_bitcnt_t bits; +public: + __gmp_expr(gmp_randstate_t s, mp_bitcnt_t l) : state(s), bits(l) { } + void eval(mpz_ptr z) const { __gmp_rand_function::eval(z, state, bits); } + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } +}; + +template <> +class __gmp_expr +{ +private: + __gmp_randstate_struct *state; + mpz_class range; +public: + __gmp_expr(gmp_randstate_t s, const mpz_class &z) : state(s), range(z) { } + void eval(mpz_ptr z) const + { __gmp_rand_function::eval(z, state, range.get_mpz_t()); } + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } +}; + +template <> +class __gmp_expr +{ +private: + __gmp_randstate_struct *state; + mp_bitcnt_t bits; +public: + __gmp_expr(gmp_randstate_t s, mp_bitcnt_t l) : state(s), bits(l) { } + void eval(mpf_ptr f) const + { + __gmp_rand_function::eval(f, state, + (bits>0) ? bits : mpf_get_prec(f)); + } + mp_bitcnt_t get_prec() const + { + if (bits == 0) + return mpf_get_default_prec(); + else + return bits; + } +}; + +extern "C" { + typedef void __gmp_randinit_default_t (gmp_randstate_t); + typedef void __gmp_randinit_lc_2exp_t (gmp_randstate_t, mpz_srcptr, unsigned long int, mp_bitcnt_t); + typedef int __gmp_randinit_lc_2exp_size_t (gmp_randstate_t, mp_bitcnt_t); +} + +class gmp_randclass +{ +private: + gmp_randstate_t state; + + // copy construction and assignment not allowed + gmp_randclass(const gmp_randclass &); + void operator=(const gmp_randclass &); +public: + // constructors and destructor + gmp_randclass(gmp_randalg_t alg, unsigned long int size) + { + switch (alg) + { + case GMP_RAND_ALG_LC: // no other cases for now + default: + gmp_randinit(state, alg, size); + break; + } + } + + // gmp_randinit_default + gmp_randclass(__gmp_randinit_default_t* f) { f(state); } + + // gmp_randinit_lc_2exp + gmp_randclass(__gmp_randinit_lc_2exp_t* f, + mpz_class z, unsigned long int l1, mp_bitcnt_t l2) + { f(state, z.get_mpz_t(), l1, l2); } + + // gmp_randinit_lc_2exp_size + gmp_randclass(__gmp_randinit_lc_2exp_size_t* f, + mp_bitcnt_t size) + { + if (f (state, size) == 0) + throw std::length_error ("gmp_randinit_lc_2exp_size"); + } + + ~gmp_randclass() { gmp_randclear(state); } + + // initialize + void seed(); // choose a random seed some way (?) + void seed(unsigned long int s) { gmp_randseed_ui(state, s); } + void seed(const mpz_class &z) { gmp_randseed(state, z.get_mpz_t()); } + + // get random number + __gmp_expr get_z_bits(mp_bitcnt_t l) + { return __gmp_expr(state, l); } + __gmp_expr get_z_bits(const mpz_class &z) + { return get_z_bits(z.get_ui()); } + // FIXME: z.get_bitcnt_t() ? + + __gmp_expr get_z_range(const mpz_class &z) + { return __gmp_expr(state, z); } + + __gmp_expr get_f(mp_bitcnt_t prec = 0) + { return __gmp_expr(state, prec); } +}; + + +/**************** Specialize std::numeric_limits ****************/ + +namespace std { + template <> class numeric_limits + { + public: + static const bool is_specialized = true; + static mpz_class min() { return mpz_class(); } + static mpz_class max() { return mpz_class(); } + static mpz_class lowest() { return mpz_class(); } + static const int digits = 0; + static const int digits10 = 0; + static const int max_digits10 = 0; + static const bool is_signed = true; + static const bool is_integer = true; + static const bool is_exact = true; + static const int radix = 2; + static mpz_class epsilon() { return mpz_class(); } + static mpz_class round_error() { return mpz_class(); } + static const int min_exponent = 0; + static const int min_exponent10 = 0; + static const int max_exponent = 0; + static const int max_exponent10 = 0; + static const bool has_infinity = false; + static const bool has_quiet_NaN = false; + static const bool has_signaling_NaN = false; + static const float_denorm_style has_denorm = denorm_absent; + static const bool has_denorm_loss = false; + static mpz_class infinity() { return mpz_class(); } + static mpz_class quiet_NaN() { return mpz_class(); } + static mpz_class signaling_NaN() { return mpz_class(); } + static mpz_class denorm_min() { return mpz_class(); } + static const bool is_iec559 = false; + static const bool is_bounded = false; + static const bool is_modulo = false; + static const bool traps = false; + static const bool tinyness_before = false; + static const float_round_style round_style = round_toward_zero; + }; + + template <> class numeric_limits + { + public: + static const bool is_specialized = true; + static mpq_class min() { return mpq_class(); } + static mpq_class max() { return mpq_class(); } + static mpq_class lowest() { return mpq_class(); } + static const int digits = 0; + static const int digits10 = 0; + static const int max_digits10 = 0; + static const bool is_signed = true; + static const bool is_integer = false; + static const bool is_exact = true; + static const int radix = 2; + static mpq_class epsilon() { return mpq_class(); } + static mpq_class round_error() { return mpq_class(); } + static const int min_exponent = 0; + static const int min_exponent10 = 0; + static const int max_exponent = 0; + static const int max_exponent10 = 0; + static const bool has_infinity = false; + static const bool has_quiet_NaN = false; + static const bool has_signaling_NaN = false; + static const float_denorm_style has_denorm = denorm_absent; + static const bool has_denorm_loss = false; + static mpq_class infinity() { return mpq_class(); } + static mpq_class quiet_NaN() { return mpq_class(); } + static mpq_class signaling_NaN() { return mpq_class(); } + static mpq_class denorm_min() { return mpq_class(); } + static const bool is_iec559 = false; + static const bool is_bounded = false; + static const bool is_modulo = false; + static const bool traps = false; + static const bool tinyness_before = false; + static const float_round_style round_style = round_toward_zero; + }; + + template <> class numeric_limits + { + public: + static const bool is_specialized = true; + static mpf_class min() { return mpf_class(); } + static mpf_class max() { return mpf_class(); } + static mpf_class lowest() { return mpf_class(); } + static const int digits = 0; + static const int digits10 = 0; + static const int max_digits10 = 0; + static const bool is_signed = true; + static const bool is_integer = false; + static const bool is_exact = false; + static const int radix = 2; + static mpf_class epsilon() { return mpf_class(); } + static mpf_class round_error() { return mpf_class(); } + static const int min_exponent = 0; + static const int min_exponent10 = 0; + static const int max_exponent = 0; + static const int max_exponent10 = 0; + static const bool has_infinity = false; + static const bool has_quiet_NaN = false; + static const bool has_signaling_NaN = false; + static const float_denorm_style has_denorm = denorm_absent; + static const bool has_denorm_loss = false; + static mpf_class infinity() { return mpf_class(); } + static mpf_class quiet_NaN() { return mpf_class(); } + static mpf_class signaling_NaN() { return mpf_class(); } + static mpf_class denorm_min() { return mpf_class(); } + static const bool is_iec559 = false; + static const bool is_bounded = false; + static const bool is_modulo = false; + static const bool traps = false; + static const bool tinyness_before = false; + static const float_round_style round_style = round_indeterminate; + }; +} + + +/**************** #undef all private macros ****************/ + +#undef __GMPP_DECLARE_COMPOUND_OPERATOR +#undef __GMPN_DECLARE_COMPOUND_OPERATOR +#undef __GMP_DECLARE_COMPOUND_OPERATOR +#undef __GMP_DECLARE_COMPOUND_OPERATOR_UI +#undef __GMP_DECLARE_INCREMENT_OPERATOR + +#undef __GMPZQ_DEFINE_EXPR + +#undef __GMP_DEFINE_UNARY_FUNCTION +#undef __GMP_DEFINE_UNARY_TYPE_FUNCTION + +#undef __GMPP_DEFINE_BINARY_FUNCTION +#undef __GMPNN_DEFINE_BINARY_FUNCTION +#undef __GMPNS_DEFINE_BINARY_FUNCTION +#undef __GMPNU_DEFINE_BINARY_FUNCTION +#undef __GMPND_DEFINE_BINARY_FUNCTION +#undef __GMPNLD_DEFINE_BINARY_FUNCTION +#undef __GMPN_DEFINE_BINARY_FUNCTION +#undef __GMP_DEFINE_BINARY_FUNCTION + +#undef __GMP_DEFINE_BINARY_FUNCTION_UI + +#undef __GMPP_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPNN_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPNS_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPNU_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPND_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPNLD_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPN_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMP_DEFINE_BINARY_TYPE_FUNCTION + +#undef __GMPZ_DEFINE_COMPOUND_OPERATOR + +#undef __GMPP_DEFINE_COMPOUND_OPERATOR +#undef __GMPNN_DEFINE_COMPOUND_OPERATOR +#undef __GMPNS_DEFINE_COMPOUND_OPERATOR +#undef __GMPNU_DEFINE_COMPOUND_OPERATOR +#undef __GMPND_DEFINE_COMPOUND_OPERATOR +#undef __GMPNLD_DEFINE_COMPOUND_OPERATOR +#undef __GMPN_DEFINE_COMPOUND_OPERATOR +#undef __GMP_DEFINE_COMPOUND_OPERATOR + +#undef __GMPQ_DEFINE_COMPOUND_OPERATOR +#undef __GMPF_DEFINE_COMPOUND_OPERATOR + +#undef __GMP_DEFINE_COMPOUND_OPERATOR_UI +#undef __GMPZ_DEFINE_COMPOUND_OPERATOR_UI +#undef __GMPQ_DEFINE_COMPOUND_OPERATOR_UI +#undef __GMPF_DEFINE_COMPOUND_OPERATOR_UI + +#undef __GMP_DEFINE_INCREMENT_OPERATOR +#undef __GMPZ_DEFINE_INCREMENT_OPERATOR +#undef __GMPQ_DEFINE_INCREMENT_OPERATOR +#undef __GMPF_DEFINE_INCREMENT_OPERATOR + +#undef __GMPXX_CONSTANT + +#endif /* __GMP_PLUSPLUS__ */ diff --git a/armeabi-v7a-neon/libgmpxx.so b/armeabi-v7a-neon/libgmpxx.so new file mode 100755 index 0000000000000000000000000000000000000000..54f99a28737f13ab9d8d387fbf2dcf3111399664 GIT binary patch literal 694328 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®#t@8)l7MI{;I;`!ayB^vZxlkYZJ^bNN;g@ zM}YU$XJ>(1$o(tyo>Y9>?&6&B=%PDvx|vVcrgFtC%&~%XL_a!Iwg8Ls;Z=3odk~yC z=g!Da@voI>qCe-KQineI@Ut$@zPMO%^mnu7PG6>-!gu=Ltc@`WudHN#XY%`F#`j3m zNZV(eZ7=A41bCo$HFXi4T-sA@(&DyPum|*OyGLbP3bb9j#mk4gB8V6KEMC_5A-t{{ z0Iy3eUVa@Gkfx~$ubJQ_{n6m>r_)+kOz`69lJWM+Mc~oHGvyQytm2OseY=eKQ+zrP z+RDE2C-O*^HpBPQ=hP2YBAcfYA8bqduxU%1|9-x=l27R`plzlx4r$E6K2!Hmo~0L_ z3eFz|5BYs*T)LQd`OjDG`=vh2!l_iTM?H*mcX9ORo6tW&VQ=m7n`1@Tio;FmCU38^lh zuSy$)bC1Pk2ztx{#?MFxyz*g#z>3yORCx!wZ%*6wa2WW1&@d6^!b-sf~0d$P2qj zC%e+o;LaH)L(__M@K2r2&(=J37;}UpZ%0QFuMI$##hvX@WN+wuf9K5Vp5Dz^? zylh~v$5zn#Tz^}^ecX@fzKOPin~))|$5ya{^#8UM6w3dXYz42(*nL~U9rU|#{@C-c z*b3fD`v+|W_xwNXy?=aMMZN!jHoM!T=?Yt#LM*v@fS|ENT_i}wstW|HP<5e&7Oc8L zfpV?7K$WV!*KM2rf(Al=@T0VL6;M=^h`&%kmmex820mw(#| zhU`55mu&^z<bk_#eg?ulU0Mo~_`fGygeT!A|nM zueJiM3y_}-HqYY140iNx&rfEtv!;|zKVDhXwXL!^yR9<)7X$sfIG0y*1Uooyw=vEB zr<~7Qlh|nXrk8zF^8pTX*qk@ByDo$OVTO5~t|7mfIM3wkAm16S-}o74Wwe6rbslUi zJ%#^{UeSMv?C-?WdQgr1L+FZD@?oB(*A;$@j;QDTMBYzuiNhJKZ~Td+wTbm4tBfBF zb3dgO@FYrH>xcaX_9QK0Ptks?%XxPz{#2=xJ$~kDrN?O0gd_eu>PlbB?AzKe(cj$RA31wzBR_|Jn~8 zUyfa;nRz{Z`we}IUxe)2PctVJ$(&M}k)BkECh@mVBSTrr&wRGSTBbVAq|=%h;_F$x z=3cZeY9ir?`win`<-~uAe4JkV1M?A))7SObIGXeL6VGO(55?yKS;7~7DLxPm_W6l9 z{KBxSg*lu1x7*1NX+{#?VlI1CNzZ!qj5K+EnAU0iWnkd=RtGxNyYdmVx#MRtIM1MU zo-Of775QJXM?{hJ8q@7}$MaoF;!tevoGHsZgZx$_4!ncrv4-Xi-n&F@3hT1Woc(9v z4{^1&tS?M{Ldo`n$YV|9=<5%uPpms6il4^=teKAq(yezbR1d2RM*J%fJh? zD?N14be@|sTf6!PxtAUH`PyonwtD{~1N{y88}NO-qO_j2T1Q(o?UXXvc3SJV(+qOp zBw16Ep&aNmE0fy;^1(M#PUYUp_I3Mf2<79PK%@xhH%W|C6ujsmZTmeZagTXKo(O+}z=z$=CJJo~GBvf6}8fi;a9I zR@QKy{2`Ian-8gRRv+TT*W)KSSG>Kvo`3u>2Gg%@i_4*9=lmR(w&;3o@jmz(l-p&# z+$xVMljQqB)e(7TUC1;iu^HVpuXu(^m;^>kt;>0IKpxvlZ=x?vBt87J3yhM?$(N<0_W>}$;>^0zLtrQQC)PT&&0nEIy4A12 zv!4(2PvT$wd`qUYblXGTeTF`L4Pjvd?WHoa&{=Be!soF|`^|Uu>f2ZjOu=`;QRvTd zV}X14r*rJ;h#TiUYh3zgf=#r)yyks{Eh2oYv+f_o&kmb>6ki_J|E`@H$Jb6+>+jT~ z`XS*A#S@N-@{PCNd+pSlc6FNmTjgFBDEBSole#J1N?CKJ-0KYwW^{L!lH^-?e(;yj zPIzT+PIOkTq5RF{Ph}_HrP>0%qVbKDS>TXbr>l3COIh5F73R<@?eNcu0(G#JI!M9q2avlKM}ENTN|Lo0e&nL}P-a`@{qVhM>-LJyv2wENzjDRn;C*Zd zSU$;lpZLj}b?GUuZoaUM^%XzdUP+LD^A6hDJ0L+FPwZM(n#uDC`SqMpgsk&?2XXa$ zLDGxg&iffWmz<{@`4X_U6n{sJ=?&(ge_4s{&in7a!@K+KJNi@kw1rtushYZJnv37V>5>=2o9SiqF{L2z-WF5`-_V%UXB*8oSt;fj68AZiC!9B4wgZMT0A%B8C;`AD)?^Lc9uEV)L#6^_Z`e1}U z`uDzBT&HpU0s5xCbB~!ie|wR;G5Wmq4I&-HZqBF%M> zBlMd3hhQH&!+(Fj-cuKs@Lqaay2_<}Y7LNlnIEIB|KqR+E7iVp))!P*S7|6;VA^RD z`2L7r5A+M))+ckt&Qa(}E>#A_vE|q?O5FcA><3dn4(&)TSNuJ3l%K`?-{p3eb|JTF zyYKeBb~0;f+YZzFGdr@Y*Wzk>Q%@o!>5`fHuhf5-v)VZ(0Pds+J#C?5;*UZ1J_ z#mJNLr94STYwc^y+1R^{yjecJ%P+UB7o{hfF?YS;foQ7SFZatWUf8mWCn~?nZPQWN zR|V+fZ`pSjd9rox(cijT=>_XtGEiObjefneZ_QwSUkklOUDSoo8`(p)u?9tHC_i5P zY~8KCNIV;?D|jY8C?DdL>P{GgwQHuno-sBFPqsYY*y{|xMZ@xB5oye#e{L+SE2;mi zrR=l2HdYoxC&j-x$PKRloCQa`+a@G?J~CY&X#JlTBK6})`K$fKz@ z(s|gIlg}atK{*K_C-@lE=i$c;__;9NS!z3WyE#9}%k%ZU2l(}-I@3NC4-ijf2O}7M zs9lNgS|6jjyFI`MV{78Ouad6%v|YxJPW{`Q@=n6C11bCi!jjcb5RY}E8Y31xz0_H` zV#h$gOFZ-;`*){`_2@#yT|!)~Lk`BxR>fsa^EB<10&XcO--pm9C5y_t<(Ke>a8ga4 zb`ghn+&2-&@Q!k+OfJs~248L=OrGIMj5u#BwAri@U7a56pw6r>c=AJ8LMO7NV?*4#m`@LeCg!6Kzyr< ze=$mY(GSKy#HWw!4(73qJhqcZjjhBJrK$Ys+mZDDfv>C?rvD?*RQ{{=e>*&>*8dLj zjQ%$~P`mlan@{@m!oN6K5DDdM>7KYXl6hkB?J1Xo$zDgC3Gzx>J1+}eQnwT{QnqnM#3K7#rKfDzw)Y4 z-rw!NKZN(H%M;{_nPa|>f7#CDKRwbIIM13r;)jpr`)`jD2Rh*t@s1?U7e|Ss_p-ZP zPn^4m(}qTB=6VM0n|wpW*@~Z{#(AxbG0glxCRd!F^X3N@WLdM3Vtnhc?+#;_G;(q} z_F~z=rNhF`=H9v-?IG*om`QPOpBd@8y8K4k$)-UZv%{>dluqgBjS^4elXq#HJZv1g z#*BOIIJ9-w&^UCw`Fqtq=FjS)n?}grG2_hN49;z1j0HyARjEla_D0UJ;WDPtddn`> z#Q9iNb{57yk;MIG95^G(nQxpumxK3pNqEY)`LuLbNAF_RMLj@0?C5&j%nR(wJYKnv zKHteQ7Xt5|#va&|c+~VovTJIdT7D( z&gj9Jozbb8ol_6)+Bx--?M}bzaCY$)=)0;{#<=81btPJ=tM3j-S9^0V(sMc04QJM= z-5wdIZ+UQ_U;AuXd*%YlG&g%1>A{!e4UG3sLx$E;t`0EeFDnbMn`=xQOZ}4Z`lQNI z#;+0fUT%w@R*Jgtu*;K?D;MAwnAl{>H6fGxN`(IZ9dB84(905QYJ&3>$KS<13@Q5e zJl}u(hTl3FaO%f9f7_Peo^+(&o19j7n=5{RIhJ;8*y76v;c2^jXhm@jNUQ+ctt!|# zkVEpFrCaaG6&K|vRn}wws!imIH|X2+p%v}>B0fwYuM5+YDzAZei}HtRuQlqQb>Hs! z@#gq1SPQu(zJBt(hs0fP{CNQNRKwgC`MD1a`!mI5o#_-|_!f;x-G?i0AdH>*@*4JA zc>`;9LWEz-Gsaez*SVW$xn~p^n>?ocwiiw__P7Puykrkf#}BR07qY$q{=oxbt5}9S z++PH^dPBnGCnYMbl!TfeU=e6YJ*UUdSg@-Gv zp)dZo!|zu+?jgxpJs`_vW*v<>s-MHo#CQUscvxfa*zZ)eSJ)p3P zy~nPv9LYMRx;X1Z$!}D7by)AKe3NIDt35p_dL#3a;`@A8JYG>~PfV(W)4Afekhu)) z&qdzouS>HFxpE=}-r-$a@^R{0b5dJ-ofI^aos~yV+F2A&_MEV@IEQjd23%x0qqgYV z;`dc{AB3+X$?k97H9pzB;?D8Q?zd@YR(8KbKe;cm`;@+ght;zCiR=IMW%pXY{+~~F zZ!qJge=XU4hCXRLvP)Ze!LmD(b}%zd+fI3Ux6P5>UEM34n?&d8Z2NZfZ4)vZ%WdN9 z(YKf4E_1TvC zpO-#M`1&kKyO%y|mp;q*`V4)bwkzE}1^Tsl^;OsOwyM17vIM%p(`D?hfi6?q26xeK z33qrlZmY|(ysL{}SBaD7n0p=e-F*2-^{1qnfM*&nAA~-MIp__-%8!%mtjwY>_yF~p z;C@#A(2DFqHL+=B{_Eid!h>zP^@KtY^|qajw&&`GM%() z_^-*&F5L|c-G_*0--me4d~%=8gl$qCkr(N-LGNlUVZ@wW9*}}Z!(q$=pOp*zf%vAG4cWFdWW_6(nH`1?R)$RH(QeKX?E~;F>-~@pS{dl z^S8mV#QxJcseqgWb&mA4%DP{54!%*%(m6@?M?&`|eLU5kd)&-}&B`-I;Vf)ns?hES z*axAb_te6V_}|pK;^`~PksLayu*%pRFEd#3+FqS|9e1!9#CL)kbBy**VgIZIMR}uw{htP9rPtP$%-F+@JBk1o&z768GQFUCE{JlFUf6VibB!7c? z4*e#XL&x3cpufaxcpi1)=ha9?jr^hW8l3f|Wz><;Ya_@X6CI2P=a)}FuNl7+XzmZ4 zcKSGF^2||W^2N|;H#6^Ob=p1S&}mkN_oq(V7kR=DXD@l0i!8GK+US<0amnE7-o>fq zrDg8p>~n`~#viX}{MY1mvWHS0=dO0be*e&QoDO_w<`%U-Vq^ST@Yh3?u-W@) zN_josh7ujf=bU1gbT%Pl;mkt$+>}@G?v`V=S5i6r49HJ7aea@m`!i;XC#D;_=8X5^ zZ^;}?ZP$5xb9Na4eay(WyV<<2?aF;w<5KM(vJM*Hyz)oi?fGObdXLjTG2c-*h%ss% z@ng`@dNc4s?@yQuak{by~SMt%B6n|ggv(QkwN~?}E^=>kBjwL_J$F21B z6XP8PJ#U3}7td7(va80}nCAe^U3#LJFPLNZc#P zv-Y%#C0=Rt)^p@#DRmc0YX2$C#cZrhblz2**!_O?#$*mTo;xNkyg^^nDE`NVJC_$i zi8&R!*OcZ$X~TW*;nEzc=1OOAdHckiQI6tsDBFK6c@M=`mKv0vds6AWl%YLO{@o_< z?%DFm*&=(giymMuw|=5~ZlTHlj`Yh1!Xw3>=wegjd5pL^Uu9MT`=`;N!n7;7C?n;3 zH**-XD3j8iop{{LcgPlgFJn;E3+oHOvdPjN+-naW;brX|gYRsm)!kWHN?16#j=j~x z*lA?fnY#U>8zYa(V`4t%AmAm1JvGNzlPTld~5Ci zr)ch1I79E{Pw^Fa@fYsJ8_9q$pW;3PU3{ealoz`X4?c{BZbN)C^EI0*FX7u>rOUUX zr|6N0>y}5ER|Jp}Qy#6cvk!;T6 z*~Iv{oOR`u=kw6kd)3Jn-f6EAlRo~aYj`K0Gber#eowjL8?fPgl4lBwZY|&ahI{!L z>e;(VW9@dZ1mSZC|CQ&BO+&uBvje&(L%FQ(Su%?5(V1q_J$LT(bdMX*Jvy`DMD+1U zy5}d<*=V|_4SreO!#>J;>7L8^HmG|zhhb3ntmIt|-J>~$(R9yC;m3G%&)1-3b!_#(Kf1e&kV=YJ-0IlVRg@2h&KcN=^Lwi)-E%Pck?#3?mF~Hi=c-ls~k}}N9lm8KP&$;lo zTKDWhCKbP0_aqY|>z+6NZJ=MeS@PT-&^<#GqY3wm;aFc8e32Y5N z#@6yT=vq6f)||{t;**`zd=TT56nzzA1=&}0o=gN>9?LT}WK7u3*l*(3gd6dhX1+K2 z_}fcP7kyv4vvkteX2%Idk= zKIeT9S91ZCvpM58ft@J3x)5RiD&ZRjmEY3)m!li>ZX#jPs&jM2?a)f{OfsZ02=l4W zX%~%5XGM1P2=%P74}H4!3h8gbHl%qB^|!wwJ(cMu%Ajwp{poyoM}Nn8YNwU9@h;-m z&CiLix|#Kzuw(fsEV>{`c~aDE8v9%hzQM;>hO;cPzr-eSh|V{drZJN7)y-ii%X)eG z2Drb~JrwNlE_?_ku}9l!@NH-w$L1$RJ{HGUmkt(oW1LdwUQ=nzc1?A&UD1ZFuBlC3 zUC|nR+nce|)g%@b#E%17$&L6yfJMdswD{$&Hfdx3 ztDl)at)y?PKcDEe{&k>#hVw3P7yP5H#Q*uuX=bj-%d>}f^S6)I-SA1;GBk@o;fW&J(uR6e)5Q!n#cQo&*aFDdk(65 zq-RR(H$8QaVP~{>n*;G4`s?WNt_Z~Y)!#;s zw>%K9V~lv01>)UG{!|9#AK!eF@6A`KKlAcGTHY@R(3mks85acN?fT2;c|Ri%uX_w$ z%nHQI5HB%89k7qy6W8ADm1SlizREO%`|ocZ=wJKip>l)uO?l^yqueDwuIe@gjnUG- z%um0mD*Z<8KTGkK+RY5fCSSzUdbU5o^5<0I= z{s5XACcJ5b&W+K$ws+sfeN*6mJ@?|%?`|KG;WpB-d9~$_1@gKWyTYO|@^D~P9xkm) z^F!P>2lDWK?pp)*7y5a6Fp#HQKyH~EHhJ#3a!79XHBaxT%G0S;c{-&kPbd0$x+##S z=K^(V^K@?@PouS^1HL`P>*xLycC25=LdkZDvm4MaR<}(5s`|+@=|8jv>P*ei*QEzweDB zp3=Q*9PyOy?c<22bZ;3)Jgr-q$vEQq_@{WU8)v+hs(7Qx<}0rmYE!D;(c--^5N{Fj znn%#f>Kh;ZvL}bnbq>)j{9*L?JN)>20`Z;Sj~@S}emb0A0l!O62`q;@zv5I^<1(c?Gy`A-Jo?-_%B+>hT@75}Dtyz@u2W@>A3d!<48HN)Du z6k~}rHs2iMqQcgm8jU9$eCS-^QEWK{#$$ym@rPPdS;F3Qu_Sv{rq3^Yk8fgK4V4KY z?2lJ>6eg3N#(CJV$~cAfaefGXOY%|h&u7bOkLLNq_GkthKc?}k&K+5M9^dng;_Hl& znlG>Hi7MlO-SU5=h5!ii$VSunDpq!()e)recAiFIG=)iJ+)W~dmS>`;^jR=u>Lk@g-x%sBOe9VAsbE@RsDC^QnlT64d)%`}zccL^J7@#_ zkvTsPT1Q<}{} zNXS3%Z)HAH^%PFQ*EBv9@SZU{KF6J<$<&4Ahn|UEjAwNz>_NnfWvAjl*HEcjj$h!# z9R<}%l(HV8GM>JwAQ@~RT<4yNUmIu4at^x6UK>vp9G7!&-P;Rc&YK1Q!3XA~&HowZ zKf?Y4s$2P~*gX7s6FkkOO03PV7oQ?NpQ4nlE^r^>UUgyk#{8+1E0h^G^dW!cJ^ZU| z|G-xMJ9so(m=Jq^m~-30@HdE0wbykhkN*xBRkEt~X7ECud+^Q-@}n|J@96*3Zq`jf zbJyT&ozHC4T{d9Z8RlrMuD3$Hf%#jcN59Xj~+ zrmz{Luo;Ay2dZK2CKc=H3G>`>w^h!F^z@w3*wb?f_JqS*u_q+H-xF{9anIx#kMtZg z^EbrvWX7pV!>*m)-)X!M*_*X-xa@s_eSMEteeMoBzxqe`pO(GXRngrH-Dc=6fo=zM z{~6i)k1Cp3XdVd7252UrY3umkvZp!q;qv`r$=*`*2WOU)mPlu~%y*(gLd@+-cSO)t zb?75wGeU>N2*)`ux`F>jt|l&*tC_2XtCcIk)y6f0cyHi3p6iWVGr8Wx^=7WOa4qJN zU1}M1zvQ{F^S_;s2>E#Ge~?3TU5Gv~Mqem=BE5MTIBgmHQJ=OnzI||v8;WB~!!P`t zE7b?5%26=E0^Td0-p%!&Gsb1^Ry4gi0QF?$H@O;KZPd;3RUJ`tlWxfg?&VYyV*)r=O#53rNUM%I&vwV{u z*`DRnNx5=6bsCPJZtQnPSAaQGx2jKJCt(?5*Q0JN?)a%MKNcf}zBJI^buIG~)My*_ zv39<3+zt5Cc{XZmLlTw|F0!~u_{h?{yNc#hUmWQFI5c~)I2EvOJs(XcuXTp#xcm^! zTdHV20?iAcxe1!66n8&pS&G^Gx_$?Q{dr>frlQMh2U13_HuX#@m(} z_~ub;lN!^gEzQhT=@RsZr%Sf%o=qD_1@#DR!RQg%7W1kj>JaOXxxeUF>yG_RKVGGq z_BZ{87ny$Ji%h@iMW*k*$n=|EWcn>HGX2&UnSNpv`s39nkze8MhaFFSv(}l|zH|mY zAnJ?EdJ}X=9et4t?+#bgKK}f0jbTVL{ zeWl}$LTB%KAG^MqN8z)XD+3G9R{x#C2BdLT${Syqv6eq4Z|pb7gT`HFgFiH0h&vq> z^^0G++8giNIkDT=oA=F|8Snoh>^z5UHznF5;Ha5AAH-467VZ)K6QD19l%;=-Pv7FS zYoY%N=x3n675Wy7Pmn)OeT4X_^?@mxnm`*|vj_ff7rn>d+%BhSrTq&d@%c}j1t`A?TS z{jXuq*w+$Am?TE|XHb6mtjIp0{SM7OOoZ`49Q0?AEzG`??JM|B_AdKQ_AUEP;~&wI zZOguwJ?;kAUD{qTCiEq=I*a4TV3)=k{oJY7fF=4mToo2MLMo2Q!y+dSPu*yib0 z!ZuIcgl(R_O4#P<4#GB1cM-OE$`iJE(zv)FOwYJqb{6Ra>49BwZ@*==BiUTkmSj(e z6CR)KC5yc!TS;=YbIszK&6VPs%Qc^C0au!9A=e_V#atP#C0t9nmT_gdI=I$yt>^0E z+QfAo*H*3^*G*ivaNWw)&Gl8TJGk!R%5&ZC+j(w!nEn$FwDI=2nV*N92I5|X%_v{>@@vwj(#D_*qHt|M*qvYdLO$F?}IJ&b>Xq}r0f#nt#qTYOT?F# zBIMhl9wavo`B;x_XuSFErJM_hKhikSmgR+xNB%ut2-tn7^Xl>1|JHb6yfXFF&*)2f z!cLODQaT_G-cdhkZ62*Wx4OXEI!>d%s`D{`?VGzlH_-nU`mgq%vR4iEGl#x;raLqr zWNb3@$)Z8jWTUnA*;}zwWcV%< z_iPZBm)1V}hqXg?ij*Hm@1F9XGnZ@Zv%-vZ?7bq)aXY?m`WH@-ezty+iX;4R)Sn0X z3mXRduY>nbZ3sILaaHH*4ftx0m9HJ6^W6>z} zaqbxP(Na|(Q>*G@`JV>*&w_U@<-EU(IaV$+4nThACbx4=1UyP!B`a6Y*J+d5KTEz* z5!yxw-vH*sr#qpIJ;J4|1FUaBe!;utX4*(7zNx3i-PH3A@UY%9CTN_s*6IIm=Cm8I z>#?uc0O!FD+@$$^_HEHx0~cFZs2iX0JZGY3XKwIkCa`3`&w&MF@5$5osNaihq$;%cus>5E44 z{!YF**-2^tS+&ow`tPI2Q=L!46^(+o4{9AWV#rJ)|4DEgYZgT#fsDC)%X)>0(4Sw} zR?)gV7yO_+OZFs#3wYj~-O1b+&$&-?ueGdZ&mi{j6fNxys4}*IMOxt*-YM%u8rPPw2HlH_)&5G>dZ`O;*_Ao!LI#Qi2 zFR}izBpeiTLc80$$X9Y(rGY%K{-=Mgt26JCAov(I<0$8{GW?mMbqJ1gj>f9~bH-iZ)FXH zYzV?;Z)4U#Ft;@)ypTPP7R0wro#kwc;uA2{NoS+%5lfvdpQ?40UCxT$8p>+y5b$Cy zWs~2|!O+w?O((sgqV*rz%OXY{%CG$$Y7dzWgvno$a*#*mS$kpD#katVE#&2N$=h_N zi}@pOoQT7y_D0Bse5aj$eX9(!-$yYI~vPdxqn z0{flS2g^cxnjT>utPUONWD4a_c5P`}Re2j#j=0K8o1(moqbCzL{4N%F#TJh?iZt;+=tSn*DE_Os=SPr^LS3@G4ze5tFEA* z_-Az05vzxE)qkM3=HT18=-23fUsv72zt!>c9dw;@RUu>2+Qga@535t>*a18p$=W2N zBWr>>GC!mvWAUrekyjO>e!BD(jRS;_CEYyZ`QFFr(@3*@2O{G4EjHaV_CvZotGx0m z-6H88Lb?k{H{++f?1zkTu%%G9#Sl6`bDtsVwE5`!E1_&odolMHF4nkTdD0iKlvgX(lb&#Rrv6g1#V){NlGI`F0XNuUzWh_N3N~@eNya zJC6+{=4j7g{HHc+e+%+`e?_>efirTX&*S9Z_;8W`M)JS$ET_NGAx-@14p#o@6P=ug z#Txj&!PkunYmHH(pTED%(RzU)f3W4y(YKBICf8xoZ1lfvwDH^oJ`5d|j}X`O)BNiS zKg}*LP5Q`^{Z3)6gL3^eA0thjO>KS97W!#Msl%qO4(tjZ##KI=9rD2QnE$MWd)c%8 zhM%T$*miJwN6CqMbzI|K+tVsMP1|pFmzUJf6zKEsGI6|qEf{B-AIHvbOP*-+>^DMw zbNEeCSJD+HT_r4hR+)M+`|ZBbv_C4Pxm}` z>2Tc>lxN9tgD=x+$C7cEXN^_Q)Yhe|+IX(^Z`-`_Z}oN7yG|R@Sua)l+XtN`xw5)Y z;h@g?)htgZSYO%`l+HftEa{JGohALjegf>9f&M^eU2x`*{@A^o{7Ywb59tr9v(!!u z&h+)i56e6Fe4Vw!rs?afX1=#NOJV7(7C+4| zl4i4|MViO?X|@or8J(s2Y8up0L*-16W-D}#Ta{=3JB6j26MmXqq}dus zbDE!~^kHkRWAJ<%rnn6C)muT&Hf~&>vN6fc;m*RVU zr|+%br}V78oyoV_=Yn(PDqEi$=y%b(Nnh^<_30#EpSD|^p5*&n4xePo1&_Z*Us&Jm z%~$-+_&W^gRIk0i%ji&H$&zV@Lpt@>=6*=$KF0kNe3eCCv_*F}`tVWcaz0Ss0r+Qq zS3X+gL45tmTu;vyc&Ghj_1)wATRp4#etephNyz)Oz9rdZxhwG@LBwNz;$j$TVD3`ca zN8M=CMAoEZ#?nz8q#4vv2l#1@M@NN;YjxCWn`Z9$b<~BV8Prj~2ivKfQQFY|mX5lV zJ&XQX9ku>#Lptia>uIY2+;_KWcSAbro92E1IfGB-_sd$Fu$X{${WJYTm}o z=eVQWei&cXwdOtBkIHOqKdS?26UUTU|MxTAdUdV5j&0gM-4AJBI7-?JNju}G zz3iJq@@3Qh%6>?D)+lKge#sc{2VS`s-m!PuoAyK6uNo!oMWnsdPka6dX@7V>q+LHs z+74+y_n=qqj&JN;?z8qo+WiI>dhIJHYfB#sJ6S*N{MYwR`?&p(_Ks1~c1Szor@do@ zv>W$B+Fu+cZTXF@eZb>+d<35V^`;lzzONi5?LCZJVt(2SzqU8eAKMRUe`u7nGo;;x zeMPz@`_;YEzH>jMof;+WJ&)i!YY?_(m&Pwe7P}$y)w@jKgFCy_QJwP za<@G>D`eI;e_msndf9Bjignlob-wR}(@!p(z&u0oX$;V&Z0h&-N>x&nZ-zU^%IOWr$smuH<~)H5Keu!tTnw+CtHYS))Y9Sqc4(u zYblz>{+&Lh6v^FD8Au<@f3Cv%ih@%eW?qe+uIp@mF~>XNwiQc}(qvcECOB3laXW!?y1@ z=NFQvQ?678^WWb3usuG#P(kx{d=H&w>P%&8$uq|Y{i*OcnqF+yDsz?_e90A0c_07K z)%@WEKaEc)4QwzPZ`HULz`F|z4`;nL_g2np38yb8)TUP#oV1tz9`%nY&QBq}Xo;@q zi)PfP`JX1=7Z#GFr*+h^e3$VD?as$aZkqW{XF<7{Jcn|mnIw%Y`AMH&XeZBc-XUN0 z%sZ89yS#k|C%B#+<#zHlA*6NTYYS2LqQaiH-rf88>_FdQ>i+0w?HO{|$1_@EWbNwL z!IwG3SBa)ScY0JjSFV14Sm1qPg!kAwkhL?*j}8nxX6Y;q#EWpwmeN5k2Gf~8!h7~v zV=m=7{Lnait}DkJ2>uV;NBFNzb`+Qs?j!s}g!dudf17*pTJ;=-47;)NDrtHa5Z9Y`` z)a34B1bw17v3rP<_u`a^^DOIjoGf)5f4pMkhcdfH{!cGU?jt$UbG-3(?R^Qxo zg7TLwt>T-TY4am}Bb(cLu8mZ&u_t$oIV;W0M+fJ#v*?Wia)InS*#4zc zh-dAz+GDi3jDI0-W0f%(DC1A|43+UORb{+7P{y_7{cg&*`gzLub>4q~GR7!lKEV4s z7;lOH@+bT882LN(K>Aejx1KSF)!Q7-Gpn@ zj<7N69O@8Z=@iwI{H$ZtmHZf(&z+7>p^2mS)aO*k&4nGeBWmiDxXpulI9HUfhQ^KJ z8NLIit;u%wYr-LCiP|aW;^4#JWXcZX&ybS~L#&|jr`^X>J}#~7D>;KRU>Z4hKylva(|GQN%5C`FHQ=YQ9-Sp$Go63)k~FfPm2LdA68pWHbR*6cCC&mFHC^fQEPf`m zr*edEg%euYleF$0Xd&D9S&%pUp4i{goYkGlO?iWO=IAU5-ct^}uj6b9^PaN3$?$Pr zaTford`B9T)8n=FJ5{;mOC>D98Pl}4T)B;MhP#ll(B_`-Ve|u;RR#IdglVUtu62jA zr}*K{rB^pwhcP+ZwV#a58_=7?fH<%O=(R`ii%I) ztcrhOAby>51uC2P@P|5ydVHH#{5rZf1Rp-6IzYFvQ;P8=auU~6RKGF!EbJLhEbem1 zqkPZmTzvE6%EuYSx0*EM7vtwCo(s3eCq>2ETcF+KQcuhaQAXr$1!uN%Rub#LXPAG_ z2g~m3D!DlpSut{z=+?Y>ajEoS3fah{Bm27y{GQ zgLfwqj=0}2^ZJ^*pGaMSk*7sYU)^Kl2tRuL>fCZ$?$8SI7ef9*?;%a)1>Tl#)ZS3Y zxH-QM`LyT8y#zU}O&}Z8RXDVz=gt2u|Ihj4VO38gv!;Y@ofgXG%BN8$4*XKPZH5ms zX+P5GGb#U<_0Dg*!RH%Bd7ky33sc$nk}J{r5btW>`KL+O)?+8-i1>B7mFMe-qxP+{ zM_Q7drF6Qpv?vE|p)6n^d`>vak@GVbXSY?pfxo2oyT)g(TS?C3vR& z%JppcS*y!Ue|0;&m!6&g{o4r3*GzJ2^jAQ4Nrz}pUGQGio}IJ;l(ygnyP~&&oX*Od%MMDoeTe} z2i02x&sDZ1lt*~L};!BgPd(DD#s1N4m%-MM}9m(VR-Y?+S6k{xTYAOn*K9e(~X+vp^ zb?7&_XU=&_oM$?JK{9xppAUSNgmb5~COfCTm-Fu9?$0X@veulVtU7;yXKLf=H^@eO zMme0gt|vxc)(%fT6LO|K_}U!)S)G*~iPa_g-?Dsu@%JoGba_twU;H)Z7BBvJWn#Db z`gve|?<|>f$ybbWXsq;G=zuB8@>SB=pmF@#q%V~B7WydsTZ=8^quCE{lir7~@(a<~ z9yR~v$@R57*VxQSo?F-z+F5L83~(U&aze8GUiA%iPAWtndJOx{9`D8(Z;;3P-y$9r zir1aCsu0RuUb-$6W1L?o-tb^+A(~oWi1J;;e7EM9NOnUZ+I3^$vdq&@CP-UtDMr46 z{r3+;USIFf&#S+0gEztV1>W2Kz0K*ID&B{Z)K#9k$#+IGKHc9?mL>4d;+-F>%<$oE zbgIt$Ku2=!lc_uYn+(4=hoQbb)mi#j{OKp7$lI!uwMW}El_=$m#jmNm^8Mv6i*lXeI8#yyZzTLt>oED@fUS3CA6@ReGW@{ryD$a6 zz-g^~uePLdhm&2(y58L-rN1YeH$KOSM0;tX`s-xw>Z>?Q_kG+)xu2J8-*5%@C;0c^ z`^%4`epl14TG@XmG~1Gr(Iw@}NGn)3$BOq!;m0NAHgpU6J&Z1ket_?T@eT>p(Gs-> zAHQZC@4Rs^O`l|aOCa520_pyd^W1~)1Z)#W8&SlEa zm|H$kYAf%f?6l!Bwz@vaz_-a?J9<{_P`Kg7cKJw94>{_e_tFXV<+4Fcxy4}0xrxro*^g zU=3IE6P=YuZU<*B7jB$Ch%wKjjcEOvFy(L+|IYcn5s8n%!@we z>4EFj{*veKg)b+eUom2YLRp>J=N#XHOh)*2%d1uvLf8tnfGh8Rd9HZ<4_gbnKE1Q( zB4vw#{3a|R}lBKyTdW& zZvuTA{m>A`M2B%^R#g4J+8_+B?||19WBycSrce0+`gJaRQ@?BQJnh-y7|t22pNkA$ zM&G7!e~dErpXlLCVazso^}(6=mGZsPSRcTd;DtV6c3Tg6e==$5tUPpx!I@x$L7Yjy zV{j(x%eKglAWVi`aJn#yaOOxn4<~cQ`&a{Jcn(*}QqCY=px(#i`Py;v9PB)d=kMcQ<$^bZShJD(v{+Mow7ky=&%rAXYl8Ez3x+c4 z9_H#{GFsvDa$2wOoh&5BR>vuA4m;t>7yE?0|=KL~q z%Jnlvmp+v=WwV~rh5e!C=s=rw^ON_u_kJ?R*fM<~~+(y8BDY_nut7 z_%QD+HeDISrHS?p%(D*S(ys}ZA`c%UzHKk3kf-*fD*yN^dIA}I5`7+&p9#-H z&-LlOjDPhHYGZ0&7IT`iF|IbY657pseayK?@u`2th4pjEhiR7%XOGb)%{Lhji~P>V zoCE5oz??_&9X1t%k2FTDp&dWUm|{EcRh}J`!(h;i#h{m!YQdo18L)H8vyj&y1{F3l zSO5%Ko4^i4dzQYh#-MA6XEA68VT(b*BK6YU;KmU#=toIUcqz$y^&yw(p0X(&Tkmh- zT@Yt}Ol=kn+TOi423;%c<9If0=}75C$H$;qWKgWnP^BRZ`a06L7_>D@ zzXl#szc(v@K~I5~BjL@jf@dt=#6Dave%HWn^`Yw|KS~>2jqZ)U7QCtVi+FDFCfKo0 zWfs=IP>j(!-l-d*Zplo0Nlo)8I|UoPFZwGhoZ$zsml! z@FwwW|52CB6~7LTg*U${xdwk}eJ=av8@wqVsqR%SojD-9`CrfGoIL~5CwY%W+i}|U%5Z=<^?0*O>4tkdOdrkz$@7>Cw8&FQhsk6rsiT} zX>6G33D_{tDmy9glduordT?MI9o#@0)A&qdvkAuDo)Shj_RF^rH=cM{^S~d&?%I4elv!Q{^s{RT-njJ3V3u@S#4T& zHOF~Zc^C0Se^Q!rg|o6}S{vnNu-=^FiNtGWE=J+s6Bd5dx=#EeiobxalwZ}|IcNmPKag=B!pcU+6?xv41xR8Fr z*dF0`@ck2kK1kzk^=a_ZvpK>;+7Wz8m0t$kpzZNym4!Ua;a|MR_FIyT|0L?m@H^@8 z0{w%%)+_&A=pyw?ms2O`SJN*w!^<>dAd`Q;U($IT8OozJth5W#VF_<7t9X7HJRjtD zSD~E9UtV(aovgP$r##okhu7$gYr~Vd#f|6~*&&5-CV}K!T4$Y z)HpnlPg~g8fGtt;vL~6b;3MGmpe@njt}r%1>>*W+Wg4_q zY^E-Q{5n=nJzkzY|q|`gY<= z&$j20Uu4K)E9G7FtGdG8VQh24b;3yt`B&Yjo-E(5Mb1S-SW9#?2Kqc0Sw2j4_yEP? zn=7w=1GaX32TfyZS6?U0)z3Jq@Z|JSsEaTpcc;f3g%EkDpxQe*Ves~4p9ey}PSmpUI{_ppnA+Yri_+f+B z(5G+anRN0;B>SYNbgb;WiFZa0^0H;kDMHI@d$~Z{^WS|=Si9bXLwMY;>C~zpL_}Q8d`i z4-31A-y50xR(~`NzN@~W8D8Mq3IE1Bt0Qlw-c;5J;GGGSJFYfM{Cj+zw~O~7N4Sl> zW1MVQ@4i49>W7XHZ}dDngxlm7Yk6mJ+i*MK{PN4iZ_2iwxOL)Pp$q?x1;vvL|F*)H zOj&J={71zf@eF?vuRZ#_K2LE2?N+=NZc{mwpE}ARSrtFUOBdeR@L_?l^6^scopi3O z@=r+Sin4jz@ZE$%$z1tP#i5<5eHwfPUHMa}tZg~3oeF0~kXd*zWJ7dm*TfCBYx%}m zJN-iHA)NEvwaT17 zZG069(tn$JIq#s7&TXqK2Ls9nMDtFu>?(9q2Yt=z-U*K8F)ptpc6EAZLhL6Sr_Qa8 zKs#vTw3zdj5iqAPh-{p8-u!X=6sj@j_AxN$MQY>SLzuID9GJ8DReNL3L;!Q1^5MNP zCu1er{kzH!2k_4@edOb;-Ndt)^BKZH%sCUf(jmVSt^I^KAAwe|ufCT)cPz~Lc%V-< znA2h;^bERl5F>pax>s>YE9Z~7QvUvT8>1NC9P zgMJW4&PS$%KhFy2?iTc4u-|Fx^7^R`A5W@(6n^ieTy{JpAD$-0;zqu~LTan8^yAM^ zeDJ5zsK%f8_|;8m`QUmVf66#8B09CbK#;ppYd^M&f?IImFoYG;m~Uhj@rLC^aJqE z;?OkVVS0ZI9Qu3w3WYf;e;n?e|#G9tYmMLv4*b zjD{c6{(GwrEPfoErv}4GH`(XngT=4XANKiu_IXu&d~(N3UszMVIU~{3yUnA})w?OY zlm5DUhST4>Y@omC+Wl*f{P-By@PTn)!?S2l)!6W}V_?IQ+Fbw}&K?IgY##v|&H$?n z9C)CyN8WqMaBP@y2A-5naxVRdaLum*xMrB1@bTf(#IyMDZ-j&R@T<_4o)B&v3m=k@ zu}KchTv!^w7N)sX*(E=c9$=T~vls)ey)VMLM$K94nZ;|5K{tqjzDK`07FH|<`rWax z;uoPC#ERQgF0kTh{M)oKTnyp|+R!kpxVsuZIN&U>sOCY$(<=fzt;UM;e48Wl!-F6g?P=>ap`rTLi<3EcVyW{vXGDaTD{x}kD{Kj#k z<3{GKhS?wKy9Vu#7B@04K4=FC;zrh346FBr)%EW4NjABloSqht!+pVxW^Or%H-)(Z z_Qx|xN4Rm0mPjV=vwUPon>u(ApbAeFkcMpD7&S_ zj`Il*>l4Pnj_0zLRoHPi{}wyG)5nev^6dX_*iqQTVn<;`8x|j8+y}9vFp|ZNw-Oe1 z{Ji442-qe>`@|v9RN&QRoUg9>_ak z$Ja2L6mvudJI))N z%Z`KNG)`8#n}fcy*pYR6Q{QQ^BV&}NbSM5L!{@T&InL4?0Xx1C?4mh7&0ojW7vuX_ z6T){gl$#>lcvJ>Fc`^k=XM!uRTm>_&5@!Fo+}nOgM-m4~M37#vYyv zM>ddtaBjQSpWChjN5&oOQR&rYezvQ&wh&4zEYyPCG{0S&89u-LDD;B;@&okC20yy~ z{I)xMew#^?>A^W6Ep+ng&$p=8!)%{X&*l}U^Dl4kvqol3O*WM!LzOK z${B-K`+^%cj+0L>3^(Gxk%s?i&0C*k<^{)XZ!~^{UH-gv)|_835^j9ev7_Tg=FNuT zM*L#-!i}um84)*bs;cirqtv(Yg+j+$e*oI-p#1F%ZlukQ`Q1G7DcmUhXvf*D$kX%N z8_z2L7C9Df{0KHe_Oq=xjJ1u7qgT{sU*Y4%<3tM6GH!9?#q5v&m4fV*n%f=;M@rYKf7e{N)^DnB zmk!>)bK&!b&xMno(y{snyO^i@{5e?c_1^qJZtuD9{edIn=u+&3gLC2M!aw22IC6F- z;bDEk7&vm*?>rni558L*IorpP$MLKhN7kl2UxV?_h0hy47oJ{?Ped;KLgvEvhYeEY z2xW)n!o^SHS0LW`;mLup_%M-s>jP1nN_k0T@0g#)eXxp1w2 zagfF=EN7>X1IP$fk?c+#GTW8Z~&fA=+0!`5l+8}K_#}sgS=H}e!aMCl zyp?h9_wmuYf5raAk(m*2r1t-Jx@qfOV81+ld_ik>*5QvOJ9xZ&IP-CfQp~+me@oyo zc#wJd&As?uvrj{z9H)-79#wPl2cVxc{~hC8B<&9{m-M`S0XFr9&~IVr-U8NGN*P1w z)Cm1Zly4l)ij;4n=xfi8ulVhCiTd6IeXlt?C_8m4Yc>|g*Rw}VXXzl?HaOO-Rg31m zb}N}`?(W2QfW5+UtjSJyRicTxtXsUa6i$AXy~WNdIBCZ2>8}?;?kmu}&82W+!!TQ& z<|)F$TM6>$Tv~=VQ|5EOh&&rv1;6S2V*4JO%DcFq1ZF#*f2%X?UOSe~`*^3hu88JA z-7S^q@(n%V?)e2L`|;AG>>cE%r8L1gsJMvt!YGQ@;1KWPuAZ<{t{FzPEy zk>r#D^rqD~Q;O&DuQavCi1H^Nt{_gey4w0+YMw2W^vd8Sx8O%~W)ZnOhG$0zhlkK# z@=b0`Z>fks6ZAgK`*iLI@l5>s3jK6*xA-x?44|raDNhaYPBLYjXP!0kEQ*g3>$&Tf z&@R71{yb49QA(6HwMnDRr< zto6&V_7i?+t%3H$Q8<#xnSHe6=gzbGrG^Ju53RD_1HZICfXAb_cx2=Y|2D%9+3K+NRBpM|{-C|5YKwa4fq<^_bm{=wL% z`Dl$V+3&^3<~il_YCON`9o?%+v0MO0`D07XW!O22dudyu8*-}c@l?hF+RsR1jJo)gN+`La#GXg2@p3MYa4)_Z`v)2Fm^Rz$hDd6$(ut7eucD!CX=YRMv$iKg}=^QBXl=Iegd-aqm ze-}E+EBT`xq{@$QuQvS)$syy}r>Jkm)qW74pr3gI|LDKVht);5>OyNA_pXaceqDT% z^zAn_NxvS*zv@BjZ9-kS@Sy?ze}{4e`THzmC}SI-e^ebbA>+aK%_H&O_4)4(@n3UG zLH^5DApYa)JgpU;#}W-j{QHCK>?M-M&leh*V`AZ;i9e%1we za(u#MZ|&s8jPcgON6pW{FEa-a>(FfvHh&DK#x;TpR**ZSR zZ=ZUnG~WUrmA-A4ryIWRUFRPTl)==wkw5Si_AuIU_^qTfQazm%sHY_L6x6-KJ27O} z*Td6-dZZT|tvsu4)GnUjUj2!}Z|fiE*ZLt&Gy2iKr*uBTzw9l`_#bI(eFSA_ z_Q%;SVU^L!g5(6*n9`{{li#ze^4eIPHubEvgiDC0H09^6|0&7?SVQHvwj?93e*Yyo zJ6>{-%$1RcKBZ;s?#-MTO&y4@HSSi{QLQk2zs9+u<-*fCc-v0?v~Ps!e}=8QJoT2K z{^IPj=GWaDRdPh^KQvSwC#}qcHQ;^*fS! zKDWqv9kBe_W!Z977U@EjL;YTGZD>|)pS7V)-L(0t{Yf_S&aMqryKl^bZQ*wazN^iN z9(8EOBnw=%Y4#^U7T!V{Vb&bAkq6-=@#`y;U;cUG$6@e8eaL0--{7gLGO-R|uuSX= zIaucrf zh`g!aej9nwbM4doSDqW5b(u8=hHv=KnmtVNd~alfJlk90PJLVzMD9bvvc90c=A9X=pnJbO)?V>*eOvYH;t`(7Zc!a? zmH*7rQr)ZGtK&(3svTE9Zy({Ao!e8p9;D0n^6{+xUUZ8*m#oivtRhH`DH761E#xk9ic*?Vf2v61%UuzQXVm}g{1D(hTXLav_|Lp?dy{bmKVcxodk;4Nh3xsm-n7sARow@lgkxnJDsJ+dk6YkX!A)o%l>SPzmaQUD{Ldt zFuFCtJ9HysjNBBhWt#t5)>0>aQK@lnV489ccx6RtF3;8fD*oJz*9U8T&Ux@Mjm&F2 zs(ozqPV>UC#B#5nP8^P1M0?yom$=ev?e4mg*1)BabG0$)z-I1i(#U(_dhl1FtUVt? z#7*!oo9|4nX6VbOGy+Yn!_vLhREH8j?E&AG!@s|(>mY1SjGg=XxZWIMKRy00;%X6H z;vC5sFX4w561LA7`@shd1_OAQI_D@pp?(+8_RzAuyr|5P-8MIY9Z zAs}n_2(afe!F>pN%K5Q>}Y%QFJ9!jwfJNC)s@}Km8+lJX-v?e8r{EM%5CY*kK zuWxIz_w{JLTlYpr{jq;671mgF3Vra@sC(ZbmJbHg(KhV->y3f3s2nP9dlj#n1H3+= zir15UUTcl2P2)A-@ae($_iJFzQ+52Z=kEvVJ7}^pk^jEBMCQ7<<`D#4GVkZTf@oOy3!vrSI!ecr1R= zZYP`aq#3io6Jfew{od`@uksJhn`Y|6x3htT>yPy7UEltf_(6JBb}!=I%I*@vLD@Zv zd(q^3*4k2b+LH8x+QS=pX4<5og?-g;ld^B$iTy-#zT%azz0Hs2GqAgCk^Bg+N-v2o zy+@(9+*GNSxWeLkue9`zZ=>)j8gfsp`67CICh4heBIppqL%*D|2WwAQeWS6K_{^O7 zgoL|o>Lu}~4}KjykHxRA2shL@*H^ywD$k~~37d|SxEj08%CPJ@wvLf`<}sado98Hl;k3IMPo>Us7)L*GAghO63LpM!liui4)>p zJa3>JoEuPP&TQIy6OYS&P-gz3z73lC<_>Uhm}l&dGR-9)nzxY*Xl$!`yoR`g^_a~~ zS;4)n$4ISz0#}ZgOc0hi&N57(ntPdpZS}7A!Aw za`o_ze(h@d3+>sxyrO+>*2dXO2|gXT+iP3IVLs|=AB!!Y8i7ZW2ieWMy{fb)>Pe*( z-`(6wyP%8;$DCy8Q{2zse&Mc8vu{;U@7)v_&##wl$MweZYZ;@%_wc8LV*|QnTOdCE z6lOnDcseDi@qa28zLNOj%YDdo^?3ZTz_%u?xSy79J203zkk-!v@l9If$D{=wP+C8# z%G<4qpVEBFhs*4FY09EKt>hcQmS^RkRK=&ym~L&+CO@K2U$a*939qER2g}ZS*unV9 zkC7Ac3%OA`p)6r!>SD^y_vK6Zo@Zu1)F7P=qT?!`mz0?kre1SqKe~4)pKhUypFp2W z-AdM3gELL-M`6~PJ(fs&ctc|a`BG`UwUxiU`e4$LEm(G7^#huxJE5vfCn_)gcoRS5 zL7u&nc(UKWoqyYw=2EUF7=zjL)&%5T^>P{aw(Vel7}j>q3Y8BS$U=5yH}3;D2MELYyEPG7y9mQ|GBl}MX}?p50w9Fyl)MZe--5y zwzK@vJkpy*1N|;s$@@OF`4(g#=IiUH(I20v;=v&*Q&7I*$QNzw3gSt=)>Xx)zaQkm zNIdJ398>lyt7PX{V;_VI+ z-a*-~fv4)1WM?xnmMfGc_pRO6Pi^kLKB{_nZI#R&8jv~g#4wqw^JPwbP^;0EbBl-J zd#V0K{)Xu8Y1-Q=C_m`<;k*dw!@5K+)K|rWMS=K(@&msOAK-Z%XKX0nkJ5Jdz6gfw z<5}@1{M&YVIQ2d7 z+REp1#P5^bjgZc~QJx!p?Z>yamb0iQOT#{Uci@@L|6c>oY&@-puKw1ZI}$AWL(lCU z58Z6`^0nXFbi}9J2y_)+bJN024}x!=`5^20i2FUlfBpa1d;2&ktNQ={nwwq5WyC?2 zq>c1KF$pmTMI*Et1@m4zq>~ zeX&M;k)6`9HQvvt@$R%5?-;{N=hb-c)_Av9jdwrd-L12|IsLV7_4N3(`}_>ophIPr zYvi?_ck*{_i(lZxXZ!mF5|y3}wJ_XEWW>09{y#Hv$&keJXblt{l?0i+>Mpvp6c1~ z6nA55f65cwc|9t_ULfws4kwqH^ULKcW$nN0`K3Rj591fzu?tf@yrN(ZY^EPe<$@R(rM2levOVgFsBo!hk2K|wD^Q@V}+afzGJO~!@hIcqFD-gJO6EBG9o(Vpz}fUI@gxqGPgsN*E_Wrs&pCOsMzmi0 z*@O@B_ev#leY_X}y_dra-2NIWj%e)l$5^c|G_dwI&>hW_xL4Ra3!HV8 zwMUzEGUfk>@(16)5xfBW?}+9OFHg>TcQZF+Y5Tm^qQP&lX3=*)^Qn5*AiHV^YhgR^ z9Chz9`^W;pv6p=)|jc z*&(@Tmpc6K_p=whZsOIQbyuh@;s3;Ij4X%q%h-Ry9arSzm;V>zKL_KG(4B23mfj!m zZI4S1HQ4(Jg`ssF^r_%@2ne>m`Cb--q4vi02r3aVOo8H_b4xN&xXwth! z`~mCxlrQvP?k^V>=3tjLOXf?@1mg6*RP|ptPPOal&?4CirCQ4myg=KfxtsKYYdYmK zKF_q}jFQ&(SjV1H51&pTeVlvgo%H<5bn=MJUtHAp(Zprt#U-^pXP4PLquIMEyBV21 zrSuZ-Bv(p%JLM=Z`s8@t8-KX(%NF)pKHB@}kLf%*bXC5zvB21#^>7Mv(z@rkt?P{x zcopjS)-#lu^X>%e`a{o#JAUKoDDAU_x70gdIsiKIyq|^65yp`{bd}{co$m9QK>j;$ z@4NPDCV8&sImPoN`<^pbD(BnulX(^%EbV9w3E9hdvL}1O;4d=y5eFc9U4Fck%@_T6 z+E4qGgh80aJK+bkuEfGj(+`UwXx3w%N9?JK+(+ zbOPr#cY|f_E))Jq0Hf4>4B==(2)rA(^zI`FhZ8>dicDljHcTXV*JI7w6?hg}KVe9@m;XwizgKn7G&HW3Ud*F0~5$paCzxxm-5cVd7 z!cO=53Fx!#y$G~V_nw5Yg!dA5C$LV~?Gp6vB7*MCjwiI%IlVN_@YKU|`)wfps|{Hr zZEAprYoG7gp!HJ8MHt>z^OgNS-AXq}{hu_x%*bw5TFK51@c2zIEi@tKb_A_qcy~cRy5@B3)9(k;AEqFx9{q^j5Tv2J{9cwt|eDVnWT6!sl z4Ws<@y`SF%XdYEuQf{aHu>rVqWLaf7-%diduO)Alt-L3b=L%cS!93^fbBgC%?DI69 zRj>BM((ZUryiqzL#S{X&&sw;ON_100i`*xMbcP{a!j_@k?c+Uo5 zCDs+FyDQpPtWOlc+>vG@?}dj{xpC^R`l?*?sh_YGYJcGxWlyS3vMK%cR+?IEEjm?KwYO;Z>(k2J?5d0E@de89 z^9j-_I()f_xl0VzbrKgrAfG6(WJ7p zS3&fMHpyKfK-2DlGIa-u%G5o7*YMuwrSeg^wc4dtA574$l6UTe=xv)A`AHun(HqhS zA?g~VpFu;fKG4|rI+%$rWPNtRyC*^A#-L>wv?BXmlP9gDKlbSW(WSk~s;g;7E7vMt z_-fJH6zFGNZ9&Jtmo{;ZG`0w{c_9GiQW|2;98z!wV+@f23 zLiD+$Ioh_V_Ml6S$3lnXSotfDgUDNbM0Y+)Z>SvQsl0rB=rW-biKim(TMACMeY_xHH%ySo|LT-w!5 zdda|7tPBWKUQ5QOT3Jz^Z-E66T{{%Pxh6HYzjD3wyzcdlqvwONpt{e3KFPIwqoP55 z+vsTG;(sXW#o78+UBaRSROv-0zQ{^&(9D;?&Wv!?T@nAt8z8{t);7uaa?nT z8PX-tF8=~P74{n~Hg=46221P632SMq%kSyhmij%ujrH?&^XeM)n=r`wP3BG)Ck0K( zwUuz1c`*8tc`$Ph?O$oH^xD>%_nW!peIrHxWbUR;@@*X6YaUh4n6)GCBk*SwGT&uv zwi~;4ByahaG!Dk$Nm6%ObDvGy3&)mYDcXW>k2o9IhqrUIkKl{XRc2iIoblhJZ|3|B zY$na$>iPaM_#^+-p7cedzca#hd-kW!N09F-hm6v`BOKaxbo0uifw$CrjV{+S0#F zO7frl)i*~wAL5>qdq{ixT1Ci*`x4f1>`=h4XI+LkD$P zgHC%~X+tje*b&G4r77e-S@{Uh_zK#>2|a_8=Xqb=;p1$Jxy#W3(@Q&Y=0})%PJ>qQ zU>5!s@gas^K|Zx8^(J-dRc024jvQ88SkxWwb=1>A_B4h^i|Bvo znwA|}ca*LB%!24#Qk<3?T8U)yrPb)kEPc#H#?YVTV~XhCG&T+SOiHQG=sv&|T~3<( zQcEjOO?|YadCA5@9xa^=o%M#krRA)>M}Ax6wFSRPEqOg?kn-9&Z}9Tk6p+`iV;j5^ z^7_oF|8L9d^g+riIAiqB|6B6<%|Cg4ZENyMA9>sIsx_B`GxX=Qr(Y*IN0(F5uiOU~ zXK(M*@G+iWPG7sBaw}<%YHz@{zJc|RPj;l7PmbU$#PT%K;~$KKviT7a_sUWX-KjAm zlpKO<3m+HH&$_<}p|?h8teN2C%Ax4euDmn9ya)Lwl228pCGeY)c3dG-PNG}m_s%b( zvlu5&>A+{xAl(%PGtb=NHtDXU)m^Dtx+}{#m0sHQd-yn{pmFEwt_h+Mot1Ro#~C=% zS?pUzXQ>a5G%_Ij!y89^os|orrxMq4Uv7@Ilxr&vI%*u_V-g<8zLd_0JLm?URSze% zv@)$Qw9-VmN&ZhOysz?GbWAwj)WL59JSgehvfuCw?>cbwHJtk4VrN+SqYon!ThYDC z$bTq)zj);v%d*H%KL_2Z+w*Exh6(P3IYk?)4mny0?-I#B)|7|wMjmD&caGtu#yypDpyR9#4{c(6 z))_Z%Qcl=2fv(tGPLj!MHftB{3-#pZ8Y@57SoyhTtMb!^9p=l=ugGUYjr`gB zYUGOeUb*_80p)6Om0VrZD_1`upMz`U&mFhhELU^3Q?BlX|3=3YZ>Y@lbquoX%N6sR zlKPdeV;pP-=1819BK^X?X6YO31)cji!OfMWV=~Ut@(b`W;i6mUhmw`Xq^DaV_bz$c zx@9$a4@S4V)jM~1XLL&>AR9s55=SSipS|O{g|+9g(k&_Mdh}|_+DFs!I+vTdMFBf0 zhtC=tDYX6}_G7km9aa1-zstK8y!4HZXdc~DT!;=^s&k8tk4tx8>YVq+#G~k8+5X;L zm}8}nSTB}MHp#oySqxW?e`#!g-yL`EQr*+r1$PjxpH!l>C=3T7D|0a1CqV3%LgXyG(OMH(zSR?PpH5=fC28<%D>UoL^kEYG~PQUp{h&_U59_ z1c@id8SKub)c-r=t+kj?8sB4n8CZ-@mKxeW%^7N}>n8I1C%Csj;|w;g+NWHXTu=-p zPc-|=b#BKH)&dVBj3O{M2hZiOq>k^Gx(^}$?@~uF7#*x58vF;ih3+`@5)V&87btEM z>p@y)lx+F?-v7opt~^FVzYDEzQqLFpHbEM_mo8%Mvq6}n+2ps1c;!_guej)ehxh=l z*ZBfUA5Cz60_R3-Af49QB67#s$CzTSn#y~(S=J-cY~M%LulzY2_=(l)r7t4p4i zao&%7H_hm4WS+7Qf4ygezDee>HR@R{nJ&*Bjf|d7!t*ooP zle~+j7w)V+pf$jclTQ8=ofo;9yd)QMdB<6il~bYNdptKJy!wj%EbmlL)%S7YbPj+= z%d*OG#NEg{Cvm=6@0$icXY)?=R2f70?%VwTENS#jlcix4zp=A=HoVUJwPT>z`a-u? zFWmIo{(50g^yL2)z3{B_-)K!k zzC>fgrtn*2(1nE?Dxr4S8ZBM&KSYzy;GIUz<mh zK}VXgFLMKBwRFXE&wzQonz3;g`O(>be?vuBI41+vB&0T3-t`hT@&xyNoR@W4Wtuw_ zd+lg=)wed``-LX+-JHat@(9^A*d{Ue>dL5G`$#v}Ue}m!A2~YTUKa*KxrcmJ?dKQe zS6{`QS3BUh+5vtA*B#`uIfA)u99phCsb_;L|33EI5zHTA$wd`mljBKv*bYvPa_gzj z+<#I}cs4F^8ghj%iafO*kxKaW^~Px7brOAOnp>O)lI$|)idQDO`9+8IzEuk_sQpA;k7AmGI;ID z3C>EDywPuD4~G($7o&w1#{T(bC(**X{jyH8K9I~;KJZnqk0j_H`S-AL^kz>_zK-65 zEiGFw;^c~*ZzKO;1$ zCN6sh)Cbj05%M3XjSjSBXq{U5984P>OdGu#ia47nGn7JSQFrl7^$lnAd%xFbnU^&t z#J3ah2Rlt!N6%X8cN$hQwu&#NZzo%rho0O44!bGtg12ng+3d%dn^{KvxYr;deLkIh zA3K2g(D->-<#S30IM4=RY1Jm9+-oXX=cPY8?qi)XXXlRhke4mHgL;jK^FL&H;Uw>` zY=Rz*S#Qno_UnxyK3E@p8-|`xBF8)){wL;ljE8pdK;Oo|=*OuW=a8|U-@G3>`~cys z^`G$$7xv>|h-{sbk5i`+9nAOomGKAKUUhiN)`4}?2GW2j^77um^Pb3t()^Az!TQ}p z+(yZ23akfmsi@_zuQ% zHXwFIv(ZnzJU|{K^V%yi!JgMFerc~tExydA9=+`jPt@*HExkdWe42D$=DpheAR8a# z$63UG7JkejZV&kI8GgqMzz@l^_+jLMG0W%4Ayqti61&rv4g5DXWkWI(ciPv>Uq>H+ zCnwS$rkAuQOl_e$P6*0Pa(Nwnr!JCgagZIOXT&eb$QYH+v(HN~U}c@fCfn8Y3(KF^ zg_S}71^J_I_km{d@)a8&ArB|h|(Vb5#ZJq8UaPvQ|bMrTu{wli+-EI09-?^4Y zvL)an^k(JbL#N;?)YypL6hBAXbjlli)5Eg&tK}*TFMs<5@p5@ZW2DbJ<#&4x-aSUz z=XtO6lCN*o;NP!F^El`EJVD%L@a-{vFWmjP6Mc*q-JiDcK{>gc`0Jqadg4xizH9kC zp5I>mDLFwdqR2^5k2VD8<4n%Y&tqd zE^2RGchia9*egAZe`7PMSSXc7eV#_#HV2I@iA0rxW~k z^!sadp9s=y^ri4j>R<3sHmqdxFVj6b=;JkM7;S0rWmxU{`l&VgKk4>?hNsE%6&oL< z_r1jL0li~M^9*5k!k-8m4+->t`n}pUl%oGc1Q3tN)V5$oHb++%)!?>CAb{X;yLP7lsSbZ)Od7lGFed%1mc5zRy7 zOBYR7(I+I=dJfJ((B;~b+Pwrn&qmgN%~+aZyg+WkIZt+Ehsgf$ZH!2s_W?PQ%`V>v z>DD;zgZD?_qt*hDrwFkzZ5Pw*M?5ckKPxgPn&SqV8 zyzJ^B@FNO6b<|Tb6GIjlhgWO7X@n0BZT=_n(tq)&fpLqz*${H>U#D+k1+jD=hHPHqqv9&W{n0*`d4Al~ z!_$izyWafd=KX#T__42%i+qQCD6iTy!M@)_nz6{po}_!0um|C3^G$yl+1@$pe^IX5 zM03_129THFoV5r4aKG^+W%UkiBYVS)FW9ADexpyn0gyVO}a`RW>Nb2oK) zi1%wr`;8jyatHChWRCVf#9c&t+{5pM{PyxDL4TpVUb{^F3BK$rz9cjsJE3DUyR?c% z@J^f2=#N+an8M!ZhELi0_356L;u7k2t==azUU~G(FRJ-$KbuQ-Ut)gg0@7>FqJ3K8 z-+`8Y;Y2=yUD_a=gQ(mmjw8`wX9PTE|yK0>{G z-D6~nGSEGY7x@nLVaX=8NfUD&BO8*7gr!gG^S;e?Ao(21dyO5j8u1?@UTfDMA#Nk# z!-T);89gidr&;<(2k5^I`bXP&>=?>b`#4U%1AKuUb6bin%*~)tKIev1b}4@CD=TyJ zyek$vbl*m@z+ScD(u$kY8tyLZ$C4%{KYY&HpFum8bS8%I`jbeP%*#i=qAQLb(>z{# zq`+Qd%kv8_eEVpcud8eDbRF#=e*KFz6JH+1w_nZNT-SAx_Ep|XzE<1#pxhLR?`GYM z1*8o(!>{%H=C{JPSpmMGu(!y!{r-)73x6=*(X;RI9pN3m)G?It$i>Ikv)hmkon5dh zasR#CxwU3h^8VkmPwsxnsm4diqR(6Le3g4YI=Hz*d+C%$c1pi~nvgGIL1{63lI?k8 zfae-t&b2%Z>VV5gdkybZpCaGPvT1^RUqG5A@O>$9)8O}I{7SxMe?;h~#wU@}^Ji?}v9WMX(POQC*D=sb1#s3yd zb2pvyjjqW_%1mj`^$2{y>et_7{gHjp(4jlg8Vk!!AAhO_|KJgGm(BV2m(P0h%pm_B zIYs@tKmT4P-CMkuy>p+95Av^@_*YqH{X22D!?#!Xy-oac)^6^5PmC};H8y8rVNrMY zp3B@v|0}FrI`CP~`(2=V^!YL8rerUo^U+b7kNEcDDC%l_!`2V0@gbN_a|^KI2Q)Cw z>N^Gz)Cm4t<{#PQOMi}VhmY^St)ne`Uxxbb=a2VnLHaxVqb^4N@TnpfVdU>d=$21c zY0t1}@pm-HC+OEfXND;LWE+nxH~ikbTU!1nKA#MHl07ldxH%d*@_k&szV_{de)e>g zU4hL!-nX4(Gigq)G5;gB9<}DP@>84-O}%{z-5_0mxM}nL{;bcD?qc4nPkr3R2X)T5 z#D4*q$P%{~G=84nJ^9s~N_glaPvyJ_g4P){2a*m7W$0t65tV2vSNyVFhk@pX3p4l8 zUp(LZysXB}Q_LE|XfWm)$JCEL>ip5zh!;BdRldv`h}uOsfMd~f+<9iOYA$2E?<3ZH zTU-iXN-x#)13fsxETXMxZ>cLq+9kQoX?*z~6 ziH%^NjZof4xxXTAeqSDe{G&C>jM;bc0Z2Zidt_IszpMW-FY8$TPxfnCJ)?DI->$&+ z*vzhAKHea#o$LzP6iL#^P8e5^JuzxMdjQLGbIU3dcqiQ=dqVbwFp%u)GUrW=%Xv0M z!rBz0t85ABGUH3AVN3j;GoxfnbdK$BOZ@0$wNZchdXltk&@#5fcWr!7z8)q1kIZeK zBJOfz>ks@c<@cxLza@Sh@h5j^0mD+=AOA+$H+e69t+DYzeyu0| z75oOT68C-h^fJHS8w9^*zf1g*Z%1>YZIQ2=EWhsDqrd+8y5&buzP?S`AM;-P`ihMY z^6N(8zYD)^CGJf4^c{Xr9|XTfy-WNWy&e2I$@1&7Rs7oD@*~KvPm=ar-iu#*+xQ^A zP9Xj?_%(~T5%B3$euoc&Uyr=@?&vRfJNUJO<=1Xi{OYv$fFQqiB<*`Gzh1EML4MT{ zzZ3jQkmf9C?>vh&XHGT&9HHP@T z;nxJxbP&c9N`$TT#})4qzmnU*uRn2bsOMkRJUoFfO8y)lPp3Jj=9a5jgBd*Tv89q@jv2%}wzIaW zHRIROyDCRMFXekWbeu=M*FMdR@ZH2crkGo6oss!tIODA~<{bH((;dQaYyPeEL!B8T z45MVX-ZkqR_+y|4|J2HvPWN2ec6;!Q|84mq{#WA}PZRG4#51;3s_~2i@qUFZ!^bne z^(po+!2210g7@GUH7^WVJ~&xu!~Y(J9}%#Oj`JY<_Qa19m|yqDGhTIu*Ps3M3GD~q ze9~S#qx{bE(ptO1N0a~$hYz1Q_5qx4IX=gHT5G72NfUA|;{H_+QxvA`ApY<{^n?5r z-a0&I2Jo!&wA2PVQ%h~4wqi}zTidql@=<5mB(0n4{9LVxvfke>-uSyR%c#>u!sB=t z2D{Fp^&Mm96X(;$`es8ATlpm4gp!;SLw%g&gB8_Ja((+z@FbJhI=xvt{{jECezei` z_88ovc=_vWSxWm0#amz3U~r9BYzMA!9&Pw`agCRO1E|I|exCNZhxfuCHQRX4CoZ4# z!s4fh|0(mRJBa%%y6PwVewttT_RQKl{YgF?`G)1+JT-vltHw3Xv;9&&fAve>XQlQv zzA`Yc`1b~dYn({E)LySpZ-4zp`A#=9^!K?OK-w0)XN^!k%p+}@;5ascG#5kXSBaYl zeRKKUmtV7n0Byc6Q@8@r?fFdmFnl}my?j^3|4aH&0Y1ogYh=dwSzC(ppk4kwz4vjA z@M?TCacDUT?m+%A@kG8h>8O5wQJaT+wZiVbWXC4|47DKsQF}Ul-pJoM)Y2Usul~yS zALYGSd$#dGzWkZ^{o%_b;x-WWBdj;+HphEP2a7L8E&}+*2goDH8}7I5_5BKWRf{)z z@AC#ez?+@n$w?()L48_PPao?k`O$s4gW=iDmS<6mBb5(1$ftW*KQ{UUJ>|FaEqwC| z?!E{ z=+1QEy28nGic=@9625!TSVz;2j2V2EDR`X?RSjR@Sah0qHYfvpK?+^iG5B1lX@~_zVAgzBOeh+9Jt2Bh&34bDNjaKec z?(GkLTlUj~KAqSQL2Qk1c2Va_4_ku{WsK)c{FafzeFXK4zt**q`l(OTpGrT0Zmq8b zb-^!d(0mi$Y~;Q0T0g5n^L51knYmRbao>d23coA(t%-Te_Tkq2F_e3cdubmm=J9is zsWsPHm`Cjc^4INpF^}jJjWK3zh5dlE_i)LS>;UXK{pXqrY$n#2v`AE-Mp?b zx!B7u0Y1;wJ{J$~D6FGrx3wGqhHZSG-PX6hi5#&`>6JYY=22tbQM85TTzWo+XM=aN z>s^vBo$W2#QDq=|U>?8Ri+R*HQ~2fqzb#YVdf(Bet@^J4e+a%^!uxNNcB+jJt^t35 z_%G3x7ZSHOZTLlgKgh3aed%+vz6Y;7doWk@=N`U|Q$6=!ZOhC%CNuB&DrKI!YXHYc zKA~)%JZK%P8pjw8$VPu0Ck-K4&>IgYV!UAkIk zymjeil_44FrK>9S)Uz7L=;5CFaEu1m$XO1;F~(TO*BW=!S+q{yDvz*mj9?+7V0WU< zib=6T%K_3;YE#x~y>GC!g=@tAM{ZVBgntX8A9c>U+WG#&@yXlgdw3R(QSVpt{5a31 zFQ@1i=&#?fMqF+G{t$k=Y2JG{#$VYqeKN4H_-)d>%>3{b;%=k;|HkjFMpi72k^I&E zZ)XmA33dG==PUNpi{xwU1<3`nV8#S&?D^Y)PdpbI#FxS7Q1#KE4%OUCb0zr!kflnQ zx=LSu3Lb;?>Gm;tY8S>lgSQLn(9ap3_P5E?)Mq8{f5-Rd+W6qOaRl*K!Skz$I~HCq z=U4r=mp=*hy?{-nz5;Ki1Tc!|ATV+seh^%Zhwate&9|YkiG&~Am9jK9=;e*Y3jPaP z48Bg^3^3kQ^U5D@&{s|2gyDzb)%z^3e7;B?_p)>c?W6|k@=3ktTk&RBnQ@zZY$VZ=VYA z4F$YKz6EiL?=;{3H*tzh@JTquF9mq6{(6w*X^`i;lJ;}F_i>8**)&1Ek0j06@ckU( zn&9_Y{7SyF*botPyYVq(@&n=&|H1v#L7ZZUHtD}FcI!Ar`H!ORJBw3XOTBtARp=db zVZ+PEsz3L)v7RK|SZEfes@ul*jjxM}j}qSmf8Ix$#|ZBwtR-vZ zIPc$#Q_N9k%@KVYMf|(D2LBe4?g`$@p1HmT|1Kf^;oY1Kzaee`eET)OIq@%mQ`{(f z6&Z^sJpYXGQzaG|oZ>-@C;GqJ-Fze4jOW;SUORf@-Xe3BKyVJRo9r<=pQLXvx9X3> z4C9+RLT%!BHpfQ%<33(Z{@*%eG3fs_cNuD&#YWUz!=FcJJ|}w+oz@Tkh#fdZ_Dt$9 z>Pa7x&sTE*Y?CIc6rd1{x#x9wa7lUe%m)XqCN$jWm*SH=Az? zhZun;@-54LdJpxJec{^#YX99$`}Vh$>iA{`@6~^rYZ4Ub}pXY3KcrLpMTWKSBF~{QTK0&!UTVH(g+Pf9GV2@HpmylBstG(VB-t>iyz z4Bep=yypxK>elf6V?2KKjUTPWZ;;1xdXKHdx9mN;wo;dr-QO%(HhC?!dEc(OWW4^V ze8tmUX#@2!qlfJ~efJP~ejPdZhAp#C-?kPnpv+$~@BAO)E;8~I*pHQB9-}hAs?P0) zRc)!%QI6LCa`^m=ZD`sNzao6~*VnLrJLa;6cp-a+Hj_!bFj&-i zxqlxPbpz)D%3hoX--CK3Zsef9UU`YMALG63#i)%B>XlC7Cm|;X5ceWse?m9mr=;H! z7WGeqz;gXN__aM))RmTBo8H@>UxlO9SNrqpTcmxN_u|)GHa^I&8;I{>4!@qbJbdcp z_nU*@*V1>1U)zI4J<;;(_9}i|X!+5n+gggJkoG&g7r*A%_#nTICw>L|x{3DwY2f?qu z4+6{e@92-)gGK!XXDms7HCFNKS-b8YlYhD$tGunl&{^0p98->N8DKW^jUs)9|XUKzf1hu z9xUn~&-D6ZvWj1uj@*2Fe1^2+Ex$I}_#nR?C*Fl$V@UH9VK>4b2wUrq_YVRq`0vnP z+k-{D%<^m9F8%xC?KSvyIccBgz2xhb8vI&J{1fkUHatn(68Q8uziory*TwG=zqSX9 z`fflK0}*OdB7RuY-thgqmDKV4cmbK}?lzVh;A%xzoC?YlLXbiM-XCFWce#j$4JFqHXXqvq1w zg%}&jnZEejqkEEHw%Fm2Unrq_#_z3!^UFJx?`ZC8G-s>k+Bo;NjdO9^DhWa(VH81U z^M*go*%r~2m4_M$W67(1d1sWpda?FPxmS<5J$a7Jwt-h%TA9HfT$lNNIIX-FmSdrX zT`}(WFn4_L+ejEi_{;hDQxi8<=8>QBauW;5cVT60c3~x)(YK5Eb`jq$;@d^kX%XKp z;@d@)=lS*s?y`+LoITLKsB$ZJyo}8*0^7;iwOQ)czPP*te0T~U&REi2m|I-Y|GBvb zg-b16%|uSGczH}Y=iLdfu z>wg@&T-qxZZo?<2Jln|gVe)*KJln{#jXc}Pv#m0fJRQ-Q&vzuipgNgi$E*9n$1H8r zG{0kRwzZN-@CLjYv&0yxJp_7wp66ri^D{i_OlZ9igO$}e+IsE* z%QneAzrnMg-)C6^znP%%=#gJ|d=RZZeWJy$zt(a?j$3X#l>WgultBIs4H?Fa^dIm) zjw}fmro4SDi~Q5+xA4Ir+g-?#=kI-h^#pVS-^I9Nc627U?)TX3k4V;dum6wozYzHU zYyRIs9(VAr`rBU-mk*@X z!Fi#ikv@$1X>!z$_zZC~h`W_^z2DQngj4?{aR*bD#tqdy%6)q}du;;mq!08i#yg!Y zIGT6n?0lQO2M zJBO0ucMnvsX>>y*bQv=?FxXKFNuBZ=mn zIrF8%DXgjBBM*Jb?izD$gCBn` z@rT)X;cv1IeI;=SYb>0%T^LFJ$8he!2_^ja6C;`Y7_H&3X3`KZEY$r$=)T{t(;2U! z)VxYKHKXXb7nY;$Pl};brdaRHC^;$a7)pg%&Y#ioim~aqCzJCYLW%Is_0C#sHqL(_ zzli%}r<0h@_ZO5y`aXFg=W~1Ml!m%BWs^Vpvve%j!l#|&ll0pYOVHFDa>G}Kk(aD< zPnXVy5x$8vn{M4bt^ZmR7aqhs`|nt*!G;`XLfng6h+`vpzdS{^ zXo%AH9p`fMd<%D5#Obrt(*X$v8%zFc}^GqOZq)tR8|b!dyH&OzR0l)|a}81=glW1H3yH4bb2 zQ1^EuUk#F9$v_ktxa45zMlVey`6T0k?5umacdV~IpQ1kP=TaY+d#sYef|@&Te;Q4O z|64qb7PQZ27J7;M#|shO<&a6Qjnp@slsWI;l%qXv{yT8uz3=>X6puDBZ!~3O*{i^} zac39$9{2$59ZMCPRmV-t2c-w7)%7|PtM^^*9Pas=F1%=4s9kH;=%`hHS{F_)E`~A- z%A{xAd}b-cIL^B4l)BV;$p4e;>ggXtIWJS^CCVPq{VokIe1SiT(^@6z4L?oU3FIp| z+}y{N6^$9K(GpVLzKmB7f;RG~BMlEyXd6MPW; z$2+wLkaiB~P8i`bLWNWr8k^MiW=$}6Vp+6#ZO^(ow8qo#flnt1gL}Q~m}ue;o!C94 zzfm92BKZiVTG;z^Qi(C6&6f$YXVB6ljD9VeE**d-VL+A<49_$0Jni#*B=UYTy7t5o z$WxPF)+YEKN=>B>(4NXq^y>L!XFc_NkTL>%haa{1F6?}*I%Wo_qp-?(g7_wWnL6gs z?~;wo$VxqRfj3iV=x*^xV>5Qbc-e{3#FL#vs9WChP-Ct7k>Q!`Q$hX-A5g1q9~q!- z+S}mkL&*bm7#}V?-pLu2^toB87yGlQSK<|P*a`aIq&bz+(toEoZm~ms#OMUcJv15m zGLn0>fp<>hK>Syq^JzR!{4eyE`*>>ba_-6JZS?|{mB=^X3n(g z7(6%lV8#gbJ?Zs$I#G$IhF9unD|GZk`t6wa*fy$jW;@c&(w8P}fwb_By?<>En4);$ zEc*SdQaqiX7*6NMXl&8BVG;Vj`UZJTB+oJ7s{H)1XT#3UhP%#0s{QMkkYAKCz(%(XE1p%1rsh!Q8Kq&iOx??9%1tyE{k{;SrDKZMXMI}yvLB)BgDG1w z7E06BDUF-?(oLk-yj?n0@+tc&>YS`S*oKzh+5Do;r<^RjQD2ZAmaIhh#v3C~(7gt2 z;!lJ;43Dz#D4QR1Dc@@j;pCLR?%%}q8$<` z?w*8C;LS`q;z6)2)CNI5h%U)NH6Pl@dy?|TR+a4gW$JnEJz*zC+vIoh`h}jAhvVcQ zhgWNqMt7p_n^;02e!pgE#(uF8#<$@bBa5SQUCSqksY0u z@?KMfZS;SXzBDW4&DrBdw|nQ@In0S3$97;Z zXNRNqP36i%DO+QlMN8f_qQ1i;H2G zxd&&?o4hlm$w5nA_JGqCO^!BtlY4^99kiT#UCx=h&*+G^=fZm%{dKDD#zl`^UD-$- zHAhnYR5$JI-=P4__^F>Vam*8KoW3=C$H2YC&^3;8>InFYy?JU!G}nrrScq-5q!?vh zquSTd3aGr*@H%t4#f@v=$ZF5n3z?Jr~k9hm#qRD4jKX{~5-*Fasw`^M{adk!W zUuY;>bRPMdHcQc7loij6uIwXSLLXzC1S`wkg63Nza~+KR8~igl>*1@; zXMo>rQAcf@*166PhnzXQpN?&doyv|7qHI^CvQkG>mWVn*JA~|6y1KGtFDhzqdu3DzvRQr{fpk*Uo=F> zS8_5c%RQOJT^W-Ct=^rV(pAyoKF0qV zFN`+hBjW^i1Z5{p`*!?*@0H%k^^FI=ruc)CvgBAADR{#QL{>(V!a-`a8<+9F&a zZ^}?zLy6CGH@3YC%$DQ0*cQ;^%Y$S=XPxT4Q03oBzCn2ixzmeACP=3~A9B1ovuq5l zON7$r7S(^Q!FTLvUl6>gv%HYKrf(T54BsRp<{QhuHuFt?{uvt&-l=}3ZkBhRyq|?n zgY#LeynmJNRoCEndNKTKJ()X0@qvdklm}0G+cE3OXx!bE_CKL?H0>c7HohzRlH~MA z-VI~i)Lg+yEj2nzy0Sj$wHfOUrp>hfGwgnYvE}3v=lixr$y2rfxZQ`v`})l1i_$`u5ra{JUEW{ zsQZ~>gVRbJdsY*zW?VVKe)k8yQ@&bbEvkC7dX4a*pVk%-F8kf;x1r3LANEbca!-s3BEx-dv)7el-oj?(gmiC zk(*eGv$hj+Xv-*fzuwrT{w1C8Ra;gZKh9Uov*sPhFYPM%?|c*7ud8)E`Ve;~#uHQV znc%~;a)^w@qOSZs@LT>^`z^9vdg{$S*_RG5^7vEwFnLAspK88_o%v&}-T3-daUu9) ze06r5^Yf>lt!55xbc^(g`h>6l?uF*A>0!t3lO`Yd9sKqY^R4dh^1cnGRl0cEqa&0) zjCq-}nszmP*H5oJeY%7B{>-L}(0-zEpmetnGTqHKows+f+4y;kzJM>rXBnUiZmted zE;8fk8P?1tN4+{`3*ShmNjHht`bP6`-FaYijipulFhaDse9w&WZANFIYb0|SWW(qG zS@3@x{5NZK*8Y=T^yd=HIm%|8a5vTo!BAYWZ*xg9BYcP6qbs_fU1jHb$ewgu#A#<< zy8wC5m!5fpy0VW)-=GtiipUP&rV9dd|A`I!m5YigQGr~mVV&;4(__7Zzt6^Y`?^oepqt_<@a7_!zS#$ zkUB_Cvl@poUVl@4VhP$i%{^1t>!fIl@?Z5=-`1F-F%3F<WUcJM7;G&RO7p zOlhUh{_)|S?sY%(=W-{MRZf^PB_GOj6LnQx-q?vTXD8N63Mx}}>PaQ`xU`8c@$5o) zeu{h!*XtXNJ+c!F|41(zl(s0wGi!!W?*`4^>)d>)`#{oAH_2si-cq#o)bEf7%^7@N z;S+oqe)Za_mkr}wW9mNpcydLLjtE^~Yy{aZ*uusZhc|8X`*CsXE{((L8`r(Tc!Ivw zv&IL%pL~V9 z+UDdEV|<(cU47=9;$imN`V8&DxAKkoW8(qvVe${~H5^xa4saJ~{V_p(Bb3UQ_JD@! zIlvE?{j$ByI{(GD}U=3-=1>(uq4oiq;ToG4w0?;^~}>Jkf#O@gngw7YGSBdXdY zX8VQlFOk3cUl(#Iom9uYz7hA4PSzf}RnBg-8-Dvytkxw@DX~ZHdi5){;UA2RM*W#bdp>-xe`%hse)Y-$UcVAP zBPdUP-PNc4K81`tY}OL6uj1HGs=LbB2>q&i*KJ`3|4p~Qwrcu20|uTr}q4~=9k;2zgAk>jE#Z*l3%D=fBF4TZ^`sBXPuhOOIZpGV}aF-C2s@ke!Ug%|oC zO&+$zG2Q59zSq4T$58i!3BToeleHa9zs@oikpBea$sfnPHQg4*U7ZohSdj5#GQ{5E zB=u5#B|qvzKeYeVMu*bp6lY|Q-*K<^Y&h}bU~6t=c0n6!tTSVjT~l_r<52xW<(vLN zS+Y%bv3V;05V9xykMdO+AGBpiF7$3E%9uhKDaw$(^7Hz#O{Z_bhnVkWSLvHD-|WLT z@~0YJP`=Kf3uQ9GQgp~pS@|!;v!;}#ZSZHx=cT;#z3Mdrex;zvvwKd#ztuOEPDs`8 zk%E(mgOStz$sx*vyb`pd{%5}ne+a%zt6jpxM<_?**%Q=1=UcMAR_*>gKjL-S61rM%stqd8P-|gQCJFSEl57&6!*N@{xbUFQa7&=G( z`e8+UNa*W`)-e(b+9QbtIr&C~;Sf)ZkHh+ad;7Jm%QvaZlIr};eBIou+{QR-o&%pIHPnNJe6G<&(1E&Hq|&8W{pVp=@8a)WTPHR8l6{$t{<3$0?fpRVV8h-DVAn zGUS7egM(WIf8xR%;|ui5RUJ~64(S}>l7qHBzLAC)<3gBrkPqFp{oroeZIpff6VJ+j z4ej{XkM?ZXbaU8QH#O`$Meu!=p1)GEI=dJzoKuwVQa%diw%uDxvt$ryng@}__(QPs z4b}!5YV7yIQZomtcjD_!Uq!~0KAMm` zglwo_9_-a= zt2n}mTgMT8aDVw9;R|cBqE~(t2fpsR*?S*Hn5!dQ$hR3rlTI>m=otEm{kBoxVmCW> z?YTNWzLogsR^s2-uYdlvaD}tJSsPb)4DYvuD@-ch>5n0GY&(i3Gmn6;K5aodxBENW zp5p&*;cdVbhPHq!Brb?6yb!q=`|-_b3$ecI)91~>HCNmQT;Z6_afQqG>$8C)6R)zk z!ukDhg=y+@>&Mg<|2w!s=`J5z7-~m{phx1Xn9pN}4#l40EZk;eZ-OlxioT|1*Zb$= z3iCH~)j36_!?)HJzIRD6l)`V82k(`ek1lbrJx?pu7w7|E6&T;aFRiFVGfT=&^14bi z%lq^+(oNSoNt5RCTEozoI}={Xo@UPM*~7v%GKUww@b~CeqxUlETguz3_bBm~JnCFy z=a_snj@;j?i_z1h9}r&{YAH^%2Ysvlf(EOBVh%UyZsPojW!Y_^9Q;ke2lSuhMZO%hna+?3Um*Hcm^~J1yJ&WC zxkw$=c6FLtgGW%?$J3)L8sD+^ru1UdSSQ;Wz2Djby_bq+>LdGAZKHZ=-lO`~!XnC- z6vQG%Pf$9CJg%wKSsIKDLp%M*(tyme1P5+7HLa{Rl3&!Xv#>F>+UTMI>MZ|`>^Rfs z;BO?~S7-58^%h^lCxCBb{SW)s)XnfOGa6fThOw{xx*C2nA8fI8g}0tBS$y?nGQeZ` zHfz=Qr~&HBoVQ!L+pM7(Or34>L)tr8Lo~jVP;x;zGF+H0WXic>T@KdbtNPZVeQjp?RjoD~hzC1t zi3fx1S2{mG1fDU9zsL5iUQFX_v<pyJbZ5u%h#Fo^?--Z^vk}6vY+~}T?eE4wDEz@Pf8bg_{ONyf-Qvp zXZ>;@oFhKp24Ng`+r8KknsQEgk3(Ae#zFi2i~A0Yb$oe6d^a<(lIQz-}&ToDhYg>eO66?5R!sb}V1iW9z?yQ8Fv*GW>k6`AH zv~AFrfD{-#?$7b$Zw^sstzX{F_h!s{2eFQqz)OvBduzPbd6VtAGB`zHPnuqJh?4|h)%@bn7E|#d7cf{I$-1)w71&9(Ee{tG(8V zFL|@I&avbvdmbHK62G>JcO1TDyyHKqL;FOp{~3Qv()YJ`xXZ2L9c$DFU$U{OjE|xy zykpATxfDrZ&t#CXDy*Z{sfSg`jpv8yFE>$WPT==xpiI%OGzomzdY0Vizdv?-3%b@O zJ-r~Gf_zZ&I~+1RU+Rx{lW9EUvY#-VrOY(*IqUNe1fg)2A`zc>(KYH zo0^L|7{C3g+HWzwfqGEZ6zNp#6N80ppv4Nhr> zlIFvtiMpRH?vQ9>3}QVv)Ml^;6YaN}lPPcEA^m*E+qg%Fi{b+`G}7lD(*KFqck2Jp ziEW+o^VgYirP<&i_3WpWKJ)RA&(!tdA@Ab({C#L4LYDSdyUQnG=6@OV?LM{fkjQNJ z7V(f{HpfFEv%UWF)s(w#f~O;VOk@xbDH#u9BIWZ}dBQ|~$vh*Y^f&cE^`+R^QYdLH$I1QhnOYNobp3 z+F#kU>cgh5Q{P&7g4;298tfuzm9O%vmDa~^)hb_QSK~3w8YuPk>tJ+N zAoG2g$R_lHFetOB&%Xl`xoJ@l+XA)a>|2@I$6O*duHu#2&y`F~`&%q17?^oj?507HYQuq7zf>(^i`-TUH zhio4J54k`2Em2;KiG#sI_VPq+Pi!MGy~}wR~u;;sclw!-q5AgZyRH zc*v71j}3pRLzsNA`@utAT?r3w?i3B-F@1PQ;UHy)XpQ(2_S;XKrEz3LrT(nuqHI)u zp0F_jCbA{$od1E^^MpG|YjiZaPJJVUY&Jnh^*jN+S`!ob-5TFF)c78I@_!E#$-J#@ zcpoNG^$~8;!$kJY&wN~AO-$sND?1}&mUIfsBzx>7^1vV5%h%QLHNSwl&z@eNQ{R>! zTYdX&V@@aw)wW3!Rl=^e<7#YD2MgMFpCOGXN|?(60c9us*R zxDR0>i<30}+&=vk#6*s*p}%D3OODZF1`l~P^%Ne`rJnB;9&(zo`L_WNnG22?)|OBI zd+?C&H+2){cdD5S%AYN}MLv^H!VCT1COjl{KbY`azT0H&F4L#8*u(VivB=V3@Q@R! zm#<&6eiOt)3h$vfBX|7n2JUbtFgp3KZyO$Rlr2N~hp>Z#c*ya#49SJcs;7*9Ade}^ zkggIf>StfJ=`<&NzkT*>)qLrnV2jrCjmAmC3%&uX+7PmMNa;(>Ev_WpmN1d8kKa~I zB=}O!@H2f+b*FAc_^$tR{)?4Nf^WB~ZNkJyT-nFoe)AxXrMK=Wc$Ca*FB|JHX|snd zl*|}h=Tu8aCP+sO?A))RV_;mQWN>k1u(-(AL(BmvFPfp=S?Rm}xX4?eSAMQrE(tq1 z!ZcUo`c`m}= zp^kJff3RnRd?ryBjO3UqjHG)W`7JOQ$%ctnc19;I=#+gXzq-ElF_N;gYhfh!xAfG) zNWxo#k^C)f&s@6O$4GvO_VY24?K}%3`QOz4+u+yMUCj74I_!)kRO27zWX#zrwsPX;*vcbRf5*d(?+?#cHOYqA99#J@ zTaJ9Prk>QzuV;ulYrQp0T|YuStMQWJx7x+WP3|46a}`cgd$E-8E3Y ze7WME+Er=QuJMA0mDSnVvkLcg#_e~K0r_`_LFYhv^I_RDRcDx(b%81zrtp{2kq&sw z5Lk!11K;^RKMwQzCXemMVTvYfjgI-c13a~|B70TmxVqTg zF6%m>1ZS4Ak3;LpVV)!I^3E5T1EkIkJ9FOb={cW}CHVP#VH@&!ntV3R4m%S#&vOZR zB>DC8Iei=Qd5C;gk@%=OcvfX3a1KBj~37A(|26K~ z9*F+GyxK?qBer}FzN<<9X}0_%<$u(czmrct<gTmHZPQoH4$6`ClEN{9oAe+sW@nTmBb( z`ZHmNalEIsM)@D!Lizgy%0JGQf9e3`-(btnlHVn^{NsK4DSruNV|#4I|6NFb%mDgl zN6MG(kzP61mOq6&eO(^ZKVP%ur^)Yh%3ppaX9!W=wS=S@gJee@%efZ$j(?2-Z^Ib< z1;%&QdMZ)$UV%Co-G`6FK^J0cRV2f4#^e3LS*tA7rRyNpe$jtAdq2$BVSG8vP4V+I zCETUuTybS3S3ox=u>qW&*Uu&Gup(nl@f+n>v3Xs@Y3@>9amF5fe=PMDF3y~Pu&>TP zIJA7l?{xmbEPKC&cTT!|tvgb$S6;OHc&OWJJS(pe(Ck9<>-6f{?l_y zfd0{z{?(TLxt|1ErSXw^v%jQrcS_^q<=7FI7rECKKh@Im?XP%caKAxx^GLfT+J|ie?b<_hhoxQhy35l31hkaEWQg`9J2QVd!=wLJ=)Rq> zir|mI^GG{bo1hcfn7|oxckumPgu4mGznYS4 zLC^c~S>i$&&gP^o%|12KsZGTvwda!b%E}blQR&r=+Anz^Z7JFG+VZMiIc80{X*P9I z+E}KgqI!9CY9a5XW#h{kguJpI^sw6OaN0?JZ`I{!o-Y#p3Fa>FKyo^lNxW}w3;()` zxZwX=`5&h~ef98gfRp*oVGl~w;sVXOWC4D`3u6z%1JjRP?;hHO?Z;8p2&2sHg(r3# z&OB%C=i92XW6hdpGR@k7x98_I>KMj01`m)z%e*LP`&#X#+Z&mt%Wb6Cr3tx8LI5O-ElV9m&5cqefi9qv5P8Jgsy^kMRPKJbmOXI?# z6KG+=j>{FFbfq1QhUQJr{HUBPc zr5{RK)l>eOBluQj-$8o$Zf@ml9X;!}!O3^r$@4wrAwSD6`28X{uDP_^D9+ov?=9{^ zU{Ht=T6SdoCbSb&UXu1Qex?*So-}P*@oXG8YE|uZRM-_2~#=NWgf2jr5048nFZ+f1+)ccx>~(G zI-xs*mR6ooU5wnNJ6^>1G?wRBrn#bZG5OfTlquRJtMr4??`#<{`UTkM4%Q4>g=h2q zFRDwU)vv^Li8tPF+F;G_*SC#J9@1yyxQCXn+(|Z0x}S{$-J?dck7;I#`8jPSeJg&* z{xW~=T}xv%H%sTMZQn-zWquw-tFz?JBAf6FJ{{#m4?EKPN%Ss*H+b*vp@aqk zZPm@07TqHWoHu3S)Rqz2tr0)wD12`^e~{AkD9Xjc=?-a{7EYj%CIqNJkX(#VkN`n~ zw=zHgqg0TqQ9%ocn5zM+hlCIkX_5|LNK7%Ppy+KBuE?MTgh8Bu0AfU`?#i*Dg4d`h z5s`jB-+j*Mt~A|@`91e}pWpk(dd{?mwbx#2?X}lld!HxGTKVV1&#Bf>B9)KYsVAf8 zjd04DuJzE`k(5RHb(FOhTvpo2)*kErd}&pY7?dQslrmDpTPwZN+KxGEeZ9^jvaIab zlutk5V*E+eU7z&g#{C}pAfAORk z2PC&4XsgYH>Ck zWgwHV8|Nxf?g;V*b&jOY@zmMi*QxV!)K|YDeRZ08((L1>c~)s?2jiPLum2?40{$Eq z!QN8#YVIWOKG2qSlpAP+mA?)iy3VbqPc3UjRAbBDx=*f%N+*xky~F!F|GpzXJZsL? zQ~ZVKXvQ^ki)eWcxFIv~&vA`%#RtUth+=-XxcX*W`4D_YTT5k)d+KBDjZ?ezJh;4h zCXZ)_>${gWFP%kfNJe|=?rwHE-8$;1Px3!?@dCDcGh;P6^4o2kN0#J$2tT>@oy$*x_)o?=ji109`=K*l$=Pe zI3tsIXz7UOTu z>!7h?x9mNlaQXO2%oDXIC6Qh;E|OjoO*(7F#hf+KRFbt4$_jBNbc!@<#Uq?O+pkM9 zZO{~5lF7S!VIxM;ZRBekXIrbrU*YRPEB&N9oqe!o&rO;>OBdEMx336S;jHm=GjUr* zz?$sE;Pk04kq_Bdw$nCNd=k!V?zJYMpJs1%bMO)}TMj3gvrm8z$=8=Hnt6;fhP{9E zv-*fWEjwe{%~{(?(!ev_;whcC6k$x)+%;y2h8fLUZS4V&Er1?Ix6hSKKBh4(c#r*I z-pdZr-a7raOL>VYF#lY!c`q52ogCr2u9|y@zw5`enrF{XGTX$$%vO42@kHthV@I4w zU9tdD1i98<+Gy?|#8ru&9 zkR@X;?9Wx-HSWuf2Xh*|H zYyt4yDxZ?@k{?O)pS}s+xCRr%HTN6gc;j7(*!4-Q8H#U5@SnCO>FHD(_CR|S-NLy- zPrHY~1L&Aq=+iKg=a2A=pQu6O)->wb3%LzvKM5Y_Fnmv{a~yU4l(H3v(nNa3y9R6{ zXog)P8R07Vda2LG#|<^nGr_zHS~qC?u#${LyyrO{j2DY|#-@v3!ZqM&>3r4w2=!Hu zQTTuwynLSR@RLE`!KeSb#s`(tZ%c@FnL_uMeY!D5#w_I5$}KBddD$Q8`_sF_S!5qM zjx5~lVtdB>gqLJI`}8*Cd@OVChS+4{dnR^omDkS9^iQvc_+Kf}O$U zA4-R5E+d_$`N??To#-&!2o=v3@p!Y7eFXvUibnKl_XN`i1AYL};ETpyf)?wY8G~N&%d~&M*ssepw!{#k@U| zdcNJSi#bXqkR!<~V{VV=Djt;Gton_wB7NTrA15YUbBrB^)=wHA-7Jko@XMY)?WFs$ z3k=;fh76{gbZ;{tJwI6Y2XqrJsIMa82kp^ASDc9KNpF5nbW0b?n&)YbvY2|$&^z+9 z8y!G;{$p_p@0A`#Z;-Au@r;giIkq(I(z}VGCuzk0#}U`Ad(kF{RXK)trv9q(H0G)g zBr6WMH96~Co!f@3|Lw*k`yw6mrQOo2^7RjA(bVGw`Ni=`Lfc1GZ!Xh=tRQdTn+2z| z^x?cRV_tj)*DTkC$r;SQX7uzWZS2sHnTPFd&2D2HUO$~Qr(5%CnSaM;anCp#pUV}0 zK>QT0^SRFRpHJj^BhROCWy}NrGd#Tut_g6osat)m`kz<(Qt%(Nu!vi{8~m4y)!Eh9 z?C5^=OPDsC;?qv;R2+Q7fsR$Q-9lVx3ficBVe+P^r@CKQ12c5Iau6LaA4Esd@T=gU zdY+*kb5=@L{#eEh>Kj45;A{Hxzo`>ivKM9@cK$p=(_1ND?f(u}<$YvOedv*aep}em ztGudH{jpwsN8hXN=kZz2gQw{C2K+4BpW~a#lWnZ;zhgWXZ*BE)6>cSH^rZiMJNLg* zc>&GQ?-!#B&@b`xq!V(b+5@>)SqDls(eD@yM!%=2SM5E4D>jNrbFb(RAAXSfZR?Bj zf!dlA)`5S$&y&~+cSDeF%QPp8A8!@P zMXT+_kk!)rKcwZXdFDr64A5s(H~hN=+U+yw+ciF3<0xZBm7TIDJaez=rmsXJuOBaW zN0H9R0Q8V?V|R4lD419^LboT$>}{G z)>w@$mrv}Az$L&JfW^SYz(v4?Ko0mk@Ht>MkOBT3_y}+sAiMZf;6H889zLHdy42Xk zja-w!biSVeFpgBD^Ns@;<4#7;t6g-68GDSM$>&MwIE_IXcfcV|T6lIqm#Q4;Kgukx5FhZ5FzhGeOC|=w zD<9t5p?CPqHRfZ7qGLOW7sH-H$G#|8wPahNV<+T$BN_bf*csd4kuzma3qQ`m)ZCQ$ zwU?JMQu-O5L(b)UAn)uJFE6-0P2NC1k7xX78r1e1)ONq!%)u)QVw>DL%Be4E4scaz zA>&_|J%^k5cYyf^;^cgZpO)XP_D7IK>=rj=>gDXA6tS|@DZkVYtLps+G9$W*Mkhjx z_kn|13vfL8=c{l)f0=PlemVID!s?vr?yYHa1AF4{*UX}J0`rjFp_K2#q|5=sxCF$x6Ywk((9{gzKJUaI%J$e_p zG(b6?G?P53~nc~yK`$@*_>8@uk8U(J3%u#;Q*^1B?}>+xroY6O zM-3`NbAhpZ3*iGk2|kkTm*Sml;RI;&km%HM&%0sNo6@>k$5z@GsKUilN({{f!n{(j)QK!xY)xV8hm z+;c8z#Rawj=kt!fsx0Kn|J*Cj1JY$baleec9v**%$C`XzkdAxsb&Z`~Uu%ANdH>kym3xF= z?!i^%Uf`E|2jv>y9rnER<0J5^@v-4QGX8qTdppx%{IK*ve9-}$+yjdE((w;Iayb8C zPC+m1B)f9#y&%fE5rAUc1fiq7i>)&H$Gss9G*e`)`L`k$bF)h!%U zKe~RGwsgKpSzo2Bo2$w?@~~aY`q`keTHd6rFH_cnsZ;26 z!Jx9fF{muY{$cxz@jw3a2?O-HZ%|ol29?FwKWtgpHSzYUvJM+Wudh(nqA`kB!{5RD zV7lMOeeA0@{Kec{V|Oyyac5hmtqXnheSE-oMrXHlA#*o1r_hBOv#~A3=YgDIf3(@D z!dmI3yHXEzGp{t`)}@SF5$pu%Pw}0;m;dG25yw)u=EQ+r5&?Hl?%Umqow>}DIU6|j zgObLjyD9S-a7;3ew^%JD%SK)^8(8mY>8V3555Pab_#KU;mW{KLtHvkbSLsfT=_k-; z-7}U|j`8i?Kz|g$MdQO>;Pv}|^)=i_9i5tcWAFUy^}dF$i|@fxI6Ovv&5bmty3(X! zy@Ge0<3m<~xH$)SY7FP!1Ji&V#9iGCbp8=rm^!q!Zsv^zaA%IAxuZ9~U~I^1K6z#t zyL~KU#kfoO&bZc)%FOKPOGS;YVh+7>EBd4^wVpY{dZP!h9lG(qdTTO8-f3=tE(lrp z+fysu{i#EKJK1=LnZDy+u#6WW*79_gRwU2ARI{7he?wP{$X-=?=JU&q%|~D0hcN%} zT^}xD7qYG}nlcipb4xcJ*H(HE-4UL1O>g+3kJwHrPSd^h4@^45~h!)+Cc%?6KKa2XLBTnZ^A2WA*(mkJh#^1PnGg@PntVC%~4tz7R^^pbP zt9X?|Nn`NkUUqWK`1{tvPc5ao+D&c^yr(fmx@BggN5k!E59J*K?`qtf?9s@Kn>s`H zj#qTf)qO7<@anF%lJH?otUyJ$yVs`xc?g57%LGNliPBbH~wI8?hL?>*~ z{~~WN#%q539nyI7V{eSV+%J>yVV5>wa}3*t^^_Tt4$Tgd@z%e z;xF@WF?4|9FEi!C=-<7#PU1S9Hpot%!Iimy;RWgQD9^Gbmr{o2r-}!Gi7QKZ{vsg1 zU!;gn51Q6n(478(k2!Op-Ti#f4!uVgg|JDi?4URactrjLtr>rUdSjB?;xhD-#*}>T zIh2piDa#ic;<}Bi&9#SXigIJD$AwdQW4mbVz%NJNJn2pbch3DcxSz&5^lN_{%PBm+ z8Q#agL%gxc8)^pOJ()U&!#m9+Q+{u=rh!je`bV;ODfE}0O4p0I;+u$nlIuZSgIEsq z%Sy>l$d^U>!{agE&xvm$E_u~@#plU;F3*dLjGvjMoQ-^ENpkdQ^i{~n`x8dq@sk*x zW#-|5?<#W*@_oADiNm;_O`5~GV!Ook{%Gv#KsTr^`Q~$!Eggsan>kL1cWTeY?TMdX(}LqzzMt_#aS?dP1it=Xs)ov^qqWq19c+M#y|H}@DhJ$UL+i9gPmE*0CGhS21sgx1+X|6F`_(!DgsaG`oMT1Af%gAe` zer?)&G3~XvUr5`(D8FBxIEH+o_5$9Y1D%BP9cn|ytM@PH-vm0^N=LshwlQH$}XN^>Om>|oEHa64iUZk4}zxanKU`)2xP8}AiMRYO^#y=3Hq zK;HTPx#IMX*0)>%|MltRMgI7<6?{Yw<(2InrrZFBUx7nFE7hklTlD#$}!ZC%Kv8_y2vo+sW9dx~lp2yV}3VJKJk- zzg&IG$KzJNuJ4k+T3&3{PLbdKvG*r_ozGK;%B!xUQ*8y`4N8N~5S`=)QEU-`cLq`TTnbb2%&Jt#b%x(eXgaRe96> z{;=T(*^7UH_QF9nq*({h+=nq*bUqoHGDg&jHsZ^teVYiIz^o07r#`dBAUmD3%#~`f zX;~MVTV}2kr|(!px|+V2TmAyi4d`{7a~!b+W#6o4PGs!Yhmqk3IEHx^FPkxvc||?A z#;{*)t5&uJ>t~&A1OC|%?MDt)M$(eefp@RUM?~2W1Y3n~*t`wS2?OahudRBg^f6yg zYaXKbs5-{S6h1)FK;t7cjf)OTxk7uR3(b5iDLZYp{-f3K3)6q{TY0`i(So@_T=v#< z+AN#+NZx6zVoa?NP*uU!u3+d?@OxF56IFVFi@5&`AUmoI$d2j;wAT4Npz(%vvdY<{ z$pHA?D<^V&mg}zp?CpyD?oR<*0PO9`69D6IZ&{ z)%_ywFC+h@z<+Rm9`FeOo5=VZvs}*sJ`Q{g(0UX0%^TKb&fpz>nO)Xp-fX?;!=yb0 zmfgL>A?^oH|_yHSq$fnYI_;WntTi!l>i2Uy( zzw+LTEh-(S`=4k}tiyf_FMYpW80)9Kj_+vka(!Rl)*yomyv;gJBD>5@ zsvWs>kCiW!KUk2C@zTXfr#LI>t6dLnk<>H2YPZH%y~hrZ>%SW{_)K159>|_0gM)B7 zhq_f~P42u>B)gpdEia>f*52?P%RjVZ_3d$L6+LCuqqJ1NW zNRuZ`+)wi%(!_^I^F`8pfN$(a*4VTQO>%rYoNr@?`1WbOHS;Yo#J6+#X2XMunLZFc z(b~lXpXdIAz6lrMdHSoKK2a?5IQ)i5?pv+ak~R72lKQR=d6J(mQfza@hoRibJt27B zx`9{=cu{&HoagKqt}$pdV+cIb;9|Ihqr}qu zD>kKb?TI7KVDDw&ft=!$ID0w`kKqqx&RIXwTK9r%#4!JctU+#W9S<$cJN%L92Uy!! z=jwmh@|9?gn!t~ywQ1#58OR=|(IA7u4O^i-E!%W%_iOkm%|ALQ^99P3Oj-G5<6`M$ z;}{>YW!AaR@ZMHm%L{-Y1DoO&1Svn^<#cPOf(ACKD&9xr2jV_1nQ1zP*|C74a8i zV}lt_9Pu^s!G8`NzA4`ykh!}1#fJ;zTf?V~Pl-O${!hsWHX&zd>3+8S(+v^bV~>uv zv=<_y{V^-GHYD3Vs9Sg(NBzH|>?vP|{$o1aksX}Ln>(e)Diq3NJFdVdr#)ZuyTkd- zUVLuLX7>Xls^W9=uR!}j@wtV~rhVGCI9z=0qZ{8?UvilGj@%9PEf}J{y@#pqH_`Xr zKJmWzQ}c7|K;wH8eWL}9pZKlK|C*s|RopXnV1L|mH2Z9?==w7K)gSl#7Ib})eq6HQ zjdZOWrkywMhIS@~sBh0<>bq<=)K|FvjqMwbZ(iLE^-UR~zTxP(JNV|&^>1w7=wax2 z*KTOvf+6Y~GfaKg?uPnyeC>_xOAJ%rCA*=%_95yUKTLf`?S}g5hp4Y+nEL8=Lw&bh z_eOfghpF$ck@v3Gw12CQv5L6BvCr06@yi@+D)w!Joz1WSE zy8j0EM{zH|QXTt0>TLXR=ts^-K}Vk1{j(T;0><$y=YPm2l)Ret1?ov#`@2nf#!pM* z=4y9R2jeJvJl2o2R)$iH>p5(}BI6}{Hf#1@Rnk1`F3O6acOQkmRubEQe@`};J%O{m zy7O(UeYLrb9c`@Bwwdyh*s*`a_ahvzDa%KUL~<)ykC+S&Jcr5h<;$-cEK`RA7IH<&i4UX>rzT>;-jexsYrVj~daAUX$Q z`zglX=e4DtvmcU^+ZlG|6T=8?oQ7s-z4SrDZks>akC75l+>IwBZP zndj(#fMyRNIBO5#*GLoWBN~x;cjGB`YZ<%MT@DSR*oy>gZ?~LGPaSlWU3v&S&^Wm> z3gP0(+3X`Djphi@+w?^*aRtfQ?d~Pyx3I|$!9JrSn3K#cXJXb?_Fyu1VqXU~96ot` z-m0(N{fyFcAF;-i>ss(Zfr-|eFA%G+MCGj-F{x#xwj9>dnb919hA4OrQJPNJc2xnk7m+Wjf*|KRFlJ= z%$(d4Mh0a|4&LjPs_G*<`?ojRl5b{obGde?%_hq7T$3BPw; z7)h>k+r$sp*H%}dc9zj$+Fv@id>b+n!AGxtx)m8Pdr7;lq@Oe8zsUygfL2FBqdY#b zl+KvqAMpj^08^*(pHTjvltPE1H^O;OcgS}&ikR4Kul2+pFwMJ2yac>7YJqGka~leRk3%!`bk%HD|1O zCt*0KM%!j$>+6-K`nKTdD)(XISz_xyl6Q%IHZI$k`txn+Cd#K|_ zw$;U-jc((*^Df&`KTD@t=*#8ctogoVu@2f<7k0Y;Vw^iEYOP${wV!Ks6w0Hz&{O$S zd*qk0kyFXdDD0AIxxqg&K=<6vH|na6%|_=BCo_!Kl~SJipnWV)ec72tKkdOe5~@#U zNmSQ2VVC;;{>J*=Vm_$)W?k*oS3R#E&K|vMH^}H+L)5p=Ffw)RZm6$m%^Ta-I81#U z6+X~^?^1?4hNy4cF!lYDn45k%eV6sUHbi}U3{xNbQQmWXMsBcE6w8PYx3)%pE^L%! z4m$;z!AErrc2;?I)LLJ|b((B!^p$C+(=rynVZ0f;#ZIA1u+t-x2j&DS`zEb1`{|>k zJ=jmHbh4Wi6Fe0;)tur-e2-Dbja;jBkp6YC|3Bp~_iQu%-C@>*_P&E6lzR~JvG_Ug%IA1;3%dmv~}l<~W6a;IAy zX>I=_F_faw*|e{sd+c77F->LR+qCjpgPUJ2zxvj;FR{k`yzp*qU)eWWt5;0nDEeSO zu5+NR1&)eK`FHLe-rfHy_6+|+?Du_QMEC|;C-XPs|4goSe?t2EXkQ)YddOFr zb`Ef@BJ)CQT%F;eab^-Wknx)qSG#*bkKufzS^irY_((UZ%-g*(W3kmQ>U?%{CJ6t2 zWZkNq?wa6^!X{9;?2mJs9dLrr>@NLtd9`~ewym+*@cWMU=XcE`Si>N_=9%DV&N7g$ zjxZO~x%fdk{O2oUysNpf(5*RayrY#l9rM@xDa7^a+_?E=%|lZWYvpKb!waLW6)&W_ zMq>LH%JHscrMlbOiH%$Z9VplH@irtf#NGQgjA-%{F=C=ajF=HKmf7uY7FtR!&Ag8G z*0gHhTfLdn1$oCqBc(~^XZEmW+3)`icyA^D82<>g%U-*m8!32pw4FJnCze}p#wue+ z=L0)>*RvXaSgmv3rTzYD>gjH^=Y^1T%{q76(cpm&l3je(aqJ-^?&f*qQnsAhv<5m< z&u6}jJUR4lwI5=qU*?tMOD#eE!9SRbM2DG+>`^5%@7Aum?z*?HYtE>q-Mbtgnyhs% z26oP@YPxWy&I;u7%NBG&4+nN|*uqa^dv;1%>8o^ij`Wwpk4i87EuH)*F^F zl!tYm_{Rq2xraOf@2NlEPoDoC^lk$0ZXfink$1Q8?%A*HXYiHHqH^ zxOtuCRc1%uu_!n^srYrcM0nyO!ld<$qAeiNE%O?h|GRJh+r zy+;hfb0hB#9rW%x-Zc+;x0ZJY40`uf-t9Z+-4(psd(gXf-mxF3l3L}_LN>T)Dq391 zH)D?@4>tCAz+Z!H@?B_=dv`XuXwcQTpQ|>vE6n0NEb@Q}aG$A5SW!>{vQ zOu9gx-t9VH(6*?>Deu@KzX;3pzB zBxGIK9?g(1u$52a-ojRrZ)*NO`x;K+xyblZlUq&|XLO&qvu~osI2y(NsrD7fHznUI z@iNfmlO?UyTbXB=FIZd8A!eC4kbyY@zJ@=^w+tRbp5+Ani4S96TEU#_! z+wcV>_uYhT4Ly>c|H(ma<$vnj^M6<8Tr!0Gew#fN3FbU8f6nvGR|463^ELDhqU zS23U9oMvbe$#1~-xxqch@3)JfUs~xbuWvW;pMi+KMnK$3|6Eh+17AQ_D4he3UcVi` z81M8feQ~der8~WRD(wp1MftvnJSTyl_`exH|Fc7^iOVL_yl8N&NW9v=|1ND@=Fer} zAsjVV{u^g}Y0Q@0>r~;o3j72U{LB0E+-1=+Gjk2Bx9igifQr*0qQ5B?Hu zW6)rf=xOHcnKHVIIosUwM<_>e+Ig;`UqF}Fm{V!3<3E@)Jl=p@kzeJ!x`!uAe}?Y& zR=s~&?{k@+vzV_1bC*e!*^J(@i)}q>TVR{3t=9ecPAGG}`UJYGO~jFT{u0ht3+!`^ zRnN2UMLtEPLFsz_7t2dy*`Doha2E|Ili08RGI7TaS?1x)2Q74c4RJs6iAvWgZ?&F_ z<)m8&^xSupC&L+Lq&2!dJ=_Vw^!rOyJ*VCDe2)f4O%5N2&b}65JsBQziXWD=anSMilK24s$W=O+(TF;ly zBc0seP2SJiKK-TslZ=XIn(?j3=Q0Uj&Q0uzY1aBPehkU4d_sr+-SbIECtXtM+kP}Y zJFR{8r8XPB2zXC?Wb8BEOP*!d$QNaJio8>$4=7K5fE~!0_LS=^!fIKOUrl`7Pyc*X ze^H*+)T(*(XQWpf)SjqQ=)M^I!?anpmez9>Z}(&BQtX}fY2U;B(ddgGaaD}0;stfS z3%lUr+86Kx-rus9w>Rx5^e_9xyt4c_K4hpt{!ijVjlVS<A|A@YjoO@MtI+C7f~Ym)TGG5_-6Sd{#2kGmrH0BL-{bFVRNECH_Z# zHGQYG@7d*3l?ET8&gPwId+Xz@hd*{A_Yu-5%?W-vd58@tGAwyGbI3$34e^D9qQ zFA-0{r_zysLpRG`WZK}zt!Ui~`?f#LE5oEYRB7N7t)-6!pO2~>3mxd|*&q%^v{c{q zD&F3&cPC}aS2CC zEHc-5e-w^2{2c7XpbrT<@%-H@r0w@g((LC3*k!ct$~^~-0qE+V~IpQ{=} z?xbID2M>ckxNqeCyVO~2*Nnkl2+@WZ@+e&8w-tR3qz|DXamnrDl>ac&y~sY20N*|z z*Xl7Zz*l|nhbmkHomrhWz*T7v)c9ih7X6(s8od^bi`D%)nsn86#z@&Z;4FOOPNDnv zoH})_RpZ4k!1rdYll$#?2_F0w z_=z9hN+y2ekKrcmTlAgI%+k1L()w)}uJ6o#Qqq1AngwH;aJ~^-16r%kzR2^^cR)*> z)%B)h?;v`XNq;DE`P~=#wzKE7zyH{G)K5dv_c8VrnRNoz1I#+X80MhZsi%`}7Ux8Y zPp*Nkvw42%PS)CiyMDkL`t96vUGaU^<+<+yUj8rE)W6I6JlWUB z3u_tK(iu5n^m!H(FfYrdY0DG>?xsX5Nx<4=haDe@Qmw@*H8aMOn zmgF5K+K(fiW>Vfx&}&v5RKVtRIwi|Y9}`d_lf9{iHU zc;V0=il5OQs&m+HBi*C>1>Cu#v8X^8rU zn_u6z8|tf$SN$)_bD+QML&>f5ZZKZQoNG)U{PQpLM}ABX`+4hwIThpe*k6)&B7Iox z8`PfP>NGcz=KVvYnR4+UKM#GXwLs062gk#;?uIr$deIx}8#zpU>??ZDJhWhl`f7%$ z4;g*W^+hH>PCW43GO-EqYWknev*!HOeYE*P=H~RXd^r*NSpDA0e*zVgD7!2Ko|3Vl z`T~9No^chAsQ#etPf&MY4~nnQM{n>sE6;Es+hjn`U`u2M=7NLgr_<3fo-O0guYJ?>l} zev+MctoFO!u*|h|{s4Ow*`MFg^!RGCCrsaUCV|qP#N0^fSck7vzrU3;DfAvcw3*w~ zwJ6pXf7ilg#^%)+@f5M9k&f{_buG(W8qkpazT|wJYhu^3r}hlQtr16-e~A5B>~(B; z$Q6(Ej}!UoH7m{xhdzBB51G15zwm4)HAiXn|EI9b{7*skm@?p5&-d-;%~s`|?Cq%= zm_ILby){hjm4Ar!=kGb8m9fXRLA+eJWGq%*Xt(J}7f1 z`!mfsmf$5h=In@g`|XmUPEUq1r}kJKw5dP-bJtjxU3h7zb=Homxh*<$S2^P*YVAFSjQ@*PkB5Lw11`F{#L#@4*&4 zXZdunA2L1@)uBA%n|-LO?)YWy&Sl6IwAETTe8*lBzZ~T75XzBkizZ>eenS(+k(=c2 zN>|Y&T}2bhh=?ZrzMf_7wc?*#AP2<%tDam{o-v%g0bR7-V{8g&{|oYjC}&8zlV5xo z_>UcE^i|aXPM(eB*HMiZ{T)#qW-O5GEOQ?w&&eFzt@8mx8I4(MyfdS)Bcvm>pUm(w zwBW~<+jWkU&K*b+|EPZ_%l?cJ16g+={|+PuvaW@_KKMtXUG$o@DyX_M)vc} zDQj=h5tLP}@33j!u%}05sBeQk?weH(dxEsDNBvT5hmPg>Sn)o7o4N}J;=goeknkI@ zIS2eOfi8*dLXUP==R-(e4XJyEuswB_Q9my5EVhj|9#rW-oj+9F-bj#U%)s8mpZWFf zg6m+tHwaf^3XE^b*u2$i0q9g?pZ3dSyUQMWWO9uw9d#&i1nOJqlAR~s_re8#V%|u9 z$ISYy#=ZGvh* zaqyDg3;k7gN6;2*6k>Kc2V!ggf7uxOYwZrsIV4XLG{W9*7}>GaJ*9LO=UHFYvnS_S z&md+b+))@~ceG)Ca8KH}vz7RiIpuG0PZ^vwR_H!Xb>tXFNVD{YQEm=cbm1s>0Wc59 z0JDHR{Ah93YB)#?#%oscSinHcPiH@z$BmL$$i`=hj~V-wWPdFEz{j; z&OUBBwU6nel(i3j-dqoL9qBxNs+s%PsmI;3#f#8&1N#1l^qKkxS!%HJTNxWy_MFXg zjy65TyK_E&YEP)JvS%bbI08C~ZXY9_VKME|nQv+jx~m~*-y@VaiarcM=i}(VW2t9U zex*6*Dc3TJ_d1VmtHEI|?bbT|v(diosz>t8SZeCo(M^AGkA1>fAMC5++oinAErgEL zsdtZ&&q^&X30EusOfR-|CG0FL89aISJn3sF<0NP*J4f%&SGnZRjZuF*0k54|Uaz)u zuINI?`>)8}{8ywAxeU%@pDf#@_yn|3-*F}k*Tc{^W#ucfo>-h^;+UQ%CMm>osKmL= zj^52F|CM)P#>{XDe&@e(!F%-FO6>58YzX)_9D-K!cn(pI&VOA<{&T29xKPi^Fzcov z>a~kcZd=H|iM?-`TFO}eTk_S=wq;yJ$35sT*|mla^w*zRPZTY`qxxvG&M0eMD-@Gsn+5@bkZYH>P`CN=MLs% zdr*($+R|7FXdh();NKTU#t);6gw~ofo-aI>-x#$y$5dy*Vv|w+8D$O^GV}O3rhl)+ zCy>#3=@V@y-xKxQbs67O_hzmmGU^xpdBxh1@G|29_y%}BO+RVe6g}=znfc3I&Rv1_ z^L4JH|Nq8$<;Sp<*x5!ogv{}uNO&1Klz46j-$MC8lV_v*EtNriirv4DcjqHS(qGW3 zR{!VKSa`4BUdcH-i>#F~e=JoHo$=<<2S{OlNu^KzzQ=!-r?{=*CEq zJ*z2iuBQLv>MW@&_2;ej9{p3ZXkl+#SCvjNIAzMs$X6HtvkfIqFYA95ECDg>C%)#9agf{ZJW_v zn(Wtweuy)^h;G|wr8c=*%a}!eZ~rWDCGdfVL*6~QM7`F9W!cVqk0$-ZzU|aqxgUH| zzqYMeudsdry!>|$Uf_BM`vx}y1%9k`7v0qdB@lXx8bAU9rt-F-IHXT zJ2p!HranzGMwxBEb1&Q0E&t8B7|_}I zT3?YmihlWn`C;@Vj~^)e81ceA5sw$HXpWUvG|w!rqCIPBTMbX|KfTcXCBF@Chc7Pj z(*}Go>TU4Fk}AG9n>MbdjpF?f_Ziyu(iYpQqkS)JLnr^0HnRTrC~))I*ZLB)Gms~X zvrF}V;|&keGI&MzgRhOG4|quSrFc~No`i=29$94a&+eA4k`Gn?O}4NLGzXWCH}M^e zhk9o27CP8(v-(Q)ng5OZSI#T1nExv?j-ZcXmL>mgMt-(#ivO`XYDe^%BERs!e?6;lg`UGwMketwtqj-0gX z_G^bPymQC&P2(>#W?ve6`ZQJ>8u@1$Q$DiCcsrN;^e^S9O&0ZOoZdm6(X>l(-=?0! zJJB6;Og+~QuE$|t9`z)0t6lMhVhqR!&&(-ntWf`%KBs@x9+fwC>aTmPVxhcgzmDz= z|DFf$d1g!wTVuNQ9lFKPechqSrLu5&DU9D4`~x~JhlVLYe4#SMJ3+ZBbIq?*=7L?y zgfDg}^VgJF%_|pD-adYr2lG$B>TjRneH|bkNB-=a!}!VIgC<`Wc{~liskOa&2W-HxqSlr44}R7Cr}UP+!-D+|A@tRtNE5~tD@(i^mn`C&;ajB0xjw}NXNa?3RPBaO6&noiZ`A8mC-A*}vg&5vYKFS- zQ|tVoExA%}J$0+DMxO0L82bahC!Kf=+a8`j6CaZIUsB6DyF8sfv7GD1O>bH=KIE(* zzIiVk@ zd~0inJ0nd25Y^4Q6n$GnpdNx@;trFzl4k(cB$WA*s$#5kj}lrtasUz1z(!7 zLX`C*zH>%NC1Q!59nhvw`vT9>5z3bU2j(cIuV+bb(br4U8(r{qa~;r*wWTHCoTRK| zlGsy6^Ma0XNo@6mbyhdR6d%R7&#8h7tb#=kzeOICg3k(JGynoV?AXgvK!n`VL5Z0lX_O(u&Q(rJR_Z?c!nwD z(fO@k=U%*W16T10V3zu*hMB&>Gk0QHpJ?%qK;cD}x62W9IVbonF~aW5QWg%3mHOUmElS@OZp1!!yo#tv;*N-EXcU+URF*<#5$9TzSP43DP_{6mj zz!5#I!dm*TErGo(|GL^lLkz7$)>5@E9>UKNvl`sRrf%|-IGY6g)raCsD@XtFJOz1_ z3^wMz?jDW)Nax@&wI%sTd72|x!^ezVY5Z%W+&b0I+MW9G>qbWA=-Qw@5bfc^e%cp^ zHI)pdp{3~j4W7e1(-!)qzU)w*Xd^$o+Q580E`AZ+RsJ&m|EuSO(^?YVA^s^&U)7GF zzt+I3hPOJ}P1+{DNBAFs-kn1})-KVFUY{v1dz8BIm(-5vD1;N_sk1h^vowyP11YoI z-~ZrPlZ(L%^L5VpV>V@28PcooDZib1^-giux@U|lv(6H~k^2aJJkgMw7Xy8 zopixRq0bjhT92=6YkXO{y}Iqv?WR4nd+HGF9s#eyueG;P4p+ssRz#<%hVGonLVb~B zyNg^P19L@VQ+}OAKRcXp#{7_T%NvU1)4S8TE++2lpFPf$uuvw=oze z^*x8pXM9(bVP)}WKv%5$?ixd*Yusqkrwg24vkCdAK}H7vl5$1=yrJ2=t$(4xrXU$?aLV9gxSx@Iuq?`1kZZ< z%1(w#Ba$}nXX{@Y@u(AG9%ar&HZm-GUp_TD`R-_DRVfNxlwZ8nEZs#+Q^@*)@&8z* zYtWOlF}>Q*On!Z6fUJJq*oDjss3#+vph5TvH_;~I&y_R}-P~$hZ^b86-p>Qs&GS}vh^(D#wEcxH6PVnq6@1+NcVft5J->oDvFAb8aORp`Z*QHa@3p2Q+?J76>Cg*t$qDbuPjcSNl;kGH zR)D;A@|s?)i&#ni56OMlxu*9x<;LKyF7%k0e`|UiTt$!Pie5c~>2Y!u zJqF8)ITIeAj_O}Ue&zvv#{ZKpbay}}>6c__qr0LgK7r>-A1~P@`SC_Vcr|>7 zJ(3EKOBYPtGgxV8iSxqcT8&|&|mT#C5@GQim`01Sp&p_zHNl} zZxr@;vF-(pg0eM#aFQ+Wxa{Pcls%mP@z*9k&(nP!UHHH~J*D&SjqH7!GXVn`RNHLY zrT*8LYCGK1KJ2yaIr=vTpQ)XJU)1m!{nGb3e1h(Z!b9>uD~-PW!+(!$Vf=EUK@9(b z=#Rd?q6F9=K&jlE?_Be3(yYafEhprXavNg3G!6)D1?|8VNElfY3+$-K2Z{{hBFV9 zqnS3wB<6$2M#O60CL2XQ;($+8)@!f7v$A&3*F%+M{uP>qA99`_O8g|9(lO;JS7-n0 zA3|YkJYyhpVeBUU7i7-nQXeWdNbA&vx@+9u`n-gH%h;*G|4P(e`RuF$ZObd>2pdoB z#$JnLX?sU&&&ZBXmJYtUt)#P=slObD$0Ohq?^4;s`GP|Pzfc5x?)U5IX!`9q#Xk}k zKSr^1vP@jXp>{z_k!|$1zC}v34uR8oRtaIIQ;po{FvRJg~o6& zHq)Q>Qrl!B*vWipkMtAxW4vcC{t=$G9(O}oXi9%+o+0{RPg5WD3$J_$|K{#U@m;_MrA$@-&%x-9ClsLPsR*0~MugLgt}&hQN&{IkL_pHU=pcE+*O&&O`agl1f@yLV}0ivuIOC@O=`qXlxyel)z$Ir zm&cg(hmN|3-0$OO6z@vT3X$c=!}1>Sv3QYjm-+o8E_R}sJ4=SbdFY%v7k?M?oC5Ra z9P_%gcy&Ev|EEgRC%2$CIQtzLYsMcGfk%;3%@=nhlo$B zJ52eO=KaZ)vMZ>2t*dfXzrH=9y5R}&D*F){L@S%RG&dLSLEE3_nS1$<&Ac@REk(C5 z{4yy6E#ZMwUc6g4Kzq9><4E}w_&zzD5zZfItG6PdOT<1F~skdwJa)n zNl%bBY^B>v5$I{9E?1d`{*qCH#gCV0xUP4cT}UB$m@i=Br~>^*mAOGxbkXU%cZM`Lt;q?M!JbA=Ua5o2jh?RRd}`JFo^^+@js?#E8~Rd0=+S^pY4?fKrYUzXat zfVE$IFMYCukSpvvd4rOoFrU9t+g* zt{!Lv9H0qk1||V1zE1{@0FDHv07n5I0FDNx12OFId*PRePp{33Ih*?RzCO-oY=Ap<3^Azpj2>b_Y8VBt7 z2t55&p5I68WhZ->e@@vdQ#|eZcK>ah`KELld*4gFiwD)41-fITcyN2fp)O+*yY%4WHyEkq>XBf|A zySCMOaTnhAFg*U%f4*+wf3OQop4D$7&*kI^+MY;mbdPyxpxxE)m;7qrz1dIKg-m6P zAH1w_HB`Xf$Rppmjqb~@;%Df{^x$BR-^#t6%^P3BMYPStNrS6&$kTjFVn;I1D)(}) zJw?O>U_Z+KU$~AVmXOsUHzoFt`t?WZl?Ufrznew{_e%42b%efF> zE!{Qya5W~+#b=Hk66mn2z_EGyCb#(j&xaXFuXY`tWuG+uzT!Zx$<>t zy&}Rqr>U#WeeHow?rR}{b4}zc+qp*i>#EYrH+nw49j%+pISntd?>t_(s`SFS*c*B5 zj{W)9WA3U_iG8v1KhMA}R=o+zRb8hf+K7K|bEoF8 zr?YMDnNFL#psUU8oU_U8d;kdHo);g!yKc+E_=8N6l{+uV%R=FUrkp93AbR=e4bHutVI2*2C{+(ui&m(#bECSi}1pfmRRC*hLQ~60@nc>fC6wca0_r7&;{H9+y&eV6oJi- zH@>kpPrx;Ov=4$6Ja+-N0n>n4z)WC9)it=+`=G1{ z_pg0+04$!9Kmv#X`mT2`lja3r8}OVDkLww`#;i|v&==?t>6vO>_1HhqCpk|~eT93Q z`M>neOwKTjI_M$vk@UoO_?9GAO8M{OKG0KU?UD4;&`Z)$_{&Tkcc|PdJ;k}Awi=f9c!_>=ne*gE3xj#CWY|I=eee*d2y`~Oal-HF}*{|7ym zyoLP}r`guyvseM*`Y6}VkJwg*>-oSm;5y(opa?t*>;yVVy8+nDeS&Kp&g8=DCP{JknbJg7m89g1e)hM+epO$Po27%vCq#PnjfwHB8Z$I?w#OGOLuhkYib^1e1tlw$< zR<^C?1+p(_JM@7j_(Nm#?`=K~Hw5|RgS1NiJYo2Jq&K*)9U`BZ_vhyHs9%KRDC&gY zjE~&&z0dDvO$Ztv-@S`#k1tYkFWATwBnWb z4VN=RiQ{HZwRH{uIT$EUW2)AllpeZp&%bd}%U#b;K7;iHXfpY_-r!wzKYW&Q9AXHy z--Y{K`sh5q1$|VVXHHd~h2#TV2dGJlT!F!kV*Mo0$hXGApD5i8vHza`Dbhj-`6&Ia`{$yNBMbc zs`3`et9s>kPB>%SD@NdBhtG53QTQd1s&(xw{gTR;mZlY-G0%(B^7pfdh6g!Mxw5+y z%O*Wl6UFz>^M(+16SARuY^HL(??Ii~ypynMdAGb&mqZ?u?cML+%Uk1aecto4TRN|W`p`M}mT7}C)}8x^ z%F=mU#PrgpaB6w!{A3%k$ZFHs<^66fZTa(f>AKZDPk)ZI9n4#~|MA{lz97$13t5Fe z38w@7Hn;nH`Qo9A_7hk+Vx>7_@*rpe?aI*{?I12+@rUgFEk_)#0S(Z7I-?^`Y-A1Z zIiGFpMCAj=*8NuZgeJ7`AJb($)(Ii@mwNb${)#_N;Hy^MP1GH+)^1b$vH0~^@>hSK z;Nupx&hADRuNRJ6k!$H}(M9#LU!kY{F|UoL4dBVz18X0J+JqxIYoF!vQVc)c{=$#` zzX|@{2!E>#98%O-2iQ788+%Ek29wlES-Cq8(Uk3kCsHmObeKmUu)<2{=p}+btsN+=nvId;B zt|T6>#zp6F{FS=DO+7#IanPI~z+nS8y!b@l_9sdABHs(b$CsIB_VD+JsV$T%J?r&Z zzLbYwj8ED0ZHFs42v7A!b$#7-``lN}p@@=a=?cLINwDWpT{*zy| zEsb}wFLp=$9dEP#CDbpQ;_=l3^#^U9m)YdbqYd&ogi~5;@%H*H-OrM~@44p?Yx`8b zt3APY>BuMQJ)1@CQ@Yzpr!+e_hyDoq&5UJ818cN>syooL#5|gGKjF+grI&7fD_p); z>)~?UFt~hg5H4T!arrg4jP`Lk4_p{$`lN>ko z-}bDre&_b;JLPIkHo)zpNzRVzr@Ph%)GyxHnOTMJm-WnWUOEjwW)@yc^Uq-N=iA-OC~F!zQ1YO6 zClX(GlJ--IzkviGIgmU^7L;G<9;UCpkL=d@I9B5)d=GpZI9>{F!toVweKQa$!*$61x7Y5r{?{6Ib^j~wW~lzZY@gx#zhmXl{eK~O-m3pU z>-T@*EogfKWxbpJ|MR}cKeV0a<2bngXTA*_|K;QO#kat5$-BhyQE(gyj$K!H{lC!f z|8u#@Rx)!xc-77#TLomu8$-$w{CsAtLyp58{9C1f4)bj%_D-5Tc8oO-TF%1{1?SmC zQf*;$NQ3O9gf$kuvck8i+Pdq;;;(|wgV+V>9AekvMsK7@Z)}nkr6n2JB%CouoRw^n z>9RSjEpDWE9qaU~dg8nzF7R&ICx@Z0MzSx9_>fxJAv!xck<__UE3jYYbYs6vR7|Vn zI_4~Mb>^q?$u3Ynd}{Gnjx)5<=a&-HslANh)Tc^{{|KiGH^_z{24!o+@y=7J0sqHe z_I-2c6D$3xq~?~y=aiJ@8+wSN1RHBh@6W&`1YWlpoF2yJ z^4c6pUT4~E{`rzLF%=WFwi!z;L+8%vW=(NrlsX^y+w0gBvQaqGgL}1$Jw(`RUOA$x zzTL++wSSGNhqIQ`=u6t)NnC~n-R)#x7p*AWJ%;lHcrRb$D*yX{&9b8OeZJqzy3c)l zTTEQjJzOv1sWP%dBRH8pB0aKMt9WuO)oazVY5y7MkqEf{8}(T{q{0R7O&-ng3GnA+ohoSHJ_86MHpRXJC0U0S$ga z+MC~RZD+4>#n8{pWmX!w3ng31AE3{E&$ozZ3oS?37c-A(8!KEzU&$E4?DN>=?iSLD z&nLn+DpU6dabMtGF}30!0>9%C!yo#uQ@}qfOB1Q<1H6C0&$qA7mrohKq%Y|U+4CxM zJm2o(ej@3+fgP`jAJ@AB{I;^R7v(wd+XTKpt2F*TZ~EWpE5(}mXCRe3H)+oCJN0|{ z(}w=n8T}RL6*D*MknMa{IdpYt%gQ?0Wc=rL68Q?AT|b|BpJXD)vt-cxDCg7N{Btsc zePd$5JY6KcCwWG;jE=!3WKZCFHwTY~Q_r!7yw>bPlssrIX(b=VwnF|WBhZ!dak0NU zt~MM)dD53bJX{RF!bs;o&{OyloD$|!-pF}SK7TQ9pqwf2vvm6RR1P#if1@LI z9WPe!Z^j?%d)Dh4@tu_^l>di$lXR|hv*OgwHGH$H9#h^f3sF+!K2Bs=)0B7 zFZPe=pNDA zOFxMCs-kf(7w3_sn*SCv@jNMZBtg%P+{Tz5o@o{m< z8u-MMt@zxee`j}dj>p8f^leV})<$glD5J9>s^b6tP>LqGo)#Q(-;_y+!${`>yj1N`6U^M9x-;Qg-+ z@P1){_v7My+UMcuk9G24F;;1eVSGA@b8U|iKfMBt9t1Dl|ATwA7rQAQf^n}q=2WD?^WL24nG$CJOi?@qVxyy?D)AiX8e|VMJwU3#m9m1 z+2{*12hf=5^S}+H+eUfUQ*Q8%eVG;fNtKsY`urZu-Ll{fufrq5&fQwR!)zEV{(g*(JL36j6;{QDV`(*D-Fn41Q2y?e3 zV8<5|Pud)EIJAwTh_F5?Ar zH_>S>{&sIJ$NnPTE%)YgEm!x#Yn4d;@@+~JkFEFV+jgefmM?VwfN~^9>$s}T^Zoau3OzGUAOLbzYH{%ET$SH3lZZwN?jvnCAd|qTXmF*6^lg4cdZz8^3R60u0g9* z?Y7_d=iGZUH`AFkZQ=LZ->pUMJzmQG z|I;+QB#(P%tj6WH#45-ueufi_yBACMZG?a9i=rOVe=6ItKeqdqW*qmoS`VT>f2%i+ zyUUE@-19ZtM$hG&re?P*V=F8}YEJV#^3g!nJH zzHOY}@IOx%cPvL6fp+NLJ^yx|WzG&Wv@~P6yJp66Y50e}W-O<1G5gVMe=K(wV>y@3 ziwuo5U$D{4cc|Td8+q1PPT@xh!_(29@jJ|K=@i9(gLtiRDEwu@J%oeu)+rw*%C%$u zc<-*q9_IZ{-ZOpmpr^aiv-|2BkT1#A zK+(SX6P|wh@XXxO<&>ko&>t&VjB_={vZ<%|CR_MjS@kjGHM;7Yl4_&MaO)nlC@<+Qr%^OS~U6G})rj1popN?Up#=^_W7jHN% zgpGsUd9jmHJJ4A21LIE^J?O#`{UaXzzbCxF6+6e+6WE8Q&x}cKp`GSC)Q2wierwFB z-zRzUi;gh%ruuT)Liy8XO`S8oX5{w6xo^-fS0Ia;KT~?z@}4Nazs2)IFMVE)Kb(7n z^oLlJR5||z?}W!%@<>n1-uWYW2FZ&q+0(eewlaqfAJ)2;9*gxd`2twk%=mOXI~vWp zXHrVfI@vcu^R8!#rSW}pEUWO`%A9+SC2J`D`iZ~pD7}PCqr0A}gy+k&-h{u0o8EiB z;CL03XM8-;_;}EUENCrTg*}u{Oa7xNcMK;P(>U(RO9tt0wJtwj|`6uyQbR2j;epw~beLs+{iFC#4OkeV}a4~hxYWzx_r4JG- zbH(axdv%sw?$-Hxv+7KLbwr&b^Qf=pKeVP?N_JTPpOKwn^u!ZSV=t8JJ5(T7qH!hq zNi?nkhQTe7GIBK=xBDlZ0^Ha~YUu3aR!XLRIuHCrW382o#%9lxWC}g3wdB`$vT`|R zjQg@x#lDtO=`Z!tza)^pmh|$&s%~e`H?Tt~cRWZN8*Qa8^xKd8UVQ%$$(w#3!bX(* z%MVNM<-orK{Uuzh*$XB4zY-WeZmw?`{wW?GwZ|kuTC;Z_|3js(N^+K1?vs=8#!XW} zKSTA$3DQf~wUb9@Pt|5w6HKy~Hiw=jZz82Vy?s-h>m*&s8I7CF+G;elY4T+7txU3> z!S~D1r3NQp&hlLZuH@PG1rmN0G1i>%rxEU<__aCYr#xgq3%)6Bb)YW3?~Uqj>{M`4 zUnKiYdodMp;%n_@s`1Q1->u9U8)4SO->b6Ve zw>if@%6cC*i-Es@e1>-P<)pvZj=hd^H}(CxnewezZafG>^i#bmscTgueg%|e`gHcZ z(jyX&ZN>P!lKPr{2^@UgU})skArZi91^O14?wJGu-7GyWzZIPisk82aeku!$&y}mQ zht}X%Yq>rs+7qn451N>__|7~k;{vxoKG{k?qwg{Ad!_f5FN5MMz4Vn{`YPz9aLoIC z1i#GqHGLWMT@jQS!>@v}3t?AkuQ{|-n^7BauuIi8qeyOKGMitN4Y9l3Y1F30{Q zXm)ar`QsG+3b~Jvu4B^5DGjtCt$Y^Vgbkzi(+mQqbkv<9f*+GjL z9WrAJTkscN1!d=0^^0SD>=^Y6`_{cO=c8ZL-XrJ=+4s_C4)aDfVMjU!*_2&S#~lIM z>nykq>sG$L3+fobk)CnTGlCIiKb4QieDsW)_s$7d&%ChuMe9#~-#EDXDEejbG3po6 z&sV>=^J8=9mq6J@zXV{v5c=iiobm1Jm+p5Rsb4Ar`o-7D{(HS=D@oU_jk&(cx@W?S zkr-?GeqB08%w|u0g~j@(D`(49X4bQfG-gtpk(`;c*RS~4sLi^`Jx|^_s`2cf82@Sx zRNvT7{5WS|jGgi&&a0x|PO_h0>j-PX-SlPPvdi<|dvYqz^HS$^F`k`~i&y{#bHpb8 zoAZFNEdXQ7JM(z>Fm!LaFMFl%U_3gLro9LreE}FJO7~k%fbNex;?jK=`{G6Soq_uL zbbns}*HZNj(mfe~;nOTN4;VqZ*A#*A=6S#f(!K2+NAm79^MLU{fOiwCj)d{z0E`5- zQG#~k@3YaE)z}K`vC)`g=a=(xAenh?&*8my;d4G0Ee+T(ya`n z6Yom-a&8NxV-CM$y7ih~?`_h#z1?pE^t&HU=u6u@V$`c(tdr`KHdt03L; zrPDr4eZ;rp(P>W)x@~Lyd)>B`E5KiHAK0Cj58clrzhuc$BQhm9k~}${EWOgBwfvto z##DZdJ8uC;55ZlS#G?}279&f$rB<1o$Nb4HTpvx0rQKL*fPin%Jf z@{HM^bRv0uyIFp&%;B2x@!4_Lzc#8l3Y`&P-4Mpc4mTz`A{5GSpZ&PjjY}Jn9p7zC zb$nNKY^T1(U{xF^tUBy|!ILkL=qNw2nv{DM!gKhbYd#o%!}3SbF$~a786`Oj7 zpq_)Ozi!SQinZTJEC zd1?MDgrAJ@J!dS3%#O=99eu@I17~OR-Sj=1YQeroPca#jV+BpY^nW>j>!+B?$^ zIa{vzfmZIE)EvPDvcH)Ja9DGS#+3&$NE_&0>!E2MbL$-l+EY+hm{hy3uIqQzHRel9e zjNer}S0{j}GGgrcq8#~6EnuEV^X4(e!J@I5V@IxaFUzj@6YwiHE*>%uVM8n0j(dKi zKdzC!VZCd)*1@9L`zD(c8<|hIk2~48_kuFCcH5HO$hj8aL%1Tgak7=VZ701ilWiqr zvPpEJ?m?M6mpI9!c;L$TE+e-UY;?r8V2Q(;Kr?H*@{vu(zBk#(T2)<|^-9{h zow)K&+ReT4>%J1$t-z3;SS#2Ce0mjeQSQrNjkr7-qnr#dGH=b*r0)u8j#zzMc^v=P zXSB9(|73Xz-|xnE=j3NYnz8Z>W4?@VL;f3Ea~9v_=cDrqdr*t;wjpN9psY78qlYg4vL{sSJ zG_ZK8c&<**hP4HGR=f4_dQxXofV27yowX_2ix>Ywy1MxN=&k!by_Ls@xpnlGXbt~n z^cHL4MsHDW{4S%n1oJA+t~79s?gB6BQ^lkGt(MO0#0Q_d%O{fYA$W=YFnZaYi$(W` zJGI^pK7_|VNFLSiDZLplYMgi@`fo9E*3ay!`n6(u@EY*-^&sui=t0S&^x#X-gTeVw zUk_eE9{F)e53&wRxJ@#$Jn88{BDk07zRA~ndZam^N1D+iEdf1}M2{S)GasEq2SbA+ zb*6kHd_9?b0rg}=^(vw#zhPuEud~g%5N%j}N3adc2h4B7w+7nqKPVo4g%j81k~w6^ za@%rC7MWr1hH1;(*P}Mv;>mgI9Bue2V7Cbd?dH7(=h?dU)x@a{o36>%S zcMOiI9cxWZ{-|op@0gPB2;b4UQPY-J=fYlF<}M!A42!hoYiGCRFP-VO0&V#_ zCEBv|$9&rImuLsUw*09B`L?X}PQNYpk?vUAvf8Pu=V!NN1Gh+9c4GHVn6@na5&O`@ z?Ot0o{jJwl|C)As!M6_YJ$QlFR=Jm4HcPc^md4EJ8tU!0Q^MSJ-OYJN!|?sO@h|hO z1v|>ZCTOr&FHZK*FUX%j{(tz?&-4o&^b6Xj+Cjgt-SjEQO%p2=47>HbNv>Ra#)!B-T2<5Y$_&6AnYRWbJ1 zQjgO~e;c~OjG5XqLs7qR+5Xk!SFYW52>Ltx*K+VBKeMHFpPWFtBcbzt+=rUV7Pp$|E^3 zHZ)<*MUN>@MY3ZVaPWmP?+EV*c6H<`_^$Ok`3tMv3vb;YwOzO;lVdNUzW7HyzLWF7 z)Q5Z*nKZJIKqq9na;a3u828wX)yF!$%b$`ovBQha= z{RDUk55G@>pP?Ugu1rEdo+_TJlI&RpmSkPyiBB3BH)v0aku_uyIlPfEq4jv1McLr- z67Y~uwRo&=Z$Et4_@#e%9Nj^=@Mx)((Ksd@!%km}fRx+uM~SF=+E?&Lx0G7`l(&9ME4c2Ht9Lkp5D-Rq@&S3p>l`FZHi8 z`YXF8*K)1#B`T`JG+!Z@(n%|UCwzlCtRtYqzQf*H$?nt0j?$Yx3R(2^#Mkv5Js}&A zwXMgiIj2y1;y;i}=}rz#H~LBAMqe*QuH6umJ`(?n=_JYVRo?w5{`ma^@Ye7Zy;I)Z zm0MLx?{t^eJNOeXUrD{Ccf`{|y>k)mOKn|xXBE7VPrCGue9onJlDyUT_<9Gw`5C=) zyV@anrQhe$J52_Lt9L~Apx#+&x$Qg#9`7feFGqjl>7DnC9h=?}JYVnpZ1V8lmB<_V zdU7SO4J}LPo!9bRdPlM^z4MjH*?Ommx*le~(tP#Kf`Hz+jJ#Fn;0JcLZFQgJK1t?X zoW>V}>-E|*x;)z0%~$~+hHN)?q%%*6>^KR|b!_BZ$1G<=60X3vAjw&aG0VN5K`;^) zJ^{d}Ko(n)^hM-rh|%Vm%V`D{cNU<>Tl4l0Fq(lSc!HJiV3{?3<{qcK`QC{*GM$u- z&bc1#?wq8~338IsX^g*k>r4h@+VnT#zxteqSkE5-Mx4IUKNmzcsDFmT#^ubL0^2rEu_JVyEYeF|qdz8?R$;kUTwlO#BEt;R}^eSEpKrwO{oG|vcK zWp}cMSk-{O)Nh3wt?tS1jWX9wn{7&LXZ!*UfM1x8ezm-Tw7xvP0(n$BZvbcIGkVzT zBNN`YHomRokqw~sD7e#a#20ID)0mmN10Tk^X3kS{pn`4Y48Sj_=b1}3Hfnta8-;Iv zAKRMK-XHq!IO848D6+WQu{%CvB~z+7slqnH+LMRMJX(wEx*j>6SP`LW%i{OVaE*_{n$%9{>%6c1RVMEQ#6SRDTvwLXYU1!)< zqHvBm>Dnnl`l9z4Q=(Um{<}5j`?d*JGj{@=qe*lTILc;@iDwF?C zXmo2%>&~&b`eo)Rut{WFcY9+WJDE9;xz)=xXDvCri1JmI_;2PP3iy8xyii}Hxq|w1 z$5<={FX3lRH}a6lur>gG&{1;Go!Df~<t<%XxE| zN3~y`@KWJ|eHQTZ49xE)x$8KYSsH=%-9wwkbhhacwvLxZ`(-OK+{c-DC$xC$IQws( z);@g6lIGW*JzcW#*3qA9OpIP)fAOAAu&2$Rd({}xCOzeizWrSF8OibYgS*O}K9k?X zOEy1k;3UTpuI17vW?VuW^XFh?d-!x+MOgUyc9OV0nj4RH-#uxk z;W=kSN*+Qf#$WB6J5Jqo#)tT>eqQUSlE+%;sWNJ;PW0ra$+ARdG%Xn+4mlt7*9;8J zIE$mr>gB$WPflLdy<_rfp33gd$rw)+Pd(>(OvfL`r~mHBRaWO@ipSy1jwnwBkM`CG zSIw6N*I~5&CftQ{jdjOZT?{!$Q?E4Z4Avdb?60!edusfs%-vpQ-0<4`d7a6`PmrDK z&AL+y^IHv?zlz=eOfz$0N#=LM+`kMTY&(%&QW10K#Vf44o>`IO{O!g~V?*aXVRWNp z#L6Ob$xT!L3cbp#9{S9UQ={N*_N%9*H}09NQ(MdA*WJS1nNh|Sv)YQ)m>jbQGyhKi z$qgCS*R4Tx#$e{Dn#A46IAx^ZRlF12D6^fqr*>eYY?}NUb(M^({ni6>Vf>#*$s4u@ z7qM0Ge~qI9mnUPK|7~46X0^BTd=-7cTAg)mm_299uZ}-W-s?KMVfcO~;rzX{(Q@R9zZ-IBV~-x#`9o*g?nxb*_{A zaV90^Cb{D8KeOsQ@+YEM~t%b?O~uIquxPzqi& zK7hT)-u^-4-+KFKMGSt&v<`AN_T=5j!`;|>kDEPZqF)vLf$pMp;^JDy9IA|OjD+Gh z=f2Jzx8mV7hF>|#ftKj-M&N0W8vWq|b*$ZKjyz_?#wx9i5$-+XzD&LEi~(m^jHfEb zL!8RfIwS2JnRM40wZ;hlmRB4x2=L ziQ(rE!v?oBNBP+7Hke~wll4Q^7_p@{qGvaa~J8`1$}iqdK$Jwlq(JFFpN( z`onKQ_aV;k^>x!1kd1BNAskL=e?sGF`fPJo^|IBqlMdIoLcRl%bEW(C zY3j$5=1d&vo9~d`w&G*$?Z5dI`h8q+8XL&oznE|8rxJ1c0pk5}fyNsC99OX4s*lr; z@H|2p8V_iWRr9XspP6w1JR8?oKysq*H|{;OcM}gXIu6czt|P3nGQjxIH;mmd3#Ui` zr}^UZ;(eTt09?&uN%z+@rd?Y;MO&jR^;e-}X7ukx8_t`T?JnCa63>jj=L(l5Z|9rR zzE5eOABGqE{8;NcC>q@djkMo$8RM#rlUKDrHhDEqWjlQ0sp8T4wOP03T@No;@JPM| z!(V$BZT<|7TJs6POPv+%+a!`Zt*s-I#wL-B7F%1#ZZj~`Mt@{RcMBfpSW0%}QzSXi znTtAmQDaMYT$n}=e>8U+d1Rx#jXD-Pckwpv>JSa&ccgUJdoBd3!-;=(GD10T2A^8W zc_rm^XiQ5uoZ#+e(o62%3_j*QRmu=vf?XlMJ7myLwZKu4I&|xKXzy{k>t2)1$Gd*9Qr$Yz7n|OkB zV2yImPH@~=gbv$E(4mn3PoihVudjh`7qANX|77^^-gU&Uql~%uU+2~T+drQz2M>C5 z*!S$*a!^hEt9?13o|y*Z;Ocz+C-|+nVEw;E{YSuUq)7dDmZ*QB9DJ1ei(elE&pu!k z%E3pee<$&slrbMU*b{N7l>^sYkRFY+e@`bEnphiH)1m!Y9Y!atMgF80B=gb>6<+&z19VA%_shV$7nqU} zzkO((RwG+vQ?vHV@^4|g$`*)-(GzJRli?y_uj7KNw3zc)aN1t0H zC%~M61&mLkOV*O+UTAVJG}%u*lhCB=a_(Sh%G0CfpK40axub)?f z`^w~z`gsxcmJIxUnPvDSJc8%qE~4IwEA#m4>*;4mulP&B|J~pyJ-zmo;CH2qpXMB= zO7LYkg|40_U&iU1MXx6)F9Xa%zKnBTxY}`7%;k&Zc7~So;LGJ6U!EMvw_}y}2<1ti z{b~A0{#@qqM`wS%$m7pec(Z>6GV0Y|y1WZ|4DjsW5r4E7J;)!O;UU}lsc+|YUw>|H zx6X{h7Go}^;ybeYG(Tx)S!2kiS@TS@=4sv$-VyGz!=xj9jCr+Kh#~N`^2@>ABhM^* zkNu6tN5{Q?NPEIudoPW>=iW7G_K79f=P8{{zpD8b(~t5!ik%nDYJcX^$q@De_tEb* z`kddisay^k=#F*S9A@sAvln!(XE@%m`|W?i*2314o#CE|-H{t6z4)Vc;K=vY*dAKT z#3wOEzL*RD|KNKin7@Mml7HdV&RspiOMF>Kf3*c(t1kMj_LrlbatGnq1oN(im)ZY(+kNSJveJ*=KWd{3f^;LD$LuIHQn*;bO?jg>oddS1| zKftvXSgMm~BzT3eq~CteGxBoV8scf@F}^m9vK!eGn4~UgcYeb{&j_!IM2vbtUrV~n zrLA;Mg%vYAxLrJeN5UQcK+EbG9{jg_y$X168|jr+_9*9Gj=u@KWq&FiLRD^fg$*G7 zev0~uU-AL*d8jk=9nPKX4Sbu6m$!KIxy|FH>g)5;rmmu6sGYNa&@~6Md7kRtF7d7+ z-ZduP#<|;CdbOQ8ipQmR`YP(T^(Z|3Ds)k~;^|8Z=utigJ^ojq&V}^Qd1XGW1p7RG zpXb%R{upE)C| zJ)Q`BlWg?yyU(lpzX5Z;dSlj#j;V{T|fQ8h0D}9~k1} zOMa8jQ!M>W)LDG)yo7t(uv>I~eUvpi^+9#KIU9eE-UGa2)DPUvdY#hLi1z3x$s^<3 zS$ax$ysYJ3%R;&<{=MFPmp&|wT?H?86nLo;@ZK7@KT~kN{%5z1#8^iZe#LNjBY7P7 zG}FJrAMr~3aZ>cL=yloKVa9vvJIj%~QvGVDeEte_`XNugX8Kk1rOSJ_zpy=7TSA@X zhbuhR1p3p{EXZ4y%zPr$k@6hV*|4?!Mmr zQ2=Mf{e*L)euA%(4ednscCo>e@BdNNFZB6^0>^sC^bzOy15 zW4=VTOb6|vW4F%qE7fnlv4XAe>D%@uXu@VC3sf9`1p8#sd!(aU(|iPh3)GCuih5x zMdH0ZN4>8L)UB}II*-qni(QF#A`=YjXng3Hl(|DFKvCrK~)_i2!oeP6Ar&9T#(_ zAU2))JcoWmeO@i^XBS(0^!^QR^?5O`&r_OriNsM(tt7@z9i34eV0VozRQ13mG5XHOmD2yCDWiRTOg)4#3_^sjHT*cVmM zzpDRK|2h@uU)Os5>odd!$EpWND|vLlZwqp&c4O>?z!+2K;;tplpJ`8;;}vaY#ORgUQMx6nYa#D`y#&#$}Ue#e!8ZmkovbG( zi2>7(Rw}L4g&ozkd#mb1niG+ex*~G&8Q_X8vIWZGnbCjLSgM3B)OmxVYq2r3?w0hw z%_VR5czpN_<@oY;FZBN~@sc;u(U&(nowpIbh5l;Pz1M+xlH-xPcT(SjN0Ga?kw){= z^O3us{5~&tZ!Vza#dFZ|9|H99^@Tqlu{Q8c@_Qw}uk`5F3d}4F%QjRabyskd}Wx2Q7cVSy_I2 zFQn!6z&FY7z5Kq{quXX+7Rv9v(C=9E@5p)BOgs*IB^r5eJ@-iaX~?smcD5gBKgF>j z{5b@-55<4kv!niqov3+p4w*N7k2_EA+EI+PCjY4UAoQ^M2){qB^7>Q1uU11ud!cwZhu!s;&lR`3t|#7yBb!TQ{lObgl$y7=x&*Ao04%}D z2+mP#u9uOg72lOYKlJ8=>xbSF%lo0X;D??J_@TE3{Lq6i@ZTwqW?df`&bgjUHg+>E zXO9f?z%9hv+9LxjvqvU|Z#(uKYZUCS$hD0Wy}K((8t6}_@c8>Y2Lo* zc|Y_Hd>8QDPR{m2U(N4EWUlNj>Z^|QMc;58d!Q_Lom_H=PtNFh$f0Cb=ca5PKeV?Q zTSxar_QhRa^goEpZ@6V-Ja!-j+6V|NLK#n>p9!u=>F)#q%Y== zu6hLh(dCOSzd8BHh7-3Kzu0i%(Q)4=UH<9XJ3L?C^si9vFnY+}!~WSv4)0BIhR^gq zmb5*+GjrBNl5z`Zt#z58Z+av0;rpix_XxN~8+)G7J}BXQa_-ig{CD3p3ao&Cy1uVA zdhJeVcI^J?DogTkJpSp*D|>lC9N+N-{;=TrKiNP14MtXG`=|fzVf=$Ue#zh0rmbrZ z{?HAsZoUmZsqbEYEx(D^ocbS6a{aqlq+Ko@Bi}5IFN6N+K3(78wX?bW)BUt>Ez&0c zpYl)Fo|fm^KV9{bf4cTh>)w`?DOZ+5aaWdKcMh_Qf3M`n-)~`L86S1+i7xa}Uzwfl zqrNKJF}XT5w~zXLv{C6ym66(&_fhX6el5H|Rv+~X@w=L@kNQs}CzMNnI_mp@vR+)? zfQ`O#o<8cU@lThZ`t#wVehv7{<)hx}`KT{4x{33)IX5JUuX>pMLGo8`!B<_jL96`L zFG=GcEF-{nSsPzP@j^{KX6X)Gwj^8b9@% z{M7&V*vSDubBOZ$2j)`-}S{h_v3EPU2=WaTk%o{#@+?=sMD z?bzknji&9%H@(FxQ)gWH{^`G@F7xqE&qCv%fBGP@Ab&*R%N{gSmIc1xz3l6rzi@@; zKmIO{UjL5FsBY9}RP_VKG5fB|N8LT6gnF5?bY}am3m?%-xby;F*T!##DWSzK}bZ=TY1WY&Y3;{T@wra~8%$&{#f@sU^&9qg6EK%K_t9d{ft9 z!xZyPeIq(ha~xfiSIjr{GvIZ+zNzc*P5onF%|qq9pK@fwK0>_;eN%_&U)GUkj62Kr zAyb-v8dz#uQ;S)T_3GV$?_(M|WO%mol=4kIR$qSKm)ZB_FM}?cXSy1Ei}~`egf8-H zX=hGLd@JS4{c2B)TUDpKycZ2(#0?V{ z^!Yp!CpQSdD0%dh#`Gl!tDXH2e1u0~ zdz|p*OLISB&M(j|ze9Tcw!!~O@KU=RIvM#q&BbXau#RO9L809J6?jQb`YA`g$L^YO zehE6q4 z#RchpJbMTVjIX-C_P>v{f8R%4 z>;4CMwD$ig@KJwO%2!>wxQ2SDOx5Gw0RD>mJ@?uj{<(|m(R|ef%lB2UW#?%%PtU^q zdgt-_s=rq}$QJii|Gn0InfnRy;1<%0w)62-e*}Ffeid71e<<*6E?$1sqfgLR-RGs9 z&abOKLt8H8t1jO9zISVxbDH9JDV|CHpQmRP&|@xN_4fqo?8~&jR{qYw zH^F`{va!yq`_X*WgR;>YWe)?-y0R0Ojosi>$|vu=MPx(wElW1!k9IU)^@{`bEu_VH zfp2rkM#7^{&{w^fY~1oZ$;N}=bu`(i4amm*1@xH9SN&J?2c_D|F9Y8s8@oAE>DdvN z)<^SI56Z@h1^7$wtc)DF&V0PS>eobz`>Nl}y%0X{R4;$6IH;$!Mkl-Ca$rbqJ~)ou zsC8vChvxaMw^KY)AS<*%9*h_I=gEQP)@9=B+hf-@jaGj^?Yr@!8_* z$7$k&u;%Nl{{9m1)_CwV{~^5Qt)mBZ`ma6tn(0^3k3s+E z8$DSI`l|c;g(Q!6|KZRPzUn!_Fnho9{i(nAOa66*zH~dmVJ=^F?fbeG+94dAS} zb7>QG9-gIq)dj=%RbLTChIj@;N9xINyL8yxzUmp#xJ18sVG$blklyb%kLIgBj_xm| z3q}IpOj{}7)!v`E7I<=Mj z9F1bx+u@%~@X%_qwH9JtKot1f!K zBf$G%()+f7>hb=43v-Oa5#D1;g^;N%n zL2+O847Q>8G^_vf{AShnX*~K53JauCMyge_N*SR-Y$-Z{Jt_>IJT^ zdJ}K;Q^(?~{{7z+@ADodJ_u{RzUp5t0qMBR`O798ys*jLQa<00oUB2em z_*!}OEat0z0rizFcQjvhgA?ge2Q6#*&z9B6yMm{K@QL`U4}$N}e0@KsI-Q`L)D)4E zdw?tc&&O9ihkh$%3+P^K|Jz*h_N$+|>8z=_GPMZJ$Ezt5>oCn&#bi}}F7xPtr47=l48sAcb%qCj`OCbo`u~PLz0gnnQ}=$$+DD%w+big+zB}yts^j=z>?PSZ z`hGND^}qggal7js#LMmyoca2yx0Qf(T>#d6ebuibPc?I&!a-|`W{!frX*#=L`xEY( zUX1>|;rHk<4^RKj*YU^m-({OR7Hdt`M{^3dae7We5xAV0Gm(ML4*q@eVZa~L_%vJo zeT%F$NZvKqu5w!f<+6Xxw1w{m%B^O7OL%Er%izvA3l8^bR)*a5N5R+uFAH(s5`<9% zPt`xh8TrCRFjf|U@!&jQeEf5H80&yhQ=+Vodg(qAfSDvcYcHHRdM|UU_f96Lr|xF7 z*w5*3W@ReLJ}>B|GyZf}Wh=0qMxA5)&$}zECUbYQ{9RQC-%r^|G`V*+zx3Wwn|r|T zd2+*O{?6v>%$?2f_wkchyZFq#hxh)5w$Mr6rMrW-0bl1=ZjHHT0{ApFcSU)3lszLROsIr?SeqkWKnRwk# zC^+Fjd_D0edGY@Z?mqAI{s6x}{gXp`E4{ijWG!nA&k7#LduuIxO`~XtEU^Y+bJnWl zbEPNO@;MQ#uYce5Ge%F8HznBz3jL*jKLHPeYsKyvj31i(Z_?L*TMe?Rbi!Nmnn2g+ z9LK(tZFTUh=4t<}W$lF4Y49v1+vnJM+1~f8#f-+a=xH!Een{F6&9M@;x15KWK>i zFgPcRdC(8Bp0;rke@@Q0Z)N}S$ZmY29$#Ru9Y0<8aBgtulH5|#uzK9iHZ^=RDc|h_ zH*$YF_ZD*gQ5$D}sV^nN9??NGcoF$u{-2r;#s7{uJwMM%(yk_6>CHLSoTnt%`16%J zY5BAvQ`8T?O3pCh9$jQwIO2!+fX%r_(d>tiiIwO%`6Z5k|9z7>ANKcue|WF<){3`( z@k6)&&|Iv3*Lr$Q<HKgw+T<+oP(C&PE6X1J!|KYu_;@fX|Udc1f zQ;gqlFTwATJ6(RiCcy7k74Uog5&XXQveqK}rac>e^DZys_v`ScNE?9cRR#O zcP|ikJ4Y|X2UYiO5*Jx#HKM9G8yOv?{@12&ja#oBla7uzE}q2a_U@m2Pv?sU^gp`% zV`oeMUpvm25Z`B4|I^=9txZ%K-GHZt@zGTOV)SX_H>O_uy~BIfSe29K3x9Nq6?gpv zqjV4KFc zLx6nfWZJoFM{OG8&IJQYv{D&@hrSrItjx;{TwvBEWLsS~E*mWZj&b@E(O7*i_73HF zz8Zw}TlxCv8@M~{u;{XmJ)JW+;=^wxu162M_lGE6^2K>Rt{<-Tn_o$e{JQ>BG(g`< zPShX96F-`KJ+zWzB z5l`D#et{Q;9?LHzEZL?_-Mub$#}aJgh|0P>P?q+Ae2U-V_3&ft^`n1H$C}1mTQEH- zzRQ04)G7DS9@t;{==oxCvlD0bS0$=ck8$@8+0 zPS)_8ALG7Jp2vRRj^nzA5A9vWvu@h5R?*L=c(%eM`eXJnHIBUs*|e~qZlph>U*_z3 zYY%GM-C$=&MZ{?g}vJ*<)eg(BB&P+?~Q1D%PG0 zd4&79Y!o7iTcOcvu2&V&K z+Lmtl!gz^b?J_Zb3?%6Pll(ad;EV>4eDX2xarvNk#@duD^+OGd4ZN%RG}@&>b4 z!eRbdx>IdL>4h7%-*_a!8owv|inp!zk=H8!CT(CfPaz%+!XuU(lb&(+e$U23IIIrf zARF99KdW5fU~n~kBzNSn|G?LIhpeYYP1w`bzHXDQRejV~INlvV==unCG20W8lxwL1V1=^5@@A~GK$6l(LenWi5o*uPR&?*VP*}J7R z#7LaIjNn@jJn>cf&8O`FV4WQ(M|;y$cg2hE%J*Ju3+cuf{c(uA+Dnv3bGHX&=uVMn zLU(F*!pD}xgu@BTx!qn2;Vq&qMUMhcr3Iq z-)3Z!D!pW?k+}io*-ReCO67jZw-)S*mN-w=9n))UEm_sMuSV_|t6Dk6P>g?^oYtT2 zz{cyqr+^=(|(P#cV z^y@e$PjduL!u56a&j^btpLa&sD@miVuxKN=@-Z@JLvg-l74ceAR2wRs>kayhy^OZp zE}8V!M{RIYKk!$~e{X|_vd{HfcHerH!5V3rHtVmE>h4(S)jNpm;Cm-e7f&~jnP&vY zb;yI!y}*%;?VlN~^SpF+N*QU|NTYg~@3Glud8rJ)F2W_k8DtUgt|gD!a+7=dbL*I^_OSiAf1oIL3`qTO}S?t*Qu$7^>x=h5ySJ;ru-COo-to;>M+ z4>de%dG`POe_p%mmbIH9PXQi{?SJ4)<>2WUpzSZAIp=nSWayhWx4JPHstPm--SiQ=he(RFz zTQiFz!;tSeX&uKsWE8Sx%dwCH&P}okpzni{yXz#@^Z=UA!RmK+cXeGS;*%F0*bN4aFKSjaJ<;x=rJC=9ch$p^xwnp&!Lum$+f`UM+(VsT2CdJtW0~{HssCTV=VtQ66Ym~tfM>5bk9*$U zy>axim(eD`tNLzu*9-6do;hvK$@#z_@&pZT0beWrN$g^m&WaPAKkngtVJ+=x#hs&{ zuqqg1Bd_rQJ>o7s6d#Iv^hm792}T9?7mANz;J$$}49`?Xmit*$Mt0L=T4m72Rer^a zyC`E(Zjs7}1D1vgP+Qj3+Lv>BMabbR6KwYI59`Nhh?eg2ywL8$px*IPwb@lYZ2cV(! z!Iyzy^unME^S{1}?y1@cyz*RmKp!{(eV};h1Ma3t*r|8t7NQS?ujVU-r||t0aP`~n zcH!;V3Cge-GD3g)4kwP_ z;luW#)~*G;WmbO~I>TB`{NNWtia#k%M2j=XM#d(-5H@+rO`g@6P&RDs2rEy$$+JN5 zl}$;@8nm5ZPPwr8HlaV2=6j{SpH<86=2!==2R6-Vm+f?ito?SiW%Y*y%8EW>-!V97 zbtpV?3AjAG#5!y(vlq4PCl(XRm%Ls83ws*0QO@Pe5VA^1~-r(tw?@W7Xqtj-$I7xe} zy>2jMZB?y&e1mx`zpTS{MU~TRHIOdJGnM%B?Vpc6B3f0%ohA!^JZmM-5b=Zkw&J4= zPRd$K+&0AxKBTylWBguK*=bwdqPS&c^53Fu&MIpSvBC1wemT~Q?dn>mHQY>swN4+* zCeUL?H`|;T1RX<`?Nc%FV|XXHUx3%vMfMr(PTCH04$}_KFjuizJ37RXAHi$~e+2)@ zV?VTrJeSz<_0ASMJfPIWwsVlf{}tSCM-hp1Xm)v7^6q*m@# z5VAIhqS=tOMV!l5z8;t@%Kv%VhV@Fjwu*Kk0bAKJ2E=9q!ekx}MMpvb5Z3e% zJTNdME3dRKuA+!$L0IGL=UP0wiS=RC2~azPhhnp#=uiO405G<{1Uw!V9#`4*)iBE1 z9_q38F9=ULWZoB9OR%TR*-~cpmO1@cdSy{!2GzcY%A&iR$= zB=Y~_7Y6TUV5bE8VRW5nB3bD|T0>z}+d$Zw7EQK>s)&FbED(nDtuO3sHPj$Qe^@bF zM3dogbRVvQ^^mVn7p4uY0Bf@$FC3jfU!j|JbieX z(T6)i-Jy{M;f@FxY>jNT2_IbGVC1CBoUSsfv&vGH+6V=#M7FbE_}E*_*x67$xBZ zVFtt5^N)l-K-_%bcPO3o1vYk7r%!DXSg)BG$^XnGPk)7{IjY zAP&KB!p8@@xOy!DYGcU(A!p2`edxb%_@L}tGcGa13G?Sb4Y&*rQ0D3O;@ZJbXV^xv zk#(#If8;PcljeN;ta_qXpw+=pHL`)Ben|<*$CG8_BmDc+iW|nF$TjphwygE=nfMx zq@X(@Y*3y7(d82R;#d^|zxc8p6!g-HX|G}Mj$w0H>fj=Wka?CN~Sxvvk5IoFnmUrD^z zhG&gMn@Ysj3C_$IHHnzg{}qXI6sK{v8T-~*nrDz$?>nb>{4nu89xWBCjV@^?{Whh4 zSnc%^`@$v}<|(Hi3*2_5LpFml+7cZJVT7I@b#uN&Syr07rmZt}Ru`1eSj!B)#3s!_ zFbL;gTOKFI-OXl<-V}&i!5FRNKgYLJpgbRkmOz}3!-^ttL75ANEAr(nYjn2TR-aw9l@YF5$xi*@ z-_+SNypA?GNvnaD#`u4>#>V30)qXf61 zrZ-~uU~orl2JG9MFhaa9B4s}nL7zAi5qo>c*%=9=sCPtcjHhhGX2`xRVlzDLkA!!H zR}$`wIGKpGS=}JEylcL$R9O$lDC>jv-&8k2sG4+{4TYx{*x3193&PBEbVP0Jv~<*F zcHm%{jiHt+3)9p_%Is{|87i}Pg`J&c_P#Ll5#b)k87#Buar(>b9gefP%pP%^?y_(? z(qZ#s-vXzz%<7U|?jy15%>VasaQS~zhvYLDZUDD0Xs%8&m~d9v&CVKI0=qii<&sgDPjBNMY;CHUpVf!@+CbI^eo&^V&TA4*8 zpE$`O*mH6x3mnZy#7<4V3R=rh9wLAv_(!!F|`_ zPQ|B}lB;KFg5W*{t&uZk>UCWC`wH^!j2^Iims&eb`4cgRaQ9-$KS23}Gb(h;(geXS zLyVOL`FBJ+Lz|acyG;J+m_xWv`8$?$+Jpy`Kf5$Ru-D|THu)<=%ck16?6mzSrBAoI zHCNlQ#38st^y^xx;J&5U!dCw>6JAyeCa3m+H>j>^#E_$3Sc;!v2a~$02 z>Y6Pj;`>U(cbNDp!8tQg$#kRbWY1y>b)@>h+18G;z;5KMoi<_qwH-s+I+NDa_mn!I zr0sPF*-0q_(TefyrVbbPwXICv8rulkpRPKYwSkKoSO%D~2keokwJSUko{Cxr8K`r^ zPc%+=d$f}9L{!kAv&qNWz+rnP->~wHgmY1Af0@INu4tU_wrC~c5iegS`5u1#CzLPN zm}1&?tKH7bubHr2BbY_(lGYOO4a66-OKOxpZNQnW+Ai72H@_eBZIP{kIKQ9X9EkJ#=~8`IFn&!SpAWw+5a+{h3d9`?{0ikO zVT(+kR{GnpzPWsf`Z#0*aXt3x?B$^6uKfaTjD)2HU^=*I=|EfwBs@)frg`sVnSK1zA1Ir28?+iV+T(AXfGjSVtvY>beJ6|uL;9$|@f4dG10*&4C7&9XsuEu*a2Hb|eb zLAuIhgY+94BonoVLr!1R#>VN5s#zT@3j_ZERz}#_M@oj2WsLN(N5XxM?2&Dbv%Sn_ zV3{qm8SoC2g}Wj>3@dHs1~+?)p}q~$`ab{%m;bH}vc1x`4~}kk^d3XnH8W}FXLmG^ z-m^PasDIzi-0IL$>!56fp_3hg=~I~erGHg;^O87S{gPIK*`?C-OBH)ysbCm;<5I!c z1#>zot$~W|*a*E#9Ku;;Jh-HV;4XEs2bL<nC&kO|u*3honB&I2mQpI+Dz8pHrtr2O5B9m3hg^u`@aS_n=kf9KLT!L34t z^9l;`_bu!U4PgtI{DY?AIpyEHq=o1XW$IrVCupidWtPm)(BR*@us1XUbd!JEVu$cP zt#MhUIuQu^{JEM;=!&ywDY^&})%j%Jx zF?iO5O_+bvi$#a|rQL4QnmWf^J0oq&qd@esqpsD z0W;*_M_*Yz;apiI;ZDz9Xgkh)aq{_g#)?!Q%ft4%es9H~lrAq7KOBQL-ul%_XSJod zk6_v@eE0h+f2}{GJYT@SLu>9L664ZdJIr(zcH=hLjkq>U**Iu0Cz)U7wpzXf|CQIQ z?ObNpNI06EE<2o7rUBd8Wovee7H&rYHBykjg8Vgs{O8wJ(vECrtF5(Dm8zAX5d{y} z*wdJYvk=(HtjokH`SQ=NBR{zB@SFxPdGQ!wfKO~F+8e^Co|V6g{F{~kA#ZJ~mXuv~ z9Si*wO*;-bxMi57ss2#ZSbnqew~&8TAb*YWuVS(~3=#;ess9!QOVpqIH39rE}$?+2PHC zWy8^-Fst>ms%|C8yPCZ2oa80QO_L_W>R4@ISdST-mZh2rM+d{KM$OJ!N#42{yvbWb zxtld56Q0m&pgUIS2t|8BR`+a{S-T#l{h#F589xuv400nK#!G02?W_)`Ls1yt70j9; z-`1IY$g1W;TATq-R>{UJ5YrVJRWS5JH_pa6MgDc{KV+78W`yl zgi!;Gh7*L5`vRT7!V{}YA27C@AdEI(w4Wf1N?_Cp#vJ{01>Xz%=>t*n97jLB`61Rn zl-F;Y$JkG=BLDiC{OIf2^`>{p+R_5%4dbbHv!7WA)M$h&hvLEpSBR6U=*c^!GX$vabD_00purkXm6 zIb}7Fw>6kIPF{4rD<|~pMoxlS&dX7V0;|D63C_G0A3`sek)=qUo@So-G`z(@k) zc>CuA|H}L)`H#1M-b(%`aHlX?Y3sI?;?{;X>evxaTBX0o)qF zJ%K)d$7eB%&(RG3_62NFaK^XfU z#Q*CAVe|tdYo8cBRsm!E3Brg2V})R7uK%#zhMV4jg-j_p`1@^PU9;R`Rkg3&+JP5# zxwSd!Y$>;CQfx7V?{)iyKwqwY4auOb*;M_#jk;xO)5fp97iZViN+1L1~1 zI0&;Q5MO1&#@EBD2!t)do-JhUKm4be@D$R_c zeA+^sZ+F$jU0<_I9%e-aX{wwW%S?kPEuJFqE0)><(0;AN;JL|+WUvmwaI1mO9usKP z90D+Y$-b42{29(@We{Lz?G*>`gp)16 z1PBqvDEA%I8ib$LcBUgjhb!wFM9b}3gI?5O?FHEdtKpo$EmO@-S5#)ilgwvz?YvP zK7S2OY1{6cDSV>OOH)Eu@BEW!;;!{+xVI*--z%tRHk))tZ_M)Z>nahywnY5O67fM= z2g7xwf7tlLP`4HJ_^tHM)J-+3Fz~cqYWy9IUuB+p#pKoMP`=?m{^|BF+Fv5y8|+t9 z*D*=yq@6H>t`R4)pPB#dP8d71D`NGlvr9*u!AQ7UtBC!P=#~f@00^3v;n}FGKS3&B zdTkNk#ulrVJz^_Kx4J}pl6d2%>-o{8mrPnw7cjs=tQ%QwauZe<<*3>@&Vksl-KwxyxOiyFgwYf zrPx$B-09#?W_2lZuM;OCtKcptnsclP1p{y@fm3JTNMBuLU*?V{_J<>Qe!&UjUOb>o zcp9@pZ1Nv;q5~0(r1+LdcyKnCwtpP`_neQ{8|_!u!uPdWE6y;j8;Nv;`a)@bL~w0$ z-PVQ#U@8*bxq!iLoNrqfIKvCVLkoOF4fodox5L17@q9(RUU2t0=+eGW)(Phv=YUte zgF?3_5*=dGb;RM@Ktzk!!!ww|`)c6T3!X>&b3}XGoLFp@w;S~96_hPbbh~3^XA?iy zi~j#ZAaCLzw9kd>dz~~W#v@O&X!KKdW ziCAU_Os^0gH1%L{eOEyZ7~=q|9az3?Q0Muy&PVQEh%^(w|DS_P8@TwsCvm6F_$fCP ziAxaY_MOxuXJlgdWvvu5q&?Nphjb6q*>JML-C zTE^4eXpMN9lNGki;pJ%h`t~EUB3Kgwgux{O`ZGoi8)BxKi~6s zx1yt08=vy+v+`kxCLLzmOui}Q+noQtWCg!lowals)Xx-6`_F%0)~5LN+D#1JnHiOC zrA(Ru*?4T})*kHbw$BAv)s%ZmrAX zu(Y0RNr7M00v`=mHF=_VN5?8tS5D7cKW?t z<<>CYJUKmEIJU7RLw)alvl2bx?IE8wH0jT$J)=$4U9UwzWCL`e8hqYi(xpv0L;JHE zfSJ-7CCzBNR=!#WLhgA4Sy{eTYd&ptN=tE&Fl+XBFgLx;ZejV#?5(NGr#mW4E1z~w zn7gL)bZM3hnl|Ff;I{m?lKP_8Pcu(_(eg2tyUCMpcX`{Wg?L|I6l-%PXM^N*6rYG>dS+Y~0FV^P27u6T7 z`R^t5MZ%;htuJEv?3q5r>WeM|!<|n`E39<`=Cs!4MR^0`;_P10&aF!@zMpv44r6S;!kIO;?+Sd2Hal&0DnI&cH}KrCwQPo!95o`x zc=e;L`ERk6xRuIIg;_X^&fyu1JV@a;Xkdw6Gf zBOF#gZ|an8A9mrzexi4Oy34!=(|z9WY2HeIP`@9t)7f2SE+QTKnHwMFUGde!w{QD} z`+Ey-rCa+;_xBp!4&UQB_jeWV7{8}R-QPLhRs0?rbARvP4gb;u6YlTLy!Cz8r2Bh_ z_u%I%(v`n*e^>C<@1*y;S-%G}=?=ZW;G{FV-ST5orv0XKye;7EKv$|>S>D1&eMCL) zDE-L_-W9wXc-NZ#WiZ{&Tj^JOzxA%=d*k$&h6<@?jqyj5-=;~jnPF=HY4P~>+t>GqlL{pl5qFKd)fV^;XL zpZCBO;dI|~{C?<)w8h+k(y!MXLcg8f#XHXLcIHn^eat*cf4bki2h)Sz?`iM%0q=LC znPVDEH@kCJ>2B|LulIX9?}@J*zCB^);Re%A=N%{gPS;l?U5SqkbFb-jyp=D8|4@?e6Y{GfeGK2TKK+*O9lxh|Pw{)3 zd@%XFm3RHuXjk&Z<##vlG{5ERt>3G8@8q}f>F0M6-~OtvgSXk^F_^C9y^7xl%^sM+ zwArr%|7zIJ(@%W2_WY19!+U_=o6Yb3^ayX^8)pwxhWPEghj{m}C+r~aUiQN!{sTPB zUdR4)FYh*fTkMTgzG>bo`K^7mJ-oGdd6@Ued2V^`yFXoBd?~ zJK1O6@VNmxkZ%QV(Yt|nH@{oG-`mW)KRv`-^s9fh(mj;k%v-+`uW{kE^VaX$E2ua5 zJ9w|=UDL?-0XyCPIv0Kq?={44^L}S}E8Q;dcjJ{VybN!{FW#+uuV{jgylZ(2|JA(p zJ$}`nZ*L)fJ#T%lzS=FXw%M(3oVV(gH1Ga&*89E7`<-~hpKos<-~VOreZVTa%6tC} zoSBe>BqSk95{xIxC{Z%QOh`gTj3gmSB8enJ5|U7X0cJoMK;|$*6lK?}%feR9^yl(Hn^i>}|946W|>D_#x&sxY~}NDeO9*>dOP0 zK=ro=RJ@&_)|C@)da5rI{W>WBSzW@De(_-|9{?pE237C4c%2uZ>Srdb+ymvmA5{Cx zh9C7ez*YGAZtEujuEQ^h$4}uA&Ug4BQ2c37?JSDN-@3sxzy7G@dktb2@P$2+v+h6k zRNoAK7D4g3Z?^fU1jX0(a^9hz1;uB+6{Nk1w^`onvw4n#(zm?*slF-fbNe~J!R&X~ zd@O;AYfZ@hp!S_M{&7%w^xpMUUk+Fa#=#meA8Z2UcQ%kOfL?#h9~!XZvjP@iSNd+& zV{ia01CN8{;0S2qevg&sfT}+aDxSsn+IqdmnD5x<{icGul9 zw)xYb+RJ&L^;-{C!jFM9-~?C;PJ?Pcd(ir60;`ahz2EXJU|oNv?|;zpqry*b_j^7B z(vJ6G@Z>gsK!|(>RJ-{@w%uM(?Iu2gUi}%i{tAEF^8KLV83ff%%M(^U2&&!!D1Cf{ z^BF7zTfh>K`xw7Ikhh7){~%Z|`%iE_f#cu+xDIMwl>d(MOFdBiPJq4Web5K9f7i~J zUXbsf`6oUp-0nAxTKOEPdJ~^woy2}@%<@@JGEd=iK4`TpD#NI!DE46@%E0|%%#{}n5beH9%49e)h$MSfzMIKkqtNj~cLfWz>af5yC4 zJy7zpuiN&^UV3VHcQ%U67x`2}CS4FBYX{=5*o{2y@L zLSFP!%lqI6{MZ@GZ-8^~#hDw%zF$at^I02x>&VBi+~_O&D*L~yHu|c-fvY$A>cK?b zMqej5RJhT19GooO=$iniU%AmY3l879q3_Z7r|*=%0)PJ1!fUur2w&olRSPfhPd~6> z*4Nwz;h%h|zXYmY<-_nN&-0Ig;@2Owd`Ye4GhYwSd@Tc|udTQIanSJlH_UvT0X4rj zK*=+kEnf99Ri1f;He0*aWJ**+9Mkn)U40H~JRPuYjk)(zkE)t%3vK26!CwrdiKG)zAD5 zE6)MVdIp;Fzu(sDeaA*$4EwxyT6wup>)E?3Uo6ymCe(Tcs=b^6>$e`vr2ZI~15SXs z;54ZAv)^s~G=W*jz4utY0Mt5D_FI;35i$=--Urgol#ubR7_{;MaG7>bgKJ>v`)xmq zKY*U`9R8s7w*rbU|B!933RF7j8rU*Hm`IP(8=qpuwP6xag#U$XMkp!$(BWzVaXuOeriS(&!- z{I7{G@N@o5c#S{!^^Lw7>i2&Oo_RD69)myq50)=p+~}KxpZYF5>s{IRtb7nWjl6Qz z^21=xpPlRL`MKq1z;gKU*cs#3+Xix-s6GEoUmNn}E6(&yfb-8g(>DW7J^xJK0yvg? zrf(UXEI8Ab^>y|uC1?7Iz{Ok6^p%6B_MS28OWCdRSLB!9Exf?*eeD_3?{QFhT>_sx z|8xFurM2I<7dh)(>FX>%e4phPL9JIK`{0@13!wPr2P_|d(DI89oiX#YqDJ+$`Msd* zdLOa;I5??(y#7qz3OKhPIqO_*)br3am+g)9QX4Lj{0o@p9uKr zfS(Qcyn}(gLH2c^r#uDn(_jpKInc*jti3_@YsU@Gx&jZnc&h(9f6$!P+b02UXzV-+_ z?aqPTH<(vP&-4|8YdvTBn!uIE&h!m~d2eC-!DGGT>(99^y!A|9CAj!D8^5p@ey#6J z-!X8(xAG;>JRkUV%ddfB=yQL=@;TrVd`Z9Mi@}_~U>$#l<*UI8_?~xKJ^}W^553Fs z$A$0{1C~Dpo`zp|x8>)-+*#J8_gH=ntc1@!X89b@hcEd}%NK*E;A?)%^3?`;UI#8A z-w5P6@1q_00X0vm46@D{Jn0Vy@_BFuyRt#qjrmjWKhrl0Kl%ak{g+&K9%r1uq2ru) z;KT>d^qm0LK6IvU5uE=p`S>RCA@Ts8_z3+6TRvvbr!jC8zV^4}|D-<(&cjcA{7hfw zUs3;wGkvAt?8uqE1i0}D?7+6)Wj=xZC(iWc&v8C~QuW7uVKw~J?=k-1iQhldHv~?9 z%KFbcY3(M!1>}pLw)_H^^)395S$-WXgU@@?^0{CFzVtJeF9Ap4YsW2L11`e%e%A6m zVD?|LfBKx|hrn|9$a14Iq3zlC8m*DfhX!%@F_ifo=*5B}4a`H@H z3+Vp|;}3dMR=@rwYkwTxtnXj8@+wgIISwYUA2=pz8M+9QP9jsSmD@r`bTi7U+v-Z2e>40{THv^(PE+e+lY3w*Cz(FZy%g zn139UeA)1v4}T#!>lvtc%4Ws${Kp{AD+7K|$Ub03_$2q;-?aAqpw_3hzf!$4zZaDM zVX%_8<|U`zS|HDv3*rX#eENjJlm4Pm_b1;XAM7(ufT}kO%3sM}%bxovkna!sr~gL$ zNk41e$}5B;>3)mh$Ne^Nf%)1K=%)htEGU01e|x5H8vOt$zoXz3{A?g!2WQ|5|GU-K z8f1PMJn85C56NjqNZiYYKj~L3*#2eyovl}CaNHLvzZHKkd757XDvq9j9|-tS!;kqr z|6uL&7HvDZU^(%W8UCa{E+jws{|M6lqL6qNz*6kWzs-6Cj)2wR45;?2z9YL)zY`Q+ zv}FAZ2$2{6la;T5;&cA_OkW}O2meLsAS<_G=A}`%TNN%dBSupxPe>mA}j%Siaccs9zoM zHK5Ml4RC~d-v5-{Nx#70s9z7N|5M;Gt)GE@#o)MK^uJhlkPm|W;Bip(Ck^u4+u)d= zzryt!eE}$al|jZE)cSl1Yyl?%{gS~EzvzduAM=Mmt>?prKj}{!9QQN-)%GvzM>ft1 zQ1+)l)9+RBydPt5)L#eHpSB-cd5b~jb-+&wbsh>ie`|kg?N5O^e}~spFU=nV<$o5O z;rbK%H(M_sl)PL#{hT&9?#~B&*3XbL4=X^;gE8^6Hy`jDpz0_7UG+!(ap7mu{lfnc zf6}iuIO-1yIgd{no;-t<#4#P{vwkl7aX%N7zZ$RveNVs-gT?SupxRjq`#BlbE*l(?9XJLqfD@n>v;K~O>d#of zcW$$OW`xKS+pS&6d6usM2dTf9DSpI1e!g(rKOyA2UNk)G+y!UNcou___XPY2@o6Le zyb%9uLgFsCQ2a^1-r%@D0P6hq4Ntza&h{14ZuUiI`^v!quv-1N_-tPj*aIfORj?my zx#Vo$ac~Jd0oG)n?K=g|fzx2=rDyx*z~al!_MHX`FSqfufvfNnpxPe~pkNN}8v+@ap>?=U|odq=xiCoLKfqZwvpAzDC7Sw!LH$2bF zu0+oHHV$gutby{gA~|_1ze@O|zig26;cD@}q*U_W_2__GM#N0~Ua%LD?;WdS89w zx2>PdkDu);LthO_UkO&h*9UwJsP=0EUUnMqVIk{a{S(4Wzx)%z%lxw6vwliIK0EKn zejmiX64W>y6Mr(pUk26QlK3aj_t!=(zXGZ~@v2w)DJw4qC9g8b{x0Ab1HSyEwJQZr zk;jFAp95#$m%&-k`?R%NhnGL`YNsNQml>XYWWW~(`pJMl73gOIek#JtPxhGgp9#u; zKB#f&{BM@;H^}uk;O7E9^GRFJ15Lld0^*%F{J6jR8Ocxjh2z$b#gl%E;m7<*A>&c@ zS?R}o?{n5JCQSGJV#9OZfGgZ57JlB^&4L<-Y4Oz0`~t{zc2Y?E(?aHV{U2Dn8c^4Z z69!NEIe*AJ#$OAlxO;{0a{+%E)VMcITKR+!yIF7oyZE12z8F*-g`ngWM$UMHx^Hd^ z_yj0B%a8iU1O6B|gkABU;*WV(@D&@^3MhW*&uqN~A?JO|*KNDULB&@)BcA=5L9ROi z-wSH|M!_EZFMz#Z<~MA;O3>_Y407K6h4qtX@TBj9HHzz-R$cn@=Kr62p)B(_laP`oFRH z+5pw>*t~65yq+VJ{&(sz|ArS>AHb@Az%MxZ?X!Ig;NU-RqM4wiloJ$&vD ztekX*u^%_{CIRDk!CqT(ZK*^^;`I`gfC-x(IeJ=v#zXg;$ z5%A*%`5eNk^-~P0-<1Y=ZW8b(K#jvGu!Q;>M$Y@rKR(-63ZDxq-ZD_}9tVq%kATJC zjP$gh{}U^(0wqs?^5=u{GXa)?%b@IYe`@9VpvjNHaeoSw|I-1#VUT^~n(Wx$fr_^Y zH1jc#i`V{Q#qgZR|7Q8>pIQGs|IU7f`7sWvy^8g-earAZD1H@`zh%Soxf~(>I{(A! z`$4VK^PuczK|QbXetx!Z2`mP+4z521a-GjV1MJkIy^TmqvRFpq@*w=SrXHdsp+G5q>lC;L)!M@h|j|*S>&r2`s(F%FDqK_~I8@ zzElXGAGdrVI3@ntfCsgID11?14=PV%;3|0P#a3RKPYyNSU@kbZLu(Rky@WjrIQ>%A zaB!@ExWKvVIQPN9m)ZIw2ATgarw;NJZ~{D4$XI~`*CPW*cG6ewQxdya+reW+^bIWC z9mHXf`|~}lWyoVUkRLF=m}iDy(~Yb#;QUR@c`&C0zhM6@e1?Ym&Cb2nk8hBD=_|yK z__JUp`k7Lzx5zsA%0PZAa-CnV0vW%SGLYx_wYQ5;^Rw=-<2MCr{8sJ+8NZd+5DV?E zRlqZTOLu{cpKuj<#ogqUb}L?MA!7_00UMn90tHi%9 z;K6$Mk*c8Hee@lE4jcea+)n|I?c>=cI9|=Q2^@NWxWLH=$=A2I?|R7AKW318)DR!? z1+V}dd6+#Zn0SP_2p)Tsdl|64mRP`^Ut>;y1+Nd{FgWUab@0en!Fe#dfgFKV`Q4!u%mf;+T|PM{quky4EVKx zkGYV)%u?X3*qbE#(W3M`>g#CsOPLj zz8%NxU$^mPf{H&2Y(k$4wtxj-8(0h`z%o#F6$Y8tp!(;%{aoK?&f|XYJ(j;7(N2o+ z90%~M2VXShFrJcjsa#V0G(vSFf3IQm+mA6%_#)xC2^>@I3d zJl5G67go=*ch@!c^z13Ft846NZ|v^sYHn|Au50UP zd}Cd6S64?Dm7{hyrP_73r&!ut=?e^T%Bv`R+rb?C?1XpkzQj$KH?%e1c%Y%NIia|c z5$xTY>Uq=eGuuR4$CveuqkVPl9bJbS+FIY-T-Vr;Xg=7{^;kSfw09)p2Rgdjn-o~G z&RvH(+o*a^T~~8w8`0I75X~5B?x`Q+6rU0vlHE-)^RSFDhL$a)>3 z)bOD1ec+xu@4pL&(A9U{bEoi**Hu>DR*ePpJ+Hg>&g$Flf7sA>?%Q|UYwp~qs$Qb2 zyIFXkp-rc-m!N3UcTS=?~s;W`E94jw{jc$l?}_@mOAw*9GAn;Zrz8FH3xF}7QL07{IpQyOJlv2&8q`l zE9kbP_!V=468hN6ChQ|-rte|D#7FxgJ{o(d4`UP`jYoVm2Jsq4#iV|#UD4`Wm{-+T zKK2Llt!$M0uwEmy+ShR#rIR9m%7@Ma9ie^LhGGc&thRK7GSvy~Z(1-L?5CkZqbTC$LlDHQ8vn}tJirU`4P%9`6v%`^7BkK(Y#`2#zD4fPe+)8Fs^8> zq!0VAanTX-VGg6YkUrXf@zH*YkM>J^v=8F#%rPyo}zk*j{ zxY<-r^;)@qw`o%Gvt3EH+St(8(yaa4zQms0Y&OgeuYpW>--fZ z^LL|}ICxKXh=6YS<-@1%CC0_CFubZ8PRTI8HXfX%#Pb{`B0j?j5&E=qJQ&8x{kHRA z+`md<&ADo(ft^sK%xS|;&}SaoFoxYXh6zaa*PJuEZ;s48wz$E>X6|aA5Z-g_IJ9d= z)2Okm&4WERX!C8BmpbQ+a3;Q8Pg44GbTenJJlRk8 ze0tg%_N&Fc<+%}wC$hHa-f7DfYpa_ob5HlQ^@`g%a+O>IpQFcTI^PI)bG>rc4>hSa zgJnf`me$YH$KR;J_%v-zd|REWTle@`;@eygwpxpl9eB2R*l!tI34cCI_-u~v=XY*m#=3gNk zjZ5(SBA8*%@Ni-u8_VMU$Udszd6>tyb4$7UB+bH*nzq8uAOEU0oP{+o(bFb3#D*H@? zOL1%a!M%GMwB-z*lZ3Lyj!st3RJ+EGL!Av>%}=xCse`?}b?h4sA8tKpwuz~JB99sx zx_h49cJLhHY3;POA8zj2B33qF-07ya(a_o1Y@c(a%Db8m^K9hlZK@9)?exC8F%fU? zZfi@qIZyQw<=h+{?$)+S{&k!^ckYt^%J=_2`97Rz+Pn8accQzi**?D`|D3D4yP6L+ z_XLtC{jz&^@2PuDr`qzYQ%}a!PCS0J zr6Eyp-QIZIyLWdH+oPVIhW)Kac5Ca^*v3g+XYL1@d3GAf2iJR%YJbbzPwyv%Q z)}cp#jr-n2!+su|9q8zadk7(9R6(bnXdezW9ubayc;8QMuArUtxw-gWqUOLx0Q znCdhNAAi(lNqUA!(^6gc;zv5Tcjck5Xw$mqz2qgDTRaae#yQn>P-FI1Ca?Oa>mRM_y$x@FM+ceWdI2^!w0lM<{;`C) z9yN7zGZ)Bb2PbpD9BAt>7w5V^GiAiL2J&QsRvN!G@EL3ilWo{I0_n3lmWv?HO(!OX;6C5+8AyLwpPNpM zPu?go@4tn)2;%%@ou-fb6P4&}Iw7)wiE>FIm}l55?IUKID*@LO7n4Yq)H=q|1!*c_@P z1|iogT~rPc%OT>w9;TgmSrc`c0zL0q>~z-YY`j*oqmm!>I_~FxFwk`nUvDqSyao8F zQ_p)j@=kodT)h0=`Z9i31Rg;rFKooqhi;pX5_Gy5zSf8uU#x*(XhT=j$fgrlZkC34r;z-GvtpGi(xjl^U& zFHPFp7Re-FQ=WgBjTdz~xxr%!dX4RgE~b{(&0P^wf;Ic7!G^ZZ7N)M()OxU0cIHta z*b@jE+IVCLf3T~evjwEh)c5=CV`J}W&)b6MY*g`XW4=~V_VK>6_Hy@hSgh`DJ}kjQ z%}wo=;yt7mcD%-l_a(Yo4aIh)yDO04L-jrCs-Em+=V9aB-O$di>M`%t&HK9yLEHB< zbTumO+en1^e-G{5-K{f}y=8YB(V*)-*scBNKDNNkhxVJiypHR-sCzq(gd(rJxiLx8 zmfDej`Ib-llP~%4sIR)J6a5Uq?h*#JwWIFvW9^M~2iR`#7<|j82X_)z+Xy$G_ltm+naOcK>~vcl)_?@9^Knye}-A=M{V|%lpUoYzn1YAZ@Y5)q2K)W`6XHFmwfUg|NY8;{Ny*U zd;6V=IVT*o#46L0lTl+^2|!HdzLfM*cID+cRZ^@^)J{9g?3w}`swj)X%_8A5Z^P} zx$$jjXk!beKk1krd(YB2~OFc6QA2Az?zTt`oAySXlh7>2Gr*ktB* z@8Sr~!k-UMYP<#LOCz`fp9RmB-`jw`5X?M(yZJ0fsN*)pt3oEbdT=**9MoPw8}$=` z?o^;#4s@iS{|UBsnHOyL_Q02dimm=U+g6B(yf$PpFae$is`Li3{s0kq$Dr9>BvJd4 zrLVDB4wC@Q~dx{xk%E1Dtdg+v{j??JXj}YZ& z1)16iQTmO*Pl$-T%wT*%l_2vNTBk!cJMP~+9R-R3kzL|#)+H$=%g16hcY^&-=_g(%qoGQ}67#$*s#6lFIY$U>BC z6q(M05GAW*ZdOq=t}4~gHI#5aSqq)Vn1%WR`coh1Wzz&5^0H}xZ=)z4>3bah80T;= zve2Io-A@VI8-P9*@RAKeAE$)&L(sz% zO$Br%Me|!RRzueWdfC)MhyG+=58p%)t|YObZ-n=u`zfj`n*r!! z5&apQb3EI#!@pDOxM!(>+GtZzU7L4=^5-LCOLp{y6!i zj8oPrWyi@EW$}aj$K{9V3uTt_OvmW0+r8|6wUNYjF>YVve4!M*FXmNJj!{M_)yUQ; zwUh-))vLC9#ndY*r9O0i;6pi>EwZ_o+G#Oty9NJ46P`Ck@jnpr7AY-{$Glm}^7~`n zDy0}%DW&K*NJ&s8C~B{aHrDYO9-_1H)%z>>nXE<1T$bZm<7^R zLJw2a|6%nXndqs2R=pu)Jr}2WxtCBt9kN-+W*iKUDeOkjFH;I4cJUusJI#d_=YJ<)>6t0rLc~9Kq;W;m_im0=q2by$};6Nr3`r~rGio( z*vuoJqbyL0krh!&0^Q(lazW{*c$5N4o@kCq?DGP-)tw7cH-3MZ!Wz=DSt4vJKd|_#h()w@^|kqOZRFD(!Jpw>E6mt ztqQzfL3@kzH>Nrqr>TFuJk84rVqb+H`&i7&9FBQ4^sR|f_G)rOS;c0C(uu5>a*7fj z_0-F!j!&7smG~)3)R~|RQd%gB$d)PbNWD1q%E)&wC5yOvM`B)1WIQzXrSSf1(!9)L z#Ptj%jAIP@Hu{sz`2C{!r8+g_qX^$il;;w6CG|3?lg+q2mptWBZ;0HNQE&Eq{t7J9 zj!O=4cOvgZUib>eZ?Bd6$WPJ#8pgNgMOLP`dlfgb5&9XGPhfux`z3TSu=iSg#nZjD z%hJ7#OVho~$L*LkQGWoNPU=6K-I(HKY{s$OYJ7^(FWkW#CFeSh!f^IoS#44b~$KQwoUlb znj^ZHdSM&&Thxojvl7Ikdi6m)(c{z$^V1WdCnGi!w5fGK_Up*&13DL{r-rh6XS%n*mqf?)MbY4xCyoL5h1aA%t6dBJ zM$3q$f^RiSTD-(isKnxH8LGT*q378MA4DWn;&a;q_YNEeu8-NpI}|4 zOx&8z8b>_js){}qP&~>UvPDWxB=6bE3w72h`RIx$Wz?I&euUCPDMeO6@hRbvpxy}M zwMc2h-*MLSM8vPI#nbQ;zhJyVe+$^p(w_>({})~FRVRl1Aii@Mr{@y)81-7HS3$k! zlBX)_t&{s6>djw};Z2@z$7P0bnL|E`e5N?V>!IjaLY{+sknzoYft5)0+3ac+FJqI7-B#l>g1&@&k5hD< zp#2lK(@wyzz{lYSDA}CL>t~;R{TkocTyF}_Y|;bBb?$3DIDrr4Mf3veaJW9@V59R> z@S-?&1=Om8?+}Mi7kAD z*A&?c0l41H&e9q=oSO4(7O8u;j z$iw?E#krKuJ;EKE`|}C>js7^po1>im`^|lPX$JcvuKTL9K^@ULO2FQ=4DSRbw3l4^ z*`M&ib>!jte;R(3Qu$MR-pN-FexvQL(Ec&>)zllq_5`$BPy3Go>gia*K7mak_LJDp zZ(%RHIqG!&JN_tDZ((muDOu0(W`CC9l_Hy>6i{?1t~k#xJTQ4cmr$pL64qaUuBRxT z@~j{q*e$*-=4JP7+J)_`BRl=;+$(`P)J`?^6kB-oAe(#_&jBc5J7N8-0iF@Oljjhi z4%P1s>We-FJr3&V2T#8{=H$nz8M*`D9XzWg?>2T#Vle#+Eea_>Z`{&dWX zpM(apze%6Kf&a!c8t?>o8Y~#Iv6N7M0^17e*I-*qS%Gh(Oky_*e;V6r>UB~UDMRq} z6vf_j3H`g>o>#-rozObw@VoGN{GMVApW->tKe2~68}nw)5Z4m9gkSg`^JIlsX`}oH ztltDs~md$H8w8Acl@u&)weeDHS?D-Z;6sg9Lm=u`dmTcGCR7_kT!K;~_DVEvMO8Jk69 zvBgw*DfUCiryToSRS^ruTet3(&ZCFHf@ze+LOEjc{Q?LM_z{t|Xm z-(kF%V-uhb*`0FiG&iPW+j!rD>*G_;ZGP%I>^h>?zd^2jD$(m-qMUVzQbie{g!Kw& zyKwt9-kaLyh4m!MKM&dY%yH{J<$30De5*vCXU^kum@-aTriAs1@m0JHU-%2_NtQ>O z`Lr3@$yfNiG_;HQ*Jt5$MEiM+7*taFY0bQWyIIehw|Tt>Y#Z7SNVbG*8Ch6YvSnne z$aI{#lXIPtPbr~n(3fm5L8+%KQf9;l?c~vya`Lpu*r_jSN3u%zl?yl9k*pfo8nW=v zI?#Co{LSp4p5wX_wjbTcB>NQE$F#kg{8K6@J|(QTMBD2(vX?5^j8U@Hn~>eIEjd4; z&!xlp5q&N_i_hbfQOXh}oL4Ja1ep$<{{>fY4idZQyvu1Xc*e8Fx)5H!Ws22YlY}G z=z&094z0N_`6RT?7tvMt9|yyuj2L43wt0n=aNnSH{}^^U)}^mTPZ^=;ke`z0(Jpr3 zF^-+~BUAWUrs$BLmcUO7`dZ{CC>4QTHUr2j@Y_kLL|*s+_e)#sU-M}%y#CnL@)y64 zlBEVXqU*vMW1$jV7y9pF{i9S-awr9qG0G4{N9aen4c86D;I12?Z`noHjWFKmeAatD zD$(;L*$(3t-hU*0M&@%d{#O(mI1MgPYN0DA(Rf?LGmkaj!+0eN=X>Z|vgmxzW_*Xp zx9$~HG#`bEHJzI(>5oVB%BA$0W72DPUwyBYmBBn8e(qhomkjFj04kZU^UP-#W=cHo za`BX(pF7uaId5dD7d##|??GonYc?%B&oiG*_#|H-P+$Bz?faKU;B^n?2RIPmAb2tI zkAQqM)@$PZyF5_sTuEtzzZxu~s0|(0Q1tnSr-;Ko)s^&@KYHspCq7{BZN~AhW1x!j zhcZXbCMdcG&>mj<`*ofZR*OG~Q8OHFhQ13(a zVB_DwT!S8fu7KA2U8BXUKj0Lo_rVH~>%Fr~Z1n!w0&=~FruWRk_pVyFZ!RgJ)Zq)% zdtx)7-WQu7PQB+Gb~G zJpEgs%u%u_S(H)yEGWhza>f0Ho*CyL&!rrrj^2AU&j#R^D4CM~0sYoJ0rw#~D!#xu z^Lg4mMZfSd0TwYY*Pmoe(Di(d7+5FQv7bZM{~6A4$||;*)T_sK1H0bO63;k!LN-F3 zEJ`VSHuAw&*?YY*e1!K=HPGR`Q@Do=_q5?&HQXzPd&zL`9PSmvJ#)B64)=!Z#1!85 zcd|}~YjG8HxNe8f5ypva&wS^BGEhCJ5ud}5hB$}0QM`A6(JZIrxZ zzxTh&|IInjIAx97_3jws*hCqnoT5xnCMnaD8OkhWjxtYKpe$0BD5ojXEmN|8!uu1H zB1$=>n$ko`Q2HsyDJLkWDAN?_<|%pq#v1pUJMP#UFL=$p4_p^7-g#4e55IX(w7cl0 zctK|uUyS8DlZW{(af;E+<_Eaay+`OqdfHPLU*x56z);e59p2U6^v3HGeBF|d9JjXb zI^5N`YkzlZThp$cJ9iyyY*e|vc<0T#+FJLE<)gp{S`Y5xo2Y!~vXieo@7!lD1m3pv zMEf=`&MX?l#nV{HMcFQOk%MDV7vBdE6Alhe-<@}iHT!0-dUTOND zrdk&&HuK_TrSbh*FYPK5VcLbVH!plRl&qzD-#`%L`wOZ`Q6DsI{{vN+^Vl|h8!$rk}Se&ZY;;=d*64$F`l3E_U8&L0abTVG_%h=Iw<@VwEC) z;|7tux9X+8lW!4wv5(8qyLPBbEcWk$%#2wBv1(amXIuwtdpBm8>8I0vh-y1uQSzYm zy}U_T5k^Zk~?}PL%m{zqP8BZ6M;5%&~ zBkiNeG7fNc%W4-dHmfN~b#;oA`l5F9@5yKr*@VG+E!oxOr5(#qn-?`Pzkf5M9|spT z?M{;Io6`1(bWhUYO&I)^t@b7i0+M<3J}caRC`leY>ZR4h6vD-P7RtNiC$yFJ7sl)o zr6;7v2`8jK9ii*h=fM8aP5L5!#V?e57r!^@c{SoWppEB%Hl738cn)ae+0xdtrM-*4 zoAmr|5zhf_JO{M#9MHydKpW4Nww^8RWnXlN%-s|-xj#fcEqU>SWXdM#Hlwpi3TV?{ zK$`{w+B6u@ra?>F1}*JnU-D~8>+La37miB}ahayU6Xq+ zM+|e0gxt+=S8#c5h-q%Oi|fX8e@s3)7*iG3w={){%B7 zmdmHnxbH3I^$plx`7(%~KwOoJ_-a1#T6O+sWos)fbU)Q|RR_L);@` z4dP8AJi>aPh%AWzCL$MNMMOTt73UH0HATE!sy1#ybOWM1-lq3nE#h8?H;8xyVnD@1@Rvu-Uji2o&>z0`b|6<>DuPKUd{#)A4Z%v4Dn78qYx)WoPwAUF$M8G5wj4t za4E=JfH4Mzg?we`?Lrx+y5>?%k~gYL$A`ZopA|-mhEdrXxV;1gqH31iqNwC1BffN zY+pS~G>ODE@4YPBS83V4EE_`0_6`wRw(k<5W&5BAE!*!9p=EnogqH0eLU?&2yv)my zmhB6941ATA?Q2A6*}h$bmhE~GTDIRNLd*8IL}=N5(Pj9!x~Y4cmvv;DcP$CMO3QW` z;;Xc5?-QYA`=|&l+aDA$1@UfLHbOZQ=^wRFEzgqH4;BD8eRh|tpgJrP>E%ek|;N=x^MZgE~9NBL?;OZT5jq~n_C z(tSmGOy0uk$E{mcxjiW?YQ{z3o|a3Je#XxdcJqzg|{MLWOt^$ zDl6mSy%)aX!k1>Y_nky=B-z54ftvo|lY+7%xxD zxcI^g33{7)u>B(2gKc+RUP3VE!Kw!VoB8~-P1Ex?O$j#ei6N72Cq7k635s7RzgapJ*_D8WXF3vCbpI>)Nx# zS`$5_N$1&$P;Eo&9w2$>y*l3IF^@+?%VxW09)vuRG=i{p_NhsVUHY|2JJl_ts6CALNS#)ivfB5m3Xzil5dyhOGgHOpj z^_BNB6PNXul6Uk$7+x)ePvJXnf;?QNc@HX@X?hAN$LbVh*f(s|#R8o0)hBsY4>7=j zIpkD{P2&eRfKfx%$f?qaRG`tMdYDk8%4OU%RU@$eAKdh>v&$UyydI;Zc@GFy4Ec!s zD=kO`$4vZ>go!~K&P7N~$vlGI&fl%PnXhMr=|P1vb2Ra48@W$#nv&){tVT38Y2JN; z1w%fh+1O;-dr0lYOegLWsLeF*q0Of6Q_~|>x&hc;KDrseeL6jCLLV}L@X|&z=0TA6 zs4{wI*)s7l~l;avpx^=W1Xqu@r>E7-qgx0|Ws-?3j zlAd}jTPVD-8$ayjJt10)0c{Ahu@6=1yvA1in=uugPhrRf%0Q?JV+v18OsWEJkjq45 z^Yut*sB_46I5}{~5oMW39ujCupU1!5TyXB(Rmqie9Gf``Uz-zH4>eHch*2eOJX8sk zRJs*vHJ!&Ohy;^{tP#u_a^Dhg+L8k6{9!0_Z0I%c2-rv;6~v7+*)@6msjgFkwf&bK-#Bud>ETa3LO_%509GaysRP0F&?S}R=b&4v_q!ueS%R# zJ|LJdx>pLYn7~6ifGQ9 z)sG6KeOmTvQTWEDO7Q!JynhBz8);tB{}iIrMq4FVH)Qe*tb(n!B7t24_titT80o$? zpx2UvfNf{r8043%G@J#eU?+^|K7rNNPD9$R)C!i2!9Ib4$>gV2?fhGV)7r|?B(Mod zj*Wt_EgLV^@X^rlf?!GN^sY&+N@1eI{ahHOko+)Kzz z==F$Rv?f!ypA@Y*6V?|!5z&j*Tn_c3XNe)KFItHT^g%#S9CHC^rGiY99Az{xiWD$8{oo7J8rvfJFZ`!%onsGyy)i2;`VXA5>JzJqCg@pqt0yn3rw~mT!}|mZk&T2vZAH2!kDoT8`=zyR zlJ`!U+!~?CEG&Z^H=;)b(mt)@)d&;Drb=KvB(Ke*h^DPpV6~fxMO0<9_X+9^`GBC) zkoyGkYWHLE1b{4K_^=?)koyGkdI29U3^&6?@Woawur8CMREem{Xzvr)=*|96?MG&i zTG6+`SzTph-6WGS%ran?;bgFzqT~*1k&4zT+5QruHnWC2AdvQHDcis%ZfvRq)Bot-y(5mAY#bQYLuHkoS8SW|=zo3-SzED~MAr;I}@@^6iu>f`5%wR|0jG3aHeMQOtCow+;oboRzDfugZh+lH% z54ni1lfP%>9|GRY@6(pwWdhgl2&3ThO}y-W?jKMLKd0L0*{r0r95&d}dLZHLvkjWe zq*#T?4gRggjvzCoskPV(qI@8zoHXfDyj{CFcbIN`UFRHchV@>Yb&+|NuNkOk^rhhK z7w7)Q_Wo_}h`lr8UFpA-melJLf?Mfbe+Br^o+5mvfBVHne%7yF`1T9>&woeeJI{O9 z_JM8hj=d-2z4ERgoT-#jP6>}^l7|?!l1iuCI%jDe}e%X}X1=ewaX)p65mJ8#n`B*An;nRsH?cYK z`4PS1OE~cjIq`@O<4IPfUKr15Cm!F)Uyl=?e#_GynVyD1d^CSE5&dQ8dz|=&o%qCu z@qIq!NKCZbn7zSF-G zPJhIQ{n1Ai!Xq4yPA9&qPlgsY-cct${oboRGQBJCCq5eANJOvr`knZ~??Li03Uj`# zNAfBAQ73-!Vf;I{h`-i}ci{Je@PhSg-pTib(;xkItvxb5eau#Tv_H!cz2X~i`ZMOl zD?W_(bz8(cw}dp+Uxz+P|Go%-3I+N{sdN_yh8PK51wUk>Zr>+y2LUiry# z{AWh&b^93};rJ|kCY0FovCyfX8>z4LN8bmuhqW(o_!_5v+^JvW*f%-$1&)2GV_)O& zolgBCr+&R-?>l^nV?W^NMa_ombo0{KY$G*m~@BCb< z{itJKAF*$9;#a)-uDCre^ZFdU#(N;*|2^o%cOnnxV`s#_?AIgq^55g=^FNQ!9CrS+ zoJ!?SIr00E`g$@M9^w4$iPSgoMtHS9_l2;AZErB*PxgzBe#p@e{y}Q}MJK+Ii2YZ# zh_C#MsrAPr_H$d<>$k}5VdI^O*ehQBMtP_guirEedG&X~;g_9wXB>a}J@jb(IY+PG zLl5<8Prs8M<@FooA+Pp39o~B^T(9hUx8V5K@0&;KFFAVsrg~IA8Q~R=es4Y0i(icJ zif7sJckB-X^YH$|(XTuD&Ob`E&vp8=zu~d@IAawCnehqfh*CYI}uFdzt!H zM^In=({C%|TNj(*(H z*E;?>9s5bgzQ@roM)b<}MugXV^&R^P-DH^~xE?s|4>>Q9s3!_e&cJY_DhcaoMT`8^;G)>M_=pcmmK}HqhEIPvk|@eKNsOO-&P&_ zs+rVy)*XFYL@$2>4nOPgOAfyl;njZrTT;L?0YCM^aKL0OM_1TWTBBEEk zZ4N&e;T2D=Q-3LK*&}|B>pi#nCS~`Z9fI)*QCKosRwF-=+HNarCnhz4AL3;g!!}$G`8?KlKl({s$cW zgri?~{0%zx$Nw?a-;kppa`YpPe%8^Kemm7)_1jYOHR{wabL__*eT}1Uar{j<_Dzoc zl%wyD=#~Ey5nlP9aqL$eeZpyf&aofU-sQp|D%q5 zwqt+dd#U!Tj(x6Uzw!N4`?#ZzEvM=W9DSvuFLLzN5xx3f6XDhW632eR(U&>;`G{Wr zRvo_h2b=LqU*Yhz5nk;V`{8)m^{m2aFaE<#f3mM~^qr2r#?c>l^!-kI^^X18zoxd= z;^@nNl&YU|{B=6^-j7r5dmMc%qF26(9KJZhtN(?+o|-S;@wfVu)b<7({aQq?_SPMK zBf?*Xe!yvO(D661mfGHsqn~v2ryYMIj=lf0RDYw6zTeT8y*)J_w?^wqzS+W#fTe)LSLzhy_S z|Btgrrg?u@{|^`C;|{O?oD22p&qU<@Uc7!w(H{1B#bIYxy#9C99`^aY{#z)j*MG4_ z^`{+P|2Y)er)LBt5MEEi|7;E8%fC1^-|LZhmA~-6TSNQeh`sds&sKZbd{#zy>BIkX z4eKW&dga6Wv#>w*`rG5^ha@viW4~d4 zvJOu+zr9ZVBBwqdtHf4^wLj+YBToGir~aU0f6C#{VB(O*5NB0`#DEH;rOp| z>}#Hv+P@k{zu@TW9evUBQ|qrf?X@`ebGfPZ8&{_CIqwM1m*9D!Q$K!Hs(p*Y_c-=# zj=sY2?>qJjd8z&jUy#ZVIQB)3-jA$Lny*6+um6#@hh6_h9licn+8%cO)c;9G?JFIA zsw%X%?{7{=czxeMygpm3&#RjA$EjcK@H3J6vafOUwGLnJ@UxNn_tL)jX#4sNe0$jb zH97U?BK6h&=6`70e9b%h1&8l-{N?F4Va;Ld#~psbiDxn5FZiniQ#-uAv^e8^+Tn+s z`LXQibM&Ln=CJF@h-07Y=tmuWg`=N%VXD95&io#C>Q6cLlaBp_W1kyO^*`n4^&jTZ z{>(Z2jAO6=JCEAuJL6H{@P!Uv$_TIhSWSf2d@bCQ z>aXXW;rzDOZ}00NZ}-0?j(x9wFx(urKVwe)%t(E;w;UP&A2EL7bC8GEw~dJY5+;Ut zeV-`QXWkcHe=he5(TmTF=(8jGO7!BR{_`XHcJ$(-{)-~|0rcX5Wc$St{hy)`AFW>& z(eu}Pp7`uY{i=w51HJfY{o08BYEmyg+P|iV{uSuONA=$BFhBPC+!nE~!Cw4KB%b2? zL;K4;y%i@u8c&|%uPkE!G3>>6M*NLO^j}3UJ~yJDiRizBUVJqExrqKOdhrEJv2gs? z_ie`eVo33Eo~wrX+y^)H{N0QvJ{sRZME@vy@zMD)9MQi8z4&N+CnEZfp%)+3k45wo z=*36#UEt(1@eoGlxZL|Tr1xt-pj$VAUJwKwq@;uKIA05AA5&bLBi;wDuBKjKi z;-mT#5&fIdi;uQH7SVqcz4&PTiHLp@z4&PTsfhmX(2HLp0pWO#)NbZy4ZZm2`7|EU zUyft(<&pWe7SX=~z4+*SX!^BH|BdLyN8_(_#;Y@8{|@ZMN9}tf`rkn>J{r$dME~dL z#RJLywm9w0MC^Znq4<`FeG&hWWsl3fi_d4hf{*$uiRiCKFFxA;(TM(T^x~uQZ!DsJ zJ9_a^|NTz9-j6wH&0+UPgAx4`)DMqvKYq-)eoPmqUQbq>>q&0pdZO#uoMZ3Zlv+RQ zU12=-dKP!;=Q{Qk`qGU#?DeeBsbApKuXpT^JA9Q>zsRXS?AVt$`q7A9{T+|+x}H|? zzijr%^2W%oc)Q+a+51IjJoGK^I7ZU zqspmY<=EFa`Zh=J?@jez@7NDJ`c;QdIPtVN_17Ky&WK+5pL6niI>LWvi+tw1A~jw= z;!opI>*xm}`X6rLZ^*G9irCBFsfb?uw8Jks{IbKZI()2jGk*EYa`-%l&yVoRSHHs_ zdspiDIpV}W=-7`s`Y}hJ^~%lo)ZPil|F}~>*Rh{)^u>;T*x@G~|5Hx=QOADG;b$EC z4M*Q(eqx=Du3>(Cx{KY8M3;dt5g zeahjN9ee#RVzmB5#Q*vh^Lg5dclm#_bw1$9)@A#@pGP#*rKl@0SCOqE-(^@!NtcqY zLY;~_4RspYRIHg;tEg6@%_N;lI+Jo0^{yhDMY@z~CDkgbRa7f6QK_b4?=0%KifYyG zyx_i{`}&^8v*UP=-jAR2y1swzf57%^YQA#5)sz=*5VsV|dfHSUINm)!q&}`#@*T=g zDlhpI@r+`rx2n$m^xiKmD=+n%iY4!*d`Ef7dm`q1`-uCA{lp`RWxNEjkH()QpH(dL znNuwNN{YoVD;8f@EWV*wy!BdheIDX~V#$vxmVQyi;-?ggPbn5ZuULFuvG^6m;wy^9 zcZfHxcaC@O^@X4IbDQ!3^8ORt^-KQ|#WH?GvG_FcHjN*o{xg&hkVi|w% zM0dX8gT$kXC0|x7`4!^2V#$w@Q!M@G6^r-2&h01MpEZwHnD(QO@)7bu z@?(l+{Fq`HFG}@kG#gyr?A^LbtF0q1!1?w4^@e>C#KL6wiw_!*U#{azwYP`*UIp;+eI zR4o1aqV9f(_bC=XqPTlJ6pNoyEIy@J{DNZf1;ygm6pODZ7Qd}nymgX0U-3hV#fKD& zA6G0su2}r6V)0qU;+GVQFDVw^P%OTwSbX2f?tI1j6pJ5GEIy)G{FGwxDaGO!6pJq? z7Qd!gd`+?V%$Per;i0T^zV`0-Njkr>luuGV#rads{u8H}JWKUys!vcpLw<&Qmi#99 z$m!_i5ICpPxS@LZxWZOzCiU`lwYHKk@DV{xxPB(OOzj=e3^V$c{zW^ ziBrULisgLTpz$lzzd-padCwW{dSv{hV(Gs^+@|qr)NhsY{b#!UrJqOs)KK@UcmCI@ zet_~xVn5Y4sXj&dA6@FX8jb^2dI9O^Ta{Q zPm>RkZzwP88+{|qhd502)8r%MSII}o_scKE>3;QIFHI6>KkOX;-t`ir`YFnni5I9o zPW2Va_nm9br$qG$s_&=#D&>=u4^qBH`4r_xD4!-DS6+_aG;vO`oUa?i8S1x5e&sxK zKN>XOEY;U2-yzOX-a6mxpC_MCUe;G34otZ9;xoie;>ZPNzCdhUX!-ZYQeO6Bj<`s?L|i2fOuF-vere*qOH5x- zEc-Ecsp;nxi(gSJ{Z|!>Z_)Y&E_3^dA0=*6evJIIVi|8nvGg0K{qIn}9ObPaIp<67 z`QBDu`p1&)e1%KIzROLYQY`by6MJdA0{Iqkg4W}s`ZndmZ*k`%<4;q)pXwu&&r&`> z`Ekn6Q$9%fB;`Zo^W+QEFHHF*%16jAldmb3<5yQK`!o4gbHA2o{3!KLQGT1aO7$_S z_fDDP#fUekK2G&<$}bWpD8EELNxnutMShcf=LY9`>AfCGQ{KA5T;CkA=SH(WL-l#e zZxd%J-}g3iyd3$FlmZ-vLF{OJ45`YPqe$xmEk=6!SK z`BbC&Ny@Jg*D2p1KYFb@UUz>KclSqecYhR%AO4_OKdM;#l47Y}Q7nFN)~p{^EPjEw zN$Xi6-+!IiZ&0!H%MrJzUx9qzhs=Hhiltvxv8*qzSiI+Yv%X)k_>5wy&nXtatyp|t z*6k-gtyp|kvG^^;;yoWW>r;xwXB12Qreg8iip3{yaQlf*D;D3T{jJ{U=EZl&_s^N$ z`muBV+uyGwKTp?(m+~7onf-j^2W~dKpZps60*x2o{4Hj`M9$SL5ok}tCVg4sVq{Zmw*qI{ZsmHhg>X8$$npP~8&<+J1`m(6}T@+;)4-!k)kH=D;h zPxUp*7sv-6F#C=F(Bv`dU!?j8%9qG5li&QM*?*4um#Kb>@)h!9>t??y`Ng{FGmo3R zM&sA0K1=!OC(QbRTg?5hQ~eC(lTVuU!&Kj-`V{3ST4wzi)wigAlJdchTQAq|uwuEN zPg1`&^~+Iy-0S?(iQezqNGO(mIqKJ;ek+t;-P`Ra^($0wtvUPMd!DROesLeOzE1UC zs$ZhKk9>STw_o@9DZd1}`_=nA)=&AZ15Ft%iehq)~K z7p8oie1v@Pg=T$}{KAV&A0xj(K2AO!H0u-O3*?jJ(}$b&De`6VY4VL-f4rr4{4(SR zUS{^slHWYS^f~eg`SbMMuU`K=`33R?@}(oq`Xc#F@`*f6S zSDf|i)BX9z`CY$HxcB#4g7ou)QQ{il#k$6S@Jf|Gb3h^p&m3WP~M!Zg3CvFfoi65b#Pu(Ej zB7ThWEn07re4Bime22W}@6P$&`}tYxDD!yv$#2s9+QeJL9pY_b>rKvhy`S&(5POOH zh<(KU#D3x+t;b92?I)h3e1Lp}c!u%`@@4XM;tb{6*QC+cZfGA-zN4Q?HvE!&vOqD2Z{avFxNj!K0-W3JVEtw@_F(_;!Wah;z{b4BAy}6 z68HbpTwjcMp7I6a1m)AjOO(%(FA=X1TmN$BH;w11^X2^eslnsS=XaBy$06nA_2&q2 zRI%K@TU4J>Uh2z=CEup}s`8Sr5jPY|eTVA%k9XH2^<#=9Z~esCkKX%>xbl*pB%UIk zCQcJCD3 zGXFW^D6J<)ep#`sC!l^_eirw8Vdv-N#g|oH#@kRVzNJ`v{~OHt`xT2HRV?*U#p0(G zi%%;Szo=MzQL*@S#p3IV#e1UW{Je_A4=a}XuwwC(ip3`ti=R_0KBrjxiem8<#o{*< zi*G3w-+z)hf4^e!ql%?Is#yHAV)1Fk;ujT*FDe$lu2_6sv3SqP=KQ>h#V?=Ydf`>N z-eYwBu2A0ki1R$|eI60#{FvF_cdE$)RG*-FKjo9eA*xSOeTwoc#G_Q7qWV?J$0?tt ze4X->l+RFplk!>e-qYOulH)r_93h@iEXOlN5#>&nac;nUsuNdGzF85*xZ z{pKmZL7b!dBGqqFKD_IX6!t#PTcr9D)ki2_rhJ+5|A#~!X;wgd8SVh*N8*s zoB14Zn>aRM=1YoYf9u34T2GUFntbpAvww=XtXRg&P`!1bSszs_`7Gsg%FBM%6-z!x z`M{gp{^DndXX*UNQ~fOE8^n34FHrpkev5Z%z{jXBL z0Of1sGs??)n#7Sy&G8Gw)@81j`2>mUG+u~&ns|fO)1>+g<*URUs&7$!jq-iBna{g6 zb)tq0J>SI(N zr2HIlobn6g6XYkZFvm}lU%%4y;grcK%16nUh|`p>kPlwv_LuW9tXR&+$h7N)7iqsT z)PIcf%fwmAuaX~nr#qg^XGC##e8u9I6^pOG$E_Fk%{$k3@AYzy#&1$S`d+g>Px(0c znGcxxc^a=k^|O@UBrZ~ZoBZU}?s&5PX~nYMhGOxXip7s-%=$^i;@1>QeM7PM(QC~5 zamC_Sh)cAdHS)vPn*Bxf{4nQsseQhkT&o0PX|&Un4o4?{Pb z{VT*V>hGocRm#uZV)mP%dLPy2Deoum$(j8EW0X&lUnC#8&+H%isB=E`o>wWV z4^uu(zCu1j-haP2-g?F46pf#y`Ud55zS|KZll^JG%7JTKO$Uz7SRQa-h}^G5)B-w&TrEd4svuSNYx1Oi$cM-e2h92~`5E#N@*9Vl^-=OeFEo9Od}q+~aq{68nLa^2_7c-4$>+$Y z$dA9&tWT4#lFyL$9B$TU$@dMJK1V)EJ{~gjaXNqVRG*-HYS^sLQGJ2x)08iguae(> zmD#^a{YzAD9cAXrOG(;yST)tT|qgI7%ERP7)8$&l?Ab z2Z@8kL&PECVd60H2yuk?W$NcQ<#{toK1%#@%8!wc5swqci6@8?#FNBH;wj=3@icLo znT}VUc#$|n>o1XCA&yc$L0qN$Ecr5Vop_zgNUj4KFNz&&K)pRvYyE%+v4N z9aHt;eewM=s&7+$f$9^gej4?{di-swFH-%qsxP5lSl4?$=Inp({cnlt7mhZc|4rg5 zy&l*m9|@cFb;?hWFA}#Xze?WsYO{Zb@gx%KJD^KBT<7|A;A;=U<5Oaq?mE>*OQk`;Rr}KTAAJ>xoi*mhv(3-q)D@qtq`> z`3~i0DW9Nx^Ek8rD&>=uZy#^wJs)?@7yI)e%KKhx=0_=?rhM!KGe1lD4CTWon)y}A zXDJ^THS?Z3&H3jj?|Yq@AEkVr@~zjK`2zXzH<&&{{fd|2xM1#IiSq4)*{@7~i+q~; zRVW|0*z8v&KS;htev*8hc!kEVQ+KCAV?NT#8^l4{3z588|^5x6S z{1oLwl&>Yte39~D%6Bd|^DW9pC_nO6GavknIsYi-2dB(@lJYUi`>rtai*AwNa^vXoz%GyCPp52(+_PpJIU_`KBla(*93iPr1A)m(px_Nzeq zk)pisHnYC}3(kCd=YNsvLzExC-K-y``jV>u$8OeBruvG?%ki1`sM)`&yd00dnDcr2 zf!*IPmQedA-ba3td_Q?Vag5ma7iWL=wf2!e3~qlp$0w^k?>+=x*!lPUGN1ATPJQow z8@$6@UtO(F)*n({c!YSAI7U1{JV`vQSmqa}JMzM;IV$D4Q8FB~8a z6OR+8i06ol#H++>ie>$E#WJ6UV)1Ro;_p{q6g>yPq=N46&E$Gvs~bm&yCdSC#J` zf5kF>fbtv4OTML8@TK?@}32AyeRoe@-sA_80AxxkCQKu zPmtdrpCljtggM_V%_l|qQOc*uPm|A(Pm|A*Z;+p-`Q#|yqI{mb|C8qW3gidK7s;o| z7ic~u%Fj~1On#Ysh5R=8D*1^|nd@1i`P3+%q`ZxUM%n)kmpc`x}6dCzCu`N;ge#QnrU;$h;5Vp;#V zV(A|zPAHaqlh{Y|-yk3VUw8ge@27l%e1QBU`5^hM@-qJ=#WG%q@&)z!?IgT@6COd% z`FV>9y?!fEzg5LDURAM-=UFt@8>aESXWj}VvX{*a{lQOc*tPmxcPpC|7tn)As}zMp)S{4n_xagOrS?Xo zM)?5wI{7I1Ci!vlt8{+0D4(SKGI5*oW%3>JYvg@*o9nge=JTOnc{yGY;*?@JUNu^e zm-^)??;~F!-=Kbe%5PG>Mfm{b179-NyG8jR{(`4#dbC9{8w@)7b&#Bs`($S1#I_D@hgMZQd&r2Go`6!}&1m3z$b)0D50&ya7D z&yx4vYxd8P50KB3kCOK@YI{7mB;QeO50Ij!4^+S}OBOa#u7S-n{AEkVo@)gdP&G~jH zA0ux)mRYtyrEHv9G)H6F;t4yzd*X z7Y~>I3HWnWFjSY5r;D<@}i?o+Hi^FA^^iuPB!NouTu;K=Wx* zzDT~WVjiy&`9bAnJu%`WafWz-c!jt@yiGjtZFhb${-9!6e@JondQ~hws#yG(V)04E z;-`qGiD!xP#EZmB#4E%#;s$YxxJ|rG?E8+nUjvF|y`#igI)BP^{G*hwkdG-Z`!}gr z##<+@Qhl9#jeOsC-StSnI{AR|-Q%xV@=eN*C@=YlV#&8Cze#?c_Nz_#4&^)KgRACx ztlyaTmn3;F`5O5G&BsUi2Ic+a`@Uz+CqO<5lQocg@GUY>*U!#1O{5JUrdF%V; z{G;Tj$*zJ@@vEu z%GbzO$=AtmD3}FXHFLZzx<3S|ewgwh@)P94}E+Qp7L4p)?;RUf$|>mE5t?0uaYm3uaXZp&G9E_ zy=AH&q5J}Iis~y=U!eRf<*SshQGVjL=6q|EpCn%=KSzG-cV@pP<>Ta+iCdH}vnOs- zepC7G>yO`?^GPZeKc!e+FAQy%`406DleZo*@81dX&Bx7t3v_(ERKH1iANheN+V{2YD0Ke5C4`TX9$e@GBd5+@b!{Y)GH`^)+H`VNg3ddggXn&uZ_uUO8f ztYSId6~*Ffip6{X;EpHWuUPyXahcBl49zc3`M&>i`%AwX)n}>RPx(3G7S-pdK2Q0+ zO>=x}$+_Npudnk|@2C76v7hP-RG+7O-_z#!A*wG@y`S=P#8Ij*QGK5BeSb8^Pf&fC z>iv|TBTiF&h3fN^xBg^~pQHLJ)%Q`pL%c}!HLh=)<82XFsJ_nie>Uq!iJO!kC%-`4 zpz&I&Uap6=o$md_znl9*k@~F>cT~Ub^{u?{reYay;VHvKhsP7qVgxh3y1LE zo&62ceAiX}YUG8Ty!7*Ind=P_hp69>^7o>ja8QjOQ(pRyD{dk$tn+E*B|oEBj!!{x zcm2c_#gbnq4%7VWv4g8 z-)mD{Z!beXVfitF9oGKVx!{pK_Of2u<=*R+O_je6Uf9Xs1K!5vLA`!@4E=>Y2<)&9>gHvBIv=KfQN_>1g)ThUt?!LjQ2mdA7uNlg z)IX*A$$HX?FGszw?w?lmx5GPM^7>8cv+Cbd7Rh6|*1%uQ>u2e2CimU#9N*sSk(fGP z?nA#ttY-)MIQu2s`|9oAoSNTXb~FAOjh9gUWq!fGoAXJMA0eM2pCZ3NoTmJu@-lu! zvFvAt^5Kp-zpV0-4|tsY=$(%Rbv(t_6z_Qe{)7GHy#Ah5{SSZ_P9U@EdQ{`dd^c3S zJKukp^D9t3N4}{1`Ma4<+c=W$}Si`oL^^U3Y^)ac358zkmJM+u! zkgHF=dcXfZulSG13s1mGejB_6&f0u12AJ6iw&(Xku*c)Ewrnrsx52%yUjL5bBM}gG z`W+9>?CG&)?fTQD-(H?wzfb!@aO9aDs}KKWF>zSc-8B%W-uk;d2r!59;<{yC=9g1=&$E1<2n3!1e$}MUB^%ILBH$ed>d1| zf`D*Zoez~m%>1h2HROdG=;O?14D;`O_4ZHJ8N4&$oLq72` zkF|#XAo)EH!t?$Jk2QLvT@T($xySD?aOzE1FD_Zh9|4ZTFWB{HXC;nz`^$J%#O33V zFTd4et=Q+=IC$c6oKH4i2A+PK$J$W)6U2DEuikoPe1~Pc@+B_Icy-0o=qEg@j^`N0 zbLu58<2x+e^&-yI-3$Nn8@4!?4UT`S5mnDA^N4N%FJ$x^#fboT;epKCGpMrP3ocm|ryWR06 zKae(gM%^#O*B*18cfIeIL?~~)$E;tX`a0DIC_nUGv%W#~O{$Mk-v2(c-uoqIzP;yj zi|Uuv>$SgPe}whx^{Vo+{vf@cE70q?qI$mj@Qa0oWk$~Pzoh(&;Jb_y!||Pco#Wkm z9+uwb@Ilsy9lK4(9B``c8nFT`8NJAQxbw%zPcL-qeOyl@z0 z&iyu^#*_W%mxoLDtM@z!l8=(l5|7e)LsXxmy#M{?c#~8grusE?ewVQxVdwcS`{B>q z)3=|8p^AHa#4jGv4j*Lw3jKufINo)BSCoGgUby%EiVCTy@9|vhY zQJTN^1Lk@&wB8uy6O><|d|c)KzMJ_hQ~e6nCsqBlVDwoob)>o$fb=7}#H~IAsoAYfF zw^Y5XZ-cz=2D83Rc|ZACTF;_dkF0l@IH&Sw>}LMM)IUaS{novI$o%8vXNkR(pCex+ z_EEk>eoe8Azphx;+f>}$U&Z3vip6g!7VoF=eK)$tL-Iq!QN>bURQoHuO8Z|Tzd^oC zzDDeQrgMMpJ^vcyhsci*wE{AeruFp`G`4whw?4uW&E~c8Q=Pyb3g07KN`N(?B^vvLf%I{ zL*7rmK|Vk}d7C+Yko=nR-ScDK%!epHLOx7>ntX(OnS7XzPn7aAx0~~cDKGmyL)TxH zcuif8k`L|YJP-G^ez%+Raqy$&cnLM0>`&?r(#lWp=C2)CXRm9^eN(P z;<@|W{2tH72HIcF`@JUZ|Io+GBMR-H~{?~(dbN=-g-1SR-k;ZSS{<1$|%D2f!$(N{K zhw@XDw|?(FzYgEcd}k={Q+b)+yzzXFF^e!K5gz#ana-;<>Q|7N#j>6n)vu8c-)oLnr~D}Srt;nWq}P)j z;>rD;*B8CdYr?N}xc7O>0{Kzp&)?1cVvOcfB2Lo&x7B=Qe^w~pAzvpyvTW{8hWc9@ z&h^!MKNF?Am;5AoANdXP-mjYD`zhZ?eu+3w^9@jaiSn`g%<-0~K1lWBln;@gP+s%n+`L>bs{Xp+mob$W){HQZ5y+1YQS0V3H zUi$lq1B#`8mFlD9Yvg0fOaD0W1aX2mtyspdQ~v__Ci$ZBGJc7;Ok5$ZDwgqE)PL${ z=Kki0+mxRtUsf#hTTv|Ib*O%#W{zh)?woJE``IjcFZsaF-Fg|XqFBb;B=%8#oBY5p z%zgpI(l1TdgP;1PC?6o7B|k^~f|OsNe2DxS`7rt5FWvRX{PQ$kgz_VlU!;7L@=40a z$ghzvQNK9lt#xz0E0j-Aeu(l_$|orwq5L}KQSsyN&T{v_x#G- zk5S?r<)h^D0Z`}Qn@qLQr zdY+~Ih|&Byv zAr2^({HS8dM~NpDOTI;%r}=M@FOc^=;?7U{4J(%M!^Go?C7)I-`5EH8V#%*4mVAY{ zp;+?Pqwf49?;#E-mVBHzN7q}C)}NsKEOCkQS@KJYWqu{aGM{zD;_HgVZz~pWJ?5@g ze3*EV)>EeWMJPW>T%mlD{G4K$PfoGSXPMY@pmY8AK3_`H^_?Xy5SNK-#4X}2Vn2;< zo#@P`cRvb|_mdwa4iS$Kk5a!V`El}-#A)I<)u)KF#B)?%AYUL~R{omZ++WLdJZp4* zRLGAu&GWNP`55^o`6==%#AQ0aTdH2pzp7eK_k5)FHkHrqX1%L4UY*A4sPVej<8RIN zZcyHO(tJHQLU}Lwtn$)-op|bZ?s($8zjs;I>!W@n8>aV@UwGW~0rK@HOdom5!+x`PW3~S_ddg{pQHK~)elqN>ox0_sJ_GXl=ts#)~`{$x8->I`$3c++Q;#| zEF9Pg4C};`L%tWd~ZI3R3D=HO_i7Vc>3IW;W@=J zzftNJp?*Wpbn7L*O*~2UQL6XuXVzyaAESJS@_wILU!?jt)elmBjq(Y~_a9*PA3o6J zO{z~)eT4Gc#J>BTe!b(JqI&N^j_)1cGDPN@gpx^8tKE&j8sxMLf zDCOJ49jY%={Wj$*iFLI z+a54ELiKg3_dM6kCn?{g{Mhr%eChcn&r^Mi>Q^bhLisl3`(9x7PaS4*i|RX6KTG+k z7n=3HuQ}Y?U+XD{d(Wpd<-O!H%FFT066X}l@$^xBU3sY=9CXI-{r-ozVyX92{etpR zzo}UA8!vME2@lbF1Jtig`5^fY`4IWx7rW!heC8C(_@1Eag-2;VVe03le1v?Ke3X3o zrRI1s^2`5Y`Z)QiA=4+w2VZ9TB>9P#n?6N;@<`LiXg|`FpMHgz&yY{P()3yKDe~*Y zvowB=>YJ3W4x8gGP<@{2TPiQ-hxID6evNpA`W2~Phw|%3nf)46U#5ENXfr=WyiN60 zs!vmXENu4c|GLBW{hRA4Kk;fO-@Bg=Q+<=_vy@LCW7dyTeVgj@Dlf;QL>xZW>^DvQ ztUoxucfYJtzBuCe-g@S#-b?k%lrK}>NBPCqnEh9eGr3OneyXogew*?E%2$pz`!^#d z4}8Pn-ti7n{U+s$uXXah{fSV0i0YRqA11$|yd2L};x)x`|BX<+{{(kFQlBJVP%QNm zG~X!o3!doqll&&}4AsY|zC-x}<>QoJA2r8oz0Twc)hDQai}D+kPg1`2db9t=8%*}B zINUoQQdHlj{6f^p_s)kP)u*YxNcjx;lJasq%fuDMa(uE>-*=KbAE}=p&MB7qQJQa# z`ejdc`$>M`6q8d_pQri~<@1y;P`)!}_MbS-SvQa#^<+v@o& z+)~eP;o-gA^$HJqiPh&-;s@ySueSPrfXqKMYJPtxPMjpp5toUp#BE~#>&)>Y#2Mlu zaf>+kdb3}QI6<5xE)iFVTg1LMnB#?s)5HbhCh;cm8h!s}i?~DifrFg+^uFKdi8|c- zexHwcl=4%=1C*a9zd{_O{08}9^1)|0^V`=d?B@GXp0nKZSQYg(P3?~f}l*WZLxx8gG&E*8e&C(|bKxA-|zm z#%~dO#+`cm`Keg)L&Q& z&NoT><)!@?Qu!3d6K<;U+R97+Y3k>retqYdkKQHlY^Y=yPRlYmEx*mk*h)c{=UnZ_89>(~>gWdV| z?nh;{o&>zGUe6%r+xxQreH(E{_5V2PoiFF#FJ#oeU-=@uu>SWib9B5r^zT>ZRs9pF z7uNN8s<$f6`O&)`SLt{!Qa+@Pznt&Oai_j_JvJ#HR{0k^$5|~tC$fKkT=6`!e&AaU z_g+6mRsGOz>es10uJSU!y7EV%UO0*W?p*%~%16$3#_z2sNq&rcihPoMntYyohWxVf zGXFKja()MCf3j2`nlR^|BR@($Pku~!89$*|#xGEQo_vw~BKd}5>AykTCiY%nu4kCm zU!w5_C|@SOLOy+=*}tOlH|*wo%c^`HUbs*FzUlFV*{`Ph$$ICN{~_vy$MN5t^RZ6( zmdeZiH_3O%M`(Xql+Rpb&aX{=oqUJ%(wf?spWsI-u)$cu{*xh&nT9> zchm8`{2F;5`8s(&`RO-1{d(8)1np0N@(s!d$#0MkksqBj#|tYj>zh>1gQs?Lep#28 z_2a}*)lc?sQu*$FDwgqT#Br)`DlhdN#Zo_hsX3n{)lVwl9bd83*NM|q-%?)ct;^i; zgguI-Uz(0zmiiSbKbv&>N&P(4=cs<3@_F)Y@+In5pnUFfbNu96OkSht1%klJ{DRkIk5E2Cc`xN-l=qQOkoS|HCNJ+5dS8Cacc}CKyRR=xlz0Cm z$)T2iH~HX|&id^4muh@DzKLB!?7lwx4zphVmO$_8Q0p*^SH$b_?)&YXUhC!HVBUUx z4n9iegTLR>eLu1DKkD|sqUBEbIJk2U-V-7wdxvJ6*i!sTu&<1NV{hkQPkb(T1|I*@ozE2hpFFtx{u}eV zp7=B1ipqZz+yIyC`p3X?UvtN^o{Rke&)WVV;unKwzK%89{#fD|xCvjd{o9D=z=MCp z>pS=zJNLB~z@C@yWd*vtzqJG&R(=KCIl_Mbx^sVP4IF`&_g_-K0ZyX6*KdDo8(c+R zK2O+zeBbl%e1nhJJOB?&yu*0q0k7j@axu4D0zG#<2M)@c0kh`_D<>32@RLe-^x|`~%=Mu$<4bfByp4 zz!{rQd?CiKy7!M8!BdKV1uc`$@RAqd zc>e_dXV+f@Q^*;rQi|e zQ{V{LssAu|;1_QFZQy|7Pk;v%e;ynJJM|T?XWgy;5!egv{(Tzk*YClbzjFQ4;5OLt zd%Xnv^`Ps0;5yjxF9okWf>#qmr z!NYdHpMuxG(>6aVi2Zuhy*^I_$H9HJe=m3v9I&|po>lx`@FIB3_DACn)wRJ(HeU{2 zc+9;%?*vab-Rtu)aOSs|zny;p{&3yI@7(#G4$gs7wtv6;VY}bE*XLJ>p9aq;f7t(+ z{6=sG-nl;Kz>&w@>vILX_=J0X?tv3+`$_luJO=D(q28X)JHcaMugxX!IM_LUo8UM& zVf*2i;dp@uY@PwHEB-#X4IZ`q-bY|Bo^r3xGr>{Cw}L0Yt9$gW&n7tVw0nI$_vP3- zuycLJ!SmpReSO^q-uk1PUjvW+3FoBk_X%Mle|Fas27AC*R`-5!DLAD3Ja`!F)c*q9 z{)=009f|Q29|7(to&axyo%)Z1%Uf=J6}$powdc3jD{%h&&Gp0JS+L{Z4vuzQUjUDR z9selU_fPlw>w6{k59}PjW59!8C!Yql{^k15fj7aNni{=fEjE&vAIW&-1&%{?K0C=czoum%-EUxU9SWF>pxveO`tA!}HwR_4``~ zfLn@3z)P6#guS0PgT4R7Ibd@WJZA0K_4;$~qi{Z>zt8UXa7Gyj0Iw-N>}Z@1U>Q%IPp5(VcI?>oyh?)uU|FB|A~*lj=gVCVjDKG?T&$FBDaS?~-vZO>;}@?htFu>lV6v18Zs^}u8Cyaz|^{ISH7;2Qjl z?LP+|^SJ%~51a!}+WuuDCSM8Of-gGt;DtSRSmQf;$KxSz`x)+f_k0b4UUxrV4(j&hh&VI1Ucj<30B{y#5C}`*|`rtMcyx&x4)g_rKtx@;?JFgPrmB zI3Cxs@~;C|mA?vH13Tm03vMd^TW||JV9)O*5!?&*-m&ZXI1Y}1J7tj6n@%t>e zg8R#1n6JE__%V1I*RvcCx&QnbyrBHSC*rlM@~;8=_jC8_3UE;Ir@&#bAN}O|y^r`O z;23<+_8Z`|VjmWo!FY0fWj@D(wZ9BpQ2E=zMV0>!`8K$Ue83*>kk{dOf}Qj64PgKN zF24gD1v|&*v*3za|1ZEfcxV1k5dRZghWFazJ?r%*hrkv1g`K_qc^!D-Kpd|fJw6ZY z>EB_^+4UK44(!bLb5aj>&etD-Yv8P1|6Ae?IR5M%R>tnv_XfOn13TyIbBT`thYsF> zdt`4uClg-^uK964vi--vd9^>Q;J|a->*Epd6nM&BuOAy*A8^MX1BafwqxbjLaK2mz zPX1}n?%y4g^Yc#d8v1)Ne>oq%0oP_%iK0Lzk$nR@C zA6!*F0@C4S|yWi|2J;E3W=!6C&LfisHV4bCgR5gbSHWY7 ze+XVw{0Mkh@n6Anil2EZ?q7-r!Ly2w1;-V?5j>*!DsWKo&EQeRMevN`3V1>BgWze! ze*z~J?|mBXw~7w~PboeQJfwIW98;VGk1KvZII8%g;6cTAfs2YO;GE)h@Vw$bf}<~R z@6XRW9eHqjzux)&D&jG4Cgk3at^}_sz6tCvz8y}IYO+>g95+;6~rs23gr2f>3j$H11#r@*r+e;asA`TM{*u=6~85S%!AhlQ76 z-Rs+X297US#*^!P7+eI){ZjZsa7pn^;N(l3`(>YX7q~3_?Daed-U_?d_tV6CoQdQ8 zYWI3R1Uv=CmUhQ`J$T_5w|;{7?cff)b3e#}`;T>x=cmCFU}t^b0q4O^{y*Slu+LuK ztIooEIptH}CfHg30=T94C*U^NdHpCqc;La}o%|8tKCsjO67YcX9|aGBr|j|XBmOlw z2k*@HZ{Q`BfA-lX9|iWm#?7At9tKa_{oh6WQE(9+ZM*wjCjJe0Th;%Q_&Mj`es-K& zKSF#Vxbn9>twYdXo|o?f*VXx%2QMoBRj~gR?)m-;a1r^TZvFn&pTI4}eQ(71cA<0r z9b^rGmlcnJS1~{5e10#urnm@hC|(D*z+rno{tFHq@ABbzp%Vu?{o>$B#UBEv6yF1$ zQT302mlb=@#rr#ze>u3L_#Ch&;+{{R1NSNZIk+Dz&wIH({{;4f<^CY-I}i7JaM0%0 zg6pqz_w!2f1@NTGuY!xOa=(A_IQhNL$MZ<#PXT+8m+|C&bp!b|@UqJ9H-Y&KyZ570 z!P?&fZm9g1!9mPlt|#fgMt&3Qd98c?_g!FF0kE_FQ^6gaUm?5xM)GUmsLDU{LY!a7 zkJ$NBz}nA&Q!4*6a0Tn}+xh+9Wco9~d6mB%TvYjAk@qLi4|y41j_1q3LCj~s?teV_ zaqu?s;w67M*nfh%{ttnps=h$}o8SoY&Un8Bm$Bc@cu$bu2G1bxjCbHgSf3g%1dii; zaOzJXe>u2!+kjmc(4y*hU`5HKb zyj=fseeAdluV)m$2;5YB64)1Y^H+c)ic8>>;{OLOC_Vruc1`h_a-yH)_PY%n0z1d^ z5#pCzj_XI|F9&B;{$ApLgG(xZ=v%NJ#TS5mC%fZc2aYKI3^=8D6I@Vy)LXG0aCt{> z|1JP$#{f2Gg-_kF>-(*DffJ{>=kIsGGvJiH|Gx!qf+uYL4>*JC!8zXkDbv3S96jBA z|Cl2FBDetWyq@_9@t?q3@cs69&$$BU6Fz)!_;ug`uycLC1sqm<8+cstx4umhW5Av>T)r5b1Uu`$8XQ&Y{}}oEz^lmPWkk2%pNWUA#Qe{6*MAyu z3Y>y>=65G}R`K`2d9bto{{t^8?#F?vDLx*&srW5m?^$mD+rR^0XZ_y*XB7V)yaCSI z>+xP?^2@+ecyr|VGl|~~-hwaM^`9jE9(dtw*KZOZ^maTS&T+4YbBI3%o`%O|+1+o? zJMel$aSA;8Mz{W6;=h5X;bV6Fsna-qia!tTkGse7o8Y9npV!Dg0iHsB-0s)^PLodn zSCl`G`0e2SbKT?fQE*W4*TExT=lIvbam9ZFPb+@byKsL8JLm5(@mb(a_zio$)5N!f zYv;N9_iN&V-;Kia-Oq!r1}79h39cwU9S_#Pgqyz~oKgJz_uzi0_j`0L=N;{D!_h;2bz%b9@&46<5Krr0Ykn!}DJ8Jz(GEu0QNU*ne=y?sp|Pgx9x0u*~;9@_Ss5 z{X*WkUmZgHa&TMulZh_@N8aMD=O*yD;xaf1cINXSIIsL)z)N7SJ>TbL@%#Y~+I%v& z4$j;BR^mBu>aDK7pZIrR@07c~zZ3U;823B)al8KuiH`v?XYYKN0*|D2SXG-hz@B%w`GFg8{)2Iw>z+R+ zfmhV$9~Xk#%Flu8%6|r&oZew=+x>q5o_x34?|el#@*Qwh`D1c;-ha@op9ilh|7-Ay@}7^#^TGXm>N()yS-1WK@RH(pg9op3 zzhC=la6$1Jc;G{>KkQbVKZ?`f{_9W z9QY`X2iUUn=Lp~8UQc&`Cv)z2KL(e;&i$e94m|%pvcp=p$A1HO;8yqgxdxmAhi(6D za1|V}`9EOqZ9A-%&2LBJHaM|QZ~jk%W1n=N5Al!Tc?Pc9{+Hm?7hHeb$I&0$Z~L!- z8~3`eZ(npL*0b#9bKn)Qlizm%*W!eFV^vTt*^Jf!B64*c-(z{-U6O^!sUO0Q%|~lNdfb3?XZS?z53sR za~+p2_%znz-D&yk%g7(8J%AKrHeQp@xuv|_WbVxHv&6%oqx~!Eav|Lmv03R9JX`U=UqPq$H6tb z|Ip{Kzc1WrP22a!+rbMj+PUlX+a`De?D(@kkNTkNm%s%uwzPYHKCp=S9lmqd`E@zC z3?8)m{|ww1a{Y_Hfcd=)^Resaz?(;4JbQkRgA*@z=Ra~6<_C6uKI1ds(vhzJ2Y3@a zV;}E}zKHw(QRrv$55bLNcJ6xqzjz7XpF0-ovB%GVr$=^LC7T}vZ>sy--@t9f&$=7O zNAY>!j^a;&w-w(Hw%+94FaHVlD1ObCa6KwM7u=`#6JVd>--7!U{{!q-?E5mV-+%6D z?T2CI`xA$Ovq!t%e;5WwJ9}Esw*6_~g7Qi5=0Dt@r+**Vr~J*}$-nPu9cKN9KG4nYZ^gmeSfAtHE_vnWz&X!}otXH@?dxF7rL)W77bn6Fy@rC`6RzZ*QM>bJmo z)H~z`L}@=uzttq!1K!A1FmEJe!Kps;FR)z0Jqit?t4Gp zzp42TfgAY#9c~BR>*q}HBZ|}DM-|@zeoXOw;1=GGc)RuZ`5SN({+V_^`L|MS<)0RY zKfv}o%Q!!j_k%r{?}4^I0&HQvPXE_}{qXzSejGe_+|FI!&$|{JQd|O$D3*Ua6$OV; zFYni$@im+eieCXPt9$~ys`zGbP4U;k4ORa*xc_*!zwhffpTTlH$aqJC)`%~JD+EN6aA6zx94*@AE~@;q9>DVg`4KyR7Fhdva82bO1n00Gznwq0V*2yI z9hLtCIIZ%JkPmzt_uJRH&-Yh>%Q$|rJ~@7GAU^?~K;BvZRp2z(IsP|;>#Dv;{(Inp z8t-9n7RTQi?~mj?-@*B<#(NI9qs9w^gU7n{XOX`O95`X;uFqd{;3V=sdwomfe+tDTvGW2 zxUTqGu=P5(UkMyk{3tl4c%Sd%d{P_+7ZhI#t}4D2+*Z5{_P^d8?-6iB@m@c`@mG8} zID+eA*k0c$xz$C!+K8MiGKsp+rLY|E2r$l&8WvY;jx{&zF%-RIEM4vIetGN zzXA52x^vg(uh0L9$>)Jn@Z_Jc1lJXBfj7a<{o;_HV*aPOd;)k- z@fF~R;yic)?DYROI0c@x$9oFAuK0kT;rO2JuKx(IU#&k%{u1y!@^QOgf%swYCcLx$ ze-l5yhWWiAtKf%uWPXKR%o%O#396Q71 zTfxiVti7K5i5uXNGhM&q7bd?Lyb52m>rW+~22Y*k`a6lg1MVMp&-XolX>t@i3ZJz5 z-wR$+eE2%@XS?-R5SPHC@G-mo8Nb5uQ#=LU06WL?T5wq1pKmAsMexWu?(uzy_!+;( z^{@Q%iH`L%W z;6&WrzdMN=;2eCyt{<)A`Ji|S96Q(b{SV>!rFaJHJJ0nS;FRLA-{AF@;$?8?d^bPv zFveFr3vMgk1ji=a{MikR4-VP${V4H+;3j<3_W$z;_V)spuLh?S{}NnQ{E|mec%hqr zA2_P`XW*RT7e0pTQSp1gfj7C=-)+QqgJc_>K=C8sFxZ2b+>iJEEzWP{j{wKP&h>F7xTN@lVDH5{cYVL_3*ZIC4RGkqJ9mA* zZ<~1FcetNVy2tB6;sSUa-WmU2;3buh{vOX)ync}DNnT&y0@l6(Zm9h8HcU={`z~>> z$GgD+aKhe?=RS`2BZ_YVHx=)A0{8Pv-Tb@31;tN-t;^i?4L=FS>(wCsN9OxJVdbmf z5ZJk2JxaU<&M3cs%jCnsHF)R#awd2~@%zCYuycLf2M#9P{LjH7U@xX6=flBI;eG=i zwE0AE5}dbrlK48Xb-C+H#1Dh>@Xq?$#C!e$uZQ5r?fwJAuLO_0#huT2-~@QU&c7c# z19sMbCpZUo=KBrehrz+Ox}V?f^?x{j!Id4o^xB~AtcJ}xY@cNZ*{#l#2{!{Mz zkrTiJ>hsJuf-A~j2M#NLr|?yn?;gGWKL(FYyZr{A#`&P~mw;E5{}y;y`Tv4P-s#p4 z{}IPe`7^-F@I#*7c-MoQ?{V`h;Hb(!1dhMg&F}vw+@C(+=HCJyQTe;U+sb>}xIUCW z1w4JVTmOFWkn(qcH$9|BTNIGH(4%;6deo25u<-Z*V~QgZ_g1$u(~MvEVhu zDe&mE_&nY|pFR$*DE=OJOFYwTHu0LxFuiq743m*KC z>mLFa6o>wb^Xq!opAXK16ZZL<1$VOU_4PD3`eA&3z+TTOe}e~4I(hKKjqc}LzX#8Q zm+kx^e@FcsPJTOoy6{cz^^^lQ!DDuQ6+Cpa>-X&Zf9B2yPRgQw{Hq*>Ns3CQMM;H8 ziFS9~!C_>lat3kI$z4W9Eqi-=cZ++s>+K$Q7#bDdq{JelBqO6jqoO1w<7Ze@SY%j~ zR9aYMlvGrdlvHHD_dL(cGxN+oyZbzQ$SYpu>)!kM%xC`3d}f|`=Apg9d!)P>Ui-ll zz4t4whig{r`0s~j!uw=@xa6PYcMao_jQ<{Z(nn5=HA{PcfxBRWIpbCDzsS!=_4B7+ z!TWAIF?RH1SANaEX&;}`^T~s7!>3P-o&8)_-h7n)w@J&t0B?ZT$ndZD5B>E%?GN7y zZ-*Di`2Pc+{nZm=JEZ>bGsL%D%YOqmeDlQEekp(Zf6@QGmVXb46ph<`5)(opEnBqe`vYgoWb+pg2CPJu)#OL>yPT^e;6{&SMn7+O6}-l<|5|uF_Fo|FFM#(L_Ve&A z!TSvP$-EoC0r}-p-Ue?ofnsZKwz1rZH!|SH&@#ZRc5&4@e^S=x}YRKOU*BbI$;Dt@2y!r4pc!$9c z!c%7G@$_jp0}o?gtT$fyLi#&AQSwx{=3?d($+O^bu#ykLwFa+-+hDbRSr0FOm&x$= zz@{QnVN2~UvmAAvW#LC^0s2)4~-GMDmcf?M@`b18iIO6p6>Tj9(bb^aE^ ztJ-w_-Vg7(O4r9H;61P^kDtPa=Z}gVl;wBEiz&bMQQm&U9C*LM%i#kCe-%Dx@SovB z@N#Ky+Dn*!I>@i&8{t(3?}RtPv!wi#bFl}Hm)rrz-lTaAJRY7R^S>ExzFMdEYw#>s z$$tjt-mK+Mzy(;zpMlpe(DIWhm<_O!p9k-Li)+P~cc@6L|$)@Lt%1@l!- zj}L9|p6hh}-wjV580GcPd*Ru6Jzo3I^jx0XKu zPkE1)AB1aR75+m0ShzyV7s88RCI19}tolDK-vzIRmHc@ZGG4z|%V)ydVI{u-K6sOs zZ-NiOO8zH!!uzy*!bK;p?#C~iVUSRMVcr)qUKH5#+CX08#xm%IT^zXI!FkJg##tYeA&#I&Ue`J*R zJmwAX!jIBlW%$MLIPdzTH#vMp?3{YqzrnNM z$+zkLHXp8q)%e*7&otzDc$Ohw0k;{v23~0Be-`e7RsC#*3-BbFzlY(q@D#~^gm=KA zzJ$N^47}HnpEZ^7e65yW08ccy8E%4Ae}5C)Vem)boWVbZR~h^_c%#AN8b}YU=7;m( zU9if}Yv5(9R|TJN;+e6x!F!Rb^!HeN9ef!1M47)EEPfw6{$o16weSR3#djw>1ycfqRsXTdpGg})kJ56_a} zyW#zChvav|O`p)=?|^5)D*XS03$RN6kKtjsONRdwyw?anW;*#Z!oLhY`wkucVt4|) zP=>z-9)?x=uZLH_D*lhbTj1GJ|33IAyh!p-;Dw*m;Sa;TunK=h6Xgl3{9gp`HRPAU zW7lhY3*ZdAOxn-E2jFJO?|~hBxi1+a?$0eBI-LdLfj-Vdw%{Y%I{qwD7-7t@~L zNm9So;>+NbhJ3!oo$w~Z-n-z&yG`tK}_V0kV!D{^34IhG4d;S&N@Okau z{te#r1#Pe9wUh^}^v{7OZqoTr!n0x3|CYcVuxfuR;9j^*=J$4Zt0Dh9ybGQ!LNY9wX)7fp@?) zvi&{^@4QF1&;P*tV3q$;Bga&xBR~zaCx=PmuaM;dQVouO}=% z3hzKZQ|iCG#m{emW8cu}dz-~MxEZ+`|Gxk)F!)LMAnOIJIO~Pj739ZQKb!*}HuyX^ zNBA)^Jy*iRuo}OH;1!1a)9@-o{xH1O;HTjYhW@12Gk(IV{ND&~gD1)OZiM&2YCOLW z9=l!V?>F!ySjnG1oAzzUXTiM&=i%kBs*g{@>)?qpzGvWV246FW@!a5B;iCpW1W)*; zE}wtGlVFvfSH6MrFxCqxxB%y&n-Ttnt&DF*_{-tF244#wfK~gr4L)SZzYQOSReBD>1g@3x)82@`xI_2HCb$>wmGTt48&=^z4DW?i_;0{t zAJp^P@8Jco3V&`J<2kItUk&eqRrs6Xqp(W<*WuWAboo357ho0sl~>XJVHN&u@Mc(r z{~){t&dKzD51#a09lmBh`vtHH|5|tvtj6~OycJgAzX(s>slz`BH^3_Vx$V>^+$!UH z6TI1wuYmW#i=_N3aP#-{e0l)h2G5f6=Xa3*hjjjD!3B7slo#OLu&Vz}7Vn22MLtgI zpYtZ#H>}F)YY3AL#n|F}wplB*Q-=!v9d)f9+dnzwl%!?}ZP;D!$v`hTU5JBY2^~Ps1zVl`{O4 zYv?~e()O3blVD}4t<*0(McTUx9{*$AJ_q4h20sWF;Mr3D`3q@( zaFgUt_%N*EyBThJMEfgSh5jCGe?NQ>R{G=LM*sSWPR~+!A*|ZpXW?F0wZ9+2%iuN{ z|9|0KhWwRpr~kkzz4PG7Kh@>C1a5;>{%?nu87%Hn+Gyw>fOo^SGQQK|G=!h&@pl^B z04x6`4(DK1KJSM&!p$=L1MmS@wg11t!;k9mMBKHs8(tyx=ffS3>HUBk;qCBtDc=Y$ z|G6Gdehlw|$4L3V;XQ(7`#nFwc>D|9e!Ahq@MNj~A$Y=GE&o2;04w=l;f3&{Qh#D6 z^2hc3aV5MDu95OVct5Pl?=E=!FZFo!5WEsr{r_(kzc9)A`d2!?uZMTQ%6=B!39I?> zE_miXy-_!N;%O=T8RWa9{s-U%Pw4)?)#4}Mt;ids z{`0zN@31PrODxX9K!BgTK}JKed$DMmhrtLPUI>-cfk7$J`68BLEZmw zO6>eT%G2O$;4Xug!$$}|TgLYZxcT>*?}Jww`~!Hm!3W^8|DgASM)xyc8T@ki>_2LG zi;x?f6!L>w{w^Umc)gJSNy{G)a)Tci@;__&GeQol{`8_O^UYsIv3PRlzv+SxX>J$% zSDoJi+yQsU^0*t`2&?x09g81_cO#!5^$)`b;q8(yVB$5o6W({CdLD5~Yze%T=T~FV z7tgca5ATG>OTGi%^*3GLTP^-EydSv;FXs1}>+t8{g_19UTc6VD&%-r`HQxd+Gx$!6 zAAmO?SNZ!1yd75U?=KdgJb*uje4LDbB7DH$Cin`C5z3?~$5h_BQ6I|JTF`X|ctzZ@RVbH=3%t>g_rM2WRX*>w_!IEB)!P16cnZ8;+W)D=hv8j9U-sV@Ey4bWbbZZ$ z55co!__x9hw`%!PcqXjmABUI2s();O_rj}W_($O057)%HBtH%BGI+ue<+G;7>u=NH znXnrF-vSq472gtgE4)M6yB%Kk5ncY<;o4JGe?KMmsE{}7_I(Im35)q(wC^#)%r76U ziM7h|m<8uRW{WGCYjF;-A9n;a({}4DYyC^Xb>qeuz)WUk$HAuEMv& zv%jKw3B2k)&9}qLNdIbS|4#TQ`ieKhn@F$Xufb!mzeegm2KK1+3%pdKUU*?zvC)6cf02I!<#;?+uvs`-T{wUr~AjR;YqM+ zug_TgqGhyaL%#`L2eU2d%m>%O`#z!h^YElkYJ1z^dA|1F`O~@2k=%{jlU-^_wy|HAac=OMSOR` z9beEq=3T58;W1Kv1-!%H74R-tyN$+Mo1FQIF!;?4Z@#X#SB7?4Bl(-I(Yn-bozc~@frU|{UV-~d@uw{L!|)FDRsEc@lK74A^WY;!cyYI*DgQn^>s}rHv>Hh3Fy)gM0$KWgZI&*J~Wv$tsd#+!*BUQYT% zdmV)L!(x0D`~|p;^fbewy!Ki0vsN+we?`w1Z@2g^c(Wn@hs9UiLi@W!)rlKO9fCw_E$~iQjTigjeXy#Z*REl{`hhOL96Zk8jquq9?}I18D*X75 z&|VFBE8J%Ad*B6djcgy^gcllo1YQKI^u6(;)EBJmZ-m#wV`TVWz#9!d^ETRt!E@oQ z2EPa1Zt(r^PFVR*e}ywY)bYJ^E#viNxP5F)R8bkj}@B!LOv(r9Ki~YiqpYk#K zKl-@)7AS}8y4cKl_7uYf21xW?O$ya~?1syrWn zSHk0E_^07@u(CJ*__xEG;bv+7R``$+{(ErEPqcsjPm5o92kjBLYAx?4EY=2{jjQ^74Q*QwU1xH zlYge$$IQ>rUSXv_0I!9W{^#JGuuAVQ;VF;m`aN?4>4jDPUk|T>mAxC_^{}e{ufY4@ zCYk;}!e>9G`P@6HUs#2|8t#H;N&WX)d>_0KxoRJOgf|;}?p=%@26w>QVO5_i;oXM( zTkxX>KMn6Q_=3+eJ{Y_RJ_IX!Yv9<=HGdx-2dnZCAF`ck$Y;W>1`opvVO8FnEZzri zM_!}q|8vX_uxcNR;76JNUWr`HkGH@%#y?R$!k@Sw-ekz1gnJG7_|MaRv8T%O)$o3U zTj7K7Y8ijZ;v3;*ztH~9ZSY!nveduF;)mhwhW-I~uc3e97yLW{uGy>YPlG4I%KnuW zcfqp_{dd4!uuA`}7Jm*tZ0K)?$33p?KWgzIxCy!P2ghu}e=+nYTHFLLGxXcwwT6Di z;+61rLw^Ij*U;Z)@gBJ5mpVNM;fZjwEdP_f=;w*>BIK(4USsjq@Jd5IXz?0&vmw9R z;)mcz4f$^^j(v&#@++Ob2^KfO&B#^y=3AVBdky*fEWQg~ZOC_6`~*Df488yR5BM`I|;gztt|8R6dn&o;uZhHDM^o$w?> zem`7;{0wP-H@wx5{|@dzF2*0x-~R>I8uC*&)83J*_o2^&4;bm239m;k##<4-1D_=fA|!fffvZ|->~>`cnjsB-Vc8o-beaWdpP|b=0hXB7r;BP zr~IFVaO~HbZ-HmRtunrE!7B}Z8r}o1mGTSkC4En5|1k-V`3>_eW<`EK2G88jdPDLL z;dQ?yKFOoE(BFQ?`u#*#|6+L7@5!%}=iqgJV1G=??}QH>WPQVgBJBSHUhr4e?~+gd z3ibVWJ^#*w$Nxj;XBE5%u95cdhYwLc&E!Y)pWj;YGw-84KCSC-Hk^T#Kky-V1FY)j zG59E)llIU3D*FGd@t*Id-~({2l-~uP{qLIC5y?-$T-uD;r^ey@e ztj5QS;hGm}&cb62z7rk~tNi={UIeTB)P9@!9ai~C!u#PPGCv=J_r7Sf_x|lS;F=eY z_P(zmE_!Kw3GG4F&!zB=bG7_E@Yt7X`GfF^m+AiX6g>QLo&HxmNc%JR8hE9_AB0!K zvt{}ofggoc{?7gmw6jc>n#x4v?8?5Na# z(f63IF3|O#hBH$}d(WS?!;>#0zj8c#{zI%UUQPNWzX9&5)BST9T&UOOza8$Ks`E4Y z`^@LC8sDZ`oPhTUeVM)w!s}nJ$Cvxz16Szr4%J5@;$a>*5dVHG>KMJeytsCAlQ^&Uv-tbyIe*FR7eTkM|xSRaH zPRn!f!DcN8xp_8s9GX zG39x=9^bBkkH9K_>)<`JMtkGiFX6*2TK>{U$ln!O-UT0ey>8zhhBwaE`S~uq+2Et_ zR)g#JP(HBA&k#Izj?T{m@IqMS=McOaR_)~_KcRl#pvSjXc=KF6e%%5eY1QM`58&K9 zEg$z&((^_wpAXkwrTf=%c+z~GpL^jc20sZm7(C%;_Ld?fnekt5w$ot@oVSg<=!H|C&KFoSR#s6pc2;C;_;L7vpcn9e{BG`AS(| z_ruE*qrLMK2jM-i>Yu0n27eG1{Xwj+UIib5$4H(HAAxg{d*I&A(N6mi`tP>*6Yw(R zZBqXm@Ge-{e*%6KUMJvOW zhnK-hekpvwkhj6H9^JnN;2L;?w6_7?2p^REQ+Sy4sQ&*ryry@w_q^yy_z=8a>i-p9 zo!0)=zeV`PI=&Y_N%~+FUkaXht&Z=D@Z>k>_#T7DW^{aG4$vN872kAtOrMUg8$LvS zReKwTGX~!cAE5k{{F_2<@DX?o{gcPDjCZHR{tK@pJrf;1Eq2oH=}*WfOL;xqYslXY zFQB}{cp=8i6g&pG;t#=xNUv(2cU$~0d=$AD4@GF!)w@uECGNtp>m3&nLvLGov`wZXT-3ykoO z!wU_51q1yegRg_T489-kHTd6f23Glf-Cs|L^%?wLxZmLK!#N}T_`fmU8oU4=Hu!dU znGycC@Nz?b;ZyjlhI}dfe+J(Vzt`aZ!Z#Uw1rymygKvi4XYkM9Rj?}Wm;9aa%aCW_ z4;g$Pe5=9#h1VG2-|!E{2ZKKhuQT|U@Op#Ke;WVA;9htmtjc>6{5gZ4f_r&5+*?Z#U$>gTHC;`Tsg0_AP@m@V5=V7v5p;5%@ua zXZ@S~OIVfn&G0Tm{uunQ!7o30LhJ_yXW-pN_^-ly437PW`QG5U@Lq%0!21mT3A`Ux z<$caGC&Yeh@FMtk2Hy!EFv9;CK4@_Le;MBmF2IM4@ZW%kKh2%s^lvf#JPoUVV*D8! zV<43O1i#ec$p(vOOf%ul7rFlX>D)5=7E7LnbD!akccKyTecg}?`+F=t057}~yHcM) zUZzHb=l}59ySTGk{EfX=S@Ie1enWnhC0}H)NPo&;VgFi-hb{h~#cM2HXYpq&-eU3B zEdHLwyDk2i#gAM38;k#7@lzK6%i=L7`pf$qi|Z`D)Z(k)yZop@jVvrviMgP|HI<5M)~t|p~bV{Ros^*{*8ViK6&xU79`9?T*4|mc_{uVrT z$bEh%^nU^GKjOaMDELWu^*={B=cfh#9p26RC?dV0|DQ6N@_@%nekr`*{qFf2p?@(f zzJaRRM=QKnzRx1U7vPNsuNAz?JwGDCe-hq(qkEoL@LjO_C;IOfE#3mJ=lz%|GCeYuRJ0B<2a;Xga+ha1R`s{eVG{#z~XxA;Bqq#HOtDec_`FT#F@ z}mLv zQhzzTbtUmlIJno&kzuyT@fp^L9HP7SQBe3#k`r!TV zVtk@Yi1hy%?%;jBSD-J->+Dl0PouwH1|N8Djq`mJq5my-+f6z>2Q5D9G`;j9cs@ME;BI)f!S59E=eh4+iu|vJXTqYb3%(29LHSIS{1Ch! z7W0FU{|#3EM3^J+WMh0h^-SV}Rr=3^&GD!SUWHtxcdlUKcgL?&VsC{HBUkMq1J7i9 zQu;T+8_{QYaniE}UVvQ1_a)dI&vwA;jPO5)w-H`^KSJc^Pq6wY{O7+LEb@2M;?d)^ zzL1}4@e3?|vBfX9_yUWkTKpP|FSmHE#qAa^v^Zt)wH9Az@vy}=Sp05_S6ci5i$4n2 zE_CAiE1vI{x52IGtM>3Ni|>JZk=M%b`{A{Q{uyWa zxf$MqT=|RFTKrLX7jiWoJp`NSKMcXucmv!l z!|#Ll!=gWk{GZE*d=9}XeOJL_-log%J@5p0z0_X^Z-dqN{wS>eiT1kB;wLTsi^YGp z_^8Dvoa47Y#^O^g9&hnE7N2WzgT+@^e2vA|!3Xi@X3Fxo3Eph*I(TxH=Mgk8QNDM= zEAykB?{x`|B?k(fsh)IyJfFQN8Jm=dP3q!;_`bfS7bTOibiRAAKQI1@zrOX2mtEQ# zkLL$F<8$JM;F|VAYg0U)&Zhg*1w!=Yx&s5q--W_;B@~?Bg~IhE6rA53h5n&ZDy}4x z?n@V(lxOo@+1x;XAsrCFC(D+~tQKTTQ0~0nQ@!zAY9OEOPh`>s zrxN1VwAR%Rq!L~6d?wXdSKrh&x3?`5Kfy3>K{t?cf~Ky_7_sa1)*IxJ(n0jJ(KTB#CwT2HBhW5 zY}ZXQRO0FW?reHb6^B?=r)CJM=3`S)OdYB=7T=l<5bNx^Xh8j z@#OGuqBFguuC=~_MwO5E3=hXs!^u>xkk0nUlbJ+5-_qvTO$_vja6~kmF2p4z3rllO z#Myj-!s)v(-JdTAH5WSvoyM8Y<~>0sn@nV!An|KRLcQ10=f&&l>w8j#xT`@vlD(;T z-yrd|ENQ80D*lf zHwiK?wC5Y*^HaI{Y4I!Lc`@sy`g`ysn5*OY-o!wnGm~mrd=Z{O;i5V*@Xl>7G&%#p zoMcPmP`WGC-;#92(`;{1j@fD|9tw!ObIwqEp{_1TO!2}%0^e=UP)mD)|Fnco)>J!Q z84;d|>jR`MpFrfgP}hiWM5%cW!kna?l4MIuW1fMB>DSF+qbPu|L8s+AnUlP*lumHi zfC8|ht*eg`){3`os?!>jzaZYaCh&t11Pyj22VEtM3uJv%rb%Dw_xIt+zVY-yI zv~6dzg!**pgter@myJJ6xE$9;%CV#EU*(#$B-%p!nvOY^|6CtjHNrdSXpf*etz~B_ z(Lb20o1s?A^HT|y=q#GMQf>8h>Q}Lb9>`|mmod0r8%yRc>`L_|`g_Fcl8-R=C9Y+u zlkLl?zs2~#-%Q&~*WMqF3d^eg0zV~}#IGADPV}L{ zz?&Rk^MeI=Rv2Z!CSOPw2F3CjOyqJYW^^&nLYZv#+QA%!CXFNpdhj8fn7hTM0C8O_ zY-9%qk}1c{fLJbP*h=WeNzew}VI58l=LX_AQji!}3W{=x{5?1qx0i%@g)z*%*_GP9|A{E4I_+T1X5GB$leA$`}$(;#|OD zTqaR96fbQTC9^m!xq)o%q9*n(@WK)UZe`N0GK2ZJ7ou}8ohh(?CyFF*3snK-MH_c^ z5S($$Kg{_=Z2vTNr9>m49pvMK`BWEU8GAy;kL;p!Q*2CZ{(-ozF@*=pAdp-t_eq?f z4fAf*@AR>V^1dAnaId}5E4WRwJ2{YR@N9o~x(CBfj~21G zzZ**cwWDDCq{=ewl($&c7U-?!xSKon`K3Khuw;|u0d}+dWDfMbZJLZtkAj>>5Oa~-HcJ@wxt?b z63!lJ_h3Ql1v!(!SRh4bVSc(gvu4C&a9bg zAvaUwbLcv6+e}iuw7~Ap~8~HKw9_*B9EOp zo<88NWzwBJ$z(l$#pC!JU72JC_fkG=;J2=PR*ubpa2Ab+Ht{93{Foe0IJ3ESN%=96 z!hD>r$s-GqWOEaxsVmFF8)qNI7R^A^k2{eaYEdJoxA&qttg#(4OLj~1C)N3k-wdl1 zQG0zn$%B=WiE>q34bR9>OHuUvWJk|WGJ5K*-kqU3mkP&@{T*$fSmYTh76s&|u7QmQ zx0o0W(gnHp_7a^TJLXud<<8EiA$J*hk$EyC^a6js+On_NwFd`<(*;DC))rjnI(@yf zgw(R3mily;vrsf*(LdGI%9g;R$;O_6M6Orr`UHs#Yn=eWwBfFF4|VKTmoJF(fFwvz zGDISi>rDiO$Yh6713`j8)=`0iBuhZ|Nf$+D=Fsu^gG}XFWx0!QQA16 z0u@r3OwOZxDs^p+8LFY19nd*5`dEK6;KyZC%{IF7VTz~TnZnx9?@Bw%sdiCt&W<5} zslhKhEzeSHU@0Q<=$4lHsjlcJT`E$?8;!G#b~dK+T%*PH$ekjKQe$)5Rl1T(I-N9= zV^)osz>=O{+~_*u9h7nVv^Y6(g9cYp#h`9wR2OX~dYn9zkGH1^I4YSrvH`Uhsxsl(lu zLz{5(Qv-#_wcR$Cx)S@%PHJe4zDG?w;0b7E$qw3QW1MbZRk-RxC8~<6x2jNWbE}Ju zvp>YgI5>l`QC3Js6k)bQ^kxK%$j;`z^OtDa?r-AMl0R6V9n5u-gaOAvb`10t1?#kf zbrz`%+bY9FDobsZr9~=Two13FLi)tMm_IWqTUqoYze?NOCAJbjIclM%)sG22Eo<4rc9B9+rLqn?^~qXaW2b0?W}P32C7@MmP?`b1TGLzLjA7ck^D?NEvL zc?#h|nBGLV5am6NC^mwf_RH3l*BtB*FxUw(I|ewe9+dp|p*BIDTa0e5f6{aQ=hqkcLVbxptk_ zP})X59LF|tK3wlNYFv(o962u6jgA_Z<7!8a%k{^j#^w0zk>he5`%rOFyRP#eO53Pi zXMqqoW$r2>YFu)q5ji$@InuGDHr~&C#p*@w>giuXrKHMGu3M<%^7cC0ovkl6vc(RV zvn?8;(+X9wsTxwX!!_O!Iz)Sc!#^Aw$t~5#NAvMiwmWctA|2?2d2Z2s(Thu444MzZ zSj0y(wn2leNH|YB*AJ#DXigvKa`ukpmT)D*jpDiMfOt0QZYMeS&qe2h%9^zE$yS#{bCC3HC8;0)5d~tHVFwOltRGOR0%o0?kk9Z?p}|-(t~EcQp0wTZt$=jq*-Rz4pI+0YzKvn zFl+|}k2-7z*(f<|2Pu~twu5v_4%

rH1VwUEdfi_uh?uTro)HVLQk~iDA2>su)>| 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

nGX=Tp)Zj=WtKbmVQsRxhtO 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 literal 0 HcmV?d00001 diff --git a/armeabi-v7a/gmpxx.h b/armeabi-v7a/gmpxx.h new file mode 100644 index 0000000..c27a2f4 --- /dev/null +++ b/armeabi-v7a/gmpxx.h @@ -0,0 +1,3442 @@ +/* gmpxx.h -- C++ class wrapper for GMP types. -*- C++ -*- + +Copyright 2001, 2002, 2003, 2006, 2008, 2011, 2012 Free Software Foundation, +Inc. + +This file is part of the GNU MP Library. + +The GNU MP Library is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 3 of the License, or (at your +option) any later version. + +The GNU MP Library is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */ + +#ifndef __GMP_PLUSPLUS__ +#define __GMP_PLUSPLUS__ + +#include + +#include /* for strlen */ +#include /* numeric_limits */ +#include +#include /* swap */ +#include +#include +#include +#include + +// wrapper for gcc's __builtin_constant_p +// __builtin_constant_p has been in gcc since forever, +// but g++-3.4 miscompiles it. +#if __GMP_GNUC_PREREQ(4, 2) +#define __GMPXX_CONSTANT(X) __builtin_constant_p(X) +#else +#define __GMPXX_CONSTANT(X) false +#endif + +// Use C++11 features +#ifndef __GMPXX_USE_CXX11 +#if __cplusplus >= 201103L +#define __GMPXX_USE_CXX11 1 +#else +#define __GMPXX_USE_CXX11 0 +#endif +#endif + +#if __GMPXX_USE_CXX11 +#define __GMPXX_NOEXCEPT noexcept +#include // for common_type +#else +#define __GMPXX_NOEXCEPT +#endif + +// Max allocations for plain types when converted to mpz_t +#define __GMPZ_DBL_LIMBS (2 + DBL_MAX_EXP / GMP_NUMB_BITS) + +#if GMP_NAIL_BITS != 0 && ! defined _LONG_LONG_LIMB +#define __GMPZ_ULI_LIMBS 2 +#else +#define __GMPZ_ULI_LIMBS 1 +#endif + +inline void __mpz_set_ui_safe(mpz_ptr p, unsigned long l) +{ + p->_mp_size = (l != 0); + p->_mp_d[0] = l & GMP_NUMB_MASK; +#if __GMPZ_ULI_LIMBS > 1 + l >>= GMP_NUMB_BITS; + p->_mp_d[1] = l; + p->_mp_size += (l != 0); +#endif +} + +inline void __mpz_set_si_safe(mpz_ptr p, long l) +{ + if(l < 0) + { + __mpz_set_ui_safe(p, -static_cast(l)); + mpz_neg(p, p); + } + else + __mpz_set_ui_safe(p, l); + // Note: we know the high bit of l is 0 so we could do slightly better +} + +// Fake temporary variables +#define __GMPXX_TMPZ_UI \ + mpz_t temp; \ + mp_limb_t limbs[__GMPZ_ULI_LIMBS]; \ + temp->_mp_d = limbs; \ + __mpz_set_ui_safe (temp, l) +#define __GMPXX_TMPZ_SI \ + mpz_t temp; \ + mp_limb_t limbs[__GMPZ_ULI_LIMBS]; \ + temp->_mp_d = limbs; \ + __mpz_set_si_safe (temp, l) +#define __GMPXX_TMPZ_D \ + mpz_t temp; \ + mp_limb_t limbs[__GMPZ_DBL_LIMBS]; \ + temp->_mp_d = limbs; \ + temp->_mp_alloc = __GMPZ_DBL_LIMBS; \ + mpz_set_d (temp, d) + +#define __GMPXX_TMPQ_UI \ + mpq_t temp; \ + mp_limb_t limbs[__GMPZ_ULI_LIMBS+1]; \ + mpq_numref(temp)->_mp_d = limbs; \ + __mpz_set_ui_safe (mpq_numref(temp), l); \ + mpq_denref(temp)->_mp_d = limbs + __GMPZ_ULI_LIMBS; \ + mpq_denref(temp)->_mp_size = 1; \ + mpq_denref(temp)->_mp_d[0] = 1 +#define __GMPXX_TMPQ_SI \ + mpq_t temp; \ + mp_limb_t limbs[__GMPZ_ULI_LIMBS+1]; \ + mpq_numref(temp)->_mp_d = limbs; \ + __mpz_set_si_safe (mpq_numref(temp), l); \ + mpq_denref(temp)->_mp_d = limbs + __GMPZ_ULI_LIMBS; \ + mpq_denref(temp)->_mp_size = 1; \ + mpq_denref(temp)->_mp_d[0] = 1 + +inline unsigned long __gmpxx_abs_ui (signed long l) +{ + return l >= 0 ? static_cast(l) + : -static_cast(l); +} + +/**************** Function objects ****************/ +/* Any evaluation of a __gmp_expr ends up calling one of these functions + all intermediate functions being inline, the evaluation should optimize + to a direct call to the relevant function, thus yielding no overhead + over the C interface. */ + +struct __gmp_unary_plus +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_set(z, w); } + static void eval(mpq_ptr q, mpq_srcptr r) { mpq_set(q, r); } + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_set(f, g); } +}; + +struct __gmp_unary_minus +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_neg(z, w); } + static void eval(mpq_ptr q, mpq_srcptr r) { mpq_neg(q, r); } + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_neg(f, g); } +}; + +struct __gmp_unary_com +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_com(z, w); } +}; + +struct __gmp_binary_plus +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_add(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { + // Ideally, those checks should happen earlier so that the tree + // generated for a+0+b would just be sum(a,b). + if (__GMPXX_CONSTANT(l) && l == 0) + { + if (z != w) mpz_set(z, w); + } + else + mpz_add_ui(z, w, l); + } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + if (l >= 0) + eval(z, w, static_cast(l)); + else + mpz_sub_ui(z, w, -static_cast(l)); + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_add (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { eval(z, w, d); } + + static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) + { mpq_add(q, r, s); } + + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { + if (__GMPXX_CONSTANT(l) && l == 0) + { + if (q != r) mpq_set(q, r); + } + else + { + if (q == r) + mpz_addmul_ui(mpq_numref(q), mpq_denref(q), l); + else + { + mpz_mul_ui(mpq_numref(q), mpq_denref(r), l); + mpz_add(mpq_numref(q), mpq_numref(q), mpq_numref(r)); + mpz_set(mpq_denref(q), mpq_denref(r)); + } + } + } + static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) + { eval(q, r, l); } + static inline void eval(mpq_ptr q, mpq_srcptr r, signed long int l); + // defined after __gmp_binary_minus + static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) + { eval(q, r, l); } + static void eval(mpq_ptr q, mpq_srcptr r, double d) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_add(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, double d, mpq_srcptr r) + { eval(q, r, d); } + + static void eval(mpq_ptr q, mpq_srcptr r, mpz_srcptr z) + { + if (q == r) + mpz_addmul(mpq_numref(q), mpq_denref(q), z); + else + { + mpz_mul(mpq_numref(q), mpq_denref(r), z); + mpz_add(mpq_numref(q), mpq_numref(q), mpq_numref(r)); + mpz_set(mpq_denref(q), mpq_denref(r)); + } + } + static void eval(mpq_ptr q, mpz_srcptr z, mpq_srcptr r) + { eval(q, r, z); } + + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { mpf_add(f, g, h); } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_add_ui(f, g, l); } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { mpf_add_ui(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + if (l >= 0) + mpf_add_ui(f, g, l); + else + mpf_sub_ui(f, g, -static_cast(l)); + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { eval(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_add(f, g, temp); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { eval(f, g, d); } +}; + +struct __gmp_binary_minus +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_sub(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { + if (__GMPXX_CONSTANT(l) && l == 0) + { + if (z != w) mpz_set(z, w); + } + else + mpz_sub_ui(z, w, l); + } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { + if (__GMPXX_CONSTANT(l) && l == 0) + { + mpz_neg(z, w); + } + else + mpz_ui_sub(z, l, w); + } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + if (l >= 0) + eval(z, w, static_cast(l)); + else + mpz_add_ui(z, w, -static_cast(l)); + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { + if (l >= 0) + eval(z, static_cast(l), w); + else + { + mpz_add_ui(z, w, -static_cast(l)); + mpz_neg(z, z); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_sub (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { __GMPXX_TMPZ_D; mpz_sub (z, temp, w); } + + static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) + { mpq_sub(q, r, s); } + + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { + if (__GMPXX_CONSTANT(l) && l == 0) + { + if (q != r) mpq_set(q, r); + } + else + { + if (q == r) + mpz_submul_ui(mpq_numref(q), mpq_denref(q), l); + else + { + mpz_mul_ui(mpq_numref(q), mpq_denref(r), l); + mpz_sub(mpq_numref(q), mpq_numref(r), mpq_numref(q)); + mpz_set(mpq_denref(q), mpq_denref(r)); + } + } + } + static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) + { eval(q, r, l); mpq_neg(q, q); } + static void eval(mpq_ptr q, mpq_srcptr r, signed long int l) + { + if (l >= 0) + eval(q, r, static_cast(l)); + else + __gmp_binary_plus::eval(q, r, -static_cast(l)); + } + static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) + { eval(q, r, l); mpq_neg(q, q); } + static void eval(mpq_ptr q, mpq_srcptr r, double d) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_sub(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, double d, mpq_srcptr r) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_sub(q, temp, r); + mpq_clear(temp); + } + + static void eval(mpq_ptr q, mpq_srcptr r, mpz_srcptr z) + { + if (q == r) + mpz_submul(mpq_numref(q), mpq_denref(q), z); + else + { + mpz_mul(mpq_numref(q), mpq_denref(r), z); + mpz_sub(mpq_numref(q), mpq_numref(r), mpq_numref(q)); + mpz_set(mpq_denref(q), mpq_denref(r)); + } + } + static void eval(mpq_ptr q, mpz_srcptr z, mpq_srcptr r) + { eval(q, r, z); mpq_neg(q, q); } + + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { mpf_sub(f, g, h); } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_sub_ui(f, g, l); } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { mpf_ui_sub(f, l, g); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + if (l >= 0) + mpf_sub_ui(f, g, l); + else + mpf_add_ui(f, g, -static_cast(l)); + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { + if (l >= 0) + mpf_sub_ui(f, g, l); + else + mpf_add_ui(f, g, -static_cast(l)); + mpf_neg(f, f); + } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_sub(f, g, temp); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_sub(f, temp, g); + mpf_clear(temp); + } +}; + +// defined here so it can reference __gmp_binary_minus +inline void +__gmp_binary_plus::eval(mpq_ptr q, mpq_srcptr r, signed long int l) +{ + if (l >= 0) + eval(q, r, static_cast(l)); + else + __gmp_binary_minus::eval(q, r, -static_cast(l)); +} + +struct __gmp_binary_lshift +{ + static void eval(mpz_ptr z, mpz_srcptr w, mp_bitcnt_t l) + { + if (__GMPXX_CONSTANT(l) && (l == 0)) + { + if (z != w) mpz_set(z, w); + } + else + mpz_mul_2exp(z, w, l); + } + static void eval(mpq_ptr q, mpq_srcptr r, mp_bitcnt_t l) + { + if (__GMPXX_CONSTANT(l) && (l == 0)) + { + if (q != r) mpq_set(q, r); + } + else + mpq_mul_2exp(q, r, l); + } + static void eval(mpf_ptr f, mpf_srcptr g, mp_bitcnt_t l) + { mpf_mul_2exp(f, g, l); } +}; + +struct __gmp_binary_rshift +{ + static void eval(mpz_ptr z, mpz_srcptr w, mp_bitcnt_t l) + { + if (__GMPXX_CONSTANT(l) && (l == 0)) + { + if (z != w) mpz_set(z, w); + } + else + mpz_fdiv_q_2exp(z, w, l); + } + static void eval(mpq_ptr q, mpq_srcptr r, mp_bitcnt_t l) + { + if (__GMPXX_CONSTANT(l) && (l == 0)) + { + if (q != r) mpq_set(q, r); + } + else + mpq_div_2exp(q, r, l); + } + static void eval(mpf_ptr f, mpf_srcptr g, mp_bitcnt_t l) + { mpf_div_2exp(f, g, l); } +}; + +struct __gmp_binary_multiplies +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_mul(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { +// gcc-3.3 doesn't have __builtin_ctzl. Don't bother optimizing for old gcc. +#if __GMP_GNUC_PREREQ(3, 4) + if (__GMPXX_CONSTANT(l) && (l & (l-1)) == 0) + { + if (l == 0) + { + z->_mp_size = 0; + } + else + { + __gmp_binary_lshift::eval(z, w, __builtin_ctzl(l)); + } + } + else +#endif + mpz_mul_ui(z, w, l); + } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + if (__GMPXX_CONSTANT(l)) + { + if (l >= 0) + eval(z, w, static_cast(l)); + else + { + eval(z, w, -static_cast(l)); + mpz_neg(z, z); + } + } + else + mpz_mul_si (z, w, l); + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_mul (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { eval(z, w, d); } + + static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) + { mpq_mul(q, r, s); } + + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { +#if __GMP_GNUC_PREREQ(3, 4) + if (__GMPXX_CONSTANT(l) && (l & (l-1)) == 0) + { + if (l == 0) + { + mpq_set_ui(q, 0, 1); + } + else + { + __gmp_binary_lshift::eval(q, r, __builtin_ctzl(l)); + } + } + else +#endif + { + __GMPXX_TMPQ_UI; + mpq_mul (q, r, temp); + } + } + static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) + { eval(q, r, l); } + static void eval(mpq_ptr q, mpq_srcptr r, signed long int l) + { + if (__GMPXX_CONSTANT(l)) + { + if (l >= 0) + eval(q, r, static_cast(l)); + else + { + eval(q, r, -static_cast(l)); + mpq_neg(q, q); + } + } + else + { + __GMPXX_TMPQ_SI; + mpq_mul (q, r, temp); + } + } + static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) + { eval(q, r, l); } + static void eval(mpq_ptr q, mpq_srcptr r, double d) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_mul(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, double d, mpq_srcptr r) + { eval(q, r, d); } + + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { mpf_mul(f, g, h); } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_mul_ui(f, g, l); } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { mpf_mul_ui(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + if (l >= 0) + mpf_mul_ui(f, g, l); + else + { + mpf_mul_ui(f, g, -static_cast(l)); + mpf_neg(f, f); + } + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { eval(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_mul(f, g, temp); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { eval(f, g, d); } +}; + +struct __gmp_binary_divides +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_tdiv_q(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { +#if __GMP_GNUC_PREREQ(3, 4) + // Don't optimize division by 0... + if (__GMPXX_CONSTANT(l) && (l & (l-1)) == 0 && l != 0) + { + if (l == 1) + { + if (z != w) mpz_set(z, w); + } + else + mpz_tdiv_q_2exp(z, w, __builtin_ctzl(l)); + // warning: do not use rshift (fdiv) + } + else +#endif + mpz_tdiv_q_ui(z, w, l); + } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { + if (mpz_sgn(w) >= 0) + { + if (mpz_fits_ulong_p(w)) + mpz_set_ui(z, l / mpz_get_ui(w)); + else + mpz_set_ui(z, 0); + } + else + { + mpz_neg(z, w); + if (mpz_fits_ulong_p(z)) + { + mpz_set_ui(z, l / mpz_get_ui(z)); + mpz_neg(z, z); + } + else + mpz_set_ui(z, 0); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + if (l >= 0) + eval(z, w, static_cast(l)); + else + { + eval(z, w, -static_cast(l)); + mpz_neg(z, z); + } + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { + if (mpz_fits_slong_p(w)) + mpz_set_si(z, l / mpz_get_si(w)); + else + { + /* if w is bigger than a long then the quotient must be zero, unless + l==LONG_MIN and w==-LONG_MIN in which case the quotient is -1 */ + mpz_set_si (z, (mpz_cmpabs_ui (w, __gmpxx_abs_ui(l)) == 0 ? -1 : 0)); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_tdiv_q (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { __GMPXX_TMPZ_D; mpz_tdiv_q (z, temp, w); } + + static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) + { mpq_div(q, r, s); } + + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { +#if __GMP_GNUC_PREREQ(3, 4) + if (__GMPXX_CONSTANT(l) && (l & (l-1)) == 0 && l != 0) + __gmp_binary_rshift::eval(q, r, __builtin_ctzl(l)); + else +#endif + { + __GMPXX_TMPQ_UI; + mpq_div (q, r, temp); + } + } + static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) + { __GMPXX_TMPQ_UI; mpq_div (q, temp, r); } + static void eval(mpq_ptr q, mpq_srcptr r, signed long int l) + { + if (__GMPXX_CONSTANT(l)) + { + if (l >= 0) + eval(q, r, static_cast(l)); + else + { + eval(q, r, -static_cast(l)); + mpq_neg(q, q); + } + } + else + { + __GMPXX_TMPQ_SI; + mpq_div (q, r, temp); + } + } + static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) + { __GMPXX_TMPQ_SI; mpq_div (q, temp, r); } + static void eval(mpq_ptr q, mpq_srcptr r, double d) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_div(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, double d, mpq_srcptr r) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_div(q, temp, r); + mpq_clear(temp); + } + + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { mpf_div(f, g, h); } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_div_ui(f, g, l); } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { mpf_ui_div(f, l, g); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + if (l >= 0) + mpf_div_ui(f, g, l); + else + { + mpf_div_ui(f, g, -static_cast(l)); + mpf_neg(f, f); + } + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { + if (l >= 0) + mpf_ui_div(f, l, g); + else + { + mpf_ui_div(f, -static_cast(l), g); + mpf_neg(f, f); + } + } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_div(f, g, temp); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_div(f, temp, g); + mpf_clear(temp); + } +}; + +struct __gmp_binary_modulus +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_tdiv_r(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { mpz_tdiv_r_ui(z, w, l); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { + if (mpz_sgn(w) >= 0) + { + if (mpz_fits_ulong_p(w)) + mpz_set_ui(z, l % mpz_get_ui(w)); + else + mpz_set_ui(z, l); + } + else + { + mpz_neg(z, w); + if (mpz_fits_ulong_p(z)) + mpz_set_ui(z, l % mpz_get_ui(z)); + else + mpz_set_ui(z, l); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + mpz_tdiv_r_ui (z, w, __gmpxx_abs_ui(l)); + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { + if (mpz_fits_slong_p(w)) + mpz_set_si(z, l % mpz_get_si(w)); + else + { + /* if w is bigger than a long then the remainder is l unchanged, + unless l==LONG_MIN and w==-LONG_MIN in which case it's 0 */ + mpz_set_si (z, mpz_cmpabs_ui (w, __gmpxx_abs_ui(l)) == 0 ? 0 : l); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_tdiv_r (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { __GMPXX_TMPZ_D; mpz_tdiv_r (z, temp, w); } +}; + +struct __gmp_binary_and +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_and(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { __GMPXX_TMPZ_UI; mpz_and (z, w, temp); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { __GMPXX_TMPZ_SI; mpz_and (z, w, temp); } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_and (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { eval(z, w, d); } +}; + +struct __gmp_binary_ior +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_ior(z, w, v); } + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { __GMPXX_TMPZ_UI; mpz_ior (z, w, temp); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { __GMPXX_TMPZ_SI; mpz_ior (z, w, temp); } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_ior (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { eval(z, w, d); } +}; + +struct __gmp_binary_xor +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_xor(z, w, v); } + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { __GMPXX_TMPZ_UI; mpz_xor (z, w, temp); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { __GMPXX_TMPZ_SI; mpz_xor (z, w, temp); } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_xor (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { eval(z, w, d); } +}; + +struct __gmp_binary_equal +{ + static bool eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w) == 0; } + + static bool eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l) == 0; } + static bool eval(unsigned long int l, mpz_srcptr z) + { return mpz_cmp_ui(z, l) == 0; } + static bool eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l) == 0; } + static bool eval(signed long int l, mpz_srcptr z) + { return mpz_cmp_si(z, l) == 0; } + static bool eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d) == 0; } + static bool eval(double d, mpz_srcptr z) + { return mpz_cmp_d(z, d) == 0; } + + static bool eval(mpq_srcptr q, mpq_srcptr r) + { return mpq_equal(q, r) != 0; } + + static bool eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1) == 0; } + static bool eval(unsigned long int l, mpq_srcptr q) + { return mpq_cmp_ui(q, l, 1) == 0; } + static bool eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1) == 0; } + static bool eval(signed long int l, mpq_srcptr q) + { return mpq_cmp_si(q, l, 1) == 0; } + static bool eval(mpq_srcptr q, double d) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_equal(q, temp) != 0); + mpq_clear(temp); + return b; + } + static bool eval(double d, mpq_srcptr q) + { + return eval(q, d); + } + + static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) == 0; } + + static bool eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l) == 0; } + static bool eval(unsigned long int l, mpf_srcptr f) + { return mpf_cmp_ui(f, l) == 0; } + static bool eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l) == 0; } + static bool eval(signed long int l, mpf_srcptr f) + { return mpf_cmp_si(f, l) == 0; } + static bool eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d) == 0; } + static bool eval(double d, mpf_srcptr f) + { return mpf_cmp_d(f, d) == 0; } +}; + +struct __gmp_binary_less +{ + static bool eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w) < 0; } + + static bool eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l) < 0; } + static bool eval(unsigned long int l, mpz_srcptr z) + { return mpz_cmp_ui(z, l) > 0; } + static bool eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l) < 0; } + static bool eval(signed long int l, mpz_srcptr z) + { return mpz_cmp_si(z, l) > 0; } + static bool eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d) < 0; } + static bool eval(double d, mpz_srcptr z) + { return mpz_cmp_d(z, d) > 0; } + + static bool eval(mpq_srcptr q, mpq_srcptr r) { return mpq_cmp(q, r) < 0; } + + static bool eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1) < 0; } + static bool eval(unsigned long int l, mpq_srcptr q) + { return mpq_cmp_ui(q, l, 1) > 0; } + static bool eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1) < 0; } + static bool eval(signed long int l, mpq_srcptr q) + { return mpq_cmp_si(q, l, 1) > 0; } + static bool eval(mpq_srcptr q, double d) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(q, temp) < 0); + mpq_clear(temp); + return b; + } + static bool eval(double d, mpq_srcptr q) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(temp, q) < 0); + mpq_clear(temp); + return b; + } + + static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) < 0; } + + static bool eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l) < 0; } + static bool eval(unsigned long int l, mpf_srcptr f) + { return mpf_cmp_ui(f, l) > 0; } + static bool eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l) < 0; } + static bool eval(signed long int l, mpf_srcptr f) + { return mpf_cmp_si(f, l) > 0; } + static bool eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d) < 0; } + static bool eval(double d, mpf_srcptr f) + { return mpf_cmp_d(f, d) > 0; } +}; + +struct __gmp_binary_greater +{ + static bool eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w) > 0; } + + static bool eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l) > 0; } + static bool eval(unsigned long int l, mpz_srcptr z) + { return mpz_cmp_ui(z, l) < 0; } + static bool eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l) > 0; } + static bool eval(signed long int l, mpz_srcptr z) + { return mpz_cmp_si(z, l) < 0; } + static bool eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d) > 0; } + static bool eval(double d, mpz_srcptr z) + { return mpz_cmp_d(z, d) < 0; } + + static bool eval(mpq_srcptr q, mpq_srcptr r) { return mpq_cmp(q, r) > 0; } + + static bool eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1) > 0; } + static bool eval(unsigned long int l, mpq_srcptr q) + { return mpq_cmp_ui(q, l, 1) < 0; } + static bool eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1) > 0; } + static bool eval(signed long int l, mpq_srcptr q) + { return mpq_cmp_si(q, l, 1) < 0; } + static bool eval(mpq_srcptr q, double d) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(q, temp) > 0); + mpq_clear(temp); + return b; + } + static bool eval(double d, mpq_srcptr q) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(temp, q) > 0); + mpq_clear(temp); + return b; + } + + static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) > 0; } + + static bool eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l) > 0; } + static bool eval(unsigned long int l, mpf_srcptr f) + { return mpf_cmp_ui(f, l) < 0; } + static bool eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l) > 0; } + static bool eval(signed long int l, mpf_srcptr f) + { return mpf_cmp_si(f, l) < 0; } + static bool eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d) > 0; } + static bool eval(double d, mpf_srcptr f) + { return mpf_cmp_d(f, d) < 0; } +}; + +struct __gmp_unary_increment +{ + static void eval(mpz_ptr z) { mpz_add_ui(z, z, 1); } + static void eval(mpq_ptr q) + { mpz_add(mpq_numref(q), mpq_numref(q), mpq_denref(q)); } + static void eval(mpf_ptr f) { mpf_add_ui(f, f, 1); } +}; + +struct __gmp_unary_decrement +{ + static void eval(mpz_ptr z) { mpz_sub_ui(z, z, 1); } + static void eval(mpq_ptr q) + { mpz_sub(mpq_numref(q), mpq_numref(q), mpq_denref(q)); } + static void eval(mpf_ptr f) { mpf_sub_ui(f, f, 1); } +}; + +struct __gmp_abs_function +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_abs(z, w); } + static void eval(mpq_ptr q, mpq_srcptr r) { mpq_abs(q, r); } + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_abs(f, g); } +}; + +struct __gmp_trunc_function +{ + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_trunc(f, g); } +}; + +struct __gmp_floor_function +{ + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_floor(f, g); } +}; + +struct __gmp_ceil_function +{ + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_ceil(f, g); } +}; + +struct __gmp_sqrt_function +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_sqrt(z, w); } + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_sqrt(f, g); } +}; + +struct __gmp_hypot_function +{ + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_mul(f, h, h); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_set_ui(f, l); + mpf_mul(f, f, f); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { eval(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_set_si(f, l); + mpf_mul(f, f, f); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { eval(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_set_d(f, d); + mpf_mul(f, f, f); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { eval(f, g, d); } +}; + +struct __gmp_sgn_function +{ + static int eval(mpz_srcptr z) { return mpz_sgn(z); } + static int eval(mpq_srcptr q) { return mpq_sgn(q); } + static int eval(mpf_srcptr f) { return mpf_sgn(f); } +}; + +struct __gmp_cmp_function +{ + static int eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w); } + + static int eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l); } + static int eval(unsigned long int l, mpz_srcptr z) + { return -mpz_cmp_ui(z, l); } + static int eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l); } + static int eval(signed long int l, mpz_srcptr z) + { return -mpz_cmp_si(z, l); } + static int eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d); } + static int eval(double d, mpz_srcptr z) + { return -mpz_cmp_d(z, d); } + + static int eval(mpq_srcptr q, mpq_srcptr r) { return mpq_cmp(q, r); } + + static int eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1); } + static int eval(unsigned long int l, mpq_srcptr q) + { return -mpq_cmp_ui(q, l, 1); } + static int eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1); } + static int eval(signed long int l, mpq_srcptr q) + { return -mpq_cmp_si(q, l, 1); } + static int eval(mpq_srcptr q, double d) + { + int i; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + i = mpq_cmp(q, temp); + mpq_clear(temp); + return i; + } + static int eval(double d, mpq_srcptr q) + { + int i; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + i = mpq_cmp(temp, q); + mpq_clear(temp); + return i; + } + + static int eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g); } + + static int eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l); } + static int eval(unsigned long int l, mpf_srcptr f) + { return -mpf_cmp_ui(f, l); } + static int eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l); } + static int eval(signed long int l, mpf_srcptr f) + { return -mpf_cmp_si(f, l); } + static int eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d); } + static int eval(double d, mpf_srcptr f) + { return -mpf_cmp_d(f, d); } +}; + +struct __gmp_rand_function +{ + static void eval(mpz_ptr z, gmp_randstate_t s, mp_bitcnt_t l) + { mpz_urandomb(z, s, l); } + static void eval(mpz_ptr z, gmp_randstate_t s, mpz_srcptr w) + { mpz_urandomm(z, s, w); } + static void eval(mpf_ptr f, gmp_randstate_t s, mp_bitcnt_t prec) + { mpf_urandomb(f, s, prec); } +}; + + +/**************** Auxiliary classes ****************/ + +/* this is much the same as gmp_allocated_string in gmp-impl.h + since gmp-impl.h is not publicly available, I redefine it here + I use a different name to avoid possible clashes */ + +extern "C" { + typedef void (*__gmp_freefunc_t) (void *, size_t); +} +struct __gmp_alloc_cstring +{ + char *str; + __gmp_alloc_cstring(char *s) { str = s; } + ~__gmp_alloc_cstring() + { + __gmp_freefunc_t freefunc; + mp_get_memory_functions (NULL, NULL, &freefunc); + (*freefunc) (str, std::strlen(str)+1); + } +}; + + +// general expression template class +template +class __gmp_expr; + + +// templates for resolving expression types +template +struct __gmp_resolve_ref +{ + typedef T ref_type; +}; + +template +struct __gmp_resolve_ref<__gmp_expr > +{ + typedef const __gmp_expr & ref_type; +}; + + +template +struct __gmp_resolve_expr; + +template <> +struct __gmp_resolve_expr +{ + typedef mpz_t value_type; + typedef mpz_ptr ptr_type; + typedef mpz_srcptr srcptr_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpq_t value_type; + typedef mpq_ptr ptr_type; + typedef mpq_srcptr srcptr_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; + typedef mpf_ptr ptr_type; + typedef mpf_srcptr srcptr_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpq_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpq_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; +}; + +#if __GMPXX_USE_CXX11 +namespace std { + template + struct common_type <__gmp_expr, __gmp_expr > + { + private: + typedef typename __gmp_resolve_expr::value_type X; + public: + typedef __gmp_expr type; + }; + + template + struct common_type <__gmp_expr, __gmp_expr > + { + typedef __gmp_expr type; + }; + +#define __GMPXX_DECLARE_COMMON_TYPE(typ) \ + template \ + struct common_type <__gmp_expr, typ > \ + { \ + typedef __gmp_expr type; \ + }; \ + \ + template \ + struct common_type > \ + { \ + typedef __gmp_expr type; \ + } + + __GMPXX_DECLARE_COMMON_TYPE(signed char); + __GMPXX_DECLARE_COMMON_TYPE(unsigned char); + __GMPXX_DECLARE_COMMON_TYPE(signed int); + __GMPXX_DECLARE_COMMON_TYPE(unsigned int); + __GMPXX_DECLARE_COMMON_TYPE(signed short int); + __GMPXX_DECLARE_COMMON_TYPE(unsigned short int); + __GMPXX_DECLARE_COMMON_TYPE(signed long int); + __GMPXX_DECLARE_COMMON_TYPE(unsigned long int); + __GMPXX_DECLARE_COMMON_TYPE(float); + __GMPXX_DECLARE_COMMON_TYPE(double); +#undef __GMPXX_DECLARE_COMMON_TYPE +} +#endif + +// classes for evaluating unary and binary expressions +template +struct __gmp_unary_expr +{ + const T &val; + + __gmp_unary_expr(const T &v) : val(v) { } +private: + __gmp_unary_expr(); +}; + +template +struct __gmp_binary_expr +{ + typename __gmp_resolve_ref::ref_type val1; + typename __gmp_resolve_ref::ref_type val2; + + __gmp_binary_expr(const T &v1, const U &v2) : val1(v1), val2(v2) { } +private: + __gmp_binary_expr(); +}; + + + +/**************** Macros for in-class declarations ****************/ +/* This is just repetitive code that is easier to maintain if it's written + only once */ + +#define __GMPP_DECLARE_COMPOUND_OPERATOR(fun) \ + template \ + __gmp_expr & fun(const __gmp_expr &); + +#define __GMPN_DECLARE_COMPOUND_OPERATOR(fun) \ + __gmp_expr & fun(signed char); \ + __gmp_expr & fun(unsigned char); \ + __gmp_expr & fun(signed int); \ + __gmp_expr & fun(unsigned int); \ + __gmp_expr & fun(signed short int); \ + __gmp_expr & fun(unsigned short int); \ + __gmp_expr & fun(signed long int); \ + __gmp_expr & fun(unsigned long int); \ + __gmp_expr & fun(float); \ + __gmp_expr & fun(double); \ + /* __gmp_expr & fun(long double); */ + +#define __GMP_DECLARE_COMPOUND_OPERATOR(fun) \ +__GMPP_DECLARE_COMPOUND_OPERATOR(fun) \ +__GMPN_DECLARE_COMPOUND_OPERATOR(fun) + +#define __GMP_DECLARE_COMPOUND_OPERATOR_UI(fun) \ + __gmp_expr & fun(mp_bitcnt_t); + +#define __GMP_DECLARE_INCREMENT_OPERATOR(fun) \ + inline __gmp_expr & fun(); \ + inline __gmp_expr fun(int); + + +/**************** mpz_class -- wrapper for mpz_t ****************/ + +template <> +class __gmp_expr +{ +private: + typedef mpz_t value_type; + value_type mp; +public: + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } + + // constructors and destructor + __gmp_expr() { mpz_init(mp); } + + __gmp_expr(const __gmp_expr &z) { mpz_init_set(mp, z.mp); } +#if __GMPXX_USE_CXX11 + __gmp_expr(__gmp_expr &&z) + { *mp = *z.mp; mpz_init(z.mp); } +#endif + template + __gmp_expr(const __gmp_expr &expr) + { mpz_init(mp); __gmp_set_expr(mp, expr); } + template + explicit __gmp_expr(const __gmp_expr &expr) + { mpz_init(mp); __gmp_set_expr(mp, expr); } + + __gmp_expr(signed char c) { mpz_init_set_si(mp, c); } + __gmp_expr(unsigned char c) { mpz_init_set_ui(mp, c); } + + __gmp_expr(signed int i) { mpz_init_set_si(mp, i); } + __gmp_expr(unsigned int i) { mpz_init_set_ui(mp, i); } + + __gmp_expr(signed short int s) { mpz_init_set_si(mp, s); } + __gmp_expr(unsigned short int s) { mpz_init_set_ui(mp, s); } + + __gmp_expr(signed long int l) { mpz_init_set_si(mp, l); } + __gmp_expr(unsigned long int l) { mpz_init_set_ui(mp, l); } + + __gmp_expr(float f) { mpz_init_set_d(mp, f); } + __gmp_expr(double d) { mpz_init_set_d(mp, d); } + // __gmp_expr(long double ld) { mpz_init_set_d(mp, ld); } + + explicit __gmp_expr(const char *s, int base = 0) + { + if (mpz_init_set_str (mp, s, base) != 0) + { + mpz_clear (mp); + throw std::invalid_argument ("mpz_set_str"); + } + } + explicit __gmp_expr(const std::string &s, int base = 0) + { + if (mpz_init_set_str(mp, s.c_str(), base) != 0) + { + mpz_clear (mp); + throw std::invalid_argument ("mpz_set_str"); + } + } + + explicit __gmp_expr(mpz_srcptr z) { mpz_init_set(mp, z); } + + ~__gmp_expr() { mpz_clear(mp); } + + void swap(__gmp_expr& z) __GMPXX_NOEXCEPT { std::swap(*mp, *z.mp); } + + // assignment operators + __gmp_expr & operator=(const __gmp_expr &z) + { mpz_set(mp, z.mp); return *this; } +#if __GMPXX_USE_CXX11 + __gmp_expr & operator=(__gmp_expr &&z) noexcept + { swap(z); return *this; } +#endif + template + __gmp_expr & operator=(const __gmp_expr &expr) + { __gmp_set_expr(mp, expr); return *this; } + + __gmp_expr & operator=(signed char c) { mpz_set_si(mp, c); return *this; } + __gmp_expr & operator=(unsigned char c) { mpz_set_ui(mp, c); return *this; } + + __gmp_expr & operator=(signed int i) { mpz_set_si(mp, i); return *this; } + __gmp_expr & operator=(unsigned int i) { mpz_set_ui(mp, i); return *this; } + + __gmp_expr & operator=(signed short int s) + { mpz_set_si(mp, s); return *this; } + __gmp_expr & operator=(unsigned short int s) + { mpz_set_ui(mp, s); return *this; } + + __gmp_expr & operator=(signed long int l) + { mpz_set_si(mp, l); return *this; } + __gmp_expr & operator=(unsigned long int l) + { mpz_set_ui(mp, l); return *this; } + + __gmp_expr & operator=(float f) { mpz_set_d(mp, f); return *this; } + __gmp_expr & operator=(double d) { mpz_set_d(mp, d); return *this; } + // __gmp_expr & operator=(long double ld) + // { mpz_set_ld(mp, ld); return *this; } + + __gmp_expr & operator=(const char *s) + { + if (mpz_set_str (mp, s, 0) != 0) + throw std::invalid_argument ("mpz_set_str"); + return *this; + } + __gmp_expr & operator=(const std::string &s) + { + if (mpz_set_str(mp, s.c_str(), 0) != 0) + throw std::invalid_argument ("mpz_set_str"); + return *this; + } + + // string input/output functions + int set_str(const char *s, int base) + { return mpz_set_str(mp, s, base); } + int set_str(const std::string &s, int base) + { return mpz_set_str(mp, s.c_str(), base); } + std::string get_str(int base = 10) const + { + __gmp_alloc_cstring temp(mpz_get_str(0, base, mp)); + return std::string(temp.str); + } + + // conversion functions + mpz_srcptr __get_mp() const { return mp; } + mpz_ptr __get_mp() { return mp; } + mpz_srcptr get_mpz_t() const { return mp; } + mpz_ptr get_mpz_t() { return mp; } + + signed long int get_si() const { return mpz_get_si(mp); } + unsigned long int get_ui() const { return mpz_get_ui(mp); } + double get_d() const { return mpz_get_d(mp); } + + // bool fits_schar_p() const { return mpz_fits_schar_p(mp); } + // bool fits_uchar_p() const { return mpz_fits_uchar_p(mp); } + bool fits_sint_p() const { return mpz_fits_sint_p(mp); } + bool fits_uint_p() const { return mpz_fits_uint_p(mp); } + bool fits_sshort_p() const { return mpz_fits_sshort_p(mp); } + bool fits_ushort_p() const { return mpz_fits_ushort_p(mp); } + bool fits_slong_p() const { return mpz_fits_slong_p(mp); } + bool fits_ulong_p() const { return mpz_fits_ulong_p(mp); } + // bool fits_float_p() const { return mpz_fits_float_p(mp); } + // bool fits_double_p() const { return mpz_fits_double_p(mp); } + // bool fits_ldouble_p() const { return mpz_fits_ldouble_p(mp); } + +#if __GMPXX_USE_CXX11 + explicit operator bool() const { return mp->_mp_size != 0; } +#endif + + // member operators + __GMP_DECLARE_COMPOUND_OPERATOR(operator+=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator-=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator*=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator/=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator%=) + + __GMP_DECLARE_COMPOUND_OPERATOR(operator&=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator|=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator^=) + + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator<<=) + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator>>=) + + __GMP_DECLARE_INCREMENT_OPERATOR(operator++) + __GMP_DECLARE_INCREMENT_OPERATOR(operator--) +}; + +typedef __gmp_expr mpz_class; + + +/**************** mpq_class -- wrapper for mpq_t ****************/ + +template <> +class __gmp_expr +{ +private: + typedef mpq_t value_type; + value_type mp; +public: + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } + void canonicalize() { mpq_canonicalize(mp); } + + // constructors and destructor + __gmp_expr() { mpq_init(mp); } + + __gmp_expr(const __gmp_expr &q) + { + mpz_init_set(mpq_numref(mp), mpq_numref(q.mp)); + mpz_init_set(mpq_denref(mp), mpq_denref(q.mp)); + } +#if __GMPXX_USE_CXX11 + __gmp_expr(__gmp_expr &&q) + { *mp = *q.mp; mpq_init(q.mp); } +#endif + template + __gmp_expr(const __gmp_expr &expr) + { mpq_init(mp); __gmp_set_expr(mp, expr); } + template + __gmp_expr(const __gmp_expr &expr) + { mpq_init(mp); __gmp_set_expr(mp, expr); } + template + explicit __gmp_expr(const __gmp_expr &expr) + { mpq_init(mp); __gmp_set_expr(mp, expr); } + + __gmp_expr(signed char c) { mpq_init(mp); mpq_set_si(mp, c, 1); } + __gmp_expr(unsigned char c) { mpq_init(mp); mpq_set_ui(mp, c, 1); } + + __gmp_expr(signed int i) { mpq_init(mp); mpq_set_si(mp, i, 1); } + __gmp_expr(unsigned int i) { mpq_init(mp); mpq_set_ui(mp, i, 1); } + + __gmp_expr(signed short int s) { mpq_init(mp); mpq_set_si(mp, s, 1); } + __gmp_expr(unsigned short int s) { mpq_init(mp); mpq_set_ui(mp, s, 1); } + + __gmp_expr(signed long int l) { mpq_init(mp); mpq_set_si(mp, l, 1); } + __gmp_expr(unsigned long int l) { mpq_init(mp); mpq_set_ui(mp, l, 1); } + + __gmp_expr(float f) { mpq_init(mp); mpq_set_d(mp, f); } + __gmp_expr(double d) { mpq_init(mp); mpq_set_d(mp, d); } + // __gmp_expr(long double ld) { mpq_init(mp); mpq_set_ld(mp, ld); } + + explicit __gmp_expr(const char *s, int base = 0) + { + mpq_init (mp); + // If s is the literal 0, we meant to call another constructor. + // If s just happens to evaluate to 0, we would crash, so whatever. + if (s == 0) + { + // Don't turn mpq_class(0,0) into 0 + mpz_set_si(mpq_denref(mp), base); + } + else if (mpq_set_str(mp, s, base) != 0) + { + mpq_clear (mp); + throw std::invalid_argument ("mpq_set_str"); + } + } + explicit __gmp_expr(const std::string &s, int base = 0) + { + mpq_init(mp); + if (mpq_set_str (mp, s.c_str(), base) != 0) + { + mpq_clear (mp); + throw std::invalid_argument ("mpq_set_str"); + } + } + explicit __gmp_expr(mpq_srcptr q) + { + mpz_init_set(mpq_numref(mp), mpq_numref(q)); + mpz_init_set(mpq_denref(mp), mpq_denref(q)); + } + + __gmp_expr(const mpz_class &num, const mpz_class &den) + { + mpz_init_set(mpq_numref(mp), num.get_mpz_t()); + mpz_init_set(mpq_denref(mp), den.get_mpz_t()); + } + + ~__gmp_expr() { mpq_clear(mp); } + + void swap(__gmp_expr& q) __GMPXX_NOEXCEPT { std::swap(*mp, *q.mp); } + + // assignment operators + __gmp_expr & operator=(const __gmp_expr &q) + { mpq_set(mp, q.mp); return *this; } +#if __GMPXX_USE_CXX11 + __gmp_expr & operator=(__gmp_expr &&q) noexcept + { swap(q); return *this; } + __gmp_expr & operator=(mpz_class &&z) noexcept + { get_num() = std::move(z); get_den() = 1u; return *this; } +#endif + template + __gmp_expr & operator=(const __gmp_expr &expr) + { __gmp_set_expr(mp, expr); return *this; } + + __gmp_expr & operator=(signed char c) + { mpq_set_si(mp, c, 1); return *this; } + __gmp_expr & operator=(unsigned char c) + { mpq_set_ui(mp, c, 1); return *this; } + + __gmp_expr & operator=(signed int i) { mpq_set_si(mp, i, 1); return *this; } + __gmp_expr & operator=(unsigned int i) + { mpq_set_ui(mp, i, 1); return *this; } + + __gmp_expr & operator=(signed short int s) + { mpq_set_si(mp, s, 1); return *this; } + __gmp_expr & operator=(unsigned short int s) + { mpq_set_ui(mp, s, 1); return *this; } + + __gmp_expr & operator=(signed long int l) + { mpq_set_si(mp, l, 1); return *this; } + __gmp_expr & operator=(unsigned long int l) + { mpq_set_ui(mp, l, 1); return *this; } + + __gmp_expr & operator=(float f) { mpq_set_d(mp, f); return *this; } + __gmp_expr & operator=(double d) { mpq_set_d(mp, d); return *this; } + // __gmp_expr & operator=(long double ld) + // { mpq_set_ld(mp, ld); return *this; } + + __gmp_expr & operator=(const char *s) + { + if (mpq_set_str (mp, s, 0) != 0) + throw std::invalid_argument ("mpq_set_str"); + return *this; + } + __gmp_expr & operator=(const std::string &s) + { + if (mpq_set_str(mp, s.c_str(), 0) != 0) + throw std::invalid_argument ("mpq_set_str"); + return *this; + } + + // string input/output functions + int set_str(const char *s, int base) + { return mpq_set_str(mp, s, base); } + int set_str(const std::string &s, int base) + { return mpq_set_str(mp, s.c_str(), base); } + std::string get_str(int base = 10) const + { + __gmp_alloc_cstring temp(mpq_get_str(0, base, mp)); + return std::string(temp.str); + } + + // conversion functions + + // casting a reference to an mpz_t to mpz_class & is a dirty hack, + // but works because the internal representation of mpz_class is + // exactly an mpz_t + const mpz_class & get_num() const + { return reinterpret_cast(*mpq_numref(mp)); } + mpz_class & get_num() + { return reinterpret_cast(*mpq_numref(mp)); } + const mpz_class & get_den() const + { return reinterpret_cast(*mpq_denref(mp)); } + mpz_class & get_den() + { return reinterpret_cast(*mpq_denref(mp)); } + + mpq_srcptr __get_mp() const { return mp; } + mpq_ptr __get_mp() { return mp; } + mpq_srcptr get_mpq_t() const { return mp; } + mpq_ptr get_mpq_t() { return mp; } + + mpz_srcptr get_num_mpz_t() const { return mpq_numref(mp); } + mpz_ptr get_num_mpz_t() { return mpq_numref(mp); } + mpz_srcptr get_den_mpz_t() const { return mpq_denref(mp); } + mpz_ptr get_den_mpz_t() { return mpq_denref(mp); } + + double get_d() const { return mpq_get_d(mp); } + +#if __GMPXX_USE_CXX11 + explicit operator bool() const { return mpq_numref(mp)->_mp_size != 0; } +#endif + + // compound assignments + __GMP_DECLARE_COMPOUND_OPERATOR(operator+=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator-=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator*=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator/=) + + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator<<=) + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator>>=) + + __GMP_DECLARE_INCREMENT_OPERATOR(operator++) + __GMP_DECLARE_INCREMENT_OPERATOR(operator--) +}; + +typedef __gmp_expr mpq_class; + + +/**************** mpf_class -- wrapper for mpf_t ****************/ + +template <> +class __gmp_expr +{ +private: + typedef mpf_t value_type; + value_type mp; +public: + mp_bitcnt_t get_prec() const { return mpf_get_prec(mp); } + + void set_prec(mp_bitcnt_t prec) { mpf_set_prec(mp, prec); } + void set_prec_raw(mp_bitcnt_t prec) { mpf_set_prec_raw(mp, prec); } + + // constructors and destructor + __gmp_expr() { mpf_init(mp); } + + __gmp_expr(const __gmp_expr &f) + { mpf_init2(mp, f.get_prec()); mpf_set(mp, f.mp); } +#if __GMPXX_USE_CXX11 + __gmp_expr(__gmp_expr &&f) + { *mp = *f.mp; mpf_init2(f.mp, get_prec()); } +#endif + __gmp_expr(const __gmp_expr &f, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set(mp, f.mp); } + template + __gmp_expr(const __gmp_expr &expr) + { mpf_init2(mp, expr.get_prec()); __gmp_set_expr(mp, expr); } + template + __gmp_expr(const __gmp_expr &expr, mp_bitcnt_t prec) + { mpf_init2(mp, prec); __gmp_set_expr(mp, expr); } + + __gmp_expr(signed char c) { mpf_init_set_si(mp, c); } + __gmp_expr(signed char c, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_si(mp, c); } + __gmp_expr(unsigned char c) { mpf_init_set_ui(mp, c); } + __gmp_expr(unsigned char c, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_ui(mp, c); } + + __gmp_expr(signed int i) { mpf_init_set_si(mp, i); } + __gmp_expr(signed int i, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_si(mp, i); } + __gmp_expr(unsigned int i) { mpf_init_set_ui(mp, i); } + __gmp_expr(unsigned int i, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_ui(mp, i); } + + __gmp_expr(signed short int s) { mpf_init_set_si(mp, s); } + __gmp_expr(signed short int s, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_si(mp, s); } + __gmp_expr(unsigned short int s) { mpf_init_set_ui(mp, s); } + __gmp_expr(unsigned short int s, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_ui(mp, s); } + + __gmp_expr(signed long int l) { mpf_init_set_si(mp, l); } + __gmp_expr(signed long int l, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_si(mp, l); } + __gmp_expr(unsigned long int l) { mpf_init_set_ui(mp, l); } + __gmp_expr(unsigned long int l, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_ui(mp, l); } + + __gmp_expr(float f) { mpf_init_set_d(mp, f); } + __gmp_expr(float f, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_d(mp, f); } + __gmp_expr(double d) { mpf_init_set_d(mp, d); } + __gmp_expr(double d, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_d(mp, d); } + // __gmp_expr(long double ld) { mpf_init_set_d(mp, ld); } + // __gmp_expr(long double ld, mp_bitcnt_t prec) + // { mpf_init2(mp, prec); mpf_set_d(mp, ld); } + + explicit __gmp_expr(const char *s) + { + if (mpf_init_set_str (mp, s, 0) != 0) + { + mpf_clear (mp); + throw std::invalid_argument ("mpf_set_str"); + } + } + __gmp_expr(const char *s, mp_bitcnt_t prec, int base = 0) + { + mpf_init2(mp, prec); + if (mpf_set_str(mp, s, base) != 0) + { + mpf_clear (mp); + throw std::invalid_argument ("mpf_set_str"); + } + } + explicit __gmp_expr(const std::string &s) + { + if (mpf_init_set_str(mp, s.c_str(), 0) != 0) + { + mpf_clear (mp); + throw std::invalid_argument ("mpf_set_str"); + } + } + __gmp_expr(const std::string &s, mp_bitcnt_t prec, int base = 0) + { + mpf_init2(mp, prec); + if (mpf_set_str(mp, s.c_str(), base) != 0) + { + mpf_clear (mp); + throw std::invalid_argument ("mpf_set_str"); + } + } + + explicit __gmp_expr(mpf_srcptr f) + { mpf_init2(mp, mpf_get_prec(f)); mpf_set(mp, f); } + __gmp_expr(mpf_srcptr f, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set(mp, f); } + + ~__gmp_expr() { mpf_clear(mp); } + + void swap(__gmp_expr& f) __GMPXX_NOEXCEPT { std::swap(*mp, *f.mp); } + + // assignment operators + __gmp_expr & operator=(const __gmp_expr &f) + { mpf_set(mp, f.mp); return *this; } +#if __GMPXX_USE_CXX11 + __gmp_expr & operator=(__gmp_expr &&f) noexcept + { swap(f); return *this; } +#endif + template + __gmp_expr & operator=(const __gmp_expr &expr) + { __gmp_set_expr(mp, expr); return *this; } + + __gmp_expr & operator=(signed char c) { mpf_set_si(mp, c); return *this; } + __gmp_expr & operator=(unsigned char c) { mpf_set_ui(mp, c); return *this; } + + __gmp_expr & operator=(signed int i) { mpf_set_si(mp, i); return *this; } + __gmp_expr & operator=(unsigned int i) { mpf_set_ui(mp, i); return *this; } + + __gmp_expr & operator=(signed short int s) + { mpf_set_si(mp, s); return *this; } + __gmp_expr & operator=(unsigned short int s) + { mpf_set_ui(mp, s); return *this; } + + __gmp_expr & operator=(signed long int l) + { mpf_set_si(mp, l); return *this; } + __gmp_expr & operator=(unsigned long int l) + { mpf_set_ui(mp, l); return *this; } + + __gmp_expr & operator=(float f) { mpf_set_d(mp, f); return *this; } + __gmp_expr & operator=(double d) { mpf_set_d(mp, d); return *this; } + // __gmp_expr & operator=(long double ld) + // { mpf_set_ld(mp, ld); return *this; } + + __gmp_expr & operator=(const char *s) + { + if (mpf_set_str (mp, s, 0) != 0) + throw std::invalid_argument ("mpf_set_str"); + return *this; + } + __gmp_expr & operator=(const std::string &s) + { + if (mpf_set_str(mp, s.c_str(), 0) != 0) + throw std::invalid_argument ("mpf_set_str"); + return *this; + } + + // string input/output functions + int set_str(const char *s, int base) + { return mpf_set_str(mp, s, base); } + int set_str(const std::string &s, int base) + { return mpf_set_str(mp, s.c_str(), base); } + std::string get_str(mp_exp_t &expo, int base = 10, size_t size = 0) const + { + __gmp_alloc_cstring temp(mpf_get_str(0, &expo, base, size, mp)); + return std::string(temp.str); + } + + // conversion functions + mpf_srcptr __get_mp() const { return mp; } + mpf_ptr __get_mp() { return mp; } + mpf_srcptr get_mpf_t() const { return mp; } + mpf_ptr get_mpf_t() { return mp; } + + signed long int get_si() const { return mpf_get_si(mp); } + unsigned long int get_ui() const { return mpf_get_ui(mp); } + double get_d() const { return mpf_get_d(mp); } + + // bool fits_schar_p() const { return mpf_fits_schar_p(mp); } + // bool fits_uchar_p() const { return mpf_fits_uchar_p(mp); } + bool fits_sint_p() const { return mpf_fits_sint_p(mp); } + bool fits_uint_p() const { return mpf_fits_uint_p(mp); } + bool fits_sshort_p() const { return mpf_fits_sshort_p(mp); } + bool fits_ushort_p() const { return mpf_fits_ushort_p(mp); } + bool fits_slong_p() const { return mpf_fits_slong_p(mp); } + bool fits_ulong_p() const { return mpf_fits_ulong_p(mp); } + // bool fits_float_p() const { return mpf_fits_float_p(mp); } + // bool fits_double_p() const { return mpf_fits_double_p(mp); } + // bool fits_ldouble_p() const { return mpf_fits_ldouble_p(mp); } + +#if __GMPXX_USE_CXX11 + explicit operator bool() const { return mp->_mp_size != 0; } +#endif + + // compound assignments + __GMP_DECLARE_COMPOUND_OPERATOR(operator+=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator-=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator*=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator/=) + + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator<<=) + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator>>=) + + __GMP_DECLARE_INCREMENT_OPERATOR(operator++) + __GMP_DECLARE_INCREMENT_OPERATOR(operator--) +}; + +typedef __gmp_expr mpf_class; + + + +/**************** User-defined literals ****************/ + +#if __GMPXX_USE_CXX11 +inline mpz_class operator"" _mpz(const char* s) +{ + return mpz_class(s); +} + +inline mpq_class operator"" _mpq(const char* s) +{ + mpq_class q; + q.get_num() = s; + return q; +} + +inline mpf_class operator"" _mpf(const char* s) +{ + return mpf_class(s); +} +#endif + +/**************** I/O operators ****************/ + +// these should (and will) be provided separately + +template +inline std::ostream & operator<< +(std::ostream &o, const __gmp_expr &expr) +{ + __gmp_expr const& temp(expr); + return o << temp.__get_mp(); +} + +template +inline std::istream & operator>>(std::istream &i, __gmp_expr &expr) +{ + return i >> expr.__get_mp(); +} + +/* +// you might want to uncomment this +inline std::istream & operator>>(std::istream &i, mpq_class &q) +{ + i >> q.get_mpq_t(); + q.canonicalize(); + return i; +} +*/ + + +/**************** Functions for type conversion ****************/ + +inline void __gmp_set_expr(mpz_ptr z, const mpz_class &w) +{ + mpz_set(z, w.get_mpz_t()); +} + +template +inline void __gmp_set_expr(mpz_ptr z, const __gmp_expr &expr) +{ + expr.eval(z); +} + +template +inline void __gmp_set_expr(mpz_ptr z, const __gmp_expr &expr) +{ + mpq_class const& temp(expr); + mpz_set_q(z, temp.get_mpq_t()); +} + +template +inline void __gmp_set_expr(mpz_ptr z, const __gmp_expr &expr) +{ + mpf_class const& temp(expr); + mpz_set_f(z, temp.get_mpf_t()); +} + +inline void __gmp_set_expr(mpq_ptr q, const mpz_class &z) +{ + mpq_set_z(q, z.get_mpz_t()); +} + +template +inline void __gmp_set_expr(mpq_ptr q, const __gmp_expr &expr) +{ + __gmp_set_expr(mpq_numref(q), expr); + mpz_set_ui(mpq_denref(q), 1); +} + +inline void __gmp_set_expr(mpq_ptr q, const mpq_class &r) +{ + mpq_set(q, r.get_mpq_t()); +} + +template +inline void __gmp_set_expr(mpq_ptr q, const __gmp_expr &expr) +{ + expr.eval(q); +} + +template +inline void __gmp_set_expr(mpq_ptr q, const __gmp_expr &expr) +{ + mpf_class const& temp(expr); + mpq_set_f(q, temp.get_mpf_t()); +} + +template +inline void __gmp_set_expr(mpf_ptr f, const __gmp_expr &expr) +{ + mpz_class const& temp(expr); + mpf_set_z(f, temp.get_mpz_t()); +} + +template +inline void __gmp_set_expr(mpf_ptr f, const __gmp_expr &expr) +{ + mpq_class const& temp(expr); + mpf_set_q(f, temp.get_mpq_t()); +} + +inline void __gmp_set_expr(mpf_ptr f, const mpf_class &g) +{ + mpf_set(f, g.get_mpf_t()); +} + +template +inline void __gmp_set_expr(mpf_ptr f, const __gmp_expr &expr) +{ + expr.eval(f); +} + + +/* Temporary objects */ + +template +class __gmp_temp +{ + __gmp_expr val; + public: + template + __gmp_temp(U const& u, V) : val (u) {} + typename __gmp_resolve_expr::srcptr_type + __get_mp() const { return val.__get_mp(); } +}; + +template <> +class __gmp_temp +{ + mpf_class val; + public: + template + __gmp_temp(U const& u, mpf_ptr res) : val (u, mpf_get_prec(res)) {} + mpf_srcptr __get_mp() const { return val.__get_mp(); } +}; + +/**************** Specializations of __gmp_expr ****************/ +/* The eval() method of __gmp_expr evaluates the corresponding + expression and assigns the result to its argument, which is either an + mpz_t, mpq_t, or mpf_t as specified by the T argument. + Compound expressions are evaluated recursively (temporaries are created + to hold intermediate values), while for simple expressions the eval() + method of the appropriate function object (available as the Op argument + of either __gmp_unary_expr or __gmp_binary_expr) is + called. */ + + +/**************** Unary expressions ****************/ +/* cases: + - simple: argument is mp*_class, that is, __gmp_expr + - compound: argument is __gmp_expr (with U not equal to T) */ + + +// simple expressions + +template +class __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val_type; + + __gmp_unary_expr expr; +public: + explicit __gmp_expr(const val_type &val) : expr(val) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { Op::eval(p, expr.val.__get_mp()); } + const val_type & get_val() const { return expr.val; } + mp_bitcnt_t get_prec() const { return expr.val.get_prec(); } +}; + + +// compound expressions + +template +class __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val_type; + + __gmp_unary_expr expr; +public: + explicit __gmp_expr(const val_type &val) : expr(val) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { expr.val.eval(p); Op::eval(p, p); } + const val_type & get_val() const { return expr.val; } + mp_bitcnt_t get_prec() const { return expr.val.get_prec(); } +}; + + +/**************** Binary expressions ****************/ +/* simple: + - arguments are both mp*_class + - one argument is mp*_class, one is a built-in type + compound: + - one is mp*_class, one is __gmp_expr + - one is __gmp_expr, one is built-in + - both arguments are __gmp_expr<...> */ + + +// simple expressions + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { Op::eval(p, expr.val1.__get_mp(), expr.val2.__get_mp()); } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + + +// simple expressions, T is a built-in numerical type + +template +class __gmp_expr, U, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef U val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { Op::eval(p, expr.val1.__get_mp(), expr.val2); } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const { return expr.val1.get_prec(); } +}; + +template +class __gmp_expr, Op> > +{ +private: + typedef U val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { Op::eval(p, expr.val1, expr.val2.__get_mp()); } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const { return expr.val2.get_prec(); } +}; + + +// compound expressions, one argument is a subexpression + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + if(p != expr.val1.__get_mp()) + { + __gmp_set_expr(p, expr.val2); + Op::eval(p, expr.val1.__get_mp(), p); + } + else + { + __gmp_temp temp(expr.val2, p); + Op::eval(p, expr.val1.__get_mp(), temp.__get_mp()); + } + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + if(p != expr.val2.__get_mp()) + { + __gmp_set_expr(p, expr.val1); + Op::eval(p, p, expr.val2.__get_mp()); + } + else + { + __gmp_temp temp(expr.val1, p); + Op::eval(p, temp.__get_mp(), expr.val2.__get_mp()); + } + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + if(p != expr.val1.__get_mp()) + { + __gmp_set_expr(p, expr.val2); + Op::eval(p, expr.val1.__get_mp(), p); + } + else + { + __gmp_temp temp(expr.val2, p); + Op::eval(p, expr.val1.__get_mp(), temp.__get_mp()); + } + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + if(p != expr.val2.__get_mp()) + { + __gmp_set_expr(p, expr.val1); + Op::eval(p, p, expr.val2.__get_mp()); + } + else + { + __gmp_temp temp(expr.val1, p); + Op::eval(p, temp.__get_mp(), expr.val2.__get_mp()); + } + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + + +// one argument is a subexpression, one is a built-in + +template +class __gmp_expr, V, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef V val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + expr.val1.eval(p); + Op::eval(p, p, expr.val2); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const { return expr.val1.get_prec(); } +}; + +template +class __gmp_expr, Op> > +{ +private: + typedef U val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + expr.val2.eval(p); + Op::eval(p, expr.val1, p); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const { return expr.val2.get_prec(); } +}; + + +// both arguments are subexpressions + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + __gmp_temp temp2(expr.val2, p); + expr.val1.eval(p); + Op::eval(p, p, temp2.__get_mp()); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + __gmp_temp temp1(expr.val1, p); + expr.val2.eval(p); + Op::eval(p, temp1.__get_mp(), p); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + __gmp_temp temp2(expr.val2, p); + expr.val1.eval(p); + Op::eval(p, p, temp2.__get_mp()); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + + +/**************** Special cases ****************/ + +/* Some operations (i.e., add and subtract) with mixed mpz/mpq arguments + can be done directly without first converting the mpz to mpq. + Appropriate specializations of __gmp_expr are required. */ + + +#define __GMPZQ_DEFINE_EXPR(eval_fun) \ + \ +template <> \ +class __gmp_expr > \ +{ \ +private: \ + typedef mpz_class val1_type; \ + typedef mpq_class val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { eval_fun::eval(q, expr.val1.get_mpz_t(), expr.val2.get_mpq_t()); } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template <> \ +class __gmp_expr > \ +{ \ +private: \ + typedef mpq_class val1_type; \ + typedef mpz_class val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { eval_fun::eval(q, expr.val1.get_mpq_t(), expr.val2.get_mpz_t()); } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr \ +, eval_fun> > \ +{ \ +private: \ + typedef mpz_class val1_type; \ + typedef __gmp_expr val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpq_class temp(expr.val2); \ + eval_fun::eval(q, expr.val1.get_mpz_t(), temp.get_mpq_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr \ +, eval_fun> > \ +{ \ +private: \ + typedef mpq_class val1_type; \ + typedef __gmp_expr val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpz_class temp(expr.val2); \ + eval_fun::eval(q, expr.val1.get_mpq_t(), temp.get_mpz_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr \ +, mpq_class, eval_fun> > \ +{ \ +private: \ + typedef __gmp_expr val1_type; \ + typedef mpq_class val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpz_class temp(expr.val1); \ + eval_fun::eval(q, temp.get_mpz_t(), expr.val2.get_mpq_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr \ +, mpz_class, eval_fun> > \ +{ \ +private: \ + typedef __gmp_expr val1_type; \ + typedef mpz_class val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpq_class temp(expr.val1); \ + eval_fun::eval(q, temp.get_mpq_t(), expr.val2.get_mpz_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr, __gmp_expr, eval_fun> > \ +{ \ +private: \ + typedef __gmp_expr val1_type; \ + typedef __gmp_expr val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpz_class temp1(expr.val1); \ + expr.val2.eval(q); \ + eval_fun::eval(q, temp1.get_mpz_t(), q); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr, __gmp_expr, eval_fun> > \ +{ \ +private: \ + typedef __gmp_expr val1_type; \ + typedef __gmp_expr val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpz_class temp2(expr.val2); \ + expr.val1.eval(q); \ + eval_fun::eval(q, q, temp2.get_mpz_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; + + +__GMPZQ_DEFINE_EXPR(__gmp_binary_plus) +__GMPZQ_DEFINE_EXPR(__gmp_binary_minus) + + + +/**************** Macros for defining functions ****************/ +/* Results of operators and functions are instances of __gmp_expr. + T determines the numerical type of the expression: it can be either + mpz_t, mpq_t, or mpf_t. When the arguments of a binary + expression have different numerical types, __gmp_resolve_expr is used + to determine the "larger" type. + U is either __gmp_unary_expr or __gmp_binary_expr, + where V and W are the arguments' types -- they can in turn be + expressions, thus allowing to build compound expressions to any + degree of complexity. + Op is a function object that must have an eval() method accepting + appropriate arguments. + Actual evaluation of a __gmp_expr object is done when it gets + assigned to an mp*_class ("lazy" evaluation): this is done by calling + its eval() method. */ + + +// non-member unary operators and functions + +#define __GMP_DEFINE_UNARY_FUNCTION(fun, eval_fun) \ + \ +template \ +inline __gmp_expr, eval_fun> > \ +fun(const __gmp_expr &expr) \ +{ \ + return __gmp_expr, eval_fun> >(expr); \ +} + +#define __GMP_DEFINE_UNARY_TYPE_FUNCTION(type, fun, eval_fun) \ + \ +template \ +inline type fun(const __gmp_expr &expr) \ +{ \ + __gmp_expr const& temp(expr); \ + return eval_fun::eval(temp.__get_mp()); \ +} + + +// non-member binary operators and functions + +#define __GMPP_DEFINE_BINARY_FUNCTION(fun, eval_fun) \ + \ +template \ +inline __gmp_expr::value_type, \ +__gmp_binary_expr<__gmp_expr, __gmp_expr, eval_fun> > \ +fun(const __gmp_expr &expr1, const __gmp_expr &expr2) \ +{ \ + return __gmp_expr::value_type, \ + __gmp_binary_expr<__gmp_expr, __gmp_expr, eval_fun> > \ + (expr1, expr2); \ +} + +#define __GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, bigtype) \ + \ +template \ +inline __gmp_expr \ +, bigtype, eval_fun> > \ +fun(const __gmp_expr &expr, type t) \ +{ \ + return __gmp_expr \ + , bigtype, eval_fun> >(expr, t); \ +} \ + \ +template \ +inline __gmp_expr \ +, eval_fun> > \ +fun(type t, const __gmp_expr &expr) \ +{ \ + return __gmp_expr \ + , eval_fun> >(t, expr); \ +} + +#define __GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, type) \ +__GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, signed long int) + +#define __GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, type) \ +__GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, unsigned long int) + +#define __GMPND_DEFINE_BINARY_FUNCTION(fun, eval_fun, type) \ +__GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, double) + +#define __GMPNLD_DEFINE_BINARY_FUNCTION(fun, eval_fun, type) \ +__GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, long double) + +#define __GMPN_DEFINE_BINARY_FUNCTION(fun, eval_fun) \ +__GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, signed char) \ +__GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, unsigned char) \ +__GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, signed int) \ +__GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, unsigned int) \ +__GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, signed short int) \ +__GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, unsigned short int) \ +__GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, signed long int) \ +__GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, unsigned long int) \ +__GMPND_DEFINE_BINARY_FUNCTION(fun, eval_fun, float) \ +__GMPND_DEFINE_BINARY_FUNCTION(fun, eval_fun, double) \ +/* __GMPNLD_DEFINE_BINARY_FUNCTION(fun, eval_fun, long double) */ + +#define __GMP_DEFINE_BINARY_FUNCTION(fun, eval_fun) \ +__GMPP_DEFINE_BINARY_FUNCTION(fun, eval_fun) \ +__GMPN_DEFINE_BINARY_FUNCTION(fun, eval_fun) + + +#define __GMP_DEFINE_BINARY_FUNCTION_UI(fun, eval_fun) \ + \ +template \ +inline __gmp_expr \ +, mp_bitcnt_t, eval_fun> > \ +fun(const __gmp_expr &expr, mp_bitcnt_t l) \ +{ \ + return __gmp_expr, mp_bitcnt_t, eval_fun> >(expr, l); \ +} + + +#define __GMPP_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) \ + \ +template \ +inline type fun(const __gmp_expr &expr1, \ + const __gmp_expr &expr2) \ +{ \ + typedef typename __gmp_resolve_expr::value_type eval_type; \ + __gmp_expr const& temp1(expr1); \ + __gmp_expr const& temp2(expr2); \ + return eval_fun::eval(temp1.__get_mp(), temp2.__get_mp()); \ +} + +#define __GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, \ + type2, bigtype) \ + \ +template \ +inline type fun(const __gmp_expr &expr, type2 t) \ +{ \ + __gmp_expr const& temp(expr); \ + return eval_fun::eval(temp.__get_mp(), static_cast(t)); \ +} \ + \ +template \ +inline type fun(type2 t, const __gmp_expr &expr) \ +{ \ + __gmp_expr const& temp(expr); \ + return eval_fun::eval(static_cast(t), temp.__get_mp()); \ +} + +#define __GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, \ + type2, signed long int) + +#define __GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, \ + type2, unsigned long int) + +#define __GMPND_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2, double) + +#define __GMPNLD_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2, long double) + +#define __GMPN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) \ +__GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, signed char) \ +__GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, unsigned char) \ +__GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, signed int) \ +__GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, unsigned int) \ +__GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, signed short int) \ +__GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, unsigned short int) \ +__GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, signed long int) \ +__GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, unsigned long int) \ +__GMPND_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, float) \ +__GMPND_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, double) \ +/* __GMPNLD_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, long double) */ + +#define __GMP_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) \ +__GMPP_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) \ +__GMPN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) + + +// member operators + +#define __GMPP_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) \ + \ +template \ +inline type##_class & type##_class::fun(const __gmp_expr &expr) \ +{ \ + __gmp_set_expr(mp, __gmp_expr, eval_fun> >(*this, expr)); \ + return *this; \ +} + +#define __GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, \ + type2, bigtype) \ + \ +inline type##_class & type##_class::fun(type2 t) \ +{ \ + __gmp_set_expr(mp, __gmp_expr >(*this, t)); \ + return *this; \ +} + +#define __GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, \ + type2, signed long int) + +#define __GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, \ + type2, unsigned long int) + +#define __GMPND_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2, double) + +#define __GMPNLD_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2, long double) + +#define __GMPN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) \ +__GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, signed char) \ +__GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, unsigned char) \ +__GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, signed int) \ +__GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, unsigned int) \ +__GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, signed short int) \ +__GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, unsigned short int) \ +__GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, signed long int) \ +__GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, unsigned long int) \ +__GMPND_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, float) \ +__GMPND_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, double) \ +/* __GMPNLD_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, long double) */ + +#define __GMP_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) \ +__GMPP_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) \ +__GMPN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) + +#define __GMPZ_DEFINE_COMPOUND_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR(mpz, fun, eval_fun) + +#define __GMPQ_DEFINE_COMPOUND_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR(mpq, fun, eval_fun) + +#define __GMPF_DEFINE_COMPOUND_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR(mpf, fun, eval_fun) + + + +#define __GMP_DEFINE_COMPOUND_OPERATOR_UI(type, fun, eval_fun) \ + \ +inline type##_class & type##_class::fun(mp_bitcnt_t l) \ +{ \ + __gmp_set_expr(mp, __gmp_expr >(*this, l)); \ + return *this; \ +} + +#define __GMPZ_DEFINE_COMPOUND_OPERATOR_UI(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR_UI(mpz, fun, eval_fun) + +#define __GMPQ_DEFINE_COMPOUND_OPERATOR_UI(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR_UI(mpq, fun, eval_fun) + +#define __GMPF_DEFINE_COMPOUND_OPERATOR_UI(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR_UI(mpf, fun, eval_fun) + + + +#define __GMP_DEFINE_INCREMENT_OPERATOR(type, fun, eval_fun) \ + \ +inline type##_class & type##_class::fun() \ +{ \ + eval_fun::eval(mp); \ + return *this; \ +} \ + \ +inline type##_class type##_class::fun(int) \ +{ \ + type##_class temp(*this); \ + eval_fun::eval(mp); \ + return temp; \ +} + +#define __GMPZ_DEFINE_INCREMENT_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_INCREMENT_OPERATOR(mpz, fun, eval_fun) + +#define __GMPQ_DEFINE_INCREMENT_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_INCREMENT_OPERATOR(mpq, fun, eval_fun) + +#define __GMPF_DEFINE_INCREMENT_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_INCREMENT_OPERATOR(mpf, fun, eval_fun) + + + +/**************** Arithmetic operators and functions ****************/ + +// non-member operators and functions + +__GMP_DEFINE_UNARY_FUNCTION(operator+, __gmp_unary_plus) +__GMP_DEFINE_UNARY_FUNCTION(operator-, __gmp_unary_minus) +__GMP_DEFINE_UNARY_FUNCTION(operator~, __gmp_unary_com) + +__GMP_DEFINE_BINARY_FUNCTION(operator+, __gmp_binary_plus) +__GMP_DEFINE_BINARY_FUNCTION(operator-, __gmp_binary_minus) +__GMP_DEFINE_BINARY_FUNCTION(operator*, __gmp_binary_multiplies) +__GMP_DEFINE_BINARY_FUNCTION(operator/, __gmp_binary_divides) +__GMP_DEFINE_BINARY_FUNCTION(operator%, __gmp_binary_modulus) +__GMP_DEFINE_BINARY_FUNCTION(operator&, __gmp_binary_and) +__GMP_DEFINE_BINARY_FUNCTION(operator|, __gmp_binary_ior) +__GMP_DEFINE_BINARY_FUNCTION(operator^, __gmp_binary_xor) + +__GMP_DEFINE_BINARY_FUNCTION_UI(operator<<, __gmp_binary_lshift) +__GMP_DEFINE_BINARY_FUNCTION_UI(operator>>, __gmp_binary_rshift) + +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator==, __gmp_binary_equal) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator!=, ! __gmp_binary_equal) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator<, __gmp_binary_less) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator<=, ! __gmp_binary_greater) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator>, __gmp_binary_greater) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator>=, ! __gmp_binary_less) + +__GMP_DEFINE_UNARY_FUNCTION(abs, __gmp_abs_function) +__GMP_DEFINE_UNARY_FUNCTION(trunc, __gmp_trunc_function) +__GMP_DEFINE_UNARY_FUNCTION(floor, __gmp_floor_function) +__GMP_DEFINE_UNARY_FUNCTION(ceil, __gmp_ceil_function) +__GMP_DEFINE_UNARY_FUNCTION(sqrt, __gmp_sqrt_function) +__GMP_DEFINE_BINARY_FUNCTION(hypot, __gmp_hypot_function) + +__GMP_DEFINE_UNARY_TYPE_FUNCTION(int, sgn, __gmp_sgn_function) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(int, cmp, __gmp_cmp_function) + +template +void swap(__gmp_expr& x, __gmp_expr& y) __GMPXX_NOEXCEPT +{ x.swap(y); } + +// member operators for mpz_class + +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator+=, __gmp_binary_plus) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator-=, __gmp_binary_minus) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator*=, __gmp_binary_multiplies) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator/=, __gmp_binary_divides) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator%=, __gmp_binary_modulus) + +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator&=, __gmp_binary_and) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator|=, __gmp_binary_ior) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator^=, __gmp_binary_xor) + +__GMPZ_DEFINE_COMPOUND_OPERATOR_UI(operator<<=, __gmp_binary_lshift) +__GMPZ_DEFINE_COMPOUND_OPERATOR_UI(operator>>=, __gmp_binary_rshift) + +__GMPZ_DEFINE_INCREMENT_OPERATOR(operator++, __gmp_unary_increment) +__GMPZ_DEFINE_INCREMENT_OPERATOR(operator--, __gmp_unary_decrement) + +// member operators for mpq_class + +__GMPQ_DEFINE_COMPOUND_OPERATOR(operator+=, __gmp_binary_plus) +__GMPQ_DEFINE_COMPOUND_OPERATOR(operator-=, __gmp_binary_minus) +__GMPQ_DEFINE_COMPOUND_OPERATOR(operator*=, __gmp_binary_multiplies) +__GMPQ_DEFINE_COMPOUND_OPERATOR(operator/=, __gmp_binary_divides) + +__GMPQ_DEFINE_COMPOUND_OPERATOR_UI(operator<<=, __gmp_binary_lshift) +__GMPQ_DEFINE_COMPOUND_OPERATOR_UI(operator>>=, __gmp_binary_rshift) + +__GMPQ_DEFINE_INCREMENT_OPERATOR(operator++, __gmp_unary_increment) +__GMPQ_DEFINE_INCREMENT_OPERATOR(operator--, __gmp_unary_decrement) + +// member operators for mpf_class + +__GMPF_DEFINE_COMPOUND_OPERATOR(operator+=, __gmp_binary_plus) +__GMPF_DEFINE_COMPOUND_OPERATOR(operator-=, __gmp_binary_minus) +__GMPF_DEFINE_COMPOUND_OPERATOR(operator*=, __gmp_binary_multiplies) +__GMPF_DEFINE_COMPOUND_OPERATOR(operator/=, __gmp_binary_divides) + +__GMPF_DEFINE_COMPOUND_OPERATOR_UI(operator<<=, __gmp_binary_lshift) +__GMPF_DEFINE_COMPOUND_OPERATOR_UI(operator>>=, __gmp_binary_rshift) + +__GMPF_DEFINE_INCREMENT_OPERATOR(operator++, __gmp_unary_increment) +__GMPF_DEFINE_INCREMENT_OPERATOR(operator--, __gmp_unary_decrement) + + + +/**************** Class wrapper for gmp_randstate_t ****************/ + +class __gmp_urandomb_value { }; +class __gmp_urandomm_value { }; + +template <> +class __gmp_expr +{ +private: + __gmp_randstate_struct *state; + mp_bitcnt_t bits; +public: + __gmp_expr(gmp_randstate_t s, mp_bitcnt_t l) : state(s), bits(l) { } + void eval(mpz_ptr z) const { __gmp_rand_function::eval(z, state, bits); } + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } +}; + +template <> +class __gmp_expr +{ +private: + __gmp_randstate_struct *state; + mpz_class range; +public: + __gmp_expr(gmp_randstate_t s, const mpz_class &z) : state(s), range(z) { } + void eval(mpz_ptr z) const + { __gmp_rand_function::eval(z, state, range.get_mpz_t()); } + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } +}; + +template <> +class __gmp_expr +{ +private: + __gmp_randstate_struct *state; + mp_bitcnt_t bits; +public: + __gmp_expr(gmp_randstate_t s, mp_bitcnt_t l) : state(s), bits(l) { } + void eval(mpf_ptr f) const + { + __gmp_rand_function::eval(f, state, + (bits>0) ? bits : mpf_get_prec(f)); + } + mp_bitcnt_t get_prec() const + { + if (bits == 0) + return mpf_get_default_prec(); + else + return bits; + } +}; + +extern "C" { + typedef void __gmp_randinit_default_t (gmp_randstate_t); + typedef void __gmp_randinit_lc_2exp_t (gmp_randstate_t, mpz_srcptr, unsigned long int, mp_bitcnt_t); + typedef int __gmp_randinit_lc_2exp_size_t (gmp_randstate_t, mp_bitcnt_t); +} + +class gmp_randclass +{ +private: + gmp_randstate_t state; + + // copy construction and assignment not allowed + gmp_randclass(const gmp_randclass &); + void operator=(const gmp_randclass &); +public: + // constructors and destructor + gmp_randclass(gmp_randalg_t alg, unsigned long int size) + { + switch (alg) + { + case GMP_RAND_ALG_LC: // no other cases for now + default: + gmp_randinit(state, alg, size); + break; + } + } + + // gmp_randinit_default + gmp_randclass(__gmp_randinit_default_t* f) { f(state); } + + // gmp_randinit_lc_2exp + gmp_randclass(__gmp_randinit_lc_2exp_t* f, + mpz_class z, unsigned long int l1, mp_bitcnt_t l2) + { f(state, z.get_mpz_t(), l1, l2); } + + // gmp_randinit_lc_2exp_size + gmp_randclass(__gmp_randinit_lc_2exp_size_t* f, + mp_bitcnt_t size) + { + if (f (state, size) == 0) + throw std::length_error ("gmp_randinit_lc_2exp_size"); + } + + ~gmp_randclass() { gmp_randclear(state); } + + // initialize + void seed(); // choose a random seed some way (?) + void seed(unsigned long int s) { gmp_randseed_ui(state, s); } + void seed(const mpz_class &z) { gmp_randseed(state, z.get_mpz_t()); } + + // get random number + __gmp_expr get_z_bits(mp_bitcnt_t l) + { return __gmp_expr(state, l); } + __gmp_expr get_z_bits(const mpz_class &z) + { return get_z_bits(z.get_ui()); } + // FIXME: z.get_bitcnt_t() ? + + __gmp_expr get_z_range(const mpz_class &z) + { return __gmp_expr(state, z); } + + __gmp_expr get_f(mp_bitcnt_t prec = 0) + { return __gmp_expr(state, prec); } +}; + + +/**************** Specialize std::numeric_limits ****************/ + +namespace std { + template <> class numeric_limits + { + public: + static const bool is_specialized = true; + static mpz_class min() { return mpz_class(); } + static mpz_class max() { return mpz_class(); } + static mpz_class lowest() { return mpz_class(); } + static const int digits = 0; + static const int digits10 = 0; + static const int max_digits10 = 0; + static const bool is_signed = true; + static const bool is_integer = true; + static const bool is_exact = true; + static const int radix = 2; + static mpz_class epsilon() { return mpz_class(); } + static mpz_class round_error() { return mpz_class(); } + static const int min_exponent = 0; + static const int min_exponent10 = 0; + static const int max_exponent = 0; + static const int max_exponent10 = 0; + static const bool has_infinity = false; + static const bool has_quiet_NaN = false; + static const bool has_signaling_NaN = false; + static const float_denorm_style has_denorm = denorm_absent; + static const bool has_denorm_loss = false; + static mpz_class infinity() { return mpz_class(); } + static mpz_class quiet_NaN() { return mpz_class(); } + static mpz_class signaling_NaN() { return mpz_class(); } + static mpz_class denorm_min() { return mpz_class(); } + static const bool is_iec559 = false; + static const bool is_bounded = false; + static const bool is_modulo = false; + static const bool traps = false; + static const bool tinyness_before = false; + static const float_round_style round_style = round_toward_zero; + }; + + template <> class numeric_limits + { + public: + static const bool is_specialized = true; + static mpq_class min() { return mpq_class(); } + static mpq_class max() { return mpq_class(); } + static mpq_class lowest() { return mpq_class(); } + static const int digits = 0; + static const int digits10 = 0; + static const int max_digits10 = 0; + static const bool is_signed = true; + static const bool is_integer = false; + static const bool is_exact = true; + static const int radix = 2; + static mpq_class epsilon() { return mpq_class(); } + static mpq_class round_error() { return mpq_class(); } + static const int min_exponent = 0; + static const int min_exponent10 = 0; + static const int max_exponent = 0; + static const int max_exponent10 = 0; + static const bool has_infinity = false; + static const bool has_quiet_NaN = false; + static const bool has_signaling_NaN = false; + static const float_denorm_style has_denorm = denorm_absent; + static const bool has_denorm_loss = false; + static mpq_class infinity() { return mpq_class(); } + static mpq_class quiet_NaN() { return mpq_class(); } + static mpq_class signaling_NaN() { return mpq_class(); } + static mpq_class denorm_min() { return mpq_class(); } + static const bool is_iec559 = false; + static const bool is_bounded = false; + static const bool is_modulo = false; + static const bool traps = false; + static const bool tinyness_before = false; + static const float_round_style round_style = round_toward_zero; + }; + + template <> class numeric_limits + { + public: + static const bool is_specialized = true; + static mpf_class min() { return mpf_class(); } + static mpf_class max() { return mpf_class(); } + static mpf_class lowest() { return mpf_class(); } + static const int digits = 0; + static const int digits10 = 0; + static const int max_digits10 = 0; + static const bool is_signed = true; + static const bool is_integer = false; + static const bool is_exact = false; + static const int radix = 2; + static mpf_class epsilon() { return mpf_class(); } + static mpf_class round_error() { return mpf_class(); } + static const int min_exponent = 0; + static const int min_exponent10 = 0; + static const int max_exponent = 0; + static const int max_exponent10 = 0; + static const bool has_infinity = false; + static const bool has_quiet_NaN = false; + static const bool has_signaling_NaN = false; + static const float_denorm_style has_denorm = denorm_absent; + static const bool has_denorm_loss = false; + static mpf_class infinity() { return mpf_class(); } + static mpf_class quiet_NaN() { return mpf_class(); } + static mpf_class signaling_NaN() { return mpf_class(); } + static mpf_class denorm_min() { return mpf_class(); } + static const bool is_iec559 = false; + static const bool is_bounded = false; + static const bool is_modulo = false; + static const bool traps = false; + static const bool tinyness_before = false; + static const float_round_style round_style = round_indeterminate; + }; +} + + +/**************** #undef all private macros ****************/ + +#undef __GMPP_DECLARE_COMPOUND_OPERATOR +#undef __GMPN_DECLARE_COMPOUND_OPERATOR +#undef __GMP_DECLARE_COMPOUND_OPERATOR +#undef __GMP_DECLARE_COMPOUND_OPERATOR_UI +#undef __GMP_DECLARE_INCREMENT_OPERATOR + +#undef __GMPZQ_DEFINE_EXPR + +#undef __GMP_DEFINE_UNARY_FUNCTION +#undef __GMP_DEFINE_UNARY_TYPE_FUNCTION + +#undef __GMPP_DEFINE_BINARY_FUNCTION +#undef __GMPNN_DEFINE_BINARY_FUNCTION +#undef __GMPNS_DEFINE_BINARY_FUNCTION +#undef __GMPNU_DEFINE_BINARY_FUNCTION +#undef __GMPND_DEFINE_BINARY_FUNCTION +#undef __GMPNLD_DEFINE_BINARY_FUNCTION +#undef __GMPN_DEFINE_BINARY_FUNCTION +#undef __GMP_DEFINE_BINARY_FUNCTION + +#undef __GMP_DEFINE_BINARY_FUNCTION_UI + +#undef __GMPP_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPNN_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPNS_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPNU_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPND_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPNLD_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPN_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMP_DEFINE_BINARY_TYPE_FUNCTION + +#undef __GMPZ_DEFINE_COMPOUND_OPERATOR + +#undef __GMPP_DEFINE_COMPOUND_OPERATOR +#undef __GMPNN_DEFINE_COMPOUND_OPERATOR +#undef __GMPNS_DEFINE_COMPOUND_OPERATOR +#undef __GMPNU_DEFINE_COMPOUND_OPERATOR +#undef __GMPND_DEFINE_COMPOUND_OPERATOR +#undef __GMPNLD_DEFINE_COMPOUND_OPERATOR +#undef __GMPN_DEFINE_COMPOUND_OPERATOR +#undef __GMP_DEFINE_COMPOUND_OPERATOR + +#undef __GMPQ_DEFINE_COMPOUND_OPERATOR +#undef __GMPF_DEFINE_COMPOUND_OPERATOR + +#undef __GMP_DEFINE_COMPOUND_OPERATOR_UI +#undef __GMPZ_DEFINE_COMPOUND_OPERATOR_UI +#undef __GMPQ_DEFINE_COMPOUND_OPERATOR_UI +#undef __GMPF_DEFINE_COMPOUND_OPERATOR_UI + +#undef __GMP_DEFINE_INCREMENT_OPERATOR +#undef __GMPZ_DEFINE_INCREMENT_OPERATOR +#undef __GMPQ_DEFINE_INCREMENT_OPERATOR +#undef __GMPF_DEFINE_INCREMENT_OPERATOR + +#undef __GMPXX_CONSTANT + +#endif /* __GMP_PLUSPLUS__ */ diff --git a/armeabi-v7a/libgmpxx.so b/armeabi-v7a/libgmpxx.so new file mode 100755 index 0000000000000000000000000000000000000000..4cf5d8ff9c0a762524c327642f8e04d198de6667 GIT binary patch literal 694328 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%0D4c{(M{hmj)>R7q^}o|BO$6ChRbd_q5a~ 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≺V$@I%idezt*}nt zMtC=@%kwi1-wTi1MENRzYbU(o_EEk+^;>u!d|0LLD7@3Un(^}M@Jx7?lK%)^Ve#oRX|EPP3qA%!_m1-KM;CWZ?Sbo*ydT~R>+%+NOO5%WS+BkaUJ2{|{}G4p zgpVQLuI$|pZ@bUf|2DiGE-3jEaMPE}d@yYm^EIsF?}K;3y8OQjFWPGI_moS6d^x-l z`A%j3?eLucXZrsw4u2fJ6S;05cf*(+%f?=} z!z1u~o@w#B;3e=lmH%(TIe3=hN8l~+9L0y> zqwplfqgkj=_=@R&v*6jV?*G@rtKo@CeN*5&mphmXO#kk3^5FK7$$tKl(UHR*e! z!#Q{kay|Zk7G7fUWAG8y3lyJRFT}1OKi2x;JouQ!7r-NgAEVN9CA<>Wnj72iB~4Xo#rA$TLK>+7TNW-I)+;d`y{e};Eh z;h#01@y!Z>vWCHM%e(|Z6G zA8)8v^0QupzX;D#+zRL5KE)|`FRa7AA3k7(|0+EGn`VCd9lQkA;m>bpJco7otKmJc zj{n_o-M38ozXFeeb@}`aUIFXyFS?5M59{!6gtuDZ-wSVpb1MDcfv0}kgs)r3egUk* zzXI-q7b*P$ydBozKL^+EG~pkEXTm!C`5n|JJYR)>Exgr|uYwQ4OO*VJ@SN|M`Sc*X z1J>j1(>uxkgC_s8;T7;=oj!Oktm}WX!w2B~$j2%D^Il8)hIRS920jMs{`G(GxbGVI zm*I&P{|%l3>;B$yHS0fE$DfAhz-v`}8{xh13dKK$J9nA-J?C}w2Uw4fGac@MS6K4* zID8+x(X#hPcoVGCH+d2D56@EZ&v7^dA48s_8;JGst#Iahrha}1?}87j@K1>F-#7MO z@p{@XJVnX-;A60k??dp+-A4WcxZC2#;WhAT6@Kb9^q(IX`zzt8u(tO(I0NhUaSYyK z$uE2Z^$Sl`_O5~_{?N3~A$Y#U--K7dbCmwm7t{XWR>fWLF<8g-wLm?cssns(mx3Ah3i#(XT|AnKQZHP3p^9n{!1Jlfpz)33*G|HQsEzf55v0s z{}o=j*Ni7qmJlDjO6f0z7e8Y518#(O!rPVnPI&cC&3N)dcn>^A$^Q-S6Rg_rg$c&v zpPBa410RE@DE;@rllK|S$H?B$NxLv+563U;b-uju#SIRH{}bjQ|Vg+ zXMSn&_e+OcQuuescPah%z)OB*`u|pke+6$x-lX)O)N~fpvd5`&!1cgC>8MJ3It;BG>)x zUWfk%uSGsf#rNDykmtg?k?Z{21|PIo+?~{YioXBhjM#vY`8=4UrhcB@M5@AmH%Dv7Ff6cZ#n!ZychXI zrGErI0&iD*5fiV?UGTwE_49}`V$0yIJii)?zIdMXE_f$AUh!@4p1+#<-skMD=! z`D0J>?_)TnK>lB8@^=orpY%^s>3;z{k;`TD_;QKEuZMSiUia^FW4-Y9o9lf4@+SBI zyji7Zqr?9XUi+Rp|NXz+4nGFBzPHY=@6kiFA9$9scOksalDENIEO{?{7}n+UHith7 zPgra0Z-txSjmrLy9X5ejSBxToO^#=tXuKp@E(gN4pTns>iqsT9i9#A@&EPk3RuUt4Big!Q1)(xSAD>g z|8}_bOx@qli0u{OXPNeW7+wvF`Cp6=V@8-?K3ErVf4*>iRQX^*15Mffkk zBj{`XF}xA(Q}QG5j(ZHBeLemS@oD)>;SI=j_zrl^7Y#3i*W73LR(J*JU#slj4j)5b z^A>nB>DByYcntQ}DgAH4IrK&Si}ZgVK1zNxKLSs^*YL05t+2Lt2tG)8>iJ^An<>8! z*ZJS?xC$P*)$qIEdp}~@-=`ej0gu~Y`o}NfsjzOZPdNPS6|@gazZKpDvn?s-gX`df zA2s|LcB}#?h;&$T#xss+<-kx|G5so9FA=?`itO+@MOwU%ttrCv*2-xH^J?e z{5x>Lk{^aw!Fql<=SJFt#S7qj;VsJE2;BYgy4W$MbP?ZY;3c=$`Tph}cW_wyDVM>?}2sx zz5ySCb@`n3Hrg+&HcflKBou9Mbjy*W1;=c-B{5exU>);Vs$NwpEv3IiNojoAN7lTri%Ycc#XxY;hpeUCEo+@fisFPcn9s} zF2=J{z4Fb$$G%|nx4~oXHu-(pP0Ua5hzj2hZ)Lok1xtU*kv|0QLSNU<8LNrk3cmn8 zYK33z$iEBEzsH0>{hjoWvrdb($oS5PT@KH_)QsOZz!^*aCAig+{{`;Ep02M8-xcIH z!aI=b{`h`)zoq{jhyM$=-)r=n-%b4RO429V>kxbh7UQen&%*7bXBI5VYri9Z#v1(N zFPiz{O%C4yZ?)wAaQKRwX@B>b^11=;w)j3c1Fux+`3HOm*6Ex29@?jsz65N`KLn5e zl1bk$9KP_qq|cHMJN#{U@m7<*C*W?2r>{LFw({)L#AkIWpEKlLnY*p}`#AFXmi))? zK1+Va`(WySs|r62UN_G08{iD_%~9=r0KWHr#uLRi!V@1b{o#Ii?^o+$OVoHb`WD*L zH|k=CmHzADDc_=hC|(N}cGA8S?|=_HSQk5>c*6VXj}IAt^=f#R#W%ydVLe_PfDgjD zeqOPT`RaS7{BrOFi|>RdS-c;f0_*VOKS2Al=Q(yxror!#gd$AKndbQuh7=7rt-ed)|8TcbVx= z3t(G*BfP=V|2%xqYTrL|@oWH!%eV`|1dlU*7M7hkK!-DI{cg9t?(>m{}%YD75+Q$ z*dH1H{GSfL=r-CTa@}6u1TV7q7I=xp--i3(aVoxl!y}fw`D3(4iFcT`m*G&h7ZBIepbP;pP2UX3%DNE?PKOAX|J%>AA~nr`k#h(!@7O^9B$fc>i67D zq!-rte-*qA*7k0I?}T;ze-Sk>vOFk3sw0H#WhIM&wc6dL$6S;05<3G*(0PFU#1m4g5_ae$m%#Sz2ImSOxKEj{4 zAHLU;KL+<%^6{Uc{bEm-=S$&37SD%|z-v`~q#V8xUiCBM?|cZ}2v1S^cRTzLywlP@ z2p_QYPyK9=C&FX*8T&2p6j+~&jI0NS_ z`8yrH172^*cR2hjc>XzN|Mws85&FYe%1iW@r{2YUfn4u*o)1sB+{l~YNywir_0Nc1 z36EIed*F3e_&39Itnh2$R!e?6JlT@p506EDjuKYSc6z>8G)uR8oF zyp8hE?}tAQ?$NbXp&G2k^zKZYb@LG!>hxftjmHgs+ zNZ+rF|Cofw{hIk!?H_#@o_&DzhT`wTn|?!libvl|dVkCMU9Bfx2G9Q;`Bm~9yy^Gs zk16@>@X-^`tDflp4ujF^Ylm1;7 zJF56s@Pz-=$@QMdU;S3vuf;dPtDj(eQRT4@-Vz%f8>jf}|3`Z}6;}2xhj)(}?Y}R0 z6TG8twBH_g!Mos`s?UEpJmr4+*XYsy`_8X}ch1)Pr)S094zIQN9=PeW(f<7`zk>TL z`I%p)zgv6>Jo71|{qrOJg2(Xkl}i5xc>d|6SMh`Joo(j6-@n6$Eqjx1m^5 z`xHL{k2}-k@7Z4=BWI2F-;aAEJawFrZ-ghFZREd(=bSUzKQDXESFv}lNzWDV1dHDc zPqO$6@Dy10=YPNjxLu`h=62cx+@v@QABEQ_z71YAezgBRhKJzJr4A8KeF8 zN3Vk0pK0Xl;HeXg{3r1I^G5sa`?RmqU!G<1^D=m>#aVc~#ka!~VV$4f!+o&MPyII- ze_@@UBzy=ys`B$b_`tJA`|sa=6(0MX(f;=p#6>Ti&!s)6_I4?}>wF`BJ3Rh*M*dBB z&GSwF`Ww9R1tvc){3iX?;%nfw7QYu>56@BQdl=pi>-->KcJ_6UN^#2V$Nc*3KzUU9n{dQ13A3l14N$*?X*bBY;HpKYzAUqS+W+7p9K(pFeGf>n|q1YCL=T zgRC!JO8OMP8qPGB{<#8P(P+wlJDi(l@-zCo_&2Z~-=;a7fDa0NmA?1F8((F{m-~hM z3NxNO0gpqj$Ct}?Vc+6@_;8bnex@!bh;euWvoeh=@x#KKy1%>~o^+Y%58r`vupSSN!JA+`zFqV~;eVR(?HV{X+vINpybqqF+Q-k~V{JzM zyobr(6-M3-AAOZ+-|vUF%rW`-HoVnh@hzb37B}vpd|;iQVR-yplb;9RZdm8%FuWet z-^mg?}c@KegfY~`x~d)-_!Qeenop#JR8o@o;AN2K1zSl zd^dcU{-*hNLQa3weEuWUAM?59*TRd%e6Q@k8=iT(;jhC}#~A*nVEh%WU;k6qKc^Y) zg*TjgT1>xxehWNqj`7DIfafFk#*Z^%zk{b(@~8hy%*RH4Dcoeq`{9CRe?2_Wl79m} z#(F@<|0nn;0fVf_$D}(F!R;@@M^eI)!!j_AFTW9nZKqz!=gV3|K`Q; zQFx5vIdH7Y_zS&o4i@c0=)cY3kHV{vw=4Nq;XSan|0{Suyg|v&IDo&B9PK~Tih8;_KiH`r7{O@G2|(UGNx7 z|9-gM;%~wSt?+x`SkGwxdHbl}VjtG_r^Bl(`K9n-OWqET={5ap5FQI}Qu*BkZ-Eaf z{xLj4dUXGP6yDG`+J7GK7)-Ior6#`TJVyFp9bXEba;=H)bAn%O z;(G)hpE2=`IY@heb$rv|as4K~9{4Ev)$MHrE?9gQe3;u?8t9{$9$MOWaU*wjlWd{?23Y?S=}$X6 z0?+@W*M85Aoe|p(x5FZo;IV%^C3cm?SHcS|z6I{E_z}3%;^+S9l-O%6UJ5UQ#r!Ai ze*s=>$^Q$#(c-y(J|*@hi*JFKSm7UqyDfep1AU*x*TET!?}u|1{~IpAI=`>{%PFxT zi{Ak+v-rF4h!uYPU#TC97r`qnz7<|&h5rq_+LB-VH~dvgz8t>U;``zESo~l3y%t}= zM7GxAcf;?q_$Tl>SeN&6|IYYj$usbWExr%F)#Crc8?5lJ{s-;L;`hUwEdDusr^OdO zj{jnDAG`(D<-HmHg2jJ>@3y%0D9`7t@Nb2;TKr9To5fH0C+iC<{6ct#CBGHkX~};J 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

Pt2nx9yOr?zHu;k8xsqr0-HJ7I0f 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 X@deAN@eT`gfA~i~7`@PuPP+dKhC&9$ literal 0 HcmV?d00001 diff --git a/armeabi/gmpxx.h b/armeabi/gmpxx.h new file mode 100644 index 0000000..c27a2f4 --- /dev/null +++ b/armeabi/gmpxx.h @@ -0,0 +1,3442 @@ +/* gmpxx.h -- C++ class wrapper for GMP types. -*- C++ -*- + +Copyright 2001, 2002, 2003, 2006, 2008, 2011, 2012 Free Software Foundation, +Inc. + +This file is part of the GNU MP Library. + +The GNU MP Library is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 3 of the License, or (at your +option) any later version. + +The GNU MP Library is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */ + +#ifndef __GMP_PLUSPLUS__ +#define __GMP_PLUSPLUS__ + +#include + +#include /* for strlen */ +#include /* numeric_limits */ +#include +#include /* swap */ +#include +#include +#include +#include + +// wrapper for gcc's __builtin_constant_p +// __builtin_constant_p has been in gcc since forever, +// but g++-3.4 miscompiles it. +#if __GMP_GNUC_PREREQ(4, 2) +#define __GMPXX_CONSTANT(X) __builtin_constant_p(X) +#else +#define __GMPXX_CONSTANT(X) false +#endif + +// Use C++11 features +#ifndef __GMPXX_USE_CXX11 +#if __cplusplus >= 201103L +#define __GMPXX_USE_CXX11 1 +#else +#define __GMPXX_USE_CXX11 0 +#endif +#endif + +#if __GMPXX_USE_CXX11 +#define __GMPXX_NOEXCEPT noexcept +#include // for common_type +#else +#define __GMPXX_NOEXCEPT +#endif + +// Max allocations for plain types when converted to mpz_t +#define __GMPZ_DBL_LIMBS (2 + DBL_MAX_EXP / GMP_NUMB_BITS) + +#if GMP_NAIL_BITS != 0 && ! defined _LONG_LONG_LIMB +#define __GMPZ_ULI_LIMBS 2 +#else +#define __GMPZ_ULI_LIMBS 1 +#endif + +inline void __mpz_set_ui_safe(mpz_ptr p, unsigned long l) +{ + p->_mp_size = (l != 0); + p->_mp_d[0] = l & GMP_NUMB_MASK; +#if __GMPZ_ULI_LIMBS > 1 + l >>= GMP_NUMB_BITS; + p->_mp_d[1] = l; + p->_mp_size += (l != 0); +#endif +} + +inline void __mpz_set_si_safe(mpz_ptr p, long l) +{ + if(l < 0) + { + __mpz_set_ui_safe(p, -static_cast(l)); + mpz_neg(p, p); + } + else + __mpz_set_ui_safe(p, l); + // Note: we know the high bit of l is 0 so we could do slightly better +} + +// Fake temporary variables +#define __GMPXX_TMPZ_UI \ + mpz_t temp; \ + mp_limb_t limbs[__GMPZ_ULI_LIMBS]; \ + temp->_mp_d = limbs; \ + __mpz_set_ui_safe (temp, l) +#define __GMPXX_TMPZ_SI \ + mpz_t temp; \ + mp_limb_t limbs[__GMPZ_ULI_LIMBS]; \ + temp->_mp_d = limbs; \ + __mpz_set_si_safe (temp, l) +#define __GMPXX_TMPZ_D \ + mpz_t temp; \ + mp_limb_t limbs[__GMPZ_DBL_LIMBS]; \ + temp->_mp_d = limbs; \ + temp->_mp_alloc = __GMPZ_DBL_LIMBS; \ + mpz_set_d (temp, d) + +#define __GMPXX_TMPQ_UI \ + mpq_t temp; \ + mp_limb_t limbs[__GMPZ_ULI_LIMBS+1]; \ + mpq_numref(temp)->_mp_d = limbs; \ + __mpz_set_ui_safe (mpq_numref(temp), l); \ + mpq_denref(temp)->_mp_d = limbs + __GMPZ_ULI_LIMBS; \ + mpq_denref(temp)->_mp_size = 1; \ + mpq_denref(temp)->_mp_d[0] = 1 +#define __GMPXX_TMPQ_SI \ + mpq_t temp; \ + mp_limb_t limbs[__GMPZ_ULI_LIMBS+1]; \ + mpq_numref(temp)->_mp_d = limbs; \ + __mpz_set_si_safe (mpq_numref(temp), l); \ + mpq_denref(temp)->_mp_d = limbs + __GMPZ_ULI_LIMBS; \ + mpq_denref(temp)->_mp_size = 1; \ + mpq_denref(temp)->_mp_d[0] = 1 + +inline unsigned long __gmpxx_abs_ui (signed long l) +{ + return l >= 0 ? static_cast(l) + : -static_cast(l); +} + +/**************** Function objects ****************/ +/* Any evaluation of a __gmp_expr ends up calling one of these functions + all intermediate functions being inline, the evaluation should optimize + to a direct call to the relevant function, thus yielding no overhead + over the C interface. */ + +struct __gmp_unary_plus +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_set(z, w); } + static void eval(mpq_ptr q, mpq_srcptr r) { mpq_set(q, r); } + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_set(f, g); } +}; + +struct __gmp_unary_minus +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_neg(z, w); } + static void eval(mpq_ptr q, mpq_srcptr r) { mpq_neg(q, r); } + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_neg(f, g); } +}; + +struct __gmp_unary_com +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_com(z, w); } +}; + +struct __gmp_binary_plus +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_add(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { + // Ideally, those checks should happen earlier so that the tree + // generated for a+0+b would just be sum(a,b). + if (__GMPXX_CONSTANT(l) && l == 0) + { + if (z != w) mpz_set(z, w); + } + else + mpz_add_ui(z, w, l); + } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + if (l >= 0) + eval(z, w, static_cast(l)); + else + mpz_sub_ui(z, w, -static_cast(l)); + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_add (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { eval(z, w, d); } + + static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) + { mpq_add(q, r, s); } + + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { + if (__GMPXX_CONSTANT(l) && l == 0) + { + if (q != r) mpq_set(q, r); + } + else + { + if (q == r) + mpz_addmul_ui(mpq_numref(q), mpq_denref(q), l); + else + { + mpz_mul_ui(mpq_numref(q), mpq_denref(r), l); + mpz_add(mpq_numref(q), mpq_numref(q), mpq_numref(r)); + mpz_set(mpq_denref(q), mpq_denref(r)); + } + } + } + static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) + { eval(q, r, l); } + static inline void eval(mpq_ptr q, mpq_srcptr r, signed long int l); + // defined after __gmp_binary_minus + static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) + { eval(q, r, l); } + static void eval(mpq_ptr q, mpq_srcptr r, double d) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_add(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, double d, mpq_srcptr r) + { eval(q, r, d); } + + static void eval(mpq_ptr q, mpq_srcptr r, mpz_srcptr z) + { + if (q == r) + mpz_addmul(mpq_numref(q), mpq_denref(q), z); + else + { + mpz_mul(mpq_numref(q), mpq_denref(r), z); + mpz_add(mpq_numref(q), mpq_numref(q), mpq_numref(r)); + mpz_set(mpq_denref(q), mpq_denref(r)); + } + } + static void eval(mpq_ptr q, mpz_srcptr z, mpq_srcptr r) + { eval(q, r, z); } + + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { mpf_add(f, g, h); } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_add_ui(f, g, l); } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { mpf_add_ui(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + if (l >= 0) + mpf_add_ui(f, g, l); + else + mpf_sub_ui(f, g, -static_cast(l)); + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { eval(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_add(f, g, temp); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { eval(f, g, d); } +}; + +struct __gmp_binary_minus +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_sub(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { + if (__GMPXX_CONSTANT(l) && l == 0) + { + if (z != w) mpz_set(z, w); + } + else + mpz_sub_ui(z, w, l); + } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { + if (__GMPXX_CONSTANT(l) && l == 0) + { + mpz_neg(z, w); + } + else + mpz_ui_sub(z, l, w); + } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + if (l >= 0) + eval(z, w, static_cast(l)); + else + mpz_add_ui(z, w, -static_cast(l)); + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { + if (l >= 0) + eval(z, static_cast(l), w); + else + { + mpz_add_ui(z, w, -static_cast(l)); + mpz_neg(z, z); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_sub (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { __GMPXX_TMPZ_D; mpz_sub (z, temp, w); } + + static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) + { mpq_sub(q, r, s); } + + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { + if (__GMPXX_CONSTANT(l) && l == 0) + { + if (q != r) mpq_set(q, r); + } + else + { + if (q == r) + mpz_submul_ui(mpq_numref(q), mpq_denref(q), l); + else + { + mpz_mul_ui(mpq_numref(q), mpq_denref(r), l); + mpz_sub(mpq_numref(q), mpq_numref(r), mpq_numref(q)); + mpz_set(mpq_denref(q), mpq_denref(r)); + } + } + } + static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) + { eval(q, r, l); mpq_neg(q, q); } + static void eval(mpq_ptr q, mpq_srcptr r, signed long int l) + { + if (l >= 0) + eval(q, r, static_cast(l)); + else + __gmp_binary_plus::eval(q, r, -static_cast(l)); + } + static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) + { eval(q, r, l); mpq_neg(q, q); } + static void eval(mpq_ptr q, mpq_srcptr r, double d) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_sub(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, double d, mpq_srcptr r) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_sub(q, temp, r); + mpq_clear(temp); + } + + static void eval(mpq_ptr q, mpq_srcptr r, mpz_srcptr z) + { + if (q == r) + mpz_submul(mpq_numref(q), mpq_denref(q), z); + else + { + mpz_mul(mpq_numref(q), mpq_denref(r), z); + mpz_sub(mpq_numref(q), mpq_numref(r), mpq_numref(q)); + mpz_set(mpq_denref(q), mpq_denref(r)); + } + } + static void eval(mpq_ptr q, mpz_srcptr z, mpq_srcptr r) + { eval(q, r, z); mpq_neg(q, q); } + + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { mpf_sub(f, g, h); } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_sub_ui(f, g, l); } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { mpf_ui_sub(f, l, g); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + if (l >= 0) + mpf_sub_ui(f, g, l); + else + mpf_add_ui(f, g, -static_cast(l)); + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { + if (l >= 0) + mpf_sub_ui(f, g, l); + else + mpf_add_ui(f, g, -static_cast(l)); + mpf_neg(f, f); + } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_sub(f, g, temp); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_sub(f, temp, g); + mpf_clear(temp); + } +}; + +// defined here so it can reference __gmp_binary_minus +inline void +__gmp_binary_plus::eval(mpq_ptr q, mpq_srcptr r, signed long int l) +{ + if (l >= 0) + eval(q, r, static_cast(l)); + else + __gmp_binary_minus::eval(q, r, -static_cast(l)); +} + +struct __gmp_binary_lshift +{ + static void eval(mpz_ptr z, mpz_srcptr w, mp_bitcnt_t l) + { + if (__GMPXX_CONSTANT(l) && (l == 0)) + { + if (z != w) mpz_set(z, w); + } + else + mpz_mul_2exp(z, w, l); + } + static void eval(mpq_ptr q, mpq_srcptr r, mp_bitcnt_t l) + { + if (__GMPXX_CONSTANT(l) && (l == 0)) + { + if (q != r) mpq_set(q, r); + } + else + mpq_mul_2exp(q, r, l); + } + static void eval(mpf_ptr f, mpf_srcptr g, mp_bitcnt_t l) + { mpf_mul_2exp(f, g, l); } +}; + +struct __gmp_binary_rshift +{ + static void eval(mpz_ptr z, mpz_srcptr w, mp_bitcnt_t l) + { + if (__GMPXX_CONSTANT(l) && (l == 0)) + { + if (z != w) mpz_set(z, w); + } + else + mpz_fdiv_q_2exp(z, w, l); + } + static void eval(mpq_ptr q, mpq_srcptr r, mp_bitcnt_t l) + { + if (__GMPXX_CONSTANT(l) && (l == 0)) + { + if (q != r) mpq_set(q, r); + } + else + mpq_div_2exp(q, r, l); + } + static void eval(mpf_ptr f, mpf_srcptr g, mp_bitcnt_t l) + { mpf_div_2exp(f, g, l); } +}; + +struct __gmp_binary_multiplies +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_mul(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { +// gcc-3.3 doesn't have __builtin_ctzl. Don't bother optimizing for old gcc. +#if __GMP_GNUC_PREREQ(3, 4) + if (__GMPXX_CONSTANT(l) && (l & (l-1)) == 0) + { + if (l == 0) + { + z->_mp_size = 0; + } + else + { + __gmp_binary_lshift::eval(z, w, __builtin_ctzl(l)); + } + } + else +#endif + mpz_mul_ui(z, w, l); + } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + if (__GMPXX_CONSTANT(l)) + { + if (l >= 0) + eval(z, w, static_cast(l)); + else + { + eval(z, w, -static_cast(l)); + mpz_neg(z, z); + } + } + else + mpz_mul_si (z, w, l); + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_mul (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { eval(z, w, d); } + + static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) + { mpq_mul(q, r, s); } + + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { +#if __GMP_GNUC_PREREQ(3, 4) + if (__GMPXX_CONSTANT(l) && (l & (l-1)) == 0) + { + if (l == 0) + { + mpq_set_ui(q, 0, 1); + } + else + { + __gmp_binary_lshift::eval(q, r, __builtin_ctzl(l)); + } + } + else +#endif + { + __GMPXX_TMPQ_UI; + mpq_mul (q, r, temp); + } + } + static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) + { eval(q, r, l); } + static void eval(mpq_ptr q, mpq_srcptr r, signed long int l) + { + if (__GMPXX_CONSTANT(l)) + { + if (l >= 0) + eval(q, r, static_cast(l)); + else + { + eval(q, r, -static_cast(l)); + mpq_neg(q, q); + } + } + else + { + __GMPXX_TMPQ_SI; + mpq_mul (q, r, temp); + } + } + static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) + { eval(q, r, l); } + static void eval(mpq_ptr q, mpq_srcptr r, double d) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_mul(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, double d, mpq_srcptr r) + { eval(q, r, d); } + + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { mpf_mul(f, g, h); } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_mul_ui(f, g, l); } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { mpf_mul_ui(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + if (l >= 0) + mpf_mul_ui(f, g, l); + else + { + mpf_mul_ui(f, g, -static_cast(l)); + mpf_neg(f, f); + } + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { eval(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_mul(f, g, temp); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { eval(f, g, d); } +}; + +struct __gmp_binary_divides +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_tdiv_q(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { +#if __GMP_GNUC_PREREQ(3, 4) + // Don't optimize division by 0... + if (__GMPXX_CONSTANT(l) && (l & (l-1)) == 0 && l != 0) + { + if (l == 1) + { + if (z != w) mpz_set(z, w); + } + else + mpz_tdiv_q_2exp(z, w, __builtin_ctzl(l)); + // warning: do not use rshift (fdiv) + } + else +#endif + mpz_tdiv_q_ui(z, w, l); + } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { + if (mpz_sgn(w) >= 0) + { + if (mpz_fits_ulong_p(w)) + mpz_set_ui(z, l / mpz_get_ui(w)); + else + mpz_set_ui(z, 0); + } + else + { + mpz_neg(z, w); + if (mpz_fits_ulong_p(z)) + { + mpz_set_ui(z, l / mpz_get_ui(z)); + mpz_neg(z, z); + } + else + mpz_set_ui(z, 0); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + if (l >= 0) + eval(z, w, static_cast(l)); + else + { + eval(z, w, -static_cast(l)); + mpz_neg(z, z); + } + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { + if (mpz_fits_slong_p(w)) + mpz_set_si(z, l / mpz_get_si(w)); + else + { + /* if w is bigger than a long then the quotient must be zero, unless + l==LONG_MIN and w==-LONG_MIN in which case the quotient is -1 */ + mpz_set_si (z, (mpz_cmpabs_ui (w, __gmpxx_abs_ui(l)) == 0 ? -1 : 0)); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_tdiv_q (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { __GMPXX_TMPZ_D; mpz_tdiv_q (z, temp, w); } + + static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) + { mpq_div(q, r, s); } + + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { +#if __GMP_GNUC_PREREQ(3, 4) + if (__GMPXX_CONSTANT(l) && (l & (l-1)) == 0 && l != 0) + __gmp_binary_rshift::eval(q, r, __builtin_ctzl(l)); + else +#endif + { + __GMPXX_TMPQ_UI; + mpq_div (q, r, temp); + } + } + static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) + { __GMPXX_TMPQ_UI; mpq_div (q, temp, r); } + static void eval(mpq_ptr q, mpq_srcptr r, signed long int l) + { + if (__GMPXX_CONSTANT(l)) + { + if (l >= 0) + eval(q, r, static_cast(l)); + else + { + eval(q, r, -static_cast(l)); + mpq_neg(q, q); + } + } + else + { + __GMPXX_TMPQ_SI; + mpq_div (q, r, temp); + } + } + static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) + { __GMPXX_TMPQ_SI; mpq_div (q, temp, r); } + static void eval(mpq_ptr q, mpq_srcptr r, double d) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_div(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, double d, mpq_srcptr r) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_div(q, temp, r); + mpq_clear(temp); + } + + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { mpf_div(f, g, h); } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_div_ui(f, g, l); } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { mpf_ui_div(f, l, g); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + if (l >= 0) + mpf_div_ui(f, g, l); + else + { + mpf_div_ui(f, g, -static_cast(l)); + mpf_neg(f, f); + } + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { + if (l >= 0) + mpf_ui_div(f, l, g); + else + { + mpf_ui_div(f, -static_cast(l), g); + mpf_neg(f, f); + } + } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_div(f, g, temp); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_div(f, temp, g); + mpf_clear(temp); + } +}; + +struct __gmp_binary_modulus +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_tdiv_r(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { mpz_tdiv_r_ui(z, w, l); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { + if (mpz_sgn(w) >= 0) + { + if (mpz_fits_ulong_p(w)) + mpz_set_ui(z, l % mpz_get_ui(w)); + else + mpz_set_ui(z, l); + } + else + { + mpz_neg(z, w); + if (mpz_fits_ulong_p(z)) + mpz_set_ui(z, l % mpz_get_ui(z)); + else + mpz_set_ui(z, l); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + mpz_tdiv_r_ui (z, w, __gmpxx_abs_ui(l)); + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { + if (mpz_fits_slong_p(w)) + mpz_set_si(z, l % mpz_get_si(w)); + else + { + /* if w is bigger than a long then the remainder is l unchanged, + unless l==LONG_MIN and w==-LONG_MIN in which case it's 0 */ + mpz_set_si (z, mpz_cmpabs_ui (w, __gmpxx_abs_ui(l)) == 0 ? 0 : l); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_tdiv_r (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { __GMPXX_TMPZ_D; mpz_tdiv_r (z, temp, w); } +}; + +struct __gmp_binary_and +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_and(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { __GMPXX_TMPZ_UI; mpz_and (z, w, temp); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { __GMPXX_TMPZ_SI; mpz_and (z, w, temp); } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_and (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { eval(z, w, d); } +}; + +struct __gmp_binary_ior +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_ior(z, w, v); } + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { __GMPXX_TMPZ_UI; mpz_ior (z, w, temp); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { __GMPXX_TMPZ_SI; mpz_ior (z, w, temp); } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_ior (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { eval(z, w, d); } +}; + +struct __gmp_binary_xor +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_xor(z, w, v); } + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { __GMPXX_TMPZ_UI; mpz_xor (z, w, temp); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { __GMPXX_TMPZ_SI; mpz_xor (z, w, temp); } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_xor (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { eval(z, w, d); } +}; + +struct __gmp_binary_equal +{ + static bool eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w) == 0; } + + static bool eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l) == 0; } + static bool eval(unsigned long int l, mpz_srcptr z) + { return mpz_cmp_ui(z, l) == 0; } + static bool eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l) == 0; } + static bool eval(signed long int l, mpz_srcptr z) + { return mpz_cmp_si(z, l) == 0; } + static bool eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d) == 0; } + static bool eval(double d, mpz_srcptr z) + { return mpz_cmp_d(z, d) == 0; } + + static bool eval(mpq_srcptr q, mpq_srcptr r) + { return mpq_equal(q, r) != 0; } + + static bool eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1) == 0; } + static bool eval(unsigned long int l, mpq_srcptr q) + { return mpq_cmp_ui(q, l, 1) == 0; } + static bool eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1) == 0; } + static bool eval(signed long int l, mpq_srcptr q) + { return mpq_cmp_si(q, l, 1) == 0; } + static bool eval(mpq_srcptr q, double d) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_equal(q, temp) != 0); + mpq_clear(temp); + return b; + } + static bool eval(double d, mpq_srcptr q) + { + return eval(q, d); + } + + static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) == 0; } + + static bool eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l) == 0; } + static bool eval(unsigned long int l, mpf_srcptr f) + { return mpf_cmp_ui(f, l) == 0; } + static bool eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l) == 0; } + static bool eval(signed long int l, mpf_srcptr f) + { return mpf_cmp_si(f, l) == 0; } + static bool eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d) == 0; } + static bool eval(double d, mpf_srcptr f) + { return mpf_cmp_d(f, d) == 0; } +}; + +struct __gmp_binary_less +{ + static bool eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w) < 0; } + + static bool eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l) < 0; } + static bool eval(unsigned long int l, mpz_srcptr z) + { return mpz_cmp_ui(z, l) > 0; } + static bool eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l) < 0; } + static bool eval(signed long int l, mpz_srcptr z) + { return mpz_cmp_si(z, l) > 0; } + static bool eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d) < 0; } + static bool eval(double d, mpz_srcptr z) + { return mpz_cmp_d(z, d) > 0; } + + static bool eval(mpq_srcptr q, mpq_srcptr r) { return mpq_cmp(q, r) < 0; } + + static bool eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1) < 0; } + static bool eval(unsigned long int l, mpq_srcptr q) + { return mpq_cmp_ui(q, l, 1) > 0; } + static bool eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1) < 0; } + static bool eval(signed long int l, mpq_srcptr q) + { return mpq_cmp_si(q, l, 1) > 0; } + static bool eval(mpq_srcptr q, double d) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(q, temp) < 0); + mpq_clear(temp); + return b; + } + static bool eval(double d, mpq_srcptr q) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(temp, q) < 0); + mpq_clear(temp); + return b; + } + + static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) < 0; } + + static bool eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l) < 0; } + static bool eval(unsigned long int l, mpf_srcptr f) + { return mpf_cmp_ui(f, l) > 0; } + static bool eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l) < 0; } + static bool eval(signed long int l, mpf_srcptr f) + { return mpf_cmp_si(f, l) > 0; } + static bool eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d) < 0; } + static bool eval(double d, mpf_srcptr f) + { return mpf_cmp_d(f, d) > 0; } +}; + +struct __gmp_binary_greater +{ + static bool eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w) > 0; } + + static bool eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l) > 0; } + static bool eval(unsigned long int l, mpz_srcptr z) + { return mpz_cmp_ui(z, l) < 0; } + static bool eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l) > 0; } + static bool eval(signed long int l, mpz_srcptr z) + { return mpz_cmp_si(z, l) < 0; } + static bool eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d) > 0; } + static bool eval(double d, mpz_srcptr z) + { return mpz_cmp_d(z, d) < 0; } + + static bool eval(mpq_srcptr q, mpq_srcptr r) { return mpq_cmp(q, r) > 0; } + + static bool eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1) > 0; } + static bool eval(unsigned long int l, mpq_srcptr q) + { return mpq_cmp_ui(q, l, 1) < 0; } + static bool eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1) > 0; } + static bool eval(signed long int l, mpq_srcptr q) + { return mpq_cmp_si(q, l, 1) < 0; } + static bool eval(mpq_srcptr q, double d) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(q, temp) > 0); + mpq_clear(temp); + return b; + } + static bool eval(double d, mpq_srcptr q) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(temp, q) > 0); + mpq_clear(temp); + return b; + } + + static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) > 0; } + + static bool eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l) > 0; } + static bool eval(unsigned long int l, mpf_srcptr f) + { return mpf_cmp_ui(f, l) < 0; } + static bool eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l) > 0; } + static bool eval(signed long int l, mpf_srcptr f) + { return mpf_cmp_si(f, l) < 0; } + static bool eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d) > 0; } + static bool eval(double d, mpf_srcptr f) + { return mpf_cmp_d(f, d) < 0; } +}; + +struct __gmp_unary_increment +{ + static void eval(mpz_ptr z) { mpz_add_ui(z, z, 1); } + static void eval(mpq_ptr q) + { mpz_add(mpq_numref(q), mpq_numref(q), mpq_denref(q)); } + static void eval(mpf_ptr f) { mpf_add_ui(f, f, 1); } +}; + +struct __gmp_unary_decrement +{ + static void eval(mpz_ptr z) { mpz_sub_ui(z, z, 1); } + static void eval(mpq_ptr q) + { mpz_sub(mpq_numref(q), mpq_numref(q), mpq_denref(q)); } + static void eval(mpf_ptr f) { mpf_sub_ui(f, f, 1); } +}; + +struct __gmp_abs_function +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_abs(z, w); } + static void eval(mpq_ptr q, mpq_srcptr r) { mpq_abs(q, r); } + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_abs(f, g); } +}; + +struct __gmp_trunc_function +{ + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_trunc(f, g); } +}; + +struct __gmp_floor_function +{ + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_floor(f, g); } +}; + +struct __gmp_ceil_function +{ + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_ceil(f, g); } +}; + +struct __gmp_sqrt_function +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_sqrt(z, w); } + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_sqrt(f, g); } +}; + +struct __gmp_hypot_function +{ + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_mul(f, h, h); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_set_ui(f, l); + mpf_mul(f, f, f); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { eval(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_set_si(f, l); + mpf_mul(f, f, f); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { eval(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_set_d(f, d); + mpf_mul(f, f, f); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { eval(f, g, d); } +}; + +struct __gmp_sgn_function +{ + static int eval(mpz_srcptr z) { return mpz_sgn(z); } + static int eval(mpq_srcptr q) { return mpq_sgn(q); } + static int eval(mpf_srcptr f) { return mpf_sgn(f); } +}; + +struct __gmp_cmp_function +{ + static int eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w); } + + static int eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l); } + static int eval(unsigned long int l, mpz_srcptr z) + { return -mpz_cmp_ui(z, l); } + static int eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l); } + static int eval(signed long int l, mpz_srcptr z) + { return -mpz_cmp_si(z, l); } + static int eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d); } + static int eval(double d, mpz_srcptr z) + { return -mpz_cmp_d(z, d); } + + static int eval(mpq_srcptr q, mpq_srcptr r) { return mpq_cmp(q, r); } + + static int eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1); } + static int eval(unsigned long int l, mpq_srcptr q) + { return -mpq_cmp_ui(q, l, 1); } + static int eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1); } + static int eval(signed long int l, mpq_srcptr q) + { return -mpq_cmp_si(q, l, 1); } + static int eval(mpq_srcptr q, double d) + { + int i; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + i = mpq_cmp(q, temp); + mpq_clear(temp); + return i; + } + static int eval(double d, mpq_srcptr q) + { + int i; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + i = mpq_cmp(temp, q); + mpq_clear(temp); + return i; + } + + static int eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g); } + + static int eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l); } + static int eval(unsigned long int l, mpf_srcptr f) + { return -mpf_cmp_ui(f, l); } + static int eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l); } + static int eval(signed long int l, mpf_srcptr f) + { return -mpf_cmp_si(f, l); } + static int eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d); } + static int eval(double d, mpf_srcptr f) + { return -mpf_cmp_d(f, d); } +}; + +struct __gmp_rand_function +{ + static void eval(mpz_ptr z, gmp_randstate_t s, mp_bitcnt_t l) + { mpz_urandomb(z, s, l); } + static void eval(mpz_ptr z, gmp_randstate_t s, mpz_srcptr w) + { mpz_urandomm(z, s, w); } + static void eval(mpf_ptr f, gmp_randstate_t s, mp_bitcnt_t prec) + { mpf_urandomb(f, s, prec); } +}; + + +/**************** Auxiliary classes ****************/ + +/* this is much the same as gmp_allocated_string in gmp-impl.h + since gmp-impl.h is not publicly available, I redefine it here + I use a different name to avoid possible clashes */ + +extern "C" { + typedef void (*__gmp_freefunc_t) (void *, size_t); +} +struct __gmp_alloc_cstring +{ + char *str; + __gmp_alloc_cstring(char *s) { str = s; } + ~__gmp_alloc_cstring() + { + __gmp_freefunc_t freefunc; + mp_get_memory_functions (NULL, NULL, &freefunc); + (*freefunc) (str, std::strlen(str)+1); + } +}; + + +// general expression template class +template +class __gmp_expr; + + +// templates for resolving expression types +template +struct __gmp_resolve_ref +{ + typedef T ref_type; +}; + +template +struct __gmp_resolve_ref<__gmp_expr > +{ + typedef const __gmp_expr & ref_type; +}; + + +template +struct __gmp_resolve_expr; + +template <> +struct __gmp_resolve_expr +{ + typedef mpz_t value_type; + typedef mpz_ptr ptr_type; + typedef mpz_srcptr srcptr_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpq_t value_type; + typedef mpq_ptr ptr_type; + typedef mpq_srcptr srcptr_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; + typedef mpf_ptr ptr_type; + typedef mpf_srcptr srcptr_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpq_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpq_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; +}; + +#if __GMPXX_USE_CXX11 +namespace std { + template + struct common_type <__gmp_expr, __gmp_expr > + { + private: + typedef typename __gmp_resolve_expr::value_type X; + public: + typedef __gmp_expr type; + }; + + template + struct common_type <__gmp_expr, __gmp_expr > + { + typedef __gmp_expr type; + }; + +#define __GMPXX_DECLARE_COMMON_TYPE(typ) \ + template \ + struct common_type <__gmp_expr, typ > \ + { \ + typedef __gmp_expr type; \ + }; \ + \ + template \ + struct common_type > \ + { \ + typedef __gmp_expr type; \ + } + + __GMPXX_DECLARE_COMMON_TYPE(signed char); + __GMPXX_DECLARE_COMMON_TYPE(unsigned char); + __GMPXX_DECLARE_COMMON_TYPE(signed int); + __GMPXX_DECLARE_COMMON_TYPE(unsigned int); + __GMPXX_DECLARE_COMMON_TYPE(signed short int); + __GMPXX_DECLARE_COMMON_TYPE(unsigned short int); + __GMPXX_DECLARE_COMMON_TYPE(signed long int); + __GMPXX_DECLARE_COMMON_TYPE(unsigned long int); + __GMPXX_DECLARE_COMMON_TYPE(float); + __GMPXX_DECLARE_COMMON_TYPE(double); +#undef __GMPXX_DECLARE_COMMON_TYPE +} +#endif + +// classes for evaluating unary and binary expressions +template +struct __gmp_unary_expr +{ + const T &val; + + __gmp_unary_expr(const T &v) : val(v) { } +private: + __gmp_unary_expr(); +}; + +template +struct __gmp_binary_expr +{ + typename __gmp_resolve_ref::ref_type val1; + typename __gmp_resolve_ref::ref_type val2; + + __gmp_binary_expr(const T &v1, const U &v2) : val1(v1), val2(v2) { } +private: + __gmp_binary_expr(); +}; + + + +/**************** Macros for in-class declarations ****************/ +/* This is just repetitive code that is easier to maintain if it's written + only once */ + +#define __GMPP_DECLARE_COMPOUND_OPERATOR(fun) \ + template \ + __gmp_expr & fun(const __gmp_expr &); + +#define __GMPN_DECLARE_COMPOUND_OPERATOR(fun) \ + __gmp_expr & fun(signed char); \ + __gmp_expr & fun(unsigned char); \ + __gmp_expr & fun(signed int); \ + __gmp_expr & fun(unsigned int); \ + __gmp_expr & fun(signed short int); \ + __gmp_expr & fun(unsigned short int); \ + __gmp_expr & fun(signed long int); \ + __gmp_expr & fun(unsigned long int); \ + __gmp_expr & fun(float); \ + __gmp_expr & fun(double); \ + /* __gmp_expr & fun(long double); */ + +#define __GMP_DECLARE_COMPOUND_OPERATOR(fun) \ +__GMPP_DECLARE_COMPOUND_OPERATOR(fun) \ +__GMPN_DECLARE_COMPOUND_OPERATOR(fun) + +#define __GMP_DECLARE_COMPOUND_OPERATOR_UI(fun) \ + __gmp_expr & fun(mp_bitcnt_t); + +#define __GMP_DECLARE_INCREMENT_OPERATOR(fun) \ + inline __gmp_expr & fun(); \ + inline __gmp_expr fun(int); + + +/**************** mpz_class -- wrapper for mpz_t ****************/ + +template <> +class __gmp_expr +{ +private: + typedef mpz_t value_type; + value_type mp; +public: + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } + + // constructors and destructor + __gmp_expr() { mpz_init(mp); } + + __gmp_expr(const __gmp_expr &z) { mpz_init_set(mp, z.mp); } +#if __GMPXX_USE_CXX11 + __gmp_expr(__gmp_expr &&z) + { *mp = *z.mp; mpz_init(z.mp); } +#endif + template + __gmp_expr(const __gmp_expr &expr) + { mpz_init(mp); __gmp_set_expr(mp, expr); } + template + explicit __gmp_expr(const __gmp_expr &expr) + { mpz_init(mp); __gmp_set_expr(mp, expr); } + + __gmp_expr(signed char c) { mpz_init_set_si(mp, c); } + __gmp_expr(unsigned char c) { mpz_init_set_ui(mp, c); } + + __gmp_expr(signed int i) { mpz_init_set_si(mp, i); } + __gmp_expr(unsigned int i) { mpz_init_set_ui(mp, i); } + + __gmp_expr(signed short int s) { mpz_init_set_si(mp, s); } + __gmp_expr(unsigned short int s) { mpz_init_set_ui(mp, s); } + + __gmp_expr(signed long int l) { mpz_init_set_si(mp, l); } + __gmp_expr(unsigned long int l) { mpz_init_set_ui(mp, l); } + + __gmp_expr(float f) { mpz_init_set_d(mp, f); } + __gmp_expr(double d) { mpz_init_set_d(mp, d); } + // __gmp_expr(long double ld) { mpz_init_set_d(mp, ld); } + + explicit __gmp_expr(const char *s, int base = 0) + { + if (mpz_init_set_str (mp, s, base) != 0) + { + mpz_clear (mp); + throw std::invalid_argument ("mpz_set_str"); + } + } + explicit __gmp_expr(const std::string &s, int base = 0) + { + if (mpz_init_set_str(mp, s.c_str(), base) != 0) + { + mpz_clear (mp); + throw std::invalid_argument ("mpz_set_str"); + } + } + + explicit __gmp_expr(mpz_srcptr z) { mpz_init_set(mp, z); } + + ~__gmp_expr() { mpz_clear(mp); } + + void swap(__gmp_expr& z) __GMPXX_NOEXCEPT { std::swap(*mp, *z.mp); } + + // assignment operators + __gmp_expr & operator=(const __gmp_expr &z) + { mpz_set(mp, z.mp); return *this; } +#if __GMPXX_USE_CXX11 + __gmp_expr & operator=(__gmp_expr &&z) noexcept + { swap(z); return *this; } +#endif + template + __gmp_expr & operator=(const __gmp_expr &expr) + { __gmp_set_expr(mp, expr); return *this; } + + __gmp_expr & operator=(signed char c) { mpz_set_si(mp, c); return *this; } + __gmp_expr & operator=(unsigned char c) { mpz_set_ui(mp, c); return *this; } + + __gmp_expr & operator=(signed int i) { mpz_set_si(mp, i); return *this; } + __gmp_expr & operator=(unsigned int i) { mpz_set_ui(mp, i); return *this; } + + __gmp_expr & operator=(signed short int s) + { mpz_set_si(mp, s); return *this; } + __gmp_expr & operator=(unsigned short int s) + { mpz_set_ui(mp, s); return *this; } + + __gmp_expr & operator=(signed long int l) + { mpz_set_si(mp, l); return *this; } + __gmp_expr & operator=(unsigned long int l) + { mpz_set_ui(mp, l); return *this; } + + __gmp_expr & operator=(float f) { mpz_set_d(mp, f); return *this; } + __gmp_expr & operator=(double d) { mpz_set_d(mp, d); return *this; } + // __gmp_expr & operator=(long double ld) + // { mpz_set_ld(mp, ld); return *this; } + + __gmp_expr & operator=(const char *s) + { + if (mpz_set_str (mp, s, 0) != 0) + throw std::invalid_argument ("mpz_set_str"); + return *this; + } + __gmp_expr & operator=(const std::string &s) + { + if (mpz_set_str(mp, s.c_str(), 0) != 0) + throw std::invalid_argument ("mpz_set_str"); + return *this; + } + + // string input/output functions + int set_str(const char *s, int base) + { return mpz_set_str(mp, s, base); } + int set_str(const std::string &s, int base) + { return mpz_set_str(mp, s.c_str(), base); } + std::string get_str(int base = 10) const + { + __gmp_alloc_cstring temp(mpz_get_str(0, base, mp)); + return std::string(temp.str); + } + + // conversion functions + mpz_srcptr __get_mp() const { return mp; } + mpz_ptr __get_mp() { return mp; } + mpz_srcptr get_mpz_t() const { return mp; } + mpz_ptr get_mpz_t() { return mp; } + + signed long int get_si() const { return mpz_get_si(mp); } + unsigned long int get_ui() const { return mpz_get_ui(mp); } + double get_d() const { return mpz_get_d(mp); } + + // bool fits_schar_p() const { return mpz_fits_schar_p(mp); } + // bool fits_uchar_p() const { return mpz_fits_uchar_p(mp); } + bool fits_sint_p() const { return mpz_fits_sint_p(mp); } + bool fits_uint_p() const { return mpz_fits_uint_p(mp); } + bool fits_sshort_p() const { return mpz_fits_sshort_p(mp); } + bool fits_ushort_p() const { return mpz_fits_ushort_p(mp); } + bool fits_slong_p() const { return mpz_fits_slong_p(mp); } + bool fits_ulong_p() const { return mpz_fits_ulong_p(mp); } + // bool fits_float_p() const { return mpz_fits_float_p(mp); } + // bool fits_double_p() const { return mpz_fits_double_p(mp); } + // bool fits_ldouble_p() const { return mpz_fits_ldouble_p(mp); } + +#if __GMPXX_USE_CXX11 + explicit operator bool() const { return mp->_mp_size != 0; } +#endif + + // member operators + __GMP_DECLARE_COMPOUND_OPERATOR(operator+=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator-=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator*=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator/=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator%=) + + __GMP_DECLARE_COMPOUND_OPERATOR(operator&=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator|=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator^=) + + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator<<=) + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator>>=) + + __GMP_DECLARE_INCREMENT_OPERATOR(operator++) + __GMP_DECLARE_INCREMENT_OPERATOR(operator--) +}; + +typedef __gmp_expr mpz_class; + + +/**************** mpq_class -- wrapper for mpq_t ****************/ + +template <> +class __gmp_expr +{ +private: + typedef mpq_t value_type; + value_type mp; +public: + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } + void canonicalize() { mpq_canonicalize(mp); } + + // constructors and destructor + __gmp_expr() { mpq_init(mp); } + + __gmp_expr(const __gmp_expr &q) + { + mpz_init_set(mpq_numref(mp), mpq_numref(q.mp)); + mpz_init_set(mpq_denref(mp), mpq_denref(q.mp)); + } +#if __GMPXX_USE_CXX11 + __gmp_expr(__gmp_expr &&q) + { *mp = *q.mp; mpq_init(q.mp); } +#endif + template + __gmp_expr(const __gmp_expr &expr) + { mpq_init(mp); __gmp_set_expr(mp, expr); } + template + __gmp_expr(const __gmp_expr &expr) + { mpq_init(mp); __gmp_set_expr(mp, expr); } + template + explicit __gmp_expr(const __gmp_expr &expr) + { mpq_init(mp); __gmp_set_expr(mp, expr); } + + __gmp_expr(signed char c) { mpq_init(mp); mpq_set_si(mp, c, 1); } + __gmp_expr(unsigned char c) { mpq_init(mp); mpq_set_ui(mp, c, 1); } + + __gmp_expr(signed int i) { mpq_init(mp); mpq_set_si(mp, i, 1); } + __gmp_expr(unsigned int i) { mpq_init(mp); mpq_set_ui(mp, i, 1); } + + __gmp_expr(signed short int s) { mpq_init(mp); mpq_set_si(mp, s, 1); } + __gmp_expr(unsigned short int s) { mpq_init(mp); mpq_set_ui(mp, s, 1); } + + __gmp_expr(signed long int l) { mpq_init(mp); mpq_set_si(mp, l, 1); } + __gmp_expr(unsigned long int l) { mpq_init(mp); mpq_set_ui(mp, l, 1); } + + __gmp_expr(float f) { mpq_init(mp); mpq_set_d(mp, f); } + __gmp_expr(double d) { mpq_init(mp); mpq_set_d(mp, d); } + // __gmp_expr(long double ld) { mpq_init(mp); mpq_set_ld(mp, ld); } + + explicit __gmp_expr(const char *s, int base = 0) + { + mpq_init (mp); + // If s is the literal 0, we meant to call another constructor. + // If s just happens to evaluate to 0, we would crash, so whatever. + if (s == 0) + { + // Don't turn mpq_class(0,0) into 0 + mpz_set_si(mpq_denref(mp), base); + } + else if (mpq_set_str(mp, s, base) != 0) + { + mpq_clear (mp); + throw std::invalid_argument ("mpq_set_str"); + } + } + explicit __gmp_expr(const std::string &s, int base = 0) + { + mpq_init(mp); + if (mpq_set_str (mp, s.c_str(), base) != 0) + { + mpq_clear (mp); + throw std::invalid_argument ("mpq_set_str"); + } + } + explicit __gmp_expr(mpq_srcptr q) + { + mpz_init_set(mpq_numref(mp), mpq_numref(q)); + mpz_init_set(mpq_denref(mp), mpq_denref(q)); + } + + __gmp_expr(const mpz_class &num, const mpz_class &den) + { + mpz_init_set(mpq_numref(mp), num.get_mpz_t()); + mpz_init_set(mpq_denref(mp), den.get_mpz_t()); + } + + ~__gmp_expr() { mpq_clear(mp); } + + void swap(__gmp_expr& q) __GMPXX_NOEXCEPT { std::swap(*mp, *q.mp); } + + // assignment operators + __gmp_expr & operator=(const __gmp_expr &q) + { mpq_set(mp, q.mp); return *this; } +#if __GMPXX_USE_CXX11 + __gmp_expr & operator=(__gmp_expr &&q) noexcept + { swap(q); return *this; } + __gmp_expr & operator=(mpz_class &&z) noexcept + { get_num() = std::move(z); get_den() = 1u; return *this; } +#endif + template + __gmp_expr & operator=(const __gmp_expr &expr) + { __gmp_set_expr(mp, expr); return *this; } + + __gmp_expr & operator=(signed char c) + { mpq_set_si(mp, c, 1); return *this; } + __gmp_expr & operator=(unsigned char c) + { mpq_set_ui(mp, c, 1); return *this; } + + __gmp_expr & operator=(signed int i) { mpq_set_si(mp, i, 1); return *this; } + __gmp_expr & operator=(unsigned int i) + { mpq_set_ui(mp, i, 1); return *this; } + + __gmp_expr & operator=(signed short int s) + { mpq_set_si(mp, s, 1); return *this; } + __gmp_expr & operator=(unsigned short int s) + { mpq_set_ui(mp, s, 1); return *this; } + + __gmp_expr & operator=(signed long int l) + { mpq_set_si(mp, l, 1); return *this; } + __gmp_expr & operator=(unsigned long int l) + { mpq_set_ui(mp, l, 1); return *this; } + + __gmp_expr & operator=(float f) { mpq_set_d(mp, f); return *this; } + __gmp_expr & operator=(double d) { mpq_set_d(mp, d); return *this; } + // __gmp_expr & operator=(long double ld) + // { mpq_set_ld(mp, ld); return *this; } + + __gmp_expr & operator=(const char *s) + { + if (mpq_set_str (mp, s, 0) != 0) + throw std::invalid_argument ("mpq_set_str"); + return *this; + } + __gmp_expr & operator=(const std::string &s) + { + if (mpq_set_str(mp, s.c_str(), 0) != 0) + throw std::invalid_argument ("mpq_set_str"); + return *this; + } + + // string input/output functions + int set_str(const char *s, int base) + { return mpq_set_str(mp, s, base); } + int set_str(const std::string &s, int base) + { return mpq_set_str(mp, s.c_str(), base); } + std::string get_str(int base = 10) const + { + __gmp_alloc_cstring temp(mpq_get_str(0, base, mp)); + return std::string(temp.str); + } + + // conversion functions + + // casting a reference to an mpz_t to mpz_class & is a dirty hack, + // but works because the internal representation of mpz_class is + // exactly an mpz_t + const mpz_class & get_num() const + { return reinterpret_cast(*mpq_numref(mp)); } + mpz_class & get_num() + { return reinterpret_cast(*mpq_numref(mp)); } + const mpz_class & get_den() const + { return reinterpret_cast(*mpq_denref(mp)); } + mpz_class & get_den() + { return reinterpret_cast(*mpq_denref(mp)); } + + mpq_srcptr __get_mp() const { return mp; } + mpq_ptr __get_mp() { return mp; } + mpq_srcptr get_mpq_t() const { return mp; } + mpq_ptr get_mpq_t() { return mp; } + + mpz_srcptr get_num_mpz_t() const { return mpq_numref(mp); } + mpz_ptr get_num_mpz_t() { return mpq_numref(mp); } + mpz_srcptr get_den_mpz_t() const { return mpq_denref(mp); } + mpz_ptr get_den_mpz_t() { return mpq_denref(mp); } + + double get_d() const { return mpq_get_d(mp); } + +#if __GMPXX_USE_CXX11 + explicit operator bool() const { return mpq_numref(mp)->_mp_size != 0; } +#endif + + // compound assignments + __GMP_DECLARE_COMPOUND_OPERATOR(operator+=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator-=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator*=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator/=) + + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator<<=) + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator>>=) + + __GMP_DECLARE_INCREMENT_OPERATOR(operator++) + __GMP_DECLARE_INCREMENT_OPERATOR(operator--) +}; + +typedef __gmp_expr mpq_class; + + +/**************** mpf_class -- wrapper for mpf_t ****************/ + +template <> +class __gmp_expr +{ +private: + typedef mpf_t value_type; + value_type mp; +public: + mp_bitcnt_t get_prec() const { return mpf_get_prec(mp); } + + void set_prec(mp_bitcnt_t prec) { mpf_set_prec(mp, prec); } + void set_prec_raw(mp_bitcnt_t prec) { mpf_set_prec_raw(mp, prec); } + + // constructors and destructor + __gmp_expr() { mpf_init(mp); } + + __gmp_expr(const __gmp_expr &f) + { mpf_init2(mp, f.get_prec()); mpf_set(mp, f.mp); } +#if __GMPXX_USE_CXX11 + __gmp_expr(__gmp_expr &&f) + { *mp = *f.mp; mpf_init2(f.mp, get_prec()); } +#endif + __gmp_expr(const __gmp_expr &f, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set(mp, f.mp); } + template + __gmp_expr(const __gmp_expr &expr) + { mpf_init2(mp, expr.get_prec()); __gmp_set_expr(mp, expr); } + template + __gmp_expr(const __gmp_expr &expr, mp_bitcnt_t prec) + { mpf_init2(mp, prec); __gmp_set_expr(mp, expr); } + + __gmp_expr(signed char c) { mpf_init_set_si(mp, c); } + __gmp_expr(signed char c, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_si(mp, c); } + __gmp_expr(unsigned char c) { mpf_init_set_ui(mp, c); } + __gmp_expr(unsigned char c, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_ui(mp, c); } + + __gmp_expr(signed int i) { mpf_init_set_si(mp, i); } + __gmp_expr(signed int i, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_si(mp, i); } + __gmp_expr(unsigned int i) { mpf_init_set_ui(mp, i); } + __gmp_expr(unsigned int i, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_ui(mp, i); } + + __gmp_expr(signed short int s) { mpf_init_set_si(mp, s); } + __gmp_expr(signed short int s, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_si(mp, s); } + __gmp_expr(unsigned short int s) { mpf_init_set_ui(mp, s); } + __gmp_expr(unsigned short int s, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_ui(mp, s); } + + __gmp_expr(signed long int l) { mpf_init_set_si(mp, l); } + __gmp_expr(signed long int l, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_si(mp, l); } + __gmp_expr(unsigned long int l) { mpf_init_set_ui(mp, l); } + __gmp_expr(unsigned long int l, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_ui(mp, l); } + + __gmp_expr(float f) { mpf_init_set_d(mp, f); } + __gmp_expr(float f, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_d(mp, f); } + __gmp_expr(double d) { mpf_init_set_d(mp, d); } + __gmp_expr(double d, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_d(mp, d); } + // __gmp_expr(long double ld) { mpf_init_set_d(mp, ld); } + // __gmp_expr(long double ld, mp_bitcnt_t prec) + // { mpf_init2(mp, prec); mpf_set_d(mp, ld); } + + explicit __gmp_expr(const char *s) + { + if (mpf_init_set_str (mp, s, 0) != 0) + { + mpf_clear (mp); + throw std::invalid_argument ("mpf_set_str"); + } + } + __gmp_expr(const char *s, mp_bitcnt_t prec, int base = 0) + { + mpf_init2(mp, prec); + if (mpf_set_str(mp, s, base) != 0) + { + mpf_clear (mp); + throw std::invalid_argument ("mpf_set_str"); + } + } + explicit __gmp_expr(const std::string &s) + { + if (mpf_init_set_str(mp, s.c_str(), 0) != 0) + { + mpf_clear (mp); + throw std::invalid_argument ("mpf_set_str"); + } + } + __gmp_expr(const std::string &s, mp_bitcnt_t prec, int base = 0) + { + mpf_init2(mp, prec); + if (mpf_set_str(mp, s.c_str(), base) != 0) + { + mpf_clear (mp); + throw std::invalid_argument ("mpf_set_str"); + } + } + + explicit __gmp_expr(mpf_srcptr f) + { mpf_init2(mp, mpf_get_prec(f)); mpf_set(mp, f); } + __gmp_expr(mpf_srcptr f, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set(mp, f); } + + ~__gmp_expr() { mpf_clear(mp); } + + void swap(__gmp_expr& f) __GMPXX_NOEXCEPT { std::swap(*mp, *f.mp); } + + // assignment operators + __gmp_expr & operator=(const __gmp_expr &f) + { mpf_set(mp, f.mp); return *this; } +#if __GMPXX_USE_CXX11 + __gmp_expr & operator=(__gmp_expr &&f) noexcept + { swap(f); return *this; } +#endif + template + __gmp_expr & operator=(const __gmp_expr &expr) + { __gmp_set_expr(mp, expr); return *this; } + + __gmp_expr & operator=(signed char c) { mpf_set_si(mp, c); return *this; } + __gmp_expr & operator=(unsigned char c) { mpf_set_ui(mp, c); return *this; } + + __gmp_expr & operator=(signed int i) { mpf_set_si(mp, i); return *this; } + __gmp_expr & operator=(unsigned int i) { mpf_set_ui(mp, i); return *this; } + + __gmp_expr & operator=(signed short int s) + { mpf_set_si(mp, s); return *this; } + __gmp_expr & operator=(unsigned short int s) + { mpf_set_ui(mp, s); return *this; } + + __gmp_expr & operator=(signed long int l) + { mpf_set_si(mp, l); return *this; } + __gmp_expr & operator=(unsigned long int l) + { mpf_set_ui(mp, l); return *this; } + + __gmp_expr & operator=(float f) { mpf_set_d(mp, f); return *this; } + __gmp_expr & operator=(double d) { mpf_set_d(mp, d); return *this; } + // __gmp_expr & operator=(long double ld) + // { mpf_set_ld(mp, ld); return *this; } + + __gmp_expr & operator=(const char *s) + { + if (mpf_set_str (mp, s, 0) != 0) + throw std::invalid_argument ("mpf_set_str"); + return *this; + } + __gmp_expr & operator=(const std::string &s) + { + if (mpf_set_str(mp, s.c_str(), 0) != 0) + throw std::invalid_argument ("mpf_set_str"); + return *this; + } + + // string input/output functions + int set_str(const char *s, int base) + { return mpf_set_str(mp, s, base); } + int set_str(const std::string &s, int base) + { return mpf_set_str(mp, s.c_str(), base); } + std::string get_str(mp_exp_t &expo, int base = 10, size_t size = 0) const + { + __gmp_alloc_cstring temp(mpf_get_str(0, &expo, base, size, mp)); + return std::string(temp.str); + } + + // conversion functions + mpf_srcptr __get_mp() const { return mp; } + mpf_ptr __get_mp() { return mp; } + mpf_srcptr get_mpf_t() const { return mp; } + mpf_ptr get_mpf_t() { return mp; } + + signed long int get_si() const { return mpf_get_si(mp); } + unsigned long int get_ui() const { return mpf_get_ui(mp); } + double get_d() const { return mpf_get_d(mp); } + + // bool fits_schar_p() const { return mpf_fits_schar_p(mp); } + // bool fits_uchar_p() const { return mpf_fits_uchar_p(mp); } + bool fits_sint_p() const { return mpf_fits_sint_p(mp); } + bool fits_uint_p() const { return mpf_fits_uint_p(mp); } + bool fits_sshort_p() const { return mpf_fits_sshort_p(mp); } + bool fits_ushort_p() const { return mpf_fits_ushort_p(mp); } + bool fits_slong_p() const { return mpf_fits_slong_p(mp); } + bool fits_ulong_p() const { return mpf_fits_ulong_p(mp); } + // bool fits_float_p() const { return mpf_fits_float_p(mp); } + // bool fits_double_p() const { return mpf_fits_double_p(mp); } + // bool fits_ldouble_p() const { return mpf_fits_ldouble_p(mp); } + +#if __GMPXX_USE_CXX11 + explicit operator bool() const { return mp->_mp_size != 0; } +#endif + + // compound assignments + __GMP_DECLARE_COMPOUND_OPERATOR(operator+=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator-=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator*=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator/=) + + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator<<=) + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator>>=) + + __GMP_DECLARE_INCREMENT_OPERATOR(operator++) + __GMP_DECLARE_INCREMENT_OPERATOR(operator--) +}; + +typedef __gmp_expr mpf_class; + + + +/**************** User-defined literals ****************/ + +#if __GMPXX_USE_CXX11 +inline mpz_class operator"" _mpz(const char* s) +{ + return mpz_class(s); +} + +inline mpq_class operator"" _mpq(const char* s) +{ + mpq_class q; + q.get_num() = s; + return q; +} + +inline mpf_class operator"" _mpf(const char* s) +{ + return mpf_class(s); +} +#endif + +/**************** I/O operators ****************/ + +// these should (and will) be provided separately + +template +inline std::ostream & operator<< +(std::ostream &o, const __gmp_expr &expr) +{ + __gmp_expr const& temp(expr); + return o << temp.__get_mp(); +} + +template +inline std::istream & operator>>(std::istream &i, __gmp_expr &expr) +{ + return i >> expr.__get_mp(); +} + +/* +// you might want to uncomment this +inline std::istream & operator>>(std::istream &i, mpq_class &q) +{ + i >> q.get_mpq_t(); + q.canonicalize(); + return i; +} +*/ + + +/**************** Functions for type conversion ****************/ + +inline void __gmp_set_expr(mpz_ptr z, const mpz_class &w) +{ + mpz_set(z, w.get_mpz_t()); +} + +template +inline void __gmp_set_expr(mpz_ptr z, const __gmp_expr &expr) +{ + expr.eval(z); +} + +template +inline void __gmp_set_expr(mpz_ptr z, const __gmp_expr &expr) +{ + mpq_class const& temp(expr); + mpz_set_q(z, temp.get_mpq_t()); +} + +template +inline void __gmp_set_expr(mpz_ptr z, const __gmp_expr &expr) +{ + mpf_class const& temp(expr); + mpz_set_f(z, temp.get_mpf_t()); +} + +inline void __gmp_set_expr(mpq_ptr q, const mpz_class &z) +{ + mpq_set_z(q, z.get_mpz_t()); +} + +template +inline void __gmp_set_expr(mpq_ptr q, const __gmp_expr &expr) +{ + __gmp_set_expr(mpq_numref(q), expr); + mpz_set_ui(mpq_denref(q), 1); +} + +inline void __gmp_set_expr(mpq_ptr q, const mpq_class &r) +{ + mpq_set(q, r.get_mpq_t()); +} + +template +inline void __gmp_set_expr(mpq_ptr q, const __gmp_expr &expr) +{ + expr.eval(q); +} + +template +inline void __gmp_set_expr(mpq_ptr q, const __gmp_expr &expr) +{ + mpf_class const& temp(expr); + mpq_set_f(q, temp.get_mpf_t()); +} + +template +inline void __gmp_set_expr(mpf_ptr f, const __gmp_expr &expr) +{ + mpz_class const& temp(expr); + mpf_set_z(f, temp.get_mpz_t()); +} + +template +inline void __gmp_set_expr(mpf_ptr f, const __gmp_expr &expr) +{ + mpq_class const& temp(expr); + mpf_set_q(f, temp.get_mpq_t()); +} + +inline void __gmp_set_expr(mpf_ptr f, const mpf_class &g) +{ + mpf_set(f, g.get_mpf_t()); +} + +template +inline void __gmp_set_expr(mpf_ptr f, const __gmp_expr &expr) +{ + expr.eval(f); +} + + +/* Temporary objects */ + +template +class __gmp_temp +{ + __gmp_expr val; + public: + template + __gmp_temp(U const& u, V) : val (u) {} + typename __gmp_resolve_expr::srcptr_type + __get_mp() const { return val.__get_mp(); } +}; + +template <> +class __gmp_temp +{ + mpf_class val; + public: + template + __gmp_temp(U const& u, mpf_ptr res) : val (u, mpf_get_prec(res)) {} + mpf_srcptr __get_mp() const { return val.__get_mp(); } +}; + +/**************** Specializations of __gmp_expr ****************/ +/* The eval() method of __gmp_expr evaluates the corresponding + expression and assigns the result to its argument, which is either an + mpz_t, mpq_t, or mpf_t as specified by the T argument. + Compound expressions are evaluated recursively (temporaries are created + to hold intermediate values), while for simple expressions the eval() + method of the appropriate function object (available as the Op argument + of either __gmp_unary_expr or __gmp_binary_expr) is + called. */ + + +/**************** Unary expressions ****************/ +/* cases: + - simple: argument is mp*_class, that is, __gmp_expr + - compound: argument is __gmp_expr (with U not equal to T) */ + + +// simple expressions + +template +class __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val_type; + + __gmp_unary_expr expr; +public: + explicit __gmp_expr(const val_type &val) : expr(val) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { Op::eval(p, expr.val.__get_mp()); } + const val_type & get_val() const { return expr.val; } + mp_bitcnt_t get_prec() const { return expr.val.get_prec(); } +}; + + +// compound expressions + +template +class __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val_type; + + __gmp_unary_expr expr; +public: + explicit __gmp_expr(const val_type &val) : expr(val) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { expr.val.eval(p); Op::eval(p, p); } + const val_type & get_val() const { return expr.val; } + mp_bitcnt_t get_prec() const { return expr.val.get_prec(); } +}; + + +/**************** Binary expressions ****************/ +/* simple: + - arguments are both mp*_class + - one argument is mp*_class, one is a built-in type + compound: + - one is mp*_class, one is __gmp_expr + - one is __gmp_expr, one is built-in + - both arguments are __gmp_expr<...> */ + + +// simple expressions + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { Op::eval(p, expr.val1.__get_mp(), expr.val2.__get_mp()); } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + + +// simple expressions, T is a built-in numerical type + +template +class __gmp_expr, U, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef U val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { Op::eval(p, expr.val1.__get_mp(), expr.val2); } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const { return expr.val1.get_prec(); } +}; + +template +class __gmp_expr, Op> > +{ +private: + typedef U val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { Op::eval(p, expr.val1, expr.val2.__get_mp()); } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const { return expr.val2.get_prec(); } +}; + + +// compound expressions, one argument is a subexpression + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + if(p != expr.val1.__get_mp()) + { + __gmp_set_expr(p, expr.val2); + Op::eval(p, expr.val1.__get_mp(), p); + } + else + { + __gmp_temp temp(expr.val2, p); + Op::eval(p, expr.val1.__get_mp(), temp.__get_mp()); + } + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + if(p != expr.val2.__get_mp()) + { + __gmp_set_expr(p, expr.val1); + Op::eval(p, p, expr.val2.__get_mp()); + } + else + { + __gmp_temp temp(expr.val1, p); + Op::eval(p, temp.__get_mp(), expr.val2.__get_mp()); + } + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + if(p != expr.val1.__get_mp()) + { + __gmp_set_expr(p, expr.val2); + Op::eval(p, expr.val1.__get_mp(), p); + } + else + { + __gmp_temp temp(expr.val2, p); + Op::eval(p, expr.val1.__get_mp(), temp.__get_mp()); + } + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + if(p != expr.val2.__get_mp()) + { + __gmp_set_expr(p, expr.val1); + Op::eval(p, p, expr.val2.__get_mp()); + } + else + { + __gmp_temp temp(expr.val1, p); + Op::eval(p, temp.__get_mp(), expr.val2.__get_mp()); + } + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + + +// one argument is a subexpression, one is a built-in + +template +class __gmp_expr, V, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef V val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + expr.val1.eval(p); + Op::eval(p, p, expr.val2); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const { return expr.val1.get_prec(); } +}; + +template +class __gmp_expr, Op> > +{ +private: + typedef U val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + expr.val2.eval(p); + Op::eval(p, expr.val1, p); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const { return expr.val2.get_prec(); } +}; + + +// both arguments are subexpressions + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + __gmp_temp temp2(expr.val2, p); + expr.val1.eval(p); + Op::eval(p, p, temp2.__get_mp()); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + __gmp_temp temp1(expr.val1, p); + expr.val2.eval(p); + Op::eval(p, temp1.__get_mp(), p); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + __gmp_temp temp2(expr.val2, p); + expr.val1.eval(p); + Op::eval(p, p, temp2.__get_mp()); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + + +/**************** Special cases ****************/ + +/* Some operations (i.e., add and subtract) with mixed mpz/mpq arguments + can be done directly without first converting the mpz to mpq. + Appropriate specializations of __gmp_expr are required. */ + + +#define __GMPZQ_DEFINE_EXPR(eval_fun) \ + \ +template <> \ +class __gmp_expr > \ +{ \ +private: \ + typedef mpz_class val1_type; \ + typedef mpq_class val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { eval_fun::eval(q, expr.val1.get_mpz_t(), expr.val2.get_mpq_t()); } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template <> \ +class __gmp_expr > \ +{ \ +private: \ + typedef mpq_class val1_type; \ + typedef mpz_class val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { eval_fun::eval(q, expr.val1.get_mpq_t(), expr.val2.get_mpz_t()); } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr \ +, eval_fun> > \ +{ \ +private: \ + typedef mpz_class val1_type; \ + typedef __gmp_expr val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpq_class temp(expr.val2); \ + eval_fun::eval(q, expr.val1.get_mpz_t(), temp.get_mpq_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr \ +, eval_fun> > \ +{ \ +private: \ + typedef mpq_class val1_type; \ + typedef __gmp_expr val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpz_class temp(expr.val2); \ + eval_fun::eval(q, expr.val1.get_mpq_t(), temp.get_mpz_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr \ +, mpq_class, eval_fun> > \ +{ \ +private: \ + typedef __gmp_expr val1_type; \ + typedef mpq_class val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpz_class temp(expr.val1); \ + eval_fun::eval(q, temp.get_mpz_t(), expr.val2.get_mpq_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr \ +, mpz_class, eval_fun> > \ +{ \ +private: \ + typedef __gmp_expr val1_type; \ + typedef mpz_class val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpq_class temp(expr.val1); \ + eval_fun::eval(q, temp.get_mpq_t(), expr.val2.get_mpz_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr, __gmp_expr, eval_fun> > \ +{ \ +private: \ + typedef __gmp_expr val1_type; \ + typedef __gmp_expr val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpz_class temp1(expr.val1); \ + expr.val2.eval(q); \ + eval_fun::eval(q, temp1.get_mpz_t(), q); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr, __gmp_expr, eval_fun> > \ +{ \ +private: \ + typedef __gmp_expr val1_type; \ + typedef __gmp_expr val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpz_class temp2(expr.val2); \ + expr.val1.eval(q); \ + eval_fun::eval(q, q, temp2.get_mpz_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; + + +__GMPZQ_DEFINE_EXPR(__gmp_binary_plus) +__GMPZQ_DEFINE_EXPR(__gmp_binary_minus) + + + +/**************** Macros for defining functions ****************/ +/* Results of operators and functions are instances of __gmp_expr. + T determines the numerical type of the expression: it can be either + mpz_t, mpq_t, or mpf_t. When the arguments of a binary + expression have different numerical types, __gmp_resolve_expr is used + to determine the "larger" type. + U is either __gmp_unary_expr or __gmp_binary_expr, + where V and W are the arguments' types -- they can in turn be + expressions, thus allowing to build compound expressions to any + degree of complexity. + Op is a function object that must have an eval() method accepting + appropriate arguments. + Actual evaluation of a __gmp_expr object is done when it gets + assigned to an mp*_class ("lazy" evaluation): this is done by calling + its eval() method. */ + + +// non-member unary operators and functions + +#define __GMP_DEFINE_UNARY_FUNCTION(fun, eval_fun) \ + \ +template \ +inline __gmp_expr, eval_fun> > \ +fun(const __gmp_expr &expr) \ +{ \ + return __gmp_expr, eval_fun> >(expr); \ +} + +#define __GMP_DEFINE_UNARY_TYPE_FUNCTION(type, fun, eval_fun) \ + \ +template \ +inline type fun(const __gmp_expr &expr) \ +{ \ + __gmp_expr const& temp(expr); \ + return eval_fun::eval(temp.__get_mp()); \ +} + + +// non-member binary operators and functions + +#define __GMPP_DEFINE_BINARY_FUNCTION(fun, eval_fun) \ + \ +template \ +inline __gmp_expr::value_type, \ +__gmp_binary_expr<__gmp_expr, __gmp_expr, eval_fun> > \ +fun(const __gmp_expr &expr1, const __gmp_expr &expr2) \ +{ \ + return __gmp_expr::value_type, \ + __gmp_binary_expr<__gmp_expr, __gmp_expr, eval_fun> > \ + (expr1, expr2); \ +} + +#define __GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, bigtype) \ + \ +template \ +inline __gmp_expr \ +, bigtype, eval_fun> > \ +fun(const __gmp_expr &expr, type t) \ +{ \ + return __gmp_expr \ + , bigtype, eval_fun> >(expr, t); \ +} \ + \ +template \ +inline __gmp_expr \ +, eval_fun> > \ +fun(type t, const __gmp_expr &expr) \ +{ \ + return __gmp_expr \ + , eval_fun> >(t, expr); \ +} + +#define __GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, type) \ +__GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, signed long int) + +#define __GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, type) \ +__GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, unsigned long int) + +#define __GMPND_DEFINE_BINARY_FUNCTION(fun, eval_fun, type) \ +__GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, double) + +#define __GMPNLD_DEFINE_BINARY_FUNCTION(fun, eval_fun, type) \ +__GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, long double) + +#define __GMPN_DEFINE_BINARY_FUNCTION(fun, eval_fun) \ +__GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, signed char) \ +__GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, unsigned char) \ +__GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, signed int) \ +__GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, unsigned int) \ +__GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, signed short int) \ +__GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, unsigned short int) \ +__GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, signed long int) \ +__GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, unsigned long int) \ +__GMPND_DEFINE_BINARY_FUNCTION(fun, eval_fun, float) \ +__GMPND_DEFINE_BINARY_FUNCTION(fun, eval_fun, double) \ +/* __GMPNLD_DEFINE_BINARY_FUNCTION(fun, eval_fun, long double) */ + +#define __GMP_DEFINE_BINARY_FUNCTION(fun, eval_fun) \ +__GMPP_DEFINE_BINARY_FUNCTION(fun, eval_fun) \ +__GMPN_DEFINE_BINARY_FUNCTION(fun, eval_fun) + + +#define __GMP_DEFINE_BINARY_FUNCTION_UI(fun, eval_fun) \ + \ +template \ +inline __gmp_expr \ +, mp_bitcnt_t, eval_fun> > \ +fun(const __gmp_expr &expr, mp_bitcnt_t l) \ +{ \ + return __gmp_expr, mp_bitcnt_t, eval_fun> >(expr, l); \ +} + + +#define __GMPP_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) \ + \ +template \ +inline type fun(const __gmp_expr &expr1, \ + const __gmp_expr &expr2) \ +{ \ + typedef typename __gmp_resolve_expr::value_type eval_type; \ + __gmp_expr const& temp1(expr1); \ + __gmp_expr const& temp2(expr2); \ + return eval_fun::eval(temp1.__get_mp(), temp2.__get_mp()); \ +} + +#define __GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, \ + type2, bigtype) \ + \ +template \ +inline type fun(const __gmp_expr &expr, type2 t) \ +{ \ + __gmp_expr const& temp(expr); \ + return eval_fun::eval(temp.__get_mp(), static_cast(t)); \ +} \ + \ +template \ +inline type fun(type2 t, const __gmp_expr &expr) \ +{ \ + __gmp_expr const& temp(expr); \ + return eval_fun::eval(static_cast(t), temp.__get_mp()); \ +} + +#define __GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, \ + type2, signed long int) + +#define __GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, \ + type2, unsigned long int) + +#define __GMPND_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2, double) + +#define __GMPNLD_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2, long double) + +#define __GMPN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) \ +__GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, signed char) \ +__GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, unsigned char) \ +__GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, signed int) \ +__GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, unsigned int) \ +__GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, signed short int) \ +__GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, unsigned short int) \ +__GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, signed long int) \ +__GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, unsigned long int) \ +__GMPND_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, float) \ +__GMPND_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, double) \ +/* __GMPNLD_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, long double) */ + +#define __GMP_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) \ +__GMPP_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) \ +__GMPN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) + + +// member operators + +#define __GMPP_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) \ + \ +template \ +inline type##_class & type##_class::fun(const __gmp_expr &expr) \ +{ \ + __gmp_set_expr(mp, __gmp_expr, eval_fun> >(*this, expr)); \ + return *this; \ +} + +#define __GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, \ + type2, bigtype) \ + \ +inline type##_class & type##_class::fun(type2 t) \ +{ \ + __gmp_set_expr(mp, __gmp_expr >(*this, t)); \ + return *this; \ +} + +#define __GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, \ + type2, signed long int) + +#define __GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, \ + type2, unsigned long int) + +#define __GMPND_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2, double) + +#define __GMPNLD_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2, long double) + +#define __GMPN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) \ +__GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, signed char) \ +__GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, unsigned char) \ +__GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, signed int) \ +__GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, unsigned int) \ +__GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, signed short int) \ +__GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, unsigned short int) \ +__GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, signed long int) \ +__GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, unsigned long int) \ +__GMPND_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, float) \ +__GMPND_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, double) \ +/* __GMPNLD_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, long double) */ + +#define __GMP_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) \ +__GMPP_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) \ +__GMPN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) + +#define __GMPZ_DEFINE_COMPOUND_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR(mpz, fun, eval_fun) + +#define __GMPQ_DEFINE_COMPOUND_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR(mpq, fun, eval_fun) + +#define __GMPF_DEFINE_COMPOUND_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR(mpf, fun, eval_fun) + + + +#define __GMP_DEFINE_COMPOUND_OPERATOR_UI(type, fun, eval_fun) \ + \ +inline type##_class & type##_class::fun(mp_bitcnt_t l) \ +{ \ + __gmp_set_expr(mp, __gmp_expr >(*this, l)); \ + return *this; \ +} + +#define __GMPZ_DEFINE_COMPOUND_OPERATOR_UI(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR_UI(mpz, fun, eval_fun) + +#define __GMPQ_DEFINE_COMPOUND_OPERATOR_UI(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR_UI(mpq, fun, eval_fun) + +#define __GMPF_DEFINE_COMPOUND_OPERATOR_UI(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR_UI(mpf, fun, eval_fun) + + + +#define __GMP_DEFINE_INCREMENT_OPERATOR(type, fun, eval_fun) \ + \ +inline type##_class & type##_class::fun() \ +{ \ + eval_fun::eval(mp); \ + return *this; \ +} \ + \ +inline type##_class type##_class::fun(int) \ +{ \ + type##_class temp(*this); \ + eval_fun::eval(mp); \ + return temp; \ +} + +#define __GMPZ_DEFINE_INCREMENT_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_INCREMENT_OPERATOR(mpz, fun, eval_fun) + +#define __GMPQ_DEFINE_INCREMENT_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_INCREMENT_OPERATOR(mpq, fun, eval_fun) + +#define __GMPF_DEFINE_INCREMENT_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_INCREMENT_OPERATOR(mpf, fun, eval_fun) + + + +/**************** Arithmetic operators and functions ****************/ + +// non-member operators and functions + +__GMP_DEFINE_UNARY_FUNCTION(operator+, __gmp_unary_plus) +__GMP_DEFINE_UNARY_FUNCTION(operator-, __gmp_unary_minus) +__GMP_DEFINE_UNARY_FUNCTION(operator~, __gmp_unary_com) + +__GMP_DEFINE_BINARY_FUNCTION(operator+, __gmp_binary_plus) +__GMP_DEFINE_BINARY_FUNCTION(operator-, __gmp_binary_minus) +__GMP_DEFINE_BINARY_FUNCTION(operator*, __gmp_binary_multiplies) +__GMP_DEFINE_BINARY_FUNCTION(operator/, __gmp_binary_divides) +__GMP_DEFINE_BINARY_FUNCTION(operator%, __gmp_binary_modulus) +__GMP_DEFINE_BINARY_FUNCTION(operator&, __gmp_binary_and) +__GMP_DEFINE_BINARY_FUNCTION(operator|, __gmp_binary_ior) +__GMP_DEFINE_BINARY_FUNCTION(operator^, __gmp_binary_xor) + +__GMP_DEFINE_BINARY_FUNCTION_UI(operator<<, __gmp_binary_lshift) +__GMP_DEFINE_BINARY_FUNCTION_UI(operator>>, __gmp_binary_rshift) + +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator==, __gmp_binary_equal) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator!=, ! __gmp_binary_equal) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator<, __gmp_binary_less) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator<=, ! __gmp_binary_greater) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator>, __gmp_binary_greater) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator>=, ! __gmp_binary_less) + +__GMP_DEFINE_UNARY_FUNCTION(abs, __gmp_abs_function) +__GMP_DEFINE_UNARY_FUNCTION(trunc, __gmp_trunc_function) +__GMP_DEFINE_UNARY_FUNCTION(floor, __gmp_floor_function) +__GMP_DEFINE_UNARY_FUNCTION(ceil, __gmp_ceil_function) +__GMP_DEFINE_UNARY_FUNCTION(sqrt, __gmp_sqrt_function) +__GMP_DEFINE_BINARY_FUNCTION(hypot, __gmp_hypot_function) + +__GMP_DEFINE_UNARY_TYPE_FUNCTION(int, sgn, __gmp_sgn_function) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(int, cmp, __gmp_cmp_function) + +template +void swap(__gmp_expr& x, __gmp_expr& y) __GMPXX_NOEXCEPT +{ x.swap(y); } + +// member operators for mpz_class + +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator+=, __gmp_binary_plus) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator-=, __gmp_binary_minus) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator*=, __gmp_binary_multiplies) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator/=, __gmp_binary_divides) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator%=, __gmp_binary_modulus) + +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator&=, __gmp_binary_and) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator|=, __gmp_binary_ior) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator^=, __gmp_binary_xor) + +__GMPZ_DEFINE_COMPOUND_OPERATOR_UI(operator<<=, __gmp_binary_lshift) +__GMPZ_DEFINE_COMPOUND_OPERATOR_UI(operator>>=, __gmp_binary_rshift) + +__GMPZ_DEFINE_INCREMENT_OPERATOR(operator++, __gmp_unary_increment) +__GMPZ_DEFINE_INCREMENT_OPERATOR(operator--, __gmp_unary_decrement) + +// member operators for mpq_class + +__GMPQ_DEFINE_COMPOUND_OPERATOR(operator+=, __gmp_binary_plus) +__GMPQ_DEFINE_COMPOUND_OPERATOR(operator-=, __gmp_binary_minus) +__GMPQ_DEFINE_COMPOUND_OPERATOR(operator*=, __gmp_binary_multiplies) +__GMPQ_DEFINE_COMPOUND_OPERATOR(operator/=, __gmp_binary_divides) + +__GMPQ_DEFINE_COMPOUND_OPERATOR_UI(operator<<=, __gmp_binary_lshift) +__GMPQ_DEFINE_COMPOUND_OPERATOR_UI(operator>>=, __gmp_binary_rshift) + +__GMPQ_DEFINE_INCREMENT_OPERATOR(operator++, __gmp_unary_increment) +__GMPQ_DEFINE_INCREMENT_OPERATOR(operator--, __gmp_unary_decrement) + +// member operators for mpf_class + +__GMPF_DEFINE_COMPOUND_OPERATOR(operator+=, __gmp_binary_plus) +__GMPF_DEFINE_COMPOUND_OPERATOR(operator-=, __gmp_binary_minus) +__GMPF_DEFINE_COMPOUND_OPERATOR(operator*=, __gmp_binary_multiplies) +__GMPF_DEFINE_COMPOUND_OPERATOR(operator/=, __gmp_binary_divides) + +__GMPF_DEFINE_COMPOUND_OPERATOR_UI(operator<<=, __gmp_binary_lshift) +__GMPF_DEFINE_COMPOUND_OPERATOR_UI(operator>>=, __gmp_binary_rshift) + +__GMPF_DEFINE_INCREMENT_OPERATOR(operator++, __gmp_unary_increment) +__GMPF_DEFINE_INCREMENT_OPERATOR(operator--, __gmp_unary_decrement) + + + +/**************** Class wrapper for gmp_randstate_t ****************/ + +class __gmp_urandomb_value { }; +class __gmp_urandomm_value { }; + +template <> +class __gmp_expr +{ +private: + __gmp_randstate_struct *state; + mp_bitcnt_t bits; +public: + __gmp_expr(gmp_randstate_t s, mp_bitcnt_t l) : state(s), bits(l) { } + void eval(mpz_ptr z) const { __gmp_rand_function::eval(z, state, bits); } + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } +}; + +template <> +class __gmp_expr +{ +private: + __gmp_randstate_struct *state; + mpz_class range; +public: + __gmp_expr(gmp_randstate_t s, const mpz_class &z) : state(s), range(z) { } + void eval(mpz_ptr z) const + { __gmp_rand_function::eval(z, state, range.get_mpz_t()); } + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } +}; + +template <> +class __gmp_expr +{ +private: + __gmp_randstate_struct *state; + mp_bitcnt_t bits; +public: + __gmp_expr(gmp_randstate_t s, mp_bitcnt_t l) : state(s), bits(l) { } + void eval(mpf_ptr f) const + { + __gmp_rand_function::eval(f, state, + (bits>0) ? bits : mpf_get_prec(f)); + } + mp_bitcnt_t get_prec() const + { + if (bits == 0) + return mpf_get_default_prec(); + else + return bits; + } +}; + +extern "C" { + typedef void __gmp_randinit_default_t (gmp_randstate_t); + typedef void __gmp_randinit_lc_2exp_t (gmp_randstate_t, mpz_srcptr, unsigned long int, mp_bitcnt_t); + typedef int __gmp_randinit_lc_2exp_size_t (gmp_randstate_t, mp_bitcnt_t); +} + +class gmp_randclass +{ +private: + gmp_randstate_t state; + + // copy construction and assignment not allowed + gmp_randclass(const gmp_randclass &); + void operator=(const gmp_randclass &); +public: + // constructors and destructor + gmp_randclass(gmp_randalg_t alg, unsigned long int size) + { + switch (alg) + { + case GMP_RAND_ALG_LC: // no other cases for now + default: + gmp_randinit(state, alg, size); + break; + } + } + + // gmp_randinit_default + gmp_randclass(__gmp_randinit_default_t* f) { f(state); } + + // gmp_randinit_lc_2exp + gmp_randclass(__gmp_randinit_lc_2exp_t* f, + mpz_class z, unsigned long int l1, mp_bitcnt_t l2) + { f(state, z.get_mpz_t(), l1, l2); } + + // gmp_randinit_lc_2exp_size + gmp_randclass(__gmp_randinit_lc_2exp_size_t* f, + mp_bitcnt_t size) + { + if (f (state, size) == 0) + throw std::length_error ("gmp_randinit_lc_2exp_size"); + } + + ~gmp_randclass() { gmp_randclear(state); } + + // initialize + void seed(); // choose a random seed some way (?) + void seed(unsigned long int s) { gmp_randseed_ui(state, s); } + void seed(const mpz_class &z) { gmp_randseed(state, z.get_mpz_t()); } + + // get random number + __gmp_expr get_z_bits(mp_bitcnt_t l) + { return __gmp_expr(state, l); } + __gmp_expr get_z_bits(const mpz_class &z) + { return get_z_bits(z.get_ui()); } + // FIXME: z.get_bitcnt_t() ? + + __gmp_expr get_z_range(const mpz_class &z) + { return __gmp_expr(state, z); } + + __gmp_expr get_f(mp_bitcnt_t prec = 0) + { return __gmp_expr(state, prec); } +}; + + +/**************** Specialize std::numeric_limits ****************/ + +namespace std { + template <> class numeric_limits + { + public: + static const bool is_specialized = true; + static mpz_class min() { return mpz_class(); } + static mpz_class max() { return mpz_class(); } + static mpz_class lowest() { return mpz_class(); } + static const int digits = 0; + static const int digits10 = 0; + static const int max_digits10 = 0; + static const bool is_signed = true; + static const bool is_integer = true; + static const bool is_exact = true; + static const int radix = 2; + static mpz_class epsilon() { return mpz_class(); } + static mpz_class round_error() { return mpz_class(); } + static const int min_exponent = 0; + static const int min_exponent10 = 0; + static const int max_exponent = 0; + static const int max_exponent10 = 0; + static const bool has_infinity = false; + static const bool has_quiet_NaN = false; + static const bool has_signaling_NaN = false; + static const float_denorm_style has_denorm = denorm_absent; + static const bool has_denorm_loss = false; + static mpz_class infinity() { return mpz_class(); } + static mpz_class quiet_NaN() { return mpz_class(); } + static mpz_class signaling_NaN() { return mpz_class(); } + static mpz_class denorm_min() { return mpz_class(); } + static const bool is_iec559 = false; + static const bool is_bounded = false; + static const bool is_modulo = false; + static const bool traps = false; + static const bool tinyness_before = false; + static const float_round_style round_style = round_toward_zero; + }; + + template <> class numeric_limits + { + public: + static const bool is_specialized = true; + static mpq_class min() { return mpq_class(); } + static mpq_class max() { return mpq_class(); } + static mpq_class lowest() { return mpq_class(); } + static const int digits = 0; + static const int digits10 = 0; + static const int max_digits10 = 0; + static const bool is_signed = true; + static const bool is_integer = false; + static const bool is_exact = true; + static const int radix = 2; + static mpq_class epsilon() { return mpq_class(); } + static mpq_class round_error() { return mpq_class(); } + static const int min_exponent = 0; + static const int min_exponent10 = 0; + static const int max_exponent = 0; + static const int max_exponent10 = 0; + static const bool has_infinity = false; + static const bool has_quiet_NaN = false; + static const bool has_signaling_NaN = false; + static const float_denorm_style has_denorm = denorm_absent; + static const bool has_denorm_loss = false; + static mpq_class infinity() { return mpq_class(); } + static mpq_class quiet_NaN() { return mpq_class(); } + static mpq_class signaling_NaN() { return mpq_class(); } + static mpq_class denorm_min() { return mpq_class(); } + static const bool is_iec559 = false; + static const bool is_bounded = false; + static const bool is_modulo = false; + static const bool traps = false; + static const bool tinyness_before = false; + static const float_round_style round_style = round_toward_zero; + }; + + template <> class numeric_limits + { + public: + static const bool is_specialized = true; + static mpf_class min() { return mpf_class(); } + static mpf_class max() { return mpf_class(); } + static mpf_class lowest() { return mpf_class(); } + static const int digits = 0; + static const int digits10 = 0; + static const int max_digits10 = 0; + static const bool is_signed = true; + static const bool is_integer = false; + static const bool is_exact = false; + static const int radix = 2; + static mpf_class epsilon() { return mpf_class(); } + static mpf_class round_error() { return mpf_class(); } + static const int min_exponent = 0; + static const int min_exponent10 = 0; + static const int max_exponent = 0; + static const int max_exponent10 = 0; + static const bool has_infinity = false; + static const bool has_quiet_NaN = false; + static const bool has_signaling_NaN = false; + static const float_denorm_style has_denorm = denorm_absent; + static const bool has_denorm_loss = false; + static mpf_class infinity() { return mpf_class(); } + static mpf_class quiet_NaN() { return mpf_class(); } + static mpf_class signaling_NaN() { return mpf_class(); } + static mpf_class denorm_min() { return mpf_class(); } + static const bool is_iec559 = false; + static const bool is_bounded = false; + static const bool is_modulo = false; + static const bool traps = false; + static const bool tinyness_before = false; + static const float_round_style round_style = round_indeterminate; + }; +} + + +/**************** #undef all private macros ****************/ + +#undef __GMPP_DECLARE_COMPOUND_OPERATOR +#undef __GMPN_DECLARE_COMPOUND_OPERATOR +#undef __GMP_DECLARE_COMPOUND_OPERATOR +#undef __GMP_DECLARE_COMPOUND_OPERATOR_UI +#undef __GMP_DECLARE_INCREMENT_OPERATOR + +#undef __GMPZQ_DEFINE_EXPR + +#undef __GMP_DEFINE_UNARY_FUNCTION +#undef __GMP_DEFINE_UNARY_TYPE_FUNCTION + +#undef __GMPP_DEFINE_BINARY_FUNCTION +#undef __GMPNN_DEFINE_BINARY_FUNCTION +#undef __GMPNS_DEFINE_BINARY_FUNCTION +#undef __GMPNU_DEFINE_BINARY_FUNCTION +#undef __GMPND_DEFINE_BINARY_FUNCTION +#undef __GMPNLD_DEFINE_BINARY_FUNCTION +#undef __GMPN_DEFINE_BINARY_FUNCTION +#undef __GMP_DEFINE_BINARY_FUNCTION + +#undef __GMP_DEFINE_BINARY_FUNCTION_UI + +#undef __GMPP_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPNN_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPNS_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPNU_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPND_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPNLD_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPN_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMP_DEFINE_BINARY_TYPE_FUNCTION + +#undef __GMPZ_DEFINE_COMPOUND_OPERATOR + +#undef __GMPP_DEFINE_COMPOUND_OPERATOR +#undef __GMPNN_DEFINE_COMPOUND_OPERATOR +#undef __GMPNS_DEFINE_COMPOUND_OPERATOR +#undef __GMPNU_DEFINE_COMPOUND_OPERATOR +#undef __GMPND_DEFINE_COMPOUND_OPERATOR +#undef __GMPNLD_DEFINE_COMPOUND_OPERATOR +#undef __GMPN_DEFINE_COMPOUND_OPERATOR +#undef __GMP_DEFINE_COMPOUND_OPERATOR + +#undef __GMPQ_DEFINE_COMPOUND_OPERATOR +#undef __GMPF_DEFINE_COMPOUND_OPERATOR + +#undef __GMP_DEFINE_COMPOUND_OPERATOR_UI +#undef __GMPZ_DEFINE_COMPOUND_OPERATOR_UI +#undef __GMPQ_DEFINE_COMPOUND_OPERATOR_UI +#undef __GMPF_DEFINE_COMPOUND_OPERATOR_UI + +#undef __GMP_DEFINE_INCREMENT_OPERATOR +#undef __GMPZ_DEFINE_INCREMENT_OPERATOR +#undef __GMPQ_DEFINE_INCREMENT_OPERATOR +#undef __GMPF_DEFINE_INCREMENT_OPERATOR + +#undef __GMPXX_CONSTANT + +#endif /* __GMP_PLUSPLUS__ */ diff --git a/armeabi/libgmpxx.so b/armeabi/libgmpxx.so new file mode 100755 index 0000000000000000000000000000000000000000..fa0676d640d6555d4a5abd45e7124f4ce6f9b8a3 GIT binary patch literal 640356 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 E>3AsVJ8B??-nd3^xRl%5T0NM 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 + +#include /* for strlen */ +#include /* numeric_limits */ +#include +#include /* swap */ +#include +#include +#include +#include + +// wrapper for gcc's __builtin_constant_p +// __builtin_constant_p has been in gcc since forever, +// but g++-3.4 miscompiles it. +#if __GMP_GNUC_PREREQ(4, 2) +#define __GMPXX_CONSTANT(X) __builtin_constant_p(X) +#else +#define __GMPXX_CONSTANT(X) false +#endif + +// Use C++11 features +#ifndef __GMPXX_USE_CXX11 +#if __cplusplus >= 201103L +#define __GMPXX_USE_CXX11 1 +#else +#define __GMPXX_USE_CXX11 0 +#endif +#endif + +#if __GMPXX_USE_CXX11 +#define __GMPXX_NOEXCEPT noexcept +#include // for common_type +#else +#define __GMPXX_NOEXCEPT +#endif + +// Max allocations for plain types when converted to mpz_t +#define __GMPZ_DBL_LIMBS (2 + DBL_MAX_EXP / GMP_NUMB_BITS) + +#if GMP_NAIL_BITS != 0 && ! defined _LONG_LONG_LIMB +#define __GMPZ_ULI_LIMBS 2 +#else +#define __GMPZ_ULI_LIMBS 1 +#endif + +inline void __mpz_set_ui_safe(mpz_ptr p, unsigned long l) +{ + p->_mp_size = (l != 0); + p->_mp_d[0] = l & GMP_NUMB_MASK; +#if __GMPZ_ULI_LIMBS > 1 + l >>= GMP_NUMB_BITS; + p->_mp_d[1] = l; + p->_mp_size += (l != 0); +#endif +} + +inline void __mpz_set_si_safe(mpz_ptr p, long l) +{ + if(l < 0) + { + __mpz_set_ui_safe(p, -static_cast(l)); + mpz_neg(p, p); + } + else + __mpz_set_ui_safe(p, l); + // Note: we know the high bit of l is 0 so we could do slightly better +} + +// Fake temporary variables +#define __GMPXX_TMPZ_UI \ + mpz_t temp; \ + mp_limb_t limbs[__GMPZ_ULI_LIMBS]; \ + temp->_mp_d = limbs; \ + __mpz_set_ui_safe (temp, l) +#define __GMPXX_TMPZ_SI \ + mpz_t temp; \ + mp_limb_t limbs[__GMPZ_ULI_LIMBS]; \ + temp->_mp_d = limbs; \ + __mpz_set_si_safe (temp, l) +#define __GMPXX_TMPZ_D \ + mpz_t temp; \ + mp_limb_t limbs[__GMPZ_DBL_LIMBS]; \ + temp->_mp_d = limbs; \ + temp->_mp_alloc = __GMPZ_DBL_LIMBS; \ + mpz_set_d (temp, d) + +#define __GMPXX_TMPQ_UI \ + mpq_t temp; \ + mp_limb_t limbs[__GMPZ_ULI_LIMBS+1]; \ + mpq_numref(temp)->_mp_d = limbs; \ + __mpz_set_ui_safe (mpq_numref(temp), l); \ + mpq_denref(temp)->_mp_d = limbs + __GMPZ_ULI_LIMBS; \ + mpq_denref(temp)->_mp_size = 1; \ + mpq_denref(temp)->_mp_d[0] = 1 +#define __GMPXX_TMPQ_SI \ + mpq_t temp; \ + mp_limb_t limbs[__GMPZ_ULI_LIMBS+1]; \ + mpq_numref(temp)->_mp_d = limbs; \ + __mpz_set_si_safe (mpq_numref(temp), l); \ + mpq_denref(temp)->_mp_d = limbs + __GMPZ_ULI_LIMBS; \ + mpq_denref(temp)->_mp_size = 1; \ + mpq_denref(temp)->_mp_d[0] = 1 + +inline unsigned long __gmpxx_abs_ui (signed long l) +{ + return l >= 0 ? static_cast(l) + : -static_cast(l); +} + +/**************** Function objects ****************/ +/* Any evaluation of a __gmp_expr ends up calling one of these functions + all intermediate functions being inline, the evaluation should optimize + to a direct call to the relevant function, thus yielding no overhead + over the C interface. */ + +struct __gmp_unary_plus +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_set(z, w); } + static void eval(mpq_ptr q, mpq_srcptr r) { mpq_set(q, r); } + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_set(f, g); } +}; + +struct __gmp_unary_minus +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_neg(z, w); } + static void eval(mpq_ptr q, mpq_srcptr r) { mpq_neg(q, r); } + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_neg(f, g); } +}; + +struct __gmp_unary_com +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_com(z, w); } +}; + +struct __gmp_binary_plus +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_add(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { + // Ideally, those checks should happen earlier so that the tree + // generated for a+0+b would just be sum(a,b). + if (__GMPXX_CONSTANT(l) && l == 0) + { + if (z != w) mpz_set(z, w); + } + else + mpz_add_ui(z, w, l); + } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + if (l >= 0) + eval(z, w, static_cast(l)); + else + mpz_sub_ui(z, w, -static_cast(l)); + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_add (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { eval(z, w, d); } + + static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) + { mpq_add(q, r, s); } + + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { + if (__GMPXX_CONSTANT(l) && l == 0) + { + if (q != r) mpq_set(q, r); + } + else + { + if (q == r) + mpz_addmul_ui(mpq_numref(q), mpq_denref(q), l); + else + { + mpz_mul_ui(mpq_numref(q), mpq_denref(r), l); + mpz_add(mpq_numref(q), mpq_numref(q), mpq_numref(r)); + mpz_set(mpq_denref(q), mpq_denref(r)); + } + } + } + static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) + { eval(q, r, l); } + static inline void eval(mpq_ptr q, mpq_srcptr r, signed long int l); + // defined after __gmp_binary_minus + static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) + { eval(q, r, l); } + static void eval(mpq_ptr q, mpq_srcptr r, double d) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_add(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, double d, mpq_srcptr r) + { eval(q, r, d); } + + static void eval(mpq_ptr q, mpq_srcptr r, mpz_srcptr z) + { + if (q == r) + mpz_addmul(mpq_numref(q), mpq_denref(q), z); + else + { + mpz_mul(mpq_numref(q), mpq_denref(r), z); + mpz_add(mpq_numref(q), mpq_numref(q), mpq_numref(r)); + mpz_set(mpq_denref(q), mpq_denref(r)); + } + } + static void eval(mpq_ptr q, mpz_srcptr z, mpq_srcptr r) + { eval(q, r, z); } + + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { mpf_add(f, g, h); } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_add_ui(f, g, l); } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { mpf_add_ui(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + if (l >= 0) + mpf_add_ui(f, g, l); + else + mpf_sub_ui(f, g, -static_cast(l)); + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { eval(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_add(f, g, temp); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { eval(f, g, d); } +}; + +struct __gmp_binary_minus +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_sub(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { + if (__GMPXX_CONSTANT(l) && l == 0) + { + if (z != w) mpz_set(z, w); + } + else + mpz_sub_ui(z, w, l); + } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { + if (__GMPXX_CONSTANT(l) && l == 0) + { + mpz_neg(z, w); + } + else + mpz_ui_sub(z, l, w); + } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + if (l >= 0) + eval(z, w, static_cast(l)); + else + mpz_add_ui(z, w, -static_cast(l)); + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { + if (l >= 0) + eval(z, static_cast(l), w); + else + { + mpz_add_ui(z, w, -static_cast(l)); + mpz_neg(z, z); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_sub (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { __GMPXX_TMPZ_D; mpz_sub (z, temp, w); } + + static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) + { mpq_sub(q, r, s); } + + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { + if (__GMPXX_CONSTANT(l) && l == 0) + { + if (q != r) mpq_set(q, r); + } + else + { + if (q == r) + mpz_submul_ui(mpq_numref(q), mpq_denref(q), l); + else + { + mpz_mul_ui(mpq_numref(q), mpq_denref(r), l); + mpz_sub(mpq_numref(q), mpq_numref(r), mpq_numref(q)); + mpz_set(mpq_denref(q), mpq_denref(r)); + } + } + } + static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) + { eval(q, r, l); mpq_neg(q, q); } + static void eval(mpq_ptr q, mpq_srcptr r, signed long int l) + { + if (l >= 0) + eval(q, r, static_cast(l)); + else + __gmp_binary_plus::eval(q, r, -static_cast(l)); + } + static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) + { eval(q, r, l); mpq_neg(q, q); } + static void eval(mpq_ptr q, mpq_srcptr r, double d) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_sub(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, double d, mpq_srcptr r) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_sub(q, temp, r); + mpq_clear(temp); + } + + static void eval(mpq_ptr q, mpq_srcptr r, mpz_srcptr z) + { + if (q == r) + mpz_submul(mpq_numref(q), mpq_denref(q), z); + else + { + mpz_mul(mpq_numref(q), mpq_denref(r), z); + mpz_sub(mpq_numref(q), mpq_numref(r), mpq_numref(q)); + mpz_set(mpq_denref(q), mpq_denref(r)); + } + } + static void eval(mpq_ptr q, mpz_srcptr z, mpq_srcptr r) + { eval(q, r, z); mpq_neg(q, q); } + + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { mpf_sub(f, g, h); } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_sub_ui(f, g, l); } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { mpf_ui_sub(f, l, g); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + if (l >= 0) + mpf_sub_ui(f, g, l); + else + mpf_add_ui(f, g, -static_cast(l)); + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { + if (l >= 0) + mpf_sub_ui(f, g, l); + else + mpf_add_ui(f, g, -static_cast(l)); + mpf_neg(f, f); + } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_sub(f, g, temp); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_sub(f, temp, g); + mpf_clear(temp); + } +}; + +// defined here so it can reference __gmp_binary_minus +inline void +__gmp_binary_plus::eval(mpq_ptr q, mpq_srcptr r, signed long int l) +{ + if (l >= 0) + eval(q, r, static_cast(l)); + else + __gmp_binary_minus::eval(q, r, -static_cast(l)); +} + +struct __gmp_binary_lshift +{ + static void eval(mpz_ptr z, mpz_srcptr w, mp_bitcnt_t l) + { + if (__GMPXX_CONSTANT(l) && (l == 0)) + { + if (z != w) mpz_set(z, w); + } + else + mpz_mul_2exp(z, w, l); + } + static void eval(mpq_ptr q, mpq_srcptr r, mp_bitcnt_t l) + { + if (__GMPXX_CONSTANT(l) && (l == 0)) + { + if (q != r) mpq_set(q, r); + } + else + mpq_mul_2exp(q, r, l); + } + static void eval(mpf_ptr f, mpf_srcptr g, mp_bitcnt_t l) + { mpf_mul_2exp(f, g, l); } +}; + +struct __gmp_binary_rshift +{ + static void eval(mpz_ptr z, mpz_srcptr w, mp_bitcnt_t l) + { + if (__GMPXX_CONSTANT(l) && (l == 0)) + { + if (z != w) mpz_set(z, w); + } + else + mpz_fdiv_q_2exp(z, w, l); + } + static void eval(mpq_ptr q, mpq_srcptr r, mp_bitcnt_t l) + { + if (__GMPXX_CONSTANT(l) && (l == 0)) + { + if (q != r) mpq_set(q, r); + } + else + mpq_div_2exp(q, r, l); + } + static void eval(mpf_ptr f, mpf_srcptr g, mp_bitcnt_t l) + { mpf_div_2exp(f, g, l); } +}; + +struct __gmp_binary_multiplies +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_mul(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { +// gcc-3.3 doesn't have __builtin_ctzl. Don't bother optimizing for old gcc. +#if __GMP_GNUC_PREREQ(3, 4) + if (__GMPXX_CONSTANT(l) && (l & (l-1)) == 0) + { + if (l == 0) + { + z->_mp_size = 0; + } + else + { + __gmp_binary_lshift::eval(z, w, __builtin_ctzl(l)); + } + } + else +#endif + mpz_mul_ui(z, w, l); + } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + if (__GMPXX_CONSTANT(l)) + { + if (l >= 0) + eval(z, w, static_cast(l)); + else + { + eval(z, w, -static_cast(l)); + mpz_neg(z, z); + } + } + else + mpz_mul_si (z, w, l); + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_mul (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { eval(z, w, d); } + + static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) + { mpq_mul(q, r, s); } + + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { +#if __GMP_GNUC_PREREQ(3, 4) + if (__GMPXX_CONSTANT(l) && (l & (l-1)) == 0) + { + if (l == 0) + { + mpq_set_ui(q, 0, 1); + } + else + { + __gmp_binary_lshift::eval(q, r, __builtin_ctzl(l)); + } + } + else +#endif + { + __GMPXX_TMPQ_UI; + mpq_mul (q, r, temp); + } + } + static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) + { eval(q, r, l); } + static void eval(mpq_ptr q, mpq_srcptr r, signed long int l) + { + if (__GMPXX_CONSTANT(l)) + { + if (l >= 0) + eval(q, r, static_cast(l)); + else + { + eval(q, r, -static_cast(l)); + mpq_neg(q, q); + } + } + else + { + __GMPXX_TMPQ_SI; + mpq_mul (q, r, temp); + } + } + static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) + { eval(q, r, l); } + static void eval(mpq_ptr q, mpq_srcptr r, double d) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_mul(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, double d, mpq_srcptr r) + { eval(q, r, d); } + + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { mpf_mul(f, g, h); } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_mul_ui(f, g, l); } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { mpf_mul_ui(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + if (l >= 0) + mpf_mul_ui(f, g, l); + else + { + mpf_mul_ui(f, g, -static_cast(l)); + mpf_neg(f, f); + } + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { eval(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_mul(f, g, temp); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { eval(f, g, d); } +}; + +struct __gmp_binary_divides +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_tdiv_q(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { +#if __GMP_GNUC_PREREQ(3, 4) + // Don't optimize division by 0... + if (__GMPXX_CONSTANT(l) && (l & (l-1)) == 0 && l != 0) + { + if (l == 1) + { + if (z != w) mpz_set(z, w); + } + else + mpz_tdiv_q_2exp(z, w, __builtin_ctzl(l)); + // warning: do not use rshift (fdiv) + } + else +#endif + mpz_tdiv_q_ui(z, w, l); + } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { + if (mpz_sgn(w) >= 0) + { + if (mpz_fits_ulong_p(w)) + mpz_set_ui(z, l / mpz_get_ui(w)); + else + mpz_set_ui(z, 0); + } + else + { + mpz_neg(z, w); + if (mpz_fits_ulong_p(z)) + { + mpz_set_ui(z, l / mpz_get_ui(z)); + mpz_neg(z, z); + } + else + mpz_set_ui(z, 0); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + if (l >= 0) + eval(z, w, static_cast(l)); + else + { + eval(z, w, -static_cast(l)); + mpz_neg(z, z); + } + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { + if (mpz_fits_slong_p(w)) + mpz_set_si(z, l / mpz_get_si(w)); + else + { + /* if w is bigger than a long then the quotient must be zero, unless + l==LONG_MIN and w==-LONG_MIN in which case the quotient is -1 */ + mpz_set_si (z, (mpz_cmpabs_ui (w, __gmpxx_abs_ui(l)) == 0 ? -1 : 0)); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_tdiv_q (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { __GMPXX_TMPZ_D; mpz_tdiv_q (z, temp, w); } + + static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) + { mpq_div(q, r, s); } + + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { +#if __GMP_GNUC_PREREQ(3, 4) + if (__GMPXX_CONSTANT(l) && (l & (l-1)) == 0 && l != 0) + __gmp_binary_rshift::eval(q, r, __builtin_ctzl(l)); + else +#endif + { + __GMPXX_TMPQ_UI; + mpq_div (q, r, temp); + } + } + static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) + { __GMPXX_TMPQ_UI; mpq_div (q, temp, r); } + static void eval(mpq_ptr q, mpq_srcptr r, signed long int l) + { + if (__GMPXX_CONSTANT(l)) + { + if (l >= 0) + eval(q, r, static_cast(l)); + else + { + eval(q, r, -static_cast(l)); + mpq_neg(q, q); + } + } + else + { + __GMPXX_TMPQ_SI; + mpq_div (q, r, temp); + } + } + static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) + { __GMPXX_TMPQ_SI; mpq_div (q, temp, r); } + static void eval(mpq_ptr q, mpq_srcptr r, double d) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_div(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, double d, mpq_srcptr r) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_div(q, temp, r); + mpq_clear(temp); + } + + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { mpf_div(f, g, h); } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_div_ui(f, g, l); } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { mpf_ui_div(f, l, g); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + if (l >= 0) + mpf_div_ui(f, g, l); + else + { + mpf_div_ui(f, g, -static_cast(l)); + mpf_neg(f, f); + } + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { + if (l >= 0) + mpf_ui_div(f, l, g); + else + { + mpf_ui_div(f, -static_cast(l), g); + mpf_neg(f, f); + } + } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_div(f, g, temp); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_div(f, temp, g); + mpf_clear(temp); + } +}; + +struct __gmp_binary_modulus +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_tdiv_r(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { mpz_tdiv_r_ui(z, w, l); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { + if (mpz_sgn(w) >= 0) + { + if (mpz_fits_ulong_p(w)) + mpz_set_ui(z, l % mpz_get_ui(w)); + else + mpz_set_ui(z, l); + } + else + { + mpz_neg(z, w); + if (mpz_fits_ulong_p(z)) + mpz_set_ui(z, l % mpz_get_ui(z)); + else + mpz_set_ui(z, l); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + mpz_tdiv_r_ui (z, w, __gmpxx_abs_ui(l)); + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { + if (mpz_fits_slong_p(w)) + mpz_set_si(z, l % mpz_get_si(w)); + else + { + /* if w is bigger than a long then the remainder is l unchanged, + unless l==LONG_MIN and w==-LONG_MIN in which case it's 0 */ + mpz_set_si (z, mpz_cmpabs_ui (w, __gmpxx_abs_ui(l)) == 0 ? 0 : l); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_tdiv_r (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { __GMPXX_TMPZ_D; mpz_tdiv_r (z, temp, w); } +}; + +struct __gmp_binary_and +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_and(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { __GMPXX_TMPZ_UI; mpz_and (z, w, temp); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { __GMPXX_TMPZ_SI; mpz_and (z, w, temp); } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_and (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { eval(z, w, d); } +}; + +struct __gmp_binary_ior +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_ior(z, w, v); } + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { __GMPXX_TMPZ_UI; mpz_ior (z, w, temp); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { __GMPXX_TMPZ_SI; mpz_ior (z, w, temp); } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_ior (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { eval(z, w, d); } +}; + +struct __gmp_binary_xor +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_xor(z, w, v); } + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { __GMPXX_TMPZ_UI; mpz_xor (z, w, temp); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { __GMPXX_TMPZ_SI; mpz_xor (z, w, temp); } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_xor (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { eval(z, w, d); } +}; + +struct __gmp_binary_equal +{ + static bool eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w) == 0; } + + static bool eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l) == 0; } + static bool eval(unsigned long int l, mpz_srcptr z) + { return mpz_cmp_ui(z, l) == 0; } + static bool eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l) == 0; } + static bool eval(signed long int l, mpz_srcptr z) + { return mpz_cmp_si(z, l) == 0; } + static bool eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d) == 0; } + static bool eval(double d, mpz_srcptr z) + { return mpz_cmp_d(z, d) == 0; } + + static bool eval(mpq_srcptr q, mpq_srcptr r) + { return mpq_equal(q, r) != 0; } + + static bool eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1) == 0; } + static bool eval(unsigned long int l, mpq_srcptr q) + { return mpq_cmp_ui(q, l, 1) == 0; } + static bool eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1) == 0; } + static bool eval(signed long int l, mpq_srcptr q) + { return mpq_cmp_si(q, l, 1) == 0; } + static bool eval(mpq_srcptr q, double d) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_equal(q, temp) != 0); + mpq_clear(temp); + return b; + } + static bool eval(double d, mpq_srcptr q) + { + return eval(q, d); + } + + static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) == 0; } + + static bool eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l) == 0; } + static bool eval(unsigned long int l, mpf_srcptr f) + { return mpf_cmp_ui(f, l) == 0; } + static bool eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l) == 0; } + static bool eval(signed long int l, mpf_srcptr f) + { return mpf_cmp_si(f, l) == 0; } + static bool eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d) == 0; } + static bool eval(double d, mpf_srcptr f) + { return mpf_cmp_d(f, d) == 0; } +}; + +struct __gmp_binary_less +{ + static bool eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w) < 0; } + + static bool eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l) < 0; } + static bool eval(unsigned long int l, mpz_srcptr z) + { return mpz_cmp_ui(z, l) > 0; } + static bool eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l) < 0; } + static bool eval(signed long int l, mpz_srcptr z) + { return mpz_cmp_si(z, l) > 0; } + static bool eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d) < 0; } + static bool eval(double d, mpz_srcptr z) + { return mpz_cmp_d(z, d) > 0; } + + static bool eval(mpq_srcptr q, mpq_srcptr r) { return mpq_cmp(q, r) < 0; } + + static bool eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1) < 0; } + static bool eval(unsigned long int l, mpq_srcptr q) + { return mpq_cmp_ui(q, l, 1) > 0; } + static bool eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1) < 0; } + static bool eval(signed long int l, mpq_srcptr q) + { return mpq_cmp_si(q, l, 1) > 0; } + static bool eval(mpq_srcptr q, double d) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(q, temp) < 0); + mpq_clear(temp); + return b; + } + static bool eval(double d, mpq_srcptr q) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(temp, q) < 0); + mpq_clear(temp); + return b; + } + + static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) < 0; } + + static bool eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l) < 0; } + static bool eval(unsigned long int l, mpf_srcptr f) + { return mpf_cmp_ui(f, l) > 0; } + static bool eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l) < 0; } + static bool eval(signed long int l, mpf_srcptr f) + { return mpf_cmp_si(f, l) > 0; } + static bool eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d) < 0; } + static bool eval(double d, mpf_srcptr f) + { return mpf_cmp_d(f, d) > 0; } +}; + +struct __gmp_binary_greater +{ + static bool eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w) > 0; } + + static bool eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l) > 0; } + static bool eval(unsigned long int l, mpz_srcptr z) + { return mpz_cmp_ui(z, l) < 0; } + static bool eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l) > 0; } + static bool eval(signed long int l, mpz_srcptr z) + { return mpz_cmp_si(z, l) < 0; } + static bool eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d) > 0; } + static bool eval(double d, mpz_srcptr z) + { return mpz_cmp_d(z, d) < 0; } + + static bool eval(mpq_srcptr q, mpq_srcptr r) { return mpq_cmp(q, r) > 0; } + + static bool eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1) > 0; } + static bool eval(unsigned long int l, mpq_srcptr q) + { return mpq_cmp_ui(q, l, 1) < 0; } + static bool eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1) > 0; } + static bool eval(signed long int l, mpq_srcptr q) + { return mpq_cmp_si(q, l, 1) < 0; } + static bool eval(mpq_srcptr q, double d) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(q, temp) > 0); + mpq_clear(temp); + return b; + } + static bool eval(double d, mpq_srcptr q) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(temp, q) > 0); + mpq_clear(temp); + return b; + } + + static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) > 0; } + + static bool eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l) > 0; } + static bool eval(unsigned long int l, mpf_srcptr f) + { return mpf_cmp_ui(f, l) < 0; } + static bool eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l) > 0; } + static bool eval(signed long int l, mpf_srcptr f) + { return mpf_cmp_si(f, l) < 0; } + static bool eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d) > 0; } + static bool eval(double d, mpf_srcptr f) + { return mpf_cmp_d(f, d) < 0; } +}; + +struct __gmp_unary_increment +{ + static void eval(mpz_ptr z) { mpz_add_ui(z, z, 1); } + static void eval(mpq_ptr q) + { mpz_add(mpq_numref(q), mpq_numref(q), mpq_denref(q)); } + static void eval(mpf_ptr f) { mpf_add_ui(f, f, 1); } +}; + +struct __gmp_unary_decrement +{ + static void eval(mpz_ptr z) { mpz_sub_ui(z, z, 1); } + static void eval(mpq_ptr q) + { mpz_sub(mpq_numref(q), mpq_numref(q), mpq_denref(q)); } + static void eval(mpf_ptr f) { mpf_sub_ui(f, f, 1); } +}; + +struct __gmp_abs_function +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_abs(z, w); } + static void eval(mpq_ptr q, mpq_srcptr r) { mpq_abs(q, r); } + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_abs(f, g); } +}; + +struct __gmp_trunc_function +{ + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_trunc(f, g); } +}; + +struct __gmp_floor_function +{ + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_floor(f, g); } +}; + +struct __gmp_ceil_function +{ + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_ceil(f, g); } +}; + +struct __gmp_sqrt_function +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_sqrt(z, w); } + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_sqrt(f, g); } +}; + +struct __gmp_hypot_function +{ + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_mul(f, h, h); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_set_ui(f, l); + mpf_mul(f, f, f); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { eval(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_set_si(f, l); + mpf_mul(f, f, f); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { eval(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_set_d(f, d); + mpf_mul(f, f, f); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { eval(f, g, d); } +}; + +struct __gmp_sgn_function +{ + static int eval(mpz_srcptr z) { return mpz_sgn(z); } + static int eval(mpq_srcptr q) { return mpq_sgn(q); } + static int eval(mpf_srcptr f) { return mpf_sgn(f); } +}; + +struct __gmp_cmp_function +{ + static int eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w); } + + static int eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l); } + static int eval(unsigned long int l, mpz_srcptr z) + { return -mpz_cmp_ui(z, l); } + static int eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l); } + static int eval(signed long int l, mpz_srcptr z) + { return -mpz_cmp_si(z, l); } + static int eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d); } + static int eval(double d, mpz_srcptr z) + { return -mpz_cmp_d(z, d); } + + static int eval(mpq_srcptr q, mpq_srcptr r) { return mpq_cmp(q, r); } + + static int eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1); } + static int eval(unsigned long int l, mpq_srcptr q) + { return -mpq_cmp_ui(q, l, 1); } + static int eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1); } + static int eval(signed long int l, mpq_srcptr q) + { return -mpq_cmp_si(q, l, 1); } + static int eval(mpq_srcptr q, double d) + { + int i; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + i = mpq_cmp(q, temp); + mpq_clear(temp); + return i; + } + static int eval(double d, mpq_srcptr q) + { + int i; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + i = mpq_cmp(temp, q); + mpq_clear(temp); + return i; + } + + static int eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g); } + + static int eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l); } + static int eval(unsigned long int l, mpf_srcptr f) + { return -mpf_cmp_ui(f, l); } + static int eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l); } + static int eval(signed long int l, mpf_srcptr f) + { return -mpf_cmp_si(f, l); } + static int eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d); } + static int eval(double d, mpf_srcptr f) + { return -mpf_cmp_d(f, d); } +}; + +struct __gmp_rand_function +{ + static void eval(mpz_ptr z, gmp_randstate_t s, mp_bitcnt_t l) + { mpz_urandomb(z, s, l); } + static void eval(mpz_ptr z, gmp_randstate_t s, mpz_srcptr w) + { mpz_urandomm(z, s, w); } + static void eval(mpf_ptr f, gmp_randstate_t s, mp_bitcnt_t prec) + { mpf_urandomb(f, s, prec); } +}; + + +/**************** Auxiliary classes ****************/ + +/* this is much the same as gmp_allocated_string in gmp-impl.h + since gmp-impl.h is not publicly available, I redefine it here + I use a different name to avoid possible clashes */ + +extern "C" { + typedef void (*__gmp_freefunc_t) (void *, size_t); +} +struct __gmp_alloc_cstring +{ + char *str; + __gmp_alloc_cstring(char *s) { str = s; } + ~__gmp_alloc_cstring() + { + __gmp_freefunc_t freefunc; + mp_get_memory_functions (NULL, NULL, &freefunc); + (*freefunc) (str, std::strlen(str)+1); + } +}; + + +// general expression template class +template +class __gmp_expr; + + +// templates for resolving expression types +template +struct __gmp_resolve_ref +{ + typedef T ref_type; +}; + +template +struct __gmp_resolve_ref<__gmp_expr > +{ + typedef const __gmp_expr & ref_type; +}; + + +template +struct __gmp_resolve_expr; + +template <> +struct __gmp_resolve_expr +{ + typedef mpz_t value_type; + typedef mpz_ptr ptr_type; + typedef mpz_srcptr srcptr_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpq_t value_type; + typedef mpq_ptr ptr_type; + typedef mpq_srcptr srcptr_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; + typedef mpf_ptr ptr_type; + typedef mpf_srcptr srcptr_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpq_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpq_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; +}; + +#if __GMPXX_USE_CXX11 +namespace std { + template + struct common_type <__gmp_expr, __gmp_expr > + { + private: + typedef typename __gmp_resolve_expr::value_type X; + public: + typedef __gmp_expr type; + }; + + template + struct common_type <__gmp_expr, __gmp_expr > + { + typedef __gmp_expr type; + }; + +#define __GMPXX_DECLARE_COMMON_TYPE(typ) \ + template \ + struct common_type <__gmp_expr, typ > \ + { \ + typedef __gmp_expr type; \ + }; \ + \ + template \ + struct common_type > \ + { \ + typedef __gmp_expr type; \ + } + + __GMPXX_DECLARE_COMMON_TYPE(signed char); + __GMPXX_DECLARE_COMMON_TYPE(unsigned char); + __GMPXX_DECLARE_COMMON_TYPE(signed int); + __GMPXX_DECLARE_COMMON_TYPE(unsigned int); + __GMPXX_DECLARE_COMMON_TYPE(signed short int); + __GMPXX_DECLARE_COMMON_TYPE(unsigned short int); + __GMPXX_DECLARE_COMMON_TYPE(signed long int); + __GMPXX_DECLARE_COMMON_TYPE(unsigned long int); + __GMPXX_DECLARE_COMMON_TYPE(float); + __GMPXX_DECLARE_COMMON_TYPE(double); +#undef __GMPXX_DECLARE_COMMON_TYPE +} +#endif + +// classes for evaluating unary and binary expressions +template +struct __gmp_unary_expr +{ + const T &val; + + __gmp_unary_expr(const T &v) : val(v) { } +private: + __gmp_unary_expr(); +}; + +template +struct __gmp_binary_expr +{ + typename __gmp_resolve_ref::ref_type val1; + typename __gmp_resolve_ref::ref_type val2; + + __gmp_binary_expr(const T &v1, const U &v2) : val1(v1), val2(v2) { } +private: + __gmp_binary_expr(); +}; + + + +/**************** Macros for in-class declarations ****************/ +/* This is just repetitive code that is easier to maintain if it's written + only once */ + +#define __GMPP_DECLARE_COMPOUND_OPERATOR(fun) \ + template \ + __gmp_expr & fun(const __gmp_expr &); + +#define __GMPN_DECLARE_COMPOUND_OPERATOR(fun) \ + __gmp_expr & fun(signed char); \ + __gmp_expr & fun(unsigned char); \ + __gmp_expr & fun(signed int); \ + __gmp_expr & fun(unsigned int); \ + __gmp_expr & fun(signed short int); \ + __gmp_expr & fun(unsigned short int); \ + __gmp_expr & fun(signed long int); \ + __gmp_expr & fun(unsigned long int); \ + __gmp_expr & fun(float); \ + __gmp_expr & fun(double); \ + /* __gmp_expr & fun(long double); */ + +#define __GMP_DECLARE_COMPOUND_OPERATOR(fun) \ +__GMPP_DECLARE_COMPOUND_OPERATOR(fun) \ +__GMPN_DECLARE_COMPOUND_OPERATOR(fun) + +#define __GMP_DECLARE_COMPOUND_OPERATOR_UI(fun) \ + __gmp_expr & fun(mp_bitcnt_t); + +#define __GMP_DECLARE_INCREMENT_OPERATOR(fun) \ + inline __gmp_expr & fun(); \ + inline __gmp_expr fun(int); + + +/**************** mpz_class -- wrapper for mpz_t ****************/ + +template <> +class __gmp_expr +{ +private: + typedef mpz_t value_type; + value_type mp; +public: + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } + + // constructors and destructor + __gmp_expr() { mpz_init(mp); } + + __gmp_expr(const __gmp_expr &z) { mpz_init_set(mp, z.mp); } +#if __GMPXX_USE_CXX11 + __gmp_expr(__gmp_expr &&z) + { *mp = *z.mp; mpz_init(z.mp); } +#endif + template + __gmp_expr(const __gmp_expr &expr) + { mpz_init(mp); __gmp_set_expr(mp, expr); } + template + explicit __gmp_expr(const __gmp_expr &expr) + { mpz_init(mp); __gmp_set_expr(mp, expr); } + + __gmp_expr(signed char c) { mpz_init_set_si(mp, c); } + __gmp_expr(unsigned char c) { mpz_init_set_ui(mp, c); } + + __gmp_expr(signed int i) { mpz_init_set_si(mp, i); } + __gmp_expr(unsigned int i) { mpz_init_set_ui(mp, i); } + + __gmp_expr(signed short int s) { mpz_init_set_si(mp, s); } + __gmp_expr(unsigned short int s) { mpz_init_set_ui(mp, s); } + + __gmp_expr(signed long int l) { mpz_init_set_si(mp, l); } + __gmp_expr(unsigned long int l) { mpz_init_set_ui(mp, l); } + + __gmp_expr(float f) { mpz_init_set_d(mp, f); } + __gmp_expr(double d) { mpz_init_set_d(mp, d); } + // __gmp_expr(long double ld) { mpz_init_set_d(mp, ld); } + + explicit __gmp_expr(const char *s, int base = 0) + { + if (mpz_init_set_str (mp, s, base) != 0) + { + mpz_clear (mp); + throw std::invalid_argument ("mpz_set_str"); + } + } + explicit __gmp_expr(const std::string &s, int base = 0) + { + if (mpz_init_set_str(mp, s.c_str(), base) != 0) + { + mpz_clear (mp); + throw std::invalid_argument ("mpz_set_str"); + } + } + + explicit __gmp_expr(mpz_srcptr z) { mpz_init_set(mp, z); } + + ~__gmp_expr() { mpz_clear(mp); } + + void swap(__gmp_expr& z) __GMPXX_NOEXCEPT { std::swap(*mp, *z.mp); } + + // assignment operators + __gmp_expr & operator=(const __gmp_expr &z) + { mpz_set(mp, z.mp); return *this; } +#if __GMPXX_USE_CXX11 + __gmp_expr & operator=(__gmp_expr &&z) noexcept + { swap(z); return *this; } +#endif + template + __gmp_expr & operator=(const __gmp_expr &expr) + { __gmp_set_expr(mp, expr); return *this; } + + __gmp_expr & operator=(signed char c) { mpz_set_si(mp, c); return *this; } + __gmp_expr & operator=(unsigned char c) { mpz_set_ui(mp, c); return *this; } + + __gmp_expr & operator=(signed int i) { mpz_set_si(mp, i); return *this; } + __gmp_expr & operator=(unsigned int i) { mpz_set_ui(mp, i); return *this; } + + __gmp_expr & operator=(signed short int s) + { mpz_set_si(mp, s); return *this; } + __gmp_expr & operator=(unsigned short int s) + { mpz_set_ui(mp, s); return *this; } + + __gmp_expr & operator=(signed long int l) + { mpz_set_si(mp, l); return *this; } + __gmp_expr & operator=(unsigned long int l) + { mpz_set_ui(mp, l); return *this; } + + __gmp_expr & operator=(float f) { mpz_set_d(mp, f); return *this; } + __gmp_expr & operator=(double d) { mpz_set_d(mp, d); return *this; } + // __gmp_expr & operator=(long double ld) + // { mpz_set_ld(mp, ld); return *this; } + + __gmp_expr & operator=(const char *s) + { + if (mpz_set_str (mp, s, 0) != 0) + throw std::invalid_argument ("mpz_set_str"); + return *this; + } + __gmp_expr & operator=(const std::string &s) + { + if (mpz_set_str(mp, s.c_str(), 0) != 0) + throw std::invalid_argument ("mpz_set_str"); + return *this; + } + + // string input/output functions + int set_str(const char *s, int base) + { return mpz_set_str(mp, s, base); } + int set_str(const std::string &s, int base) + { return mpz_set_str(mp, s.c_str(), base); } + std::string get_str(int base = 10) const + { + __gmp_alloc_cstring temp(mpz_get_str(0, base, mp)); + return std::string(temp.str); + } + + // conversion functions + mpz_srcptr __get_mp() const { return mp; } + mpz_ptr __get_mp() { return mp; } + mpz_srcptr get_mpz_t() const { return mp; } + mpz_ptr get_mpz_t() { return mp; } + + signed long int get_si() const { return mpz_get_si(mp); } + unsigned long int get_ui() const { return mpz_get_ui(mp); } + double get_d() const { return mpz_get_d(mp); } + + // bool fits_schar_p() const { return mpz_fits_schar_p(mp); } + // bool fits_uchar_p() const { return mpz_fits_uchar_p(mp); } + bool fits_sint_p() const { return mpz_fits_sint_p(mp); } + bool fits_uint_p() const { return mpz_fits_uint_p(mp); } + bool fits_sshort_p() const { return mpz_fits_sshort_p(mp); } + bool fits_ushort_p() const { return mpz_fits_ushort_p(mp); } + bool fits_slong_p() const { return mpz_fits_slong_p(mp); } + bool fits_ulong_p() const { return mpz_fits_ulong_p(mp); } + // bool fits_float_p() const { return mpz_fits_float_p(mp); } + // bool fits_double_p() const { return mpz_fits_double_p(mp); } + // bool fits_ldouble_p() const { return mpz_fits_ldouble_p(mp); } + +#if __GMPXX_USE_CXX11 + explicit operator bool() const { return mp->_mp_size != 0; } +#endif + + // member operators + __GMP_DECLARE_COMPOUND_OPERATOR(operator+=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator-=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator*=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator/=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator%=) + + __GMP_DECLARE_COMPOUND_OPERATOR(operator&=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator|=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator^=) + + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator<<=) + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator>>=) + + __GMP_DECLARE_INCREMENT_OPERATOR(operator++) + __GMP_DECLARE_INCREMENT_OPERATOR(operator--) +}; + +typedef __gmp_expr mpz_class; + + +/**************** mpq_class -- wrapper for mpq_t ****************/ + +template <> +class __gmp_expr +{ +private: + typedef mpq_t value_type; + value_type mp; +public: + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } + void canonicalize() { mpq_canonicalize(mp); } + + // constructors and destructor + __gmp_expr() { mpq_init(mp); } + + __gmp_expr(const __gmp_expr &q) + { + mpz_init_set(mpq_numref(mp), mpq_numref(q.mp)); + mpz_init_set(mpq_denref(mp), mpq_denref(q.mp)); + } +#if __GMPXX_USE_CXX11 + __gmp_expr(__gmp_expr &&q) + { *mp = *q.mp; mpq_init(q.mp); } +#endif + template + __gmp_expr(const __gmp_expr &expr) + { mpq_init(mp); __gmp_set_expr(mp, expr); } + template + __gmp_expr(const __gmp_expr &expr) + { mpq_init(mp); __gmp_set_expr(mp, expr); } + template + explicit __gmp_expr(const __gmp_expr &expr) + { mpq_init(mp); __gmp_set_expr(mp, expr); } + + __gmp_expr(signed char c) { mpq_init(mp); mpq_set_si(mp, c, 1); } + __gmp_expr(unsigned char c) { mpq_init(mp); mpq_set_ui(mp, c, 1); } + + __gmp_expr(signed int i) { mpq_init(mp); mpq_set_si(mp, i, 1); } + __gmp_expr(unsigned int i) { mpq_init(mp); mpq_set_ui(mp, i, 1); } + + __gmp_expr(signed short int s) { mpq_init(mp); mpq_set_si(mp, s, 1); } + __gmp_expr(unsigned short int s) { mpq_init(mp); mpq_set_ui(mp, s, 1); } + + __gmp_expr(signed long int l) { mpq_init(mp); mpq_set_si(mp, l, 1); } + __gmp_expr(unsigned long int l) { mpq_init(mp); mpq_set_ui(mp, l, 1); } + + __gmp_expr(float f) { mpq_init(mp); mpq_set_d(mp, f); } + __gmp_expr(double d) { mpq_init(mp); mpq_set_d(mp, d); } + // __gmp_expr(long double ld) { mpq_init(mp); mpq_set_ld(mp, ld); } + + explicit __gmp_expr(const char *s, int base = 0) + { + mpq_init (mp); + // If s is the literal 0, we meant to call another constructor. + // If s just happens to evaluate to 0, we would crash, so whatever. + if (s == 0) + { + // Don't turn mpq_class(0,0) into 0 + mpz_set_si(mpq_denref(mp), base); + } + else if (mpq_set_str(mp, s, base) != 0) + { + mpq_clear (mp); + throw std::invalid_argument ("mpq_set_str"); + } + } + explicit __gmp_expr(const std::string &s, int base = 0) + { + mpq_init(mp); + if (mpq_set_str (mp, s.c_str(), base) != 0) + { + mpq_clear (mp); + throw std::invalid_argument ("mpq_set_str"); + } + } + explicit __gmp_expr(mpq_srcptr q) + { + mpz_init_set(mpq_numref(mp), mpq_numref(q)); + mpz_init_set(mpq_denref(mp), mpq_denref(q)); + } + + __gmp_expr(const mpz_class &num, const mpz_class &den) + { + mpz_init_set(mpq_numref(mp), num.get_mpz_t()); + mpz_init_set(mpq_denref(mp), den.get_mpz_t()); + } + + ~__gmp_expr() { mpq_clear(mp); } + + void swap(__gmp_expr& q) __GMPXX_NOEXCEPT { std::swap(*mp, *q.mp); } + + // assignment operators + __gmp_expr & operator=(const __gmp_expr &q) + { mpq_set(mp, q.mp); return *this; } +#if __GMPXX_USE_CXX11 + __gmp_expr & operator=(__gmp_expr &&q) noexcept + { swap(q); return *this; } + __gmp_expr & operator=(mpz_class &&z) noexcept + { get_num() = std::move(z); get_den() = 1u; return *this; } +#endif + template + __gmp_expr & operator=(const __gmp_expr &expr) + { __gmp_set_expr(mp, expr); return *this; } + + __gmp_expr & operator=(signed char c) + { mpq_set_si(mp, c, 1); return *this; } + __gmp_expr & operator=(unsigned char c) + { mpq_set_ui(mp, c, 1); return *this; } + + __gmp_expr & operator=(signed int i) { mpq_set_si(mp, i, 1); return *this; } + __gmp_expr & operator=(unsigned int i) + { mpq_set_ui(mp, i, 1); return *this; } + + __gmp_expr & operator=(signed short int s) + { mpq_set_si(mp, s, 1); return *this; } + __gmp_expr & operator=(unsigned short int s) + { mpq_set_ui(mp, s, 1); return *this; } + + __gmp_expr & operator=(signed long int l) + { mpq_set_si(mp, l, 1); return *this; } + __gmp_expr & operator=(unsigned long int l) + { mpq_set_ui(mp, l, 1); return *this; } + + __gmp_expr & operator=(float f) { mpq_set_d(mp, f); return *this; } + __gmp_expr & operator=(double d) { mpq_set_d(mp, d); return *this; } + // __gmp_expr & operator=(long double ld) + // { mpq_set_ld(mp, ld); return *this; } + + __gmp_expr & operator=(const char *s) + { + if (mpq_set_str (mp, s, 0) != 0) + throw std::invalid_argument ("mpq_set_str"); + return *this; + } + __gmp_expr & operator=(const std::string &s) + { + if (mpq_set_str(mp, s.c_str(), 0) != 0) + throw std::invalid_argument ("mpq_set_str"); + return *this; + } + + // string input/output functions + int set_str(const char *s, int base) + { return mpq_set_str(mp, s, base); } + int set_str(const std::string &s, int base) + { return mpq_set_str(mp, s.c_str(), base); } + std::string get_str(int base = 10) const + { + __gmp_alloc_cstring temp(mpq_get_str(0, base, mp)); + return std::string(temp.str); + } + + // conversion functions + + // casting a reference to an mpz_t to mpz_class & is a dirty hack, + // but works because the internal representation of mpz_class is + // exactly an mpz_t + const mpz_class & get_num() const + { return reinterpret_cast(*mpq_numref(mp)); } + mpz_class & get_num() + { return reinterpret_cast(*mpq_numref(mp)); } + const mpz_class & get_den() const + { return reinterpret_cast(*mpq_denref(mp)); } + mpz_class & get_den() + { return reinterpret_cast(*mpq_denref(mp)); } + + mpq_srcptr __get_mp() const { return mp; } + mpq_ptr __get_mp() { return mp; } + mpq_srcptr get_mpq_t() const { return mp; } + mpq_ptr get_mpq_t() { return mp; } + + mpz_srcptr get_num_mpz_t() const { return mpq_numref(mp); } + mpz_ptr get_num_mpz_t() { return mpq_numref(mp); } + mpz_srcptr get_den_mpz_t() const { return mpq_denref(mp); } + mpz_ptr get_den_mpz_t() { return mpq_denref(mp); } + + double get_d() const { return mpq_get_d(mp); } + +#if __GMPXX_USE_CXX11 + explicit operator bool() const { return mpq_numref(mp)->_mp_size != 0; } +#endif + + // compound assignments + __GMP_DECLARE_COMPOUND_OPERATOR(operator+=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator-=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator*=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator/=) + + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator<<=) + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator>>=) + + __GMP_DECLARE_INCREMENT_OPERATOR(operator++) + __GMP_DECLARE_INCREMENT_OPERATOR(operator--) +}; + +typedef __gmp_expr mpq_class; + + +/**************** mpf_class -- wrapper for mpf_t ****************/ + +template <> +class __gmp_expr +{ +private: + typedef mpf_t value_type; + value_type mp; +public: + mp_bitcnt_t get_prec() const { return mpf_get_prec(mp); } + + void set_prec(mp_bitcnt_t prec) { mpf_set_prec(mp, prec); } + void set_prec_raw(mp_bitcnt_t prec) { mpf_set_prec_raw(mp, prec); } + + // constructors and destructor + __gmp_expr() { mpf_init(mp); } + + __gmp_expr(const __gmp_expr &f) + { mpf_init2(mp, f.get_prec()); mpf_set(mp, f.mp); } +#if __GMPXX_USE_CXX11 + __gmp_expr(__gmp_expr &&f) + { *mp = *f.mp; mpf_init2(f.mp, get_prec()); } +#endif + __gmp_expr(const __gmp_expr &f, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set(mp, f.mp); } + template + __gmp_expr(const __gmp_expr &expr) + { mpf_init2(mp, expr.get_prec()); __gmp_set_expr(mp, expr); } + template + __gmp_expr(const __gmp_expr &expr, mp_bitcnt_t prec) + { mpf_init2(mp, prec); __gmp_set_expr(mp, expr); } + + __gmp_expr(signed char c) { mpf_init_set_si(mp, c); } + __gmp_expr(signed char c, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_si(mp, c); } + __gmp_expr(unsigned char c) { mpf_init_set_ui(mp, c); } + __gmp_expr(unsigned char c, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_ui(mp, c); } + + __gmp_expr(signed int i) { mpf_init_set_si(mp, i); } + __gmp_expr(signed int i, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_si(mp, i); } + __gmp_expr(unsigned int i) { mpf_init_set_ui(mp, i); } + __gmp_expr(unsigned int i, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_ui(mp, i); } + + __gmp_expr(signed short int s) { mpf_init_set_si(mp, s); } + __gmp_expr(signed short int s, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_si(mp, s); } + __gmp_expr(unsigned short int s) { mpf_init_set_ui(mp, s); } + __gmp_expr(unsigned short int s, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_ui(mp, s); } + + __gmp_expr(signed long int l) { mpf_init_set_si(mp, l); } + __gmp_expr(signed long int l, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_si(mp, l); } + __gmp_expr(unsigned long int l) { mpf_init_set_ui(mp, l); } + __gmp_expr(unsigned long int l, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_ui(mp, l); } + + __gmp_expr(float f) { mpf_init_set_d(mp, f); } + __gmp_expr(float f, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_d(mp, f); } + __gmp_expr(double d) { mpf_init_set_d(mp, d); } + __gmp_expr(double d, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_d(mp, d); } + // __gmp_expr(long double ld) { mpf_init_set_d(mp, ld); } + // __gmp_expr(long double ld, mp_bitcnt_t prec) + // { mpf_init2(mp, prec); mpf_set_d(mp, ld); } + + explicit __gmp_expr(const char *s) + { + if (mpf_init_set_str (mp, s, 0) != 0) + { + mpf_clear (mp); + throw std::invalid_argument ("mpf_set_str"); + } + } + __gmp_expr(const char *s, mp_bitcnt_t prec, int base = 0) + { + mpf_init2(mp, prec); + if (mpf_set_str(mp, s, base) != 0) + { + mpf_clear (mp); + throw std::invalid_argument ("mpf_set_str"); + } + } + explicit __gmp_expr(const std::string &s) + { + if (mpf_init_set_str(mp, s.c_str(), 0) != 0) + { + mpf_clear (mp); + throw std::invalid_argument ("mpf_set_str"); + } + } + __gmp_expr(const std::string &s, mp_bitcnt_t prec, int base = 0) + { + mpf_init2(mp, prec); + if (mpf_set_str(mp, s.c_str(), base) != 0) + { + mpf_clear (mp); + throw std::invalid_argument ("mpf_set_str"); + } + } + + explicit __gmp_expr(mpf_srcptr f) + { mpf_init2(mp, mpf_get_prec(f)); mpf_set(mp, f); } + __gmp_expr(mpf_srcptr f, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set(mp, f); } + + ~__gmp_expr() { mpf_clear(mp); } + + void swap(__gmp_expr& f) __GMPXX_NOEXCEPT { std::swap(*mp, *f.mp); } + + // assignment operators + __gmp_expr & operator=(const __gmp_expr &f) + { mpf_set(mp, f.mp); return *this; } +#if __GMPXX_USE_CXX11 + __gmp_expr & operator=(__gmp_expr &&f) noexcept + { swap(f); return *this; } +#endif + template + __gmp_expr & operator=(const __gmp_expr &expr) + { __gmp_set_expr(mp, expr); return *this; } + + __gmp_expr & operator=(signed char c) { mpf_set_si(mp, c); return *this; } + __gmp_expr & operator=(unsigned char c) { mpf_set_ui(mp, c); return *this; } + + __gmp_expr & operator=(signed int i) { mpf_set_si(mp, i); return *this; } + __gmp_expr & operator=(unsigned int i) { mpf_set_ui(mp, i); return *this; } + + __gmp_expr & operator=(signed short int s) + { mpf_set_si(mp, s); return *this; } + __gmp_expr & operator=(unsigned short int s) + { mpf_set_ui(mp, s); return *this; } + + __gmp_expr & operator=(signed long int l) + { mpf_set_si(mp, l); return *this; } + __gmp_expr & operator=(unsigned long int l) + { mpf_set_ui(mp, l); return *this; } + + __gmp_expr & operator=(float f) { mpf_set_d(mp, f); return *this; } + __gmp_expr & operator=(double d) { mpf_set_d(mp, d); return *this; } + // __gmp_expr & operator=(long double ld) + // { mpf_set_ld(mp, ld); return *this; } + + __gmp_expr & operator=(const char *s) + { + if (mpf_set_str (mp, s, 0) != 0) + throw std::invalid_argument ("mpf_set_str"); + return *this; + } + __gmp_expr & operator=(const std::string &s) + { + if (mpf_set_str(mp, s.c_str(), 0) != 0) + throw std::invalid_argument ("mpf_set_str"); + return *this; + } + + // string input/output functions + int set_str(const char *s, int base) + { return mpf_set_str(mp, s, base); } + int set_str(const std::string &s, int base) + { return mpf_set_str(mp, s.c_str(), base); } + std::string get_str(mp_exp_t &expo, int base = 10, size_t size = 0) const + { + __gmp_alloc_cstring temp(mpf_get_str(0, &expo, base, size, mp)); + return std::string(temp.str); + } + + // conversion functions + mpf_srcptr __get_mp() const { return mp; } + mpf_ptr __get_mp() { return mp; } + mpf_srcptr get_mpf_t() const { return mp; } + mpf_ptr get_mpf_t() { return mp; } + + signed long int get_si() const { return mpf_get_si(mp); } + unsigned long int get_ui() const { return mpf_get_ui(mp); } + double get_d() const { return mpf_get_d(mp); } + + // bool fits_schar_p() const { return mpf_fits_schar_p(mp); } + // bool fits_uchar_p() const { return mpf_fits_uchar_p(mp); } + bool fits_sint_p() const { return mpf_fits_sint_p(mp); } + bool fits_uint_p() const { return mpf_fits_uint_p(mp); } + bool fits_sshort_p() const { return mpf_fits_sshort_p(mp); } + bool fits_ushort_p() const { return mpf_fits_ushort_p(mp); } + bool fits_slong_p() const { return mpf_fits_slong_p(mp); } + bool fits_ulong_p() const { return mpf_fits_ulong_p(mp); } + // bool fits_float_p() const { return mpf_fits_float_p(mp); } + // bool fits_double_p() const { return mpf_fits_double_p(mp); } + // bool fits_ldouble_p() const { return mpf_fits_ldouble_p(mp); } + +#if __GMPXX_USE_CXX11 + explicit operator bool() const { return mp->_mp_size != 0; } +#endif + + // compound assignments + __GMP_DECLARE_COMPOUND_OPERATOR(operator+=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator-=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator*=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator/=) + + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator<<=) + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator>>=) + + __GMP_DECLARE_INCREMENT_OPERATOR(operator++) + __GMP_DECLARE_INCREMENT_OPERATOR(operator--) +}; + +typedef __gmp_expr mpf_class; + + + +/**************** User-defined literals ****************/ + +#if __GMPXX_USE_CXX11 +inline mpz_class operator"" _mpz(const char* s) +{ + return mpz_class(s); +} + +inline mpq_class operator"" _mpq(const char* s) +{ + mpq_class q; + q.get_num() = s; + return q; +} + +inline mpf_class operator"" _mpf(const char* s) +{ + return mpf_class(s); +} +#endif + +/**************** I/O operators ****************/ + +// these should (and will) be provided separately + +template +inline std::ostream & operator<< +(std::ostream &o, const __gmp_expr &expr) +{ + __gmp_expr const& temp(expr); + return o << temp.__get_mp(); +} + +template +inline std::istream & operator>>(std::istream &i, __gmp_expr &expr) +{ + return i >> expr.__get_mp(); +} + +/* +// you might want to uncomment this +inline std::istream & operator>>(std::istream &i, mpq_class &q) +{ + i >> q.get_mpq_t(); + q.canonicalize(); + return i; +} +*/ + + +/**************** Functions for type conversion ****************/ + +inline void __gmp_set_expr(mpz_ptr z, const mpz_class &w) +{ + mpz_set(z, w.get_mpz_t()); +} + +template +inline void __gmp_set_expr(mpz_ptr z, const __gmp_expr &expr) +{ + expr.eval(z); +} + +template +inline void __gmp_set_expr(mpz_ptr z, const __gmp_expr &expr) +{ + mpq_class const& temp(expr); + mpz_set_q(z, temp.get_mpq_t()); +} + +template +inline void __gmp_set_expr(mpz_ptr z, const __gmp_expr &expr) +{ + mpf_class const& temp(expr); + mpz_set_f(z, temp.get_mpf_t()); +} + +inline void __gmp_set_expr(mpq_ptr q, const mpz_class &z) +{ + mpq_set_z(q, z.get_mpz_t()); +} + +template +inline void __gmp_set_expr(mpq_ptr q, const __gmp_expr &expr) +{ + __gmp_set_expr(mpq_numref(q), expr); + mpz_set_ui(mpq_denref(q), 1); +} + +inline void __gmp_set_expr(mpq_ptr q, const mpq_class &r) +{ + mpq_set(q, r.get_mpq_t()); +} + +template +inline void __gmp_set_expr(mpq_ptr q, const __gmp_expr &expr) +{ + expr.eval(q); +} + +template +inline void __gmp_set_expr(mpq_ptr q, const __gmp_expr &expr) +{ + mpf_class const& temp(expr); + mpq_set_f(q, temp.get_mpf_t()); +} + +template +inline void __gmp_set_expr(mpf_ptr f, const __gmp_expr &expr) +{ + mpz_class const& temp(expr); + mpf_set_z(f, temp.get_mpz_t()); +} + +template +inline void __gmp_set_expr(mpf_ptr f, const __gmp_expr &expr) +{ + mpq_class const& temp(expr); + mpf_set_q(f, temp.get_mpq_t()); +} + +inline void __gmp_set_expr(mpf_ptr f, const mpf_class &g) +{ + mpf_set(f, g.get_mpf_t()); +} + +template +inline void __gmp_set_expr(mpf_ptr f, const __gmp_expr &expr) +{ + expr.eval(f); +} + + +/* Temporary objects */ + +template +class __gmp_temp +{ + __gmp_expr val; + public: + template + __gmp_temp(U const& u, V) : val (u) {} + typename __gmp_resolve_expr::srcptr_type + __get_mp() const { return val.__get_mp(); } +}; + +template <> +class __gmp_temp +{ + mpf_class val; + public: + template + __gmp_temp(U const& u, mpf_ptr res) : val (u, mpf_get_prec(res)) {} + mpf_srcptr __get_mp() const { return val.__get_mp(); } +}; + +/**************** Specializations of __gmp_expr ****************/ +/* The eval() method of __gmp_expr evaluates the corresponding + expression and assigns the result to its argument, which is either an + mpz_t, mpq_t, or mpf_t as specified by the T argument. + Compound expressions are evaluated recursively (temporaries are created + to hold intermediate values), while for simple expressions the eval() + method of the appropriate function object (available as the Op argument + of either __gmp_unary_expr or __gmp_binary_expr) is + called. */ + + +/**************** Unary expressions ****************/ +/* cases: + - simple: argument is mp*_class, that is, __gmp_expr + - compound: argument is __gmp_expr (with U not equal to T) */ + + +// simple expressions + +template +class __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val_type; + + __gmp_unary_expr expr; +public: + explicit __gmp_expr(const val_type &val) : expr(val) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { Op::eval(p, expr.val.__get_mp()); } + const val_type & get_val() const { return expr.val; } + mp_bitcnt_t get_prec() const { return expr.val.get_prec(); } +}; + + +// compound expressions + +template +class __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val_type; + + __gmp_unary_expr expr; +public: + explicit __gmp_expr(const val_type &val) : expr(val) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { expr.val.eval(p); Op::eval(p, p); } + const val_type & get_val() const { return expr.val; } + mp_bitcnt_t get_prec() const { return expr.val.get_prec(); } +}; + + +/**************** Binary expressions ****************/ +/* simple: + - arguments are both mp*_class + - one argument is mp*_class, one is a built-in type + compound: + - one is mp*_class, one is __gmp_expr + - one is __gmp_expr, one is built-in + - both arguments are __gmp_expr<...> */ + + +// simple expressions + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { Op::eval(p, expr.val1.__get_mp(), expr.val2.__get_mp()); } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + + +// simple expressions, T is a built-in numerical type + +template +class __gmp_expr, U, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef U val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { Op::eval(p, expr.val1.__get_mp(), expr.val2); } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const { return expr.val1.get_prec(); } +}; + +template +class __gmp_expr, Op> > +{ +private: + typedef U val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { Op::eval(p, expr.val1, expr.val2.__get_mp()); } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const { return expr.val2.get_prec(); } +}; + + +// compound expressions, one argument is a subexpression + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + if(p != expr.val1.__get_mp()) + { + __gmp_set_expr(p, expr.val2); + Op::eval(p, expr.val1.__get_mp(), p); + } + else + { + __gmp_temp temp(expr.val2, p); + Op::eval(p, expr.val1.__get_mp(), temp.__get_mp()); + } + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + if(p != expr.val2.__get_mp()) + { + __gmp_set_expr(p, expr.val1); + Op::eval(p, p, expr.val2.__get_mp()); + } + else + { + __gmp_temp temp(expr.val1, p); + Op::eval(p, temp.__get_mp(), expr.val2.__get_mp()); + } + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + if(p != expr.val1.__get_mp()) + { + __gmp_set_expr(p, expr.val2); + Op::eval(p, expr.val1.__get_mp(), p); + } + else + { + __gmp_temp temp(expr.val2, p); + Op::eval(p, expr.val1.__get_mp(), temp.__get_mp()); + } + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + if(p != expr.val2.__get_mp()) + { + __gmp_set_expr(p, expr.val1); + Op::eval(p, p, expr.val2.__get_mp()); + } + else + { + __gmp_temp temp(expr.val1, p); + Op::eval(p, temp.__get_mp(), expr.val2.__get_mp()); + } + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + + +// one argument is a subexpression, one is a built-in + +template +class __gmp_expr, V, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef V val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + expr.val1.eval(p); + Op::eval(p, p, expr.val2); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const { return expr.val1.get_prec(); } +}; + +template +class __gmp_expr, Op> > +{ +private: + typedef U val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + expr.val2.eval(p); + Op::eval(p, expr.val1, p); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const { return expr.val2.get_prec(); } +}; + + +// both arguments are subexpressions + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + __gmp_temp temp2(expr.val2, p); + expr.val1.eval(p); + Op::eval(p, p, temp2.__get_mp()); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + __gmp_temp temp1(expr.val1, p); + expr.val2.eval(p); + Op::eval(p, temp1.__get_mp(), p); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + __gmp_temp temp2(expr.val2, p); + expr.val1.eval(p); + Op::eval(p, p, temp2.__get_mp()); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + + +/**************** Special cases ****************/ + +/* Some operations (i.e., add and subtract) with mixed mpz/mpq arguments + can be done directly without first converting the mpz to mpq. + Appropriate specializations of __gmp_expr are required. */ + + +#define __GMPZQ_DEFINE_EXPR(eval_fun) \ + \ +template <> \ +class __gmp_expr > \ +{ \ +private: \ + typedef mpz_class val1_type; \ + typedef mpq_class val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { eval_fun::eval(q, expr.val1.get_mpz_t(), expr.val2.get_mpq_t()); } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template <> \ +class __gmp_expr > \ +{ \ +private: \ + typedef mpq_class val1_type; \ + typedef mpz_class val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { eval_fun::eval(q, expr.val1.get_mpq_t(), expr.val2.get_mpz_t()); } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr \ +, eval_fun> > \ +{ \ +private: \ + typedef mpz_class val1_type; \ + typedef __gmp_expr val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpq_class temp(expr.val2); \ + eval_fun::eval(q, expr.val1.get_mpz_t(), temp.get_mpq_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr \ +, eval_fun> > \ +{ \ +private: \ + typedef mpq_class val1_type; \ + typedef __gmp_expr val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpz_class temp(expr.val2); \ + eval_fun::eval(q, expr.val1.get_mpq_t(), temp.get_mpz_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr \ +, mpq_class, eval_fun> > \ +{ \ +private: \ + typedef __gmp_expr val1_type; \ + typedef mpq_class val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpz_class temp(expr.val1); \ + eval_fun::eval(q, temp.get_mpz_t(), expr.val2.get_mpq_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr \ +, mpz_class, eval_fun> > \ +{ \ +private: \ + typedef __gmp_expr val1_type; \ + typedef mpz_class val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpq_class temp(expr.val1); \ + eval_fun::eval(q, temp.get_mpq_t(), expr.val2.get_mpz_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr, __gmp_expr, eval_fun> > \ +{ \ +private: \ + typedef __gmp_expr val1_type; \ + typedef __gmp_expr val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpz_class temp1(expr.val1); \ + expr.val2.eval(q); \ + eval_fun::eval(q, temp1.get_mpz_t(), q); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr, __gmp_expr, eval_fun> > \ +{ \ +private: \ + typedef __gmp_expr val1_type; \ + typedef __gmp_expr val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpz_class temp2(expr.val2); \ + expr.val1.eval(q); \ + eval_fun::eval(q, q, temp2.get_mpz_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; + + +__GMPZQ_DEFINE_EXPR(__gmp_binary_plus) +__GMPZQ_DEFINE_EXPR(__gmp_binary_minus) + + + +/**************** Macros for defining functions ****************/ +/* Results of operators and functions are instances of __gmp_expr. + T determines the numerical type of the expression: it can be either + mpz_t, mpq_t, or mpf_t. When the arguments of a binary + expression have different numerical types, __gmp_resolve_expr is used + to determine the "larger" type. + U is either __gmp_unary_expr or __gmp_binary_expr, + where V and W are the arguments' types -- they can in turn be + expressions, thus allowing to build compound expressions to any + degree of complexity. + Op is a function object that must have an eval() method accepting + appropriate arguments. + Actual evaluation of a __gmp_expr object is done when it gets + assigned to an mp*_class ("lazy" evaluation): this is done by calling + its eval() method. */ + + +// non-member unary operators and functions + +#define __GMP_DEFINE_UNARY_FUNCTION(fun, eval_fun) \ + \ +template \ +inline __gmp_expr, eval_fun> > \ +fun(const __gmp_expr &expr) \ +{ \ + return __gmp_expr, eval_fun> >(expr); \ +} + +#define __GMP_DEFINE_UNARY_TYPE_FUNCTION(type, fun, eval_fun) \ + \ +template \ +inline type fun(const __gmp_expr &expr) \ +{ \ + __gmp_expr const& temp(expr); \ + return eval_fun::eval(temp.__get_mp()); \ +} + + +// non-member binary operators and functions + +#define __GMPP_DEFINE_BINARY_FUNCTION(fun, eval_fun) \ + \ +template \ +inline __gmp_expr::value_type, \ +__gmp_binary_expr<__gmp_expr, __gmp_expr, eval_fun> > \ +fun(const __gmp_expr &expr1, const __gmp_expr &expr2) \ +{ \ + return __gmp_expr::value_type, \ + __gmp_binary_expr<__gmp_expr, __gmp_expr, eval_fun> > \ + (expr1, expr2); \ +} + +#define __GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, bigtype) \ + \ +template \ +inline __gmp_expr \ +, bigtype, eval_fun> > \ +fun(const __gmp_expr &expr, type t) \ +{ \ + return __gmp_expr \ + , bigtype, eval_fun> >(expr, t); \ +} \ + \ +template \ +inline __gmp_expr \ +, eval_fun> > \ +fun(type t, const __gmp_expr &expr) \ +{ \ + return __gmp_expr \ + , eval_fun> >(t, expr); \ +} + +#define __GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, type) \ +__GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, signed long int) + +#define __GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, type) \ +__GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, unsigned long int) + +#define __GMPND_DEFINE_BINARY_FUNCTION(fun, eval_fun, type) \ +__GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, double) + +#define __GMPNLD_DEFINE_BINARY_FUNCTION(fun, eval_fun, type) \ +__GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, long double) + +#define __GMPN_DEFINE_BINARY_FUNCTION(fun, eval_fun) \ +__GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, signed char) \ +__GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, unsigned char) \ +__GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, signed int) \ +__GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, unsigned int) \ +__GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, signed short int) \ +__GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, unsigned short int) \ +__GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, signed long int) \ +__GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, unsigned long int) \ +__GMPND_DEFINE_BINARY_FUNCTION(fun, eval_fun, float) \ +__GMPND_DEFINE_BINARY_FUNCTION(fun, eval_fun, double) \ +/* __GMPNLD_DEFINE_BINARY_FUNCTION(fun, eval_fun, long double) */ + +#define __GMP_DEFINE_BINARY_FUNCTION(fun, eval_fun) \ +__GMPP_DEFINE_BINARY_FUNCTION(fun, eval_fun) \ +__GMPN_DEFINE_BINARY_FUNCTION(fun, eval_fun) + + +#define __GMP_DEFINE_BINARY_FUNCTION_UI(fun, eval_fun) \ + \ +template \ +inline __gmp_expr \ +, mp_bitcnt_t, eval_fun> > \ +fun(const __gmp_expr &expr, mp_bitcnt_t l) \ +{ \ + return __gmp_expr, mp_bitcnt_t, eval_fun> >(expr, l); \ +} + + +#define __GMPP_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) \ + \ +template \ +inline type fun(const __gmp_expr &expr1, \ + const __gmp_expr &expr2) \ +{ \ + typedef typename __gmp_resolve_expr::value_type eval_type; \ + __gmp_expr const& temp1(expr1); \ + __gmp_expr const& temp2(expr2); \ + return eval_fun::eval(temp1.__get_mp(), temp2.__get_mp()); \ +} + +#define __GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, \ + type2, bigtype) \ + \ +template \ +inline type fun(const __gmp_expr &expr, type2 t) \ +{ \ + __gmp_expr const& temp(expr); \ + return eval_fun::eval(temp.__get_mp(), static_cast(t)); \ +} \ + \ +template \ +inline type fun(type2 t, const __gmp_expr &expr) \ +{ \ + __gmp_expr const& temp(expr); \ + return eval_fun::eval(static_cast(t), temp.__get_mp()); \ +} + +#define __GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, \ + type2, signed long int) + +#define __GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, \ + type2, unsigned long int) + +#define __GMPND_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2, double) + +#define __GMPNLD_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2, long double) + +#define __GMPN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) \ +__GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, signed char) \ +__GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, unsigned char) \ +__GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, signed int) \ +__GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, unsigned int) \ +__GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, signed short int) \ +__GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, unsigned short int) \ +__GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, signed long int) \ +__GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, unsigned long int) \ +__GMPND_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, float) \ +__GMPND_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, double) \ +/* __GMPNLD_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, long double) */ + +#define __GMP_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) \ +__GMPP_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) \ +__GMPN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) + + +// member operators + +#define __GMPP_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) \ + \ +template \ +inline type##_class & type##_class::fun(const __gmp_expr &expr) \ +{ \ + __gmp_set_expr(mp, __gmp_expr, eval_fun> >(*this, expr)); \ + return *this; \ +} + +#define __GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, \ + type2, bigtype) \ + \ +inline type##_class & type##_class::fun(type2 t) \ +{ \ + __gmp_set_expr(mp, __gmp_expr >(*this, t)); \ + return *this; \ +} + +#define __GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, \ + type2, signed long int) + +#define __GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, \ + type2, unsigned long int) + +#define __GMPND_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2, double) + +#define __GMPNLD_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2, long double) + +#define __GMPN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) \ +__GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, signed char) \ +__GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, unsigned char) \ +__GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, signed int) \ +__GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, unsigned int) \ +__GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, signed short int) \ +__GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, unsigned short int) \ +__GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, signed long int) \ +__GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, unsigned long int) \ +__GMPND_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, float) \ +__GMPND_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, double) \ +/* __GMPNLD_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, long double) */ + +#define __GMP_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) \ +__GMPP_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) \ +__GMPN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) + +#define __GMPZ_DEFINE_COMPOUND_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR(mpz, fun, eval_fun) + +#define __GMPQ_DEFINE_COMPOUND_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR(mpq, fun, eval_fun) + +#define __GMPF_DEFINE_COMPOUND_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR(mpf, fun, eval_fun) + + + +#define __GMP_DEFINE_COMPOUND_OPERATOR_UI(type, fun, eval_fun) \ + \ +inline type##_class & type##_class::fun(mp_bitcnt_t l) \ +{ \ + __gmp_set_expr(mp, __gmp_expr >(*this, l)); \ + return *this; \ +} + +#define __GMPZ_DEFINE_COMPOUND_OPERATOR_UI(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR_UI(mpz, fun, eval_fun) + +#define __GMPQ_DEFINE_COMPOUND_OPERATOR_UI(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR_UI(mpq, fun, eval_fun) + +#define __GMPF_DEFINE_COMPOUND_OPERATOR_UI(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR_UI(mpf, fun, eval_fun) + + + +#define __GMP_DEFINE_INCREMENT_OPERATOR(type, fun, eval_fun) \ + \ +inline type##_class & type##_class::fun() \ +{ \ + eval_fun::eval(mp); \ + return *this; \ +} \ + \ +inline type##_class type##_class::fun(int) \ +{ \ + type##_class temp(*this); \ + eval_fun::eval(mp); \ + return temp; \ +} + +#define __GMPZ_DEFINE_INCREMENT_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_INCREMENT_OPERATOR(mpz, fun, eval_fun) + +#define __GMPQ_DEFINE_INCREMENT_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_INCREMENT_OPERATOR(mpq, fun, eval_fun) + +#define __GMPF_DEFINE_INCREMENT_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_INCREMENT_OPERATOR(mpf, fun, eval_fun) + + + +/**************** Arithmetic operators and functions ****************/ + +// non-member operators and functions + +__GMP_DEFINE_UNARY_FUNCTION(operator+, __gmp_unary_plus) +__GMP_DEFINE_UNARY_FUNCTION(operator-, __gmp_unary_minus) +__GMP_DEFINE_UNARY_FUNCTION(operator~, __gmp_unary_com) + +__GMP_DEFINE_BINARY_FUNCTION(operator+, __gmp_binary_plus) +__GMP_DEFINE_BINARY_FUNCTION(operator-, __gmp_binary_minus) +__GMP_DEFINE_BINARY_FUNCTION(operator*, __gmp_binary_multiplies) +__GMP_DEFINE_BINARY_FUNCTION(operator/, __gmp_binary_divides) +__GMP_DEFINE_BINARY_FUNCTION(operator%, __gmp_binary_modulus) +__GMP_DEFINE_BINARY_FUNCTION(operator&, __gmp_binary_and) +__GMP_DEFINE_BINARY_FUNCTION(operator|, __gmp_binary_ior) +__GMP_DEFINE_BINARY_FUNCTION(operator^, __gmp_binary_xor) + +__GMP_DEFINE_BINARY_FUNCTION_UI(operator<<, __gmp_binary_lshift) +__GMP_DEFINE_BINARY_FUNCTION_UI(operator>>, __gmp_binary_rshift) + +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator==, __gmp_binary_equal) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator!=, ! __gmp_binary_equal) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator<, __gmp_binary_less) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator<=, ! __gmp_binary_greater) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator>, __gmp_binary_greater) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator>=, ! __gmp_binary_less) + +__GMP_DEFINE_UNARY_FUNCTION(abs, __gmp_abs_function) +__GMP_DEFINE_UNARY_FUNCTION(trunc, __gmp_trunc_function) +__GMP_DEFINE_UNARY_FUNCTION(floor, __gmp_floor_function) +__GMP_DEFINE_UNARY_FUNCTION(ceil, __gmp_ceil_function) +__GMP_DEFINE_UNARY_FUNCTION(sqrt, __gmp_sqrt_function) +__GMP_DEFINE_BINARY_FUNCTION(hypot, __gmp_hypot_function) + +__GMP_DEFINE_UNARY_TYPE_FUNCTION(int, sgn, __gmp_sgn_function) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(int, cmp, __gmp_cmp_function) + +template +void swap(__gmp_expr& x, __gmp_expr& y) __GMPXX_NOEXCEPT +{ x.swap(y); } + +// member operators for mpz_class + +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator+=, __gmp_binary_plus) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator-=, __gmp_binary_minus) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator*=, __gmp_binary_multiplies) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator/=, __gmp_binary_divides) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator%=, __gmp_binary_modulus) + +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator&=, __gmp_binary_and) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator|=, __gmp_binary_ior) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator^=, __gmp_binary_xor) + +__GMPZ_DEFINE_COMPOUND_OPERATOR_UI(operator<<=, __gmp_binary_lshift) +__GMPZ_DEFINE_COMPOUND_OPERATOR_UI(operator>>=, __gmp_binary_rshift) + +__GMPZ_DEFINE_INCREMENT_OPERATOR(operator++, __gmp_unary_increment) +__GMPZ_DEFINE_INCREMENT_OPERATOR(operator--, __gmp_unary_decrement) + +// member operators for mpq_class + +__GMPQ_DEFINE_COMPOUND_OPERATOR(operator+=, __gmp_binary_plus) +__GMPQ_DEFINE_COMPOUND_OPERATOR(operator-=, __gmp_binary_minus) +__GMPQ_DEFINE_COMPOUND_OPERATOR(operator*=, __gmp_binary_multiplies) +__GMPQ_DEFINE_COMPOUND_OPERATOR(operator/=, __gmp_binary_divides) + +__GMPQ_DEFINE_COMPOUND_OPERATOR_UI(operator<<=, __gmp_binary_lshift) +__GMPQ_DEFINE_COMPOUND_OPERATOR_UI(operator>>=, __gmp_binary_rshift) + +__GMPQ_DEFINE_INCREMENT_OPERATOR(operator++, __gmp_unary_increment) +__GMPQ_DEFINE_INCREMENT_OPERATOR(operator--, __gmp_unary_decrement) + +// member operators for mpf_class + +__GMPF_DEFINE_COMPOUND_OPERATOR(operator+=, __gmp_binary_plus) +__GMPF_DEFINE_COMPOUND_OPERATOR(operator-=, __gmp_binary_minus) +__GMPF_DEFINE_COMPOUND_OPERATOR(operator*=, __gmp_binary_multiplies) +__GMPF_DEFINE_COMPOUND_OPERATOR(operator/=, __gmp_binary_divides) + +__GMPF_DEFINE_COMPOUND_OPERATOR_UI(operator<<=, __gmp_binary_lshift) +__GMPF_DEFINE_COMPOUND_OPERATOR_UI(operator>>=, __gmp_binary_rshift) + +__GMPF_DEFINE_INCREMENT_OPERATOR(operator++, __gmp_unary_increment) +__GMPF_DEFINE_INCREMENT_OPERATOR(operator--, __gmp_unary_decrement) + + + +/**************** Class wrapper for gmp_randstate_t ****************/ + +class __gmp_urandomb_value { }; +class __gmp_urandomm_value { }; + +template <> +class __gmp_expr +{ +private: + __gmp_randstate_struct *state; + mp_bitcnt_t bits; +public: + __gmp_expr(gmp_randstate_t s, mp_bitcnt_t l) : state(s), bits(l) { } + void eval(mpz_ptr z) const { __gmp_rand_function::eval(z, state, bits); } + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } +}; + +template <> +class __gmp_expr +{ +private: + __gmp_randstate_struct *state; + mpz_class range; +public: + __gmp_expr(gmp_randstate_t s, const mpz_class &z) : state(s), range(z) { } + void eval(mpz_ptr z) const + { __gmp_rand_function::eval(z, state, range.get_mpz_t()); } + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } +}; + +template <> +class __gmp_expr +{ +private: + __gmp_randstate_struct *state; + mp_bitcnt_t bits; +public: + __gmp_expr(gmp_randstate_t s, mp_bitcnt_t l) : state(s), bits(l) { } + void eval(mpf_ptr f) const + { + __gmp_rand_function::eval(f, state, + (bits>0) ? bits : mpf_get_prec(f)); + } + mp_bitcnt_t get_prec() const + { + if (bits == 0) + return mpf_get_default_prec(); + else + return bits; + } +}; + +extern "C" { + typedef void __gmp_randinit_default_t (gmp_randstate_t); + typedef void __gmp_randinit_lc_2exp_t (gmp_randstate_t, mpz_srcptr, unsigned long int, mp_bitcnt_t); + typedef int __gmp_randinit_lc_2exp_size_t (gmp_randstate_t, mp_bitcnt_t); +} + +class gmp_randclass +{ +private: + gmp_randstate_t state; + + // copy construction and assignment not allowed + gmp_randclass(const gmp_randclass &); + void operator=(const gmp_randclass &); +public: + // constructors and destructor + gmp_randclass(gmp_randalg_t alg, unsigned long int size) + { + switch (alg) + { + case GMP_RAND_ALG_LC: // no other cases for now + default: + gmp_randinit(state, alg, size); + break; + } + } + + // gmp_randinit_default + gmp_randclass(__gmp_randinit_default_t* f) { f(state); } + + // gmp_randinit_lc_2exp + gmp_randclass(__gmp_randinit_lc_2exp_t* f, + mpz_class z, unsigned long int l1, mp_bitcnt_t l2) + { f(state, z.get_mpz_t(), l1, l2); } + + // gmp_randinit_lc_2exp_size + gmp_randclass(__gmp_randinit_lc_2exp_size_t* f, + mp_bitcnt_t size) + { + if (f (state, size) == 0) + throw std::length_error ("gmp_randinit_lc_2exp_size"); + } + + ~gmp_randclass() { gmp_randclear(state); } + + // initialize + void seed(); // choose a random seed some way (?) + void seed(unsigned long int s) { gmp_randseed_ui(state, s); } + void seed(const mpz_class &z) { gmp_randseed(state, z.get_mpz_t()); } + + // get random number + __gmp_expr get_z_bits(mp_bitcnt_t l) + { return __gmp_expr(state, l); } + __gmp_expr get_z_bits(const mpz_class &z) + { return get_z_bits(z.get_ui()); } + // FIXME: z.get_bitcnt_t() ? + + __gmp_expr get_z_range(const mpz_class &z) + { return __gmp_expr(state, z); } + + __gmp_expr get_f(mp_bitcnt_t prec = 0) + { return __gmp_expr(state, prec); } +}; + + +/**************** Specialize std::numeric_limits ****************/ + +namespace std { + template <> class numeric_limits + { + public: + static const bool is_specialized = true; + static mpz_class min() { return mpz_class(); } + static mpz_class max() { return mpz_class(); } + static mpz_class lowest() { return mpz_class(); } + static const int digits = 0; + static const int digits10 = 0; + static const int max_digits10 = 0; + static const bool is_signed = true; + static const bool is_integer = true; + static const bool is_exact = true; + static const int radix = 2; + static mpz_class epsilon() { return mpz_class(); } + static mpz_class round_error() { return mpz_class(); } + static const int min_exponent = 0; + static const int min_exponent10 = 0; + static const int max_exponent = 0; + static const int max_exponent10 = 0; + static const bool has_infinity = false; + static const bool has_quiet_NaN = false; + static const bool has_signaling_NaN = false; + static const float_denorm_style has_denorm = denorm_absent; + static const bool has_denorm_loss = false; + static mpz_class infinity() { return mpz_class(); } + static mpz_class quiet_NaN() { return mpz_class(); } + static mpz_class signaling_NaN() { return mpz_class(); } + static mpz_class denorm_min() { return mpz_class(); } + static const bool is_iec559 = false; + static const bool is_bounded = false; + static const bool is_modulo = false; + static const bool traps = false; + static const bool tinyness_before = false; + static const float_round_style round_style = round_toward_zero; + }; + + template <> class numeric_limits + { + public: + static const bool is_specialized = true; + static mpq_class min() { return mpq_class(); } + static mpq_class max() { return mpq_class(); } + static mpq_class lowest() { return mpq_class(); } + static const int digits = 0; + static const int digits10 = 0; + static const int max_digits10 = 0; + static const bool is_signed = true; + static const bool is_integer = false; + static const bool is_exact = true; + static const int radix = 2; + static mpq_class epsilon() { return mpq_class(); } + static mpq_class round_error() { return mpq_class(); } + static const int min_exponent = 0; + static const int min_exponent10 = 0; + static const int max_exponent = 0; + static const int max_exponent10 = 0; + static const bool has_infinity = false; + static const bool has_quiet_NaN = false; + static const bool has_signaling_NaN = false; + static const float_denorm_style has_denorm = denorm_absent; + static const bool has_denorm_loss = false; + static mpq_class infinity() { return mpq_class(); } + static mpq_class quiet_NaN() { return mpq_class(); } + static mpq_class signaling_NaN() { return mpq_class(); } + static mpq_class denorm_min() { return mpq_class(); } + static const bool is_iec559 = false; + static const bool is_bounded = false; + static const bool is_modulo = false; + static const bool traps = false; + static const bool tinyness_before = false; + static const float_round_style round_style = round_toward_zero; + }; + + template <> class numeric_limits + { + public: + static const bool is_specialized = true; + static mpf_class min() { return mpf_class(); } + static mpf_class max() { return mpf_class(); } + static mpf_class lowest() { return mpf_class(); } + static const int digits = 0; + static const int digits10 = 0; + static const int max_digits10 = 0; + static const bool is_signed = true; + static const bool is_integer = false; + static const bool is_exact = false; + static const int radix = 2; + static mpf_class epsilon() { return mpf_class(); } + static mpf_class round_error() { return mpf_class(); } + static const int min_exponent = 0; + static const int min_exponent10 = 0; + static const int max_exponent = 0; + static const int max_exponent10 = 0; + static const bool has_infinity = false; + static const bool has_quiet_NaN = false; + static const bool has_signaling_NaN = false; + static const float_denorm_style has_denorm = denorm_absent; + static const bool has_denorm_loss = false; + static mpf_class infinity() { return mpf_class(); } + static mpf_class quiet_NaN() { return mpf_class(); } + static mpf_class signaling_NaN() { return mpf_class(); } + static mpf_class denorm_min() { return mpf_class(); } + static const bool is_iec559 = false; + static const bool is_bounded = false; + static const bool is_modulo = false; + static const bool traps = false; + static const bool tinyness_before = false; + static const float_round_style round_style = round_indeterminate; + }; +} + + +/**************** #undef all private macros ****************/ + +#undef __GMPP_DECLARE_COMPOUND_OPERATOR +#undef __GMPN_DECLARE_COMPOUND_OPERATOR +#undef __GMP_DECLARE_COMPOUND_OPERATOR +#undef __GMP_DECLARE_COMPOUND_OPERATOR_UI +#undef __GMP_DECLARE_INCREMENT_OPERATOR + +#undef __GMPZQ_DEFINE_EXPR + +#undef __GMP_DEFINE_UNARY_FUNCTION +#undef __GMP_DEFINE_UNARY_TYPE_FUNCTION + +#undef __GMPP_DEFINE_BINARY_FUNCTION +#undef __GMPNN_DEFINE_BINARY_FUNCTION +#undef __GMPNS_DEFINE_BINARY_FUNCTION +#undef __GMPNU_DEFINE_BINARY_FUNCTION +#undef __GMPND_DEFINE_BINARY_FUNCTION +#undef __GMPNLD_DEFINE_BINARY_FUNCTION +#undef __GMPN_DEFINE_BINARY_FUNCTION +#undef __GMP_DEFINE_BINARY_FUNCTION + +#undef __GMP_DEFINE_BINARY_FUNCTION_UI + +#undef __GMPP_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPNN_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPNS_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPNU_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPND_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPNLD_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPN_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMP_DEFINE_BINARY_TYPE_FUNCTION + +#undef __GMPZ_DEFINE_COMPOUND_OPERATOR + +#undef __GMPP_DEFINE_COMPOUND_OPERATOR +#undef __GMPNN_DEFINE_COMPOUND_OPERATOR +#undef __GMPNS_DEFINE_COMPOUND_OPERATOR +#undef __GMPNU_DEFINE_COMPOUND_OPERATOR +#undef __GMPND_DEFINE_COMPOUND_OPERATOR +#undef __GMPNLD_DEFINE_COMPOUND_OPERATOR +#undef __GMPN_DEFINE_COMPOUND_OPERATOR +#undef __GMP_DEFINE_COMPOUND_OPERATOR + +#undef __GMPQ_DEFINE_COMPOUND_OPERATOR +#undef __GMPF_DEFINE_COMPOUND_OPERATOR + +#undef __GMP_DEFINE_COMPOUND_OPERATOR_UI +#undef __GMPZ_DEFINE_COMPOUND_OPERATOR_UI +#undef __GMPQ_DEFINE_COMPOUND_OPERATOR_UI +#undef __GMPF_DEFINE_COMPOUND_OPERATOR_UI + +#undef __GMP_DEFINE_INCREMENT_OPERATOR +#undef __GMPZ_DEFINE_INCREMENT_OPERATOR +#undef __GMPQ_DEFINE_INCREMENT_OPERATOR +#undef __GMPF_DEFINE_INCREMENT_OPERATOR + +#undef __GMPXX_CONSTANT + +#endif /* __GMP_PLUSPLUS__ */ diff --git a/mips/libgmpxx.so b/mips/libgmpxx.so new file mode 100755 index 0000000000000000000000000000000000000000..a8298cbbd44a29736b09789400115c0cc3a0ddd6 GIT binary patch literal 1016024 zcmeF44_sYmeg7Z+B+!)Fo0PVwXzxvL2sTtNDQ&5uUK3KOrS&#JO*Z^SFy4!DnFNLwnb$%PTZoRGK(AY{yv{`J_pVv z+;)<;U`wXEV~By2*y$G1kGfg>7G0 z2=lZV^W4JtsfiUP0~db?$4`*>N6Ih>vh5o|yZ?|W&L6|^EDrt(knY9d$N4qjKY{!nyPN1x{i(UWc?l0B3OAhhrsv=l@6Nmw^8ZM-Ad~!EfS#2{CC1Zv+1t2Y>&7<86rJ zZ!Ne2$9|kAaC{O+4-V(|0!}Vh;8Wr;umi_m;`l=xt8jf6_!}IK8EeJ)4{$iY?>Q%8 zw(7qVybQ;`BmOC+eFI#FxN3!0;`|kz-wuX#{v+@n9JG=AU54Wd%wfDU+)U@^j$bM zEmFUe?RKQy>I4?>cagS3*M`75k$#Qx6pQ6bXRu7?x8VG}N+;GbjI{SDy#nD)IDQYu z12~-DYUc#p;X3E(-MIF3uDIJ==eu0zAJcgVY{GG~>Z})?tRHYrz%5GKi}MPcKccis zoL`IcP8@gP{CC0om9_=EQRl=vb$-3ddJ^Gx;QT#`-y=4QZxyRVB8p=>j<+y?-*#MI zr}AF3qs&*qx9R*+@vp=$iC+Upb$&BAj^lT5d>Ka$j_XwB2XTH7M+*-A{v5}*aNNrP zet&_Z1bOeaLReS9J{(6CCI)cafjn;lzmB6D2Y;WoVcx8|ex+~&xCX~&g|9{Wqd0E> z)4%|Z!#F;Q;~vD#g8z)e`E5qr-#P&>4`Ke^B=WqL|H1E#I3C7P#{hmG!qMo;cL&1n zRQNfZ7rN5cBm7o`cY@CEvp6|~<4deuK^dfVq z9cF$H=1=gF<#X*FLbxCE3E8arUc3(a2Yqt-^M^?9LAn!uJ=z~^&zKvpt1x~s=({t2 zcB6e;QNB~&qz}IRT^VKsP-Y6BJbGn!k@+YRs@p9$#g{F@K!;eu0L*ic}hJoGVy8ac^cfh6ZWhiee%A;Lp ze}5199)Z5c72XW_Rs3y=8Bu=|dGPbUkzx7C)TjN(AG|rk@{f5v#AA35&EFN~=ZQxU z5lcy#vk(6YMIJ)FW6&$+&w)Otxa`jlF<-vxYVQWjx8r|0KOT*K*sYmmrUK>j`jybv zz%T5335MSb`9&(`<#`T*-mq7lxurJ3I&VxS0 zUE`Mr`vtiqeAt^Z_3sm2_@T%T zHMiRPDC9lsYVUIB>rq#K!{}$kmA(S6wT-c{D(jEKWj`V({JN6?J`eUHK{CV)dSufTv_w|s+l&d{?82|6N+W)!* z`uBOPzf-RM{220``27siB>BG``Q846ALEmY&7*PDPx*fW`tzi#{EwjhlW0H3pXqzq z|391We=+8B+%=zzA&yUOz|sI+vxG4%PP? zj7KHb!+eE3kf$H|bU^L>4$_A{l40$&@%pzz-^(z`9sBW+5AFXt);INkE%e{Le)gk1 z?)AA5<6~U@>6cM&ol72F`N`||F_hcjPRDp1!FYD4eZPUK4!Pt}yI{P(4gKkNrN0sL z-EFTghyFS1jR*Fz4&ylm{lhe~^eck)hFtCaH_ZPW_#;mLe~R>$loV@zQ$7WlcrjOd zcX~13T>A4D2*)uV&iZpT3_}stOJ_cQ67nu}=?|J`j=v3^#BU|6%nLX@qS!)jxrZa2?x|4Sh*>>B}#mFGF`={YLAk59IJg-Ab*c5e+c^G_W!>F{c!tVSEE1SzfLhH)Spj5 zpLe**`#R*`gw4?rl+XSeFZ?U4Cm2?1J^2&_)8eY{3Mj<<`o7Y981g&mN)KW@-2U0O zQBL_sGfb=Me+R<7bNZBJj=`ShL;oCmdLPDX+%;aKmm%ybzYz7i?e$0DkMwL?X6>u6 z{hxq;FzM>wXQ_X#`>`Kkd?HiO0kx-KL3w$&KkR`2>DZqm5QKZZ`z#vzRag1DF#chz zx4GyS>;DoalJ}&&m&5QMV?G^q&8IGwkM{H`e>3uXT>5?t?f{I9`&g{qgCB8(f$ zy94zdhCf7k(SO|ndl|&~6H$5Jhy0JiUx1of`Ds_7@u=(i)oain_yZ#<{~KPk=hw@u=OS$H_b@(gf2$hvKY;7` z<5b_p@o|OI(O-`%d>6*cxWc#lU?2PEum3AA?2Rk@Uq~N!g+Gq^;;!(ENFQ>A-+V3X zkt=*F+SB6-zZUI@xWYdwz<9gDUqX7dD|{KkAy@cUG_3kzs+f5D3Jml|j zg)c!k;tF4n^24t1N0DCb3b!B}a)mF0{DZFWVK4gc3Ws3-ysj|!B|WZiGs-ir@CxY1 z)Kl~Q&w~6XT;Z=F`?xEN>gImPYTktU;;!^tQT~uC{09ifT;Xh9q#wt#1oij0(l15+ zh%4-+d|ct5V?I^8!mBV|Ay@ckYn{?L|KNL||3O#!c9b7*g)?xy*A>18`s;Cp*CO4x z!f(d)Q%}yzYZl`%;R@# z{50}cyTTtp{*WtN1APy=!c9mIxWcc)cz9jmcOc#43V#^-ZCv4H$UoIL-~YG6a8J0x z|B3#NyTW&%y>VAKf$<)4h5sD#i@CyEk?#CBem;zUk1PFd^e5s9zY*;XyTX5h^lDdl zHQF0;g~!pppevk$_61zwSD-&$SNK|7?{S5X;duq=5R`ssUo8NVJ6|z+!RN)FTb4^QqYh#P4x@Z0Rs;V73!&QyVEqm%~c2+glw^VJb zX|CVArEzoZ=51RFQNTUxi%!i{*SMpxrFruf{NKviXd0Vatw>z3hq0kTl)W>&y$VI| ztwm+52qDyf7*qAWUH3Qcs;k;u-@JDxTfL*TwJKb{r+GK~(egmmeSrlf-8)xOQUxEG zk6wS1Rmn%HcB7!0mfd@*8h2Ig+I@dRV+(tv7C9Hx+D$?bP1@V&4p|Mn=guuHg+;s2 zx;>4xRZWdM(c#+)1GX&cTf=*9dsksqawoT}uiCV!uyD`rz35qU%L7gIo6w01E$7CT z#$6BWs&8(t+E%}P_nwO>>&BKnHR0xqXv{5*%~d;h*X?cEeG!Ee22jd23a7sAB8p*K z8tZFsyz!QcD5UVlhMMN8y82za_w1}{+TDCH!YK^Qmvu2sx|zi^H}2pJ*tMhT&YC+f zrnDPa+P!-lq1_i*(t4KExCXwbbvZ-*XYgaI#XRFKWgYTBB{R zITxii#jipcH`!%egiH#HD3ox0ZKJhhpQkN!*1?NiY?8~lxWy)^tP5Fek_x!c#U`nc z3tw!Kin-9mCaI8%Tx^ody5PkoxtNPxY?4d6n8hZ!q>ET=k_)=1#U{C^i&$)u3%aPq zCb_8f?se<@j8RfS7qZwS6>x!zO;Q;bzStxcbD@h(QXv^b_O>$Wmyx1fcbFqs} za%mT{*d&*95sOW7K^L{yBo}oNi%oJt7q!?V7j+SfO;SM@ve+aQaDj_WQW+P%*d!Hm zp^HsYAs4gQBo%ali%n7)7qr+Um9W@iv%c8gGOODi-m|L(`v}%8Wz}wb%W?CT-J!x8 zl@_kqQ?s+VswJeoxvH9`rrovJt*qLFm_LUxEcF|P1rWw9lAYvOHp~%Y3!h`UzpQb z?d_cRR_$vk1k-2P5joYv>`{w4|b6c|Su5Z~~zoT*Yt}QJ!dmuyY)FQf~ zz7R`r4NII>e|w$bVZ1=@qx#$z9pn*4CPBjrSE6-cnV?-BRp1 zU=O6WKHP$y&_7<7??x+MZGBzUUTZ6wgT>A9ZRq>1DrjA8gJNo-hREbJ0c9oEh>h;~ z)J>sV@4L?_i(|2)Y4^68rsk^cHO*8=RjSnYi`(9Q#apM<(X6cxlSZ7?U7QCheOg0kvTP1bomwx!jv1zjkts+tqJ(}M+BAlJDpRSh+}>YB7MdB(X7}g|(q7a)Kt7@BSu=n5cK)9ZpuhzzU#cl4U&vml2zNx;&B@U+p zAFh7@Tii^W>i}eA?L1*V&c#9cr^NBnT1WwxE>QQyTPHCl^`r1+s9;0xcCz z*1^-{3|J$0=j{s>@l+WWLeJ}VSM3egVlr+D-G1kmszn-!g!?w%iHBc>un~4%OxfnW zP4<3jQay`YzOa%lfhxPez_}E-cpn*yhGPr9t}48DTNBot<~_BW8d30Rdx3j4u64CL z@r>}EbCM1W87irJV3#GH#>J&WDL3!kR`p@D1(Jf8(12uDw$Uv~Tp1zN=chc&Uy^}MBF zQSRw$8|lTYw{4P=1V&ZFvNpe5X(lZ&9j9coWZ<3{r{r*&k(6n%Mf5Z^E|&GwS{KXZ z)J&nz+2f-78){lKp-)-tT#09IuFOJG##5xIOzswx&c!WQnUzqn#hu$4=H#I|)$Cb{ zjms7k$ZM15#VMm>UzuF~VzNX&Yl#o<-BVw6U*n#Zz3_DHC@zb0;;jnv;X4=IVz|^b zdv`Rr5*?qxUNh?E%ekknMhczOlJ!vh`*tp}Qr%zMY`NI??5g?D+%mI!S8cu1q`ftJ z>Z)pL@py7ia@-y)SC)Hu&#wD9`K%R>{*k>jW2xdDK@%>r90&Ap_pbZu_rR~%U3K4W z+c&`+)^4t-f@=;x`nKK8JX)}dZN5F!NNd=#yKeDI>&|@XqSe)(`I_eD+L~S4&3(Ez zLEm8)Yj(nR)4oa+?3;pn@r1pu@dhO9t!uoGXZPcVp*H-0MReT`H(&s(ns2oNJ9pn# zZ^v3zp8g?jNgQd}24^m;`NmAe^VM1+c86i4=7O$E3In``#<7tissFB z?b)-NI(H}ZcE_&0P}A1+m?9XpZM&Q6=N-a1Z_!c1+P!=BBzaO+?UGwv{Z8CpKoPdz zzX$JknC;=cEzQ<{aie&4vwy|~6$YG(CyGfj9;eQ0$AX@Y;&u?@1FzARE>yFrX~a{$IIiiw_VMn^XL>)91XC>-(G$axLNRXh%Jg;_Sh-*4w%3t;y}OP)X&@ z+by|Ju8gkLdoG*H2G1Eb7_l39Kf0^_e#aus->TlcYqxXj&ThHQT~b5b3G-b`ikT%Wf?M-`|8w_q$Yw8RPDhk}Y3;u&c z%d}EJRmmPj;SEU+hBJZBo^zw_^3I;Ku(;}us^*&Q^>~A9cT-i}-km!iu-(M7U%PQm z8_w2po&o}5H zI|W#``F3C~aszxYJXf&pp!Q&gx*7YZDuJ7W)?3?nh=5slO4=#0r$ku$i&ZT(+nQiq zarbqag6tfpUTs~7=(_qvYM(1`(bPq*GIdQ=7=66JU0)S$sDoUvHnqad++JrrK-hup zta|&jY8y64AwW8z+i{MBUAQ-~qPf@2*WYd0PdQp!Ii{{(-|`hE4dJ6=W`-Ru5j(`V zI4hQB+WC6LlVb1^JAS`7DVD6T<9oytqW@AmzC!F2N5u3jJH1qlh+|^bWp;YCcv#GQ zjU8Vp4vFcP+woh)0Wp209Y1i5%@bm-*A7>RQE^n96^nd!zOdLQ9v3~U?esFSLyU_v zV&GakU#oanoDvKCc6x)@Cr*gDYwYx`;(l>l%*wOVE5-fdm}u78>BVAL>=TcPIr(>@Bq8kBI*DcDPj>5og5W8|?HBF{{W92X9vVTWt=D2k<>A=UGhb6Z^#haY#HY z4vQmVTpSh0#3SOkcvPGaC&iQElsGNUh_j+8vD=$2W{EkXS1b^V#GqIvR*02igBTXu z#164X>=paO0dZK2ixc9cI4#bKnQyoI;SqC1zt|+Uh!L?<>=%c`5ph%;7mtZ2#FOHT zXx?GBBTLK{y<)ytB$kL}Vo0nM>%_3wDt3rb@qpMT4vTSdOgt(c7f*;&;*4nCseXvr zVy>7k2E<~qR4f-O#7ePRY!bs_n-~$JVvl%0jEMu{kT@d7#UtXlcwC$iPl{9GtZ0Jj zx9AabMXy*O2E-CED3*&Mu~MuSo5Zl#CPu`l*drbgW8#1~B#wx2@rXDs9v3IXlj4*( zE1Gwy|Ds3C6}@7C7!XUupja-3#7ePRY!bs_n-~$JVvl%0jEMu{kT@d7#UtXlcwC$i zPl{9GtY|i<|Ds3C6}@7C7!XUupja-3#7ePRY!bs_n-~$JVvl%0jEMu{kT@d7#UtXl zcwC$ivp3rP%n@@%ub3|uhyk%g42q>hctji* zkBY~{75xKpYYei^JlG7#EL-A5KoAc z;z@BzoE6QxHBMrtm?e6|Y%xd76}@7SSFT>A+bW-DprcsVx8C^ zHi==eMQjz@#E94-c8XE4SB#1M;($0T#>Fx5hq_`S3Drb!~t=y^bA#p^Ei=*P0ctji*kBY~{9uWJ*A#qq75#!>hI3^wu z$Hk-KG4Z%KA)XK?#gpQcI4#bIv!c0E@)tA3EYTz8ihi*`42VTyu~;Go#Zs|MEEhv! zg}7C$6syHLu}KVzEn=(KCPu`l*dy*2d&L7{OdJr0#KYpSI3mWyQE^N>B94nk#be@e zaY8&Ho)o9VX>mrJ70r7!USg)0E#`>1qF3~b`C@?>5KF|MSSpr@=h4)F|kkV7YD>4aYT%ZqvDu&L>w27ipRv`;)HlYoD`?U8F5xLcWGXU znPQgc5wpb{F<1181!6!f5{tzWu~aM*%f*mbAy$gjVx8C^wur4_n-~$JVvo3A>=h4) zF|kkV7YD?{;;=X(#>G)_Ogtivi$}%d;)HlYoD@%rQ{t>>HfwyuEYTxoi@Bm#^o#jo zfmkdC#ZoaOZWSxV2C+#Di)~^=><~M}sMsqW5M$ziI3ykxhs6;wE*=rb#iQaeaY8&H zPKqbRDREXb_;*|Q{2^V;6thH+m@VdrelcGx5CdX~7!*szGO=6?i522ju}*9do5Zl# zBDRWcVnpl|qhgP^U+fhRi2V0!D2G0=Upy=hiz8xO92LjJBjUJtR6Hh5h$qC8;*>Zo z&WN+3!M{gfjg!cKKZD^c(Ie)HUePb+iv?mpEE0>w5-}+9->qOh=dJ7kJu|75M$ziI3ykxhsC%!DvpUq#be@eaY8&HPKqbRDREky5obm7 zK8=T%DQ1ZtFt7YoFISR@vUC1Ox470bkOF(g)qm14D6CpL&pVpwbuTg5gp zB6f(KVpQxA_lv#a0Wl`_iT&b$cvu`3N5r@|DvpUq#BuSccuYJlPKYPON%5pOEzXFu zqIti@SIiW%M30y)=7_nXSM-bdVu2VCi^O8FL@X7{#BwntR)|~0O0in36C1=PF)X%- ztzw(lA$E#Uu}9o5_KF9@nAj)wiv!}2cvu`3N5r@|DvpUq#BuSccuYJlPKYPON%5pO zB~FVo;;d*spz#(n#VpYyW{WvuuILs0V!l`;7KtP>l=CNV6wi4n0w z>=gHlz2X5eCJu;0;$d-E92LjJBjUJtT$~V3h?C;9I3v!AW~(jlOfgIJh`FLy^o#jo zKr9lA#S$?nmWpL!xfl{F#I0hbSS{9x4PuiR7F)ztu}zGK9b%^#759t1;sG%x_KE%C zfH))`7KgA5KoFz;=h4)F|kkV z7YD>4@vt~7j)-w_R2&zNipRtg;-q*|oD!$S8F5z3{2hB7vP6%VD|$u07!ZrZVzE># z6U)VrSRrl|E5!z}Neqi^Vnpl^d&K=>uh=K{iv!}YI3mWyBjUJtRGbh`h?C;9I3v!A znU#{C=n-?oT+u7~#eA_q42VTyu~;IOiREHQtQ4!oIx#G^h^=Bo><~M}{bH|pK#Ym~ z;($0L9u|ki5iu?v5y!=&;xX}rI4PbKr^H#&{I2YUm?>t9IbyEp75!qqSRe+(VzERF zilt(iSRq!5bz+0qBDRS=;(oDL>=XON0dZIy5#!qhgP^U+fhRh%s?UJS+~2 zqvDu&L_8)Q7bisiyOq3e_lW#=c^M9frD8~|5VwkzVzpQ&Hi%7PSZonn#Wpb_c8Hx~ zRO}J=i@o9jF(&qj{o;T)Bpw!r#St+sj*4UAxHuuE^Zi=>14pF$AB%^~mVQeTSdze! z1ePSQB!MLfEJ)-(B(NlbB?&A^U`YZ? z5?GSJk_46{uq1&c2`ouqNdij}Sdze!1ePSQB!MLfEJ)-(B(NlbB?&A^U`YZ?5?GSJk_46{uq1&c2`ouqNdij}Sdze!1ePSQ zB!MLfEJzjBiZ6fiPYje!dU{0i`yCCvd zx5tbO=9(`LUNYlN^M=#&5bj2}+Z$e%7l?FpBX4(ZnGEag?7LwVJ%@~Y2Lp649O3%kk-pQXHb#@YKD zag`T2OL^gQD6hv=Ue8&|^PWR_F;{u9vy?Z!{OtW5a+No9mhvJhFDKI89S;WwGR*}4 zT&JO~*Da`P6m#cDm0*1B=8BEfRNlk+|VS z;zkyUi!Ty4s<<@tjq-K+=a%<$x-Ey?hfbA)cab>%B60bP#1$+O7g!{&Xpy+$MdC^p zi3=_gSGq`Cnc~hQhm&cx9C9N2x<{dxl@E1v(|*$y(+1)6+8}*beT!L!2@~Zn10B@doaa#P`>B!Nl z59)N{jd^E#D`b{tesINBbBX^ai6380Ik0{oYz*7r%lD>!J7GM$j`EAA*z$=(J|T0^ zvQ79)x_-ZTe$Z>48_b2AxbBxgX2s@9gGJ^Gg8}n-$nXWo@bDnzCV3;zUN6nKaFWT2yN(^PTcb*klll+yh`ja~-2Sky^>+O6;D3MIn4B)kX*zMuTAw$V+G&1u zHD%@KBy4GPI#Cz(<(Fd2p2C=YEpRL`0XdGGci(0ccRu`2iTE4Xt_h3<+dvtmpuYoi z^T6NEvN>);iJ*shjrm{b=cQf7+}u8$XhL5b(AQ6|Syy&tO1kl0>C2C$&L%$eFy_{4 zeX*vL`L)rj`ivFf``#c-b-%|AVLG(9vLH%|5 zM*UF{q87#%zD#qL^!rUvz+$+O; z3t~>vR%Mxud2ceYC;a9K%)!_boP*Pe(r6K6>kFi(`eHHTHGOM2{!Qkqew2qf*0;78 z>5TK6XV)6DDT;A7ndXa8C(g>pGB74@GEc7c^#+ZTW=sa=*JRXJmYJGmu6x*cZZEvk zRA0$!-ejKIcRl9%cJo!wI+NjVGGBuMdlqASiN6HpdCX@9eO_-W{TSr6+LdpfUi&8V z%)ZCWmX$0c-@NeXauZus4_o^t^ZdRYrfJnC*xT)9=PEzuyfJC0AM?+fo|cSI!0Svb8)ZGZ+DuqB!Ec`IF6CO_jaYMcg;{R(Kd8P_4rm+Zxj*lac_f>4L%z^+ zlL{GkL+;&>Gv@SjuvgE*UfDJ&1e=s^o_{pURIl=t#Z9ToOGUr!_CNjTL}J2P-;Bvd zTRXda-b}Rh<54GXx><80$DjGjaJ@4|lojKA{Xs)n=9q!5g!y{F7sm89-~3dj`FUY~ z!n=wxc5FGvXMSurSFb@IsxVhKVy@N&ev*h-^*o09SY{~F30wQ@+H%y(u?T%;*&1G- zBKbJwGLB{UsGT_9SE0UAFTSdHj>&Z56CmPy;hK04Pi&6wtx-}IrJhy0c1TbAq=wu9GDAFhX9`OS`1)c18J)4$p@KraTm zx#rqBc5rYp9lKZUU98+ths+4SOI^)F88yGmb+z64g+Za!?494$6&p% zW?ksUlq*bdCFO8x-|f8ixc=Saelv(`XV$#dth(Aa^Y1AO+c>5=W)q)$_++B`4YV0Q zM;x!e9Otu%^)Dt8@5-A^_+Fk(crE>B{OyV08!I(t1sKaRTtgk7O-#Tp{rl&Bh%kJg zCw%#zMj4TT>BOf89=GCRF-s3&PlCFhI?A|eh1n;D>*m6=-}cY)|9(C1Z#5tf)-c$p zX9pd>i?+(rht3!-(wgewnz{*k`&1wU^V(YXFdyB1j^pDvGRl$u=RhBF%+vec0-d

Tf(m=*A4uRCPSb)Vy!$@S9b&BA!Ak`cy{Fg+0r874gcy7=OyN*1T z|AcutNFOQ}ePJ27DBGA+v>7%!XBq5mUDS9U3apcCXyk53OmlWx%=VE4@&;e(Qb63y>tGo(^tEl<*+>u zKkN(Nfie8%!^_M}A@u7C*7t9a1MB2D$DM6*w{f8kQC@*pPF)YpRm%<6LFnBe*FKh& z_Ks9@y-D|TorG@Bt&dzYx&Cc6Pd(wq`dDL5c=9ZpvCO~O{Lr%%HqdKcSQ|!L*bn+V zYqTc$u_jTs=j}<%TC;osZ)zUW*mkao#$1lEnS?&s_WdT~wbrmy+%vq^1h339pM5mX zeC|=NiCyW%dbGwIdh}WoUs>c@m#`KZ)`hmf2K40xu@<3VgT9>8TC~5bo8m>Q~&wSPI^Tw?C!u97Ty2iF?&&j4e zo@CR$=(1_~m>-|VHIxtvVxdYkpBrN+9nR?A7>+ z4chS}?tu?ld7uldqq`F6yoU3a;ltPin&^5&ZKo~08@6kcwHM@relkx!<{tCe{j=kI z-s;p=${s$IFJSv=oaelr*QLM?F@FH{Q%+zv`Un5!xo-3i{>{8!W7oMR&(|Z{ta|5V z7_@9W<=68|TYkr^`+NJ|kg~(NKFIsUEORjG>x`K9n2mu<%+LRA>O8(k%$VS&KskIh z`XSVXAlBFXXTFAe*R_Xmzum?A?Q-02XTs-O0Uywq0>r0wrQ=>SJ*5=a?!&!arr)G2 z^MBer=t+a#q?forh3%SIAVS^Sbw%YRrpkQC?;jEP3JkP+qE8<$sS^QJ8|ZW}3TiNkh9X z-TGKcu33kCm!WN`{`NhWnH2NQLa%uX;&QsuQ?9w;F7xsg*8UW9Y-mqGnULSXy(a6R zBR|TLGJH1i%_}KC$}!vcE!jPnsIg?1gE4?_3%ykR6)WjTntDM!jP z*Q`hU>1FqP;^nJ3ws(W34#Gcz|7Je3_Qb=T-6mxPbmp}W zhj33;X`Zp{80)UL{HPIJ_vG4RvSD7Vi*;D{JZOJ~?ATV=F_!1pG1g<3|E$YKc`Y04 zgB`JLly}}n_1JBk==x+geMtkk!roc7ssVLCUfp0fWYrD1bwh5J-x0xFU_G=^jvwLF z?Y2`^9>{m1E2{Dzv&M~eFl|1sN#%IOe`=3cKgO#9V--SQ%Q058X$!~7UJva1Y9Gdm zwi!0QyPRt*Y`-;zUSqEX=zAx|fop&j4;zj0A>U`aQNGout>}}ZJ0#l^coo_cc$M1Y z^I&f;V2m$^tt;)pGYS7kO=rNoBi*D28{mUwm^FbhGn1G|&oH%quh~(s4ENzd(-BBB z5lIj2=mGo#-6zCN zI`&5C%OJknm<>^;8`wObwNBlQu)U{{g87?i?V~<{`*!XbTzd#*W9@qu_o((hX)$EZ zG{!Lve!bN;##8=7CvAP;{&fP^P!Dp^u9c?U6E^JuFYMCmxzA}f7OcRth#)_O{B8TP(CNMpQHC-=}_No>q!zW;ztVH%I>hv<{V&@S2=YahM4Zb4kb zf-u`Y{cm>LDcg|RPT5kflyf=yK-+UU`f(ZBpN{s2u)ptaX9T+{#n06GeV%P-^@ga= zQ;Bv2vA-KLY33`P>E=b)kFWG*V!aHT^z|OoQEVRam=&F)CJjtADa(C1_u|^xs9Vm) z{9u4OKsmFVOqBCe^qFP(JaJ3Md|q5;Hc8L=1Ln=kpl6*X4P2Ac06mLA&pQ0vGiA;r zm|s3`9D7|)4bm42{qh!Tu5r%6Z|g>U_unHg(lGvC>4Dz$nAfGDEc7im&7|S@I?_|o zmWAnGQ+%3v$v>M&_4_?9qQ;F$eM-lCaQBO25dK$t44mf;*fSdRLiV{BhXRa)A8P=8 zNXqjz%n=`aM~*jb1p7pr0^L4j%=$+X(3fJfaaD>b%(MF%Obt%kee~s5TlR-`$4SFI zo0(O5y2;41{lRNd4%h6ogX`dnrI^)uKHPgG&*_f^OdjTR@eY#)uE~EIvW{4D+Lylx z&qJ1>JsW#?-IXYZcHmsEN1x%NZbHA79fB;n(SMA~v(WST`$_mwD1W}4-$~Tr`Q_@o zmoWxe@QwZgYGvIsXn(gorw-;oZcs6~- zOoY?HY%rd`%(!*_zY^8f9E>3T+MH$R??X|_G}Al?+w$~UpLbrazQ9)ueKp!5>N9<` zU!r}yF356qPTi)A*yhT~d7a3@`oFfA{@-D={rSNok^Oik{3v8H|Ez`mqOQ=7=Dt8N z^xGGCx3R{}()_eX@Qf($quA#&Z%i}k-cpkWuF3DixK(4^Hu$eFG0(&+k6G&~*ID)f z`jOiA%LlADl)3gKo-43Sj?rSzVjP>vXIQ7pzO-I69JAV*Y+Z(X+#8B_q$&7Wpu5*9C4hzTzKXE&G}^@0LL) zQp}b9R6Ju(!+NnC_4xXYA@`cqs}kmg^-Y?SKCCgmSkR0hALl0Zg6j?ABfoOyqP@RT zVEP{ASVE?lr_Fi3v1;2VfX~Bgc}*DQmdYpaVjU|*zw%+LQp_uFUYE1cn$tnp)@z49 z0Q>fb-Luo*&b!`x=}~L!o$|bK?5AQp1HsfF^>ZvP-y@!Oy?M^g3!ina{wZthkw2bR zl9WG~ddB=L1J^j^7hAp{eK3^gHL@Wapo^QKi<<)Gs#KGnUvJXDHQooIi$TkV1kpdv z7p^Jma$Ziw+L2v?I6hli=Xp8xcd<6+BYmA`1NN7L*;apt_>3Rp(u;avxl_!w>#v7g z41TGY>vv?)3F z5AsbX-XEPzY>B?##8*uvDxyA9v%Cdqi;r!@8WVeLKh+(aF2uOX*TXn7p5yJraZG#A zH;(rTnDgnxHmrMv>(h+)D&EuFjAtC|!{^ZcVd&Bmrh0iR>Sp~tSg(B05v~R4xX-Y3 z275M4bK;jd@yOSPc+0oUkEfpNJjsA8Xty|5iXn>}$UYbI$_IJB)B zGxz4p9DqN={zcTb9_;V`n6_}}{U%Fekw|p-Clm2izMj(5D%^`^Vr+j0I#FSs7`z1I z+40aHK^9-cI=CA1Vnbjn<{o8wEU~(KIPrlf#u|3>QTWm^tofK{E?qCe+@h@ukj{L8 z{ujXqxCXu{W$HB(xkvDR0esa}6{siOc(3MjqXLW#<9SXS?ZY}q8;-pk{GNhe@+AD< z7X#*|o-){+e}%nf`-@=v-iC5$9}$l+>|48k zX09yk{cI>^zT?P~Fz*g@C918t!nt%k;yAX0U?=1ZC)Wzw`*z#r?rC{_+aDzRCDd2P zPob^v_-EVJ^Vucy;u_eq`TetU*nIA(Svm^8lVwgPQoD{N(z~M256+dT#Hy~z#L6z_ zIiB!zEmm)jbcv&2%of};Y{Oo|hQL*lS*B_3vV9qv1#O#I>`h&+aw4w&a__p#H0SMq=s`=qz5vR0U4wmIYb*{(Ch(r@`HFGt zeP~}dugkh7PD+r|O5r$hAwOdszv=fdnA!_GY_(z|2M9LIdO{GW+=|Hn6G z$<*?J_&mWG8bt;KJmvqL(0SUrJ9Zcw8!cL-+_UB^ssN2Bkx$^U>wih{9}p7C;03w zk=Wp8Jl}Cbf4Yw*zKG{p-YamOJ;yPA>>Ja3I3GYcNP~`e(|C_(pHEol_FU+TvOV6p zHrui_=C&y1%yt=57G1Xy{?57$MU)}i=qrwx$wd1A*Uq8D%LBA$cfLEVWC-M`xJE@WOHF_^vH$%4z^Q z!8SSVaKnC6wC#daW!O!xPgG#7d<+%9KPC1@YOO(icBZot=Voyp7~MHx|}EA zt7N43a<-e-V9if8PZk&x95{?V1WZqoJkQj|U*NqC3<;h~wMVZ-DR_Sf`+V&KjN^~; zjUTuB5Q3bjD^1UAu-=R6Ul8A;_#VYak-rCh&V;YcF~nYxrDI{G?>|j?$aOvC=9J-< z9m}Hpc&|>GIXcse`rJCh_8V7yuSR)8|1>|Qv~5ni*dDiyi(-w6;ayhRxIXOXyKNlX z)u3{CpEip94ZcSfGM}OjSbFL_FR=RQ^``nFL5!1aQ>jaC{hAk7M#CrYoHb&2 zFN1-^Uej{_8_lhr4LND>JL>~@p9l8~8~mK(T*K3IHX6PMzXp3-S!h#mRjL^ad-7QR zX!r*jyVTULYrS4uEP}yerLd*zgJL?$60~AI2-yKN_x&rgyGRUE8_R_&e96QdUm>(eS+kmn*-!9_OCg z-9O4;)gm%DU%B!*<6?3eIcCer(N)Ta`!%+XK5MN_L9Fl8QM}t>jm7!sXiz!|{YrJ@ z>GU%v@+p^o`tyn;lTqj=^>J+IM3nkSy`+wwO)vS5xucg6Ji!_tqF(y*#)jtga{N`& z%jJuV3H{rJGIoz8ZA1BYY4}cXHUzL&O1pu*<*R(K zn@s1v8~1}apQ($E?3lJtH(7t|@9p}zwy=Ks7+m9*v2LtS>DYUN|D1gQb2}a1E^w_{ z=*zHu)C;Ct(1ovFo{^hjOKS@%}9AA#5h1^X40G1oZS zK|b^5zU!s36XV0_T@j`EuxEo^LMy+qo|$?N{RndLdAz9$ZT{K%gF(0S!>CVb7!QuA z?TgsYG?>TzqwL53&X&P2e8>^_Qw#l`}i!%-gnJ1%dtPfXE6S`dXSfS zpp%$GsLzY~xL-nk%jo0KU^?bG+a1JyYBBawi?Ej(fQ$>!558|# zihh(}pVb$GjQe8-@9JQ$^b6h9kkz%gr>jGK#$45Y9sHRU<}0h5HnM#_*a~Yrps!9_ zd9Tg3zQx>N?O$b@jxN+;$sc87|Mm-mC>#5^y#N0K-Y@w)_9+g-Uw` zpt+D6+HA?K401E(u0z4lJ>=`W5%=S%{=D9Mv5%4Fztq!={rC-sSeH{SuU)ik ztUQz(%lr*&!Y>mCui|yo8~Xk%2jkOqsadv)q`mB2$j?YUPA3kr&MB6wP zJ>$0ijA8!Rb7ulev+eu0D6JQ1j$d!jM?1Yj=|>j1wpeN7i=^c$&ACS@`mBAAlD;6m zRPiUjX}6Jc_~-@B;eJ;c$1bppI#(H#2lbU}$NAV2ud9p$7tjv3{iANoB-*X}>alOk z%gDKRb=Ee=&f#vL%YBcE`=2h}pZf4T+voil_Oic%{lPkGju_nI@|oy(Vp-nnv5!jo zh-aAtTnp*Pv2Lzasph4ER}yi{M>>&6>%#qQI^Ub&{SEX#inv3G#8=?&^;!4H6N&Ug zEQjUIVDF6OIc3?;oxWn+YX^1o#=SE~?(CN>kJ2djGB~%-^*-E#HJSI}m*cq- z+mdbeMOW(GsYIgIe)n=Quw~ahjyPfv(I_BZMJbe?+4a$UlpT;vdw#|cQ zZtO4LbLRCP)PrY_N%@_Au&>6|SB@jpqob#XoC*m-%{(5#_Z|){(PZe_YqU@if;5bv^55yB!_$$iH&-H|!Rt zLm%g#Z{ZmM^pVfF+RZvV1N3p<#JdlDw#U}pRzB;Rh2PIOXHW4s_F?UE_1~+OSu*1D z8{;~soO=J(meX1Q16E2;nJgw`_!EZV2 zDkBbGiuq{Z?MNqON;j*3sUU&$BR<%E=-E8r(Qk_zGq zpYQxaE_nZFtvAJf&xp^1_%0d!iuCTsy5EqRdeAD%`F<{i?;8X?-jpX`?^FFuN4?#s zw;S!S?00br{hrh=51s|N>+s>31;>EzGU57ttmCKfAs4%z`exMEW3ImDqOa6fKl#-;oi}0C#InrxDNH$`%%V)Y5-a;|WFqK{6w;kl^we(EgN7U~)EIq6P2%)pa= z-p4Y{mfNX&qnT!X9&I?=?ZY!v=8YlDb03~*Tk!#|$@68fU$nWl{O9)%n1|!VIc=9` z>(0Clv7cXszG};S7JV`wd#oEiIr`H+kp3~-pT>Ryo|k*ma4%);!+VttZ^VYxF4%8j|orH-(@=&Lnm>@Rf#^Y{?! zVZ9t5ww*HIdrg!J^?~Eki+0<3Vf#I7ckndr2<0aCFGu+(w==baa=egs41dLz-$HpD zThNZ4xqJts9`qOa@%`9F-1i>D*z7Y5b6lv$>|eF=^L{%U`FU@euIB)}kA=Oldq*E7yH#{B?W=Mau^95{EW2mJn)y1+bk+3C2?J=I6J(CaA6>=)<9 zh<1eYfwq(WAKTE1dl2d->!2?dfK8{3vD(ua$9?qbRqQYHwTm`^ZMOXbepCA(%jzzL zj^aIsBKDL1mu)-d-`8Ut+tT@0r?!RrDGS@e`Y(si2gSgzJ<2^Awud2pdxLjowI7z+ z#k$!hpVw{=^RX>#gS~gIbwy*zb;*N$zhoboYbxI}z<6MsQ}DiwGaih0o^iAOf5klp z%XZpBxt!@*_xl0vviR(rVMmYny!>qGlwoPyk>SB8_jWj*iNtcedwUSi!Zt!yBZG-V zhJTr<4FoZsC6I3^b*vNX1jgH#hX&Hk#|E%3j{S+q0MaZuA@AJxJ=_av#kZ9y*h`^q z)8F8G$k`U}#`yDn2xIFk{2H%0*v)ci)BHGRS)5mVKZ|P}#{uoYxxLTg_(7+R!)krU zuy7pw@G+9df!|BA&iQdT^R@1AaF@mRDHwLff&Tm1(m4(zUvkEwJ<9I@I1XOOp1RC& z2tn=~g9^$Xa<9f--g3ws-$o1~&XPIuSTf-|{gihD-ur2S%#7)S%ro&$ct7O+1m0CW zh~qKr8$N}-x~DNmpTORo{f$^L#)9u;abElw?@^%*7{@2N|0S_4n{$Kuxp01@V}5)e z@?$%g|8#SLX^YJX#=Gal5tTJR7O7oly4F1w?y|}-77ROMfw0v+r>@1)ITnGxoF9w0 z#sXtFHx|VjixP|l$AII3b88HcW{p8mV-SMu7Snn5je1XAr>uVlSyNB&_Y}HMo<-LD zcAE7u|LJ7Sw8do2c&GogKh%4c<(BoCu64`WUDk!_{pepfvOe2dZts=sSAMQNT+6X` z3_5E$*CD^=2m3=Gkv5R)HP>;j-(1JJhI4H{(;CietupY8A7!#0`TF)VeU{5{Khru+ zT{`jSPXC^W+Uw;uYkj1B}_RRb<0fyp93;(v9)$N-Z^Fat$r<#X}Ve6 z#dx-X^5);#KwHpmew+Vblznjf1#ExE7j5~{x68Nm!S;nv2cAK=o~PhBihbXxdy39D z!UrGC*1Zeu8lR_F{=FwPm3|D{PyfZz1AbfO@?F@Lg?5l_W8d(-t<{I=#J%_q^)C86 zU6kEQ)J30gq1+hPif23=d#-JZ$&KIjux#dK9`~~v$G2p?Y!~Hc|D6(BZfrl>cBX4t z_UUX1(-yNOjCb3Tzk)4c9P6{k|NMLz&ZmMoUAMnYu0ww;`Fo8um!0~UcUtwi+rfB# z_rN&nN8J~a^@ILC^B~=NMg^G+nyzJ*Zdmo;o|Af!*0s{S#-$r>z2LiCIc8rJ@5-A1 z?7!XDyJC#z9u7G0-=PEereuK*B;Q+{`}ikcM|~@jo+r$j^<0m>iS>vw5H7pY%v-8t%NyF30HF5St0!PXsq%SPM6@7NsO;kRt~w#@Q_X;<93vtD|$ z9`AJpa2;i6=?~TvpJiJ%SvCdVhT%TO-XGz+_NU6a-O9Hn{~-1CjCKWWImNCp?re7D zQt1@)(yln)B+{nvJGmbuyjM}LjzKQGk2#x;ovs|VpW}bcS?-l62YbG!C(U=xu`j#E z>|FHCJ+6+eVA&U9o7`pnv)Vx!Vea(M&dfgNtn>Cd%JJqpO8>phgsiocYbe*x*BP^l z>nHXr+wrchCjuL{)+}o;lI?T+7WW$IMH<&{=bqS>5!Z@TtQ-9MPg;#rTgzrg%{SHHN%+P;C^A77-$?8UPc=bZ}LQoduszVTZE zzPr$3Rvon09WU0b(e*m~O)IuF*KBL2-K9+4j&uGk0H+M<59&K;y=#H@ zRrsET+b`q(iY=FF$YooX&sz;!Zp($=%=6tlmN%~h``|xu9jT3S-zW<ckC>=RpmlM(rxJpQCS^JVb8n^kyb>chIgzxkDEo`Su8vN+4^h`xY(>Px-Lj6d)% z_%7)o)loO#q%oe){7#n!&n+pnGZHimhYZ z*=*fT**fN>twTSt&+vtA^cDBGFLa}?-Tba40KGzgu}^6G&>`s6KkC`=UVJ0kg7#k9 z`+RDPS>Jv%QT@7vslc~Y_|7G9rTzCi(SNpu&!=;+wywi>Ix*-p`)16ZBtIdMXwLgZ zq8k0S*N8ZD)LtX}@JA;sUvS*JwR;%q^>|vhSuf34*bmUzp`Lvn!UG?}5%(g)r+P!l&XmdNp`JkPD zBm6t-`^$&rMD`@R8&?dR>+c_Smo8$Bi7UpMrTAs1n!{-95 zgYWg^!lturcz$U8Z8s3>`24%8yskvou^-NL^i_Br+G|}0T6^(aYn(m!^b5T1$Y*}L za9P4%&_Bu+rM#uQA{`~z2_Hyxe z-|!v)^v2hi}dwc^mTK?`Xcc#jI|}-_F20r!PFg_Yb&V zoP#>E@V8R1UyOC}IqVr@&mMpO!LmL01|0jxkMg})r=HX4Ez?WRus?!+owBww?rdwj z7i&AqW?s$<$fg^z>4vPjA)ju@2W$PaSnKUIy&7wJ8+?+t!Vj@+{)_E+FB<(%^S|A^ z2)n)d;Fn;_u)ZCnFKXM^IBe{Tu(9zZ8_RnOUdMj1->2JuIiI#UwvK(`n&Vr&;{6ljXm>`R zwDp|+EWc5)d~y2P_y#Bof4}8Dc;>Mje=oyV%;%o`24%aa#C4CtbF7U>mDcU zD%0Sv0kKS$?Ud<5`A)fMNIzS-iNuouwlzoPy6b1WQT%VyT=gu?)up-W+Us~V=4#GC zd#(mu^Uu=%1@X>&nS6Zl{Nsv0-}#a-hXemzYa9O#*wWgzw6<}*e6`lL$v?IAzf|)j zVeEBeT=Bi~?aJX#@ox%Zj>3=QcQZryhULqH)!37%gpaosK3)ac0=qshszK zeVr5V_YOYlpYy#oV6S-#{zmK;_;`D}8u9l;=-;%O7WjDE9(lXv^L}0!e{a%$j_5oG zL;p_k^BBkHhxT)@Anf<4@9N-h-dVl_^ZGnN>|uNXKHul@_m^IPzjqk^-t+MHo`b*l zEc`v&*K4qRz5Bb~hQGC9`+6_Ce7%?9>uozY0-t2Bsdf2!6R7{?F1$N^LB8Jkw$JUG zE$;7aIE}wmn&hidd--?NDSvmF7w_+#x&CwY_m2LFJtxW*tRW+c|81QUIZJaQjdNjX zPR!3M?#nIiSJ`v&T<1i**PavQ3+6<>;+;9cb)niEeuZ<{#2zZ;dVzb&r1gPo3D*#N zov`B*+uSyM@pa+M_u>Cj_5nsdZO;Ld`Cw@X^T3CXU5!~@ zYCVh0%qZo3Mz8WP-TjO*qWIsodE#A~Crk6>RlWz`|A;+LDi+LvHpQRsJ@tR*ezE_5 zl>RU67dvasZ}Wcf{%%|Uw=UFw#baHLRw51ej%WNPs9gEa_nRO-yW{s=tiySixCQSQ z<9*^o_#WsWJhQp)fucA+pKpSyQ6|U0dH=_~AJ2X*>=XSL#{K{PCdhPY?Z*B3G3;r$ z-+iL5+V(1Z6I2J;xZnNtq4OU-H|DM~Kz6o0FTK9bh>vw#<9CKmc1O=jw4F7w-32OWQ{7q1@ zEYI(opvA6rkHf3+ZAAYkoN;({z6qkdU+r&#I5+I)%E{l%o$oh6$?{A;Wl!r&-vljo zt$QqZkM7Kg#lHDDTRQJOaz8#l7IE1)jIm``_^rmdeiOtoxX^Ec&Lr#e`6g(gyxh9V z{lhbT6SUa1Zdtp_y3lWehCb%V`fO{t{qAZ+`MLIFLm&B`?YVptv~V5&zwEsac$`;t z=YMA;JHj!|*j5|`OgdwYWnq~h5&?p`FtwH72A2xQ1b5dFyj>Ga>rxjcvP{(? zG$ILLwrM*^wsAm63OFHVouG9b2;FoW+5ltL~^FDg#eeZkjx#ymH?m6e4bMLw4aLvnhem+M|&`k5VchZf+IYE1#!<-qk`p9cD(MNDlkqDdCzY2o`<$RX7bz#m$&KeG zC#YN=MD-8Jl9_UXDt#N3C4wdWaTj!Tynb@<*kdAmulsKb7QlDDO=;x%p1x zEFKq6MDu}OOMEMP1E<+fZbWgA+CNJ9G*_{1rG9uW_~0@h*Sy;6qwH^xqfPk8+@1rK z=4Xu=?ad!}b9OvZ4mTQ4nzZLK3*Kz|?Lzfr#Wt%h@rHO!?bL6L!P)Ru&K0_LD+-XG?8w?~KOWxG#@-zOvMZQ^Cvp^KQ`wJxo>rP=4JD5uAc zqa-)w52W}2+0M%GQM{*ed}Ifcqr<)oN%Z#Vd;DaX|FxG~c^j3Ju7)1dvdfNS^Rm$B{T08&k0}8m=K%EFUP!@pMU?jK(;7X+i(%`*j{psStP1q_OcH4_`1|e=ZoD(OwD0kcZ*g=kR`o@29u$PW`055Bb>Pj782Sgh#g7G5QBn zFrwu$Hs>Zus+7a+@Hk zpM|+sa&q@?I60~L3wUGl`=*hLAs1&gd)HOU#mPqaD%Dy&7pFLe&%HO4@HzSG4xdTz zQ5|KuIAdymc`lB=8~5MI&!l!pzDt&`p)FDQu6e-vw#oTeqkJP`2#aU5=QTg%vWV1O zVSl~xpg)kqcQ}JYRIH%vn6<a02;~xAHL=@FSjr zHX`FQ@pH*`?XRQyihWWVe>fL7(n|s_ie}>HdEh1+Fp8Ufhx|#g_oT+ri>BpdtgXVw z9n;2<_D&Fv%1IVnU4gGF`RxOK>IapbK2}^E)y7IinDAQ1uA-hAd{NQ$67dD~jp-a* zHZf z>lXN4F|dk%4e?F0UAOKf&xv#WY}}`EJa?1l^jhXXpXW4ip?OY4{wtLU@+q&G!RJGp zrs+a@b}svDsgHkES(oQjIfh8KzjB<|rDveE%3P(KC1SirmFKjZJSX9+_MAI^Y34cu zuZjkh=bK{8Qn{TT^~J+vW)$4?EDAF^-?U#~?oy@tqhlzFkLuNYWATA+>)sv4&g^rS zdZBNyyL6xO_M38-G!~BREW(^i?ou_l%Eb`eEgo*PoSt|1=l@#9USbY0Bi+!ilD}2` z^ZeNR_dWLd|En7(eUb4be%@8~e2V|eo=dh^{`b%4!vC|)Lpq&?&<$k$N&AF|CL*0`QJYe{Jb8!A>z}QDb@-i*#|O(~{GfmSuaU?eR4{spF7{}dA@gh>_o@fe-yrd_HB;u?=0i#N&h_X^iSHqnf@{Gb9Fs@=6$Z8 z_itVd{d?wlWVZTu^A^X?`3OJPncwMGyoF+*S`tsOCLsGVZ?uo!YHUgE58H-b(u%)c zd%-FeSN24Tn1f%!Ml|N3JUQfpjeYMlanraeb=a6I*}Gor@OF)bqr#Xjn(hON3EZ8OQGsl!9qaXLe$xbN*%tj|+7c{w!$b>@bORddJ(FOV{hT@xrb(S`wOP+F$M)86FHFe)p>{r@2mwxTCdwM>U zhaQ|AQ^UI0x`g^wed_9&M_=4*_Vz8J&(o`xaW<*wp#F}=(z1WFe)A=r$Xg)te6b{`!HI)(@IhW`Y>a4~kAB^_;2O!kLvnO&iqDwPu*-L!6^pGrH8q zd*~cw&kxY${}lV4G2r@MXY&e&x%A;t|LxcOx8mh!p9&^y!CxuQCF159zDM8c@KJpi3Qw`O^UT`TOOtW|I}-5Ic^dj|CuMZG`+XK4(MI1j`|pICz6*UV9Cvf} z_io_XJ|`c-_BVDHykKc(;}O;Vx48CeZTY?ImG0W-;xaTh=v-FujMj*EnVxKUPTwB$ zk^ZIZqpvmNW$Z_xeZ}40;LCf6&l%EpTE~2^sTnH&*5a0gF^Dfo@jt|sDeh2b`|5j@ z5uMfE_A*=*>nMEP`49nTossBbA9Y5AaNcDWSv)GmKJGEM5zm(K_^<83AL;R5Yw-`? z7TYjAe$utW$;(vPKEOItyu2MdHx+5V$Mp7V?OwEYZJ94x!^7iaTE}0?{HAsk%y_Hz zbAL%JZuh@%YxbpQ-blviym^Zc^Yjl2%NMI0-}v^ImM>rDfBeQGUaEf&JXFNX#TPWN zH@@)E-uN1yf?qJNxF(fd6n_cN%KNyuH>a`s0Bs}&(8(V4H}&LF#B1m~jmt{$2N{o- z_`IGm9_4e}Rxi_bF)>JHiPv?;;!d028y|fy&wcLDXx8WdmXCucHWu4{*vk>MU336n z8_yYHlXM2>RkU4gS?^<0Qpi&M-otwR2;V!N(0Fs@#v{*EE=##1k!RvNJ-;vVtd}yP zRXI(+4NvVc$x+F^Uj8dag=maXjgk6DJB|TMxQBKC-;E8;1ATcr4+!rGU*`@puSqmi zoiVfg>fL6MrJd-AARZ<5ZL}O0)tP^@qg}|=Rz1quQ0@~s59pb9TX`Jjp3qM=SDSuH zP(SnQsOqWISAmwwpD53r5X}^8t2r-})3ai3wsL?t|Dn_2D80CiK0_C<<83wivG5bV zt?0w*+a2a$I@LGf_U#^Y^JNO3-3jU-PRHe(Fuqhz#`nLTTU;Xa6kqQ)31U}`jiXY% z%gmCdDH!a}OS_SMhPYloZuv%V9;U7o=OfrQ`Df9(oKBlT7ymr5wVx}Yi*#9w3*#bu zBe|q!MY=eCRiA`1!b|7HtDI=|@Gll=#xrQ-;@Lzy#k_?WX2E!y*~ghvdDG2Vb}ukJ z&F{0ap}vW=EylpLoH^CC_z~K4nbBEPZ$BP0DRj@bKY6B*gtd&(bG=VN3)g02wxe%e zV(zf`)FKCyJ`PRgh2wVkQY7?>aeIEBzkwGQ*uS2%<8 zM1QJv9rWIo=J&`ybCw&=Ms^zQmB0M9g{Ensj_+!T%h^uMe7C6^UC5cf=yIdArgrpY zv}-52r_R-Q756%0K>aG(?Jz5vgp1C@5FR_s;wJT@;;kHxt`DO0Rynmfj6w8A+fRBX zdg!}2^P$Qmm?srGtGS-3+@E7=tX?ahDt!VkOpmh`KPa~9)scBF1@2kk{H)nXJfYh& zUu}AXSZwX5uQNYdB4>X5^i=t+c3#vs${pjIp%A|~k*uZv)3y&Tp}!QTE852_tuvfM znHf1#*jq2z{64--n|ezx@usyc%jQmfuXAnGc1OQ1%57!5bd~4|--?u>lTFaOW~*~f zZg70Q$Ld)b%a78{qB^JGN(a;bpmRzOok{QP^KgZa{Ekt*bH~)XpPb%#@{O+D(mMlw zGwGe8kL1F*|4wb!chUJ+I>Vk>=$$(vFwkcQ>0{;#?Qf|w8=cOnc^v&sc{x)$YZiS; z`L@zsr0)cqOgf{=OHV`J8r_Y)8U0TDqrMaVr*3fVmd+dM4s)cP>yc;DZ6wb$7YYaT zz|r!#Pq_S46=5^>k{oLh}et`ZveI26zWAKmKQbPYe z{87ogn|~v^){)+#td~rX4)wT~ktyV5(6ye3JX1O8QInBpLDzaZ@~m$LT}!%^#(baG zwWM>2j}EUd^3iN{t&_e^=~_Y0+5>L|+KHYBpsKo7o3C@Wx|Vb-_0tyW4gI7#LVe|D zWIH))@Rgmvt~K}uN0%Rmt`+DhU2D(3VO?v>^+lR#Jj_McdOxyCbLqb&T}yG^v(>ef z7xfz2h+Z;KLDyou%uUxS^31t)EzNIp)wLAU-CSi}kWM3f71u2t3OZn$#&7#$^e(kc zxl318`PO~sa-Qx-9`W6I>0ZCiw?X$}awz$eTzhn#=_Ua3DyeOBfi8D){h}je(g<*XuPg}eRRC` zz>mW=*QuQ`*fupbKTqBrK40LsYh4R{F<~}RwgbGg7Qcjf55I37XktAvj71t|uz~IQ zX|=3#H8Czt-)-13#AiL6new~Ht}p&JoOL&jJ+HH`=QH+}4>X$N);`7lHj*W$3+bjd za~m!nLw;#(({g_=I%TlU!8Hf|$Q)d8SZvyij<1`b;5K;(K|#(6vmkx6nt;m$IXRaq5&Bs4&~wR3@quhB)ggM@=kUZo@V#)3)~|PhsW@2SG2wYg z@WdnOpLIN<`Gm68CemI8uQxrdtXk~~a$$0$l3)y>r z!%HQ*YDx!wY%v)N0qIm zT|X!+UaE3BpFRzrMAw!q4U-w#}~W-JUWZ zXvj$wT>0Zv=3M1I?#pS6&S#9Od~}@tGw%hje5~E~8po%yJ*9)mZ_c+?_R7yMAG-LX znoef$4Y~JD2Ek<|azx|e1!k+QTe4m@sP>Z}XP$MCapaQLh$d@vj_?l(_|zHCT4T`o zNHO@-4(X)fw`^a*5Ugr&G)^Yli{npYLU^iO8h_`)cb>;rvLfo|_!o~~z(u&JjPMkW zuB>D%`@(?37LUUOw5@}-@~H|3txt%qYrv%)J+%$JRO=L?y=18|AH=Vk9bx>A;1?S~ z_KjpAnXQ+&AJwb4jTghq$fHq+$@#|`qjC87`hje74ZiV*fb(T&bRGY%2Oet@&AK1L z-8Sv3@YQguLMie#uwS?h@9* z7Ge+43-DhtHcYtbd4LmiGmT&H$bmAz20c=HDewfS?1vjcgaibDG;Tjp39C^9Z~zWANw`$?bick z_N%_v*p0SVx=Ivo3ONy#zfnB?kC)Gq8|gOJf0|1!1%~iR_U*O$8fzuk#y^)f=Itfp zRk3oEM`ldc6bfst4)Vmc4vypxcpzU&_p=D=eZem^K#W#uaKbz${zrdM`{lE(WA0Tu z3I*f=@qjl-zhJMGTC*vwv63B!Cpe$e(d(51b!Me4zrai~?`KRFtkxA-n z_sw4PvA0jt$26Z_?dK=;OUmMZ%V;Vq-C265;{TRI3*HTG1X>246gnGpzXJM7Ch2{4 z5Ir!V_Z|H|C`9Y6tOx$BkNqpxZ?p%l;5k`0^WIRBcje#zDc=YFnn@3OXqM%qF9{#< zKos6Qzg}PL8>d@DWvgVtPgRfwL3a|&pqo{az0t94=l@nW{_L6ve9iY`lE;#{lD~c} z%I1nPe%yG=PT27l#@c1X>8f7o-&w4U6zAGApEHL~SREBu%vBl2l!;4Ul@5}Yob-CC zY$Mr78k>pFy4blBFE7pyiiOd+cG4AupW=rVhpM$3%@1~NK<7|>&3zxCt}g1LzK4^3 zylW4d`2#;JOw{Y0lkJ~Jwtp@cU0aiWMN#b|1E`lV48n$xi7#^^7^@ z>Jj2sN0MB`e41{v7g^`lp7q_C!n*oa+va$>8yUFWD5fr1v%|RdK6bTh?+N6$##Z{M zlcDLOr7~2qQ}RXl<^4D6yZ)XKb5ra)(Ms|j3y8Q9=p$K)>})_skgi|LUZizq;|TsZ z+L8fx^-X+K{pIvTr~j+2HeZ+56PpEFdSNt|p6IGw;E|{;kzLfbPZEi~!J`i7n z+;6)U{*9Rm6SEvsN~x8ZzjGvID;i{kqTzyI8w_jJ5l1(Cr0`;Up@YVl?Ir zOss!_lYchG;$dXdwaRo%$v*8t!CjWRH za%qBCWEX$2gnbL&Z1){Hmwu#m_5^k=^IKb*Sl|~k9(V>#^NWS6c!Ib!bd+=JTH>L9 zLO!UxbOGU|SYE}XNUoxzPtyZ5eh&Ecym&ie6)z4q0i$@ zMY%CFCK)B#L}8Br+u^3Q!kOiac*d+Q$`;9z25;X4`2r7G8;&_)v2q1!&6Ugv^O*}X zQ+_bIW&qh{_mw+e`&6-zf+N|9zkC|~%4OpEmMGrpTenUud?kw#(m~NZG)_6|!_I*V z%WMX+e@-In#C?-dE zECUBCm+^;6m$GBpj`3r;XiSp$B~72=W3ufU|VaDSj z92Dmktv_0?V5BP8m#QcHsa>aDTBNJ!cp^J!VYVKP_lUNV=Zb%jZY^C}G-^M(ylEPZ zkYlY!Yn#4brg!UEdqnT9`aQUGdt9_8Bblo;7s;y=j3w93czV;(ZRrz7d($1@rnQ*p zKAJ%$^8`B-k!yCT%?xqBBV4`!|7vGGG?id6{dczmHhhp4oFEsU`?8ul& z4@v)%Z8_g`Q)>o$e7cP(nzljP&0kD6F&A4oEBNxM3)bVe?z8i9ioVqI&0lN+hhw%c z9tNk~$I>=#N;y4x{!Cf<-N!=tz4n{lWA9H(WW%(a@UmG`gUx`yjot~Rb$a=nV{)m-biHs3G0 zer!a1A>1_wizaQfU$hE%Z@#~@kGt=Guf_YY#d~P9+2egj1n>Re-EHyCYt8}hJb359 zI}hG@@XmvG9=!A5od@qcc;~@858iq3&VzRzyz}6l2k$(1=fOKablBqk(P?<6%kVxt zg}3YDBfgK%K>ziTK0Y$7k6rm=zWlS4&qT@}t5W{N{Tt!Ab)zSJ|4Jummt3PfG7dUq zphIR9KQ8Uh(EbeV&(Qu1?a$Eu4DHX5)0P=+=fb}+n&Il;TFDq%5xpyI?Oe~HO_T}>prey zToYU;OlHW*j`>y=be7S(|AD|Kj(+(E+?bk#9$gXo?Q?C4BU;b&zZ;q5dJgxjk zawp)gaoXkZak6Q989w7v_<2%Qns6Or-P zvB{ywPH2pNyhQdrT!zPECjuUhj*}-G-JjmOH#bRH@u9}^cCw6}?9gktUdzS)zU;S?9b!Mzq1SP- zSMSgcT@Q(_cTAHZr#?p@x(LqaoxTmPn>?JGEbcG;yOlF%WE>`Nm1lE}U!vM-73 zOCtM{$i5`9FNy3+BKwlaz9h0QiR?=v`;y4MB(g7w>`Nm1lB17&xg*`nf35ZQ@xPyI zkn0Yv{akl)<+%=U9p)P08s|E~bsyI;t_iLaCRrl;)UE_{iO!RceEE7S7xgZN-Zsf^ z=^&3nlVpU3lhDP^w`DrWNnidk$~Q#HpR7YD~LJf^YA|D5&Tpr5w&xcA1q-{QB>Ts5FF_Wh~jHTpJ98DqXNCKwCZAAain`0=>j zciQ(~w>s=Xb9wPSIof*vaIe1qoPWQ#_U&*^f73KStLq^;~wt|KPt0>zunHa24yYfmnx5VjToium#ibC;S9YYezNMqJk^iTyQ$AEKAyZ z*|W(A%uOCg;VhWKI|_3Rcnj`k%DLy)^$YfzqjB=Gig^as{(n)?P8M9j6I|?B>>=mh zGuV!TBi<9v>+ySbu>PW)R)ZbN{>A-C;*$CpXXXp9v3WqDeJOkrVeL%*rAEI7q;D@% zp(?SBdhgfJ?3e-$xtDJJNVYb((GR7*!YaW zUg_wlcyQ6NdhT7;**uIR(Q-C4YxC`P{MHD~Z}c$+Z=Y~+p{0IX?Z0op0iQhka5=xU z{I066ll8hS{+;@?YxH1RxhQ(q%-W>l3G{rvUr&}_E{$Hy9=DtywHN;Zey9-ZNuMM< zZsN5RvcU2QF@`R8Px)HY*Ljtz6{UNWzUqU;75YGZi(lLNzs?j&*XExfu1h#6K1=m4 zBc|&c^pn~Y?I-;f4|n-;qK}?M+f!+cQf1Wd`ZkKI4%l(Y5CDGR0xqR7$57gqL?`@kL?K+W8b{JFF+wn>h zyPoyx>r7ow#~SVzuox=8FfynkJbNL}^o_^qZ)_7uK%Y3-&0;ZAY2u* zm&zik(Nmrt%}jmwC;q$H`fBgIe0m>;HHc^*tKV%O=jmhSqmn+}@A~-XtM>6*>{^BE z<9vla&d;Hb9Y44}9uiN|kDH)X=KIV!S*?GHCXSAo(OPV6*3&Oq|DGIO``DU9^7?u7 zr+Dbp=+?*9nB~`_e_W@2F$wy#A={xc#7taway0Xp$L0IdJ%o$;DD>T_$b0pz-p{u0 zCYKcDv+CCP4EqCx^*zb#uzyhMFnx!NF6legv$W2?wQAqF_5aG_lXb#bj!%u*C%}<) zrFb{;*}}tzm-O{&PnDN2->UD7Nq!^H`DJ#jFfT{w`ic^|Ce`oL`WK;Y<8vglwRe#A z5URF+kn5i$ypn`hro$o@)a8L!ft6y8kera8y^b|W%>{uk$nl@X7hhv6i!apHV*e+< zuQTyf{}In0v*m-w7dbwV&LQx-7>Xx3R`djH&%`J7XyCt|iw0(F8~LZ}M&{Y)T1%3Dak57G zs@8->H`ape90Tn}mfb3N8Om&W&+_}BBSLGQWX>5(+gR&aH5=^O~HZHQ*86Rxkc z<}5$H)^RMIh}9MSfK}W?V77}(b70n%0WlBzeEb&lkF6EFT|T_eNE5ZxHVSh z2D>YjOxnE_@|P9)rW5`RyrVv}-_d`nOLS5_T9b3ScGA*E?b#B6QO*NbPw~Lsoch_A zcftdEsV9@)@zrhg+qx0)20Sscn*YuAe+O~Atlx9aNvioN`t)Gd<)QBz`4{4IYFY1B z{~t3Q(EpwEKjkQ2t!(J$I{LZ1|J9adk^ZmL_sy|l-`Dldy6;Dt#RIWSUUpyT`_`W- z_PzX=Kgqs7@WNu>x8eUdpT6(%FvQFA8NXTs6dduhcv$fo$kx$#BF>mQu#&h?YxmT# z#wWhg9Iky9#A`cPL)EiPM2~em?rgiTw)@ONhqq#xm3OB#&mHFOwBlGoT#M-H@W?wI z68*&TGy19O5dVjI!#QB$@33!!+j9?|XN|DZoS`_E1UAGnbj*6?p9qiu_f9%%2>olIA$s_omMQ?p$=qIhI&m>z^Uh+ldRZjHPcY;+eXWBhpnxE3= z$!n(T-NOxhc`@5J7d{-XD~^wg)jlRD`=_~2V{s8SNVs1dxnFIR z_cO$v5S&ez$eJ3n_pp-}d+*cpwu;Z6JDBMRZY%74sjla6GsvMs#Ls4|wk4fwA{D2- z!`Zb<<7Nd}dhFqcUUsNnF^l0F{a0D_{hCW0&7*uM9og~?@0a=aPejIC^!=In?)%9q z@1OARpRV%$n16q=%KJM5eE9tt(8Y}Zua$SOx2yI46OGs7Saa6ki3cV!RcB@gTzm$jk|pP zYGeI*wz1X2XrK*(QQpRce=i$D^>nkpj_eHaq~xynQnGi69glmlL3;aZE5xPM6DL*a z`Le3doqn%=cCx#u-|wmM;}3k&=h^Od52M+)Yh9IgDUZ>Zi`On}$trZH-roLrvAwI$ zv%Tv*jMjex?Y%QrY;W6nws*6K(GFir2P)_5cK<%($FAb@R7QL)ohIlv3HBrn`h@s= zzFBVlF8F1pVveP|OUG318kr*r>9>5tIB+>hnvC^c&n3SXdb{Fc$hn=SNUQb07yfgd zD^`0L8=!@3?s8f!^zWq;NS1G+%rbLbe}g%+(&>QCwh42S+QnQO$MynNF$VTT!QmQ( zQ-2&n8H~ue08VX*Za7X#kJ4_$jDYXvXJ+w*Pj zP7hCd{Kdd8>EX$4xESyr{b$$SYPQgL=-@wA~kDtA%3P}q-VvpJO0w=Pb^`6X2zSjbuz zTXVY5#vVY62U7XAcrEH;YH%?*jT;j&^7><@GrfcFQ#J>ZbrN8wS`9hAZr!XHzu@#x z$?mCVeap#Vj>n%VwAr=CrtC%=f3tw74e-hB1a7k#0)Mx!@acl{y@I=a7ky59RW?U^ zbI^degU{t?Zw^{mJ#Rfe=&&b^+9rKD#DD}^6#cN!f%$IypIrZozH8VQEuH@ zyh$`GU-uWyGwi80wf2ucQTdOl{gXy}sA(=sH7g&In4H#0-w%$~vLhS!-x5DvxO^Z( z{_`$RQ%ldoms=g4WgDBHr`R6R{d8e#|Febe{+M|ydyjn_A7j{itUI#znD3M3Nee^Y z>N~9w8q)<*%eA*!`gP{l*{|ZQX1A?3>+)IYM_Ye;SG=X+M(k*pcRP>$m9;NKG1env zVGCzl9$pZQBe0bF6Hfuhz9$Au?>94t%RW(Do_*fxo=@=yydwU1u<#b2@0*F(HLlLU zCyMtG4DpC~LHnT47x2QpGsd8ZFWjD7ZynLvlV~E`_V~6yB%}7~S$TW2kuv4qXdhKQ z)72a30?+Ap;5+d_^mnk;qI{_L+N)grs(bCfq0b*RZ8=Y&RGAa04-*)*j%go-a z&ce_>O)8@^lby~zS@RNn%YE=m=hLrYJt~Rc*TGNwZ?%pWasb2nq1N&QQ|n#g4aFP1 zg#8dweG_&s2j!m|<>xV;mU%r~V@^3?z(PlNXHsaLPI|rQ)L=fvT1C*~KSex<)4R|0 zy^BSgwEWY^emnL%#$u=^*xjm2G}&;<(X$^NKz2oRtz!^61Yd{z9;sG?jC1QbvQMV? zm^P=uPkz}-YdW$kEWgrz@l0`i!4u%{@c&4q?E1$&IDh4I6HjYSutTO1^jd_+3db|?a}`0vnelr+WmKqpOlkW&eO_G{BiK~ z>1WDti12hd4$l=&?<~h5!qeqAJkQhjvmQJ<9@7}r`A0uao<8umj-OiL=^&${vUnk~ zh#a~6BCf?;l^qFtl%%;(9fgd`|25ud%e+ z*W3JKuJ_1yTzfU&-pQC{-XJd2o$+Jidb84_ChRfqZ&1(O~4;jt27CMfqMl zDjh(%9-U_R_Vwm4{V_bY$qd6QhtbD|$2N1nf#*r?w{Wkyr=E9derwKEtg&qM3_5iO z`j*9mektZnI37@Z?D^KCxqL45sNe7V8`oy}6|1$G_TIkP6K_b>&g1GpO^v=d#`CN~zxv9%B3^C;3z{I2z#=E(R_o1Xq_*Cxe~me0xB z6Cye%N9EeZ(lNWs>yOOG<@J}($AK>{M8ACc>9Y3EP=C;G|0C*`mj9n}v|0wQMEPIi zT{H=EU4=Q07-lzrb^G~ihleHJ9-o5@-9X(xP8lj5jLN~;&LN#;-<8iHJDzm3)EYpP zmQnf1c(<~HSWV=}Fn+Z!jn#9HY?1$NEXY;K$skuHFC|wcW5W2TCO0nxzGTgF314>A za|vH|*mDU#oMkHe_qm|IbmHd{|EY6CpCkNbXFiws%PxH`;jey<;ZL2rU4{OV$IXA` zWQf-ND#;MZR`i6ujPu(w<}NQw?m~tfwz5MqVlMiEgEzbvU4(e`;jyCpaPa1;f1C@R zWWe0<8v;MY(+`bFZmu^&Ij1KbCiZ2>%E@|j<%gdOxDDq4cRjjd2YQ`oDm_s;qiD-s zOh3>VpDUg-!PA(YE4+YPrT*3!o(nwj?5=M)o{h$EiFaj3$}X&?Z-%if8x1vf^a%57 zuoI<=UWg7j`Ii-NLJzEjQ&b0iE^*or!AUkw2kmXaPZV&HE}*@+!#)Ix>uj}W6x~Dq z$`RuGi@s31)`lFh__EF+8nT8ES3V#9Zf~n=Ey1l#CfJjsl)f%!9r*aW@4*hQydSsh zvEo{WTZam38RQT;TYNmjnqS7QXI^5C+jWRk`$yxchHTuh#-tpr9~It7+9fgKHWxb^ zSqIBoKeam(w0_jK10Taoer%PAu351M>i{Qg`*^_Vdoh-;UG)Y%j(W6zvEaG5e4URp zgx)K^@LGIMlQp&eH~YR%y{j*K*ARKPtmK{SW`l2AKCI&R#MhU=R{Vdcx0U-)XPYhO z@M-6Mp~qzn_v8&(JTu%Q7wvtAEkDV6hWovq-vRCh?gQLTTh5i)#C?Ffnfm~D3-QxbA6&c zcv9rTEkt*4@AumC9_##j;cx=_Gk2pixpPdUFG+VwRaviSpbyW-&lL8^ar)@=eVFRZ zHBG^XBppopgw`>1j~+XS&|3KRm~_xBn||`LFX@SmoD$($LJ%~fqb8=(S9I%eB6!n{gWP7-K$?VdEEAc+iqlK2k|`_ z@ar>o=X!y$o^QL%1FWIlJGP0vl-47|nvrYU&4ICQWZM?vEIYCPHeeg>Fx}~$_=b1k z6ISfg9&^v$)G4<%TQJ{my~ZqBoVqV#R&d?|(R@7xb60CB|DE_tVm&>t19zQe+hK0B zwph$8XlgR677I`IHK6QgT2q_9OW9w!^=&4(NM)}h&Z@&KU-XOoU(0`D4P(T?#Zv3_ zRmXtZQ)fQWzsuY^thpe|Z*a@)q&=zDiJE%a)4+4|Xk_zU*s}+0?4n|_TJevxnR{>F ziSDQGQ>RQU##uFAE3_^ZbUoW{;SJ@WgN3O*GdVjGJ@PrW%#zn;joBsqmP5jS`7E@p08Eq*-lRX0`+!;gxS-epE|yMea@d^TI2`xO0nfHR;b z&35`y{J8-h)cSkO7I_;n9` z<#d7xlgeaF9DV{0`qN!G;4luJTnwz-$(qIKTJzLv72kL1;5ze;cf4>-YQHh5!`iQ~ zKK;&j+`FQd{nuigN&Hi$&GIgMV`@3~N#7()+amR==y16?eueJeYQC^k`#9}1L%IK? zZ~}89wt>#5s~KqFOpy;T{slwldU8H8d9_bsCq9L2SZ6+@cgabh{QTf|J$?Va@P);K z^~>N<0FMZ;gFV#oKcu)JVmj}muWFk4#}aCYl8Jj*1OmUVc)a13TUIr1i?x_MvB|fXRSkP%>|4w^AveVz{PB_v5q<$IoC=18nI`} zKnuC`uLqudEIea>utjO{UCi9m6m8?L*mjt>+ehrpgT}-^tnsjlJ#y5a4UECir|Kv5 z>nir$Q6KScs-J4uhfDqRzo>)u4U4W<(0A(3UdAeWlp$Bww(%dEbeOTJc+8!Q*>_{B zJ|I3~jNZ!_y@xS6J$^lm+0BgEEOjj4?9RU}3@sJxom_Vo-qZ9Qo*VO?kwg416y_o4 zT)d~&2dcG2bP?X-HSwIU++^(D%$Q!X^5Bd7sRLhj>x+=<>K|tUvxx<$3X$i!d*qy1;pH zO%>cuUj*Eqy+GXZCo0qJ%tgS>^jw%eQR{KbBfll{+L6y4UN%eT*^CTck6gz;YqlVp zHzAKZk;fa5$K57AWaaSTyxn`#;Imq7WApvmn%~!$XEyKTbfKrem3#x`8t6Oi(sphP+@jTuhrfs)o% zBqygLPRTNyk{&0;x;2;xPVCVroRS_Vz1QAVwr@O6JgbP)GP7h$!4euvv2^TBFlsndgx zA@`XB`m$yReX6;jn|Yy=d15rg#|SdP#24}2Aa{#0 z!NeE)XHzy6{3pA5jpgg#WKMChz$yG+;%lBy$+%3(e6rlnC)dt#K8X)7t{6jM-g5OU zG);Cs(Yx~bMB{KL@;%ID!b4|;y7}aq(dzR_e4q_@Za!)B^NFjE=M~%4K>OA1;(U@G z5Pf9-)?3-_{erBWs$7G|TknarE|J|ln})agqu#vA&L^6`t^D@1j?UdtS|`hJN*afg zcQ~BJidW6$5&c{`ZgXZ5TPSJTcic@nLPR$-C$+u-uI{7)S z+0)6*yImzXmCw5Yr?k0tR5~^D>=aJ;BcS<#m95k-yk$E?@nsD#r#Y{U_ik>?TRv`O zf6;}EF@x_YmCTTHcF5{Q?Pg^Y<1EM6$}!Gzj4%8XpJ#6S9CO><%x!Ky+gV{gb9`Jn zpQXlUJEu)V=C27qr=9;ir}^UlYTlrJ@nv+bQ*Nf7=?Zh*`m(u>-}Zg^T%~VhGp3Le zVNTOL^<@w94F3^4w$A9cmiPQT_dopi-}7a|JSRI&c>hZk7muOReSx?g7^_UT?H2*J9T$jOT@~COzxCYwb{T6R(nF)`ybG$V z^M>`^7Q5y$S)(=H@JwqGjM-z$xlu5B1Lmr^(M&#_9A$z$xlmp9@YK zs^E0yBH$GDsm}$c`$j6$X*T|_bMaHuA2t`9(p7MpjUVh>I7R(nbHQowGnMHy8++(n zI7RKDx!`o>)0J_W&76HMoT78~TyWZ61*h4})#t(~I#7oQ8K=v+KooV1ryg7tIq z&G3Q!aaJ*!+Sducid}pAfLX{I^taQEn_m!HwfT*)pE6yGMqCDY&ZVZwr0(uC7aXwvD>p zX?;ejE0t6`db9sr$h!JAXHBY;`ZCImc^CCg%GuI_m39nCbd2tb1|^S$MLWpir#VNpyOBN+_8_w*arNJ%8es)iWmazi%1Mq zCQrXi&_5lnCJx0<@ip=S&P-a zS(7zkFRQGtTXFKLYdvKIQ}wBya6X`NnzTooaM0RbC-})9x{Np$)h&EfFTPamnP=*O zC0v9@<9@^?wW9y&OmWT;F~PcX!u}qmKHB&>i?eVS-pXSV zU2J{OLT$HgR=tsSJ6JQr5$&@F9PQQqg*Ly(ogJ(AGxY;GRlq+sW=7{3@<>{f#L_5- zOL2*gChV~&x@75_{G_QFz1+Ns*qX+{H`5n2>80Gu|12M;_E<~dw@fwXoxi&^W9|7= zaxu?tk2khnYtJ8@DVIz1Q@pk4AlfP}OS-UVxvS@6xtDQPTI%5m2OnQM(MCN@;NZ%1 z#lyQ6%IV!tS9sUz-~Cx(tKHuvZkDh5(?X_R-=_RNdb=qT@~vcJ7+VR-kyB*( zSbWZN_;}H%#!=u&jU{;ScJ>`iJo3m3)<~BA$s;d)<(1|xWh?Py>6(aY?ip!#5x*qEcadUU0;x6w?T-{BM*+`)YqZ^ zgFNd%Cf#7xS-RCjH}Yed-$c9aR-FmBAkob}gIV_H+{#|Bwbz)RUS#EI{8o{wH@hOc z)5L#w5q-9?X+^`L`1fs}bP!W&66$xg?-EmUP38)|YuFY)o+V=uny$!pn&W-`yM(^W z&={@i~jIn$6Y${EEqhxO(lU&WU}##)+X^Wemphl3gB+;{g|TbI3OB_~7dvSeH} z85zzs>@c-fJ`7rVXW%*fWXKJj2O7rh9lW#8{JJAim;?J&KE$3Nr&O2fu2!F5Mc0`0 zI~spc{{GoQm(BAezHp#6tl1%3bQZkI>I!R9tnWz%PsL&I8(j9;yyMi`VY18o6L_e+`fke~miAq+ zm3~}(cjpX!m;X1|ccN+CAC%HG_zs?Hnuc>e#s9UO-?;47p4ZPai%dvY{{U?@-4I}EwA`%jUDB-XuV#tMPK}5 z;myR^N{*Om--stp|98g|0pG(tgUqpCvig_ZOZ8#n^qRgrayyAG6Mkpx7#D2q@7;nd zX3Vc{N-SsZSe^Ikblz~jWWTRRIVL0Yz2pb-#m@1qbfIY_!)E8lJbhT?QwT+SilsrhCy!~)CpVcGpF_EJ-T@Dr;2`>q_Q}XIFMn<<VchmvB}gbr{j)iIWLmsdFICv$#WOuy?j)3*zV!&BnE`oy9BW4tK|c6 z8wb98RKIB_&*G!Nw=ogwf7t=}QsW^uLa~0`j3@0~u6jhfhEKS@)mk?;201h1xg*pm zx^F_iK-V7IiJad79k-hYh;RJ@u}$|v*L#R| zdBru-mqudlJfVcS9GTzv+66qj^zb^P_U-oV%hEp4F&oP`-F48Q|K;Iu9sJb%u0KHhD*Z-eGzZ!%kLykzRW zF4M~xYv$Q%XrIcW2lW~AQT8NPTt=aA6?5~}+mJ(cOmQ}H&l_SJ?R}d253yhUB>FzF z6X0;j&(WFqKFUKk`@E&$d+|mzodicvb9QpNKGs#gfU{8Mo9`{X(p(;Ihi6(E#?56s zr~NrSd+^n94w%PqOVX1Kci*ydeH^{uX0x(kzG=zaj9fI>vX`VEF{A?Vr+D@h`Bf{% zzYV(HN3n0c@Yr9Qx7l2nzc(8#{>V2Q7pMMHO!FJyZ+-VmCTnwzTFueiO(tpc zMfCngy{8q5Cmw_r{k$hfk35EWy4DP94A3_RsWYE&@0RC0zr&Bi@XU~n*+TY$zs`6) zxKepb8qbP9gJ12KhG&Tv`a%w#WsKaz*f@fH{CVtTXGhAemMl@+km9;N7|YhTQLlKS z)eNN#XDwc8j;^lZzj#Fa(QJ;Q6Aq1uPvD{4`{;LM(lxDS?J9VN?}u}%66@mV-}R58 zvx*L)kJ|k|$VXD&!LKXL)%E5+c$WO$G3G6+|H+mS50O7NaEx~g&CLU9(;E0p&p(3> zD_H%OHu3abh3sO{?X!iv<;e}>J<=33LzJ`Dd&;uD&mUTJQ&ZAi63kHp$|D!JFR;44V= zb;MQ2it#VUQ`idP!?l)Y?jTpDr+*>3p>lrK%)om)d1q-1mc87(l|R^NpU@<-gy=e`ZO@g?lH`OIy-^snfBkpEwW z_QG$XkcDnb(|-_=``-%#%kvUVe46v6LHuCI%WNz-uXN$0}G!FLvq@99&3-Im&|0u32 zfG3&?SM#wrxsgL-ulKmzPwY2vr+8X??D*E%2>%DTlHpN!FN?H2!26`HUphw6Bfxc~ z-rr!h^$52n^0)A7uGV-!_rt~=wsS;LUT^DZG`HCL(tPvN+)pr;gpXk9yHqk`PWWe< zcXEsaJ(qmj1`d*AoB3bIe5E=35|d%Ha6U8=zOi|cX=y+nz~ha5!^kh?W$hgKbIL0Z z>y6A2--6DfRCMlI01p%j3FKSGzFPrq8_wPWM4iLFt>@?c{hM?T&g5g{I?m?p`wcv+ z<(Xjq0{5>wdkgs1q#HS(PkpKTpE*0cRP$n(E8TO+>?=xm?w!!ADEr4tWdHjkdZZnH z_f41m3r(k${q^Rp@O6!yE3dRPLyqO$JpB}WskvS;^X2t#iPRDJ^6v|8rCg2W`FY5U z!1MK{)AGFfU2(eO7Vg&D&i+W_u_oOL?a5KGbh)>1ubpcaK@*K1&3|=fh+M~7${iR} zeB*+=a{P+2=zS4f0uO4>BGu>Ga&+vo{1zVsJwbE8hiI>4&hPSHW4fGI#Y=*b4W;bQtAE`6I(Y*DYvu~S%bA~?A z_=(yVD)V7qMsWJe@QKpn=^r^*D)*FyMan8|EY^2$?A}OyAF!~B^+jQQGg9YL%88$% zute9rk@jt;eJW#RLpEzd9*O1wJqx)esicWV;fUssM(TPucngkn>ti1-+S2QhArB*O zWM6FHUOpw+7oFU<(x>2#zCDEQsMuFz5BK;!$CBKiYd>ez)#>Z1q{mBFucpUKhnJo| zqaIHlQqbd%PwDZJDPE7iZ@M0j?lktXSO(rl*5-|Idi>CB8ar+Dug31i*i(y_@?SEm z9lJtv@kX!96K9!=#qx>52bQeSI5XKLYn*RVKIO^ygRj5B`OENyb(;gXy~!N1y8RmJ zZ8pPWpFoDJhJMmJ!?^u4`e*8tWb#l%w;$^HbF(Qy4JK`ddOpd$bbIN7><8_2`)vI8 zk=bgC?1g5YH(Eca)9qUtzGgmy4&e0ruhm~^uHYP)qv-doHHUbv@vCR0`u+EAY0RKI zq2D*Qzk@T8*2fzgo*t-ke>9ebkLRV4&$-_;*I9YrV|u*4HQ(x6t^Ggh~#)JvRHa8@B5vuKQzK#49Li! z>mQHk`o}Lw*Kf(x#@G+Q>Vr039ewbdUWdLkHnAi_|7q=EV{8H*tXVTCJ`#1asN&cr zk0LK>O(Xm@l>1$HwjKPP&9K$m4BbVW;gn&0;(+Y_G1)YEY?^}U!CvTDH4oZ|&sHTq z82@?hA1&O`)XKaS=!(8?=NZwq1HIH-z0}$a9nf9#L(yJ1;O&Kj)?VlUrug;ur|bpM zH=h1Dc*|xIPrldcj#s7kTG?J-q9Yu#y4j%;y|ky$!@N4*&e8wH@<$xK^hoZ7rf0D^ zRBv7ioErXbh)sB1(BT?%L2zc=AIsTX?D0}Qz01~zO(fm&kkc(M_wcOj=DtvP&#Ocq z#y7UhyUD!`HqE>Jm~%GGP5!wZb7TXd@OqnuG1tC{eG`XGV{3Q3rTGo<#^#5xt!3L7 z#@u}DxtrC?*wV6XdYo;O--K<`>uj4-U#@Ys&0k&nI>uYfe4|81zLIvh@iyO&w?if4 z?Pl9fr|(<+D(}YIKLD#xxYCZdRpyuMc)NCLys>sThVnwvF>F&&)IXEYJK5aKtme$N#&iBPzQxmR61j z15do%m!D=Iz%w_P;U2+iYS=YpA2cFUoP7|L`NKWS%`TgRljfVNxIdSD@CkTIbdz5B z3($~xWo#|~>(Ik4G07!^$brhXfqZqHBVVCxt$8!H!BEc=1vlSl9t!iJ_F*Ws4TgJO zeRdapCEH-Qr_JBLiTe%UD;fLpDcfKe+hCWa{V(wTrDu16YfZW-VjHYH`;@Z{#@+m@ zzD!vDT~adc-wVB}*#;lxUFcuSyZasQM*TvUdE4L$_P`OX>|E>VCBKApHsU(kLc1re zK7U18>!Mn3j`sidNPWRh_%8d&1l!oz3H6qr>dm0#C-pzRncQ-dvA81Rq2bVN^2r1{ z;q!%mh}a49u@f|gpR{%Y`G#X!^IkAsYA0x)lF;_Ri`Gt{KG&8*WAeF(9~RlR#M9T( zR_Vhh&I zZc$nFYoSn+e$wjy!(;MWXq<-fo6084DS2F~XTHU;xY1n!mTQ$Laoa&+wb z;1S>k{ap0%U6Z}PmI)$I) z=1pgR$(EBn^L1OUSZ_JZ$Im*LDtpM%r&v}vb|7O5h56}^pS^yn?vF+27~0D^Hsxy5 zH=ga7Dz`n-KcSrHa!aJmZ>7!ZL-kiGTeLMar|VfYTO+jfm~X3S@?Bq_Y=8~7mf9PS zJcstiWY*QCJ-4*iRyMM3puM!T2N&xWtQUM~OnYx>kFBu(miF1w9$Z>C2zzb0`AO>r z^~8S2-nio$tsCr!_27=wy3A5!!(O*;Fz)OP)+H>j?8XMxo?Jf{b2_^8uy$yZFw1XC zA)}nmUz7ev^Wc=dp?#k(Ofoc>!Lu_KoEyfD_8psTSXmiN37IT+Rm(38C#VdB>zm((7u9blg@XLK;e zgB|f_=1Ffy#0PJ>WhFkQ7JOYR@_XYc{HrnZ9_V!-_XKiV^+aXm3FgWmw|8OhMc;jk zceK&!R=XHiqL1W6klV=e+*i$8tj_Tp;N8GG)$OQ^ z*yK`cTR{_Yd{;U@dE?8ipFA%g`LJ|j=z2Li)qz}(=6(}L=Z#w*xoEN~F`so1>AZ<1 z;iP(HFZ^fMCo5UgwQ{=AOiZmCBze~dzP(01w~SpckUooVda--9)!PnRN3=$_ld{T5 zmyJQ&{W?L>c7Q)wUmIe5;N1J2X`MiOolO?ZQsM9we4f(X`>+kfKd%1eW74y~1)YSK z+J;XWef64}Uj%p2)%Go1p!*hL>Q>~@GdTzO=k0v_o)R7CH8b?r|W#5 zzR1LvsxHx2bQX;d7c%h66=};CS1++P1#@JDb%?aLD^^&$LhD`P-~HaM=;gQCdxvfB z@sZvL&%ECAjQamp<{9ygcp&JW_eFHiYa+Vm9&igZJHq`}p`q|UYIV>0v~rqbCXvQw zoYHwOqnySuZL~VC=5Z%euzM*loTFo++0xGGmR6Ucx4uw_FIGKaKM&nE`8u^`pgN;4 zmY2b3rHpJu*;99cbF}O=lr{Em?V$N!+-MxWhH|3Gz3h=9yp8XNU@xf+!aFXw$gwCq z;a?8#Tg*{{cev*^eCHXvCQlnys=gacV~^f7HSCog=SE@8^FV^13mx*l28AI(WU&`h+ppjJ*-r_*B8k z$*6o@fPYnXUePz+*mL{Yo%EaZ-^QLnfBz=#*MpPV{-LuIOZ0vN&uaa%U*LY<*`44c z-+0#cr|$QjebDK@em+p&I{mk%q)(-D7Uk&YO5`Xr^%Tvm9Br5`M;Ed-EFP#g>#TjI zHglxP^6v}l>@(r)bY3Tu7n#LYCaYiXE=*jZ zx~``#wU>y-C4zHb;p}x|avWXvsMrz({|-#8C4_R7V7}VJ{MiW1ps&eit-AlHu#p%I ztu^PzK4f8*>WQM#Z&SwMnIGE|sW-rqOkIA~ojJY}IH?NtsZ1_XW}sr3Lt|g}WkmOW z=q|i8=0qd4wOHq&v2XdZDzm`C)837x`X=&)F;HFKRQui^Y2Q0&pKR1nSCp=Q9KpYa z`l^+CEK+XlN3L8Qy6fPtJAHE8>yz8jIiw>lG>ZrBVQx*c&Me$%+okH=^Ho;mo8*T#-pYabX_>6z({FCw-x4me}XS^JraT=fT zfiavp_=n%oN({7(L6J?oc?Q4nl31tJW#u=1Qx(7QdSGenYE9Ppjn^@ji+kLL_QelA=Fc;!plfa0~wAySbl@Ke>)_)%?lwb!jX{ z{jn)%M|r!(68v_R{K<{ppDbT-xj*^EWiVbw8Tk?wLt5@ne!VU0V!T{mFM) zztt7#kMLjqMl!V%eT>IOmii^jme5{SRu9Oh{NyZs${&jOl=~|9l=oKgDgSl_pYm`0 z1bxbiP1kr6U7u^+_I1>CAwK1vIr@~p<9*637FnJQKIJ~}&^-M?+xFS{l%uf>tX)m{ zl>evq|0*s=<1qM&XX8_@2J>1E^EDBeLD#%kKIN#-^PIWoDZla)zKndvw|k%Q zrztz#XFNRiq%SL<@lRQJMSpj+-olTH{%pnJ2l|OFp}nH@-$n2{PPwR0IMDgGBL3xV z^tZ}LwnpP3&gG|8T@OU+I_>L{&e`5os^32T9O}1^{IaX7QVh1@tgFRfD?WSX80^xR zi1*E)-|oi8E!rxlMKKY-cnzY@-zy>gA_b@fFz^8Ll; zV>VVI8YiLHh7c!l(+v9V(ulshp^CnHJ+NldcfT9acZHMmTIsvdcnN5cd%A+2`=`ux zLC@V&7AsL3FV2H@9!K7k=RSVT>$x9bn|{`9Ssx;o%IhiQXXH+LJ@ItzFy1&ZnzAdz`T=%UjgV9VG>AoENH%<4=*s?|4SL5^*l#{M{ zw2JPlHVALwU#|NussQiLC|9og(uRu`OCeZxo{Pj%NM?V?>%MM2zap*mbLqbE5Mzw) zdl_vtW+So0vyY`9Cc^4)(!qNodhZ+2$Hn!(T}AKx4X^h$F@DvD(gWXHruVw%S^6}@ zGPpe7ccJ$cnQVN`KXR{ipP&P~SmLEV zmN?)tJ+30~=y!cwh42q?6_Vf4xQbC9SMf^fit51k%n(;$^9;-4DsGLmSN4_KTpm~P zS^71^Ream(Y6o&>Z5xYm6}R$Ra>wPq6?I_oli-S{#J7q?2yqoreHEEw$AQ}H@(%Cu zd56<=VArq5avx#bl7Bp=+>sDhQ4Qv5bYRV?*MMix3xiJR;_zKu1@}3{-}YIUMLjd< zh41rvp>)yTjMN)oNuT~Fuk#7cGFx8}PS97^K<5ud^x6=Q5@HxspJ08>myw>_2kiy( zkANu}gtAeX&w3qL`2FBV)7vUKKNG3<0m@X;fA>V%*-bku>A&aBK|C~ef26Lz_jOtQ z_bsLR?-S3Z{=2E@-_0^-DqdruS=X<4VDhzFXNm<@Jcr_lQ~4~utV3ff(eHEy?{4@6 zy2G=>>@T8NjUh66hQ}0ZshAG6N3oa7c-HQ9U&`oSWfj+9bNSd3?YD3bu+Pb` z&Gkm_$P1SIZQ6^3^7wF^Z%?sp=Pc2F z>D)21@oI7kuGTn>5!a@?2DhJ2hIq8$-0R7a)7++e<-94TYL_{fyV2Zj&q-CA!IK!y zgSofzO!7H}e0+s@aEbU+-_7H_^7HiFFR9Gc^XxvM^G(LadoANU-c+KKFK^5??Y}vW zeth+{KAtx1>#v_G^OkH=^FhkovwEJ%+gQ=1z!8pDGM}pcI&@OTGqGd)*vFx#za=q5 z3}c382Z^8ChhOyWv7h#3lja`=T8L+TiOG{Mw(+$M=KBLJ<4fc6`-(2K*}_bkrv}!W z8hg(^AB)u|4Ltir<|N(s+OgM_*B)^%qb?#VN9NQ1Rkja$Mjo?g3LAU=n%eT$h5S zr<`=XKJaGVYejD4cfy164|6|?-`vI-*K)73mDvL@KGXTiA>NpL6lkM(?L4%~=0&5$ z&`5k4hc=?q0%FCVrhd`rZpy3A^iJRDo$wbv(q;eBmRmRSF59k}w0QsP_Sx1E$-0pH zAsEWbQs0XIgX~QuyUZwiM(Mp`+HSOPt^$5(nWK?1zeE}FYk8T2l+m2Bp7)Zal3Bf- zPLAmO=+bc`^EH3i(HzsZ} zt;iIOY3&a~ylp(h1UHx?R&SKOE7?L@$dk@mJfi;S&DgO)_mX_&;DpF7*2+6lX}i@qq;GYKBH?gYe9gM=V=V_u9*+j{R{L8W%^OYR$&s4;wow zxgZ(G-jpMop}k@nUCzSR5&8z$wd`8#=A>oJNt=)-n|VH)^PVL`bk=jUjjx(&V<&w- zKBoQ~r0>*+(Q@B~PNKhfgm#bpHf6*Q(K64JmC^fS*nXmkXrr;Fu_qcxKUE##hu_A= z)L7Ga_y*&lnRajCzLtB{xRv`)lQU)Epo8oGp+bIf7!Nm-%NpQ{FTX|q2woJo|IHj3 z#z1*L|3w7vDE~+M`44yZW)fRIztq>yo>tH#A?{qBusMNi^2qIx z9pup;So=eBU~&Eo@6<;xEfwlJK8+2Dc``-D%-;xIm8^f zmYkxYF|}QCJeAB^xvkuD*@S9mG6=wzO~3JdC46?4k}(C|r?_ z^2mb)^2hm3Jo1Adx%)Sn)}BqK-s<0L(ACuM>+HNyn$s2Ce@Xi(M*I7dv|If(H81Dg zyd0HFi_KfD9Db46WcyY$`i8YZmqL3t7yVcE01)qs=hYYLd-0n3L$vtMv{z-Lbw_iY z#cPt~Cp|6HmRHi2|Ht0@z{gdU`Tr-AKm$abrlAc`b*7mnkwiAus?m))n+B}d)c_I8 zZgpc@u&!OVLe=hfyX%mo8a0~7@U0_4jLDulvfKd(VB&bDr~@=ihnGIa;^6-0Vod$b5QYz4dN* zK{$B+Qa#$MT;E6!tG>H!?C*wJoxNPRZ$NLT&Ef^|uXtf7fctscCR)!8c`FK$NX5gwFVcu6ys2wV={g>2V|44bi z_SxIY;ju2;X_$4=YR4BWuK6_+9+!iMuC{Wl6Fc$ADavU5^TuHPv&wxsDA#*qSGwhi zYux^p*hTkPytR*iehrB5(f8AXwazQ}{_pJfuxvrO>4zOID)WsZWkiD|xpz$9E7{`P z?|lN5xjrZ(IE!tWBkM{8b*Viywm*-g&9_2jUPhT>agz^*@DWc|2Yp!BwsLKt5`JTFFPr#SZJkY_D5v_g>Q35~EqgON2{&V}`v=?#9Pq48p&XovdZW-*Nk^ zYQI{=GUQuojcb&0vLUq>Z58)xxPJoPmmJpq@Y)wX$r!QYpZ${bZIUu$H)?NLw=eB{ zbGwxf8uxlnEINJAj-Sp*oW1^=%x(62Vk-8%^tpT}!NfNwB^G)&WB$(U3Sz4%>^AZTvwb#R zdRKN8_Ss5e@XL`cos9h@$N)R`*}G2i4m+>z8POt$Jt$@w&m>KZbLpE+cdg1i6G_@! zu6oneuk-La825=(53;6feT5moMomUz;1feGNS@87?s&|d4I+6Z7{q7oJNEiU4h^#g z&-rYUYkJ>dhWM_lUwe5rb$u@VTJ!hpd!;?MGsJmVD>-0HlK*X7i@4g&5bqQt++7!s z)|6r+rOqO*`)Xpk?ck<3tKOHGrPyi<>MzHx(Agos%5~1vJismZILIe_ZOu2&0e6?H zC^^;}$j1R>(^<4l_}v05#jBh=TRM^gme&2#7M?%Ge6^QpkBuZkGR?K!ohcuFPM;xH z2br(FD^1@azwbb1??eXgAVzpQx@kK;@HX|cm47MZpU#)qkk#2pU1-?WzIb#A{&$jl zLw|MkS4NUm;7*@*_0Q*CwzZyrC6^@nt1~&e`oGNlvZIUk#B{U~t#;!ZEMmS|G>VwV z8t>wJ!6lEfauG1ciS_7r!u)-|>X2{wMH~N_o>1G@MXs>6_yF&`eY%0?AJTKaTot*> z(qH?Ud^A$Vo(aRy&iTF26kje`B_4Se`inngGsc_TIT+%Ril854$Lx^0dSJEQG2@mOC&~2rjnQz`!W%?m3=IjvRwtk zjgwAmOO~6SVDE!<6MG-P8`ciGg?eNII9}=+5&W~vIAh|rx<+VzE%Q3!H~luQ{`e+1lWa{!2^p^nbPW zGa?Dm|0+F)TCX%$S(?2rHDmwc@95+WQ&sYb5dQ+*Ot@AI;4qzCR-|4Y;abaC_lL<+8}en_oh_5*q3I z7Gk3Mc0=&4Meo4&m8RX&SZ!*dTq$MVnCoJ`LHi~}6VF+AgXzx_ThLxjf^}<%wx85< z;QZ+D6%#m|C7J?9G@ZeF(L`qyC{E9rHvDQGVBK=l_whSC-ajU{qr^;~I}+K3IsQ{hZaqSwz|+CmzdKA5Agv zHNlvlO}{lWrk=?y@8cY$^s~8Z`)W8JuEgAgEZl1v>bDUq&cGK}rJlhI45{S$uwX}*`N(R;?J^{+buK6*dpRd2Zbrzr2?i4WB$?_yktFU8xJ z2H*Z!k#Do1Z+%^#&CRjn$IIaP_*RAcKipw)L}r1buk#Z@oqi95Fpjr}>QTR{Kh?Lw zRrC+{?I+Mf(v8ziS62(NM>znpCw>5Liq9%}{s{9ylBEx`zoGE_XOmF*&{AzNjNxtEM2ew{kZ^=UYViXMBjJkK4bS{Q~&4v z>R3eaZhaeW?`4)g`99SCVUh=hWqiMh4xd&T#@_xQ7AO7ixm=Pn3?<*n*k4@s+i+U@ z9V`>A2MlpLjlIe8;o(r-zHja&t|*x&e)yNe$R_Ghj#D8otqAq2=ZCw4@;?vCzt4_Q zCrjU_xgX%Fo=@}K%h79sIibf7Md+8?>J;OrF6+-pugyk>NS{cDNT+=NkUOg`#&hBH zsY5Ajf}u&{M*F~fJ>X@Ji&e}>XuJr1{D7Gl%PwwwMWbv7@C&^g%({22jdvZo!uFlY zO#U7_wgAW5Cve=2zxlC#<+&<$=-Y)pwzh?6tUkN$kclp$Up1fkZD^;t{aJ@&Gt@qn zsWWqCNX|#NUjl4>bCDVB)*Mg8;RVqS%9SEtO8I>bzxCbKz?3dh97BB==BH($e)oOX z9nfEM&gz50@?rk#7fkx{Mby!O9o@lr`YG`Y)mv?bx>fI!hn7Y!1jip9y2g&hd6X6Y z^A1g$sd1>-n47Q2udOD&K1rT+Q>Jh%JVhCgi|5%75gSt*KTLViD{PaTUtp8Ot4Cp` zWvS`VQTCK@E@n%7oq9YE$(DErb(D~=u-MiyS=arm#oNg^?ct~~`X`4vZ99McoQXO= zp{q~)?c;mmZOH=Fue}c?`^&KFq-UIt5$_|X%z_m2J&8`}8OWWw$>p5yBfg$(Hl@pf z(F6?HhA%hMY)nu3s+~IYeVqTZvA@G|>1udR@4Os;9c9RsofOv-jOz}&J>Es*-OpVS z9iZ)@1tKhI}ba zYzX4F>ccA!wc9@IqJGg``)tAEMRC@*{}#lK)jrWcHmd8#;(R^Njs@j<9LXC|^s?|3 ztZv4LWSTGM`}=UHzf-nMzQ6q#sR_X;r#{Jhwe4-sIeoH{Hc6gMhJ9Q1sps?g!76+ZcL~hvx4u>=D&D-a#`&OS(=y|&|l?$Y}=Hlw{N$~eJ0dT zvuTTXw3)VuH$B`ipXi&7A=qwi!>xV!kd@adbinMEH7|dD<3JV2pZHPYK)?APjswXS zS_mzZT*rz7y=ICy&|8rA;W!XyoYgrQUpy8RCr+lm{auU&Z9YmY==@MD=ruMLbQAH1 zuKqo_d@N}96tN)f#TbqSeK`~h61@~x`2oJBba_4=G@ZQ08Hq3Pd^2Ypqes&pBj)4n z#;{MgM$h^B`bfL&3&n(bBZ-+BA6}20XiVs?6Nm}je3Y2bJ-?-x&{ASTqNSAyMPfpd zSMOx(tIW~jLO(s_xX{u{_2a8gAud!`BrX((&t&(;X@lU0ZPFj$8#`He?6}a!DI2!s zrj83OwR7!0E>udrs$aVCMjOXDwYX4AC@%Drg?H?@&|`<^RC*kaH!k$u!$*$`Y5!hN zk79A5Jt5lqxRByv(lHv7rxF+XT&OR+Z+7Z&p)0KYpniJQ?|57&a~yG@J45|bEH2av z4K*I7iVF=C@$cFLJ}MR$N>kp$^FCELF7!vix5eT@n?v7vU-Gjy2X_WJ^e$fBgxyjY z7g9XQk6&Ns(c(fQp?aQ=xX_;8vAB@-V~~I3V|&HoLMr3?O+M%8iVNKvs@wO?@y3Pz z&VK8BVb2eRaiM`wTxew|F7)nDTAdkiL_R zSQs06H~1~0Z{;U`i*Y1Bapn}Up?4I-hR!R94V4G6p(}u?7|ksC1qHF8D?@$n`|l$` zAAFwjg|Q)(5A&eTeUQC&E_L|W&`%0tLq7^)Lr(;;p_fxuv7t*2)iI|xS~tLN$&RqT zKVV}l`SEZgWeQ_MJ1OIF@qD{lu_5sJAm!y3q9fQ(hPmYfW0u~^1&LR0i-cp06+s_K zpA?G?ZKWR1M}5qRzum@$UQw%ludpq%{SH}L;h zv7ZR|6pQ`b6^aEcv+(kkFYay)209ETk>Y7CJIcrf;@{U~Ap5+AW;FXl1R7>trr+aUJdBOwJqY8MoOS zAM)ME*V&O(UZ8RW7ZF!Ynp?@`(K#wRv+5_Uk6g)KbE}byedLUY1}Ss<%{EsqlQao( z4f%%o`qsqj$$?kSo^k@4%mUxAik$O z%Xodp$#n7y-8VXS#O2f&@&u`ioDAg_Mz#tc&C_Zv9eN}JE%0l0kSlX!-k{FtI97YB zkF&k|=`*$2(l#_k;xU&;8IIp7UU%RE*RRU;RNtw;ls5%F>K}4idJ^ha^|^99)z3b+ zbFI;u=xwxlIIH!J^Ud};(L;TseiJ>IugO+%@AEoE7v>LbKP7qZ^Ep>iM){q3uiQ@I z-vdt^6zzk2PPIYrn<&e7w#=#KYYJb{_C)c02s#VrBk5c`-?OvY(RmkiPMW*2@uxE^ zpxTzz{_iWzemj=hpl=H~a`PECjnJ7f$lAd>;NKn8vmHKHK3z|u-F%I)cCY36<>p~% zxF7r%S@l7sw4m|SpbccE6bo178 zOexo&a)hC5C9O+6+h9vIYtHvcY~5vv2KGKtj+5S}>Pt<$=~m{<_V>l>@8SPoUn*8+ z;;|D#vke_BP^LqPMGWX^`KwbflgBB4==``m>Dx@q=U7{*pzp2>eH1-ie&NgR#34 z*|&qWFdB2)S>LuT4WD6`j+ZV(E=f0Q%!!v)s7-H(nB+hy4R|#D{#>%M^bOPCpYe$J z=sfjv%J8?ezdShOxf(v@N}ppMvwSDozQC-nEaMD2WA^oHOl!XMSGo68#p^raCi*lw z$g_?Sl|>iT{%3CeOqEZ|Iggb#O1oEugdcD>!H2I!y7FR9C;4&r-S^ib~BdM z9)?=OoyqCUBK7&+{u?<%QdB78{vUE(Hs+_?4DmzQ4p5oD2w*J+*2^p`@lbwEmS~`H zrg?Vpr|7Kls%P3yPsIrhGcyt~{(~2}hl6$C2A@iw z+)iG^_H0HzbD)CZq;vS!n4R$;H04kV=1x~npm9<-O|u84Smwk$Bvl;j2XdDp5>3Ay~dzu z-&yHs-wEwEfV;jG?KeW-m1cGAEzll1WH&?q5$Ml)hU@_ClTUz;XZ3`q?2W^fOf1+wYqN={k_IG{@Kj8Yq=lc z|0@2YU)Yahh(41I;`)1Y(BGp$fAbA}+ZyzD>sI}yAH)M&fup{$vXlO@a+Cf@(;xUm zuCFt;uUlbHHvDFW|B=z?8d;Kum9AGRTKtDvLt4-P`;05M- z^uq@9!@7R$Ibh5t^uq!4!x;Ku7IJ(J&#ppVYfph+qaUtEKWwNaC;SraH!QtbW@^aI z-$z_a@^MaoUI#?@mi#-$eYJTAS@39Ddnst$A9A#4IrbT;ZAe~i8e(^noA+q?ywQc^ z_NA&+r{wTtyW*pL4NaGsPoR-}3`cTXd72INS4Tdd%V3>|?)%dp3hb>bWmh573+=51 zfxWdpx3^N?s7$JUCiI+38@l=h!|64(NxAk{GWVQ<58s|rf7bE6&y~K!3|gI(%l#U= z$-3-oKbC+9%$eUq+0qzW#66au==qRyxwic$`yhA)7#gOTxecp%ye-E?HB;}tnk*E z&C1DpnE&~6s~vrtp|3A5TkHl8U-4Ou8MQ}v%TE5D&G&rN z?gJ2yR!00gW3EnlI({>^ccy6J-`ReRc0}%lW@_h8fi1Y&6Hn`N3w84W8#9spJ!a4S z5*{k!V|QxP4SXwDh2P#2d@Ebwe_8nM+whu3Uqp!=npq^qQdq=Po&w+!Q-#4{=E?igd**#QqB53N4p*@Qk~ zOu1(!qOoUrV<33eo5Wsaz079Ldqe*`8OhKeXD9Yxlg>9kvV0mxPK@#HG5c;>V!yd7 zoiO*>Gvea)#$056$e0-9Jj!hm$v53!!vFZw=SS|NeOd?O);cU5*~L5BD0-s12h+3z zx!$#vwjkG25!#E~-)ZH&WPPEWA4Sgp6y6ZrALq8s6uhUPtzeepuT+@fzJ^$vQEt2E z$^B+9D<49*PE`h6vN{`5Z8hee?wq-^DZc9+kr$Ud*7Yj2g*e4r@@?msHhhdbYva*b zjI~QsIdfZ6{OLDQZf|!-Q0`L7HJLVi(oFVk++V_d1i2O8JkCBwtsKSP+Von})`+ZP z?UDA4;_R_q8EoLz`6|Qj>@AjGcGgO!?8&~CHA{1}W@*wIo?XOJK4RPXZ{6xI@o$ZJ z%=VeNYnCbHy4XBCLw36AknB_)>wv8~fY%=je1mwCG0>I$CibN7;XUmhv^Yo4589ch z$G4%s+M(}7moSX`3Sc-H;N-;nB4ZPMLI+v=zMp$|mS`^=#h0|HPIzjs0^w4K<1}QL zo?DthE44>$X%FZnUyZ&P^1hPbRkOc~XdaJs(YIZ8Jw3V-x%92oJSUZB>~l?NmF|X0=sq_C7=+XipRMs7}?Tw$DbU z)fd$H^`K7SC-}0b^-VM77jds|Texor?`rejM3V1SR(N-4%z$@W@Jx30!r)%^^`hXu zllw9Ag`lsuU<+;`-uVUa*#h2QNKZ58VE1mJ|J4s$>V$U{@9TLc+Oz{lb7pF{_H&9K z7`J`13mgjh4_l<^qF|iJCJy(_D%KUs=UNf?T=ToTCg`Jn5+A$}o>2X2pV}rq5e^CZ zQam6WJP&Bk3gLkKwtXmmIC$9cKK-Bm;o)Qzb)_HYe;8-M(AZwh+Dh%|!5mtt>PYc@ z3fh}jpKVIHUSKY>Z4Q5H*M#z|_OsDYS ze8+gN@5Psbp>GA#*TLGrl6Z5hWEXwBhd$PNHPuttU&k6tI)@<&Z?&h^rQ3#2eD}d8y_L@zQbLdNsTY=+dx^#pPwD_<6vqyI|Df9 z0_U0l&d;e|unO^(%o7b(24h09Hd*w9!I{t0*=*p}{^ z4`m;Z>>k>nws@J-h@6pZX@+mm?NnIpeDEOX?0dzq8u-picF>8Cb+ ztG!M)IQgu0sJ(*g`j{MS%D$d<7xK{>_(*v^e+w^(_q~o0@3Ze$Lj3Ld#mU!9b_KBh z5Ln^z>`yqMlRSOH-)YYm(L4N&>d<$^>UbOFXHDSy(Fwj^3BIl1`@!tjfHhh6754Ls z>Rh~uIFHqVh5f5>d%S)8Me-8V$JlaZ8ebcpZB10s&#gf}yK(7s*&=XPTrAwyu+A3G zivPm&nZY;G+t`GGO|-kuuMxKVhkeDkH=jM^WUu!2lAUs_@;3$LYl8AGw)oCU%(4H^ zN_>p}+Fxin^L5%EM{P3L!QKyH4V`)8p?3u`Hu9M03uc(fPYthqi*)jC>l-#HD}s5a)9Hvo1E9n76tO-FmB?+gfSbYDJrs#Bn-} z*5+@|M$HiOmH0$_qxjP*?lrHYn3H6a~;K>sb_x#Ekw$F|JJ7xf!_c^2798ElO0jGxF>aJTWrBz~3REB@Tx*@u6-ZI%xC zpKLQe+Q1|9ul8d|(62H2hrI;Iw@G33X|AWMugUuoy<=vY(RxvhTQ}!QdHU4RupS@o zH}ER-9TflE|D2=cIPjb4-+K6@iT<5UJ?y&#Pq@8p*bjlay`CF4^tZ~`KC9+7uVU0A_^Sf=F4n#+`v|zmH(qI8L0oDNcEa7*4LgvxiUn^c#y*<$v3Ipk{`C`P zN4I$Opt-%9Z_;u6XYsfl+q|D`7If+P%b6F_o}jI!wTpd-D>s|Lp)Kb2p)Z&nLtiwR zp>gnR;k(V`2;n=_rC7Ht_<|FKHwDA{=rP)g9fD1*xappBhW8I~FB)Zdr|uYQb(Xc{&I`eD!7&Gs?RIhCF zKQ`-V`}R7wf8;vrV?#6MrN$Ve>-sCqNBifRk9Ea&JweQrwbijU{Gq*d3!#B*f@=Cs z`b>1vnrq>zShQ__^%VwtJ`(TkG;PFiHHUF=^>teu8amIOj_@?pPc$mW9ZT-HQ`cyEQ(7pB4wVHcpC+-Jtrym-5&O7wOoUPoW zALdy70IiUdu?Td=U$_%r;0|)5cB0>QAa8HCcD`(UZ{M##jwaD%*xQrzS`+le??9Jc zhAw?m*BoMiiU%(V@K$`diZ~ItvNzDzEe}NLQ|{BEHSJ9ALKl$hSYpo)*lf%lxz6a^ zjW!Mlcm}O1z>IK+5%Tf{W$mNDI7h_)nBYT+p&A>UFyEUO_n%C5O zy&L3tj_1-fYk%o@O#R*l|0dzzg=RBt-jePF=SFy_9{j{l(lg@YYO@(TK(WtF;GNes zl(o8s@>bV01-hm>sN;C}So~UykHz0d=i>(hK7Js?$N%a0cr?$)?=?g4@n-sH%j@26 zk{32CJcqg2SV_F8GZJr3MjT(4&23?h+w-+}jD0z2>w$Evg>7%Uj!?4Msa|f=Ee3smX zB(~Fe%&T|J(D-4lhdji3_V|kgZM>NJ)Xu}SSLXw}@iUnQpA2x&_-Xn1)Z=IQX&OI| z{A?;cuy2wc(Ab$u4@gHy?kjgybHLIAP6zC>{jk!URa;@s@0ZM%e_d-XLq_jl{3y2e zX!>f?#kjeXar3Fyan6cKA&XbgzAE!XExCIZM!Y$L-+;WYe$3kKk~Na|Rm_hqG-Hg7 z;ggd0Ue?FSS^Hg+_vL26gsi8%b#tJRc;3we;?LA~GEPRVezdsL1~2Eo3?Ip-6;CTq zWEZ|diZLL0pTxg7&-7Gw)tnEX_An>e2A}o>a();&-xkRE;mj8%__QsM^TSro4~O`4 z!%rO#jnTLG0`SQw{?m410qZuOqT=B7?A;qz!V}Zl(L1c2}R_R*mw0agCu#vV|J&_Fb z#M3`HaxAHCVA;A0b&+s5ULCX{fPFL_q%m@|F(g|{I>?VBjhXy7a`G%??Wmar6%t_O?SXEPS;eSYyQlP zGoJR&dxz;n*L)9MGxq-hUDJ93x@O_TxI0x{^Z6XK!^q15iQTgVzhW`6q62xroG$B#ZetAGMOpHS zh|je!4&yOH%x%oZ&~oO#*q4&nXT6DN58(Me7K?5fFhj_YB$Qj#$NX2yn9{DFvaVO< zn~1Z|HZ}b*^BT_VDeK1;#qJmEGS(H8MYiB0@S!0$wBMM>dcW_b;(CLMjSZNHa=W&h zHaiw-2HGRHu!dV_E7j9Jovnn7LQc8ZaI(JAG*V~H)2)#@Gj@@1sGxpwN$S6Yt#%&I zS6g}y*Cp#;V%rvPQvG}Ex+9HK!P4(a&Jig$weVye`*FS`!t?Yh+AdkCa?Wmc-}(BR zX`8-nWNw1{wDz3UyPEn-9UaN9a_{E=H(9OyW2aM(uXn#0o95ov_AjP=9&Wt;CB(J` zcZl{3Ld)fSCbFPu6gpw!lOxtijOq#2U@S0U+6W)blS!_tj%0nrww1l~Xh$TmlYS~U zclB$p9P)h0A&Dkxs`r(akxS2S`iiyESh&oMrnG1BbZFQP?UkF98C}MnnoH@u$+=1L zm;aV>YTFuUt$7-qS*!YmhuU$usU)NDu}hTGBmYEg)w>ex3YE*{ek7jd*{!S@+r+tX z|38n#SmpTV`j##gc5!Iv)9+w?W;diPztX$&9uj-ejM3|1S#A3- zVO(En{i5pTxy3PI?zmYn{JKWT+x0ag>^A4T(sCT6qJ88yOnlYH} z1QufqpL07t=QfQ)s~6Xx7opcAK7SK&LydtqBQM0?ugAwog7a9e(#kOH399uM>UR@q zZ5l;RiC$Hl2~`b$db-MH5Z=Z)>1$eYhvQgj6XUu4PYHV`0 zQhz<;buYFHcx0=B`d8SpHT{bMzLYFb-J-K#yoL7~doA>t$4U8SdRJ5bwNl|z$Or1* zPf$h^OY~vgUk%{hsvSr2Cd%J99i#C-buc< z1@&gIqZeZfYi+RN&GXTB?bywWu&o!O`-N;g(wei5 zVxwu^x{+_}9@*Hfec30iy`&hp;MAK3>iQ@fk0qINO&Zy@^O@fkOsze3W$xvi%*Xo9 zCLb!k@s*K*fG+yRzt^0$=D+jn^IeQX^q@`HI`@K)<_LCz)Ano}qiiM;^{1V z!@=8c&+wTatbx{gd_7M>SK%cZ#90>$J#DNR+SBKEisr-_c4E)$NJC@d^xLr?wqZ{? zTdI>j_5H27eu%CXTwUsiFnm1=>vmtp>wmTVKZ5VY3(f!PcreTh>fcq&kE^dM%sgyn zolo65PyH{R@ciI;MLZ%rJP)ik4|QLJy}QOdc(Z&ywNGWmqfy##%Le5Xb5t3v0ay8I<8ZACaD5otR(J|u+4YoVjO}Hd$F^EHtV31o zUv1X75Uei-umn4g&+Sv-b4LL_;}##q4}_0+O@CV7pj@LW{2za>{CR(`{Lpgp@tRrp z87B%@YPvV8yfNLo^t`3$^XCs{B7__9af^E#uRu8Y|7ur5bd!;D3I63T(FwU7j6OYjLt`Uu|M}qhFP4RwL z@c#ZO-fs-vKQzVrHNpEwrg*>K~V%CmHk=a-r~*dQ(QvEiEXcXL-TFL+z->AK_PqMvL0gM=YohZWB&)o0osOP=pQycs$-WOjhhuF)gsJW@n%O}aI zv(21J$(u6viSj%iCr?(-%IVu_@V?|6-!KlYv1`cv7|?T#i3(H39OmhfbB#eeM61S= zq}9Q1J6beBi}^)pbs%^zyFj#Rrp#<}DeF!)vDbofu3av)mB-LX@*CZZ4d!fN$!*Ex zR1r8;CjqCq2%N@~fb;aXT)V^VN}L3o%|+mx41GF_z&V+ARTqJCGVQwmn@7^;WZKnR z0H?!_wG-!`U9rQc!4cA`T!lwh?ngE{Ut>Af?d$R4V58%m`KOOiz z@^#nV@zVsaH-I;lKeQtB{&e799l)E)KYR9oYoF|T)#q*dlcoRW0G{eQ9r!N};K?Qz zJa3nuEPmwyJlR5m=k1}Bg}3WoN59k6-W35n@yF?)Uv&U)7j0dH+*LbUh~tn0L_Adf z%D71q+tPlgY!yg{<9XeUfK#^O={d>`!H? zOlqK#*y{X98SYMeppvyTm6c_z<0@lrv>iBc^04ypN;Wbg)+Shu#ILN~6xfiOyVf)L zzV>uYbm$MJ*c-9pTHNzbP( z%`41fwW8sC;;`DMsvcS=ptbsdy`zXrx_v8UKiYLyy<;XmFmBghNq=ZBCrkgP@t|)U z{pAnV3|tX;CO5Nx0d!xDJ&{t5V64)Xi;vE<_V~)4&!x4`h0Fg~Mqe%MdzRdU64Q}r zV6RC0QTAtw);`BG^l-K8^v?6qNm!f zXN7G~g~}9u^K1xKPf*UsygV<8FZ7-Nt?{MbVcyhl#m)V<&jk1KMV{H~c(#wR=3;+} z5wibb@H`&Pm{FbM3J>aiyeVnl?+M37AX--CV9AyJ-rTiMrXZDjmX7f%|uu~LIitMXMR zSibrM%g;XU@?Cw}w(^UQ7EGvR7>I zUgh=9jNF=Fe%{%y)}GwPoQ<;|wFWDL&bD^jL=GNC7;splkd}^Aywu8MbdjF>xTwC- znl5mj1W#q8GZkmB-vzdESl3IA#s1mRUNq=A0U9Xo;M*uY`h3$svgBlGpxDUKXfXTB zjs}W-g!$ghgLaK5Z>61e6IyepoD}7+MD6-I?e#lEPQzyGk|FX1hOm1F`;@<;{kx=d zmD?g8%ICLOJm?qYvMAo`eF){VoNPVP#woSuYZ_ zjWdb4*E(6z;zZjhJ|jPvIrqUn!BzgR#+>$tQJ%5ZF$%8g)4CC@MN|8ZXANV=F4v}B zc(c&X?1Klwc4kQQ8gl^wQrCw%!; z&nJBOVb3Rg`EAc9eA&d$C;W*$ZI7aNPlbOb_Gf#Z;L9(4KIzl=Jj0*ZOKb}INQQ14 zbuvWrC&grlvl}*(J34f;Y_B$KE^ljjJH)TKJD&BXfgLg-Gp4dbBpXgAJjsINhiBL6 zVrvf4UhQ$W8QapWwUvyl=Dx~Y@OLNP?qkEPJ}J1`m%`bLqNnR0;hFih#`uZjIW;_u z>63xyb;MNtt+9MO{Ue@z;!BQa>jQhU4IfUti|>WbYGq%^{Qi1jd()3)`DnNRTQ{Iz zy`Lys^i*un_F_0;hZe&rY=b_ZIPDq9(@8##r4w-?kCSwDg1HX%8$w@TFRt8U+YZ*QMgw0vYNi*^w=*Ie0{HkHJMlMm z;5Xl%rf&QLH%BGgPX3tRyHD^{PlTHt;a;uKaA1s_N=<)Lc)T7*b!FRdMI?aT$v8;J>13Id$`(1+{5j(<@0ct^V`E+!M%sO(w1{@ zS8?y*uIApuUBkVHyOw*8Yl?gJ>$7(;n_UPGj8Xahlz7-)1-7 zm8%`r<@kxTAvIFLMI3R28Q|lIBaRR|97%GuaV_Lp#MRE#!L^uc30EiAa;_CzE4fy2 zt>#+8wU#Tz)x*`x)yFl!wSj9R*DYKbu3@gtTq9hgTsydSaqZz6<5C;<2QkZox4AZI z{yp4Al~Fq-=N1~Rb=usmHBH*937@80`%1NQPoF{WEy%mgS?}XW4jyl;Ncv}afWt=l zutBUre!a&*Ws*S|8kT(PFlZw;^P|lw;SN>|AZ%u)}Yn?$Dgl7&>fn-EN-rbktoq77BkWrq~?V zwTff3a8Fxp97BGBax%hr6z1~^p6q`=PwB?#Aiwc{hFqJMkZZ2BMcN0$z3*l`&u&>0 zycZ6cAjYJ+y}cycX{z~(vXhK6X)g!a2+kgzY#+J&2 zTjR_eBfhkD(9uS1A3njhD}U=`Vr;*ywkM9!_S8SQwm*&hE{tg(ITl>rM3@IpWgM1; z>ehU}bj*G9uVg^E^>5s|8TFy`j`sA1$46AZ_V!lpfa;%|JJ1Ec=f{BbpkQnK9M9bQ zkz;6f%aTl2ZJ*B0jk2eU#-Pp7V*gLA2|SOr7>@#H{Kj?Z(VmaGx|@~fqB`=2uM@ng=W6PbbY>_7S|4eW5r95&P<% ze#M>QF?ZHYoO#n4(-AE*->E&%?n`)2e--XJ1l(w&M!?%cpW5s1$y} zw=BTd_BFU(WZn^tFHD-ZkyBW0=1h;E$i!lyjIhqIF`|A>Cvv$tlfVmT9;EUfo9J`p zJi0SFH)T82=k#~{>2U)OSsq)0zrK=w&>Hv%H2N#{4=OXunh%yvPn7Um`^jr>u=r*J z4NYY(SC#lv^Uw_RlHp`edv^67n~q9!G_<~y^F)T|%c06n=%@QKU|a`G!CuYp@VR%g z|G<}L>i56JKe`D+loEpdLCNyv|Cz(c&dOSlS;aC(p-AFE(c2lk#PeL6YsdPua2C|64TYFwb|#6>df>A<=puC z1IkH881t^aI(BR?F_$)KucC8P!X;nsr3K~U^{L2t^?OUT->%AjLjTS5#6RW+XR2S+ zU$^8Quhm*^V-}2TwEy2RBHoP0AWy)bYR|vecfw(BzmM5#4@m8&c|Y%zYoYJ_JAMCe zJeO=KeEzNAxp@82&lH!zyH0})-gAmFI5`DwW2XVP{ilfA@W$eFJ8&9syYCcnD-UqX zAiu=(_anR70$C;fy4dP1@>OFQvjo}Ify`=0w=F`KB}yWLRwhbM5sNg$N3Cf&1df}tl@9*%%`^ zIQ`lOtFWF5&Uq+f-w3^%h(Ds!g#*t599-SPL-K%JCH9f4+{&2hDm9(eA3?S<$fFJH zDeQF79LCA8%>j*?QrF&~T|Bq>^=emBs9n`TyQFh{yHc?-+ELT5z1*tIUvbt}kmr<9 z3|IM2XZJq@?e$)=z|t?koo7Kk4tLch8dRAoY);veZjU^{6fAxh#fxEX=^ZPAm-4Hs z!+4=@1S=Nc<#M(7TAPwV&8&W z1`p?-b=qgCklm;{RPIU1SL)GyxGv?R>zOVe&u+%P&~G0r=eK=t$0@W_+tp7h^BuvZ z4LT1;zg3_1%hvsK{5SmB=d|DF$y?qF@cL@-{V#*E4+j4QSKmq>+;?+vx%S9ukZX^g zqFig50=MzgfZG$Nh}(ws#p!nNG~o8sDdP6*O%AsK^ug2cR0%o(K0)rI1A0?tB|1R5 zK>M|}qbCaYWnF3JTIHJj?S5ebN?^yA_nv`wH{Q3AuZG`XtiNSPJPAS5F1|3`w8pU73Gm7|yy~H; z^qkYtsY!TAN4t8Qp7VGm%>1pISC<~Px+36%u>K9>#ooP^51NYLB^fu{>bU@~K+iP= zcsc#sISH>q{p;~+G_Tw$8#=FlwU^i+x_p@UsdzYoof7bVfHVH8^$%NkAJ%(K=(BiC z1eU;fiMN9asDz5*Dke@jsQ7eV>4;J@|+)A!Pw8~TdN|7T8v{D1aT<^L!1^8dLr z^8bwdXZ)Oz|Hbvv8Tp?&Az$Z={14>+M~lmUv+mUAGRoGS+FZu7>x$!6ej0GAI7Qr+ zOo3bUG~iZsinxvS6sKGDX~1pvDdLux0=L*{z%6l#xb=1yr(6ALz^(BVaeJz(IBv%? z=lG%`bB^Z{^Dj2%=;s<6?0m&|srKpg&opnNc$MF~bMX{79ZwAYSU81a@V@@z!D;`E z#p!fBvG-%)6pp>02u@8?;B-7O_haD{j=7%*PPe3r)9HBPWyiuP94|W&oXV%b>3HH~ z$HFNbCp%u8rr{s0{z!2;9glx>ES$pr(TU(R{ca^HOYz+ty74%@1xY^H-^9cRj%`VefuJF z&h&WaJ`-=|4A%A}Pk!20W}ZwK^Oi3?mz#EenYny!nW>vw(>$%Di(JhT-lg~-kG{#o z7uJ>Ja^>LFlep0Ia(>!0zPoh9n2+7~-?{PXGV;jcE5=QHv4fqRj}9=3VERQZ8dEsPl5_?4-`}xq@$M%S;wrTx-8~>$Obt&oXr>pCBXZD~ z3*DwTYL@j6O)*oN(Ap!dOHxjq=;YTV#WVDm@{u-A!RT>MRPiqxJ$SZgRtzE%G@ zQ@~mryx$YRQf^bZnF)T8t>nt}N6h(rAK7{bJEox|(7E{ifUg_G`GbeoJe&L@&)piC$XI6>myKnt`D;Udp)^Pl*Q_Ka?Mr8V3t0 zukj)NjQ3JsY}~L8ojLK_(k-F!=+5^TwE1wNh{m5`eOZ`qwU-NH;pX$npSbV7b6Qvn zX1;mf%U*SX*?cMI4z~Q-7OL-c^dVgYo)%fP5Qy5J~eZXm8AW zMrxwn*4I(q*5&5$rlg&FRK6Q21IZ_w$YW$*!}lOVQpoDtn&Qom87qIA?*-PAeX2L| zva`&yxr~MP6!aBLm7hj#nPjlrr*ALiTW$Hh;Nr?J9T^YGi*`@1&eINA##-DxSwBvE zE;@9{+I;j(%8irWan>}FyGB372U4cTo<*Z^5sRElj+>KdjP?Kz@h*D?GMI(Sm9@R0 z@;uub{wAIx@00T@^v#dOtG%7JUuvT3BjOA7eRyr3%Y7R!RX?>M=Pox3EIrSMkF_RL zv^2@((4-WaE=NYCA}=y!^Ww-KJGc1K>F~$$NaRMTmY%-3sZ}QO@#*yKm9=xLr?bCe zCp2!``hTFA_(SbQTg_vvBvRzgBxmt`^|Hv`l)hia_w8nHZ}5Fo->c6TY*l`Oz8B5c z-jJ7B%JKE{;gZ|pTk)`yPww0qtpl)g#{)@IVLs4j`<6X1l^5dkcqK2VlDmD-TYa+1 zlqE#hq#cJzc+&*yE|ZqtnnP~mo$bG19*ClLyj=SnnWwr`_f++%j_{n9eur~H z3g17=d9HdUnNsHG5y9nG&`i&D`MEOY9JBiEb3^#ecilGUTyhw9IcD(099n@03r<8M4_m*e9|T zoA`DKFqB8+@`g5%_kJ5T33JjbMu5>h4?iIEg=V6bgJE>E2@4!CCZrAz( z=%(|q@5(M`9YH5+O_q?0wbEvKHE^uaqBAVW#(MEMIP3F;6zty(R9P zk|?%mxv6>GxjZ{>^8%yxtqIzfqJ5&{EhR~-YdFu^B%xu{EL|VZ;ECD$(nM9sP^Hdo z)_Ml5}^d}SEORlu{*!TT^W3G%Q@g2zJ00(zgvuxuJ zQy#k6=MB~0DXqckkxdjem)8Gxt}SsvNoUo$(RJo*^PO22nDZk#>$#zN)Ku{t8l?4X z-)kt3El?SwH>kFJruIpl^oLhXS1&mLJuTPV8KrHP$tM(VG5}5bc#luS`VZL!LmChC)2;AyChFeJNe8?SZw|pfgElV?IZQhS zksG(xY0Z#$QMq#Pt{va-ZyNqh!@rD|os5$mX?Pr;-1(>SRWweN)1>?Z&lfS;YS+8a z2DME%-^Y3p;Sb-{nMMgy*?o|T3<^6kjS7ENTXHV-)XYt4$Y*E4L zv+ar`zMM-{s?B%hk~2jMQ!>u_l}JK4LXyMej>Bua)90C68=K5)i8$zYug`hqTiyek$9}zG$`)S+ZItBb9enH zBL6{r*k*ZULv5J9mX%D+d!OZ6afXA7fm8{dq~5FdOV+MkVXyAoR79o*jl?M3$?{(qf55MA!drJ&!egvQXf z?R}+PQ}saZO2*R#36=RIXNl)>m5H_R<;QbZ&s6`0X}1dcs7~qqw}$BRH);!hiC~-+ zs%K`Xo(poVmDRjgnXetr*R${N)pl%#>-i(w54RF4YVErwRL?HjuX@5|vAwj$$CjND zltngVKO>yL_Rj*`!r#0&)Xx`$zWJHp^Ualfvjw`PkozCwUNU73_kU~eD--vV15aBf z#-GNV#vc8J&e)Uws^DY{^vGl%;J(D5Hn{(;y?3yhfF)YXrtx+Qw5i)e{6#QotCu1} zmo=)rb=X_%uW9vBUNZfy-B>I4HRnt3!tkl}MRU_(;GV_6vF?7=- z@R2wptTWFg_LIv+k)=udt{yxuIea}3OR;5^^*03f_i^6_{;c&#*B;K;_xpKP#xub@ zzg)BU@VB<&*UCsePXE{ zXJx?j;|!RU!dH39JMFhi*Z&ZhYF`s{W}S}3>7R3V*l|)#`!!yrU(3zl>q<-+<%Y9k z@YA^&t-I^$tH2kQoql2GCp?0Xxl{f0-LME$xQsL^_vOB9af8vcW%=d<1 zmWAkLVZy6|skIksUzo4O$Kt&;yc3VS1>VuPko_+|yBeF;jiEt1hSZm`4gLvPp>m(H zeA?CL%d4#LcD%4By#d*^7CZ9e7H3yZa>4uXE#}rqaGyHl;Ql+bR{IM55Y|b8r{WQl z{gV$BJP+gjpzXKG->Ba2gL@$?>Fn_-o@*Q)S^n1Sp5VFO$&c`Bd88-w%*R9GF%v1o zd&5!i?hD|`E`Opk?}sl$4y?2``5^ZAAa;QK#6f%-`7GMsa}Zm75W7?7T@7NF52m%( zXN-I8^Qk@(o{AO0Z>)iJc8-tPt_kYu#Rrg|G!XIuwB|zo6a9-{bT{_aUD*3~;tSl7 z?Zp0Hf{!4dOFlq~I(rIz0AlIh2RJz41I)_%0K1$Iz&N#h*9))A2k)2lY9gG1v9T?!au0Gz|4vyslTB* zTJmz9OOEN;WdGoo*ViPmz3>leny=%GmxYm<>c_EfY=D-s zo8>#?{e`_F>bo)~5H?s}BJVG(F+=GTIIOx+XJRfL0mmc!1^C?g6!;79I{x<^_zgSL z@H=+)?f4Db@f)_`H@I=M27dv3CwS!#Ol*dDMQu^rCi@G6*ef%wzreW0UvP7Hd4FLz z@E2~i{=!1qC%*Ci!UphHJHMP8Ltibm{(@+szNN#bi}&03=A9*DRU3J>5xjCADQ%H2 z!Mv(s3fVGKll5@4)%BMB%CBySe!wiFFV)9qn-2s$?R<`R2G1=|vziFz349KC zy19dW{)S9V)AC3|{hJ~+_4nZW%J-1(dv>B>lJC*Q936Zu|0C03<~E&O67TJasLq`E z8oZr^w>KdN#ed&JSLgNed$2#fJyOWe|G+!X&pqZye)c|y`1#LxFJ7EyI&51@Ou6+z zQqU7V%r-D*^xfRJa#rF% zpd;jaESm5=x~%W3oo?zz6AoM&${W zTW5WcszeVw-NkzuFAC16fhHMiJLnt1x|`=7 z*2{pUeKf*;2(-Zu8Jg^e(B8S&e$1y?otW1{L;VS}+SZfcn;7@r4-p*U5%xo*XFmtO z=(%{J4qPO2XY;?@`lp%frQ8drv(cp+ktxM|5JvmRFy+|$1^;8P|6g-X7l!rqx!8@9 z{g0vk7ad-WK9v74)L#+Y-^cx%!CUfv+Jyfxg#WRcUXcGW)L(LVH8__hF2?>A@8~{v z=yB(NKx5eldS1(T*EivQ{xEdQkN3&`M<4H0Uj9ciWTVG7I{n3IZnm#9-d`U0A2ZBS z{Eu>L5Bw`Or^dSY#iVdSP2@|PEL}>!r5?4p8Tsmck~?z03i%{w15jDxBD4s3|*wjwaaTZ)q%S=XlQCxY_wMHY8V_C;1bkG{xLSGl^hua)+#N`-t8 zzhBh~czQX$h~LLbdtYg;IOvxC&Mh(73ZLRDP*@kiQm=x!KE8~WEbM~!fe5T}W)XWL_7jybwUeX>_ zUnQ9HxfI#s=N|A;0{_B9-e??-_3(o8FDB1DG*mxeevZAM`G?5B)z{Y%M{20P-pt)R z6p0hJEipGhv*Gl?B69O*=tnO%SL5@A$9&G}PGaE5%@>q7*}s}`Dq5`pp5&QyoZ|97 z!Z(s^`G|>F-LLxgTRS6~SWQ2FHCJ_nogw&YyWqbx1YfyLvh7}D#w+DhsXlLOuSBoO zc0*5Ecr|8hVy+>^yIyeVL4F$MnPp4M{w1zm>7Fg^b8`zzM^-@JRg`tU!rl?u75EB! zC*~I5L;Qn5Y~s7{4erD@xC7r{C%(aswDSFw`^Fw?_~Xu3(B5R@?ENGher__A$Wr!e z!$yZsT>Y}oBZ(i-KH=3wx%13x|A4qYasJ&|eq)DMaX*y48os$d7r_pXTzofnxNP%_ zqh%3%1)fK-!8c)pKVakgqP6XJI9c}%(JSfuLHfQj(qa4PhDo;Z;-mC=Z>Z0^=~MMi zxX+!f?fU$hpwBNf?NzE*eWbpUPxNWZ@Y8$Y|0VK^#8aZF?Ca(U`#NH6>OZpf zwYy&i?w-C|xc@rzR{OSEy{6I@Dytt#l4HqM-%t39}WGDUF`bS+r?_1`tNbtCON8ap5ea4 zL~Z>0*Y-Y=(DO@yE8DSS-Fo8lNt@e2J=n!HlkH;K@KVMDb`h|{^0TJ@C1#baC&4!t za_{Y8!4V$uSUx^4nLiNN#p^5{vl9P{|H`ivJ{!3gJ~h!wqj7uQz-8uXp5gsv$B@tC z&_i?;4qiu`OYBzub>3F5>A(K)Dn_F0-zl zc`rVAp;>BuTD4X47aGgH%`W~v(~bidf9FUi_=Pi%Eo|ZFY+Wb&=W;%^>bxU2hMhZS z{l&mj+t^QVhMs>V_gyQ?XVGr`mcC-IJZ#*TB=*50=Wg`&?Yh2(`b){R&e(dSH>L&c z(HMAuvcg?`>Ei5~3vhO+@Du)mxs`J2^YFM>3H?;JV3vhwWMRU8f~oks_#@1#8eihG zzvi9V_I69FD0*jd%zZxishnsdJv(CU+i2pSC@(xzUUL`uSo#q0SZDjO-(>dhk$Z~U zXdgdcJ{;38gg+~QUlD@u?Oeqpgv%(f1T$=-iUN`wdLMo+*?ss>@#i13{aILkQ&Afj z`JVmvg7V&0R~rrmb*TQZ9gJLIJWOo|3-6l>@D9UW8`LSAcln#09XcA=p)1hevMno2 zW&cieb%Hr>#oNhGo4*KKRQsq_kaN??_*fm-$IH2o_ohr0IIra1?GxoZ( z)y~-KXYBPo*!O4b_0wsu?|A)Wn|ICg7^7Yo)b)JZyf>XdjQTw#N$ZbI6{DU}Bt|_W zAETas;Y5sj4l(KkG3w!bjG7ogE_Yqi6~@NAvR6zIr+#HgyS0H8r(QTkoSIy3i>G34 zE>69mAP?pN^GqmCO+NqpT<*$wHPv0_V&c{Df!2s()_Ue+);}#0v;HM9tbD9va?H9k zl-nK+#gvQ1tbZKDFS|l9>#v65i+2@?S)XNdVO;!dP6)o{ji!oO|D}yt?>P zyLff%wtUQ5`7e8enDt&_);ep!$E=rzV%GV5_>+%W?@s^H#;ga4S#Jtr*2>l2JDiVM z&yjySWz6~-VkpNGvsQkH^rd3f&=F^#nTTHx+4!~cMbxk4pV}Cb=0t8U62A`T zUWDV4k6*i3wu@i4QrGduuVajj zV)5&j68}{_iWOhP{juWLHwE$QzqL5cO5DJIAHUXIx$t4NbhH;)QA3J>Wa(2pH|F|b z#jyX+amKL!JQTxzPmvh*(kWutONzv>|KxWdhW)C5UZS<;c26~iJqLKdYccFUKTR?0 zD=e*C47=KFs`D{v#cmaY)p%D7Te)2t7a7X?nDmLpu#X0RMgYG&1pj1X*x^{P))N$q zZ~wsdX<;0DDC^e*`FMC3)^$a{*_3^@XdU_73lB@WMEdGxWQlOnb*#9z;=q}ClWpR) z&!bH|Kd7tNI#R6@J=!`_tuti}p3U1>1OH53M>;ugW8+b5V&W_|Z$oQrl(+HzW7xzO z7O{yh3~b_N?3;~dj2!Yvi%DJ3BKR^If_1Kapxfo-h%_64>JYe3RtMQr1WkZoKSg0DPe>G3xd$>&&o4BL1B zT>8*uh4~!rSw5eGoFJFieWP-}_m0r6Bl0;;X0535IfTQ1S=)Fwb2yvQuOFs5$n>m`j z?AOeGB(Rs&uktrEpDLQ(8REH}MeOAdg1>Z#<|MqmEc{1Kz+V1SaQFEho4HrMhuY`! zJv257^F8#wSiZ->0()8O71e&NE%o!B`nEE#mj$~fu$L3GxzJut*!H;`EN?F>?^3p| z@;wC0=X-pR?+fka3q#*~ds*L~qq4wQ!T+$mtlUuLdkC)P&V9befhp`|zaCS%Q?`}9 zk-aIqK(LhKqBiMy8*mHlW$HOC`5uB}b!RM}?;%}rb6_uj*y1rOv6BC?mxWK7d*Ksd zO^3#~>}B~h##~9h^YQ0&bf%y#=GAz*g4t zL=ibZdA;T2e2-6r?7%+^hddZVz%lE&yKGZvOI7azDo4m*dI(5I-Ne-m=v4 zpUVTu=YF{LmXmWoirLMQAwKs*yi%C^A%4?X6VJKzmUGr$Zs~TU-HeR0cC%%MlK3A1UZo4lOC~f zhgmN)gq>;gWix^$9jyIZD35M+@kQm&4VfhQ_Tn37dwpK%aJ<*PGT5rtMqgpvu}oQ)^~qlzq^%O-EG19412L8XQtr5+2)D4=ju)T@Re!map;7YG*7a4G zkM=b*Z89Ilr_g?cJR>%{ElbX#EgLhx>Te(y_r=J0Xz{vg^I!c9qcbCSGuA|xvWaq! z_b)M}_8VkqrTV1WJl?+yJ)-*_@Gzz`qdoS>R|T8yk+W(48*CqRjXcD8v%>A0z*T#G zm`kySr804=tw%C%DY&|Q+WsQYDYBd9hG;sH+c!(H?_cdV%0110^CzKi&gUET4SmHv z5aiZAZOlK~Z%QY9^QO=@FAVC@H+Icdb<%u_Z?p%>I{WQQY#wG;a4)&*)?}61=bsG9 z_Cg2tifTeeWmdrxig_C|xK(_kT#5_U$qB-a9+CI`deW!PB>~t}92GgP)dlB0FbLR^z9g#fs@>+c)ogp64IP$Vt zxzXO1D||j=Vd~4t~1Gp?#i7vc^H{FSVv> zs8(f?rAZs(M9y$7a>R7d&xuqIdTelgg&BY^lF=CW#Mpbq``qEZR|EqYR;OpPDL0!s zWjCw7`M}cq4l~61)xm!4+tJkZIr8uCsFgfyfmhnOw4Qt+m)2k;`M<~v@ou+#mAZKJ zGtjR!br!Pk)yTbe)?`W+Ngi_kGV*9a{acVDZTw~r=b6%Zw{Wk%!>7i_>l*R6OE%K? zR^G9%k=?sX_}v12>Lb6-AjNO32cRu_j*sZ(Z?uO|g74He?PKKH?#=-Gf9$;rd|X#` z@4s~wh3vQ_8Lebv?&!KfPv5&FvU=Zx!>P@XpTlB*-8v< z{~zb`adhUK{aAaw_S$Q&y>|RPG~-OvKmi&dYY(H3A1XjY&L!-J@Atv)dpVo1M|3VI zPB2HDpz>BeyI*;hdo~i8v(6>z{U=%b=v;%|e}eUx z@ZxYI8?QIL3|tCFk09^DoA4BIZ}ltdvo==v0Qn__uVvu-RrN_5+uLFG^{cN2d>9;I zwr2&u73IkFG*CDik?W(VyigV2!`;09qTVAxN1_$b;^WYGu<$QY%bdA8d@qWW(7u<@L>-)7p(0;}w%??>Hs%;q(-jrM{9Unp0U<5y?DHJY(!zIDD~nqQLy zUU9tDvrBC=-ykCc%9GIl-tu)#!l!Pxmg z<3|T>FAUo8$d41H3w1rLp&dRx%6o?o_w9rFM(x*|h%-L;J{Xt!st0Ea%e{8I^DS-@ z7PlYMSyFP(3Fa$exV=a3Y3G@rEVr<#E#`Y@GM#!46lT>OwJ@S@`cuhV)JX0Y@c{SB zkLtqD;b#!-RredL4B$4-e*wehn(>xBx52+Vq?D~Yz@j&il5Hd2YjjP$yqeh2&yls`yLGp!kx(_VJh ziSlyUaNwl77$5to7|ueTD&cIk#!l&Y*^@Cm{Xz^+!in${FZ=yiyX~>E@3LjHW6Exi zl@0n;FxY$uRWMuz&jeaEdtEGA<>3eErZ@~cV(?xXgW>Bc%UmdWz6y9mU(qvZpJ&-DUUE~xGI{1%xf46`CLA?hDpM8EA<90UW3hXfP0em<=%^alM;D7ym4?Zfp z$6{@d+c@)$4KZdfc~I8-0EbN8C&1xK(aX6>~X~T+J2S8UMMN{K;?sdkpmyX<9DA|Jb`RM z=OeftIz;fvYiUEg@NzS-S!>d-KfgG!f^zlHte)Rr<+ti}(2nNF&oeIJN_?c86dI%W z?bVE5{G@TKd>n^2RN=6r3jgo$yr6s?T2rXKxA}KkW9ePIJ?(dDTnA>U3&M$j|HfEB-%x%7B9+c15xDPT!7TN&{2Snc`i2f0eHz zoPFf^oX$0G7M|{Yz9;cAaH@679nb%&mA8MQUE%znPQB6E!M_AfWedk){01-veb9l7 z2VT39wq<9xTmBwS&j< z_>IH$_w*5DO>>*_MgN5HXiXrTO!IIFC#QHXA5pyi!!Z~WzF*z@ESmktscwspd#NW| zIjpnA(}9nJo%AXCQUB`av(%T|KSe$6J0PZ!x_DwPri|?QFi*^eM%L$o{XI7(8=AjZ z6&gs4AzvMU%PMQ;mGf(1vXISCi-0!8cg?1~91HWU#-*!Y+S-^CQ$6 zpZv2LpUTLm5HB;)*}dtEFZ5kq=MCU!qHimGJ$+B*awg=-6OQyQ{MP=pe#i6X>Guz5 zTlE600T*hQm*d`-VsHwd!Dk|!_;O22$!0HO#zydW8|YgPI8lGq{X8GTdG)wWtgm=K z)2iOb@q6JU-!!k*f?-b8`*?dg8y)IsJn?UOFIjsvWhSEciWofA^%uv!#mD#H1n-Y| z9LmSkmiX!VnEKB9n05u*=0CfS>EwAIla*1~1?PQC=Y34U_B!ulI`3mT?_+X)#q&O< z^FF5YKBit`LG8M^bl%5w-p3@r-+3R?c^}hxAJahTypO4J_l5jb=Y34v|NVR=ZgLrW z|69x+8_T5l$yLNItt3Wi1$#=@;_J+s9VHh>d7vbJqGBc2amHP-l6hidJ(j^6?ZqgI?BK3Vu#2-ZDZZI&x*Uyq9L`R7$U{N;j@prX&*ch z6SR+bslCMG>?wdN_Ekpem80}@uyKUnLMq~^FipMyB+o@#-anTp%AB|yN`n@NXUv21MFZ8(P?mbO zjC|R`J@swgSmB<0=60V!_}4v+!hbEi>wZSTE8I>M-Y3DcU>=X>Y)w3G`LVtv^im&1jCyB4?Y4v*WxQ^j)1kR%i3~meQQHdpmT* z(Qke^8lLlnc|9?NcjiVqM+aj%V|P&}pLD2TIaRvo94 zhAn>w9E7?qeqvcszuSOI@he-SHSF^?Ssb~uBV+eQv!}t)swy1KtbwDy1V;fsf9~<~ zZfGrdg`*SYs6XMy*+9-`!TndK*cRFA8Jl>trR@f@xow&uPh{G>W}3~L zEP4fA4)hYw=v?Ru8ynP=7N5P(J}1(@Ngv|3I7}Ch!sPb7clteS>6KrnJbKHh&F?@5 z$LG5XH$dzXoYc}^UtoVu@e|c}?eutky~pbU@EUaDMevo{n}N)TkHWdkTJ6`Og=nC- z5O8DXxxjzY|FnmGbMv3xr_k*xub7>$DLTsJRP6?L_JuWxfy~lZX zcC$CXm*+aR<=683kbREOJ;l-wV((A-_W@?fZh-9{?6=F)zrmR^(c;&^ODI>Z`*pre z`ajNRy;U^)`4|m1cpApbZyGJ{WTMsc&CQgROuWz2`+x9P=i)TaRpz&r{w~f8il3AN zMb+@;w{tcK17j2&aT z{|a-D<=r$oI>mEkjMLH=wJmnBeDG)BH_=n=>$l}IcuMcYZ?}8Bp2`&?-Q!rtdBpGA zzn9x_Yi$2!_pBX1{UfmJo%rob<#$>6v^YbSQbpyzx;!1H$0y3aLu^7Z5yO2;{IdBK3y0NBJDr^{&$cH!VW99j zzDp0|oD2__2oh@YAwW#Gbw+wFMngKe2CQ$RR7bCV{BZD`h5@O1)tyv<@Ns0CU}2?m+N?Wwg0~- zX#aSuoe*bJYrJWH2DO>?HQrS74L+vohF$-IHn28|0q0wv*P7tK{EzZp_E{X3(6)GA zb4L7|;Jk4HIE8~R)~KWQLT(n7(HbuRy11oE2Q2 z*1fEct-oR;@9#rTN{5FvaMsV;Del8mU9E$)_6=*{1=zD{JFG7`Gw;^H@e9>b^e z5PIW4iSu?Pov~bpFKwB53_s~-tnX%x`69A=1fB78VYs;gAIEBYzPshvVEr<41by^r zYu~#&r1#JNQ{-A@<-T;$7J8TB^{-&_RTt7?t`yE`9rN27QJsr1Es#9l7zJU$0I^9lgo0kHI zzUSKNO)7J1#Hql1s%-~<2lBaO1Ge$AQG4Q0^u4mmZNYcS;S1)QcbK=^df0ufIYyF7 z_C~410QD9zS8w6pz%I4_O?zJ9$gU=H0cVOFoVCuQ9l%xzexMcR^CjKGr<^cg@(PXp zkhPs=TifXf=l0arotzVk_)A~?mzhJHBR{OUtzUF#=dRwCZCz$YVm0>5Vd$bcv1eD@ zp32AUqfUPg51g0w>rCCUEWU2F*OLdX1**FYyrYMQL>JvDkvcY953k^pOh)h$zKe(P zT|9(tK7j9HKj;1A``lZAzY6dSYweNxrT8-bj5$^Kcd)oSSN^9dT6_wBmv~s9b4fWV zMCUl%?})*DK@9E>sO(np%5dp}wh!TZxU}9r&$iG1i)YIt-rg5)uC@4ix{%G*n|GJZ zEcx+MyGJ7N&TfEa#vJa~+^TaT z-z(qJ#JmVs+H?QBd)F?NW$oGegYwQfD*qPvGvs6xEGqjF=JG>C;}7$%<=8-d0=vM< z%GO-O93Dwt1WyNkN}a_`C7z+}uDs?<@eTLOw5mKb8~Q={DE-{h$~j4JJ_lZj+ij1R zO1#$?Zp9bl=snQ?+vP)6W*XqDKPVrvYm(ohoOr9czSf|sU;SRTa(G{{;~vK*IfDK0 zc;Onpi_bNdI-Z4V8~^*P(@&k~r~T-j5%{MFtsX(|tTWfQ9zi!9#h?5nzT^ygX&9Y! z5IwaU9kvU-WbGW;7CVb}&G#(4N4Y|ZcRH^w9Hoj`qj#NV-~8>gol54coh}>3mCZ#v zJ%4CD_!Rbr-pd|(n&(}7(>}m`oB@z6#N93FB!7X6v$6y8fepTwjkFJc)!tH3>jS^v zvW>Mw(YJS$GTV86lE2g|yo`0{eP)n*^mMijUn2b+_4d_Mz%dP7MIFiDs4b-5;DmS4 z5bYGe2eKIrffKt|0Nx7Vu>gL^#o=V|ab!?!NUpyQ?j_U0{jO&m?z_SL-N3H8!u>Yz zyUuKAy${@jhtf{)zYF|h%W>cPUiQKEu$KkynL`3D57MW_We%@qz&m(uG*Q3aFC$OM zQg}9NbZ%;T|Ft%6$)S8F`vqO#L*+OR#2(F}yllp${+)2Yigz2q%eDSpH@}zp=MJ7% z_-F3D%dhm$3wU1TpF4T(_RkA>)*4y;?KXqhuZ!}G&)Tng$2jrLF3Kl>Wk26#$2Rf2 zfpY-b59+jMF9u5&;7cJsv$Wox9oWabIcVp__0W5xas0EBx|?|3#ozV(W$q#8${;k; z-jbvDPEYUMp5D}fwu?Ny7Y*q*bPx{=(T-?ibusj^dKh{XbXFC5SbbZxv|eOs{S8a& zMV8jXBjfFWrRE59J|dl663y0{&oTB#8RJ9nvG%-nqxTM4+d#H}>;u^Y<86VXgsB9U18oilQ}1q=w|M4 z^G-O+Cq0|WX34ja-mSSk7lW?{4p1s_oM6YM%Ulk zFF(6651{KGN7oOd>n}$i&*R*NWKB---^z!l+&Ejp1r}eCm+Ty^K{{&-Ag&|D%;`iR_WWZ z_J(rFTx~vTbIB~y91LDRhrMx2YkS)VqGGv-)gqi9Df||r5zgPO9A4;Y*&(vAWP8X4 zd%Mr=brg2MQT3asHHV41g6^x^|U+uU#O7JRI#8U3v%%OAMg`6IO*W7(^88cw# zoO1bx*i!+AvZZ>5+7n-lzKtEFc7?-z))sSTg>NZ8GiOcgem~Kc%su_WLoPAPq;l%F z-r|ipz|IMC!F!!q->P|lJR%lnZ-6emFLaXwP-E!^wr(pg%e~EXd%k_?+f0{9TDwwX z33tPNt~@Y@v6TLS@|u62;II5LvOWIVKRf%y;XVuQ#bs(^jvv2loxh-L#ny3l(J#jA zqDIP!2I}iip|5CCw0%Zt<-5`Ru0HSa&$5Hu`zW2;25q+8Vr5V`(mW`e{4jVGt|S`` z<^%SQOnv_(^S=IuyXa)Iv?rP@t{wvavMIhpKa%PA+%I`idynu_zMEB<+#)>U)fca#9fw5vU?Pc!YBOKYe z;3?(;$&uRqW_jNnwf7wORhw~J{4b;8D1UN?Li#=A+7OMNGXtg1Q@)xvz6br@ zK+X|#2>116%twK93G2TKoJ)XHFwUjDyWxX(^82N}?MKN0Q#Ok-ZzLDcg{HenI#6&5 zM!}cbnT(VRPksFzf5k84hNyQsvXW2d80~6ZBixPfyv{z)N=HWU)yLrb;5hicOj(D+ zqSkb_k7K|f*+~Ec^emj@46tljV6yhiT%I`}2L7JuN0#7=MS0|@up2z5`BwDy33FXk zq`t-hA6Yy0Z|Ot$R9&^pS?avnz(&GW=(6pQ&!i+ zYl%zdyR`&1d|LQc+v;N#?RW5dE<7OHGTyevGQzj*{1yHwUs#Kri#D`dc(^XxpfTNj zauNA6=9Ls1tZ$ORWw~1m%W}8T_OIsGf{))RJ(f;&7NfxD>qINumoUQVAUrlN)`qjMHO|XpxR#$o_|Vwn_z)h% zH_{!DPV4t^eW-o)(@cHIkzfokH_@KfK%#3kT=+PUiLqq`m-4UuBIN`Agu7+<;f22x z`e7qD`~A|@_WZSQSxs}%BFLPR&w#%{i$CS9kqoNdN#G8$dfeB0GkuHygp)81@uy%D zjvl7I?)#nyz8vs9MVZ@yaWdFkn`8CCDZ4+x8tc}3xKp`k@je0#q>D86M)N^(thhWv zsZ7=!Vh>SctnOzUISPb>t)A~6xwRJ_c6bnd1piAIpX4ggSYsBQC12trhdamjYbhr< zjxI4Vbm3t$I7Dx6=$F=RFqgiOMThL*=#am;cEC zaV#3+U||(_34BcsZ<{;wa=$i|-WW@>kHgC!pC85-_`8F#3y#pY=qi20JFAPNhl=R9 z?X>53Vmo-;4zF&v^#4WEkd}-j`7J!EzH~?ECzUaEsm^XQf?j;qpqt?Z^%eB?(wN@9 z7QHQ9Exo-A-77iI(w54qy%oHR>us&qm-_Eorw6^QyFue>ujuG>*XM z;`tySah($8q<2%VnYQBcI`cF#{vGQ49Q-6ZS9BYx;@Ob>@U$XZWk!ejN}&n zDrn9T4~m{MO&Z_a4)oX#^o#J#y5BgvU>m-GCcY(k-@$uhuEv*oOAD* zYaf&OK)4x!KDIu4{KibPGMzCW&%-l5A5zxLV0=$J-_;byk@hzKc8cu?Pk-s#`B!*Q z_@0QSGoW3y-rneGx(0u#awBVQt6o=Z1}4E-{r(2t%eJk4-{s$Hy>Z|Fb?Xh?>uK%ayfKYng@s{ey~KWuJu2zGhMC1;W}*ZZg`}by3z@2c-FqD=A89B zYY$RBBiUG*FZGwU@NYecZL$OX=4dIskb!0@zmn$#JZs&xlJDJK->u@k{DXXFtQG&D ze(Nr1=7J&0;78kw4H^vryY&xd{n}vk{^!5{*^W7Jj>pXUY3ozaSNTBG&@~Bt$Yn|V zSPpAK`#8OMtx>E@^bMN}%slb{$`*04*p!E+Zhh6p`szpUG58%2|E&5uhszP#KM1|r z;FApWol8H&CcqPJU!HuN^d01O#6WMAu{3MrS@dGf#rn|olcXQDf9eTOtLHyCe_^zz z)E&8V4C}~$b8VzP4whC%@MiR2X=${-)D`V3Wuv{N&M5fFlhL|p|7MMCeY9^gqN| zX(Gl|00#xeh8%I9dGyKoX<+&%=+OpT!q*dj>+sbFJ=Pny_qhx@^qHeJhJBThFY{8) zc07u#D_8A-Qa65smB{Z3_#z2DbL@F;Vb60Nz6I+;z<+?>6n)-p$GFveZgUcUMT42u zpCum;cdlP4yQmFc3u9$pBFjExWNn9w`W72>dOvHz3^8Zed`}lT>*lqN?*Dw~qlIDC zjiQD2fw)uViz>s}gZW*w-E4|KOtsM_y1C7KhIvT($oY1#ynq+qVQk-{i+5e*C4{Ez zZB92YVGs9El4xiCwH(`C-vN!2?1?~c%!Chtefs6M=alStk;+98pd_jNT2lItNvb%{{L@g4dZ@zeml=^=NX~1 zd$rofYov{t=7Ih;^I(69yxQWQRP$FO#xeg0JR&{X49zqzIDXao@w4EEaW^l=r^~vo zuN$A;VPtxG|CP-*nI`rQbNKdh35|d3KAXiWZ9h)idGl%7--nFur4Pl+xHSg*$D_Dl zpDx#h)u?PWiaO)1CPB$cZ-Z z$^oqd!76#(df#Na+CE8KnQ$DLE`HzI_Hq2Z?31)TOu3BN(#HLPO`_Aiv?W?eZti~E z$<5<-9#q_V@r$Abwq4-~O9wqi=>^D526@ulD4ZqX&n!Bxi@DL#2c1e8E3cHZa@y&2 zS;qHqUN+Cm=6TsXbJ;w3WMbJoifqPZQfrF1Ofr9*RxY>s_I1Yux$kYf5H=%wnr_Y{ z|2=c#0oI0N@0QS9xdweeo_yxYPy6_yX{`&;kL#I3H!z3h*x!;~*kV42r=rY+M(&OysrhnZGlE-z&{6_Qeo7x|_+&sy+ie`JdlXj(tnt-8M^Km9OI$yQX zMoV*#p-drRy6()e|ETsd=;B`>_iL(c(7cWN!c27JDmynMt~Qr4hpk6HPsD#(%Ta&+ zCfd{-p}o>DKUn?d=LXH4YA3^7+eUvIcy{*R5ys%=gbv>GjX7c75YNmB^X!}e&d`s^ z2wXD|-V!f23*5`S$r!Ss}^62uf*GJrZJsr&YG5NROfhl(Ve+$ zqvz?vr8jHM(zesAu{?d~s^zA8x@r8vRj=j#5zY6({<#$UXFW9jug2rpD7upY-Wu4I zF^5aqYY^`!t{}mC#T7J~r7_+gfcFnq@xJ`$;3&McW?)a=+|E!ncb3U;ts{>rls>z{(aT_5oLAmrid*j`MKZ9PlWso z%|V<}u@>EL$Jd!@tuxJ~{nGn8X}`l<&3fQ>nG59We!B20<{9RIhtQutcvJh%%gjb}@Ux7G zJ?d8C<7^v}p(d~QYwP^O(KXz&XreV^bpF~ikcSOk=LdbCN`|?{tp}v@)lSg)>v%p> zoeyrT&IhOH`iB|QL+HK(=)nD~x%Q#!S=*xX!L`+A-IM5i^y>UJ@FblteXq5VbiH)E z=1DtG0lS|I3!i|8hadiDgbGYzuxjW%>{j=!$OV3!>e{7Uj$LjjQ7_W96 zbi6tYowZ(A#<)7+m6>LC|A9yGtso2HnZ{_*f`#zS0(gjZ^3V$Ag=36Mx?g@R@sY-* zwMHAhgr&>_8sD|d1^8R6cx4K6v@u$)AEv{h(c2Xx)+8 z>SK9!4qIPY+599Ue@tTyR#-|203$(1#>s&6;}Y(`~Qf&KH(Dcy+3U( z$8K&S&%u1=U+IlQ{khHypr7)l3^PaT9-yROXUxanwcKpp9r1mbGv@~j8_cH$H=q|} z$FE0*iE~5OEE;Mw-S}{`Q?lz)XdyF0q1>q6ZCL#Kb&!9E4gg%gx-XeTDw- zGs72H7=UpB{jX)Lq5V|b75KaH6+%IqLVd zt)XA_`8DpkQhz@xzm7fR!TH>G^%~u=BwT1L4d!cB7njSoNhWx=gIpC4t5B zaE0=A%EZqf>h}-TCiSF`XYOO((^QpgZI#YXB@+U6CuegHwWvTf;cWI3&|9IG=O5jUWtSI~cmnrsbCi8^X)hdUM zAFyjg?O7!z`6gZ6?fZ?d@#GWPfUkRjJ*V${CDr~Bt@-3Pkzd97N!VY`SU<^)ty=E| zf603DMc{wh+RTDcW%OHT?}vZ#$@x0lp!eF-)cYKJ$IEgbE@Ol20Z$E-HBhpjSqGf(Kdd-pEpyr4E z+x8o|vQ&N}J`u)%-~2Pcu+OfciD@XMh!2>H-%@^vfLGb$4i3&cFlR3C=ZBRCPw%tf zP;G16DbAt35FbjQulkbxpmz07^KHC+y^GJwwhX?9Fn6bfqg;|R!mbTV|37zp7vIlZ z$=aol{pnTK*Kt*UH#lIu#=3boe4)E@A7V{^fVKVpl6X^agm{COV>4|vpT8>)4z&)G zO|JcZ?SBgoZQ!AeZyo0FU0clIL4&_U`_VRb1pLsx^@+Q^=7*re0oEw{3&0?F*k{;- zTvYa%yXix54QhLxxuW&wS<^fGT%T_=t^IS&iu{#{n~00g+WqvFou6ly|1wj(r@otb z0r~B;pRV;&;D_Djx~o8&rDeNWG#gL$P}ob?-hg1Yw1p>>YfbeQ@O}Z~6C9K&Xq;Q% zr)KdfJSv_N9&8_-IbtsG!9f$@q?x<91$UE&`$_h@EzByzSSf4!6dYn)fMYYn+5O*^|9KHLjWGj-1@4vXHL@gvI*K=SJie~4DJzhw%}Hrl+_c+!(8M< zysdF)Ty7j&(hYuJjWe4=lxHmhzr$eL&=b_9oOGd!n>zBK!%g)#AFqPtK3`7boD3F? z`-Q^NIRPvy-Z&QLiP3Tc`2^!u9!5(~vxD3>o8gfgcZsf+Zf(Qt_n@btpXl}E18%(9 zTWg|j8+xOWyGVuCG`dHAD(M>eHLdKRkA=fc#tevm_zwRpPOIM}^wQ^jDxCXfT4lX6~eI_18>$@&4jEmgeEXtNj=UIX8G4V_Xd1 zj?`R7**<_aG9gg>ugxfasehcUQHLuS#QLl36rM4E$d~-ps@I<|WaHe@P4bCWE z*ns?rmcm=k^0M=Br{HbmpkIH(S=AZ%ri9yO*36T&m+H(~+^Nk?ejXJTHJ+W@!+6ew z&$O>t;j?wV?o*!6Tr8#Ivk+e?y2oiQUJ{Rqx5Q)OFY(>!_)B=Q?cnE7EM|2a=9%!A z#{0-%WxT_dev2*5Qq6;=iQE^G70Jj#=tt~2^UwZLhIys~T8fTkb2P&o*knwuxZbQm zN9Phr&)1SG$&O%g{LKBav`f-J>mSE|k~fJ(8O0q4{~OJE>PP)EId|5c>@qjemh>-v zy{((f`}4oSeYT2O?%<4>&XzT^pDsSrcl2Q9b-=N%?;dP}o;Yi;{cO#y@?ir-|?e^{d48(@z?Aq{2SlZj{4NOdG#BY71cZXhBrD} z!^&Ww^B{U_b^b2jzIbfKpE({=9Jzd=|_EPLjFJ5_7(@72AjJQFRnObwIdtSt$kb^a=cynsKjIJjU_g* z_E0;*vf$G*iv0)kkQn)99RD#fQdkbm8RRMW6kD z>gXf=Et+UgPqcuSk#ogSgQGTM^^Iu4Uf*4kS-wFB`GQ4*&EGzK0;gY6uecT1HY{fob0>k&~bl-4#FR8Sp16~cFu<; z8i&(E4kyohc+==7^(k73hSl_9|H0zk(aYg80z%6BW7%Ug4D7w3c?&?WxX-rQH{xonSpz zv|E3lqn-RLfp+q(WYBLN6Vk6YZ~CX1=fR)gPP2bB84c_EXPH-yp<_kvF7R{4T-=7WBBoeer_u2DbdijF(~q(Vo@5o0Pz{-h5x*gPH3Q*@QxYGtx-m^pO3 zeoRh4rxN1KNL5yOP&g z%z3IacHWy@X9gXpaqA4O+L}uJv#oO<**2EmqP1u~ReIYqQ_xBHb}}-aE)J&^nXRU& zaQScLdF0lKhE!HGjO$U+VEPz29N&l9c(Ju5LwK3aD+##)45hZAa#FW!L`w|MIHivsFF!-RxP#=|W}O5L^jy(Vat^YITchp&Pd}Af{086Qwe#hy(@}0>iYRAd^O&xUj-ohsIihMje(=5NE zqn&uEw$E|0c2b!v^NwpP?nBWyI=7COU9A^ne@IRxzmjESsTAZl$gc94TN`w1#Rd&? zq9Mzn=EVA;%gn31{GvMhzV(?>EyJi}e4e(f=Bu?oX54 zJ&%m(_oM#K1!H;`yJG&v>Hv4wg!I6)F?xV_EqrTVYJHaWsJnIK4L|b!zGQTPm-~N~ zO!&39cdon19Dz2Wm}z%{Q$K$*?z#byc>_!^&NbWT{mRMS^D)PBh~%U#g5KK&K&ES~r#F}JGsFZ>o9DkmMJ_54(H zN1TRgL+eJ3<6P14xxTTo8st>;jLYiWn7<~KG3-SS+!g$4ujF3Q4F392IcvlI@xE=1 zi@im=f7@Uh@PiNDbx|_HPV7eS=9pV$4^LgDe_T$^kxU&2fA9e7&8+p`1UU?AP4zDs z)O@1yfo`XhJ;m&+uG&$ZINcPht+pnjS#{mBJzsQw*wJjO*RN~5?V}tDYtgUkB!B4F zWmPm=2F;SlpK=0;R@V~KrI-Nu%(k%C*3LJV-)KpGqqzy&a1a}6kUTeo*ip($C404q zZAhFO`JG%|#_iZ!%288fjU=C*^L=W+O8w}(6MA$=XQ(bfPNg4#&#r5MwE*naC%WG1 zX{ST0X*W^%xLp`zQGHg+qu$lhi+UfYtNh_ptskdtyuFp+O25~5JDA_-u1bHkzRMO^ zb?XbKZF&;ga@O~(($>;7x42Dvs2Uf1QZPCB8&)si89tGXJnw;tXlHWu3$A4TMGs)} zatG-jRO)_Das1SsOqWm8?pJ-???Ow}ujUbA;HFIDIFAU{zo8F}S-x1?M{I9Vzx8b* zemmRz(y`g`i`I1VW$3(<&NiukXNx%hg7&<$-^JdhT^H$0l+I11a>H&Pw{Jw>3feoC z%_jf3^qXw540_{2_~%;WHtuf-d&u$+DrcF#>%5Y34FE@h_N{EoPjQ;PWEYpwnT+JG z(|Y7NY%IY;&OGuC_gKB*`qmy<#b=_pf@h$E`c`@Af$_S15jH|CnsklZSJr&2wko=P z^15+)s*k`coiA`-dDVw1^ejTpm0q`3=;>@r(KDQpUW@+azO9mA7L9oi{sSE=d(g%rC+zFpU(amvmN`nF-@Q7apiB_iLARjuA9hrtbAo1 zz{0sC?0o0v1sCM%b#y%jT?L=c>wImLuH*MjL|5e^7Az`Xo32s6zSWX7y$`gIb^N!! ztqNTyuN$Xpye;Nb=D&(w=eLC~^i}J-Y)#~I>vZ({ra!3A*ToJk$t$)y)pn~{hhI&0 zR~xcP%nS4C*w~@8c%d(6<+T}{$}U;z=a=wXG01w>ICU-_J?i}f^Y9NYgLXb12Hm>^ zdaDhseQL$OT!zd82Yv(j3qw3jJwCu`{q5WVI*0Gh_g6pEj(y!m-gy^K(?fe*#M3O! zxH!YrtgTjOj$=csJ>@EyC}v2wQjAc=PpI|b^>#g|u}G(h-YH^2LVSaK(`VYQ#Y@se z&k?huv1`s3ti-qU|2@wd+gP82iKLH4$}SE=eo5gnuZ^MTvS(kr7 z`{o;c|e+2I@W;$HMlC6A0gUPYH~CYDJy$7tYD-9IP8MC!NNTLeIxJ16OVk*@ruq=%2rzC=V?GLpu1iHO=KU+PFz~G{%Ye}_4+Hm?$SC;{E?W#+AFNNfXV6*;1j%dURNHdiPp;# zm5E7gdyLxiF`iZrU#=EL$yx+e+S2X6ntMfF*M|ryS@9Dm4eSGXDN8{a9G(PIzpDP;c z4yp5Ue0FHuaHFH~{wf+jx5m9Uobz2p49}V7h!EfG_I2gYo=T1got0L84D}bz@9RuI zXZXqIVg|PGH{^%d$}>L7A@;3^L3erZ6)P%VIQwMy!JRKt{%`sDwI|a}yUu^@;>Lqd zFvXsX#`&K;M}%;@Vs)U4+b>XzuigJ6R$F7taqg7y`n`fZrCEyG?<=AaT;3Pubr24S zy|ViuA-{ugpnQeGoACDt{4h~0r{H*^C%|zg{Gl_kF1Lf~ZuNDa^86v+b;uzyS#F1F z-Z&G!5KmZ|pC-4%WV|7mpMGy;ytQ&WbZ`bl;}HCAkM?2qxgTP`TX{tHm9&SG;#^3o zm?O`_XEXTpiGy)@9&|={o##ym#eX4YbFq!VdYMVua|$8HgZ5WdY7=>9-MNmm&GGPV zwFBLZxh|hGznfn{9xTNszQQb;qd0Gu%RzD64V*EK(pQlyN$se=5bvcj8QQn|rb+Hk zZtL~A93E!B@gd?s4ip$GJTi8#X$|nRA4J?`C7*-#hm~u=aKB@UdvO~%gAuzMG5RvG zd6Lce*_3(gPd2#yNy@eiU1+YiV~v;5y-UZ*6QOY)D_?JM6UOiudr*p7)BXcIKhQ~x z{bX>5edVARv^V}O+7Mi(^Gl<#>556$yZAoG@zIfT%2zzSD7r58HaaDy5ny&)>MUMvMX+l0U4yS7>@lL`^JZFPw z7-A*@y=I})1f!#u;zSyvP4uDM8wefq(_+s0yPOS|qeoAb*Ra3bwd+*5C$G4N>6`;s zIk(qdox@>loRZ*+(@HTK@%Z#wIUjTeP4Ma8i>2ciX-jYl2EnW`tKErs;B3=z_pdoR zo=N_O3N6`J$4;r_Z@7^lN|%FUJUs{Rx_mT7sWNwM;(Y(hpq)mnvmDjA8%`0^{0h@D z`&3o#2H8F8OLV@#(|Mwpm@v<1j%hMCdS2|du~(DjbpW1S%EzF%inBpu#h6YM7xS}_ z)hAX~Xe|0LChVN4=XOYqk;{r6jpugQjK!ie1)}R@`5i=m#ivSlOeMdAcu?m>gwJ!8 z-=P-Gf7Y0~ws%A8p(hs*&J=649W1Y|>Kt{6K%NvBq1F@7%Y67;THV=S`s z;&+MLRejmNjt0mebE{%7iP^TX$BM(${KoG>u$jfv|HeDfQU5gOO?GCg7A^&QpoRL< z8Bq0cuI9Z*u77c~5FW?d3KP?!dCXdA^R6&|sU6`Hoi;AVgXXVVvLYJQ>fh3uT&4l1 zXVXs6nPT-B+WuMFDUH`TdTCu2WJl-0wMGx;#jiz%!dY>h9oN}68><`6i|-8Q#dD+Q zA{3)r$@9=#BhSO;n5=9WjaROm4bMeqdNv%r=w-DRdv@$O@81}e)n&+Plzx?o?0Wwn z%e!Y+&VA1&k3$dVAXeMl5S^nuwQQGovB|6+da1e2&b{2p*dNy6+}D`aIa%)QX1%@z zADoRTwrloFeED!DT=^e3i^-b(N37Y`lk0T0h2tw_E{ozn<#ym6#jepY-We~3R9A zl>0O8KTN~-@@HLwJstNS3dbQgEM@TdIKLrn6ewR9*4itR#r__jqe1=O{f_Z6Cz(=A zbI7HlJPp-yXJxKf#J|Kka9fbMBz_*3w^e)d9nedA{@xbJLqevQkh##3k3q_1qdi}>@R9gAXu zUq=2`jZ3-|dFAYdlhyz5`5AP6L1!1BH+fiYWc+uxDz{UENh7ms(#Qh+Hw=BFe4Wj? z;L1mw^k$a0Wl(KIg0 zbF0pfROemTh+K$ps+v@f28t(@q#-g+q+h(0)5Z@*->SNCGO_q0|uPX1trk_&Y1R-FUlH+rgKhu8Y9x%Jt_FPyd$7{7p<@4SBU3b z5bjbwN5NF`F36^nUt79cHrv_AyKtKQU>7qnN!|sg+ZQpvh!?s>*HBZp*|${aS)F&m(X+vh{Y>&MI69u4ybGe=Pb2SwqpR$Ou`)i@ybEJ#(-6gT zB}lhVmUp36-8fz2ZRy3N8lo&(rn`?0V064SGXzVV%G z8=HGUcTYPz%jIGilY3!zmeKb(yDZUz&u;Ac|83aBvOf*JJo)VAntAx@LY{@$tk)0q z>+Z9$u{4U?%G!GI_4{k>I{!w$#-Bzkjq?ozpMY{Rw2+(OxV`J-W@2fs^072MF(2`o zQQ5BKQ|Km7!$ZW?94LSb;(_)tm+md-o*~^k6k=)w|8wNvb~zZ%td8)Ol255GYh>41 zTy$3Mgi$UAz0(>X?qg8-eg2!i%ag=WE~OXs0<= zdNoU|U23tmA_pQMp&;n>XgWLvOXb_QTf7 zI=g=8o7UGii};pG&X+e+?)V$N#JT_F+{L&d`YJhR)o+CUk(YFyjlO}>nn4o_7apcI-a{^Be_eIFFNFowmFL6 zXXP!?-T`?>@be|H4fc|kWDj!X<_?=Dn!Mu)_8t^(DO*~1QVMqE8F6(Z@(M?3`cVFo z3EQdQb8Oy@|G(!V>3E%^jm~IDKdzFU!kj3dL^pQJ8t;>sN-h$uTjRM%!n*ZrHYs%U(CzI%VJXq-MzW4p#V-P-7M-?c_c zw>nxrTSeoU{{6Y4@loR{N?X}mG%Xneei#@+tC_Gi=VaG+UQZi) zJ;CQJfAl4CmYJSIb>^+?gTD8fQ{|-H$6~RE6hM^qxoU0+QA(^G}mmQoy&*PX3mf?_tRdE_HwkB zqh5~oc)tBk-l^bC>fKAd_fRiOy)5;zl*v*rJH%emP~!GGY~7@}$JX6R z|H{)sOgR1i3iWRoa=!LO_WK5t96EK|y@dp2lIDx8GtC!TH=5+Y2l=;&Z#n*L;a?yB z8q6E`mu?OFrN+G8w$TK<>O<{vuDaFkJ+$SbwcyjWyEr|QJ4H7F-zJkC_&xrygG;+v z+RYB-`NtV;{&fN4A`73!r*@ie-#XehcS+f{Hwgc?-)h??hYYY9U^T#MXw&79X#mG6 z@BF%RY+G}oQ-G6mExs+`JG7OftsHITXe&osIpE9D&PVvS#kX~@Z7V_See(9+LYg+k zCnmXifoRP8A?{=y+F)jRTGytr;A*Drz$Z!e+VAYSg;6JJAuXV>gAqqB3nj$)A-?gY(Af)c?iBa zAijaVNoZT)nY`tj*L%Ln+5K2!UT53rtidq&0ZEoN4<;3MpTyx@;a_eU%VYBca<{k z9G3Q+Dt$S5s+2Ky-&AEn{+-F-31udOCzJ_#pwd?bo=TbV@Mz6&{H1Ol8ezUUA^pT$ zGnf4`M~B73!&^trGFBa(3S;sk~FSZz&`_o|$g!ert1$cXMmJTfn<` zP9V`_VU2g$s&`}hr%pU}R&D6J_IS0ABp5Yb1Bz)f$hyW{Hd``^Z|Y#|ig&6v zIi|AAoy=`>I@p)xz1^>?j{VUY6{ovgJcL2sPxjr(yxD7GBO1+ht>`Pe7f%kKU4p9t zJ*l{f>i07zc%KBuG~XJ{Yg@n?Pdw0tK3PGV!U=PPZLf*<*T&vA`uF0GWwH06 zym+M6`<1+3McabCy6$knA`^Zhh;tY2gCtkz3 zkrw_LGicxIx1O)$@12Mf3BFNjfFf`CncQqu%$YxFEF` z`i-~yZF|R_z8=n9$$c-J5$;qUY2Z0VJ<;QPic7IDZ^`M7PQ`GjM))t4xYa18$Z)5M z>SDVV9h}e^TI*S{RN-AJQKY=+a4U62zl*l^{ucLbGvD0r6XhGpspjsW;f@!3Z;NSi z`d;!w+8?ufI57eoM5F95V}A5{tp@64Rb} zfcA!))>GfX zu2by_m(u4M508G=n?s4=Kd!_Lh`tVn-lEDjRFys0KXKWoX1j3;9-YrJubFO$D@)YB zW}122*K=ooEj?`e+kKsu%%^RgdUJSEcs5M2eAg7qH%+0u@YDi73QteZa%0!Kbgs9c zcaQsb`mME#$E)S3UH%*R7T@j~TV`OCA6=b^`Ew$^4ezV#SO2c&_fT)5_m%pivSj&L z@5R%M#me4EuJ7RnEc_y;kQzqg_8lH=ZhYTVCqE#Nkn6G@E53xv^=iR(Irb zHQ^JE(l4;C;{!))-GimJo_dLcL-Eq`u^4lw#kcTGEO06AgOQ&`aeu<~C1#`vKH*IH z)%MJ=@|0YZ>oLSda(CV2J{R3**WP@M(OJ=!ZP)nv3B{wHS>41<(f91!^I2%{P%gD~ zIXMINr>9|#m&-p$wvxO@Y#ubI|{f_NZHUR1XxO=XJF_bDeE zq;mH8^zaLJ_gx%hVMl(0od=T4V-M!_E$6>I1zz{VccLpXjwRXNgI`} zTSt&9mv;rlLZ)yUsZGV+hjZeJp|te(ZHsqACu6o+nw=;|{RX|=-h4>BQ{s-#Ch2kU zvSdQBzv2PO#fX)K>2_V-lDXRaJ9#@*t|hUIoC_{aFRUf@&vfH-Yl#Yvi2megBfQM?a2m5Czp;uQ$1ieYcro-)o7MC%W=mc;KT+PCM-N(jYiz=`web=+ znHkU{#jUv-o9@cibGf`Y-C(Xsq%yLp9?Si>{OK|Fo5r)y!z{dueveCyS#0 zrDlZq+Y$87UHKIGG)|OnMlL^#d}SRj6YC?<+n6P}R5I{=mOCpQ-`AN$YkOi=1P@>z zt>+HRINfUdO+`DwxNSy71~ygUe3Sq7VsNfDt8uP=lc8U5pY#2S*Y&Nze-qxspT^wb zG+sy^Xk8s9iBC3wdbxjGZIHlg=e#tXH$tx4A+5gvyp6N>6m}_ ze5-Xu;M)}!R&cnb3WuHk+l#@W+N_1cryG60;H|F;hr|Axa44NG9E$%=l&|U+FSaK> zN8GXFL-C;SYULLG(>)8RZ6o9@ak-!zf6XRQQP$=G7>lF8kKNG^JdP?lV`APD?lfOa zRecFF}F}PKm)wnh0!>m(=k;AWB-O%2AwRs6TQT&-|eg-*Ro4deF zn}vO4^|AN~TY`6Mtq#z8)%h{`7gEV*tX&m!Hud71)mZ=7Di|JEw}ukzns4F1*Tc>HhnI(bdL0sofp9>-s~ zOrER6ZDvODkQ*Pikm!|4_JG|jxgV5o#a6gF{bTr1_1yjP4(~gsh4G;GnP&vMbc}S# ziSixTw7a2wGHTCcBF$ej64O}>KU$K^*twoON}AtWa+zpGB8sTXoL@O3A^p`A>qG6I zD7(D5?afP6w-owQ{-YM`ZezYmzw7hueX@s_n^YfTK{nbm(>)BWQ7U<>(K^n;(AGUE z3~@WRh@C5#b~jYUJqD(wV`1v#uJ5@fdD%jKwen*KOEm#mu%Z?#}PRqtSyjK~I)zf<{F#P>K~0bP|>UicE+?OU-Qk|WUeI+H4nIDBj!wl-sXW|2KtnM!2gr&devRC0aH zzRlYF#w~rz`95z_eOU{Kk3SApx7MB`?)H79xPL*p^=F!8_)2y5blz;qj{HU`)-Q3pUGIhKW93D&g=@)? z@a*(alCz1BF@8s33 z_YM1Raonk&C(Ev%&=zY#TVHLe4cjhbwe2Jw9cs0c_w8)M7asUW?Qih!FM)>S#~RjN zQ=|FNn7t;}4s%z<>N#F_bIt-^zZS1<`bvdY)mNi0t96O=wCbE-zSB4)tK?y{ye?g; zKD4G(8yXvWZvKzKzrLxhgFgwf-kbm+d)Npf$uY&(vfa1(lEufx?= z{Lc6V+mpAju0MePKsMqYAJ@ToUi6pFENWhE*?H8QA}7HsO^)qoW5ib}?jMJ5EUuN) z=uO;{A>O&d6z9w|H()1q^@~q6rni`_b}TxdYKU*(3}+X>UgMV_crm#_sf149IUDOEA=>2n|v~Qr5T{! zZtHIf^*&2^jYH?oT)lyu``cU8H?^sLXOqiZZOT`r@utWN;Mzz=!{wrtFUg9^#OW5! zzT$(*J!HT47V$ad)W%-waraJ9dHhtbB6r=9$_iJa_YJK?^Q zpg*+UOm!mT=no4YYxfJ;L(~|Z{z$?Twe^QFX~r6*FD7?sDtVXl%lTX=sf>wEUw=`r zF}=mpmD89`{)Zcr{9E$Zh1^@^w=^t#zPx1t`9wNT$mu&3lRs?KRAJF*>n>-*(glj?ErK>m0+H&=Ytg1^5#c{OuG&hGVa z?~Aqh)97&S8A*S;yhb@6Bc~&~*=tCS>Pg9;XrCk>a?rPGQ@mnnknF~HbFlE7rE|T- z@dfB)l^Nw>U&irJeZTW}_7wlc*NM+1NBvx~|Hlr8*P@@u8B&sNYs7aY{BHB#q-!Sf zb2-?GFrRY&?$zn3wrB z;p@EQPj~l>*>l3r+K$g#vMAq0SOXvfRyHMvsoV&;d$Ubhvv;%P_QlGjoyVsnmv^34 zCgc2d%=6cZla3|{vvad#RC`gUh_T>zsikeu(z7LV$O!jszO2eQ-dOE;BYUIg4Rcw> zd~9<02Zytnv{u-gH@|d&Y1#TYQ_o+uBYcOogLH?( zyLkJ-l5CGu#=wtmjZkMUV7`jvb1I~^UWYBJ{pqWQxU*uH)(h^O{BGo7kDZHy&!Wr2 zAzpB6E%s&T-|8ytYt7^2%xn@&spesiEBdEzOY=^*z6{-zUc2^u z)R*?!HBRX~^`kx$$V4jGKgg=&H?%F9+&$VB>uz9DJ6cZ%oQZ~&w&HM(Z)@pjTfl|w z=Ei?@UUr<|5>C~YbfJR{UwVKInH6l(pVBLF7?1zJjkl%q>+DyJ;OET2S0nYho5|5z zKCV4^$xTb&XYHDdd()gvlY_37wj)*_lMB4$@GQ+*&pK|v&3Sz{L*oW$ynGjR3%YX+ z-EY?&fwpTs92%GWY2q>IAMu#heCl80lg~}EZutv-lD-_xi`=PxqkcQqD!!sk%U7~- zm46|QgXc~JnpepVaR`Dzx^Sj&10E$mk{!V#xe4Q~r4!@))#>>w7wb!N?}_qS>l3p) zoS9bF!Pvo%-(%8UYS@PNcGH z{hUm_WD=VZ9F6jSn3wlKm%Ww_qK9x{_nxv*9X_4Q+}wOq{$I<(b5%F!%$9A7!Ed@h zMPBCA);p20-RR!M(Utfwfxpn6*lP$NX=>TF1e)m1wP?2HV6ACr$JuMxux>vo$(~ki zI8?XY^o-WEIL>tAZ#YBZCMoNc~SpN+P*vnmuuTZr>keo>YVfv zfno{nG#Zc%so%;Ijm|B~zSO-X*sG)8w)?ViK9HV?>-wN~)_%|Np!k0xd!e!~=6oEo z8RGk5+u=!TH~9R?!ETu8+g6;7n;Q=Kxxwun&tTs;gMUhUPIhj{vR?^rsl60Bb4KS< zJJ(d(4gvOE-wpE9n^&EdwgJjNP?GI36a6n;*f(0{F$ zI#c>ldJ4)_ivRkyLn}?w<`zDn6WSh z?M-V;!f}J?wz$!lgd630xBanKsf96i>ooTK`NF^}6r#29Ei6qdp1da_#A>AC0N=IfrZfX3}*HvfHE+r<=_& z94$)kWPDbSq5~(x*Y{)idivY0ZD;>g@Fg6bWItcF{$=P|5QBZZIj=t2GlRrz-h{5z zKKqt*OXjfEx$>Q9jD{RnPG@gPUj&T88M=5#Yk+v(^Ha3vx@(Mq7v!(d_uxYhI)44PD!A7A z)xkJ@RPPGc@-a#OX-pRq6I&0=!p~&BXyK#$mimRt-*&3JdO-_wKs&LZY3-qG+YW9P z=i8fav9Ysb$J`wov(0x)97aT(@Vwb$*S$&a^AlYiF8;CHo6wj?d6xJT`Sk>=^yAl| zD+n~-=3Oe;WfT+3zEd%74_)i+T7fV5dvJh#wV)Dm@eC_m<3!^39Fvn~luJVI3XxPuMS5HT=%X2Y0jm;UVbx&;?-DKV*8f`t|Y4m>lt^9`m!Xf)f zbK9HQg9Cq}i)>)wG}yr6Gx2MjN54FdF4;);Mu;wIE1@}^_5vU1zHG<;S<4H$H{0dN zb$vctK4fDynD2X)XOnRhB~$qFn&NGQ^?pm=yiuM?^({v~bmeuIoZ78L`&Hj?IA4h@ zR{Pbm{@Y}BvV|QROL&O;)zqG~kE{G@&wYL3{*L-@XS2UezD?E;-lx@Lb(Z)@GA=)8 zh+}d*<<5C3rsfUo4`^SwMSicX&tRKhha8OfI476O_@r`q7N0fkZTq=PvX}@oaWu`1 z(tAIXmuVYg>ePC5I>UBx_{$*=M^sUNO5}d5e#2cYu$5 z>@`;7qoVIv*I9h%tZTEm0v~*r_rZ6&^+RU7Y|R>nkJ`R{;o=#O3(f87gR{Ch=aY`( zqC1j3AY4e#EPK|CJr`Sp*!kbTmkyCGm#xKG9G#c7G8on=vQ5QTvb`Mr-9BB=iIR~s zIXCtAR|5?;Tb`A@A-hn%3e!IgU3DXCjor+(TkV=md$^)WgXXLLS?I1C^B0+7bBcM$ z@naU>iuV`UdwK>6f(05d7ILmq&X}8vhJ3=oZjf!G`9-*q4=MOAq)XLSg`W&Dd(tn? zMwmGY`+#4kg>^<{4S?^w0baqT+g!NB+fbUX0ml;(^y}%mt-XYsYM33KS%1=o_Ex@IzR}Lxva?djZWFh)WM?UFt?)3}xZK?*tJ7chZHb4~ zo_IC?6*taZ-WCNtb`IU(-)jyHK9Bf*n$~C+1EJ@oj_YK?e%HC5SvR4G_ z=>76uKUa@I{N;ST<89J2h5xC4aqtWF-O$a!?&7%wx8NH?3*ZtQ0gn|J#`*!ywEva9 z|B8L(;xht&h&Se%TZyN}C%bjK-y?VX3tFG0wpHRU<}$CTU+0Sy4JXpZTz z>p1C_$?R(FO{i#LSt zQNC{*W?ePn@QwW{`_{ngVXYB-S83l?z*&%=fHTdTYBMRkvG#3auXSSFEw`~Nv&Y~r z3GTeCc-|B4=8eJKWc%AuuhyBuNji6j$Kz|kgX)m z>K^!+W_h|A*UGCOaNY3F4%gDP;%lwxgy(kFt>S6f@CoLtmgbwV6~1aNYW^B){hQ1| z`nR;;tXc}&Olt_iqBsokxo8oeBjPs9PQQ-mdph(zICg)Iz5>k~vGa%N%gPXR5}n0k zaXQD_KH}T%@NJ8S1Z!yTh49eGKLt1kJe(CARoWeoBjLy53H)TR>va~;j$;CTjgKSX zXpQgtJpYFHuWS_O->!eG=!zpRlFlc;G&fPm-71^r2gr4~Jk9!%J5Dne zYdf6b7)G87{NI~@#OsJo=4|cHrM7Bqb|ZUCdrBF`)y257#BnW@e}?g`XKl6;7+WaQ zzU>Gx7k9B=*T8<=mIW=uI;N7hS>IES)^ObG+D;7nC5ofr{(?#z4SQvyI<`Baj{ak=RvnYHRPF8-C{WhAX4@1{SuGE`=&Cy=p;X9b0#q$4E7|mcs@bH4 z^02!I`IZ7@mvyV4i^^iQ6oD0&st6TI=lA}cbDx@O|wczrJ2DnYqt>&ULQm zbDis4=Qr%lEg;_0Vop}|(`8Ap3&X+GP!4>zx5 z?I3oFJ1bao3C@(c10VnXY{J};9S&FS`NphYFKo-TaT@!p(tA4$Fb0>@Tx%2$2J!ttv%k!{2AK0L0JGci7JYuUCt+4iT z9J%y!$)%scx$xPG$|ACr2YL=(?N@%fbc4kQx#_}(F*7^G#}>!+oZ}<5KclwX z@_7L#L+=mqxJifL7LUD>d%?mlzO(%e$tl@l=OFqO&td-)e*Q!0?fF#uwyaG$6mzK| zt{}bZ&pjXdo3LciWaaELw$e7!Yp7A6cc^J#KV4rg|6J=FJ=1T3+x>kV@8qASG=^df z?pYhp+;^Sj&eSpvv26cL^sLR#=jiGhyznEB54}&0*~IAlgKtq?1MPtcU&^J-kc&TD zZG)u&Op5cWwn4|xdIcVby>|XZZJ$Iw#s3;d{%(M8+xEZ@-CTwHh$%~{uEAE>v3XYfq;gjaiqw&}_9sOQU(cy=_;iu)=4UP=~@tlzx6S$wUUsC9$PbS97~+s|=>ykpg^^v=`s509tn|3n64Hso)jp71_;qt3z=skqd!JN!_Od6%YcJxp>?g_}?ddIk7WNyCwFbiS zA2@t!p1Z-9aOGnH){YFbHWZ!`NBORB?ddMPtG=H6HwTB$5f{D%hqL>I8kE|r@Nq4j zgK#wv#0N)N10kUr2*f6~9!(8|M{Es*Ok#{lZt2G7Zh_7}M8|DUjWt>`{4SNOPDEqo zX3mm66qP^Bz9jW}=G4fZLfg*Qaw}|2gje7RwR1jmCWsj|+j!qToe8HOmp5jjqp9s6 zoMs;Pva+e;NoXs5>uV#l1kV(ksAFv5TmFdR62zRXk5$M4E9`HDbHLQ6ViCo)5h{Yd z#Z#i83Drgre<`O?brFO&@wj3R{*0L7OKB?~F^hxZx(IE^s@jW(d@O4HzxsI=^0uwK zCN9Gl@#po$H!h|)PU|4fPK@R(?hNF0cIF}0SFE_!LTBQ_;yV@=tS>p|nMoVbE{R_i zj`vdc!k#r@UN!6wOg%u(Px!p~-hc5hbAGjmHoJmn$3h$RSxg(}!?kp19VmQ<&)`Z9 zGl>}fK?`^pi{E-KZ5HAiwUC!~9W_%{au%04lT+;E*TvPR1+W&@;oI#RJS?Z;fs?dv z*gc4UfFIVS{T$^4Jj8x_v#XB)UM+sfu@e0`Bh!&2mT7fReTLd_?(DuhqZ6-j@0U?G zq`4}FJPoDg@cV?4i_0G?;Qr|%+%FEE9SiQ&XEE+I?!H}a+`(W>c}x2Jso;0vMtJnG zLdEVC&+upbrT2u(@mgoE%@pzP@N@oszGedT&N8ZnLCu72@o_V@)5J6D`9FIZ;E?#} z1tI){??g6E8F6(v68$e!q@ulrTDiA%U_9?jhog(~{J&QG-w^PBY5nudK%YDQpHs6Z%>Q}VH+AeQ zqRD}s$Ik!i^H7?||8=z$gu^gCOX+oMuh8w%-_q%?1oai(K(3|RrPI}icx+Jsv*>=f z`U#0qKI$vT7GH_2VqLx#c}+BN9)UCM z$e4qLIt#VPFaEyPmWoBp7^coc*pK!#78V}@SCjMo7hN|5F4b5#wM31Dx2whi^%Z7t z_Hg#vok5L-oANal1h;A|2yX2~WopZ;|6uDa)ILY-JMCaUidqX@I|?|J9g$z>WXI)+ z!9)E%Cs{UFexAisq8phWT5rK{##i`MPLt^C@hM&9@i|<*g^D6Ld~U9*opG17VP2;5 zzWn-(d8h1JrrXwB5bUF=xd1P753H-ZAb2yGIJoU%FU{-XW2?O||Nj^!D;{v^?s3FIRt|d%(e_-xMG4H5W!(f1x>eU+)&zUs&?C z!kKpU@9Qtr1@9&&5*(XWx$7qpm3@({DYuAP41Lne zTOV-n?+oKghv9IvEKj1yh=|{o)iYcle_j_A! zgj&v2MX6NG%+_MCco_)nk&~nEQ(HlOxV^udqG3Az6a5Nzilg3T$5IYd3;yawseW6N zp{e%?eiz&Y`D>2e$#3(KKk?GMe=g_^>HIW$-rV3~CgFS+>5^lu$>*~SWeT?WnD z=Qbxf*C?GZQVxq~p*F02INyAiZHsQhe=OuiX-`}8YW^oTFCTNu*JYR(n~x7!vM$31 zi5(QzWr$f^jIJ(2Cc&D4IGJiQ{FWSUy{p;`FNbO~D8^H&KEv{MSD)d<67?B8?d0Q# z4-)L*DdwtrIMS2Cqvg9qv)vafRi7cx*Fl?5eFpXh#iuKJz~=jVNA)>qQ~*ixHU zl&KwqulcOi_v7YWYSf={Wt3l`{`@%v#mU3-SrqiIzV%Mno+wviH1!!`Z^68`-s^Cw zb-nk+hU}e%>NEItqVv!0wC9>@h#{#ygJjp@ysH~LxOyoT=lJ9Jqs({c*&23bJ2PFC zRxUX=MXvVEMmBvOw6gsmmm|GD4_?%B$)x(1{3?d2ab(}L*Bj<5Uz1_rp2B>!A2x%% zjtXFJtJQu*qD=c^lH>LHc135((?jYpaOSp9k3s#6rXIumpl|t1sxM?XE3bEF)c?q| zb&auk*GE%}LHIn9dJNm|F5tq^zJYTL?9m6c7^weDjC{c2$JT+UH_j&;MIDA^CHmGJ zkEH%W)ggT>w0Jt&S_wP1`}wv7d+waWP#q3S|8lz)b-4p0*K+t$(2r^^w6PC0Qr!i~ z#fi)742ThP484~F0G3tTiWYVO)uFnt*4NhlbcvZ zet^!^k$=K|#24&3d62(tm2Y|qo=^(B4IsJ)UlU4r7?D%$K{OPJ0Yp=7l6wX0^TAzj*$ns|_9rJY>((G*w4`&(fidQIK7S^&AXg)B9|l`?Xmts zTc6t_Pe;G)zT6f4FmL z;eERa@UitPifT733HsI%&5;~z0FsS zl=3Zn{f3wNyTk_Ay8KRF;H5}SQZ8VqV?T4@7 zpuUn?!{=p395ZqahiRd4d<};<{Rm#Y9bUig>+^GWIz69PfL-@{lcJ^K4<{l&(uJz? zKwf%GeTom&CsNoce()A-$pFs5^@I{A==jumf;*;P5 zSN|Y9p7d!|zW>qH74ZGbu8gKW#rA*jxO;2*UwVxFD;95QLTpQWsPgfkQ^^__FZBAk zv|2eEuAYO(kti-cL`~%_B z?Td9A#cPhXu7hAYlDZDEWrwNjz&>R;cYaRq)7ek8^=so~A~B?{L-ThXuETX5q$i8( zI#dPvOnPym#a-z-7~#4Ov7m3aZYbbO_Nr7}2aPeBx(-f{A6;FCa9k){*J0Ur3Owi6 zm7d1ox(9fWD`pL;`l+hvkRfK>+>Q;wM|FOUbU>k|gPtpI-I%M$=aW5Z zV!y5Jh-x~Bmg04vAAH*u2fL4H`?Z+-clngky zYZ9YjFJqQ`P0qZz8V*;X|C{4}j>IMV-8|Ewc{btOZpIgj;j5LUrcg^&dmldM)A>>^ zZYSJ$JUm7IymIIByo#^?B>XFwr5~RS>N)6qsQMQDlrtJ$H~TZ(YwvJ4$xSTObI4K8 zVK#LfL__&9Bh_(`UXgxKe5AOJg8@dLtM20`J|5)jI8+4VcU|ZF0LhJPAX(gY{ z)9HxnI2=N!OR1MCI*nY%!PDea@@YjA?-v*9I27pdObL4YETD(4<1ic_i2mXu(O+ZA z2i=={s7hnXchTJhth;*kOutE{eoZWpheq`qlE_b(x8(PWSG2xVU%sxxztWG!D#Zis zn;fn$M;?n~a+e3sB*Ab$GAc;~E%J*WuI=>N+IYoAb1G@}9}dyRYjY+E{v0(?N8vHjP&9^E_6c z4)zKPJXRSxV}H2Z7oA1_MNrc~bwD(p=I-LSZM_A(F>-x}D>gVs@FZtvy|Rr!YQ-)_Az0 z$IU;69`kDy>87Q@@3I5MH6AoazmCybN<1bV>UhCuZJ5`Wl9$occ-Z^*o(_lBc#zE+ zsm6ogQH=-U+|^Epq>0%KU*EyCX#qbsVRzjg!Wh#sVtt2XqS+L9%5X1Ep~gdP9`?i6 zc#wS?sm6o+9`ws`sqxU&UBId03{EeMuExXi_R-gPD27=y*BVZJl&bL%_Pew%bF4KU zw%qRKSsnPL5Z2n)uHbjg+w1l4{+!lAl5OcntvmDk_G?|7M0@x0$HiZVtMMQ^kiDrepc(J=4~cg`k1%Y4 zOK{lVh&LBtDC}X%{~hi4*9PNzA6a929q)DiDdaed4l`;u5`X3{Io5PZVyO-WVnQWq zJXl>0ti?4RM5EExc+g%qu)uGJt?|$q)OhGaH-+}9(?e=Jblm1}Ej^t8*V5BrzrgZ+ z?SPHt+qtoJmi{&+YCNQazC7N%{Dfu7%93yw?>47tZy3DIhzp0>=PkzH&^iwee+lpx z$VXH55^mK3S*c!;ld}0&Y1Jgd2a(?Hb zljlPJ#mLMe?yPBIUo6dDm}1~xWWCaCifSE@qjIpQ*1;88*95f=;^-p9Tim{wa#PYF zJ<}XzoGjyH87Ip)AG5grL8f*JHrdxexCYr*4TM#N^>}^4!l!+t!@=ld zN~(oGu4Pp{aL$MW135G^wwx9HPyE*8mLAq68#*-Sk^0n{TzbaNy>`$HR}*14oN5n_ zcd|Z4cLy;9jp=J5ct21z5pD;rBdLkt{iES(BCPwmQs+?LOoXoC;tf)}3k z7w1kaKg#z~NBQ1M>y8f2?ZJC?Zb2@H=2SeNj-Z|Pn&ks)Pg(UttgNB;sgFSHa^$)R z>eu_Qg&F})E_`i(R34sZgT2DbLUj}NSY0vR*G)hsW-l5W89(m?TRTDf%^IVgbN|VC z+P6xS`B<9YxAL_U?!U$BjzaAOy(`GY|=Hi+@lY^Q*;%jer6ekov$zM|}P<4H*y}~cIw8Tc$ zfyd$M`W&FHkLV)(INI71Fo#`lCIWbc)7z-2r*)0+pmE7nR}DVkOq=y<+Oq4`Tn8;z zrfyraCc7o5=SR+}t$FZNmz($D`k8k_TXy~puAlS`hxXGo%6^*YXHn44;u8HV8f8CA z=x1rr&$1Hzn4llg)8j`uMbN{p!9`!;s>0)nb->cEDju?t`;Irem`EmVX}cVrO$Ibo zyhOP5b#m0+eg~G85FBc6X~4R!*RLmo-@@x_-zMCj))e|(ayKtq;LBs3$K|7##}&+D z^;L#3j$jfwp+4UyO_u0M==lCy2Syk@|nG@b8862 zOv&TGmda+w1Dm}Yc&wj=oyMPG4{{rMvtOWgO;5kpYUJ!XpPDtTU<=DPYY}U=wI`6W zcPuq=A8DK22VSzKHTxvrd6i6+HS+bMiP8%=+zc{=#coSM#25R(-vr??4D=^YL+fOrscQPla%% zu{7oq>SN3I*?0dYYI1KT$H@6c!lT-R{hyKW_Vf*{*})>b?S&VP7H{hBt-{;jbq;Tb z^Lt;w&wRygukh@mJ5Yet$u@*V;;aG9lnu`Q)!iANbnLfseVLF%E?K zAFW-1^(-I6131i$t=K2+nKp2)K2gT{!ut99+6(hN!1&PBt``*dbTX8&zAkGB>+9InG^|5%ZH|Rt1srz!ZSL%63{Yge+-`|u{d|7fU-&lPof-{7glVni8c|TgR<>hZ& zAb*;J*0pX9llly@R(!|qNHVui`8xFBd1o3jr+q*1vi=i%Ugo_2Uhv6Xoy&nXhp#2n zebzcS@%;u{pI}ST@3q12UBT~*k#z_6pvApv+bCB^eZ;60=)Svip~>oQaDFRyz@>?e z_!|8K#N-^_h~1f(&Ar@^EjKITT9e!S4>DN%+8o?;ayBwsLk_NZ^FC~Ll1ka^&mLa3U zlaF0kT!Az3=SVVG8-gLsXTsZr;MvZAXP4}9Jo`$<&D;OJl;6c0f1O4;ahXP2Pego@4D#WtsfoL+^QJ&=IGd!sW9_lD5RcjY{q|HnG3_m8 zmb-6^y>#_2xv;fzY|O^--4-*mM$i1au?JKiraTo5&h@Ady*GtiL$%Amv%-ZW2iw|4zrK(eINV$`DOZ2j;zMee>(Ru(e%WN^HcYH@c*UcyV{X#ug7u zgDzueKgO)Amp)W%O)*dDHR(L%l8SclQ=jnZb>iO2-xn$=4qmW(oaYfLF^d)tPI9svF=E-}1LHbj5J0@yR zTW3X0Tjq4;p}9UD;vwphSzF-jfy+zqI8bhae#hq`4?9ZjhG@!|NqyLnKE^?}$VRyO zM`|m$p8S%VyJBTA;*rt~&=35(Iyj<<-*=Z!GnG23+8d)z8t}zZ+V>i3Hrl#&f)hD$ zx*vTqJ}>L%pAk3dsg7nt^HDtPqEo5o9$r0{z0;ZUB>JHW{?UBoOKG1=^HZ*i{2sN{ z-1h%fVQz}~ErJiywA1{2Jn$6Gbj7F>7&FgNpKfbhIG0Wu6X3m2i_k>JG9R61a&T_L z<_+b)#qgh=31;r~>E#Xx&ceHPF>|TvY36yg30Pv(n&Y0tNmI5V%~iQ*{d)Mdo|B^Fwb*MPu(fNn5izuH*3wVexQNcUX9R-e4O}l#!mCM zF;(25>^|FAH??-0j{h)`_w<|UXqgX}p*Plc%!p5qsD4&59*t=3Ri>>My7$HyS29;& z&h0JZY?j{Bcg^q3+~6U7@27^9+9;1i{nJl=TxuuB&4NA- z#X55Cm|82QgjkS9~gyS>`K zoDVO(bg8Qk0{>fCE@hYPZyD@Vk-Zi?`>u8H3;+lBLZcgWzvcG+lTB4>p1BvheGhwe zcjx8Y%f8^9kNm&GOi7LFUWjkX`Nm9!oFw*ZwswP~mQ3=#ZgZ8Hlp42Xp*hJ=i(}2r z*^96*bIcm>u`=~h=rK3&?dwfhr_)O-Qg7$?akW>Qdghdb$CLHO46eGw*>Gr9W$Co1 zZvyYc%*D{OB@;0#QZM9g;_kz8Y<`sUCM#1Xu-2hXpY2EIPfPTrv!%xD=}X>c4D-Qe z401O09`@buW&iAMWOlpN9mVx3(&!P56COin1Cq7fQSKm^s=gM2lb3R>)Rr5JzLAf{yx`e zpYLZZV|Mka7LPHH_KB9MzjU;e9T6SFw2}?ceQTe99+S*@=xN=lUdCFm(VlTA@R5OU z%NVOAGtt}xof=YMd*W-l$wmmrk`v)L+{Ujn^!yLNr{{vN{qqh!@x0_wYfR7glFOyQ zGbXshdKz=qI#d0tKkdbe=LOH>pL9G=AHBcNaW;^=_ge0-tpe_9?pc+roStam+;E2d z{PI4lw@#DZigjv_)4|Ygx*fcNoExD&ZJGU@iHO4G-iK~U>=A{0w$oJpcaRI!*`1F4%{Wsbgcn-(XC5`B= zW_l1`xAuO5@!w{s)oU)TPvR3Nz^Q6a|CV_vf2)@7(|}nxQ!WSJ?Yy+s+nswfHO@R= z$C(rO)0hYOelp)r0DuKyCy2q9L^xU0!8A+%d;+Set*&2CeNlz5a6Y2M0LM@eyk7)59g=p*7rVvC7$@ z+J~`2-PZO^wRGEz&G`;E{%)_{twT?1-s*FLITzn)0r?2jn#G2E4Vd}6*YYMd&i0$P zZ#&FaEpN8*zHC+_{hk}xvIV`5F+bTZe(TVEdKIcm3;k8gS7TOVpEU>7hY=hm;%bxR z=*#N_=>zG2@$%V-*I0WPk4B9-uR9i*)FXK|k+MG8Ti?*jbVcOWjtP-99XU?e%m2PKt5QhmjNOFoJ46T=U|x9*t2clnvnr(-sHa+28?_z>Lt z%2?x}quLwpMI0C0|2Gc4(Jy-c5Ac=hY6@QcCZ2N7oDZVkHI`(zI^yI(@JbH%Ug_lA z@Aa3;EhQJw`nXHDziauLTe8X(>v(VuVi4_IXd3I3@1(tdoxPm!*)QbpxyE0ycg9wj zICpF!4*b)&rTkjKC_gnx{exovOnL@CI-2>6ughk*FEbsVZTX~$yQABxM(R`ZJh0l$ zQ+>%+NJlw6T)3A{=Ltn$Yty;&`$HyOO&fB8E3vsz^yvBKbn48Wsv0NEqXOMa-Pvf& ztgKIf1KIL%X8P%Io+}m@%R0EtqnqrSu>yHfeH8Tx-CEB8e$MB_Kf$Ng5h*^a_!OSp zoVD&xN7n`ZPLkMt9b-7Vb7&s8F-;lu!I?4iS3~M)WI-^UU>aNh7~21e8t3X)HeB#c zrOga#XV08T&F6kyf)9*w6pwda@ZpLKW?4jujqwHGG@=Np~AT#y;dcdLh) zk%M`tTuGl_4qTI2>wlilS93iUugllmlzr(^YWnU-%RSLf&?6XK7jKU0tc-E*UQC*D@WTlj+8`+Y5K%O8nux2{8vyc79N zcEh)kGJGTIF`LP$WTKfENh~Vc=<3YhjKV4Ft1@#dW0A_9*K$`Q<7c*3MBd&xAu^^@ zaON;lVg15y=%_N@$ClZ?=F~{n=>BZ=^*_0}Q`MK_{o(6QTmJux0^LL(KR4*oFTU4& zWgiwZUPa)K6!V$mc~>V%x>Gh^zWyiRm2=Hz%eQ|DKC4WR<+Caq>ymF!X8CK;xAO99 z{jCM)I;|^yncHa3-a0=*`u9-Ye*DYc=SPPin@=JCk|V`;W-#X2tWOR9SU+}thVSGN zW$O4XVtP{Nn99@wejCsCWWB)-%jRyd_E9iA%o@#)O%3JD8@atzI&UgI^6~&J?7CB* zRyL7K$>ZRvU{2KVV4j_RPFsUH>1?F>jt2O`*Ubn=_vL!9h_TdW+6k`%v=hF?)4-OQ z2h6I)r&w{!Oz(^{&t1T+IcnV?eLjPA>O-`VuP+)`U*TwcU*Kz|S<7f$FF9?3&huH< z%wt_M7hbM6clFmncf|p~VV8LNUTjDXT^2Pf>l(2kb>^Gcj0Mo|I_TV(Spc1v;-f8J z^9}64*ZFTThqCw_DORqN9A?mdq4$oyECeINX?C zJ~XbiBh2^zLLbr0f0v)8@8Sv7M3iiZpGMQa_kkS_kpui8@t#rLLM>ZpC#a%gZ_fUQZ0Lhxbr6 znMpH~m6;EN&&R;6K^DW+^M~EyXK-c+6Oe3 zyZ3E94bD0}9_TsRWRqKkk&81;sEVb;DkOtdH{O&z#|&0V2K&vv%ADDI=I-2etaCQi zeG&V6d#)Y6Z?C%+IzqpiMs&_KW^d(%d|t)pVm?>%c>$l>_!Jx;=I=ZBTcf>ZUa_Cj zRVPRGR{jy6?=X9!S&+*iyqmL|;mNcls3-Dq)U zh~r%czHiM+7Utrwl%bOZv)9wYrD&qxhK$d+{&&$!bP>(8Pm%W_pjW-wi4J~S_r+6o9sytd6}T2piMCG143HCYKj*eY8|m5s%YOxZ3;wsJ%>~Tm z6tlkHZJT&CSeN zwDaRVm)m21S6j8aAZWKXXa}w`{WkAe?(H08UA?3KL%>9QjMsRB&rfk~SfKoztKh9TvB!(}Jdw|j@;QOe-PD1}nfCgRn(OKovgQ@sIn5E|Ba3X#(QO_5Gr631v{)3lKq1Uy(2;;EOzJSAi$qVhBZi_OfmdquL z`5%#1I|uQB#_IT6?^l#Fcj6YnX=p1y`#;ftd;xYK4RCb0ac`pC^daM}$b1oBMSc8J zfXgU&o@1Kot|2C^Im(YzoM^%hd_C?AJv7d9v*nk^zkGg85}1>_T#kX~nQC*Fj=$3%BQu5|1CGU4niNhwt~$?$lAVn@ziSI=W9yCH z*!)LQFDM4aGvb9E;wi1u>uG28AUu!T*0+`Z#MAmspO093wyi&kJW5}TLv{tz>dOka zvpN%+Obzs*XyfBylZa`ly~m56i((03oSeoSmO>lhq{`CP>C?xsLj|8?QfJ;LSvw>8 zTk7u6wom&CGq3^6*;g=TMjtT=Y>7koDpofq=mV(8w3Z^BFPq@#uNU+|5r zE|u;y?2E+>{1oWVMEYKrie@}3{!uV?Y44=|RlkI$>9rBxBx_D?j zSo=P-B^IQ3uyp>pnVG6ZmdSvhM)Z_oy^AwZlR^8ry;#NUKVcY4#zoSA;6@<~nx z_tlvjt^eh9t>oYBQs3oKglI%Ai9zdn-E_M|j&_({DYsKIfJ`Qcf6arj_i>(vJaf3p0W8bpNl>jF{bu! z*cJQg1oLeC^d-+Kw`Y>!pYGN9ZEhhoL6qZCdXIwm`&UmfZIezaicv(;YB%H??x}m=Ex8B@w{66XNR+Br}B{$ z@76fO?d!|;(Z2q>0(?DgY5n0|(b`<(Xsvt~#r}Ovcs{f)6%SS{7vC(SIIid~-~XNX z{-VVxcHMgmwsG66$G?0vF|V769aP~<8Jj0$8)d#d?Jo#e0>XqW;K_uy@9=R%gGoIWBn~ z>3#n$ccQZgyQ<^&#N^eUeLd=lYOT1c<2U@K@ny^PyKE%(ukS^R=d{K1`lVr+Qm#{2 zru-hu2K=%W_+<<6%O0s~AYV*4zMb#d*Pp`o@8f46V|Cv}7bVdITO+k(nIf}|9$vk>H|I7sd);2 z(*IgxDVK39@@d$EPGbkOZq)quKp*uXUJuK=ek<_0%Tbiyp>@0JSIx2X)jmL>j;i|5 zJ7M_Mr{dd^2d9HJWF7`i%~$QC#P5B4Li-dCC^v>@PIhFIT3C-{?A}TyfxfXhG2SMj zZ?H*Q@u?&`vM;cnU1v5xcda$Q!`eW$;6w1Y)|(nrdj@{48dJEuJ;0@%Lp~;CqTd2P zn$xY)6Tl@}`FY$D%tN%%Joeq-=wtirN}C&kKCv^MeqU*g_KSkKd;ihTKMC+(DKY;q z9%lZl^YcHm58Io^0Xt6?2bTvp(ENwSHLvVl!Mqr@uMWMUoJhr&#UnLnD&>cy$a@pN z>GxTjzi8s~!d#1;gZ8=R@cpCwex_-ueLwG<$#-}!^+&W3-n7Q^v=oj+&!%8KIUGIb z2lII!_+yVAc;v6v^qm8&nxE%w@wIsPDSp=)UGQl9*}!ua@Vpav&f>dZtj)uGC_IV7 zz*8N-GZlEohTxGs7Ce&}?>&q$F&IO8dh)Nv2EU&W{I2_y^!q>asT_UPlu`U!HG}m1 z?%=z0{)8n*78hHLJU(L7A$IZ$Ua8|*gxt2(^nC{RRN#-=`FLHKgt;Z( zK6l%g^R2GzHVu`shx4hg`ffgZRcCd*_DdRUyvoiIIXzsAOfjgdfZ+$scQv1bxdnD^ zia&XOPWnP~6D*pu=HvZ^JDG!YsB$TQJ@W+pSiA)Jg2Ic|g-^qKg2~I0{Hkw$RVSUWb-TovW}zhIBb_#7Z-Q+>;RxIB1gw#1gpdX0KfJ-dVy~>6mJw z%*Rxf|Ejo3%*@43%fD(x#%{4WJqPg}EWYs>wH{9fcei&uwkdT%Ad{ja{L(4e^f82` z?0E{NQn>hZri{_KpO~|oqsrEOurzd#7gpSqt!oT2iduEBKa;F57TU)jD z&e2$CK;isD0sgF<1$imqxoM9|IFQ_dV`yNaUjImTzsGZpU3KHl@Lhqg3Vk$3z1%bf zzLw&f=LGcg&pd4x(MIQB)MxRt#XP$NKhljC!UZr17n-|pp}ozI1$+47c}r*7SlZ_K zJ2Qm8&kXom{3JSi9D4ez?;Cg~Jl@ZmSoHO6>VtRX4HItZrq8k656=($w~UHl*# z^l$Bh$A#Xb-Qz(lU<|Un8vV+?Mk{%N@xS2jv3wf-NvFRXKFA$xm?~QA=Now>K`YIN`LYeePG4z9Y@?h$Jq+;hczluuMxd+y7fU!^|8 zgYuiTPL$p)t!oFZt{qMvNe^hv==Je%?VS9#_S&^V$u9u{K`Ki zpG@cImRes^xn-e!JNQ9)7sLeZyx5Pd6n*iT;mL;j(=DA1I(>Sl;uY`XyJ8jd;O8WV zb5#2aKJRE_&x3PO?16x{TEiI#<;FMEtwJxVKm8_L`aQB_BH`qh&oZm0oD2yz7e{yi zA692&?#VK@EOTSsdKY*qRz<#q?v9XkesjG+6QC}hW#0m z^QHL8P0UqvQ9N6;aWP2O|5HK#-_Q3?E|6JO_rqK_`bshDR`PGk%=(AOtFZUHtl<1X z;k;iAo)`nKETPuP zO+@7n_W{3Tae_G;+CJ3!U0{xIwn=+%cd(x0cYMB^u{XD5bGeIC$t{ZCoQjXeve)cr zRXjm7{)725n`4oz-W`>lCNGYh(1GY!^A%#K32acj=Je{5qWgs}+US{nUw7#xE@uWO zP%v0~v~{=s?z^78XWX|hdXT%OiGkYo?}IM}SAD^~BYU$YZN5x9z4!Cn;Hm2Ky;c^w zqwklV5A0VVww*xNc-xqWPNwZyK|9e8oMhC8Xo?MrD~}Hu#BNOQlTZAg_#VQk;!64q z_ti*WiDAaH^P*qTAirOR&M4Sv?RBwU(EH#*um}#HM<{s0V@;uLd1x%PoqwfUJAR&L z^8%b4t{-CBso&-8d>89f>Wc3&L7cOoUxx4weoBJ)jd%oEf^Sx3P6=X>vRM{?K_8Me zWZ2TRoM)0}Js;1wn$MGVZ10m5=5RUB$BuFi6KT66GzW)^&^*B1D+kk-5A$>5x0m@% zbU7T3Cei1ICHRk?~UU)&yKl0bH`JvIW}n zS;23TSFMfS4NUR@Hoo8a05R^W)EOfAC-Pw`%x-(;3qIgp)u`@W=vR$@?Jem%h0gZN z-%D_ACb>RiZMfDj1Dw4W=`0UgveU*N$p3)P19@siV@&7w8Jx#CAG_7a_jI?~sW07c z95ZLK?>O|Vz3igS9FgOud#&slB9zZmVi0xZz!fFWHl2x6S2`Mfljn45ULX!G7=$-; z2R?@5b@`h=0527$zR%aSP`e1a&6ouANDy01^r=RKa46heKHuSPHFy)At^hZegS!s! zv(`M&-;V#3!GHP^{?oPi%h!Oz)!pZvuHzJ7}J7xCFnr!P!&?MA0>b@qw67wktk9Ls0d zzE%};@@>^-;AcU5yT8zrRs2+Kq+4U=;f@JG?pad)@K%Bn=%#fObbd_!VPnVNRJ2&y zYX9ekie_tvWal}jPoCFLYGP(iXEU%0r&^cfayx3ecCAdcC|Be@W7clGx+ZF_L2h;S zXACER?CP3RMlt5r<2YuDF{h1U%niqJ%qGUH z7{!?9AD1z2wmh`-vGZ$AG#3UuR8_=7=fgu+TOPW6?1k{qWO!&PJaoY^@lea7SJ#Xm z#XK92Bj2uO%+cWX!s9sRml(5p6!U!KxX{z-gl@)s+bG6-`Z$icl`$(vG3LF;am<~J z86U-%-#w0FKE;?*Mlt47<;PF=J$G;#TY__FosvFV`Q zjt=>?Y144#oC=!{I7{zWMaFjC&Rq!VBUQT~TKi(bw>>fFCuZ)ff37@j&r%6zV=c~p zT!gb?dtAWT8wWhjwt+L*_gz0E~Tl~zb$Vr_z?5wq(==kS~W^(=S#&2H1 zx}%KPtBd*Cy@kjW)*g4+wa0@eq{$81KzzD~wQChV{8;|Gy7POyZ}`_%e!cxPriH%8 zbehwuh#wQTtldOxxV_Gph2$n)z&a<*db_c=Dxz~G>uRXOL;SCS^~DO-rLk1g2~F&i zlSg8jsy+m1;jvCbJ*;1x&|~?BT`=Om4o1}zp!VDu9|yKv?i)2`(p1*8J>XXR@8ePz zpKt@`_BgM?vlum8D$Jq|)mjm3W)5wEEm^-gDp;uT!r7rkz0=IOBe2E#c&EqXC*K$Ss;>{wS7lLOuZ$`5^??$7 zopeC!)hTwpsxb?7P6o{6F+RS~L~WR|RQZ@Ti-UM%l3g#8+hp|(Jl?0Za9-~aH;d3O z?U08bcbs3|Jymm44Hwm?cxBfdE064F*9=|z74*b!-te_5E`YHLwJHv$R}1nO3)cL1 z&q{U^tDqL9=9x@%vnRFL%3tjXnM$|*Z$%y&(5p@cro;Q3B?kYK*`L%NqvW#D>g5-M zeUd8T$gqP^p5lqbJlHol||#?^k;aD0#6&MIc`4{y*WQf1e+iJly)2ySJ>o6>inDmWP`pL+nHw#{RQ{5_^zJybqy0>$8_c+ zMr>^3{D#yu_<7HdO?#!~No!^NmXYw>mvOY2uWEgVZb z{^a$v^^;6wa_2#_;*3w0O9xDj%8$r#CcSHygE4BpQA4d-8>f<9md%2$@Y>|Q z>&w0o_z-`Ie>9R05e?#1oEwGrrDv=^2<9uG%X`qZhCJ4*BW>}s!N2^Ce|ViU7qpc< zDdqc=vI&3BJM#U!UHQ}UM(FaxjP^5~O*s#^%lf`SJJ~$t@9ZK5uKs=P^WD2P*?c$E zB~rXizuy3^l!Gt%OLk9>IzO4ZL)7rKdqoy6(&gvd{=f3N*X2X&4jrn?qu62P;yJun zT@Frs+;A`JfpMc)_k1RL?CU$}9(NXJ6?ypNJ$GwQd}T-6Tmv6vD#x0(Gybu>xoRx% zc9*v~KMnmS``rberK@DWh38s+6WxgSf)8iIB_Gx&pk3IGJ6gq3tIC_=r}3WdG9y2j z8gXSk#>}*S$~=Dm;Ft|@+Tw$dXE>&n+8HKlc_0+$O$PM$_e;CS}x5WxL`-LR?t=l0S}&a?yx_}z96we# zx|e5?YyG`F_}kN~8+x5E3VMC#=Hq#^W%h>Pi>ik8WnI)_Ef9kl|s>Sorn6-hJUO+`BsWUHneoE|Qlq=?@9(D~9J4 zp7*$5-plakZnM6=+ZQVpgUIc7vaY^LJ%8;m&tE>w^XCuq{1^G>TA!8HyTXO|&)NH_ zsV&3}WY@|^@JS|`WA#bgIybEUx94FkjjP_`=kQyeZqT?ekDKi}cnSL?nn#qqlA*p; zVUMKN9Qz*0aJ0=7!wZagc!B-e!#rOdJQweacJfc;gUBzD45)ss<{b7<-hn(EiGLCw zrY_=W{S&_qc{e&;az?Ir>dWYJw+>lhZT|b2M=TPxcC3^PoP8KPoDq8NeZ4RqYeLVx zo@#lipr=j^p2y5~bWPjMw+H!aCzJE{(P%R@jb(FhiRN;RnOtr~O+t5otZy_E_cvE6 z7An~|Ts$+GYAs#x6j_@}4?r6bJu>O(!gus69ea+cm-?lbnuXSF=`Md=m%;PaE ze^1hfeCATme82x1g5l#u{XP`H;QaK_>6-O{u8F;cx~9~8ZVl!-ob29onCD+R%=51v z=J^+b=gtO>PPS(pp=?(lqihd{n~wyrd)eR5`JUlq{{yu3vY)3zNN*>IrzMcD_q;ZJ zs$Z|2_1Xnh%5ynLT;>ek*ZNXE;%xqwzo@*BFTOS~RkQJhV= zr>e(bk}=--NzJplCs@}s@zxHGX{eseD(11N?p0#N5AydI{{9)~0BOK^Vna>x1{>d5 zJBs+uPhUN@_|61kI=fzNuB{1r?Fl4bT~Vd{JNf_W*RKIolcyTIID5B4?QLx;&T`tdsgE~3jBII5E1!Wo zpX!oj&GFgQPeiBi`*)DJX_2x{)rGyRteKrK#jqM!!)X6#C2OoEYQ$e>WmNj>jo&-{ z^|!FZB|zKWme+~s)(98U?)^6@?uz^-u=mlFJf zTXV256KnC~=jR@Zf&5YMzV*F|-fagzHcl0cblI-q!)o>5SNyh)*j%_M?>7D|#zFqrIsoUP;?} zW}=zblZutxi;tyto=$o`ln-K^rvZ;K(H{AF5zYq~Gedrz_1g@elw?hKL&qrawCBysJpW*y4EZ5{_Iie`=@_iJoCC$mlmiG5;O5Fr*oo#r8z8~s1_w{D#(3GW~;M~29 zLxpse*A)lZLo6qM;H$4V{btWYbyu0DN7$o}FExyvKM$qx{MdfnUFfr`gK>+W?c~`N z!Lx8I>k8;|X^G!I$M4O<^z}G>T@pMC>s&t%on1UHc>c$HlHZ{{Zj;|12X<;XS)P#H zR6ck8A6lxkhvx0!ZIQ#588>B z%Y%8q=hn`Afc_2tJ_bC=A|AK=jeM%#uz%y`I~<1dN4?gg6a8kaI!9F|RP4iVg znA3$<2LAA*o_i&KT?50!JPN%1#3<+gPeHpR^H(06VDdWRU4f3MrHx`m!^x_A74g1e zHp&ay9N^?r2b%+3)X;I+L5B~;>13mBKTvqq`D)s>6Tf|fcg1gBh6Ind$EJT%DjW2z zb7S>m+_^EG_fp;SH(CG9GL3b>(yw#&oI@usWNW{xv*6C(>+T}u0f9r#)Mo&Ob9dd{ zM&l%FGstz?o{e?242D0~E}iV_7w9~c>NziaWF>yZ3KRA#_(IOWP3-5ic5HoY4mksU zPqFx{k#ZE=Igz;CQ`9*Toi#dZ#Qaa;y>zU^jk%gJPawA~pBFLYd{ZIE?N9Tu$-~EI zL?=I{&vCmmSeN^`erc5B&OgR+{dj8`Z_Fs>nK;JrL`SV%ci@YNw#uupeoIk~0Jhuu z6jy*3@fB2#CND~qMxBUwOdhHD@8GZ*CB4u3CPxcv|E?MvTLSquw=7&R=q zyGn4&=G>oiHm5r{t2__;vYd0u%gh7)OF5^!gmcP^Ij6h``_qK2Nn?ZNV{c~LbIJqu zoN_I3+~mFtb%wAzU4!V5DXE$4i`0;R7=tgO?2}YSc4WzaucB|(0Xi@2Y$UneQu`c^;cZ!~@Re)4&~z<4zMs6JLz0!f7q3*DjyS}bn!oO{ zq%CKgb*6JicIl(%qem|e>?UV55^3l}+#s=&eSYODd>x-`2X|#(O#aW0H@LGJ7hO4KZ;;b%=goZcbEgK#(csk2 z&(BT$CV;;nUptsvdFtN-nbF+tC-38JqrheSIN(x#BlnArDmO#-&kF8pb0@ZTXEu3X zLy$iTz2h0^&G{B+;OKoJblBNHDG%c}khziQU5t}hKCf0|iEhf}eLTpC(H`V*W8Rp% zDB!Vg9(K%vPTbM&b5^CdVsALTr5aVtx!>0vQ!TRj=r4aCp1%iAzOnSvL^Bvqb`Nmw zX3(B5m}i>Ng!!C+V;)|ir=a19sLcya5?yQ$~0y+64gS&;0k?KU5g?6A(PFng#+k|q{j zF<){NF(;(Xolr3|e2yoU_@tS{e&#vISE_ccSxt?$Oj&#VSw{ER6HkpqZB1DDV4tR5 zn*2}i%Uu)l(PZ=NUK+TZ`(HW_(AceWV#1^FsX1i+~r)CY1-pEz4RrBg7gFAHZ$7#)8P z<_i2>Tg2ZMHvI6?x+0O+6=&sjlFN;kAMEi|j3ePu^V9h&t=|-Xgx=YD{Gw9zbhLgG z%|xfK=Nhr=7I&Rzgmj$MgTeVAx5kL}byDv)j9bAml&6d3GnQ&CA)f_W42|Dv|J?cD z!^v`S|7EGKlz6Am|Dm*2-B-!JWT)emg6ycqrR2xSOW{sB*&x;Ok&mWxmD=B#0G=eH zUdJ2$xpi~t`%{H)odJtS+B&Kt>o^zG%K5fTuj1Q^?@r?^kj@KfuT^_*io;4yH4oME z(cT;K(W)4%&Ov^F@g2?F9zrU_EBSMfflP@vG>&LhoF}0^mG>~WsK0lF`U{_hl#Dw5 zs_GLjj#QVkw9Xq!?x-wDD2JMimEDe3aUzt_~UVnyGjw@=%A~nhuYS;WNRfkAX;M!XenOCR-og z+ZxHhP~Dj>_-CPq~nF4D`y^a%C?;&(tnS-)igW zrM9JcXeh4_2E0C8TW9|Yu?yX)>SF-+z3gy$`N8kc>WVzj|E0)X{ntdc^{?Ozvp zu)ia6Z~xlJJ^k&GyZbYd?futA?zDQ(m~Ui~`?||M0pF|ETQbva{@Uyyr+I)F@pW14 zlW`t5YJz<-)-fsWqU8Mi)7Z)tt;!qzB>4LTpO^8;J&>tY0X>pk?6U>u;?zf)JEsOP zb-JfwMq;BG$KGQF>zN(Y^_=m-#Dnj`&xTp)$RqvDtZOGR zw&YV|&yPIO-^A~W_*}|bbP4O}<^0#ef0y&$75ulDwbA+1{9hJ%sQ+SO6d&YW?Th-qMSQdABq?FI;7$;@ktZ(f)4e>G%Wv%Z`Aj<=vz2Y%~^deg7#<7 zuQB&zK26`t*R12c9_|)utiPQ*A9d&VCy2Sehnlv!m+35XL3}s4fXGAL0(|XcbvM1- zk(p|KUp1qC74&G~9=3Mw_GssBk9KrrCa&M3=CaK0+}`}}+<`@$ZY46ZlCkw{56|4a zsjssx7Hlu&esAA(ICgcp7eyXI7d#!*a&Of-F1nEUbGMV-8&_M+No_QzvvWU&_G#c6 zI;VeQe2o$19vzK;doaH4vvj%A#{5g}cNUJJHFmstc$kw*J5YR0hfw* zYHd_Tu5@z!fH{-(yyj7L<8?OQaPfvs)Fj`GFV~HI(i#2k{&~M~{FmbI#X-!5Tqrfx$Q+=v$@M>#b4+qB&b2{H|xCd4;LVtl>Aa6SR>s)%O z;L`oT>QBD9`V<`pUvPAs2%Yr)+n|y3#~^-#XfO?$%D0lt>p9;!6Ht~KkB!lJYw65{ z>@S}V4{GK9ssBvSe>E{^)k#r1>b>;p)9cRgr`}l{yraG8nAy}(Xody15uBQDYp&{lk3 z2Y**H{(Q^#cft2}5@TbZIg_DvYvv@o{*TVr`Fazf)JNpJlz4lhIy2E7%I!9h2)q;7 z^F}UV@vmo!?I&2f&@b`!yWqV$;k|9}p6ryHi+Hcpb3boA-=Dj{*3lkk&bNK`Z;ZP;`hMyVd)T-$pdx`B4Ta4_8t0YaFRInA;3L(veI^)ZS1xVG zc`o?f(*KtZx8S3LJu-aTH1S3K+c-d;9{p(ke?J(W|Et{T>f)l&`Kjs^=nc+?{q@-S zj(5060NiUXnuDjm?#j|!a=GW{ivFJ7lBJmGu{xjy+Il`22>mTMpL%X&I3xc{;H(ee z6b?FCZ-tga`Tt1gZb=dRPk7k9*WqCrvT#4XTv!$?{|C=CegZw=$Jd&|@)EqyZ}{@a zAi7oZJ3#*;5%#2de)ctw+;3F z?uwt|D+#XA!r^tE;1I4(3~)7pI~z22@P(aN)iJ<155-EQd&}{`Wh1=2|6`z=z(I=r zPV%1i^bPWxsf8GOs zZpY`j6TW>AzSSKdibbgQw`x5T@9G*b$!_s(w|Sp=D4v9OCz!6zT<%nS%1JdE+w$Vt zNq9)`Tu1t8_5yJz%-S@?o-mA$>L0PO*J7&b4DR?*7~y_NCmIdvm8w)tI6I^MX$v zfKTp)Pe$HTSp=uVd^4IFG}}tHCkyUVk~bUjlxw0q-r~ycs$upK=+rSPJfCk6DA840X5K*@wZ$ zi?0QK?hXSVd-}S-O+4}tah^$??fflX`kL7WFA3IED|RXmr~Jn@-p|l36&V<-cV}$* z3c8{!l?J!^T`?lo2y+*qGjh2~@U{WDtw0Zrn>ny#oOIC4RpzS7WcRozXPpAw6SZ`W zo4vGKfR5>gce>%JZukg)nEGK~#y2Z_pLEQ_olVr%PR_f7zn>?z&RrJs9*r`7c6RL@ z(QRe}@}}DN4fXOd}bMsZT~8-Cvg;R-z- z@Jj7K8S>p(&u??hcd|3*?KO%MB@=10+sv3$VV+0U%ToWw-*j%4ngnaMUv_>o@bzoa z3t6+%%IlKA*F*+u&jY>*=4IymJg^P|xBR<3RvtgXGkqU-?Vp%&i#}{>;x9(f&$Sov zJF(Z(sDH=$de0o{7iN>!CL-uV;`96s{w3df*5Uf^i&vz>3oH2Wl z_p8y5>uSE8y9)idqGk~|`6BWlTwcp3Q!!oeV;UN4qpqRwr+38LdQbE==GDH>nt`$C zUdv0#WzQflv6OhZCi7`CKHi0#@99e>@XXGS71mG6h1N@;x_G1KRK zi+3VsBEGWgcRk8{an*RC+jcwWnVY@2%8EV`67y5m>t ziVvIXXqQ~nY@h}5b9IgG`x35W@So^AGu~?0NVht?7Ta1!U&cJwHx~JbnP2ibXwO5d9Bv(oF1UmYB(JDxu% z-~N8?A^<-Lpl19E_(n7pjGl)lm>2uR!$-<1|EV?l7GpG@>vKCMOP{sFGr9{(`0lX& zzq0|@lrq`J#iqYMxhQRB0SkY#zSCavXy5%#fAZS2`E&d3ce3J@g%+oZQ#jsf;Jf5u znf;uIPWAsY#k9nVt=2BI=VhW}kkwyv*Ma&G ztfl%AtlmeHy^R0V*-M>!((mm*Xh`Yz{ZF~y=iShn?J8R1>iJW_bNTh@8;;zs7ar74 zSJ0349kfr*9Zjj7_+jHS?a=G~{uDIQn$gaY^#Qme*2jI>HfV{Z)NEk0o z;AK&Om&HYRQ9rwW;^rxMN9tz@{VWaoSyrN-Owdp2#x|>i#FNIf^a^T?(;Pha{JJy1 z=OX|6F!-zu!ME%f@HzNnH_z3bt-#lS?jB^n-^t9*;F)kxkM0yMXS0XmbkT$TG1J!j z^qRJ;^p^NbvY5kSw%(~`5Id=RBQxD`lj*JEzg_V1DJE8vBo=ETE@r`XeSPBB zQzEe%J)dScgU53#1GG6MYI?MucI)WDGR3sG=hgP97>xQA{2E7d@MG<@`ZkdNC*3>+ zujVs*-dGE>=H%yN{p5Hzb9kgaX0E4hGD9%Osb=7R#XQW^a#MzvR?T`svHsxxye?w$ zz}swnoI%y^ppDu&UNc6zXm)(FIb{D6bZJdC4*y6o1!HtpvAngye8H`c@C&eFJ?Joe z#LB5OAf7DUp0@js+Kcow(H`V*@Ua%i!pmCGI{?w%X}_zyF-9H+C;nH1WJH8b}V3*ag9-y)ms16@xNndY|Os z!1qes_v_-ArgxL|P1T3!B>EKZDH9W_iG9`EleEo)?&dqTf;Dy_9y;9n7Cz)%xN|ls zVf*m0MZqpSul=FJvpEBv<-f7`4U33FR+yez**y71C-L9^;WzS7Sc7X{L%xOXVpqJ9 z68L(1qS8Eq?h|C{(5+MAihZ}LfA&GlHHeo3Z1+iY=`D69JScJ8(8VJ#g^ z{ZEPKDV~q#xqRMVmUw>P2kq3eDfIVB(f5~%zE7jSaQnSQ&nFZ;pIh`jR`k7&@51H$ z-2pDM;)O(6GSO{qM=JQ;%eQz;zJ>e_`5D@4cd|WT4DVWfO0K+Uh+Ox@kn7pilcImn z{boFOvaQ?#a=4u*;Vw;qP>;P=tMpm#@tLC;5mVQw&%auSu_V!mCD zpX%~m{QYv8yYMhq^Y0?=(LG?wzCD>(5`Sk5^2Hgn_>yQ>tf4CvUlH}XNIdEE+!W3l z%&Fo1tn%DS<;nOxhI!zo8koCdGu@qViA?n6z&{)5ees)kTJHJeS?>?)Za;KpCpV6ER%pG1EwlQH^~GQ|} zu>Jf$hAn<1u;p0a6N^r1XFi!|4QzgE$L#9O$bPe3%Netwi#R|kg^#8?ZvDNx#ys1* zAH5ed&s%;()mpvs_`f=Slnu<7o;vwQ;z_e+jP^hA`_l2UHF07(tzD8E`DU*K`>oOo zIpX!)qiFXb%^G|W+6uqkSCIdfti6tPimgCsi&s2X7c7;s^bWk;k!l4B<^)DYEnerQu_AkbV$ zsR$vM5Wuu1nBp?u`|h7PXGSynvlEBFJkLD){Oq%T)?RDvwbovH?F!-u=$>*9=Zj1x zD1BHdyA-2qLz9LlDE4(@N@HQ^Nb z2Q^NF6X8QR<-^ACN9B7ZFg8muHngXeW1cN9NBh#IZU+;v6H>H)26{JXzf2?s2gH^t z@(Zrv4rm_EynHX)3EAYAkPpc>V;}qo?2n4S&_^MFdi+sL_mBacK&M4nV8FjR?L3}V z^a%Z*<)r;9M}Mx%n2vXvF(MD;nk{^02hlS5BTNEcRxlX{Oya;5u19YIAMXH8gagkZ z-`>7%&`Q|8mOO6Efpkz08w%E$fk(7K(8lsGcx>zo^)DVE8?N*&|_Gm zP6Vq1*J8}EIt#vwZ@>>bM>gXc-{N}92)>8C;{mJ}90D)QUB_lWT0jTzdkC-$TRem_ zkp*yPMdU~N*$a}#F6hTvm-0n|-wfd$4jr)QhvLNW2VV<`ec+w#;wo`#IsH6d4}52v z$nS`ESWCy4Tw_&-mdWp7TN;JG1nRxkqK-u1{S)rlhDEXs7&H0ZP>SEcRzCU&-aD8B zOq;U&6m2@4xmnV|eBeMi(7&v!kDWy zE4e4J7h?=RomR*`Z5T7|lj2%Hbzr&0v*uYB>6&BoYmAXv(}SH5W8{!-;I|)+t&=#- z_04Kc!vpe+E1-V`1RRlyE)rh=S{3&{Qs54}rc&H}`}0902bb z*K2lHD1j}~73 z2k}m|Bd*(lZ}5!mh~fR4@V^HCH{)N6Klo?*I{dH4zY+g00Pg^cQNpnGn1c1I4TiCo z5r%=I3Wn6j?sHoXp&mvZ z&;f6I3U*W_SKB`7gM3dpoX@39jXZqj+5l{e>1 zQ^;2)uFGJ5`Yv#P4o$fI>6mAKIz43+;}hf&v(WL3KiS!9x5g%EC@5nD4 zn|z`tNgfeL9ly$~hHkI{XSx^W6P+GD5$Gw*CuZOevi>^o0r>Bv--7?|;a`vcTk(Gz z{%^;BGyYyaQS-1n4zDH{hF(S(p8TTAC${xmSU#~{w}pH^-ZMWw5%Tn>^8)v$?}&?^ z&GYCFh*18>L*t&ZdZnzHmO40jspO&23Eo5Qu|)T!mZ0Ao14S+sRH<4NcOY54a@A7SAPPbgo@^d#(0aoC~N z8tkF0%_A=7u@dpl$kwcFJt5~r>346(aW1EAaqqF3_f-A>{FtI>6Q8jz&V?_a%x3r~ zD0{rtk#$@?=GARd<)AHo`2X`eJ6o@S55K*FIZ#hZK{+^gkX%C4M?D7#`0oRn3gNM-CW#5HUC=M9k>eILL)mB4*W z-*Z0Og!@{3&vH6(UuW+Bd0%8Z?(6lvjr_g1kDK?&ov8ubH)Zd8QhRXUoV~{!iTkzs ze)HI)ks;i-==-N(dmqMqtG;hVeIvMU)A!i(Ix>#?_4>XH_lIzw(DxCv=P>R&^!--M zzZ1CMr0<`=^=5tjB(6L4^(3yh>FblY-mb4t;X0|W&)~X8U;9sNi1g~~GFn{a(t zUpM3Wh`wHn>j_*N-eh!*$2~H{NvZ2h(KVp!OsiuU8Da!-!$=(eCj6W6UyFYW{;l}8 z;lCdL1pXcPZ^9pP#YiXqTk+q9|91S7`1jxs93JVze*ph`@ZXL99{khz58*$I{|Nr$ z_#eXmF#bpIpTPe(so|Oi^hJddX_(wGkZ#}UuGLGjp z`kp-N3Eao@J$cqi+R`?i2c+Jj?&JT%Hxd z{U-gs8P}WjbpqF&`nng_+w}DwTyNLcnCt+c-CoL_v+`tuW!iVS#`J{(C^5z z*5lsGvo_;?w|>7J*L(DJAFk8-dJnFL_4Np@4bM7)>v8@330xbV^)#*z>*p`v`iQMp4F{6_OE(iDHxx#O@w!X2lNKGHF)G1iKEu@;lY{}1|bpTa$D1!J_S zD!!7`J|e=xGuVzMrOn`cmPPp^dO*>#eRo$X4m*VMk>I{M+gE`--^}CJd02NH`a#(* zlPQHA_o9edTV&h0H&golL?_Ve-VwjJ8$Le?*rk#q+*bwvl{%i^z9iNyhPBLRV^0D7 zfGK-z1K(ob`Rv$L7Run-x^I*=6zJ7}L$06RPbh1})LL6&T=nCX+{Pngs*Q)yPr}!R zEs5|QD)PKfKc_x-9PpAdHDr8#N7T4!XU2OmcPbHea)++_m*6cVm^`Fu0yF`c;7*py0!LfCc0{pCDlxxNu zqeA{5#9Qi6{7$aJ4-bL~4E9s*neDgiYwL)MS8SV?Za6N)FGDwkrHyp~;uy!=Mt;YR zOByk{zkizYSQg7P<*}SXbU5+1ZkzIHd8Rg<1m5Sjsnb&)X^dqU+Hv4}xdeN6$cyI&?2x_? zrf$~dZ7a)~sf}#gTHUrYy~XFYsLsRrPuk7&9BAN47;=m`7pgH6YEcXb$6-x<8)@foIg6U@4951p3@obJ%#-x&?UAb-lxJZt}9Z$z&bo^ z9b9*)5Ef#9#6jn2akW_3MSe{q}#C z>%p;l>w&R43o#!ud^dpIpBtReWs*h;5@Y*1khet3nJFTk_<{qUnWjlCfq zfT3eYte~ciN}Q{M^1+*I3w5MWUkdf4P)`c=q)<-^^{`DT)FtQG7K`hg&-4q}(@tk_ z#+f|{xT*D32k}l=-|5V1>{qX}O2wD@wu*@>2%lQ?JA`%;pEkpvh|dnezR7z&=RIXH zlgG9O$5dH7b7rNrT{K~>qN@+S+wf0n6d#6+#cyyHG(AAsJ2Gxh8hF@CyIjrozdZ1jK#{L@0Z%!y|EwRgC z+e?Z+M_eoH(H*%Du_5LIKemxJGuEFJm?y+wIrtZF>JZl9AHX~l?&n-^IMK7c%JjwB;L{YgxBOT-ti_q%IAQMgK|iV^dX=h?{;mUlwAORF(2`H6Y!aG z8F7es&F4Lyyv>;e;_47b5NmD#aez?2U)+2heGN@rv;(L-U45p#tcTD3%+p>|Zp0em z+?QRi#J$Af*|aU`X&Z6iFo_^?Vt|L z3lAWMMiMeo8cpu%Gh^rFV~&Ks>&sgYUN{{Odup%C`zce$z{jXldFwQ5$*2=LQWCmW z61bck3Ee7Rf6|6Ou!Xx8oF{C2+E z6P;sw6kaG^KR&476o-F4+r>ULW%mgvziY~)gptH)j2+?7j6A%LVDAg>*)Itjd=L85 zu<%!ro(iqC=YPLem&b8tdET{m-ZTCY=OE(U+0Uppb53u`wsmgn@P~C7t)70jWy_j< zzbRXsOTX98q2GQ_zZ2QE&c5FP&=&l*;M=(xbI&C7)dsAMb3aqp0OBXr_{B{%%i-rr z{I~>rgqZ#+Gb!)6M~C=9`lQbi=PvYnj5t7>0%3rC58W)6@(JP|VZJr>3?_Nc*ag*f z`-Kntd0Dnxqk$|Oj_w!V!T5sKB&}4W-SO=}KPmT7jshOY`p7?s6O{cnVf+jodSz4M z$&;T}L#bIbDaT$aBX-$oG6f%Qn44Cl)*AMu>| zI`Lk92YC(pxYP@kjd-e07WJyF$X_GMN8@6d+ymnP=Mk?|>Q}3wXsyBDkFx1URE9qW z0`&;k6vSvDKQETac91@{W!o~9jtG;9Pvyd-7(56o2@}9V_6@LM9fSj6z8&=t9)uC$ zK)A?!fX#0jOh*1j!6YgBM4qPXZTINsJ)Y;JA+?Xd7fD9x18i`-0dk;AM=Q>ajsRPi zj$}P9ErI@~(vp;8G%Ya(tf8e7dt6%TML(varM_ussaKanT4Fi#p(U1ozG-OyZF#9^ z=^m7==(;d1ZT+N6ON7aMXo)a6-?VfgVUqYnVOna|&%Lz7xrFj9^-#_Syr=Bvy`Szq z`Pr$DtNQ34zYQ{;8UyIo(244V8@mv`*kjFtF{mCIi^E@{UiwQwSA|?h*^jn1`lTxw zU+v=+`xoKa;D>$tgQ8mVb=b^=B@&mb_S)dnjs38#%efM^fe&F<@p3irf+oAJPPi?Ta!S>+Qz1{=eDmxyDLRrVd&*OS686CN!ra~6VQhy)f|B{j5tSx?RSYKr@Dml zDS@p6c_h6>CsD4|&$h8_CvY3~20ZGkwwvS}#Cg%_eVcU^bOz)ZJt5oHFz|7t^!bKv zg>hLebyDh^+$&UVHwxNxZTZb=_^dZjA04GG8qDgV4Fg|98LU^q%a1lRB2SaJ5_!xw zcOnn*famZ`tT8b^6_5Cw{=U$={hoIxJm2}X?>FmYTx_jfl`9GdIu|~&lg{(l> z-G+Cn4If7v+;`N0`JQ^}Qs}9?&ec^Lvbt(Tj;`7y%QZS5$JpqhbNSw@PqJ=Po-J~9 zRNRwRr+rWQ4t&(5Z^8uMj1{6~L+gm?Ic8#&{x5Mf(1tZW@&)b}l60PAoOsfCLgFH2 z*G3^OXIn_?H%j?9VKIhB8`juJL*h#8F~i=VeFi!Fs>=E2-PVum8GL_6Z;Hl<=e-^-9=-+r%K|;njh#eWg_|2tp_E}|5g8PJ@*oBb8QR9PVr#Gp0PW!JlGQZY8fk){X_deV;gD_&rZ@c+v^?E zD>S_yL4G{P`LbSGw%2 z&pav1M=W)OAwL?^XPFK_SBrg5?F)wPzW}_;!kqmxD-8W5gIL+*JxlDHz<0W$m8c)> z!F;(tQXM!BnIIkrpLzuMg9G030(j1LYM)T8|1qu{?YwH;v$9dh%&E&@?x&I%( zT$)w$<{p$qyCLCDxrVSOuOR$AYY_8-edf+f>q(oL%rCAhRQF%%x=HIUA5iU*d;skt z{*bPLzj-$1!6Gz0G=-+OWNd9?-Yd_^eiZdmHf7n<&Bw%h!i_l2ytHTM$_T11FZ~n8 zzmD>mf2Q*Jo;C&26lvDb8OxCGAlpn3MzFIJeqI@g?_Zy31#B0}b%Y(rM>&c7tM#gQ-g;G+=2tsF zGY9)V34Me8pC7+sS>#t;Q~1@N)Xqg8hR7t z(x4B|87mL`A7(xwqF&fQAL95covsmM35iwQmgao~d#11+7`Z`oVBh__2ruwntg(SN zt}4JAN2lS9!=$}aagllZvic5OpUvEH9qT1O`u!>VsH+H%=$XQguFvwLZpn{ckFv>+ zh+E|CtfLUU_hfFtIA1C0ojM--bv6?pIh}de2<0gu66r#G_I-HAez4q`_|4@6Pt-@;llzoWqLWk@rz%68jf& z4wE(yWADi4c}fqOl=MeE$k;jz-{bsM2?#Dc2C2X-)o!TK5+h3A)2ut)tua-8ARPZzuuer&t~^7Yv`))0puvIa(3`C|cofI)Cg}1uhr|q(s~XzVIo<7am-JzI7Dg3#xtmp5Jmm zv=Hx0d-=k3k}uq*`GOz%YLkeftvNCi>?$~mBuE`*BCEp)i+qgzXN=ft`#AV6Wvye- z+kB(%2Td#a6g46r>6tp_MbM`(E~za%0}uFP`u|hpVVzfj{}N7I$0jZ1)9;9`GoK%n zdTb<=Hz;2!UU1t8X_&m=Z;*0c$knBke8q2AFV9jlG+bEDdZq|pdv*$6dmd#e`0)Jn z75xw5p6%i@!ygLiJg%HIeO+GuKpZ!6R=)g5xPKYv6DnL?(SQ9c+rjn|Cgdr@JuXk7 z&kxFyG7{}3l$Q)&F+9cCQN22tw6CO%9W?=831vrhh9{*R6>%rz+L&K#LEPe`wxPyH zSIF4X^u470bVEOVf|O3=>hACh(lU8sPW;BTpU&+&+7Oi7)DAzFT>I%?f_^v#ptC;q zCHTRQVgC9Q{P|YE&JnI!WpB;eQQxlZsBZ`Uk{opxMlT~Ta|RkM2egg8jH>fy8v3fEJAfGtqwr0sS}Ef&Z@_go z=7TQqBH!p0Xg_I9@kZs-^IE`Va?LN{E7Z`Z?5JD%DW{X(R6g(@@S1C6T`W)8U=d$O z`~~t+R^#`Q_i8)m-{Lu8{8^ozTJwKZ>=?Y~nlW+So1bwoCy{MPUQ%m-t9Cg^ic)+h`>&I zTrl3zs=C#f-(f2~buZ}SXf^DLnm!UabGM=odg@B`;_mj=V5*8@h123kyWC>mBg zjdl`_6L|ttmnW$A@72#qTPc)ryJ|6bS)|6=}7m?0Cf%x+5`)-s)S;ENFN>*uv?yv^B z!~4K5z6m}z5lq0J_AH)VBqpRy!9i>~*@=>Jh1AUQAxu%{%bHCxm&}FA>>s)vP>s3B| zDs=)$%&QAAuP(w`LlSRy!pHTl5$53FUS*%`qlm{$Scu=2#3BW!hsK2lK%{}I01hD5>T7dnafqkL! z33qS#KP&+EbA>tW7KHgsv{wq+Bb`y-g6u@vllq#M?s%=}bJE8>XA=Ln=Hfr`p7>8X z$jAR12!F^B#Qz|0Dn$GT{KEmn@w65G8`wMPw8VW0AK2T-FGC*qBi`VyTJRBxqtNL> z-Z4Nt&miW}5^+zJsi#mK-m;(1gFU}fu)kK~JMQOsNgN$-;Qp1foBaH=l?Cj%q) z#mgfMtRxLzOSs-#H(9`&j0XE|dF)xzS!bQjgnEyAiol>%2%Lkgt9y09;>+CqH(~; zC)5=vBak<;Y_lJUHPJWn=b0wRH$Ex9a}O?c0W1+D{^XB`+^882lTgJZZ?qhuFYODwN(Lcth&SV;s z3+Ug4wL+FrqrYLi^-|G2qGTeoXgINLBC#J-M<7>t#O9+Wc)T~hU#yo~K;8`!3prys=c;Qw;@hS|S`e2`-c z@6}>i+^@wt{3wqp;m;Jl`AEC6ds0fp4wSQFq!eUR*dbf)+26!M_0!)VvNz>EE) zPqb+e_phrY-3!F`@FUJgDdhVyv?qXi(QfQrW4ufkCX}gJ{*le9e7O$|yoq#9zD9cF zx$WG`!}fC@5A*lw{J$xD@#+8fx05f@E;=XP2>xeyBl#eCqboCZ<2*GV&fjr$Iq6q` zZxBOY^UMYr6C{6L@$yUBC|J&1_#@8$C4U5d&zV2=k=~}~kK}JSPXay^em#$z#oFlt z_~V|V_V19s!KPlNU$#_y@h@d|jL3}{i zsQ{PmAV;0&I4XG$#w74yZ@j5X@cwM3aUzp>cjRp5#>ul8TgnA|{_mMY1;1UdzvuZ0 zFM#eSN3u;%-0t$jR-ALib{IL)$Y9JX1;109|^?wMyDwl3pvkvfE@j^26Jab$yn#gQU)?9uOu1Ka0WN1HBVqDUQe zo;o_`S;y&i)sJ!1L0-f0U`%2~-|ilE&gK!rYI&%dYN8TCbZ!IUJ{A<(zuAi`O%?hd5QNoZ&f? zL;NpRPC}QHMxK{zOkPO1FxWlAn2_%kYx~d~${~*~R?hl4l*9R?P&q(YDSMfDwN#gR z{1wDgxBiI>_b28_!!cdP@$-x?4(4%1kF>vXjl+_0wY~H_k(D=W*p;~+wgY-4V;Sv* z9)a}M9gX`VVeX`W?skJHuAIVd+!#$OV$ef_saCTBlf~wPMcUg;<&^Si-GTW&p2C*w`KSh zc_a3rtl)dDH*yUm4t~bAZ2jX`PFqf{S8b`mIBC8UQ}ciuZ;ZNL6?7ijED5`a*roTY z#nJD$lo!iHte<{6t@O2lKTJ4j0XJv^Q8rCt0_@Cw&JB;F3<+O5ZZW@u7{<&?dla8D z@8x2pb-E-@nU`ZFVOx&XXea5jyf#U~Ig<&T(ig}0d!GRZB=6yKjsy9Q;W=#cPvGyW%Ch=fMENch4w_W$!rrz~d=8mIjIMz} zxX7 zZG%1t#m5BazGTOQdjRvtB!V$%#h5_1gI-6QhqAj|r^n=tdQ5Nzo*a`_j0w(>!TG2@ zj0g9@xv&l^SdSEfSB19YFwRWtO8~EcXas*9N?m+T<2)7CU(~RsKFjeoIJg%0$Z=-> z*8&GyfP;)t4491m9r6NBgX9q>-lcd1*Ogm97vzat*D>okW{scgoLuLjzca^(XXNpm zH`0#}>v*K0_X36-cgAgN7Pt3T1=?Zn=A3sF_wA^=9dk*0|60+}Uk`s<>@BW=-z{jP z1MN!;GUi>4*eb_t6)3R+_`vd>03UU*KIDm)h;`BiORdYtXIz&jy#vpJY!~Ziz0bi1 zhjoF*vH!G1`~Z8CSWhe3)&>4XUP?SMF(cWIe?=bh^-^)qHQ&x8%bCAa`VDXG52trn zH;Uv6uC+$Qd*K7b@d$$c5yKK~WenmIvL9GucjG=<8}zw>Jd>8ZmFL?19=>7U>d{uU z@46i@Y9B=$2GDH+bekAm4S3NnZzi9FLb%?9abiDMKFjphVai{F@(%$|2s42=SeeX; z2v|j$t{*76?y)U8%H z8ML?`fUv3&8-NeY$8+Nqp3tv=eU9UuB|2)B$~`I@5Yw>{YwGQQL%YQ7kk|lNv=7b} z7f26YIPx4se!p4wm1k@X!LCJqw)J03EL9=b1%_H(TH)D;oJ(3o4{$`q%p$Frvk}(= zhib&Ke!`#oCk-Asy%UU;f;f`g4|>NnuR~l)wjJ}qF3iJ0#;*$EyAbA)HFyR&EEu*w z47{}@-V$FIWAB>qcSVJtGG&)og;^-Q zKgu=pHNq$7E6!)=gq*`T&+z#a`R8VLyjthL+tz8`_7~u5Mn1UD!`rH08(#~$CvQvQ z-vS)P8Ex=)9K`c>&{K!xb!EWKR?v~*ISm*iFVAU2Jx>FEZTR-nMR*R*Nz3w_>)~U~ z{9c~ZoelyAlPl=6Kw4U$`ObRHci6sSyyvep?>X(^J?}V=yoY>O&gmY$I{{wd!s`(v9JBZAJLppG?E& zAd_YJT(yVKVSloR&-o;u3y1E&`cFJae;>u`nrbAk!+t#B?*Ol}B1-}t@XK3C`Fjel z>)yQ#WAoDUyUBCpcdyCgcNb}Xm$d!ZD?XLy(U-6g&wD~Y&*ypK9ct_-b2H`_Y)3I0 z^HVM6tF@S)n&G$B1X(T)8LuAlTpeKc4vdr0i*5mINsleUw`&7%SMfhzKlB*LbB$7- zTMHgu4}ML4*9;lc58h0DN9j0XkbWcBLn-5OA%-LPdixu0*5zh0cT~0F+sjJ|%UHjU zwxGQ!%1VCJ$@xp_7BR?w(4Vi+@B4AC197-USpDqdBY4hsQ-0?;z^<;dRL&pX`C>KZ z3cv#LUBdw2kpetYfCuCu#1O|^23Uc|s`I*89=~>DN=*W-Fs;1+Qg#*Js({T1ezBbZ~_M0tNL-Z^!x zD7$>LLo6Dt!`LT;eL49`8{Vx)S>eDlko(txUfabdQHB$p6dY4`Jn2uX#+o`K<3T!U zAy6L5eugQ^T!=Pd?;Otcrfd|2e(DoehlS(68Kw`*3d#bzZ*L@>EZx7IP}|6dGsBiU5X`F?M7cR&cz%-%mn5q)ftnNE{0%dIw7C z>Pv{yD(cW^FXFuJ8>_%|Kn&xr^yFHxpo)H;>0pHMdY*(S$oX+L#{F!vxLmc!!S zb_?^OveQA{B7FG`VfzU7K_mcs?h#@i4k9%$>X8{T;?_9mUT*$L zm>1)ppDMyX3CDc?c`%QEc3|u_dH83S=9k6z=bf5=f-WWhyc;+{TuW;Hx!%J+JBaU^ zeQC7ve054=1SXAu_Up*U|{(gJztrR1T*LZD2^Ls@o*hlj%cndPC^he004Wv!(si ziHh-2!dUVu%||;teDr?u1Pw>V!^-EQzlUe!qvV6d_^26wFCSfxz8PM{y19>&_%L5S z%JK^FQIt7)JIYRgj}o56_-HfoupPwlx$sfbH^WES2l8a{QQ8n`6TeAx!8WuL{+K(! zBf6o3@T|735zeX2@WEUQ|4^I@GJ^cDDNXvwH~H@e^7a`!;#xebM|sMg zX#BCdbUDdvIkan@X;8eJKJ{GhF+O3?-!LB^fSsE@&mY2hPs-nj>twWB3CWMeXes9X zGW(-gP7In%oPhQ{o!( zG7s#%Xxr4aJC?!quI6n1xW#Adv-d*Yd)Gw?-`zJV_;Q_$wjZu1@_AA}=UQl!wz()+ zKRgD1!XV*Yk8!2kNxbLUsA)IXMA_yzbWO}d(!R%Y4VtvAIxpBTbVT{(AU@o z)JGd2d79S_i1oFgEuO~MsCmf9IkjSWl@(a|9zMSqdz6ksC!WARd~&bP76-3JOfBGP zcVARI0{L=qtVSHgTJpZJAnHY2ys=X8zu}J!nJlJdqq=pLlLoelh8nC*$~q}~zD0Dc zpsaKXV@SE2wmrq4Y|A-0!9Jy`z#r9q_y(KMy z_lovbqfXkKM}UVN{!ZH|!_-#=SCfzfWvJjdxuF zcE`B5O57}MK*T-TebU$y4?fxN*aGFcYnEJ3sP44{>t&tjQwn`bp-(CFDTO|z(5Dpo zltRBT4wJqUfH~{WFNe1E;~4vFdA(SZnnRi4!!KIj%uHTRx^V0ya9H;#Hfg<(d1eLM z_?67H5|6)xdN}SJR}eVt4i)v=>(!WX9h$tKW5xAn?|L-(hhuC1i{7;8#kjEDUcSwH z!jL?c<&#E%he1B)8gVOpGrY7&m~cIqdOgNn>V$0D9iDOa+6pK$R)LOK9=|cM2l>tI zo^K2tuz%O;awjvkTodOxP3Ar4rEfvEV%usY4Osmpg6G^1fj60bQff`v!DJ|D0h1wO zRHPUaD+0VG9(-Asq58=A(&aa%kHqDNu^z`fJd=rS=CjY^*=Y?g2RQaqorii2=W(M8 zQ+@-0Mn8vdLr6)tEF+h8%X4VA4s*P0Gx#cL*NHYD*5gLfVrnVI1^Os#!nA>Kox|#n zG0(s*kq~~&-Q_uTvn{Njb=L~tDC3gXAvO9oc(?Y=i3_gnvP{a0lsCP&7I=%oHLl;9 zvu@FzF~T4QoT~wk!1|4xugqDu+~00vk68qJ%)B_re&BhEvIX9yxb8z=6O@DTR5ZtR zoMw#I8I&Ip5ebg~<{a+(3h7u*_3-&`E+fb}{X@{T>&Au2}` z_y>gzSlEDtjeHTniEBgt(L!~f%(P3}@3#mGw2kyuc7scAq!q$}FyOhrv~SY(2|Sqs zgJubXA*_$_5O_MLDbUa@?yJ&?53B3ACY1T@eB7?dKuxgYr7EGn~W-D~lT{a3cp zmFNp$uo5r`L#DF_`5o#7EbdL6MO(2?X$&zCvS$JEtYsT{SU>pWC~1RjAl~9!HPmTI zxELEH+e8?Y)+rba0}oo|9>XJJ&6o?CFc-uz7t{j|t$;xb=83hKC+Ywb8S7*Ke5iLq z{4x6Eq$fe)h@WZ4MG!Is@vL&V7Cs&73}wQ_Nyd?<8U6Ziqp)}Q!H-676iPoN>?7iR zibm`SY2V{Fn?TzokT-g?Zrmc;cTvs{i2<&o0EX>=;YJS(-Sss34S3hn=qGUOQc#Xq z*BQgN5*pZ^k$}h#R&EI2Qxl2y4ZM47?MNkA$A9Y{>6} zfOmt0H`YuvtQ%m5A|Avozzt*e0LJc63NTFprWm6G7#l?wZ5RixWf2B*`NqJua`-Xy zNu5Pa`g|snUcqwiBc7vA28K@n|Jf%8{jLMtM4wtWi(yX##|wQOb3&GN>{3fq+nt#A zxL(3>ONb-zS#Wy0;Q!RVYa!rI8V&-6SWAbkp&dSFad8Y5RgRT|@e8o5n9HY0<5z*k z9lHhgy)9S^=tBA2C#2v+I1AAPd~X1*KPcfg6U?@wpXj)3QvhSeYmO_&lXD%%lKrQB zfV}U!=s)xD><7Y!wpYGqJSe`W{|03OGbb@GW84u2?Z`viBfUITtLTO6B!@vW0nrdc z9?;1+Xy#$i%z-h;%2KCT4Lt_yu+le)>+3fq>$tAp>z)4_Y7gBM==F@5D+Ntk0!>*riX`XgQurzi_3o~Ph)?ClE$>5uXV zzu6C;Ci+SZWx9fFFa1Q=#xQKEn2YwBK2V=vKe#?ts4tX36zu3%qF{G1%HZ4&>pS4w zQG+!CxgM+hN)#MfAN=4jFR3}2G{||{+>h#ejyL;jXpeECo&v71eRu0N6W2Chqj1gm z26&yrX?V&8t4lMQ-2NFHV#B<88*y$Xk@P zymguOu?`c{h+{V%Q)5RSLEcVzf@4QsVb)M7UtrAT_;KtwugbCqCgi#maXKK!3-1^c zLF?s*N)}0cXSt>=T;F8=t=VVv!B%~oy--uOUf9hLGR-=X|e1?u;Mp36`-Wk>&A zU6NK=PbcodcT$}wOJE&T*|%(;p<8FbwE>#?TpOSbSpera;#<}c!uO_++^5O1*>2X& ze6Fo9F2DOR#~tMpR*BauSaFV)G41RwVFL#`?!N(J?ds5VI$vZKFx{+S>MsCO+MNr* z6b>a*U~1!;>W6~qX52?nKjGztDdEX{n?0~MJkh~?;N2fu2)?H7eE6FB^5N^PD<8Iu zuVG;8uPF@M!v}L=`*ih%$5(?(`LHDp8Tb;f3~tW_zAq*IrdJh)aqxj$7;n@0YBc`V zf+ujUM}OozQHDMI z+F^JD>#4;(Vd}+e@(03xE8cHK88h(-Q+GZdlLqSgcBJa{eC|h_4Yq@L&33VD-sj`8 zmrvBat}vXpJ(vsUfX;UYKBMF#`R`9fRXOKlK4H8e!ly#Rmps4VbTf~0|mf?92c9npPjl}m!yvP2Rh-yFAf&8$W0ls65_v(#l zRs-3MdtxB7j8Il96+?(w;IXC|kL*pX0@Gq^!g95KFl( z7O*Uyw+&mHmQ9qLgna!hhvjA0;!qyyPfZsKjW$T~51!%1x@ebl0t?VSRX*Fuc5v^` zwyZp^>O4h0gS|C`#qqF$1#QVev;#bCtW)c$Ce9&c@LH|wFa{#w(XJQ`zsQbT8?;a3xl^}hDiM`MUVmN#C%T{L#+3YW$(eIu@g ztG^ogh_Z?+A8`-JUaSrHrR<^XT;=dtP&PcyFO+fR`~_KwJi_QjMrZfhxJ+K^Oq6jr zXRtn3#!>Z9Hu6J;K$|cRxp8|q2T48zxhKCKSO1Db_EB!v3 z3^*TC)}-9eIhl3Re~!F6KM&_!=Ht9;@=;EC@-o$C(*_~-K@NZU+p*Tu4rA-(Je&`Q z1sV?QANxc2&$Z8!As45Oyl-%s`0e6y7tT>^06d7#T|&y4n9r1qABXIvWp}{7kR0ZJ z3FUm^KXnwwAz_>l;t8J_T+f$TxyRYa_>-5a{(EKo&2yCTp9US!7T}ffC&3`Ti~qBD zcM|^>@TZ(lS$Q*L{CxSIwhY23U%sauLGp(SEZ?)ujLk_I=2srsKD}Zp{utS@kX%0# z4v}_elIiDzOT+~uYZ#e6@CuUY&jp7omgnLy<#~g{^O5H-BtGYklal2F;?*Z-6r-n> zWxqM}lrO)(TIlJCrLQh}%9q=Jo9IadTzZa-N+9KX~UDUkCxS850!NMG)MJ~cUD_+F zQ+^lPHeWVN+k7Ca^HGkb&D@VY+rT5cTgv(@PvSh}GtSY}5z9aq3YQz8PtnHC*nf>9 z6?jJ*HOrwcKt0#wvpxADc*ioCk7XjyobCOT`T4D}^>a;uwtl0lvV5bb7P9v{0||@k zvW_jZPFq=UE%rsqzS?JFWQogD%(}ocdDahqlC@V0#SQ6@Iwzct-0Y z)Y~f-yW`=d3!{g4*A}Rg%$7Ftb&*#xjSxQh`i+AaAs2GZ;zH17pj6?4SD!bu$@Mw2 zZf9uJtZm43jkI3Zzf53Cf^bZ>Eh+uEoO6=3To| zYar8q&$i8K{o}mx3U@rbyyDb?-|-5LMZWI#+sG@P_5F79ib6Q>J6@q|oYMcJ#N`#U z)g7^KGrQh{y=w4rq3)>s7^xpnkE9yQxPi zd3t3(<~Vsxn`=l^FiD z_}AfIkAEDr+5~2?8h`FFYR0p*__yHSiu*RC>+w(E-+})o{EdFdy|$z!`j+PV57BqF z33Zyh%!AlxqlNNGdhB&=Mn<<=3;v_N7gE=wj%>=4>z`+HY0<*qeeHZr5a&!>6WTwx7uduj;hBkMZiH z@$z);bDS=|N!u*qo3L$jjc>wlri*XFy~{6Gd=t)(vx#rQHkG=}uZNdz_QMIL~oTcxD9UuR?K7-VIn1|2S8l`l+HB?y+JF z0~6<@4zhm}{7mCmAF9WCsyEh2Ep;4er(vuUA7Y1GQ&ny6MVyf&Vm93T2IxRCW(&@( zg8sSzaYcNi;n+seD#u8zD|W{g3KL77anMm$3U#GWS2ku&Gju!^hoimb?WmLT1^j^J z+@j71QSlpYMZL5M<(`|sHB`nt;rSp|1o3`WsF)|1w-DFFFFGP@-**9vAm%5dn-h;* z-Q109f-`OUNR#!DlhrvM*guc&Xj@{u4C=BDY(A8O@?)Ej=Gcb7EMlA7r(+`wBQ^rz z@&&Yyu(?{q%Q>I19QGq0Uf!4th2omA(a&j%BfZdG&N66oqEAHxJevM4 z;PuKM1@;=^z44DS`^jk|L|*W=2Jk)F$+!=~U&TG^%Dzo|y50}rv6Y$cr?Zu@KJR|? zJwH@^IUj94pL^=((ub!`sy-y(FG9GRcqR(&Q)9NUuO_|-$A@+^#%!ToSlVuETiO`S zxEQ}Rj*ICded3sxbV`_Z;=Tj*oBiJ$w=%?R;TSUCeB)o3x?Omvwwd}8a&NBkqv4)f zZ(Xj9G%ow&jW06v0|hh69b98^Y!$mDbS8JN_ja9c(=1@S74Rc$O*|YgY-fsx&N_I;5*;_^k%P8K737``S4{uYTRdzj}w2cFpRhUG8e`no$o@z znEZw?CQMBn5#ldx^n@|{jk#Zr1#w*2qCI?Qz_r=GlrVka*}^b=>OXT~dR*u0)Ob7F zm@UL#6SIZ*3oF^^Hqez>$E2@~muH(bMKAu6W{D&GhIt9wtsdACueafzu=T>4@FlFb z@jc3z3C^bOeB7mMyB#rGl9-0ewm>+s zHQAUaN~ha7a!FpylO;OliL2Wcj(hU6Y2uzd^>3;l=Nk89J;rh_aZh?Bf1Dckgyl$I zJ97qseSYJf+=F__$IRNWH}1(3-%+qAiK{ag{336mK1P_DJ(Bq` z89K6fIk&hc+3$eIUf)sWUtT!&hVeh5&lAVQ`1ns3&nJJJym)>3+qrm6*t@>LbB}v+ zp>aHSye1^>m*(x2%)%Wwqv+kQX=8SAPqN?Vjhmvcnaf}ssT;mjG-iM6H;=~XcWLO1 zWAbXEv4N*veKf}Xley!SyB|4ABd<~#JMvAJ#xQ-)Iqr$FXQ(}t(w>3&g|e>XN4@DB z`<>Byy}F>uOPhxAe>MKAYA*20eP{EDd*bSS=O^yTz&8}EXe;){J=s>|c|t#@Z=JG* z&Mn>uanAv7rY(VTfr)1V+gZPfdt&kwi+l3)ld8?84fBb6V(K`TcC>ohK|I0Sk@Yj= z9HMyT?EG3ydy4h>qh$*-yY zdu4nR18%l5{v>2~+625ZK4qelU=on?vvCb6=bIRT`TG-T(=c&Qyz)Km2})j3cGn9f z-!mR#p|~f*U!96S)5-PTxF>~hXf`sviF+~^T*{RZlTt>^kJCU}QM#rpBhDn3lfPuY z%aaXf`j%}vA2=L2k&DBW=M4_eC+^9G#OK^`QnGx0oQ5pCe}m(>$HVrc4O1`%IqdD*LaQ0o-eQPey(v( z3d`&Bi+l3ymlceRtZw3-JW=HNA^qIQ$#ac2Vr0^Dk&$D0ZJ1Bolk?Gz;l~y12#aE} z`fTH#nD!Kt)$4U#=Nk7!%3aVmsV_-9#ymP*Ob6x{#-BmvojL9aWi#rlbB%k#y5?f< zpKEM|d|iO?H@LRR^&`Tg<6X?HicsA2Q%qlv$ARK zF0gI@xSMrl7xpv9Ju&d`#xjUJ;*Q6;#yufS&AL^-F7isIkzBc1={NbY3<}B3GwCSj zqTgHy+6*02xZu_24Q(r-7fD1-yQ;}zU*l$85fpE%<3irMOp#p0fD?T7jS zeVFLWM|rD|4rzRpygH=u7o>ift3ytWH~4bJJ@M+FlD9*Cc6|i%W$1+TA1M^~WYga% z7#rQw#64*#^1MzzcXiLHYa_+to*4b=T=dSvUr_Be_0Ki#$@yqQt)~sebk5nvJu&Sm zq;m@Wqs}w&dDZWeALvRAzz2nR%r!RZg?yjZ?+KSvA29nA9+vA?63;Zw@$rZ%qKO=kC$H|ug+lJtL?^aZ}vAmio4^z$C*H>|T)?w?R+t73fNPo&P>HF_)I z;m3ZUh1fI3HsE=mz?rpd8*An>KXfzV2J2y)*ssSAyW`!5I?xAMHtU#8zgR|(E@J>~ zy+^l`?IQeW8(^MtJoccSp+C;W zgWaC@92b+v3pX<+HIF)&3B3o^S4+91HvPUN4Tyxx^=qMmewg@QnN7uEFz`LY4)RoYA zm(3z?lg@kDGFeVm~7Drh%_~zU@Rr z`mFOk@i>ICh{x*PO6gm??L=jj-Pe;!_hX+_a;N;R?sYwKYzo!Kw(mKl+Ddk~_bjVLm&JHI#2JO_<6~<9gJ$s%_UJx17DpV>u}MUMs}qggt2G!`L5-{h4w2jWi$@8uso48mw(% z9oojY#^L_zP@~w2J)}1JBgE=~%$>{Y{i3no?)w8n>~&o2XwZirOdt3?&&3bqA%O)=N4 z9Az7;(Y|EOFA?u~^}sRk1;S!j;}zRDm--dVadw{Fl=TI*a2C&3LIrNhz{VdC&pB2D4LVJaHXCPdc zOF!H@zY6rTIQA@T_Y4$Vg+$|A7MMI#MRk|IhBLW-(UkQ&^qi>{J;;G>=QNU7d4KKoM*cF2aT7k$4eKV(e>ri)Hm>)xb|`V-uulx`q_Yoj(T zuZ>&{xwMbxq8`pPM1CpzX=+j_^YM!HHhb!|L{|;#HS+yanW4yQQRh>c@xE~nu5ipK z&y8oSqnXT&k?~B)GnDf%XGHk?HHay}_8iGv27SO@=0FxvW2lzo$lU5>H}Wg zAdPqY=6J@B`Hk)6xxxD&o9xG5-E&^2tb!_~d^w)EaiT;xXiu)(>FsaZh=Mca+(YP- zSI4T?@7(7*r0x~b&p9@%(+i^@`4i-91rH_nn)(?xgU`z_P6{4>(B}s{*j_cRJuE9l zIH-HZ@nc-n+;i4APU*i@?LM4sv(e+IXYs!m|Lzgh*Fo9t&H5Y4dPne`lJDHJ1X-t% z>#-JNP3SQ;&!|h8Jg&^_%F7D=laP5DYS_lJ_Zisk?E`LtzLMg2UpM6Xq;6OD2*;6a z>o#a02|I%V+vkMuT-%r8e%Nh=#`zG?+iT|yymwY zGsqaAo3!LXh-=gL(x z52o+LohMCM$vE0ZyK@Wnt&uiMjw)JEw8=K|`S8x}RCOczDK_>E;rbmnEyDGNzH#6n zWA@q@uc&B=lvF=j+jz?lYKPyvArcj9Mry=OBM#c@7pvvId+?wU)@Ni8zT^F2t$(1Z z?2rAK99I2#tLTZn6@11A9>F-B95co~q5UED?S=^C9emdXIe9(a#bp`BHc^51=GyjL zhdkG1p6kFryZLLp&pp>s&vnpq9s39O+lc3R{a2KIB%u4lb+G((FX~X#tpE?TcWrn= zFdng7_e@SeCMk#R9E>~*-N%XAmJ>7lF<~tcH%ojBCoSt@A3cr2ResMkqi|pxXP6&?T+VZcr=G2$&K%CtW18bscdr^J>LcVEfw~*0 z_m7!Ak%y3WC?822?oA8CC6aX_ra}KA&_!vAx`Gho8Ppl6J93<<(`^6P-$H$)Zp^+B7VIDUMwqbuUbq-uSdCan=K5mM(8Dr$&vx(Gr`pYN z;WLg4@r+}_@wr0JMTm_t0NM!>H&`zU94!Pd!qYF7Qujrk_{cq3T=Mt-4DIIgT>NV2 zdoi<4k2TMIb;sA+f4241kZNlg@W|-leEyVvUW{(oC*ZE^my-sb?M@44fHboduv;EM zzxyL-=f$F_$B8BsF2&*&&T|nAzIOE?CjQ`sNdqbT#gnl1{jp6>W8jNLB^N)+g z%{{b9IN%%3;YrCuY;iBf{DCp&)PzO-hP)&In2<(7n)iUNBy2*kuZ3eRz|D8czJ*U6 zMXZB~Wz?frh`;wc;4P#z@|%2kJP&=BIKaH&z;`UP6T1JGp!Yurz5fB|{fD6U9|V87 zA8SeHq?bZ; z!o9Kic=6-RI|D3_-{*g0_yE6?_@7q&BTP17+|HtX1Hf&znKZ(2ya#={bIpQCuSiST zrdR9-4XHNv!Y+*X@_vpn^6^_am+VIQ;H&-HF`!lq0f+am_=&Du|5QXdJi zzsx@@^EdTyTuB=Xbv-e$HwFBu6{j}93eXcMIC#U|wQ5wD~#y?OPBymsWjpZt^y57ICD&#|XGtMK>XG5X38 zJ_cT#HwhoYgljE80_hiQVzrRo9N=^QS{L!IQ`eUdzd%DS{F-$>1Hb(DQT?9qo37o2 zr?=gN=X~0I_-|Z#@s9iBdF>w1`AoaL@5!H(+^{1}Saj&TlpD+*H16l}#s#1Z0a%T2 zEJ|lM%a8n#c+Yvc3^pdxmf9bt&hw)m-_-N`;t*_B_A7aW`^nt1LU@*62=5qcggC%> zBSvqc%*Zu)RmW=RiL4`B@a#SIb=w{VKk`lbj&iR~S=M*-5cuXn@Xh-r-jSEGzgd|S z{FC);2cB^}z2|HvVK8_<{yliti$5ANI)Fd-o0Uz8DG`^t5OF5|>^$Y0kd=XDz88>> zywseXX9L&4MNqB}eWmaE^l=N=hnddC^S1Lecon~)4TNK^#zLL9uEv6EfIJ&RrF@S# z^U%qI9-w?+Y4!t})==8_V4-ev8$o8AKHo%cl z@Sj01|G8%d9z^*=mEroa7ve#u&I1pcDfY(8&4V_7v>49Kjt6=1Z8kh87uQ~T9@O`d zTs)gA4|4G<%Y%yGmrLK-xf1-C{9$JNQu$`aujzTv%(&&Y(eNOSfchExvy#nQ?@@5u z3>n{Ro2b{%Dd+Xzo$)<`oSC(`!qz2qC(53bv8YR)hOR5|1G*u3-RTdj@>z~RIe?SY zRhftFnN1nvo-&@CM;QV-2K5Xj2daLr*JUbSF4Y#c$B9n}r#UGOh{>Q6NQ>&wesKfr zcy{PmXQ@cESQU`CkbR+jx9|rx3V-}|Q3+YV-~4AVVwH+3M58!el7Nk7(VGxVo6bDh zX97~Y6}(7P+FejEAM31c*&$#vU+M%6TY3d_u;rP|(ForGHtWLn4)JT;^F6Px z5Z$``*S)Enc!xU7Gf}ZnRI(lRy`9yuNJ%N;x>3(}nxiGv@o0%(2$a1S{sxhfUuX73 zmV}1DhAi;}imAkTI}5SCYX__?)Elo5Yf#UGD31%lXB;ORx?MOrEZ&0rCBhd8$Bv@^ z&0=Bb5%j-F_^}3S1qp+8d>a=FTaJs$menP&IlQSHwn_yH^-jW~VliOR0pry7JFDAv z0v3s-PH0lWqK&XfpuOLV@SR^I0E?Y~#rHHUcA}mxSx+YO`wG^m!#uO>M><8#B2gK= zPgK_pq3lVl!2r%^e|6n3%AQ2*bHEwz{9>|2RQME}@t)V==#Z#{KMGfluMk71Cy6m# ztojjPJ?fdLf%g^1G&+cWJdb|tSN#Z}AFQj5b+I4Mpdb5HKcf3l*E12m598XDmC0aC zi8Hbvy8Hnbs(=!cDdgWP<08$nd@OCPV?0z)uF3P03VD+S0&$JoLj=p)#yuCCExS<3K1<)b?l3kx1oHr z+dSh~RfaYSEB@zOs+%_f_V!ZPLQ9;`pNi_{KLzYf zWx(}te3OKGb!bru?Dj#9!(wqVNErF;rV_#j^Z}>{;6Vdy^MDcF$v>VN-Xi%2bk1(_ z571t9Y`%NcrK%=Nn!B)K^Y^~VpEmkXVFw|I5-EzCYIbG|*q1(~#P2g9X z;3pNoh4QFPvOtkWz z?;P;MB>`Uv?-ycBH)%Ynj^7LX6H7^l)Cbz-^EC80(&TF*)$#A69C1rHuv1jWcZxs6 z_!8H6AC_?H!dVs=Q}FEYru#sb`(3(>?<=v^lNOhNP7=9uB z-o)ebP85>hSg5?B1D;!n9VJ%tu`SinyFr`a3-O5(CvjIvb@VRKW*W5lcqQNYMY<)N zxEr+jcqQNS`U>$uUFV~*aw4aMn|dZ{05|YAD-_xLQoOgK`v{{Y$0(85s8goQA zhHvV?TjC3Wizji9_k14Oi+=}bU@zdZrlb;nObdb6hIRpNZO=w(^KQ)m*0m#dipOH& zI>4{)F5yE;+&Yt)@Gp|KxJj^ry(1h`$qUdXG+uvqSIm#|^q60~%`bd!TZHc>@!g{l zTRaBnOa^dHW6TFXEZXM%G0c~tW15%j9Vzp5^@+HzK7zCEl7R*6ANXb$=wyco`SvD# zxMyvq{VHwfqujOq14`~X4*z6G9g&_B?P*@`(CJQ{-lfxCo!+g}59suRI_=ZxU+c7A zrzxEd==4K6-KEnH>+~L-enh7q)#=A{x?86o*Xbv8`bnMc(dpml^iw+hv`*7H{ftfr zb-GulLpt53)BQTVSEs`|{j5&!)9K&pbVR40)9I*A$8-4BjkLmOgogUZelREu|PQR(sf6?hv zI{m*o{gzI@t<$G<`mZ|uj!yqgr;|GUu1=rP>GyQ{tWLkL)8};h1D&4K=?``KyiR|l z(-(C5W1ap)r$5!{DV_dIr~j_g|Iq1ao&H>>FY5FcIz6M)U+VNfb^0rvp4I7p>Gan+ z&FEBoRnc3CPA#4Kbn4gX0-Y|@=^~w$>hvO=F4pN1otEkJH9EamrPOsHztxm7k>2*52L8o;(C2xHcV@uv@ z?=ZYot%H2#MB@N?Y*x1w?ZH!0XMV)x;gBC7E45zhOQH-R*IJDZO#OK)&U0oR#%JqD zkE=I-Q4C^Fhtiv&hqWGue-O(z-lk8`mZo>q0cN=R{cAwfG5ySd?6zc{N*m>(=52(ZX zeJ$4DYp|ZceE=$^L0Z(`dYSZneJ%XAowTsbIwse{Pg|8(7qP7qf27vKE3nQ<8_MzI zhhb+GqUXdNRerG|as+-3Nvym(p$5wdthDH-<^)=-kgp*LSfF1WeO_2NftY+}e9@L+ z=5zv`_^x5##mud;uUP9G^Fx;{#W--?6S2&p_XMgahcaC#hV(aU1}5O!V&Kg7@%_`8 zH?6_5b><waK^_x;=T7*xK{tVJ@j~W%LD-A2wy|b}_+s#r=^3<#clk`c+ad4I z>ibgUBR-vcziKP-qOk^c9mrw6$ffid>Ln0- zk^e3lC9c3h6>69jxd?e%@ccDMapqNIwPl{dRNZ^&kTC7U*;zP4uTFflTrBSOTRxvijGr8H`s4Y4Gl%X}I5Yg~FJ9eT^59rY@}ts**i!PP zv9%=+jm1k2jn$VN9IGq2f2_6S;jyNY2gYhk4vfYAf9l=`F7En1{C{&C1S7^vM7>(t zelEEXYS3OHDyGz)2~lEEPlJjrEe9M4R03Bx3~6b5ji}UKxod`&ZmeSwm2NbkqNOdh zEMjF_x?x8fTv^AuY-3xtQb!F*h@ao{_4(YvaUret``hnN9=?6v`~7+UeZ61r|L@O- zB+k<9K~Igg3`fG2a?vqrL^8@_0 zB*}d*i?c(mU$++fMxI@ceKqE@xLu5!{9VmUu%}|)!fh39+~f2h54q=Tynk1VyG89m zcP!2?C#}CikV0AS7Q-rsuqnpQYzY4$UlvnIm z;O8)ISHe$5{eBz2yi>T@gFpHEj1iu>_cYg>vF{k-0ac$uDTjW80 zb1;m)DCJ6Wdyq%ugFO3H)ZcZ~fjqmNbS1xE;~9IPwhq$q^Lsnvor8Y%PU4uk_ZwMK zmM5Zqp2W`~%+_dLjeRTPxFKo%x?kg-6Ln7_Y?7*qNIX&>C1vJ28TO=SH#vIUWMDYF zfqdAL251-lh{kV6?+Ci;k0hyzh&pI9+epwt_$9ZE*cG>Sk};PNCK>&a`bvS9VkfRn zv0sG!;;3E9IB@R)W6W?SJ-wJd7iZX+83;=mrLAVhJzF6EnLLwrH=u9KiiOX{kK`SO zr5sW|8FylBy%qn)m_&S9TzukB+H@o#F5FcteewU>;+AKe-P$zrwN{N>$zJNFaqObw zKju!IuK!}wPqDKHW)T@$kb$nhvgvAVhkBJUSxY+HFMDVk=+FKFJzmH5s-UmW2sgUvZNi>2{6Div z?pRA4MmTMharhO|J4*OR2wRQ04b#@A)ZV_Qjd*tU{b95$LEHO{yh*-3AUcO0YUrV~ z-woKMAIQQ@+F`pg+jYKP3G+>U2o-R{9XpQ+ba2 zAJ$-Z1l=kNw>|upyN*7CHdP5F{DpMXnRGb(fDzteDK_ftl}-PuZ^@FnmiHurAFm<-C@WFI0%sl{y*@wykAceBHv$W#)ff%yELqU#U&R>kN9-Rmx(K zvjdUMIvzQoX-`C3cDbJFl{^Z$avM%X4X1&yvFQT@x2gF{D%1u?ts=}EJB_EF7 zTe-()>b`|KHT*IHNWZX={lK98{l=cN!~RrqGCiZ6F%W$>@^NwR4i!IsNY|Mur(9jj^^Q$sB77o6WIy^6U>b$-Gxt&HHGy^?s+7d&t)B^jod+w^MpH zO(v&0HS5d$cI!+18P*s3ZPvm5bn6TKY1ZfaW&SUHkRw}Jq@NJ~GT!FjXZE`?A6~u| zNNE>8v9-Wlvbh#WPqwrh`(N}CNygeq9iC5F-!5$;l{OIIykFYPj_6!W+JVf4qz{}; zG2cg(cu%HmHSSDF<8egpQFAHIc9|nd9%qxyehxAxkU2a3DCbyq)+71lrXNQh0V#(g z;#RUg`GHDi4)IO=KfyX?-4RDO?;{K;i>z7Zlb_-)v*O*5gY9xokfI85ME7xDoX1UG zU>?U@yIu5N-iwy++PaZieZA+ul74SN0cKtt!7fD`y3IaP8##uuc4bAVJ{t;v^%$2l*zGLqC2&a_l(`$yGw7Rm*FM|PFE7k>*WDMy0%6F(zRo;%giei;ii_3EaZC?jo# zHNa~bE_G|p?byXnLDGmZ=9^>jQS^5C+QgQca>(K8wxF+;*t{!Ky=KgNGU=miYASra zk-oh1@^B#ZE30U_rec$ zrWnt681ZCApPOUb^;wRwZewlkq->)9QpT8@j7R3Ya4Kvi9ZijfE!sgp@<2~hoFm3O z#eyE}>`NtH#eBnz_a<{*Cvo+dJ=~vAr32f`x))cP8nFAtdn+~OuREG_q5NSmV0f_8hyP(llAdy{nBTP4lksn zIBmo|Sa>esO_?V8ndNyBZSWcV&R@W<#C0RjC0+}D=Ta^|67wtZ zd3h%BC+1Uh!bv`pMV8DL@5Z0Qo{SDJ0~@>6ape_~iE zkAye+lW3XZ{m3)XD~Vs~(_%a5-$UM(WVIygSpH%<5|dvnf0r0?8Kv)k=Vda|jJ5-7 zv>n`R^#7KqY?h}lGE9leP~>M-KIYaH=>PfcP4q(YwpC=!Tu9d6=yQKirBOe$$84pN z=$9O>lq5NmQ)-kuJ+Jj?^hLaH%Ddeo8S;Ij4HBL*#g{8q_LzRjTrDHHBC21@^DKEw zl$n+OQo>5xkM#qR*I2uje&F2O%u`uk#E-v{hf>P5+4eAJpKgz1W+XX1xuSjEQrS*_ z+b(-&vY)e=ecLCEx!l2s_@R%Nae#M?QD0ZIcWZy6dbj~% zaq`9=+gz2QD{YU6dvUp~m3`6m?K0=KQ>Q1DFGI>MZUfk5o;OcBc^{PaGDn=~f@K5u za!z75^nvq#P3nbp{RnTX$oEvN>M``}(Y`Z!6}OS(9g<{chDGj=?_f6A4m+ipj; zlc&EV?etXc(I>BOx2lG$1=^ieRkRP%&uxfow_K!(&H0cP)aCb|ZaDx`d66e-f|6DdEIjzRj^VHTkeot%p8K_=_ccFYS*wm^T`- zFvGk^doX3-=)G61BTN$WH!(%(O6NW7wehB%(?NP#=*#Sr?q@Gq{_TiJeM=fC>I;i* zHte!?lRRFksxx+@JFMv=C1p2l%vQbZ>3$2{)!0k8H9Dt#mNloDZ$-ZGLtmq8_@hpI zM!b^0%cA+x^@k7rg1<#7IY?36_Yrry^rd&I?sX!2!%lnUy9(UP+G){3hr$k*X0g{k zVAg*gYnjyKLpu2qS*59ptSgnz=IC~_cC2*CxO+MFWaZ;rUsl3a_T#)B(Y=ewm-GuM zJeRrpD)J}xWZY#PFZ(*;PwK|acw@9D@@c^?cM4>UBkm67lgRmy?5)aNFTPI9`hVW2 zM_J>nW!|M5aX)3Oi9~h|ms=rEWA4v>s3E@v%Z4MYA!t{OE0q0W?H=B*uEMXB{TqvA zw@O}^=}4ZWEsM;4pML5@joD8PF!zvt3R(6SrShGr)ED{-QlIa4r*fv0%DS_&o4NLg z(eKMz^KIS}cShb!Hu|Puknw@F4973VdXF`j%<&!c4Zen0`JSeSavST6_&#|w*h>33 z6dtC12gh3tT?*W{ld~Vw?7=N8jXcO6`mgn0t`onK7s|kS(6oi}g(*uIIfN-^7+HjoMHpEizvqyjDZA>Z?3(wQ zvg<~6G5s?4{tprMMdUcRsBd;zPa&%kWL1ouWxN!5$@|1h@;b2C|KZ;#pF)oeokVu& z$ycz?u%Z3vcdp>x)_p2#fU`bZ&~mZu3icD^dz8~xI0oEGLq;ivjI!F-sgZl6oNJJ` z=&4n0B97+_8H>CnZj0KPy9U`v9MWIBsqbI~BIgmxMxGbSUX6NgiH!3&x9#d{JzcJgWv_EO58LRo;$ZFp0Sxx;%<>N{Qly?JX2M07Jk@hPgZGHb}oD|&$BRg&?g6z)w8y= z>FtTABht_1vGftQa3obg$J0q4O zIoL&~8E=m`f^5UBHs6bMumziI!-+ur=E^ePsgdJI-A6wPK*`ztn%_jG35}lb}^>Y8*s_*pA zu6n8e6A(vJSDPprI~X>+2<2k z%bupVN87DYHzF%}ch08P9?5SuWhLX1$eQy8W1M7oH}ppQN`7K87k|>WZONw0)00=0 z`2yvm++oTPrVL@q5T*=a$`GauVdM}-4q@aFMmAw&5k?MSnoEjO*{7&>*e#c}^*TPw1GHVi3=J9ircO-Y(!lJID_c57^&i`-9J;!Ux-Oz9D zgow;z`Yf{lU9y#WiRt`>T{y2{o3l6`ZHI* z*l%Aw$k_b?V>jPZVGPe+{c^u^^>_Ny7{^OizkJHGdiYe~>hGO$uO2#;xB8`1uGNf1 z-OPV_>6?so!*p^?=3e@6(e)Iy&RC<$d`kTI8s0F*6OpluJ95Uz_gadRIo31c7-RiR zeLAwc#4lIWKFJs=KS;(jH-5T;5Ca+=25~eI+$`Yn5Vag(94O50N zWjIb5j#Gx?l;JpKI8GUki=4cS>7qlie~b6DHF5cW_kOp$FP_F%;WlSK%sjK3eFWaa z;eNV&FJ(0&YpkB-ev^C~!W~?t692}gywjh{zK*=d@93q@2F&rKko_XIrn6-I?cnay z)wW^__e4CwPHx2U1(2X^9p~R0qIc@5LdYWI7#lI`h;=ag_}Lc+w_6PV5$@l0UT1Mc zw&GsZj^Flpzv=20D|raBx5u*`n93uBKO!qCzT3-u&f~n=mSOn?--St1>$1cz<>2m* ze2Z)4_xTs^|9ryK?;&I$_qwd=Cn34h#oVBOd)qqh(Y?g^2zP!sE0Mcj+#_O7>xb-V zvF3@%BRGOAC%AvGg>@eHxj4hKiM%MMBYVVB&}!9quY7+WUlkg zZw5&|i|`|VJIjL`c{cK6 zjXjI@`Qk7B&Y`5=`+zA2X%7-s`Z%d`(Fdt_X$PVsvHO0jh+F2=$!eVMuP@!T`!H$A zUAs%wLDx$6><0ef{CjpXPxHukpEbElX5O=lJbcrpc(*a^F*(W}vw6?%m55SDjdLs6 z-!bpmExE0H&+e5rt2%1z3n}$VXR>;wEe*TKNbK=*2J@bs)4XTbzE-V{aL*31v&=oa z2Ku;ncF(S;#FVYv^_9I(k*$1pD<7H4c%1l6E-B|ltiQMy$vSK&d9@re_xQKx$oRm1 zH*MX=eZ>^^O>d3JdBKO(s~MudtlJ_tp%cW-9LYx<$?P>6=c%;KL*XryQ|dqR@ZIcx zYDS+V`&$yPLvtJT5RtxS0L!OJAWFIj;Y~NCbZ;iZPWw?{5g4H>LK_*W45B6==+kcE$ZBf5Tic9Z{@I6Oa|F?#E+RX3rY|wn@F5kb5`VqYs z9XIuU5M3ADmv3LmckiCV{c9nKJD-V^fxz#lyGi z9ocSG_}CWC-yhA&WM42QH@WX%Q&##nx8RQAR;st>3z8p0ita$(-`OA7Q1R)w!==;k$_J7v&Q6h{Nusey`g~ zyGY^;gf`UMFKJ7?7C!df=$!P~P3}kEFn-H3&eL<`8+vkPlEN&CFvdBc?32j*?>g_* zvqlU%vwK+QbsJ@5F4Vr+c2HTE7t8qw{m2os?DSDV*{ZO#e_wYOGd{N?OXe0qi+o#9 zzA^YtzAq?!MCcwLecOxSLm6V|8qG@(!(W?kRb3Y6sO6-@BJQ zU8p`CL8T;bjAxd2d!{?&G3&IGIxV1&mwqk-xk#Jz(dN9&aZ72FCA7(6={Kpx1 zdX>Lha~E>sK5Ix*hjZ>=JYECkZ;;s3-q(K_%2E~giais%5BvJ4eKh!ZSoEO!^<7_;d9H&Sy;o2V4zHW3%@r2n9O@MX((4S$?@bV#1&yfuB~u}{uyX1$;09hHYewXbh?`dX744KpQdpHBVly^z!=l-SfhBd1H za>c(i^*5}sE@^l8*CcIjJCcN+->2~&aE5w4#C_PL&DGB(U0isL zgNC0x+MI>3a^@uce5u;LPQtKbeCWg2A5axWf0!7r#AUd-rb*9?E0?%(X{&YUjTuLQ zYnKWd;W=a(Zp&hxm3tZZ`kXFFyj z4}X0BLaBcXIr27HHuD~MI^Pixe@Tja2YIRIJ?DEP#S)&48rx>RkK%Cg?mGNW-COM7 zn=##(|kcIM;eIzq}R<&pkUp1GOB8S|W8(P>$~^vKvn+}kaMj~y_^ zC>OF&+{&oYO{p;wE*MhW^Iq zRq~fkd?*)Vqs1vYMZXrNUklT(h3VJ03-bbZVV)1uuQ4V@&-kMA=Z=s4?r|@6hcY(y zEsc8}%f~%Ab2jtIxc3cn%%{(laykmpJGWY#%Or6wxt%=AT;}HJI3)8C<`%9?(L>Jj zvo}9Uo?$2H+S!zil*UJsf>ZT+OSpXWK%S5xqr@D4mozRVDSzSZ3ta z>ydFx(vfdmm}6Q6cV-HlL5;ur!g|EKdljLNsGzTq`P*(Va-o?Yf^2pDa^qaep~?Bvz2+Sz=9HrA z(ud~!WV`d9@F%)z-T}TROYV%ksds1a_dv2%^XvmEIbYhtK*($>@^|Enc`W0{NqxQ1 zzlk6DJ2+1E-cnd+5`X*1Rcn>LO6I1~`_26R5#N57wCN+WM%llSJt(8?(n>^_XN_^zhHl~-DT+iv&?Oo|3$|mxjQ7~RH;!9%qmeJ6yMtzt;@88}knK3rzPP8Sc`C|sAu)Nk*9gan*WGdC$f*8$r{0|$JfJ~&=;v6t14~}4y~mUQpJh3^r|GAH>-f9O_ZF&T<}#ANs@ z-JL0NblASe;w4rm+lg;S-#_Wv6$|<)Ne}%vik}MlpY2CxqxU3azd-a%;)<0?%CcB4 zmpSH%4EW|NebEl)CYB?jXUL6po8^e~JB(+RRNamKS=$dwx!RPvfi}SzC+QZqI|ih$ zZX=Dahd1+F`swYxyv3;wXPG)A`Mo=o`S^P_imsULhy7me$;&*8ag{OPH19V)V?1M= zqF;R`%-Up=`CP`btSl#euY}EJZDH!yclmojKGrwrOmuz0H|jSzDbHqm1$~P*L-bG9 zk8+<&%F$r#mA#b3ezok?Fjh}kCfF-?^gd~MFj}_xRR>+~!Jo)X+TL1mM<=(_FI&_j z&R{n0CU9>}sppu_ZEWY;N2E2Kk*+xJ=Nmkmxzkl*?9V*RnwmL@RzW)o@?D$?<8R+N zv>l2L-;krZ*Yl*50U1Q~O&c-l-{F@1H4k^^M801RI|y^B`o-4mv>pCt(lXf=K6WGD z@=-}5U-SOn2<=7YfYZhtP-G`ELY|xpA+M;rDX*uDcDmVCNjcmZ(pH(9&|bMOYp=9y zM2@`6fbJ>_{Xa4rFwPeo-Ip8vhUmi@#yaWuR*^^13txM5ymfgk^#AM)OIgf*e4c(> zbo|n&3`EZ9DuwZuyA{#75AB1zh>YBfG4h_mc2_U=b|voTx&JF+7_X>T4Ozd;+=chA z=-(K#n7a%zcX@&J{PSVPE%pV?d5kwYk2$v89RD2TSsDKhhWMVn@mtntVO)Nu&-1#I_4BjL=MS6XLa>|s4u|mVa243&JO_;pWTI^&4>ev0Vw@_R6@Xx^-(>u|}MfW5XnxnGi*pAmf~dsWOkjdNi+ ztI8x#>EvI=W*MWTjo6L5B};#oH;wr4Ypf3>PB~{FoZ%LK?l5qRDVqz);mrS{9Hfk{ zX!_|Zl|TAS$}i=V`jE1V45aKUmD{#Lxh0)3_fk2{c;sBeJlm7_a%D}{7DPJ^hPEKv zQT8xJ7bFeO>jkn`YSb_FY4r8QtcBUjE~aHNN0c>fa(jldwe$DT?vuV%bfE;lGOm^2 zSN@LL#mu41ez%f&kr`IPN&hWNluHJA5IvFRA?}?~caaBYn?_rada&cql;6^~ zN+n&hd6eb4cp)Va9N4`(~|&wM0@{o; zoi_GSc2ehZ&s|%ml)umDAE_r9D~n$rX#ZEzj{_B$5qZ!}Bh7?L+eoOU_imGy~? z?NZOO?<#8_d2dgq@NuSLfN&0K*nm(I*xpDoq=u7OMP4e74ZQM)Vn`C#!+xH~c zs}k(K1bbzIy&}P0o?!PT*vk^^pGvTQGQnP&VE=f6{ec8~NrL_U1p9pn_InfT#R>M^ z3HEyu>~|;FJqh-^66|*-*zZWN7bVy~mSDd{}A-t_1ss671I| z*sn>j=OoxSC)lq}uzxVYo}FOdlwi+Fuy0JTI}_|1671^}?2ZJxmSF!tg8lso_V*>& z-)Bu|B{wHTW(wSXqiRA@_FNBZp&@U9xbyNVR>6I{@-#NJ4hQVH@dd^ zR8^GjDE%34>0_9p%iq%F_YkHq!6=^P#62%7+gsOER@vOVZChDcWqn;`Q$s^lU1e2S zZGGi~WmOFg^$qHRewymyd?|J3O^ZIa=3Xeaoy+~*u-spKjQGUw78gF6o69R|9@?^% z-;Fh8m9^!Kjb(uY{;IN?x;^!Vzs7)X+qSCa$|`@LroK)o!(LJDD~og69k?mZrqu4h zmg^F{EKhIC^<`yy>KiJnd}U2_`)lfaI}@H$V4hdi?5$f$XQ%QvHB@O2)ieZ}%4@ZK zRe|bypH^93TU+JhEwifHsz8UQO-0vqo!Bxzsguhj*%xT1c_8>@(`K33kwn#!{J#y~?=`MzEI@wTP1 zy1bz*&`@3zXe1`0swfvfHT8|#wpG?vl{ZK|AiG89U6qN!Dka!*KPyMAP?+-CDwJ(^ zSzUd@zVh0d&sLRHmItc#);AnLO3@#6^#N^9eN&xJ(q0U+YoEWCpm&rtRQYSmQPMs9 zFQ6i?yrs8cf|zEEA5)F##N4?%aDy5Cdc(8iQ)JBh4NAkv0w4{;I)uH5r4~==%P6qq z^p3K<4fXrW_SZM~8nv26P4e~-88`BFA%9diB^6!N_LSF9^~Ak9kQej5EG>;^7s^L` zzO2;o?f4zQC^tsKtPn7Wvm2vfR(Pzg#(iVao<+GDf-$P360HbOAJY1%CQYfz$0Q*{J!(vJ9gf)3xV>xc-I{}g*)ylD!Qc@AN;=Kt~+-Y-*V3b#_yfGci(c` z&fWCCU;H9Qx?%qP>Wc>SU+IB{rYebdPkF7VtO{U6`I<1s1GooMj;X~oVq)&Q12HA*3hb(^ylG!WV?YWL*ohb9zW8i^;{UvZE3E58fK zZ#pK?UF@R?>4&gOx!N-4^|bfS>t0xh>A}o8=5@a|uaCh2O#1qH-H>~2Efpa>nAF3T z+{${xA=Yz6-Sg_2_W7IYDycj?;_v#HL%c`g!?|p472fc3Q;pe+RW$7>s|i#!ln3e? zR_vP0w2iR-rfAq`5BLtlZn?3nEKswr%E%+#Rb_RwNRrnranEA;ckQdMt2z)ZQc=a0 zX#cn+!QB;g&)Zkk*jT=|sxcaV>vb|L8tPnDjxINpR|bsk=se{%Wor72js`2}|CSq< z^0O$>q6#y4DZ|Ro&201hCL{RoBl*R!zlY@MFGc8Ozei9*hhl*jODszBE-F5j{_mr3 zBz3)!K7p5||1OkP;)p56VjO1s$SW(0tI?=J#wwI>7kIv?hfKQ`TiBvH?+$E5m(5v2 zg4RhBVv3O@x?mJb#zt`?t*tRljdQzhDc`0?{F%CMsIgMnC+79OU(#p%)4bmGkMp_< zd+4os-S(S#ed2%Sb@k@F-hsV)(`mgh`?NlcDg5AReJE?mj9_SR!;0H5~NxSy6o{xz=7x&oj7{_^D@}cwH<#~64dp>28^rt@t zF>RRM+fVD(qSJcD-KX_g5AK+$yH4wQ*yH+BnemD26Z_Ms`-SS!cucsZ{#IOw=e+*b zbYJXmWj42Bf4kB&&&=Cme`|zYso7mP>`MJ@Ebq(v+i3pd`_=sy=x=d9zrQuZU%0%tXe*RnfTNKaePiu_!$2!zlbN$wJ*)^M+OI%yF zUYC3Q4L9c9R9;c(tJWC{~5Li`6Y3=HgcjI7Jz?M6R> zTYQ}H&+km|FX1Ij%>S;0=khH6xvZt)<1_1kDyXU3yKP%}fXC6baLlc;-p@*5xxdQ# zeg5)>s`LD^!Znvu3I5r;V87t}xZ{?!W0Oo`CH@6n|ER3@IebixKORlj~wYZUB zxNS9`FGi`ZzH`ggvfGO8+I~w>S=pUsTefbE#$ZX(kErulbQPx?_6lyTZNGFtNP-uJ{t4uN41<+*&%%=!H+7(YwBGQhvuwPSh>t zC+033!OVa2ota|%UC3noiTP{_zy0Cr11y`isR8|Ey&Ne-h63%!Tt1A5Y@%`9FU5;oNa)%|CrcAHY;& zByJ5(_M9JQBY@%Dfl!Y>RqDFql8|U}w3o-F- z|6lqod7Jp#GkVFmX->k4pPbSA{*JahaYj#@BLA4Nu`_!9U!uzx=U<)CJ2B~hO+SE{ z!&DzTqfcQxKR%<6V)FimI51A)j+wU6GkT)wI!@n*iMcQQj5x7}2-iaT(?4ar!c7>O zG)*n}(SAW1|3Dg;IqaR-ZT!x`Xmji_IT| zU7YU9$xXZ`o?TN@ca6j^XL54z7z?y$H;zk;DC7Ka03?aDqCqoK__u$^4jC=*DESXs+Pbu@=%yUPQTpR!vjE1Q^Cm)$D+ z&PwIrSnoGC*m=D88)sF{!PeeJrD|BQXxlVZSG8Z9RTJ{B#js{j8*6>aC$Z}K=%sxGgUqc%e(TW%;b${^8Sx7GX|)0u2piTVQ#WWaY}AD-yC&cOwe@I zZjQzo-RGC`#KjwR{jCv86w!PxMPkGe-9$}@GwS+I<6Mfwh?5g(<1Ro#KHq7iraYG- zDQ8nA>m$^|Zl!=K=dhOMqfm7vN=#?8w~j?FPOAK~^zT$+C4Ef}_DXv1FF+r+S3g8x zA7Rb=5}){_ChoKgAFao9)0B@Mr6hQ7L zG~B_NG=3Y%^UV~X0lyo?9X~hYNA_$)l#R$yc2|rI1)c{;-}tS`KFCed;~5uac(i<9 zK#mC>+PC6`nyAkD$_)KB;*qN|QQM+U``8I-q}ZgBC(om{xaY>;=#xDfmw1R;l`)VL z&d+9>gs-d%G$0by#10ijp+DJgu)Nk^ji{BcW^ax7GmcbYbJU@{mUArZdmGCA)sS?S z-;Low`4;5p!R+QfiH!eu)SE1Bs%jL6`>T9)<}daRtJ%3ReDRiBLyhr^VX>(p>P8$A zUJ+KpiGT5@@S|=ouVZvRpl+?IXfS?|pF7GMDkWdHP*5q~9i(@AlV}X{k)~R5!?UKn zO(MkITwbc$S7DUGQ(gAAKfqO57LnC-I1kB`(pOmEw|(ad}2FJ}(`~zvNl;D;7s$IpWKR zH>2#aa)~{@EMkw(d+d2Ek7AF{kJ#h$Aoklak|!y*CLh+fLSnEzNBk_U-5CVTM{bCWPJe-fYglL>}U){Vap_%WruVy&`fXt@l#EIuEej?YlY&XZT!OhAvmSFJ z<^fCu^Y54g1gIdu&k696RHf{z6<@bTm#*SVX;;&qk@;VvINFO!t=-6%r2n2bKXr?0 ze8Z|N%+q!0RwEr-{b4T%U;F z+N!#}f$C*`w{pZ$R==l=RjSO~jQm{J&{Ss}FUKM!>=whrQo6Yel?|+r_QztAaxmmC zbG(y@O6(HmjdC-SLnqODQ#Mgm-?pu}k#poa%}9;qVYyGvX#&-(l+C4KqW{HYSTnLr zc_^@L+rIMVGP88qA6$NIG$E~}ur+n&GE+{HSb4Dc=9s944FogM-xAIct|p5}t+DDe zO>%>KDc}XeU7&ag{yCUrA&hJTWr2F`Ig_cna${+ZTcd0uL@Nb(N6)c;TbE(fXRet> z%^q{{v0^tSdKmRr|GWIf(*14GNqjMX(cW`qtzJrZF@Gz1T=KV=zYF<`r5nxPiryrD zH_9A&kKBYruFR%o3q_enqrAb^Q2!wNIsS(FeKm6X>Q>{(l>Hr1&;zo0)KF9Pka5*m zc}!1>4;$IkXxvj{JiN1BV?U|BvW6o|AFErS?yY;Uu73YwRZ3pACLGCf7XSgW31Obp zQiD~Tr`}W5$aaTut4rF^3Vybf?KUpsN&xY)!r5wkO3Tky%Qsi32G&LUG37!A>T*nj z7@qCNBrkg66{^rcQZj<(!bdHd*uuLQ(s)r1DIZn{62|UNHA^KhcU6|d5AZ)`#Fr87iLD-8K!*pXtFyol~FE8kYm~PBT%seLjYYVz9#4}6@CWz_A z%wwEiHCYV1FjJWH_65BN(~RlF3}U7*wlMCPX3PL)9;1l+f5Q|;C^M!HBl=wMEO~f_ zJV5zfjPWIyS)M!No=dpczohpjf4JApw?dc%c~8&lJ|>X^a1yFB^LplX)?2U|cEb@k z3;7g;a-YRNjKD!S4dJh?o`5v{j|OSXWzs9OnQf&tGMS0Bkw(}2VskYbl~iI z?nScbY2Cn`PdEVc;R#p_ZTvO2T9^Za&;vW*G#r5~8@Wdb-Q2^Rhb1umHu4WO7=gKP z02V^U-OOs}fo-r8cEe2WoF0P(+$WVwPlKDuH=NF)e9+6C&@OR@!!U>YpeLZ>?q?42 zcR@Gwz+%_|1LE%D?k79}C!v2U`C@Sqg1N8{7Q!)D3Qs^kT!5`Gwb*9@qnGVSYaK1$*Hj9QX+7!f7arq_mq! z7v{li=!N-k1eU@X=!b&w!~!Tj5hqlfar9GF>%9N{nw!j@g9^*-3eUEULL@(%ppO+DR3{LspM zUN7u}ZEzHJ!6`TZhq>oFBX+m|)jg+m+dbq9I$;Fn!CqJd7w#uK43(VLN8u=(7I(M+ za~~jm7NMii4U0dHUc>xPk{*n}Q8)u9q52eZ7rPg|lTD3s>IvFmDRe=<*nP-V?C==O z*-JY2A}^Q&-JeE|umpz0eIN0|YIqU`p?syF)=xQLEA)!Jk#-<F=)_pJpBXIm7@&`+rktaNHfch>$pFc-`1%t2vx>_g?9EY7S@_FO| z2fj#paOO++XCa#2O8hVbHp33s1^eIt9EGDW@Cf=P&tdw6B7_mxQn=DG&+;N&x>^%gh_ zBXF#j`hwkmM!aRTPw0fxFb}%^oOECiHp31Wf<3Ss_Q64@`p_$w38$eK&cj-m?xmeU z4TfMY?1Y7|8t{=z(%^WD?B2S%VDmVA%?79N8` z(Eok%1$&06w<_xChx8Y)2o}RySPet41x~;Ys78nq;9H=1h=3 z=!Mnr7>q!5oc08Vpltf)O`?Zz1QtNs8?tR{yXst z{}Z`G-+$pBYQG}?5281}rXPbXuokw$APm6{*bRH(#GBL;^!^X^4||}!7X6%KJcFgb zAsyHa+hE39gcCcQfWvSG9)k;T2HN(~{-6`i!#rp^MSh?idSNyUKo@L-V{ibb&r=TA z1LxrkwAY~zr;#rlgI?%4LpV49d*Lt~mgjIBPQVlJB%FuVv*ceJ}_|U>lr(qi_bEfD6#NK>7XX33S2&mBSI0l1o26n)- zbCd&S!(rG9Pr#GV`WcxYBL^6QZa5CTa25t&t4=&{3=YD8;{FjFf^*Q9bVko;AYPaY z$6z6hSh$-5CtwGhgS{|6nY&7`70$q8Fs+gLx1Q0nVJR$xJ+K;{gl#Z4h48Qij=@nl z1JhFpAE14}Ojrb6&Xj^?oKL)+a*krYVag`CZ()3d z1+W*Ez#&)*XJ820KR|d`2#>)II4#uB^g;VH;e4U9e~)<%eBx3Z8@uupo(k<-JppX<;wSer}wa1?gI2{-_)*AotAz!T7R1L0aJ7j(n? zn+ON9KXOJNf}?N>dT*xOk5FIG3G;SPPB;OB&|g450@HV*2he*v{l}yDhuP5Mq2GWf zVH<3_8@+?hd&mzQfpf5Q_Zi*(80CWbFjP!9sNIXc!a+C)3-2Rea0*)6NdJEN7icY^ z{IC8VI8#HpVL=o1A3`6Y3l4sXeg zdDj5?L->O^UnO4H3GH7c{MX4ZEbgQ~fMbWLFPQrj`YQHs4QVP&b=mFdR9LMBk&}gSanvTPiL>a+SZT!3>hZSz?@?Md1R%!E161q)yS^uQ8W3Tt6C48kDn zfSs@x_P}8{0LS4FJOM}GJRF1RUnjksv$_VeVJ<9$g|Hfy!ZzrKy|5LYggr3*nzQ;4 z%z?*X5uAp#a1Ne?nVr&4oz?T92YTQ*Y=#*hI;(fWT-XQ4;4zr)qMqOoO#cRQfjO{u z%UQh$o`kh9eJkaL6R;23uOmFngVQhw)gKZs)SxXFxx*6Zh21a+XJ9vUU4K>|fz5Cl zjzINC$ma&aLl1OAKP-k3SPgq&3!H~tu<%CY4m;r#oPi54FAsTiAy1eOCt)efzKQU# z8Fs-=H~?qhI856{y}=S_{bSODPB;$>VBv?)>OR;BTj31sfh8X~t53poH~RTa+7HZu z1<(!0U^Ohd<*XhNI~;QGR%$ zkaEDZU6cd*;Ym0N(+{IhP=m#{lMmPjy)frvv`4YS0hnEc{9qnD2@9cmitpgK`M(r2WA{I1GE?6imAdJ%H6Pvj=&@e3%=;?&g0^>7R)?MJA-X-4E7$O-d~{n{qzs8>$~`aCEr6| z;3yn`MX!=R9D=q%^kSU!;W6lkoj=DPv`!&M7?`Htc#-_RNxj1Slm$HmGgd9=qp&4y zL7#()FUse>gnnJgSsWaAuUJ9#W3mkWI4hnN`SU(hqYkN(13ICmFkxiI@)(uLh{QplOGHcY?! z0MFqpY=i3KoSi}&9Do`eg~f0Zw!o8c0IDA#7nlL_KS6rX2MggCtcJ6&1?H4;<_k~2 zVQBp%`Gq!k0v1B+%d}(Ygl#YnmVAn{b=U!eu&|7CRM=OJ{9sY#f}Zn3^wqbZdtqb` z>A;fe1$_t>ewuoLQx7ia*(0=reViM^^m@t*RRiUNV{jgJHX+}?pdKFLY#0_bFX%lm zOn()< z;0)RgCt)${IfNYGFzkYD9i$Jt;R#s#B>MRyX}8E3dODFatcC%Y`-hy}!y-5g?On(l zx}fzn`r|*Q9%05eId6v^=!I#2LOX=nup8#WL0AhXU=N&weK2i|=iLjs3;JOJbp9#w zgWjj8XQ-Y=FJT+!=GtG9PA}=f+&@DuFuRZV;qbTd2MhbDm%l<@1JnyV`2zI-YX{LU znD-sz21lUw*YLZ@3x>W=zM=aEqzf~DNPMv9FYtE^`zxdi=SGnaT!3wG{zu3a4vtX| zKPLWT=mDI85t#O4^bF>}A=m?t!C^QJC*U0H{#*3;Z|MJEK5Ts*IlwO13akH)@GuCE z!J?m{uYZf4!3^j+PI+M=EQJ|wkUq?TJ#hZ-Y3I=PbIJv$rYP4q<$<|yOEX;#xZ=xU24!zI`1JDKAU_R`E zMQ{L?z){!*r(h49g+tK#Q|kMF$Up3cg>VX1L;D=@K@E1nY&ZaYzd_DFLqDJ$PQg4_ z^cMMnb1(#Lr;sPCg`;p3PQvPW(mjse!Av*}^Wg&Yz`oPy1ssDN(0PV-2i(|}(DOF+_y*&MPQL)#Udg=OKUCPZd~+2j-@p(_3NMs&o1%EJ{14pM=#=O;IkWLHkALbT=%8UN``Qux~Zx zfRk_n=3ab`_kjrqGyj47r=QdFVJ$3yLofhsmz>i(U?&`c8Eekz(=Z6tFL1Y!KR5?# zVe#5?dI&bdZrA|_;Sf9qwRPkh7D4roaTCt`=Tf2O|HQ$H|!1M-5s zumeV%=kzf+1!v&GM(X7Ra?HX%oPb`aZK6J57wmz<*`x#0K6p-_ho#W|FZhS~P`mn^ zUJ6Tc&gs3d4GzO0I1Xpv3248D@Gu{y|10uJtt^ z>wgoEoBjaKLk}Fih5CXe+tGLEg+nj^kHH|Eh9NiyJ7LBz&*bDs?=sPT_L{4IdY4eoNNBzLG zD%u%rgCQ8$gMPyiI1NwirG1>HzN+yLM_~!H)li?X19rioPm>Nzdyw+M+I{rjXK2r` z7*4@zm{EuRz#Hnb7=j(J8&1LzI0q+S`a$A_PRLACd10PP zQr)fO4`w_q&%>63$3p-!{&WCBoFcP61z|61F4xsfA`GiG(Kz$@9DQ5@m4_cof9GrQQ zbl}NO@&%{<1bOgb_l!TM{PKbKZ=)x$`UvA&N|Ks;p71d6ee@Z24Ws|CmpT1EL*y{&h_yo=w~r(s~t+j>S?lA5r+t$X0y+PC!(EWGS( zeFT=+d45rn(yn@2FM&ZAfL*W+_P{RK2M6FF9EHyJ{$HfM4}5I-eE*+2bMD>j-ndfI zZd$=0NC`Vg8QrjhsU0*stEj{CO85ffYYFJuT#vs z@CR;!yv)8H1k0LC9je84QY53Ygj_a=Y)2p^pL1;Pd6kH1n{1b4xG@EFurkNciL zIe`mcKe!dSQW^jco=7<0{>@iPhhX26h!3CP?g!&w49tMhCtoQQ!8|wv&fRjQvkb1$I2g2&(z z7=0n(f<^Ec>`Y%Nb>B!ifJtx@%z?cxBA>t!a0Z+L7s1?%$zO2%*GOL{^#@FXJujvH zg7e@MxCqXJ(d?Dd2ABl*K<8zY`_ED@z&`L8%!1LElRj`4oC14aL43vMC>JpGO7ws3 zR7(MjgQH*u4F5Xefh---i|*o4TeI*>m8IQxKN}#z}EBFff;ZaY`Z}J117-s2f>5g z;1n1G_rV-^3=V-k7wJF11#kh}16RS03F;x(4IY3w(0MT90N4p`fxX~97zKMS(I0_f zFb_t+VK537!6Y~XX2C@;53Yd&;0`zh9)e?F>q7_!>;hN7Ft`E6z+Es6_TNss17qL_ zI0#OG-FM&@%z^vj!Io~)2ZlgrlK6rhUBN5BDa0vrNo!4Yr?90S+EDR38@1CPK>uw zGZ+F}-c3CM(_kFTf*G&~4uO;4I5-VXgMCx--sZh@T-ryhX4VDvrIdoT-T z!5MG_jND0nfWzPlI0bHkJKz!6au@OIA-!NPm;k-6%hWrQT!7SMF0qP+* z4$gp`AEZ3Nwhv(kItyV$wx5!QR)Gh`8e?d+vf4xOZq-VJpo%jO}T;ne@=e_ zj((ng=u!0NU_aQpO#1}$e?@-=>iYG zME$ynbp9RX4fgy4`2bF=;|ENBjd}>qex3M-2_KAtgB#R0aQYkcx8N!`2OfVDzhL*b zXcu61lk$HI^$zR>SHDd>zyojqZ2w2X12@2V@aQ|l8w_pHAAke@M16cL`3ClZi(niK ze-}Ss|2Fjy9NnS3z>a^R9X^hB^RMWEL;r?@p1~fBfh*t)xC@4^E0vsIB>d}3 zr8GDXj)J+frP3O>elPsrjQ?|`QW)IgP1qT*{l2Br960*ZrP2-?gjRgb&Vx zIWYILrBV^>`MFYQ3C!HDRN4ba!DDc_i+DeY@&x>LkS;j@(G*+=fKXJh?g)-em;fv`54jzZatR# z2WR_;KiK0czhPb2+c518mDo#57! zumksQDV0{i)~A+AZ87}DN~HwY_jK|fEZ$1^;3T*K&Vzg4DtHXWEsXC1MY%x(0L~L1;)W)Fb@{NMQ~nxg7|>5 zzfvl7-Aa9V7It6}%z)G205}hhf(OqbTrm24^yBbgKez}c!R!kN2h4*-a0r|MXTe2q z1zZESz#TCALdxqI=z*Q!2-piwfKl)W%z{pu`~V~17#IVmz%)1y7Qr83wDD`FDaE$;3}90=Q1UpgT>FU(jLJixCv&!eJ}^MJd^tUYs3fa0i)m%I1F~a zl=OkQY^k&bMqWlb68Hf-!OoXcj$r#MsDI+Yac~Hn1}DJJO|Tz~zmog_2f#tF2#$eM;1oFa>-Yl~Uq!tF+wF5V#kZ2b&n4b}LVpSNyq)|62Peo!u z1oPkqxCkDA?JQC1IQ9F_Z8(rfrJA$`6mrhTd z3CL*ut6%&2#y7tCt?%M&OHRJ~t#5u~bDgCmUlV0`Ib5#P|gLS#?$s$#d{Fh zRs$bB$d#_l>QSi|J?GUXZsF90K+(DDRPuZTSeJ!K2)4-R?u@!mrOGm7A;wxNE zXR3Hzc7k{*ndi?0cCSijC;FQW{PyBEi{JQ{c_)S9_`QEM`Io)x)WyJs;CZKbI_+}V==37btsk*I&5=BpPN_u{gMqAR64pl&okry$ z9|Oqeui;|?o&5&sQhQxMevFS4=Q>npR^j@;%D2}6U`iDdQduS(pUnA}0B{q?i+aHX%{sWsf0O_XC9sfG- zBeA;S^u>Vc1f>}awtG#ATvuBdL3eqBcb#yK-yRxpU`VA*p{V{&BTs$fsKhN$$-~Ks zz{OzZf^+_K@eHctCU`oM?Xx+IO!v`}kuG+v-^A`Tr*Hme)z6Vr1J&J-?V18H&xh@d zg1te7@9T|H)&IAIaG%Bh#CMKLYRk^e#(y$n>%LlnN!utoyIXwsPSJUs(NX$}RLhnQ ze#68q{ZF)W&RbIFLdXn10bhVu`iZy7$MAFTV>SA!4=eCf@XAje;x^%Ce4NTfd9eUj zloEbTTmq>ZOovIKQ;khqP~YEqhTnJH`b6Al+a}(U^&y)?=G7lBO$s-OEV@lQ=3Ixk z99*o18-k0&g`~tGy>Ymdk5hW4;j(Z^DG?9aTrrR}F*bR;jJ()Dt~}mBzKlFBdp9qY z7a{lqc-3d;Gux^kJ@NCwl@ z3zL7{*oH3R$hS;f5{`2q4F&YfFKoK#nm zH*BA4iQ56+=;hFh{@YP$U3!nSX^a(vCTna4+A%8EO1=FQ?>lnCW1L23&=jK5Gm3l- zKMGrixJkG@xR3}A#d{9!5H2RdtG^jr7s60$$UFa!TW9GjGTvx(*QsG!o?qWSThP42 zc5J5IT~AqIvtWIOV?~Fd_B=!506F(HTec?ezP7D!!{|HT$7jcNki`VDx2wZX| zPG3B8;kxs!cb&RD7?_f&ncTScZs?lsP(zfyA^gPmDrG2c94-kL;#`NgX}C;{-U3{% zhFgUz!1>$V7Tkc3Qyw0`4Z_vSL&@83An%*V!^oGK$dkx-8pxHN0p#uf&i95n*U`go z6wZO$5}|TceGHgZ!rV~((l#T$)tyIo0bO@IFk{zfAe6hoHzzr2r2G7fQRxRj4m zIwuG-0XNOLbKfo7kGSJ#+-s-ER1TAh2fB^QX%YFZPj34~_2AZi6M5@?#ojOP#(xNT zFY-ynW%4`zxD0wxQ9MEx*(WXG|L3OVpZ?LLC1YKx5u0kE zc0)5OHezC@KGpUNZu#GfHt~JF zc`Lshru^YH;gnt-;tFv4HF_g(tp^o7#d89#3ogsK;z?bL(;t=l%LU|_8k<$PfhIP4 z$me}FiqA3J3Y-^j#We!A1E>Db`O|MJ55n>D0WSZDf^U$MeLu6q{C`#VVM(|FII_|l zN)IzLqi5P-+`CSrDU$D!k0Kwzrk-4Jnn6B^d|VzGdlSWAM#EdVqPk<7>cSE6KSDRA zGAwPHxZJFpOMAdurLip_9yToJCyN-0G&c*ZgTFn+T<*Xh^m$)JHm9D~}?e|^% zbVhxEnP6`lok4Uq_}+0rK5sNWqejQ=%9LjV_oi%rRGsH@*hS#xkvsP_dCpu!c}}do z2|O~TZyx(4bf-C2UZhN4X+~SRKsy#H&oiF0iOnMK zF6@@gM@?7};%04jT$@1L&3W5yX2`f%-f!5dv~VaN7U8DgW<}UKVSEgG4IWzgy~Cfb zQuVla2p95k%7fOQ!Y|wo=lEkDa5}5$ye9K*%V+Xn2P3maftvhBv0K9~#JLV}DY#8I z#Z!m4Jlr1KkYOx043}u(y)-_q2$%G631n+HNWrC;zdN7$mdYm?FWykNBY2UOiaP^# zQANuvfn$?{<%N~ty18PmT+5ieJ0y(sY2K5haOvaBSY|JSw$Bbw#_P7wq*eJDGw}j8m##-fEL6pVs@*4_!|lE3F(Vvo5$5xU^v` z7lv!Sp;BgwLxH%q!I?OG;wO*8IKJoFD!vtmX}I|sZUJt=$0-g6#9(m{A+kD!LuC|$8-(-PvGQz$Fo)nwn791T!koc>=g(FA ztGsvc-vwvN`*FtqPgL()eunX+tKwVf>3~~?3v;fchhLI7Y{4yX?%Zg?Yd9}RVV}D{ z?*)}HhkWMY3UK~;!LX}m`jnc?X-T*KA%8Lw5yTGcP!6!avcxU>Li(hf!{7 zZ)H1oj9)V&6phQQIGTxp(mapNd=KqPHaD8Et~oDQqQOl+g7@_)EgT_!>u?irBb<{D znmcRm7j+l8OkF%g=KvkR9IBtKKTG}aaf(wH+!37eUwO*fK*p{O6igymIkqzuvm$Nl zc@mq!N0Mi<;gIhf+z6b%&lrL$!VMWMt2YjJ2M>gNIG~(r5c@(zgS0s$#$MNn!<%^lu1(;fRlN07!&|8GH zh0dbF`jiQazOQmaO z_g1vp_ddRN;Fc8cTdnUzu~p-H{;r_nZ03L=-{|gD33J218{6CNPrRR2-A+SrIXJKU zl}{PskcTtjJ@O|HZy4WOzf|!Z#rGnFfKE%zZAG2<6C>^}N+KY2Pe)r(ga9nXw z@ysOpGaB0m=E_Z*ye;~hn`uXR?8ly2-7gNq zP53yH-cp2{hD&m;{@bow+3Q-#=aH{BkgM*kBX3FYu2(>ZxLudixennG+%bNz^EF(N%$)LQ3PtF&E-a?E}>oC2@=h0pD>2kjzao#MCnfk~2eq{kbY1=_R{4CxL%sFv)?|H>c z;t-h+JPsoF;_KZv9e3SHr~5(7&7RGBVx_P2yZ3!r6JiksIrKn?J^`H>&YjPHMdM%C zTh`P}2SpSAN%VHn>!TeyA2526jP8u;4(Y{!yKKT83U{4qny~khwy(iwBx7%U>MrO7 zCpc4Xw9;2SSVw>Gc{TOl8rKl}{5SKmzihns^l zb;e)+;Wy!{>Ob5%oIm^_xV0K?9B#G7b{cLO&WopfEWj}& z)~9Fc|3g?yf-`CH>WEwaRkq#86^CKYO&!vjTSkTIE^kryRgV+sb)yo*% zrY$p3OjM7Re?#aFqwCK<@kRLA8eVanh2MbBS>IRH<5lFH&u?Cj_t9BGXVChnTaP2? zw7tNs$3Oe`4eN0hy)pDmJ?05JQ#YH`<2)HT{zB&E0RlfkJ)T5=??u&RJO_6G7gGE= zRPM`g$39MZxB=JtV%|$FCCZb|#OUtBN8r_u=rHy1p{T%l^(z72k6sLJK1dsVf=OFE zexWsS>2&^%;KUibiQsnU;&tb*4-N)YsFejacfGc}0vE;KIR0jS)xEa)(U+B1@vPku zp*xg;CDT8s&8th@Hp`3ZE$x||7ta#U(U4l~A?vW`H*SDSUMQ z7IRblIgc|wbWQBuFSpldsw5%gX%ak-?g;1PrTRj%A3=A0G-j$#8%C$?wXC&B$D8W~ z(q^(J`4sX&yT z23bQN_HRqH`+busNH@IV?t;dALVmXtf5aGv>Pasd(xM<$0Xl$R2 z>Gq>dZvmYZpAR$78Zs_SU0xuL$H?QV%fDmd*ps%CC${~~+E{I$HP^CQa!^0EhfVu! zd=o+C`Wj>7pHEb#^;CY33BE{WavA21J* z-Ai3N)f#JeDS%x|ja?MGG3?q$>0cGUTWtJl!|U|h*=EBEfw^sK@_yzK^yzLJ~aEavH}>9W(dSR+QJKk0Ez;l%VXH}=jV!Wi|A=Q(; zK5w&r+`S6kJkivnN&NJ@&FydK8!41xpkVt7#b*aUS>(n~vaz2X{46){WAg6NI2*5? zuXn&5Vbg|4hxB^j4r;i5xIH+3Sta52Yq(q;+acH1AI3P`PE8ooaGN#$7T~sOxYatg zTdu7?j03oJZ2fi4xrusR!*#+f)^NRWb8!78S8TpS;WpqxJ}w2PbojYEobtub4Z|s) z{ag{wp*%cJb#n%;9j;y*SJ|u}@AKJ++k}hOaQkqH8cqXG+Q+GG^`n=A8{ynJwc>9x z*>$I4z`bTt*)1WD zVPoXp{5e}$E8Rjq*hGGeT;H8*WZ%WaZ=;F4AGvd}v3&-4UlaK-@>~=76!M7%a^>R^ z@)hJE&UGkH*5THh*c>2lnW(mLet|j$*C-#lk@q)|$B-AA$aBc2n#f0yuQid+AU|#* zUqRk`seb&!B)1KD263W^H1( z2L~$qoVDw@cztlTGI`hLX4$45PhUI9oYT&6qj_B=cvtc~ZKMTbdlAib=5qNm)3l8u zw%zZlo>R=g^}uOt(xI|ngp0uS8-{uYuEAyDHpQ_nVQ$vy`e~?qB|db67M`_FSaT^Z zR^_u7yOwv`H45i#pEG@IdH<-?$Q0=*T^UdBwT<`bGI(h|pM-%xj^6n;bheGRXAXhxQk;jnhT!-Qm zfr~b^8?~l zK+j8y(0L+r2_L8Ucf#f1!kpL3^9b_6Ch|1$(I)aC|5E zuOXjrAeWzg1Cb}ph@J6>g%d>;8o1G#*zBVVoYxeK=m zmv(&)Ra~07?A%OV@I6#l9`?&sR}!dR29Gig+d7SE&O^-#lF0$0<)%;9_tphkA8&7kR3Q-07#TH;^mLZsdc=6Y|fY zaI*NEgKJS8`S->8b;PV8>dv68YX$ray}!D=N8rZbvgnxdj#dh%3u+qqY7_Y~a(%8-$cHw@IP2Te3jjf!bh%p ztfPzHAzT_RDI#_*JW$DUBky=JacUy(L%!HVo2~zde_q)0SQgz0|C$_t5%!ns*e?TSjkMZQ-oZi;$;w z+exui`=2Hp^Hgj3)`97Jhi{?(`$+YAS`jW>!_B}&YPdzXC|oPy>rh#*!S&VX?ZEZJ znX+*84&g>>xYj8B2%Pdnhx~O#$%Btpb78m@xLxErq!)`amd#byu{7KaTo!q4yOzyR zlC zm5vnhC~~jO35$f8gd67EIlJJmbLBo?dW-1IczWOeR9!uVu}Bz4=;>UCa1HLz$0;v% z;11xToRe2Q<~d&X`rg<+728i#`{{sdgY(y|9=H~`ko<6{-skWwy<^UuXA@U@|H(dH z?>#l)-S>9)NXl*syLHd*5ht@#-fUnuG4JN#>H2wN%AdIIp=auR&DyEbe26^srg_S+!i$aLCY?TXcCMk5MkoE*#(tE4GsJTpoqmV<^TIz>{$-Qw zb-NU>x1w~}7+k1CQrD&me*xbcpKI(}I-BSu{<68wF*++vbd;BIboxKfy{FT}@kSHJ zf#mt?a=bbtsIJ}aE({LnodK2J-NrNXOY{XRjpHEyv-n>_$M}ETkLQ00|GQsm>|gn? zgHGn}n(H`ECqJ*D(}Pap%gy~H&{?^L&Hy_7YmNPM6XywZ7SNgC+}A#|jfw|>^|0Tz znQt$l7yA2a>+Pa9egeI=Tj^6zpx1|9?jNolZU(*e6X=bi*Z-Ak``ly@T{znGpfnAjGl$MH=Q?`% zjl!kB_1~q8jc?d&Ua|Z9E;xY+uV*p$ht+3nk-pJQ`V91)*MCg?X2d+KsCTTehcH%2 zqS-p>J+BzT_JFXazU{`5wIs$KHlJu`n!VpG|NZFfpkw?$?d1MtJB01gKmNCU@5N0` zZIv)@i<2q0@n0rCw(Q=BY59K`|+WVnA z?}Xk(X9pd{4;`(aF$1!FNXs*+E6Dn7-e+SM0`%=>1I>}m#_hBHGQ&svcPS&rAm_F@ z<@rENBeHgZ`8Sa;t}a!EEVF?`^NT#;^!~fMpNH}a_^xy1e;)rs$Q^E0IvJn;OQ$RT z-En)Tj{jBs_y4f5|90eK$n|~(=ZVID-o$_6OvV4D(`H^USL0uOat{~(lO^_la8BBj z?E8sd2(WXNohhTrYIYhaok{e1Tlf~e)w?R4lf+{PxrxVrepLB*;&{maJpRXSXzc$8 z{~O2$mCi3U_g}A^+JA+<;HMk=PZNF$x!&dAe9-u}^`K5ZuGHkC;y-}@*$3A5uliX; zeuzBo@DF)2q(^$ZH>cSRO2r$39lq&?W^R-{>W9RQ4|+KAh&CT?l1pWW{0*+Jw2!dI`Cffq{mP56Po2vqE(BBd^-WwknD?@&)3bY-bLg+|oqD7H#B1wM zpnv>WSHH8lzS6UTejnerZ@mxk`O!yIS4K`HiZ`%6r`fNa3%i@P%!5sCf2 zgSAXe?E*|AK#@n z`EtqFWf_BV-t**vwQ>jD5+$6`XS0UDckA`ODAE{@-5H48>jAOz*RwlKWp?qp+ntFs zdY&s74%~3B`_upVQfk-ZR`D^%x9x{*Kel=*cHwm5qN90gz`oP2I;LTQI>zSkrFWP1 ztzbdZD3#|;nw>!E>@oE{}_SI1}*EWOr zIDX~brFH5l>775t#f>rdu1tzIsImqQ-E4B-5@_ap^Vk;u*WIN@6x%tv1_@P6nN<^cg?QJ#u&7p4v?e`4n#}ad59uZ8F$ZIiP0{ z?O>(B<v5SxJn;M7V zJdZL#9;*|ES0xq3?T)rnUY!n&k8$~U^WENiYNB?0q|ao0%=^a20rU>g%V0xYsakuD zLKTtsj^16GtBuQ`zgDPUXq=}T_?Y;k`eF1FMi=sR6 z4F<3fK-Ok@_??W*cqCJ^Ct!K@wjP``iGGPp&(?&ix ze{RCa+WIwMGeWBwdI5%pw)#ci62;FBVMQ+9ZJuE!ovsi1RyOqKl~U_RKG}JCb=kJ# zqx<>PpI6!U0`aez$4B5=FA+Zx9MVg`wbXD~xTA?`y+ODGxK0^z$aW0wu!fteV>|EK z`omp;+p7s<6Kn*@JRYzpy5LlwD0}>+UtJ+BY|d?J9bW;x&PMzsC1EzK=ZL zUwL0c-|N^WZ*T1T0Qn&D5OLI@d~(wC!*CNK%KP3b`{uflA2#qQ`xx@hJLt2j>?`}; za>!?p*GsSLN0F~Kv7bSnnyhcHGFw4Dggm71IePR5ZWL~nQ|A-!wfWUx-<hCC#{9Ex)UE(sSGQD@&=8u?HY`4IByCh|$-t4-vK$Pb#xH<5R~t8x5}kVl)y zJ73H-YZG|{d9jH+jeN0*dYNQ*F}^*9F%opEJl4P2|JKhnvW!kk2)dFCpJ*BHu#Zc4z(g zg-LTa@_yvz9j$l1NAs9?^}e{u<1@Tq*j!_$u^GDSZoUynzjB+kiQN$#tjt7pS*nKw zgA3)WC;MVyyZ-m9^zHAh)K`_qDBJ;Dh;tnpOO^@e7;cnv=b41lV1Lvedg=GMdN(!J zYbT5a^oHf{zEyhV`;UrC`>#@)1a~%qE4X(d|jpX~t6Ak3b^FHJmp^tK!8jiT2v zHx&L{&f19>;$ z&nte&bq(gU-0pABReRDl(Mx{9)%&+gb@lr2(L#7j=uN9FeA(!oXir-EuhZZC>D^V& zcy`0})^HKHz8Wq8*ALgK@Htf0S-5bG-XL5A&Xk3#HwHIc!%e|0!Q5Z*xPfoU z^T_+L$#PyBw&Y{ThnvV}kuNoouPXcoa;0NW;eWc4AF6ZRa0$3!&Ydq`^w*_wpD(=x zdeffXC+h1dj06MZA$mI3A6W0^&Nekm^&9nQD3n#Ku-sG_>e#Xtizs9aIPcP@8(wzSd z+BbTp&ez$KHio=wv65!lOu==+g*mSsLrwaT_xNl~`iW0BoJs#vPL_@k?pt3?9l>r& zVKvy3){9Q|v-qY@K_{QkJ5U1AOQ&^f%HE~aUC{D7jJ*3c5!Cb8hW>(kO#x#Y53rak zb8Bkv8DZ+(8S_kALa5JRyZ*Vxag)v}I`O}3uCtHMauXfpUj&`V=kK}!zP{Kz`~o@)*U%}V)4S5xkMeShIL@GxJ53$`R#9=RwztY&h@@f#B-D~JfqLW!~?q>;|jce%app*D& zb3e{+GM{OpqjuhdPXE{3ai`KguG*89L~r&4dPC@SeEr(~rqLTYf!->5`zO#lKrg*< z?QlDPi#$1jUKG9XH?Hk3kKWV?^or=Ue)HP?7SS6#f!+>!J15XTS+cHZILKlY&wf8_er_L+81T0uKbz4vkQUQ>4`fO%UApEUFRYvQ(pkJwh_-lyG@#w~u{ z4CU=fa|Q?polT;qqnBSNT>PKdM`Pn#vnOrZyEAY474=C2gfsr#yX~H_oBu?8(uwz^ zjS|+(wtIcuU{BgQ{`b%^d(wg@_pi9M;lJgd-F3e2k2i~3)t)qs2ch3)UhyyPeO+FO zXWw6?_jIve&fK+RM=JlZG1a_?OAkARuuEe%jUB_W%De8qv|)61(NP@HsoIw|iLB*c z8Ha5CH{6%DN7_1e?=I-L~w8J|7v-qF9+}QuD@&NhR4fwzEHkD1o{a_O{{?#up| zJ%$6*{`}YUN@o~(+jW<1JU;p3#iI-R`0sFi_*0Gj7x6!hd{*gvdvpIYHR+W9S^T$l zHTHji{}l2y`G2MH-*8`A?fyRbZyltcd{}+|s-Hc`dmnzeG~n=$_N857uc_Ua=Is|? z$vfwpa#Z%EjT86mBQKY7_aSaACT`w7E^V){UYhLVTEl+yNv{1rzg2bQ#P({#ZNz={ z*_Z7;t}ht-6Yb-QVHbbSWxJ2-PGi?_AD8OTAo?TEy<8f-7wLS1(QmZ>E>xRQ>T?&c zUwNq;-n+2B#{Roq^pCTy{_kB|zvFl5%UVoL65iEmXzz$J>|I_B!VNuceOD z*HOndwbzh6PquzmHUd>%mf+skQ9l&Nw($DP*W8yjpfHA;>xJ+)iJtR@%l3M)!M?O5 z`9dd)KJmS3U)mP(A>?5@hO9d^`_guOqj(e-ZA0k4@p35=H2#Jv+tMyxSKgMU{Wk0i zie9}f&8*`k@lkjaZ50>9>8gEc1IXu*|4+hLz{kvJIo((7OWQ!ci#%`VP5E*<+^s{l zt1)}1cuV}%dw$d(cK#lH;#jYe7|}*y4C7<>j~j#uG*K@gM1hH zY;9Zyz5Sl57-o-L!#pkEBmR#1VW|IHAg-gx`*dCVw|{8o0vE5N6*8Cho_tg7;|tQ8 zUfp%upzIH^ADVFOKmOy{hp=yZJ$3h;mz(ZOOOu9WbXv#<=eJE5Ub)anwC~aGcy#yc z^4+1U%SCY=BCMfzUoJ&$etK=~d@CQ;$z43759`>^>X=<=de5Z&qNFx^w`0GE{mfIU z_oS`C<=%6-YW-~oE?dJL!ewf>)?wzXHCz{53a*dvbST^~+#p`Vv!_E5i zy3jAcEy0<-fi*DuF2c%pK*y1{+*$E0n`yWXxJEY1$kRR>#c>0!0N2mC4#l+{ZUSzR zbLSu4thyDheAg~#YLhNzWZ&@y=J0o2F0U(!>w)Wq)6k%!i(fxnH(W$So$uFVkoPx` z%jYoi6!KQtbAT1SMr)mJ#(2ymGItTW8%Al%`P_n^tQmYO*0+VM+c*@&;YAk2iHLTJS!BZa2F77UlRnn0vu#Bf|Hh?JHvSK$MC9 z5aG_fk2wQlj`L;{Zjz7nnNQi72VC{;5VLAx-wUBM&tcO!!`!=K6Xv<36b~G@&&0Zy zR^|a9``*(XYziM>-Y=WCm~g^8EL05GPeSWT+Fq66U;SV^X*~Mi<J_+>SgO~ z)U%H>-%x+`38SA(l)D)3+g;~dD__#K->6l&bdBg94|&G9*0t-_#aN{-sxA!?-YPch z3h(u9c*W~;mmGZ`mob;Gg-x6$yeUQ3`%138lCFFy%(jIo!cQ!mye;$){t@BtVY93J zxydU(eItMzE#DcpdD)Hs=|6Mp#LfP^v~ThDXQq6o(2p$ArsVq;>%08zLaiL=#W?6G z??%vF{w(tY=|0ow4wQ8lTwPP2EA3zboBUreUsK*auf}G@wed9`#c2$6h4T_@ zQs$WmrfcRIHrvvvrfLHnZ=ybY-n|ZbmC@yTCcp!VUORL9zdvAnS+4X;QEZdg&cT^> z@d{%b9nfRidc4HG-z%_JE>d#NwDHROqm?HU_(*?&IfUZsmW`JuLtgUYoaiO_=(qEm zCN67VyjRHw`yr7|Z40oWHJ4!w_7nj|-!(bhW{)DSvK#lbQc``QyI+ zSsidy{w(8X=5H##<>webvv9`G%_sBII?8?3)oMR6e8=F7pPNqRCyAe}FID>)$IlL& z@$-&-N;-?$V`1#7o{1oxC^v#MNwW%4nWjO!*W=H9VTSV@B!uW1DpWDTL z@LSbw_XutT&Oe`Pdkb|AE`rZ`^SNH+#RhW4Gl6^-d8_O>y7^_{rr^dznE9N2M?IT5 z7%j}S$@Cjz=pCcyPvZ)4?A~s9RM(CrVHaH4}6WGkQN)Zk11Tpn;0 zu+=}35`XAl-+wYh#uQ`7!VAHnc&fly})A^gmt!Zqs|KyInuQTDe^EWdw zaQits*IPsP_`B|yew)!P&)t^XaYN&Wh7I-c$LP=RFy~P}`WCD2o5Shmg_(hADn^c& zF(9 zUoMRhM>~JBbx*IubgQ13|M#M|h~64?$9b)ZS2A(Fl`!wIhkwqd zyhy&4InsXf`mQl*nlLBPGuP2Kd1X{HPxH-nR6ZNndICth>Xv znM3qo*G8OawubKN|L4xzo@aFH&fC`BM*nqG>3`HOw89nOj#cNLZET~17g@WvZza=P zF8HpA?+Xlk*F?3p@^xg&6F*7(gzk2)w{A3PEPtP~Ja;qImqutD*g0GR+i`5CFS9Nl zBo6mBw#oSI4yz?v)~PJ4vW`4fvuECZgT3;39n(iGj8hk`(2nq}dVP}ba_(W1ELD#I z$8Z@q)mt6v!`uIa{DSk(-@4(};W~|$)r-Jw_&C++LHupPnepy*Z#>a_U<5w{r;f|M z$gK);rYfk286+dmkYCjHKJDl?q+Q|%{#pE)?==Xoddlg3Z%Otqg0 z{KVmmpIcAnXBs~{*H!!3!p|<8@pJRZ{OsXp`1)!;-Ebpt#?MVB^AmmtbH}sQehT>M zf-`;|axy_CW zKczREs6Hq0Gxk#zKMCsdIDW?A2F}p_e_;GXW9F7Z<<^Q;k9nPndJu1t!cu2&*->BQ zYyZ9Y+rr=6jmM<}&K(;s-8(m<=GnlAEY4;$z;S5YXd_OA&g0Uu#<%a8@Y$mgbU&?Q z7X_FF1Y^4I>aNYSW7l<_HRYc>F7JyF7lvEB-*IW5a~OS@dFlsLo{ z;EL$A8OCxWaARVVsI^`e}&6wE#Y^9{>m z_z84XMlHkUn_|XC#|6e4c&%~jkl!A-bvTWuI>hzE?ZT-{bcjpB9oKL>-d|g<8RT`^Vg*{xLLyWb31TKo1Z&` zQ@;4q);d95@aZYfy5Pp)G>`Cq~yG3WL$1ug!de#X>R4|z1DZl zVx{6Tj(+b0j_vgq|Er9q;gWFXx`=z6W{sEk1nAqOk}o4KG?2^Z4)QVN{O_(t6;5R}TnFrc7^B=!|BA?`kPle7_8akf1Z5M~5qV`6Z4ucbdb{Y&T0Opb z7vz(Idi_`NwA-VZZ-^=`Z3;8w#>J_`+L(}~_!7SKykw5Gdl@?aGInFqPy7Kh4tFo=&Ve4}tDkWaaG3P$11!p*?Vi!gia z9ByLT?^M;MSLy0`up4eyCER^{^ujj^x9tx4PS;Ms^zjS94Zy96FyWq#UvM(s=LOv* zWhMD6Z=l;Y-;*}wPgpGvapN%cx^mhF@aMocibD~36nR$RaVYIGaN}^ZBCe74Bf@R% zcEjzdgu922Huy&2woWoPL++Jzh@iUQ#^G`bH*M}86@%IGtM*!?6GdkY9jd#Ti&I(6 zJr!MvX*pavIdu9TdTj1RX}<31c-IZ8_ha&d&M4UzEPW)}5&H0drGD@l!o_-pRGt!>jv&Y1XxE7>DSFdTbq$dKbUecag7f2@!UGv-%wc zVdOo?Q^@14-1J-2c=f}IcO3aJ@=nP)#AV<{;G!Zp#0|jB!Fg#`*rRYOa3*ZZh(120 zap5d7wZR$W2gr5rf%HdX#n$A-)5!~GvU;)hdG0FR9;kffQ@u0w4b?5|W*>1}+Th%@ z8{hXfhfV!7YyDA$W!C!Dzv={a)yb}R|);>gGl;6E1`6BYe2L6@y zP2@d~IyTRNkZ0im`-SP+_d{0Ft`!vbZH!7&=M?=s_Wp9}g*%4JC{8tTR(>UrM;?7_ z*E-ctRo=~|?+uzZ+=bpCdXwnotRLl#x^R=9sy`FRw~(9qkm0)^)Ca`oU5@j}+HP`X z^htC_Mkc>&$oi3`UU1*Bd^z`$;voQJZv|q}oUt`4I9>yB-@Uzx<8QD!Mo2be~D9b~e}T zN{6Y2>crflFl}!JU$Mv5@4J=m733qxvz)u-lJn}4%5oR^GIEuX4sl0t>u|Eyp?y3FF$q<2u0^ADL*>yqEAA{?TEgd2x*`!=nC^KSC>8WEFML(;#w(m(S&NLpjH>7XYonWgy5pquHhPQTKXg&RQb zyyQ1e>G~}0jhpV`hw^C$+gbFMI5+X)Tixchy5+a(+WOS`KKjll9h>i)s$G~mZzk4E zY>AF8(n7chqc?}%p8Tb?KS?#hG(*#WE50do2A*7rukxozJO<&mICnl@&{|U1{rI&K zUEY4;<v!PHaqH;9Y;Z-(i){DDr*ep;P=LpSB1!+Lpg_=B}ul zzCDE6AU2y%amN_aW#&?LQepB?;ZC9xermZdQ=h=M|5Puw&q}_Cynwu3ycEVJ@=4^w zoRfFf-WP`AevHlmIwy_0!VS;R7N1r>T*;HjTVv(6Wv|!Oxo(q}$On-3BRBmx`IU6{ zh9ymvw`rR|r-)9yw8inUMZA}gM*@`hU9VQ%h$pxxv#-q7rCH@;D~z$@Do}G_=H3{x z=eB=n`2g+X>DB8{9dIi(To2q%4c8BMT*D>dI&ZCvwaSwmTn}8HbLvRMtYMhhgq>TD zA|F7WliZe7dHhzNH-mfudB2sbzL+^rH~%jq+dwuf8NTU9-S5AnqJ9usKK2xcxI2Gm zPKBQFq4w&0kYJIiU)CY66D|*@d4Udby>+-K+yHuB-z>cp+#p=53^~N*UE4OpSZ)|D zTccNmQ(XLdGjNF-ZV@g9C*L}RYj9CG<+%>UeFrWM7Zu@K`#geIyiFbRt$ntCi2U~X zkl${&Ik;Z=;1CyqTdCm^a9cH87VZ!(Y%HzqAYA)1s@Fru;KDWB6kM`~n}-{y;a1>^ zaQ^(>gd2tPm*2k2dHJJsw9GONp{Kf}LtF>k6r7Q}To2qNoZq$|Zn}m`!p+v$=HO;( zxS=|>F{$0a1%BDoDbXl^U|w4>x5Ij#5nh_ zeTLx|;akOX$R-A-_;_tV^&}0acrQrF>wn$xRAUX}sTTFhYoBB2_x*D9+UFEp8m?bH zys^i(_PK<7uz_6h+CpAL?vLvM+^CO>qvw2t`50Wvj$x6!f8kSih?^~aPLT+A9aQ-? zg#VFe+Ir%2zEU2|HAJ2;M&UCeyz61#y5|`3W#j`^u60kkIb{(89^omCAditMDv0+}T%@)4Pk00r*DYI&;)tzyq zNjKbumzUGNgO5S@M&Y)6jC3MTD-4bhzYe%VI5QqMSoe&e)AyXpe3|jotb3Xo>#lod z(3wTYjemLFQ+Ft}_NYF01fA$}%hy4Ar$2{;r@6>;*FBHXnM0>lJ~>qP+dob?aH>x_#C5w|n_(;$fty6n z&n4iBHCz^MtR{>>xM4V@ONYW3gPZW_h2W-KTQ~pQ@41__nt8J7$TB*iRAoKbH>dY% zh|yIT`{*v9>(%ovxRy`QpTos z*C8$s7lHHAEZ@U$Nw|cRbj{^mzwxiy;1u#<c(enoiwb=%@|*);&As89T6#s}(g__v}aSIBnY;nx>ym!Z|N0&;PGl_Z&bTL7tTX z<05G;&vlh2MdU-s&A3Z>(5}jBc#_W}pK9Pgf_xqMI`RX~m8S*WLQtDBm#A8^Ft5`p z@Bede_nR_m`%}iK7gy%N3NHjV374_{s@7@Mext}YkdH~OyuJ`%NwWIBh5Y2v>w8Jr zkILFyXr4u;`Z$Js0J%vw@%Gj{WjmudAWL$tG!Z~KPh`7-d=FrF|No&P(g}-;ysQk0Q@;?$)Qg zf9-4s`6zPr6*}7a9l}k*$zF&0x-i@{oXXT0GOJ1^{LrW9BjNK>^wR8G`-~z#MDDfg zkksJXvgK=UZ>_TY9yjR>p_4-=%el(5-rDGj;^gW$doO9Y&bW`>rl+^kSg(UH+h1nO z&zY{$3&d=7Flp{sAWG=D{ZiHXXNc(bAs<2R=6QJy)mzwA9*z*!vKLmQaabexa$fHC z7j~Xpwe~rUJc2xiPaX2T0GEf`5TP~t25X;N=yklptvjfO_#MDy;O00t?bSYKR<-uo z@oCn((OHrXWnUGRXxCJ=1K^;odG2AL#UPPUB$*w;qO@qF%PkohpU#b(6e&lK7{j#^^Szeb+ zBO5|y%AsmqQVSTBb;%L*HqbNW>ATmf^iCmje%JNS|BCZGTrXU`@|S!ac^Y||bJAq% z&mcj%>(2+si^zwqyuALLavO}o?f47UOVR0&4u`m&8cwo)xI^^fQX(vFgqXQR3cmY) zU(FZbQ+4=J_|Y0(X;~qz3-GI)J4se&XuC;W$8pnA@?GSa*SYeiT`hO;>kPT_$6qb) zMn31sfBtHDO!56a*S_m&c@FupC%^aA@=@e7zwg=yu9nXrPrTlh|L}QNrEdlKp(o$F zTE2^XYS@nD&UdbsJ4=+?8(3$hk8-|bkJ2aUI^L9H*XKz8 zZPn$de9vGv3a`5D++pl`%zX@Qz^SgJu-iu-;#`Mp@^D9RF%e#W>VAtxZE_x;T_d)S zcAjnH%6sJ4uB02T-c`G;iwpSLLRW22hr(Qi+o|EU;CA5@z7FXf!0p57Tt_!Q=P#-6 za0L+w`en`Q&DAsesOhBEp{3u8UhkW#*NUTX{c!#;QgAUJXVMRsfOFfWu78SVyCCgS z@-gJ24de=Y7WoqL5a&9?Ey1nUaO-dzHQX-Tj*nA#M{xUa^~yuOJ3mhte^8ySUbs#; zf4)cIx_q2`r{F?x{haGLLjN_aYzL7aT=`LHQ1Z;V5Eo>F+vn{3bdh+;wol{8OP-@~ zq;gLOb(Plw_Wh&B);@0T!Q#SQTu$2pQyR9=8$(ZV(jo2ut_T+r!6BKmOgnxlWcr>DUq*lAkKA=xOq9kAxX@cFYkK1L;Bs)Ioa<0N z9xtN{R}_(U_ZHhn5ZKya^RW+6_g|5=G5Z_@af7xxiymipv*Y_@zdux-*a726|b} zbzg%1N=?+HdktCV+w2@fV#Q$xF8?QP+3_AJ_kOFr-HmIO0ZiE`kJ`R~Z*<3H%n{}n zf=j%;QXc+!o;w@WJ|>O(W(7%UNnz9S4*Jbg`bYJ}y%q{A*-T)Ecn#gL^T+1h56bWCReM6r#sRbB zlSKa*{r-!`-upG<19t=}@7=LQYu+=oU4F>1JYBY>94M&vn)5jAH?Jsuk$z=@^`|o? zzVX33DM!5)$p4rdukCarZr@&Hw}DljaTJHoc`LB<=Ek=nG)`=DbVz*D6wKP4JLrDuiTEOSAt zA1&C=pW1gnoIev-Q2gB4>~J}C+vXY89JZ+sQ?DEwR>mtAFCPePO3x;nxn;V1rZSqw zcIIPT)56|7 z?xlFU*eegYx*K1t%fYe>+pZ#iO+Wl+?)7CQ|JYZ|%DzH%7ems7mqR!98S0r$Lv%>5 zh^jpLWM6{KTWCxWrbd`(k9mo6D~ahYDwV{p5ijF=|1TM9loqbPa z+NUzdT!^6-=XZqN!RM(vkLRD{x#FpUp1-P%R=LYo9p`y0>&G95DCV)hVXXNfQ06hj{U{xqs-U&16k5?R&u`HB#+n3?FUB^nbRFWD8eEhS!7d)MSZzQeUeu zTi<;D2UDueK7#cM!a5|Zbjv-Z{viL*pXdCq)HU}zeVsYag_#dIc{e#}K?4xZJ5VYYd%?C!5>1;^8!BLvK66hg8!+KU*sx-2o$6oZ9xK^=plEyBR7_i+#df&$ z9&fKsBwu;+ibB=*1=SPT3cu*}F81BSyVz#0zsKI+ty)i*w)v@=j=eEf)cAF-GOpfm zPpSR1iR)yraA!cDIDem%VqDqV1Ua08sX`|C6!Z=cnm2_;`qbo%fW;#^0VUkWY(XZ8Y;PXCzc zE(cc4fkN0QUGe+eW1jJF-f`=xmH-n&26xkNsdLiVKxfUbbG$Cw}AT$fpj?0bBo$H3ztuh??t@I8+bvCFD!C?xuO|pMBL`a7HNb)EhGGroF%hJ3aCFXOKHT=0cf`#89*X60{)Szdd)c%F-8e?3FqiPPi>}&*4sq*ndvGBU913$6?yy0avT@eXdtk*+2V5sy51h*0 ztwZ)c34FSSH|d8TgI9Pu#AV=ML2j64Af%cWBnYzJ+ zpW?>GZ11rGhL5P~w%$@_stLd5=dJ zyD&QW8oL-=p^2T^Rvw)NbT+N;NbI7M)vLq2LDTMSwPP3wApUkTsdUd^n|vsJv+XaU z1GcBA%&N_!Ge#zmbd{Mpd z#d~WIZw%6KX9LnpWrA&{6D?m24U=)+KmGVjtdkFqpwDp2scG&Hx9{V^a0_rda0i@|kMRM;+Pe_97v|+FL*}j9?WpZx zGuum^%7!Dv?-*_gE@tCv?{nH-zTAg|zDhsxsKz?-SHRElqwg`-&CV}JO}pe-G1F)3 zeVN|8N^N`qf0>)=w{iJe#McP&an7B4H}|!Kubl?ILfCI1cfyV1E}fRIQ8ypcSVwV6 z;3xK2H%{ZXG)-R;e>3RT>%-)05?`yHuje%PHHEL9$JO_xwzh;kg*?i++7oMv<+#ICzxC_X51+oustazxr_Xe(yzfHte&ibsq6K~;J4!!?kV-!>l0fqgWcweLKRcKckta6xyQaU^>HWn zeSq)66C3+hx;i!(H~SecIM?`Bs7ZGp^4SLRc1%*pH;}8((-GpAhuejl5y9Bvy%W}3 z?2*nmI=Lq`){*ad`9a6u*RH_r`8cIv6K)^QtB1T#mg=ENlv+Wz? zDcmsUilh6CnZ1m*OX1~bLnG)G(9K(2TSl21%mbc!5?uG2l>RJwbJx&Q|2>A@K6+Eu zU(Iv%-c^HLztNboh<^H(d%SzPw!gR6gt{KIZ$a_aW4sDRoRl|**tSNQ=i0DBHgB>f z?vi(WlX*JwdU+>#AM#8Cd!;#rd>r|h>)+f{cc)!iGt{PM<@Ydp`{=o8wt494<*Xh# zxxKD(pH-MosnjXOV+pPRmr^*)?+AxGFqL#{A)js_m(OG58_4BLN0?vxx9B(FRz+~F ze64rhs*M!zGw@W#7Ke8J`Cn8!Uw7i?uXkT?RayJv1ve&nX6UxpCA=J-Bv!7N6t4;5 z5Py0lUdq#1xc{HM_kpi1E9<-WKIbIa_fBRecP2A)W(YH9BuFS12@)VcfCB`HHDV}H zqecmOTO&qI_0~6PEJvGaY(w7w0n#=~tf{6oYA8X1M&I;pEK#GR8YM_%A_fg@e2o$y zNao)6`&)ajWSx_9_MQRl+kW1?KA&~=I?r!C&sytQ|Nrc@`=FI@hw-|6ms8Vdth1fqUEssu&1$#bKs;!-Idf-EZJZxuv+H4YT}`}WlKuB1-WNo? zmXn=4m4A(>DtVPJQy-z9`l|A_Z5~>SL(AiD1zG{x5^j&-tDClMuw}3wVRjzxq%9A= z3vSZ3*!iT=)-Tz;5$~HL-Y1y0;Xk5{`|9$vjYFHNpiM)Yh9-T;=(!O2b7`xQJeRfw zZNlMI-3*|WpzYI_<{o>Y(#yGwU|1imahGAKn$cpIS`;qQ4P^K|L!{ULwv+Z%?pR&$X?6Q9{~eO1^0F7h^RJbrsm z@_r_iH~Mz2fVfys53dpn*PehS{Jk&G&fCs&=dzZ zO*g8@8>=F3Dw1c@Bz??7JN?db{jNYea%k7_w+U?@8m*Grz0RQ-_7dNbv8(dVH+#al z<|+OUE8^LRo=zQ_-^F;jhTNm`LL0u%(TD%scSmCqn+Il)``8_<9+|Tgk~@aK zcKq2nK8qpj1(=)E&G=2bSz+OQ><;-~#DClOJZ{dinDkZnKXLpkKX&ndeYE!2=oEaY z2Cndm;4|RMxN{%m1daCMxl<-QxJZwAepO%i&Th{>R#iYkpKAWkUxy%6`kpZsV!4I{D6? zW8hQZefX_bwr9cD9GQ~61Z@>syLd1v+w0JFpiPTl%XWAL2uFIu!Y$rI{B_+dFN-NcNb7_)Qz5Sx+De7LA!xf5@@_)gf##O&NoZ%#Y#u7y zIcUcfv}I@q6|@a#3ZvPH-)=;6({Th%;ksdXpP=ki(3+vGRnXd?Emwrm717)<`k*c0 z&(-M-Xd4y0V^wHV5zQ^z^U#8SauH{h?GJB4ge4HFyfdV;8*T`{UDhhMy_?)Jk8=pOfd{k|(3|wL@Er;pqe4ui&`>?I?z4 z0=((}C=X{AS_`yVaa#p1R`6^=>#f1lO5B^lN5OC6&fWcNcYdwq7PGUcG&UcSM*Q{Q zKF{}P4k^3?{2&JJ2X7p!&3_ZTqXw>ct`W~ca1+n(W8`(Qrcf5oHRLSTkfV6+fp5p) zXW*wbaFy?tPtx}Nz(w6FKx>DVhZa|F`tdV~pK5uh^vx0O68IGE+`FGuHGQh*bI57_ z!Kjb8Vea?QdYDoP;=ht5T4mL(=KNbptEvs&t06>d0U-1 zzh=kV<}9Z@%$DWTibOhEN;PxFj{m`!=0_PnD12mv@7L3Zu*dk2zCg&bEeE zJ(y*p9$0R|fB4VnPpiiz+vkROzG7rv8qqMnEH3NF+W9fgWmJpHPJCRth>Leb5+>=3 z>u~eV%8l}Kec6_>xb#E<6_;@ST!g>(E!6cI{Dl~P)v*%%{ckHD3(Px_KS5VwF@WE_Mi>oHtn0{$);rq z=Q7QIK^>nt-vvY zdV09iP0OR^g0mHqU@iQrtvo-AsWLhN-_4)7D5KKbI&m0-wt_qNp{Kijg!}0rQ+AH< z>n+f>scyV4^gDQ-ms96Q`xMqOVR`@lVjo;#U5C~Tjaj~zdrKw%Y#D$1G5zAtmh+Fm z-wsV@P;>vVlK!TaT{&nI&^F|LoVWch#u2PuTFii;E#!C7uy`&2zmhSAjGmvrkRjR>v_WVE+%lrgLmP%RW+>rV zk3GWLf~K<`xnaW6xp@0V>Dx2sCz$PCaU(JomuOGr|8>THXU|*f2ejOz=Dt^lOD?V` zG;Mn);dR5e`U}i0#n%yrQ+^N3Zd9n*mo)W0Jg2EPsswN2FL91dyw_})4MXAfw>G}t z?Q?@~=EzFWwY}k$6t)VRvx1w*nO%tsY5hjzoEX-qZ^Z5Y~w zJTd2r-o*;{mBXz~Gj?0W-v<6BBY)<75e}P}dgA!o$6xFF&d+p(eOc7kMc&N$p>~Cf zKTrAf8((7dJm{3E>GS3*?2m`=-}%c?o&5#lze<@}I?r8|MU|;p_=@i*eF|qf3}>k9 zZXr8pxm>1p;GJA$FG0NDWy8FjpBHPV)yq`N31#zFqBy+b$;Dv+-u_>W;_&bn76+B7 zdF1S_v39Ps{Pm+o-(_XWQMk&=;-|^)Un?(DYtUAqxn*h_+L}XCnL2>B4lSunHGYP+ z{nwMrR0saX@i&5Ol~J?5U!_bE&YJqm-&{US%p&dgj;Xcp%D(%hy{(62Z zxy+UDw}8L6vSi9X{toe1RJa(?)}S^2c63gO{~g#<($))YNV=GQfA04wlcBCI z&l6@Z<_RnK9ou2NT63Pze^F`a0yN$~KXqC$PiRMtxz981`Y`KFng=mYh&~L(?MKm; zFGpWH%wN5D9ILR# z;V(h!QXQPAtTNTFaQ~lZ zj_?N$8a>C&5hn28_?J;V{59jhN}0MmM_7Ze`8XP%&xheW(K*5?yn}xgjn9ABhIzS6 z*|8^Qm8#A=i|AzkucJ7;?#abr9NxB*C=Ortg~dVo-ayXMr=vMSCX7Q_nW~s0Z27)7 z`t$piMh8m8l@(do$3I%2Yf4j`5dNrUvlW_u1q!wMblM@Mq=-&&`MJ zlyhf<%_loY*v0?RX;jyr9{P`)BPds! z$>UKRK5S$>sX4+H{Oh-)IQ;69kAuomQ`Yz9{9EB1;a`VwC@V`9bA)`(_ck-P%J#~y zLtBI9mZc)Jb%&<1)DLX~S_!w>9Wy_yGDjH4UrY8@VwqdO-x&Vl+9$P@TM8F{1%-=g z!R|xbhSn{D;$qGaU7U;X>eQK+r?VN_2|PBP1+gOM6xuNE+{pdv`=k44c~_0Y{tBxX zzAj|d3Tp&>2wXan5l;!)XbjIh_zZYK3>fjOK%0-@*#Y0E;5mf04XsZ??7e8w0#E@` zJGfVO%bX+0P2Z>V=`P|C4V|^_sxTlg%!%d#({Z@i{YxD{r%`w|1+Uqd=AAXw~E_5c^3bgCcw%Vo)(Wl2JR$d?X4T!kDqAJaDuLb>i?#)vy%NdlLstGOc`I4(uPw{W6QUgo$x;)2 z{*oMuRQ}y;pxobiE4)9GGRfH_Gewb}m6jRs5%2)FjC8gLZ3x<;2)0h~%4fLX*Q>#W z$tUse;CIjA7wr(*HZ-|q^gM&M1+CpsLRu3OutR8yr;PlyLOX`$)`uZ@PoPbJ=RSI` zbQ|rHg)hH|ZxFuzyDs=d8-+Fi&8AJX32430nsLi0?AeHRLj=l*ski2q((wJARq$ze z8iivdXA9aSG|kUsMB9h9SmEyk+Po8<(iL0@X`NyW^Tgb%qq^D(wub-p2s7ZWk)2-WhHAZdnIJ6CDTcXgfoG(0uJJXptyLcx|zW59)4~4QXb4g z+lOZKRjwPf+TdJFLIN*d7dG;C;Jtb8MVr}!yhCUuXuY&u#HX+O9d*6$%-ztbaUHM^ zk9c#bhWi~sbK{BjUC$4VQx;$!l&t1k;XC@DZ!%?{7mu`9Kx9-G!!yQ%chFAVcag4k zct@eNL)*knJlY5C?N}TgFiT73-4L$R2wzDyb$LrGZvk5HKsj#*v=(RuF=7hX z9%yaQMn#~1iQa84hCOX4e*`}_D`b_RO;*U7fi{yMYZX8H6|%OVoj9_TrhRB${-O*^ z2QAP}@pptf_xih)e{F;3@A%J3t=ir-d*n*jD*Wy0^ImNHawl1x`2ei0ZK1?Ohg8DL zl@we+Tb5-iPE=d!;4Q}2i^vrTAsd9H8;P znAOrZi@*Mdqx8MOhF3d%^YZe@Mf%i7>>;BEn%axpbMSyspRt8gbk%qCruKJGbwmAX z0ox2d3f_%7_j!aw?Y!%!6F<||&qpu&QT}$2earZfTSm_wXiLx(CmGQOp{+nG<_yWu zMxpILjj@l`E-~^q0d49Tx601f&O%#;)^B`;{+6H}SNL0p*4)OpUgvKx3V#RM;IpIg zh2D##kgACkb_})vHX+Yp`ZFBud#s(mjWlJAUv}&Elr+jZFXvjg8c8qkhX*j;UdM$> zwom%QupchMbK^M|ZNI|khc*Ch61NRQcLXY}qhK43f0KS_tI(9UGNR2!w7^iJ^g~;! z;9Z9{@6b&8q0K-mikJFB`p@4BKdvG-cdcBm+K4-gnn*vwc~1S6;*NU0`T?j2~ML zhvDmhb^xs{+%MQ}8F}}eGxxmx-nTWs^}gx*fBb7sk`2F_dA>3aqZVL z|Chg(`?c(^)cC~DYA*J8Q5uTVAA0jVJ&_2t=r>ao-H?V)$RR1mVfu1ZeolPoZrX9+oLoPkXxG*3kP_*s|e~!0>=zX5*ag!|$#b0B}!L#59khlm%f(%IgDGednU`s z-gy~t$EqPbOPymmZ0hSSr&D?@fE|OagtGcfyB@yLAI=$Q(i*a3HVNjMMDY#4H!{E+ zA>*c@0X$>XMw17!q@xlx5B#{ZfNf_ zGs?s)I~pFVGx<1(pAGzIY$nr+9fh_9?S=>%qv`DJNVJT>Tub+66o6*&7Yv{0Nmco4 z__=`}D__rTXd}>iaU1!XgWm{eAqxK(d={LCaGfF60b%*;ko2d^2I&Yj7H_yB_xAL)~u;M&6kXb1bZU@5p739Q7-p)TA0nHIQl` z)j+C&R0F97QVpaUNHvgZAk{#sfm8#j22u^A8b~#eY9Q4>s)1AksRmLFq#8&ykZK^+ zK&pXM1E~g54Wt@KHIQl`)j+C&R0F97QVpaUNHvgZAk{#sfm8#j22u^A8b~#eY9Q4> zs)1AksRmLFq#8&ykZK^+K&pXM1E~g54Wt@KHIQl`)j+C&R0F97QVpaUNHvgZAk{#s zfm8#j22u^A8b~#eY9Q4>s)1AksRmLFq#8&ykZK^+K&pXM1E~g54Wt@KHIQl`)j+C& zR0F97QVpaUNHvgZAk{#sfm8#j22u^A8b~#eY9Q4>s)1AksRmLFq#8&ykZK^+K&pXM z1E~g54Wt@KHIQl`)j+C&R0F97QVpaUNHvgZAk{#sfm8#j22u^A8b~#eY9Q4>s)1Ak zsRmLFq#8&ykZK^+K&pXM1E~g54Wt@KHIQl`)j+C&R0F97QVpaUNHvgZAk{#sfm8#j z22u^A8b~#eY9Q4>s)1AksRmLFq#8&ykZK^+K&pXM1E~g54Wt@KHIQl`)j+C&R0F97 zQVpaU`2UdxZr}FrxVh9YbH!V~5_lee@9N+=8cb%qRsW`;+%bNZS;=|ZxzIy%|B&bH z`N3?)JN6;1WJ3DGT|7tf`(iA5-h3vQ$a-s;9?x6Mf*`7NpWnFcuU_%IjXQ#^JA7YM z(I51i`ho#}-k8bt$lYX$B@sIrCYR2Ep zv>2HXB5|R-;b7Az%E5HTU-#wSmAuJ}2y?EyJN=*-^!qo6{&{?^`B(comwbOsiLzpq z0e5x;aUGVd1-e6OT1VYqrTnD)IT<-uLLOJM!Bo!M%!+W5%`fB})+ntn@}DJb4^cF-Bzi7OJs9*n3fg+s zo63rS6i@7kvLT0Qezo7xw@kR}*|FmwyHkg^m4*c$_uQ4>_=>l5CD^*+tzBt?a;Unv za5cYn^<2ogzF+6RsvDHtoyui*{9r%lElS-p*%k=f3VtFdY&925)OnjZ`Pem-Gu7bL zy8L$Cx!5pn{~O8dRTBJQK1ZepC%LfoS;)4CptR5Cgl*-5**b48Cm%nhr`zBp-qPP3k=h|_9pR&x2RoOd9nX$_rzhBl`Nnf81yo89(<<(#)5K_?jz z7NiU+3QlUuPEPe2AB#Crs4rBYy8L{VI`Y4ZOx5KT#x2<_gOH7!x+BU&Rs_lb!wut{ z%LRwD9Xa`+tpMCt+UM%>D^=3|cOkQz;OJ}iv+8RY1)9Ew%!aV2cf#;DQlfbj+b4CDp!pa3RrbH-S-DZ6GpnrEU81aeMjGtXNAJLzu=?DDpoyzpBl_t4&t_559?9sJpF>K^X!}L@5K?PwZn0dnW9tQ9@8PPL0Zb;YAqm-9mB%mYRlKKk3r z5KE@482W71U#vzy$oePcbfyVKW(AripjuNrFB3W<9~8gPMjxMM!OH)4kK`Ak+Oi(;-=zuRK(Lna7-f^cw@c6U+inCibsl494SReQbyT&S^N%xf z)4XryJTn9ei?M21&>akU<6)>}?k?i0;`#*r+wCWDJE5-ngHdnl(jU_NsQ&Z;EyuuahhOQ7+iNlAWsyHm~?wb-~&d|9~2Q#V^$d zGgq?9^@F(AgWx3arZhOQf!{9ue;M}E{ilot2fn|cxizzSB6jAtuVlO}<#bexDF;u= z-z19;DlW<=Ev2+=Gea(uciVqaf05R!VYhDPesAGU#sl8zJpu0ddtuqSSI(1ruQQow zp7(K|-iP<~`$eY080OQ4mE7tB-r1ddFqfJG+)K?c?;7XCeK2p|x8y^fdjRHx2jm0h zPKCVRFqK`s*IT@UiI%tD6yTn`2J^}_Irpy7E-v0Pj&tW;I)bU@cAQ@%uZi>-;Vw0^ zf;6W{Ukh+ADqLE2oM#Gm>z+j)_jEJSBrP~?if5VgZ#8@ScQ7pR7U&C_y)7}H8t42y zFdxATd0EV-&GG^B*9;UW+L`q`kMrKq-6e8$@16kn#=SQQxmnJs`;_?m)_vU551_i; z2d?9sS0A&PH$EQ3x%{A}Pwgjs%GTM_SaH~Y>c%79@gwk+3I|!- zuv-sX@^Jj{VZobu6b}oJPG@lAfdw}H`ltR%)-#I)3iIZw8--`yAdsodzQ1>sLEKDk z@v2w467XmCN;mG~D+Sy;SHt)|DbLq#-eggxl-clEpZn08#$j*DsG0&dpU1LbDgL%lJc^C#O+_4R{n|jsnUT|A(izb zZvWzh_P=kRGG+RdGt;M(>Z3k|{8Yp$h zxsqL|3wE#gyNqA2_>5vVuJ}^~cqO}5KZJWb2qvz0EW=grQ~u|N{iOPeC))Qskv_$= z?7Q_74eR%NGk5LNNX|9~xHr@-92@7{eY6tW_YFhcyPuYQ@&S3EPQ6OK!bHPf!^#8R z?A=H3F5Va5-ciF?x?j$v`{CWYzYpj315o!L5cO2f>AakXF;SReK)u}TEi|fIJG&O( zUb+Wgw7NJa?`@?uymtiWRx?qcna24=@;*<|UnJa#`@HqWRl=RSC&0a>aLOMGxlh-&ar2`=5_ z1bv?OJ(N*$Z#t8uxTsDC)7fyUbDGIh>=xY+9i0~8Lp4N_Y&UBovr$Y-+5Bpjr6?z~ zh>u2QK)ZR%nRN}_%$}dpO=&&!wXdQbLv7cYWNc^hsJv7~PAN+BJbPwQ-I`$cFO#KC zPEkD+p_5F0DeEn`+-3Soc~f0ECG?9f8!;W0<~0BF`YYP4t~sjLsp)v0aG#^Tih4*J z3F8xOBWYX1b^3wjOqRAztz5u_^hnORY<`EP#I1pD`+<)q-B+Q!n5)-a^%WihS#20a9^W%VZDD5rk9e zaWR`W!=ko}*4qiEoxY6@JF)RQj~nBlw2zAIqXvUrhG{yvq&|v#>6j&7=$07(Ec6TZ0kd~_%arUpypx7t{|--!FpXM- zS#0z;|FqTU9cflLeFr})`q|abnSSOQ`PtCVp?-9(@M`}E=lKrR6;by>!=&)O0SI%M zoeWEZr)p7GRe=DWur+o1n$H$XuRnYtT@%h59jm^^v_|07-VS-KoOhP(`a6n4k6NCUT5*{6*^2WHvcb9zQiO51yE|agGQeRxw*6SNCSCul zlCGMlp2u=PyJ;iZlwXO?sop)PgM_2Osq*2bNee5lL*77`uDd$PlU}Ct-hng(&VKtt zW5dkQbk;L_<}*~-%C_4LYde+n_RYSv*^iy@{h9Lfn&CceReI18wEM+ov#YDUZxu{a zR(o$O`sqosXvj|n-h680vE<$)2QN`rpBR#)@@Q{+x;Ld=%fwhWvVi zx7yHl(IQ@qiyj?1$&#eH@%j4fmRXD5QyQll@*7%~uEO)R{wt$C`>3Ig=4`q?JFUiL zzfR7xx?sJ5<>lb0-b0=iM)_H6$Zs{EEu1I|Z;rNXTwdqDEYkg&(fwRdw~?L5?$>9h zIP4I3bK>4^C_B|&qd z00>+!t*4tT@hRwAaV# zT~rmIZ;MWYXC#}M6LE*WBl>bCJQmGh)5N@aAlUW2VUDXvWoC+C=o}rG@TrP)TTIWWZ~89Qk*tVAiC~A)M1^%8LpL4j1Si%^Z9a?g2~i~-57vAg zr>9xnjS~JqNsCC*8{>A8I2A4JD!zlTFxMm@3;s9JMcGUI015*epad>`;;?SLH&=y6 z(Fg{1Gq3VW+Ss*t3s%Uha>T zQYGy6?Na1EddXF9?iU-pMeGW84ZDfm!EXO%gLeo1?Nhva&=?qb2Rs{i${t0uljsS_ zJHuV?Jkh6@`>jx(eTvoujXmh|r)YU-SDmM5tDI6@D!ic zxT=|caHYdOC1((t!mv-_Bas~YgyfAuyXHJa`(n%#@}vX%l&l$OcR5eds+k4+DW3Mp zyNcctG&f(ww*pO=O|QaRhjx$iRDKP8s?FgFk%|1mtg{Jt~ zr}D)6?J#f7pO6|OntjS!9-8!QpQ7Ewc6>0(_vk6Q%p0-S;gR0#vy1;q_qSquB6;>X z$bXfU@57GZR#_k8`4v1Z_8qv_BY)dGpUeLob0U?K@4+_XmW)=O!UiJj2JYd=J;w9P z`M<t& zk;JxRWk#W`{>KJymZvp+xJ%&2*dE8iYk+j4^w zqTgEQO+eeZ%l8UcnN@fO;FXMFo(fmAaol>&@w7(RP!lq*A%mwi^U%lnzYYD!p)Wz7 z<9`qI_T~%!D+&X8&Y>6juX@2!7?$#3_tkpsj=YSXieEGMcJEaa*8=WhcbMJ+&w=}R z7XiE8Snr);hwfzfhb=-Y-S2z7JiB+lJQpRNtGxJ?r>y!+i?Y=lB<`jsMG7>34>3kD?T&Gz%!3+!7gJLu}fH)CZ6+=yNzcn_BwVIyMkTA z${ehsQ{4MJy@;mtcl;7<&TB$l^x>ZU>d?P6Uy@2Q5gOsVK)O&f{9XzjNWfb=2GVLcilY19;TNICDhwiH|ZUTN>1z&Xdz5jGs{(OWhP1nJtL%I8KFGlGY z#XT9hr*YdfZ8`4Xy%+Ru+}%CsmN-x1u1wRc6Xpi^Abu4lFXecfQ8)$MHk_j49*W$O zJ%+ndwr!V0SN`NbO4-Klf0B0hfB4?mM=tWe1AGr`o=IIbT=}@MP2K!&w3YDnV{iV6 z?_I|p>|e;~l|TNs|5?1h0sO805$zuST3IMt{g>DhljeVt@mju z0p(_v^z@N`Po%y#hq^tM|-gZ-Zh~pE{({=bx(fu@hZ6C~deZLXr zODFVQ==;!@a#^nfE2BEo488d0*{mXC2XGsdBQ>$wy?*Q4hSPqi2MU%qG~+HkMZuBcro;+9eB)rRP4 z+Xe9rIeeqIkKq%2(xGoSZtwjU;j~0T`uKl_|3zprgZyvh z|0-5(!x42^MyCXx;q3{vxjEz`gAF zFXA2n>j$&`MVp7V3Qg@?)333f^>r8H|5fn)Z({a8$ea8>5RTi`f3)LI{<|yu@8f^y zo9n#X8|u#6lX3n}VNbEv9OCZ=ekQP1uCPgDcYaHq*DZeh_v5a{KZCy(uvYx_;BTpl zKgDl=_$f|uPdM)GUx$tiYqXwF__jK)h`qFq0PU1Dg&a>ArN5Uo5E;oBWzC`aa~FII z{GY=r%t8FwwF>zU$n(M(;b1R?18td=mE!F%9P!V<@2-#Zs6T07E)~$O@RX6il?s2O z_#3!V?~P%LSnF@6!rv_Z7O&QOo7icr_1E>G22X1Z)~w^tyQ`kHl={SV2gRpxr@?Ed z9Le2{yVI7buVvo*f_kszh4o(3FzLWfx7T~^&#Cu%pIh$@^M8|P`}1i#d6sxC^6dWd zFm8?TZ{l|o8Qb{X#UAm09NU4vw(p?5d>(5Y9ni4>{+ju}1i#`ku6PZE@mj_`gj;47 zxt%YE2YZvPvEv`D_YN29y@Q`)Z3MS=&I&&P{cY%!Fi-wD@tq?6OJTeg;4i)mI=26l z#OI%}w(=KTopQu@9{w}<&)&k^cNRb2S?^8$IPrZeynn?m9%ZQi55sX;iKmQox9}#` zVZQr9PX)s5!VY1Lp1?8S_Xj#Yd*d5(S; zWkpZ)v_w2q?&My>y&mP|w&Ol@+-Huv>BASit+>^mNKS|2?upzcviwN?%nuQ-aq>KB zXM}A*pZ#HUgmvk=&^w^@SI`fjZzJQlLe4St5ol8tbj59&@LGS6JaNJezMeLY`1E02 zdNcGb{2o>KFF+p_&7mvJgOM(5Is?kvVTtnbBh+7>GV-^&dr@EZajP8{J@`n2S^tu| z9e4LPhx7s5%45+>xYdr!y@*?DU2<>ZzJY%kmHFlO5Z>yOFW`rBmF+{-@xu-=djDzX6PPv96OA);q;T1G4#~*D`8p`j%fSur@Z|tWjczZ zXsghMpjo5#ZT>UVlg~c+cFBgXvSr5&HZ0NXxS{czn3EFULu>)JQ(TdPY&}4cCISWtx*Rb2z8SEmq5&9|5 zn>>fGHk=94avfcHx5Kn39MNV-^B6leHXPALp!JzuoUlDPrS7}qh7xkypTXW2*6wGh zjhOhOux(c#G>co$HJ;Wi!nf1LTo$|d%nSO8)ypamFl0?1k@hr6X_O;x&RTVY{&d*gfnf){U>qsTY-J8(-0EdA71ebIY^lEN{3!oV(n3 zcK95Lo;P`Fzy8(FAp_9AN3dsvtQ0e zvSRx>vdm2CjaSY2hQ`-14TpC60?)gbXS9z$s<l&wN9k6Y&Rw{L%s_`hJo`G41xKIi^pPuwq;uDwIo2-P^>n*6WOzhein z3)mIx26h*Fh&{yyzuMsCv2EB+Y!7w-D{PqOFwYU}D0U1xjxAv)u#?y+>@;=;JBt-I zhn49Y3g;s>K5n}r8r8%Yi$~9r$vJc}(4X_#H|gI#o%5#G$>k4n>nZzYeJvTU{W0=% zk;~+?-`1S*P7hQH0N!77VEE;>s+Zo?$f!4==?J+AKir^!+72`X+;*To5;CI0H z_i2NO;{fYct6xQZ#_oP)xc0xua~L}cZ9sI^WJf;4nm+6Br?`jV)tY<&Z;#f;t}xbP z4YyOWSjTPSsWsnK`D0J)5Lr75{AUfgh+F$3y$y9<0omG1IK-d!26$i4TV_3J4SlSC zo^<1GyNCE^*;}|*r3QWCckZc-`;jxy!u;WwcoDa;Pw|8{jl1#l?5RA1d5Pp>rwM!D zF7`~=O{MVqR*;6CZl{-O4>wCC8y-okaB+S6IwW}S_^-ug@5 z>*v`DU3)9qkJKKG_BAJY4t+_+8vyU(|04hU+K4l5t>0@ORO|Z%p4wMw;i>ieJWs95 zH}l+tKJp^g;}s5e1UuTr{kgB>mb$NI+!ZkA`V9NTgwy!*=n?l3VH{D`240=<&al@X z;1KnzGTu7naq_oWD|uzcyTQ8t?rYd1Vy~!ah$GtU9d&TUhXL84g9y9*L0loT0hC<+r^AG_Fitf_$=!wKaKl2v_MyRdFcvq z-bBV9WV~_CN6(;x%|9jHTHpJvoVWiM$bCu1>wg*727Utn>^Y6UoD<&QzywO+Z%Q|pimJjeJy`45TTQ?p((@m?R!di|~F3YmLP!00OZ(@|S%I_w=tX1B;$r?KA-?_JNo}cybMb^dFei8b2v3~zOS?|WL zv;O{~I&bH>TnE3M^+x`THTiF14fTbD`2ysf@}5AB_L$ywQ1y^C)SG{gw&mMd^L|s7 zvmdlAdD`F+)?%Rzv{0@e$$4$xiEP%;msm@meHLq1&#v=kUs&gL;qLEb9q*-_x%pDs zC)V2!o=u(j63*fvdz&=xV)wC!*kkM|mIWs-z&2s?*aEfle zR%{RU^jkQuhwa7g(0(8DTxJ}qb2jQn=b>rC_G#0%NoxVy*g!k`L-d~| z`b2Q8`RV-71kZK;A7cZ`htBNiJkJ1bowu3fsdF@&Jarys>we~%57Lfmp7P7c?=7R@oHrD zP*%T+w)nNUXW64fPSXr=#E!onf8WS?9PH|kk7&N^e+<3( z7icq=i3j{`|CQ$*%xCLqZ=c8h&HD-O1C$Bu8Gc)TgEU}|;XUC#zfZQD2+soQ@AMM|_F{XGev~SOOE#E=;{Z7i^2y5ftO_?2q=X)vVHz}9jpYyuL za$eyFb6(FNYZ7l}eDSZS3vYw}=V?2CA?Ho~5^eW;SSNokW03bD@BPU80P=nXd27h~ zb@+*Ek@c62-{wiVn&X*g4e%z1^z6A}Q zMr`{l>96tEh25mw4B&74)vRGqFG|?rJIG7)-1B;L`+KBghfgB>LC)LyeLj5fhok{_ z`!02keyRI0u878Ve4P5rm}-=M>flp3Z~PX|$Em}<+FtJE&D42ES?Y5g*CjFLXbS4Q z!FxDEcW)i#o_6GZ%1txj<*DPihaUuc3VsW9Ug=RV>iH_|^y<@TtDng_Iqkv-ZO_{C z>%5^NZP3f>ys=l&E_5U7)yQ}acQN(g4?DmZ*RE%maN9NOMcj5>`s{~U+eCj_8yx+o ztf}HQ>w&oK8ld-P)@h+@-LD6?UF)01t@XWJiS^rPJ+BwHUBjEfZP)GAS&y@8b7!;0qT-!^Wo zp%359*o(3C$=4ItZ(|KdYdxQ$f9qo0{U-Xpm$9BPz});7DG&VDy7cK!GESiUtiFiz zzb|1N|8D-Xo>zQ1a|8bOV%I*7Jp6PVAfGj#`RmN3pTm5cv>#)4vFp+Ub{ac|9m4it z^Mn@^NiX5$iAV5K(!+YP)`+z(yhOO;U(WdBDU6-K*Z&>sNiReG&$4!kyJw!fAx{0o zWA4SoX&HU8rnQY+z3DKFyB*s@TBmugVhgwzU(I}jwx;itoQ`fgnJW)rCz<;$V^6V*{9hQT^Ew96 z?N75NOCQwwQ-qBzzMChuZ5}t+|4OF)Kd`5RZNhrk<3)6Z-NvqCm$CEMX>18QiXFoC zVP%Ru+pz^~lW5rEpF;+A8@rBO#?E7>u_f#%b_m;tEn?fT1#A=6!yf-^17!$)tjs#k zW$b+Pf0}0rJBl5`_F-j;JlnAaY?El%^62CyNsR3PGd{hQS1=54_m~xV++_O ztcN}3R?>a!Hg+AmjGf2IO!F*ZN3lcLK5P-&jxAuDupajKXOMxl<~6T+)r$*luX*j) zKC{sAWiRx+=-r``)^)6(0uHT1Jc2!r-Yvpe)oAX^7`TkT9g5}Ge3}{gx+}lv;Claw zIc^z$!NHe5F8t+Xc%Oso-KjYK(w_^j9Y4Ky700hRKJ7(W_-^|2&Q=`1)(7I^ulK#; z__c=Md3TqE@1|exipBA39ilS+ZBWkhhxg0k_)Eva%hO+iV)^xsS{#4-UkfkS{{R%r zulL*H_}3Ho^=@1of8VEsUp6-U1%sEzuM_VUFP<3QGW{1E{LJ9B`AeS>e|i47akzaq1W#qg^4oVp%0T{DTG$X+{Ve*nr<~?u|*LziQc!BlqYR1M->)~xoVZvW8nC71c#@%#GIF5^WcTK!&sy70@!;)4b+58sWS)~I9S zZ}8gu+LNsu-?;gwb??gbyZGj_F5~X};ON=HFB_Y_6NA@|-`tnQ^RFb}TLv#5-@EZ& zdQQCjtpxly0UvIUmtRW2wdYW|KF|ln>hI|J!prN2TRz5LV8XB2Kdw~4UH+p4y!D0g z;jbj%+E3vU#ahnw)pr> zB;bn)c;QC8{LTbid*zk=pIiRMzT>j~-1G%+GU1o?F9jr8{TB^h-v1OGd}$;OT>nEz zwDIfVTtqcvah;opYu~Sr$MfsVh1QSV{%Z(|mG8Ydp1(B#*LjXO`KLb;FJEUt;`F;Y z5znu)E0z3i`=m1|ak$R1R5MmT%L(|l!E3i~;k_-j@zI}%4}T&7pGm;YIo6oNylEDrDcKQH6%_~OLikT;J`hW-PzXxnat}FF>&Pa00*1$i?w*Ch+eh;0Fo#NdoS@BR>5>0^XW{Ur)e0 z6L6g|i>p5q3Ap!8@z<_jGX}4nzq<)|%e&&^r!$Ii;p;qQ9KKcsck9p4zZQS(`ZM!y zgx9V=U+n&--btutZ2i!EWYvttzu5gzo$st>to)??(WL!VofpN_tp9p%q?$PoKLOWS z)wuEh;!g`N&tG?bu=O+X@zc8$n40m|dmhz{jla&$R?Z*Y`G?NvR+eA4eCl1AxcWO| z@RygxuLy??U++v*mS0!C-V3Q_EWghAR*s*GP%N%9z;Wrj{vP4w`ggzF<@~7##fGo< zkK%B>qg08z^7Sqlre^x|9$PhI!`J&^)r`f*6L7tM7N>u``xaM!bZ=lBzuy0e!}Z=# zoP6D5700jlB`R^Ze(ODo%KUZPFWsqE%~<{Ee$8se;<|gYnz6X<<*a5bt~)!c8H=0y zJga!HxO>;9>&@c2@3We*xb6V0W-PAv#NzTt_lj2PzW~MZ>wU^Ne%)gl$FFxFC?TC)r`e;M`Sf)aorzT%~;&MThjGsadTIr3q)><>mJ8y z#^SpBvYN5D?!~NTEbiW!>H4#{?i8(NEZ(1h>n_J?#`5b9$7;sn?%kWNKa0C}rB=gN z66EXd$7;sPKS{uK7iKkM`E|ExHDmGc-qYIa7rINenz8(=3Apa?tY$3#X#%cyu;c2V z?yZfh|GK-jnz7;Qz3w>qx`#DRzU~68W~_X@CmzQi-UC`&|9ZbXjz7Ftv^KxqOON9Z z?ULo4{#i=yMp6z-6tG}>(1dgTzB?XGgkk)3%HuGcvk}6XYktjr+bVm z<5z%U;X?j)~V-{^s2)35u?E6=aExbA7F zoL?0ke%(n?%~<)mucDfG<@u z7`%4+dK2*R1bit0-!phcl9%|L9JZxca|f@HdyOAG_tVI}rb6W9#Qo0zRIA&nDpW3HVw9-poB+ z)r^h5?(wQ-EUvr0su_#VB;aFr#PiP?ymtLPOW-dw#>?+c!21neJN%Udy!lRrUz`7C z0=|=gcW{qgHDmR!d+y@O_f7)dcXzz}p#*%?;N|Ie>)&z$|9S$xnSdV}y!QU*L6g!~ z8`s@{arzs)M|gSq3Q(;6R}2oJ!dQGGf&V0dKX-3@{B_4Rz?UjBanFdR01x;wCP ze{sOUbw5s={FMY;cVfoz>mI|(`R5Q68$aFc700hTzv6J+&lrd6Ud77&{ZS}3eBI|5 z$FI8>G!}oyO(A?lq0$*S)E6xb9f3OrP7o z>HgI?T=%eI%Ep%k2sZuU_t(n%ry&Q|9j=w_v)exDTY#16ck@U0zsB+FdxCNNx;wU# z-|aubZx5EozYh+ZK7F$=PQLD?jgznM9>($OPTM$seLFFZU-#iw^1J%g_ZMUNr!Mom z`q4eRmGa&GRo`!{EPq2#tp47ijAMXQ&`zP%saU59*&c*`-v;@WrttiLaZDgy5(2j zON_&H=W$&9*S*D+<);9}rZ4__#M;o_NNGk4PW0rjgzmtr{mea1?axa7At+Y=`o?P&o%~<{E zJAc)T#r4g(Aouw==8Z`c`H&WBK)M#%jjm`W9g| zV{v`ku$r;>SOPw4@Y?fleH*iyvGVop&1%Nt`X*yFV{v`Uv6`{C?v0OY|Mv`DJO28X zX*FZz>n{2@`TDMAW&2iuV)^xL$7;sny5ByIU*C0%!*wry93FlrvUd7)pMD&F_}$6c z{Q4GXHDlAK`}yPa7k(GDwtRi#wVJW=!*9Zt^S8lZaeX(oGJP(t@2$q+`X*}}Zob=E z(LcHJ^$|maxV{q{hwJ;eak##}8;9!~)s^#;9w;__`hIog_{_zV&fn;} z8r6)IuWxQtGZxpkMB>`N)daljkpzB&Uygwde=`B!HF$aZSwNiS4+;vuHr|#S3zbygpG~r{C3I^Y!@jbsD@p{%-!yCg7(D_`tIjer@@y33&d?;`zrC@ZAKw^EvVIXA|(# z1bm=9UjO3;FV~Noe_IK7%X2Ts-{l`kz&8@`mM>3`pMb9=;Em6d{POnAoj>S%MsavY zhw$3xXLg=1{Iaq2^Ed%--UNIh0oOOksu>$UeW$FNv3P4|JRZC# z9=~qz^78ApA5#hZ%L({S0)CJXe)o$N|Jw0eNWgP^>n@J}MgqQJ@XI-1^{;Q~#g*?H zUGez7!E4JuPQbmFUQVA||B42$Ex#`TA4tH*3|_u|?uLK!Wr|;IT;Cv!)8CQ7%k#eg zht+>~QT&&U#rq9jn|~sKf5zao<8Qv3SW!L;M8}4I{gsMe?ejDGo?#{K&hPXcsLJwN zfMVq@C*b;aV;sM}tysB#Hsr|H_wM5O^&Px8T;GO_!}XoV%JzR0icO!sCmG9c@bdnn zjQ<-G_!Dq_D>5$p_Q803D*+$==6HU6cQ7t|eJd;uzy5}Jd_4izHxJ|F>syF%`1l*+ z@uqK$#}^Xt&Tot7-%7xTZp8DSB;fjXX*FZZuf7>t*}l2sJAG%ga{t@yfAu}o%KG8r z`bKG-e0`_1nz8ZIcTFqTpWOKAJF0QUzHw#v z8eiD`|IIVu<>}jW;@5pk_#x1lTAzfLHY-+Vi|V*KawpFSm?U*DUq3}5x% zhQI#sWq!B)*0-wT_&vU1T^WCuU*EW{tNC^r3ld>=bbzP_IwC%>QX zXUFmD``VTKZu_WjZ^z;J=Ls+GAKd(#Hh6jaG6aK7|Mc_4|K@e~`;u<{o_!R!in03H zexV8fk`IgTC*a2kxYrpkzbOIlPQXVJ@c9IM)8Mt|XV+g8AOC)X*XCbM;NMTcTVAa2 z%h$Ku`mtm1OWAi`{!bEc?38wYo_KugE91l0HiG)_=O`KmMA_;k)|Px7_3SCtrV=-wl7DUwC=`x#{ovI^pHz&*jez#PhFy z!)1IFiMD*qd{aEW@y)`^^T*ZC%o~K4$8X4yKk`Q5myHeoroqd{H$}W#{KmIkj-RWa z#(x+uzcm5xO2GRQ@DYQTk1yT)>HSCX@f%6NrxWnt+vDXI67WugmzO`cf6jeJy!;k} z*XBQbQ#`--ox*GLZ;izB9~itg|MGXo^KTlwHvi0MJpYoxYx9qNZ#@6B!E5sm-i+tJ zY4FjA24`r{?@U0{w{;p<_~@_p1)x5+Wbd96wjX0UHFk-^_wHa;uj-QtG}m*eNAZ{cT!m(LH~__h5<;pOpn^KaMS zc&RWp{L=)y<>%wmHBTyf**MUyA3SGI(wNf%nAoj~cu- zf7g5C`TGrCo4@eBc>Yd<*XGZ?Kc2tE;I;V=SL6A;4+yW#zx6Be{09cF&A+@B&%bH# z+Wa%W9?!pI@Y?)i>+$^41~0FlMKogTm-j)#UsnGM4t{L#^7>oWe*RW`_>;dKkC(RM z@tFjCE&*Rmz?T#7wFG=K0pCr)k3+ns{@Z^iK7YnToE$4RHh*Um@bv`zC;`v^ZhZdr zCg9@<_)-GCmw-2ZC_aA833yuq-kpFCC*WfV_;dokn1HV);F}5fegb})fCt+N`cJ?M z3HbE{yek3k3GtfsZz_R*CIMeGc=`COKvlK%bKt+l>u1{FwfVOa@Zk62f&a+hwbMWM;rQ@Z4PHC^=G}Pyc7xYW|7ik$^GD+KKWgyW z`rkHq?evfRQGEPo3|>3^#|ivBAC>&_@t0eEmlE*eUOfMa!E2AN#{O9Rwe{cmv3U8L z29MEi0)CKyA1B~v33%|B;(yuL`qz|zcO~H61~1S50>N4N#|E!mzE<|*bAP|pwf<}U*Lt&< zxqF{y?|t^!XP=LI=gg4yF7^HKO2Pfxzd8Uv7=WKvxM%)y=WqUd^v^rL7oo(7Pv$A& z{_#04xOaTG*N4InW5=&TaBqCv{_Rov9{Kkzzq|cQ{=3xgvG2yG2jIH}_m8jk5$${X&%M6Y3-0ybUB7jP`d<6# zC~@+qMsRO@-T6`fNppR-{ZoQ_K_sx)adaPmG>jLoIg8R2G`E2a^3kCPa z*WJDy0l4)k?fdJm4#1BG;02#GkAFI9bmCVhxPSep0`RiWB|e_~b=%*maMbAibLu}O zxPSibKNmax_7~0D=g#j2!Ts&meo1|A{<`(Ie-*oZ>E~nnS0K2zez*N?|BS7_S8#8B zy7SBWI<|hg;Qso{1oz*6?D`k&`^RVJh1m7)SGaF}WPL+@Z~nRCb4qZ3|5yK;`d-|v zU-@lp|5gj`-@Xbh1pD6pbH_hbC+_v%jc*s+-+rw@eXsxNC~?Ne5yAcS&zQ~i-St;l z&2hK=LjiblD7OA)!TtT)6Bk?md;ne+PknEE-Tiw=aR2xvhpF$)?_yVci(3+J{^!Jh zWdOcA06!jphZADgpDnnzeeU&jo6`3kU+2FEcjrfbg!Oy#+iicZ;NJDwt$$wO%>wAe zFFi4K`|<EvfM>RfogWne_~rn-Apk!YfL{o}lapinpB;dg2jH^;@YMnM_5gf$0KPu}KNf(W z4ZyY5vEvsBz*7V8%m6$;03W4r-|`3MZDPk~o8bQXM+5Lk zN^JXf0G=ke_xXZ*{iv~H+utm>*MIl=a{7C4cYG?^(!T%xBhoH*{aJ$h*IyT)e@t-i z{=&UKsc#><{#}Cm*RQ3<)=w4Ozy9L^`sW1qufM!Q?E0$&_pg6c$JqL_1oyB1V1RyF zC))R~|G3}~`Ocp+zRn5mUw?U8Z2xx)?%kid^Ec9&`u_N?0DRU()c5Ys-1&7{aR2u2 z>k_;E;`G?x)WGq?ycV)|MP--=P!4DjLM^ZufE&=oq~Js zPu=#dzS2I}@cudDJ39a`4#2Ag_xhKPsvP^r0`#?h^v@e#cl%Zc;3op`!v3-C?+C!d z`OV|+Zr^0V{r%q`fM*Vn{_!0jD;16ydH$dNc-OWcaOgvfC=Yi&&eNcI_>-C|0uz|_TB#H z%@F@Qw#hj5iv#dk0r=_we6!$Q|K06BAE2K$Gq(Q)0r+IW{p;TofLm9`u0JyX9~FRC z2Hg#g^16+8c|cbHB7`Cl&j{_De*Ynt14&(GGJ*zr#fz>5U; zk6)eO-tptk&$LR`@4tUIFSu9V?f=QSvHjmRFE)NA0I!)(egF1pRm8vbtWQNKamN3V z1;oAnyW3xVZEX9Q*Ae&c|2l~g3331Xk8^_i+dsaH`rh~#yZk?KgWwJB-@kF=M{aIjzk7bSZYA#De`jwa?%lr@ zx$3XjOx)l9Q(I!!UwMCQeDedu{rxNcA#wljmz6z6+`oV8cQx1F0u3iW8r~wl)|3D4 z_~pObTz{5J|I7!?^^071*58PGpXBqz{l{;O!YSkVbM!X{;M)T59Rc_*g?r+c4o{r=?SG2@9^c3~c#+`V z{3&wbHDAYWf9k(t;|&3L`h@`h1oxl6>jd}qZ-vYMqHk&6i@WEKy;@u|e5Ff&OB``; ze!A_Sj3?gw&x!B(06aBJegF2&65M}&C~6VA{)zy6rQrVcHw5UPRJd>cWwjLleDNBE zHw&N>zbygy?g0F-;QsAPPKX`9Y{C8Y&j;WQk=XXn3+_LE%}R`|zg=*D{i3#*?7rvE ziEmi|t|i5;KV5MD_!PEd{r-4u0A4Bf{o7a7Dz<<7l4IjX1ot0b1+8Q2mkaK%e^7A$ z^>14n+V{>+MJRFlXGaQg@BHlEKNr}s@neF+#CQH2`)301%(k@e-+#LV_ix{kcGUOB zPqruit!I8HM~UO#i4Mfqdhj9_p4o|b^FK#FI{?oY+*`kUeaK6TZNEZr|M=|aOnra+ z+cfWzyA&g=%)>eZNElv zfBTyS_uoHEE}(ty`s@CE=GBG7oBuieyIpYq{74;2eSdtX;Qsb^2k7Swi|t>L;QsZW z6Wo7%6bz5;{~5vk_4A6vKTrO;=a*xG`|GETpuTtiZ0G=Lz7Y5+70`RH;ye0r&DY$?B zHw5S(4#1BF;Ku{-lL7dJ06cv`?EcFN!1Ds|f&jcI052BYe}7PWZEXK{1>lDT_qTuU zI@j&z*Db}9iLr-`}==90JoOJZoeIXPY%HA1MnjO_=x~Kb!lw>(*y9V06Z@M zFABiR1MrFfd{zKn6@ae{!0Q9>eF6BP0Q^`0p1mw~|K%&(cYjtXxc~UKm&YDIlLhx5 zKb7C3?;iiVz6W=Y|8oKMts4T`FSvL9Nr$`6{B$Tl|9k+Rxgwzc0K7T?-x+`(55P|c z;F&99`=1?v=Lg`00eE=;J}UsP3czau@Rb4h<^X(00Dd?CKM{bR4Zw?6#qPgyh5L^G z+5r9f0DOz!-tpxg-a z*2dN^4#2kv?(d&f8{2+a0KP2%KPk9>ew_XueRuw?z9qJQ4TAf(uY4W#{h$Bu48YF{ z?*Dvo^?KU($HR58@e2X?xed+ri%_F8zUnu{#?x;l?tgz)wwbth|KxuDcH#Ee`uSU9 z>z}==xqi9J|LpCt@nsJZZ~o`Be{TSOUU2{ZsdzZH{Tjjj=Z_-+c=1kYUxWL68{6;v z|8JR(68Gk>d;i!V__v<*?byo7;Ey@2Mx6<8J-ayNR#$)L-GU zpSq{Hez6O$`#Ev1f9~;Jw3oOy|J?f9e@VRgpVR)mf_vlVwqN)-#I*!m{}aBV;J{o{8?aR2&G|2B60$p?u0>(6>Rwtjs8 zzB>R}QDk&yUM~N4$$C|K0jl199*8aF4I!&&AfSdOo&(;eQeL_kY$4 z#GC&)+n4+zasU1)e~Gw%{~UXnxPSlbd?mJi z=Bu&w&mJZ2-#?Mph&TUp`o|8yvjgx^g8Rq+Z~$KZI{ow4KPb3=`$oMHyZy)BB<|lo zCyx{N?_cfh*!q!oV(VxBg}A@}^(Top|8x3hO8~w*0B;c7KfXopvVMR3Pyn9yUTpts z0`P-^`_Ip5r()aB7u?_fZ2@@l2ed!jcYmb)mAH3(a?igz1^?DFKfCuwlmAA2Z~KZ+ z;`DFBN6qcK=kG&jn&WQ$BOep@&M)r$k@jix`rZ4RWuG_4-TRlkFNk~d*R5awCGqBe zPWyHW?v0<@{^YNy?~kXRkL_RCKV#RwOmJ`f-SzMNI=23C!Tt5E3$gXH1^3sl{wB8m zwg7ye;QscH|2wvQ?OWph`sG@D^Ug(y)4wYN@a+M3s!sdf{Bn=4OoO=p{9J7k@8TJM zZv6`uaqswWkFTR~vGr$#W9#R)B<}BjMFR2We@^^n1>h?K@GXM-&wqA=_50&H0`PER z?DmC|i2L_XaVz5f{c|LlxPSj_ZxdTT&5o^qx-D`4{;}EPb2`(48RKo_m6)= z0A8F*|NQm$3GUy%!j7@qf20#}|Nc4NnYe%dp6?P{-|8A$KQoiKzyGz}h&TUp`lmhs z-x+}K7u-L-1>IS{KYlO(&+8G}|8l|o?e7fG-yMKA1lZ5Yirv0y!TsaEB|!gJfd07v z{eqsc<5wZLfBbeUec$z=pcn1???1Npj*U;wj_qG<0KO#v-zoUF9{B{%*nj<6E8|yZsdbcvS$tJpkVqfFBV&hW`U%`(G7+*972o zf_v+C?>|om=${L~vj)cYKR*C3R=96|)C%tPKOL#!+cubfBfzkOnrYme@JZmMFDtO06tl8|N6DU*!8Ch?jN7i0s7&gwC{gDcJeT(-?#s> zhR61=NO1r4J6uG4Z+>h?iIYFthyeQmcvS#iAAlbYz|RKY$s?P$FWuF?TES89oj<4j zy94mU0rm?njUB&P0eEcyzFBbp`@@x^SbrB!{t0r=TTvD?3QN^Jae0A4sXw*ImJ{ODD&N&(|xLd_V5kkE|f>^}igC#?c1_Gw*KJ&JgqLa{wTq{s)Sr+5RTquBT0=`Q?m0A9R_`riC;*T1WtxOaUka@kM2P3lL9_pi}E!M*x!`{_TR{&0`~ zMJRFf^EQip51#JA_X_SEpYHqH$~&m<#W}tl`vqGB_t>v;;nVMlt)F>cb9|OdKl35t z-tptUe`^pNBH#IQ{5v7IcmJCXSqCqAIKaN(-!bmeKOwlk{j8m|@4x>kdW3lMKgYic zg?r+g4si$HEx0$oXSwh+&<0+brv9Hc?gxro|7DxP`6ErLko$pyrYOjp!n;Krocn=e zIp4)!813L3@1xS2@YApytzXYTv7U>`e>n&`;%q*QaQpxinO11QqGg(4#SaH(=y4O| z5-#J#2=SLh3?qITxp3%HUaZiUa)}=-g;o|tEcs17Sb3j?dfXITtUjdIWs{`$#`^vw z|44GKX zNk3?`eAZ<-N{i(vEtaFSSdP+SS<%X}qP3(C8ZCd}vK*zwa+DU!QCciVX|b$mWm(Z$ z(pRvIl9ig?-C_r5$%zXQ%YniqE<}VCnN)??sj!U@Ooc5}Dbu-Xj+ueHy|dpTb1d*SUgUa5{uhjHLKOy=9wcwqfC2?7!9x!nmw-sb?A~z=2ziXxsbONgR$CsgO{1|bD6S;F z0|d7j9e0DcpTs^8zah~8;tdiVA;aS%Pia47X444p*KJDx|;aujtm5vzI-X{o?} z$2w9_@* zRL>&*#aK8Vyo3wK8TcMuIOf>Vn*>&XJBogQu-WI`f%zD+D*lZ@uxP0p1xwv1Si0OO zSn5W>Qa1`_VG4Hd`68|E87y_LVX0dOnBc906_#5EOWitzaFv?}Smw=xISfWxU)Ddq2BwH(F@&2k7N41AI#@6r>Be?sy_$R^BbAQ@>3 za_Pe$CiRp^7BKHy#pN))gq?}xa9in6;ava^0c*SEFCE&CK?j9nMc+pWkWXhKqkVs}`Pcj-c=Vs}~*ox zU9_ZcQM1*mO*>>mt958ls}x4F6?c8DYzAF3w;&3w+EOVloY-RwBqQZ$O=8x&KpD{U zh)ZJ6mxZ&CLy6hxeqOfiZ5lw?E; zZ-;?hfRdSeT3jSC|4+0oE)4XzFevJRvR4qbr^VTcL%3^KDuo`Ep^i!}+b}GeNs$?J zujoy2Jremb#z*1^#U-Apz_rB!7A!vDd}WYV{3U(Vtz^ z=ISNOw8TpoxK_J5pmZdo*6LxBC5%R^-(qr0oWz#2ng=LxDt*$ztcjyi5+qIW8Q@j; z&0n{J=#>L?+^hWn^;*ey=r41D*3lNzu0RIG*}E~A!}bGsZ(&;)k}d5oK_}QhyW3x(-X8WySje)EqQ;)~Ow`iLo{#t5_WMZ8Z2Jt}bL=}X0{Ym0f^M$O z)h^FA5yZZB65jjS9q``Y&cu7Zos0JY_F%jZv`6E8kX?@V0-Hs;0rEaphdWRso5Xn@)bG& zm-FZVB<(*n``5^luMr7c{-xQk;BrB;-@@e^_=(HEHTxVc-(qZFQK{AKBwTLM?M}F? z)9ox=*6VgXE_J$n4=x*Y`%zpr>h>>i*`(VCajDns7jd~&x8KC&Hr;+7mmlc%SzI>j z_BXiPuG?22|L@T4N?h*L?MpG|Z_({jNZPHs{RrH>OSkLb{N1|U4cIo_ehXv$9^HNt znR~Bpe~whVPq)t_r?>02g@JOvZg)h#KY$CY{7|=hA=7v0_N&N{2X*^CNIs<7WoX~S zy8Q)4#7W(L0E6dS-ToiwfqMZ1>a1?3!KF`iyBhUCbihm%z^Hb~0T0Lbp?( z{-ti;4E3*c`!2ZjPu<>&zWrLa4=ON^WoNKr-4BQ3D3ha+IMTHgP!Vb}l#!2Y9R7e}Y4X{Sn?x`&+zQ z_TNx($Q}ne&gR}c-tLUb!*&)-wXpl6yrtb1F-frb&CiJaBCI9ae9V(%_eYys*=rEE zWcxA9BCYL*QQpQbNBX7Mb+ByPgJf2F1|{w6C()2Jdji@x++KyQ=xldD3v=v!sH=~C zCxV=-nRmfN>)wOlvsnV4TW5D8`7;Q%&XdwUXjbcfLT-bp)&Z1PeUYRcY=jDy9%Dg+h3yuJF1zey!F`Ep=Mr(RBL@%7RuXM zeem91ACC7_T2Cc~;?cMye1kTnww`hu=*V8Qru7wvq0W866x7(dqB8(4^Cr0~*+1L> zCX$<`xMa=zZz@(w6PF_Tt=H^?Ry*r)ym!!9<*Rt55>I7CsjNc0NEP5t01$rzP~ru& z@VIGIRiU@ym&~278Q1<9f#updXWnehxQ@bR#<@`Z5^&XuJ0FUiVU!js_ChG~5udRy z%0zdX8MSed67-_6l>V9-o8uw_5FFzM#cqjV&N=9ng%(k73`sYaU2;&R*cw-B$@`MOMRCYuj_eg`wRARN8wGNf?cm zMy#n6jBG~NSQQKrEsQ`&tSc2~MFtU@rZ^T`A!PihlOS7LDZSFsA#Io&DZSZgtyUu&Q?j1`*=Fv_8Z9M<0tiEQT+&!c zTPr1(TLZg0WHh@o8mrqQ5H!P{4_(u~jgHw@$ShKZ5fz91T}sdOP>HWzJV#6E^ChZg z4p!l#oRmSm0T>w;?T&nicKhN@v;T;hLAQU#^wAQNVdg?8rAG+WNFt{ckYwmvLLy~I zTX1H^>4eCuNZpj-bl=Q4lMva8Njs%TW#id|$j^}jDI?e-WPL(pIKq=MhMt)j=M%Ir zn?*~q0X&FC)1NM>aVZ&xQ5q>i{8PrVjNaFvDJ6HpRWsv4LL>!kN*T{Q#u$l2E{9Oc z1m#9uB*K13nW)^Tk3^nF-=~x-c5@{1$BtkpF}AqZibSTNu_>1+c55WU$I&U5EB3BP zg}X4Az!N?xF9zAAuCxC8`6u=F$2XA+o)EmfUy)0a6Smw0XEIN;Rx-vAz>rvL~%FHm1S)3kFQ&*X%-iWf1 zuDKL`Q|#dOw=46;_>;xfn;CU+UD;#C@hHDBuIr1a*!Uky&1>~>T9{_b;Y2jT8J3Y8 zS^_?^X4w*akQw?FGP2v{NI%f*c&#Jb@9Lm+`bN8Sz6D^yrAi$9S3(y4L+_ z`f`=dJ~a0O%(`JVKGD2Ntn|E|!>m--8Gp0;Cbn^kvh#kU=oG4I-8(_lcvok5%mmP? zl6P52k6Y->yELM8{|oEeql{!V%I#6k^yS#ys*H>Wn1yuN`Zm(L*K$%ULO)%OOBxfb zJ0Im4+mw4tqw?D*uXW!-=spGA5rytk&oqd5B+6r)7w0T@M~KT%pA0cmIP;c!kXCfSoAUGIqO zRz5r#q7QxM;nVXcLo9|Y=f2z((AL-MoH}^`frkzaJg=^UNL~#P0?gdLOiq10%k?S! zl2MH=Gska%_4|sY8%M(`AA0r6##U0_^eU3!JXq93GIt;x(C?R;SPPFYvZha>HQmpe z+M_2`P4~0hsp*I8<^jM|O*>fAWU^AzgEYSkENbFbqW=s8#z@j7nOO}_Lb9r2%mw+< zB}vjH`s4x9DM=FGyJ2DA8aPaqGOD!J2i*x?pNxCkx$N5)Lpp8oF(*n;|?n9k=J|>9);#P|E(n%B!mN_pabSGLB zK^F};#PMl|C|dx2$iyz-+l4r?3umBq4c7MJVsr`hfy~hLD653v&=nxok+=@TqadV> z6p!F#r0GN1Mgq7y&qNWT$O&$^Uc+&CNahRr%JZHL5YwN8{UY)A5R>W*%8De8hv-dr z^xFvW?gg^?u3h$~_1Fi_+5U(i{4uo0LxjDR+3B&WNyIDILKSS^o| zJ^@_+H!^#`DEgHa$GVT9aKH-AzMX~F(8kdV5QI3Y4gxo(HAIZ`I5x@HI(_VEl+T8h z(Q`DTXB@*jl{z>Z(@VHz;KqiL-cun|j3X(zah#Bitrg?Yk9l#N@3mnyGvc*jNARYV zoX2}A{QCvuO9#>MF=FUh7%JmjO@VY6G>YTKe+z!-IlR3FbV3+v6ZI+j_=);t;}+P} z%EJ&2naseKV9yPfXA8v4`B0##Xiijd(wRoJMwN9icbR@~2o?WL`jA27nOkOVPwaRu zmoEGp!-x!@tZ&7rH9plT!lSnzz(ai>|QbBy#$5RmR)4f_QQ$=5$e1=9WR0MmvM(5C2T*~5jp&S29Q9`&W$ z??PG);KJwthHwY^Jz5DkC7YL3qOIfBMPZ+mHZF(PUGzVkf3XpNW6lG)N=I$Du zcX!6ts?oe}Fy`pIOS&HLggodXR{$Z0LZ9oC`{FFd6n!!xY*Z_MXr70Z>CaWDLAATu z@n?#j$Dy@E2~&_KmML7{D7?fG?*2I{*5|4y?FHWBYK#JX?r69x`xSjI6HM!VGmD>; zRYKp`$&q_fFc{qK>Q7%TRKBJk z93)hMrax0n3fo=%cV$8WeU?4nW+~8yxuCH5(e&px!(iG+@cBwvZVo*I2d2$OVXxVm zewds#Z6(=d3*pvru14BbiaE*kh#5tv+gZhsnqCc3Z?8)e88M#Yu46AgfgX@`04Rg8 z7li{POzm~H-$dUGMh&T=I+dI(%Bd2l*T5Gt@>Q_O^Few?y)`V3--WWF_v5V>a!M;> z@FTP0wHhTd^d$IYK!*Ma#3m9)K>VG=b0EF}F=Gp4XELtID497PL|+gksW6j=*HTn7 za|TK`qEsuXMA1sTZbk9c)hIT$&eBR)vK_C7S-L7(I_x}3@Hgr!1jYD3mx+o2;o^FhWT8Bm&H=E_CbjDt^b@XD)^=EZHerku~pr!10OpTo6E(c#Mk6b>}+0(|> z@-de}&T!bWQr>ABpX==U*~r*2(>QDuZ)_bk_9!YiNUN==o-U8`Hbbs7g>!-89|o_D zJqyXtAvvZu>%Z7w5*b^ICheTVMS{6AQNIEO6ZNUa2AyjGC;i#nb037rQM`;iBMr93 z^An0|oWeP~!9kEaa0;EIV7@V$f_yr8jZ--16(z_G_E`v>qhO)2h=NI2_OEdY=d=e0 zi`+l+lQPxLS(esrGVZj>UI?46||J{g#1{)vwKTricvLU(Z3|VBQI3$eqw#V8`_2*y|SJ(^Yfp z*%hN@``ul(-@gOSJ!Oy3QVsJVrDZdIi981|wwBH2{=0Ai0)dw?G_?C-O`FU8w>FoX z@6NLGZjC~9cLAYd3PyL{1fb5H;xZIhFeyfbPM~xscZ&l^aK~5zVnQ7x&{=d5CELIq z!)s7ic*uu(MoEZ^;wp$1SI=Ff8KogLM-`Xvf}HB3iy$p|QLIfmETx=qF_Y+dm`IfA zu{Chxxkj@a#O(czW;Z%!i=~G)$x{&hvf1q6G=x19FJp6PD-4W(24&-a$+sWjO)Ec- z$5+acCtQx$(7?V|If7}d(UaM{+b)F8D7=h$q0>+rdK=32GcapFya_^+s%JrDHO1zK zI%EK4)oiU)Ka|xMf*VE=tz-+{PvG?jNUGp1kycKFhzj0Prp-))r zdnkJt^$h(JhzLrwc^djNf^=v2S{^rPw-$^_nDSKB+qk*N5*c;pAw6DRAQKxrr2_RG+lP?6N%2T)RPx!GuhXayIdnMqvKOTvKm1bvnQ= zsJ#VM{hcg0v7Xj%H#t5orc+~a!(rSZ{7u~*C+{>lr91#$oZMpaQOOHnOAqM~zsuxP zn%WGPO5w*kZLe_>sxI!EbsxdjrK|AurJu zV({Q~8q--ZH}p@NYSAAxDHX-8MIRGB7JX^>dQ>foTQNi?<7FH+Tf;}S=sShcMZb_w z)M_Afobfnf4x}JI8Juwz1#>Nb z7G^b;I@VVqMOt}sjZ^tMPHE$Moh2AG zK6fx^lr@&NLV~JJaq3tN3{mOo0B~uuDjMJvAqIQJ0yiI%oKj~&FK=kHKHtGm=LKct zMyCjN>#uhlzt<^kbbK!`xbb5LfOvx{I_MN(b8!JhS{ZNClQERjkyOSb=1|_IcR_C8 zX7L)NiJ2=Op6ah7zhqlr=E}AJ3%r@f;oA%2$m~bB*HTdZ{|D5SyDkE^l1=&}bif7Hj>yR1(rkz!b_wIYpP-}Na*wn@ZkdM24beuqLAq)PKVUOnlm`Rwu{&zli{-Jtegu`P#{|Wr;iNVyr6ojh zxSAi9b8_c5jE6!Fekb@sCgoAMP{5@8p|u=kl9oGfni4o{f9xL=YE~Xb)mIi5w7@k?0EIdJrY)u$hh5X_%PF z)ZBnl?V5ZP72-9MiS_`C=p`Dr2ZcPHW&G6YgyNxTDEkHR!oHyP1Fa#t$Lf~@^eU9S zLa~V;J|b}`h!%im)I)6MJa9e0&0GRvJBigG-Xl>DLPtl;+y>%e5QY4Z={zdf$qF{> zKc=}$P&NYKjQun>GRmP{h0F1v9<+^Nzscdl2H3R;OXQ zTPAbK7gB@=TA078Q4}&cFDAe<-3&NMNSd+zsE(86P*YZGc5ezW;d!mO0R!q zl|g*`Zj@<-91TZ-oF?)cYcY_a4Jf+>o(?O#0h3k9biA*`>p@_=X?R*b`*;ijld4gy zR*|SfT1h>McH#9pq)X*+#&hzd=y}TT5PA1qz6yXiNG;8R8!uU((hWNJKD4xX2a$J) zpk$d%jYD1B*UQp5?+mbu1e;>sQX8k0A3;pwGzwCK-bPuR$q#ZK9`vfv6n%ICWe~2AKnR&Kfi>U=09C5Zs{maM zD-vGWVK;`ie6`4NX1Y}*rmz9g*bk!@<)=l0yX?Kn1|E$u8`i^~bkQUmp={jQy7aXL z6=+=C9Wwbb-u!ul<1nJf^~F>8xhv-Y8=$>-2o`BJ(bZiZnv3?#_h?*9hfGvVI7+KV1!YG+$a{cJ!qUUIZjp?vm5+T3)y7#q0s_< z?Q-$O~qS#R3)p*8DQIi8PnokCdlnh0YGg6k!YG|<;TH%pDukM=he)u+gHl4{!l)1Hn-MRkCR8Jf0a*K=AD7@ z=b-bQF-0|Pl8stbL#2_m)o6?$*tI;BtZCOB;EbTh>2#03>A_DRQv0K~44e;L}Z>GmpDW`kY$)wU3YBgMK03>GR9vFd!_A*p01L++_7|sA0v3r_fY~ zJ-t|^z!avy3_ z(~pm^<2EgY(4QgMkFkr}#0ld9*z(B`3z__2_Ie1zHCY$XD-A2ONwk4w4k1+ln+%cvQegDK1*>W#L?)dU)Dy=lDPkP|Aqw9U z$6AOap><6|DH=!G)+X%~3tT>$szc{#+CqIc7lpTV#^_KjvI#Zl7Y%aa^fu$v7iB6E z?|35-Wt~X;S;hi{$7&d4Z^9jwP-hs4n^3MIafXrD1-85h6{>`KUVQgPVwRwuNF0He zDx?0X8rwXhPC+CU{(pZYhGoMjW`U`k1$=?>ti3qdeTV=pKu2urP2yOZPD3oszUFO3O5ppVLP7K=(5Fdl{zX6Gh=sIJ= z-z4Jvx)#!dWzP|jBhx=XOBPKAh)qxWF%Hnw{{$S$w~lFyj8MX8eEnUClUaFD%AChBq@AHH3T4 zCAk?N$cB3f`3sWSLUv9EnR7V=!s+4V`W!U5#l!e$HhhErG79kwrNyQAWHY=%ZxGgM zakK;2mHLyyhFc7x@Tw>qY4JEs-x$?RZn1#qO;OfvaU0pyQ8u;3Pzv81Wz)2l=?H0f zjs7l7%eMY zx3SCtFQ6>tR_YF9>nyzsDo^=4qGb+J1sAd46eS8&L1z~541#%y6olKdKpI~t1#Q^? zdY1n#tlQUU=FlnHt4KJ2n?`c$z%RZ@SL%o154xs`GAjI*(`h&D)&L<5_<52mDzf z=PbXuS#@O#Eon52{tJ*wh;}@aW8TL;YGbv`>Wp1OWEEU$*^4B@+FpFS14-DjcO1&h z_V6tt^+VMs{h2T|725_p0n)w-%QgwyzVC~M7FjEbE^ux2{FBwxC?I@(L>OBb^g z7ir5!iq>p;!DRR|DzL6$keCb!^U*lVn!5$|<=ZRP{Lup8YqIdts#2UDX+yOIiZdcx z&~WQo#hF^dZ^5Qoi$4v)$N_}gy58~f-xOS;I4jbg+)~AbBd^lrG8N@WWCk5suDIj~ zPuEyC(4b0L`q$}6#KQcEgxKWQu+kP^b1e!O>9lzuB+#8br@%Y$(6ITaPRJZX9SA-u zf*0Mw#7Hoey}7`;`~el9gfu#gUl70ORTlM(3f&ait zqrfEQVqA2UQ%CFh-_Ph%GLq4U>L~DfU>QwEfgdF+C#E)Sh0O0cqT;M`(28fU<1Ch@ zM^6RQHY?#t<;QSiSrt8-B&rBKDEaWkx530&VGLwSk`)^ zL6pbY!JZB1dEq#U91nbc+9k5U6hG$^!i{NN- z)r&R!_*pkNe?8dlRd|x9SYvB)Z!jMUb{DYT*E-w_;Ihx4-V1nDqsrbqkA`DQ%#ap? zVJl}po4iq53$PD1LmO}^`;;n*vWOL>d%n$9exvJb0)NLbAL{yQ+#yIazL93kMwx2H zH`0vT$;*)cw+#8;g71xHnFibc0XdvVh&Q+@v>gI&p=N{)ws8QsJbrDWD{4?)w>9WT zH2^JVFPsROjOZlbeef9a7Q9cz7OoF&A~!~x(udE2)}cia_^ZSrs^|Gg-hvM7>-w~T zt>iCKu0@sl&rwf5IeAw+8Xo)AX@ej6raTFQ$T~%u}BU_9t6y0 z`FXq&VOwD*IX;Q?pM`iJ2ifL0>v1R-6fofUDg*O`(c-Uqev3NvHrO+DlMiu1LT3+W zx-FlN6q6}y4SD3h;+_YWRo4l&!qR!DElWOx`l-z*QJxI97cN*dcxR22d-cq8>8k=Tr-Na5|f+tPPqq$%H~K2v zR7q>*Noy)m#@5V})@&h%)+p{pa6Nbm)2Nap{DS;?8diLGq|>?u(af5zTIaA8IW?#n zvlYJ{$wtBJoGmO`ueE|7YzQYbnU8b!5m=}3yOPqR>1ZvEXHUsMtCU28vc_*gu&5T+ zjwx$1Jl5(EoHNRrSgK&$YQ+p7t?zEM!CEUmGcNqO+D>ST&adIgRAjB?R5li6{hkzA zB2{4f?}RM!lzYB{Dd`BsRR%x56dU|m+ikSd4$lxJ##b4f1fN4$uXaq@t7LBf7<`Y- zY2arV9Loupg6EBeF;kX^BJ!MrjjLsmxR$(R)ht6+U+{Ug$moAzjAYHCVx<_;=k&N0 zRU30f>@N_@;#Ys8JU$;B%JGnXJ5E92Wh^v!06@mWH;~nG3Q($s!xI1);`JzD~DHK`5jjoCaE;mX9zxW*V#2tIif ze9#JdGccV@$wx+%KL(ruNPhsi<}`xniyc-;D={I+|3{gZ-C5V|KwhCfdA2Q^M$I+#{z0eu~ zEfxF`BDV{2oP$T2T)2J@E@#V~j4lJ!8p4v8qdbASWH%(Z(-o{pCPhTdxh35?Z)zyE@G|mjpENY&_inaQVQ(hTNqx8$2#K~*}lIW$3D|*)H0%B~Ftm}_#ncpbFIl;xd63S2K+zh_dYIjIo=jCG zT-ezQ4rUkQx#@pX^AU>T{QDqmbgV~tBW`ZpyEa2^njRxo0?`b)YZ7)X*o5wwNz$z! zm7~FO+iE@GzHPO3{{+rCx2@KX-M6jQPolT2k(6}Q{!{K@coX;lec7Y9R4wB<#_mbp zZS7n(cRckZNuihErwSPa@DGeE-7W%wNZ@UY3mq)D`9J?&hOK; zm`uTCl32Kx9w|Q%usq6IS`U6@!&;&9S7V+)E%Eu#>5cmfYo$!t|An&NxW9<9?~`4) zpwi*>5;*!0gSJXs$p+sW=Z0?7N5J54qJL*%-y}zNE+apV9iaFc@_(a$t3`VY`2Lw_ zVNMa=LMAtJ{G~RImvz|LR!AvFckVJF8#hOoOtCrQJg|ZDfRrrK8$%%Oi>tTGm|k)BwWI!cx!m zgtr+wCn5e!{PSqA-ZnM5vTT#}`Yg(NiJff*?WC1DE6p}pzl*`ErR82(cIT0orR6?Z zuYX8h*6Z!E5FY}ccNot9xxKTr>`?3V<#{JjJcGru#_Sh)tSM?KQLI^p&@H={9l>Bv zg0!W)vNl{mBQ=y6j~h2ZOV);qVNJ^}L}@u*_oKMCd|Tv~QguGj zp*$eG59kT%zHBs5cQ(q3fex7h;wp+=Y6DhFNN$#p&DISXI87rD7#C=S>&7DL<{pyd zX;NSgAgQ!b3o-c^Zy37y19Zx0-blV7oiau`~3g?BiV7J~4``A0yKN!giq5veET0Yevgy!eznT<9VX8WcTdHCwb__DU)!zg7OlVcs$h=rlQwXR)Mo z93GfNsp}l7WXxTR-ysoYARd59Joi(hE~kyoXcoT+C(Y`tnk9~P7WYTrfG;UsgdH3t zZon6m6gh4IO4FsS;})P)kz=aZ(u-vXX&3#8vA$nz^W>8hso{Rv+KuKm?ta$(C%44A@<= z7ev>8%|4tRbti<7h&!{J+?nliXHJtll}+v_QrxL(bZ3FdfGT&c6%)#x>&&f~yHN2z z82+2074LK^zNx9=n_Ly&EEOx)*NE$5WS&_o4VC!RHaVn7aj34*p$)G1Y;?s((TvX~ zi4S(-UFh0=jf@% zAB1qw0;>|IjatSrn~KNqng_kI>meC3vtMh8$!sg=g6%lekC&mD2Z0aaPqG!m(vZhM zTm@o;BQgGIlw6OJOD02}pDRUIr-?P-qcp0cwS9PCwV05G>69M*NGO>m4qKw0?!4j<965~DX;^(xA)hWL;}AeNBW z4`Kre{`Apy5T!@y*jwO!3U2%dAdZnZ3*xUJa*x2KyQcnU5xSh|D8)CW@JzG}6>&4t z=uCh6huAsg<4p;0W5K&rmk1V7O}dA9vq=m{?&Kc!>ojdBXTD`HTD$}PykzpDh9Mm> z<$et(hqMBbI0?DqNR01>l5~`e=XZqrlPCmn8D&<(NLH04Ya=;HZB3ti^OOUBS}mGF@?l*5X(ShpMc#e*!=^Hj;})LgM^oW*h^wHi04Vv zgLt3BHW21y#4erQY|{2XQNk1r90R@)8CjrUR|JXNp)pxeXVWckt@II8;7uKr_T!a< z`H~L<-jMA^J5)DfGm3ZOg*yu4xJ=1CQJlLSML4}7TVOoT6I->km3!0&nWPUwF5`0; z&d&Ugiwa>!{~R^;Tic2NKen$znLLy);gge{;QDRGf@+jL0Mj3mB;*6 zzzzJ$!WT#cW3Em|`M)UfvF*67j<0j+>mn$KuXE|^o#3WYQb*|JBMrXspv@Fi&+|4o zVXNPRS=hKvryT$9rM*znA8Isv9b0(~fSzbnmCxJ>V`0L-b=vMWaj2 zrs!7aT{^<(Pjo61;(uB7EDgVq=|uP^%!ZF>7(-_d%X2ECwfu~=Oa*u4;^p|F&FdPp zr!i+|!Bj0?#=Z@ZAK|c)x6eR+Vl_Z_aHlbEsUE@0IQBHP99Hu84Qdf|YxO@4GyT(1 ziXAh3xk~>VmI~u7X-^T#`Cn`?{PEqK=Dfw`d<<(-i8X~{l72nrAmgOYV*bxtNmn8a z#f^F=8KS``yQCiA2$aJUN&Lw>X-K;$D;@f$)ILrBEd*r$d`fM`nJga1^#4${ zY~wKP{8gr%v9Gar6RhHgD1k`-%Vel=10@^eWI3lihEEKP*7E5Tn>-3lp01BVz1DtR z?mp-^&uq=3^N;jU8$y6|{%(}@q95St$EV=4wfR4W&+!Nr&uLf}d#Dt9?8Xk?;1~VgQr5JL?-_85F zL#GO~XSkh*fV*$A%b~g#FMj!T{N1qC`6|r6l_&|B+y--3(KIs;WdgCbBX}7RJa$3` zIlOzAPNaaRqGKp1L(FQRGX7yyRD_Dg{}jX=5IJE$>Os)}2tZR-{!A&Am0wDoCo=2d z<0!!zpU9}kEAp`iP%Sqb^?hFxw23>Q$XQkGSVN}z5BP>Z*8y?MVSb0q$(ZMdKhJ_b zs-S`e_cD3<@`#0636gli;}jg5xdS!EYs3Eu0c*uEl!VM`YRvA4f>nH87&5C+a5d!c zt-?Wg*Y&G;KrrGQ5Y$`i-I7ug%%o09t@SoK?;4CuEg@kTim+-&NoGhp%}g4cFeG7I z3e2YHW>P`|*pLo3E>SbXWX7cwV5N!&OVKDBZm&0q;-h3oRMT2UZ9)*wZu`I{wR%Lx zrKBg&ZY1OqPRw^PNeMayaNOFdiN}@Du-2{MJk7P~uJMx6M;{((vdcCWwY+a+gxdJg zcE=Y3?QYvy@0&t_ii9f>x^^M0Z%SGMHbx{UkeYyKwLv8v@=<~ZrMwX6qyXAXOVFpp zk?2eUi(u44_%u9H7-0|mZ^W4y67i-kCEL#10V?jur&Ol{IyfC5kw@H}4nWk|GmUX4 z@&6QgB)I8LaI0wygqTst@f4NCl9mdovS z&fsX@R_`H00HLMb4&+r6I=aVXr|wADG&Pbs1BkX6!5tuaT@aK;|I-_rBQD^hc4u@k zMqQ)LiB1X`?nwc^BIbxvqI5i{v%Az$EVLV$tk=P2-}?Hu81HryQ9)Dc84b=4)Qj2pr4%+Zd^qobNp zm&Y`@%qWd@X4_(y7|O>rvDjrbO%A0lb@)-{@&hyec(xdO8?+bG3AUuSq2Wf$ts`Nv zTov9uvL$0Psgc9|#`i?USz#`BMFmDCyG1?W!;O~jGBwqWHTE*yxWd(+Fpnb`&5Ss4 zyfWHy84AUk9xOq>AuZs_k-%i|2Sg3WX$*{g*>J^1`msW3>h-I+H5^@7WYBSY2dQlO1{Im3@6NUcB;5)u<437oKP6gJNHZJQWk?c8fY zd$ks%HmxBY)T+|4(P3#@CwKp;R7i^^u(;H@X)fai5Q|JxKRP?YF3|xcQ&zg$pl4uQ z++>&YO;;BS?=zY@lxU{A8jqQ7QN8Ho)7{0wOpmCUD4OMBf%a^&sxm7&2ls-JXb-dU z-q4C}oylf5%~d&#a|{PaAJ<%z+lb&ZPiF?~+bkH)=;#-%k)s1u^jAX)Pqv$DL`U5K z?@nZ3)W@iSK`s^zEof@!cZTI9%1^pK*gey-V2HE26e@Qx(qxbib&XNUnqlq&tU=Kz z(-%};V-azt zn&@OI|2w$$6S+72S5hMGP<1%Mhi!W9(%eOr*X1l*ytsN!)$9d}a+fZdlY7nb1=W?g zefs3ipEHNAocun6a;q0y0}|&t7S@Q$>_wGJ=B}t(x?pZqRH4a8&62tE7Oc!&x@zf? z#fz8aE?>GNcfq1L)ypgA;z+pI>DOlt>vxzcGRqe&Sh}pTPZd7j!e7YX|B7rr&_XxA zyjd?ZyO-28)c>}$biCQZXwdcb=gQ0$>q_g(O3TKL|IG&Dpx)k0CSckJ%$Dm8)|&GU zn0f2U4wgRi@kC>vo-(eqEIer9!3k#3x^d<^Dc zsUNeKF8oh@;BfknZNQJ5`EwV|U9tc}`Tue3b4GCb1%q|Pf<=`%HFGguW$X%Dxgt8S z7gpv(C6+F)sad>anHtv7GKl5in440azpQFWPUYNrvzJ$Ur23#Pn#P;}6tc+1tCy{+ znY$D;9@U{7|LG}c+*i~rUbzm0v^95z%4#chBXc^|a+B)+WYjyK={NHdaUKfWU`&5f{Pn$2TF^;y> zpB^`U?S}Q{k5-hJf7T9|b>VdsTeH#pH%iupOMt91TYhHVP=bjdYQbE5z-&`uE;?YQ zl$Z1OKZr;D#$i{y| z_tof4QBia30dsJPIp%;_=s5nxhBA1Vf55)gJiP`g`nt0EluhAz|SkCCT`M}?Pf zG84mv;pH1j$89Vfx9J&NOP@CF60_zrG!Q-Vl77H!FwlyIn-QcozbiGLHcHGHCFVnG zO3bp7Tg^fEEp~IFa>6Z;jYM|GnXE7+ew zKCUAsZ-L19%*bqupqXb@uQTs8511e0dY}1Ooe&S0C8g#^DA@s`E__2>c$nFB-GGs1ir(&F`{#ijg* zRRhVf;h@>o$kNT3>&z@fr*hr@VejqZv%0Fh?{noO;VO-7TGB!*ca3dSRIDkDn%Zbn z8z65$nm5vxF$qZ^v4OXzrEL9`)%#DU#^quN}F@VM*nN~ob|tv zKIDJlo+1Bx=?DA+&?DfBhMwFslI$Y zD@*p@pZu(U%Q{$olEwQ4WA#`l>Cq6=SmlE z8ZI00kFCReG7pITA?%*aa-z!p&t{gFA@`22%s6-djEaiMP06(juNZzP`HrV6`G-M& zx}xHtO=escJy5~uR4hUo11`;>iVr5=K|OOSHYNKvGaAnUXZ#UG=e~B%h>Vq1KA2oH zMh+9lKPm*Viv2ki6-ZY;;C~$JoJeRkr}?AzX^N-$|IYiyQ2DpCGW}DU+#qSnqe>&C zWjUpb4n9Ca!v83<^8M@2`sWz?N3aFaUnb77y(>sOcW?66`N`iruz>B}Uk?oVznfO> zKQ>S{a_R{l)#wkIFjJUr}Yoh{q65u5X0F*I_HTI@?6NKf~lS*t1faI!q) zf0+>fk^2;XGErXfHGf_C?It{UA7=h1#$lL=dm&L?Ry~>g`(!_TF_<$<2l4MS8rdrz zoIEGkSJoiBImt_^tjrc7G{MQ}uk7lS2&#fJztPhwv zJZ{*UqRS+eyj zjKyA@IH#e+mv0_il>F6$n-F|x`VfM{YtGUZ{E^n1-`>ZNCO7z3nM_%7ELr7#d->If ze>#h~aIEhvc^=rPg8qp6-E*-D`$@0x|IRu9f1V9hnv6`?}W`3*KA>P#i7)*g7CB_#P%!*yaM3Sn9=lclKw8n|50sUa`PZ=S zb(K?@%@q5k4MSAns85T_W(*Ir&Qa-P|G~1wX?a)CwyTEAu3UKV*=Nro`=JduWi`@& zlD+7g5BLu!aPDbEITdB4m8FZme8n06b>-E5UHRrsNKdXmi{?i&$~RHLXW2ei`d1Gn z*ZCboX?ZzkayH}NW?AJ3e^0_j^`F>W-gKaXrW{<4cK=$&9Se=bU``b2}lZk(t_3Nsk z;SqOq85yo9TRhCZddY*>hyN!IW}oDgaS?yV?X&e{&!~SB!_R6VnmNMpDcQS-JDNRy z-%v&JbIG6GO9c~4^bhOa6KqD$J!9ld&Lms!CG#sNpltr4%8GNFCbd3jBUm|1 zzfUBX08@r0ul)8(e`z@jweMfJM`QE8^zuyyF`nWF{HO0d;Qw_RBg2>v*)f08|LMJF z4qp(tQUw0}XKkO7>wEV^4f(WU)Va-+_wi z#fy`_oImV8?dz!Y_y)G_eFyw!eMbAE8x9;yu1OX?=l_BJ{ve~o=p_5km9ekps?fhH zffw?J{HHe@sPNzKv+8q3df3qN;e}}hGn4Ne_Gg`CoWH7r*4Nm|el?Nc?6a2>UG-VN zV92ixY(btp0i_F=Hm?o9oLL5o070NE};#U;$t+o9AnU|9*Wr+c;wW*@%B> zy+prl_ygEDkd5ZKG7`6%#HZH}RWa3{R7vkQG3U@kjFFJ$!FxcP0I;5&wlL>0^ff)%u}>&z&nfH>QI8%MPUF%{0w6o6djd%ZJkZ-S?b5=g%DS z+s&-89nv@U1lBS9;HC?@%`4j)dpp** zd5w)d`TFMu{^@V+ShK3DwY8(bTe!F`_qJRv(|O&yOgB_sXV>bLx#pk#)w-u@Yt7|O zi-kG>+{yQNz3tqe<%V$*C|Sx{-nIHKyAE_WtE)P?d)qqS#D1WE;7z)|@9JoE*ZPf( zt*Y^R%|ADIbtSfbEnTa+JKF|wS9EqY_i=l+zRgq{=^J8oSB-2#TRU!qvmMdiv4Sk7 z?h7-@SZv9~HFF_};#r{uWcF>De2JYFtv)NdGo+qqnB5M?It%+Snbi z?H!H%y=^^SUwcQdq;&76q}vwU+Su7;)B0B<(%RV5>nXN+{=&v33l`MOuk}{9tyQd5 zT3Xdev5h^=t5>!KQ3G8)0oUBhA6f@$`&V;u$?bEiCsj4K*3U0-3cET@F^!EY`nlx{ z_4cn$)x3()>h&7y%oSwg!nVGJ)m8j8d1D`c;_G5-`ntLs7p(R=R`;%M)Sp52EpP61 zRa2+*v@rs0J=|}*j-d^GovuNv!%kY&-x*Y9b(a&RuX_8Or~&<6e+!1ba#eHh-GO*# zM_+!#-Vm|#BGwHPvISA>TO#(Y5&O1?EsWTkJQdsB)!Aw9XB+kPF+pc9Dyyn#Y;IlC zyt<{00c|M^yQiwHr?-nM;Euj^>Lq?xi9NQ*mtVGZ_c4hYTRQdI5RHv@xAm-U>!fE_ zwe>V&T|uAU+9D~haXC{axJ+(b(bK%jb#QloZ+jzO{?*pfNBMjxCS`Tiw>2)fwf5G^ z#;Vd=Yv#{uoL^nNq}uE4wGN_}{_AV*V`Tf9dsepfHMXp1_WIX0GJ<{0ot@4;8*w1g zw0H@|cx%m)#U2^?t3qop8rcr!XGcp%Ut@Qd8RD?kSc+@F(ypFX*Gm|r%4+Og5lYs` zrs|tJ`@^nuLR~9X^oABQ(AvhQdbawVy{*lvN^{GA*Vr#hG@TZztZwe;ZJX~p*tVhc z*2N{2^Q#*dEU8;u5=xfIE*YCf8FjzDXvo#Nrn@$Vs@r<|SG6^E^)yzuaRblq(>FHi zq{LNxW0yv}59@Dj8*uGp6#BY)@Wj!?VM+%bhb8c>>b4Wb$ISJHn7!T*GuRtq7R$Hj zMtNg4dqd1uGLD9qd4RYkxEXC2gH;eX(H- z8$B=9dGlhOH!s$C^J1OH8+uXRSm(`)bsk^i8Og*tZ{AIO&=WI+m|fpyoj4Y;vJv}@ zW^i{$D;+8`*O!#{Hm_}5A1S{vR{0xmU_vt<#%ap6n2vQT1MA0f&8&_#ddqckS#OQ` zJZXXP04{a`#y6i&xcL}r^~wdfbmKC5+ZZM@^-$HKdCd&+x_T&w1Xqlf8m5`Xi>Bg= zozj}Mnz#-v=;~={YYoh~svQSE&+Be!wEn~64@huY@*=dNxw8*9(&Buxow=H?W_4TD zjQ3OL=m+O)pVLkAJTr~pw95AeHl**Oup)9c#?!HE#N1rCEHMap$r`G|qObJ`zs8K! z&LEnCWmRQ-`sT3?_3~k#G^_DFZL8W=EvNc&iJ@HvGniWT@!Kt|p-zu=1wpkm8`R`j zf6~{z?LEz*yqOl(xiXr8Af7d97jeCP=F`JiBpa;N9bp|~3yaCAddK37;itqEs7$j^ z*oHN(V3VMYK;2@q6)@HA8}NFAVaCrdSW-Q|Y~kX@`3<+tuc|FuvbgcKTk95<)_NV? zjmz7}-=-B}wP)O3+v=7s`o;N^pqFWFSyj*s2GbcktZaR~9A!A>Zit-kHO)R5rE!du#*m8HHthc|jZTSuJ3d4eMY3#VH*Rw^(Rua>aUYjGTSm?&x zrcFc9!4wy5wC;`4&0@q1(0&r@?(Cw8BJ(U^D;ji4xD++sX4ZPGw5`}?$BK2%AUxv~ zBdf)N^^-wP!@}x!t;5H#Mw$hA{$lOq8f$8Ay{*E=+_q$KZQ0_w`Hb$;G8VWM9X-9F z^*CD&4cz$yYaW`mnvm^gSqruyI1@V5jh5-Mpo4nb-6jn?x06kl!0^hIX|LVeL9-NN z2BpnTHOlN^Q>U%03cRgseq$?1(L^a}Ti(C2w5#iGb>9knOG|H$EAsA+Zg%jkZH;WB zR;~_5UA6A+=~{_1RHjv}e4#mS(ipf)tWR^)ZfiovV)jC26XCJY zH1<+jceC@_ZSQrT_`7X}HQ_D}8J>38Xv0wAGtu+|-|@g+Z$)SG%HE(0nZ2vD=MJ5x zs)8%vbkQhnJ^ib_mj0d|xlD{t+j#n;Ip}a(YIxpQImN9mtX3J)hfBxSdbM9QGwX)l zfcA%7Q>(>a`(V7LmK`*~g$rM3am~wvyz?CGcP&}Y+za)wAmebP1M7pX>%}6lMC-{h zI;|Xb#+$QaP*YU!wilhKql8(kqB9blYf#L`dOE*0u3#BmE>{!ttXc<`qi?m8t#V6& z97M2#HGNSKw4IYjV-( z*r|*cpKMjbV}f4wLqRLn3o()>?&C@e?i&e`6ZrC8+MMdxw0Kvwiwr2S=lJB zJHMgUR%*&LY+T#X*Up(OJO`Uap7~&_U{SwjobxzAij09d*t50|BYc#vLshz1h;996dtZGbzIO-2Jk8GK2Gz)hB>bqBWt#vJB_&D3p z7B_~G&4peRLkf|1$Om+Ho$J+Me)j`Wmy`HsHq(**_-!nnKO>Y;iOhF4R&#CRJ9H+DoV^!k^t!_hl+ zw*{w~e(geHr`oE8WsTe( z@otR7yKxb(DX6DvXJr+CGxY~ppZLKSA?Z!Krv#t}u;w!m3 z?dQ6@rn{{L_u5jzPA8mrjTy4&iD*)V{L#NYy)oc*!P*u8skD) z?$nJ5YAu*@?W-PgKEicI*xMXy%|>0~OTCuB>*e9KR-aCjKJJ3vLc)L}20CqyFd)wMp2RFIBUN`H%?(#V> zvheU4d7Ir9VEx+7+TCj~5zLx|1L3ls%eEe))*egErw!WYyiBfOpt&wF=PK0)51~6wW6c5t#^GOVy=c&s1mvSH?`O9SaD`Qr7f4O2jzA5@<|l1YZd$Dp5}G5>ZN+Z z+;Hje;i-YNMK4N2+%ZF$zKKj6|f3-a-1|4Mvm$vEz;aaqc z>kL-NaCc=eJ0hLOC1*ePSfACIzw8ZPxqTn?mYqRuK>iBr9EM{!YKsrBChUv1kRo!k2`k(#^4Nz6a{5f-( zY2cXyZ?JRL5Kiri{?%?DZW_i1hpl!SZcgfEt zCi;skCpH9u&rN)-41g{92sG77LTfK%nMJ==jbXTvL|OI{l;NL z?Fj53b;g?c8hkG2=5&g;vOb!z>*VH5%hnV}&quc%DaM`BNa}}CnZ1w()J_jGAf}3r za}K$*xik9MO&=MA-V>`@P%=N<)R{Czn2#oPOBu977e&^&=ncL(giNpYvGlsf(#2me z_?-Vt`fGNIZ{klv%<_$wNhEp)my!n0LAV2EEhp!Pt zPyJ)*OCL)YAJ!w&)?==zhfNnB)`N8MXH30py7==3QxDR`Ux=lP&*CqEOgl&yUu>|= zFFtGs>Ea7ayKK7nupOj_jey|`K*M&Z4e@%vd_5aXyI;PZHeL0c6|3h<)ywv`m5_TlQj$yUqnCVaK26^$P97bOCoMY-~?JBCL#jaj- zqgOykc=aMD4BMdE=x-{C71@j8gxBEuj@UEAsH=!|Jw~h>RAN=W{<@1;S2V0fO}&Ev z$>vc7G++sDsY+dDN?od=)Xl`s4mB;6CYzn_VY3f^;$`Mf!mCyH?ja<+JEW=BXsQ(% zG&Q|LN@Z8bip)Y=rq}1K_wtN+SZLkDX&iDXkp$lf=}mv(g{wm??Idh5GD}60$k4;C3@JWkQtL&eA=ZCQM0J|f zS{ch`%Sz1=%Q`jVz+)zAsmMvg)^u?sF4WmC?8mBqLzwiV#S)Y6(~IzjL1>Lh6T<67MiH)Vn~%?>!fCfWnIlS zhfzzFvd5&}A&rMD>jb4{#6;DLD4!aa@u*&o=%b zoB>f3Ukqv=d73dhgGD5fL7B0cBndnH{>o*lBC5}1S|)PFu%Xx43p{F~?h>(i!%;0I zs@A05(FEzXtkjHK))lfFxX(n@sAfkjD~)n`*rkY79pnL}{fFY)aL+wGV5-LZ7>v&@Ltbn(j!w#%~k)>yju(O9~8 zTXmZsb>Wi(=jtauEQjrpc-g*77a!`0ZJ)A!(Q;=}Plzs938mM-2-M)H#`ev3)B`Y75w%pKDo_zQJQIwCBL zs?Aoz){DrjV?IWCMhWbJT=&5CA-Kf|hI2QG&>SOZ_CRVgYFyLV?d&J!ka3sQS!B;P zMOM4MK-P5wviT&c)x^5S6RSQ@TZt9fVJc9oiL}SCq0>-Zv|VED5@|AQO*=$G!_*Yn zXV^MbE5}r8skVJ1hOLXLRTEXKPSsN9qQUhsMQkVLf{Cryp2*JcI+4IVP=a}O@b57K z{jZ+hZ}K$QH1;V#6`;*f6;!R&W=J~aH)7k>&E!$fDmk7_S!5hiu`MWHyemR^wh^=k zTF3TC{4N3=Dx&tgB&lg9xb2d7+nmtL&L)fcl>NgXL|q1}CRo966)Psy3Wg(88AjE@ znMaJ33Nto^QK5U*a21#_sufX{Q ztZLM-VOyfq2BmH{sbRB5QI%t&?h=vHNLjxnG0RBQh)7}@EBus=-(F;nno7M}q|%6o zGbal;*F@bR(rQ?~F4#W1$*|AlT{Z?eVp*x#X9Sly!E|7@iKD}k`vWkmWhs3s}n!D;fv&wMJcExQbZkrJeJ8L^|&(tVMXAy9JB87$xM+Rh4 zHOZsoa4fS)&LO0EJ%%bb{6-5_4fmlh%jNG*3kYf6BZiJxK36p0$zz|n#Pt$rh)5qn z%4&CtlQ0P{maU7+*2QE)Lx}X&$7SndvSEKzQB0>Psy-_9MX70g>$OW3?`jq0u64<= zI;#oW2kMGoOSV>bvu=F!sM(I zaXF*0I!5dTBTy|Ofr~Vl^YR#kYn^^c{g)L`zF7n{Q*>KW)9{gT!w4wBJvj(e5@@H$ zAjt`DxrijEwoI~BMz&65sbOnHMohM55tl7$)*u4>J{!eyeSySgBi!U_u!p3t5~#sA zz*#0L?1~fQ`JYv}0Y&Wu^_b{( z%jb&*yerphC9a!5`$aYqe3s^&VkA4YGX{y-LWnK0yMg-&Dok{X`PQ^Y3Pl4xENma? z6?{z}g^4r}tbTFJY=X#Om>_P%CWuJk)EY%9>*6Zwc19}e;wtNQMk?##Dx-0WRMtC{ z39l*AS1)~?rczBJuD10t)%8+++{%dj%&@g0owNacBCa|0p}&mEUK*9%5|zEwwI$)T zL=9Q0(ngHl77?d+=}YJhy9uun=?(ixzDCMSeN6{77`@BgAjT>XkBarj0C_b?^*hB$ z8|E?rIc3=#6zY3T$g-snH6dnYQK_L{h@z&{Emjc~Z7bqx8daz!s!+`& zau-b9YNEQ;M0Kl)>Q)ogEnM>3$r>xQFDzA@N~9gGVBhQ65DtpkxPzdnBYOUFvo0J@ z6QiI6_iRUClEB;%ndD2?6JDE$$1f7zdMaFHc$b^j* zIb&l*F4$O+i}@uYN}C0Fon=L4U1q8yl55y%kpkL4B}EDiTP@OOV>d%~Syn{tjqN_8 z=GLjXwl^M4e{pZrE7>++xyW}+Rcl3NoBAymu~n@VIb{l3E+VZ{4J0adsr2qZ-uE6I zzgNs|f_84~T+VG>;1PH1=u zIwgzdBb4w~i{zTR*NAK|>}vJmAeoHeDD6NcZyNYq_=6~wgf-;y))7i z&Z_emRF>(&rdg0&%N9b4En5nyvTOsS$+82GLCbD~?6B+zeXxaqyUU{sju2o)juI~R z-p^j)QSaL6#fjO9n6T+0rwm&ya@xjhYnlbIz1pO%9JR6Wu56$IY2Krytm}-&0B1@fU13Imu>Ufl@MVm!byNfw( zg>6=Z>Pot+@|5)Lq^SXIV3BF8pZM75ui?%J`R z<{maJ4|jp*fwJn@&B28*s=;OSkg!tGsh_AZld(zU5Mj!QDk5el$5Ydt>c3P@3Ie-w zSv7LW85-0_3_W>;CdebZlVTL&ZZ{plIRxCU$O)3^ZV^dN^B%3rOg=F?bmXtXyanmcm>hL#*pDphGAnf}!4@gb%GQYN4HKfAHBvAUCOAD3wcS^( z-y-jxT8AjLDN1c}d8O?S1T`R?j2BPMoDH1&a#5j@El6x7T;$#VSeEs;f;&vc8j)R7 zQw4Y1R1uj?EU&YoELqWYPNS=_3j1?IFB?2hkb#S~UupO`q5<#Jd1pwUNjx?n(qz~s z5lPCDYeTD#Wa}iGXJng2oNQ$EMa1eysbii)QMD#2>^kKeAgHFIn+eR(ChB({=Rjs#R;1XlZ6Xzh zt<|rDb{n=@WUY-IfDGDLkrRe(6Pd8FB9k^&!9Y+$2+3XNa2& zWJF&GWC}6$A_6jo78`!kMp4Zv<<&3gnqQ|!M)a_W-?UNmh~fJT{ZSBq8hR#(7uA$f zecaTN&SFflf}nEUGn=u@CorAz$fBx=MXJykZmozirjzMa;VN^IET>JjrIQd@LG0tC zT%Zgf7A3p4Gq|M_ZG%R6i>rku*CB$|3(;k-4we`(3h{+x9D$Pr>M2r1GFOx$lAO94 zN;aKeZ)JrOx!AC^BDE%4lZeX}EsVtyFtXJm=MCE;a>2%mzXq+*Yh4G z;KW3>5PWYqxl_zR8-Ez`Tg#q-%rpwZP1z_>l8|c=og{D@B$AHgCEgHc-ytvmdOjDt za>h=@Sq-62JpU@rj)-4`*pQcb?RDupm0MC5dBgl?qP*bA4V%*(HK*C7mXd0_py|a? zp_G0kx0S%ffrv7&B|UGxd0yH2h}dA#tG7T-S=K3hiKsnD>?f!b4ndEb95pV7l2wS3 zU0gR%e5AsUWiqI&fNfPRC)#HqjY;y&TlB_AA^SK&s zr|qNRp?oY#FNvj>xcsH0s~4!K$T9*qbcvlVT}1}^i(~nVUHaTyJL!CHaBG&EX$Cln zF(d*FC7Q884Z|9oj?#-`>BTO;CQx8AE=npoO`{(%bj!7>^&>~K#3;laS382AB+x>U z5t2E-ib!&*jjU}RfFoNVN+B)i?n){Ar-*=7+Z8(nITB5=ycE_ZD>0{oeY zs-A#6XIYmj6*~xOi0I+#ObbtCiBX8Ra61C02((aSlw@wpL?k)2g^_HXWXFwclZcaz zTDT8^{YGH9tCynonWz>Qb)KjjO;okW2E(ot*=%D)w%J&hrvO-KQ(GbTSk|TH0IkM4 z7bW2;0w?0}-ksv^BCx)QNQF&^iz_zaHMuA??>IpnC+fY%^yoyE7=?I`9z$SOp6OAM zNy9daNOEeAMzVF1J#S>2M4W8YqXop?Yy_%Bx(&N>5VGB}BKr&*I)G(BD_AWe;e@wB z&Ky&tqqD{26XG?>L12(TjYRgpPHeNt zQG%_6IQ^D02_jN4wRVTddCVxOJ^?vr*$a>vCR_C^$ZeM04Ecm*sl0iLfO||-lZY+& z(NkTaZ!P(A0;=yfjD~6vX^4F+>{=5ua!#2B4 zRjQ3@a#7N{m!P(ZX1y_Jw3r-1ywST6I6HroaPX9>uJb`f#*@_6)gd&ohTD3^F zPO@8!>90)V0QJu$3 z95W88S2Wo@A2y7@lo^LWk~sQYWSe2zL?k)2&-aJ2b&}m`WLJnd*{IJW*?P(DHnL43 zPB!ZE3+UCW+MLovB*Y0LxzkDWN1%!N>yqKRD)~Yqzg(o$$lo8GX=tF=XVRNR?jh*- zB)WmXekHL}%q~J~y{!dGCg$2z*KvY+OtjE9e6DD~yIwbcWOK}9uNBEf#CD%J`^svq zi1JPCSH+YPREp?+%jb#)d{{~eamxsdmxz+5DwDt`jX<5q?m(b!r#OknK9&$XOi;n1 zIT?m86b<;W;6tRBq?>|8stC4VaSb*>q&rLy_pdfVL<*-?RVqu3K%Iybal98eh$|(sM3s_m1nNby3|lSIWMf5E8n#xX-LOp}w(M$=9VWJ3 zWS3#9MfTWOk$pB+WX#5j9I~+@wkzsg?eP?Xb{V!wWDmib zp15rC(PEKYqi=A{PBGFq)j*v_-WR-Rr*tkMpk73J@lqGblZ(^qyTgO_dI7mSC807ngtv&&H&a%4in}%xoNj05o*#bz7Wosd}+|ZP^6Sd2v z){15~MiE3z38`cp)bQ}s&LGXixY z1BPuCak9}&mFzSlP%pBkuWn`C&Tu1P|H3K`vxQtQTqKx&*xZPxI5^=Io z+a?fr!4wh>WY`N1qeg2@Hc~el$(qfOQOmwuCcVGQHe+1*jb!V~N$xR{%_4gZTPKcs7>Q;z-$1=PW+e%(#Vsg0*g4?D>sUJ@g)a#TpOlA0dWbq|eBPHBsu#CbeE zHFw<54JKdBC}hmCdL!@!%Qm3GmKClTdQo+&No^MSkYTGuc9>$r@hBlm1>q+}h7H@W z1ER8sjf!lDifo9A3`a)U_Yl}Pmh6MtdRB|rK7F*rjmaG9P-N;+T?(l(Y^_Vx*>R># zby3|YvGoaib9YdL+4nj*RjbuxjpTs)2^v$;BfRy-V4pIKKzy+GAu#d^wYyeilwe0# zoPDjaRz&%x4!v@oFmE{4i8z7Cok`#{fi+y@5E`&j5hojs{`h}GR?1eI7xC&{FDOdY zm+`n}&?2>=o4P4lbeYK&cKb`^;?>sd)NK1qEAJYE*aqKq5_XPJc9*L{2~n+tX`Hgm zU%v^cP$Cjj{v1wijn`@yLYUnih*e*G685x>b?T!=hvv793T!u(s20(ywh3>g$YZ?j zhsJG?&s)~1DI)cZiE7SbAX?3sgj3_CYj$T;vpZEY+weP`%G6Awrs8)*neK=(-QhB+ zIjzBfiS8rtne~3iVatjXqe^4?kQHz|a z#$UyX*lL9<>nWo2mawXqO-7qJ^hP5@sRt6?yItka{Feih&!E(rfvMjBu_GATw^9d8 zYF(5Xt^v}VMJijjjXT9ioD*sRMB=f-szihFclFwZglqvH@1pch>bFeBY7v{-=28z6 zWnWIM7I})mhI}9#CFxfdou~Ek?va3Z`J2GK1cu8+N#ukPd&JOfGlKO=j6&RH9Y-+l za^+lalNlBU>jjXk=SNoNVN;BzvQgtryW-q_I_1skKCFz(og)WP@JX zf6B6zf!5fcde0_ht4VDZ`H*3&MK&Al;mj){N?Pd?kzvE$q4%&=0I^XycSPlc(@8J$ z<`|9DBC`!!<9fF!Jc%RA8$quuf#q=xq^kdLwg*G}J~KQmcG|m&2%8^xj}N0v`HvOi|4u zQX$h4?X%G$1BR^@InH}LoH@3jaktUh9BB>hNUG+VJj+WUwjaZJofoE7E49)HR=bhi z4b=OVQZbFqV|}m z8jpjhMBUR(1P6GGOQX@k56h%dahEic|C3S(I zUKX`VLQ~MIoTEl>tH>_HwuxB5@IdGhWd%da$__I`H4jSAIpJjByu>?yCEhhjwRx2( zuSP`WkzDMuv6Q=9u~mH;Qfp17a55JFZ=M=;2$)ClvEGWJ!md%&QG&Wg)aD4g{BRf* z7IloMY@;`{&68nN*a@e?sCw5{MV%*bcofM(N1AtkQq=0JbCRlrx*%3{Ma32brB3zx zQJ%1Ea|1P*-UFWg^2@0&A-;hS+mW~^b%TSCH)kEm0RRFLYmi~B`R^-`z|9wE~D~Eh+!7VMHc5Q@;X9>=huFB zx?!D`x}A}h&;%ka_3;wxW3r)PMY2odvP)yKOI_{ss<4W~Raa4u&?aUP_fqkCeK>gi zUZj#R)$SsJy0}2JaZr|J1ogS-Ud!i-2E41B*Ff9=f$kL9X4oc?oif!=X9h7Am!3+#^yXA95 z13v7R2I9I2lqRypuuUQ#vauq{G_?)`p+Gnq6535rsiJ#%VOFCd8t`GMyGTDqpj45q zh_E*j*=E>UkzF=cMER#y;0)QajX?Em$U@6jLAovL%2HA1337m<9?ANPV1eP$7<3Y6OgpC%NZ91$u7m`m5rT)0nXIwP=`u%ECDo$eVx_hy1#huA?FB~+oWme3H>8;@%uzLn4( zPv;XgeJnUY*g$a4KKT8FLxjVGql9Aw_YCss(+I(RrnenFH#{}q62bb6?KnZ-gX5l3 zWb~ak?Llzy`evA;1bySnNrHRyam*M&pOUz5yBOia0{6t@I=Ld>Ko}&r=g+0ddP z$2plCA{-_hA-Lz|;`R4xIc!3;S=m8wPZJ)$mC#Ah(&--kB}^V+4q-0AJr~3?YxQ>{ zNkSGu{@Fe8IQ?OSdtNTSl)ROMDne~c&&$Q1N9P6U&7}?m_vFIo5#|!M6WlWif1YrG z;JumWjOmNR!_+ml{ zp_0%*(0k+V(d*tWy)+iT`?XxZ2VoMbcbf}d=W?MBzLZc&sEWm>zaE<-=uKP&_vkg* zy#&2^tKc5JUpjX#x`W{2=e&uyAPhp?qgS@{x>W;V8KH^LN^pT&@VZup*&VxEgT_B`0*A?9Jm&z$mlAwdvY(g#}pWvQ9mwp)8qXhT&nCIcs z@h@3HaC-hyIpxbHzJ^-1Fzs=i*xm2yR!^1g|}Wd;TZs-7$alQu*WQxAIYs zw{msAmzV~Vp75^kUAKy#If3@|SlaG5{TPaVJ?eUXOuXH@o?n3|@^7@{(PQ`iG zn;&nxeo3ZogCG}7b_Zv4R7A;+U-u26SDUV-%F+a(3eYeVK)$bIefZveg=T`z~ zTM{HK=O@C}xD@j_g-H`oRDs#mZb<0iZtzQL} z!SG3k6PEkUAV^MoMTH~yD<7;!atgRn54U9GX2B?EJ}XUmMftSNn@3Py#qEE!4Y$7; z5Im?i&)fNzVvJnY?aU3r`L|9jS6i>!2+AY3TJ<9vwjPO`tjg3=MsRWypP1$;bgN;( zqx$KoBS=p5tNPS56GjUF!Q=G(71+t0`RO!IVNbD>vh5YRo8aVjT$A(^He96``?zxZ zfr?e%Y)_wVg7-Enqko;;gYbM>Yvpc6j!+_j;Bj(~fi80K9w&DJ9M|`nvln}9u{F-gC1E7z z+WXK&SzcGJ(`M@@*%^VHOL_kFS>6ZkawuxYH7RnNH)Wac8FiAdYJ>vGp_ZB^FyMzhSYRJ@O3} zs}<~Z@Bw;!54-2leAnX}4+_>CG}z8q&0ULMVW^p-Cfyp4=AumxEM9Yt$9E&6`DL(1 z#m*y9-(zDKdwh?LVeIks$#3lOJvM5w$MK@6z2Vm9(sN{#CxiR?rZZug0;vf{}OOF=)?Uw2%`V_1Lnvju(5UcU);kM!w}Yl==L%uJKM zbX-ss*xBE8;7Rh!-z)uAuzQsMcJN@1ooPz{2>8OkMe+wyKqaMr7A|v73|E5l8Z*4yAblOUB!)i;t~wlz z&kw-0F`SOeO=lAI1^KT77uHNS`_u$GqbhJy4C|h7GgzKf>7N2`i{T%D8=jbE_OA&> zF%4He0)D-bPkPr|*A24s>uo9c))ZU=t~y7ZkyrcQ1KtJR5#Vj$;z`a|0scDp0(c}C z-`|1!jrQjKM zi83ms@46KH<`n$46kMKy>r(K$Q}F5(d`}8~Fa0RK~So(*+yJP8J0q+C5@_q~+i{aHiq@PY3u2 zI45ZD`@j=mmtS92d@6>&1wI3I{qrkuG4|&2CrK!Z*=L>vgGclC2JmV2kJcV9@orB^ zZ%x5HDfr$L{0R8y+tN*ampt$IbYzTK(x>oP+552wiQPQhPD!G}`t_rOi8 zN0^_nze{3UW|jZy6#QoJL|caWYjCyyX7IKZ(fYU$d>TB0KBZTIyH{p}{<;P1@ke(@ zg7u&me55188x7<~z@6{O2>vQP(|a78cXx)@6r}$hcm%BbXzAYv-u}+%=7&zS9)2Bs zYE_1}J&->N9$cLf`orIXv$`_O?=UL=bKpsEX;7aG46*3F8Rl1xls*HT)05#%1p2N6 zPlDOfnDXa=kKCK#$uCO&CUEITGQ4yqfUxeEkN1It`qqL^Zp|<+|0=y1d}2+8cZPLa zxEoTM)Ie@m7mBkXIbG(ITCH=4<8G;n-ZQ49{)*(`Ry0sIp8_JK_30W z?*yOzWrS}BANoD}p`g5G@X0@9n9pP-|6XwGX~r|?kNdy{KWDsy_I?0d_;iMs%|1!; zp9i}~_P9R2&nv*rQq2q`1%z5juc#xf?HB>UkZLO z1wWpGKb3;VQm|hAbdTykk%E7hf}c;p=^S~-7i5P1?H2IS7`_KQ5yM{wpNV1f)wMwd zRDPx$bqvo)!PlnXc`3L!1($<&ziwK%-@gZ3`1)yHE@jAGc7wD3D%wBm70Gydf+Kqa z@>PNS_29xcObhp?%fa18qxEYCcmRxf8vm#_3JcNCHo?p<9r-7I678?`?X~Vv``-Z` zoI5S-&jIk(82)04{F5nIpY!a#ahmx}C$&$X(YQzYUklDIoMwJ+P3cR)6W}8V3G16_ z-6Q$UDfnZ52LCuE{Ynm!d+Vl|uVIn?>%gbLwLy9MoTjKgO1~A{2VNG;=exio^yd@E zYd@sVp^x4*&1((vkAU|tn`XW;MEXArZfKkq`rAF=qULE{C+7;KKLOs|KFvEF_>=E~ zx7|H0Tz{Sd&qBB|@UPE-TYKowz~4;&U#tgfrT|8Kx~A7b!>@qZ3Hmlyq=zG+;v>cxMj zZw6RzmpZKXm-N=F!*2%b^(2QWHheT+ib&u5n#kXDgG*~N%=tj|c|Um02|Io|Zyx}k z&te@%i_%X>etRN3-@iJS{^XB}o&Tr=Z@VYc+ZM>TfJbL0Jc!AEA57LQ(fa>!aKTTa z^sj@@u%9gUto)CJtD^c%f?Hc6`Jz|jFP239aVhxB2Q$rAGpN3gfOma6IOipYtkM`^)FShu@qT`jY|@=H8SZj^6_CR=yU+)vq4B z+uln;x;Jt5)=F9bO9<7pVcWnLxJ2F_=-&tK=BK>W|I$AR9{gdnUwQRh{0sJ*8>BaZ zXJM~g3m~8Ldceoto*wqk2JqPTGtKY7tA9QXKKZBgu)HsW4;_u}pZ*ycskN$j?eP>Xg72p#5tLy(Q;HuA0GoOUXUOolBP#N|2cfluO^?A*W%%_pae(S(v zpYzSviKx9t!QQvhy)!|1r@%!&OE>+a^aO^J$ECJAujhmJZTHRlW=j7IxcipKpN)ej zvEQsf-*>_JcSQax@fP~))qL%AkX{6CVExJq@V(%oS4H}Eg0miq?C%%g+C1MI2;`@| z75{cghOs}@=dIvdV*Y6fcvj3G41&+RhTpgi?Ell??TaFNIxf5*@>kD;&&SsPqPHzZi1{u(^- z<;cJO6L^ID8-n&f3*Pf&dN^MTZ(_U_MgICx@aV6Z7eRZ!2hL(YFw6Dd+gUF-PdfZg z@Z8rV!uphgM_K<|eOH0K>5;!21y8;`Ev!$*&Fq)(-#LN)Tfy7k;D`E}!0ovaei*!O zB0bdqd2n}Zz5Y6Q>%S(<`$g)XKY$NoAK8KatBdd_e@qY06W0s(`QG-6?R@?e_{3G2 zq5Yl&@4b~aa-+_HpyZg~gymx_5#O!4leDbmA^R>@|3#K!_gZ}(?@abE)cMA07 zyp#5l-{AuAEZXnt+aS#P;`)0STv(d!Z42~$5L|UxX1Jd11Lwy4`47NFpNsZ0PlHFV z@bTG+aKH2;a6A2(M4$Ahy$gMOh@G2e@eJ^`tD^P!wcvp-WqQR4 zn_dfE#{S=p*Gh0}tbZN{m&W!(p9b&xR&;(D2k-xB!rK#+|4Z&We-QdC*GJ5uFq${r*@?WUkRG&&6VM8OoZ#to!}D} zNAtG}e2mM{*+G5&27LbhsJz4AEpN&Q=j+qpBiY;s1@?7g8TPw8YR|*qd=^tz-^alt z#nE_w5nS}E$R8e;Jp291p!}k8?Cn1MS%B{XAD)l}Kfe&|hpz%pvOmc(^}obx08j88 zeQ_F8JsxxnBtMzY{zd z^FN*7!cQi`&w~cRecy5W$IHE4;DSri!uk5N(wn35-cXJIx+1FoVsPoXsDIahXK`QS z=FbPf+hgq=2N&EB?T7vooIWGE54fg=@z})uQP93x@ZhU6yz!tt4}o{b_BVeIPCuO< z`iHN9x09Y7$o~iU!liy_AL%&SV{@YW_1WOrAL6?!0{QvEcc+E=_JU`{?C&hN_&uD5 z1N(hb9rAC>4ChNbc>lvu{_lgEUXdA|Po4%RFPRpukGb`gcx`mw)dMbl zrSI(v%KI?5^7-gK>8S9+$bNqd9{=a`aKG*?W&eu5bN(m?yz8xzzgYs_%KcCdr+Mm0{3G~CcC^1e1up&aH1j5?dO7Xgtlyl!W}{F2buD;2w*Pu7IQawZ9Bu!u z0w3qRVEtp#yBD0dCCz-3vikoNc>iEz?=_92|Hytmr1DmRCUu-|{9C+{M zX#bbng1)y!`;{8u@1~pmqsnUqZ)X2k5|qCYTo}8L{wK+^e!BEOfQu=gX=LhqSu6Vq z_G=E`0xtPpW@s-X;C&0C`TP&yV*H!zRqOXL@G<=VhCtsRz$c!G>|s_L{+IibeL?zd z;JJ@S?cW66kA1oR|2VkydB!Kh)^GX>_V2O%e<8T@hUk3M4nFNi=aIGG%{NE)ogW9c z*GK;G>)-*_pOK(GKLgMD7v@`lC&8m9qxUsmvl4yO-_6g(;L_Omw}7{?U%U|H9|mvv zkRQIU@CR_-=5%i|VcYZCcKi?bozDN1g1wE={;>s|{Vx8NCD8Xl@Nv$YZvO28m(GgT z(_ev$x+8y?+rjwU5v{L_!L>LihQ*9`KX~&Or+GJnW#9Y2xts@b4d#9syn&Zg^8@+Q z;Qic}TpP$={vPb}k!bz98Jr&TuU`P?u;0}BAp86lcozHBWPtxu>9O-t@!iY^?x!n* z^gF>NG5_>!@Lc}jvNW&uUQ4YEVAbt!2_}ThZ^v%nbCfIGkD~Ek-h&tc*AgX{xW|%QWV|qq^)K?{UAN` z7uSF{-#OhYrv37-W#E$k^h19>4n7sTFa9}r?uKZ;dubQr!RKFDLI34~PYp(&r`-&$ zT9+A)=Y!xaydO-n&G>u`JP^BYJ`Zk>onPLCA#P#6ayXEG41DrfbRPQO;AG66ehJRI zG$Wi(x4svD^zLYX@Bnx>?;mUp^nD!M5c41V!AHLt`J;aY4>Eb2e|Z`_QWV|q{U7Cz z-B%X%V6U%;&Wm?}JNaXn!l1k@;E_M1hx^sP0UwX;Pk##b7Do5eS-p%W{vkiezX-gC z`}51dnm_y{qPOQJyWYv(-w$rOHN!g*$bS=@UX$saNw@u--N*X!Q_lNo7FUCJUBUh= z@DFRi+ZazbUq-;YG5)GR-(K*@pAZh@zYA`P?Vo=G&WWAhUfs`m>$SWu5ah1`A7(%8 z`txyccI-Uz1#ps=u(t&A{{o(KWn}Mv1fP$cCofuqeX+h}BQN`X3%HN{W>HYTR&aio zAHM(eci`^W{m?hSCA?2KCn)a+;PV$p_I4V)o3H8L8>IgUd?I%KddFJq9sAOg;PdJQ z;NN^D`h24kyn+3#{HMleBY5wZqV@2D;4`uN&E4SH+?VeUUwaSrkL|Ckz~i;i`rQt0i22J;gIiyS_D^31H~nL@9{d)Zof+L#%RA>vXTDbK4Ujxvga0X@jLlEA;2F7ALf4Bjn{r~ zUR%`ve*o|1WrC7G{`G^57x%%cpY+WK7jwR|^}EFD2Is#e`aJH7;M#km{pP=dbF!lM z8LqgW{^UHP@sPgTz}=4@@|JSOq@)Ce56n z{owO_-oMwkcmRBIBI^H-fOA(y?f*CMDCa+CFNtC7`7P=EO@+i?<{_BXNlTL9kwaP;|j6S&}&`2V23kAaI>Kdu3*75@M(;{IwZDF2+& zW8?YyP3&*}5Z%9&g7adZ7u^RQh<#r6D7fVL=>GH=IG^_gbA$4q1{Yk*=hF$>-pd|f zez4!46{If&AOB$@w7-?$qxdVOtG>hF(hmGbkpFds&%=e3<`=mR;O|kpAP2gFaH{JMu37i+ZZ~ra$%u(KB z3+i|E``BMGpEd;gE5ZB8UlQO>aC|*|1e`uA@&E94KJax-*`vR0(>7+R6IB|cxCk;M z+9XZeRD;k&Q;mu?$k1_<+}t#`lHAC>X;Nwg9aD6u-*je*qNouRMTas)hN4E%p(r}0 zD9RK?5vF+Gea_xzuOuhwpZ9xjKF|C0n{&?oyY|{^uf6uZ-hR}5aGn^SZ^G+Ye`M(I zldeSHuwDpiPKVcu^;r(Q@J}|sDtOaM zVe8NN`BnI@`q+5xi{K4^AK?5vnHqoX@EkF}t%sMQZz1L{(3_545Z zCj1=-Ips|b47!GYu-+S_zt4eN(SL}Q^L{hDWRzWx-v#Hh{>bOKQ(riEft`Q0!$sIT zCcOg}&^}4lexD3)De4!%q;=B25U%BrTTtis2e@7AA8&;Nte=hi2d`!R#9lJ`J0ISG z{ku$mAAytJwfgW6@bGt%Jpb5ja60DJ zJNS?I3%~B;`FAG33xq$c3{H93+V2hUyhb};E`{5PXEXh`4jv@t=YfABzfo5Hv*9Ho z9wrQ*DB5EVT)=)}&}pB+fy?04K^rgmC|tIm^#{HHZ{~8i9a=s*V0Hc+@pI&NzdtiR zzOep-Am#U2mi; zLjJHH%zQK+PSn};!yI^?@TaxIE$IKDI=$_1+DF!YO1}>I#=n=!b2UCk!ixd}1Fib~ znQ$)l!CEaZm&0qA56yUA3ok$)sPC1&*bc9zei@pRuScJW{kKEl_F-0k9t+F(wR7QR z_}fW)#n6w9{p|PsTp3DX8jB6;6+1- z2iNu6cQN|-Y`ec#59eUd1$BL{gj0mSW(^#O_w&}z$v2{Z#dw|!ucW{7_4l=KD*ldj zny-czV$T(5z8jY7gHPa&llpu0J?tjraiW#y61Y6s#=BeuFP&-kBkqCQ#QV>}^ZsV* z^Bvsqiq%Iyy%~8#KL&MqegUVmd1vD1Z-I+a?Rt4VJeT!viGKeFI3VTg3oiuvYxIEi>YqaRkO=PwRaKZk<+CI?=CbI~^`I=v1!^DOJH zJzy#FJJ#y6LU`Q({6~G<{N}-#LjNv?+p%|Rbb3$11wwv4gL6c@-k{rA{}L~ouiwvt zJIH^T<|*(>;ctk;8-+jUTDX+>?PGag)#oKRN$f{_1lK$@z&jt1@fYShG5^)U8<`*S zbbdF&nbYm~{043rY3;3F+(G|~@mT>6-)#HqPwM&jzN#>;zJj+4{gK>8eXx&A{~Zr+ z#lG*S%U=kuJ&^t)3DuvM!`oQD<~Yv>2kwANL_E-XxC(z#fiC~Pck++HcKnTi(>B`l zN5i!*+3`>T?_m9~kIsJKf?C&)F{B3v}`oB!`kh^FP z(Y~c{TcMTzbK!z)dp=M>)o_jI zpPOJAU-<@H!u)UKy$^!ca-7{iI1EmueM)tGrorJIPDVbgP*wV(dQoY<54zV zyakr_{hwhOpYjkK*kb)F9dK%gjW;>!Ui8=Twmehe7O@^%2+w0aO(q#N|2zTbi}n5| za3=QQQO@(^K3k57OX9LfH_me&}ZPyC$ekGtW8_$PCn^il$^ z!Rh!nO#6KY7yR7XpQD$fj~RbPeoljBd~h6YLw^NHPs#Tk@D}XhV$Ju%?d+enYyJSP z!v4$GeB%A+pH24tX>je8R)4j^c{dY}s_XM4yzo@(|KAL+Il-RK9rOVD5c^+Ev#LDD z!plfcwU^>*crojfLt*vTtKhl!4)Efo9)stIc%(xgr2P07hUoXl!b@JT{;CV$p&2&5 z_iu2kSifw6(;u?-?|0er?;c z|3kFzcpZ)?apJ3&w&%@}WGwgbB z47^t8lWDMw@4FaYg}=>=r=@Ty_Px=^cf)~+0|J})gOZ2G;S^#2eFV3qa9&uKZ{L;V z$9!V=6u6Ur8cySUO{sqWMmRTU_xsks(jNZ+4l)@SeVhIW@{2t)NPm9@yp{D=I;{F* zHk?6u%==5=LD)}bJiZ8*&+ZdgtLK+Nk5WG2FFq9>M0`<=PVYQ;HS&UBtt`38&&8G37t#3EF44 zwKpcibJ#C5@^lfbF6UmY)4v-|W`D-W!z1t_vA_Eryny|Zx%&MR+R>k4e!K|INwVh$ z-h^v~KjDDCBk%9yKh^CSg4@LYQyskR*(Cit=-l4~mx%f8VK@bO9Io?!3vNHy#!qKI ziM_=Brg{Dwc=aah?^+CRdBn=wD{%gD8*e-8DaPAveZ2NK4sO9dSf}$l4W7q-YKi7+ z;q9aC`u-zWu8;fCu=%XlO?w^;w{IE{Xw~0W!bR-oCTso^+$z>X&%h0*+WpG|pClas2V9H))AawL&oKT){MQ(`3j4W0muDKh1pC{R zZyvmQ7WRdH{un%z^F--R`a=Tms`tOP`xhzC(q8Q6ss2##wmzYZ^b*2XjaWDWZI4|aaef#)$2%k}$<;W=V`@FKjWjs5a|?sz@?Ipi7rVeHTI z;o8IPe%K%3)~R;A@-W=;FXU0DzZTB#Z~bpO;4*O@E$<)5FaEMJ{eBr-a)e#4-lv}9 z|Cz6!Z-&?BTYt*WpQk^GuWQlIe+}ntOY-VBQ$0V?>Z1qXRN{@>_4^;fTkx;uX&$x~ z-fy7iKR+36;k;}n&sBfSh0CwA@mPO@lgC+m;(K_`I^;XaZNHWmX#XRvefl2Uzi5Psg8IrTKPv8~*sEnxBCium^_1syutY#QZbZ`a84X<=@%y8ig1C z!k%Bc1fG*^$KONn_A0AS-+>o=XvhE24CHOXew_ffZtm;ZE4RR_54HO8J9xYB@9+Ol z3W|N7ugiZLoFn3)YvCO+YhT_9&-)$cT>H4~w*g-K0{5Lb^<})k4V+IL=5TW0dw9){ z_WVWUW!mrSzJXtV_w5vX8padlV5V+R5)Gu6I$TK$6I^#PPna) z9sm2hPWo@#`Rf?COvqO)ocz7@k6Z-@4zu$4E zyhFsFsk{uS%{Bj7S|{^&F~nekOl zdaA!4hI7&Hh!_7QJ9jxYJnIOX^ZX;8%XqpDcoX)H(hsUXk9re%C*Eg*{=Obg7V`HR zylDgLe_h{UZ_(ceT76Ux7m4@ZE(tS=x3e(%W%W}cKy2VX4>NooBpwI(MxuHS^&>`KFM1@R>4a# zX6NekFM;Lx``h6>qr_&SVnjeBw*$-~j{2zFp z@FyJd0p%0%rpLnN*!M;rOJRAQy#ih({c~`Mh}U=wUU|B;f8K)A@UJh_`F{s5e9f-M ze*Pi)Likh5;LJKZzWxNauCe=he}$9Ut^f2JSl$;hcnk7Id}p%G?<9EPN%#wOe_aMI zKg8NkOWMY zQ~LE^u)Gi93wZM#+zYGAH|b;i3!m9|#6Q3ri2qB~`7ebt-s|U$pM(EH{fIX;`Ava4 zZnWn==fGP;e_acwU=L>K^lpLIY_a2a1zdG9CUDcj3*ow!MFV*D&7HbEQvGKA}89|4e}cpL36A zU-$WCa7r@e(Yy#QKgf=Uf554%ca=U@`E7=`i1_|*;Tq!4O#6=b6#aXnZO=(?GV-U| zSNSs{a2x*ZAgs#Q2B+<3*JDq^8#w=L#^cBE$`aOpx_sZl>%@NkKA(}ESZ|lYbC9QU zoqh{E7k^=j=Ih~dvA^*kymq9G@A)2{|BF6>Je}WO+mHwJMGoJq`X3Gty_k3i{d_t+ z`~mEDoqhsd{>LO$Ij4TNtMBXW`J`9j-0y6Dsh{({@MmSiCFoltk2By^$nPMXelt8& ztS5g5uYS(R!;ru-IPjK@5Be0Ij(!R9XI1`VzQ7*kyl8<=?<_cgy)?{u&ix#4gSc;C zDLl8KU!XzD>%ZZxId*+|@R#W8eA{0q!bz-8Gj;kcaQb&>IKQy%>L`TF~l;rys=pNrsJ{H?Bh4G!D|uU%%>hfl$!_@7er_us>t-naHa z{#UfmSAD(p&~aTiSBXEI!23$-e+?JBYU72jf|uWK z*W-`CDeT`dOda{?^9|#Pc>g(?hrv6FiQm%lQw(?DzcBq3f?NCA_3{m{yszj1IQdX} zKJ+DcwTQ3S4i{G^dE+mygZf=<?n!}R}N|3x3)&3=SVKM!6g=HGK+d7kA$ zcp3hHRGt3c;6=he{2n}r{Vp?JhwY$00>snn_WK_=_XOMjYvAN#tUqbL?|FZ?U0>n9QYl)QP`_X;MDW&eEcdLIF|DWx_*6rpgoAEn4`)+$Qwf@8P+} z^;Zua`F|A76wkkh*L`5e=kdHa^shGly$+V~msi4bINwmJ%hv|i9AM82ybG^c$NG4P zo8P&8`UKXW#raX4{}NcnpS=Pnv;S!H$p`SV20Op@?ThTxaNbhO?+I}0IeonKSpqHz z*!lM^#l!7-eiNMb8yinIxF2WN+gYy-aLacj+&bUJ8=MITSE0{!d4CJfV>}pnz7sC{ zz@B%06mAgbzy773v)_j}(h@0wZ{fh7?EO+lU^pd+PgthgF9HYIZ!XZ>3U5xLd`v)U zzV3tXZJW5iAp_17>7NA;I?~2R&4lIs5!b-QR5o9y|1q52!TBORUg`%BE1GQMofpHU z?7!sb_g{u(Joe}CcFu>I{vSS&{HEITDd)iJuwT;oUd?}3!P|H~U#IsJoOVc3V59EO zUnC<>8?C-Q0j?42{WiD+d3EJuNZ=EAiHP_32F?}p)5yIz`&vn#>ilNHwVcl|^;rbx zpTK>D`uQtx$00UeV85T>3qREE=S_jvqkoM)y%ert|JLZoCGaNvJHvH)-@x<4e)7S@ zrmkOT<>wT5ov2R~-ZG)DH{UOXmlF?X+V4KNeULp5^fbHy{ga{d`xch*Tzez9i-rAi z5WHFD50{;6=Z_}!{;>nSc$+)myr7lG)o|*S)_?I0oPMp1_x|PHj2+_X-2NFH7!S|M zv+eOacq{ucCO-6Gc%|51>44k+W7iWW55|_LML+BD_ZxWb57vHr0+#nlyb8qk8^dD?d-c8`(c-(a*QQ8N~ONXg)rL{6u=Q z;HBcc*0u1OE3JIL4$Jdd1NNaU7g_&s5xiXZqpyVJdFdPA)icqrI{&ZL_xSG)g_Zt4 za0uf?%)e*AJB~(P`nme#cW^%Y$*31czuX2d6Z)$iPC;IbyzhY1#d>1jeQBSE>GQqa z?|%sg#d>%moF>vc50>kP%hYq6rJGIu>iM^fDa}6{ihdsDC?}_UQMl+#^3?Kh4=nGe zdkW6jVf`DQ!}5IOcx<^2{9XI&_BjJyy%K+{PH!%}fc>b2I{zEt8nGUHPQAasogX&B zi}C-P`Cu=eZ4mQw5Dr$^{n{uj&(~f7X9|7wcQ|>b)t@`y<$t#GUk0(54HKG$7;bMRjnefY}*kahf@W1R1k16A;XMq8g&#l=?sZi2U9Uy__7zpK^v ztZz*F{s+!Oo`>rC9`bYQChXy9@N^OHHy@rO?8{f+g+d>H2e%4;^WMxQ@_vXSc*jMo z*L8lCa1G~Im3~+4(F7NX^JBNb3-QOA^4$jqek9&nx6i-eq&e39NE^=l|1YZ#Ccw)@ zyhRJVn)OMV&i`q69_Mw<{IUaHwcf@jkHvS;D*OR;@SuIIzvoZzoF9_B`|{i1?f6>@ zbo%XZ`u^6R*bm(`oc2o9&qpX-rryz<4?Dl12di1_R5PTbeELVt zPs*Np50>%cgM+mH{p6{i9}2I2pZzhdFRxV0e$}x~eUk%g;Bw-%rtA0n9Lo6o6=`T5 z32zx{_iM`FZLH6JroTTAmgk%9h0{em_?K`8Jt)9qae%lo@- zhvogSPr~y2_q%ZL3OgSRqpv!|eqSzJjE*z&!x?bkRW-A??ROcxfcebGU#oEL=c*h8cgaz$s$>8+IgnH|+1{IsG{}FaehF z*cI?}+Q;ax-@`KA?q+!XQhWd3Q}9yZulf>B{)qeaboov>iusN6hle`(B?n@#oR2Pr z%ck1?SPmy~e$=$j-{8ep*!9{su)Oa#8$&Bu#7~?9%lk;;@alnfJ^DL%8S|g%{|Dgw z57ipXm5=T4$^ren_1WZKAaAExfAcJO4)a5nuFu_Y+s8J3;IHsd_LqY?z1J0s@!SDd ziSr_9zoc&1Gt2b*6W}$h-<7^n`g)#XvA_E)ymo)PzWW5u6!Cc9C_c%`&%~p#@5Op6 z1m{-S`Tb@%K)g(@&VL=;N`DyMKZE*yMVk8giSWEJc0c(#Snh{D2rtQC|3>SdC*d6C zKQsQmf#v;dCmut3%ugA*zA<YWo`gT*3^;X} z-7mfp9{#YkAD)NHu;`**@=oNqAt<7K!#WcQ=Khf}|_@^r)~rO)m7n*wk6!ako3FFS&GI=$Zh zH#}YJH~v?>&-`QbS$+=f#rj?4uj*F|uXxYSw||6NKd|||2Gr&}jO1wB3Ih z2X7Vrvk<&(1#PC^pAQFwz4;6*?Vo+eppQ9EV#aqiylS5To_~8Xyk)%|kH3Mp;-4(j z>AwokU1;sC)Uo6zKQ*MRjdDm5NIrhLj z-ToiJ^1huR<7q$kv&{H85-v)z{Z|GTu-{_F?|E?51Gasxhv!z>_g{s#USP-DXYi&^ zu(5S}?vtnNCHx6VZu?G$+xdNmTwT5k;N@ceS_CiHWZP>kEbq_T45u((73=S}!lriN(~d{KK4ScbLjuRcYl!bK`u|*b z5$ltn&VLr1FZN63!$o5J-w&q=dH(`l`-8oo>g*GkZ?@R++zhvcse?}cQCRLDf1&ti z_B>urKJ^#!cqUvT?n`Kf8-8Qu>wn-{_Ct()wGm$OrHyC#3eF)u%h+clPh>p3L!P=k zr^E7m@GN)@{w~vgSHSs~Cwad&^BBBr2EQDv+xx(i$UobzcVcjRDLP$0zXcA8_2sLu z^2wU^?l*z?Cex0eU&EW`GKTf{_ra?kpblE!u7l?gj9H?~pH@J9IR9hpr>Std=)akY z*}pdZ{U>-6Hk9HS91-#T&#~SgNw!ez&F4hIKRsE`~8a4df(0u zIq{VL6~;Z!l+?uAzif8tB9yg&B?cs}*ps=rS?mG*yu`_6QEu7%s~vG(H2 zu#BJoTD>pYd(ag6QrI6S!$INCzY)&=4?0TA`)asM_yrV*mTz5YDCtS{XU(;U$OYn6Nk74xRFW?s9tBt-Wg6011On9?czh4Be z665<7cy)^Hk5Axb+4lV4$kUM@VejX|i(j?zi#70E&ZC+BY=z}{@0;KxVc$Ln2Z-M_ z{T-aje09H-w+Jldc^16vswB_9dk5Tb1%0I3=M^|vuK(cm`0G>k^L?i=Ud8_5;jsLD zm*Zf0AMRP|eb!TD`unTkyhW@BzJ-I|+5Oc1Wz5Bo z^z;024e&DVLooW{5?J2v_dHyRJ}lSikN*|pm3Vd2{%68DVm);sTz;6Hzn8nkMgPcO38XT=da9o-@BahiT-JVi%zuuz#HKf+OtU4@1L-Y-`N}8o56iE zYxVOZ;YIUp{@21Q#!v?R{8>0vtgl8^BA-GZodPdBhj<-5KF)v(#Pfx4Rhad+?!R?# zKKlVHb^61?j1OTyF+ZW`wSari)Tb`(wwz9o%19rQ2gV+(LUR zeXZu(7PyT0CaAw(3d{5O_rf*f`g`ebfLHzsdr`~Zd$7De_VM_Wdj;OYzsfa_kJJ7q@HZ_lrEog>PT3=B{LF$EoM`QdTj0gqPhq~_ z0n7VTha~84#;B5imEUP_D)A9!ygm$<{L`+_Ux2r+u$;j%ubau$R(!U$y_SaQoM`|8Ixo z`t}QW#T)dYPXF*0D$4x{Mt+Wkw|yzThpQg9@s5YirhUZxS_ZF1|C;&nGI+a4|7kes zbK9Tm;M6aXcP&3-E@1zV`)M;XVM} ze`Da>k=EY53EqOfGUa_1PQJkQ=gV;3zIMNE@Eqhx*qx zH^I5W|8=!`{+V50+@hWf`*W|0s2}s2nXilC_4p^$_)_EJI=EKs7cYm`U{9L)>mP7# zocjuO{>T4@{uJxy>F_evZ>qgjdY8b#K~}%t1h3h_`doiM>|*R~{4d7-$c5$o?PtLY z9<<}}YB&l1U%F2JOE^vVuLrddkGv)aehIfxepNpuzZ2o1?01{>R|sAt`tMmd ziTyIue_z83u_q4G=?%XG{XW$Cld|9q!oIx@-jQVYquzoyZLs@c121L#VGp|Yd2(PP zT(+Ox&r2v4@htbk8?VL&F!hCNkx#WAQS~|GGW09!1tSkxaM?urJO*zN@isTY+t}YV z?eQGEK+M`l`j6W}$lk=H}+8>pqxbk|hdjDSmufBhUqQ2)ok~01N$FTgpj(vZ}{K0ynR6idF zPv^dW^Zq0_mGdhm9_DxOvd>v#==bl0^O?U*`)z`Q$lp+&t5SBrCETxI^yz-|jl3^8 z8?GWAI!TYO5;%u=p$Yo?Kf`65Uo`Ul44iQi_dV(NkGKN;CC-bS3d{Qr&WDGNvg?5r z@Y+w-(J`P>CYfPI=!F6tKYHbV~XK2{F6baJc9$(aLF~S(P5=8+Td01SowPm z-X!ju`UDQ(A2H+Sn5#%n^yi82vbTu0)#;rDH*lWTtiOH>PiMZ%b@ERMEQf19;QWb> z$2@92w#b>his>o}V%x zuvyFFS8yiwg84ppE%qYkA2am(zk)a9+w-E=!wcE}G5X*|SpHtsSBi(&^C!dqhq)k( z4$WpLYH=@VU^yWn-ilN4!w7EUU& zzqk4=Ebqr2x`^k*OQ-AiC&S5m4^){s_ zF8cex>v+D8y&wG=Sl-w21iX&<*R;U#RKgF5K)PJz=o&taa| z!U3^=J{MkdH1dr>rN;k5@KEvl6TiHH{yyIN*UI57LSHU{7YqOJQ}A-mbE)=I{qvK> z*c0r}FVO87gqPqiap$|iff?`u{2dAX{4&MNp9eVKCkK|mc|W)JfxZZ@-fH8kkGPTc zB;L^EHxq8z-|i>RgJpclU*J6c3+ntHd3&*eVVP5Su(HzC_MSbszjEbr@@ z4ljJ%%I8(^JaKL>i~1@Ln8f3mJ`B`og)ya?XP{z)y*l|SbOc-v;u)bBq5 z%lmpigXgiHRPw6&f3I7RFL57Y7QE;id!O2gaNxrMp1!TW7zI-@c#OI#{uVFttsGna3uNC(0oA4agPewnd+(vmm zvh_V1UOR$0NPmAT-1ddle=opWg#T;EQoa@Y<>TS?h4#E<1YYr-)xS?D=KN8yPJbJ` znek)FGw62aGjw8sets;xhW#cpzKh_rw1J-gZWdg$WPs;STLrfY`FtH-!F;d!U-j4b zaKRjGG_4QD|Ap@{_Sgb+^g}5e6!D`M!}9!5JG|;0JOBP0PG|qb%-=`dLH&h(`7bxEbnu<9WE8?uXXTZ`rEYcPw%2W!kegmAZ@7o<9s;pB)k9n7dV~!2IlGV zZGc;ZzihvI>2G204~OOb10h(RCz}gzBffF9PVZJYZO(ld`fIv={w*xy!49|& zc@p=ZjDl&x&$WU57vhfm=QF(39{&iD*k z|Hv`0{C%ZM;nhNZo`&W8_YOSt+x~%|uFqF+4(mg@!x<0z+|Swq`8N8u9xndM>YqQu z^Tho78oZMI#9E!+kMK63PY!&5@)9p@^z~t|ydU>0#bW>U8o1_L{?qAw2g~(n>Vve6 z*xx=2UW|OQ{Bp`)0~gHd8%XH=^Y`Em;h!m9LH#eb_gVZFmhth+VY!}u8Q#Es7;1bg z{q-5VeWA6l55yK6M0~;`UEX3?-bWCHSMvLSW__{{Ui`YXx9(HVkLd5k(|!n-erEN- zUJsG}Eh1hOZV~z^49oi_FM+p-`RF=$!$AYR{g*f4K`+?-ocCdQe`&vmk^g@7eC1j2 zv0^{$d^iVvv#)ONdGPvo?eE?1fQ#o7Z=vNqdnM)LK7qBG<8bX>R=->arxP!3&IdjS z=l;>IN8W)8ggyEdEd5CbKf-(?=EF)jZ9n4g^!n|2xJc;RZ(wb4c7DDQUMb@JpMEG`_AiQHd4FF7-u!7&pj^w( z1+e^m>g(YS^hKJ}-h%`8!)4fGnVSC&Z@_PwQwfu z8}s}nIPV*~e)<|tu>Wqx$B@5cA7Ve7_m6|;iSy`1@G|UCSH6-1(_#7hxy^9!B<5T_ ze=LCIeLxSu@_bF-CmEmOe9``J;AFc#3BrrHU&NFr0tdzU*+uF({vK5xWj{Ry=OkJG z=CG$2AH)-}h2=cI6i&uJVCI7x;Wa}4uZLUMpGqe^rEhAx}-9O$8=bUQ&K|`NG|8c&;*n`>d5;31ogd4>9 zgeaU4^TEZiywCb(cm?qbX}Y{G!t(c_K7dmgpE!g-{i{{9EJ0so3=?}=;BC&#cp(ej&sGq}IE zM!!D~-YnwR{sznQPanZs)9vp)9P%9Rvz|5Ms~j#lVt|+b?_hbq?MrYA@l?S zna-~OUV#2L;~@r@?T1Y0=a<4#pWF#I)ZtIp{r!%5f3nU0KkEIbtvvjkhDj;4_wVJx z^Tqr>UomsKxo_Y$cn9N`=5fa7<8TA%oAul4a1!x^YJ4kw@C`hCGcuz2z!&IW&c9`7 zJ`LVMJnvA=7sJUX+45ciubx8uqShZz!$HoM7U}o@3rqk1aW66+IggO6pHG34h5b+s z%ljVM;2P{XQ{E5ZR1q(p&fK)+YI{FbBRpN4Ke+==75i=Pz&nU9U#RmRxDMV<8*9#n z<$X;j!yRJ${t9mWGdfYfe*>J1yqNjtZ*Y0O{k^^|aB-f!UvJny=_?UWT?}s~zQpL0 zFf8x?SPE|t`u8n(8T!@qZ=aWWU+jOT!ug!%%+uw&1eW(nKMZd;(C){54liWiXORFUlJbXx01!Ebrr1zWV_FIaPk;pSuj+ zChps~LGh(F9%U^&2Yb}$^Vi@4ao_JjZ_xk3AEp#;zKix?C9Bj+GADr94 zb6uaKV0pj&8E~0c?_3XO&>ls)|2~H0`sJ8^Ay4RYGoM@n=LvbA4=2y%cj@%^Pr^%* zYR>=&a?qHv3dSH2l8c>tS7=l?3af%_m#dY{3y+~;fBX98oZ z>M(xaQjeEA;nm{#_pscb9{djSc>?Dxbbl4VWy9@y;v#qr@q9)fU8kNif96vjrOzIP zGevv746mJT@U5Zt%27NPg|<%a~r(+q$Kb6eC~%AE@w>Z=kLQZ-uef4 z4*JyS_x;|ZJ%l{vz{$eD^lLa@tp8`h3&ePN1TN)#O^wcPD0BVt_4a;&N$@)1znTdb z9mV{w>$4c%#Cju5x8GkBA8gm-Pr-RFS^wr+@F4o%jHdyVrAEx32f=H_eerR4I{pgN z-@k|Favw&yF7FL+#{IO3=JoJ+QQuGC4dbo8_y!(&4?0AbKl=mp*(PhR&w$H?y;cwB zVgH)^{s<4ciaA#2_arRuyLb^!|DOKT&o{tj!_g;N9*_T!_C3V5&pB`h{>L=^zKV_B zaJ((=^>8NVBTRd}2&drh%+T+D18)=O#nZOX9w*uUEQ3>pd?w(9V*gs5UCkHr^dQ_y zdzta{7~H}9pQrPC8O{*teFQHX*(VUx&$B*4f9`AJL(YKZeciKRc|Kvk&-|Ad3${-%%MV&skM6&b(D zfgj-&oY$DA%Rl8mj6LoHnydK_@TR}mc$#-$`Fj%sw$eZ7QzM^2I4I`ZTzKjE_I!UG zoI(4V@!t%0y59$`!9Q>M`!0A1^G~iW&)bU6u=f6c;k2i1e;xb@R z@P>)#*PpucyEbU?V2<`yax|`2)TA?kC&e6Kwg0 z!ZpJGk_XSZd!SSQL+S5wc++j{*YiIm15tRJ;Pc@@_sJ#?3ZuhWxSuP-#_Sc#;bTg4Q~CAJ9SA$y+0mabEnO3F1$hTS~w`a ze-+LY{1%)q_&s`Tg`u z>i06vJpPx$U-pOl(my8ubKsKKoyR;M5U7OL^+gBqC-r?jyhP;R1P2GZ`*G^|EAaNw z10DNS@c?wkJW;<>;1!}j8{vP8=a0Z;v`>l7Z!NrBi3l`^sz`U z0xuHz&4QEmMd#@EFNd!b?>`Sm1P}U}{t$dNT#m2}*WcH}9aZl7Q`PqkxM<8kN53fk z={K}D^-<$p@!@dsxy0LO&VmabcjIBzcsdJSC+hcWc$45Nc%vxKa(J2GAK-fg7j=;T zkKF%72dn(=fCn*tk05`Q-#U1kNdI*>S&Y{Mzoo6HuPJ{nypi%NeWubo1+F1IHTE5S z00;NxKmGhlIB>fi-`B#6DWA~?Z@?X-r^dHR?^}4Tcz*16jCb+%m}ftN6TjlOvnE~7jqy*J@)r{fP`eplt&3@0J~ z=KG^}(BArgs!vXU8$|gE;h;XBun!}=7H$>K6Yv7Tm%wu=e-&w|{O(iV4?#vWKMU7# zXLEvV)$@PB(}lhq@ICbr=^X&C6#Z2NFBi{e!tH|3hXd#zQ@<mkqP&m5`N(&HuK#;*qew5~N90@R zhtuIQ(o^%dYM)EtR`f%=<{RK`BLCaq(&zEX>GpgbUihNBpR2~#7C3*bdtb0hFO60H zwoR@+-#762kH^4E`rwn*>7Nb<{$j^p7+%hI8~SVcfm6iu4!Dn)4^HUQH}Ee}zgBqT zO;#SRg;TIEN_Bqs!I@uh$G7HZ;a1LznErVkUQd10d2>~tkKttI(|rBD`fa5W+RMmS zHoQ*AYZ<(W*=nJF|3Wx@3FAw**LCpHy|CdluY{+Q-;p}Mch&dEhZ%q0!Nbwt8+Cfe z;Tvcd{rwwwP=lQ>=fXkJURS_@3itUwwExX;KI75I$1`xIcz-S2A=2NEy`lUa_WgXt z;{DU$cFIq69Q$B8yjgsI8*Kik=Ks6lcSL`E1DA;O260#Lf-U?8if*67;icmJ8n|4% z-vZA;o`a;Vnp-@}WL52Npv zz~!QTTi|5&ca8j{3?w~~-!M2Q86Bs~b1b~Nb)a(|MwPb|mgDcY@B;Du^|1M$YQLM| zoat`7i~9Z^c!_xbL3pJY-y7j%QT_qRH3h9V0$wNTa~xbG(whQr6Xk7$-xl?I z7?$JjDfPan?;y@9Zn_BnqwfDh6^s0S0dEt0JS^?sli}fmm?Lz3%HZ2Y{!8I4)K|%; zs_#p1`^~n!{-apvyMFjqSD?R)ei;D=?y&kd2j0YdZscJCoFbl|4hIF7!*V{l8eaY` zF6bn;Jh#J{L;D2sb@^5*7T-Ss7k$n8R=3ZK@X8B04@0q3ecp%j#rvPZ+k`##y<+U; zT%G0b$#i1JeZ64n<+|6Ky7WA7UK;16&>*hjC! z%SC%^h1&&x1+NqQUpOlApEwl#HV_}DmdEMvCh>j)Ea#i+;POxS%@=L|e+q9C@Auh{ z@h0T?m+ED8z3?F1@Em)@x<5XIXNdepq@piH`lI36e%R|; zUMIljf6AUX3oa4wp9?R>K2YOH*$0=y2~oa(!gjvfhu^mB8`vtIAASJe3;Ux8E*I&a z4mSus3ogERV4y|Ury5@5jh8`zCODn(W#+dP@H!zsFDMrI|Lo_T=g$M-1(p3Bf1;9~ zGvF5f0f94->t0>U+T-!b=2ig_jH7uD;*KZ$Rn#4B{+_oX_`x+r|6)!|Mbe z1kYu>oB80ku(Xes!<)qWkHJri`XmjfeX-|;(|@YIhrq$DTq&%}a~8Z_=%)xgm-WCR z{r*F6iqIc@4r2U@{F331M1E7@0IdF}?B!pJp1J4)oF$c~R`CkgRz(&734{s#D zVx8Z+@M@9Xk%!Pe*r%&>e%HYH#A9db_Ph<2>yN<5L|wzkiu$U?ShVVxtej)&q7Ctp zmC^c3+2m0^oh4XuO!TGy-;esAsaQ^PRP~Y6sEAEq6yeihvSf7acyw>Si ztfwm42eBUN>->-_<|->g4@BQWL7Et&N49(w;pfE8A=DDWR;a(UH1HX>3)NSJ;x!eG6_vG-!kHr)DjE|bvdDDG!a#HiOL{?UqoI;7lifAG}skv}k1^-{+E*EQ5*L-zG zUd9a0M5HbhX>5!&>RM0k-0Rud^mwE(8g^d_g)0(~8L`IMIrSBFkwVqjQ@VbUB~$hL zpi2(^?-yjdsqfm$S-vm#Q1%{@?&)ovcGqh5@cP)gNIYIKBT^XM^|tB!&92orbGK^j z`*v}5j_xYctBzn))Q2N#Y3N{mY{gXDZNAQRmY}fg-To{n4MKw5s!po z)gg3ttcsUsRn#^`YD%(3ht8;Pj-tmV#OhJx36*Yku9ID-S3}KF6rM_@W~M5@Os4>2 zQF)|W8?UMe)lkGpWA_x*+gW48D^A&*&yk`;DB+Zssi1MT&wF)FfilB2k??t;NJ}`< zkch^x7#bpBpSL^LzhqXeYR^QZu`XJVveNCFsA-J3lQmTx6$;I0X%Q)hYa+%B`6}6RuJJZfI&W zrE02=w1jGyQEDTO{-xl|Lbd8GXC_hqh{Y51Or19~xyW3p9!6tv?}0mssK18Jo_J>0 z;j4xlbC@&BkqK?9XYpBuS-IW+Od9{UDNr`IFlSGhmdJ%1NgC7Qm>7k#3de+|g%Ys_ zJ@Xms_Ahnjb~SJCgq!mMohrBAhX?W-=TU|e-YnC6@n3HxZuac=Ya zKg?AVXAd8aah~}lIo1(}kl&+mYHWvRC43)djj3;{YiOzu^VsQgzZ9}E?Mr^u;b}+- zkKecB)We3R9v+5cwY7{v-!HSq)y3)~vpW^8+9&(0QSv?CH+)h`>@+3cH?o|(daP}h ze%@1sv&JT(b&*b0@+(J{c+2m3rh49UA>7A3mLXGHAaUPj*OJuildmU9eh<4zlJ84a zlKdV!!lERp$A_v?z7LHg`91WJq-I|^k&@*9Mt4bS_LY-PDfzx3B+0kTLXv!+catRF zw}d45KDUz8%j2FJJ;jnTrI#hWW9g}W}M!i9yS zym9&_U?S!CEu)3$^!7FPCe5(bCc6* z)IVB3!?O@nA$NUIo8uJBeLpLcMQ~L#-VlpN3a3tH9U3mwOW&+Ovrjhv8_QR>06R;m zYtgboUcqo1g|Tmy{isBxF)}04qW+=nLuq-<>SQn~PvKdi z^P5;7R7V*Riut^PY2EvVg?xiE*emWffXE6iQ+ShC!&caWlIO*39QbF zM)$8gtY}canUHcfK((>hc})#eRwr4}ID;YSl%ra$8_4-Qm13-^F&qi$(ksiA)kZbG z5}Tka8gQhgp)u4zc`6!bgUVV~e^o0J)oT1jWTq;pK42-W3QNnl4b)U`+Q9o$Wkq8o z4A=Bca%BE;-0*9k|rV@^^)>2L4Cfem?^H9A=L)O(sZ(gr*+zt8__Z1uS+e8?Xp8EY8U{0(5CHX$`baaaGE4n) zR-Ny9rfPP*%1pgc$)eOT;q8~^&*l|(b>yVSP{X4eYHY#@TIVc#RAyqyqmolS6Lm_W z&D>ahb#w;HBu5@q>h9mgd|-@T@h9yW#0RXtP=;IrSqq6bj1eLJD3 z=}?x--oKFzwKP-N^`QTEKJD~4b@+YSMg5QMDcfC`cJK}E`jpir->e+;hpIWNP_HrK zi7KmV)vQ!q5v|or-D>xB?_DzjDx9TmbyGsWN0GX^*|OZHJ-Z(}FBY@?-`6fbAHR}s z@;NmCQ#PxjF{o#+^1Xl9)KP zB+(d9uAfj8<0l}$5> zu+ak5Rgn-*MD5>o23KPw;1;VY)?AN&wn3x%XFS%Jz+*}CcJ&G~tz+F*H^%BhvC5f| zaKfkYtUEa1xPzh*Yrm;KsKR&#oq{;_5r&fan`^VG^6{)L+JZ;A+ap_yaAk;Ysc`M- zX!UGeu22k9TxAsx)JE$g?2g6x|H3uypG^Br!VsfROKPebCukceP*GK-dLSn&pe$ka zuWZvaRgKy`ru^Am|ENB6Q`b4^1~NuJTW6zlb4LfTY|q1uJ9_NcaRK)g*TWiM^E$#X zcmEa-bOLu09;H=Vt&A`gpYB|78sQ0LsHDW_?VY5z^Wt?!lDR(HV*aEY? zH!Ysa8rRu#C}g)oH6&TG3e?SPOJp9_vL&ku+j)<+a4LV(Rn;1LQfa6(GgLSYk2jSF zp||Lk>e`AKan&?u^2gCE<6O6)S2SR@cUw^`2mk>s(lX)LWB z3Pf~d-R5~UU}Y{OTskW=R8N1XmNFvHi+0db%*$AJx((HY z7-@7{Wp`wh{j^abXZPCXt&{Yv+c<`e&Z=bctU}~J8=29KlhugZgDF5o7}%lKiwx$5 zEATF`4eHABwAh3!f7Rl*K5{bcCGoM15qu=r$HKeA_Fkwy)>uabk|%K`&C~(m9}_B> z+&nE;SH_bPilla+9Ho{m4PE|-@DSYM36JYgR=#{k-;L8t#!m9>R}-3Xa;X}1U4+d? zhcy>c9=l!qWFI||)dZBlb_Wmci1hSkhq#Hn{RtYk7fD-?27Zbc=+r`%1baHV;j zhPK0I48dNkwe_F7dtd$3Hj*tdOd(8XTj|=rn31 zteOKA?YyA05|!}OK0|n{@?=)bju)1A^P6cB-8sHe-WV^OTIuGghyQ3tL1g8kGnD}w z#W|-8D`)woUYy*Us&%Tw_-5$DnZj`hR%wA}>Nb7~tr+bjCDnx2?I^%d$XOUrJL>DJ z0a4;zW-8jyQSS`*EO)r~USQ?;Q%#@kG(EEx(R=!~el9fahK)%{4fI6ch>s*f{&*15KoE5UK3m980M zMX1qnfn`vQYJ%PdsAn4O%y=8!SVc$qtJr2GBPyp}C8L|!q=sdeL1&Aj zCMeI?arUICqL~@I2s(s2yRamx2YIezDkvSQI(L_Q-P(ulCWadMtlTP1!y?M2ZM$g^ zN5yqD1dPSvs&YLi?t&`sZZ!0yS!oI#_ckq78!uFmInxr@nOz4jmWYp;87{@h9L=2N zcpDr6bV36rg~Q|O(BNv7n=m=3L7-*$n25*sg$6S$)0tF(~!MnJ0W`#W>#S# zMgY>L=6jW-8oxQt?B_X<`7?j?*1XP!scX9{@fhv0vp}pMikskSW!5{}H_j|ox@+z4 z6xZu1V=DNGEAgrIY_h8l)W9<9JoW0X>ngu>URaxQX3+HNCQ*Y%Ro|5?SI4-dEOgtULT>ir$yWy_+G~6$y70gj_RM_^4nl zcfIKwwY>O$A#Rb*GQTtJG`Uk5cHi(pL!HXbg}Y=!J5H*_)E}kv9sf`Eu`(jEooxq{ zx3UkWnw7h^*v*;5;>Jj^4j*x1E*c}%%0cV(ukkqc<_BRY{cl%o=5AL_SP~2o*T#&p zzEk2Ko#qPt1R7>nCe+N3yAI-YX%M&z2CX=HUXpA3)>CY1O!z7`zrmtRWSv0Qycvc( zEK&PJ`VHa2^;5Li>&_t;M+Ve-q?1sXfzzXF!7E8GlaR8$!?A|hg(b~QMqa_i;>q

6|vyX_QrXZIL`|$IPGDi2P1y!5NAWRkY@xI0p6Td) zK6iTKf5EVsy_>VY%G%dB9F5h=7MZ&|SL()Do;Rxnlh%p0dw1E@Ii^L07~|x2eB928 zxV!tyc+))rRbyq>tpG6v?nHBiXQ6$%4DM)e)|yFL)V#~E_En|UVc_FXVAs~}+*y%p zMwl_#2@kCeHE@VqYoV@!=DJ{bHO5qkO4P*QfMsQYUJRBtemhfBm6ijauFO#!bWOq^U-uYlZm2F1F?t9}{1)425 zrKBc#gF-4QoP%zqcF{$mtfeWvRnwcsXU?R$Yzr8hZWrc6Wo^^^y)LPDAsHh|B()2( zoiUnv^=4;{aw43oSr8rFOWfkrj(}jAoVal|aX;-q9`_f~T4^zdUs89IM%p#7Y z#74WpX;e=evflWk;k(F&(K^2RL$49V05;{Z{k)SEw93xi<*AC*5%lKP*_D4=qvpcw zXqBG*m^8a@oVw~p+lGu~85ZC(0s2J;?1B_`G7ux~2D-5iM^_WeUgK+NGq{b^o7V8+ zOjJ!(=Xox7$LR6fF7xXFPBhTd%v>r0E22FIQkST#JFO5)+|`wnr`eEYo7nnuI!nvM zGciHDWjN-B*A08TBOwfUKef_j^HbfTFoUp9Z#wL@0px8;Ax6g8mZM_NRGdxcc!pgW zZn}6*#rL#VY%6u`cR%YIFL##(WpB2)+f&MDRX#=K$(M1c{85^ForZ-|B@yP}STBB( z=2uA5^J+5o)P)(lJ&(vv;=TLxrLRZW@ers6I7!WuT?V`DvfZm*FB-v&S-)nX?^;wH zr^Q5Y4L-c7(_*_hi>r7h#+nhB-bBDtvb{KQDyBKnbkh=z{;PkXlZ^Yq(@9hDJ$5e5 zPMV#*m~|sxpdoJ&}NA%06J7q%|~V%k%aaj41h^MY-xGZ`tI+qSGdjF zi?DRF`8+$at5?OZ4ZWc#oC3r(S$}Ug!`UyDJ?IG`FG_TE0EUt%M;~GKjS0&D9lKkU zmF3<^!uiBn$EI@DS33!^5!v~yh?HD*y>iBQiL63aHTRVTzb0XKilvg-8NsVzjGJgQ zI`#}UPNZbPhrJ@D{(j^W^%F?+TvDJF9{wYqy~^t4(Y`AvZC3ugUb{4&^DI>9b_ zWl!75XX5e}E8`qTJ%{~_=ctp9TssX|hKRkyvHCEWF}Af;yc3nI?JiGBtf8n@Rb$0M zjc@_ASVPykE#tb>)oip&BZba&#MLY!bsUMG!gWV}r*WA}xU}%qO^XwAu2x7oRksV2 zm9l%9-H|wN_A=9{Uzx_B#bb^7%BfvivP;E|lcwkRSL)$JNzs`-i6b#FP6(I^s8{vw zv?|1KbmG07z){u=(?T4*t>Y*IerBhFo_mnK({1Y+f{uHd1TPqK=l&wJf8Q>(IudhCF>!7SOmi%h5G}EyUoV91Spnf-& z&x`DinKg@@W!0fRxn6IoS007V%MGuAF~(?a$EHH9Irk~x{c%G6vG;ULisMi)!_JMl z7Zd63DNm)A+!01JN^{)z1V?Wcpwn2sPB(YI)J%KGP}lW_@^)n6?UpV--ck-mb+Z%V zrB5Ym|K_glA8KEu?Ezmq$8XSy*c1xVJ!aQ7mKr-ov-A>lJ+47bEJ{)8gIE{%7xXM6Z8%P)|lQ*0;0&GXk_^tcC7owy+T_nr8q ztzXV=3+$d?s^B`L+DztR;!)z*$x|`a^=t02Ys8yo_u%x8R&hHKHa|ThMuxX@^8c=h zoJAuN;km0jIncHK-PQGvvDmyJ(97higOSxIZoHd2xb^J;t{SxSgl8Av;m<|_M0~Yb z<=7x|hNzAVG`>f_K`kcOot)!sYtyS1 z@Ll`(HBDizn)qjPT6S0Tr1t2l@_L59u5ITX`sPk2YP_?SJq7F9?sufThb4|1XWi@e z6FviVysc1fKB=y7GTwvZfWp(}L>2oql3(xlW^VWDU@_aiayw$zr%W3!v8U4DY@#{` z-(!s&A9X$9|7#71y|$|j$QsQoV?FW9{hTmWmX0l1pbCjBO&>r_})*e=pwzX@oPG`Z* zp1Fz{@9wT}6?7*r0LwlnQqIJeID=gt2GzO*{qGa0>r4e4o3Dvh>k|`UCveqqAUmgJ z2|sg|lqMPFgrU~EdB}2i>_#VIoEG~3V1KD&KTddl*9N2YeKx8(tu%Hv6-BwUr`t09 z|4+4C4?Fg_JjkZUHHupvoAtz^)5#?tAK@;ptsJ+X8Wrkd5apbnYQ56`|3panvt0j! za6>zNy(h+^S=8^s4zoJE>Rbvpe5Q`NHVrIxMZbx1`rlBYZ|qIK0_W6sp^=u|_4LkwUdC(9L=7uIrR$ z@$VKrAcSe`7*4upI_)v~HG5$v)7am#Q_-cSE4!7id+-GvuO_)(4SXl^RvnG!y1+&g zDQr$}>Ne}8%T3s+8|{ZXfzykwJE3zFhxRA<_9%-Ly}VaVptnmoP+(lpJsu?JG;Nu& z)vGX!=I$jE^(d5dPHhAe$kjF7oQ%#D0LBF&=kVPd`@3TWnOVdLq0!lX0_*&uKs-i( zv50@|VZnz~=}LCmGNc29U>W7#n@TYr9OcqC>uepexyK7<(}BoHHz$POfElNp5X@WZ zT)hc~GY!^T*-@XadhJE5X#>6c=-9z~7~n-)D|O*H_*C0>Rcfxgrkm$jWxEqi<@Tg_ z$*+-2WyyAr7dqo@*<6%XUjcb%gWa7GM0Wqb|0Hx=p*bj7I9MpFKg>m-ML36t(W=ayIpu zy)*$ijdw4U8|ds9?p-#({JKpmp*LqH$; zH`j&g`t8!xmV@SNU{In6cR@t97L{8kBRuiaSZ+IkMR==Gh?^2S-*8EbP| zlqAer&_qD(UeDVy_}mF3qBvCanR7G2PBa@W>T28gX!Uze+N1652q0c=0FE|UJ1u+s zMboUVd+B#7!I)BqU-&=n4!lx?U4$XL6JelLoujVKAy>!qmu(I|Yv;!ly1lFFRUMKw zx`9QFx@y-sauRZH3~H$LJ2BvHSus$YQKQC*bJZUOckZ9*$wjj#gU<@7*=_YT0bT1} zz1-Dbq-5FiMUTU4!~Jr^c~D}t`4)DyDsxVbqhxn#HPcOMinM)%7VNs|ATN%iNJQe; z&=PgCy~?B~H)SU;$WGjpu4(DlL4^pe`hg9nI@Z4M4N389Pw%)Pi;jY`MsPvH2=|xH z#IMVRW@S3Mtg{0{$KQCnO1((DR;t$GV7PI($X%e9sw-f$9`jr|euGPw!KgeVC4R4( z)t8#O2t845V)x!KxaZYmVc5CvO$MVWQ`$S65-!YD+s#gUt8)@IQXuLXWd~!QIw@ex0{|&xb0SmKIg>D3jzc|3N}fw z0g#aT>(5$w*|$n;R6%Y>%yif$S+y&7URT~`fB&CffB5CYk4BKd3DF9kJmd&m&w9Ii zt`AJr=*hisY84p51?m$qMn~R2wH^8q5kK)SDx&Q#9V3N#(Sgt2GL+&2&L3O`9FXu!A;OrY>=P+_9M%O{N6h)tekhM{FhTbXo zBVe4Ih4`qW@hdi4G;AioB7P$o1d6V1*rnyffCxd%@f(%fVgQEpvax|5)5zUr2|NxF zaz*<(Y>hDem@U`Yu~J?0E=}7K->ig;RjLonN0uZ}J?*;2u%=fNCwAOw*{IWWAfS;L zH3C`{0IG5X>4RqPh4+0Hu3IE%S!uO05dHT1?dLU0fgisnZ#8K@39c-uMIx3B<|3l2 zs@W2=gD~<(doB6vg&HRr!t_Z*pCrNM4O`0Tz&NaQWceCxc~>Pe4r62>cBg?@j>U$< z1uCg*4RiDjaa z6JQ@ZW6%E!68_#?bM`iOiWe;nqLm7N@cj5}l_c)s$R<};9j9V+F#7nw=+$`edbX$o z{5D(kle9kd3_sKho;YkM^J2FFOaybF;W_iWZUQ?_GOwi|Ml^OfV(bBADTl15+7)_e zjAxqLn|bmmgo*4CU8v!x3-K=k?@v>Ue;q5bbFff_Cn6;SLyY{6vm|szURRA>)SQ5w z>Rb(o|M|-6z7{XnYP9iZKD4Hqi<4D6$1H=k_2`^KQEdlJ;+h6HEz6yc2`Q{s#98I# zOgGGA2mBR_(NGJK%);I$RF3dd9Xey4%?mIiS5>vMhc_VTU!dC5qbhT8&Ie!vMUpv6 zETXGU+VX0+IJHe^KnHo_LOEHNqkH(ygZ_FJsH|=btqf!GBKd8z8MFnvP(fq#aUOh_ zl5Q833+vzM4p}#RuEK!YFne9;$-WFc0K2raVGX)7&(->Z!+)QmE?<*}!G}b5Tzv?_ zvUJN;2HlP%cRKWO{ELTsmwF*(>Q7DSTAyRJK&) z4=+O%_nM<|a-Cq9jW8_GNl|s|ztHx3vVhU2)wAK4g#n0I@U4Nqd&{Av_&=9ujqUT( z_k)+vD9L?ZGSLr!05X^#r42@n2S$bBACN_oi>S6yWPmU;qUplyYiC<-w^oT;Dt4(iHRX0y{-(J zQg2QcXF1&FVWtCe)lAW3El)^1f6XgW7`*0KXbNEoX6^Vlb z4ZbE44a!#GJ&g_E=nm#_m?yh86#!Ir`W!QFpR}W&4nv^lRE4S;>Zr^&+`g##@&pnL zT7(MZho{k1iRu8H-FHU} zyv8&EZnTtLW2Sf;#gY6iir07_=zwxLVz;Up$fg3aMLxGwyRJA*wlfOYl&Rd5fZ(nE z>of|oq>NCzuMjF6sb09F9DF(w+K5-K79J;FP|GD#nV}cQe~i~9X1gPPn9Knp4%KD` zr(y&S&&|VLnB}8h3)v`Acs`qjkwfWrsR2tJatdIEiI^Md{In!=yXM~A3lnnzU5 z`JUgyYP#`vpTb`l875>Cg}>=m-90{Y`l!sGc+cvJ{US~I7#1(Q`$C)cI1{&Z1;43hS1rFPIn- z&eGfpg7H#tht3J=NPukHd(WaAl*-7E z7JR5x>*QD|g>1XNYf4|o`~KaD)RG@O`)<8iEw>^=fxd=11W}ubt+b@AUZ7$Rrh60W zNiJ!^Jw`x;EJ^#R-g)HiudFe28^cR4R(7fhAxqdW{hR!Y399sp#{A2JFY*8rg4zsm zkzXBI)&Zgn%Q~cV&Jh9&$Rf$@R?gwG2ToD+kc)EV))sa|TF^^x7M|B&nv#TcjA3zo z6J~OPr(`L|49fHt9oqV*wM(`uGMF?kV~pg{v_(&nN+85I2s#wvWV0O$?xdWgZm>F= zU6l8A_F83Lb6wH1MFmj%K&lj5XxqLyJ+Y*~L9-FebENYu!}jNxjwf2_{}xPfyg5AY6U9k9U{d>V05Bn~F=q+tswH2$}RYts)JdEj{8 z0J1H3Wgy9sM|BZ32wd$@e;j?NY;cSnzEpw?y45}+9~AnC(HoMFs9uhO4w$V0joA+F z96D18(@xz+rJHF{gjcf~AUypljKo*FvE`-E3dp6&`eYie!&qJA&5{3T5t}L#5dkT7 z(qbYQG+1F{)=^h(=jTyca|^qSCrw%yW8{Rx1YiQ?kJ%*{_UPv!S@^J%@%V2VUAY^W zhKLKx0@QAKpH+dTu9KFa9+-x}+tAiV5;|mRSJa&$YN1$@osNX;-*0Yo_m!)^hWlvC zz%~J{qBTyxaiV$UQHcu(<~Xdr53yTxF$w%nP6xMIN$65542i$<6s0unH-}DD{8Re8 zDI2?km;4awLI3qGZ@hb$f0<>R3uLp4>sfEt-x)1BYtpI_kE9hs`Omm}M;xx>t9QPq z&r;(0V?tiP36dSr@(EK%Bq!rDXt}TBi({)tF%nHZ3m0;HZm_3M$pDs0dh7_D|pHL)Gsdmmu z^>|c!N6}Nv!NzY797EhkIvKAwJXv(_$wR^)jk5P(6l(Lv6IJs&-TMg~(dNl5{{(+Q zW*l|)wpxws*_gkGMs+!bt0;c#G$s%grCZOmW*eOKJ9kw>wW8V1u{xi^bZ$UjsY~s& zUOyO})|d+7)JDafIG&dHK!GZA8@<#_y&9)8YFC6Ho0QQFI2X^{4w4}KI_6EKxcFY1 zY+X4F&VDY<{+-o^^Qq$Mb0kdaz^4k>v*VAlzP2~eH?I~+9w+kMGwh6_+^Ab|%s zw{TD+jVdaCtnwHX$XD)y#)Fh2$VY@Y~y}VWY!$N!@ihdlc_!oEFGnuF=4c2S7=MedSnGWHf4xjfkFh_~8YuTt$kZ z^d6d`kIJu6-EIk)Q}qWPA_5vE=Gg<_Rl;Z9G@CSu~Mc)eC6M$fJq6AoWtRU#vw64y53oW z9Su+%XqPsf(Ri7-IyYy59Y-7j+Bu5j%YEG)?FN^QeQn*{2NmoJdwpIGoVSSG zQ<89fdwcl>f2A7ZiepDt8@{?lOX1B!E~_1_;K?H<;f>6ScY=-Zx1?nEZg?WSjMwNn zf4srG;q~L}WxiPvW}czT%B^tkq6^F4IK?FcMGo=t&y=}m{7MnL<8e{CSx+oR8mt7m zj<^@m4NqOIqdFrS$hk~3WHivK&*-oa3rNkO%Dsd_@Sx+Zj;qPAASn7~<&tCx6I(zi zn%Lie#Jgo39LfT2*9e4X1Ssaa1=mnr%|3p7aWyc4cdNRRYt8SN?Y&wRlg1JP?i#vN zG+Z(PrP2VfPViBk;q(( zyawC276|F(5<43E&2~S3lH{5EO;voE9YIWU`t~a|~89-k| ztJs+QvrZiP`D$fKI5h(02aQnOR7^@h3R}7U3qRq1y3kRqQlC42+-*_2g+UXW8Tr<* zkW{(_k-@FV6o8ZtSIYwUx6mTz$NTdfW@)?*`mHfMq+yOw$&m&6!XT19iU z%I!jnm1L#M!ykT`9Jy=mo84eTV;LzoDN*5tC&}%q_+-F4Ok8j2io844VT3)R+0#!| z4LYPm1gFT|@KZu%8+~J1-Bw$>NC4j4t=Bf}5|Y7ShP*;ONR3yfs8j6?^>AU}pwdLp!0Thp!A&#s`sJ_YiEfE-d#@dL!Cl zLEjFQY3jD)6JnVN{}PswXBN-y$4o7U{v)EIHKRcady!q%b81VnMr~6|(fME>K7t*# zKYfsz(b{E~05dJ}8r*dBydnl3%xdPhPEaNsW+b^k>8LLn9aKp<-}US)cv=GoH?Q~) z7=^&5Q}AI~#do4G2L*p+D3BS=r?l~tgse=@j}hBr>M!l5FHJLUbWon913Lh2|B8Ma z&Z>mc1pM<}Dw+zW8QZ7;QYOw(dX_CLnF?&QA9_&~q9!bUeeM%un#p|$+-#iPNOqk6 zSg=qgXVd)(6Pm)O#$BP5mldaBZ*J=5&X?64@pG(zYMiz?oZZheB&K~vQ3q9FZ+V_| z$ItK))1bkjl5+g0xtmBgU^aDCi;Lv2lu_H@WOy*!H)+Ne>`)5A&MxQ)U>45qGsZ{W ztk##_Hr_f>RhrUyp&QbhhM>J=o_l)6te`EdVLJ1kBL)uH&B3ra_drsa6@rd-)FX%- zbVQn2?|B2EoOr9^;O3&=KE~IU;lZ%~D^on^|6vf!LgBAo(wQxlJHZ+JB)^Q$ktVmK z(&0tmI88hPEsh{+{&=_41q6!wh(iHBNr6(H&*TMKE(9GU{}?I9sR*5Jf|mXkUdfg^{!&piJ+`?N>ZXR9MLg z4MuV4`vFEGv~Rc9&ks-LwzlyGybteQDFUs5I*9Jfbxtt`5jpb1^;ANI?P%We$wcn{ zu@|wCtmsrm>rvSC+wE?>-KNP}?ujMi9x1^RM+3VTuyu4ApFmv-hG?ZoFrwF8774S` zurTDRb8|LVX^^W3W>QwEN8ctn+!?s4_1wevq90)zDUf?M6S~UXds48PZ z6lVcIuo|Psde9LVNX2)X@J8mTlh|}FI1N8nqnzo|hK~`GT7Y%6!-TC!3W{s?7`DI%q)w0JX{sO! z=Wp^UR@4zyzDZE`E+T|Qz9?y)-DB#lu2tXrj+$`>)jpmIeoQ3iFeW(ZL|0Qa+!4hS zM-T8!MF~vzZ{hqHDNn`)#f*6=Xt~2;#p3qgyV^}sA_~yW^V>HL>-Gj`R#iy1SjBwXjGVH$&ow5!hrao>GN)m^26)mbJIseB`=Q(zK1PiHgP4CqGTWi_|y z$rk&SM;@qZj^Hvk4!l<&!^9-Jnxd-1YBdE6d45=$9*Uxs$&m}#a0r#zY~zkgi{poX zxo2U7R=f*r>{XwNP6!8AK*)*w6VRih;t$u`j*`LD_hdVFP9QQOW$$hus*1?GOs!|3 zXXomq6W-=>QT~4Agt|^?$`?&^D)s06C&Qts{r!RG+s_yh@W*V2nV=YzFTTlN5Oiv7 zw>5rw3pdB48Au^Xn-g75*DQr(zpv+=CcJ67KYPH8?iodk{*M5h7H6*X2uv2;Se`mF zjE6fBABsUJrkIviP|N?Q$ndPFY*~MSZ?l$wM&w5m^>v^m5-Kb`@!QZ9|Z8cZ- zW4_iSd0W|iOuXvPv8^Y1aHAcL`-U+(xV17l3DGLJ|9~uta`_9`LxzX4#VpXF8G?AT zSwFF1eh%-Joo-jN2Nb6u7E~r$y?H{(t0-Q0lGqV*KN<0|YiR4rNb_j*5!6iL3<=yK zOfgbCURF#!RVoftf2&X^Bi?Li`}pRtl2pTB=6%iV&(?2irjLz>eG2;7E9(RTyO!>dnTmpjSSy z@)O$0H?Fs%C9l=YUNHA z1v}HYZQxKsq)$%L6?VG>6P4(I*sjVMON(RovXDn?C7eeeI~NXDFsCMY3J1Pu!*kBhgM2$kF~SSxN@^1U#TM zII!ztB)BIMhT8}E@FR}MK{WpKtZH5clV#_lt#O$s__c0BV_ z;V|N|AbG#O@f~;~P$O7NX_NyN@Io5t=Kx?Qg+3iuO!JM7Rqbjm%wag0kq%uSUrj2C zD;L;Llf_9ct=v`FrF~pw4#rQ7psiVIRgIc|O|Unid3=1aoFSvgzyB`&mdv_~q;lk} zJF#X>RCc(ohNW<&qP4m%sb?Nc6XA$f{Jx}O#%L&cc9r0(RDrtfusChUnry3eN_PTp z5rTT|ruaH5)d9J})SWE}XuNKPG@fLT3a#&fZ3J255f_Fyq-2bg^5}nD8(uof-4&YS z?Wt7Pd!Xbtm|%Im{kq*P9|}I(xmTIe*AY*(gEb5qrD^%~YIY&@hJ1-O%(q;%x)FPo zL4(l)S#mp}*6=_QlP)VZQ|N*bnxN8zDBryERUzgVuN0%!);V6)>r(dI;2b$?be|-K zH=GE^bxg(Ti@{90LtWdh9pJGJXF%ZbhYGOaJ`8-0qA&?A1yGSCn#8vP7RW)@618Y6 zVM9Z8apkwtV|$j?nmuuPx-nMFp7`0b58B1r5dM& zK|No_Ctdu`8xzwuC^~R}s3RUAI_f)D+uyPGdI#^-3$X_tX0%K!@GVb}=5iF2`ei=S zwQ5<+^BITS5b-9w*V+7KzPc9%pr~ShVhQd&i~#rWXQRu+o|M(#P#|wF)2_Wv6i+eZ zoL1FEs=p}?&dIk$SrB7D^hhFjnqP!W!$6Ial%c`&Va+8)1b1P^2a+gTZYGwFV`?E5 z0POG%@6P!K=+;#YIpj2dfu3oA8KL%xFwParPorBYw7je1Ld)kdk$|Ga_7+aTTfkhl zVwvXe!YiB-9Ou)4RD3+q*po?&TQG;PFWA(scq8x6_%4yLI}9 zyr@0uESx@02Ov&K{j0M;Vh=1&bSu^^V>%rJ!k5qrlaAd=Yl~ z_&S)alg=IIy40A1(6ntQvKGe-HSWVvJc(i|pa5&n=NNvD&vPl3lX(ABB=wq{Jk0MH zX9$CY&QBnw#JccLrYCYaB3W}h&mIuTeJ)3o*l83;TrBUNb{lheIu^!;9HyACw-IZ zLwWL(GcG(eSu>C=&Iq~A5m@rqH?Opcxc%ZXur3l!qXKocTScF?OenwX;RV2zH4%C zl4j|GNX4%Qi>ZB}g*yg_jL^QCMsK-7>hSbgFs+dMZ7gy+FIQPo&0lDmyh-#@W!DXi zUZCSHZP%#kLhix5L6iRmR5QT<;6&zqVxVk^mwh%%MRA}!rN%%pwjLuxJP)$Fn9ZK% zH=(_U#o^D0EhRO#{|JX@ziQ^WbU$#vfz4nz&p*njYj*feJw^t_nWr!6!|i{r-uwnU zT8iEQf5J3T`pP#Sz=5E(o5RAzie$<+9=lO+i`$h8e=XEym2t<^kj3g@em{F!10t}a zq3B|}UERsRE#-{bVX>xfTYKyAmnv4VV;nDvu^t*(6tWgM8ra zQlioWWC*(B-n5^R!^6*N2OAy zbhZ)%ML`bzfJnkINe>Szx~tMUlSE-Rr&x8yCh&v^|k-FXNigfwx!eWkiwfm!@>f1wu!GC z)UM}qIO-N17xDlNw>|WP(jnJ$8fFq4orsF3jgnY>xkC|!@x!|4-R5~I4b>hS44xQ$ z&a{~hl$mUCF(8}BPhfQMYe%f)IjTU#Ko2K|8`&%eibst|Vqmh^;=V!2ph#}Aj>uA2 zu3{WV_KR()COwrajNqtH)enCB^NUH=UH|Ou7T7!Bur!UJW$wc>gxt?8IZ{JJ_Y5<` z_aqC52pn0oD5)?O_ZsPp0c6Hx#e4BonAO8GBo7;~;sCaEZEo5Cuq8>AaZ6JUL!$*u z&GFNQC14s;ZQ3+dSU4IEO&Hi7e99$DQ5c*ICy&2>zYVL z#dyJP5B;y0$&OuO0;!+Xkb3_0TwY4iY!hM;HOh?@y--~OSg96g**@F@VvGhe;$126 zE5%*g#rzQi#&(xT{N$WsKBjyXk&uW#j0Pb}qUy)p9=ta>3BobPl@*>B3BqMm*lbCv zZe!e#3jDwe1zXocuSplGfR&C&rriQbGO!F>qNVJ)e zmT9CD!DU++%in))hyox;>g+oO6-jgOfeq!plC=&ZB@;eiu>2 ziCmWx+SR-Ew3fnf#|xrm(Zv&P>&-3tyFO$qV-zg)VqnU8FjA)Wpbur5LUeeaJ+VVL z)4sK}Cy{D(L8mNMShW41ETimJYUn$YUGe93Ju>M@#Lny0qqwj7E-%kWWrByCoMXji zuy@F=Z2)6!v6aMWV%StFC}7%}jUx8*K)XVb(1y;?7P8u59@ph%vtRGD1A5ADOhhIk z#8~8z2Jo_`lYy*v@X7_ubuj^dZV; zmxT!Ssw%Uo&c<1^$n;k%f&gr}#uiPbVp$)4UT63s^OAHYx{WZ?Y$iiY-Sx*OC$_(U z{#n7>5;y82D>5jcgTB2m2X~}rj|9Ie&mB#aK79BZeV3X08GSzsrny5dJo*jRDS_C4 z4Br46*6{=&LSe@6kG`{%{-pjN?+nx!C1DqL9I>erZt>{hA4R(C%~Ps&$Y}AHaeH~u zh%nlpGh`r}35)HA{c9kHnd~=@*qbF>R-8P#;OM(u*Md%ELyh{F(g1~AYL3~Hu4tu) zdB#wBfYHE~VAHNMgokZCTj$kB36bgr##F-5H5a~Z7<`xvb~mU*By)itT(!6x5vUhR z7F}|)9bH3rb}l0kZ?UmWW+KArw_bLY8^AsBW&DvGd576DhvOQ1*&iH z4{r@A*?Gv=&G6La^WAe^EHDV%3x-m%hZvm+Z#Bfl6=3oWr~7OE2+DW~u9z-AhdOQg z8*}Dvt$#eb*{)}w=a>(%ltXIOoO0^ge7Qqu&4Y@q5UJ)^1Fd&j$EXjX&>@EX7}7q=Uv zXOhlnXZ=*%UI@qA}*!VWM)9FQ`3D&CNDug1` z1p3XLi2qQ1fC*NE+DGpIjfAVa5)4y@^q=INSs{{*kZS!Ts?(Dt9)tb}c5EYy=(vE3 zlj=7zYCaZUte$@3iYL2NnyQ1jP&yMGa(k(YR5U_@PHx61B0O-gl;L~qkajXtLc_4U zP$O{K+4bea6D_ox5X~(36zC*g|U}&jymUS_P%6^>FIqzDAJTH4ML~?8H(v zXI3u-LgyG`t)4^Y^iTibaXqiJjpbgq)fBq9byFjWf&{K8Q&qN&f$P<2h5AHC2N7}> zJ}Jek)&U3A`XH2hK(dAOpW-SAtaWMyv|(T+^3W}>7j{C3;6Rs)C%|uzuuRzcdQmp%UH7(m+{JD(t5oQ49_SVDt=M69cdZ;P=D)@ahgVySXvuWbZK zRz@>pUSS}x($(Tg( z-Z--6etkzdEF%38=eyO*awbKd zj`j?`EK(1k%)#G}B(ZK57+~zMVozU@&|^uT9(sFT4&%sy4bZhX-a6^?&$LMMmx6Zj2Vxa^y_nrps-dQ z&-xU{lcn7*2+D(FgT#A)#Y*8nsTEQ^B4fCV5f5-u7)~1fsW}8fxiMiiNGHELaCgOt zp(@CnGwmDrpvz>Qm}Pg=E9H{FiLh>@dnDl{PEC zVH?}soLcO3dG(_;*EwvF(9(!Cp$dq1^75)U>nO`!EFYeBU(Lu@2C39E0~^z7V|9;) zqf(Dr-@>!32yG8M4|F@;o%ns4mTBS3a3{iEC(P0hj5I6x?Z=^zM3*9N+t5{1zfA`5 z_z%6@G!iwv!U34d>hH*c2x+Fvf!_nZY+yK}Z>uZE$qtRrAuVLGZwxj55Az+IG1v(a zw~k#{5uq-01+rV#hXDlR>FWU+T z#JFyOnn^V7NTpN`)v~W`Dc6N}QUGfT(kaBp4DiY+74s}gaB!L!gc)nEHK`oiz>0Fr z2+EeEgfXfOf;LUxQVnEFCcbn18tmojGVoQ7PQC*%cI#)%Pu)m!4b^`9D!GfBf~ALo zjN(9TCXREbLeS9(HF+OmcAG2zl?V$*BIG>V)k<X_}n~ zkjOEHxo0?fNVPD!^!JJZ;d~w>;nth^ohF1`NmCO|BW6)}RVF*|&ozAei92=a<5qPp zi^~+yFLcIkw##GC%A8bhT&#>R#yhM@@45&G3`U!*ih-!5&Ox@y)+O@fzoY7pItCvA#eM*v2~^9ZIoLYQE0*Vo4)Xq=565akhbH_20SygY?yVB3V5csV&ikwQ1=(7F3ZR}ikvy=_}fnp-q2fxOy~Cm8r0(H&Eo zK%K%$MZa~i$2d_88Zg=8Mgm+NF8q11lk#@dC;Y~RK_*ii(+D?ZKi}M>84a`DTmY}J zCxdpHZRfYkSy2R(KzIb7I0BYSZgs0L0DJuY55?$H(0~ir3kio(f0$$Tl{DGA<}YHE zi_Plpv-m#)a74Z5daei!^J(C{TW-=_r-@ESkc&kQQiBx~?B)IQ5cgryQX{exalv}I zXori3x00}D+L}=&RWN$|@-P%bMG~`whwY{W$w7UGUZ}7$M73lLGvKa(B59!MYygs^ z^!QD|ctbs>Kqlzj6;w-cvOH7un3xxfn@wo5%L1*&*k#bL7R{{CklSq<3~Ez<%WG-A zF3`f4--BnR8Z3F-E)4wb5HpD$qZ`U)KBkstNIr&uAN1P$nKTJd9FwR`d%C;krRU?G zxqqb_uIP9dyXF1;lNeG_3Zr!Dn>=r6oVAWYs8bOfI5xjg5qow_SozS}h={+Bl%VR` zh(d7+41g=#&-Uxh&GvHT>p%X?OFNp_O5>~W>E`8S`1ku~%uwJ=Arqb2kppJCP$$}ya zw+P$}+#|09`m^AftiyfaSmFjuWBNq5;q1!^bWP0SYfA5>~t0#C7ED zP!UB;e|adS&ee6$KZwyeh5`oyM=&cU|MnY(y?NtSV@HZ;#e>zj0I_2|#kvix2Cg~I z4@Dn#vHaKbTsnEZ8l|cNw)`o9e+k{&pt~gMe=zuzIs$%I6=6XzX`L|VVT*j$^=64x zraP>lap;Tu9s)h$(x{Y-sN@troKo`BJ z`W8z?Fje*rEhPE|eDPp9tu$PDJq;wgz?8*jYJ9oeeI3w`eY>L963vp+IUUq=#}$Y6 zkf_tLt3$5@x0_)AaV{J;nRjJ~Q>&?)ejr>kJAYwyfMKaaRfo)WCAnPKQ7i`6d14=# zJe%s#qru;7zdq`qGu2w~fMnE1p|z+z>y|3Mi?{BjBURGZe39dori}4&zfy~PN7@ls zg;U5b&t4{YQWIof7V(A5XnKwK&Q2cbb#p4SUjLJou7CiHZg3A%qw|x+gEkFPr4w?bPEGs2OLuqx1X^DgnRJAcQl)`^ z*VQpT&#PnE4CBH}N+8f}{n7kG#Na9apfzj?M?sRpHmm7VItn*V@L@CpK5m(dp&+`) z+4PJmd#165?_9VKu4rX{T8!vHLBwxWsHC7|5--Wf}RBQM=0FD3ALR>sB<>cN$UuUS5MkWQHW_&AtsshUDC%NjG*V-z?=o9s>Q;6^< z-=OatuH^x+RSi6rD(PVK&`~19BoA>;rCTDS3{!MtOvTnH8#?OY(8GX? z(dECxX#ds2^>aI5T!2V@msF3*u~Phwa{#_r?N;;q)xVdU**%yMPNbf_z=(NqVMH6< zXexYX{PVMsZZ5Y5mZu-Zu-EeSfa5D$E<5uOr1^Wm8jj!^xe7LM6VgO7nW z%Q6>cie~d??DWyqT;#XxHVWTNO}`J+M#MAkw}t~REIZWkfE3Lb4wl}cSq8?P++NN{DiJ^?RAK-r4;KZUGiv1~*1RX^^y?g5wV+!_>knv5VRZV_Pd0_o z%u^d_J1&-abV2vt$^}kvGK=EZX);srYwR;iR;gP0NS}6;V#wGC{v>Cr6x$L%yxiqi zI;07TJODIUfQ=g*o+Pq^1zAC>vPYl@>4J*P?YqVNX}(xlIVZoo#aSW|?t7qzsv62M zHtvZYODc9GyV&EWRRO2-`)En5Fq-M+eu`Wt4MC-2;29c^DLNKDLZ0p==*-L-=g--c;8SulpKqhym->EvV1F?yuv@W1I{p&`v ztGZGhYL}~pBV7{-f4Q=aov;;<6=6IFH!dZJLU0SP+O->#6YpZmwQJ7ne#-#1LWWtZ zhyT`~L71CxiH5EDw|Q`*Z;q#vXm5~~w2(k|3+$xyh{q}Cs&yGmF-)wZ>;IM0+t~7>@Fh=T^~Ce-@&XtaQbux5!Y#s6h?ypI z(Dg`xvZtyB7bi>1JH1@W0nFZQF~s(j7TUI4ps8UtFcRfvLc5kE z)?5JY{s^vAe4eF=T|Vg8rd$|+6{P@R1#a>}gnTnRW*B=$=P#>M4)PGKQO-LKT0O+= zG5M>Kn2{DO0jh&9GzAq7iha#WyXX6zfI^0rr9h@?mcX%TJ^{7vz402P8G-zYQKGsZ z1U;pOE;Y;i{^|3ahxzUEe})x=4TSQ}vQ9-48mj0%$QX!44FXU4)!n}62C6Cr zD`;`-ebfVx8qKeiFH#WsfIudF?&IaxS5u~9NZGPBcka&KNW+59wD}5tR_tF+A*sjl> zO+Z7v;Esh`X;<6bzcJdEnm}BhNE1Y?s|inAbflvQZ#-92Dg+xv*pU6i$UnN8y3Dgm zBuBTV7B12J;MD?~brt0_nvNPxK`JD%3^HkugaJY!z;?b{VdshV9$FNK6KG zJoUuFkPMKP`>aCudtL zAGB=RJo;*B?h!B=r|Q6^?g2aSNy|m85x8q%<(?~en(S!`CQ0M=HTupa%JW;9?%GK| zS+NWeoMq=cIF$55>dne})tCe!dp0l~Le^|}*TAVo45JmLD?Kv|ZjB># zht}Rto^m`AyT0Ov@43$F0touBdPFIxG4+XV-{>!LpU<(8UJ3(tlTJMBVhd?Y?Q{Ex zD45{oA_rT|ECT8~-}pztCwkx?tSXszi>!lhAj)MJakY z|1})07tuyeN*1UP>?%*^GENI$+7C_MgfsXG35i~s9H*+dug1IKDKwE3?D=*$dDWH0 z7JrWP!)p6G6)tHW5lv&jv$LqJw{Z`ngTLk=J{xbkjB^}aXqU~s_p1l+nH7e2Sf8(Y zz(B2Hnl3J&h5=#j6yT(BPno7FMWz=V|194_i7A~NF9jHsKthq|GhAyh-=cc5o>r5C zy!Y4Z^?l0M(!o2zX@VoZyn+J$vT~>-C_>8dDhTDXAE+O_|EzdT^fl@4JNJp|v^1h( zYkEzXmm2gN^ukaop%&!qu6JI(n>`{nMquOF1L(jV`n(@voZVOo#~QGksf*$6N>>ui zX|x;A_>2dr`Byg-n|kE?2K5P)!twBcYco^PosXnF_xjfyc*@%%>lG=3aJ?}G;Q%CM zC+Oe2sH`oNsS?47ZXM2X?mD3dF>lTG<>fAQK3+QdvWdO6$@v4qI{#*c|`We>f{`~^W=E|53&6K2kaIN=Ww{Ln)o__hhr38&h)@tKO@Dh>{c_+ zXA5;xG{#8Y{G(6E9jSf>3Hrcs3 zO3Caq^@S?(q;6NqzHwVyHw*+GTg8B&7Fu=!?FIRi2TXC z!LP_}&(>cRH8r%trm19h*zW5S8Vs+Y5a$amxJwPH)mzk!&nsbvhk!p({y2#zZ!5$L zqigihs}frp^Y#>iDmMeNzK1efKVr0|%6P|CHc*0Zp*Y|iOY}6q-*a5i~^_ZV7(_-9w2YEhG_DCFbY%slyuS~ z&d!^=_1Z>Vbpy?}<)DcQpb^VI+Qo$!I1MwJDsn#>yO6|HJN1byKJeJ0E4YAW1;XEA z|L32VUxegW^@42F=6t$Zd7)T`S4WFx8rF;ajizv@dk<+?he=bsT{&!YRmB(x7GH-# z@|TU9IgQXFci+QnxnDgZlMV_unMa*3QZTja-vfh~F_Kxeu*VF>HleIgN5q$E>mC^1 z#To|oMc;FT`QJe`bjI#)tF%_i?~B(~e@73x!*?|9hEpkGPll1+ayQLucmJ*9%Zw?g zO;LrEfm&~YV9&ZHg5RR-no|;K&6s{D^MB#h1uP^N#icFF&$GMx_4WLI3m9y*a~LXs z8hXSofPuE^CZcw_8=cNeHyX_W*uaiEW)ZrmDlxm;&=W_lW}7r?Zxft3uYLShq_9)-gG5Z7t@19#Z%$HQe|F_2(xlRZJb7R z&n7@qy%Z*WIR$cgyIS7+*JsbTgRN90JS27?_Ubp`GLmD#@{PI_sH!6}Pmq}@^cI=qpI$9>fg&36L9DsQ@zUMvI3dmiO8tF=>(e5#5&wVv})k@rKrw zsN~AW8p^ITV=k~(3HcYOcL3s3gvWdX-a65AYIMG`L3FqZIB$*(j0j+8eV3}1LHiAg z2asXbNoaZGvz)$JOi~n@;M0cVSqC`gF(1G!&4@$Ggz~#YsS@?n>=ej2;c=t^v%VC! zRD?*H6iR1oqV#>3V)QY__zkee^N(xsZ5&$?yyo9S*fLgnB~rF({} z8@Y4u^3(f=YjJ~THdUikzKT&c_kX_K-K?-6$$ZU7vEiJnfdV5NDqd5`mjBm502h%@ z2*h0<$b2s6f6P$!WC1K*S5|-dz0g4W@G$svz4j((v2r@hsd=11qPcgW+Q@s3&(VUe z`5$l%UF{8QDJc@BuOd=8Yko`8w8A48We@dBw2N07&QA6=a%Wmc^2ZJ(aEZ|jIXqJ9N*h zDJK32GLwcQI!*sac9-U+p^CKUp;8TQ~F74r42#i#&{O)so0)u(-|Xz^$XASw9`Crr`m38(bReF>X+jw2pRq%tRGs)sRh z^w@U@lIAb-)xBzVN=vCnH9H-S9mTJnm^>3ZZ|j*Evwgs9ZVmtOzhJr)l#>DLP6wa# zp4|9U1}k}@M!Q5G4D$Qdxah|P&%3y%YMpPAMYkMT?EU$X=n+4~Zw~y9JlUb6(-Y#$ zIbd`?MJ8JRl3zn)a< z(iD?#(0i}T0kV6*L0D;_<>HPDt+4WB@q1TpNh|UiM=B%DxA?P{_kJK1YH!UL*%(=Rcy zC`R^N{@&~m90MzBodm9nTBt>EctfcQ*#OdZbsj~*4r&=L3SH000lC? zpYCOVGfKVQyH{bNj#302!6|w8mt#e;0z*CV?`9GPQt35q3(CKtX>5l#_haPaQ};9r zCm#8`?2&(i;w%kM72GOCEcKk{O?z~jKo;&L-LZjZCZjWi&?C(Pw#0)603%NT66vH> zhQtaF&KA#`4FKJT>$N&7#3{1+ou(L%aZ8m|1}|6P5F45-9D)|GHh+(7dRE=gKbH}F z=fJ>6#y^{BWV>0(* zBKBvwl)H&8W$DdMW2J(kT^so6qhlxLrS`O$Ne zV7x-kGrYcEKHlv<+lpYvpVN7IfQoPjwZXvT%g{MY^sGoibM1wiMY7qW$_@&Z ztIwxYxmIoW&{&l9PkB{D<%BF`?-|-$cb`$j0ESF-8YFd$R7Yg^VsnE`f&;oK=00De zr-)BDssxNVi$xmKnZuovlD$Ozni*xT1J%Qu`EI=lF{)r{(b83a$#HvY%BOSJddiWZ zR0_PtJknMo(9`_Yr2-EdDzp5vRDP94uXwfwrS>m5_q@oN6T8fztHC2x z`VKg7F(kTdtm~F7lM$mCL{)2@pQ0g`+9i#I>$Y}l8^dii{9Sd@aM(dJgiMZ8IInV( zTikit^4KvCBz(4`8KztQ3ov;vSt31rta*f0eZ=N9%mYk(s{qnv?vptX@z*Ik&qH@L zyHu5c1_R9w@l6<+_-v%{_(g4HTn*W5xf~}wIBBy(U0J50v*S9y1^6l#HI$+B)%N`p21lT%2u$wnpy~dxs`fjko2>zdEn9+O;D1Fps;NC$^)z(`iDsRvON*`* zcVzg`2t1rUL6q`JDS}DMuhK2A4l2*&_TYr7vJ$T%xI8ryz?olH%_7Oy!nA{@`At-B zdWnPxe+CPl(d&iyjk%b91p7973Q2~9Tb60H6Sxs0puo)@f*hOe5*_9K$)6xQYZR%1Q}@vF!!a(+i*=8KOuGmX?uQJV8{cA`769Uj7j)1zh1qZ z(L5|L{b4KRmq>oxuHnr2tqjnB$V3;lf_QHrUuWmL&+F$cMz3s`cgn#i1<}x&MJc0LreZ5!wWy|nV6FPVbTOn+#xsDy9_Ee z*W$6FQLFP=l56zkIJSgNJ&+Z86?fTS_ME#Sp_XtAd|oO-tNJhX>6r)iKADRY$qjQb z${Z-P+dMC2`?1}eV*|!P?lyz43|z~ZGU5lTa)J-6cun%tBX%i#qiTwGGVCk+4KnG8 z9H|$d%d{*`EsEtw$Xq^X&BtJ;W_VK56NAWaTu)4{Ul(;#7h@le<-M#dV*e2XGkPpm zdQN6>3a(Q!c2f(AP?JJ7iRa#Ur(`)AI(+f4JYs(=8wrnJnh@Bf$3#lmgoh`N@NFuv z!)jzQ*pXBw&=T=B6>u{>Lu)nPT7nNt+y4>`qpPX^i@St8azAwj%FFYfhb`LaS=$4!E& z7^#oo5;>J?R)8G2KKZcAO7PnoI)=VLqzbc$TOybg@kCA=ct_H1IunKq&Ykufm5UKf zUO}Wk)9I3d>Phl0Jab8Pp_LlL%6TDY=|+o+bT^vYO?k;V7;ETH5ELh~_C1?iuQ4P^?x}p$fioQ`3Oe?LBYlOLTc@d*oHA~2A^HqS znDNF2G?VHk^`8^Y7$|&Zrf$SfLxdX;%Z_;uEdiq5 zJaPq~vIL7wEF;A45I1>m#~3)bT}PT&1E9mYE24=7r0{b(=R13wCsF3IKh(!4SEb|2 z7#IwL;eYNv5FVTk_{r?F^SGot*VB$m&amAwC1;3b8%iB-Y#e$H12+M;vC%Nb}QHIz%uak1-x$ zgrDmgvr}`v*+;2RezSAt!=o#FPZ7>pk0?Rv9EZ&6Ax&35xUJ9uDHn`=jskGH&?-}2ng4^P&BR)f9w zRV3X2IXU;pY-)uiOgYATPPKkOHr3t2(oe-;bziAgTu85ECb{HkFhszDT0wf)UBnJd zC{0KO+F@8J+6Meiu9ggW(mgy?D5Ak}>#6Qh1$SoF9&HND_-ecQBBv54aYMrM+C-TatpmbiC`#QyvlzLqQW4*X2 zWNr_za?(To2O&cwL+#v^M5{BzEqA!Eb(8Jmy zJM@XxI^y8Had4Ij;i||Jy$|&m^v4=~})v8(p>L*f= zSO$1{5>zUk5M#;49tegDd&*~OfgP(buBko56{x@uA+6Z23J!w~V|7o`9kt}EhC{(& z)5SrBUhb$~JnlB0x+>}?#XLqA6Z)l26{QR9dy58TEFD%7ZL9eT4W}~) z<(%#?k~2GMaY}Zt*iP%ugrLj?S$(?W29jzKDS{&2VJ*VUrO2Krk1qE1k*p3Ppe}<0 z=p#n0>=?9}-e}M0q8B1{UX;jX^mLYdSzq@RcbNav##A%ylZpg+U#!~}&3Cd<`r0u{ zLk?s9$P#-bR8zo<0d@a+UcI3BlJ;5{)OrlpH%p}uugD^@A?h2E;^MA=IyBZCwW_L? zM&zd1!74pV0AU{HJ1NEYplUR`!=E$IJF)oLcd~LfPoV1sIS$<03|gv{?BAK;BZ;)P zFE_a=maBRuz4`6-kJZ!O%p%6aM&yGIbaplt(H7iG1kv~raIJcjEiSDtj@d5ekF(YG z5}h=Jwe$#46sl$-#aJGWOy^K%uzYf}9$}f+TWqgcL&50GQabR1YBP7=Go?}4!%~Gp zIeP-ub#twp6d2Yn)5ZfSviqd}cmyVJL1IHdT-7Tp#SR5%l4xDmd8*;$raB5~T9E0I z(&7RU&-Hti^R@QEKqg+ZK_mL|~Q>p$A{#;z4 zWE26yyAOmv7=RDar@q}%J0%ztlB;Si9893EbqPUaT${t;8zXPzVhf2{T=G6}NJPh4 z!?2lSmAtl?!TnRp7(W1uLFknI5E)W#TI?)n95b&(Qufga3YFr5nNs$0S&d4`5&W3R zlJ<6C^ft&dLGCcMcl!=15yTkPJ{DUcqM7LU)dVAmNRM`2rxeE?E**~fY`5NSmCppV z8y148^*H_TQg2z#c1fNATS|(EmG>XbcEPK&hDA}4Y+c-}pPv$50hW)3mS_bK{yb;i zaTpjK&C3H37+PKG2lBL=V`fHj>IXB~S{zAAQKSy1i$cE1<^1Fv8%(r^leE8vP#-lzw{hL+4 z&x;*w>LpeNukKcGN$>>JLX>6atWw&p29@WpZf^+H+Z(^*5=Tx2Ufnp7^`UwSoS*ja z56g$e!xJ8`*`o6DqaNyCcBn~T;(sJxa`u`TPW_y-?>sU(fh4H4#->f|Al-dM_rt5* zdjAZ}cJpe5E=TzIRCSNin!rpJ9QGT~cd>k83+$`e|B)M-{r7VB_xW!AX?g!QWEWoT z(>K%5f+XoLW>34#*?IM^3`ejp7aKppV)N_u2CcUC*q?Cwv!DJx?c-`HeFx^g=J%n_ z?$v&=*{vV0Um@7INAJ=rS-XNyB-7k(mP^^sIb@BfBf<7Mat5%EzP?2>!>if#b~{4= zGIIy+gd2gA3|72*gN{;$f9pE?-P3B*xfB&egQ`E)62_cQV-+4_qG(uclh4r7c3?bv1|kiMh)6v336mE zn#K^70ywJ}0<>8sG!$!99+t)p5c&<^yN9RS*RP&H_9fV!eXg_X&3b;rwiQZlN&bM4 zg?~McD)mWU6Er~k3$?Es_0+wn*b~)Jmdo9$WNkJ zDf1^h;Ou*TFZmuQ&g0$e*ZHq@&-t63q7~x@l&6vf*WY}7ln$fSui#Q%*7o^&_6JRh zVS6uxi80ktehy1-e*k!7`+V;uhXWyy8S_9j8bx*~ax>s4ULo|SsWiB3|NV(7rZIX* zhO|vjukPuWzk>Br`!SxbH6I~?{rDAozn}=06s2j>Q>)X1cQo?G>!+Rb#sOqNiTZ6< zH_MinmxqB-K3%6ZR6k_%VZPvLOtQ@t$=_9GnR>Lgn`yviHlH6peh@a%_NV&STU8Su zTf!aGSkka5Ogc^o>no|90q0uS_kSSnd7j@bubxoKdAnNB-cNc@rE)Gd^BWXdz#?zi z#$&on2bt`$q8DH5^tZG=67H2tR3|;KB2QLwkLb6!l~we78a;A)M$|TbxscmO3NAkJ zmT=gs)mF!M*y~GQvZxgAJ4-pHMWCIXQGci3*WZ`-ODv4Yej0G~W7f*lLi!HXwX^4k z_07%dT)y&%z3a*)G_dMNI$Lvd=!rvbU!gK_KCq{J*z+S?`Q-vV5||YIcyqtpTv8o= zx!oYX5RV9@WyLPnKJ8Ei45;)wIA-#vbls9MrC;hyNbEYl86V!zE*8JbG{0bw$ z3$U9$MGoI!Q#g+IgvRejTs5BlyxT8c-O508JeN8JI?6klc1xsiU%o-J*FFFv-)wdD zGf)G3qw9`^Gp-RROj9(K0^s|=S_kOP1n#Z^XL&s0X zjWn)R>k6Ks!uN$0jc@4+0yqdPKb`tkfRViAea7MN6_QOAB|NQBvD-5jv?T5ep<5GZ#BWDy92c&_X*aWp&F(aI< z!ej}_%C{aMttwX{FnAd38O%G5Kwx;SXvgX2`Hs;AZX8)ioJLF8zv1&P^5f8Gv_+`v zDnWn&TmFg{lsKPLXwrKtYehr3S}raw-e11D@rg;OOaFYMwZ3g^5r)XIVf)W1%UeU% zCh$__9h?m!!`U5F8DPonn(zQxA78$MbXUG4ya=>Pfzp!FD7@oI#IMiMghMT8%(PH| zPVI%+O#4VgMzt1dAd3L8=@eKt=SF{0>uP5{u1m8EP*Vf2(VTJB_NSz@5yb&}fZwZ* zTPdC4hnOqUy1#KyPJtJ9A-M(i{iXG2>32XWNL*-MKCbv*td=p&a3Tnjbmat&tiHB$`~r6ih;#QZVU^@`NW@xoF51hUuOfB{fi$aI9ESknb!3z{o6 z6TCf#JCD1hZ?^mS6ADNfWNFcRC5E@m`QUuGQ&1$`DPNRLtNdkUmFWmK8KEh}cO5Kg zlQQl=A`74xf={L#CfsKAK*bn5QUhCf?m|*n`Y#&cd}f46jb-4n`G5G2mM=(Qsbv%< z9jfNmp|QdT5{No-|Js}zF%UYaFzXaYs(eQ$g&pAbu23sM40oJM%+qD6dM4#UVcnb)^%$~DWvb%*r zGTHnaq9CLz76)`?3LYewqJn_+h5{m!S4OkdONJEiqru)-AfF;_jFsz0+OTUW@G2mH zLVc=ZXJ7E&%iSl0eCx+6(O%D}NinN_BE^SEf?JlqjFW5kIZu0c>ESBx9g%e00V`PL z#wX?-Yc2VPDRfueIf;Jc^(+&cCfxN~E9PEp%~^c7Ms7MGYR8Tsfbkux3U2Ok7;(38 zrpz6`A#3dEcp+*wu!&3Gr(pV9K4-`|s@fF-y-CV;_P>vFk9OP7TmB26-l2?I{-_^+ z`T4*QBm}IZ7p~dCY`ieHODuh#Af`*|>l@SMGh5WRXX>yFx?kA1O z*X#BD?B@C5;VVTzjVUz3qXG>kx8v-A8*#BcMKa#w+lObM>;UOt{{CQn$o+bc`Vi^| z+l+CN-3eS2`3ga6vd;EHNRX}B;ej5GqA;WBYZNUOKG)M6N&YR0J=PC1tQ`Azc45w# z{a^+IobK$9v zyZS~X1_;jRBeoAJ6f1mUN>Vm&N(kOc$^+d#KW;I&21XVY&S-#xllWv;qR{`TNv-u#P=R&SOF2o_tD+lmR^VBPv|BO(|0evv?6r7X@TXrf zEySQ{P%IINmvPxi#~b}$ z@3+$OjR@#ya28+Y8T6Kvdh(iT(7`-|@fb@b^;u-bUozgwx5PKj7`~BvziqJVi$m2G$j$} z3=PkS{K1Q6sNg3k!Qcp|TBY&}4?t_eXZ~?4P*>$VQf#XGZlhG_Nvw6jhQ#IGQ#h`K z8!K$c$81f8pFc1cH88{q!3J0$zGJse!x2XX z;q?<+yc-WBGC_6(Nt4UL(t-s@rlkc?gWP(KBp)WL&Jb)~V_AC6kohHuuoIe178t4| zfCv@g@!(hBqHIWV!V67d)Ybpy2oqU40(=psd;b~B9CCrPf1XE>D? literal 0 HcmV?d00001 diff --git a/x86/gmpxx.h b/x86/gmpxx.h new file mode 100644 index 0000000..c27a2f4 --- /dev/null +++ b/x86/gmpxx.h @@ -0,0 +1,3442 @@ +/* gmpxx.h -- C++ class wrapper for GMP types. -*- C++ -*- + +Copyright 2001, 2002, 2003, 2006, 2008, 2011, 2012 Free Software Foundation, +Inc. + +This file is part of the GNU MP Library. + +The GNU MP Library is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 3 of the License, or (at your +option) any later version. + +The GNU MP Library is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */ + +#ifndef __GMP_PLUSPLUS__ +#define __GMP_PLUSPLUS__ + +#include + +#include /* for strlen */ +#include /* numeric_limits */ +#include +#include /* swap */ +#include +#include +#include +#include + +// wrapper for gcc's __builtin_constant_p +// __builtin_constant_p has been in gcc since forever, +// but g++-3.4 miscompiles it. +#if __GMP_GNUC_PREREQ(4, 2) +#define __GMPXX_CONSTANT(X) __builtin_constant_p(X) +#else +#define __GMPXX_CONSTANT(X) false +#endif + +// Use C++11 features +#ifndef __GMPXX_USE_CXX11 +#if __cplusplus >= 201103L +#define __GMPXX_USE_CXX11 1 +#else +#define __GMPXX_USE_CXX11 0 +#endif +#endif + +#if __GMPXX_USE_CXX11 +#define __GMPXX_NOEXCEPT noexcept +#include // for common_type +#else +#define __GMPXX_NOEXCEPT +#endif + +// Max allocations for plain types when converted to mpz_t +#define __GMPZ_DBL_LIMBS (2 + DBL_MAX_EXP / GMP_NUMB_BITS) + +#if GMP_NAIL_BITS != 0 && ! defined _LONG_LONG_LIMB +#define __GMPZ_ULI_LIMBS 2 +#else +#define __GMPZ_ULI_LIMBS 1 +#endif + +inline void __mpz_set_ui_safe(mpz_ptr p, unsigned long l) +{ + p->_mp_size = (l != 0); + p->_mp_d[0] = l & GMP_NUMB_MASK; +#if __GMPZ_ULI_LIMBS > 1 + l >>= GMP_NUMB_BITS; + p->_mp_d[1] = l; + p->_mp_size += (l != 0); +#endif +} + +inline void __mpz_set_si_safe(mpz_ptr p, long l) +{ + if(l < 0) + { + __mpz_set_ui_safe(p, -static_cast(l)); + mpz_neg(p, p); + } + else + __mpz_set_ui_safe(p, l); + // Note: we know the high bit of l is 0 so we could do slightly better +} + +// Fake temporary variables +#define __GMPXX_TMPZ_UI \ + mpz_t temp; \ + mp_limb_t limbs[__GMPZ_ULI_LIMBS]; \ + temp->_mp_d = limbs; \ + __mpz_set_ui_safe (temp, l) +#define __GMPXX_TMPZ_SI \ + mpz_t temp; \ + mp_limb_t limbs[__GMPZ_ULI_LIMBS]; \ + temp->_mp_d = limbs; \ + __mpz_set_si_safe (temp, l) +#define __GMPXX_TMPZ_D \ + mpz_t temp; \ + mp_limb_t limbs[__GMPZ_DBL_LIMBS]; \ + temp->_mp_d = limbs; \ + temp->_mp_alloc = __GMPZ_DBL_LIMBS; \ + mpz_set_d (temp, d) + +#define __GMPXX_TMPQ_UI \ + mpq_t temp; \ + mp_limb_t limbs[__GMPZ_ULI_LIMBS+1]; \ + mpq_numref(temp)->_mp_d = limbs; \ + __mpz_set_ui_safe (mpq_numref(temp), l); \ + mpq_denref(temp)->_mp_d = limbs + __GMPZ_ULI_LIMBS; \ + mpq_denref(temp)->_mp_size = 1; \ + mpq_denref(temp)->_mp_d[0] = 1 +#define __GMPXX_TMPQ_SI \ + mpq_t temp; \ + mp_limb_t limbs[__GMPZ_ULI_LIMBS+1]; \ + mpq_numref(temp)->_mp_d = limbs; \ + __mpz_set_si_safe (mpq_numref(temp), l); \ + mpq_denref(temp)->_mp_d = limbs + __GMPZ_ULI_LIMBS; \ + mpq_denref(temp)->_mp_size = 1; \ + mpq_denref(temp)->_mp_d[0] = 1 + +inline unsigned long __gmpxx_abs_ui (signed long l) +{ + return l >= 0 ? static_cast(l) + : -static_cast(l); +} + +/**************** Function objects ****************/ +/* Any evaluation of a __gmp_expr ends up calling one of these functions + all intermediate functions being inline, the evaluation should optimize + to a direct call to the relevant function, thus yielding no overhead + over the C interface. */ + +struct __gmp_unary_plus +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_set(z, w); } + static void eval(mpq_ptr q, mpq_srcptr r) { mpq_set(q, r); } + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_set(f, g); } +}; + +struct __gmp_unary_minus +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_neg(z, w); } + static void eval(mpq_ptr q, mpq_srcptr r) { mpq_neg(q, r); } + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_neg(f, g); } +}; + +struct __gmp_unary_com +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_com(z, w); } +}; + +struct __gmp_binary_plus +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_add(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { + // Ideally, those checks should happen earlier so that the tree + // generated for a+0+b would just be sum(a,b). + if (__GMPXX_CONSTANT(l) && l == 0) + { + if (z != w) mpz_set(z, w); + } + else + mpz_add_ui(z, w, l); + } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + if (l >= 0) + eval(z, w, static_cast(l)); + else + mpz_sub_ui(z, w, -static_cast(l)); + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_add (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { eval(z, w, d); } + + static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) + { mpq_add(q, r, s); } + + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { + if (__GMPXX_CONSTANT(l) && l == 0) + { + if (q != r) mpq_set(q, r); + } + else + { + if (q == r) + mpz_addmul_ui(mpq_numref(q), mpq_denref(q), l); + else + { + mpz_mul_ui(mpq_numref(q), mpq_denref(r), l); + mpz_add(mpq_numref(q), mpq_numref(q), mpq_numref(r)); + mpz_set(mpq_denref(q), mpq_denref(r)); + } + } + } + static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) + { eval(q, r, l); } + static inline void eval(mpq_ptr q, mpq_srcptr r, signed long int l); + // defined after __gmp_binary_minus + static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) + { eval(q, r, l); } + static void eval(mpq_ptr q, mpq_srcptr r, double d) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_add(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, double d, mpq_srcptr r) + { eval(q, r, d); } + + static void eval(mpq_ptr q, mpq_srcptr r, mpz_srcptr z) + { + if (q == r) + mpz_addmul(mpq_numref(q), mpq_denref(q), z); + else + { + mpz_mul(mpq_numref(q), mpq_denref(r), z); + mpz_add(mpq_numref(q), mpq_numref(q), mpq_numref(r)); + mpz_set(mpq_denref(q), mpq_denref(r)); + } + } + static void eval(mpq_ptr q, mpz_srcptr z, mpq_srcptr r) + { eval(q, r, z); } + + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { mpf_add(f, g, h); } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_add_ui(f, g, l); } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { mpf_add_ui(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + if (l >= 0) + mpf_add_ui(f, g, l); + else + mpf_sub_ui(f, g, -static_cast(l)); + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { eval(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_add(f, g, temp); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { eval(f, g, d); } +}; + +struct __gmp_binary_minus +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_sub(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { + if (__GMPXX_CONSTANT(l) && l == 0) + { + if (z != w) mpz_set(z, w); + } + else + mpz_sub_ui(z, w, l); + } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { + if (__GMPXX_CONSTANT(l) && l == 0) + { + mpz_neg(z, w); + } + else + mpz_ui_sub(z, l, w); + } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + if (l >= 0) + eval(z, w, static_cast(l)); + else + mpz_add_ui(z, w, -static_cast(l)); + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { + if (l >= 0) + eval(z, static_cast(l), w); + else + { + mpz_add_ui(z, w, -static_cast(l)); + mpz_neg(z, z); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_sub (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { __GMPXX_TMPZ_D; mpz_sub (z, temp, w); } + + static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) + { mpq_sub(q, r, s); } + + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { + if (__GMPXX_CONSTANT(l) && l == 0) + { + if (q != r) mpq_set(q, r); + } + else + { + if (q == r) + mpz_submul_ui(mpq_numref(q), mpq_denref(q), l); + else + { + mpz_mul_ui(mpq_numref(q), mpq_denref(r), l); + mpz_sub(mpq_numref(q), mpq_numref(r), mpq_numref(q)); + mpz_set(mpq_denref(q), mpq_denref(r)); + } + } + } + static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) + { eval(q, r, l); mpq_neg(q, q); } + static void eval(mpq_ptr q, mpq_srcptr r, signed long int l) + { + if (l >= 0) + eval(q, r, static_cast(l)); + else + __gmp_binary_plus::eval(q, r, -static_cast(l)); + } + static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) + { eval(q, r, l); mpq_neg(q, q); } + static void eval(mpq_ptr q, mpq_srcptr r, double d) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_sub(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, double d, mpq_srcptr r) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_sub(q, temp, r); + mpq_clear(temp); + } + + static void eval(mpq_ptr q, mpq_srcptr r, mpz_srcptr z) + { + if (q == r) + mpz_submul(mpq_numref(q), mpq_denref(q), z); + else + { + mpz_mul(mpq_numref(q), mpq_denref(r), z); + mpz_sub(mpq_numref(q), mpq_numref(r), mpq_numref(q)); + mpz_set(mpq_denref(q), mpq_denref(r)); + } + } + static void eval(mpq_ptr q, mpz_srcptr z, mpq_srcptr r) + { eval(q, r, z); mpq_neg(q, q); } + + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { mpf_sub(f, g, h); } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_sub_ui(f, g, l); } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { mpf_ui_sub(f, l, g); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + if (l >= 0) + mpf_sub_ui(f, g, l); + else + mpf_add_ui(f, g, -static_cast(l)); + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { + if (l >= 0) + mpf_sub_ui(f, g, l); + else + mpf_add_ui(f, g, -static_cast(l)); + mpf_neg(f, f); + } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_sub(f, g, temp); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_sub(f, temp, g); + mpf_clear(temp); + } +}; + +// defined here so it can reference __gmp_binary_minus +inline void +__gmp_binary_plus::eval(mpq_ptr q, mpq_srcptr r, signed long int l) +{ + if (l >= 0) + eval(q, r, static_cast(l)); + else + __gmp_binary_minus::eval(q, r, -static_cast(l)); +} + +struct __gmp_binary_lshift +{ + static void eval(mpz_ptr z, mpz_srcptr w, mp_bitcnt_t l) + { + if (__GMPXX_CONSTANT(l) && (l == 0)) + { + if (z != w) mpz_set(z, w); + } + else + mpz_mul_2exp(z, w, l); + } + static void eval(mpq_ptr q, mpq_srcptr r, mp_bitcnt_t l) + { + if (__GMPXX_CONSTANT(l) && (l == 0)) + { + if (q != r) mpq_set(q, r); + } + else + mpq_mul_2exp(q, r, l); + } + static void eval(mpf_ptr f, mpf_srcptr g, mp_bitcnt_t l) + { mpf_mul_2exp(f, g, l); } +}; + +struct __gmp_binary_rshift +{ + static void eval(mpz_ptr z, mpz_srcptr w, mp_bitcnt_t l) + { + if (__GMPXX_CONSTANT(l) && (l == 0)) + { + if (z != w) mpz_set(z, w); + } + else + mpz_fdiv_q_2exp(z, w, l); + } + static void eval(mpq_ptr q, mpq_srcptr r, mp_bitcnt_t l) + { + if (__GMPXX_CONSTANT(l) && (l == 0)) + { + if (q != r) mpq_set(q, r); + } + else + mpq_div_2exp(q, r, l); + } + static void eval(mpf_ptr f, mpf_srcptr g, mp_bitcnt_t l) + { mpf_div_2exp(f, g, l); } +}; + +struct __gmp_binary_multiplies +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_mul(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { +// gcc-3.3 doesn't have __builtin_ctzl. Don't bother optimizing for old gcc. +#if __GMP_GNUC_PREREQ(3, 4) + if (__GMPXX_CONSTANT(l) && (l & (l-1)) == 0) + { + if (l == 0) + { + z->_mp_size = 0; + } + else + { + __gmp_binary_lshift::eval(z, w, __builtin_ctzl(l)); + } + } + else +#endif + mpz_mul_ui(z, w, l); + } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + if (__GMPXX_CONSTANT(l)) + { + if (l >= 0) + eval(z, w, static_cast(l)); + else + { + eval(z, w, -static_cast(l)); + mpz_neg(z, z); + } + } + else + mpz_mul_si (z, w, l); + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_mul (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { eval(z, w, d); } + + static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) + { mpq_mul(q, r, s); } + + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { +#if __GMP_GNUC_PREREQ(3, 4) + if (__GMPXX_CONSTANT(l) && (l & (l-1)) == 0) + { + if (l == 0) + { + mpq_set_ui(q, 0, 1); + } + else + { + __gmp_binary_lshift::eval(q, r, __builtin_ctzl(l)); + } + } + else +#endif + { + __GMPXX_TMPQ_UI; + mpq_mul (q, r, temp); + } + } + static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) + { eval(q, r, l); } + static void eval(mpq_ptr q, mpq_srcptr r, signed long int l) + { + if (__GMPXX_CONSTANT(l)) + { + if (l >= 0) + eval(q, r, static_cast(l)); + else + { + eval(q, r, -static_cast(l)); + mpq_neg(q, q); + } + } + else + { + __GMPXX_TMPQ_SI; + mpq_mul (q, r, temp); + } + } + static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) + { eval(q, r, l); } + static void eval(mpq_ptr q, mpq_srcptr r, double d) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_mul(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, double d, mpq_srcptr r) + { eval(q, r, d); } + + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { mpf_mul(f, g, h); } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_mul_ui(f, g, l); } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { mpf_mul_ui(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + if (l >= 0) + mpf_mul_ui(f, g, l); + else + { + mpf_mul_ui(f, g, -static_cast(l)); + mpf_neg(f, f); + } + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { eval(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_mul(f, g, temp); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { eval(f, g, d); } +}; + +struct __gmp_binary_divides +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_tdiv_q(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { +#if __GMP_GNUC_PREREQ(3, 4) + // Don't optimize division by 0... + if (__GMPXX_CONSTANT(l) && (l & (l-1)) == 0 && l != 0) + { + if (l == 1) + { + if (z != w) mpz_set(z, w); + } + else + mpz_tdiv_q_2exp(z, w, __builtin_ctzl(l)); + // warning: do not use rshift (fdiv) + } + else +#endif + mpz_tdiv_q_ui(z, w, l); + } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { + if (mpz_sgn(w) >= 0) + { + if (mpz_fits_ulong_p(w)) + mpz_set_ui(z, l / mpz_get_ui(w)); + else + mpz_set_ui(z, 0); + } + else + { + mpz_neg(z, w); + if (mpz_fits_ulong_p(z)) + { + mpz_set_ui(z, l / mpz_get_ui(z)); + mpz_neg(z, z); + } + else + mpz_set_ui(z, 0); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + if (l >= 0) + eval(z, w, static_cast(l)); + else + { + eval(z, w, -static_cast(l)); + mpz_neg(z, z); + } + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { + if (mpz_fits_slong_p(w)) + mpz_set_si(z, l / mpz_get_si(w)); + else + { + /* if w is bigger than a long then the quotient must be zero, unless + l==LONG_MIN and w==-LONG_MIN in which case the quotient is -1 */ + mpz_set_si (z, (mpz_cmpabs_ui (w, __gmpxx_abs_ui(l)) == 0 ? -1 : 0)); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_tdiv_q (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { __GMPXX_TMPZ_D; mpz_tdiv_q (z, temp, w); } + + static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) + { mpq_div(q, r, s); } + + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { +#if __GMP_GNUC_PREREQ(3, 4) + if (__GMPXX_CONSTANT(l) && (l & (l-1)) == 0 && l != 0) + __gmp_binary_rshift::eval(q, r, __builtin_ctzl(l)); + else +#endif + { + __GMPXX_TMPQ_UI; + mpq_div (q, r, temp); + } + } + static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) + { __GMPXX_TMPQ_UI; mpq_div (q, temp, r); } + static void eval(mpq_ptr q, mpq_srcptr r, signed long int l) + { + if (__GMPXX_CONSTANT(l)) + { + if (l >= 0) + eval(q, r, static_cast(l)); + else + { + eval(q, r, -static_cast(l)); + mpq_neg(q, q); + } + } + else + { + __GMPXX_TMPQ_SI; + mpq_div (q, r, temp); + } + } + static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) + { __GMPXX_TMPQ_SI; mpq_div (q, temp, r); } + static void eval(mpq_ptr q, mpq_srcptr r, double d) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_div(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, double d, mpq_srcptr r) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_div(q, temp, r); + mpq_clear(temp); + } + + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { mpf_div(f, g, h); } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_div_ui(f, g, l); } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { mpf_ui_div(f, l, g); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + if (l >= 0) + mpf_div_ui(f, g, l); + else + { + mpf_div_ui(f, g, -static_cast(l)); + mpf_neg(f, f); + } + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { + if (l >= 0) + mpf_ui_div(f, l, g); + else + { + mpf_ui_div(f, -static_cast(l), g); + mpf_neg(f, f); + } + } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_div(f, g, temp); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_div(f, temp, g); + mpf_clear(temp); + } +}; + +struct __gmp_binary_modulus +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_tdiv_r(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { mpz_tdiv_r_ui(z, w, l); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { + if (mpz_sgn(w) >= 0) + { + if (mpz_fits_ulong_p(w)) + mpz_set_ui(z, l % mpz_get_ui(w)); + else + mpz_set_ui(z, l); + } + else + { + mpz_neg(z, w); + if (mpz_fits_ulong_p(z)) + mpz_set_ui(z, l % mpz_get_ui(z)); + else + mpz_set_ui(z, l); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + mpz_tdiv_r_ui (z, w, __gmpxx_abs_ui(l)); + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { + if (mpz_fits_slong_p(w)) + mpz_set_si(z, l % mpz_get_si(w)); + else + { + /* if w is bigger than a long then the remainder is l unchanged, + unless l==LONG_MIN and w==-LONG_MIN in which case it's 0 */ + mpz_set_si (z, mpz_cmpabs_ui (w, __gmpxx_abs_ui(l)) == 0 ? 0 : l); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_tdiv_r (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { __GMPXX_TMPZ_D; mpz_tdiv_r (z, temp, w); } +}; + +struct __gmp_binary_and +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_and(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { __GMPXX_TMPZ_UI; mpz_and (z, w, temp); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { __GMPXX_TMPZ_SI; mpz_and (z, w, temp); } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_and (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { eval(z, w, d); } +}; + +struct __gmp_binary_ior +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_ior(z, w, v); } + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { __GMPXX_TMPZ_UI; mpz_ior (z, w, temp); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { __GMPXX_TMPZ_SI; mpz_ior (z, w, temp); } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_ior (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { eval(z, w, d); } +}; + +struct __gmp_binary_xor +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_xor(z, w, v); } + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { __GMPXX_TMPZ_UI; mpz_xor (z, w, temp); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { __GMPXX_TMPZ_SI; mpz_xor (z, w, temp); } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { eval(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMPZ_D; mpz_xor (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { eval(z, w, d); } +}; + +struct __gmp_binary_equal +{ + static bool eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w) == 0; } + + static bool eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l) == 0; } + static bool eval(unsigned long int l, mpz_srcptr z) + { return mpz_cmp_ui(z, l) == 0; } + static bool eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l) == 0; } + static bool eval(signed long int l, mpz_srcptr z) + { return mpz_cmp_si(z, l) == 0; } + static bool eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d) == 0; } + static bool eval(double d, mpz_srcptr z) + { return mpz_cmp_d(z, d) == 0; } + + static bool eval(mpq_srcptr q, mpq_srcptr r) + { return mpq_equal(q, r) != 0; } + + static bool eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1) == 0; } + static bool eval(unsigned long int l, mpq_srcptr q) + { return mpq_cmp_ui(q, l, 1) == 0; } + static bool eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1) == 0; } + static bool eval(signed long int l, mpq_srcptr q) + { return mpq_cmp_si(q, l, 1) == 0; } + static bool eval(mpq_srcptr q, double d) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_equal(q, temp) != 0); + mpq_clear(temp); + return b; + } + static bool eval(double d, mpq_srcptr q) + { + return eval(q, d); + } + + static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) == 0; } + + static bool eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l) == 0; } + static bool eval(unsigned long int l, mpf_srcptr f) + { return mpf_cmp_ui(f, l) == 0; } + static bool eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l) == 0; } + static bool eval(signed long int l, mpf_srcptr f) + { return mpf_cmp_si(f, l) == 0; } + static bool eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d) == 0; } + static bool eval(double d, mpf_srcptr f) + { return mpf_cmp_d(f, d) == 0; } +}; + +struct __gmp_binary_less +{ + static bool eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w) < 0; } + + static bool eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l) < 0; } + static bool eval(unsigned long int l, mpz_srcptr z) + { return mpz_cmp_ui(z, l) > 0; } + static bool eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l) < 0; } + static bool eval(signed long int l, mpz_srcptr z) + { return mpz_cmp_si(z, l) > 0; } + static bool eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d) < 0; } + static bool eval(double d, mpz_srcptr z) + { return mpz_cmp_d(z, d) > 0; } + + static bool eval(mpq_srcptr q, mpq_srcptr r) { return mpq_cmp(q, r) < 0; } + + static bool eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1) < 0; } + static bool eval(unsigned long int l, mpq_srcptr q) + { return mpq_cmp_ui(q, l, 1) > 0; } + static bool eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1) < 0; } + static bool eval(signed long int l, mpq_srcptr q) + { return mpq_cmp_si(q, l, 1) > 0; } + static bool eval(mpq_srcptr q, double d) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(q, temp) < 0); + mpq_clear(temp); + return b; + } + static bool eval(double d, mpq_srcptr q) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(temp, q) < 0); + mpq_clear(temp); + return b; + } + + static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) < 0; } + + static bool eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l) < 0; } + static bool eval(unsigned long int l, mpf_srcptr f) + { return mpf_cmp_ui(f, l) > 0; } + static bool eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l) < 0; } + static bool eval(signed long int l, mpf_srcptr f) + { return mpf_cmp_si(f, l) > 0; } + static bool eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d) < 0; } + static bool eval(double d, mpf_srcptr f) + { return mpf_cmp_d(f, d) > 0; } +}; + +struct __gmp_binary_greater +{ + static bool eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w) > 0; } + + static bool eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l) > 0; } + static bool eval(unsigned long int l, mpz_srcptr z) + { return mpz_cmp_ui(z, l) < 0; } + static bool eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l) > 0; } + static bool eval(signed long int l, mpz_srcptr z) + { return mpz_cmp_si(z, l) < 0; } + static bool eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d) > 0; } + static bool eval(double d, mpz_srcptr z) + { return mpz_cmp_d(z, d) < 0; } + + static bool eval(mpq_srcptr q, mpq_srcptr r) { return mpq_cmp(q, r) > 0; } + + static bool eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1) > 0; } + static bool eval(unsigned long int l, mpq_srcptr q) + { return mpq_cmp_ui(q, l, 1) < 0; } + static bool eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1) > 0; } + static bool eval(signed long int l, mpq_srcptr q) + { return mpq_cmp_si(q, l, 1) < 0; } + static bool eval(mpq_srcptr q, double d) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(q, temp) > 0); + mpq_clear(temp); + return b; + } + static bool eval(double d, mpq_srcptr q) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(temp, q) > 0); + mpq_clear(temp); + return b; + } + + static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) > 0; } + + static bool eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l) > 0; } + static bool eval(unsigned long int l, mpf_srcptr f) + { return mpf_cmp_ui(f, l) < 0; } + static bool eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l) > 0; } + static bool eval(signed long int l, mpf_srcptr f) + { return mpf_cmp_si(f, l) < 0; } + static bool eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d) > 0; } + static bool eval(double d, mpf_srcptr f) + { return mpf_cmp_d(f, d) < 0; } +}; + +struct __gmp_unary_increment +{ + static void eval(mpz_ptr z) { mpz_add_ui(z, z, 1); } + static void eval(mpq_ptr q) + { mpz_add(mpq_numref(q), mpq_numref(q), mpq_denref(q)); } + static void eval(mpf_ptr f) { mpf_add_ui(f, f, 1); } +}; + +struct __gmp_unary_decrement +{ + static void eval(mpz_ptr z) { mpz_sub_ui(z, z, 1); } + static void eval(mpq_ptr q) + { mpz_sub(mpq_numref(q), mpq_numref(q), mpq_denref(q)); } + static void eval(mpf_ptr f) { mpf_sub_ui(f, f, 1); } +}; + +struct __gmp_abs_function +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_abs(z, w); } + static void eval(mpq_ptr q, mpq_srcptr r) { mpq_abs(q, r); } + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_abs(f, g); } +}; + +struct __gmp_trunc_function +{ + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_trunc(f, g); } +}; + +struct __gmp_floor_function +{ + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_floor(f, g); } +}; + +struct __gmp_ceil_function +{ + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_ceil(f, g); } +}; + +struct __gmp_sqrt_function +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_sqrt(z, w); } + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_sqrt(f, g); } +}; + +struct __gmp_hypot_function +{ + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_mul(f, h, h); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_set_ui(f, l); + mpf_mul(f, f, f); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { eval(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_set_si(f, l); + mpf_mul(f, f, f); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { eval(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_set_d(f, d); + mpf_mul(f, f, f); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { eval(f, g, d); } +}; + +struct __gmp_sgn_function +{ + static int eval(mpz_srcptr z) { return mpz_sgn(z); } + static int eval(mpq_srcptr q) { return mpq_sgn(q); } + static int eval(mpf_srcptr f) { return mpf_sgn(f); } +}; + +struct __gmp_cmp_function +{ + static int eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w); } + + static int eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l); } + static int eval(unsigned long int l, mpz_srcptr z) + { return -mpz_cmp_ui(z, l); } + static int eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l); } + static int eval(signed long int l, mpz_srcptr z) + { return -mpz_cmp_si(z, l); } + static int eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d); } + static int eval(double d, mpz_srcptr z) + { return -mpz_cmp_d(z, d); } + + static int eval(mpq_srcptr q, mpq_srcptr r) { return mpq_cmp(q, r); } + + static int eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1); } + static int eval(unsigned long int l, mpq_srcptr q) + { return -mpq_cmp_ui(q, l, 1); } + static int eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1); } + static int eval(signed long int l, mpq_srcptr q) + { return -mpq_cmp_si(q, l, 1); } + static int eval(mpq_srcptr q, double d) + { + int i; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + i = mpq_cmp(q, temp); + mpq_clear(temp); + return i; + } + static int eval(double d, mpq_srcptr q) + { + int i; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + i = mpq_cmp(temp, q); + mpq_clear(temp); + return i; + } + + static int eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g); } + + static int eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l); } + static int eval(unsigned long int l, mpf_srcptr f) + { return -mpf_cmp_ui(f, l); } + static int eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l); } + static int eval(signed long int l, mpf_srcptr f) + { return -mpf_cmp_si(f, l); } + static int eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d); } + static int eval(double d, mpf_srcptr f) + { return -mpf_cmp_d(f, d); } +}; + +struct __gmp_rand_function +{ + static void eval(mpz_ptr z, gmp_randstate_t s, mp_bitcnt_t l) + { mpz_urandomb(z, s, l); } + static void eval(mpz_ptr z, gmp_randstate_t s, mpz_srcptr w) + { mpz_urandomm(z, s, w); } + static void eval(mpf_ptr f, gmp_randstate_t s, mp_bitcnt_t prec) + { mpf_urandomb(f, s, prec); } +}; + + +/**************** Auxiliary classes ****************/ + +/* this is much the same as gmp_allocated_string in gmp-impl.h + since gmp-impl.h is not publicly available, I redefine it here + I use a different name to avoid possible clashes */ + +extern "C" { + typedef void (*__gmp_freefunc_t) (void *, size_t); +} +struct __gmp_alloc_cstring +{ + char *str; + __gmp_alloc_cstring(char *s) { str = s; } + ~__gmp_alloc_cstring() + { + __gmp_freefunc_t freefunc; + mp_get_memory_functions (NULL, NULL, &freefunc); + (*freefunc) (str, std::strlen(str)+1); + } +}; + + +// general expression template class +template +class __gmp_expr; + + +// templates for resolving expression types +template +struct __gmp_resolve_ref +{ + typedef T ref_type; +}; + +template +struct __gmp_resolve_ref<__gmp_expr > +{ + typedef const __gmp_expr & ref_type; +}; + + +template +struct __gmp_resolve_expr; + +template <> +struct __gmp_resolve_expr +{ + typedef mpz_t value_type; + typedef mpz_ptr ptr_type; + typedef mpz_srcptr srcptr_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpq_t value_type; + typedef mpq_ptr ptr_type; + typedef mpq_srcptr srcptr_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; + typedef mpf_ptr ptr_type; + typedef mpf_srcptr srcptr_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpq_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpq_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; +}; + +#if __GMPXX_USE_CXX11 +namespace std { + template + struct common_type <__gmp_expr, __gmp_expr > + { + private: + typedef typename __gmp_resolve_expr::value_type X; + public: + typedef __gmp_expr type; + }; + + template + struct common_type <__gmp_expr, __gmp_expr > + { + typedef __gmp_expr type; + }; + +#define __GMPXX_DECLARE_COMMON_TYPE(typ) \ + template \ + struct common_type <__gmp_expr, typ > \ + { \ + typedef __gmp_expr type; \ + }; \ + \ + template \ + struct common_type > \ + { \ + typedef __gmp_expr type; \ + } + + __GMPXX_DECLARE_COMMON_TYPE(signed char); + __GMPXX_DECLARE_COMMON_TYPE(unsigned char); + __GMPXX_DECLARE_COMMON_TYPE(signed int); + __GMPXX_DECLARE_COMMON_TYPE(unsigned int); + __GMPXX_DECLARE_COMMON_TYPE(signed short int); + __GMPXX_DECLARE_COMMON_TYPE(unsigned short int); + __GMPXX_DECLARE_COMMON_TYPE(signed long int); + __GMPXX_DECLARE_COMMON_TYPE(unsigned long int); + __GMPXX_DECLARE_COMMON_TYPE(float); + __GMPXX_DECLARE_COMMON_TYPE(double); +#undef __GMPXX_DECLARE_COMMON_TYPE +} +#endif + +// classes for evaluating unary and binary expressions +template +struct __gmp_unary_expr +{ + const T &val; + + __gmp_unary_expr(const T &v) : val(v) { } +private: + __gmp_unary_expr(); +}; + +template +struct __gmp_binary_expr +{ + typename __gmp_resolve_ref::ref_type val1; + typename __gmp_resolve_ref::ref_type val2; + + __gmp_binary_expr(const T &v1, const U &v2) : val1(v1), val2(v2) { } +private: + __gmp_binary_expr(); +}; + + + +/**************** Macros for in-class declarations ****************/ +/* This is just repetitive code that is easier to maintain if it's written + only once */ + +#define __GMPP_DECLARE_COMPOUND_OPERATOR(fun) \ + template \ + __gmp_expr & fun(const __gmp_expr &); + +#define __GMPN_DECLARE_COMPOUND_OPERATOR(fun) \ + __gmp_expr & fun(signed char); \ + __gmp_expr & fun(unsigned char); \ + __gmp_expr & fun(signed int); \ + __gmp_expr & fun(unsigned int); \ + __gmp_expr & fun(signed short int); \ + __gmp_expr & fun(unsigned short int); \ + __gmp_expr & fun(signed long int); \ + __gmp_expr & fun(unsigned long int); \ + __gmp_expr & fun(float); \ + __gmp_expr & fun(double); \ + /* __gmp_expr & fun(long double); */ + +#define __GMP_DECLARE_COMPOUND_OPERATOR(fun) \ +__GMPP_DECLARE_COMPOUND_OPERATOR(fun) \ +__GMPN_DECLARE_COMPOUND_OPERATOR(fun) + +#define __GMP_DECLARE_COMPOUND_OPERATOR_UI(fun) \ + __gmp_expr & fun(mp_bitcnt_t); + +#define __GMP_DECLARE_INCREMENT_OPERATOR(fun) \ + inline __gmp_expr & fun(); \ + inline __gmp_expr fun(int); + + +/**************** mpz_class -- wrapper for mpz_t ****************/ + +template <> +class __gmp_expr +{ +private: + typedef mpz_t value_type; + value_type mp; +public: + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } + + // constructors and destructor + __gmp_expr() { mpz_init(mp); } + + __gmp_expr(const __gmp_expr &z) { mpz_init_set(mp, z.mp); } +#if __GMPXX_USE_CXX11 + __gmp_expr(__gmp_expr &&z) + { *mp = *z.mp; mpz_init(z.mp); } +#endif + template + __gmp_expr(const __gmp_expr &expr) + { mpz_init(mp); __gmp_set_expr(mp, expr); } + template + explicit __gmp_expr(const __gmp_expr &expr) + { mpz_init(mp); __gmp_set_expr(mp, expr); } + + __gmp_expr(signed char c) { mpz_init_set_si(mp, c); } + __gmp_expr(unsigned char c) { mpz_init_set_ui(mp, c); } + + __gmp_expr(signed int i) { mpz_init_set_si(mp, i); } + __gmp_expr(unsigned int i) { mpz_init_set_ui(mp, i); } + + __gmp_expr(signed short int s) { mpz_init_set_si(mp, s); } + __gmp_expr(unsigned short int s) { mpz_init_set_ui(mp, s); } + + __gmp_expr(signed long int l) { mpz_init_set_si(mp, l); } + __gmp_expr(unsigned long int l) { mpz_init_set_ui(mp, l); } + + __gmp_expr(float f) { mpz_init_set_d(mp, f); } + __gmp_expr(double d) { mpz_init_set_d(mp, d); } + // __gmp_expr(long double ld) { mpz_init_set_d(mp, ld); } + + explicit __gmp_expr(const char *s, int base = 0) + { + if (mpz_init_set_str (mp, s, base) != 0) + { + mpz_clear (mp); + throw std::invalid_argument ("mpz_set_str"); + } + } + explicit __gmp_expr(const std::string &s, int base = 0) + { + if (mpz_init_set_str(mp, s.c_str(), base) != 0) + { + mpz_clear (mp); + throw std::invalid_argument ("mpz_set_str"); + } + } + + explicit __gmp_expr(mpz_srcptr z) { mpz_init_set(mp, z); } + + ~__gmp_expr() { mpz_clear(mp); } + + void swap(__gmp_expr& z) __GMPXX_NOEXCEPT { std::swap(*mp, *z.mp); } + + // assignment operators + __gmp_expr & operator=(const __gmp_expr &z) + { mpz_set(mp, z.mp); return *this; } +#if __GMPXX_USE_CXX11 + __gmp_expr & operator=(__gmp_expr &&z) noexcept + { swap(z); return *this; } +#endif + template + __gmp_expr & operator=(const __gmp_expr &expr) + { __gmp_set_expr(mp, expr); return *this; } + + __gmp_expr & operator=(signed char c) { mpz_set_si(mp, c); return *this; } + __gmp_expr & operator=(unsigned char c) { mpz_set_ui(mp, c); return *this; } + + __gmp_expr & operator=(signed int i) { mpz_set_si(mp, i); return *this; } + __gmp_expr & operator=(unsigned int i) { mpz_set_ui(mp, i); return *this; } + + __gmp_expr & operator=(signed short int s) + { mpz_set_si(mp, s); return *this; } + __gmp_expr & operator=(unsigned short int s) + { mpz_set_ui(mp, s); return *this; } + + __gmp_expr & operator=(signed long int l) + { mpz_set_si(mp, l); return *this; } + __gmp_expr & operator=(unsigned long int l) + { mpz_set_ui(mp, l); return *this; } + + __gmp_expr & operator=(float f) { mpz_set_d(mp, f); return *this; } + __gmp_expr & operator=(double d) { mpz_set_d(mp, d); return *this; } + // __gmp_expr & operator=(long double ld) + // { mpz_set_ld(mp, ld); return *this; } + + __gmp_expr & operator=(const char *s) + { + if (mpz_set_str (mp, s, 0) != 0) + throw std::invalid_argument ("mpz_set_str"); + return *this; + } + __gmp_expr & operator=(const std::string &s) + { + if (mpz_set_str(mp, s.c_str(), 0) != 0) + throw std::invalid_argument ("mpz_set_str"); + return *this; + } + + // string input/output functions + int set_str(const char *s, int base) + { return mpz_set_str(mp, s, base); } + int set_str(const std::string &s, int base) + { return mpz_set_str(mp, s.c_str(), base); } + std::string get_str(int base = 10) const + { + __gmp_alloc_cstring temp(mpz_get_str(0, base, mp)); + return std::string(temp.str); + } + + // conversion functions + mpz_srcptr __get_mp() const { return mp; } + mpz_ptr __get_mp() { return mp; } + mpz_srcptr get_mpz_t() const { return mp; } + mpz_ptr get_mpz_t() { return mp; } + + signed long int get_si() const { return mpz_get_si(mp); } + unsigned long int get_ui() const { return mpz_get_ui(mp); } + double get_d() const { return mpz_get_d(mp); } + + // bool fits_schar_p() const { return mpz_fits_schar_p(mp); } + // bool fits_uchar_p() const { return mpz_fits_uchar_p(mp); } + bool fits_sint_p() const { return mpz_fits_sint_p(mp); } + bool fits_uint_p() const { return mpz_fits_uint_p(mp); } + bool fits_sshort_p() const { return mpz_fits_sshort_p(mp); } + bool fits_ushort_p() const { return mpz_fits_ushort_p(mp); } + bool fits_slong_p() const { return mpz_fits_slong_p(mp); } + bool fits_ulong_p() const { return mpz_fits_ulong_p(mp); } + // bool fits_float_p() const { return mpz_fits_float_p(mp); } + // bool fits_double_p() const { return mpz_fits_double_p(mp); } + // bool fits_ldouble_p() const { return mpz_fits_ldouble_p(mp); } + +#if __GMPXX_USE_CXX11 + explicit operator bool() const { return mp->_mp_size != 0; } +#endif + + // member operators + __GMP_DECLARE_COMPOUND_OPERATOR(operator+=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator-=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator*=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator/=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator%=) + + __GMP_DECLARE_COMPOUND_OPERATOR(operator&=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator|=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator^=) + + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator<<=) + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator>>=) + + __GMP_DECLARE_INCREMENT_OPERATOR(operator++) + __GMP_DECLARE_INCREMENT_OPERATOR(operator--) +}; + +typedef __gmp_expr mpz_class; + + +/**************** mpq_class -- wrapper for mpq_t ****************/ + +template <> +class __gmp_expr +{ +private: + typedef mpq_t value_type; + value_type mp; +public: + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } + void canonicalize() { mpq_canonicalize(mp); } + + // constructors and destructor + __gmp_expr() { mpq_init(mp); } + + __gmp_expr(const __gmp_expr &q) + { + mpz_init_set(mpq_numref(mp), mpq_numref(q.mp)); + mpz_init_set(mpq_denref(mp), mpq_denref(q.mp)); + } +#if __GMPXX_USE_CXX11 + __gmp_expr(__gmp_expr &&q) + { *mp = *q.mp; mpq_init(q.mp); } +#endif + template + __gmp_expr(const __gmp_expr &expr) + { mpq_init(mp); __gmp_set_expr(mp, expr); } + template + __gmp_expr(const __gmp_expr &expr) + { mpq_init(mp); __gmp_set_expr(mp, expr); } + template + explicit __gmp_expr(const __gmp_expr &expr) + { mpq_init(mp); __gmp_set_expr(mp, expr); } + + __gmp_expr(signed char c) { mpq_init(mp); mpq_set_si(mp, c, 1); } + __gmp_expr(unsigned char c) { mpq_init(mp); mpq_set_ui(mp, c, 1); } + + __gmp_expr(signed int i) { mpq_init(mp); mpq_set_si(mp, i, 1); } + __gmp_expr(unsigned int i) { mpq_init(mp); mpq_set_ui(mp, i, 1); } + + __gmp_expr(signed short int s) { mpq_init(mp); mpq_set_si(mp, s, 1); } + __gmp_expr(unsigned short int s) { mpq_init(mp); mpq_set_ui(mp, s, 1); } + + __gmp_expr(signed long int l) { mpq_init(mp); mpq_set_si(mp, l, 1); } + __gmp_expr(unsigned long int l) { mpq_init(mp); mpq_set_ui(mp, l, 1); } + + __gmp_expr(float f) { mpq_init(mp); mpq_set_d(mp, f); } + __gmp_expr(double d) { mpq_init(mp); mpq_set_d(mp, d); } + // __gmp_expr(long double ld) { mpq_init(mp); mpq_set_ld(mp, ld); } + + explicit __gmp_expr(const char *s, int base = 0) + { + mpq_init (mp); + // If s is the literal 0, we meant to call another constructor. + // If s just happens to evaluate to 0, we would crash, so whatever. + if (s == 0) + { + // Don't turn mpq_class(0,0) into 0 + mpz_set_si(mpq_denref(mp), base); + } + else if (mpq_set_str(mp, s, base) != 0) + { + mpq_clear (mp); + throw std::invalid_argument ("mpq_set_str"); + } + } + explicit __gmp_expr(const std::string &s, int base = 0) + { + mpq_init(mp); + if (mpq_set_str (mp, s.c_str(), base) != 0) + { + mpq_clear (mp); + throw std::invalid_argument ("mpq_set_str"); + } + } + explicit __gmp_expr(mpq_srcptr q) + { + mpz_init_set(mpq_numref(mp), mpq_numref(q)); + mpz_init_set(mpq_denref(mp), mpq_denref(q)); + } + + __gmp_expr(const mpz_class &num, const mpz_class &den) + { + mpz_init_set(mpq_numref(mp), num.get_mpz_t()); + mpz_init_set(mpq_denref(mp), den.get_mpz_t()); + } + + ~__gmp_expr() { mpq_clear(mp); } + + void swap(__gmp_expr& q) __GMPXX_NOEXCEPT { std::swap(*mp, *q.mp); } + + // assignment operators + __gmp_expr & operator=(const __gmp_expr &q) + { mpq_set(mp, q.mp); return *this; } +#if __GMPXX_USE_CXX11 + __gmp_expr & operator=(__gmp_expr &&q) noexcept + { swap(q); return *this; } + __gmp_expr & operator=(mpz_class &&z) noexcept + { get_num() = std::move(z); get_den() = 1u; return *this; } +#endif + template + __gmp_expr & operator=(const __gmp_expr &expr) + { __gmp_set_expr(mp, expr); return *this; } + + __gmp_expr & operator=(signed char c) + { mpq_set_si(mp, c, 1); return *this; } + __gmp_expr & operator=(unsigned char c) + { mpq_set_ui(mp, c, 1); return *this; } + + __gmp_expr & operator=(signed int i) { mpq_set_si(mp, i, 1); return *this; } + __gmp_expr & operator=(unsigned int i) + { mpq_set_ui(mp, i, 1); return *this; } + + __gmp_expr & operator=(signed short int s) + { mpq_set_si(mp, s, 1); return *this; } + __gmp_expr & operator=(unsigned short int s) + { mpq_set_ui(mp, s, 1); return *this; } + + __gmp_expr & operator=(signed long int l) + { mpq_set_si(mp, l, 1); return *this; } + __gmp_expr & operator=(unsigned long int l) + { mpq_set_ui(mp, l, 1); return *this; } + + __gmp_expr & operator=(float f) { mpq_set_d(mp, f); return *this; } + __gmp_expr & operator=(double d) { mpq_set_d(mp, d); return *this; } + // __gmp_expr & operator=(long double ld) + // { mpq_set_ld(mp, ld); return *this; } + + __gmp_expr & operator=(const char *s) + { + if (mpq_set_str (mp, s, 0) != 0) + throw std::invalid_argument ("mpq_set_str"); + return *this; + } + __gmp_expr & operator=(const std::string &s) + { + if (mpq_set_str(mp, s.c_str(), 0) != 0) + throw std::invalid_argument ("mpq_set_str"); + return *this; + } + + // string input/output functions + int set_str(const char *s, int base) + { return mpq_set_str(mp, s, base); } + int set_str(const std::string &s, int base) + { return mpq_set_str(mp, s.c_str(), base); } + std::string get_str(int base = 10) const + { + __gmp_alloc_cstring temp(mpq_get_str(0, base, mp)); + return std::string(temp.str); + } + + // conversion functions + + // casting a reference to an mpz_t to mpz_class & is a dirty hack, + // but works because the internal representation of mpz_class is + // exactly an mpz_t + const mpz_class & get_num() const + { return reinterpret_cast(*mpq_numref(mp)); } + mpz_class & get_num() + { return reinterpret_cast(*mpq_numref(mp)); } + const mpz_class & get_den() const + { return reinterpret_cast(*mpq_denref(mp)); } + mpz_class & get_den() + { return reinterpret_cast(*mpq_denref(mp)); } + + mpq_srcptr __get_mp() const { return mp; } + mpq_ptr __get_mp() { return mp; } + mpq_srcptr get_mpq_t() const { return mp; } + mpq_ptr get_mpq_t() { return mp; } + + mpz_srcptr get_num_mpz_t() const { return mpq_numref(mp); } + mpz_ptr get_num_mpz_t() { return mpq_numref(mp); } + mpz_srcptr get_den_mpz_t() const { return mpq_denref(mp); } + mpz_ptr get_den_mpz_t() { return mpq_denref(mp); } + + double get_d() const { return mpq_get_d(mp); } + +#if __GMPXX_USE_CXX11 + explicit operator bool() const { return mpq_numref(mp)->_mp_size != 0; } +#endif + + // compound assignments + __GMP_DECLARE_COMPOUND_OPERATOR(operator+=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator-=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator*=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator/=) + + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator<<=) + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator>>=) + + __GMP_DECLARE_INCREMENT_OPERATOR(operator++) + __GMP_DECLARE_INCREMENT_OPERATOR(operator--) +}; + +typedef __gmp_expr mpq_class; + + +/**************** mpf_class -- wrapper for mpf_t ****************/ + +template <> +class __gmp_expr +{ +private: + typedef mpf_t value_type; + value_type mp; +public: + mp_bitcnt_t get_prec() const { return mpf_get_prec(mp); } + + void set_prec(mp_bitcnt_t prec) { mpf_set_prec(mp, prec); } + void set_prec_raw(mp_bitcnt_t prec) { mpf_set_prec_raw(mp, prec); } + + // constructors and destructor + __gmp_expr() { mpf_init(mp); } + + __gmp_expr(const __gmp_expr &f) + { mpf_init2(mp, f.get_prec()); mpf_set(mp, f.mp); } +#if __GMPXX_USE_CXX11 + __gmp_expr(__gmp_expr &&f) + { *mp = *f.mp; mpf_init2(f.mp, get_prec()); } +#endif + __gmp_expr(const __gmp_expr &f, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set(mp, f.mp); } + template + __gmp_expr(const __gmp_expr &expr) + { mpf_init2(mp, expr.get_prec()); __gmp_set_expr(mp, expr); } + template + __gmp_expr(const __gmp_expr &expr, mp_bitcnt_t prec) + { mpf_init2(mp, prec); __gmp_set_expr(mp, expr); } + + __gmp_expr(signed char c) { mpf_init_set_si(mp, c); } + __gmp_expr(signed char c, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_si(mp, c); } + __gmp_expr(unsigned char c) { mpf_init_set_ui(mp, c); } + __gmp_expr(unsigned char c, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_ui(mp, c); } + + __gmp_expr(signed int i) { mpf_init_set_si(mp, i); } + __gmp_expr(signed int i, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_si(mp, i); } + __gmp_expr(unsigned int i) { mpf_init_set_ui(mp, i); } + __gmp_expr(unsigned int i, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_ui(mp, i); } + + __gmp_expr(signed short int s) { mpf_init_set_si(mp, s); } + __gmp_expr(signed short int s, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_si(mp, s); } + __gmp_expr(unsigned short int s) { mpf_init_set_ui(mp, s); } + __gmp_expr(unsigned short int s, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_ui(mp, s); } + + __gmp_expr(signed long int l) { mpf_init_set_si(mp, l); } + __gmp_expr(signed long int l, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_si(mp, l); } + __gmp_expr(unsigned long int l) { mpf_init_set_ui(mp, l); } + __gmp_expr(unsigned long int l, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_ui(mp, l); } + + __gmp_expr(float f) { mpf_init_set_d(mp, f); } + __gmp_expr(float f, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_d(mp, f); } + __gmp_expr(double d) { mpf_init_set_d(mp, d); } + __gmp_expr(double d, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_d(mp, d); } + // __gmp_expr(long double ld) { mpf_init_set_d(mp, ld); } + // __gmp_expr(long double ld, mp_bitcnt_t prec) + // { mpf_init2(mp, prec); mpf_set_d(mp, ld); } + + explicit __gmp_expr(const char *s) + { + if (mpf_init_set_str (mp, s, 0) != 0) + { + mpf_clear (mp); + throw std::invalid_argument ("mpf_set_str"); + } + } + __gmp_expr(const char *s, mp_bitcnt_t prec, int base = 0) + { + mpf_init2(mp, prec); + if (mpf_set_str(mp, s, base) != 0) + { + mpf_clear (mp); + throw std::invalid_argument ("mpf_set_str"); + } + } + explicit __gmp_expr(const std::string &s) + { + if (mpf_init_set_str(mp, s.c_str(), 0) != 0) + { + mpf_clear (mp); + throw std::invalid_argument ("mpf_set_str"); + } + } + __gmp_expr(const std::string &s, mp_bitcnt_t prec, int base = 0) + { + mpf_init2(mp, prec); + if (mpf_set_str(mp, s.c_str(), base) != 0) + { + mpf_clear (mp); + throw std::invalid_argument ("mpf_set_str"); + } + } + + explicit __gmp_expr(mpf_srcptr f) + { mpf_init2(mp, mpf_get_prec(f)); mpf_set(mp, f); } + __gmp_expr(mpf_srcptr f, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set(mp, f); } + + ~__gmp_expr() { mpf_clear(mp); } + + void swap(__gmp_expr& f) __GMPXX_NOEXCEPT { std::swap(*mp, *f.mp); } + + // assignment operators + __gmp_expr & operator=(const __gmp_expr &f) + { mpf_set(mp, f.mp); return *this; } +#if __GMPXX_USE_CXX11 + __gmp_expr & operator=(__gmp_expr &&f) noexcept + { swap(f); return *this; } +#endif + template + __gmp_expr & operator=(const __gmp_expr &expr) + { __gmp_set_expr(mp, expr); return *this; } + + __gmp_expr & operator=(signed char c) { mpf_set_si(mp, c); return *this; } + __gmp_expr & operator=(unsigned char c) { mpf_set_ui(mp, c); return *this; } + + __gmp_expr & operator=(signed int i) { mpf_set_si(mp, i); return *this; } + __gmp_expr & operator=(unsigned int i) { mpf_set_ui(mp, i); return *this; } + + __gmp_expr & operator=(signed short int s) + { mpf_set_si(mp, s); return *this; } + __gmp_expr & operator=(unsigned short int s) + { mpf_set_ui(mp, s); return *this; } + + __gmp_expr & operator=(signed long int l) + { mpf_set_si(mp, l); return *this; } + __gmp_expr & operator=(unsigned long int l) + { mpf_set_ui(mp, l); return *this; } + + __gmp_expr & operator=(float f) { mpf_set_d(mp, f); return *this; } + __gmp_expr & operator=(double d) { mpf_set_d(mp, d); return *this; } + // __gmp_expr & operator=(long double ld) + // { mpf_set_ld(mp, ld); return *this; } + + __gmp_expr & operator=(const char *s) + { + if (mpf_set_str (mp, s, 0) != 0) + throw std::invalid_argument ("mpf_set_str"); + return *this; + } + __gmp_expr & operator=(const std::string &s) + { + if (mpf_set_str(mp, s.c_str(), 0) != 0) + throw std::invalid_argument ("mpf_set_str"); + return *this; + } + + // string input/output functions + int set_str(const char *s, int base) + { return mpf_set_str(mp, s, base); } + int set_str(const std::string &s, int base) + { return mpf_set_str(mp, s.c_str(), base); } + std::string get_str(mp_exp_t &expo, int base = 10, size_t size = 0) const + { + __gmp_alloc_cstring temp(mpf_get_str(0, &expo, base, size, mp)); + return std::string(temp.str); + } + + // conversion functions + mpf_srcptr __get_mp() const { return mp; } + mpf_ptr __get_mp() { return mp; } + mpf_srcptr get_mpf_t() const { return mp; } + mpf_ptr get_mpf_t() { return mp; } + + signed long int get_si() const { return mpf_get_si(mp); } + unsigned long int get_ui() const { return mpf_get_ui(mp); } + double get_d() const { return mpf_get_d(mp); } + + // bool fits_schar_p() const { return mpf_fits_schar_p(mp); } + // bool fits_uchar_p() const { return mpf_fits_uchar_p(mp); } + bool fits_sint_p() const { return mpf_fits_sint_p(mp); } + bool fits_uint_p() const { return mpf_fits_uint_p(mp); } + bool fits_sshort_p() const { return mpf_fits_sshort_p(mp); } + bool fits_ushort_p() const { return mpf_fits_ushort_p(mp); } + bool fits_slong_p() const { return mpf_fits_slong_p(mp); } + bool fits_ulong_p() const { return mpf_fits_ulong_p(mp); } + // bool fits_float_p() const { return mpf_fits_float_p(mp); } + // bool fits_double_p() const { return mpf_fits_double_p(mp); } + // bool fits_ldouble_p() const { return mpf_fits_ldouble_p(mp); } + +#if __GMPXX_USE_CXX11 + explicit operator bool() const { return mp->_mp_size != 0; } +#endif + + // compound assignments + __GMP_DECLARE_COMPOUND_OPERATOR(operator+=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator-=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator*=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator/=) + + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator<<=) + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator>>=) + + __GMP_DECLARE_INCREMENT_OPERATOR(operator++) + __GMP_DECLARE_INCREMENT_OPERATOR(operator--) +}; + +typedef __gmp_expr mpf_class; + + + +/**************** User-defined literals ****************/ + +#if __GMPXX_USE_CXX11 +inline mpz_class operator"" _mpz(const char* s) +{ + return mpz_class(s); +} + +inline mpq_class operator"" _mpq(const char* s) +{ + mpq_class q; + q.get_num() = s; + return q; +} + +inline mpf_class operator"" _mpf(const char* s) +{ + return mpf_class(s); +} +#endif + +/**************** I/O operators ****************/ + +// these should (and will) be provided separately + +template +inline std::ostream & operator<< +(std::ostream &o, const __gmp_expr &expr) +{ + __gmp_expr const& temp(expr); + return o << temp.__get_mp(); +} + +template +inline std::istream & operator>>(std::istream &i, __gmp_expr &expr) +{ + return i >> expr.__get_mp(); +} + +/* +// you might want to uncomment this +inline std::istream & operator>>(std::istream &i, mpq_class &q) +{ + i >> q.get_mpq_t(); + q.canonicalize(); + return i; +} +*/ + + +/**************** Functions for type conversion ****************/ + +inline void __gmp_set_expr(mpz_ptr z, const mpz_class &w) +{ + mpz_set(z, w.get_mpz_t()); +} + +template +inline void __gmp_set_expr(mpz_ptr z, const __gmp_expr &expr) +{ + expr.eval(z); +} + +template +inline void __gmp_set_expr(mpz_ptr z, const __gmp_expr &expr) +{ + mpq_class const& temp(expr); + mpz_set_q(z, temp.get_mpq_t()); +} + +template +inline void __gmp_set_expr(mpz_ptr z, const __gmp_expr &expr) +{ + mpf_class const& temp(expr); + mpz_set_f(z, temp.get_mpf_t()); +} + +inline void __gmp_set_expr(mpq_ptr q, const mpz_class &z) +{ + mpq_set_z(q, z.get_mpz_t()); +} + +template +inline void __gmp_set_expr(mpq_ptr q, const __gmp_expr &expr) +{ + __gmp_set_expr(mpq_numref(q), expr); + mpz_set_ui(mpq_denref(q), 1); +} + +inline void __gmp_set_expr(mpq_ptr q, const mpq_class &r) +{ + mpq_set(q, r.get_mpq_t()); +} + +template +inline void __gmp_set_expr(mpq_ptr q, const __gmp_expr &expr) +{ + expr.eval(q); +} + +template +inline void __gmp_set_expr(mpq_ptr q, const __gmp_expr &expr) +{ + mpf_class const& temp(expr); + mpq_set_f(q, temp.get_mpf_t()); +} + +template +inline void __gmp_set_expr(mpf_ptr f, const __gmp_expr &expr) +{ + mpz_class const& temp(expr); + mpf_set_z(f, temp.get_mpz_t()); +} + +template +inline void __gmp_set_expr(mpf_ptr f, const __gmp_expr &expr) +{ + mpq_class const& temp(expr); + mpf_set_q(f, temp.get_mpq_t()); +} + +inline void __gmp_set_expr(mpf_ptr f, const mpf_class &g) +{ + mpf_set(f, g.get_mpf_t()); +} + +template +inline void __gmp_set_expr(mpf_ptr f, const __gmp_expr &expr) +{ + expr.eval(f); +} + + +/* Temporary objects */ + +template +class __gmp_temp +{ + __gmp_expr val; + public: + template + __gmp_temp(U const& u, V) : val (u) {} + typename __gmp_resolve_expr::srcptr_type + __get_mp() const { return val.__get_mp(); } +}; + +template <> +class __gmp_temp +{ + mpf_class val; + public: + template + __gmp_temp(U const& u, mpf_ptr res) : val (u, mpf_get_prec(res)) {} + mpf_srcptr __get_mp() const { return val.__get_mp(); } +}; + +/**************** Specializations of __gmp_expr ****************/ +/* The eval() method of __gmp_expr evaluates the corresponding + expression and assigns the result to its argument, which is either an + mpz_t, mpq_t, or mpf_t as specified by the T argument. + Compound expressions are evaluated recursively (temporaries are created + to hold intermediate values), while for simple expressions the eval() + method of the appropriate function object (available as the Op argument + of either __gmp_unary_expr or __gmp_binary_expr) is + called. */ + + +/**************** Unary expressions ****************/ +/* cases: + - simple: argument is mp*_class, that is, __gmp_expr + - compound: argument is __gmp_expr (with U not equal to T) */ + + +// simple expressions + +template +class __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val_type; + + __gmp_unary_expr expr; +public: + explicit __gmp_expr(const val_type &val) : expr(val) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { Op::eval(p, expr.val.__get_mp()); } + const val_type & get_val() const { return expr.val; } + mp_bitcnt_t get_prec() const { return expr.val.get_prec(); } +}; + + +// compound expressions + +template +class __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val_type; + + __gmp_unary_expr expr; +public: + explicit __gmp_expr(const val_type &val) : expr(val) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { expr.val.eval(p); Op::eval(p, p); } + const val_type & get_val() const { return expr.val; } + mp_bitcnt_t get_prec() const { return expr.val.get_prec(); } +}; + + +/**************** Binary expressions ****************/ +/* simple: + - arguments are both mp*_class + - one argument is mp*_class, one is a built-in type + compound: + - one is mp*_class, one is __gmp_expr + - one is __gmp_expr, one is built-in + - both arguments are __gmp_expr<...> */ + + +// simple expressions + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { Op::eval(p, expr.val1.__get_mp(), expr.val2.__get_mp()); } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + + +// simple expressions, T is a built-in numerical type + +template +class __gmp_expr, U, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef U val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { Op::eval(p, expr.val1.__get_mp(), expr.val2); } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const { return expr.val1.get_prec(); } +}; + +template +class __gmp_expr, Op> > +{ +private: + typedef U val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { Op::eval(p, expr.val1, expr.val2.__get_mp()); } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const { return expr.val2.get_prec(); } +}; + + +// compound expressions, one argument is a subexpression + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + if(p != expr.val1.__get_mp()) + { + __gmp_set_expr(p, expr.val2); + Op::eval(p, expr.val1.__get_mp(), p); + } + else + { + __gmp_temp temp(expr.val2, p); + Op::eval(p, expr.val1.__get_mp(), temp.__get_mp()); + } + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + if(p != expr.val2.__get_mp()) + { + __gmp_set_expr(p, expr.val1); + Op::eval(p, p, expr.val2.__get_mp()); + } + else + { + __gmp_temp temp(expr.val1, p); + Op::eval(p, temp.__get_mp(), expr.val2.__get_mp()); + } + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + if(p != expr.val1.__get_mp()) + { + __gmp_set_expr(p, expr.val2); + Op::eval(p, expr.val1.__get_mp(), p); + } + else + { + __gmp_temp temp(expr.val2, p); + Op::eval(p, expr.val1.__get_mp(), temp.__get_mp()); + } + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + if(p != expr.val2.__get_mp()) + { + __gmp_set_expr(p, expr.val1); + Op::eval(p, p, expr.val2.__get_mp()); + } + else + { + __gmp_temp temp(expr.val1, p); + Op::eval(p, temp.__get_mp(), expr.val2.__get_mp()); + } + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + + +// one argument is a subexpression, one is a built-in + +template +class __gmp_expr, V, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef V val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + expr.val1.eval(p); + Op::eval(p, p, expr.val2); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const { return expr.val1.get_prec(); } +}; + +template +class __gmp_expr, Op> > +{ +private: + typedef U val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + expr.val2.eval(p); + Op::eval(p, expr.val1, p); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const { return expr.val2.get_prec(); } +}; + + +// both arguments are subexpressions + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + __gmp_temp temp2(expr.val2, p); + expr.val1.eval(p); + Op::eval(p, p, temp2.__get_mp()); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + __gmp_temp temp1(expr.val1, p); + expr.val2.eval(p); + Op::eval(p, temp1.__get_mp(), p); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + __gmp_temp temp2(expr.val2, p); + expr.val1.eval(p); + Op::eval(p, p, temp2.__get_mp()); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + mp_bitcnt_t get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + + +/**************** Special cases ****************/ + +/* Some operations (i.e., add and subtract) with mixed mpz/mpq arguments + can be done directly without first converting the mpz to mpq. + Appropriate specializations of __gmp_expr are required. */ + + +#define __GMPZQ_DEFINE_EXPR(eval_fun) \ + \ +template <> \ +class __gmp_expr > \ +{ \ +private: \ + typedef mpz_class val1_type; \ + typedef mpq_class val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { eval_fun::eval(q, expr.val1.get_mpz_t(), expr.val2.get_mpq_t()); } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template <> \ +class __gmp_expr > \ +{ \ +private: \ + typedef mpq_class val1_type; \ + typedef mpz_class val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { eval_fun::eval(q, expr.val1.get_mpq_t(), expr.val2.get_mpz_t()); } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr \ +, eval_fun> > \ +{ \ +private: \ + typedef mpz_class val1_type; \ + typedef __gmp_expr val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpq_class temp(expr.val2); \ + eval_fun::eval(q, expr.val1.get_mpz_t(), temp.get_mpq_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr \ +, eval_fun> > \ +{ \ +private: \ + typedef mpq_class val1_type; \ + typedef __gmp_expr val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpz_class temp(expr.val2); \ + eval_fun::eval(q, expr.val1.get_mpq_t(), temp.get_mpz_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr \ +, mpq_class, eval_fun> > \ +{ \ +private: \ + typedef __gmp_expr val1_type; \ + typedef mpq_class val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpz_class temp(expr.val1); \ + eval_fun::eval(q, temp.get_mpz_t(), expr.val2.get_mpq_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr \ +, mpz_class, eval_fun> > \ +{ \ +private: \ + typedef __gmp_expr val1_type; \ + typedef mpz_class val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpq_class temp(expr.val1); \ + eval_fun::eval(q, temp.get_mpq_t(), expr.val2.get_mpz_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr, __gmp_expr, eval_fun> > \ +{ \ +private: \ + typedef __gmp_expr val1_type; \ + typedef __gmp_expr val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpz_class temp1(expr.val1); \ + expr.val2.eval(q); \ + eval_fun::eval(q, temp1.get_mpz_t(), q); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr, __gmp_expr, eval_fun> > \ +{ \ +private: \ + typedef __gmp_expr val1_type; \ + typedef __gmp_expr val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpz_class temp2(expr.val2); \ + expr.val1.eval(q); \ + eval_fun::eval(q, q, temp2.get_mpz_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } \ +}; + + +__GMPZQ_DEFINE_EXPR(__gmp_binary_plus) +__GMPZQ_DEFINE_EXPR(__gmp_binary_minus) + + + +/**************** Macros for defining functions ****************/ +/* Results of operators and functions are instances of __gmp_expr. + T determines the numerical type of the expression: it can be either + mpz_t, mpq_t, or mpf_t. When the arguments of a binary + expression have different numerical types, __gmp_resolve_expr is used + to determine the "larger" type. + U is either __gmp_unary_expr or __gmp_binary_expr, + where V and W are the arguments' types -- they can in turn be + expressions, thus allowing to build compound expressions to any + degree of complexity. + Op is a function object that must have an eval() method accepting + appropriate arguments. + Actual evaluation of a __gmp_expr object is done when it gets + assigned to an mp*_class ("lazy" evaluation): this is done by calling + its eval() method. */ + + +// non-member unary operators and functions + +#define __GMP_DEFINE_UNARY_FUNCTION(fun, eval_fun) \ + \ +template \ +inline __gmp_expr, eval_fun> > \ +fun(const __gmp_expr &expr) \ +{ \ + return __gmp_expr, eval_fun> >(expr); \ +} + +#define __GMP_DEFINE_UNARY_TYPE_FUNCTION(type, fun, eval_fun) \ + \ +template \ +inline type fun(const __gmp_expr &expr) \ +{ \ + __gmp_expr const& temp(expr); \ + return eval_fun::eval(temp.__get_mp()); \ +} + + +// non-member binary operators and functions + +#define __GMPP_DEFINE_BINARY_FUNCTION(fun, eval_fun) \ + \ +template \ +inline __gmp_expr::value_type, \ +__gmp_binary_expr<__gmp_expr, __gmp_expr, eval_fun> > \ +fun(const __gmp_expr &expr1, const __gmp_expr &expr2) \ +{ \ + return __gmp_expr::value_type, \ + __gmp_binary_expr<__gmp_expr, __gmp_expr, eval_fun> > \ + (expr1, expr2); \ +} + +#define __GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, bigtype) \ + \ +template \ +inline __gmp_expr \ +, bigtype, eval_fun> > \ +fun(const __gmp_expr &expr, type t) \ +{ \ + return __gmp_expr \ + , bigtype, eval_fun> >(expr, t); \ +} \ + \ +template \ +inline __gmp_expr \ +, eval_fun> > \ +fun(type t, const __gmp_expr &expr) \ +{ \ + return __gmp_expr \ + , eval_fun> >(t, expr); \ +} + +#define __GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, type) \ +__GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, signed long int) + +#define __GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, type) \ +__GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, unsigned long int) + +#define __GMPND_DEFINE_BINARY_FUNCTION(fun, eval_fun, type) \ +__GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, double) + +#define __GMPNLD_DEFINE_BINARY_FUNCTION(fun, eval_fun, type) \ +__GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, long double) + +#define __GMPN_DEFINE_BINARY_FUNCTION(fun, eval_fun) \ +__GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, signed char) \ +__GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, unsigned char) \ +__GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, signed int) \ +__GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, unsigned int) \ +__GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, signed short int) \ +__GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, unsigned short int) \ +__GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, signed long int) \ +__GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, unsigned long int) \ +__GMPND_DEFINE_BINARY_FUNCTION(fun, eval_fun, float) \ +__GMPND_DEFINE_BINARY_FUNCTION(fun, eval_fun, double) \ +/* __GMPNLD_DEFINE_BINARY_FUNCTION(fun, eval_fun, long double) */ + +#define __GMP_DEFINE_BINARY_FUNCTION(fun, eval_fun) \ +__GMPP_DEFINE_BINARY_FUNCTION(fun, eval_fun) \ +__GMPN_DEFINE_BINARY_FUNCTION(fun, eval_fun) + + +#define __GMP_DEFINE_BINARY_FUNCTION_UI(fun, eval_fun) \ + \ +template \ +inline __gmp_expr \ +, mp_bitcnt_t, eval_fun> > \ +fun(const __gmp_expr &expr, mp_bitcnt_t l) \ +{ \ + return __gmp_expr, mp_bitcnt_t, eval_fun> >(expr, l); \ +} + + +#define __GMPP_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) \ + \ +template \ +inline type fun(const __gmp_expr &expr1, \ + const __gmp_expr &expr2) \ +{ \ + typedef typename __gmp_resolve_expr::value_type eval_type; \ + __gmp_expr const& temp1(expr1); \ + __gmp_expr const& temp2(expr2); \ + return eval_fun::eval(temp1.__get_mp(), temp2.__get_mp()); \ +} + +#define __GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, \ + type2, bigtype) \ + \ +template \ +inline type fun(const __gmp_expr &expr, type2 t) \ +{ \ + __gmp_expr const& temp(expr); \ + return eval_fun::eval(temp.__get_mp(), static_cast(t)); \ +} \ + \ +template \ +inline type fun(type2 t, const __gmp_expr &expr) \ +{ \ + __gmp_expr const& temp(expr); \ + return eval_fun::eval(static_cast(t), temp.__get_mp()); \ +} + +#define __GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, \ + type2, signed long int) + +#define __GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, \ + type2, unsigned long int) + +#define __GMPND_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2, double) + +#define __GMPNLD_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2, long double) + +#define __GMPN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) \ +__GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, signed char) \ +__GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, unsigned char) \ +__GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, signed int) \ +__GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, unsigned int) \ +__GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, signed short int) \ +__GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, unsigned short int) \ +__GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, signed long int) \ +__GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, unsigned long int) \ +__GMPND_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, float) \ +__GMPND_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, double) \ +/* __GMPNLD_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, long double) */ + +#define __GMP_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) \ +__GMPP_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) \ +__GMPN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) + + +// member operators + +#define __GMPP_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) \ + \ +template \ +inline type##_class & type##_class::fun(const __gmp_expr &expr) \ +{ \ + __gmp_set_expr(mp, __gmp_expr, eval_fun> >(*this, expr)); \ + return *this; \ +} + +#define __GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, \ + type2, bigtype) \ + \ +inline type##_class & type##_class::fun(type2 t) \ +{ \ + __gmp_set_expr(mp, __gmp_expr >(*this, t)); \ + return *this; \ +} + +#define __GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, \ + type2, signed long int) + +#define __GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, \ + type2, unsigned long int) + +#define __GMPND_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2, double) + +#define __GMPNLD_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2, long double) + +#define __GMPN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) \ +__GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, signed char) \ +__GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, unsigned char) \ +__GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, signed int) \ +__GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, unsigned int) \ +__GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, signed short int) \ +__GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, unsigned short int) \ +__GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, signed long int) \ +__GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, unsigned long int) \ +__GMPND_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, float) \ +__GMPND_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, double) \ +/* __GMPNLD_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, long double) */ + +#define __GMP_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) \ +__GMPP_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) \ +__GMPN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) + +#define __GMPZ_DEFINE_COMPOUND_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR(mpz, fun, eval_fun) + +#define __GMPQ_DEFINE_COMPOUND_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR(mpq, fun, eval_fun) + +#define __GMPF_DEFINE_COMPOUND_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR(mpf, fun, eval_fun) + + + +#define __GMP_DEFINE_COMPOUND_OPERATOR_UI(type, fun, eval_fun) \ + \ +inline type##_class & type##_class::fun(mp_bitcnt_t l) \ +{ \ + __gmp_set_expr(mp, __gmp_expr >(*this, l)); \ + return *this; \ +} + +#define __GMPZ_DEFINE_COMPOUND_OPERATOR_UI(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR_UI(mpz, fun, eval_fun) + +#define __GMPQ_DEFINE_COMPOUND_OPERATOR_UI(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR_UI(mpq, fun, eval_fun) + +#define __GMPF_DEFINE_COMPOUND_OPERATOR_UI(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR_UI(mpf, fun, eval_fun) + + + +#define __GMP_DEFINE_INCREMENT_OPERATOR(type, fun, eval_fun) \ + \ +inline type##_class & type##_class::fun() \ +{ \ + eval_fun::eval(mp); \ + return *this; \ +} \ + \ +inline type##_class type##_class::fun(int) \ +{ \ + type##_class temp(*this); \ + eval_fun::eval(mp); \ + return temp; \ +} + +#define __GMPZ_DEFINE_INCREMENT_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_INCREMENT_OPERATOR(mpz, fun, eval_fun) + +#define __GMPQ_DEFINE_INCREMENT_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_INCREMENT_OPERATOR(mpq, fun, eval_fun) + +#define __GMPF_DEFINE_INCREMENT_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_INCREMENT_OPERATOR(mpf, fun, eval_fun) + + + +/**************** Arithmetic operators and functions ****************/ + +// non-member operators and functions + +__GMP_DEFINE_UNARY_FUNCTION(operator+, __gmp_unary_plus) +__GMP_DEFINE_UNARY_FUNCTION(operator-, __gmp_unary_minus) +__GMP_DEFINE_UNARY_FUNCTION(operator~, __gmp_unary_com) + +__GMP_DEFINE_BINARY_FUNCTION(operator+, __gmp_binary_plus) +__GMP_DEFINE_BINARY_FUNCTION(operator-, __gmp_binary_minus) +__GMP_DEFINE_BINARY_FUNCTION(operator*, __gmp_binary_multiplies) +__GMP_DEFINE_BINARY_FUNCTION(operator/, __gmp_binary_divides) +__GMP_DEFINE_BINARY_FUNCTION(operator%, __gmp_binary_modulus) +__GMP_DEFINE_BINARY_FUNCTION(operator&, __gmp_binary_and) +__GMP_DEFINE_BINARY_FUNCTION(operator|, __gmp_binary_ior) +__GMP_DEFINE_BINARY_FUNCTION(operator^, __gmp_binary_xor) + +__GMP_DEFINE_BINARY_FUNCTION_UI(operator<<, __gmp_binary_lshift) +__GMP_DEFINE_BINARY_FUNCTION_UI(operator>>, __gmp_binary_rshift) + +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator==, __gmp_binary_equal) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator!=, ! __gmp_binary_equal) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator<, __gmp_binary_less) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator<=, ! __gmp_binary_greater) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator>, __gmp_binary_greater) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator>=, ! __gmp_binary_less) + +__GMP_DEFINE_UNARY_FUNCTION(abs, __gmp_abs_function) +__GMP_DEFINE_UNARY_FUNCTION(trunc, __gmp_trunc_function) +__GMP_DEFINE_UNARY_FUNCTION(floor, __gmp_floor_function) +__GMP_DEFINE_UNARY_FUNCTION(ceil, __gmp_ceil_function) +__GMP_DEFINE_UNARY_FUNCTION(sqrt, __gmp_sqrt_function) +__GMP_DEFINE_BINARY_FUNCTION(hypot, __gmp_hypot_function) + +__GMP_DEFINE_UNARY_TYPE_FUNCTION(int, sgn, __gmp_sgn_function) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(int, cmp, __gmp_cmp_function) + +template +void swap(__gmp_expr& x, __gmp_expr& y) __GMPXX_NOEXCEPT +{ x.swap(y); } + +// member operators for mpz_class + +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator+=, __gmp_binary_plus) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator-=, __gmp_binary_minus) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator*=, __gmp_binary_multiplies) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator/=, __gmp_binary_divides) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator%=, __gmp_binary_modulus) + +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator&=, __gmp_binary_and) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator|=, __gmp_binary_ior) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator^=, __gmp_binary_xor) + +__GMPZ_DEFINE_COMPOUND_OPERATOR_UI(operator<<=, __gmp_binary_lshift) +__GMPZ_DEFINE_COMPOUND_OPERATOR_UI(operator>>=, __gmp_binary_rshift) + +__GMPZ_DEFINE_INCREMENT_OPERATOR(operator++, __gmp_unary_increment) +__GMPZ_DEFINE_INCREMENT_OPERATOR(operator--, __gmp_unary_decrement) + +// member operators for mpq_class + +__GMPQ_DEFINE_COMPOUND_OPERATOR(operator+=, __gmp_binary_plus) +__GMPQ_DEFINE_COMPOUND_OPERATOR(operator-=, __gmp_binary_minus) +__GMPQ_DEFINE_COMPOUND_OPERATOR(operator*=, __gmp_binary_multiplies) +__GMPQ_DEFINE_COMPOUND_OPERATOR(operator/=, __gmp_binary_divides) + +__GMPQ_DEFINE_COMPOUND_OPERATOR_UI(operator<<=, __gmp_binary_lshift) +__GMPQ_DEFINE_COMPOUND_OPERATOR_UI(operator>>=, __gmp_binary_rshift) + +__GMPQ_DEFINE_INCREMENT_OPERATOR(operator++, __gmp_unary_increment) +__GMPQ_DEFINE_INCREMENT_OPERATOR(operator--, __gmp_unary_decrement) + +// member operators for mpf_class + +__GMPF_DEFINE_COMPOUND_OPERATOR(operator+=, __gmp_binary_plus) +__GMPF_DEFINE_COMPOUND_OPERATOR(operator-=, __gmp_binary_minus) +__GMPF_DEFINE_COMPOUND_OPERATOR(operator*=, __gmp_binary_multiplies) +__GMPF_DEFINE_COMPOUND_OPERATOR(operator/=, __gmp_binary_divides) + +__GMPF_DEFINE_COMPOUND_OPERATOR_UI(operator<<=, __gmp_binary_lshift) +__GMPF_DEFINE_COMPOUND_OPERATOR_UI(operator>>=, __gmp_binary_rshift) + +__GMPF_DEFINE_INCREMENT_OPERATOR(operator++, __gmp_unary_increment) +__GMPF_DEFINE_INCREMENT_OPERATOR(operator--, __gmp_unary_decrement) + + + +/**************** Class wrapper for gmp_randstate_t ****************/ + +class __gmp_urandomb_value { }; +class __gmp_urandomm_value { }; + +template <> +class __gmp_expr +{ +private: + __gmp_randstate_struct *state; + mp_bitcnt_t bits; +public: + __gmp_expr(gmp_randstate_t s, mp_bitcnt_t l) : state(s), bits(l) { } + void eval(mpz_ptr z) const { __gmp_rand_function::eval(z, state, bits); } + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } +}; + +template <> +class __gmp_expr +{ +private: + __gmp_randstate_struct *state; + mpz_class range; +public: + __gmp_expr(gmp_randstate_t s, const mpz_class &z) : state(s), range(z) { } + void eval(mpz_ptr z) const + { __gmp_rand_function::eval(z, state, range.get_mpz_t()); } + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } +}; + +template <> +class __gmp_expr +{ +private: + __gmp_randstate_struct *state; + mp_bitcnt_t bits; +public: + __gmp_expr(gmp_randstate_t s, mp_bitcnt_t l) : state(s), bits(l) { } + void eval(mpf_ptr f) const + { + __gmp_rand_function::eval(f, state, + (bits>0) ? bits : mpf_get_prec(f)); + } + mp_bitcnt_t get_prec() const + { + if (bits == 0) + return mpf_get_default_prec(); + else + return bits; + } +}; + +extern "C" { + typedef void __gmp_randinit_default_t (gmp_randstate_t); + typedef void __gmp_randinit_lc_2exp_t (gmp_randstate_t, mpz_srcptr, unsigned long int, mp_bitcnt_t); + typedef int __gmp_randinit_lc_2exp_size_t (gmp_randstate_t, mp_bitcnt_t); +} + +class gmp_randclass +{ +private: + gmp_randstate_t state; + + // copy construction and assignment not allowed + gmp_randclass(const gmp_randclass &); + void operator=(const gmp_randclass &); +public: + // constructors and destructor + gmp_randclass(gmp_randalg_t alg, unsigned long int size) + { + switch (alg) + { + case GMP_RAND_ALG_LC: // no other cases for now + default: + gmp_randinit(state, alg, size); + break; + } + } + + // gmp_randinit_default + gmp_randclass(__gmp_randinit_default_t* f) { f(state); } + + // gmp_randinit_lc_2exp + gmp_randclass(__gmp_randinit_lc_2exp_t* f, + mpz_class z, unsigned long int l1, mp_bitcnt_t l2) + { f(state, z.get_mpz_t(), l1, l2); } + + // gmp_randinit_lc_2exp_size + gmp_randclass(__gmp_randinit_lc_2exp_size_t* f, + mp_bitcnt_t size) + { + if (f (state, size) == 0) + throw std::length_error ("gmp_randinit_lc_2exp_size"); + } + + ~gmp_randclass() { gmp_randclear(state); } + + // initialize + void seed(); // choose a random seed some way (?) + void seed(unsigned long int s) { gmp_randseed_ui(state, s); } + void seed(const mpz_class &z) { gmp_randseed(state, z.get_mpz_t()); } + + // get random number + __gmp_expr get_z_bits(mp_bitcnt_t l) + { return __gmp_expr(state, l); } + __gmp_expr get_z_bits(const mpz_class &z) + { return get_z_bits(z.get_ui()); } + // FIXME: z.get_bitcnt_t() ? + + __gmp_expr get_z_range(const mpz_class &z) + { return __gmp_expr(state, z); } + + __gmp_expr get_f(mp_bitcnt_t prec = 0) + { return __gmp_expr(state, prec); } +}; + + +/**************** Specialize std::numeric_limits ****************/ + +namespace std { + template <> class numeric_limits + { + public: + static const bool is_specialized = true; + static mpz_class min() { return mpz_class(); } + static mpz_class max() { return mpz_class(); } + static mpz_class lowest() { return mpz_class(); } + static const int digits = 0; + static const int digits10 = 0; + static const int max_digits10 = 0; + static const bool is_signed = true; + static const bool is_integer = true; + static const bool is_exact = true; + static const int radix = 2; + static mpz_class epsilon() { return mpz_class(); } + static mpz_class round_error() { return mpz_class(); } + static const int min_exponent = 0; + static const int min_exponent10 = 0; + static const int max_exponent = 0; + static const int max_exponent10 = 0; + static const bool has_infinity = false; + static const bool has_quiet_NaN = false; + static const bool has_signaling_NaN = false; + static const float_denorm_style has_denorm = denorm_absent; + static const bool has_denorm_loss = false; + static mpz_class infinity() { return mpz_class(); } + static mpz_class quiet_NaN() { return mpz_class(); } + static mpz_class signaling_NaN() { return mpz_class(); } + static mpz_class denorm_min() { return mpz_class(); } + static const bool is_iec559 = false; + static const bool is_bounded = false; + static const bool is_modulo = false; + static const bool traps = false; + static const bool tinyness_before = false; + static const float_round_style round_style = round_toward_zero; + }; + + template <> class numeric_limits + { + public: + static const bool is_specialized = true; + static mpq_class min() { return mpq_class(); } + static mpq_class max() { return mpq_class(); } + static mpq_class lowest() { return mpq_class(); } + static const int digits = 0; + static const int digits10 = 0; + static const int max_digits10 = 0; + static const bool is_signed = true; + static const bool is_integer = false; + static const bool is_exact = true; + static const int radix = 2; + static mpq_class epsilon() { return mpq_class(); } + static mpq_class round_error() { return mpq_class(); } + static const int min_exponent = 0; + static const int min_exponent10 = 0; + static const int max_exponent = 0; + static const int max_exponent10 = 0; + static const bool has_infinity = false; + static const bool has_quiet_NaN = false; + static const bool has_signaling_NaN = false; + static const float_denorm_style has_denorm = denorm_absent; + static const bool has_denorm_loss = false; + static mpq_class infinity() { return mpq_class(); } + static mpq_class quiet_NaN() { return mpq_class(); } + static mpq_class signaling_NaN() { return mpq_class(); } + static mpq_class denorm_min() { return mpq_class(); } + static const bool is_iec559 = false; + static const bool is_bounded = false; + static const bool is_modulo = false; + static const bool traps = false; + static const bool tinyness_before = false; + static const float_round_style round_style = round_toward_zero; + }; + + template <> class numeric_limits + { + public: + static const bool is_specialized = true; + static mpf_class min() { return mpf_class(); } + static mpf_class max() { return mpf_class(); } + static mpf_class lowest() { return mpf_class(); } + static const int digits = 0; + static const int digits10 = 0; + static const int max_digits10 = 0; + static const bool is_signed = true; + static const bool is_integer = false; + static const bool is_exact = false; + static const int radix = 2; + static mpf_class epsilon() { return mpf_class(); } + static mpf_class round_error() { return mpf_class(); } + static const int min_exponent = 0; + static const int min_exponent10 = 0; + static const int max_exponent = 0; + static const int max_exponent10 = 0; + static const bool has_infinity = false; + static const bool has_quiet_NaN = false; + static const bool has_signaling_NaN = false; + static const float_denorm_style has_denorm = denorm_absent; + static const bool has_denorm_loss = false; + static mpf_class infinity() { return mpf_class(); } + static mpf_class quiet_NaN() { return mpf_class(); } + static mpf_class signaling_NaN() { return mpf_class(); } + static mpf_class denorm_min() { return mpf_class(); } + static const bool is_iec559 = false; + static const bool is_bounded = false; + static const bool is_modulo = false; + static const bool traps = false; + static const bool tinyness_before = false; + static const float_round_style round_style = round_indeterminate; + }; +} + + +/**************** #undef all private macros ****************/ + +#undef __GMPP_DECLARE_COMPOUND_OPERATOR +#undef __GMPN_DECLARE_COMPOUND_OPERATOR +#undef __GMP_DECLARE_COMPOUND_OPERATOR +#undef __GMP_DECLARE_COMPOUND_OPERATOR_UI +#undef __GMP_DECLARE_INCREMENT_OPERATOR + +#undef __GMPZQ_DEFINE_EXPR + +#undef __GMP_DEFINE_UNARY_FUNCTION +#undef __GMP_DEFINE_UNARY_TYPE_FUNCTION + +#undef __GMPP_DEFINE_BINARY_FUNCTION +#undef __GMPNN_DEFINE_BINARY_FUNCTION +#undef __GMPNS_DEFINE_BINARY_FUNCTION +#undef __GMPNU_DEFINE_BINARY_FUNCTION +#undef __GMPND_DEFINE_BINARY_FUNCTION +#undef __GMPNLD_DEFINE_BINARY_FUNCTION +#undef __GMPN_DEFINE_BINARY_FUNCTION +#undef __GMP_DEFINE_BINARY_FUNCTION + +#undef __GMP_DEFINE_BINARY_FUNCTION_UI + +#undef __GMPP_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPNN_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPNS_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPNU_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPND_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPNLD_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPN_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMP_DEFINE_BINARY_TYPE_FUNCTION + +#undef __GMPZ_DEFINE_COMPOUND_OPERATOR + +#undef __GMPP_DEFINE_COMPOUND_OPERATOR +#undef __GMPNN_DEFINE_COMPOUND_OPERATOR +#undef __GMPNS_DEFINE_COMPOUND_OPERATOR +#undef __GMPNU_DEFINE_COMPOUND_OPERATOR +#undef __GMPND_DEFINE_COMPOUND_OPERATOR +#undef __GMPNLD_DEFINE_COMPOUND_OPERATOR +#undef __GMPN_DEFINE_COMPOUND_OPERATOR +#undef __GMP_DEFINE_COMPOUND_OPERATOR + +#undef __GMPQ_DEFINE_COMPOUND_OPERATOR +#undef __GMPF_DEFINE_COMPOUND_OPERATOR + +#undef __GMP_DEFINE_COMPOUND_OPERATOR_UI +#undef __GMPZ_DEFINE_COMPOUND_OPERATOR_UI +#undef __GMPQ_DEFINE_COMPOUND_OPERATOR_UI +#undef __GMPF_DEFINE_COMPOUND_OPERATOR_UI + +#undef __GMP_DEFINE_INCREMENT_OPERATOR +#undef __GMPZ_DEFINE_INCREMENT_OPERATOR +#undef __GMPQ_DEFINE_INCREMENT_OPERATOR +#undef __GMPF_DEFINE_INCREMENT_OPERATOR + +#undef __GMPXX_CONSTANT + +#endif /* __GMP_PLUSPLUS__ */ diff --git a/x86/libgmpxx.so b/x86/libgmpxx.so new file mode 100755 index 0000000000000000000000000000000000000000..2eb89aace48c7d9a40ae036e181fe611f09b1312 GIT binary patch literal 841004 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

9-$I?%$CQx@Kr!7CVt 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 H-+cZ5-zRSA literal 0 HcmV?d00001