From 9c3e3bddad19ce4e14cd8c392aad4105baf01e29 Mon Sep 17 00:00:00 2001 From: furrtek Date: Fri, 27 May 2016 09:26:43 +0200 Subject: [PATCH] LCR scanner and bugfixes, keyboard bugfixes --- firmware/application/main.cpp | 2 +- firmware/application/ui_alphanum.cpp | 32 ++- firmware/application/ui_alphanum.hpp | 14 +- firmware/application/ui_lcr.cpp | 283 +++++++++++++++------------ firmware/application/ui_lcr.hpp | 78 +++++--- firmware/application/ui_xylos.cpp | 2 +- firmware/application/ui_xylos.hpp | 5 +- firmware/portapack-h1-firmware.bin | Bin 473984 -> 475248 bytes 8 files changed, 253 insertions(+), 163 deletions(-) diff --git a/firmware/application/main.cpp b/firmware/application/main.cpp index 363b8381..e0568b3a 100755 --- a/firmware/application/main.cpp +++ b/firmware/application/main.cpp @@ -24,12 +24,12 @@ //BUG: No audio in about when shown second time //BUG: Description doesn't show up first time going to system>module info (UI drawn on top) +//TODO: Two players tic-tac-toe //TODO: Breakout game //TODO: SD card wiper //TODO: Draw on touchscreen and transmit as spectrum paint //TODO: Use progressbars //TODO: Setting: Prefered input method -//TODO: LCR emergency clear all //TODO: LCR receiver //TODO: Xylos receiver //TODO: Morse coder diff --git a/firmware/application/ui_alphanum.cpp b/firmware/application/ui_alphanum.cpp index 33578b10..eb38732c 100644 --- a/firmware/application/ui_alphanum.cpp +++ b/firmware/application/ui_alphanum.cpp @@ -36,6 +36,10 @@ using namespace hackrf::one; namespace ui { +void AlphanumView::paint(Painter& painter) { + move_cursor(); +} + AlphanumView::AlphanumView( NavigationView& nav, char txt[], @@ -56,8 +60,8 @@ AlphanumView::AlphanumView( .foreground = Color::black(), }; - txtidx = 0; - memcpy(txtinput, txt, max_len+1); + txtidx = strlen(txt); + memcpy(txtinput, txt, max_len + 1); add_child(&text_input); @@ -71,7 +75,7 @@ AlphanumView::AlphanumView( button.on_select = button_fn; button.set_parent_rect({ static_cast((n % 5) * button_w), - static_cast((n / 5) * button_h + 18), + static_cast((n / 5) * button_h + 24), button_w, button_h }); if ((n < 10) || (n == 39)) @@ -97,7 +101,7 @@ AlphanumView::AlphanumView( add_child(&button_done); button_done.on_select = [this, &nav, txt, max_len](Button&) { - memcpy(txt, txtinput, max_len+1); + memcpy(txt, txtinput, max_len + 1); on_changed(this->value()); nav.pop(); }; @@ -105,6 +109,22 @@ AlphanumView::AlphanumView( update_text(); } +void AlphanumView::move_cursor() { + Point cursor_pos; + + cursor_pos.x = text_input.screen_rect().pos.x + (txtidx * 8); + cursor_pos.y = text_input.screen_rect().pos.y + 16; + + portapack::display.fill_rectangle( + {{text_input.screen_rect().pos.x, cursor_pos.y}, {text_input.screen_rect().size.w, 4}}, + Color::black() + ); + portapack::display.fill_rectangle( + {cursor_pos, {8, 4}}, + Color::white() + ); +} + void AlphanumView::set_uppercase() { const char* const key_caps = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ. !<"; @@ -121,7 +141,7 @@ void AlphanumView::set_uppercase() { void AlphanumView::set_lowercase() { - const char* const key_caps = "0123456789abcdefghijklmnopqrstuvwxyz. !<"; + const char* const key_caps = "0123456789abcdefghijklmnopqrstuvwxyz:=?<"; size_t n = 0; for(auto& button : buttons) { @@ -139,6 +159,7 @@ void AlphanumView::focus() { } char * AlphanumView::value() { + txtinput[txtidx] = 0; return txtinput; } @@ -168,6 +189,7 @@ void AlphanumView::char_delete() { void AlphanumView::update_text() { text_input.set(txtinput); + move_cursor(); } } diff --git a/firmware/application/ui_alphanum.hpp b/firmware/application/ui_alphanum.hpp index 42b20672..9f1c8fd3 100644 --- a/firmware/application/ui_alphanum.hpp +++ b/firmware/application/ui_alphanum.hpp @@ -40,27 +40,27 @@ public: AlphanumView(NavigationView& nav, char txt[], uint8_t max_len); + void paint(Painter& painter) override; void focus() override; char * value(); - - uint8_t txtidx; - - void char_add(const char c); - void char_delete(); private: uint8_t _max_len; + uint8_t txtidx; bool _lowercase = false; static constexpr size_t button_w = 240 / 5; static constexpr size_t button_h = 28; - char txtinput[21]; + char txtinput[25] = {0}; + void char_add(const char c); + void char_delete(); void set_lowercase(); void set_uppercase(); + void move_cursor(); Text text_input { - { 8, 0, 200, 16 } + { 8, 0, 224, 16 } }; std::array buttons; diff --git a/firmware/application/ui_lcr.cpp b/firmware/application/ui_lcr.cpp index fd333957..ceb4dd04 100644 --- a/firmware/application/ui_lcr.cpp +++ b/firmware/application/ui_lcr.cpp @@ -1,5 +1,6 @@ /* * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2016 Furrtek * * This file is part of PortaPack. * @@ -79,7 +80,6 @@ void LCRView::make_frame() { lcrframe[6] = 127; lcrframe[7] = 15; // SOM - strcpy(rgsb, RGSB_list[adr_code.value()]); button_setrgsb.set_text(rgsb); strcat(lcrframe, rgsb); @@ -133,15 +133,15 @@ void LCRView::make_frame() { //if (persistent_memory::afsk_config() & 1) { // LSB first - for (dp=0;dp>cp)&1) pp++; - new_byte |= (((cur_byte>>cp)&1)<<(7-cp)); + for (cp = 0; cp < 7; cp++) { + if ((cur_byte >> cp) & 1) pp++; + new_byte |= (((cur_byte >> cp) & 1) << (7 - cp)); } - lcrframe_f[dp] = new_byte|(pp&1); + lcrframe_f[dp] = new_byte | (pp & 1); } /*} else { // MSB first @@ -169,7 +169,7 @@ void LCRView::paint(Painter& painter) { Point offset = { static_cast(104), - static_cast(72) + static_cast(68) }; for (i = 0; i < 5; i++) { @@ -178,38 +178,141 @@ void LCRView::paint(Painter& painter) { style_orange, litteral[i] ); - offset.y += 40; + offset.y += 32; } } +void LCRView::start_tx() { + char str[16]; + + if (scanning) { + scan_index = 0; + strcpy(rgsb, RGSB_list[0]); + } + + make_frame(); + + transmitter_model.set_tuning_frequency(portapack::persistent_memory::tuned_frequency()); + + shared_memory.afsk_samples_per_bit = 228000/portapack::persistent_memory::afsk_bitrate(); + shared_memory.afsk_phase_inc_mark = portapack::persistent_memory::afsk_mark_freq()*(0x40000*256)/2280; + shared_memory.afsk_phase_inc_space = portapack::persistent_memory::afsk_space_freq()*(0x40000*256)/2280; + + shared_memory.afsk_fmmod = portapack::persistent_memory::afsk_bw() * 8; + + memset(shared_memory.lcrdata, 0, 256); + memcpy(shared_memory.lcrdata, lcrframe_f, 256); + + shared_memory.afsk_transmit_done = false; + shared_memory.afsk_repeat = 5; //(portapack::persistent_memory::afsk_config() >> 8) & 0xFF; + + EventDispatcher::message_map().unregister_handler(Message::ID::TXDone); + + EventDispatcher::message_map().register_handler(Message::ID::TXDone, + [this](Message* const p) { + char str[16]; + + if (abort_scan) { + text_status.set(" "); + strcpy(str, "Abort @"); + strcat(str, rgsb); + //strcat(str, to_string_dec_int((portapack::persistent_memory::afsk_config() >> 8) & 0xFF).c_str()); + text_status.set(str); + progress.set_value(0); + transmitter_model.disable(); + txing = false; + scanning = false; + abort_scan = false; + button_scan.set_style(&style_val); + button_scan.set_text("SCAN"); + return; + } + + const auto message = static_cast(p); + if (message->n > 0) { + if (scanning) { + scan_progress += 0.555f; + progress.set_value(scan_progress); + } else { + text_status.set(" "); + strcpy(str, to_string_dec_int(6 - message->n).c_str()); + strcat(str, "/5"); + //strcat(str, to_string_dec_int((portapack::persistent_memory::afsk_config() >> 8) & 0xFF).c_str()); + text_status.set(str); + progress.set_value((6 - message->n) * 20); + } + } else { + if (scanning && (scan_index < 36)) { + transmitter_model.disable(); + + // Next address + strcpy(rgsb, RGSB_list[scan_index]); + make_frame(); + + memset(shared_memory.lcrdata, 0, 256); + memcpy(shared_memory.lcrdata, lcrframe_f, 256); + shared_memory.afsk_transmit_done = false; + shared_memory.afsk_repeat = 5; + + text_status.set(" "); + strcpy(str, to_string_dec_int(scan_index).c_str()); + strcat(str, "/36"); + text_status.set(str); + scan_progress += 0.694f; + progress.set_value(scan_progress); + + scan_index++; + transmitter_model.enable(); + } else { + text_status.set("Ready "); + progress.set_value(0); + transmitter_model.disable(); + txing = false; + scanning = false; + button_scan.set_style(&style_val); + button_scan.set_text("SCAN"); + } + } + } + ); + + if (scanning) { + text_status.set(" "); + strcat(str, "1/36"); + text_status.set(str); + progress.set_value(1); + scan_index++; + } else { + strcpy(str, "1/5 "); + //strcat(str, to_string_dec_int(shared_memory.afsk_repeat).c_str()); + text_status.set(str); + progress.set_value(20); + } + + txing = true; + transmitter_model.enable(); +} + LCRView::LCRView( NavigationView& nav ) { char finalstr[24] = {0}; - static constexpr Style style_val { - .font = font::fixed_8x16, - .background = Color::green(), - .foreground = Color::black(), - }; - transmitter_model.set_baseband_configuration({ .mode = 3, .sampling_rate = 2280000, // Is this right ? .decimation_factor = 1, }); - transmitter_model.set_tuning_frequency(portapack::persistent_memory::tuned_frequency()); - memset(litteral, 0, 5*8); + memset(litteral, 0, 5 * 8); memset(rgsb, 0, 5); - strcpy(rgsb, RGSB_list[adr_code.value()]); + strcpy(rgsb, RGSB_list[0]); button_setrgsb.set_text(rgsb); add_children({ { &text_recap, - &adr_code, &button_setrgsb, &button_txsetup, &checkbox_am_a, @@ -223,155 +326,93 @@ LCRView::LCRView( &checkbox_am_e, &button_setam_e, &text_status, + &progress, &button_lcrdebug, &button_transmit, - &button_transmit_scan, - &button_exit + &button_scan, + &button_clear } }); checkbox_am_a.set_value(true); - checkbox_am_b.set_value(true); - checkbox_am_c.set_value(true); - checkbox_am_d.set_value(true); - checkbox_am_e.set_value(true); + checkbox_am_b.set_value(false); + checkbox_am_c.set_value(false); + checkbox_am_d.set_value(false); + checkbox_am_e.set_value(false); // Recap: tx freq @ bps auto fstr = to_string_dec_int(portapack::persistent_memory::tuned_frequency() / 1000, 6); auto bstr = to_string_dec_int(portapack::persistent_memory::afsk_bitrate(), 4); - strcat(finalstr, fstr.c_str()); strcat(finalstr, " @ "); strcat(finalstr, bstr.c_str()); strcat(finalstr, "bps"); - text_recap.set(finalstr); button_transmit.set_style(&style_val); - button_transmit_scan.set_style(&style_val); + button_scan.set_style(&style_val); - button_setrgsb.on_select = [this,&nav](Button&){ + button_setrgsb.on_select = [this,&nav](Button&) { auto an_view = nav.push(rgsb, 4); an_view->on_changed = [this](char *rgsb) { button_setrgsb.set_text(rgsb); }; }; - button_setam_a.on_select = [this,&nav](Button&){ + button_setam_a.on_select = [this,&nav](Button&) { auto an_view = nav.push(litteral[0], 7); an_view->on_changed = [this](char *) {}; }; - button_setam_b.on_select = [this,&nav](Button&){ + button_setam_b.on_select = [this,&nav](Button&) { auto an_view = nav.push(litteral[1], 7); an_view->on_changed = [this](char *) {}; }; - button_setam_c.on_select = [this,&nav](Button&){ + button_setam_c.on_select = [this,&nav](Button&) { auto an_view = nav.push(litteral[2], 7); an_view->on_changed = [this](char *) {}; }; - button_setam_d.on_select = [this,&nav](Button&){ + button_setam_d.on_select = [this,&nav](Button&) { auto an_view = nav.push(litteral[3], 7); an_view->on_changed = [this](char *) {}; }; - button_setam_e.on_select = [this,&nav](Button&){ + button_setam_e.on_select = [this,&nav](Button&) { auto an_view = nav.push(litteral[4], 7); an_view->on_changed = [this](char *) {}; }; - button_lcrdebug.on_select = [this,&nav](Button&){ + button_txsetup.on_select = [&nav](Button&) { + nav.push(); + }; + + button_lcrdebug.on_select = [this,&nav](Button&) { make_frame(); nav.push(lcrstring, checksum); }; - button_transmit.on_select = [this,&transmitter_model](Button&){ - make_frame(); - - shared_memory.afsk_samples_per_bit = 228000/portapack::persistent_memory::afsk_bitrate(); - shared_memory.afsk_phase_inc_mark = portapack::persistent_memory::afsk_mark_freq()*(0x40000*256)/2280; - shared_memory.afsk_phase_inc_space = portapack::persistent_memory::afsk_space_freq()*(0x40000*256)/2280; - - shared_memory.afsk_fmmod = portapack::persistent_memory::afsk_bw() * 8; - - memset(shared_memory.lcrdata, 0, 256); - memcpy(shared_memory.lcrdata, lcrframe_f, 256); - - shared_memory.afsk_transmit_done = false; - shared_memory.afsk_repeat = 5; //(portapack::persistent_memory::afsk_config() >> 8) & 0xFF; - - EventDispatcher::message_map().unregister_handler(Message::ID::TXDone); - - EventDispatcher::message_map().register_handler(Message::ID::TXDone, - [this,&transmitter_model](Message* const p) { - char str[8]; - const auto message = static_cast(p); - if (message->n > 0) { - text_status.set(" "); - strcpy(str, to_string_dec_int(message->n).c_str()); - strcat(str, "/"); - strcat(str, to_string_dec_int((portapack::persistent_memory::afsk_config() >> 8) & 0xFF).c_str()); - text_status.set(str); - } else { - text_status.set("Done ! "); - transmitter_model.disable(); - } - } - ); - - char str[8]; - strcpy(str, "0/"); - strcat(str, to_string_dec_int(shared_memory.afsk_repeat).c_str()); - text_status.set(str); - - transmitter_model.enable(); + button_transmit.on_select = [this](Button&) { + if (txing == false) start_tx(); }; - /* - button_transmit_scan.on_select() = [this,&transmitter_model](Button&){ - make_frame(); - - shared_memory.afsk_samples_per_bit = 228000/portapack::persistent_memory::afsk_bitrate(); - shared_memory.afsk_phase_inc_mark = portapack::persistent_memory::afsk_mark_freq()*(0x40000*256)/2280; - shared_memory.afsk_phase_inc_space = portapack::persistent_memory::afsk_space_freq()*(0x40000*256)/2280; - - shared_memory.afsk_fmmod = portapack::persistent_memory::afsk_bw() * 8; - - memset(shared_memory.lcrdata, 0, 256); - memcpy(shared_memory.lcrdata, lcrframe_f, 256); - - shared_memory.afsk_transmit_done = false; - shared_memory.afsk_repeat = 5; //(portapack::persistent_memory::afsk_config() >> 8) & 0xFF; - - EventDispatcher::message_map().unregister_handler(Message::ID::TXDone); - - EventDispatcher::message_map().register_handler(Message::ID::TXDone, - [this,&transmitter_model](Message* const p) { - char str[8]; - const auto message = static_cast(p); - if (message->n > 0) { - text_status.set(" "); - strcpy(str, to_string_dec_int(message->n).c_str()); - strcat(str, "/"); - strcat(str, to_string_dec_int((portapack::persistent_memory::afsk_config() >> 8) & 0xFF).c_str()); - text_status.set(str); - } else { - text_status.set("Done ! "); - transmitter_model.disable(); - } - } - ); - - char str[8]; - strcpy(str, "0/"); - strcat(str, to_string_dec_int(shared_memory.afsk_repeat).c_str()); - text_status.set(str); - - transmitter_model.enable(); - }; - */ - button_txsetup.on_select = [&nav](Button&){ - nav.push(); + + button_scan.on_select = [this](Button&) { + if (txing == false) { + scanning = true; + scan_progress = 0; + button_scan.set_style(&style_cancel); + button_scan.set_text("ABORT"); + start_tx(); + } else { + abort_scan = true; + } }; - button_exit.on_select = [&nav](Button&){ - nav.pop(); + button_clear.on_select = [this, &nav](Button&) { + memset(litteral, 0, 5 * 8); + checkbox_am_a.set_value(true); + checkbox_am_b.set_value(true); + checkbox_am_c.set_value(true); + checkbox_am_d.set_value(true); + checkbox_am_e.set_value(true); + set_dirty(); + start_tx(); }; } diff --git a/firmware/application/ui_lcr.hpp b/firmware/application/ui_lcr.hpp index 11cfb8eb..ed19d11e 100644 --- a/firmware/application/ui_lcr.hpp +++ b/firmware/application/ui_lcr.hpp @@ -1,5 +1,6 @@ /* * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2016 Furrtek * * This file is part of PortaPack. * @@ -38,13 +39,16 @@ class LCRView : public View { public: LCRView(NavigationView& nav); ~LCRView(); + std::string title() const override { return "LCR transmit"; }; - void make_frame(); void focus() override; void paint(Painter& painter) override; private: - uint8_t adri = 22; + bool txing = false; + bool scanning = false; + bool abort_scan = false; + double scan_progress; const char RGSB_list[37][5] = { "EAA0", "EAB0", "EAC0", "EAD0", "EbA0", "EbB0", "EbC0", "EbD0", @@ -64,10 +68,20 @@ private: char lcrframe[256]; char lcrframe_f[256]; rf::Frequency f; - - Text text_status { - { 168, 196, 64, 16 }, - "Ready" + int scan_index; + + void make_frame(); + void start_tx(); + + const Style style_val { + .font = font::fixed_8x16, + .background = Color::green(), + .foreground = Color::black(), + }; + const Style style_cancel { + .font = font::fixed_8x16, + .background = Color::red(), + .foreground = Color::black(), }; Text text_recap { @@ -88,72 +102,84 @@ private: "Set RGSB" }; Button button_txsetup { - { 120, 24, 96, 32 }, + { 128, 24, 96, 32 }, "TX setup" }; Checkbox checkbox_am_a { - { 16, 68 }, + { 16, 64 }, 0, "" }; Button button_setam_a { - { 48, 64, 48, 32 }, + { 48, 64, 48, 24 }, "AM 1" }; + Checkbox checkbox_am_b { - { 16, 68+40 }, + { 16, 96 }, 0, "" }; Button button_setam_b { - { 48, 64+40, 48, 32 }, + { 48, 96, 48, 24 }, "AM 2" }; + Checkbox checkbox_am_c { - { 16, 68+40+40 }, + { 16, 128 }, 0, - " " + "" }; Button button_setam_c { - { 48, 64+40+40, 48, 32 }, + { 48, 128, 48, 24 }, "AM 3" }; + Checkbox checkbox_am_d { - { 16, 68+40+40+40 }, + { 16, 160 }, 0, "" }; Button button_setam_d { - { 48, 64+40+40+40, 48, 32 }, + { 48, 160, 48, 24 }, "AM 4" }; + Checkbox checkbox_am_e { - { 16, 68+40+40+40+40 }, + { 16, 192 }, 0, "" }; Button button_setam_e { - { 48, 64+40+40+40+40, 48, 32 }, + { 48, 192, 48, 24 }, "AM 5" }; Button button_lcrdebug { - { 166, 224, 56, 32 }, + { 168, 216, 56, 24 }, "DEBUG" }; + Text text_status { + { 16, 224, 128, 16 }, + "Ready" + }; + ProgressBar progress { + { 16, 224 + 20, 208, 16 } + }; + Button button_transmit { - { 24, 270, 48, 32 }, + { 16, 270, 64, 32 }, "TX" }; - Button button_transmit_scan { - { 76, 270, 72, 32 }, - "SCAN TX" + Button button_scan { + { 88, 270, 64, 32 }, + "SCAN" }; - Button button_exit { - { 176, 270, 48, 32 }, - "Exit" + Button button_clear { + { 160, 270, 64, 32 }, + "CLEAR" }; }; diff --git a/firmware/application/ui_xylos.cpp b/firmware/application/ui_xylos.cpp index 0494b790..21c644d7 100644 --- a/firmware/application/ui_xylos.cpp +++ b/firmware/application/ui_xylos.cpp @@ -113,7 +113,7 @@ XylosRXView::XylosRXView( void XylosView::focus() { - city_code.focus(); + options_ra.focus(); } XylosView::~XylosView() { diff --git a/firmware/application/ui_xylos.hpp b/firmware/application/ui_xylos.hpp index 1999000d..5601d016 100644 --- a/firmware/application/ui_xylos.hpp +++ b/firmware/application/ui_xylos.hpp @@ -148,8 +148,6 @@ public: ~XylosView(); std::string title() const override { return "Xylos transmit"; }; - void start_tx(); - void upd_message(); void focus() override; void paint(Painter& painter) override; @@ -160,6 +158,9 @@ private: const rf::Frequency xylos_freqs[7] = { 31325000, 31387500, 31437500, 31475000, 31687500, 31975000, 88000000 }; char ccirmessage[21]; + void start_tx(); + void upd_message(); + const Style style_val { .font = font::fixed_8x16, .background = Color::green(), diff --git a/firmware/portapack-h1-firmware.bin b/firmware/portapack-h1-firmware.bin index 0c1ec1bfc0c7f714e9b9368bc03b7f9eaf25b16d..a853a72c29bd1216428f43c7c81f6405f373f88a 100644 GIT binary patch delta 39562 zcmagH349bq`afLV(>+NhA(`BhgD^*c5UxoAAsn(HU`#T=0*fvp;y_SGKn#Z(@yOu8 z;RzX_LZU8*M>xd53Q-X^xE^?6f;XTW1mzSvTs=Kk|G(8UAiDc|-}!thbv^ae)74K^ zJ5L%F4kFqv|7KF|RXcaHy@(q4k!wU=Qru&V1+scJ< zVs5S^=6xS?fL5;DQ$)*|6mDzT)q*GID`l{+`J?eT&BQzXF;NX7a z$sH0;7_KEop49A08JhwatCa8Kwf0G9ZBda+b`g5C{c{Ha;7?AdH$mZgTY|fdx(N}~%+dMk6NXSpy%<6{!u`X{O z-B={#8J`SYOI!bW^iYvtHZS-?X;I`kjk|b<$!U?QLo{;`CPC>u`s^TKynY<&r_G~3 z4HE9)Yv$3a!NP9-(Rq|F7CvF|fnvZSE*m2J$giJAttG-v{=0efn-ZalKY{#EVQIV< zIF5jB{XINMyNB)`iZ*5U(EMS-qx|}N==Nd4B>i^Oy?YPU4;Pl|C8YH=w0^j-Sf5kF zlL0j}X@pSDx7X0ABZS?CA5r!zLa2sjUMDo_E%U)d^Xc2yq0h$oR6kNE=Knpvb>v7v z&+8Kw@FZsett!O>Ojtm7mI^oV?pkUXCG6C@QTNOO`rasEr2aV4fdy1w288Z~C|^il zDHF={&m-Nuke(|O9@T$@^znuCzR|)0y>1atdMu*nMhlsI@giy%gScW5?KMW2$~za) zN5=?_yn7MNxn3B+KevdEzg|dV`8%!$aczrQU%Xy;k<)(xBtI^qWj6>j^}iwQUqrXu zAWYTA+>4RAml`UBe7@(sw75ceQD1lbe@EG@d+GQ}p;*5V>AHLA zla(N@6X{>?rF@l8t`8s`eIFfPB@ED~-N%#M`{<)p!Z7_Hq{rMx->VWHi63@9PpS~6 zA>`jr$2-u+NB7gk4m{NN_qVQf2x$g>U65|S5yLM5h`r9#+SYkD37H%}td>6cci}x2 zkDns6^PPTbzFAn!J8N5a-z@L~-(K7L_N_u;oW8vlOJ;5B`MZPx-Euw(mfWewpJ@XckeP-x&62kAQx3h(pZ2I->@2^$UBQa{B|(OsIa&;bt%IYPFyT%i*l1{ZG((dQo) zwwXMtkQ39cbM+xjvm0(8dAbfWNs(M3>U>0)%-v0QJtEjlj;lb2uK_ZLsPu^NcFGn! zWgjfiKhNknvykN4bEFM^`fi<2#{b<*DJKw?@`DP0-S#zXcy!80vf;qkgG)V}h5AkH>gEZ+0 zAvY&S+T*p5LQ+!D9XNJrX?KC{wSmZO_tMFLG37{&-a^uS^8}Qw@ebTvNM<6n(o0u9 zA(ZG>0$a;N^uQB>IXg$X&8v4<$zA0pmnt6(ab{ln#$VB5+*^8Qt6`~dp5t#;X=oX^ z%ju#y%Z2Isb~HCWOdnk?A*j+l| z<$A>c7600OWfl@`b&cr@WJkP~2V-pcgsfeU;TRk!w-QSpX06vtjcWuGNIC7L{niKr zkm~T#>1(j&)wt-|H9|jrda(8VHNqPl?{>8=rou3ue>l{-d!6u$Xjln4NNGZ;`4Rfc zKZKb)V#9jjq-kj&yEJF`rqcYmjid8t)nLhJ0pz=nv>G-Dj|!PtQi-pJEetXnAhQ7y z2B5FJEMS$ZqdBh#OL=2m>npDaGev$v9W`u2fwPX*Z)3}KUF*4RjLF*p`8qZwcU|ko z*Ri1)R=O}scVUd{=#x7!W!mdn59|~caPe8vbj6IPHa2HTH!H2<-wumcCZ9~cZ*TkKt>^X#xg38v(3-MWn8ow|_S41x5c16Z3Cz)_lywOsQ0%_VXjb(9u#nv5vlg`CGR0l5U^wj;O7vEOieDu8!1S|4`wESH@dM;ewUCU4M(d-Yk_Md6_p*}kP zLm|6YW>8O3tSQBDn`2gPcVTLjD9caD=!hLPjFK^$Gg+N5blo zWa%FYu_RXYg%HTqlU4khWJ&MCYaz+f7HmDq(tnh?y`7_pc}E)|N8cu-1?lz&=+gZ{ zFCkfSDzs(4kW!Z+1-yrChsnM!MgO=YL_%x&$cUCJR0IAlRT-AY)U+1%;@C?o zElVKA-h{mI4L$IwV79)g>WQf$0k7w8J`vl}aKf!KNNarjX0Cx>6D^rA^*$56iry7S z1*X#>diFCRFZ%W%%N-2S?9Y)Kr{&%b(XpQk=IHqv4-0c{OA!{ZgY^%`$8Bq#U$P9jUpqgBZj1IPFne@Gef%9pGPd@ zPNz|7Q*^NPZQ@fBqwR9;@-UDxZ zi*OX-6hgx=LS)1u>Wl~(2sVU)2*n6TKP6<;Cq(0^hBDHgTA7OXekhQ-Speo2wK2O8 zpoiMA9ke__b2@~aq|pzoqBKR-Z!Wbupu4Rr{nlF5OntBXOpbUmgt<0cgC1G(&l5X&eE%wMvAvNh( zz6>shiwCOHKKjnrLh*EybiMEQozWznQ^Gr=N$T+Zc~yWAvum_#S&Kk2DmYJ)BzePg zEnO-KUYTn#(!Ig(T#J&tK04tWXlI|O^z1j_7gbp_c!LG9GKkc+klE=+oZ{nH3KOqKMII9MXrhI-^#aq=(c3JmdY~_mBKh4I{_1 zwJ}|qAF$(zKU6ThglmYAHh6~uM~*j~kH!i@&wVSr8!zDnlrG~*CBmd-^zHA2soDDv zKp=|z*xOEYL>K9tiD+-e2LHW~Q)-f0u`x0&=u`DtzIjR81Q^aMTgV@|hG|6U(kefF z7FhTte!Bg8VVHOec8dW0^?RX5U8P?~%0Darx7C&D%!7DBTAWs-)#7C|hTWN2YhZKG*;VPZ`t8D7ZMXU=)DjO$33ep4ZXY`$eqp1t7) zrz=YOi!b>aY=kVtBX%Qcg!JL)gNKCF(Z5A@hAZ#>elJ$`CM%?(j>!x6auw;)vuZoG z^D93ci7sOMT(=yZQ)rJSm*m~_%R|D@x_!R?ewu&z{`fS~E|KWTiWdF0$%7fQ4lRzC zK2VElt;-LSCR5W+Rz^JW(jK*Xc^_gd;+y}mGhTW_<+lpkvruA(d=)QkQ)id|bGgu~ zetF!uO>V3E7x$fR{e*QhU3rAqg7VA$IptZ)e{tK~(Y8C?o80+1eZz~zu$dL=oYX<1H(9~Qcg9;&(We?Ba|BWL9}ulrMt?ah;R=;W-1%FG&9xhh`{G4c|mdJW=)2Jw;_g_+L?+6jVoT|*QMP(%Rh zlnhF)&8>aDO!&UdG~CV=aW%;`Y~kU^&;mm($=A1Y!@k^Urq3M_dKAA2UHh)`$##$t zU}Q8SugX7%m}n4wTH~&zSQuR83DTrsY$X#Ma(wjo5y29p0kxGcTSnu55Yl?_^_(@j zx3QPbqkDw(OdjnmOfKCs`k$k9_pNjY!oLt0t zJZ1msnC+NDzxYAONKXwFkv^{3E)H#|1}KD_ju})%WnD0+|GbEZsB&vnzXoTQ+ep%b zB}JJv#L71`)?Adgsx~sT$W&t{x+Z?z)NDpthhJF7Ucn`m^x~TKl$Ep(1%D+-zp6t? zxx@HcvZvgUU64nTJjT@_xjvLf6!}~KaF=Lla@mRCIWIpOu-k5~8*L|j+@j^Y%muP- zQ%0v0ZFOhcO!hNw7oKyrtAq$m4L8IL;J+`b>^*>V6jhdxc*zmsiYE{G_X+k&dWJZS zkR7VNiS+8`;hW-Ki}zqIJQ%myXzsf(X>B@;$2zj~^QHgJcSXOJ>9jeFE0aA|hp{=y zQ)hJ?HHGBS5V;h2xnI;!Jq=Vwa|}==tu<(u6}^3ThGCexX!AxY7Yq-Z!S z8jd@#JgTw>+>(y@(GE7e!jb{7=9|dx`+<;s-xFe94t;ne3N{=eqzeV_1EAm#`0+3y zruZ8XdndHU+v%lFp+A2hNOO;3_kTM`#~u}O^Ii?I)uFB2j%Q>)EDiWn8A3c3c$mddN>T#j}gjWIsOx((Zyx8v{0c>Uuyz3enAzhm83-1%@ z(kTCb%LwdY_)1m&5`)NOG-)}lKaLZdi(dNXabXKLfL8x3^c76f-@UZ{XN=O9KKl00 zP~P9gdhxSRl6y+kH>X1oxo8_onn=K8FEE42*ZPLt^WZ(u6nn-?UX_;qBIMM0)rAo? z!?ahKGd`}l0FTkB`mDrOk9XLIoR>3v;oNyS1#J`2 zG81oMK&0&_THAjpw^lMt|5o`1-MT60?YtaRB0bfitMmx?KQ-{>N&#Wu+cfYi=zmtO zq&m^`N=H5=OypXvlC=+w;)YA zEx_0u5@AzTh9n)u7>{gjL?H~(tFMbw!-oLz8F3yhHF~QjH2wCzQkFSQA=#> zU8hPX)X$(coHXe-$4ePO#yL4Eeg6!|TDhE_J_9nXPzlcprj)zY?*Z9qx~n{1`W8E2 znsg*YE6xhNvN{87t=OyNVMWje1`4uB;)qw)(G_QfP0JM6083z(5lsU^R%Ph zXk+!=Sbcz+&jIU3EV^kDjNg-3ZiSY6H%K36xf(6^a**ymhaPc?+Q~}Gw9@q(e)htaD zO_k26$-R=clHALtD4XTA^eufzMsrb3#_IIdKDjewBjFN)9ET&j^ex20Abhef#3RSj ztnNZ6IZ|gF&T4h4&PM9irZM8v%j8xh-rbz|$a<;o~M`y(-D%7{&N$g#WMT zg{69H{eR`-NF1m#2iBe!GK~hU@FNsmO^Ww#b(xyEqODF zVh%=DkTz=L+JJQfzw~e|{$4v|5BO=wD`e+Bs)3#igZ@v*oBed8BBa$R@{wyujduMx z@0aIZH4}wNn|uvvjMTAz%8&U|e#ABT7}$h9-l@nxK^TQqErrl86(M;_H_71*KQB}G zHLF36&Y1v(|APFX@<$;tRr>lG^KvR=<*<;LCf)qs=H-z-AuWd;C#Op9`ABCTiOR4$ zTb-o8uH6cQZJPA2AYI@S#+u)Rq;1^me)9j|L?8Xpha)fV_cYBfSWVYT@!57+UWnGI z(iD|W@C$iWTO$JLcWZvf#@+$bTp@9jL};(PH3im_DCnncx`a?v_$ z2=_ci-}4I-jOPMO)rymNH3d7xUleK$2o-5RsnND5m?8KEy_D-s*&K^HxWu>v!W903 zN)H8uL41iyjX@zTF;0y~?Oh?g?c{WwMUuzRAwd{XUd5Tzp6Sse&BGxsHzd1na>q%* zkRD4P>rjIpb>iIYZ!NKby{vAbR<>w9R!>^vgLCmn%4M9*1g>zh;HHpOq9vOH_KZp-0}r5TJA z_Qb6rjtI@7^i)W{ISzYbs}i?W*rHplT5%~Y{h^fE2;PGHS)WNNg`%Yik!k-1sRJR4YZ9GNmL zbANy)aU$d_Eq7ahmLZpN$QS!M!&n|ju-*v0K25?A-6Nb>Sa*+RY&oK7_Nr_OWa7Zt zLQ?U_!@Q}RdF<}-8m8m`*Kl6`E@;h*`##fVjlkr2bq%STyGa3sVdpfM4}&8#m=V^5 z%?wYPSI}TiYcRk08J;(SH)$|84UYf`UQq-3P6PTu1KJp@(ST|+m{jS!s@GsX)L=gK z)7iXet?Y(lSl0P2?AS3)4;Q3*;vlVv zY{qN^W_ZZW_hGZ9U-RNernZ;Q;_e_@+1B9ah+&(-5boqEcpp?m#%4b zLA1xUjw@O%^!`f24T}-2Klyf^V2wy0QzY#9R6>u2T^=>j%o z3$WgEl|$b4(>Ot#fZiLhVWvu-`{*5l*ek!Aj8FR^qq`xa=h-$vRzK#R z>59ih=_WnlrMm?&7w|W0@XrF?Tf}SdEB^$~-tlxV6-2RDziv{227d?OXB4SLI<3X} zKef=I#b7VJNfh%y;TKwq5k9(H6pQOz0X9Bg2QJ9NnUG~=%Up`|0&J3ut{4qA9tW`{ zB$i%~I|3q3(L`%3)}9my!4|?d#7UR6#oMol*5Q!&SJ(6y59uIqXFo z2wjC@bG6{Mb8`+UD0?eEvxPxB^&U^mpOXMke~aE$WPsWIXpKF?2A#)v8Tf^^o) zdhPPDRwK1mHmy}#Icv8D?Gn*$qMsg!5$(L>TWipoy`eRGOKYY_vlQu!$~p@-dlAhn zXf^|4l0jUYImbV{yr@Uk@&fD;p2t*qw2xyCE&bI;4;sXhy7z+dke2&aCp5*^&jx4A zsZOZBEHA?XF%&qN%*F_@7&yYogfQ%@khUPr9&ASpN7x{ZLVgs|GZ4>Lphf)YMX*I; zggHej!jUuM&D$c2gia^$Z~k=`NTVL;##5ZZy5 z$)QQwc@`6RFUwKbT>INqD#wWhy*x}U#MrXc_S#=qcx8uIDbhq7&~+2drTYQf00i$N zo@Nip4dC89#Ebllv1UXtfs3yq3S(goekt%&quYVS-T*k(YOL03XrvWehOhj>t&VH0 z6fX^R!wPi|wZw~~vM-~NQCl<^@U=v~YlelyePIX}@%{PQkOXH=}emd7E_L}fW=#N5g ziu6q2_tVo9sW=c8dQ+st;Qzm6wC!p7lTpm&9}m#zL@|5BV4QE{mCnb}f*nHE0OU@V zE-1l4MP<9$BX zj@icJq{n?6Jjdds8Xs#DE?W%$L(UQ>-2tscm8&6jT1b?`RbX=I9q&!nJGvFNnNp>1 z6*hRQ1GFMZ%+JmV?2UM!5VVw)Um`h3l30e5#I(7$20CoHt|oHalmIcB9TKslqc}Lt zxyn;;t{>ZJcByi`8r8YiMqHIJ@vhj}W{Q(OR>I;nJ4ZD?!;=GGi5l>(=qh(@FB97H zz(jTa?7`j>W)~ZQWT_@ZjmhHF-d%DRj$QPd`R3@gm*uCRAV)VwdxUx{;V>`go5lJV z&t!qetG1m|$<$2RU`mH`%jy#{~qjOWSH-=PJTI8dRsbW=j zFrdSEZ4In4$twj<+G}Kh*v?L2Q>6XDwP|9GHBPz{`oAjA3iU;^Q%WxW{-Sip-(xTq zrAVC$Elq>G>rq*5zd~!$#5DeSl`c;ct@iU;>8lFk%VVZ!Pl;_Mq~E^od2Urc0{JA` zn!GN$Ay)cPgYzi#P@0%8#7Scn8l5iY@T*mtmk#VbwED>kosur*M<38~!?81_i`MA* zTCSHu-$)mGWp31R35sChY-6j&Rt$A6cJ6V;OFt^~V!Bv1=_~A`CDxMSp(Ghr%@pY? za4>U;i^BnMvZiAtOP~0CJ;jD2m;=9h^$j}26Maz)oF!JePQ4ojLY68~A?{+EKjNj! zO=3>n#n3Joyqd_-DL+lfXcUS}tBy`dYesq%&d)l)Hu)LhT@Ozt{|c9Lq$Pw42qAX{#^E>qB%xhM39Cq;oRF4BZoaoG>ZXb+@02(c{>9z zQ567Ft_wZ)e~yG291K!2JcAr*t4*Hu;EJQBOLA^#mtcOS0UWZ}OXp^anZ-ir z(EkbhVKA{NtvSt;?Z`kddE78uGW@6EGLE)mw_$fI()M3VB1cwXs1j4LpCUa!i6b4z zFG1XecopJA4Ce;K1&G<2b(GC_q`TNK8>ux*wC3LnjM?@}GE-{VR$FoCe{FTiZ2g>< zC7SD2stTUD6EyuZ_=}eE%Xj$LD#Xe*2j92#9ETNL^KMF(Eb2C!b^I0Ir%Q4{FuW)D zada5oHT?1oSl`(i=a;Raw{2!}3t46Vd4g(BhUo(LhESu*YjCJ-CQ?y1+AUj*ntBOu z&`h=!Hb=M7RCPWyFz$9!iZ=Wsfzb{B_pRysUK9Kx^l(?vPr z0{;0RJ((kx8p~g8tuk z`ef-9e|V=)h7JF}clxl4O9B~_yP~CQupJLNAfSsoX5zNE>_+$B+r zzGD&znwW2S3gpu|+ucegQ8&k&EGPkvdeG+y8)t(|9f>E;s zV-Qtnt$526V~Vd;rjY?c`}k6>Ff{q#&I>23wR!zXRcW2YQ0kj(Av0@I;4n7`PbJAu z2Zm=nUS>W>EXh^Tu!LpR8p!kIw4x`bfA@-^88If#%$H`4&NUfoUfTKH2~$;*iC8mh zV!;u!lXavAn8Jc!MX(|CMCgUUm|`zp{xtY6?L+)20@P*lCF1Ad&HMx65%6$6f%pjG zF2sI>9JKAB)7Ys_`wRYcJ=4;cF^|Zg>}g_f2;A-ob2pNs$6}FNWSBT9<^j(e0$!UyXLf6A9frRf0J8$dDVAS zpOfSK_dAyCJZUQKT&NLuBp4yCr+%|R3gQ4AOPp_^YZy6|sc#+*_rN_ku4lv!)Cjq# z%+^RZMacb!iLcY>eKV-vT!LA9L_={@NwLj$nO%2f-aPsi2a{G~r3CNR&a7I}x3>L> zUYE(%n{9m;9ua%qh-b0lS(e;<*XWXhQKn3+t;v!C-)~j!6`J4}O0rzULmL0;SY7V6 zR*#vaT^7KcR&6dv71yxNROhx%!aBKLC5;u1k(J+0zQLhy{(AD2;Z)^0AT1B1J*Sbj zTCuo>lVN1V&HCmfX`J?SSY@@krOHq|9enB4E3LyXqbh=7o(8p0aa()3lJsnR2RMGK zlXa27z0GIQ2G<}ps#aHz3eU}4k!NBzDcLu$v!^!Py{-&52D?H-Hcqj*lC?K$km}SV zjK=ejufuPay;zfDpULECGa00lN}40rl~#GX4B8w`78U#oTOo#iV`h}N&>Niu>E z6Bd}Cd++F9%*Zog<|R{@W8cic`5M9kl>cS$FMqKiW=BPf&?XD%Yk$n!MU_|MhDf+n z#yS1Zu<6E=6jzee3FF7{owhny*89MheZFQ$;3zM>qzHs-4$95YJwuVEVFXO=kAjcr zzx_<@_sOp-VUrXuJ*lu3&-sV!&Aw)xma$F~kYEcQGT-is#q*bv6VsAl^0Y$0?ol|L zsDnGP~=P_rEMp%zs zQ8vy6N09>hNiUI|u=d!y&kV5zf&H%38wzmhS5OL8ROP$j(`0ky6%dc;aFy#kf`dot z+i*#|DBpwj6KxQ2uC~_!`?~BXoR(Z^Kkk3FZ)EMW<-Y>K5+GP|6+xIlfhhE;-lDC$ z9RO|R^8qsBzd*X^rvS+^Y9KQJGU_Ubpgm?LjmZ;x*Zmgkv6n-&B~s17GbK6~&V{{` zN7tJ?qxnM5=uM;J@K<+V(4i+;8O+5nuV`P(GWSRBs3kWnS+*o<#tkz*nh`bghM7HT zZmao6jj>2rwYl&@rHN#ClBE}eU5@ir^5pZ5ou&*jqQLU8Xz zU%LQr4ZUrSd!?EZG&szJs50Y<& z&vCbya&2~NwUe(OI1JZdJaF;_e1B??hO37hhbk|a^d6(FuiFIdPTN+u*%rpz&p+G6 zFxTmU_!kZF-_#8dXD^r%Al6>n;FHR5ljKN~1hn{EYcWiH-|+#uh|;Ld-d`zq>ZBdDK_piV-Ia;?QbL(3gYfZCv;ULV0+8^LS<-01)#;UA$c z4Rf-`UWWl$e--ru5!AOuP$#2FhK71+XrW^cP{(Sh+ajnP5!A7O+pD2o5Q3{J;8HZA z+pb~`zrvyj-W0(9s=?PyW$vqJkm_j$DfXf{?)AgLCd53Pv0qlCK`I)2tu-jqw(tw4 zG>wo>bl?QM(KazcIu9cgW7ssbxQInBN$L}FI4+pd0dI3(gzYv( zZ4vlxfM2Y^p9l_c3;;aS3H!Q#@1xF)p=3|`suHH#geJ@ynIs(u4#oY|EbJ(!{G3f^ z`Ag?Y>YC>5&7M+#;jCJu1$#6-CU&rioC5i>UK?W&Kd$burv1zQizenFxSM5w_ z+T@ICI_5Ms*=9sHRnJIl+B74k>DY{B+J8lAE4A86)K=DM)pNA!mPqyWTJ;!I zkI`zUX|)?7wWV5ZDQZi#+HqQKy;j@bGs0m<7>K}#`ioZgc%)^C)^Z4HhiJ8S)Ye^; z@AVCK^l!GqWYT}_K>TG5ZCXQ@uRyE8U(~F_BxQA}THVwL(!Ltfd?3x&TI#i0hp#sV z*dDOpZ-4m0kAg&2`iWK3^zQ~Ezl*C~Yz7^z%g5$zfslZB3F7xLRc0W)0qI$oE*7Ns zAuV9a9PPuAqe#Dm^ai9koIQ@gtVu+=3)^=t+Kxing7OBGbAw@H0sIKeo>fQ}AZ|5dK{P0{k(eK%_PCw(_+`EPt~ z>tsh8ktY1jF{zHo(40#kwC{l^J;6~zNbgCoDJ4r!;dFGIgIgm{9_Khed0bT*2^3$L zn@aYSiS1PtI`)h=$g_srUg6+Zi=GOH;OR>OMTh5-zI^-j6_T6L{Gh*7OPVLeDTP2q|* zO-SmrXf19oiZuCE)A0;aqShqMpQ1IXg5zG^AX^PP?tEXfjWbgb6$+s0GL`d+0Dr|| zzAq140Zw2RbGC*uC15_neFy~C=9u8d^e(PLmF26Vyv7LHc@S~s;Z`bJQBQiIfmU(Q zG7az-u(^zp^dO|;S-K7t1CWV}ROBITh@`DhTVkXWP~~8z(Z1utb_2ExupNM{{#f~m zT@&b+wP*(gwVaLQ=XAh(v@jWWMWFOlkFJh~!V?dLCq^pp+g!0#ag{HaT;(CT3RiaW znHrY^x4|R{{-5Y*Wr*v{x9e)y&7HP#wk?OwLqvec*E zXKVwJrAX|!*E2JtU%e=XkQ?T1*A?+G$-g|*n}&C^Qm2r|)#m2CF*)Jkp* zGC7QutoK^9lF30P^sy4^&2e5wlBvs6jw1gl~VGK2juRrd)vE2krys-O&-f4gR>z7i4&vZz~e>O4cYs zPE`lDRc{qGr=k2hED6Fk{?@+J8q0=saCUv3+>vQvHMIe5tI=v9ES>M8af8I{>D2+# zShtniT2I2|$v%>2>TtsPV9+H2*5e03w>92T&rNl5=BQ3q-Y?K}g4Mhk zB<2lh^THSj1MyH$Roftd#IK-B2Z;;xofw#|)ig9noTnGzq?WU$b-`e99+z`L-i{ON z@F}<*6--jO73=SeAvo0;PD91wfTS64P+~eGC-w7k%>lW|-8atMm z+sN&%MCm%89{YJv-VwM0FKF;FfD-|?(M&i7*GGd3$+zPyo8cvrq%yph6uNr|&We6g z=n>%O4=7Y9f!oX5ifu8E_Af;GIfU~orbriiue9HwwSPsSlS{;0lSf&&w*+sS9r49! z$I}h=3vwyGG*AMU750?jdpWJ|m56J(%nN?;8dmzuYlh*u9YBl^hKVDL`yr@iW4Sjc*ctr5axWx0~aB+kgx1CiB4y|IO!D=+#L_XY%5~YM-oOY8O@V?>V7RjquC$_^3xYyixYAd0 zAFsdwEKuk>6{3lEQu<8=&gl?eX0f@6rd5XH;z)c`B)+dw%&$|uL-vN(^YGuWbA?gL zQka#+k5xZxWnmsFT(e(3@ju|BDvbEt4TG0u8I~OI^cq$EM1%hV@T;-BT=@Y%8DTa` zXEYx`mG-C-llk3VI;aZVz0pgjRf*5W83Ip~C3X<=1v%)am#g6D!iQ)-hj^bsmcwo< z!6Vv2xTe|y5sqp?bCf5>A*|MWWcjI}0PO8pteEw;t-K8%PU;7IOf#7eocpf-9jB)y z3OEact)Gn*=W@||0(k!GZ(IRJbA6fhc6rSa>Q=y>+DG{{Z+iB zuFn7Xz^)Dpx?Jo}!{7V0ju)ZhL`N(-HeT(xOzZeRxQN~#9p|Cj{pf1RSUfno`U>eC zNY6m}6w*hLUV^j*By0c)SAJoZO^`fcr$PF~1Tit^w&1nng$q=m_qi5bJ&#wG0srs` z;(ET>OV>}t3H1@U;POq;%`u*I$NL4b_#3^(fJ>rIFYTNtn#yhXGz{PLMnR0Ho95ey z1r+tN{Dm(XZ#)I$hrJuy!GIS*C@!jM3^N07@hINrDiF+-(~*;~5Wg6>mM%t>2P1fk zuXXVx(a6>LFiN?OxHZRcQFOBQdSp2o+}I_L!|`?xt)>V3a(2lJ)xIRY@vL?< zoX{ALqhT|d>P%SGB^Lua4bU0zr%MIAs=?o)!3TOd4l0_#AvJ0PNWx zEYH3*mW$;o4`Kc1INe4(u^g`iLq4$ruLH3K`6Z)i@nmr^4_EA+lf~IW7bGfbzELd9 z?UG*(ePuH=-lCno3q`Sw2AsX;L1>9ZS9gZa%U_4+eK(5M={i5($u77I!6PywG&{_6 zV-#yJM`{p{!pI#(e@oCW7n#oNwX-w0C~X^?X77r)M&bGu8^w|_ zT`;U_K3IU9jg*&NQw8Mvh%*tdM4X0r8sa3x>>6u4;x3t8JZG594Rpax;xKEMY)AW9 zs6P&?fE_Wrj@BhJ;~s-+r}V&0;(*L9IT~;b&pTTE=16^815Nw8SSwtTDZWnfcd-Pi z$`C#9cdX|Y@Fa_4{B*z+v6+9v*ZSQQv4j)O${(sUWvW1m&sbj*q)+fU zh`d43HY@ghS-vGAH-zM8Lmcb|Jie}Wi>u*=g?n2cohl}AeEXc%wYP{a&O9Y(Xzr3< zfWxWD@m)bTkI7+Zj)TL_Sgm}OkLKJerj=i(J2;omT@T4^H zDUnH*DJbJ^1Dj9Bnu}0?umoY$bh`LfF(+vcUhX>>{8q#+#Q*fsEhvv?IIo;!FF)M+ z4azw4|JQd9&dRtKmvWo%>YL*w$#0%FW8N&N0H@`8za3s3r{!n;^!?k! zwnBEL^2(3#j9%lJF(9HHGL7KC$2~EPK0(^J*NnR^4d2tG~i;2!SU}qmILo?fR1)dwr{FVfR6#=f-d<+ly%87H9WN#EGAj!9idxh z;A1Uq2Wa6;@h2W%)Jdxr5Ao)9dcIm5#yh{D17?XWkX>l!Eb$ZmCvWSv+r?>I{3-ch z&|tAUxrS5n-$FF)PO+bGO8#7><#&q9ji=;gs*z+6HXNtqC2H%BcZvr&JsXE*%UXBe zC64F#phER?#7C>1f~nltxL#X55*v+JJ>ub5lDG;7*M18ra-1wk^b|Vcn~k3M)e`&; z8MO32pojSB!8ver&cma%V3>9x>_OOv@MbI_A0cM$GM^)!jgzD=5$D+m`5rO*n9zR^ ze`P1+XT;4j2swk8-6HEk%!Vti%@qr{ zK?{AxrrERS%uH-D)^C|@CtGJG)=P4UuP?6iH@S2co#&MNAO8f~&7(_5fm>%eC7<`v zvv-SAr}Xo!v>9<%f;kK&JJ^UEonptL#YW_uqHm09Vpa`i>tuI&ji6>4R3qlb4$dNP zBkV!Ihoi{+d5{i4-Tc{@1=aM$dE)NEmtilBYh0;~U$@3MjJ5%z-3_>1ia9dN7<0s< z{X{%nVl`cQk7(xKP-yc#uv4;|TatVO{?@R?Ez&#K=%;(c$t42HAA&UG#$NmKtXcMW z=@^)=#4gD)*e(z81;mm}wD#;xh5bk9yc+RQz7|YZBW~e0o~JL)7iaSg?bNV9tm2&= z^ri*khw<&8X#*r6c17%m_SXD`;%+YIH#T1o447iZx!C!TRuF0tCUnryBHR^-Q?|Iy zxK7C@A(r1OPUb`HboagDB)$l8%YEVq;Ww?`9@VtY7a{F)c&yhEvdA^_-lh>VyXWR?kcmSimnA1>=x|hCKD>m{D+>3cY z%*?qixV}txg!F7K5FL-YL2Tvv3$QZp`&9Tw2;{81 z1FJu-8f#B+#vjJ}5l)4(D;d^D6}k;AbLJ{O%L?SrDOa#JUBx~iL@(AsO$=kFz1-rK zq`&*>@u^@NtX;Z}S>`kHa|->*4bAFPFU?#6&Fk?XtyqEyxiCm)FA-<)P@dbDKxvug zrQRiCKA(oqP&|ryF-XfF6=(8a2I!VY#VL97yk^%K*p9B(Hqt92I^#(!UggBhF8nhm zlN%1U=07G*;Q5U~`p^^5_{Sfl8=nAwoRdpJwEYQjxA~lWI2bG41?#CD>(ClsSnFBx z7)RL0q&MI*kW0lJp|BHEfqAUof>C3=%|bj6p%&pWgy#?%5MDrd31RcW*2_;~>&?F2 zpXKP@$X34`xJ!1&>X!v~$(&W^asKIl2t$0(hSpl2#)mx*^cj(Py6)t#t$a&uZ4Kb1)AKfi>&0{G+l&E4eIxuUyhx z@Gi?=DJLVTFOmO4K>{PMw1w zn3j{hY=L4o4BHOU+0Tm84HDWi95r9kgU^b)lWtMMY_YFC%oa=PTN|GfpX3d<`{JZ5 z^@M!NM+ely8+knP0`do8V5o>9shw*mK> zzlIb5`(v(wXkWH)!xPHBoLbk3OCbio2eaWiv5jZndTkVE>2LC$lXC;~yGC)?i1YHe zP;4{K2Vg`Rs7)gKS3Kzrd_@Qq2!BJEj&K*kB7{1GqZC?V10CNa=4Ph-!Dzvhu2n5M z_{Sa$(x;omPV~QAr8UpvM$8(>y}!zbuFAcg-}2;9V4DLaXeDCC(;I+!#~Ql*dC{7E zNxnn( zrTRtQi#uIr+(uC48umFP?NL{PfO>Sygdf)Vt4Jq453!;FLN*AQxQ0IYqSyHfA>FjxBrkn_gE+zXae&zRknR=fo;l7_ z@-USKHi#vKrRaP+IxK?a@INr(u*K>FEXZ$0MuHKup$Y0Bh?x&!3f9m&Hj4c+m;RTM z`&>&r7WFb8-L_F|8x#YDJIApSs&)<(YJ(?wP0ZT!_?kg<^I2#z_{M~$W@k9o<4zc> zJ1e_Yx_*d+qS+~cDQ5Q zb~}upXXOPUI_+f~6r7b;g}OCa=h&**<)WE$^6;Mm;_J`CWMd{bYcG-Afj)^zdK9#5 zcmpqOHK&cMEu^oCH;>=-+L9@dux!{4`2_td+P0) zJ>c%R=EmC-R-Kj2!L`j|N_iJPxDbb-O@u)_3y@ES0T~H;Ya#+XKKWKWUeqc*m07FOP{`brFjE+AZQEe5tS1 zy+u6D2^VF2MsVIX(VXT|-Yg^SXF82Gy~p%gA5sXSwk!0dZDL7$VlaNIVC_SOHJ_39 z-~*rA#1VC8^q8a8^Y@ zJPsq~n^=BvFjFgk7v&|_l+O$1YvnspJ_Y69MBrxz-6*dlXXKY5KfUsrSUjm6H%Cs$xj{PRb+NQ6Hjo2M6O=^AjIXJEn+;MSToFFNRvA7$8NYxh zAA!092(5P?-re;A*cNa2O+3x}2uz0A0S?^PK!18&95C`D*x$C{DX#pO_8p^X-}^Cj zYOrH2LOd67sr{mChH`RN?uHz*qjY{l$G3>~yb9!3;+P_Uopc&vFXBAJ7ZIP8k81if zpuhcpwOtEbRMpl$bKq=gL>vYmNT@TQM5Z|70~L)JFhhIFAKh7 zhi6g}myIL+e)4|jejA30vbm=+|53~;Jt zH_FMaF5^JO={l6W#(FygRY&Fa5<~_9a&E15xAVppWx!H0xsS#ImhVL?b3+IdUgdN#lYhOJo6#q z_z=??7j>+ITaVe4r`H`bPWl`o3vq#!?${v>?ZRa{ydQYmE7P5z;!f#uw_dHP zhjF}?rdCY5Fof?i{UHyGzYL8V_3G`AWqzI>w7Q;!+6Th)B;V_|%dcTa z?W3^Q@2J=2;HIj!hCOPh5xXQ@i?Hj)s0+B|oFJ@r)v%nSg5{i`yn1%fMz`&fx@2Fp zJ#d>8|FpGVr-EEWGbRY2hW_9E3QKT3J8DxGbcaZ=f<-Y z@E7i)^S+dNMeMd+l^4+U%xE)*cb5-}yQ4eQv&U>F zW8w1MH#f$ObH1praOBq4PMf}x-V~p^LA%uW_VG2t`X$}*wQE^;`D-aeL`vmusch6I z*w?)w)nef;gexPYP(}XBqa#CWSfx#fystDe^rg`?>>5m#AZFnF1V#RpbCIFS2CJo( zrP_S7WR>Eb8a50@kM>~e6L-UyyhqAZgt#pDX$+h>DXgoPuT4 zUSxR8O5^uROGq&m!>g9j1ACu|y$VBUD~qLGSf=iG&@YOmKJo2f zrIlM)^9)dY=6?Xn{Sm@nw_Rfb_Ck?E{08#ROFWkzo;nmZSgu>Uju{#4H}Kc^|oiBIm4=1ywf=KptMjSR-B~A4@rsQ30OZn zEH#O^AsF&K&{{0UCEs)DVj!-V{~%2gYppcmN4%u4H<b<(IlE(Q1ntP5A|JcV1N4ps%LJ2dJny2wU5op@Fn z8p+2X9SlOgvF(`*N$B=aACriA?|`jS60BE@Qshq`8H{1`fQ{}rD~%0XU){V^;T^>@ zdU@{td{Rxr%B6|3`&xVBJRoy$q`Z0`cSEVI!lpS~(CM=Vj*RXmhsMjHU7_x&)6J7_ z9Yf1d4!g#~^e+!w=uX*B4&{oWI^BGC%5XXCtd&-jOBw2aS#&6lpPZPjysSd2aY}_0 zFDegNVH08KMF#U28>^)8>i4bbEh_fDm6B?-%A6+Jr&`*etmGy(bhS9dq9>}Q9pX=K z(v>whqNrovJE*c2?@4E<5zZPFDTw)X?4J&?U<)+ieG0_<`V6gbA(iW}*RhWs;<}GA zK2F8K*XpW_j8WC8KCA0khJ*L$(nWMZtrQ202@Y7El;Q)rS?8yXaxxm=ZvqHd z!}$SJfM9?IumSOrHO9mB(o~=99hd{_*c&j(F&w&nxj2D~fn5uJ)Ov+&l;i%4xM;*# z5I6W{9KWky2Tig8h^bE1kKsAq!?L3>_zGJg$31K5C&%@bg?s%7O9F3b-Qm%I5Xt+J3tM+qfTNybg5p+pAmQ=Qmin640Xvll#2;CTnFa=9)?{ z6|Nqx!i>!e+(5WlaJ6vr;OgNP!8O1&!R18Pv0j!R!~5d~ZX+#hz$rhzYcszAucD8I z7Bom9q5GSL$rKNjYcmwukX(P7^I%sKEkz1(a}&MTAO-h$9|~5SC$4&bjfsq>y^4ii z9s7F|4QrIb$p18jjp<)N*EdL=LNc2|<@BL4=KF!Uj;)0Tl{*3eJO@aF+Sf+dr-+F3Hy= zT+^wM7oAsFsPo@$A9H*w`!2Dow$I&R9h@88zBvfmdJ{uO2v%*sy>}~h?Wo9`IxQ4+4bN+y9k`6E9 zU!1VlhoLy!O0CzVK10#wPG5*8J78ow=M;s1byatpW8eo;{9wv;ZN@X<^0Bm=ph6Rd zIqB42B@K?TPB>}KuaMn>RgUxQ=bJX!TzOPG;})N1OYu3HU!_o_e#J@aZu|{drPlNQ89Jw3{rUNCSV5g z$*g13?dMqu6dF}K>u^eZo(*^FP&U^cmai^emx6(DhJ*SsDHIe=y{T!b+L?pr8D7uD zc%JC>>{V)5#8A)8B5I=y1(n3XLZ7JlkhCzR9FypWsGB zx3)J|#U|kckyh84MAQv_41IyYyx43Tl(YV3r<-lkLgHCox5s?)ZozT-I61j+F(ubfv>z3`;ehn>Y`iPd`L(SGYfKRg{foI zYwA;{jya7Ruv=1pWwRg>F++2g4)P^oexZ;Unpq<(ulbT-SD-F*x0doMEfIkA{ zO$FF&vVm0+#EI~yw1;cQMgx95+(ta7z|F#Q7F>ltBvU*d>5Bs4(ZXYbYfxazVy8bz zWSYthy@zw`8wZzWmP7xGjvyq&FBCerV2zzlBcw+cotpp!@&%#=a(RK!h9D$0#LRxN zi?Se%8{kf#gT=+_>C??zZOgwM(FAz%rf`BCG^QQF$3+>pfF+F?srxwHw_yzYX54(> z3t`?va6G!gm8!%mRk)lgQBHNjm8uM>vd_b^Nm!zTjdGa6wMpx6^ji^ZW1e#bofCC1MN_Ge(-9^NVG84R*j$xfXaL$vEG;WFz7-}3MP#69Vb z;~FG^$ak6bgl|3M7N@#{ATz7OBUCEgY}$m~h0749aibrZAd01zj8-LCrtq!AK7%gx zCv9)58!po${$xtP8<vjXB@(AK_!NgM zB4&gM=5qf)98q(bQV5<$G>AfXxF-Q&fWd%A04ad!fIk720G0t(0@eaP1pE)681VBI zahOmEj|zx>g-hUCFT)SmJ)g$4!*e*m=_3dZKqUN1?NH$?TWP0jx)M#uSti1M?iWKncE@CK}wJ*krARDHp@YKw72FzKQQ*VBFV@oK=WjZS0{?)vfJ8 zW<(5V5+Wk;^(Xb(TK0p*f1SEOo$tT8!@8h?X`@w}I;;-LuVuv+s_99(_$|f2Q_FJk zF`S-cXrJ9yT=UZ4!zhAkl{!C=nqe4MDTdfKl#H3JST2A3+jTca&@^l<>?F+ zsvCsrsz8y3jLcq-CY%g-0@a=bII-d%_f3HtIeyc9CfwYw>wzW#a7`pXGYp$ZZcj5#%I6#i9v4mQxTaH8|8#fsw`z5_

