From 74b4173c4c4d9eaaa9726c8562f3c2178a7b10f6 Mon Sep 17 00:00:00 2001 From: peri4 Date: Mon, 5 Dec 2011 23:51:02 +0300 Subject: [PATCH] 05.11.2011 - stable version, 0.1.0, self-test program, work at GCC 2.95 - 4.5, VC 2010, MinGW, Linux, Windows, QNX --- Makefile_qnx | 19 ++- main.cpp | 334 ++++++++++++++++++++++++-------------- make_install_qnx_6.3.0.sh | 5 + pibitarray.h | 2 +- pibytearray.cpp | 12 +- pichar.h | 2 +- picli.h | 4 +- piconfig.h | 169 ++++++++++--------- piconsole.cpp | 23 ++- piconsole.h | 81 ++++----- picontainers.h | 68 ++++---- piethernet.cpp | 8 +- piethernet.h | 2 +- pievaluator.h | 56 +++---- pifile.cpp | 27 ++- pifile.h | 37 +++-- piincludes.h | 39 +++-- pimath.h | 311 +++++++++++++++++------------------ pimonitor.cpp | 7 + pimonitor.h | 13 ++ pimultiprotocol.cpp | 2 + pimultiprotocol.h | 14 +- pimutex.h | 100 ++++++------ piobject.cpp | 20 +++ piobject.h | 236 +++++++++++++++++++++++++++ pip.h | 2 + pip.pro | 23 ++- piprocess.cpp | 2 +- piprocess.h | 7 +- piprotocol.cpp | 122 +++++++++++--- piprotocol.h | 78 +++++---- piserial.cpp | 6 + piserial.h | 36 ++-- pistring.cpp | 4 + pistring.h | 23 +-- pisystemmonitor.cpp | 105 ++++++++++++ pisystemmonitor.h | 52 ++++++ pithread.cpp | 14 +- pithread.h | 25 ++- pitimer.cpp | 80 ++++++--- pitimer.h | 19 ++- Описание.odt | Bin 105900 -> 113624 bytes Описание.pdf | Bin 295171 -> 328696 bytes 43 files changed, 1495 insertions(+), 694 deletions(-) create mode 100644 make_install_qnx_6.3.0.sh create mode 100644 pimonitor.cpp create mode 100644 pimonitor.h create mode 100644 pimultiprotocol.cpp create mode 100644 piobject.cpp create mode 100644 piobject.h create mode 100644 pisystemmonitor.cpp create mode 100644 pisystemmonitor.h diff --git a/Makefile_qnx b/Makefile_qnx index 0c62deb8..0aca81f9 100644 --- a/Makefile_qnx +++ b/Makefile_qnx @@ -37,7 +37,10 @@ SOURCES = main.cpp \ picli.cpp \ piprocess.cpp \ picodec.cpp \ - pisignals.cpp + pisignals.cpp \ + pimonitor.cpp \ + piobject.cpp \ + pisystemmonitor.cpp OBJECTS = main.o \ pibytearray.o \ piconfig.o \ @@ -57,7 +60,10 @@ OBJECTS = main.o \ picli.o \ piprocess.o \ picodec.o \ - pisignals.o + pisignals.o \ + pimonitor.o \ + piobject.o \ + pisystemmonitor.o first: all ####### Implicit rules @@ -250,6 +256,15 @@ picodec.o: picodec.cpp pisignals.o: pisignals.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o pisignals.o pisignals.cpp +pimonitor.o: pimonitor.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o pimonitor.o pimonitor.cpp + +piobject.o: piobject.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o piobject.o piobject.cpp + +pisystemmonitor.o: pisystemmonitor.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o pisystemmonitor.o pisystemmonitor.cpp + ####### Install install: FORCE diff --git a/main.cpp b/main.cpp index fad73a36..6074c8b8 100644 --- a/main.cpp +++ b/main.cpp @@ -1,150 +1,232 @@ -#include +#include "pip.h" -class Prot: public PIProtocol { + +class ThreadTest: public PIThread { public: - Prot(): PIProtocol() { - setName("test"); - ba.resize(1024); - setReceiverAddress("127.0.0.1", 3003, true); - setReceiverData(ba.data(), ba.size_s()); - setSenderAddress("127.0.0.2", 3003, true); - setSenderData(ba.data(), ba.size_s()); - setExpectedFrequency(100); - //setSenderFrequency(); - //startReceive(100); - startSend(10); - }; - PIByteArray ba; + ThreadTest(): PIThread() {cnt = 0; b = r = e = false;} + int cnt; + bool b, r, e; +private: + void begin() {b = true; cout << " thread begin\n";} + void run() {r = true; cout << " thread run " << cnt++ << endl; if (cnt == 10) stop();} + void end() {e = true; cout << " thread end\n";} }; -class MProt: public PIMultiProtocol { +PIMutex mutex_; +bool m = false; +int cnt = 0, gm = 0; + +class MutexTest: public PIThread { public: - MProt() {cor = incor = 0;} - - int cor, incor; - - virtual void received(PIProtocol * prot, bool corrected, char * data, int size) {if (corrected) cor++; else incor++; if (prot->name() == "test" && corrected) prot->send();} - - + MutexTest(): PIThread() {;} +private: + void run() {mutex_.lock(); if (m && cnt > 1) gm++; m = true; cout << " " << flush; if (cnt++ >= 128) stop(); msleep(20); mutex_.unlock();} }; - -struct BitsStruct { - uchar b1: 1; - uchar b2: 2; - uchar b4: 4; +class MutexTest2: public PIThread { +public: + MutexTest2(): PIThread() {;} +private: + void run() {mutex_.lock(); if (!m && cnt > 1) gm++; m = false; cout << "|" << flush; if (cnt++ >= 128) stop(); msleep(20); mutex_.unlock();} }; -int i = 1; -BitsStruct bits; - -void keyFunc(char key, void * ); - -PIConsole c(false, keyFunc); - -void keyFunc(char key, void * ) { - switch (key) { - case '-': i--; break; - case '+': i++; break; - case '[': bits.b1--; break; - case ']': bits.b1++; break; - case ';': bits.b2--; break; - case '\'': bits.b2++; break; - case ',': bits.b4--; break; - case '.': bits.b4++; break; - case 'i': i = c.getInt(1, 2); break; - } -}; void signalFunc(PISignals::Signal signal) { - if (signal == PISignals::Interrupt) cout << "Ctrl+C pressed" << endl; + if (signal != PISignals::Interrupt) return; + cout << "Ctrl+C pressed, exiting ..." << endl; + exit(0); }; -void timerEvent(void*, int delim) { - cout << "tick " << delim << endl; + +bool t = false; +void timerEvent(void * data, int delim) { + t = true; + cout << " tick from constuctor, delimiter = " << delim << ", data = " << data << endl; }; -PITimer timer(timerEvent); +bool +t2 = false; +void timerEvent2(void * data, int delim) { + t2 = true; + cout << " tick from delimiter " << delim << ", data = " << data << endl; +}; -void timerEvent2(void*, int delim) { - cout << "tick2 " << delim << endl; + +class ObjectTest: public PIObject { +public: + ObjectTest(const PIString & name = PIString()): PIObject(name) {h = hi = ht = false;} + EVENT_HANDLER(ObjectTest, void, handler) {h = true; cout << " handler in \"" << name() << "\"" << endl;} + EVENT_HANDLER2(ObjectTest, void, handler_i_s, int, i, PIString, s) {hi = true; cout << " handler_i_s in \"" << name() << "\", i = " << i << ", s = \"" << s << "\"" << endl;} + EVENT_HANDLER2(ObjectTest, void, handler_timeout, void * , data, int, delim) {ht = true; cout << " handler_timeout in \"" << name() << "\", data = " << data << ", delim = " << delim << endl;} + bool h, hi, ht; +}; + + +class ObjectTest2: public PIObject { +public: + ObjectTest2(const PIString & name = PIString()): PIObject(name) {;} + void raise0(const PIString & e) {cout << " event \"" << e << "\" from \"" << name() << "\"" << endl; raiseEvent(this, e);} + void raise2(const PIString & e, int i, const PIString & s) {cout << " event \"" << e << "\" from \"" << name() << "\"" << endl; raiseEvent(this, e, i, s);} +}; + +class CA: public PIObject { +public: + CA(const PIString & n): PIObject(n) {;} + EVENT_HANDLER(CA, void, handler_ca) {a = true; cout << " handler CA" << endl;} + bool a; +}; + +class CB: public CA { +public: + CB(const PIString & n): CA(n) {;} + EVENT_HANDLER(CB, void, handler_cb) {b = true; cout << " handler CB" << endl;} + bool b; +}; + +class CC: public CB { +public: + CC(const PIString & n): CB(n) {;} + EVENT_HANDLER(CC, void, handler_cc) {c = true; cout << " handler CC" << endl;} + bool c; +}; + +class CD: public CC { +public: + CD(const PIString & n): CC(n) {;} + EVENT_HANDLER(CD, void, handler_cd) {d = true; cout << " handler CD" << endl;} + bool d; }; int main(int argc, char * argv[]) { - /*PICLI cli(argc, argv); - cli.addArgument("debug"); - cli.addArgument("value", "V", "Val", true); - if (cli.hasArgument("debug")) - cout << "has debug" << endl; - if (cli.hasArgument("value")) - cout << "value = " << cli.argumentValue("value") << endl;*/ - /* - timer.start(100); - timer.addDelimiter(2, timerEvent2); + PIFile f; + f.open("_test", PIFile::ReadWrite || PIFile::New); + if (f.isEmpty()) f.remove(); + + return 0; + bool r_string = true, r_thread = true, r_mutex = true, r_timer = true, r_file = true, r_eval = true, r_event = true; + bool succ = true; + cout << "== PIP test program ==" << endl; + cout << "== Built with PIP " << PIPVersion() << " ==" << endl << endl; + cout << "== String test ==" << endl; + PIString string("test string"); + cout << " \"test string\" -> \"" << string << "\"" << endl; + if (string.length() != 11) succ = r_string = false; + cout << " to char * = \"" << string.data() << "\"" << endl; + cout << " to std::string = \"" << string.stdString() << "\"" << endl; + if (string.stdString().length() != 11) succ = r_string = false; + cout << " to std::wstring = \"" << string.stdWString() << "\"" << endl; + if (string.stdWString().length() != 11) succ = r_string = false; + if (succ) cout << " convertions success" << endl; + else cout << " convertions fail" << endl; + succ = true; + string = PIString("αβγ°℃"); + cout << " \"αβγ°℃\" -> \"" << string << "\"" << endl; + if (string.length() != 5) succ = r_string = false; + cout << " to char * = \"" << string.data() << "\"" << endl; + cout << " to std::string = \"" << string.stdString() << "\"" << endl; + if (string.stdString().length() != 10) succ = r_string = false; + cout << " to std::wstring = \"" << string.stdWString() << "\"" << endl; + if (string.stdWString().length() != 5) succ = r_string = false; + if (succ) cout << " complex convertions success" << endl; + else cout << " complex convertions fail" << endl; + if (r_string) cout << "== Success ==" << endl; + else cout << "== Fail ==" << endl; + + cout << endl << "== Thread test ==" << endl; + ThreadTest thread; + thread.start(100); + msleep(10); + thread.waitForFinish(); + r_thread = thread.b && thread.r && thread.e && thread.cnt == 10; + if (r_thread) cout << "== Success ==" << endl; + else cout << "== Fail ==" << endl; + + cout << endl << "== Mutex test ==" << endl << " "; + MutexTest thread_m; + MutexTest2 thread_m2; + thread_m.start(); + thread_m2.start(); + thread_m.waitForFinish(); + thread_m2.waitForFinish(); + cout << endl; + r_mutex = gm < 5; + if (r_mutex) cout << "== Success ==" << endl; + else cout << "== Fail ==" << endl; + + cout << endl << "== Timer test ==" << endl; + PITimer timer(timerEvent, (void*)255); + timer.addDelimiter(2); timer.addDelimiter(5, timerEvent2); - FOREVER_WAIT - */ - /*PISignals::setSlot(signalFunc); - PISignals::grabSignals(PISignals::Interrupt); - FOREVER_WAIT*/ + timer.start(100.f); + msleep(1005); + timer.stop(); + r_timer = t && t2; + if (r_timer) cout << "== Success ==" << endl; + else cout << "== Fail ==" << endl; - /*PIString ip; - int port; - PIConfig conf("protocols.conf~"); - ip = conf.getValue("mcp1.receiver.ip"); - port = conf.getValue("mcp1.receiver.port"); - cout << ip << ":" << port << endl;*/ + cout << endl << "== File test ==" << endl; + PIFile file(" file_test", PIFile::New | PIFile::ReadWrite); + cout << " file \"" << file.path() << "\" is "; + if (!file.isOpened()) cout << "not "; + cout << "opened" << endl; + file << "test string"; + cout << " write " << file.pos() << " bytes" << endl; + if (file.pos() != 11) r_file = false; + PIByteArray ba = file.readAll(); + if (ba.size() != 11) r_file = false; + cout << " read " << ba.size() << " bytes: \"" << PIString(ba) << '\"' << endl; + file.remove(); + if (r_file) cout << "== Success ==" << endl; + else cout << "== Fail ==" << endl; + + cout << endl << "== Evaluator test ==" << endl; + PIEvaluator evaluator; + evaluator.setVariable("x", complexd(2., 1.)); + PIString expression("2x^2 + i"); + evaluator.check(expression); + cout << " expression = \"" << expression << '\"' << endl; + cout << " recognized = \"" << evaluator.expression() << '\"' << endl; + cout << " error = \"" << evaluator.error() << '\"' << endl; + cout << " \"x\" = " << evaluator.content.variable("x").value << endl; + cout << " result = " << evaluator.evaluate() << endl; + r_eval = round(evaluator.lastResult()) == complexd(9., 12.); + if (r_eval) cout << "== Success ==" << endl; + else cout << "== Fail ==" << endl; - c.addString("PIConsole example"); - c.addEmptyLine(); + cout << endl << "== Event test ==" << endl; + ObjectTest object("obj"); + ObjectTest2 object2("obj2"); + PITimer timer2; + timer2.setData((void * )128); + timer2.addDelimiter(2); + timer2.addDelimiter(5); + CONNECT0(void, &object2, event0, &object, handler); + CONNECT2(void, int, PIString, &object2, event2, &object, handler_i_s); + CONNECT2(void, void * , int, &timer2, timeout, &object, handler_timeout); + object2.raise0("event0"); + object2.raise2("event2", 123, "string"); + timer2.start(100.f); + msleep(505); + timer2.stop(); + CA ca("cd"); + CD cd("cd"); + CONNECT(void, &ca, event_ca, &cd, handler_cd); + CONNECT(void, &ca, event_ca, &cd, handler_cc); + CONNECT(void, &ca, event_ca, &cd, handler_cb); + CONNECT(void, &ca, event_ca, &cd, handler_ca); + PIObject::raiseEvent(&ca, "event_ca"); + r_event = object.h && object.hi && object.ht && cd.a && cd.b && cd.c && cd.d; + if (r_event) cout << "== Success ==" << endl; + else cout << "== Fail ==" << endl; - c.addTab("colors", '1'); - c.addString("Red string", 1, PIConsole::Red); - c.addString("Blue on yellow", 1, PIConsole::Blue | PIConsole::BackYellow); - c.addEmptyLine(); - - c.addTab("columns", '2'); - c.addString("column 1", 1, PIConsole::BackYellow); - c.addString("column 2", 2, PIConsole::BackCyan); - c.addString("column 3", 3, PIConsole::BackMagenta); - c.addEmptyLine(); - - c.addTab("bits", '3'); - c.addBitVariable("b1", &bits, 0, 1); - c.addBitVariable("b2", &bits, 1, 2); - c.addBitVariable("b4", &bits, 3, 4); - c.addCustomStatus("[] - -/+ b1, ;\' - -/+ b2, ,. - -/+ b4"); - c.addEmptyLine(); - - c.addTab("formats", '4'); - c.addVariable("our int", &i); - c.addVariable("dec", &i); - c.addVariable("oct", &i, 1, PIConsole::Oct); - c.addVariable("hex", &i, 1, PIConsole::Hex); - c.addCustomStatus("-+ - -/+ number"); - c.addEmptyLine(); - - c.setTab(0); - c.enableExitCapture(); - c.start(true); - - /*MProt mp; - Prot p; - PIRepeater r("protocols.conf", "r", 1024); - mp.addProtocol(p); - c.addVariable("rec : " + mp[0]->receiverDeviceName() + ":", mp[0]->receiverDeviceState_ptr()); - c.addVariable("send: " + mp[0]->senderDeviceName() + ":", mp[0]->senderDeviceState_ptr()); - c.addVariable("freq", mp[0]->immediateFrequency_ptr()); - c.addVariable("sent ", mp[0]->sendCount_ptr()); - c.addVariable("ok ", mp[0]->receiveCount_ptr()); - c.addVariable("wrong", mp[0]->wrongCount_ptr()); - c.addEmptyLine(); - c.addVariable("mp_corr", &mp.cor); - c.addVariable("mp_incr", &mp.incor); - c.addVariable(r.firstChannelName() + ", rec ", r.receiveCount_ptr()); - c.addVariable(r.secondChannelName() + ", send", r.sendCount_ptr()); - c.enableExitCapture(); - mp.start(); - c.start(false);*/ - c.waitForFinish(); + cout << endl << "== Results ==" << endl; + cout << "= String " << r_string << " =" << endl; + cout << "= Thread " << r_thread << " =" << endl; + cout << "= Mutex " << r_mutex << " =" << endl; + cout << "= Timer " << r_timer << " =" << endl; + cout << "= File " << r_file << " =" << endl; + cout << "= Evaluator " << r_eval << " =" << endl; + cout << "= Event " << r_event << " =" << endl; + if (r_string && r_thread && r_mutex && r_timer && r_file && r_eval && r_event) + cout << "== All tests successful ==" << endl; }; diff --git a/make_install_qnx_6.3.0.sh b/make_install_qnx_6.3.0.sh new file mode 100644 index 00000000..971775fd --- /dev/null +++ b/make_install_qnx_6.3.0.sh @@ -0,0 +1,5 @@ +#! /bin/sh +make $@ +cp -vf *.h /usr/qnx630/target/qnx6/usr/include/ +cp -vf lib*.so /usr/qnx630/target/qnx6/x86/lib/ +cp -vf lib*.so /lib/ diff --git a/pibitarray.h b/pibitarray.h index 9223f643..362ea7ee 100644 --- a/pibitarray.h +++ b/pibitarray.h @@ -37,7 +37,7 @@ public: if (value) data_[si] |= (1 << ti); else data_[si] &= ~(1 << ti); return *this;} - PIBitArray & insert(const uint & index, const uchar & value) {return push_back(value > 0);} + PIBitArray & insert(const uint & index, const uchar & value) {return insert(index, value > 0);} PIBitArray & push_front(const bool & value) {return insert(0, value);} PIBitArray & push_front(const uchar & value) {return push_front(value > 0);} PIBitArray & pop_back() {return resize(size_ - 1);} diff --git a/pibytearray.cpp b/pibytearray.cpp index 3bac7ed2..65e62d43 100644 --- a/pibytearray.cpp +++ b/pibytearray.cpp @@ -15,19 +15,19 @@ PIVector PIHuffman::compress(const PIVector & src) { void PIHuffman::calcFrequencies(const PIVector & src) { nodes.resize(256); - for (uint i = 0; i < 256; ++i) { + for (int i = 0; i < 256; ++i) { nodes[i].parent = nodes[i].right = nodes[i].left = 0; nodes[i].freq = 0; nodes[i].word.resize(1); nodes[i].word[0] = static_cast(i); } - for (uint i = 0; i < src.size(); ++i) + for (int i = 0; i < src.size_s(); ++i) nodes[src[i]].freq++; std::qsort(nodes.data(), 256, sizeof(node), nodeCompare); - for (uint i = 255; i >= 0; --i) + for (int i = 255; i >= 0; --i) if (nodes[i].freq > 0 && i < 255) {nodes.remove(i + 1, 255 - i); break;} - for (uint i = 0; i < nodes.size(); ++i) + for (int i = 0; i < nodes.size_s(); ++i) cout << string((char*)nodes[i].word.data(), 1) << ": " << nodes[i].freq << endl; } @@ -38,8 +38,8 @@ PIByteArray & PIByteArray::convertToBase64() { base64HelpStruct hs; PIByteArray t; if (size() == 0) return *this; - uint sz = (size() / 3) * 3; - for (uint i = 0; i < sz; ++i) { + int sz = (size_s() / 3) * 3; + for (int i = 0; i < sz; ++i) { hs.byte0 = hs.byte1 = hs.byte2 = 0; hs.byte0 = at(i); hs.byte1 = at(++i); diff --git a/pichar.h b/pichar.h index 3c5cbde3..9aa19ef3 100644 --- a/pichar.h +++ b/pichar.h @@ -63,7 +63,7 @@ public: int toInt() const {return static_cast(ch);} const wchar_t * toWCharPtr() const {return &ch;} const char * toCharPtr() const {return reinterpret_cast(&ch);} - const wchar_t toWChar() const {return ch;} + wchar_t toWChar() const {return ch;} char toAscii() const {return ch % 256;} int unicode16Code() const {wchar_t wc; if (mbtowc(&wc, toCharPtr(), 4) > 0) return wc; return 0;} //#ifdef WINDOWS diff --git a/picli.h b/picli.h index 948d3243..a58b3a80 100644 --- a/picli.h +++ b/picli.h @@ -28,8 +28,8 @@ public: const PIString & shortKeyPrefix() const {return _prefix_short;} const PIString & fullKeyPrefix() const {return _prefix_full;} - const int mandatoryArgumentsCount() const {return _count_mand;} - const int optionalArgumentsCount() const {return _count_opt;} + int mandatoryArgumentsCount() const {return _count_mand;} + int optionalArgumentsCount() const {return _count_opt;} void setShortKeyPrefix(const PIString & prefix) {_prefix_short = prefix;} void setFullKeyPrefix(const PIString & prefix) {_prefix_full = prefix;} void setMandatoryArgumentsCount(const int count) {_count_mand = count;} diff --git a/piconfig.h b/piconfig.h index 2edafd77..f9b5b72d 100644 --- a/piconfig.h +++ b/piconfig.h @@ -4,18 +4,31 @@ #include "pifile.h" #define PICONFIG_GET_VALUE \ - inline Entry & getValue(const PIString & vname, const char * def, bool * exist = 0) {return getValue(vname, PIString(def), exist);} \ - inline Entry & getValue(const PIString & vname, const PIStringList & def, bool * exist = 0) {return getValue(vname, def.join("%|%"), exist);} \ - inline Entry & getValue(const PIString & vname, const bool def, bool * exist = 0) {return getValue(vname, PIString::fromBool(def), exist);} \ - inline Entry & getValue(const PIString & vname, const short def, bool * exist = 0) {return getValue(vname, itos(def), exist);} \ - inline Entry & getValue(const PIString & vname, const int def, bool * exist = 0) {return getValue(vname, itos(def), exist);} \ - inline Entry & getValue(const PIString & vname, const long def, bool * exist = 0) {return getValue(vname, ltos(def), exist);} \ - inline Entry & getValue(const PIString & vname, const uchar def, bool * exist = 0) {return getValue(vname, uitos(def), exist);} \ - inline Entry & getValue(const PIString & vname, const ushort def, bool * exist = 0) {return getValue(vname, uitos(def), exist);} \ - inline Entry & getValue(const PIString & vname, const uint def, bool * exist = 0) {return getValue(vname, uitos(def), exist);} \ - inline Entry & getValue(const PIString & vname, const ulong def, bool * exist = 0) {return getValue(vname, ultos(def), exist);} \ - inline Entry & getValue(const PIString & vname, const float def, bool * exist = 0) {return getValue(vname, ftos(def), exist);} \ - inline Entry & getValue(const PIString & vname, const double def, bool * exist = 0) {return getValue(vname, dtos(def), exist);} + Entry & getValue(const PIString & vname, const char * def, bool * exist = 0) {return getValue(vname, PIString(def), exist);} \ + Entry & getValue(const PIString & vname, const PIStringList & def, bool * exist = 0) {return getValue(vname, def.join("%|%"), exist);} \ + Entry & getValue(const PIString & vname, const bool def, bool * exist = 0) {return getValue(vname, PIString::fromBool(def), exist);} \ + Entry & getValue(const PIString & vname, const short def, bool * exist = 0) {return getValue(vname, itos(def), exist);} \ + Entry & getValue(const PIString & vname, const int def, bool * exist = 0) {return getValue(vname, itos(def), exist);} \ + Entry & getValue(const PIString & vname, const long def, bool * exist = 0) {return getValue(vname, ltos(def), exist);} \ + Entry & getValue(const PIString & vname, const uchar def, bool * exist = 0) {return getValue(vname, uitos(def), exist);} \ + Entry & getValue(const PIString & vname, const ushort def, bool * exist = 0) {return getValue(vname, uitos(def), exist);} \ + Entry & getValue(const PIString & vname, const uint def, bool * exist = 0) {return getValue(vname, uitos(def), exist);} \ + Entry & getValue(const PIString & vname, const ulong def, bool * exist = 0) {return getValue(vname, ultos(def), exist);} \ + Entry & getValue(const PIString & vname, const float def, bool * exist = 0) {return getValue(vname, ftos(def), exist);} \ + Entry & getValue(const PIString & vname, const double def, bool * exist = 0) {return getValue(vname, dtos(def), exist);} \ + \ + Entry & getValue(const PIString & vname, const char * def, bool * exist = 0) const {return getValue(vname, PIString(def), exist);} \ + Entry & getValue(const PIString & vname, const PIStringList & def, bool * exist = 0) const {return getValue(vname, def.join("%|%"), exist);} \ + Entry & getValue(const PIString & vname, const bool def, bool * exist = 0) const {return getValue(vname, PIString::fromBool(def), exist);} \ + Entry & getValue(const PIString & vname, const short def, bool * exist = 0) const {return getValue(vname, itos(def), exist);} \ + Entry & getValue(const PIString & vname, const int def, bool * exist = 0) const {return getValue(vname, itos(def), exist);} \ + Entry & getValue(const PIString & vname, const long def, bool * exist = 0) const {return getValue(vname, ltos(def), exist);} \ + Entry & getValue(const PIString & vname, const uchar def, bool * exist = 0) const {return getValue(vname, uitos(def), exist);} \ + Entry & getValue(const PIString & vname, const ushort def, bool * exist = 0) const {return getValue(vname, uitos(def), exist);} \ + Entry & getValue(const PIString & vname, const uint def, bool * exist = 0) const {return getValue(vname, uitos(def), exist);} \ + Entry & getValue(const PIString & vname, const ulong def, bool * exist = 0) const {return getValue(vname, ultos(def), exist);} \ + Entry & getValue(const PIString & vname, const float def, bool * exist = 0) const {return getValue(vname, ftos(def), exist);} \ + Entry & getValue(const PIString & vname, const double def, bool * exist = 0) const {return getValue(vname, dtos(def), exist);} class PIConfig: public PIFile { @@ -23,7 +36,7 @@ class PIConfig: public PIFile friend class Branch; public: PIConfig(const PIString & path, PIFlags mode = Read | Write); - ~PIConfig() {;} + ~PIConfig() {piForeach (Entry * i, root._children) deleteEntry(i);} class Entry; @@ -32,9 +45,10 @@ public: friend class Entry; friend std::ostream & operator <<(std::ostream & s, const Branch & v); public: - inline Branch() {;} + Branch() {;} Entry & getValue(const PIString & vname, const PIString & def = PIString(), bool * exist = 0); + Entry & getValue(const PIString & vname, const PIString & def = PIString(), bool * exist = 0) const {return const_cast(this)->getValue(vname, def, exist);} PICONFIG_GET_VALUE Branch allLeaves(); @@ -42,15 +56,15 @@ public: Branch getLeaves(); Branch getBranches(); Branch & filter(const PIString & f); - inline bool isEntryExists(const PIString & name) const {piForeachC (Entry * i, *this) if (entryExists(i, name)) return true; return false;} - inline int indexOf(const Entry * e) {for (int i = 0; i < size_s(); ++i) if (at(i) == e) return i; return -1;} + bool isEntryExists(const PIString & name) const {piForeachC (Entry * i, *this) if (entryExists(i, name)) return true; return false;} + int indexOf(const Entry * e) {for (int i = 0; i < size_s(); ++i) if (at(i) == e) return i; return -1;} - inline void clear() {piForeach (Entry * i, *this) delete i; PIVector::clear();} + void clear() {piForeach (Entry * i, *this) delete i; PIVector::clear();} private: bool entryExists(const Entry * e, const PIString & name) const; - inline void allLeaves(Branch & b, Entry * e) {piForeach (Entry * i, e->_children) {if (i->isLeaf()) b << i; else allLeaves(b, i);}} - inline void coutt(std::ostream & s, const PIString & p) const {piForeachC (Entry * i, *this) i->coutt(s, p);} + void allLeaves(Branch & b, Entry * e) {piForeach (Entry * i, e->_children) {if (i->isLeaf()) b << i; else allLeaves(b, i);}} + void coutt(std::ostream & s, const PIString & p) const {piForeachC (Entry * i, *this) i->coutt(s, p);} static Entry _empty; PIString delim; @@ -61,46 +75,47 @@ public: friend class PIConfig; friend class Branch; public: - inline Entry() {_parent = 0;} + Entry() {_parent = 0;} - inline Entry * parent() const {return _parent;} - inline int childCount() {return _children.size_s();} - inline Branch & children() {_children.delim = delim; return _children;} - inline Entry * child(const int index) const {return _children[index];} - inline Entry * findChild(const PIString & name) {piForeach (Entry * i, _children) if (i->_name == name) return i; return 0;} - inline const Entry * findChild(const PIString & name) const {piForeachC (Entry * i, _children) if (i->_name == name) return i; return 0;} - inline bool isLeaf() const {return _children.isEmpty();} + Entry * parent() const {return _parent;} + int childCount() {return _children.size_s();} + Branch & children() {_children.delim = delim; return _children;} + Entry * child(const int index) const {return _children[index];} + Entry * findChild(const PIString & name) {piForeach (Entry * i, _children) if (i->_name == name) return i; return 0;} + const Entry * findChild(const PIString & name) const {piForeachC (Entry * i, _children) if (i->_name == name) return i; return 0;} + bool isLeaf() const {return _children.isEmpty();} - inline const PIString & name() const {return _name;} - inline const PIString & value() const {return _value;} - inline const PIString & type() const {return _type;} - inline const PIString & comment() const {return _comment;} - inline const PIString & fullName() const {return _full_name;} + const PIString & name() const {return _name;} + const PIString & value() const {return _value;} + const PIString & type() const {return _type;} + const PIString & comment() const {return _comment;} + const PIString & fullName() const {return _full_name;} - inline Entry & setName(const PIString & value) {_name = value; return *this;} - inline Entry & setType(const PIString & value) {_type = value; return *this;} - inline Entry & setComment(const PIString & value) {_comment = value; return *this;} - inline Entry & setValue(const PIString & value) {_value = value; return *this;} - inline Entry & setValue(const PIStringList & value) {setValue(value.join("%|%")); setType("l"); return *this;} - inline Entry & setValue(const char * value) {setValue(PIString(value)); setType("s"); return *this;} - inline Entry & setValue(const bool value) {setValue(btos(value)); setType("b"); return *this;} - inline Entry & setValue(const char value) {setValue(PIString(1, value)); setType("s"); return *this;} - inline Entry & setValue(const short value) {setValue(itos(value)); setType("n"); return *this;} - inline Entry & setValue(const int value) {setValue(itos(value)); setType("n"); return *this;} - inline Entry & setValue(const long value) {setValue(ltos(value)); setType("n"); return *this;} - inline Entry & setValue(const uchar value) {setValue(uitos(value)); setType("n"); return *this;} - inline Entry & setValue(const ushort value) {setValue(uitos(value)); setType("n"); return *this;} - inline Entry & setValue(const uint value) {setValue(uitos(value)); setType("n"); return *this;} - inline Entry & setValue(const ulong value) {setValue(ultos(value)); setType("n"); return *this;} - inline Entry & setValue(const float value) {setValue(ftos(value)); setType("f"); return *this;} - inline Entry & setValue(const double value) {setValue(dtos(value)); setType("f"); return *this;} + Entry & setName(const PIString & value) {_name = value; return *this;} + Entry & setType(const PIString & value) {_type = value; return *this;} + Entry & setComment(const PIString & value) {_comment = value; return *this;} + Entry & setValue(const PIString & value) {_value = value; return *this;} + Entry & setValue(const PIStringList & value) {setValue(value.join("%|%")); setType("l"); return *this;} + Entry & setValue(const char * value) {setValue(PIString(value)); setType("s"); return *this;} + Entry & setValue(const bool value) {setValue(btos(value)); setType("b"); return *this;} + Entry & setValue(const char value) {setValue(PIString(1, value)); setType("s"); return *this;} + Entry & setValue(const short value) {setValue(itos(value)); setType("n"); return *this;} + Entry & setValue(const int value) {setValue(itos(value)); setType("n"); return *this;} + Entry & setValue(const long value) {setValue(ltos(value)); setType("n"); return *this;} + Entry & setValue(const uchar value) {setValue(uitos(value)); setType("n"); return *this;} + Entry & setValue(const ushort value) {setValue(uitos(value)); setType("n"); return *this;} + Entry & setValue(const uint value) {setValue(uitos(value)); setType("n"); return *this;} + Entry & setValue(const ulong value) {setValue(ultos(value)); setType("n"); return *this;} + Entry & setValue(const float value) {setValue(ftos(value)); setType("f"); return *this;} + Entry & setValue(const double value) {setValue(dtos(value)); setType("f"); return *this;} Entry & getValue(const PIString & vname, const PIString & def = PIString(), bool * exist = 0); + Entry & getValue(const PIString & vname, const PIString & def = PIString(), bool * exist = 0) const {return const_cast(this)->getValue(vname, def, exist);} PICONFIG_GET_VALUE Branch getValues(const PIString & vname); - inline bool isEntryExists(const PIString & name) const {return entryExists(this, name);} + bool isEntryExists(const PIString & name) const {return entryExists(this, name);} operator bool() {return _value.toBool();} operator char() {return (_value.isEmpty() ? 0 : _value[0].toAscii());} @@ -117,11 +132,11 @@ public: operator PIStringList() {return _value.split("%|%");} private: - inline static bool compare(const PIConfig::Entry * f, const PIConfig::Entry * s) {return f->_line < s->_line;} + static bool compare(const PIConfig::Entry * f, const PIConfig::Entry * s) {return f->_line < s->_line;} bool entryExists(const Entry * e, const PIString & name) const; - inline void buildLine() {_all = _tab + _full_name + " = " + _value + " #" + _type + " " + _comment;} - inline void clear() {_children.clear(); _name = _value = _type = _comment = _all = PIString(); _line = 0; _parent = 0;} - inline void coutt(std::ostream & s, const PIString & p) const {PIString nl = p + " "; if (!_value.isEmpty()) s << p << _name << " = " << _value << endl; else cout << p << _name << endl; piForeachC (Entry * i, _children) i->coutt(s, nl);} + void buildLine() {_all = _tab + _full_name + " = " + _value + " #" + _type + " " + _comment;} + void clear() {_children.clear(); _name = _value = _type = _comment = _all = PIString(); _line = 0; _parent = 0;} + void coutt(std::ostream & s, const PIString & p) const {PIString nl = p + " "; if (!_value.isEmpty()) s << p << _name << " = " << _value << endl; else cout << p << _name << endl; piForeachC (Entry * i, _children) i->coutt(s, nl);} static Entry _empty; Entry * _parent; @@ -138,36 +153,37 @@ public: }; Entry & getValue(const PIString & vname, const PIString & def = PIString(), bool * exist = 0); + Entry & getValue(const PIString & vname, const PIString & def = PIString(), bool * exist = 0) const {return const_cast(this)->getValue(vname, def, exist);} PICONFIG_GET_VALUE Branch getValues(const PIString & vname); void setValue(const PIString & name, const PIString & value, const PIString & type = "s", bool write = true); - inline void setValue(const PIString & name, const PIStringList & value, bool write = true) {setValue(name, value.join("%|%"), "l", write);} - inline void setValue(const PIString & name, const char * value, bool write = true) {setValue(name, PIString(value), "s", write);} - inline void setValue(const PIString & name, const bool value, bool write = true) {setValue(name, btos(value), "b", write);} - inline void setValue(const PIString & name, const short value, bool write = true) {setValue(name, itos(value), "n", write);} - inline void setValue(const PIString & name, const int value, bool write = true) {setValue(name, itos(value), "n", write);} - inline void setValue(const PIString & name, const long value, bool write = true) {setValue(name, ltos(value), "n", write);} - inline void setValue(const PIString & name, const uchar value, bool write = true) {setValue(name, uitos(value), "n", write);} - inline void setValue(const PIString & name, const ushort value, bool write = true) {setValue(name, uitos(value), "n", write);} - inline void setValue(const PIString & name, const uint value, bool write = true) {setValue(name, uitos(value), "n", write);} - inline void setValue(const PIString & name, const ulong value, bool write = true) {setValue(name, ultos(value), "n", write);} - inline void setValue(const PIString & name, const float value, bool write = true) {setValue(name, ftos(value), "f", write);} - inline void setValue(const PIString & name, const double value, bool write = true) {setValue(name, dtos(value), "f", write);} + void setValue(const PIString & name, const PIStringList & value, bool write = true) {setValue(name, value.join("%|%"), "l", write);} + void setValue(const PIString & name, const char * value, bool write = true) {setValue(name, PIString(value), "s", write);} + void setValue(const PIString & name, const bool value, bool write = true) {setValue(name, btos(value), "b", write);} + void setValue(const PIString & name, const short value, bool write = true) {setValue(name, itos(value), "n", write);} + void setValue(const PIString & name, const int value, bool write = true) {setValue(name, itos(value), "n", write);} + void setValue(const PIString & name, const long value, bool write = true) {setValue(name, ltos(value), "n", write);} + void setValue(const PIString & name, const uchar value, bool write = true) {setValue(name, uitos(value), "n", write);} + void setValue(const PIString & name, const ushort value, bool write = true) {setValue(name, uitos(value), "n", write);} + void setValue(const PIString & name, const uint value, bool write = true) {setValue(name, uitos(value), "n", write);} + void setValue(const PIString & name, const ulong value, bool write = true) {setValue(name, ultos(value), "n", write);} + void setValue(const PIString & name, const float value, bool write = true) {setValue(name, ftos(value), "f", write);} + void setValue(const PIString & name, const double value, bool write = true) {setValue(name, dtos(value), "f", write);} - inline Entry & rootEntry() {return root;} - inline int entriesCount() const {return childCount(&root);} - inline bool isEntryExists(const PIString & name) const {return entryExists(&root, name);} + Entry & rootEntry() {return root;} + int entriesCount() const {return childCount(&root);} + bool isEntryExists(const PIString & name) const {return entryExists(&root, name);} - inline Branch allTree() {Branch b; piForeach (Entry * i, root._children) b << i; return b;} - inline Branch allLeaves() {Branch b; allLeaves(b, &root); std::sort(b.begin(), b.end(), Entry::compare); return b;} + Branch allTree() {Branch b; piForeach (Entry * i, root._children) b << i; return b;} + Branch allLeaves() {Branch b; allLeaves(b, &root); std::sort(b.begin(), b.end(), Entry::compare); return b;} int entryIndex(const PIString & name); - inline PIString getName(uint number) {return entryByIndex(number)._name;} - inline PIString getValue(uint number) {return entryByIndex(number)._value;} - inline PIChar getType(uint number) {return entryByIndex(number)._type[0];} - inline PIString getComment(uint number) {return entryByIndex(number)._comment;} + PIString getName(uint number) {return entryByIndex(number)._name;} + PIString getValue(uint number) {return entryByIndex(number)._value;} + PIChar getType(uint number) {return entryByIndex(number)._type[0];} + PIString getComment(uint number) {return entryByIndex(number)._comment;} void addEntry(const PIString & name, const PIString & value, const PIString & type = "s", bool write = true); void setName(uint number, const PIString & name, bool write = true); @@ -190,8 +206,9 @@ private: void buildFullNames(Entry * e) {piForeach (Entry * i, e->_children) {if (e != &root) i->_full_name = e->_full_name + delim + i->_name; else i->_full_name = i->_name; buildFullNames(i);}} void allLeaves(Branch & b, Entry * e) {piForeach (Entry * i, e->_children) {if ((!i->_value.isEmpty() && !i->isLeaf()) || i->isLeaf()) b << i; allLeaves(b, i);}} void setEntryDelim(Entry * e, const PIString & d) {piForeach (Entry * i, e->_children) setEntryDelim(i, d); e->delim = d;} - inline Entry & entryByIndex(const int index) {Branch b = allLeaves(); if (index < 0 || index >= b.size_s()) return empty; return *(b[index]);} + Entry & entryByIndex(const int index) {Branch b = allLeaves(); if (index < 0 || index >= b.size_s()) return empty; return *(b[index]);} void removeEntry(Branch & b, Entry * e); + void deleteEntry(Entry * e) {piForeach (Entry * i, e->_children) deleteEntry(i); delete e;} void parse(); int centry; diff --git a/piconsole.cpp b/piconsole.cpp index aac782c9..1aa1338d 100644 --- a/piconsole.cpp +++ b/piconsole.cpp @@ -217,7 +217,7 @@ PIString PIConsole::fstr(PIFlags f) { #define liprint(x) switch (num_format) {case (1): return printf("0x%.16lX", x); break; case (2): return printf("%lo", x); break; default: return printf("%ld", x); break;} #define lliprint(x) switch (num_format) {case (1): return printf("0x%.16llX", x); break; case (2): return printf("%llo", x); break; default: return printf("%lld", x); break;} #define cuprint(x) switch (num_format) {case (1): return printf("0x%.2X", x); break; case (2): return printf("%o", x); break; default: return printf("%u", x); break;} -#define suprint(x) switch (num_format) {case (1): return printf("0x%.4hX", x); break; case (2): return printf("%o", x); break; default: return printf("%hd", x); break;} +#define suprint(x) switch (num_format) {case (1): return printf("0x%.4hX", x); break; case (2): return printf("%o", x); break; default: return printf("%hu", x); break;} #define uprint(x) switch (num_format) {case (1): return printf("0x%.8X", x); break; case (2): return printf("%o", x); break; default: return printf("%u", x); break;} #define luprint(x) switch (num_format) {case (1): return printf("0x%.16lX", x); break; case (2): return printf("%lo", x); break; default: return printf("%lu", x); break;} #define lluprint(x) switch (num_format) {case (1): return printf("0x%.16llX", x); break; case (2): return printf("%llo", x); break; default: return printf("%llu", x); break;} @@ -436,6 +436,27 @@ void PIConsole::addVariable(const PIString & name, llong * ptr, int column, PIFl ADD_VAR_BODY tv.type = 12; tv.ll = ptr; vars()[column - 1].push_back(tv);} void PIConsole::addVariable(const PIString & name, ullong * ptr, int column, PIFlags format) { ADD_VAR_BODY tv.type = 13; tv.ull = ptr; vars()[column - 1].push_back(tv);} +void PIConsole::addVariable(const PIString & name, PIProtocol * ptr, int column, PIFlags format) { + addString("protocol " + name, column, format | PIConsole::Bold); + addVariable("Rec :" + ptr->receiverDeviceName() + " ", ptr->receiverDeviceState_ptr(), column, format); + addVariable("Send:" + ptr->senderDeviceName() + " ", ptr->senderDeviceState_ptr(), column, format); + addVariable("Sended count", ptr->sendCount_ptr(), column, format); + addVariable("Received count", ptr->receiveCount_ptr(), column, format); + addVariable("Invalid count", ptr->wrongCount_ptr(), column, format); + addVariable("Immediate Frequency, Hz", ptr->immediateFrequency_ptr(), column, format); + addVariable("Integral Frequency, Hz", ptr->integralFrequency_ptr(), column, format); + addVariable("Disconnect Timeout, s", ptr->disconnectTimeout_ptr(), column, format); + addVariable("Quality", ptr->quality_ptr(), column, format); +} +void PIConsole::addVariable(const PIString & name, PISystemMonitor * ptr, int column, PIFlags format) { + addString("monitor " + name, column, format | PIConsole::Bold); + addVariable("state ", &(ptr->statistic().state), column, format); + addVariable("threads ", &(ptr->statistic().threads), column, format); + addVariable("priority", &(ptr->statistic().priority), column, format); + addVariable("memory physical", &(ptr->statistic().physical_memsize_readable), column, format); + addVariable("memory shared ", &(ptr->statistic().share_memsize_readable), column, format); + addVariable("cpu load", &(ptr->statistic().cpu_load_system), column, format); +} void PIConsole::addBitVariable(const PIString & name, void * ptr, int fromBit, int bitCount, int column, PIFlags format) { tv.name = name; tv.bitFrom = fromBit; tv.bitCount = bitCount; tv.type = 14; tv.ptr = ptr; tv.format = format; checkColumn(column); vars()[column - 1].push_back(tv);} diff --git a/piconsole.h b/piconsole.h index ee19e542..6132b02e 100644 --- a/piconsole.h +++ b/piconsole.h @@ -2,10 +2,11 @@ #define PICONSOLE_H #include "pikbdlistener.h" -#include "pistring.h" +#include "piprotocol.h" +#include "pisystemmonitor.h" #ifndef WINDOWS -#include -#include +# include +# include #endif class PIConsole: public PIThread @@ -57,6 +58,8 @@ public: void addVariable(const PIString & name, ullong * ptr, int column = 1, PIFlags format = PIConsole::Normal); void addVariable(const PIString & name, float * ptr, int column = 1, PIFlags format = PIConsole::Normal); void addVariable(const PIString & name, double * ptr, int column = 1, PIFlags format = PIConsole::Normal); + void addVariable(const PIString & name, PIProtocol * ptr, int column = 1, PIFlags format = PIConsole::Normal); + void addVariable(const PIString & name, PISystemMonitor * ptr, int column = 1, PIFlags format = PIConsole::Normal); void addBitVariable(const PIString & name, void * ptr, int fromBit, int bitCount, int column = 1, PIFlags format = PIConsole::Normal); void addEmptyLine(int column = 1, uint count = 1); @@ -85,17 +88,20 @@ public: void addCustomStatus(const PIString & str) {tabs[cur_tab].status = str;} void clearCustomStatus() {tabs[cur_tab].status.clear();} - void clearVariables(bool clearScreen = true) {if (clearScreen && isRunning()) {toUpperLeft(); clearScreenLower();} vars().clear();} + EVENT_HANDLER0(PIConsole, void, clearVariables) {clearVariables(true);} + EVENT_HANDLER1(PIConsole, void, clearVariables, bool, clearScreen) {if (clearScreen && isRunning()) {toUpperLeft(); clearScreenLower();} vars().clear();} - inline void waitForFinish() {WAIT_FOR_EXIT} - inline void start(bool wait = false) {PIThread::start(40); if (wait) waitForFinish();} - void stop(bool clear = false); + EVENT_HANDLER0(PIConsole, void, waitForFinish) {WAIT_FOR_EXIT} + EVENT_HANDLER0(PIConsole, void, start) {start(false);} + EVENT_HANDLER1(PIConsole, void, start, bool, wait) {PIThread::start(40); if (wait) waitForFinish();} + EVENT_HANDLER0(PIConsole, void, stop) {stop(false);} + EVENT_HANDLER1(PIConsole, void, stop, bool, clear); PIString fstr(PIFlags f); - inline void enableExitCapture(char key = 'Q') {listener->enableExitCapture(key);} - inline void disableExitCapture() {listener->disableExitCapture();} - inline bool exitCaptured() const {return listener->exitCaptured();} - inline char exitKey() const {return listener->exitKey();} + void enableExitCapture(char key = 'Q') {listener->enableExitCapture(key);} + void disableExitCapture() {listener->disableExitCapture();} + bool exitCaptured() const {return listener->exitCaptured();} + char exitKey() const {return listener->exitKey();} private: void begin(); @@ -103,32 +109,32 @@ private: void fillLabels(); #ifdef WINDOWS - inline void getWinCurCoord() {GetConsoleScreenBufferInfo(hOut, &csbi); ccoord = csbi.dwCursorPosition;} - inline COORD & getWinCoord(int dx = 0, int dy = 0) {getWinCurCoord(); ccoord.X += dx; ccoord.Y += dy; return ccoord;} - inline void toUpperLeft() {SetConsoleCursorPosition(hOut, ulcoord);} - inline void moveRight(int n = 1) {SetConsoleCursorPosition(hOut, getWinCoord(n));} - inline void moveLeft(int n = 1) {SetConsoleCursorPosition(hOut, getWinCoord(-n));} - inline void moveTo(int x = 0, int y = 0) {ccoord.X = x; ccoord.Y = y; SetConsoleCursorPosition(hOut, ccoord);} - inline void clearScreen() {FillConsoleOutputAttribute(hOut, dattr, width * (height + 1), ulcoord, &written); - FillConsoleOutputCharacter(hOut, ' ', width * (height + 1), ulcoord, &written);} - inline void clearScreenLower() {getWinCurCoord(); FillConsoleOutputAttribute(hOut, dattr, width * height - width * ccoord.Y + ccoord.X, ccoord, &written); - FillConsoleOutputCharacter(hOut, ' ', width * height - width * ccoord.Y + ccoord.X, ccoord, &written);} - inline void clearLine() {getWinCurCoord(); FillConsoleOutputAttribute(hOut, dattr, width - ccoord.X, ccoord, &written); - FillConsoleOutputCharacter(hOut, ' ', width - ccoord.X, ccoord, &written);} - inline void newLine() {getWinCurCoord(); ccoord.X = 0; ccoord.Y++; SetConsoleCursorPosition(hOut, ccoord);} - inline void hideCursor() {curinfo.bVisible = false; SetConsoleCursorInfo(hOut, &curinfo);} - inline void showCursor() {curinfo.bVisible = true; SetConsoleCursorInfo(hOut, &curinfo);} + void getWinCurCoord() {GetConsoleScreenBufferInfo(hOut, &csbi); ccoord = csbi.dwCursorPosition;} + COORD & getWinCoord(int dx = 0, int dy = 0) {getWinCurCoord(); ccoord.X += dx; ccoord.Y += dy; return ccoord;} + void toUpperLeft() {SetConsoleCursorPosition(hOut, ulcoord);} + void moveRight(int n = 1) {SetConsoleCursorPosition(hOut, getWinCoord(n));} + void moveLeft(int n = 1) {SetConsoleCursorPosition(hOut, getWinCoord(-n));} + void moveTo(int x = 0, int y = 0) {ccoord.X = x; ccoord.Y = y; SetConsoleCursorPosition(hOut, ccoord);} + void clearScreen() {FillConsoleOutputAttribute(hOut, dattr, width * (height + 1), ulcoord, &written); + FillConsoleOutputCharacter(hOut, ' ', width * (height + 1), ulcoord, &written);} + void clearScreenLower() {getWinCurCoord(); FillConsoleOutputAttribute(hOut, dattr, width * height - width * ccoord.Y + ccoord.X, ccoord, &written); + FillConsoleOutputCharacter(hOut, ' ', width * height - width * ccoord.Y + ccoord.X, ccoord, &written);} + void clearLine() {getWinCurCoord(); FillConsoleOutputAttribute(hOut, dattr, width - ccoord.X, ccoord, &written); + FillConsoleOutputCharacter(hOut, ' ', width - ccoord.X, ccoord, &written);} + void newLine() {getWinCurCoord(); ccoord.X = 0; ccoord.Y++; SetConsoleCursorPosition(hOut, ccoord);} + void hideCursor() {curinfo.bVisible = false; SetConsoleCursorInfo(hOut, &curinfo);} + void showCursor() {curinfo.bVisible = true; SetConsoleCursorInfo(hOut, &curinfo);} #else - inline void toUpperLeft() {printf("\e[H");} - inline void moveRight(int n = 1) {if (n > 0) printf("\e[%dC", n);} - inline void moveLeft(int n = 1) {if (n > 0) printf("\e[%dD", n);} - inline void moveTo(int x = 0, int y = 0) {printf("\e[%d;%dH", y, x);} - inline void clearScreen() {printf("\e[H\e[J");} - inline void clearScreenLower() {printf("\e[J");} - inline void clearLine() {printf("\e[K");} - inline void newLine() {printf("\eE");} - inline void hideCursor() {printf("\e[?25l");} - inline void showCursor() {printf("\e[?25h");} + void toUpperLeft() {printf("\e[H");} + void moveRight(int n = 1) {if (n > 0) printf("\e[%dC", n);} + void moveLeft(int n = 1) {if (n > 0) printf("\e[%dD", n);} + void moveTo(int x = 0, int y = 0) {printf("\e[%d;%dH", y, x);} + void clearScreen() {printf("\e[H\e[J");} + void clearScreenLower() {printf("\e[J");} + void clearLine() {printf("\e[K");} + void newLine() {printf("\eE");} + void hideCursor() {printf("\e[?25l");} + void showCursor() {printf("\e[?25h");} #endif void status(); void checkColumn(uint col) {if (vars().size() < col) {vars().resize(col);}} @@ -188,9 +194,10 @@ private: char key; Tab() {;} Tab(PIString n, char k) {name = n; key = k;} + ~Tab() {;} }; - inline PIVector > & vars() {return tabs[cur_tab].variables;} + PIVector > & vars() {return tabs[cur_tab].variables;} inline int couts(const string v); inline int couts(const char * v); inline int couts(const bool v); diff --git a/picontainers.h b/picontainers.h index 1dd389b7..dbadbba1 100644 --- a/picontainers.h +++ b/picontainers.h @@ -123,12 +123,12 @@ public: void operator &=(const PIFlags & f) {flags = flags & f.flags;} void operator &=(const Enum & e) {flags = flags & e;} void operator &=(const int i) {flags = flags & i;} - PIFlags & operator |(PIFlags f) const {PIFlags tf(flags | f.flags); return tf;} - PIFlags & operator |(Enum e) const {PIFlags tf(flags | e); return tf;} - PIFlags & operator |(int i) const {PIFlags tf(flags | i); return tf;} - PIFlags & operator &(PIFlags f) const {PIFlags tf(flags & f.flags); return tf;} - PIFlags & operator &(Enum e) const {PIFlags tf(flags & e); return tf;} - PIFlags & operator &(int i) const {PIFlags tf(flags & i); return tf;} + PIFlags operator |(PIFlags f) const {PIFlags tf(flags | f.flags); return tf;} + PIFlags operator |(Enum e) const {PIFlags tf(flags | e); return tf;} + PIFlags operator |(int i) const {PIFlags tf(flags | i); return tf;} + PIFlags operator &(PIFlags f) const {PIFlags tf(flags & f.flags); return tf;} + PIFlags operator &(Enum e) const {PIFlags tf(flags & e); return tf;} + PIFlags operator &(int i) const {PIFlags tf(flags & i); return tf;} bool operator [](Enum e) {return (flags & e) == e;} operator int() const {return flags;} private: @@ -140,12 +140,13 @@ class PIVector: public vector { typedef PIVector _CVector; typedef vector _stlc; public: - PIVector() {;} - PIVector(const Type & value) {_stlc::push_back(value);} - PIVector(const Type & v0, const Type & v1) {_stlc::push_back(v0); _stlc::push_back(v1);} - PIVector(const Type & v0, const Type & v1, const Type & v2) {_stlc::push_back(v0); _stlc::push_back(v1); _stlc::push_back(v2);} - PIVector(const Type & v0, const Type & v1, const Type & v2, const Type & v3) {_stlc::push_back(v0); _stlc::push_back(v1); _stlc::push_back(v2); _stlc::push_back(v3);} - PIVector(uint size, const Type & value = Type()) {_stlc::resize(size, value);} + PIVector() {piMonitor.containers++;} + PIVector(const Type & value) {piMonitor.containers++; _stlc::push_back(value);} + PIVector(const Type & v0, const Type & v1) {piMonitor.containers++; _stlc::push_back(v0); _stlc::push_back(v1);} + PIVector(const Type & v0, const Type & v1, const Type & v2) {piMonitor.containers++; _stlc::push_back(v0); _stlc::push_back(v1); _stlc::push_back(v2);} + PIVector(const Type & v0, const Type & v1, const Type & v2, const Type & v3) {piMonitor.containers++; _stlc::push_back(v0); _stlc::push_back(v1); _stlc::push_back(v2); _stlc::push_back(v3);} + PIVector(uint size, const Type & value = Type()) {piMonitor.containers++; _stlc::resize(size, value);} + ~PIVector() {piMonitor.containers--;} const Type & at(uint index) const {return (*this)[index];} Type & at(uint index) {return (*this)[index];} const Type * data(uint index = 0) const {return &(*this)[index];} @@ -161,6 +162,8 @@ public: _CVector & insert(uint pos, const Type & t) {_stlc::insert(_stlc::begin() + pos, t); return *this;} _CVector & operator <<(const Type & t) {_stlc::push_back(t); return *this;} _CVector & operator <<(const _CVector & t) {for (typename _stlc::iterator i = t.begin(); i != t.end(); i++) _stlc::push_back(*i); return *this;} + bool operator ==(const _CVector & t) {for (uint i = 0; i < _stlc::size(); ++i) if (t[i] != at(i)) return false; return true;} + bool operator !=(const _CVector & t) {for (uint i = 0; i < _stlc::size(); ++i) if (t[i] != at(i)) return true; return false;} bool contain(const Type & v) const {for (uint i = 0; i < _stlc::size(); ++i) if (v == at(i)) return true; return false;} }; @@ -172,12 +175,13 @@ class PIList: public list { typedef PIList _CList; typedef list _stlc; public: - PIList() {;} - PIList(const Type & value) {_stlc::resize(1, value);} - PIList(const Type & v0, const Type & v1) {_stlc::push_back(v0); _stlc::push_back(v1);} - PIList(const Type & v0, const Type & v1, const Type & v2) {_stlc::push_back(v0); _stlc::push_back(v1); _stlc::push_back(v2);} - PIList(const Type & v0, const Type & v1, const Type & v2, const Type & v3) {_stlc::push_back(v0); _stlc::push_back(v1); _stlc::push_back(v2); _stlc::push_back(v3);} - PIList(uint size, const Type & value = Type()) {_stlc::resize(size, value);} + PIList() {piMonitor.containers++;} + PIList(const Type & value) {piMonitor.containers++; _stlc::resize(1, value);} + PIList(const Type & v0, const Type & v1) {piMonitor.containers++; _stlc::push_back(v0); _stlc::push_back(v1);} + PIList(const Type & v0, const Type & v1, const Type & v2) {piMonitor.containers++; _stlc::push_back(v0); _stlc::push_back(v1); _stlc::push_back(v2);} + PIList(const Type & v0, const Type & v1, const Type & v2, const Type & v3) {piMonitor.containers++; _stlc::push_back(v0); _stlc::push_back(v1); _stlc::push_back(v2); _stlc::push_back(v3);} + PIList(uint size, const Type & value = Type()) {piMonitor.containers++; _stlc::resize(size, value);} + ~PIList() {piMonitor.containers--;} Type & operator [](uint index) {return (*this)[index];} Type & operator [](uint index) const {return (*this)[index];} const Type * data(uint index = 0) const {return &(*this)[index];} @@ -197,11 +201,12 @@ class PISet: public set { typedef PISet _CSet; typedef set _stlc; public: - PISet() {;} - PISet(const Type & value) {_stlc::resize(1, value);} - PISet(const Type & v0, const Type & v1) {_stlc::insert(v0); _stlc::insert(v1);} - PISet(const Type & v0, const Type & v1, const Type & v2) {_stlc::insert(v0); _stlc::insert(v1); _stlc::insert(v2);} - PISet(const Type & v0, const Type & v1, const Type & v2, const Type & v3) {_stlc::insert(v0); _stlc::insert(v1); _stlc::insert(v2); _stlc::insert(v3);} + PISet() {piMonitor.containers++;} + PISet(const Type & value) {piMonitor.containers++; _stlc::resize(1, value);} + PISet(const Type & v0, const Type & v1) {piMonitor.containers++; _stlc::insert(v0); _stlc::insert(v1);} + PISet(const Type & v0, const Type & v1, const Type & v2) {piMonitor.containers++; _stlc::insert(v0); _stlc::insert(v1); _stlc::insert(v2);} + PISet(const Type & v0, const Type & v1, const Type & v2, const Type & v3) {piMonitor.containers++; _stlc::insert(v0); _stlc::insert(v1); _stlc::insert(v2); _stlc::insert(v3);} + ~PISet() {piMonitor.containers--;} int size_s() const {return static_cast(_stlc::size());} bool isEmpty() const {return _stlc::empty();} _CSet & remove(uint num) {_stlc::erase(_stlc::begin() + num); return *this;} @@ -232,11 +237,12 @@ class PIDeque: public deque { typedef PIDeque _CDeque; typedef deque _stlc; public: - PIDeque() {;} - PIDeque(const Type & value) {_stlc::resize(1, value);} - PIDeque(const Type & v0, const Type & v1) {_stlc::push_back(v0); _stlc::push_back(v1);} - PIDeque(const Type & v0, const Type & v1, const Type & v2) {_stlc::push_back(v0); _stlc::push_back(v1); _stlc::push_back(v2);} - PIDeque(const Type & v0, const Type & v1, const Type & v2, const Type & v3) {_stlc::push_back(v0); _stlc::push_back(v1); _stlc::push_back(v2); _stlc::push_back(v3);} + PIDeque() {piMonitor.containers++;} + PIDeque(const Type & value) {piMonitor.containers++; _stlc::resize(1, value);} + PIDeque(const Type & v0, const Type & v1) {piMonitor.containers++; _stlc::push_back(v0); _stlc::push_back(v1);} + PIDeque(const Type & v0, const Type & v1, const Type & v2) {piMonitor.containers++; _stlc::push_back(v0); _stlc::push_back(v1); _stlc::push_back(v2);} + PIDeque(const Type & v0, const Type & v1, const Type & v2, const Type & v3) {piMonitor.containers++; _stlc::push_back(v0); _stlc::push_back(v1); _stlc::push_back(v2); _stlc::push_back(v3);} + ~PIDeque() {piMonitor.containers--;} int size_s() const {return static_cast(_stlc::size());} bool isEmpty() const {return _stlc::empty();} _CDeque & operator <<(const Type & t) {_CDeque::push_back(t); return *this;} @@ -279,9 +285,9 @@ class PIHash: public PISet > { public: PIHash() {;} PIHash(const Type & value, const Key & key) {insert(value, key);} - _CHash & insert(const Type & value, const Key & key) {_CSet::insert(PIPair(key, value));} - Type value(Key key) {for (typename _CHash::iterator i = _CHash::begin(); i != _CHash::end(); i++) if ((*i).first == key) return (*i).second; return Key();} - Type operator[](Key key) {return value(key);} + _CHash & insert(const Type & value, const Key & key) {_CSet::insert(PIPair(key, value)); return *this;} + Type value(Key key) const {for (typename _CHash::iterator i = _CHash::begin(); i != _CHash::end(); i++) if ((*i).first == key) return (*i).second; return Type();} + Type operator[](Key key) const {return value(key);} }; #endif // PICONTAINERS_H diff --git a/piethernet.cpp b/piethernet.cpp index 490ed38d..a13de62c 100644 --- a/piethernet.cpp +++ b/piethernet.cpp @@ -2,6 +2,7 @@ PIEthernet::PIEthernet(PIString ip, int port, void * data_, EthernetFunc slot): PIThread() { + piMonitor.ethernets++; setPriority(piHigh); data = data_; ip_ = ip_s = ip; @@ -19,6 +20,7 @@ PIEthernet::PIEthernet(PIString ip, int port, void * data_, EthernetFunc slot): PIEthernet::~PIEthernet() { + piMonitor.ethernets--; terminate(); #ifdef WINDOWS WSACleanup(); @@ -73,13 +75,13 @@ void PIEthernet::begin() { void PIEthernet::run() { -#ifdef WINDOWS +/*#ifdef WINDOWS int addr_len = sizeof(sockaddr); #else socklen_t addr_len = sizeof(sockaddr_storage); -#endif +#endif*/ //cout << "[PIEthernet] reading from " << &addr_ << endl; - readed = recvfrom(sock, buffer_, BUFFER_SIZE, 0, (sockaddr * )&addr_, &addr_len); + readed = recv(sock, buffer_, BUFFER_SIZE, 0/*, (sockaddr * )&addr_, &addr_len*/); //cout << WSAGetLastError() << endl; if (readed < 0) { cout << "[PIEthernet] Error while reading, " << errorString() << endl; diff --git a/piethernet.h b/piethernet.h index d0e12f7a..6215a361 100644 --- a/piethernet.h +++ b/piethernet.h @@ -40,7 +40,7 @@ public: bool receiverInitialized() const {return sock != -1;} bool senderInitialized() const {return sock_s != -1;} void terminate(); - inline const char * buffer() const {return buffer_;} + const char * buffer() const {return buffer_;} private: void begin(); diff --git a/pievaluator.h b/pievaluator.h index 55ffe9e3..38a32881 100644 --- a/pievaluator.h +++ b/pievaluator.h @@ -60,24 +60,24 @@ public: PIEvaluatorContent(); ~PIEvaluatorContent() {;} - inline void addFunction(const PIString & name, int args = 1) {functions.push_back(PIEvaluatorTypes::Function(name, args, getBaseFunction(name)));} - inline void addVariable(const PIString & name, const complexd & val = 0.) {variables.push_back(PIEvaluatorTypes::Variable(name, val)); sortVariables();} - inline int functionsCount() const {return functions.size();} - inline int variablesCount() const {return variables.size();} - inline int customVariablesCount() const {return variables.size() - cv_count;} - inline int findFunction(const PIString & name) const {for (uint i = 0; i < functions.size(); i++) if (functions[i].identifier == name) return i; return -1;} - inline int findVariable(const PIString & var_name) const {for (uint i = 0; i < variables.size(); i++) if (variables[i].name == var_name) return i; return -1;} - inline PIEvaluatorTypes::Function function(int index) {if (index < 0 || index >= functions.size_s()) return PIEvaluatorTypes::Function(); return functions[index];} - inline PIEvaluatorTypes::Variable variable(int index) {if (index < 0 || index >= variables.size_s()) return PIEvaluatorTypes::Variable(); return variables[index];} - inline PIEvaluatorTypes::Function function(const PIString & name) {return function(findFunction(name));} - inline PIEvaluatorTypes::Variable variable(const PIString & name) {return variable(findVariable(name));} - inline PIEvaluatorTypes::Variable customVariable(int index) {if (index < cv_count || index >= variables.size_s() + cv_count) return PIEvaluatorTypes::Variable(); return variables[index + cv_count];} + void addFunction(const PIString & name, int args = 1) {functions.push_back(PIEvaluatorTypes::Function(name, args, getBaseFunction(name)));} + void addVariable(const PIString & name, const complexd & val = 0.) {variables.push_back(PIEvaluatorTypes::Variable(name, val)); sortVariables();} + int functionsCount() const {return functions.size();} + int variablesCount() const {return variables.size();} + int customVariablesCount() const {return variables.size() - cv_count;} + int findFunction(const PIString & name) const {for (uint i = 0; i < functions.size(); i++) if (functions[i].identifier == name) return i; return -1;} + int findVariable(const PIString & var_name) const {for (uint i = 0; i < variables.size(); i++) if (variables[i].name == var_name) return i; return -1;} + PIEvaluatorTypes::Function function(int index) {if (index < 0 || index >= functions.size_s()) return PIEvaluatorTypes::Function(); return functions[index];} + PIEvaluatorTypes::Variable variable(int index) {if (index < 0 || index >= variables.size_s()) return PIEvaluatorTypes::Variable(); return variables[index];} + PIEvaluatorTypes::Function function(const PIString & name) {return function(findFunction(name));} + PIEvaluatorTypes::Variable variable(const PIString & name) {return variable(findVariable(name));} + PIEvaluatorTypes::Variable customVariable(int index) {if (index < cv_count || index >= variables.size_s() + cv_count) return PIEvaluatorTypes::Variable(); return variables[index + cv_count];} bool setVariableValue(int index, complexd new_value); bool setVariableName(int index, const PIString & new_name); - inline bool setVariableValue(const PIString & var_name, const complexd & new_value) {return setVariableValue(findVariable(var_name), new_value);} - inline bool setVariableName(const PIString & var_name, const PIString & new_name) {return setVariableName(findVariable(var_name), new_name);} - inline void removeVariable(int index) {variables.remove(index);} - inline void removeVariable(const PIString & var_name) {removeVariable(findVariable(var_name));} + bool setVariableValue(const PIString & var_name, const complexd & new_value) {return setVariableValue(findVariable(var_name), new_value);} + bool setVariableName(const PIString & var_name, const PIString & new_name) {return setVariableName(findVariable(var_name), new_name);} + void removeVariable(int index) {variables.remove(index);} + void removeVariable(const PIString & var_name) {removeVariable(findVariable(var_name));} void clearCustomVariables(); void sortVariables(); PIEvaluatorTypes::BaseFunctions getBaseFunction(const PIString & name); @@ -96,17 +96,17 @@ public: ~PIEvaluator() {;} bool check(const PIString & string); - inline int setVariable(const PIString & name, complexd value = 0.) {if (content.findVariable(name) < 0) content.addVariable(name, value); else content.setVariableValue(name, value); return content.findVariable(name);} - inline void setVariable(int index, complexd value = 0.) {if (index >= 0 && index < content.variablesCount()) content.setVariableValue(index, value);} - inline void setCustomVariableValue(int index, complexd value = 0.) {content.variables[index + content.cv_count].value = value;} + int setVariable(const PIString & name, complexd value = 0.) {if (content.findVariable(name) < 0) content.addVariable(name, value); else content.setVariableValue(name, value); return content.findVariable(name);} + void setVariable(int index, complexd value = 0.) {if (index >= 0 && index < content.variablesCount()) content.setVariableValue(index, value);} + void setCustomVariableValue(int index, complexd value = 0.) {content.variables[index + content.cv_count].value = value;} complexd evaluate(); - inline void removeVariable(const PIString & name) {content.removeVariable(name);} - inline void clearCustomVariables() {content.clearCustomVariables();} - inline int variableIndex(const PIString & name) const {return content.findVariable(name);} - inline const PIStringList & unknownVariables() {return unknownVars;} - inline const PIString & expression() {return currentString;} - inline const PIString & error() {return lastError;} - inline const complexd & lastResult() {return out;} + void removeVariable(const PIString & name) {content.removeVariable(name);} + void clearCustomVariables() {content.clearCustomVariables();} + int variableIndex(const PIString & name) const {return content.findVariable(name);} + const PIStringList & unknownVariables() {return unknownVars;} + const PIString & expression() {return currentString;} + const PIString & error() {return lastError;} + const complexd & lastResult() {return out;} PIEvaluatorContent content; @@ -124,13 +124,13 @@ private: bool fillElements(); bool setSignes(); bool isSign(const PIChar & ch); - inline PIString inverse(const PIString & string) {int len = string.length(); PIString s; for (int i = 0; i < len; i++) s += string[len - i - 1]; return s;} + PIString inverse(const PIString & string) {int len = string.length(); PIString s; for (int i = 0; i < len; i++) s += string[len - i - 1]; return s;} bool check(); bool execInstructions(); PIString inBrackets(const PIString & string); PIString operationChar(const PIEvaluatorTypes::Operation & operation); PIEvaluatorTypes::Operation operationInOrder(const int & index); - inline complexd value(const int & index) {if (index < 0) return tmpvars[-index - 1].value; else return kvars->at(index).value;} + complexd value(const int & index) {if (index < 0) return tmpvars[-index - 1].value; else return kvars->at(index).value;} inline complexd residue(const complexd & f, const complexd & s); inline void execFunction(const PIEvaluatorTypes::Instruction & ci); diff --git a/pifile.cpp b/pifile.cpp index 7116b2cb..ab3fa115 100644 --- a/pifile.cpp +++ b/pifile.cpp @@ -23,18 +23,32 @@ PIString PIFile::readLine() { llong PIFile::readAll(void * data) { - llong cp = pos(), s = size(); + llong cp = pos(), s = size(), i = -1; stream.seekg(0); - stream.read((char * )data, s); + if (s < 0) { + while (!stream.eof()) + stream.read(&(((char*)data)[++i]), 1); + } else + stream.read((char * )data, s); seek(cp); return s; } -PIByteArray PIFile::readAll() { - llong s = size(); - if (s < 0) return PIByteArray(); - PIByteArray a(s); +PIByteArray PIFile::readAll(bool forceRead) { + llong cp = pos(), s = size(); + char c; + PIByteArray a; + if (s < 0) { + if (!forceRead) return a; + while (!stream.eof()) { + stream.read(&c, 1); + a.push_back(c); + } + seek(cp); + return a; + } + a.resize(s); s = readAll(a.data()); if (s >= 0) a.resize(s); return a; @@ -47,6 +61,7 @@ llong PIFile::size() { stream.seekg(0, fstream::end); s = stream.tellg(); stream.seekg(cp, fstream::beg); + stream.clear(); return s; } diff --git a/pifile.h b/pifile.h index 903ebb1a..1b600772 100644 --- a/pifile.h +++ b/pifile.h @@ -1,41 +1,42 @@ #ifndef PIFILE_H #define PIFILE_H -#include "pistring.h" +#include "piobject.h" #include using std::fstream; -class PIFile +class PIFile: public PIObject { public: - PIFile() {;} + PIFile(): PIObject() {;} - enum Mode {Read = fstream::in, Write = fstream::out, Truncate = fstream::trunc, New = fstream::app}; + enum Mode {Read = fstream::in, Write = fstream::out, Truncate = fstream::trunc, New = fstream::app, ReadWrite = Read | Write}; - PIFile(const PIString & path, PIFlags mode = Read | Write) {open(path, mode);} - PIFile(const PIFile & file) {cpath = file.cpath; cmode = file.cmode;} + PIFile(const PIString & path, PIFlags mode = ReadWrite): PIObject(path) {open(path, mode);} + PIFile(const PIFile & file): PIObject(file.cpath) {cpath = file.cpath; cmode = file.cmode;} ~PIFile() {if (isOpened()) close();} PIFile & operator =(const PIFile & f) {cpath = f.cpath; cmode = f.cmode; return *this;} - bool open(const PIString & path, PIFlags mode); - bool open(PIFlags mode) {return open(cpath, mode);} - bool open(const PIString & path) {return open(path, cmode);} - bool open() {return open(cpath, cmode);} - void close() {stream.close();} - void clear() {string st = cpath.stdString(); close(); stream.open(st.c_str(), fstream::trunc | fstream::binary | (fstream::openmode)(int)cmode);} + EVENT_HANDLER2(PIFile, bool, open, const PIString & , path, PIFlags, mode); + EVENT_HANDLER1(PIFile, bool, open, PIFlags, mode) {return open(cpath, mode);} + EVENT_HANDLER1(PIFile, bool, open, const PIString & , path) {return open(path, cmode);} + EVENT_HANDLER0(PIFile, bool, open) {return open(cpath, cmode);} + EVENT_HANDLER0(PIFile, void, close) {stream.close();} + EVENT_HANDLER0(PIFile, void, clear) {string st = cpath.stdString(); close(); stream.open(st.c_str(), fstream::trunc | fstream::binary | (fstream::openmode)(int)cmode);} void seek(llong position) {stream.clear(); stream.seekg(position); stream.seekp(position);} void seekToBegin() {stream.clear(); stream.seekg(0, fstream::beg); stream.seekp(0, fstream::beg);} void seekToEnd() {stream.clear(); stream.seekg(0, fstream::end); stream.seekp(0, fstream::end);} void seekToLine(llong line) {stream.clear(); seekToBegin(); piForTimes (line) readLine();} // line 0 - begin of file - void resize(llong new_size, char fill = 0); + EVENT_HANDLER1(PIFile, void, resize, llong, new_size) {resize(new_size, 0);} + EVENT_HANDLER2(PIFile, void, resize, llong, new_size, char, fill); void fill(char c) {stream.fill(c);} - void flush() {stream.flush();} + EVENT_HANDLER0(PIFile, void, flush) {stream.flush();} PIString readLine(); llong readAll(void * data); - PIByteArray readAll(); - void remove() {if (isOpened()) close(); std::remove(cpath.data());} + PIByteArray readAll(bool forceRead = false); + EVENT_HANDLER0(PIFile, void, remove) {if (isOpened()) close(); std::remove(cpath.data());} PIString path() const {return cpath;} void setPath(const PIString & path) {cpath = path;} @@ -86,7 +87,9 @@ public: PIFile & operator >>(float & v) {stream >> v; return *this;} PIFile & operator >>(double & v) {stream >> v; return *this;} - static PIFile openTemporary(PIFlags mode = PIFile::Read | PIFile::Write); + static PIFile openTemporary(PIFlags mode = PIFile::ReadWrite); + static bool isExists(const PIString & path) {return std::ifstream(path.stdString().c_str()).good();} + static bool remove(const PIString & path) {return std::remove(path.stdString().c_str()) == 0;} private: fstream stream; diff --git a/piincludes.h b/piincludes.h index 10f4f0d9..85e4ecb0 100644 --- a/piincludes.h +++ b/piincludes.h @@ -1,7 +1,12 @@ #ifndef PIINCLUDES_H #define PIINCLUDES_H -#if __WIN32__ || __WIN64__ || WIN32 || WIN64 +#define PIP_VERSION 0x000100 +#define PIP_VERSION_MAJOR (PIP_VERSION & 0xFF0000) >> 16 +#define PIP_VERSION_MINOR (PIP_VERSION & 0xFF00) >> 8 +#define PIP_VERSION_REVISION PIP_VERSION & 0xFF + +#if WIN32 || WIN64 || _WIN32 || _WIN64 || __WIN32__ || __WIN64__ # define WINDOWS #endif #if __QNX__ || __QNXNTO__ @@ -28,17 +33,17 @@ #include #ifdef CC_GCC -#include +# include #endif #include #include #ifndef QNX -#include -#include -#include +# include +# include +# include #else -#include -#include +# include +# include #endif #include #include @@ -56,10 +61,13 @@ #include #include #ifdef WINDOWS -#include -#include -#include +# include +# include +# include #endif +#include "pimonitor.h" + +extern PIMonitor piMonitor; #define FOREVER for (;;) #define FOREVER_WAIT FOREVER msleep(1); @@ -94,9 +102,9 @@ typedef std::basic_string wstring; static bool isPIInit = false; -class piInit { +class PIInit { public: - piInit() { + PIInit() { if (isPIInit) return; isPIInit = true; #ifdef LINUX @@ -109,15 +117,14 @@ public: setlocale(LC_ALL, ""); #endif } - ~piInit() { + ~PIInit() { //if (currentLocale_t != 0) freelocale(currentLocale_t); } }; -static piInit __pi_init; +static PIInit piInit; static lconv * currentLocale = std::localeconv(); - #ifdef CC_VC inline string errorString() {char buff[1024]; strerror_s(buff, 1024, GetLastError()); return string(buff);} #else @@ -189,4 +196,6 @@ inline string dtos(const double num) { #endif return string(ch); }; +inline string PIPVersion() {return itos(PIP_VERSION_MAJOR) + "." + itos(PIP_VERSION_MINOR) + "." + itos(PIP_VERSION_REVISION);} + #endif // PIINCLUDES_H diff --git a/pimath.h b/pimath.h index c62d956e..32d3fad7 100644 --- a/pimath.h +++ b/pimath.h @@ -35,6 +35,9 @@ const double rad2deg = 45. / atan(1.); inline int pow2(const int p) {return 1 << p;} inline double sqr(const double & v) {return v * v;} inline double sinc(const double & v) {double t = M_PI * v; return sin(t) / t;} +inline complexd round(const complexd & c) {return complexd(round(c.real()), round(c.imag()));} +inline complexd floor(const complexd & c) {return complexd(floor(c.real()), floor(c.imag()));} +inline complexd ceil(const complexd & c) {return complexd(ceil(c.real()), ceil(c.imag()));} inline complexd atanc(const complexd & c) {return -complexd(-0.5, 1.) * log((complexd_1 + complexd_i * c) / (complexd_1 - complexd_i * c));} inline complexd asinc(const complexd & c) {return -complexd_i * log(complexd_i * c + sqrt(complexd_1 - c * c));} inline complexd acosc(const complexd & c) {return -complexd_i * log(c + complexd_i * sqrt(complexd_1 - c * c));} @@ -68,58 +71,58 @@ public: PIMathVectorT(const PIVector & val) {resize(Size); PIMV_FOR(i, 0) c[i] = val[i];} PIMathVectorT(const _CVector & st, const _CVector & fn) {resize(Size); set(st, fn);} - inline uint size() const {return Size;} - inline _CVector & fill(const Type & v) {PIMV_FOR(i, 0) c[i] = v; return *this;} - inline _CVector & set(Type fval, ...) {c[0] = fval; va_list vl; va_start(vl, fval); PIMV_FOR(i, 1) c[i] = va_arg(vl, Type); va_end(vl); return *this;} - inline _CVector & set(const _CVector & st, const _CVector & fn) {PIMV_FOR(i, 0) c[i] = fn[i] - st[i]; return *this;} - inline _CVector & move(const Type & v) {PIMV_FOR(i, 0) c[i] += v; return *this;} - inline _CVector & move(const _CVector & v) {PIMV_FOR(i, 0) c[i] += v[i]; return *this;} - inline _CVector & move(Type fval, ...) {c[0] += fval; va_list vl; va_start(vl, fval); PIMV_FOR(i, 1) c[i] += va_arg(vl, Type); va_end(vl); return *this;} - inline Type lengthSqr() const {Type tv(0); PIMV_FOR(i, 0) tv += (c[i] * c[i]); return tv;} - inline Type length() const {return sqrt(lengthSqr());} - inline Type manhattanLength() const {Type tv(0); PIMV_FOR(i, 0) tv += fabs(c[i]); return tv;} - inline Type angleCos(const _CVector & v) const {Type tv = v.length() * length(); return (tv == Type(0) ? Type(0) : ((*this) ^ v) / tv);} - inline Type angleSin(const _CVector & v) const {Type tv = angleCos(v); return sqrt(Type(1) - tv * tv);} - inline Type angleRad(const _CVector & v) const {return acos(angleCos(v));} - inline Type angleDeg(const _CVector & v) const {return acos(angleCos(v)) * rad2deg;} - inline _CVector projection(const _CVector & v) {Type tv = v.length(); return (tv == Type(0) ? _CVector() : v * (((*this) ^ v) / tv));} - inline _CVector & normalize() {Type tv = length(); if (tv == Type(1)) return *this; PIMV_FOR(i, 0) c[i] /= tv; return *this;} - inline _CVector normalized() {_CVector tv(*this); tv.normalize(); return tv;} - inline bool isNull() const {PIMV_FOR(i, 0) if (c[i] != Type(0)) return false; return true;} - inline bool isOrtho(const _CVector & v) const {return ((*this) ^ v) == Type(0);} + uint size() const {return Size;} + _CVector & fill(const Type & v) {PIMV_FOR(i, 0) c[i] = v; return *this;} + _CVector & set(Type fval, ...) {c[0] = fval; va_list vl; va_start(vl, fval); PIMV_FOR(i, 1) c[i] = va_arg(vl, Type); va_end(vl); return *this;} + _CVector & set(const _CVector & st, const _CVector & fn) {PIMV_FOR(i, 0) c[i] = fn[i] - st[i]; return *this;} + _CVector & move(const Type & v) {PIMV_FOR(i, 0) c[i] += v; return *this;} + _CVector & move(const _CVector & v) {PIMV_FOR(i, 0) c[i] += v[i]; return *this;} + _CVector & move(Type fval, ...) {c[0] += fval; va_list vl; va_start(vl, fval); PIMV_FOR(i, 1) c[i] += va_arg(vl, Type); va_end(vl); return *this;} + Type lengthSqr() const {Type tv(0); PIMV_FOR(i, 0) tv += (c[i] * c[i]); return tv;} + Type length() const {return sqrt(lengthSqr());} + Type manhattanLength() const {Type tv(0); PIMV_FOR(i, 0) tv += fabs(c[i]); return tv;} + Type angleCos(const _CVector & v) const {Type tv = v.length() * length(); return (tv == Type(0) ? Type(0) : ((*this) ^ v) / tv);} + Type angleSin(const _CVector & v) const {Type tv = angleCos(v); return sqrt(Type(1) - tv * tv);} + Type angleRad(const _CVector & v) const {return acos(angleCos(v));} + Type angleDeg(const _CVector & v) const {return acos(angleCos(v)) * rad2deg;} + _CVector projection(const _CVector & v) {Type tv = v.length(); return (tv == Type(0) ? _CVector() : v * (((*this) ^ v) / tv));} + _CVector & normalize() {Type tv = length(); if (tv == Type(1)) return *this; PIMV_FOR(i, 0) c[i] /= tv; return *this;} + _CVector normalized() {_CVector tv(*this); tv.normalize(); return tv;} + bool isNull() const {PIMV_FOR(i, 0) if (c[i] != Type(0)) return false; return true;} + bool isOrtho(const _CVector & v) const {return ((*this) ^ v) == Type(0);} - inline Type & at(uint index) {return c[index];} - inline Type at(uint index) const {return c[index];} - inline Type & operator [](uint index) {return c[index];} - inline Type operator [](uint index) const {return c[index];} - inline void operator =(const _CVector & v) {c = v.c;} - inline bool operator ==(const _CVector & v) const {PIMV_FOR(i, 0) if (c[i] != v[i]) return false; return true;} - inline bool operator !=(const _CVector & v) const {return !(*this == c);} - inline void operator +=(const _CVector & v) {PIMV_FOR(i, 0) c[i] += v[i];} - inline void operator -=(const _CVector & v) {PIMV_FOR(i, 0) c[i] -= v[i];} - inline void operator *=(const Type & v) {PIMV_FOR(i, 0) c[i] *= v;} - inline void operator *=(const _CVector & v) {PIMV_FOR(i, 0) c[i] *= v[i];} - inline void operator /=(const Type & v) {PIMV_FOR(i, 0) c[i] /= v;} - inline void operator /=(const _CVector & v) {PIMV_FOR(i, 0) c[i] /= v[i];} - inline _CVector operator -() const {_CVector tv; PIMV_FOR(i, 0) tv[i] = -c[i]; return tv;} - inline _CVector operator +(const _CVector & v) const {_CVector tv = _CVector(*this); PIMV_FOR(i, 0) tv[i] += v[i]; return tv;} - inline _CVector operator -(const _CVector & v) const {_CVector tv = _CVector(*this); PIMV_FOR(i, 0) tv[i] -= v[i]; return tv;} - inline _CVector operator *(const Type & v) const {_CVector tv = _CVector(*this); PIMV_FOR(i, 0) tv[i] *= v; return tv;} - inline _CVector operator /(const Type & v) const {_CVector tv = _CVector(*this); PIMV_FOR(i, 0) tv[i] /= v; return tv;} - inline _CVector operator *(const _CVector & v) const {if (Size > 3) return _CVector(); _CVector tv; tv.fill(Type(1)); tv[0] = c[1]*v[2] - v[1]*c[2]; tv[1] = v[0]*c[2] - c[0]*v[2]; tv[2] = c[0]*v[1] - v[0]*c[1]; return tv;} - inline Type operator ^(const _CVector & v) const {Type tv(0); PIMV_FOR(i, 0) tv += c[i] * v[i]; return tv;} + Type & at(uint index) {return c[index];} + Type at(uint index) const {return c[index];} + Type & operator [](uint index) {return c[index];} + Type operator [](uint index) const {return c[index];} + void operator =(const _CVector & v) {c = v.c;} + bool operator ==(const _CVector & v) const {PIMV_FOR(i, 0) if (c[i] != v[i]) return false; return true;} + bool operator !=(const _CVector & v) const {return !(*this == c);} + void operator +=(const _CVector & v) {PIMV_FOR(i, 0) c[i] += v[i];} + void operator -=(const _CVector & v) {PIMV_FOR(i, 0) c[i] -= v[i];} + void operator *=(const Type & v) {PIMV_FOR(i, 0) c[i] *= v;} + void operator *=(const _CVector & v) {PIMV_FOR(i, 0) c[i] *= v[i];} + void operator /=(const Type & v) {PIMV_FOR(i, 0) c[i] /= v;} + void operator /=(const _CVector & v) {PIMV_FOR(i, 0) c[i] /= v[i];} + _CVector operator -() const {_CVector tv; PIMV_FOR(i, 0) tv[i] = -c[i]; return tv;} + _CVector operator +(const _CVector & v) const {_CVector tv = _CVector(*this); PIMV_FOR(i, 0) tv[i] += v[i]; return tv;} + _CVector operator -(const _CVector & v) const {_CVector tv = _CVector(*this); PIMV_FOR(i, 0) tv[i] -= v[i]; return tv;} + _CVector operator *(const Type & v) const {_CVector tv = _CVector(*this); PIMV_FOR(i, 0) tv[i] *= v; return tv;} + _CVector operator /(const Type & v) const {_CVector tv = _CVector(*this); PIMV_FOR(i, 0) tv[i] /= v; return tv;} + _CVector operator *(const _CVector & v) const {if (Size > 3) return _CVector(); _CVector tv; tv.fill(Type(1)); tv[0] = c[1]*v[2] - v[1]*c[2]; tv[1] = v[0]*c[2] - c[0]*v[2]; tv[2] = c[0]*v[1] - v[0]*c[1]; return tv;} + Type operator ^(const _CVector & v) const {Type tv(0); PIMV_FOR(i, 0) tv += c[i] * v[i]; return tv;} - inline operator PIMathMatrixT<1, Size, Type>() {return PIMathMatrixT<1, Size, Type>(c);} - inline Type distToLine(const _CVector & lp0, const _CVector & lp1) { + operator PIMathMatrixT<1, Size, Type>() {return PIMathMatrixT<1, Size, Type>(c);} + Type distToLine(const _CVector & lp0, const _CVector & lp1) { _CVector a(lp0, lp1), b(lp0, *this), c(lp1, *this); Type f = fabs(a[0]*b[1] - a[1]*b[0]) / a.length();//, s = b.length() + c.length() - a.length(); return f;} template /// vector {Size, Type} to vector {Size1, Type1} - inline PIMathVectorT turnTo() {PIMathVectorT tv; uint sz = piMin(Size, Size1); for (uint i = 0; i < sz; ++i) tv[i] = c[i]; return tv;} + PIMathVectorT turnTo() {PIMathVectorT tv; uint sz = piMin(Size, Size1); for (uint i = 0; i < sz; ++i) tv[i] = c[i]; return tv;} private: - inline void resize(uint size, const Type & new_value = Type()) {c.resize(size, new_value);} + void resize(uint size, const Type & new_value = Type()) {c.resize(size, new_value);} PIVector c; }; @@ -127,7 +130,7 @@ private: template inline std::ostream & operator <<(std::ostream & s, const PIMathVectorT & v) {s << '{'; PIMV_FOR(i, 0) {s << v[i]; if (i < Size - 1) s << ", ";} s << '}'; return s;} template -inline const bool operator ||(const PIMathVectorT & f, const PIMathVectorT & s) {return (f * s).isNull();} +inline bool operator ||(const PIMathVectorT & f, const PIMathVectorT & s) {return (f * s).isNull();} //template /// vector {Size0, Type0} to vector {Size1, Type1} //inline operator PIMathVectorT(const PIMathVectorT & v) {PIMathVectorT tv; uint sz = piMin(Size0, Size1); for (uint i = 0; i < sz; ++i) tv[i] = v[i]; return tv;} @@ -161,37 +164,37 @@ public: static _CMatrix identity() {_CMatrix tm = _CMatrix(); PIMM_FOR_WB(c, r) tm.m[c][r] = (c == r ? Type(1) : Type(0)); return tm;} - inline uint cols() const {return Cols;} - inline uint rows() const {return Rows;} - inline _CMCol col(uint index) {_CMCol tv; PIMM_FOR_R(i) tv[i] = m[index][i]; return tv;} - inline _CMRow row(uint index) {_CMRow tv; PIMM_FOR_C(i) tv[i] = m[i][index]; return tv;} - inline _CMatrix & setCol(uint index, const _CMCol & v) {PIMM_FOR_R(i) m[index][i] = v[i]; return *this;} - inline _CMatrix & setRow(uint index, const _CMRow & v) {PIMM_FOR_C(i) m[i][index] = v[i]; return *this;} - inline _CMatrix & swapRows(uint r0, uint r1) {Type t; PIMM_FOR_C(i) {t = m[i][r0]; m[i][r0] = m[i][r1]; m[i][r1] = t;} return *this;} - inline _CMatrix & swapCols(uint c0, uint c1) {Type t; PIMM_FOR_R(i) {t = m[c0][i]; m[c0][i] = m[c1][i]; m[c1][i] = t;} return *this;} - inline _CMatrix & fill(const Type & v) {PIMM_FOR_WB(c, r) m[c][r] = v; return *this;} + uint cols() const {return Cols;} + uint rows() const {return Rows;} + _CMCol col(uint index) {_CMCol tv; PIMM_FOR_R(i) tv[i] = m[index][i]; return tv;} + _CMRow row(uint index) {_CMRow tv; PIMM_FOR_C(i) tv[i] = m[i][index]; return tv;} + _CMatrix & setCol(uint index, const _CMCol & v) {PIMM_FOR_R(i) m[index][i] = v[i]; return *this;} + _CMatrix & setRow(uint index, const _CMRow & v) {PIMM_FOR_C(i) m[i][index] = v[i]; return *this;} + _CMatrix & swapRows(uint r0, uint r1) {Type t; PIMM_FOR_C(i) {t = m[i][r0]; m[i][r0] = m[i][r1]; m[i][r1] = t;} return *this;} + _CMatrix & swapCols(uint c0, uint c1) {Type t; PIMM_FOR_R(i) {t = m[c0][i]; m[c0][i] = m[c1][i]; m[c1][i] = t;} return *this;} + _CMatrix & fill(const Type & v) {PIMM_FOR_WB(c, r) m[c][r] = v; return *this;} //inline _CMatrix & set(Type fval, ...) {m[0] = fval; va_list vl; va_start(vl, fval); PIMV_FOR(i, 1) m[i] = va_arg(vl, Type); va_end(vl); return *this;} //inline void normalize() {Type tv = length(); if (tv == Type(1)) return; PIMV_FOR(i, 0) m[i] /= tv;} - inline bool isSquare() const {return cols() == rows();} - inline bool isIdentity() const {PIMM_FOR_WB(c, r) if ((c == r) ? m[c][r] != Type(1) : m[c][r] != Type(0)) return false; return true;} - inline bool isNull() const {PIMM_FOR_WB(c, r) if (m[c][r] != Type(0)) return false; return true;} + bool isSquare() const {return cols() == rows();} + bool isIdentity() const {PIMM_FOR_WB(c, r) if ((c == r) ? m[c][r] != Type(1) : m[c][r] != Type(0)) return false; return true;} + bool isNull() const {PIMM_FOR_WB(c, r) if (m[c][r] != Type(0)) return false; return true;} - inline Type & at(uint col, uint row) {return m[col][row];} - inline Type at(uint col, uint row) const {return m[col][row];} - inline PIVector & operator [](uint col) {return m[col];} - inline PIVector operator [](uint col) const {return m[col];} - inline void operator =(const _CMatrix & sm) {m = sm.m;} - inline bool operator ==(const _CMatrix & sm) const {PIMM_FOR_WB(c, r) if (m[c][r] != sm.m[c][r]) return false; return true;} - inline bool operator !=(const _CMatrix & sm) const {return !(*this == sm);} - inline void operator +=(const _CMatrix & sm) {PIMM_FOR_WB(c, r) m[c][r] += sm.m[c][r];} - inline void operator -=(const _CMatrix & sm) {PIMM_FOR_WB(c, r) m[c][r] -= sm.m[c][r];} - inline void operator *=(const Type & v) {PIMM_FOR_WB(c, r) m[c][r] *= v;} - inline void operator /=(const Type & v) {PIMM_FOR_WB(c, r) m[c][r] /= v;} - inline _CMatrix operator -() {_CMatrix tm; PIMM_FOR_WB(c, r) tm.m[c][r] = -m[c][r]; return tm;} - inline _CMatrix operator +(const _CMatrix & sm) {_CMatrix tm = _CMatrix(*this); PIMM_FOR_WB(c, r) tm.m[c][r] += sm.m[c][r]; return tm;} - inline _CMatrix operator -(const _CMatrix & sm) {_CMatrix tm = _CMatrix(*this); PIMM_FOR_WB(c, r) tm.m[c][r] -= sm.m[c][r]; return tm;} - inline _CMatrix operator *(const Type & v) {_CMatrix tm = _CMatrix(*this); PIMM_FOR_WB(c, r) tm.m[c][r] *= v; return tm;} - inline _CMatrix operator /(const Type & v) {_CMatrix tm = _CMatrix(*this); PIMM_FOR_WB(c, r) tm.m[c][r] /= v; return tm;} + Type & at(uint col, uint row) {return m[col][row];} + Type at(uint col, uint row) const {return m[col][row];} + PIVector & operator [](uint col) {return m[col];} + PIVector operator [](uint col) const {return m[col];} + void operator =(const _CMatrix & sm) {m = sm.m;} + bool operator ==(const _CMatrix & sm) const {PIMM_FOR_WB(c, r) if (m[c][r] != sm.m[c][r]) return false; return true;} + bool operator !=(const _CMatrix & sm) const {return !(*this == sm);} + void operator +=(const _CMatrix & sm) {PIMM_FOR_WB(c, r) m[c][r] += sm.m[c][r];} + void operator -=(const _CMatrix & sm) {PIMM_FOR_WB(c, r) m[c][r] -= sm.m[c][r];} + void operator *=(const Type & v) {PIMM_FOR_WB(c, r) m[c][r] *= v;} + void operator /=(const Type & v) {PIMM_FOR_WB(c, r) m[c][r] /= v;} + _CMatrix operator -() {_CMatrix tm; PIMM_FOR_WB(c, r) tm.m[c][r] = -m[c][r]; return tm;} + _CMatrix operator +(const _CMatrix & sm) {_CMatrix tm = _CMatrix(*this); PIMM_FOR_WB(c, r) tm.m[c][r] += sm.m[c][r]; return tm;} + _CMatrix operator -(const _CMatrix & sm) {_CMatrix tm = _CMatrix(*this); PIMM_FOR_WB(c, r) tm.m[c][r] -= sm.m[c][r]; return tm;} + _CMatrix operator *(const Type & v) {_CMatrix tm = _CMatrix(*this); PIMM_FOR_WB(c, r) tm.m[c][r] *= v; return tm;} + _CMatrix operator /(const Type & v) {_CMatrix tm = _CMatrix(*this); PIMM_FOR_WB(c, r) tm.m[c][r] /= v; return tm;} _CMatrix & toUpperTriangular(bool * ok = 0) { if (Cols != Rows) { @@ -291,11 +294,11 @@ public: m = mtmp.m; return *this; } - inline _CMatrix inverted(bool * ok = 0) {_CMatrix tm(*this); tm.invert(ok); return tm;} - inline _CMatrixI transposed() {_CMatrixI tm; PIMM_FOR_WB(c, r) tm[r][c] = m[c][r]; return tm;} + _CMatrix inverted(bool * ok = 0) {_CMatrix tm(*this); tm.invert(ok); return tm;} + _CMatrixI transposed() {_CMatrixI tm; PIMM_FOR_WB(c, r) tm[r][c] = m[c][r]; return tm;} private: - inline void resize(uint cols, uint rows, const Type & new_value = Type()) {m.resize(cols); PIMM_FOR_C(i) m[i].resize(rows, new_value);} + void resize(uint cols, uint rows, const Type & new_value = Type()) {m.resize(cols); PIMM_FOR_C(i) m[i].resize(rows, new_value);} PIVector > m; }; @@ -367,57 +370,57 @@ public: PIMathVector(const PIVector & val) {resize(val.size); PIMV_FOR(i, 0) c[i] = val[i];} PIMathVector(const _CVector & st, const _CVector & fn) {resize(st.size()); PIMV_FOR(i, 0) c[i] = fn[i] - st[i];} - inline uint size() const {return size_;} - inline _CVector & resize(uint size, const Type & new_value = Type()) {size_ = size; c.resize(size, new_value); return *this;} - inline _CVector resized(uint size, const Type & new_value = Type()) {_CVector tv = _CVector(*this); tv.resize(size, new_value); return tv;} - inline _CVector & fill(const Type & v) {PIMV_FOR(i, 0) c[i] = v; return *this;} - inline _CVector & set(Type fval, ...) {c[0] = fval; va_list vl; va_start(vl, fval); PIMV_FOR(i, 1) c[i] = va_arg(vl, Type); va_end(vl); return *this;} - inline _CVector & move(const Type & v) {PIMV_FOR(i, 0) c[i] += v; return *this;} - inline _CVector & move(const _CVector & v) {PIMV_FOR(i, 0) c[i] += v[i]; return *this;} - inline _CVector & move(Type fval, ...) {c[0] += fval; va_list vl; va_start(vl, fval); PIMV_FOR(i, 1) c[i] += va_arg(vl, Type); va_end(vl); return *this;} - inline _CVector & swap(uint fe, uint se) {piSwap(c[fe], c[se]); return *this;} - inline Type lengthSqr() const {Type tv(0); PIMV_FOR(i, 0) tv += (c[i] * c[i]); return tv;} - inline Type length() const {return sqrt(lengthSqr());} - inline Type manhattanLength() const {Type tv(0); PIMV_FOR(i, 0) tv += fabs(c[i]); return tv;} - inline Type angleCos(const _CVector & v) const {Type tv = v.length() * length(); return (tv == Type(0) ? Type(0) : ((*this) ^ v) / tv);} - inline Type angleSin(const _CVector & v) const {Type tv = angleCos(v); return sqrt(Type(1) - tv * tv);} - inline Type angleRad(const _CVector & v) const {return acos(angleCos(v));} - inline Type angleDeg(const _CVector & v) const {return acos(angleCos(v)) * rad2deg;} - inline _CVector projection(const _CVector & v) {Type tv = v.length(); return (tv == Type(0) ? _CVector() : v * (((*this) ^ v) / tv));} - inline _CVector & normalize() {Type tv = length(); if (tv == Type(1)) return *this; PIMV_FOR(i, 0) c[i] /= tv; return *this;} - inline _CVector normalized() {_CVector tv(*this); tv.normalize(); return tv;} - inline bool isNull() const {PIMV_FOR(i, 0) if (c[i] != Type(0)) return false; return true;} - inline bool isOrtho(const _CVector & v) const {return ((*this) ^ v) == Type(0);} + uint size() const {return size_;} + _CVector & resize(uint size, const Type & new_value = Type()) {size_ = size; c.resize(size, new_value); return *this;} + _CVector resized(uint size, const Type & new_value = Type()) {_CVector tv = _CVector(*this); tv.resize(size, new_value); return tv;} + _CVector & fill(const Type & v) {PIMV_FOR(i, 0) c[i] = v; return *this;} + _CVector & set(Type fval, ...) {c[0] = fval; va_list vl; va_start(vl, fval); PIMV_FOR(i, 1) c[i] = va_arg(vl, Type); va_end(vl); return *this;} + _CVector & move(const Type & v) {PIMV_FOR(i, 0) c[i] += v; return *this;} + _CVector & move(const _CVector & v) {PIMV_FOR(i, 0) c[i] += v[i]; return *this;} + _CVector & move(Type fval, ...) {c[0] += fval; va_list vl; va_start(vl, fval); PIMV_FOR(i, 1) c[i] += va_arg(vl, Type); va_end(vl); return *this;} + _CVector & swap(uint fe, uint se) {piSwap(c[fe], c[se]); return *this;} + Type lengthSqr() const {Type tv(0); PIMV_FOR(i, 0) tv += (c[i] * c[i]); return tv;} + Type length() const {return sqrt(lengthSqr());} + Type manhattanLength() const {Type tv(0); PIMV_FOR(i, 0) tv += fabs(c[i]); return tv;} + Type angleCos(const _CVector & v) const {Type tv = v.length() * length(); return (tv == Type(0) ? Type(0) : ((*this) ^ v) / tv);} + Type angleSin(const _CVector & v) const {Type tv = angleCos(v); return sqrt(Type(1) - tv * tv);} + Type angleRad(const _CVector & v) const {return acos(angleCos(v));} + Type angleDeg(const _CVector & v) const {return acos(angleCos(v)) * rad2deg;} + _CVector projection(const _CVector & v) {Type tv = v.length(); return (tv == Type(0) ? _CVector() : v * (((*this) ^ v) / tv));} + _CVector & normalize() {Type tv = length(); if (tv == Type(1)) return *this; PIMV_FOR(i, 0) c[i] /= tv; return *this;} + _CVector normalized() {_CVector tv(*this); tv.normalize(); return tv;} + bool isNull() const {PIMV_FOR(i, 0) if (c[i] != Type(0)) return false; return true;} + bool isOrtho(const _CVector & v) const {return ((*this) ^ v) == Type(0);} - inline Type & at(uint index) {return c[index];} - inline Type at(uint index) const {return c[index];} - inline Type & operator [](uint index) {return c[index];} - inline Type operator [](uint index) const {return c[index];} - inline void operator =(const _CVector & v) {c = v.c;} - inline bool operator ==(const _CVector & v) const {PIMV_FOR(i, 0) if (c[i] != v[i]) return false; return true;} - inline bool operator !=(const _CVector & v) const {return !(*this == c);} - inline void operator +=(const _CVector & v) {PIMV_FOR(i, 0) c[i] += v[i];} - inline void operator -=(const _CVector & v) {PIMV_FOR(i, 0) c[i] -= v[i];} - inline void operator *=(const Type & v) {PIMV_FOR(i, 0) c[i] *= v;} - inline void operator *=(const _CVector & v) {PIMV_FOR(i, 0) c[i] *= v[i];} - inline void operator /=(const Type & v) {PIMV_FOR(i, 0) c[i] /= v;} - inline void operator /=(const _CVector & v) {PIMV_FOR(i, 0) c[i] /= v[i];} - inline _CVector operator -() {_CVector tv; PIMV_FOR(i, 0) tv[i] = -c[i]; return tv;} - inline _CVector operator +(const _CVector & v) {_CVector tv = _CVector(*this); PIMV_FOR(i, 0) tv[i] += v[i]; return tv;} - inline _CVector operator -(const _CVector & v) {_CVector tv = _CVector(*this); PIMV_FOR(i, 0) tv[i] -= v[i]; return tv;} - inline _CVector operator *(const Type & v) {_CVector tv = _CVector(*this); PIMV_FOR(i, 0) tv[i] *= v; return tv;} - inline _CVector operator /(const Type & v) {_CVector tv = _CVector(*this); PIMV_FOR(i, 0) tv[i] /= v; return tv;} - inline _CVector operator *(const _CVector & v) {if (size_ < 3) return _CVector(); _CVector tv; tv.fill(Type(1)); tv[0] = c[1]*v[2] - v[1]*c[2]; tv[1] = v[0]*c[2] - c[0]*v[2]; tv[2] = c[0]*v[1] - v[0]*c[1]; return tv;} - inline Type operator ^(const _CVector & v) const {Type tv(0); PIMV_FOR(i, 0) tv += c[i] * v[i]; return tv;} + Type & at(uint index) {return c[index];} + Type at(uint index) const {return c[index];} + Type & operator [](uint index) {return c[index];} + Type operator [](uint index) const {return c[index];} + void operator =(const _CVector & v) {c = v.c;} + bool operator ==(const _CVector & v) const {PIMV_FOR(i, 0) if (c[i] != v[i]) return false; return true;} + bool operator !=(const _CVector & v) const {return !(*this == c);} + void operator +=(const _CVector & v) {PIMV_FOR(i, 0) c[i] += v[i];} + void operator -=(const _CVector & v) {PIMV_FOR(i, 0) c[i] -= v[i];} + void operator *=(const Type & v) {PIMV_FOR(i, 0) c[i] *= v;} + void operator *=(const _CVector & v) {PIMV_FOR(i, 0) c[i] *= v[i];} + void operator /=(const Type & v) {PIMV_FOR(i, 0) c[i] /= v;} + void operator /=(const _CVector & v) {PIMV_FOR(i, 0) c[i] /= v[i];} + _CVector operator -() {_CVector tv; PIMV_FOR(i, 0) tv[i] = -c[i]; return tv;} + _CVector operator +(const _CVector & v) {_CVector tv = _CVector(*this); PIMV_FOR(i, 0) tv[i] += v[i]; return tv;} + _CVector operator -(const _CVector & v) {_CVector tv = _CVector(*this); PIMV_FOR(i, 0) tv[i] -= v[i]; return tv;} + _CVector operator *(const Type & v) {_CVector tv = _CVector(*this); PIMV_FOR(i, 0) tv[i] *= v; return tv;} + _CVector operator /(const Type & v) {_CVector tv = _CVector(*this); PIMV_FOR(i, 0) tv[i] /= v; return tv;} + _CVector operator *(const _CVector & v) {if (size_ < 3) return _CVector(); _CVector tv; tv.fill(Type(1)); tv[0] = c[1]*v[2] - v[1]*c[2]; tv[1] = v[0]*c[2] - c[0]*v[2]; tv[2] = c[0]*v[1] - v[0]*c[1]; return tv;} + Type operator ^(const _CVector & v) const {Type tv(0); PIMV_FOR(i, 0) tv += c[i] * v[i]; return tv;} //inline operator PIMathMatrix<1, Size, Type>() {return PIMathMatrix<1, Size, Type>(c);} - inline Type distToLine(const _CVector & lp0, const _CVector & lp1) { + Type distToLine(const _CVector & lp0, const _CVector & lp1) { _CVector a(lp0, lp1), b(lp0, *this), c(lp1, *this); Type f = fabs(a[0]*b[1] - a[1]*b[0]) / a.length();//, s = b.length() + c.length() - a.length(); return f;} template - inline PIMathVector turnTo(uint size) {PIMathVector tv; uint sz = piMin(size_, size); for (uint i = 0; i < sz; ++i) tv[i] = c[i]; return tv;} + PIMathVector turnTo(uint size) {PIMathVector tv; uint sz = piMin(size_, size); for (uint i = 0; i < sz; ++i) tv[i] = c[i]; return tv;} private: uint size_; @@ -452,38 +455,38 @@ public: static _CMatrix identity(const uint cols_, const uint rows_) {_CMatrix tm(cols_, rows_); PIMM_FOR_WB(c, r) tm.m[c][r] = (c == r ? Type(1) : Type(0)); return tm;} - inline uint cols() const {return cols_;} - inline uint rows() const {return rows_;} - inline _CMCol col(uint index) {_CMCol tv; PIMM_FOR_R(i) tv[i] = m[index][i]; return tv;} - inline _CMRow row(uint index) {_CMRow tv; PIMM_FOR_C(i) tv[i] = m[i][index]; return tv;} - inline _CMatrix & resize(const uint cols, const uint rows, const Type & new_value = Type()) {cols_ = cols; rows_ = rows; m.resize(cols); PIMM_FOR_C(i) m[i].resize(rows, new_value); return *this;} - inline _CMatrix & setCol(uint index, const _CMCol & v) {PIMM_FOR_R(i) m[index][i] = v[i]; return *this;} - inline _CMatrix & setRow(uint index, const _CMRow & v) {PIMM_FOR_C(i) m[i][index] = v[i]; return *this;} - inline _CMatrix & swapRows(uint r0, uint r1) {Type t; PIMM_FOR_C(i) {t = m[i][r0]; m[i][r0] = m[i][r1]; m[i][r1] = t;} return *this;} - inline _CMatrix & swapCols(uint c0, uint c1) {Type t; PIMM_FOR_R(i) {t = m[c0][i]; m[c0][i] = m[c1][i]; m[c1][i] = t;} return *this;} - inline _CMatrix & fill(const Type & v) {PIMM_FOR_WB(c, r) m[c][r] = v; return *this;} + uint cols() const {return cols_;} + uint rows() const {return rows_;} + _CMCol col(uint index) {_CMCol tv; PIMM_FOR_R(i) tv[i] = m[index][i]; return tv;} + _CMRow row(uint index) {_CMRow tv; PIMM_FOR_C(i) tv[i] = m[i][index]; return tv;} + _CMatrix & resize(const uint cols, const uint rows, const Type & new_value = Type()) {cols_ = cols; rows_ = rows; m.resize(cols); PIMM_FOR_C(i) m[i].resize(rows, new_value); return *this;} + _CMatrix & setCol(uint index, const _CMCol & v) {PIMM_FOR_R(i) m[index][i] = v[i]; return *this;} + _CMatrix & setRow(uint index, const _CMRow & v) {PIMM_FOR_C(i) m[i][index] = v[i]; return *this;} + _CMatrix & swapRows(uint r0, uint r1) {Type t; PIMM_FOR_C(i) {t = m[i][r0]; m[i][r0] = m[i][r1]; m[i][r1] = t;} return *this;} + _CMatrix & swapCols(uint c0, uint c1) {Type t; PIMM_FOR_R(i) {t = m[c0][i]; m[c0][i] = m[c1][i]; m[c1][i] = t;} return *this;} + _CMatrix & fill(const Type & v) {PIMM_FOR_WB(c, r) m[c][r] = v; return *this;} //inline _CMatrix & set(Type fval, ...) {m[0] = fval; va_list vl; va_start(vl, fval); PIMV_FOR(i, 1) m[i] = va_arg(vl, Type); va_end(vl); return *this;} //inline void normalize() {Type tv = length(); if (tv == Type(1)) return; PIMV_FOR(i, 0) m[i] /= tv;} - inline bool isSquare() const {return cols() == rows();} - inline bool isIdentity() const {PIMM_FOR_WB(c, r) if ((c == r) ? m[c][r] != Type(1) : m[c][r] != Type(0)) return false; return true;} - inline bool isNull() const {PIMM_FOR_WB(c, r) if (m[c][r] != Type(0)) return false; return true;} + bool isSquare() const {return cols() == rows();} + bool isIdentity() const {PIMM_FOR_WB(c, r) if ((c == r) ? m[c][r] != Type(1) : m[c][r] != Type(0)) return false; return true;} + bool isNull() const {PIMM_FOR_WB(c, r) if (m[c][r] != Type(0)) return false; return true;} - inline Type & at(uint col, uint row) {return m[col][row];} - inline Type at(uint col, uint row) const {return m[col][row];} - inline PIVector & operator [](uint col) {return m[col];} - inline PIVector operator [](uint col) const {return m[col];} - inline void operator =(const _CMatrix & sm) {m = sm.m;} - inline bool operator ==(const _CMatrix & sm) const {PIMM_FOR_WB(c, r) if (m[c][r] != sm.m[c][r]) return false; return true;} - inline bool operator !=(const _CMatrix & sm) const {return !(*this == sm);} - inline void operator +=(const _CMatrix & sm) {PIMM_FOR_WB(c, r) m[c][r] += sm.m[c][r];} - inline void operator -=(const _CMatrix & sm) {PIMM_FOR_WB(c, r) m[c][r] -= sm.m[c][r];} - inline void operator *=(const Type & v) {PIMM_FOR_WB(c, r) m[c][r] *= v;} - inline void operator /=(const Type & v) {PIMM_FOR_WB(c, r) m[c][r] /= v;} - inline _CMatrix operator -() {_CMatrix tm(*this); PIMM_FOR_WB(c, r) tm.m[c][r] = -m[c][r]; return tm;} - inline _CMatrix operator +(const _CMatrix & sm) {_CMatrix tm(*this); PIMM_FOR_WB(c, r) tm.m[c][r] += sm.m[c][r]; return tm;} - inline _CMatrix operator -(const _CMatrix & sm) {_CMatrix tm(*this); PIMM_FOR_WB(c, r) tm.m[c][r] -= sm.m[c][r]; return tm;} - inline _CMatrix operator *(const Type & v) {_CMatrix tm(*this); PIMM_FOR_WB(c, r) tm.m[c][r] *= v; return tm;} - inline _CMatrix operator /(const Type & v) {_CMatrix tm(*this); PIMM_FOR_WB(c, r) tm.m[c][r] /= v; return tm;} + Type & at(uint col, uint row) {return m[col][row];} + Type at(uint col, uint row) const {return m[col][row];} + PIVector & operator [](uint col) {return m[col];} + PIVector operator [](uint col) const {return m[col];} + void operator =(const _CMatrix & sm) {m = sm.m;} + bool operator ==(const _CMatrix & sm) const {PIMM_FOR_WB(c, r) if (m[c][r] != sm.m[c][r]) return false; return true;} + bool operator !=(const _CMatrix & sm) const {return !(*this == sm);} + void operator +=(const _CMatrix & sm) {PIMM_FOR_WB(c, r) m[c][r] += sm.m[c][r];} + void operator -=(const _CMatrix & sm) {PIMM_FOR_WB(c, r) m[c][r] -= sm.m[c][r];} + void operator *=(const Type & v) {PIMM_FOR_WB(c, r) m[c][r] *= v;} + void operator /=(const Type & v) {PIMM_FOR_WB(c, r) m[c][r] /= v;} + _CMatrix operator -() {_CMatrix tm(*this); PIMM_FOR_WB(c, r) tm.m[c][r] = -m[c][r]; return tm;} + _CMatrix operator +(const _CMatrix & sm) {_CMatrix tm(*this); PIMM_FOR_WB(c, r) tm.m[c][r] += sm.m[c][r]; return tm;} + _CMatrix operator -(const _CMatrix & sm) {_CMatrix tm(*this); PIMM_FOR_WB(c, r) tm.m[c][r] -= sm.m[c][r]; return tm;} + _CMatrix operator *(const Type & v) {_CMatrix tm(*this); PIMM_FOR_WB(c, r) tm.m[c][r] *= v; return tm;} + _CMatrix operator /(const Type & v) {_CMatrix tm(*this); PIMM_FOR_WB(c, r) tm.m[c][r] /= v; return tm;} _CMatrix & toUpperTriangular(bool * ok = 0) { if (cols_ != rows_) { @@ -587,8 +590,8 @@ public: m = mtmp.m; return *this; } - inline _CMatrix inverted(bool * ok = 0) {_CMatrix tm(*this); tm.invert(ok); return tm;} - inline _CMatrix transposed() {_CMatrix tm(rows_, cols_); PIMM_FOR_WB(c, r) tm[r][c] = m[c][r]; return tm;} + _CMatrix inverted(bool * ok = 0) {_CMatrix tm(*this); tm.invert(ok); return tm;} + _CMatrix transposed() {_CMatrix tm(rows_, cols_); PIMM_FOR_WB(c, r) tm[r][c] = m[c][r]; return tm;} private: uint cols_, rows_; @@ -696,17 +699,17 @@ public: void solveABM3(double u, double h); void solveABM4(double u, double h); void solvePA(double u, double h, uint deg); - inline void solvePA2(double u, double h) {if (step > 0) solvePA(u, h, 2); else solveEyler1(u, h);} - inline void solvePA3(double u, double h) {if (step > 1) solvePA(u, h, 3); else solvePA2(u, h);} - inline void solvePA4(double u, double h) {if (step > 2) solvePA(u, h, 4); else solvePA3(u, h);} - inline void solvePA5(double u, double h) {if (step > 3) solvePA(u, h, 5); else solvePA4(u, h);} + void solvePA2(double u, double h) {if (step > 0) solvePA(u, h, 2); else solveEyler1(u, h);} + void solvePA3(double u, double h) {if (step > 1) solvePA(u, h, 3); else solvePA2(u, h);} + void solvePA4(double u, double h) {if (step > 2) solvePA(u, h, 4); else solvePA3(u, h);} + void solvePA5(double u, double h) {if (step > 3) solvePA(u, h, 5); else solvePA4(u, h);} PIMathVectord X; static Method method_global; static const char methods_desc[]; private: - inline void moveF() {for (uint i = F.size() - 1; i > 0; --i) F[i] = F[i - 1];} + void moveF() {for (uint i = F.size() - 1; i > 0; --i) F[i] = F[i - 1];} PIMathMatrixd A, M; PIMathVectord d, a1, b1; diff --git a/pimonitor.cpp b/pimonitor.cpp new file mode 100644 index 00000000..0fd7f2d9 --- /dev/null +++ b/pimonitor.cpp @@ -0,0 +1,7 @@ +#include "pimonitor.h" + +PIMonitor piMonitor; + +PIMonitor::PIMonitor() { + containers = strings = threads = timers = serials = ethernets = files = objects = 0; +} diff --git a/pimonitor.h b/pimonitor.h new file mode 100644 index 00000000..b32e4fb7 --- /dev/null +++ b/pimonitor.h @@ -0,0 +1,13 @@ +#ifndef PIMONITOR_H +#define PIMONITOR_H + +class PIMonitor +{ +public: + PIMonitor(); + + int containers, strings, threads, timers, serials, ethernets, files, objects; + +}; + +#endif // PIMONITOR_H diff --git a/pimultiprotocol.cpp b/pimultiprotocol.cpp new file mode 100644 index 00000000..39114158 --- /dev/null +++ b/pimultiprotocol.cpp @@ -0,0 +1,2 @@ +#include "pimultiprotocol.h" + diff --git a/pimultiprotocol.h b/pimultiprotocol.h index 958e92bb..2dc347b2 100644 --- a/pimultiprotocol.h +++ b/pimultiprotocol.h @@ -42,21 +42,19 @@ private: class PIRepeater: public PIMultiProtocol { public: - PIRepeater(const PIString & config, const PIString & name, int data_size) { - ba_f = new PIByteArray(data_size); - ba_s = new PIByteArray(data_size); + PIRepeater(const PIString & config, const PIString & name) { PIConfig conf(config, PIFile::Read); if (!conf.isOpened()) { cout << "[PIRepeater \"" << name << "\"] Can`t open \"" << config << "\"!" << endl; return; } - PIConfig::Entry b = conf.getValue(name); + PIConfig::Entry & b(conf.getValue(name)); if (b.childCount() != 2) { cout << "[PIRepeater \"" << name << "\"] \"" << config << "\" should consist 2 nodes!" << endl; return; } - addProtocol(config, b.child(0)->fullName(), 0, 0, ba_f->data(), data_size, ba_s->data(), data_size); - addProtocol(config, b.child(1)->fullName(), 0, 0, ba_s->data(), data_size, ba_f->data(), data_size); + addProtocol(config, b.child(0)->fullName()); + addProtocol(config, b.child(1)->fullName()); start(); } @@ -68,10 +66,8 @@ public: ullong sendCount() {if (count() == 2) return protocol(0)->sendCount(); return 0;} ullong * sendCount_ptr() {if (count() == 2) return protocol(0)->sendCount_ptr(); return 0;} - PIByteArray * ba_f, * ba_s; - private: - void received(PIProtocol * prot, bool , char * , int ) {if (prot == protocol(0)) protocol(1)->send(); else protocol(0)->send();} + void received(PIProtocol * prot, bool , char * data, int size) {if (prot == protocol(0)) protocol(1)->send(data, size); else protocol(0)->send(data, size);} }; diff --git a/pimutex.h b/pimutex.h index 05111ddc..7126af1b 100644 --- a/pimutex.h +++ b/pimutex.h @@ -1,53 +1,53 @@ -#ifndef PIMUTEX_H -#define PIMUTEX_H - +#ifndef PIMUTEX_H +#define PIMUTEX_H + +#include "piincludes.h" #ifdef CC_GCC #include #endif -#include "piincludes.h" - -class PIMutex -{ -public: -#ifndef WINDOWS - PIMutex() { - pthread_mutexattr_t attr; - pthread_mutexattr_init(&attr); - pthread_mutexattr_settype(&attr, PTHREAD_PROCESS_SHARED); - pthread_mutex_init(&mutex, &attr); - pthread_mutexattr_destroy(&attr); - } - ~PIMutex() {pthread_mutex_destroy(&mutex);} - - void lock() {pthread_mutex_lock(&mutex);} - void unlock() {pthread_mutex_unlock(&mutex);} - bool tryLock() {return (pthread_mutex_trylock(&mutex) == 0);} -#else - PIMutex() {mutex = CreateMutex(0, false, 0);} - ~PIMutex() {CloseHandle(mutex);} - - void lock() {WaitForSingleObject(mutex, INFINITE);} - void unlock() {ReleaseMutex(mutex);} - bool tryLock() {return (WaitForSingleObject(mutex, 0) == WAIT_OBJECT_0);} -#endif - -private: -#ifndef WINDOWS - pthread_mutex_t mutex; -#else - void * mutex; -#endif - -}; - -class PIMutexLocker -{ -public: - PIMutexLocker(PIMutex * m): mutex(m) {mutex->lock();} - PIMutexLocker(PIMutex & m): mutex(&m) {mutex->lock();} - ~PIMutexLocker() {mutex->unlock();} -private: - PIMutex * mutex; -}; - -#endif // PIMUTEX_H + +class PIMutex +{ +public: +#ifndef WINDOWS + PIMutex() { + pthread_mutexattr_t attr; + pthread_mutexattr_init(&attr); + pthread_mutexattr_settype(&attr, PTHREAD_PROCESS_SHARED); + pthread_mutex_init(&mutex, &attr); + pthread_mutexattr_destroy(&attr); + } + ~PIMutex() {pthread_mutex_destroy(&mutex);} + + void lock() {pthread_mutex_lock(&mutex);} + void unlock() {pthread_mutex_unlock(&mutex);} + bool tryLock() {return (pthread_mutex_trylock(&mutex) == 0);} +#else + PIMutex() {mutex = CreateMutex(0, false, 0);} + ~PIMutex() {CloseHandle(mutex);} + + void lock() {WaitForSingleObject(mutex, INFINITE);} + void unlock() {ReleaseMutex(mutex);} + bool tryLock() {return (WaitForSingleObject(mutex, 0) == WAIT_OBJECT_0);} +#endif + +private: +#ifndef WINDOWS + pthread_mutex_t mutex; +#else + void * mutex; +#endif + +}; + +class PIMutexLocker +{ +public: + PIMutexLocker(PIMutex * m): mutex(m) {mutex->lock();} + PIMutexLocker(PIMutex & m): mutex(&m) {mutex->lock();} + ~PIMutexLocker() {mutex->unlock();} +private: + PIMutex * mutex; +}; + +#endif // PIMUTEX_H diff --git a/piobject.cpp b/piobject.cpp new file mode 100644 index 00000000..5cd2c4e8 --- /dev/null +++ b/piobject.cpp @@ -0,0 +1,20 @@ +#include "piobject.h" + +PIVector PIObject::objects; + +/* +PIStringList PIObject::events() { + PIStringList l; + for (PIHash::const_iterator i = signals_.begin(); i != signals_.end(); i++) + l << (*i).first; + return l; +} + + +PIStringList PIObject::eventHandlers() { + PIStringList l; + for (PIHash::const_iterator i = slots_.begin(); i != slots_.end(); i++) + l << (*i).first; + return l; +} +*/ \ No newline at end of file diff --git a/piobject.h b/piobject.h new file mode 100644 index 00000000..2cd43b7a --- /dev/null +++ b/piobject.h @@ -0,0 +1,236 @@ +#ifndef PIOBJECT_H +#define PIOBJECT_H + +#include "pistring.h" + +//#ifdef CC_VC +//#define HANDLER(c,s) #s,PIObject::handlerPtr((void(c::*)())&c::s) +//#else +//#define HANDLER(c,s) #s,(void*)&c::s +//#endif + +//#define EVENT_HANDLER0(obj, name) static void __stat_##name##__(obj * o) {o->name();} void name() +//#define EVENT_HANDLER1(obj, name, a0, n0) static void __stat_##name##__(obj * o, a0 n0) {o->name(n0);} void name(a0 n0) +//#define EVENT_HANDLER2(obj, name, a0, n0, a1, n1) static void __stat_##name##__(obj * o, a0 n0, a1 n1) {o->name(n0, n1);} void name(a0 n0, a1 n1) + +#define EVENT_HANDLER0(obj, ret, name) static ret __stat_##name##__(void * o) {return ((obj*)o)->name();} ret name() +#define EVENT_HANDLER1(obj, ret, name, a0, n0) static ret __stat_##name##__(void * o, a0 n0) {return ((obj*)o)->name(n0);} ret name(a0 n0) +#define EVENT_HANDLER2(obj, ret, name, a0, n0, a1, n1) static ret __stat_##name##__(void * o, a0 n0, a1 n1) {return ((obj*)o)->name(n0, n1);} ret name(a0 n0, a1 n1) +#define EVENT_HANDLER3(obj, ret, name, a0, n0, a1, n1, a2, n2) static ret __stat_##name##__(void * o, a0 n0, a1 n1, a2 n2) {return ((obj*)o)->name(n0, n1, n2);} ret name(a0 n0, a1 n1, a2 n2) +#define EVENT_HANDLER4(obj, ret, name, a0, n0, a1, n1, a2, n2, a3, n3) static ret __stat_##name##__(void * o, a0 n0, a1 n1, a2 n2, a3 n3) {return ((obj*)o)->name(n0, n1, n2, n3);} ret name(a0 n0, a1 n1, a2 n2, a3 n3) +#define EVENT_HANDLER EVENT_HANDLER0 + +#define CONNECT0(ret, src, event, dst, handler) PIObject::connect(src, #event, dst, (void*)(ret(*)(void*))(&(dst)->__stat_##handler##__)); +#define CONNECT1(ret, a0, src, event, dst, handler) PIObject::connect(src, #event, dst, (void*)(ret(*)(void*, a0))(&(dst)->__stat_##handler##__)); +#define CONNECT2(ret, a0, a1, src, event, dst, handler) PIObject::connect(src, #event, dst, (void*)(ret(*)(void*, a0, a1))(&(dst)->__stat_##handler##__)); +#define CONNECT3(ret, a0, a1, a2, src, event, dst, handler) PIObject::connect(src, #event, dst, (void*)(ret(*)(void*, a0, a1, a2))(&(dst)->__stat_##handler##__)); +#define CONNECT4(ret, a0, a1, a2, a3, src, event, dst, handler) PIObject::connect(src, #event, dst, (void*)(ret(*)(void*, a0, a1, a2, a3))(&(dst)->__stat_##handler##__)); +#define CONNECT CONNECT0 + +class PIObject +{ + friend class PIObjectManager; +public: + PIObject(const PIString & name = PIString()) {piMonitor.objects++; setName(name); objects << this;} + ~PIObject() {piMonitor.objects--; objects.remove(this);} + + const PIString & name() const {return name_;} + void setName(const PIString & name) {name_ = name;} + /* + PIStringList events(); + PIStringList eventHandlers(); + + /// Events + void addEvent(const PIString & name) { + signals_.insert(NamedFunction(0, name, PIStringList()), name); + } + template + void addEvent(const PIString & name) { + signals_.insert(NamedFunction(0, name, PIStringList(typeid(T0).name())), name); + } + template + void addEvent(const PIString & name) { + signals_.insert(NamedFunction(0, name, PIStringList(typeid(T0).name(), typeid(T1).name())), name); + } + template + void addEvent(const PIString & name) { + signals_.insert(NamedFunction(0, name, PIStringList(typeid(T0).name(), typeid(T1).name(), typeid(T2).name())), name); + } + template + void addEvent(const PIString & name) { + signals_.insert(NamedFunction(0, name, PIStringList(typeid(T0).name(), typeid(T1).name(), typeid(T2).name(), typeid(T3).name())), name); + } + + /// Event handlers + void addEventHandler(const PIString & name, void * func) { + slots_.insert(NamedFunction(func, name, PIStringList()), name); + } + template + void addEventHandler(const PIString & name, void * func) { + slots_.insert(NamedFunction(func, name, PIStringList(typeid(T0).name())), name); + } + template + void addEventHandler(const PIString & name, void * func) { + slots_.insert(NamedFunction(func, name, PIStringList(typeid(T0).name(), typeid(T1).name())), name); + } + template + void addEventHandler(const PIString & name, void * func) { + slots_.insert(NamedFunction(func, name, PIStringList(typeid(T0).name(), typeid(T1).name(), typeid(T2).name())), name); + } + template + void addEventHandler(const PIString & name, void * func) { + slots_.insert(NamedFunction(func, name, PIStringList(typeid(T0).name(), typeid(T1).name(), typeid(T2).name(), typeid(T3).name())), name); + } + */ + /// Direct connect + static void connect(PIObject * src, const PIString & sig, void * dest, void * ev_h) {src->connections << Connection(ev_h, sig, dest);} + //static void connect(PIObject & src, const PIString & sig, PIObject * dest, void * ev_h) {src.connections << Connection(ev_h, sig, dest);} + //static void connect(PIObject * src, const PIString & sig, PIObject & dest, void * ev_h) {src->connections << Connection(ev_h, sig, &dest);} + //static void connect(PIObject & src, const PIString & sig, PIObject & dest, void * ev_h) {src.connections << Connection(ev_h, sig, &dest);} + + /*/// Connect through manager + static bool connect(const PIString & srcObject, const PIString & event, const PIString & destObject, const PIString & handler, bool force = false) { + PIObject * src = findByName(srcObject); + if (src == 0) { + cout << "PIObject::connect: can`t find PIObject with \"" << srcObject << "\" name!" << endl; + return false; + } + PIObject * dest = findByName(destObject); + if (dest == 0) { + cout << "PIObject::connect: can`t find PIObject with \"" << destObject << "\" name!" << endl; + return false; + } + return PIObject::connect(src, event, dest, handler, force); + }*/ + + /// Raise events + static void raiseEvent(PIObject * sender, const PIString & event) { + for (int j = 0; j < sender->connections.size_s(); ++j) { + Connection & i(sender->connections[j]); + if (i.event != event) continue; + ((void(*)(void * ))i.slot)(i.dest); + } + } + template + static void raiseEvent(PIObject * sender, const PIString & event, const T0 & v0 = T0()) { + for (int j = 0; j < sender->connections.size_s(); ++j) { + Connection & i(sender->connections[j]); + if (i.event != event) continue; + ((void(*)(void * , T0))i.slot)(i.dest, v0); + } + } + template + static void raiseEvent(PIObject * sender, const PIString & event, const T0 & v0 = T0(), const T1 & v1 = T1()) { + for (int j = 0; j < sender->connections.size_s(); ++j) { + Connection & i(sender->connections[j]); + if (i.event != event) continue; + ((void(*)(void * , T0, T1))i.slot)(i.dest, v0, v1); + } + } + template + static void raiseEvent(PIObject * sender, const PIString & event, const T0 & v0 = T0(), const T1 & v1 = T1(), const T2 & v2 = T2()) { + for (int j = 0; j < sender->connections.size_s(); ++j) { + Connection & i(sender->connections[j]); + if (i.event != event) continue; + ((void(*)(void * , T0, T1, T2))i.slot)(i.dest, v0, v1, v2); + } + } + template + static void raiseEvent(PIObject * sender, const PIString & event, const T0 & v0 = T0(), const T1 & v1 = T1(), const T2 & v2 = T2(), const T3 & v3 = T3()) { + for (int j = 0; j < sender->connections.size_s(); ++j) { + Connection & i(sender->connections[j]); + if (i.event != event) continue; + ((void(*)(void * , T0, T1, T2, T3))i.slot)(i.dest, v0, v1, v2, v3); + } + } + /* + /// Raise events (static) + static void raiseEvent(PIObject * destObject, const PIString & name) { + destObject->raiseEvent(name); + } + template + static void raiseEvent(PIObject * destObject, const PIString & name, const T0 & v0 = T0()) { + destObject->raiseEvent(name, v0); + } + template + static void raiseEvent(PIObject * destObject, const PIString & name, const T0 & v0 = T0(), const T1 & v1 = T1()) { + destObject->raiseEvent(name, v0, v1); + } + template + static void raiseEvent(PIObject * destObject, const PIString & name, const T0 & v0 = T0(), const T1 & v1 = T1(), const T2 & v2 = T2()) { + destObject->raiseEvent(name, v0, v1, v2); + } + template + static void raiseEvent(PIObject * destObject, const PIString & name, const T0 & v0 = T0(), const T1 & v1 = T1(), const T2 & v2 = T2(), const T3 & v3 = T3()) { + destObject->raiseEvent(name, v0, v1, v2, v3); + } + */ + /// Raise events through manager + static void raiseEvent(const PIString & destObject, const PIString & name) { + PIObject * dest = findByName(destObject); + if (dest == 0) { + cout << "PIObject::connect: can`t find PIObject with \"" << destObject << "\" name!" << endl; + return; + } + raiseEvent(dest, name); + } + template + static void raiseEvent(const PIString & destObject, const PIString & name, const T0 & v0 = T0()) { + PIObject * dest = findByName(destObject); + if (dest == 0) { + cout << "PIObject::connect: can`t find PIObject with \"" << destObject << "\" name!" << endl; + return; + } + raiseEvent(dest, name, v0); + } + template + static void raiseEvent(const PIString & destObject, const PIString & name, const T0 & v0 = T0(), const T1 & v1 = T1()) { + PIObject * dest = findByName(destObject); + if (dest == 0) { + cout << "PIObject::connect: can`t find PIObject with \"" << destObject << "\" name!" << endl; + return; + } + raiseEvent(dest, name, v0, v1); + } + template + static void raiseEvent(const PIString & destObject, const PIString & name, const T0 & v0 = T0(), const T1 & v1 = T1(), const T2 & v2 = T2()) { + PIObject * dest = findByName(destObject); + if (dest == 0) { + cout << "PIObject::connect: can`t find PIObject with \"" << destObject << "\" name!" << endl; + return; + } + raiseEvent(name, dest, v0, v1, v2); + } + template + static void raiseEvent(const PIString & destObject, const PIString & name, const T0 & v0 = T0(), const T1 & v1 = T1(), const T2 & v2 = T2(), const T3 & v3 = T3()) { + PIObject * dest = findByName(destObject); + if (dest == 0) { + cout << "PIObject::connect: can`t find PIObject with \"" << destObject << "\" name!" << endl; + return; + } + raiseEvent(name,dest , v0, v1, v2, v3); + } + +private: + struct Connection { + Connection(void * s = 0, const PIString & e = PIString(), void * o = 0) {slot = s; event = e; dest = o;} + void * slot; + PIString event; + void * dest; + }; + + PIString name_; + PIVector connections; + + static PIVector objects; + static PIObject * findByName(const PIString & name) { + piForeach (PIObject * i, PIObject::objects) { + if (i->name_ != name) continue; + return i; + } + return 0; + }; + +}; + +#endif // PIOBJECT_H diff --git a/pip.h b/pip.h index 72fd39a9..86d7c876 100644 --- a/pip.h +++ b/pip.h @@ -6,3 +6,5 @@ #include "pimultiprotocol.h" #include "picodec.h" #include "pisignals.h" +#include "piobject.h" +#include "pisystemmonitor.h" diff --git a/pip.pro b/pip.pro index d10d9bd2..52122f91 100644 --- a/pip.pro +++ b/pip.pro @@ -1,18 +1,23 @@ ###################################################################### -# Automatically generated by qmake (2.01a) ?? ???. 18 21:49:21 2011 +# Automatically generated by qmake (2.01a) ?? ???. 5 22:55:18 2011 ###################################################################### TEMPLATE = app -TARGET = +TARGET = pip_test DEPENDPATH += . INCLUDEPATH += . +QT -= core gui +LIBS += -lpthread -lrt # Input HEADERS += pibitarray.h \ pibytearray.h \ pichar.h \ + picli.h \ + picodec.h \ piconfig.h \ piconsole.h \ + picontainers.h \ pidir.h \ piethernet.h \ pievaluator.h \ @@ -21,16 +26,24 @@ HEADERS += pibitarray.h \ piincludes.h \ pikbdlistener.h \ pimath.h \ + pimonitor.h \ + pimultiprotocol.h \ pimutex.h \ + piobject.h \ pip.h \ + piprocess.h \ piprotocol.h \ piserial.h \ + pisignals.h \ pistring.h \ + pisystemmonitor.h \ pithread.h \ pitimer.h \ pivariable.h SOURCES += main.cpp \ pibytearray.cpp \ + picli.cpp \ + picodec.cpp \ piconfig.cpp \ piconsole.cpp \ pidir.cpp \ @@ -39,9 +52,15 @@ SOURCES += main.cpp \ pifile.cpp \ pikbdlistener.cpp \ pimath.cpp \ + pimonitor.cpp \ + pimultiprotocol.cpp \ + piobject.cpp \ + piprocess.cpp \ piprotocol.cpp \ piserial.cpp \ + pisignals.cpp \ pistring.cpp \ + pisystemmonitor.cpp \ pithread.cpp \ pitimer.cpp \ pivariable.cpp diff --git a/piprocess.cpp b/piprocess.cpp index ca3509c8..d6549178 100644 --- a/piprocess.cpp +++ b/piprocess.cpp @@ -123,7 +123,7 @@ void PIProcess::run() { } else cout << "[PIProcess] \"CreateProcess\" error, " << errorString() << endl; #else - if (execvpe(str.c_str(), a, e) < 0) + if (execve(str.c_str(), a, e) < 0) cout << "[PIProcess] \"execvpe\" error, " << errorString() << endl; } else { msleep(1); diff --git a/piprocess.h b/piprocess.h index 4db73787..91303187 100644 --- a/piprocess.h +++ b/piprocess.h @@ -38,7 +38,7 @@ public: void exec(const PIString & program, const PIString & arg) {args.clear(); args << program << arg; exec_();} void exec(const PIString & program, const PIString & arg1, const PIString & arg2) {args.clear(); args << program << arg1 << arg2; exec_();} void exec(const PIString & program, const PIString & arg1, const PIString & arg2, const PIString & arg3) {args.clear(); args << program << arg1 << arg2 << arg3; exec_();} - void exec(const PIString & program, const PIStringList & args_) {args = args_; exec_();} + void exec(const PIString & program, const PIStringList & args_) {args << program << args_; exec_();} #ifdef WINDOWS void terminate() {if (is_exec) if (!TerminateProcess(pi.hProcess, 0)) return; pi.dwProcessId = 0;} #else @@ -54,6 +54,11 @@ public: void setEnvironmentVariable(const PIString & variable, const PIString & value); static PIStringList currentEnvironment() {PIStringList l; int i = 0; while (environ[i] != 0) {l << environ[i]; ++i;} return l;} +#ifdef WINDOWS + static int currentPID() {return GetCurrentProcessId();} +#else + static int currentPID() {return getpid();} +#endif private: virtual void run(); diff --git a/piprotocol.cpp b/piprotocol.cpp index 64c79810..5b05b899 100644 --- a/piprotocol.cpp +++ b/piprotocol.cpp @@ -1,9 +1,10 @@ #include "piprotocol.h" -PIProtocol::PIProtocol(const PIString & config, const PIString & name, void * recHeaderPtr, int recHeaderSize, void * recDataPtr, int recDataSize, void * sendDataPtr_, int sendDataSize_) { +PIProtocol::PIProtocol(const PIString & config, const PIString & name, void * recHeaderPtr, int recHeaderSize, void * recDataPtr, int recDataSize, void * sendDataPtr_, int sendDataSize_): PIObject() { init(); protName = name; + PIObject::setName(name); PIConfig conf(config, PIFile::Read); if (!conf.isOpened()) { cout << "[PIProtocol \"" << name << "\"] Can`t open \"" << config << "\"!" << endl; @@ -11,13 +12,13 @@ PIProtocol::PIProtocol(const PIString & config, const PIString & name, void * re return; } int ps; - bool ok; + bool ok, has_dev = false; PIFlags pp; - PIConfig::Entry b = conf.getValue(name), - rb = b.getValue("receiver"), - sb = b.getValue("sender"); + PIConfig::Entry & b(conf.getValue(name)), + & rb(b.getValue("receiver")), + & sb(b.getValue("sender")); PIString dev; - + /// receiver section if (rb.isEntryExists("ip") && rb.isEntryExists("device")) { cout << "[PIProtocol \"" << name << "\"] Ambiguous receiver type in \"" << config << "\"!" << endl; @@ -35,6 +36,11 @@ PIProtocol::PIProtocol(const PIString & config, const PIString & name, void * re type_rec = PIProtocol::Ethernet; eth = new PIEthernet(dev, ps, this, receiveEvent); setReceiverAddress(dev, ps); + has_dev = true; + if (recDataPtr == 0) + cout << "[PIProtocol \"" << name << "\"] Warning: null receive data pointer!" << endl; + if (recDataSize == 0) + cout << "[PIProtocol \"" << name << "\"] Warning: null receive data size!" << endl; } dev = rb.getValue("device", "", &ok); if (ok) { @@ -54,9 +60,22 @@ PIProtocol::PIProtocol(const PIString & config, const PIString & name, void * re ser->setInSpeed((PISerial::Speed)ps); ser->setParameters(pp); ser->setReadData(recHeaderPtr, recHeaderSize, recDataSize); + has_dev = true; + if (recDataPtr == 0) + cout << "[PIProtocol \"" << name << "\"] Warning: null receive data pointer!" << endl; + if (recDataSize == 0) + cout << "[PIProtocol \"" << name << "\"] Warning: null receive data size!" << endl; } - setExpectedFrequency(rb.getValue("frequency", -1.f)); - + float freq = rb.getValue("frequency", -1.f); + if (freq > 0. && !has_dev) + cout << "[PIProtocol \"" << name << "\"] Warning: no receiver device and not null expected frequency!" << endl; + float tm = b.getValue("disconnectTimeout", 3.f); + if (tm <= 0.) + cout << "[PIProtocol \"" << name << "\"] Warning: diconnect timeout <= 0 s!" << endl; + timeout_ = (tm < 0.) ? 0. : tm; + setExpectedFrequency(freq); + changeDisconnectTimeout(); + /// sender section if (sb.isEntryExists("ip") && sb.isEntryExists("device")) { cout << "[PIProtocol \"" << name << "\"] Ambiguous sender type in \"" << config << "\"!" << endl; @@ -64,6 +83,7 @@ PIProtocol::PIProtocol(const PIString & config, const PIString & name, void * re return; } dev = sb.getValue("ip", "", &ok); + has_dev = false; if (ok) { ps = sb.getValue("port", 0, &ok); if (!ok) { @@ -74,6 +94,11 @@ PIProtocol::PIProtocol(const PIString & config, const PIString & name, void * re type_send = PIProtocol::Ethernet; if (eth == 0) eth = new PIEthernet(dev, ps, this, receiveEvent); setSenderAddress(dev, ps); + has_dev = true; + if (sendDataPtr_ == 0) + cout << "[PIProtocol \"" << name << "\"] Warning: null send data pointer!" << endl; + if (sendDataSize_ == 0) + cout << "[PIProtocol \"" << name << "\"] Warning: null send data size!" << endl; } dev = sb.getValue("device", "", &ok); if (ok) { @@ -91,9 +116,17 @@ PIProtocol::PIProtocol(const PIString & config, const PIString & name, void * re ser->setOutSpeed((PISerial::Speed)ps); ser->setParameters(pp); ser->setReadData(recHeaderPtr, recHeaderSize, recDataSize); + has_dev = true; + if (sendDataPtr_ == 0) + cout << "[PIProtocol \"" << name << "\"] Warning: null send data pointer!" << endl; + if (sendDataSize_ == 0) + cout << "[PIProtocol \"" << name << "\"] Warning: null send data size!" << endl; } - setSenderFrequency(sb.getValue("frequency", -1.f)); - + freq = sb.getValue("frequency", -1.f); + if (freq > 0. && !has_dev) + cout << "[PIProtocol \"" << name << "\"] Warning: no sender device and not null send frequency!" << endl; + setSenderFrequency(freq); + headerPtr = (uchar * )recHeaderPtr; headerSize = recHeaderSize; dataPtr = (uchar * )recDataPtr; @@ -122,23 +155,36 @@ PIProtocol::~PIProtocol() { void PIProtocol::init() { work = new_mp_prot = false; + eth = 0; + ser = 0; ret_func = 0; mp_owner = 0; net_diag = PIProtocol::Unknown; cur_pckt = 0; diagTimer = 0; packet = 0; + timeout_ = 3.f; sendTimer = new PITimer(sendEvent, this); diagTimer = new PITimer(diagEvent, this); wrong_count = receive_count = send_count = 0; - immediateFreq = integralFreq = 0.f; + immediate_freq = integral_freq = 0.f; headerPtr = dataPtr = sendDataPtr = 0; headerSize = dataSize = sendDataSize = 0; - eth = 0; - ser = 0; type_rec = type_send = PIProtocol::None; devSenderState = devReceiverState = "Unknown"; devSenderName = devReceiverName = "no device"; + /*addEvent("receiver started"); + addEvent("receiver stopped"); + addEvent("sender started"); + addEvent("sender stopped"); + addEvent("received"); + addEvent("quality changed"); + addEventHandler(HANDLER(PIProtocol, startReceive)); + addEventHandler(HANDLER(PIProtocol, startSend)); + addEventHandler(HANDLER(PIProtocol, start)); + addEventHandler(HANDLER(PIProtocol, stopReceive)); + addEventHandler(HANDLER(PIProtocol, stopSend)); + addEventHandler(HANDLER(PIProtocol, stop));*/ } @@ -196,8 +242,13 @@ void PIProtocol::setSenderAddress(const PIString & ip, int port, bool force) { void PIProtocol::setExpectedFrequency(float frequency) { exp_freq = frequency; - if (exp_freq < 10.f / 3.f) pckt_cnt_max = 10; - else pckt_cnt_max = uint(round(3.f * exp_freq)); + changeDisconnectTimeout(); +} + + +void PIProtocol::changeDisconnectTimeout() { + pckt_cnt_max = int(round(timeout_ * exp_freq)); + if (pckt_cnt_max < 3) pckt_cnt_max = 3; last_packets.resize(pckt_cnt_max); } @@ -210,6 +261,7 @@ void PIProtocol::startReceive(float exp_frequency) { setExpectedFrequency(exp_freq); diagTimer->start(1000. / exp_freq); diagTimer->reset(); + raiseEvent(this, "receiver started"); } @@ -217,6 +269,7 @@ void PIProtocol::startSend(float frequency) { if (frequency > 0.f) send_freq = frequency; if (send_freq <= 0.f) return; sendTimer->start(1000. / send_freq); + raiseEvent(this, "sender started"); } @@ -224,6 +277,7 @@ void PIProtocol::stopReceive() { if (type_rec == PIProtocol::Serial) ser->stop(); if (type_rec == PIProtocol::Ethernet) eth->stop(); diagTimer->stop(); + raiseEvent(this, "receiver stopped"); } @@ -232,8 +286,8 @@ bool PIProtocol::receiveEvent(void * t, char * data, int size) { if (!p->receive(data, size)) return false; p->work = true; //p->lock(); - if (p->validate()) - { + if (p->validate()) { + raiseEvent(p, "received", true); //p->unlock(); p->receive_count++; p->cur_pckt = 1; @@ -241,6 +295,7 @@ bool PIProtocol::receiveEvent(void * t, char * data, int size) { if (p->mp_owner != 0) PIMultiProtocolBase::receiveEvent(p->mp_owner, p, true, data, size); return true; } + raiseEvent(p, "received", false); //p->unlock(); p->wrong_count++; if (p->mp_owner != 0) PIMultiProtocolBase::receiveEvent(p->mp_owner, p, false, data, size); @@ -278,39 +333,54 @@ void PIProtocol::calc_diag() { else if (good_percents <= 20.f) diag = PIProtocol::Bad; else if (good_percents > 20.f && good_percents <= 80.f) diag = PIProtocol::Average; else diag = PIProtocol::Good; - if (diag != net_diag) net_diag = diag; + if (diag != net_diag) { + net_diag = diag; + raiseEvent(this, "quality changed", diag); + } } void PIProtocol::calc_freq() { - tf = float(1000.f / diagTimer->elapsed_m()); + float tf = float(1000.f / diagTimer->elapsed_m()); diagTimer->reset(); if (cur_pckt != 1) tf = 0.f; - immediateFreq = tf; - if (last_freq.size() >= pckt_cnt_max) last_freq.pop_front(); + immediate_freq = tf; + if (last_freq.size_s() >= pckt_cnt_max && last_freq.size_s() > 0) last_freq.pop_front(); last_freq.push_back(tf); tf = last_freq[0]; for (uint i = 1; i < last_freq.size(); ++i) tf += last_freq[i]; - integralFreq = tf / last_freq.size(); + integral_freq = tf / last_freq.size(); } void PIProtocol::check_state() { if (type_rec == PIProtocol::Serial) { - if (ser->initialized()) devReceiverState = "Initialized"; + if (ser != 0) { + if (ser->initialized()) devReceiverState = "Initialized"; + else devReceiverState = "Uninitialized"; + } else devReceiverState = "Uninitialized"; } if (type_rec == PIProtocol::Ethernet) { - if (eth->receiverInitialized()) devReceiverState = "Initialized"; + if (eth != 0) { + if (eth->receiverInitialized()) devReceiverState = "Initialized"; + else devReceiverState = "Uninitialized"; + } else devReceiverState = "Uninitialized"; } if (type_send == PIProtocol::Serial) { - if (ser->initialized()) devSenderState = "Initialized"; + if (ser != 0) { + if (ser->initialized()) devSenderState = "Initialized"; + else devSenderState = "Uninitialized"; + } else devSenderState = "Uninitialized"; } if (type_send == PIProtocol::Ethernet) { - if (eth->senderInitialized()) devSenderState = "Initialized"; + if (eth != 0) { + if (eth->senderInitialized()) devSenderState = "Initialized"; + else devSenderState = "Uninitialized"; + } else devSenderState = "Uninitialized"; } } diff --git a/piprotocol.h b/piprotocol.h index a528a71a..585113b6 100644 --- a/piprotocol.h +++ b/piprotocol.h @@ -6,6 +6,7 @@ #include "pitimer.h" #include "piconfig.h" #include "math.h" +#include "piobject.h" class PIProtocol; @@ -15,60 +16,68 @@ class PIMultiProtocolBase public: PIMultiProtocolBase() {;} ~PIMultiProtocolBase() {;} - + protected: virtual void received(PIProtocol * prot, bool corrected, char * data, int size) {;} - + private: static void receiveEvent(PIMultiProtocolBase * p, PIProtocol * prot, bool corrected, char * data, int size) {p->mutex_receive.lock(); p->received(prot, corrected, data, size); p->mutex_receive.unlock();} - + PIMutex mutex_receive; - + }; typedef void (*ReceiveFunc)(void * ); -class PIProtocol +class PIProtocol: public PIObject { friend class PIMultiProtocolBase; friend class PIMultiProtocol; enum Type {None, Serial, Ethernet}; - enum Quality {Unknown = 1, Failure = 2, Bad = 3, Average = 4, Good = 5}; - + public: - PIProtocol() {init();} + PIProtocol(): PIObject() {init();} PIProtocol(const PIString & config, const PIString & name, void * recHeaderPtr = 0, int recHeaderSize = 0, void * recDataPtr = 0, int recDataSize = 0, void * sendDataPtr = 0, int sendDataSize = 0); // from config ~PIProtocol(); - - void startReceive(float exp_frequency = -1.f); // if "frequency = -1" used last passed value - void stopReceive(); + + enum Quality {Unknown = 1, Failure = 2, Bad = 3, Average = 4, Good = 5}; + + EVENT_HANDLER0(PIProtocol, void, startReceive) {startReceive(-1.f);} + EVENT_HANDLER1(PIProtocol, void, startReceive, float, exp_frequency); // if "frequency = -1" used last passed value + EVENT_HANDLER0(PIProtocol, void, stopReceive); + float expectedFrequency() const {return exp_freq;} void setExpectedFrequency(float frequency); // for connection quality diagnostic void setReceiverDevice(const PIString & device, PISerial::Speed speed, bool force = false); // for Serial void setReceiverData(void * dataPtr, int dataSize) {this->dataPtr = (uchar * )dataPtr; this->dataSize = dataSize;} void setReceiverAddress(const PIString & ip, int port, bool force = false); // for Ethernet void setReceiverParameters(PIFlags parameters) {if (type_send == PIProtocol::Serial) ser->setParameters(parameters);} // for Serial void setReceiveSlot(ReceiveFunc slot) {ret_func = slot;} - - void startSend(float frequency = -1.f); // if "frequency = -1" used last passed value - void stopSend() {sendTimer->stop();} + + EVENT_HANDLER0(PIProtocol, void, startSend) {startSend(-1.f);} // if "frequency = -1" used last passed value + EVENT_HANDLER1(PIProtocol, void, startSend, float, frequency); // if "frequency = -1" used last passed value + EVENT_HANDLER0(PIProtocol, void, stopSend) {sendTimer->stop(); raiseEvent(this, "sender stopped");} + float senderFrequency() const {return send_freq;} void setSenderFrequency(float frequency) {send_freq = frequency;} void setSenderDevice(const PIString & device, PISerial::Speed speed, bool force = false); // for Serial void setSenderData(void * dataPtr, int dataSize) {sendDataPtr = (uchar * )dataPtr; sendDataSize = dataSize;} void setSenderAddress(const PIString & ip, int port, bool force = false); // for Ethernet void setSenderParameters(PIFlags parameters) {if (type_send == PIProtocol::Serial) ser->setParameters(parameters);} // for Serial - - void start() {startReceive(); startSend();} - void stop() {stopReceive(); stopSend();} - void send(); - void send(const void * data, int size); - void setName(const PIString & name) {protName = name;} + EVENT_HANDLER0(PIProtocol, void, start) {startReceive(); startSend();} + EVENT_HANDLER0(PIProtocol, void, stop) {stopReceive(); stopSend();} + EVENT_HANDLER0(PIProtocol, void, send); + EVENT_HANDLER2(PIProtocol, void, send, const void *, data, int, size); + + void setName(const PIString & name) {protName = name; PIObject::setName(name);} PIString name() const {return protName;} - float immediateFrequency() const {return immediateFreq;} - float integralFrequency() const {return integralFreq;} - float * immediateFrequency_ptr() {return &immediateFreq;} - float * integralFrequency_ptr() {return &integralFreq;} + void setDisconnectTimeout(float timeout) {timeout_ = timeout; changeDisconnectTimeout();} + float disconnectTimeout() const {return timeout_;} + float * disconnectTimeout_ptr() {return &timeout_;} + float immediateFrequency() const {return immediate_freq;} + float integralFrequency() const {return integral_freq;} + float * immediateFrequency_ptr() {return &immediate_freq;} + float * integralFrequency_ptr() {return &integral_freq;} ullong receiveCount() const {return receive_count;} ullong * receiveCount_ptr() {return &receive_count;} ullong wrongCount() const {return wrong_count;} @@ -78,17 +87,20 @@ public: PIProtocol::Quality quality() const {return net_diag;} // receive quality int * quality_ptr() {return (int * )&net_diag;} // receive quality pointer PIString receiverDeviceName() const {return devReceiverName;} - PIString senderDeviceName() const {cout << devSenderName << endl; return devSenderName;} + PIString senderDeviceName() const {return devSenderName;} PIString receiverDeviceState() const {return devReceiverState;} PIString * receiverDeviceState_ptr() {return &devReceiverState;} PIString senderDeviceState() const {return devSenderState;} PIString * senderDeviceState_ptr() {return &devSenderState;} - + void * receiveData() {return dataPtr;} void * sendData() {return sendDataPtr;} + PIByteArray lastHeader() {if (ser != 0) return ser->lastHeader(); return PIByteArray();} + PIByteArray internalBuffer() {if (ser != 0) return ser->internalBuffer(); return PIByteArray();} + protected: - virtual bool receive(char * data, int size) {memcpy(dataPtr, data, size); return true;} // executed when raw data received, break if 'false' return + virtual bool receive(char * data, int size) {if (dataPtr != 0) memcpy(dataPtr, data, size); return true;} // executed when raw data received, break if 'false' return virtual bool validate() {return true;} // function for validate algorithm and save data from dataPtr to external struct virtual uint checksum_i(void * data, int size) { // function for checksum (uint) uint c = 0; @@ -120,10 +132,11 @@ private: static void sendEvent(void * e, int) {((PIProtocol * )e)->send();} static bool receiveEvent(void * t, char * data, int size); static void diagEvent(void * t, int); - + void setMultiProtocolOwner(PIMultiProtocolBase * mp) {mp_owner = mp;} PIMultiProtocolBase * multiProtocolOwner() const {return mp_owner;} - + void changeDisconnectTimeout(); + ReceiveFunc ret_func; PITimer * diagTimer, * sendTimer; PIMultiProtocolBase * mp_owner; @@ -133,12 +146,11 @@ private: PIDeque last_packets; PIString protName, devReceiverName, devReceiverState, devSenderName, devSenderState; bool work, new_mp_prot; - float exp_freq, send_freq, immediateFreq, integralFreq, tf; - int packets[2]; - uint pckt_cnt, pckt_cnt_max; + float exp_freq, send_freq, immediate_freq, integral_freq, timeout_; + int packets[2], pckt_cnt, pckt_cnt_max; char * packet, cur_pckt; ullong wrong_count, receive_count, send_count; - + }; #endif // PIPROTOCOL_H diff --git a/piserial.cpp b/piserial.cpp index e7370f92..33733c96 100644 --- a/piserial.cpp +++ b/piserial.cpp @@ -2,6 +2,7 @@ PISerial::PISerial(PIString name, void * data_, SerialFunc slot): PIThread() { + piMonitor.serials++; setPriority(piHigh); data = data_; devName = name; @@ -10,6 +11,8 @@ PISerial::PISerial(PIString name, void * data_, SerialFunc slot): PIThread() { headerPtr = 0; hbuffer = pbuffer = 0; ret_func = slot; + memset(buffer, 0, BUFFER_SIZE); + memset(sbuffer, 0, BUFFER_SIZE); #ifdef WINDOWS hCom = 0; #endif @@ -18,6 +21,7 @@ PISerial::PISerial(PIString name, void * data_, SerialFunc slot): PIThread() { PISerial::~PISerial() { + piMonitor.serials--; terminate(); } @@ -132,6 +136,8 @@ void PISerial::run() { } if (j == headerSize) { first = true; + mheader.resize(headerSize); + memcpy(mheader.data(),headerPtr,headerSize); //cout << "yes" << endl; } } diff --git a/piserial.h b/piserial.h index 6497db24..1ff36fac 100644 --- a/piserial.h +++ b/piserial.h @@ -4,23 +4,23 @@ #include "pithread.h" #include "pistring.h" #ifndef WINDOWS -#include -#include +# include +# include #else -#define B110 110 -#define B300 300 -#define B600 600 -#define B1200 1200 -#define B2400 2400 -#define B4800 4800 -#define B9600 9600 -#define B14400 14400 -#define B19200 19200 -#define B38400 38400 -#define B57600 57600 -#define B115200 115200 -#define B128000 128000 -#define B256000 256000 +# define B110 110 +# define B300 300 +# define B600 600 +# define B1200 1200 +# define B2400 2400 +# define B4800 4800 +# define B9600 9600 +# define B14400 14400 +# define B19200 19200 +# define B38400 38400 +# define B57600 57600 +# define B115200 115200 +# define B128000 128000 +# define B256000 256000 #endif #define BUFFER_SIZE 4096 @@ -64,6 +64,9 @@ public: bool init(); bool initialized() const {return fd != -1;} void terminate(); + + PIByteArray lastHeader() {return mheader;} + PIByteArray internalBuffer() {return PIByteArray(sbuffer, BUFFER_SIZE);} private: int convertSpeed(PISerial::Speed speed); @@ -85,6 +88,7 @@ private: PIString devName; SerialFunc ret_func; char buffer[BUFFER_SIZE], sbuffer[BUFFER_SIZE], * hbuffer, * pbuffer; + PIByteArray mheader; void * headerPtr, * data; int dataSize, headerSize, sbuffIndex, startIndex, backIndex; PIFlags params; diff --git a/pistring.cpp b/pistring.cpp index 1795e06a..5a724e83 100644 --- a/pistring.cpp +++ b/pistring.cpp @@ -203,6 +203,10 @@ PIString & PIString::replace(int from, int count, const PIString & with) { PIString & PIString::replace(const PIString & what, const PIString & with, bool * ok) { + if (what.isEmpty()) { + if (ok != 0) *ok = false; + return *this; + } int s = find(what); if (s >= 0) replace(s, what.length(), with); if (ok != 0) *ok = (s >= 0); diff --git a/pistring.h b/pistring.h index e6446c6d..00dc8e75 100644 --- a/pistring.h +++ b/pistring.h @@ -9,7 +9,7 @@ class PIStringList; class PIString: public PIVector { public: - PIString() {;} + PIString() {piMonitor.strings++; piMonitor.containers--;} //inline PIString & operator +=(const char c) {push_back(c); return *this;} PIString & operator +=(const PIChar c) {push_back(c); return *this;} @@ -21,16 +21,17 @@ public: PIString & operator +=(const wstring & str); //PIString(const char c) {*this += c;} - PIString(const PIChar c) {*this += c;} - PIString(const char * str) {*this += str;} - PIString(const wchar_t * str) {*this += str;} - PIString(const string & str) {*this += str;} - PIString(const wstring & str) {*this += str;} - PIString(const PIByteArray & ba) {*this += ba;} - PIString(const char * str, const int len) {*this += string(str, len);} - PIString(const int len, const char c) {for (int i = 0; i < len; ++i) push_back(c);} - PIString(const int len, const PIChar & c) {for (int i = 0; i < len; ++i) push_back(c);} - PIString(const PIString & str) {*this += str;} + PIString(const PIChar c) {piMonitor.strings++; piMonitor.containers--;*this += c;} + PIString(const char * str) {piMonitor.strings++; piMonitor.containers--;*this += str;} + PIString(const wchar_t * str) {piMonitor.strings++; piMonitor.containers--;*this += str;} + PIString(const string & str) {piMonitor.strings++; piMonitor.containers--;*this += str;} + PIString(const wstring & str) {piMonitor.strings++; piMonitor.containers--;*this += str;} + PIString(const PIByteArray & ba) {piMonitor.strings++; piMonitor.containers--;*this += ba;} + PIString(const char * str, const int len) {piMonitor.strings++; piMonitor.containers--;*this += string(str, len);} + PIString(const int len, const char c) {piMonitor.strings++; piMonitor.containers--;for (int i = 0; i < len; ++i) push_back(c);} + PIString(const int len, const PIChar & c) {piMonitor.strings++; piMonitor.containers--;for (int i = 0; i < len; ++i) push_back(c);} + PIString(const PIString & str) {piMonitor.strings++; piMonitor.containers--;*this += str;} + ~PIString() {piMonitor.strings--; piMonitor.containers++;} operator const char*() {return data();} operator const string() {if (size() == 0) return string(); string s; for (int i = 0; i < length(); ++i) s.push_back(at(i).toAscii()); return s;} diff --git a/pisystemmonitor.cpp b/pisystemmonitor.cpp new file mode 100644 index 00000000..1fa5ce14 --- /dev/null +++ b/pisystemmonitor.cpp @@ -0,0 +1,105 @@ +#include "pisystemmonitor.h" + + +PISystemMonitor::PISystemMonitor(): PIThread() { + pID_ = cycle = 0; + cpu_count = 1; +#ifndef WINDOWS +# ifdef QNX + page_size = 4096; +# else + page_size = getpagesize(); +# endif + cpu_count = sysconf(_SC_NPROCESSORS_ONLN); + if (cpu_count < 1) cpu_count = 1; +#endif +} + + +bool PISystemMonitor::startOnProcess(int pID) { + stop(); + pID_ = pID; +#ifndef WINDOWS + file.open("/proc/" + PIString::fromNumber(pID_) + "/stat", PIFile::Read); + filem.open("/proc/" + PIString::fromNumber(pID_) + "/statm", PIFile::Read); + if (!file.isOpened()) { + cout << "[PISystemMonitor] Can`t find process with ID = " << pID_ << "!" << endl; + return false; + } + cycle = -1; +#endif + return start(25); +} + + +void PISystemMonitor::run() { +#ifndef WINDOWS + PIString str(file.readAll(true)); + int si = str.find('(') + 1, fi = 0, cc = 1; + for (int i = si; i < str.size_s(); ++i) { + if (str[i] == '(') cc++; + if (str[i] == ')') cc--; + if (cc <= 0) { + fi = i; + break; + } + } + stat.exec_name = str.mid(si, fi - si); + str.cutMid(si - 1, fi - si + 3); + PIStringList sl = str.split(" "); + if (sl.size_s() < 18) return; + stat.ID = sl[0].toInt(); + stat.state = sl[1]; + stat.parent_ID = sl[2].toInt(); + stat.group_ID = sl[3].toInt(); + stat.session_ID = sl[4].toInt(); + if (cycle < 0) { + cpu_u_prev = cpu_u_cur = sl[12].toLLong(); + cpu_s_prev = cpu_s_cur = sl[13].toLLong(); + } + cycle++; + if (cycle >= 40) { + cpu_u_prev = cpu_u_cur; + cpu_s_prev = cpu_s_cur; + cpu_u_cur = sl[12].toLLong(); + cpu_s_cur = sl[13].toLLong(); + stat.cpu_load_system = cpu_s_cur - cpu_s_prev; + stat.cpu_load_user = cpu_u_cur - cpu_u_prev; + if (stat.cpu_load_system > 100) stat.cpu_load_system = 100; + if (stat.cpu_load_user > 100) stat.cpu_load_user = 100; + stat.cpu_load_system /= cpu_count; + stat.cpu_load_user /= cpu_count; + cycle = 0; + } + stat.priority = sl[16].toInt(); + stat.threads = sl[18].toInt(); + + str = filem.readAll(true); + sl = str.split(" "); + if (sl.size_s() < 5) return; + stat.virtual_memsize = sl[0].toLong() * page_size; + stat.resident_memsize = sl[1].toLong() * page_size; + stat.share_memsize = sl[2].toLong() * page_size; + stat.data_memsize = sl[5].toLong() * page_size; + stat.physical_memsize = stat.resident_memsize - stat.share_memsize; + + stat.physical_memsize_readable = readableSize(stat.physical_memsize); + stat.resident_memsize_readable = readableSize(stat.resident_memsize); + stat.share_memsize_readable = readableSize(stat.share_memsize); + stat.virtual_memsize_readable = readableSize(stat.virtual_memsize); + stat.data_memsize_readable = readableSize(stat.data_memsize); +#endif +} + + +PIString PISystemMonitor::readableSize(long bytes) { + if (bytes < 999) return PIString::fromNumber(bytes) + " B"; + long res = bytes / 1024; + if (res < 999) return PIString::fromNumber(res) + " kB"; + res = res / 1024; + if (res < 999) return PIString::fromNumber(res) + " MB"; + res = res / 1024; + if (res < 999) return PIString::fromNumber(res) + " GB"; + res = res / 1024; + return PIString::fromNumber(res) + " PB"; +} diff --git a/pisystemmonitor.h b/pisystemmonitor.h new file mode 100644 index 00000000..2d9458d3 --- /dev/null +++ b/pisystemmonitor.h @@ -0,0 +1,52 @@ +#ifndef PISYSTEMMONITOR_H +#define PISYSTEMMONITOR_H + +#include "pithread.h" +#include "piprocess.h" + +class PISystemMonitor: public PIThread +{ +public: + PISystemMonitor(); + + struct ProcessStats { + PIString exec_name; + PIString state; + int ID; + int parent_ID; + int group_ID; + int session_ID; + int priority; + int threads; + ulong physical_memsize; + ulong resident_memsize; + ulong share_memsize; + ulong virtual_memsize; + ulong data_memsize; + PIString physical_memsize_readable; + PIString resident_memsize_readable; + PIString share_memsize_readable; + PIString virtual_memsize_readable; + PIString data_memsize_readable; + float cpu_load_system; + float cpu_load_user; + }; + + bool startOnProcess(int pID); + bool startOnSelf() {return startOnProcess(PIProcess::currentPID());} + ProcessStats & statistic() {return stat;} + +private: + void run(); + PIString readableSize(long bytes); + + PIFile file, filem; + ProcessStats stat; + int pID_, page_size, cpu_count, cycle; +#ifndef WINDOWS + llong cpu_u_cur, cpu_u_prev, cpu_s_cur, cpu_s_prev; +#endif + +}; + +#endif // PISYSTEMMONITOR_H diff --git a/pithread.cpp b/pithread.cpp index fe3e61e1..921ea796 100644 --- a/pithread.cpp +++ b/pithread.cpp @@ -1,10 +1,17 @@ #include "pithread.h" -PIThread::PIThread(bool startNow, int timer_delay) { +PIThread::PIThread(bool startNow, int timer_delay): PIObject() { + piMonitor.threads++; running = lockRun = false; priority_ = piNormal; timer = timer_delay; + /*addEvent("started"); + addEvent("stopped"); + addEventHandler(HANDLER(PIThread, start)); + addEventHandler(HANDLER(PIThread, startOnce)); + addEventHandler(HANDLER(PIThread, stop)); + addEventHandler(HANDLER(PIThread, terminate));*/ if (startNow) start(timer_delay); } @@ -13,6 +20,7 @@ PIThread::PIThread(bool startNow, int timer_delay) { #endif PIThread::~PIThread() { + piMonitor.threads--; if (!running) return; #ifndef WINDOWS pthread_cancel(thread); @@ -79,12 +87,14 @@ void * PIThread::thread_function(void * t) { PIThread * ct = (PIThread * )t; ct->running = true; ct->begin(); + raiseEvent(ct, "started"); while (!ct->terminating) { if (ct->lockRun) ct->mutex_.lock(); ct->run(); if (ct->lockRun) ct->mutex_.unlock(); if (ct->timer > 0) msleep(ct->timer); } + raiseEvent(ct, "stopped"); ct->end(); ct->running = false; //cout << "thread " << t << " exiting ... " << endl; @@ -101,9 +111,11 @@ void * PIThread::thread_function_once(void * t) { PIThread * ct = (PIThread * )t; ct->running = true; ct->begin(); + raiseEvent(ct, "started"); if (ct->lockRun) ct->mutex_.lock(); ct->run(); if (ct->lockRun) ct->mutex_.unlock(); + raiseEvent(ct, "stopped"); ct->end(); ct->running = false; //cout << "thread " << t << " exiting ... " << endl; diff --git a/pithread.h b/pithread.h index 91b02cbc..4bad446f 100644 --- a/pithread.h +++ b/pithread.h @@ -3,6 +3,7 @@ #include #include "pimutex.h" +#include "piobject.h" #ifdef WINDOWS inline void msleep(int msecs) {Sleep(msecs);} @@ -10,7 +11,7 @@ inline void msleep(int msecs) {Sleep(msecs);} inline void msleep(int msecs) {usleep(msecs * 1000);} #endif -class PIThread { +class PIThread: public PIObject { public: PIThread(bool startNow = false, int timer_delay = -1); ~PIThread(); @@ -29,18 +30,24 @@ public: piLowerst = 2 }; #endif - bool start(int timer_delay = -1); - bool startOnce(); - void stop(bool wait = false) {terminating = true; if (wait) waitForFinish();} - void terminate(bool hard = false); + //bool start(int timer_delay = -1); + EVENT_HANDLER0(PIThread, bool, start) {return start(-1);} + EVENT_HANDLER1(PIThread, bool, start, int, timer_delay); + EVENT_HANDLER0(PIThread, bool, startOnce); + EVENT_HANDLER0(PIThread, void, stop) {stop(false);} + EVENT_HANDLER1(PIThread, void, stop, bool, wait) {terminating = true; if (wait) waitForFinish();} + EVENT_HANDLER0(PIThread, void, terminate) {terminate(false);} + EVENT_HANDLER1(PIThread, void, terminate, bool, hard); void setPriority(PIThread::Priority prior); PIThread::Priority priority() const {return priority_;} bool isRunning() const {return running;} - bool waitForFinish(int timeout_msecs = -1); - bool waitForStart(int timeout_msecs = -1); + EVENT_HANDLER0(PIThread, bool, waitForFinish) {return waitForFinish(-1);} + EVENT_HANDLER1(PIThread, bool, waitForFinish, int, timeout_msecs); + EVENT_HANDLER0(PIThread, bool, waitForStart) {return waitForStart(-1);} + EVENT_HANDLER1(PIThread, bool, waitForStart, int, timeout_msecs); void needLockRun(bool need) {lockRun = need;} - void lock() {mutex_.lock();} - void unlock() {mutex_.unlock();} + EVENT_HANDLER0(PIThread, void, lock) {mutex_.lock();} + EVENT_HANDLER0(PIThread, void, unlock) {mutex_.unlock();} PIMutex & mutex() {return mutex_;} private: diff --git a/pitimer.cpp b/pitimer.cpp index 306f5c17..bd9567dc 100644 --- a/pitimer.cpp +++ b/pitimer.cpp @@ -1,10 +1,16 @@ #include "pitimer.h" -PITimer::PITimer(TimerEvent slot, void * data_) { +PITimer::PITimer(TimerEvent slot, void * data_) +#ifdef WINDOWS +: PIThread() { +#else +: PIObject() { +#endif ret_func = slot; data = data_; #ifndef WINDOWS + piMonitor.timers++; ti = -1; running = false; se.sigev_notify = SIGEV_THREAD; @@ -14,11 +20,24 @@ PITimer::PITimer(TimerEvent slot, void * data_) { lockRun = false; #endif reset(); + /*addEvent("timeout"); + addEventHandler(HANDLER(PITimer, start)); + addEventHandler(HANDLER(PITimer, stop)); + addEventHandler(HANDLER(PITimer, reset));*/ +} + + +PITimer::~PITimer() { +#ifndef WINDOWS + piMonitor.timers--; +#endif + stop(); } #ifndef WINDOWS void PITimer::start(double msecs) { + if (ti == 0) return; spec.it_interval.tv_nsec = ((int)(msecs * 1000) % 1000000) * 1000; spec.it_interval.tv_sec = (time_t)(msecs / 1000); spec.it_value = spec.it_interval; @@ -30,31 +49,50 @@ void PITimer::start(double msecs) { void PITimer::timer_event(sigval e) { PITimer * ct = (PITimer * )e.sival_ptr; - if (ct->ret_func != 0) { - if (ct->lockRun) ct->lock(); - ct->ret_func(ct->data, 1); - piForeach (TimerSlot & i, ct->ret_funcs) { - if (i.delim > ++(i.tick)) continue; - i.tick = 0; - if (i.slot != 0) i.slot(ct->data, i.delim); - else ct->ret_func(ct->data, i.delim); - } - if (ct->lockRun) ct->unlock(); + if (!ct->running) return; + if (ct->lockRun) ct->lock(); + if (ct->ret_func != 0) ct->ret_func(ct->data, 1); + raiseEvent(ct, "timeout", ct->data, 1); + piForeach (TimerSlot & i, ct->ret_funcs) { + if (i.delim > ++(i.tick)) continue; + i.tick = 0; + if (i.slot != 0) i.slot(ct->data, i.delim); + else if (ct->ret_func != 0) ct->ret_func(ct->data, i.delim); + raiseEvent(ct, "timeout", ct->data, i.delim); } + if (ct->lockRun) ct->unlock(); } + + +bool PITimer::waitForFinish(int timeout_msecs) { + if (timeout_msecs < 0) { + while (running) + msleep(1); + return true; + } + int cnt = 0; + while (running && cnt < timeout_msecs) { + msleep(1); + ++cnt; + } + return cnt < timeout_msecs; +} + + #else void PITimer::run() { - if (ret_func != 0) { - if (lockRun) lock(); - ret_func(data, 1); - piForeach (TimerSlot & i, ret_funcs) { - if (i.delim > ++(i.tick)) continue; - i.tick = 0; - if (i.slot != 0) i.slot(data, i.delim); - else ret_func(data, i.delim); - } - if (lockRun) unlock(); + if (!running) return; + if (lockRun) lock(); + if (ret_func != 0) ret_func(data, 1); + raiseEvent(this, "timeout", data, 1); + piForeach (TimerSlot & i, ret_funcs) { + if (i.delim > ++(i.tick)) continue; + i.tick = 0; + if (i.slot != 0) i.slot(data, i.delim); + else if (ret_func != 0) ret_func(data, i.delim); + raiseEvent(this, "timeout", data, i.delim); } + if (lockRun) unlock(); } #endif diff --git a/pitimer.h b/pitimer.h index 4daa4c79..04dd6924 100644 --- a/pitimer.h +++ b/pitimer.h @@ -5,6 +5,7 @@ #include #include "pithread.h" #include "pistring.h" +#include "piobject.h" typedef void (*TimerEvent)(void * , int ); @@ -23,30 +24,34 @@ struct PIDate { class PITimer #ifdef WINDOWS : public PIThread +#else +: public PIObject #endif { public: PITimer(TimerEvent slot = 0, void * data = 0); - ~PITimer() {stop();} + ~PITimer(); void setData(void * data_) {data = data_;} void setSlot(TimerEvent slot) {ret_func = slot;} #ifdef WINDOWS void reset() {t_st = GetCurrentTime();} #else - void reset() {clock_gettime(0, &t_st);} - void start(double msecs); - void stop() {if (ti == 0) timer_delete(timer); ti = -1; running = false;} + EVENT_HANDLER0(PITimer, void, reset) {clock_gettime(0, &t_st);} + EVENT_HANDLER1(PITimer, void, start, double, msecs); + EVENT_HANDLER0(PITimer, void, stop) {if (ti == 0) timer_delete(timer); ti = -1; running = false;} + EVENT_HANDLER0(PITimer, bool, waitForFinish) {return waitForFinish(-1);} + EVENT_HANDLER1(PITimer, bool, waitForFinish, int, timeout_msecs); bool isRunning() const {return running;} void needLockRun(bool need) {lockRun = need;} - void lock() {mutex_.lock();} - void unlock() {mutex_.unlock();} + EVENT_HANDLER0(PITimer, void, lock) {mutex_.lock();} + EVENT_HANDLER0(PITimer, void, unlock) {mutex_.unlock();} #endif void addDelimiter(int delim, TimerEvent slot = 0) {ret_funcs << TimerSlot(slot, delim);} void removeDelimiter(int delim) {for (int i = 0; i < ret_funcs.size_s(); ++i) if (ret_funcs[i].delim == delim) {ret_funcs.remove(i); i--;}} void removeDelimiter(TimerEvent slot) {for (int i = 0; i < ret_funcs.size_s(); ++i) if (ret_funcs[i].slot == slot) {ret_funcs.remove(i); i--;}} void removeDelimiter(int delim, TimerEvent slot) {for (int i = 0; i < ret_funcs.size_s(); ++i) if (ret_funcs[i].slot == slot && ret_funcs[i].delim == delim) {ret_funcs.remove(i); i--;}} - void clearDelimiters() {ret_funcs.clear();} + EVENT_HANDLER0(PITimer, void, clearDelimiters) {ret_funcs.clear();} double elapsed_n(); // nanoseconds double elapsed_u(); // microseconds diff --git a/Описание.odt b/Описание.odt index 87361e484f7fbf48ed16117cce6428b4321bac84..41fa2ab32e3216f1dbed2fae393604792e37c76a 100644 GIT binary patch delta 45474 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 PK{9}JaE5<}IpF^R$H1P= delta 37696 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 Siq1fn)BzIA>Y4Oe5Bd+8q)o#B diff --git a/Описание.pdf b/Описание.pdf index b9ecfc091060a66db00c5d20950999feb057f591..846efce8a16ccdff94a2bb856c7846ecf2172dae 100644 GIT binary patch delta 217437 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%0Ais88Ic3oE(R8#Q_%%TR}!H5RgFey{oal{ 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%0DfNq5mBFjZ~~CE(Z#A(s_lIHB&I!_lvx3v zTaEku?aJOD@voy>624{)(vRASmky<*YIm>1AJqor_;NUa);dc%sexFAA(!qF{=ko| z9`Pk7lR!&f%^Imzf2$y2>AGyyY9%%k6?bWAKu|eSOKc4j#LltQ6T~*3Yw*-4qt@$o)Y?ZnY(((PC|1| z?1l{T>avJlY6Db=_%piJQk;+v+AD|s8y=tkdM)f?P%5U240|j6L=@fXQ_lpsa_$~} znEi0q(F^Cjwz8X-g4}?b9$4j{2Mqp7(aXnFdLG#k+(&;PavORcM;^J3jFHgX3Hj;d zIX;-4eDN<4PE)Tg-Yv$tI(XpDKHUr1R81Q8FEL?OoKJ4p$b+WCg-U^dD|#5Kz}Zw0gQlR&2(^k z#=6I$6vN2tx^MSKX67NOijtG(d9%a{hAmZc=kf0YjVbTQUrFBNJx}W~U!qtKg6@b< zT4F!M95@_KpI(`>Ss!=w#?15}b0!EQhV5(As|^vB&a=Oqrko2K`BR;l26a6zO{ zua5Fc1C7QHRF*>U?s5qVfMV^ciVGu=h}K7{_A{J))z8Hbt@PLR*7yw8%Fv196~RN$4zZz?)rt4oTjC0O|G4pkYH%GW#QGrrfR{!;0G z3;7DyL%7O&TPCdR8aWGonqxP)G~V7bJG^z*+k{?$a^ZLTUI(+K3cSOONX?;5AN_C< zU+FD!t0T45koNSrPwMf%yP8RLv^~js*DcvoA7?vlc@WFHT(Rc#-00QXoZQvhFK<9T zdL6$8eorquoSodPbu~=06sSYg)lx#0sd)ZDs0+5b2Yb#gk&?NIP|0j*87BI&Q?J}E zwyfrsI92IUUmhrP0H^|DSYZG5qT`vN@nYtdp~xTJ{MJx73Us4K-jeYvVN&1;o*<9v zF}NCdvCf1ufpS1gpERImyxqy@%Z6e@XigAlD1n{jht{v_#wm@Bi36Rzb)Vox@+4g} z9pDqO8S#h=P9M9T95+IZ5Kp>s%vA%;;i)7V5bJ9MIrWt20&ps5`SYP0!mbmcuSd%4 z7C>CFLPoA*{$?8f%_QVyQIT2TjKMaBa$?m_oXSzZFm62(?(mwPVU=s}w?Qf)LEoZj zG`2^;_(_Ew73@hLIi(p1*$KyqWnBo?WI|gKJI50IWL6-z(*$RlpiJH1$dJgHlmbT> z`Sr^~eER6#3>f%(aQ{tE7Boc`xA&>{;dojd$-pp%Q1(RFaya6u+BI+oo?_X-vH-a4++&%w_9Z-iIUzs^e>fO)0c8s7JXHLr$@0lVN zxHbP)f&H5E6r-$vv;WOn68G~F37bu1sf=~HBcn{g6b2aRNr4jsvp9V^=I1?2@`?Vj zImcI@J=k=v*T$SQGla19BWi-XCj>st>r+mdDd&&G0Iy?a<>^r&;iTMjgjTYChi!1}(bx|Em3U;!k%=4Ork-4pL(6^1UVcxaZ0aIN1ENKL7_XY0F9A$A6NXP4iSyFDsFbSr4gcoe z79cG}*0TqPrbx^XT@y-P90PV6DiLPe14({F%OVb^o2`@fjvb95qBHv%*Kb9Cg;k1* zd~+f+BOWhNTmHKM(LWFdnSicUyiei5h{#@3#X_N#?7=$R&1n+V$tkPj61i>|>DN1n z?(31utqAXnom6+pL5Ha0T87t#a68BlJs{Q2?Zb8UD)w$l`|_$3cJBh;rYzi@e=xxS zR>VO4LK^EOH#P)$z#{eO;Oq7J8#q}wJGlBhNWi*fA}3OG+!Y}@0V5}RjYZZReFN^| zwn`4{@DS#=y+%DJMmq*Z-Q73^A~OpPvRWSIc@jITD9xzdBjQ<}HVRpU4r;m&09h%y zme^lsWJSLcGYby}nQx)UN2uMi;*GRq<`t!)6&zFJSE#rku94gm0>tNEQoxlc$pLql z;`$}T7S)CBIkBYa3uxnbvx{L{Y zuD878Gm2^)?#c0HR4)uXYqDbtK*!|#LYQ$%8gJ7A1>aK6d1IV_0GGn+9rNvh;4P(; ztHLb=`9{l&^oI0k^GMY^J8;{Y#9K_MMeU9O<(?Q%M={^bC1+V+?1XO-bfcvuIY9

OYLe_<63h=-L=gO&^?!U4xL zQW`yW&R|`a6aNiEpYjhz-XM9x9=}CG>?Y-uR>TVb^Q<>yXN+x}s%>&`$xp3!fvP|b z*W`NvckP4<>6YA>q@clp3$uUx?#CFTl#*Xx8M*OsE{Mf3M7;1=tl!o=ic~yhY#%J> z{0{7QSlge8--QQ60V$}yGa=CLB))?p)LSuwCtgLZ;KuruDXg;@2*5lV#cR|fm|2}1sv_^h}G0uwE>2b{4e+{#k&Z>f%%5#KbU zF_<6yl|7%`mJ36qYAHgeiPUdGt?1{8SfkRQ9n8O;ww{+ZC1axLWC6XB@h}A2xW&UJ73ul1c=LD#?&6SMv>aG{>}xV8uVZkRH*owgImE?!5+3NU zH%rrIx^)qM)Glow9_{#rCD*Qtn3j{2-9MM(RowV*wp1&3Z?nm#O`Qa9KljToSGUe1 zzBU#y2zzx9sZj(YD`Ny)dTv5CZMY_-`$zyKj~pK37`| zDLH?YU$s=^5AVupLYQVoKK?FzDi>!yv|bG7#I(HabN;pKZFwtFj^2(^Sa(vZPVv?X z_Wn|(XlTz?YnU?Sr}lo@wv*Mdnm)_>s3RI)HI1w~)1HyIC|zJ_O!4tUnkVFzs>w|_ z6hE%K0r~hobpx0U*)jLtnzFUIQV@iFfw$t6Z3CDj@&zd^Dg(EhOjpiiP~cn`HbH5Oz=1w zAyAoD1=J?DeC~3-1VG0i&zEi{2tX{JB@FLo%*>Y#3H&T@{i2;ywQ|^TaarAb*7}{1W}~mSeeHP;LIXMgVGRjtMN^6;1~=lH zs;beA;glt#}Cf@Hmx)}v6 zDNMf7lMN_n%T^jWxTT=S*MwMB*bQhAQJ<89Z`AD%Q=i16@{NL%NexIVY@quc9a#iC2VH|Hb<*L6j23pe z@L=)2@?4Rtd@7s6W3shjn1=!*OGlg8!jbwFcn-L;N3|UwZ$;#b{3KVM7V4emwj8a3&+s23CL2}_ma-nkk zW6gJq%%xRhD~b?&)$1>ly-}hsdFQ3TjO^@AB1eFmiEA!7 z)lRyxY3x`%)R@RK!G=SV|Ap9`3L9I{2^tBnnd*uh2c@MBBaIARNimLP?N5e~2YM&Y z6nkP;qS5Fyp+SR>ddJME?z{9T=5(2Kw9n`X{>ydg!)BPTD%$bR%@k z;rKb?qdt8lrIW;5dAGO=<4{`vKUs zu8KeY@Vpo;Z1sAI;$h$WN|Yhm>=hQUX?32=Qs?uCC^$T(59!SIZX6l1HI?6K<)g4Nbtl9YD$8L`s zn(ao^KnFBHbdD`pl*4^+Xw-uGaS8zFX7IcX#3A(HyrzLtAb!0;W?i8h{m+>AK5-Wa z4ZLk_K+M7CIs4dV5444=vg6+eeF>w%Xs>ATygKt}C;ag?oDsW-4FgO0UXCc+nO6Ed zcl`b}2P3EN`GX^Cv<_?G2Ij$6+XX!2 zZ%3fE^09bML0st|*L=OrAb@l#FS>D!w3g$dV|Z7Jy6PV}MrATcbrzzHq!VbglS4cp zDg(#Fh>hCk9|ZGLIFR+F+QO;2diCuz32(DyC6T_(j`}T-;IYMdxAFttb>gTtg%Ydh zL-6WwuVGEPt?jDQ4KjJ1;dnae7~FF##?UMb!&>{RVLpIgTHEI9HcE8@?&P+d zngB1oIEuENg(HR!teL2wfzUkUzYuZ3=F({HomF|k^0 zVqNlQ5^IkLaK-cSi~1WRgA0OiD-bwS+;^GSc*4mwW6PTAK$2}u2ZH!r#0Hzm=H&2a zMhe#S=@&tFVY5(pinXufr?_j+y|Wy(+$aHX{`w$x28vFrg6V zTZ1;a-xq1KDmiS#v(>5kir!t*gYXqiXNuf)ri%1%70dk!IG^*(i^V;rawZ^tDj&r3&^K|7SW8n8H%Fp!p+GUYUu%-ga(u zqlaKw(zzU=>&6+1=A9CsTW-yc3>_8>cN0@J_#1-F=8mDA`lEHxkR1X%*Br4DyRUt= zCKxY+3Xt=VnXqU|d$LrpA25;m-j>f4c2Td}s2t>L?)c7BKwY+$@M zLMa$SyX)?|6OZ_1Em7yosa0*>xVEl}j??CJ#Bx!wKLWVKny^Vxtyuaso_BOSNrK() z>50i$pne{cw8$Tx8p4t;G9kW5Q~}LTi8KvEJ@zGmIWeiUFqRfD4Bv*xi?O5pR(`@v z0Y_S3?I4<@d^RDGeZ)olkJv%hpPCEzY)7iBT%h7UQrZcg79I19co;zTtYg^oJ0B4t z2bn~lWje4{ZeRRc{4h88f3S6r!JR~5zJO!fwr$(CZ9ADb`NuXVb~3T;iEV3Q+urPM zZSB2v@3*e5uIlRQsy=k4?VA##)I6cqV8sZ-@QM6V3q-oC~IAxvq{UMTmfvRlMgwn^jy zGwA8hmY9IT&K$~{3;(UGNPv{1xUYZ2_w=;;b^O)CJlCMtkxg%s7f0Lm9Vf+~$N|a_ zM8UHFAPXf5>UWmH?obM{fQTg~HT(HgRmBHoM#aHZK-7@C=R)Q;UU)`sQE>v?vm$;G z#E*X>#Z#mZWL???b-M8n?XGOUtXLhEa~h<4s=l+9GG+T6&cBp=3SRHTz$2O$>r1EA zYp&{c-?yaa49Kv3PX}-MYrPCh2}|aQ9udX^zV_{=u-RF7WyhvMyi?;ASpJ12k}0?0 z$|v<#4GxWHqZW(7(#0t4?eC9ILZtkdrh~Y9vriAWaF>x@8y7oM_Jp9@D0vyoBm!}n ziDO9uNoWViy!B|sTvbXR2xJPfGMECY#prP!g8m+vM;v80+57(e9;F-o9@(ltBljf$ zoujOKjALip#VZ;9E-R}J&ZS1L`t6{F$tGOush#tS2#&PK+>&^kkPjQ>S zNRm!+E`}907%}aPm}6Z-g-6Renbd)L%l{SqSi@r{!TPT*M_mqgG-8N@AJocTIUo&s zyH4N+awa9WmDB$%5F0S>cEzopUQG*FUGIHmxPJ98_)H%lrN14&i25s%&E>Ml?{j&4 z*4+0GByacHan>&agNza3-o)wt*J`{+_ozchMEAG*v3M8G!?$oIRQITN3*62eK%4AX zfc|Ye?A_5s->M zi+0^KsJo9!9=w#Gm7ve0Vt|l12HUo+8-z12{wtm>{|;8Of#{ue0~yY)9}^Fzx7oqs z-Vx;6NRiLG_4Lt;%$BBL>D_83F!QaSz^+pRwwXY#lDi8w zE84Jc=M;cqI9_A^t*r~+e8U3h%9THN9GPKnv_~>O7M9zg+9O5oVD$V3r~O%@s{7kG zq{V`ItVkm-@>;@S%6HTsgjQ6&7a=&n#Y^v1FFP>V#i5P(cq`A2+jdQGt=ILc zoAVgII_~d#R|9RS;9+%;nQYiyY7Al`Wj@-qfQ4S&9x?{QwqT_dFrw#t_KXcjy(w1g zm3|Om#PWVM5#b`;Y?Ku;oNhru&r9_e<+cf?X{XB{$1dM%%SWIAzXI?R0#$^-^xi=b z43$C(Z3>7{840@twB*NEL`1%y7Ls?dD+F=EUR_^3_lhk`_j{L?CU?UiA8ItlWGWj9 zv-xNo%ea-rtkfgxNtnqW{cxQ4Y25Pht~-b`Vd$kPopK070N_ieT%3e08MRP0d$?`iEZBC9l14F9FI#$iLsvx=qefZF=gxN?>8uUSAe`q-N!Nj|y zNwj0EZKG|4E6HdyysvZ2F5j9IdXS3APU7xj}>LTqmc_|tpcZi!fbo+>)>CCt*l z`Z)3>6(!J#DehKrfy6@}0FIIo?Wv?3-blwxO}mhpl96g16!>#U+eim(FVi+zM_oDA zMNK-FX~cmI50R2cZ#hJn_)?{ol$uO#Zt-{G82L*9Fu@v>TNHn%LC-;d&Uu5NoKwI= zE(yT}xd$(7-%#EKASJ)tbv^&$S@1Y*rtcZ}HJ_WNeslGTr1poe98Z<4E=O;t-tA4! zJzucN`PU_0i^4eG>*v+;+WUAx7Qk)Db<;5aFAbOpjrN0MSc=>BD@=N0JU(mrgWo0x z$I@>V!1Ia99DnDUM{7Fo-r>=Rj|LgfOX~<_8dJ`JR zpPz^B!uldo@J}{R)ZlYg+cd2lyTdBk4$O8!0yHs_L==R`DbRr&+f?k33(Yc3{)T0e zmPfcDhOt=Uis*xC7_D}2Xh=727dqeFkYomI>|YaG?;%1 z2;qH+Z!{o=KGM7AN>PM?+n=&bwqaT6iqx}=E0eI1Nmor(8{lG7Ah4xkisQ^d=LDCh zSQ-tjJfsnAZqL*hsaDaE$F~sdR@fG6Br2XHDV^M-huGHsiW>0P<@3c(zEN{u5_qz0 zG2oFLH+|mi_*!`*9H76zh@c#-NQn*wAW%l(mCO*w3tm)7B`AX&6ulr1l8BmsEK##i zDX6@}N_BaJcjYNr6eOt&H*LAW3S;V^(m5{{JAtdL>8W)(f>F&BmMQypHL_`>vsK8l zt{k%Ji0Xe3v#lUSGFwkQC{*bbV9!7N2AihGrVmL9;j$@!c11y(6>pGY#NZ20 z(mHHL*7jpQD;nM}+A|&))~&J*Loin6AuU*{=5BmEJ+!kDrDxAz;MB4f3mLj#(14o@ zAr`YsmyDSbU6rPwQAQ?ZS`xwvTa7l#CVSP>Q!8j*NF-rEgP$JW<+PJljB75nUuvb?)EPJD<=HOv0_tIy`R;im{|%?KG@QE3YT(gO{LsCH<>xp;?Sg!e)oqtf1QhBEI~(8$&_k@#6?e!b z+3x+3vPw=cEV<=bl>dwzkp&0+W4Y_FlL=@mhPI$_1q8V#%}o4>@s@W<7A{1J`e%!k zu@6Uvu+2#tIK1$X(1nNU6ilmhRYhTN0pg zM=_GV(2fxfM z&@G0nq+oP6W~ukKk&L^1CMWM)>dO0YqfyYV&nKZXL6!bBgQsT<@O}RX!6q!wOXhn0 z{v2@S5c`5*s>@Z+$b^sXOP8M$gcn+w8+tWn(5bY&n*1vu=~V1+R=p0F?|2W!_H)KbZyIOc=u;JSXW< zm`hTz#BB1lKAr?lWsKbNZ*tfI{5OOzTu4@XI$?&lL;;E$j9yK`2_}C%LRz5vOo1ax zLdSE{lL#lk0i(II6`I2Q2x*f0E{UI=aB@=K+=vERI?66F@=)0zusEHl^&qP1{3El3 zb@|epmI!wF#3OUpXW7%4DfY0(nJKst!l@~!OL0$8y!>cxT6z4wlJ>frA0J6C9evP9 z5Krm#(uhV12kBo?lJVcn1thbL3@47)P?h^Su#0|-~J^5M`He;hVGuFOYN;@mf5YE=_j{rGt&~s5=-OS_4VCThv!f= z#o4mA&ZXS#GzCEA8N8d<#}@K$3Pleq_xy!Qj=lj{Z$IXVv(qZZ2XN6Zp;jF|Ef(eA zT_RKf*XV4HeW1fXW;ha$kO6*kad87J!!2Dbm#D)brTkSPvq{VNY-XQ&TGnFmip!zmmv#mOoo_N8z)lEAS3no}=7t_nO_rE6^_V~`wP(*Dl5p^lW!h*^6~u(A!1#4g$k0NGNn0Ie5SILv6@8kd5vy4nYq#MN2F_M2G;u;{GGd z82i#K&?8u2?Y4qqf{TcO;pomb{i@Z92|9-};$ss?64DOxE~OhEd0Y|*Z~>Fz@eR}i zKe9mKYC!kZ^sfrR;VEiN%9H)?VbQ)j;RxEK4RRC$fg5f^B|9BdC~wgUKPH6BZ1)4; z=KH#4*wjGtvj

TVXQis%|3yXif4G@HdfZPqT3Z*3!ZP=BB8#=0!jTqSYc5 zes10RE;O)&;WJW>Q*E?&tLEk9(;1wkc1aMo{9jdV_Q3@{q+N@BiMu~Jd_F=|Vn9B8 z)s=jgL|B8y9sw?zpS}w0A!uZDMsq7`!x@?TDwQ~ATQ;hqsXoeHMY7cZYn5Y84!Wvx zH}#6AJBr^M_-BPU&)H$%4(LQU6X#p9i(xd)UH*|ex~hh!O8U{qoE@2&R-#2Ztd9Qr zv9QZFXS8P+YRik7m5s)Re!;rcl^L4*5XDyz_3D!9`!;){N9{PYM}1Ac?(+JvK9Rv1 zOKs=CluRps(kkyKaJSe2=&)zwxJ$3FILDl9?Ld;``PH@MwKiZhHC_xzAV}(LlZNwJ zs{A9D0rC!7Zb}}eUM02$UZ&Ne;AZedE=4p#FoCjt1sxc7Q}V9k=Vyy+>{k>XMU}n; z;fL$xHIBcJ3)SIa&uAyM*x?_~>@Xu#1UjcnZXpWQ7E@OyUH_y44)4b++qsZQ@Z?Y_ zD-gyx)jH4gV-J5JG+Xyn7KR}T#k0rOz_bQ{Z3R=Dfpwz8Kg!p*V)lXbiA!;v6ml~N zgMd+mf75_jihOt@rSCg)vUNaeYpX3BxcoVcWtZP1QICc1V`#M$O}z;K&sTKl^3E}I zAnkE4^Z-KJsfN`;KBcJz4Ux}=*UA?)>hILE)lJ`=1K~n=5{7`gRYQTA2U4W4{YWR7 z2ce|S%ol_k6MKC4YcmTdFbE6w&Okx=qYTZJYUMKfg7_xFuT=6;>6dd3^V4_=LWQ|- z={qAwDAp_>^-1D~6#FE6hItWu5}95<4}t}7l&lqF=k+!3Mp*)Rl6{nUfP0c*Tc<5I ztkWzMeG6iorJYNDlsP+nmSHQ^jDp`GzC>Acl|r$s&@c4vEcP#Vk3=xm?BdKlO^bAg zTx8s0nPXjNQSLTZ>Ghlti+9XeWSnQ2GuEYeyl;|Q)bDZH-h`NTf6ZoG#Gm_fU|0&^ zElj+U`efNcj=hXq{Liz-ourQwZjzhY;b7xN`=W~LFMsliZVSpBd>0q2eE(SahCLyC zcNaiQ{>v$}&JT5>UtAixS-E57dtm6uP1 z1ij8}z!9;p3CKXOue?qWXpw(!?bb6BEDgyC4ak$RitU7#G2pl-S*X$y&L2>azyfw3 z@UIKYj2`%MXfM(zgDK)rjco&rLO$MjYh16^cvc3RCa6|3+z|dI6bLiG2Z`+v)hAe_ zEHq#M(x<|tPTUQz{yuVhFweR3HRRH-&lIQ{Sj*v*)l@L994EI5^fyBN0^*D}*pBfo ztsbaweXtMaNXHvjH6Eknq9DL0{N;G8xZnm~!F?)?0BgwRa!{(kXpHfzqzv89Qs5}O z)kDofkgvc54TE-bq9de6vtI{@?q()5q~d3F}+e>>2$gJYWA{5 zTehh5_4m;XLcgYvREGAV`)E2Tsmq<|EO*4ik4u&E-&I1}6o;O=7h-EiO zbZIjCUq~LYW$2%{D-?ijJ&L#)6vC}c?1n*ssASBqmp0i|)kgN%F(TsCORh+~IAQK+ zF$iUF3wi>!O@IAL(Q1HAIcerX+a>nHN!>r%vtP=Q%TRu9IT)c*Y)z3>Th+2B(FG^y zz1d-+o9z@DAYzq$W&L6oD-<+QX=@}HHt0>=L8iUa))^5Bth14oq=& zCliVjh?hD7_yXd(M6F00Iu6LeE7j0Rf_`rFcCSCR*6Xu2k;iCHa1k_RXD!z#&sJYt z__`tD!>cTVR_w~-bho&Y;S%xa_ zGU@gE?QKPv^8SL4mMdOS%|ATR^t+t5rl%>w6LIiny>bK~JgBHKp!&^(b6?ObGPC7P z_S~mgX+V&u>=(>ya#?eWr(G~0Arn4&Q_&XgM&S21S>cE>QIAva>M2TQmi~gEvUayg z#*_`yc7PG5vY_8#yU3D`ew`$7kT-m~f1C8rHC9x;q~`<8i~S0H>5}M`x*Joae`?0r zflBiUGs?2cx$#DR=@C(S{zAZ+@$e~I-()O?FyR_i?owYSjGrDUpEgvZj8-+8J2j@_ zi)&}ZusG8Z7Va!apzOdLR4?8$N-@l4#qWD<`o0xVhMtvB4A^w!RS-w%+mn?kHGyxg*p*VwWCp^HGb1R1DR%4-pQ5s<7}yQ^}fC-hZ=<7}g?8tT6HcuI#y7zFZ687me+a63yGDi8a23jjstl^~V|6Cf~(*1g z2n23Ko}T-+v+3ZIx?|z96<-1|#dAI@E6N?50o8{pQV=h1%0B~uoVr=Z3q5K6UA@S! zZ`YFFt|ceX1K&BvGHz0#pGVWFCrpmEJ7KQmJQwXMYK67OKLFES*S~Xa&BBxWTw3w( zGdGHv)WTbi2fb6XrRRe(+4cAKWoh3Hg>)($?+&())8Q4@4l%_7eRhf9ohwxe8sCdS zhof^r^TM4yRSIvwCbjB={_{DXdExhCiuC8YLdMB4*UyOA@N=nK9a7yi`lih~L-?`b z&KffQ^3l%X8Z!Uxh1BQpbli#bOkAO*km2VV@+Y39WZB>MrCfY*mh&;%@kmO62iWYF z!QA=mF;v305(QrcU(0tBN&&W`!DF>!1k1e;3SSU^$|yiCo04$&3{3A}Z#xZ&w>G$D z;=d`{j#81i-lx9xS%-`JPah63B%Bwhn%Ix;O1C}B-lj3`8yeDDvZVBdQCY?`YDVTe z6Kt=3*{>(0S6WiQ7;!ku*nP}LMxr3|outH9->B=1PRcQs*Rn{izfJHR8>yl_k)nWe z^Bozfq5yzK@b(4eFtTzCHS1smASmJG3+=T@{p}C;icbppHtLA|Do^M|m&?~8?Vpk; z`8Hb1nP50YhRAyNj}d=7IObzs_=)wd?{jG!6nFG<=>XI3KtRHOdbB&{54@IguCZ6`8d4 zIgxNXt>9x;)?tFE)%}2~)q9M7I#B<0oZin&Q=lC?!10Qd^HNUPL57sqv5AIPbu?C^ zVIR_Y93l0CD9-NNzo(%)-j@)lH&4-_O+dWe7_R-xM|%8``oKrp47bV=SG*@nq^9$U z_z=J&QPXYF?s6%5ur7bcu6azmLPxp6by#^nrXHhrO0G%QLZiuamy>9AerP_vEa2kB zrQ6;Wqvvj&=AzBq?j~F4VvVupA|2E~o~YNrZO~2@XctGB6);L6!C+x#O0$+A#$aN` zPm0OXz>rflMP@rcYSY))5&!VFx-~uoSOAbMFX9AiPb4hCfFUgm0?FHJ7zNTRLO#8l-th?f^-3!+SF{l*wb8xIb&SP znmL0dgGMzQG)At}tU)zbO(a$NwipnSWFj%0hML;QnGh+yHZI0U9i*+yL2YIxLg*Yb zqlVXP##a?PLuT23S*4@GG+l^hmf&n!&N3}Btim!Zb0?{r@?pZVE^>FFLCzSuT0NMS zP`mmT5mjD@k-Q0)be`fWp-fI07*l9goDt(Tz9wxh^W>fcp090?G$s|6UhKe{lqRF1 zN+)AOB3++g79hQ?kOV|g9z(`r0xnP$L)J%6oTv5AqMV$RMT(EqIYx<9{lwj*bnqf2 z)^G41IZObRxtO~JGHeWVJrZ$jrpT#FTDT``_ka6$I;lLx;$9KhR;(Kaeh95H^<9pJGoEU_Q407dT{N z{;&G9{}VW5`~LukZ2t=!LIc=-?)ZNRhZla(Lh9<QieH_eBynqonb6E2Ze1E$J# z?%CRdUtC{E93^cg>yvAZsIbT+PI0-p9HtJpiN!trP`8yxHJDjE;!Pyn_&I&yi)@BqAA(;MTAJiv4%(dvI+Xe-gog4?k+NA6 zH+iH1+AT4b@c!UI96v&p_^K%zsPjY9cZAKBLY{m^jTc7k$$nsS?L;Ohfvhn3o(PiS zMLlHS1Qn;pQZx=(Jm0y$yu7_af9$4ud;bNc@sl=j#JaC?pGzh0Gthl&p^$jFrK@S9p_dkyiY zsxPrO9#7_Qes8~D8P+-dz=nu)`Wl_SL&3C~{9WEt>%Y!97YhLAg4r>dbIdPYVK{Rf zU9i(pyLbFfCAk~nX@xj#cMt+$noixj>kMwtIU#AyCs@`8$OM5&|7b)k!4UL^+fTp& zC#FD8!=Pk|k{?!I-~!=}M}qr``ToA>fS{Sxm zJb)O5%jPWpx(>{_`{La2gnb32CFnT-fJe2`f?&Mw!AsRD>d}vgXL>aXLGfErI^mr@^}I`js4>>ZC?! zbIyz-o~&B^iQGO&7}Ttgd$0`{K9FXxUKOKZ}9J~xk3L#)ckF$z98Wxor>sw!kT9p_Aq9^f1gHmgf zQx~wW{86Ba=^(zWim9M4b<+^KR`}P>c!2p%qmP&C$0u*@=}j>Sd=(3peBK=%S@mHjaae~LPT zVUxcPbH8~Vm<}i=L=AKmBHE4FMZ^H|ZsEWNC3U@{U^un{))=basAUo1l>b+CYwnD{ z+ruA9%2rxHUw1u#>&jW+HN&7=fZKU5*`OPTl=RkqHRjUO2rSt3t6A}78%_a#zuP^| z3@ubgf9|UQ!mt~g{UwUtBFk0#Brrb>3TR~|!Z$Kcx|THrCC9@XF@Nh;6%z$D&{wEi z^q8R)_{CAb$)E|o4!#ai$|;o`j535Qgn|q8FUns?$<82vK5>mw`U3h9%nZUb!WhDo zyG6KpxTU0~7$bZQd^vpeujMd$ctccuLO*Jr!TUeQ#516;#IFUf(;szF2~o2!mg1{_ z6G97Mb6^KPC_pp#$llPeETg4L&CU`x%N$j-T=EEn1gKv*vQth5xY~jZW4bOdtit+y za92$auy7bJPDgw`Z9GoX+9aG!IKu4pjCtSV3Vw*L8y1Pmxu%~Q= z3|)IXZB^>{S*qJzEYMAyI9f2;aFaEQ#+olg6q(wq&;=r%Rf$5R;%DW_2PVU5+o*Lk zQ`_>{mZ{^G(EFyUUXe;na16CsAt!Go7sL^OC-(n`+C}C`~zne z2&WbZr=?UZ+hRV-GnS89zvO+EVv}jW#uicC27J1&8bAsyJ?8iR*i5d zt>>Np#5(7-Yos-)`}Sos)FYywrJrR?z{EPj#r%!&8&eBI3v=~o2g8;#POA zHgYjQC-mj#8-&{R7cT~Z`lDKAy*8Ci0N|&K!aZkQyTY=SdBSo6HW{5m^Xm+$k(EI- zQ-RTmPq?}P>OlTMUA`sW4D}a>@JuvF{cX1V?CB$)FPW_j%y+8#i_E-sFG`gmKpxC~ zP}&&@Qj0`<-yK($7<60Dlb^T0+x$3ZL5D}qjeUdm48&%f zxu9;ln(fV!**!#HktUY_B+V@ONDQh$|4#laM9j2+$P_PsLB)2z)Pv zVIE90)dQD=qvu$@hk&C& zF(EG{IzjD|=MJb6@(+3de|GHKDwQESg5F4>W({p8D*hspw@dOjU(_VK9_3`-a6c*Z z4j8s?uC8+7*5Y%ysvcd$T8qZ*WWKzfdkAPFSNWEY=eii24Y~2mnb&9FnBlWT@Iaxp z!O_N|tSgl0S%Dh6j}=Zf>%{Q%0E1dYjxd%LlMMnzXC#*4&Khh2e961O^Q`-?TdE8Z zfkjYaWll;DgkGi&J~*&s!|g^R_w*?mwC=F8>I-pW$8@$!FgR zi9uZu9YL!Ol~?M$Dt(AD`AUZD%Fu0p_kljsYW7fj{R>1PN4y5yFUFk0YWO`tngfl{ zR$gbaS;Ghv;^FfGOa^~H+NLRF+1_sGwL4QbvU|`ThZ+UQiwXSs$)`G%dx8**Mx4X$ z#_{#7wiNEEE<?dAFbjbQB${ zU2Qy`Z&a+*Qi5tyhg!Zr;d!8NW)}|j2abCssKH3G&r)Rr=0+h)+8(xpro%40lNsR< zh{#xEi8!=$ALAhQz{4>5RLn2L!{wjqPtCi50&(HDy8Ivl|Aq$BM-I?o0a=kS<+eIK zdF)IX{L$<8TGIXYgt&I(uDzh_H!U-I&atn&O$Vmc5d2zQ^7fU8l&D~UnGnM4T&I{F z$=WDA_V2Iz@0iYi!Fa5!J<*P@5skT%Jle3tPue%cO?DTJ0UM$sknp+?W4kqe59+G>_-I8CgAVSF zh75O3hRJq?IWL(u5P_vOSSKwnr&O72PEV05}UoJaE|T~sJuQD zj_yUUznfie0)$UEG>wE{S$tZdIxOyKK2WUTTh`zQe7(TdvE{fE{&@Gg9y1Vj81aJ< zDCH3X8kmX&4hE126yrd`D7pWn0$mRS*uG&cz|WAk5jCEGzILm-MXs3udbEhom>Sm%YS}q=q)}l{0_O7v6g&&4 z()$zRE-?CmG7?&CNUi?#b7DPIgDmyBE^+`_7%vJK)rn71iG?J3$@ZZINNdes+4LU? z`btazO=q%!!vRyPzVX-lJS(UZvG?vgVugfqB$FY(GfzCD^Kb-Vfj z26dcM_am|Lh#1AXK7+lvs)Yx6)fk7BIR7P|-vW6b0r!FHl{zF27hz883wZRuor+^5 zHzc5SK7!Yuj(U-nNF8&rcoyXNIB2tGpcm=I|n556>9x zW+_6V-FMzBl9VUH@}Y1poA}i8h7X$}V81H!kf0;MY5^`Xr}5N`zh0UrvN13*AtUj9 z{0-gr^v@^Ie!m@kTUZ3>Dwy_;k)4%t96PNf@xE27D<<*0olX4FbdxzKK1?72FE9lH zT_1@i69+OX$zV!Ygm48WlXfv+L;@Q;l4lzV!q_Ys7|YHCjza|^&!kQ{LjZD`c}_s+ z*X;+g)4k-M;NGDC2jPJ^F|{a*BFMypV4nhlHq6s#$$jQw=2AYr7~31Z2DGfcde957 zt}@af?-(-@8a$1p)P=J6CPn1Jb%BB_*H)GI`yHb<$#e9%D*w6UIW=BDxL#*1ZQsLh zuXsJnf%pP`-<)fmOq=&CrJz>!fICgt6ze}9>Cw=PS|FmJ-1I{lu-N*jgtH{X9WRYT zD+w;py39Hs+P4q21WLK;N4w^p7Y(%`wbLnHLkt2Zx3sEmky z9XHz-UBa?=hCihc0;0qOXJn|r99hy|%+&0If2V=}B8W;^^ZdP!Rx@0Wr}0#`m2hr6 zKPpXMG(EF_I^2etznri49ecbcH{MsX90{Hs8sGK|v=H;QduTNQZ!~48j;XygWq!}r zJq}2HRm+BF#p2n2j-fp}i6VQwKE<)zn)tJavP5cW%QAk83U2i0qWzU-%G`_k2THcV zV(TQ-eW35CZ@hOlN3uX;Z5iQ+lvd!lMiZvB;iO4xQX(Ru5653R$AE>#bTv6^XfZ6t zUA&Hxrp^R3#d{iqsDXfbKD9~t}rq5k0pf*DrWiKBom|68qh z@c<~Q)#!1q8(}!}{Si`nh=OAyP6Ox1xk;cSH#bSH2+!Z*H>=6VZVRs(2~ls{xHtVuguI(EiwK@Oyv21 zx`oicwkVJLxBVi}1@!E%s_i7F?IgvuRZ6-ONEO-=i24&BKW`;$&oR5FQL354kv%*s zs`sOVC@in6Veaz0t|?^+k9fU?!;In`kiI|;ohl~)au8Kfn^h+%nKdWv`T|1y(wyWL zn&R4cE{5AO!`r<1n{OuPpV#Z$FCm8dZu9iDJsr1_$4e?N^IRqS7HjpIQ)o3DXluL5 zOjas=H2JPB`C48tJ(@RR0;gIFgc)#Gj2fh>M`=NI-8BB?<%H^1S-2s5c%$0vk+5XR z$)`mCCbOY^xK;0)HM6*OzEDy7jzc7$rNaKKZ>&&8O01Z*&DWK@Odko1k#m(|f8W-0 zS>P4>>atoPeN8NRhkW5X4?1AghOBjgq~{s!LqR$-9wdOA@F7DTF{6;%ZaA~s#a$=i zvYeVq06j>Wypa-*6$w5;<6%hun2A^na->24a%Gc-10ZIY4S56m?-w$S_2iHRFHMX< z2xcvteh7PW<|(6eW~Rlw&At8F_=fq2P;+g%vU})1uxvVnjTg5StP=doriz~UI<|V~ zMPAT~+a(kk6-*(L{($_y=3n5?08i*a>Ue|fvh3)sc_+tnUV2A7!N-p$%55F@<47L> z15~;d6$*s&c$r}_csFbPN+u7z!Y%Hj#f%fpb@1Xk`>2m#Sh#x}oM!~BXq|Aw#0C`O zTuz@U0xIr^aWK5jc*2KK2kWR2@dHN!V;wZ#(XSKqz=b%j9IK|>!mucuRo)J;Tlzi@ z%;wJR#j7YA27nYRPHy&*cd~O4bbpQU6wAy6aF^&6@pn|OI>AVMI>qSF9UWhM9=ZAi z;%)RH{Re`7a+87q>Gfau57&?6c~qBfJTg=Rq=yFL04}g_fj%TrZz$zAT{wjWA-;eI z)Hf-=M^HHEQn@7J;&VwXy>wYQP+Y|zPASFx9F^qL)>1^d6}els<$okvxv9k?z6CCv z4tzy;N(kBgGqkCePH=I7MyJ6~D^86p*|@-7=lq`Rhhw!wl-hlsECIJ-ypkAQ^X%!( za-gJu#iaDfFpbJJvy?{?VIEjVW-WfWIc5&5j=KJQh{YJ#WmlvE8}_HH1`$bHx}L}s z$aFEX6ES|~*U=t|O6tEUcH=1{qeb$`56K6oF4fir*4<+aq(Fa(u;49%hcJ1$XdTgg z%^ibVnfvgJA|(>Jl3ec;h#{)HQ}C=K*d($54$M0y&g*XlX4#YEH_#%0_S%Bl`d;e* zuK@D?v?#sRq4tPq4`_xt@^&}tH#e`})C<|x&TB4nmoM%PcwmauWSpcRlMLK-3!(N5X#mFr;17|myK~&B4`hWKa&L{=u{6t8c22e~Z76s1 z>|mHd6AQ=no!fM9WjAVHN=Ld&8F!-FYC8BlD8KkT%vEaDemtJ3AJ%Fyn$c3G?APV= zN#C3XC!eL#m}jU|s_ll~=<8*6Cus!8$S>GpmH^JiPK3h~YhFt6jNhup(q zrJlm9M|eQEhc5P41hmLVEFsKQ4v%R5Las=Edt{c`H;7kQ;btVnltgUtU8HSntMdKq zfmo7{*hSK2;8L&0bi`$~PT)MTs#Q@3;0?tTJ7zfqSVTCLGH4FM;05+#O4zaviZ3x4b` zY4ZES;~g7N`MySt*WDPqtvi1?U%MxL$I~%lN^|rwf5FFNEkOMX(Bb;BP9D8dYuIH* z|9rH(zFr+qSGkpWyxDs5>ap$Rzbjz*qFXuR`}LZ!`ai7rqR<5avmc9h2(w85r4?r0GyHF%}868<3w zPUA4)Oo#a5%w(1wkWRDt&zP9Y1IOAa*Pbm;P7Dm16j`s*B{5p%DDN2J!{6&& ze?k%V=!d^PmSOA?(jK%sn77SKXnpnR*NJh*{>(oCvGr;OA zP{x>c;o>pBncumnMne@W9=1^Ik8V&lfg9vX6_q<2Lu;8HBWeJscG_32{gjj$EI8$G zmbtuC2Zqsc3Ce5qxqVhmugYV!!v!)1woY3eh8y35gL31dDt@!=UQMC0>Ultb2_7Cl zpNJ-7*5kGV1MGXF)TZ_9Vp!eivV>DRHP|GYt%M-7Y&6Nvab27ds^rx zJ4h&tI9Px<^;&Je^2+6>W=bzQKep;9vb7iF^+i3vJHG*-^B^PlJ?ksy=x7?6=kPI| z82mSGPg62=xW3 z0^kf_2-g}}poyx91888>8Ia_#(uDKe-G}%UQ1ty?@@%?4Ut&JYd3x*j4Cn z&oQ12F;G~+f&@Z`{~$(Uw%I`At*`m%Xhk}}falZGzPe7|%kP)ZXVjdo$4BmjVXWhM zb}s{3xABDl1E5fHFlI=nv3jjd8bVp9=yV;M{kUfm#%l3$?V|6*@Aa$=nd6s5&?!%& zm#^`C_wzFU!hF(`@06{hGw;UrLCf{(*WL7!&RnOTkMi!yw_^>uvS|x)Kr*~=1St-H z%#1Zb$F;FXJ&71@!F<(vH9-oNB4DI^AMFOSq1)Y4*|w-A_3ZcK?JYT}2&-u;|I$3m zO`l3_8_`|Rmixuwlb`Qb?jDHn$pL=MF*rvJ?zN8Nbf+u9c6Y+{OLcH(u1{R=06$hH zOS~u%j|g5Ctkdi($&MQ%FEg$i&)NvU`=m-E+Zo#pK1^e5)2N9}>K1dcT%jt}+|GC` z!7;>|oz?}ha^gYrtWAoJ8Za>bDVye$Wn~|htyTM=TRZ(#aW{TcA!Gmz13SR}tDvX;gTw$`$Rqgp^K2)dt+3yn78iuNtQd%3?{RCPku^m9QL!Bm$SZ(Cd5e1W zqb@SCQ}CQIlhM18aPfF0>n8J#rYX}PU zuPud5>JFHeA$X--jVgQ5>4E{`WvGqzJhJWyc??9PL8)FFeHjf)l+^hZlRc{Dzr4uB zEF?9=Y9gz`XJ``%#SEesK?iMo*VKa@l@5PDXkrRJyU3bPo$1r3HWIG?yqY%atFE%K zC?89|cV_jAkrw5lqZYxhQCdYN@H~!3gT;D(Ta=r;Y4c#syGip}7EZvve8`juV&fY8 zX@AUmWTah^R@Uft?X)RsOOzCAexz-ooH{9+sdOVGaC})Q((Tw*#%CwY5`0*z^|In7c zTIawu-2}*W^J;5nVJiUTg{YB6HJMqbZXG96%a@-pb{`-uEr%7fnW@FrF%+}-yJBP} zxM0rKc*3<%g+fKF1kyJ0(~a9vY5OPMlsb8$RTRgSHBN82M(~{k1k>`zN1~ohF}kDG zhwd&sJP8CzY>+RfKq!6BLi|o}k-Iq^W+^d{NrApW44~%!$pKhNP3I>4hbp;M)DQNNJI{a}r&V8!{aCS)uZK4!hL# z($5uFpj+%)_G~>x;>>urw9ROxn_i(ajuYfFbz>kgaxK%;9F%-~%Gj1ZD(~SS`^i=LG)*zEP%8D<=}l zxC8HTe)v|;A)gUmhuc%^c~-VzY*Y;FZaD)BEek!122}tYmqLm-C^HHwGb(I73IIh2 zL>h^(Dn2eA8_!j9GU#_Gv#rUQDZ|hUF!$A|o-TgW61tlH{j8_`l2Rd}Hn;b4F*Qo~tE+y7@sVyz)oP0%$=>0?L1b(E zWL$&TGCg4XOD^Kfl~ri42Lk&+B#U>23n#HPb^68|17&SqPNEW1U#_?jb92YF}j}& z?}Y-~Ko!6f29+Oghe0K*vftPioFhHKS+49~To^WYipK-@E{8D>dF#4w+OO==K@6a? z*4HS~L4E>3N!M-DsMEiDNxKm73&+4tghWc~lVmgV$55W317<9!mOph^t9t+GqzHLa z3D6Hf4ZEQd;Tq9{*hBi!&N@hecrMP;k=8@1{45;#CNA=;37#uYaPe$DiH9hWRYMN{ zQQFMoDm)OVw15d5r5tPPMB!A}HVSq(YFk$d_76Y%dHFLZDxJvGHqW1RgIwrB8tx!MI|G@Pm=|h=uo^+p21SYoyf&8L#8u-bi9LwzHDX5B%pa%Q-@Zx? zlCnDfe2S6G922tku&un&&~F;{*XDEZMhRZP!LO6 zG0yB3^fDd)iDf?*oR*}k2}TK&k&pER(k}3usatOLUorBVcJ>*vB(H$9V7uWd?t^Ac zSD}rb6THFO`SF6^=g8ywpk9HVWv{GrZO>;BHC zv>_3b>MJKnSntfmVkw&DJhdam^eVsqX%c9?Bh}%xRl=kr9g+Hvjo1McNk5E0oUgVo zkq1Xs>~Pd5(8uh3`o6A)bxfW*4li!iijXhz~?I z`47dc=po~OO>mqBkwAO}ZrN1A5DqL67Q=2~9En#eqfR<~!pTOU`JkOWLTQhE%j+=S z2j4XYT)*q=H*>`OceuNM2O5E|;SK9{pidD$cM#UyY9j!VWm>Dm#$)Xp+z9URwrTqI zxHXB)!z|42{g5Z-8?t-$hkEwzBT{dIIU1j#&&ZFEoRfqYhXAt%O#dB{IJS+5?!Tg= zDG#?!4cDu20I-MTnGj>nuu?l48EiZuB9$3sU-y`alrGL1Be4q1UM3?pz=}y4U&M1& z*rIXPfFV&r%#v!)UJUJdHjJ@%S@R@yvl;O`e{X&s!(`CV?5eTqqnP<9v0F3E`r$VT zglxTBgLxc(1Hzlo25C(90$OQN@#T7l^^ZCn9A*qh4<@}jVm;0gtz|=xE#xlyF8t}w zel9ZT)QZ&W$t&_b$>Tg7xV{~lX6-DcWEeKEnH=3wjUEip3C=os!K{)?>F>YyERT#Y z*D$Yfe(w_g9N(__vnHWw4HmcLHK=5t=ZM;B^~-xR95_{sBVtDW3zY$r{ToSy_XYfi zmgXga(fMJt61UqK~38!&G6PZnZV6Z+ik)YRhN=i)f+|VbC@THDg1Cd zLW?#Z*QAMnP=;#)0bT8x@BRk|bipdO9*_;c7~1xi&jUm%NVr4Q{oshaeY7P{NcBk7)tE;WcaVKh0W8%GDjJ&Rx;5U<-HMCxsSOI8&g%*>Vkl2h;U<5Xapq`=#Z=!Ov@G(w+dwZ;#2*l3D4h=*i)*>Aw^`_*_nzgI(-X%Y_knRUE5 zvnP&Jy{Wo>T1;P1)}&#MXw0G1 z1}E`Omr3$;*Y)4gB&q6w(Ey>2E@jPq`o=0&KTG-~*Hx{)+Orj3?}U*D{BH?$P6hx6 zHsuMd6|P@k)J`E3x+2WWnZl+>_^tN=0cJkqGGg?gM2mF;A26h8v$d4X?ZiKW1co3{ z5XTsalR=qO^+;7dwKr{~gt&Mah`;w4%2JRtc6WtnCW|`aF>v{n*#Hwb10y*sqZy<9 z&YVFut?#T$WxOR9+*V$%im2xrTX!78qO7fYV@u7*bienw(0+#FMY&pEm(|@knhDRZ zPI}PsOmD4g-992-ne)0s|Jq>F;~t{0Ew^52J+e@h>oo}h-MvDJ2#LZ$6QFZ5Vcjr9pN6;`l&n3?3;BXQjj zRmAlZrwFB143Yi_%hF57$xG*7{Dh*C;B}$En?8SueZE@%UjRug2fm!~Xd0Y1^d;u- zvbznFM>sM$m*cwvs_d@f6M9Y-2VTLR1AW{SdSHnD+JHf2JOjp|U^{PE+SnAvpZ)-@ zV9tK*=x#=~+(WVYE=Sa?o~w_}cgEo?hR=ZnUDiwiq#FffxoO9~G3}Ind(Da`?Fvv)Zpli*KbwHo>n1AUc!h!NkCRXCHg)C+EF5Tx-TBvQ@Ew5VwJOQp&*@~7$Yi(6g zc4h^!;Q@I50@ca;eV)G9SEC^EI&B*e6$!NyrXU8E%WAva0YtQnlV*iG^eGxE4Tt|ZU32=hG@j(&5db1wnDn!Hd4HWl% zn@t!)rKc?ZW+RbPWxQhTJ2qi^oh}Fem`inR8{g`VkfrJdib;9HH-!RjsAL!aqe`Fj zXXmVI@r1LdV56-)@nYTO(f4UA9%>I9+EvXAQ>5cktG9D)N9%p@kbR9Qo}H%zMk)`~Cg}H^(0^rw?8&gx?Ql z;keqCY(~Q0h(me3QaXqar1aR?pXh|gS}+Mq1izX=YJR?!-yAXXB%!g? zQSvZ^&^M0O6S|M#z40!X{b;d{J%#PfyIT1;egU@J8@eXQzdPe?zAWdpRYTXi$+bMp zzRbDGb+vWg`L&xe$Fs+Os&*>q5>C44<+qcx4=qZ+);^B-j_W#psOq5_-B$j)pWCG5 zzI4qhpR6CgG!*Q-3kb8iibGL2UYoj%YHOEwie1YFSAC*(PrA2>*eEdR7bj4?PYfZKRYHl+) z%J~QSXhfsYL{in)2)lg9rybFa(ZqM;x~bC6i~JWYv|A4%`j$gzDcgD`xpMzfssW1j z*I9Ci7p?cE#)VUN6WXKPcgp7Se9$X2vrjW<2D>{?-^ixnY^BJ^Si1+`A|?3WloOoI zcE-I+dSRPe@2(BQRfS!8_H+?zLz@v77q?=dtbx!(!TGk_L@K+;6gNT1xNW~}nf43P zD{J1{#CGnsOiCX@W`AP6-1;V4R{=B{RdK-HEovEvt%fd;ZSJ_3gKURL0)V0RmkF9a5BI0904s7TD>jnF^$FmckBRvpDs zj(t|J4ZyA8tf$@6MB47r-%lWyz0;f;4w*ZQ28cWB9S}2jlwf}drd;GV+2_3-)tl; zYld53#p`csxkA2FzX9Lb1f&PGPFfLL6E{&3$KCbb<8H@K7fKnp$2KCeNDHPhXL^TM z;wU9baz_L1DC*psyg&C_h)AGt@`+-ucKLO#Vp@jIi}q}o)- z7i796^ET&Au9$*6x?>*jI%_z@0WW*T!(F;wu~p(U9ztgo7M`l25`u!ib&08Xc!v8E zoqYKp#%sMKkABTNV)F&P=^?qWT`y#-`RO5XqEoZ2YF+3p6VGO@M-41EF+6ZHj(A27 z2|jjb!U#h5@dKl)KW{JM5`A7xJc_jk7NeMYeqM7P)iv&{)vILXOvLaCBwn~W8;m7o z84x!9atX2%hi)3FJN)wpmUn~c@Yiw1k2zT0Vn!gsRf2mth(!W@7onpc7I>X@i&K9&i#`}sNcKn?QZ>YKhp?jyGa~74NW8-Y zkqr7Zl6GJ@5pVG4rkX21mN)`kPfWr6oDFbLgXfWU`%B`T^`OH%DuK#+_f7l2SX)y% z@vA|pVt0@m{ZZ9;3)7f-Q?`lD$5pYZq!nMY*HNm%N!axH$bzSG=( zbu++YbyJk;Vv|A&Epqs8s2Oa?umd|?y5=l;%no2xYqZZ^fjjH}k92naJ(_~mN=PZ# zX}0S}|6)J6+qlccKE@ONt8$e)j_ zc{f1$r_8I(%B?M562pENMze1jGPTHt5&Q=|>`$xF8pF|b!y%EgnLP25ixG%tJZPsS z-(2n5h$KHUVfm#k9J>>E$6XTbrTd`3b9{bQk^Xg-rU**=NNS$}CEPt{gUGb(X)K4d zwJ7SX1`Av3xCcbz^f5tT9db#-Ffd0Cq%^?!iq3OOIRyQ#{V6l>(|SOc(=ie9O!I|ml+j0@G>?m`nYN9*&3x< z!Wgpji^jDUPA=j`gv<4A3=#U?{5>4}miy+1c^W}EZ)p4zG?<}!E@XmgPHU$@&Jm#Q zhSbZ@zH~@ZRSF6Vr`V~~sZ4*_hk?x5V5`gHaF;%x@nBeGhz-juBLoQ)5I{4J)?0oSG!QqzOsI z5(NNP91Zs#<3%f_Wl2@ieUwT6K?$g@T^l&NO|%Lt^_Vw?9r1i|au@#Ao~oAQ-g`BO zg&t0*CeLW~>f;x+NXW6=_?2s&KHWeB>@U7FO5EqHX(3%M&)9iuwe9!}I68(U&C_wX zUvIl#;s5oFvR|U}((em|!nD-BZu&%#xx)82*?81MN>?##U@?Qew#2%&3|&7FCF70%NT0dSF(ZgHjnotQY0!>@?az9V zdnKWE5l*!W>fUPK0M`3kJ;Q4bx&5N2za6L<>jmaz^gE$Icq8O+koVcrB?}59G}emC zSAs4sf^czppF_F$kFJ<+9RU}VSPnkux#yO~y&$WLTiF?uTXlE%F$d*UR}WeLvA{c* zG!gJa3!|AF7GEaG-wn}EO4a=H6B7=$Oy9P=YGVjkg{CEdv4k-$-4LYve)xCxY%?kpjXTr=I0F>D;Dz| zsf{J~=STyM0~)`d6Hq<#;IM}TLjQ-bEr3yZtSMJ;^?|0f=RQim4C6DH`iXD4GPXen zVNLQkeeG<7oT$`5=d?AA8-mU9apbdzo zZI|#(JjE?hZh#%@X6~JT)XpKVk>Nxv!*Kh|S3^U$ z5pO|4>GD7DkX@M+)9F=1tHQca7^G?xJMMDm6`Rx_voDcez&$HJAUw-HYCB~zDH#&C z*q(4|5pWT>c0!tK;b6M40)0<`W${&Sj%-1%eY`_A37vR>RCV+7|0UTSZa5Ou7aU5NlhIdXYEqY;K{ngYjJpYTWdba>OAtu!%=V6 z%3U?6A-_wXrmB44poYmQHI|OSreqqA$pJTJ+A1~1V>#G5RysR6c6DjDdcas!Tw7Y- zKAwV|6rZhoIh)9Iz!ohz=Yi%!TfbhL*CZv%rE4 z2g)!w$w{HahK6-1c{rSnM_SaryK~WhpfSm1Cca z-EUXHiSgXpKhA6cMa>QXBx4EXMGWsYo|djQFYYiQK_5{GZD}zrL-`LXgAMe=Zw3WQ z7NucS@ODj520jxIEPr5skkv_*NsU^Rf+nXFtO_{zOD4omTgqV67ajL=nPMuG8&eRe zkk{x81{W9(CaH0ig?b}Rx1tLyOm|tC!Qwe+3Bu^mmE{|PP0)h^J*_*Sqk+4rqs-XV z!My6~m*vz^j;agN8M?~yGF9?#p<|}r)e8QwqhqjAKL}L7j5)Dd?d9mQRQeg^3xYwX ziNTEz7P9vENO*BQh;&95};JMgF)g^S&9;Ai~kKG#`qYX=A6yD=aW~*4pQ}ZP}|fT ziz(>`SAysrz^HF|B8Wjwb`U1c8!B)ZO1&anH%0?jmcD}zxM9lStt^J)$J$5BOgJrjO7^oEDTWygPCn8lGszO%F1-!Yng=V5n~u4JLHS2m${NaYR$cuO4`ep2(A4%=|Z$c&AT zj%Q%gm>L~M2J(S62El;lOtio;{})K`BwzDu7kS3g=lzavh$136AkiQ^+nY5-paBd^7779I>I zNb`E-Xa>395$+$|3o5E32JumT!tEt8JdT0{9L)J!4DIZ=1#q%BfATJ-q{eY3+L4i( z!h1_Sb5i(8baP}=8gH5*=#G-QU5K4{tKOL-^yHkBXiV>@!$N9Dw>3bVNMu1N5w9bdSXfHQNc2_I4^HAw5%F;$tc}!6*UgvtC_7730Bl zK=PIWn`R`VCiWlYprl<>^EPF_>&4`XcLFMTho%S~XQEWE}Hpz$%(6;+1 zw~@Gnq#wftPNF5~X`DaKqa{8>g()=PQquW(jbf{iz9P9%to3(h&d-==iAk9WTs8xE z2yVwGxzNac*>OPDfy_OZ^k^z1a=&sW<{zc#7uzK7Ki9?8PD=5S-Csa}?xANSaK2k4 zD85NTl&4|Z>k|U*w|8%#aCL5Tz!#De(aDxyy(KhD$IaQ?Ul(d@|oXzaHGdz-T-zo7<$3Wx%y z$K^+68+%vk5K+0W*VsyN2#6`F{$|7dggcdqTye9iMS6C#8rVLV0*?o5!$V!RCtf{G zkSDpmQh#QJk;|7y6rt#~v{=$6kHhu#u2|%pdwip4IKQYsfgLOEs-o2!GixC)f*-ei zjtq=@E&8PjV{;h}{|^Z26*T2s~Sd879(4x{oi>^Luce~+cc+52=3Qg9<%6)(ih z6BVwqZeoD=z_(jBS9>q#U2RxrBPZpFO8FmYBW9lL+B8rIh;O{=R3FvPqRL zU@X9TIa0!G?V>50->#c0wf;phUTKHBTXu!YvWf=1!At3=t_#)=7}NB;Da=|=48Jmv zOk0bm5otJB0U^^`-O?3&B+t+tv%o?LUT*z!JfBqzSb%M~iu&E5Up94`21D8c_P77H zhkB?~p+G^lxP}s&rqm6Up=dzgUtJ~*?yEBO`(l`6+=?`$Wb#7EA{9%V&RJ*-RM4oE zVu_GepBeUA0Qa2>#a_{bz?V6ILbPy&)Ie$Y$5CAAg znwlj}^yPf}=|t?;tnBANG&iY@z{P&2K1nM~iPXB9D+{}B1~Z!N*-(g}va#ysP!MOJ zV=1t7ln!so?x$_i*wR*BGB58L@(T5&G1;E3wD&IEcvVlxABeRuj;1hmvd9>ECRRe| zmN;uvd8jo%^J5|mCp;jPY(n2oa|N&!4TztuuZEjylgt?MYfTZSHU4P`$sNbdNNp6Y z=#}7@GgxosrGh_VD7+!foPwz1 zB948M5Iw;D60Jz3i%DT1N`AIS#tbpP)ot$?JstHXXb+|-A8*Z7i6^CcfPDvuZ8>$C znf+(NZX<;F;v?cmshA%MlU>}-Ml;eRg4VwfiGg}tdCHg;yqL$yh!-r}mBqKoBR2TC zGnyAl3GONswXO2b(0ws>4^G%@I&me+Vr`e|@_Z4d*Uknxc0?+#1hWAq8S8`YdHWZjx-={9vyWST`h~tC>uA$gdgo#R3#q8bKw~i(%v#_{I|8(fD>v2- z6DrYJgraU`LpDn{XF+zf?ZDN+i2dJt4ZfkPhk~izAMF#9nQ!rxe|mGAcDXu)qkZP73NbJs2UE$>utgY?;#p3!lUi|0$@Anr{tFrT+n)$BIq z)nY%JD(4F-=QVymb=6gpIsdEv>}-woi2HlNpHoS;RbM$DG6QrKR+4=RbZqM>sm0Fl zYpR{5JHC*gNoKq(c2wSZZa%)2N&WGv6hr+qUm(YEtfJp&Z@sB1p&#KF&@sh={V-Ka zF`_VJ7i0N+p^kea)HaT-Dr0s$Z2cVlS~{0WPXZbV5+6{dUlYv)2@}>~KV5M~GnGF@ zz3+g|#jj4_$JD1z1LJ5#WPp6Ev%V&@>)vStkn8=D}ajzff+X_bKpIkP3-`>qD<$lPhp=ppj;D&vRrX^l;f5t z`&pk_qh_6`{F-76As>@|9y8Whpu||gs3d|XJDNPqvKKXgwlPK&R--r?0@hZi?X&aM z{}sb-%X5EIh?#$hcsz>aA3C!dvHdt;)EF}!D-j`7S`}SNlYa}_as*o<|Eoo46rGtg ze7z$2q>=Uai@IWIbnNReE5{GjUok?k7>e1^C9t+gWY22D=%gv-(cI|F62xef!@d19 zM!wR6uTOA$XcC!1gFVB0v%f0+!Ut4;mlKZMP&7qdqgtu`YV-+L7(P}|{ar5vh-pY9 z3W@b*#K7Xjm}7{!#Ek35MVpiN$rvRIG5?Ici!dq{3bg46AXfXeDj3TZ+l+n-l#(aq zgZmN%GxKQn6lUb$e-&*j1XX!pKpy1TC3Xf%C2bDX)lglaHM5QDsG5i>o6Lt*uW2@f ztyl>)H2hr@v()VpUJNwdkx(}VYBceO6JtgV65%QmQQ#&F!=U;+3Kz7K%?r^g3Ijt- zc&JNk`-}VE(|3qegom=N7l;b1PaKsN-1E|AB^pls^HaHZRGVSUU(+qe8um^F#>CAy zQv(C7tBJJ}J`~KTBHiTI{*Zf3}OHgm2he+mV`Y=gM zLty`ncFW1Z#QwkVnymkwcH8a;MhnKm#+Y>G2c`-6pJr!@NzkKUgkT(uj0p{}x zzutJgIZf*D2V(@5F0Yof_^w*_jQO&pyCS=Etou6L)EkqM-hMN`^VGX?I94t6J>Gl0 zZFb$iPkBskRFqPNi7p)OVIS?~d^&I({ZQk*T)jD(yZGRse?Ggu*gP7&U4t%YsefK2 zOy$9AUE)buy3b9uZVHpQTy^eBXV~f>w$atcWeU3gvCj58 zXLE?(6rel-;q|Me^UO3lS}nMPbt9kfTne?$VXtM#$-<#zoJ?Hhk64`#jcN#dYv|J? z^?FA4S{=CJsej_NW8Gz69z*x4%ou@s{eI)lm{#y$H@(X~JQloFk;8twqr3l@$fsq# zY+2EuUmXAtI@awr={N4O2b&LAn=!n>Xuf6gN!XfUb>+~%g;%|}U#}&+^_VQp4lk8{ zWTx+$cB;PdMXr{7M7CZV%BDXd>^3U`j2t&wFIZl8lcM)1Urbvg`&7b*VO|Nt!Sqw> zl7XrA^e43Bj8npqyyuX+nK!ce=`eoZ9*YlNlWrQVm7cu}*3-QX)+f(s$TTbfJnC!s zVF5z;?N6kKqhb6^kxyv1_r_jkNeO{pEq+U(S#{|BgvX>G!I}^^Q1isWSsie@Na1-e zQ2VI;gwaySpRqi{dQ|gDNeYh3t+LLcUj3`3ljsZDl zvxY?YgB??jYYkZ-Ssp6fdO18MYOv&ZF3#5tUomnMh34XZ7Z?gQ3L-CN=~%uJ0PinZ zN<22hQ2rn|I%^42ySJh_d}wBWmKg&Su8ica-b@i5JUZ)%fk9s^Th>W*wGdWo76zP~N^L>(Y>v=NeX7VpkdxGa@#{ouCFOK@B zG!+>Xq!W~=a`=XpZW$?8!fRkBWk;FyX8ouM+go5}DDS3b$CCe<7G#&VzD+#YEnl&- z2D7^r{y9y2`sVFUkb4!(j6IU9mXaPeZFGju$H|okN8!qcpf+=$Cq`Z_KM}40{32TSdMb3AYEX0y&T`dPid!26f$c?Hb<$=BhW$28Cjqxg7zI&)caxEvavo zzO$3PpF4^MZ~ww^{Sd}d34ZHGz{l{&Y#|pRrS1zH!{ZasynO*1=rk6(zn9CdD(>oT z{cHCkG)k-8t&~h^F9+&UVj!Y@y8bn1H<8@x-rr@r*#I0J;=X*7+%L#u{g93|+Fm^) z6Bp0HUI3@9Y1*uLRf;}nNkw$+jZgQmpy-Z7F9-f$w-hnOZtPSRu_K3PtV|h7u7zB} z_6UJSz5WjH4GZ1i+>nLAz;Zu%9CR4%n4h}H>_IMY-}iQl4?K>^$@QPq%2gYjWtDr} z2P;i4a$TXKJlk!@PvPL-=vhm#(w7ZTFke&7AZs~MCP)H}$N$OrJCd_5@;mSS(y5efBOKv)M`Y(&N8kMd}3NYZ&-Do zDDXyqH!9VWqr@MbE~uZdvcdtZ0UMt~duh=DSIQnzc`y>>(9u>WVR;w!S z)WOxCRP)NY#v13P;$`Y9Ed#~p^=scx5+^3v$_^mgCNyY%>Tu&B5_UdJMwcQ^tW!RG ze0*%L)Oq$0apEAx32@-4np&0a6wT~F@3H~^)R4nn_nhajUga=7f@qpPU}*3M16$vR z8nzCt8OI>fIwcX4x&JawdFj90@xZ$Nl?!z-lZECNF0zbX7j@?)@VmmLMOiP5)K52& z<<&@L`}ciVi@XAZT<2TZG>J(f{$i@SNY_?BX1^sx_b(&iu+~6JN%VGO;w8qgP%Pe8C98vAxlZ+y*zxrx5GOL%H^mZ4 zOJ{2qv(|uM`2ICOd8eajB-*qzpqYmOLPIQ%`5S-MMmGLrZ<_f?7jrj=abRXi9H|uv zbTW%6^!!nHA4MJ*dqWgDAQN4YD9fMkd+u>3{-H6b4AFCgH4fp3 z{n9Gv7bXM80`zId=qL8&Eg&)joB13Y>6ow1QV#LvFo^`7?YLw$ie^YsjD^HHG6m{9 zP7V&ba?LR$)reG`^l3M9fyIP&K=w`tlmWJsFe)=+;1(_8ukDOo3)Q|~XjY}@FRbI( zeZ$Did&nYk=oq`%2A4wN0Ul7(abg$Pnr;`E%GLw6#PobIgKW3~rvV>0&4MO++xr;D zyOEpnKGA9kLIS{Idyceeir)}8IYD{O&gSeCfP0KECP>RNYs7 zzOQoc+>8)0=X3-UU3CWo;h*p3;Geo;(A^YJHtc1`*gKGoA3#R{oDT76>PqSFwP8E(0?-A{o#Hufa z1B)+Y**jC@%oR-=fS5e-gz%D@#<_#0-Q9jd#(rjO#m5(x%gH-tbc4hfC*1qn{J=9g z2sh&w+(*8y=>5vb%TQoxcUeK(0e zeICKNK+?1H9o`Em7SS0n(!?00W@V84HA78vdXajew;boV zqi(kkRJ(%&AP;d*)8wP_4m4#;9jk~r(eDnE+!fo%^MV+HxyiU>Xazbcc!1^!=Y!Ju zr4TqsepXNVO5M5phgE+8tT2z|pKhr8Pmp)FhD1CEiOct>?CQ=W?x_M!n3_#L-5P#y^1mA3{Vn->@0gxw&M zc3P`)f=3PITe1kzBfS$&6=IkA3B_9bmWh<@c&IsDUwVa%xIK670u+lj45uEJdHr}& zGl@p#uBaZ*=#l`w?@I?@@VG*6N<{czc6pYY1^#<3f3Y^)z>0*O6dZ%7eDNWS{&Tq=)3#-4x9;JPCNYC65N5C7`V@w`uqzdem>^h^qnnb zReX->%KO9cF77Z92?-94STN2CSDIc4*8}Pt0V?EYl$Sf+Z{=-2=j5t zJouy;>o1D6lQ>GtsX?_BeE11CV?sTuux$x`@8mh*<()f@8fDqS(FFF)o@b0XJ?f$7 zsp~2O-4q~`UagQxP8SqU5+o=J6bi-B1128?92OR&+?jN?|8sM`9NiAL*beXsBq>;Pf7O< zdiN26Lc!E;gNk+=mkX$7&;i@(IdItUvK@U^b*bPGa)u z8saJ{2^qKkHAbnhOsY=QTB%WKt!YtOtxIf#O|uN{kFA?oL`w;#prC)eH*wDs*za5i zxGkMmuN>A-_FrothFaDS2s$W9O%(=qC5wt?`!>em#@4Fae!1=?h?C!tAE-fSBN5oT z`UAP=_J(@F*0f}DnR%@`b_bSTsITuWINi|$RU>Ymqe!(*8kh&Rbddd_7Zj5s7}*`m}lAjTQJH>sf()UuOC zLBRz@f4BYO1pPELLRHa@pj7Zm{y}4sVgSr>%z3PjEGu;{D}e+JX4cxZ%qyiTWVY~H zwYdZ9SQ|(=LD#~&!nQ~)grQAeZjLoK+%0*>RD9F~5!|PI-x==nywY>>(rLA{Q)GA& zFw-S)QV)JqX-Ag87$4s;Qky#U^FH|Hu`m7ws4&zn6*r~JKMC`;p0b)zP5Di`U4Xi- zfAbHqX?ohuht8OjOdN`H&+|xPCJz@@mhU@DTQ2T7lV+u*m90B=R+l@kc1^zUc#;f2 z{1(`QinrH=4#RbNq&l251a|&!HjI2S`x1$3+^p^vvoM)Ke6+oI299Fc5k|LkpHhKkw9dYpvM5&)LYGa%-dZROg zqJ}*21jZ2C`pCU8m>rdo9hJXuLZ4v>-sKd%J>#Wqx0cVIpp<=vdH3J|o4R3*u(1Wt zamDZ5n8}2_CT2M&+#=!2mT=kO! zQU2Rd6nhYX>c^d~CN*YQD24ULR>RA}&}FYgpH^?4R%W&!b_E2!H8}p1=#)#@1jVF* zv>Z!tx~`;@Tv>Fu`3X1-*%A{J};kl!eUMAB@Y-S7v`B@K`CY_sw7=hA} zX_g8`YD&$;+t5)SZTOOlDc~Ao7ved@4D%E>^b`jbR9NIH8i?u^d^e5JTa67VHI3Tt zuN9!WqoPfC+UJ>`@~5a1ds&o?6~D-5^DHlhKb4?vpU9_)`D*lm@}K}RB>;j zx%zayo)>VP3i+7P8GCr#WRA4#x&lJ=3TZXho9m02x#?doZzyGr0TTmn0Zi^2`>Iz@}ZjtX+Or~JTG_|qK&T`GwO zmad@4jUV?V7YL>d{T@eo}eHiCv{Y8M6WcW&B2-w&Tq_X%x%nnz;VEH zz?I-eeWCmU{CHN5M7cLrimlB(l&ph^f;dx&lE~$YO<%h%n~@5gU7L9iV(8?uY#a~v z-)7k4d$WFzx;C=c+oo|%fWvGDK8Suku}6743C%pvyQex5HGBLZs3%KPwO;MaAfJlX zBl#eo2IF46(8+K5E&|42BVvkyFdn?4RvVg|(`!ZvaPij0{Tbt8Dh^sM5cW00l7WQ! z^?G1-$L~4o)nU^IZc*gx$e75nEwAC5vT=#iB z*k&FCVn9NN1P#0Ku4E;pgY7lODe^#Tal&cSH!_V3aT5F>X5a|bvfAY_;{=ZLI4AJ% zWem7d{bO122b9n2V&W(D`zdBpPT{|WfdBq6pjbYYF7qQj-;i@tDf=9E|M~R69s=-s zCKP2VPN(TU8S{rq$jVG>IhJG*a6?(eT9O|GZjP?)PK9mg`9&vd*Ets~cD{T!5{8NN z;iASN*BtHxYRz8GL;UtRC+Ei8`8>nCIF?@5_W&VmAUEI6)S(2V?*m+H&4r5VZ;@W0 z;~YbhfqP*F_rFH^d(`~JZSKu)+?=2oVu;kDTiza!_Ea?7G?d)jG)PBBh53cvS+p{M zj7$mD#6+wT1m!5EQo86uf6KhWRb}HMik?#=B_&$`85e%$EUkzU6MIau(bPACS-Sk4 ze|KZiE%If#3PhPLF|q%$wBP*2K$>;g7~n;`{IME->xntBo{MTb@q{!#xE$GOYaps( zT+Q5aRnuKwWCEK1&Y!b*6XJtqj&PBHd3x>krpm{{^mcZv_*;Pa5-(F;mU?J$v;L^C zw_$*0Y*df`SaXF01PzKACX0-q;wjeutl0So}lG2I85 zh!F73*SjGtdGk*^|8l*``x~&-BCD;sz8D?XwqAxainT&|jH^;@G_$r@Bk1}fLqGKCwGqEYM(j~UETD3TX27&b?VKU0nmn{vX5J|s^N zhp3SUQ)>8As)13dt~)0sHE8v_dSX!IHA&?THUWL|A?)?=#VF?+$7H42|6uDKU~~z> zMC~)S&)BwY+xE;E+vYcO=8SFIwr$(CZO`12xQZN~J2@_1615@6;W3 z@pC5k@Q*L*P*J1vw|O3_C(&DCb6}zla4k_9g;0}ulU4=V=twA8`Qo0lJstN4V6Eat z)qrRP{(iu6nagS>La}4gdJaj>taEjLZwG3fXeJiCfc{U z3Ckt@nwfW*^KG|Jz1F|N9Cq{hwBboUrI)kIcCC%K+~;+?S<-et0=TOW;KO}Vb{$WH zYa3M53AVFe+tPo6#YSrJo~xLoaF7M%HCEZ>-6n1%rH_?lRoba?rfRfZ6wFS_bh{Q@ zj!@O=2g%lCW1KZYSoMmg03STkH7P{8En>c`>8hvIRCHC9(k$zS7cmw~g;??=%b|NZP7R?TdyYeu)~6`gAVWCj=LvA z{@YnA!M9C5`kTUst%w&Fklje$!!}zadF&@}Il`z5$}xTfb0rbZ01a}{1#qf0&Boj_ zWT+lwm>%RfQ;?cQ?k2y;m*As)I8%>`eZ?R|{3C_;TPvg6K{x`uZkc@_OLq_a98Ol5oEM*eO38`CScP3>fCLUA@^6_{?fEh9v<)mV!{E`V6^M;a| zfw!1YllDSt1oGIeF^So5YbEm70;$Am5o`iMt0trOTgRm#;|Upsd7>7udM(Xt75LNH znHzs;mxgI{_CAymALA55UT0Fs(-hJVMPYQky@+8Y!+L}z9oaafW>oE<(q^@1g=~pz z6=xY|rDUlD=o}dL0;`@Xf5z&_Q`g$Hjkc3Fm$#O;l(&_)khhVylDA7<=e@+dOuf{+ zT)pJHY`yfr^$woNJ)d#I;2MCp5dH}I2N#MR$3|i&u^Q7xXe0av?h#-nJQOqmr-@z1 zeqcSa8Pm+~)7`P{M6e%K!CiMf(n{Q1h%c_}9f!FONIs4lSH+j*@URL0OY?59Pskxh-v zgTo92{93hU1h-*vN)oww$y2S-^uSIjC02q=ERCIXkmZ->S1Aa>Kxtw`X(C*&fSPtu zDC=%wJY73+W|PgyT#{Nk^0N=()wx>P-hMKeJxCL9xx&oohPdtxFVe&CEcdiV)#sb< z;qAA+=UqEC<{bju(4katNe*k1;s!-;?vk(pj1x(8!I;(_Nc?Po#-WiQz}hDb3ow6X z9(78&G<|9X*O~)Qby)-2N>Q)QIF9Q5roGHt--rvNqi)0D3npp*hbhU@d|a<^IOt7h zh2>1F9`+Tj0v=~k25*tKg5PBmn7r?eL2rAb^b3ANM*5ccQ-+n-WtUST4f#I}XGCK_ zX2{k}(=-fkJyhgk9@`MnsGN+{KJ$JKDl%3d&~Q#r-8n&iFBF#*&%bpT8oXM_0>-_w zg(0@$z2-r1@<_(X;YdrBuC^RQ)_ql|C`MhGBfr0CAZ^D7ewJ<8KD$Oq6)Q&dJ+GCq z-MmmTS@ED)$b%x3vnl3M4Jv7q_b5U;JBv^T>M3OZT0qT$s>dJ^a8p{PkJC5-d4>OK z?h*X#iUp>fPmt`2;1$D>7%HtnLoRtP@u5J$7;jLB2#K<@Q7qF4na&<$m~(Pc7bDC` z7<9vNJ%`|VbxZ2{=^V+3Zu973rT0(*NiuWw3t|^SUzM575`^7$58ykpw_i?$6@Ggs zMku9u&O-8wW=rHcS4R>>f#%HvgnxdyCOu11#!9C1ofE=zaP`?t0N5ZQ!D+rebI$H8Qq`7jNfyl&n z39fp6DsrC7e&v6lPiNR1;`k3x5&w05=t@RXO2YtX7- ze?B>j^Y*BE(SaDN6YOXnTCX5!0vkt`Nq=J5jSoMIPb`D*T#Xf5NwYa0uqU>b`8| zAp9w4;^i?p*}17((D5YxzO729M$-plr^Ab>(M6YdTZwXp0Wm&*eb0tLaJvBInJGuW zlgJ9;5@9SVHfxC(IWnS2D9&t1Ei?oTa>4?YhZ-lxq=XLiiW|KF=wOWNDOKGHyuYna zviU`cwcyTx4STA=Y@?uwqO6I6GYgI8RT8BHvKdg1uwT9FAR1ksfd1{)qRd(DBn$Yr zOvOIA;7}AP#lBai1B}Z(;y6vR0|4^UAU~<)r5qLMM5`lDrBaA4g?=WPOBqT>vA~}G z7Z+z!%%A0Rg*n;`IOdCSr_lv%<&*P)TAt4GR--fhRKJMzc-$@48#eRgm{-Og#-k`H z+3b{mg#xWm$wp{smN4Q+Q}{8n4l`}cmET9?)vRn z;o7`o8eFa5P2+Uru1kH#?tGu;;4Wb<_EPA457e+mmx``5u z>{Y;ZKpiy>uurXJ?!RO(<9IQA1j?1FeInUC5KT+>up*S(AyHS-p`;ot98yv)ZCy~Z zq-{)Glg2HaQc}0jDQ#!*RqXr09wiSo4_6O43tJ043SSFhq<#+RaN`a7fw+>VgU4IX zVl1UUIB=umj338)@qqg&0k`$yZO=>I@3V>AqG~|r(_|EOGI-qv*lno=1J+0sy<=ff zq2AX`^2_=*hx-e^?{nMS_hj2_TyYo0z~x43Uvj(M=fHHjo2~vXbw{Vw-Z4vb;hS&J z={t~JWH0=ZRk3`DfxyL|@i^RyWjPyk@Rcc==HT-^MN|wr6}<<=CZLS=Uv4riJXTrF zX{G>1^<}+#>e^v0*guGRMi8M3phEoN6e=L*)0CLUK{u269O@p*ob~dpX4$|aQy&@S zZ8|-;S(pWPB>Uje+CI{9~R|H@cbvUIpqqvK%`N92H#=|n zsf!MRe&B-wG86%~ziS_C!aI4s$1Pyd&b(wb^07>bZEl*SCSuqRR%>V<)q?CQ54zHg$R zAVN-1V8h(NoeR<}S@`9H9U zUTRYN?Xi5gWA?;z+yLM_W}CjG%N&hxUZnd8%^DrXuiZBwQ&*-R@v3y0PT!ZAjok+{ zd32TP5<3oeNg50?lEywYq@Kh16o-SK3cprRjcxT3z0^rxIJFWb$U-?Bh2Q-ytug@!v_M1a5kOqnMT$b`m?NCVDR3?eCEVblt9*WB3VaDl@#Lf7dKY`(rkTd6g6 z-sFP;H4e4mntS5iRXI06OPw#4@D&EHsA->P@)mLJ#n0P}q@C299dJeyG@O+_FmGGt zxH~+BP%nnzk2nz{;Nw|+UY#MB!pprfe!FFE+dd|3uCL$r7;c}fH*LRcrbE}&F(g!9 z?_FUDbI8e}f(gh@33f~Q zICXvE)M~61!cIYc0$rQ+BSyzteZvV;&x!Ef832*f4habKTSogj1?E^@0`0#dC5&N$ z+M>8f9!O%Pcq5&sX5r4+?Bs`dTr$=# zO{(Fr9Ewo3Lkp!2QS2q>vL^Y12c$e8kW14O?e+-T%H)=3U#M>sBJ3YHTeA2dqL)sm zL{retE*Lo^$q@9^*z^=W0KKEIQ>HPu#22qma&{hMqk=ygaOr6R$U_xl<2>iM)%Z+2 zYQWRRMa2Ycx}TC`1tt7rWla22*^B1xPtlO_wxjY88Dhs&v4c5wQBzi6-9n_=*9PYL zIpHl!9?sj?pCVt}>;_*qk=wSF)ZcfJ)K97h@5qM{ox2rj|H|}f2k5sO7Q&fpzTmtM z1kC?hO8D&0mBp=Vv456aX4$RVaNHy3a|7_b=e1%=p>Xe(rfy}kuhYuD#FklxnMv&z zm{(C+S?c_>1<-P_Td+sq{`$A!!B!3TTkZ;vF*ND2?0Q!yk0nOSjL9cP2QKsb#J#Uh zDES^90vo1(#mp-I;^KmPkSN(qFJ7KMruR%Mj#cGpmMWRcSIsL~Mq+SNP=&(Y!2?X< z%4aw5TDeVlRJ(qGxJ$r+nz2cv+x3-aDSoMQ+73wK?}#4G6F}Y>!X&AQzB8%kNFb36 zEpL0J`&IgdK$1dGn>;G?pXtUh2>jUijE7EuhotBf4LiW(Kx|dTdQ13N%o4-=dcr6G zi&BG((W6dvY0pOYTN3I1L4qhSz5vrAS5xCCMrS|+(#QOd`$tfm*+UOu`%foM5Emr&={%R>UjT>Tb{gx6 z=o?#I!7-zqfS`Xkngf~0rzXquce$|P0JLlbF4@}OP#bz*G1sXqGB*5Zql}F0#@nxbyutNCa;r&dO+zsy9+nl=j4Bd{sSFyyKX>oxExTlx~Nk$W(L(fmgKUQO$(o zTc$DWw~9U9C%Gr2Yh>ITU;v0&Naj(O>ry(?iYSRtZ@IWc#jk!5Rd66=d5L%zoFi2e zq(V)TTJeWM%d9SuM>4}m4=&3{7&HeC1g5__x=mdf)TD*pr3z)*1>LdQ!sesxVkd}8 zCtS`}4{~o`1>~5_c9*@#bRPSx6V%H3(V(ZIcdi5F~MANT(v{ zgz$AB>C{nd8)3M$)w>qe>tYkGSLeTF_J|VQapK)^!rH%_iaE$OIk+-qy*9u<_D;q< zEAA>)m?NZ~vY?)e%mA9BbHUFP)xSH@S2EmHJo5dl0(5HO&CtES6>jIkoYvuEuAJz1 z@s@`DHH6@P(o9lKMg{16Gq*9g+jfIH5+S#!p_{(R{Bb!ywClWmA_J_|a^8C}`9#7;5Pbvl z-}G#5r*yqYo9tjiAWSo4yCHe&(VvfA+$`zV7mu|uS;{X?d6qqy%O|>+E<}~#Ex0x1 zb4^!NZ_7tsrfb<>F{no^PxC}@_n!II2)@F(=PkG7r4r9Wv_Rmi%3NHRwIn6GRdZxC z^lE*YCD{G}m;>(nn5nNLKPqPvg{8`B&>E5iCWl48enAm_hQwjrlS={}WW1A0eUzIc zvhZRi=J59o1E~sJC)SsM@d|9~igdojQ`_Y>&!`y-O3zB4_>Qcg&2^Kv-7O{NpYXPH z{r>z_mkwWZI7OYT0AfB_NR3{FBNUw<`D^kQ!*U*xGdG|tprZoa23(h_=e??HKDU$H9T9k(@+XLR{?8q%UKz@CTtquf@-P32kJC;y8bJlLRow{C?J zK5V$KI3hf9Se9D$c+%#m=G9=_aa^%{%5x>jblvLsg7--rmupxy>VB%`{=213cUb2e zEg5MU;~Aj*4E$W89oo(PrPNmm1(2vP>Zk-tgH&oyesG}Ypt-{6QhrnziKJcAZz60E zJfwPW>cw1AOI47-Mk#4Ou^Y61lKXTJ7dlsW(p1w!PQQG9w(F!;|` zVF19-f|WXdh@TmwEu5d*He)Yf8;r>=4}QEI|9zIu+j|?DJ5!>grlVITS8#vQK*VK3 z7c!ZvD8LOn02|bABrPQcZ13}Kd@Ew^=uObV$Kvg(MUn6&8fCpkb8&@OS{!HobE=IFkG4;l3`+&r2)d7mqx zByR6*Z2s2)#S{U2IG|=Z$>H0a1A`)gJsRY;1{M;W4Rvfc<^n%6ZrJa;hM<8G78D`U z)?XL=mjxFy55@w=6+Q-JWJIqs7aEYu%+a3e`EzF#mSU!kEhJu&!CAn*Wq znJ7^4{x60>v-=r_8;)opW0-@gnWG!{9Srg9z;a81`8$}V~z<; z1xO_1y~)90jGib8ypsM6 z9flH&0GT2Hm0`W!Hx-QltuT(A)C>W*nr5SVXGRubN-)^uqoVtQ1e+KThiee*Ao6^yj<1E**Oz-Q(v&V)O7kg(u&kgYnpThg?wB4DGIOH6ih?_~q>Zp4NB zb0>vWWs? zG$JqXu|ZJo?XckIu&F+Od1UnC?nTbA66znbpP3#qG^f`&4Hv6V>LjGC{n29m}#keQh0Zz=a>9q`kbS>;R&4 zrfr$71#=j*wzP)YRkbR6!V;OG={f^O?QPRFwU#8*THdd|EdtRqTqLLO!=4V+0U_7G z;C%kmb>8e%K`;#TbzqRjh0!)ZpbLH9oCBVujs@&#WL&hF zZ5Mf&)XUzcg^C)>P=2B6F+vCZ7#@UY%xY-RJX8?at#nvO&@Hc$+Yn}KL&VD7;j9t< zqG#k(fnE@cWR6DVLYbZ-f{P1jZKU5I^qbaDalw2P0x$qcvLdq?Rtm9x9Bh1`(ykE* zfxW3CUy?0ce9qx$VZ)6Itl7YA`0Vqa@r9n*)!Np+)R~(UMu<^Ny63t>PbC~bo zebPjHEHrioJs<)cBqoD(&YRwq#=|pBxp9OyirnGD;KNcZ;-P1RcKE`|<~VSGDMCKXK~eh_$ylK8!wpozgLY#S&3-R| za>Ml5Aud@5U;mm&$dQ5;Iy?~PHAgmu?a|>ESnV?%V<@^Y@neGCHexVC>B0T$!Bm0J z+vV$O$Cp6|9w=lUsF{CL8ZgaJ5v$k^zHgd>`LO|TxdZf%;SB{qaUd|ZjrpM*_H1i} zAh{!%iz=Eg_Zu>&S2}W6NCr9b!**x`Kbk>Rs2|$}zYa3cgLd!tOcQ8xPjTqOGW@M6 zVg%O`K}L#f(E>T)rP?Hzk0aQ@5aRwrw;245MTuU||C2B|MJ4{p5H|Q~8JXl44R{xH z`vw3ENSBYEXeNcR&`n∨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 YpMCK3@q0$4)fW|`YuE1Hw`cVK0YipJmjD0& delta 185916 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

6$ZAOT?L8FaXe(3m9 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

04`#P|khUo|uowuC=DH4l0oi>`^lNMVO+) zfaRjVW=;FOKlW$;CZ@bcQ>XRo5F*SSw)Z4yUC|HYLmb$u?CA%@m$-J&Cjv&)Nps|F ziM$Fa&Vz6bVzHy#b{qeysdQBe zU*giZJC9^#BNMY^JBX~!-0@$I%3YuevnK9|n|eICF|+cjy{bZnrd^ohbDCZuI8mBu zZ$R0QO2j9zu2fsgvdHQmFaY921qyAsgOOjD?_k7^#0b813!dX=02xsG`vH{`=ReW} zjZvCVrce0ggjM`df5th`L>*N3j{u=$9pPNGsh~j#pzf#z&DvN#@|;*or?y zRY`u*Y{GNVl3rx`H{kY)jN~+|J|ej@LWkSQUk(l*%-qcW)L+tPT;XD!`w3ik$(UU` zJ+OxF+FuE$2SUT?W*O)h`O)l-)u7}V%^%U;A8r!Wy>o170{Y;5qIZ3saPEp#FKNOV z1oKU`g2bsSXPm~LleSr6;}(S@bz{$_91Pbpl)O@A5cJNG zD$=JXkgA6}=0cQ~3%g3Cl@3gjwdr-A^32>=n3%o`WvkosU@u(?)~oB5+Uz&|qaQ6K zQ9kiY=Bx~=1^89p-{*tc*HUD!ke5&IqaYU*L(~#Xag4Pc%!nLpTmN++Y+{{Zo35lA z-;yNyhKzLmUBq`6CCChC7~;xvSwl<{UcXGmXw^+oHe>t+`jfyOPANo)#E*uWiQTpu z*ZygXEPZ3n+!^G~(3z)rbPTt%o=^}EY(269Co}?iV`4FAA=-?@^Y^Z!& zwCU8uLaJQ)`(v;2SJEsXw5(gvVuxH*!wZgg+|}ZRhZWC5FFIIv)1<9-ermhTDLAB; zZ1MLkml7Z#^HfxKO5k+_j$SQzWs1o<+B8^My)(XI7$ZZhLXmbCf5Iby&3}7bgXN7O z7?fmHDRMl$Gs&0>g4Di(nh9H=W;PQ;=&?UJ$&*Q}B~L;y@Ew#aZ5sQcoJok;JA#5H zd9=4=o0HZT?3j0!-h9q}qs%h6Qgv{``vpIp@g6`RHcvuruW&zIiRUvO^0mEZ0$F_Z zwwArv799~>h&^|2(^Nq2VefZF{o{GL(ptpo>^*kwZ%XO2YXwy`-*=UcReYg-^VYXK0bCC@U-vey zxb3pYKa3a2{XjurUhFQw3Qq?DU!a7viVPsXg!0rsIuYc~=reDecD8J4YGD0U%~k7Z zdP&?R>WJ!FY*VL<(&l!F_*7=Ubn5?V6TR-!Iz)`>v`|YbJ(VL`co~|4%#k)67+sb5 z4Kawpc^%7;_6+7C*z*HzSBWw=FiGqKc?K8gdS81mkSeSRq+}l=QwN^O`OQ zO{#TcqYK{!3vswl2rA%51SdS+Fi|)g= zuB53}eBJZHky!@X71~LMX%}~{m!4Bz<jU#Lmz!@mA5kJR0}Yb~k3Z%1;Vj}zX2^OGK2{XrkQQ9cV`Fk3P2u5Q>J zm747&-9u`v^E~xIK4AFXLHJ2Fja`zh$P$NiBFHh2xLCGdF|6Ss=#d0ZjJsHvSnBk5 zgc~_yj0@X*_29D|>dbo<%o6k>2r z^Bkc`;aGU^1CdFTc6t@)w@O%M9_9BW2|894ebw138A_|NbhI;gn>{>cTq7b5l$YqP ziqlI+)@jwZasq!gdOsF2>&!Ne%=3Ai#cG}y&PM#+VbSCM{AVNN{t%6pmIf59|M+K+ z&w*@(=k)UFgGZ&MF>rWtZ@~a=^AyyjF}tX;$O0kd7YV3E?wOdR;kW7B5lVt)v$;J3;`L5Q#;K2hiqLu;beyqBu#Inp5gFU_`0#tHbXDY(@f0|nST3c zlkT>I=DUB$s*?8;*_!w3(S9!uNZy<-cv3JTc~oIJ4DJBdM9^ch7Qyw=3r{ab=L?og zHdaxwi-Ee-3wbS_M8WU(Bx1%PjaBh(3+!IvA*0~ytu^P$WrRFB)M-iBh~06H&ZHu{ z`;;UD`*2EEsy<&oAI|y;xLqdX(PQ6gyxt!IFR)Rosrocd?8^@UBd+;k^my(J*^}_(3fjf4bl8i}FJX|$V{k~=?eSW$) zb?ea;SBIJ1U01)jjff}Lkk-dD>6g-iPl~(*UfZkfAbf7q4X1KbMuHcCyzKWnH^i_k zg3V4CTJLEvu|7E_;6zGWxjYGFR~cA6_Xhp?YBYQg*qtFA%$b_hRn zFYy(SVtutN`c|jt@%D*)9qSYNLGnTB2@ZX3+5;W~=cgXz7aF#3pc?`5*SN--9!FngLuuQng$v77u4 z_=T%l!%6~yZ#(%+usL!mI_5)Ba|u&=G9W=f%_K&&0!Js_+a13F&csRk!LT1^4)r9z42jegEG>IIRRHqE1K7d7<|q zat}4*;f)GXFT_jv!B6R4Q{rEZZ?Jh&GD?iBoa*CfA2%d3y6XQ(n=p-jgIya~RKs5b zNJHuP;{%UV%>$umNDh8k-++iq4AzPQgP@*|{Z@={hUnPx-kyv2VGuJs@^#2Ca-BXE ztDdMHJ;E$XDs<8G3Wnt0gyVLk|pk1PyS-$IPi?mJ@WGbIvi?kb4W^~gqC|^<) zfA^Ioch=DacE*6IiPd!+t0gGOCJ%lA*!OvYd92xNvGtG{edi@6oYp_%{@jVzRWcC_ zTeIK2!2BQ@?m@l4Tz6lqvyew6p<1IEEREK;GDP6!9wdAu4E@r$K^s@$b(EH+eR+*Z zMH=Wt*79nOaUZPRIUAph+w#ES3c&waSH74eDChQ`#N>g{=14#lv{M#& zx8_SGNa(fU7ZA2B!6;6#_1t5|fiR*|c66yUgPxDYcHW%90!BOK71f*r^ml5HhqH;@ z#|J5du_DS-CM8cT$fBQyTfQ#?fAacjrf|;8kJJ^S6J?Nz){U;qzr3oAYq_?efU`0U z-3qT_cvl70LNDEM6}_Dffam**UtJ!lGDLsO+4#c9@vV0i*qS|Y(37xC(7z7goTV9) zmVP4#`CcdD5Z&46<;tES3D(&z0{aP`d{{1Js4mmQEY3tz+=A-TB1us|w&YTrV9e5t zE+skp;dYOz(cGuOlc{qWGBppxXrb!!x&7mi8oGQA>iIw#CNsuxBl(f=Hsn^DDNiew zxOyYP0=;BH2dGp8xFsSMdEUCxnbz z2HDCRjcivwOf4bx6F+=_;e(W{HXQhi+V<^q&@~~dS-YHr4T>Pq63IMnl#hUqsVnid zOl#`)%^ZYoO|P^M>4Vl_FE+hU6uup=s3$~7Ce!P@G$Pky&(osJo~EecVKR78_2x)^ zv_|Co@fuy^qGQW~iP13g;beLh!TDJCms>jt$&-zg+4fWOPx5qt!)xNoKfCDpIjaHq z+O)cNf9yz*dNg%_s-x@wf4Dlw;6Q@4ZO69FO*XcjY?6&_+s4M3I2+rxZ6_Pswz;wS z?Rl%tr(g4{yJn{9sh*y`pX=gu@?+{%t84lpcoo%LVD=d}eT3o@y0mezj5&9?L;G8O zL7%iIm-D!j#LBrCtEY6C2lDMYP12I!uF=qv>A1kyv(Buiab^TXhhW;>WviPzxIMcE z7PPsN`_0ULbaed}HV&{`N{_7U*0+E9b11U2#pWvzAI|EhNhg-z?{47^%csY`js(Y; zxj*Ll&Rgq+xr#A)YlWArO>xP<$yd4}`1rx)4~SgJsFOd!6}kp2Fa5o`gQYWv)!@p*b#(LaFL_<-+?85W$*e}Z7d(W-Bi{lS%ha)`WUe(Le@lR}d{Q6Vg|9vF9`hT5 zav|Ll5R>%bS-EGr&~vbEgrcWe%WG-vSVVS_am4GcxEE>_B-{bhg#ft#b-AF|LxLHs zMl42A>ltfz#_mwl3J^|0!qC@KDs0s}XOKGhH8l~WdMqnBktvnPYVbz(Yw97$6Jwna z0VsECNPK|^b78=y9^bXU$$$SB!LydXfS9yl(D-#R!4@Cf)zr0HfnlNOh`}AmkthaI z-6yTzu2dfw{V(ure2_b%Yf*zV(1^Gb+*TaXM@GEG{E`{5i{7^9mS_4t(nh$qAZds= z_uu8w;b}${7^IuzwkhC;9=B*Oh*7z?g&qp?MNvy~3!i}68**!@UG639=Jo@UPq1&r zXQ?p91*_C;;mc)Djhl9I33WSP|=@m zxoP~jUTppHDf@tb`>kcGqbuhQ)%#xH+=uAiWAHe28oArqd)#OFjp(k(7pcdp=i%3? zz;O5Q)?a}5OmGv(__F(Q0|Nsu2XBV##5+NtL*BrAww)==eG#^Y3Wb_R-XeIns^uLJ zG?5(X$b-zw%KO<5){plmTY-IV*#g4-SlHkT(nR>LOkg4I3Y@FWaxZd*=YyGD4U(Y+ zw>mxiOtm;YdTEXNI9cLysVOY3a7to*q>M$VmKhLt++ei|;vt)&^*CoMOk8G)j#pj- zHKJi+)-K&6O>ca_G@(2WHixHHW(xLjzE}@)$Zw@7@)^RpP#+n92&j&0VHi48n1bUO zBB+k*ZOslDHQ9(@8uk#WE3d1lx8>&dG1sy!#bqWY?xk)Yj8xi`+Lt;fsSNTul}n=& z-~tiYyl@&7o^^_5Rvw?VGA|f`C zqoI%I`brv$_{bXTmQ{2X+xgSxtu4k*W&q5MIF?=CxS^IhbfRCX2ic{K(FwjlQDHrO z^v#8;2l9k2O|yKj89(RGzn;=AT5S)cgl176O{% zA#f>UH}P|G>E&7$Q+RADAT9>+741Yg1bv!lsPMgG1QZVs>_tfwOhgW~jdf$Hn+kKi z*VHvS2z*2%B)3S>f6{M5ihA#UYeY+CRWw%@SJo{I_9d!<87AG~217UC|mkfl6}q&Mm@ZSN&S^56kPUtHy(JxrsJqkA6*e|LL>;9$Y;K zrB-n5&RqJ9ytJ{ny)u4QQBb6YF+iQ-&N{i33o;zb5yCSmx4js2K%r)Vr3_ejwDh~3 zQq)%j6P8L?MM%sgaXnuzkEev{DKD<9 z?~JF`8r_3Z;HLtaiLYmoYx~2)(Ia&RQZqD2@$W8K)O`*EtfGek24$NtA1cx3XX2GW zl%_r1ugiLTzKQLRVT2^nT>{WM93)nP$P7Lxpo3?Fve9GODufc{&UIf9IQHXk50Pmy z9NE-+U|r7C5Oh^#v=wfm_fvx~9L>kUmqFjE|{a@9QMM;!(n%%xEz(BcE}>0^2W zI^%c-OI%V`)`sCp6Z#iMj2N$=x3&RgRF)1Zi3{MO>JL@k{=2VioxsGbhHfz#fn$Yk zm;%*1#pu#9of&IJL^N#qKwYXPN-AS^NE1a-gcKHtArp3mwddbqpjx8^0a6@Z!G)f| zTtarj$>jJLlN;`?A;QcA!-U%jj!+r?w&XZ+8t>}&2vyMWZ};KI%>1yI`EY`nd=l~+ zi(+!Y^|(0Bd1mhK_JDUMd4;=`u$o~Wc~5T~tErWp9M;0&LDYB_hroCH0CM!#!$WLt zC+Fe=4A7Z;?=4lxqy*IwKiN?l98OdsRu*R`=Ww$j-g@WoTbv0Sko4WubVY?kRy!>_ zaew2p#(=VyU`-HXKEKKF(QyVp#rl6VSyT`UozI0dNN#jWEMV|Q30Y~R8wRFHk%typO>17A^b%Cy_u}LYav2plURGI1Q z4565QG2D=v`#`w6^bWrRSxNyfgJ2EQd9|ei=wH4cenOOHH>7@k2+#P#%=-t&plt|p zioU{%j5MrHa1DEexRBhz2*DQt-a;w=Vlhm3C7^<7*S9L(X^|S6Jyy_-MqR34!{(+3 zV7($CLp_a*Bb1w?f9vVE}`^Hj}^J1VSd zdne`;f|_)FGXbHFK78t<7Mn2mN&|jY3MN6TRAx;r&1rL<*1mGQ#jC{>x{$tHb$i;{ z6pDyEZ6C(;7CEYzAC*-VK@8I8H2A%#TvB*>&DFO8i46%e-@UR6RUXM>f>F*@W%p*;RSv}ZSpW5P`QZ`` z@JDL(J4!*(DD89rg7P)I{dC7oa6j=>E}45+9{=eZU$k{JjWgF7|xR z0WLQ*kP!G+lc&I=-Q=HEUo;et(UQG`6sKT%OG0`Cak>65f9^42tcXePBU-#c@ zv`T&kenDg7e|!Z|Zl|sLu&I~pxLiL`=nSc5Rz&1hLw$R@axhGkJ-jaGY7`(;F;KsD zV@Rro^iH&@HZ&!W;|9*p2xa4H^JQ-cfEv7LL-s5EinBHr5kw(d1qz+fCXu`%mBU78 zGw|U(H9|&zwIZD#R;njNFqKUK9r= z7Ct^te%}3}joh^lghW5<@u0VDIy#Juc`F$FdmUY>uRStNq0Vs4OQlu#WQAUd776xn z%^6l}cKWN{RGEyI+@?RmV&7`whUGS(dqY9gLBqJ%Uon zV=JZ+{ql*}b(c_5>K=9lx4nIg;OBO&hM@eSw`(+8sc&6piZZ$)7V&rD!#;HU@5I^R zGYG%G!#{TrlsXIXse{-T_s_eR5>6k+_ificp?Y&n`LP71#uPhhz(s;Ro7I|&AO`;3 znZB@OX`BYvsI&*LXpW3cKpRE2>izn&!J66}rj^#~i1u^M@c0^TAqMglO*{EcR0occ z&W9Zondk#vyA|yRX+mR8`fT9%FhSnK&ejq9vif(K-}kvoG`MT9r)@Cj5vItY()tLX zaSm_4tMMXUD(C5v9-BjzX!dc$%*P^LVQSTLL4|+Ah#Ug?d}tykwPZj#!@00*3dx#G z`ATAES+k$a3*?TP;LKji6E)kAr2@vJA(4l^PP@plonD=Hog7{xa*KbDQ-be!?RdJF zgM~5`ssDS(R~9bf+ZUL$cfx(LeRDhe@c>^X+~JqOgCQp3>7V~X1=OA76hsy+Qpa*@ zySRp6C5%9XGfheh1B8H?@LT2xxWr<@fe$Yk>iZ3=)Z`&_v?+|ZDb^OIj^@RzB-KJDR) z+>e^g?nURP7^1iQxz8JOZ$a&KK{SQRYlyApv*uquP2oOj-fH?&^MWBA3CFi4qf#>4 z*dLzx$b-LV+Z4Y}S|W!}rRX%a@sp@N3yL{eG{?3dUtB2gEBEMMkG&qeb%N`~n}+|^ zCO!l8K|kSb8ee%G?o#*`{^AKsFN+RfV={i)5Gl8%`tY$s#JEZrEv>1I z%*U634}IL77pgZJceE+rt@MtfJN?2Yo+5yDSlch(Bi=AW_(_PSX1EQmZ7z-5w}Rb7 z2DV-C{52gQvYG*`qwt=Y9-6{`aTM5I+wPgxfa}Y~vgFrdYk|s(V?b_0B_eElBFPVH zTgJh5vv<23v_{jS6z6cIwh9mK;clTQN~k=t;uF?83(*q^ zN)B)+Y80I?b_gFxe?}Ib$AlI!NPRw^*__6NjuNYf)euF;>t)I6xrT=p03)=C1XdJT z^tf~5i7vfW`%oUR284wNgDg(Dk(~x)Z?*>>QrQJlM7MMlZ&WXVQ5QuAY5bI@X(si< zqS;%vN!dgazqCiMa`5Ord?7uom|h4eI;cG21Q3VpttqNv2$Hp^Js@1p@6{lM(81OE)imaNtU?s<5TRMfEmDDIS2*t_qEMN-ZfmeQ8y=2vS&A z9ke7?<{fY@$((Wqo3K+k95|BwigjD!XIVys6i-S@(vq^Sc`EZ#=r|$}7iSaKZWRu7g6p0fBCJYqLX1Imilq?;Q8+TA`_(YeFqzwoVZ0#$d z6S*cl6!QUKg_fg*!0&hwDLAS&YsfSy$!_G)0uwkQI@!E$PfTfiu`**fDU?NVnT{OP z!#Oe&w<(lLETGwxiE%dWV*)bu@1yReI62}&rdmag94yt!4m_?#W+9qmjqww5pnb|A z^WRKUCB?rBz{yY5iH};6P04k_We?%G&S{Y2u7_n!u{a`700p4Ivz#MTQsPM8$f+cu zp-NKXc7K2s?IuX#QS?K-N%T`mX32z5LQ4Jko`BI>q!5pQm_UsSRuc*lUnmq0QzQz+ z=iVitAtm(PY|R-Ev$QH3^bcuQDs^&(nV&R=I|k+#a!El6j|(e)Q^O%0RAPyZ$C1jP z{5Hm@96m+{4orNDkB4c{4A1?x!K?wNFH8_9xnhC_M;@w#CL+mn&5;^U5-X(u0$cda z4-JsI0O`w?efNfz_DvgD9wvK1q7=Z|L;Tz6^BeJXovIG(a7o6gWA~49f{x6>{l6hZ zoNWK_P5jFc_$l%~A#hUQp1{IsSh)Ygv{8cl2RZpa5S0IN#`yRcWlZhNT`Wlc4NZxI z0wV@=lP06rgiwO6_=00H`r*8M-6(tGrOyq?-+OORCTMkeAg0~ILZNrt0RX$tJ>eXebch_w?cQ#xsyJ%78?%h z&&CYH?;Hia*K)=(^`1KHJbgO1F2ASrKyBOoC?m+h&ucuc)(P>^9`gB8GmB`~Q;Ycf zi<{QxX}hDi`tZ)v0=O6+ZBDZ}=UEDUPN@yeEvXhTqI`B zdS-oeRRadx)PU-U?K}awcccfGJz#prZExBH1t^YsCbS*MDIL6W5Z8M*1h@SN?CN|# zULGapbN7xFzs!CoCDG4mjBbCSi_&=yWOI6onQPP^O?mvE=@Mk$iTL*iuM{~MeTR_u zo(zzd1g{bIo_3JSd%yvO4_5bpvnvbZhZ409{wapiPZOl2ugIF$pF;q%?`ymu+lF<4 zxBATV+z5qDks-15BB;lp`1uG0k7aem=f&UBSLlJ5J$--D@UO77=Q{hw&%EZ(zE!cC z?`sh`$M{u1Yt32CDXs66B8H$jUs%p@QY3L#%D^`=@`!kJ(bUAM*Kq0?j!alJ{P zEHuT@43%UUcQ3^o6R0%k6h7>Ce4B5XHno;DLvUPvHc^n^KCSm3_V4KtuqtfL-A>w&Y@W%)U$5_1fNF zf3N+O6hY2)2cn(9ZAMu4*!TaGPYTZp1X@bABm{8^-WwPrD07R{8`uqKiu?x{8XpVy zf6#48aEvPUs&*E#F-z?|L-% zFgE|p2yhRo2PJB{4{7In3bBXjWgT3eJ6=WqMEmsXz2kPr3d|PJ?-;@f#y!?2QBgoa z5;I<(nNbZ=lbLyN7{KoSyF!`bY5~Rpv=DcqVDEmvHoRxsOFT!j6J4LJI*`>!1K*~5 zwwn31}@xKDDjG zkhYXo!vTM0x!ya%6WDux7c~Cg*}^5WraA}>f&+u@pgbXjeh<2SE<4M$Na}fVz%7~; zsGWT7&zYFs%osny0zNdoAA+LBC#o)z?y~MES$=QUe>yC%q3lK4%AIK{+F`!I=h0fQ z$_2mOodAw{^;vvD%LV4Dn;VLkq2ACPcEN-xt$#PFHWb;0+;)a%cxh;7I=~6VNMmU* zyF`<(5l_JH;goj?Vt1I8s0or8fgSBYJxslQwR~;rl-@z6GBH}vdXTP4fjkzYP|q9( z*k6IiTBxsod&*V8U#0ygN-4zS&r;nACo@ zF+8^|o=IPQ99W{7oflz# zuejo(|MfEHHSvT&-!Xil%|Yy6>1!GE1Ro*f@_m?m_$2rSa>U#4 z{g1m?dQq>Ejsf-coy9*a)b~$iJVkuLXK7JYI4(IMzAZS8`CK*=H`AS3+~B4y6-4tT z(mWE1?EslIf(j3#4Q^(;G9X|Y?4VVq&S+fZcyCOMLTnI{EXVE;KAaBnd9d&8_3bKw z=Nh~fEu-+MFbArL^SPx6p9dP6SJ3_Z3IMF*)8Gn*{q2}%77NHyf^(T3t%7T{25%@4 z=Wr*m#k0^0(J*{9d+Ul`%nZ5M$HP`SH2icA63F{=PcLrO ziJ+`(QZ=6;+werTfY@qjpQ?$3d>xUZgyf@z0rOjID%2Y8KKE^{*l=V2eGe4c0XY_0a#K`JXXGOl(7h)e6GL54t zMMuD?T6NdG{jocB%dPJ00e;U@Ha(xHdl&Eu?&KS86Me*c0C(5knNi9&G^dECx4l_8 z`ptOIM&K=%V76Icz7a27RPae1W~PK9fgFO8+$K0|tm5WHs|XfheeWjPzvvgu;JMvVg zo2M`^YJT3A0m|kT$%{^r9YLRl4 zIIb*L1U;QbE*r4ja12_pdIoiC$@};Df8wR2g-!i~c>|v$e>~V4U&&|2`9|FZ8P6dP zQ8L<=61}Z4a{D6Gq#d{OHmv@d$ald3B4X=i25{v_MnEsZQa*|dtRsKju?Sg-Pa^J19Uy=4-~LN z{?kx*ia)W&s68<+l4avojc8R!nqk{cGY+CD`AwugJV8TThzKM;h6_q!gka-K9D6Q! zB&QX<0Hh7>dv|zV)Zb7kmia=T%SquNy50=7O` z$i!0?6d19Av}c>df_w%E$tZO?lRVClV+Zg**2LU}uxIoAwO6%PFqVpN>Bmx>Cv5#E zzr*pD#60qcIY3Vr#I5kG@U3w0#*cE;3l%BL0D2NVI!JrxrdGFrexEsPFA{lzIt_P!{_%NFMM)>CWI6B+Dy+h zSBwG{VH1<{XLk*Y7OKsYt)jLKSZY)3KZIl>^&yJtWH=6+lM#v~u`Y+OcO@q;wc)2H z0Q%n2O;t)V)afHB_M$Z<-Lmclg>)sW#uDzzXqS#Ewi31$wi>n`l}v3WFF8-%=nfx& zl+gJq8i#IfEUeTW5~NzS!~8)5vfHWR?=3E#Uq7w{K6~vMUK#E^{>359heP@^lZYD*>o3NFA6*4Hud0)4lam!3^raei;|V>!B~GY%JO6s>wD!k~K7X-} zoIwfB2p9e2$1Nw47FZb0%qFY#9@2$UNlXxypd5(o=F3^BETY(% z5Dc_AgxJ#jr9Qx_pP!uarP_ML2#i&X)SzHv-aE(L|NaZYOuPJjQdwvPHYe*A~L+B4Jm47bw(`^8k&- zwwxrF0e*tI_g9$61v@`_i~Cc8GlX#TLT$1ZU1%q9kvsX|8`o541o8wrtEr5bN-D z{vEE-cb|Il1D{Ub+QZ7^a=V1^{tkFL^H%qAbD=Yy-DkdD`y_`(H>9tCHkJNKDxz4i z@N0EzYkMqb6Q~8y+-`d(-W=T8g@q!Ey4G?Zm zb}^q4-2=P7E~8_jfgGEwZlO1*e=Ee7oA6tkMXd*kUH%AjZV|kz#oaago|=g^0w0sps(mu9bsc#44qBIIoe+yp(!Tk1;)E>hRk7 zllRs4xzLXHPhHd=Vlr6b-j;ozXTQduc<};>M0W0;qQP4Uz$cBa?-jpIFZGqbZ)r`X zIlpe$csZ=|o5#Uo*}}lL1M50iOuPe*_%ky|Rip}tn{yHZ$6veLGhqnQ_AoWFpQ#n? zN<;iyr#WZXgec&aGchK3^jd#ZfEko|!56b-F7^=;!SNkG(A`KMH80{Ef&Ik1ehibu6ZLb(-_e10Dg>EQ z0kynl3LBk7u-`{X9G?wSHgsfWLevs{@ca9j?F)-&M`mEK3yS1 ze*`oYlq#?NsR_-NjXBEqT;9;s4AHS2CCGm`E+&);hME$67lS?~VBSp8)`}0dfif>2 zqfAZ?z$lPHh#F(Q@7}Pims0RI{mXncXttS2pB`RG}Sj<7}^ zdzj=ZxW{kk`qgE#R7V!_1}y`}D$Nez=H_QbXZt&T5#tadZtuZLy|`cW$6OMBF0~ZF zp2||^@KRU(#lhL=t4boW-Rkaoi1~V)h(o7No}KS`_P@v&7rsIk(PPR3O<8jRBS#Av z^%4I-ZD1bEoiB%(OLdah$xgK%e#xV=h0(dpX?FWY;3G4evQS zEv{F5t|}3#b}IT7_02z(KzIZY?M8*gKBBGLyv6q*^yqUEcU%er*+pEm^5=VhFq2sc zc4ze}%2p^=tVn9onw+yd%ug${m$5E{N1*RZUck?{s(&{-NgK1vZ$F@MfCSX@s%J`3 zIUM?x zg=y8b2;nL|1pNivYAkX?_U+7?GB!fF&C3%?Qhtm?mUD81BnN)O>+L|GdmlrVWP+0@ zC|wcqMO)w}VqPr0j8X^!DZnbb?GR1FlnV|p2dqS zgtf+!A+(pd7uV6lApc(h}(QX&-m_pzLK&Ujk((Oj{W8^5bI_?j>G^;#D?y^_&8o%7KB z@BCRiV`&OWv}+UzN@Zm_^d!rK2J0d&J=St&<&xtSigwLXS$5YE2L_LEbPaf#GTdq7 zW>svK$z^Kk$(rF4*p$86oA`3)o1Ff`TB*Zwkr_qOg3ugg;FZsR-)I@Q)1YTQu{)A~ zr--|Ou>kALcmKp#7*F|yeIlz_t*nrnoEzAlEd!^SZzXMV=A#`orjXXw{Rf+_O^gx+ z3D9jRPwkxBJZ*knFH4h`T?z2d(JSdu8A6YfV{iE2o_(fERwUmbv&vJa0}Uo6<2pd` zelv8*O$tYoj#OYBaC7|KMd^diRSMnG5YK}nrTEhc2o=&GFvvZ zc~>WDk1A?j9X&eBm**__=zsWR)j>qGCUT9SS!5>1FCH*-5^w(q8Qom_SR;R~IPjem zv?lJ`Ci~77W8D+jBcHwGEzb+Tm%3&+?jeEq*2nzBsN2q7MS@Rb85b8=w{ZGg?`T@(p;vy2gbj>y{fKpY6dwW-H+U!)|tgOLNM{`2RJOlp=WEkXrO zLZM)Bxop$eS-3f=?j=1aJOyU2l8d*U(er4+3f4`pG@Tk%U@wh2{@D*3tEt3^mqR~` zhPOPGJrRf#E_*Y2+_JAy-#-qx5ok9&8I*Yf@hvO&j`Lvf9ARkkUM$&q4GH%q?~}5P zGn;UqJvtR%u?c|q%YrK_A!yFpZtHB?ALwer6?==ps=3o-0k=&7u*V}+%i$4W`KiC1 zm#R0I99g+R>BrATkGZcYOTA|5B?A3Aa2=5SeO0M;Xw>?Gdf{`WxdQx-uXnfy!GwR- z!ofjf&4BGGfES(j2=F$Di8Yy$i)8fnF$bV*<*tRSN#FxLszrHt1s;Tr?BDpm`Dl8= zqD zNPak{?asleFB!J6_xKMxEP-9LEiHI{p9x`>$a>(kB*^GADdO3Xj$nLO%UnG86Cz?( zbi2^frTo->jseX1NP0>|3w-{xf-SuRe#d)Uue1zk-QJ;}qdtk<8az_Q-hP{ANBV@$ zGDiPlvaPW%PlQ)tzz+QyDGR(WZgUW{4>s=EQ|b5XE%Y!sna(fh3+yyLr+VNGWz8rv zgk}TBj`t*dwt?k!xb*&9ypRH0G2*2mJIXL#SHfTZ;x@4kpNL6TB~a zp9EjnhF!JVT=efsMT(HB1y+ju`JZmG#b#wka`Yu1osaR+%iOLlr@r|ur`i}($N5UX zP1>Y6$+43X`NGV9yc7YLb%w?w-P&mNMt(r27_Ku2w$czpQ9&uok)gK`F1!Lbk=hVV z?Hy+l^WWSY#UW2FvF^f1|mQ>j{L>_LkN`A_~0~&a+@4y6E4^NZ``AD`?I zIpzg^^a#1-i->#3e3>YazfWS`LKWZlV28Z*I#vilcMb7j5UlDW>S9k|k$`YR1wI=X z*CC-Dp<3ut7tnbOmZK+XyeAje;MYGOa-c@Oy+~5GkOjFrBE|84l!T5j`DZOkX?H+9 zbNi}41@xJY!W4bm!Mk$z+c3!2Nt#32jlpy8{wNJe4q!(Ib$;jygbd+>^nqo4Fca?^ zu0io?lvT8BOLODG47}%k;s8wZ*a|R;&%Z0Bgw}~6-D#qAFYcJj(tHYhz0eSOi%$P- z&r6XnKxRMPgt_15T&!HX6%R)gdWL;g#N$=si zQuV_grokSb2`Cdn`M^cQ9ZN8(2Erp!xW8pJ5}BCyJ)p~^!Sh?mRB3(S#{jhNaRMX` zj98~)9TRFqaN;j-VYOHULOoMyKjMRW!08O zS9P^(I1HrnK$;TtW^HwKU3F1=A44<8^5Vig=t*67QT5OyiSScy7}SuRtg^B7W-&)9 zNGlgC6EO11BMt^p8UnCKvQqkz|CYXK&CuF_RkN$KuWE=`q<^SN3~r*A?PX~Cev!-4 z>@QGugNNx`7Im^Q+y$O{Vkg$S)_w*hv?8_oj6>(HzM0LS&n51o4Qt2EU#~)QEYEwV z#SQBRUjr|)Gv;gq^NA2QNE4H}TO1IPY|;_$3s}B_T!mPDE78BQBR1)ylBGZ)CQX-t z0#n2~Re*XEk=l&#^z_HMkP;H^zQ6y|Y!NVd3W~}2dshOa89@|`S%NaZgxHMSf10|8 zD?hP34NZZD^(E#x->_80f3th5&&e-p#&d`Z79wx+Oj*?Y>^z)4;&>)?r9ak7*ui3K z3=rFNePjRU2{-RW^&@C1;k!WQO%x5Y%4J3_5XKM&T>$?XkAs%Cc@+?%FDj=3x-5d@ z3KsNx2}A}V{Rv0tEf)HLly_pOfTTC2zZCD`55=F^Z_%`4+1}UZf&3l2myi;K<-xN^ zy|uW}3}hFN{ai3!-Zr73yV#)8D3^wQrvOAJs2{o^0CVEGvL?eAHE8;0$Q%ub2D)dJ13`nn1#Ai+&I?&X5 znVx7$=xLBRaX0Lv1fBji%qaEI(?4BP^_MygJRD1``O=W%(pYN~)|s^SqU1(|!rJWl z6{nfnKGE@QHC;ZgB2*EU1^JGJZ_{QmC6`iLjAj=(^V zbbPMJf+w1Fs5SL+pUCgbhzL!s78qt$ut;-TP4K4kH9=;Oxs4Yw<8EIb_brI5VOZH$ zJV@}Vh3~A7F$}9qYV~b5T&Q@y*?@>q#;~|h{xn8`ug_5qSLVrMHEa#_lM>u_4##Iq zAQ|$mLRT}kVVB!apk7JRI0Kt{#l_P64n6_>PIqJ+ZuYvOQ!ncH9%rdX4LGk)yI9EA zBN09^dkxw0WA-Sn*nUB9U%+w`(p~*VXdpmlx%A6lJYDMPUT~Zo-3UP^BFxxzRYpT( z^11h+guAggG2><}l{k^kKQVQa>Yws0qx=OTirxRc|J$2mO+3Xu)|pXbSLD9mpHmjB zEIZQ_Xr>Siv($QFCx-O7USOCNw2FY40xy5wV84!~sP2Fuwo~4O#S25)mGbu2#nWtBo92ENdQ{4%Ctwyvt+nATk zsON3u1odJW=jhR>9(Ij>Vt8eZZ||Pr+a8(+ZpngP-#6QP5Q3zk8el>!-l;UyBj%#R z5s&o&{X-=!-Z|4PJ=7yLs(P^RfjdpkzF4n%ut2xYi*X&hRZcC23U_4q`8*?pQvhAo z-Hgx9Obspovj;Xisw*Dh{xilgew$1!9_xh$>JN3ZU>4I&dlr@X)@`q&SBkc`J z%YdB*qRtOvfyU5NZlF}u1&5(6+(X0cf#TPoxxvI=~@>8j&@ODc5`Da%-o^7F8)rzOBC>thh z$rB9eE63{>n2}7RM+g>s?OA7vQO^AsIrjsUoM>ZzQIaN=B>yc@;jGn6YoHt)bKwgv z(wQxqfL{DMf;d#81i*F361EXp?aVT)dWnbepR!yL1p0@9h?|&S%F~F_ae~=xqO9W1 z8c0D`<4uzAiW#jq$2{l@R3_QxJY^;KR*JQcwYE@8YNJQhhuIc;bG3z2Rztvu0I+h` zaCueMP1zKYXq2(9M2vdK@+2?W_^IN`?NW^vO2c!?BU9q#u_!vMa~u`+23Knlcx%mf zI~6W_>D$^?!gY)<8z~14-JTn+@P41<4buJa`E0vBts{9vxX>zCTW=mcZns5Y-E*Vk zEDbVy`I?Q<&3zU1^bKGw!O7MM_)cQJ>x$5954EvSnVEB#&hC07dAVDy+O}6>(pHjl z=DWWcn%QyKpy>2;ZtBy%0WXfO8>S;D5;kSxS0%UT^1`+(CHIBAKP-6M`cb{ofW{4EdtdRrTw>nV zsE^FcSD|MM$Y*Q)oZ=Y;dLm<4a-cc+o@{R;MG z4bFTW!VXeK<9;Ccib~K9w)gh;HWmbKXVG>K)STu91+_$o;zpLU4n%og)^1$?EPuOg za#q)O)IE#=nzXpOqrIEb3A|RQ3DzZve#M7=yPZ}anWa6TMe|?+lDykeBTeENB@ZId z+T_W8eq*^{h41$o?Fy~>)5YQR3~#pkFQnKfgXDS)8=84Q1kUZg)9Ii<27PIVjgpDK>@5cw?R? z2593L!d#>V8d6*&4$K%=eG^ny7~(Q2O)?T}vT|r_n&Rj=04H)OOuNJpv+tG(zdKYJ zTPF)u<+V6ggOX9}%U0=Z>f_8SSPNzbce zo4h1-ZPOK6QWlEi(q)uvzg1+JBn4OM7-FbNnG8C0)&7x4J|C?wM=)H4Dbp&)E@zQg z^z|*vrgOcK2C&TGq?2O@dpGuEl-j72OE-kD=o{f8SVl!?9T`S2GWF^~lCe$V;eHm6 zQ>rYW{iLK0ExYAo*|tMHDv5tN=1P$sUmuqV*c7=q=7Nwny^9n{3ro!EpYEIIOOi`9 z|8_UE`%#VmGKXkV9X7ElBxPm}N6{e3{ElHy(jd&<0I*8NC1D(C1dDv9M!|-KtoRLc zw?`JAV~crf9>@1Qnjpd8cfcbVon$gCgTmI61w^!RL{V9agf88gnb zs8TjBs{$)SEZ^>|Sw#{(_zwu8zi0_Fd9$U&JQ1a=v6mtGylgBb(IdzlQHVy9rO{?+ z2%9BxXD|GmUh(Xu&UbH^2f#M;8TGzFia}cpIy5XxVH@~+;sKrb+*wU5j~i3r zoIu=n=1;G-i`h1i2|DnRrY<@33 z^&N0`=;}WL&j?$gbQ69^p`>uSC?UVx37dO8PyD$QxWJiP_in(MW^fiLRvt+MABZ_| zOTF;YI881%bpJL=UNI?QTOzRL&u(j~QUMbX^m+JRs>-meioA0Ynl>W}8vo*5lKa)+ z<(Vv(P}mbBYq&81$P>BcO!6ZJUBj|ZA(lpbG0l`7R1=+Ad10Bu7x&&QxF&vvCRH;R zQgz>zg4NDTI`R#hr3y+s;_aCcO!txnl32=$a{6L-SE9wZ|FvFHnawz+=^63uo&j^0 z-oiNnsI=^_3EFZ=;sr8D|4y)<%DR>i*iQ!BsUcdl`&o^x&Sre%YKnLk6gORHkf)3+ z!X6y`2W{kLO4cSDz3LPd16*eNIC7PVFU<-&IS1J*W>wlXrCchbW0fhy(Mta8pb^BX+^)%oc2q$oE5mBLhYfno3o-&)>5q}`ccw9oAl`WQ3EF>B-LcCJ(FLYf!Xe+$)X+`m z$SQPt?fZU;%q+>JH#c|AG!--yCR&R%yM34|aDAeLgd*&jt0n9rtfb_LJG= zx|dv){Nn`#YxFxMJ?)}3rMESVccugko$9}8Ub{lA+rL64F)tCGFM-hKBXjcr7g*k? zALvBLKkpNM5@&e~1@Uo;i|z{C!}JLEa7x;dFFV)(ms(+5oKlVu|BJ1646h`L_BT7W z?G8@Tv2EM7t&W}3amUVyZ95&SW81cEP2ahg|ID4Q^;FffKCQK@_PgKTKKQ(gt$h$P2&(E!;QQ&gqtB9=)!G)ErV?mG?ZE`b=%j5a=$hap*)tc(itj1^A zHD>hcOMzs4LnHYt)`>5TC~X(jT5S@tRsYUvs1@q1QC>PUffMqQHg0HQT!0hdpf%wj zhg>hS7`9HeSzQ80gbZ;ZM9N5~$JHno3bd}N#vmZ(HP zoX3O+V@||)7=&OhIhU=&-;-oEIqV+b%RgV>d4A!4HSYgGssEv$pwqSgZrq2#5TP(k z{|Qoq4AvoWTOvXr$iTpvnf|k1uZKdgBCv9>e`o!dI?2iXFL~7r5)+^4f6=3?O#exb zg5)+JapC?8y=GEZ}AS-(!UNKhoC!KacQwk^l_}XKmshRMM)=^AEws(&E9#2t>Ryz@ zXTD!?KPgy%2jr_;ooQzzOWQ3!7Ba>#%w^3GJewrRXF@2Kjg{^t7 zwr77mr!1k8d4P>KU1XiD8Tg%d)WMEmpvi2^?A&=8F5d`-z?u_>9;xye?F`vPq8(Bh z3A7c^c2xg(iRTNhS4;h>W1T*I`Cxa{3sB;aQ?4Crs6NuR&O*Fn8V4>oD1sQjVo2ly zUXX(smRB)gLm2rXPs0Al2)Q0Yi3EnWVU314{1&t8m2=*ly z$;&9nPmK~M7p$Ip6%0l3I(C?f%)AT$5-CCXUtxk=C^$PDdVy=xrpGlV2jKIP#RWID ztDzgmT$_QMqf=w{&p_sTSZ|ocmhG(2gHY?yvDyaMr%|f?qZ!&`N>`~(dJ+)I4$rb? zn7eGd6JYXh^6Z@_XLdDT1z%)Leu1aJD#}(9dPt}2H3S#R2f_!!QJ-BsoA&4+a1daH z^UAJG)&kZ9%#DjmD)6LjQ^v0$6c?0q%mWz{<*920ZYi4u0-Z6tfRb<1G_Hi5A%KHY z(gCZ)wL-;drxW56j5wu0NAyWRs};b@z#%0kp$58Dh?p)OJweu@|H>ITz`dXa(cY84 z=lTjd_ov=#tE-eZaVPRRgt~QWqws39!O+v5hS6^ga6&$RqADo?NoY>|)=znPL5neo0-6-?1P{*~}iAmB8Ot%tE@hh(X!P6 z7ZnIH*YZ$T5RwwHw<}pMUWdZ#|6QMXb4xIM4b4G~K!Jxv34lSs0@Zw`PYrHOhp{HhWMhGUPdYwkoX%h{ZVH*b+>=rhG*tMCTq!AOq5uWL zlR>?Og|pNJ2YW5RH`ur9<}*>jO!k7zoxAJPp7ODk&F)&z%H-ujh7)b;^ERnF!rRbi zjyHqOWAlCYx#am?*s`gv!&c{T{H4v}=L&(avGsExwY|>!okMcsrW4r<;?1)=^1@j1=ej>mjLX`X zzx&HgIFzaR9Rc-Ya5xetBZ1Jvd-Am*A6&~t z|Bhc!cdRR7?yMq_^IbUaZ~q5icTfXVwsxE-2!fbZ1n^5}yRX4uz~1L`x8u%7I2;PaUc@ z(G|SrcE2y3dolwUaJGpc1yW{@^Y<93$=y&9$2U84J~!CPwA6oAXp!(X+d1)0^8Z8} z8mQxivv#=OV$)!eV=W|TuD={#fj7`od_ftE0fP3>lxhj3m%B22tO zb5_nH@QabiM?aDpdqe}amkOfU54D>C7o)=`3M7mWSSSmU&g_Z)vNx-S?WGW4MoR&4x4})2~w*_84Sny>Iq+ z>PAdi0*5F3z7{I#=KY;K7{o}HW&H`y%|*h8k>ye_K?-Sn)_g$9AP8M2Zyg)>KV)CY z@U?6^n_~%5OP#tvS0CusLrGx#bxHQ>s&w=g^Q6h%t6?1RjrOk1o2Fg8j)sh;y8OxV zGMl~G%tou%xl`>$kIy;L0q%6ebz!g@N>GIvrGmz7RKg5p+6dajfWmzea&8PB=wFl+ z1D|oK3$;U>nBf*iq1RsiPZL~Az!|-z52#_o znN>Hq`)P&f8H*zYhsF9E(=ZTQAOpHxb+&kKpRaw!XfVXHzUdoV9AcC4-$rv?N_%Y$ zu8J?5=i60iYJ+;P(U**6(b)#>A}&&o_i)2)&Z#Yfs2U*5dP}XlGR2H%Fk+3cICz%~ zQ!ET?voSed?1kqT&k5&q?|J1mhm>@9(1%NyV zJr1_@Lv34*<5@Lc@N;nfkg$P1@7FSm#J&*j-~A>SZ)awM0CIl_1%=@LyLpQx(Ow5{5V3vvjv}lnjCU(4_!7 zhUr#F@1RooX1tI=pMA$@%L?RLT@9BED>2@gd_2HwabX*j?jJf?IGv<2eAOMoC4D%G^2h%|(v zoIG7t8|LEPz-tf2Do>$D*X6j}H#0buKv%y=(E=h=Kz9lXO z7NNkT;*&hof6j1m#S4v9>lDS zif0~4US6nU=<^21hL{yc_teG3Py_pt500>Dq`4wUej=T_LF?}I{R!DEdx0X?7_f6k z3TZc(hPr6Iek?MpW!a+`vdq8-=CO=Vq6hp)TsoZ4ew*1h~X|G8$fQ7j?u&>SN?Ev*~O#i2RV#fIz<2k_L9m`QdXq04K(&I*-EGF9L}Ku^k6CY3K%Y z91=_UICT12CXw*iSXx#BrDFaKbjRPKymKD7s~C69Yu#yU0?-`*0ajBnUqW{BM1UU! z^)R`+3AL1yR^Bs_LS{-5gKx1EEg{MKS&()5T4t|{!YkBPngh(1lLCF6Jg`x7IrEWn z&DW=*YNf0HQT|Q8nfDxJ6?v6D@xt88yukL(Mv`$%m&4m_^K_==aD(TytK&@~Rx2PM z&k`G&gl<99uCc1nwRVZ3v zD&+*3AMr?1QVfx^urz?Q5`FeM3%%y0X!lba8|@%!)`qGS`Or@IfeM7p_5JC)St*{j zzWHXg_~;1r2oj^T-&wrCmV9KDMB7R)Np=yMFS|-yX?&WC(RDgwpGd09NX~oRZJLzMdK=UG+iP2&vEHLU zOKz~vp&zH*7L*WbfPV>=8$aFOO<32EmEB4I-qVu_py#~>J{i`Uc-KSG^65qaSe-r# zXDN~lZCD3QiRq-6S7nHBziL{~F0cIr$*ydkx*p(EuNer5Lt3KxDwyh$>ebJ6c-zM( zyCwt@1?ce`j!hyPr|a#hq5@Ms-{>?4lBWjnxTr0MVlq+uf!melKx5#T*LFbWQxgyT z)!pc3>St05d;&e*s3wbmOpFlqrbpkOp9gz%dcIZ~Ga|&-h1@v{b{14j_#5q*f`nB= zYeE90+PPRWWVp@3qJAswACjBqAmeuDM#ql#9?OSs{eF2+$Jt6TfsFf+AFqUuoV=1F z(h($GOF>K1X$d6e3e(8Dqkc5#@A4@I%a-LA{8V`7)c;$N@1&xPmz7HsE-2X@*Q zy^v2VKMW|9=jDbAao8sbYs!3*4z0)G$2-R=N0lF6EgxKxYmu4G_vm7Fm8!Z>hIkEp&1v<)Urty^ z)3Q+@JkFW1WA<5w6OBEAJ+M8gKvEL$E6Rp|;vGcliA;&1ZKqi+9!Z^0oCLriz?JvJa{mOQ{P*3b(a7#J(M+I3a+d{4*pd;Au0thNGh)%k`%!Gd#>n~!X%ZK9%4%udZpI|m72s-mG` zp^d(p`LoE_MI+J6MIxWQ*Nz1r@dvr?WP~EwjdmFYEtTx(cra+H<%JhWKLzU@BQUAk zwA@&^)x#_17TT9Yi1#mDgA=l8r1mbIn^`$I3IUM<&;Mf^h+i3UZ>RN3p;Hoo} z1c-AS3Ww(pDZnof>HH-&5-%O`V~)ek&KX%lmi=S9J)7&NPeMm}C$Eww4-8IK(jh_Q zitZPi;j&@>=R*a{6szap?eroQN__N~1_jmR&m6}g?GvbTyf-c2W0~!vE(T@oiHlQj z((FhBV@89@b6=1D^ps31o^PJgbp_YUw z=6q+u2-Y!5PrO5{tnb=`ASH4SRDVp<2+iHy-Kwb@NF^Vpc*{VuPt!v|r#KA%sNL^4 zbWH+IGKA?SCeyCKQKI)D?V319mufG( ze)vPy4acPlxkVsGBx3rLqhD>1UQs1!mzt@g+H-D5Oam4nWeM4-^#as5a2ALO!A2X7 zt&>Qu=pq*Y(WkTHZZDaON;p8s33f3PIUUwck_rv0P&R(b02f&agggq;7#*v=Oh_o# zc)Hn0sMsN3QU1_MD1pb`*^T+f+>(IH5bX;N<4sgu@7O8T-}{v$oR$twze~hn08X9w zAORBfG$=DnMi_4z!dhO%`WE+hJ2hZHI=}F6Wk>`S|Mq;=%)m}IVh*c4zEE65*t^Qt zz4Yr=tm+&-1{=*v^A{YpMt^=$q>MD)4_+k&ZMa_~VCMqIg!YZsk*`qCI%WDrNU%dt zt^ZB5D+Pi|akN1coGzR{l6g3;B(VvHTbDT7e@Pznbvj@_@GmrSqZztC)x+Pqu?}bX ztY)3}CFHESGuqEP<6dfEAHX0-siAl=T=!95XqJ=y^zl}*o0N<|+egL`-?-h$nS%s; zGE8FHGflEZr}~m~e^i(JglDP^P)|!oitGi+&j=z3EzJx_47}I%jM2)BTb94`*|74( z9^T5XgimsQ5YwwVh&LoLr1k^&k%%8v)rJ@cA}sJ05j#rkM9pP3dmIs$a&Jb>zrlds z_4jw*%z`&Y$svYb%rn6}(WmK7N@{_O7)EPK#N9@QX}6T;dzzf-=I;b;N?u4Kp)lWy zahk5jo*CJ)4SjQ#+u=3_oTy=-p_2jwK6V484nQ|o$7HRjKmEUTKsbip!Ejv5c3I|< zm^F&ZIf_V5JK6ne{AXzZJTnQ9MkkgR);5Z+l7C3QLi%2b%!+)93B;-H<2eJv)(bFc z9!ALy{13QALybdw?X?{K%w6-FX3f~Yr`<48MwZRE=ADqw!QBB4x6-~u%+tj$?lbQ3 zaJ0MLFrEA>5)OjWbg?^TO)sq3g$-)rwei+^woutY6&au}H)5uU!Hhq&_;u0x_cI z)^iUxzu)T{VTln=Q~ibhy>B%N7A5?L>0oe#(9~;gcPDvej4i!VBo$DBPFZ)cqTypl ziR<{zm3uz@a#5tIqe0bvUx~D72Im%P>A551KB-FeS);{LeyLo@qn&4M&M7@Qxl27; zywk=utfYMdM}=QF=k!X$$6J@@qpF;9`ryVx(kPv8BX1=@p=R|P3ghL&09}P;L)S14 z;tRxvjgzr-9dy4i1OpQ5DHgU178pmC0-Jpy#w{B5pd^rTF1 z=(J@`@st)zl0;ch60y3e{qzslK0LvDwY#jQgN4K&Z=&-Bp+P|6nwl{Ty(;Kcg+Y-M zU&Gol67=Hhuz6&|X_&^W$f7}QJ{znK{V)m#8$*@?UoW5n6LV{*aIYVmUm@{pNFeW8?nC`DVR+1fAja2M zSI!PHD<8sm!8?tOipOd&b}<9fX~66qVYgekkekMaii-P$MTlZ>@sSl8exRy}3e-Xf zy#=W2zb8t$9DcJ$(R59uMIF;v&E)WuLxyaN!m)Pih0pDgo3EQc+BINHH-TLv92xrIHp_Ial0^@eBDBhw|`c zWi<|z*di_e`f-C8&pM6dkEYfRF1%H1QnB;E-^GD~N;98||Jpd#K%5WN?DJvoe`%FH z$@GU9@mm>i=nN~twtNrl6b{_5Gb{W1L2yS`Tz98#?M(FmjomKssWlV@X%~5);<1?w zApi~a$k-N#24Zaf(-*U8>B(XWZ0}0Up(LNy@Whfb-x`v$}S%fEQCQ1Lcw)Y*}yfyTt2z-^5__ zzA~@Z<1el7Z;zfjnm((-Ouzdtza3P+zGT|KQcG$5<7*qDS=on*G}!0c7m7n^o_22~ zKss~4!bwLvEj87Xaa8X>lnrFKv`lDdu8he}g(ao22KTgtej zD?9s4s6>;+=6f4HPUXV9<~)66Wm%1eWq;Qzbc>EAYt0~%)CQ7CMNIkN!r%A_7j}*D z0PC0Y^fvq_6_~1WrzHplqiSV(%_9(Jn=K6xdoh`_{0@g>($UHpEJj91*HG1P0ai`# zPVYP9_j0R$9_PAZ@0c~PjP=^%+{?jRnWc`~L7g!8VSJ%|3H4u?;GkckZuGku8HY(r z3uO(q>++WpnlF6FV@<01TTD~p75LbTnkntJ_@@gi45&rE?pd;XNMdEBv^8l*O0;8q zN6DHlPGn+Ssgw$8L`jaN?hEbsV`qdmbH1A5NF=|AZSnQ79Khh(VC3iF+-dPoGxQL! z`@nm|rMQlFLD@JExV(CE`_82Y(d_c;Wa`mKJq#_DqRH34LUI)yI=r(C9mu=f%RRnf zZdD;@ozT=k1j}b4Y2}I<^|tGs>40uCX0=ttpGob#aLGQYU&eO;(xr9unDxm*bX>{oMd0Q)TM%vX#-xQ+XB?1PLN!ZPCm z?TpJZ?Tl4Tp?|MIIPwWXmr#wE;u39{?}&Rg_jDHywE*x^ zm?}x(eaVYbh>-Y*!8{GMZ%-y{Xk7p%8!%X`3FuTN_+BhAfqh~9VXzAJQi5#+W3?Eb zor?THVLejjyWR~LpT(XUobM;vN?HF{9HgYhZ&m8GB?P(LB*e>iFF!Q;tgy~?gT2A> zv5fe^GZfFSfw19fJ+nyN{NLulJwLvc^nHF)dirfiwP%g4CDNn(ZM(B}HutInH~UQi zqAHv9SzKfkbsQq_&Lpl0(%?LV>>T!G?LX3G4MoL~mEEYpjR1QZd^QfwsvA5eocO zG2r6mBH(^N={~|xp`Y|p52NB+zWVl@5!s_H2A24k9U4Lt{Hj53o#9cVoLGtO(If;e z1R1NCJ!(c|K0X&ahAV`xR&3}r>atX&7&~?bgvnExh(+vnX2d$*{1ThJRnuP=Xdh^? zWL38{k8mG0U}iLZUq1TH=)Y|c8p8ZCR^Y_}k9N%xb~MkDSH|{Cg^xmwmzkxRWm=-x!$TD$7`T@Gc&obVZ>c=p5Z4)g&6Z8#)vGYSKRY9O%y z|I|w`CYp?Gh?+s&mVg|8Bg&}XEi(KR*}@|6p1IEWe3qJ_j#vkbiRZ<_-uGQ9+wC$S zZuHAEPu`IOe}d0;g*s#GaA{ZXzg*rW&zQ<-WAY+VGf(w(QJz?V9qE$0M5$^51`i)` zz%jOa?84Gdog(J+$fg~f=!Iz`PU@=}))Z{}c&Xhi(IcZPw0RH2fn{<&Z}#`*Gwiuj z(kB|8RQ0dKw9|XgBoPF@hA7F(kL-n>ba+2Kaz1Uy1{tj?Om}J=#b=lH--828hqwgO zA_21fGqBx+Pb!7*>*c9;+Vnk35DZ;QAt|u<3_XjGne08Od)Y7*Za+Ove)>v6Rni56 z1c)J|z+gdP#1N8TNT4ZV2qG{M&;>Ds2GAW$$?Zfyoxzn;4c?(-An>acGaYL5VJiYR zOT5akMwhcMR#(X#r675L3|k+(TyMF}nn|Ku?0s^M+mP$nc!sc6>1irdcrx^q6I~MR zPs0ciel_ex9(E<>=RfdxnXMEFDKHzXCZ%0ZX-Q|mN5PZH5v6LqPT#bVAo_xr2*}*Z z(Tp)&|Fh}W1rHoUTX`qFH9PHVHO5*y(o-mr7w@9?i_{Xqg+SwaRVT)Pd#AxnjxE2D zRV^*tZviHz<+MsH#RB$DNkLvXM6ap6B>wzIUTAA^8)Zz;qNcZ4OHWxy=*-~>EhhiL zM6Kk!PxPn`GxAv$9H>S!?BEQP3B2bZ-bam3EyvIZWNx@yVt2Km>J`#p!u3-zTepkUenVGUF@MH$J&yRx918ihOBN^rJu5=fGcj#SU&7od+ z{*+HO=10X`E1zb>;M%lH(VY6$Tn>Zv)sYU>&6azc*v#}?(T*Z#SNa^l8~UQ08UOuC zz&yWiNa4bw>s6KV)zEiT45-Ls9?^B?pIjn$zm?5WX1GF)@j+N3cM3dD3Wq161Fv*} zYDsS%+j-ISa2E?}dRcOF7gOZ^HyfK9$h}t^3XbunfuHBU{bL#mSa&|AvWdi5&Q54Y z%cunI5i+0uX3u7hVUWBQDflY*S-zQ239udhJ(4>@KH3eY^o94QLW{^|QxXoFg75y@ z-AaS*t&IelB!$2Q;#SMQe^t1i9>q1Ta9=}{*H9%a%?^_o(5rs-3|E-%V==yb6zrQz z_=7}aED}JtFZATy#`{ZA?-B7hhP6K!S#ASE_}<1P4zwk*SERB9oU?A($Q1=iNxW>z zocDR0%^Ke48Hau-(gPH^4-8{SyN&jLlDu$}3!afH4kl6oImZ;4Zaqm}P9$y<)ApGq zh+pbNy@KOOc!xit0iVs!_z{m?VbADnzL z4$E|gK>aS~4|wNJ)h>n{y|H0-1Lp_y3TJlmEnMklpuT#s-5I%NNJDbP=y0;88MP*M zB5gAzjiyG9Si+vUej-rHU>3tOm4kl+f^0T>-Ho1C^ z=t?j?+gB;Zb?-MR-0l7q3doje33RjlUFO2D_;2JJQLf6ngvVxP4>XbW>GA5=^`q2p z!t9>{z*#U}9%m`u_0>12wOh|3dx{(8U3)*Z8XMlG4VPQhmY~;KmnE^xkIi4nk9Z2Eb?j}DRc2=l@&>v zdg&0=>;kT)8@op(#&)D9Vk{iVV zc(jlZ=!9MLJt&GmHrWZAB_)AbBSCOAe;+4t20OvBg~p5euLGbt*mq!2QcVu4DRti> zPOl`BHG+m4&I}VkK4Dg3*I3FDg!>t|DbWqoa|ixPbDm@|5=F*CS(K_%m3!%SlC)% zu^?T*K*y2bSfDs;$Vz;c|4qiR{3jU)Dv1LB4#x7|{2N?K+&^*+V=3z@?PWr$*=#J~ z2E&f8*_0sAE(nRs9bBq8MEM#)8ag95kS^Lj;6W&X85zI`Zjk;far%$8%qk_Qn0hT^ zmhRsfP?_cEwL<%Pdxu(zs-L{$bvg0U_lpaSRfjp$LIIvt--5Ei1^;^GZMMa z1XQk2HWXy!Sfq~I7R3`-G;Fj4Weco-U*}m0<#4Qc+)Xdu?}goQfm`VWi`s z1eVBYcHUilDdEe@^TL+Vm-_q;KjGfB=od?ES%Duhq;iR(EGI52i@df4!i(eMP_oOx zb2^z|-xb`uLcG%_v2!TzaOW>m#Y9@JTS_meoK6wywC_W;VQPP>Q#!=6jcuRee4hEu zB0S>v%zkwM89D+AY7(8^347z2RwVt!72;t=_RLtj48L!QD!?J14D4P9~-b{k_WsE8E%ueXmgsmeA<-H1N$l4ZphE6^!@KBrVk9s~MXC zxj3@eW*-{tpS~!}PxN1e@fw#XF+}yXn*}n4*qiYJU+O%w<&MWjf*pPlU^LfF5fA!_ za2Ad2NQT(2!|5Y?;e7s@;@|ffmk?37VW?9*7bAd)d&Tupu$o%(0w>9DioJ$!QP4uL z{b?6F9pf$-LR(=3Wg>jtPSox5SM(G{Sx~rqK$I!`9S{C@FO9R9vyF#l@Wf`#ZaNKl{|$!cbCt{tu|tFQ6pYd9v|@Z1cL zYb{SL3{q3G{^plg$f?O}H^VlcwEFmYAZu~(@ihL=ht)JeB11xR*iSJY^1>86*B`R; zvIDh~|Fg~*p(RAtW{NpTgKo-UT5kSCHckA&iac`~?rG@heRwn$(txPrxqV}8LlCy> z=S-Z_0e#lxar`D{{(C&s!Qlps0>A&m2|$+N^B&g{$>Emk?4-c)+< z?x|~s7NuR)?RRhrWxN)$;h{MlF`TIWCsu#Z7br`WrluQYHO^!afrmH97Qe^cIee$5 zI@llD7_=W3BWRV13Q7K(f=E=wa+K{SZaH4UOz>(pFK1S?FlfsvFF@1h#hD1Hqi~Sg zaK0H+=Aj6w=uU=takLfe($eye(M_@vGmfvy3p*#XIzPa!U4@q!Y{GY}U2aO`uPc%U zD`+kmoDJ*%1e*d5px}ADOuJ(AHNSWw(nMLOxYcyKeocPe8)csSLf>$Gw(V9nzy>L& zfa^kJzwv=;Qow0}TWfEX>+MGb0+;jstq)w;o#xibuhmBwN_tdkCAuo7d@!Ws?3Q?A5wWg}z>k8z@8> z%N3bGk=Ek({GXp)2_fsm4htxM!X+Px{P*_zVs!ePn%2dE%i~x5ujzM0*|2;&LPC)Q zX*)Ia2TTrs95$7_AD-U3_HdC}XwHI}$JsH;NEO#Er)A9LHIRtCzXg$26q}JUV(s~S zf_K$QjgOX>4NmT6fO^Pii)?8|6C$ckC_GdRNbx}MLk)97I3#iPD4HbYRf||yx(&hq z^eOUQ^fpdFysYWclm%=2jc0B}{a^mlp;K<4x472N^YmV^cuIlY$r4ga93Q1rizJy`-k?izKd&jP&x&CsfuT)Eie1Z z8Dm0s+L-rjP27EvgpzV5DclHCk#X77=?%^Yvak7sV?={(}6!%0?}+|PXFyA{r%xhqS=RT7>XJu-CQq>u$`12>O?&s zs~GJ9^j%Dmf8x_@vpnrfYW&RjKp|$oo%;6!{42)Ds$#YFB*d~h24OAx=26hO`yP+& z*t~Ip(I3uM>aWG#-@ra_GHh&Y+_aT8MCI|33ADfK>zT!bGpPtL(gGgCo=mKQj{e5N z4#+8XbfMtiDLV#Ow)pG?WHI8gTAv&!T-WmYN*n1w|;s zG?yb}2do7=`bRynk&ONq;f?po2fk=6W=+q4gBq%8e{*9$gS!aw9sQ81ruSwz2lk2} z@;{ai65V*x%+yWVu6wO!e0xIG9ZVakP=kRXc9CkFl9gS0c#e5Ky3PMkCH2vm>OmYq zpxe6$Mc`J|Tur;f)$2q2oSN$_ZNp)l%*C z*qrPI$j>vz8s#*!#U6DM{H9_uW<|CR9dPuWU`+6zazY#P^ONmC#!y>8b1JR(ZZ;Xi z(pB=4{x>fCsKlRNJ_eMR)5;mqAv_3n3V$~suB42<+aaKZ2e1m-u|$_9qsIYH)3>+kl)>Rw@7%tG>0VIfHw>S@3^o2RIgpZbS+rs_AHLsk{ro) z4ESMQxZvMq0Tv1BR^zkMm1@?>TJTu;mW3#rx;o4yjmPSWF_lNZI|n*X1_6g!=~q~f4-sQ`?psRomZE&xna)PL|zz)b|>^hM4kby zQq92r5vVK!T!>C-15F=G0V8OxFeUs5{+7FbpqZWu27`-{3J9m&r+%Puz@8v6DV?cj z>tGAQ$^_?x_~(lPDQ5nYW<81x^)kNG$aXtWRCj!Ah9-7JO!aDJI zD#AsVl-t5wo_C9HH^@G&zg$Ef99U{p;&#rp=>0mM^?^}*&rRCcc|igKc|>#C+0U9$ zq@?lN$GUi4@@SoE1~3MBcFd#9vI}=K+s}75s7ol7c_OIXH4w9E^D1=+Sdk`v>t*Sqwm`gK1eWXAP3|KbqC$cllf z6OD2fX^uKup6lV>&?j+T*z>eg)m4A%cQcXcZxMYkRP@ zu%>1ymh0x~W;cphAYVz-98;pTZyto1#)vdBAqppo6>V69f0L9P?LNmEDV5C6d}#PO)2Ry z@`*26(Xr9)BzBABB^u-`cPn8|jhaA4{?QMXvyTGP8K4w6c!4xf81wVTdPpL#kDS0|R^oJ3Mo#R|R zjD$T~JiLWepiWk!h7M+;d6^+Gax6o2yg-N_J9PiJiP|h}S!QA>e!1hbCDZ%Ov#bjR zjFLDt@x$vuE@zu4Jj(ci36tyCjM4YOII&YwZkmG1-cn9X(1(Wg_lUtg7B*btdYPNr zeWYkMj`cpltvyv-DZK7UNJE{ z1a;JDE#qA0^NCG!q9=(uIcA=+qT)(K;V8%01?(fE{FOwzs~?a{EF}yN{U8@etGj`j zt`+){(zDVJCXZSaTdqX57LPlt>QbqqWTCRJ=#f8SO7@(NSM9XHOel09bWM^i^cij@w~&WoWGH-DAoDkzG^g-U#-j3;9m z%mP;8GvUX)nyP5C;Ea`?{|#1?P;H6o4c)X}axOL;w9D6%oJN`dt-m9r!tCWi*dTE$ zL6&N=`DvV{Q2I!I#2tfoJ6J^Oh{!#fxAG_VPa5o#EIDa+@z0g>HkD!>Px7h3zJ9ib zw6oHJj#;Lv@2QM%eZQAl`gwnc8Z(%vE6xLB6-l%j#EfS|unu;>%IA5)8k;NT$XnYN zy*XC&kw;Ea+Vu4avZ`V<%Em7T{nOM}_wOsuPH&{7cIrL6Ukj_75;_|cb*|3snq*=& z9YFmTDQ$WQ4F&BRCq2xTma;yI6%7sYHiK?i`ov`$D?9h!RTXh`%j=wZ)|0fu`WJxp z$nB37mhE$MmdT4e{8>pyI%YPYwhM;XhN6;<%Y-%`y$yW_m|H9H=B&xdCWfTl3xA`PFg&WW9DG?5WD z7mMv&gjK>UWKib@O=~+5y~3&xVHSgAWSBD9<8Luu)s~`)xr^oLAP6ZCY5=nKkrCPS zH{Q>sJ~q=skNno8*pjgW>GJxK6L&2@``Ae_O{JS#UfX=mpTO1SAWxMeHyhxq3du}e ztOSh8%tCrV6|xU6i>oTTfJo%b!SY2SxfA}Hj&sF9e6mWDzmE2Nx%fBHKlH)j6)|;` zgRBYcILX0WG?vC&=7LnuvZeU&`W zg7hfwVes;-gtjhl6*NtU6!Bb#w<%_Q_Pr?uISY=Ii;AC`F_lk>hRmKn@HMOOL0F!3pP5 z8T%_6_&1_J0bS%3-)?1u$)93Z<~E`(JIWDn>AbImgc_+3OLr~4U!o&l>W??<8mS(6 z1D3&{p$G%1uS8ri$qRIxLf?aN(wVu7%gY};oY6dpGLh$tS&hrTUN0DBMgKnS$s1Tg zKbYn^knO96ENOBeL6E@MQ-V=KBQ=^BCnT2$TS8@PvZm)7+xzyoF6fiK=NK{-7F`1K z)Wz>8cuSS?J1IR}J7=-4DU-_GBjaBzr?`{_QnLIXIeUWmaG_^18u9lgwCYE(gXLg1 zZ+n7juV1mx-2$tu958H{0FEnj0b~|6k8Len{x|71rLi`=?(e`o4va*aD^duza{Z{fBs04P$*2<5P80oL*jVNC0!Sy2Q(SW~Hh9_r_|_cp$C}>220u zRmSu&H~_cIcp>1~w*|qN*4#nvWUe4MqVR3jC>4p+Y}VE1G$;GCtW%2nVaa^2f>UE#oZEfy9GFIEqn_$F_vsoS0(4Wm@05ufh(~cLGidLn z?WrJj4enO5g|G5S&dF3#jgx=DrPe&7bol}T25M*3n*Ar|um$PS*AGg`Dsi$8J0uwm z%o;#`jDINxivX60?C+t8mT{%cCLBYsk;g>Og!6pGmyxI1ewQzMU*ZF=o)xc6gyFVt zyF%z?Zhw3CUE>wbmAUno@8aY=vt8@BsbZu(vt4$^CC;06t!VEevnHlrSW==hYUR1z zGtg>rt}qD#v9YV!PC0_1MZ8VZ!mdD<|Kdc(jh4qM4hg~8ZUM{}tecT1J2 zru1U>P_zR%ujX8di%LmJpX-fiSBKD&td&ZewGlh5$h&fST zeLrVA<98OvU>-T1B>%VoZ+~8-w3USmrg(&9H_rlg0XPW10O5YIk`TBO^~B45)lA{HF_3>=P-^YZyF1DO9#eocc%v&-{3Iwqn#{|QknX>wAPB=V)h^>=<+I` zDKNiUwHd9V*zNDGpg9#-w_hf%_vT}aP!GTuG(hhce4ot0@cfR<1wn8f1-pK zE06MTqN&+bwrpL>34d}Xj6~3sfE)0WH?MN{$`0~om)uDvOsV;;hIfBnW$}`&pE3Lm zE6hEwdK~HJW~LPU+0QYFd+S!HWFD``hMQ2XeK=QqJHMukBf6I!hoOK_{&_vRE7vYi z{>43tv3*`plUX(xQx_qewA;X?UV_AH3@HD~o~_hvHz)(uZAtidr2tLL=TC#@Z16ew z4m}v4AO5EeW2WB;=}jfL^RMCfD7D%#9pLW*yvCRWOd?QUs$vY>Dj- z6x63Ck=#L#2jz|zR2MLsr8~N&%+_(a8m?q@n=$7u637iV^|GT2pZR_Wep3j(rT1-$ z=33CBhx7kp>l|Y|i@K~|wr$(CjV{}^?fRF|W!tuGb=lQr+cu|@=Y1!W%p~{AP42gI zvhO};?e$w|uThJR`xl}6k%)U2p|?|HzVx`c>bq5=E+cg`j(nKkqhx$frnRrhAPUde zBa|+Cv_5;2a<}A{z7^29io2_r@cYc*y_Nw*FrOVDaSqK9ahL-D%zH!Sz)_052N=AJ z5J|x_YJtN3A(&rqroT~P@YHwXK@h2LiDvl9`%hT*4D0mxUWq@oAfg>Akw(894S%fe z0zf_pS4pk~;XiKB305_T1?s^G>Y+bqcKyMxvqF5F=J{bZW9qulSF8FhzUoI2Ju(cZ z-0c`I)eThx^NQj*{TEf6%jB@@JuXEKTb0If!)uSu}=4;NEDrRJ-n4Vr?J{ zu(pc%I)Mz}JoMAXWw<Z7{BE23kwC zo7sml|F+tgJIS$Ea}3dd+pFxVgJWxP;L1m*In?Rym3==@qL|Qc2p;KT~(_uz_^R!C`I)hK3 zQH^9Qm=UE2jf*5{?uUm`P%*GXjJPS929RXc8~Vq#=R+Nz2ogKGdbh{{T&| zwR8N3e!=qpMZSMwfJ|xqaUd9JGLm5UX*zqL7-`WpAc1KATi|2iZX>D%aRCPYelQv8Rik|jT2V&04^1sDCmj8%-|5GYt{XbIFSpQr8g9flM{fjdEpD?3KKS)DW zwa#1amrWLzG6nMmX^I#mDCu8N>=R`1LPSDv#Ax8G#qmUB%%PPF#n3YFav|jrWHb_~ zBVfjo39T0l^<7l8@N^1dxq{c7@w(qP**=uub8cJj-#^S9E*l*uzCAfE;pY>XB&K4p z$N=H%pp4w#+dFB`l2AE9P#du3YF!ZTY2Co1gaf5$8o#o*ecX+SMZjj}n-eCn6zH-alq^B=)AAo)YKZeL?}1WDu=ls%_{oDB zS0o?xA#|4!uF&@W4(TaCdBxU;#N<8bAlgIb#?d z^iwjwF6s7@Lv@674=y!f@F~a!h(DS=#m|GZCzSQl1)Dw~!DXJILE2RcnF*$3)&7&B zm&#tq?G&veYg2N2RQ3(ZAMu}KQHfgUejex42iH%6?vD$w$9sl?&x!fNTRX7d_=&7a z!A%>L1kOEhsMhqyX{^xF4s$IWf9)Xx_IO z^GdX5oT3@R+xYeOSBT(1(#BgH@Co}X^0mS#8TM~uMP>lBWegsaoyaMfXv{S)W&3sp)-vyNm`a+OGkf8s#GMN0vaS_s{6rj*G##eQCRM7R| zV7q~|iLxDMVbv7`e|U{J z=zy(bx#rq1CTv$fjx^Pr-C-T^9nLZ|EEmBDp@82Vhbh0`-Qx%tp-wtI%@l_ERM9dG z%96M68d*l)Ppfit2f!a+P47pQi&nQaYL4(qg;x^dFq~vlz_WLHoitg$ z)l*xmzHNzLUZ3;4H#KlLX%;#;`NEAQ<`;s=4%vJ5LfCkR3l{Cl>|UT}Y@>*mj+d-f z>$k+b^rZAtxe)!66T74{F}zoC!To%v_kfvI>^MV1OYl=G|L>UirqviY$G$ zlNQ z22dh#_U z!IzTO2TX(gAi%1jtTy59gAQiAI25qlP1iT|TXr5Io0-n8TzzTn6xbTn}c<_6r zBmF+OryU2Sa!+Li2){g^8MpmEFxTSZ2%a7fIgUKqIRO}>{Nt2@D^)9HlnVaqRT`qE zWWAtS4fu%BhK@6R-_$!<0~IFSD>Dhvg^E$UJVZ;oWt>Icf(>i7F7&YcSetmjyYJWu zgm;{0ZefarF2x>@>p5J0%*@DRkW0M2-!ilTKhNYBYKt zBCora9so{{2;QYD=kSi9rY^H^({S^y#-YZcrXt$HGMn2aL8?V)c+m?B^`LrU@ z?l^D4dx3buM8eFQ3B)R>3aA=KwGetZEv(MDmVX!^miTem!VM=u9WfSim6t;Szofy$ z4_C;0>2Z(UVljj36vR9o)!vql3M>28c8(B-p>OdGsky8xYK}0_h@87$~e! z+z^(SpvBmv(U*d!H`~qCR8#z4Pg{6m9c-Q^5c&e{hWkAWbAkh5M9{CL4u{{(I?;og z2mr9t624=7Yul!}_;`nhuJZUe<7@P115EcRQQ>yaz?D=vZ6J)*8VqYxjK&ZiRj2AJ zS6lXJUC_bvhJ5L`mw0$&!!mcBo_^K3u@g?*8rO7)3ktn)zjZXBo@Fv+Ra_$@^M@HN zw=DSH79L4eV7GfTItuXym}~M3DGw36?SYa6T>FQY8a1ER@@2oBqQ z9*`pyLHlISptuCV5S`NkvHEB8?#>pD>3VtFNefpKBT;3DJ7Jp~JKh_|xe3$8QcVI_ z?2%PIAR_rCXoQO1=B`4ZQf!WG20Q;IbiY2uU@^#F&o53=fOolH`ps-L81%j!jsOaV zdyw1Uxni7k4hwcYbpq*b!;;#*)(0-L%l4kv-2T1yvCc|wIPuc`1DNKcOVif12laM6 zpc{`3>^dK_+uv{VMR|a`nFPiPIMYBl)j&8+#o~XO-5Ae!K5D~X@AqcwOnsK6DEfAS zvjdd?QfTRMzmKODaur_m<7OG-WkBG!Xva-v@*8TYExiA&_~)|hl5Gm@n!_hf%cKZ= z61YtlT|alzG-*Ev=Y~>KL*%-7*O9!jN9hOaa@&Tv$M9~zn`LjikaoUKz5x*<(-bEI z6Fn1SJzYIR{dC(3xGqAy+X6Dq3|Hs`8@z@xIE4{r?wkRbrSU9icG zS|}-F${dn#&ZH1@!mMryp?&%aSApSg-_%5&eX(eFPbUO=*TBb-w1Um_oyP*T9+ow3W@<}QG3;1(CWje zHc$Yw8MDdDZP?sc*8dXo%^Ede~55|s4hkv zs}ihjDb)TV=~7z`T!#fN9pFH#KEX%pUXJ1rw1%it9EJU}fqjm5***Fel!W7uC36r_ zUN5$Nw(AqfIe?oi*=h&y5j%_9>5$+*Vn0ep+IhZsnoO(N`8xX`^j&C$JOw^DfM*gA zc492RS-ZnnNHV_6HjV8n6W5dIt6r?GxIfdYYnw z2~59-*cDaGG{lBSU}>2lOb+;~leib%a=A!yydQ6~H_j*cU9okcYVr$>w@Qb*VYCANgAm1r8y?61r}-yN~k z>fi4l5snIe$>#?Mw~kvnqe&?`8!X)*Y_64q>Ir`#gPqp3nXBzdCh`^KYPru=a6iZ^ zyn^s9+`uT-vazvE{kedc+05qlQCW{iZ6o);`?IB>;i}TBY^Kmb^kmGFbK1K4>!}d| zTMQozMmH=)0=lM5g`qWwsmo01Ses4)-yjaSX&6;QSs4Xj956C9wg_*@Xy1Xe9X-o& z@RG@C8vsNcDM9Y4;!N~u?(7d4T_VbHC~{|?w04cluo|48Z!rsHvLLTVo8qp@*!B42 zUQbc$NkjtXj`R>xvA?8M>r4GjjP=jt=17h~=zCfKnNqcr%J--knHY}P?dJXG5xh$9 zCx<2AAcY<9@+*@KoKP(`2A|n@Dy&7eY`W#up<=T+YAw?z1y+PJKu)Z;JZ@v~?ANn5 zAc}Dw+wa`(tNKK!x26oSt(56hs;6P(n2mJDn@|GQ&=n+xYhVI8b9xak51w$}HwDt1 z8qi)fs(Rf8kE>n9X-fpEK^uDV{*2`TvyxXjJRl610FPINkz}8v%AOy?ENOp25VjC? z?-@sgfJ8#cAV<2Wq4&1nzXKM9HLPHHPF$q;SbuEP59p5xvq#tw&Uf51l-*~7g#gNg ziaw#w{`z`p!lcn~(tm2*$s2*pWTb+WYHLubKe=9Jf350IvB~w_*Txs95+hZ^3^mJ- z%CQ5Wo*vZLEy4=!aD)chEtpjHZaOeq`J{B6=x(ST;m#fX9aBmGXG^%uIW~arn%_;=1~341OXV zw-RNik;{AG!#p##m2~=Db| zgJlT%qTad{{{XJ=_zamkhw#x>qo-ocg;z}VV+<(hw`|>qm;?y|-QA1uq*Qx$-W~uN z2nNjr5Qycoh+0_6nDt4LrK|7G65b3KnPQC;pZQYYAz4`m?wEaSn^YVgo~f4 z_ovx8JB1B>C3~tzD*B0+TdTX>x>&&Xo71W)A$&6?!NG}6krEbRY`mJ-9^CaxV7&{l zJqTZ<8}2K`Bh9D^BLz_Q6i%*!qbR_99`fF&>J+1C#J53Y$;iCPPv611Gm8Ra4!A_P zE9X{N$v&7Be~mr}n1wjpn$)s;fVAeq zvHhRp9Y6VLpqYOg8xELS<(?sViqW5%G_ z-#v1qn2v13-p?q4a_N8u?qJ^ZmmMY{#x_4shBRDyi$0fDlS57nA9nXO^^x9D6t!gO zNiXX|3hA`M4ZmX7K?S{uK?R_ihv$yf);C!!ltBMupiN21VLP?mYFf0V%R)nSI_|P} z=jeU9_ajd{)1YtcvlDfsBgWqw%`oNwen5U(BSr*KMbv?9i3gMWRr}yUq$U`9hc*Z5 z@}QXad}iSF!9Py0q0la&k~F_&@(%rRS~X>$k@)h?5`!G$BInvz4B(uso! zg@x7GK&LN^5x<4-U(-_qzJlb0ltpxb8x21_aYu24Wr}C#evKlQ8DlrUxwdSZFG@UT zgxNnF2(Ec}9VRy%0tH|$AvTUb2m6I_)}SOYP#DV@B#gCY2?UXa6&#a1P=;-*S~?r- z@~at9QI8LRw)v@azUzadsKACNCsty~;f*ET+m3l2>yyyy$wpv;XEHG~(hf08D%${! z$J;O8@54h{KKd_sWYCCQi`(Vcas!RH@=4`f;DySK>qo8>&d<8K9mKqRmY5BP*&DfQBD`>nx;^_IB{fv zNeNlEKc0Ja5z@Xuf6oEp=EI`zBg1$XOOk>yP<2jBDuWDS4N9N!e_mTVu$avg^wITF zsTe)DyBfW_^31-kzCU*QmL834+vd4;!~EdgfYSUlA+`;}~d8F4FL9(H}wiT~d9V?G27-d@r4+i;@gZ)lB zl};6|rUMvkgfZXEL0B4zP~5l!hPJGV%0co$m!v66aVYK9VmWK^$rE(HeB;gg$8Kb! zx}e86S^#{t-RDfYeYS>xZnP0bT*{kWzN^i}F@~}dnet3tkxNRj;wWZEmDJCJ4Zd|P6E3HF`-srI%0$o?Tq z`=b${u02sDJimPoAa6l7Kj_T{oXiG{_I_2x`XUyht;5Jao{vfufw!y)MQx<(yRACn zh$1>kg5_Q2(v*c_dR+Cku-pd!%_xd7_xkdW}oBnR9De#tG#v*r!!GB*K(qC9I2 zGRrNlADq``9at0WpTjQ=vdZq*9CW(jqJxeC{N47xS`=v0>RS8;@WEC3te=!?H9LyB z?|Xl5)%CRBONU>)rh05II@5x2?1Vvd*y;9+le7@!!P(Ah1p?eL>>D!Yy>2gJ$^i*c zW43JU+9WJ46y0MPng3e5vA3tZbRYprzD^$&vA+m{J7hR|NqaJ1%llnf?__Da=@g$I zKKGf9_4j(y`NFRXE9Xe>9>d5!hTSOU4=|hGK{2Fw!#(k$F!>K+MCqea$<;NKOZD8n zD)wW=aoE6fgpp@)A!K#mtCWtKWPrdyAftAs7@!of$niwfVJcfhubQhQ6-_Hyl$k?4 zJusYMLoEajOWY_ch^`pn0^s5@hX8>I8B&Z?vxe*$&U%h9OTWR!m9k~5C$X2Fy%x(H zC%5Qh@@}uROw-CiB!ai0K$x^Q%FUm7a-=dof2&+)0e73PFZvsfKCk^pMu0ot({p2& z!nTJ}`!CT1rU(^*4;K2@t;n9`WoxJ3Kjm%SAu3*k#mlwA+aJt)%`T?>qMO)3@QHfc z5}uLQU<5Adt6T`UwsXp1hmeao!Vs_pZGpala=XlRqIEFY?!#wdMNe$(s!RRbf2kuJ zAX+;rw%ioEXe&EDjixOzQ5a(|{Nz`EMT_!uGY!5`v4o6r@li)wo&BZtF&A%`uVp1=hdkVx6x~FpW}-w+F!Fx+#9^+Og^&F342wd1 z0gtHfQhraMaL}c{5{Zj1B(XM2BdHJ-4k;4vL~^;1mDBmY#6(*wHq!)!K*1HlIAvz{ z^^}XwR!R}&R^;y3mUl@sb5n{(eG8l!?YXM(R1tDV`V?tq_p$Im2NuHZ>JBK(xHv)X zmp^WCCXzOYDYg1NSpx3FcqK8qC-~Engg{9Fbd-!)@bv0U<5U;oL9Q6v#`WIVg(kL4 zuExQ_@a5Q;)hEOvf2}XuOhaRrH9t|P5gDSS<|4g~?^C{hsjGxguO(B*B}isboKcQ1 z9vzj2mcmnXMFT+v8?vRtV+dXzR(Gr2CgDSbGtc2!MoJ`bCA!=(5JOaZC*xT~ut{VA zyfb~YbzA+Zuqj=jeS_uJ^wU;9mh69&}0i2we*~q+-gRVFHg+Y~3#en0Sg^ z)I#)HdoJEqS>UA0mAYHWmA$p{@K&mvYy{C0ldWRAippVzyKq$TQ_mw%+ol;`RbIsj zA^_q9{oyZC1P!`MKd~=DZI6nbL0XfzpauLKm2;F!=u}c^)n1YLFlUG26bZEp4kH(_ zX809RWL!297fmjWB$$OT@i8L+m(Py^oWrHhntCn~P1J@ic^gtL#bzygM*@cURsr7M zFtCbNGF!6}@Wie2$p)coD~NdL@UxfJ-}rVW*zKk!(4L>2Zz{C3Witlhf;jc2m#hZ< zZ&Rz}pqab~caqx>x}O@7&yKPDlC>p{prz4&##bQ){vmA&ny6G7i4MO2I0B=R3Rb)# zGa`$vQ9iMjZx~*fkE%kzkYuqddvNpX6Ece*Z{C}Od`Ko~S44MqKEMAKw`At;8a|y8 z*cV9~FrFjPLg8R*X>#9^C)hAsw)CTF@Th?hXPscSAml&r3v7zaBl9#Q@h>X_7}{_^)sG}cq}@Ode0qs91S2EE?MZ`nlaCc6=C-Q#9d zQ;`8s*i4<~$bm579Sz6xdWag1z<+lrY;Uh(>T#rVly#Ss;?VmJ`1Qs}@k`}ykvL++ zvErR~jsvLTK)uHA{j9~tL$HRg#}mKvdlWIn zEoxb?^8-JS#CX=Y~ydWeQV`g=?(4keAzOf+dP2*_)M=c z_HuO{+g(=ZcemqkV0dVsWnyD^lrnEyoj8&eac)+Og&~J<;MF9EzRH=J9uS46lHX2{ z^pv+DYe_l?snh>m$i^vjzFl{13Dl1tsKis(qYcr^f$Ka5D2Hb8(Se;XkiyR_(yb0^ zSq8*X}L?5$ijnCU@L{X`-RDGnC-xQdh_nHzgdGi=mRc$)?pbHF_>{X9^cCj@xT4+F^aar zfP7wZ)p?x&orhQ#+}amPw9CDA0qpMImQUgLIX(y9;pj)o?q9`5@JXC24%!`e4d+Ky=7>IntS!VBw`DHvU0*A+ zp5H=_w@pe)=t&ftU1r8%AJ_f%v#%e5-(!d3bm7VXeRPI;9(%aIXWC>CvSjHdp__}C zDwq*_I0-5UKiMF3m zcGk6kD}lT|-DmmPFYzCH6_ru2oclkt@gSa*XZyVlAFO$G#f`q3u{&ZgEy4DrYk{c| zA!SLzBqR7p;rKa-B*+433Rl|6MSNx5VOu{9Eh#_M?6f~S$HxIa#NY8c{qzM7QIK=) z2n)R1GCj1@nU+?i@vzoi{q$=k^U%IvfBU!qZ7S7AR_NjylY)$}nv4mt*eOF-Z(f7F zil~ND)_m*k$!x9Q&XVg8jyrAJ!m?c0@OF6|OqxVG`@QJyLZur!_=Xs+7|Mtoo#Jh} zVIgS;2{YE5i`|?@OrPYHW&yO;#4bXEy_nh7#6V#MixTpk{=*mv*``BHcfMw4W0h$D z1A&Lb`=ddGe<&L}H(E)DjW-Ca_ps1a{QqbSuSyIkp&ZOsS2< zQuYT7ZN5^QMH6Vz%Td*V#OhK8bm_&^@m;9g%Z|Z^u8Ye$qqRODYvZpwXPe1MtcH6F zJtn>#?{ApCH-Jk`1Wr>7P_`|U2;Mw^h&U^dj+66DhYWj=NiQrX3_h~i5X3WEKp1!@ z@2Y7rTpQP|M)jjQu8t5JITO3chllMi4IK8p6eaxm)}o?tdoWZp?A&+E@p8y5+9n zI^Z}xho?{M*tV=l+h?p)$KhyKxXU<{Y=u-JTZD4AKUvHpB+d@#Li2EowCe zf4K!>BUevtz|17q2uK5~nLX#wRBccav+y>OINO=x`|8JhGTnO@6A-B%OwQo=Cee%* z_qD!;YGl&dEMMB!W`B)cA0H3IxSa6Is&5NkbSab@3pV7?aI_takLvsVrhaX%cqw{* z(n$*Vab>{mPV`{#Y3Tq!J5bnS_@qzUOWph_&q*Jnh-`_x1U={DFsh1RyE{yec^b*N zC%89NS?tHW5%kB`6ZHRyvXji!>hqt?eY(gahHR$>bhMYv1&15s`-XX=m3iQN2>Qlu z@utmOCWUx+Oz+cvMwN%6*2hY^;yeDf{?R!LqUFg;teIWWI0Xm%Rh^F%W73e5bLG)< zt#|Wj3yv}9UvAZPk!(t2iPZ;vAn`60HA;(D8(_+hXsI(@yz>W?*g!mmnC zK|xQ4ID(Fj>nSFe*&5n^7XcBT8|r-G{x^OlQ&FHoxBoa#E$%3$-%vk_H&}7y)I;d#Lf~_}*vnji2e*- z(?C*^VjYN_d7=xqb6El;+05!P1y4#ge@6*Xz)A<0=uy&<-p=oADo2)K{zkoPVlk0F zZjc_~bCUA$P3=k|nU|@QL4S5=e`JNH65|k{-R1f0SW*2q`ByH&<{#b*h%WV3lG|PP3Oo%pMUCxx7O5YtSK`NW&I$$GQSKnhat%MK!CP#O|1GT5ZR;ALwl|+|&J3D>5$2&Yrtt8!-JO`XqEu5u#*1)@35P zI3%KeG8+LHl2V9%{WyjIOCGZOx$j+CU}h%2%znSLSqv=Nk}RIN*TmXd=OC~wl>1Ij zV_uDgym!#=V?h0uLm_cTejBr$PC$I>aV|?CVmZ2f8;-KB!O9lI;4T}w#+=WQy*9ZS zoi=Fo9AD^^Yr*A=dY(<@75LG`cHN`>e3m5KAHoC}b?Y(dbK^2D*(IEMqDVmS-V_x@ z5vbIf`}pcMRQQ|1PKJ zEEZ9w$TM9AOe|CvYL!e*q&H@B7Ct1k5<~1S@yvH(%;Z>n2uSNKJ6q1 z_GSfC%E|?e3)SPhQUrwYBR!p>7Ta18YmGh79T$Wqm~7tY+!UmYLj+hc4(Fh1%3lZt zZw}yVU0Gwdab-rwr*Xp-5qC{HF3htWMb5JbZwI zmzP7@K4t%+PxUu7v}qt6 zHQ!gDRD|&N>btcw(Q=+<*=p_MEf3$DEQd?}THkWtQe8y>w3+7RfNedBD(xHf8S1_v zekU>=T2P)QSZ9Rb%&G+QBJrKe8(n~%70fzbz~!^iw*+$HRBW`=G@=ySQ^#WewpN<686GYF9 zV4KQg55z5;&}#wQRqb4^>K!^6uLLLmmLzA-yM?^Pe|FkIN2b$jg_9rJ899bv>7JcI zOm?+BHUysZ1T{A1yM?0{!!BBTC7~`957^^<#YW zKtI_w{d0)*{89VJZ?vNG_0Ev3rig|!cX1imL`Xi|mzCSFKhXFg`sLI2e7SMbrPAH= zP*37Ljt}1(QYwPP)EFJn?>BbIEJMoY4?I7vP6nlUKhyGU*xAddBY9*+L&E>h+?37~ z$tRSGBn=QlDLbh6#oaCxvFk1JXFDfq&m@FuzT_e<(GewWung*Jc#jId%q7FOl<61P z1_OpmiEjlH;{KJ^rmlajA}Pa?@D%Z%0I;wMWOmNNt1FdPI{%wCJ4vDM&sWB}=fXQM z?~u44&!Add{o@%jgE{LFOzW0?*cRB2Y0kW=zm8ECvaDjQCpJR7Y-M^Z;2HKl(|3SY7*=;1^%xc0_UExT2-4 zi`VD{*m|ze7q2)XtgOVMUtZ|A4R?QIMeTYoWE*p`U>kCufHdNI51D@hbYOALTrtmf z-Vr!GYTEp%?Tu`tj5jG%APxcXh;tsZG3NjsGuyk8sYrS$4aT`6F>2~Z^vdUz@c@t; z_9}-YJ0i-uzZJ65ifJ#CU;m^>{kb*2Fj;dnAf?Ml+Dmw9!S~LN0RXo40Q-l`(>}3i zQ_HxA8_>gLTC>Kq!M{8kMrUL5=MV#_!mJvWtI=&1NPq&nw#;=_ac9u&>4!UC?;fB{ z!0yH|@=uOrEC1cAJsn8RwnlAV_ujAVrW-q|FQ%IgxFflvz7&TP&M?+(OzJwAniqe6v;jCz1X_sP8(_`A+S+A{mOk2&2*;TL6lO)gSiVYZY@+jZVVeq^5#=;@yR+FK=T1cI%}=|;;mX`jT}SSpE0dc)&+fd6L@~r5 z&?Huy@=_^WA<~~l$A9d#b>Y0I%WNz^dWE?j(lRRj3Y(`xdwq$HedYl<)hp6s7{s!~ zAYafCYzdO`gS<9R2uKQ`j1j}7k^{Zw!U#~icER}0^$8Yth8IRWfetE|X=QVvfzQCt zxIy%P-8w~AQF6Tm3}?aU97z&1`Bw+tPy}<;Aqv~C$+RyS+*aIHxGX>6mh|T6E_BM@ET={S- z9BEV&+d-6^JETIN1AmZH4Ky#6wclm%syMVMe*!%-8{LRzYKPZ8!yUT0pSWU@;uQQI zVuB7lYa2hg79#-+_mkj3S)zfvFAKK@2?kIzPN1lUG=2LJ6ID?%oZAI_kbYYJk>|wE zdo`|KV0um0aI(kvE8qEiZRRoOtTRq8`VHK39$P-oT-XXUvEfABtF0dT#zA^I9V6_bFX^_?xxkTn)Uh#{@U@Ha5z zw=QCfKb8q%Ov7U*@=VbRLY}4I1I3}R{FQJTVT4B_1J*f%RmnK9Ul21S5k6_GI`S)u z5>f@gp4c$uN&mF*Ihma~o(rCxze>uEj_C?eFo=j84dltYFWpTUdGj4mZau*_djXsv z2C&}ruPp$3hY&o36r4-?XT~d}dHL(neT^=}kDio6fw2pyE|Z&K+>kCp3p>KM8S2S? zKUM+dTB8ffbVJ|P3$1L%ZiU>XuWa=8 zDwwUYBp-&Vi=){f`)E+4QrGN!!V8gVfj(-bq~q=H2=)KUHJ^^4nDtBDUdkHkhh5t-G}S;Zr%7uZ6DBeKvM-&JAOLx z!1RE$S9@>b{$cu;hXyXY0^$MTK>uA^ze^4pAJvB?LS)$FFY&Y%wJiI&<=HZzOr!;h zb~^~$T_P)1?pGn5{4M0lp(H0PXx3e(JhF45HH^KX){m%$CH^E}$n5;Rh!kkA3xCVCTaa04{2u;TC7!2C0Aa^yEa%RBb zvQ(l{Q4ceSx4VTxfX?;zx!OBg$;VA7915v+Ms;;r!f2hRt8zGOf+AGIeuw&V6XLEMarkoo&j8HY)qVSdqc&$Q(ww&SG0W~*=Z>=EpnF?j7RO$dwAuodcC~o2J6Iqfv|9(MIGNF<&1Hj z?B7d6Q~Vl-kWU9P#9G?T&@#HUKdsEPtTEHJBRJ)O;*rTwI|wqQX-`%%3V>Ya4(e{j z+ysCZZql%0Z`RbP=%u)}Q~>xSxLsqJa2s{nAm;nCfqZ-xI}}8fe^nR{aSe0tevf;H zZPi7<2k|@k6$;cuvk)RhU9PjCGyg=B24Rq~d*_^@t^y(eJMbo@E?M@&Q5=-P;i%l3 zBygeu?LhA%s!$0<`|KLm3J`ft@OKLZA3G;(8CP_9lz+cZKv~zpxA@=rCT`5luW%@+ zus?uz+B=DSYH1SBv~kn?RFoCTk0DFASh?ssHim-Z{NlQeIjx|^`Z-m;->uk^yiu0( z5K9k3=&e!~Ch_C(>YfACQzB3PC1fX>kqS$&Hs5eFHaMK1j@Pr?4d9|buyl6-3o~x# zR+Drt;?az^-qG|%)MkGm8f9aH$ylN1cs*C}vLm>3FK|+!_c`|`29bWfd6)4=lC1}D zdi1jG!0jm?^DWoQt>vPMRI3^yX zmr6Cc^tyPHN{${O21v5H17p>hjyk*tCiibc0RYW*OY7fn-T~|mclyUR+zN-q&y8GZ zn3~fU#SQ&|fcRsau#pbkvSmt2l(bgztGB|h>?Cn;x;sL7(lB;8?pr*O6S)Mi7CV}k zQNtZB9=~Um?!|QACS_FDz5L`uHo_h~yTrhbZA|AYSc8~l07h<6uZ#79n_hN00w$9G`cFtdXigSg>=zu4GK&U}&DPjPC zYv*eSN^ULk0n^m3$z8auYNvh!h<1tUgDq+Kv*@S#-+HR_m*SFIKT!C{c#ilSck-_B zxB>bWSD$n4d%&)$OHBtNMyUN@S+CTYuxmd`?XAH-kMC-ok$IxLtCl{UcaXrCEphxJ zSlTmf`NHe&yj#2PqxJNdfH<00fw|hm7Cq1n8Y6~Az(S0Ixa>&poCB;kzT@h^pVH<) zr*;Kk0#+Uw5=Fs*+J)fg0D)aiPl&AnM<8vdKHhE8wNg7oH|k4K zlTe&^H9&^7$y;v2oe5j$^kvSY7OQAGsdb=T8~59!CJwUPzrb+`)j2ih6pSZEuN~4K z{0H+pwF_6E&MB?qW*mwo_>xk?6CjZ4uq%iH*bkA}%O8tM*mrGE_7(k1@f81^a$X$g zn$S7Y8Sd7%NO|h=^zlUhPW!IzmD{c9KfCKN#$n6iYtwFR%S^z*o-V*Fnc0^9k|o$^ zs)eAb-%zUQp&7RpWcOuzEQSH*phcU|EBuR_Ud~a;abf7y&LU1AYLk?YqvwBqc{TY3Fpy*AEciEaaCRd#Pv=Ve*K~XQZ7}!y+L5TY zNDt7~e8B?I)h^C^oWG^A&K!6#YdN~)e!UnAZYsuTGrB~J_cykJoUa6bac%lxy-k%`1^el4tpHzi;^aZ+YBkI=57AI;>H;_)EHAFbB-%HJ<0@U0$D-N&*RFRrzKD0fPv^mC(jc}7;|7?CM?v2 zT>hEEz`P-8FjLfkp9Zm|2Tk&uMAFJCE4%ZTKo7=4kHFbkqb4f(|DxsYFJSi<6EsUc z2iVwpIX&4D0X*S?iyO-e8@uaE^CR3;G+`oAy@^8BHpa4spXs>1v!KpN9<3MIcFY3M3xa@7Cy1JX;+Y52s*msEgqROczX zZ&kOrP_C52fUySnSnan0pQABjW4D328?jyVN^*vEOHWlX=6~=5TS_3+lH-#Z^`EFf zGH5GJ5vLjI=&GGV+b)c_@Hc!!5z4G_XQUvq#}^*WtdT8Iu38{Gg{)Yrx|{Lq3%UR1 zGczcNgO{gS0M4UHyhTUwy-OjTAys7f{??)>pg(G=E{9U6p7RuU&8exVmjiDCS55_} zFn==Fs;A86YfrCAWE?t8=P!f0j%?HqsyNnJ;1EH0YpOG-D1B{&R8A@y)&mU}VvnGe z@14~~GZ(q&nT(nq#wz?5S#KGXN6@Wn2MGjscXxMpC%9{Hch^a9cX;pwcZc8*+}+*X z-QnZ?&faIAs{LcCS9i@!cXdrq)vUhfzQ$xc%wpWk4x)xe@Y4lnF|v69%<&!*{T()! z&{!PMNdP8KNuCQ;OTTH8ij<;j^eDan`+Tw>2_Kc;sg{>~44sRbyM{Th-Uz+`xy|b2 z=v0rM)#d6TOLJxUsB&8Kq}4h0eet}y`LovYQt@pjNzWEL2Ll@&n}>0EW_%hS?la`3 zvtCK%>1^ieD9KK(ii;kwwBuYm5cNG&FhsO5k4?&A_aF69-ZU7@q2*xeX*f?>Psl-k zw^*|yi^lkv3_-deEr*3^IUFw@1oc6aRwDOL)Mv+ngQ?H~M8&aT=K{0+n6WV#MFNQx zm1B530duvMOcwLi!<>@lG!x0z>1nX!+4^!<3{GJ)X$|ZBVyy*Wa#p#dhnja?#F7mo z3(>u)(ZPt!|_p>EMFM+4pQMM!FGOT zCwb*@c+$ikHe?h45IR#u9FU=fMdl)*CN$WNBInbX`E-5?BFYjR$#&nH)n^7ri>>)g z(q>B~zleKk;ZRq4M-v3-f{z&+NHy3KAZE1eXwBWS-hfRbWJ`0j2iHaX1J_ViRWYCe zshY61)<;MJG(t*VaMk z@7*i;RhC?E!_K8w(o7Tbs|*5yS2om1X{(C9wDb#;I&Ya}|0=hou8bc}V17NkaYGvJ zag^`ZIf(Wg(FPmbleX$Mosclbaf%W8?dMjpqTje9?gILwsKxv!c4knnj)IZV>ftrL7Ji4I|oSKC4>#g6IbVH@x@A@?fuSikJyD?fr zcWfpU&2oB|Y{nE%p~e&oim}PN3Ns`~uZ7r66B^=%?ry{=pZY&b7g5Tm6p}>X!~rI4cXhT+nXF%_S~c{e{80M* z-|IzqjH!d`?z2xWS+mP$sXZ0%J90R9_aH8%rqxO<>$6Gr@ndu684sN3X#j#~LGhcf zDdwYVG{L*Ku(6dj~rGU}jT9LWJj7)S42Hn3xhzsj!PO z1uY;kqXbhb$v6vv@dta6Di`vRylYC$a!b@|vJh9jOCvlY4th+y#*qUpS>%PATULT? zb4Qft%ul_hj&u>Li>+?66rR!#oxg~V1wdQwCIf(XWF}~o#`@c0^ z!!Z+N4Ux`0+gb6SY%m>sjU8@CeWx%O3)azS=nvLEeTgGN6?5kOG3#Rk-S?`iAZ;TS z>yqIwxDWHbWe*+BW`Gb43|2>-ykn>ThFukXD^`m!7tNu6ni$u^(5LyOvcsk}3-yb%%9Yzx5#@RuVc zPuI>{a0G5kdeQzkE5xU6o_9gqu@^MHW z4pvyyqSl~viGay3V#_k5P)1^)Z)%Z$|f$!L&>JjmCRGKCF-9<#bbpIGpdw`>h@S- zuY~j6dQ$Eb4cjy)ek}t}dB^MEP)fQ&>k6%L}g1Y{)w_8D=ah9F%!GRvU z1yZ1%`QPTU@{(C4zwiU8NA2;pOu3ym`M(#{L_)z>bE9a=6Gv0b5htQ0L_R6grj`4; zvr{xEvTSoOPA}e~I9v>H2E42|l^3g+T9ADS9(b6DYpK6&704I2He7x7_}E zMt^mJAsaCPd2h9)yBH@jztVSF1p{g`gg``?8)m{c*KaK`E@T4sUv?69&!#MHKgpJQ_b=-yReVN>mxn%*2*tvSx=SS zr|qO0Dyp)n!5%e!$xtRJiTOkcXjK)h$!CnF*?*$0+S%IeCDfbI_IPhD500%d>e3Ai z*K+I(zURjGMBOh^=BfDP+QeeW=UxO~Sm6$+0n!Ds_Kl?<@^W`QTHohf^L1`Q`_4eo z4iGrt&BUN$2MB8L)0sUf6ZWzFm74l$(7>%ry}#kG+tkv>YBV|3!lYGMtVioA{% z6-}C!zx~w_5i;1#5>&~Cc10n}qVMtk>MO~J{uMv>c;?RBTgwj4@c|BZ@w}{^@kNEde_hD`=xiC4pN--z zyXmRdQOsGm?eb=sH0qiyuAgc}@3kvCNZsZv+jCGIs5r))eKkU&*hs?BUq}?#}arX4d1{UiYO?T_w54RrNyUguU>{@t zey2|PB-AuazM*7xJm~h3{8_EiNYneMrA>V0Qu_?*X%j~+fh%L{AoKzPy@N z@A04EMd{;eX5Cv`MC@t_uzh3V77B<57d{uhuNCJ_6W2K%YOik8?9*mX?HMd?W`8nAkO$IuJ}mJAx+I8fM$2(*KQ=he%&l8C`XPp9*e(|o^BT_V^A=-tvF6Hxb06|d+@Foo7edg^;Wa!wQZoj zCuaovqKv>7eIWT%d5{fusUoiE%oHS=?LAG;pDdlto(NFE$`G)ZtcbhQnhxwp8ik4y zawVL_e*N@c8Zuca?=}H5%}BOQ9>NT^T{lJLq%%znpY0ZF$QbNLFgG$ms_l}WH>5b3 zCq$j6F+EEk>RuKzJrngG%Tw-7A2N;30N5k=bK~a9wu9ziwK1d!q1cHODCjh?gOU+z zyM)i{agsr7Sh;*QJmk7-NVWY1e=Y0*_G<5+`7zmYxAnzk@}PZdl_ zqRrn0V?|Jiz);DL6AebEHZ2w9hxoMKX6=)vqyu&tgXL8QdtqvsuV~YV6R$eJx*x?8 zisGD@ubbEtPRLDa)Ui(#o$+_aQ3SiQV23#4SYUAkhH0ZT2C3Fd9@(a1YCmA-4~P*BB&dTnXmG-@QkVbZpJa zhX+_;XwFYCSqH_TXg?ZtYGq`xVFQ@Ac4)3BP>sJyf=M6Gu@KUFVcTwGlL107=fFX&L02LwF?I|~Qs(gQ*VhgqO2K*i#P8fcBtX;AGRxC6e*r;sWG7z9&8IgNu zPV*;R=Fe2$}oVl|M>A#$FsV-c5@o)+u_E_3Tt}JH&2Ytm1 z4J)F2M>zFG_fWi+?IAJKc!%T!e=H^&3dR!Wk6M!qM5^+eFLbULZY59T4lVj&qUs9n z74tY7wtE)hI^8chwn5*w4q6_wLNPm~VkBRoeA2oVH_~jYt57$I(zpc(uF+oB%V zaJ|X!&L#XEtm=~cTPpV8pmZMrWiC2@ICDDxz*LRbkdt5`k;si1N*ct4K8IpBp`EgK z!dG_+pX#Ls_UneyPO75Ev?`3w*gW^r&OFA~R5U98K<>&}B6x+@l>1|YfFDpJ9Z%$j@#|nAD5qQm^hbo8Yi1q3b=Py z2Dq<+(t%@VKa5*1O1Tbj3q2>mI=5$ksQhWj_rE#mXfs4c&{?Abjy(&xnVNU8Q*31j7867 zUin91Ugw>K6CW9N%2?XMEE;U91?i9=wkLWWP+T;iM&4K8`Pn^T0HGi1H=OW0JADTU zRha8#s-Tay;Ca|Nl~Obv84ygEdQxriKP>-hY|{enPbH8gG0c&cMEL zFf$Xgv2ekHF8v@VKq&qYSm?yuY+SIP2Qeoz&wpZKPHs++h$$pGF5Ca+Zn6CrcPrxo zoCuta?Z3fWu#J(S5QC%$pI85%)x^!s#SHR)`)_B$#8QY@47UI6O3233$XNzK3I>{@ z_%tE>&p1J0nN((}XlP+EeH|^B?0i z(TGNzvbZBomu0M`+3A*22q^s36Kuq!8*p7~no8+u0R#PRi`PVj3dp zcu%)9MyhOMU|A+gtn22@XRDU7lwg6nwo97%<?zXlUi;YS*45{_LwiiB@azZOf( z#wT}S#(6H*#enKYqd>o|B%LVN82B-D`I)+fDx@M@a(Pd>oZ-jUwkSb;sde`j zT)Pksgq7hDjRic7DLb=0vp2K7dXaJfEt`s}U}wy2Vj)}4$#=+P>_yj7+pC9mW*VWP z?5}!Sx{c2~Hm4ejN95kx0+XTlLG50|UWD6_`Kt*0gw=Uon`ox%9AcW z?$d$6%7|+_aTNCh`vTX@eu%lQ%Z}hpN3Gx93+?^fMcxbU{n9_TOV82MC`Q zsm}eL2YW*OuNgk*emPy`MDaEN7l%8Fgimv^{RW*k?IlC;?Eg=VYW?5cYT|>hOm*LA!=hzsG(UG8(M`KPsJh72!3 ze?&S4={LF9)U7|ar^6J<#Q5w&<|Om2r4BV9wWYEQy1!xf7!+f@_LjQQ#7vEyH|KjE z^pC{T6`GawcAfn_kyEdL2FsF8pF z*3Yks>-1ul6x8>vs(3+L)!9+4K!Z-c!%ZT4V?d1{w}wulDrNHjRh znx?in2Wri<^ULbf zRBV6k*pfw^;UFiQVJ(0A3zwk)&*Oc&y6%VY@%Pu!r>;|A&d2#+;;w8_zw(bce=l4p zDoMYVyZRMN!{#C_O3g|Hoy@Xh=4o8|5aQL~U73=i!e(}K8_n!D=%5Wejgw4@{9x=b z4Gzp}_Ino66qt_~+$EG+(Zv)H;9vmy=@H~}R|9rLdCT%CMJ9^m7R-;Oz$cm;pwLQG zJTyV8NniqwcUa4#*`AwnZ(-UbtafB;r!r^ENcQ&etCGX^50vtVQ?^f6_OWhjgj14- zo)?AX&1Rml9pAwG=(iuO{OGqHDg5+AkB9w>W54%m+%r8lMcL9|-8xC!RqS~j@5rK7 zP8`+7nceXi(6P*Yw9&<9DoFHq)9T}CNv*6b^Bw|+>}OHMRvZO`EPQvp5QxVSk|iMJ zf)Y&`x)K?RLuL=Uo$E??grL30)PzE3*_?Rp@8*(u@m~-qjh)G}^R8%0q>I_&Q>nAD zVm)X|T**<2&SGNR?b=hxlfv@MF|LBtIhqR^IKoa6ain_wh4Vazp~7d(8E~Uv@`dTUZB?Uq_Rl7qA4diSaO_gZr0S~9O5sB# zFzMeIl8iZ#XiBum$JRn;jVKEKRMsTnYbO863Q@7-ug&Q?q~udaQ;SiYA?L-%LCvGZ z#Sf3oN%<0Bo@A{xCBO&`9V>sk8%2##<9bEF~p|{jU@Wd|^SDZ5WK6xOok2wS-{!$$Lv)`aI>lh;xphUowmn zb!;dDZPHU(qy_ZWoa#l1veJ?ghzPU5>sl)R*zN#omo#-Z>i3w^RBvwK9B1Z1h6TNW zV>tzqN_jN}CkYV>0-Q(}>_-eX90fMYlpNG4hlngro={>ua@jt(cx_02F z1c(P=$12PWwy8-as=&So4qGh|k7W)SC(@yOy-}EgPnFFNu(BRm$c;W4w^PCc==AYC z@Fa^AtJ0LemW9iV{lHH}Neq`JOm!CSE6s6c4X2=tmBjd)vlN?v1xZO?#!g?PoQwMV z0!vME@RE3}H<0(o%4>)541Jrn=}b6vnJpnNCUu&mHguQw5DMkqzaajQ5F>_uw5Rv0 zEi{{KT3elO%Hbi{#b@@*Y}}hgKt~thhdpTFyMQ3?F2U;Fk-LX##z?43M%MZLV7C%AW!-DMh9Kl$;1%3#9zn-=1Uk1zJz7T=_ z%LhjfkIKbBT-|XlzdaG!{KdVy-9Sm%%*?^nMZ*kXEbw#aR3wLyclY`k5YX@OV`L)0 zy+=fNUZu{%>qGQ}@@^~cTf2}XQ&L*koHVE^@@Us^{7GYnK z;|YgQ&V@f-?@RSt(f9MKpV@hMYPZ)E$}?L(BEUYi5X2=sbbk^Egs7j1E^Oj`S;ggK zFDRSXJ8GP<*X%4?IHRKmj7(d2zIrf+7(D!3IXSLV-H2-)>47?wid|USJ4ib8xfLf0 zUE$!~blDJyf|CZR{sLP%->04Yg7to~J=pXFVab@dLv;ImqvY=6`#CjU0)kLE1AJkQ z+Whf>OWaZKrd@cGSGCwR4G$L3DlGPE|LhyfkiI@+M?Fj#yEh{NkV*N&&bmzY6#~~9 zrFV*a6FL=eJ<{`eIC5*Zs9${+;&ENZWLF$$V}7k=}q> z9t&whsT$8-<;o9b0`s;iH=?W-qUS|>3UWqYn)XV)fur>xrc^~SO_P;Sv!zrU-?XN6 zRuYO(eO7Lm1TQoLNZykY6t-nB($sQi5c9v++(eOu_g=MN%zQsMhbz`~7EmiN(ep$` z7?4W~On2}$w8@H)7uO+M%tPc(*fK3!r^Z^xk-;)pNHk5)mk!!&q{u~;olp3p9eUwD z9ij*wBN-o%ppdUDgA1sNldy)P@Kt(C;~x=lJI7NCCVAcfwbQq&WHCh%2I0`nf6kSP~VLW$}d)rP(5!$)u&?g?@RPbu=o)#M*?%A(MXJWOM3y z!>hR1&SQ^3)AQiVJ^MFd{ER09<3u=SuKs{@^D6?=mZahl((PF$--B2me1oQ5cB_rX zz7xWXdT>S+AZIv;)ze!ig8n<;TYjlUb65eHCaQy({DEUwSDc15SNM``}eZpoaqiCaLroK#935pR|QJ%pM<75?`AK11hy-8a zj^7|-Kx^_JZN`>n4Q4&R1umSR5uMDd{GSx~0c~NlUCd(s1xY8(y;dFquK6DeHZ(s6 zS@k0Jfkc{Y2qS}=((^QIL%P4zR6-m~bR6|K=VCs}u8Z9LJ86+_IsP+)cAdWn?%T2| z+AfqBwacKtyNf>@zaDO^9%mk~*AMwhmci9l{+L34kUAB!8dMhxdl+r9&r!)|85BxG zv_bH#T-gE0++|PCwi>1@|WXEVV}0Ew4R%9S;R57 zr3MH`UiHm7G@j*6(C9bH_I2e_*6bUNF3p8rVkf)T-?!5?E#T)&h;}YSKOUKDl%}r9 zg&IxQNC)^8*P=jAro6F2{bfwuHarVc*zW2V-pdgoNl)xr=r`NtBUy&>k^5Efvhh5I zz<4gP)bKV2({(@gG>c95vrcJo=rF%e{p#3}*5U74=w-Floq!uw`F$20_^z?|(S^oI zrbwgu6Q@|`j=}FO-m(|Mume~bR9uY-;}+(X_L$kE5$hL8UMQ*C8ee%j?LMvAQyP6p zpz|iOTK?wR&R7>Ybn&nap9m@kapWzC0gR}LO?cY9Ca^sJ-tZUbc*A4eBZk`QXuV># zA8k?{3|NfTk7$4*wu?-Ow-T~imnd~XFN1j3{c|NS2)ke4rq7OWRlYWipV~*V817qrolC$11;0`_k zER#hbkozWa&GYx|wE$A3a@&NLlLgjzi&I0!KwqE7Vn?**jy*nGc%W(O$h4{FRpQWk zB%M6xo(tzn_$>r=#cLDQH#r%3Eh}uHqKpQpC+HoSfM93Js)###Fb0th@5gRkx=hsWlmZl$8 z96Pai%-j(gH$L!ow9RQ_3EhMs&{Vawz5lIV+A^%=QXr@WM}lel+67%c(XgoA1ujis zE%Ue4+K?uPX`pw~QWJ4s&WlP<*J~$T)zZM(MNg>n%Ujd-L5)++Yv!sRaDM9y^Y+A# zyMN!@LQN0+}qC{&$|rw`EhN)R)}K12Vm$x z>OEU%#!tXb5l!Z;B*)$f5l_@U_?U53NpKZ8UunHu8ys%ktyGZ_F%DPj;fLP6;*XML zTx{qO>>UcqUrd_rxlY9X;F>5BB*pfL(#a^&v?p&8cR)9l~V%*KKqP zAGPKjC`UV@6h`Ke7#}q;^niz z(E-(=3%21^q5Z6YY+w@tN9O1cWxx>VVs<&qWs|SDyp_S>_?O_F1a4!nd&6SuMB9@G zj_LEclV#EmZZ_af46Yjcr&)LDk$jmvvp212z3IyHYRBix^9`uOHLwlE>OfC280-cG zT)x^C-1?$r^8ZLt;OuhY+ls_|41mb?vuwDv#T5LAl6Zcl_3Q^%6jG-VSc6m~SyN5E zOj7kl#ra+SiwY^SE}8iRU1$OF_nTVA?Gin}f92V5D~`tRpDXI!hD#_!$DLKM9X^p- zfQI3?T`rtSc*SP^IQsR<(^!(%A5rj4IPKPo&UcxHuxF}<;c_wWAb+6t@{o*dI`3d} zs%M)FiAyFn>K~cHl~M1VBO1T!EUiF2E+MbaTfj|==Paz0(p@~UZz+PHHuUe*VCZ3B z(~+5)V7&WHInwpR`SDS{;P%QrwInE(pfo{H10l3@bCX_Pck3rkA!P}>8wMp?qjVxV zYva!d`D1Ho3zFpEmjsMyKW%9Z;b|I5b7I03%04RMzX-W#dn&WwpW_kdk>~DnQseQ* zAl-6NA&1+lL80+Q><;a#QA%Xz1UCT`SY{z%QE4%Mk9q)3)^cA_B|F?F=%&tX&F!t{U27FUy)}$sBU%+Nf z8uJQ~>ZgBVjA!R(r5n(cRP`C=W`(0w%PT{yDWn^B@wKMf z=jpXB&5nX-dks0@lAAQsf??5>YT#)zjlD339aZ+*Ou$E_O|pMY6Q@RL45>j#(j`fs zsSLqO4^lM*hIRKM{1innNA?x2CCtz3#@m@~4+X?pVi}LD!&^x$n z?Ek&N#KFzR^FRAb?EkgDbY=v}3Bkh515%Cx|387DF(eiS`+tx*DzN`AMTeceF~S&< z9}JZ0@!y&6dlN`QT=xH+b7%jroV$`I#AnW({r~3N0Txzv=KmM8bH)ebsWvzF(0;QH zX(%l%iYfv|6mAqxvS>?9%qm0492Y%Qtzk*Y#xx|%$~G>KO1j;@ZBT59t|W_r8dPeD zQnRQdArUd#GHGoGSkdGP)!#MF{f*aqce(JXBZn0KSMc#L!OZ5t^Kg2wdK1F}pj%E$ z8#<$bu@220-Z}vO0~(@(HbLKLD)-}f?S;>49kh$hbWmq)J-&kAV_sc z4qsAQ2{8BuKDl++}@xHcn=NkLcP8>5gWN)rw8}_|Z0JyC&BFrs%rteHUi< zH&q$NO4RF0`UKz`Vl9D_9!);1W`7zvX|mi3MQgn(FXka~IiopfDU%bAMJHcu*;R`q4$4?BZIEHcM8tz9l41N&yHV{oz zQHX>OLPG{CIiXjQJV=*?07xNI*I@7OsjFd01g3dbMKm0YXeG?i4REc&CWUjR5MFSV zzihSyjGB{Z>{1Hjl3Squq?e1Y+AQIyR!m0J);$=9=-bAZ1~UM=WF@?nP)?nr- z5`401a@jqKku)%7xJ>k+EAgs-`BG0~Gial`Zo)|HVPwCDAzcrF<1=fAEs{1zGfmUyOjOO$42?^kLW0KQ$e29NIA zycq*$wN6>2Q-w7r;u1W_X-#MJ0ei~M8S}kP-9c6V?wCNv!!)LqOa?F1N{oD?!0s}w z4W$mnJoiAwfeLI!x*Pa$FnzFx`t(KAK>AytoE&(f z9y6!eA7*wQE*>;R3raXV3BFICzeC+fR*NnQn|b`-wdRqoH!JMF1oiokk0m}0P34=4 zZ@zp-qrdgqIt)ka_1Q)~O~EWmjf0aMNJR@aHR3l*omQD~ae=Kw?WeTZr-Dtx>AAjv z?T35v>R|=g$$Lou<~^NFE5z&dxOXTRhid#DM4Ov%hJ0a-FSi&psDn%?*(@ z0T=c}+RJV?DLMymNFS$IG+gUxS?y+zmpk-7WT5wF#7ok9^Prp)$#Pv?!yx#0TVh1pQh2Pyvo^KGE z!d^TP*Ts4Lq=BGOJkHPjP;-#ptAe5&hZ$mU&e#GWpSzvQLPShw=jHPW)1*$0>$z{s zwa;dO3DHuU7g>VH^K!VDieY6H9Jjtn45BB?_IEs9NDdWd&ghZ|a;o^%%%mpUUq`aX zD`r3h;BIoKXg;x|{stpJ+Do+j0CK-tKRG`=q#OVJawFj76>DgYS&59E)2Sr>aXJ0A zLS#6Rh)aW96aYuYg+m1+s)t!BO(>{?O_%q#_MZemiM}_(Wpjk*<#}o0)t#zCqU-(9 zx5n{uSRs1Sk-o;%at~8+JMR}}!*}ch{Q!`WVjGYNwC9z9E$~VWlxbhH7kBqDcu5Cz)-Xa4{R0Pa*P?k#LKQiS|>N=_OP+jk4piG0<#fx`tC$%+<- zCBHL<_swlEGp5+V$sI&r>d2@TDUlFLk1(GWMA^Br*aK2SWHhEBakCC%$1htV^GcO7 z-1<*q!L=p}f9v&pPCagPboQq*g7|*>cI^B7!qdVJN0ppfZN3R^zXhqQ7HO0lG_+MV zZ2W`Y{X+5p4v?sZ_25^_c%E>02VN#x94%9E$;|2h4hyf(wP{KHpw+i~ zq^92y^d=cF866VF4Cg;~Wr{`^aMjXren<-a?R~sO;{npTD0^mm3!S{MToO=ukClq% ztp`4Gl=J@Td6zINOQWjMq!XC;;U0LU|DaA_pjlXIrpu3*v0SwF?E`3K7BX1*_ zeFaNmmTzdDJJA~&AIEMsMdgmtdjl82Py(7++~f{>HSGC5^e|s(nztNrv%}YuGT=Kc zNE&R{S}K2&6ZwXQ&eg!V+byF<(?4%d1dGHU4!>(I2(eh`G#MNjsY)NXkmJT#Xx@t$ zCV$K~*NH7oGuql20v&p#g4u8{cSsG1_McJ}Me<{qG>Ppiz15u-VIiK%o;wTspg&(P zVebS*{Z`X{bY^q$DOoJ7YJeOGuw4?wp^WHRlxMV3kGql3nyOB`QHJ?=ul)~KydEzV zHjskR?BqZV4Gg-=f16L75^MX;@+YQ%trwmmN7s#bvX@IVU`q(`sYUp}@J9JQ^m6Ocv% za!JZy<4m)XkTzc*oo4X938vPFS`VRe8SA5P>7&@#&d}H7TJeaiW~j1SesgGZ`lv5# zyI8C#)0SUrJGg<_PQDodf_+D)-h#_y59(|@{At#rJMOSr zs(k$y2tBbxT4U_iO&($Pdwp&fqaU%KK}nvz2(8^91~@(}5Bgtv-@~j(yX$nhDd!VI z;nJ`L13YaLt8cJw{f*vKZ)?UfIA@52Xv&N1n7;8vKmJ}|tkJzKigl9~y1# zkx2z%^}OHHPG5|S=a8=+OosBl$1KcH5H-%ka!$oEd$y?bcIIB#o!~Nd__V1Mg}*8a zJ@*!Q&2%m}bQkR=2)=6X&;1?0K1@W&vVtW6G-;2}{1&@fn&S~;{9cc)xY<=|6EBAG z2K9!-+FozikK%q46OfX`%Am=F?o!~s{KHitW+GlG;LWU?&{2VRNW`29QE^MKJ|dZh zts>>;V+(ctSL6vLq(VaTgGg2AIyL-^%>Rh5$sOsvcEaS*DbD-Kt#+L~v#9_{I`qgJ zaOUUSd4)L%bP{c5R&9d$9k`CNjw0cdtHsEO#ub*) z*VwlaIk4qS9g1rig1719`BkuAPn}GkszI(ZNidG0GCZCfX~zb|1u*OK(?FOj9(7>XO=!1$Vu}yyIrMM@vV9NZi=QV+E zI%n%gjak4pNrRVOv5Wd{sc)tJZTR%4to*ye@ z6qP7598^#GyOU$HqztKqOpk0XbA)L^-9~3lRFN7R)^c33&ibaMR$Wdk(Aq*tWUlgS zgK*vcxP}6+&c7Jm%&}-V-*w)GNo^n^ux}asV3g7~$l3d({?9SIW$8fKbA~l8KjYk) zjjMN?Q7UZ_S25;OoBbHx>}oI|xY2FE<*lDt@-=|)x8~T;_}CQKqW=V2gCG+tmZbhi8p)^esD+je$BTx%sNO{$>8p1e$q^Tl58mg7E zsPC2ce@4g_Q4OAL!j#_W2#e{sffZp%aOIs+V-ku* z=VXsr4;JyZSCkSlghKmrkj$n+t8c3557r07<#;ocQ-MYn4y7ESkV~abi_Ofn-Nd0Z zW%{MX_cgM*{!HvSkqYzyXD%EZ*6VR>y^ke#?0@1VnWJ8R>g<&vH2isHlXO-9PZ!#B z;c8}&=|202GNN$)7URDbBAb+2JM{ zcpQ`s-2~)X4ly}K=IjHH;MPiFe8lz8+8n(XBIzulmT&S?Bodkg0M)EYY>eA9n0d%@ z;ZH0W>(@UkMNod`9E)mo!Y;v!u!&Xk3qQyEA)Sr>d8XobIYn#>yN=@;*7Z|NwuiAH zJAqd*1(|<4E*qtNFNQw!v94ZUn*1|s88RP-5QS>N#p7pi8~Jnj5YDnaq9R1+O{W44 z#_UAiZNtv>uW|jR6VO;R--AE4geAV9;C1dF-}>%w^(^N$;CpDY4l>4vkuG#i^sGnE@Gnj?va z9uG2&G)=#ID<@~d3e3N_56cmHE=n5ToOyW*fg&*24oVY82Pm8k1K}c&g&Wz4;xT8j zzwo2<*GrH@Vb2{sn0WHo;IjYC8Hq_<5)Q{LSjSO0$r9-;_G&!}^3tDeU9(1`G|H-? zE`zmD0A0FjAUxx0skzj#knzkxr3f%bPc`N=3N)7K%$Fl7`m93=U=MK2-BQL_3XDUT;38ii>ldW7asmB6^}i@tZ6)@ZIHV8b*zOn`@wGe~qx!lBPK-86J*0GdOrVlRA$l^jT zD4sQ@1K7&?Qdmb!DHT$`LCo}pmx>udQ|gXXxXYDjSCrOcE-ik!v#isN#K%W-nCMj$TB}~@J1EJ%0BJ;H@EPJTtyK@?|*W*#NcgIcd}SsWRNX5*?L7ety&i*Y!rzx0CT3LW%DGwdBWTPXtRRR<4EPr) z1?YfhBU7TyEd`ZJ37z%v6Z3Y5Vb5wFSEmkz^WQn^c=$kM zgH9d^ujX$$c1AtgpjqCS)iXF6ttqpzh;F({7sjmd`dtAbx47H|k>jOV5!re~m5EwJ z6@|*cDDsQ#)POC%JPq3Eph!oCC$=F0wIX@8 zt~@!(-mOb}R(80=n&NKMhJvC{BLZQ=eh+p1AeDSvvpFAoFTq=3FJU@b|9#c7LyofV zM0KLsRAt;|C?A_5(fghvar#q~KT&9^;?0mY%cROmgE%r;TY?c~H!NL@tlJIkc}Su**~vQhh@8$7yJ5p*>D zfeGHCy2=$9>i>N@<6hZc?}_Q%@5vlUKYYLNGJtJGUucGD6&_EzP3Au>3*IaC*#`_t zauhKmD=OeJxc4~Tr;H$44CEsliIRu?{xTJo$d1ZZxg3VIRp(?%g7ByjE)YOBXz@v) z_bkNeT>Dm%2{sq-O&warT2kj!QLgRV*rVfi8k1BFwiMjus{C{iGGmaNvn{UB)-GyE zSYPCZe^7}?8)1;@RU1+X-;;qNzdAl#k5X^5%T6U|#+?i#=*#qq3Q&#XJ5z!f!}y=L z2Y9GW82tx~zy1Co zrwS6=)~F(c!Ke14TA)9%zoH^%+%NyDQJUREY#(;vP}58V^WAGc^uufB1@Z#ajPTFj zKi+$*IUgov6?t+Amw?$ZGDV8$fQxn0g^I&onl)PYNIs(~CE9TvwBZY+VfA)s$7mFRe}2OGP7y!Cu! zE7fd%IP59`-kygl*5)2>*SGmHY9>x`OLJJuRj`H@6|OGj|)WH>sJBgA?B-Dl#>|}uoPyF5pE`ZmCF4g-7k3*;gGjiW%eyu|Q5Xncoo^ zIAf__UVAPA@s{&s=>olZVwqLN3lbF8ThEsKWUyP7#e3Q-Hqym?O0G8!l0Bn98YL!i zP~^^xQTM%x|LPCZztzEd{RlhZi)3M3(2)wEU0G->z_X`$*fKFE)+d+SnevjEZnu1Prt3=VbtHFquD_-{Ozc+Sd?I|8JUblfo{`r$`uHwXvFv4s$+(-Fv z>D~QIfYry#q+WU9%wUct*rhnpC-%J62v^_^?Nv0bTaPvbQW?p`883?mdhO_TR?49* z4Z(-&(j{Bf)P=%0>&xdnW^3kp_Rw{ONrmhb9GvCgcq#0t1kp4&maM+|N-{kdNs6Cm zQ=zZIZT!VyF(@36w~Bo!2pMQ)3R$2eL+thkrlVT34cH6gCG;i?$P(Tj=N*`+CW>`- z#mm>+vU})ctKwBA*xH7HK&V*UhkVs18SaI)4-8xqOmB4~M~z`W9O9ok(e#H1Xxn>gJ`Ya_T0%(t}M%He~5Q zx@dW(!dIFBoIKTEY|v@JZuwakOOD_FzrwBrzJ{xdR}5`qPh#I5MG{Lg`+_1t2o*%_ zu>`S8NMdWrtF^W7hEF77C)V1xAhGZ2Yf&L$Eu~c-Z7r?ue`n?;Z)PO?e)1;wo^#K+ z=br7Jd*|hN{R^`ja3ea+Og)|%P$n(oPi_oK*TuTHs`uPxhIji97!2m%g#x@}5dk?6Yf; z56cDCUspV0PWaOci=4AM6piaNm1}S(xzCesCHKs_+xP9VvEz@OxL-JV|AQx$8eA!r zac+2-YAx1`JJD&t?U7sw)b59J@+G~dSzaX+8$dxzV$DaN@vH^{Gorz1@i(w zzUr~+9_=`vIs1#GJ_$+fm!C+9zfikqogE{5TJKJ2y}ZQQcS}p1=@{{E__)-F1n0+F zARRoX9r||wf?q`r&8%k^(zAg9lQI4>EwUsb)Qjv6U)Z6 zDzjzY#-24l?K@*vSj?@IW`18hc;0p2+Ez+@>BpC+Kihq3`fqc@fFbizhE!hn+h6th7ns(j0Ikh?yo_=@Fx!dDHj%BP=dQZ(xE?w%v{$Hg^Eh6`Frz_XrLO=bj zOx*|nemQt}m(rJ~7Eehmyfx{-rZHRh{T&zPH-FE8tjz5l`|hkTYjcD1%sz3q*QFiL z`W3%%tzf|Zjg9L)8r|uIv#am!QNKR@w87i>O;?|1Z;o(Y*G8GHDeLUHK>E_hVO|Ds$S8dVV0QQcCHx87ud`*#E=n)IuTkuFVkJ zj&JJk`+51-uf}ifFev-(-1bZ9SN|#6Wp_f4IqR~AzkArP;`&2BJLRF;FMoVFX<^SdL65IymI%MFzUqGu%^!XI zna|UaldE0aH0kH=-!^}B;&rRXq2p`bfA^*pGk(p$Z?hZk*y>yze<1SkzO?y2oW1h% zo|LVtU;Ny8daD;NUo2X96=H6_X|-$(H06GILRo>}f_mM#o@!fxo*T@8KZ)uYzSI=?zu|A>#dQonwAVe^(@MSgRRKlIs}&dZz~4t;ii z^{siYXT6-gu*09TSAM=?Yuf15 zVcg@t6W^X2HL7yenrrXI?N7^i^~kpqvo%`GHRo`@DU(?7>!VY3{z&>eaA6)`t2vT6bxw=er9No%fG4 zzHxg;v%eRnH}-q`d67n;liv-RG-t={n9*JC9d7^kkcw~D6q`LV{c_mfF`iXtO)60& z`;#dpVsAf7PQ8~g?AZY7ZCvR}udkGQ)z0_rprUW*r3ZQb{_u!%O?p-5&$s{bxz&0? zR=o+MM;~qAlQ8M_;jSJZ-%6@mwTnkg+o^kQ;cKyGq%SL*QPC%%P4-C7!z;HPF4psg z)GT3EdRnz-XDeN6oxSM(>F0GO-M$|`W?Fi*XJGi43F(1;4clfv^hpTGRy+^*z2(a% z^_W+)aqGy3+<|+`eUh#-Z4>&JZ5X$}x%2L$x?@is4E61Ovc{uFb+3hG`wn~NGsV|` z=&EPbl#@4~b*cV#%#g)z`$|J^&aWPGequfUXMXHI1AT|Cy%dzPJbkUtwU*iQzV*J} zBKCH6v%lw66dk9gihoy|^0LIsMOQnFSs&PNZ}f_{D=Pl9xy}5m#U}3x-4-(8W53L- z#g44DDfOHMe#>b3*RG?7QoZkg-QvjOW_#CpCu|$6zAfmP+UdfA&QB+HltSwqPOiB% z@#8wap;;Fv9`Mf`Ibip=vQrxD$S&^lzv4wQ6S^N9_jT>eG9~uhN#7jZWx{{D%`0?v zL1g(UYxdMQ+uA>Keo?8z-f8Kxd}=M<8+qF6RbkK8i;ujF?((GNg0jv5M@RZ}^RL@# z^5V2ho0@n}Y3EBdsCMbotD`0+Pn^Y3fyOAPMn^ja9cWNL#eeqZdWdAh@!NyCOu9NK!K|EKiQ z;LwU)Zmd`mJWuWx@OW~1kKRiQFYt?K6M3hj|MO#C?j0Q5_|-)-Fiq!ho0mwejY93JXhG^o_ny^+H`iUt=ezH;~o--s_iDL8_ioBoj$@!fy+ z&ke3$rB&5W2Kj{hzgRbS;z#~I^V|P)FSunlkAE`fwyc&Cvp=y(la#>VzuJ5|#VQ{hu30`mT4@B!%VOj`U@eA_-Pdb9{pj_bYZrX4N48&H=gP(G)QUGM^uPQv zq`{IC2ZjViWdF3R$%){O9^0X6*IX^AAt{ z>-fa)9@Xu-rn2zG?m4G;o(t9eecu= z4qI~Z)buXP=Z>zFRqgkAtK=4qh9`Tynim&vszv{e=a-f^<-29g9?#heGM2t+cVWui zPh(G4`g(CGF0Ib>UZMT|>>RNq@OrP5NfH0d!JnxA>dfaSH~7A(^I~4=yU*A+b{UDZId`?_|8DYzTxh^<%uSgJFqU^m|htI~VC?pomTt>yo_yKc&=eRq$2 zUGQ*&K`mx)}wv}%R5=mz|MpE#Se_@F7UKNqB(~k zFb+YM9TG$1nRD=1Mo|*+jNc`}!Ar7(l?8{$viM!Z@A%|sPXTv1c!kF^>yQM=A@h

jQI;5sb<|`!_CP%wMFf1#O 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 Ee>8Pgp8x;=