From 3213eb5582eefc0232b24190d667f3e059998606 Mon Sep 17 00:00:00 2001 From: Pierre Molinaro Date: Sun, 28 Oct 2018 21:54:54 +0100 Subject: [PATCH] Version 1.0.0 --- .gitignore | 229 +++++ .../LoopBackDemoTeensy3x.ino | 141 +++ .../LoopBackDemoTeensy3xWithFilters.ino | 130 +++ .../LoopBackIntensiveTestTeensy3x.ino | 185 ++++ extras | Bin 0 -> 328488 bytes keywords.txt | 33 + library.properties | 9 + src/ACAN2517FD.cpp | 811 ++++++++++++++++++ src/ACAN2517FD.h | 169 ++++ src/ACAN2517FDFilters.h | 221 +++++ src/ACAN2517FDSettings.cpp | 349 ++++++++ src/ACAN2517FDSettings.h | 259 ++++++ src/ACANFDBuffer.h | 119 +++ src/CANFDMessage.h | 86 ++ src/CANMessage.h | 44 + 15 files changed, 2785 insertions(+) create mode 100644 .gitignore create mode 100644 examples/LoopBackDemoTeensy3x/LoopBackDemoTeensy3x.ino create mode 100644 examples/LoopBackDemoTeensy3xWithFilters/LoopBackDemoTeensy3xWithFilters.ino create mode 100644 examples/LoopBackIntensiveTestTeensy3x/LoopBackIntensiveTestTeensy3x.ino create mode 100644 extras create mode 100644 keywords.txt create mode 100644 library.properties create mode 100644 src/ACAN2517FD.cpp create mode 100644 src/ACAN2517FD.h create mode 100644 src/ACAN2517FDFilters.h create mode 100644 src/ACAN2517FDSettings.cpp create mode 100644 src/ACAN2517FDSettings.h create mode 100644 src/ACANFDBuffer.h create mode 100644 src/CANFDMessage.h create mode 100644 src/CANMessage.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e0e7bc8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,229 @@ +## Mac hidden files: +.DS_Store + +## Other files +*.pyc +test-ACANSettings-on-desktop/build/ +*/*.xcodeproj/project.xcworkspace +*/*.xcodeproj/xcuserdata + +## Core latex/pdflatex auxiliary files: +*.aux +*.lof +*.log +*.lot +*.fls +*.out +*.toc +*.fmt +*.fot +*.cb +*.cb2 + +## Intermediate documents: +*.dvi +*-converted-to.* +# these rules might exclude image files for figures etc. +# *.ps +# *.eps +# *.pdf + +## Generated if empty string is given at "Please type another file name for output:" +.pdf + +## Bibliography auxiliary files (bibtex/biblatex/biber): +*.bbl +*.bcf +*.blg +*-blx.aux +*-blx.bib +*.run.xml + +## Build tool auxiliary files: +*.fdb_latexmk +*.synctex +*.synctex(busy) +*.synctex.gz +*.synctex.gz(busy) +*.pdfsync + +## Auxiliary and intermediate files from other packages: +# algorithms +*.alg +*.loa + +# achemso +acs-*.bib + +# amsthm +*.thm + +# beamer +*.nav +*.pre +*.snm +*.vrb + +# changes +*.soc + +# cprotect +*.cpt + +# elsarticle (documentclass of Elsevier journals) +*.spl + +# endnotes +*.ent + +# fixme +*.lox + +# feynmf/feynmp +*.mf +*.mp +*.t[1-9] +*.t[1-9][0-9] +*.tfm + +#(r)(e)ledmac/(r)(e)ledpar +*.end +*.?end +*.[1-9] +*.[1-9][0-9] +*.[1-9][0-9][0-9] +*.[1-9]R +*.[1-9][0-9]R +*.[1-9][0-9][0-9]R +*.eledsec[1-9] +*.eledsec[1-9]R +*.eledsec[1-9][0-9] +*.eledsec[1-9][0-9]R +*.eledsec[1-9][0-9][0-9] +*.eledsec[1-9][0-9][0-9]R + +# glossaries +*.acn +*.acr +*.glg +*.glo +*.gls +*.glsdefs + +# gnuplottex +*-gnuplottex-* + +# gregoriotex +*.gaux +*.gtex + +# hyperref +*.brf + +# knitr +*-concordance.tex +# TODO Comment the next line if you want to keep your tikz graphics files +*.tikz +*-tikzDictionary + +# listings +*.lol + +# makeidx +*.idx +*.ilg +*.ind +*.ist + +# minitoc +*.maf +*.mlf +*.mlt +*.mtc[0-9]* +*.slf[0-9]* +*.slt[0-9]* +*.stc[0-9]* + +# minted +_minted* +*.pyg + +# morewrites +*.mw + +# nomencl +*.nlo + +# pax +*.pax + +# pdfpcnotes +*.pdfpc + +# sagetex +*.sagetex.sage +*.sagetex.py +*.sagetex.scmd + +# scrwfile +*.wrt + +# sympy +*.sout +*.sympy +sympy-plots-for-*.tex/ + +# pdfcomment +*.upa +*.upb + +# pythontex +*.pytxcode +pythontex-files-*/ + +# thmtools +*.loe + +# TikZ & PGF +*.dpth +*.md5 +*.auxlock + +# todonotes +*.tdo + +# easy-todo +*.lod + +# xindy +*.xdy + +# xypic precompiled matrices +*.xyc + +# endfloat +*.ttt +*.fff + +# Latexian +TSWLatexianTemp* + +## Editors: +# WinEdt +*.bak +*.sav + +# Texpad +.texpadtmp + +# Kile +*.backup + +# KBibTeX +*~[0-9]* + +# auto folder when using emacs and auctex +/auto/* + +# expex forward references with \gathertags +*-tags.tex diff --git a/examples/LoopBackDemoTeensy3x/LoopBackDemoTeensy3x.ino b/examples/LoopBackDemoTeensy3x/LoopBackDemoTeensy3x.ino new file mode 100644 index 0000000..9fdd84c --- /dev/null +++ b/examples/LoopBackDemoTeensy3x/LoopBackDemoTeensy3x.ino @@ -0,0 +1,141 @@ +//—————————————————————————————————————————————————————————————————————————————— +// ACAN2517FD Demo in loopback mode, using hardware SPI1, with an external interrupt +//—————————————————————————————————————————————————————————————————————————————— + +#include + +//—————————————————————————————————————————————————————————————————————————————— +// MCP2517 connections: adapt theses settings to your design +// As hardware SPI is used, you should select pins that support SPI functions. +// This sketch is designed for a Teensy 3.5, using SPI1 +// But standard Teensy 3.5 SPI1 pins are not used +// SCK input of MCP2517 is connected to pin #32 +// SDI input of MCP2517 is connected to pin #0 +// SDO output of MCP2517 is connected to pin #1 +// CS input of MCP2517 should be connected to a digital output port +// INT output of MCP2517 should be connected to a digital input port, with interrupt capability +//—————————————————————————————————————————————————————————————————————————————— + +static const byte MCP2517_SCK = 32 ; // SCK input of MCP2517 +static const byte MCP2517_SDI = 0 ; // SDI input of MCP2517 +static const byte MCP2517_SDO = 1 ; // SDO output of MCP2517 + +static const byte MCP2517_CS = 31 ; // CS input of MCP2517 +static const byte MCP2517_INT = 38 ; // INT output of MCP2517 + +//—————————————————————————————————————————————————————————————————————————————— +// ACAN2517FD Driver object +//—————————————————————————————————————————————————————————————————————————————— + +ACAN2517FD can (MCP2517_CS, SPI1, MCP2517_INT) ; + +//—————————————————————————————————————————————————————————————————————————————— +// SETUP +//—————————————————————————————————————————————————————————————————————————————— + +void setup () { +//--- Switch on builtin led + pinMode (LED_BUILTIN, OUTPUT) ; + digitalWrite (LED_BUILTIN, HIGH) ; +//--- Start serial + Serial.begin (38400) ; +//--- Wait for serial (blink led at 10 Hz during waiting) + while (!Serial) { + delay (50) ; + digitalWrite (LED_BUILTIN, !digitalRead (LED_BUILTIN)) ; + } +//--- Define alternate pins for SPI1 (see https://www.pjrc.com/teensy/td_libs_SPI.html) + Serial.print ("Using pin #") ; + Serial.print (MCP2517_SDI) ; + Serial.print (" for MOSI: ") ; + Serial.println (SPI1.pinIsMOSI (MCP2517_SDI) ? "yes" : "NO!!!") ; + Serial.print ("Using pin #") ; + Serial.print (MCP2517_SDO) ; + Serial.print (" for MISO: ") ; + Serial.println (SPI1.pinIsMISO (MCP2517_SDO) ? "yes" : "NO!!!") ; + Serial.print ("Using pin #") ; + Serial.print (MCP2517_SCK) ; + Serial.print (" for SCK: ") ; + Serial.println (SPI1.pinIsSCK (MCP2517_SCK) ? "yes" : "NO!!!") ; + SPI1.setMOSI (MCP2517_SDI) ; + SPI1.setMISO (MCP2517_SDO) ; + SPI1.setSCK (MCP2517_SCK) ; +//----------------------------------- Begin SPI1 + SPI1.begin () ; +//--- Configure ACAN2517FD + Serial.println ("Configure ACAN2517FD") ; + ACAN2517FDSettings settings (ACAN2517FDSettings::OSC_4MHz10xPLL, 125 * 1000, ACAN2517FDSettings::DATA_BITRATE_x1) ; + settings.mRequestedMode = ACAN2517FDSettings::InternalLoopBack ; // Select loopback mode +//--- RAM Usage + Serial.print ("MCP2517FD RAM Usage: ") ; + Serial.print (settings.ramUsage ()) ; + Serial.println (" bytes") ; +//--- Begin + const uint32_t errorCode = can.begin (settings, [] { can.isr () ; }) ; + if (errorCode == 0) { + Serial.print ("Bit Rate prescaler: ") ; + Serial.println (settings.mBitRatePrescaler) ; + Serial.print ("Arbitration Phase segment 1: ") ; + Serial.println (settings.mArbitrationPhaseSegment1) ; + Serial.print ("Arbitration Phase segment 2: ") ; + Serial.println (settings.mArbitrationPhaseSegment2) ; + Serial.print ("Arbitration SJW:") ; + Serial.println (settings.mArbitrationSJW) ; + Serial.print ("Actual Arbitration Bit Rate: ") ; + Serial.print (settings.actualArbitrationBitRate ()) ; + Serial.println (" bit/s") ; + Serial.print ("Exact Arbitration Bit Rate ? ") ; + Serial.println (settings.exactArbitrationBitRate () ? "yes" : "no") ; + Serial.print ("Arbitration Sample point: ") ; + Serial.print (settings.arbitrationSamplePointFromBitStart ()) ; + Serial.println ("%") ; + }else{ + Serial.print ("Configuration error 0x") ; + Serial.println (errorCode, HEX) ; + } +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +static unsigned gBlinkLedDate = 0 ; +static unsigned gReceivedFrameCount = 0 ; +static unsigned gSentFrameCount = 0 ; + +//—————————————————————————————————————————————————————————————————————————————— + +void loop() { + CANFDMessage frame ; + if (gBlinkLedDate < millis ()) { + gBlinkLedDate += 2000 ; + digitalWrite (LED_BUILTIN, !digitalRead (LED_BUILTIN)) ; + frame.len = 64 ; + for (uint8_t i=0 ; i + +//—————————————————————————————————————————————————————————————————————————————— +// MCP2517 connections: adapt theses settings to your design +// As hardware SPI is used, you should select pins that support SPI functions. +// This sketch is designed for a Teensy 3.5, using SPI1 +// But standard Teensy 3.5 SPI1 pins are not used +// SCK input of MCP2517 is connected to pin #32 +// SDI input of MCP2517 is connected to pin #0 +// SDO output of MCP2517 is connected to pin #1 +// CS input of MCP2517 should be connected to a digital output port +// INT output of MCP2517 should be connected to a digital input port, with interrupt capability +//—————————————————————————————————————————————————————————————————————————————— + +static const byte MCP2517_SCK = 32 ; // SCK input of MCP2517 +static const byte MCP2517_SDI = 0 ; // SDI input of MCP2517 +static const byte MCP2517_SDO = 1 ; // SDO output of MCP2517 + +static const byte MCP2517_CS = 31 ; // CS input of MCP2517 +static const byte MCP2517_INT = 38 ; // INT output of MCP2517 + +//—————————————————————————————————————————————————————————————————————————————— +// ACAN2517FD Driver object +//—————————————————————————————————————————————————————————————————————————————— + +ACAN2517FD can (MCP2517_CS, SPI1, MCP2517_INT) ; + +//—————————————————————————————————————————————————————————————————————————————— +// RECEIVE FUNCTION +//—————————————————————————————————————————————————————————————————————————————— + +void receiveFromFilter0 (const CANFDMessage & inMessage) { + Serial.println ("Match filter 0") ; +} +//—————————————————————————————————————————————————————————————————————————————— + +void receiveFromFilter1 (const CANFDMessage & inMessage) { + Serial.println ("Match filter 1") ; +} + +//—————————————————————————————————————————————————————————————————————————————— + +void receiveFromFilter2 (const CANFDMessage & inMessage) { + Serial.println ("Match filter 2") ; +} + +//—————————————————————————————————————————————————————————————————————————————— +// SETUP +//—————————————————————————————————————————————————————————————————————————————— + +void setup () { +//--- Switch on builtin led + pinMode (LED_BUILTIN, OUTPUT) ; + digitalWrite (LED_BUILTIN, HIGH) ; +//--- Start serial + Serial.begin (38400) ; +//--- Wait for serial (blink led at 10 Hz during waiting) + while (!Serial) { + delay (50) ; + digitalWrite (LED_BUILTIN, !digitalRead (LED_BUILTIN)) ; + } +//----------------------------------- Define alternate pins for SPI1 (see https://www.pjrc.com/teensy/td_libs_SPI.html) + SPI1.setMOSI (MCP2517_SDI) ; + SPI1.setMISO (MCP2517_SDO) ; + SPI1.setSCK (MCP2517_SCK) ; +//----------------------------------- Begin SPI1 + SPI1.begin () ; +//----------------------------------- Configure ACAN2517FD + Serial.println ("Configure ACAN2517FD") ; + ACAN2517FDSettings settings (ACAN2517FDSettings::OSC_4MHz10xPLL, 125 * 1000, ACAN2517FDSettings::DATA_BITRATE_x1) ; + settings.mRequestedMode = ACAN2517FDSettings::InternalLoopBack ; // Select loopback mode +//----------------------------------- Append filters + ACAN2517FDFilters filters ; + filters.appendFrameFilter (kStandard, 0x123, receiveFromFilter0) ; // Filter #0: receive standard frame with identifier 0x123 + filters.appendFrameFilter (kExtended, 0x12345678, receiveFromFilter1) ; // Filter #1: receive extended frame with identifier 0x12345678 + filters.appendFilter (kStandard, 0x70F, 0x304, receiveFromFilter2) ; // Filter #2: receive standard frame with identifier 0x3n4 +//----------------------------------- Filters ok ? + if (filters.filterStatus () != ACAN2517FDFilters::kFiltersOk) { + Serial.print ("Error filter ") ; + Serial.print (filters.filterErrorIndex ()) ; + Serial.print (": ") ; + Serial.println (filters.filterStatus ()) ; + } +//----------------------------------- Enter configuration + const uint32_t errorCode = can.begin (settings, [] { can.isr () ; }, filters) ; +//----------------------------------- Config ok ? + if (errorCode != 0) { + Serial.print ("Configuration error 0x") ; + Serial.println (errorCode, HEX) ; + } +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +static unsigned gBlinkLedDate = 0 ; +static uint8_t gPhase = 0 ; + +//—————————————————————————————————————————————————————————————————————————————— + +void loop() { + if (gBlinkLedDate < millis ()) { + gBlinkLedDate += 2000 ; + digitalWrite (LED_BUILTIN, !digitalRead (LED_BUILTIN)) ; + CANFDMessage frame ; + if (gPhase == 0) { + frame.id = 0x123 ; // Will match filter #0 + }else if (gPhase == 1) { + frame.ext = true ; + frame.id = 0x12345678 ; // Will match filter #1 + }else if (gPhase == 2) { + frame.id = 0x334 ; // Will match filter #2 + } + const bool ok = can.tryToSend (frame) ; + if (ok) { + Serial.print ("Sent for filter ") ; + Serial.println (gPhase) ; + }else{ + Serial.println ("Send failure") ; + } + gPhase = (gPhase + 1) % 3 ; + } +//--- Dispatch received messages + can.dispatchReceivedMessage () ; +} + +//—————————————————————————————————————————————————————————————————————————————— diff --git a/examples/LoopBackIntensiveTestTeensy3x/LoopBackIntensiveTestTeensy3x.ino b/examples/LoopBackIntensiveTestTeensy3x/LoopBackIntensiveTestTeensy3x.ino new file mode 100644 index 0000000..553bc9d --- /dev/null +++ b/examples/LoopBackIntensiveTestTeensy3x/LoopBackIntensiveTestTeensy3x.ino @@ -0,0 +1,185 @@ +//—————————————————————————————————————————————————————————————————————————————— +// ACAN2517FD Demo in loopback mode, using hardware SPI1, with an external interrupt +//—————————————————————————————————————————————————————————————————————————————— + +#include + +//—————————————————————————————————————————————————————————————————————————————— +// MCP2517 connections: adapt theses settings to your design +// As hardware SPI is used, you should select pins that support SPI functions. +// This sketch is designed for a Teensy 3.5, using SPI1 +// But standard Teensy 3.5 SPI1 pins are not used +// SCK input of MCP2517 is connected to pin #32 +// SDI input of MCP2517 is connected to pin #0 +// SDO output of MCP2517 is connected to pin #1 +// CS input of MCP2517 should be connected to a digital output port +// INT output of MCP2517 should be connected to a digital input port, with interrupt capability +//—————————————————————————————————————————————————————————————————————————————— + +static const byte MCP2517_SCK = 32 ; // SCK input of MCP2517 +static const byte MCP2517_SDI = 0 ; // SDI input of MCP2517 +static const byte MCP2517_SDO = 1 ; // SDO output of MCP2517 + +static const byte MCP2517_CS = 31 ; // CS input of MCP2517 +static const byte MCP2517_INT = 38 ; // INT output of MCP2517 + +//—————————————————————————————————————————————————————————————————————————————— +// ACAN2517FD Driver object +//—————————————————————————————————————————————————————————————————————————————— + +ACAN2517FD can (MCP2517_CS, SPI1, MCP2517_INT) ; + +//—————————————————————————————————————————————————————————————————————————————— +// SETUP +//—————————————————————————————————————————————————————————————————————————————— + +void setup () { +//--- Switch on builtin led + pinMode (LED_BUILTIN, OUTPUT) ; + digitalWrite (LED_BUILTIN, HIGH) ; +//--- Start serial + Serial.begin (38400) ; +//--- Wait for serial (blink led at 10 Hz during waiting) + while (!Serial) { + delay (50) ; + digitalWrite (LED_BUILTIN, !digitalRead (LED_BUILTIN)) ; + } +//--- Define alternate pins for SPI1 (see https://www.pjrc.com/teensy/td_libs_SPI.html) + Serial.print ("Using pin #") ; + Serial.print (MCP2517_SDI) ; + Serial.print (" for MOSI: ") ; + Serial.println (SPI1.pinIsMOSI (MCP2517_SDI) ? "yes" : "NO!!!") ; + Serial.print ("Using pin #") ; + Serial.print (MCP2517_SDO) ; + Serial.print (" for MISO: ") ; + Serial.println (SPI1.pinIsMISO (MCP2517_SDO) ? "yes" : "NO!!!") ; + Serial.print ("Using pin #") ; + Serial.print (MCP2517_SCK) ; + Serial.print (" for SCK: ") ; + Serial.println (SPI1.pinIsSCK (MCP2517_SCK) ? "yes" : "NO!!!") ; + SPI1.setMOSI (MCP2517_SDI) ; + SPI1.setMISO (MCP2517_SDO) ; + SPI1.setSCK (MCP2517_SCK) ; +//----------------------------------- Begin SPI1 + SPI1.begin () ; +//--- Configure ACAN2517FD + Serial.println ("Configure ACAN2517FD") ; + ACAN2517FDSettings settings (ACAN2517FDSettings::OSC_4MHz10xPLL, 1000 * 1000, ACAN2517FDSettings::DATA_BITRATE_x8) ; + settings.mRequestedMode = ACAN2517FDSettings::InternalLoopBack ; // Select loopback mode +//--- RAM Usage + Serial.print ("MCP2517FD RAM Usage: ") ; + Serial.print (settings.ramUsage ()) ; + Serial.println (" bytes") ; +//--- Begin + const uint32_t errorCode = can.begin (settings, [] { can.isr () ; }) ; + if (errorCode == 0) { + Serial.print ("Bit Rate prescaler: ") ; + Serial.println (settings.mBitRatePrescaler) ; + Serial.print ("Arbitration Phase segment 1: ") ; + Serial.println (settings.mArbitrationPhaseSegment1) ; + Serial.print ("Arbitration Phase segment 2: ") ; + Serial.println (settings.mArbitrationPhaseSegment2) ; + Serial.print ("Arbitration SJW:") ; + Serial.println (settings.mArbitrationSJW) ; + Serial.print ("Actual Arbitration Bit Rate: ") ; + Serial.print (settings.actualArbitrationBitRate ()) ; + Serial.println (" bit/s") ; + Serial.print ("Exact Arbitration Bit Rate ? ") ; + Serial.println (settings.exactArbitrationBitRate () ? "yes" : "no") ; + Serial.print ("Arbitration Sample point: ") ; + Serial.print (settings.arbitrationSamplePointFromBitStart ()) ; + Serial.println ("%") ; + Serial.print ("Data Phase segment 1: ") ; + Serial.println (settings.mDataPhaseSegment1) ; + Serial.print ("Data Phase segment 2: ") ; + Serial.println (settings.mDataPhaseSegment2) ; + Serial.print ("Data SJW:") ; + Serial.println (settings.mDataSJW) ; + Serial.print ("Actual Data Bit Rate: ") ; + Serial.print (settings.actualDataBitRate ()) ; + Serial.println (" bit/s") ; + }else{ + Serial.print ("Configuration error 0x") ; + Serial.println (errorCode, HEX) ; + } +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +static unsigned gBlinkLedDate = 0 ; +static unsigned gFrameCount = 0 ; +static unsigned gDebit = 0 ; +static CANFDMessage gCurrentFrame ; +static bool gWaitingForReception = false ; + +//—————————————————————————————————————————————————————————————————————————————— + +void loop () { + if (gBlinkLedDate < millis ()) { + gBlinkLedDate += 2000 ; + digitalWrite (LED_BUILTIN, !digitalRead (LED_BUILTIN)) ; + Serial.print ("Sent: ") ; + Serial.print (gFrameCount) ; + Serial.print (", ") ; + Serial.print (gDebit / 2) ; + Serial.println (" bytes/s") ; + gDebit = 0 ; + } +//--- Send frame ? + if (!gWaitingForReception) { + gCurrentFrame.ext = (random () & 1) == 0 ; + gCurrentFrame.id = (uint32_t) random () ; + if (gCurrentFrame.ext) { + gCurrentFrame.id &= 0x1FFFFFFF ; + }else{ + gCurrentFrame.id &= 0x7FF ; + } + gCurrentFrame.rtr = (random () & 1) == 0 ; + if (gCurrentFrame.rtr) { // Remote frame + gCurrentFrame.len = (uint8_t) (((uint32_t) random ()) % 8) ; + }else{ // Data frame + gCurrentFrame.len = (uint8_t) (((uint32_t) random ()) % 65) ; + for (uint8_t i=0 ; i%M|an6(5x(kjD!xx*3i7X4B}R{u4c{*;$4yI-dvS#)cu9k#M zY^+@T{Ln70&Spk-(4L#u+S7G79I)H3G$#->lBCbTzzoo=U|lv&9%2|Tey)GTK7XT= zitt%XDAo=yOQcLNL$Kn>044C1BvZ?~$=S34Tc}0=qU@CN@%}Obf-(<+t)n8KQ!8)J zOy;bVrIzVIQjD^Q^4(pX%Q&AF--r-i9hvx5@II5KRS*Fb0f?V(ul`}l+g7yxhP$Cx zikrdO$lDz$n0Y$Na~(mubNpxg;h*>jgEBql0qz?@?3u=kAftS-E{~WY6ghar5%7j^8n~r^Q|VS zNtU~8Ddt5}mE7c~MJ}y45|Nxl`J;EPx-rNIJLsb0`gI?I?r>yOxnX7lEfIMOkL>Vj zp|+~Xxg%Wh+cIKagugkV(oqL*x`AqCwDwBQOt2>!DX=V9xW`yzw3_Om7g^S%sa6P+ z`O6uOmbwdgWR8$K?S@u%tW)m*wV~v2)rsCwrDe$w#Uq$_lcmj$<^_S%>@YoC3Z}AF zBmQeH=LUgAxjcKiTb)GMoZ33@ocZt`9iTeV`{Tgs$>u^x)qv`J3x*oJ{-T0dmAu}S?a@#=DbUAs!bP6eK{#1NWxm$mdeCwy6^CFN?!dSJ#hqb zO#_dP0*4VsN}JdRLqm7NQC!3ApKesylAf`fed?=^F7@H*%k@%|Fl+U9fE;^Pr>~_o*n#azY zEt%;il?eS*dx!0-nW7#jD}ymnOCEN-Y(9M(nOa`8_dBt$@vyMh*3Y!0T!bIFJrU-# z18Bd;-X#oCgGA0gyjQo4Iw`i*SXDmel_IV)DhUZYf^ReTiIUQ{;Ux(IAv(qgx1D;u zN55fraF(&Lw$!ml@!=1pn5=r%;C!vP)h*e=(#K`x=M(1V_nF>>O3l`L&gkNijzE)V zJXT?attM_muyLxSmyZW1C z{zEu=keM=B-}K*)PHLLjF#~&^%r~D7sCx)^sIUh2$=o~x;>>0dOGa6Zfdr~XDEeAM zPqV?BRYu!TPE}#t2QEtH;VAyylB}h|4%cZsfB`6gFyIc#h7!LInsN%h$|=WL*Byz~ z>-IvW3yw80AEjp7HR1$HX44xSD-u>q`-aS8GE6RIh=AG=JMd$%_SGWZB2zv_pc#sm z1dzgl<18^YsA=QZkyDei*|xzWq)a?R3Mrv<`@)wX)XLOZ1!!z>>?j_r&R#XQ7|M4qWDW{VeaQq-RJ9LxIe)3 zn+@8`-t_;~h5t_fw~}yj{cj|NnT_dxN=lAQ{2@DX;O#rw2gvN5k}nV(0s1;rL%Zz> z`jKJ#xX%WzIm73xif>ej=%ra_ISUDEOqy8~u?#`9+9+{%J>DhdPow;!JdI4u_0G@L z&wc0Td-4TrqqNZLd$>lAqg2Hh!`iL^)v<*%St;rcrCPZ1;6tNvxd8uf_2=p7jg3So zThnKM|1Kg_)n_xvB;;C^z~k;s`^}nWbigk%!q02I6IlkidgKk*Ekv=g9O*cP{$0P* zcsa%xt50ld*M7w3)Yq3323Qa&I4M5`>L7ig&`rMs=nn=tI-F!!X1h zW}PQ|y@uz^?vTWRo9>j zzAb&GBnb+7qSmH}%%+bG5vZr+!q=Ngw$q^<5+V<2l}|=5WF>cGv~=8-a_Rv|5=3dK z4Zo$SOdZ8sPARaVvJ6Tof~-F^vMdV*FVKbUcJl772)7eO|DfcSyGJx0s8QA8$(C}? zshYUmjm((HdEwV~tR1WZvAz(@I?QxD80nI9nv-lDZ5mk?N@(}f3bFRH&PrzH2C(wl zOZ$~dF=%l3p55Jak>?wk;_&sSV=TE$AESJTqar|W)*6i?9T*AvlUKH%+}|Lc)nHL` z=+5i}uQmJ+Ip{e=@m-#{NT9|>3kDyD(i4DtcH*|b#M7*6s?wRl-;e$lqkjLngTkzo zzgjW#XoQ)?c2EWNLPB+cpxG3cz2`*~zGXX@#1dGS!&5a~j(qalA8_iqw`k@3yTAXj z*<+ajCyvOzk)5s$Hp5s{f!+F9@J2-@Q9P#8=?jw!K*DX;an0L}mA_?bxXZ>FNU=i# ztdg@W$7GepU>CJwwf-2ojwcb2qu3dVXobjHEcKye&OIY9-T}8JsEVU03EvjUa}|f` zU`8D(22@YcfZuCjMz{-j!%L?fwkJ*ASfm@a@{}N}BR36S_vXm3V)lyF*AGU#(v}Q* zh2f~InY)}G#1s}osTGThH+k69PZm7?z?z;ew4$V8wW%XR**>j^Z2N1F)t{Tlk?Wx< zHGn7Mz?n%@6{`y4y-D7;>{R!GCh^Tue=MpI*im{-N0~YkxPX2}q>=#PZkyC6#%-m^24Q3#ra%*3wVqh=0g+&NQw z#8bm=`Z2y=RSdCnrxLF`py!%SR%~pgfWf6;V&A5Li*miS07LZSUN6A9og-uMckf^l^+YXSf@k31Lm8%f{2aQrSqo zVcB=frwwVytTfx;n0C6h@y(V!V&*wLKsOt}W$qJ_mTHkU4T9=nL0z=YO<`?ovla^B zuvQ7~{;?(7tLzCsYyQ*(jV&vc`yD1t%T7&2oE_pU3{>l*#ZIN)UcfO3kF1fHsFO9-%m@f76tBanFbsRUXTG(tgHC z5#gMU5Nl{pUy<9GK^Oc1A1@iLm|k`au~c$j_L@@xWU}+h1wq#Dl2e)vBy-B%9+MCv ze04P>bX1X1_%eaP&}}eWDp6brZG6WL>&YVDJ2JC`E_xJ99tg}+sp*R12`>|FzMdfMTN@3D{|B6iIk-wj0v zbQWJ-X{1OmF`X^cj!oev#|8SB0Vy8Xq*Mz}_ShIPJq`&fl7g-RI>Ze8Pep&@PP)zz zx&=;epmD#Sm&9-ZAkxf7MPi6z1VCXbJvaz1_d@fS!#4sTMe4{~x*oqHPU0b^&yZLW zR(yx2@_Tys|5;-nYavE`0yT9SU8OZOyQ8kndfZjP*Owm1%iu$E;(eJ^aqS6bkDc$5 zJu{yUc@0^`XT2UyXcUFXfK7UlspSWiILJvgI<{T%nR3cw3i~NFC$aK9#lBO*P*N5O zoG)l*9qU8I>vsU6(|3wVe@$GXs4nbUj6mNMgOMtOD)t61EggJ$6+Xwxny94#W=fjy zsEop26$nPQI~}VlC3yXJWjexf=UEqxDG2e zbW`us;xoquDz^Lr@!b?s5u&TVuFXe+5xQDR7<{R886cQ6#R}3GMqmZ0Vjf5EXg6Nx zFqokx+EFqc6#7#pqaD3yjYE-zL~^`kNtR!3u`}$Cv@XeRePu*`Tk9I5Gs1J~LkDNf zFzK+#q)~}rh@kBRiYu_xU{1HcH3w${Q@pMZc5is~!DWaiFuHZiC@}>mGmKlonwsQX zh^muU&1|_S^zYE9Sk9E{gnd<+#gq15Ew7IO#>+VTq%E?Y=DInhbA6bac!pHEQ zeshx)k%;!=eV%JbErN*oM_+e%+bT2GkeWXFhig0-SA5cXPr+L z;>y&X>pc-DM@nYn#`EFyXQJ;MeA=)>x(aYj91eJ@Lh5F?a>1&tVxEm?c&J)!9&skI zhJ$X~-Gx&|_z`DMQ5t8=d6?A!cBK{QYp_LOr+?u@a|Mo+-rK~`sJFCtcU1AGtKw#@ z=a)~!s5~p=rr#{GJE(FJcv*R)J7p-2D%PI07&sH%=X8O*rtIhzv(z;02JmNzD*_eI zU71ueQAcnk`0MAzyY64uAoS*V<}8_Cw}so(mAF%O)y~x~`)ey7GsngxKd#hQBfFbl z1}@TpSv!hgSv{wDXyPT_q0Woo^1TeYh48wi+? zMP7qOOUVcJXyc3~7QmEKdy~P3axk^_)LU8>Q>Eld=sHfXPV)u^22r!dM$cIJNnv3!2=em{jdh2|V* z_*r(QzkVkTMfz!kZ`b%mI1T9i*+wwU3Q}Z>o|;b%Pw(XgCpy1^vU*cs#l|ZOWqsPe}F7pkM8LjL$k}wz7*frQi*isaY zD7oCH<0o%URmyzC#kZ0`Iv6YLg+la2Lg_THP#bRkp}OcsgkR;4g?J}LnANc2r4n<# z{LR3Goa4*>lRqPLT_$2fu=v*lA~uON{0B4L(&L}JNW*Nw5>tDS&RiWK_mEXa_(IN> zMSHkLZDybguE@VRg&x7hZ$GR%4fjFugYujwj|FJ!VK#?zd4icdi4bc$`F?t?Qgfk$ ztCV|3O-DfK=xuk0euNeYF z01eZHyn}Xd=KNF6i;2r~?zR>@r=AW^ckzAxDJkJ|{Va zWsFK>YP`jm4yVO+`iphqHflh90$8)Sh$OdMlu8iT#1ct24PRL2sgvPBtj*DuJbn1d zPaR(uKU1YrcNKM}TBUdivmc=2?TWEavGhxvgYNJ35R( znq{2zRga?PZPgS81TUn>Zb;9X(mbS%n@~bsMiek9TEuftRLnG9XK7uu2;4b_i9B|PNmGxZB(ykFPih7#^wP4BF#EkLC@az`_NS2y!U_sk&lkWMFP5=hg%K zVJY()71U*ZtAu2s(fJJ}M$Ras0PduH1NYVgFgP^?{+@6}501puER za}A|!lbWHW3~G-k-NUSlNgUREOSYwXSKhX{NcX5ODfL(?mPfHGJhgGq2W2DQvI3p< z^1Om;D`m2tUh`D))7c^=xQv1iJz1aa3|`T2YNQ-XmFY0(q1Q}moeszlHtY3IYuBo)hbKq7vCW#-0u0KlT?%8ZYYdO-Y6&V%=V={iFCO^URc&5bkKliJirp}(> zxNi7bJdqML8J-&w15Y~gR@`gtzf9QO;HPoxZWkREYhFv;SDVBjbz^eB4x7)yGaT1j z(DTcVTY8Ny_TW4URqM?zj%DqSWMa|!V7Yj9-XWC7ey}uaF(UKBHlX1?aK~+l1xI-R zg7(BZKMP`MT*kyZVNgncn0cp~&pX6tLfuHSO8(uJ zaop=-%@jqH*15lbwhgG-h?a%x3%SMwpS&7dM5fk(x3>Ry!m;^9>L9N*m_AJWvE#I! zvvHXu-#CsUM40F(`&+AW7M|NyS$&1!cD-8|xz`=j$bCF;4NPLmdLI8J7;Hxd#uiaK z(n%0Kr7-(WVunDsp?khzYi%by6XlxQaj_s!I$R>d_B6GOz~l_e;2PL5EaQeJc?Wdk zG@GfS2DGK^@H-?#v*29jWT(_XtmthN4xlPlLLZIeGV$(`ZGD&!MvW;CbqM|UQYYut zRMFykQST-}OtImHQs5AQMV3$)dWe0+BZ|y-Iy`2rxgn6UK#9Ua59PRn^YHJdu+N;? z+T+mBl?3N+`q+fJl1P?pul5M8&$bzk$#*mi56_|9_bp?-dR{i+&S3c`{KwKniUxPG zYnsyT)S2?P-=P-s$xK*|g$9}9_db_eh^6gY!%g({T{E>;7oPPOglQ%1u<{!Z@pK)? zY!-ADmD%)qemk$c=qYuQ`~~NvS_n=KAL=Eev(oD+N%5X>sRnb7!&pUk^+w6N8Wl-Cr~Yn0Xe0`ZDt# z_Mh07h)2r^CN4;(ce@~2Kw)&zF>(~6#;u41>^h;hDXGNKl@yV-OGHjLyn)hOcTchS zoQd;J-2}f*Uxf*|pKhOC#NPY%G^I|!Z|Qs8mA~&KwN&4V0-IMTe?EzyVx8_`#*~1`KzrP&sjbKHke#(FZr)fN z@%DTaHRT;5<;0>))#RKMWQESuF3PJJoFhR`tYpEYPMkRGc;+VIi8~yw-DeGom^$i? zbi%#rmWvZv7G;!o?>bo1k0JCKUxT~;sH-1No2f3ljxBf4sTF-aW@;F|07ud1R3_y} zdVPF-h&3O!`dcA81Dn0YYO^s>I8{%1*MlRZCY|%u=(PM4PoG4puM$P2>83%! zQt=bY3K+Tw#T{Yr(*1wY z{KlvRy(I6g<@w1bF5d4Me!*BXn=s4Z}KvOl*y!~727cR#;CWyn(6Dqzan(0 z-<1PHCw54Jw0VVThv
|=y3S0D!1&0{N}Vo**Uoj!U2T7onO0s7xJ4ti+-VTd+A z{{!Yl)DAsC|Cc94>9=culCty%q<~B%zlzFU|0~8dTPwFU+l4;O5A3Ue-&bB)OEkuy z_6$of+T35P?_Q2dme6j_x1vR-X$-1okmrK_w42JHA7F!LSG04Sk0%@-LEG%amhs%dNLxm7QN zl@-qXF~}PvGfrCe?gSM>KlaE3^_`CpAxEl3KE=X`-vdZ+yA-TFcBDnr$namTne6(+ z8tC9M^(p512@+Zlnun+rOhQy#fOG_?Mp(Q9TZb8U7)a;qEq1A_Hz!uCSN z%uvC4zy=``3Jj||XN6{W=}`$WtkKn}tuSgQ0q13`-w26$Z!S{PQvnCY{8#kuZh<9k zKW`}C@4_a1#k&So=&hZq3&KIBu{CI z%?80_lpn|(6Pxq&3ukh#9wwFM*@W&Y^hYA5wvEYC8}(s@%8UkQ0zbzL8pG%2D~UyY zuS?_fGm1#4h;3jG3e4sY%<;dQ^!l5BCCXgVbsdK^oe}Xm!;!`6x0o7B5A$WK+VnBc zp&GOvIOZZGZEe`p*9)wmKnAN2XARWLJXwm+2!+_0+Y+tCCaYiQwXTRZ?2_7xvrA~t z@!d;sOc5&rl{Z*i+jktqIWS33GjsCK;3*f*T(0VJ|C?PwFs^@~?&k)d7hwOLaTKK~ zQZr46gJaMQ*1caY*z%5=H_hjU)jaoIYwv)~&={eWqFIVT-iYmi!VpHe1+7KYAY2N6 z5m9XQxAf-`Hl*h;J>yLqD$u6Si7Dw!Wy4We_I_1cCy9BP>4FpPvK#djlF~vKX9&vN zUzj;h6m0Ha54hZx?Le3ztvVJ&AqP|Zn4N8G3sTW+=`K#Tn@bU9li>kPcN1586>XYL z?p||Ll1rs6f81~R-sc}1&ufT%6!=~^k;I{sfIFAX$R~u;{&9<8_>4UZTd^!^w?{Oq z?vziQ@v#$}WdQ7q!x4>mpf;5q2{VyV=0va&UCQ&1V4uu@g^=cGDSOigJE+RhPeB)d zXUsj$r2|R>eN4LiNM5c=n|7!6a*7Bk3SaPPHBOGc0VjyxX+yb1jL>0q8AloFUUX<` zvx%(C3B@ENmPgoFEom(@oH2&QJ($SWga|(?+U(*BF@J_5H=F$8Mb!j=Ke?77*Rq4l zRyaJnG-Sr|;&hth<33^&=XdNlUafZOFF~r4}oF&w&(Grp2>4+IQ z{nNx0)1(s38z3J&9q#DSONzuC(KfeAopkTA+Pw2Du*5Yp}{$_*I zC5&{`wxz^q@nncwZ7{VKw8<#Tzm1e25y5298Oh<{Wd!J5u-5u*z-ZFNbjV zYJY)cFpZ&Y8cqpl+aNEfhnbo^*@f-eI}-X5{+@y}AsdkR?(BB9-dV&8 zs0O^^*o2u&{%Om)M0L?$0H5&+BA)aCM84g41qsWf;ClP-UC+h@=QQPBGEfjMtuCEy znIH%Hhf1KXhxmv11~J!rf``p?-pE}v1V_Ri?-QAzU?3&N;@GwxL)T(z2hXpIN{Fid zKTlm%l*w7tX1hzG^f!Lt8<#@?y~&>cngi`QZ(&~CCC_k7wDwgxZs2oaZ^g$PGHGRk zuH;fWn`C)U@5K@;1#*qWp?=^~agG?RIf|la)rQKujr0!6e-!S?H*IRf#Coyp;hd(! zXrq)${8l<%+ec%wa#Z~B$Y>3`=4{bma55Mj`w8t(pJr*gghND!`l~`Pw z|9gy}bW|n~EED{~bPp%or8uPe0-^!I2+{_UahNDW%5bDcRa51u%9dOB^;E@@axP!j zoxD7BsXk=Z;ePP-mu)m$G^%ipC2vN0B_-J>s_5qFolT9@e3_ibi`dwh2+S#|TX))q z1ZWl!#p{?=j(KDU{7~qM`C=?WF5+;;oEOg45^i}rby*RQNYEfEj>1-Pv)1P5EwiUx29*T zH}^n*UATHu^56Ov5gY=~3LjBL(t%ex)f(xXA`nGtU9z8qBQ6Mqv*7Yale?ZhD>p$H zi@!kyeGR$%wsleb=QMJZwX)6b$Jy}5%T_cuWTS{V90c}M)bfYLg8|es#$r;MEr{7* z9zs&D>HgkzVSf`o(?tpr-r-_zspPek9Zq@55PPwFIL)blFP5OYVlMKTC&Uj#%2y`0 z)0`G75tQfU$HU$`gI!-I1MPa5mAJAM>qiO{C-(F!N0;*c9;`o>ptCSrCkDig`}AP@R0?or&mB;k36U~ zrRNt*A>f@jbb!w$0pasI3@6YQ9R!8izN9;=aqagyNSrbt?jP-luy;zRA3xdAAwM2! zy;s?TLknrJou3Zf?B`dB4&ya<)_BsHKz3xKC8+nT>>J%dg@F(1q&7VY99MMP-8=>} z-6aXXcU2Ni1Ha~F%T61O`;S~*#ge{KD@dS`Ow{;E&L;@Ju1kAVD%@qaxEHq)lPvUw zIG@Hv#N(0{KYpoRA5C6LvjE{8W8EH+in-JJrp;!$+I|>Mu1Vg`Vd{r!*{X7<=osMS z(fU0V?o;`PF6l2O45asX8>{0(i9$%1XRBn%8_T`A2NUd7!Nck>8z*>fGd`iRqo7C& zW<_O@E;;8iJO38;aKA8BD~NZ-0v!=05w`#}Ql|k~C?DoAF6HQY4G4L}-qGva>>hKh z!8)fvZ&(OBu4xoJx&XLEE})A)N}}&YWFwM%-0+aOz3H(*dRW0o#-N`%vOwWy zu!f-(EdtJ%aUtc-yBx9&V_jtV2XrQPfT(HQc0)ta2=+2im|xAx;dyyS;eczg17(MH z{&2zmYtRXo{DJ<$r2lAa3<%fsY722?0uE+xi>pTPFuNA#QY*tDV}OE+$rVDOp#wKc zCePk`blhld-1FJJz zEN?D-{-*2((`8^TLozE}m#=*(gK|)ztIV+WLhN|8SnPQH6!hLqja7WAtzTMP@1ZU< z%_?E6+9?B4OSdHyvV&o00Y-D%M5$PK#~Tq9t!_<%c_$2BTg`U~Y&`AnOV=wcD0!Qg zVKLn3P!7az^+)e~VTz6JQmgM`Z*nY1IGD__plWzEmR~RFffN|VL5l{0OC9&sYW+7$8P!h7)2tjZdU%@rA!<@N`IhcX7q9=HtC!NybbOx`M&7X+gQODeHdstezqOF;H}YVEkndV;+WBE zZ1mSsT7A`4(PaBV6>z>@g(Gf?Yc?ZDy-qS4ki?^#mps6&fhucH!PF$8f~%`T1-0BZ zO;uS|5(rjwNvk=Cg@H%Hx&K7BQhes17UQ{^Y8Q=D@XbrMF%)5MPt~=F+krtPDWQNq z2*-Ayje}EA^);s-2LqZ$6^SnlqdewDQdS$w_rAj~gxbT8|NkN8vatTIVlFES`~Qf! zxYPEe95;OiN&*W2Q6+|fJE8${LHp)RorDlRdyVVO z<=4Y+At|a#$Uf=HK1HRy+s_bjxzaf4*e;0qc|k>mFL2DCM8o_ukjl71_q)cG!}i8d zLR>%BptM?yP+*te&r^f6fB^j;?NIm~+F#MoUPjCGbg)?DJzKi>wy!SV%{V0~AyiFx z(Ab@mAb+RQYdGFOK{JiJm~{U#gb{CnucHtAm^*qzd#JSW{RdA^+OuVrvnSnuXFg&i zh=pxI@vv(jWZDFTj6nG?RGFq=B?*Wm`xKPgBrR*LUf0at{7lvWWKAQr2;||;&Ce{t zzWOL(8x@--NUtb*9JJ{8xtOb8>+xQOkF zM=b2q%8|U0w1Y1@<73sR5(m6u&JIylIf{7o#2}`^Hu92W!L~<+8}>*4fjCrNm&~2i zdE$Bau*MHxFZ?|Nl6kR(J*VN6Yt2?PSB^FC8#W<{C1K*bYG1W z5Gi`pq@hZ`GM9xr^|z~P3J**pyACS{9MzChN`@`FLc3?m-_Rc**XIsY277w0EmJ== z=O0UmG?bGXyr#-XSmDfdcnS^C*=(`qRaUFw{qmJ&4pCmUWtG1sOqq(0ePvBVbtG<< zVgTG9iG?J85dbl1E&%+NhD|qTrYY{4GR#gM4-8qBYB5IA!x;m|8@1(`gL^CUcMVRi z*%bGo%!aYSH=~n14duPI33BYjoo1R_@hyhnD#@UQ$mE{zvcK8~ zq|wc`iDc`C#;spNzuz3+h}4)>9|$1-fr=0s)F~@G^jKxe>PSfjJt|QMAuO@`{b1DV zU{HXyJ3t3V_3Kdhp497>uts$WS%+KwhTGZQi> zEcDAVQcIi2SIY1Gu2f$oVrzLT$nHt$UaR2c+DuMb8+ygtJk{59+T?dPj?)HsVXRgl zuZ6llhNBjrIX?fL%hL2>{@v)Sq&H%p`i+3Xa4v_7fsUB0qUb#Hp}mAA-3Hf)SaLZk ztUP43sf5-|(z+vKmM|P#z0Nj~otzrHQb0b21i`v>1Iwh_*0?B@gK=##(?}1WK`b)9 zq=yXR$bpJ&ZuO{bQLY@k6l-Et=1~v)6S+6gtW5!w+=q^I(44g&PZki{!Ninx=wot-T9*GLwqac2?YdHCvxju5~KO1+?eB&`A3 zh{yP;4z80~<3B{|4Aa0bI)rYfLiJgTs0v*M^F2=R(^x5=i$vHdzav8+lu9#bZ{ zounBGb%n|!YXa;pSII6EufcA#9BF6BKS%S`yuwu#v!?M>zrhn$xto3`@)#;*!~kd?cEZpy3NyO(y4uJr@%0G8P-#;2CIM_+dmk z@47J%0`si~sDjbwG=Q0)J+D5B(BI+Em_0 z(%dMMHdV^LS%&|f+K8pOr9e`se@`@zM|U$T{ltY!pZmZTOl4 zaa`hMGQ9>FvhrK}+^%vkuR}F*VvG5scV?fHS0_|myYSF<2nP4)e{FN(3)B>RI#Gra zag=NIN4{5p4T{w6JoO4%ViDxw3-1A())+(zs!8zBJJq=BI1@3P%86lxHlf7j*+zjY z@Zf)(qXS^`-K*hYb-9H5uPdhe_#3>`4ku*|2{0Admh|8(@6=|PxY6T(gBISqf%AAmj-h`r&Rt zC4J2ai$O2LA_XpJJC^o42KveAk$2~-@b+6Ds7Tz`-k$;A6Nthbn4WNrvPdfC^}Np7 zgo72q!tq5@nOBsZT$sOO!YY!GNrL$dHjT8 z!?hmgP*-NRn5sKCXn*Ry`Rdd-uL;Nnn8q zrdGd<2u=6STMIl|ThZc=NUs15WR_}0va)|BJ-rKeT<$UD@O?IwOu@M~izt4SnTjIf zE2+h6O1U|-H>1Vj#XO}nnVEqKMQgW0^N1X8p}((m%u|q7s{nI%bsqLFA|YFLG=}kL zK&uuQ3D0O}kXz(Z0Y#(DAAn76m)Vi^Vdn%Pm8ufPC?#%0*7Sj5#tEuk{&q+lr`l$9 zWLzxID9vA{YR3Ifj{+W6FVjCC=v{~FQ==E5w0A%o4Yws7G**xwp9cPsCby6Jfx~}F zs>mVnY~#UXnWKc$rCOxpNwK|Kr(Q$5izVFWrNB4Mi#dt2?K>l`UhlrijdJTEQz}aBt zGgCr$lzAH!qHDdWifJV?%NmRiUB#vOA( zZKaS}SEvZpjZLMcG%Kw%tLnTb(=M@*q8+SP1Begp>1}R@JV^wD)vqi6` z?>q`>*kQU@J+zT12o7lr#+9X#ZxP-sd1Sy(6%Vz{UVLBK9jUoDj|I)>NS$-5CJ?Q; zlZsK|o1qg`B_xypd%cuCUw{@yG`~oX=%KGxAtRH+%VmB zfT%xe)$>roZRndps4Qh3s@w;&mjGJbv9Fk-o0PlPxj|GnFyhN}DH#dv<;}hx%n2xJ z^@k^$zQvIE2_%?Nn;@N~avTq#G!1=M+s7dG(b#Br!uD z?fsO7@yknhj$1~$$Lb;l=eil%NaK1!sAu6g3`<@=SLP7?`1J#f zi2LVCPN~CKw>+P6&}tr!j`zZ){B)V>>))M|)>efB<~67`JI|tNlsvo65fj{%Y4aEpx=4Pb=khG+Jy#KF|i{6$&)FouDOg&-PARBwqI+%K!9nb zi2qY$`(OP_U}b0eAI-DBcv5kso!2)SM-bFCen8M}jD|ROc2|8^{Hp5ebEAHk1}C5B zRLVA{;z!D6m?3#_s-cuh2lUE*Z`Xtf#NQMM`glFjGLaGS`4PMD(Q$+L{tET_s+u)U z5%~}%$3;Cfbie#xhj-Ka3Igx}U(r0FWZV|;0&@#wewM*JU!32MYLM?lq1>nawMau^ z*2}^fgrVvV4BQ`UUt`igV7nR1+0f@3JeF?fleo(Ssov%Nxf8q9Z&^4sHF|$Ee+Uth zBZAq%kN4K76sE9&LGnd7&fpI-o`U%MzAwjjk+b@QRKS}hD^a?z6eOm~Z~H?*8$! z*D(~ogQE?@@QUdHoNu3Blg$QT!ijvit8z_fBAr*6vHGgaIPz#Bn3cS2=V#w?$M084BuvVDowX~mH2_eB9F@Sha!4j z5Qs{&s8ItoFR{YddV=)QW)Hj0T*lWYpeo2hEmS$CLx~=3mv6^xIT+(Jh+iQp%V^2k zUD}A{ggDk*Tbh}}|JU?Qsh>&An7_2T^dVQWhnh>}pIxnU+9md@fOYG`<8R<|@!W>d zl)j#RFc4Yl7~Pm!IpK>(5FQvrCeNXx)xnl1XH(Coabb3MY8>xuAe{>wRo8wq_c2Nn zGi9pRipUA#EiIM@<$73Ab1l&ejz=gqk!>cGJ;`jZn<_|)cx-FI-Ja!UB>_)Vm18j$ zRByT_wt{$2Jl_ITK}e3&&KOWMxuw>?vY1%dDc2Afd z#WWx%awpgdy1f;|ofEMTwst&R$ks;^W@F79a`jqnUHSKnOb!CG4KZrnFMzaFtkIS< zj^1-{FNCN)#j<=&G3Cs+W303rnrNbKTXg}Q)GF|9vt`R^2NAbIU&$+(^})s}m3Z5e z)j?;LXKGpRRyR?Mh=#^u^0pOyfxm-rW-Lg7u%f$}2tchwc6_`xIWvC?T65G~xgm?} zBdOOhcABA`;PJgSFb}@rtILBE!Dfapg`d+cM#a`^jqii3oBBoXJFMK}&$UaDY%;>b z`r0QNklw>Y{<-v$-$-5muW*Q7{S2x{ftY5?=qqSTtCg>R5O`Y*+mQ9{1990s-`Fiv zA(`q2@&?^WAc&tj@JS)i1uT_{V8oH_w z3M`48o#=bxImwH<6n99p_?|{PP%>ev1WCs4Ma}M1?0TpgD2()Mn$PdibMzL?Y4jtX zQubCzAv0=PN#3Mdlel7ov_jXuLuy;BS9Eqoj;xLV`48F!u_$}Uz4{d2NQSXbWqph^ zFXn>)@}K=)Im|!&kF8OCFuD2JX$n4XSCI_CpO{rh*2#by6<$U zeKra~sb&+xD&|WH3*1c4Pi${CGn(0 zDS_h5Y+Wh~TRUsuMLoe{*Xu@ahOuG961C{4^dW`s64?rt1m_R(H%-b}D-4YLcRJ%k6M!8HrlyrsD?u1tKas( z^Uf2fsT>zavLEX&g^;@?tMd^_rJlNYM1v!E3u6PEGa~wR$K~K7Sg-`pb$mSsZHAlg zjCQr{#!l{C>$m~~rIs@%0KRg-1M2tG%~VmyOBw1`u_C9H?h|-Y{1M(s>4%TAl_kI^ z#B-EAXQY50{NR_hxIMxNiv%4`!w77xNTJuZh{zjNH%I>KBm6rudS#a*FbfT-)mZNQ zK8g}UiFk+iH-JW64rY}5%4WIWk~{L|NvWnmvAkXFE;_Lwh&MDy$f5cy ztw7hVtDxOx?Z`LMxx;TZBSE{2JhF%4Y{pC2-%HRi znQ0P@TIi2@M|`SOkro$Z-XEhfa-8TzXL+<5CL=N1kz0`eo@B*0d5u_g@_s(5l*+v# zXQBg}8IVrHwpIh)CWo)l&UvooBy{%{#8u4z$#wvQ)aLn&01bNjV-msbIRz0zyQ*){ zQKgtdOxm{+0_Qp7Cf(X`;RmKAoz4Kq9f$}LvFP7F!_fFUmh^{y@%2M5S0g~eRvbJO z3nR%+5!m%l7)5gS0ZxK30&qIHdP7T$0^~v8{&cEkfMD4r{ZpUkI}&H?3*91?SEg+% z=^zBNBIn>$-+x3?0cJ_mCj3ea}lJ#s{u{x^S#i7P``%ki9Wzy#6o7&M`)mpj+2t+qP}n++*9eZQHhO&mP;_ zW7{_Gd>6^N$@y`TPN#o$RoCj&dTXtxR(1Bt3|Wv35e7=N{?#)zL(MBP0qo~euR(z6T%rkM0RHVv?-G^AgaiBdDK@ zL||8r=OZGEuk~nV>=ISY+lJw?LvR>bR3>>0nj(9=DetU=c2P7I7TCxAEwdkA81mQ(O3&h%gYIsqns~q z{p){_uaK#h;->^5iUNkHWu)#aV;k zto1n8P3J5Uu{J%{w74ws&;36ncz@sc7~nU2Ng_4(R>c?!p`1aPZ59i zb&U?`m7Nr6@k|zH#oc{DOJAZ=1Ik|Nfnk&s#4}y=H>=2d!HoTWBG_X@v{SRe4ZKEu zL(uxK#0Mv-UYeDt)M7{E;U?7wyqAvZ6 z+d8}26@_XbBf2cg04=n)Ewd1D15M>b_hlPWt>{3ARZH-;aJvU~g#A{-)^)7CQx(-& z;|D}r)~LwB@_tSLzW2}_W-yH!xq-b7LyyCj=Kx~wT zQYh1&jOrzJ5F`iZY2_Ttzx7dSvVUhV*NholIQ!di%AhC*SL#|w0L?`f5>v64&s{XM z3XMu~Z)}|=JlTzHNHzT!tf~V3j|%S?%r?ZBb-NxWBB9IBRc^MqOFN1zb2N!QSSOt< zk;BR9S5tpC?syz`yh}4ePo=J{7fp*Z`q*79YsKMjy|m@#61$I-ZnLUYkKm{FjTe3= zR4KXxBdnuaQzJ@8BRCnqT zY)g(Dd-oHanxjr<{w+%dA}TXBFBnR7TY5A`aY+%{!9lA-n3oK?2Q7RCY(BiAn}a89 zmXtkDy2TLbDdn1EFOST8;;t2xkD5O%xLLw7s9(G(b?*x_s!%)D>nW=kmN@j0MdHB( zYSAofDl;jT?d_^_7Rp*0oxI%bL(UCJsNHo~>{>bOgvh%jGp-@kq#*f`HewBltx!u8 zUPh?q*9uTt&@j62a4jaMwRap7sD-1ExJpcF30x(u%c_vQ7}$8-K?_f6K@*-;l;Tz! z7*cWFO2G7v?0%Kkmt$$_#5S9nf_C@fCK%9|qta-d&2v-Cts!p&H$+wUbxYUYn=2i}BnGx_WDzHU^o3mtQsR!h|zN7&_ zA{oDATyxf7Zn#LR`K-z!fB+%@0G>a$Wp$k0=XHpBMG;md+wJ&mfByovLtc-4>-6;-CzjnHOt2>2vM8J9kD~C~(v+C@=)Z5D zo@eygvXBh?}1wZdIL|MCwT8h zk5u4}`pfR)@36f=SML?^c!W#Qd{J{()Ph4#1OLRGp2!WgD=;&T%kb8%EgaM4p zi3aDX8A3fMQAvK&+AfL9rL*_w0h3SI?3y&+0}Y7c*~&Vr>)1Pr_)+0%e853pg+Gbs z-BiN=ZV)5ibS0Jc(mWQk%6sSRf>E5mg4)+&WjBZG9v_ByAz1g+Va4(Y4R;Mk-GKq` zM&@t1Nxq}SYR%gtWMD}YzhC^K1CQA(jv`Sm=z43c@bcpWuOs?Y037GFRTWOQ@xdEw zVWg!&jVKW?5H|`LI`Dyw-hsw1rg^q#TSf0SaNhO(r9T(Y9wZYTX_)B1y{*C}+Z~be zv?nG=-9C&XU1>F2WshBi*!d``ulk^7oOj8jo>OHun{rf}sW7-p|Fx%<31mOzkG)TRaS$HOtzZ1HV6rKL-3nY%Pp8*JJe|dS14ItV56_EH4rSfR7ft6FtQ>S zGI>tH^3!PxOwAl{E}WVyFTI~@cIH`3vEs3cFV%a^lxYL?-dZsWil*=Rfy*)zdlm>BZzpGNo%ZJ{3n^UAej!5kFUIfS*a zZ-W!;2&i^OZ!H-pJT@ceH!lF!mdZ`b)WUnDQIenXRUk}5<$Ol_z?X8f?_u-v+*RQZ zAV)4YoY|~Bx_;`fRkt>Ve8!xizEQS*P&T|#5`vNi*jPs5A&f8OP-(ekO5u)*ILL79 zqGe+FT=|@pW&~eyxw|SKgP-H4-{uOsiGzA?wLrB>AZM+b2m+BQPVXHmp9YLHMQfAe zP|AvA`+xNHMSb)WkN!=odnGGPw^-Y`lhp?4XcFsHzjlIV5eOlsK+UjkLz zstfB1QUxzre3KB~!J}-mmMrk)+v0i7VeU%SPu4;C5DJ=Heg=jSsIR; zBgF@u8?_u2KbBQIjvBOGRxjkEk{Rw#Av>c&jtINE+$n{sfLJn7GKd)nM-`yqkkDm` z8`5sQEkBy5Hkv9Zt3`b_Kf=>R=#NJgbh0L2B>Q$`@G}ec*pzeoBOk?iL;varMAmjW z;GKU0`4ea09sQHW<7iIN*?LiLy3i*7QbmX7&onXxFt!MZ4L)s)!}04SK` zG*%bsaW5eA&)&ty6r8yUIdh{x9qdfbXtM$=pVe#D71?iWAkQ```nB*tW$t8D$CO>vK_fbG zTK(fBWm*ncB=EQ%sChAgV$4Xmnb-;%zqs@46;++cA09vuulHFO>Aq-8Ty3f<1#8*Q z3rAm(tSbd;rnX87p0|5R6Ax#}Qb~R5vr}VrfJDL06!BpY05t1Oo*69dU}mz7Id0ZpAPFz-U;uCr-&0f`eiX2BcEZf^Z0Tc zIMYQuuEtW8*Ha2d@?PaCj+@O359RfYNeW(YB+v``yn}GG;A)kZ$a1WqPEcyS(XV-~ zkok&`D^^(7v=1jG0}jv~ke*@Jzk^|!5cv1~gZ{81UL-if0>CKZefJirG4S(S7Ca~~ ziPx|q9Lb!yu>t7xipB-qSe&_qMktHEc#ya#vdeEx9BwS0oMx8^ zMmgMsnvd<`m=#6{EJw_Tc;RfFUG+KNbqmBO8bOG$Ylce$g z${ZD_z~4mlNtzx>z_{n=J>MT#LgZ>!!7vBWlKlM0OG@^w1i+Lcbs1wIzmBI0 z(wdY4nYG(8hXgRYynL;5Dz$3{GU_!$GGa4=o+UFN>mURIIvHFG6LOq;h(TaQ$DstG zB(Ln{5r91O;S+=O*8;zM+Dm1_Gwp5g)zAh@m1mWV!ND`>5C7{F=FOkbzIpHPQzW_7mCI4DU6F z4WSo~M<^?6Av%XElHh_upBP=q0BSsBXKWblK7!X|_5sLB*`HL>VrOW!n5Hx2hh+we zGo=3;0WuU@hmQ^EESzq9D6zx0u&H=0Ea@HwB)HZVWOgwsmNd!&fXW*;y>@v=1cVasqb~A3N4M5 zO;vYurn)%q`_U6zQ~41tIWrJpE7sak-mfvc zz7KsN<)y96^5a$W4+^XeLZiD$v0nxp*h#9o(|(=r1!yYE-e;qL=AH&>=r%lxR3H;F3ZiCDSXLOi~XLB?8087pxZp{;9`tX&Bf6@Zt@R zG3d6QWM7uxT!619MdSs&sDlwNaS;>Aq?b}I5>ldsQF;+x06=|;FeQ-r(GrX~liU8m zaV$L_6k5U8X8kp&7%l@k7?1JNuPHEEeocXs@>|OcKr>{Q?^U2ruKKWP?6ulqrmw`F z@rF0J8Xw-RbM?}E?E!q7El(()Un428%^rQ|+H%k#`qu6RGr>m|Ouq<27CUjkKu z3>g%j5jx{sl$-jc!e#Pn#yBUt+Ao1QvxjiZDApm7gg6I!bhzP9r0HqU-RNI0i7Yja z(acLkw(X;$z~n%n_-#_=eNaIx26RA9l;Ypd0;%YK1?U10om9tJs3=@?oowvrY(GBS zqMzhr#tU6zI55JT-HH(x;BuhQk17pBrTEwXG#Q=fq4dus+jd}o0N_sun58ETV zA0Q+cG?n2444->LFQMr)3fv#>-)zj3c6>ab)83~rGf&AtHX#6edA4ye95YMlH(CL#xc(kv-GZ6F)gKvk8LN?|B z0QfD`y9*$`Z$3m;(DQkYL{_t|rvUqs&OF%ggBsWG#_I^L08X$elX>`zgYpy1V{?Y> zAWjxMCvYWc)^Fa(xM(#<|OMQW~(jvIp$VtCui9Ac~t$ zpj)Xcg*`~KeMT3zPEUE$#RO-cPJ$UYJGm5JlBhvY2RsIJMqZSY-(ei;=y&ILXf3hP z)_S9tM@%Y%7Mkv~kl`L&brR48qK@@!Aa@M-wg%yL65@+8{!L7r*P1BIk|5QWdFQxHb zL8F1rGU(qS@mXN{A2-9yf^pNP0wN4{Rbn`S0KDb!;nakLe#-YBK~VgmFw5+0$FN-! z&MHzx)DF8<=C?pVLgNZAvO*M545+1)BNc*g>p!jzw@1$PG5{=o6tmGGaheN?02N86 zVpGNQCesl;4w{$l+UIt!00fcyWMnB=?#E$*Ne7|p*34O&7}pAv+_I3JDQ&-2wS9NUArp!+OhViK6^`( zS=wW)PS;6{N9cM^i-QPcea(qj)D@H!q=8hl;HJ~zTGktmw_Fy(6YtZ%_o`)usO-^x zRvOjUbdg<0*#NGUzBnNvi(ezGIYyaO*3fDe5EsySmJVM=z1sWqKX*S^Y4|JuT}bJF zR2++i^Z!Sbrg3@WF57En>(ZGhRp(#8>)l2DNd!8jb&g3mMfZy&^01TJ;h%{AER6Yn{JQ_ewu0W#e7@`EcXVZ<-zLgF z<&Md7cN{9eN+vfH*Q1i(i#BCnW8Ze|oxi33u8^PST(3LfUft<=4DRxx_x^1+e$YDq zlm(7v-gm07TUY-v*#xli8MjyRU_RyAN51Gg0eA_#fC|qkc3Hbuvs@kQypX}w#8~;M zyYZV8iHklJ!y>d98>$mo;Xhvj)y{2@wMelF_i;LR5vh%joolF!m&}sNyj|8`8s{7} zLXzBIb0ck}d>G0w!6u=sXYOc`5X{j{M%<3a0OY1mF~C~W_(mnX1?_>B;6pyG6ExP= z)`Q0$-_?dXOJHPZ)YlM8^zWl8!BNw&K*q31W*#u#312iRg$tHkBDj$T(jwPBu|c-i z)wln)ne`^8a~Eh@Sa9_v&AR4ME!Q2HrVaZx%2{q}vA(Bg1T zPyZa=|6p7vrcp8b$g*$w>6G>VbB~Aa*niF(mM9J*E!1cT5`)SxY&$$zYf}a-PPh2S zW~x`@gJn$#k*QlRsWpWqGo~qUZq252 zouZl#M^^*vz}4HNs^W$OG^7ri<<+oE64AhxdVGGRY??~5Nya5Lo!nRIqmJ|=UeT0^yfQ=J)LtX zZtdeMaell(3-b9ds$gmNthJlt>1FYNPbrTHMw#CZh*XzqN|6#WSh};>FEvGMr(ZDP zI_84m!8p*KG|^?2q4(zSzS@%g40bs?snk9ur$1S9NNLQR%t%Eu!R>Z3ne0Ke5g36K z-nY!nl1eZ~3SkwZXbHBr*_PG`Kf|`HqNl-gX@$zSnvS-S%EMRb5H%F#T9&Vv(qyB|YiWdSY#PjMp)g0d8VV zkwgY*8NC8Zlf#TMn4g$h0EtC1kX+J#w+g~vNYyiOAA>aeGe zuR%bBKFaM9^CsCKB6!GaRU-Yvm>8^pNzzYOViIuelz}|gZerxOjm7|mTte*HLm(9v zBKIw!$|*qoU2y}@yQKsG7&id`9!UQpaXeldpS1(x_;OQYoO{2_eb^h6I301F+t`vQ zq}brj5@~bX$&k2n|J7oOd)L?~*u*dYRp<014(rJ2-xdsm7;=f&T!6A}6y{1N(6Bfm z(etk$O+e@bu8=(;$94l709)G3A@r4t6#&<+&B@O%He%hi=V%RNM{?=Za;g$_PZ7wA zw@jWZy7o{V!MF!McFB|yMovS zlU}KbeYV$MK{NWrhdxqtCTRv#9ZbYcI`q~srz9iVl6{;G;Y`ReTAf4+R9C#D1J|Z`2)`1RdKJvr~x8jv!gZXC{)G zu*%$t)hf)FcB^q}i}pQ#Yx{K`*1SDOuKEgCb5BX)un)Uh9pW{JV!)$sbZ0>I$m9ny z)I?Vd`Z&+7l8&}v2fqMzx}_uYvY+*^I>K)uj{KqnA#@O;dx<*oJ~cDd54!)zf^Jf+ z9me_3id!8COk(G#Q=eg({Yon38~I5|6`2G`U-qRJoN29;yQSn>Q$ij%HO(oGsfC8xfhSjNH8mKTSDs(+kqi(gUz)nfnr5uJA7szw7$0OG6mlR*K4t7}Q{hrrg+6A8C?4yQ;beugdX3Uwv1Ue2~?e+Ivg~aSpVojF)=cVuuJ}H|I5u4RJ1Y z>O&>=0ewL||Bw#1ldE9`Q|;7JB?Ntu&PfxkMgdcqIb!$}75|EVF|aSGU$3e6o#F<8 z7X6`6H;FO1TX#L3EGdNDc4?R}$;C^PD?+H4ANfwxy5w!3l#bW69CFxltqzqtj4NlWlpop?F#qH%nze!d9vkL~d=6*qMZXQhy;wCEYE0Ga-)@ zLvP-dBqX9$Cd0!v3@pL_Us{9NpppSv(ftOlq$I@^`rJ-^Qu(R}e82*?uD};)^94As zXOZ}lpEAR3s-8g1h&*rkUznZG%{3!qB{+VR8)Cvz9E3_ZC!|!_f_1D8@p6QbmB&U> zcoAnJu5+3IBEJDDOl_2%4a;DoH~GA_lF2L_!cvdSg=xKuVELHE?o&7uPSGP#3FPki z9A=%*eDRWB&A1%`?jm%`%$Qo~K}dVy`IOYHiBV_bpvsb$Tb=ed$mwCATb!m_k8&74 zgI=T{G2?`~lY`B~9}!}y9rdFO0baOdDMM*{TCN-bc-%%=)@~~teS}V?W1c%;XFdov zfq6Tx5pHb~vdW_i!D8iWIiNqg*>{r5I(E|l7h(im6FhAY;VjPvCse~-dWx-(l=cXn z07_H&5ue_AQ;gaJ;R2DYSwTQ4e%MzA;rM;J<_l&*ihIvAxd7P7x;uI+LQm|Q zQj6^-)CAjrXRDsqA7}KJVsRK4l1j#L^0;;8x~R)Tzh-^$wKTu(c_eE-Q?OdlxRT=z zEN)vHdqurgx1?-bk_18DbvgWVT|I^V;G%i@P$Zdme=IedO^4#P1ad*a;cyLEXv%c+ zHE_=>yA*v#gk6Cebv#}e!({eYIc3u(geS;ElCU+(Dtuc3aN-mI#1Pbml~}}!K;fLO z1W=DjVI8xHOhFJ`2ZO?N)f^`mhZ1UW4TCC%0UwD9mQPS!tWc|QO58sH@H0O@5dN97 zHvn%|*7#&M(b%>;s#&a1VFm zkQd(l2hQpKJZszU*Vo>}G4w2aoIqpe=8&(whVZVqg&uiN+nw6(o(~VcB&{t-mY`R&wC~^UqFz*ssnV%s$Iq7Z zh51Cl=e9f3mmLZ5*ZM{yA5MUChtXuU*sHJ2LTkD8HU7%C;q_)~E#en-w&1&z)M=@` zBA-qZ>{5?>lPH~@4-X(ci?z@Y-hYi2n8$C{>cK2S98S8yEOD(a8hkqHyC6D)womQh zMH|56iuce4?-N&o6IeEA)UL)`i^z>ho(=n+T&OyyD+N}2jL70iu<<(KZNzPf?*Uk0 zGVM-6+`4;Y$nJf?Zs|!D+bny(-AK3p?FQKX7$E8?2j>RC4{c%Zo`V6_4 zBIoRV>J)I)-kqB`WL_>XMi4{FGDZ^Wdl?Tnh+e!OIHq2*nByCg?LrT^u+o9S8V9ps zc1i;_u{uTth@ww0$4-NlzLCKeT2cw!rUbaAe~S{)<0l3dzN3B-=^?g+p=d@aKirzwtc9G=eiZQ2oFPL1E%V2({EaKn)FyGI5DLpe;e zTTH?hcasa&Mmri~e6>8DMoB%9Anl~4Ke$R>;eNV z82pLeL5Z(P@B#rb;JFfDq<`Qo`j}T8{X_Jq2~Ey=0#LgP0M0cP(U^s^iq#PY3~_*o zBY|lvMhV$Mjr~I@hCv)U%~o>&fR8m6(Vb#64Z&eGA_#Y3FWd!&a)z0#{w!Yu!~W+W-$ z+K8G1HOS|u#|b!LOphEo7*Y*-QE&_4k1PGGmWJ~hhpN3=xGD)rRj;(Qe#e!g`Gu?Y zE7dZ5SwhR`vsl~n+pv1n)cY4CID%$VLYaA#qJ61qW*iNA5t@16A!k(NC86o3y=w<1 z3OKJmIoBGRp4zOOpK71d!k}EADh+v!#EDsd{t>w2FRa@$;RXRFYYtFc!ahkm#E=VR zjLGQ^?)2;_TFR<(I_1xp-?g#7uG|QKYP=Eqsm??YK2Wi&gL`qh1E#84q=x5?Ga8x@U5g_Lq@RQ`@i!^xZYdp(n;`6jQy|<*f z%B=3Im7Qn63@WO@^#@ZnL$CcFJ!PNC{&D8^1CE4mE&1QX-q`;~I2SVqBkO;~xsJ4@ z<4D?I|5Lbhp08Q4aJx?*4log*gLF+Re(-t5na&m9WWN_*k?4u)$;i}m84$>*`yW+A z;gFoSgfgx#=jmYR&zZ2l@U7&q^Xv1&9=sl0?@toHNJ@8G7`<7w14vn`KfmtxU9%0D zZB`M#JKwp@M*Y}9p+`@$~cR99k|3imNbC{l`B=^_-pHp*s~hIgRiHUOnDIUM+W%e3;v;Oq@UC?D`*!K4De)$AnCIKHHfDaPS$xff#Cx3Qd`3iNP1 zOosIcl5h`~mjd|Neo4%O_|{e4bjspmNZ_Pb)iV0iadRLqR8@KZo$E2T>zGT~a6$g$ zLMCiG&IeJ2szfr1Pwt)?Hbw1|ErL=$Ci17Pb3639)>39oiAbY+@BVnv`qbShMbmwE6c5^|xshB9%QbCh-OYa1js z$PJiNs)4bG79dZ5&F2xK&2N4p!6VhVZDfX;wlM%`Ye_8{1iLlQPC*8Y#~O1P57C~CgHvTWGy-88wj__@ zMaA1yWk5?8sn8lQj3E zdcQL8zaQ#`S;$djHX%#*L)BQHrixA!(5#d{+P-L1K}>Io9E783+!?m1(jKRRh__5_ ziJ$<0qfu_emsa(0RLqv*JogeCacXx*_4?=94OcFlMB2|hBE2%Ay{{6;djbez%n@IZ zTRmXI>X`TW{Hv0SIxJf24kj3CWjbT4v`05bR2ZP*sSay>s+U>tnv^Yjw^ z9uDJ^qSjX@k$0H*E`Y|^%T!j|xXc+_P`~yd94R+EZ=adPso%RMo~QN`gUSyhhh5fu z2cOFlW2G?5GS2gj&J5sslgX?chg)A%el zl|tfJ(ZG;^vnl8R*ho44Pslpfa2dO!dAL9+o&ls?yA5pN)2`-MX)Pq;*6c6W2eD#L ztc$ZsbQq(XqI}bbVBW2#D#1xRMIXp705A*}@p~MUryf!x(>6mkK=MbLz z%5HF2&rNR%wd!>ut)x9}aQr1^P4>;w7yJpcnS>CiC)TIM@zfZQ%8>yv-v=04Mh-;N*0b*w!7Hqs;*-c)L2rR ze#g2kHy8k~wi8#9N@dxZzlXb^X5lmUL2pIlmdKD?dTfW`U!>7wj0&X&r{IEPm1H9~ zt`1ZmOiy7+GhToM%X(mwSS=p_<0WyI;s=Njb3%HOmDsfOfG0^GDH8zNGQaFAm{d0M zOC16w6h%`^MWlUGR>tZ{%-Q%9Xb9cGfS|iuwy6-Vm75@FI0P}#`x&A`#ua@tT&4n; zz{G>A=BfT7vgfFKFz+^N+@Ae2mwS4|PR$-YgY>k7OPhOnY(igct;Ex=hprOM@Kn{y z+m4Q(62|g`^c)_potQJ-?##wNCJ8kGusI8Pl?E+=KLJV5mnc_t#3beIW#7A+^Xv=8 zHg=yF*1g*-f`$!k;vHh;uzzLK`LAGP?ysfEzem7-nv#F89!gFB&fnqbmH1 zV((O`OWT`cs%k1rquD`H<($g&u4LFDThB>dtV*{|O@o7MNW>y_QLbXc-XPK>z2+O= zXy#-Eiky#wqh{Ys$9{k`1DMWVJu92wb=Y^o4dzIUF;c_ zu)5+%PE0wtom-R99k!W83ctm(7HlR{@5EIfdm3NI9K~!J{kk_dGf^Vzdl`haBj*KT z!$SWtb;BT`JC1&%1y+)cJV8+^2OTP@KM9x%7O&A25H;E9SF=&T zmO?f=9=hEe*ka%87!P2i24;Cw%T5$0c0T(LRO}kZg1L0L9jRY8qWkzZU+%C~M$N{y zxJ3#=FKBtkBo2H&Q$EX!e`)eO+0u7lBO>2?WR-DD`*TB~F^;@f@~e+wKK}tQCuuTs zNS!qN(d^!Y?bR_!a^gnNQemn&Yz1rMep!2(Wu5=6qh=>(KVD+A{@z-`#P3F4tV}GE z@xb{|X}zvuAT?6V9m6i*PE(PG&E+`L2Y_+uN59Dd!45YNBW!B|?42`;8!epIqUHhH zO3L}jnOKc_Lh{iK50Lkf&chhX>G|;Slm=JuCs-dhX7Dd(M zn`6DD;k-(2(-xh`c%^K)q2oGUa+yNuq8w&`k7|ZW{x4v7?O)@SfeBXCO^4+i%zd8tuDz++eDPU$1 zNva|Iv_+gkCP6t#!#ZyVhp&-D_;K0G4D|c0OmrUB%#B&T6DPGh@Im8f762i)5Fnv2b#(XZ(EP|Pt*{T; z94BeJo#KP4+p<5LO`;+G@PlaWRX~TlziYYOmA6t7s1HGo)90msP7RK*e$iUJRq-S41>F>NLN9 z(3Z%KXj^l$c)?v+wCAlnKTh>wR4FUi{)Oio7`Z@cYCFl3|5%eK}4g$m7|Ha;Rn2k)n z`QxGYJyr4J2vo&C=w=zbqa>@xy{tQSals~i?mO1H(~R0X<|@TP+{ZpVD&^6_1zsN} zi{zu1ruy8Ul{nyp0n^u9Vo8f{o`#L)r=OT5!y&B(<`|*0eIOFfl`F{L=vAKfZP8{iuCZt`9|^2p~?Y@5M-r3Gb8>&Lurr;?} zY(aOT{IP7AnF|uNY-R!;=Y~cn{f#Od!wB6Td|rpWMRPB zr?CSHK`~JlsBB3(g9TQzn${-&`9nk$f~MZk&(mv!7IuUut(@*ghb{#+K1-G8WrJ;1Ccq(_|C>G z31gzyB*UsdoZ^Y)U$}k}YNdH~5g^r#c5Zm7Q12)?$cs9dS9Vt2T!IQB*cvsrY_3p6 z{hF6#CaWP~%1DI#g$3KfO^MIBYw7h7v{$D4mJ17KT)}|ieCxKO%CgK0njx_{n~gmS z=~l^Dv7tvvkV{{5sz(t`7RQKqK{l<@$UgI*kI2(EqHA7ON`sn8}M#NB!IQkTN51W==IjQdZM{7X7^*qnYenIoLjOC zv8e2SONPQd9FQLtWV27Y;U(hp`gpWVJeMb+%p|e~%Ea(|wg!A$Y={sl&Wq6*cf*PHSkDJZ>Pja`|GmvXNTIvn8HF zfz$!DGDPO1M))6=7qpy`ed_KN`2WS&HwI}EMOl_@+qTUv8(p?-+qU_Y)n(hZZQEV0 zE^N)l#O_4QMC|^{c#)Ye;ymQNH_togO#cK?vut7^T2J>`6?!FUqqrPBwjx2tcH~l; zEgSovo?w2-bghG;dhSC@`AMG12bbA{wk1k&!8BBQehVuA*Z7Y{ z!Fw2Jps%^HYVI5@>T5Exz|qw6X#labp`p^3b6^y2K*1t_;)8+dYMBoNE_Fm5LJ&!`}UMNVTrk7762Exy3bKOW-tG`T0u1l9HwWWXawG(texzR^H@Jv$2_8-b|1y z(AWoQcX>x>uT(}FULO|yLGo{6!M$^&30hoFrd}p}4f)VpAl0Iixf~vmM9hhb3#_7h zWLXu~jXVz=^7c{QJC>j9V*>Ae)&9-7y>_42)8iGln%~=5kX3^7uhN%!Ne&AF+wX|e zDG`Mw5ru{MNjfA^*#5Gg380aWG*mF6JTRus;JxwtlO$0hqq)|+gByB{xE-K6Z+Ca9 zOvv594TACr7292vp8JzUvtw2>2Bb17QzYIEX>6J z;q<#Od7Z0xNVasxHtQltCV?D)A#(>ZEaL{=VnDk2S)L)OBM$*cKtqql4-x?mT>o4V zk^IUKF?A4+b!GlS-77)AHKF47!o(Ou<{`$2cz@#<;Awi`FvTT(1_K|CZ9N1!THGQ+ z#xO*Y@k5Tl(YcGw^G*ZbA&AbuSP=k^NFRFko#FY^6>`&GaO+#Z*c+2xSV};foH_C78kfgNTb1K};CyXuc!;%{*$l*^h|cN&63KjM3j{oq((za&Kgga$&++Lk0w zECZ4C7S=~Kd$H22mI5-UJxh+i$+)er){$?ewf6R}PfphKou4_V;$1J=6{#qlq*j_J zpp`?eDmc~ z*SOomAHUbRoOYuYg5kU^e39GFH1pnwap-EXMTI)a*YAV&KK;{EC_Q%jo1+;%T4{9v zzYQp8Op|`~>9K9Q{N7YqYEcHTNG}nrh7j$8{4sqNYSa^!FT4yJt3h;kD#i=`#^6$S5eB!f;SlvKJrnq zGl!@o-Vu;55+qza^XecKDp5q&T^KqR#K*5o^iq`JPiM)AAizffA=-F-+3{30=6L z0#S{l^;Ax_$IN4^&{%@{X{u7rH_fXKbwr&wCjr{*klt2x)>c$i4ewz15{_>H$}S=4M?vuy2(g$1~$>bD*gmj zB$W*#2m9j44&OcyZ4JEfS7=l|H71d$D%;kzv`yWLm^9Vv@wkubN*aKzjgq0$1g{Ya zdqZ%@Vp9hRZ+3dzalj^9T#3M2ns)UHxssiy^#R+9s~b!UrM#~E36YA!aOCy&?}vrC z@{++U)7;A%VTGhMwF`OO+dG&uC;2H;D;!c59(w+=8kpyq?JVX{L%mOSb6=VKZQ#z| z`CDeBj#m!ONpA;3m+L7r&;-=!TEuN7JC2&-XTsg)gMzdUa;szFuW62i$Gn|yi$PTN z8hytJlSfSKMUJCo-x>vo^T-ByEXBgCSc&S`3S=kO(91mTMe(-g-6Y3P zTN!vDQf0AOY*+<3VnX{qw2%!;J*g#^V!wA0JIB~u#Im}sHltYmnWZ9U^w*%2TU(Xt z(sOsiahW<0YeXyPU(3^39am0#NOi{6Lq)E6-tN)DNPAgY7}BJd^DrddLM)}B&{Ng0 zVzr~Ll+vEyiB6gCt*C0BAvR?Xq^*pk3pIPItO{4d*TCau#=VqP{%B&(8 zCr+=dM^LnaI9$&pptxz<`H?5@%PW}|CGArSBBZ-pV=-3n^nH0}#U{{FP?~ET?Z+TJ zls?%V`!$^cjl~L9MqWA){2+s80;&;&#!%N)R4Tz^eaZpysORBI1$vlzw$CVZ5$iJ$ z9*l-Sil^)kvK0o?dN;A>Y5>V@KpX(+wU@qdeM_scOanjdQfI}fL~(;wCB$pQ{9Dt z4Fp{d&GvfCJ0)!jehYph_JBzcMLG3qN3v>!l{;^7ip8%galBTarSR>swHwfYc-%ti z?c&b#T+gmd=EE{EKk8Pv-g~)AeSC67mJvOv2Sj^(a#b3%d%2t6Z088v@KItxk;A(x& zv+epjyT5VxO(R&a?fSaW}Nfz9+(Oc&lMG2Gjf z++AgRR@;IbAEQGsy-&Ec++|z?S-&lI9D0h$dw+Kru{6?DngB$j6(OIk=N)s6DCU!_ z!`9_^=n0ZArqrh8*m2dh8Dln}oTF^#CG6D6RaY?%mWy0RN4ZzO!^nL18xj^`UcBdJ z>vnb&9Z59%&)?(*VQJK6AQ0GATOoR`oSsk+CI{uT+!@2zKcdmS zjdGTCWp1y}$*a%s$lCe_DBBmSSmU2rNo9Fqf(uIhTFLgrgvIPO-eRrI9*RjXYej8t z?htV2eMAiKAZdmV*-|vUHoT%YqOP75CD!U%nu{L9-q-uCqI=jy1pBNv4{Ge$Mmusavo=inc51@yqs6|!P zm>%l0wRbC(jPLLfIpmi#KnKeR>lpup8*_i+^^H(x6jU~iQK4K=mE>SBKb3$w%{%ja zJneo#%b!X2{10>$Zsz|V10pt7cJBXLfIHS5kHh0c>7G?TLPQJy2g3GlU?3h~-{8vX zqgc5N0%r;I?_f6%>c+$rz0v91N;5&L!i*x=Way9-8#$Bxle<20fRF=Q0Q)+^b+OET zQGu}3|65%ljjQ_jaUcAK%Ter4pnk5ucfN{@bZRK!mxob`GTl3vAV4`%a5g2XY&1Cm zq=u=DWZ&#MAFaj;=cezkV%m*L!_sO=ilNlI+@?e&K@eHuZOM{FSMVV|p~z{B&&TKB z?4rMbtiQY{S7mAMrx2ZzvcfJ!Io7`TX;STC?c%?3iYOSBsXSC2&+u=b zK>s8~Iu(T5^ z*L?-l$E8&nb>Y3*9^3C1v=OB52YkX9n-+*r;m>E@j~BSqo&H%&K_5I{WH*$2ae9jV zh9Ji(IPqH0}VM3T#UlWCCvjR19) zfB$H^bCvr4y+VHLu@okxFipeBs2%B`8W%T>N0sESJy`43QzL{O%^=ZddV#JSg(1Vx z?NyhnYbPJ#p&7u{{kaoGmK5nbI?Z!uLUK-%%;@%VigTd2;!ho^B97UBo}#J-DB%llIZeBX2sxCUrDGKxk?ehw#E~y9Qxd zN=xNG50?sQ^$$a1BDd0Nutx3@R$*8~)N{hDXeodvJfW-wKfzmY1TC`^Hg`g581lAs zN@WBg^c|Q})o(OCN0{m-k0{i+y}Ba#e=z#GTENK@7>;z@3o&1;8W&mGmtZ?oPAKa1Z%MGj(g16`hC)NVv zX=l*K&&|IBOE+DDwTZ-nvSFYOpbvNi26E%$G>7DtATmQD)HeLhlpna?`%bvFbe zKRF)RIJSsE!}N0@XdzcgYFnuL!Xe zy)8m5J|eXE8;(@$ybCOjY3cFcnz_i(fV3z&O3q^NJAiE_*aa_n$q?p!?>Amii!*RJ zQdE@TA2*Y_(0!ewXP-S;L9cGl9Ijh^*xp_fR?%^i3Z2bFTql zf0g5Z+Jl(C84)|7voA8R5a6-|TSc&^ON0!uP74hThZHkbd%L0uzur;SMdbWS=Jmu> z`kEwc`q!Z-#D>!7SwIv3`%23BMBBkh{xpswxf)<>!-Etzgc!V4;w{8(P-nkAO7rWO zDnjQ=mz==3fEK+B!ZHjH<;O)~XK>R(tzx_(A+4iRyiVOVDB0Sg>(xRbw2iNEak^}B z38wcg2qB*tCUlPb^aRvbcXEBZB3`bXUTyM%BX1DSEtc3JfL z>uw(S?~=mcdmRk~xE(rCj$?I}xgdstn%oN*>H! zNGcLKgE*yjX@Nnjo!}$zH$1yyIx9)D7TOoGozg31`y!)&!f&1TQ9eV|cOrY&cYWvs zsPl*dp8F=RCLVCdTxPA50WnLwSJ`kV1$1554JzprN6cUN1^QX(0TZ%ZUDworw323W z@n^nO3c&rboSYl-xKgs?o*w!cnn&h2*lC?;v0G9n#7{uHnurtHG? zv)IB4%qUrdDk&Od!mpTzCU5DzJ+HQrjX-0)lm=YXcjpX~K2?|6)cvPmjb)to7wiSp zYv4CVd7#t-sku^z%MztoQ&FJZp5~0F-lFCagO5^`3aj zXAEff3(OJP^8J<*wyCwfVO4?6I`a}L-qbNXw<4owevAon6)Y|vqK#KTls{FYC z#vrrQ*lSuJW%)>rpy_uMo0W8f#vZV2_!pm>N^1@GjKaj4rjmNu3#v{3gm$o^<*nk) zoJik=h85@)*h5mYoO|x!tn#`Oqi8QPg9fL?R z<05hfa^A-l$DYkP9mP~s`93m3_E-tqy(|2eLdY*)Xt9uX_@x&vj#242kh=vI2iu5Y7K4CO&9!*Y$%0J*-2q zupW+%1?#n#!V`xUjWOOHglqD%Ori7Omaj-v-K4rQJpN6^?gGMMKQ+Iu=gRzK=_9mK z_>_l-z4bW9O|ul6;8OCmoEUTDbr<6XJo&04H7pp9Uv1^~w;#-e#kCbe8?XVVk~7VN zsbmFAfGGZ3_d;D~k!n&xU#Do;5NZ)KlPDBvz+cw+)uJ?FokY(@lF*%%cs$OEfq0$jkXjBNgXJ^1>K(t*0h? zNN2~qrG*p680J1aQzW$gs}tp=U=WH@KIKuQM4P*PH3Q}*ffPj++1F+P7V&; z2!wT{L$714tV1?^5{c{Uz7g?C)8wxaEYEr6b3nr-a+U+d8@{DDToiR9&`1&u{U~B) zW%~u>;_T@fBokaiD0m9!8?RIr&EtyHD}@J+>?wW4PHZ^ieF8WorFWARt!_$2A>5C(Jis5s<_`p7i|L664!;zpsIhmpNnFN3&yxA zO)--Yo&+rqR9k!MMQN(5&&fXqGb~&`7yIvbr@0PUxYIV7`0intQ`+am@d#+_8JUDQ z>fZ`UE<0xU5|#WRBPOhYT=$YxW#Ro3L&RRy4x}tKVwj+uVl;61W1uy@K5z45C|M(^ z$F0s_$G57LNnL2teJ`uEVQ@^+*tjz{QIsW9g=dP_a<3ADYUaM{K_hFX_B6s8YZ6Qz zH6=eNA`@f9P%oNtk0T*!p{!-2+$VVwEVMpuZ~vq~BhzHq?ZSujJ{>HJ3zru(v?w1u zjO5|?_ikw0lGCV75*N)smO`(r9*kFy;aH{O1O?z`oQ0+!B~A=cn+)TTM~S{rY zefu1ZB}XH>v$i6bE%^G*L#;;c@Fn+Q-#|$ybgXjaih}Vj1RbaXPG2 z&duE{eFk>0gd&~C2#~iwih#>lC)w%SDZ&g8b}qG~0`A&-x5`r^!drV3QK$e1|Kl#% zeFM+FrY5{|^6HW)keQZUK@ACO>ePgek~6fc78xn4CluSOdC|>IyZYjD(Z$eZySE1-w>;a(_?E;kb3U`xGrD1S2NfHF+ z;OF-RFhY*%nWO5{uxD%(ZqHv7{t7$P|16rNny)n96|-VI%XE~%A|?uqza7&=@ctx@ z_bgs`Qiyg-5){Q)c$bDKxF(IPa|k+2E?#i7lO$!;DAfqmU{D2U3d`4`W1Fk&JWM`$ zffNp_3tq39L)V#gqx|vFq*s(080pKXwD`mvdsOZAo~sc&=~D}(Dx)Qk{_P2hjGl=< z2$yN0;tY*0hCQl;JV-|5NlDXj;i;Fz_+;hC0uNEAvN9J{x(-xL(il92r1dj#^U+Q5 zAnENsW$b!uRcp>4TU6x_CZ%u#wbyX}C^zWk3zCNM8~{!wUE<_mudx97BrZOc8lkA$Z7_7q?SkSpGWKijTx zwitjxoeUDpE;R)?DCoJ$`E}0VQI0fxx`f>-s8u9~$4AS!Qa^bo8VDN_R(kjUA~*hH z0au{b8gQG&>=eoj*0b>IyywL1eS{OhafQEb59)26h)<0;?ycwu?GA}Ns?=Ke<(YVE z&AZ{^1z9Fj8KUmgu@rlA;9}YA^rH__D{!i7vUqwepAO7ab4{{Yk!>j%oauS}5zFcc z3Xh&h-wS7H@$)KpG33$vgppdLrEkUfNx$==4U0mt!>Q<>@u?zd6q!QO{6FKf#yF6B z&#QfqC4al`SPp)3;ArXP5i|PJm3h3(;^~#+IOL#{S@GuTL}@iYAA`3gX-z6@2ID(P{yMLTLx)A!@TI*`WWB)T^qOOP{r5_c-Q+k;qm~DSO&4wi%vHB z;M<5wy-&;r2aK*SM$_IQd(FWQj6BGc(Zt?ldegoL2lI(^=KIP;kC{g5S~I}7sSyex z@NuW#xsDI0u}u#gk83x+)vI0eqp1`5TMVsy6|H^DW4Y>aXzlmA;4V&3)c;gX`TwLd zF|+>HYRWbKrrj~ejc@OOAd>0}EK^1}$R_wZ$EGLkJ5weZI7Tw~M*7!RQWBNSUv7yw zMkyW*mj$i{DJe2BWi&Yje_5l0ySxkl002J~et!AzczF6_aC>#6S*NCum$w(mYl-E4 zH#%5L$km$Ve7OJeIm+A5Jz83ON6NkW`q0-Nq%BR`M!FX_5)RrlpgXyUx|X|fCRJqa z!P^RBV_7%tzwMtw;5S+3BGDeQD?ld8v6qaJtN2{RNw@$dJ*&V*;wA0BzZDwa>-**T zetLQyA6dRP{iseBU@pFS?zte&bZ%q$#_`GGo5l4YDf{}}`>pzUe|j4r*09$N$u_`R zJ>+7}_OJoUU^N$|Ne{IQhE=+2UsxOnJqd7PAK7w1K8)VCixC3DD5l0Tz>&?A0v#04H2v41?i`h{ zhhbrWZ&xFqh-PAe5$uFY2l`oBtv$I1XarX*Y0Dp<0-5Nk*&#jrCz^6rDJ;{lD9o0v z_lCAmOh@9q{NNHt4=9r|s7Q9p2YPym?f}BE0 zm9A=O6Y0gvZ>!gF0)nJ;W;eB&4%iFQ+)du2oi2dWT`(bVg5{Fa?gaambzXg@o=%^B zMKiC9@Jc%CYGb$5>dukGu?c1wjn#lG6_o(4$>TT-Mkfy=afF^>y){K_SAXJCY3Wer z_x!X|=Vu*JD~nN?1+ojh7{`+T&2KOWnr{E&)5T*Jg~$47G#Ybf(daP65tS0YTX*Yy zV`|eWIgO>Qi5m>An9p)_BVk3W zMn1xspWvE7rSF>iTT)m;4Ybiw9LO-H9m`vpuuXd=)0@fKs#@$oN^x-pQ*RP3InBkZ zgdMd6(ag5;)sRX8C%O<}-nbtRTCjXhGaXjv@&Ys|ZB0<5j;< zE)T(#IER!$e7UM4>LC-t8ItwEg6v-WH?S%FQL{jbEPqt5SeHB1qoC452)b{e?^9X( zZ!vwjx%>G^sn``CYQ_D{1J7E0lsRDgFCN1o@==y6z!6X;pJP^YbhNEph8&*DBoKi+ zoiazshI&wf?d#_%p4Xc(f0`X5uxs-82AD4!qAHp_jp=bUii`%r1! zG6!D#D<)HURxKFzQ(zERkMcYKf+3q`5h-Hgp>(McZ=-4 z%bK*e^5}T5O0g~1D!&gV^;4=z6*k>(OWtBOFB}`)ruEc^E~z*O#+;Vow>8Wd@F9Z6 zm<>lc^O7zaA_VX&s~n8kz6%S}G>!*_BwOreQPi1{FPj}6%8vQs8bp3JyV zG>Vb22wJetM&`OAg8#nKQ$b==`=C}p=0%RZxK9rij&;;}(WH`=Se9%8VCn__Vq1co zhKCNcjhpRbAnohT>9XjsHk{uG7{=hIb@XauQ=YKJu|O;Q+od>FvA#e_GBhq&EV|82 zoKD7BABy622;^F-kQQVr?O;{Vd$icaG5OHrr&kg*EkbN9t|vnFM(+GB z$fzmsTpF?)br@>ZaAigFP{K7!^5~P0r_FL4_S+={g1-okkwDc?dH`w}cqm z(@=6E0FumHHOEw#M>|vId`o&<(t&hb@?pY+3j8VCj<4=nlX z>E~4W5Hjnl)w<)58S`h%_dkXA;7Eg*0qwbLCkVpc#iYP;;1w2x9`e_aDC*ndIQZQQ z2>W~yB8(P{x{mu%=&i9gj8BNF-XY*2e|JlgH+8(vvdzU#sD4AU-YbYUgtO+cK4tDPhjo-_vZq4y05#nDwxin~+1W!K@5-FQX~K9#QJqy4Z7Blp?x=0k zNBvs)2<1(Jv3KD47uXHe%uZ_a;8^b|N+@4!5d9L-;G>Fl7m%UWKlB+=j=aalm_C8C zu%$u!eE*L;2ML2?+RCYp^3)0UIz>=89w`*=M1zVpnPy(rLvgL7{wzr=b?@o#{Gy8# z|3K?9g*dC_zzFzV0!9FOILs?A5yBsE>I4q?Ea#NL7b#9gj@m&*vs!h27xOC;yEtjkgV^<13B>(N7Qm zgNyWBYJAjzQ+7Gq!(|19+?Mys{qF0F^tuuhr|=Mo+ZRP>fA0;jVY*!j+?>Hk$)ejh zfns2^+}w(5oW8M#UvM4?7b!5d2?b3x(5xxp3co?0h<1P6Ao~F@{~r4QvHlT&UeE&* zvAS@sKTu43NV6F|yda4bNO8~vE!IIIM*VlUy>BGXx|A4TprAup0wjF_le}>pd412} z7{b$u(Ki{t>h{jjBn{r>1w^{EtSmh{USH^YT*{%)saV!P(#XK|<8W@9*n?4ZFEAy< z8!HO#fEw{A7U^^1UjFJYubbH^y@4gi4WEdda6l8AX$@Dg$7~NfFDo88zV$KhM1mF_ zCA+xfL|!a1Kk{8AAtAB$U7dZX^6(XwCkfHy7HuuHLwM8*2+8T{BK?lGBz%xEPYDXg z8*SI0^T~`T(qX#>(}mY3QSQ`LlZ$8ktd?`gG3EQmUuQ zeM$D4#w>lzO6>`%o*-INCUv^JmPr$1udss54AfcqdMvBbL3vUPfJ>xqGL0O!I_7sQ z`zw5g+4ytWi@1_0aN@-<(E7fV?!>6YeqzJvl6qI!37~1+&mdve`We{s#8B2I3XURS zK$X*I8EL%0-RR;+U)c3f2_5xU$vB#n&mxxYxQc==BbAWqd+yXGG6SW8pat4JK~^-c z2=fJhfdB9+#Eoi;bc}r<#}O|NWkQ&U4`DpG*FJuxjuQ_|zB3EelY*B9V}^?t2GJTL zj%Zbdeu_&^V)_pfB((3phGfmIe=0izjP%FgzMj2ewAkPjV=wrv>z{IO<(Q@~-fP7) z&3*FrmqYH;*~M-uNb(`R!;WawG`>%t)hR8xPH&##NX|>7H#e?%N4I5|RkaxXP)kC&6qozHwk*Z&cb>^Sk)=fUn}VN>x=aVd-x1s5YvIBm>f-QYLC`2de&i~COm&**YCBX0R1eXaubK4lK^55bN^cP?&79CvWi^<4m%ZzdS!Ed^ z902f>u3kL-+*=W;JfrZdQOMq8q;70a0CP3EwC%Box8E^8M`Obbc;$1=hKeJeco-vY zyqSy^n9NmehZ>OA42OOKGe;bp`kzpXG|jQA6ghbhvpW#FvV(ssV7YB~#RuDO(5Jm_ z(Pz1eciTfX2Ypd>LSZVE`cWN=hxHNSb9{h<%c0 zqvmU+AD3jDtCy*es%2E0VUn$fWO?%1yG|RXC9FmupQyWc(C!BYZ?-1w9~j(d57(?) z^`5)2`0^@f0drK(KFp;#f)caViOMt1~fORl7YpP%s1k2-dQw z!#}-|Wjw9I;;1EF^eDn4*tOEP6&3RFKz`ze8lXq!;eE z=;f1iH+5ap4F_1M^?bUB9rPhU|Ad`M%qjUlSU^v3A*AO6HB1>pra7*^0_TE60lwe_YL3rndzQ*6W2en>6RH@*_iFeN|IQ5dmMK0LX4G?@LRolRM1S>vGI2dtSfA< zo_l-Xz%O|cwTguL53Rsx9L2f7hu=LB8En_&aP7>cJ02ycZEY!V69qO6A=s;d-KBe>s8h(?geuoH0{A~*;@ zs|id69@F_@h*MVI5Qed(hl8NF^v_BbhvJ%wp51hRbV4|A9F|mmr7ip%M+nL{)5Lic zD~L%mG>2e~(T0MOmp^41ssHR}NP%5^dBHf%yNAOPWLZEsZkl5r13xrmet4+|ZPj6= z&gwQ^P~sKP;w-XZKfSAT1?^+ctDdCNQySEoF=jZev|ejDEMm6_|6~sy%?cWQ^$c~H zT*Qt?*TNHeFT_iO&}@F0QjNd z04(8}ebEs|X&`pj{0tYTnkm(4DlvMo@JaOMm&t`fV-ZTYb@q8oD*54P<7Ja}C?)oN zH5s>h_}+H0hzj8Np6>mUI49`Vzc!%kVoe8PSFt^w#71wcXoAkgc8{)&8Wx4M*~3Xd z#omn`Q!h|ePH?-N{(4oB__PKi>r&4S;4wt2RRJ-Fe7ePKi{a{(tvDR8t{f!O#*lB){)QhMdld>XlxStDLaife=w0#Jh4M_c zxV`j0co6>J5f~oxpLoDf-oc`*cu{z8(^<<)>H4xQ0g@oz2zm~T3?*!I5An>Lt_@yd z8jTMVwtp7y)eIMcdFufe-Uo$EjwWxf=ATPW*hz`Zlq!8H8v=&C*M_~+@I%k8Qq=dy zIO6xv$)d@+JJ`ViMmmY~f@j!MM1^L^l0wJFC~b8RtguyiKo#ntiswmrT-F#4OgN(l z*B;vh1iB#acNfwn{x80t&xtuo{Zv_|Ix}QZu8SFYHDn6V)|bSa=<0(kQ&LWI0E021JY~1#n;AI z@~^NnflUyFRg6$1v4|mp0@|pCVOHo7@X+a_l$*4WsTh_H^6eBa+Z1KMOE4bz#5 z^XH!1Uj$~Szwy3ae9V0=`FH(+gmlMJB^w-pgyOjLaZo1Zb29-0#oM4TLYRL*B=RSY zkEPb;=aC&?kWQn(&-m|O8ek11od$ug*&VNXpQ(I=2@q#^z_pPD`DUTS1OLU6PAl?GtF)XgnXJXS& z%VC;+2QOR9e?Lr)rxAC~&w_EJc2%`Gyt;)vr{A{+LUoGxWQ@W`;SR^cibf_P{R0ii zmik*Z`U?-@o=;N^1lPzr;&QR19~$Z3FCT3xSTPSApb+_bCIM(8NtFK*c!|MX3!N98{v%zbHb5C5x-#`3e`-UsMjZP4a(8@XQ;2V zdJhx9@f0>tg=P;ML3L=0(&3_5KVC#IF$0>kNFv_53_tOB+5_B3$h$mEv{;V_p=Cda zBS;kS!LV`-8x@!l7OfVo!JwVA{H#}D9DA26}JXAnFW}zhEOy7c`OwEX|Bijudip(J6=H# z&|z<pVma5FX|)Hc*#I^3b^+yfwrCWo*330FN#V^D$C$B>Gm@Aqcj(rpI`z@le`V zCtcFZgmlstaG~tse5^R)&7<7p4zg$fOg1LA@OuJXI|nsD2@LPZ$-do2_L6co(f*UL zc_zFi?#0iiYsAP0XM~pU1^~~G7C%CXsP%xbk;C5c{+sO>XBBJAhAgQ=d1N zJEeTCgM2%2(f^&$tgw!=c*8_&uXN~1Y!35n-xbh7wMwl{jY!1_jN0R0;G+Ca)FIOj zna4|b9Z4_>iRL|ohx|bsBoN1J5TeP~4t7j}D?r8Q-}>--M*R705&?^NHJWQO?KTK2 z4HS2xN+@>~=}#W)Ln34meK4QcmP0@cc3vkk{h_>&w^Sv8fm=17D=^dLa@Oo*^H|Zg z6i3O9q9vmgW-W7q^yKr-Rds@Mb`13T#L}zR>D;|lh-lstTBfn&K;_v#Q3)&0M6{E zBf-QWI|ejIEQ^owfwMc4I18L|Xk(ty0~+(OkmOV#_Q*aEi*U3N^c*+lD)K34XGL;x zRVWseZ1UNCK>*l7h6@RI9g7$+#W;no@-V-^fl)K94h&PZs zVI*dS#kbApYcg@ZmvVKvu!{BDj??X*z$Ha1CIjW11OQJc4n#dh!eS( zvQijR-gsCm9&j@0$&Y4gj;8$GW!R0Z1p?5l@sT^RY*{d6GDggp2Iwc!fULBkiA*1hA_7f6P93rhIB!3JA|y_qp#xk~ z(BdAX1GEl!&K|=@?qd+80a6#(AXeBs6HjU6xiLisxmh^3@l6IJMu?a}y#`BKn5lu0 zY*?y6o?+@5j}2`LY~^6ja8~`|8u%5C8{}pGd%a*?D_3CUo>m*OU8q9;wj&2Y+~{HB zJ)Dn#UQGIa<=wOgyk0!#LD{{G2jxzzV1GE25EUv<2=%^D8!E6UTH>!_RAnP(C1Dk0 zc2UqO;Oimy!fY&}odgx-WRoNWrsx6_ka5z}-mOTU+_m%^8b zabimq8jIfM3N3WB1gZfop=t`eQl0XbCEaR@YD`KFYEWvDN=URRG%D0r>Rbg5y8DR( zb%j}lC52^1DJ1&!l8(&>1j87^v{BtrgVGn$E7Ahe_tKftlPMgu>{L0wJIWq)G&R>{ z*G0I+HH*7cJRAQKA3sd+PuQ!lso1E3s3@zN&{V2CR{)gTi~a)S%e3b|3M-f6t> zKjA)sKiNf+_s8~_USr5(ti(wVc@E1f3M)!zv|Zz@>a9{Qke6vIK&_&z)U1H5bee~) zmaV3(T9?9>*q3vbik6(0)GKb)d-He7gcs`;pceM5Q!KAmxQgx-ljqo0;pUDk{Yu*< z9sp*w7^;(6(M74{s^w3yE2h=Lw(!@M8<88K8_OG`&7H1L__X+O@+~t~IfFd9Joc`! zF6$j2+vpwe9jmVT=W+`VtEgwHXZTB(OWu{UONa}z3;LD*vfn+xmIl^H#&vxL;r-mf zfl^w@T@?2es=L&MXchWBRnHtBbg((F$!2O z*%n!^SrM`v82~oVsU@?9%=M}1sm3Yc-y(~OzcbGn7AH#w%~s5y%}UH5r*E=pGdr`( zvhA7dSqYn%>N5<20W%FEyR3qN@=#b{h*e zU)QHv%j?^@GkMm1omP&nlWR8)S{Pb>ZCY*8y0zt0=8V~OZnJwwb%%Ga^^AO_1xJBy z7WC~0h{PAg8HX5`A2N@Y{iZ7|meu4f@tyEagQdmw+rHtkn+_$-$a;|af z;Z7A`_qa$Zm;0S3*O*O_(PF$|iz%0m%`mCEq4VY9>YUoa(e~V_*;dkS>)d%<^TYP& zS@`UN95(J4MTu97=gh6ieaj8!_kVG^oA|qNyL@VUO@Fs@_&GN^6@J+`S+<#eo_+E! z)xI^aoN%>vU>YJfF&rybl(z6V+nCeFBSnb+J&FzI46BXi#-T&b$KYfAI*Z(b zybzIw{Tfq;eQCZG-4uf+K@bh11o-o$^iot^bSmLbC=wePS04AqzCztX*1|8(YG=3g z)s}w0c&I+QD_19#K;A@NK~YMvLf#_{Bde9Z#P2*YCC17~j!PE(a~RozI+D7XTBI?^ z%oebmeUYSkM~dGRrNX?#kePlgK8mrM&UgtG`F8LFtillib75%{WMD>?__or=UTOhXfwc5|wKjW_B~>lZu|&%y}u| zru^KG7Yb+snAL}I$@p-ra%gUssKGGR6ZZu((bg+ zdG9!IMO>ZL*li1JFEAR6j&C?3}znv0i#Jjhvm`qG6-ic)YE)zcO=iz6{xl zZKqv-z3le&e98Oa&UVGNq1pa$tzKAbcMG$=tYNJByE(g~)8M7n8|9_R|N6^S_h+{- zz0UI<_U?QczTwqARa0->b@;vjeFa_*{CZz{uiORmTU^?ktGmpf>7NkUOSqalv|sGG z=E3u8yN>vm7uG^ar2~Qo1gVzYPylxoG}kp(ETfXk8q}`aZ@4pg?rbl z|KZnz*h};%L%W{UmBTsLd(mXP1Y@V3UDttI$$7=-a+>wds=Urir{BByUM!)Vlbzm0 z%vIM)>YVF8wTtST&5uoA_l8@(f8~2+`<*iT~H#zow}XzFJR9u zA9ybh+u>c|3V!4Nj&<$VYajJ12{QRAE}d_zuMuy0-#u0icPNu62SJZ}%fDN$%cmD_ z{a(JijU7%5ZduP85&f%tYQBALqb(UX!V1F)x~4q2KPnEIzb<|4w|1L)<-Gn`c=Ypb zbWZ!re>EQazW(zjbQ17+<)qiW!~37ou>V4T_|G(qg@c*>Ckwr$(CZQHhO+nzJFZNBGu_v3EWR;AKOen8jVopfJFRE6pg5NKC` zkVKL&qKK#|)1x@guUusB-?BUSZoH2^ueolgJD;0`#H z#!>8pBmmwYrWz>ni7TlQXd4To8~^?lUqzz%J$;VL%Io>TH17F6x@SC?%N2;urQ1wf zr_+?B0jQ>EX4UF7r{DrK*Mj%I*rv<;;RQH?1~k9^yzs(k^pHps7p7HJeSd#X1>#*( zRGpu@^yBn?`SN)I+Anh~)<7z)F5k+o#;HippgORBmyY_yJMhDOQ_<8r zHo%*ZJC1r6d@9Fqo&*_WZr&EmU zfy@{HLW&1>&IfDu$D;>B>qlb;RNI5}7C?XiULe4u2GWj)YYf0R3Od$@B?ltWhhB%P z9MJtISNW0I!8ZFP?BTRQ)CO4Wk+*<_^ijBhllEBB0|+4C6$r74!7PNp;xUb(8wlLS z(V+r}3f##tC4++FQ8eLdf+X`D%ds}$S@?H_$nu@$P0H~*fnkLX=Wpk^Fajv(aaV(3 z4XDyVy#@yCnY$5WgV2Yh_66OUv_aPf#r9O+aJ*4_A>jw+_9#FIjDrKt2+$y)4TufI zff6Ib6H>$(6eE_2WW>Q2W3q2#`-b$v+V)f-L=7N zF>6uUu-BrwqAtf`_Db*EyRmj)ZbRXRobHgk5q-&iAbwzc0r(>Qgb0wEAzMNC1c3y^ z)uqb+;E-mM!XS)7FbRVe0xpDLh#n!PAxwq448s}XJ0!CUDgMDs*b-kThFQc?M6HN$ z4sgzUN|YwOOw5@;GzRow>4@}B_Kx6|_LWj7Ojle_7LH7A%y5i%Omz%tB#I>tIyniPTwHW-I6HfET_7{h48 zxK(CW=~jND%u>!&22(CoIW70Bd{Bu}$x^Ya>{T+Ve6KXAv{A8A^2(1@U{i^cpHtf{ z@)htgg!75L#JR~n;21mETJdL*W+7rpwZNG_TS#AAUVK_ZvA9|0uHz^enSWTGoUfec ztYN8@S#n)NGgmXuTkxG!HuYp^N>`btJt>Y2mGzHRHtUnEn~knbxcLX$?wsj_e-ihk z?osZ6>XGe{@Ui)p|33bR`EY{`2cr&h4#EZ723rah4Q&X;hWQJVhf#qAibca>$=qot z&GJI8YpreNJp^Jl$T-2gVdFT1!ssG*VA8#5n9&W0H03MCDTjQdOh6t%_fRTisNBS$(@fz5%jP-Ev<4zP-AfYNci5 zH56-kYSuPcyL}VVlfkp=8~1Gko+(s51QsS61|KUMYdA(a=0N6CW?ZHt8$``Xm8~+_ zc@*vP;;MV>z4%@eRTMRRoIYh&i&mRa8>W*t&5}8lr^V(rEVCAK*t%;oo^zgi)jQ`i zE;JT&sBn2dt~8f)s&UJ4VsenO?=pPZ(bm$o-ZkQtc|E8*zv#&&+Y*EjuZ4Zupku5Z<^pKnUQR!?ZpI8I?MBCkeI!cN)F`KAzV5zbyr zi~wT+EY5?JaF6Ei~<1Eobd^Oe{mo9_5$K9C@ttSxD2!l`WHQ# zl=BZ7$&RLZbG`olvB*VKBU+ARqTInBT)9!wF;aY4-#N&`WyexQASKrlX~&H%+$}S1 zIbBe@?AuYg)3}n(lGHL@2`8z)sjRs-3A!1)g!<5xpmdBtj4!6rW}zl{)7dkTGnTWY z#$;xB2$YaaAvzqI9H1QEL`(_^=H?Ak2iH+#BLfE?+T?Bqwq3!oKhn?QF(sEJLmoFC zEFN|bMh|i5x(irq!KG=o%!G#A=6jb79DJE%I;Pc=a*B~{njMJ<(f zOXrr~3n43UE5^02=2cId_f54+!!;KaOSD>A9F5z)-Ujhnac$=I0hghjnDm&yn4YXF z*6XdOhIBRWlHtzc#v>n!wx>xp)?H;ErY;T_C%X)zja-^`nn9YjR!?gln#>*PqsTZ z0X(^0nJ<<%G#j6`dHTE8-#?#PRE8_0pleFnQ7v^AIX6;wSeNm3cl?OXgw4XN#HQj>`S7?aoElG(A1WG`ikCvl%;uMU#w==I6qEb^6>63*xj~IKSr z_%z?rKiVCoy{h*ku9K1ueGk`iY27(Lq@S!!3(wR>^xSyZe1C@Qa{Hd8M`dDr5&F`< zd!9-*r-JIP^ju^^>2 zegS~fAHV(|s+8gXZVoW8GBR+`{U3?SK*0E~f57_DZ60QM6IT-H z8Pbdzq=bYS2tWzl0SEyQ!mP;5NbxH%AREh23JR<#>ZtY=!de4`DF%h<1k3HqHEn9z zQLU=BQH83tTe?y;i5a`E-N^E{*Qc*~NVA{W*Bnz$xsTbW9-p3l!xjOTZ0!OA&0t?mPb(wW(y zI6W|!8O$-jCv;t=E1lAu%Yf^C&yiH2Q$ub9KJP5htFW(fKjF@2o1kmdV8e6Sb9WRM z+8yrg*{w(i?p{7)pmKJ*Ppf&ZTdGa^zgqBiUT-0hYOPd53+~q-{B7(A~IYUr*zr0LDjXO$5XimZL1i4 z05%{*35Xp6FtJ)yBdf{uT`h~2qHH*d44S7qLaHu~qXHY4SPc`Ji_Dz!mi4KOjK6zQ zyshIQ+%6*@4&BnJFooTWix{nLRK%OK;Zs@CST;aCJ<4nrL@f}V5IFf&1-VALARi=@ z{^tk*ezF$HF#@|@0;6E4XOOrU@;vWZ#3?Xn4)XO(o$olN@beyX6>Hb5K^2a*e9%3a zG`OoC!0kNe^+{w*IWe?cUYHUA!@L`?0XBRiq$b>Eq|#zvkgbW?d}1i=C_Elm(0=d;ia7B`zmPDT z+3bj*;0o3?89Ab7XyRuK$UED{}+o$_6fu?WkUEe%<>8aU%x9 zXs#hm92Dy<{`qmm48I;w5#Al%$QsoH_6}23W)zT@2S)GT1$k7H z*@gfkSUsJ^v5@#5RJa#16S!Q-MCr;BZufMakz4{m6EdKpNpM|gdYmR2I4I^t6 zMz%9+`bIHxs&A|m&k2Tq)5$!U)%!6|f8fIcfvdxw&3mzG_^Fm&AW%V3O;Ejp4x@uJl@Acd?KR_wYbq3&Lz9B3U9r38y3Gq7rPqy`I&Rm*=VR=d5bt{c_eF#A2)2q(s|BrD1~tW#Wc8haijXmKI7P|m zIRh3Tqh)b}Ubp^Rihwb2`_BMG!(tZzqv7Az5D^e+X)py3P!gMr1sqG!ex0{-7HGqwQmUs!6S3{V7wf!bd_&p_#~02mFWuYC4j z3LqL1iwGnNfkCJr>>Q0iFW3(ONL*|b?EkMQK2{Gr1P8-Kf5jP!i{Yxj9$>J>aMk~> zSZjm>KI)+VpTj+5r;i2x&s}1S1vubfjBRWJ4=#l60vwae#{wOf$2y{riv|4WT#}3U zIiQk@hLlc&_h6VHwgmRzfZXKAa6xVe?7;)L$`9cRPyR(NTOjmE{o(+`1xA1T697bk zFd%V>0i*vFIYsH{Jp&e?qjhnM&@p=Y&p<`%V*g9^pDr+X`p*DG;psh{qw(~g0E)md zcsTz{{TGUizWj8tT$yZG_Nq;`o7Kax$J02q7NoM0+$KMZ+jm>(zv`z9ttW9T*D1{-`;CLk1ci&KeVGzB~p4GV{3wAh;typ~y zXlpoSf_f?QY*J^BB+h=2+q#0-%C3Z{E)wWOEHEJXHJKcoyzVdsq?+t_iRZOJdY(ZO zXJ`6+JlTLFnlKY|h;Rh|q%>#&SOHQ2OaTC4xI8iqpk`Gn+t!gmzhE%EAVfi^JNG8`!OzwaK zJ(K>Vi9IKAo?Mtwz|Eu(VnA9Mv>)1a{Q@U(`J?ituzhN3cDXreu+zfLkqLbUergSj z;})rT1whHD0)spNVePTmxhE6}u(1MHT}JgOD{OH>J$K3^Mjv;i18$lp1AaZ&dDR5V z(!Gj3o&h?BoxZ?&{Wy5RZ=(Jz&~N8jQy4s2FN_rIzzHzoy12*vetK#9H)(shfz-Vq z^C&bNm>ql^%aCh8r4B^oc#10^gV5RMaatRS>n590*OX8{^@jA~filP3}*_qDyFe^f4@V#Xye ziZd-m|DB`(4wmobf)w(y6ue_alR!q<2y%}}2og01%xti(0ZV%9Xs{pw)^IRW0x&hd zk9M>}*FdS&8BmQQNQJn+m~n?ebOy`)}tgVQ7=Q2I@dYrn8S}X4Lyg8qyV@KCt`Fin1oshXQ&00ubj$276J^tkU zUCnOyP(5p01vE8Em52eJo)pl!^k1K_PBMM)ZfI(NU6DOo>7P+mCJw>L&olsnytj-e zLw0AWRw&g)IV(p$0eFr^Lt42Mi9zeh75C@?9urK$f)BnE$N>_JJ$H#kjmKXG90O>( z=SRU`jtn-ZsuR&7CiKxC@e~>$s7&4uqD1+~-I0&K$RU~Rt5c-cF8T0IvFxEEWWwvg z{1ITPEp&3x7Ab$^A^iOvL6Zw#=vAm%>tnWXFjf>ZUNj7j9d2cr@{YI(DVPsw`G;Dq2_U#S^F6uUGjg z@jH(JgV^^eXOD-hUC!X!19|wYR0Cedj@l#2?}V_k_PmCeAg!f|q9@v~_iqr2wn&(G zEZ$2Z4g(Z+RIyw(bj9&Ga(A@Q3+NvXZgFmy-#-&cN3YG{q2l=8sqPbO%W`4~6nnFN z{kiLMq2oUEw`NJW%MuR;F|&k9<>8zRj^IA@J*3|p9sXa*+?l?qJBd4C57$Si53r(l zWZCH~#+(;(gi#ZxgJi`t-vA8pGI!@O#7q@o)C9MOueTUuJV&|@Rv$@EY-cMXwgO%* z#R1I4dg6H`Bu8)!Vw|PCLN}yy3LHKno*c}@+>I$Ci??Nbqza3ozOuQ)>4who+0uhY zl#bXNBHx2l;oD-q0*cGin;{X4k7pK88B(<*Ruig?aoqwr%_5wnIkLOyypXihL?ReV zjt?9)rAzBZg&aJ*--I2>F!5{jdOuv`x|BC5v@$DYeyP5QtFKMV;_yr8#ggZ>1zAgR z#d$=g(Pk**jJV&_f7%k!$1jii#&_34pTHP1rUmEv3ObmDi}K$-r{`9io(H+^Kv?5l zqg`1xWRU(yz$KiHBhH_|AF;m&cbc>2NTM%xo$sb+&=}f5!9&SG-$p8bk(}WYg61z! zK45T&|HOR7c1w^n>j`L`r8t9bOZbV#HGzC4ehV>&w?*zo2q`kVa6jvKdVbv2cK{y| zIRbA0Z2n|FC6rC{CB5#YeAzjMZk}UwM)L|HKe2x&R#3;y=;v62SD)%ZE`@Z3pbuL* z1iGiZaor1@yIN#5@=N4wCv}oNS1oIun=RP|xK*3;L4nUYIx@8%Fg$R3fYy73xGs5|1bxz&PZlk4`E}qDwXvkCl)Wqn9i>=5&kS zB=afRDzIYx*pwTe$x$R~rb-rn^ml>TFT&;z4}r+?&mV9+fRTUPV%$4Cu&5I94>cnk z)|SXLXUG<%%}<>fdO~jt`$@VjfS(sVQA`6k=|hd;8NphkY4xKu#aJVEA@@d?Z4kb2 zdf~&RC}DJ{g+nkHB-4welW9|GM{!gKQrQucd$rZexhuJgu~T@HW)D_+j36FZ-hFtQZVU8>xqBtfT(QT!f&kj!aH5u(CZyY2fIr4uhZ! zs625f%J>Pfj!XL+lH-v{e2BSfdq?Q-?-b!K)7_xfrtIh&Jb)A{z;jLK79o!>RmaYl zz(WT61}fbn-+gjA()C2@isj~)ovC{w*A!rncTE#d7h+53d?=7ArpOkQL5lL*qM;{D z&B^WSiJH@NKjxL;q0t=35#)VLz*V0m9T|N{JIrs2#*0D|nA`yL?TWT9TaEGl z_5VH#1L@H8P2!d@d7HO7x<7zDVtyxk*X9I?%>=OUWNgv)R{xUfB-IJU4b>6F8|&2) zr5%oa2hnx}vB>R&;o64K06HbMAbi~8?t)ajy>TY`mj76NdOk-zYU}?_Odv9ypygKqH6Q^ zgg4;BAJ}1s<#51!XZbSwM{X;kn(qU=W)7NtoNzIQSG`l+49gaY-y}JzOK(ew4e-iO zHaE8bFJ2`WeG+@1D9>3PQ-SK37e6hm@r#!lCwijKY@P>J4+ttoOKeeiW1Hv7+nfN& z6!Qb@hP#rd%HC~R)FUS@sW?ApuHUqHDe{1NUCsvf+8oy;xeM7Fc*>`Goyzi zrkofWfzbdwBPSA}G0S(mEYa{iTK<_B3(KSpQ8v!kz3McoK2fRYiL|@+$~SBz8vbS@C?EXEj1L=WcRTj|Pu_^p0y4V~1B=#rmqa^{aJ8LI7bS8AcZW-O`=+7p zkXF`aKyB6e<%SkWo!x*G%M((S!0px5%>1?jDGX@Pk7~xpDRo9rT(wXnOJhOfja4eH zdgg!{NXEwxdq#wLu*ES6eMR%jt5tD!g*;pft@(7Pev#JM?%uh&kS{)33Mw9bH)9B| zeoO4wbQ->BYOn<+6Hn>7S)&=IIi=JG2GLS}e7WFS2!lU0h|?A@ztng_t-1_g(EfR> zP}Rdk)#DGroDD`*KGbt#C>Da0^}CV@vD*5-T>Bx}aIrZiAb|Vlfu;$qwKnJYH2C8=VnF3Ij(P_qC*IOX!5TETN{oE{Me__-L?8e(TEbx zdfQo&;1WVMBnnf8bPaL4L7>wq9Om{(wofHzi`<0!C*+*^Kpn_n79M}CUFBAbO^lG2 zAN?qFvnlLyQ7uAUkTaWGjMA;L%znvJC{95@x8+%Jq>N>(Q5!KI+@npPJt@*38a+;{ z2o@}5!$IH39tDitAoL}9f|-HU5l_ zhK^-mx)^T7E%IUIcvQ`EV9?3TrhX%e*lkQchiH(AN?r#R;FELC2pzGfl4pwr2=oowNN1DI;~2 zHs^|uYg`RL5U$Ognmv8sB+Mn6L5a>a2J0dB;wLWFs-wEV^!$KoPkZW?COJ}Y6ycjX z+IaS~v9U3cf7{=v3}J1G(*}2kuabd}SWD=Dh$B)aloo17Ij)nc8yxjax#Cy%x37Cc zZ&a!!fevsB>yF!s>DCc%lW>~w@$Bg^ro2cd@`c|_52Ob_-|&YupBp>umMd|2Ohpb1aB3y3XEn~Q0%4WIy!nx?*SF^iN3H`% z)nuRuPDz%^t{;)i{|hA?Xmi{z1_yV$?-NV)z&675N9IF37xL1luyMkkUk2lFG)#JF=5nS^ z%d#f(S+2F?W$Mb$xqE-w70*6*+H-(q^EtU|`MbVt;4{@Ov2W0?jxXfJK|FBqZG;__ zao<8zsc~`cqJ^3$f+7F|l|dw8mq3bw6sJ_7aFG5UQE%F})VAEV^ZT;XLdc~U&*4+U zTT~?&*FX%A_s%%6iO}G#nl#~7TpZ_U*(yJ4-ElRlm$JnkbS1xgIp3@c0f`bs!94kj zKpHgi`@l%;({SmUY_n{G&xY){Y*S3dxZoH}6{KZ1k8?t+3p|gk0)OR^g$?^3Q_~Vy z!ULK}Q@t~^?at-1nNX4MdbvE3a&LENMgo_MCz*F*RN@xED>@Y#{0xP(9pg|F*i`0s z5-9Obt=Tb-H@2=UC)1XX=^DjUQ?E?|3$ttD=b;=bL{%X`_gVJBw(seu^yg???}!~%L6mez&(ks6vB7RyqjhFcTYCS$O4 zJZYJ9O82?#%H`eU*<=d*3jU$%q6;l-8~uR+Uz=PrUDa#`6AX)J)mLpSk_=eECaxYyg)Y?qxm<{^qUQ;Dv?a zs~bS)+LD^os{ruwfjpHN3ai|>wp4e-c9^85f7n-Zi%qXkk+17ZBZyMLP<3C;9CU`< zYKga>@y$v z&goyWn+b;T00fFeE1;y2h~9{w2tc7;y4^f{1a1X~+V+iC`4=G$_~V9_0`hp>52UFuG77#?_$|n{dF8;E-NcCO-6`ehB{>R6NcA1E^uZvF3KaD z9Zk_krQk`in!KUKGT@mjx>Q(KEr|nwXXP_*Rhw|*)(2OrGsUK#O&YFf$EqY)gMBZo zvzRmJZFqzm@)?c@j!R=>(U?o3U7G`Rv3KTXuoJ}_jHvCTKW<>_al44@ z4u;lg6?&(X8q^sZr9@7EYaWxnUfQ}E&9>sSioKOIuer#x|G{r*y zh9T<{@6pJ$pEqQ~{

d%{3^-SSH zlQfRSQ%JOfNwEJIscj}%TqGylpB4hf$CcLx5WL9FroX) zV%b*1q~sZdySmX z4KyddtTK(jQAc7XM@Q_}Jy9!prVj4=_^QE@4iGgyA3-M$909M6oRq(p*GyM|IchDB zy^YqaRpw1WXJS3dkBW8#=GSEgGZq?B@c1OkL2|Zytcb3|06q5V82p7kK0u#^Ib!Yd z^_N~im<&EqcXD3nX#P{?RKd(VeUu-OU*;T8P4==BMOBoLtAI!hzls-3bs4LkL(kB) zx9kf;vT)yK=f}`_MF$Vp6}zR7J^#4Lk=Hy~tU9QsyCpyGa}Ues@VOnABk+U+y5L;D zn0V;Ep|Q)2Aq>i?W8tDMef{Y;C4?1%hKs&Kx4C<#rd)i~m$UqgYlq4QWmv2khc3Rf z10I(9cUOL9vJ|5%0B>1v1v7}d7qsK(vD6)1f<(#xuZv-yVR*>k0FnNZG zM5*E;qmGXlio`2fb$`?vM+T8BG7Kv2nFd%@N~iM`2g)l83l*`5pknDnR7Dv6OwdXs z!iv(wbM2JVSrD+LPe>;NuV#qZOE|o zbXyeDf#t7XUaMsS<0r{-!lN63<4l7Rul^`<4KnBS2TeeBRWzO zPcS;tT;+f6!49!q(eQr-*yNWzOWov}SR{>Dkx*C*i z!J->DDeU_)u>>W$_o0uqb^v$IiQ5=YjmIYB5O;~aL|@@rK*UsIOo(wY{0R&u~ zYkf|M$#l7az!_wi-*F)w-RRA+A{5GBk=$?qpr-x&D<3gM zN}DmeG&xEa8%-$gPMbfNLX44is*Ny#aH)tfCS@{XPFo38ggAhRCo4?MwZ2@IyUuJk z^7Yqi6JLXgY{6~ ztF#Z=GCER~U_!Bbhq|sUJp}?ZQSr|<-LRkT*t>EAOL>=p}KJsdNqgw#`NCaBiBYNrV` zVLM9s1RaqdIid~_XDHmHb_XfC!aB zA~J+oKnT?aGJu>If9z#HkXB`aN+TrhbwB|@c&y50;|ZLcy9Q!{fDFq14bI?bF+asS zpJgo@?ZRx&jI|MxM|^FIkdr5y6R5lO+#S#tJNXzk{1eovQG_{hP*ZN0O)%vUZhhYgT*>U|wG4PDR47;pSyT;#PKgLXdU$ek6w zEAe_1om^zie$hPZTy#;~3#F6kelC?Y3<7B|@c*edG2y0lc!@?ildp2~I0O;3i(00^ zO)Jh{CUlW3BWchYOf>^ypx+0U6c5B98zk8M_HKzIB1yCwQ8*>-bzIl38S7kpsZBvh z*rM(ZLX!yVwHaiuFK)y?q-V-AWrS1^S_TRa;(*=`$M}eqDi&CfhJOAiF>pozis4xmR@!bFcCYYY3yLDIK|zbg1Z@ZV%O= zql~H6uvX5BNyDI3(29wiQ@4$2YB1EsHLGr;1Y(M6ti;-;Ch$}-QU8T!L=@{aR!x@N zu&fHXjzp{FfSLT4EpjHVMeU=qvsKK^-LXez8e%pK`nO z0Fb*5%#O7`7x~p`stmNggVqf?0~rhKES|Hd1Ya(jDNqf>giMJXC?N+M=uamq&qp^W z3HKf)%4<-k=&Sg<_?NlQ)RMs^Jy=$$E#f&7Oop2H9%fImM*)uIvRcETMG-w9Xx$i- z5JJ<0+Pcs(3~JXlX<7& z=t`^ts=Hl~<~F#@N~o<;3vUB75bWq?;jlAzvFV} ztl98n4!rAo&tA$|O-h><>n1xUsIbZnSk{qs^KG&^m&&W0s~vXeZ5XZTc5OQ+TL+t0 zJ6GFRT|D}#*?YnMe=+Sry>I*zRZJDWO(ORww(N?B&Dla37j>Xjjx0NHJ90XE20hmCp6!pA*YyhP`IeH+9Ud887bkrA^WPtja6#WGcW58$YZrL?& zTiz^Pr&XwB*0DJ0?cEs{xMWx%$2Kln+hd4rW!1>CjvT1v)K*QKF~PUNwdtB~-Sq7F z#x1hQ>74B&b!+O}@bjvz_SCN2FwHU1vDr57S^IFRGKSTdri~i0X6mBRl@mza7U9zF zp*?X-kWWv74t7EY9zHXuiC4d}5ADvmEvT_i84dWn2IhN5rf$yUpX=A(NUj>D)CNCqm zvfZ4H_#S?UiN>NyQop*t#A`_KELd5!upUW8Yn!QKwe30x?V?PqcJK~$rw%(HS<^D_-r*IE-2>+9EY{dsq!`y7p% z)%`a94v9kSY~T@Wrn7D{F6S)kjj1|16;r*qcwGsD)kf#^TcjcCboQi!dm5j{g7d_} z4fXwLvV7#n132oP+yf{+vYCmc7~DZ?)Zph_TYUMx$yZ=nBC5*>tp97 z`OD$BwRM?y;cYRoyHoG1qmZM9O-HWhIFn#=`Rk4v^5g#s7%u_5J_L0YDc+$;s47ll zN%n=tQ%R&0fx3qpAP7Ubg>wMryR*nRLr!()ymyW!4fzK*um$wCsZ#?UIb)ap$yl^^ zu)x#bK*hPsupDj_v>S&k)C8%G(wqw}*3wpGK2B+Am`iDC1ikP5gzIO_`E_r2e60M- zxQbPjfxOZ%3_*d8S-YGvt=#FF>xv7vYYX17n^5^(xl7fT@csE2NRC(W?o(X~Y_8n>`piU!ZUAG?L$+N@gh1|Hf?G9B>{` z_FNZJMZbnWuR?x#gSevJ1Gm{NTh$uIGEeQ;imGKrSvi z!);~}R}QkFsbZN8|HfSFZZG@U>`j86$&GHu(}#dL}oUsbmlS zB@Xw(+%M@j@eJvA@$7mb@8cHoDggL*rQd49RHL<>r*T(_9KGxBm(|9#b=+6m~w93NXR(XTb{l-(lkGpefASD^M}&s)Tn-$`UgM@e&} z`S@|!A7ZCL&DbK|YLmbB_n-#`-Htw@%F}2@6l@jZoI=7Yi$*QPfr(Wk{x|~B?yIq4+?%yg?*r9VrDeFTz zWt$xWQ1C!^|Hf6IFChzA1W=&3qO^@iuO)u(N zT=e;akgDqq*~guGx95c+>*m_#(6n)E)33QOyJfwWYsCFo2(LTe_P-1-EN*?*x@~usq|R%T(gJFvTNI0CI_9qhz~fMISx{V+=I-9 zu{d!_3kxV0!a^KVq=81sdw) zM%o!*wKxx`nX!(e~5RylJ7-eJ0C`$f2v$G%(MR(RI$99>%EtXHU~j*mx=XGwBN zdXG6AxpbLT;N=joiqSP0kH$Py6t&|&YWMrQ&GrG^89bn$;W?(T?bPc%4i`nT@H(4e z=XhYCK{Ah9;|d$@n_pKbj7kCo8&;orEyk40RpAMkg8P(~5*< zz!HGAv-&y4#=Xmsjc<@;Wbw(|dL;-AG;e0<72d<&iB+T5c?59`ps|^wXy5|jrGnSv zzM{(P?X76@RF5iOEr_k(_+j4LyAR6jw7%ng>$w;Zm+c=Q3liZJ;)aeoD($pAVK8f!Hsh=$`#%2DJ{(GykPVaEw@^$rM0PGF5JumdZ;;v{B zfzcR-V`JDR#~42Mnf~`spSEnwV5SkVizVtnPC}=0z_jpD#)2K>T@b_MqTa)NGpI}G zkJz3L3|@~Sky%Hyr3#PqJevBR$cy8cH@MT2l0uVuQ{gmA-jgR7&-9RoAj=q!?`SbltsGeZ9%~-)LpMdu|=~h;_e4Lz32`t}GBRg~|HTtM-NLTRo4W%21nAPyB z{PlO$nhtsn`%mCS+pcVmw|I2xRH?=O*_N%T9>XlyPgiv{^oxC&70fVYB!o%9~=Uf`ba9Pl0R7%+%|obxyxBT4cIsbpB* z)&ebyg!l;wLl3OTI2d1sd7spuPoFUZ2CADtG--XVb^%DSqkt9ScEAvtNyLJ!U@PH< zZEcsm+VtMz^S*U3%nJJka#*7@s~a;eAFypSw9{$pPqCg<<^Fz^=ndE(ssfdPtK%KM zFC`qUyJB;woU~4O*@QMlzdqE;Tg*<<=cIzEb1^MNxx&j^HK){@zpIh&nuAF*oh2YY zse9#5Dx(EG0v95o$sU2j!Q{u%)pb~SMBjBPOCjTuKGf<(2EWgqZ*^`0lqic1z{MEr z*Jsd*>sP5fC+!Gq!#?-o#97AaM^@44`&LxBC9WuL=(n^#A>C>lM!urHquJ!Vn%>>( zl95wUTJm?^_hTcD4QS&LYsA|%=#rA^%0M03)}%2|Yl$t0g@$hIP)$ybg&}v+6Rcj# z=kq5jZtQ1J^oo2|i`D^G=C*JTsz>v1Th)ZO=Rg>U+K1vuis2hC8_S+>EejZKgq3KP zun;Z~?;-bsHdmnc4})ybe6%RmAp?Uqf&nO@P*hM$A%+EgXLOjOc&_vN{!`5a(b6|UsB>eqD#v$YYPtk zaEo_`!jkuxdSWT=+~S^4urr5IfGzF~|U^){612mh**@Z!}q}upV zHsydqKxcZFk zJMkssJ9ZPPp=q;9Y{v?@OJ|=yHX#8-MpLUsJ{i3lU>(q zqrHZwwv*|8Tk~TFgMldHCF_xJ&oNkl1DxZop z|Do5E+TxjL;+o=vgb zkXGhaFGZq(eb6zksS7K2YW@t1E(2%hbmLj`J_bMbJys|^X#!BvALg;7VV;Mg#3=L@ z`uZOkCo!JrYfJonSH4<)keetos8jp9)%?PP{B@HL=BNP$+ zhn&Zp;rJv%jm@=5$8itrz%(UlE?bRF_1njIpl8v~AQo-cjOR$bUw0AQBn+1c)e~=f zl>V50WxD@eQh8_zXgGaL3%aZ}kSp9%pEU-EqI05+qI*tv<$gYbOG^$7PuaoL$!MkQ z7;7JM@!GC_wUlvA+%(RxOgFHCmh*RG>Sfe4s)2XX({$+}#vu#Ce$s%R^6>CLA`_6K z>7MSIcIoz#xjjpqx{4t~XuGEI;J!W$FV3`m-rno%1*VckD6Zi=neT~j79Q^U(ca9) z<=?4d_0xfEz^DftO~hdQY7-K=|8v%oG#{y`sVgZZ7EE)os4FtiAqp{8C8Ru-CH2uV zLZG!W6SveD-_r4Hs2+I2pzjVsVAwj&a_?tQMP4l zmYBNP*f~1wJ>}@qA9NkqjIA#(y|7< z8Y36@k2u0ufOP$BIkzw%40DSfv$jsZ(3S&tamZfqO!Lq1sY_h zwQf7<`sJS^wQ6o&5F-_%9Lqx<{N#eLo5eB<<=-GM4C%2*W@j2N8PBDAF!=)EYKc=N)L+aNHzT|CKXUvD?-r z>g31()&%W~L7F&pl-gJ6d)0S+CkUB)cVPJ(jZbojwE%93>vx8D&i%Yjgc5XCxiPf8 z9v$yHj2T!zK#|7e*`~cmT+m%zhf0pQ*-pQP@0**JNy*!%J0@PFHGib5HLL-A@>Xtn@1BGx&27QSG3V zNb>CbQpilU`JA9;;ebH)jnS=MA9Nggx}IRrFNGURi>=o53AH7?C+y{nosXW@>ob&x zN2t;feM&Oh`*WCwS%E+9@K5G!u~wIE1Aa~6B(E{`xs!YkV+;{Hh0C2X?K#XfrhVfp z#69NyfJZb`I?be>;3ZQ2ZS?s)U#Nge-@xwoGhjZ~vOhr&C4cYwz&&txMmpG55>3Hx z?97ABiM(-YKA*$3t&pY(8&L3duh9RT1z2SUEvn)#f?Z zv_|Aeq_}6>O5y0B%nYO% zx1Wc)`f$82>z;8*q^DgnQwm9nF>XByikekgbiDJTkcjVYogL6x5{{ZPucr}2UX6jXb^x*Pg}X+V z{3AaoCdQ#QamkAzg=TowQuTVOK^v&c*b;PrX!$2G-54Yw*qFRGU1KbBN750feY?$b zSM~Z%_nBYmbj4+M?ep|}S@7>VUOuYQXf$0&_*i+m-hMw<`vr#<10iP|hG}7Kv>j9p z91+Oxeh&(8v{_h*)AS8=`R3#a`#A5;V!Ht}`pQhlIXZn^=4a(HIqHs%ttA8QsWX%^ z01NQ|lBqE+5V=tUpgvcr(*B=XcS&(PMm!Uc+tJVG-1GYl_(s6~;W%*3&dAZk-*vh-93yA_@G1UO7)!7< zp_8kX%#-HD@%(L9VBPUNIw!X6`;aVljQ^QSK;iqbWrQH`^kx(|!WviW^Rapm^$#q{ z`uX0)k?Z~t@kSvnx2exNxy!Pd`E2`z?*nC{r<)I~mS?s>pk!5hwSQ7M;`oMedwE=Z2Jk>8{Y3P@yFjlOw2-%KYABJ1BUwIwUJVN8(?7!z?e(~m z(0odh@)zlq3w4`qkcvI7hBs^3nV%PYjEqi{Bda7BrEK@VgYR}XR=A;O7dQ=vLjY~$+KDGJNfr%8ks(>m0w zOQhYd-ny<}UeEtD$E-|jSlaFo*>ferP})iQZ{yVxW~0aOBv*A@+hOEzP$ICYBVd9h zI1Vi5Q!1;s3zDXA3IoVFb9n8w#%biZWBNaCA&goCtqDs2zry_ohs_F9sM)n5CsyI! zG^?5qt<6{rRz;XXK6GrYoqrERAu9A_YlNg!o^#=54OFYC=|5U){T7D=jU@Wqgr_S! zwm*4LhfB=-vcY#hy>88wRJ$%o$ThB@nhB@`O0g=!cAWl({rXMx{X?e17KFNmus8Jc zRPv*mikR)7+ZnE#s$H2sKrRX67rY@^F|{jK0tf{ap-bwo#TDjr{-yO#e7C=gjl^PYPiMprNhOIR!)x9t72pRjGO|cSj-#I$m<17R1D#o}MTSf#g#tPr z;kup``}&U)OSP<5iM$LRg3p>G4nQf(XSxlSnT>p}pj=sBW*4us^#@u<7Ntj8y63oE zl8!P3EuBDoSX5c%T{IM_M6FdXsjqq{LqlFhKdkJB<0!ZF;1enMAIN?A1^8La>gy+zC4D_CKzu0wi-5S^V^pD(TG9h7O~M@sbR z;B4F=J3frf;w>q%Hu2HvS-oe?6azWwPaWEbr#0e$AN1s@r*kKHMzEQf%J+uC(dT8g zziAfXc=4wXOtK>>PU>Nx5_GQSLJ)20xKKq$E`sJLb71iCi#XtAX&4M(7GhT+nULe+ zUeS?u3Lb-c^PV3$iWb_OLs``EMEltepIBDEKpZr<6m+S%-l#i9+^nl`83-}~v_?V_ zQJrz(?twq$U@gw9Ekvxe&R`$imAYdq6U>XCLzJV;NefKzhxfI375|(mj6@gCU}KdW zd^Hf2wS#TuJH5c2QCBteAsr)irFptTcb{NJJs*7D{#=1fIaBNNify=@Ws|e0c-7{e z2p{=JMsCb{kvYoUY5&fF4{CmRZ<++JqwD@@UHo@Mv>~_wkdiH#TWp5yR)SMb+H#eP zP+9m37mO?kuj#?l(aMyso$h@Va-6V!``7Ekbf44SeT}VJ+?HYMgD3Cp=%9Vo4wgt3 zk`iwKy`(8Mk%9{D^Htwd?j*8`O7@NN!nxiV<`LJ5J!kN*fzR%NRq@_X1h(CcHMp`W z5nK6v@M7iuqk0eIa@Fc2OA}G90*t1H^UN7`i@8qYuL{fd{@QzfaBFDwB45e=T3l+b zW<}XouHUAAd-Uo<=G{F`Hr;y$AuG2*iCxHY;G0#ug-U$@@ zK_s!wB+TC2yFwtYN!rkQ}P(%ZVmj}%OeQPc;NsIQ|^d_0EolI-Wuzo zpj@Tnu=Qx)emiF?8^=NN>jX#z!A9ZAziiO$va7*OqiZ&3n6FxAjpu)z7R&pVOAwK4 z?mqUdzfv4CQw{+f@tM%U~S~+t4glB6+Zx?$|7CiEY4GJ&kP2D}K<_Hh~c- zgKYjBLM6^+r_~lUlU|sX*yKXP!i^=I+p~DjT)hZag+xOQvD^&N1H)`Mhr@^pi{INH z$nn1T%fwddPYG03wT~moLOJ_nDD=97=oh=W+1s1fK%eLI5_v^>+C$q}<#lkdHeY+b zO+gfLQnxROjRBJX{p^x3?2AfI>xY9GOCpyQPzp%Wona#09y+}E- z*&Ebwcc~>sAE@eXb(-AOnGTvqC$l+)=%4C)WjlPEmzDC)y9$8d2iMyq>;2KsdSEM> zf%oZcLWh|Lpp>CDqp3&^Z|JBfN2Z}_e4`167O2$Y4G5=jj#8WRn5Z&CZWYNQs@=hW z?0mlr=SyIg`F+A}wJ)5@US=<$jm)#6>cucPJ3THI?9Z&M4Ut zU8tbL;;Sx*F-qE-Vy>3V7jkyAh(a`is^aG&dOi=`*zp#fI2m=zmhNvO{lx$bki`Zn zK{EmnD0da8J@~p|X#Js}UpbSd0rntO_*t&UTV%aDYi)0!AF#Zssb4wZ70f$IR|3EO^rO$@04Bd?iv2ldp^9VpMt;`(05gLMReb%u=M<xccjT99l3xiV1GkfKeB31$c8`51Wje~%2ka;R!`uZce9WCAej13~?AJNp zHz)AT;re6aB)(p6DXj9KA#aw>*}>X{PrNnnYSSVb_G=;nL7w7mT`OC7^+bthC|t?# zsBumbE{dUFB#?QFD4G{CS(^()c7cy2CFD>=hkkF9tV{~z%yICMyX8APQs*}+t7@`C zEOD06*{9d6_ej8t1Fx%fm30r2g|@n??obWA*`;Is8L^oze&=wRi!%7cTPS#8VGdSs zS4&uqwd8LJB)G7pP5(mzsF`e{X>G*rZ?w0S-FFs@o3+!!S+CW}U{%g8OH4hkeY!?; zJQ2S!pVL9AE_wxQ&eQQf?@PS)Fjd7Nym*(Y{cC6DuGqNXsq-X`QGt`{uXhjGIw%-(NT2bn5mN6&3V$e>qP*bsfnJs5UP=z#bAHwc%hs+s21`d+>FVc1d?J z#Z*lxIw(>TdNnVQiFtX@k;F+Q%O2W@SVLWps$V*hk+dY797vbMPK=zAqY=eCh0B59 zc0W+?(?glBx}&C}Bx}|)#z(Vvy+-%~8lW5<8G{^yt2R+YO+Sd2x}+GUvXp^K8+eN9 zsVrzBzq7*q&`B*p?i>6w)21gN|LJS~m-gcOwEDs@cRC^Zm z=>Bi*0t%m?(q!VMx2)OGx>TQ1I@GXU*)Hm)0Zg)XDwP`E96Ginht(HpFU89~#;zYG zX|m)ODT&p>**K8FhFyDh>Wn^~%Yytsplny%)r@F09^xrT7O-^W8p5untoqN-`6JG}@Ur@0uFXn@1Emd$=)uL^Q3>#Cz zt~4G&K_aWligr&$+>#?oG^DUg;jYv_8x3-h$Cc2(bNvV9}d{L1qt39JH<9G^9w6|jFjcE zCK66-O(!f(we2!HA{=(lANs^7wu_SWnI_nYI+p#QHUHWf)>s+%lj5KK)$A~5>kS%` zK`rvVo#pw-JH&QqSY+Voq9qDcO~}F&Ht5i^j%GT6VNNK3Gcs$!HKTKqH&2vp<0`3H zy82N>qWHN=Ely9Yn!|}AUbKS!#uzwtzMTtYM90)VoIlyect^UM*4NFPGSfNYGxEI$oTo*R-F%(ITR}&K!9fe`0eD`I-n?8x zeRWw?F@*MA%y38Q8=$+3Ld%lv)$gE%RShWl1NiY)ITQkO)76o;`st@S03^beguFHy zUp@?l?b1WY68Z^bA%cz&7KP;?img8^Nq`yH^>^6W|9ou_?=>Q!g%u1asf1yw$hIXn zwa^UU{+z&;I2)}lt&I+m*2jsm7q`y87k<`QcNgjR2j-koPKqIz%id$(isCD2#4IuD zNQ93Td0ugQF7RWVhK09@##y+&(s7d6!(c zpRid!E9{*r7Cbb$UoV_A27D@!xsL%i3Iq)8^z4W8Wp7W?j106Ggp_EGBTykdetAPj zrC7hRvlW?#BjMM_xb(mhjg;#sP3NmSHw!lKFzCEYP3cX|BX51_;@CENcow8hENmYU zT@WaEu6EJ?R2^WiAPZKnPQe-!Z!Cz>i_39$xE@LWqj}W|gmJdDl>LOih*0ki8jNQ^ zc7P+i`guQZ!|Jo&4%*aSQE($z)g(y~$j`8EW+$R+KuPz<%?lw0b-z?}2e{LpVj84G zGFbnVfevPCTsbK3UEGFbs=;R6DD{WZ^RcI8l%+d5_8=z`6~Tk%lZe$B8QatN_gEwf zQ_8`^&lB~^&?9!rMzHCMV^UTpjy$6&VU#-fcNu)lf*6-)t)Motlh6omLxfOiBx}Zs zR8Oed#eQm`v5n_GoAse1BpcKfQBvO;6bHxjx|sW6s=ZT5kkvdRA!zd-y%J_8I~VSW zt^$DkQXL-Vnx(nwQ-YK4)mtgep&+XVn4lVCfBTRrfZE&xFm{sj(wSx?Z>SkurV)3c za>iu>>Tn|I=yx4mu*nwwxSB*~7pyK3UnLkM#0M1W0RNv9!pbpjNzaL1_?<+TUk?J>d2}zOd`5g|GS4u^-p-+2 z(k#!+7Ojv6%FbVpl&@nx@g;PX6zxpB)77r1hVQZs2r9^LZN!B3MD#>38TmO|MS*7gncOh(-#+W0xa-M-X9(>b@cnTNo#jb)NmKEdbzg&f=&IE^1}~RjY7chI`Nkn zjXLEsqDx*BZ=VKCh8%6guAm`eKG(FT)o%Ju45BGk#dPooQeZYJd!q895a%Kfw4Ts& z?Hzp7h~l#Tk~9Yp4<49}qd`1%2XF0VI|WL#ZvX7xOmKa>rai4Yc=Yh#&eYqhfkTMg zO0_N85)vd~Jf#ViKRfnoo*O7v=_ZW-%`JEgudBQ>I2q~s1WqhN9sWC6#xds^ zi}diPkMgC`t1x{F+^J2~d3nG42YX>SBK9G8vu=$7)uSTjyCx~I@+?V{lzr!7C8X8B zy2K;fVRVa}o!y^J?kL5`$VcXMWHs?MnRpazI$b8Br?P+EVse#O%P0ZkL|4>Mj^Dpm zPG+(>kcY2QuGm@TO)cF*6zZJ6kKpU#S_*$Gv%Ej+k{nxr9pgwtZx&sscs+z~4E!Ii8R7NJ+ zQCc}k6UCPvbPif4eMM{=UxjY0ijD$Ny3XmcTM&4@d`aq(d}Tr7g<1K?>B!dJ3=0>-he4pJbz4N7sp-^Jfh77bX0Pw;aFBYYudf_zz$Z{dljE zpWKlp8g{y5!`kkmr%FJ!K1$GJexP?l6t5__Duw{;`)7Up*cHhKeB2J!_2U5l0WxPY zJd3ORSlFo48MaL`{!yG!hJs7vXWk+q~&8u(cadjf4I9Q#_Kp^mg@YL?&?VOE?DqBym77c<9k6mx|9oE4(a$-mQ2dd z{3%sKe<=jFmw)WNlKSyZk*)ojifNM3Ij6&8uosUWk$w49H2mtB@Fvb6n@{xz60~Lo z$L#_N=M+;jtskc+e3>1AJuA)%Yhg6VANtuWdys8-x}_`Fmsr9bAjjy}|H!#aS`6D( zFi)gR$6~zHYU|r2L_oR<@@!qJ*~-i$nMia8oLZqdg%t-7t~J#K;(o0`?smz-Mez(U zyqn%wv{~@&(n?%zH>n>MP%Sa^g?M(&ajl}7B;dX4)eaM0#pFd=WM_s3T{^Os{X3R* zNUA{+F0#?imNUy;0ar{ITwHBYcu2)S+-miF)JjrrSt-1E@+;0}lxp*%GyR9T2!nsR zZM5RykK+zcD7mq^M*U>Hzlkiasw)bgdps+2Xv`aTg*;OGbvHZ{9UxM%K*WaF?w$6Sg zaNR)=JgVd5$)Xe-Z|7J(PyRDVf>qmBUr-NE%X;&_6}G=0C9l>R7a#f$XuM9pVbEYj zSN}`Hh50{`+RUtsOq~B8sm;Q|#m@LY8ZOa3|B%{4Ti=tsBio%b_-i~~#*H}rj^ulg z!guz+l!5%D;-rwHWRAaXQt}+bDa~oN1I5q~#uIDHGL#w82MnxDs z`p#a1Gu-jr{?0UsHOukHG0S<~>V2IWXegdALxHg%MLuP7+KV0%{s5E9clSPuG^yXL zpOOpbz8xQOLO+V#Qrmku<5JUcGr8j242f?~oyq1iQoTyc5?OPj$95cP0x`MW44J5z z!h`sdgnZO%HaGq9KJjhZX|^A3emzFXqNuMlqs_`b_uJt1?Q%c8`0(HkL7cFI8UET& z6|k-1@t!E;>3RPs&phi&g|K@8(j4RDCfU3c@ZH=j1n*bu0ksrG@QJ|t!$mz4$AU*^ zCPIY!m;`Dc2(C50F0M;?D!y!Bv4#%tzl(}!YP)VHlKTkUnr7z0=OTpwCo^)p+yi+R z=FG|@0#`4$o-$20D92x+*F-4A^ix!R52O6$Nw^}0iWW*8j2&Xs3DB9~qK~Rna~IT< zPOw+>L-r#%#BoG=!A+nR0*TTkQb<`#@wLL1!s`J|1gDURl8}zR?4eDN7BKS)q$<=& z{WA4s>}|r(yX!x;SBPFmImGeAkt2w&BUr&LxaUQS=)@~dMzqk0s)g6%oRKBSI)GLk zrMO1VY+FQ;N3Uwh5d&E50~Rj(b+7a5+FX{}HMp({H5>lgt=nkrNBBaHCK9dMr;;gb z`$tozS{fVrwZI`MPo|rpQ7WF_xJikWYt(4*u*d*L<+%c>nxlQ?wUp09>9RpmNz(*# zu}tAi>*4REiKA|lP7`f8@kC-uZrxMYV}53CFeXBTlgaN7D-k4ni=Dd25XVH*2wWVF* z6T5}*dTq-#y(sniTXm189uyu#E2TCGKeDzr<)J@(EfDC@OG6 z+BPa2#T)e^Rw0oQ(~S6+EYzX*aH0L9#6a(Gp25GK#I>T>197VpFKBxhW)9u*Fjf|q ze=LmBxQU&mi%9z4kZLia*A7{^waRUt-CC}D8<7_DQ97e+NJD-MmUy?vEeG+-o zzKOIY=X>&g7(QgHS4w9V_z6xpbr#x%*u{O-n^hvwy(?Cu4sEBMbWm&xbbRKWbU;(! zTSsnBMs3Yy_LCIA^zRQ|Y(`Ar*cb5>94ILjV(j}4^s5O!f^RyxHF0};G*PcqBJ`TN zHDQFtPpfnq))gDv&I$`}+AH>|a;sgNu3D!VVj7)TQL;F*48kc0DCNYO~*-a>l-Ifa229}!@ znH?l)E_Y=rg|Jp;sk|VIrX73?fWA79Sr z88kPOXq_6*#SNYa%pqU~fqX_IPIeJQV3D-@A{@PuIqavGMXGbvp9V8dT;Od(jB=I0YEJR>O!bSOp`@nw3pDwu1zQ@=h9G?#Zmsod# zTp~Cp675}jGS9Me_~fKxiy@cjScv4~9=fp_>-toWCz5+le&<&^jh`sHa1_wYQo1xL zySPYUX-cwWcBRg=l55dLjK0Cun35ZAQl$Ke#&Ue;ID8>(WB61zIXPIjIvudz@y*E> zlZ&5**#eNROy@K?X7zchD+ze}n=u$|&^$#ltorc2)@Up6ToqaWeW+pdIz|1`C>nnL zb)fP2a*FivZ*6?LHH(=Q3pYawI4~-`U`-@y7Wyfm%gz#o^`c1-xdMM{83h3a#KU~v z!Ci;3F~O-XvSL{tjE{zkIB-`bh`8Q8PO%tipc#kbh^pfqbDUd%H&ni*+v}T zEOeaYyiGqvA!Te>lTzHbp43h1kE)zQ{*y~Y|J&I+);TM6%>!@b)kC*|q3=ZVJ|f=6 zm?vAT1@H+Z^F&s=B=i!8*`uCiykl%n_(-e@QO}G_*%)*GKyCU?1n1V&Pv->>c*W!j z?nzC|9Mjz|{)%N7m2A-TL{Y0IXIB&k2h$9Xu2qsz+eSyf1Y#P!yJSEPX zOAc})0HB(2+(THbtGbIIGfJ-zo*vD$>qoNl2-Hy`Sar$xM;+9a|@d*>GYHh$X}S@fN?<|Ep7#CF)O_#u+F%LuaGNcZZf zQN~y9OEjp70#AsdQL!bQkD885l((M4w{etr^7*svUF>(^*5o+6l-%gdnAu|g#T+~j zVIna?g4pPF8Jrz0G{8~bN4oXNtP(8cvU!=V|F1D54xITa8Bl)b}!jqNb^@y9O^J8@u7lQD)_<(SvDhNHg1@So#5jg|^74>*5xyT^xZ#=L zSⅇ4p2vb>E2OpTO)8uZx37>-MLlB!!#dY6gqH6Z2Rv_J;=UsZi(jR)47i$y}7-C z3D5VQVu4FcD5D474XEV((t?J&PrWd3#q1@ypm_=c0wRl=7R4$OEsI4kmozO|&KoitW!6$+dlNwZBF=-7 ztD}hufcC!nKbz`r!rzfM8(sxA(clR)^i4{a-k&0S(wW||zY%^WW4_m(@=wn5Jm5sH z4fh*P@~IQB2gmeXJF;ie1u(lJSQ*$g5|9NMC*UduEUI7=ElD&Mo6Nh+n^KW<)B8|< z>TuI#57i2>PbjpD%Z^!i1oP_X(hE@g(fid%E9olnt4y8!afw;4_(IW~A{ zC^Tr@qch^GyEkcw>iPl8`z#hGSy_Z_fzck7Jn=J)(GP@Qj-s(h0XA*CWzOY-e7!$1 z*=i}knh;M$cARSRk;WQ^X9`@h@I;(DVA8DHi9?z1uCYvIi~)dh$KSP)YkzE|Lerh@ zQ>ZC{;#?$oBHo+oIc9OncGvU3#5Nk2fMCq>IEQj!VL@BB%W+3&0v#cR0ML_?I*~EP zs3aQn9&Y>T&YQsx)5DmMGIw1JU)EO`Ao5uxH(G7{(Ur|iy98jtSR!W1)ZNQyv!|*ez zV~3y%FdifC4w2f2L)>-}c>e(hp8}21gQkC?m@kkut~QP}EZyb4S?o%|lPhuM6~RAA z6RNpt3v-4LP~UJMxoV5?mSj(~advqEZ@?@8dgWb8CGB0*F?SX6Xw7UJp{yR|4q!B9 z7x~_i`SyYvgHtgiKHl*dgOp#b&fa3^yJ6U`LX4uxtHp|H#{9(0AiNyEwv_-#|59IQk@RxfXTPoD@P4GRy3ABjK4sSEeg7@s1ecDYrvJ zLp!R(sskVu!quihk%ulBgFtCVZitU%U^OxujmVT^p+}Bbb-GQ==Ch!v8AGll%@@F6 zQR4#?!c1ZJnd&`e9hiZ!tJAhN=NwIzz{s~I7gfXMXbUCgdDzWD@&oCE_5tRe^SD<( z?!l>iKsDdDwYa9w_`~J4L|=Yq!6E6FmEk#s zti&M8QoitIw836BeuM9a%hXRk^q1H4t1VZ{>CM5bCZ0RA%FB;&YiZA`tg?u!E_TO{ z_Vi-!=!mF1C{sfgBh0a+U)$vZGp5fJ=Vnh3KW@~d98^rv37Hv;ur+&iasF=HMzR)? zHVa#S_ChfdI_y{GwoZ<=mPuUh1m^?aN3Nom{yAx1?pdHOv8vhH0YTCSZB*?CnC--i!VfvK)f#*P3(FoQ z`p5zcs~$(2hmTPDjxeoe5`x2N+|M)l9$Rcq5XNQCeq4M!Zoa_aLGiNT`i#d%k19N_ zTQjltd+$F?cATlTCYwT~;zXhBx<*72SyL9H**baja`mP_(ywxma5sF(JQ2AQ$t?u@u6>Qwn845fmwCXHOFN&=`^bD$x9J zxVYH1;dDRx7iN_Dz4P;x8S_i?E@Gqwr`B&Oh}{S|DjL^JjWS0KXo{nbOeQNt%?Gp;4f!Ipd-U*wZ1X<@b( zLsE&qoRePUJ1SxMZvkGEBj>#M=0uDmw;q|0@cJLutnt%oE7L_D9|)kUGO*RP|z4Ny7yoGbH2>LVb3?SSM`i{k-CV@|ecDkr>_xbn~roJ`4?E$7J8;zmqbhwQ< zchgu*goS><31UH&J(unmZs%#hkahi_=$wMP zabR6u1128G-9FFf>D+of_a)1`(_+MS_b9UF@f8XK=A@*>d5sS4uvbF$&Q#|!e>OiTdc^pO=U+p?DGAo?KdhC> z$6c43bbcLXQP?o%26<$IVTY~qFJ0pFq!8LyYNKbGEz=Ftw_=@!%<3Oi!#)yyLjn2u z5my#q3m^wVFt9MREL&=5w2+HoHAX9CG_)%`%N5T!>{fmcy))aYJ1yS3kU3tr-~fC% z_%x&Y8Jf$u``=4RWe zrPi*=bC;j5OTr2g(VZ{klqcC!7I%-`o8R-857us?EsUQ8N?;RBpA8w~@x z5^anTFzch`WQ0}Hj1|k0=YmX`JX!oG{us5PPoM^ND7-4VLHmb-{k{arOEcm7+qVRT z@-sJ2WzHrRy4Z=_lZq8w4pj*xrMoGzhMa3&JrR6h+zXM3MWt|EFnp;;^6VGbJhx(M zEJap@0LwvL<%6MV;IwhrxUMd4wsw_Y53%UQ~_=J)p?}XHnz6k0Jw=!vdjj7#dd9D3>r*jTbAOHEugs>&I`b zFBT`pvmHBkftew7;c8_ftdFhsIN1IlqDkbxX)u|rL{<1O;XV8J@|bXcwK9SaB+?Z$ zH&A4ba8jkbe009xATr^>k5?Um?_{Rg#GXHhv_LCr6n?r?I;pX3dPS{Dk~el&VZwOe zxE;mgc^^7wG-5y&JXM^bT)K>8(Zg#PTV3+ayVhmkmZFjVrOFd1FLaTzvI2nJDhvGX zvfJTD`|Z;gEQp~$f~a31$ewjM;yp%z|6#fT%CULJxOMRLHDj04b90)CpNqcM<72-x z*^-Ii?Rgle$J@2-^U}@GD(B(412{K*056fgdXattQJQaJN8ptDTkAyo6b5xzmeI2B zpF%##9=3$Ulqm&6Y`~?6ttx2)mAORV{}L7OSSP_G6e*P8Cie)0y_A>xBB>cavxH1Q z`I~}LYhK$%-3)rloa0aHi7|B4ytKN!3dBAxo<<|G=z6BM=`l-jYro{4!QSwkxy;vF zo0OE^rwKxjS~5+AL!AjJ^Jvf*f$4%Ak)o=fo#V&>N3!0&g9f(d%4BY9-vaXY-O38Sw*6t17Q0DY?`J2xXXST5bGnwT_vAfg z=Tk{~>!z!g^-85vhN+BSn;4M8t=Z)J6HDD1k@vUKQ(*6!x#abEhGDjq&+J?DW1Q+C z@+tBLgUJ{eE`_QJGo@*iF`+8ryP(9Acp~i@WaGMV&;v0DLA3l_%b6+h#K|A{j6+q| zLzqazWtc*=BU#ySXbfp;oUzOkBjFG?mQKKt?$B=-`9G zeQf2}%OiRH&Wmd2ptRH4`BUybNI8cm#bTclDE_kS3T~alDj+~xqrF8;6MT#l7hbwm z{kdN7sFS+yV0)hKFj-OISyF{;DKs<_#~x>!X{MKh|OvQzC2{#3Ip z+sC}Uv5RmoDJ#jwwl{|FE=o<;V(ck@!H?{c-|M!vAugco+D7lk;6Z~x4KElz50@C1 zI>Ye$+6(Dy-4-qtC1fY(aTBL87jnxQ71Ik5L$D|zb>RO2KS030%DCL;RKn#Skf{9t zD1#G5sY~!)hsZ|;uPa<%xY_-*`(^9f)(=8PliP3a8k9`ElwOv-;A0Y~Lvx!8TyFP4 zyTfC5d+ZJyNJMw@f#~+FP&Dlhy@2Ki^@2mDZ*uYhSJPvBc+TnCB5kF%QIjeTz2QFKeW?EZT%ew9)GZDOtqK&^ZD$GY1z|%e)aCAqg-nn1;`bE=M|E! zbWEP>MIAJXr3HzGxvNLrPJ^V>3r6NotsaoCc>wd>R+{KEd;R01xVU4eroe zhqT{!LbC3JcA$B?QCcO>uF;z)zIK60tZx;pC$nYhxH^h`u?U0}@Qn)H!D8v;B1!*_CY2 z1R!CfXs|}`7AIfeTB5e8o0+q@2(8q;)xPPzMZT3j*$1Umo#gZKhx%GsadSGSq=6Do zaLFZjUQScXak`#$TxH`@ijxoLcD2+1YlW+3s-Z7{<>CS=QAC_tKOA|f=O<36N@tq= z-7Z=%dGMqw*x-G0TH3EUa@*gs#~!);`1TLm`;ED4^wK9Ezv234-Lti=kKVsy2PR+!_?;K4sy4D%w;!-k8UL73Hi4IM zD(uCmY_i%KB#H4U86!lr#DWfEgXte+3}8Qg8Bf>DX28WMe7u6{G5T^q6|M)q~=k#70d?edS?H{6?bWzV#J zu$_KMUwxR{xf6ha0brmH)_yNWayZyxC804c5wTWqai9e#fewMNrxY@GG}~>3h#wV9(|?a0xQ?E3d9`?1o{@_(Kly>oM(!F zAEi%Jf-3VC$qQm2!ua3=L4^ex%rVY3=Yk~9If>3-DUoU3`}R7Zz^sm=v3rm1$qH1*wp)+NplLc53GTP zkXH~~m32M&%WEk?2fS|?g@pkGBs&qc-(D{q6`fPvO zmkSoIy)%3Iz4x-G@4jNqg1M`2zjDsH0T*qWuxi`(TUI_Tg-Y+AzxDl(w_bT)X}1IG z_H__S+cy4=PMmw&t<&^f7sW3=+Y; zN9ZMrN@W8AlO&pym?0_4Y7*qR1&e`<9L<7c4rwVf@=P0OK0#C#Vtx7zr5~Rmx zG2VyE>$p7NY=7wwJV}>tYk!Ep3t|+AQVZS3K2lHrJBT{$>4_?O%42Y?W=Y zUBV)oBFoTBjjF+5Mcs&%ZulbL`OzK1DvTMd9-Lwl2;zGklmLp1$yN`pGDQ@{7*Qp) zl`YmyhzI{dhX6Wq9Hp9nOX_J*&`LX6O z95%3(hDHN3{KE0}JHm^zBmf-5KR;$I7|>3fApYvA;EC#Em`eQPzKt~G?%Ey*R?8b6 zd}h~b2M*W|99XO5N=)>~j0N#G5iBya$PUS9*bAeHbbQY-xRx&EvYP)T;2lXwamgK* zQYETEVkQ$BpI{h`O+qyKzhcu}}q+56*gx-UD7O{JUnTyy6goD*&a*Zu;Katdke z-a}--WCZtN$nx;Sf!82otR8n!~6=XnfJ4D zyeQzktif)Dk(e;~WBfc|dRnkuQQ>`2`4N`Kxe9E4ZvEpvsMVzhPUBvV+yvD@YCwqK zU=&P;++W@j#2N6~DyX=XJ)M={5)>98W}aL7<<2<#ADx`R&Jr|UmNNrW2@pV8zd;O^ z1?rnwYTIiKSI$|z@zTcMZOHzDUa+eF#UqE`@@V!0y72PU(5V9^-n${YUD;c^XZGb! zm6z;moU^mOw=~}Ay>iq=i%QRIHCX#E7(V_wgc(qBWyj~r3V6~A$(y@oviXG!wjdWY z;{A^6(|IjM%4{>SM!u}Dk=$0ei9D!0C;iH{M{2RXYCA%X75=NxX?GPm3k#*LY8PkM za4b5)HraD&!Q{YPWkKN$t~*>0N)Ol{3~!@PvTe@4*xm4Y2Q`ltltGyvHFc>J_GkAl zm70T4IpmI5rBFmRX(`9WBo(8S2BW@I%t(!pXzCU##E9`RJqIJyU_v z4$R%Bde2yt4mIYm)2T%q#E2oAXjGWkCV^BYGe=Pq4Ah*6=L`ZYDHtu({?DlQ9dJ;9 z=KD_6i~J|*<fLMTb$VYZWI+6_f(Tq$4fun8rdrIP1GA(Scs*XXS5iZg zFHT){WPW2fPQ7Ml9Px2*M0dsCDq6=e)Cd1GlsyLgOvcOdehO%U@ki+o&rQ9#c3H#d z>+e3aI=hor-u&o7O!b`5m9zO7NHv7zsvh96)*L?BRXWw<@J5wG9 zXW-Fr7ILp%pehlg(O@8w%*otridcvd8gU!KvRxI1iPFU}bIiufL7Qy)KhGJb+nL+=1QNtq$6ap%k4_y+pPRHiox<kTek>4Baj_TCi_2zZ{{H9_@DdxY5d1> zDl3Lw$9c^8W8Wryc=l74X&=kSJz#tLl^FFx(Ec9Kev-QNV8|0HVD%;Ra-*BNq~c-{ zcllV701SNkV|)rJRece=1Z~wsX{sbyjHMU6S4q7v@ws}Km%bdsLE7&NhAE_Ph+of^ zHkQzm!c@#m&BBRo4y0!0Aps&DrPT=ziub|b!5q&S%V{7njybMiEm@F?ri@91v?Tqu!Z`6d+;MdFxMKz!6)DL$4O@WO9w)MhDIO=q5;7702@J<# zfN&m&8RfVRhfbfQ^Jm<{>ofFVU>|%X$>Wm2K>9hQOW4AV*&|!u&2DLFreip-Q?8ld0YFCxL?N70(KMrTj z?V~UY`$15vFbfiSeHTUe4&#pW=KdE5hkA2)MXv1LD_3?Y&6SB{t}Kk?N`Fw4dRLoP z5mPoPI~3q5l(mgm0m~4XFT;+-(!fcgxMFDBL?q#_7c&WGNKOa%s#6Exp01o$po>{1 zF(Dxzm*2+gcfLILIyE&yovW)|vb3r_uP(u-1*+tvSnk~a5?77zj?jjb@f^}Lt4E}w zew9YkfD&^bwXb=E`BG_(^p0d$VSZ0~56qeCC_-d(Q8viym1pHIjfz>OedM=g21D_v zZgRydq!`a2Oq;EhSfuPY+KgjkzLa@c7_UIt*6i}~_K)-n0(fRJd4bUs2wVV^HX%aH ztVpsPQ_LPX{Y*xnnF?)IHJh=IN~X+UK~SezViv5}wz2`b1M3=Fm5kD+993lHVk2*} z^fJ&Gw9|}1GPJTay44bk;dTEPY!fUZuUrWx{cWdUvku(G)!RIegFk5r%&a9a4z#K& zj#gDbtSYWfaRrxq)KU6{pAbvMRmLi)vwoz+zJ&AXDQ7UaB+x!WKV9U^tf(z-O^3N^^ek=&2i5C=x0v16S+QDevH9Op3FZCLLC*9Xy{f*JZ+ z@4{%ey0ikd81gB&sge?RKmr{0~=PX6D zupXd*yyL~3YkvTh?e zsV*Lb_sQLsaA!#RR8Qc#V3&|}{AJ)&?8H56I^cgHeI;QIqlblz@(Sx3>mM+c){Cqc zIiylKY3pX6B3&l0uw83kYcpDyVyv|FwU1#VB{(IGqijR$=KI+L(q_YE<2LDOgX&@q zyS*Wn#y?`n&W+(5+PEq!r`S$J$$37&T{c*Vb+L=D`(KDPF z;RaNqpcE6mX{QV5os+*tztt>wg@2h9C0N5&dC4kj zzEDV(HQ8hFSwiwNzTNg$?2^yt53yLG?i}MDi~hLwEQd zU|Jv|Nv?>+RFI0n7~p0#XLP9Kv~7Mx{yBdQubGW{W!aI*B|KA-)6td9;OvE z)J!eE$bOo$f#r5!w+*ptO?tQ4&IKMeQXA>HOuNh@TdWaq7~=DDQ;ry2DWmYZ7)9g? zSm`NUSOvylEJ*P$=(qiU<=20hM*q{Y3!E>;gfco>TOuZhPYgGPxn0LiBd+2LgEj(p z0E@?+FmCzMt*~WT={=*ax~KN*>>so1=neZGt-GZ6ZQ0wEy>{2^-3wpLwzoeo(G4r7 z-CAJdnDZED9PSp(K@mNx$6XdXb@dHTjb3S77=;^y%L}8(4I(cF-V4Bs5DhNvxFbrm zfI;LcuGWsfH@kurC{H#Ql~g$SabZaXR(3=QFT5ym{@v!nRPH?bi}NV?dHo_(lJ<+k z7sn=8riB-Vmzu7%U*}kDUgx;a_Kc&|aoqm7LxZ%7IUOFS)8TYjO)l&M3VO{d_6^vq zir-}N`htN7f;HN5K}bFyi5CfY`uz@v-55#PABN(S3x7i8v=Gp!9My~Xo2e>)d$lfB zytufrSSl{^|6gI8!}kBij}lxl{15XtZ*l~V`MKMJ3ynOi(~vN5wn3m$c!zlK1z&^Y z;1?3LGviD`tQwn*x}(ye4RE>!psAKF5fZ}=)h-yQbb>#*knDQ6QiGbO6-ANGF&r)@ zI$e11leiO74+eBf2-Ff`0rAJ!`U9_DfAGywT_#=9aq6W>S6|vaKJst$vDKSL-}gke zm$G-vAFg}&?ZRa7=;hfZwD)Zr`dbX`%cb&u*NvDfqM4>)Md=@~*?X}9y=0~|Q*Mx! z$#Sx!k5m~RDqUo_q_8GBtay0I1gX|At?<$=x4Z2L?hxm!2Z)!eBs(jq&PqvV1)TxI zT<2T`opTj*&Q;L)v_717>S9Y3vtp?v+1G*nuF0C7Q)818lag0i=Gzw7uk_6JUuU`A zcD>^!ZFzA+a*ed!a=UH4<4$dL@vX^wY?~dM3nKZjrS9>RE0hYFQl&ISNNLa|m-S9z z;~*op?$?EG53x|vYwI20-Kx zs#tH$=v1HJQ3kh)RFfOGKT3-9qyZcW6Sq>u6J6n`V2G2Tvijv-J9mY>f3f#B$*uPshZd%-sS4>v7(cEZ?c1G86+n>Xj?Z-4p3 z4{MaYj_uE69;@t6-<#5S{hBk6yqf*j1N0s3>N_tT(lD%MPQo`M-S3Ini+(q2-s`LE zcigq=vN7f53%U&4wPN|RHM z$pr)0WK<|qdVY9F`|yynyd3wd1`zm~WpPi1b|qb;q`9ZHm$lw{yYY6@CTpAZBy3;n zSS!LvEJl{Y@)u0h3L^oxtgaSIX}H>KGR2IF2W}lW4q{C4Fs7LBs4rrOB{$7B(%B56 z65%vmD#sdWqj3|ypTJjwY)tP`Ii1ms*gMFeaZ}wHQ^qQ+7c}inu*pv<3bgHY&6avF zORjA%IR;GO$%U6AdclBp(~eDHn{x{Z_t~1M2ou94X?Dr`Ell*#>LlO zE0@9vlArU7Fz0TzOD_ej1gO`-N?oPy{x|PZQ|%L7bLeb& zzHxzNo_)4!xqQ8mbF6Dz*SOcn>kaG8_sXrt7hJE%e>A=$ziWKY{M=QT~m_Eq2&113OFadL)Y z%!`m-ry7hV6Xl!rB#?m{+xKi#(`-(J{J`~MVm6Cpb(<|z)tK94cDrN5gcxO$gcy;S zRq|M^5^xI956o=?BO=D02nO=`f-x&XJF$p3{e_r$lex_-A#SU6*YrI4wCZNHMc2k^ zhcyXd_S1E9j08LdFU2|fq(`3$21d2l`9BSus5?=I%IKQe!-RhzCuw=URvC4^b;hH7 z@aJ%>wZmUyJaB%&4-OnSPz!TcnC#ry+R4L&xV3OkN}!T*QR@#?f?93+nU1MbZgV2;Yv5evV>%_dwo@Im)8gH7HX1=8Z@hq^d4{^7r81e*24G& zloZCREM{I~yk>R#(B}4`jn^1zony+C=Z1(w=mp@lh!Q`C>#z#>YA7|aep&11)I1^4 zdnhe=v%Q_APi8kpQceqMp8r_s{M~Q{ zO7cLw+~>_MA9vS%uG>+O1IQ$v;ncg$e&OMJS09Lq+y$8nsBY|P?rE3j(z)tf%SWor zkw`TfOsZ;9C6n0-k!^~ZEgmzxE|O}31$J8Z@>clqDOe9xtrivEzarGq$^yE{YzAI| z1KL}eUpHAz<8^Z*9MP?Gmu^FlW{gPV#~_rNGoW2M76ph$Fm8TZi(uX&?nH2IE)&70 z{kv`UJXQ&3Kj+g3sLU0gaXt;Z|CI26P!|vUOB=zL6tQ^CYis$EwT5hD#s?M@1`BF2 zT1{4YZ^tP_$DI;UNjTTd$ z)9ZFCvD>I6Vg+N5s33E!#I=i?I5vOF9jb?KSzS%Bj`U6%)VpR5^-Q2|z zuAn>v@ZW7liP68SyLl@vQ6dHvp9G13xXmxpT^N^)=?@V@FQX3eaIv)-{+J-*5EXSC z3D~$?gt|QH6sVLhb0NrSNtJd?I}7HMTOdTBrNC}33?L!kTmgX!BBe_?XNRW}bg7$I zQM{7+SEw!9DR+Yccc1=J8PC}rP_z3}XxwMe1uJygv z+t!pm=zS>ojIE#xH!`>Z4CNDhEO_myz_VR;2VU%QAaJd}YWBa`@X)ED)qyLGLolq@|gW`D5#kaqT~uv1y< zSzO^Oi+lXjOBa>0(r{0EwSA*~i@n3HY_adKe`A;IVt)s4;7g%fqk>oh9%XMAp-*;| z2S(ZLVF?j-&+hi$i+FPb2;r0-6sk*2iMcE+SxRSUGYD)X&_*&2{rsy=Mg6PXqE4~Q z=>{i`;pIi;l$Zsy{FQ4->ZD@vAROm(qT*I|nQkx9dDL?()ho3lrBnh>g$4=*{_Wjd zOHK9WZMrRju&2tlO18CHOenXkXZO#eqfB$`;O>`*^DG)=9&k zTRnQ!Xph|%EKZuQ?tVe-691ArM(Q&z?s4tOGpjG?Pe1Gu*1C-9d13u!V=lM`7`+A< z&Ha0PXHcX55LK*>Vx^B#qbSwUOq4~Vh=&Oe2``RrimC(LRo<%LCEiPdb;df|6bJv_ zW#!EiRh z01|j28ikV!I3!|dIHo`vFC|N`VW!*(YX>eJ4MFxL5{w-nLT)Do?f!Jj(w$fASfXdY z{ms4wtYXsLE1v(=@)gfxq2=Ej$80>4h!YWhl{aBDZ9cJgFh_edn*M7BY%5?czXlvQ`F(>LeAa$=|gY5BFt1o z3u9MAo!AvI!eph<@KEm}AS>oKfNSmZp4wM}eAbyy&>I>#8s z(2MOxKH2u75Zz+lI}5-0_50cHmVR;j_P<7V1XfO6_w19m&A*GT_PubJ7E<%`l&#wFSZKjj zFTeTrOSf=u+;G6`V^Aa_&FCckNi&meNn3?&m`&;9=@Y(`O*D`9ObE|mvy|DUnV$M^ zTl6jEFYXTmpSnNweB=8^;8Q_)-e@!(J|ZM7h(E)U+c`syTIMy|d8?(&RXiBT%P{ zQx2Sa5L%qcI#rHAPC>9}g}a~6xYN#O9LHY^Dn;dceF%q+bD67nKOzD@Hgp(d4x%ww zcZ~>?6MWi$-H99_1=xgGG6?Bo2t+Ezo=0hQOGceIM_rugco1fL6~akQz&=6xiO%?% zNW2f{#bCxcfbk{F^8;A>&pxp7FU#k@b!+|Rp3UvC=a;Ye)wUb1eQeF68_qnjg-Ywk z4Q6(%_Pbs`_`6r$fBgW5*+_8F2En5=FwFB3*L%v3p3_0Ow`)M4cX+UCRB&*3oD2II!!uk9gEPX{s@E2rW~coc zK8fY9`Fvx&_1?w!IBeLlN!yBWc})(5%?9jgf0l3U=;UT?pa#r4HVxBz-Jo!v4nyOw z!Ucg!Zu1K&UkacI8^l!7wIYLXi(nMuwK^2BVqQ&66<8q{t zw2>ol;I*=w^fDzJc9?65!dA1lpgdV_PWt^vd{p!4zItDyPws}b88)e#h;fV&mtRIkv`o@eL?>wuZ`C{bEkfzGV)IuNy>*_d5cgS3>zY_-vD`-LpZm2inpU4NOxNn=j;t`i##B~-mp9AKR8_bvD5Gio&e#9txCso zUkt#a*%BWQauf<=2^bv@9_0Y+Q|=T#)71IV`d99-lnq^W(>lMMuE>0F^6Ed|x$pX? zW`D5tw_iT+)J->T+kXAE+olA^CCg?_?U%WOR(*Isr5o;VJUjpU!`D71b^UYO{?}iA z6Epc_jEK9bv`b zK`3X^q?h-t=rGYX6ZK+-*(5I*7!3X{BKL3tf#LR*?&K4Ppmt263CqW#74|xxNRx+y z1iilJ<_BsBSrx~p5tV_;XfLNlUq#=FjQ6CME%t8pX1pC<*~>i1+=8=)F`UHvkQgxM zD8B8$;ts!bNf-bS~HJx5XK-9S)G(Z$ia4hGGUAAh0b8XAb zZ7Y5~vSs;#v3FKMCH(fDx+foQpUxgzd&7jgZfbuKG`S9d!YOEd269Nh+|-x9!5Gsf z(^gZ))MonFbkbxXrl@JLsnN70-*nW}VKPUtLmuB|!#;CWx*5J61^X;iLsB8~7I~|j zk=x{>vf3t}lo^p@@(~=#a!yxflTgXe8+H)@WHN#>kPFU+b2-k2O3o9G%2`BZU=HQc z#{Zl>1f>a2cy(?g2RF62+ji-awAju8Iliu?rA7Y7;lpPNIbPzOrSI|17B)i< zaT^elNu8`tHAxQJzm(JPDs_h7=N2yEGtO0jM7au3_P8z8W#Z?OL%Q#-%imacY#ZPuCf)Ig0ZO#4q=fXcL z`sB)9y>n$zE<99Ef~`6bkh4YkSdqsdJE=%fWif)2Iuv}Hn}0DS$H@4d0M0hO01|u) zp=~gy*!f(ITe5ksCXC*^v7Cc-PVc}MYXId=(nO_0sEVlMX_SnXe@>$S)lz63f=tDV z3Xb?64->q#MFfxH-61Q~6m)|GeU--v=VC_SDa=(sQt#@cEVhcId`v!O`kU|5nDQ6p zbd33ov4qJVieYge5ecgWTyz?!n!uhR^N}Rol-!zRNvssulbi4v1ew2{6N~)9K7l)m zqqWn+Sr7~md_#h>At&QV?F0)zE*w!fmy62aR!Ux5r**p3pWGCpA#uA97eeB8A#pn# zf2}+D?LtBtgoJ^K)@)7)h2X_dC*e5f;R?0le)vBf$`eU?gn;(85*EdlwK3q!{F)pz z&Zj@&ts-7QfBY_au$N+ z?P5g)J_xQPLQ@n(407eVc&9+JdfX|G)fu8LTS2El;!!9$_!e+25esL?a$-s7i{}fd z$I70Xzv8~=%?BTSwmC6v(BfaVOqq4bssVE9-qF*qn6h`r?)DP)$W_w^-1}tveXQx) zYsWr#cl&#sR=95Q8SuqRZ_?e0q`KKQtyTL(`rLg|I_*{=GfwJNK$z<^dcStWf7IXM zmt#hc-Q#sZx1g%mX13X__F})#C;URUun4WfBD4y)jq+NBMTjU%5eKGlCJC*=BD4w| z|BwTyMQ9Z`K8<~EV6PUTxL9Zh+}5M92_1p&T*L66^s~kOt^SO^%`f}0&#b^JX!A5a zYm%e9pGfe0#Ue+7KPeVaK|zK&#Ukg+;*W6sr=l|2C%#YvXypDtg;4&v{}So^KmM^K zu5Vz!(K&6yt2#|)quGFfZ7l^WK13a6S02cGI|0}!){F4P0ik!mTPXmW1M%9&mw#CQ z*jUZn(sjXw4NuFd`*zeU9#wWzdjnf@^}@mTyxuPM8x4bvTmmTCNPsTbT>u|}Itfc+ z#|4og-sia9z?%Z%gv($KSVyQA8Yio@#yRRdqp?C8;2PlVUu8A>!m_~$mf?k-MNAY_~vG(!xoi{2lDNAUKG zxXFyVy_i_-;6Oy|>%(U$z!&ObYVaK75ZIP zt-E%CHd2$TW0@F>#!9V;!m@(0!Xbr=W1C{e0lopDi+vY|YK@m!r}?IZ<{KAS=V=Rl z3qozNH$5NvKMcMZIp#SQIU4JTc@uJ4OBeK!2WZ3Pi?ylRr1N=e8fyOvu>`(I-VR8AdCrcLT~#lw`OM+fW$H9j)M@D<9dQmws{$K zm$PzLl92!I8SZol3vQfu2n(0!Ifw9R!HtFQIOh-+aXny>KxG<;!XZr0i}lJgVmO5V z(;W=$pVK4fwVmEzHz&88p6}t`luDI2vAO!3KX~nv1MZo-?#TS*AKx%_V-M$3E3SR+ z>17Q&v-6bStRFXSL&yD3WY64j$$<7V(vyb{y!MyZ4!*-ZRTpOGNk;)gjf81m{Voej zv#$PuY$UtRs#X_N2Sx@qMYcwi3U@`QIx@^XECk1HXr_B+s6Nsdc}x9^>ofHW>z975 zloeUih*<4oy@(CBPG$4hd)5#9pLo9rd=@&(9Qdk%CkRiXUG>28MC?9$IX+II9dXeA zSJ$ARsw=(AW>WepI{UNctKJG z7q6vIaks!@`=Dq=9^G;agiBdaE0uOBbc@>3wX%=6MYgW2Op z&;OlszH`3!yx)6F!!_m`s|@cD5pY8ug2G@CaKj1Ya704{+=d9a@hApTs!Ah5BOkd6 zF%JI60^wk{?J@|588&}3nXTzENV&C7ry6&&n zdH(UliMM}#`u(5N2=@f4<``y?imE%7s!JY) z1w@ySG&TKwWR(^t9p><2>;I2nugvwna;>W(SWpzjICRyFLbPEi%hAnF@~7L40|>cr zI~YvrF_CEPSwh)*)MhCeTVQsQdHku6Ahx$Ip=`@+^UWeh$T_o~*gB!DVczW%CQTZ5 zdw7Vq{H2b`W4EOm8|E+RJxx|<0P?*HR;czw-4)*AaPe4ms(O9toZy>YLbTt~!k5*5sd_U?-AX9^zBbb)oqO_mRdysPKhXpsL4e-_}!vjTN3YNxPC%KBQP*Z^cEbG^v+n4-W3ypV@%+>F)Y*WmP;$}*1ZLFrz#jq|1SJ33RyO-D3Bdc zxUi49X+>Oo)li_!^G6&V!5c=b8o@^pK3yt_@5~7VCbL%Nw}=A$04ija>XM~~aKMK6 zc}7xr4}uu*6X795?n@3%EB2Pw;$)vE#b3|v~l*FiqV6@{); zc?$am)L@M`J0Tk+M*{mJMmV{s@`l~UGb=hD8CCZDvCT~r$5cEw>pO?%T04VF+d3CT zB2|esM>fuBJNBKEzhmPI?p?Cr`tc?CWh17np5C}TU6h%;;-37QTW+o`DJXQb(vcH8 zTjp-L^$qH$rTt&<3g2d^!XVF6LmMn9C)@)o1t_e7&>9v{HRh2bCUjRc4Bei9VHSg2 zuG?in)-NkJs5i`)A3&bn_hqkynbV6%xH~GJg2pLO zIEAg5Oj(rdS3ZgmaI01*Z3$fyZpQzn{%_kW*R0vIcdwI44|!>eIbp$8e%D$ixA%Q- zZSV6pRYK4V@jZOmS=u*+H64)Ru#JkyohO|LQQI%NBkgca#$lz36A3aW62SU_1v5z_ zBW3wf3Mb+sR*8xzC2Et?2EL52lPnMwQHp@4MSKzslNE43hk8auz=```5|!6~OMjFd zjk4%;2+RNvpwJ|KG0q=|zZl;c?~i-qfL`et0ezAdW>P(+o>jqf70cZMU(F31In)&q zN)}bkf}W~~O~C9!A6KWxu7LzFTzvNRAOs@_*&Ug+V&o9Z5pk~>(hZ#hz@jvN1R~yG zLedp0fh=dNN>r@Q((H1pcPUg35bdZ~2^vjhPebQ>x4+zE2D$>){WE8-8`t&2uF3Z` zjate#^zQlIw;N~9TK_b!11!iSRFUUAYDZ%ia_izzpCW0BpZTwlWlO2~`KmHkb7pCJ zmgpYkV^XnIr;&fxtvVH9W{pAzP)slE!7UuJxWy}e>#9SB)<|g_aPPdU0?CmgIN;tH zcV&7wa+z^3g2SY=TCUYeqqNCVqc#T`F3rkq>O!`Vw<&GvBNE7@m(qm#eOB7=9DEIk-0XV>_4>RBs z<9Z@m zfmvd&3n&X2(=6etN$#@Zz=eOIzKbNgUJy6q`JbI5Zag|`9YWYFd(#r2;$UJOz(P1q z!Mho7pI~YVX0JocUI!4}Px{*b>0BAORDU|qcfYs1cg;PEXFtTB&SJ*IW$Z@lu)T!? z*`YSgOojK!lAXj6<~l88Br&pr^G$-1R+5f*0*ocNF+72xl}eT??rWBZLCR2uwGCK9 z55i#~e+D9c*vG{Jk|WTmtfR9q>YO-XzJJ0zP4c*OA^yBLJ328MClcs^VOHTCrtzuP zJZl~F05K$r7>6Va#h{-p0MEMUszpO<%mU=$pl@GvyNgO|y#Ao-_!DZ(_F=;oX4-QNAfoZBBM$t^OIa{HG9tWVnXl588*RAU+%3>eOzznm%#2G=`JpB);j&hl@|6 z_eI6~EKu;Zq&G<_wju>UtQds)Pw%tqq)J@T!FM?X^*7_1odXKeH(j`++T^#_!wF*L7(7un*v1UN~p{g5Te}>6a(?!pmoP=idK0 ziE+rlIP_oeG$#Ak+&GkHuz(-R2w0TY(IO2oBR8s$SWVrZdViwZu$cksDlLJyGh%gf zjURY_pg^F=IO;pGY+XR9vTyY^%guq?LL1p8ZBw9| z?+?Bk_(kZS%`=|&)L-krH$TzrfzAcqzik=$IwltQ9`OFDWC-3rB;oypA70D*U+9NG zt6={7vFZfwzk%F5Q2z}>H?Q#iP0bI5I?X&L9aFhkc7^$W3~NzkSCjw!KwLon*P3i* zPtjKfi#6j;zq--|bvx1R`e*o82`RGc+)&c9k{36@mQ$=w5vaEIWCsh373L?-2Vg1x_DQ=9u*ab82gr1(#?kvRMBTpKCW!UnbmD~K7kKj3#< z8@vKHn9Q}6SXCzeVLbl?mPP1B1nFYfNbE7NCoG-BeFb&t@El`@203vT6_QL>*O+vG zESw$D^X*h16-?=)gQN9Pq0LqxZKs{dk!HKuY0hi2+nlz%<^G5C<<_I&NAsT0pS9N7 zYn^Apo3z&gKQ#|o2g4V%KZgIJ_nMc&{RKk?T2ut|?}XR5-dF=7MC{7X7rzhwH0x`j zp=cOE6TT8NhgjHg%4{u+JCJm?f@J{>VX)>9H5&YXoWE3H7VxTqBLy7$$~NpZU<)_A zpU-v!4Yq6ZJM1IK`QOhb?K4=hbVCA;ady^P5Cp0YHU&L1g8d?^WYV50a0~GnU5R8T z93za^OPX|OL?lULWci&DbRnOoL8<{9gxCE7O$<-pr8T*_W8YeNYTuuW1{uI(}1{+=HsLY^&{4B zEj&(c3WGTWLX^kC<0|VXN3C*Spzpr7KFkysWj^leYoAzJ-8rYG@1E^ux-@aGQRq$g zZhmle=R^G7%kS=()I5tKlr((LX|$^l+u`aE06wm8n~lgOZ2StUEYTV^0kc+k)VJKJ zC=BCiwaNt3TARXdLmW$~kVo%v#o8E9z88@+5OPEFL#sj;Lq5T22Mh?d=rT!L z$r$8Uo3M)n_KK5)#E=v-%wt=9DY(h>F^`+5r^-PcQ|~D zyv5<`<@F9W7U7R!%elR=NnoH5~gY~EIn35y$z*MuHq@))Ha+ga3mJnNB}7|ZY2Cgvbn#Vlky zB1k7m29%@*Qepy=K+HgJOA`?M17oBZU0Tx7(ZO&P7i^T0S3*R!T2OJ3!ZBE8;Wv{N z^D1j=JnZiWO5UIS`o~Y!&lq-Nbl$ClC0MG_^C_S1J1#8sdw069)J5fD7<)J)x#+BX z*5Rjwy#sJ2LEA1I+qO2gxv_2AdSW|IY;LR#Hnumm&5do_$)EQ-r~Y%QzOU*`O?CBj z-*?Z{%+yTxb>rGsMG~YXc6(OvD(P<-(IlSIAqXJex-VAb*(|hhw!J~VYu|c9pnoY zYaU(8xL)F{mSgS=T$SY*4jQ9@;(!m%_X5>2QdKNV2njnLGN947R(|{Zcwc9QCsF~I z3OWUe9W-XFVE4qey80q=OKtc$%ze59&{4W#ZvW!2A8+0z>#uugNPX^gKoQEMPNYd< zQV)_(bM3mIS?wJbaf&La+opnDz*_y1@t1exvuB->eNO1d9}VxOUcTEehNjbeacgr{VhA(V9o5bG#DNp==XL9EJ=H->J2Dq9#Gf4o9UCqVJ zO&!e41q9$+T%FC0?ch8?^?!}quQ8*DKfS^+&Wjt#U|c|;KtRxddCo$gK7yM?vO+8* zku+U$EaztNtkpg{c2=Hr5WkJ8s~@f(Ld!CqIlFl%Zn(%p=OaE}|*t z94R_NU_`(u@#&8^aoxzILRSEsSjnI#wb;|KWQCdTFE{ zS#nA3ZE`>oq(WbFJ&24JDx?+#ZN(@^1w@dxR)6fWOz#*0Mw6d0BmurSh7lr^6ePVP z+9()8kMw!gI2aWRuP(eEbI%;T;|>({CK`7nB}eRcIi~wPXn~F_D7uE-Oj)Ggq6=(x zh`J^Qb0R=_TLygn6hd~JJjw0{2rhhTG8tTj7(Q=3nnt8bDuS(bN23geMx>d15;6KH zFC<+0zvGD5S{Ve55)|VUtqQ*%m1s*zJLaGNayWORnOU?VT9E?;-+%hI!X&atEzGL@ zC`>4wA7O=xEFHqZ4HlCvC}cv{FpY^3Hc_2qU=4%u*>R~r@L+cr&?%^u6+?u6tm<|4 zsE?}Y7gPJgO@W@Wh^aX&rkRN^X;Xk0Ez*yvl>F;8UVl0$x8~`n*iRqJ0MBRd9CdDw zHRj|4H@id|QZ4}G30Vg9e|T}(nExB2GzTjy^Z(Cpz{SPI`u}*17kRvVe=Rm0t-moO z%cW+F=AzspCWo5UCqR6s)TJB``6izwHwqJHg9U~#pqj8l(*MRlh!$peUH^?$7FcDd zbuPr9GPwGb`?&aO^VVR4=~OnYbtDWE^a(fyxE5FB_CIN8_KYCW|_7U%@DvTn7%I#$28CpQkv1RPvOB4xzmi_01H0y3?-%ia?C|@V{>w9uJdz*Jcz# z3&fz$ctShs1W>4QyZt6ClL@GR7Xz(60ID8FVm>{Ka`B4&a}(zh^)_!w_WZzw4k1?7 z#B*O*#g74TCF-dV_8^vbP$^KD4(yZExY673tub>KBCS(v|3vWF#(l=2tHU=O zoYo>=>&eB=I-vYZbMEzZ1wIdkEhP!@Z*(=wh-Y0m>8balHj6w!s!c(a2iiY7=71Zs zWRIW&yE|TSH*I3{bAa)NnrPDHZ+Od{+dIP782PKEHL^`NB0KaYi6Pm`&ulVn(KA43 z=nS;&w!4;OyBXbi5v$xLpO`pBfPmtGxF`N*$t|fbLY~T0WaE(IL_RA}hNsODYHCo| zk*2yA`bPVHN7@%wu=fr?mNg->LeCk_VD49$hsc%^TYI#k{g`KFj_Yy9@$U1E5&-jMv>eK+8y%Eo3#6@yOkou#{c5X|SWf(Oe0-U>+?NgAb(4e#&O zHD=0<6g;r2s__}ankx{e=$0WQU2)Dwx%cnw^KJM{2gNG{s{ZO{>aE#sxu&eTvf~EF z-l21j>+0feG$q1H3g`}=FP$jiM%?CI59GTszP*DXDs+b1Dp0p+?DLxFx3>TX5U%wS znZ?)con!a}lc8>-iIXKN?jgQYb_H%tyuH|eqI^+(a&Ptfy<>c(^n|eHYilvAQy{=A z!c4<3!Pme$M4}HkJ4Hm%5}^l>`ctnIVOSR|kiD3VvRl256!oHd;!135Ihq<&IML}i zLih&}I|09qp0%7777p8#J6p`rWJ*Ai%MkTz9_{p~Zc_?R^s9lF{cibI2<#qHUxa|5 z=|If^^?!X?PArWu$bIHF;@454=ggM7C{KHu=P0iI3eD>QB-_2zR=s`zLGuak(m((y z?xxY7KBozzm2ux92xAyJ#9bK~N?^(YGW1Rb7{V{=Db{117u;bN{TZL_?*aSq5RXP^eBj$HuN7K|=IiS{!tQ9FaL6`> zuvdN3k5uWhB@!idE&?T;9(+0MciXJdMIQ?yM^bs?i#j|He3%F3e^g~C<>?t|vy~F^ z(#|GEiSkl15-)KqHRpzkb(h+P{O)&M|A8Qv*eJoVqI{;2Oh7I(e~r-MQMdZDeNsQm zq{ZjfS-tYa)wOiHRHHCw2&I%|p;RT77T@LM@E3^ z-?YPTyqW5xN*%q+hx0}!jk0C2(e7_G4b>QqdW{Nw6Sh7mlKmKSw`G2va5XiwT-|&XRb?5xu0M$?lRx}0wZgm6!Q>a z6`6{vJq~&^)U1VdVfC=KB83JizQuh)iXP!RR5NK`CCPq&{~%7QQg}E{OguaxV&p85 z(b+q}(rCz$&^Fy=v7uCVKfSt*`VTK=ebJ<_ZDxU{zN%5F3mjyiKM^^N8;f|6Bw~d% zas96oR~@o)ld!>j1V7MUpmDQ`4n>}#7&QI2kjHZTiq(giQJZwFr>^BZJl;_w92lzg zPUW+CztZ@&O}`0_qD2t@B4>`a7$|Ck{@t=)2Je_W3PL(9#kXjIe1mf>B7o8a&KK6Z z=eV50QQ22dtvH6dsCR4#XZZeNGy-udr@1>7Tty?^yJS>l`PBWVFYGTGU1}Mj;A_5q>3}^8uQ07SXTP4Rc?RwXE0`PstRn3gC!%;N z)$`r4=@20z1cJ8-gc*h5fg&@)+ob8zwQ)wAbfG1%&53|e#+nvi=*E-QXV!tJJ0pT7 z&K+5(vw1e%}Fs#48* z>j*byZ|uABs15l#I#REj;hvdC!*i0YF{`*H46`KHnxM~F>>hM0EK*9t)4^G0CGZOA zLzXkI2H`&+Ar_R*DE$e9^RKC^Mq&40moJz|*G27+W39=wscuRV1uI6DEIxVYe>Vpn z>i2ws)a>=w#;*O}U5E$47kedqW6p@|Uj=jw zOkou4l298?_evFSt_k~T3AwbNs#?W&A_)o?V(2~LeP@*m5I{l`2I@Kcs2A^%A6x76 z0fAW~n(|QRP)tp+yfeP4FfuS>qDquRgN|TqH@Xp=qM6`1yd&01VlIct)f!`o`U6=) zk9a8c0Tv_vg%o`7BQ@%p`+sl~L|GN=gHz8yzCYhyZC^Z!)A|z8Z&H_>NqJ*%Cy_4v zYs3(xJIy^G>qA(Ox{fGaiHDBI^{vQ5F^#L`CfZmja;dPLIErg~ScSRf3n>!%zn3ew z9ffr=;}3{8E4coKt2UHLdt_|MD$q^T|4}zP`GC-Ti8^oeK&JfDDd|XEL2YL%uDq%b z0SN)Vusm!|IH7Phd8)ti_OZzz0y{9Qnr^3&JRW`}$j8M=&sk~qFMPUP=3vKgq+fD> z=g;l6iPtlwSE~Y1Ez{=^F+4s>`-Bqp7 z#x^i)=~T=us-c$(`mmH@3QFDHV1_fObzW30#qJM!S<_@VXig)Kc=sqbQUq|4Per6^ z82ko2B{HSCY-z4-wOh3bf8bH)sL61b<5z9iVeb(MqQiV1RNYrZwtIJ_s%``?Kq=hq zv{qPNPThm6v9SzVmER^Y4nl?Bv*Gz>``*NJc**VQLs zWpj3=s%4Y$A-%9d!;Qx#C6QM2692r3w|z{R56pI>%I=4)zJ619g`T>7c*~LtL1wKf zx#bb!>E+*oOYVK6;Q-C!ek8v!0)5kD(pSV-J~#K|YNwL_>~*7yW>&6G$Djavd=}xR z@ao?ZJ|P+XG*}lj?uu?5e;mqD)17^Gb7-g_dP;iaJP=V`^Khkq57XDs*2q{Y_Z?SK ze_*i>$aFNU=Q@Ms!PU`=HS?DDdaWS}7fj)OKu2EY>JW}3?EzH*{l>aFiSwe`qk+|2 zeJY8~tm5_S92!Y{C(=R~ygVVYCR9iCJaSmPs7Z1ws%Sa#sdt#MpHY>j{W7doP|& zaCv0Sv%zPg_w}RX!@t!zXO-m?U;j$Ffmc%1{@Oq=8wjY%rDjUJ$(f#+VsvDynpGN8>{$-@ zLLXA+7btll$6x1NQBqGk`e23PBwrQlSNG1}8^)(^antM;RzspI*lXPHSl>JTb(iYL zbLdknUC-Z#-Lhx~6WDXgf}x57JH}al(#JSqVWrya)-7-aQy0q|YDu$ZkwbwY!%J$T zOc;}43$gN#;fyRq%1KEb3RLo8rDCvHh9`!^eo}g9UW7~7;AB|IQ_E9}S1{ze%Bpp_ z$S%BoUmIQoAhNvlSwfwg6p97(L?7RRbjeuovAv0~b*Rd2xmi_nZA#IW&&jQ-S$<7B z+_sTWZO3Mn0>@Kxow54&1BDQ2wiD(N#UX_{WeO&oi+l#IbYx$8%*I~Q>u?cfjO;ig zb;S5oZZ08q4i=P?^?G*QPc~~Wivr}5HkCOQ7Z+LQAArHewg~p)hCkBM;)8zfepx(O zQ(SSclCc~~U(j%9@TG<A6sGaR!t2mklkQ8q zcifiJbGhr~Zzs}a6|~++-TK%a6s+W&O6w8xPUe(xU{?GI&3ak1oqqET`Id=Ew5<<~ z);TF>f5${ih!083>c)?Z&@&F)j!-iy#czU0gGKjAF{b}u)lZ7}Wv8mILBV@U(ka!= z1|-AalC4hj{pT(w6{UE+)Az$Y6p5N&;q&e&mYX9^1T-gPRJt%S1#|Q>YHqukRV9ft zwbX$gs4^!8Gt*UIw)mt`V1BP!>#NKy+^8s$Z5Hp8pnDPVSdcWjuQB`ikhfy`sUR$i z>!95}CK!hK(sEPKmO2+!bW>AwCu5MF&(Frbo#*#rA`|05)5$Gq1v_!HmF#oeG3g{8 zvY1s)$_vK~NE#g;`k<%9RMa{j>1yq>+Mh0 z1A{DN@9fv{T{v4bjMTR@4zVXy8-JiQLm`D`Fe^i)BD-jueJJEI+tJP>EBva=er~gdbj!frD*ts7nIZ_Wp?JS<=NKUcn z+Gn8bqNa&{U^*^A>o8OF28JDpR1s=!ZjmxDPdY+;;`wcmZ}~D4#1F>=Y-Y^+?6ozL z1=Ku}o$Q*E>bGI{jlv_S@?@j<0bWLIU(Yo=gyymCB!lc*E%H&RN{gjHB_#E+sVX)S zx_aTQnr6&}Q}-)fqn628#NRXtG|-F~)rD|S6+Jw`nagIIZNUVJE=!&7$+opzfc z@uue=e@Cu)@4bGNZ$AfU5%qob_wknc_F)=KY5L2)pbCyM=^5Um%xFgO(QpNKhb}-k zDfqY4GichlMmYioU>hq&oki^mE2B#GbHaX~zu!EupBKC&*Hayw!Ns`p8# z7n5HQT%5{rg91|}C2Z#-TIVoMK8iWy=utADO8DtB-m<(PLnGmyAk&9tWmb_m;obnd zNx#S~@O1E=rWot=xX^&3H5S<@_#U(}7@!RrYt|{?O|ve+&m`^p_U{Xk>la6f6z)dr zd^`{m?%0-~$8wh_I7khh=^>>=a|=!XCX^<{-tOe7@bzfy;W2GqW>82dOU6)tVu8bO zbmR-{-md85f5I)<{~K<}%FO-$Kq~bUCT#|o5kju~;Rsv82iy6>g;rEX@&(y1z&$Ud znc3@=vqd+%>UEoyfXGBI_^|+{{=J^M1i$2cNsLS~=-y1uo8NSYBZt06b-|9*R1hpy2@*@YLmIW@P4K6W#eSzis%q}4%cLYG!K7yH>8j5p z>Hu(XR&_KsHUI7xbzy~LW&Y1YRr#*7kgzgy{iiMf)_uCtP`vi#@ND&I2S+AROMg#TzuIM};>E2^on!?Cjb*N{wVrr!dr|0VF< z{;kORzuG0go7p)2m!81)_J0gDDLHQ*1cNEV0ax7x=D0rOlQFM68{mCV+9M=@p6!rY z)T~-K`q8=us#;6KfDiw!Ck=JY=@=4%xJCV%x2_g@{^A$Om-2T>o+a~d@12*1#c_Ne z>u|S*ot&ZPSJRgV>zAi`+HkvuY8?r{DJ4b}mqw}DR~X|?C@E(_l>T^LS4;Wbk>K({ z_m|$%!L$cOs6=Q;#afJcr#7;_@DnkJB$cvu)mw4nklP~60&@A~tD9|8m1ZOr^*>>4 zv0tcb2WQS&4w7d!Od^IgE%Gm~4CIS5kFVjk1?635xxZ?@H2m+|%wS^F)ipc1)(C%A zu9e$3qtqC3A??K<>>l^t^m{0bEh;e*-Ml^@yF2+fdpG~o-^i_upHhrcH)JfISMLO* z+IcK2Z$7#9H&m^9t1?2>;3>+$A$K_X`gZs|-fABRK*2yG#~8lyipyr9Gu}l z2Wv$jmlL62_qn)*2UYl5HJ|;yz1De88k=pn|C%oAcy4d>RXT_pZ(OZu|GiXt3%Z9t ztalW8;(J{F(ER3BMOB%xBp*usR9)IK3-VsIVh`bVe8z!A&F1;hmUV){vV5?cBZ>TR za9nqCbAy}d8?kMz%WsgE$KYWWzf*}|M`tc&^F9oojBk@YYG*H^L0{g68YSN}=&3MP ztk*bv<@#aa$?Se{Bk)`WTu*&aO3Sk20s`O~Oaa#f%(fs^AnVnV=L~8f0gLu;9F(5z zFm8%{ch;UJjtGocYuwMl$Rgw63+#B&K)iQ^b@NggYSfqqFL#xH=#&>;n7tOkf^c>T zC-)Y1ma6!B(c)ql+HFV|D+$psP+L*l7a0#;L?hl~`C=q+W z_p+tXtdLqIFJ5tM%C+Y>rLzebLtQn(QHgVqSQ%KO2QvR17|PZ$-T&Ks8#NI>L3DQm zoxf50D5OWaSK-GHf+}Sb-V*~hqc?qq@-yfxP06}f6}a{_z<9j>Vxn@`UEi&jp=8F} zTV+WE%=$6JE%)2st%`oNs`>--TMUSw1L8Dl7;h*{HJAQt(xoS@6e1%A& ztjdJ55c70c|3prA9h1GN)}rQ6ajwv9lR6xU!Gkea32nlTeIUC^C*4(RD(cn=G>%d6 z?378=nvXHb9=JuYv{56Q#MT(ubAL@#&QuZ^Il#KiNb3itAQnsKYM`Fa1P2=7;Du`+ z11o=E$Vgd$4F!sTlSzkx259Jq0ga7NQ2Kk=`a!&znWuXVNoS;3s4S3Id$gY_5xw!-k2<_rW+J|Nf_wbS44H@~mr2 zX<88PsroN!1{ubg5i!e{I#ch$}k1MnY5N8ZjuGH zJu~e58<#~~>Lk1_pEL$YCLJ^T8=5 z?kdPt4{rVn53 z!SwVAQRCKz|1^?6D{H%I%8kkdgkNL^Ji%+ZFs}Xz^djNnXXiim8pRj@*FGUddk7gg z2mVqE665a^l2SW?Svj#b@;i*DK)0$-73%);V0McOPS~KU+7OqnD>c^7R9zwa*MtFI ztIp_d`6l{iw1Ua>#M=$jFTBpq*=Z5H>+eR=16M45agA;<#L1)B@xVfZ?22Gi51`h+ zf&q(|#=dMNvMd8Pufr4fRA8Y#xmn4#zOrUIHC7~dz!|ID0ehS-NeyUUE`QDkn(t!? zA0mpd2(C=N9MC}2LjOu8I>;z0c^vg8k!Cd4FtomacGJeDC2S*3D}0fdRM)3B;yhCN zAKTKETf%mT$|a!$H}xd5&5Rt)I-0z~S|XkrFlRFIM~`m58~NDoueNgW+BmW$MbTxg zIN!uioQOi0=>1Iz8z?w60yHmkWB$MEW}>RadtE-wVn+j+`_$tJ9YD39O|(Y6h->)#P|OcqehuK1&ZZBEOYhVFQ4j? z#bl|9(AwE4;7 z0_KG}!xeO&WbDmImQxr|4?iC4R!`XQQgUVoQS3|tJ=3_yqn7ryTVt@4gIN10%JHs! zYpb96Y%XR;I#IM_rD>DxY2L!?_3yP^pp9x-C;v~44UnO-xDnVyw=)Lu>~{_nW#1~A z<^1(ry{yIsR)t{q&UuU?!bBQGi~P<@pYtl@`%8vTks;&Xqg-L1$YH54AE;IoOdQ{n z1z($!zp$7rhF((z%>*K2+6&B1uOtbE^bvP&L7N`Q@@LW$mugH~%am}ly}9YX_)Yok z0p>SG6_m5K91!7N(Lu#Ret1HI&UpD5Ygh$!q4et#)IJMR+!-}m9BZqm=|U27yNA|h z)Jhd1(x<)o^gaYD70mbJLQC>EiQFdD-~1;E36rAB+Yx8VCi zMKVr_j1zi!vtr;tS@gE|nf83Rt;l>C)ZD}gXzcuyh~s{y^yXtHhRIp+2JXRz(+U*q zig6SdILBBcUL5gL+^maYZHLCh&(nUS-W(1g-QLFFiM~5iPH^xWGqRhiZ;;-;i1YmnvF| zhpEA3*$l`pFs^ES-s@k}bqM*1hrp+Ad&~?fYIzT>Yn{Af#a}f#X^^9JGkrX;(lFAz zOt%P)vI&RT#pH2k&`Pcltj_T%{ynV%1_x&v{fFudJRR55%iB6lQz^b z_$!AM{xC%a5CW9lnDwe{=5lbYA~o=_Zx0OqqnH1BLz&k&kAru zUs)XMy}|q$4HvNTKkcw*ER}EU!mWz9m%wefI9t3lw^SyC2VZAq_w9dxnk!Q0iYAfR zjfGL!Mk=bAA8`ATJxVzapk>J^FX8^k2(}bxfRpABH64z03gI&2Hx1_h!J0ijCJp6o z6x+(~m99kQkT^lzq?IRO(dW3HhX>e7;tD-F;{56p$wV^6|>|1KnHvx zL1`?Fqk(1*fR!v}t0$zbnmV(qo58As7`rqPFib6y!u(-*U6gaV*5Fx{kg76iCaXe@gaACiqmA( zPH)kgkW@sI2UN!j>v~MO%XCBXMqNm%9;>-fQx8#HL3c_jbw7STgm)NM<>zZdwd&j! z>4>*v{0<^Jos>hpu<%J&yojuXOh?egmu{xBg`zQuFwr3OSJ$vwR)w3tOTNa)3q?w- z#A3AUG}Z1buDez0jgZ<)-e9SS=iW`0GJS9&0Ci1svV(SS=oxORdKh?F=iKfvzSC6w zLmkX6qzaOMs;4>NLC@AG%Q&|8Y->4#7i@K0NsG_wRtyAFyV3xL(u$qzUzru$rNr?l zjd!AL6=prw%aqm#bk5KRA>^$j1#Sq5+eV0|>4Yn58D#70e`aZRdS1ETJYUY9?M>d) zwGcHtykoc1ODqq^lS#K;PkH&Rxsm&sdl1u*_mAuXKR$vmi7ehCCKPuVR2*g0f@SM2}=zreQUNp3V?vAI5 znT79pf5-%?_Q7B$NxF)F_o)rhf`dd`Q|GB$l4^MHx$(tCx-qqO^+(ptTV`bkhJuwQ zGAZ>`lIT;-Vic8IkarqX##QG9bUbL?jPfNES`hzxWognJMZqQB4>=NI+#rw3Y8bvs z#2Em7=MD#j4E*$)Lw?{r@YQbm_ex52Ted$_=B*lk1_bZQX%AQbAPB5{3tZV?H0a^O zYvcD?$=%8=N}Bibb87c2y?dZ~DSH+4U{p?veSFa7zoHkc|2PE`c*~;VYBq$evBbn* z1a7oGi-F0mxfK(M@OWx&P6!z$s{ApjJMQkh@fH`dQEmG{szXqsA`2VVH={bCw$V)N zd%g4f56_|nl>g@CDRR$+%!1r=&J-gr_j+|C{krzTg}R2Sd!lEi(cRC|y<&9X`vfH{ zrfDZQ%I?-`SwF;|Pib!EV9)-MJbih?d2ws4*@J{ZiXg9#m(~F;?-x&dFFuAn=TVK1 z1#z+poUIn?50k&ooVthfa|Q0#pUqo5@vo=*x!#R$aRZig>;LUAjWQh~__b(1UHBPw zPqKz_lL26AK{i>3&#%fij8`VuqDxlq_pGygemaQohv@K&+*bXZqpD!;Z!`x)!3kGSZ=JD7XXBJqVw4+y=4WYKx?OCXm~WhLQDDb}f#|(689T5Z zoAe=bJVU|P3t53-M{gp8aA5rtZntsAzH-R?!z&X3@wu)SCJdFaW9met9aWZjhM&Zu z4>Y!SrqbLQE$u|9H?vXMEsPExu93D|B-jJ{ ziWc&7_5-s|fke>bL(556CX8E<1(9U5HXVG5pYNg3y%HMr&r$9h<_6PcDhBEJVy8f! znMha{X5OipD_oQ9dHTeuVv4{FPns->slfgBDe1=8f+c&{ENPaQKa~%_Su-TMt0a0c z0z#$y^=OwTtUKXQx#_z-v(|(6=oOS1ceK#`4zTr4vYukG5NmyMIs8IDnu6)c%AZe`2F<(c|zi#^|{e3 z(SDFhiE#N2P$-Eqnh6Q8{tRLKju@J7K4m%oS=ccyP#t7ts8GY*XZX(mA=BjfI*Ibv zMxi|S_lOX5KO-ql5a&Xfve=JClfDZA;HrcGf}-^dEezhHT*vtRJMZPsjW}bUf}{_G z()GV(B;!vHof66&G57e-P zK?<8ien2eCKu=YEnvim#PE_&-0*UX*Qch#ncH;yY)o`#k(MvYW8o)yCNuT5 z3pXm@sAV(LM(;^3Hyo8vn^VZd7Br#cvCcJ|Kq8~S;{_lE$-^S;dr8^0tI9VsA1ODV z6kF@&s->H*oeDkF)qeixr_!4cd9%)e1e+}{r&J-w`RL8DB93=>p8&k#y3-;m7Y4O@ zO-f7dt<1AJx03SCSk{O1LVbPZmH|6mDL6~-HjSKn=a-H6!!0*IxSq7OI3#(6yHKf? zb6N)`9PYsrKp%SOoXyz<|8^3at<4Q+*w4% zYg?46aA>-j;N3T!FOE?LFac!&M|VWoBZwRu#*~pXWX%+t%vC;C?g0vzsL{s-6CTAb916xzF82-sMi9|EcepxE{-9V=^;0 zI~d)D2=vD<^vm8J!-k|vSY2xDt*r6WPiX)5K9;cFso&PazWVso`LI6ufl@EF%}F{P zjF(FXSu_oM9q!w5hWLM*B7M4+epncsN~B;=VJYJ`Hk_cIBCR0%t^4oBy-xV2o(#|j zj-28T_?o7$a4?;wz2HmAdJx{|yZZa4E*VMNT|~z_LB+ivAO5ZludD!hW)8zJ+I9VH z$1z}N_*ggBKw%^$|qB4}}3_s0n%e&-6KlwfW!8QtWf z@BEhG$-~%>no-qFdvTJ=)fEA*Wz%WX^4)S;4)c%se_WbTUi2XGI&)mm)AWNJDWfya5aCP!?eAo5jR=s3|rCq z?|dU@SG$fs*f5|2t7?cc?nc*^{FAOm4r0gS^F1f0VDr#*S&=17~b%_(-^-AC~#~QNpx2)Z*;MbZCLin9@xsFZ`K)M5b6`+)kJ$ z(5vAJ8m0z$41x4H*f-56a|ro^Fff{WbGwLzjU~mhDH+oj8DYLjVJL7_(yv@rFs7Uq zL3sH_*-QQVHnwQ6Nwja)F&y&2WQ(`d!C%@Ugk`ZDF#n*SX~EeQJ-|{#to_)>r@Y+J z&JF%HndwK@uCCxWFsF~WB^R!g!z<65qG|j(D`Zwlu8NG} zM)g<&`zl?{Li4C*{BkR{RnZ2*NTJ2!#j-}f$`TgD6)e>cwk4JDaG~np5%vzv63KFJ z9_ZNVO;S4lpylFf>!~D-KpYjLax|`mogfp>ot{7nPhvWe9GJiH&@y55>G1ZhXf=h_ zd2tedrhy;L-e?%M`&c5{k^W~X9Mq<1Fi74g65n#@6*GCoLV#d>=W?B@#2GixD0E=} zXwLB;1^q{$$v5XXiZZ%lN1Iu!ig~Q@NQBeap>O&@#Lq-DbJFDBoOT|f2y{K)XIp$L z5$fpi(7VS?mq>$`{Cb!5{;DDd2VHV_|CDXFAF3zaFiPBXqR5VE-vs!}?+VMOB8T^PP4JByY1;gfNT1>^4ogrH;cA91hy}H0qXw}Yvi}m%JNiF*a z?$np{aO9ZhZQ8nwUfCs*_@{Lc@05x@g# zet=SaO@$c(?`w<3mj*Nwf2#UP=nvjccNlui(za-Mz~}W{I$*@FE|2ScmBpAjS zVtQ;KH#DHu1eD%5fe8*`GV_;h9fv)Ud2G~;%$pi zyf-pjw=l@whtgM_NV|^{nXoM3;Jtw8uR?sHkf&st)wNf8W|u+B%;tao z6c(*`NXWo<&hQtEzp}upPKuFW#<-tJQ!c+PU$Q-I*3<4&^(qn1hg;hrDk51i2=#&r z&j!Q(hHh?#TT|AHQG4$_B~`A?E_F_x(LWh*(Jpr3IN+4+HoG{>1&}ai`^T2tdS9&ni8#ns z^j1!)FQE2#Ud(;yfmpCExF0WWPDas$&sGoYU6!!Tit6*ro$M!Y;qeU&v>k|1@D}&H zoK$unv7jlof^mBe38OXQJGKeu!vio44EYG&WE!3}vFR~?Gk%-LB-*6m&9CwP7xIS8 zL+Lq>`1pnCAoR7O{h?_3&Q}WZfq#087P8|ecyVFVOkJ`SP?j zi$)HZ9{9wN67g0O_sOVqY~~9KOu!!!evr{$=2Mf;i0`UYar$x9hDJ@&3L8LrC}F)f~wHSd{4!@70*#af0ATePR2iJoO?|m zx?#xd7?J=z3!je>n6h-M%5`{YJOif4pkZ-QND-N^t|uDUIm-F*)|*B?r7HR?!W1*@ z_HgN$#QM25skD~h5u3MO=$6Vw-1o|*+pk9bb?lMne3wJ`!mXdq4`ctMap^`aj-K76 z$r+z}s*tfxFHVO=xW?qU@DfL53T)5)NmF&8c>vyK&wFS{DGD1(0T*DWPL=HYLLE)0( zzqr#(4e}S8Nf(cf%nPf)O$E7W@baJHqseewD^#CnwXh|)PDa$&Ee)FvZm#5qeXaD< zX9EJy-_+7$*lN+AA-O78GYpYk`eH##xkdIbqnsP&WQrxjet1RDf-0a=gzr=13 zi382ibH?XyPwbXkciv5~ovtwvO0Enxu!psVOtu{3*AVvn**oFtPP>0bspuH@M0b0- z{?MAVLUsq7GCqoOv4wQOu3h8CTA)&zwu<)(&)*mSvW?0cIe8^!{SChi?&O@AWor&PBR1 zG_K3pqbK|T>E8*{-+o|d%Z5=+Q_s#OH@^4VCYK8gfsr!|0Vyv8^c%OB<1ejgL{@@O zmxwZfeVO-Q4CfQ3IiRR2x@&9+CHB61ij%*Zg+BId!tma{;UbZQSFj}>ykeN{qtwB!)5!S;a3W)M6)3a3#` z&j6zWl=MV?Hf70cG#Niy=#)Q4^yc@_xR8#z9 zLt<-AWEb&1g-N*~jzY$C=T+EUv4nlvC5It>6Rie9p^EPts?~ED@tN8v@yj-};G*j~fOCc& zRne-kYO31&J1?CTa`AkQykAIeh*XPJn=sG5;?`ZHw;y+CiWE0rw0s+Y?|GpgSIsIr zEFKfeLGTT}$PxekKlw@h$A!qj#0Ku$HR!*`X#elvR}wZ37UuuU z4QO>xZ#0hJFKXu--7R$HZWl-pQWyhxS8P?*PO!`dKQ{c(#9;T8mbArE(u%qbVo2&g zy&$uJ=uoqw)Ge$Qt>?Ye-L#~vGP{>YzZW}}{Kdw1X%+0ldYb$R zj6b_%gIw|LbzsYKcV()9cIgRN&>eL%d*)vJjp!FQM@-}4(^HItjV2qn2X3%EF59k^ zUN5)rHStTu&nGmJ)M7QEmNZ2qp}*xt@U}%15cnVAXAsmW!$7U&L**7d)$^nLA~XDjY?tj^nI!s36b9A&Y)>DivhTymiQc zE=&2nQtNd!G@ieo&{z-<3w*qdZ>4qnd*OS!a0;1%)sSraUn51?s$Bv-EZ0G=;X;X# z43O`upkFulu`qigkV+t@Lw(4VqHcH;&=Ty{nSjDhldJr&=P`UFp!wIoA^v%q(qZ~{ zQ=)?mtHP4wr$$OHQiQsw2o?54t-7_k(dc7(mQ!N4kmf4qzzt%EF&z^ZLb&b3NMKxoZpo>) z3YKP;O1U!RDhT9w=|@wSAo222uB4@@a4$_%+OL~JxmV&CuC!6%2j=)KVusYQDwq^MVkn^5cu}TJ}!L zFrqiPq&tLoJ$A~b%^x6us)|C+XcXZT9JX2lAL@%3hJF7ub0(z-)lHeP7I|JMpmw9M zHt%&b8_tg$+3Q#Bd_Ody+F{-0bMTb&5^@N=rvuIroVbuo3BefJyky*Bz}c9_9CCI8 zUK?}yk8FV(eyDt1E_@Z(+yvlzWz1nQ#Wi`@V9z#^@K3k#b@0LAeExI15W(MUooDwM zWGmcSI5lSS1jMtZ6`Qdsf`fS$imVYlQsk$iEn|A;CpX!HaiD$x!%2~oNJiib@hT8k zx4*i0Y}1u2wy>NHG~{oqkL{k*l^e+ZO5pR?9+Dd~Y_tAfi9Mw%{5~WF(o#TVprgLb z`0JR|y#G95?j&ix)As>qwYmZW0gw_4r1o$&fZ`J*_L9y!1nda;WuhbZevqd6+z|13 zeOo8>exPli(RC#pcgc-gtC%-?oU-Z)OG4EN>lfYMoKI+$F+juSYp6~*9h8Hp0M;1?az{aKnx2#CBg;c%SU-MR8T8@q3iThuWlWC zN=uG%!4543j5q9FoktGO{D z++}{v9Zv}>S<)_c86EjQ1~0r}z5=5~nGaDkhJP=V=ppDg34wBIzd#2()Ej-DfC_*t zB5kB_j?i(O=kr*=;wtw_$gJ?XcZ$oHr%8W^#iezT7KF`?Do@u06o?Yb}Uu8dE z=~Us=-Ubwar?zzzDJt*+3=22`*XxkqL~{d)VbJb|b8vZlMuM<0`?C^00q_ z(m3n?4Wg3Di?|6Ngq{Y)`zDm^4Fs&tEZh~=fs|dZ|$f+=JMIi9;W_MR7AU7~P2`Ch#+drc80OM%Ljv26h z7YmUvev%B8DCP1W*Q;ta3%nw9Yaisb!DUI~09BTrx%R3|XYSd5Y%(9tdHedpyMtA* za_+tWhhQ?W$*%-W|Ly7&MD*(z2}L@;h74r}T);bbg4OzLsbxvGXJi>m62e7uUTmjz z|8ilKQayR$*$hlRN`Qj{+)WY(JcQfa7KDvjn-@_mgqnGmR)M@Ah1zSO5{*(+-OhUV zg)H9q@(nW^&d%)04yFgWUZ%yDyM%h6V;GwInkh-4bVfd8>JH^THAKbw%r0dvQ10PT zHS=qfAMvfJO`3) z=vNa;#)N5R-H|3pY;G&0RB0s#z{k?fD+n%b7T6?w3KMVc9Xtt(_=befepYoohs?3T ziOjgvDZ2xv@>cBXyOsxUm(4Ms33K-h-D$>f(e2syxEAt+;jil6p(LCZu0N3h&RTbZ zsZ$TSUUV!`zhD%jG;|BFP7_thisLv;Tany%!aNW?mgLQWjl6m4=IsrqOe>YqfmM4H zZH%_)c_-j@{go(6!!sjG|irPv~_&Z_50ML~^RRl0-rB2Dzwo8+yNx96QD;TyicT=tjh$CMJxih3$rxU;V} z7HmzLRVZNG68dj=(8S2UfeP^ne9>Fd)3e5_T-fol?bxs~vDaLPsXRz7UrA3zaT@Ix ztwkf&pf}NS77#aOZc;pvmWkcLuZu*4nM^Tf(;opWK^SAB$$wXr*W=A=JhItNqK4NT zZE*@?NrAsBNA3+dJ)VJo%y|OvRj&+tI7usown~iXD=DO2l0)#7dboJ+quVY5oT}>r zT1}I5W(pdS?IdDy+?F0YtBm^>B3j}Nqio4C^@vDrIK(6siTth63Z#0uWkowl`{9!XabL3GFd_LNan z;yh)xQ2qD(inQyf5i0}b(Yn&=geZFb5mnQhJ}@%4xuW6$QS$75?DJ>_t4wys_7^NlvQHOh*KG zJCe!vW{i{&d78}qfd`hbe*G`-$NWD%9{*?fV_;$VPxzbG;)-SJguQ;GDv^ewLV5;6 zqXi-cT-ZLk3_!Vj=9IB@SUkE7T}oV-T07jnnl`Mj<5`JB@o*O(|A%y%#6RW3g9kb& zgtT^ibiLGqqxz}8dun7516ZwJT^N-h?yEUpR_~h+iw~jrlefP`Uk4&jiZpz-kw8RI zN|WP~`Pn)?+P^=4ivK1r=oBm4y;0utNuCeB7gZ%avG4#>WBsvOz_B_yY%74e) z>&@S8J68LsQhA4q2)OU=#6g77`U~DqO_N291Uq?Qi21WNBR^|LJ+ykY@hJGpn~TN` z|6B$Cw^PJ-c*YppeFf*&OzN37MZnRzZPCn+7S;WEp?enna_);B

  • >iAs8_HbLLmWOjj3_E>Lvh|iojrdhYdYoLBT)VQHC8pYvthtEgOW=Y3L~&^ z$<8thRze^--wgjS6SQNrOzzfXF=VDi%hPWN;NJ5(5>Ri>0*#hMg%rqa7}i~`H>0qt z#6q?rsi}CtVmJDuE7r3cV$j;9SuYE+K3Fqow5r5no`s z`2zz+m!-K)U7Ji?hc~XFr&Q}Tx@1ZP+bW`si%}8gE!|Y97+PXiN-9C#>J$oFFJ>Cv z$fju4k0(sns5M^GY9>Vro(hiZ{c7)gedby%_!mO@DgOxvdMAu5@8DO9&i87}wS zrTg;2{k&qnU&&&HGP~w3b#aL@T{uUMMVh)$?`v-^fla*o-lSa=q`HGU=jf>6C!l=n zecy%y7$9eJQ`d0Xb7D7eraO`+mLLuu3%SxYbl&}GRH6GMjni^OuJd|9>!OGI*g~-@ zqFD-5-D+0rbqG#+lh5UBL2RFveE-*-oexDPK0OUh=Ql6UtDMiopG;_@D$}5)x7X&U zhs60TV{6C6=a8Yi&j=zYLbob>RF%hD9#u@$x?!z*-nX$3^}5;8 z)g{&e4?yyuw|q{w4sq;ZbveP`2v4<@;Tba?q^XrM5T%OE1k&79IK{nj70(ca2HR9C z7=yiLnO9gx3pG6U)AP^a-&Ppp$;Bqbx@I27XoMKn=917DgQ#zqjKJv39-lET2V}Ty zV;zVH1eJJ$sYrphKBcdq1{(Yx)G8nuJO^b2X%|9W z1_;vfU{9yejv(E`151;-hXuK%Ylc*PI#z2(O&>PF_V`v`<_)QeA$JI?b0nkApCvdW zhnd`n9ggp9&HdVmEZSmor( zZ*j#6z3IcZa(H_Kh~-qZm{EBJxSN(G%_GBfW(6e=R+!CSL~^`#+amH=A-vyc&SH9t zLtS>e>yTyIDn*~%%R?_xtw$AF%LQ}wLOkGjiWCm-77oFNM zXsgkj>QEulRnt6-DEcJ_JTR{CZpQIDElqNf$Q)ErQW=8XhK97SF0-JAL2db zo6;h#it=`(V(IP4)&}G)dIRQ$i;Ep=5&z3geD8${&prhy2U0kqF5IyXSTn^T zvas!yex4}0yK%XGkg39cVAG5*Xf>0>pB@{XQXvoe(ih~gK9}6{t;Q-EO7Y!9NEj_W zKr`tFt?){C+If6EcfB*=X zKsaOa5d%;2oI0zW984y}r$Fh0Kvh~1nEOUk zAI3e9JPe|A%t@9GC4O^Li0`Sy6Y8b%CfhDuS4UWMUc6IM;72=>!V8pWps{X7+H|GL zm*SpJQKd?ok_?0CW?C%=kwV2PPI*J+P^qX3`b{;UC5XcIic%|dc_=ICs#Qtpa78@eG*W$_hAo{NknwEX| zjdPKp%>Kb^L?jdHpm4&F9)bIHqo2nWq*5ufnM}VSWhc{w=!&L-x&PKaJKD9fpsl!BKCDMLg+@099VaHZPaCJA5+V{9@k=JU-RyH;! z{AVR~ePZ;a;a|V?Rae7hCO~z=9Eby!uE=n=YuQW~Qa~jbi1F-9h+a*Gs5#c#JNY$- z2!{(}OEj+xx4l6wBj))rBRVe{QtG`$9#l-Goz?mahbL=e0WY0@3mIvbX#z?1r}OXJ z)@JR^&HKI}Rbj&>bSd6`81`qISo7aD-`srH8IUHe9by-qF?%#MYo?FSmUOwShy>A7 zVy|bnD;BO3*MY)dm@A~*nfOSbE`GLh3v`w4r-vLnuw*T>L<29v&shizmGzEEp5?S# z9FO}X2i}x3KK4Bgq%L@g+boDPkCjr}JO9>!P(NE!n~pE`kM$9FgbkO7{R!dD=~TCn z-8Uj!zOLm`SX}OzN%L~EcUQW{E%rU=G~=?_o z`U4=Qel1YHS03eh-{~|>f=d1inXvqa8SDR#EXB;i_P>ycHdi7}JM7Fi6=zc5KFhB0 z@(NhZL;J+~`h+%|Yg1>cdcV#=uN?rfcwOc;Q|E$(PDQ-unztW;A3S`_KWVDF>Q0Pq zo|?fp`QhRC@*#D0QjRZ_q#P$ei?>%WHuByw`tJB$5B~B(cV(IEEp0SXcNH}Q$h*1r zjv@B<=gSQPf7m@!Wel!_Vi5KTntm$XC7LRRV%GugOU>8cZT1f4`bP6380PR!&%CwX z$33gYiKM=#NbfSwZ%q_H*7CAQylFKSJu#dS>w9%}(k`-rAk26dUAExqgooK z`j~H$FI5k!cPqhw2br=ruTW|q_KVT5ONuW=Ey2~Mp_(aQ?}U|y!1i=q5aw7- zqI-1aCaoYfJ-4IrUZDj1R1~WluMx?tt@XOL_r(>Vpfy=#8XXjIZwI>6H#L7D)# zD%^2FwF)B4yhz|#Re6r+_PwyRs<(A%h?luo0yIe*n-|Tk{I7lN$+1|ZTAgHOjr=^l zl0Bh3shOCn%(WRBWjJ_X;dOE=hsFvBY7-Cog>rC5T%Va*PrY%&7}~ioZ$r4Yir|-D z@9#a^{qd__zdKg4lB7P5KzsJGeMzMf9Ne>&)wpW9CI2cYsk#qOcKkF$+JpHay@5@- z^xKL7*`*abF#9ko;FW+zud>GXw~0r$6;U;KKW$GjxVsQ}!751wj+%^E8)YUAZTT|P zsh-^Lhx`3~J`N#I9*W0;gpw9N;d|VL=jXbPs%P}(I`9-Kvji}oek4U=O3K|3yqeGR z0L>a%sH7Bx`C(OHDN35N(1jkpy`v|nVQ`YNKMeDrCVp6weAOt)P^h8&2ruDyiux+~ zVD39=tmEoN>9n*na(H#HSbjTAq^RwBZA~lk2r;KvwAb^`{egKcAg16|gSRXbzTjq2 zKr1#GQ2I~5Y>)?~E9UNe8@Cg2l@f2yZoGI%Nbhv~9qG@T4*UvU@{6rmf%!x_lY*x> z&UC(}+0Epkz>G{qgSKaLidn*YLrrx^Z#&3RGY6Upfszj280F@MW^KejJ?)T2jQGCI?(U0yb?Wv(LB*_;kVA z|NMN=e_U-gZ6w&se?sUh^^imUTquvRvUne~>`R9~IT;#%HVCkF3+lq`c92F5?j5An z5*`pTCTYBrQ-&;#3qL3XJ+rZ|lyRDY_ud*J?(ZTl#-x^L4QBc!?9qjhY+NNs6E7A1 z6=~jf;d*D>R8U!0GthXSlp-3z{k$x+IA)-8qyc)~pnAHuk_y`_`ryGAm znT<$fjOH6HQo*pBp%(W@3!2riP8DjbQFYs3i+hyKJ;vq%%4XL#(ux{9((eJo&#-@f zW}kI{@20VPz@RHlrva zDcG;GkH2#QnD#YfDLoXNY!c=isf1a*7P2!a)i%mNlw(azwVu*bp*lD?j3ZVlPwc>m zPCG;>jh7R(--*``Bp&Xvl;RODL@HZy#2Qp8oj$9NR7CRAy3iHYHz1gBqHt$K;@-GX zjB~8+G(a6X+b5b*A864LYZ_ruM+mjp*FJRpIH5f#&EP;=2Q1LT7K3!A$@RZ&r#m{7 z(XxCI+*)kKh0)G~MiXecp9{=4<)%E&X_d)hl@JY0q6Iq1c?+LJA|IQC{jYG7Ww%9T zpJN(cWR<1m=0!e=UPpMM zsvFSjj!nB6`M0Rvj&drx#p?OJ5+@+R@9e1!`zNKlqZYo0-OMm|{-y}a09P?wGS1$-4OdE^pdnxu)T(1Xfnx zyryw&ey8!+;HL7l8v0GcQ|IuU8}sLUcbQE@>DP52{F+*^*$QX+F~}1qJ@bTzQ}^rq z3$PpJCYXdcOoF1$Y3JTQJlZ2N@jgx}fdmMu; z0SV%M4G5WumX-SODB+&k7uB`oa2rv(RFLX=?> z2Zxap5Js=l62LKyiQJ&2wR0-TR@y}O;Z>|!f10fLz(SSx--;S zy-<gX)B2+0h+VNpD zKMjOvMyP%7YNX=2kt5f|EQ4kw@r0O=_>!7J4#N$l zW0C9;z}axU5&jkP=2{oBos4XGu%2O~qP&}QFmCyVH*ABz)M9m|l2pT@K#ZA4!eF@Q z)l83R7xiYh=y5kqU_7Da!Xd#T>sY2q^4cODhiK5-U5z(Wp%ThgHcFp|(+$C(YS1Bk zY~V(sv3F|F$J8%CVe2A0Xtu4fiL6^%S|#KM@$pFt+q>_)tAYN)sjjczKM;G6AVbx`2xIjhRce21CNBL1QM-cLMFp)J2S6f~O1B+buz{ zG z!VTL_ZQENz392V;YMrwN?8BzTaM0iP8QQ5Ue^_ws)m3!0sr|uM-J+K>XP*$G-Q2lBpV%eyah9OmNaFF|?2AS)rKVN0 z&YKG`EA}$)>F{AhpMqAGob}^ImN9Luo#PEnbTZ1@Po0MWAqZ^}#oejFn*EhpQL4!o zmCABt_ycq__uGS-)5Rb}+V5E8jG zx?44=&VLrx3yN)VrUn(FcNrS=8VbA}rJFpO*|tUOQwy&;P##q-I2Bgu_u3>B;XH1s zMPC3YN(aahU(x@9(bvC{%r?+2h#Xk1M{RNkez{F9p?upitej*S*E=k6Vc^6d!#eK3 z6_c`FV-gL#GlYslVD_$uX`i?^ebQmYO!a-#Jb)XDD1!%I`9VFqdI8y`dd#}nNkcPj z+X<7p_7m?)@sM=w-PpQ6utHqbF&7c18BN22;+|Z5{Z1c>J zHl|rWeC7)))GDg1-?XO-%+YVvC`u%W+~ImCw8L>qqVeN!WQtyJvfWhe=L>!Pmdi|lve^>g~ohl8#uuw{#DCJ?{! zo+C@I6ciZ}?AOixb`*4c1WL!Ot}UTsL7G)LLYV`iKpbh8=fdmT1gv1;fzHLWICznpslEg;&0H%E6_ni9!$FlC zz-P(iCrRv)=%k=1jIp8si2=ecUu)t3l5o4BF8wvBXECSCd-0+f$JkE|DSgQE`Ya|H z`d;GWBIp(RSZH|upV3VuqTXYfMZNc^WX~frUm=wuibIOpBv6B<+|{O-)3UHQ-(sTihNK=DfsiW5xqKklYi0;uuo-v|asRT2%S-~} zC6jOX-cJC6{)uULYk4z2c`8HeG(a{^@dK;*nW1h1J?ypvX|#uw^Ui-}rde4)x#o^dGiCG&V;7p?*4F;tRSYS7=y6H#AJA%H=@(Ei2yDJ?m}3+VK}#7VRI>0<3} z0S85OvWF_*>ER+{i;~IStdN)*jQ+4c87>u!7Sm(oJ|}S{&jxD(eU#TC5RK7M)@ewf zE+s^VPe?Qu0W^81>!Lb|xSA4Ec+|<)%H!gS{)fwT;nhjx=MN3bP3a9`7wXeghx<*_ z$QMP;+*Z3|b=1qyRye^>({H!jB%<5P(<~BJgi5*(10zwY5GLm+KtL5Oz5sw9 z_oD!NAZ;bSB8B7Rtf>{cLVN?E2fy^}7{&Mi;Dt-wdkE3?jzFPx&~W`VPlPag2obK% zNP`PNcF!56wKVXp&jPBOQAha#Ky*$}LI)u^mJly&PoEZY0 zK_Pn-DV*_26l6eH(ReAo!iID}!yk{5>0;x_V{`%`hZy`Cdj z))abVtFWaCl&~oY!VH$&f*8Cxb;5uzXl`KiPXadMqMyjTHN@fU!!k(cZK%LV6g!Qs ziK)WzaH09UpA1Y_+kRZMC{E6moy8wR97o8zD&jYY2xzFC2B_z-2?+qSj-V5Xxkr?b zSEO0*hf=rqp|X$!WsZ`OVGbU_8y<8|KpLKr{#e5zl)g9#e)4P*N0CDjndVxKCfTkz z)--ID*Lbo4N-e_V$oeg_QpED}_0S~Z(^(NW=&k3NQ=0{uA0gz=0|kH;l=78B(J81k zM1%iRm!QlZIbiRYk61*Cg)wyPgp4Sfnqu9R2DLu8wY`sOY z+eOdr$ZkNh^B!EH&DIkqJs9nxjVDCSaEB8aoBTOE@(-6ZfQ z(hhs-PdVY{1D>@;9&;)~``!aQn2@Aw4=O;ZN5Y8@MSNkWAF&Q}DZj&reEtmG@j;Sz z-79=R5ntGy@kS+rKU0V!Zhqd8Pohl1`4k}(b%G2I48SJj9GO0~!W}P@GjT5 z@7)u+j>l(-gQ}v!c|ur1QOzHqRv!c=QmKf5IVF~KNg7IpK^7;)Qu#D+li>)1i^l!c z9IQA_#150jJ26gR@9VERPR;zbp+gf49{uUqk}{4CZ>j;G8KzYd`9V-Il@YRUWu)q6 z#S&FBq_XL&GyaiD=JXdRiPplYtGPxA9uSF^D4y^&nzv%w(_RXz2LR-}@WQ}kv{>mup*qY_XgX?y21;yJBUA=1S6rSo)zhL%hcF!>ST75kfGf>S zE}5{Uh?>)f+}*W2SNeBz$0yH7%90JEeE*tBD@o~!!UF%+J|?O6^}ZfXYtue|w6o0a zE#3~4hBgMMryNRJ+7LX1zSHs@b$*dDt?kxk8g~wn03oB55uCn6kQwCLm96&$_&29# zT%IHq;=>FoHcyXJ%obbphw)=UqEq45^o&xD<5Cl8u7qxqQD~?%h zZ+(UMB7m8+i$4frwfNgv(P6*#@Rv?+OHzm586h%A)^LOh6vYP?*IpfGb zhEW^3Axb+ea3#)WA|&g4McFVXlGgL~MY8UKhpsE<@oPnEKhJBMOTMiq8_wrs23{Em z=5BBdPN*uk&vZ@a%{blWQnbX1h}7?xUNPlBU;CQVr*+rL5}SNp`3{niTUe7X(j7IF zA#!ZiZA>HUDYu??8bOU3R&h?OHV~`HY&@cxV8~fTtBxJuQPjr4Kl>Z#euAyM#QPL5 zlebpmD35g5eX1FcGea=>qwI?l+^EI-~b8zW`xz zC@o|&c(f@5MT5#|xhkrwkZqFaj8Jh&z)qWa^%N&)_8{4pgs958tOfR{MDS9!OV%X6UZl4DD^|M0^7GPEgIJpq%X?;2Ojd~~xskwyMu#4PWR7odaxK`GE}L&2AG3BPSs6mSK_}3=XJPJGmes~n>RFYE&?ps z#Yu94k)LLho~GX&Mkufxw=#0+odplT&W$lEi^HzwtFJQ%JOZZfwTJaW!Et7qe}lVY zdUSox9;3v<+OAb}2@G_BsKe%-4WoDl_`Ys>IoWln{u_h*hZXeyUQ1$RW8?Tw23f|Q zj3H{j&Z#ZKulu901a1CS*GI~4n>j@@)*pM*Z4Aeh`u#1BL{UCr(s`9L?QFDn-XK}< zh9nXH^kl=BSmJ96MGu;*EWLPs`81h&UhDg)q&)7G)zdW}h09(H{FmeRQ^X2f^ONX1 z`rV_KNz)4JdW6u88m@$O+{o4 z1RK;y+5Uw>aZ79U=d0Dc=O*K~N#1pZL}a6ZN!5c&^R%w;AdaQ0J{ex*9gcb|sT|%% zuT6f&05AHd_&}Q@S!^IuUum|9Z!$iy6&T*5Xahjh$QEMb55}|r-gKC;MC?`3q9y_i zJr<6DbBqtE>W*;`liWjTUw~{%U13E1{@{SaC=_&lY&dNGx{L+m5ABVc`C)NCNugr( zJKygN{H|{=GcH=;Lk4w}+r*rJk<&;?)!H1p<1#+y9gG{Sao9wGMnI71XN0hzLJ;-= zGAw0OFl`lJY1DX)jam{z803-{nc!ICB*O^}4bWh-fV8uip8}}Iqo3wv!hINB|D^Z| zhy%}`!#}g}H&DhkuDDcAhQnRljnaoCf7s+e522jMB(PF2Wn@P{Pz&wZvBeaBvSs`+ zk>cFAU5i`2SH@SuGPx(~)gjvMN&vLDl%A)F%qnW*5^?edrlX{$+Ws^ji3l0!t83)0 z)6H3A$6m`adl&4MSqg!f0RV653P~Mot!yK_%+@^`wVK_~L*hSL{t4E}0BG6|J>v#Eh z*IInsyT$76@J57M3NB=-2|04?G~|R!m-leH^y3Vrt0EUrt3lc6K3l-;Og+z8l;`j8SzJ_qU-p&F2H% zREK9o!EeXwJ+!GL%&+XlY??$f#CX4eH+i+EAT=J19$Ywz_aDOz;#h<8Ru zmso{GZgiPJJxRUU2_af6P(r9)7^n446n=O&CCzdFo@-s(RaJouJJ*seZ5Mj~;%?*nY4+S}naD`Gs2OwwmY2S00Fd6a0SSz#q=k8mvSv*~>VStx0Ora6v?;=)cNbJ9^(PwC z9RW~R?OSD@R9PX@jqKqjf@Wb_brhbQ1$u)0(QnBVIwx*pT3n&%?GBJcrQxnLRN_^R zj6Il_8w)Gi5zeTsS7rt$A#6=LEkM$LiId7*nKeNSuoksRx}pZbh5`>k_r%1Y zRSV`AZWN|uD0L`~mu++lem~92&*w00 zj&C5w#xTHsszlCal<|YFPp*WfN0A+kuetUpYud|YipP=C;jlajVR^b%pP6k{qd8(8 z($+zbpRRI}I9Uh%$G)Ss5ja%JICzPG) zo);lI(%4>7*rbOd$rC4mk}C|})vzC6NCTDNZ;fnKJfwcr!phd|P=tLk^5j4ja%2-X z+ra#9yF_n*&yl$vZ9wTPb>?wrrUF)6)z4YIh(YsexaXuF(18m`4(d_OrSGZBI* zjj0j*J~V-?o~GQ;1Pg{(Se3b^?Bkog!y3bC^>zbe2uM0MmWgm9x?lq@%jWvETAbgchg6>lA7|U{s$5d^kwrE~9 zhvS()XM^4g=BFCdBAkQrCkL51F$S6xGN6O3M?id3?lloh;YvuXnDYV#`b=6g&05$u( zeczz212xRD-nNd&cjmYnLF-287~8aUoP?K-3*KRTtAu z*@gfz+olH8W7M{NG}aV?q^@x(p=NDMLqOlw9t$#|YTj~Sq z)RbsIi9!53+8OX!aG`-OWm5<=-QzL?pR&iU&>*ulc<114{@8C`eypJa{iM)WoLN%+t&T3Mmve1 zPcl>mDnF!nnG{hMZtpXvy@d& z>&5&0+CzE=)*rl%erWltDx_84Yk7^0-&gu)yOmWo(Kn+z+$=xr27%j;a7i|>$68M| zEqkt3IZ6yga@#13V0AQDp`UydY2U&}md*G+!dx@oY4|l|qi9aT0@bqc&ScZ*-YC!R zbsmW|ljD4qly@tiM|WLcIum3H>5-)DogY*Z_|bybQa3VGsZL9b%wMtzPe3XW&O&20 zyc1rTrJ%=A-C^dFK=jCO3=vfPzrnm(_ZtirRq5A zRc@Wn;U`NrKbx!Jdgi#Xq@wfqHcotk|AGfOT`kGBldi%E#Z@+ z1++3>1d`N}?5^Zw9t)|xKIw9YW=H<^1d8$Vo2r=dbaX9fR&I=w5<(n^0O&csUFX3e z{VIXOgWncF+~2)?-)#!~tJClEyEs2{@Z!jDh_?ldR(;{Q0j9p9bShUWUXh7uGw zo!mVi<`wZvh7zr?_T%>S{60n|+5H^r>HWICO|F{!1u#g;yyzq^{^`R%a{VWPd%&xL z;K#Qru4WYlsZmr9oW3rsjDNV1^T8HR?KiHz!CiJf;Z6S4|F)kAKoLk1Gn4z@KGKr z4C!pLmiEBu5-BYwO$-D~^ij1VKC2s!VbGfs`Y}7l#E+T!@~n2L?p?c+Fd?}qO!f_n zPt}swgffw-6%EKcq4lflKFi{JD;iJT#x+K36jpYG@q#@l|JxYV@AEWoft5%-%SoY^ z>|4Esh=QVSki};QVL(LLg|nP07YXBNQ$&|cRkMKA-1~g4O*{t{ng^Cy7_&f7RgoZY zn5N=fu_7C2JCzAuR*?3BZNLE+o8ea1BX_XcKGBzw9Y@%fLJr_T7 zssnP;gca7$X{x-U)UP`u9dua`bW;=kChiStG!^`Xwg;hXB*yPXtP$fsDENEI)twP6 zHo?yhq(JP(m*FgWBsN0HvDH1j(}hfeA;V+++b2J=&_>j5zZbl2ZN8-(?aw8jcFkLd zKglD9+xT2}5;w91Kzj~1dRKg036qm(LUOzdN^++)O0{eQ8q>>K!%m@|T+9Nw4%5tCiwnDlPI#xvYF*L^6<_isf=88dLBJ>5Hdv`IE#(tl7VILRyxNWJWh zo8rG`ual0n>qYtQ6Khlz+n2aU6oAuxREFK7bD5A>&?U@i-? zKcj(CHQ7)M{x~vo;waMC{3|*^v+&S#gmzQ24TvS{gWp71=CFgOjXptPZV8+;oy6%6 zG56NA1zZUKJB3HmdK<;Dd^1M#N!ZGs1m!(dyT?pM7^>?ruIE7uR^%R0yVziQn z8p8eAV|}Qgk=B{*l9Mnczt9NFvB*J$A(nUtE%eY>kg~s<-VE?w1nCVNjQtSXw_qU) zXv9=!-ModYP8maHO5?vp=|5^pLo|PCOv6eIwpc2^AwIR~ddU^}!mu~bzSzDs)`v{? z5YC#$+9n2OD=kxuWLrLBR!XWL!VPUzG&yP>DLc59b}VF}wv|6s zCwVGrnR$T|61X=d5N)_1_~MKv&n#j%Y}X>}6d846>?U4GboMRD2H2|iQo7Jr-Y4x# zMMhjWOH!zB#P5pVuruBjjFuv!8KRW3)P7N5W}bhVkL@q`#{E0ALKv>JI~-d6<8{>5cDRUsSW9}Lw`~M zX~QrA_NW40IN`E}W+ul?I!@{g!3`It&QG93kyKAE)!%=_1G$ox#pP*pv9`LAdM!fxZ8 zHe#_BIP2A(MHb1UWo`nBo?a6!#3^ZRQbAPZu$@)lHD6tg^TcTin}~9WIpPm5`w|KX zVw?9Eoin%+u7asm3rIF_$Xj0Y_RRQ?<7c`1Q9_iY$)B+1fuJ6CWb=1RgJtFWb18X? z2PiYmL-a)~4^|{aSWV7k<}Rn0<+XFh_ci?Ng;tpeJ2i1L;YzCgs^5kUllq-k2hZ9f z>9s5D*)b`U{Zi;cu9P!6qpHbNWOZ}3Pp3ka%?Xwc<8aHwI9L+Lf&3`W_eL5m@`)Qd z^(z|4vRM48Q^+#7^uO(1NV1|ylByOvbB1X)jKo(5&(=UM_to+vpY@=xo6+fEd8bjZXII)5Es2ex`E4hUW zyy>#Q;sKN$iZSDf20|}IF(e;7(FY+~bzhKwK+z${95!NQ%8;s7_gp23VJY!B-Yt_^ zAXn=+{Z&~)wB7~{)^M^ZKxzp#rw>S0CMBxsVPq-%L_-T610#f`{$>XJBgCwhu20IMV;VvKHHhfSnO4rDo!O+2oQ-D% zlOMh$V$PEyhFl}S2X45SMI+{JjIVbSt3OmUHlzW4#`Auz4#EGmOcN=lT=YsC+7L;O zhjkNf#J51v6Y;v3sMRt05ruec;d0b#Ir^Ov-GLdhc$$Z%+V9<%c~#B9fh8?xHyhKzt=U@M5GL~GXS=&QjpsKU|8&&`1PDn83&}h5~3E( zi+SO~D~im}R598fFWWj}qmUQ9a}Arn%=YbEk6hB^&Eh|to=n^7xlib9LSwhM1n114 z`|V#z^yV!i;*^oW+3Ol^e`wa}_I`*%RK8^=F1e?g0WbscDARcy8OzLRlair%=F!$U zTp%P#1i`P?LV+=QS*D?-`f2AhB%e>Kg%1BZyxs14u zA@AX#&iO*__ri?MMrO`?C*7S49^E=SvJ7zpGNxEx?x%IY3+*{ixMhg5nL41$pleN@(SH$ma&BqmZ0MluOtdKV1e`9S zT`mu>#C3cIn|YdWSfESoNOh2=LSQS0L^kNLu17VmUAGxO8$4FI4vuYZDsvYz7rn!K zx=<_Io3mphYugh-S%JDWxK!^2hp+vN;Z!mUSn>k=u$M| z(pqI3R3yWyaz0wO?^`%o>B@LAv0Gy_{{xl-{@AYw%x(m_aS|2#OcDutVA=_N$MRju1yqxslDq6V zkL47G@qh^RSlXb!q8xJPf(#lAtx}|aLf~Prj?DN)I9h@mJ#p4ZIyr|_ zw+sRZ?)n5;#G#*W0V%$lc-+87x(hzj!fF zvMkXnknsAnT(Ky=5dQwTBBJ#UJ2gA0cTs&@@{qaTqFhY|JjgOjOKxBccr0#EawGDu z@D!v1je+ewrp&_gUe?$zJbiZ1_}tV6V$YWIH&kL`o!@#O?G*4 zRxkpH`Clw;6+!?QCH2$maa07HcXBV!1LUpMWKYFyRn-eF@B2UzpZl^OAiJ?`#{VhG|KFkhenmk4-#plr_M|QKf7Rk$ zfNK_kKLNqe0T}}svqiWGptah(SUaL8$@ubl#+Qht(6m=}p28u3uo0yRM-sx5NE%wb z*&ss0{~$-DM6u*@^mh5``D&%#%hLV8s*s(hgEe~V@k5hVYxI74y^Y>a-k+u&m*q_# zq_csgrcDyELuaQdnZwRd)7kxaAABzJ{#+j0P3q~kT$LE(ORwre&%~T+>kRN=Ok_J@ zeM8q%Kd`+$dn@MW-m96M*9x|-|apqGqIsQvUXZPa`OG~)-*}3sHtVAG#KMY8@i@ub0L6JlL?x1o{Q}PUh=@J5 zBDN7y)YQy~)k`kMYcpD`6WZl4WeG928jU^{rFoXhGp2cZW%=BnZ=y_4fsTq2mW~5e z_W2N&{+#0QNfvozA`lK7<2R^f2RE75>``$WNh6O#AddjJF;hr5^!5fK$*k!k8y*RC zf~g2Wt^v!ln$cRAsf~A5kFuXlP0--eD6Xspof#S^i=ZW1F_pl^Gm-O#)LYnDpqz4F z_l@i(WI^RNsppyl&GlO7gt|PF?U#5D*~85^@cfS+Po?%g3{soJ`)5;UFoC&);u$$Eb=0ViUL!L3!4MwScn_7aP=RkIj9u59n2Qtk>d4D zrSf1gJ)ySvDM$r^Yy?Mu{SdRTErJ2DWF`nPTrtFN5*kT;?N`kx@?k(4wA>umP)%%w z8FNGrZu4CFa;cf<(kIHPSF)TmV(MZI0l5xB0Nhw+X(ROoMw*a4r2y7cXLVGgvBE(@ zBW*`tryM7WY2&p^zg>W10BWe&nJpppXmT_C0B&4B=-KR8G#H%}9!(Gd#@GfWd<4Nq z>O!CHjP&$nbW+nvBX^*?q{#sD=2Q&XwFemk9VjATfwe`X`m$jtK`(${eL;a$d|@J7 z0E7MY04s>JP6<>6R->Zv}A7p;t(^lPXck#WF~w8 zTyTLz_#+`3T5rup=)dk$#4hSFTbSXP*#pt%Wpzf~A#JNKIRR&8%<2K>m$zxIChakm zSYBbAjNKoZSf@(tmdQ{9M9y_}Z%N4L~Ingo(6ZQ17Ao6et)X$3Xw8A*r-V zT-Z8m${~KSo=VMFX{%Fa{lV?`>+^t~ouLSu;VR5_&^@~Irze_uyZft+iDQ3eF%vi0 zTJkzq@Ka1@0h|S2QoEiVngD6W`c)1OtYnXjB{$v{oNK|UAW6N#&w7QOQ-G+*U1Sj| zu5zbNe#NwkK^UNZU}5lmP?tY!jF2K&gW`1_;};d-5{pT8kAjM`@xnRNX6tGl-VV&G z4k=f6N~H!OSl>_vbP%A&r3eU?8TtG z1{j2%n?n!=hNm#|2is$d8wL!oMTRocc=7A?Dz5(CR>DhAdc$kc!Z!2ipns)BpSySG z7&Q&Xx)D(jRyWQ+(#&if5hyen83G^oWetJ?!$=~pz&|RvTlVG-cVO8II`PAQ2YOaE zPpCVN-0U%y+qTB-T&OLBbFUxZAb*F1{`9gg{)jjKWuS5KRQ`r&0;8KKZu2sS31c0) zv}D)ZCy8iSXtR!B`7%LKGDV$ksAXO8Nr#Ww1Jo5@U?QW?Lg(b;>`3< zuac)|-gx1*%lAK&#%YY0hQxCrGiFq|_lC&_s0j=|QC#@0Xk|d{37%I*q<3F<+m|X6 z*|yws&&+h7rY9IAR<3%Z)8vs(?1pN?*c5z0@$&XHacc*;oF?0I>#YQnf7b~!a9)>d zsUOV-h2SSyiztETfNWIUTrU_M>*0A%m{>w5HC?GZTtI~R1^*^~S3{GzOZ%R%9-83PHdag-v)a&9BO$Z0 z(A2}F6P(`SW-b+-I?9|`%n3h6=XN9VKjvdb+KTL06$`Ltl*RdiN>CiV;}kf5>ws-% zpvEe|{ zmAT{7+15u1))g^lPYh12;O>fvt7$0AVFY<}H`dnYII=H4qd7^qoz-FV@WEMKdG~q! zC8O#DJ{3+nBCLhor?|gvU>siZ`(#RuAJtKPczqzT4=Ax!oFy*FrI6%NGS+I>=*$}M zd|M&OEDwq>wbu`L%H&uFasRsj9RF)jC3u2gg9d=yzak<{_ep`B2t@qqX8UCeH_Be) zQO;MTT!~3BFK#i`WS;%$_v?O8<>o5G=D3M>9Po%31xB7`R->+}fR|#veD9Pg)R=ty zi7?H3l_nQgxv_?D0{1Sx{pW3P#`HTS@&s_>e$NDy-WY~7t%>#`&Ae!UjPN|v+^=8& z4x{Vt8j6kS{rkV|j~vp3nJ~)8E&jN@*NCY{vJWN@QDcmtjO<8lZ5eTPs9KQTl{Z%9 zBam3nes5%eAIR-qY@=h`10X=p!s!d)$C8`*hjU-2-jt@8EZ|MKEpmQuRP7wZZ-GDl zUgaJ8!bg~+$nAGdm{AAv*rK?R*P7{~|L_Py(6fKof|llHCWu$S9y4d? zo+{xQM48d9Xf>iQqT|b(=NZ_)sN(iq2ie6^I4JkD8S(k9g8F?2%xUFNR`yN9q7f$< zXuO~d>DTF~vJ@k0s4FDW^^%L(Q_+yb>7F=4U#!-Qp;ChLHQX>&zC0eq=f_t9kXIeBvpiiy}|wjo3o$of>V)dg+Y4qs4N ziw9OBht~yz88H9^Vg-Uf<55T%_fyao8;a(4m+Q9`wnh7jmRkIHwv2T~A+4fY zH2|Ky5Tvwz+5zcsV<9(ORh7H_kvhC|A%xh90EF|5b+zbI=i2*lV8FEW_^r~v7D--C z;?%RpC<*v0m#Fvs$cJ(9ar-|+IP47n8=f6AJ^g>nV;<{_#}c>x2WEZ&9{CG1590k( z2lGnmWg7~=t+UwS4tM_xGlxj*r)iAT$WXaL1Sw!y&oH)+K!*;3c|LDVVt06z%g*NJ zz)FWNd$}p&^W*t?Y~=Akt6DCr#gjjvhCPJyZU20LJ{5JW;r@)`yFaF8KfTrTJ=_{7 z3Z0GZ6^Fk`9&)2ID>+VkMBN>0eYDd{l#~D^p}Re9uCA@)UB0XT?Ctr!dQ7V=+m)3D zwUhmc!Fif8_j>nT5T!r2_IS8i5Xvn9H@zW*MexQPpY}o4#Q-GXpLMm%~k+%4Q@pX-j zEO`=ehm64f<(Wh%lTeT6kv0HmV6;qY4AGy#)Dj??d+@bpF8*wtS74;-0L&XcWOfEc?>C3^hY1{*Kq;(( zV4}(~OF0O^kT}5bCIJK!oQP=`_CF-Cq(R1fKEWY0JOd(h{)NZAS0L6k^|k=Mc_0TI zzrdte&*%muMgL|SSagRc08*-HKx-xW8B1FMlTrtSl<~K~+VlOBG?F!CeNDp~o<{A& z7eVbt*Wk$vkoZ~|b`Xr{UGV0DOiVn8Hf z{syYgyER!TP+D<%Bf28zdz=Lh=WAX8Cxp6k{ND>B4oM$kdgMOr5WDs4-$UF8} z7X>{+f5^pJ9DuziNU|<>lMI~{snr%Q!JP}6O@JJ2thfPsyP7&Xpn;Z*w=%1t_Uryu zl7ma&>X8qHm8%1QGTSXACK%4eOUv!Cu;o13cEjv}pXTUmQE)}|t^3ZY+Vt_a!vDVB z0ZNQD*9y2@u(3wPMWQ{m3$JzIFxih>&RZQhNcWVM^j)eJ7^#eLDx<&2KotZt3?c=+ zxruIpa`)0$Ul&IC2~)6F>j)GapGi16(pYw^py6878R>uaivPCSOvMqP=S~=fMWDIk z)f3GXa2FFqI|<~^xutj^79ihqk7TqTt-qVE8mtx&vp|dP1eDYa_~a($4_id zvJeY+preT|#2%<`oNrEzksvrwEQr_@Pb`)iXMFL5SbS!nLQ43{P{!mMU(ij!rHY~z zf~V}X+{a^e62Q052;(Z2o8U7Vept6n;tTVZe4qD_S!D~U4O|cYV0equ$Kk@VHcr^a z2hooSpq-M2Yi!2Wxl0Wa?3rx(9%=vlfPWF{8Z$`38rtqn6f zX(-dF;2pr9#Y@Yil3On@)(;ZAKSapYgYsGmbF8{8aXBQxwwv5?HAPI?CN$ey1HNOF zKQZz9)D+z)%Tgn=klNMDx|o9;Nb!le$d-C?rwV?dUP+xfR2Fw{JeWuEp4n9BnU&9Q zH0J@7E;1r_`yT};H#=`b0?dk>%|MDUx$=(w6jXZs5_YnR%_{oDW~yLnTO=d> z?L}N_;99XPD>spjH-p^vSORBvGBdgoalvRa0A5nk=G39TRPCNZ+u#uTZ2zT=gmf%j ziz&!_2zMiUs;V+(9YnxNI$#!3j8~LF7^7AFo!N{*!C zRbI@`@PUu1KG%fnFH*u$=LHp|F-=o9#+=*IUCf_{f$`1%AtlK1}{CW3wBLD+6lHt_ZGnxG7U2tpyq_uio#f@@=4eKPRji~ew_ zZAZC>K~el!ES*a!m(vGXYnh8OA5_zUKN5k4uICpfAB84R9mlM~VS31U%q*9JHDTS+ zO)?fS=9_943i&JCGBNFhd7u8?7XVhgixXxeFMw}V%;4==6Q@-tXm3-@xYwEhIt4(i z`Wf_*sgz^(Li7w8wVQ#UN!!D(2nuM!M_4|dlXmop@jG3#P?Mjf+(RwY0**P1fzx*+ z8?FCrbP*l@6~g93HCU9fu#+ycJIHM!r1d#srA8w)HA@ems|fdgd6#ER%kB84g87_? z&>fy|*R%5qi)8L{w}8(u866qs(nH`h9IQA81>knr;j3={35$NG^(K>$> zEE+LYNBUa-qR;ELmY@Fx$*GY~A9{oo@SwZi31gX}kw+5_pg&8*`y8zPTTBo_m~cEX z#`?rp@$ExV$qb6f$SnLFf>QED_cjWkQF)1@%>E=+sxo|5_B4`)`FVL1YzhK6DLd7f zHf!?{Pj$5N`i#zOb-E1JsQJ{}NJ`uJGOqgZC&kNWmpr!1aL5CuE)7a-wHU814cTsH z4T+&Y^pp|78U9^}aXN~e{ec&S1{yPPXAzQ4@jvCc>C0P%WQ;MV?N#_8BcXWPCL&f3 zKlU0o_nCbW`+~7f@4|K~j90^jJPe%m4rr;e)-UBC>9{x3V5QrIX?f?e%E>>E*+`Rrzr& z*KVLMo%_&!Z4i^O@gEzs{MsOQ_5#Rh2KPaO3v>2Cqto>INdqv5C;}Yh%+90YAhnEg zOv%Ui!)Hrn>t1=7XqvNSmd&HWa9K&E$3Z^I(*0NS$~hXwTkk9ic%xteyV$n^$CRbj zJWTq~BiC||KI&cUMH!K%7f-G^YfcpdmN>nsR*JhS`(2b?7@?!M)`Mt({GDriV)1o2v zwI&nGRJ!#kt@*?Ea%m2`YG#U4#>%!%R`}4OrxGlMGLSpfUb;_&suF05>24xZ4Oowot)l$5hm;N&4gg$FgBX4<&@iJp%@&2o6Y3e@g^ur>a zbbo_|Ddq@(jB?r_v@H8~5C7=zCAIdvk8dP@#x zW(q&N57!=A4d32%Jw~}-bTW0MjoONhAvqOrXT9{!&Rnv}lI{Lz60dH%NoL2o6~T)@ z5|Drz?K;@tU@L7q*j&-z@5htYGM`UVPUEn&;&Uv%4jpb_PI-^_@cC+LVX)18`ee_w z6G4GNo1i7*gkr#_b7peNvGKA)g&qH!JjaH*%y2O%{!T_-iX{DuLYqK@g`ML{BPAly zWa4E$>KZfVii%;Ow6EW3@;s9syPunJP0c$#<(pw=4%fh)^ky*)%P7a3dm{G7p1j1n z4bMOypoZ&KmWZS8*O}AzDad|D+MaOHJrU1gu5{X=kNfR&N2K5ep z!k;T`Qssfgjpg0!T_X`*nHi0IcWo#J!X*OGABSNA?RL#AyhG~*BB?{~fa4A~P)(T1~Tr4L-olaC$IZ-gjT??(hTVJZ)Uk!KIm1I9W zxX(vX3Y*U|e3nv0tXQHp7E7iKmYZ;XjFtq2+`WsUqh8}%`%N6;n}&&S%A+m@X>Uc7 z8dmQ|pYHUVA*|H|zKYCov1ffj;!$Ulymw7|{F%>@HPN@g2O1L3j%=v262mkH84}#u zydeR(5b9i7Mj7zK3v(X2QWE)yaTIhYfcq}AsBACsC86$GJHhddn+=q7mG1oEr*_wy7X2wc#(9KF_}B$6U3q`^MDFj9!(rI=r!Sa8)WH%xgulC3X zLLd^HHAV8qHc0gmiRBPMju64~ckO@fU&Q0O&Ux>~qkr70`LAwh^5v_@=6{RL7)Tt3 z%{W+4`e^#kocZZ;(+>tIruUuQJ;I-8WVkUh9mkZ;{w>c5@W_#pF-OdAh8{@J{fVT6 zFXtN!q2-RCZ2q^xd!2ZgpZ;=X(nkyqe$=*redI(r+L)u|G*2l#SdF3J17!2{dZ&RKcH(meE?66o`rmYEPgrR2txRkxbwZUTVhH7?sML}{I0M(5&*$~X^vVi?+m-DuLUq@HmEk4TOZpFP+~=L=EzSSxG+ynjEt)!0m@y#SsfH8s@rFK6E>T zznVDF9bmB%UdiMxt0Jin+g_r(9`EKq%dMSEJ;&1=a_3Tbj2S33?~#Vo2Srr4-pTxr}U)}mL+ zukjy76GTuf=fVMTW~@Sk8yMvZ_ss?Q{v13)fFhB0G-go?Ykr+XkRHKf2)!uqe4+!Y3;KbQVrkL>0G(=uRH zmqSuBGl!71R3%hl!Qs#Tr52 zPU{65V6T~R_khx%Go3Q#^xOnv9azJI?~aDvDqu($=bf9jRS!`(ceg``dKEfZX)LEp zlt2{Gb})O+$*9I@CcLTiYz9hpQ%(=XD&;pVZXMOUuHvfuX%)$Rqj-^@pF_Ltv|ZnV zJz(M69i_*DF8a*RNJ2bwnh^Zve*b(LN`mlg@uA1b8fiFllm(48U1ByEk)5Bt8Eg~| z?K%~ZYGH(El$5V4pAKA2sjCE_C3iNRxf~EaN!cT<9OZLt6DV6*#D-)ymXY5$nC=aG zQAC+GiyJ=~jS-%=oN-6915!|;H93|TT164EC!8ieS@ohyHPL5v zy}XUpN>7d>cCanKNxK`J`|sK6Kl*O>kA^dX(6xEC5idyCLGnQRJ4e1i|0{?!miLo+jYcvt|{c&zLor1jffo^icqyBXRM?K$MW-c+3fV=#bA;>(vM(7n2AZ%Xa z0GP#Lu2J;|6Dq2UGE>)l(On4bdty6K+V)j)dk+L0ek@5g8E|+2PLqnbK_Rjvtx!fh z_j>^Tx@bCKi2MSSJ~DzK?e{POVb6cO!Sd@S6D0V=;eDvW_(H)t0wA_RL(;M#MDA2H zs!tF~=!TOUxI<9($v5tNeNZ?(FjUqNv`V*O;PpZY+wZYK?QCDgAw>(I+>hu1qx&f{ ze}N?enq6N&R^sxPLx2ZuZ{??BdxzsJAbq7}d@KDcBD7K(*QvWuX%U?iJ zpBp<)%AWws;r1b=-i4?aqIwX1XsnNDzk};XC}9(_Y=ysQ51_o@cj)JlPR)a=oiW~U z3!!HRL~6O#7-@8Op_ZkO4&VmFBSNS_1iOgsApp^s`&H+}qaG6x<#`L8ofmnP)BA-( zIbmhHU<9m(L$}VoXIx|^2wwB-LWg*dD`!&oRL$#d<|dT0>>_g8RL?t{@|1&U-t0`$ zo(;tKvX zj_91yNY&7`LkL^tisB{1^xq<)o`B`D*Cq{JpBXP0xlVyPUhGjD#4Mix&OvX-fAqGE z=DWz5YwHiFKvyy6z9H=_=O)m(ZG=+Sl`_EOC1a;lN&P#2qz6`z_&jjXLC+Z%BdWel!Kp^h>J?B*jRXl}g!X-d<=&H`}!?W@9 zv+?Bi(cz2+7}Jz>4-JydH`8psXz@3xO-(i;xz-ywTE>SVQ?67XYMH5M6<DtftQb{&Fubk2 z<7vWr*GJ6hfRr8(K3|H>s1hcz+Rlq=$6Q?2M|Pu3XM9mlU!X*MmscearB7tn|lST-1&nK{^t1w7He z{GlD9D3&#|@M!8rL+uB}GEYhd)P{iNm{SDfol?!6p(6r8rE!eJvMYX3m+SURDQpO= zDFL;G9i#eh{q`Bezkh>Lt{b)jz1yK%SCoKtDd}o2t}@n7n`IrV42ur}_4UW4QHF{f z(n!k+Ih#2CaUA1=2Kw#fxCDqOJHcs9qOb}E^VZDpWW_cZ6?wZTgzU_s;+j%M!w+EY zGN6Vo`E#!x3X6~>YKaow_}v1?^b__3mgW;!5Mv@yC=LZNhwzCjsngAsmpsPhQ}8>v z!e_r)^#I6T6xd0;eg9K^1UM%ghjdH80+ej0xQacIneTE4)mm5pQi517KHxc-qhZ>9 zh` zEJ1hnhTaQMuGR&D2YK$(QPfCu@5xd~C9(J3qlNMDJ|%TX9K{6NASsRab&BO6)G2L0 zEPAWOrQ>w`vsSeVz_W8Yy^I*YHbx8Fe>rGxwp97ve-ErtLdnm5nR^)>#rElV6vE z)gyo4Kj3cpz5dQ1(tw}s)=iiakl}B1f+n zfXp6+=|^XHRGI=GXUkF4$tm6%?#TzToe}&=5wSjN!)JuQ6It-bkd$f>d1TI*Huj1&C`Aw2Rdmr zsFrlT1H@`}9TLXv86j|5buSP)r0y5wo_Fq3*_Rs&-AEH7Z`CK>W`$u~ZJ!i$qGGXCTzjnfEaz;k=_ z9che|nW&yYBq{vdF;%YLghSGXB&4H=KxMHOGQ0E=tFmJ#GL$GG5aB;L4p4S0L~KGe zk&C--kPU(uRFiT9gdVph6?#0twoBM=lT*1l>{tuszyJxJ`DIMYZ1PRJ;#*AmOd2sZIwsAOk3KpkCi|ANURm!SQml;h1+JG@Mb(~;-V|Fe#`rZtZYDg+p>$a8 zPx-#k%aY2p|A(N0<9~%LWM-!SZ=zVoIGw*qM1~hNX>)L?q+zzYjXr;qzKnm9FyJ3; zDu$qr2fJ>l;|G=NT-{8KZd4Eh=bjzoh6zvl-D6x|o{D4G(tXp@9*k;`@aA3J!{DdjOxmMN&tV^hdI6+82@1(?tY#=&MwMHW!Duz*6bDI z1d??jpo{s5Q2-_cAly~D!6QI82`|rU-CR3)JuGaHDc`YiAKN`6&cf}0OTlA1|h zOPeF(W8q#$w>*ZFVqtgy$zFvceM&2>T43A*DfqF;wSG!oL6IO@TE;<7Mqxk!=Hn$H zEa&=qSbjBR+Q!u@nK&|ACWnaQ1j7=PqjxP}*$NRi4Nh6$1~;>qj5`-_ca=8xD7E#B zsC&;1Se%qI`h;`Oo4b+%QsvT*jg=-w{~d%84Fu+NTa}v%hj&9WXI)|KAod*k)pN=0 z5wL*;p<25Uk_{`uwi)0Gg zvnL=Vk}%MQ-kwo#GfD6*Y3=Cp{Atd)O=Jh<&dRrs&f-Pk{^++kl7uu3h|mGBA;8#Y zKi(;N8eTdc(+v4 z!!rA5Jk4Oeh(PqVl2NL`=^que zlX?cg$8oPFGzDqTgy&}Fbi-zp$*j^;-3cr~hHiAyEMf(GsL2C=c_E1vZ?q%YgZ|PiKR*6%ENCzBv>~sX0xEspxxUms()o z4}8PXO3b7gKiXzjCCF_R9wjX?OImo!d!`=$>lts6^ze_qo+Ja@066uCu(f_`#2!l~ zXlv@9^VhqMfoq3H3=UV=hv_M$MiDo@o|Y=%I#9m$%EgMPS^F}s*W zS~*DQ(7uzF;j~j^P$L(%&@=5}(gGYuuu5RH#}SlU5O~Pw1GOXyXPI%X=BuugBVj5< z>Fd`6p#gyTp{H_N!zABPlSp3um_`Xo(#h++5<0A&X$qRbJ3`2L1M(zDD1<#41|~g? z|I}iQMB`w1K1b!gXgUH~wuAI~%Ak5alBmrmDViH8<$khmam4d22Xl+dKyWHIF=}P8 z1Qb4fuL}ji0@Fs`DWhd-5-vwOVngCz46sTLwv`Q}nv`Zj_~f0j)QYbFE*HB3l1hegs-+w%*}Q&MpCY@~xIb(_sbC_41J$Bfa5w&bvQ z>pxT764_gHZv_bUli+ZOZ0E*ONKwgSgl1i}@|@I_0_=Ovs3v`a5YwRRqc_-_mePA2f?dK8?|+&yDSV|ll-i| z6)k4)c<Nmie@hnmOeckdvYeVZSljAU?$I&Br1!U&P>uh-Uom8by{%>)BT(oz z45~yg2Lo?X1sw(4ER1y-N|)?7PS8|Vfa8{^wZVCAsGQkRh=t=1cu^XmF&b6*uN@^a zn>BdgHg3>S!G1~Bu8^Y3|Eu-wtx+*ROOT*0nr~Nd{`Hma`RTytk0b^F1Av^{B1A)DmHBzB*5@LgHEBJYNM%$wMF$w%q4|VCCL^ZsHJ(`G3=}x0Wl+04%cY{ z143f^OI65%Gj(qY`w*B5UdRG-h*gRz|5WhtFueeEXrD(|O<$pI{MUam=Tt zX&`u=gqA72^~kdbMMSwvR84<(XGdC1U%kaLOo~jtXekB7qMHtJH*x_x?UUsE?GFeV z6~n_`=@t{_1*6G;RY-;xb7E%8jcY4zu4FUf)&4{qz?Jc`Ypb~eg~2+R9(WZ=bYZV& zl|VO5WdW5x#9KSW^@W-$8N{K1Z$^{i#1p4Z2|5yXoYDj{=FmDtbr%{ReU>b{@TuR{ zY4G${!wFN?C|y^sbRIU2*IBNptiMNTKH(7j-I!fvF*4TmgU9xLSWcs=X$CW)`?;qo zVMSBj$_~4e3oSWrfYS+I5j+oH(TzLTm4+0Wtchz^;TJdZ(I)K%+C+<;5iWlCr&3{Q zwpif6i2UPG@XOq==!Y_($k>l?bQEca`Ay@&0?p)|J`_1oPWS6B4DY+iKN3qx+uw&; z{}5=C%N~s*%k)NsePl1eH3Ci6;jL*2tAE9WokW-iV!XX8HkKZ-Jf7+Ut-Z&S!Q5tSX(r))JJPl=9x^5N1CD2hx~SkeCOv3hc?GM-YfhyuGeA0^NS}( zq3UXNY^+t?^`A9pA~Vs>qh?mGr8$hPvzj_FuJlh+$p84pKZVdc*xz3dJ22ab9a|jn z=Qp+iSd6!VcXx%lN1Wo^Y33MM|PJ4fc4l!dy zW$IZ7RWC&2w)-aIRb6|J|BDQ*A!YDmY)pgFOY^PVt|ey)+Lc_6g(P@1VvK#vPc)H8 z2*OTxanfh)U-{aIz68f^m3yu|x`rTo@0S2`%YZcqx(!-FtLYWAq#Bd>GYfU~y8$p} z4Qlh?mMSXC+t&iop3GPx>|`k!Q2Y#YGL-m}#4G@*8Iu7A?1LS#T{-nZ4j0lFTw86) z%Tv>cxd3@5DX&ea*A8@=Mqwpan z_NPJaIe<#(=t$1Xz8&gS5DZ?DeET#YU94vB7R$96Z_Hng=$oC9JulHY|LxX+3eF@C`2-1+}7c1}T}L*2G++qQT2ZriqP+qP}n zwr$%sciXmc`#*IbF3!VwNNOdOte1sK=9u#vX2^h)QIDB5=ID^B5b8ln)!&mMmo*3t zV2(&RjRG#eoe@&f@yLuR6k}=88a)+l@4~U{+!gO&g-jE9Pkh<7HUHuXt-NHrb9TNv03gU16Q#%}yGFH!bI?^2XmJ4kxVg zEEloTe=xde>WgM)P@`+946FJ_Qj=bVx!c@t{eM1nPU-OX4!WEvqjgCHl(QU8CNue} z(McgQ4LX}tyc}hYtSt)GJt(xAxGP7^fO6hjZ$BbX1HTkvQD9dtEq{PyU zFPF#rpI}u#Uhl!qJ?z1Fdlr_^l7n z^+@ZGW$+0~;Ak#y+C;WmERR?RANS@scUvLMRAP2`o?SUNm!qh9VMk(Jo4#!v1#+E! zSLB;WIf@X08t3@}$3B$a=@cYY=T%9!TWD( zL9+d8)N0`9Ih@buP&xS|ZyrC2{$A>DkN}rSQ$fFrX_y$UUXFyqAk%UMeDrTT{owez z+8F$@m?ZY$gI=(jZIgUdAX?TT_Zsz&J@IA*<-<_8HVpLuU_97Co%*BFl`HGjYwoB< zJ_m*i1u))m*v-uk^+hwUtkr!|^R_#$XB8Ym`BSKz-Qu`@Tt0d<*3&FIe24N0)ta*XAMwW-+@?| zbu~WcByL&+m;QQr9rN~o%PjfQGU{=$lk60nxy+Mu%~lsCTWxyl+O~4t8~vn>a1+PV zxcm`E^lARFjc|(_5R*xza6!eJ3oAto<(T3R0`>Xll)!fxH21?>A@x_VRtw>xy83&?5iEh6{!VIpQVZc^=($(G zEz+;O^v~ z#U25d40m&vghhUU&T_0uv`^73BIV;xuTNFa=QE=@+^=ewc%FnVQh9xtJhu_|-8LYe z@3&0Gxj*;SHIYCjsJ_=!$(|CS9&=No8P6Br0pJP81e0H{7z8d(&Ess_DYDQi7D>e; z4eF7=S7dY|WT!B!4oKcqjHg|tU~G}am5ZQzpH&p#uTVx>`p9sEiH>`YDEn~d)etU7 zl{Ti8ni005G}nWI@EX4-nljECZ3)B5B4q>IdiEwpBNwdzX;OQVSYI4hiIQwpC2-Ax zO63><>S)Zr-9{f?1JOM0LO_JDtUorpB9F@SXFG-AAJlWM&ZOY zTN4H69nZBK2a|~mhXGQ6YkxDEWzw}OfVF4I?KZh+kvUQuNda88xyF#N6@qEN%N^nD zdUU4WoMED%K2M{b52(C4PNy^KcL5E+jAloK*%Z+fa*f-LpHZIF^t$3NUGCI>&qA)Tkr`kC-H3 z0}7V=UJ!Bbw+nB> z{y1|Zmu=qGo+Lvo8Al?8nE$h$ZG-VUY-eKIrHsK96704A;Yez|E4^FT!~SOYYYL`` z>AtrPi5lUuQ9!ICakSm($YtVZ#;BQ^&!ER#73QEJ)0SEz7Iwu_8gABSSce_O(wvmw z?i-)x;3`8NG4bIW-%2wB=?!-48h+eg6jUBrs)eiP(tY*@O3i1}M2FBXeZ1K^-Y8ju zoz?YQ2rmvslb_Bg#|*dU${0rgnD&3K$;0gC_-Y9n;~=@n7-Up-VbAAikN`pQE>Z}i zW&fhcWd6tnMh@kiR$VZk1SYy+VZT>VxtV*PUec~o6qM(12R*I8eu@E9ssMLmru%6{ z`isI{>aoOaVG7lN1wHiZAb06l+BhmCx!EWtupDkdv8tj8!c$&UI_`1TSwQsYtC=^u z;Mw6B>(Bg>c~DVZ{t@;-e|3747MdgTnH+?NYW%DFP1S z>ZlJVSRSkOaQq=r+1T!cry|D)jRj z%EhDJhPaQ!cydBMSgfHr;afx#>IUa}4T~_Og+`?l;}LQ}V*1aZ<=|L1j8PB!iJ8DX|qy?r~nFsPFKWG8pp(4F4efhg8Lv(X!kbBVNW9-1H#{Us`Obi86rS&3AD+iw;{vx>@p)$FR6Q9DoyfryaVL=;}MX0384)7`>^NnVs z*pi^Kwl}mA-0*h-6zBf2WDrPt5X*)3kqacLIpE>(G19-5Mf;?LD@3A08AbO5@<|wz zCmJV-x1C0j|Id6Ww4A&8DW46Sv{+}`eljK(sWK$P)CZheKmKjvK6LikBl35 z#mhd8XE-9nSx!8*+o|LqNk%&A;0nKO#)QEHQ$-}?tBs4dN=rt!f;7-8Tup3hE%v7s zIcm(rPowoT5dUqwo@V`+iB(dro;1I2HbaACxeXhv#H!elw8IK!!vxJbdUeI;4*L8r z5m458QV1*QV;)B=*R$f7jR6!y+h#g4BtZ~f2UL7LGZ~0B3#Ft#T75E&K&)xW&R)K_ zCdP#EK}}11A?-p5yj<~3l;%d&W$1VP?8HuddS$b=^9q)Zvv1bJiIyhr+kEW@UQzB` z^wvQsIBR+_(%8*Xz4uM=FwP!C#*rBU`$cbB6LuSA;$9ds!6f`riQ@hoWJsT#jQmYx z5U_MB=fC>woeX+<9^waW8sxs<0$Nz?6iEImkd^ns4CNi1B*QI^dYH6igK+z30t%jN z9SJZGt~1RZ;wuxINpBn^P)N;2JfuRG6QUZ|-)AWH)GQ0Doe;h9re0w4U+7Sth(>xj zXB^8d4xt&cxn`1QoQfM4s=5D``x9N>@>Xo$y1)p1Nr=OUy~1f?m_7QrVr)2)s8!1C|k)7(BDBofw{ReSF^kUX_F0G#k zkBp58HZ?&t65|BROm4KoycE34KDO6qL0)>KE3rd<_~=CcrxZF(H!Iz>fcEiX0(Wh( z8&i*imGmO(Xzkh1A%pj@ZCFR|mS^qap}>x+_c8EOqJ2Q$EGdMW)s>}xp^9LGD--8m zx*j|{Szp04X{oLgGc71(+?tAu%k?IJMtJ*)r8wdTGUz?s-k6LMC^aP{5_=09>Y$~9)%!lHedC*|DPZ`cGc^QZDTMsI7Z z-x$#xk5RbR-b!nq5HX4Taj#FcyLQS?jBJI`F;t~=4fh=PvzJ~}yh;xpukY-dSCerm z;+~?IiW~q_Xlv+}W#Fepi{_p(wIT2~u(yVCs}6;1N}cVE)~qtr--{|D*%52romsO?w9{M!^* zGQJPnb=Bu*-M7AxhzZy6A#J-4X_ENmtr|}ipY%%7UFeB6vTuDs5Lxx1XI^rXm_hPg zN(%oU4U?_gJF`btU{tSk=XMzxL_a#SNBTcF*J;^r&M(V%_xE2zgjrulMTB{FMsN30 z@?Y0A*8dnHkQBQoE>MtbCn*d*B(l6KU2hjF**blF=F8&f9Sy;34=6h2zKwk-Y>pRWpwRes(A3IZHnk;pRKqcjqbaN zdeYuby^~DxF3=dBqp-(-#7iV;A`GHk_4tdPo~~|qqgMqbA*2~> zS5iR*CE_cX@mf@fM2NA35$nrcSP{kwoFKF}pwZD>=_fwR*|~B(CAR0x+j}2ySxEGZ z78!pFQ$5{eG4zKx02(({<1W2i{c_$4THDsP*^x2IK=J$C*m_sKdtRBKooNGTnB(D? zRtBI+Xo8x|Y64e+UhPM25-0i`)zQcjm>m7|q|_)cu~Q<}3?P9gT@QZth&nz|Bn_D{ zceHexIz4S$%cwv>MXU_xwumw)cYL8(^jyY7Qk8>!dUDHZfC|ENAeKcRY@Z&PW%04# z?;Zwq033<$fVr=lcuWK~4|Mv^IL`a_UF?Wy{}I&fRNu^jljY!581Xt7ZzKtq~nz0{p`( zeq#SX9vjPd$jz3KlHHH^Z9Je$PtRhNZJqv{R@p=o+uZAr-*!u@s(?o?g8v=cJJMsVm3a{KN9s>I_*ELb0CesZ^fU?-&K zU7O|p$-z7TggYOyw8LdKX-1K^W`M!Ad@*Upy0iA25N(qR{K9XJox%G4bVe9| z=)0LTlV`n~S!*34k&)4hp}pbsfHwYoPp2U0pJcPC4Uw=u4nwi#f~bllW_i`QLi^~j zV{E5gwwt8Z#eCQ+qo^mNr!~mz0Z#^^sYD|_F-{EY8g!uL9}fkynijsCo&0~+TINx4 zMv6?H)l^d*VR*nY(s_EF3Lt1?DCC;7D-_yOsRDFRzi;uj zK(nzTFf;s55Bd&`FOKqI%ig5xZE;Lk|1?+ah63H@1vNiE3{|nBG*ouR7E$fV#<8QY z`W0Y)<=u~1={u0QC~ROj)xTj>AK+rrx*2Qg`cN+~gjrXxO9iZ;*+?hHdo~UTdBT`C z-MSg7V)HbKp9mlL@MbqwL$C2Ayd|>tg}J95WoGkuTmS}WxGkf63REr>dTBxa3z6yp zLHPq`_%a4+A!+aTEZjk-+)2QRBX7~voIiD$uzB}}(8OZtKB2;@)wtZj{k2Ugy#_e4x zyAYm8J=*UefU!uM$@gZ5N#?OsjYi6gInbqlJVK*{f@l@2e|or9(2nd^zfr4O`XYEb zMZ7@I(JhVsN;(`TA%g-xh7tkzE|!|I6cEcVhn{0K5u)5qCr2Z}CqhLLS;dc)ID4oW zM`FP}=HZV>IU_~Lt0CknVgHi|U5>PGgA5sso>uLv2|12SB(G1S)=i1z$ru|Z)i*mQPZOWEPrRC7}|H)S&1BN=Q#87m^?0>Rb~h+F|F#FC~r6v~xsK#YH%G zCh*`iiH@aWm?xE+O0cH|lhb95MZYKTL6UL)aKPnthARBfN1NKW|LvOkTRRYr%7vVAo4`&`yvI=op(@-X-n zXy_2@ts@I=Qq448h#OO4>Q%JLBSKMOOf zMFTPa>$3xTqPqx>*BVv|ur%dsTt$&sokUInshG&f zgUp0Ir`ztzH5ajL{*})kIF44WwrjLhI69}Sv1-F&OJOBL*%r=#vUyiqDH3SHX`@AZ z>0Ui5+ebTNj2B!~+ebHJX}{s>O9Ln5M)B$J-tox|67bZo8D}HuUo*JLwO4|_kAu=) z&&Ea0V3&XxVwHQaqdBAw~inFb)xwv~X%ElsdK&p^<>}ER|EO=2__-hv?U| zh1kRsuF&QqUjV0eP*FMV?VdcO~HOS~27Eze99yl{KNuJ6o_wzR?za3G2_XlDz7= z;XKvRr#WqxeCbXXJ=M|kQtKWRiA;)!t#Q>`BQ3I`l*L4D3q*#UiW#Vz4F8u7&el)I zQ?|WVcDDU0_ym`lRvJ<|$(*U1`>eykc^r86B+l7n9Nu$VH={At&cfY191?2|wk8Al zdckRU22|t1BnoZr#+L~+8`#^2?*FI<-qn_f4#Y(lL#jm70qObdCh4ny`85^PJ3S;4y z8GP5GF4_ikh-D2FK^jFqkUe_iTyrSj9bv?H;cO;U@ThP|gM9`XWXyVM6B`A8Rf@s` z_wIJQMHhYLpgCL7^I6346z|rnYI1A;_2!{&ine28n|)tm-)Wq}WU(~8pO+Sl(pZz> zv*6*_!n<wIFTG%|=f7;|@-aD(+44|ZDDx=T!hs*yzB*&{> z*}hnsA7D^1HvRMdHA@vZH*#HkWD22@KI@)#@T3@zNPVyB9lCbMf3}M{N?3@B)lw=f za>YbRnPQjols`+ z0#+OU%vm4AA7_1E@wMDo{+q9VM!NqI2!)Y>@&7?RO4^dN|0j;VgkL98u;8pUq6klUS$lce8W<1^x^|KxJVEU4PQEJrJ8g+%(bwXh&K+Gi zZ1H3EELQy2(BX0C@f`9u`B0jd%rF_?#$vL!)K{ukS^{Ad&nK}w>rrPpL9LSIfUpXSpmk$_&3b-VF`Qm&u8KYdVB#V3r|uL5O`EwCy6 zXM1evz>wo+L;NbfJ=XR?(Bt6*f3fvOLPkf3cKPvu%O7Q9FG?b9w*=WR8%SK9YY-c)^oiL{zy%FN>D{xB`c@fD$LSlD8|k2>L_OCi#uG-U&G z`!t#7!ESU=mg`f9y4?|%hYI*bjnk97e!NB6rcti=%LCQ)V;HmA6wjl;7Ptnm><_g` zV)}%oKFn0v2`Cr)-qtwi?!mLL}R>_mMW-4jGi|r6<&BnMY#| zR=A+ZkeO)df~E-kJT9DgzZamaGZMZ{HX45sd!wrq5SEdvH~@LKE|4OzPucfK2ZG97 zcze#Go$<);ti~UQD)*8r?NjnYaVFk`|DL?d&E$N< z*YBG+|~T+VMd$@|&A?%o>`;*Wfg0bHX=o*=zG^U_JeP+ym5D zwXC46#rB^k2tK1h5|XDS`+Fx1>@{K|A%}p}HoE8GVWzFXui?Tma6~vEKZ- zhEAA!=89I5!W+Vfe|*LzA8Oc+K1Jgv2$4a>Ba>FM!+{d%WTEh5Gs|K~TdNkh=o~`B z4X|?c3!)g<{E_k{9tg*A5@$UuCPXfhIhN5LWZ+{oo$`3x{3a*|YjGCe`Wk~Xpl?tD z4gwR{`wPjVgGZ^!T9{6{U|J8Oh1$4FO_0?fJZ8$Pi!|0Um7q09z^2A2;l}eqtZ`h8 zztxX(jlbFdbAt89xv%|QiwN{Hg`$JCQ|0ht)Ydg1MHLK7eF2~rGzdl0=^{vD21=+{ zG6hsJK&6HueSeJ5m24rz;;-pIqK~EeSz-Hshd;#6%nNXThHU$YeQ{msjy_HEjQ}O2 zlz17Yj4@hho07XP1Nop5PmSqz51i@G2l$R*YQ)QVnLK2OJn8_Zh%xbYW!l_J*eEp` z%XL5~I>@TrymgCMATroe;Ge>1RMH){=mdL`^ptZm3>)f@V81rOMoP#=F($HYS|LDo zl7qi~2Ap^SLJp5An&$v+`DO7thdvEKQtZ1&W%bZH^!vat9@>A++CY?hHlrFeFkBsX zkCmXi+19A@?W4^^N`gs(Ff>m^zCHjtBFE3KIdg<;KqE}KgWs@3Vx0Fd*6%DWjp2q* zY*0@)T=GnEQUUx6Cq5mC>d|e}0to&@MMLxkNsh$DKsU*c_bTQ2Ir60_akG@JN0>Jw zJVLontl@FULkq^(0OdWP=VBkz4K04YV0Ml$WW-Rl*qxWe@xvsX5EaFnLXi}#P(x2L zMeEV+>kXL{vmP)I#4Ax?kHv^=j_jgs>DIA*0WMRtt0X0-5TG@5FzAOu(Mjd2D6$ob zwwqXMFe?r!6iDPCm`K*wkg!C}_=jaccT+_QiHYRfcjAmmu;Y(;)UM;-NA#L!PN&V~ z3*{foLWqk~V@wF7_wvhKhu%|p&lSb1PmChKW8|N=Z>TeJ4J zbZFeG@AQPqaFs3RDL4P72>lh_#I+oUmZ|9}n~0DfDv~mDbAi05T#6M6;Yfep^$1I2 z`IFTRPUOPWZk&AVAJ0i7SaN5MAg@V&N$b}JiQvh@jf3|*5cJ5+W`x=? z2=cr6EN?RbY7)Ps0TkRN@5*uh>4Jd=3ngCG-Mxii^C~k!z&Y1LOXwFK;dGkg1mt<< z5Ho#+!?j{E?Px9!{C)3~VE&Z?cM5NmY=q*4oM&`q`~=!)(G#~)H9K0H4ZHK)YUG}$ zvu(5`($ngho@VtL6<=`~@?DQ)F=S8q^Z-R~Bf}hcKIVF$`AK7fIJ*!8bBXH6KPWm7 zQ^DYGfPa(y`-+hm<^q}E1j>2#4y>zhL#~;u1_)tO`0bWogMA$_IlrcSJB@z21YqXA z`l$m>?VnVGrz0+?@0rD!f$wFUh}eO)l*;im?#H&m2?Maai2>RpX^|8cq+b{@gq%fJ zcnc$6JD8D*Eq>@Gi(!`?L(Nu8{=&Sqrin&t_?`?)sqnj%;7Fvl2eIHQpBm#-tF{Kj zxP>!!f1<~r2t%nhe+`+VicnPhFvvW2DcZE1b+^wEtkYAvJd;({2crHe^W!TEDV@<2 zgR*Nhy3*F-15x;8`kOp}gLr{_k~|di^ZlPEWS$Cr`CwqXJtK64TJpf7P!K^$0V|Wb zG95itFv`I?V#0v_rm0(0VX@8bO0|ag!w}_!R`@MMe1!1Yvb3RwL_bTZner4?9tw`S z@G@1$bNF#+Gna`z8TZ>6_MDKO;$yh;N-Z1JY)?2iCJ_Svi!CaxD(tD5o8P@fF= zRYwOh(28S5KBJ$jHH=>otpO810?mTvz7aZw=n8dL_iT6yGiGtYG!7Tq7V2B-Jn8$%6x-W}VUsI2nIwJ_Ew`6Zvr9?gR zUefOMgs5I1{#w5Oi@u;BlJ+iqwXf-yUql6Uw0zJDiZL;s&AoM@=yFTobFMO-cF#kwFM{PPMXU&HsmTBTaiiEh&uFb)?do?gQK zQhI1@GTj!+g!nb2G(3Ech>qDyfBKg@1DoJ`jlKBJwI&=hpVZ|WooJ*Sp6MvJwK|>J zlc>&iYP`w8Y$rWB->wvOrzZXPCsr-VW=N-d6&6?3B| zT%25-I(j8};-0hiFJIOEakfVNyE+H@sH1 zQsxmrr6_YCIXE12K2ZW(KL;R$f;fA6qdcTLFF*=%Rv*P`5_O&LI0wzk`xpOCWb-f$O7Q{i2_N?A8^Qt@lk;01%$FE z1)L!36u)uF1AHp^0kI9MdUE9ga`=g@1A)Sja^?Z(VU`(X`3cvfY=w$Ow@8CAR`-7a z?Dgrv(7V%Bs`-t0LQn*V4FfZc0HPJa?rz0H0m{wN;#lT0TD_N z&k>!DY&x=V0cas%CM=>D5(>m68T5kzqoIPoV{WN(0boPGgMi%l%LNR6g6=ZxV)Oyi z#4$+{uDt$J0~E_g8+YO=wX&FPRpfBqy&%u!xc^F$%7*Y`D2EPOK=9oPbCf-VX)^`k z%p_lZ#egcl6Jj#^4)K&`!bm)647X!ZwL7lDGLi-Shy zGP4?|i^F@bU_TB+)R_J-I7Xxcg}}QDKQse>6@qG#3K8v7po7Ld88|32Z~eADG)B^Z(Ab7*LTM=!B1iE#AYHbc_4;;KbnBNKK~h?yDqpx zeMA5*x2XV^SIv~nR9t>*L3(u9BQW8Q&Jssd6jzLcG8&)Qs0Va~P4_pR$qx_!7S^ur{o%ffyNZc3hJydPbMV#CrC9UYkbBW zAkI8+Tn?IpaXv{Gye%N~8}>DTyt^(UrS#?`8B}coCqU>4L%B^DKk0IIzdKqEfgD(p{_bdO;>*8<8!j;hz(Y!L| z(ceH8$~agmRk`$3-mgb|RDyJFF+$3SZt4gg1S3^BKZ&?YJQ8%21F$u0RKn2Ru!V9Z zpd${s_A;P5KVt<0fdIvv8VtSPpPXsYtCKxWHQggXy~l`YFx7Fmvq;`s$~nQ??rv(>?^ zG$OSz0Dy<*83&rmZ6kLn*6kU^y10g(oN$GD1zWWymLS)w`DfN~R zz>9j>r(0CaPcI5~vL{JY8>pT;C!jSfyPn($r*k89|G3r~<}9DJ6)#62oHM=-@>SygZI6&ny`c zi|9+9UfJ+pj%uJ1$+57%2s@o;Kw@RFxyfvGaalnTxtxt1Ob~2#0`BbWN#x?>U6D1H z&ZE<#9gpVTOQ=}->WP@#D!3HXs;JbT-y>{AlnyPkvQFXtFP&RMnyk#`a^!p>IK1fW z27KlG`0%T=XV-T}?>9#|^QnKJG^t)$6hWVAQ3zzeG2OBe*-JPMCLQcd8b%RF>K#67wofi-oK-FJqsxCpUt+|J3uP~SfXHU2n zJ0;pBvaSTRW$+7SBa~QBL>Ym2O_`Ucb^}JoCPW`*a1Y)G9}pc-q&#N)y+e>PwN6e! z<&4PXu%~hR>}3@uycA7CNZuO{t*f z>NJ5|Q-(>p%xQfhC*EWo=!AGVgl_n@7_X2101e4gyK08qS62fv?a$w61Jjuiq){-L zhci5&0yzAm1pUVfZw0eqA(&lUfyOB1GoD(tG7knx9KQXL%AY6(@|F+JLEYAk)6`UL zeisGwaKSXCyDG>G&*7{xndPz)kS}Of4nXCn3?R#p97fdwFbf8d!B~%+)_jLHf@IA)gWKxa7MQ2#-`tjk0H5ZRjlmvl+Q&pz}C{mp1i+ zlLrKXeqf|LgY!yPHX~H72Ea5zUWlvM1qDteJ8Ai;rFniMup1h?8ab6E=TT7)@DW6F zRg|NkALKF2S-fLjnbK}^g~@Uj{y-$0KbhqtUFnjrTB}7eE_%rACx^LRPSBAS1kr%P z=c1nUIE}=kp|oxd;@QWsf>U%Sg5YIDn@Th7z5H65cb``^a1oKgtkQlpm5@mJX z5VzLNW^DqC-K%EvzqoY<|= zBcBa?c(S9>ALiW{a-7xFLorB=&&a~k*Ljjc)Oju%S|#XufGCI9IjvKcA|L@1l&=I1 zfEOK&h%k3rp|X168g=@hS4XW9%Oebnfxt+GLFnlz4p0_)xR|BAD=J$ZFIYW2Ts9l@0PTyQUGgg>p34fX;Uqs&G;s9S zwDN%z?I;t=wY|j>HpmcFW=j56e;a)#5UpP+dZpma< zKf760MRhG*$%Z;m32<~}py#|UcT7@Om`PCp;TEE=A(Oli*Q?~y>*V~-&b*_1%ig}+xi|K|35jLU=oj$S+CpfQ?rHjsBixE)C&` z@x{`JQ(bwBQsy>fi>QJL(uFdh)|i;?1>zs}=gUa3b*!V#+X1omqmq!K+V$Muv?uJ8nGGBX4C+SxkJJYAZZB@oOUh&2Um#(z(yY<(n{eMn> zk~~|pX0~ynRVVL;)0sslUHo-pRUQiO*4O8Uz2@<#X-h>FIroasUO!JAdeo>zA9y#1 za~Ge#X#R?xPmqjZgewD;YDWu!imXDt3)pfbRN`U5Kaf%mn$N7oWH3l7vCb_7#y=6( zxB%V$L#;|pKcceaCZhD-m@KMwEDyiM>(L-5Ey{^^p`dR)wyH%LLhxs3H32l#=60j! zVCU)K)oC%+3Y7us-uj`g@!cePeh6KrEv>w(z|G#a)QO!-A}}?$&IVsMm$t)a-*nj&vhQ-N&r~ADj zv(u%`OrJh~R?+NPNy)&A5kR%eYiB!)V za4|jVz=~ven6~pNMog^wK~|zO25kg5@s2gy+DoQFcf0rU?7ivPl6%!{^8weE*as_; zrs5#oOZDb_vEw;=r~R2CO#AV0x+*?U+sp0w{@I^ll8wN&nF@61Cc3a$WGsmIcSE0? zPGdA1gU!x`46OZC28LssjO+a*lljKqMHV4JI-9^wFyvmGzYo7LF`$z8*C-2n@#O(# zE0hlC^ziJ{fa}8N6f)o+WI(+OCFEfY&#SHXunpVRN!0dd_ccEIx_IEBR7WDyzq@pX zKd$oMhc(|{s=cm1EEs1021Re1TRx6EUDZ0Ch+<&9@T_xmeS3r&az1Bgf7)I)QO7qJ zX>U_S8!`;6b)34|-TPl{t#vM8rze*IwNb15jq7t8sOU<){m-E%Ri0X@$UIvtc6v)~ zSuRDMTBRDX9~M{ekXZ9Iu;m2ZAn z>03=@x2d3Eyow9=epa=8J%1d0l#=;!e!1OQ_{eQD8Hu)N?LQ{0?0HbGq_R}n8VnPW zR3);KWVg`T%J@ob$H?N{W}#oo9M{A^xn}!l0R<>*P!A1wz;zSE`PIm zOksda+zyUo-saZud_w@Frk-4Zh87~OeG+~E%G2O~_V=Ir6L3DTTUNRrJ3^nFuENgG zj9}2=`KfV+lj-X4X5`ec`GTIV3fZ~Wh7=m>lFtyLoJFNtv%@T0V=GU>PoMg>*lbri zX{SPdJ=|6L0xJe|?#}SK{!1Q2%~62fZ{WC=J&f89G0R!pS)S8*Lnqey2Bf;C3nTo zQs|siP|+3DBW3rTzP=l3FOE*|n$$*1XwkY`=woVRqRKvaBAp`hY#43cj<>XIC&z<{ zHbo`ee4&8|qg&M?Q7I}l>YdQ$kJmQx#iQ@TL|swkQ`r)$ zTD#6({6v8QoLDjGVUEZOa`+AIDrYRaDxK_E&9pz4iN*^rBXRTi(-Cm;?`b1Q8=aWd zHgb#AxllW2JLRKTNx7DXkM7rDOG^ohDm5-~gI`5|U1I?6U3&;qANZwpVxnKxV=y^D zzk4>hdzm4Jdv-JT;nICCTb}n2;@e{}qdSDSpNx^;<$-P zq`sHyxFXS=;l^-j*a>LQowFN-*p0=PmoqnZHl@%dgyeGetjL=#Hwq7zH=o+;b(go= z$KwX^n@3lm;MSXqC%20ezqaII9jR2b>oM}(uIJM(dN0YEw%{wmCcsjlu%`fLp-{6G zOF1jKH3~Iy9qcZP5q?-z{m<+8NQv#7_HroeqtVVk(q>Qk^oOnbEba7$Nd#9NSGWk} z@10S2-7F@r8v0|J=05v*sibx55swB-V+!dwY4n5Dji61_V&%+?9(c5`rJKdCC|5N8 z=MV3Ekl-Ip0Gr|AXHK`}fmc8c#LBAx^!Kk|yp0`Hv$k%`)~0RRxvjdvCxCQ#l$##T zWKVjbs0MJ-)XAi-=*4y)PGzYL4^9+oz>$69$a1*6;}HJ*Z#ZFGKAZYU>ta@baK4!G z|6KPq&9rj*@ezb5_=Xn15oq2Uzf{5U5$pz*_X^8{$9?oZf81H+({WgCiV%bDk_S0y0L-*oe0y zOFM;T&~#%lMx1V))5JgU^+#|N|9=FSk%9StQZ>rR#Lo7AVt}V{CT)n@?{aES4`%pb zcHsMN3Hgu+TBVQC4)xYobQl0lXg)slQ7d0hZN#fnE^%SFO5Xmepk7EzEWU_KGyEtj z&MDrC4>5K7WPaZ}zd!7Jq6pt_%jn9wkMMI63Vt74?Z_%{P#4p`xh5_2a^WW>F}Qww zma-q=e|gcZaPd>VOxz!!d>$iu2j!du%G`>oKjzl{q5bq zO)iy3^+Yw%0d&B*TQWlbE4N!Zs{X{bPmK#?sgv(z8iKvDG~>wk!ON3UIUklp4UzAJ({>(i@JgR^D3`+Gh;%63 z%i7*z#9d)^G4f04NI5d$u-V@YyXJxG;YtY{hfD@4d}OejOK6#qPRv#Zyp&CCQ$C!Z z!%&Pw1HSz?I*s_Gy~Sh>%zEWwLva?IdT0cr z19+4T<}l<)cC#PoUK(&4QO&}adj}`IVSb2y3n-Nt{qah7*{(?ZFYqmHFuJTV+Zh>+?(9@cHDpbcl}frw~6cc=!FQ{?9ET7WMt3EP9s!9Aif0zlu1x#NX*#u>6l z4{zL-HgJaU;lpQ@_8IuM4<#q?1Ea=9$Yb9&-M)?91k+q|?y;6br7lg)owkTU;W=zT zuF1U=oPiA4jGS6zda9Y=@$sSBR9hR|`SYMVakuM9t2+aJ7ozCv zF4NI2sTIvcH*1IABc9ZooZ<(t$z^==C(m|*Sk7+SxlMPH6Ol-#bNwoUnnu{PTX>K( zs}%?Hg|TFD-Nx;M>tBcuw=QJGvt(O9yH-Ozl~ZLSdbbXVATH8N)Z>U6Q2~`DCvzF^ zsoEQ(ldjlOIO;&bs8G$C$zok{$SoBp-RX_wMdP(^%m>W zd7e<{6=qi8d=eHe|8(%`$TcWoh6rz^<0KKigkTJ-;T=95MDIhSVVpV~+=f>Od(BYt z`^?23FHJ7s-!x6>myXiRfKZs5po3yIeeD3IUU4Jqje5(_gFq5w} zCsmpFU;Uj}-se+0Ic{`WqrD0BKWKKfOd})Q(0AKO%EgMRnvp_hK#6IJ6Mdjc3=FF+ z4(q{;jx$&7aFJ4;3{Mx={h}f+y9n!&xwBuc*CqXa;AG_dETOGuv)4d~9 z1xHM7-w~!DU%e3Kd*$pU%{4&h3%tP4r16yjsX`-LiG3zpvwkFdDqmKDf6cKEsZQC{ zjl=QkGFr1n+82b8mt*kD0o5*azTV=-T+9fv^jHDR|89XtQ%27cr}=qT=%%? z#7$4#=hV5f@qU_g>$KvuJdBR_^HW>~NjN6fEyKN-=GUo17YRB~SC-0}$acMxJ9LJy z+JKAHHe59Rg-qzvm)b>Iw-iL}Y-O^Jz8?f|nH*iu*=_KsHpBj=K|Jj# zqc;|p<|oz?zw_(i;q~S`$T~{>_SO*8j?~X6$b<3haU!G^KOy*$q$TN_n$pLG?g=p& z6HTBI9JKL^!+o{-^b_jYDnq?Xn5j@`;X&dK>$eyPAl~n6K!nBHBr>G5oYRI9<)wpP z6whrSWS@uso%-)L`jaGW29w+*QBbNVfg0L51(`prbW4EPZGm6BK^P4iHXgYD3nQ^pp3gffl~ZYq#Pc;u83m?qPX^ zOqJ?9zJ7A2q5PJ&zgi9SNQA=&4aO!{&{14w)ls?)svO@$?1iZLm3G#@ z+}L>%vcS6tulFGX*?fhkYQfv`G`esU?U%ra4pFz_|I~K>Ie08q3~;3OZZZpFTg<6y zF=VvBh_%BCAO@>dwtopa=^7LSr>%lJo?n_ut+70>uTZb{_liO22TJrkX>JhcJ#kc!jp zWwXE2kT}Ar6xjfbY+v?O9WN`Mb660fuhd7mY3CK} z=0dN`pZBXAgXiLw2lA@N9;#y4WaKWcG#@8-F0KGiiM+IXSK{s;WR&4gIaS~vaNM%s z)v#TNn&l07IB`aTNk0^Nxtsyn-N`M}3SOm4G-c0{HS4^!=Yv>fPthgBddYmD&V(2N z;oajx?Imq`cjUnnqiJqd=|d=lbk{TJc#k-E3H%5u;gnD~Rx5oD;45Jri89ynzp{2r z5?v7qVcYoyzmB9IYbs8flC_kR^m(*J9Np6HIS@EV5!*ev|0O8TLCN@i%2hO5f@rsI zc^X@{eO`LtNHM80o|8p{68&nMH$?4cj3B(%?Q=PcRGU0;=FtUPuspvzo%B*Jt~-;9 zmIDk7-nz*JdGNdDN|hapsXj$=mNZz1;NW%0FcCp|-CGk(+FNPiYOGgc*Mh-u%G=4- z+F2to6gw^$p!ecUAXPSvv@>oGaTr3gIhjwebx*P#{T(Y?SQo9QbzK>Pa5TNISsSvX zZdnlxu>T=SU%#-BT-tfuxQqwKE-68U7pL1o`k=#t=!=hcCt!(Q$9vlbv6*+v94F%o z!7c2osNY;&VOT--Y1{>A;}k}|>kG1a*o({4Jo)oVqUG_BPF@vrtX-i3vtN{|4LZ3+)Q$$%4m3$D+(!}m< zMM*^^*D&IqNB#rpNg!RN3HW!IU`ST#K3Ogz$rI2T>9}EGd|680hL1M$-)a zydjZH8Q%W81yTR|I4X#8uWsL$IzM?upE91fjDn6Fq-ChcIb< z8Gq0D*2pNVUiz@L!h9gy+>Z*g`oZm`8pwGsqUOEyvp&4g`rO>S*|5pw{q%z?x6zXW zL!0QeV40w^6~C=5Hx|7&*Df-5g|>Q^!*F7n$W=Dc%O`S+u@M`6PUg+Dwhd@)Hpj(GAQUgt>AM0EG6olN4r27MAJ22Y z5Xe<;cK<`d$ISFUN%)u;|9irBsrmnLUhg>gP((!Sz+s#j2%u+V?l$1?xjIU`>;4z% zbq9%rIkL@3#*zS7v`~IkLpuO5mL4zlv_(QD;cMYQ-+>JZzhqgjw8uNA`@K(A7tHeU z;Wb)PyBF&8B=?=aMiDCxDZaZa>FLl#K~d7f`c%)W5MhI^>=rBcq&K zLm=$?K=S+JWB%du_~+*OH>Pj4XUnjKmk;Mf(MUU1-uKt1*Yne>$_*^ZKVa9;k|SHV z^2%!;zZxP_|t{Wfg@S$t6Sz3ryX+mY9?o_O}bf%F}dFD7~D26Wj(( z6`xgIiEH7E^f^*nJ1c?Rragai`QdGL<~y_k0vgKIs4x|f*2|kW@4wq})dAYm17t0> zpe@iN3VUpZm9(l>CRQfH^lddn9a69AOQRcFr)?idmIalUAvP%oUkIKNk5NbNN$++{ zsX=RKru;);vq_CYfd!B#Xzpw@LpGOxFP3yTO-)>eLO-x{C~4X};Ix<^99}drEFnMb zl&DvC=(I^kZibvwOxq!u_gT7iq~WX1Xb-lS;3_tWu_Sp}VKQJfVaGI0MAd{U4_n~f z)Jf;cIp26Olex-mZ>t@XCg8`e!~?ToO<{iM)tOQgE78t2%j^iV)@h^Dnq*ERAh2rs z3ZF{7p%-0$&WGSyA+m0M#G&8rK(j&`E$9Sf!F&c4fw5)lBqypKpx48mD0@m*!X;RDg_U+@#`<_xpZ5Qb3QU zgE&V;)(gd7P`nl8`6K(nf@t9%hJGo6Y2Z5ZD{$9#Dc7Y`MLsZ-t;RzuZA?aq~T4_4sWl9iq(cX@r6n(1gTzJz} zxC^<6XD;KUBew5}o~&{(>LFUtPCF6tKdL@#1Gx`8wQG@*+Wukac)={Dr01cj|GFxw z7eT)hC`j!%u(ud1W*ua}{JRw7Y*E5@MGWBmlU@gC<&8UaB#1;#>f72UprcdLwa29d z6sDKqExZaqMG3ZbI8gCi4IOD59W2{;W1go`fP@5)UI_@`zF+O3utFkDnyMZ<$g9#^ z6{kP@Sze&Wru&M$Ku~&_9WXZ7Kr%o-E`O}TI^AjFe9Tyi8^Hmc3MU=lhrQ%8N(0xm50voUkza;%*TX5%O<5*I3 zD0$f0Vl_?KL-V!S1)PugIYgz;>B*hEo^*qew0LQWdk9Wz!6zWrXUJbGJIZaj++=e$ zs7DSxR#Vgd1uwiUlm!bm-}R~cd5E*OQ>?`oY?JfuQ%F=vS#?(|?>dyl&g??!U6pH1`?7F*8^8w@B`;Hn94)0oKWw=`IC2 zt+p4L#`&vOkU>&O71~rIZT!eSUFpVSO2;*40$%<$Y!9ZhPNpw&@3mniqvU4yvdHl- zzVu2(b_hu&JDu1lsg~Q#IkbB7%idXWiP@pWJ0cp;!Hj%xbvAJ+Ep!>GkzEgAh-1-( zNF#(cK_JkD*^C+Ru0Sr@st4~N7j?obY>6gv+kI|!F6cSQzo*@t%sb;Luq_VTVXP6i zkX3}Ac$VV66IjX>7tg7sw82tKI6K74{6nGjqT*U0_s|A@zYTG&<$fbe%-M`z%ZW)Z z;UFg>_tAz!Z^=lXOd~6yZQ}(Ac94YvYb5vQ6W7mCu19>ISxPElRA19zmE4mS3$aFQHL+r5JuXEtX@L;KDI( z#e}EK%jliMi1NEFlsO65$XyuD^!wy&$W0Ok1HLt%Du^G7-Agz)P(sP-Ziq5CP-S48=bEs9lNxs$)xN&OLsmJcknvopWp%X$-#YY+X;{s` z<$vcn-aa?K)NEoA4>|R6QfpS6eXD$C;5eUK$et$>zW>h~1ZEtFKdC#=!aWX1Pgb@= zzKHMD2CW_VGapgV=d-(v{l%^uM|C*6Jy&dW7~0TrweM+>e>w~Dcj=7c;*2uk+AYGd zZvVZXm2f6k>e|TO-13VRf#>1NSTG7aPdaK5!wthKx|&-yi7ZrpPycvryHsc8`w%?I zB#z#7y=f2rwpn#4yBGIKHKDsRVEVXxWs*64`b38JR7b}jgG6)B7V;)v>*n$aqKf{_ z1V#@|#a6o*A|Z>fF$t^MJpc2R{u@+2`xyN{1vme{g698w%`!71>wnWgJk*k^CFVxl zx~Hzs(im7dY(X*c2NS=bn}Dz5NS9u*i>Jf>;%gpXr0dv>Wp+dm5)xBLh`Fpu?Rl%% zIKCSf(J_8gLPtQqE`YkddpsVeNB`kQr23ZT*8C1)y}G*}R4482I2_}r^KJWZdfiMN zxBb?q|1Uhn;W)LN1gMN%D*bfNR#78C@zN=;`03V7mv-cHkN2xm2AoyB1aq;R<&O4# zQ4o(<@$@tce@SZ9HfT4?4r?mkyH_rc?mjChM+)EZE1&nQtsCvMiry`ko>c5()aWp%*Zp|Ft<>;eS>c|ikW|K6FF-^o|VScZt(iuRP_ z{i1(MjrQ`z;V)xvXgc^WS~2kVFMPG2%33dP6-G~m274NZiDL6H1o_sjKQ&V=XgC=l zME}ew;c=8u@mwoy3b9;aooK7i9RIL*CxiyHH|3uV?fsr%qHu5fRPiJah)k`V1DNaC zRwV|A9zJs?sY{<*97jA}FL#>i_CuCHEN}faXuRTmDhLxbcT~1WG=g?YNC#lj9|BXN zFs%3o;4aRGG!EOgf0^R9a)hvaIuOYVMn1gj=7|EEyE3UA5%zpDfzyE#BshtUp!#?p zj9oj*Ir^IFebMJ<+WSCm-YgS46)LO~r5=tzJzx*BJ~@1jP@bpW5yyGE(d!ynxWj^b@CebO$8s;=4b96De#0K;?iz(V z^aF?)#FhAP zi6&LfgKSKV&GG#>hW$~z#?(6Oll%v=!4i~Zp-^M&2D17Q-_HaUmvP14!RM|^Lo?(IZ^!}$;boa^(ku@HtJ0XnYmA6 z4w^YBo8(8kfh)R7iKZ=nQG*oXn@j_*)=??-R2!c{g`@8P$OuopLuVLnw>7(!A-M~= z8k|e01XFJYN9B1!I~saL$(>Z-BAb(ZK+F6ePO!X!k)$Lw)?#Z2kQW(4^3sAl{$+zM zrZNoZXIvbw(YTI#q=N_8Z3Z}GwWa2Bt_ep!AuA+~hQ_x$y8G)m(;;@@la+*vK~L82 zm`*C(Iodjm9eRQ!#W8ft884o>SA`CZ=R-vM%zmn0b)TV-;Ozww-s{f{S-&cwGluw2 zXSfi3cad~KHtY$gJ5cPN2zkr%t{Ne*gB_7BZ)Q)Q?nP?LUZ*F6uc74|mhV1I7Z`NY zB>No)t#7yLPzErX9BI!JcGdM?l^I^WKp#I?^i}Tu>JzFK??0jSHHwmO7(G6svWJeY zX6=IIeQmdNr=jK0dwxSRn}l+6%+Bk`1bKJ8E(rD zejkUMTX!-l!ZIDu+S8F}1kfcf{qTtL8Xwt&BS@AHL9NudsU2~xpDPX$AF|uNBLt=@ z=^^YRD|GMw#lFuiDy|BT%Bq1?SRZ^7%|;NxFLO_t=rOL?RBvMXT1x{*x2$ZMhZCMrd&*Govk0l>%9gN_lc3J57o zX?uO@CW;e4IJpP)UAA!Q$3k%&P!iM`$pUB>=eKoe&#TWJZw4L}zGs2Yb{;d`o?swU zX~P`hLIo9W>$nM7S}qFoIlFyn7r;X@Kj6hr)NvF?$fstwpsx}p8}z*))EGOCb6ly_ z`!k%*q+zwTE!kN53#rX~JVYDd+&RYqAlY+9-0>3Ht|1$UDp@gLp;p4fqfZgYlw}WJ zboV#{MZd1tGKxlpV@zWA)Jer6NFIUx>Bth5Ma@8CgU#5ap(*tZP%(QF8Bk)~28DgC zW{aWAOB0?*`#2!4g%jvT#AV$o(?Y4c7FkF#9|l()-gmqkMX|Sok!$4pr+_UL?Y~PZ zl)*sxmsBL2jo*ldD;NVUS0ilO=8DvRe%TJXf~s_wQbXYuVb}`(38G1Cx^rLh2Bobs z4Vq9$u2NO0H?a|<+-R6CadV!=mEm8oTvJI^aN|1q{!>bo$GHN9Y2kS`fBE!U5%~Qu zJ*{+!WOCM=tYDvPWu_6_(zJvU0=*aUSn8%4MhMi^?T|SIFwz^f^3i;INaCrO<6)Sv37#` zME004)>@Ta2zxd}v^(SrxKyVkYh$GB1d}@ZF7F7Oa$nu*Z-lhbWrxz84|mO0S)#<~ z#!r_cAZjPh1oWmP9-mgqyr^cn+| zW=%k#I!{ENfbg<iQ}yF0cOyN zg=jzo%e0A;ZA5SERRZE}c=~mSlU+=V-t>#dJeN(samYU_yRS8%)!?gtJh>*qyrmYqZSO zW4P<|90>_TTN;}jH@A#6`$Oxj=EA*e6z=~xY)b8r8-ws z20K8|l;YN>1XkeBje4jo+`B`z*_i+f;-E!QsJ9#75)J#RDkM7lCF(NcADtoqHOC_z z^$gq`B>up*b@HGWM8P*K%RKDp3C;EIf(fZJa>eeCxzgG?rEu<)PtZWCXx6h)dnbXj z`0>46L}1en=FizTId~r*91&75sr7PQ^=-r_K_KWt1ft+!6-rB?gNtKo$`uGQ(+AY88zLNK`elvwr{(fSCf7XjSa!wCa>XYKrKo^W=lguA5U zRQMjoXhatOc4B`AlN0sW(nw99_vzFC;MfMj*ke}MV4q(GQ&So^EwI^LUh8YI``u)DSO^0hNEbvk>o9SdCn!CPGO$r!c2&H=dJsN*JMz&3%|9bsP`9( z9(%EkH~sZDID!t=>>!$!$VeiPGM&H>2K-C0l2vWC;aHlJCSsZpjE5m)bX?tRz;d$M zA0aD$mOyn~$?JM2(#h&RrQa68GWE%ZTUb%5{JA4i4bVpt3aO`R{pzQ0$&dbw1K~TQ zO#8r>@cd(GGiAvbCsG|km01ktNWrV@ayhQ}JmyS+gr0oEllkKZSX>kx$)#8>6YGa` zF}1|fqH68gMR~gy?7tb_4$Y$3gMwV2d;IXYF5>@?ov{3m6xvxi{tsmt9ZpAMPKT#Q z>ahz(s9nBBlwTs^5pgYZZV7Ppqnc*JE6xwk!NkbNl^_*c)K3p!Mg^f1JUji#>Ebx) z9G{m1vJ2nCvLU%qE(7iJ&)c%!cju@0-!i#0_L}4KwPv|{;nYIW-?v}e(@9jajFRQCOJAiN@4g?0zP_Ibu?AFdl;L>*VN$3kQA%GK-$U2j6W(h9@C*Z249^9$ws%C=HpDido zqh8dAD4p2AD@FXcrh90`RvMy;{1Ymn` ze~K?03$ic@w+Tf@Q^|#id8y>axxgOA6Psz0svJjK;)0h30+o${y*>FgPzGE&&5VC| zoC0Wm{}O2uW*+pEcFt0N1xO@3NH`YYN-9?yv^HLi8tIt>5R0wUusrWs5J};KfzW?L zIaQGUR?7_W9>#z)H#7t`&Z+Og*YYk6SLv+uDXTIZQRZ1ZnK4W+WsrQgnIBoqCpRQ; z$n%&|+FFFMLLn|fXy|s|MzD!OCzmX%K^gonwkq+mH{~7bV9p8n?pT^NiV@iEM$CmH zdI~}V@OgKBV-^Ox{8`^cFAjMG0+?gBcBO6u?>a!CBCY$)>(0l0fdxIA%5f7cfje+*MstVR>G<$vSVODh(v zjhaT4i$ayon;*@KSk#qy^-*LnIX3|L%3;JDF-gm9JkMtlSW4zWArx4?`;Lef@Z zP#DryBtA&L;~?z4{74P%e3r)mZ#^MuRnQOK{FZ0~DaWQ&oTDwh8Gd#gmQ0uapB`VM zRC^jM=QcT9fPmOge^(ACdj`M^Wi)Vs|zn z`d$ReqkY@1MfOWB8eY<$D50f;OXipJx#FMCw}J}JT|AYQ!#iQwV*_>Atl(A zl2(%*67+Ji!^2$vIRr~tqV@1)j^DM0h5K0k=Wi-c{3J3f3>+y zvypz*Dl%$|M(m9g&x-%Z2jnHn(In1F_R_YHFgTiyNdImGZ0fpik(^`RZ(Gq`CeC!~ zt*C`Xyy@)aHo+mn+l@lh0z*tFnfJPEDx`5ZOForPwsjB=(*L z!|w_0lPGu2^f1awM$a=z>%YNF{tDSm>3&qScH(RalG3mt?L2N?dInkPWxF_9hnhhq zfVY~Y43~-unKi|F0lgLq@&$Q+(=LT6)O>>*rpO~-qx1>^h-p@R$^;Z%`-?MAxD66p zjk7Bj94`#e3Bo%5dnU;8yR{lyid#x0-@nq(mkvbPFYsGlzB@Sv%v8F=X=h5jnz{!- z?3+_Xp`BCk9z`bMX_2pa=oRYNfE!HV3U}6Y9R)P#mFwdpW6}Rv3z25DA4+a&J#nOu zm!1HIb(Ir{5~t)+#B2%`EGm}C67-Dw^-d}Z@Dh}bWd*Eelv*ElqOEjF%!!+jh0p4C z?I$5xyXjg8AcR}oMLfnDqga;Zp$}^5*nVP37@apuDAn9rm~g~cjH_UYYNnc_H4))V zb0k7XVFo#LvjRN|GFFxrjg=uNIdhkLe5%e0Rj~i^D;3*Dbnpgh%s}XMo8U{a>=MP9 zQXU2tm%?f(r!eD;3lr2nSt*6X*8pf6hBxkOHT;RfR3|F-q$W|QoKH|(A)&-FTLVqz zgaHerZ1?x7RK7~{A}GedK1-JzDMHz=mE!#o&V4V=sc*Z*aeBCk%sxyZk-AlQU{)xv zEEfAWo7ZdT8u&*>M;FT{lIH>vsolzvfVw+o01&LVep>#~DM4y=1VU*6GK%6o^|rr~ zED<@IMij2A4$-$kzZF-1_vY7Krilyy$DFER@}Xr{eWyAiHF|r@c^VtbAUc(1C^MsZ zY%T|JWL;YXb++qrr%$bD70Z6zXU#E)`q&9Gjz(fIq%4qvsjdMk*YZ11jJ69VEY1~c zdm^a{Q-+V+U3AE-k664DSAyro7j1{C{3u^#5Bm*@pyVS#EeVC~7M4tEOjEE_79V1T z_gOC!rQoCFLzYuVFElXGsh&(FEm7WXgWmP^s-u+=^JXw@x%w z*Cw3Rbt-v1tiHY@VanG#yNpqnwOAGPw7(~`4&Bu$VI{Mq_lnGVTXQHJ>93MfVeIPE zPIzL64(Xnf=XUS9;`Ek9N8{535LN1T`C}#gqoWP&-fkiv?@GaH{v6MtS=P0)Z!wZ< z1`MRhOmI8UU5pY9k#8v=xB@!w94|;8(H_J$6_1x*IE5D)-QojQ&GGgS#4S~Y^e8Uyv-ADwyYO)1Li*o3A3}%gaJHHX&U?Gtv-9nh65W>j zV8jd7G7Sug4}YX;8t(a|x>JUuzX;+!;q!IUk7TA0@}(UoB9uII9yjT&5N<_)BuLW_ zA}s=`tq9xs>Moiq_@D-oZ2F)EJq@Q8y-9g1p`&}`VA*!TdOJv~TY>zxI}FQ?WUEZ6 zKbi|VS{7jVoXpk78~j(z9!PNp9-bl%*F=s}KgBT^6lkCDEFcE=V83j1{cldIeR?sD zZm@ls$exc*#BE?EJg|^oAWYefVm!c76sA_xWKf~Q1)q08?NExF(QVXbf?-un(|R*p z3t*IlSSXFa(Lre%w|pVzrZhpIwTADeWM%FI7)3MdKe58Pq5*lcOL}7^P^)zXEl8h; zBB)g#bkcB*6zB_Qd5pjk8G%PsXW*V?L-qf8Z$!Tt@W?^D{TQ3{z^H!vODGgI4N1oz zn-@y2zbTDftC*ESnsm$40!CR6rxEl!nM3N|M;x`b}z1{ zy7`qkXN&Hgign1(QiM8pEw9okV`V)(5Yxjsc@y-y=aL;qtbId;NrCs%Jfs6m1i17g zLv!Aa9tBnqXCxm<>?a&{O!r&uoEyu*<(`ckeiOu@s7U=H*{HzcMiwQ-HN5vc+1+dHT@>ao8ko}S1Q zyIxr$WdCkq&0yB%4SS|I%h=cXQauXjaJCYQLK61AQZ25(Zh)|hrK7<`w6An$0$InK z3#r+vmB8Ew*L6$)$7u-Mhcz7@Rf@?y)ZTULb;B8k1AXH|l{8?xbHvw30} zpSoCoOw6&DQntmzos1b!%_2`5r%KmY;qG>u0t>wvE;k0yuj1^3TJu^(E>&_$pLcim zxBN{eR$b4>2>&F@-{zU!C-!XM)zlD@>4HE^?23uW z)VLJm)AVOYRn7x0za7{(-ct}~i)&>uF1N!oF2eD$QYU9UsC~N;7e!ijTCObQ&q|yJ z*5|R|f{Mvu`4*;!r#KsgNxi((vFk)xyJ}!dt#EwGssy_GqH>p2y7Kn9t~DgD#<>nM zGx6FMEq@|fgExA6#V$S!&{RUUZ%nlsE~HvTb!?qK-ZAM@Xql~Z^$(6*BtE`ehf0n@ zBF_LNi^F-A>V|1Z{L4JbKG{a_`g`BtNr1^siCHWYRALG`@iB&l&3ISH=Qg_e2|2T<`kK#Jk46gHMoPMA8^l}>&woxDyspN<5gf9?qsp=on zLvjJ?Sk^Y(pRu;cWXdW+sMm+&e?G@gNO~=SsKkB2JVd_{Ab2L5Y~7lM-d7=UYrSR^ zaGJ;51?MFbbM^x0#+%Th&q1ab26KH@d*iy7`y>D@a}M)Q#nqjho3pprU4tZu1srDb zB`+#FDTvrrsE|D{eaQYO1%?U_F!CLgQ2|1`DOD&AV{;Dr@@=De^#<}z1S*~^kpUBn zD<}KJY5kx!#8n3g{}M6*XCQ0feQV7vPsMrLk@QWxKRpJ$a-gH!Aim{)M8x~3d*EgY z#==RHdJZXpO;c$t_H!cK$eFR;Qvd7|d#9f2>6L!(l$$1h1R{H@jp%89Stru>;X6sb z$Z4VO@8V`On@rvZ4vhHw=FmiXj#k_SAeK&UWd{GG=r{8Uf8lwhB-ELkyQK)WMXvfO zJ=Uq=eX4QeN*st-b70AfGK?FCn9182&8AtK3_4C4ogReJeGbcSx+a|aY$cLY0x~C_ z_ri+H*o(>HhsEyP>zUTlnpr+Qy;AC>)dr&@a&H>slKO1tO6XD3hPiq)bI*K?g=>_r zO;o>(!=&L#C2>l4ZpAQVgpvA-;?-EIn_=;8St9j^IC71$@x8=1)zI686Mf-n~jIX zf9yN7l=#2w8_DmM!Hh`K4fkt2btIKOe)^WQpony7>D^O&*K;d+Dh>B|QZFXwK-+_x z%YbJnH4HT$OhnmT8q9WnKdj2(n|QN8BgJ(yPt#vag2vO2lUG{bxjb`67a} zD>6xGTZd;Hf#DekTOwCIj^qefXcQT6tl%O-tTgV*g^I?x&0+D@j4nUwcpwDv>jN_6}!(`1-Go_aw3 z2B6cmUdCf(+irRbrd%I525TzTr9}0!{pLITL{Zrw#ok#jqcv$w$$Y)evam0QT*uFc zT&1|#pxVbQeqyat>4*oY%bYq(UCR|ohks^GeS!Y`hlnAXSo)5BnNzRE(I@OYE9MLD zimR0N`mYW>wru0z2h=jB^)I|LF0s1&!QB_OTuN#Z(_ogW3wV4kuI}$y*IPb(t}*CZ z9oF}B0(aL5oFC_nSi(H~uRw&pY6G7oBG{+dg?taaNGe*iQxJ)4xxeGheYjEh&p; zCU1v8AAX${0xn8|S05NB+ZenFhWbkoE=|f5pT=#cQn#}%*h>q;@lQBPE5k1~_qAi) zqmHwhWkWlrFu8nVue0E-awo&!TfW`AeFEpqL!D^TvKO)>mo=tPPhl`(6Ki}lOdG%2 z8tq z?ZnrTXCSFz$(3_h3+M(p<16K z@+i}*roo*EDfhu35^o(w!rfQKqg{y|FhzdoEW?`Bs~fBH8P!INtOFwINSFZ~_VHiK zKy6bl`k0_S`<`nJSVmGUmfoX7H7yBJ<>TXh&e3P7wS>4m#_IC~*$o97nvV}`7Wo}Q z%QcvdB#xreg;SS>!?#UtT6lkDLp;OpgtY&`uCbY3)UjOzrkTw4xL8kzs0Igm+dhId zid2(g-aR7FI`*SS1-kt)|Cumb>zowBz4qRG2ScxakY!s+EAuey{$2~zYIOQbu=i3S&UQ$v*dpzD__}9+M^?oi`zY0SXqNW8% zvS1m#B0%Yjb-FRdr)fHGRvz0tOFl2+=7jx#A6cPC9)D77NNN5o`)2Oh&F@Gfd6}S} z(BYOecJP=3?|tXhjbUlAa<6u@VPE=@M?O9u4`J;j^rHxue~{CJTynbCa=VZj2kw(f z{orxl=(!7-%WeHr+VB>Db6q3?7;}~dBUjnL0~hrxbytOnZcY$g z^Uo>y;2ExsHxJd%+Y-lj-C>!C^`g#9-g8n`E}6D#SOOy5pq`L6pHp$9b~4PnE&_y<+Z?fBwd zY^G{{XF}HG#t`ku7*R)^&5n{a>icS7DabWlf%~{ph)($hK>-5ku*?*|TSMO0!A54O zzWYSyR4M?+MQl!%*VdD2`_$M}t%n&QD=@_K?-W3xmHE+nun{34hb`Kwg@3qZs~WZR z>FS{bb%O6<=!zYpIWtI?nkQ=XV1pQ9>3r@E;i-+&c*TC@A9wv4@<+2v(K7kF>wS9- zXSJ(`;dN|P>H84idZg`o$F=ly6|$}4bm{uSs+(5h?Xx!G8g1|w`Rs7`@w`z@{YnKy zu>fqflj}dcV1x{jqu9PwNpYf?R2YR3GDfAzIaxnu=~~5d4=`t-Oe(Pu8l@h^*xbra z|9_~{bp=OOU(qU*`zO;=I}r4}Y556HUfu1<@SHkC^$UgbQ%jE->}R_5HBSpobd+8+ z3UlASp9;JmFKgb{0$|tP&kaht7}f2dATSFh?`#hg)Npo;(k@_y?{8%Cbk&q7vKUo(8XlYfkckv zv5=NZ?hPz(Nf22cgs3b^c|%Z8rf?|4P|tCX!*8KgFy)YXlCh*pj!fk#ym)X!5O@eD zMx=;0OrHcscMukz6z`tFK5z_T4tfi*#mSZrg}tqc{HBfmzs19#q8PebiW7&ZYy@ny zNuZE}8k=xn@YP20AvxE!L>Oskw26b^3>^voQjYA4y{P6rdza@-5Mb^onHS~!CA?h^ zSP0}Hhk!JvKvTVs+a;tCz8Mp)csTKKD8p8t;C~#T2WG+0eg6TkJ?2{9Ci z00stC?Bvm}^G@z2QlDgHT6O{a*8sk(-mvWuEnP)BKvg{UnueodRrU}cMEV?_5KlqI z|Ja!la^)Hn`e1o#-~B+sXV`yxfDv&(sDm}ch=bnKCC<~WZJI*?uCBLkwsb>1;Rv+4 zwprj#N26_&13qx{R6YZHPB|uwUC2{KWj87#YCy`KUUZab@hAAEBy0gJXR!X#Q)uLl zo5RGy#CCDJ{%zk`)K=s37O9ZG@~bzZ%47a15w98a1UCRnuDP_quCZdbF(tlR&_Qj* zUkO04T{Nl`Ft`m(mfS3J5t3mN&(BMO)5eIM zTmb|~gVr7>ungNLaDsXK7|}+NPO%y~DKKk(MP_UM+rX#`^GN}XO&l`+(kN|a=1TZDK!Wei%_M*^eF|J6+y=R_GsnXzLR|wzJb9`>AWgha|A!f~G-y=A&qt^NJKiJT3F3G`JhUJ;5?GNt2vOjl96BgT&rzqQ>PTC$tolM? zF{KyWB;yw!I!5D7w>!9!_6RDSogb%zbtIjg`5_j%y8gx#I0Vuy1l|l9LRy2I1|(X7 zj4m5ydu`~Q$Jj8aEYk-Wo;kDE&Z9-v?lIW*ur~0NCoBK0#Z{-8W!4O4?a^vw+r92& zt|Mx)+I^?+&*^*Q+M}Oq^yvBb7qR@zIy2}K?~5ZjBXy9G%`+V%n1#50Xu%p;_O-(1tq){JCPp9u@J%CXIGL-j_5>$3*F>xuo`*zRW2O+b|F} z-ppxTa!d6YHZ_P^?x7)4?)ri+49bs&GQQ$veBXEcBu~qQ|0x{c{GW6uF>_Sef5ICi#4Tg^xFMTj#AwiNYI+Wh;1@qG4a|73;;R3fn?5SSL*d7 zTIT-k9(9=>Q>Vrhhm)`6K+2uzek-#w=lUfCE0pFdnWy| zW@U`h!qQx)5nD}ZrRJhUX^d|I!v%A%z0oyw!4)BSVn7|;CF{*4^^0gq^l|k_F|Zo- zH1(h$dsR-4@m>GayaiQ9Hny_3iC`hvQ)BF6eluo%r`xLExXe@8*<)2{Zxd8oHjZ01 zp~I*$m%!F?#^aUw;FoaLIcYy`P+Q%JYX*exKj*0PkB-6Q+b`FYXq)krub0^Whp}%A zt}W=cjg1qWBq!#MZJ*e-ZQHg_Y}>YN+qUiG<$G24$9?bqxK*pxUaNOiSIybIy2nJ% z;m=wj)rRjQbNu;`l8!dh;8-xHDKUw#L(cYFlLmMCQQT2?x-CJuZ7Xrm92n?4J8!Fa^^ z7v}9yt1K$WLtg!jd1-CSiBlc&4F>LIUaW!Elwhs)gI1*TBtCm2Nvvh7scc7&QQN)7 zne-!?=J>!qLXM$jvOc~QX1%8V_8Bi5NV9+p76(|Zx0Rsra$`KMEinE`fzVPC-?6Z>C8wi5{yr^SA91rAs!^o4=FHPlPNLZfcZrV^KQV3CL{h ze{8BQ0vV#<)dU!^*VPcSGNmao!|FOkFdwdyRa8Rh<4p3|rornwq)7Oy=Gw*M1M+hD zJWX_Bg}KZI;z{1m=fWO01g?=fFAReK9BH7?)8_gJ4q*V8s7q#oxobbP7HGwi7VU0* zTg@Q|Dk@QfqAXNk4oEwWGF2!xiF)b7KaqMA2b|S({iL!lc6$6_O|>^rY2|3 zgpMY!PT<4_#@ns*lCy%y<(r+7kH5^4I<)hPOBuPO2OuYBaQAXck5H$3da%<9N;^3u zd&F4pNy|#a6lFd#A}+!w^pB{e=s3#r(?26DQ)Q_Y5*^rIsip+mCG|P%#233%E-Hms z_;d{IHaHniT#IsZML*2%OqG1fM=$I&)c7}FnZU!}XPge~NwX9mUWS$N!p!W<|BVLVQfoY#q%wAES|J17bmEh+(Vaeyd+vhk{#v-cL?W4W9@b-j84m<1 zZk%1{3An6%jO5(KOcd?@P^S8R|*He(3_@~9?H!AHH@7JZz_lt~7KPpoJu|JFq zMVxL-!d=KqwdbAFXLq0Qocf!|rO&gJDa6A^H_aDm?y1T5RPyqQ^k_NrfPDJ;ZdZnW zZL}~)mewb>PeAvsi|cT9msjjqLgS9k9|-}mCr4YPQtx-df)~thWQcEn1~cNh^!)1A zs8Gj-@y3^$YM-zDyJuLWsj_k2{sz^&g07Di(LpFyj_%j)aUY#8cPD@spP3UT?g@)C z1rt1+LvrxnH72$Zj5;iFD3tSIzrJRrW$;jNA9nK)g!va%pHZts0i;qUPjXlV&;a5G z*7B~s0zS8Q<|KNCrCu@6D*;YAG5>e@U>}LXTAW7=QWfH^$RV8-g{$I-y;8gy5&2}U z_ismbdq11CgdEnuW5e$lo0_(pBBO!mE&u}3e+P}yWAmG2jC zH}=H{O~M_{4@}$-T3}R+PK-S`BVU*dyrb^%woZ;8gxyjZnMN}1#H)9EEef09)R$bK1LFtiw4ekr*WZQq za#W|EM9Cl?r9*}C=*ZDj0(<6*H|8PRK&U&1wFYnehC@7zedP{UlLt`?yf=8k!AIR~ zMI7kLT=kLv4cw{yN{~exia;q;drIm60h{y?McjoyfnY=3jT&O;E6N6{-R}b3H65**27O2mXfMP3cd(o-JTB^A@b)9yFQJo zJ(W6vp0v3t$o*=B){xoPItfWekMYJ|PW%3G~Nh!kWY~KPfr-^IM83shn(n zYp@AK{ntQsT3mEr21E&1ESxN~_fP85tMb|yQ~6w>ni5;*Ym|c>Og9EV!mXP5Z!W|M zd#6eX@EdMtcM77paLEtXaBc28%p8u7duae}QBTluzn7uu z^7zq7TP`=hS=xe8+JqC%vEx3Mh1!NbXbA5_lZE=27!@t;C zA`+-`eJk0(THam1h=*SbRL{i}prEMREs6kCmQl)OHtbk@n{h*bzIcY-GHSmd(18@D zKe>|D{P$IK$O~G#IiE^;n~cKM$PGBYGl)L@Re)nRf1Z%`@Id9A?w{YXt?xWd52|=qg#q+{* z7Tx9!7X+VO>QprplgLRnT)JI5SuqMDn@g_4jW}hS~hZF!+#hT#;!C?QbV{iw`5xyW4-CDA&^L#MgP!Ui1hp z5)Cc%(l}-6C(NHyh-%79JSCVF+U@d}cV)QZ+j0%kn^1Zj)x{38Z{r zP_+Mh^%z%*&O@aT`~pMtY25@r%~1uQVutppyoJ zQ~A2prNg*iaNfHVm|&8;r4fdo2&)N+)sz7|P9gQ3iAD2W*J-7>6BP~j<8g#fNs zj`ZEuQg=^I-!*<*bOW<8nF`a7?b`XwdQ^V4v|0EbnJ>8*ETh@TzOn}41bQ#8mo9xs za@QXpx7BPzgPkRw&Kp5cXDWsNfOuNIPO0JOHuQL-8KY znH2NA28;iu#KYv=H~jSX&uu5Y8gy)lbQ#!NYttFhInKHz>B3s(AGz2H|574RLTmJ6 zP&8Kw^070)^pN|eVkX8;31^orM2yqiU-s(i(1J@y`!}Xual%N- zNk0F1Xb0OFOI>eM1YzdslmJ14Z1$Ro^W4{&DlUkcp_hzd8VG12M01rcn4{4}hspqa z8-YLesYES1rBNQCU2H>yM(CbX=*zfyR;t@$gU2e?gHL^%XE zLX2$@4nOy9LtD-HC-3FSeAlAp5ee{4jT;dGM06Q zj@GmntkSNmpo}wvxbhJjd>pne>TN~nzF6;6eC$>aYCg6Ex`*_+ln?WWgv|s@%F-_B z)`_+*2IM-^&Z*b0Cz2z`djComm*qhtLv|{ww$=lYwN@z5A5I;CHFh>20=>Qx!s1tU zlVg~?Ao9BvgEO0{Nv{F7F}D^r3#BXSDWj6f`IpUXjqyyPo1z(4iyxZ1cUN#JPlv=K z9Oh|L&%E2tNNV`DD@*+JsE)UUe0RdjV<73vQ7x*)l#1;zr@&y+0HqVlq6*SOUs`QO_e@u0J=Zm)vaxsxCL=wvbFcHREf_atv3J5oO zAc$LO@*yYw)pUJ6kZ0`9H)kbv!+84iEZ$aWV)FAQWGggxDT=Qn)@D^E-Jk96K{Iyf z#QzWag;R8?g(a|?Z;V9;YlNQ>gbz>NNx_en&vD<

    _y8TVcWtiY@Kf;K zC+6N}gr;isY?-!8&ii%1Ce1lJU~|c9JI=8^+(fd?D$vbh&We%iUaWZ>0yN%Qq|A%+ zw5gOGO9(;^dux`~N~~`WTEl+E(sE!XDbhTvmLzP5M`Q03VDf4*cWE+bCEaFaxQG7J zWk!eIPe))j$&MPV9bBhP>1(M4>%l9U6Wuk@WJ*@qq!;NuS3h%jRNw;lXAW=v^mEaa zR^yW7pmE!w|66v><6h|R>`QpydKn|dqU~x5#gq9v{M5#7`VeRYP6}OJ3P% zE5_n(y5XiHLyc&w`Q7I6+DfdgWP|m|6TxUJ0gI{aBsiK_@)!#gU8$T)zPjL9f;9w+ zEWUL?eXI>}7*@E`=R>Py$!XG+r3Y^>f2;m!PyhdntN*1bgmv4A)Zl8R+~{uHzqxk) zsMML~0OR}-fgrp^uKe2{A)}tD)d0LGmOocA=?Y6-BWG`u^;I%pg{7iGx+akyS#O*O ze;^DxgVU7dg?XU$XB^p*O)vV{ZfH7V_eYS*+1Ezf=rW^iOu=@|09|}!owg^o0(Qjj z)fYG{O2wVxrJ?qRx$t?5U~4~M4;3fx@(1iSNHIO-RvrXKAa+}j;*CqOIC;cN>1^hY zyEzj$N$H`V!x3*;!x?k9Vcn2P>WJO5HyRzPI4XxagD?xb&^&GEiu`lfWJ;ctXRF<@ z^IU3*!17gU=darShCPLS)Rk`Y7LPaQr7XPzLnRo5&<+0k;NHndhe~z+Sf*{!9k!dDM36}bh2`f>t_{!4Cd%xk@#x|eAUBcgNUfQ7rl%&UqI)Y_`Z$q;P;$+eczb2a$I*R`9Y z=K3#5Pf3TlV=X&qUwi2N)>Cw!d?3TbV#m1o>;}L$0M>!SgtdbSvhkz*Pzk0dz6`m6 zGM6MGCC1La{z|B?DO~H(6J*3@+%eWWTa`ybkCsN%Zw5pcxo!l+=Bwp>engkw<*WTT zCkK?c)>;m0{Z0v@+L@LlzcT4SASWR{#mKsgVhm4 zd5s)V?H*;iHIqzJW~|3;U0OuE{Yez-Q;6Vmr^5(kzVhAJ}LJhL3Cd@j%!YP~B(nkx;_Er=`1 ze9dY9qtY(2K`md)xEZ-ks}(W;DN+(;4ve*6jzR~UU&@eDk&le0n1SQ-=`%Hoi=xI{ ztN2+)0hDno#;F07FY)Y2sH0k>Koy)_!{=C`o}?W=rZ!GjhFO}wzfv@YADUF!5*-Q zEhPW&PygWd6EWf^J;Y+cb(bf*jw?_uJ7Cty8myEQps zV^HyAr(qA%GIY3&HRVJPQ!KlV_dd$YOFuKLOj}qx8Mnofz-eS?mZfBssulAxX^&vr z;&h6b^IyAwo7bFGpzB{bBFxkHj(N3+x!ii^10mgT&nxCysh5hI=ap(2l*Q&a(ArIt zt7GeJkbGNm&eg?1s}$51&T~pfbls;R;NI$4UL=Xny^f?-?{(D~I`ZXB+`A#_d(6tp z3)?%Y36_b{eCNUM0(~5u$#EgAD^oGNp{g142>PlRw$&QK(6;oZwr2Cs|IqyPG<@F z`U|#p@w{jm zT}8m^-|1g@5WlDK6^UyRa~fc_t6X)WjRzlKMCu7!R%fZ!)pt#o0&az)kIJMCMe39K zb&gD{&QzS4&b_&59GTE--PzJWE8Qn&E6Sxg(~^S8qVcH9WOQHn>L88@f)OdQdT#{v z@j|h15R!O0Cv*;shHh4vwT-!x-#aJDIzMk~Lz2~)JNn1r_+%zsc_!GCr_QY(_1qUO zp$$1qS^hBw7X7GvCE;gZ0HoLuY^4UM(RcRsRzO)h(~UO)a3m`^j(BA=ES@~kqAZ!^5(97)L@?4>m3;nPeJB zvCB1ZNJ(ILcf(VdvNRbP1_U$9tl$^aPD8MZq!{9{?=gFn!EG97XHhIS|8;n9rLSS+ z3jC+Uz26U#)#n11e!GQMH}*%5kNy316RR#98ri9T+)MQ|G`8b>I|K2>6m_OaXhL z8~TIIl%<7kAm&G)msnHFe#A*Kq`OS7?NVcRKST|bjq`qGtI4;ToxRPJzDd7g`fz78 zlN<3MWApNs`E(Fwk3xRNPnmg-%JE?EY8M=_4@&e_79|rKs2R<;GX~|r66nxLVypvf z!i%5J)HmwKye?-w5Kl$);RLF_YFXCWD7^9)c0y+=vw@5{qcK%<;mdD>#a!HM279>7 zk=q3Szm3;0m_f7@czO^T&v~lpWOPwK|$Ao?G^!bOvZ|^QW&%` zzQ|Bg_$NQOVTi#0Ke%D$XQ%^VY>FO#j$f3eYX4JJLODQGLC%w(L$!%7Vxqk-1v^Wn zvap+2U~pd|srZxm5>A#ObQio6$ygZl{3J6m*;uBnPPKzj zJYWGoYBT-!^XY+-e{kO3;*^ElwH5AMawV$Keje{qLJB|dI&FtdyAT|L?rxa+ki=hM zU2YV=VW<&Rq&RxlU25D#Nm@!Y`b~%Q3duNm08%1wrjSE&bhetF(_JNOp~(}e9l`<0 zN@wh(qxs!&hjKuK<6sOwC}9ALaQ|ncGL&R$!Y2YJmkXy$7ucgN`{RA2xcY9H5L|s< zV-Jx3|B$vffXvTr#@o*5-dbLpD)8=2zZ2(PJCs)1OYImZ$C9ek0 z)0WE=fe5S-k`9OxVhH-I*ZfZp77&mlUdM0j^#Nsd4ojc^?HMx{ZFJk zFey#c2>DD-{3YW%jdmgV%RE~wKi8t*cmPDHK*UGj%Y^Wpv`yqP_O+qTowVa25mA=2 z+#b)6gP4Zr(B#&^6Zg6|IfT@=m3so43Y6poJrvqzanDKo_XMFu71&vO`|WMGQvnFLPD3}ixVR1 zQs3F=3<^hSIS!{wH5CZ4@#a(wiYl#d@>urIDnLHMFJAhjI%}diSZ^_KaCr1FZm=is z9DKK-lwUC4309cXEWDGXkENj03Uu*hoR(=H{d};}rhvp;@e;%pfMU77N$s~Bk z62odP*6=8WR0BV{i?dKBU(XuU3PdVFqU6)oq*st2EB}xdPL?uPse~J4U;2Y*mCX8# zJw3i}m^kC>d%Bwy&-*j=t^-4~qgYVJO|OCQHv}a}*ek>4t#C`+#VD*?%f|HV6aKr_TtgCgK68T>YSPcp|%5PIM2(X!Aoo?+cR`|ju(edOLCaszHgnJ4%J3_Y7 zJybtbOcaTnjTLEttBKX<@LZ6eJ>S*HyuwPPpcyx4??jmJ!gQEshpx#a`;I~@N`Gej zXdShlb$AWf!HELZU^*3O0gB;3r4j1qmNgdq(ns*{hQPodC^2gV<>5*%|G}$ zqS`O5ngyJ$*}H6;eAfA1Zm7)!cSQX$HC+DHAEJqzZ7c|v;An87E`+`&924AcP2+m3 zEb@|~c0N0>gMp|hAb^4vj~);pipxw(T;{uyOFHudxpnybA?KIRlGva|A=N@;CNFZ+ z-?Ryl;WdG|?CFX|mSP`{#}=(KN<<%`KGZH5v@UaO@>$bSnY$uwni#{5C;Ubk-ffdY z&>&Qm&e{;go4a`^ld0#GZ71r})HLd**jITloi*Ab2xO=b+K_bWL$BhdsQ?-qfMEJf z(L@>aMtE`a7Bqp(Zl*#}PHc+GYmrEq!`d!XaxdWkIN!Me zW$o4+fT_9_=xdL(Om^CLliAXqay`=lp}-IYL_#n@o<~KVx63rg#cW1=w3I~3HfA9v zi=0i1e!uO`c@sc5Z`>FOo9eugl1fj>*`cjY)cIn|Vl%u2pmfF|RGPgmntR zmHIDyy}&;wM!q%#J>g#$$LY{>aieaH*8e25GHXggs@iv_DUc-F>u8|rK)(QS+*Or* z+v3C2H!7kTAwGa3aA)4HRev9LlLV_fs?}YiWR>?Pxhokp#~uRO>$zJVTF9&FBR4nc zaW6^RU5=tx;Q0+F$#eV@m?F0!CKsIf59SB&0eqi0|kE;&t=eFa*>oz*?D0h>+OU^k0Dr+Oqj|z z6JV2*WMv>FesPKYIzk?RW*w|YI5a_pLV@r$tDj)-R^4K*Uk2IZzytXkKxgV)6W=TZ zyTHHd+#Ch$BGQs#Iu=p8=3<@0^tTeDq*hD#Y1Bk( ze-~(BL^lXjcK_#B1KBLTpuY{%uSNo@{W7_&aZf$0s=5dftabUvP_wIAlF6&yA!l{;(E>zU+^0+{s4KL+!$aZvgNL z2jxZJeE;>17HQCS^t9Wqi#6cqX^Z3Mzt5WB8;vR2%wOKyW;x6s2-aDUZ>kVwk6kzC zV!2fwUg~|z(Knp489|GSH|$jj zhtO{hY-k0bHj(H^)9U}WVA3tSTSKP=4Y^&T2cQXi*&I`HtUW5w2BfP z^wt+yA4>NsztZh@?K^ePDU)%Yi6pa&9#>aSja5okqHpzQoL&~=qnabdeBc$M5!2DN zShK)tk$Z!_b|L5*jFFKl1}*?snc;cr|w zcgnB4%2eZVwfyj8ojiLo0x>UO6?MRP%}-8?FHDdOf^wLD`# zj3}eZ78udE9vN2IZeiGsbT)=5#t{uIekQ7zd>LdlGir4@ek5-e+QsGtsKs zQnG01{DZE+$z>ED+IpYLqs%z;F)1MW!f9316gH&^krwNMpGdISyWnHj0@9AH5re(s1gJ3Ob+> zDI1LbYzMUkGijpMk^717Ns+0j>^FROpQgKk*uSSpl|`Pa2YGDxc6+w9ww|*sYp7fn^aYa1 znd6hk9`K-aqI2E~{stR$pQGae4Dd7=50yU2)M*|^Y9dMLx~88_kx+)eufWWeYGDqc zoPQGE72aOn<7K^U!=#s7j^#W2(#wGJof^M_n`ge@Npc^`BYHLg|Bg3Gv^@ z#(sHjZ2?#$1*dtUb6|1QsLj`BuqC^R+{m;76+6XSwUT$!#LYj%(28I^R(i8^JQr&Yy|bsMD}=S)jGM-nATsip7b z<~8de=a+aDwV{8bw-haDedX{ZCFPo(nj+~?{POOJ*)K7GMxFodV0k{ecHA|lJ14|A zY^Ag=FKEXHf!OEHh?0jTLo^6k(+XWknNU1@Ry$I?&C^3K;F*k>l^IFlUNdX6?3XKw zgQ&zJF5B%zvXGbQk&x3vOAg$fh`i?;RRxK9+|ej&9n|~JZ#ZOmj1 z{8qmnGely%$@ev3(kdX6=9}`dAR=S>^1&*x>mX>JmQA+K@H|Q7ejQX3+)G=-3pvEc zkf><_)F#VO(YGs#?1aT<$ zgjagOZ6=SB!D`O>t&rYtk!4;+`H5y>65y!c&Ky1%5>Ln7^f)YrvO`V0So)n2=VU;; zrV}orvmDAW9<3PpLN$|>N5=y0O^r4ir;j0|`DMF8c59#ki!lrP`~GEc)cdM(yvQY6 zenW^pnhPoUB&pvJt46%_(mBmSJ3{PcK~dW|rtgxHlpPiBpD%X3ex`gVtXOnH%nA~< zv501`Wr&YRMlsnl_TY_Pi&DM|VwCS%*8V)5Os=gbs{5KO%}bjDgQ3@54!rC%MwUYM zfx0b6(7Oc%RVZNdyE#)U$Gi=K^U|q0raoq2Hd^1MB#;bh+f;28Ul&SI?lJSUc)Iri zlJmic-+zB{iI5G~ES?Mb?ZZN)+-q;%Ap^e=c4lyX&qE&Q5tZVZzs&}xok?->npKlZ zl9PK|kAr{SgnR>EeM8OsPacE+RW>~nBi(=Z7~qUY6PMmzRhR5nRP=HA0~I`BQ>`X> z)_1b5hg4OacDf>*NBC^_5{cs1bJSDTyE|9TmbsWB6M}@2{(3k)j^_}2lgZ5BVTbDr znIB)C$Mfd;ypnOfBgF4J9ab^7TT&Jk>DK(dB`#c)??ZoEmIzCpHX$i2FfY*gIdXS0 z{rz@J3)as}2NW0^{MYE$o0_;20UfPk^v($+=x51FcY;7w2<4)dJzn|U^@x|ahQgYe z`EkvT&2SDX3}FW{P%^X}@mkrm$t96db?Gyn57(zBGQid2%_a?qmTKqp9J&H|O|SCx z`SiNDn`Y_{Ggu6`4(0{3A1@Z242p3YO%;Lrf<)0I$mjVw^o}xG=-iFs5uw*t2HEhh z^plstC0c`GCS!G4kZiy>6-bZ8(Act2AvQ{z zk#Yv&8772&`w60{1W%rTrRI;se|!q@rlF687(2@wOkcPfKux~t&G`@I^U4-wH08{{ zjZ>?}cS3a;w=3zl*_U52i?9H6z8T4Y$3c$EI z|H6**sY{)S)t{V$5Rg^$#x%=!5@AK5c1Run5iRDJ8!#~%k#3J^Qn?0T1ctm%`V>Hy zWGcYE;G9}D2IKVd2!py{Ll7Umb)wk)gVDwxydXK8bYu0Cm0Tj`z_a_@OPkC?l4q)X z$oAvHDsW}2r%i{N!(QT+%EQh_MY|>E*XvC6DTg^P@;+W6O~YkTmVd#(n*aWOI{u-i z`w*n@N9*;#^8#Z?79Lztg$+sb3{(dV_x$sObP%SS;q8t>CX&WvEwZ=PcaSEO;_~1b z0P{Q3gR?iM_n&|uGF3wXKu5YdJy=1bpfl)&`S*#0bFzAJKpsy35(yaaJV$n=*O)NP z@4v}?sF{p$?4k^4Y1j=2hK8X7oU<2d2+j)d+7eO+;-vMhg!O?kspT`}p%~Zu@Zm51 z7HavDmk3KG_#wY_4kHtzH86+*Rz}fbHUHiiZGirjUz)2QyJ=tuhkZNshIUdWyW8xJ zKCd(Q4fyx@P*v6UVAQs3)aL>Jd%K}E~=zN_9yn7F8pVn=P8&>zlh&V-{naN ztI7lH(|0H4vnx}!kg~?s08W*cZJt-1vP<_wwjkXu&p+sk`n;_9U)*Odh^oXog*^uM zC9xt_Ci%j+jhl4lmLc0Qn5n87p-L2|1<83u`h25oNJ)yM;=*|;ABy*dsFImTUxr-? zn8y-Qm?Bhc))&6Ksq#R>wk0`r?p<4?*|_A!L&`j`5!b(FppWp~%8}ca93n!|FhU|q z_-QL*=ndd-nb%qS%NVLu z$iB}bpK)LZWuai|`m-?yM9s6m!_2XYTir7s_hf_{ZK+@(EdrUMMjd)o`5m$)16v$m zDkV{~)(B8gCj6FFjPxsy(Nf9iaQC=%(-`hP;P40p0rh@bT@A=}sJ<3^JZ4q7jqtLX zQ8^K;DW3vr9|F2~$W>8@VXcjaLeURHs&OO7dwKg0%9U7-%`tT zl#rJ5daXIz-si3mbgJWiiu}6MVe)hFB-7-0Lxfdjd&%6pXmP`;a)~?_OMS9l*`c{H zt-Fu{v+~F-_^0{EM168|$-L{*TcF$t$i|de2Q&V$g`oB|TyzPy*-?ZGYkn!_LS&}r zs85p|{;!RX+TRfT3ISv%zoN&&R7uHy$$2H`ybQ)18ahg-Y z;PwcV332t(TRIWCRh5hr-4^NSP@rL?VcVSHV+>898rhOZ3)p zCNt5!Te48$MqD)4keM(EZNu2+pZR20!t+la_Y_zJs;MKgRH8uU4_T zfvawCC0s-2Lm?{mmQ)!yy++kLYgz)y_2N13PIMF?NEm-=X(;F&IPL>v3aD=r2uCf% zb<{1&BdP6;tjS<{lT+_+SCKX1i0Xz5SvmAkPLOir;*UXcR@UR1(Z;|xkJWf*(C1+5k)=c-43VW3wHM+FFGBe4%GXLbdj1pNk@caVR|JA#{4B&dj-G+=8T4 ziEU5fhrQ#kD!KqvabGB{kZPRUU;Bb0b+I#}a;To&Xtx?;me;mNagJwVa2;>@B=2lM z^R2LfN5y!WZ3rM+7Xi~DgLqN?S72Uh*~>n&^>E4B23-1eGgIrI!lSK? z$VmTd33T1-c3P<|(KZyo`am2PQPpYYh{Q33z>!7UWo4q2n3h*vU!|IKjXBznEfZbO zxtrm&whb<$W=98TL1hEC52T--olM?Z=RAbgk*YRQe>Y3EBFzeB`3$=MlQ*0KU4_19 z1R4ODQv^)c;7nwFTjw-xx<&{tF4qXQ$Igv&Ye+Fy@IpiI2aPBTp{UqYAsESccJ%ly zH3`FVB@a;)%Y)TOtVE(3m2Rwf`c)t5)>&;z!c~HAN1r8_hJtaI&R7uVN$BLK0l1w2Q_6b*$0t z0uGmE-V(?@odh8&9LTcu{MhQyCpf_v@hGeW`h8q$32Ve_sp>KRFKDa1$43bSV413~ zBmWrUe3Fib?39qW?)M=6V!i*ZCjo=B&x~w*YvIZ{4Xju1G{u1rj z^LAEkI@pHnej}@VVU}L|R4(MV7#YN;nx4}KuT=~CDF*LVk%OkaS)|K}cpIXZ+TvOx zNz|m1(o>3cbVai{ZCus#hR2`C!vqpVvsBX5Z$4oiBgs7w|3tKIcpvD$Mum`=gMbg} zUB>>p1{3Eb+tax!2PorveynRaFie7udcKpRsFTJtXD{50%a|v04zANIY?_c2(1y%Y zMPhliOV?wjXx2mBM`vL<>tPH*@_6|f0vhIrdAw&qKb5C-a_sv5U`<~me5L3joOg}k zS#USsi1^*s%u5rB^z72=;>-TEUUwqfU#Ug-eL&Y)K3+3tH%?*r3(*4z)Gwjsc^j|i zxVMI*H~HB^W#!e)b+b%`+ee1C+_3( zwfBCHzJ2f-;rEUE^(7QzLmzM!3Q6bAw7mx&ndKkC^d`0`Y@s0rj z15cN}=apKCAt}E4&QVXoNi_`SPy)=g)T* zZws+(HV50>xoa{5JYuoP6(`JXVz0$$qLRtbgX8Y4NlaETr@`chcKgvWv4OGVbDvVqv=!PN=`E`QNdwMv*uu2{0_kGB%!Auq5q;|QF5U*B zw;dPBx7JqP7kpgCUR+j`TUuTAZi*QRZoh@)6?!-Nu6zA9UZW$!UupiuM>eT;iylGlpEf!M8;YI4SJv>;7=Qess3`}sj&#?*EAm0PN?b84hc z_eL8Jhy6Z@dw;(g3IG%PCom<@u2Co-g$4=|o~n)w6y*4D_;5WfPbg}peOjF?|9%`0CokW4SZ(swbMMpj5n$R9 z9!$?KAyt43Ek&FWEAN$v9KFCQoBEARJ|l=LkK=R9qItwoP&*N})-wY!Es*Ygk>*pF zFf;TJkZz!l@65(HdkhNZ4s^WoUaix1ojKEM@a%!Q1_Z(EyX~hOr)YKN{HE@vfJT+ ztTh^*C~)eGPvZN~T2BP%$veuuh~o&Gwxn1v%P3(M1w>rDYKlxpice=?or%^{FR7Io z!CL>R3O%Eg%S4)bT*3UPwq=uf8an z+`>1y>ciIoF6bq=Y#XG~H)`jMJ<>?mDodyIQ7Z-E?eP-7&i3ij^N0AgGwYh7Bpk6T z%-rPKJ(LSREt?vu3((PQcL-4-r!1!wqos2c6cW2TQpc_@c5H0?nLy*9mpZ%6U~s%k z$Ww+hDQ}6CxLhyG!da;otsdW46|Qk*j{hKUigcSWK4kIex$Nf!u%`OIvMwx@hPdC* zNlK6`AxkpD4=+$gm&*P_BORl2Q5nK|Tjwc!{I?s2)rcx$wXJBkd`ZBo-V5&p5zaml zv&9L0_eakT=5^vcgkdiee~c(l=}sOfqUf`sHB1IhP?2hGRR zHug(QiR^=60YHdD3Ue_?wMj_NKvu4EHz@%o;8`=Bk(k2>7zWNOtfbB)f}LVwL>P_V zji^H@QOUrQQ`MHY;6*^tW~Rbetg}$HatSRYW84! zli5w^!l68At*32iu8C?PF3HigB*|Go+*3d*Iv-^tN9@P6sWzW0D;T9D`p4eNOqNqw zBZa3H#?WH`w}i14EMYY#Xna zyeWa@ZLSyRA5X9YCjt=0#Jvv04GBq_u|CK~ML3~3Dm9TdTB1;l36jozah?+BYvUJ5 zN@!WY|6%MMU_=SJtArpu0Sa~$?aV*ZZV*qlIw zW&kw0VfArfa(k+Bn|jqgJrytHVSFu4$!{|xC}u#{cGz2^ybJbws%V{`jW3lg{z9Ke zQ$54Vs;KWoh~&84ev;KEYh0_EGnK8;d94I?`h1)+=dIjs+Gc%8Sr!vTf3x&9TA^%Qv9B6);n+xt@c}G_QxlKByZuP(gSIW(~nf z4B;miF^ICk=ZeP0JX7O~P20mx!wft#>G|=H%d6rn)rD=zeVmJ$5cdlClp0_@P4a50 z_<8Nx9YliWV9JhpYg<1e;8bJ?oz|h^3{Bb?>$NQy#Tr}|Vm?^}uU&MQ;ypaJ7-GcK zrIu9}_MX<;JebW^Kn!L;2j0aqe|1fTb3dBc0QM){vA`zpCai3qac8` z_nfx|-}mfVusl2;4Q?>5i&q0WzaOGx)ehbgV+U`$1qSOR7_2;1kk|(2{==lcP}4G# zrS81L0F#ErRtGE%PKOMdc(1;gkdkXaVF+_N-bIJu=V1VHPgRti6ziU4w1fd&CE%!= zViZez^E`0yy_}SnsY7f_=&Xf@s$c6hM)=P;BHQY|c3Ok`Ce;Wx69WF|X`qsV1k<>) zDb)DbLU0YJ76hgk#IMr0z8PUqRtSu%@VElXks(d6`vs5fF`fi;rLwXz7pD{Sc!(tu z{q1Nh`Q`N0{EcA@n&^qaX{Rv|%>vp-b*ILVtJvP~={3V}XvVRy%1Y;nO*3k_N}i#X zB=mxg+d%J%k1Ya~b=RCMQ%4HzVykgetYI)R9UV82mRkh6lWANHGDk;obV3e&QLh0(r!%&PnY zPt_FWG+qZ9U?~oH?14(q5j!EoU1h-dJHx$Pxc8@M4%p?3T)qlC z@Xom1U3>)id<=}%!Y)83b!JJarkgwF9*!8T4Gl4akgna1t|p2f8^} z9cVe`yUTp^sOVc8D2vwt&9>V@bw@!v$m-g3yZ9I`#FMQ?v=G%cU=*qiq9s@q>-3Av zJas)sOW5OEtl%ZH5YNBiK1yA`b)o73e46-#HncW*Y6bSP-lolgwn-_x6pjmH(Oy7m zuWd!3-2|F5=H&&t(B}(@*H5;)0Gj{H1oz zGQ!-X$*))88h_%#Yv2Z@wFwQU!kON%5gbJS-zW%7M8|^XfMxbZYo_HF!uUPwS4rLBwU_G?2)%Dsk z8<)7%j977*rlh9G!_gIcSOF@>_M|ezv>ab1o-@{odNe6WJhhx!|9R(Zb;&NN0^G-Q z3bF>DEfOO09vNZ2%k)mR3PDvT=-ywSw&MhOa@gdtOb%ilf*J#pZRj@?)dyf4XK7@xPn0WG+U-1 z|FY!GhFK6#kA^DrzL^-I#Y{{*dsOf+EC>b4@Ouc?6)!7hBVm#8N_0YyTbqgSKo{_| zl*h+vjzKteu(?Fgfqj*z7O9Q0H=kN~Cj*bj*I5EFk3nkQF-@5NiwR^42N=NyN_9&F zgwybl0Mx$_=fpXoE+_nbrBhP*;ZX~zYY%hqsjdaVQ+jk5MbGxM>r$;2xU?U{2qC@r zegJ#w%N&1S0uq;J^~Z|cgWiK>1~#ljcyTm2t>T#|Dn=B+0y|idX!dDnu54RFh1qY6 zu*V{Zz}p1^zo(9Uf!^>U3qJix@n@t-85*E*6(C#|r(XX@u1PUfK? zuTo|36;etmSxFruoYPk$X>a;^53j)SAfQsoA3eDvu1qJE{1HHc2*WQ4i!}VSrVDR* znnW~=#wiaEZ$}Sh@Kd+HNU6n+5Vr4kfhcbKDY5R4Pjg;1yyn-r_v{un*F!lAT1HO! zTj*awVSYYu*bm`>VNR2lQPo(`>c88d7r-x~XuHc^?qqoDVnYHxVy|~fc^Tr?Q_tw> zV7K2>AJtO?X9faQ=T7K_FuPny`@1~bg1u!4Qn&nm8opY|GZXZ`lu{CtUG-n>9Cj$f z^V&Z>Uqmov1OV?pyzp}}+^*w0{rVQo}GKOde+j|{8-*v>0TcYdi(vrr^tHJQ8FS7Q`kRSY-`2H&+SZq~cTQmi5{m?+xZI{>^CCD-NL9GGXIw7eDSm-Bqu{^6Gw1> z-e!UETy^O{`0=vvR24BHu*>+gi!wyrBs2I&^8la^J}xFhYx(7E3N1%@hXl`3XSwzo zbez%TVZu_KPB)unKnE!`UZloH|&;NYfg(Pxx?#7)%i~s51`V*v8A!ePFhh=dfy|(<5Uo$j0 z8OL@h44JV~$`B+m^iQ%f%hPQ4mX^OV-jsAJ8S_DE`fuFr0@gQo5w@~@l(<_=!Mn1n zYXjBAq2F!qmh=aW$!rEm6En#B5JxCRnOvZP!z$(BxAi?GhMCXq(Z&E?2vdRm8IZ<)=MrZk-5nW zQYE<7K9$N}%GNdn*_7JH-g={O0)VP7bL@E}m>2(34jy0V!LbY3S*(AQu~-5Iz-RFN zk|91njk6|4l|b+cF07+KUJ1-F<-FYTp+Pi|#2OOXnoN!6GNK-;`9c#>2k4(n zHSj^Lp5?Lj;j=<@XoH4Li3%j7I$$pYK(9UWe$Z60E-V88FI$*$Gx)yB>|yp zpm;g)Sa%_u)gt00gqr?1he>IQS>dd8Ebc zyY+zGdf=V|jHgiCb6DL43gAChgDbv3vufw84T@X{KW8W3s#S4jh=J^w&l_m&T> zJFU}=0V`hWPm((=p!b;l6?cmJ1DI~lv|8}G&!$PM*lD2$tP{Gy0{wCb~gY$N+o;q)T#_PT;r5b0LRC}Rr5X$mp!%R@FzyOu)p1_>(b>KS;evXXBgfAxPDyiprD{dU2vgmrfgJ1}<%#ahEQW zZ7jZE3nsH1|$w;d3(YazRv zFp=G@wJal22V3aDxZ%ZY4h$GJm0osDpPw%@!esPQTQtC8wH37dRz zqx8VD$Af2Yx80*9CeOG;2754JbiQu{NbX5N&onU4fUT<%$bEZaS0+c~|DadOU8T?< zP?h{^Gp#gMR@&;GbH+L#WijJ5#<&K9%c|p`T1(@ zt(%nPyEjSBWKk_x!B7(7m74bQZRzV`f=xd%URSekGDe}a3s<|e=xkND8Yh|()xhkg zwN6moiZ62{!?;4gz?TGv8>BkGit$9M8jYSn##VhueO2V*0;?Zxeg?I>P z40svG-PZ&AJCa#*C%5xK!?}Z6(T-)59wTvtPnZxL>TlISvrehFP{uK>7%1`~rm(H^ zr!Af-iVsJq?V-?iFGCF3=t$1S#Ma5bFn$&qk_zFc>-3cihf$-aAi4`vCC%V{OdH9X zuhoEIobh!}HJ-;f+nvgujdR2V8|t)y81kZ&zcT&4q3vFKF^t|8 zEeXmJxhDd^b(a=~OH*%%Zdsooxy(tvQk_ASq|%>t_@4QsKHOM85a@7;NJ>_qW-yGB z&0X&AbQse6Gt!8gt!08(xL$v)3R+6;#Gkx^_aQASsBcw`2W8Tc_YUl%hkkg8pneQU zLSHt&c4c#Z*H_3MC&&(e<^p=nKEKLNqpJo|Pm4h*QT>6}s}DaxvBuZ3I(gO37Gbxp z*dcckd?L#k?JtDNxU^9LpTZZuc99~Gb$Nrax`O6qf&(&)cb8F!+_z@4X^n$J$!(K7 zV}=gbIw_}ZVkB8VnSnTB%AYQ@1N(F&=g9rCP)LnM2%@NqAr$=VCX3g^SWzTtRFLrX z4a+?X%#FN|-L!Si_29daw2og_)+$B-BO4#O=r1TIQ5_> zw@+r^nk9TAahvG;%9hqC{Ph86IH!qzFS@sMd46Rfz1P@e$SsI|MBS+oB>-4T-V#(~ z7q!n!V!bX>0te^@PIjbX<{ujhFik@lMe)^uA)sA&>-(yQh?j-?e?uG=hX2*!Q6^3{ z&i@W^redi(V0X@_FTtzNzX4$AfsBES*(Y{DHJ#hGHje3TtWRIVibYaXOu8mrw{CJV zb)H;0q~I@cB8w?f!tjHzNWPSX=Y{VihgrIP@PA%x-mc_*!-+iX!tB5)8W!Zn0rXye zH>56_lV5Q8jCx%?+Z2_gyp4;W>@W7anz~}-?3d2Hm&nV@rrgSnsy9vx$?n)`jNmj( zU-#^OK?H?}A(BxRun{Pr3w2AD>ED-n1x?;qL@DeJusl}?%GFDjSfC7E?Qc^+CU9Gb zV+BPpt@yFF!dy{b3aoPa{IGpt28+)_^&pEWvY&@u2e?R`@1AFW!~Ed+&2&^T0wn~g z{*Df);;_j<9pMIX3(lv*4dD8~=YlA(K~;!x`fOuL$8~jfRD(eE)SA>xVrcLh1|Bsz zv^6m4Q#+pBGw+2ceQs(z5Rq~pJ|>>D)VXO)u(994CKL0Isje7h{7m)xF4FmW=raV` z5|dF7g3US(mI~0O;tM1cvta&5Sa}<8`6mmI0fcLhv`k+tLjfmMWHzQDQCH&v3vRxP zV0JTFXW#AA5QW~!5U!|<01qR5mW%04FRTbJ<1Dc_@NSYPoaDDNlEf%iRv~QC2{Le; z+|q?qFg!5CQP2l*ziWXH-5uH?MNS>aZ+53yPy+W5FlbhZzYCl5-tY|P1CxBW%|ME$ znu3p4tPxT+zcTB2=v(48-k0t|7usrvB-+sU{?YBTb)>~|;0 za5a&-+4#GYFKPC|vq0#hK;1ciuPFGAeogCUrH6JqimD3o&QQ4GvWF5A1g>DV27nxp zCGuJ817Ku|by{r#soWF|!nyDwwp;|%keHmhQAxl%4Rr{H zvw>W+HlKT9&gfPSET-ZV3jSmHOxKg7Tw$kzc9-CTAGBKW6VJx}KfV;2T#$LrSvfq( z$5YhgB4hv5&#AN*#Xjtr*#EKkEs@+{ljloS&t2e4dGF;k!{uO0cxjSdBPD?cye|tP z3Y1SYN|ug|wx_`4`QYZD2ZlER^IM#jFN*2pIO-tcpAos0RSpNr zs^qO&BUf2$-|Yu~15;{2+&C`2-8?x%@a7WO1uOmlf)v;dHMTbm1Q3A6fJ2;jt8O`o z#y)UEzLdXMx$2$2)GI%8b+Tp0oc`QY13%q+gHdOd1Z8k6DLr6X=-D2s+4YNjCDudF4pf=i zAA8=fB8h%v4~&aq)FKLgP@l|pC=pl3N$XhAO#h(#vWz=-l3-Qhu)CGG#Ps_R1gz=u zdMFXU;1tm$6`FS=x|ARLFdo}n`ow{KR4d0&FUCqIo9W`7c^oUo#A}MZM${CaRPt?+ zjISml{E44!6Mo@57NhTOb|ZVOGEMMwzLAT!k~gK+P}l;LhYQ+sJMuVA zo~)4I@c#X%&$uM;*-xRombM+l&(*72ZBA&|e*!?{HYcF`*C)P~Ngd zUc0cF{l>h-=E$BT&1#xeX3$r)SqeWg$X-x;OqI0ATwgOSJ8BI#YtRnL&M@i5Ef4Jj zxM}^$GiTo9{L%_@mmr#uX6df7M|-r#a>|}E|DI8V0LqcCh1-yHsqc{ERY}~N)88W2 z-U7A}YqJr0l0j=Zn7=yCcM7`QPd6xvsSlW2oHwnm8%L}5;NM9*$0?cjq7!xHY5q_? zFD5*^~n7e=cXVyZ$ff!~T?*ojU6r!w^R2=@xWQF)i~2;f?$=xa3dfdN{0jcku| z^AweJPNJaS)QY_oFbHwf!SyKZ^`PF8qh&aPLDTge+@NrTF6NF+6?ex*XWjH@{{h<0 zUU0H>3b!sTjY2;(S#oI=wfP1YbHY*3jR$v^!i^`5v4Ll>oQJ>h1a5s{ah983>8l(~ z?i$o(AkLoYWN;fjmR2EA{PRj>AqZ8eLUlyw1h$f+l~b`nR8^<4Lkv|KJ5E9Ld=dFy zbVIKs2JtCc8-6(f$``P-}p{|HN6c2lmQy;a@@HDd)PvahFiF0m%jGRUq_3%wrY>K{Yj&5Oh(HgCt zhQwr@DvzBEPpzJGPf-j|*u9*`N@1e3W1uq1LN;nJS4p+3Wuz*J!H$_^{B}vU3cjqqHeU%TkSDPU+f1}% zAT@K9Z}W)|Hgc7&AlCm-V-P6r2#oyie}d67G%7nnBNj);mL)M z8lcC(yuc?1>n@%{p{Fi3g%97cg*#*y_p-X=FwQzpER!Y;HdBsW$mVTDU!@b%Y?HzrTQfqPiPpLFS2F&qBpr+%%1GUoyy|U z0B7AAk zv>ksMilSb2QtR|2Y?Kzg`B=VVW5K!y=SNsmnmnnQ8uNT2v_NmEXie3DyaLwPjFw>1 zlN_)w9-5{^=omePXtO^U5cJ2)G=Y(hdzxje`t=X@%&>@Q0}@_tjuGMy4v z;y}`@iSmO=+H=1Ogtroz{}ATAYqzTC5{&!oy;hhosYK#qv2!`x(re%ac@jdaRCs#S z^99zn^EdvV*7yIb6b9qJ>p$1`E$TD2Cgd=?uaxcq(gR??i|2GyEh(K@Y+aR6BcQBrYAf+XZ@-Xylg;&k}p`sDOg~7;QT`513RSyJp1kY z?RDT9MioSY#-hJ2WSor1{@#n|cl4; zRys1G?shO%fk|q)B1cy3ubQ!DsaD1;9|Lt-o(ToS&j~LnCxSL|k=Te&_CPwDQT=5j z8ndp9tQvQ~vkq>I**E0TVcia?O2&G>tg7KNJAj`qiia%1bOzO~hPv#fX8QfIza2$HqN8$lA8YW>>(VvaX+6AEemWyjn3zXJfmZtsi z&0SA)BkW}ZUOVkI28S`&w;kX?7^xO=w)PU7bhNDSI!X_@8(E5;3F+8t*=EEV((re& z3R~B!I91Po>11WGMTPa@qqsy^6+R1T9iWGf;Tn9MJj*^gMT3Vc-Wac^inWGjZ*H3Qo5D{dR0}Dn=%P%bw3kHj$85%Xenu-@XbbKbk%AfkaKWbUFU2wRzr4ExYkA21~hv>?9ZE}zpPvv z`UZ*>4xMN$ZOgq59L3y}+-v5%7hF@=N8i;e{M)kF87tjcJu&#DtE{8z(c>nD)r963)#NJ+yxu8K!M?J}c72_V z&7>aXDc2?=)H6s#b0C1}TsFsXO0_HD9W}7Oh~RupL3Xt9U(vz4_C%lNCw-@jd#6en z{Tf3HJXva3LIqf;1rF|uQcGrkw6-FP++?MR2Qjw7V&G@C-p@zY2}TAZ4(MARr#GtV zSp6U(Q-YNeC6UM1l6QoHsLx>7IrE%LcBFaHda5(YpBIV}_n2YX$oE|rm&^V#jsyv; zYD|IwpN25*)J3^oewN^^U^oDxzDf4l!ZX6rp^uE={{X_4X|?^|(TSPyKU5x7JnT*A zqb*-IE9O=cZ4V+CxOpNS|P3UDzY|Wg_37FZK z{#)oe(Uy(FX+!L}tvf$@BE<1kxhG}-Sw}mDV1yBL3?vDJ>#9oV4sWKe77P8peZ<>f z-g#WGl1^`c=ad+_uw13)Q$vlyv9;gaple^|M8C`6z9r_9Mi;sXY|AMhD!XD4y756r zKIU_#Ji_hPra9?wVtWh$5(Tvb+3L`*7X8zoZ^&r_ zl^4+ue>5+i1s9?gv0RWAJ|pe~i^-86B(Lw(=oT(PBZgXVqOn%Vx^qN1cZ?V3QJqU8 z9{GX?mhFdxJRCeATZ=G>JLY!4v4_fWkL8dgH!R>IRT^@WB3}@;604im#q5zfOq#Da zX>WAavIvmHqN%@A0d)?`=2D$Ub0izHPL@krMBB26tuOQcNn8i`Mf;b%`{Nt}dtsQ* zE80b248x!($q|Zcq)%+LDuI$7qshs!H3HNMl9XnRTYH;$1krEwFi)e_IXtFcC=GRs zAY&F;4;~m?;Ndz8*VI3Y8NW+~?T&O#(EoygiM8n=j(E0qf5O%0J!tXlUFZ(Pr&Ow` z5E&ZibWWMB7r<{4jI}E3QFu=@orjZX6NjSJHgijOe&Z&7mV0;=p z76^C@^NLWP9c73lsNA3ekr_F}fl5rD+Y5gkA}FK_9dj5xph{%cM2+Y;VlG|nTZl_W zT^Mj9$q^Y0#tZJC#DsyyAu<7YJV*$2hLIa2cF^vv4pk`BZ$LTNaC9Q%XLPIqT?OJB zh1OeDN865T1WoH6%8*_2=&TD?dXy|otc3}H5!3|1+{~k`uhLzQ8j!HDhMqZx2UwIK zLmTk->?0a(cE3fa4S-1N5EH{XAxOwa>Xx!ulMyZAZ$ZMGdDCDOBAL19`oO%HG$vy+ zy(wRj&x8Y6IXz^aqMj6MW4bd9u#)9R0lmT`0ZPHC3|sImY9nEDE+U;&vk)5!Mlmd{ zL6mhr(t+zH(5=)LUl31{gl$&X<>PfdE{-Wp@gncX>Wo#y~8QC&gOY&x6s*pBPb9ohQ zi61gMqqN7NDHmH(*Obtxh2AJev!&@}+GZO8)bb*qSfUym6fzd4K(47x2a zk6EwEY--sY_4lrmT027i25m=u{klF?Kyr38)5AilkxPv?gy{`UwBoJ0D% zK#Ts_@}TK(fJLmiy4`@mfSyd<-r?jU8lDSa@NXI~@}L@UfWl0iG4B21;ki(^4+wMO z$VbB_{(3CAP?H#nOaE|ylr)nV)kad30qX<_JAKv;N<``Z-49|9lZ*kt@& zeO!Bltg2#?C_x-Zf41oh5{}O!F zevouEE$&P@0#1zO=e~VoF}uyr1q(H$yTg;DxmyAI4>?;fulRF$4||7Y&mTi$eROGd zcB}k8olI+Pw`uscYOk+VuWq-tw)D5RscCCzZFo`dNn?H*~Iuq!{)lwkmcqlmL1QdB(>dJu z`Sc@io>1!mLBfcbQ||x`eqt$9+5&ch*AtiZ#QwrHjRT+CS|(&Y-=;ZV`DS@WGaSG! zjPABp4OqyBL&(ab6;_1^lPHFCRY|ZOgtAcocd;( zvtVKQ_L<@w{X;3UVB{mo6Z`%*q}i~v`o9B@Pq5iqMnSo-v*bn3_U8V;-Y*x{_S-g{ z6U&^*%s1A`>?)Gl%}Z*M;O0YwcVIWeVg2CtLx^{1H^t)pN-qbY!1|&#H$~jnfb}{z zMX+Oi+RaILzmqF`I^177g*i`mYa2ez2j}VyFC+GcNqfT02itBzu8T(h)th$h&agIO=*ZsHV~nqAHUMvY#d&9gRdgfCtHM-0km-Oc1jCb1s7?#;##aJI!U z2&g*;hDL;Bgf{@8`?ay(ov9+m5}Y+dp2e{v-UOH-CC)((@#0O#fk*zJUdH0!6P^yH@qNb#k;a$G%o|w&yd1 z4i)(kg<#m(A6SIGdkX!$t1IDvPUopkr;z!_y@5_oL=YLPug}A;>F3SS;4=jJyXpi! z?NFyzXkCBOA;zKtv|boHsHSy3@yncH*@+=+b>kq=s3?D~!FIym}<;CkQs zz;G^$x+TN&9@zKBBdUZ=dM@uN?z}JfhaLGlt>)&j-z|9n(3QvjZ|2?GGRc~>C#w2lI{_9!=~#@pM}U+yDN#s&w>$_fX3z8s4G z@4>r#|4$rXe`CBsYsx+a&GD>*@Hr79mN3=zuaLb>2LbLg z!-MHBzpv9wX89H{Ex^l3H9@kajYb3}EpjN@D`EBi>)fFh(ZS+Ry3=33iKrB_MOdT{ z^T-%tk~QFDiKssH;M5Ge>3USTH=O0PZOZV{_pF%ScWgcf9JS&TBWddRCp6u4UznYMn6G8ha1iJ5DLg1_Cf7Zy8Q6)5Hdb+tf8QOqWSF=qPKk1B})9A;wDlFk?Ak zn30UHEzz#^slt|_9=-eOTx;d>)j$0Kww(ePMlSEvmkI-JIJ~OWk}tjAANer-r&*)3 z?Hymw*BjIj1FC3FBY8&RWg@T$Yq4`6cCa7@7O&RyuM4Uf2wYb*U#obQ-*v3y;dM@{ zKM!C9&4{h#n-EFz6ryIq3(#|7vCxQTWXYHX=m&h}2%QH4j@-#S2IDDzLKB%ChLdv~ z3LX1Ty{MP}SUE9jWW_-TMTw2&I;?F1P4hrK!kJQ##eiMIf^Lu2XqmZ{(iB$D`I@Q$ zRl8_^WY2Yx^oO-J9(boWMxRY4Su7K4pSq0cXf?C0S!`TsF9%N~-wXAI2`G<@4R`$v{xQ#hfOn@kNx#ELK-S|X%jH;RbnsTd z`J1~kVa!e}a-5ZH8q5c3G?vRZBmS5hf7W_v7MxjzX{>jSsOca^;V_FuQjs&<#LbH6 zrJI2W=0J9gS&(Gzm1ZeS!N;<*~+GCcfaV^sblo8Y8ypu znY3ciGBZ^n<8K)GpxbAjTMkl=o@P)w82-~~Gv1bcH8d8h3Yv>$ZfvUr4Q<9$>k}>eZ17A$p6Xo3^)f)e^8*?dk*9^@HMCCdMCI;@S@XnC+Xox zGwOCp8gZ0Azoh?WMr=Jx?GggJY3KP1`MwlAO>16mGzRJ^Pgb3I$_17pnb3Hq2jA%o z;^k0V2FCw~$Ss7hKA-9{qt6OiUmfHrLbqZgtulj1w;cta|W2cT^r`~my zy|@Zbm)^I|FNJZT9fwNy8$NzM!s-7FMA_IF|2LJsOw26*xl8s(VZd^T0jB4Z+W9ZW zkR)&kI5GxgK(qZ`o_k`E{`$J z_xFpgFR-!A0FdjaKaXh!nr}{gSMZpj_>Iy0$LYS~%)ba`30~(T4|!pdset8D2og+R z2jB^NAOgi)5**Uu0VxRy^34@KTDq2=hLWbfx(;%N4xs@74Y>gU2~NI(CW@w>ViAF2 zjirGFB_$oPfe8TtC4ok^mWrm1hPi=uhLU2IbP7g}hOt8SzK*7rk|lwmvSN~w0V%z{ z9v&UKhPDm5zKWeWrLjUDrjnsT3YHF*ikg;@f!e;h5rKM!wv|BZn3$T&iGI#^K6~H1U);<`kGIp)dq;h*5w$aV8u5R0 z($hM+oi{E=q}9joU4CbE@1orJj@)AKr8E4nzFAOnc#68(y7G*)mY%daK5kY|Q$P6M z{rn_Y)?D0N+niWrD)K1Vd%O;hC6_qgBGG@F_4;45ZMnK|&>vY=etEK!+}l0f+uamC{XD|m z*?4x?a>0X#D#nEjh)oBuhasRS4f8|_!NSyrfFqD6BZndL41Vn-1?1k3u zeX`jZhuLCfzGc3df0zAI={*wJ23|YuwAg$BM#A=QgHR1hG z$4Eatysn(N>duE%=w+q0yDf674*jr<k1;?h|3(FW^^C4mhk8xIHM42jJ=p$$Xkr!yjq6IvL zEyv_6awyx9l7@oPXK&$ln`0vbUag+ph#fOj3lavH0&o)M0Ex+y`_7Ae2wsmGml$e- zA%PT?LzG8(T@2VvZ8IvvaU4*{4$=6l8`lT^7qlIc`{=%kn3?(U(SW>Vsoe-)84kBB z>ZPzDyd@t&fXOoWdh%GxxdQeNTf)~m8zO$7GYc0bWerdhC+w4>H&TnVR6*nsf$ZGA z>o(m=8Q_?zUqyto0}>w+Z&-CFO&O#tC}ui;SO@PZpXd82KDEaw z>|t)iykc`K9lcdUYMSofi|f!nisP>n+P{G&KTvz&N8D1>@M)~BwE;AxFPkZs$^yJL zuX&_l69Ithknm%*Z;ygL~lL{H3~B6}Aae2`t<=v_*5G}cNv1+l7GHP6`|MvbP@(Pvc(B!V~cdELoF zK_l#CYC8>2x*=W5fAVrCs`noJ*Ds@m!(>%kU|6haWU0+BdQEr$mJ6~tm5=KgD7Equ z()%$}k8Nk?Cc3QU>%$=fT@rLaLd?B`bRq9ywP|yag^=sRoo47u`cm*^`e zHNpc|2DPiAwoodh^gb`z%&)BFgi7$7YlVaH3gezOGOKXyvpio^)7FMF0+=zvX%*GU zRn4Jc(b@ME4<-T-#0m&Ep4q>B zKOZJTU})kZHBv=DgBL@rxMQe z5lunD>Cv-v>AbMspiSDLNrN@Z9&VCpG&tWm{{?U|Xvp}VLi&HO8~pD>Iy3WstNbHP z^ioh(M+mzmjn7s>A>I8j_d;%&e#G)67bRc0*XdriFf=pk&G^2ehH|NxOiFc7qC$;M zS*m4LjPOe-C!K2P24NO5(W>QQ>g)U2vqz$G8li%fa_Z~@^0`8*gF!5naLITwF&L>u zidu(QbuzeioCtkzWzsoEtrStLGRYVVRWKfh(Tx)EFAPV<9pT$BN+8iLaVgRgWagbS zvBY2w1&QaliE&<5-WF|a^y8urqcT&%yPO&BV?!c2xcv%1nBpNf$~FyV{N4@|l2RX9 zApwce)EA570uw}lYS&o{c+MYh`YV`i0I#D9^741njX&=G8lYR!l!V=r{=5%ua0nMd|OwHH>RDOUs-z5Ws!iTE*0nzkCfVDXP$^^7)bNLQa6?OxIHnzCK2 z&c~L13IIxXmIdIQSo7|v^c^JXB4w2AH6=mzm&*vvo<7FXM-fslZIC)~JpHlgaM&I{ zpmJV=2Cat>QZuZlC}L;E*HrQTcnH)7eAolh_tm*k`{}VBzVI4$spvFlcGmQpW)`)! zHnYtX=R_0%hRWY|YjLiCj?Hh9Ap2e37TfB7E!kYPbn!3*qcHf^Olt1=$nL7a{=R=z zu9V>>xgXi52mONSjnY>fq~hQ7*OlAdr))F@6$!U$!pO?HxX99Cf-7HyF7ci^`F~WY z+amcps%MLphNoexip4BIg!sSxqNPL0#)mml?IZZ4ex8d2<8z-pCc^>&Pj6w{+0j}y z4>~x@D3>i#G?hSykzyQ73<<+!{(|92{(ZdqNsBaF$Ee5{=5>`r-W8y<7xrH=(50wR zwy#Th5qjUj+BdV7flN4fRIHhFX&EO*U_(L3>@5J z2amVjW+k7{fBvMW&^%G!p#TMmpx4mB=2wR(K8&d$xlzpvWOF`d_tx*CtCKGiJ(fVLLHYW8C6eC>}x=D@thSQ+_YEcfJcDk0|A-k z3wO1kVzx?QeYL}f)NM-+S`@Lqk}8uy%O#$KSm+Z4Gx2(5k@Q@>3A3zl6RK7$Jy2SsLCGyP6j zLsirCpi%qv(K`3Vt;R%G_r*9L-nSb!3hL+ z2<~n{g1ZKHcMtCF?(Xgo{Bh^aH+Ap4%vbkKbyff9>h7xUwaz|!uWfbb0WHDUzTVd( z^%goU?Z?-rXWkY!ER=YJ@hkf%p}G6A9dw|k*5dHts31>m@>+fyn<`X1n=-u>I@t>* zelu<7Xw#MBuiN3|g5tx>5hH{gQl++b!a0~G!re7x5c3UWLb-2uNPUdMgj=v40vDq> zPu~C!g1OXB9?Nm156|nj0sj$mX8QcUF=sKUmBt_bE)K^3P0Y#pk6Atc6>~Z~+}=Dm zP2D3p-?FiSg#46!i=*u^e<{tl3qt5YR_`aY|17YZ>=Rr&_>qbB1VDW3HhpMZshb%KqB#dUzG^2xZsG@kMs(1IFE zLnGyc5(^vaD>dhS!6##KihZiz-$z<4YLdAW>V#dW(aMq7*WN_XgO~r61Hitr#3)5+{Bv~g|W8X!2 zz|lxaWlo}y+A|$|M(96Q*JNI;M_r5xjQQ}QrSscO2b`PX&7>5t4%Rzy)Hk}kEj@b_ zh<6NvGF(#|wc(dy@mXs%4@)z~XHqC8`jZ82_T6>T7 ziRhx#*`>AhF~yD5St4Yn5dTWYt*CtE4w`Y3=XBO|FO~(9bFx}j*Y7{oBE$MT`H>GE zf=EDkZIZ43ge&v^0#^>^e@HR-6Pl9Bc6iX2@5vOeg%;Xmxx73K2`Qt-0hqv|;`l0h zYVF=4e*%WRRc;>cLX)wz@t2P=%m>DKM@oU5h{Y7T92h_M5O+$L?#A(IwAtIe zo`(mIM=u`;5-CxX-o&^cKaBUpf)K=aidXN%e7~T+zi6GT0x!g_`Gw`a45_5GrslOL zM!(ONs02)2oSjryYd;J$I3f2djD2)W32hdrX6pEe7A~0Lj(*}%)72c9G5d0KyVcs7 z_L*C=aw0b>^=n0Ys99bFg6=>H7C$@dr15@6$gypfOeL$YT-{ktdV*)m2F*=h`vu4 zsx`bi<-4wA;Wt-ZJ>Hql@&=ef^-JVrV;pw131{UhUpgxCcNt<@H)dMsn}cdZ zVLVbWm9T7YBu%;~&=t{)FzwK|zPU+*m8nb{Y>A_rE?D_LXKX z6k?B&G|Bf9Pc)eJZ*;ROwQ^}$wH3w^GWmT`wLD@(l@zy4Fn=d61?T8*{ zZww$#LZS&S$LWhyN(@7J^3Yq@;A(kW?Xb{+Q(q9u>ttM=7OoMkV$>&cgCqy?RV|WLYG}PCwyxha{ z6^4rqERa9)2D+1n+?&%))*NZvGO8Vn@Qrha+Gd);wgT^zme2W_ytAM-5w@M&u&$c#Mx!O_qD|XuK8DmaJnk zl{<^7B-$B8vEp+(xt{0+w(Xe@0DqK#jL!S#ysRVmN3co6^(!L6_;vD&Zw0Tpj0nFi z9k~mBP`wv1)U;8{nX61k%12*Ae3pJ@yi%ms0ff!H+%(CH81^V`_2mZ1Jj|OcfNliz z%hAnh%anM|6Ic{sT5loBTTXbFhYkFe!Joy< zw31PkO^~Q+6IldIVHNY0R=IBpDV7 zcr*h&eWP8<@?%y;#(5S-M*DGwBHH246O@XRlJhEzb#<%@ij2&RRVuclvUJ0rN01jby*J0CVtWM~|EHcdKeoA4= zVZ%zw=&RQ^(&#S$2W5;->jm(*@y8~}e6nIOxb{b?Vlg*C2_`V@fvRxdkeC>;6A9>z z%Bl;pXY3C6w{ZQprY(<%T^XjqM*g!ha!hg?xwX z0yp`A2s8NA*s#yTP*vH>Qty*U%2p7<4zhXyq5Y^pue#BPSEU2@(G2!Nbe#bbtO5!6 z94?GN8y=2FhH(Z3)$a}kB|iQLnIM*YgiQvAGn4`sn3%ZF4JQr-l?WHvR4kS}6ygTg z9zup)+!R74DEGgY`3J|`iMszO^GAK;7>0to5Dt0uq3obc$f3lcJ_SmPw-e%f3beZj zyuQ8g^u)=ACv~uRWoDLm*p&?VN zSgomi1`N1#ZIr2b%e;PKW1WduoaeS03T-;UoG*_|(yY7a?T25((?wd*7;PbiZX14T1_)==qu2CC!HCuRLvBBcQ@$Ri#XKHiN=0wq`E6{T7 z`jB&;ein8!qoE1kQpyE)kXWI`WwTy_R_*b{=j46XHT?o$pV~Yj&ueFS zcPyLQLg-RyC2-~fG<165uC-n`5564*iM*ihU7i8sif6RYvax5 zso*JFDQ96}Y2xH);cia#ue9t!K2YDdDU{RcyyvmQc_y#$SS_Wvx?D}|>7g0uGvLn* zx(Nz_0eJ=6YWo8RIsYbR{m;drtc?G-{Ip}&tkW1#eq6Z0>5?mHhwIBymq#nH)0~O< z%*qmgSk?-GtuPlHw|hk(4~wA)Jn@>IvW)JY?Kv_T5Ti_n2ksK=JlkkgD`AbE&>+e zYk{eGz)LzWFU`uyfYn)&+H%ysIKld|g+^1wxU7350nA7Wxs_TLqgjHE7DfHVsI2M0 zp)cF6YouD7SuTHHlc0vc;KR7h^|nVmizA*b(VtvhH}7zjSxBz6FwjEZAt2A*^mV6I4BP(8Q( z8~@%MQJT)VbedXEy0sA-O@;?L1#{5rU<5$dg7*PT*UeTLRh3gaLmB6~9$q{!AkS&*? zFNNd~8;p$HmRetzpMrE)fxZ(sX8dDcL**B4=590kI?}DImuo9H%4ce|wQ|+VFWN$4 z zPLY@4yG11IzvIy`gwBM~S;>C2_IjWV*u1bw60K2nk-TjfH=w$@^Yj?iiBg+Ucjgog z@AFZuTxx;#;BIJ`-)J!H&??ooIX^vmb%d9<9$`gv*ZP<;Im}F(q-Ppob;tW9!a1So zvc^ad<=zgmNF5nv~qZU7J{LuM7S|g8A(W$ zv@=8-2{W`d3hXc-9D`^#PINHoOb`$Q$U~8;69JB`_)~(rQKPs4Vz7;gSQO+;JW!HR z_lQny5|CpUh+L&fT=ywZc*#(c(}j%01K{>6vsn5Ce{?QFLdZ)&Od!0{D0Ddq6Mdy2 zF=C(uEMcHhD`w3A9??;+F%IiQ`NaYduuEtZL(okC9t@KhAp}$;zl`eOw3vs3q|pz{ zMaj@n-L~lzcBMo!Y!y{tZ&ek^f;WpNHGf269G3glljLy71mudDe&aD(>AQBTWDRpT zQABK%{{_)-vyA)dCM4^;Z1Q8n2ZfY^@lS;MSIdrA{@LKJ9Xn#(Lxdvs@CKJytYThu zQ-ZE8oi09{gUmJrjlwGzV=0KGHnxF@MH8mMKD}jc8hEvPr|&X39QQJV?FJ#Qk&g@Q zkDU%-?^`;J&G50xER(Xl29tf{ghPKr3>jFsv-!<5@31InL+%xX4og?!P;FRU~8? zu0A$@|Fd?mRcMc0CL$L%W=c9aHF#RwD!zm(gbY`2%j;s#i0;St3 z8I~Nib2b;pwaMx$OZ}-sYo1n%eOf%JMqC!n?&P5xcM1_hCBGFT1WLQAFgj#29x5u_ z`BQzo9u_Wn$JpT!=xmzJ_RDK;de^?4dJ-ZM+9b7?x(NhCxri9o#_MWrc)B<|rxj57 z`0$v7vK9Oo*Q7Myx+><~C|p9ISmAD1BM&csgV3Bgy*M@7_!aip5dL}{ah2XyQ~0or zCo$e=cRGf`TgAF`wr!7%Q>txPP+byHc{&GN*(6@8K4W@00~n?1$Y}bgcqeDH z1s<6-k2}YNO2Wm%DNW;+b#jvf>OK=4(AQq59D_kYeo zG*McE51t2_;)uF`WvRnn@C1$FM!lV-fq{eLD=U5gh{A~;dU=6lyNCs>L!ujnCQG2S zQj)l$O6rh=D4>|(OQA{Sg+&6j4)Q=2xMs<;WHivEBu@+cFl8Ya04>FvVrW9zMDmbM zzFrEGagsXvgsiBukmY`(5J$u;A+O4VpV4CEDZgDyiH>iIDbq^|lfp&-S<}qYBxNZe zV2}CI^9S6f_YPp@2>B&KT@wz+X_L&|BnT!Xy>9rm#(ppM%5+=pZd}Vu_BlM@*Hl^+gGJeVtW^%V2P_if%H$gHP0Z#c8iiB_*_z7 z*4rZ|f~Cd2-;%NLo0?cwhK^hrtb~+%yQ^uB^`^|vuZLUTC+KrH*jUBxm06dDP`;^o zaRE!WHMu+)JbF|;3HUCwzBqd_`!wG-Zn>pceLBR|Y24|>H7$&3=~_Hu!r~uotSEO~ z2PGHZO{A_K*rMINc&uj2Cim8* zgH+#=%rH_**v{Tw?{a^wsI?P!!i$i8s5FaFySdYJ|y~=h46u zG{Mi*@OIG_FWJI2XL^)$c}f>hc*MOTK}|xXKrhI3_+1iIIDw=CNLvpH&K;1h_S2u-uQ}_>B#V&yVQl{kI#*9hN*ZbmW|74)g!w{|cCIrb z15S(FOoreDtE?DbVY&Q!MlZIhU1Jb9!?t2JOEq4~UW)5FVD8k5)BTD*B*>l1r<`r# z#Kg8I7Q@E}^l1TK@lTBUn}GR0n=1DIRy>xl7Mc2AjLHWMKNAflA&Zu5I*dwLgC^2b z0=^kZ&UroiO(-^)$BRB8>~NX#BAndDYB#$BP6#U)Dx3jd))K}eUwbfAS5Mo{RTXK6 zn}15ab$q+gub1oC?`dqUH^Ao=$7J=2;pj4YXT7t*?bWYS&now;At=l`ZZSi6>T;fW z*7M)8vp6RCw)}YV#D3A>Tl*jp*TV3s;)T@1=<2~Ip%LF8T(H3Pxp!B_*^7{3MW?w0 zvt>;>_-;adk+aF=%AWE$^|h|d%O&5*$pw?a=4h@`i?C;M(OH$ad(Qi!F-))gP=*J| zO<#L`?aZ9R0_MTMB}3pj;cWQ5!UouF{pE`0qbzmGuAL7d?%M^`U7l2O;a87Pkx5W= zQhF$<-Wa4`?<{E`;zN8!Q2^j^)D7<$7B7dnTS;kA9y-92W=`ux8FT+N-(%ZMe2!# z>Ww}|G|z&~!L74>sAY$sj|hAp&%+T(NOj#HOI~go+CX7pS=@vPPpA#*2-k>1Lj}TEl`I zZa8mA*O8Zv$>-C(+93nIzvjGLFm&Tth5m`Ze=FwupZUwi#rTgrRQ#HC?tjKo&iTgR zSSumuV$yNq!+mexX81useqea*Ea|Q-v%RMMh;aMp%n|-#bzlFR zRik7ukQ=XiAYW3oc{ox;QA76@8TSk`XqV_dY3~4Ksr|{(nzdr>~Tpr(?iopgp>dTuI6}BfAXo6IWt+|${S1+_i`b)`A5kA_`=>+%C8KVU|q}6dg<9{ zaP!#H)UGCFK{}?Ad3xnvLFWSl&Z$SU0t<<|l=Tx?c@aaDzr*2V05&oM3wzPOxs#Od z0}bImUWd(y#n_}e^80vqthfsz>`l&B-w=g0M%0jyO|zfDz2mtpf$0>)F~XII@5)j? zF@Fp(51LA*JpyR~*5OY1Wfr%FVTrX5BL;9S>}9P^JZx>RUkChg=QXz;1Q_YQy#I-l zf781EFPvogZ=BQ)+abdGxTR@Y(|$OmGSvS790KWX4Fnd)U%s<4tqJCIEgC;xa9p)I z>Pc(5dd@lA7NuTmrORF{?I+caiFwT56*##!xGa2go@-nel^R}dzY^W*z&@c`j^8*r zlHfCM*m_vH>SDj^Y2{vylTkgyC}P2X^dlkV>07ks}$L|)YobskE~z1 zT3?Wv;W%ljw8Oi3XjCRqFXe%0qs#p&?O8z|wRCc2$vtxa99%ti(YJ8A=HG^=;W4K> z-;h}`SHZz?f32era4*MjIJQ@;OP*_^&u{F2cFK>F8UBYcPC+09_`@biu0% zCJ#c3^H}C``C8mUz6aic6lxIyP{=G)18!J>lshZYmoW@j0+vs97@Wa%7?6=gD>w!#0YLZ72N$n35_oZ#-}TENfolmGO+CM zJ6^QTG*5y*r0V7oH2^=J2sHB%79ukihMxsU9zDfOgrY@5;woh(=ZeaTq=Sy?EJb7n z>m&x@?k1pt4#z1uwIuC6{iQ&FQFUMb^HUdUx z3X6xrjH6GhIJ#HK919+ty3MQHO$qNr5z-m|GI7kDhi~L(p5Q2G;%U@cxdi-x)^BTR zo0=FfubJVdet848wW7NJ6R-YO*ZM#6>SOioKWtr`c2pV>`iH!Lp=BMXq$rV2juuy5 z8#gK@Fun8&8q7(iNE9r4uz~3|q*JCC7j$z+z`6T+=Q;Ng4koc|lk+9V6Qpa6?FRt; zTWQiU$gmSGL$-BkS54gB(^m*RV}OM#$A^{>nZ-%(CUtN)_M!XM?Op6GeP+$o$0XL`DKr@~<#hMm(9p`=37ooF05-m{;J zBQ8`Hmwe+1)@<{LEe+c;OBz8ttGl;g}pn7&kbEpan z3Uz$2#n-$B2;vH{i)>jxRp!A6^+}ItTs|}*(}e9R|1TfEhRxk3s~NJsnA^Fy52;}> zapZ(j5O0)$CWfb{MPQUslg7Un|~<+30C{{35reM~Ts7yC)F zjS1F#(9PBAT-?`pI4`@axT50<1n<*}?91(A8>hzMJjxRTlD>zWv7ou9OFlyH-Ez#6 zUH-tlqp(&f^7qQ(_b1VUB@^EU>0$S@*piC^rX%PL*{Cjxp4a7BvFW;-(z6!tI0&B> z4!7U)@^c?vf82*bF%dhWfpAZihn3`+Dk$!$wyeeK1Z=OFsL_n!6rOtqax zU~PjFuSK;llb4ooLT5j!u=pdQM2ew3!jf8+WQIHw0vrG(xA2CB;zlm7Ik_6lvha2oDG_>Y9KWRorMOVoYNc&;$j>>7oF?7_u(O zt7Jx{a5+-w98_4OV+>K~ePQTmlf9Vaf+?0@aUhnNid4^FtX`g?8zQNUUyL{(TR3fq zI1q;k6DMYp6p<8BK*lfAAmcLbu-tdUlL_!b3+oN%#dw*DEb5m@T5VXA?3*dd3oZ~s zfc;y_$Yhg35f)sa$Mw+R5Js6{Bq-UYOE14!F+L$KvIrv9RcbYm5 zar52-jDyM6rlhSxI0$r~)~22UEIhP?a1;XRB+L|kge0qQMx;3K9>&Y|6ctt+O51J~ z4R|}Kr-A>17s7(YLuVM3r&D06W4CHNQlt6lWx$)^oOqOmA?FJ?fmG1#vtDXj79~d^Rt{AH$l}Y)w2eeFd zVd#ECLyJzMug%SkF~}omm$-whGwO5xVV2dF!iOJz&%*Ypu0tcsnJY?q+77OgC2mr) zq!mWyp&!}h!&+T=Q*s{ZcSfv>e4;`ld?-9Q)#pC$ie9591^U3Zn_N`v?pJe|{?cA} zYavLR#SCHD@rpe~t^5OGc&Av*zvRjKs*omNB?ssB$0#L`D${@?&5=kDyFe1Nz2=es5drn^W34r>I3oLf{5yV}FJE)idb$?@8o8 z!TPU+ZWiW$)GujIty%jMVL@#=RQmPMW20GFtn~hLJWFw{${f81L*d8&*dw4d-$E#0 z0?k70hO+yEfp6|W11@YDIrl60CnsTh@VFF2@L6F7qu9M*coWPY9Js}D(=#-4HjWVS z+iuLR3gJkL-4jIZpa;Mek8u2bgPLE;({f+UqVFp}Pnz%{dU_76bH%CQEweJA%`@W9 z2w;hSJGU7@Zcp|lR9NE-V=f%*^Q&W7EK#W>!U`W1!n3P8NR*PQ(eeIncj@VZS<0O| zn+?b?nRov_l`jY^F1c)>wT_@diYq`sNZ-j0DYE-AqmrxcU|pO{wCdL zVz|05BGgm;goXlmGp|UvukF5p_ZZ23{Sz4fP9*;CV66NF2K1#zrr*e4V4M*%k!!b* z>zqa}@q=_1l74svBTx4`dd^I_v4nmvTQc%@O^Mw(w>^~e-^J3SS3C1edO+$Y;ggNH zw*8jGw#GiHh;MJD?{M)!^IbC#2+(uE8!lObZ92Jz?g|zuN1`$gW(})P9&tk#Xd8kAbtMcWy_NT^v^dKo^sK8-@*lA-T3~Gk+ z5yRzCC;bg_*`I03nQyC#TJmC$HrBa*#rOg0umkba}+&W3PhHXq#{{*)jRL5+2O zOdI^dvA=SAdPfX4b6=p@!wVkVt6eHtPj0PPrF5#iReZlamo_;`EqmImMLEyY?mhI~ z43#)<3%#fJ3#4GGx9jQ?xC(sK1I-8g&@7a7^(5wE zJ!!CS7=CJv^8J_$F8gfoS@j1)lYcZi_@%Pj(aX8#QX1_L7IJGmeLrzr224N)j5 zwUC6uk8}p2U3Aewb@nViRub+WSO|(?wMkfgW{AdmuaK zNPWPfO(F9^YOO6wqSaL+KjN+R=Xf)l`STm70oaY>pNR0Uq*_+af2?28j{8qx z?IX!+o!|UZfQLp*a>#OCe)TRgaA^Z7zZj?SBK6d3;f)0+EC=*uNy^+($O-GhXy*I>H z-5!USGj=SV^?QfS^jiIWYi4#{@}9yy_S+QXou?aX%hN~?2i?GaABXH`>c5hK2cK)^ z9TnU)8>`cP+c)#?>-C47;jLVt^-phD=sR2@-#dO=8}nRhf4wcgYHO=4eAr?0Zla%I z{b^V37m`x%a=Wjg$IKZ$ zmK=}-#2*CjWq~o}fEz%Hx0#sg_Y&BtRfKc0aodjZMsO&^A9W~n= z01;<)u!4GI+8j2G9g>nB87ew;nty;F35ms;3*^aH1!=&a7(_>s} zgZ9-ca#l68Y)${CQoj*S>u;BTBWA6#3Q#?+t}Pta?N5*o|Y<_hCLDSyO_X7tgM7wO{DQ zPNQR8u3T|-#tU2Xy)W>s7R9flBOQK-`&jYFO4iVLd*tZpC%7!;jHWZEQTSfReEYfP4nX@vJ zoOI^ZMF&1_&Hc6IPSf?u2@x}gKIJc}s3daI2r*>A1@I;xq8Ib}>7c6rrRsl~jOS6n zC|>plUIQhGnWqS1s4lSMS(O>!;*W)Db+KL!^;{1ETt@LM zJnNTZ9C|9w%FS5ma|4ouv}jv9?UFja6?ZF_;~nXvzGo+?oxZS>4y$9m!yRkxlZLY2 z&(N~lx8;8##lO-vS=j#3nfy^FV(!m~K5*d`s^wfY`faX(NLWqn(tvRE9+Z`!5^bY zeOyy_r3N3P@TrqMJmWln0_5gjw17&jggdVqM%5ZM-~_mEw|t>R&AuG_fL#4$)#AD= zwD=(Il9qgZ<819bc(@#dzL4T?d(`#tQY7*Y*hpDh--P-{XHnm2qfmRENLYJbAMBv(0v(3Y6rR3U_a?OiMGU zd%uGb;8eH#38{aj__475^Y~8xkWms@oIuGNBXsJgSwf%U|n*E1tK@&@9M1M^9Cgc^pDvM_|`@9a}^epRm+O;6a zQwyY3(^6sPL(k%T$z>NhL9Z8Elh_wZ1%9iQFkW;KJX63p4t9rKHqcUqHm0SNSM)%y z$k<7HICM-ZH@j^IeqUnxj8`KYs4+OI zC{@aFfdC>17;-^TL1*A9gc0;ol0m16F+4qf-Em#+Y?~7|eoKb)A$IxB?4Hl+zO{*Y~!Kcdrefitn~|#1LS<1Cbn!A8zUeK6>jH!b<6%9i65T{PfdY zHIb>qZX{G=QxF3%oaT4~a7|M5oPyM?ZX{aPQiTM zf83-k7@y+kI_H{a%God<*OgHd$F3cYKt0!_-jTl*C#ILn>&>NLebGWMjWXzA&JKLYE zZF7ce8EhEyD*+anbQ(%dg|KZj?e?wmQ`Ih7i@_;JdgrOaX**<0!$hPs=;j6M|3e@tV`f_nXiTaG$7t23L84lb(z^ejkVE zM`z@MP}9RPJ;IDM>H!t=YA564!8OL1a@9dnwak?N7(8yv79VmnuMMH`*fSM1p_6lg z^xAff=Y*-Fw8g=ljAsE^QlJr2AK?p8gMmRYQwk<}AiU66USLaq->1U~SE`Sc0d4{V z0WjL^9~3vdI!0fFVu954>p;0)Mi;qC>h4A}B+XsPomj?+OpKotd-BU4nU}u49@_^q zmUD788|z^Zk{aO`K|1#p0bvmum;F)P9i#JG4wTB3;BzPO?O{!DVJ>oknC(a}3RJB= zSTD0{iI}hUOyj_5!9#CZRJ#0D(<=B+nz#K#=Vz+^0_)WfjNxi?AU7vRJ5FS<(1Uff zFx5nG#OeY85;G_A9V4E^Fg^o1*aaDGT#uD6dIrA*vB_0we!V_ZqZMi%DP6d!=F)n&?BTi67L1s39nz+S9d z1)i+LqnX%`pzEWEXO6tnoGLX`g(NIjU0R=MjnHMDoAYz7k=s&Xiw1>7pK46!fzznB zO~m!W%y|}XMloN9-g$l*`5URBt9~>(q+@l+#C9uvqskkNTCNT`7>b^5Z@p&i^`CKG zl;}uDPTLR}pzpee*S|iKqR2K1us4C*LESQ{pJ()`>qmhZ$#isOJUj1wWdDDP3~L9k zy6{XYO49?E>2uppKCA6K&Xf<67IDXk|DbI7o~YXr-C$~}N?Gru_T|;OKSk{uT^_UI zy$}>~G_-=Ma{io>y4-?lCf@H*9C3acut@}7V(Oy%n#7pe-XAIJpTxa=Ih#62srlKR z9&#oUJ6$!#E5J6OH@ZbBP~BKL+t+n_KD+3Me!c#>jx@lB*OkUW)e)}i@afsV+F%1N zoT$8C>v6ZSi6WHWDoMONEJCFNcVW$CbzLOt$1d!!GK^@{USZZi4=QJO z^mQtO^lxOtF6)~vZfl-b87S`;VeZrFNP?iQ^YNA#knYTP@|bH}0kX|gLki`UwZ*=2_Ck|bzjMT>*Lcyx7*__Xw0 zdx;KAV^#G~^CEVY44?sNh7l?*FJ70576qiRvnsO&=b{9sZV^o^hBH{ z35f(f2hZy$X)6E)6#uP0c2l&`A~j&kIQsi0oPXSo4bUx`ICz(O;d8F?zN?{qs*!e2Z7%a zP++;@g1|klTk4WyBG>D1;2*_Zh;kG?w}s7Q8CaJ6l3@T1>SA({5pD;ciSd5r9)_KT zhKENem!8@2@!ePOx7WUyh0pWSM-jfm0NP7i$74df&IX*zC!tE1T?GRSGNNVPaid#a zoUI%LB<6s| z>T7y+Rt7KkR?~b^%{Nk>OZ{>XPv{kvBJ{O+UN0Y6efUvlDm+v(xpGKcB{9QBoa>`4 zue+?(Pgp9Qzl1dKqkls)Q=jTgNk=aV@FU~8aiLy7&bhu{ zPN`vTEuP&6&*p4vtUFa~rQo`$Zj&KRT7|9rb ze44RIEr5LGMfp+O3s+Q_j$cf!y0F%#R=n6@`_?IqV=?Q?PBo98eY703V7&?+gr!*6 zc&n)O_8LH(ApCc#rQ*~5M~jF3SCy`lyxB~2I%)()hu(CX6X2;DcRF=tTKzq}F7^{j zks5XL_TskqsT$ijQ)JuS`L@(oC=N6H8)z{{)P^e53d5_Ax(4eHq@&;ko8sRhnDXQ3 z3Kiy=3W&f<#SLxolIWh+iP=wDV*;ng#8tu3uJB(&Incz~TR~IbxVlB@c6DhmFBPL`P63(wvS!74*O6e+%sGJIpaL^c! z&kTu1#*S}CVfDft*zFW}n6P0gfo{nr%o!|?k$q-x5}Uq4;y?*+#Lx^4qf?b}Q=ii= zuIt$Se1~cwre0m2Bl-k**vgAx?-Kw`euUcilLP;+vJL+%dbH5fi$+mUGgtT-H(4bd zKLiRwPz8bbhc9RPn_&C@H#%VBVE#vRkf84N6>VWXgNOw*TLmkZO?e`3PNVqO7pu8Y znYB*H@@*wGumCo4UkKr^J@isvjWN1Eu?sn)FO;aYXeG(_rOcN?oEcbDYTV6d9PxQh z+>Aj0Z|QwJeJO^Lxf~K78rv>lk!u?VTzS`f?@AZWzg9c+2S(uTF+W1ht#YvlB+7s{ zY3huojvBSG=z;W4@&?uziW>gBx`#3)c$#$k+)?|wNq;*>81v4$6~`2gdBy$kHj2^A z*)itrF|*-D?XqQh;KJxPfcvqo;@;twA+8K2{#m9KoQ(NPk@U@58JEL;WjqaQOm-JB z_0+S&{^-r-I%Wue2AKv05=>HQ!d5m(HLXIOb>g=j+L$PFR!JZ- z;8EH+G$%e*GM|!Di6CF0c>?el7(gv%?q>8W_%%FUlFT3S*E**%e3oD42jA{2~_+O9~2YotLp+)HsWb#Y}8{glrVYTtLP+r-eJ`k~rw z5qdFbQP>i-0qYq?GnB4JRgciHv}$e<$C7UUM|sb@A#PQ~qRAf9IinY4dJFOj$#uC@{}2KPe2!9GtRyD zT+AsuPPu;zHOfo@5LGp+UkPrR*QydfO>=ep~4UC$zHc6Y|a0*cK;I2E|U6V54qTu|D zQa7M$vpIk;*DE$9p2(APMPgL~uFrt)cv)Dn5N7XI{z(F3);Jk#?*`5^HHXib>Uy36 z*n>dfWRT`@HTX&L>Z3ND$$<{rx7qxYg9UF0tvVBNt9>U8y;NfaH25U=W}_$3a$!Py zlu=n-RI+UTuh$6ekYX;G>hu|RnmWRz4i2nVDp6fVImCUHvuuz9dBFTU|1$rlve~ae z%~h}ceCR3PZGoaElkS7w-LST&F33JL=clbpX9bYsRRIDNnM~QyD0P8Y(+06M@l-@q zB6K?PZtmLnoQm&&=IOj1Q*Pc)1+)!8wiN29>D^kJ_2DId)!$h|7r6`G$#7Df`FCQF zwo^SHnhyl;FMK%yaA+(ZA^ES$!Cz4UIJPSD&Sly47+Dji9^E)g7TFCJWii;*$qyXx zqo;&Dy&sZ_^5&JcwRf;n9f#@0aXquxQI(n++>k&RQfYOw8kg49ptB+kJ|A zzA)u3J;nh&BApmta8~pZHIB>n7bom;1FNwre4n0MU#Ylzx7`~l&3y2FqH4rEGz~l% zwHDCKYRjM6HY9!@!jgk0xU_I`0)6Ao2Uv=$Pa-ehydpMT;j1)eS0s85R_b3s8TUgU zg46_^z|=rfKcFcF2A>-~HEYZ(FU~>v358GE%8e5%@KHuKY<0oFOjp!a70sAy4Xi|) z?lX1um_$eqg-e5a%(Ww@)`NU!mP@W^>)$ zLDR?uk9zm69Vp(V(_2y4I)0kqqnDJ&xQ^B=gCU;c9(9TK%=x9R(7P}AFTz zpJy*bk3ffgvbtFI(ncEOuM9rZRD)mh$ry1T`km?R31(8o^lK+h&_Y>SXVvgQPZ(CeP;ETf!PYdE5+jsvKe!*Dm3*=~04;mAgV}f~f zRe0xQ-4r)l#FGfzpEG_mgeDfB+|D!LU-qvJjnuokWKR!~6&LVQne-s_dArA*I7Ypt(j_!1)FbxisxrclUDDOAEFI{)GL~d|jt*|JcR5Vx z#wfcAHj9I8k`(Q)Kv7Wui-!O>375Huq2tG`FR{XtDhuj%zRVA0YpvZY3(8IPn|XfZ z@Hf{t@H7Du7zx9Rle=DoNS+9=lKii*%MLuxQ=`%51g-842ysXcu$-2i8o&9bk~Ppl z&;v;LXs9#9V-C48(y|1w$l}op8^C`uyYQfrn(FVdBdH;El`s|^;S15z(+tY5!Wz6O@`)iIF>euxp9QDoAYNVA7rU6^zP4%XZV%?W-h1NiBpAhFyH z6g2JWF0RsSx_wV+_O{2-QBFwsM$(;B-VTG(Mpuqrf!QY1tML} zMOAHKI^|R(WDLD&7)Qw#DYLG$blh-Ce0asyMEAhz&}pT7OZA(N^}D}sisr6sI9Kmy zl-c4Hc8iC@JP)C2^0L*al&hMib%+v>X?JIYOa zjJj>q2p#*=R;FO!0DWu@#cToO+&x(Gh3F^Lcing*-p-(sbQV&lSp>;80+yexf-4J= zG2{2pO?gDoQ>H_UO9E?DaUMxNSFteaArr||t;HG^3Y;8sJ2fk}26>0*z`UqIPC(@) zIp3GuXIzU!$XX(mQO#~-J^3s!)P50P{|;%bZxNVnIG9!){;PZcw`!d_#oi>n>DDq> z+sM14OK$~+|MsGys&my{sA1{$Ctzf41gqylGmJ&#>r%}C!1A$6_?}6u=LE)=d7E&> z1M~5z)F2*&em8DL*I28GO?bqtCf7>=kGaGPWt@DFf%=zZY&BX?r&w>#i4}!BhQ$9v z**gVk7Is^@S!uJEBd*L7Ihj*D~XQ~zJrb0AXeFR zn&;aC>cD=A5cY<4Pi?w$E6=>wl*i-;^nr8Hxal~ffG!nbZBguLjsbuNmX6Eitf%AQ zVN%4>MPHj&R9gYomM=^jYlz4OCPR0~)OB+Ck`8Y~xYMxMaDqx5!fSkf@GcFfA;b(5uie5p?Q z**Xa&3_=UMs<;s<#?A8}hCc0`MN^%1T&n`=g~Tm}1Acg!_Sc0>%1jpb!u!MjcmSat z1mOLwd#-q4T+m;bKika)Tl&t2%fDws1?#=YDK!WoKq$u&L^M_-U>q zE!rB(Y6o_Lr`@ueXY0D*!Cejy=d9RsuFN+c!cpqo3H7C3%9NTRTkCYkQPmU8?A@H=8KHi1i-mT*=o@z@0zELq$KaaV) zb;wf?_Vn{ThuT{CT8SRf4v$CZ~Ceudj#xi1!|}XaAb<^l)3Hm6+nc znvyA(3pJZGIQd_lFlea*?(`+b;xQ$a0=>M&#K=)TJRs42MtJa`|M>rGm= zd>F6y6BR4ntB-j}7+owv-DWFbr z5HZ0=%bMB~_w}b^nJNgW&FkC#%A+$;IhmoLF8}`FG!t7!Qbjh%%Ch(&Is=jblt<%L zog*T_jihO?KQnY>wbcHZzmE#){LrI;nZ}|cSX--b|Syr*I zrtf5?{OSB&huZrS08}NNXo>9ms!y5}C(7VRNUREqPS)8z}kuZ9m0Z-lFj4rd2WaLVB$_d)WR|~=wOx%22&{pGQJoX zsyzGq)}k(zb+dlxVI^DJQ%^$36HGVfuF5pb-nI8RDbBl%wXe5^u|Y}gTE1vO1w!%L zqbOVy*gH~iSyxGYULBICou1T7u&++<=XI8f^BAv-i!4(KHvzH` z=_cHr->NDeZkZwT@~iFhf~klqL=_vbh%02(G5tp+Z3zQ8DLp5_`>X?^hJC))uWh{-{WFhB{(#l`P((@ zmE!NI$Mh|luXpczz6^O=fOjSMDYyfNh>>_6uoIF(Bfp+W=;igO$reg42k?}bRiXHO zGQ%{%8TeuAdHK957sB#@>s~xP9p|DdCSW{>E+hYkLg^uOmfts5RH-OZJS<8MV)V1; z;Z8Yu8L^@ z4JJ&m4u9vEG`oO=hB)}uJS%eh3U$TE1EP+9*-vAfB|fe`>PguGxU+5J}hGbqsEeNy+DSs?W!O`=;m<`hH%> zB9KiHrMxf>Qa;IGDdc6@>a0f&$@H^VCbQ9ey;{$(T2U({cye@tnhb+oU}=IBS10I* z{~@5parRvxrpiTa^7X?hZRASHOJ4R8nSV8;0(AbGKESAi8IcTP-6Y7lW#4gaVJ4 zrRq}BBAKZk7$?R+3&YiF>75bXTJL1q%2w zSZ*-m|Af`~by;()6%!R4{m-Lt>5xQ<;YmaD6mAw?8KUSwkg9}TMstFz623l%=g-sN z7Npv&y0QwX&*>v94A&6tk|-#B6Y*MH&`?{98ta(|regheN=${__9j`7hQ}N;=Gm0w zT2)fGHyo*o%j-PrNOcg_f)(jb`{$x=wPP7KP}R(3HWp{He`rWl2gbQ@eO75uSKrAE zq5{u6CEPriTX&w(4gp2KpX_V`3SsfMZ+>}>DWR5;4dvI>td6##W<^a=`2`#ka4z1EyD6jg`EVs9sS2w10fsThYEcYrr@IR zV1WevYblJt7_Ke%kWiBXB}?g=xjC)a1JTn^HB;<|7)Z`@_~JF~Tz_8)ML<`^4X?_ zYWr<(@VZu|6dXj>2@WANpkng@RfqLazC0|LcX8Z!hD%;Ti3znt%QzV|472Rn+v(9_ zrbET}7|XJO&Unc}BDxR3zHft<%Ma9RcRMuQKuIzoCT?dw&2G5AL{3eL**u!qEaQb~ zRfgn)H}f+G{wU7<)}c)p7M^%+`pEitg3VOUgvsS@@E*hrh6RiPORd=}=b(M+a|>^U z*1z6T5f4X9Jb?}MUyBR<7VyE&QmBF`>5?B1Q-c_4Ws}V*Mg?CyvjqD52u(iF=di0KpER4$mQ!omCIBQWR4NjovZ+G|_muA6iwdW^{HljGONMMB3n*1WcxGJVKMME118fqH?#jv`ec6C|g z=1v>Y%#>X^#%fj5HL>k(c$l&d$n&*PLB)d3(lfFg{-Jy2kH*e7_@74C|5u_xrvDOa z@W1Ec47GIMnLQ^Vdlfw`2tYv0v5*4)Q}zGQH2uF0#+jJ@E4;`?)l(To4J!vRz7IMY-HiL|*u)PBo%aNB|kwJyacE5DZv|D0Ei=DHJr008!9OUZ;tV zx?WLDOHD_$s)Dyl6K0>?ZHN=i_hB&W-m8ihgx%Djs7vsXr3b$e&ODS^GbPnMrs4Wq79tZS+`7g0{`^eag!|-D9z$@gHJbfoa z|I$-hWSKz*!EN&r8%&t%_??Faq-bSQ_P|B4>m4 zw6Hngb;-%JoGd{?v5>S}5mSZ=rRp`2@$|PQZo#4@tVX*9fQ*Y)XXMbl5fk=jiAp(K zIEyHV(YTnRF_KTFk0vZE-1HAing zNOyznRDLvHFr&OxMQhGxWUU|(Lj`r<%({)DTi`o zhxl1(*@7yz&oYlpitb? zOS#dOLilSppw)wX_TpOECe%OrjZRQxmLjecp=vy=P!1RV#7Gi{RZ{7AdP>_=d6Wwq ze{0!Xcn{=UcQtX(b+2sIoF82+S1(L9w%L{>ijDL4xE3ni)8L7j5FLoP2-UsP!c)P( z8;NvAyPY=aQ>hm!6{_KT+rfM0$8N$FE*5l_$ z*&aj#MVyMlwYC5Zo4`~6$Uv2FFh#t>X(V9*&`{q{QLp)OLtRl?IQhVWbXRBl_BJ#W zRG(E8ROETH1(NwrO5;omss#quRonH^<8Z}*ZcRVFqaf^F{8s0Fn0_c4lCA2~=h8Bs zD`DMK+eB}aT~IeVHImR$zk>e@{<=g!T_&W@jdC1ipt0U(HGQlbTDW+&69*P9puomI zx}nLe&q;N(D!_eS^?*_YqN(orA>8E3*2g)MbA{IP*k|lzfD`7Z?YK2sy&RAsWVLbF zOyy|0sJvE~BcvB_8nVs4NPgSE!gSPtYVjM(QLnMOuC`6mq5&z5E5Bv@#$IEea8a#pY5@Y|JBDnT4{Zf=hsL>-K6Y%WeSTl8K8zO=DBQNhquR zCo9el&apb4^|{C?G;)ab8h*QyK+d*s-QCF_1wBl0OO?s51$7rBgU0t?p4>1ix zKS}*Tw)KfYx)p67;g23&epOM?2KA_j=lV^nZj7# z&fOSuN=^UHIoQNNWWi`JLeOM?bWj1Dqc*v4`24U2ug=&@?o|j+gYl{D5r#LE#t?ui z0rts<>{3+MA3Bg_sl6`*h*=7jXJV3F5$dZKej1$@+~}nN z=MFI`{EyLj2!+3c8G>qbdhdqkuI5BR;K35r10k4JZ3B43F@F!7?kaTkxk2{`eqHv- zHJ-GpC)c3-`dx>oU@z{q*x8ZbK@<$+GOwAv57nc{Gs}A$s?QOLO>LuyD*>q*OlF3G= z)4u;35f`aoZpY55YstQ1LW0`!@ncKuTD);~g#Vnzs?2iDvy-od&qfSM%R1i{r+v3onva)} zJeJIMQiqw|gEJ_9&LeJa6z$9yhmOoY3v80>)lX%18Rn=n9eKC;(Yx=fk$W-b0vLfL zp4z|RNWw`}TyR!<&0oiRU99|I zG%=|e-_hbg<#`QN1ARls+s{94Y3H&oPOQVRM0EjG;qucyt)l@9YalM3(u+7?%88A& zffrWQRsq#mHCbb5(X)CEYYbAAY5rSxM%*f_ZP1!-&4x{@T7sncAeqTAZOD+4c7qi2 z3BNXpE%$%wd;UW%{QvK`{%>l7T|`7ieR=hJzdSQdtI}_#%4*0;5iqgdv%MB#6Z7cjpcD>mv>;pNr~(l^k_L=|1tpiJ zff@G1i%liC(%s!0Q_Y+z(mdmD(y&@)y_;yzVN;wpw)H+!|F>awHWbP(CFEd9vxhCkvtu*T*lLXjR&K2ghB;c_-mb*$ev#2T2C!TJ#fr9zEaO=oLFuwxqEm&sC8i2?@{VP1i@=sh zO{toav<01IM~l#ws7>jbLRCdxrOt~U<0{KkDp_@l)!@7k(5t|U7cT~4k>HuP{X zx$fJAN`>%^h8j8Bxt_;t4w3E=GLbXA-5DQ;x)nA{59r&v7QrBFAi!gRru|zJ{ENDcgA1V83Z(R?Hob>%*upVVNa6wnf$lIt2>UT-Ce;b0$FBGZGGr!{-9NQyp!M_^>!zNDH=Qu5>GmBOh(W4L){M`NP zx2>e6)KM~>{>D)9IM~ij)5`Y_?}o?CRTe8Jjo89EFNZtr0iLy%H6-*8hIiw3p@C+N zgts@g0k5q9vyUPOfZ7zkf|~F{7LUJ~Vl6Z^E>PwTL2Yvzgf?@To-9USyDfK2%ke33 zTY+30ifN7E`)uB4fmxJuWL)Sa$A)VcZ61=J?MEp+m)DSNmQBeRpw%GdZS!)dLXUu{ z#daC;<3JoG|J^GY>yJCzS*2cnhIZAC%hiX}H)@IT#uRCM9bU&Et=k1-QgrH!>7MC2 zd2FnQ_5i8(uQ^WjxMam&SjFmjJWx&rufYYn zK;A~HCb;!g*d=WHg_j&lsyXT@#0?DmM+gL%>yM`=HKhiQn7sm*4 zq|Lot|8&*!1}0Xmjoxk9a~G>9aY_KG)CzgAy48K7W)x8cQH9fsU5oFDbX-|uzW@=$U zwRTmb6J)wRrd#%zr_c2@*+WJN){>rVAAmIpSy+7SR+BVeZpxEv&RxGTXhsvbLkUa3a&Fd9ge>9GC^U5@!_(fZ&7-a3HRMBavtz zOv5J*xdn-FKZkGzY9wHxW*!R)E}>!xt`u~8X;`ugZ<4?!Prx_|4|W_@=j;cWe)b z!e77vVwiDc$nrJ;$^XRSpd;CDqzp&3wdriOcd81vUz{G3bt-1#_78A`Mn0 z!yE1j>@rehH>!KL{up|X>)X@Fj*2=3`5HTiTrvG@IrCi@>2$?;;l>gvu* zxztoFpQy`T$(17|Pbc=Y>Xw%qL3!8x>+=YN6CE9YKUHP!W2IVHX%&Otc=X^)YB8%R z{Jwu{s0hah1$V_&a%HkVuwjKBrVe7^&WpMAd z?4H*A&MDfR-h=D?b(Qh)?rOvQ4h^p`fcTJ5@S+x_d2Mm!L8ZLJ115Noj#C9dNiD77=oe zasp_*({Nb}kH}eA;*gpflIUgX=V9_&wsjWquFRokvOQ8EAWkGD{&nW=`@Y%@A-=&p zSOff+VDSaQgVPO+U=8zo0hXk8LIgdXGXy=g1mGPSN|!p)z$%%hkQ4spQ(~Ys*GcWo zaY5e;{=kKwz|@xhxJG7E+nTW-pdGLCu8b}@&0eMN;Bp4-jaOes8J;fMH9{XF!sS@s_UhBkP+y|jp%vn~+RO7#;)!tDV8{&c_1t;V@ zycu#vcW!{`JQHI|SNFI6SYtQ)SZQ~`XJl?NjNFcAs$8s_7lnt-`Y~efnyd{wU=7o% z*)8NjU~UqQ=O*SJuxAJLd=&;0f)&5*k*)u8gw$uXh^VWV5CPJPIJk?}#_$aC1rnJ# zs8$B28{n@#OlUtKkH)qz`MQqPRh?|Ng!Kp&E~w^VpNT+1(UG$}mSWS%e??Un_y0d>`9LjtB5)^b`?9(k-_9aDtiiCfI}~dVnUX&3 z7C4T=c!hGP!U=>bM&Ux((D4St@ZsZiybHA?5djtNT zFOBxf4@K?>+bKN{5{>ytpYaTvCj;B-$@NYY`UgZY-2)26CB9uwkkW0wH{b~sW7vqj zq-9Ra4SH_D9#|byTGSCeJq@P@UB42_7V7Me+Y9qrOc6=KW$0r|akhm|4E|l9`-N-q zpd&eCh{8-6St>ruCuxG}>?E+W`ORD<9va!t{UqpaT{d>|wPGH#7Kbw`(;_87qUmt? z1#IxSWp&AilLN@dT?ch72$H6i17JUa#UI0YN71P_?ViX6X`kqY_KN@!r^@I%?rp#Z z%$f&`J^)M|(BX;=D-s?~Vf}#mKWoQ0RW+1+I{S+yMO1vl#x)RazdyhgM|RUdWZNtNKbt$s`ts%+?%ZJ(XN|Q zBA;RuLvjGZJ1>{+*WJ^Nmk6)@$d++lqTCx%Dj@G%RS9pQ_78wt*0Z>%*scnHX?c`(!ketmGq%`0e{V3_`EFz z7}iGLke)R)6~~Cuf21E|isU?dg>!V>J;^zQ8)PCqZ(w@Nq@rgc^w&xIT8rb+Rf~Hl z>o#98$!YfGUDp4*yBLB``Cd09(;1H4NbdAHbE0AG;Tv5mh6gJl9Y18l5LwL^-oO6( zET7mZPzP$$jx$V((-pfj@ZE6U!OMdttX4m}az_KNm2f-|R!f`O;6KQH?`lcXgzaa8 zwaSz*h?<}DndMxC&C_D@7=0oj$*gvF*@JX|kL61Ew++)8A3(v$s#w>=Th`Rn)xB|< zv;++L817VaIRE!G(fGnl7}o#j5*yDMCwrA_OSSoV_TPu;3mwmU4L?|n9pDfot~SG# zmoJK!42QXh)5Rw>WpkJET&1hooHnF{E{oann5*{}*vD`oPdj$-A7G-JaL&Wk!!a_) z&~Y;V&hhSFtCv2obgrNPj2*&q$D=DrUU0cy@9!V4SY0F6epb+dRsUwH17yM9r=L*F zyGc@i1)r58cx)zJ&w-nGzg-wT`=u>!<#v}zb#X;1MGZO>)KPld7`k zA5xrFBQz$cts-rH$HoRMC-gdG<5}=he7}{Km2TBhDU&|KtV(&@RuEXnsOHJscHYU; zc(JxgBIHO-DbR7jDY~IZ40ppF^;~bm0O!}Rrj|q={-JNoy_RsHUs&YkqMwKZF}hzT zrLafGS0}GmOx>b7_QxSiIX1~hK}AJfUq{;kWT}=xEIB?lGc{hH7fg$GkS4qE)(ai= z1}U6x|NZn}_<$5x?b+e$EgH{0WT;@AT3#?@zbvi;@|js?q_4YZVvmCon>v(4F}@y+ z0;1?ag~#6rjl5FC5#)^v%lN5_w1YG6EbX4TK?9}$!`;L%5@uYtBE{B%1TVl3YFnL(*Bv8 zWhRJ30ig_W1#ArI7a*);f-qQ?oGzXmS?Hxk%_K}+NEL3r{vMmbuZztMw;bNn0l0xOB>@e99e1AsJ>R=3cQ>lJX)jtj zmBj_9+M_`_SE|f;q{t+YSyTy)vb{pzBvAIqyk15aomBI&+FtFlwZM?M>i98c>A>p& z-+*`WM+!0o?;RtJqD{<*ZWE17|JC$)+N2$7YC{h#@G+RKX9r%-=Z;}*!S}Y)5$X2Z z*l}oVjQUz{wH6D;>*3HHuv7t9kK=yQ&3!FOxKF=u1wx z2y!pNl%@iw{Y9B-=8H77?7I;4_G^SHjvxwFiZ#(NAP-*GE5(Rs5K}k-q3bLhSiP9s z*DXtbTYIl${*^Sh7PPr9-7Zw>AL~4>aF3a_)T7mKpgEpoG)^^yyF!NDNuoy1;&oMp=3Z{_z5&}!(w-k{KCGF(e%yrox z8C0IdFoZ&tp&%1Ajr|5oRyIR$ z%|bI!%;ptCOn0xa;Gh7u`PFeM<)P(7?28HaRJi=c_SV`%WWR%P`4#x7*yxji&!$=< znoEINBb-Sy9*FnsXjJ^X7^9NZ5i0IHHLE79`ecVz*oocTM;)d_X=*rF8ivBV@&~6c z(L#}MFUNmY-%DZ>w3q;BN)&xtvy!2B!Wq}6PS{QG5Gf@o=!W#Q1PdoCsEw)0Bf_wlaMm2ccIcIy7I9fXITt z9ij=G3*{eChdJGjZuQD+9CcCq!)a{Tvj)uYMS1g9wEFYW@J?-&b!u-9;$2HT*Bn?i z7t}R`GN*liwq7!jUqxEc5TE=L+NCp=k0R=ucX^F(&FJqhCI;C#LQeq z>a!On;`crOIOVcQ_qu$s%(BB+Nx?k5@B8q}52Sb=YU((>yNFmy7}}7rquqE3?0l9! zd^Cg0c!RwxBJd%9L!@#g40@T?;ZjIFI9w7rKu7H?pFR|=9{F7!lV|ZaE}xjN0Ls!& z7j43GmoXOhmXEU+zEeV1n?_LlZyB!nr#%?Alq3JRe~#UV!On;VA}TeG?X87MKg`C0 z&{WMlkIk4lK9vd#Ftd;M8_6?8WZkA#rGD3x#%8aCO&l3J*X!M^=vuF)gm93BGWf}k zn3!0)6j3t4pu8B{i@b@a6xXu;9GlVCvrQXOgnLYV5@$CAwExjo0oOX8pf=vLr_Q0s zFc>`sGvFB2;#zp!-4pJ zSUCJQ83$r5dv|K%%}zhNj~Xus5Q97<$$ziT%KRU6!2gXqp_enXRC2PRmnHZY4ofd; z0dRC8VB}z9`*&&WWCEZUwKi}v5jHWhGd7`@HnBBxGACf=VEHeBrCr)Kt_$Mz-`zd= zJ+zr^yWT!~lWC5BnEW;+#0g9d$Sx52Rgrb9sj0_c)AW2Q+O=G?k|WnVH8=<~lFyIM z%1g?%>Ju3Pkx6MBfZ5U+V6-H{a_!XtM3f;_1oIfHlKGAPRYaPMt4xNiK~-d`duW3c zozqDFtb9y?j2z{=6etvu4y%GXl8CS1J@J8*5c7gW3*KUWn3H|*s|OeqV0)9CJcf`E zbF~MMCpgw~iS~kfR8vqXu&$tc;r`IHP%A8}lW2+(*R z|F3k^KQsf|tsY*UX zb6DUaAcO0#xUXhlnc{?WnY{_DjLLgs$-XEANnDVqLHm@9fA-aaF~Y7nI56{6{vaC3 zQ$ezVGX&1St1y9aLxvLhf{vQ`tNR%mbXFav0|BWz)COo6&cTC2S1nV(`lAF{_@Z|P znS(G?1v$*(R0DR|1NNHX3$XI16{7W^R)3vh4z?O$R3b)3!z2@GO{2)MDCsX@rXL~aunknp#>2@0~_HdL`&LBfDA@b;V}4}yiLx&(gw$( zmC6jr+edkN+k>4mz%xVA6rzo&zw$<)xfK!`a1J7YIOl=@V?Ps^atz`J@ayB}LULp1 zG9X7fNb3OsKNBFf4N&vMBiF?4VnamLn%!#74#x&?d{7t?pIy>l|V%0aL^ji)h?=cqI&R01<}_T8|XMZ8hT!+iij$L6(T&#*yj;Z$$=( zm~Vm<67I$FW2zG%nlZqI1{m&2Msf9`}7+0#@fS0lOxmPEOBhd8>aU+ z0kOGN5&|&nQLg=DDG59YS{x9>W(d>@a#>Qh9ZW%!KA;#=+g3$^W(q>!iI_RayRh zbbodVIo*xdMKyACdKl*RK0#klQ8}IxMcl^D?# zZxVA@LG|O$YA6p70~ftQZChJN2nN)inq%&q7-!Ru390ZMsywX5St+*dovS9E zqNq%E!-v)L=KF^siiT;gk-rdT#EEQgrZhw=v(u;)Dyq~pJ@MDOGZJuOCvRHq-_2z# zBt&#pH*{o5pJ?c~f}WFT=1&l6`a9S(j($79{+e$ufS_3|`B~79v_`m;eeJ1_6+Ib@kh|L7z_Z!Dm= zQTVO1o)>ZeXqzmFS`np-uE`ZhTR@plJgn1JF;Re2hOQlE3@wWT6@gz<}5+W*LINeYAj+d+}t|>Q>q)Ou4{LB-YDCm{k1$ z-caFvm;d?5A8UbORAS+lH%cu+L`+(COE9Vv^>k(s@6s%YKi z{%7z6rfmPz=N@VS=0MeX)`H<|yD^5SM}m9-udUB1tGFY1N4cJU#B4xwo=u>_&hiZ{ z<8UDT&~~0xCC;aBFPh6f@NZBxVdbq`!yJDugVerONo4_o1-8>Tmq!R%bh3@-nvKm_ za*jo^`38jH^DWRXFEE>tIWKQbecl__&<4D*xz(yghXG4pRWywTH5mM5LloNJ>p6eQ zcC|1J)%fEg1JA_E1bT?0e|AlltYZY3=FH>6<%vy$xDA&0`7_DdnkW)hL!IA-F1}TE=}e-1L(Rd47e%@Wkfqr7IS8jXVF){fSRoHZ<}XMsnX!6B@*W9 zbx7@o)rRgXy_ML+CK_BWJMJF@-`GesCR~s7dO-Fn-a4u8UDS=!ZCuE~_#oCH?;`vT zAlf_J{)7ybG_73!uAV_RNs75?DB3OQ(k5E1J!Lt%lpPmzusKnWBdaAH0^hIvCa!6R z!S+X>mSmnhA3*IY*XM(3fV|OD%fVPqVH;S!oLhOm|KLp+NT0uKe&%Mma+ZOkmVVf5 z|0{1A@iKZAMkHHwRX#sZJ|F1nlw*g#qpKpKfjVV$j&^a*G|)cZ>3S)EgP>>$k<^|D zi?egH%RVv*cOikM#D=A*&>CAkJ-h=579p;`4Ea)tX>~+QSHAszpt2X zf4+fw`TO1hwu3%a=%&33+EuQU;Acr??C~qI7HOy zbGZQGmzSa!<@x>skI!4^#b@0Z#}uMJBJmbCgwtwh;O6bKz1|AHjp`at9SPN?t9reG z4&Blc_keHNRwJi6D!w8ruZ7B;pbC^X2-jdOeDe9}%^N+P@C_r}rb`~B}5LMIaw-unD8i|P99Odac`c|lKp zxQo@g7phT;`*xFMKBnuo2;!?^s>bGzazvY*D(DT6#tu-HT-REq z+QW3&(~XQ03ui|QXCrvoP6NJ5NM?hBF0#xZI0S4YHYV%-G@k6UJ#znGnO51r3x5j| zb%B0f4P@K&czd~&z>YRyP|7_~9H^H`@zywYLA~uG=eF`2kEvW%zLLjOraTVx;@9rALX zxVj)w-U)$0pv0+$xOs@Uxu*DOiFoQu0s}L-0kBMeVM^c_B@~JTa_sywSVwds=#1LJ0I)^2N1cUs_ea^P@6U~^nx zFBzeU_$jJ5#lh>R;%0s8kpuO<>T~Nj(XYqX@|M3QgzPA0T7Yf?nsQSG)`)T=f5vU^ zWQU4(X(&q9P)coA>AIb$4l4zK)uF~D0Bs?2h{ud^PGj`3dhL!f60bpLLc@3m6Px4qyI$OFcuHtUbP?)JU|6iSHF$R?YAkoMnSTBjqHqlRM#eu(6K z*UzaJ4a|H?wN@pkivTN>|Q$-7moyH)JFRh+xjNS%BTDs))69V z+?YFk!h;~$PSRQ!_!vU?`sya=rr|$+%((D}N5dGLNy4RR!iBNY`=be!JRXhwCH5rY z%z7Hh4Sq)-pw7G1vC4ZP#bHHO`a`lX_fsIv-$n9p`5_O&1B0A$)8^kj2UY2V#?)bV z#wZjcEVE&j_r7&ZmrTQvw7}4;2z>?J%$W#|Jah+9dP6Z{x5R;sGLOW84|B2GJVP=W z2=Z-8(~A<}y$bU`9jdc*Xo1KZDwv!(4Me<$wQ+@f|m>o~XXABEP1$6t5 zii2P%NaUP5E2+cV#KoG}IaNc1iTmeav0Zt5t%mtrTdk*bX{FngL9xgBe(wxi@?j(S zI>_sjpDjxjd6YZv3Uf^!>;!^1RDyTEpx*VNEb&3}@%>j@!&+fU6E|U-&odxkcp)WI zW|YnFI=!=>LNq6HE+<^Ok9#)Y+M zP`a*SFsyx+5!#xcT{rNX_A**K$@bsVLmdT?xFL~JR)w{VP?~kVBZ+azo%%)8_K6}x zt#pZ+--u)@g)1qDsy)M6Z%MT~ve)TKhf$YWA4w19QzAD>JX5+!mLUERS%f?-gaDNM zuJ!$%cSciI6=60!tiH3dnW~?MacmD-njB_HHs}ZkC)_7y9gx)j{e_8gP}e5zFW~Uh zWO+w+0wkX|+bP~L@Kq@)$WPWde#F0N(meqP>*Z8Ef7iFy-K?)CNHvUe9ya><)!Y3+ zmJ%v}<%rRbI@L{IIVM$9rd1a@J?qGcnFp9VjoTP#Iyth_FN{RaN+cFW^Qqc(L4NW)KgSTf}F z2#_;CK`nnQ<#lx&>E|!sfcG1D;;^cBcSnC`f5Pc`L-@-2yb@))%S^cCCr!RM0ep2K zU$$X<=3HA3=+T3aP{*E)68_)62G5&I!EEtJddfJYxU}(xn)H9v}uV6Kp3iQ ztNE%C5t>wScJ#_o34GI1_f{L5o2Z=b>RgD}k(>VcC^?9@*r{5vk6&3Rck3mGZ9JQn zYmxJH^K{EXcYT5TK6Z3cmW%s+3ONJmX@(dx^l0wRJ~PHlmZQYkZhJq(AG%nu;O?S^ zBGfgTlDayRTlY7(M{;-v1jT4`(8m=zExgA*DuMKNm&-0YlAs|15FCC_l@pcxmNhf! zk-hXH_Z5^Xpat*3bLQI?EbEe+;1rN$3gto{LpL)_@V-Uol>Ci7YeBxU%WHH?I20p# zDh-n*8@F(XSoW0z5@mWNpo@>Y)bm85o5s(oB=JOfzVRCDKR z55i(8kEkKGyQ276p~@(^wPoNy)Y%eQc`oqe;q&}?#+7vGIIYJIuD%pnX*z}Oil|-_ zb%h+**q7>t7#-aD5-8@hYjNCm&J7a2k$G1$v!kPz^=@zFYu9%|*Y>7pebnOI$%n>l z3@9g^Avt6ju%IbWw)V3;Wh;H?tezM*0*C6h{-=7*m-lrH zH0b8Ml5{_PLk>|SG1tVBbjAz^)AM!=qvV$>?Z-v$78(92olXR5h1e>t0F~;8{BpiN z*QT!~)n5$?6ME$<9@a~ADvfoy(WS>m3GeQkKy)rQ0(&ap?ZuHK<=>93FJs3Ub@HC* ztj|SI^#?xwf)UVPX}9$J-Q7ZVR{;{g zxWB)AO<(5C(C?%~*-X4O zr5$^Rp6cy>v_3sn2t`tf zk~d+{2_v3_9c@DKAZv5aD_?{MDEW;2VU&@Xaa12<-rPU`o>%`zS3i}I6l#pH*x$AW zS_eXj=XBtuYw&RS_V7OI(PePK908)rL+#riAOaqm46yKrzPSusQ(iI+3_@=9K9_vx z^_g)LTtglnENnyAJ?O1upRjF6m^|D3e%XEUoeQcV$^~T?9-U;tqVnSp; zgsHRpkvn;amx4nvks2mqA;B*(kPxspG4L1ayx|WZVq|$fz(}Ht^)_l$ilJg8>VPkx zVFDnOxOfN=6M+CC3Mwj})5B5unE<(|$lg)SQO5X0fe*Z>9GlOK<2{wS+ZZYxG+IZk z?hy(qddXU4w89&>$U9h=7}s~JR^*q%62w1FKOj>=wlKSVVkv7$<-+y?*NTfZC{uL0 zWT)svIjW*$iOGtyB~VMU;~&XyWd+-k`loC~5igniSkyzAFZrLf^Pvo=oPa8QLo7sL zlalnGCqzL}1qM}oL|Ia$(Igm?lyM|mPWD!OCqsE1Ni31%UA?c~7yP4#DT?89hG*wX z+VfwVk}IphFj*!^lt1cEl=L_8M-(ueR;DJJ=Fg&4M9R#?M1OgJdd+nWIxH5?S$s^( zbjpBWko^YPy6-TYaaLF~ej@WxuT8=gb(gHGK70;Cv(eg|VakwJ!TiUvfytH$NQmN7 zY>Vk**X<@IIfJ`f8>eoWl*qk~HxZONWPAQ8d1g*pf`2oj6|`E(I%e7S#E84(x<|+9 zB|j33j5~v3btrQ~4A`(@^m~hq`KRRCb51Kl`Ia5Q3uB;O&7(f|;|usz z^){TX4)K~pC+W(^*gtt~AidPV4DMvUtKeBNK?9C?e#^^in&kD;Zuv2N4`S!Ny5(a1 zz62>TgJ=|+i){@>j<>KH`hT_EHj~~?_tAl?x$L2l7^waC88AYd91r*jguu3f@$cI; z@dhLvd7K&CCAqFgbZCTrgl3DBWllXZYoIL|LVZUElF{J>>Gt+JnDm?Z$l~?8rdhdD zwa?wE3B~+rN()XzhQe^x2yBjtG~D>*7$XZ6|Da}%EF_t2gA>ZBr9>jBOi&0;8GkzS zcz=`FZG(KHOM}KmVe=#nY4OeN9z|NbokKV3!KD?s@rQ+>cqMY8eQ#WTZWMO$ips2+JQU7*X^!m=ZDAj7_*dB@A1CeThEkF~em zYP8&3q1}-cytb8EU@RMV>`P01Zj=Q+`?Yk}p*T-y$le)hTPd-pA zO@+yE0moThSk3nz$!af3T!#e!t)QCwpG<7VSGTP` zSN@aH%ukzmDVtE$Mtw79Pn-jOdoJgL?5}(7GKQ!z8h5v^&Y-F~yW{mi54=eaU*qF7 zu)jUyD!V^Fa1tIiVEW@LVK&=H(}xqg^EN$H(&!57Bz>O3elNN6t08q)4T+rlKN)~L z*1|mtK3rqJtx_K>k4Bmh~W}gY|F(5x8Cc#j|SC`u=Ug@q-I~=AfJu=P-Awq25 z@DY~c_KCPD7nuTqS{-unL@xiz3pgs-hPf!8-Q?MU#JLNv3*KaRmj?J868klo9&3Nv z3}Amrg7{enX^5HD5_K570BADWFujy@=mV>V`g~p}WNb%IzS=qU^bgCVyD=~di>&Dg zo-GI7*myvtiSfRY0ViS#v2-KA2#e<}++CxoIH@TGZ@f4@42*qR0&YPu0J|Vi@)}@)>QDlB4 z&V0E6Vu6Eq-PPDcAgq5ZU+Jz45{-N)Z1z0 z_fCi>&N0DObUZV2_Qwmn)BBfC>t;F#bYdpH=EfZa@5HO|ebBTyD=a{%Ri9TQUo|-K zdLBPppt*wIhBVrt$ICy*5fX*jpd;UPgCx#H+x70w-!Sh>6EZfdaa;|&I+JYngUR40 z|NEdJGTnn`XVWc;p!LKJuZbO*d>xZfHa&uk>4HFpP=5wpI-XAA4k)u8({>P#BJs1P z7-&g0FoHkkE?DN;+M)FuuhhUgaglY-(A*jI8uNum&mwasL&8HX|HghIHr#T^|8WCR~)0 zicm2vC#`f0dcY4O+FcMmEd@n)KRWnsiO`TD)EIS5M;xe$`sIA-9297OtD*UgZ|LF| z7@rzu%*Dh0fc%nyL#L^RtSAP=w=_r z>zZE-S0vx(xoTo0ye+!bz)8=ecN0mY^?o@F#3)ig2GfxQIVqY*38ebEVhF1t_223a zQPP+qSt%#E>2_g@R!OG0>V*U>)Tt}N>_KVQAAlCe>dG9M^GbuQfqLm7Rta=U3YU#+ zs*bhHq5gv0FqW)@RQ2Yj$W46>y+rzc#CvtFveVXx9+}=#My7a17xFhBwS_ zn8ckYsH;!xg-5IFOBC$-dbAM0gcJQ=n!2hPQ5T$wslI%%$UoybeJG@OCPERvzX~7rtdbnv zKqj`dcWy*U42cjSxa~s{tw|C`w3=xj=Cjz{jP5R<9B^@%yip8ed)zY&y*)J-GCc^h z?IzXXkH>B#pB{ft7JL*;%lm(>>wBwP)poEN{j}ZtXJDn}IuJF{`rq-69^IFi*Gt{E z{D@}ZvchZmeFA$yCrZAp7oCO9*^cmN+I(3Vj@{deYgSP^k+PP2Ao0ct0OEonIZ(?C zL36{u@68bI+$G5SfTDrz@wjhOdoo&imQwV)UG`VrwmsFHWL(R(DT1(?>sU{OTW!B2XDlt6b zKIko50u9sbfA(lL#sVH6#Tl~KesM6-(Ci%UpE%c$W`xOLP6nhx_pE~__gUy-XgUO@a_Tfj~ah3 zDZN8I{frRs6@Dv?YTm5!@~c3;Ri6=P7iEN)KMcFB2GpSJ%uf@JipY4=e)~Yl_OLY@ z562ksuU9p#Y?PTy07#p?&VEi+njjfYVZ&qSrsUmUdzOLv5(+cSd?3_ zwhT~;^}#V*au|580iNTws^<+(m)WGf0lQE6XTEP2LoKAPEE-oW;ol~@t?0YM*|Ql> ziq4XsDXjR`l9Bgm`J49eT4btKN$vOeoV~P6Jza9}*v@N&fzoD0Du*=P#9;D^r&UcY zcQx@#tQXnAw2sd&g?ddHGm{&wQ}L+7D=)nFXsIAfTnl6*0J##js;dq(Jx2afbZk(F zS66MS+X|F@{<+h;(1bJ72Yc*84hLd}br?o)KRQ6%JfSBzgm&%ZKu2j*HiW(JdY>K> zdf26HTGMDQEEe{?7gqs2@vz(P;JHjqZh}sEn*J8k|ICih#hSf^x}V(~ZHOswry3j* z8<;yQmDyKYP+i7)2NFlQ?x?;J#ONcJu8KO(Iv(GVL^~Hd=wW?7$1w{nVdcI4Bu zyO^pLPYa%rC%G;r571@bKNIxyMu;-croW!C)MTgY-F5nrn6mZYFT05x%nJik%b0w% zABWGQ>lV7XnIBP!rh%QJul4W(!O1Ooyos=^;bt>C5!b3Sa8ev?CNsdvlO^VHPS#Aj zciQTQ^~4S*#@hv&?Js^ZIa>H`yfw)EVsdvyMAZT4Q2$Gt!H)>o3^2n2Vhr5^#@LH9zuCO1&gPoC{%%$u_QB z>Ei7d-Lo+mXIQs8%Bn=;lle9ugM3>1%IX?s_&^WV*GkRsQ9kg37L5r%GuxlR(ge~~ z(wJ3MYuK6Tx3lDZE&QJLNOyQYT%+JVN0XM3g`FJQ8uUyX;|Ts888TRyDxB7VKi3%F z!nn9IiL~}z`MT^J2v)&#)Zp2icAFf?iPdMw+^AkmGh@3&fwES%MbYkBPBq(EJTBN{rzHBi0mCycnJ8A;l_b360E5)0ns`%+1N8 z<=J^{bUHy6wTbWTb3)Gfr0yMY?eRj|nz6^`(L>l+QQ+dIuDYRktF$kmEUpLYRyF1F z0fdhp=K>Tvyx%Mp(%kUCF`we$qoZW#U*vZlothz|v8xIBwdkzY_yB*RIrLYn&u}LD zs&bLX8WbM0^?23|8H47X??v*P{A^13i)TSvqYq05Ymt^+s#E_ZQ{lOj;%IE&uym%d z6|%w#6lV!Jye$gx3AjiF_sGB1p|>f1M*q&Uzkfg1Z+^d|D;(l>Gvq=Fv>Xk8!4%YE zL?7W%B5f?(I2!3*d?7tCAO%rkA|!-BH+^pehhk=u4y}1zA}J-d#^Hv6Xo%H0O)(O@ z;=Es@*a^9tjw0*XH29{)9F*XR26eyAgUE_(}s z$#>m1S&h(QAweyN5eXe`2yIRvk8mif>Rg4s_z|(2j=|JWLOGrT)*iRi|6r$U#fr;{ zdch;}W-vJy@CnX`lj`{5;n@oclnBt2V4!PaWV<|?npV8U6A)*QR97!u+aci6`XVi_0B+V|3(`c-xF=sPgM7T4=!Xii4pnE`CnUifg5h z{izH_W`r)C_*zHD8)0J@am=+HjrEULRzjyR15*U|Bh(`lbi&=DG{X=L?hz@dG;Yr? zg;E|-Xw>K}_Ap(M3BN|hH|W^X**ME5uWDzW=&Y z`(K&jDTEi4w40g)d}XzeV2UE(m7J}IftWZtor+UIO3%5j3GeaL@J~hT^Fz{@11e_5 zY=xXMXBn+*Y`jU?Bq8K4p|s?aBh;x^@_hH+F{#YxG=#zTiuzK}zwMh!-XOnHWn|XN z6%XUv7Wnj&C1hd@;chUkV}=}faKwh(=P04br*AE5PVJyYxx z;OF7tqEo!`=i8jD-^Suq+Fn2OMq1j0jeYC`4!-TecY~exm#+5lfwG(V@j)To9q(qI zuR7}E=YOL;Z|;;AgRYj^s+c=!wSZN0z|c-kqeKP~hxd%}_zrbS=JAUFWCDi8qwRoKt|zYh3+4f{FR*_inFpq!llm>Swbxo?zsLJAd?)_w0?uH({ITVA`xUH%%n#H7?`P4oZYej< zTb35737pj}mX07}WAW*eLB&9CAMRmOWL%xInPxsXbsG)-EuL);$)h12v`HV}?NK`B z5@<3CHY%Y7sJlsuO#qQ__jqrY>>y>dndGdJNos_vJA@CDYoMWFFnI==c24Fd7>1dLHaqTdzu@O#um!PPuuwg9f`xj>e@)2z7Up^cEBZ zFq6r_z&>UWK)+<1#k>Z~B)i%|WmxdqeI2M$ug2*2I`0>zSfk5A#K5GuPX&_Z>J{8{ z6%!)+D!Z4^tnKPb?cs-Fh(*n!fnW16R;s+L(Gbx z9ab~KZpc{^Y)9sXgda@0BkG3KH$rd7x+5+Q<|iZuiXb3LhaeP+U?9p4Cn*fKAPNm9 zJqT|K3S8+6sRS8 z9OrJWvXy^^xOA*2)2`F(>226FL^pHmWM9>`+ zhonw)kGbV{*FiWT>;<>Y{WQXGyRR%JA=VtL!^dQBG@r04*3tj{f(Fd+Zw1@eI=CNc zV;4uZR>36WfD^@#Fr-6D)eHu?NG?|LBwl~a`29v}C>bMTsMwd#~I?QNaz33l^LP&x8^7PxMU*I_bwObL2xk;*3% z<1plF6GzKIM+S53@8fQ-t=IJYl&${2{dslIu|hhguPF>0dxl}{e8IWzzoMh^)AvZ} z$tPjy=%;jTzbe^eLzn0bJaU$#ehM=H%S8>k)Wk~S9Ycr~D*lk|n}!4;aF8oV`{xIV z88M-WZo$8&p0KdEyt0bi#L_cx=4P7${YvN~=QA8+H z2n1&edt*Huy6M!@sb{0$CZ?k&sCtB4e8>m{D_bxMN~n(L}3H zrYJhw$jKOLVU07@*WVs$u;}5EM>7xK&`wZ|8!mS=IN)4yYhvV80b|M-$_e6`+b0~% zb(;h~n}KsYd6oNOKH1DmPp&Xwaz)|$e6cn%)~gIn9n{fn<^OWMz+sKMu1UQ{*j=FP z=!jFE*Qot96fXHJy5+7c!E~eEH?~17AC*QK;qvD?E*Q?)T=J3y|M75XRK{y)t2)RzS zGuY~$ybx|*L&~Qu+;?q+uyBG}8)6lQf@6>k6WW^Uc);aC=ik^t!ZmA+W{2L;yPt%@ zp5kd2&xUO@IuuX}3>7^@O4$A~{7Y_e4%v>cCVYzQrvJkP@1rz2a^5_tQwmU=;=mBQ z1>JZgNu?^p)Mc4Fchz?C1Oa9%kXKkS4tpKUJZI7lH}i(+3*u$qql-$W@!GyXQr-dI z*0y=)WJup22&e*;A1h~u9##vxF-()?ixV3d+onBplB)u~>apsJeD zkSMzAS_i{;(6R^c+lbJure?~EFby4cc^@#hZUM~ed_W&`!Rtc|3=A9vWF7MkYQUb( z=SG-S2qGmwy_m%G=VmLI*U>HwxJlFit)CG7t$^N^#`mrOqgD_nJDAVQZ)q)Z&zl2; z`gAbnq7NBHvn||Zqn*K2Edcp)7Ldg9`yD7;wz-+Y=!~SE;&;=CLfUu z!`h)ey(9*1Ep+{rze`MV;qBwcY=M&S5Mr#4tRjZa4+5h(N=CgiCw)4fFL7QX`s0TK z=;focqoO!oTTH14f+ODxMd2FKobnrvy~4T}ylJSYnlT*ON-3|RRC_@_8Q-W%8v8GK z`l#@}9%?orm<5sJRrR2y^NRN_OxeCjB9E1yicR35Ouxvtuwh29bfZi#85lUNh!ZA> z2lj{P^$~QCGnIK@2-CbuhcgQ|AX)D;hL#8}S$>fvZz75VSprNbBzNtv-C*Iath>Aj zVq`7H18tB~bl~Ktf=df^JX7*Hw5++2u@Rrh?ro;`F*079K)MX+UD$ z>W}{iVb{IzJh(+aJ#hhVGyj7b{wathqZHx*q-GqH%-@QpoANv~acjBsiG?wW_7y1E z8n!Px4(WeEfVBf))i?}AviTYw?dQiC?#KC?a#E;F9{W7?Y#ELJHg-ntLrB{-id$OB z;`u-y%>bk2=K+1Z!Res-foPQuuaKt6Z_QjEMRQ?p@6+bx8pmG+7ZK?-bD#cq=I}6N}A@@%BOK?E_ol*SM z{V&2XY5)?P?X4aXq|th;U-$u$fV&3e_~{#a;g^!aq>Jfz4w4@JJ)0=a;c&~3mt&yF zXCpXwD}-^&MzIc=dR9W&F&xp@?&GO$twyOqU0eG8zFc0Acs#>E0ojE)^n^XC+s9Ru z-*bk(o&>n^xva}}#92^nHUMFe| zh~^d5;3UK>-3X42OJJY%j^UY*HTu@90UiHtqc65(W;*wVDN*={=A8D4_Pi26nvrWR zXM7pYm>^_c1f)YCC5YYwcq3Dho`R&pH!hBayC4LuKu7``+pvM?GoMD*CE zY`0)Rzr#j z{^jQ#^s67Ma*eS$1AgfHWeXOY4@nL^E9_Bw+$bKAa@E2JS;M(vNSh+$SXt6O#Rv~O z^!v{~^%mM)w=d5>Z$rsR=T)>3)tgcXc(n}Xk_H`e#gh^Xk z2UDF@pdM`UZE;sJoJdi0gR49{kJU&Ax!h4sk2e+tR;NB)fRh1eirXG-2WTKO8f@=P zPlH$Nxlgc?J^rznu#Fx{jC58U9q}E|lt!%;l#7(E49&(7x0>X|esiMA^Eimoy;l@l z%7s>@nhvaI$Qc3eANKW)`Uihn=ZHipa{Mmz-Js_O&5_n_`QR2l-C zPbb=XG#$jmEYUDT46&tcj$iCf3y$m@gF_d%YxIV%#nYmz=SuJ?;lXH9|{ z8e!E1kr$m&%dxnqOIi;8?Slvm?h}%f>J~*a;96f~C%VQT+DcTy!ZuMkGg4!^ttIXr z+tAJX&Y-XWEhENawWt2x^OB))qZ+KJ{RoT0@-US zqf^)OuwB;UhaK$kwnNSIIh=I6*1ZU4&jMx%@&xhKBf%$;@zW*B4JYIb7k-{)Bly1i zK~;8;+%yWcL!m-4qiTAgIQx@_H!ifz#s!*{ejzB}4(%_SI%1f>(!m7V)&^Ls0O<#c z?%)>MKJS;?T0rRh9_;J~sXwa)_$>El32s*dom#_4GCG^c=m-&+p_iw{!xK?HdJ)5I zoE5~R=(~b#${&p+&CUZD3Tl+{q{gaGl&sJO>uG4hs-$pWfA&FB{e;QMFbg3@;lv|9 z-fMS<4!BqDGit}k9$rH5V639vvcu|AUPM!QbN#z6b&Agnb-&u2Z+%HiX}@g3aLlw` ztQW-D-*wPCk<44((|_rEj32FkUzfmGq)~D~3KKa{HXIQ{9?U~VBCvD`g3P{mGEz(k z*0{DjKa@Q-h-IvM#e9&+_Z;T52JV-O)u37Z$b%g%DhquYN&32uVHfZ)!xrz`rE3n~)0%)<_>BCh>EUPXZrtkH>b~x5a2bvnY0{K=&=pes zl8;V)+(uTRek}37@3`MW!mx0$@VeT`TZJ9Cj*Trvd0+tiio#6AZy!sBU__{ln~i18$yR&@t*IbBKX%JJ5BwE&{&&e_&@hkto`z$^6{7Wl3!-!G zM7j-L=k6J``#tzmKO_)60B|fzvx=*K!RZOy>Vq8H%|%VIJDIr@cgDu9OV zc>dtP<%FoHp%gIO8*@zvZ~IVdZIFfnhyMG*2&_VZkV3nwMF#j1-%rR_LvqtdUO~$P zo0{qw*1_CO>)Y-O$mZ3#EO>2Iz96?ngmy$5-(}3tI95e@r1q&;rJ?}7FZ>1^~nW%P-)C3z> zD?A|C`mDJ=I|mnb;q(^6_(owyWt+CIg`Dk$nVx&N>-!1;g_vrKR>2{kn~|?TX8gr% zyUr3q&1|N5>8oE$!$3hBnZf+4yo8KAoUyyb@u^Pn7knB~oMZQ~EXgWk7T)~U`lvZG z*47W7cBvd0Rnl3l&3uo=e33e2bPuodG)!^0j>+J)lh+*?PSgkOrs zeaJj(FzsZ}(&58Ycp}31F|6sUH8$Z^`<5ui{{2AmzE4h`CX5d{j6HKN1_IE2*JN6@ zr=109xc&@)hk^<~)Nr4GCsh=DUXTgR50)ATWBTwn!brfx5|U!Vcwf-n|L>5#V?VwS zww{k^Bx?`bgIJRArZmS0gnUmlixO0bXfDAFP-uH`vPntkH^)3BXQ(Frjx$$sks5+M zpI->FE7$k!B#<<&@)F+oIK`nD>WSahOgCM?6Qdo(mt-`UCroZ0%X{hc(13-k`<&nLUzn^4i-RNq+7_f6r5q32z#1xsv0i$!eJlXTGWBP z=z$5YnQ?e#ml(5?-TcCL&t}0d?L2;58BbZnosCwqsk8w*#ORilIrSogxKZQxvP_OA zP4yQAsOy|F|KJKq`F7Iy&>Mr)d zgBRKBO+r8ifL48$9+rt4ltet|enx6%%I`c1Iq8!JOu386Zdx4}zlj8lpVh-;brLWQBawaK9pnEaymJ0f%iEc;e} zoDSZDsmDuKUcw@8XS~JxM0#%X6KFbr>YP{-dXFjkM~*2JT6(K&JT1ia>RzNIk1M+e za%ay-4ZNz*FSq}o9Wm^l@>3itfbeVbxP1O$2^Vc;&{nCPqLMOo(Ok|C?trKC7c-`g zt&eTNis~{r%j#32^M?Ncc5LxW*`#uNMJ=d4X$kj?4ehQw{<-WogjtUV78gRSB3#bI z@PNS8KMwF>4tNR=K(#ZpKy4)POY$zu6Fk*KzdEwh?rHp-Zp}^=+QMVrh3FWA*jQakvG0$#p8_) z2M$BTN-5+&n}A5Lm{_!g!mzb5@Y(%3ZmOQzkKh~Tf9K%u8Ysu8VHAu*Oi6>Xju~t* zV(Wo?Mr09F4ZbvVy?mPdoo#}Z(vII0Q~y`vf{BQh4|1v2flhR)5khyIY)9w|Dfk(&EA{%;@kY%t{Afq0D*Qt+uxl;-(It3x0I7S3g8M*s>cc z(*TQ1kPF69=@6xoBio4S4klB)=>5Cc0k-)RtxXUYutSvnAhd+fIWgbN+6>f=YX_Kj z+9)o;(TK8<+dd-%sYCsD60j4g6FGV!xBoWAEf1$Lka6sV>nm&N=Gk4i>(SUs4N}Zx zb0j|V4F*#E`c9YBSpT?L6~`PqGS1sEh>|b+pee41@2#JkjESL~VbFw%s``MU=BRlL zQk-N|CPIj?9A<;wV^ZnSreHem+JWG-9Mv9Fo2W;V%5Vqk{H0jHZ2BfuiW7akx4N{RRm(=t$?k&W$1W{8OcZqWhOqp8Xegk9y+P_p zxquvI@h^k>mw0u@mq%6ba@z`U@}&W*_;C^oBvvRcI^-);Z4r1l8mzDn&Uc$goFvzwm@4JW zXx68ny+nV5U*4OfO>|-HwYKks6s05o&Aa7Gb+dtn)w$aU*gj;sK^QgMv@;}hp!PPYS8*a^orMi4S{ZZ11JC9@PY)FsuBG^rFSoVTl%#;9fT4E2^n zH2A#7^OYDJt?9P0xrcOxd`+5jaZ82m{sT$uz0|;O5^;*k*;kvLskX;%bPkUCGSU$ z@~e7?*W$}0sB|D7PdzN~*SlS4`DB)(76uGXldwnRX`tTvN3!}pD{O#fnabsf`Vp#S zuUC-y`!_2nR|+X%A`Lo~lBz}Kvj;APVEWP>#LD#3`qHTaETorUYMO;S6oGv>F2@{w|@GI61K8!JRsvh0LFK z7W0h8uUNLgeqDc^KpkRMhmv+qS)tX*RaNjT8L%IsLO z2#{{YxZMtRX*(@r*Ze2k%B7iXHF6_jKubYvL z&Nr^+3Dae>ev$T$)=Cq^{sZ$_tyI+$$YKZM0GR9PJwWebl{U0BE5QTyj8MDLErx4{ z+Sv%C!nC}M<-$r9Kj68%W1|KC@BqEe~C{%59i8a+M3&Q~n zXB7DRNpczn&W84k@1$YDYNM+tQ?64Ylk8+cMiE|l(^mu5TggIH%3F$v8;CUjhCx3)+nkpCm^FVG%bSg=zzTNG>tK3X^g;l~JBfST z0DV8S9)R4OjDt(P?4Uf4sipKU*1vp%fQ5sKY_4Yh^R1+mUM{775+q>qMoLwzWx1EG-+VpVz zKGrH>-6S6#4deE)otD1}BDJ`Kg!_IyqHkg67xv7N_L3J^fNn+hqJFOU4Plt;f`sqo z&koGe*D7bQ1f0Kl_QXW0B^-jNNc1I#&xoG~nkhIWserqwsABgoL0-5l>a%a)J$t~o6fy`_x)zVrL~IAPbL~4Wp1~lu^4GGy$0Pn_>4tiiP(%^>P`9HZ5LZre)u5bvU2H?KJdr z<#|9vkmua`1~@!=jj}js|NdG`e=MnmDgwOOV9N+G50A!P87$<+osjqW2$`iI(hVO? zr1g>aVl18gY$`K#bW~_^R?C$w0_97~<)?krZC!*~=17%XnaHfa_6|ft>fihM#`io6 zuED#H+6{|?2+FkZZE$T8RwwJXqk|n4r$w&iZm&*Uc>;9lo#e)OrdYbXr9@^JjH0`` zlJzh$3)@R98>5-8e*OaQGIy8%S6Iq_*lzqk&oeT!{YU)dzjH6^2KvA6-@U*5zu(`l zF@R7Qn0xs_faH4s0K)Rn#Q()X%#8p4{0kd9!++9J#b|-MBagM}8CsL}V;B<>Xr(Wg z=nC0G(gMni8OShCv%E%mFheoQqdKspUxwNibnLD@GiYgF2zeGr9M%#mKQ29Hg2l4>u->E zCs4to(8*_zq*4T>P+2S})ge~k=~w9N;}9-|MXDYux$c(&xDUuz3E)>Dc7mUuTp0vh zEZwtGlSY>?wX~2z=nKfC>hC-VQlWy1Kme;&h1x_et7IKWHkl%r1hmdtDY>62S}D2Z zgq-SLtHp14{16hQUZc&Uh+C5iHkqRI3(z7j(QZ|!x}*B%m@dyD@LL#B7?P4P8$&Rf z>_;w|aEE*p=`j3$7{rK(F(O?^hO`tBABj0UW0=N>jWH};`Y-VbvfVI{5n)5Ph71j1 zD$*2$n-OS3;vIn+vUPaNFqaYUzNihs{~%t1*&Bk^B;OEvgYoy}K@b8&7!ZYmkqkvR z8lvJ6{|E_+AV>*`mP5iKN{S%Pi$ntt9NL`^Y^!72w*T0+ZQHhO z+qP}nc5?g9&aFCkaAx1=t@>uW_S(;S1SZZn6)@Y_1rHpE7%9S6MnO60$gB37A<&`q z#Wq98PyR)(F$GG67>McFxq^nh+{fSO3zdNe1TOT*qg)NeK`gBndUe~++3}=_D@bnx znCX}*fs#AZitaocwIjh}pTuT^NsaMP&&9ghdo@xB9c38ZG3Q(l6bmlQkmgf`G}7i- z>?(kV&5881nfUnqYq)y)=dB9%Jk^|}tjr{@&0_y83t<;m$OKj9TxEXa)<1cL{ngus zjY$#Sy0u07GX-CE=flB(RjxNsc)EzZOB z2OB0J0fob*3o){@eBUEI{1RKTHTO zj23J=RRO&HB7@dRLaO3g58RhXyehLv7{nst9alQgDv&`u4l^z#d$VYyU|=7AXufXu z#uUk(RM_Q4sT!)J!nR|T)AkC+S1T4+zHszT`yd~O$pXP~DbyXqZAMzm#9nt_t`+_1 zYZt|N^SnU=6=qg}U!$G?bdu;rb($hC=7o;|s(fQZPnu+P$)4?)EeKn?o3FZYBe(2& z0+s6i=NY?|yw$PnVLVDwvIOJ=ohbZ}himx|q{l>nB|_t{-O!iB-L;nAzZjZA_oUs} zwi_k8dN%(VZ=d27QtqfE8s@1>2D3nhRQC=9I4 z-6q#7_T}E=kyyb=$L|+$J|{0 z6#>o}rf-?LlX2B75gXK&@jYDMk#Cv2I?dQdI|Iy)ggo&vg2$d@Xn}`>XOKhdY>$u1 zSk}RZ17^Zey`aH!gYtlJJQcN$Z?Hb=O zvkqOM-@RY)AtuCfipF2TBKa>pKX3d`U&NOR{FDtBx;#Uejs7Byxu7h8Ky#GR=AL3y zT6x>swdwrLLI;mYJ>2WR-f&Dq`bbg^^)$^E4b{@H;kfw^x zA5_IWn)U~KYsovaeC?HNj2Y#VvqtCffdp!>VMPEzBcp*Vd0R?nji55K)wdi2IUlC{ zqY*?F!dM7u5klO15kl}s<^z0dcpC_4Kwt=1^I!E1EOm9D?%mgr9QFgAxX@-U)?uJ8 z0Btw=YTc4f8zoaM|6F!T$-)_bIw`5{g0-H4`@hEJeCn_=)2}zALx@#;Lne`JR#HH( zI@RxgZtzF=S=CS6UhihQiu1YEApCoxxm~>3omt1_hdNtW=Xihd$YaQ`Q3q9j98>6R zt^NH8CtfriLh6PXFio&Uf1JqZPeH@IJHw#i8e@mOGtLK(+I9IjCT zEw)WB7{`R6DC|iYQO3c1mYS=E6IwN|uRWrJCR*B@wbLPS|3i_+wbSw7#)`98vjXwQ z9jRmbJ4Tjib6}7>4os@yk67$BC}3SCv|*IpASW7*U%D!dX~;Oj;@XCdB;%C5S`pyS zkIj%fiv@9OA~4e7?rL1IPmp&?i!-Aihm?TXtKL_QEqz(+6I2T&N?qV4^f%QMNH zKaQC8!qu{PU7!oI1b6N;SrKbYb*l{r3yfMN?HwJ>*2NKOshZvPTbB6hoE}GSwAGre zpSK|o*%g!MS2JF&ylJ!e%4JmPgY=O5tl@S91}K)8mWENQ>jjVvQM1VPtzkp-?2Gdm zvAmc<-(}O_b&6)rP$$zD41{E;V4G?_n$wvmJ}l7YC)3;Pke0Y)bT%_?laiav>6=6b zRk}QtW6rCli$U%g+(8bkm@hoy-fqGxFvx03bxHtXFS`o03?7l^LUNIn8|lAm#OY&! z1x@=acwK{Cf?f;%&U)0t5J8)zDaK+84}W3aAcfKh^@V~Qv9p7{?dm>+?aQ2B97L#0 zYSp_Z?+nkw!B#CCp`1Rx=fC9AP--aPDPbT`$H1q0*&yr}0P%8*z-5N=Vx{F-a?rHH zto49|FpQa2kg#peTG;#46QGZZ8JQa!Vn;Ej?vV}kMT&({dCU;_IudbT&Dx|%%gy9S zFTbiTk`C(;LkZ5jWfmSpoz}*!SPK|c3Mk4kgp8^CW?3FhA>0=n?t)E}x;=RF`-tA` ze6@946uxW$XcvruVOt159%G?K6iAAVaX}$*|`*W%Yb=H1Omw#iXs& zsi>{Am72n2L!=@?VxHxP?=ZECWLsL4Y0nj8(9zXBTHioXy_9({RD{AO@dvuf3^*NV zs3f!E!H-@a#A~&GM}9TJQj1eBIxM8{Hj*-5SC>>oNIVX4=m}XX+0!d2%4<&?<4+=a zTy3_QElfvOS4T%Tm~c9~`{~dVJ!^D2Jbpk&J2$rAa%aHOB*Y-VPdB1ac7Bi^&X_Yy zsPmPhOIHY7ElNu0J@~B6!>iIODZLPIP)LhM#UQ$SzY*3(Rl)f4SjW;JaEqjJZ z+LR|RU6O43Q-l-xY})HDFI#m8g8WjyBWsE<4$0c_G=0dx8IAfhdGVW`)?YIBRni02 z07NyhB{G(`4{**%IqUkbaqP?CM}og%rv3Q^0y> z;6I1okDA#!Kw}z)3rl)AjC1VN2nH-wqa}ZP;YK=#VqD_Xuywz0sI)KQ6s1|MJaNQ)K0KVBF4Btv1u3%KWHK7nRTADdKu(9M3!l+^^At(M z`_9HpVHZ*@0ax$PU@t-3M89P3=9uXD)^t^a%fy*mA zk=p@4rI2)Os)&ruO`qAm3R1YiR5>@P_c&>qI?GsTejg(Ch$&CgSft4sm3^%!k|7qo z%(D6Xbkaa2;U2#YREkeS>2LUYEMCtOo)y|3=Qos!6fS2Z6bl>?BGYPSl|FTMSd7fn zPRcm#sFb0%f5MO8o)qz77LsP-#x|lG0_iaEV0`l^VZEl>wCgzt=d#MNr|coN%V;K~ zLZrh|7>0mLj%Pf?oGiRKDdv+EG^2$aB3hoxH--|_Q+NMSACF~oHraxUwTaL}9*~f5 zjw#pvcuikKu%$ojGSZL18D9L(B9G#<5;*DD1O>u7ELTzf^ng;~V{=#EVJ-g_&DXl9 zzXig;@+V&fWHEs2jRT-tYyS92%z~C}wMV?|+LIu0^`-v`P z`&_Ep@rO0@#=lx<<;6#z+^V#(+i8vae|=}Cs)j_*y|{5un|?7$*K(1uvOn7p5r4_QIvv()EtSKZp0~^9*y=z|5!aDLU8v9+(b3q%sgtB2tZJy== zD3{j+*k?{@w?xMV-+}b2U>%+45!i7D5hzenX<=KFJ}r)EF-;G?apQVY8r0KA zQ0lM-i^AH(-G0HloksN1#$QtyJVDwPc08Pxq3UVNROiVl#HyFc&8RYZ;jGd*yetaG z8x0-wpu?j&dta%EG9N0V&Ta;Kqq&tP9S!%?%h*}XL>$rfUQy%eMCTrwr5~>PBMVYg zq@9VFeI8rgZDG<#$w*5|#S?f7;o+xK1%?2xJU*!`N-Iie0nZVMFxpv{L zTSa;C;P@TaB8x*wQ(V{6qJ=)ww20@5N`zRmbAOi^L|M)2X+Pmw(qT|d<|^lzCNQe%^`~6+gjQaaX^qA^z z#007}EewaN=Dgeaq7(7ow9?7n9rY6ol2wg{v1!Ss@%zq2zC_v;4T;FdQy-@wHO0OD zuJ5PO$BCRBL1$pB`VD{O7nVxHr3vDrI9J-<-Z3OlbTtmP3(`>f=O-t}bt(Ro7no9^ zn&#y{LEcs<9!vd2 zct50}wM6%RwOKY%NOxG)nN3Kh>#TrM*-5%cqbi zei3CU{=%lL-1%_YG!}2Aa^0lpDVLPbW%y@l*tBmNJI+W#K4Cr%*kwf1BMCBI;o+9* zG5hK?!-9Q_XqJcbrs&RRJ47ms1+NGPnKtw-{FCIFqMRCEEgi{?`n@kPGhi#EZOn@CVwe=z4AowIre8Rrms z)`KLb+d~TDT-TC3D?L6tmKdR_Y+_LwHVI{lY=9<8Uz{xH!@wrf7yI}JSSW{RTXrYU zn+kbGz0P^BHFoFUsBQav&3dwl*3G{cG5OC3b^8*xpMDyTuB70okJ+p9WdX#?j%r*i zwurKRuP*4O2gj%L)$N<31Lfp~Xt5`6BLLF+F9|J`uC-!7w*m)Id;+=sOx-@~i#tWi ziLPq6@~z80`|AT&G(BzTDaPI??oWEVbbd-C8e#;zP;cOBX=JU`Zq{B2WZtH(3UyTe z98-tLV57~HE2xl8dYAsRl!oLX&vHDGHTaIZ?Lj@{DsyCZmFw@EJf7k!Qu)$0BgdJ8 z&t;0+qqa_3Ok$T4uRhYB?}-+wEhQX96%{2l8!=j`2@qH-kyOboE`(Fcn1?5od4vuF zhL&RJFUI`U%;_Rwd@RuSH=c;nKzRShJax zd?3@=0W#XjB|%`UyP4)R9sfXu1BmywsCC2R%hXDW7^{XsA+<;)k%>;Wlf_w97~2{G=i>3xMt zOm;5NFK(X!;3=FLn(FaZGY)ISpbe!6m!HBN46$$ylgTLfH0TWVU*+FKIwNa`fffiZ z@YrK!*T3@LI_fF)*p04yIS%SvT&3uaf4~{Ek;gI_@5eE!KoW)=BQ%U`;nA&uPBB|^ zv?DhTSjnJb87NL0$!BLlbDa!NV za1FsugS>ZH)!4&@LkUT@{OCK&zOL$}sLujyiYjHd(z=6?4jOPw1tsEYx#*!t6)shz z2(!{_aXgGF#dtH_37-yS9tUDEHICRu`d_i~{FdWbJ)qv?)zspy67w*ZQD@cMOyW2` zOq*{oDyL;o%c0Fxsdy8Ww5m&N7=%B8AD*c8Qy3uOq~I9+J#t2Xjd(L&O-8L=(RmX# zH~x6=w5h#@Iop`wqco~?kS5DOL~gXJkWUh`78raoInI;jkmc1HCJf93^V7d#WH`bP37DB1_Z^l^&Yc{sK)1&iRQn@1W{{8K zP0cy8b@_hDj}*0SvV1#%na2|{y@Gb4)FW<_B3+u@Rdk&Cir4Hy3~ihC%ZX9Kn;&wL zI<~Pw54m^eOMEy0cyp`Zkjz}qJfFDsw=(eKxz$hLK)(!<1YMAw&B5Wwpo%3KsBXY7 z40*C1S3JYEn4>_^WTZ|jvc(1`QVIMz1eg1l!M;M!3xb{m!n`d>-fc4^bAuu|TTlI^ zzf9JDpE{mG7DyLkU1_h%a}HkTyXPEW*8;LZ}{t8Lm2L^G+5!XeYWLw z{pCFGzklP{^YgQDau$1-dHGfCQuU%`K^DktPfSTnY-oSjuHsy|{yDhrl;MV9mo_u~ zuZ}MzyPo!T(fx<$yG#oG79=?b?oN^D6T$MQF>ZGm^LhIxFp4i>U^PpR2wYKahY0k6 zR!GXIP5=rI=2HlM08($^PNxA6#)Ij$ccD&U>=FcH4GsRa)ao#4U)YLL7bh-TlqTE4IyrfybS?ZTSgu9 zJ1ZeJ`%g;7AH2SqNZHY_QAwFlRg@+Y27MA*Mp}KV@$SIM&A`w$2O>gyBt*jahx_{M z3|`)t9Hy9*1SVdD9#R+Y_t^;h6Y%Pc4*P-k(KZVeS|6vcWR;U6$Ol41H+FG9sF+pq{_WM3rZi7?mSxvbD$c$92aI+4|Im)W+0$+ym~(Ph1xy%L>aA zl`5(es+6iV^~&|ib=n41dR^1%6Y3-Dqw9m~lk5HAhE^t5x>trn_0P5Ysvc^0m4?bt zlu=33;y#Dw(6o)7*1r3FMdr0CehtI#+Rx7wc!1e215rdksaT=^&z;P5ImZ!-UF|} zcOXa#WYOua-upP#ONGJ-1Eh?KEYfZ0*#a^oSpedv7g0?`GHEAYQ+IZ5^u4rZyLG=a zG~-3y^I+*UxVSU<4p@D4H#qaaK!fn2x$5e1GNhR@4Upb_hhV3#SWxF9zC? zibiMsNAHAPsQ`5Vi>@^j&Rvt~i{i0DalVlC?7Z5rfC;mjetq(yzsnvdFsj4mDTzSd zq0JmfSt7Yy1~Q4GM@m^imEZ-lzSmfU1H5{8K088vjOChobMQ_F~qiesy6hFD{sZ-zqWbJ1T41&^*vRU~ZrW$~OE-cJ!) zr|CMOGULZ}LibHR#NVg+XwI(!pFUra+_k@r?RPdDJ?o%*IuUp4}EE6T}3B32N$uC!v#wIcS}Pdu#3Nvh*{y8Nj{~ zRXl6q)z!pv&h!vz?tuxFRBTXb|JLo-*8S&ou;kK@5`@+k);M5DpxrPMs?X-BmViA_`aS}2$tEoVhJu#(%Etw zrAFcG$vsPkTiB?vv=RX32@xG&K*w?vX@ftA#!&k}^vqZB!%UM|j~p$q@B@9EdD3e| z2UXmw`M&0C4M27OUK;7EubL5_Df#ok6VA8G%OO?L%GG+uv7|0i0mQ*wkZ=;5 zUzV}YnhS=U?zyvE(=W0wIjxkzrZFa_)Yb_1pdl$CiQcfFU)tzefb|98#; zYH`;{uY1?++=UJDNvL9Lnn}?X3OqQ8qvS#E``JCJ5L9!r2s^TbRWB zg@*IK43KzIHZj!YLeuB^@VfmY!Z?>R@Z}9|*V7%KpD`@sg2UwW@?_ybo{>@3%Ro?! zl6e%lWz~1o63GKUHF%O)foj(*M6@UY912?y&DgjJBO`#TSBp;lA~&PrX9U*PpHgPR zhNe5FwTRbW%K1{QNY8!_P^Ts84&jRRx6_`%`vl`*yMf2G5u28Fy&~PfqGf~UCFVJH)f~X`@>>8!L-dk4$zut>V>r@}1r$oF#QEE+2}=i* zfUM+TdKd6+Lic@4`TrSx2d1d5`%+e&{?flFGI<#kpFikDK$rf@4Lc4873_JJH&WSv z@=vElt^i`h->8d|R6nDRAv{;p+5m5l1I`>%s+Ujpny}5GEWwR$LoHVA;*T=y$qt`0-DsyM|@E6%O=^@==gkb zWxxQfTCLT+N@^PIFH@eqQm~kmc@<*F&_Q#D@4!)Wc40Xsh8wgO4=n<>h$(SuVBsh= ztxfYXw!NPSTl}oXRbKz=S*N2LLsGUCy`)(}pGJF5C5gh2B`$s-r(K`=i$tz&m&S4rUOl(gV^Z;VHQafpSDi@3$~p35Y>fK^xQ3m- zRUc1zD1wcCB~1r{4~W>ihAn&ZI;}jALfWGYc~-3~79O67L@r<+5AEkkOfuJcTCJ2= z{ZjcuxO|^g^O0x>;@HxprL3YtbVFRNcA~w5*nv)uc7Oxe*+IFWT&MHYd+qhy@@(iv zNict9pGt;epBqh>yf8SpJ>J*@R?Dsxyk0gT<;AHB6C)!bHS$VggBI&gu)H}`9XO_^ z3)^E5jakvmxmCSid_d&f+5!xjwA~ZHiG?{RIjN~JGnWJB-)#DvJC~2Ho?NbYlpvqg znO(!VYl&sdfmO|kWe?rHb_f1exNVTsn%QXQuPcHroP^1T_XlwpCQ* z-_|%je2!2+P`xYj5UoB`V=$pht?M)Ptg~Y4qk+_35`M8yK;@n7{93jHk~h4~4@@bp zMb(68iZh+ajNkHxB6d@CvBbTYgydvGn5l7HWnf(*CKZXXoQ=in0>=2+ywM2-SiY9y zeP?D;AYl)i$}Na3sSw~Jp*8CBzVi`T8?i=2^TNW)60f@Id!rAG#0PYNb{8zH#jfYk z0m6a380PJGJ2|VN8Kx(1Lzkk-U!$rkYb&t>kd;|8zHD(y298HcyzV%tEpxXdQjy7m zb+IMg7l?Q(L{2YCvcCPy|LK2ZIPJ43`EEGiRwv1}XCXZDxO%De*jZ_>K-n0WD`F2|^*`#&gcU}&zOpjxU7QU!-aPc0+YB@*x* z^~BTangV}IKg26KOaQ1kNhP940SP1GqdnNNa&TO-e>0q-hhju?TsA|DY1M`5=;Di89W`QKJ9i?$^14(nGMWW5r06;3e)W5?Di^!y9W~+Era#hPddQoK+Wl@Vgjh#HPPiE8)CO8XQ_- zU+%BE5Vu#4px5AzU?aQbG(5SeoSBxe2nr5XLDX6Yc*#;tu)(NO)&3$n%&JlsJQ4&< zB}NB@D(MScBrm%C$G^_s&5*NCEynX&HjXbJFAQzV9%YNz`~pDKGRc;6vGcxh29rvtw|YuOqC`s9R5EzwSQGNHv5w~Tx&J1WH3g@6 zSaa*Wc$-EyS!buf71ritCV6QT|1Gd`n5snW2rAw$_lAzUsP^_-9hFdD0C>Rjj9-vu z#IiQ%yke7C*;uio1UEnw+p%X_sh3R2o!L5SZnV$Jw4*1yRPG$s6DkNcXkrYY5kn6Z zJhvYVCXG?~Lp#7cXA{64kb@MYETSTkgdv6N;2TdizH@Gm!xX$B0RvRy;PsdEThxF4 zW6LIL>^`f`Y;D)nPTy8;I}8CrEqDVPQw?lU{p3-NQdH@>Tox(L-JqYRUu zY$c&y1*LR$kVr>1VX@^P`W@_SV?%@eOVL~n$`^?b93W9Q!NZ@bO(CIfYUFU zeiF94cJW0KSlJBYIa4ZkKddCA2FB?92+bvh_F9>Z=~x(LPo&e3i!14+Cg!ER?qd-R z45#@(!zrCyKq@BVNl)nY?jaA7_;&e5)%<;@E>{W!Cnhinq^{E#*@jn6*juDvB?oBKjb~ zZkl>!_cXw^0A=;-Y_sHr0K?r5(^WR+&>Rvqml=ioPq22rA12tPOqmsln^w%PNAPgvgv2D z9AWyd+XU$_FJQTplo$i^xt;y@zUtg zXP2#6ItKbTsxkmg_Sk~H(-t~#^m>9B3Y8&qR%`a|7b3P6=;#Y*7`Df^Z*7|$W=mdhV_Pi- z5h8=ypWhzy2Fs#~z)=kv(k>R^7YAjfS!SI~>uQ3jmCyIPj_O1UXV6KzcF2;Yw>~iB zBXiXB=vSz}OuAi4%A@X8l?2eTuIwN){?<%cIxWcNsWIsF&(EUGF06(AC487DT-th0 zHs)jlFJiUpVSwsJSKo(ppZC+OWQE|2M)mpKf>6zr{HI7b5&}lq;l4?g{uK6WD1f^cH98OXTn*jzHt+svY9Q<=Frp z=(JsaT1fu73 z{y6M-u!VYiIZ8pzRfC>OR&n+Sieh!wQx(nXR4Z2~PmJU@Pyp7*jmmS1&JO*E!C6dsTsFCIF4* z0oHK_KjveLBl{58-F{i!!J3RjwsKb=pTU?cne~BSqA^&{Tw7e0rq*Fq_iWAiT;`23 zZPvi)sZxV=+&TA@mf;B#*>XLiWy2BOYsBut^ZfmFgyxRT{Q`5er^ouVC_KX6{PRwm z{Yx|GBY?j#76s8nFP#vl;t*<4+K~LEdW+9$rE`y4+oS1;a$VlSS?TK@Kq#7>hdkdg z7a;6mFvh+D8Up7Ccy9Dxt#`JY@HzoO=lA;V)z=yA!Rj304h_a%GcJ6J(tRh< zeH-BPKHBXc*D01KJUtK#F?tF2j5l~W;j2O9_|oxhdPGgi9@WM@RddUHE`4BuMZ;@m zup-i$xuXDou|c9oa}wGR=k(Lcpb@+TzQm$$nXk#@8}JIk+H{HVXA;#7m)V4>^;~9j2Ski zM(&Z(V!K?j2Db;4W;nsIk4h{U7ZV@E!p1mAHA>$s9mRsZxpCm|Im}7Y_GYCc_RDL{ zSpvg>T+fg7GQolBXT_UJbYWf0vrgUvV{5RO^LxbV4nc1)skPgtb)$2-1Swg8!}2VA zCp%j?%qk{|!A4R{96kX6YE(>{FbUlvQ2n`#G4@Qpy#>#lOzEuAC{1Q^N8B+O8KjPVK$IBm__o@0c)s?PESAz+ zT~ddy)n$b%<5|7#kbE{~)F+R#C^~TRIVhwETj$l+OT18?dPn4KAanU46pa_O;EJ(> ziF!h+=`8vCCbjN&05jGEzOot|K_+@tauK40qTEPD=RpmkcEmd0K47y0;-dSSD~kIr zo|e5HM#ycsJZtx173Efr+`ar@E~lsyA;|glgpCNa2oRKt6=|>C1n{vqGVN1OpXYH^ zV3o9r5`-P+)wIqSU8}bFkFToT?UmdN1W2Ep&baSTZOJyh98>FbVy{8v z(;bL_8#nd*d?Q=#Nw@BjW_l!W%dya9dl*^>_di-P5h#JZh6>_il%NKyVPbz}m)jcq zY>3CGP*(j`_ev+GcJ)>|sWLy?kZ*V{Dvf+f%N3KGT)BOiO(lQH%Av-?mdw2ha~t2x z;o;yMz412W27nbir;f8-Dcv@(e({T+oy3AYbQL(Z{r7(H|Es2E1- z_S`@9Ud1KFj4^K5#Ue408w0Qyw$ROdV}myo{F~2(_F<;9H;Aa&q#< zWN$A9+H2>Apf`o(G5|H=siT){#W?b04H#@I07(^r{@-T?IH!$ihx|?m-f&ufN zpucbP%q}>{35&w+#(*9@OGI*Y^#_O~jlAc-G1LEWWB)HimX1!g`_p?SCW`jj+T-^x z)>Md#|MvQSL>&KDBFjX_%=({1wo27a70G2g2c1+wn9F>fA%L+CcU5q%y1BXNS6-AZ?PE;14^ZKG(Kj}1a(urA_iP1PuEQi&JHNt8aXO0B#?~&D ztG$IO#J7sYk_+)3e|jR|ic;kG(WCg8rt{|18hs^c;d*)2r={O$Oi>#cLOBtT>5lYC z1>7VBK<@WQ{tV7dz4+*8Lih*Z8pWXgD-?OjVZ&+!-nV1(Je;ew>FL-3(UD0ihG;2* zYCt)IdQ!AluGZ>NOD{++iWr3IQ?yw5J{JFZY4BHBhG-_kn@lV}Ogr;Gyae<;GyCIM zfN~a5JX^NwCNXKm5+ajH&V$Y~_2KGe@{yyB9|Ffol~2a;HjC7XX40UQ7S>AveNZAv z1diG3mGh-#Q6xhC+o$d>rJi#8SIt`n;ZuC&(rM5jS87xL84VKfQ_UN7qv6ubL#~P& z7uqwsWWKi@n-spc{b^s)aJkxS;4t4f9?hDIvp{x(;!g*VilI=%FOb|b?~uXP;UPl> z;f7@UF7xfpD$XvIvokHBj;?rgs*3R95e1OT62<-^Po z-}Qr-1p{BeyXbl((w@GuX=4IWzRLV<~yL%?u5~M z^myxlC$=CdCERkeu7sbgF(0{k%yw$Z_qrMnPmQzlAh} zms(WI+&NLDTqXg>8ofXsd~_+-Z=pAG%oh+yMs&JZI@;o9bKLRO4x;P)wi|!FuSUUC z$kdla%DG%S(>G=D)k6$zYa47%4d-V?j9(Ov&5rX-ys-FGFTgCm&{>vk55<@fJ<;+# zAIW&83o)pUx4nF)P=pvFXc(Yt%kZ;Bq>U=J5}|Dlm73xWnWw2T+(!U>@#YMHRO4h3 za!2qhvp`(45ZR!hVuNWzU!Uj%59{A4wNWp(L%snQyil80tB#xp3rL~GBGYuB&=M#pu;f?dLnj+C>g7___yuX5SYMiZ8-Lp$W0;d2b1AK@&Ec$Wcy~6V;aHB34F-@g zs=c$k@eys1gHs=}`hl)mO`G5`8XcQ4El}ImTa{nZrxZ-imqomsDd;8DLGgMGJHJ;! z?qjQ8r5W1*(d>s!CQ47=SK#6vcPXhQ77zi3Ju~SpAbq$gw@?5M>@0BhdKN)L#)7L# z93=dQ77vePxzG+7afQ@i1S+$E zSX@?{lc^sQ!^&u?6(&o@WxjV#^VpowVeO2h6Wm6=VZhogm^+h9K|pw3hSv_spEG+e`z z<1@3%x)9|~B8%bZBIrUJYx|RV6-XEVmt-y8!tcO1uE1^PM|&V^ zi}Q!{hkjrrcJI|Q27)3-o(8ETb!RvIF~^VU6q$`wD+;b^PUJrHB(zLp2rm@A>@_WDZ(RoJ%fwZSlz))HrsrxOfId?8Bo#GmkyrQP4KupXU2-OU(5Yd5r!F zdvnIo^HdS7Mn;3~cv*WB(KvuLhQCGZzSkbR|}U>2N%88RWwE zH<1(uq3q%C8memCQtP4t8A^GUh`%BJ~F zo163Vlsr)>P8>)-!w8+y(~*Tz@LJRBpo=hEX|nuKP+!2fFL$T?(jltO&o_bbsXyX6 zW7c>RXe@b7K+1=D;Q|;R$&*|~h*9FD3LqmO*MNglo@LduXe*iwUY)Gw${JHu54Tc( ziQi{7$jx4i4fzw$RGRlRxc5#F37Hyhydgj_MQ{vE&1oj)YQAg~x!mvG6BHSpMKYbM zlzm3n(y)BU_FJZY85vTbEx~4C%abl9ZR-sy^6eUJ=FdVX7rQy9(>sjaxy~Oqgv0^- zOz>oa z)OZgchEw^8UHz|#G)^P8xAb@#UiG9Y(f_)Fk8*0J18!bT^gC-HUQqDZe4WhTSV%s@ zzjeT7N_o8%&x#JEQ{@E1AfA7}QB!|Ck=8!56^*N9RXsNF$2EwD5niH22%cS6jY+NQ~+YhQqnE^nP zYDTgR^LOX<P8+G2dr7z7lHV62pE;lW1AQf5P7`(3aIZGM5^{MZ^JiRvH8@d)r zKHtxWif@&LcZsAFGrl8?6M6yVf4dyr<;q&r&ME2soLk(0dp7UfX-=#j->x0^@z$yhy`pkY7Ui~;&`2g2N7hqv2zW!$P}Dn5r;WSVgZSj0 zxb6f#py!mdOQRr_aToUAjbSKQ*IpLt@#Ia7IoO?%+&pC6+3 z!3Vk-=)xXo4b$m!&wI9g@$B)y68)W-z7ML1snSiTR7FT!j(+m6czOL+Sg2vahDPzn zg6=mLjxrIgz-qX-YBwa&Du}a^sm`#<-RwNzQA8zPu#O9_#Z+KUj+S({rW6HXOP7{} znOl~}tIRy%khz+i()&dYET?icu^A2^WzC}Oms4R6JztZ~V626lT4#Hhv2Dlv1a||r z?}iXKaf%^j-PeDb^QR;GF!$Vmg`%Uc3%oC8pdW$7dy?A5APBfIj4UCLs6vvW5J$2V zWBQe(72)8in4uCCquV{daRvhh`Q@`mBWdoy0D6168xH+hVv7*t(l?!K_ z+zg9V^}>~qds&WgSdO zVL(pWeklpa6l@<&VUn7es<6Lmut=u38vXZ*uG(CpQf3uJGsXe5gRqx&B@N!v z(PyG_b(+UdR-CAMAtw@+BaHx*ddP|@oXpDe6kV2|a`l+Vl6`yZ!S+gcm( zwC*mp29_3HNX^M-EM*dj%GiqP1QRoY2UFd{;oEW6VqrvytWxNPvlA={dTN1%xYLpt&9ru6FMvj21BY^ZH4(D`AVva* zQUp`epJ6Qq0VEzZM=zsAfnE&Yx{LhxSKE0}~ zvbxf2?Y>+hC=f9mc*4Iu{*M*(|JIUVV`uyiOCs6>l3z(}<2(9qV(H)zJtRC6-B8sL zQ|?08iuO}wGZ2XtEFrG8ALgCJ00GM&kf0#16|KcEx=A&9dAX%Iruj{^%Fff)^Yr<9 z2a%w$>E^j^M(2cM#yw}}-qQ!;hk=!pJ$u$K9W_oajt*J%t9>H)l z)X!8l@lS}{Q5?Sm zXmk$R4d&0$rlqv`G#E9Isu4Yp7Lv3yAumZW(n2`ap!7bmAv!~5nvj?DBZVGxGId!p7vtSDMxRfDXCTz~OMBA0;8|9cLM zB#3QK>ILab7zjxm45=?D>F+TxXe>f9RAJ0~5@lg_q&c$+_&$b>&h*vI(9ek!o)^9> zD(~f|HUp-C;w9H=o1iPCYj#`eXZB~c`Q*+)t-g&3`~igBmQJRtY##5>r|2uT(jAlz z4Og?bnX8+n9s|EEpj==CNQfVUfy?mYI1dB*RiAM0OpDs(KBFmwBcUI(_DIa|xO~dI z4-XyNH^rTvBZNzPsRqCUF)#zcvBF~mq3{SleM|;Bks^@T`hNb2+ZN14mP4#T!pAzJ zzuPahDa4C@!uj07+)B$GuEx@0UJk;Bq<5KpSsd*w*O)k}CwY*}tJ4vqSfN9GdtVvgd7wMY@mO8O1PMH=FVSX>rp_FP|M9vYfz6fw2qGQd zHf0v4?VD6X>M~wAOHGlR&9ruEDXbRtL?$C{QP7_b0HN8B9i z4=V^~@EEcl0LmFxxP*T0$Jzsi9@fpf-{p^fAj8NVSGq^LlzEldLSI9v9M8U$#d3t(fe>+qfpB2dQ_V(?ZRnNS z`rrB$W8vhmaNwG8BkEh|$xuqkTn9bfx>7e4i_^%7!O4rAkN=5f@NnFQ)QYWZ=3(NI z;vPs=RzP5OPz)LRR?n(OUN?kr($6hd1?P%4S1TQ1S801qaUvS2$V3Vef8cjYqSNxg zrj-VG8}Uexlw6!ym+efQy8;)o}nlx4qoE+X^h_WH}l{ zGxBi~^6&uQq(6jXUp6yVk=qzK0Z^w5zL#jWF`OzTNFr1Rg2~_#!Ql^?@J6imMv05q zMSuIk)#Ry<-rz5{f|SQjLa;;?2I0+joF8@Tp@Y`<51yADK^wRi-YI06@u5J!;B6;%mq0U z;S)#OK^}9TP@1={ktiO4&7tjly{h@tg+M0pvbLkLsW_gO7ltYN}<*| zKY$e;`ty}it2FCJ-}fx+6MvoEl~v^G>9V5KHcYY>EaQ|ejS5gM#M!0o(gb)DYO?eS zxzrX(h85pS?yg0<>}vB^Q!yY^=)-!bLH?zYn+{M)Ucnt@o+b;-%8(8&xEs*VvtbWT zbR`A~EA-9AJ_-OwgPqxz^m}Q7vw35K8Qc8Q&o5p539w@T(m}pN2(f&$waLf-LmN

    a0Y?NXXUn`1Sa=hi-EbI8GGgk zv#!kBh?UnFU&`&r9WpksrVX^q#a0~v=b@}*x5XqS+Q5#!B+D0+nFXDZ@=rzNIs$YV)qGY_E~_iIRM#VR+Xe)Aa?c};g4T0);|*I4KRN!Qn>y|;)l6tZ6328k zI6guaZVG8kjh`Cr->LUukem%k@i-g^(xrY|o$AiAe#JAwD1Yqzx<*H5t0(E5M+a!! z6+xxU4@C+LVl{lH^-)0YmyNhs!%OJz%t-2aVnYoRu04Zeq_g^H^bIL?`e;z;=Ppqv}wsg@ai|9X~T7}S8GWHxGGHCL! zS8mcyS~r(owu}mIpN^O^+0;`8`lrE&*R31PPeCuzy<)Cn7l@l|v+;oikfBgqV9A^@2h z%Zb+$3hIcticYW5DeQS$B?%9ggboE}msi~a6Ool9>WR*sl30`mOpV&EJ*)dc#`q#2 z^nU(jsSeDA74E1k+|Q{4(-QE}wR^3TdnmRUOQn$RDz6WNE3KN<2 zbsb@3Pw;zcyfYO3sn9@JHGBLv-_AmakN#x-`3r7V!gy z)o%3+s#J6Yeq=g}*Z1Rk>z=E5R^-J`ziHxa%}W*&YJthfbbyDuihP_l z9;z~FO-)UCd5bmc9WxO^;V0DsQ{tfW-%D@P=4oI8&pz&ACzC^A2?d4AOh1!rtmun<8X#SSBg@ zN*eSR1JJ^VL@pUW+h(YuXvJh?4}K0OSKdkzkp65Xo^`1J~D(UMnC zZ!XsD1ChMV8~Lo(Z3MAVjwXWYozEXPPg?ErJSA6Y{Z#YWb!Uu9%UT0|SO4m#p*5Q0 zX)I%>B4)!ty|FNVlXU)GonMMfsZPJDYx_-_H9a~?L5<8hDs|*Ht`a2rKIzp6@+h!a zF)})=IHZS@zIQ3RWz%AyIQIj#ohyIk@GD504^ezPVLq9GS=AsU6A^SFslRtJ&D77? zXyxJVd3<`1#f-1(`0_gavobP{o52s8R%FQ~Yr z^;mO5_L^&07T(QSy{K@u=I#qbw8+hlr;VjG0*;0>q?vO62Vb9un_+<-iTR(0@q47b zufjSgx{-?SK-{>kS0R@olSVms>eEdHRv6P;atD#7BI>~%ohXZtcjz!1aKN>XNIUhgP`eUae-vq~u%h)l}u~?-MC(y=?9QPZ5zp&k% zj2w*!P(wn+D3XFRK7_GZ_Dou#=}v}8hiez*48j^o_3 z7?}`j)Z>s1gayWjM=8{>tf8)Y^-TCr^{?_VTeTRD??t`@$!y~P*+|5F@TG4i^<67grq)bjA6VE3o~4u{OV&xiGABA{ zues>gaD?bfo{5X;Z?^?Pd>h>Sz^;{b)6QTh&%?;DHo!UM!S-XV!)bL< zHEcmM<1?m+;HACfzCKEo**lz$9k2U`K{>y4<%x?YG*zthaoGzwUNKOlzWU}3X+ApO zhT6zynG2J%-53XB)TE#{pq^O*Ou)P_e^*p>z?uU%zYg*+gtfYO(oW~fAA0Pih*2)) zN8bC%CwxnhG^8q)b+v{r+zFHg&Ol<+-Pkz=X5gx$>x#4WfU|6FCCwad>4Poy%*cB9 zPP{>%*xx_CKxsTIhFmCFekvR)8Apa3fK_Yb;%>KPb)fe=EB{D<2bbm293!&QRjY(Z zbfb2ZSRv#xp0H_zAj&a@pXEfB8zgQ!4IVP6sQltwCfr$@@IWEa*6UGH!hu2}N| zrG4>mm#Wo5x(<=yZBBiD)lWHcx30WQdEJ9NfMjE(>18t4ucp^WXxt|R@oM{Kv)j;%gg@Z0-Yf!H^&({)>IpE z9e3~X^SyW9^(mbBpypbAMpT z+_xAv{4R$^oASo9qr)Tv>?l>+3aY#Shk1T;Y(eaUrZc zI*X}zAQtg+G$g)I4qQCY#;z;2t?*>`>#qeH8usyY8BWdW135gI%c+vI4;z`pJV|2= z%v8WgPOgpBxmUYE2UT0j4rT+!)Pveuy;-;D@R{6!V3+d_vUb@=FbHRIB+2}VS8$Vm zM){*qK#LmfZ|^w3{Q7oU(TJD-Jt4Tq5y4~}wqL}D;>+Qz5&OOsW!rUjOtYdoK0fXE zn!t#Zy3o%5)fpun9gB-X08i5?V{`-Inbqi-XHG87}f2;^R9_!su#R)G_3 zhD3IeV1cR$jc%aMfZ!j4O-;OjWrCFmO=nE%Nwmtqm|LyhlvevS)H$)cy8{R3ORSei z(mi-Lj&G7y^;W){m{Wr)4;{kn4iwro@=J@cnM`?(cds&y6D;~Ow7(dz-wxIY%rCEC z!bEqkPRxJbM3;8axV*e{yf|xFsorXLv3ZQD##j_F`OR zaTk-+$JWcn!>vFbHl?_bYrdYM1H(lrzO8Ic-s1AljuKy>;Imi_6=l2!=i}rZx&f;6 zlEScn?#f@Dg%yxBCkTJr`uf7^lBcqF(&I&n63JLOj1-b;c1=;xFw6CiEzHx|d(c z6)Lm4J5@+y_H+;H=nSsW-yfvd#XIH!c+fndFzCERE|xD{t~4??mF z*zR}3&fm*WW*fc+J!Sb|cP6wj*Pc47?Q<(840*f+$1Prt=h{l|G=7VGFysqslqw3s zr2uYD=-n<~>fPeOB2qFJQCF8{LOztdke#entk?EQ>b-gIA@xKVN`%17x+<1rCiu9=-kS9(sx2>RsN_glf zj40{vZ&J`qXL&8C2oTA?->VOVjYoEA+@=!51XG@@j?BoSaoJXnC2e)-*5+!fqE9|RrvkN1q6wK2B|@mt!r2E*n(B6sYIJN4-Uhny z7_8Gt+6{PnoClZ|H7S(`$y*QoI79BlIyBN1rYe5R_V6cjKI8JPYUgx9JXiX`@4v|I z!~o4Qv7$_@D|B+z35AR%@a?=cVQ6k^|dt>S=KZ=NELn zigU45^Lg~{QGnoK6h7I^4wcitecwg2GX#G_U7_J6H8TN|zOi;GLGBWxBds$Qk0Rlc zRb0H6^9war@jfrwRea4#d5NX&JgA%F@q9|~n^T22rscFZB zDSZcIHGS4H;9)fpv)w3jGdIDHkf&=>jKsel3R|huoZN<*e2(qJ zzZYfrMTuzfIdUYHW}lGR$5z-o>Zv7~d`Db_DQ8qyzKDZh4VL?&t3CzwPwG*}F)m_? z3QMZajBbQjo;1Vlzxm7(gq%cx*;nt2YJ6=^P0;r&GnSOR_|W8vF*QYjfnZ!#Bx;# z8ZRB2(qq4zs&2;!gTpkAP`rGA?)6*Bc@6SUOCAK@= zownUgaSXsc(dcOt;nFBrsc?VPeAyjP3g`1h$>}0#tEMR!QWI-d9TRjagE{(h(9g^k zB%Yi`ty6flh9(S*^`#Toy24fp*>eN}IS)5H{4`lqx)VetnFlBd_puP#<5baskEfe0)4%)oNC474 zxuD}u;kWA;TLBMd=3R4Nr+McB z;yN)*T0oj(Y+@L8IvsN+mXp+Of`S(h8t(EX6F8zKBLY>tg-YH~D#C9vp4TA|g?l?* z-`*G_N;p?D-K(a8jwmj%&^$z?SBjr#jw$PjEgSfaY}ZG6)*berb%>ANH@tXolz5f{6N^2ua$xsu# z{(h$VAAztDRIp}VbB?4G^0e>&0{yyuE@Nw3v7uZ4OLGueYUjJ8A}8K$wBd|SkM|uN z8py*GO@(u(xiLL`muA5L1#PwBwe3CS7tJ<_i*=4tqcQMi2S#2*53HfOm~0#RM@_?& zNQmWM7u!s=k7zDC#|ILjW5gf;@TFEZk+2T|m<|~`yM`H2f19^dm!lhoG-9PRBfY^( zkp;9+;tw}+6b}4&T+#t%A65*s)CZM{UN<>J~a1oVQwFP<3_Y zKm$vm|G+A(z@|Laz?&EF(0dhbo8eM+J)n4V$zL)5@DcGMu9HMA06lPU`ujy^mDB~A zFI##eRWot3Gy3d6-eBqDL}Llyy*L$PTrF9n#v17eKP%5~hLI%*^GVp9GP&vv6KXtk zr}BD4ueMlOL%y`YmX5lGSH&vERjIC)wnH(j*{Lu|vO)i9YUgZ8>s>XRL-1?Y)Rr?{ z6L$-}C)Ssivu#z2L?V3ir_6-u-&If1I#XLAnoX20T}fw)2AA4|?kIdm(zTFA%DMQc zfCdrg$Ch=FY=0IxoXjh|>%pCRGU9d>Wld2sz0L7$M&MA1tMf`_l41qIdI81i zJ{W^Snny3X4vUJ~0p!D8n$jDNB~T9&5)VkJIv@;3m1UR5FbIVQHuEE<&V-Et`0Wo3 zuJp3+VYmtPgCL$L(#WF~u<^1QL5tRA7nbS)rN6Ap0I~kQqSP7?% zm7GtiB*Wi(=Pc{S7^ldm-YmhrzG>+0 z7U|k8P64!tgFT!Vb~a6T76!qaY3Q$)dp>}@Y{ujkO(FBMHf`ZtM_S|h3zCr_YQuQ>tUL#e5uYlJIB>ZTBLS9dY_a`%yKc~|eAN>beg(Gt_BO3J&{y;j1 zXakJFAmyt>jv(JrvJcpLhu|gv7N8K4iv~uVQ{dxosh@*km&4HnQ2WI9-&j7D__-tO zC;8wa9yHKz>$Y+0U7%NQSnnBcEGw342s*{h(z!-vE86mTOD7gh5H@%VBh}yEkhK!0 zV*i$R{{xElzl7-=|KBiu?W5;^U~Avs{||Bv^pzhN=o<$%^WXmPj|#zmo2WCfG5*JS zp(1r?btSWQ*(fsGB+a(;6sL!*R@I7t)pqB~CNu>B5oOehCxw(+A%dWwIB?|p?=?{W zAn$l6FjNu$eO{M7@5POcA=-6U&aNxzlI-b^(63FiYv@(itdi$x?&o9f8Ht>R!;kOx z?w$9pZ-WMata07irP<2OW(N(0!R@jQSFrooYenjCM50rJVqnSsS^5JtqToD9WbrC9 zga5J9=^Dyds6$p#Pp~w$S>=f`zuj=%co&*K%QEyDW% zNZFuCGa18%l6%vsSJy+k??06*3qceCtIPu3>{8TPcy-omQgi(v>Eu+zN|Sos)@zYc z0q?1=7sM|PV`UtI77DWHd>nky_!xaV=zXymlIevSAHn@zJ`n^=9BkQi(kEmvPj``# zU!)V@{QyHxoPPtgQ+kg9A3v-B%^2~7|`=CL$4MfNP1ZmyLRhcRPj9uX>`YS zQ<7+h7|<_Lsduj;Ai#V|)U+=y#=l$Hi3Q2W!=%lsDIz9udrHX}-FD`qHx5uzZKI=O z!gtV62x*b-7lMg=GWfHylC@B854;Y73px+A(eDY>nKbBX(Hn@=6)KM^lPg&&S2Qj( zGBvc+wKO)=p(}AKbt;9Id6xy23I77r5|f9WfdjR!bm*AJx&`N+b zj%I3Wz^}YcCKchEy#2!&GNPeT@~W67N2qU>58L^t%q}quos*TUsr!~K zeG=_D%~~s3Q9t_kK;c3JYE9ML-m*xC}%`$7w!f!(~w@$+Bv>_!tm_TLUXHTX5!eFd`VCU=o zhO+<8M0KnX3{i)qwghArjmykADzC}(11js`2esQ^{?yK&&2sFjX=_ER(bcV*FywHa z^sW}U7O!dP-GjcpVcUYYB#Me0&fmaiqT1IKHdb7lZu^t|g$$=^VfxJ{Cp()TXj#v@ zRCHLJj_6>g-!SwrFJVlM(c8U&um#;>sNvfODU8k(6#_aP_~g#L#`20#_*cXA%$zdZ z3fjD`^(g_*0fSx8N_jz=TT>evVdyr|B)-|LUeAAZj3bMs{*pX8LhYI*fkdu*b;&$9 zCp3Hb`(t1>c@zxpn1S+(E08O_5xJjfPU@Z(v@|kHcQ_f2&*X;M^%4P?x zd%iRoBMy1ubS2xqB%S?BWsD}5JD#aQGj`-s$h$H>85<6Xhhui5_!kV)5d7UQXD=Wx z+AO!<`c;d{hSd2Frd@ccYM^S_Ln>yZI0lVFk?tz|0x^^U?4zhEd4C&lqfNyyi7A46 zg}C2gpf<;>TGTGK=fCJd8`f=XA$dh{rJo1LL%J-!f9QPnjBbm*X8WVBP^dvZvOa@t z{@9ITf{e8hq;52(hzRF?-q#y0EkMqXY=IK-b7l;NErG-Xe+$pym!J&P2MN^o1{?XMZxV;8l9UgJ30z$X-fS5f9Df0x7OHWnnu_~O=_g>jJOK~)MmoPVD79%d z`$+sY<3QM<^P-tv)~hX=?gCia8JO7(`SH33!8Zjvp2Gmb#uNPPR3;^brpU9VPJ1a! zG;3VEXjaHEqqpU7vs%~APe-bul2b`FJ_F5{=7l&4B|>PAAy1=QfxjCqX;&vsGA7%e zj}v0>>t?5v)Pz1cH9y>w#h+byo^RFng>EWvv1z&`<_UR##cCYRG*Ln*cwXT^1f&P2 zK|-S%agh^?y_00{3~2evRe2kb!JP-3)-_&ljlxtyvuQ$MZ zp~!<#HYGbrItjDuk!HGmJ#kT{70-!nqXPRjlH%)-lp?GKrd_;hNY##P=9SY94(ZV~ zS-O%&!9rr-zMbRlYi?*SV&-q^=qXGmW3oT=F>ojIzwjGw5;G^J4z=Nnjk`_Qm58oVJN3ww=tq zrmq2N#7l172=%mk2rXRjO^)Sgd$~{ z<`{7c5!W!LY};2j6|PM0IR}=m=YZ-O@1`&JrW(HaCGlIiW4$X0aiuX`QS#YgY#%Rl zS>EkajMaH)iCBS~Y?qeIx$*F+i=!yB2RONc`_zx}h07I_1MEPMxG<)66zEexWp}?d z1zrkqr6yJ2l%r4h*ljUl@*~cGaJI z^JIfJJ3CQO=Oy~cmjhpanPCj8!|zU$(d2_dOo1|JGHzshMwrvqBw1qJ%L5Y%opJTy z(vxf1-MNTA*+2UD7gBXF$~;SGTbxmZy091yy69>^U0r%B{IQ5@eDG4}6@~EkyfM8Y zWr*jd$hc}1jF!Q>I$)(#tXv#|0_xByE4fFRv7RytcPt&0)LIQdb6?V>kBzy59Lnc6 ziR5AZCawzust~G=7!3j6FbtIC!Kq|=$vKkO+cf%3=i zDrdD@9a?72u|xdDddbkFy%+XP8&+k7_PhY|>x4&S#K0MTUTx`o`Njl{OeX@S>@X$Y z^LhV_4K%I)Dl6QJIYJ_Ush<_kGq-OTC0&z$S`NAKB)_Y3d>4BT&txjECL z0=HBx%VjD!ED%hu_4Z;CyoBTyZoiB4``_b0TLzY1=pu%2Y8T-WhCz&)QFjiuyfH%H z`f2dyB}#5pe>3LW4S?KLRzDd2tUH+6dRJEMQjs!wWql9=2?c3|0!jNb1erN&jjSQ6 zc86-(Ff9%uaMpMCb9Q5EVP!>&Zf!`sMPz>kVmA)I8!b&B_nqL6i27F84V7+fD&-_Z za1QtHaXASx$Hyt)+@`5*0ga0-wa%Bb{=^L}iP4L%KYi~nVsu-AGYO@izA*L%>2j>! zZ-9!ToB*Y^;|y7)DLU~J&dUB>rOoG8-#IWo6r zq$qTH$fBjUUpW_?ky1TzRryjDIyPr~h&Ovj&){Q&bO*#OKFNNzXXH$Fpk5hVGLY$r zKUvmuJ%8s~_v)MQdaf`Pqk-+$lBp2k~f!rn&I^h zJ-?-a=<>pu!8@I**kj!^U|cll9QKV*{c^WuNiPHD07`YAIKL$89h!i? z;zEiKTn!M6tu0HkroBz0tpKp$OsC!q-NWb!p^!i~3qW)1LUgfq3Y;aQhW#Gvpe^=- zDSX>qBn(-W9KQG-A8e>_W}QJ``$C_Vjo6HYzi*~Auv@RS2_f5`UT{~;&q}W$fpfDr)vRB8dW;U6^t00A*k)4sHPXbI( z7Lc@csZfMPF?TZY{3aQZrd!AI&3fHCEluQOMU!)~eE;|{ry^oyWR75%d;{0$_Z%#% z@cDdDUMsL87`??V`L~GUW@JThM~6!b#j7u__9nCRig`~)3;2(?6Xf%~KRl-rsnYzKm-ZNa8Z?&OtIPL++C;MGIFGL-SUUzrjCYgfI?Y-Cr9C3W16 zcs0I^c`<9_x32Q##8Q%AGmv_zwDKb9xe|Y0r2uafF&*M`_uUQ1RpR^VrgnM30=&oa zFV4a{t=v^$!sRKI+Z$zZ*T@~9VeJKw4~W#^S`WC6xK=)~&TJoFzKa+RyQtSYG4z~! zb}6-;kbLY@;NZKX(`8WzVNDq>zR~)gDKSjNGfqz_$*UdN{;DYylwd+7{!!-d#mt2d z)yO4F2ldO5b8bSy66$Ex$c29D$gJtOk}n+X-6X_+Q@Q`Bvi~nS`adAz|92@}5?MUW zNywou9s&s09~}K(-e&p7!ux-#pcz=%|3ka$sCdgOsiFH4lK3Yi2Q$-p%iVZ3Rb+TUk#_@=v@uG>z&rf;&i#Q4D=kU{(jh^#zC-)io3XI3+& zu#`=#jOsOHf^|(Ea!KzeUXJ8p-1z@A`jvpViH`RC#3V!eAqkp`*LRW{-j?tXIVcCR|Gl$bc^t9I%%WwwoKazf zX0_azKA5bA)0BbCgwkOuqur=iV}y(*-EP?uQ^9!F7*#Gk^_wcK3I>o^ai`HVX;~db zVJM~iW*9bT}r+&_pd6E!@ll9Z{dLf=NJiJ~-w^_MrqQtzQ^Vz?wNlAgiBc#NDP zF*Pw}qS(sFl$gIYm6EOw0E8GwQ%@wNO&wh%OF9LM_F=J%8|KDJl=)s8E56+f{Wdl^ z9yb0>N@{jYLN)0*CCy-FyjZDGw3LbZEybS5gstq+Pv#)ZT^BP-QV-42hg=jCQ;Pm( zekTEiv`iR$dq=&ea0J!k4MuYxq?frIU0CL@)hIm^ zn;(5gr(F2n(YKw0ODkhHtCn-yz;sxMhN0V6pr)i|i%av;g%pJ)Qct%K6_J%p@QoNXAxp$SNAI>H#Qf@a4h<70s4S*?K$7KQ(NLH?C4S;WepTKjhS z+4UIIGkV~*sZ-&jBQ`{c071mG3W?*>A5kxx!sRDf|akR6uDcWy=ozDkcdtlCyKwFsnZMj39%SBf0cBzD5bx}9z$xYhjZ7#t1$qVY(1{fyVL<(*WE3;u=igSuLi ze~y>bGhw%4T<>r+Ab4jFqwXgpg@bT_6iWecuu<++o4^(q)1J$0Ca?6YF>q6z{s>nR zN6pgMT)lAr*7n@5C}-7YEWbq(F7fJN!GgW}C1LP2ST|;QBC# zYvqX<Z-B$EX0p)RGgBVDd1wtKwXf$!Cv}3b0Xkwb6}K4_MOp+6ke1GZIjAb0Dqx zg1it#sjQWJs{|j*XA>O^Xqct_W~m1IEbQFi6sehhVzX{5lQ; z_nMR)yG=7wnzI{b;Pv3&JTBjQNnAb}gD*-VGc%tT<2*emAs}LKaljZo`xmF36x72D z8G@Tu1BB}!|hF@?B0ngWiYzVY)%I9wu zso2*ZHyoW-;sNGzXQK!BbRPXD_?dWxm?TLwgkFDGC+rS42MIxUQ=B~BaPC|uNmBNA zS36yTbKZ1M#&Y)hB699n?e`{IY6Cg>Y$8fb41}w{9#y9JU0d>t+BesQS(=#}FUhQa z3>5Cxzf23eqW%!45~q&kc5}zLvU#t%C*d&W)YY_IEzyhyag2kj`ttdDH?#Q!`ou+g z?h3#X&YSjy@y4f<(xq-*W-Y$5gR=ax=cz2RPr>YZ8JHb=UkC)HgNKXC`A!fvPa`f=^C1SdH`L zx9y+{o?}=atbbb;Gp3|aC*5RltBtEx#niTK1Aa!5Bww@dys4E{OOwkgR}tSkf{r>$ z*uPD^e>AcFmx=lx{;-uk5U@WeoHPs^Hw4@dAS7Pkn}2)xAD;JrJx|&G6FZ}$;;x*u zg7zKakCh@2PnWp-I{MBVP>-nr;{kRqm}gGnR~g^BM}OZ3x6w;Y0K=X@$sVf$&IE?R zzXq*12aFBO(yAP-y!abCmSt`gqFmW_R$ccUTr z`mT9S&VY06N|;)ycqHuu77&;yUvbw-c2^ycK!{n?t=O5_hz9#PZ#rwUjUN&aBJ=iz*KHQVh=t@YHt#H#ykp^Lo(-Hr5mVjY0@ zG8qX8rol$qMCta$V1w0_IC zgF@D^d^c?+yu1C0duSDROc|h+d zEJAl)Pp~E3g1Sap2Z;QT($&X~qeZE+=%{a5I0bch9i+D|u+8Bz<&|i`?{;riS+=e$ z1F1#Ee)e}{t+wV#PMUW+BwklngU+vnyWSQ#fM&pVAfx76SJqi@4x3@Ebv$EgI=*JrsHx@|$)nvlXG4kb0Uw2ec+Gd8 ziN~2T@L09QIM zV(x;gsdJ{U5T4pMjQ2*jj~Iy>8!=1%7CS)K*w~$Q9{On>LYL0cUtUW@itMH-fe=8q z-lEuuz%`@4+aOV->et$Mm&B~0D7F4d<7XWm7aN26m5iOi>dPiOqFSv$<~Mj5bhVen zfY)4Mai=;M4mu?!cNZ3Oax+=J8Xz(X>6({33h7P=-WyOdKO1zk4fE7%k4`{3+^JNY zFI9iGe%-f_SJc*Fm9hWnu=>O{+6I_tG6ZgaQ2u+o*5+0H5<1hv+*Wy02fU##v}Zt2 zUHVGe4yj3}hKE67M&%X^lc#Uwte_n>c8`SR6;oBWR)i7FLGQK+V^VWQBe>?+$!T7; zQ%*aq>%vmX+`FsH!MCtbd(bd&082r}Y2h&iF!C1CqsFFGDoC=Elu^EU7^d@QUa^y0 zH|6ein;6CZlAawPY6Tg;b%f&=it+0dv9hdM@1+<``^~N!>gs!axS9+(Pw+yFd*TqC zc&1w0qv$0vnt0dwZ8^q7*)R$qDXSK%yo1wv?bdzqHq@ga7W#bAex{QgTx5xLCUMw^ z;Q~BAwaRF3o&>N8yT3HKj3BnBe;S1OfOfnS-JTJZb9n;26C7*`m!r#0bXS!^A%I_S+s90(Q%br z$jMGrBY75_&WwkI`8->ru1)rZ;1QhuMRUzZKo*u2q1&ITK{p1|ZJ|`;sIU~nH3ASbH~h>83dVTI7YTVNpFu!km@#B(`!5OlOrt!US;5`h<2@W3*y-Y!Xt;) z&gYesw5DzXo0i~HNfVfGArY3B@G8qHxa8>^KIyz!Xk!0ua{eRB{r`C;|3g3jw=B#lo(a5nbx`-7D?;3wPAa0IhwY8A3TfY&z7*fQgQ+aG-C^3BN6Hx>gj|R12~`UtLBpN&TK*0W?eqF5N>4g<9k`p8`$5 zkGkQ{D`Wh1jpxfg9oaho*#)}?rig|OHc8cS->yDeK&KI3y;D3dyA@kPf|dq_y6h*& z*A?{rKvO<;jlGPuq4NGRg>53Bjc#$+COS4EOj=nko!R2t%_6%@cehv<85zAwMj|Xm zF?2AbBDJ+FwXH1GN@=u2;hbSz-K7-3XnZf)X7W1+=aXh)jB;x095RRpNZA$gC3=nVnH8iDPI+fm{S1DhzuvZZ&%W&W#RKQ89dGd9sTZdetktx! ziu0IX=G9&SU-#l&vA&VxC^>f$DCI$BNgK*X0CzTKIx@F2w#^V0VmGwp8`D}~ZzPcH zRpgj4{{!@yy199c293^IPzr>p2!G5@G3l7|nQ*kAWjQy7hC~V*)D6s*LF@AOlfI0o z=WM$>Gja=A8!nGvi#kd7@bmb?ACKt~Viut84Q#cFAh|XBil_JK$^QVNTyfrSf|&?$ zPN;`WT)Kzp`)I#m<{*Y;&!_DjLXOI^ux4{-bivwsbwAhP;zV~17z&V@ z+XgZw0!xFCsl(f9Vgz3IMcXtt4L}{ULHG7uSpKAT=jydrdNSYO`J~=zU;`-6@<@Y* zZ5~;3PkB54Ci|uK@f>$jdFyy^qfh*ipV9nXsxyzC3%jLU?_~P^8o6`lVHOI)0b7#O zpdhDqa@-W&WL4iV0bS7tmgyU(rXHf&w^=1~f6)6fT0HPDH@Zu};q+@)j2H;c0XIFF zBJmuwP`W^cJLz%&9{t43z9AMesxPR-BU2(LnHayb`6y<zd-M*$f1}Lo8blf^od#oRnT6q~+v6S8e9X9IAuJ-s*-4iK1M5 zG5}PxdhRSJYueueqp}v?1}}?eYwi^zRv>@HhQ4WlwfV~qgqFqITiKJ`>t6NoH(YZ5 z8{HV`HoZ!mB74|kkF-&JPmE+}Z=4=Q?1AU@x6XI6GC0$pOpl$HOvjq0d`JnF2mA#S;Z z4da9i6}j}}KDvn9?6RY~H1Ap(H0Yb6u2y))hMTtUZ$5}_xB7Z1)? zWvJuf_-a|;B>?CG3pDAJ0LvgR+hneC(DWs=v##kH`wn`AK>*GOE8S=e3y4X}5hlD0 z!uAQjpIIU}>p6XrH-%_eFZpaxb~*#pEBr90V^^wM9)zsIMv&vm~5m6`~`&>WO(4McslnSY=6SF~vUkHrA zwkXR+pG_YMqb&-MA1Oak9zAQX=(RSNydpJ}yLi@L{=6s9Hm)y-#X8`%x@Y_O`6D7u zrYkY`dJtkK3c|Xty4CURGs4x4Am>vMSM$6#Ne@jYLSk}4LiRIb}WkLTChni--jjJT(*U|>m&1xp{jXQHKYaeU^RKT z%QK$l>ay@kmT?ybDtYeI{qU$ApnF5U30nlu5JM)|Tp*E$5=@Z?G;SzNmVw&uaSXX0 zVgz&FaAz_|AaeCdzbme=!B2A`1Bo2jWZa+xcZ$wf$bNEaZM|zX37HKpnbSZST8TcA z$gTOLiJ()=N=DEtNP;{ckyN#7%J%+va51!kR}NPlcPz#a#Mz4IjxIw$aD6jPVjIt^ z>2WVf%8_8AGvd{iFlTg-MD)3-QnPa&3;oE@lS;?de4O#zNtQF_QByS?p^ie3S4cbJ zamLnG4<1LwdTd=;QCfdkv4%!Oc;SBSx}eNmB>oXeI`y$_MRAZhYbIxoj4tXJn9p^5 zZX$J7rxVAbPH8Y7NQsemR^tf5?7Tm{_1?7vP%oJ`?uI}Sm~~on><&S@57Xmcz9jCd zG$(ibzv~j|0YAxEJpSlEtkblTD}3An2euqB&iIlJwPtJHf4m$&5|LdjoZPj)&A5IB zT|{1?B)r1h#so|HRq9VDt#)bDQ6v}qEve7USMZ=kIrHKTbg&}gYh=ymFrO$Y@X$-l zO3L!rCnl~vg&0FyrN$Y@6Q4b+V^-~Am(83sC0qd7GpB(J$BRtVZ)rfs(#WkDE?_@Z z3?YeDp0@JW8>Y6o6j=>HCgbL%?lvyz+ATmzA82qnrp?_zWC{9?V&!y1m ziYw25<M2r_xiA6eO&(01vknBUs6K;zQLy*c8`1Iv^%*JcgQ+|8WUG|3i z4%Bvg(CRu1!9SpLCXCe1{OTRk0!}=|ha%N7{j7lJQFbU;ngZr%M>mkYlk$T4m3#&k zRo`tRbtl~zuNHeu*ILofDTA0|6$Wo+K`YZdreNWkJ3}s6PW$Xi6H};U)L|W>(sArv$i_2I& ztPDJ3a(1=%!WY`#*qwQm^>6*HR$c1A1)f8pdf*4|h}Tr+Vbv|J6)K%opI$mNs6GFF{t3DYa_O4?^w~OJrPb7SPd4?}ND!x^d&; zQ^FHxGbKGWF*|!VdC%usV86|hyD@|0U~~Mpr)_?1EiJo9JwxL?v0cr+M!i)>(a4c# z`UE)BbemKK5=@OFb2Wtq4c3!;)K4ITdN;(!-nM10j{Cbz!@B_Wkj5x~9Lny#sGpSsb! zkh;m4-QWU#gvXmn5G*uR)RoXoPs@aALP(w>oOA7fAWOJ)2aVF16hH__p0Ryr&VPDv z|3GxtaaI%xEjtulx@<=e)J1lA4BnUwL$a2O3iYsQZi&J->9t;ayh1`0KLrq*&yWYE`w5ediN+@oyNhHj6ARsT*+sqg_`A8 zM_oeD%B9R&XgT%CFmd8Njg;nFE+`Mq6dUnbN}pLhLPsNc_BdI%RM$YPs5-{BJWG2- zSDYcjcyIINfMkq;n9Y^h%RB&3&AVd>%ue^Fj0qH&fbQ{+3MJ)nDE>Jh zz`HO=2xpF}r7Og5G<`Y~%tQ$3ex%|3X&gmxP?)crsz-YUtzh88iWf95Pv~WJ z-Z=F0K;0A)2`4ZDE7->ZmhwF3thqi@MYNT}Q&unO2YQ#V(>U4oNV)1&h2EPKrt%j% zOT(qLAy)PDJb*P1B4(~K5oKiGk^-g+Z}rfgUDnrxu&6u|Lv}zvQ;kk^ghjB=3G8Jb z4{P)_qP}OucWd*_Qe0o3jJs&v!z5XBu%8fHRi~+Sq)rV=Ua`PTMitzk?nc=a$@S>QolCxvfG>NJmLBC8`jcwn z1z$cpf&-zOf|SDfxjj!V$MyR)pAwI87@?!2sw~Zz-&!OaAn0J|PkI_?zOa4tl&ofO zsJ+th9Gvi%O5TB@iZ|!R#H;{4o;IH2B7cT!?cNh3N(r@|n4LjweFv2 zEsTKJtX!>P7wKZrY-v$lt*KRQc4vS4O=fQM``g?7`}hTk>3))x{y6QmbNjs$dl#lq z2!R*NHt(^nX_gvo*IxB2j(0$kY4;jm>sz!$wZ+_$kUiA{NCN;3k+NUkgh{pEs3f{S zkM;$ORv6;8KQkV1IU5RMhX6w7&~^Tn&C<}6Hu23;KR2-Ad{8pX9KcNE9>l`n4=|KD zR6FE^ch85ebwc#|qH}mir36B0h;xmL^V6b@hlPxHhMyP5&dJ`zH0rGV$Dt*)>Ujg1 zIyMFZF3ElTFR|4%$>lW(_R;*-I{&zIyY#^|_8!S|;@CH_)?Xcxc*LH4M5JGP4`cHo zYOnDWzdi_wCT?!^fp56ilUEn=!;#^50m``B9Q0X0K2 zvUuUQ4@n@Dh`C^=Q%b_`>*M_&r|&inM5kgpQjsYZ9kbSlL0GLT?G+=K_k|CGy}0U6uP}dceWuIm3oXTX5Uvnn&^_ZT$GIQFPwESI zak|Z%H`9uZa-yU0Keq&J?ibld9cWS>X>>+o@$v0g1}_qx2`>S$t+4SU#3;(aYiWG1 z!_9NgE`s3W=N-#nvEnP^U7}B5`yofv7f3i-HOBXZUvdKmoKWYk3h)!`eRLGz$BpyjLYm~$xRC=9SrLajp`5rhlM zHT%yQ%RbWjlgreD@)0!hYe7<~2-fr1!(NuKZ{0Vl-Y+ix#x8iYHujp`T_6)y_`C$v@oe&Fb@Fk!L2{h=9m`XK z4`~2fGHf{Wg|sT%9M*y3bC-z1R*PN=>(RCQS4RT4K-^c%`npPRvma7XgAJ+*s0>(X zNcc?IW1g4FY61}ku5k!bBKU{y{*38Ec@t?q?;}xzyxAmCT8}T_1BW3hp5nXEu8%G4 zYZU}ns!0Q@6FRG1YGEk*b4x_L?oEA0VoJT(HUQ#@;DQwbzT-6ud;u;oiVruE#VH3_ zTjLu{4%>Db{gXw+4>TkK{yZ%FD6^TqeUd)(aR9oI*Og4ZB1MxMzaVsvuv-d4z4`yr z?(O$dF@){3m%hkj6jFy~I5KR=rVLgcFwU*asjN%9;w6MA(--H90L~ar=6@@U0!7 z4^fo^Io1~wmd~ijJA(MkZ`n9V^KJNX3Z^-2?F2hZLZTj4Iar z93`*s``zg(-*yX-GW=#(3iVbyfP71gteKsUN5`)tQ{dTqK!SI7KfWVQSJ()y5OnPQ zM`+7q=u;S~iddifUF`h88$_ABa-X5;n5McmU?nCFeFf(Rvnfqf?8%6wv{7O3Fw0ij z@f;RycPy4dXnbhNwos0YxhJx(Ib){~vCw?LKArBh*8S}#sql-Yz$$>U3*(6X0vuX1 zBl$P@gMq&@-eM4C(STcWf1@AIglGC%V$fN)Bl?%;IW%)FZ-xstBvvP^xN|4R#z}hp zp6+4ygO~EH4J*v`zf{#%pJ5}{s|e^PP;;tu1$XxLY|$09UYZ%XL=0G10agTDkTAO*&qo97+%p4ev@$@n-?Eka$0ux16J>j9dA2YrHkC-8={xVEy`CA z0EvP6juX&$%s{EDh_8C48ir1#WWAbnijo%jljr4+(Kc3rT zA!3hn=z0$ts2OyOvIed3sP?|fhNh;1jD31Aw}>G5EAK_Q5x^4t{>GIeEtLKW0<;Rp ztqiSW#iEES(D6B_X-l|XEP2c58+2n>ab7~QfigzE?!P10ZvP}x^YhXxh!($WQc4-? z`>5^o{bRU^0dGmSd8TZ&p598@JjRT07&*uo1TQu5N<+YBkFysLJAAkM2R*jJ@G-3P z?6!IIEj(qY4Azc*jVIH5Wo%tve(l7>%309;>(B+OGcn-QTKp)Rm@=aXsHo&omJ`g1 zrzds?X#+zI1q)l2K72`GpL2uzd44?1EG!|V3`wsyC6&yYnzn#)S{9V0MZUgPLQG-| zw1^g3hg?WQ_DEq*BKjVsD81^7@_WAP;>H8K~&<2x`ylDpd!92=lPbz!%WTRVQdF= zcMy*Ysn~yK3xQ+_^5ZLcfJgEQdkK1EPWjmxz1;jZf}qGS#+xxagkYrNlHhY}E4Xq` zO4=FPlAh!TT>K;truy?2>(XeyKq@pbEvLk;h~gQlG)bYAK*lQuGcqkNu>43q8D8VO z#i*jhXJ{A|wh46iOUys?DRkzcRYKV-8)PB5(!r04dHq{x_3a>) za8!_VkZg2ObTHBAVzw(4GiuJxj%wJ|4I+F&pk!}l7-BHpEi$V2eZpod?z9(h{?kh0!mdpqybg_=Z-Ep+aWA`;lj6HF)u-hlMbV zU|G$dRA$;8_-bWJV&HkcaEVbQd~of-9#1+t#}4|?8SquAip@G}VPuRMeUTLP4lQc; z21#o7F4>_j&qG|xF5bKc=dcnuf1XC}AJHFlS^;n#b4!2lk;RarzBeGES2Czga4-4)^l)LZZ?sM0u-Nu6rb zsL*_2NnE0r6R#rn#ehs~Qz&B_g*;4PHYHa2Z$`Djw!DM4w=3hkGUJRse}lHzdc2j) zJgH;l1Af8P^>F#TTHISF^$heWJUGYeX*G6eyjx96>^8RWLg$fLvJN#1KXuf5^B{r`12 zlS6d5$ThjY;)uCvm}n8_O`+PTJ5D#IjY&kd-?O^<1yqssn&L^ zh?9PWUAV`-{rM^?2X0zvcA|Q64FXqYde+UT_8KB;j<#X-nMh_mhUM+_2w?EbDx}ZHpiiJOW{u9b7`#vk`qt0c6b|9XTVFWvVSG5t#TA5!2`SHshW# zQ+jY!vyUl?=|U)(b+OQ$s=M_ioCHeP*xPU+EPjvGH2@+_oz=tG)7?UbNh&7d5&YxP z)=_%R?R`DanZ`yKk>%AB`u6w8Lvjg8lLS5rCK-H13`?`(0yaycCWf&H3(?HGLsVWc zF<0C3!HGzPSNW%#92{+gq_1d6dM^PFfugjv1XoBICef4hosrdwp;z~QF`er`ERE=k z+RyF_Qd06m@^6X7{1cx)L_Dm=@L6hs8CJmlj*20ATjw^s{I(Bn=_2--7AhOI%y(5F z#3TB<9H=|@1mcRtgH;oM;wB8$+3lQgn3?^*R@qEEI&wZGh+?m4q7h0g_@_^`5-fEdisE2y`e4yu3e4b6g>#~7vF5gRV>OOP&+%{kDU&;_<8I?%V<_mWb{!8bTHIKf_@WX|eId<8WY z?s9vM>_6x>_-89jT3rj3d;d)lBvfdg8%$Q!%7X2{ZH)Kx&}s@N-=7ebVto$I%)96x4zN zQP!v)b}FntI(%S!wzCY%1@Li2fcufUf9Vw}gJk&% zK*5e%>Dh`)=#T2HIAP&u)+Q#GJ$Km{Y@Ea=<(;l#Q513|AggO<^_0 z_ZB{S-^%dsloPogW%W_R_Z2+Wa^U@6v*gnzh*l7Ej@~zn3}ynfqqI2F!g_ zfs*%m-kZX1vK3FX0pM}o0=#Ei2GAgb!t7z8$9ENQE-W4tS~`xXc8Fp+9R1HJp}@yj zuZi?dBXMTsHNgI9BuEEP8gP5$?uoN|7Gk?SLWWKBqv z)(!>Wn4c-;J@t{GBA}u{N#HAvS8{t+5m?Wliy-$$XPS{8W2gIDBAuQx7H#@mzg~L` z_R6~UyU93mD_MpfWv;v`X;qeR>xy=^DyS{S2c0)b$qBLd^GiA#2{aqW`|`*#i;6N! z6DYcfWncM=)dpim1BZqi%dl(k6cs@XWIW{(HsjQ*X^Amu1hS(6#Tnwx**bG_{zqHH zz5i|tjTDtEnEi3d#+ZC*3M*AbpwMx>*U47{9^`xx{>?XxbX0q|kI%=Pxzoe>2R=`3 z0VJQ|v$j`@Br$45fs!lvYes1iM?X7OEeau)MhZ$Rwp0XZHrJx>g%<-B*CAF5*pjGq z{aXM0wY;T*iPF752-L+kV6uMRzTvgQN9fJ)ZTIgk4lyv2nMD}`{#X(oBoX}}XTOUK!gdS;aRr#W2|I0u&Ge}Al`D{vA37N35 zzvriu=MBj6%VYERMqQhImaw7GT@zeoUvRlLCZ!qj@bW@*oJQD76KyQmOCkV@ojAMv==+gHP8ubBiu~dFh zyp^220@h)aF;S|-k~~~rA7Gui$0oo>12dI8iz#MH(hbJNb>S?hQSe;Bvz+g`aZi4Chu@1qTagY1dBATQxd&;6yt7g3h|PME*D0`X4Uy{|)6fc9cBT z7ToK=t^xv3eu8QLx8eU`#QR@SE;Abw%YWMCqW|Ae6}62X>TwYf<(hidRvtFmYG_o2 zrWRUMwu^ujP+Ht5S4P((PB*z-0DTf6wZzO!qbI8 z?q6Tv=Ira-Q#p4aIY;)>&z)PZ-CG_8f~jdpWaPy2%~rehCadn~#g*&_{?|McXje%S z1Hha9ky%#zTl-rP4bhPf_2x8>NZk-@ACbU9J;O$8TU(j6 z8fR-GVqQ@_LMBtUG&cVBy?xXhS63T1c9!;PV;^d{3bvzJw8yMn80QnYy zDf~SMw%)If1Pv(?((6FT5c3}Ko}oTKU8ahJ6-f(%%#i9|(})B+vKIu~K=$3AE(nVM zkKP9HA&QfS$rEOU5gSgshrN$-8|ENdI}z>}7f9rn7h8mt_h0EWl0KH7&;*1KYjgc0~zKu8hJs?B2s=lhusQTfha9S8MZXIteHP+lz zH&cq7XQnjABd&6faj)^#VFslE36(yeKBKcmslqxHmHsR?eSh9M0$Ygyrcjy~&SW@3U;n20tjk zW2s+B4c*I~n@qI|EkhmzG><$h|Hidef%s8;DZ9;i`%H(Y2Nw0K5_PAOIUbBkitot? zlH(7H(xNE(nv2TkgJpEb`Y1I29%)Vkc{55Pwq7`P24+?h_kKRO@+2$4<3p)lKk}0S z%%S7Xo3=2N=XfBYSXAqlVxw0b)FWRv2w`b|&sc0U9b_PvO{$#^=dB2E(DX|s-FM46 zSwQMKrcw^GjI+9hr<;3|S<8i~z25*mSXm zQpYmIqK|#ub_SCXT}EfeYeX)wPk}MWxU@Y+tkR@dMXq*nNhOupI|!3>_}-Fsl)F-U zn%6qlg~r?ipq_7cmtlVtA)c7~-1=ln&MD>0(RAu3mqz%fXsEWZr3hqVzd_|vz_LO! zn~*mnJ5A@!hA(4m^^|PPF|4_V9R!?xl;C3Bp6Ek1$kh!lild2EA2hlYqMWC2%qjXv-Gvl7ck6!LCxK&MvB5KZ&C)$U5`R49OaW=q zEf}2YvPE=DXN<2jBdc&F`|w82XgpeCod@PMpa|yl?hC{}sw*e4E4Dv}__DiqA$`Qo z=#gU$OU{D@Tp`wzmyXJ$C1EMUDU7*PHiygJIQG=kGxf9{jHJ*y%C48PCd5t7Ik4s> zXAA5@*(^t6VK(0s9RzaprXryRWlt%MpruPq)ZYv1-vRIejXf7r3H*} zXM3ZEm7#;MYAQszu~_Uqyo(MUA5K)b44)I z0GGe`+DfeOnJntLy*SQrF4@o>(%1VB^OW-}wa{EJ`czbHyPh4NA#d-WW~WArBA2}E z^2b^wASV0k<*9$E%QkcfoODbh>M;phAF@ThzYq}hF+B-1xepOQ=v7j){zU?30$uFH z8+v>@+$Yz@?)LZ^?Rv^HF^U}B&HESoWpvvg7mK-h_O^LPweRJEeZs3R4QIh^&7c!U zk(pyhYHA=G^Mx6MG0*C=enFlRLJ2Db#GCal_nygo2cHGPG|{T`eZ)cQ?=ygr@R8}E zfzlellx?WBF|+E!rNuV&CMXdKOI_;J6-Ctx*1jjwM>2a}LjUd7`$_)@&*b11SUO)h z>vEj0Ne9TJOZJYmi?gL{OGj^;;xo?5n`i#{Lm~lM<^K)_rX!}LPAzzH)b}1Uv&9|F z2|q+iA|m#P6JAzJM^_78DF6F>o{(zZji(@I(8!X}SKtO_1xCTpUz{IENUZ+Bl=Ii! zE#QfspKGj*DY`C5bn(_#Z%RIw?1-$i^e%2dnMEANL8T`DxW=M66H}!GOV9yFI?VKr zf)Q#Y_2^;&>Ve8t^!-54z?3PXlWUIQ+D73bbNIp4sa(dk={SHS3{kLNYxUH81K& z1%MCt0cl+RO{|0-MlTNe8|Tz4KPxvklp_Zw$N)<#ZlmdmBB@XafHzJ2_=;|Yu zf_9;cmfjd}(`SE6&!P9y8%RxHCQU`moYzQO**2VC1^;Wo;FC4@sERHs<2NEH1;f-o z4L;Q;j|M^>7cSJ$_4697R-|MmOcVvn_d~$w%i~mZuF0D#OD=Rgk2d^%Hpbc-Vb%21 z_}FjAkoAg?$N6>SyJf5-jV;P`x20=tf?idjPwK6Pe z9)D}-%A8nNmE&GWWm>;bsq+cjS!{1hMPSRpAC*l%{AA?;-;&@h!(0>NNG<} zcZKY3O~qNyqmZ=VXX%IQyDk??dN1d}ut5Wq3ll|>*M*Bnqia?L3#{p^J#K>JM?h25 zahDmlD|;TWO!(jpwwX26K%ycBV^g2#y_N4pyEFZ=3w$rkSDU9}fxQ1OM(-WsSCn{9 zZ|tA^Z=DLP0Shua5ayw zu*u->t9TZy%9q$9uBRp$v$q3j>ODfwe+DzJ*rgTWe`}pLv|_E6tNSiemkR+!&!Z9U zNBn*nZXP1f^yoFu4_ed!Z7FmrRu=F(@iu78nz*&$M+Nbb4+4B=f2Z-VB`QvPfu27H zeq&1K1@18)3zjB0S~Fl*;TH*0l)c<7dCcMEbUMI^h(h-WK$#j6aMCAGAtR8QI7y;c z$FPF4n<+M=O^f1{`-B?bZ5HL4E@kJ)HkvPx|4Nt*)_8_U5w%|v1qQ5fXSev#hPEHW zymDy3cZT$-i+zVIaU0Ps|7cM~3j#;YZN2>pE#B=qom6WvkzwMBdIO81-l67GAo(l- zz!0bPDcuoW=u!mRhgOKsOtxel# zC)!#Beu`JVQP;p-a4p0 zhKJi^t_{$V(QHr#1@j9V{>lYT9T%dhHdq-r=NW(ERc>(9!TN2A0KfH{83HLW@t|PX z$Hn28MTI1K#8sgo3p?^Ev)WEqq_u{!RuORv-MsS5tCY;iJv-A1VNH#^#yPC^SqGE< zX;_3wieEZ|wm6M8c>Ne=gU6C0k@+IX_|GOuThDo+Ge>kaI*q5VS~d3NWRn-Jl&J8S zUjt#YfUUr>YN+Z5K9b#9{f;RwS}S3uv3x0a;q2z(YVl@Bt{rqUDDXbCmCi7S>v>p880m9h~c7XA%K`cbk;Ly`HD z0H=eKj}`&r_;zk`SmHA%{So!HSOvS_4@uSfZsrnf?Uf~uDErT*IFVWI6m=J`EKkouz$`;D{40g4!*bu<-8lP) z|CGegD|PG8Eb)m^wKAO}hE-7;03nYIiGnxQ)fFuCT5}7vHTsd zL^2`ZS}MKF`@R~)?OjLwOx3{N=9ZmnzQ4Vey%kle;iwfv!&R2a8L@vnQr#V-5(lApkJL!j+U8|8cfD%I{T|j_>^51 z>1Jy*dyFd!d!zcr918f8Ay^z4%*ei;Jp(7!p?f_MoBUddmP+RD89b{6d`T#*tgVu8 zCg@2yD5G7n212ojpWteMsrt&aee?f0}B7PGXOmo$(?^>XWM= z-K>~Xt2*StdLyqA9zf1lZI4d^Qd&}0e6m6Dqq)Tk^P<5)9_EuO7Lk#L5k!ZD{b8y2 zuu#e#n$s~44hpISc~P2Ml`mz$CExYmn#nHp^>G7B_SQKl{WtcFRDkYYo}P8{>*L}r zqE#$pxFMS_M16FJN=Z!6!zUl1r6l{Oz2r`zCI<6Q%G5C{WR4RTj(243N-{H>FHCz# za*f!$`&(_P(I+(7c#Cbj0A=vn#SkPIIaFLa~o8wLT#R!RFan4>i z;K@75cy?LP7{-!6<3^vS$ZJ-UJ`A9{$JYUu2H?L0owb6b4?o~{K*)ewS{`4|F~Tla zssr1AhVwAOC~cWsg9}*fWwMa#lzgyGB=EOXf5pd#bOT~LvEmy&G%FvpN}{V;H5+8 z!Ql29&=ZHQ0%{~^;?b4p{^PMLNi3*M&o>t>*}-PGeP{rgKa11XZmaL6b-VnZ-P)}AQDa#1V{kei=Bj|c!XAZT9PnD z*{dPp;qn5IhiYF_pm(CqR2U#MLJC5iJAxF{dTYS6A)tH0pQ$euoFN+&=+WW+TFSQj zRCphT!bn8nykDI>w^?6W-2r&hUx6-a`dh?MqDGJakAz{VobIn@->hL%rSyh3>vTaH zwZ+N;L&Fv8{0Q@6ZZD9MuG_G2*N}PnqEq> zR3#`zr4%xnF@ka&MwOP>r7~kl)bz?CW|0cFg0Us;_J}3LiN6WIlqR5z<&r5fmMH6t zB;_-S@tba?MF|c`f-DbwWw+bTY(l&}B z;6IU3oAFs#=@`8xT8u9}uyN7}=_*ZD-4sURlEt;BD>RQcGO1f4HYCuMyi}Lx<_v4M( z;P$q-uVS>BQl|s9Vtoj0Ule~24c&r;lr(0NmJqb-(1Wa2nGi6U zGrb^k&u*SoS0N8B3tzCk*OtAFGTYy?g0#khZ!e~u(E|gGjHV#}9(A=lCE0J>ba=0M zuF@8nfq!mAdb9gbnEr`%IIMq>)4K*QW(Mr2SJ3?d!o!BxwvEEBl_9z`u=``&e7lC>Aj&^`Arhb zL<2t*aC(d2u4$ws>xEr9zvz0M)~E0qzRmZsEWM`}uLtYA9j)Em#kQ@7R%A8_1+t2z z!g6C^xI77UW7i<{O}l88xmGK*jpcQh#- zo;$h0`&)>c<_;-MB?XYX!{G&$oBtZ80mcnoNbsw$Zb;eZI&Qb>vt4A@i%K)h&B7oj zzM(SR{jvn>P9GtQ5rCZz#D!*|E~E6a@})7$C4M-LGna!4n^2a-k)}90Jm@$B(r7J_ zcNF@wM5EEGmzudAB#q^z5qFzSn4Bj~@+09zcEsG#dJuzT4JwwkYb#Hi<8BeoJ>X@m z7?*UjAF_0Y0H6#`^(#f0+(n9*BBFm(02KfJQur4=cf~j}ngO}O>e-)~E{LoKe19Zp z!`fEZxjM6Nz33Jc`=Zdcg>5H!r)0&8oF4fp=*VV5%~H{F2qPbZexMMcjpeLv%&0k~ zE}y&YU!OEwM2vKVSQ=upMLn=%U(i=C?met^^qPb7=)rMg_8>Yo*d2XwbhU1~lj}?b zUlav}*DNRNTL?YWmyQygfYctp&4S;RehRk0KoR$Zw&ou)yj+jkXp^JIs|cF<6}++6 zxcn=gbOO#rreFEKVixZu(jZtxd8p8+yx`??z%+HvA(n zBKujvd%T40|8aX^>%23jASV!hkJ zfJ2R_6Zm}QG{4%@^ev20`ZRbZ(XctPPshD2bJup%+0<(zGg*>^!d@%eieX=#K)Hfk z{Qkj{tYodZ!9$bR+kU8szhkAkvch)v7mQLk^h8!=%9x(YEIIR$z>UcsppzF@bHV>QODq%^SZC?S=$8bI}a-g<-PysBYUi{D{)sAu z!tPiHv^1%+mcrg9S=X*^*#$E!T;~SXis7c(MVm2o02DBLUR^8Z9QR{K!5yq*0J_V5 z|1aQFD0J{$DC9T*5Aoz|3Gevx+)ZMS5z%5W!0Jvw#irm2B)m8&T+a3-h#h6Lkbz3olI z*s+wad@eIm>*U=0#QcOYH7%>_bm*p+?K-ti3TvNwMs-?YO=n()=^0j^v7=Q*eFfS_ zU1NK3GiDkMZfNy1fkkRAy(|vx2Vw!AtQEA+St$NnFg5HT$*zcVX|o@SSj={0^F}u> zx;Zr^%Z1>^Sf{qTZItr1<`pfVZFQy30K!B0xn(j8 z)#B--g?vV)Mr|K#xwIalL9;8nPFka3o_wm=Rwq)=`q`s4+vg9EY-e|F?g&u**8QL{ z@8-H&aMgYDl8TFpGmALYc%128M}nywlaa**q3r(5;VE#W=p5_#I zd6ZS$(O32u1RjQwcIKOjP1Jb?g}yM^QS;Jh(I|4|_d>z~ygK_(vPd^CH^))H(eL1H zKAbTJoY7q1W9}d!(0A5hdL*tAYt&W)@F9r+7>=veM+1KeF z@5i4hJHFjl?_LieVpcRn2oS!tZZfyoejBS-<70WUqGUelbrC7lhlDeEw9YIU;~_s# zh)8I4>JXBks|fWwgOa*8Du=26r?9IEiUZ1)KnR2(xCI#8T?Tg&+#LdgYj6t#Aq?&k zBq6vaL4rGjJHa&!Fi5aT@BxC$WB2{+*4x_mcRp_2k6X7+cbz)j%~|Vd0=(IJF4`*P zzP(n!P9%?cJ@A;zh685T+Au@W#ikY0SfDt!C_~r9Rc&S{PA%{BOBdA2Y`l#*UaOA& z*~Kf{Tkt?=85(kJZwqF@YoI~bFsF`8c)FUMntGDH>AaUXLnSwhpnhzH0b};eNr$%$ zo}nsfnqXN`LcvIk)Cql|QHmOwZq=7L!}8C1u~L~}MJJAJudoMB)u$YWDPJRCbsr6g z8xolPc91(nlm;xC`zfE3KXIn2s4_ewQzaJ6s(L5PlW6q0L~rDzK@gh6sfqGU<>Z0! zvTT+t25^;@&l!dY#fyj-!+!f?q!RWu+oTlGEAdml>Q{*P(c9IZ9z(2Xki$Q5JmxI+v0FwY z%0!Ae1Q%(wmXjRm`L*A8G^0G5>JzzVcfqn*lx~wJeYco&(B%z3z4r}e2{qoXnG0uv zcOc0N{q(C*0p3uvk;-)=l6vurBXIuVK@V=w>=KddaYZn5%!TEy|3aj9wlz#)q{CUS z)Ue^*>wwx`({Qrs%>~~4P=Uhc<7}iOV==tKqj-AN&P8YwXFo##v#+aT_+b^7pb+(n zArJ*p{a#q#(0BixcE_Yd_D#-@=XTD1_Rp@hNFd@j!O z0LRs3qOr|qyeWLD9L>R)k)E>%Hko4{Y3@8CxgR;67RN`wvjb^(fyDdEjM2-B8%lTA z->zA^8SsjhzAdrhIUfsjQVt@l9I4!}l1JYt5}B@Y-N}yVk%v_u!>kCbCdazwSkho# zfm0wj@u0^*Vjl(;Z@}LAF+Oj)dT?Z*^q-&PG2Lg_`IpDsaMpm><>8NEeO~--#DkK{ zwWHy_0Ydl?ZcIyp+SK1zQiOGxZ7hV=5a=WZm3iV%4Bk?^&>8kUVhcOQ1Bbz*YB23@ z>TWWGP0FA_lQ<=4IAfNxy(^s3YKrz%v}xI#!G4!*Zsd=80(S@ol^P3RmO2}9im=r^ zg!k-SwxyJTUcs>svZ*}Vy7iE3V*?yn^KY+df6h*vL5u%3D&LpTUZL(}SMs;r{7>m*YWFJEb!c+EFlXnkd0R3= zO6VY0xd*hqywVx-0Puw8MWYKUO@DUNxJK^#kBweoa`Q&O*D&(6MNkJ*N*WTEfGii@ zOt3#H9uQX^IL6v_nJ?{7Pn}f}qW;cX*$%{?XmnAxvKL46jKGFJzr%ZP{JO`hL6QPvrPjq$hL_f-0}1S2xaskb>r#pJQrco825& z{TbEqd~&CGuQT}bwr>mP*yl9#o_IeaOYi4;79gnUY2{ymN^^YW(x>kUf78nC0~1pk=DF+3sqGvLR^FTtG)LUIPhF&puK7)GTkbfYntL^fN&mVS;vFQ2 zU<%cB9pU;856m$8!quCoHVBU2`H-LSP6~%avIi2IGATtu5V;S0t|qg5wP)wf6740X zTmfs|^l2fsNe&T%OK_(wR7f|GkaBvfU)UNr43&^bTTUQ)OPGwYS!;$Rv+&wK?OWir zMJ|M0hbP}rQuDQD%{Ml4c6k}&w-m~*7vE#g6;#*HXq(yZt+9d&R9#-A4APpB7)MrI~j8|HRR-&=4kk$R+e?4O{n(oTMhkOrby$}`=dZRft0s``Gnw^=+iyP;%NH@rfmiDe#j?%Y~dR7jMJkeJSD*_F6g zc|?!PAumesC3T=(N5CzW!l4}D{Ke<@-mS-NWu?QDePeB7D_^N!C%!&$OeYlAmIOcF zt-f#}RVp9E5^N1AUGihTV}mo?4WOuzw2$$)+6Ap0)E#<)@0~P>n!yzF-&guB!Ds+1 zHp!c-dZX%Zm{nxWnt_m)(cl>!3?9=JCbE-!nLFj0YTB=Kr{rqwYp-B$>tSclr(y5z=<7r;C?+WOuUw|lbXg0iN*t75Jv>BN z37@!8tm8(fvD)-1qkSc&TY{dHzxysaqBqr&pXdHKG?vy5y8#Ck5yrQ!C<( z>V87`XKGo^Iw9euHPt5bI8h`@s75i{?n!x0jZ*RF`CbWCLtVHPO?hgKsx@E?X&2$I zh3i;B449v=*$NRB!;XCt;j8<~U1Q%SEMfw{_XO)q&%c;HO0-wf7mpV}R}h2N8gydv z1@Z+`MP-RUww%%M6$Lu6LKenBk-`FDLyVHm4-?e}6Np^)@0Y!}OA4D2I9mO7{DC!$ zDemnmSmCdFL{gd*PE49+7^iapl{R5mwQPDtVM2Ul^D6IVO;YscCT(=SmX29_#Ytj1 z+m>;s`T_r{!2yalMJji3idbrriZ|{(4ebhQPS#w zirn1AhjJe34)~18x88|l(rX9|0ha45iT;BE8L%BrF#Gc^=SB}>7`k>M*}18zI~8 z$C>eZiUc11q(_`Cr_bb#EZQV~$91_z@}Q#?e8LP@usx);C$n`{4wqpve!c#pOG4=| zx5Y3QNL!lVR;=?x&X5amtf%PKa$3Y)YlVhYouSZ6K4XeHGrUi_Dia|8Ie91aJ(8@T zcw6{qmoE`W{0>=-eI4TWC!2H24!HpxX>^nv8p5t#?obVIablu93M~#_ei-A2|2W&d zzW;TIS~wV8w47aI4Mv!29aVW$L#10V_p9h=gZsGGI#)Eh9<|%`7q}I5pkf;6Tl`>V zHst>P3GD+jtdAY$wp)7tkRgza(3dll9zuBNvv? z+B~m3nIr!0hy8jNqI@0s+na3tamUJVHvjuC`N*DT7pSgx(81fhxN>VIEN!7`X{+Tk zzl`Bc8^sNU?oI~PV-UW%#s75Rm`z&L!!n!oI*oPx3FSbL3rGr0vK}Cyvvyz0=KG1Prq2-Z69*N6^Eqe&x}kuemMmesV%|4Sg-@OgU2fcl zkS#hLU4pjdxo4nbbUtK_ds{L4l{xrj?kATN9N9cezaN;}b!Lx7UBJTAWfzBS+D-q^wDG@sbq zHx0<4d)vVqwK}~jwT?ZmoR|%`WXjsNDbJr-3{XQFY?JlEN}>xE2wRz*p*lkDE+4@S zMKS7=MKlkacfYbv2`Y1-;dy;LC45@d_1n`4N@i;xnv$Aw@PA%0)7@TE>R$-_eS5z6 zm*j;b>;`x$LlPYqkZ-$+gzx+4_uU{m_Yk#C`D=7Ehi<{nPv2%EkoLSsKQ~THuHZ`1 zGL0?M|iH6{5`cz)VREM!aj)7hbvmTYT zs;^Dz^Q-doZxTBv{nNSx8yg(+3LY>S#xw81Kc)35J1pq- z%}`7HRkF3)5r5d9KF}!GVcH74vWVH45HB6UW(XjQlybTmpRiUQ$UaSnW@_IwR)zMG zD5&tA{?Uk-IaMBbe0;gxn}j6@<=Zdn>iI9e#Kyigc;7mq{7z1N?DO{f69%Sc7RNUj zFKWI{f-xgD@X>a6FRV`c$6Ze9^83b(ldFpSHKn<{YRxS5B#GnKZa!V|UXV-YVy$>} zYH#}iWBh!`hgIN#FwXbXZ1ve*K}P}?bMecwaAW+~YM_+L{nV#Eo%C-|&Qm&FJ8a^@ z$<@A%>rn2cxu5)Gb)j8gR;8@~*S;lhxqgZOS{59pRhJX7xzNeiEXCbZKct^l>0~r? zNlQuJHq@h??@ZN$n6#d`@UIS$#(4USqyS&Ml zVR$W-_h1$=qk(8LJ@DwryM^A^`^C~^`i|7C^77H654KeM-@o$~x$z84{HafPNldwV z-x)md<~jQPaiKUqFBxM6fCx7N{&2d#e_7+hywb9vCoog~qD(HKC%BjMlYAK&Ln=3+ z&F^6QID7u@f~6RgO7{;1CJFO*DloZ(Uv2Ap9B1W`%=&c<;i7K`V98Hx;1~jVElnKJ zztLpCq1=7Q&25|KrTr8!0`I?=@(!YDsDpnGr&!hk{p4s^EPS^V%1!V^*L&0uzo)zu zY6+oFi{#T=9VB4Z%^!)T5HqHPkDZYQQZ4*6v2R=Oy4`2F!@NhjoRd)vudcprK70jgg z#jOQ|#e{75t!=FBMTJFd9E1g|#Y8{?AX|{IgSEKK|9`@qPyfw3dw{5@IG?eZ06mCa z(EPu!c>z(8e{#Q{nSxQoI78@%irw8ceEh^KfhXq<8VK?|iV zA%o7uh?hl5Lni^g5tx6P zb0v$UvK_1Lk{FB?Z8Qm|6IW8oCK#T4zm^5v`n+|&rF4Sk4GN%_5E~X?oq6FUk}DX+ z?WFw5lb?)2`gxCzlG!F9XJw6WQxCsu{6UR$lr5%`4fcLaEhnK-AZmffWAy1~OzL;~hQN77Xdgb-PVcm1A zpGb^Y`Ii$g+|~;S4cSD!5-3!Jv67giEpEk%;naHyYW2A0#LXTv|j@(lF$E%Sp%@6m0m5!2;n-~IK>SsxGpe*%?zW3mm zc+c95Iqux9h%4OTrzY&In`;uL{iPkfdf=$hfO1}^;9?taC|7O7v{=Jq29m(y;=66V zs&*ZXd&N9?^kMSf7WuKI7agNYI}|CRzZ?)@ zW>>C)ODm0d&71fFZDv2+*cNKPqc{$U^%pCO+bA2q*J6+M&nfKvwop2rc=mCZ!ZqG~AlL>JQ$!eLK#kkOiH3pL%4WCKG9CO$OyT ziEfrSrFK}7_N1DOxotI2o)m;7-SXu1oth+4)L^+N-se^2cMLm35f%hP#M}%x;rd*IRxU~LUrK~M&ym+c+esBl^&(0r#Ss+ZjYd|vzaty?>V&e6O1Hu#aSng^csj2w_C(yrRLOxK9OwPx`i1@ z=wHPl6mu*^T%@C}7q(0i`uz9fa5kD`%TL<`9-g;Ko_8x~yj&jA^Ah@Gu`!r8&vmu~ zSW8V4czR>Sc|HJz(_yd60VBe_o_({Hz#p*A2<;OfQC?R8MxNsg#bkrOX^W+^NwK+` zh8hi83tM#W`2)4rRdb?TJb9{KEj#|)#A-mo5=}xPO(N92Kw3jo|M+#7#?~C}eUxG( zkb;#rP1r^@PigyK`#(FVYNCN3F6;YaIu;+mnr2rA-nBMh91AUVd=7Vp=TDE@Cq_|AxHiWCZOu#hlC$+roN>_h3 z?#F*)F-7Kf6gME2FvP4Ow_FXgCD7>46C(~RJWxM(O;6x}W9!%QEnV>4?AWihVr|d^ z6JGJ-%}(bfM_Xgz4{3}I>WWbf6&xsTPIW#>8X}nPB+}^T_-Ajh=*Gy2o%NKM=zA@O zeIPD{jVzXagZ#yaNE)pr{9GiBL$Rp_j@Lp9t z1CWY{uBGBa`82SJ269S98v4^}Z@%_oqnYan(nVBYjeqXX)%$u?*8)-tKkY+UHh3!{ za-dn&aguBEU^aJ);PHii^N(MyU@h@SZ#rX}r}HWfe?4h%{GxoRfao1t?^Kt>JjX-3{|basFFbX(AaAL3TtB}El_bDAi~}Ij2wNbg>-S;ZC;UN8$PFX# z&szh8EthcDiBH-N#fAmXEMf}@$+Cvx`^yxE-H`7BWQ<1}}-#XBmf zk!)e*c;l4v)--=MCZVCrRs$bL)I@`nc6&aZOA=Z2j%8L`tg)oNk1^^H>8y3;)3I~7 z5tLur`Z*usqD6dUp0`6PE9!K}vuf$+a=3?-7!T^dQFf~-e|T*>_JF?r9EJXWA=<~+ Z+S}LP+ui{H5)=^@;0Lg +sentence=Driver for MCP2517FD CAN Controller (CAN 2.0B mode) +paragraph=This library is an Arduino CAN network driver for the MCP2517FD CAN Controller, in CAN 2.0B mode (CANFD is not handled by this driver). Compatible with ACAN, ACAN2515, ACAN2517FD libraries. Default configuration sends and receives any frame – no default filter to provide. Reception filters (up to 32) can be easily defined. +category=Communication +url=https://github.com/pierremolinaro/acan2517 +architectures=* diff --git a/src/ACAN2517FD.cpp b/src/ACAN2517FD.cpp new file mode 100644 index 0000000..529369d --- /dev/null +++ b/src/ACAN2517FD.cpp @@ -0,0 +1,811 @@ +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— +// A CAN driver for MCP2517FD, CANFD mode +// by Pierre Molinaro +// https://github.com/pierremolinaro/acan2517FD +// +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +#include + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— +// ACAN2517FD register addresses +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +static const uint16_t C1CON_REGISTER = 0x000 ; +static const uint16_t C1NBTCFG_REGISTER = 0x004 ; +static const uint16_t C1DBTCFG_REGISTER = 0x008 ; +static const uint16_t C1TDC_REGISTER = 0x00C ; + +static const uint16_t C1TREC_REGISTER = 0x034 ; +static const uint16_t C1BDIAG0_REGISTER = 0x038 ; +static const uint16_t C1BDIAG1_REGISTER = 0x03C ; + +//······················································································································ +// TXQ REGISTERS +//······················································································································ + +static const uint16_t C1TXQCON_REGISTER = 0x050 ; +static const uint16_t C1TXQSTA_REGISTER = 0x054 ; +static const uint16_t C1TXQUA_REGISTER = 0x058 ; + +//······················································································································ +// INTERRUPT REGISTERS +//······················································································································ + +static const uint16_t C1INT_REGISTER = 0x01C ; + +//······················································································································ +// FIFO REGISTERS +//······················································································································ + +static uint16_t C1FIFOCON_REGISTER (const uint16_t inFIFOIndex) { // 1 ... 31 + return 0x05C + 12 * (inFIFOIndex - 1) ; +} + +//······················································································································ + +static uint16_t C1FIFOSTA_REGISTER (const uint16_t inFIFOIndex) { // 1 ... 31 + return 0x060 + 12 * (inFIFOIndex - 1) ; +} + +//······················································································································ + +static uint16_t C1FIFOUA_REGISTER (const uint16_t inFIFOIndex) { // 1 ... 31 + return 0x064 + 12 * (inFIFOIndex - 1) ; +} + +//······················································································································ +// FILTER REGISTERS +//······················································································································ + +static uint16_t C1FLTCON_REGISTER (const uint16_t inFilterIndex) { // 0 ... 31 (DS20005688B, page 58) + return 0x1D0 + inFilterIndex ; +} + +//······················································································································ + +static uint16_t C1FLTOBJ_REGISTER (const uint16_t inFilterIndex) { // 0 ... 31 (DS20005688B, page 60) + return 0x1F0 + 8 * inFilterIndex ; +} + +//······················································································································ + +static uint16_t C1MASK_REGISTER (const uint16_t inFilterIndex) { // 0 ... 31 (DS20005688B, page 61) + return 0x1F4 + 8 * inFilterIndex ; +} + +//······················································································································ +// OSCILLATOR REGISTER +//······················································································································ + +static const uint16_t OSC_REGISTER = 0xE00 ; + +//······················································································································ +// INPUT / OUPUT CONTROL REGISTER +//······················································································································ + +static const uint16_t IOCON_REGISTER = 0xE04 ; + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— +// RECEIVE FIFO INDEX +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +static const uint8_t receiveFIFOIndex = 1 ; + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +ACAN2517FD::ACAN2517FD (const uint8_t inCS, // CS input of MCP2517FD + SPIClass & inSPI, // Hardware SPI object + const uint8_t inINT) : // INT output of MCP2517FD +mSPISettings (), +mSPI (inSPI), +mCS (inCS), +mINT (inINT), +mUsesTXQ (false), +mControllerTxFIFOFull (false), +mHasDataBitRate (false), +mTransmitFIFOPayload (0), +mTXQBufferPayload (0), +mReceiveFIFOPayload (0), +mDriverReceiveBuffer (), +mDriverTransmitBuffer () { +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +uint32_t ACAN2517FD::begin (const ACAN2517FDSettings & inSettings, + void (* inInterruptServiceRoutine) (void)) { +//--- Add pass-all filter + ACAN2517FDFilters filters ; + filters.appendPassAllFilter (NULL) ; +//--- + return begin (inSettings, inInterruptServiceRoutine, filters) ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +uint32_t ACAN2517FD::begin (const ACAN2517FDSettings & inSettings, + void (* inInterruptServiceRoutine) (void), + const ACAN2517FDFilters & inFilters) { + uint32_t errorCode = 0 ; // Means no error +//----------------------------------- If ok, check if settings are correct + if (!inSettings.mArbitrationBitRateClosedToDesiredRate) { + errorCode |= kTooFarFromDesiredBitRate ; + } + if (inSettings.CANBitSettingConsistency () != 0) { + errorCode |= kInconsistentBitRateSettings ; + } +//----------------------------------- Check mINT has interrupt capability + const int8_t itPin = digitalPinToInterrupt (mINT) ; + if (itPin == NOT_AN_INTERRUPT) { + errorCode = kINTPinIsNotAnInterrupt ; + } +//----------------------------------- Check isr is not NULL + if (inInterruptServiceRoutine == NULL) { + errorCode |= kISRIsNull ; + } +//----------------------------------- Check interrupt service routine is not null + if (inInterruptServiceRoutine == NULL) { + errorCode |= kISRIsNull ; + } +//----------------------------------- Check TXQ size is <= 32 + if (inSettings.mControllerTXQSize > 32) { + errorCode |= kControllerTXQSizeGreaterThan32 ; + } +//----------------------------------- Check TXQ priority is <= 31 + if (inSettings.mControllerTXQBufferPriority > 31) { + errorCode |= kControllerTXQPriorityGreaterThan31 ; + } +//----------------------------------- Check controller receive FIFO size is 1 ... 32 + if (inSettings.mControllerReceiveFIFOSize == 0) { + errorCode |= kControllerReceiveFIFOSizeIsZero ; + }else if (inSettings.mControllerReceiveFIFOSize > 32) { + errorCode |= kControllerReceiveFIFOSizeGreaterThan32 ; + } +//----------------------------------- Check controller transmit FIFO size is 1 ... 32 + if (inSettings.mControllerTransmitFIFOSize == 0) { + errorCode |= kControllerTransmitFIFOSizeIsZero ; + }else if (inSettings.mControllerTransmitFIFOSize > 32) { + errorCode |= kControllerTransmitFIFOSizeGreaterThan32 ; + } +//----------------------------------- Check Transmit FIFO priority is <= 31 + if (inSettings.mControllerTransmitFIFOPriority > 31) { + errorCode |= kControllerTransmitFIFOPriorityGreaterThan31 ; + } +//----------------------------------- Check MCP2517FD controller RAM usage is <= 2048 bytes + if (inSettings.ramUsage () > 2048) { + errorCode |= kControllerRamUsageGreaterThan2048 ; + } +//----------------------------------- Check Filter definition + if (inFilters.filterCount () > 32) { + errorCode |= kMoreThan32Filters ; + } + if (inFilters.filterStatus () != ACAN2517FDFilters::kFiltersOk) { + errorCode |= kFilterDefinitionError ; + } +//----------------------------------- CS pin + if (errorCode == 0) { + pinMode (mCS, OUTPUT) ; + deassertCS () ; + //----------------------------------- Set SPI clock to 1 MHz + mSPISettings = SPISettings (1 * 1000 * 1000, MSBFIRST, SPI_MODE0) ; + //----------------------------------- Request configuration + writeByteRegister (C1CON_REGISTER + 3, 0x04 | (1 << 3)) ; // Request configuration mode, abort all transmissions + //----------------------------------- Wait (2 ms max) until requested mode is reached + bool wait = true ; + const uint32_t deadline = millis () + 2 ; + while (wait) { + const uint32_t actualMode = (readByteRegister (C1CON_REGISTER + 2) >> 5) & 0x07 ; + wait = actualMode != 0x04 ; + if (wait && (millis () >= deadline)) { + errorCode |= kRequestedConfigurationModeTimeOut ; + wait = false ; + } + } + //----------------------------------- Reset MCP2517FD (allways use a 1 MHz clock) + reset2517FD () ; + } +//----------------------------------- Check SPI connection is on (with a 1 MHz clock) +// We write and the read back 2517 RAM at address 0x400 + for (uint32_t i=1 ; (i != 0) && (errorCode == 0) ; i <<= 1) { + writeRegister (0x400, i) ; + const uint32_t readBackValue = readRegister (0x400) ; + if (readBackValue != i) { + errorCode = kReadBackErrorWith1MHzSPIClock ; + } + } +//----------------------------------- Now, set internal clock with OSC register +// Bit 0: (rw) 1 --> 10xPLL +// Bit 4: (rw) 0 --> SCLK is divided by 1, 1 --> SCLK is divided by 2 +// Bits 5-6: Clovk Output Divisor + if (errorCode == 0) { + uint8_t pll = 0 ; // No PLL + uint8_t osc = 0 ; // Divide by 1 + switch (inSettings.oscillator ()) { + case ACAN2517FDSettings::OSC_4MHz: + case ACAN2517FDSettings::OSC_20MHz: + case ACAN2517FDSettings::OSC_40MHz: + break ; + case ACAN2517FDSettings::OSC_4MHz_DIVIDED_BY_2: + case ACAN2517FDSettings::OSC_20MHz_DIVIDED_BY_2: + case ACAN2517FDSettings::OSC_40MHz_DIVIDED_BY_2: + osc = 1 << 4 ; // Divide by 2 + break ; + case ACAN2517FDSettings::OSC_4MHz10xPLL_DIVIDED_BY_2 : + pll = 1 ; // Enable 10x PLL + osc = 1 << 4 ; // Divide by 2 + break ; + case ACAN2517FDSettings::OSC_4MHz10xPLL : + pll = 1 ; // Enable 10x PLL + break ; + } + osc |= pll ; + if (inSettings.mCLKOPin != ACAN2517FDSettings::SOF) { + osc |= ((uint8_t) inSettings.mCLKOPin) << 5 ; + } + writeByteRegister (OSC_REGISTER, osc) ; // DS20005688B, page 16 + //--- Wait for PLL is ready (wait max 2 ms) + if (pll != 0) { + bool wait = true ; + const uint32_t deadline = millis () + 2 ; + while (wait) { + wait = (readByteRegister (OSC_REGISTER + 1) & 0x4) == 0 ; // DS20005688B, page 16 + if (wait && (millis () >= deadline)) { + errorCode = kX10PLLNotReadyWithin1MS ; + wait = false ; + } + } + } + } +//----------------------------------- Set full speed clock + mSPISettings = SPISettings (inSettings.sysClock () / 2, MSBFIRST, SPI_MODE0) ; +//----------------------------------- Checking SPI connection is on (with a full speed clock) +// We write and the read back 2517 RAM at address 0x400 + for (uint32_t i=1 ; (i != 0) && (errorCode == 0) ; i <<= 1) { + writeRegister (0x400, i) ; + const uint32_t readBackValue = readRegister (0x400) ; + if (readBackValue != i) { + errorCode = kReadBackErrorWithFullSpeedSPIClock ; + } + } +//----------------------------------- Install interrupt, configure external interrupt + if (errorCode == 0) { + pinMode (mINT, INPUT_PULLUP) ; + attachInterrupt (itPin, inInterruptServiceRoutine, LOW) ; + mSPI.usingInterrupt (itPin) ; + //----------------------------------- Configure transmit and receive buffers + mDriverTransmitBuffer.initWithSize (inSettings.mDriverTransmitFIFOSize) ; + mDriverReceiveBuffer.initWithSize (inSettings.mDriverReceiveFIFOSize) ; + //----------------------------------- Reset RAM + for (uint16_t address = 0x400 ; address < 0xC00 ; address += 4) { + writeRegister (address, 0) ; + } + //----------------------------------- Configure CLKO pin + uint8_t d = 0x03 ; // Respect PM1-PM0 default values + if (inSettings.mCLKOPin == ACAN2517FDSettings::SOF) { + d |= 1 << 5 ; // SOF + } + if (inSettings.mTXCANIsOpenDrain) { + d |= 1 << 4 ; // TXCANOD + } + writeByteRegister (IOCON_REGISTER + 3, d); // DS20005688B, page 18 + //----------------------------------- Configure C1DTC (DS20005688B, page 29) +// data = 1 << 25 ; // Enable Edge Filtering during Bus Integration state bit +// data |= 1 << 17 ; // Auto TDC +// writeRegister (C1TDC_REGISTER, data); + //----------------------------------- Configure TXQ + d = inSettings.mControllerTXQBufferRetransmissionAttempts ; + d <<= 5 ; + d |= inSettings.mControllerTXQBufferPriority ; + writeByteRegister (C1TXQCON_REGISTER + 2, d); // DS20005688B, page 48 + // Bit 5-7: Payload Size bits + // Bit 4-0: TXQ size + mUsesTXQ = inSettings.mControllerTXQSize > 0 ; + d = inSettings.mControllerTXQSize - 1 ; + d |= inSettings.mControllerTXQBufferPayload << 5 ; // Payload + writeByteRegister (C1TXQCON_REGISTER + 3, d); // DS20005688B, page 48 + mTXQBufferPayload = ACAN2517FDSettings::objectSizeForPayload (inSettings.mControllerTXQBufferPayload) ; + //----------------------------------- Configure TXQ and TEF + // Bit 4: Enable Transmit Queue bit ---> 1: Enable TXQ and reserves space in RAM + // Bit 3: Store in Transmit Event FIFO bit ---> 0: Don’t save transmitted messages in TEF + d = mUsesTXQ ? 0x04 : 0x00 ; + writeByteRegister (C1CON_REGISTER + 2, d); // DS20005688B, page 24 + //----------------------------------- Configure RX FIFO (C1FIFOCON, DS20005688B, page 52) + d = inSettings.mControllerReceiveFIFOSize - 1 ; // Set receive FIFO size + d |= inSettings.mControllerReceiveFIFOPayload << 5 ; // Payload + writeByteRegister (C1FIFOCON_REGISTER (1) + 3, d) ; + d = 1 ; // Interrupt Enabled for FIFO not Empty (TFNRFNIE) + writeByteRegister (C1FIFOCON_REGISTER (1), d) ; + mReceiveFIFOPayload = ACAN2517FDSettings::objectSizeForPayload (inSettings.mControllerReceiveFIFOPayload) ; + //----------------------------------- Configure TX FIFO (C1FIFOCON, DS20005688B, page 52) + d = inSettings.mControllerTransmitFIFORetransmissionAttempts ; + d <<= 5 ; + d |= inSettings.mControllerTransmitFIFOPriority ; + writeByteRegister (C1FIFOCON_REGISTER (2) + 2, d) ; + d = inSettings.mControllerTransmitFIFOSize - 1 ; // Set transmit FIFO size + d |= inSettings.mControllerTransmitFIFOPayload << 5 ; // Payload + writeByteRegister (C1FIFOCON_REGISTER (2) + 3, d) ; + d = 1 << 7 ; // FIFO 2 is a Tx FIFO + writeByteRegister (C1FIFOCON_REGISTER (2), d) ; + mTransmitFIFOPayload = ACAN2517FDSettings::objectSizeForPayload (inSettings.mControllerTransmitFIFOPayload) ; + //----------------------------------- Configure receive filters + uint8_t filterIndex = 0 ; + ACAN2517FDFilters::Filter * filter = inFilters.mFirstFilter ; + mCallBackFunctionArray = new ACANFDCallBackRoutine [inFilters.filterCount ()] ; + while (NULL != filter) { + mCallBackFunctionArray [filterIndex] = filter->mCallBackRoutine ; + writeRegister (C1MASK_REGISTER (filterIndex), filter->mFilterMask) ; // DS20005688B, page 61 + writeRegister (C1FLTOBJ_REGISTER (filterIndex), filter->mAcceptanceFilter) ; // DS20005688B, page 60 + d = 1 << 7 ; // Filter is enabled + d |= 1 ; // Message matching filter is stored in FIFO1 + writeByteRegister (C1FLTCON_REGISTER (filterIndex), d) ; // DS20005688B, page 58 + filter = filter->mNextFilter ; + filterIndex += 1 ; + } + //----------------------------------- Activate interrupts (C1INT, DS20005688B page 34) + d = (1 << 1) ; // Receive FIFO Interrupt Enable + d |= (1 << 0) ; // Transmit FIFO Interrupt Enable + writeByteRegister (C1INT_REGISTER + 2, d) ; + writeByteRegister (C1INT_REGISTER + 3, 0) ; + //----------------------------------- Program nominal bit rate (C1NBTCFG register) + // bits 31-24: BRP - 1 + // bits 23-16: TSEG1 - 1 + // bit 15: unused + // bits 14-8: TSEG2 - 1 + // bit 7: unused + // bits 6-0: SJW - 1 + uint32_t data = inSettings.mBitRatePrescaler - 1 ; + data <<= 8 ; + data |= inSettings.mArbitrationPhaseSegment1 - 1 ; + data <<= 8 ; + data |= inSettings.mArbitrationPhaseSegment2 - 1 ; + data <<= 8 ; + data |= inSettings.mArbitrationSJW - 1 ; + writeRegister (C1NBTCFG_REGISTER, data); + //----------------------------------- Program data bit rate (C1DBTCFG register) + // bits 31-24: BRP - 1 + // bits 23-21: unused + // bits 20-16: TSEG1 - 1 + // bits 15-12: unused + // bits 11-8: TSEG2 - 1 + // bits 7-4: unused + // bits 3-0: SJW - 1 + mHasDataBitRate = inSettings.mDataBitRateFactor != 1 ; + if (mHasDataBitRate) { + data = inSettings.mBitRatePrescaler - 1 ; + data <<= 8 ; + data |= inSettings.mDataPhaseSegment1 - 1 ; + data <<= 8 ; + data |= inSettings.mDataPhaseSegment2 - 1 ; + data <<= 8 ; + data |= inSettings.mDataSJW - 1 ; + writeRegister (C1DBTCFG_REGISTER, data) ; + } + //----------------------------------- Request mode (C1CON_REGISTER + 3) + // bits 7-4: Transmit Bandwith Sharing Bits ---> 0 + // bit 3: Abort All Pending Transmissions bit --> 0 + writeByteRegister (C1CON_REGISTER + 3, inSettings.mRequestedMode); + //----------------------------------- Wait (2 ms max) until requested mode is reached + bool wait = true ; + const uint32_t deadline = millis () + 2 ; + while (wait) { + const uint8_t actualMode = (readByteRegister (C1CON_REGISTER + 2) >> 5) & 0x07 ; + wait = actualMode != inSettings.mRequestedMode ; + if (wait && (millis () >= deadline)) { + errorCode |= kRequestedModeTimeOut ; + wait = false ; + } + } + } +//--- + return errorCode ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— +// SEND FRAME +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +bool ACAN2517FD::tryToSend (const CANMessage & inMessage) { + CANFDMessage message ; + message.id = inMessage.id ; + message.rtr = inMessage.rtr ; + message.ext = inMessage.ext ; + message.len = inMessage.len ; + message.data64 [0] = inMessage.data64 ; +//--- + return tryToSend (message) ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +bool ACAN2517FD::tryToSend (const CANFDMessage & inMessage) { +//--- Workaround: the Teensy 3.5 / 3.6 "SPI.usingInterrupt" bug +// https://github.com/PaulStoffregen/SPI/issues/35 + bool ok = inMessage.isValid () ; + if (ok) { + #if (defined (__MK64FX512__) || defined (__MK66FX1M0__)) + noInterrupts () ; + #endif + mSPI.beginTransaction (mSPISettings) ; + if (inMessage.idx == 0) { + ok = inMessage.len <= mTransmitFIFOPayload ; + if (ok) { + ok = enterInTransmitBuffer (inMessage) ; + } + }else if (inMessage.idx == 255) { + ok = inMessage.len <= mTXQBufferPayload ; + if (ok) { + ok = sendViaTXQ (inMessage) ; + } + } + mSPI.endTransaction () ; + #if (defined (__MK64FX512__) || defined (__MK66FX1M0__)) + interrupts () ; + #endif + } + return ok ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +bool ACAN2517FD::enterInTransmitBuffer (const CANFDMessage & inMessage) { + bool result ; + if (mControllerTxFIFOFull) { + result = mDriverTransmitBuffer.append (inMessage) ; + }else{ + result = true ; + appendInControllerTxFIFO (inMessage) ; + //--- If controller FIFO is full, enable "FIFO not full" interrupt + const uint8_t status = readByteRegisterSPI (C1FIFOSTA_REGISTER (2)) ; + if ((status & 1) == 0) { // FIFO is full + uint8_t d = 1 << 7 ; // FIFO is a transmit FIFO + d |= 1 ; // Enable "FIFO not full" interrupt + writeByteRegisterSPI (C1FIFOCON_REGISTER (2), d) ; + mControllerTxFIFOFull = true ; + } + } + return result ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +static uint32_t lengthCodeForLength (const uint8_t inLength) { + uint32_t result = inLength & 0x0F ; + switch (inLength) { + case 12 : result = 9 ; break ; + case 16 : result = 10 ; break ; + case 20 : result = 11 ; break ; + case 24 : result = 12 ; break ; + case 32 : result = 13 ; break ; + case 48 : result = 14 ; break ; + case 64 : result = 15 ; break ; + } + return result ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +void ACAN2517FD::appendInControllerTxFIFO (const CANFDMessage & inMessage) { + const uint16_t ramAddress = (uint16_t) (0x400 + readRegisterSPI (C1FIFOUA_REGISTER (2))) ; + assertCS () ; + writeCommandSPI (ramAddress) ; + //--- Write identifier (see DS20005678A, page 27) + writeWordSPI (inMessage.id) ; + //--- Write DLC, RTR, IDE bits + uint32_t data = lengthCodeForLength (inMessage.len) ; + if (inMessage.rtr) { + data |= 1 << 5 ; // Set RTR bit + } + if (inMessage.ext) { + data |= 1 << 4 ; // Set EXT bit + } + if (inMessage.len > 8) { // Send a CANFD frame + data |= 1 << 7 ; // Set FDF bit + } + writeWordSPI (data) ; + //--- Write data (Swap data if processor is big endian) + const uint32_t wordCount = (inMessage.len + 3) / 4 ; + for (uint32_t i=0 ; i < wordCount ; i++) { + writeWordSPI (inMessage.data32 [i]) ; + } + deassertCS () ; +//--- Increment FIFO, send message (see DS20005688B, page 48) + const uint8_t d = (1 << 0) | (1 << 1) ; // Set UINC bit, TXREQ bit + writeByteRegisterSPI (C1FIFOCON_REGISTER (2) + 1, d); +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +bool ACAN2517FD::sendViaTXQ (const CANFDMessage & inMessage) { +//--- Enter message only if TXQ FIFO is not full (see DS20005688B, page 50) + const bool TXQNotFull = mUsesTXQ && (readByteRegisterSPI (C1TXQSTA_REGISTER) & 1) != 0 ; + if (TXQNotFull) { + const uint16_t ramAddress = (uint16_t) (0x400 + readRegisterSPI (C1TXQUA_REGISTER)) ; + assertCS () ; + writeCommandSPI (ramAddress) ; + //--- Write identifier (see DS20005678A, page 34) + writeWordSPI (inMessage.id) ; + //--- Write DLC, RTR, IDE bits + uint32_t data = lengthCodeForLength (inMessage.len) ; + if (inMessage.rtr) { + data |= 1 << 5 ; // Set RTR bit + } + if (inMessage.ext) { + data |= 1 << 4 ; // Set EXT bit + } + if (mHasDataBitRate) { + data |= 1 << 6 ; // Set BRS bit + } + writeWordSPI (data) ; + //--- Write data (Swap data if processor is big endian) + const uint32_t wordCount = (inMessage.len + 3) / 4 ; + for (uint32_t i=0 ; i < wordCount ; i++) { + writeWordSPI (inMessage.data32 [i]) ; + } + deassertCS () ; + //--- Increment FIFO, send message (see DS20005688B, page 48) + const uint8_t d = (1 << 0) | (1 << 1) ; // Set UINC bit, TXREQ bit + writeByteRegisterSPI (C1TXQCON_REGISTER + 1, d); + } + return TXQNotFull ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— +// RECEIVE FRAME +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +bool ACAN2517FD::available (void) { + noInterrupts () ; + const bool hasReceivedMessage = mDriverReceiveBuffer.count () > 0 ; + interrupts () ; + return hasReceivedMessage ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +bool ACAN2517FD::receive (CANFDMessage & outMessage) { + noInterrupts () ; + const bool hasReceivedMessage = mDriverReceiveBuffer.remove (outMessage) ; + if (hasReceivedMessage) { // Receive FIFO is not full, enable "FIFO not empty" interrupt + writeByteRegisterSPI (C1FIFOCON_REGISTER (receiveFIFOIndex), 1) ; + } + interrupts () ; +//--- + return hasReceivedMessage ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +bool ACAN2517FD::dispatchReceivedMessage (const tFilterMatchCallBack inFilterMatchCallBack) { + CANFDMessage receivedMessage ; + const bool hasReceived = receive (receivedMessage) ; + if (hasReceived) { + const uint32_t filterIndex = receivedMessage.idx ; + if (NULL != inFilterMatchCallBack) { + inFilterMatchCallBack (filterIndex) ; + } + ACANFDCallBackRoutine callBackFunction = (mCallBackFunctionArray == NULL) ? NULL : mCallBackFunctionArray [filterIndex] ; + if (NULL != callBackFunction) { + callBackFunction (receivedMessage) ; + } + } + return hasReceived ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— +// INTERRUPT SERVICE ROUTINE +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +void ACAN2517FD::isr (void) { + mSPI.beginTransaction (mSPISettings) ; + const uint32_t it = readRegisterSPI (C1INT_REGISTER) ; // DS20005688B, page 34 + if ((it & (1 << 1)) != 0) { // Receive FIFO interrupt + receiveInterrupt () ; + } + if ((it & (1 << 0)) != 0) { // Transmit FIFO interrupt + transmitInterrupt () ; + } + if ((it & (1 << 2)) != 0) { // TBCIF interrupt + writeByteRegisterSPI (C1INT_REGISTER, 1 << 2) ; + } + if ((it & (1 << 3)) != 0) { // MODIF interrupt + writeByteRegisterSPI (C1INT_REGISTER, 1 << 3) ; + } + if ((it & (1 << 12)) != 0) { // SERRIF interrupt + writeByteRegisterSPI (C1INT_REGISTER + 1, 1 << 4) ; + } + mSPI.endTransaction () ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +void ACAN2517FD::transmitInterrupt (void) { + CANFDMessage message ; + mDriverTransmitBuffer.remove (message) ; + appendInControllerTxFIFO (message) ; +//--- If driver transmit buffer is empty, disable "FIFO not full" interrupt + if (mDriverTransmitBuffer.count () == 0) { + const uint8_t d = 1 << 7 ; // FIFO is a transmit FIFO + writeByteRegisterSPI (C1FIFOCON_REGISTER (2), d) ; + mControllerTxFIFOFull = false ; + } +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +void ACAN2517FD::receiveInterrupt (void) { + static const uint8_t kActualLength [16] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 16, 20, 24, 32, 48, 64} ; + readByteRegisterSPI (C1FIFOSTA_REGISTER (receiveFIFOIndex)) ; + const uint16_t ramAddress = (uint16_t) (0x400 + readRegisterSPI (C1FIFOUA_REGISTER (receiveFIFOIndex))) ; + CANFDMessage message ; + assertCS () ; + readCommandSPI (ramAddress) ; + //--- Read identifier (see DS20005678A, page 42) + message.id = readWordSPI () ; + //--- Read DLC, RTR, IDE bits, and math filter index + const uint32_t data = readWordSPI () ; + message.rtr = (data & (1 << 5)) != 0 ; + message.ext = (data & (1 << 4)) != 0 ; + message.len = kActualLength [data & 0x0F] ; + message.idx = (uint8_t) ((data >> 11) & 0x1F) ; + //--- Write data (Swap data if processor is big endian) + const uint32_t wordCount = (message.len + 3) / 4 ; + for (uint32_t i=0 ; i < wordCount ; i++) { + message.data32 [i] = readWordSPI () ; + } + deassertCS () ; +//--- Append message to driver receive FIFO + mDriverReceiveBuffer.append (message) ; +//--- Increment FIFO + const uint8_t d = 1 << 0 ; // Set UINC bit (DS20005688B, page 52) + writeByteRegisterSPI (C1FIFOCON_REGISTER (receiveFIFOIndex) + 1, d) ; +//--- If driver receive FIFO is full, disable "FIFO not empty" interrupt + if (mDriverReceiveBuffer.count () == mDriverReceiveBuffer.size ()) { + writeByteRegisterSPI (C1FIFOCON_REGISTER (receiveFIFOIndex), 0) ; + } +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— +// MCP2517FD REGISTER ACCESS, FIRST LEVEL FUNCTIONS +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +void ACAN2517FD::readCommandSPI (const uint16_t inRegisterAddress) { + const uint16_t readCommand = (inRegisterAddress & 0x0FFF) | (0b0011 << 12) ; + mSPI.transfer16 (readCommand) ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +void ACAN2517FD::writeCommandSPI (const uint16_t inRegisterAddress) { + const uint16_t readCommand = (inRegisterAddress & 0x0FFF) | (0b0010 << 12) ; + mSPI.transfer16 (readCommand) ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +uint32_t ACAN2517FD::readWordSPI (void) { + uint32_t result = mSPI.transfer (0) ; + result |= ((uint32_t) mSPI.transfer (0)) << 8 ; + result |= ((uint32_t) mSPI.transfer (0)) << 16 ; + result |= ((uint32_t) mSPI.transfer (0)) << 24 ; + return result ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +void ACAN2517FD::writeWordSPI (const uint32_t inValue) { + mSPI.transfer ((uint8_t) inValue) ; + mSPI.transfer ((uint8_t) (inValue >> 8)) ; + mSPI.transfer ((uint8_t) (inValue >> 16)) ; + mSPI.transfer ((uint8_t) (inValue >> 24)) ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— +// MCP2517FD REGISTER ACCESS, SECOND LEVEL FUNCTIONS +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +void ACAN2517FD::assertCS (void) { + digitalWrite (mCS, LOW) ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +void ACAN2517FD::deassertCS (void) { + digitalWrite (mCS, HIGH) ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +void ACAN2517FD::writeRegisterSPI (const uint16_t inRegisterAddress, const uint32_t inValue) { + assertCS () ; + writeCommandSPI (inRegisterAddress) ; // Command + writeWordSPI (inValue) ; // Data + deassertCS () ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +uint32_t ACAN2517FD::readRegisterSPI (const uint16_t inRegisterAddress) { + assertCS () ; + readCommandSPI (inRegisterAddress) ; // Command + const uint32_t result = readWordSPI () ; // Data + deassertCS () ; + return result ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +void ACAN2517FD::writeByteRegisterSPI (const uint16_t inRegisterAddress, const uint8_t inValue) { + assertCS () ; + writeCommandSPI (inRegisterAddress) ; // Command + mSPI.transfer (inValue) ; // Data + deassertCS () ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +uint8_t ACAN2517FD::readByteRegisterSPI (const uint16_t inRegisterAddress) { + assertCS () ; + readCommandSPI (inRegisterAddress) ; // Command + const uint8_t result = mSPI.transfer (0) ; // Data + deassertCS () ; + return result ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— +// MCP2517FD REGISTER ACCESS, THIRD LEVEL FUNCTIONS +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +void ACAN2517FD::writeByteRegister (const uint16_t inRegisterAddress, const uint8_t inValue) { + mSPI.beginTransaction (mSPISettings) ; + writeByteRegisterSPI (inRegisterAddress, inValue) ; + mSPI.endTransaction () ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +uint8_t ACAN2517FD::readByteRegister (const uint16_t inRegisterAddress) { + mSPI.beginTransaction (mSPISettings) ; + const uint8_t result = readByteRegisterSPI (inRegisterAddress) ; + mSPI.endTransaction () ; + return result ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +void ACAN2517FD::writeRegister (const uint16_t inRegisterAddress, const uint32_t inValue) { + mSPI.beginTransaction (mSPISettings) ; + writeRegisterSPI (inRegisterAddress, inValue) ; + mSPI.endTransaction () ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +uint32_t ACAN2517FD::readRegister (const uint16_t inRegisterAddress) { + mSPI.beginTransaction (mSPISettings) ; + const uint32_t result = readRegisterSPI (inRegisterAddress) ; + mSPI.endTransaction () ; + return result ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +uint32_t ACAN2517FD::readErrorCounters (void) { + mSPI.beginTransaction (mSPISettings) ; + const uint32_t result = readRegisterSPI (C1BDIAG0_REGISTER) ; + mSPI.endTransaction () ; + return result ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +void ACAN2517FD::reset2517FD (void) { + mSPI.beginTransaction (mSPISettings) ; // Check RESET is performed with 1 MHz clock + assertCS () ; + mSPI.transfer16 (0x00) ; // Reset instruction: 0x0000 + deassertCS () ; + mSPI.endTransaction () ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + diff --git a/src/ACAN2517FD.h b/src/ACAN2517FD.h new file mode 100644 index 0000000..f89a6e1 --- /dev/null +++ b/src/ACAN2517FD.h @@ -0,0 +1,169 @@ +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— +// A CAN driver for MCP2517FD, CANFD mode +// by Pierre Molinaro +// https://github.com/pierremolinaro/acan2517FD +// +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +#pragma once + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +#include +#include +#include +#include +#include + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— +// ACAN2517FD class +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +class ACAN2517FD { + +//······················································································································ +// CONSTRUCTOR +//······················································································································ + + public: ACAN2517FD (const uint8_t inCS, // CS input of MCP2517FD + SPIClass & inSPI, // Hardware SPI object + const uint8_t inINT) ; // INT output of MCP2517FD + +//······················································································································ +// begin method (returns 0 if no error) +//······················································································································ + + public: uint32_t begin (const ACAN2517FDSettings & inSettings, + void (* inInterruptServiceRoutine) (void)) ; + + public: uint32_t begin (const ACAN2517FDSettings & inSettings, + void (* inInterruptServiceRoutine) (void), + const ACAN2517FDFilters & inFilters) ; + +//--- Error code returned by begin + public: static const uint32_t kRequestedConfigurationModeTimeOut = 1 << 0 ; + public: static const uint32_t kReadBackErrorWith1MHzSPIClock = 1 << 1 ; + public: static const uint32_t kTooFarFromDesiredBitRate = 1 << 2 ; + public: static const uint32_t kInconsistentBitRateSettings = 1 << 3 ; + public: static const uint32_t kINTPinIsNotAnInterrupt = 1 << 4 ; + public: static const uint32_t kISRIsNull = 1 << 5 ; + public: static const uint32_t kFilterDefinitionError = 1 << 6 ; + public: static const uint32_t kMoreThan32Filters = 1 << 7 ; + public: static const uint32_t kControllerReceiveFIFOSizeIsZero = 1 << 8 ; + public: static const uint32_t kControllerReceiveFIFOSizeGreaterThan32 = 1 << 9 ; + public: static const uint32_t kControllerTransmitFIFOSizeIsZero = 1 << 10 ; + public: static const uint32_t kControllerTransmitFIFOSizeGreaterThan32 = 1 << 11 ; + public: static const uint32_t kControllerRamUsageGreaterThan2048 = 1 << 12 ; + public: static const uint32_t kControllerTXQPriorityGreaterThan31 = 1 << 13 ; + public: static const uint32_t kControllerTransmitFIFOPriorityGreaterThan31 = 1 << 14 ; + public: static const uint32_t kControllerTXQSizeGreaterThan32 = 1 << 15 ; + public: static const uint32_t kRequestedModeTimeOut = 1 << 16 ; + public: static const uint32_t kX10PLLNotReadyWithin1MS = 1 << 17 ; + public: static const uint32_t kReadBackErrorWithFullSpeedSPIClock = 1 << 18 ; + +//······················································································································ +// Send a message +//······················································································································ + + public: bool tryToSend (const CANMessage & inMessage) ; + + public: bool tryToSend (const CANFDMessage & inMessage) ; + +//······················································································································ +// Receive a message +//······················································································································ + + public: bool receive (CANFDMessage & outMessage) ; + public: bool available (void) ; + public: typedef void (*tFilterMatchCallBack) (const uint32_t inFilterIndex) ; + public: bool dispatchReceivedMessage (const tFilterMatchCallBack inFilterMatchCallBack = NULL) ; + +//--- Call back function array + private: ACANFDCallBackRoutine * mCallBackFunctionArray = NULL ; + +//······················································································································ +// Get error counters +//······················································································································ + + public: uint32_t readErrorCounters (void) ; + +//······················································································································ +// Private properties +//······················································································································ + + private: SPISettings mSPISettings ; + private: SPIClass & mSPI ; + private: uint8_t mCS ; + private: uint8_t mINT ; + private: bool mUsesTXQ ; + private: bool mControllerTxFIFOFull ; + private: bool mHasDataBitRate ; + private: uint8_t mTransmitFIFOPayload ; // in byte count + private: uint8_t mTXQBufferPayload ; // in byte count + private: uint8_t mReceiveFIFOPayload ; // in byte count + +//······················································································································ +// Receive buffer +//······················································································································ + + private: ACANBuffer mDriverReceiveBuffer ; + +//······················································································································ +// Transmit buffer +//······················································································································ + + private: ACANBuffer mDriverTransmitBuffer ; + + public: uint32_t driverTransmitBufferSize (void) const { return mDriverTransmitBuffer.size () ; } + + public: uint32_t driverTransmitBufferCount (void) const { return mDriverTransmitBuffer.count () ; } + + public: uint32_t driverTransmitBufferPeakCount (void) const { return mDriverTransmitBuffer.peakCount () ; } + +//······················································································································ +// Private methods +//······················································································································ + + private: void readCommandSPI (const uint16_t inRegisterAddress) ; + private: void writeCommandSPI (const uint16_t inRegisterAddress) ; + private: uint32_t readWordSPI (void) ; + private: void writeWordSPI (const uint32_t inValue) ; + + private: void writeRegisterSPI (const uint16_t inRegisterAddress, const uint32_t inValue) ; + private: uint32_t readRegisterSPI (const uint16_t inRegisterAddress) ; + private: void writeByteRegisterSPI (const uint16_t inRegisterAddress, const uint8_t inValue) ; + private: uint8_t readByteRegisterSPI (const uint16_t inRegisterAddress) ; + private: void assertCS (void) ; + private: void deassertCS (void) ; + + private: void reset2517FD (void) ; + private: void writeRegister (const uint16_t inAddress, const uint32_t inValue) ; + private: uint32_t readRegister (const uint16_t inAddress) ; + private: void writeByteRegister (const uint16_t inRegisterAddress, const uint8_t inValue) ; + private: uint8_t readByteRegister (const uint16_t inAddress) ; + + private: bool sendViaTXQ (const CANFDMessage & inMessage) ; + private: bool enterInTransmitBuffer (const CANFDMessage & inMessage) ; + private: void appendInControllerTxFIFO (const CANFDMessage & inMessage) ; + +//······················································································································ +// Interrupt service routine +//······················································································································ + + public: void isr (void) ; + private: void receiveInterrupt (void) ; + private: void transmitInterrupt (void) ; + +//······················································································································ +// No copy +//······················································································································ + + private: ACAN2517FD (const ACAN2517FD &) ; + private: ACAN2517FD & operator = (const ACAN2517FD &) ; + +//······················································································································ + +} ; + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + diff --git a/src/ACAN2517FDFilters.h b/src/ACAN2517FDFilters.h new file mode 100644 index 0000000..de3565f --- /dev/null +++ b/src/ACAN2517FDFilters.h @@ -0,0 +1,221 @@ +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— +// An utility class for: +// - ACAN2517FD CAN driver for MCP2517FD (CANFD mode) +// by Pierre Molinaro +// https://github.com/pierremolinaro/acan2517FD +// +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +#ifndef ACAN2517FD_FILTERS_CLASS_DEFINED +#define ACAN2517FD_FILTERS_CLASS_DEFINED + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +#include + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— +// ACAN2517FDFilters class +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +class ACAN2517FDFilters { + +//······················································································································ +// EMBEDDED CLASS +//······················································································································ + + private: class Filter { + public: Filter * mNextFilter ; + public: const uint32_t mFilterMask ; + public: const uint32_t mAcceptanceFilter ; + public: const ACANFDCallBackRoutine mCallBackRoutine ; + + public: Filter (const uint32_t inFilterMask, + const uint32_t inAcceptanceFilter, + const ACANFDCallBackRoutine inCallBackRoutine) : + mNextFilter (NULL), + mFilterMask (inFilterMask), + mAcceptanceFilter (inAcceptanceFilter), + mCallBackRoutine (inCallBackRoutine) { + } + + //--- No copy + private: Filter (const Filter &) ; + private: Filter & operator = (const Filter &) ; + } ; + +//······················································································································ +// ENUMERATED TYPE +//······················································································································ + + public: typedef enum { + kFiltersOk, + kStandardIdentifierTooLarge, + kExtendedIdentifierTooLarge, + kStandardAcceptanceTooLarge, + kExtendedAcceptanceTooLarge, + kStandardMaskTooLarge, + kExtendedMaskTooLarge, + kInconsistencyBetweenMaskAndAcceptance + } FilterStatus ; + +//······················································································································ +// CONSTRUCTOR +//······················································································································ + + public: ACAN2517FDFilters (void) {} + +//······················································································································ +// DESTRUCTOR +//······················································································································ + + public: ~ ACAN2517FDFilters (void) { + while (mFirstFilter != NULL) { + Filter * next = mFirstFilter->mNextFilter ; + delete mFirstFilter ; + mFirstFilter = next ; + } + } + +//······················································································································ +// RECEIVE FILTERS +//······················································································································ + + public: void appendPassAllFilter (const ACANFDCallBackRoutine inCallBackRoutine) { // Accept any frame + Filter * f = new Filter (0, 0, inCallBackRoutine) ; + if (mFirstFilter == NULL) { + mFirstFilter = f ; + }else{ + mLastFilter->mNextFilter = f ; + } + mLastFilter = f ; + mFilterCount += 1 ; + } + +//······················································································································ + + public: void appendFormatFilter (const tFrameFormat inFormat, // Accept any identifier + const ACANFDCallBackRoutine inCallBackRoutine) { + Filter * f = new Filter (1 << 30, + (inFormat == kExtended) ? (1 << 30) : 0, + inCallBackRoutine) ; + if (mFirstFilter == NULL) { + mFirstFilter = f ; + }else{ + mLastFilter->mNextFilter = f ; + } + mLastFilter = f ; + mFilterCount += 1 ; + } + +//······················································································································ + + public: void appendFrameFilter (const tFrameFormat inFormat, + const uint32_t inIdentifier, + const ACANFDCallBackRoutine inCallBackRoutine) { + //--- Check identifier + if (inFormat == kExtended) { + if (inIdentifier > 0x1FFFFFFF) { + mFilterStatus = kExtendedIdentifierTooLarge ; + mFilterErrorIndex = mFilterCount ; + } + }else if (inIdentifier > 0x7FF) { + mFilterStatus = kStandardIdentifierTooLarge ; + mFilterErrorIndex = mFilterCount ; + } + //--- Enter filter + const uint32_t mask = (1 << 30) | ((inFormat == kExtended) ? 0x1FFFFFFF : 0x7FF) ; + const uint32_t acceptance = inIdentifier | ((inFormat == kExtended) ? (1 << 30) : 0) ; + Filter * f = new Filter (mask, acceptance, inCallBackRoutine) ; + if (mFirstFilter == NULL) { + mFirstFilter = f ; + }else{ + mLastFilter->mNextFilter = f ; + } + mLastFilter = f ; + mFilterCount += 1 ; + } + +//······················································································································ + + public: void appendFilter (const tFrameFormat inFormat, + const uint32_t inMask, + const uint32_t inAcceptance, + const ACANFDCallBackRoutine inCallBackRoutine) { + //--- Check consistency between mask and acceptance + if ((inMask & inAcceptance) != inAcceptance) { + mFilterStatus = kInconsistencyBetweenMaskAndAcceptance ; + mFilterErrorIndex = mFilterCount ; + } + //--- Check identifier + if (inFormat == kExtended) { + if (inAcceptance > 0x1FFFFFFF) { + mFilterStatus = kExtendedAcceptanceTooLarge ; + mFilterErrorIndex = mFilterCount ; + } + }else if (inAcceptance > 0x7FF) { + mFilterStatus = kStandardAcceptanceTooLarge ; + mFilterErrorIndex = mFilterCount ; + } + //--- Check mask + if (inFormat == kExtended) { + if (inMask > 0x1FFFFFFF) { + mFilterStatus = kExtendedMaskTooLarge ; + mFilterErrorIndex = mFilterCount ; + } + }else if (inMask > 0x7FF) { + mFilterStatus = kStandardMaskTooLarge ; + mFilterErrorIndex = mFilterCount ; + } + //--- Enter filter + const uint32_t mask = (1 << 30) | inMask ; + const uint32_t acceptance = ((inFormat == kExtended) ? (1 << 30) : 0) | inAcceptance ; + Filter * f = new Filter (mask, acceptance, inCallBackRoutine) ; + if (mFirstFilter == NULL) { + mFirstFilter = f ; + }else{ + mLastFilter->mNextFilter = f ; + } + mLastFilter = f ; + mFilterCount += 1 ; + } + +//······················································································································ +// ACCESSORS +//······················································································································ + + public: FilterStatus filterStatus (void) const { return mFilterStatus ; } + + public: uint8_t filterErrorIndex (void) const { return mFilterErrorIndex ; } + + public: uint8_t filterCount (void) const { return mFilterCount ; } + +//······················································································································ +// PRIVATE PROPERTIES +//······················································································································ + + private: uint8_t mFilterCount = 0 ; + private: Filter * mFirstFilter = NULL ; + private: Filter * mLastFilter = NULL ; + private: FilterStatus mFilterStatus = kFiltersOk ; + private: uint8_t mFilterErrorIndex = 0 ; + +//······················································································································ +// NO COPY +//······················································································································ + + private: ACAN2517FDFilters (const ACAN2517FDFilters &) ; + private: ACAN2517FDFilters & operator = (const ACAN2517FDFilters &) ; + +//······················································································································ +// Friend +//······················································································································ + + friend class ACAN2517FD ; + +//······················································································································ + +} ; + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +#endif diff --git a/src/ACAN2517FDSettings.cpp b/src/ACAN2517FDSettings.cpp new file mode 100644 index 0000000..82f7fb3 --- /dev/null +++ b/src/ACAN2517FDSettings.cpp @@ -0,0 +1,349 @@ +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— +// A CAN driver for MCP2517FD (CANFD mode) +// by Pierre Molinaro +// https://github.com/pierremolinaro/acan2517FD +// +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +#include + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— +// sysClock +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +uint32_t ACAN2517FDSettings::sysClock (const Oscillator inOscillator) { + uint32_t sysClock = 40 * 1000 * 1000 ; + switch (inOscillator) { + case OSC_4MHz: + sysClock = 4 * 1000 * 1000 ; + break ; + case OSC_4MHz_DIVIDED_BY_2: + sysClock = 2 * 1000 * 1000 ; + break ; + case OSC_4MHz10xPLL_DIVIDED_BY_2 : + case OSC_40MHz_DIVIDED_BY_2: + case OSC_20MHz: + sysClock = 20 * 1000 * 1000 ; + break ; + case OSC_20MHz_DIVIDED_BY_2: + sysClock = 10 * 1000 * 1000 ; + break ; + case OSC_4MHz10xPLL: + case OSC_40MHz: + break ; + } + return sysClock ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— +// CONSTRUCTOR +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +ACAN2517FDSettings::ACAN2517FDSettings (const Oscillator inOscillator, + const uint32_t inDesiredArbitrationBitRate, + const DataBitRateFactor inDataBitRateFactor, + const uint32_t inTolerancePPM) : +mOscillator (inOscillator), +mSysClock (sysClock (inOscillator)), +mDesiredArbitrationBitRate (inDesiredArbitrationBitRate), +mDataBitRateFactor (inDataBitRateFactor) { + if (inDataBitRateFactor == 1) { // Single bit rate + const uint32_t maxTQCount = MAX_ARBITRATION_PHASE_SEGMENT_1 + MAX_ARBITRATION_PHASE_SEGMENT_2 + 1 ; // Setting for slowest bit rate + uint32_t BRP = MAX_BRP ; + uint32_t smallestError = UINT32_MAX ; + uint32_t bestBRP = 1 ; // Setting for highest bit rate + uint32_t bestTQCount = 4 ; // Setting for highest bit rate + uint32_t TQCount = mSysClock / inDesiredArbitrationBitRate / BRP ; + //--- Loop for finding best BRP and best TQCount + while ((TQCount <= (MAX_ARBITRATION_PHASE_SEGMENT_1 + MAX_ARBITRATION_PHASE_SEGMENT_2 + 1)) && (BRP > 0)) { + //--- Compute error using TQCount + if ((TQCount >= 4) && (TQCount <= maxTQCount)) { + const uint32_t error = mSysClock - inDesiredArbitrationBitRate * TQCount * BRP ; // error is allways >= 0 + if (error <= smallestError) { + smallestError = error ; + bestBRP = BRP ; + bestTQCount = TQCount ; + } + } + //--- Compute error using TQCount+1 + if ((TQCount >= 3) && (TQCount < maxTQCount)) { + const uint32_t error = inDesiredArbitrationBitRate * (TQCount + 1) * BRP - mSysClock ; // error is allways >= 0 + if (error <= smallestError) { + smallestError = error ; + bestBRP = BRP ; + bestTQCount = TQCount + 1 ; + } + } + //--- Continue with next value of BRP + BRP -- ; + TQCount = (BRP == 0) ? (maxTQCount + 1) : (mSysClock / inDesiredArbitrationBitRate / BRP) ; + } + //--- Compute PS2 (1 <= PS2 <= 128) + uint32_t PS2 = bestTQCount / 5 ; // For sampling point at 80% + if (PS2 == 0) { + PS2 = 1 ; + }else if (PS2 > MAX_ARBITRATION_PHASE_SEGMENT_2) { + PS2 = MAX_ARBITRATION_PHASE_SEGMENT_2 ; + } + //--- Compute PS1 (1 <= PS1 <= 256) + uint32_t PS1 = bestTQCount - PS2 - 1 /* Sync Seg */ ; + if (PS1 > MAX_ARBITRATION_PHASE_SEGMENT_1) { + PS2 += PS1 - MAX_ARBITRATION_PHASE_SEGMENT_1 ; + PS1 = MAX_ARBITRATION_PHASE_SEGMENT_1 ; + } + //--- + mBitRatePrescaler = (uint16_t) bestBRP ; + mArbitrationPhaseSegment1 = (uint16_t) PS1 ; + mArbitrationPhaseSegment2 = (uint8_t) PS2 ; + mArbitrationSJW = mArbitrationPhaseSegment2 ; // Allways 1 <= SJW <= 128, and SJW <= mArbitrationPhaseSegment2 + //--- Final check of the nominal configuration + const uint32_t W = bestTQCount * mDesiredArbitrationBitRate * bestBRP ; + const uint64_t diff = (mSysClock > W) ? (mSysClock - W) : (W - mSysClock) ; + const uint64_t ppm = (uint64_t) (1000UL * 1000UL) ; // UL suffix is required for Arduino Uno + mArbitrationBitRateClosedToDesiredRate = (diff * ppm) <= (((uint64_t) W) * inTolerancePPM) ; + }else{ // Dual bit rate, first compute data bit rate + const uint32_t maxDataTQCount = MAX_DATA_PHASE_SEGMENT_1 + MAX_DATA_PHASE_SEGMENT_2 ; // Setting for slowest bit rate + const uint32_t desiredDataBitRate = inDesiredArbitrationBitRate * inDataBitRateFactor ; + uint32_t smallestError = UINT32_MAX ; + uint32_t bestBRP = MAX_BRP ; // Setting for lowest bit rate + uint32_t bestDataTQCount = maxDataTQCount ; // Setting for lowest bit rate + uint32_t dataTQCount = 4 ; + uint32_t brp = mSysClock / desiredDataBitRate / dataTQCount ; + //--- Loop for finding best BRP and best TQCount + while ((dataTQCount <= maxDataTQCount) && (brp > 0)) { + //--- Compute error using brp + if (brp <= MAX_BRP) { + const uint32_t error = mSysClock - desiredDataBitRate * dataTQCount * brp ; // error is allways >= 0 + if (error <= smallestError) { + smallestError = error ; + bestBRP = brp ; + bestDataTQCount = dataTQCount ; + } + } + //--- Compute error using brp+1 + if (brp < MAX_BRP) { + const uint32_t error = desiredDataBitRate * dataTQCount * (brp + 1) - mSysClock ; // error is allways >= 0 + if (error <= smallestError) { + smallestError = error ; + bestBRP = brp + 1 ; + bestDataTQCount = dataTQCount ; + } + } + //--- Continue with next value of BRP + dataTQCount += 1 ; + brp = mSysClock / desiredDataBitRate / dataTQCount ; + } + //--- Compute data PS2 (1 <= PS2 <= 16) + uint32_t dataPS2 = bestDataTQCount / 5 ; // For sampling point at 80% + if (dataPS2 == 0) { + dataPS2 = 1 ; +// }else if (dataPS2 > MAX_DATA_PHASE_SEGMENT_2) { +// dataPS2 = MAX_DATA_PHASE_SEGMENT_2 ; + } + //--- Compute data PS1 (1 <= PS1 <= 32) + uint32_t dataPS1 = bestDataTQCount - dataPS2 - 1 /* Sync Seg */ ; + if (dataPS1 > MAX_DATA_PHASE_SEGMENT_1) { + dataPS2 += dataPS1 - MAX_DATA_PHASE_SEGMENT_1 ; + dataPS1 = MAX_DATA_PHASE_SEGMENT_1 ; + } + //--- + mDataPhaseSegment1 = (uint8_t) dataPS1 ; + mDataPhaseSegment2 = (uint8_t) dataPS2 ; + mDataSJW = mDataPhaseSegment2 ; + const uint32_t arbitrationTQCount = bestDataTQCount * mDataBitRateFactor ; + //--- Compute arbiration PS2 (1 <= PS2 <= 128) + uint32_t arbitrationPS2 = arbitrationTQCount / 5 ; // For sampling point at 80% + if (arbitrationPS2 == 0) { + arbitrationPS2 = 1 ; +// }else if (PS2 > MAX_ARBITRATION_PHASE_SEGMENT_2) { +// PS2 = MAX_ARBITRATION_PHASE_SEGMENT_2 ; + } + //--- Compute PS1 (1 <= PS1 <= 256) + uint32_t arbitrationPS1 = arbitrationTQCount - arbitrationPS2 - 1 /* Sync Seg */ ; + if (arbitrationPS1 > MAX_ARBITRATION_PHASE_SEGMENT_1) { + arbitrationPS2 += arbitrationPS1 - MAX_ARBITRATION_PHASE_SEGMENT_1 ; + arbitrationPS1 = MAX_ARBITRATION_PHASE_SEGMENT_1 ; + } + //--- + mBitRatePrescaler = (uint16_t) bestBRP ; + mArbitrationPhaseSegment1 = (uint16_t) arbitrationPS1 ; + mArbitrationPhaseSegment2 = (uint8_t) arbitrationPS2 ; + mArbitrationSJW = mArbitrationPhaseSegment2 ; // Allways 1 <= SJW <= 128, and SJW <= mArbitrationPhaseSegment2 + //--- Final check of the nominal configuration + const uint32_t W = arbitrationTQCount * mDesiredArbitrationBitRate * bestBRP ; + const uint64_t diff = (mSysClock > W) ? (mSysClock - W) : (W - mSysClock) ; + const uint64_t ppm = (uint64_t) (1000UL * 1000UL) ; // UL suffix is required for Arduino Uno + mArbitrationBitRateClosedToDesiredRate = (diff * ppm) <= (((uint64_t) W) * inTolerancePPM) ; + } +} ; + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— +// ACCESSORS +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +uint32_t ACAN2517FDSettings::actualArbitrationBitRate (void) const { + const uint32_t arbitrationTQCount = 1 /* Sync Seg */ + mArbitrationPhaseSegment1 + mArbitrationPhaseSegment2 ; + return mSysClock / mBitRatePrescaler / arbitrationTQCount ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +uint32_t ACAN2517FDSettings::actualDataBitRate (void) const { + if (mDataBitRateFactor == 1) { + return actualArbitrationBitRate () ; + }else{ + const uint32_t dataTQCount = 1 /* Sync Seg */ + mDataPhaseSegment1 + mDataPhaseSegment2 ; + return mSysClock / mBitRatePrescaler / dataTQCount ; + } +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +bool ACAN2517FDSettings::exactArbitrationBitRate (void) const { + const uint32_t TQCount = 1 /* Sync Seg */ + mArbitrationPhaseSegment1 + mArbitrationPhaseSegment2 ; + return mSysClock == (mBitRatePrescaler * mDesiredArbitrationBitRate * TQCount) ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +bool ACAN2517FDSettings::exactDataBitRate (void) const { + if (mDataBitRateFactor == 1) { + return exactArbitrationBitRate () ; + }else{ + const uint32_t TQCount = 1 /* Sync Seg */ + mDataPhaseSegment1 + mDataPhaseSegment2 ; + return mSysClock == (mBitRatePrescaler * mDesiredArbitrationBitRate * TQCount * mDataBitRateFactor) ; + } +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +bool ACAN2517FDSettings::dataBitRateIsAMultipleOfArbitrationBitRate (void) const { + bool result = mDataBitRateFactor == 1 ; + if (!result) { + const uint32_t dataTQCount = 1 /* Sync Seg */ + mDataPhaseSegment1 + mDataPhaseSegment2 ; + const uint32_t arbitrationTQCount = 1 /* Sync Seg */ + mArbitrationPhaseSegment1 + mArbitrationPhaseSegment2 ; + result = arbitrationTQCount == (dataTQCount * mDataBitRateFactor) ; + } + return result ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +uint32_t ACAN2517FDSettings::ppmFromDesiredArbitrationBitRate (void) const { + const uint32_t TQCount = 1 /* Sync Seg */ + mArbitrationPhaseSegment1 + mArbitrationPhaseSegment2 ; + const uint32_t W = TQCount * mDesiredArbitrationBitRate * mBitRatePrescaler ; + const uint64_t diff = (mSysClock > W) ? (mSysClock - W) : (W - mSysClock) ; + const uint64_t ppm = (uint64_t) (1000UL * 1000UL) ; // UL suffix is required for Arduino Uno + return (uint32_t) ((diff * ppm) / W) ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +uint32_t ACAN2517FDSettings::arbitrationSamplePointFromBitStart (void) const { + const uint32_t nominalTQCount = 1 /* Sync Seg */ + mArbitrationPhaseSegment1 + mArbitrationPhaseSegment2 ; + const uint32_t samplePoint = 1 /* Sync Seg */ + mArbitrationPhaseSegment1 ; + const uint32_t partPerCent = 100 ; + return (samplePoint * partPerCent) / nominalTQCount ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +uint32_t ACAN2517FDSettings::dataSamplePointFromBitStart (void) const { + const uint32_t nominalTQCount = 1 /* Sync Seg */ + mDataPhaseSegment1 + mDataPhaseSegment2 ; + const uint32_t samplePoint = 1 /* Sync Seg */ + mDataPhaseSegment1 ; + const uint32_t partPerCent = 100 ; + return (samplePoint * partPerCent) / nominalTQCount ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +uint32_t ACAN2517FDSettings::CANBitSettingConsistency (void) const { + uint32_t errorCode = 0 ; // Means no error +//--- Bit rate prescaler + if (mBitRatePrescaler == 0) { + errorCode |= kBitRatePrescalerIsZero ; + }else if (mBitRatePrescaler > MAX_BRP) { + errorCode |= kBitRatePrescalerIsGreaterThan256 ; + } +//--- Arbitration Phase Segment 1 + if (mArbitrationPhaseSegment1 < 2) { + errorCode |= kArbitrationPhaseSegment1IsLowerThan2 ; + }else if (mArbitrationPhaseSegment1 > MAX_ARBITRATION_PHASE_SEGMENT_1) { + errorCode |= kArbitrationPhaseSegment1IsGreaterThan256 ; + } +//--- Arbitration Phase Segment 2 + if (mArbitrationPhaseSegment2 == 0) { + errorCode |= kArbitrationPhaseSegment2IsZero ; + }else if (mArbitrationPhaseSegment2 > MAX_ARBITRATION_PHASE_SEGMENT_2) { + errorCode |= kArbitrationPhaseSegment2IsGreaterThan128 ; + } +//--- Arbitration SJW + if (mArbitrationSJW == 0) { + errorCode |= kArbitrationSJWIsZero ; + }else if (mArbitrationSJW > MAX_ARBITRATION_SJW) { + errorCode |= kArbitrationSJWIsGreaterThan128 ; + } + if (mArbitrationSJW > mArbitrationPhaseSegment1) { + errorCode |= kArbitrationSJWIsGreaterThanPhaseSegment1 ; + } + if (mArbitrationSJW > mArbitrationPhaseSegment2) { + errorCode |= kArbitrationSJWIsGreaterThanPhaseSegment2 ; + } +//--- Data bit rate ? + if (mDataBitRateFactor != 1) { + if (! dataBitRateIsAMultipleOfArbitrationBitRate ()) { + errorCode |= kArbitrationTQCountNotDivisibleByDataBitRateFactor ; + } + //--- Data Phase Segment 1 + if (mDataPhaseSegment1 < 2) { + errorCode |= kDataPhaseSegment1IsLowerThan2 ; + }else if (mDataPhaseSegment1 > MAX_DATA_PHASE_SEGMENT_1) { + errorCode |= kDataPhaseSegment1IsGreaterThan32 ; + } + //--- Data Phase Segment 2 + if (mDataPhaseSegment2 == 0) { + errorCode |= kDataPhaseSegment2IsZero ; + }else if (mDataPhaseSegment2 > MAX_DATA_PHASE_SEGMENT_2) { + errorCode |= kDataPhaseSegment2IsGreaterThan16 ; + } + //--- Data SJW + if (mDataSJW == 0) { + errorCode |= kDataSJWIsZero ; + }else if (mDataSJW > MAX_DATA_SJW) { + errorCode |= kDataSJWIsGreaterThan16 ; + } + if (mDataSJW > mDataPhaseSegment1) { + errorCode |= kDataSJWIsGreaterThanPhaseSegment1 ; + } + if (mDataSJW > mDataPhaseSegment2) { + errorCode |= kDataSJWIsGreaterThanPhaseSegment2 ; + } + } +//--- + return errorCode ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— +// RAM USAGE +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +uint32_t ACAN2517FDSettings::ramUsage (void) const { + uint32_t result = 0 ; +//--- TXQ + result += objectSizeForPayload (mControllerTXQBufferPayload) * mControllerTXQSize ; +//--- Receive FIFO (FIFO #1) + result += objectSizeForPayload (mControllerReceiveFIFOPayload) * mControllerReceiveFIFOSize ; +//--- Send FIFO (FIFO #2) + result += objectSizeForPayload (mControllerTransmitFIFOPayload) * mControllerTransmitFIFOSize ; +//--- + return result ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +uint32_t ACAN2517FDSettings::objectSizeForPayload (const PayloadSize inPayload) { + static const uint8_t kPayload [8] = {16, 20, 24, 28, 32, 40, 56, 72} ; + return kPayload [inPayload] ; +} + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— diff --git a/src/ACAN2517FDSettings.h b/src/ACAN2517FDSettings.h new file mode 100644 index 0000000..5b164e3 --- /dev/null +++ b/src/ACAN2517FDSettings.h @@ -0,0 +1,259 @@ +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— +// A CAN driver for MCP2517FD (CANFD mode) +// by Pierre Molinaro +// https://github.com/pierremolinaro/acan2517FD +// +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +#pragma once + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +#include + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— +// ACAN2517FDSettings class +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +class ACAN2517FDSettings { + +//······················································································································ +// ENUMERATED TYPES +//······················································································································ + + public: typedef enum : uint8_t { + OSC_4MHz, + OSC_4MHz_DIVIDED_BY_2, + OSC_4MHz10xPLL, + OSC_4MHz10xPLL_DIVIDED_BY_2, + OSC_20MHz, + OSC_20MHz_DIVIDED_BY_2, + OSC_40MHz, + OSC_40MHz_DIVIDED_BY_2 + } Oscillator ; + + public: typedef enum : uint8_t { + CLKO_DIVIDED_BY_1, + CLKO_DIVIDED_BY_2, + CLKO_DIVIDED_BY_4, + CLKO_DIVIDED_BY_10, SOF + } CLKOpin ; + + public: typedef enum : uint8_t { + InternalLoopBack = 2, + ExternalLoopBack = 5, + ListenOnly = 3, + NormalFD = 0 + } RequestedMode ; + + public: typedef enum : uint8_t {Disabled, ThreeAttempts, UnlimitedNumber} RetransmissionAttempts ; + + public: typedef enum : uint8_t { + PAYLOAD_8 = 0, + PAYLOAD_12 = 1, + PAYLOAD_16 = 2, + PAYLOAD_20 = 3, + PAYLOAD_24 = 4, + PAYLOAD_32 = 5, + PAYLOAD_48 = 6, + PAYLOAD_64 = 7 + } PayloadSize ; + + public: typedef enum : uint8_t { + DATA_BITRATE_x1 = 1, + DATA_BITRATE_x2 = 2, + DATA_BITRATE_x3 = 3, + DATA_BITRATE_x4 = 4, + DATA_BITRATE_x5 = 5, + DATA_BITRATE_x6 = 6, + DATA_BITRATE_x7 = 7, + DATA_BITRATE_x8 = 8 + } DataBitRateFactor ; + +//······················································································································ +// CONSTRUCTOR +//······················································································································ + + public: ACAN2517FDSettings (const Oscillator inOscillator, + const uint32_t inDesiredArbitrationBitRate, + const DataBitRateFactor inDataBitRateFactor, + const uint32_t inTolerancePPM = 1000) ; + +//······················································································································ +// CAN BIT TIMING +//······················································································································ + + private: Oscillator mOscillator ; + private: uint32_t mSysClock ; // In Hz + public: const uint32_t mDesiredArbitrationBitRate ; // In kb/s + public: const DataBitRateFactor mDataBitRateFactor ; +//--- Data bit rate; if mDataBitRateFactor==1, theses properties are set to their corresponding values, +// and are not used for configuring the MCP2517FD. + public: uint8_t mDataPhaseSegment1 = 0 ; // if mDataBitRateFactor > 1: 2...32, else equal to mArbitrationPhaseSegment1 + public: uint8_t mDataPhaseSegment2 = 0 ; // if mDataBitRateFactor > 1: 1...16, else equal to mArbitrationPhaseSegment2 + public: uint8_t mDataSJW = 0 ; // if mDataBitRateFactor > 1: 1...16, else equal to mArbitrationSJW +//--- Bit rate prescaler is common to arbitration and data bit rates + public: uint16_t mBitRatePrescaler = 0 ; // 1...256 +//--- Arbitration bit rate + public: uint16_t mArbitrationPhaseSegment1 = 0 ; // 2...256 + public: uint8_t mArbitrationPhaseSegment2 = 0 ; // 1...128 + public: uint8_t mArbitrationSJW = 0 ; // 1...128 + public: bool mArbitrationBitRateClosedToDesiredRate = false ; // The above configuration is not correct + +//······················································································································ +// TXCAN pin is Open Drain ? +//······················································································································ + + public: bool mTXCANIsOpenDrain = false ; // false --> Push/Pull Output, true --> Open Drain Output + +//······················································································································ +// CLKO pin function (default value is MCP2517FD power on setting) +//······················································································································ + + public: CLKOpin mCLKOPin = CLKO_DIVIDED_BY_10 ; + +//······················································································································ +// Requested mode +//······················································································································ + + public: RequestedMode mRequestedMode = NormalFD ; + +//······················································································································ +// TRANSMIT FIFO +//······················································································································ + +//--- Driver transmit buffer size + public: uint16_t mDriverTransmitFIFOSize = 16 ; // >= 0 + +//--- Controller transmit FIFO size + public: uint8_t mControllerTransmitFIFOSize = 4 ; // 1 ... 32 + +//--- Payload controller transmit FIFO size + public: PayloadSize mControllerTransmitFIFOPayload = PAYLOAD_64 ; + +//--- Controller transmit FIFO priority (0 --> lowest, 31 --> highest) + public: uint8_t mControllerTransmitFIFOPriority = 0 ; // 0 ... 31 + +//--- Controller transmit FIFO retransmission attempts + public: RetransmissionAttempts mControllerTransmitFIFORetransmissionAttempts = UnlimitedNumber ; + +//······················································································································ +// TXQ BUFFER +//······················································································································ + +//--- TXQ buffer size (0 --> TXQ disabled) + public: uint8_t mControllerTXQSize = 0 ; // 0 ... 32 + +//--- Payload controller TXQ buffer size + public: PayloadSize mControllerTXQBufferPayload = PAYLOAD_64 ; + +//--- TXQ buffer priority (0 --> lowest, 31 --> highest) + public: uint8_t mControllerTXQBufferPriority = 31 ; // 0 ... 31 + +//--- Controller TXQ buffer retransmission attempts + public: RetransmissionAttempts mControllerTXQBufferRetransmissionAttempts = UnlimitedNumber ; + + +//······················································································································ +// RECEIVE FIFO +//······················································································································ + +//--- Driver receive buffer size + public: uint16_t mDriverReceiveFIFOSize = 32 ; // > 0 + +//--- Payload receive FIFO size + public: PayloadSize mControllerReceiveFIFOPayload = PAYLOAD_64 ; + +//--- Controller receive FIFO size + public: uint8_t mControllerReceiveFIFOSize = 24 ; // 1 ... 32 + +//······················································································································ +// SYSCLOCK frequency computation +//······················································································································ + + public: static uint32_t sysClock (const Oscillator inOscillator) ; + +//······················································································································ +// Accessors +//······················································································································ + + public: Oscillator oscillator (void) const { return mOscillator ; } + public: uint32_t sysClock (void) const { return mSysClock ; } + public: uint32_t actualArbitrationBitRate (void) const ; + public: uint32_t actualDataBitRate (void) const ; + public: bool exactArbitrationBitRate (void) const ; + public: bool exactDataBitRate (void) const ; + public: bool dataBitRateIsAMultipleOfArbitrationBitRate (void) const ; + +//······················································································································ +// RAM USAGE +//······················································································································ + + public: uint32_t ramUsage (void) const ; + + public: static uint32_t objectSizeForPayload (const PayloadSize inPayload) ; + +//······················································································································ +// Distance between actual bit rate and requested bit rate (in ppm, part-per-million) +//······················································································································ + + public: uint32_t ppmFromDesiredArbitrationBitRate (void) const ; + public: uint32_t ppmFromDesiredDataBitRate (void) const ; + +//······················································································································ +// Distance of sample point from bit start (in ppc, part-per-cent, denoted by %) +//······················································································································ + + public: uint32_t arbitrationSamplePointFromBitStart (void) const ; + public: uint32_t dataSamplePointFromBitStart (void) const ; + +//······················································································································ +// Bit settings are consistent ? (returns 0 if ok) +//······················································································································ + + public: uint32_t CANBitSettingConsistency (void) const ; + +//······················································································································ +// Constants returned by CANBitSettingConsistency +//······················································································································ + + public: static const uint32_t kBitRatePrescalerIsZero = 1 << 0 ; + public: static const uint32_t kBitRatePrescalerIsGreaterThan256 = 1 << 1 ; + public: static const uint32_t kArbitrationPhaseSegment1IsLowerThan2 = 1 << 2 ; + public: static const uint32_t kArbitrationPhaseSegment1IsGreaterThan256 = 1 << 3 ; + public: static const uint32_t kArbitrationPhaseSegment2IsZero = 1 << 4 ; + public: static const uint32_t kArbitrationPhaseSegment2IsGreaterThan128 = 1 << 5 ; + public: static const uint32_t kArbitrationSJWIsZero = 1 << 6 ; + public: static const uint32_t kArbitrationSJWIsGreaterThan128 = 1 << 7 ; + public: static const uint32_t kArbitrationSJWIsGreaterThanPhaseSegment1 = 1 << 8 ; + public: static const uint32_t kArbitrationSJWIsGreaterThanPhaseSegment2 = 1 << 9 ; + public: static const uint32_t kArbitrationTQCountNotDivisibleByDataBitRateFactor = 1 << 10 ; + public: static const uint32_t kDataPhaseSegment1IsLowerThan2 = 1 << 11 ; + public: static const uint32_t kDataPhaseSegment1IsGreaterThan32 = 1 << 12 ; + public: static const uint32_t kDataPhaseSegment2IsZero = 1 << 13 ; + public: static const uint32_t kDataPhaseSegment2IsGreaterThan16 = 1 << 14 ; + public: static const uint32_t kDataSJWIsZero = 1 << 15 ; + public: static const uint32_t kDataSJWIsGreaterThan16 = 1 << 16 ; + public: static const uint32_t kDataSJWIsGreaterThanPhaseSegment1 = 1 << 17 ; + public: static const uint32_t kDataSJWIsGreaterThanPhaseSegment2 = 1 << 18 ; + +//······················································································································ +// Max values +//······················································································································ + + public: static const uint16_t MAX_BRP = 256 ; + + public: static const uint16_t MAX_ARBITRATION_PHASE_SEGMENT_1 = 256 ; + public: static const uint8_t MAX_ARBITRATION_PHASE_SEGMENT_2 = 128 ; + public: static const uint8_t MAX_ARBITRATION_SJW = 128 ; + + public: static const uint16_t MAX_DATA_PHASE_SEGMENT_1 = 32 ; + public: static const uint8_t MAX_DATA_PHASE_SEGMENT_2 = 16 ; + public: static const uint8_t MAX_DATA_SJW = 16 ; + +//······················································································································ + +} ; + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + diff --git a/src/ACANFDBuffer.h b/src/ACANFDBuffer.h new file mode 100644 index 0000000..db9cd46 --- /dev/null +++ b/src/ACANFDBuffer.h @@ -0,0 +1,119 @@ +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— +// A CAN driver for MCP2517FD CAN Controller in CANFD mode +// by Pierre Molinaro +// https://github.com/pierremolinaro/acan2517FD +// +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +#ifndef ACANFD_BUFFER_CLASS_DEFINED +#define ACANFD_BUFFER_CLASS_DEFINED + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +#include + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +class ACANBuffer { + +//······················································································································ +// Default constructor +//······················································································································ + + public: ACANBuffer (void) : + mBuffer (NULL), + mSize (0), + mReadIndex (0), + mWriteIndex (0), + mCount (0), + mPeakCount (0) { + } + +//······················································································································ +// Destructor +//······················································································································ + + public: ~ ACANBuffer (void) { + delete [] mBuffer ; + } + +//······················································································································ +// Private properties +//······················································································································ + + private: CANFDMessage * mBuffer ; + private: uint32_t mSize ; + private: uint32_t mReadIndex ; + private: uint32_t mWriteIndex ; + private: uint32_t mCount ; + private: uint32_t mPeakCount ; // > mSize if overflow did occur + +//······················································································································ +// Accessors +//······················································································································ + + public: inline uint32_t size (void) const { return mSize ; } + public: inline uint32_t count (void) const { return mCount ; } + public: inline uint32_t peakCount (void) const { return mPeakCount ; } + +//······················································································································ +// initWithSize +//······················································································································ + + public: void initWithSize (const uint32_t inSize) { + mBuffer = new CANFDMessage [inSize] ; + mSize = inSize ; + mReadIndex = 0 ; + mWriteIndex = 0 ; + mCount = 0 ; + mPeakCount = 0 ; + } + +//······················································································································ +// append +//······················································································································ + + public: bool append (const CANFDMessage & inMessage) { + const bool ok = mCount < mSize ; + if (ok) { + mBuffer [mWriteIndex] = inMessage ; + mWriteIndex += 1 ; + if (mWriteIndex == mSize) { + mWriteIndex = 0 ; + } + mCount ++ ; + if (mPeakCount < mCount) { + mPeakCount = mCount ; + } + } + return ok ; + } + +//······················································································································ +// Remove +//······················································································································ + + public: bool remove (CANFDMessage & outMessage) { + const bool ok = mCount > 0 ; + if (ok) { + outMessage = mBuffer [mReadIndex] ; + mCount -= 1 ; + mReadIndex += 1 ; + if (mReadIndex == mSize) { + mReadIndex = 0 ; + } + } + return ok ; + } + +//······················································································································ +// No copy +//······················································································································ + + private: ACANBuffer (const ACANBuffer &) ; + private: ACANBuffer & operator = (const ACANBuffer &) ; +} ; + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +#endif diff --git a/src/CANFDMessage.h b/src/CANFDMessage.h new file mode 100644 index 0000000..567a4d2 --- /dev/null +++ b/src/CANFDMessage.h @@ -0,0 +1,86 @@ +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— +// Generic CANFD Message +// by Pierre Molinaro +// +// https://github.com/pierremolinaro/acan2517FD +// +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +#ifndef GENERIC_CANFD_MESSAGE_DEFINED +#define GENERIC_CANFD_MESSAGE_DEFINED + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +#include + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— +// CANFDMessage class +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— +// Note that "len" field contains the actual length, not its encoding in CANFD frames +// Valid values are: 0, 1, ..., 8, 12, 16, 20, 24, 32, 48, 64. +// Having other values is an error that prevents frame to be sent by tryToSend +// You can use the "pad" method for padding with 0 bytes to the next valid length + +class CANFDMessage { + public : uint32_t id = 0 ; // Frame identifier + public : bool ext = false ; // false -> standard frame, true -> extended frame + public : bool rtr = false ; // false -> data frame, true -> remote frame + public : uint8_t idx = 0 ; // This field is used by the driver + public : uint8_t len = 0 ; // Length of data (0 ... 64) + public : union { + uint64_t data64 [ 8] ; // Caution: subject to endianness + uint32_t data32 [16] ; // Caution: subject to endianness + uint16_t data16 [32] ; // Caution: subject to endianness + uint8_t data [64] = {} ; + } ; + +//······················································································································ + + public: void pad (void) { + uint8_t paddedLength = len ; + if ((len > 8) && (len < 12)) { + paddedLength = 12 ; + }else if ((len > 12) && (len < 16)) { + paddedLength = 16 ; + }else if ((len > 16) && (len < 20)) { + paddedLength = 20 ; + }else if ((len > 20) && (len < 24)) { + paddedLength = 24 ; + }else if ((len > 24) && (len < 32)) { + paddedLength = 32 ; + }else if ((len > 32) && (len < 48)) { + paddedLength = 48 ; + }else if ((len > 48) && (len < 64)) { + paddedLength = 64 ; + } + while (len < paddedLength) { + data [len] = 0 ; + len += 1 ; + } + } + +//······················································································································ + + public: bool isValid (void) const { + if (rtr) { // Remote frame + return len <= 8 ; + }else{ // Data frame + return + (len <= 8) || (len == 12) || (len == 16) || (len == 20) + || + (len == 24) || (len == 32) || (len == 48) || (len == 64) + ; + } + } + +//······················································································································ + +} ; + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +typedef void (*ACANFDCallBackRoutine) (const CANFDMessage & inMessage) ; + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +#endif diff --git a/src/CANMessage.h b/src/CANMessage.h new file mode 100644 index 0000000..52cdee8 --- /dev/null +++ b/src/CANMessage.h @@ -0,0 +1,44 @@ +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— +// Generic CAN Message +// by Pierre Molinaro +// +// This file is common to the following libraries +// https://github.com/pierremolinaro/acan +// https://github.com/pierremolinaro/acan2515 +// https://github.com/pierremolinaro/acan2517 +// https://github.com/pierremolinaro/acan2517FD +// +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +#ifndef GENERIC_CAN_MESSAGE_DEFINED +#define GENERIC_CAN_MESSAGE_DEFINED + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +#include + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +class CANMessage { + public : uint32_t id = 0 ; // Frame identifier + public : bool ext = false ; // false -> standard frame, true -> extended frame + public : bool rtr = false ; // false -> data frame, true -> remote frame + public : uint8_t idx = 0 ; // This field is used by the driver + public : uint8_t len = 0 ; // Length of data (0 ... 8) + public : union { + uint64_t data64 ; // Caution: subject to endianness + uint32_t data32 [2] ; // Caution: subject to endianness + uint16_t data16 [4] ; // Caution: subject to endianness + uint8_t data [8] = {0, 0, 0, 0, 0, 0, 0, 0} ; + } ; +} ; + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +typedef enum {kStandard, kExtended} tFrameFormat ; +typedef enum {kData, kRemote} tFrameKind ; +typedef void (*ACANCallBackRoutine) (const CANMessage & inMessage) ; + +//—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +#endif