2v1-MIxb zxpvFRxynstGdtwfun9P|t6`7dpdUR%2B_b%NtyxZFv?Z!sXsd09xF8?JR%iT9R%wY z{Q(a&H<=1eR@`fknm1XWMjG3fOcRqEjUV(SyATbv5iH+M$M-<(AylNDFji07+{yGbmdh(UDQgkL7m4V&^Ii z(~~bmTp=jalM3;$jqV;mG~$=|*wp~CQOViqVx@8AK*+RwPqU|-G;A<2ixn>zmC>Y^ zA}JUrZOTu5p>tQww%fgV39~vfFRR%`d+#y+?}iBP40vy#DkCtpLqWF;|5YKW%1s^e zs@e0~!G}OsKVNiz7#?2qT(9KK`r0SMa>dMz;%&M@@ZW6R@KuSZwQw%FT6^p#FDw<9J}#wED2DMRp1{gc=i#pneetMh7pfe!4jLGz_1*QmK(D%0g2Oq(-c`N=L<$ z0`)fFE(SCJmi^5~P`!v73}on_J{JDPYFI+vqfNqQ9GV@x2C%L-7V0!G#ilGRXNgTY zT1`ed^M&EGat4Ev(-O#_kZ&ODDju}~Ie4xnuvn!Fz(Nd?(5(q%W9v`7^R=hYSLxWt$P9%0 zwg|^(4E8-nN<+@VHijr)-l7%gdX-e@^I*crW9huQT!+hU>CM6z6*iAxTnNu-#9rsM7i3q3I! z15k@PMpc2z$S?5kq$Ir&t(6>QeLXcWhj<-Vc_U4jW@ zMX&d8wmtn7%`5N5iDBjJZT_@av)J{t5^KB6J$~0{%oAjD@?aY`#_^R?w`ks?1jVq? z>wD}GbEXhf5RL!>JMZlzcIG<4|uoWl4&UFYc)-pM*4`y)pWr$4C+FV@%S|2 zrw}*cBN@+}4dA-{$27aDyo2#5~VU;@|#}k2s9g$!?p1GTuZG3G8CSoO5fDwc%f6mD_9)6At zPz3OR3P_dYh$d>CNe*PU40FdJQ!)f~yqcMAca_`S=5`S!|9JkMg421o=bZCTM!V9) z3F~nNBL6fR<0Ba)%|E*GI~*|`gp3SO;&xMhz|L?144(qD2;-m!qybU@hC{~V^GR8I zIkWa_2-Xnjow@S6J7uQk9J1L}@S#?D@qFik>499*XJA`IHy#18$6&6ByP(HIw82F* z%^IWV9IHJE!T=mW;4iHTziX}Og4f8Of@2gAivD!mQj$fBmy+P@JPQot0&-(r z{if&-2jsTu0GeVWeb$x?Q5&U8oWDQVFw6VKo!T3a?cdeNz2H-;ep7P25?c)iU`}? ziO9|c0Yz>i^!H4}t?i}-t~573!`<<9Y}Ib``d`WHnVuog(-}OjArx)b-NmsySb)5j zHq3*CNzaet7n*2cqS)P7y_{4^Lsz|py&|HY1*km9+^(D&S3EtzV-qH5=Fdx;`|^vk z=2PcNlJua)>n9k}Uz#^x6DK^8U>Gm-A1q9GE^WplcLF;8?_@x>93mu)ebg{P(8Os3 zegA>c_#1o^3+|UbK4GG#Jddl0Mh_n1?l0PwwJ!?0^U$mhZ>~LU_&b@Lt$!GjIDp*y zfVDL*i-zF^M)>c2A5!q5X93#kiG?Vq)$8CdH@x@zkX?zPLk|r9S3^k3qbL>dJMrCp z2nhr-{qINEs%tklfTuxCxZc(Xa1oe|7ZJ5D!4UDE4w|`BfCIqWpah6pw`r?3Xh~qU z*C4m+gLQr*2l;B+?@nFv{PHK5>lJ8TQ+R67xDYeMqPB;hI}NIO179t)szoWQiv_sHTl2rL9~CYeA` zm)DBILf(V#xZrALp$g+x&X2~3HDu+W2|8RyZT-`yqX2+R`LvdlXFYqjf+#tJk*j1r z282Jln+IIFrw-Oe?X@$(MS$GgcgHuiWshwGVdDwdy*b(3A&X|Y-Y8C}VMcQ$D-oUx z&?2nGAY?!d3jv%W{q+C7hI!9{0Dz~4CNF{%$C?S!asp2&+6!riJQUIGhsmT-ZvURloR+&7HT|=T!d%4tr)|nR zV5X_L-|^>drF6j$WWeyOSHW(8hYQ|i6d_!X!7mRk=K=>k=LR6{v-CHnxk~mPw3!iPWUpsWxSpbt0QVe~{a;T3CL@T3>L6!S z?%I|WxYLLXPJ>ZshSt9nAS?oKgemuo@K$_~v9;)f&rPH*C#RwO-qKYF`Q5xuBHST7N74?B6{sdl2RVVTqey!>tJK5nmjp zT_8(yBTV}p2uqO0`;9n?-md=!HROO=mY~yk_jcY{^a#6MQxrl6we_#C7ph5tn;&-f#_>!}TU?4I%XKAnB}%Ez)q%0}Ox^_o$y8_$Mf00otPA?t|H_{WI_|3IKTUrFrqx@N-LoO3oc>>QyWjW zWNJ(a7@Fl?!4|qp_E3;^q?v*|WaJbWZXz(IpMc~&w(vSAU@i(wRV_!2l8R;oJTnJ9 zAPtZLD5*9cC?f^F*{Nq-lVfqEOPE?*?h>|ohLr#3cw>1v`LbPhAaq;|fVPxq-TLk239bhoW0X_q~yN`$9B80cad#rNCdM)&Q5a-=~-ZXlsE9niIkggDC>5TwynoKy0 zZ#C4l6!~NY8n2%xs}IH`lVTZ!>@;JA4DI)`E(Y*yK0T7a;vJfAgU4RTmSTfQ5e8Ol=k6fqH=L!>%mtN zgR&kLpKXD#E#7BwWPmgr_2vP*2@J%u2VqX)Xi((w!~}2j(Qqip8gt}J z?&_-Q?vbjySIcSDE4h{YO3mv+B&Q$fAy%$EQ+hf;6FDJ|f5=12IpIEjbAZ0f2{!HO zK&G@UKreGbf3x9!p4dhZ)3L>b>_%t?-m!=$1nCl>>3&+y3z>Y8hgR~!eN|eIVSj6h zP(n;iWyBQoAxEzN8TRT&>B~&SB<=BsTTEnYg{~~kW|DUL<1O0qY16dG>nWXdGad%; zh&jWP#bUF=$ zy@pW+lr&4`pdNL+SP_K=n5EPpYtFQ3LnF`tvlJg>)rX^cvlJE7SajtlX6n=mA3%j) zp+Z&}t8~%%KP#*4N7Dttm^@j1{%Taunov9Fk0#I_f{)ANPCi3|J|Czo$=Onn1&b+vEWEIKt`$W9!~@&^Ak z&pC^3$rr4KJpc7=yLT2nnlG44DSt^_*!7%-y}aG%$dDrZG^IZ#LG>)UroS*+`!w>O zMNjn?X7bImX!(u88~ppTC|@9a!rIsYu!lF!rr#6_<$SN%)I3mF z6;(K!CqJUyC4duV(>Dg9%!=7Gdyue#@0d+r86=F;UO--OHq{OmR%vZ>Fbe0;y1~Ly z?G)hi=Fr$7LJ4n}OD7Ex-q5Gd<;e{QL+8?zn}h~!1@MJ)>Ass#=h3-TJ5(s(HTSj* z9V%#f?QQq+WXip?ya*3ab1&UfBuwC27gGH&VUM;Id7s})-ybFn)n?A)$&h(eTMUM+ zz(1cyw-pP;+8=?Ro<}bf3oEo?^LdgvpDrFQ+@~E5{OZ>536T1K&EIrr#p;<-eFuN8chOviQtf&^S`rvhfySBd3k7?Q6i_ ztE5kqp>d`K=%EFaFBeL*Lx7hqprgx$zS;@Er!Sx@%7sDNMZi}spzoIp%c7Rv$CD=z zo<*2_A02H+9bpUUQac_hd11?XyO5~ohxzC$|3LTK7KUEuKNhykn;@ic{L+Q=iGK?3 zGdOyp(8jO!P}3d4T7J{QmN)JYc!4)8YT0*}kQb>nFp;^arE`|hw_EyruZge$TK^3a z@iXidh$5eZnCdQ7c9xAA`~gco(1| z&&Ge{{(4mK-M2g`MEH~EXDZKj51q0^NaqiD=&~ikpscN)Q28Xae5P7{wTtg+$B$~6 zS`YnciBOPIUl-!{C(n~={wz;R-v@=sT;e`oig_Rro6@EK_)H|(EN)MintgQBQlXl+ z-A~OA3H7|$N8fo!ILKG|=!%DhE&5dHtDwF#O-fd1-+u||LaJm_=$L`fYH*N-GtO}mN2O9nr6EEC3a-RRzBg2i|?c#Y_X>xe$`QE8d5FMb@J zvNr_uFBLtf=8;TWx>V+&?^X%LyyB*OH7eWerK76_8(-sK?z_a$l-*M20h6 zdc@u0t;PuE$J|e|9}&{^t&4e5ghj7;F&+1aa44#~)ET@l^}%G5v%7RYNV8T7BeJ?n z9|yBZ&$7g(?$SYEnPpaB?*&(yGsrl??;3>In?YK$Qb-)yUD^qX#O+TaZ5uG__UC|Y z2JN8j7>Armo(rya&+nz_J0xLwz z9u*3;ZQv$7Ko37En9{mSVL`3kOlFlBor-)c$eDQQ8((R&VSmlk7X2!rljFGn4L*j^ z)jW-+uNJ0g4NG`3W(i%fTFBPc054iX_b|LNgdb-KmfIl$^+8~3~OIp&O5K6+d9VldY@TJ+c0w<(N7Zp0MPIx~tO`556GZ`#8 zv*wlF#5p3rGEKTyp(QS1c9w(^tq5%hV;)4mArv8OLcAHl1e`qB@{LQ-ad~OdGeIsZ z9IW`47Z+y`o!L1e2h3ImGad@JWD~M}6T0I@e~Fo7SV@|+DM$_L1S6VK7o>gG34MV* z7^G9yLFTniqwCiReR!>}<={Hub&hYF*0PiegLuBDzvYb$!mpyfjn!QgUF3L>ZhKys z$^+^*38#&Hy=g`1gSQrC&utiIr7c@t z#e$~qn8p*wboB8<^oc!~GKPm*4(}1}Xr*{3z;0h(c2QgUzpDGb3AnEd%_`}Jls;; zDs*U~k}?05rY^utOqNausqLW9Y)h8j2yU?tA}5Tw#7H<7st7)B&n3T(5%N2XqB$9J z?pee;jHSTY>-$j1?3*l25B4VO?M1mAMg!9CLd<0!gIF|T6A-Jle`LNJ@nq??Af5W5 zVAUI>@L*(9vNY69*MbM)odFi_<)-g{D3}rdQH{sA>4i}Khlm>`uR_xfspS`;yiq!) z(9ws4w5<2NS`u%LFNoY8Uh|40S$aRf#MnGXjMU8=UJu2+%_zO;r8S3yL?K!FGC+46 z65i!ERnyu37E%go@Xm@wLPj8zAgn@IkMJVGplYm{S`0M6yAdM82w4XBTs7VIZ((g= ztTa*~88PKK#6-9{Qp>N4m0nTsT1c!k4njXxdQ7R>-!Yt+cDE98Y#)pP;D-C@s*i*$ zAy(2UwD}_;zRD=Q5d6XN1Nmi4jJ?BXl%5M3?7xgjL%$m(8a%A#M5;M8!3cZDEQ=%b zRLdc-*%;r1HZ{c)6I;qy8!w~Htldu`Tw5~Pa>Rb2rSo;P&L~x&ykS3~!#@_LRb@hP z4Utr0btTS$HpOO;a)Z+|F3D3AA6spmyVbN_YT9_Dbt+GoEzUYpZ!}10LBFhbzx79a zt^YF>7uDRS{jABnrTg%o|Dbq8O%ssTWVR%CvGD{5ZyoNFUk*B)I*Et!Pd8?W#kBep zAv1g3b#uTd4Go0mfKkc_{(TP6!=DI4#%KGTB}S<#poRE_C_p!P5Gwa}C-G!`vzCNo zUUC?EYkcgb`DA_2Omaw%(pc&9K#y`_VFT&1+`~;Q9MPDCrX(pDGU`(yZF~|2v9N)a zz1J60#^5ZUUX9Q2aoY_|io8Iv5ySS$=))g<1`OBSfFA#S0|NeY0*TG+#j%%GR2)qV zy$CtjP7i-7n9PoVmKaN;Ns{DKL@Y~#3AaHn-Q?!CbM^eXFsU^_4W9{L>F)9-fK#2H zp8HI&>bm(@Y^k57eU8`_HE*h)j{00M>5|phXg^)_IYgJ%Pha?4$kLthuo6A|^axA+ z)<^lnD7jBf{oP0N4kPs?ADzllpHNfZ^U=D)kjqPawDquH*8QZWx_tBui+!xdmicJ> z7pQZu8k_B-L%tBQbtl!>SRbADg)m}blGHsIMuwP&3`p1>Tk{g8Ym~uel68;*TJHz&Bitqo*a<shGGHkdORNW9;=;ufn@G#)d`H23&o@u?w_hN<)X#p>t&?aP0s$R|$9w7-K1EDuU z{UAaH0N#Qy2H_5bX$bQX79$+{l#pSc5Oqw|7n8PxvIM;MqyB{L0yvkb&)n#xN87L* zNYymGT}Y3e1x+^1=9Rzh(rBB$rlZ@1ap?oRPgoiuY}usu%A34i%bgGhAra8qOW#FV zKG{ouVldoGgYAN`(C-QRLl`7U=lvmJz@DV(tB_uMZSsdE{Yp&wBvDwx&Q%GeJ#FyS_ck*CW=cey` zEfh?_lPiC&j7idZ<(gD@(EWF*05xszaOY#q0!c3ATrpC8@Y-Da!Fz44g-hLi*XG(L zHy!g0th4(9^xQWX$0Gt(^x%UEP5)NN(nm{|)p!LKqHl%l_-N^<8Xu{QhU^$!8YAsc z=u_VcDW#d-Fk&zp2J|K^j<6b|lo`l{ym8zEb~HWDMvQ_#JHtJg_o z!GYj$C~z&F8=x1y72b`qt$_ZA@Hj%<3cBw*VN%+6AOF?rh_UPPHI5jR{|F2G_d3g>Ircs;k6M{W!G}T7L~ZYg46s^hLg)1oV&?slz#SEoGD~*9#@w# zhh%f@Nz%puw2tj}&av9+M>?EZ>4FlspDsQsWDkG7OX!DQYm(F}2%+6*hQiZ6e&K$u zGzklV0b>2yPeXM1Yzga@u5k!$I&wvRm!3E(4D7eye>8Od-x@0I#k!vrYk#_VB|ZCt z(0%xm%B&K$R`&2@5G#q6e6ZP)q%i?!30IILjS7svvEx)X%#0Vh5wZ!Lc zV)VN^#OPC%k*SMO+Fuxbyn?R(QOK_Pr&=aj+Uj$bBuQ?+6*}~zN^}Qj)|aJJI!hF} zq>G|Xr8uQhyr6_(&aeh`qCr=#YZP2JL?DHE1N+A<$z1YmvG9GXaj=cc=PKhW*_7pA z1nHNMY;7Ai=*vAOdh>sT9tAoKfLSGDY-om;HKWPTmeXs`$)I8HDoiP7NwhT17g5HR z+;r%6{}D36Rnpdyf3KkL{zpj6*3@xkZLJ|gAiPVnjP#5f?#_!Vx;V%+{K?^(#ZTIM zkw&A&p&^6vY0Z;je1P3Il+9=+d13Gq0DnCq27PD-9g_*X4UOM z?dSPKMAj-b>ymGFiG{>29hjd|Nz9WFpxF&hspK0q8z!XhP1V^ChM@;HP6t;mfKGD(;ZhDV?~cMU-|pc}(5=0AiS_?{34 z@(9AkK|c_35ed0R0TJS({v1|p3dh^CFqt)uIQzq zWk!+|i<+%AkG#yM`(r^&loZ$jOvz#`VJ%>-VH)yZ#oIxQ?nLP~h}I6F+<1FH)4{?1 zNs?9tIK0;+>3#5q4r=PJ&7cd83ElZ-m=eceUwugT9uschzwyzN$FNSm@1v2&g-q+K zJ|+!XODfqjs&ga4Nt|~&Kd6Y3mSd%3OL3yqKR_oQ7smCB^$?4&-C3e_dE{MQzERtt zb@6o?jN_;>p-EF0hV)JJi{nB<$_z|Ck37|@!{l3jEM!X5c3|?|-x547OyUeV@N%z( z=5E+aAU{X>sPm*?i+vKQ6QO1r_J%t-EC*ZNbjL{{o4cQWeNwn#j5g5M$kjw!BfiI4 zxt%@me)sjO=}h-Ev0LW(@70t&3}2?mU!oHYcxc;7I_?+jZH)KOCBFzexHZ)BtB@nG zrH79D6}^=2qf38EkJc6&>%^Zis|lE~$(@ROXD1Y|6z`oDO)+#8QV>*qe09 z4|+qfPI(c^#-L;hUP3`v*&}M%mz2B87^hDIe7$DFMAX(P-*v5~Dpb{@i~Mbsyhh0- zjQn+#{2KdP{-~(vx{CO&k{i{M3zf+2S}2ND!D731yW1EgO;ywHQK0IZ--qOxT@t&x zd~izjU_#8p5bx7L(@qO{=0e!PiPBAf^cF^aZa3){CDdC{QfYuzo)!wZN9gv`LXXJ{ z0}1L-T>Xrqyp)UGsAm=BwrPY6UWqLmBOy1OQj`(EnFVsNohMH}!;?N3K%%-`VLI7sPl!l%Xw0ltIH{iOlUR;kt2{6d$W zfwM5rPj{Wcppbp^$QfZsy4%OsXlkuwJB-ON>7tL+aJ76RX{b+0lD7D0pR<@;RdnoG z;ZftW{vGqq&LbIpO8b%OlnulBs&6G1j)Aj+iEE?L=Y$?yEA4kqu;jhs%R%=!&|Q-& zEArDSbBH59c?q$wcby>p9{3FU^=YGadz6&nV%%0;Lz`LtkKPtFzniNK`34Ki@5b`Iw1aWo;bArY?4z;2BUY=%4*BQ^7F(jmUiQ(& zzoW)Y9=eI8maD1oD<46sE>Df!1LIFZUa}e+?W6rApPfmGFGOTZc!mleB{WL`CfSu$Qu+R>XNH|19*uT5I(m5Z>C7)l|C zRVbV#X$NsJ3a>l~Ta$n0-LAxSpWvJBI={0S}(nDQAo-E663%i={ymHCtAG8Cp}ECF>JAWAX#AlFgM**X;*Sn zo4UJFsarnl{gp206p~Y4_6{TojbG=cxn>|c-8J2Qjiimv?-WuCAQm%3)V@ls;R84= z{#hPtv=3wBX@uuC)WWcSFstB_aC0OQt+IM)YbSOsXRBqtKx#Ln#(C)(qz?Iqw-B@1 z>q}@%ZAx|BY)?n%?phCjl*j0n7kjCtdjs%^-Z6vh=?&d$Jrh%#ykpX9-EyIq7F`mI z{7yfebVGaPJ^FR(f#ZalqOVFAKB7z<<15yCcyHy@{2mxb(@%koh7tdiJLw|vIq zEOE;((TdAL+}z7@A0$U2`8zdvorg)gr5+K=_E^+cfe`ZV@uUWu{<&ueS&lU3|GVDo zjFy^}klC3aUGiNsJHw&F9ek7(5DFj5T(RBh8j5eazl67UXN2TTEQB{LrRZg0$O5r(6-z&1}XqI_5CA z_Pd_0)<-vjPKcJ;6xw=4u%;zQoe+RJn33y!R*1uCzTZ#f!8hrahkB@RRVd|l(_60! z$vs|hZ&Bqa7CMCqxeh3b4XBQZ{h+*#K6+KiEfk<#1^2TF%-$q>32bt*$-3kdxG+Bb zyS6qRibjI;o44h{RqO{;ebD8zH0)hsi{1^- z)HTE@N(Z4Tg*t($P@?qCb#dr9=vqPAp?2(dkR13Wg{bj=eV;AIrkO`b%X~s5wLbc1 z&oc7sDJwiQ=n)dDyz-Fis?s_C9{0(g;gCqEvQX35frsnkP^|v@X0db8!9PX2k z_ju%DbOyFm;|XmTLn5(=wUXlZ0 zFjx~M4MZOsTK$5~k_4#_N{4*LU#_An{K6Q+RWGx)A|-twz9}AVe|p?6lqQ}D=qzCy zraJk0QR)+n-yVTHlR}FE!bIK|pbY_`KVKA}Z2=)MCO!~_Rc3)-YdJkdlOf43P&ptB zta=sOH*ZhT4K)phzFZ$yJ)t^M65#^QM%OT%N(oxv1Qs^1D!%u#CKmYhH-3C7LS1v? zrC!PaRT?;Mfh5GRWFETff6`tTZ1ZUBPee*(e$tb#IWgZN^Km!6c?x(sAFqr^NJlUd_-+Q{cc4Wqj;g_pUfzx6PdZ&Odl*3MXdio>5~5y|k3YmZ-6p zy>u~)Rj9G`Uit!ym8-ETFFnGEP_@+9JzmQ5qBZ`wJK|Nwb+k9y{14dniPA7P9mDCK7_2#bgiT6Ca$Q(o7iKMHCqnRiX}+=ogiU4_2x~ zm0dL6fL5hBtkQhxq1hVITox(4smAwX%?@w;S8jqU5(KXGAIDqf=V7aF2G~#f5q*Sc1H~WBx9@mHy5&vF|mw4z1K{Pr4 zg=I*Qj|Vb{rg3eq&ZW2Onj-M8M^(4^b*O4BX)KeC66uc;7=m6T~s7eG{Zqg7meUW{F}}cBHggjqi8olNz|5K7yKF z4K>|r*$Q?2MD6lO}K^mLFe7R5}^SE%&sLGRAzRr;F0(et368KeinzfYtzP^F&- z`igudU!#`T^tTckl(;EK6SblhE&Nt3F~UttwPHb4rI+>3*Zxa#BU7`?OwPqiFTxAS z+7+YHCc1l*LJ~nQ$+-a$J5HiG0>URAdT<6|tqH2KRpS=TgQ4`ZoJWzvYQ2b@co^`x zc-6aeqtsV@!Vzi5oObwSIA+EYS^lRR{yDsWN{IG{(ETeA)*-x%z+S_0yoQRuy@t!C zA~4*0hhlAH%#Bw(s9VQM+k>z6dYtE^2Ok|H^+O$i~Eps{@Tc=fG`Jh|E#D{gK z)rS2;p;K16dSLG)ZoW^Mk&(*s!FiuZ6GP)XHpyocL z*wERn`CF@PgHKdvRqIu8A0a&x5E{AqNzQajV@e|l*=7dI5ptq>3tqZ@Lxi*}z&wQs z(jJ%*tgC;*#EzFv1Pe(F`l9(Uet_zZVphp}T^(@@9kCf5u^I5dbsfS+Xyx9zW)Z5v zU@t8X7qbRE@6i%rXC#a)vKDee(QLO8&3cUla|w2l15)*>+)asuG;IjRVz==S>R152 z$7H%AT+ACf%M(T{L@mD_^Czg5ryA)7wS2bEhVtKHqdgv5{BdY-8!W8P!Q%jUU{feX zFZSnc9y&%Z#%F7!%RyG_ML1Ef${W>EIclla5?1bOlpBk3FoM?TMH}yS)7DVAchquk zspV#>;QGBZ@rS%dw}H{^_Q55n^GL zIT!_nIcHjQV^rO242?O{qU)~8r?4wC5ImXI##&Ml&XHkP31QsZfmZ-$Pj*qq5!Oq~ z5nm2`GvIDF42i$J2__|mnBt|u?$F@8yGu%FG!h@AqawvE{F`nnMT+qPFFmVJT{qEI zH7C$bZCX@gx2~o|p=mZWZMgclOiyHUV}X_<2T<{^z;`QnUBEkm9|P_M4}r> zP-s+?XezRzU_BUQ0#1g;UJprO1ze<#tOH$~FpU3T6ym~8!^KIxali;%Y;Mr8Qlr#T z8@fs{IehIGDs@sV#VPdND2S*p=&>kqSlR@YoJkG#yS|YJf-OU%#fe;YBwVT?PL+HA z+-ej{qojUbw$;e24Ksm`07KUxnvxVRZ|@jm*nbY{(#cfDlsGk#K<_yz2lGSuejF`zk<)t6Rh-pJ^@>+R?(sR*}*YH!BlLTY6dHs*4k|)3Ut#yN+v+j0j0le(j1umxLUS6BFmo@U~krosHzA zF&c`rBL9M60xMY>>vopJOWQmV9VVwD*C}Bg`z^#-1~2d9ds>YVQo9mTu-T@gV>M5r z5GpZtMQ4fgm13dI3R(G>C+$Y}DU*}+K%BJ1Put?eNxeGdv2K#3-Oe}Z)?by+!ba9L z=v+b_WH>ww+9t6s+;vs{nU0MYlf$-n_@=A!^K?PH7*`c9rQr|@8xn#vKuNikZLC`1 zZ^k(qCui0WE1ZYz=r8m`S%mbi=h~CSlrewp(4ZE2VFWgHnX;^)H>0H2JM{)bE8s+{^am%y=TxIv=mngp=~s_&v8{VqYw)JI6RU?Q46!%ek`7>H&! z?URVbQLCm7cGF3TVtJbA(-1AGgkvVIMsOv*O!|s#y@?I4qYdXi62)|Lgft&607af2 z%xQ|lQNm38Ur@T^|EyAoxqn(&p9F=sF~B158`zS>ME->UElm>5Hm{ocs=~(Q38T(c zXsLnvn^Qfn8cHt|6rDM4gRVY8`cpwLg}!bSi^u(l zg|yIISTK;p!Lu1J{RpYU&W}Y(y*zQMl@%u)@pyZR^*>?`TnTFHHJC+rxWno>#BT}Q z3nwANieO5Gqva=qv@}^vuNtrHh0m*z9GiH2Omc&eZ>&8wF|i4F?G-su5$aRmkrSkL zY*YyK<4E5Q>>07)F_S0BfISg7IOM0F#`$dEHiUeHp$H=pR>u)C5>8GwZ^j@nhbB89 z!N!^@+;TARVhkMFjR86L_n$ac*^@XI|U4+ImR3qJFI_Qc)68_|?xSATorTBBM zuh&Z}aBwtLOevTiJoIF=IpPrT&CHs$V}s8 zOYOw3|D5vIFLjWgebYo!ReivNXYN3o;)1`bm`^?gnHow94<5AiycH5$JqmfNecCM7fXQ+QD|wpI3Z&RO5N5bHtJsvc@TtW^-?-E`!zWuzB7^w*dTo`T^!7< zpuTi*0Kd^g`}Yv<<6rR6rXFHRWUO>gFdVO#wT}*xg+sK}B-Y37gh%Zl{ESQi;HA&l zsoRDO@enOC!v>%5w}n3rM@j!&_~WEEJfVd@PTJu8?}eWo{m{bYQkwaA^YI&Pcq9x5H^ORNr3RoA6jp4l4XkT{*X*5c=yzFAwSI^Q^X5`@gV97j@&EqjPrAeRh{hxY_fF zrH}ImtoE}?SOs_BHS^o`($i{goyX7-syxe_Sa!PmOE5)7dD=pRLMuOu) z8RM{e$4Pc&rMU`Qy>E|SSpH|=^4=bQAL1-Tn-|!<<7?0{ZfG8<9?>#ZUbvVtTIK7 zM=5uyG_yey*>?(9fZCK%UfxBtISwU!i`Z&Jd;UZp>1>#mlqs=WKZWQ^Aam5FRIGW z7kS5Lkg1h%xMGYS^TQhfA%M1LPnHEk$7jUYYND3Vf7C}ZjZX|D2fcdlsMVhmZPQ_&Io&^vxuCU94mc^ZGSB>hAj1W`(j4 zoM!vVSLEB>JDppcI~-dbXPw8LXB;OSm8u-;u~*}qUGjZen1$}>EoN0IN{{`V2@4hi z`}NoxX5l~~V5k&1iA#~^DNq2M)?DHe?amSn{&}RntvE|A%eWJP2hO!%aqIE-@||7f zNB__AjcWPUG?hUG7##R7250D;Y|+wvlS(ocB%A+>vi`Hl^}P+19+?m{5sxgi?*N2Nap0`kS+Y5VE2v)IAcp@qn_#%K|fKYe>%wI&{?AvN3d*WOZ7L{^Ut*Kb^QkQap4Yuiyipxxj|c>L-o?g z;FtC(1!s+6E(3U18Nu9S*;aj``fyne8e{EhOc(S|YmG#;#)|lqwi}NDJxe6T;0m7?3_TF~}E~%{JRn~8U^=h@%3%gj~ z*~K~@C3>o?>jL+xtRq#{C%agW>}qr*=ss3CFAGe!cVwM4Ca9c44W5aYUgc2VV!tlN z2`J!E3(O2mvd^qOYfN-)!>gHxW*FhBoS;%0yQmXEeO#r!EwBb>|IQk_xs0F=vF}^J zDzK|16mRH7cKf421%X=_|0-jYYZQu<;=Nl@!7!ElbQgIP$oHrf^au=5o0H^f26eUC zD}`OX((Vn-ha^xps?@rG5w{_evEW*KoJEt-Z*;$M8|hPbgDa;t64ucbxhlZUO4vwM zUpO@GfWs`JKq;`I&~eP$aGwZ_E#!hv3#PyM+2a12aVX5G8mt9HFsGOVE(1Oa683hO zOl)1b4e^NxY;9p4*b3lmZJ7zk))uxd%>mBVmr6jaFIA*ahg{_j<3$ANWHD+s?~ZgQN52Ghe~%694UY2ORmNbcx2GB(;hm($i@eF(SucF$$=S{%q0Y-@P&fbhQQhh@NVxPS z%+jd(aOriw(3sQI$90=MXI)>{X!{MWXEDcq!@;g6WD>Xa0t8kv0n}^&yHTOd`SMTp<&uQxG!vDG(Tz%D?H`Sbgk3DaWE8E@| z;RXcuFgw(|-@Ed%ke7wLEPEBpd{)go=Ie;#0i&OpJx{|3QRE|@TkUDiEAkp_9giwKFOT!v;dH%%)v&y* zT6-SXbIR2COn-?QFZP$H@iqQx^DXvP(lKU)eH{4}8a|uYsh)%89NZ48+F-0U+i)#7 zPCA2|9XHu;Dmy;@rgG7eMEnD$jrYyvYDwLo(IiLPrZMM2Cg2*h#W#KMj2tKLy3sBo z2rkm-&;MaA$>H1bOC|ZRhxAe%iS)AUM2G+BNX+eWBwm&$`v}tE-IxLQMtFk`?hPC% zoDp7&i(x(GVNiRRXYnb#VAW=F-v}>LA74IB z-&~fhJ|@-~X7Sn7lpel*DopkD1@y>YC~U=I6tTW+HRX`PmPeKn?(3zd>{r-Y%uc64p0b(1!3ZG&bAQtk5YTCC@Oo_iN4|3y*opolrZWkmC-q{K_om?nd3(xz6 z^zwFYr`9ZNPi(p*uY>k4?BegrncPr3pq;a6t#W%x2Fqy+ayt#?48rgge)>+Km^S6@ zpm9{SncG=MLg{nhs4%uy!*_Gi7;AsFSZZg~H9=NmcXzcp%3jA!a&V@w4wk+$*m#QN z7~D8|hBD8MVB1~~2NZ?e!>nUkFi^ZtE3xTZLthyv&eJB~FiYQ>7V{u+9+!Su*1`oH z+AAwU23y&l!~EZ!#}RG-ePyuNH});;Ou@Wa&q;k?XZYpbetKcBm^CiJZ&@nj7}_5* zwUQam80jWlp=Aclc5JhT=mnLY1Dy!EjWAXiU2m06k#BW}=m`7=jPH3LojC*^<)c3O z)DUd2;t1;NfZ2O|mZdz(Ki5^yQMg)}+0|Fwx8v3mX|q~>qmK$ViJ8VHeGB)qx6U>K zBGpZ-dfO$r9w%yU!p=5(%FqG+miulJ*K;ZMpm^O-`V9LTmHRtD#KytR;t+!g-n}$i zjI>Mj#nsf%c{htc3OIq_p`(k$Att~4mL~&(B3!x=M+)#>pOhNBBuX0oyIOjDggBI6T}#ck02bELskew@bh7-kCv3lCJ>7SU_z^!eNLQAG2H(3S z;x?^qEtG_{boNNGfG=E2w~Q3$@-<#+C>8r?OOZErZA)>fIEv$od@VI)Vt>xK&f96} zQ!u~ePO`E1Li>ZeOr*~cn5tg-V>vdhzpKRuKTwXi6~zHKY#e0sO_24a9QhaH2mBcD z2H*>Tb7dT90bUC{1Nc|KcLVS6DatU!FCyNKcm?n%C^Q#=F9#kEJZ31?5#YIiDTud^ z=Ay}1MA*&fW5`%Al&-LgtN9c^jT|Me=MUpt|0uB!--7eSqr|@a^Eg?2t7zj_;Y{(Z z=m1;@oqMZjZ9P5I1%K^=+R>r(tkGh2mFyj$8otc9WxvoCtbzG* zF!%iO?--C6qwCm4HrM2nfBqlzVWsT+D5IC<+qw?_DDo#N{l7uK7Gmbw5B$jxlR-Kg z+Tx{Oj27egSG@G(XpHU#FO9rSToXAp_-JuVJ2737{}H6yZo_^!uBiWbo48o-mhW=& zO`Y@LT9yE$ZYOQ`b6X0FzY%`&=cjJRU7 zPksQylWSa(E8;wh&=lqhw+m~vE?GXI2;k0kXqgWMd*%2R$q?{kn(P7aj2ZSPPgipo zcxEdt504e+a=JJr0!1hKsWeVZ)Cp>=%ul0k7YhdY~X~Lu9gkNQ6TnAw#7#W$ z(J>RSkM$M4rocDqn!;U4_Jg?*_}8t|<38D&xR5kKG?qN%W%;k?hP%3{N1z};kuS@= z0y@0$xiAGnhoCwz0EP8Di9=umW;gmN7X#)P8a#Fwy)XfSczy8tcClV`p$BjGw`BiQ zG;md&=%q}1Z z*g!IoNsj2+PI(Qe6G5Gvd%}?bdPSvwO{Mqe-!XgAR7SsHwuv-MW%P?Z>WX&*hCKUx zPk)H6LWJgzcpMz&$!0u7ExLU3aJ&w{1&Fr~rN2%Tm+}K}mHiHJw$Le`cGI>y#JtQ- zIpF@vqHnlU-JuimBO3JBp|e7Xi9l8Fxi85#cxcun(LBZH=R4R*_yO2iVf(#o%cBOp zSdBSS4Ookw%SA7?qu#NA*M4j(Burh#Cfhn?33H3xQX8QTr&`3={*Vb0aFSR!qEr4i zQgBiOl@47`J35 ztJ9rZAC&Q}n0jL6@wuWqo%JIZ?jIG^l6SWl%khSLT1p(ElQT6d`lgHW6@PDHw11Zi zUxi)Y6p3y97u59M{Pb{zm{_t-jUDx4*;YkDD+YoAH=)xILbs#g0f>20WSV6r(#B50 zFuwyb7hyRg9-<}>n{fDL=UXXIZ4bkTINHIH4sy7psZMyrmQ z5om-J$7Te3n$6<4D4T&B_S#MR=88u+E$fGWuV|S$PaMthSA6u1`QnQ5 z69Ee`G;C6(M@)kO(jyAn&oQ-i+?pZ6xFbpw&XiZ-DIk9KQp8Wh3MYU{eJlK0tQe zgu@GAH|W9utJl|)Zh#fjp=(WnPBjf?8zB2hd)GB<>%v+FED&?K{-62{jk9OZnHtk* zsM|5yMs`k(sgvXye-3W`HaayK8rN^~fZ!Nh6fPvW)tZdo-3cD$zo(wN=;Goh7}VH&YxmKXzMAHv%RF=*w1S!g|4 zcVGr)!4x`rq4-8#z=tz|4K-^2b!&)3Z|l+9-N3sQgDo`6*x*P<`OSE`iYc^Uk!a#0 z{dD3Y(QK>(l_Wop|4Js@x@s@{mews2#}`gU`olJ_yaaRX#p%;+QPK$vw?dmF--aA3 zpj|CLQ7zBj6q|Jz(CPP!EBMtIboYxp_&w+8=*8k}zUfoCZ?Ra;SAIsd4~U1NI?$%w zSkTy2lJlRo9DP81gG*PC*o2_R6dMD(O8AT?;Rvgd=J<@h@*s{BPxtL`o^}2v7x}1R zsW_gG`i#z8DvslGe01MZafl#6#!~N6F(uZ3lI)fWYu0xN_20B)JtWp~{6dB9dsuYb z=*9UQC@3?2mv4e_W^aHk7OWW4*DC>cS7L13k6uS$tZFMc+M~bLOc(r1e1PAo&@=xM zQ_|Ndn~F6*!n;KGv(jcv@65~_5;oigV`2G#MUA$l^ zr#c=sFHs#1^!F3OJyctbV>oB!nb=*gR;`bgIJB&D{W%1;e zSvx{5$J6q;pf^K{QZ|&@hT{P!m6-fTsd;~t^0;Ymg;-L+beSO-+M9}riD{`t&{9be zfu72d5x|v?8wOvy>N*l}JHkV2>C#8wZ<&O%|0c8+^E>0T?84XOh~>0AA1x5k0xMbo z)A`*;#O%ZkxV<0Qq%lY0+C$_H=Eb=xKZq6}uRoJtw}C4=s+&NfaAEeG93CVVoaj-X zVt5zd9;hv?jB$m*Jb9&K7TkAu6!zD{3UxnTLicaVKssa;dz86gqIOsM|kV=mTk{q0Zw}^kZSMVz+_-L zj#hPt3{1t*s`T0mGHw8M)QE|tD+AA|*Ap2{w0b@9Pnr_QpU|B}`d;tCUh}=wg}vfy=)$)9p6gUi7ugVP& zjvG{L9k3ZHRs$?o#hwJ_2i0SM9|1lBxE8Pq&;j@mU?0E-e1CofCPFHNurlmtZ-aFP zn?-*;)SJ3u2T>}>a8T1=sC%<|Hxdhs$J^iyF&$mcS2gE-#syL_+5;q=Knyjr+&_MC6o zvOyfe^BqCj(I^&UmNOo{r7>w=kHwaprwrTavoLpF&W zsJ|K?P2G%B_vfMgo|p5O(@L#LI)Y<>;Pwzqp-q5nOkb>n_^YK;HjC!8tMU}jU(Gr# zq0QmoouafnyIIt8y8ajk=j8|e^p!2}4)j!Gv;Fk5En@bFtFp^|K@JZvN%gCo0OiYs zlgo-+=?~rRXf4@<25dpaOa)?faB03x+F>0X-Tn&UVl*Lmo!ZDL{G z7*zf)D$Ixf@MpMkn6Ua90{Nq^o?wl+xE@9!8gl@RSzbdEUlRMIEc-80_nGD>oV^(2 zr;}e2Tl;e`yVLD8Fu2oUR_k55b>ZtfaS%Xb%^D{Al}0l#LFRMaeR?3%Q|DOm3GS%6^YSY&{_apm5xX(z#w5Lnwp@G_FYOsl?biic&~Lyw zw6}I6M-l;#AzsnMksRP$4ch%Ir}`!{fHQq3<^_%vB5xStV;ezh0dlbx2*UM0Hq0BF zMT~$I-j>gHhy@&fI6#G6@Rfe+qxbE?=-sO@F9N&*_fDFjdIj!{Y-*ShU3*Smg3l=K z65~rcZw-PA8}0S!yuzSStr3j7OM@@HhfRcn*Q-#7tL=VIu+!JBCqltcL1e z7Oiktw)B5lbZ}`~L3r&a?bQK}+_;PQOhgNC*bo_3yFlrWVE(+$}WDwHg+_Yi0IHc+vZuR648}3MM zNaM|-Yfw|v&a?7wiZ+8$-QX1)%_O;dDD@{rucn&e?kUZU!luLmp4&O;~c5evq3pu?P)K5yZfp9N%F3g-Y1AK>ns*S60B0g{A_5a*4(QiKn1*cX6_>$uYNtPeui>1$(xdB#59FO<9TDZD znXicrCioXT{01B0rN%&xJ-sOd`=9CSP58fPJSWHa=})hTDTXh7DIJ+j5x5JG*>p;V zUZZG1A%-#c zCZ6UX0@GqRyzZE_wC;7W@6h+)huejxxb|cAa=2=Re`Gr+e}px25#T|3pmW}0onz2tFqVJkcr0@b5{tTpV*pzIm`1<0P^4#0Ea@;22uFy;td z`i59A>1S_}y4#oUdA@7wv9BjiP09AesxZsLK4^MbHhb#2D7t&1)RbgTH^8g%{eJdg z)5~%Ut3aNj^6&V9>RZGK#g8Gz9AZ}?i)d_lLgh(oOBF@s88Tjn5Pz*@**#@^cFP<{fcf+Fgpx z9^1e^wGjt>Hx{4TFyK=gakXb>d|?k#k`p>$Ai(&b6@2ns!ni zs1R#-n>B5I*)OskN4}Ahzi2q;`u&tOO)q&pzsPR}H5u9(uKuK48>B}M!1$>Tyz#zR z$)$w8_+=W#y5?gzK0ZR|0qwV@jXv>#Sj6vv9`ym}pZC+w55#5KHfYjq%jx2S;tTvf ze7N;PF-3RI_b?Pzd^u_8hhir5)b1WS^FuMa_-=pPex`_ClTQ-HWiLW{W|7C5FX2Lc zs@*z3m(M=jK4YrIQHW1AT<|B^M-=Gtw@$Sob_$<){ZJgOZ)UF(y+^*H*@whKlTOLM zs-HSJi;rqKOU}x-c@1{5Rs(f~ckP_Rj!EcCPsv}Y-#s}iSF1EPdC$rDUiQ_K){=^S zP^b{D|L#f5`xp}YTFU<|PUm=sAD=iD)A+IQ*nT9gVZNIwAB)TMXXOseRm1+aZ|Sce zi$i1oUv1X{7S(mF&pB|mI06}vAR^isKtha<86O0}OF%7G#8|M=8fz7N1x>Cp=A|Z| z!{kdWv5D7F>rOD&3yC#8@-V`$!`P^3R6yP!$XN9-Gr-(`pEDx^qL}u( z^L=afIs38pT5G@8-g}*9=>*;*bj{K+*}w7}jr#@*Q|_##;2Ycs6s!)*XWxpkd`yjW z(9R4pt{hgDplV#^jL@G~aMqBG(-L1^i)#GMrr z@G+3{bnQ88D72lWt>>TuO+H6Qoflsc3eVE_&qFJvDW`$uz?gTQt|%9G3*eAk5Vr~7 zsNe#&NHfmT@fRV9!XGT3UlarV0@X(@qm%2Bs^zPU^vYG#kuDeYtrp{BSs$c3GAQTG zL%+r$|DlhKvI-dYMz}&|;<9@xzkTWSFmzxeTy$BrI4kndmF~F;t0|t|YrDLvbFjSZ9TrusI8{(-J8^|N z{+cwhlg_IbX9wTvSki;BTOIUhJxb*ZSkbK)_o%K)U)gzGEjF`geuMal5SUMs8nIQ; z2-Oii-iU_sUoI|cWoj(!OEyXa>_WjooSyb65VkkxXt|~=cJjGVa<&V*-p~0U%V(Fc z?P^X=YIT;+wnnL>omFWVv5jdGlYwzpJ6+WzP7O3T2jaN;f_Q%WHR*XM1mPE%i;0f; z3g+dPl&bH!?DrHF&a9IP$)_Wl#d*LI(oWYkW7c=w;d2Lz4fcGS#i=8zu3}PhPYjk3 z*TfPZq0&h!uZuJ0GX4s{?udO4w;WIhXaP6@?2Z^CgTvg-51J#3kSwJlk@;j+@*p>>mijk++?8giX2= zwp9-Ms}slFuv@B6XDQypw8Iv59T$&SI*W6R95z}GJMIp9K@QvRjFrP4p>uDF5BV*Z zJqvI;;HDUDWPC=8m}3Ik*faY0WYEp-y0L>m?7rI+^#60=C)auRy*GUo#u^AT1+EEh zCfp*p*>FqY8sJvJHNoXCqnCoKh0BO;kY06u7c~y|^=vfr7IyoSFipLMrub_ooq0

}Q8V{va_meC;9!y3pf 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 Va#16+by{u=9