From d14bbc2088ed9c0f9d77f15cb943968a70bb8198 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 13 Jan 2013 23:55:59 +0000 Subject: [PATCH] Initial. --- libcxml.pc.in | 10 +++ run-tests.sh | 8 ++ src/cxml.cc | 200 +++++++++++++++++++++++++++++++++++++++++++++++++ src/cxml.h | 170 +++++++++++++++++++++++++++++++++++++++++ src/wscript | 9 +++ test/ref/a.xml | 8 ++ test/tests.cc | 64 ++++++++++++++++ test/wscript | 20 +++++ waf | Bin 0 -> 87683 bytes wscript | 33 ++++++++ 10 files changed, 522 insertions(+) create mode 100644 libcxml.pc.in create mode 100755 run-tests.sh create mode 100644 src/cxml.cc create mode 100644 src/cxml.h create mode 100644 src/wscript create mode 100644 test/ref/a.xml create mode 100644 test/tests.cc create mode 100644 test/wscript create mode 100755 waf create mode 100644 wscript diff --git a/libcxml.pc.in b/libcxml.pc.in new file mode 100644 index 0000000..ebf8bbf --- /dev/null +++ b/libcxml.pc.in @@ -0,0 +1,10 @@ +prefix=@prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: libcxml +Description: Library to simplify XML parsing with libxml++ +Version: @version@ +Requires: libxml++-2.6 +Libs: @libs@ +Cflags: -I${includedir} diff --git a/run-tests.sh b/run-tests.sh new file mode 100755 index 0000000..fda9bd3 --- /dev/null +++ b/run-tests.sh @@ -0,0 +1,8 @@ +#!/bin/bash -e + +if [ "$1" == "--debug" ]; then + shift + LD_LIBRARY_PATH=build/src:build/asdcplib/src gdb --args build/test/tests +else + LD_LIBRARY_PATH=build/src:build/asdcplib/src build/test/tests +fi diff --git a/src/cxml.cc b/src/cxml.cc new file mode 100644 index 0000000..2a755bf --- /dev/null +++ b/src/cxml.cc @@ -0,0 +1,200 @@ +#include +#include +#include +#include +#include +#include +#include "cxml.h" + +using namespace std; +using namespace boost; + +cxml::Node::Node () + : _node (0) +{ + +} + +cxml::Node::Node (xmlpp::Node const * node) + : _node (node) +{ + +} + +shared_ptr +cxml::Node::node_child (string name) +{ + list > n = node_children (name); + if (n.size() > 1) { + throw cxml::Error ("duplicate XML tag " + name); + } else if (n.empty ()) { + throw cxml::Error ("missing XML tag " + name + " in " + _node->get_name()); + } + + return n.front (); +} + +list > +cxml::Node::node_children (string name) +{ + /* XXX: using find / get_path should work here, but I can't follow + how get_path works. + */ + + xmlpp::Node::NodeList c = _node->get_children (); + + list > n; + for (xmlpp::Node::NodeList::iterator i = c.begin (); i != c.end(); ++i) { + if ((*i)->get_name() == name) { + n.push_back (shared_ptr (new Node (*i))); + } + } + + _taken.push_back (name); + return n; +} + +string +cxml::Node::string_child (string c) +{ + return node_child(c)->content (); +} + +optional +cxml::Node::optional_string_child (string c) +{ + list > nodes = node_children (c); + if (nodes.size() > 1) { + throw cxml::Error ("duplicate XML tag " + c); + } + + if (nodes.empty ()) { + return optional (); + } + + return nodes.front()->content(); +} + +bool +cxml::Node::bool_child (string c) +{ + string const s = string_child (c); + return (s == "1" || s == "yes"); +} + +optional +cxml::Node::optional_bool_child (string c) +{ + optional s = optional_string_child (c); + if (!s) { + return optional (); + } + + return (s.get() == "1" || s.get() == "yes"); +} + +void +cxml::Node::ignore_child (string name) +{ + _taken.push_back (name); +} + +string +cxml::Node::string_attribute (string name) +{ + xmlpp::Element const * e = dynamic_cast (_node); + if (!e) { + throw cxml::Error ("missing attribute"); + } + + xmlpp::Attribute* a = e->get_attribute (name); + if (!a) { + throw cxml::Error ("missing attribute"); + } + + return a->get_value (); +} + +optional +cxml::Node::optional_string_attribute (string name) +{ + xmlpp::Element const * e = dynamic_cast (_node); + if (!e) { + return optional (); + } + + xmlpp::Attribute* a = e->get_attribute (name); + if (!a) { + return optional (); + } + + return string (a->get_value ()); +} + +bool +cxml::Node::bool_attribute (string name) +{ + string const s = string_attribute (name); + return (s == "1" || s == "yes"); +} + +optional +cxml::Node::optional_bool_attribute (string name) +{ + optional s = optional_string_attribute (name); + if (!s) { + return optional (); + } + + return (s.get() == "1" || s.get() == "yes"); +} + +void +cxml::Node::done () +{ + xmlpp::Node::NodeList c = _node->get_children (); + for (xmlpp::Node::NodeList::iterator i = c.begin(); i != c.end(); ++i) { + if (dynamic_cast (*i) && find (_taken.begin(), _taken.end(), (*i)->get_name()) == _taken.end ()) { + throw cxml::Error ("unexpected XML node " + (*i)->get_name()); + } + } +} + +string +cxml::Node::content () +{ + string content; + + xmlpp::Node::NodeList c = _node->get_children (); + for (xmlpp::Node::NodeList::const_iterator i = c.begin(); i != c.end(); ++i) { + xmlpp::ContentNode const * v = dynamic_cast (*i); + if (v) { + content += v->get_content (); + } + } + + return content; +} + +cxml::File::File (string file, string root_name) +{ + if (!filesystem::exists (file)) { + throw cxml::Error ("XML file does not exist"); + } + + _parser = new xmlpp::DomParser; + _parser->parse_file (file); + if (!_parser) { + throw cxml::Error ("could not parse XML"); + } + + _node = _parser->get_document()->get_root_node (); + if (_node->get_name() != root_name) { + throw cxml::Error ("unrecognised root node"); + } +} + +cxml::File::~File () +{ + delete _parser; +} diff --git a/src/cxml.h b/src/cxml.h new file mode 100644 index 0000000..bf2a2d3 --- /dev/null +++ b/src/cxml.h @@ -0,0 +1,170 @@ +#ifndef LIBCXML_CXML_H +#define LIBCXML_CXML_H + +#include +#include +#include +#include +#include +#include +#include + +namespace xmlpp { + class Node; + class DomParser; +} + +namespace cxml { + +/** @brief An error */ +class Error : public std::exception +{ +public: + /** Construct an Error exception. + * @param message Error message. + */ + Error (std::string const & message) : _message (message) {} + + /** Error destructor */ + ~Error () throw () {} + + /** @return error message. Caller must not free the returned + * value. + */ + char const * what () const throw () { + return _message.c_str (); + } + +private: + /** error message */ + std::string _message; +}; + +/** @brief A wrapper for a xmlpp::Node which simplifies parsing */ +class Node +{ +public: + Node (); + + /** Construct a Node from an xmlpp::Node. This class will + * not destroy the xmlpp::Node. + * @param node xmlpp::Node. + */ + Node (xmlpp::Node const * node); + + /* A set of methods which look up a child of this node by + * its name, and return its contents as some type or other. + * + * If, for example, this object has been created with + * a node named "Fred", we might have the following XML: + * + * + * 42 + * + * + * string_child ("Jim") would return "42" + * numerical_child ("Jim") would return 42. + * ...and so on. + * + * The methods not marked "optional" will throw an exception + * if the child node is not present. The "optional" methods + * will return an empty boost::optional<> in that case. + * + * All methods will also throw an exception if there is more + * than one of the specified child node. + */ + + std::string string_child (std::string c); + boost::optional optional_string_child (std::string); + + bool bool_child (std::string); + boost::optional optional_bool_child (std::string); + + template + T numerical_child (std::string c) + { + std::string s = string_child (c); + boost::erase_all (s, " "); + return boost::lexical_cast (s); + } + + template + boost::optional optional_numerical_child (std::string c) + { + boost::optional s = optional_string_child (c); + if (!s) { + return boost::optional (); + } + + std::string t = s.get (); + boost::erase_all (t, " "); + return boost::optional (boost::lexical_cast (t)); + } + + /** This will mark a child as to be ignored when calling done() */ + void ignore_child (std::string); + + /** Check whether all children of this Node have been looked up + * or passed to ignore_child(). If not, an exception is thrown. + */ + void done (); + + /* These methods look for an attribute of this node, in the + * same way as the child methods do. + */ + + std::string string_attribute (std::string); + boost::optional optional_string_attribute (std::string); + + bool bool_attribute (std::string); + boost::optional optional_bool_attribute (std::string); + + template + T numerical_attribute (std::string c) + { + std::string s = string_attribute (c); + boost::erase_all (s, " "); + return boost::lexical_cast (s); + } + + template + boost::optional optional_numerical_attribute (std::string c) + { + boost::optional s = optional_string_attribute (c); + if (!s) { + return boost::optional (); + } + + std::string t = s.get (); + boost::erase_all (t, " "); + return boost::optional (boost::lexical_cast (t)); + } + + /** @return The content of this node */ + std::string content (); + + boost::shared_ptr node_child (std::string); + boost::shared_ptr optional_node_child (std::string); + + std::list > node_children (std::string); + +protected: + xmlpp::Node const * _node; + +private: + std::list _taken; +}; + +class File : public Node +{ +public: + File (std::string file, std::string root_name); + virtual ~File (); + +private: + xmlpp::DomParser* _parser; +}; + +} + +#endif diff --git a/src/wscript b/src/wscript new file mode 100644 index 0000000..e1c405a --- /dev/null +++ b/src/wscript @@ -0,0 +1,9 @@ +def build(bld): + obj = bld(features = 'cxx cxxshlib') + obj.name = 'libcxml' + obj.target = 'cxml' + obj.export_includes = ['.'] + obj.uselib = 'LIBXML++ BOOST_FILESYSTEM' + obj.source = "cxml.cc" + + bld.install_files('${PREFIX}/include/libcxml', "cxml.h") diff --git a/test/ref/a.xml b/test/ref/a.xml new file mode 100644 index 0000000..0a37114 --- /dev/null +++ b/test/ref/a.xml @@ -0,0 +1,8 @@ + + 42 + fred + 42.9 + yes + 1 + 2 + diff --git a/test/tests.cc b/test/tests.cc new file mode 100644 index 0000000..21466ca --- /dev/null +++ b/test/tests.cc @@ -0,0 +1,64 @@ +/* + Copyright (C) 2012 Carl Hetherington + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include +#include +#include +#include "cxml.h" + +#define BOOST_TEST_DYN_LINK +#define BOOST_TEST_MODULE libdcp_test +#include + +using std::string; +using std::cout; +using std::vector; +using std::list; +using boost::shared_ptr; + +BOOST_AUTO_TEST_CASE (test) +{ + cxml::File file ("test/ref/a.xml", "A"); + + BOOST_CHECK_EQUAL (file.string_child("B"), "42"); + BOOST_CHECK_EQUAL (file.numerical_child("B"), 42); + BOOST_CHECK_EQUAL (file.numerical_child("B"), 42); + BOOST_CHECK_EQUAL (file.string_child("C"), "fred"); + BOOST_CHECK_EQUAL (file.numerical_child("D"), 42.9); + BOOST_CHECK_EQUAL (file.string_child("E"), "yes"); + BOOST_CHECK_EQUAL (file.bool_child("E"), true); + BOOST_CHECK_THROW (file.bool_child("F"), cxml::Error); + + BOOST_CHECK (file.optional_string_child("B")); + BOOST_CHECK_EQUAL (file.optional_string_child("B").get(), "42"); + BOOST_CHECK (file.optional_numerical_child("B")); + BOOST_CHECK_EQUAL (file.optional_numerical_child("B").get(), 42); + BOOST_CHECK (file.optional_numerical_child("B")); + BOOST_CHECK_EQUAL (file.optional_numerical_child("B").get(), 42); + BOOST_CHECK (file.optional_string_child("C")); + BOOST_CHECK_EQUAL (file.optional_string_child("C").get(), "fred"); + BOOST_CHECK (file.optional_numerical_child("D")); + BOOST_CHECK_EQUAL (file.optional_numerical_child("D").get(), 42.9); + BOOST_CHECK (file.optional_string_child("E")); + BOOST_CHECK_EQUAL (file.optional_string_child("E").get(), "yes"); + BOOST_CHECK (file.optional_bool_child("E")); + BOOST_CHECK_EQUAL (file.optional_bool_child("E").get(), true); + BOOST_CHECK_THROW (file.optional_bool_child("F"), cxml::Error); + BOOST_CHECK (!file.optional_bool_child("G")); +} diff --git a/test/wscript b/test/wscript new file mode 100644 index 0000000..8868a36 --- /dev/null +++ b/test/wscript @@ -0,0 +1,20 @@ +def configure(conf): + conf.check_cxx(fragment = """ + #define BOOST_TEST_MODULE Config test\n + #include \n + int main() {} + """, + msg = 'Checking for boost unit testing library', + lib = ['boost_unit_test_framework', 'boost_system'], + uselib_store = 'BOOST_TEST') + + conf.env.prepend_value('LINKFLAGS', '-Lsrc') + +def build(bld): + obj = bld(features = 'cxx cxxprogram') + obj.name = 'tests' + obj.uselib = 'BOOST_TEST BOOST_FILESYSTEM' + obj.use = 'libcxml' + obj.source = 'tests.cc' + obj.target = 'tests' + obj.install_path = '' diff --git a/waf b/waf new file mode 100755 index 0000000000000000000000000000000000000000..178461f113668f7b3bb794abe3cb788e7c69322c GIT binary patch literal 87683 zcmcG#bzD^6)(4D=gz_OIBvb|lm>IgeVSu4yXc38_2as;0yF(fTq(o^D5s*eY1*Aj- zK~lPX&!G2r?{lB${k(s@^N~4c_FjACcdxZh2&Ut3b#~$~wYKL#*}H)pJzcCE?C*d< zD0?#pb8CA`VGu$~O;C_eh>Z&vMOrzaO`JihCYGM8AZ|`hJ~nPnF0MOw=;`V2Xrj!m zon4%)OSTtx9s%T-IC+9B9GuY3tRQ!57b}p1)AiB8 z)#VNv5NTm;W`beB3Nmp*fgDjzXloZ2lsU-J$-&Lq95`{YGI0UEPyiDD zvbMBxxdQ@$>>XUJ%}}hsw6!zH4zLfy&Fw695BX7O)ZR z-~z<-+Ey3mYmES*ZUChPF!#sF&JGqX?wBZI!~>uJIXj}vFsK05S!1x`gu#RTA7nT? z13?E=LMkA%Kw4^YNL?vSIDlA?x~7^ALKZFylGXRFMd{7Apv$Dx<6|i%^wk1xafoL8@vvfF4pHbtz3GLPlFz zN)x26t*Nf21?Z>=zaxv#l2MjIsK8~}0qKB55L^eYiUesXNGU7-rzO&GKou!zW%wU{ zfGx5JO}Gq_^$tSy?-@pYzz2X9%B&zQb+`-ya{||c1C~l@>azk?gJjfHwcr}s01+?= zl9f`Cl80;Ef&PCO4tQ5aTNAE=(G0LwOIunCi9l*2;UIZ6HQ8%-YQZ&i5HfHr5sRI5790jd1OaF!54iMNtgaLw6Tkr=7lSE4t3Rjzfjz*# zK)gT*IgpgB4!{FY`I`6+5MeFEUo-$iTG}!Sf8EV~ojvbZqa7Wbfb;^SMQ2avJ9hxf zwE#DW(Q~o$vvY9)`4tW@ydDuS6A-enFc;wGM4?ce+CJ2G5i5HJgH}x7$^v8x^?(WA!3UD1tCKy*J6|Bu!GEN8#2E+|0uHFK1c6BLbM5A1Mz7bq0+n3IRcP>2f+cXD!Y5(Y6k zUk`AiAs|K&8V0+AkCBb?uy%oR{bk{5?`UFXYYgaXZtVmG{xIw;FjhID?4cNP6DLbI zLrx=Bh?6M<;9v&KLChSSoLn7UfJ$R#1*9Pml+hgU5Wc&WwH*q?1#rN(v$jV8losqx zC=+wc4?t&pe8754n#24S24S>^IJw$`0O4$Qn8NWVo0(t=lsS-EfpUQz0p$R*6iWds=RXlG)Ef|^2QxL~XpT`^2y|2fY6 zciagWzXNdogJfqbpb@YGN~ejF1>jGBvy-PV=+7v-6WYZIg}M&Z9ek9B848F3kOTk3 z+tI|?`42f@9ndO(JTNuP5Q21Yuycm6f*>dl7bg>Eh|#sT04SqPY=P#($r*~lE`}*U z^Vij^AP)>+{!0YF7ZWym854UsRSHbiHn9=JIlk3`pGBE|f z0mwj^xi~m^(gS|Qzzwh)P{hm%IR9&v3)&HbF&B1IFKz%-n2=tB5g2EMxLA z5e!iOA8a5lm^}bY{M8ZA@2`vg#qEzJK!W%~_x~2Ue=Ym(;QjTlF5o+}KRz}EdV=ds ziZW*fnOULCY=L?YbaJNG$~wC`UZ+2x%W`x=IRiZkJ;tT~1Rub>3$WvXu$#F6spx+? z>mREB7l>R32IwvSz~diecmS~F6#_61K=!}WndpC}v+Hz&$&ElX4F5O8U`8O8>uiW2 z0UY@k{}$FBj-K4W?>{H(z~LWoT!Y2c9!LPTP#^|?J^z5`+U0-Hj{z1S($(G?)2{x- zHQLn7856ueh!zI@&&`5qqs&}99Z}ApziI#tvbmidpvIpQc3YH_J<5)Un_Ua#A_weC zDVIMzJIY!2j|5DX_{$tvb9VfNg=(mgskszP=n`0BRG^9|1{T?Ajn;32@zG?F6)uKtY5;{!C+%3?`XjfZ;BTxkkX0J$C>p zU?3g*$@15e7zqFab7xGq3dKO{&*Yy>?vB~M7`I{c#dzeu*!|fh|6TmZ`LU~+oj6Zsbar~(%004l>`p0TO287X>?fM_4KtcghR?y$}ffe+xwgC{2*(cW5 zsq}AuzzV@!{6YR4IP4tEOzbc}92{N#w&oURoF zl)K(A7zeO|t_v|xPFw&@(3mm>0YJ&a4Y|IIg0Mp{R|$aM|A&ZwbO59R693DCfWSXl zOmj0UQ>u`vX|^xQ#N|TmHI}Tb~kFoyy|>9uiim1Sy*Gn!opEKKhArCP2Bu_2XA*qtmb1Yg_ews zcDEUwX^Q83HH5Q^KF@HUc>CCkuda)=Xp|{>>7d7-}mp3*POUc?noA^4d!^5m;WgkT*0C zQ1*p)fT~UTN3te|gBxPi&BM;`rxVz!(TPTUPd3jR=EaOnHge5g_vBcdSDzcs3B1{u zvKyhXG&;8Q-gq(&EydQaw8>DS`TRJpv z%}$MwmEoi>3>DK=sJgp-fKxZWu_(2hP@{Oo(y(y2_1)M#dt~WRH6Ho$4;AkQtBqJm z0Soc-z#V6F!&KvspdmFQuKA5p4`X|^I`me!Tbr%zXCb(uRoyMUCokq>_h%P~nzC%V zCyn0SJL=y$uFxv(dHA@d31V0Jq-A&SyvOI{mDXeNx=rsE--fANpHmUSrtHbr?%>(U z9p9z}TiYfJY8|5^Tu}q6?b`2qpRwH88$Jw+p0`Z9d%hjmerZIFRq`C04qMTT?_LV~ zcJO=gqu0@{J4(uIv##Y{gcK<(VM2nv5bv91qRuHW@6xYW?gjVlpMzl*-t*7;ZS(Ej z^StY81`nuXXR;5iZq09mh8#_SSq@+OZns-Lrf2nC{+V_BxzUZP^JuHFxZU+#`8oYXY&%7r+-IzkUgy$Q0a*mrdeYPTYa*Ta%$w*>7e0ZaHe70=4Y3|s! zG`n8>F?ACn_O5-u(Ci`>?!ZSEYO04X-i9<`fnhZZF7^u^Zx+2hu&|&v^oi^Sj-JPC z&V9H|i2C_n%-|8DCTX>-c!|O8;Vt{@b+>G-H%mDSaW;tx$OCK zdwb4u$lyi!wXK-1A)#6K!)!-t zi|*p1-ErBQSRm|?8(^3+=?z|z7(8=c6&zSz#w{yJ>pZN3&`gDKKJ20ZJkWC$Y^)f( zE-_wZE&QJFj0`I)%-+Si=k*F2QJQ=}5E>$(P6bIm2m&+7WdKafN3Q2FUlH_pB=OW(cvg7$ z3H&jn6QA;}zmKYs)aDcw@)xK8w6~Orv9Pcac*G;b={HEn5n`m&W&Xuw#b-9wYLm3D z1j@W}V8tcl6IMj(*ScY0J*4*k?f(%POr1zUbk2P{AKxm&v{$ETZxFl|<;WqWN{mPe z3jxo+)=F648i07zd2|`6nABWKpGF-Muy~|oanu3vRiwkhmBt~KlQR!hFn>Omy`TU> zIQQ@o$|5M;yU9(hS)sNeFi~-~?S~6SvI|i6wtEC^4ZADDvjUNYvXRyH8j5t-Bn+}Q zr8Ke0X%etZ!{KB$SY47{U>J_0tYIf{e5WK0v`e#78&C33(kh&SOg20KC-MQBMyLKu zONh31wG`dcyd=(19))|!X1wKNatQN#-2{ae6N907cF%56ep$f{%+<kui%Aj z6qzJ!te?pZUGu|Dmy=E_&L zDxB_2jUJRM44#g_W+f-(HpwJzV^yA}qT~#rN{b}pR*pziu;xSDP$I^Te3}l1VZ#`U z81xgl%?HwIQ-g@R^E9DmrqcA$&p#z3(y>yQX>geUBJ&g3=y~I#btDr4k!_I{auXpc zyv!za%JHx&8b)ShLN%BL!N>@YxP`zgTNG}G zh)}fR*W#jx4sDCzVYPmv!kKSAP(W?hr%|?fOnn+;y;V4UnqU|`w3gV6AtAYwhDniM5kwr>txz7CS8bb>kk*I7mz64|9!#O3kWo*k<7Q+eL7G{OA>G6}ZufO3Ljr zWNGT{!CW`)8F0nNo0{`$YuVaJ$CR?(&MUB($f0o851c{OkGL%8Y=XKwd8#K)l96^deN`wt?8>f$q*$d z^^5`){v;Yw8jBdVa5IHZA*I&RuN1fm>R&3#eo0NRtG6YaDGYt7V!->k3sF0cR)Q(d zgw#gIr;`*Qt;i$+MVb$c8K{RONEMM3+#KsmxCx7d^V-5xpoM9Q)Z+}iT`CB3 zg~FFF6PejKlU3-R2DaN-b=NQ}q|zzk*S=EDPpnEVKmh=4plseR`$o^uQpjhMW)j=}inD0*s2uFrT53(?CTQ zNQWeWStw`d+YKTL2h$a!>-h?+BYEJ|dg&#h-2-0=Es*-$8kzLTB?CygB*o{=HMy~jr^E;YtG(Y)NMxkX)JXaC2BCNsFy)S>PD4jBDHe*T}Csxc8#j~ zPdKFfw$gI=^karJ_~DuX`7zbW%#nN%hzx#y1Z#U?zDgt*Mv`1VqmF!Y?`bJBJ|i@S zic>uunyBz4N-uDXI*D2(pOiv{9Dy+9FE>q>>obTc=S^ZZH?J~@50x_QDl&fsjgn*5 z)JxG)C*`ayg;VE`mYdv#nn}V*%6N55H8heWH4;hE>lDExnkmW?cD8WpC~F{nj8TDE zM$I(L3n&#$z|dFpY-D}ZP*}MX93EpeT3BD8#YUai6%zr5Rq^Q881T`U88S^0)F_Yj zOHX&nnP`JyiD+mauVzS+W;+{Qxh>O}tO1wa=SXD><-9Qis3x?OJFOOtMxm9c)JO9f ziZsmN3DFbu*0PhNtY7%7^4UylZ3=9yCS~~S;AQ&ywTMW*AQOs2y^&f*uG-K(q$z&d zbg#OBk|tXDIf3z>rQ_9^Z=el?#jfdMmHv0g^GcTcMR}PvHvUN$E?RLCU01B#t`Y;4 z8*<}KY9|garu>F$i<%dYEAvhcTEER`LQ%;gf~$=8*>2UWFo7y%`z0+eamUa6%6obx zK5l1T5$$EWUTra?^Zeo(w~+XB16orPRA|5a0F0MpWu}_TJT5lEFFE*BUU}X$`p2wJ zLcdMW>Ogm5Z(wd16@(9C*n%WB2(o{B|YggTfdcaQY)YT?5OSpvB}#iR2X z?wfR?LfPgMq3escqSNoyB1yn3pV=;0yPvT<%H*g^r#&gX-2814M#U%C7j2%yc2OR( zJt`q$nt+rgQ6~w!dX2;uhJ99)-O%E?O(u3v<2G5?%mMKonD=3C+R$QDJ#2*2ok*OX5!2YHxeGzvO(_!XJ?D?dsedYC1y(ZxtP~r`p-d+HyX0+p2b& zF_^2lppsI(V2Mea<_34>m&>dmTG|zN?ew39W`#a!w(YK3!tGGWMKx^qu&`$hWwI?@EmQGp+t;U1rVGr% zWjQiRt|1%g*T%5X{oVJ7wmplAUo1HJ;8lS_9;-f?mik#`r8tn~keSwEY<{}m=#CEk z=eqHOF)MlV zV0n)zhIg=$Ofc8o{Z%Pa%%CtE+yYb$K3l0~H2R*S=@U(xS~R)01rE=r9J@`{-=%c_)?T;bG9T|Y}y zomx%RQ!gx;d9glqqKsR;ApHgNl8+}X7^W&&l%MIs%!R|z+_z!`W=Wb-GY%d%HNQs< z@!O;kE_-K{7y9$1IsRKRDTTX46gps*ftsV7ZRPLOn)zMX>x#dKYVxN5ymqKf?1BQjn;Nw4d`+FC{P}uV^i~_m$J^ojgkC^w? z7xxL<@HZ9Ndug8so5A1k{2w$Z$t>TuM&&alNVH*H(whz57HQF{SsK#l3mN6hzaL11 zC~Nub3_G~B`qPv^if7N*OQz}L#Z~Q;p;}3QYJT*AKk4S17D3(opO$aOX`A2bq-4ZE zj??4|wxfnjI19=MIu{e){BA*3FRnP(9Q@AD?q`KR4ddao;EUL;BfGzM z=}uc!fb)z_o5EjW<9MlDEt({FAS_xIs zT$=H%4VfkiJjtLDS!T@yogdGr8ib-ogl$%L+=Y`7d)-i)&4A`EY3PsXUOCzhe^EtBJT1UnNXC7|P;KDWii7kdN zekvY6ncAm2_|d_kQ{ym`5$$(;h!WIS&_HYNE1kYQV;VYF5V8eD=e!ksR;gF0uu}NA zC7qS>CYNsmr^jMlvhH_-OSV%!4b}KuoHPG)&(`JB@ws){F5&K}xtt?q%J(5JmHe`L zsMs}YcGMh~cHMByoVHmNKojJA+{LAGMeqm;?qbsb3SWC{d;ypF&p+4am+vK0x-HQO z*Wpc*(z3Lc4IZua+-$!1VIg8M_Q7HHGY)O&Hck8Rf}`hUyde{Dug>jFs|Ei zTZ@mA4);9!@W1va(%-$E5Jo!gW}@fY81{W-wTDeYd$eyvr)4KM)=HN<`mj3x^CFn# z?C!nAn5BZ^!Brn}Z>=r}F@yBa@Few#SenGnlP@;pZ25uFeqo%ti(AcIyjxdr>Njs9 z$(bI$mua&y>3kQYKB<#KUH-&d&-A9u&w&nSL5no{k|^3L%f|)o?kbb2*rvGH!P^(J zJ^2odxT+PnvLe(IDpQ;9rM0?9R*-=drJdDFT%3X-mDx-P&XoO!3{;&c5$4M(^os6* zTXs!^+;SaMIhjdRhveRTueTBUd)txNV2ZH*O#i_vk+F+bIZ_qz@-26_ni{T1ADPdg z-qXdD&w$4U6j6=}g_7y$H=dt6j=R<0(l5Mt@ixl-H_p-F{wMwCg9ps|X=>fHUxj~F zQ+D_r|F$zRYW{NMA0+uL!|mKcq(wt%X8M=uSjuYN_{cX=@x%)i1>$5YRCfQ21!kpKK*bz(qORHbbte^;fsmoafwa_FZ16pYJ=T zfmxu-zp4ahSAN+$a0L4WUp2<|_E`wHo4;|4dEc0FeERMTci25{z!xsJcd5moxz+!! zROQ(*YkVoMD?F$sT!({v;s-I|WD>LF$V{oBu-=lkJ7@lcaOnJkpj&OsJbi%xBirT6 zEAGydmUshUn#P0y<>b|o;1Dv|Zy^ixwlV8d!yO+UwOY~yX_gSxNoV1?%JA<#&hHon zvv4b^hQ{+H<}pL(iW-IVlim=&>9S$k{p*JI-G7{o&OGhP@UkdsWvb-Y~uJUUrYaRjZ!(YrM~u zOF(X&V8B%|A%zU_srd1dkMXTHI`T3rFC!v585hpW#qoR|C8@twOja6SJO09v;hJkd zuhNoE%R0`8TpwAVFAi*|4xTpm*cB=p5Z+ZyPqGu5D zs37OVeT3S~-l3QG_G(|+C%1^te`Vw=a#53ytxJY$j0!X2D{cmzoHUbWrc2MlY1PID zzxMa3$qv;n4VkV`hW_C0?9))WVj+m4&v9t{RwD;A`woZJ=K|lqpG~`xKWf+Ti@pEl zEWZcxh%WH$HoKa6EA`_1P*ewxLJSUaJGb{25x;@b=xx_`hE08L#t7AM!s%6ZCO6*=xj)})eQ3hdl1hY0nSi33Eg zji_eC|I*!d9j%YlRvv@Iw*PWX$p|-m9OJ(%N(E4#wB3)0c@rNew$58rm zPM_@Xa=LL!_YDzWo05^|uEFk>BdLz6bW#*x@^H4!q1PFMi6Cj0(QjMQ5@aqa<>DK% zg5k!pB%Y2{xit;-KhM)OEWNFGnuyl=%5Vf`?~J?X!YV(K&F+8PpFMNhyMReRd~?{2 z5A>e|&?+iMIJ`5|NPa-BBdM;f;Wz+hQS=?Jpd3u)q?qXdfuFs&=fD9L#N~eaH2mRK zETa-leY8ocCeYJ-kemq5s@70Kz{wxXma4-F^XN&i37&P9Oe6K)7~C?@gZPSVsTiD5 za1erFO^S`Zp*EN2Es9AtYFQ<`nq+!%^sjDa60|k{CY-BTYIB$JFnw~UDg8?Bj95B~ zn(%4+PQN`v{L50;))#BCc(+Mz-cT;EItdC%{y|BkvVj{fNq|gTuaG~v)Vz!esC6!# zE)ah_?b=z9IGff#BkiaZe$w39`hG`jxz!+N#ULW$O!57)_3o`Hx{+U_yzUiM1>?+h zD{!U2im8DM&fnQR9bB$pmZ4TvE|iC=To_uWo?jG9>3PSwM=zN~UySqB8CnSNA=WS~!klLc%{ zo;jYK&8%<V2ZO4Uhciot5x>gqw5jKFOvP{84^tH|w4j8_aY&TS!w_ zCzCbaBk z@K1X;t|~`GPNU*&?*ID&#h` zN6bmW6rOAFy|ASYg&D5OXcnnOoO!RQ3e-|x!FY=ScZZ1giI2*O_XrmWg(@erlrdYP zOST+%mia?k=WRtRD?^J0yYXPl_AbxTjov4-Ycnh*+w8GZA1$4FziU+%5=%$CW~XE!DKm?_8TJs&QWOAT=m<=lh=fX zlLsGvKNeC@8w0b1ZK^-gCJubBFwC_v@sdw61 zG^#-gUeddLl7*5JN`P5TPP+Sc-+{-`RR=>lvzN~N!?pK2n_=@FQpG7t@T{iv`2`Xx z&ygRC_d#DTOt_fY^Kb8MU!Hz&$Q1VsRxMAkdScih#p7iEBaFX}YLjzpCj3pn+>4?g z5wqU-Guducy~!rgix&i4oT6UCvh^N8dChT;+}M+$VV$v(h3mHt)nfG|9yh1N+^TnP zuV&II|M0LPDB!B<>GG1^n_*?k<#>jJG z3NERbSPVS6K^1VGCu?*W$u>z zZYP7ZYsbqvk0L zHgp5SKK(*19(b<_`FyF($Ht0%@#}8;6p#ByzrgfIwDY^^PJE#+=$;5%}@)8T!Gee2@>1@(KR;n9;XhiQ;| zz0r+5L`~WQ5hFp#bT<8DeX8OCl~!wa=bF1Eex9s@ z8kmKYOaCoH+J(#flix`CZ{iY0-hFh>m{C1kmqNc@W`21;HBEN!c`t5Ith8!JPy-Q+ z*@->QzlncFYYe*l*g-d6vX;KV>H+^%e~u=I=BF&)&Em-Sc{d4Ttt155M8aGT;*xq# zKTx6T`G1@Iev?QWL2hL7RtHV0lubk*dmA^a=VPw#b99QfxTETHBr?jqy%;uqC83bp z`c3a6>j~>BMc{X5wYQ@KcuLr`WZ@bNs~RVq2H(akbcTy3P8PGnL9LdiKJ?6*7e%Q! z5V|QdKc`{ipZaq;85fO4cdNiKI$fP~rr%Q&ZM_Nr+BD-3}&g_jq#}- zjAW#jpV;}4&UY{zs3Pysv7)~c^Ab-oA_*kx*x_E;H;1w?-x73GxP6OU z>?<$1NjZk>QAtP9>-JXKpz+Q>VKnwr54RoSXWe;Y-17i_$@dFtzVqRrrCyuZ8`lX<^iD%riC zSML6_w_IdblTH21yqMjR6}{8N>nI%dd8qSzd&C2k*`Yme>%K?JttWn&G_%$1eUG?_ z?-edivwnL<8S*@C(VSx9NAy`kc5;mdzSg&FHj%7{zYIriE3lLI0QaSY1LDP|z_1wg zS)H}kEkE+R1Ci31qO8OHXqQk-D&xISyAlEBXyE%u+is^rmjZ3ou$O z`uo;fjox;`R-y3x`w|)*96l0o;tPHOB~_iCey>9G@YfHh`)Qr_Y&WyyhmoGgwpU8`}>QW-?1 z3&qaijr1Iz;;lN8-Z7mcK3odwRhc-ZP@$lKHyQ z&n_25UfX{ERXgTO3*4uTBxdL)k!cR3p#5^mmj&tf*zlMSouAs7jB=orOBw+K!DnF{cnO{`8ej~lFQIh-0r7^lVkyM{v=OZhn-o(5K%;ga++n;VJce``8o zUhSRte0!-B61El%ikm&@k!E^QqzpXN0kcF$=q6JxhU-L6Jl3FiIvSX%KNexAmgQ+n zU`;Kxi0>uJea~LVydi;mt0Vpq$%pqT)xvJToxGYB^_guu3pZJTE(0(NW4(_M!HKEK z=)4F6lZFP4S6?=YbEP~}h%zc2Asq)1Kv)}uXp5((Lal%8@U&Mb)P4ubdPG6J$h9hk(2Rt_F+LH81`$K4Z=brXk9lstT*V@`l38G z^RAb#sHE^B*`ml19%U8cD{=Z(-pD_c7*1$Ms6QNp|lFkp9sAvFDP-Xy*}~vXlsxtMicXZS$e}0A#R&O z_Imj})n`OHf`<;2Cl)Ll^WIaF{;C2}MYn>x7}D+`G6OU;MIMA^&{G!rz4bn#8H(zm zBz~11D)y9CX1u8uJeq7tDUeCjwQw0*EEQ~V%~{zzkE-o?4iBaXe=s7iyt&IYl4Da2{K z(K9s*@^NvDT3=y0Q7Gt0Iz_nl6c@ebuU+{lw6{^Qa zPY>K%y}mP!*NCtBnwGfnVN1sy)qmyu96{Jn)lF0C7u_+J!2?@6UJepj>r7h;%h5$+ zcdw#$2o&1s3Y$QW=MLKKMD$rvx2Xkt&BUnG$*5ix+&W2oo@*D3Ln@s={S?tbwRaVf zJELzMyv-Mm2z@0!Z`ZgMe*Wk+P3p(vJTlW$MFKDk{+tYXLn@WoZq|dpvD|h+d&~Aw z%n!<^)bVlO_b`l;5{?H@TLk{9PC5!)Z5Q?FgB%$hghlheaX74 zMWhn@x*xUWt-TUiUf$fV*VB&ypm;w>p#AF;IxqES^{RNsQdIY(~OI=NtF;P5hJQq<;QNS z_C3f`A~Y?+%vGiP$#b7Yn?p}#y8U(q^Y*r_-AaCL>Vd1Bt`FoCwj|wMX_^Hp^OXlU zm4W?IR%X0-?0okmX`903PbgTd!u#2pzfqN|IB1djYX!6&iJvy~A3A#a8&A8g6$d-Ofx`=Hi@{rI37@=s-B_b|IWf z{bAcNl%@u_QP79*A(*ciS~z^r7VdJ-)mJ{K?EImL+Z*z6I&?UAgzITCz6mJ|f(YbE z*3l3F#U2NnX34T|%YtcS1S7^L4{VZC4_k~gL8{GyvG|5t_~H9o-ekSrXTGZ1x9~&+ zistkNCxxk=aMi$r6o&0a&AOE4=jC}0o#XjJe@#O=)9(8TXe?b2q+gM9R?H)R5N2Bm4z-Qx~rJW4fQRV;vf!Sb)pv z(H0me`Y!ftL(J9MVleaV4+@{j9iI;84{utu>*(Xdt)}*Q%VpRa-zEy`E~fEt7%84w zO-@Z4j~9L7rpaTvO)N?Ae5}#gO)lz0E>X5IiO%J>p-59}wV`-TIwVo;i-yoF9YyWI zDm8sdhf>kUt@R;h4b3QeMfr|(%Hy+I|B!?nV(~UyeWPXPGVV843hD&yWxQ1GD(|w6 z$7&^?yZ(T-sPAk<^YK=HD*G&J8cCgiH=wS4Y;e4U>>cu@QznrhT;bk*N4!qF&A*4! zyrH9s`YDcdu?Sp_%)nGu>i^FjHlh6q2s6?-$i)HT2Eo=2xsPYRSYS)Y5s-{h>0C~Pg~;?zr`ohS+Z zyW|}hhTC~46*MUn=`EDhGb9p`9Tvv;=zwJZDqm6pdE#+!UPb-j&5Y0cwo4{)Un#8J z-)ZTzqo1*N!@|aEiIymOY8$_3RSVutTc%1oDyGQx5AA(%sNF1-$-N-{Sz4RKP&8ThITa~*ZwdBe-MSW@( zP13u&K*Wp7c1biosBI)-B@BhNsJm|OYK7pJc%St^a?NF3ZNBd>6b$}wc#)*D|6=dJ z_rq_IuKH6E$NS`G)uBs0?%V-$cUizJsyCJ)f-e~8J@pylV1#iGWin%fR@SMlmh?(8 z!)C;N8^#ZQ2h4&smIOae?H3Hkkl!LUH#g_H7ap=nbxW`$xfXH~vLnb$R5HA{@7Q$B;CnVe@loX{S7dSGKk@}q)Ke|!;cTYo;OF)#t2tW zy>kY$yn*!U_^K&xoxj<2>$I|i)`P_$I)Sj%!r95k-3-W5Q%zq8RT5Yw#yB*SFA@hk z*fCrK|K^zdz!ddRYtyBFf%c_nOlY~#3FPU`T-l@Vb%aD?6h1M z!Nr&QqEOhRiQ~9W=Gb9K?ER|lrT^nB_xS)7G1=eVq!)L;RC+J7wys|yeYy;$8dv?> z$5w^etpmcPaqcR47VYaGbAKfaXW)>0U4FYW>(~%19B@X}4}o}oi0r!$Jq!%bMg`o8 zNCU~Gb4z;NZz9r_b5rwF+9*v|g-3JG|vi`=DD?~yvPJ@*;^fN?f0Jm`g__ap06g4F9p4!XGhx1Nk@5p72k^r;ro_V z%kb@*8tcTMZ*FSiLK;sNKfG!U25x7ENUfk4Lia(#pW_aDhWDJu<3?9+&HEc{E(jRa zOf~1&XjGNx4ZIrN^DMU-o;hTs&>3gb^XnA-UO~@DXJon=X7}YU8>sqF`sd2m_&n{plyh0zCEKl-><54 z8ug@;m(LlzlCfT4fr14!J+%#JqiE_*^=-hgI5133e6h&wrsOE6N!!PUM*^OSxO3tU zrBB8w!_NJB*7r8f%vCjFODi9|KfEg-@!6)0CNB#bz5zd8U7a&TEI#%pKhnR`(i(1zWNR4*e?ym4N>ZeCn?@%GI=%v#wiTv|4ndzLT| zbQ~xyz^qUrUO+Mp-oM&$VPGm4U_mNdL}7mx^w!Pm=pSe0+)tJ+dkMUwQv#7B^OUTu z3a+%VA*0kBy=zG;RVe*?=72^K1GZ!M+8* z&s|e6j_ak6d9j?rMEAI#z$A$7dHlKM0HGC(?|JVhJr@hh-VJFbPCO^<8>bEOKP6Ob zmu61i`CQRHqvfP=TC8!+Z}By`qH(?Omp}P%f~&i>uN`Mm5x(isUqjSxP?}1rbD`wy z`^D8^+&*0%<>4tH&AHP=1Sl#nDd zj7|7wSsD>5DN)q)Z}Ykvx>f#eJ{ck(eBS{#VbB%zxFkKpls3lXI-wob46+)TaVmzV z4i(G7%<#+6h7Lqq3q9Sk--+?C#UKf9ja;@mXLqCCpy<(_$oH*ZZbQRD?T^1)WUfS4 z+VvJScsxRrU)GOBDY5ts5z?#_*x%pklFyV)j`ASPT9I%-EqL=x%{mB}(_~#3J&{OC zs>pQUt2^`ca5<8<|J8RTV85>C`EoE!*s*0%vQxTM_VMnfzz-rz!^JGMo?W*`l~Mgo z8@6DWp{-M6`$IQ@=ytwF!_LRUuXt+t(98C^z4bdP{DI$zY^=QQ}Rzm*n2Kk9}J|bqWZ$G;%!8sfg8=Ile_0X(2}c+E3Br zusQz)``ckgw&RV6SqTy2g@==>Hbr-@eCKn-s5CFldSOtu&rI=#Ji!8xDaP=iuBKi0 zNYV<#;beCD*bXlG_a~K>i*AFCuv2jf4$Gb&XVG%GHEIO*zJ_$0$8q;LB;x>wAmc@v0$801*_qka(b6h z@2v@!hUet8g`RrSz-wpikO?U9je7yX`LWM0Mkww!OJ%MdoS2|=#r9S_5DFufUyIh?+q3vdw2CJkuK)@@^r_Sy$=$;QiL_ab-J zRlK(@tcP2(nU}ZbM7$2x&%S?a37y`&@%mefuSAA18B`hiJ+@ug-*|C5Q8qSa>|{PH zs6^}Ah*$@qvX9H;^WE(uC#@T7<__z8saRy_E(J1kh34MhoM|@Nx~vCtJP0BhEu+ZY zLKCxyCQ0BHS<3G1Z^hf>vYa?d7rkS`eeH@vqO}4RYvNVE*8CyG0YQ}={u5is-ih^N2b2|eB-MOKg7u+P>@;!$? z7l*dwKoa*NWvU*sfbW{M7^Lf){Kz<+nRM>Z$~UyFAL|ZcML#airnj;bPUvl)pjOWy z@pW-rUYtAqQs(q6VnXdmY)iyrP}G^c)qTELM8_wc=##Hq~-Pk9|}_nG(B=dz@F zOY~3ZOIX3OuFmYqy==^x%A+nHRes%$Z`_~*-dNmxR5a=EKK3F=k}Mo?{7xm zciMdxH90@Y60rW|^{J9lwppy;)B z?MuII+QmW_; z83KmU=Ml9{{3f?j5)`&GsFE1WwZJSU%I#cFpMFXGa_+M}#lS+ul^qg%<$Kk#xt9r% zMzfI)u+qjVw-qfAGMrx+YrVCf9vY+2xN_KkmeQedQUmqXuqXsFnLZ1*Xa1)x}R(Fe}B`sC!kZ&JtHZxG%Xk=P|9T- zFb7$IgNh|G)l%RWEFG}3CAnr8I3{6Dqqt%I<6=c;J-h#B;(s^f^QOAF!G z^nCI1&ye(wKxF-w(yX46R|`aKIc1`#N9m05mIFW2C|jc}iTnHeYw-^u`@UQJ0?Re( z`~BmazA0KCRrRK^UA)aLQ=LV8oe`*bA7`4^ix)BapcF)>1nosf5PSk@0rZZ(Ppj|v zEPOcKzqtiyK?iYPNc_wI$kA&0xI9-`&+DDvL-zVNaywbdZ_Z2lGP~20})_rse>ac&BdT1>=wW_ZFNe-1|pJ8EHS7e zq!|&B6cLtO#4yYVa+VPs(wUOnlAt+TWnfkTL?bI;<(DECDp_!fNK`PHVlkH{4j7q? zm&eB=DTg5P_$iwk*Hq4maKf`1;VMSlaswtY!xUmT7&VR~DJmWAdTjByI4+l?30q1S zN?0Jkppd5!q*58Sh{?NAA_fT+Lr4sx?_v$fV~ zPWS~lS$p6dcQ%CEvTkM2)?#+FxnZ1_CMH7=M8Y6gT&FQ*PA?3Ec*Q9TBP&fwfjh7Z zFdcEkWXwx6+~O_>A9VeEoP8|uW{*M5-<2je@;Fskl#7V+gEYu_?XutB`+eNc?DwQP zhMyNzqgwnf@g!67+u5tq>l0VE=52fFRcK{BEd2o`p+mWY;Jk+h$AZ$xhepl8U%`s86+tlL(35e1sN#I(Q|EpFkG$cVPR7E zdmn>Z!TehkcaGaeoBHUEy=@v=)HQRS1D|PXz zNGwa_$Qcg5K3w!Wf&3t~;=pX>F9INy8W@G7h!ByT2$XbJqwOa;sWxR6Y=M*pun{mK zf5k&M+09#WdDOJIFq^5oYxmF2e$RoNqG5kH!Wa&R6LC9XTNzdi0hO02W8s&S!J+E! zX6!%DKb@TJ8DrFU8bsJ>ot7Qd6AuR|n8xrNx%{r84@z^zrou^Yq?CZ}5 z*y*MHE2Rm61mCgesjF^wfh6u0Sd;^3 z8}*{-(aD)->R6pZfDt?T; z%sI6s5U`EjW~ULgv*VDK-n($jknU3uWHJ~qOeSPAFa-LZ!^X1q%;6&|z-NYpRAW#z z1v;lr(2)@?!#aq%k*8~u*pl)Z7-4d(GG3Va}Xe%vOQ! z;sGW}Bov;62-H-4_U`1$$wL5pB@-PtHeEBihl=LHs#?BP;2Xh*bVwSnY3d_W)s&eJADAC08n@`L$5`@w9~OC#EKW~5VQ`QG2~6~& z>?E}TA?G=!v+6JHrG`$edMx~gY8l}# zd%1&MmxA38`@L|Qk|7!ccHJ~ZZmgD<6@Pd5cK-J2*}e|;bi>~`%V#t%_x1FSe(&AU z9b5?3BP$~*U^u4LLA)?S?ZfjSicIUbYj_sU?3Q6x^f)Pr_uq?&#pE;Wk-iXZiVGr- z8uK$Ctb7)xS{pMfilbinO?)PB>Y2f|g|5>weqzzUY_T=D3^5y6(8D2CyfR9L$8yhJ zW_U|HP~q67cII~E)@4-J2X;toG1)Lr9dOrn@@vcv8FhJqlTDfVY=-3Zxz>S?hW6o< zXv5k`ZOb29=JNDH6S^FM#ODi08KHzw-XZCeRQ0EnJZ*$$Z#n40hdF}QVk0Xpjntp9 zTClVHZlY#mrvs8~$=FCjqFiT|%)qy-wxVJ=C0)$^@9N&}pS?e$ztPTnzHrW2PcY-& zzOKK|l>mMGvZ7!bx4qT5{-B}Yprj)wsK2 z1aIbM&E3M3fxB}AvmInLCqbM*kcsS+L{Sz?>7B(;*G^M4tG)H}N{Ynlb$ZxkR@F9U z81<&+v5Q+-8ey3-g{qB_OgV*jt@p{X>x&qt68F^3y`B5EA0*uWFK#x?f*Hit?*M`! z?bHLyCGz6QSyh6ltm~JfGo5j|hfO#BaG<#(Dbx=Jl)f@F4`H;UB8CZ92!Yg zn%Uj0n8wj=;#g+NNv%7NK$A7Ki(}t@X{@c(;kO03v=mnSV7wS1KF~S48^K#bg)yt4 z-MMXMYl!f6Gq7$u+mdi5$62jrI>Fa%QPY)Zcu1^|5bbX}>`}zwx-pEV)@tVgMP_hu zxM{Z)$f3etf(U?n)FeFpz}1Cj0*%rNbfU{t?;9*H(D4F9}`_Rd#DnG4k1nqg4_Ao z0Cc!%81LWBc*G*_Zn1HfxSb+x=gO?Pe%5@G&aJTku;;;XaQ8e;hbmtMuTf69Sh^^- z{TEtnE8X$=ZPi&P_wPEbm-_KgTPlw6flpKs9Z0t!`#Xwe9v?{Rp|Rl@x`wn#)?*t) zNAlulXUMfI?*e=S%*ScHUK_#Yuw=yI#E_*9oyVm%p%L02BP;onGCHFZ1i{Q;x9Fi$ znc?%CA5sYjS1Y^@JKX0v%93PgWz6t}_tGVH==WXs(Zll@%=Pii zOr@bl+0oahno*5wS2}o?E?(Dyilw(OV#U{I+X#N!VqAS*`0W_fZvsq{87kJ&R9W>) zwaw4;W{Q+=gg40&lhI20^mIZtLt~d4vZ5q-i{0$0_%P$eVfDTJX~sM|X6Mm{x?9J< zpo@<>xF?5hXAWgO(9)pSyc0+|KeS6UlB1v2wUHv{3_?ag z-SN#}sy*37S=A+qEAaYrBbjobSrnuLdbx;ji9eW-1bX{NqZpz#Z%Q^HH&v#*VK+$@+mO$t2y?B<$eFr-=HrXUK%jF05Sot>bSwt~KCS3UjAv>%dXZpt<6nl;2*~f>+&UmL> z^nHMsDd34vrP$~>;lBdr>*^HTYjV&|Z{%>g)o~X~a=q2iKv5+I-pn>Ap|Kn8Xw-X^ zuGxFb85dc;w;raP?Vk?)0!*`}ydT>uvDCVIZ{W+>F@$mI_+zrtdMCmqZM_zmR-xk# zET3$Al+#;T9izP1eVV(T7 zdr;jo_lJ=zy*X>0`MSN+mjA%LW^n6m`6DasOULNoJJ*%iNccF~bKQdDPuVP^37OHO z*6SS`J2g42nHVJhM!M*vA~P2!K-vpk9-e?jO=uqWfZ`)7aC+$MBP-R>kQPb*dP8m2 zftn*JuQDBM$sDetl0gFC$6`6MVCY9m#0dp!`LcER2m2L&Iy@tmNtbhS7;)Lr$DsWb z-qXT>Pp@G6Baru7WrdAv)1x9Hi|)_Jq(tk_PfaPbhH?vf%{E3^()rPrYBX90L#Ge3 zYTa+)@22<0`)06sj{z;Ub*1F~#1A{%oAFKSREG$xhbRyEJD4+Bc5hBP*hQX|?WX_#Fx0 zV6plmq#O7<@RAUC!aSjEDl3W9Zkil&kRm?mh93f`1qcv_oBX(@@JCGAfni5%853{g zHSEo2-e37m_Vi6XMmO8M;7Fy>+Y>*UtWDwN5_y;AAg06kSlAOdn=s=;?1-!?bjK{F z#6YD!g&Lb$01H zE95C%waP}|AoIn~la%XP!>TYdnjVdP&U@<7$@gs^S1+6ywQ!)2XVp@ge-5r-~HUEa=0luBNi6ia#1m|^11j8t1Uh_z* zQs`v>A5*!4G|E*3oZ z;=TiTx!GaZsQcz8;Y7Mu^uUORlgj-CvD{c_m#M(0P|LxMxnU5RGZ zBkG8O#)fXLbSacWD-RRaW4(gTrqDE9bFMiDHuB?gy#>OWE6vWcvR-OMqlR1Juy5bn z5(bwtng~0tj#(7qd_&K~9rv-I-8QkCV+Et-oO+(E%uFN6XyKn^ImC|6nQt~+#bho8 ziMcTtdW5N|+4vAc2Xxcm%gf|Eh`q@E9e%{#SnNQOI}z8Nq=L7er0`~YLp=6qm83}( z=xRpDzQ*2j;+-Ctev=UC-;T8*FSm`$Q#)ak>>cK#6x@{c-18c7fz4SMQ4n|+MX6@K z>o4tt=L4=IDfZE@{|QCy_Y(^N6a#G3GS`(%;Zh_EGGjR8uVEYXJQIQ6?c;)BaWW%b zb^4+yb8OM5+ld*`JA%yyh_&ZiXmVMz?|#6W0> zj;*?2al8|rZsmy131i%j<-aJR{Ii)lUPDK|n!~N(6W#J7DI+Pu?nJDPkmT_#Etj)i zkB+Z>$5Dv!-)W4l)_SThQPQ-o~(GDO9PoBzWLdXERr(h z7R2*Cb=iZh4@IqAt!Rbf$x7v0Mn`+3E1JGctsx~58#Fcr{4k?U@ttm)J&CREw}qmi z4o()#*1t<(U|#{<&bOal)m->L8J+MH{W{T9&Lfrcs*etY&O4&n7lI>xmZ)i2O7^tE zVQjJ1IZcaGcE+u)+y+w?MP~to>J);?tJ2dmm1Cm;rg6ba&F&7zAyjRY-*ew)4}EjI zlNC`SJW8Y5usGe7(a}J$A)QeoV;8fKQr8RN_Gdm=KTMk1oNHxpsw33(GOBGGt83b) zy;KmvYouKlL7xS{$*OGqiX}W^gxO?`Bwn~HG&Q?@7iT-~2KUcbJ;PN?8`fG)?$ote zNDS_kWf^dk8pYyV?!5nGQLA%8e|5RxElb{gT)u@q$76Z=EOx4&5;G{@bQrqAwF01m zQ?*Bdoyu!_fv&N&*zg(IgGyo5Iv+j~>$8<|O}g@nh0o)kI=x&(d=a*S^63uv=4&e& zc1!$E>jA_a_|$MZJAK@6Qc@~Dq)O{`z&w&Oa67SU1#?DFs5dZK}OEluI~BgIVy zejPQpZK})LV|%TVb9A(E9AgNGA9b-GPsaGmkKps1#@>8(ldbdCBP*)cJhoU~AVK{^}ZCh`$i!iTlpC5SL)YHxJ$KCqs`M+MzG<4a> zaYVisUsZmRoX1hg)IoTizBtx9$8A!L`0p3Z#k;bveqp5cPp%+}M?TTL;ctiUI?-e& zqKQWu}J;wf}mWN|2DifBc zj|48;pG4;ldOgl~BqJ;8dD{WOvyz2%H%LQeU$P?;BP%9ry4Qx5n?Vk}*rQCqrMg(7 zQnh@D!>2u_sn{UbPJ+*QbD(9S(JV^sp!(_E4D zHQ`qRM(krLn6zZfH8>^js#Zz?NAdXN;6y@oWar}i?9Jq?k&m)XI3Owz2NWQR$O{$0 zOSU~J_+Hm@sJ0a6BMa@EgsA7Td|Bf2Dn(xg<(coR`_04OK$Wl2N(HV z8S_@uYQ0=0*<#MR!3K?76|r^Q9GYJ|jg$t~sU1?S;(WGF_}^7ibIuWX#NA}B-8n|Z z%d=7d>Ue9m>HyC?R}k$jV4%K1gx?#lVIXz8CL=4BBGQaR-X)k{**!aBlJ&pKJ#ls< z$G2y4)73Q9)mMU>*REWY^V>!>5XgDkr7;=q5N@G=S~yUb4@NlQafV6KAd_RqInTZ) zUkA+07*C|opJDU@JCobUKUD2J(W|5Ns?~e@teRg^ncGF`0Rnc~3nMPOkGNIi~#O%YTog zdCsBB9rSwXss;7M% zM)j&FXtxq$?cw@R<*mFTM^DxDbmO&qs7jN$Q`2m8=O(KhhPt?I-EG<+F|P-d9JOmp zt-ME)>AO!WSnE*ER<+To?v$UYc9dZlOtl+P0f6t+o1>6?03%7-s7+ZaMc{wav?7k0BS+d_;>C~-WMF>4aLQ5rBZ5$YMJ~iN1a5ENa zn)B2jfW35%&3YNSj8SxPmpQawcS#eai`Qo-B-)=bD&4(y4oiR%SQM;R%JkABm15r_ zfv}GNAaVn3gQ&^V2a;aI98hiU}SCtk^Ras6s4481Eol zUaFzWjK%S2?{uphbH_K0Pxy6wpt|e4(y91io*~`KY`isGyed(zB@_3+_50~Z)c|>* zhO|2`9K2VT5fmdS9?q>5bQlW=kYZQE`qkW)zPH&_T;&~W4xs9n#HzvfrK;|VGdZB$ zx%+7-9;1Vu))x0$3tK>80tRzbxYd(1-sy*PMfbVHQ1CCLY7)Fdx%WNMwJn?NK&5IJ z=`+QnfwZ(Y$`H?3Z2Wg{!Q-Bd@F(+?+17bm@d zjLMu!>6J{5(R(z~x}4Q6$L~*ZXS(M!`141upYOh6VhgyH(x2;6XMM2Ydw|C0SzVY# z1G{BJ0?UmfTGYy}@X5?~L7?a(E3?@9XKexYR)kXgQ6Bh+Xz+WJ-%>`-KeNgE2QgZn z;>xV7!Cjb$&=>F+*_67D5wFHYKTeo|a41lRsndAtaog8$;038LbyUp0(ugKUQE)mS zYHb?rhrS2gpgB88M3){n*dJO-A&4BuPb;2pFBhR2C)=M)r4e{gsLHv8Tbl=LYgzB> zji*qQSW*W!O9*w5DCnh}py=v=u4Eh4Oa&y+uT1$eUdoA;OBjmk4!m(m)$ZLRD~NS~ z0u)_xqFuDV2TDl(M{1a-11`LWeLeQnDk)>qWd#eIiR9!VgOeK>gyb+mBXI#^#`;Fn z<~JrOU5m@Ekr?iXCQi0-rx?3^C7ab`#aTzFg$|LjRGX3_@u8cMMH=I3TShOT=HGCx zRZ?pqW1QAKe`2uM>+JX~x$_$5L;GhDzAir>4~L!C57Q*< z{bZQwZ12pNQ{(cC)s1~}YBm-XnLBvA%jaq&m#Bm2tEBqRG2tJc9F$Ey#XivXQ}*<< z?S?Y96qs*H%z)TD2BnnKRm3n{Ib)H5o8vYWXmecfE^wLrke$Po?*S>2Xck?=gG=p( zZ;sy>CK$vBLQ4)0(=RXDu4_wfEx&SOA{8Fy*EMFg33(g$+=&29scSq_9TnGxbs%G) z+SzAgoONPzn>zEPi92;+z_^tL3u(aCBP(z<7aj%^_mIP~ZxR+_IDNxBdit1Y$Mr;> zGaXHpKt|7*n^^CBDebm`Wu3&dpeB6E{Ra5MBim>i6{Fq98fDzFXG>%;6jK7KQVGhc zDUHt26%ZopFnnMY1wrEkh|7+2+rTbq!O-Z~`lH;fFIj(g=%Y?V83l4wd@>&-+VFYJ5TPLimkgM??3M>R>^Jm9m;t_z&d zDMNt8nAD^iVKa(znK&CO3}r7l^M><_XDD+`zS+FgqfR>`D`ZQI$TXg7!>^2K+8c+N zJooDa!dqjWHp;~C??b_QKzZl!+hj9^b+r~EbK`9Mv)>D|Uc42dDJK{Z7c_1Qq`?GxXcCrODhuga=7yyLaoJa#~2p5e1! zcdpGF)iGsZXi>BhA=9ic3$zv|oYoFGx1&Nt!; zbwML5s=%mIV$=zewD0Gr^)AoX_SWabr-pseMnm-rqCAz|PLX6pKo=oFB1j~XMkI*{21ujgTC>hk$-Jjw28GlT z^MK`4BP+R|AcN0pcJAUa)gvi#RE;p^gdlxJ5C(v-NtvYy5>+4`q9Sbp-c+~V^z)H1 zta4hBK5!-DNBKuZFhn0mvoAzCY?P{PTu53w#5wa5ZLC2eZDLxV$Q`VbLUqC#s(^%$ zn-ALeW@_jO-vlq@PyN3p+!t$Ov~jrxU|p?JH)~I)Lun2PAh7`ImGTQ{&!c|qIxvvOj?12xlt^~sBP;HO z5OiP4qd$rK@`ay~KSEmu9qeajaoy1zCT-D9b01R|?vcAhw}Lj{!w&{v-e-A2hLH!- z4{3J2u^L8ux$lQ`z#YsEcnCL5q=s_1DGpMDvY%C>bkifLYf^#WC@i=mD<+NOXyKmU zV*K5HKd_Z^JQotJ2sLBqu{;hKa3>t4&UV4aIE4kYu0kP85Ei;H;Dks5j}n^Uw~-+X zr5+{z9$Rh$ICw{b{x(08jOn)nwunsTKck)VLsA78!iYm`UGX!Da7U_T6Z6kh13A87 zDj~mpDfmY?R87)H^nS{120%`FDFa|?^ss|abwo}$r@}708csM@z{IvuBP(Iy21yJc zuhj>RD_Qep;Ys-qnalv_NyOpQq3;-np|ofNR)Uv8Vo~K2!f2{Q`d~HZ%k(9_-8J>9 z8IYN|Ke8alM$LgNQc~gGI?3J|mAI3nU!9P|qb_|R{JO*f>E!+M(^xZ{LnA8?=wzjc z#`!Pc!xlrem)-EEfu2(%!&(RUW2KJpn+EyaZ303CR^)A*ELZ~iN>|k=KfB-a!$24L zJDKWixf=RVv+@Z>(6_JO=MdGF@XRt&0%lzE2Vs7zw4j^xi90)pO`33n0t_@dW4GS{ z8Fx(7eK}A`=08VoBPq=bC1SLROOcy&0+2vAh249QFhWA8ytO=kore0_UxoDFM7b<} z%UFGMEF&u_({bw`s&`~TC`eAud!BC?cHpkgNJx1JnEcf+G7wi*)5$rSwcm}rq;}<@ zCT-9Fc@Cc&nfT#uBPr)T{%T5_Sad|+3}EBF#C-9w9RMCuV3QdYiE$2h9g_&2U_L*w zs|m?Ovc)E{62}#=@aK2gT%aViZ6q}rtlzsM)Lbz>B7#LOHg_2)J=1un7!m?nDiSTV z(bF=b-dd+PatL`I`uSrT`r^8F#Dw9{hzLfv*o;C&p%~n+$*@3%S;hp&NVs&K2GX|3 zzV+LUc-<3Eb{-_}!qCD3-9` ztk!p*tm(okS&2*@shVl&8`HHAsO-L{f1hh)*~=PC!K9O-zLt5huw$R$9A>oLW%ukV zbhrSuq_MU()M+A>tD0mq!6H0MG*s5Sw~pX)I*^B&>#7f2LJugu7GQT{?KtytK37q# z4g!|xqs>=DJ{Sk$FCt;N=|EC?QLF;B+bSXwFXpWxEfuOPUHSW1Li^J*uUz?bqM_fv zBlu6$%4;ElU+t7eU5<=KJsq5(wF>5?yMvzSlnqVI(^lCAQrf#^rja2NnjH-NRnb9eEbvD}K7rxcU)G!;UAN4inF| z<3&pJu0Or&zdqJ|pC!L1kh()VWre`Hfk5p$BP*+;7>9-!Do9~_t$J0h&K)OR0H*6g z9)K3X&+&FDLqg&(u;Lc6W1jX7MgZPkU6VM+R5+Q7!fiBqWTJ%A-bE1mk&cd9Y)&Dz zL#05P{B}9p=3vRZI~{&ba+?BT?aUw-i_))1VCgoS>}!i~3&fBDiOm{P#5F^H?YJSP z0wXDA5mdfx*Z4#T)D92PrzWnoDz(j0!If=t>PcVqgp(sFFj=x^iHKgQwtagY&&OaR zDQ%`9Z`klhdEV^lA*AUk@PZipucQmLG#N$#27dw0gd-`UBd~`aDWD?N2>KnXG9lLB zh)TgqxS;0;mnCsYq>@RAK&2xowaWzKW}Js{3^y`4m!s7Kc1(v3HJtptdbSQ+h{3Td**}s=&{cPVKJg(0!#-D!%XUcEC?hMjwV5vQ z^5wYboNp5gu*jnZe(T+3ELH;baoE#ux^SIb2B!l&Vd!se8e#B#YbDzKCVtDod&MIw zNQqiwid%4Ac?8XsHW!#Ch24`rkdU@lI*=X@>5~jWN0dQ)N~0Cru-gH4BZ2^Pj70SS z(NH6?C=xKG*N@1=_~0pK~eUk`>q63vB;ngdj znpA;MZLPRnQOv|q7;cDA@tS&yAdKwPSro)8iGAI@yZ(=)bmY_?dFi>ap-{&Fnn0#l zH_-Lsxo&#=_vwAOSG`%WqSTTgYy>&MV0`73oZ=%KL-U1iBP(Y`Mj|g#Mtx8;hJ#)8 z6_F)9|Gb4ICC_-q4+IecE63+IjBSVOZPz4>Xu~$`)cY+hmS$KOf`Y2R{{Q#C6!-_e zw#xd#L+PM~th#msIF$XN58L$uN)kXM1Pk5K(5`te=%QMUDk1zK+&q0;Cr%S)dT|qFhhP?)$LpNi*r=V@z&RDzbL3&59vQ=?0Pnb4o}tcvFsnBJ43e| zdUC)F-gvLoh5%X-@IE?we5Y=Ii|f7Sj`-`0jVnyi6>%HW6&Zr-1pb+Z_NID^_z9-d7#z>Y2FlMJy=L{ z%};F{20BP%E%;poT!A*0vlAbq;i z3zVwEfshy~&w{O!Gz@0~%s%ES`Ah}2 zfsBkRCAtI}+Q?zJHrNbUh>$h{!dU*&8hoWUor1!hMiC+iIRNjkc_x!XP>6;_0ZDbL zT_K%{M#Z9JTSyv}%MXg@maNrD0f@E?QZxcxTNsqwP{s%uo%-PdND(K(1risJ;_Q4R zpG-f)lj^d>Jm|LWR7{F{lqi6>EyR^70|a@;0|f`gRG|B6A=Rf>OQHL_(h;WY(7$@pX9)-p8*7QXD5A#rP zg86#5W4|?>TL4grFlSgc%k=PAz82jj%cDiWG*Ic^#o! zB41XfukxOJt0_?k{TeB&j)&^gd;0qI@Zzo!);LI0!1MZPQXK0 zmLMUlDk4HCk|`Dv3`AgK2}B{Jas5rVc1t9krDUsH;Q5=F+BAT*B1oP42h2<-N#+k< zV+efNS#TGy$OZ`m6hEG~H8q7Xs>CRjC21NSp}!L^AaFIrk(BXt7#ML!!#8AvwNQCk zsBv{sXiP#sHm%|(65U_C@nM^yYZ6HiNf{BE#_}D2LL(_VnnFXS<6~Kh#S6t)ka-@y zy9;y3BZ>>2IMn*A?}l_-jV*zmOf>p9G+^ zDvp}*xdRE|Ec%5QY-B!Y922q}aIm7tU8mECWqx_&bMa!%!S^__C~wj*BhaZDAqZ;_ zxE5gV1dx2-apTLD@avx*HPRoex#eLieMQ$}mi{Af$*P;Df>IQabdZV^d_Fxd*N;sF z^E-7k1r8KyZy3S)5NZk4B6T`&2K=G6dC7ubW37gySh6gLeeoDdAVy%<&W(>8@N@T^ zhhht|l>zUMYh0W1*WrG+D`1#~XHkbWG+wz+iQ?!tTQ&2pU)5=DZ|*tw!0oqJb*~BN zN6JAV2xK?t!*zf#sbeUP+!8Q~F%*(XBP*&&0@YHbAWZqX9sq6Q&Qka5mX|%&4>zR} zbkEn#H9rGxe^!H}u_`9qBD`Xra$2j-QZR`1(Lsv{ocUpp;1P);an2GpQ{&Cm4A%m7 zfhOemP8Z9A$BFcSAJ+%O-Qh9fh*s~|Ev?PRtnFmX>)CbeZ=UgS1+KP@9 z-YY~+*A52*Tofr;62M3fvN{-idHC6Y8ci&*_dH4*%b_NR-=x+>xb9var1V(wBP(I7`=Yq?H#joDm`RQ$8)y_b7#=$I z($CTuBPm`K8Yn=32Tk@f^>Y$>Z<(KzTV8%=1Vyb|e7^E(1G>?&AtJMGUqjBr9(Lj) zsEd7axCn@O88I(}W&Uz5|eZ-($jc23KRBLjqv?7e7$E-nvg!v%=7iFtJ?>y+&T z^>}6Ix70<4bYFkz-1wwcWu}c;ZF?0)-ZkgcTU&GhomiE(pp%CqE2BwkWZOG*(SGQs znimWoqCh_#TOg^t{!qOiXTBKfDt$v$OCH`2u)L}R8Y%SHsA)wb2J%Q1Mrqm6@IvEI zU{M&9dW0o`AcJ~Rz#}VbduP5U;d;}mw+o$9)u>i9W5157J@Am-xtwX)W;V(5l_f|~ zABGImT-O4o4maZ9xN+cg%%h41ndm1|lSY;Zl>kl)X(*6N1Co5?qwlp_F)b{1l5>(z zMv$A=WX|Sc^bp1oC(P@yyy-P5T850L5`V&Re-)`t|7Lvq^=c5lwv~zTLL)01vJa>z zJ3(a}3^{}hlTvkIP4waL?ixjg9Potg5NqZ=At9HqMIyx`D;=Q3)4YgL_jx()J#Bg) zoI^n08`t6X{~kr%x;nfQ(kL8l6XVya!Uf_;^}^N@Pi}mruT<-Wtjb`SOb={BmKq?6 zA+R`#2*mX)`=59EUaRZZe~PMj=5cx8BaHyChnIoP46%w~1={6m=KvUPR~rz5m#b%d zqveA})YcZ^x@il``1lI}@p03pLQf?~?9q(QpNx`P`2o&vv?vpNID_Ih+`2p(%G0Os zL~OiQ(d<0@!z?kw7T|2UA5S6$zXLafLs#uCcys0DWW1V`+IoIBU$;EdQBAM7^WnL; ziPRR`9rZx*L3fckCj6NrEHVQHLKoh9fD&Yzroxwx@w-VhkL{sIC!h z6p0uCBE?}OL``K8Cej^+K|y3a>`i>QDpJ+!hISkirgsu2nL;d7L*B^{(85SBqHOu= zdtRt4RjPNZy1afkspYLkclP%1s#vyr2j|DB;Dm+)r3-_%g>{C1WI6CB$e1q}xr9%x z#da-3BPpid(r)73JWPO*m_8mFA&s89kSIK16GTjsjSkhY-N$3N4#Dz!IU$%*JE!+k zos({t4+P$jIg}bm8o@vb2ry2PgU?^K+&wsOzKC{-&;lTEcJ=>d{l!F3^(^oYp&bf525|xDA{OZNcUeHj*EplqE-Ice*6frnS*%(J7DSY!!G}4L_ z08r}6g5DaGL+1L=&CxCTIih}Z8+~{kWPlQXtNw6Q^2H@v-w7%zf!W^HX%Zqa{DGwy zfr@A}I1kCt$W$<3BP)9awl2|01x>Q0sv703A@&JBg-zl=@ARWSq`?= z^rH{49Q2rBL~2sQBPmZ+@A_s7s4z>UX1{O9-l_is?Mjn=^(|7GDD+2ZZ&*L4?D+ce zRWOPuZqHISxWDPxr7BbgozBxP-g{FaU8}(+dmr5toG5MitHsUJNk>Z+&qdSq{=2-G zQmVf*Xl-kvSb96@H18;V6uB)evL}AVNj}QzBAs>_G z!R3j*BW`n>xy1H=hrP}_l?9~-aX{jM7!=^CRyOfA9_`DSVU0m4YlTRY3sTXh*=bP_ zDQJrcczOASe$l7q-PQODB6p43n-&+JZ(wtBDr7{_TyI|c-S9enI%lW1$r`t~pS_8m zfXveL<^R7Ja=#t*nU^t(yZ1!nZLFPR50dLT*5*>j_=~H&Zw_n>&8rx4eo$lYPuYK| z7sB;~DLw%Cc^Ptd^?}+xyI zsq9an74~y_dkkTi@A|#NSN37#jQtO!*`4$Bl=&7{(>LtpW#k}q$huJVeZq2-Vi;TM z(c|#v$T_@2-`@L2bjtaNVdIpq?tDF;!{6AJVS+6$JX}oGB5xm^Q}+3w*U{P7J)|Qk zL^5hWf!O3d41FQh{gNE^7NDXyjb7 z+jk^2b!U`^vU&u81>&SeZy)Ukmp)frdmg@bBDyn-PsSKlpS-3ZNKh=#)BB#Ao8x0J zjd2i|_|76oDi4n}nIGcr49tkz%T#LbtnnkSi@$v3z=pLdl+#3XO5cP&vy0ebEVajG zZ|L>8W@8x>M$YlWsCnJgQ+RA6DY|$Vh>$L)e>Z(d>?J{9vpd@PMiEfuFBTw#*~}ky zg!2+T!_nv1_m7Ry>V@8rK4d_EeW(S6%kwbKdsHD?m!+iKAE^&)Dk_IGU>V98@5?~pbGQ8$t z9;^^E`HynNcD@gf8Ro$8!zH`m)EDZ1fn>7@B3(}e;^04gKj>yraT5p$=-ecw0aVEcAW&0StstJb@R)K~-MvM!DfW$(>3-1LlKcbJ$bN+I{R z>WwO_e^itF-^lm)GBFe;D5@7X*59%aV6OW<7(M1#AzO>9Q07_DSUr@OL4J9z0yCh5 zX^srQ!Dhy>F!z_y{=4TPmbiKN^=oY%Y#oF zL~9aqn3bf=q_tizXL>)YGwAkde_d_*H~$2;ryly3{Ng83!;!?&BoRK3=T4HD6jQjc z@xWNmd4J0R2u#U+D!lr`(T3`2vDRi-m9Yf{Ql+x+qBp*896CB9D{g2(zd0sVix%UQ z{a3bcg`TM`VeYY1A{%dt-_2E~%kgs(zS(q7le9+<gW zm&N)l6-;|fom%5ucDHzcZ6RwKg&H9-F5i5>X49H^B00`m;pCRSx&G~sx~Se$PXF0o zhuYIJeo3t{hG(uH(u2ds&-3nx1ZE?G`Am?K68RV9gJnszL$_yvc;2p%q0RG95l7n2 zWQWadCMu?FHy>wTx^i;-yPPf_bUxl3MQa`!`B~o4us&?18$@(_J$K$Kjm#Ir`SASk zJ78S#!5#6xWYY^wlWS;E5ve8|Ly0?!o=1Lb%Q)sv9W2~YGrVz)b&t+kuj(?VIJTlr zJSoiH@w`7hD_GkTh}4$qZ|{-zy6g63y>=!$^6?|UgF8PdskoHs+;FZJwRmR+6uadM zrZVaIiDg6P-MxB46Xji<`b|bb55c#D<#(-owhu+qWpP!&wSjSRu+mgM#eQ{J71gSH z2l7igwDxed(6Hr8@2fvg<5pN3;D z@|bj6JipqbO4y?R>3hXa-7zw#eQ_{!Hw<8!cs_B~mvQzd=AIe!&Sg5DSbC-4Z!wtv zHYe(s*J^loaSr@TpJV{-R%*m?xJnCkQgH4vd7lCqgq|=)8^WR_=>Am~F~amjcXE)? z!-ucc(l+7mmmi8Xvnqs&cbNFo&zTi(sCpz&;&;Bp`I_Sxyny*+b`~8rk7$jwf)%3M zD8@CWczsQI;wl;*ikRXrstnX$98{_4}|+*&y=Zu z6}jz_F`I=hmQlO!zGyOib^ymfIKTWEsPr=XPNroNmz84b6(S2;>Y5Sx)}h3>uA(p> zgP$@>*z{CY0@Tv$(rj{@-l@9~W^;FrNciOc6BfaPBhmv7Cx=xLs0Uec6ZG`uCQA7U{vq96l;^`y=$v!Xqiu5pV3e8~NOa3kjf2=EB0n$K4Y` zHb;!>?)rIL<1jFx+=Mymo?P30IyW>&FhF7^bM{s6y7M+ez8c~tyeiVB9(1Od2Ez4* z%4E;JixIO3u9?piP^`m(?LOamlUUP^{1G^FcYCSh;D~!BZ4^aE9A!E)5+cEGH!+`oulXmLtV;b+y(bHLNW!nfg#v`PT2J0~F zlQpBk9~K=ms^1PLWbBy3zIz!sEHo)M$dN)AIZ5svaeN*Z5+57(Cx#+V$wau>(c7v~ zAc@GEoTx!u7bB9YAREdhvSxoU6J&(Spxnwk4D*H`oq%E;Gu($yf!6wFLl|Nm*Yml7 zJ`BN!s%mK1uXa{cJ>m(;h0(UwpfNplfBM5OMhJQ{S zymTL#Qv-jwtAo`%97|2lHI81YoazqcZ)GMT2rA%c(hJ=7b;{Td?hbWyqr0&N(((&9 zRxu*vXB|&YLgC`GoO`cBWShivo?qaQqaRRK!8AdjygWkvc43mASIxL2%5if;9oDN+4vI)DSLIqQ1*diJTb0c`tnfrV zz-Wqw!w|rRkU^mgnyTm|>Oesqe^#zsBPpMxxT0DXTkss+9SIy;wffUd$Vy%>0d~1%dI96{kK@vv-XUCe)Si%t+E0 zdPI-C!@5}3ot>_IpC|J2eYC_5ZTto1QXtecgOD) zdNzDjC67TTDr*DlUZDGarD$%Py;UVu0qil8+P~wSh52m!w7BS4r%59#lOX*zb6SHTh%3`LMF~=L4*x|v z>bhzivg@7ft8WB^Kq9dMe-N{!xYL`#KpvWHyBDBgYlDZHjk{+Vx?X;k;O(PkvBg4% zAk%NBj*a~KESPn$XlbeWzET-V6CIURvIy&;omh0!D=QUoypl(kqy+%{T^R0ta-I-1H=eC=dqQ!UVT4=6`lztNFD-Ig&d*FfM@#Dsc+Y9z)_W_v$$<=A_18w6egx|Mq5O!CYb9x zl$IZLbjzdir$Gr#)q6-pvF5AQ`}R_TJ)e4v@v``m&lNodaech9nVx}w7)BgmFnu$H z0WnX(&a-?BQNs%W)-bln1-kTIl63Sv<8E;i*6r%5C+hOT#%>lLJhTsoN#3qpd{QG1 z)Zw4EqXY`oEn2~YK9{U*t({ckXC2|V%tSwU(6~735Nzi9ZIcw88L&{( zqix%iy%1@lSs_bE93w05yCfjYguPg@jUtLA0HlCZoDZ_n+=fVd z<{!FwlBmucx*X(n{O|rOjY+Sck!Hh`5!xdwf02Mlg>y82FVdS4Hvd28Z2&twc;1#( z?WGc^{Wz)zqktuO6RDJeBh{f)Z!G5;qM?ZfT3de@@Q8VhO2`b=NZw*tl7iZlOMJJu zl*pwh6bTduXJpRf>G#&;X-8k4)1;8H=26V%bEBAL4rqqg@lqH^^e$e;x1$r+*3FE!jP;mZQDl9`DL<*- zJ7x8JqLRhpii*M{5*Y%pO&U-K#6<@%Bf7z60~vNku|W`1 z9#2E<`MF>nEQNVlBP(Xm)~UO#$*80yUQwX|(rrT@oq+O}Akc^0262?{s=~<3J zeI|82rG2}!e1^kj_Po*-ubJB6WGajC*GXG`jyT_^0V&)gDH{;VF9HinZ#G`=&Kx+T zp5xjPt2t@Kxo%~c@y*A_e$I!WntAj|*QQwHk+Kkb#He*tB==$lF7%sSDq>$Ng57G8 z+6fyfNj0z67P_GZ0x+?kY-S?|+`Y|x^BL+opq6v@XjQqS!ZK(gkUyo&xD(Rh>6A94vJR z10W+QXjp;IEqFV0!riW7^mJK56IF?$d)|g6{DgLCfg$v|6JI(b$1>Lh5hB&X zr2;2GhIDGhy^U*>j6_+wk?kN(yck}U*n+5oo$!5cjnV^|1r*85=JuN7x zuLVU~pc=5}=P~e3YsLLzY~^h-L2h_Qbl{C56IfSteAM}a%-co$ae~s}b~CuCSC=T? z*Ech=<@2)+Ifcpq^g(6`w!0b9urM6E7`jX=;?Yymgn?SE&AdU6q-KIPBPm>iw7Y@E zVn8tocv}V|DO=vkxpBRy9XL%=lM`bH%6_~#oNLpiKzyI>Lt-vDM?l(-hrQOozZ=5m zVKMlWjwI+DpO1{|=2LKF-;>L%HoD6aWvf}DPj4?79ThPJ#u>0wPX+8Xin9+KJKv)cq_`!2?~X*QaOOd~4*;B%l7 z)nK^o!noQgQ`9wUVFHB+Yp0k2$(R+_(NpPZz_BE)b8Iqm3j^YyY+yvBptr|?>(7o0 z@exA;?6wypx>xyQw`|}#@kHB6;sux^EAHAl{w+5~tMYb{m3ib^_Me64Jx(Jl6)1~O z4pzKQT{{?82)6C>JK)C0yk#26-w^?#T!<*6bWhJL>Pkc-D>Tzk#YL6tO>uuE(Q2`B zG{mCGK=fQi?EMC<=Z|Z?IY~P^3#j8GDUG?oA&y*>8?L=p;)2mt4!YM#T95+2MF5Zz zAX5;n^H*r8=wX8>xwh$Bcc83QW>t#g2!Vw(LqbEl+cw2BATmPwh465oip8K$BG&|T z6%o-uc0F;il>{x6T{Iq7nLKuSCp%jP?AX#P^hb2Nr@GXo@fxV>QLntdHR5SAD0Vj zP;00)M?l^IC+_spwC;194!s+=ut&lk$@Oqulb$V}FBxAij%!RI`cE%yeLFtyu09U~ z^4;ij(t<5GUw2-EqqB@PGp$Wk|#Lj+Mi2yXywPs`mH3uKrf? zjoA@xu5j>(LZtm5o_{0g{s4OM+voj%dFwvyZBN>V`T~dTM!?u01M-Y0$58TD~i83YD7QG!b6hs0z6PGQDrU~2IwSFfd4^IWt>Kz+RFWhR(#yl zd$>!t=FY+VcyQPPuoWZ+(iQ6mo(60#SmdI)&Df_V~4sv1kN9O;t zaSNIKFQ;#;z+%pr7qaeu%MU*AH==K!kI_tgpvy0G8S$c~C5`K^#I(mQF`O{i!j=Wf zSiqx*4j^`vBP&3OfVGGmN74NZJ^o0K<@d{ez7tupBsscxxAjWt`mK*bhnDlmi=NHo zf*3{wVo4gYAtNh%LMO5$%=Vv4lY+&GhE%m4^0Z(4IP}TLe2OD0uCrm0EMfiud_u!p zLO+TetNMedm-iPFv9#y2M>tm*l&}~g>j9BP)_J5@v{g7QmPw=I6@8*HTf=Mo+FRh0Z7vVH$z&cO6iVr5r$XQ;>NO2px_o zvB$&Y0jl5(zkw%hgKq*_qkdp=JQ{~XRB9xQWP}LjFaXjr1cOTgpu*GyIVL?ri|AZO zQ;^b>U<)JSgPs9%vOa<7NKtd~aQBf-|0JlyH9|DUI`?Y)Or_F*Ht2 zNC14lPhUWBom7;r+>OU)m>yEA)o)}A!2A<2uh7Q0bMHPWoAkz0Sg`jN@4dJ-70b8b z1vpxdbZs-osda=PLggByqj%!9op3U3toSeG;$`0+5XRWZa6at^=c;Hbi5W5vj!pr@ zV+WfZBGg?aNPOwuZ1i$8n@}hWzN?i~hOqh_i9mg0!JEQS5S37%pbLOl%jqoM9!!rz zC`Lqhln&Tya!4Cn?u46#>HSuemv)3kuIk8#j?noO!=)&anbJ^U7|sT(V;Og>u5Q`6rJX`dAw*N7{(mz@LYl8ms`=KX3xFahWKVSE5%yzx}C!~-liQNLCBPpuE zlSyJY36}PBB0z)?DLCp^x%)wL5MO_`xosSCv#jv!4~8+F(2CYIjAGb?jHcxqGCpLj z?33^b8RMo&V#y#N{Qukj@A_Zf{`t@m$6fhAejYd(baSbaEHHu)gk>?>G1=qNhWu7ye$)k1+8Z)%CR@5+f@osst+|E3JCBdaHjo<2!467S|xvBa4jxUH^^3 z_sLgtN0jFBb83z)d12GXS|!?b7gFy}re4-{hiAFBh!P^7iV5+=Xia7~SxziI@{j76a_B4N z@bGRUnmmX-3GU`zHuwSrM@{~bK^O!S0!S_egQ#clBo$Rv+Eqn7*b}gW4m=Sz3C^3 zM1vDT&t+$Vrj?4RBo$pi>&@b{(weZC;3F#_Bof&NJ?j(Sh8*2TRzhSaP<_EkMH4ENJ zr&rUS29IY|B6V|fQYcFH9))P4WM5ExATC9-7|8^e1M&0dFTJI|8R!HMBPrl8uMpSW z%};|Do;3*wNN{8(&@}>A?g=Aw{w)odd2hykW0BP;rX#+gW=iR<_93um-oT zgv(HM9^0vWL8B#1&*y+(iSUT}YT0B?sG{g00xC~g^5pmYrCr~L-+8)LslWG{wUPq} zdrR(~=p-Qzb!uuoW;W_~2(~(D0BDM+UqFO92ymLpFn%a+gTK^V@=X3*7%tPSXn8Q_ z^VP5?K_E!MB7Y97fy-0K-9KCXP=s!6-S$3tdaD}=&iv}zw(A`nG=x9#G&{~+Xh-e(e!!nXbA$4(t1E6@&6*U==B ze&bqp4jcqBwD)1GdINA-2>6(k0&429&YVw1 zCe9ErU~GDql5T+{h{S^D!I|akI6$YOy#TB6@}JL-If_v~oTK8~OCvuYzP;lf`7+Vr zYm0cEZ$N!~H{Npfd+1M2v+TB0XqlLW!-GhCOq8rwy-gxFAQBn&vPmTI2I>jgIi2Dg ze?7DSS{SNk;v*?5WQrZ%h)=13CiDZQAFHg?8Y3wk2N~v1f7ri{nuN?9$-FO!?KI`Z z7ap+B6JL76e3^_fHN&qJ=}}jI%fnha3=9RzzGJ$itOEm&+GJtJH`$Q) zs0<=x8<&VIFWhqvOyFwcIE5$F*sygXXO3qdQ>XFkrd0+Ej+&VjZ!Z-B>Jny3Y7m9gv%I}C zjxMop9yrBVGJ7b{at}Am&$Gq(roDGD0mBhHL7&!o_L<-?z(eiSC`k~IuKpK@=3zq= zB@iPM6?Z{Yk;l#V}K88mg37>G=EJ2lJujiTLvK;%a6c7Jy$s@w&1JwSR>DKedDYDhK>_ zV=ZD?a}35KD^7-giQZZ>N?8wfcp;t}AJzJMBH-{MnNQmBuW`kN+N#2H$QL}E~A12v0&_Xr9R)0_P0Fb=~`!NVT0?r zV`0B_ep|kJdH$SbaUye#ENI`Etl=ik&Pn(EunztZit94XdKmp=CP%t)gh>!(pbOp; zcP71GV3x#qU9(&_@lsw+i6d1hA--58%DXGDxl}X+RALZV;enPHQ!fHxn`zlDQSWg( z9|`j- zDU)Ckrgan5q&(Y`_u2M=>|jJ3CqDRpS4FTfOhT1-WLQNagf=SEL=u$ozzZ5Dz(0ga zcI0TLWIoy^#gc-9jD+SEg2@s;kMuu}Z_ljmgyrN9E-PCjE1-Dituhkczkfb2OP2bs zuWH#48BEX;TO_1np7*zJd(PT-ZF63nTw1p%XhjgyO|({}tcfi}M4==kZ~Ubk4({K@ z-|)`;FE_*32dFn8#{iZ)vJXEWH3%Fb!nkX|GH@|R-Xu?10Jvf=k88LHXiY&5Zd2yP zP9rHU!`9!8wc6LZ_%-4+?e4^tL}JjCBPk}P4hR-(U||#dImw?v*Bz5 zvA7U}&?6}|E_DKFNNwQ*l<7LN@GE`znaX0Ae7Y1c7zVS1VrD-5Ltn#Xd=Py7C6g)u zsGHn`E%hpzKkCj+56A$zQE?1$6;x1F`FP8e{*e5=2aG~Ub^Igcw*#lmq{av65FuFS z*d6EL{g1MLS=43);rA2t6B2RJts5#<+?KVZlFy6yF){S}(9c+!#cA%hu!X|Z8Wc6a z&_d~P6)8iaNFT_1AHVBM4{H`07;(|jh-V~>%N$%sE>FM?7)U}Kh?=ya6v34UY)tSN zMdbpM)N%HBeW-pe=c#!xLQh^i&I0y)&r!G#TzPlz$sr*lK|#(E5RcnOup#>9Co;P~ zbS9FU1u4C-5ab`0zz{1fBO@tc7_nr8LMI{wNE;wYO^;tC(;a%$eO&q^_?7qle=u7B zKE+PIt7ZbR%jWp|@WKWVsSn-T->o^SI{9+32to8Dl1LJHlV^lSRgQ^(Jcv)qdPkEB zrK-v?WWvZx1Q=p|KXu!si*UxN##OIjk@`{kLMY%qL)zoE2XVX96!UUB`17}@41~zs zqe3MtMn!m(z<^;v`@!7Z!E?`0-63)AcRzlJ zieC3QSS+0G(JP+A$?)!1D9I#=*ujY#7JJ{X?Ra}+)#3DY;k(_s)LK~1_c&9BfFx=$ zN57l!-*dl{KCK^C36=-PO~TXku95Fd)Umxri@vrc9@qx{1opT{VI$@0VHl)Lp2oIgb}`b!2e zA&wS}%yY)jz9%W!yy0%XLeiZ9&T7ua;*O7xyd)LaoY(cd+!EwLv=+w9lhUe=A;t%u z(n*7rq|1bmOd9nR?>bIhuB2Yb1cGn_1|i&w@`blhzs}#!Dybxw=7$wHYhfh^5#sbc z=AW}`+nuIh>##)XCTN5oX#q5b=WE|)JvgH>`^3pHZl#q{CG<;?Tc@^nT-fimZGBHHx0|n6e7-{$ak&?BL_3RwDo)P|MP=NnQ0)L`@w?C~0d1v9zVIAjz1C*;G zr-4yW`hECZS%%^V^Eu9{!)Cun+T$2mfmZ{9KkYOKrPl0&hDQxfpUIhYvsDc;W0_w)nv17)Hc zBPj-tHKF`)7Mqde;B*++9BP)hLK`>bFBPrMxEH;KYVl z#&Gg0Ov7EVDFSRT^5!r*XE=-%DMUO*B?)}}&t1w*`Jg{sJEjx5O9}d8UHR38a1J9Y z5+JrR%2?Qq$c%{zLriV(TeQnFI~QaB!=hi?WG>a;!^ZnR}}$6j=3$Uj5$jLRw3I; zd(Z9Tw$E}qw-QOpfLKodwikjw5WDIzA1{Wgws4U{hr0O7m0PO7X>^I=oo2Jd_V92? z`DkF*zDHL-^tj=Nnua&I#kvIPopa0!;v*{)W@l_9b#71N2^fCYvX3G4-|o|#FV0{5 zJUPE2n#>iD&my6f3CZ4P`t*02VF4xpgbb6jDYx>K1Rmd386wA7O36@dBP$Ggkrc^E z{#Iya%)yi>$>-@X$i-L@h7cUfA;(ri_)v+~0J=Xn?(zdus6r8Xd-)4#Bybmm_)mr$ zcP$9Zte@$xU9DvK_W@X#WO0C42JlD(a6M;u7V-muIEDhO^JC_DN(arb|+jQ<{GIm!8`KB)p0_%x&#Az+3TRMCJVfwojzdsKR3;pQvFA%c&){BO#0ka_q;F9GY(#4K zWHSj!-l;H5GMHdsk^>-5W+3*>6jQX=Rzv%mVyqVeB2MpL)Bz9}h=HuR;SB6zP#Cuo zqRbc$8bsTZ0LBM!FF4>OhJ-W|iH5hK)b8%^2viSnO<*yMEVY z{X7(h(4524+i_4oTYyJ`8D86ftB0*Vy8ksb{rro}<{^j$12Wv`x#5X;Abzx9=RQ!t zg9TrtE&mt6fccL4mU^R8bDH0ffFDQO7*nn?En1YQ20G<9-F|LFd6)!WQ(2OJ z|Gbb&$@Uq5z<{f-CkG6I*uh4N7`C=VXXAVtP)8fivvImtnPG5X_$oy#As&%IQqYa3 z6r;E&ijTX>Q8@D3wH?)QE+{(1v}dSP{WlAQyA?iQlHwU5-o_p3j$}Z95(%^( zF+}eGSpcY=zfnG0@MH)uaYZ6E0!WiZs=`8ksZ+Pr!HYe+{)?y4@70&;z&+t=UNdz= z!m#qFU_k^iK zK%IoXM`>WB+sb;&YUQT;b{*nhRgYnf#DO4RU2!DKhKF*&G9E&*r@=%!BxTHTG$Sim!?%n&3Akb!s{;?Q z3$jmr+Brbm*J9=HklI?k<-GLYc*ahGgcxIz+diUm$p)U<{2XG^Iyv##?0TZ>RWuX+ zGm1!!*S1C`_xK&0(j*Ttl+A=}DI&JY$5d>tO&DTBg?ogDU_sFfuH5&poRM1a`K@SBPqioCt@Hp z@FOesVtY#uxzgt7KB3s7*(C=}tgy_y`XDI4aq;>+)YY}oHuHY9_&+GXF!yD1e1#kA zHVbQ3TfQqY(2s^T2TVbLwhZ?#&1ILuAxy|~lw?KXb=c;tQJ)ED!X>p<(-WjtmwPE= z@`dtnDUeZnXg6G-Ug$~I;1*vs%d^c$QhRE2^h%N#I;KGrt#FS1UJ%K3j!WK+BPm(0 zPBGGNr1aMDxFHWCDIBj%x@ots9m8Ymu=Cm#zR=+T&LMbj3?7tMO2wm9C)Yy}Gb0!( zVne|Nwla`RkwOAO{=)OJrDE8qfCScTVSS%H&K>cd^#EfxXmV_o_lw{2*r|kWC#;^R z?N73Q2k#zTRuAKqQoOTJjT^qCMHNHd?}gd7fGVyyYr;f4Ip&l1To)w0HXlt~c`!U0W0L zC|tX=E4I1n?V300&u;rx-#~ndml3eX&zA>00?>scC3Z)SO5* zL%M)MFYA>B6`GQLWH>stMPI6`OllIB5!UvbmVl$;!Xqo|+7jIRU#0F(t<6M{dQ!#= zL78pirf0R_pB8rSo1(z|y{HGSUzXVXD0W7V8~5gm{%pu}yAO(f{b4cW_YBX~*}(_v z?Bj@bju;2X=VsiD`ulXP^4m{Iv@HVu=%q;!1qOB~Yv1|xr&NExTLI8Mf5@DEaoHZ5 zFYu~AkzHVa$EMF83)*3h+KDz0#QYCdk->o+ih%~~RRBY9;NXnneQ<9nDxZ)d=-N;-%-BH?mO@igcF2kmjN@KFL6q$^pgmD4s6zFvO>;Pp1 zM+97=1rb0o2)i#em@tj#Ca7{o>Rc%kKdOeK#sUtrSR*TPiM(JB$l+5EO=e4$KD_ zS`)*Tk9=2KJU(2*_!SG5NJ2ZKW{;P&U_LZ(C`DVsupeHeX)kKj6L^znTG zLBC`LM&kGj$2*;KB7|csd~F+)C_Luyh`b+sXJg_i8EzVM& zPiDE7*D3f=TOe`|?oDKeB;&mEX6@SaQ_<{fJi}Ew?|xo)pz#B!AxE14kc1V$OpxgA zVZY9Lo&UUc1C!*cs*0?Hc}l9OP^(zo+`wl~V<#jm6bUiI)42@rz~W6MJYNsIKQGJq zK(TV+X3~%gz%MNceuqTU$&y9~%;Nkod#I9#L6uz2o*V=VZ6P*0*CQ*c@KNoMX|hV! zDU!Y;lc&Ikr5DhpjL6&*a=OnQd%694oq+Wr!H_gI6gy-CdAN#cz@`?4ks~P(;FE#0 zBP$lCbKy94BPsQf9Jo$re@km&ksJi+Zv>V(LTOJ^z})+d@+903hgRfF!^f$7`|B;* z!oW!0#^AROyJxJhX^=luJf4oX#ALn2kn8VvBPkhR7e1F#H~KkWntl%Dw+Ukrj-%n1 zIEF)*P@FoY57No)KK6j*x;&A!Q)rmw8o?wd`|Qm*F;asTK_p8=S#1ztd!b^)tZ?lG z#lfTMA@C_iERsQ3Nf;8c^(6rH`&Ch2 z>k!Pftu1REz&s(q7!dVz{b(hNm~*n?-K}Z6k#Fjt+tZu~LJ~t$PwRP{%N~uSg5#3X z)3Jh=;_BhZ(9kq2p?M+|bSmLy|w9I zB$Ai`I(d0jHRbQ%CV9yxiB>JB@(6^D@fk2J=dL-L8&o48KL2Dp@fLh|xE~|UflqR7 zAE@NKp87SnU>Ii%h5uvwzC7%Sw>J9rBMj9rSO`J%C6Ad(*fu}1yrA4ynX$RiE^e2a z$|XR}^>hz^k%O_Ll+ra)Wd*ylrxHjJlH1G>co{br6mSf9`eiL?e%gIDpOE%C$E>*= zubJv?lxwUG7dVK*g=!vBiOQ#ng!L@#GLyG1QmVvTr^3d}xtE!l)@Y7($-Caj|8((z zq9)|n(KDUQ&IZ{KoJ6_FhR>o}!ES+}9raT}5lzrYAr$bGH&F1fLolr4K{g8*5a}+j z5JBNE@^KVDT(ueXN#W(7%ZaU$FtJ9lo)qq3EM^|pQ3>C_wFKLp`T1w(?$eIkhj6X4 ztnID#VZ@N^H`R4sdf4L;NiAeyR9ngDm`Y|?Ri!jxJItqv%u{H#*{r?>@gpln-|IN( zlrt2PV8EJKDyFIK*vCh!#l~r)O&tOf7eme9CL<|mLnX5L9O0-yu?!LR|1aPDzFUwM z4xJN$wUf=ttx~9?8`bY?-b%n@1WXwx>fREQyh`kL8$2|Sm}4Cw3DrQ_2FKyh`93}+ zzG7NDbh-9_aUEiT-@E;Hv)V(svv>)hRy0w&b>{W#kM0UymTk`L9>%eAc{6B zJ{+aNjWAGVXXozsNmWu?b0D8-XRuwTPa%ad=5Mh%onC2?WZ*#2>3%UrHz_;9j8NgC zS5(vt2Q9$l%H5bX}6_s;_-Hgr0|i>_gFju>fn8Brj46g{>nj}a1ym4sl}$?n!)PqOa- zOGy$&q@o*zk7K`QTuH>t*o!m^_xSpAb#T`AO~I&VHvBbLE!vpjZc@9cFu(lhjR+RtpFyhC$-vjS@`hh?f&&vXb&V zaoy@36TLwwt_+Ac9j$;&nY=aWr2DdmH}&`ELfag_JnhK6d-|A+7=pP=w7Im%dV19% zNc*AvcdF;5w28WL#@o#5!*U$*OzQ*mh>d7#5v@clSa!urEG9@PoQ`(HXJPTpXRA@U zzkt9%an$9a4#!lWb{)Nf%u(V{;p~60;px8m28#7S)2EIlwH@4{zzOf1!~>2P!th&J@eXWu8wk?>=F&83Q&Xnwkejn-Tw( zq7e^A$m5hGgpzR}P0;o@GQb-R2Rk7!jCm%IK1slEx2(Tt-Mm$YCBr9ukvSS38qiQD}iBJnu zl5wK7oCd*%NrR2S-MS2!+mnz$iUki~^?<~Tm5hgxhkqGbWw~2BD#Y-0=%SCCre4bEp)j6uE$^ z;9llyPiWaTE$=9W?H&l+)OkB7UQ8n?^bD*($3B5*%DE(;mgNzInG!gRsz|z|MUixp z9!fn!>4P!bRZkBr0Z5{nc>^wZHr$rp0vN_=hk+G_N6z(d%pgX=MyUzvxs@(cQTKuM zM4qXhz4}H)kQ9@)^As~e?7AuMOqoCqp3R;ZP&lu9#Rgc7_2LlQ|g9YcWy z9tI;Ti{zb*_9{vXBPrh8)3PSJx!bX^V#fR4vAc~KGNnR}B|r!C?YgRo45Z!#iMARE zIVI?^P*G7K0R{-&JzSY{dwluMCtG>en2dB~VcWZzHC*N1ZdT4Zs#R4~TMQUOn9}no zh9)OxRK+M7BGQ?;l36*Ppz#tT%NLs<%nY6jJYgHOXfsg^^%#by0M*x09b3u{SlT(o z&Mlxgs`*1(8tHtaTxfJ4<{5oci8PB793unmGx}YnL0s|ksz*9=DYAvc>Str_eA&z^ zPW2yIcLz`GQp8tmK^_#(c+SKBu8;K)V?XX3I9T-oC2V#*D}ESgME7{(9E3g>26|TG zQxD+z8^oRg(8f0P%+yHv3j&sshd{BB*X4Kb?M#d>;K%4TZW>_{G8Hhk5W*0+21N9- z?e0#{L@E`p{HFmRbV{O$OH*peE)*6^1tTd0pdg-G9!)Uq<0&l9P7P}BfQ5L2H`03c*;9giaMQMStN9#?&eynoKRDlXUM1 z0FW;H5&YhS7C?>~M357ph9ZJ`b#t9?NJ1kZWP2fF>SP5fP9(yZiX9v<_b%w}hM+9Xg+^_2rc9AQQUXFhn;gkjUeJiV=!(*f66bE1M^B zhPz4yM$(BRDcVwSn2=yuE-|~bKi_PEH(gxaXAC;!Vjm2CHa{@eXn<^RH2$3DCkq5luC{L?1zA}A| zx3XkL3k5LrYzfoCk_UB~)l9uNVQDV@86ztrjaw)zDxZ9p6BV6pt}^7Y25&bG29&ZK z1^{T85I&h8PQ`|r``7$G?E2)!S!|k%HPqHBG8t|#idJJrwp+no+F19@O}UynJu7D8$P^JA;lx z2eJm4;1V!-EQo@Yj=T%7mHr$A<}Mn>qw*3S!iA!$QFAgLhGrPA#4&^pq_8?99kXtV;Xr9&Y9BfF!yi^M>7+yL;Tj6+KWzBPsm(bET7f;o+jCzk%iVXSb$x zT{PIhadRwjm4ckAhvoa=f%vEHB!^!7xIC-DM;e2nI;%Qe;c*f~kwiCv4Amb33F`(H zCP2slLL)1kK)gI4<4S;)g=ew!Yau<}p6QJk6%ZpSUXQ05Z8AoruNmC>^0RA02TNxn z#hf56y?AM@LC=?mAMW+GN|j4cr9)&1tT)GvAe9CDMd@CZzWWnei&iSpidBq?lu2tF zVY6*%1h!2zQCTY3X;`C5M8HNOq(xKUb0p_J)1|*$E3Fk!=fMZnUEs0+GAglEBm@rM zaD^h62oY``Vt#s9#wR^)Ofc>aF9QMi#?hIWOf$iOql>aWLZd8(MXr$Yfc4ll+YDG?ng+!1> z&?+cs_&sviNf#d%91Meyo!F?wk^o2o8Hzr_1E?K~?cjWH`g^||t;ok%ic&&|kHV-kC(gY1&T_i*wr;T#nWHFB zghbT<5dLxDUJ9yrJW_C@1`rA=Roj4FV_Cde-az1B+Q^&9}+e=0zA zJ5a2M0luG)-bx2<95PTnk7VLHBk>GFPEeBY3?>mgS&@6>-C!2!hOBN9#boFdj!jtb z@=l+JQ=jEWbck)prP>-pl7>kRWad1}29#^BH}cAhz_KQkFp_?bXD6ey@Zeq(m?6x+ z!Pk?t>*K5WLG^MsI7%-GY2`0Grn=TSKEH-g$SMI^rptfOxF|x1AsH5XM-?rS7O=s^ z5t~hWUM_Y_1JEE&-NP(RvO3$a%lyC}_24PDgSiqx%}%joLxG?_gm4UQ6c&OBj(d>8 zW_M~$03i}np_-Uqz}zra?CI0D!*4q1t+WpAAuT9&h*kltFvA54zvbq4?akhYv?$at zxVTQ~$0C|Mw-&hAsq-{3!=1Mg1PRr07t_{(Cj7uY!62XnB7_1cz2!9p4#%PBqv!<= zcft{_sz3o=F?1iuPhgnR@9z+^an?l55gI}-l_V*u1 zA4lPgmOh^D>Tb-MjF4*jKQH3?ilLZ}QD7)!fw#wRC*N+o`rZf6IxIr}AurKECeVZ* zm0sOtEU_YeY;0WQY|*UXWOrg8fI#MBpg%QgfKmb8FkuABDT=UDKD2OYF$~|YS3h-E zomYiWaHMv#ReHqjO-6qgRo5PvFtRV3C}QH3fvap^inXMrDwt9oFfTXQ9^Eg>p&P4} zq!Vl%yn3OIDSXJ2i{x=nV-$QRz~WC2Ubw;2%B@XrGvOOfm2B{C++z3ec|E|<(*Hp` zYRX7oqZs3qe!grEfj z>eDO5CyRM3dSggBV{ndh;(7d>N6>&r?^hI4NeHE0f79+q_&RbW)g-z1)dVMce@{R= zq!cmFr{#`76uyfX#!pe`SU5HvIXPezgf-hxk$M<}k|cJ}*GwOlwZ`}tT+>_Qrd)D2 zBPrkDBXgk4+M&cc96j1=sBS>CU!U8zry$R@4?sD5Ifn<)U?vZbx{|7js?QQ}{AX!` zvC`-qG$SdFFFnoEH1U(QzEbDva2%djOPhg40u-U?uuWfarJ2)iJry)5C;o=*P zYs|5#;<;}vZOHsfJ9>Nz?v(0yf$QK~XxfGdBN7fq{J3`s&grR(xJ4}a29&lYeW8XQ~1-8(HNv59!F9i%7 zELLl}0ff+XD%+NTkQ=9vTskRu!3O0}2?)cMf}nQ?N85i)Tzu$pczLt>dpl^mAh~vx zgwClZL+>4*YU?VyzDAtgcU^16WfCJR1!gqM25|KEeMX!lC*?OX zOtz28Cprj{h&n!jZU@gjkA^~eunu59PsAs0jr_IXs{*JNi9*0wN`XXbOCu`wZjvEFAY70E<}LnA9;5aj3`cOwvyBpQe`L;^__kq&qJq5-w? z3_=D_Dp-kPeY=_X_NOBCAzmN2+sEa>q(*?{w8%mL|rSbk5yMb2e2t#KzxVI++HPu(sOgYKAQOK zAYD4lHSC@TV06I9;x*)#j*k7C%?yhmeLg(7u}U4A%O@jvIuBC z)u3>)!dcE;oR7D{8w-$}$wOH?p5`d4NzFJX%Rt%3pILlnYs|g1q|_!^X=1&HLdv^+ z4=_^kF8~Ij=75I<>_7+*hAF01D@qa&`T;DEHpyK@H7Y5a?YQW3p95y>N2(dZigace zZtf*CFbo;VO^yZJ47neSw<9T3>o6lJfRcSPfTTwz)LU1XlruIMvfB7-lp`xpBYG&3 zAaI<&j_$kO-Cq?0?uCKv623GJI|(Ey)?T`)qNA2HpSCzAvpu`0Y(URKkA$*qU19-H zc)-54v77Tmg$EEcnhzko*hD72gU(1X`c9idK`$3JilH(GOqWatE%-Ut;WV05t^~Tt zw*I(1&&Vu1fc-WpTP>B8XQ3$jh4b-0dz^*`3>|=jc5dCzsS}t09)NAV29Y6f7qV)+ z6K2)Tx}t!BFgvn^Y6d`W&kS_KWyB+bH0*Fe5EUh@Wm3fw5<|Or`+^A|Fd?B%Aw#m2 z_hvLAP6@zThlW&Gb^-^>rDpKrUFEU(#+XQX*Ww9IW$ zB7*&9yeoyAqxq@O=~)ZQCZ)?FVW8vW_`W4EWm21BStNu3`VgmduNpER%a;WXP_f({ zHT=n4u6S;(m`ITl7YvfcA>zGd8HNOKoSil{u#Lqa(<<0+!EXrw&Lb%#WKiG`)12sb zZPU^w74DI|rl=z;3)GY0nDlo5Ix|Q>rz8H1%!x2KgUWzHy6>z#VREhO!? zgbsU>`t=JguOawlFUNh{@mOraW5bC%L#3sCzREDI+TZ z@{sjj3H-lqIrX6y7`ly~=3(}n|5=&ZhrH^~rM%4SQv=BsILpgM<<2GLs3~4Eu}>w= zP7Ix=<<~KbrRdICh2@A{V@2xQ^!e@Urg}y{8E1w2LxeYZg)2y(%X0|zZ@TRFLX;>w zm&GK;Rv*Zfwt=>o%>+RdU_pv3LPA9&B4T1?0d|2k<$b}LI|H6trC@NbqMj|tTSw@J`Xk<7RMwMLVJizdaiK2+us}yj z>$hbX&T3k^>MgSQvh;JVIZPUr!lbfB5jZgBzfaL&4u+ipZc#uu9ladr;1oUCOnUJn zD;0|aS))Ya2X+-8C`}l~LxKfDbO?2FTVTPx%QT!*Ez-?U9<3RSC<)c6MjFgiHG;^n zFi3q267q%5GTW#*$RgOCwR^^DHgRnnz!bc+MM6 zQBDRcrylW}oFR}U=eqQnsR2(B0)UAk2dq#n9DIrndC)q*-u0U6O8pGU?L;Wr`$}}LX!iJ8|1^tRfY2oC!MP$AiiQP6tN+c5Mf$|0%g^o zAbi+Uq>GS5@O(-JXonM<`U$vifzPk-e;C-zO7!- zJZ-kONh2!;z+e)RNCp6MXtLZeBPmdXe2g_+ZWyqbps|PqqZ{dm0jZKft2uy3$WTNf z5hCgkxGn}GD+z+TGM1MreaFp(g^qSf`f?c&!d zB_b%cK$!D?+IdSr z6ASo8s~;gW8>rm~xh>9Xqj@qovK7;L8Xy!86Mj^lZyASq_b;8K)vuAZNtr|>f@UDn z)P_l!NtmRzEhboG$Xifj7Mf`ZDW*sXi7PP`^E;uM%%f#9HKvrr$}&b}lK`qj(rIV8 z+9c7GvLu2@Wh7dYB+zO!G-ASRl4CJKMX5_^36@~VBPEq8GKn(=f+sV$Z2~w&9`TQDBZEDI+UW`{8OO>@wk6L=HOBO@*S*>tcxeL+F=Z zv^juvE|aoAB#_jox*AZ`!jeu&*W)BI0r2|JL}swIW{?!BOBB;dq5~nZ8VMB3H>LMQ z^=R^5E~OHN0-=+O&+un#czKxd6F%CRyP}gKF`+fWD0oCKjyPgw(nf^l9tQ^)@zrp% zFx1+mtZoE2Phy*tfv?Iuwo|`J+q6BJgzWoLo{grKbQT(?imJm@&LZ%*Y66*m*B=ZUtU+FbjK}`rwI42=p~h*hMKDtIlv{Sl^R; zN`hOjM>)PAb4cg3w&ui1Usg0`3>7j=A_U48#(AE2t5PP{gYaoSTOraP$IZAjEU zB3Rw=zFNiNLJ_K!Y_Zbyi&zdJyMyHMJ^q#|b|1PvCrg2bTc%&r>tO*yP(5cF2R0W# zKQDfERr#~qqPsP0H(i_fh1x{asSd6`X*r6wyF;K)BP;LUu5b@6Tk6NY+Y@rY531L? zO8oz6U9m@U6O23sjm~0z|BZn{=$Rgw7RU+U3t~1Uy|WtA#eKaMeF(fld1|+J@^Ww3 zFfh;0u<3MN{@3{-(`nx#XGI{W{AEOzYTpM&>+LcV;_y=&5$)kI1rHw&`VS`vVYs5|d5TWRM zTUk>mc$$cZA~Hq2BP&IEI!s8qn3JqG=gZmWS%;Rr`Q^X3%QJ3lsmczL@5IcQSxp@^ zhnrOc)M_w{Z&=1`FSf=;*b@nZVHX6vMXakR*(?>#UtM)Q6jYiQ=03+J9gWe#p++dq zS{{rh9-QhXYc-uPa8t52PnI7P>}++uCNN9^W`fytcBl9eS=N(NmGgP)v z{jNf0IBwG$>yW7#DA?h-)4E?ihr`hI@4hpxu{uUJans`J^?Ti*gZa8Uc3W&D=H@e~ z-ZOy9l)GkCxrjB<*_hCiza+gTLdRD+;=u{A#>6Wg7wm(0m}b}%5YYR(9tO}9R4vnI zvy>*^W;jL2^^;WCNsUpDzqDk_`G2@`t9`Sc`)|5}8=SnFw+{oyQzPzgJ$K(1Q593f zz6q>ed>(nzYm;ChG$wTqptLy)De9&qTSgjo9H@1U##!PnVzTK*bVg$v-&1+F1SigW zaXc2-s1*h!Aqp_sTjJ zBP(_zD-)P>Jzcg>pUap+r=lD;wiuX^9tk5W%sZ!kw|(HZl)U+OFw(i3)o!-tS_$gj zuZ0l>oU3e1Q_Q&+L?jx+k14G(K!Wj|Hlp#S>NL!8&g9k+Z21ypZadSeWK2994Dp9* zc+?Yox$|Y@HiC#FQ!^A>A#}t=T=6xrTwphDwX7tFoz_g~S6?Tsda$ zMQP3BZi!Cv?-xK)*2s)99U8ZuZv{lsY(N%HD4^5fkV-JwNj&n;%B$HM6_SGJ;~Nmh z#9RU_fG0sJs8A*^aWl)*Y*b=-5xN$2A}3|jO~c12fijU9$g!DpEpqTII^!cNNoLXs zNHU2bk{}_kF8H1?d44e`+Uj2q$D{RjogMgGw+5vt=Qk}->cZvauj6`7ZgVXV+`pdDb0(YJ{mqZJ8}8`YbQxEBO!(aY{FYtfZrda&)*narkFGF490E4U^S znAP5%aD17MBPm;Joo-y~Go0r2mub9BW37c-Eu|wXo7LSnF~&9(jLXxB6qCE5X8hm4%>xE}@`ggUJ^tn3-Ou_XwjF7o&^IU;eDBWQvx zq-cRgB5*}SZBRij7);_uWi(>=?mWa(=G^cztZw%3X5e>8S;;-ql*23eGf76530IM`t=YO)7se}(k#yPd;RLss(f6eMdB z$YYHd4C!A&S%L>Ft9ZALjH)Q(L1f=5AV5Cu;NfB&nrvgB_9dD+ChRP1l3GqW45G5% zRfl(5F=?8@}=PN zh$)qz$`FQkZBE6p3E<2Jw+FW?ef>kQoEj)ft%wCLPht-V#^GEWY0+fn1fbm!52e)N zP33Q^&d|4Vp+e5$BPmSdv+8iLhcM1(Qw;J=&fOibO_c7IOKUH4h8d}AYRHT}ZIkrk z%GP(*wAFZRaPdsdWIzxmPQx%}D5B$?c|&$|c)NQZqHoXGyS9AW8RA++0WRdMlQ>X4 z+s<>-)aBoDI5@hGqH~J^LWj#C2#k!*6kskl*me)5X>qy)f|UivD`G8(LB4PulWl^t z$XN7aV>)>xmXIR}4nfmh z;E`xKuqm)nvJ_sxTui{wD6Pqrl1Sh-(?yUB1uM+j6GAempu?TCVKp*PGlcZHV?=Wk zm~v>|>yrXIDOpLyy1WAmm>Z8CMJD0V+7GHQ^eak1EIgWUWJVHLl4ObId7VVxZ)3`k zP#q;Bvh5~?zL#-(T{9g6VKN{}Cj_}g#u-LR3o?>zFl4*7anele+8i1=N(?lK zPbSAw2C2Z{7BwR&hg9K(!?57kHA-|5GtkcI-;PpSnG7O4jt(H|+-b-%Y{QUjU~X8V zk+5*&q8h^siUN=mWZP!dUzn}cSL%Lk)qeFG8q#ErxB;X?K|o$9;FOAxP)h#~C;c4} z{oeq;jnorl^<-1jplN_IGDZ?ep#?}18xMp0*ajm2oPenEP^pv$q9}G6H7=Dum>7i+ zNHJX^N=O7F5s=32A~+yiFJ(?$YAwqnD{w>*o7dU3>Z5vSOo(?EV=Vs$T0{)3pJfKq zw9bXsHT;fAN6qvvx^axFZzU9| z0zh^{m-=F&Ci7Bhw%;6vTUFAMw%KiNW?}(l9zOV`I1qOrm{>NCTz2f7NN_y-S=W0S z$Qh8#$x%%_dDwZeQbh>mZ2C-d297C7&;Sf$> zL~$79mYn&IPLVzFImO_J_m&Z~UjixlLrxYr{CgIxT+mVYziEPrabL{nDIV{Z8$XPm zerFx(#Mqp9804dDrLSy?PJBDf<^rg}5fDX@WR;?J%rYY@p#>u=?5ChPav9iq>=KBR zP19pMr8o$P8MqM6B$gc4gG|E$$2)Wqx^t0AcAUN4nGB)ckUJU$#J~jne31J`Rw)8S zgat{QIgg+tiYHJ|m4npzQTV{qpOwEYQjDV6XW0pz;iAsrI zG9D?x*_JsX^Z{Dtr_*kI$0sDqk#K&yBP$(|J~Oy7gFhS0EJwQ~lNbP5BPpSJBP$q- zVgY&wS!~E2Z+n^q0t6&C{SNO+Ehn~QzsYNDE7d{? z$0IKCxqJebPsmLLCaMX6r|;>58Ajusazms(-?i@HtR|C{Ot3Bpu~EEWZD0=%W0dV_ z5{x`dr(jOwF>oou<->P6XNk55XyRgB7&Tz*k)$J%28#qR20?9FB9Mp!2$B>4+njD{?b60v z#M0XVfd6?B45iQSh)9BP2*BH`W7W;ou1B--*N|Xbv?|ueBP&agF|PCDURXLOjRiM5 zOz6rbjQu$&9K!&Pu&doJp3FP{T+`L|VJjtQ%^vAQz0$)OUGdG(19|cfcixqP#QH5v zsC`*I@)!N|0!XSzD+rm1mrz>9T#J07 zl2ahAY?q{ALTgMofo!7%zgAUF$A0Hv$=5Pifw0c`iQS5Fa>9cV>d(`ey<>Tquyb74 zceLzthEF^(7bYI%=2R8eH@8R3zR9&GID-%snYN9e5o9wnq>UHM%ELI(a6n4lDr6B3 zlGftQBACk;nT<6<6_bZIMPUz?FPUgKa`iZPaxfy3!1r$yYiB`83kj&VcV?F=rix59 zEo}tKxN2s#V#yWwy2q zg*!vt`e$#_X_<_Sw5WQ(WgVr=D8@rZ^7EPt2{R)ruuy3fBq-v_DTo0oE3I9mv;|3NOKcH>$(D+Uz-%2UnJwdFHFH~*-KC95LTk;| ze}lQyh&(wdW-}#IfLJV$G9+UuW|~rEHd>=usk13fbvCY>Qq3(in#|3cYZhN$>iyO4 z{QC9wCdE@W16c_KApnp9NRSB?As#FE_8M@8@N^>k<+K_sgc05mKn_H?niTKY1e%}Lum6KmFuq`$CM8E zx&Z@Njhn{J9S75A1kF7X95TYBA@s5YApmU7XZVyl{Pf!-y3PYVf%qt0DmgGR3~c<7$!()#t#KJa5E1|&!w)~VtJY+`i}z9bC{yIYtRB!xhpP=+9&BP$Swde9>)irHWWM;a(=qQJfrG6EQk zK{YhB%GSk-)U4W3OGH3-@Z=URAry=vKq9e>L_z}DO4zn(O%&2wtAVE}wR1+wNnXSB*v~5&dDXd=uRn1vo5daAR(=x1W$r-z`UgK1-7jKhhf=qxv;kVf~H6{-ico)mDMsW zj*Je`<1ohOZC!B@C*9A$yu*s&MtI%y;5-M*$~j_l?(xXAq_)t(a2t@F6cr@*Mu>_= z{)_t~DeTMa z$q73JQOZD$&>!=^Xyop#Q!RhU8(^-px?j)YVrDG09_ArlVi%MrsEBU>dv-#E{v zpFg0%!UH1?ch;XZP!AlALyHGzQ_;QC!^zs3$qC}%Z>~V-VZ6VSpfm>|1Q#PI1M%H! z4$Qm1Ub8#!XYeXN_M3~Xm+Lth(X%deS4 zx1|mt2$Ht|G&x(?=?{Q_YxV$4R3Q!rn$WhhzYqiX?@`IhY>!eLB;l0lAQmSQ`VU>M zM>5IQ%e!uJ88G_L4hXPFpE#y|QStp$8k~OV$u{stI~SYNi~_hjVX{7*v~; zgiue(Bmhtt*bu_0FQYU$IE(ZDR`CnNK_e@Y1U-QJn+XKTovWS4_@~5Ja*cC3LR4mULKZL4gUFCuW{}Uk4Q@QJG^P_k-b2 z*zx`{?sR75{rXA79D!l;Wawej-3UkctdplbiR|YtC?VrkLtc`5n52~xzqj$vI&u7| zT=8yp?YU~&kWtJW3?{H8%0grmi(s38MFuk?D|%Rb&QLH*#d(CtWvMPuO(-8Tns7qV zN0sBv^32#6Fqj+@8G-UeJMqLk?Ef$2N z5rvf;D_V6=+R>r@0X>fM6xP$C`P?pQP`TeW9Q1lMyYVjl#ScJaLL^B94#GVpeR=~U z2MHpNawC{IBP$~!kjnP}&e7t}%YEb{De2MKd-8&*e){dj?LFTUL*17ALq?f?N6^a& z149eJ`VXTPNG>{FMW07voQ#Tdp4ONe=0q3ca+yrH=JGohB1dL512YJ9N3M2l$B)-j zSn^FS``Zc#3FNh`BFT2Z%tKIaItGuR?owuc{ULn z89*Lw?e}bRW*dR$F6kwwN#u8juHsfBDTaMDx!C4(84;yqB7{UJplXn;_B1H+4m42` zbkwWePo{JR_O*q&(q9Z zDfe<-)1bViVxlUl9WiMAzBSE((pDoY^tQKvV+90=!q|Drh{R$e`|jR4ySW&|^zMgO zV{Sz*Q2|OdEV9I6WyytAlmd&HVQ^C<#ZNX+9#G<99E;`|ov;?Bpaxpy>}Z`%#Oz*0 z&EJlCu&R@WrRvgR`_vDK0X;Y)!r0S_`KoE>ca%5Ik4as7_0IbXs1cAkr9OmM8vs#Zma2qUk$4*(z2tiED2PO< zKwFL5k{U&}$~?fpDC^F&ezW9k5Dqwer=^5<0~ zovKQ?Zd>cVus&Y)KO-wtp8)Tf0}%f_4sk5W z6M9S;(p+)_+2$C=)1kot7Jd`=Gykz*YrxW&N6yhJiXITSY-Ry@tdNLg{5g7&pQ`26% zb;z(kV>%-cLm@-u+6KZ#>RBNy7NJWi+B~zdgxLMOb0aAOXXzR8xL6y9QL}LP$yE$c zO=J`M$mW3nvTTrmyX04$n`!%Uwq97YU|KW1=&}ysK}jX`qd1m?B9%Q(2%IqBcKJgH ze?Ao>D-}hiYr5+dkgS_U7LjBm8A>BcAl&gcWvl?Vc3N=ObtZnE?07BlKeF^gzG(D(?S_#`-yVpzk+LHZ2MAR8 z*uSN9IAO~`Q>1g~z&Sj4c7=c_tEQ(_Na)jNlj>*653 z-w^SCQPd^~oBWitPzR<0og@^fBDBJyl*AB7!4WDVLpP!}Ef7OlAR{9y0HHepAlc5D zesk1J%*^TjNFe;B2W*UI5*jFo_7aLyPb>1KA)&?SIMa>l_}uV$)YAPr&Dz0@Ybll@nT!pOo$RAUZpu z8N<~3RNT=F6AsGch!P?P_t;E?l9qEa5P@s7aSR9>c56M81DI{UXMlt`1ztJsmiAHY zs(F$;`AhO}o(c4!7(_YuN<~Z$C=4zkOFe@?kbdKOO+TI4V6?PKk(%G)vZ1q1umqB;G)QmTxdRbIVt-fsIVL@k5~S(G$jDTL?7;E0!?qIy z2b7ol1(2>cEaT0jIEcl)OyVjPCNgJM9XNuMm~hA(U`dRDjHwZa6A}v} zv^kW4#44vhwM_A9NC$E5%@d(s9g0*El*>tpJExZw+sdY4K~j%tVTfxxvRsSIld@|y zBE>ZGv|Z;}2+2nAyjClC(p7-6N`pR{Z!ZUn7eu7-320H&!Ix>;)i=GQ;%hSxN=#w8 zQe5vuv)B9_-8qzLWUxCVJ2}cqb8;SSa{7^&A<|7wko0dlbDX%mB3VSOxjD0@8_(K& zEYXU`y^^2{ASr@)@tONWE*{|w7)Op@~UNF)j>Ce^2ryBPqiLKc|xR-LUoh z9njyAk~;-d+|m8y_l*G#R#MkhNQ6tX#M~-dR3Cr%t^Fa zwdSfT#}aEJE5$a+wX$kUQLtNF-BwLaDSIojrKXTA6%$MXz$!#!1XvvJ#Bd9mL~@9# z(P&5ogOe?X$>iEtbO+{u5FqT9a5MNvoOwCsW-WFQ*5mOz%?aO#njWnp35fuol93x8 z$`mRv1hhi-V<6)P+_eOPAoM{C{5K>4W0+dK2 zD+?lkckXq~MLA((MOV4DyG^a;a*Z*jG^VynwFJ|9%HGA{HLqaXdZ-RilOjyVI_xRS zh~eDKpAq zBPpmYQoSs&uqa&-weNOTN7mONSisR7h-Xkckn+WY)rYcpowcJFSz-;MC9qbEy1=&v5-ldCRHl^}Qri~FX-yhhrkiG7P1cHyl4dQt zUf;8NPmiBITaq4d3n?!T#@NmLnLN150v0S79Dr!>(e!OM;PrtWoPN*xiE1OrEPMFe z2rKzxV^HyxsdFsM#Fgo{!+TgwtibF&%SkIVEW9S*dMIJSV$&;}YRe_?D9a3iCJ{?R zDT1OR$UyU#1V&Jv4)PE(V0I*c@DX0~P*W0Q42dU1`qyWu6gTy}{GbdDG7#+~BxEY4 zgb--MfXAl1viBb!(%$}KeRYKCxyj_Uh;aRsrA3gaihqyq=&1Ve)1NbE`mA{xa0gD7 zw>+-mZ1cGJi!=E4_ZciSkV*EUhl)LkZ33%*DEMJe^ok|e6pqH&A#IISDlGgFY&KT1 zj#0>v%Glg-Alb1b(J1RwA8w5QHas)6^5Qhh1;;WNX26=M%N2G#+k~qhHMH((jsM+5 z0>B^Hn?+*T+x!33l9Iz?d3HF`8_~Ta`^vqEg!fFD4qj9}!Qv|U2dy+_2O}wTX)y%L zeech{*PV^?z5g$kBGd-7Hi+0^FsUgfNGnrql}6aAGBKI2uQyndijtz1eXi=ptdiNK z7BWgp1gb{U5~*!vrnJp1NwqX&twU+8EK^#Ul{GZBteV7VYF2x%-tq{*Kaahj+pl11 zmculJOvEq&#Xg7nI7SOd9`82@xqMQ4! zOV%wxgp<|4lqI!O#t|D7<=P@U@Kdj&`yBXKslgE{3sDEgNG9_=97EnaQqSpO0uEja z^GIPsRZ@va^}r)5h=Noah<*_+L_+qZxu@ zD)vzcP6ET~Vv9bOPY9r(aqS3!9-SnCre+2QQTJhB2lK2#CJ2-P=5qR9z) zknScUB!Tygf0&&Mn<-~8LW~iCD9PtwQ~Ps$RN>u3qFU<3u6Ka`Pgf!ZBcD`ilM9bjuZ9h&5sNi^&FPF(;yBKSoyfzb;= z>Aa#vYd}R4QlcX(80du4@{j5IPTTYDdw1V^tK9Q$SEeYwdgDowYB2|rddc?YGJ;&U zzlp`1AHDGgiV-IF7VKVV8}qufJ%m0(hopT(-)VfNg^Hk zCvGJCYmWl(*}{f#!{V^eNjui0Z0nL1#04{zB}SH|ja%7KJTQ9)L!4>F9V2r+IhD(? z>x-Q7GMq*io!Gi@IfzA0#0M~f5m1QPAVPqPM?#wgkbxD5z$ij65G5xYLtw$60QUKv zx!Chi^?f2En-k@O+LFR?P;(9_e-9%iO>^*v$n|}?N|F*RhpHZ0FZt<^kw`va0|S{ z#MvJ%($Kf+6_bW;Nom>uR-sUexD(InKK_e@nJq%_38@tc0gWZwqsj)Y@ua51+zzvFAHq#%E+d)Pg9bBXac3zA z8{yuDrpq1EK-P{PS>&Z9AX#OBJ&IW%f+7KdL}6sXl9l0p0kg@_}nslQLHdH%)*W;?)*_&v@eD<@BISJqC7ueVdl)a>1RFc8Sx@A57J zpXG?8kcc6~={qUo+CYif3GL~_upw>6jfPvG5_=zNOrdo&9*{Hb%`mnm(_{2=#SY`f z)?Tz;6O&b7|0sctY$*UO5@8e&LK~J6nMAWNS#h!y1&&aKAPC7Mia?1H;Xx9iB@+oI z88H(qge(*xKv^N_vykU*VE+0;j%G#gfZ&9f5_y9!rBSt|2>~tsk^GxQ`bKduWMwMI zJj{WQ%yBr$H8D_?kr3r9Vczd!6%0R9*n@KDW@QG^6({qu}y-6Z0MA?)reuT zm=PhCd<6Hw5AtrlBPr0!iYR)9!63pMA}#t%>lyNs(Z|Kk(ya&W6G2FPRA!v}$1ETn z*%o`$G=L>Q_DxHZLXXKfk#$WnOR*aGH-HQ`)4*ZPeD<$FS~lMrwRIG1v21FRqNK^S zr8R5gM6a!Nsol3W=DBu7Zj@`5=GbbZ#2dl}y(#n_!W*Guee5)K@wHOtN2qvppdteg zf4bIc$XDH3kxuVF;lCr!kCvI|%oWEBmU?4_^yYCNtb~m9DiT6r{LRA{g{)0@;YJYX zJbEhMC0?)nsyEHygpzUHk_@xB-J~;~CG$F+Tj@FJn)d3b$c!Xb2r*(E>_gb>;$i)i z!7vGg{@+&E?jsf~L+4HYB^-3k`VPc$d8qi6s!ld2_w?t9 z0_7wvOWP%iVrS3!Pa~mTzV!pN>QGbTgIXbRttW>)gXn|H0+RrcI(MOk=o*B(C}buY z%7U`Dy7E-d)iXXUBMf*wqaClpooL%YlnKw~mlaW@<`?17k_3b7bi`n_oSy@pJ!6n1 zh?4a;{ueHD+g&|p2BD77OXa|RMXYp`Se7#HGI>)FF{?+C6_pH1xJ7)TF!^yE12^lY zdL|nY0ewB(Wkl@p5)Opz##&Mz1`Qps`2#{8LYQrqV5E|xOC5Z^p7Zogn zl%;JOpvXuFfj?wIAc4QWG?6kCMCpMu;CMRP?p*ae_rK9OCGXho{Cr3e<#8JYy}zIP zn>cYjWTJvfsa9ccoo=n}a|7>Ge%Jyp>*=>m{#iYEOIlg&=~(6;$C2k$R#jDNp{5Md z#EmKfK9lmHQ;p|6)`@|1WMV{2+3pxi+Q3es_4Vdwhd^y|R7{XB>K|_rm@}<6_@2!{ zA}KFVdCVjXje94Ak%AN;QA(YfMF?Vuyv!ytQUH?DLfo?(cI_>tN~TuIQLNHhYgT2t zwT&B@mySV2Dj5(+z>xtWsFEll;d6H$;fTLN22ZE)e+G?z7G;#0n(9<2{}tv70VB`R zV#$o1-p&FeD+hnlaQ$s!TPmF<($KX`!4&*!#2ts9`t@4TwKk51( zV+Xom2OJ)KEx9=HXvpKB<$qD+U0XYIedi=HWn_I+vq{YRP0zJ?oObvij8OybubG2@ zUBA!7EMnn+P;L($3CGrP=WlKA>Y|W!Dkmc;cAWip`kH&KKNCM6$-m|7_zV{%8#`yL z&dkMT*-zPIZGobRVGca%NJ9n_FbsaQU5O{E5lHE3#FRoqR9_Eo==?u_>R;7L$LuI3 zXd^2v?Aeg!vAO*3EMg3T9&vu&lm)6nmx`u&X;%{L^dQRwsWTOV9kWce{o|R3rG&GB z7jw_->zkbGC9UR|Vye3&=^|wutfjyZ4^cHt(eEw1w?Zk6{^mLy9Ec~0ON7unJG-d- zp=%>4r{L+yGGlH7DRGt=f}*lBqo{!U{z?B6S#2p4Zn*oQ()|Y!i;(VQC)oZOGYoX(QnPq2fJRq8ePgT4L`QSry8ACz`A|uHgDq2X{`cTTZ`M$tq zBPoew8xU}1m~&a+-Y0KhEZH&IhG#%q85${~8X!UOb3e2|i8e|`aUVxZ<-o!1xw>TC zpdWROn$1F?FujS^@{eM1C5aP{-LdV@Z(894+{lqx6TAUx5*U2W$0WLeh^QB@2Dcwt zzG_QqDjs&#b5~EAv0AScVz$(6i)$9EGTM^a7DWKGDgv@1R76b^8NnkdMp{kv@ON3; zAY7^>T>ira!7NA)vtx1u2=(fB@#OjRLxBVb1{>J>g2jg5c@_GNLAxYXNOx9zwHD+3 zCivoD6F=SS%Zw(~Ki%)ssA; z1-b`A7+L-f0csJkXSVkliNS_U&+d=Za*SiwW*j`Rr+H;nxu>BR2K(|rCu_T%b9`Ee z42Pm~FLV|oD`En67Z{%vC>fPOF5O0@AmEA!@Q1`A5NyE*5!37fSoS(O+eWf46YCYU z0?;_dtTkPvs;MY?-l$Hln_25^w(VkL3_Ya46Cr@j6crS-6Ot?My#Z*tAdVCvot6no zfRJ6xq!08L0)!DLV5~JQsWKxBIC=e3jrEe@1t=HAma#p>2|tOJl-!kX3>#MiL#8eSdY09Y*E=@IVj0WwQhDFv*H5ckjI~ zKQH7i*R&%kxTp4iZe>YqE>`A*{D$^?9hYB%{1SeLBRXYAb{WP+19F2c z1&o9b9L&1U}7MO2s+bFBPlURUULUZgCi>?7=i*= z)|T#IT$U**N{a^4DDs$w zKkdwvg7&a1kr3>Yk8QCBEr@~$BP-tsnN^rY7BXJu=EJm#9GIQ5X2Qs%)N)<6baDlg zgJT&s*_p}Pj+=WBP+*fsgPvKM*#%;z}KcI zfVT_PIpWUl@|>q=b+D!?Eowg^!j!&V-)_3A)wai_awrrnMRY>S_Ou+e=LO_>x{%0W z70aC5tCoc*@d=3z2qaOPI2RLB38sX-Jvp@W*7*m*JB#e>84vT3>1t6T~?r4 za^a?V%E8po>`9eq;3PZFtxf;;WG>>zUU}*>5lJK2LPRlU=t)m3^0^HL?DprU=<*;DI+T~ z10yIhFxWu}GZm9%iY5$+N)fWy0iz_i(QqzG zhQd3X6mIdsiyE0gdg`3nd1q*TjGBBIe!I*%KZ4d77*t1pH-nAwh8bx~P&t zGoM^aBM2!7lkFCzfU*f}qc7+8c=v0}oww%k+w-B=jH<#PIENk3N0w%uUIfUefh-xP zf!9|m;qfW#i-Mvs=7=IUL$jx1)XU3Ce5ZJ3^6R1Ghaah`(ff8IDHLrZD>s~YP2C7k z@0W>AYj*L29rMn{pJv^NY{2ZJsRc%h5zOy7;aA1x_e6O#DH3Qqx6~ZLJ94LnWdcc+ z%=FWhpi7u~Z!Y@q_Bs&|Z@I&ypP4!xbjcYG-x}03T}YDO+Hu4`;`>!lkz83&C>-{U{=Bg40LP$Upy-I z#npF_xoKU;aU}adp^s0)N+p(81fCkZp7 z&Rioax@2mj8zM(A$0RZ4i%D&GHrF=AyT?X~*PThV)ozt@h|H;Y);E_HW{s(eW)ZVZ zbA_GTY-*CTX|1`dz3Z!$sV^n5LXKoA5lBgiB3mTT#(hazZR0hcWAvu8j9hq`SxSuO?ISO9E|gpQ>xWJoeZArZ1+ z3lLH&*;0avRqUGi?%OId2+E);6pI>C&`>p_Y@)RMCtC?ctX3kEGKP&}v}J~wqiDsk zTFj`>R8dTeWT}}Xg|ix@lBTOQ6xvANDb9>gOlYKvFK`yw{vdFy>VQ*%c!*$4s^#Y7-Nj@v2Yf+YimPqf)$(R(TE^6T zZg{HS8ryG>maE3U2hKG`8uPW)Sk~G#wwqfk(QT`>rKH#)BP&uYBmPo5lWDNR#u$iu zBP%*2I%z~OKe3MR$^hOml0XoXa*)z$Ja8b|A|V4xIs`(){V37M^zqdtwrsehm8jIRvW6*p$hQM-oU(U}YrGMWWVr4yEyWQ9pCWM*Ne;Zm_l7|dJy zw`DJIozbVib(?lfvytLmTd@So#C~Rp*Pq?ro!LcM${!^D>oZY%n>8 zLz{6!&)jp0MjemGlaj2O+Ye6dt~c~=KL&PoU%u35#+lo2m7fc{(tFERDe`ABio?qT zGv}M;-Qr|1tjxXNN6K_R<%i28jE|wxbAdeR9$|jA?Xg$X(3Y(wmz)U0ysc}64$%DX zsDCdiC+S}AES5mzNg>h0Vy1c9Me15L91MAWF6PAPdq?6gl4vmy-2*7^wJliIO;*KN zEp;{YTUVh2xQlo{x_?;*2m+9XeKY`QfaO$-fT)y7jer-MYk8O9WAaB(yn$K>53= znI=L=i6UxOnQ?jPlO{WaAy`gnMJ3$C=3#Is7_EmhCp5BPi0MLEEWp5qL5X20NNhm& zj5*#66itN7Ha@r(wZK$?PDO=W%d2d#50ztQ2uOs179j(qbkM7T_F>M_Y`s}vao~DX zC)oPfJpwp#GB0{Qr`#J_(ou~3BweGd9vm~_J_iuUa*>RIx8=2jJRK0B6kbFCQS-40 zAta25H&?~fLlQ+Fw+E2uuaCItBP*fvU!oN1KE6N3a?A%QpN%;~;{Oc#8?^#|T8Md& zj;)ReVU#KHmMuhhKCCvJKP2*tFYl416FzU^cr7JU=bc8WRYvrR*VMMYP9A&h!4LAB zsZK`n`5@&UTx*`eO-9ivm6=J>XRoFoqYh4~Rn(L$AcFwLGwLb{Gw=@qvc+k3=n*d>#Gbw0&6M|ZUnMrt|Wq`&g2^~$W1R}N^Uavp_yndzv=!ymh zW}YqQHIHX0Sf1!w-j=7r)oFfWoXF^7otw?D%*zlgT1qM{Q||zyA5r{3KAOWY!Q3ni z<*FoFfP@m0m`*hU*HIgX_1xbg8RBE~ePU$r%!&H3eh^9f?W{VMOju=mwJMrAPw2y1RA@*<{8( zCApapv6UZxT?3LE#Q#q8Ed^3MZ3jaD8Q_W(-2o#h@e<;yVe%KOMGjm9dj7cSQBPsK zRV=U0kZu6`;F1VIVj;hdz4gmf*IaL21-r24HXA&zh9;O*R)O`x`w%;_=>d=i2ixbZ zKHmqBH77CD*+n&ik|_wt$s&MAMlp#KQr@D1Jn>etA}CNcqVMo7SU=Gf0x(3*d2(&C zuCG>@(^0J%m5WBTWRgKKiHQ@vPg00QF{wl%$si<9jioH0ks}faiD@DteB78x2to-6 zeMDV((^sVHie4`dkw^iddsf-!TIG8C9T1p_D;l9lPQmF^0|_uWkiDhW0w9X2tTi_Y zKm`bhvOp<97Dhf?0pN^)G6jkVjF9`RBP({`cMe(Sz&MdlV4`C`w}h@AB7h?V7DNK^ z5UF?!DiN{XeviIpc-EzO!yt8tqi?0NYhz`$m13H#rrRqcDXm60MO zkU$_1vF;-&f~fzh4p{VBneDDwqB>CVh!UKjC5Q=QL|R9L7rJ0WDl;Ag1G@V6QD3nhcY%|$tf0pY+>k>q?Y%!O2B*-K&OJaj;fzm?|>S<;SkXclzNI}BG5*UF-1whvlMJGpA69+2L`ue0M zGi}QZ>!~&==ZnQ*H5%T=-0`;IB7&2sFp@)v!#0Klx%3@jgT|y*BNA7`6?(goBCu}X zxvVJyOvyB`%+1D6J_YV(NW`r-e{nl(wd) zizFJzL9|4yVZI|c9V(k_ZAHX6it1AFvHiV)> z5>T|EVwRGLLugV78;lz*)1wQu%5u^c{QxkcpP3^Vz(a8h_9Y=u0E+=aF^RyUr?4Ox zL=(OUH2@X}e1JqLc1l)7ArJ&1+^{4;BP#%gVx7CleoSmNI-q>hNEvSt^mZ-CKm@2JJ+K7(+suYvQ<3_@ZuT-tPCcoYdbKat|gA5uECt?xEG zd}GG$r(Rkx1C%r&)PVpGa6#!iG@8$Hr8reTZUTE{ggW7-AZUOtvuUjrBPn2#A|QPb zq>7_FDQJR##wdhAkp@nI?jtKKcC44)6}kDwgHiDQ=p(KFv$PTf1C`A&uVMdtulO0^ z>>tqrLQxTfD9K!|Dl6=2zRCrM7RNZKazz7B{8d2IZT!RJ`u<(R=I}0kFy&%Cqc3l? zwgem_3?<7IYHW8UU9iMfU`t<;7fnINdf5W&$WxH&T>b2+k39F2*!KIh7Ps3k1BOGCmJhN(84 zn)3LISgAWkaK(v+X-`+<(Y4Ka2bnNQTZYJ_h6 zv2nio)H-)iVL236Zvvs|=7KNu#6iTqyJbQaMVJw6ODGwZS)eSKxO zEq0$@+s>p<#6aQ}l$Z5fXLdlEBm+hj+_D0xhz>w3PP2E9B`DudkDR|1&yl9NYI~Wn z%}qB|oRs)7)h_UdWWT)aDS;_9BPl}dfmj!iyJGTK$cMOSAUq2*wHUS>TY?9@IpS(b zou*|O=4e(IMXf6Gq%yv<7zioFwq?GhW=}|F#M+4=!2@jZAEga zK!M#FP-o`t%7}I>1EL1;^6F>3kFpX;gCXK`#6u7)69fdyTlbRtNvM0%Q_QOrLr*Nh z=HF&Sgpx}~@mOSUt1yq39j#sn)MmFWk-W&<05bdeHp|4?uSX{@8nh&QZYFLNs;oy;!rF7r_sleU18UWz-tr)*_rP+ ztbva%r;C*O41(JW^9M3)=?o$xzQWn{>TxWK034jDyDk`!a6VqvPMEXxJqR*vrb0ux zG`)aG6O@1l8xE*QhB^N=dilbk+m9n2?a#g_0pQ_B$77nJbZGnRyL~kEj>+O9DcRut zp99r+9qse_*^c0DQ1S*M(+l3pAdS71S#Lz!6ap#-25f-pIh>$^{~`1@ku3dlBefk zRIvvGi9K36!vsM}6{;jxQw37UnWqRlCCf5=sc<WV zrSYF=C@N-twFJ)c*@0@$g7#=avPHAEyF<768SKL$_~D%;jFz;4=pi?{XF%3qFJS0} znE)QJ7~an0WnuZxo=A%PEW7>A)>7^ZC^c}N{ygZ;8!CwK0=uxz=rp3xyuS0U$ zTDV+rT0pf+Y~&*={*Qiju_Gyih#yvpZy#0;k2v&rQTAx*!vfS)jQQ&&vly-Yw%}h7 zA>S-N4rew8%Q){Y{}<4Ah8Q@qr4bA5+pYjxBcgAX)bB6feBhJW$wV`-^$(XbudokN zg;D;cbHR|^vLA`vsHq>!ccjEYHK3v+D+w408`enf!_U@Wm>{Vj2^?qwx$R&HXbGK; zdk7bS?zpRLDI^3mTCj&zg2}BenmxU>^!`t0ww{|psx%`hieHCitjbGFqSltuno?$_ zvjif8BxF^KJMr4cae2}O_@_*l9_;;nr9|d{Ks~fbBPm<1dp)|`vLyblqJq*!M2jRd zQ5Hs&m=vgGq}CB;W(zWmDP}|>ODvl*1_-|9tPTTGh;Ergks3T?Bw#)<*{gMTc=%hB zj|<$nsMcx3%*z}#v4I$5QIVRcdtflKC@bTWITo&=;trspL`yv)Rtrfh7UbqBtO7iZ z*;zYhg#U^-jyQr6pM&WA-ctt@katEQh-(=DMF5c78y-Wu%;o9#q})+KO;p%vXR4Mi zwReg2>k%Oc9k)ty$|j}cnwQp!%kD@oT(FzE-ci)(aL*bC8TMxE{H1$URA`OwP><5@ zEB7j=rAo+anP>zb!QF+G{({DlTWv-qlWUobgbY837-CtbVVRg1)lOrZM>Wo_RLZ>? z@YjUYfkDX#*U zoJ1L^W{{GgEG96A>e7+}rR$=TG%wWLu%4!2kz_cT`>vn@tb`PU5(5}x0tjJ4DI&SgF$8K4>DFJ2(~}Kdd3D|bz&Ks6BrUuJ7L{8jHQe6vjj}TBP(YvA($b4 zgD7GiTxWAbtB}E%Y2ZB(^JLBH&or-VIKk*J%~r-NWhcMNbAdO7fKPio8c@Bj1SLRR zWFskzfH!s5iY}5xCwH4qHe}97i`iYk`*vP zr3r>yWpZOyOc zZP3Y*+55oAy7$1yRNTV@s%ac2d6kSnpGjw3UrtJ8t+vzDC(+>X%iL!ronkqh7YI8J zPne4q1qFz|4%~|e0V64OY#>-yLLpG%P;_vGggGZ8DMg|f0kU;sB#@>DB*2iMflD;a zEm8%Cf+V6FjK=AN20>{P1g4E4^NT?D?oN3ievChPB^RphVIpFgTrVAK@5HLsa;h5~6sPpLe3--K5T0sP6BZOvBdV(AI- z{#)O|$N=!AMdg_g_p&!VFaYX)|L@Nm-t^Q|^TLF~M}>;h?vk>0V2;4+iZFsKib5kR z#v@6nAZ|oxC)R>Q;Zl;InH?3_5pf-a%O6#ZSERWFus*X`mKPJ!9_XrA8$B$C86?Bz zVVIW6Vg6MnI=h6ygi%&Q0)-F>!mWrh+Zm9u0G|M~#QLKtp<&FNv&^JRl8r^TyI$$d z&&cy@wh!Yg>VS0VNZB}ORjGjp*2%L~DO@AO71@6OlTbucW#yr&rP}7hiDuvCszshoyjd2hW{%)7-`?DkV6;lHW;k!D%3kCmXBhx+dWiBu>1fgXeHt{TsQ@*zFy7z; zoCs!c6jNcfQE$0VgBoUmKPR+qu3CA1(SCE64sl1Yabk(I<-$#dTfms5UOxH0hme6q z^D9eRHH4~h3;+{hFphH~gV(ebj0iz#G+Qra0Uc#vvyEXfkk$dH0>~Q_LtRC#YhE?ETe8LCxwnmNBy`&j?OiI0xwkgOqP5cG znQ06!`9=Xuq!Eg+BP-6Ba@njSD}qxJ@g*48G>tGTii2UY1K$Kafpv1)cRmMXA%fc* zp<@~^2!vAbMIMp@5CtuI6T|tj#e@RuKtd+IZCuq`e-=TUcq1vAYRW$d2Gl|b`Uqw9 z0{#S4!O*^`_)<$A#C3pRn&TKGfH9DrkA1$P-v6U^*EX4^%bGThYGN`<0)v}<2=67- zfClsn35lULi`H9PM%5avQLA08q975CB#?^~Hd4|hn3`@bhs8uTUa>oLA^l$*7!%_J$pZ9K1K(d59$dgX#FV`S6b!-i$(Z{A zU*ZuIH}jg7u;xPr_#3g~_|oxERN_1}IXx7D7(=KQBP;$15(^msfg+S!C6vTs%uPg- zLlmacYEqI(m5S0cR>f8=R%&XEr5dut0HG8Jlj#q;e;2U~rUN$U;n*N+xDuD9vj&)h*g&E*3?In4@8i;8ZpwSs0oQ z2pmpCIUz|{2~kGX&1!1bHLYaTw6?c42tc`fR8*)GBm#UtE>^gx;n6}_K`|my6@nI^ zs!|K|(5BF_gHQydNZiE>R`dg%!BW$V2|}kvBe9;N6E0~Ya@6>7w)u0I8|%8u&5R_4 zGNhAg`2w+Ei`E(G>(4f44!VYrvns`i=S1AnJSW_08RrYrAr?S{O1h^j*%6U|An%=( zaq&*kA@ndfJa*q)E|3RUb#%!N?f^cnIywJ~w%En(FgQn=oZP zA7OdxR^?H(V_3Gesv|4W0B%~y)C?Bw$cGXG}ou zwUZmBbfwNjkmNGJ>^UiJ z(}wanNw`N0gY89b=Vj5k5K0E<44SxbYc|cIIfveRC|h}Wylrs<+_BjdyDk${VmCz~ z9TjmSE4lp_#k34;VQGFTIlcxt}ih^IUi%!T^*2 z`@FvzD_*!gCHU!99esWBtgfLGuJxPkBP$O*=p-x=K`rsMf}k$YQPwP%-jq4P3pznn zb!+-{xdXMR$egkE@^%YS9&i_3{qgTu4JGaQi|r{;%U-QTmq z@Ryy}C3fs(dFHy#HeDpn7l4WQcjSq^^&Iu$_+-$I)a^S7Y)pXyx13!uqE6AZoHt!| zy@ue^3F~?BT`Oqf?cudtZ2vn(bu=@um_sp`K78$6Unqf$8^2G7hfv234lZAf<;Wd4 zkdq^bPIGlSIjO?IzlPGHLtM8VnUkn?enk+>Q#(_2RR(BODe|bvSaQUUkB##2CBpeb>FD^P*V@hw21S#m;LE zCW5IWSZ2c3Tf{=SoEFbhR!X>{7Vm*?Cx@(i077J{wcCi4an<8a+=qRF=Qw`tjo^xB zz9tu@c~PicW)6t$86I|?w5*!rblkl=W1-hICfad%c*9)h!~4t|BSsuDhIP(ei0>bZ zkaw=;s5K?9{&ig|)aJbNxredyp7c^7`7H68ICCRhlD9F!)U<1s(W)X|P1RM4td+3b zFVb}`&fZE_0uD)i#e;FfazW=T^lnFXs$*0{FhgLqj z>^Yl<8zJ=CsQi8z(Xz3N4+39$Umh?~O*Ae-x02?XR~k+o!G;2EUsB7~ie)W}CZlvM z(=yjVz#OHLG@(&EOx17&z;p%!O#ndGLOXD*E2Yuy&bht3H6`5j;j$dl=B{u=Fa}w_HD^WfJ`V?Ak#Q2LYO6=N>%W&rWcg^t*VCmX-=?}&? zw;LlV>8ql=dTkhO4t7m@WxHj=g*)q7mCrEQyPsKDA|omPU7EXFcjJle%bnfM{c#K) zDf{%iQp`a;9p+R@=yRU%C-GIqI(|L|y4_prPJ1w>SH(^Xif>uj3k`8$-%qW zIzHo@vTPyL4sCXXh--WojUL~Tef8<3w7%T+phTz#4zWJ|`0*B#*VqVe0xL5Qosmn5 zc$FU*JTph}W;%QJOnaTTO@NOhDSo0UOUTZu|3ih|{E3~>o8oXSn=QNx75DbC*uKB6 zC!%@(b~NoZF#_=81E;}djsP${0>dLKF~_~y8SYKsose`qW})Kcmv#Agz|IT^G67Pe zz6=AwEDVNWyPV)*qoXn>1s9fZWN=)EByd{AZIy+jX-Q3?kvAD5DM%D%wZ;gng2>wl zYm|;E7!bTrWEl`T;?zNmQA@$7jENKo6rtYANyIvaBtFnAGGrqw1ve7IWU(VFEVQ6_ zSHw8wPMPD>v9 z7`Bvh!}K`q@B8;fI-D(;dyXHT@R%M<%m!Rb30Zv$K^QZ%kGnC>hEpbIe{9EZ0_ByZ zvkPNoOlg+HvV~+j_n~=9&c;0z1C*ic;tuSC&7E!o%W=9eO2ASW$!_K#uwe3>*%IrJ z!q=H8;%_%Y8QnPa>(^GX*2<{8j(EPErwiuy?P7}#=qw_`B zPIA$jf>lASXl&7=J#uPyHW(wuEsWa_D< zTzO}G(Zwm@;;O0Iz@x@;C-&|cusUVWM(1i|jy#N}FfCzTt(^7DnAPJiAfCRqaAexf zc)6O~!?5cl{Y~diFnhD7os*aq4>^yww?!Cfy#v=NGkIn#Ov2fjg>p2o$HGaASXiSY zDLbO9TnsAeWe!56q}Ii?fU*P<5GLND3{Maap%bcgwEbd=>HECHj1M>whSJdj#3LzRlk`M_4Fvstyat zBrt%L6x&(0Z7FJ^OU9~;#amd5BO(d)OuWCgVEHKbGob!QPcM9ZX{4xWsZx=qpwmN8Y9%R> znqx}Aqh*$nEd@y_h+(8iqX`&7NI^l6kwATm{H2u>%=^vG`wkTQ;2m$hgX_|HGp8f? zP0`eNw=@%w1N{%6XltPH@R6IBY37%N6diOmfkdkfn$FGr^O;^ z)s}hEDF$(!1brNu0^`4;LScpkgfPDn17dhQCij8fDy9no@8TPlAq)YzxEo&n-+#l` zK@|J;?rxqVDPiPBV5X#NjFfXDIdo_;ErtbrCS~t>D?Alv(bgj?oMc2KRE=V^R+5jL z+P5vTHH<+;w6D6mZq~}At5fCIYU^Z{^GpQNX*c5#A(91pu}VqPgnM3X<~ZW@F~*|CEX^MDpti5*na=5lW1bTJ*jUG(yM& z?${Z}iO)+%D#9$pC5%NFFkx5~ir^=v0m-K0{*^n;u{wDtZT5S*tU6cK!zpJzbnZ<6 zJBn!+8i?j{iWOf>t;oAD1{#t+XpPVSyP&S&gHzQ<%L2Q*0x zIq<)ed>9Z!w0>UkbeKDNeVBRhxE5sEtqhBWcr=@KCXaEy|Ltj_%w}EQpWOEMvGJJQ;_uK`$Z9g%$bz8>VwG*HsT@bYgky_yJ_?h=YVq ze}Tk${EkToz!YGzMNk+nb^5{g%<=X2rW%r-A6;=03?mWEhISf&^3|i~MK<@_J6!j~ zNW{8fzDzTpjx4`qQ)41vxtDU0BPjq{_J+lH4ybCC-?tVHC1}&;Yfb(|c5f}tD2L(m zYWV_pcKea>KO-v$d_-0AcjkL!dO73EP}`b>9E!? z*hy%2%;}f;jK~v%BPpNcu#*g&LKnz7CuFB@2Z+(@&h^3SbqUeUlR+aQ5dcqD)I~8? zE3z5XO`` z^5kOgJ>f=s>R8vL>zgN!b>ZyDeRMB>BPozEQA4^|Fr__@&VMf^f+H&i$R$8yIcSIz z&9lE8!l!+fT-hLEfjY`eYcA4K3=236VZO6At@SL4*<{T)n(^Ii~f@4Bvi3 zGMo}aGW3*TEL%-UP?;thXoA^>4z5|0Yg3B;Z!Z_|+nv^fTlJ0CJcKGbR6CNkPOTl~ z(J|ig=LP+P~p#7%PU5o^3dayC!g(EA1!3?tOIgvs}CrpO2bDi?$ zLz!;);Z^Ey&rR)nTy6Q~+H#zmFMQ4I*8`kftyD)ZjO?A619r~5FexJ`%Z?;7uv%*u zt`j3GIyu3y2sZSE`DkdtjyF`s(n2o=A%{~C>r&!jk_^Lzqr<_F4jjxUR$C!Ji}6GUL!`xzl^wHU&& zIcp-6ZM%gax^RUO?lLHC$IB+^!2F=jt;nQoW_3*{HWmprAnPM5X)AbHXOune?DadT zwbO?wwQvbQoN>|}7})D0DM+YyhJU+hvPw`xZbU5g)NHZCnxyg|bZ4T+DX7B_zm?jf zt;<@L=6Y|j%duZehpo%ZG)^FkEA^S%&n0eG#iDhXa`|Fjnw!B#F2=Z*fneeYf!cR- z!ZQ@B0N_^6N}WB#;JN4}TQzcL`o$Pf4ca`6kil ztMyG5a3(k8u8}A~N!DLX5Zd72Cy>5d8~c*&YaB~DEKoAxm0rx;iJ-XyHrCb&hdCt*Ek~ol&Gb2nEM41(O z$_02w0wxuZLa8GuF4Du^I)Ye%eDW_1_HDisMG!WJVV-qVeamJYH zM-oGLA8&8Hakew4A@^XATlB62qA7M0I2b5~W=#Q_rmE`%5oEnKiXhy$Vi43!!)SC2 zz_%+s4xniei*L&RZ`jgBwsM)WC~|}F!#iSWzaO_KmMr_QyzYPJ$B_cTb@C z`y9d9+cJFFu-@63O9m!=x4LQ%XmryV**hVdlE@vj>G19kNsc(fAF5KlnzD9$w>y1Q zI-CwBG3ARo~f5fFsSN(^DyusyTyc|*wf2_~A)o|>l&gE~XTEjt2CvPkZ}c$g5? zZa~7ISTM%O;d>^>DEo3vn9g#|84;K47ipP7r%Y5^ZQ)ZRhgi&BRK8XM9{iiAZ!E)k z@Zr?x=-jYm88AXoq73LlV@P5X4u?QwsJnUzG!jqMPPL0@3>4xqM13Ab4ATzA&iP?w z5Ju7R6C z$YN~LIvzy;T!fPh5Wv9IA;+6gscl5I&k)HDgbs=63kDEKc>#<(o({lz%36g$?FKOD z@=}^cQ&y4GvQq;>?F(hNQO3bzBZkD69SCqWDb5I06t5FtLY^a38KngZ;a5)}1^7tEy4ug?7r57(|sN6v9XmhelHFjUqZ!*Wb%0km?Mu`*n&T4n2cm0fY!h zDZl_qii5f<^I`pd8m)qeb{wZ1y>?Y?4p>{7Ws8B8!=6MlVZP`xvgmh-nGnBuK=^E@ zF>Mtw=*}IX|B*W}Z^}rF>_dI4hU7ru$4x=4neQCCp^dn>x0uAz~0o4szN zai*d4NJxKnGI)XG(1?LyMq$Ex4``dXCK}`kw{DFw=0naPg_q~0DRr0zfXOR#B;)F@|Pj9~M1Y(Xw41 zLYK+0FI-Eai4vd$Wk^!n5 z&Rhuv*@2jFGL?DB^MsznWF*vcUy;~CGb1aIB&8>}b|Kzhy)g^)aTU&FHh!(g-1@jq zL9XkAjj@K|N zJ?n_*NfM<1FPBtw9Zl$d*TR1P%CKC^j%6j}G`)~48TMINRceZiVfG!Sbq?GP-Oj1Q zonJ|-;9okv*K)r3Rl2H`Yf4c{ZDg;On@OsYsXbdZnsY9BK6C!`u#6f<-pmEssu3rAyn@<-z z!m3lRH;e{AV8Re2BqSC3eG8-Rubq#`s`KxGEU2MiFa(tFKSXV>4RUVyq-&3lgkQn3=RJ zl2n>GkYiSgOu30AhA^U8Pz56^WReLe$P7#v79gul!3zLMVO|QQ}aMiua8IR&F=Sdsvt&XJK&x_arL6BFvx~(9JX2`D}W>`#9E_l z?6H=+Oq1EO0bwoA`(BhxWyX=e6Sl3=WO#v_YMURKPsnNpE)5TwZ}D) zBY~17F-4hDR2Gskm3maM9BWOZmO*{7Tj?xOz)bDJIyOT)08ut8qylke&N70Dh?9LTdp^2{KtkCANpd z9dLxtSubO}h1q?L9_+no@jF#RnSFZ#BnP+zOhcl{ibRN{7_fm6jKKwvO;u)^k((na z8d{WB+-TaeSv9M(rsx$Aq#!$n-l5Oy(9k0(eKiM?B5r$j_2tLfwsFmzB>uVFQ#BKqOJkpOG5|UQs=JdIy%lJooB=96~)Jc?YWCg7K>f85O+R z>*>}>A;x+9dF}MpzE}yrm)AH=EH)G(n09hld9FUWe@s|SVEG~S55%!pNWw=pgcQS)9?{9ZXH&R?bSxkY!(dDo( zH*xMll7&t)jkhvN+5}K2P_9pEs9g{f{D_GM=hA|cuD!ecr(6BxeY|k!nd>7d4>^n; zK?5|*%8fc~mGtP-G0j8s>rWkKhzof`D}N z_iC&TY#LypMFd6s{(*>Iv9FORBP*|6f6PUR=O-Tgb)#}3RaIb>)m5M)E9L_Pq$Eh+ z!ixq}-Upfem?J3~oPg{4326Ml-jOts5IM(0Q798)C(g{75c)mc;6gCZD+3y<5m8`; zV`&Kx7>m1@t~Y4(K+Leu*j#CB-OPeOt0N;KpkA8o*h5b(%^J{_Hj>PQA|XKtKaFTg zXpnhOe&B*?2%wmLsjpYJ)vj;pj2IpVsP^C4W57BIGf~4TBP+w*L$84DcLG5q0xH5m zg0KV9wds95YQBZ+Z5gFT2)0eE7E-CCmanDt^%ueH`*fzzF{xB*8cP~dlG}V!s{+wI z&`>HUWWk$zR}r{E>hB?7A?MHq58N?7BP$(^g(_Ge!9-vzwwp#RQ&N#w5+|dO0s$5f z6!Aa>;2{n`QZ>vJKaW9+yO{7R$*)hpBPke?P2e2?6w{^H{buy+(tGkUB(yaE{B+(H zh)<&szA4HgbCMwva;2`E2;(-0nPo6B5d-WK%+6SB-uer00>RET$Q$KQDrqXN~bvjGAIR|i*fI{*3T*MwyGc}`liA>Mi7ON zi3|@>G;Ngokw^lli5MS&=UkhfUxTob=N6b3RLi5+VdiF*L?Oqg3$#Cf12X(mwahT< zDjZGyb{*kAj!ESZ&oxUfeKN>v$;={#oP!+(BP-v3J6nFrkj&Rcj05H@(dHtaqp$D> z{uL0Q>I0`kSkf4@O2sJE2CQvkTjW;w0X7QB^_6&;6m3zZd|g(2cZF4k$G})vus>km z2Czmlh*Bs-$&DR!RYDUzy&7!`D1{nLdVzZ*Df8hR@k7_qH9fX?ATTHQ!4wDvNDCk% zD_GSjtYI~#lv_nrH3T9M@M~^eH#E*2D3VDdD91aAY#|c( z1C#|LD~2Hte~Nn~={)`v;!oB-hvcPVg-O{a=He#h#Xw}GEnxdI+0f;&F`zvEorD{~ z20_(=rByW)O{$b_84^Y#DVUj+YsRm@z3#nbz4iFxSGj8vO$-U;uoKX4)otZF+k0bZ zXLEf&q}_PfOccF!8ky-vHL}*{pQ$K*x^p;Xl@H)R)D>dEXN>eRb3L(fHim&YtSs0Y zM#Pah!KN&Lz*vEVrp(7IDhUOZtq|52X5FcjS4$+DU30Cbl{U&2y*steZ5ov-S|ejy zEg_Kf3%D2ypk~n5Fv9|{$d#<2Y^1izRV>pjl(j}m45=$nst72A^f85y4{%|XTB$ho zg~kL3^MV=wnX5Fa`W9#<) zE$)7TB$lm1NI-=lBz}Jk@}8D<(M3{qziM$*ck<4OX3Ehh_qX_LFC-F*3fX% zO5_lAm?M*Z6ANb&XiVbX9PEK+vYJIU@e&+;*|r&z;RLAQXMCDxk7H2QG(pc!hcbs- z^)|b(B*K1ZN<7du1jls4evI56ViKPisU}@N5KdvE!g{h29 z-tq~WfMR4qEHliP5h#K7Ux{B(g8Hq!|0dvs%e)NWB!Lp()Fag~6B$d05h#oZV#cn4 z2{xajcSfAM6Fv-ov5fRx@w*|;=krv;RAqTbGeQ3!=MrJEuh(ZT1uum(S=4DO9QK)( zB5mH_bsSSLx)<`KYDs1|)y+>|?aMjmDR#O#ZF3l{qTc>2Vg;A)rA(QYe_77^Dy~u; zJ-&31`Fxf7^BE6&RCao$1kG{68@o(`d+6248QabjzDgcQVKb*fC>4)`GxaXlW*NXt zUz;q~H7W-Li&RVnk&`^Tr-R;?{V~kU?opOu&}ZoSk+Q=uL4&S%!TbZvuSPErgx-Sm zbifxQE71ZghTe>vMM(1z<0+4)9{@zJ>Tp9q2KX;?f=J5`sMy#^Z#G@zkmF7|9kx3)&7t2|M~r&>HpXJKl#!9 zf7kx6^?#%NAKCt||2<#rtNmZ;{?GLPS4Z~$_x|tpf79xR`u_dD?CYoP|M&bnoS*Ff zc3<26-=FCI-B*57|6lgm_0Q>06Y_nsZQt*Gf16xGkog90A{eEil4o&-?Dw)4D86XW(`JEdL~b&g|;c zAME0alELlNyHQR4&5hD&6|21S_SsAUyI!$)0@ZRx_9C?hEr*QfuD^Ji|AI^CEe z+FeTcFyHYy2LR>ajVw|u`EqKbIm^IpWX#NzJo?GHjMJjw|D5G1wo}R0FI?WXN-=%M z+whXB6VK!{=a;Qcm5Wk(yE#DVs2oo~d2eQ=Pa9q9(%Vhx4*l;|)`*>~E7x?-1R#ZV zY?-YvIS<+c??!*#(RjpUmLyDK8f(%hODVXEMqW=mlF(8Z(rm0FD-`niK^;WwY7BPG zW0x|SvM+;nVX%c;L`@KFLrgxJ`_6K?dE%QH!f4V&_godwOl=rWh{wGctQhEcE}}GH zs94UhZHB8PEC?Qk3BuZpH$1=}=8So~C>k(|bwbO>uU9N`xhh_1zTyU$P;mXNnIwc~ z3@K*o*e3EhBP$bPSb;N0^2$NmPDhWGdEneJf&7aqDA=Lmmr$+w8^&|A$hG}2+=kF0 z2MhncmNHB^7 zgqZL$m#fN$mTQ!-37pRFl7sB}Pf4a~s;htha^msBcjT|LbAw@q5}|{=?O{h|S2koD zqDYb|gb4(UAW0${5TT&k8(K}P8&Yja6vm8Cb=t1h+P-qtUc1zuadV6KK|kP%Uy6#A zY68}+Ok`mO&=aA6URjh%iV;F6hnJ#=dM8YOH#v#Um?Iyj#Q=$2dKpw~AV*NYP^4*14@46s1h6 zz6Gsxv}|gRM(L>48m-K4gg`eLk{PX&rfJ=QI%t6CE}yR!T{+s|ETU**{fb@}9;9TD zAMPGT9mawV=YsZmk{XoObfCr>7lOaJS^-p3{{14T1TjE968b~N;m?)#2w36k&5 z(h?F7jE2GMT!E{K+0UB^~oGc%1yEzPU6zv-q{&7&Cc&v$6m1y|f zMw49eW*mGw2UlZ!U^#kPot-W0`EZwiGsFKu^F;c7{OtOwnH-=);XrJOQ5+yq@G2-s zPwW3bmVfWgV}g|CZBizU;Bvq^afQ&zyFS6|MIaPX1J{Wz@8lcN1C7U zaOwLy6?*FDZPKZn5P!p}gMR&-WvuEosgI>n&+#j$RQL zF%eJ^cRlfcIu}Pkqi#Sup2K{;!i# uesxeI2|i)39d)^egXQ>)%zkgX^8RH&fB%cQBAh5lUi?g%016{KJv|E3Drltu literal 0 HcmV?d00001 diff --git a/wscript b/wscript new file mode 100644 index 0000000..f1e0dd3 --- /dev/null +++ b/wscript @@ -0,0 +1,33 @@ +APPNAME = 'libcxml' +VERSION = '0.01' + +def options(opt): + opt.load('compiler_cxx') + +def configure(conf): + conf.load('compiler_cxx') + conf.env.append_value('CXXFLAGS', ['-Wall', '-Wextra', '-O2']) + + conf.check_cfg(package = 'libxml++-2.6', args = '--cflags --libs', uselib_store = 'LIBXML++', mandatory = True) + + conf.check_cxx(fragment = """ + #include \n + int main() { boost::filesystem::copy_file ("a", "b"); }\n + """, + msg = 'Checking for boost filesystem library', + libpath = '/usr/local/lib', + lib = ['boost_filesystem', 'boost_system'], + uselib_store = 'BOOST_FILESYSTEM') + + conf.recurse('test') + +def build(bld): + + bld(source = 'libcxml.pc.in', + version = VERSION, + includedir = '%s/include' % bld.env.PREFIX, + libs = "-L${libdir}", + install_path = '${LIBDIR}/pkgconfig') + + bld.recurse('src') + bld.recurse('test') -- 2.30.2