From edfd257fcaf987a483690e3e9935115d445b7e31 Mon Sep 17 00:00:00 2001 From: shash256 <111925100+shash256@users.noreply.github.com> Date: Sun, 30 Mar 2025 23:19:15 +0530 Subject: [PATCH] feat: remove genny bindings, add manual bindings and go wrapper w basic test --- .gitignore | 3 +- bindings/bindings.h | 131 ++++++++ bindings/bindings.nim | 463 +++++++++++++++------------ bindings/generated/libbindings.dylib | Bin 0 -> 663128 bytes go.mod | 3 + reliability.nimble | 1 - sds_wrapper.go | 307 ++++++++++++++++++ sds_wrapper_test.go | 262 +++++++++++++++ src/reliability_utils.nim | 10 +- 9 files changed, 966 insertions(+), 214 deletions(-) create mode 100644 bindings/bindings.h create mode 100755 bindings/generated/libbindings.dylib create mode 100644 go.mod create mode 100644 sds_wrapper.go create mode 100644 sds_wrapper_test.go diff --git a/.gitignore b/.gitignore index 08a21fb..b8be30d 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,6 @@ tests/test_reliability tests/bloom nph -bindings/generated* +docs +for_reference do_not_commit diff --git a/bindings/bindings.h b/bindings/bindings.h new file mode 100644 index 0000000..a450453 --- /dev/null +++ b/bindings/bindings.h @@ -0,0 +1,131 @@ +#ifndef BINDINGS_H +#define BINDINGS_H + +#include // For size_t +#include // For standard integer types +#include // For bool type + +#ifdef __cplusplus +extern "C" { +#endif + + +// Opaque struct declaration (handle replaces direct pointer usage) +typedef struct ReliabilityManager ReliabilityManager; // Keep forward declaration + +// Define MessageID as a C string +typedef const char* MessageID; // Keep const for the typedef itself + +// --- Result Types --- + +typedef struct { + bool is_ok; + char* error_message; +} CResult; + +typedef struct { + CResult base_result; + unsigned char* message; + size_t message_len; + MessageID* missing_deps; + size_t missing_deps_count; +} CUnwrapResult; + +typedef struct { + CResult base_result; + unsigned char* message; + size_t message_len; +} CWrapResult; + + +// --- Callback Function Pointer Types --- +// Keep const char* here as these are inputs *to* the callback +typedef void (*MessageReadyCallback)(const char* messageID); +typedef void (*MessageSentCallback)(const char* messageID); +typedef void (*MissingDependenciesCallback)(const char* messageID, const char** missingDeps, size_t missingDepsCount); +typedef void (*PeriodicSyncCallback)(void* user_data); + + +// --- Core API Functions --- + +/** + * @brief Creates a new ReliabilityManager instance. + * @param channelId A unique identifier for the communication channel. + * @return An opaque handle (void*) representing the instance, or NULL on failure. + */ +void* NewReliabilityManager(char* channelId); + +/** + * @brief Cleans up resources associated with a ReliabilityManager instance. + * @param handle The opaque handle (void*) of the instance to clean up. + */ +void CleanupReliabilityManager(void* handle); + +/** + * @brief Resets the ReliabilityManager instance. + * @param handle The opaque handle (void*) of the instance. + * @return CResult indicating success or failure. + */ +CResult ResetReliabilityManager(void* handle); +/** + * @brief Wraps an outgoing message. + * @param handle The opaque handle (void*) of the instance. + * @param message Pointer to the raw message content. + * @param messageLen Length of the raw message content. + * @param messageId A unique identifier for this message. + * @return CWrapResult containing the wrapped message or an error. + */ +CWrapResult WrapOutgoingMessage(void* handle, void* message, size_t messageLen, char* messageId); +/** + * @brief Unwraps a received message. + * @param handle The opaque handle (void*) of the instance. + * @param message Pointer to the received message data. + * @param messageLen Length of the received message data. + * @return CUnwrapResult containing the unwrapped content, missing dependencies, or an error. + */ +CUnwrapResult UnwrapReceivedMessage(void* handle, void* message, size_t messageLen); + +/** + * @brief Marks specified message dependencies as met. + * @param handle The opaque handle (void*) of the instance. + * @param messageIDs An array of message IDs to mark as met. + * @param count The number of message IDs in the array. + * @return CResult indicating success or failure. + */ +CResult MarkDependenciesMet(void* handle, char*** messageIDs, size_t count); + +/** + * @brief Registers callback functions. + * @param handle The opaque handle (void*) of the instance. + * @param messageReady Callback for when a message is ready. + * @param messageSent Callback for when an outgoing message is acknowledged. + * @param missingDependencies Callback for when missing dependencies are detected. + * @param periodicSync Callback for periodic sync suggestions. + * @param user_data A pointer to user-defined data passed to callbacks. + */ +void RegisterCallbacks(void* handle, + void* messageReady, + void* messageSent, + void* missingDependencies, + void* periodicSync, + void* user_data); // Keep user_data, align with Nim proc + +/** + * @brief Starts the background periodic tasks. + * @param handle The opaque handle (void*) of the instance. + */ +void StartPeriodicTasks(void* handle); + + +// --- Memory Freeing Functions --- + +void FreeCResultError(CResult result); +void FreeCWrapResult(CWrapResult result); +void FreeCUnwrapResult(CUnwrapResult result); + + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // BINDINGS_H diff --git a/bindings/bindings.nim b/bindings/bindings.nim index 3e1eba1..27ddb91 100644 --- a/bindings/bindings.nim +++ b/bindings/bindings.nim @@ -1,242 +1,283 @@ -import genny -import std/[times, strutils] +import std/[locks, typetraits] +import chronos import results -import ../src/[reliability, message, reliability_utils, rolling_bloom_filter] +import ../src/[reliability, reliability_utils, message] + +# --- C Type Definitions --- -# Define required sequence wrapper types for C FFI type - SeqByte* = ref object - s*: seq[byte] - - SeqMessageID* = ref object - s*: seq[MessageID] - - SeqMessage* = ref object - s*: seq[Message] - - SeqUnacknowledgedMessage* = ref object - s*: seq[UnacknowledgedMessage] + CReliabilityManagerHandle* = pointer -# Error handling -var lastError: ReliabilityError + CResult* {.importc: "CResult", header: "bindings.h", bycopy.} = object + is_ok*: bool + error_message*: cstring -proc takeError(): string = - result = $lastError - lastError = ReliabilityError.reInternalError # Reset to default + CWrapResult* {.importc: "CWrapResult", header: "bindings.h", bycopy.} = object + base_result*: CResult + message*: pointer + message_len*: csize -proc checkError(): bool = - result = lastError != ReliabilityError.reInternalError + CUnwrapResult* {.importc: "CUnwrapResult", header: "bindings.h", bycopy.} = object + base_result*: CResult + message*: pointer + message_len*: csize + missing_deps*: ptr ptr cstring + missing_deps_count*: csize -# Callback function types for C FFI -type - CMessageReadyCallback* = proc(messageId: cstring) {.cdecl, gcsafe.} - CMessageSentCallback* = proc(messageId: cstring) {.cdecl, gcsafe.} - CMissingDepsCallback* = proc(messageId: cstring, missingDeps: cstring, count: cint) {.cdecl, gcsafe.} - CPeriodicSyncCallback* = proc() {.cdecl, gcsafe.} + # Callback Types + CMessageReadyCallback* = proc (messageID: cstring) {.cdecl, gcsafe, raises: [].} + CMessageSentCallback* = proc (messageID: cstring) {.cdecl, gcsafe, raises: [].} + CMissingDependenciesCallback* = proc (messageID: cstring, missingDeps: ptr ptr cstring, missingDepsCount: csize) {.cdecl, gcsafe, raises: [].} + CPeriodicSyncCallback* = proc (user_data: pointer) {.cdecl, gcsafe, raises: [].} -# Global callback storage -var - onMessageReadyCallback: CMessageReadyCallback - onMessageSentCallback: CMessageSentCallback - onMissingDepsCallback: CMissingDepsCallback - onPeriodicSyncCallback: CPeriodicSyncCallback +# --- Memory Management Helpers --- -# Register callbacks -proc registerMessageReadyCallback*(callback: CMessageReadyCallback) = - onMessageReadyCallback = callback +proc allocCString*(s: string): cstring {.inline, gcsafe.} = + if s.len == 0: return nil + result = cast[cstring](allocShared(s.len + 1)) + copyMem(result, s.cstring, s.len + 1) -proc registerMessageSentCallback*(callback: CMessageSentCallback) = - onMessageSentCallback = callback +proc allocSeqByte*(s: seq[byte]): (pointer, csize) {.inline, gcsafe.} = + if s.len == 0: return (nil, 0) + let len = s.len + let bufferPtr = allocShared(len) + if len > 0: + copyMem(bufferPtr, cast[pointer](s[0].unsafeAddr), len.Natural) + return (bufferPtr, len.csize) -proc registerMissingDepsCallback*(callback: CMissingDepsCallback) = - onMissingDepsCallback = callback +proc allocSeqCString*(s: seq[string]): (ptr ptr cstring, csize) {.inline, gcsafe, cdecl.} = + if s.len == 0: return (nil, 0) + let count = s.len + let arrPtr = cast[ptr ptr cstring](allocShared(count * sizeof(cstring))) + for i in 0.. 0: - try: - let joinedDeps = missingDeps.join(",") - onMissingDepsCallback(cstring(messageId), cstring(joinedDeps), cint(missingDeps.len)) - except: - discard +# --- Result Conversion Helpers --- -proc onPeriodicSyncAdapter() {.gcsafe, raises: [].} = - if onPeriodicSyncCallback != nil: - try: - onPeriodicSyncCallback() - except: - discard +proc toCResultOk*(): CResult = + CResult(is_ok: true, error_message: nil) -# Apply registered callbacks to a ReliabilityManager -proc applyCallbacks*(rm: ReliabilityManager): bool = - if rm == nil: - lastError = ReliabilityError.reInvalidArgument - return false - - try: - rm.setCallbacks( - onMessageReadyAdapter, - onMessageSentAdapter, - onMissingDependenciesAdapter, - onPeriodicSyncAdapter +proc toCResultErr*(err: ReliabilityError): CResult = + CResult(is_ok: false, error_message: allocCString($err)) + +proc toCResultErrStr*(errMsg: string): CResult = + CResult(is_ok: false, error_message: allocCString(errMsg)) + +# --- Callback Wrappers (Nim -> C) --- +# These still accept the ReliabilityManager instance directly + +# These wrappers now need to handle the user_data explicitly if needed, +# but the C callbacks themselves don't take it directly anymore (except PeriodicSync). +# The user_data is stored in rm.cUserData. + +proc nimMessageReadyCallback(rm: ReliabilityManager, messageId: MessageID) {.gcsafe.} = + let cbPtr = rm.cMessageReadyCallback + if cbPtr != nil: + let cb = cast[CMessageReadyCallback](cbPtr) + # Call the C callback without user_data, as per the updated typedef + cb(messageId.cstring) + +proc nimMessageSentCallback(rm: ReliabilityManager, messageId: MessageID) {.gcsafe.} = + let cbPtr = rm.cMessageSentCallback + if cbPtr != nil: + let cb = cast[CMessageSentCallback](cbPtr) + # Call the C callback without user_data + cb(messageId.cstring) + +proc nimMissingDependenciesCallback(rm: ReliabilityManager, messageId: MessageID, missingDeps: seq[MessageID]) {.gcsafe.} = + let cbPtr = rm.cMissingDependenciesCallback + if cbPtr != nil: + var cDeps = newSeq[cstring](missingDeps.len) + for i, dep in missingDeps: + cDeps[i] = dep.cstring + let cDepsPtr = if cDeps.len > 0: cDeps[0].addr else: nil + let cb = cast[CMissingDependenciesCallback](cbPtr) + # Call the C callback without user_data + cb(messageId.cstring, cast[ptr ptr cstring](cDepsPtr), missingDeps.len.csize) + +proc nimPeriodicSyncCallback(rm: ReliabilityManager) {.gcsafe.} = + let cbPtr = rm.cPeriodicSyncCallback + if cbPtr != nil: + let cb = cast[CPeriodicSyncCallback](cbPtr) + cb(rm.cUserData) + +# --- Exported C Functions - Using Opaque Pointer (pointer/void*) --- + +proc NewReliabilityManager*(channelIdCStr: cstring): CReliabilityManagerHandle {.exportc, dynlib, cdecl, gcsafe.} = + let channelId = $channelIdCStr + if channelId.len == 0: + echo "Error creating ReliabilityManager: Channel ID cannot be empty" + return nil # Return nil pointer + let rmResult = newReliabilityManager(channelId) + if rmResult.isOk: + let rm = rmResult.get() + # Initialize C callback fields to nil + rm.cMessageReadyCallback = nil + rm.cMessageSentCallback = nil + rm.cMissingDependenciesCallback = nil + rm.cPeriodicSyncCallback = nil + rm.cUserData = nil + # Assign Nim wrappers that capture the 'rm' instance directly + rm.onMessageReady = proc(msgId: MessageID) {.gcsafe.} = nimMessageReadyCallback(rm, msgId) + rm.onMessageSent = proc(msgId: MessageID) {.gcsafe.} = nimMessageSentCallback(rm, msgId) + rm.onMissingDependencies = proc(msgId: MessageID, deps: seq[MessageID]) {.gcsafe.} = nimMissingDependenciesCallback(rm, msgId, deps) + rm.onPeriodicSync = proc() {.gcsafe.} = nimPeriodicSyncCallback(rm) + + # Return the Nim ref object cast to the opaque pointer type + return cast[CReliabilityManagerHandle](rm) + else: + echo "Error creating ReliabilityManager: ", rmResult.error + return nil # Return nil pointer + +proc CleanupReliabilityManager*(handle: CReliabilityManagerHandle) {.exportc, dynlib, cdecl, gcsafe.} = + if handle != nil: + # Cast opaque pointer back to Nim ref type + let rm = cast[ReliabilityManager](handle) + cleanup(rm) # Call Nim cleanup + # Nim GC will collect 'rm' eventually as the handle is the only reference + else: + echo "Warning: CleanupReliabilityManager called with NULL handle" + +proc ResetReliabilityManager*(handle: CReliabilityManagerHandle): CResult {.exportc, dynlib, cdecl, gcsafe.} = + if handle == nil: + return toCResultErrStr("ReliabilityManager handle is NULL") + let rm = cast[ReliabilityManager](handle) # Cast opaque pointer + let result = resetReliabilityManager(rm) + if result.isOk: + return toCResultOk() + else: + return toCResultErr(result.error) + +proc WrapOutgoingMessage*(handle: CReliabilityManagerHandle, messageC: pointer, messageLen: csize, messageIdCStr: cstring): CWrapResult {.exportc, dynlib, cdecl, gcsafe.} = + if handle == nil: + return CWrapResult(base_result: toCResultErrStr("ReliabilityManager handle is NULL")) + let rm = cast[ReliabilityManager](handle) # Cast opaque pointer + + if messageC == nil and messageLen > 0: + return CWrapResult(base_result: toCResultErrStr("Message pointer is NULL but length > 0")) + if messageIdCStr == nil: + return CWrapResult(base_result: toCResultErrStr("Message ID pointer is NULL")) + + let messageId = $messageIdCStr + var messageNim: seq[byte] + if messageLen > 0: + messageNim = newSeq[byte](messageLen) + copyMem(messageNim[0].addr, messageC, messageLen.Natural) + else: + messageNim = @[] + + let wrapResult = wrapOutgoingMessage(rm, messageNim, messageId) + if wrapResult.isOk: + let (wrappedDataPtr, wrappedDataLen) = allocSeqByte(wrapResult.get()) + return CWrapResult( + base_result: toCResultOk(), + message: wrappedDataPtr, + message_len: wrappedDataLen ) - return true - except: - lastError = ReliabilityError.reInternalError - return false - -# Wrapper for creating a ReliabilityManager -proc safeNewReliabilityManager(channelId: string, config: ReliabilityConfig = defaultConfig()): ReliabilityManager = - let res = newReliabilityManager(channelId, config) - if res.isOk: - return res.get else: - lastError = res.error - return nil + return CWrapResult(base_result: toCResultErr(wrapResult.error)) -# Wrapper for wrapping outgoing messages -proc safeWrapOutgoingMessage(rm: ReliabilityManager, message: seq[byte], messageId: MessageID): seq[byte] = - if rm == nil: - lastError = ReliabilityError.reInvalidArgument - return @[] - - let res = rm.wrapOutgoingMessage(message, messageId) - if res.isOk: - return res.get +proc UnwrapReceivedMessage*(handle: CReliabilityManagerHandle, messageC: pointer, messageLen: csize): CUnwrapResult {.exportc, dynlib, cdecl, gcsafe.} = + if handle == nil: + return CUnwrapResult(base_result: toCResultErrStr("ReliabilityManager handle is NULL")) + let rm = cast[ReliabilityManager](handle) # Cast opaque pointer + + if messageC == nil and messageLen > 0: + return CUnwrapResult(base_result: toCResultErrStr("Message pointer is NULL but length > 0")) + + var messageNim: seq[byte] + if messageLen > 0: + messageNim = newSeq[byte](messageLen) + copyMem(messageNim[0].addr, messageC, messageLen.Natural) else: - lastError = res.error - return @[] + messageNim = @[] -# Wrapper for unwrapping received messages -proc safeUnwrapReceivedMessage(rm: ReliabilityManager, message: seq[byte]): tuple[message: seq[byte], missingDeps: seq[MessageID]] = - if rm == nil: - lastError = ReliabilityError.reInvalidArgument - return (@[], @[]) - - let res = rm.unwrapReceivedMessage(message) - if res.isOk: - return res.get + let unwrapResult = unwrapReceivedMessage(rm, messageNim) + if unwrapResult.isOk: + let (unwrappedContent, missingDepsNim) = unwrapResult.get() + let (contentPtr, contentLen) = allocSeqByte(unwrappedContent) + let (depsPtr, depsCount) = allocSeqCString(missingDepsNim) + return CUnwrapResult( + base_result: toCResultOk(), + message: contentPtr, + message_len: contentLen, + missing_deps: depsPtr, + missing_deps_count: depsCount + ) else: - lastError = res.error - return (@[], @[]) + return CUnwrapResult(base_result: toCResultErr(unwrapResult.error)) -# Wrapper for marking dependencies as met -proc safeMarkDependenciesMet(rm: ReliabilityManager, messageIds: seq[MessageID]): bool = - if rm == nil: - lastError = ReliabilityError.reInvalidArgument - return false - - let res = rm.markDependenciesMet(messageIds) - if res.isOk: - return true +proc MarkDependenciesMet*(handle: CReliabilityManagerHandle, messageIDsC: ptr ptr cstring, count: csize): CResult {.exportc, dynlib, cdecl, gcsafe.} = + if handle == nil: + return toCResultErrStr("ReliabilityManager handle is NULL") + let rm = cast[ReliabilityManager](handle) # Cast opaque pointer + + if messageIDsC == nil and count > 0: + return toCResultErrStr("MessageIDs pointer is NULL but count > 0") + + var messageIDsNim = newSeq[string](count) + for i in 0..o+v8~eet=72J8G>!G*|_cR{eGTv=JT1^*KA+Dy z&w0-CJm)#jdCqe#^TMa^f4NCXN$IeXl9G+__bvR5Lqc;&E8a>VPX3!deg5nP^YvZ7^YLX4)4UH3MdkR%@8O!H{|_$-`#+~opEtk$ zjCr}FLi(P+Qt`ZNA^2UIgDxp4v-mvvh;RCw+2_{Hz7TMQ_>xVE@7ERyzabXy-vIh% zoqygukKsamQ=1iEPpzWhcOJhUW_g=Feb&7B7tTHJY@1$)ujWO?w_q;?aNiD19<4~6 zKE3|Di{_qp=JdJeopru^=eI|)U-5-30)7|baJc!To=k*nrca+T`Gm>S5C7q@$6IZ& z`cXqD{>%TS-nqXDyicEg_W7RF2FF(kSp8Qf<=q$Cb9eWF=k)16JD*I>oj?7o`txQD zps&)>1!0KeDPu9RDMPHw)+YVze&Qt<6$#y-Y> z)2E+1bNalCe|Es!yPOPpx+ckv0>C=xn^4Oz;Q;xK~ zp(JeSO4$lYY>=`1x<=l9F&0UqDwJk2sz)@XY;dEGub)A!utVE2#savWh++&5$`_|99kV4_# z@fXjVKl^9<9Of6yZh$48(amKg3GlFo{Z7ZqN>0N2(7z!G3`t-}0z(oQlE9Dzh9oc~ zfguSDNnl6oxnBrqg_AqfmgU`PT(5*U)ekOYP#FeHH?2@FYKNCHC=7?Qw{ z1coFqB!M9b3`t-}0z(oQlE9Dzh9oc~fguSDNnl6oxnBrqg_AqfmgU`PT( z5*U)ekOYP#FeHH?2@FYK-4d7H1wHr98eBLf<2*VurCzpG`HZk0KE6~ zmXww+Z|>G>Ev zW1aLYC6G@(FMJd9TtcJ+^ykd=p=V41J!5b`z}N0y@8TMXf%N>Hsq1R5#RT%n=lpMi zo}Uz@XUh7}(~nyc{Pe8&Cg^#VNC&jngG^nQe9kYRryRF6eC_u7UQv3+t`9x0;f4sm ze5QXB^!$NH2gv6-rmjOi9l_OFGFnr{ktc;QWo&6naCL8Rb!mAsl)WU&J1PXbg*kVL z{cc)NSyH}mUoX2dv1$W0GngioXLSaf+z1n`Xj4$?}qhuVYy z%iBVGvzGGKcHoZpwmYH0T9%l5Ae8J8EE5gJL($qqC{jv%o1plj;A;36sJ6B*6y0KM zY5Bu_X8iR8tu?)+&W9nIEdKOA^BeGjf`m>%!)Cy%$$2C`|0Y)b%;%ew^lt-_fE<6K zjL!d=D(yr6Cl+}Bs$3gwqp!u>DFVqyE6l%9iCM;)npRFd?WyuHPM<1BZ()CF{i45rUH#<{5hvOI zD*fgA3xy*H(Ds+-fUdB=jId;^t-m~Uo$y2#G}l<=W4!)Sl)uF1>*nuNB9`X;D*T<^ zRKVZ+Kv&4$9+r%?@%PfNz5;(;pRJp}%ZT_Z^LP1`1^kUH!rzgWjJ5Ii$uGYGe?6bB zo4=cg_$%{wb7KL2dqZ4>?Kjtwu{QojeHH#H)`P#tul+jwJrOS8uNHI`@)ud7VqP16 z6G+B@;dmYWugW4`+j#tH>(}A$-&Yjy_cPF0$lu+4>*jA7$=Fc-rdq^npU$%GM{9S*|SKzPJB3>JR zhY;~swlCjrC}_XufUc0g5$nOo3jB3_yl(z3BjT^j-{qGU@Hesue@9v}*2do_aM;$_|3b0qUH>OOC%ie&gDzL! zukWnRnw{aq^5#E4e)eArS-v8)b5naMnLH~J+8J3Hn^hKyPD5O8Q}K@@_zL!wuc+I( z@yjj*cYFapv(2-Px?=wAlb7ZE+eh`an16c!-F|qg=jybh)d$IY5v2{rBh(0A*KDI4 z!O^9c>i6i>UyW7o;IS|w6e*)C3s(~VY`jqCNA$lV(+u3{1zKGjUN6wsB#23{1m;O8 zN~|Gn7Jn%;Cbma1Adhg6)DO-NIgglBT7Hd8lI+AKu>*lI6EZW|hCs@jOu-IW$>3@5 z?8X!CoQ51(AySWS8ESuHc&PNRoUTL(P&{*T8BvZ=lqg;j>QB{_w{`$&S50q6-c%@l z5Skye7uJr60}w_^&7aAWOk-O4&&p@2Z+_BtX|DZl*Vkh0cR28x=ZPFG#D+XcD#9!j zab5G0)@q7GhRp~K%?+GyKozGUgo-)Tdg$|b2RTrmD{R(!>+=zvU?Xq7RsmYpd@$I2 zu5ndL_zQe_2Sf#8Ip>QsbR)ps1wDD}5)ohvUT5j+5(o$*u_#v@b;TOOW+QX}6JsyX zIa=!>f)gzj38o2O&2K29Xg|Jd@SQx9iIalq@?VJ3P35E*d6StOMY%}x0_|9>huNh4 zo{2pBgcMud>rk`tLQw^sTc4KPJ$gdznbJ^oKYXO}UtmsHVqT*HjUVoVt+lXe!k!gr z{<*De3K2Fnq_!#l#a4p5A@v05Hh;MtD9kYAmakCg{*+AIo9Cct!QB1B0|ERPfg6`I zyCmG-Uw*Z8EKLyFt`XXvBJ5(qMg`R%`1TdP1%yr ztiOh06Y3Gwu32=*x6v0FvzxYzL5@ zel|zba^^!4-%rNUTo8({uP7$=NsrB|A`e8qB#Q;EHfpb3Cl$R-0y)1la?Kkq?G z4}_79v6@h$geq!U=8qI&e;{?%f{82&m#Aroog@V3TZbzTKn=%|m}oQep&O~}O_*Dg z=Oc-xsUf{-`IVw)NAVl!@+{WQZ~Y$Fcq1&eu>9e4Q+rkU!+(vu3`+=FK16W{bbfUv z8>Vpwrelba8cU^%G*2Z3NUmjau?m`4!7VZ}C~yGpB_S(7HHiL2o&}{nb+or?ho9X5qHyaW_xYU zFKzQb-wK#_h^%ornbZcis=)*$^LB!zq)z3+5%|yDErCKnK8-&tq_GD03TXW8e&k;f zGn>s!K~F_eax~M&2en5AlLg&z28-@RkXU^N4T(Vsy&zhfG#hI}CyJT(J*BR|n{hRb z9Ci*)mp6}Ka^uPr9;ZEJ?%!pTlJd=5yeU?FT2}2oOm@-n+dn>))#t{i;rd!^e7X&j zN$_bjeHlImC;a@m(aInXEI-~H-f@krm!?($z!6k7HpZTSl zH$|G+s|qrsZts_hw1>vmV$`pd;c+fYFhI(NH52fk#+p&XIg+Km4r{!?f-+cVPQj$n zysU#ZhD3RYPm3?! z7qnQ9!dN!}3}Ya-E>3hr$CR=%DEZ3DeD4cZzo>r|sm);QTQN`Ci9Xh;`dZA#`V5ms zFr8363+(S8g#eDM-OQ!XKvQ>USTHkLxCnMl?oH+KasNKxr|88Ioe}?0THYT& z&4=#{W>A5sw<{OwY^QWhVvHz3MwKV$Z`Pqcbd7qhS;Q|8kOW?D)z=gxFP#g%cp7+P z4Q=KDvhaPjuBwFA=ymYqSW*xRobE$$4L!|RV6jVzqRwc2pSj^JL9+ytfjA_Ir+DUZ zJlR(rs;#_o8R?6!36sI@VrK6En#87+b@@HS^^XdXZ>+lht@ZV9k9Lp){o5*=rG0!o z=4)p^F0@sg_LOUH`nTIEnxg9!GkopyySiLI{;j?i>&IKMwQt6M5F+id7~T~%kk}Jt z_|F{v2e!q?Rj&#%=olwL-~f-<$Y#MCs>t=YSfI*PrKVRq8QTe+(zfd(=L@bR^rOcd z4!2dXMQh=QhepGYW$>)@q5PMF$8t|7@&eqxk*p*(>M_Y^pPXcGH+TOEm{7|lRJK^) zI9Ey*#1`%j5Y*FGWc6=zmxV>W`7r7L>nf%yl!xtz+8!AH-dOke=laX%=Ly>>&~|~o z790PX;K`Y9aokX)PVXVq*&a|&TL9S?BX2GnQD)lS{BTAn7KF}>TqPC4y^M`~Q(ueJ zjT#eX7dYDc{VgKdBUyE9vOYx>%UR!G}nSk#H%;wn!H z8as^dDtH=tofh++l$w)IHl#?8-&^S_#m_2v$QC)kPO`&Ggg70Q{d+v z@JJt*EUjW(eXVerP~iI=aE2WMROPr-7u@QXFbWjPY+adY2dCM;uP--ETIVrZXRWJK z!b7>HbKIP$!22q2l>^>#-Q37(a~+J-ROmiLd&QS%A4m+Y zE9D@jAO>{;CaX?y^BCs&(2xgzEv@p9JP=B{osFQ=7w(@!oK0ge)_-#2!?b^|@Axp@ zK@J=rDs0wzj}J#Y44U)eA624(8ZYa^SYSevYI|&#;|vCk+yf=oCHPFiykQ(VW%f=& zH8pIYgLB&PC~Ey-j1h1^?Os7x>|vOt!MAN}7yIcsHxf@`r;C=rJ?ydWVRxZ>_)9nl zZhHqt6Al5T(&NB+6$6H0Q0(G~&taHi910>VIv<%KGKmFVor`9U1Th2!Ues5HZc@Yq z-=zy8h&3e4HZa2o!$_9e!clh!^fXCQTR5uQB}GU5;yR+821Oawq_4DvDQgQeM9*() z3o}J+;r`dKnI;^~^3hSp@If8kjza><=FGzgATt34-baD=b-*8JI3ShZp}J#&c?$*J z(gC+yU~3*SA!i;ktWV5?v=Z##)H0!E-_Ky`tX$U0%UN3E(q9QL2|mcn4{eP(UMk4T z!3z9K1^$%--nl3*n=5d=0{`3rf5Pz*RIiJdIyDR(2bHcLBfrC}0FCl(t!^7v-7jo) zIYvg3kvaul^Go6SQ$EP`$rd=jQ4Uw&R~7hQ4tTHiWdsh>)Jny_zRYw*g_(=B%1d08 z%doybP{VFh;8PX&GzWaO103_~8>UshdaVfi zUwly5tFY#t$IK>dnU@y{=PMLA<$zaM;CyE8R^Z<&@NEwGmlk-P%uEC`HA2h_-(62N z`>s}bs8(6ysvMKY3vz>M>QHqtWNX_@Wi0gvZBjiZPO@cf{cA|ikrt(a0 z$tN8TPNTS6i(1IR)NDbA#bX`8AQwNg`|~lU8};(~`Va5DWFZIo4_!73gWvkC2X695 zP?qOE)a2wJ3!F4l1d)bJPS96|bTBr`7@0xQSVPL#^}w$ANCxDd4$`)r`RF~)XPDWv zvZi2t59@y($wkL&*FJllk!zoa^|eU*n7ee09MCrEv)eW~g9J5ju9Vj%es!E;{fWj^ zap4M6s0d>+wdNSK?lBS0R2#5nQxAO^`BR~%wiU12>1!NfT7rUfCE7$xEulzr9Vgm> z;uJ2iGvnXQ5H{mbpbVopqD1YOLlGllNR;ryD&crXa0NF=hFKA_MFC@h4{Ua*Q-D^AYmByg-|5MMJe;jLK2b7q%#wh0j?ps_1|Lb{+n8IIW04L1TgIPZxbn z;B^cRt-$uB&?1E)zzPii<{l|2QQ^Y=nZ!&UwF9fD{iyIFpo)%c#N(J~;7WOnY+@p| zIm=hYF_Epu$}}S~Wo()GA)TcNafQ5-n>w=x=hMh>kPQZ4KJW6C#+k)56PNR%!mq13XC`kJd zXZeP3NLSL#+Z-#yRBT;bE)-R(H5Btt6=^TY>r_kL0y3bsh9V}l1(&Fy@LPk{HK-iI ze9}U|R?s>jQObYHCpS7onq{dns*i}S%c6qM1VDSzBuTaQWDJKo09bpnnZr*lv=MJD zVl5AS7f2*}v zt4?u^s7r^KwKldBkeo35zk8S@*vu+;UuD8$9sAQ`SYPt#FBNfs{^t6t>SiqP_D`fn z_Sf^Z@?!mU29|crXWFMY0?mg~rRS^idVU{>UxxK!4p*9wWD6Vl1$=d=>Q9 z6*%lR)gK=f8AyLTM_<>{AE#l@p6Q{fSbKkb>m=8dzCo_+b%@F9k6)au zFoXBU{k3^O&o|T`_bgQkY=6AeQUE!+{uqskzPG=QJxuUuw8Mbruh%WlYoLPoy5(|e zE71D8B?f4x(f@u|>9k#Q&m5g!yKCOQ5JHbmxC0L}$A}6Q?V8K;yXJAZ_8g>ZUVRxk z9MCmiV%Mp}Mo6Ek7IsZJ_2q~&~5o8Y|aTCEFT@!$p=T1jnVyy zD;M99C_<|O->txZaKNvy*#Vp%MVO_)S1WML0pDwZb2ILB2Hh6zww^(R|6VM-?5Q=5 zcQt;`)~LJ`1QC{NnT@r~Ci1|Heq$d?UJ#*GfwPSwtas%B;8&;t;6KMw(I7$vI{jz~ zBHTT;SPqC;$ZLh?@c`%CfPhsyIg#|^+m=5V35V1h5tBPZz?ofpQ^443A_>th!_0|_>QagaHaJ`jjoi&Wnv!5j_`VWq`WhL;= zwb$)gVQkc2Bm--&1T=g9Tua%t*O!j7r8a2owXar4E4ucIm2gH7X2_Jx&Ck8~$xAEO zH-2)DgB%z?X|-99_WH$7I&Tu93fAW@Ry0NC3$g0Gy()^tI~rGYkxe}k`na|l+}glg zeeFiO5P<5G0UX0GA7k7ySLlSHhxvCCLoD!JTck5c$)Uxuv3bicH!g_;A8%@S+#Nf7 zSCB~xVB~u1K2KFD zF=ui67ULW+yvf;3;;rOdAF~^uqi3V`u^7ROd`!yLd*3NwWNNj?-Om7M20=06LxEW9!E#*&PQzd z0#^MZiHz2R3(Pfb+6qaVP^Qo$e9(6&G-#UE>Y%Sx=yxv@-0$&W@mwT1N{61p4Wlb3 z*sL;rW+P7c9MV9-y<{lLW4d;d#?Ygip>^45V(qa&PNTq`IIqA9%$0;^KGo($Wv6Q> z`jA9PcCqtfuUQz$k@*V?+YbJ5tu5Tt(264lj01z1*1$QHG9WI>0lCO3B6oz1Z<2y~Os{G@p*S*SV8*d-TP)t%w5rA$zqINXjo-OW)u4SO!e{(e>#{}H@$5ITz+o1$ zGx)Kkw$F?Ofsx?H<}$87NCX-#gExM-`p(dzUBL4BF{0WT$296QMBk7$S809SLDuIx zXD=QPWb^~1cLrDHD*tUCD_?2)S|$ zS(@NJV#?dbl-~=ycJQyCH?5j#<$sb2Aq9D?I$GpGqSB-s@_;fx9!Yai9}MC~N;I5@ zV0u$-*r5tMy;|t(Vd7>?^zGo?Q;4ko^djJmPWTKD^GEvG(0tG6`y3J_N1zDy^JWOwiY2(~1-)X-9*0(O7t_!$DzZkQP;_hj~XZdfJC(O)uN;-lm3o z-GI42K~N$fj8^|Zc{qYRyh~ph>OCkAYZ$>07sgxvLHmoZ3YV?Hm`4a9PNwX4-kOyq zG3f9gH^TPhZ7}WeZ7}`Ue(2;Jra_$Rs_3R%Z-Z|d!KPW5#s$J3cPH?>!<4xYPaf5W z2^6~XB-ED|=9=?!X|cI@n9p^(Hz>DYG_R9OJk|Niq6~U%LyQV%Cg{5(-#CA(>za^b9(gXQ*AAkvq9-Wuc-sEa>X+t8mv|Wu^Gui?h2NgWs;j*!iun6({z8i>LXkU?IL2bL^Y>H= zG#eV|3}RI(uc5!LBag|m;Yub5qqbvzVhUs?{MwG`sqnmGm_a&joaf0|pDS)G$X+6I+@M!1LSY*_rIb0)+ zRloF*;B6&dEFoi}5Bh$i^&*O;({ZzuOOv`sJ#RfSTK#sN=-+?vFe6YbU;i}T2D>Bi ziI_GI+cfH0%Fg*Prl%-RY$eV) zeW(*@!b55oK4mz^PRfWJCQj|DX?@FN3@u+8Dw6|mxDqM_EfP6={lr!1RqhF?gnwZ#^{mW;3MwNC)wG7!WU@ap3vS^WC6v^ zC2q%&P;BjIjkRy%)xL3lVYRPVaK-xjU2ABnVu1$LAWnArLc5mqKpL!Q3$LP@!v5## zTN$(p5DOgSune5fY(rNX$z5t1v1fKcS*je{mTztkzh2r>yV~3Vh()!l@m2nCJK6#j z=FMmP`d8r;J{EYYW>EdRjeaon@3+e1jSf<5I818e>s%MM$5lho;c4)kVF8KOG&NwO zusVq@K>s@>9%_Sjqz|c%-VVfqV!vTFo;ffM`{Qip&AGB{!%X%jx&{E24cPWRuZZSTWq-J$!5EW7tG z-^cDuOY*%+a!+X2e!ekm18nzcD*H}bsC~`GIr&XVbEIm6SPun)M*&t6dhw0WPF->l z#C7fA|Mp8$f0*6eR9l;NAz6F#n3VvAhLNnJN>wNt0qD<4?KlOcUiU!*I+jNN| zA=~Q3!Yn8=-(p;l@v{g9H^y}+1U+y?i=V+adjTxJoEb`NrR>5HSuon^gUnt8VNE4i zhEsFoXqc`_h$peN2VYqPezb+J1pH{ik5YKd3g*DrA-CHJwEgumE?h=yyIcxY)Kfby zs}O^nFH~xXo!ikB6*eU4xp55WK*iH{K=m$!4+#waE6Z-P0ktyg5{Pi!>N-3km^|hFccG3FNk4QV@+n?Pz zve@B~RKWfi*Ink3Cdy5=^CG;qx)gMW?Mz6tP2zLOaxm6<5>=b0lFt+_~8P zC5+bxs0?j2<$o1M=v61cH-UBYjVdtP@jWZ-Sl}6b<@lZ<3fSEqAc{3~nenKJ$+B@U z7P!ShHdVJ|5V5p_3J!vn^pCm-DTJ-US11|?oq^BjM65;Ki&ADMrXm+1kP=4XOUw>$ zZ(QP^-ApMGZ*wP55z;ij1-zAW2IYagFwR-35Sh;4s}`WoJo6T#L$5*y5a}qQe>*Bm z(*6gFNQ$;U*EG>mhq9$&fo*+|a?>a2qb`y@bEhtV4!BS!uYdLd&E?fnA^n@Mz82H{ zyWqmua~xgQu#VWM9|<&!qQs3lA039|WgEewOcv+y$Vj^x557T752)^HMKpx@V+&$AwMf1cm#InmG|83?ojv9Pw18RlfwZTK>A3c+@wMl6Y9y(%TYXpB zvzX3)^uDxbSCyZFVU2ZctB5>In02XdoHJ3je|q|(_esUHBKnB8Ot4*MppSTk)|vXf zvIVK&f`>)4|JFIYjTzz`s>;W-9a6V5-G9sORAiVc)d92)oJEU47Yd>8oYM~Ux#dta zw|l4VRK7C+1TfZO8sAU{-S4ub?oue){S4=e=3KHs&n?|JubS7j7#vz^8MoxUEmcw*8{p> zK>8(#QLb{WowJ8^IsMZ1zE_!wgTJK*2!9+d+t4Z;o04d)Si=&t7)Jz{d=}kcFQBgN zz7a|HFL?p*YyzrxS%!OAa$+Zvb2Kjlr%N0xrk(4hRkCiTou_HGEZe&6d`*IUr4`wK z+vZ7HPUeuw)H1{InVIuF96dHn&{oehnePaVusGtgr=?zO;xvuQP#Q)GQlamrQH-#JT-FzxXr`-p72P_NVj*>(dZ*NhH$S7e)>$y#H9sXoZr zsuT<|gL({ij}SID)ANt$&fh51-?z0tQ-5FBZ&3YRniU$7GgLGnjr?-VX9vU)=pE?< z<+pM23;=fo?;;=?gma({(+f|9A&I+sgLk>35o5J2lC!+FKqHNSMuWYQ&2;abQC^TQA5v~IxsaCarJ$3O8H=ZIdoE_EZjS5yCReiTc*n^G&LQ`ba;}37J_$tN zRcPE>;k(g_z9}8UUFOzzL~qa$y&mDl)2TUo7YqDP4IFjoDeYy&bm+GKs1CisiXoK2 z=RcVIjBt~m9h8QG_=`O+}2IBf=#n z4J%9F*rH(UKzX~SH+YT1DXVyl!5}CI^oKf^)DI(*SkT!*hSW|8jsI2$CJ~Wzj!z;{ z?2V$!Cq7$Z5%W5OVc-@an7JAQ4yy|4m{1?)B4)YHSrSo2hbn*))n0AUFC%@SNeD>m zF|#9y68SO7m$Az{N*FVZvAo=_^Tf420K@ynS?ZUP=ypZv8ex81Lw-aeH^j01$Rh0c ziMls|!&(=Jr2Z#<4RjsN7eQH^h`QN~y0xk^C>sD}cT7zpINLf>58|$g!WJWIp8cR;D+iO54=J2hUrQl;21? z!*tTrxQ4-N>fbW2Q#OkM3yXJ~OGQ+=fz0Ow$fhv1`F1*wO5CJ)O<@}!Z0Y%3j-Gnk z#uqTcXm_cBu$yxL5Ak%7IRh2vH|H%m2)NmYBisD(4WMvm^8EXE{Pu36-Ne|?|M+xQ zc`fFDJn*{6$K7As<%1k>f9*l6cCG%0zy64`aIwJgdr19hG(?IL#(3HVIWyjTfYzTn zluROO!E7`@k9l@q35R7+Va^4^Av=h^Qq?E;p}7-qV+BtHoq@SG>bW;&(mlJbksPVy*d$4#mcsOO$EOrHRTTD$SI*W+WgWBvxE+G9kB#~|% z59f87za!mDCk+}{$Xic!`=2y^__w`mBgO(vyALYES+A)K56HH{JFBRciT33%*{3a4q zk<GwUD3WTZp z>{{C$+Ii9+YIfXe&j5L*KUV;#7Ixxr%QNn}xlz}XSFh1KOOX}EvLAN_wX(`DP()lH z?)wUT#yKRRiE!%0ibX;bv)8c)A-_!XDNcVS zBfLu5TqT=2&{;KAAU|%sm|2$G%{AK!&H5z+<<_1VhP!?jV2BHqw!{1Y{R`#}OU+2d zK|b0-vn~K19gz#FvTxWb%JZ`QY;J{|j^H(vS6kzPDy|M|BS-`IeL?LL(4VFS_?aPV z%>4j$wz94B`KcqtMf5=Vkz9|TX3Nhg#nFZdUYV>vLE_(*G?^@e_YU(4CXL=epWV$? zzny}iVYsP2822e)(Yk1Xe|b9=vQ~Uw45I6Rft~HVdlVr%x-VX?v^XN zpaRthz!A`8p~%$!ADC`j$?l&Q-|*YBSJfEMp3U27(DC5-SAYqo>S!H!pe1Ol+|;$} z7?e-HHNeX4R$dT;AidXM*4 zgIiKHkog0ZUKg7IQUh%@qrnb_D0b1V6EztDb*Pw5vb}K)O;%Hh@+Dbp>0$eIot%#a z*p93Oo1>Zc6PLFhOUTk@EOd%1cVsh=4)crHQt+0L1IBJ0;?;Qw~Q$E1&WT~ zEd|A~(=39sBhmfg+Q1CbMni7(;hs?W{f|FS)L3>&@zS(V0yxaW}UvM znTp1E#smAc7Rd~UL($?z!Nq*u(i^H$SzZ}7`Lf8e>mZe3mz8DGlVx}bT>&12(HnM>R)k525QYPPyg3vKp)$P7 z%8=de*-+Dyqvg^C?mwW7i3D3{-=eiGl;QnE4HMeQi{T;aa81kdD?~_g5UIRb=kk!d zJt|G%5r9IwVNvh~KK=1Ox0dAzZycb_doPLb)WYQA(=|S4W0p#Y!rE$wL520v-&I&w z=Zsx_kNG|wn+R(VJ@?{?bvgX1+?!|}^wF1YZ`)?z9Az=;uuX#{}CZ+P;gflld{ zQqPgx>XBj0J51DAOX^x?$R=d93m4l0zhpW>)qn4+IL#BPWn{!%EIqwlo~aZzr-X=5HVHqO@Q7Qh$xlUn+t#=4s}VyMh&V=igW6 zwWm&YATiwc{N7HOJ~nalx_^FLm4oMcF1M}5sxOX`I8H66bz|Qtu2a?9hPq9sE=<8_ z2?bRH&qsOn+q%uKq^|&8%M{c$MU$DqGwvO2(H)BDy(egqFp9JQ1W#NY6{Uqm#4WFgZurB#pPi(L z-t3@57EWxc*U9;>3-qP(i=R$UlQJ5{yQu&e&|MLoX7b_4vGJwI^)kS@8*6A)G^8bC z$An&P$&HR$%?A~3H#85lA53C#kqM(DVZy%^?llMZC98g@4|! z*UC;oiEwtB2em}TE0GzzM22--i4y8ixuM-RpP!nuAJ|W&-H~I*CtFG%PD6`Qq{SEC zI{tYuiR7J;40`)Qodlr%eXUK*R|DIPbfDO&_ubin0&Vt@LdlwvO(gce;|BMo=E&DE#1dJ+Opn#-}NYdW~Sg#!LX`M}$!OSXN0Bs8?L3!n3 zfdXU?Jp*LTUd>QH0aLM7f#U+PE@Xidw036u_3%YWmKzdqnxAt)(Z-pI-lvW9uf*hM z>liD=mkopb0NA~=@wx3Zo_(x<|9E4goX{$AzlEMRf(w%~CaXMS^5$kv3xg@v=o>S} zq+v{cLwc<-ITra)+=MGaBPKsgt#gUXn2o0Wp?y{>c%9l`j!JQ)K*6w?j!J5dWrUVq z5@ZCIa9Zj-F*5+BU5d>qZ{~xi0p+<@ za5C-q+sZoKehD3a7pbM?_?svjw9Bko34J*m)VVJ6nsTQ4k~4)G#oHG)$o@1%DkE@k z2>8pDpAHWl{8#%sm{rU`zj$2$e44bAvgqpwZ$VeGFR8*58_8+%pj|KovSqQa5aSD6 z+0W}*zqH8K0CeE^C<6dU`&1DbbF3~Yi=8c;Ld2n)qDc}{2*x2Gs4MzBbreWGBN9BV zZeG1fPR3#6fNp|Y#r!oFYju2u24Gf$a-S0j*QdC0ob0fV7Ra2M>tz0g;N=8q5Sf1| z01W`BN3Vcd-8Vo&bpXl!h;X1m$24294ro^9a0f)@dg-(e<0*Pd&DV-NJ)(+=my&F= z(^fCdeD^8QTWYD_d357}y>HR4zxoqme^#SPo3|=3sLdPqBy?DQ?@hO6BzJ)p=oUL` z_e7?M1xbiAoWaiWyil86;z0NrTVmW2hd&m#E2IK>t<{+BPSs<0Comdpq6N@37)6g>W5cXsyhUd9_bh!z?_q>g47berYQn>3CRUh`;aMLBRKB`y{^-QEsze0 z9wBO*b%{;Qvu+BPi<;1oVKijMoPpRVQ2QFobAOJ@(|L153ZRWE6R0m=-D_ODZ$^Q! zHp4{vZBX>r^)(50h=Bf03QX}#^`R?(7s;{~C6gY^?r0we{}JNHS7{M;Qcw?lln@M@ zUkMdur1<~OA0gfjG`ksPmo?^QH!>n|DI5Q+5P7iA#Hx4VWhij{TuiaYY=ey}0I%@> zei@AgV@;1iYc$UvueA7(|L3ClRXO=1v|M3FE{)Km%p)k1J(3c0Q80Rdw2bC2|3q~* z7I0Ry?5s%b2LS3u7R1}oSN_Pf4LXLq6JA+MWaT5vB5) z2Fess`h45Nm!o1NKgOD3fgKzqw#=`nK$_X;aiPo*NG8#E)+q2TS_9E$kRp^quZ{VV z%a!>P@0BH%1RF*-&qB9NJ!>Bj?Qs5wTQ7_SF4mg5K;gDZVFs0oc)*Jx>A3&sB9e;a zJ(auq4Gezw0548-Ea6*1={8*qGlhr8sVLWV|FTUhE?$*R5u*NyPT2#FlE$UPU)LugU-o#$ce@Hwr| zjQRi~!>{3bvw$5*D^TsOwEad+KWPiQfR$L-0-t(w^7+Pa60HUpd}JrFhXB`9rMT2l zj5cPcW7cuZQXL4X$(vkb*Oqs+Aa>@_4M-_6%@*mXnOd5y;78td$WE#mXL?1dI%J|k zPq30?WxLYimeW+Yqd=|{L=(HA)`dIba;OUTwp{2**t;QFgzSC#rrvzKc)J z`{$@tN^NYgSmfl^Wf1j6EbhYCQY5<@tsD3dv~r9q7PyAD0ji^mU2!t*;s=yV&`##3 zVt6E|;tGXXI2O2bBQX`|8WKoyxsA-Vv87n`qzeetJQ|f!)sPe8d+6YHJ7J`&P6p+u zSS&C+M~RJ2=_QWUVKR2{DB#LQ%aE(%qmEiG_$6pn7i1eomHN&t#4L%TG0{ z(#sEH=k9kAU5CxC?K87KDQt&*pozrMq`dz@ts7f@Dl2urYF>kn0+ru333-1g%Gk_o zNP|VP-D<|-GAoG%Hv7yrL9F^9%VHVUo4NKEKZ~W&obvAqz1}5$HWOpj|98H~!?{}$ z_Hj)SR${+U1Ivc00t%OF8;VJ`OO3W|@&L=B-nmjmpzc$r9rnUYse}OM5;bGA6rHam zFV_nN(LPw}h*iIRo@ikOfT%k$zF09{;IU98Vi-1gwA3C<7gRl!Rof|3T0kR{xo0eX zp+n(%j(NKeV?qt!;RbSS;n*L>bD;kh3w&F&rk z&DlxL4CJH8-}NRxDPrSS3ALY0$^ZzGa`CHc5OYNN45X65)3Ba170=ZUkHpAw+i>g{ zoSZFqFwU?CHy8jr4DjE{fBOL?yuoL%whHU{zFEE_^MtpyMWpSX7utx zj<{juvo%}UW_tJRg%3a`@4pL31{7lqEOb6`62MHFrUq@!axqos4{(DZ;9Arq--S3A z_EkJjfExq=3bMb>PvYJXeSw;+uuL1NLyOhognuJts^jOVC1tc5>wE#!o!u7y5v^Y1 zQr(~+aJsf)s00~2yV@Jft;0y6VYVV3Q%&NX3+%yejXlqSED8)_892}WoitDl?GIt- z2He|h^>R8jR=rP-!W(tre)Sq%kuP7`UQ^!M5z@JD;kx@>e?kTGSV5EANn25V^;Sfj z8wY8pvfR*=tYEr^)K!1&y}hyOKmAlp291lD48Fi*=r4>z5OUE=tU3xX9oU?G9>d?e z*I?+|!j5n3^beHbdq`oYtj+)qOpjTt#d^nw8_wf!hi+D{ zqZ8*(ogYazNkdUnsNX+-8kRtJyPU_(?0iSAw1`#zc8+U5_j9I&x6GZ4lG$EhBaPPV zm$8P&*?zI=lPv~#(Oy523#H)yNuKmt&Rlj>!h!Lqpm+)?j#a;Rw&QP7u+6H}SZ09% zo?A2D`wTKcNA&DQ!TQ9-z=n3H^Uq&r)P&!`PVELrGq*h(}Bif<& zZLb|Z1`)l%ei!qZ0NPx<^Aq71L9|Inxg%h*3lXIEN)|SbM9J&DmZ49P+7VnzF>#^C z3+65D4K8&x>|%lcD=65cHB|$TtN2TVYzdJYQDYF)^*`B>D}mC_EkQD`KJkk}nR?ND z;IciX5~3&^5cBqf#R3oM5R!sS$NyJkT5K=a?)O2azn8@i8Pn5GlHgdNug4bQz-VvC zd5T$<2XD8nOr_y$tn}r|NZ%(Ty{~KT?8t`#rT-$}?8Yh-8SJ-(zM3f@3A|19cV6Fq z5X|FoOq%xz>MeS?DgMA+DZ1~J40P%*$sf$Qs6>Ojc*+dxKV0;Qa7;Hquz+_vr>&p!R zG9DtV+wSZG&7V0FpjnxAaj%%$fzwq0^?gFsC^Gz1AzdFumo5MtMZj$c*wlb?AtOD`k(Df{?XJ5~FIDIS@>9T_3hnJNQ+P#hhy{*ffzDtY57-m=4X-w{&l4ixxM0AJ^s^+KzQhNU zGMg&Q62NeL({s4^;9gaXG2Yf9e>``p3<*vTxWMV=Hj`@mtg|(m;&s~;5#3xtjWzGx zDI|5FhCaHbJ;fVnej9jtQ+UCI5qkp_EL9-cT7pS*RrcQvY{yhyJEnZ?c;(9|+Q=F< zc=P8GEcyc$wYCfbM=K$K`vul6AjBlNOX7*14KC%zQ~X#uKH=-=PG>7F>*K=hR@?0S zsj8emMcH!k4aeJETwHt^an?}dq`ymz-TF(NGRwmu_j;uR^*7*89UIg7B0#lVM(=+h zNqV7op1o;Y#W`{z3Ha^9ZeM$LYkO{Yht!`|DXNQXH+Ew{33g?d4HpsjxEal4ZB+Jk zQ@l|ZKt-}wv6zZA1J|qDTuD1cgmWYZ1DunybM#k)c434j0V3n5gvAr)6hiA35nCnu z+>(Mm7hsk4z*HP|a!L8s)=tJl8Z2{bCg>v)JcHjqS{!ah8`0R_K#8LXyHtb@e%8+5 zz!XDD=$^@E-Ol z`}Ju0?15UeyI9fgyrSK{qCa8LHLyOI8Z7|FRyERy=;+d-0C;-m9PFeJOUlPJx9xKm$>m0!a+ zh>Amh4CPS;=)b}=aWDAJWJ`a0#{NzUVwf`kW6tanLeRFgtz3H71>3Ide`wTfYwC^Z zGKDN?sfTX^@~0IPyP5?=xd{Pz0dR!CO9WUZgpkrnfO55{&gdqy{4sGV3r_cHnTS$a zOVz+yb|LWoS_`vLiv&NLmb0>A5@dRw1cfS3f|IeCJ)41mF{>x4VmO$dhePW0aC`wV zXKxZ54I8MJPqOGt7VVU!9lWt+piU17q0#H5E-}8H=5|%oO3;IzD-R84q6iu}HjWu= zXB)(XogqSJpK*1ljT;sp58-dY>lWYHX9966BCJnIb|Fb?Z0PI10{)2Re-}x)&`h89 z_ri&8-L2rTmSs5_W4@4`#8T+R640@w3a?TB9!p7gpqhFfG0USQk@5CDICeh&zbWM9D{-po<{Jg)4^@vmm$S*c zJ=Jcjz@{JQCbg1{3{B>%$-?BTS>+BGCUt9le1$s7c??n4BbaStR(PiI36;eLpZC86 z2DV~k8Vrqak-{^Hv@`&qANu2{X8!-sA_qt@Y7J{>17I7xo=nJByBP9wXW zM%rWUkus=#7)LSrY?0pq@Pvxe-5x_(j&HD)tsv8DKlghWh>K3s=+{IDs?Us}G*##F z{7>%3&>!FKLyh>up=r!WWrE5x6r6I_W;%lZK%>w#zLeT675 zGU%d-g)_m;ZbC!-RiQG)EKb^496_CbkfLnGn3TOqck$Q5CgsCL1@QhT1qWHCn2!2aCdK}t(YK8V8e{Y_W ziw{&edoQ;1LtuxLsid4}z*SefYERbnEUNtwSGywMQ~vOOjZ8E}Wn|{x5qu32Kskg{ z%fUL2&A!$fe9g_?H&;F+e<_#Cip)3c{&IWU#A+Cq8{Wyqjhg;tP0ql$(TW>^56OG8 zj#%JiAEezy_X{s610c4Q-8%j&Y$_6dg?97`;MqsujcIMJ^ETKe)!H3n8P#R-+(~V5nRn4pYDfn)x*%n`G~~Q zHqoHsX*s^mLu-d7$MLNX3&J+ERvQp=nv^bO;aFgdD@2n9J=nE}-Pnts+bC~(BY=aR zQa!PS@(i&6pA_=Wjo?IK{_uMz7|M!Kr@Cl9g{2L1AR0y*4eMpOZ0KEo7pqy_3;9{&BxB8~0Jp<-b#3z| z@DLRZL%N3w2B5zteAOT)*=u-h*jSs5cS5bhZu9MTJO9Fq3V0?_pf26?Q#U{ zwZspkN^U9Bw>i% zCMAsF?7j)PAF~`daAy6)3u;vebh1@OmXrkiaM%^Mp{^0!s16!AvHm zpq#_!kx*pDs>ryTd_JUDyq*~@Aa?}Gy;-5!c+0hLRcy29YpsBsPsk?Oi(f3_vj9Bi zMSPgx<8U)_SmozTb#NFbCwe>pY>pyL0Me0BhsVa1DJ0~tNVxM>UC43v(Tu~HJL&9h zO~S1~xy1;(g9&OwjN(1XQ(Rx||5KPA4g5^^f@SdfQ++iMFO4cB4l&b>ieX+jjf=hN zSEcZTe-lh+Wlh|htHq^`&Y-rdo4fgfs@TLLARNUHynsB|9w;G6sOd=*rOf7}gX1-h z%97qr0j{@m^fsT=Npb0pk+mN*_7#^c7*y_IP_BSjJhTNbKH!k&tLQQR2bSNh_l39+CoX2u(v|*L$ex>??7a)_ShPYQ^UB6O&C`-r%3~HHW1xJlMf9hn0TqCMkGQZO- z4F#mYaoWhOsZ9)RIx4$;<13acn%2PIvtCd)JNTcU7b=Zc!VF#l3fO6GL0eH5faH{$oB2U@76$()d4k2n2 z3s+`uCt#R>G6W2?iCuX%vCC&MUcmsC4YFv?eS`3y0z&pOke9|YBV>AWWsWF-??Ewg zz#iMDLXuekMmgCq=;TwS@iE_;IYW(V3OW^q7eXlXx6)A%cqgIc4(frtAr$Icm&y2e z`vRlehW z2?38F;07C~Ll9KSZqA~9X>k6BT&ebI>r(<3X0-%%bub1D>caJWYg3*UUOvIGqc5FFTMdAF*nezL!x3H)5 zg~pfa{+m?6UVt^tsOMl+v{Y_3kSy?;UnJC4glcL?7IX5Gc}73!Gx}xd%2}SI%4xEb z33e#JeXmb)Sl{v&fbvh0Ky**Xlrqee?B*bEL@NAk@9&bhpR#BiaA0@?RTJ?mLncG*NY2A81a9qIp{M#{X z`^Y^Pa<3>`^*?JUeRW^m%{#fdCFGl%TY8i9obEcUM1uA!%s?Aga)5v%>c+de++gA6 zV#W3YuDDW^V14!jo&eBw?+4t6Q0ucFFhIbswjc0&2^4)*nicy2KW`KkG9rz^_5 z^x8KTxbInUpq7Mierlz>wxO#FA>LtKGc1g1oH8K$6w(?pTY@;5VN3JXYm19#xVR3!Lt%mATqL4}S3NQIr0N3OS{R zsqHCdHhS{RMvu>Il(4Am@9=yFID7RyrbD;yrF}%7lg<&HLTzkQxE9#zcND^#U=;0% zKeU%Q`3fY^-CoQ7%^B#Au&m)oY|J+K?F=$TT+_ct|KfHBW)2A+boVGTc zBz5u2pE$70jFm(*vfJojvWN`YIDoqC{{0_PKW_5JQX7^7F;bP7-$M+t_GXQ{x?wF- zwkT73KO)rMUf!DG%6pqz7vn0NdF3+H!;N*eIr=o_2>NPVQE^iS&K?j{bN3T6z8?)7 zy9(`tX)Ny?i!3)>ZHhdU!NZ&hHzX8`^+-~4LLM*ZX}g1Es@1H}&E3rEZ0^DXByp@u z+t-ffrF=uIk}%jIkkVi0VQR1BIkqIy)wG;ArkCHG!ZMv?=L3m>ifVn)7-8KnQ%4p) z*Tc`KP~locKcYfTE{(JSPKYMo@|OJ(TF#|Lnp1>vMC-I?Pm%Wepn8g^I-8TgL2)F* zEICO^+HgjiDVD79O61;^OtYFKWq~4YQQ&n6Ua2!E##i7Ye!IWxXkSJ|N`ZLt;Ph90 zSY=Ci76vUUS1Ix8&%#?Na!nttx$tR>@M6;KGMBKGXn}wbgm(NDlbBp3T{ ziN&0$1PHBMKQSM@!AwW%G^O=K(t0pKo0bcQ%K;Ohm#{LxtQ`S1C7^f#|pafSH}+t%NTue|OnHQ^M+cPjCXAwC>v1wkV5&gL5T z>hU{X_+7RwC9{Y9QFI=dWw%XQ6|F+CY$YKED;J8y2!wojV5N;;oy`;R5G0tcF=diu zSgoF@7$qYjWID!Jm#N{b#Fle*g0R`8VlUU)KxO92K9=^${r*fY0os1}yCU}~c$n4P z;(_h!B+%~7laK5?_+fTr4*dRY9jiDQf_$10-^8Zgm0cLgPJ7DK&Dpr5e6!qqrzSVv z#{y;<3Nlh13%sSTxnmUYhcmzu!z%Sh^HDh#sAPF97I@S_V!RfYuxSc<#pU$?lE8Jr zevS&MFIIiW-u|5s8k5t(1H=9f6zV;%kyj#}Ff}V8I1Ufq&Dg@_Kq&V+3AAit}S z2NCjFKq68($<{Ox)b*KNDeM8eN8Na@_bVa(i_7W#YY^vSw1V55ahsxxu0hB`s#~#R zP}0rx3wQEOh6J-?rFTHszO{(L9R{Nb_!*mTgLfFz{vJhBEb8B3a1h(h?Jm%b5E(d8 zn166FRw*ua(rfWNV7pKW*}yQ(%3D$NAQt8Nl#L%@H*IuUf)n~XZUIHCT0QG-JTcJ( zWRYc%yfdNpyz30;6W5DS(5@Ff)eej?uC>^NKQTdesH&P#dGx3SE;U;u-;Sy2uK%D~qgMc!DI4 zIeddrL==np-)=ofJ$;Ts*^#Wrrf1nf@L}*^<$dNSv!&}otX#d2T6)y29nk-xfynCw zM$h7&r>OJ`P|{<>P}ogaZa;NZ4v^=&+&Z;vB*iyOj1CoNoGJBZI)e-_C{24JEfRbc zWK?}l=k^K!?((FSZ3h4AiI}fi}lN!u)z|1gEkxTI025uLTWLYy%2Bfi^ zLA(+~YdLEW!zkh8TLBBTW}LHy(K_yN%i#jlX=QdGk(@ zBO9lOi1F-`XEZSJEol`ra$thKV%ZE+)H=8XkQ35j5szmXsEx;w^wtfUWUgRnNh*~Y zo$tIx1=_oZ%;f5O6DLYgF%mn?JM1vRm5aa4Fk2}<3@POECMHjTl z#1UhMY9yg1DX@m8bY`jxdq~=2^#)}g+wkw=8%UZ@C&k}~WfLfu?x<=LK6wKojgIQ& zBStfY6|7*~oGz{sMh&b?fz!CDm4pc|EBHU;f#mN>GBFV&259N4wk4hcLo4Wmn19Ux zdNm9M{dcPCKNzG}KO)VW!t1Pudqv0)GMLD;|{!=_|yY2VmR6=PPucYkf~-UB^0Nqb?NaY3Q!diAd+8 zSePhTwowHSw7^;FKQhv8jwbgM3`+f)r8-m0!hWP4J8dYFRMii&rP54$S5vTmwCH`< z&p#~au^%R|*Mst!LQP4aq}U)nh^@_R4$_%?g^ttMCYh*0mImsQVWi4Mv0`8BL@w`Y zSaA_BfGm@f9+S$-Z`OVP{@YFZ5lsZEU{m+U0CbV2qBa}SXN7LTu#S>o zKXJ=%x(ZxR{6Tp0(5 z8^0P?Wu$-|J8}J;D3J0K3;gSTQKuHv69ydBsTKI`y-knKm6pvg2M{`{0g`*m*-pLT z-$TRPvhyJ%2f1u0)6oH?@^=YGD_C?H(^VkeKDL zNp7Ii3Yx)r3_Yu8k1VRfNhY`$>F8`s3Z3{})$+yL6d=(HGxg#nWE~2Om0;VB#(GN9 zL#xTaU9PyP%(RT*3Rjny)y~*fDxJ0beWrf&i-YOySnXdCTlxo zcq=W2VMph$Qj9W4kS9~a@wVW8C1^V8+nNP^zA1eSrjJsDp*)23UFO?L2h-7N^5B?; z65nPC$h||gNDo#beY8z??Ez8b7({N-XelDyOMz4PX1G7h z`z6psHJ)ga=1>N*b<=D|^P$WU6%54LW1;C^l<1yA~3=nMhRo z3o2ncVgAr0Ot&%PK&_(nY$H$;mw5Q3V8Y#}JrHsar9XU-l9hlo&`|l}K}(iqcea2BD2o zU${qJ*)vj>rY@3zt=~&$2~DX5A|~m8J#-yS$3@7X=Ag{QUS`HDzXVa0aik;v{*CX@=|4I^f)Ur@I zErQldOuvK z_LH!YoL25IGtlo@-%fZs&3J>J6d*vu-Us5ota$^%fXLJuLUZ03uH_2+`8uCJKkr^q7_LYE>TY?ZEr^3E>T?1pae1_v zH&d92-=;~mpDr~g-Xm}L^}RcDkm|*XEiJ(ayBkikp|x{yV-SKv*8vub*pU5;nVge3 zPJIX3;w~4@7TcFt#S)5D4x%$q7TE~0O1$sO5rgzUwbVe8gZaS0G*TzwPqJq_blAI< z<%Ru8W`Wiv+G0FSATFfbned@k09;MIhsC*HRWf_LOiATHDEo~J@j0)KicGY4=Z7r=KS6lcc68 zpCDGqBH)zhLNRX0K?f<5d3NZ<%;cR?Qy8BEx>7X-8A9`WBYZbCyz1=r$u@ZylA{f; znlM{g`V-}m9PVm$qkyk&Ocm@vfT}4cse;Cwv%}{s;*BkaXp8lbfWfZwMrv=T>PREM zn2AoieWxcQ|1e*oMfUq!9a2**Dn(ekWY|5*$2I8j{dzqt;O_(DhsutfoppA?6 z5@tp?;0(z7)J*66~?gv+4_ew z%^P=;Q}``wB|6wIvaJx*vIhN`{x3~L@&{UW2}K9Iv<&7&+ArN;xdhKR;f~O<+;ADU zKE!qw?NKf(8k(4!(Bl=Qj@GP<#2lb)XVIlYdab6@;`fAR9aj}9eKLaok#nq<1Iv29 zOt|;JWx?{M>&v#&y7;Xp&sZRHyETikz>BxaYtFi3{Kh~mzTX2U3l*v39N{`Rrhde4 z#5g4=ghAnW{Z5^raOghp&nS;5{urPH%ruvm+o8(H4E7u$??lNH-_n?W!+m7pkC`Zq z2i_U;a$lB7;&s?Uw! zh@e|Ew?(6vA5tdnGMGW^VJvW+Drg&Ybza9qecLk5k!r zZR4sGxp!+l*gp9CoQhW6GN_7H{8&V2ER(6((xwePdLZjUjJP60wChiq12-^*{R(!i z{6!`q>k=shG2ggMhF|;^w$<88H3vPcwk>}|h_m2j%x-FkJ74^AT4bbOF2%6eb-%g| z0vuLcc&~x;qkxTG+C-Puq-kjQTJ#@&(>0f)=>J}?Rp1j*%A13oN-W}a( z7BhSdT&)Tj4+Uyi79AwZ00^^gbXiRca{T<*R&W#Z+<8%&CoK+wqQ@N=d6_lT{y+A< z1w5+iYCC|V@e&gi6fcyZq9~%EMzMTow2U1uv}mPb>jg`-+G@oM{qT|+8b&h=qwx}r z^_I43qgG9A!9fcQh)J}zMy(p_ZN%Fi#TvB@pj{@2Z&r|kxfUGMmN<9+T*88Fc1loZw>Dme0NT1YCs9av(gi(o* z8}Y!oSJSkBHlNhDuS^+#5?xK4vr72M*k1vdPayqA}ZGcTBcg!|S{1M9s&h zvtEkPqI5c(YnBq-9ld&$E7Ghq!FbyURMv_En@KC^f z9W)TGC9Hyf)v;aj&wgVO+-{y|Af3@dLFEuj?7{~2i)}ap-624=>Nsrqn;Q-jJbHnf z3g+gTc_1?{(adfqy~}0MoT}P^nWtzb$6FS4O5|=|faQJ0<}l67BC|^}v5Cbtv&!LloUzx2>= zp<`bos&tYRysVMd*78`J=*v^-r>O8G#3LOkFc?UyG;9$sG7o+Ootct}G9+bWe zy?f@K$Ar2xuug-@E<9;}ba9of8zAd*zjSi)=#}7pvT8RxBtD57{IzT;5dQ^{q`r)d zyIOjR>w~fSGY!02SsLrF46x(+U_bEP+^c&no`zgrjY4`J{Aot*r^=@22Zg8^jej0| zt6#E-yz?QMtE5#@3PdcWIxo5N;NNsb7<}_|vy2@8CO5EF>wg~nY*$_u6+91q!wqO8 zHS8$KaOXn~;vp9hXwQSc+F%hGQ0UG^DM6>uP&VnKke45yHVwQ6nRK<);JT)_D3%}v z2P$}HzkZN)YVd|K8{>d7dcL(l5iwTx!Q|N%eUtKwYl*Jq*@ozwJ<&Jae)ulvAhgvR z&`j?B>cFi}T0>2V%Tc2(`i5c{Jl*|9PxK83)+#(D!B=_(KnH78C^A|L`fzztm}pml zlyC|=ZSj|ns z)>`gSaw(vz%xD0_sO9LzpIyU?hYP>GYl;FLt7n-RB-<4_j{Re7$LG#q0|P#rcPsq< zxpBcB^bcCQ=of@cG1%;{<~&9Pqb%CdyJu_p60je$7^9pZyP1w>uRL)C59>zkQ9=jp zgENFAnAx1LD%8D70u32{Ajh4$#8qJcWfw|%qBCkT1U*rXNIi55D&FLZ>1v~L0`dTpPY#$cYO-@#z+ z(LmQv!WN+}HzZKao@@l~IFVWgL5{FbgD)*FlwC!!&!`_t+?Ge1c?Ft0cM7o-?4V6u z{~I{aWu*=+bLXehYdGrPp%((ALlS7B05e>{q={n=jvU+3Kmk*)m6$0Wzh-;<^7sOL zL8*Un+13KkI?x({Lry$0UimKJggVt&50}XJ?!6g0sL}ZU&VAa?OaZ=6lLCL#vn$d0 z;IiJQEjMXnli`R&#@v2080PDPPVp6~KEQ9;{sAyTYmui4MGGKOD4OwX1`FJkX46=d zNsRaK8lBo2YoF3lYU}Gcd@7Xiw;r}9?lu&viO_REPKUl5|JdQnw}%SepH2JME`__z z5K57ZQa`%F-IwCdKcpfHQZh(07_W(X`RUol7_S&f7_Vvb)?t7ZRx~i7FUFiFo4iyu z*!u1>XMckzcp4|PJ>kn^WzfDr1so3MRgm-dQBFcO(QW=b?Q~Ii#@TzmG>77F@h8yH z6o1@lDY`BgzcF6q-;FwroR_ibrYaMH+WYWlP^@!G9C&0bjP% z08dbEIjed~3s<*YL}sgji6KXV;KsD0kgwis<>61E>I~_KRfhuhEJdrckhNd@eyero zpz0V_b^LN#3Q;sG$O#N6j1rlp9%odpyF%IZZ*uZ!48BcPosP%n+Vdw}CW1$M{`>l~ zkUc*Oz9sXr#?2J6=Z9o~NUH2O{lXt4B52Rgz>Q5Id%im^t)@{BqEpbG|8G}>;yt9% z6Sb})_WaGRyl2m6IlNNCE|v^u&!2fGAo=$ER<727?D_rY2|5Msd2^0Jz&$7`}?Vu>VI=|=bI=Iyg9n_?Ld{l&Cx9(y>J##&)J~w77Wic zW((2M@}D^y+4=WC2eq#oAGBTA5AA5P@cnqxz><4aA!qROUFA+8-F(z!jEgos@I`A- ztw3K{cN{>2DiyiQf#7wFZ^FldvKsSHeQ41EZ z_7vL#Kdu5$a~9AM+VbPq`s;hQmYnbFbd|dA{YxOgXr-B+x5!ex9^|OA2LT`cFh@0P zFMCoHo4PAa*EK>Gc@Bu2oV*FDGPs)-*gq#cs0G-^&c0OAvjW3+!p{fqgj}a0X~-dB z9d0C<&yFdYUwDG^hG0K~+CQ6^7 zouEbhtYkiB*QjzO^ZfnUl>_Uc1ffu%dL|*X3BPE}Uc1T;B z*$IB6U>%O{$cA(t;L~(~-O{Lv(O3h=9#zq>8~H zpolJ6;C6*$4H0sk)0`VC+9tAya8US6A*AdtHLQ=z)4kDJij9?;x{ck5anS>}jb-Cy z7qTt}4(tCI_1mMbqe3d`Z^1o#Rib`1LT-1CrTH?8qeR4@y80C>#`~m zt>#f-Bor;6DA+u-k-bk{zc-=d1Mxa$twsc7fPgM$trr~c9fGR$ZF3XA{BnCB#re#roi~1?>7Q6tgTf-1p`}!h}jS zVZ7L?pglj+(@&|$h)bkDX+Q3$Kht1TD?wm9WzatT!MhxQ+36NqtE9`yNx&ccFukm) zvZHyj-1d&|51uGPHqRg2da)EtgJtNrg7)Kqt_bbNht)ZTZZGN&KFO8$?8giw81~~N z$#C}L9=8Hh-+p}ZB8$j??8kpH1QknFUpho=$u!eag}k8s=zJ|QZ*oO4D7+r^^_yL( zC<}}F7jDNe{(s58FlT?@I{^PelEh-i{?f6? zC}B#wiQPu@?eV|HGh_y~Z=B$5oCRH9RjE7B$;n|?@WJD?<1o+zb4H8VNfN5&Xt|%c zauF>D65&~3#ecHRWYtMp?qpZ)B}vAGq;%=A+~bl^12pEen&pHdI|lRZWRodA*H@KZYz8b=3V!^veUi-OV1_!gc zS#79hH~NG^Cd<6sQ~HvXM6Pa}J1czM`J#P*!<{Tm_hi7G750ZOWWib%9Po#zSDb{Z zQC4+h0mmE6#Q+GQ&7fg$T;$&99LS{|*JD{cvv_h{)`e%Gd(rdlt^VHwHmgpPW?Bb4 zUWtQmAk!@pOGbKrBf1KvPUJ)VNhFC}vqcuxMopLb$1l(-1~4*c2+(HA6>SMIJzS%f7`a1Ujf;pRylzcvLTl#V>Jzh&s2$Visaux~FNmZq`&UYlosX-_% zrv^I_>LwlP-TlS40$PP}KBy+SV8su_lgg`po${(LP{~@#mRsb_l!zoPa zyP%Io_WwfP^GZb;=g4?Pheme&sr=+pvVo%qOMqtZIaO0@D&eX^vSBi_f66D0ik@w2 zV6h|4F!LNF978$FLg%m$joPADyq*BCIeUKu*aQYia$c}gw&Nq5ct-&H)f1ZbQ24sK@_KMdZ z!OKZi2fk3Jb0ytyff9QASzet6>#t4Qx<>uAcX9Jq{j^$%YgP4x63)*E2hWhR*H%7T zD^tyDNnX3uUR}y2OgFoY`h4E1TD%ASPt$_N9s1(}?T<8mo})ht`C#7L9RM+z$$`>T zBv=^WdAUkkPqv@}!0nb)FF2Sr zeZ-HGXQBOGKYj;9KBZkrdVi%oREXZb-LOW!=w#_13V&uYg6GidMmPRTu4Z$zrK^VB zjBZX2+ZGRV#Etak-zT(hP9CHpPpWLQjb;!cS$c|B7Rwx*?sP7_O}JfMR-c<$4j#;A zaq-PhM3&%7t-&dQ^>RkH=qa2XyoZJ z8)sk6r2NZ$yQ#>3J28gdRJhbwoov_Nqk(+2n)h}UEIP}D3v@9>yUG_&U0b(eUE;C2 z+<#+n(o%l;ELsVv$oAM;|EhQ#Y8(Rr8<7kdzE%Y zY{fck4X%S~QC~Oaq0yR-EyGEXLjkOOq1{pmW+lsZV{`5-iR^=K1l^dsjX;Gvku3zF zyr#;RT~JzTKH`EExQr59*reEj^2HSEq;YAJB7a3ZX!*i10@f>11NKVax9+h(NzRCA+!7fj92rAt+|V` zDmH8CDpY>$IY?w;YAXRCG77;usP!GzPEBq{o&v_|-|R6Gt#kU;E#!j!{|e4$!FYyU z2V89@-1D7XyP@zsJaZq$~`bb8}ALXpg_0y8r;`|yhFqGHY0tE z1^*iOotp5Mjn?giRv+gC#+8EeaD_iH^fXJ!Mgx6u?c+8;81W&R_LJ^m5v>O(T$uk-2z_S6d-XXT8X71TX?`_vG1BbmAQ8P zKS}CXL-_~-Lv@SD$sQusSD?NR6nI5gsF&5b$XLyk^^!)$N;ZfHY%4#q04PHR0XdAZ zwTcHBL~pc+h1`M`BJ`CVQ0smcu3H)-H@znLh7p-{!MKu*COy$>Gsm*YInolAjCzuh zs|A$8U`?^{dcK0H(*?1}v$JfMSQb$f5ql?YxKQ|Al$Z@yGOCG-J%)G-rUjjXzkw3M z1CD#|A}nXG=j%6js^R^<+E)kFPYvog>$L{P)xm(t0tXv{wKf&Z;8uL;SzuvfxoeTA z`sP3TeevPwC+jCklP@sqvgj_TIPkfDJn?ky3aAq}4J`L4!Hj> z?e~5CR2d=}=$L~}l%ECm`@pDHbIrEkSkXN{S!;sXIN(5q@LdccvlZy_MvV1%xcDND zmu}4813b@Aik>x_&hW>8gEtMN!!go1mn6`ye{v&<}_*VOE^DqB4BT@^AoquM`NeRXrzutk7$_OnNtm^ zWtbRDz0W;A(J~ZZR5`<-;FittRMDJ}B;NYVIzMrxOu@vIMp_pdfZZk{)bISnnXV{I z!nWuWP&ZIDPVH0YKhYC?!kyOISvjD(XbDi~zwj9_t)R}QA83Vcd`#VbrY!skf<|l^ z=NJYBDJrJ#mXODX$|(wS8lC!In!Z!JBiamztwMRQYg_%URhfPi0gotE{6Iy=)*vQN z0WJiCWZISgFcvg~3%h-GedNa9{wGJ;Sh=OUy9rd4BHrBaiL)dxJB{ z1{!~U*Dm8vbHvG?GyY=bAm)pWzdxSfjlXr@DLVd+-!eGaJ-7-D`sa2%Nrqiv|J+x!9+e9fym8wFMijNrj{9Gh zw|{L4u0QeF@@9{`$obYsegJlUY4gL;h2#yArk~aPEK_VU@y?T)AGHw zA$!v9w|-YAvJT)dT5%|_-)ibM5ga;?rUwlKbDtG7U()$$pV^MB%ABO*D>?ZQ#?>aP z+VC)sV#%2wkInG{xo*o3o$=>0#LrNkgG*doDSkB9D5=P1if#jb4$+^@;7t=mfIj6G zVOhQT+s1-!)2$Q@Y$zz7n}s)=15u-ySsY$tqn(GUYd3Rf$b&ZmROecSWKKYEs1@=6 zuSH|I1zIW%v8L0x=~oKA18%-9yBRT;RQZv1O|>kNihOOF^gPHA_bU=vs%ajd)+6gX z@Apv{O~2NB%}szNxdG$#>!##(FefQ{p1uwv4e{a1Kovmwh3J<^>S|-$a0`KUcr*l6!~_&9~u4kpT;? z9wMNJbqLRKk75#=6_ao>C(+35u=0hR6s;e=o^^4)h6tlTobTumeWX|%AAl4WYYHx! zFh;94LhU(dxu2K2sajzQOYt2?)I}M23{kJP^c?-Np`N>fFh@CRl8x%RZJb63pzTn? zos^o1SG(0SRAUgDzQLTjr7Vcv5`~w>Z~nV9c93|<%dZ%TLLj{@mXv~l3zjb17wz7; z32C9bX%XR=QR~>MY{H--L{|1m?9VYMp+BQd8#6Z*IZ%}g#5~#rO~jSTCczd`C zYojLtL1D_GLWqS1809Y3)|rjg*#bccNPO_ik>W!?(1WgfR&FSC^@m?i_&X|mW&=La z4v5<0M|iA~mJ{(#TOdkW@Iht1PLgUNVYS4z9OXffvI*fAWJ1{H2`k^iGNEZ9nV5eL zaQ>0iMpjrKnBohoZFYj+tbhp$YX{m2ar)|#N%l+iH0EX@mB9=wCU&C_{9Oeq7;^0CNhQt zwsK%F#Y)7smKEe+QoJPqXC9N2k_5S9VLL$dWa2q^k8=+y2;qyjZ!5^qptF}KEtP~kGv}AA zTqESt%t^6CzNN!9Lzd2thkN28WIJ(bLeY@8EI?SMet8w2geOG_;cCv?y3L{O5>v4`bqGrLZ^xfVaasXrSa+Vw;fYZt6xVktSBVTR$W zqR8oH4xYXCS$`GZu?BLLX-VsPqyB0wT0e{4Uojnlm5`kfn^(GFK2L>RzjLAJdtq0UAjP+JG1o zz(qU+zSF@LxVJ*uiZ$&q#bB(+Y&Mh^D{=!s<|J6&Z}0@aL8;(HjnGyPDX=?x!Ozuf zu1*dRL4n!ESr|m&Yk@XUMH1N8-Xd!!Hhw!R`^0>EvL%M{Z{2LN+;W~cYVc&E0JGn- zOiqX;k16GD}@gB0m5H9} z(D@m{yP#M0fS-R>>_IU!S!j1PQ+|`GwBYXQf3bqUZAyH!a-vOcw+QZ=j^mz#@0Ww# zk~k3`rSQSckN*XfCMrtUS@3Vx4Q`QoyWesR8YhegXQPUF%|syN@{yR(eNE)&`t|o% z^SS+frlRM`KHS^Z19mykX?yoPVM-o>ywWMER%$M7vK=Hg$mV@#2R-NsN1{seXX6!<{PL9FYh4!9kyNg}0 zV=(KD!Em(a<|L?1c?^R3kHNGXg9=t{Av*@C-_U*_RLhOQ3ZKV!9wj_(1@8Fs_F{aL z!h3deKLASmDM}q$gA%IPxowrKFZ12`R}tnpiN#);w}xMg@j`G?kymvFX~oPq_&}LV zGESqwZs|Z-o^_x3K77G1j1lbVLQcO(cMZNkd4R2Ab)%iEqRl|kUgjgV;#IUX5Y8w} z5_3r2Ywf$3Nto^DVw5pyc{Tpii^1-|q>9T?e#?`w_Os3|locYRp3zj<&O(LUl9GOz zs0A$t-^Aec25&rtdC7ijA<-yvmv`>80T6XI7%+0;Tid$ts5TG4N<|WEYUj8TkZk0|Wecg*A~6&nJc1pKp@rK4x7N zI~{CE4m*O6lmxe$D#Tr3$^uLfhyh>pyFtN9b(+}N3QK|$<_UCZ#XEbfYrN2IrqA9j< zdbJFTvh;pTnwkMuF(MmTpY%$FU`Z*$i7E%2P$Na~EICtN0W;}5q7^phROTerO*Tm! zn%2uRTD z2|_pbuQCJ$<=#o=;l8)JcVtDHWiqmjeP)h@!?k>I&04b(AI5@&H)Gk`0;KU26SxIW zqpN1TQ_rJRn>h|4vzn^+ft%l)BE6Nd!yWgExN8PX@k;~1m3H&!Ug&~riJqJo3m#9Y zcJXsF1N5G*fgkEodSDYLNFTsp{kTz8vJg+`GPo7het+kC7@buNarHwR%M9dw? zPzHU@JI)S48|FbMI>-dKV7sgkW$m+-!UU=4M&rHa)#rdwg0~SByp}i<~ysh|Xv*=p?wudinM4!qSuvFO(t|vm)e6xmHsWaJ9WiQDTv0g@Wb2|mr9>Mw& zjOb|!uNvI~dnv|;cgIjIeo6{Y8|GPZg^lQ;v@Qo?MDO=~uq8Qce?F`c-Ax!FBl<;2 zs~V=Iw+)nDsilFaZ$#g#rPuN(MRHg#9~SntlC!=>bd2*@YS`E1QFh86o)LXB*Xxj+ zfg921k4DV_8PSKbMjq?8`I3$3f9(Y_gQjt+?EEoI+OS46zduc;svRHc-rZtl4Q}6v zzHW#X%rl}3+OXDKKJ(GpR6aN-l1jsJ{@(FOSWD{&MQ@@t)$ zqJ{1n!v0Na5!*7O@DW*7vG#JkQ%shuJbU@|e0%xb-TaREYd>J0Ru^_RVL5XQtn{Hedo0;P!*f};L1oF-xmloH>c z$`o_W)5ZL$)xuAF|7K6=DDFiaG+KUU(dAvJ%!vm^J?u1m|K=6+Pw@Q6Zqo))H1f`G zjbV!~?Tzjn4xC{Fz(Dl;^?v{PONA_3ajmH&b2P(Eg}-9)=r;kC4Hl37%C|7#pF%7{ zBW9{0wd;F+#Jmighbx#g_0@mQZ$0x8Sn|5|e;N;PIN$`;^Que8V>@ncKOk@1bOw$y z;`cz$tDY(iMw`(Wtvaqecg2}gTm7zGCNjM#){`jJEH2+kC^e#tUBe&0aAXkgy^O2@C? zwafU^90Bv@Gskc2`3*jPIUgDf+6Q;GhEgiBWQ3iH`^Wol*Cpe(8`N;Z?6uGQ`=*b5 z2}Ad0mR#R>f3*KkZC~bpZNK3BPtQwm{{QaAMfAr@yK(*}5?|H)4^%do{&?l^FGYWt zXaA!=LNP7RJTox;aXakF|1JHo>8_unKT1i=hMoVN{>P%(%%NAKmMrgQ-7=*F6|f6AIEF^{`vFE&gj2>m_c2A^Uly8T`c|;>5mfudxPnZ zTd`MF#Qq?)>$`qv!DjJ)?2o*F#l|PsLw}IR*8VsR4*LzIKm4xM^XHF_{2cw!f$;7P zsz03LS$7rTg#L2Ak5WTFnCG7f#@h6|Kje5*9e*HE9>z1g${zN2M`;_`pMJ8H&wfW1xhNb0}0;|nX{9M8H<^ay8 zR?uJM-Cro1_U&dSJ~9(NBVD1SVT+m@`|ajq6@FfMP>C&EKZd)yvcNWOpmrr|f4Zd% z9YC8q2A_BwZ&KJSY>W0dhs;D4dVW7eqo*g@j zkOqXb+8wQAh56b}m=hmmOa1PTN=9-T@C@cep4Fe-@YZ#kJ#afvU=2_abg8=dIQAzR z|3ddqCCVHx-S_ew@4jSx^8e6%M3FzQ$9zPgwDZw3yMTvZnm+jqe^%gr1>CVk49r2> zi+mKwnCiGiN4YWzM9R5sZ7Er-EYWIgI{dVK!)9ZsBwLlhtdX-MIJ_Ondn;q@55S>`ja93w~cl!??gnjd0KaPGKkLX5X$ufc^xQ$KxBJKr}vRb?C>)hGKoKT`h)ABW(%LE zKw52xx_quh7t7!X1M-v+Q`5=_`E+@Y?fyLhfQz7ITj7W4Ls()gS=GT{)a0;7`QQR6 zh6Q78or*wVa5sg)A#kU}v?{oSf?MFgtpnvbdly_c$Z9H#WpZ|fw7%z|eSH(2N`QSh z9A_gC&zxh4d0);U>$Uu6Ia+{eiP=vZ-$@%E;Tpe$Y%j=_q?OhU)=A2h~#S!5@ z7mf)RDabfHTy;bw0GJm8)!Po1XG8wJ}KzpFKctF1Y98rNRAgOo;V~( z>L4X`GbMF%N9vIi1aROJNVx^FP+^EYZpoUrioze-uOBb#le!v&q3Z!Ixwu0X>ee&y zFgNcRm&sG!>=2cIjDCC|a$6xWa-|-xKs%9z`mg^0l?Ur<(jOFY9bhK z`+M|vPGHL7DTqJ#E>4-SN8Q{NKJU8)QL0pwI<*E_ zOl|{1>05A}eJdU;^*^O1-+bQ2{XWei>O495A_lD{t1iaF@K}3Ju3bz`{<>6YD}k@t zpRSxgYbN*)-3xzKDzfxbM7?RO{X_b*(Ak5B(+H+MxEq$eo;@&VDtLr&)3zOVi$N4Y!3kcyn^Y7OZ7>eu4Z2A~r- zL?K5o$rKX6{K#``GLGcdLHSjqLE z@)yr$f2pCiCk+W+f{?%mev*8Oit4oV_d>6X!S4(@D&xMIB-i<+@L}D*U{=mu?yz!R z`SyPa$Yy|S0Z2S0uC4{oG~Qe785{uMQLi&ADfx3+q4qfxj7bxtx|+0q#4BB3Z@>ym znlAr0d(a7FBI_@Mlf1-iBT%c3W=ME)*i=3U`$RFDpn#Lr!}HNtJ(6fJXZG+|a$2Pn zAIIW^$)lBKxfH1?RhXMPn58V_rn~lN7Dcs}l5;D}M=mWz7&@^K$0|gF>gFp$oQ|D{PC}R6tuC(+eo6< zw-3^VtL88E;uwSTcST#Y5421^?JUj%3rgiXF?~JJKIau!6JFP@sI{Mz z2^QT;iymop5UhUkf!(~Jj8 zG}&jG*EFys9=4>IbnVe*q=2DOjw&Nxw_>$YO{7>s3*ir9mOGw_VJjY3ynuAU0+(MY z78Z5`^_-Q`tb<)YToda7GmFeDVUw5_k)Dix%&GlpQ)fyNnZ!y=N=xnrhsu`?-8MFa zcHH!CvmLp?d2rsUTGRufQjtI zt4saFoPUCxyy{6L1!~`$S37XNw_1hge4o4-y+z5Ji0jWt^((+JIrZb@^pER4=&M^f zXw;L5C(KVcen{&|mI~0CHy&r^(VL2#@lR>31$;eKe-^TVmft50x9VVv9Oz1lR)lp) z#|v(Ly+Q<+D{5fbI>K_&95V!%AwlmR603*eBBF>Ve$$n6L4m-)Pp$98-Tu>ilJ=iB^qRIBu!$hH1MCuoA{Lg&AA%7 zg^!%OSFEdyZQ4Qp29hfJCzbY3+Ngih;QmR2T#}eQx9~Qe^2Hy-X0_RKg+qjI(zE7FPIK*BlX^Xy$D_*B&4=ukbb7*aL(3JY<%RSMT9iK!ei_X6( z!>#(47ers?Q$P2kpF}(e%x;Um1ie_3Eddzjztj_b$-!X93rdrwc01qLOADee`EYa! z5+i~A@7OGg33uKE|5^W1mL1G);Sfzl9#Y$pN_MIK%s>pnN_PCFB7te9qvSPyNrIzr zrkC*PEO5NbrG1n|xuZ|ycrjEbi$27nLbAK9n5DYi$5rJxLg0&U^1Z%avaXDdsoCeNXVhd(I}S#QnM95Nxheh0bzwt{L#w`OxAEKW-YhSMQC!5Z7RKTa!5 z1bA(1omh*gH9_#QfdOC5ukz^~zZ{4j!IM`4PWdl{m!b;*x|N_^6L#5~I~#66CN4*2 zTl7{k&gV%(h$pM=22Uoj25lzx)=ewKD7dvJdaIMfOV~^hN__~*&k5yUFiFs{^|&X^ zie!CW$JPTxpkx1y58LHdu#R?Yz3tc)W@9jMaCP~$ZPpPJL`A+MN>uozV!KqR4Pn!L z7qIz}Lavp59&P!Qu}{Z0d3St+Yp*1?IjezrD_C;%m3DZ-L+k^K{1w zGX!GzH7kaLE$}vrMmwHuaYQdc4$&r)+v5C`9v-+Z!$~JAmE)p!Y+{w>|$I zkWRwr5lF5#`$=bYe~5b$;;#s?ZYi_<&gPqH7Tej9kf&U3-WH7bp`b%Xq*$V;bP~S> zf*+-mg!jn*4%-_7d_fosLsPX8rT(!Lv@)@N>ICM~eS-)F^o`VoBOGW<#Ga;?>SdVBTGXlX~j zrY7I$N|rB=?OeA){N|@8Vml+N)@EUW0LwmsT}GPTc*FHY%V+OA?^A9F+A$shH1h!B z4s_M+{J)cZ5ZLQ2rRhs9T7TcXH4XR~un*sUUzRhxqUUD)*#X98SOLq#P9lsei7LPY zChyP6?cQQMBkokU21LF$cl)e8R@ypMMPr z`l*6YV{nwkW#Yha*_XJC?vG2pG3e3m&v5vNQvUQdktn^ON~=limMi!I&T*+Q0QTI9 zNQ2zfp7!%h$b4(WM+wMVQz~p8-u^3~6jMlasbzB?sa2a1hwl3K*cL>o&(muGl!7yp zkCHd~qhVWfYoa8!brM^fL)}+zlird>*UMz3WINr_WsH@LJ+K4wk3R#>j1aOoBn9VT`%1G3~TG!v4Y6%JQIjp#~mTEyQlZ(I= zCyrxt{zm|$x{}JqEmQ6Klu6a~HSb}4nuXFi?_E#-{8WDy(m&0%{|`qGq0$sr5=RTn zs-Ftp7~!6aoQr;9)eBmh&>lOA?MjCo!)Ge8jgf|>wQnlech}e?a^78&5Ejlkxcxo% zFTzmaY#_g8D$M0?c`$2{BF&x3r*6wPSbxv`Hp@2qGrw7iRuj|!E>v_YtfssbRue!4 zY>6gpb>+?=IBtAx1}-g#zNZeL=}q-hwxY`?bGqc0?JUSm?Lc;ItPfw)$=Eo87H3R| z1>Sfw=o2TVyE`&ko0|mL(9YdWM-w<4*wD}OKg;Bjn!ITG`p$<*SF-Z2 z--wo%n=cCZo-G z!W<9Y)w)urI5z<69gcP&E_hui7BVkXw11ehNgRk{;W?6TfrWMQJHG_}r|Ha9i)QP| zsF@@J*A03=MKMBX$)2jX7Xfk{<9bhLs_d*+h}%>_ z_adUp4ZR}Q+kzuD#-`nraaX$V6h?$jjj%C+>PB-NN%d1V$@BSzzzDUkLuQpS06a|;l624 z=X0RXNTQ2L$%dx=xorLpGEa>#`IucAyy8E6-V7fVzhWn3qYZr9436FhHLLGZa}Pt; zf5NI%F^sTr7YCZy5YT{yj(2Hb77B)+c|2iHSG)ulGk4o>Y;=XCboF%rZM9byAVFIV zl0F0H5&9L>$Me=S69pI2!aXSedxrB*(3<#`+T2L=lQ*VZ@gB;k% z2s|@@M_Fp((hN0Q{F@;atFERCvpP*oT?mrT&Y#}_rgT7)q5#6V) z$mr9b(I%@uj}(Oz6;z)R9LjbT9OQ#RV5Mp?pfM9Q(FoMF4t?)i98IS($NS_)+S(~Q zaNwh!LXG@YH3zF(Td|h8Pb+b?zRAK6MBm$AD}%;T+GgI^2m|U7X^(P%Zck3HEnj@W zR;7veV=Hn)$`|iniW*3sisVa5OB21Z(P*M1p<$9wXGgWwed;#nM-vc`_#2VHbCrF{ zyPE2qZu7RuYQXJP6?t@6VK3xAt-ltMHC&k^dR1AL>xBMOt*~vcXoXHV2AWY08X<4J zUAJboCv2(6ORGh|IJwW$pBW%6b8}$F`wu-LH3r~26)yRS)Z@;VReiaNz4SPl&Wi@ylnkKsD6nsO; zJVwGLD8k$C_52l3S99PBK?Eq{*He+-69nh{ROA5t*#rW`#sDju$$^?$bH=}*>}UO3 zNNh#EGJ*_{Gi)GHKk1VZ#@MdN_uIF{YcPu8C%r@;7xDp$G7$1kyOok+Vo#j^J6qc7 zXo_*BeDQImrFH*4#ozE))V~6wv;?e+%FX1i1U!+lHXZlKPNP+X(aQ#ojO!lB3bo2{ zl`hcgTtSony9&0|w3}(6f!L}?pXw`FcI%kTlrO`WH0MAysGA>6we}2hA9Xko=?lcG zULU`h=(7R41ESjln(mR3*MQA@FasD*V`RaEh1%Jxq1HDlEttp?!Nfh4C1%a~-vC-)uu0=V7>HwqO7 z1tq!N_#gg4eJk|4o=)cy2t_b|{!kc?&~+Cl9hkno_={>Ro}mXK|5Pp3iJv|CGwU$K z0D$tq0O&A3`hcgpKNaL*F(NV2VN2t)!hLn?4lQ3u;>s6C`|5hXXE`vNB|$FM29lFl zfw{SoFAcb*ZE7a;owOfZ2`x#lE4Z6+)4;r%3{AT7E2wF#J&<{jN#@r}QQi)aOnvmz zoNOkdJ@&|gXdjdCtHdk;_T|f>pF$~A2W>5Xy{Yj;o{F{eIjC$_ldc&*x7D8<|CqyN z9R-yO_B5H;`{4UGsCHBjw5(R$`Pz$CQQL?aR(*|GdR1f=UkG6D#u&0MVnk)lLa(z> zT}`Ls0?SW=RpdU@+X)C+H|@8Xu1~-T>!PkFZph{!@IRZw12Is1$%+_`tQe!JtRBTW z`~XEc;;!Fq5M=D$am%Yj#vw&a7|C?9#qb<-xNr%EnEUqEM=uE1o6u)J(4Q?pzZoF7_H9MIR851q z_B}LlS!%(q|IWuB$hW=3PC z${oP^st`M^p54{g?sKl}iC*b6toXgjd}mXKm$ADp1i&}oaRETJob3L55Xv~_gSLM< zTAa}$Dm~xH{B#lkuVsZg`NSP$(e6&MFvQW{LzRR)@(xE2=Z;rwAa*jx2!)Af>)KvQ zbl3f3Mxya1iJXcz;8A}0VORv9$0kUf6w_j}hStXht?XM(jC&Mg_jPLj+hDu0yW9=* zPjC!kQuT%UX@FJ52_S0;q^_pJA68Vj_%`H@3Zw&dT?>f)ocC`KaW(PMtLn2DQXSs) zGw?o@M`9$K}nOaOA7LT0v% zbTJ!Rf2!VGi#FF{JWj|!C^5pOLxEuNQ}^lk`uLR` zP*$d81>}^=LDl8Av{lzHVu1xxjN8HekrD4K_%Q?&q|sG~9=%UIDk>YpiG9AZxZ`r* z^CRFh02+2C4g0Z<{e*Xr5Uk<`bySx(U;!^5e5vli7r)ftB0{E$4fa$>k0!$p6j|7aPD=ij%}y=A<}ST)QSu86T$ecR(2*4(vQ- zyb1a4+ILe6DOQziBQ_+#M*zz99ey+KW7vAW#!X2n_gSHUV!jn97AvN@dEC2T@m7Qe zQP|Xpf^W>kyZUo_$$VgNkzgR%;507O7Gc_q5ZdK)(C9V+y1CNH68;n_<%3hGB;-w@ zLrCXPX@!G0#S+#?26ad>9pUW7Jb{Oa;1(lPvthC z?Xb#SIS=*gv_A8LDi>2=7}sl9{5UPnY{(U9BeS<+YTZ(iE4x*V6b>9F$$}U2zVypB zEUM{H4N`lk!X)0FA=HeQ5U;jj`+pNdBhG9q*SUis4Mbv?kA%~9S?Q2?ElQ(#wmaAR z8ExJc72F8R)AK@>)AMKa$0PxOxg!-5W&;y8fo_looPl@?>UjdRW*B~j=$b@mA8!iu zlJS`YgUu8^;EmNcLL-6O0pGUxDR?8ZnQDW_C9OyPca-3P9XOmC~_B_U7G4|xxC4i!3iK8k+Cl$0u<=O4)B>G`~3s^_C` zfyKX--L80ytkC|Q=KYK|??6Op2n4kMM3SCA1|Rx4@amaDNIS-T#uV`X5u9guVh-Hag1cyH^CB3NFt_k$>Yg&9@||?5@N|kOf_G}N)|w> zB`Meq-$BE&O#@-rQG{V6%9O+=rC7FH&N|dLGOZ`h|DDbrMc&{;JxG$~d@qH5thhjx z2Le^xTvI{7`MkRnyS=$Tv25K^X8ThD-|{AYNyrn357waarP7cm5K^juK-}?GoHBwcSiWq~2xK}OQz6nXZ9T0YN{irle6Tn#NCXPS^RU)>zqT}x1n z|EgoV;B@smI1ITL4$iVHH@`FRVCA>8>&AhRGlEzlpzbl-h?BRB>V`C+g!nu160j&6 zkw%y;cItk3_p!Gm#7l@T(ZPoyy`RzMk!}#UUgRB=p;ne$j8?{NB(2C5m5F$-RjQRD zX3yb`bV_Pq*~9dnIRAH|b_&Nv-BK3xWx=cFVzeb8&p3MXZJ=-$gAR0dWeIB>om#$d z7h$u^$AOHC)NV+z=oNI~_pb{#X5qTu3)a1f&cF1b>gDx=hBI4gJE# za+MS+446@2G2vB$AsAN^2JWFJ3|4lrQ1Pz*Wlv|>zpJ9uTM1Jv{lUSvJVhx9d5ZE;D8F1v zI@(i|QmTNWtXZ9>DD#S`qTDTBd}kdedDsHY=$m9pCP)^}so<~e`z z)TZd3a;G+>^NOlX$%WcXK(*z!`!3r(3jZbJbSjRk#ZNi+wI%lzA+Ng;msI4~N1Q6P zB;2w(Ov0}T3V$UzS-PO^7}i~X*UV9Gg8L@|fL(ZE?KZWueAxxq?#fWW0dWuEjP)vE zDi4XDCMxvqhC(l0#o0t;D?XJd)rT$M8Do;a4Eoqw#^p&0rya z*5CY4nM?8hd4Hb;Z+Gk?Y>2-w4inHW({{#lL;OvFCnK~UU+Lm+(96Bc(61$C-&a2E z`$Ew;XI_A=9w}XIV;K_b8I3c=i^s2Jb$1^acPJCs{lWI$N)dSOg?v|k7TOD`e-_%Y z?gbID3il!s%yT0js5OXc-tD_xW?2=fTYd8F3Y)?mC zY)?lZw&zI(Y@fjLN$ff9f^h_)uf={VH>&W&{)q<5G9b74WWi}_*U>cDlZXQ5v2Vs& z{T-HFzIuoNrVg8XK`HV8Na9Xwk&(Y6sPRqn*36dWTI32wKP17~XzvH*Tg8WCf1$d5 z>2};^NGvMFqrPzyzN8`x#T1NpB2)lxxeWOp&+@H3-h~HR!uC_#$j?}6X$O9o@@M1{ zgbtLc1Q?dV&oTCAd;DWt(ZYCoQ?BR+A$zn<`5RJVlj6k0Iu#ZJ#)PMiPDwGeGagyC z@H0|OcU-rRPUVrYzWE%PIBP zHum5@FLgIY0;wR;e@DvE$rRE1pu9rZx8xC|Au6kNklF5sk&=Yan7g1j)-M)lzwbP+ zeUf8adr8_SHLm@aky4=HTV}b2ZOvDR(=0&+;q#bmcVJK0ge5Aw6kfGAgXAMpa{4*3LsB1C10Cra({ z*8Cz1Py}8(Bu*0K?Kbi_BB4EyC1t6|3Clbn$rQ^cQf$o@dQHifl*y~`QhphBCP@dA zmNCU#0PU809*Qn0c&aFrFP>jU0julXyL|r6f(&bfGxxGio}ZvZoxlW(MKR10V31&n zfB8Z&sI*luhiU#M_lNvQ-we*6sin*@KX{6!t_;6qien}=tC6iU{xSDk;;$@t9q51I zR%_VmY67#Zu6dFTDcZ$&6=S7)LhM*@t*{C%0L68Y;CkGIQj6w7X(Y1p0k5af47#3>RUj%t9BKU>sxk|CclTe$hR zZcQca0UMA2ZDMgwz)Q@B_=r>hn`G6oaOB03!@k1@ zR=xYN6H)!x{OY_UXWj~=u@Ix(?+(GSQMQ2azC}P-K)UPZ4tK|Z_agv6x8v$BzmxIW znupMn3=vNbdrBh3+s!ZV*)^RwCbDY@uz$#*JFifIW69fB7C+B0&C{Q$$f!R^<2+3K z)cx|4NIKRHN&3(Wq$5mLkrSmK}Z2_HF#{0NgDMFh)|tmjPu%G?CQ z6-w6CD3{7$J}B|+j*Fi~O)-b04e!Lk5L8A0wV9*`I(UaGt`~IlR+1jM8`fJNZvEsJ zTpu2BIxwK!2`VwS0O5hI5C4bfH9AfM0(bb#6VolYrYnA4Ih+{8yUIX(b`@=iGhrzHvD#Aq?UE32~>vRJ)R#lRa|N3I5 zqW#NEy?FAvH8XYoh}`pA5zq`|^&$OPXo9_b9klQV6ck8|V1X%24mqbH^If&Ty_+8r z5fmxWF)#BiTDZX##Xv;~;OgCvsT#foTy8-doC!JxF)bC@)m7p>j}Yw9-PF2V<>)3R zl@E&#Msc7vD0hfW;5HcGNu_b*vuryc6ffUZdG{=I!#4$+XfwK@mC^}#o1nV5LwJ!S zLzK4K6*p`3nz4VRo||g?Xm4sqQ6#EO-tL86A6?7R84RkK!3DZ^{~P$PXODC;d`6IN%e#en)>xk}oh|F5P!L=nqvxF zWNKA68mk^dzTMy4U*mfGcKUYmuRU2fN`DrTg#%%^n!${d3G3U>SF-#2U_(mw+-3n- zNXah$m7vuL>c0{td-%x%Q?hOMevXp8eG}2n0VSJ1-lqlZv3ry_&T-E*TRJh&APrQm zU0@0qkq=|*n&Yn?$tZb`D@g%BFEA^?EE#qa-O^EH1X&9-3j(c^S5n^leQ)olx1wWn zY$(s$PODCsjymzr>tMAp-F&%?L$7f1hlWU~YO+5TQ( z3hmVgZk3;f?A703#bSQCDNx63(iVM>%*t#>eUOUOx@rOO>?VdNGMq*5lyE-WaqEh@ zRkLRUJax0cZU%>&(FT{vne7#RrK?2qptuc?*#X6Ynr8!KMzFrE6tDrp7t;Lp`w&ko zu35GTlRIn>+5nl6s4iDY%t5o$yVU^L6Spg(Otz>2uqil&T23}+2Mqu>AF4i38vt(q z$nSN*!amsVmZE(yk~$K2UFv$D6Fc5(^*tN-5ab?ALe_lEf^n%Fjmvut=#edlZu7!T z=-2NOuuSdN-&MjXhtqm0a@<|SM}u)wks11iz#n>FXV_&Zb_ULnpRv?Z1}2+1oC4at zE0VHkmG2mA^6b>7)URS6DX2->T^w)_LCHOsNxBsSwwC1V>a!zu!;%K#xON@BT*F@o zw#Fr{jqq6`@-P1$*Nzj=y-x~kJtoib%yEonoCV&2mn;&qfwm7-bUM)6$hHUV*)q5# zEh8KX&BX?-(8i~x!!3V{Eg!F7(iY4ZR!I=d4?QrFwub}L8V0io!Bi+1TBF3K(gWl8 zkmScp1K6~L!DMCt%%f^dw4i46x@Cid|Afy`vk{%TgvaG?4`rAi6t0*AX*M&UZ(q7PJcN+N#ad*+(Lo3J@#z3&6ad;*_ERr&h* z2RC;m`}+sGxAdHQ*mhhG|KRQnUlUtS^&Rei@j(>4|0P2@5(xLeL1tc|ZV%6MvpDATock> z!o5t;mgF)p{dodY#dlF1gFu<`#m7`9o{a6$VK-#=h6TRRhD(27%_tE3f$W0tqzQT?rm$IZO zlWhgjw4kubKX|71g=q#?n@Yal&b0pRoXU3gm+`B!gGQpr~X&14Ej?oC}CC$60UgBp?1Mgs+{kIaBeos{D%K0-&Z<+^-LE;F>lDZ_5-+gId2* zq1fn!7LYh;AtNoI2EK2mMjYCet^Ewr^44pq$v5Eo0o<*q8$N~ZQ{j5f{26pi=s_v8 z$7T8SZZrHk@~z;uLGfeC?>LxG zTG6_y5-Hvj)WwpMpLiUDJ6Y9o?+Xxddbej8V9F3;F|RqrbZ$KTz-3en`mW5_>2go57he z`V&g2-wsU@qm>uMGiw)eC>8m)^05`@0VakKvUX*bXI@2HM(aDzg?Cu~{x_3Ql*og1 zI6ba>-`=M09LPtDgCt^(6~u{!rz;@uWQ~8fj(4d}Cv-ix8KzvL9C`(pY`N%~X&_}m z^p&9DuJhNtHI=2n$+^T6dS4DGy-2uB=57Nz7ZaCW$f&;YgBKGTC>x8c1(-Z92a2P^WEFwVy(B)v0{;BZtt zF&-l;KN1Ox9PD7xc+0Dj)+*2(m`Vu*VB5_0OE@waia7`MrZ=16Sj&-28xA@18kwRq z=(A?@ndN?S0hft&P&cCwOx=}Gk%zItb~z-h)OnLU;SV99smL2QTlj8~fmD+HBr7NM zlyDvy?;pq#Vjk#scCP=u%qTNNLp5^Z!!)9AdO#URQ6x{zygXpH2{2NxMLo6*PCK?N znk^6;=i*^L5|TXTeB)}z9D54g#fq|U0Tz{$>F#Etc5~7d;L=V+0sM$4Kc2bCf^6-=+9_+Q^lg!v`G+$J+9n1Uf6Hn^aiwK{g@?`Jfz4|7JiFgUo$Qv8=Y%RHz8D^KgKx4ulD3w!rU~-p06?E{H)i+|4 z52sq-2;+#kuX=8g%@$@Xl8j^{E1T=dXkP)nf)B_*nLz<96>2@kNlQz}2>k1Jj74(6 zxOKd8AdMYlFs=hAvM_#j`adz!U24Yv+2a3f^?pXvWy<7zZm>wT$D6!dImxH+qvPMufmcqKG^K#hWA|stIp7d+t45ZUHY5eLE>uX)Wa& z1UMQ@R#(QxF;gw$22>8M85(2Y$({QWnWfA&Q}&eZt!1l;#(F-y^M7Oy-Xt+0XCU*t z_f&xsmtr2`WF*KC#Lp&T=+6qr5!f^4sXe5{+1lbt0%QI>gP`>1H2>!e|7W%T zGv@t_rngZMKl(aP#K(KN@rmBgXnLsY(7L%{5&tkFB0dwPA>!}q8xcakNg^C>`X-49 zftwr8nFo?GtcZx;LTbb+&KL1902LDP`=j7V8yxr$ab{cnf2WA$a5fG7uNdf?J;dk^ zIFe2Ia(s21#+&<{;NfrE!Ac#v{`+#2N~m%h-GoVW(RAt z>?;f?%QPvb&01lX3{Tjn;H7#-q-a%TSG)P4Ry`xHD&L9=yW~RH_dwO0!Kj3U_hOUVN_YuD*$&uV1vu#}SCJU# zoRde3&M^|})hLGplW~31gFv{OLh|gXt)R}im@SIAqeVSdKYx$MYNCUCRf&puYHwob zv3iGkkJW;yr&st^oM_1f(fjjKhY$A>qPu*ev)<2WdPgPtI%knuqE!GdxI?6;L#S)) z6g=J0Il{xJltdf~khdV^^VqCXE=4`cUy-d6(WnZek(EuC^o>V(<>embg04rov{Y15 zBo~x_ofkl?8!MEj0p50Z#`_sfk5I~Q!dHbvbt~n=%{jYBcgv}PydcpF*`gB7R(+f0ZG0ojjx5PY%6UKYn)HoF^jLf+(M}_RsYkT5RFr7R1<_I7 zq_B|^-Gt^X(aqk^XnLd){aa^MTB5bPwathE9HgjWDX;Z@ zM$@B|@_Vk-hT7u)%}ij{YewL{lzMr`da29b!dnJs9Zrd`Alf*7l*q+Qyn#Ds@PSE5 z-lR>uNg^&nki4K=TmVRxJ4DZyi>L1NxFZ?KMpia|7E(O!Yy+Q%{77k(cKl~Xl2GPQchG3Bt&7x2XB)Ze9vdbHK+<^Fr%&) zZh5*Xz4tB3uNdLKgITawN*<)CZI0a%Ci-{Tu8@xF5ErKeNN!MU)|2}6%1-WXd+ccb ztz$>A!n$&<2S0Ob;Wi_ab_Ydm@dG?E#tIpH&nM$?ln2_(2$G@iJ{f$^BO{5B?A(=X z%#sm{WQ5|BR4q!((|7p9d{z}DX%YC8+f_)4SCSU|gB*|Xen!)KfKWB{@Kxm7M*upm z+Co0WaX24I`zH1ACW*MzU-E+DxN@{3MvHpw@2v$ENqedvqhskNRs3VNPC zla`8#qvS#yFXo*GUndIf@e+Wyl$Lrwqv^4v6!#`Cunnmuuh4<`&@Ci6-YwCYjlHsq zVBZ8DD3?SWEf*Ssly|@@YX>5m_9bt(+g)cZl8j^{E1Qv4#;n8QN0)k(3%VZV(o#{% zB^Q*><2?-3Kw$zy39`W4(r&z;(eyZ_{Z(g(;!Kpw6*f#ORW{5gYH&XY{XrUEhf^9B zJ~NgLK?7#N&BCw_mP|BuN`<(-2@+tKBqrj-Bj3WmUVw?Cg82Fj``2$ghDk=Uk(JFq z$Y5Vo4*0ppFlPIjOIj+*Fv$hOrd-G~Seg*<54_8GKcne=lwqy)wkaICbGeRT z)Jf($6gjM&k(p29AK*p@!kj` zCPlrmwF=*WQqfzaFdA9eEG2_|hDB;Th6#Ye^QI9(=&*A#ZWQ!|{=DV!t`?EGu%&b$#*Wnkbttbo~ykOGz?*3o3UhMH+^HX;FTmIl1Seq5#|Bj za&R?+S&=?D4izVAcw47$#154u(W@+pTG=vLpn6O`t=VI;HrL2@%*i4Pp0RbuMIMud z2Og6Jd{HKAaMd*S}i@&3<=-p^>d zO8e(YXC~t0wU-+o<9-(JpWodl{lhlF;yd(>&4R^}h{z&+lSIsycys-8sTL<{sC=Qm z5j#|tM6a?WYGvC$0@drEM;M(bqhpaa*T{CvGU15VKO0}@^^fqt>mLDMl*!t7yQ!Qb z{X;_h{t>c@R+U`z&l?w@e{O>*hfW#J`r1Dg{?8KsXQ}rynm$nbXF{FD94-j#SZnoY z`V%Nrv03WoB7{^2&g}$Ewd0V&*NI{i?bnIQ_5&WHhzCn(t)Z?0qZ?rJ^rC~dL7F{m zhA{CXk)C2Y`b8ct2BI6dgxp|v?~4|e@5C13%mzdfj5m4U;v6LAXw(V{woNTTcAz{< zP<09IFgN(xe`jUu>!fg2+GsRZrrf6T67U^rIgMadHeVqY%p}t-YS6}Yw9oRyg+2}jcgEx6#!vSyM zz9yL{ArCFVzWzE1p0|`0Dt5<8LSu3Mp`2+&s%28z`x#B^=eMQKvW<{$`mPZin%M#@ z3qF!@eTx$Y-Xsy15Xf6lB(@MTL?ooBClWu#2eGVbQ5cP^Y-UOSc_MN51)fL6r%myc4g&_qwXaIOiZIl1A*8f@W{fwq3tDtP0g06Pu9$$q z1OzK&1+AB{#UT*kT5geW2!dfT*j|H?gdre80s?|rjz9|>5SJ`MK>zzzbrPZ(h=p21n;`Gd0><*k`bz?*!;dV{=$ zIqNckBO_0;`h7ZZrQfFtqm6|P4{Zqb>CR{PeahsZW2B}LJ4RB`F$bK6rhK9l9>enb zSmQs&vwLe#-F2R=h*V7@urN7F8eNI3XmmAyAT#BynV|3{AECv_Te#8JjVAG=(UR3~ z^k;2;qZLLQ3!9Hgq=1q4nBg~CF!jZa)HGtFB^8Z6^i;=<)x-mE_t7>!;WSujqv!)= z#2q=}$kEk2jQB4KYJL?#eXZV_!|#KV>Y~!9LSV2kqdRCdoJqsetbpeY9G36{{$o7* z6X9|Jp#pyMxg>RSAM$|WdH!Iok+){K#RD3Ez7Y)AU-u}Ixcxgq&#@GjtUkq4SNIfH z7;P+UF0z!d&WUBG`xF-xeTqv>BT`&aIsQ)u#jSwv0eIWm-rzACJm&mITur1MGv2AL z-OU|-YICQ1M9>7eg<}|;Tm>dWLfjeR^Nh*42&*`Y7X(5pfiVEr@7L`;K ztw2!~@C&hp7~*;sf#4q=lm25oyTA5l{W%d~vddaR>64HZT{nY2n2qI4K;cb3Vn&p- zaMw*`jVer7Yv4w@`%<51l7KY=q?_9}C?MMVr}#t@OnugtnnrB7q@v|(VWG6Y2X1S$ z^e}+8jjs0}>t#!uClX~4c|f?Ctv=x-A>GEp=5*;=U!8d1WS?+M z4p>HN8j*043c~gBAcJ{TLbx$3uiR4OKgP2MDdB!F({T$3w<(VQ0pW%uti7!axzR*@ zYp&Ec`3O@^-ok|2jRZH4`Vi$w$m#MZjLf-fuUDG0`8Z zyCN1-6Xq+7HWoJHg-3kq&6@60kI4b`q^1$6C#j&`WygbhKLrYM{1`;QRH4oVdW%0;tiYsw?qTLzI3|l*W%#vl1!HZ%nj_!!bbJ;c6d>+E1S+ngQ>AMU z3u2^4_i%?@dejs6G5@jPiwnbE5J~k@qKUz}=m>l;>q36@-@6W{)_*FxZwk6-&mqXz z)%=FMayoVtp*>%3?fJ=Aaqj==sF1OqdOES=Z|iY3m30R|ZMU#@oFi4V2uOQ{94i|) zr@Ng&1%CBI)#O-g@dNujRv}^|%UW?79e;2doxBMwyvavQm68@7MS1j>Wqei}F#evG z_>3xwb|uQeBz55lKI03jzPy#1TsIfF4VmX<9#X!>OK{urV*(isi4B;zXlb~tQ0D=0KBC_Yw$QLcuWS5 zCk2l)g2%&x$9n%Uo;_0O_~+kPR7a#^bCb||_HFSQUQ4twtEm-=`}1AP zF+RgHIhgMR?uZO8sbKh_CJnr4ZaQpkA1;oK6va29(#kwZ19-#A93lt4!$3q>IUBkGth3| z28wloC%nWAWH4DoecGIX_#K=iKM--KoJ{*`9fX;hv!kSiC3CH<=Gc_FBSQ3wYFG|`EBZcz1j_~;{$o6Q9O_kJvSpz#dAf~#+1w-W zVmbz7dc78s$hXs z+hP2{9Tf5=u<<4zF)d2k{2}>ilkW5uvU-ELi=ssv($>oiHst_KFsf3d!^5OarEg?zBpoX zAQ%Mhh=M^JbMCJ$&0;oqLVF?4`J+Xdcx1~W7d4{^T@z`58l{*(l_+y@76=h zW(e5kMDRF1c%0}z#JATX#E25nXqu%x_nu9ZXrH{>Ji$SNxrQE5Ba}2w?hKK*yJv`joGdz626T`y~ z3Nh(Q_aRj^=&+?`XseI9j}Kc=!|i?|E@}_`a8hhwprO zc=(ln3=glje0aF>)#2feJZizM3)9{l9zMtn5B~$DvvChGgc!$%Da4_||`_DlWW zKh^HP{=}IcUTpbs(plV1+k<9@_cE`!2#xsb z5@5z{-@yUHJwKud@nScJitZ{BN_dxtT#;jRPjPzkj8>ug8Tc{xzavyP!HEDq)vZN6 z7L^T{Z=-5_7>Ml09xsd0_KZ8U#e_~h?M9VS#4cFGqlaCN*$B*W8*}Mlmtvk~K|KEB z8T=!k*I2hVik_ksVAoh}WoQrZNar;^@e9ER*}wF>#)~!tXm~`3dmlUzX5{l4^*(N1 zQH~=tzrdDiZcE=q*_(TXH$2vkI}Akt4DS`*;}Ouad&GltvhziV#j_9Nmv@(Q8}S$W z?6$-%zf4(C`A5NB)v5cR}IHvTHybqV(Xe$-3CGAP_`op1w=du)b5L@ zCvt~c=Z$`ML%+$cs5ZIP)D&TT!TJDk8Y|?Hzg73(Y=G7!z@{a#-gYSS#hFhoBzLWA zDQaDdw(iQkkRR(8gv))|;4hwA5;rQ^9$X-U%s{*)ktw`~-=4o$<2I*%qZ>SK$2#*j zJE7H`&*#^VZnyV|ypCwaZ-mXJ-xwQADE9m+cC(0`6pp##eIj0L&3bfnDh`H>U4FDY zmO9Sh5y%;HF$duYXSJv4!r)OQ#m8BcrO8SY%JE~)`lrax(0R~@L-0y>VtjU7B2Z$> zHKcbSk&eBrk365e!(*x(6)e9UbG6PqCDb^uIor_+BzSs4tMwaxQlWY0F|S_tLy0Z9 za9UaTklPDW$R2?Fs|e&d0Gxbh+p1>X^x)IvQf;MwS#{B_XJ+#*F$9})LvqRld!Q}1k()Z-%-zYfUK{V*?7xF#QT?GA^YVUQ*SXgMnL*ghDC14i>HZ^&C5U zNP)Jy?VGgwbOxLE61h;j6F78UFL?SsVyB4K3EJ+#X|~gR2$5uJ zF-a=cK{Yx>xYLz-``^YQvQ80K+%Lc(N#yt-%0Hfg>*RC22tzNnnri$!XK?Nj(if%9 zdVKKD5P}yyD0I&Q!2v)cqC@sK_eVh(&Gjavxf{nDeG7ifg;*9sS7jh^JJ3@6$|*-3 z_{Cxl^gJFwEE=c$AvE(c>Oz_#-c)#8vctb|MFv@YdG5vbR@__AjPApw8SOx?l>l+X zPX>9thNKy|56yV^0l^7s7Z0Pc2Y+?pBZKJUtxJ`u`dAdS%j+J2L4MU~xHCZdabZY^ z{)%{?&ilO)zWo&zh5N5ZHk`m@&uL>NQV@qRvXaG+Uu6rBrOdQal<9#`p<47#$%dTM z)E0CD=Kh4412^ScnopDgfdd2+D;shkb+&fSe13}_U-xV!3a+m>XHgG(y0we%q4N~) z1tLHeDcwxbL&xwfjHjWX^luahp?W{^p`AVO<8YMfX#z8fd3Rr8aJg7_h z-oJggxa>MCdw`auNI^peh_0Mts132YV^5KG)uYbLlR#i`umy6Xw=^i`GxRY4tPZM_wzde+1-Z{9C-Ovdi!IjkI;(r_5;^KRUswz z&d1S~AA@cMs_u5oRa$R960|FvQ65?YAmo70kly}t!hM%mg!T5#iwd95!h&s755L1U zp-2x;RTeg(e^D(rjxc`}Jg#OqXkHenEp!K>8&%=abzf7eL;.SO&&+0!OrIeF1R1n zi~a2oAW7ZZiyf?w8I0O?Wahlnfihl0i8|8Z~J?m zQ$=@-_l|Tk;c9Hl8N`bmyQ7BN*x4hU*KNC7}e%@XmOU=(y{{%XH zi(`Em2cTU6wOnB>(fN6^90?AI{B`H& zor%nUV}91qSa)_=h#;#vKi^&kOupg#dsImVn{N zU4`@WRMi~D9GIR~?em?zH}pVg7YC;5atUwLc2miRo}m@ujk@+=c^eX&q|UC$w`kGBMmHwTY51&=od zkD1`{hTu_w#XE@~w9+w)*TjRWrbn(MDi|+VP^Y%!tJJsCv8xCuBt5DT#j6*u;TQk5 z7KeHsDSi@*^R&{6c!w&t(VJ2lzxaH(e@ak`qOQ^pwe&1Tl11_XUQogFc%!wfrnO{H zOS{(68j)Y$Vl6L=Tok%0t$5!PNZeDK|5jD8b!&^+SgJv+`5v2=gIUX)xxQr3kr6TA7YE z3wCS(D-T$;dshi8(%0Oku$ZL?*89kSk5W&C9Ac;qtwH7pX@~!fhAw7)t+|5@LI{z7 z<${DgV~vN)mo59lB!(iTy)1=V`LlYUyEg`zqn6_BgnOdm!E^wc$RDlck5WrR7VGEy zYStQ(9K9kd+xqz9&Y`1{x2*SY&@BOl!Nk0Dey8r7kttr)+mR@2zgJ1+-kwh@WI?U*MX65?oj`_ zqALa#tpu2rItO9e5NuBJ!H}?ujePU5DY|0d9D?aoFiAAyG`5dns+jS##b4k{wpGa* zw`3KO9c|c71a-WEYKLf@ff1(T|0Fy`$NwNQPn677*HWcV>l|jCf(jO< z0fBrZ)0Vnw({=6WlzN{GfN#kl-yAi)sX!=-{%Hhun*w7xXi8v*`M{3zfyp;VQ;#w~ z3ao~}4i{ixogKei=zsJHGVi1{b539r_@lHagUrf;UC7q*U1>@o8=>i+2g&u8}enq9>C)el{5o9GM84zykl^{=|eqr}uvRZ{YfBe)Y3+?Yu1)y1`c z@iDURs@bKrX^*+k_NhL_rPVT~>5h!91)`EWy6cf&fng&q83IKX5QHF-kfXU;q_v_(#JmZS1)j) z!y^w2yoQ{)_!?pr?|n*8iud;7*S~r#xGo24iNWnCGsD-g9SL|{@lVJbLy)IVX!r#N zhij8>l_Qwqlfn2WZVh2`6tV?G(t_vx0-AYF{1cvnKR72o$lsObbRZhKo3YlvFJ%Uu zeb6=r(9n&wq43~Z^r)Sc%OY& z{02|~*G41qg&Sq!H$Vo5E~h#cnFr%HxX2CBEdUC;xk1 zwN!?9g*kOAVZY*9mk-QcI=K>bU|G-RM@6ci0IWL2O)t2|No;XZ3p;G4cbExxgREv( zgZC0d1c7(8eAd6Oh2uIR);4_~!@gP(VKQpSit?x^{EHy0(-BHz)>dMb#w>EvEe25< zZ+A*#HZg7;wSsB*SVC*DBBAdR6t?E<9~43Rw|yctz?KLmBx%!8jF;z zpAu?9pu!Eh<4C6X4$QWtW=o>RRtx`qX{RVe?7=L=IquH(uYIvoN)OH@Bj2GPB&(ZJ zxR-!Em9yXR2-n7!t5=zS0h6mxPgbUMXbvXdZw&r}w4t7VDeN?t**WdGktIeSlz_4g|4 z3?RYR5L*>fPPCDRwG#*#20&yUPS>@9j9K9fs_o!St0BraUqht+6vh4k0^3`GF&)y0 zz&d?k$N9kIo3F2oEdlI{cLD4Z=~+GQKfLf*Q{0lLng4Ok&tz0w%O53&UMMc(@(m&w ze9elD1T{LNL>f~J`b>g8SwS-y%tg?epGsMTs6S@@-8Dax6XVooMEIDfUXkn@G5b22 zT{JVyGUlEuP>$+T<5CJ#h*`H@HNc#O^7Y9*WbWcLcJuBdPGe794uN{rRe)=!u~&r> zI@gF`oC(4BsrlQGWa(h_fn+>Xhb^ukheynDdDQ<9TX%7>Zs8=NRdQ(LO0`k)1!O%<1J(sa~5Kn-Gwdg zTfKanaEIppV<`7eG&fp24QpEp;Rl*Kt+_7=o&J&iA+%9t1iU( zElP+grTWxkt!PT)QV#5}if-c@GeoX%yq~)(iK1-h#X5f^Bx(WGlE_PK9YYUYMIxBz z=i$$d82TI`UGcY}MZSgq|0I!o+u|R@qf;V|C4nhwam=Lc`FcaZ-a3%c*i~n%P&d1Mfl~=3Bn;*c#Spv zP#$w=S{50}EYO}|=5&}lJ#fl7mkP1j4SA+B-+I~|VdYtNY=W2pmsnjjyAd*X#cv0x zA-S){76}?Ew?h>O9l^Z>{XH1J-5Dxkhohd+C`ySfhZK)O<@y5qn*_4597XLZ%PVkW zO#j(S(<9Zb4*#5uq1r6if$zP*k8?s^7*(Nu+hTVmG z>LLv*(!-y49Vj2GD75$ui>`>>%v=&uBa+dDtS5^amehv5Q4M_9A81%o8ir?_k8p`d z3aThcyoW_sI9@;ucDfjJi--XeKKBDMppSw~(r* z8I{JLK0Rf~Ft6BV-HT2_W|PPFou7b-27!b~#b?_H@&_R%E@?7$#k-|{Sf8!BRg5tN zR;Kr_hH%H8y+rEK{ZhI8QcDuut8b$@_t~bB59Wy1I9Tl6Gi{>NrtO<3Ch|oT6S-z7 z7%V42e**rfWg;%~s|40CzUne&`YQskoz26Ze`%#&UBf$_vEg45VBTP3EFJ@ZvQ1Hm zcd4{M%zfHdq~~SwsiAdI@~7ox=FOc6U38v8Ab({xEpa&>v&>DYstczMgfs<7^YI3JxW9f+$RavOl*b_EEF?o}2YezNE!_!x1y zPGSuWQUgGLg_C zi3M=^wnqV6epx_PGFK7qbcM^WfZGeW_%Cp)E!>-xo4{w<+)e30TU4mD{UlHivjsW=azScCaYJ;QC09M}7XpTjOF0jP=P1>e0{{1w z<3uy+O?a_uHkZdd<`0=Spd=X(!fWU;7voeGvjHJCEv*fM^Y5pvw-X&EJO;^Ovy2ye ze@6jG1#C5a%uz2Oc|!`=j)XmUG07^-mPex()gX^4Z^1_t_?vW1Jo|TTFLx$YLNVP6 zc}PTV8bV;Zv|M)R;G);`%%S047Z@4ja49GjQsTs{2e2~pec*y7)}x6L|8A0%1y{(r zCT_0nf;ft8v4ga>9T;k&RisX7LE@Tv2C5VLK(0RBn67j1Y>|iT+5L7s)De> zQ2TkDi?7%O`b^V`8YAVy= zq9U(xuCyCu>|R8z!hEtB4bZ~7nuGfN{Sg=u2$--}_#zIj7jbZXApUjVCGm9f^kP?x zmA6@xG{NPo=#V7osuzRb-{>bUQU1ySkFv$%@kdd*=q`FGB!*xHAU&$w2Mnl*h(DYo zE(Z#9CQ^wS{ATex79E#iv#J5e?8z~sC_Lu4SCks^0P@jXIGLN0xKfd>%RzWo;u#5i zE(feuAJ&ItPKC8pVf6t))=e~hiX}&D>#<})KVtcE3)XH!z>b}@ZfFU!jsfp?=&WtaRLkZvgr?M)NN7su z^UyBNXXeHRh_bSzzYW)*x(lo3uFXE0!(4|7$hh&XFc1hY{wgTA{aD@ish8b6&Mp0pQUQ zXuS7u4n@H&P@}J@+C92`5moQLzoVuLWYUFT&p_ zb|a8RTv#0@VQ+|p`!d&tTGbF*fpyhI)>Tbls@LVhGMp50cNX<;sEW} zVU~*mdG2ojasz=hHslI0%Y`tzi@DC#s)$*x0JCfq=mpHazh=j1R?M~%%Sfq@m*=7qA!Sr3M*pL!6EAJv@E7_2|YG)g&ILPA~TMHXLLaw_fbYt>rO; zp2IkkX|n_Q7=!;Y#H(41p@yt*fs3x7GG`e-q5#ZI@`}vm6f}uN1c86a!~#%=|1LCt z;gx1i%To_|`z|c#HRR3NT`<0>ssS22D0B(n((-0JmGys%2;)1PENm(i2#KFbq!5nQ zwO}H$m}xAIEb!FfS6t1k9=Vf=)N2rR<1xlXNT;TZb;F(7t5a&HKz>;_>J*4CRY}ur zhXM0M3hVx;BsT6s&|kh$kP)B?S44yO3VrR0f1ZrR7*|D9wVVSU7lEd`&Vx7xusmt!#Dktfioju;Bh{EIlGuvSnI}_L=BsE%=nj zdoGYl(@+JzP{{Posmn`ao*}470*aafPKZdM3(>CBRO&bxEZ(q8FTMeVy)}>_=3DSJkspJV-FrVih?emq%d4!fRisgi2bdi8ed;!EheUpzi)GOMLXDV>XN$;4l7PfvVx4HcVrQBdYBXYZFd6nYg zN+PTOT#-wf%@sMi1Y6p&iVk0Z+(~3DoN%gdGOYXQFiDQi_qVi1+R3YT8>}@s+F>GP4_2 z)q)FQRek3-YE`WqjIWGXRYRup6t-FNs|j-hF9c{>T8%0S?AfLj;|ZVkoXlD8OQ|$P zXC9OMfScr1Ip+-ZK4=a!sF@z2)PPj9rr)bX5)zY0jwX_`PFEyf9gM#kK{9XFQ6!mP zk^DDIR3JH?0rIus{rp2VCT?W{hntKM!A@VoN2BC1hhd%tDq&y3t7n1$_&km%da)-$ zId|7jgTbdfz5sI^=TeOavkOmyW&5Qq=xo6G9&>oHMpsC902f%YfC}8G(mi<@2E{r8 zn6oAQHRYy{XsKJl%^yjHy#KfCeC5Sn-BcbSp`+o4z^c`(4jAT{vjIqFsv!V?gp2o{ zCX5HEN9pcOzW<_F+3+Uxi8Kwl)w^z+^_MgoQ3N*!pjlK;t(kfi;d-%*IJYR2m9of_ z@$;OidHypbC}fZas;Izgm*4c{a!Bz+dctb*Gp!S?&mIU{_P}&qhnX-S#UR7u12T(1 zY?AoxW*ul5{VH1Hy@FwSCUls|?>3SiGh5IYa8`O|i#g+cEO-1BNxeu)O`FYTj>nWf zl%6)*Yy&XnH@`(K900x#!}+`FBg)dVN^SDf3Cdcf_-Wo50D1(6s;bE7O}q4RJU@~h zyirHUO?Hq2@obWWwQGn52SBkL8A_c^w#j+Ji>LZ`5&}5Cm3pSk+mx}*^I~P%tPVWR!|DjC$Ly@z?4SeYn5Q9QvXHi>=`2AHiaWIm%LsGv5i3eh zv(PJ?;%NpPyI^%aLZNdxKOspL5S(do>@*{rtWxny%=LOk8#q7S8z>8B5xJ&@KIepP zZ0IXG%Aik=GC1uMj321EQjJuX#wO+T%sx}0tL@-(E*lBILj*x9pp{lo9Xi3rY#xn< zB25)IpC^3kMdb~s*6pa~#SYq72-t%LgK#2eoGy6|q_EkWqgwly5?Yt!>iCfy=#AR@ zcPvl7$h80^^E2g#3>wgZEcoS&0wrB{!Gxkg#-cXSIjzgj@EToY4P^=1cph+3wutJ- z=vFw(yx2-@NDhy`8!c_>1yW*`fGPS=m)DRrH$!Oi^UdsI)ijOSoWRNEqW${xYFyDu z6pQzdU!m|@QB{>bW&l$J1ge6-KvgYfBC0YK9IH{=bv=GWfp?VA+TXLktFnLm(WPLW zuiig?4YP@fk9q{Y+dsbkqr}Ksq+e_Q_{!6SOpeb;9GP;Rz1Fm%J|utgbX9>uCn$v| zgI?cI`Xz_9XHhsjr>#TS_`J80B6|RSyW-0^K(dXh^$tKu%}=SiHa8`iFW;vnzI-sg z+^u)S*-^-P5wdp0U(v2b_Npu7o}9W@2IH@|Ioh75#b`HEb*)XG6Mu!l49n-lm-F{k zvo;W#6MvQQ{kak3QR()cy^%DM?fr0r5!?H%Q?YCbAPO36tVjQ50F%H_zc&I|=GmbkoSq-}$`SSJ`LsQ;6-e5nY{GX*0 zpQkW|j%Iu4`N8<};U1Jw>PdA&)^#!M`8o0D*>f)t!h?V?7=OX#KalD>J~Q}O2E9A7 zG8z_g{1S{By)MY#s@y6^{ph*~7TXaSJW`A?kyFNg1RJY-w2K!1~LS?Hvo6CRf0 z$-?4ih;hMH7m&bH6nhf6Fl| z#Z#2I-$Fzhnfq-}zEiiY!5bHUTXr9%o_Cv%>iPlC)BsDEl8oQF~~KZf#UP(dDTz=(nA zfKT*5c0+Lme{Oz{c)arfP*Y%!N_pDL1Q03@)s(ZoG1~wj+AjzC+Nt&JIdyNtY_57> zi31nt0|oGih!1E}ppc5cnU24yrNX_vD&>V97X6X(muP^aK=s{W3RwHXt^K0yE|@kU zdI}ni+kYUPZIi>pbreaAiE6m&3Ty^!iHFnHLK+~I_xmab4|@Y8#bCDMH;3@fV*3rD zbGZHiJVrg@9evE9O9dZHu00%12<+r?l)0WGiR{?zpE#VYp}e7jI}V9BZxnxk=g@G~ zY#fK{1k6B{H*|S8wu@E@#!^#8yp9IEaT%NF}yH zQm0LVz@USFZ5@hu17j?nu~p+2y<84e*DEnJZ|~>)QUN~R}0Xpo>6dvk4h6Te=!gbSh)=+LqWhsZB%h3#d^Il?cIIZr*LK2u1U*U2m3 z*J>;8rm)=#P8FXZmmRO>LYVZVGUi^oTmy@DXC(CR#8d?!+iw87=1XBqE(iND@LEaO zf5*V;@5LVr`%Q~??U%xqTn_f_yb7@t-sckbSpjU>I_-E@n_}0l`+gdbhdiIi{_TO| z4m$FoQ?>$N%y&X8*(hku=S244+Scz+I{CFfFuD>)N}NFeh)~%96AH@Yiio&^9=U>2 zIpphs!=lr7Sk$p_*iE$uKEQ*q%wn*Ds96itiCJ@!*4SQDVQCF+2OEw^e z>Jr^FqLKb(KFU6(Wn0|>b>nM$vDWe)2|*A|H4=qzC5v4m#Z-|U#}cYz*JFf4YB`bF zkJ9W+#?YfyZSj0xXe{IzQ1aweuqnJ2j*P-}jZFw|6ybGC=qBn$5C^`#iS`__L0iLP=XH?i=(C$UsBF*dp-G=Cv0+S|~?3o|7FZ#^`m)(yp zvL|==z5RjTobiCA&6xp6k>(`sM|1X6oKEs_@|(jF=3~S@0S_h@HK#(0*84@JDOof{ zvctEu1DkS&QiR!xK*-fn1x=A`!BG5Ao6?uqMLbT9pFi?j$mvd7co-^(wD5#KqlLf3 ztPQG9_0jZO$P#7)Z6TA3(A$zlb%&~?v$F!+J|+^lPud5JL0%EhaFB1whR;&SOfQ1m zjoGfS4<(xz)WVXV_$>q|+rnBvinMU{eQ4qD2rS@3W-EXVZz{HQV3P%K^Lpu&OD#DN zrw`Ege6u21$uhVgOmWpWa3zikk_1AC%oQmTAtj5Q6BFaT@?YkGaK8-mQ zBt_n8KkxYBymvD1P0ZWfJQm5w8*U;?n8RQXf;X95gx!f!jo;J62DP$(IzS5yIZukE zJZ@B0a`4Gqv8lksu{I<}nS$20cm}n|7YT)nkYkW%`zSe9Dqqx~u%eB65#+5X^vPU+ zoq~J~1oV*K-L)vA3_S)}A|!0<1XTW!RZM8(b? zj?|Obme?hh?L@!11!9{41|0Gtwwo0UvldZ6;(_hXZOCk)a=-w( zk(}cqklEt_CeoHG?nYbYtS$(R^%3&h!V;zy>z^DKrI0vSi*mJFyUv%{lHJMdg$jb% zirS%jHe`*MbB}F@)1AuIOzBHZuj_#HEKBSRmhxvNIgUm~|5)iU9$P;Kl|<(GyYE6P zZ>f-0R{N;>tz-#vgeaPN_G6UUrnBhuc&8vxp?L~rcLmYxmOv3pheFx?h(fO{MSyh( zJ*`0|0Reg}udc2HKt~d=j^r{nu~3(I@=i2yiRAU$#cbf`tWVZJYQuvEE~C`ullhmT zXH-lL@CRZ2@+MMSzHpTyN|}ST-5JP^n2%_UkLXab$k~dBj`8ybQhT5{@8F-1S9Mnj z{2&EF6BA3An|K?phK&?qcdra+pB}^}BDD=arM#>(mE_=)Sq{q-F#F_dTb@5S?@r$0 z89d6DQc}B?6{?I`Ln)I-1&X#vZN35pC$;4@VCOZpOrKw-0aNBo)F{Dz=4~BCOfG6_ z7fFLVc7vk5<^>QJ&EU79{8wuJo*+LucP1t?t?GQOipfPqkCa}}u$qUq-}%X_e%W*D zW8g7QDuT$bKvUD6l&yfC;6fF}R^M6xm#`Jd-u?KG^O*#`cwTAm(gCIM5Z>gvW7JNs zOr+Psq9T)Kvy8hBW<2R1*vH@gk9cvgjvnj&OddO61!Y(OE|N~%4ZC z7G_!@);Z26c3S7|Lw9I`(<0)TI~8ng0G2IU1U;+F9I9ZMRtR>wf|Ue4OcneJ==NX< zV0)L4Lykni`2-1pFs;R$CDH}cXhDx{CgAWD&V&9+z5v4AfRM#=m>Vt;WaAkPShqos z0WHmZIR1dd_#%Yqj8~rUB(az+G)Ncqa&@V@c^iNz;I%oxJSCsOSGmD*w-Wj*Ku*hd z>}pNPHa}u7qOw~i&jK(TDu$dQ3u&;i%v$sxvdua#RU=nqUfSh0@XtFK#@)^9Mo@%c zU;&dy6)8zA#PohjL$^~<5nb|H1?>5B8$n@NBi%L;5A>cqC87>;wV2E0n`{3j0bXFg@HZ z?Xey>ua>;NTIyMZ;gk=cnKD%aa#kU`NiyxRO6>j)q-NDUU5Q1ZiD|wR-5Ee|zdTKF z7ZVze-u?-(47=HMf}?rP_-u}JAs8@th!_M}B`}z?yIVRunBktfbjS(G_cu4L$gz@O zewyIjYyu zmq|TCcM}C3+Ggc^&OLpl=AJzIa4ITUC`8w28NV;L7g}<%SD&1JYRLCF?!s;up$=7g z!s0$A2V(&zAF~{PfnKf%&|6Zilwxp|vZ+5`6`l3bbtAZ5#x@q90obnw9{Em#?UJko zI!*-Lq=N3?oRCKjtPx6;IloG(BqHMC?GgEQ2&>#n(6omh`ST<$L=>k6U767;N3le} zLa4YE6=!V4viI19ZrW>-0$ggH^&7LgEK1Z^P zK7gk%HnuhjFH<4KRcnYgBEe$x?^ZyisfcI5MD&DkK8ABB3!;OXqV!_z{H|>mS%K>dOg{Fo47L584T+-<~a4{uaj1 zCHRB9R-PGV1nsGg7v2e%UmE)%n zD(*-L_XoIx(uL!Pu;gwh3q!}x^$I9g1Zbh?CQ_=K7!>MzMdRo9*Mpf;s?T(UQI+vC zQETD&DMa@dEWr@I(D)&uJ${uVkDm=$<;GfNYoy9{^EeZ9{1jICCbf@}4_q5Dxq_8OFi|9K(z~?Vgkji5XN~!W#%Yjws)EK-5 z%ps1*u)EB+Ls-Jdl@9iBj3{I3Oe0o=D2lcPqTOo?p7s$T`ijWdVnj|OA~TeTHAqHY z_6k%q#yzyLgxQqM^AF!BO6o$&xu|&J{0wgbp})hHA@GIi>rH)%md=NwI_f?tHqVUpoVVw za^5j()5uXRm=g#ZKSU=qEg&KnIEgc$kY4z1r-h0EmJnxv)uqDmMzy+rA3J1)Soc^I zjV*sy9vSP=s2f3%s|}N4WjsIg2;&2i~3L;8%g4 zzx*7}wUJT0*vIeKMmJ$wx82iCN{MohMKW@zk#_l-{j^GG_8R6yn-*lKV5kY_Xq`z` zM-$Av_k%|ysWdS*Ux?9++oUQetg z3cKmjeFQdcI|w22_Y33*B?T(E`-4+;I7c=T1BR?iiaf|QTL^5kpjH|;a(wACpm}$5Jvr2$sQ0hjSDi9ND{N1!XJr0HNF&~L>g}gz<*M}9e5mkOX`5FQnayU z3)X?p8ST~~EOrl2Hv^laFOYDf>u<68oFJ5>n>1+vW%^thwxjcAP3RRR-xr>ebc;)} zb>vOmJJL!@kov%XtNWG1?P+q2fc(?PlJf7R;ozqI>PpBny(cYp$Uj-Dsv%zN{x=1OB*cad?)&`)^*ruI28=283rgGdC_5qy4;p93M4 zU9=PH-CgU2fC$&SJL^ryGXT*kSSb#27(Q3dbd_(w;vvW3OZ)~<s)#PoD+b%`Tt zxBSxlaD%OQR?glnQDJ)47#vGjW8OIg!HHBSVjw5D2F|U$KywT{hHjFiNF6FsxB3~8 zgdXRNWiqTw`P|=gCg+tlt*91#NPL|Wc^IO>ow3Y|kjG%Q_W3)UU+MCFhel~KkXHpu zCZpAZ2vN~@+sGIjSyWvxp6i3lsebf2M@t>V`=|-}SR~%z@wPQ;|kR}5IR3) zAw$sNV+6G+=b*D5dG8m)M%F;-7|^I&zxRFls{QXxp81nl(RN*|13N9}@9K5Tx5iosu;tOuCReB1Nai=AzY%1#bW-nv}~7D}O6 zeZwW_t;1P{7m=TYK45!Z z+v`pC_R)Su7nNMUO|lrz+j3&l8+H7vGVY-Aj9R!{9x=s4RUV+yZm?20Y<8glfv>D9 z{ys^Q2SEOI%326^ehLT(_P|39euaGI7TR=WBDL-|i8M|#NFBHha7+M^1GfQFOv{`7 z2}oRk;Y~3VcCx56sjjc;dO0L#+WTfb^wFI7`?@!5ug)N)puJQZyis3h zLtF89lRjpEa62-S9XePB9wFU6W$uNFZ1zz7o9)Uo8?z_u?0lka-%_mKJ1GnS1C zjtd%Jfug!C#c+p82+AIWLVjtQ=z`e4Wh-zM)w(R*WjA&{v;j+FNT8HjQ6z6&5+W_> z0Bmak(67zh2Nb^3=o{|87VODHopO9oc8fu(t_M1uAwO-6N7!%7JC1y1oV0duC)0e^ zJ1Dg~yv}2Dz9AxIL}ZWvz8sNrF`~|>1~wRRIOXYZ^ghW}jErN8T?jM87V@r(arypc zoA|?U#poeM;bWlc8D-MPdfUJPU93W%hcCb03z_?I_7&}=_6Y(q2jUE4&sne9!O@Gi zkGUAF6)wP1GXz53)G!#5L1>LjGk_4bcV;9Ch1pwATM6ck8hBA2dr)x>r8uyAfjIm< z0NP<*hK6lUP@Oezg;}nFy^Z`c?XSGs5e*DFMwDRYS{x|E-A6d$1YQ?E7$AmU>}&8 z)@nZDVH=RobLmX;VxKJ|RUn_68pil*)^TX07}p%Rx@O&g4^WQM*tVp--DS@E1l_V8 z=^`n$m3C9n^tv%RRD0|PHN>c$nr@s$z`A!wcYf^(*Jg#+fqq|7A-x`$UGg#lQQ=S8 zwL%e`UTpWiZ`jzmAEWLqweD)64NrXag_CVD_ZZ^vM$mVJ{`Ak=qYAQ~BGZn?X)g#~ zu)g9MR6^G5L_-)WwGUS5%rklhMGonP>G*Z3NM?xdUTgygLUem}XStd_{oIpL>w1{i%s$|0%s*}uN@qS*^m_0^ zG%>>PD>!j7!qfpq(ItMU0AypxC`4WGKqH2CQ*&2=0~634rxi~M6cFcogyzNOKNZmH z-|}hH2G8?TU55bmWzsCP1oM#ma4G}{*czk`E!`PNb&%uytn01t=O%4%*rU~^XDr*)&;lAF*n-V%0Sr@hiLjlnC7EF4O!*MRqw0r@1OBLKaia!< z%$`z(ivI(6UCl=m(S%;+VqS;JKrzmbXl*Fc=w74@%6B)*jH7yi9S$r{%tA5W0RFim zi;nQewcglc4?^5p-`w3!@yr)2&?He2j$icbEZ~9D8z3%pj7Sc&E)2QL?DqlMJqj3g zHE%(LG(#XbyjpzqsW8!e3YCBjW#+<$_8?_YzPpCjN$cVnHZxMOU4gMU&F6ZI*_?E7 z(c@}BzXrcO%X{xs50aHIX$y8`pp~{+rMNIL26)v7>1%6%7qgdcg7}(=*Tl;q z1JVn}OHQiz;xNYeW5;6Ej%LE=un*LwJk(UlkEtbfsh+wNxc|Yt zN1<8}Y4$if1bt+0F8U#kCYF(@2hBs@6^+z-oEfOWf59b0YU{d%K64O)vSnH(NHILT z*wmiF!S1ebtp}zN`)=_CD6Yzq>bL6h>;IGN+K6YYBjWUD9Yk3x7%=-{xy1bJL$u95 zb+aJ8HaIW+I9wNj_VpyZSh+s-0acN%m@M+31=rg)82~7Jw$t4UT3;V{1ui6PmHuFu zN7&V^G|O>S46Y&acZt^)T1$|T)?YML>}C4Hy;#43%i^&?A4}*`=JNLihny%5UhEK; zlhVMQ@{y0w@4^Pq&swng#Ma`mGiEm+iB2za)(7ijjVsV{&;{tFuwa1oEvQGBQ=l4o zu|I16aen>e8B2KdE((O_*Eg~BW`0AQH5NG|4oVy&)EgAp7Da$aALS%Pz6^fdp>qk7 z0F`c}#Wnb&?dN411?;NZHsTrU0Yc~b9-z#_grS$i6ivaHh(aEq@CmvP{}D7Bq8!6{ zn$UTY=I|SI3Z6uGZt4YY){sOdJ?*PlX{F%VN6hYC^Bj3dBkV#k#`92-i{;#bV$mC& z5!D)JN}-C$tkN6(lKV8NuE)-xjfzZ0R6Z|uNzRhBsi7xOH+vx7`@-rbJ}9|;b#vW! z(cHD9xl9RWjk+E;WvCnqX@7~iScvGQ=mm;93yQH_1w~H(@yxdT0K$R}=EOmmBX_Wb2B6KnNh7Rg$?U9WkAuQ+FG|Lcvh^$@!tJ$CXu8Bo zn^UjT&Q`m2U&tie6ig=tE*0CihOTtZrp#J6n=$}*P`NLHZ51VVML)#w0WqsP8+}y=g@)b(ZHm263eC} zB0M^2O_U@~TDwuO7cj|wmaY~H@-a@4&uJSED{kY7v(QG72{s~#!z4AOS}n*;R{(zF z(ma6L`<5G5Bw2%=pTD;#$=EXLje7b?jyl{IV52lKWn`JJp`G%~&kYblh(Re2s(jtPRu2tN0lj>TlaPA*EPCZVO-~9-6q$jMvk9np}-2Oema?^{< ziT?t6Yy5V_zaYa}m;>q(#jUqERKC=a`bV7uN?d_*>S|5bwZPpvrCKuMe7eH3?#DCp ziL8v>%S9i1WYrgg@h@Ch{$84H5kOafv^ypgVqI?p;_|Zrk*jHt)4i+X#50=qU(AVr z!QWvs544*ThrQ3E$x68&?fIhiK8di4Lj8|7iWOdmxoXr_`X~Yl6^7<2%cy2&gYJ3+ zf6!eybXA_&$okR~UM&BFm9b9$f=B?pLbKMkwt#g5W_B%n&w~?(`#mestQ$~RJ{|ab z;2)sNQ*DP)T3ZcWPXV z4k9;~nnyWTsNX)MKybMAFIT@`rclQBse7U)BH&Lx6RoXe45}Ug=6OADya{xzUuAJE(sT{=+c45G8b@yzBMc*w zguV(qdZVTbWGq$yoI#O<7rQK|p$}g;9`o`mrkt1?u#ipwn*$ugE(2%y%b7Et!EYYI z^Q!kKLr1ss$HTO%G7Q=+!(sU0P(mgSG7-Q;gL4tSlN$NfT}x_dIwH)x36BydZ}eUA zGim@P(iB109Q^X$y(x<_fm67%6$5ON1W z9Xnt)Ko7wp|5`yEPvQ^+4A=36@o@EGpL?;%_X=m`z@!K0V=tHwGEQV2m=NM4YgWDr zCcOyLJ1B}1)o{u?@(h!a5Ps>332NH5k5F8|U}EO4wT-{)vRZW#dcQr)eB)8bNat!A z|K<3Hc#j+?fZ(T2!H~??N#@%Yb|xA`G6)@oTTus37yxSJ{i2}ZLyVQ%LgP4&b-Ktz zgwLeYz{C3zVaijv9E;1TJ>23gmnSn^5n?30KGn1#^DyEzC=G(OnFz-&0G&`!mAaAQ zDQblNl$Qa&q7E4;KqSnvWFCA%YG`~J$Fg#oiXCO@=;OKxri^1(y_gKqg2LNr;c!gR zkwW(9jc29&J%72!=c$!<+s*?)0g_6o^I2kWFh1yJj!=n&89=ZNDlUkTvi>oQKQt4*PH)ujvG)h6 zFoxi$W_>Igf`#!))Bl0d_%Z%CI$1a2zEYZU8#Hn8N-LNT1mY9`GS6^%zIMD)6GOh6 zl*~ispIZF@X&qQ=$1xd|S!V`%#`jkBQ1U{2;T+)N`F-SgrBSR^iAr?_@k;MvY0ex< z=Ao<@X?%@e#ra^lG{~O|ILj}2EjD62Unrd>c(H$Y%Msx*KZfPE;eLxuKm|a@Fw-yW zB5-&P`ZCB;=%NKhQ^uMyX2157(SC=UGW_^2%Bulk*g#(4o!V!Cu$o=i{^|eg@sUr# z$t5@h6XmbJS*vd%q)7B*LHjviS3zD|CrwyhhkDpK8$rBovl#sxLH?FN%m)7I|8YF! zZMT!_?CmV+TH%)uR~8FAtL_qa$@9Ie&;$}Jvc3?KUtKs$!OE}4_3f?U z^o`PUjn>Dn=&w)zj{chcd{KYB@PM7%!}HDg%op@mnbd$j{o4Jt z;br0enyJ>o3a3RXDHt^l3t}yvmu7{XD~$ulBN7%+T-bKk{$bXiSR+Npz4R_u4ME+Cc2yj%`#h=OMFcW_E}RheqC{c#qYj z&tVoMiSj3=plaBg+V5M1(oti1{{i;H_K^(o9+)<}XL*QXL`k$X?z2DFOPtUWiJtWK_e*342JmCD}#kRUd zvOr;sZKjV!0~j{jkN>Iz@l-X_25y!@l2i7_vVV58E2e9Lhh!eoO9M;9lhyn6i{m*q zq~H)c7W+USOT>3?!5MHmy>nVnz7LzbHj#Qa9;as2o?fA{@17l^dIVJI2{C3B#z!z~nAp7s+%N%?`f0mhBaSy7=;0dUV4?9H)_G@^PAIHw! z==EBq*h_uTa3;>jlmAT*v_h!>{cs_Blc>}y*zE~4)5OXfhRN{lYSgR`* z^1*=L$Vxdm013a=2Xm{-+8xgz2gu-jFmgz7DxN{}GpM73g*Qc|Kx@1!#3^uOA53mD zWCv=#4<`2=mbZmMKA7m)EDs)ufwqre1K)NU(ReBPU~*faIAUF~riyB(4X6WVcbrRz zJfYy&hy&(oE#(|AoJM?!=EiG{FV6yd1`Hy^mHrQ0hT>21COpYoL!98U&Ju8s9&|9fit5^xPZ>*ejXsu$B?9oQ zvFn1pQ?$k`K0+$GyKL{kSEF8F%s&(lPXtL zey!{;lwaZfMCYvzUwYyB0uwnbs|DpKS27Q7CQu#{P)9L~7h9yf*a@Az zuaviD*z+JbjmmX| z+03B=V8>|HxBkgur%{|6@oN^toBtU1+)}Vi)e>5!`bje?lhdno+bT+;UfFHjV)i5I z_Poae@*E883dr;OYaDqbvPCJ>YKFQ20B9boXnyfW&DA9L{(MLn1sLr)}92wd}`tXj(tx z%=+;^+@{^a1>0D#fcVo{Ph46XeROGaCZ^9Hq>Q#eLp*!jCkpI2h_p+6{+oC|l+M_Q~oKo9Ff&tc1rc~3VH zsy<}RL6ZVOsRNFkx*))N+u5&HI8ax;^9M zpP?_tB9}%5vN9|T-@+YA*qjp#`hd$$Vw!r=oqklS^KWcBXJC4<9owYsd7z3l9O(-K z1igkHv+oevzLi3$4O6qgegy@%;1PTDHcLcA`RZe-{2 zBJkGDzyU8V>Nn!Aoa#@exV-WTsh{KFC4DS49?pb&6is#aoppwC7TM3+7uM}-n}NPx z@7J%Bc~-%Zr|#9qQattkpy1%_=ZjrVH^{!+e!lT$Xfgkn_H+JVaAMSc{)}xZ(l2XB zpRYbo<9mBs9u&2z!2Vt}`|(t;PD#V@3M72B;kam@)vSn%8jf$a(kdy?{Lh72pnlJ< zwP3#)A(gye9L%zpY9-XcU%pgmQ9=hd7gx$!IHgMO^BgP)L2mf#eur)X6&WOFr%Wr{ush=K3W=s~0cF_fn+@FUR-36Dkri1*4}I-H8xT zjhGa(kt?4XbtBWTX;@2E<(+L;9~L%Y`vLp}Uzr5=bI$}NF#JuEu+e^YwIYHqDrT{4 z#-8IW2jy7q3Dd_Zl~L{8jb|$69D~ri6c`>gh^jO`jVtK2u_CqmMqm6rsgI?^-_kWO z{U5xhke(tpw~{r%2n!WC*j0{RpiS4*(BYyY#Jhx22O!I0SS)4cjcYO6sCgf{m-!%6 zL+Dcps;MDUO5e{EsI{4pTKk*daexzq&b=A)`I<7P<%SAS(;m=^;B%ic37dHFBjrqr z02tf`Q69{5_hWv-mv(g8K-D~%tagwRlb`4Y0n-zf;m2IJr3|}JIoxjUt9rSAYhAge zB%~MnNvn`v=q*WJETPH~KT*q4j8?L4JjSZ zn>hAS85C`LEAhO+_&gUPfDMNLBMQ7!*d0&W-`rmLLja?uc=k_7mr)WtLv|j8CSE)swp{KlarW)BJG5Wjj3!HyK`JC1*pZ>m%T$8ro0w*>s zE4iH)l>}B8%KERL0GLQPw+&G^svr9RsEg%N3ULdE9zK<`YA?1}O>77vxmgGKIH>AT zg*>{=Dthe>T^9CIW^dsvEai>$rHX$sf7 z{=9+D6-ec(`t!DbUR0{;Fh1Vo7ZprN`?=Om)*Gvnfcn6)ul(es{}mVvISGEi3Y` zj0Zmh66|lE3iL?C^B_Pt*p!Yl-#${T5W_Ww=u3QbrAgyCYAC7u4}>ULq8~9ZQcbWZ zasinB8<*B>%&$Wd>vHGC@ic5K+*x^DW{x3@l3>!uwX7?OR@@@q+Z zYx)9kY+?1BkiB)HV$@oQ(O&$DlGffz zSzuq+-uj4Y`j^^U`&gV-!QL7*89e}3mef5J_m{*gF2yRdfug|MOzP&@ov25LDUi#0}@Cdg8aEMj3<`)u>++K(3d!3!+*v`6gRFZP+=UTh~+ z6tDxh^!Wk@oTMPF;g+52K|7_0jj-PyR5(;*iSeS4wS>PtUzCchWkQy)v&H@osgf~b81Gw4{MmsNnN z{ElGM{9r&z)-VJwcJAem7U01Euu4i+KXfSK2o_2lZkJ zuxg7W5LEjn9PjZYU`66R+I6a2^>`1S$ETb3p^%Jf6~yb%hEdDXoM&{-`rY zC5b)!)s!Enu&t4F`kXNALL=!%q^ay-4#i8t9)f)&YX7P(*kBSbGt=SR0Wf$M-1hQsGZ*bk%fK>Z6xog+l0Ot|=L+vi|0VinqNcqUKa z!RHp%;l++}If=I&UE-W0@b0SqMeFV7uxjZj?&=Jx55`{&=Zmji zPhP&Ypq58FY6|AZdYNx@4bh+tm5L76>&x{q3uHTOpP}#2XBktaZE)-LFPtUNvpP1w z{Z?L%5byp$6XeMM<$C@2@#yGv&?X?oZvQf(y|wPKwAigY@;!kdA&!Z+>7S(PUK z+G^nf8a$q#0s2K+Z0DC5K0je!Ptvl57kl9hc`P*_oC!1E%%#E(ks68j&bVSBAJqWS zgH(vbd(U@SyW<(;0MgD!b09lnh}-=1^gE69%xw)>y=JjW-JcF4#m~JCT`ovuK3(k%s_Do?A(TBKF_MpO5Q>zr5IK zzY&JwTzH;7mXfubU@#e;p2nH4!2cOys1cl=#|26jqU~nd>O#8 zKYfW92#&hD&05zA6!9IT+GY@fT{Y%8Y5tMTJy_?2WrOVsT=F}P=%ptdbt~{skNy>Z z__ zUVEg=S-f6bYm?B;px!F%A3Mk2cJAc&|LAAhO*TBGL1MGeL_Pj^&Ksha=v<@28`n4_3H@#lYi)K>O?yQ=99dZh$ z>G+-0shU4_A6Q=8w2)eJD&?5qXH&h2ZP!GG)Dm6@U-n$SDZd)s3C-K!4Hfwr6Y0sD z-vsp26SlyQx#(Y@&n-4jB0UvNpS+%?S22BW;*MSkhW9zh+ z1phGiH{1Q6Jsv2Fp6icw)g7FDWY7Byq#% z4vr!siotZzTLPvy7>Gbd7S{RvfI@I0y67UIC z_m4>u%rXDWpKt)dJVXCy% zFra&DFb#}jAZ0)yNr9?Xvnt`)T;ZYp*TG|$kNJPY$rK3n78ie^on#TJz9~Z0HwjfY zp+v8^H=;K30U&*arskS5$`wWUm>L|@>wSVCa;l`p6lmHo`H){EO3a$N+Z=lPY8pYA z$Wj31qGfZ5yv*vhTQR_?ireuquNi<+?m%%|q6L7paEt?Pff$3B48E9j@jkP$o{8Z| zV&&q-uSCXg$o%4H*YXP87SebUfZy0v;g%}b^43tF;*^0{`%X@Mv0LpT)EDP#umu=y zMzvvm@g`82d6c^n>Pjw5Bt%->%pYPZf9EmkKwo_A6;3KL73zyGN;@HaF_)6K`zOOt zxPe3rrX;>cQ<7KuYxxvijF06^ zPfi6~fs%OYDZ~$mZn>1iskrC>C=F@K{6;Rr_6sS1AZK(<64E~4}|3^&b?(T9SeA6uCH_i`(@Gj**I~UZo3;J({q<@HsYq|_R>!N=~?_p?IQEZ{FP8-8PhXs#dg%y zD=--!lI^~V(ajw4(mnX$WV}(LLz8iuZVS=?nzm{J)rB%38tMX9Y)8^O=9Mm(z)#V~ z_}Iy~!<5KmoPQ!REcaymH!ed!TRA7=r-aQ-#$dd;zZfWUROI#{Y&7b5u>&=j(_XFn zy369hiR&YSeCRyZ?FRV(sa^)T?EwmQ`1q)aNLsYdh5h{mfu|kH4c5>T`^~E_OPx*7 z?wZkCd}YzzjBiFToqba=4CA)?OI-D$zrBP3d6qF==^>IZcWgT|n%m(lXlAj8_OjwS z%x$;6t+xEDS?fvz>diHngMXQixDUG$w{>#!uBcZ3aAbw_@DIB}nmz+vO;vdKn3@c@ zMAi!FcbZ+%xWub=4Wi?jRiwuRy&caD6@jfnx#Jn^ovbAHFQvCy;_55@cC?= z^>BSJCc{BRvQt%smP7i(bX`UCpk*#YX1w5Nm%luzUTC-ducTcxV+nTSnxEVD>dQAX{R>CU1-s&RIjjqo{NggwnhjmgF zd*fr`y4?LS7T+J!8!uJy2|niXw7oPU>-aL3X%U^coetHy8twuW&+TF(c7^4VdEzY#@*; zoqVaW@?{i3QhUHtXG$=~eC4p4db|Zx#w&f;;ED5u*cnoVU6g={VoE1|6cm> z<<|h_RK*qen8j~^`dfv9WVL;PrirhiSm&_X{`ALFkJr`a)*~oq5R_%B$7w!IZTn56um`Z*zte%u>B0t}+eoQMbZvKd5}8|^zl{}^$GPan6Ro{v7v z83wd*rC#k%Kd?T4Lt*7?wFC5zA@TE*IcU2T*hV|m>(IqeEfV> z^1?y*`Q(LdL_qjG9IvSQG~!R*!Z}KV+|q7AM)Fz|05fReLz;s9jkGT zs1sjNf*bKQ_?-?oPl)}7Or`rz7WOM!SJ|w*D`4edA3po-GPi$7Bv*VwufSC4LVjo^ zO-XdfY=%ku zr}_90nPnj)1nl>pgl+OOqz0;#!TcKf{5}_Ddw&W_1fnsI5`_)VStk*ag3jhRLQIA^ zeniv>U_=h!OI+?0PLZJlTcZQL+-xjfqxUhFwnB!w1yw%7DFee9X+EV=s(_7(0yb)J zz(x_Url7h?RF^PU;L;+gE;Xqd5#!Cdh!~8aS$Q`=|1nT_(kIDi)8Npl!4^!cW*{JJ z51fwoJ}^0rtWF(Hw8{1N-2=emn)} zN^Pm0u$)d`x?5ao>MpWE| zL9PD;8*%JvEompjuG|vM@+h&7u7T(1z+DFCQCarUT`vJHmX{-4%ej}T*k%ezzI0oD z$dN9S=nzLbTOwpFlD5k+EW^U~(Oqae@k-|$%TLks_*jlqd>-HmIMSmBBExcXq&IQJ z0??V0Bh4dh0Y_R9eIV!hewX+dNP_v|+5J5ry1x=^PpCj_`yw86S`N#7Q%S&xrqTisl7bgS$ROvi^ME*&1 zh}yp8T;t@)FaM5a+0sMhQ*<0YPX6JvY>3(pNDx)aE&uk-Pi-{>HlVgT;x}9V5h^SH z)cBBB{=G^0H(vCi{_15`TZU+UjqUw3;;VvXTaK(68wP*_wCxh(K=J)d2g%%|KYh z-u#1kkUd$8UZyH$;bSU0K_yxHBll_g{Y>xs@%Bf?X){N%na4VYM6BzOxO}5WzWtHp zxP=&tQ;(3*CAprX!Cd58{`!!}^(MtE}Lc_x#7>=x_GPfc@qTd>d(VPIj)f zQ#k+e0i4bCha4EO=RfwuK>Nmt(EdR5JmATd(pS!@V>Fm+PF=|91V!-IG)>?N{!q>V z=b`4~;S@lFgKJT5Fz4@AzpzH|6P#xnrPYyucGO@l0$TKnz~Ig^t?F_L7SQp*&oga? z>p#(h|K9r@HQ#(Y@I2FBh}Qw@p|S{ma7M6u221KsCR$-?5?JC_bzgyLgg;PO~g{YF5EXSq1qU1y|~Y zLMa6=VTQ>#1%}k#jnQC zMDc9=i7}(TLYjRW{mg!lY5_Wrp{T1Xo~~3^TX#kA)m)I68BEW>h=^%khjVGYuQCkq zCL=WrKYw?`Z!T!B`(yJ!@NNZow>HLaw&2|Y@NU6Rf_HNwMlWpzuPN(xg!S3{No=yd zwkZIw$$_`zE2QHFK7!Xo@G2~LR}#GTg7?=r0ukYXewlDKT!ATq&*l8E7xl~(8V&yL zXsBg!d%^QJj1J*@gkQn1X;M$4ME^rFhU7u%LB2c~p}}18;EV4dTsVCO$bbc5_A3cg}`Nf0Amm# za4ge*5Fs!Y-o`5?1m-US41)-PN0}ZL0v$LM5fuWF^{{Wh#|ANWs*~e-8ms1GDYO56 z!a8YkeOqlQEf9CvTaJ(M@+A+uBDhea1R}%T52o=y#yaCf2wJiCNv0r<0)xAOEP z{41buJRXbS!vS0IBk`&A>0!l>bU~r;D&E|8<$`G|uP+BgjkLPb|DoA&6Bk#%R;iwgmyD93tVd(ahTc3ruLxr((bjK>i7mO^qc&!&pT*Q*5ctat!sg5+>_A-^v*?Lg(NL70Y-Bb)O+5zP*o)oQZU{*|H#S02 zwy2O4I0@fBY$lA;;`1BhuTP7=-WbRI$6&$Jz`3ZWx{ZghgPHZm2;X0JEQ(~^UuLib zB0~z?ibS7BW57tR_v);_RT58W;0|ZN4gNqTJ4p>fErgY&VXtUK9lRId2psV;3-AY7 zX8T)PK7IQ~@J^+Jb#)l}_2nGp{&)~tL6G>viH-*MWpn(2-3`4>H zN=boG$cgd(6r#2)9wt${K7K zK@iGD45skzS!YKb0C=3%19LPRdPq}XlB>-CT|#GiE)tlB>sBGtlX9E890CW#c;dku zk6L<>gj(%Q?{I=8b4p1KiDXCd?B~o^{XkFD;Y6KoljG9hPU;6Xt_x(+zGNl0Tq|R( z=+dM1`=qo2)~&}(Gx+wKDn0z-D2xOcUV-`h17dH5odj@-TU22|F`mBoY$=X>H&%sj z%@L{Z?1da-{#TiRNZ6tzvD@>N#n*LI)_pjvvTxLNB+YvX;Ask^#85$pEoAtlK*?;;DD$e>l3iZ23=O`)|pALYPPX@1B#Mh9v*r zLywj%|C#FtlK*^?Z-D&YEkaU5lmEE*ZV2)}BCme|L|J*=H7YMtyb}i*%no|p;PT7s zpTV8_hnCmtlmKagyuR?S%O$UQpZgHy^}WSt=tq^;`vaICM_%8oXJeKrugkdEwCwv3 z=lvtPTjjrRUkPomTB)Zy2xg#9h$08Y4;wj9{JP9R6y1p4ieE4GGc6=J%c4nRuM=wQ zH_#ca9`Q_NSlh^9@BQ*mL$&w5;BpSM_qN%jA=`UDqTgD`-i!B7f+}*_bA`L8zI@4+ z(#>WdW5Zn~*b4l#pwHBokr8NXGV4L{Gjcz-9!Th8I`ZYym%D6wxBa&0GMDECuswbH zIh-t!0|ihaWPS&KcM=KzNo^^zKk+2vjQ$9bUR}w)`Ki^ z5e6IQZMfz>t?x_vGNwwGh)W~tn}Paz=Szv;ji&G$Xz>=VLx2To>UFr;0BhA4WLP+; zjutF3NM978R@HN>vAX@v-OJvPJoY~etEOV{bb_Z9Kb>}#W zzzriHr<KA^m`@%-P1&)FnjV`S^M#VI2>L~&NH+aDWME{U)Z&80;&?NnrlMX6Nl+o z4Y)7Nt^eJ!TW)n!Dko86#Du-52c0`R&E?h&FADz$Xx?uV$b^i zzFCbf^lYPBL>rCRo9h>{z3QMn8_d<-L4&tBLL`-Kll7{2xV*f4zG5g~cu^X)z8-_Gb&_T9ObsS9eq__e?q>1zX==Xe8bOw%)dk_qs-JMFnS&_qwJ*oJ6m#4MxDX-<3Om zw>s_uEfV@o5d|46n);v^2p+9Y**C3f5e$1E>*7Z~GY2ZH5YiB4$zk@jxD1JYQ|wV> zzYS-JLeduyc9B-6XVHHR;c~Yz2uJMXma@^ki+%6~2NY6DzRZ`$0);)+H?B zR~Vo>@V~6I^!~eTq%&QB@?s6bcB~HMSPWzcKF-|iN{|rUsi0N4oZvFk5|uEpn!5Zu9xa;QlacS4B`IPNAZ}1vJr&`{x3llIo3<| zeNdmja0&AY78=!W?f~U9=>=$n8N|V|1S>V~e!j<6=QY#epU0CbXjfg0Q@iS>-mF>6a!Eot304 z%VynpmAUz7j>YuN+OO#ct)b}9_iL#Ch5Mg;X|^n>K=CFeix1)u%BiY&CO2Ym+8Jhj z}^vF4>P#2B+sIJbkd65y&Klu$XJh9*MnNVSOtX0lpKq3 z;);ObVPH;JuPI3SJZWvez52aR@Ap*hvb|$34!=SR0e!KNPBQ^2Q8tNjY_xIBv+ZUw z<|}&tJ8W25o4fxV)j3Z)jKC;@(F;w9U<`Wydl}1p=|HPwxxd1Z_szU280 z%IQoD@1JnK;r&~jB+a*es&@1UM)jYyeHs084d#;3^)w7XY&H^sC{!Yax~2EZX}gk+ zh*tQ0mF+PX&An_Xa(_AXbMiZVZ)D2Pd>*^526OS)S9D#{y+GmZ-AW3P@JMX_GEJ6f zj}xu(9gKre4e(*tc&E(&#z482?@xy zKC_1MpIpq$yrgRsE;;3juzh`afFD^a07uw_77;Csf?R}*0wUOF6bM_bq&8!wWBWTB z1(u;_%&%a1KwCNbuk_@_#%iZ2uRFJ}6f#g=PsI?J+sP2gP?0Wf>!~p>9e^UKif(+& z(>LR+W$v|xna?24Oip8g6>odc~(m1Bfc0Udy(#3J#i?{lWdk+qo z7qjmv)3VuytUBbekrJBN3SrqsjK9uR>gNVJu_RM4Ikv<+$quPn z6`pS^Ob@@q26tY1*lXi_^nmtObbf9G3Jkgw(U%wDcEW66!us-q8|8y1;5S151v2e? zyrGegh(^qWPBYCm^3js`M@~%GMkM_}ZA5H5zW+!G`}bNE1453*GAV|kW~B}&k)>2>9XO<}oEY{p zwR~Mx=S+l@N0pmmW+E4I6eO0WD~p>tP-!L$B<4SvWodz>#tA|`5w7)6FeGg4z=>i*Cf%%xQAm54nda<}G>cO7AWG2P~ zX*EbgZ{hWnEPb;L%^>b1iThUKW+N^cf5v>uIz$n03z*1y(i`*Tr9)lMzuh@yTo?!Cd3> z0(1;{zYP@8Pdxt`(3nzPU-st!$sApT*9gGmBWRIfAK0wO-%auzoZiX%QuO;z+0)Q(n{^%WPqe034O3Gv*G%q}jAuQUV9c;CHCc3;ewf-HaJclx*VW)#6KPaqGV)W0{leO z$4lZLFCU_$csZ;W9r4~Fv{uQEkfE`)-X-zgOldHeEdB^oX2gXJT1(dc!4a-lNSVpAe{hz|I&lAB6@eHF9WIR` z`v+evl_?MTgJ_7Wt)PjaQ@-1Qn6aQItR!;)2ebEL?-3D0ge$Zi=WOmnpqD+leESFA z;6)V7uKZ8mJr86pbN@i}H?xBsD1b?MXm+4+1VfmE%c}VB^-J>8qc2(pKb1AVOjNO6 z+MTsar%EH3zOuZu`|G;vwiZZ7fQjtI`8J4{FcMqOy98cpuVyGxPX}Y1)+@JFDxOYn^L2sy&dJgm*=zi_yZzMlNH?l1+ww=obsox|fvz-hn z$y$pUFwp?%_y^pVn9I4bcQpQhJjCJ?(RcmvM`lc1QkK=?!t2|QL3Ct0`PN%!^N~QS z(C1m-f^_e+wd7lWY^k-BMAdV@zH+BuFTee6ko~k`3)F%o@db{f+C@=@^X;0|rE6Tc zW$BAGgvVdMLAQ+wpKQZOp7M5%(l(E|#O-i1Gb$M9tczMBUE^Es~iJjMG@ z@2uP$o5eDLyfHVroCEdcI-68DRDJnT`f7#z1+(sdahSpVFB;4xvwq1*jG5%_e+lIr zuzvJC^zz*Q;*H@Oq|1Ik(D`HF3Pf#=>%+A*m}`A_joS0v`tYN#WysrQY-qU{e0?|! zzEbGne{X$QIWwR;$Y}v29S4clsdLqqX0}Ph|mYDju6+`Ym%ZILzf)Nhk z^WUI6rfsY8XXcF3EAcN9sZeH_N`&Y4clCzWBj1DH9K*W3il=!qeVC&z;7?&IBQUGU zQNwIU9VcN>|3p_(%xKrYxWNGk0}~3tm(72^Qq_t4=RLg42%eE9qv7<0%z^BI%xN{7 zQjK!_$BR7{%4xUuKMbNWEF7?+!__?`qn!`|<+k?EcZHVCinjY(KoUMH>LFOlirjcj zaQq$}I%{R&t?dY|sx5V)6KR5nzI99A+RQ%GLFeHQ`DNri?~vljl@ZHkJ>uQ>rJ#(} zwjf8S*T)mIWV{8vZo#*eh3zBWm$^dJNx=Z~D4r|)i1$hl0adW*0UErhkg9^>%R`Il zO`$koPZp9M&5rA%jk4b~tc1CaJ>1|lA1ySpzLP)ZBGEb*F?Slco**JEY%laG)|R{S zLuP4ArQd)WNvdJ7ZArD?RO%KrRZ}I^y?EcH@a3qyT$ViX&r|ecj2~5L*n;5Gt6Ql$ z@QutPsM#!_W}^>v2oTib&BuuBjPt@f4z;o0)-(Cri%kesdA4S0-Jep{i**M{jjmLJ zNod_3zipKwUhEe(YiE24bDAUX7!Lc=l*B1jQ{V{E$Px!irA3!X&Z@SKcs*#mwsC3k zbx(;7Q@Kqo92Tu4;(6M7 z5OV1)Y5R~5s#kgwK{^Muqo2Q7&0-aI4K20K*=I2cS!m4R_l)pwu*?nuILQI{a{-V) zqX3?cQr1PC);O^xww}kTc+ZL3Ql_hRy0>o_c&wCId5Yc zSSv?UGX6y>{zWqWKDyNvtb$}&BC0j+iAx-o51I1q|4$N=wH!$oY? zo#2v2TzIl9oL2wv#@u}B;QC>;gC7mut_`ITyg`Gx^w-0wCj|QIgiy`_`s>9cNs>+; z{nh%jFWbJl)-4tXg0_(U=J0j>D#Ba1pT9UJ!5#qFZSj@CIMDy@D-4KvNJVQO)8oj1 zB6D1k)R^Obfzo*Y9Uo(A^Kb3%!DX~!J-mOd^h;e2v!!_r$+IkdFk)DEI4I*2M@avQ z)ISPqMl1HB^Czdi`Q{-q7_hI5V6UyUWaZzw*ioU_Pba$A@uAorKXy_m_MyF9-d2en z*N47C5#1f{0+<*bGgUH&x)aF%N??B%)w94EU6AZ3gUYC9^`QcUo4)p(DVw+LepDbcTQu+G7D?}CpO?VJf#CG@O(Ele9tf>B9WBKoYdTnRC z*c#eOE?#&KGz)Vw2@)bSVt)?l{&|efUuX-gmh&dmuOwKk;HCRye!*KqB~D=!)7Glt2m z#a_`UAzay)XOkCZSiN-tOxE%W?8im(QFYggZKZlpT_RWoKqg?B1T|V7{Mr&-Fbg=5 z`Tn0(k?>{39P2Lo6;%Mgb?ogj9>3d|KBp3YRCnKbbFgTy=w`hX9n?<30)xlLE813| zfnT&jb0EIM> zI{zuyG*LJFUCPqsIXC)U&)oxTQ6cJsTw4$=9J1as*Sr_hZQd{T7w3Da&t+QlIGq?7VyI4`&V)9qw`LTQ zrf3o-zaq0ie%Atn@&sm|c>#74^IKLd+LrGxNSm=2J3$Tp-3Z>U_I5VdgGxvX25s<8 zlzZTFXm-*%Ds%9I$qUOVi$G6WT_b{rYjxCBI5AjVi&R%<#G<~9 zFPddexm`gHewp8{EE&2q!P*Gz?Wf0RT9ex9Vv9Z(^h&#*P!YxZ<+^xlhAu_xqA@zP zLJuMjw{kzuQtaXq28mdxBXMnNlBc|*|(V)&Ro zGA2mmKzyZ;TX{CH^eLeY-N9j-dY(19i#5W94?zO7YLv8H|6;N2x;3b#$}xI2$RhrUJ4WGoVuv8RL-)DrEs+3(vP(sfl zB5|oJ=1w}1oJ>x}tcx`(q8bW00;lgO=o3XRdY?$jV+K79WA#TU;t`}BDR_!EeeNoi zRgLJjGyorX8p=lsY-J04;TIUiJ_1y9rNeAEpuiWTW`O;rEnw?zC?M?r#w+URhbogZ z5`@;OmMM=J&~0VRR)L*N{><8zxaPfCBav@*nY7=~52fCmwxd+T_(aNM6i_h9*ElEF zF|Si*CpXHkFfHtDA^s|8qa@TuAKUorPSOVB(FUUcD(5CD9>K`urqaH+{|K(6v93MnOhzSpxK8cb1aw3$q>!u7n)kcgqrxWw%+U15Ki=)ZxXp_{`536)_B(RZ$Sf0^hMufXBojRpxKWs=-(*D$UyteA-q70jCb-g z)f;fO6eGk}8wy!FNe6wNR)~WS z#gDw4>`rWjz377ET&5JflEFzTI-fLbiC^K2iPV_=*5fEw?2nJRmX{9SVe`m?>SK1* zirE10E)A<7lT2uQa&g$>k1U_;A7S#6fi6ar0$whxMKPvB8V`j zxqHX5Ob~9oEA9Av_<@WM<>M!>OE3dydr*H^K2F6$?PeWTnPrXj^<~jNeT5K=@*)gp zwhCxXlVVf9h)-(g*XODMP`m1Jw0(T2>P0Tw$0vA;+}!=C&`lp;?po~EbT7qzQ}6UQC$$MJ!~>MfLT-Uw_8`IPRMt1d)ttjgOG(R2Lj6*^WZ@^ zE->z4ny)CL`cvZ`HlGvDdHQfVPG6}zowWx|URcMvcqH5_dQJKYlbu(zXd#CLl4gJ@ z7L%dH^cht77rhgZsL`%_;v}Ma#U|XrLt&gGE-<$VN2CTG?+K>zE!vBA%i^9^Do7(! z%RtTqlL;S0N1rlgCp@6!>c$Z5Be2F<&}~g{K|qU09xiF>jzJ9(V63xkyG3cgxtW&P zX7m#ri#Q4^XTg4r#b5NvKu-Z`0c`gu>!B`2iA~bR*rONC<~}|&e+GyZ809jd75C%N zMhM?`r4?%<+?MC1Qx)6cW4cb4B}!;tlnRPWJl234eK?lg&=+(R{QHvhU`?NLGKc~0 z1`a9#{)z4bL!p-Zd2X%*r5>Um2;*V#wgAcQ16J4lsEq5*+55tJ& zT0dV1t=nu*eim9k{|fT}#ddYYNC-SB!llBFrW~n+6TU~`m1jWG52DV{qO&^CPr~qB zt_#dG8k+Q>z?Va(Ft70Oa|qry6r@8!Ip1UyK^q{INH|iR7u#7CE7U=8Od~e`NzM@nqcn_~3IMh!0J#8Qh47v)`2g4}K)<9Q z5EF>xlOkU1rT1MvNE_#V(8_h{Yr6=bAynxJekpCGYq!}8HVU)*JCd~rvZMw5j7nH% zU#$dM4heL{BemfS5Z;3_VO{aq4C-9}0|B?6>Hp#Iy|zFa=@0adVAfxPZ4L7 zEtiC`8}c_QA%4vqu8q0&{Z2)4wf1Uz177QY)Zm zfyZC3rD(V4^yPC{$I=#rek9M6^FtzP-vY-UlwQ4<*X7U68#S0~Zmvp}ASNBCr2+*e zs=Y7pR97sdJmzt|xWr|3^1?s&vVJAHEc=+S8mkf3-50pBD5`zN&s$ z8^?N_7C2ySZ1`k?c~4inTo<=*%^Bdu?s7#2F7LdRWO;WrKBjj(Mdq^5>PT1FV z@FXmP6KE4fajiOb$=j~D=r4_cvJo?>4&Si(Qj6tX;Xg3P-dAnzBy`L67oLen7Xq&z zU4a*~(;&O(d9akrInbYPf=zL2%jtO=bH?8vo$>Tv3<~P1dv$bjH)alnLQ(3`31FU~|n9HEU;bsf#cgaj*mhRzIA)utdzOv3WEZinW7W zqYFT$0nug(Q5}M}>#S%(<1(4Bere_~$-8w1&j>6ve}*R#;A;iRrSYYn)p!HvAFf)r zr8^of1`s4l=vMGGm=9eFTtH$mo~;2Rn2wYs67P7yPr=@y?bomZ{Dn%Y)#kAXpXzM+QM|f7sRvgJ4MzEC_#%63VbW)<@Td+)zOUBY0 z=lPqx|ue4dFLv;zUdZTc)hVG#19zPgw9LH4Lj7bf|(El*uam&}D{LTki zf4nuIklpAHE~~AEE;fz^cvmM7-0s)fkPd>aL9opa#v6}fnUq$6M+oji^P#h;V*pGd z6+4%1Ms9mFcBcN~IHDv+7HO;=za%o*z!rK>5DwkY?6=m?5(FEAV3P|5U{vrdCipc{ z;6PT#4-U%6FR2f|Br+*g;ujl9#LySO*=aiPMj(oxsl_K~asAc6hEYHwlMQS;k(w#R zQ!@x3CI_>am57N{Mg2FNVx?2~u_*=|8Z}5o_7R1YR%9LKFcjAJ>eMt52Z2*ROZr~y z-an9*^1go{sp!Y$xJ&^pahe1u=1jq_Ho}UQ#&ZC%d!UBwCS>oDKH*B*MXL%H$MZLw z_$0bPf9ZZFMo-doYtt`TVkRCZ2ux_nYAvb1)M*YtX-Uq-C}Fk;Z&HF7uI&uhLNV?` zaeRJ;w=vO$QCfYaRWqp%h~-mG>MFel3{-ON@gJVUTyQxcL= z(fhTO`IsM@BKIw)W|G0+UAhE6Hf236^Q@NX2$lIayr@7SWIre)-L+*hl2UP-mbpDt zrbAM+E6E1(DD)^Ty=@rDUl_OJWa8QBT?*j{gphAVk$JdIPfY;p{mCjaq$8!S8RgRX z2K^;l@n}aPlMUo{Z0GoJJNMrw?U4ON+xbMbsm2q+xv$XN{nAR9_skMGHj4@7m?s3H z5eiY6LZrVMjQ*0yWJ90*#m0wQXmyKy_}CGMk=(HZERC#$_b!2wLanz%%jz#-q3EeZ zCL4Mrtzzqb8Sh{4P1#aXDq>n@l~9@0wM?O)Xog_Xmg&P< z9klq)SJKYA{MeM&B}M!R;8_NPS9O_7dO{05sfA{R3f(3tGZjZO1Ua_4sajn|`sJ}F ziDUw`deT$6gjz|{Sy>2df#+M{;sg*q(>8g9@RhD7pQ7vWlG50AN+7dghD;^iDjUR& zRgW@^1B9%^a;*oRKvCsd1Pfb3+p(3Dj$mG{C0)Sm?!x^EtgWAgU|(139ypT{%x*2& z#CPOstbG=#(ri2+bre$r;MNX+YEpX0;q2?Hd@P1P{9(3clu_5RN2r61xlwzLw^v=1VIx7 z;cDsf@`fi{EFA>9f?!(^Y!8C1HW*S7@4)NyP!YQ^1t*Q9A*+FzFo)zLDx!qE(uvY* zRS|C{B03wIgQ{EnV3vxwnErd-#BLu;lkZ~vVK#jSOeu)zM&nIv9GK>vXlS6$ueG5u z2u=usll-8sB1#od5tCFrxnR@fs#Os`5oa~QI~2wb^jAM>A=}^wOK$xokEzc;t#gJ{=FMUjvjFQ#2!sN5HdQ)|ADi;5q-aIShK$xH6(t)C ze+B$(>?1xyVch{&ke2c?6iLM-I~La-09I+jN3k@aC}vAmMVz6QbgGC=0ufZizyC+j zP{!ZM86zdSL4P%L>o19fl+|ChWQjTKFezE0B}Ztg{%T0;FNsVxbjhzUVXjUpgbvPx z;o8n{E##|+!|~iD#;1T;k~0dmLj5Jwi{cWQ6avO5OzV?TNb%#%szU*@m(c%AX$Fs^ zvksfGm84Xhu4T>$m03f}bW4LXq|>$x9NIYAduy3}LS^Pl%1rI`4C$^dGfT^CqGdJ> zmB9@NL;>MMH`}B+?MkwtU4KbrY%@wx4D@2|_(O>jv&)QrelWA-m+%YxlE`F3ixjVT zY>^=3aelm6&4@JHE1=ri3~9!utfzp^&@z7vl~Lb2%e_2SW0etUMwO9P#)gy;VPlTf zQ5pF?yk5Zxr^=^jO?<|-Gn1K4`+6`LcK#dkspdiGg2^DT=A8_Z3LG8sAZn|h#SsXK z%6Q~0Dyb;Ct`_Zy6y>k{a!yiFwC4e7)kKQ&SN@`silR4b(f&wL{>ooeQc?6|7LBlb z>I>P9aX*ng_t;(kLt4Q9*hbl{tGEFImFCG3jQa6Un+s1IUQoP7c)!Wn18bj?@kl3d zH`}uk%w;?OIb7w;$p%n|?1A&ygcmCd731EiZx6fxF4qI>fi!-oJ#aYff%1B{84q`* zs4+0u5s3J6I+t_VN>S;Ag%~xAK70xWzAv{sI!>5@N0{7YV~l70U?R-&NBCanjm|s= zTO@ZA5I(+MJYBY?+o3}7Kb%F3XNs@pmB#W)e5y7RdL;hl>rwO^7A1r!>}lFTY| z@%4$|H-8$G2v!P+;Bfe4Mu{LyuO+kx`}=#C9Y?^sg&P&&y}hvi)ca3x&PGo|`TLi? ze;tohyr%?AQ|}QP%w_7Ozm_>s-2gI<;P6fViJ}fqtp-I65Ku6Odl>4naftyajtIS? zlQ*Td2t%|bNz^e9dGQ-pk?MHiC~mS-HaN_a*8$700tR-$-{?wS8)l*UNhMBKv(9~U zdNFjViZnjvlRbrvgeuq;74#BDf`2Q(?}$IB&C~Y#0^D7Q*atx}q2n}PA^(#2gYKBc zcw787={?TpxSgFn$R)g3g*s9-ORtjg7Wtxj>=GevT#K2)e35?5K$X2`+IsKMda*@g z{b}B(7mgQuTbWR!trvDTT%A)qh1(36T{y2?g`|m1OJDBAGC`u2j$`If_qo*dyPsk^ z*ikaqktav;`Fjecoo!EkrVa(8-W2;r_lqkVCw>JOZ`O%J--h8D%;nqg3TVl!MF%E& z0XdJu;DB)3k!TL_pB`jeqEPa^B<2V~)cg`0Pro>`AnV zb1=CMHt32U!CPLd-6UP@4oHf$il*9*uwNNnAcItE9#?-oIyKfD|8#^O>z)bsPBSP; zME0YVJ`6D8;7*GkX2uH_$tc&g`@7uq=e}zvOGR+%_NxZW_fs>2&-X95?9V^n3uK&Q zm%qk|L6H#NPbqv#VB{&N!{$n`8C_~3Y@t(7o6|w?csdv927J>^NbhL40=;CVr3bx!I~g85d^D);HV&283acL!SWzD zA_$fR!NMR&8;XUYp9^$_p&*E*Ez8D=;Yc&kj-|2jrkfd+ihcP3@u<56sn{a@#V!)D z;-anRuu%M#JAvt3bKmMk{cmnG0M{o>4u5H15`B=7Q^tcmml0jEH%}%eQ6WBx1 z3eVIE^_R0}N~CYk9Hy|Zq_B6RfH{|5fvK6=zMjgrCc`5nMJuug?^9|R^>-*pAnw6y zvFFf*=C~J$+L@A;(v$iYwJWhkjK*z*-=daY&1P#UQgH!&;!>p-@?(p<#4~`Nu$89U z6}@SIjSw;2<${i9m&1J$7K}`S_9!Ss)#a$U@r!fgbG3pP5AdE$vcEniY zdGGrtBMIFgT9PwH33l9u!wBu0M7m9na3!zG5>xj$Vs0pYg10MCVVPDqQY+M7y2F)n zyBmZVOkf+HPEVC?%a1p!4UuO27fhL{?awG97&c{3Nzsb*s3IswDzf_{Fd{H}_E7Bi zybOh;rQ9BX;B_I+2@|Jx5s`LQ(1FmbD@7`9;yL(KsT_y5qxYCCA}fH-@E&L@pqF7t z;gYYz>QFPlVmFgBMo4en4oAQKl1SJ@1kqvCULxX4jvfY=U(9`3P+OoC7HSpx%k7#< zq}#i#=;JZ(ROx5@c(Pw<{zD^UYNob7LmIXz?@5YQ1e=!D&JLjuefmoxvr+p=m!MV) zxLprH?eAG5PDtdj95Tqff5{ci`%&01zb6%R^Q>w%!V zm0CP9=pD+9R9@5!wr(;V)Z;i~EcdYW(kLAboqrSd7N!e?wd+cPgd%h8Ot z*}bGW40nW@N@-L34QT4uq*wrCcbxXP&33$g7KtY?-Uun>HQq=n82XVn1B`mvKnjWq zwdO4 zdHCDJaC3d zXJ1ux&X9lktF45qDEsVT#b3`vWUBNbet_GZJXF*fZ$TZLiR~-VZs5iCyVY;M*(D8U z601s8jzHU7Fk|HnuND+rS<{+vxTwiKpYsHxki@x%8aHu0s;_N^^-J#k)GIsSoj-O& z@pKu(RBf~01bs3AV~6=?Cu~$*LF;AK{B>4U^9W|a8$2`~psmOGGlg*An>&_KNP5C0 z<#pRU<5|*1*aP+mwCRih?x<+94tSb%KFK<92vp70=|q-q>X8^JX0zv8PH-htwJk1d zUSOVY(6VB=^kR?P>xYib$bK6J?Iya3o+5`WYgtQKk)x<2RE+9}Ked+ae-**$Nw^=o7M zJV0cKmfeb&u;OtC*BD;W!*ZXscvrTnRS$NbqPGP|>KjZcx(6Fbx~Wohrv}Rug$Xvp zi_3w&Yp0{HFbW31jA1HzPTL!L{z#hzhQ|U#ak@s`N<&59jA=(2fdca#nTb7YGKDej ze1qD1^?sqf95cZsFs=zZ}AGojY z@RJ>SiC;Ge$LN91P$wqYY~7L#6QF)lBI}C7)94MCsyH1Vv)V6&-a{4aih^!-cfD*I z)5}~>%ULLU0sREZ#2q)V@0CDF+D+~W51FA;dd%b!G>~nI-rRvslj_KarAC#~4#WH314-sIZ$wj+CWRJAK4 z( zAydfLufqJsXoJMfdn$i&(dXYlnNls?hpKJ=J!AbmFE9*VZQq69{^KvW=ZYY}x0 zvoVb`P;BWD>;4YNCM-fWqdRdKJftFi7k5kNYeD=xThjq~hbI9|kibNY4pVM@F3T;ulxx{f8Va~M- zE^Bj%mh{l((kbi;`guBQ!uK`(-GWbndFvu+vIR|sHg%5CELucIeFOw+i&^t)WRGOc zH}cnCOLPtx`P6Lm^AQeMcs`YIzK8cCpXnTYf8q$-{)igDwu9A2j{QjUZI^Vf5&b5| zW&fS}mErF>W%#2zL7V*@RVwl`&^a!}rD&>wfMR5-Ky(9PyI&|Z_5cfwfo_q)bnS@a zwPq{nA&z^BADKAcY@>Uem;g4r*tcmm+!3aU-osTXb!Vp3bYUL3R;P1hX;a3i|4?`o#v!Sev+7d-+~3_R!NXjR~^v<~UM>xFg8H6&5;WI^!+qJ;%Dyew*a$=IJs*u9Hp8%^cd4T+~ZdX7}dqtK5QOy@2SVh{_KII8Ddd# z)?HdK>|s(EF>v1*{Lx?;N$}&GiY!FIBBy1rY1&SVn8-s0YkVMjV+OQw-CNcng{J&do>8$vuBU2m&N6rPWZGKmmopcY9dT-|+{39m1EaRKc zurj{1*>^y>^N@R59GR-REaMCH^Dx#2CwPLQ$9R)&ip5__F zJcylkc{YST+exHi2hU^`_&@4c*M`EdCvG$w=c9RFi`U@6e?z1Rhf(g@o-TZ6fD z`@=bA5dQW)k;+ic0r!bK`i!86E+AMJ2i!N8{;2DpgjPo%n6Vnntc!CZtR2Z^{_fW`eDDdJV6RCs+}#_?J9{T{O`WazB7 zjISTs_lWEo4w5VIvoYt8mx-_mw^t3sZ>-A-%JwofQ2KHvB-;;~3)y}ZR2sVQSpN-?YJblIPukv0>_pC z9F_Lz(D3`A#Fz2|&PTm$;yJZ6lOAj^7d@#whE&E<648gaU94LRM8JQqcI$*P@5AYLp0e34|pl2I$Y z-F$tyMDU6C-*CQfX!kih;c^bV&!NR8fx!*!K8N`)QBC0D(eeAT$oM)_eTXkO|GU$7 z6iT!l#rDS=^V0x?9QPqiUP!8qG@&H)na(0ky{keK3Yo)Guj@Oolvk+f*?p`HSQ{t$ zXt+YFndVd`%Vh=fZDAGo9aSpz5;2=pXTR+uG;8~Y@)ZS8lSJi{AoccZHwDu2yl?^y z&Yo+Jw*auvR>>NKiwf%DT08*;26qirc-#{wjVLZL+#`z=|2ugjjgG^iHO96fgitXy zXcJIIXPW#8otF?(0LjCu(j0 zI z>jD+FF24#}M{Fc(NzLN7Yt`hY{3V)L;wUY#9E$Z;D53f#`X&31UhLIo3vGCs!0>Cj zbWb2e1-=GoU}NEa7Uu&k?r#621h?X@_J!~QUA1y$8k(Qq>pa1T(E$E#qI$W{6I7jr zqUW%v*d&H@p5OpK`=I9uuG}3}muOzB0R}%$P!?exA%q*zmj>u7(fot(v!-oj5G_Az za_j3d(zf37$dxrj-o(to;64W@c|tR`Ujs`i&EqAnKS>?5vDKkJWL-@tZm-&(1`Dhy z1qFbzTbM!T!l_U^kZXl*7liJ1u2nL2Pv%*@JR^&= zwIxm2ER&}TzlI?Z>qn^&7e^T{h6|PcBRm&6B;R*RdDN&YSL)dexC?Mn7-{0QHxa&`vIF_z*snX;4 z@x=GZj1)j4i+-E3mZVhds%1un%E*%p**9?zi{?#IY)TuCI?URqz*4g~7N8Q2gZZWq z9f;syjnbKOH{IRCCi$0IYOpUwpx z=YduqTaAD?UKXP}|szs0SF60+xj;k%q^|dC~y4yqmFd+ciP5=P#3c+j> z1C}vs9fhls?5wGa`L+x z8DB3}P%p@71D=LyFb#CJ6NS(+yNJNrRZ}>B?a!=wbX8CBEl=sQ4rVPN!*_j}{7fA(gnR4O z!}h-YaDQbRpy-e~>1Y%By!Z+UwxAEqsD^!Rl|DBn^x{D?jNP8jQPky5hS``sVZWpG z+avL|-{zYMe2P}O)gE-KTox{jm33;kmOWStr5>HDbk}oZ+kk7R(q-u^xUKE6by)fr z5~ZsdqPeQh8a;#*wz3s$W4{MQe`i2`OMB%KBvhqB&9BN?NijnREcAsf5ahZQc}1y| zS6Y?R%SMB)kgzc_eRF}Twj26%jgWX@$do$y22AvygD3chRBfgNa?LGd(X+;Nb3!GC zy_`txW=dAmYnZN(s;b(9ZNzuLqN4{`XOL+Fz@1RMqv1T101xMDvda(W8@vPI3fAX( zksH9(psqq!S-rCOx(h&`yO^nMQ6d+q+eGq_c#_LnF~!p@LK#{5PI4Woie5IsTaz)DYOa+MRqJR33PKJIhbT$5THVEjbeC4{OMomI9euVFH~5cxQ;iXY zr7@(iEFA|FeZ`{saz>*${t$>uz+w-Io%UCURM6SB))1cEJHb+9x$egUlnZA+!_Y7(0kWtvR8p|^b&+ulsuCW8cI z2jt=i*vwpuh<1EG*k5$-qf=U!U(t$IU)z&wRC^+$+7lYpt&c!a zJaLES@Y=TrFRQ5s%c!=9`sEzrtd62Ek>i6uW1Mv6^$V{~f)QY!D+zu@)0=LCcH>L6 zrP21R&h=0>MZH+dxdDZb&J796((K0zU^t`3HhX?17UJKQk+kUZU&VihOmf`9Xc#6e*i28vFy;x z{F-GpkoE%eppYFmES*%e9f4E?%bWaEA#rrpL>s#}ky-bA(ZyQ;*t4168J*O;1XQV}A*Mk9r!&Vs zayoQmoCuw{cXif3^fKG9% zjOu%(Tj=S5Y|D$Cb&j1jmVB+@JeQffXET7PGS=;OQF8XaLEREHUZ^!r7mXCwb!F~- zru$RysEt1tmX|@E(Ee|wtPgO1z9{jS>sW|uaKK^)d;Gh8CJl94`S#UC0(uXy+#kIL z{{ftD#sNQh$dhk$RYtXIOn0##)9D>bz8Q_)rjL|P-dyyZh>zS zUX1|JDz-lB#_|)qPRfN8Tg2%IhU%JUTCc(QZj2T?;!`;_v^C5?fByD_wA$UVh5;jr zPX!1eF7y`2eo1_)(;KgqSs8CpefDC&ACWA}1Kw%`?{_+D2Lo+2thG!?nPsEVyY;Oy zyFy5+zZy_jWp*$q93QjF?82C`?Sa5JI*^Hl5p;B*6Ai-$sqK{67OTu^!vP&wnMUW< znUrhh=2bv~x_S%Ee^F-Ttw^*JRc3os9q7v9lpp*Qy%jdCf*AYvi%5b{yPPt6dRTwq zvfH{-sXpt)RzBS_7XabC(<@hB!kJ>gMe5|U|x4*TC4N~^a2U`7_BHB(R5#K9S9oHU-9yvSG0)+bFB5)VN;GP{mc{igI`@8ad1?uUN)DSV(YYo-y6({e^T`p_;$p< zLv~kZpPEFAAB1ljcjIwDIJy~sKlX2XuR}RCwetG7;s?i;=+=EED{~z)pTWk6>Csr4 z*vB@%TN3}y`B#&71pt82LEdeX&>BIo(dM^jjioGsMcm58H>D}4zMB^Rj^Cx`8sKhP z9MY@!k+i=I3%lRi_hRgR(z5+aPgp~+o>8-9$iH-gZ>UUS3II=-v0I-lnK96@ks8b~ z(B>dRzvTt~03i3j&+^9>iz8u^ty?NuP`57qx68GqWl^gN2u+ke z<=AwzIIP#2Q(En^O-TzGiSDsRp|MUK$lr=>iADnzGIO@*~haqU~z^bH!j6NTc6PP;9(J z-A*^%0OYVH>OrndVhgOSu%t9eU|1+F%Xl5k&#e8#9PTrQ_=kWNha!9N>POS6KJqos zvgmo@GQYnxB zn@|3(d({G`c#xHvKlx|I-F}uozUEkD$lC8X6Hz3%V9hEF8L{jgC?#M)TAw%O#lH`} z9|XZM<_*o0bN@`>SvLQ=WtA}h3cY_>%PFUA1^jfgJ}>LjF3WiUFZb&;4Wlu z+)S}oyfB-HZZCG7D;auQPZ+f;!WoL$={y230I~-`HQ1QDSviG-?waM>kM_pQcwwmY zaE{A4kRGaS(vaz4>K)PjO>az5P=)#{xEXEdv(hhlmmEn6?}r!W*qrCQAUUeVtkeAQ za5N~td4zL9nYrsV8&N;0Ji5JJK6rKI++N>5sBRRht2DdFx7!>d$MhexLqa98{|mRiaRxIUPrM5okl9c4TNnp*mzn2JQ-vtqc`Ppip%}eLcZw8 zHdua=W2>Q85qS}PHzZHZvEZfI{1H(oK6L)bfgwUW(U25H(7x;=(RPieVVW*jJ@b@> z!XrcB@=$nGC|nr|Cqm(BhJ*ba=ifqoMr1n&7nrZcdl7F5<>5CL5+YZ|;tOExbw9A_ zrOqFbNF7?niFoq1$=Xj3s}hhk7W%{uG2vV_#8VptBv z=;1yx{|U=L*o5@el7QF+w`jLq;9qmO;GeyfgCQ6E={M~x%nAQtgi!jP3;vxo6>wFK zw|K;tc&@CmzwwpdXWHLq4xHe=ejn;D#)A70#P#U0g~e0$5$qv$g*fxKRZuxm0|tP= za2)!T4-ix~gP+0=_`AgZ##g{7vtX1JPqF(?0M4@br+8>ZdpN=t!&iFDVyqTlsixdk zQy%Hf3J8YnqrIsdX&b^<8fHUm7+-0)(l%Tffq#_9ly{%@;YWlN!&jsi?JGf<@b2|8(;ZdV}Ii-zt6P4EujSZ|NjpD0w~F|D0T{L zxF!@nli{%L7{H%feoa7r^K0Fc?vt*EYh@_PnX9tgq+3&IHSIb9-!^)YYEV`YLebEY%U%yo<;iK$ zCf)k2D5xT*{_pVj+hcwF?QOA=1AmVKBW7=Eo>&a=mK*W;hmaREwm_}5#1rBv+d3jsKk8saR8CosI&C)yPvXmY4m>^K+z7=aiEmZ&3D z`;h@)J?sY=Lq~kE^yxUJA#Oi>+ppk{(ea+*E5%e2hvkWB`!kxWp{+=&#gBANey)yz z+2a=1e_W6_WpU%d6*P*qCz!E#_Qb`B$vg{EfO}&XGyVX^^D>yZi&jMs1c>7qXB(cQ z4dd=6ZMai?K7O2rPZ*@(1AfegPaLG-7r3?cW1+fckcO*%%!W@Iq~VwBr20{a>*PTi zKJ>?I_>@5!e#NH!C_O%PkcP+oSPcu88^Rw__L%@;8hA+Y?5f3$`xXhmI7{Ldf0u5I zFE$1`a%$Y78TOW*xXC7yP?@ot$_b zxME{*LkYWx4YSm^>-;Syv-f8!$%AqJ`qP*Hhg(Si`Er5;bLmfyLT@yC)2(L^`5!92 zqVoS&gnbC|f4!XYAMoXs|4yFHJ6<|Tak2O~+jR^H+6{|~&acql!>BCN2pl*y=98!Q zgsS>}^7Ni?6M(20E24`QWnn#X*NRsFr)SfknOzh!o;xTh61 zR=s57E=C-bj+g4+{eQT77x=o0YJWU!IS{~-Qy>t8LU;sHN}!<8loCj_2M$QIJPJhw z%Bz%jfmm|NC8Q z&EET*ByE9vulN7U=aVzDW@gW0&01^L%&eKYylK|c7PwFX7d)LBKwg~|c!_@9nOu?O z*xg~l^%~rp+#Eq-Ga~i=A%hi1i{Ql#wa*kSt9yFtCuTDeY2puD4k>x{r>pULRDFzn z9BHDavp0g+M5bdC-}*vOmc!&2Go_CdW0-8hM<@_xYm4a{UW{Rq=@gSp$6~GwiwQ89 z9Me?$faPJRd_YjS%mNLS%LJ8e7HFt!11d2&Ok^y$-XUUh1cj(yA9{?(stp}A0 zQEQmy;diWkJRFrwqitk5w(+*jgR&ed$Bv51dH4u*11is;Z+J0=N~Y6dn2yCv3yTR+ zIku_x7R$p>d5fU(W(zb_-YlqWu|Pv*3sAWQ%4o9Sdg6>bo0}sjMCCOM&OzlZK;_Nr zLFH`Jx~uV6{EoAahoh2dw2e&1HXgfKP?kgGxKUA=#7C$bP~npg%D={ z5o2=Dx)^A^ay@9RLJPVYzlz_D?Bn5RWg2ZS)3Ln;VS61~HyRbK<@gA716uc>Z+J0= zR;JTpn2yEVP#82RMC(RP9?uF|Hj3FL3?XutoEJtZewQ*tP&_A$G89Y5itG+R@$4|N zo`_TwOK3>B*D@xGVmU%tv}`%cSP!C0(59}&ZSfl$jscUZOrscJI%44ZO@a~~qGO{X zx)2|shCuWt^bIe@5Y2R24AZfgDPb`oqGL_ou_0Cr(F_qp9}`9yq8TEHPKHs2XbD-7 z-4%$g2_x%?PDQkYhKQz3X)dB!E)dN!)`Mui0N>TP8owJ4$ABT4X%quYM-1$}aZsW| z^v0tiTHdl3M8AR0T}>m5V~Eyw>^Vv@9gFFPYGJhs5xsGfcTk8GLo`DK(FcZ6hG>Qe zqNjvWhG+>{k=+xBE)OFkh?dY0(MyIQ`XGD;M6-S}xmznhGTXr@s_GaWJT z_(lN+9HKWF712HT2sH#nchfh#7(+DEX)#R4VonT;2@$Qeq6@+(L$rjf$W{T-Ly%Thvk0OkG(`0E!w}7KfoPVo9z?gIP0)PtyXkNY7^0a* zF~D@hz&~YSSH@t6=uJmObQ3;OL@%aqcrk`(rqg1Wj>TLR784?R(j50(^$cpSiKr|n~w3^iso%T}Z3jd(wGzvliLqSlI@w?gZ zYFXzpjbfeYSgmcOF0rH5%GNmc@?$gAJLKPo7t1kx4K%~B567gy2hpp9#RSyO9~Q9d z(y;?)N7n~oueYF6O!88-Tp+wVDYIPB_3%KCK)hL06hYL2OQx8~VtzZ1OrmcH`#2X= z;Pb{BR2v5w>w5L*cM6x+$Xmibp52mNIh+}z%<|VzEby)rgZouXEJR#J+G=;p1x5d- zgu*8Oudl6LJ9m1jckT?ma%9Du@unrGXkBL0NvjrxRouBV^bQClg>AYdYMS*bkOf1B zgpb%nmQg_6t4*_TA~?|+T1$UN1qv&)ltp8e87XQpujO=K*>RT)k)`ZA#yy#)Hg6h3PqIebU;l9n>1#qBWX+u+>P~x0V-Pf*KmD@b&b;PIs^p z)0YDOVAd!>8q!Pp>Wi-0f|)3EdC}F9s+6gA5=xU?fVdtUAw@!@T!Wh@XVPak=jO#- zwP#*j!y4QQP&_OUa!txw`4`x|-H+(QJy^VIyA(&UcM=ZMysHuvKDj`Pe( z!I;Mp^YGLY2%yiOb2mw}+kZF6zwOTV0A(CR#d z#9fID{%_rAZaR^fiy=ag;dkRJg!E!p=boccS*}ung{M9{H`T~NLU(oMrUd|JlY8-6 z!8tg$AAS9Fm_4Oe9sB8q+B^K|CQCWo-l5Z?HrU=_^?!_H?{Jr9Gormisn|Qfe$~e# zKl%4H&E{Mn$0TGu=NB4Q&5115oiIcCpXYlT%f;J+g|<%g1_c-v+#r0~!HRAEqcX}Q zI)5fK%Wj1Yvu?rBW-1F#!~2x@4z)o5x+rh^CAg2ijKf(82n&Jby=WD@0^{Z-4zd(z z8P-p|fwa99FG>CXRoZS>Ast`80n+xYS4Ne#cT8t4p|t&>49+HBKc%#NzQ$^_erem6 z-4JQ}Yo_{NlD5b6jVf&yxpv9Tz@J9imVoY5+S2F0cgK3A?W1@!?9)rz<6yI7()Pe_ zp%bFgb{mu&NLvDsw&Ybv+fSaQv^D)n_(Si4^Pw?OGW0>dym63pY7@MdsJ9iOrUe;L z)ZinqU%fvY`}_WDdg>T@7J1)>kGC0!59Z?ox{Y+XInWJ{23@H^*eeKvWH&(%d;9)3 zcurA;M$;0qGKM?R;6#?`8Xo5+FsKVPoUc&ep}c0~33}{pz`YhZw?(wbHU(0gWz`_u zl^DYRnz4GN5+bjPe6Fublv#4mT=zL)`+Q7)heg_A7L`eapy7C=?qPcDRj8aQH%JP- zD*~1jy~(LPHV1HJ>XJ=ZWx`hGIDJhNRsOML!=oxx!+;m=Y=}yR4uyUPYyhU{ACuEl zGhl6i%*Obeqsu@|qHrUxsBv3lJf11z8}6*H76Rc|G+VtRj79!ehd>~Y;Rm%r-v^f} zb)Lc6V(gkHO?ihX8uBN-h>1bs9o90`Ot2g(it0PaV!)rPSF#Kj*9qu-i%C8{*BDpi|ucP&A`EJSK@kP zoLJkC-5B{_A5gl>`wsW99*{=fm|_+9ojkFDEPn2ykvAhEN2K3kl)W8V4}boBt&jg` zL-ofSUCQD5W4%Rfu>SbKS*Uo#o;iAc>uykX-ubPnxzZOKetyfVe(Rcb>u2)xn>&9; zlGgW9Zr-27s8c8}wv$3N6tdki!yyLecFVIOsFJswGcW%x>Sga2+A}<`DR)czRTOlT zypRi1C1YlVO$ml~HF6ye)5+R_>A06*I!<=aXz~~~C^2q6wiSv@E~?`oRjL;bNOZIO z@@@_0HYmUDlOvF}tFesPcT^pQ&-n__%_~qslgH3OiF2u40XuyY)O|B=G?3_K`TerI zQx`2lhm8u>DqX!J&CAo3JHhey`z0@XkhX^d&*M<-We#Kr9HRq~v9;iItOSX7TO3$c{^nha^E)b^AA>1n@uf_`ISIV}#8EAV;(Q1)8#RSjtjHq>;rqOzq|I zqK>>7`d40p?zM&jOX)zKLFFhiE@AiGwdZ}Y5x?l>7qo2G#X`~pPpczn2?P~|T&~tmUa6a&>2ii)kB6`1$5JoOFsD|lo za>FAexSK^(v%LFJwqWMZa(&O;@)f0wGhL@BWlVKo4rT1h&<0s?3>So`G6uwR)y~0( zq>rT7kF)Y@rAG{IhT= z4CtXm=|LRZe9tF|R*;tU#1}{sqRi(}#gnsyDxQMlceaf{6-ObHC{>I{PRc;wKSvdE zv2Y$sANd^mjyF3BSEQHB5u7g=N~Vr+^sxo=lGotCg9ZJs5mZhr3QK`lYb=y+%~29i znkhg;9?iV`EXw_n#Zk}q900ajBS1+3v87S!|`vq za|8tKhp(duio2>SRqFCPsVO3_t`e#g-Xh6KY+-oGW_JyU?q#4vYqgH&@_x#c?IfvB z{Z!O0Yti%tLXA>>zFbQ$@STdg2b-iFGr_fv&B178i@sd%%wP09q89~hEd}TfqX`E= zmVf&osCv;#Do)Wkkj)R`IPY{lt&8f9UhEWUj|fk+?lq~RK0wzUT>A;#aV9X296fn7$3ORdw6p_6j9Jm|z&OHm zn*J`dxvOy>Chuz8n@)1tEb5A#)9bU)6(wv?e)Cm1eCc#We%LIDsMs;LLHTu`sIFMS z?1$-!3>|FbuS-3GuE^+SNu;`Bw1^yCala!(a(xMozwyt6G1=NsS6mD>c8pnrm|tk8 zXW@{V8FX*xwXr`8HPcGY*{C2w&#BkFHLQiGyen|BbfTybPNT$CbH`}Po?$8fsRLy% zSVy1U!p*R`n$Y%7foq=BWSt;wEZj&{e~GHfliv#34id!*^}copk@i3w4|^=L>q%sK zF*E(tk7a)N0X{uI>l5mIZNx_lk3ws8IzmLAMz0fTqNzYzvE8afOI~X$Sh4?-0iI7O zMo0HKE}sq1`&uxxo8G6njHLG=#s>9mZ-CUCr-M2>Jks~l5T@Gzy^mvWbbJ>WwdVLv zKiY#bN7VaZ$ogn%b#l`Wf{`9${t`-29qH-w>tB_Tz8rpNe&VDO8EAfU5E5#Bx9Bj> zhCGPE2NM}bmo|izd{a1OJ2?KIGb3=y36U|L**xS>Z$e%tG5I?C1;0bz>CKX`jtn(F z<{-;(N*cNJpbLuj+B>O&n%{i3C--K&t(p1bGT4~17^RIfT?IEl^JC_r=0|8$%}*nZ zNZ#W$>GDdBwnLhmOl^)>uPu@HNJ=Ef}sN{S^YA#xW4ElOu^*j`i$Id7Apx1bM z8|`GYqY8iN+W_1~WO$>CttT#8Rl}a<_=j8GcC*14SIg`68$_TAW2}j1k&e$OU-1?Y z@(j*hLHG?Y{)^1Pi~YuZf}Sc`R+zK2HcuEO(Yw8nl{AOS-1;Ao@xdGI% zDS^pIAQSFy5YqL5GJ4a9Aa~0|TSjc)_Cfh(S`yQ1*|JX49z!|j5k~p<^P=^e-MFFB zbVtpOgO<}a$075S9DIoKOD{B-ek4ZW5~rn2#-*dd^tmJ8lqN{d9(mu{oA?0|rWgfe4RSw{MLD&6q70!|~g0%_jyk#XQ21i*q@4yq@dQE#uZ{Pz3qr@GXHzWD_)meV&qq*2e)WRbopU|rHnm>-za z`sT)m^7|&m&r#*c4i&C%&PIgHco9j%7}1^5M?yv~ku{KM9-Z9lfp1C(>VFEyFKEq2 zJq1pH`n@CNAzUN;?b+r(pR9_r?AZhm?6F34Wzmwh{nccl5{>enH2zNRjO^UKS)Kg&so+$Q7dHwS~IpTr}_NiTM<=FU0rA7Z1`5shf`zlD0D zdh51V*~}Fy#Qkn+}}*fz$O|t zpOxZjwMIP`qCfc6MR3!|8q1@PphpV)FF+ST^GDjN@#pa4yi0a${UB1mC&T(3GkX2L z%=%saPJaFFMKE@cP_uKbhO}Cv48su7VOLkQ|Re1GXsSbh4}K_N@*+c|@G7Ul0R{lB!M zbk%g=Bwgvj@w3-bKICod{Lk+w9ST(yRL{i#8FPbWgJC;LJ88uViJR3Y7d=ca)z04RZfq-%(oL1g-b~`i@fh zb0f?nTTR~!Rj~E$DAgP&yfqz;e?`j(y!F|3l(u^aJ@-GgqxA5D$o${Bqx6$2K_dUB zc9cqbg&wGcVzwmC=h#sa1DJH>G}yuT=UqJlRea_hrGgIh-M?W+sp$cfyP-Qu$20Ld zca$bg6SmnCj$iAIfS~_@9i;`kgXlJBN9h|(`Pp`qdjE!|Z`h8~A4KmH9pzK(D6L(J z0!H0YI^xe5XWfoc-hF=5mj|G*V)t>D-&Fg?;aFHdoNuhc@Nye!O;~{OV&7M92lPE+ zfTm}iqQ7SRt^b6~#oo_M&#q+v(wW&=jcVQ|EoNZh= zG$@ldDZYj+(M0=VMB`Bg=FwEh04~!2>a#@U{<$nwjL3_2sz+q5{gvG3j58_FC=)}- zf%>J@1?C3n3lVZ;ob~x}hfd0LQxc1iDO7-yjC4(@%(_xvgDY^k!R4x)nmub4MH@SvIMI0P;+2Wato{|Lo%duX3PH>L}yoU>y+_+3)#d z#iyER3XTY7^#_SAH>cb6*`XJI7qTmxTL_rKu3`3MF>%nv_x-^lI zdNU?x3xegiMKhMBrYGf)+0lhFfdv6}jK@76H2JW=^u%ln@Dz$y+v6Yqya@l9D*VN9 z!aw?48jlD%0|GTvTq!-Fi}SAAzTd}w)TLh+b{50XJzr*eT1Bn!v72T)lX%|C1((5U z3Vmvmkwk_z#$AoyLcOpWS^eRc(I-V$Y$tsgdmE5ZwpzwSalj=Jo%HJ(2Gsv$OrKsd z8!;sRLy$GMFPZtE{JIUv70AD<@taa8>iku$oc6J^s*>%vyw#c0e+9C6Mk*)K(&s5y z2O*Ox$wV8h$D>TYZ<2zV<+n*EaXdVd){_CL3Gh`(jgKhAa?5=2KBMP`ieIAPAA`p5 zq#8YPQcd4=MWNGBXqR*ZoHG%PBSZq?6j2uT$62^T{Uxk1QdcuI=IULEKk{HvpF|?A z!2bxw!e*|V1svU~5BIP2{0!I`5>M@Uw;2+{-*&L-beyjhhKFS-vxGnZi$Wma{LCMO zG&-_0D?{`P<{FH(1B6F6&%b#fR)}P08!~a)tiI_mFx1`a#2fw*sA_ZK4flM{obbN; zMXLso6YkW+k_iMMZvs{O`zQ^e-IaME9%k0a#78URI}bMK{fqT|4Q1yqJC6v zUCjn~v;sGS{5lQj2?Ea1CbrxU49|c~u0OqDXsns~+EVkRFOfJa_k`nDH&P#nn%bvg zwo-+au`X8bKS@q9Fp1l;RAIp_|G0NepZ0gy z9>n=~NgHs1nS5zaYDZw3Ot^rQDjvv_In08CpTq9o8bI5sDy)yEjvLm|+}vAdLrBL_zTPQw6u>QGT0S zmiFPh?3On}3gOnUbz%v+JFgSJ4wKV<-9vZA5lXdrWI3&uBOBK+aVS>K*Un9e?O^|I zEDFT=7%J4I%bQ(|Q#GN0u!@`m5Ns+AkIU|C-%wfU6260T91@K~s@Y78R2biSqr+iK z7gJ-D>PkGp;jkwh4&Qo)`9pJc$Gl7*?!^~5;|q48Hw(s=-PJqN*zz#Mi@ymJV;x)S zh9almlibRjj1n^PWJbZrzj|^Vr%~AtDw6Pr-n8qvV&X_ARzN<;wSN)jACEWJ`yU}5(s(EZv#jyBR|Du2m&d92&?bD;boIn>~kTgSRNq*4DQ zS(ia%UAlAevPQszNffC%E1U}u3*J)AmG><;t+STpcsjqMC1)sZFiu3FU!#e6;12jiM@o$??!SPj^fDCh9ld?YWYSK zyS&@N_S_3uc&@$QWaf5)7S3p)L5}8mIM@{j-Ma)WMD7%%1adbQL z1!&UHK_mD)bnL+7-$ZglE|cUTSFRx!-UR8&V5XGI&EdSm%jv%*yxOVOB zdV=x5HbLA*U$lS2?Du2!2oeBRa8&xRf3GqMaBs0VcD**;}{0y z9wW$=TX#eVAm~^P>R=K0W2)KK1$ol4ojIl(#c|TI4Pki*cjkk390kCX1`m}HDczHZe(;oo5<(el8@dOo2$v+%NPvF(b5aGM)RX#?{{g9 zj%Rx0m?s|RNr8>(L^*g4BJwym1(VT!nGtk=G57~fUg~DbyiX$giB_54CnsyH=<~Cg zVXnxlVuoiSz417c7>{3XRR103HcD}qusAaw!H6v57rR+8J#%<@J-6V44}?Y=8699c z509OX%lL&9GJe5@>e&h>P(4pVwJ?Ms2+jqXP(V-@6N0+LF^jg{tTiXgXD#~KHE^hX z62xb{`k6Rb77b+1sq#&ae)9w!d_xd2rxP-#QB+-z#0TN(O@H{RLj^?{bTj zXbw;vzpl_iWCN4%`EXD;7g6d-ugm8k!0-JnezvEsh}R>N(RGxAS0d2E;tCjQ3cm9z zHJ~lvu-!Bu69jC904xQ;97jqkM`ODhPhz=UjVIEr%S{A}3)P-7Japbi+yV5r3VH?w+Vl zGF`nJO;ysBWpMoRi)2x#B{Vy2#gHcbYOSBd)+cTODF`z5q}bwt6Fx-!@*6>y?8R_R za)uO>z+}&~Xmuvru>{c>^VoLLO<vT1k7e zP~Mp1EoBn_A=C$SFS?0SQQVS3OSqu2l(}kM_dyPWs`}V16L+8t2#+qaRIzkZq}e!` zyLwA8A0QR(8#Y;O0tG<~<<$=Ou!JokGVBD+@0&kCGi-{A^9q5r#%`>TZja*TYq^H8 zS$>;p*H{Gv@5K2w*ox}kF>JwpQZrSaL6+8vlf$}w3ErY*qR(@EP!GD$rq6QzvSd)3 zZI&ch7_K3COZkP+h8osKww5MuOH8HA<%mB?;T*1#OC%8G)b`zwe9 zF^%aDvAhY9WL2q>ssPK^ObD<%m0|jI1j`IHEDu3&8J4Lo`=_S_%M8YN8No8w#DHZ+ z5X&sMS$;>ray#~f`Z-_j-!jBhHQ*7kbmV|w$w$t>k~n&F7sEjWOZ?uNav;2eqUAc~ z3^DQs8)WGY;wL;2etA5=NKKec1S1SJjPx-BrMm%m{iB)$BMi>P$USUZx{(pY2n)t- ztoR)PBR69qq5tRjK!igSEnh>)Bcf&6JAxJ&S=<1lI&2PF#E@2d`0L1OP?8KsOE>D} z&@zK4AX?@X1!$3#xM76CP(w=xGf=c}Nc0a_ENEeHE?Sl_QCbuYqJ;%F%kKziS=G1nN7Ho#XbE^&!YR0EGFDEg|sLT--SESf_Qah65tS9My#fiGD!u^WpR*x;f zI6Bgr(!7U(xcjL9=I>Yh7h;mp{fehF0Bb;|-9F3!C=_R-I&QzhT}@&`(+yvgq3I`Z zeD9q6{fcS8i{T;Bat>)XvR84g!ogm}c?#z*1uX>Eqi@A=lN$>2ya8!o2?nI!GmC%M z*2L4NU~+S)H9{J*fs>n=Xiao-Bd}19Thrfwt%=N1Vcprt3ldG7k+vr8LcY0M6PF@{ zoqWFFPL`s%cxzh@)YbAZedTq)^vV3n&Jjem9Oi2#SYXr}kfP*u-b2u+6TM)dSy*A6 z6>K=RT!fECUSUn+6JrT7LGFg5y+;+C7s6hi?CE8}5VK^TQTJQC*!}O5J!G&0L(fB# zkQww*Au6=PTTXoW)eqvQ33@451zZ&|Nw^;|2nbcu+cY3lNw3j>P$jKLfT^S`kd%r0 z{#kTa<1uvdR8ocwN{o{~PGdw>ol43?&60>JDRUc?U-yZsq_dd4J8&DQqzoNwFXVs zqnaM{7YZBc9ZpKj8&OS@s2fO5oIo|D>XS#GuU`ZDoXSPChUJWQs_6=d+GMzpCaUSn z4+Mpd;}>46^^JU5d5*R5V&}aVMyLim1)2Lpe-^$gg&%w;jva!*MIWKQbr%YUPFId( zO)DC*V^HT*;|mz4)Qmxpm6m`8A0z4Az*#?k3=Lap&d>Ybux&!&2l zVljv^fGi5#rW{=M-}4;f8k0bmNi5@X9UHV)d^IN>#--)KMNo9>++9O)`lJ6Vdn7X+x@~Dwjj`3|JS{ z$HH1F)ib{hqIxC_sea;?LiIbs@o$|4s^1#bYi@iOiPlB+3*OG9`h&4((Z3Nj8!(M& zk)*;A@cWI|0yG+a`xU=COP(?!jfmf0^K$Bx==mU3s{4SlaIhyE!S7MX4fth5h~Fmx z<=~eA>%#9HuLiYL{4&1{!Y>ns_!27dn&SZQv21&P*$-{QA&@%uV9 zbNYWqgy!M5e@!4W{(*)Mg7-{SpN!OoU@-znLlqXS1RA;1+Gjy)htgqMJ6Yr%WYUEL z@*`>OIV^NEx0hfj7!Ghj&3yk?lqRCJ*C4;BisJNlQHpZc%N|)3pd8$`l|bvbo%i;3 zh_APy42hB-)l9ZS@j04Fp$3GS$!dIy6rpDFIs!~HSqLo50VU%idHCSWrIV+bFl#5_bwPBXian-;+5jv2_~5RB?=` zCbJO(c`Qz#n#@FCo@(-q6jYPjRW)I>Q%!c3;XN?P5!K|N`;e!WG?#^{&OwF7zXJ7y zJeUGMq=PulmN0t3`2IS8v)X4Mhe25`a-#VTbe^u7?Zb*#NpdQl)AS=?XJuh$hE3+( z5Rp(Dwy5+VH&k(X6}9cNCbteWvY$qP>SSCibe5N`rN*R|UwBo?N@HEDi7+h8 z)?rnoA2&|t2m~v+^>>EZ&sOrUaos|0qwfWx`X`1|@E=5{7b~#}HG3pnbWKQN@A~(^ z>I!^L{Rp%rj_L%^0$M{Y>&UQY7Qj0w`oeHNe}?^I==d%_A)lYglcw6M7l+wII+&r> z!JW(if1oyMB>ue@Ne44Hx2-GK%(U!yvV&Q0v;2k~9Ps%Nwr*rYQKYh4r6i4Cf|5t# zJb%f{f|hn<3$%!1&uQkouP`k{_NB;bP?iUWqvbwiQP{AZFd4g6ab{U11gZzSI+Y z-RUiH9=??&P4nm!>CM@tEJ^Epxm46CLAgtp#4=4OM^l0rA9U2WxG<6<&O;^WwKjHz zC_z+qpag~X;G^1G-z>^8S6X6Qs&}OI%eFg#(tlE^$zQ+R5rrnB3ryoRAY8xv2;XvP zYaRC1Q*pclI_v&${HKl;rfm<^ycC)!bg5dwr?9tPBn0$%?X9<81bty69X02Re9-NA zy_@As_Oh-q@-o!_5qs-3wHPG+ZT8l`&j_beCW6z&8EH{-!|bi!zJv6lN}5~YewksQ zkPWuCPF;>3`TX|Qr)XWO*r%>8-?X}jbp`5lmg`2g$i>qVr)H$w_px4rfA-$UvRu($sG zZ8UnJCPJeZy8oB#t?N)b8)XL2@)Le*`(raX(C5ytXZ=Oy*YnT<3@`WpSs)H)7!@f< z@p+y-O3kepXVQG6Dc>Gt8DcQbgp2=oXh1l{zD@(eDRu(_{vWnS*_!q}xDN}C-#SwU z&B(6(r?E#l?D3#W_M$-2-igetXR^<18!VVvb0El@S-*P;D0~C$QT~2QQ0U$)RA<(d z#r~eC4>WFyR17%cxRWkXyMWJQk8;L&qFRy)Keau|w0WXhmf%|q{1Kdg8hey0u`~6* zXOA-UFTrS`VpN>}4SSR^=LT5*)b=QUm@8NwQUyMOwv2kl;^#n(yV+HCRlF2OKA+=gz)W6g_)Sr?p zVsC{}Z@MVnu!W?rhEacYQAcUiOJURtE~-kSo(!X&a8VOAYDF0Jh>HSOz(f}4K;>o) z!T#ne5L!pz{~Y`;#y|9rwJ_3I+lT+i`%I-!J~rh2qtgW`S=^maN|Rf&U&y~7ygQLa zJ<#azp73P%3Y56k&*bC~+)pQPKQ4$Akx)ZBdW_N=2uMiE1j+4zj1ujm8eaPiCU1pzvkaXgsRAN;+u_~4LTfc6; zBsxxIMBPXJ!EohXx7xmN|9e;Y%13(Ut}|C$!r=i zc)y$%+gKaZ3-3>~iCN^;hfk@>q2?IKd;Eph!*&^a>(g9?XC(=KPVVk?}K{@h3~|E4`I<3&sW?$nKV2zd8^; zA#g<&%F(@=a0sF^lU(u2xa1ftl;EZlN4Y;vs{24Pu0 z*N%Vwe3WshmeGog**Bfz345`>I$W@xF=*>tw9fQz4Vq@E=d@vEu3_K+A$N}$mGzC4 z^X0)X(f6f)hCuI7%Exc~9Fc+7biMJLt9Mw}%!1;M`)E@yp-fb)w#66ejB>Zr+O{B~ zr>1$q+M4>eH!f=YDnk45FE}qTSMi$2bQO$ArpI6RK1)p&!h4N+==)j6yOhJ<&#JK~RF+q} zY=-WK0|-|lKRSPxMW6IyN6c88J?>w;77Bgj{VcEg~xTe?zxQr{;w@heKc{% zzmiugfSw_K!9jErS-6-U@P%a zO9Of7kk?S>k2mS{2bTkHGqLxZSG=+jr4QG&czX?A!bmRST1Ek0K|;*4a#O?=yR75O zDqNFU=!u?VmE zvF1;mp76T{bC-#5zrk$=zhW?Vdl>&mgIf)L*5DR{pD?(|;1vef8~mWb3l092!Sf9s zbG7thmG&YX?L|HJO@AD{tKo4ujmEH&NSNk4p{6tvrln7)DUXC{4JXu0iG*n@Ce(oa zf-w6+F zito(<+xv3BwrmcV@pHh|fgG@9CPT+lmQ1Y1ImDD<|*FaJQJsyr>x366<;+^-%$q4HqZE%(i&3yO$(V=Yo4;h%~SCW^Hd&Y zp6WyCp&np7G2P&-!BY+HGk9NvdkvmsaF4+|8{BE|b_RDCJi*|0gEuv}&EPQxXAE9* zmDaD-;CBsfF?fQ(O$Ptb;Ch3fHF%-Hn_ekAKU;a8j^lafC(k>7N#Kt+Y7WZl8Xs@e zQk2(SnASvj-GymwmDgREwn%y1g=wpm*Ik%mMtR+ZDfX1tU08>-Pjby^sC-G%j7 z7k4AL*Y-zwygHJFxY49wAYYeV6xXR#!!BY&bHn`m2N`p%ct}wX7;4*{b22V7& z(53%@@b*0AZ90y(ou9nz{N!!tFAe~$gsJsctzbxbE{LJRT;ng7(t$X$vnj` znrGr4%v1J)c`BYaPvvvwseYCo@N|JRAs&0e;GvIH=Urj&fWZ$M>>K%tTp%DXO1F{Zrh!W65@ zyDls%EuT~BO8t8ae!MLY{KOxGyUlHC-)Q`xxErrUs^I_1- z!PtidGTh>M3Qsh*%-jldE6uGImxJ*c{D6$R3?xfW@d*|(@jK=zJKj7MV=YbP5f)NC zlO8Z`tMp$ymNdA<;2MLQ46ZV`-ry+)FEqH^;Q0oZ8a&V75`*U$95;Bj!G#9TG`PUv zq`^aM0qR?0a3^fRv4q})Rp2ILQT2d7)dS{K4>(gjU`zE(QBT}*6GmiAyito2F4O?6 zkFcNyXoZFUG(cM<%%=g`WZ^swP@D+cX@DY4cuoTps}pL#a2n7g&75G|reQ4>rmTjr zkk1q_CR4yTOaWsr1&p^8Fve2AxJm(IDF6XKiQkw>{KiS*H#QQ#@sRk9fy8gzLx0?B z)%HYLr&?L3WklAQ6;sx!gLyw$=iG(j7B5hEqPb<}R+w99ZuMJCPu4kyACPsjuq&4tU$kG1^OK;(C=6Q z{4lrxIRc58PcGa@S-Hda~T*XU}pg1N=!PBgd7+zN9m&8-%ftne#lKvrlsPw{=` znfOcdl-+BdihImcdAE70e?bpe!8g*o&0rWR2xnvJYwRFS`#IC3DBx4$xDE?MM+))w6RL^5}?>nl9vEQS3vR-rYH?azAZ}f z0yvTvz>&NFj^qV!Brkv?c>x^B3*bl|Wd|frzax429m&)0NS=O2^7K2Br{9r0{8-3P zOh%(e=O`7@Lgh&a7UDc1#l!RfFof690?2HNLT|^OW6bo{FEFr}7T-RR4?~knB7o zv6~E@WAJqb&o=lfgJ&9ig~3UKzh`ib!Mow~Gj#JFP)iTW5t0=TNme{0S@Do$#Y2)6 z4@p)$Bw6v0WW__06%R>PJS181%ux?CdZ~j-Tf{)4w}AOBg|z>%r|j#LG3q$+?TRRJ8S3gAdp07t59i|rjtyBw)9+>t8%j#TM)q)NXdRr(#N z!jCN?#X?lt9;ec_cSKU{U!$aY^0`W?<`$bf(cCg~E6lAlw_041>KtZ3Qa#B$#V49) z;tA#{`;K`kjyF%`x6M<196cb_DkH5U44z`}p$3;5Jl)_@gQpr?VsPplAS1@sKpdL(&uvNmD!|P4SR4#Y55*4@pxzBu(*%Z?jwA(eBq@L+NdX*5vg(c`>31YazavTd z9ZAyfNRoa>lJq;0gdaMubV-i%JV{A1J0eLQvl=FA-qKQ8lZ(gpIZG+i++uSlnpp}E~Pu#eQ+jJ)dOUCI&ce=VwTgYAExcNU&%Ukm%+540Z0VpEt7 ziz#*s|Lpvwm^_II?hr5t<4Sq0MPyAkf#-p35S*@T^xQRBnu)IyQcO~vb zmN0)#*CA{{yT8>&^5$RS&cVc;?nVe(Lh9L_xuX;@KZPr>)(3XnF!}E4V!2}d{af|M z`;UdGEk5G10^NFZdwA^;s`_BFR+agdYtW8Xd)nZBq3BAr`>z|)#ysB+qvvtV6Z|K% zlV>?w;EelancY^~(bRgDFh@(65fmy%UXh!$>twoiN9wdhz1_91cf$p>tH0eUYzetw zikv6$+mR}~3oCr&7>RAdT?9Ptfx0(|oh>n+XWu)f=&C7_qz*~e)5I=+C2hdp*DOaw z2Zds76IgaePa%G52j&*--BYv}Ojgjp55Gg*_cYh_tH7>bVH8~3#7>oK`D-cWfl*`*vVFX9#jjBeO@fkU3jl^2oo zO#Yv6wqV~u;19jV<4m&#{2|z@v&+LvHl&x(Do_>=MuisDDqk8_&4fIJ<@|yy`s1ma z1$#V;^Do&p$7})9CVq}XK)viU-0bt3qP+8Gq)5`2*vu!gaEE+gnt=n-z=oAGc^2ym zX5h{nvAhAXkJtArk7*3bTr_%_=UbUsc9$1B)>3vQUf0riY1Peg`DN|vgNfJO-A`s= z@8iJFP!QjocpcZM;Tg*>qE?Y-EK%1GJ$C-ft3KghdGa}@J&RV^{c}z@+aheJ z;*&*t>0KavK3Q>8lUG=|=A*;vZuYSR@?(0?g&qBOkzh54uOSD>_pIv()DpC;?_;8u zWh~wny9t*3>r9?rKwSy!s6z{YkS@Gq$q@w%m?wUkf-f;ZauVOfs>)5dtk5Aj}(^}1~J$b`} zHT14tgENgaMJ+filW46O>~eycr`Y_TFq4f)PO3^~ERzV;d`t5K)$k@@lGIEM!J#SY z4gBY2=+k-BhSAgsg<~KqxL6aH1usr>d3FO$)Z``bx0}DzK0TT_>$%UZ>Fq#v{NwFD znWE^cpP9(3pNZ4a2udR4*oT2QgZ^s)h4|-;iP3bUC_IB2v?* z_*d}))UULC`ZOU=5c=nB5K+RxN5%U5pBKw{NpLvM{iVU_O7BQOMGX|! zuyRV|e7wCkm5x2lISDF58sq6rFLvW42+>!90X>PMQh=tAY`SH5W9xCIj^ikh;>jJ7 ze)s#Jt*=p4u}3ny6B#B1d9Xw2HknJ(0W5;wg6b`3p5!U9f^%lL&DwixFNDu$W0{+q%yoRG_TAXMGk5*isCfVaJ62G{f-rj zCynF&F4`^*yJ*({9erj8NGIw5NuWK-kYCciT9TxUOuj%pR@e!yu!bsJ`zfOOmI3g= zkPFv$m4V|aNpHzal;|G>Otj?)_vQQI3k>!^8ANR`4ql|ykyTeG z@@st=v+{7>T#eCzn=HH}1b89Fq<4f6($%*vBQaOr2Is+z@SR_u2>;lu57KGf;AZsjGLaLC)YL$i`_SLl|xANk@eF3oHUTSxr zlGsN$wQZkDEDmkoFQ3-cqez~M7fKmko~)$_5q0~E^oy48iF8eMpw zrIVGAUR{YdaONNLJDJ)bk9v&5L-xc$&Ma>{3uvetSX*>mCueri8Q`XfLr!D*gTvN0 zBv)es$|K6DF>dw;neEowdYM^timDf}@R*xpFE9284vhhd=&blEZz}ijJK&424hem> zK<@Q135Q8@SrFwPyVdTjIAd70^1!*9-MKUI7hd!+iN1rPDI`_i+72vq6ck+@XU^D2 zMioiU{Uji{;B+$A1U-gX=O&4bEC!2CtBG`0zR>0Xv}gr|9hMUP`!mAGWNI)nr7|*8 zC;^Jl8Ja8*a?ry%hgX;J^~s*fZDqx_xP%UaLilWehx*m{Jum6J! zrM-|h(e{4GBn@?~VS8KAUQQ&V?M0Yf{;StayY@PTwL}W4?LOj4e<*Q|6X#^vna1hQ6i2jkFu3Ltpa5HkHvn# zTga3Rb-f{D_Kwb&y=2T~=R&Na^aB4opfA*~56nbTiY{J+{M4{&iqz9x;J~$>X|?Y1 zlWu&6ECzymN3wZp{?KHU_H(AfycH{t!}Q{8j$WLN=*1P^#;0d%0nkLC&Zzc8Y>wlK zAeJpxh(49ZRl8W^Pd)8lvbod;$qVpE(!lhhmQD~v-}J%GoT23u*2-wS&p26d;*^_u z6szk^i&kaeh5Cge(7`F(l!?`&tI5645wOhViMI_j$Ao0zcBJ>}TKtdj)}Mbd^cf@t zcLZwk5Yr9k<3wf-!@byTE=%@J!@@YwrbGr1m&3^)rWDC|(bc8+LN33hl9s+C9zoyR zv(ZMq01V%8)Zc+SZCr#-&1yoY!Ih~^6I`%NRE^5iYfUm2xyA|UA&~XXETS8{%LFTc(#z0 zZ(y_+yZu6IytUL#LuCZcpNYmNpL-{JtDilf8DS_{m0y`b8YFL=0H@Q z(+_%l<6WUg%E&&(!_Au8eg@$*a^!oYsDS?g7n5>#Z9q!0YXcM~dP9_+4%v>ZoNC^_ zhFN*BE6$VlvNrXulnGnwnH1^8BmGO+oye<{gPtOC?om#(QLfc2S9N6N(yE zbfB{J!QD{xOz?@~iQPDx{b$3r^;u&K(fzuKQ+?6hpn`Pef57oK`RD@@c!YGANQ7_y zCdw@BmywuoFRX5@qingJIO}i!=7($jpZh2**k}o!KX&UKi&k~AV!8bBux=A&kSR|K zf}}Be>wFUOx`U5<~jB+lK zD%h*avU7p4Kq_H6U+UR_RnkjqNamZqn4CIb?;1_#=g8(#bI*&wMn7#v%WvR`7a_ZJ z9awHbpZ~2lP{rl;fic@L*wD~K+J$zbkpd{kSdRUlRF)HGn)Y-K%f;J}Rl0Hl9RE7l zKID=erKPgm(^zTY?1s&-sveME)t|l2sa%w7g}ISOfnV}>ypoW3gRe|=f-5@_mOEa# z{ZCnXT3Cuj^K$g@)lOLba{(=WzYv@`AU|zkU*BVFl@>4 z7U2@aW5ul$RYDesxd5dfQBECr?CF@z=T#uMuQ8sp-u8LR7ve+d)25dfT@g$n(}syd z|1PLywNW{?b2?nE%8_OT=7JkmYaM<#zh%3qd9z`d(8^w(paa1*aTgAMNyJ|o@t4y- zn!aDk_NNxSFZ!<24zNF*Mi2)JyY2FkErnRKs9tGgJutGrEEz=Z$@HO|gRM3Bj9@=k z$}@qD+!I+=4)PT36g4C$u_mX)z`mu0e4gSQbb*f|`_l#}{QQPiPu=)X^D zn_565ks;?Iex-v^y_*98cNnE~q!QUJ_9m3?lVO6=g1clz#N^HGcGwXO+fB055hzgM z+P=ePxxwY?kx=#GDI=ij0}Sx}Jsaa&;PgaA%~p8bfI`t8LBnmQFEy+=py;~C>R%nx zv}E`@W8AF54Y)5wUbBoQQYmTslU#Gq9uXbJI;ZUMW3yV_#LX)hbqi==* z=d2ze33OUkv@6??8+t999H&W%XW**aKk|nVE4K2UT2ijrlu8l0h@m&kA&CqiX-BQ{ zAgljA2`;@(F4ruz^G`Hle_xa*yOWRUqc4sYpfHw$(89o*Xgir1 z>gi`__sBqY7~SJtiMCU;>mwV|TnLwp8kTb*9*X_2u4i~o*E1k86+iV*H0eWZC~4PA za&-Moe8kNz%uX%o<2P<0S$7tK)$I~uE{BWnMQ*MglVyiM*^~?5d2G7iizvO0=^K_a zdZZRGJf{T=h_v9=B=VRVv_O)h1utJJE$C$8)Dl@7cl(iQ8xZV;vk!7x@DKK$J*75I zXqa7=3~2c3tAvKzHSZ2O`kE9_CL0&}pgbVisz@)5OA$*1SKe|a@%N-C38`Dcwvn)< zQdoM4)XP$TBWJ}oU5`K0W_LGBAh5b-St_*vAp^!m6 z3IG{2(MdNdB+qF9lE9SM(BzWA-^hY#O-3>Z`@dQGf4*kAP%~9XT7{1!Fr@}7YQF;Y zo%l$4%Uj_1ds2*q{V!qLNSJ1!y-dUaT~QfU^_`%X1;0TrOYWm~mBdp1a_x<14}bid zrCh3Zw6|PIttD3jbM|eje|ptr&upl@;D=9J%Hj5cS&M?QykYi&+ulh6joJs$e&7ks zhDf6FnG-(;%GUstFD%o?J~>tJ)&XyU>O$10I*E#i{ohugerG?BMZC{=rn{3k@?wu` zF7oLw8HA|qn1q_KF6VGafj}FA;&TjqvP8{gX|Fst9kl>mbPm6jySq#EE0~6JYoZ^$ zf$V3Y9Z&l|dlkJWvsaWW;P-AFD%hlEJ}Z`*x@v86r-MZ~nnbxLjn6JwE^Zl}$ zE&Cy-skaS0n?b_pe#j0uf8s;D@a?7F?fV2+pcARw%37AG0r!~OYi{P-Y@-+3Jd*M8 z+H7zun*)KA!pMOFWfj_13#WIKA_xB^UGJ{P%&-Yb;YKz+a&`qSKyqEiLkb&)y8Q0T zAP;qMuLlC6*MCvXXfvkmZgGrAytYrb3AgW&=nyv0Ure@Kw6Y%lD6dD}pP0}2xFFn% z9R}He7PJE&AL`x=QP_cxiD;k>GtM^ueyl(G2g>dT@Z)CGp`7jb7l|LQ&$=wIFYIse z9#)Cu4*ppgAgWbxnoeZkQd0GWlFAUpp&%HqyZoCk6+|IaXA}OtVu_mQFhu?RXsLQ9 z5amPl*#lKZ2L1>W0y853k#_rqM>s^CNW9C9{5kg1|AXrdyDF}R0oS2D>EdcS+@IWw9h9>ae+F{l(t$+R z5#c$}Nk-#KF^^_KGbVbg&V35ZE`bOnWOJeA9_%;8BrhlT>IrcUjV&-w*B&t z_s6H7a{Rc#je_eQKlWp-;_TQB7(dR%$r$z%P^{K#d@y+a-5Qq^H7)AE_91J4AJBfe%?V5#7pR1fmaB5?=D$-%_i&In*%Z3?8< z0r1JpIg!bmHXpb-+B{nmQV2>uIBG}Y?!YM=aRug!#90h$NCXlO&bI}mPNap>Gt~2* zWNT!x7pi&QTO$$qUmD1NvB(V9ML+L)>cB^1i1=LjX6x@=iPh|ENOP>OLk`abB4`=4 zdN8rtVUaQ?NRzG-d-&OpQ78o8>8lj4Vd+bGC_EnH*0V$V4T z_x@c{zz;rHF|<+SM5ip-BgN}TfpW*Fr8WZIjC@kTjFpV??c7)6)NQ|R1L~V z_@uxumo=5ux_>gVz905KEYx65DFkF=PQuSfdbs$^rJB-m$FYK^je`Kc6qZcbw&8HLnb@n%;zi3n->KpnC zgBtp)!@r&q2Eo^}bT2kNlG3_o05Os7`ED5?9Vk$hf@Cbjt)IuDH*Nyl%BF&Bbz>rz z8sopn0_EITWWL0?X~Wr4N$O6&(dm6BD%Qc$Bf8TY0R0P@hnTYla;9SjYw5-6BcGzC z2pYfjTxML`DTss2Tk#4(pPAz{oyZCKSoPg3f~+6FS`7;ep$w_Lf^ki#`KJ<@=nOL> zB!e!@Xi100lj(ig+qb{RlPrlWq9TIENCd0H(6WF~UtgHT5Uh0O&hN#wKdYBMvZ3Q^ z+NB)6-Z0;yHh6r!6Xpsk8^Zc{)yHWzBaE+J_4u%e5yzKOCol7O!h?uj7f*alg;_)w zy3crG(jg=8M9z4YyB`82qt_nZLnwugh@;(sc zGO1-DC}4hxztvKhH;RrDvTG<`1AIVKjwnBNgC3ZNtCLZSb>Zp)S!-n#LR@{E7y(yd zg#!68$Mp}m>0{k%Zi9D^y8NB}2G3fMjQI0|$`s+Z_ zo0avsxt?oLe)c$|yGGK1S=>`;eR)zP!BnP4_3;GLfJ*k>ymS+p?(57=>@SC#HumP2 zHugrA(~sO2pB8FGdcm8%U#iNsTk{FmBi!8Y-(}Anj?X8Hn8V!Ii(RHe^+@A0=lA}8 zYBx3j5!m}9Hq(nG!%sxy3IU63rv#g>0=EO91EH$4BSLLuufq&kHfBPbVlnqt&AsVh zAs(sFwHox24o?hfLx_sppul=9ur0U1dzmiGbw8J@Eb2|cc-HQpF$5`rB-d#v7r0X7 zG#CUr86uGZNo3r@V+VMJf9pO4cF;Z`3Ee2e=jqyZm;w|=>hkl1wJ?oJ+y*48{@_zw zBOTJ)#eP6vJ_19|JDuwEF?agc*D<;F%B4UWzQ*@=U;ZU*v(7;`Q2Xu24Cg?*i_T3rQdd$Nm%8M-wb2W;9yzSO01qmUt7<-G7nagaFWhOUOG}J+=+{B~e zMa!N|p8A+5i%azAxZYTyD%ujQ5Gl0a(Hi`ynzhaMAtt@?+qO&nT2U^RS}G6I+`{>2ppX9AJMcdEBkV!CSznJb##c_v*icGFST+%)DNDLkh5bkZx{Ue?i9 zOqT~e{d>zkCPe14)GZBX|(4&Gn|Pyzh!MTvh)8x4Myf2vdX- zTa{-VwZ~~=iheL<^l0cvw&Jb};te!O-z!WXu6!c%LrYxZU7=G2CT0WvTj7zp`JsJ` zvmau`s6|Gm2c{4qyxX6Gcdt=-QX`CO=7#ci(W(|!#ED%m_Pvt@vrRzq6-SD<6?kVN zs*M?9zpmbI$8kJ=8f(OvMYzqkrQqcrp!7bSHusl`L6zvvMOAVajg$qh~~_U*&N%HEDN2wHhW5Y&kf=G-GL*ZWRS? zrVK{QSZP8$wdR()v~DeA9aQ`78ml&zVf}5DUn$Boofms+ri(|PtAvMz9ecU?0Vqb0 z%pqcB^29d#zf=mq+lDLInc;a@l}EHc^I|_dNwTI)TCAmvB$MvvnZ*N{pUNcVDln&w zC+tOKm0U({46d{RugwO$Ny?}h$pTp#POis!Ieag*`6YArVy}NI2x6kV z0)MClqOYO_-pzDjuG3wvB7QjFW&H1Q0Ub&1(^BePDKZUl16~WV&B&g`v_y;5{4mSA z-CS3ez)Y^a?OOEsfmVGMdMi&&;3%};0Z;#YNL;iPGlO{4^Vdx0#rnP( zV58HOEK#N+`dg@uk|*#&`ndX^tOA7{UxAH`S95HUw6DZBPI>OSjEX_WN|MyHL zkNMjMO(xIR1AG*qbBG?yaHI2+=zM2um{jMl9R>59JrvCp$|~EIO@;grsciYpG<@&m zX5QHQP}w%pdcz({t^>JI{S9vc+H)pbk7s?rG(Dj&T`M-PC6{)!)? z2iLZCW(p!u@q)H~pRgBuQ@L2MGnV25yAvv@dj%7L5c<7}tTu#V+1}l>wL~ROPrc@L zQgkvXUg4t(%UP;~WBLg|jshgFV z{%bMfiS+Y7-U5wXre_~G zw))6l#FN;xd$9u|pQ?sEe(R~st(Ib_LsIGbRz|+0T62y{y$q@xS(f?*)f0STdiv8< zTBokWEsmrH^rEHV+Vw4iiCY}cemGXLX|j51FXtR$tJf&eVd#zM;6J($GR7N!?ax@Y zDmm^ZwL+*m^D$dP^cF(-P{vW)`N#kmtV}u#$|)}^VII~CgD>n;)hgPV>-(D24f!${$@dZq5=WW*Z2*rv4XdWqj4?DX32}!F5=qGE{ zrm#-=wx$cUqE!-?sL$=Q0?7m$iR0{Gf)FS;um3br8r8Hk&(L&^=2$K{n)!02e=!i4 zF7Bt}$+>rbL7c5w0NmiTjD?*nVU@qr)W46UK15=~d=?+nyAP&Fuyv)L^++X4+|j30 zveb2}Q#aA4a+JsQdw0^SoLJ3T6@NjT@rPpeKV1^}7t(4EU)Wam7r$auAZO36*n_k| zZXIqHW>b!ON~!AoIIz{Vgqz>%J43%YzsO;pbH_PN2(^)YcrSLVt_%nt8f#us$qFiK zN-AYd_NrulJi{+@W!`IW3+PFMZ}~Rdq$_*Xpz`2n#29uwDM<;J%>`ac9i}3L zd!aT!QAxr*ZGTpx_$YD4w|t$1%S8Tz$D&ms;hy{@;u`u!gWUH7O03YVq^`rs*G#h| z7C5>LYgD=P_!oSxnmGzdF)uGR0mVxp2&!k0iwe|L$hJ5*1BtS^*;z%)WsbTNYBJ&p-zDV2hNnz^Tg$5LfEu>v*v*9X(?=OCXoe4dB(Mk@i(J|Nb zxl#(p6zrh%3dCz=!mASBiyiSbB16sdyG8b+bj%M-(t|!Ias3N;^zbA6AniP%8#Epo zF{B#KZ*3w-?Bka}X0N$D=60$pnSTdw;&njyj_<0 zNs@H@cG3bpk_Y-hAP58NKZ{lnCA>sp3tepK0Dll;Vdb|RR_qAXK2ftGkozM7-4V2oDme#26Bd)EA2g**@>pB$8vU8 z$(ckwPhphaH3J_%jP%L=Z%Ut(lLGRaH4Vk^eyjorp!lqhAE?r zp1mWKVIOHHt(NLkPW zK#y*czata4Ad;!wEGDC#nChrmvRp8z654KflA9uet>bww$ZS6|tdE`yN%rgz2W48X zT@Hz~f%SsbL>9z?iIuk1#C3)%rwX}>6$9=X4dhhXbO4Ve%Tx7_Hk@TaG#Zos#+OS|0HBuqTQ{xg+20PzH~*4 zvY$7p*n_3ZTHyMQk;r^_=XPjNzq=ppUd{olf zcPTUS#(zXTCr2^~y#*B2ig}8BMOB9v@W|l~Dan{{_MQ<61QQ-XDU&Z2Au-J&{|A3% zG}v0tZg9j8*NaQtWZR#HWO?@~7a|jU8ChNla>XK7X;htX_5$;5acHhixw-cIh)lJ0 zwHKA*`XaOd*^m6{e?e3|h95LC3+-Tl@o?RyS3~4en;jfKiH)z7wc~kAt?S5b@+Bvp z_d_HhuniTD>;*kWl0(KeaW9r!61XS`ysaX=jydg1lPFP3pA z*b{sGOeT^&vDegFDhWgV*zJim>Cyt2EV3sSml?d<6T9JXkUqsD8&;4}OGCiMqp7nS+?-qE}8%Eg<_@ z+pyah;FGv@u}(Afbu=Doa~^9W89+L>{{-h=&ijYu<%Gv!=$}#T_!*4%{KnEEdAvTU zuibzxnkRS=!Wul-X6}1UitIX(MFy$nNXqFBi_JMG!qH&|EuLm|SVp~ji1$~~@`Kb> zJA`G=*9mu_vUjj$TbmmwLKb3^8Fyv{7M~X~6+5s!P`n1DcJ}K3$X|EVn~-m}vf+O8 z`BoE4(B?9>>Tu@9aOzP*oo}@lOOoW2(nFqabwLlX5=B`C6961?zsLX3f4=GYVQh;Y zE9jhjDQiXJSwtLR(vC4kVYNJh7>FGmw@j1Wx+ zjYJoDnm=YWDjvkc%=)Vw3zGLUr#9&2sw)D`4G1uL z9D&H5Qa^#bi}eoAC5V7IRi_gRGvnmoA*)zjteWtY5NB`fL}_+h&TlAvURrNMtx<`q zQKu*dQeP*1!^!M(ic2+sqvjD@o)tAVgg?c>x91IVCa6}(%U%!}*1VmTdd;>Lk?=S# zF^~e&FM$CF{f10XIY!Dxe{u`Y)U$K!6jPLxgc|$T zf1o$7NJw?<8IrHS7IcQkHgGc_qT}_f0#20?JhVX9kUvhd{W>0+Z`K^E2ber8d%bXj2gn`8=7 zn>sw=T{|~-3~2z{Xl)xgbLXl;QI>!~2(y=2df=vnTftg$II5ScsKvu(!=B<3k+XM_DFvP}qY|5~jPPS#3{l=($6F=H}cWLm_hnkUSHYIB+~aYg=72KqdOxdn#QVAp$Jk(uPd*G)YMW^9h$QY{y}Odo3bPQQBlc)iT!BrfszH) zYwY;k_>w>7$Jg`>!x2UwMRqKW2F;iVW{*)B=E$wpFm6&`RmqhdZYxz|`Xh1KHfMk_ z8`B@VJtb7Lqy8CHO7GOKHy3Q_A9|R+a^bfd1yO10L3!M7a}bvy{Is(BNFoxXwut07 zia`!Hipe4TLr+|UacoHc(D^h9s)}9}^S7C9@m*aOieSDCQg_Srz2JQKHmvZQZDs8w z-4j7v=fi&b`fF_gKM4*}Y7`KtEvOQ(!Cbhof9ORj4cuIKWee=TF&FMXP&)0G_0l?X zK$6H@_#7Ez!nyEf;y)rCbrXFplk~2aqPoXvd!1`%>#@1;0p zZ3Xt<;GcQeF%40Cf1Q9#@Xt6I8bkj1dNLCU|9q*hL-Ehfo7n0`Z7Gk*wA}H}#Bpdh zj&kImLAI1P*i3`?=YL^Kso=i0&zk44j+dZ73XK6FkNk|;dP$$=c7#oGem^s$W zdqT96$Tkb~Y}HQ8P8_9@{`n5y;}l8a`_}eD;=2j){R@83*n+Pdw6QdNZ$aV^-bj}llWpvm-?GSFi8DUUkzy2gNm}RLjl3q)@{z=5+Z`_O!Io4hn`JU&PU~f z)V?x?q;}9RU6@a8gD*2-JzOAKqD7a>;CdkeJ9|>KZQqwR5+daR>-(R}YazwpOWxxG z#bD|7s~dECkhNdQ?Vk2L0>3}!k&#je z3R3Mh3mrH8aG$S3Y-f5gfoOLctB>i$W+KkC$)*?A&01W7WW?29##hl+F$ zcnio1(ngTx!gn~oT(lU{8*Q6MU=NG|4K=Q@KqDgqG<&rj>to|>)i%$gn2*G*0v2`b zP93tu?4-xcdmKt5hwqH0*bh>VXnvNxsx2Fe1Wr9hmNmD)x$}Pn?m#fap~{W-Rd&4p ziDPt}U$Kgizd)VMv7DbCKv+^2KO%(ll~SOPJ>OM7H+?L=&%!tS%LbOLjml!v9PUXn zvv7%ta#nPIK~VYOdEpRHQ2(TS=AudMXhE_Sugh;CuX)g=&9)I34ApNj_d|Tz``F;< z5%upnl!WU{_b>x9(sBS;_iyfD?X0xjXFVUpF%+qKoN@$t0h>k{`@QV-+q4VkvLc(D z%gU8idlU82l0Crj8h_Yf+f{PuF32nnWeO6Yu|||TV3b^~6NL^swrNJ>%syfs{tWhs z$b#GuNRdH(b-UCQk%zIM$6QOiv4GtW9-#$gA>E9i0X!of++J?&Nj(zN*G7nw#EPul z|57IWh5cyeAxujX{sp68PeJy`=oW$oxPtx#)KA&|KXDBeq)PR*fPMZYla4YCDXIN!bs|52?ls{`13!k|C3A%pQ|5IU*24FRF zQ+b8Q(4ak*TL2AnKXK6wB|V@vIZwn2)Bld_Hk7`w&YX?Swa6Um3zcU=U-)zdp&y#3 zs+<)em@L6!{aI)D99j`Q9o-U+A}#Z!@=ewg{7IeiGff||cd;q(%ma*cB!W9aJHeg~ zT-~fL=k0W}R-oxfCPC73H0c=*YGgly-Wz}dCgsiB56gngOg03@eXrSU#M=CjUk*)) z+CP#*4$vcNkUHyNzh>_z99Z@0DP$Bhk5M#dsMP|Mp9S`(8(6s+Mf!w`f)Uit z5HRVcsmv>@OLE_cxwu0zaIGX>m)&g!OX(?UfDpczrsaR}6UQokGln(!@82a*Wg#X; zp%0~adqs~}Z(LI@fs-bhP6{|q3%Jr1U>7xVZe3`yU@Hrl*kT~KZ$7?Q_La#ZWnuyE zvpnc}I$_qyMvOuWc+~(ITfk#LWC3sV$ADoMUL;Dntm!0z^{lgFSPNN6lopG!PRoPB zI9F@G@Jt z0N}-Z- zW)F<KoZe%AHtL zkecU%dJsaXWKRfNegwWqCd}#udBBl91~|XUWfHw5b~;t^9GUMRrQPXNkd5MmVV6 z9LNQxWN6eX^GIh?L_G#7F`cf%Pim+_8jxPK( z3kg(>9ay>=i)hhy3nUv-jb++0nQ$(P8v6y#gz5c?s4EK~r`W%t0LQdnQFi8Jm@r5U zE3moCN?=D_x6R+KRtBjuD0>NipJ-v#tK54<3b$Sh+UHy zEgydX`0uD$YS6kps0a8X-POCDg*P#T2fN^{j|jglLaH{e34O(+)Jb%SX3l=d(ougt zB`icyH$*otdX<2F`HhNN@e1J5zif?bn9XeQRKo12d9`4I<*{}WiN$;LYxn?kVD?QzT`%1_zHZE*em%g|<*X9RIZY2;FLeCq#5|-o5fS_2kOXlV6 zs1aUxXYB>tU%~D=Bd$cCRLK~bkby1$|7fO%hDWjJ&*+nG2td9(q9xXBH(Grm! z9d9A)ucY0i!*oLr>Nef77AEtghS}5DO`IbnS9ElbqFOZ~Gzj%Zl0hcpG>X)7F+J7{ zVLG!H`OjKEY9DI`7K81#)2)1YPR)9GbmRk_sf~gGe-T6IO4veYu8@6n&^i$xu%$N*oX2gOj{OB<$&*BI{tQ52!%^sg_CV~C>!SxvaBkKnT?#M*4eo(EiWnqzI zE8TK|XQvs%l7Wt0Kez#s6Vct!qgu_w`z4L{y8#`PJcqr;tsh85f>f&-2f$5k{a_^` z1s}WN1c~(nCN!hgqX=Bu`oYf}3S2+9W}hSq8v=!;uOHlkR_H}4I~t=fFFQOZE@0~w zTt6rW!=0kFfdMr2vKj@*TRnsd-h&Pf0(F}l_X@)|su?vzEY?8~KH^r%K-IQ${wM^Q zjUaiE>}l*T%w$t5GIfwToaJXzMKVv1>M{L#T|7%tcjL?4 z`zR6&=dCxq+KW$Zsc>~H_kjWYQ500PX0k@3A+`k$VM^~h(EC=b*g)Yn2| zd>uD3gNf{ZkfumVnN+iDZ7v2gWA-G{oJ`5i47ZdhPrJVwV-^@DcK`N`+6K));|6_g zMS0S9&>WZwqB$@DN!J*|%!n%HGncMGAd`0Cli@n1$tW-h8YGOw!MUsd!mP0&xRTD? z?gH1`#3qU4JtXjxB}`-6}sIvscOBfsAD?o_viKr^~( zIChpjFtxJ^9Y=R129*!Fl!Mp1nr&3EOh2-#041P~-kZm3%pI6IShc^8l_ z=1=(_?XPLO3!~Gmq{olmU-RK>$Qm){FU$U#!hzh*;XRjO&xdNQ>a5u@EN zYVQsz4?Sk->oL+l!Qg%1HWd8dJKw$ZPthJ7`iqo?{aJ>%s!~*d_mh^ETqyGohUyG( zYpvk`rmQ&d6CeEZ7x!5LXf(!-Lp}smm;~GbC7}vjLT16TvVOB5e&dPt4tkxX2O97Y zZgKo;?{CHliEE<2*wb%d*3d7}L^?xrFV0bz4&4ML271B`i#H-W(fQH8`ve`g+83}# zcg~;2M5m~Lopv}&LAV0FLqng0gAB@+(r7`r@f{g>cu z0Em>1Wap@5i@csTdmM5oa}!_WWfS3Kv~Il5=aFl$ex&UgRDN;fviA4Cxs-$Zd#jB? zn=RY=_WQVXBHrIiv0izNg3)?|ouc=Nh5T;*hPF$rXSIRnK&nDRG@xK$@>5W?p9PiQ z9kI0jRl68g8#E?-wINCOfjMCxp3R<}wFuWwybQwcOScAlGhLAC78_4}+xHy7>Ra&u z%`wK;=j9cA*32k))8ircQJ569V|#K8w174g2Y?+2DrK4#86C{(!oe`|-Ov2+tajh; z>35s^eo4Pu-FJt6x47?l`rYilZ`JQP?)xf!`x|DPh(D^r#Ug!8*VrJkw|&)KBni2; zVMDomVqY`s*HQkp%)b`<*HZt=J^8laA|J}uz_Ky;L#Ph| zvzaC|PI?)FWzmF&{YTj*Gw3!GO6DE<@`UUwnQTx@iUg@!Xw}W>*HLRVWQIMmLFI(!HP!DlRTolqxm53I&57aPHPwNdDvwlo zmn!d5y`ZVK)>Lgs)#g&kBC?kFqNWzRWnjGyHsO5tVNpYa!oY{sphy;;s1QSWh!kIWyDYDasV^cDLF!5=Ads&F z!@N!)xzuLjH=*{HTxuirqNoAV>}>$VLMZt0%0ha-_5}H-LKxWGk2JZ|r~1X-2q5gA zArO0@fx`KVhx3NQ$!kt_Uf}hhezE@ojs!Yn?9!*gIo`wRQ8*2nlieL~F3>Obc)*ds z5RL@edWnCIlJ`x8Q>{72DxAIbi!uUmBrt>{ffmlI+92#kZz-Hnnsbc8Swp|d6^;ak za3s*exx&MFTjBJGn}*#3m3mdb$`sBhK0-JWXyNGkoD2i+D4Z6}S*-Zns9&WDM*>4Q z5@_Mru0v+ETlWKDjoO9eJDEQ`V-6i*dDkYHtK2i2oI@Voa^;YRbrm~=2Au{ofF8-Rj{)K9*|oV$fdW*PsrwN zC1Hie7QS?k-NIM2ykI;X$OzdnDEilF{&k9fB_|ef$iabKHneRsHW{H_MtiY-;sR+n zy|~rB9?*f`;B`J8kQ|#Xl;w_~8gLRT9)E9!;@rO?z+zi6qLH2G;7cA*g87B(wDBmk z63+0L?|`Jo>bCryZ{B_e@UIg1a~ZXu42YZchpFaD*xA_`KCp*ZzUoOMd`Tdtw))kL zhZnzl5T5q=g}IpMW!0Ni|z&1ZWp~Xe-8{xn4RW z0iojNUkF)l;R6uT9>UpV;2?Degcx|Djm-e>9y~DRmK8{Q2lC*#nNIZW4auEm;Tv{p zCQDn|Y8w;1VB|khX|%rp*N9?9@G@Q9`HEEp(x;ro;t#K5{c9^;R~}SPNU9c#5wtOH`}jkrv&yaDe`#8{7zbLh5X=V4wF8s44Ok`)giUhe1-!N zkhLt9m0tyn6t*KsENI!LS<7Qt`89M_iAB~~nzbsHm0v?=l~`omO|w?Vvhr)_tP+c? zD{0m#v8?r*g*flSk5S@|_|R*6N{%O&fq8nnzNU@-KfA3ELkaLw@}PPg5X z_BnPTvt1u>s(p+TbxiP^X284U1h{Klj{p1d|2qDcN7$zL-w*#ML(@1HmjKMi|B7%G z*%$v;;s2lb{{`X_{{R1x{c-FyK=M|S;78jZPwGV0A8CL5>Ssc1^8@zB8|MJ@ve_ST z-aH2pH7~;Y#&b$BHe$0n^cqNj0ZPRnwFpb__!1S?pScISM=7}nX#JkK9# z%g9O2gzmj?^K4RtcgZuL!&xVG&7qmU#MnA%O=q)qREp=jmam|qaIhl^ZOxTTA36YDf zg~WbD+lCgx;Mu-cXC8q|%%7J4+pNyx^cV>b z{AudnL8`?9hf@vk8YkzMSCw3E4;h$y5JR;-So~mdoXkl}hsEg}KKsZ%I(Ih}TB=S3 z6ID8hr7Ctf)|5${d*hzIq_HTeqy7yLs;Ds_2Ha>E@Vj3^oj2ubz@xFA8EJ=z#@BOc zq8AHX#F&kXRZt2wkee$k*4#kvD3Dlo9^`^1Hq5YvRV7U@&bG%?*0y(@rgD}x zN%fvb%G&mRr>UH!O;Y83Dr?(2P*XWeo20U~J(g%~ds}NNXK9mE*0#q~*0wiXQ#HXJ z*93crn0uZ_aB!!HXv1lOEt#hWo>(NHB}8#)won3tJ?MmjYMvgG8*c)#&=`= zHuz`a2OiT z99}D=Zf1YT&Tdh;p z-*_E!fplRWdbtp|k|LZlotOYNf!;f z1lFxQG)qHIDiQN^Wi(#}z-Bbwq|eCmFE=3|i(MVgt=uu8xELd7d~MJBtJW?Smyu9^ zorv{2bU&=$LF_kwA+6b`gTPw)B_hmU7XclXtql}{c7ufGaUA<@s^y4Vd!|*w9Yj1x zkRAsB0CNsdUS%E2d;vVOoVvM*1~i8OKhXfMvZge^tE`{%+V4bb$hGE4u}tqy=Ee`csSwnR=;%Z&^ldlIXAuJMqVL% zUpmcSFatx`gm)=*l_0e?hE?<u{-sXu3S?a0Pag0Py4Mt8C zjMRABDZ6&0E;+80LZR?l>ldGkMpOkT89jx}Yps7*t@YCdsuDkfG}Ky|Hlnre$52Jz zYONeV!N6DCrvl|*sUVgs~>C7jh-QOim6J8U!W z91&`*B$LZxwblWYZ?)Do)mpcQJhQN@*4hm=KZ7I$llc;!|2WKHwN?uX_XaG9 zX{{{HYOMeztnIW`Mp>xA!#N^{am$H`HE<*1Z1_=l^+(3&gr9L z0JC=uh-3@cYOU`+B&nP}DybHGf?BP0p{8>BsHE!fsjSxe2TkSlQAyS8Q(3L`EKTL~ zQAu^SPi3{%Nt(*(qmt_Xd@8H8ZlkH3J}RlU@~N!WO2aU;RSu<7b$u0Il9nP=)}=`| z)m<6hP`?R&8|yd4FMHN6@U&#Jx+~MG?kXt*rtrG!zULslHM(bK=LtLKwAE>Z<)&p$ zlO2UXFPW_F8j4go3OAwud=i(svLP0_>vTfLP`r zj-1q8Td^G%icB(9sJqs9fJ2b|tp7cW@cELJTa%n7njcyd&9ed%H3#-uxg6a?=fHs9Y1Tsy)m=Au742O6 z7*)SRAN>;Y9Ik~+*2EK+gDyE7|J+pYXZ$~h|CqhEc5y3ZM=rGs^$TqBp$}Si7KAl6 z-vp_%;r;Ko%bPYNP1q(9Lox6b=j?4|rHH$E~ZS)G+Q+9?oGYJ&K7JW*t zn;3-S0vxPd>i1YJLI&7fQce202)cBe`2Z)rX98MFMznk?cnBM2l?|PvM!Fdst}O;V zGl$P?x(83_oKSpoJL+bY!#N7TJI70$qXacU>1Mvx@up4HA$AuOXXJs<)-0G?lX7sE z%1%NMwiafgPvpi@78aQm2LYxgFU=x9mR6Q0OFAtDW#5Tw=$4@ynwqoO7FMq~@^(*! zR%cgNpm{<%qdSwSqU;s(CD04!7_wmtM8Gg+R$D%XWsEeT-N|&lOaYSG;1g1Tgc#tN zA@wVhK(&vNbq;;he0=&aj3{n@?i9|4LjT+#HK|vs+=e#)Tx;LurV3!5ZUEwDiNjw4 z=llyl(t07sr1MhKAa%UY+Kf`kRQWaeWP^`O8@u>=w~acCga}e~E?3>GW+-m7c=`-crur z4N|{&*J6roAdkvx59lTvkikQSG{!s#wK8if;>q)ortRRIeIeh>r%WV%+mBUo@5Y5_ zkZ}J8{c(2;lk0gxo8lWR9Xn5G%eOf=&{H?+zaG1Pkjjy8|fj!Go0q1u#1(>*VWYHk+7 zX0#g2m{I%;jEkM-(E))HA>F}54#-<6zv)70ceqt@OmR}ab!aKyO0fI1qb>llqxex` z{QKq*>{6NvVoO8F5Acf=d$rIc^?MG|$aolW3`XoM?k~88FE`c^fTTlVm}Q1-!4aM%K2lzhxd+IjpaxBxIKR?i}M%Ik2*;GhNCHQWt9r0E3dL^Y$1f*u zx@xsG&}r=^9d*ijnZYPo_&7+t-6O>8M#DnEg1r(^PW)M0YilOA0*91l#)XI=bucc==v{mYhgyX(kf(MwoXWShpx7NI&mgVa=IK1FDW-P}AUvAOxR z-$6C0(6T9|T6)(|1)^&$g|e!zR-fwfeZ7B$_*OywFcY~go4!9PKL?fX;sncOJ5Ti? zmvZoam}VPQtnOUPu>Xzgx3T>$9DlP4roeufpt8~zQSdy~DvG^f zXgYpPb19U9KPX`#8dNE8=M_5oJigVk(&svtaxi^rY}7K-=l&Jr^g;bShywKw&o}53 zF^7wH{wbu$gDU^f*Mj;UdZ#%UQv#3zhuv`y?3`al`b=dYy1*EfyPHQ~*mGW<`iCR7 zOs2w|Tf}pIf=vK`4vCMwrh(i@Zm#JP;oh|wfny!&J0!`C_!}Pk@V4 z)*OUQQ1PC$GV=n#t>h_FRp4D@KBO;+yRAOj^*G45W5{w9XG)nPe`iZE{jVhpu$oAh zoWq2P>+7~2xr)6t@2})Bv2Py^3c%Ey_FfXk(JYfuavony671!o9_H#>ENUx8dD`C- z5*mO`=HU)5_3KEeoxGD`7Q5>4z^T0JZ*;W5DvzH5-b0AUCE8lVg(uy$t0iNVl93Z? zq%AV!wxSQU*(KpBpzVdxESwmj(%!0c=vj_ zsU{*Dnag~Ha${OXB7s)7m^@bdSTl0Or$2+`TWa%V?Z2d|Y-vn^n56%Bz`&QYJdU~$B7Lezxm05|i6{sJH^Kqxaoy@5i z1Lk>D7E}yH{e`T(llQ8hKBHuUv`QU3WQo*IuM(HFG?|-y)#;}kwJeVI^q4S$@B2g3L!ya0HH$DuHz_8=PogpdX@A?8k?*utG@z zXvc?t!J38f;R8G{J}j2Uhz}Xa@nJwhQv3`xK0Hkikslr(u97lGUTsS;FTq+7 z?}2W7u$HPbU$#`tRUEH*Pmo7sd^n&d2_qaIu7;Ct9DF!F$bAbj$(k4+E(-~b@nK(h z{)T}3_;8z@=lSvB#ppcm$Bz#k1ejf>@nHe*GZ)zdEWE8OF+SY!xTBwr509gVg%uHL zC*#92$ysQ@@xc(grHv1@i_2wz!wOKAJGf_=PfJ$ETr`XMbCCL(P*iu|1*z+?nun@p zMClHf;NdXAB@guGpuHR~=0c3jrUVA~kStjDfI3x8{#={kLAsd%V;Qib1lY}sHtbVC z2zO>x0j8KLgAwZq0)ZfqBc`Rq6#kZvWCB?*GmGF*X3gQAz#obtCJ3*OBKxHIaDgv(hA$Vx z7Nnz~u(p4VgqHcx{rHMINuEwpThaunkuO9e=%a!Rq&}A!&AdIqE?M;o)^!1o&^xTF zVqpuJ8Yv{O%axW0CyA9ud|;riwxJkvZ3Q;qKf%-eExkZ@iOFQ!i#YIPUw)7Tgh!d| zXTzRo$T+j-p(GTTAUB)eAZaH15{au#A!ND`64YH=Vw62U{-yy1#}jc*ny?(B6EBiI*HiiT)&rBThixyON+^}ezL_D z5UkzbjP-}q&-o2oS@UZc{D#;)$x@N0fsd?sr+`bB$O^{DA};3y?Mz}$TpIR#{$Gjr{-+?tz9DwvyuQxeQiAtgGhrL;8-u6CCvP+hwaF?6WoR{B#xwrSsO7*mSl7mof8r*wLT8IvfJ)h))vUMpmY;9`!kvB zlbK**v-uQG3Yfu7L9{=7&Uz^@&z8v3pKf*{PWB=PcB`oE-IsBk4eb6+E8@;!n07@S zS(EZA61p`>5ECWqJ>jXL5t1fI9rJ87Vk{aNc|kw)tzHVGa6_Kdr^q=vouv~o)@MIS zpL(Fn0}ASk$t_M|=Vi2SCvb=)Mwt&W7+GOeElDY?G*i0~F%$}`9{H?aM0s@WWHzG+ zD}IN4Omr;I=+ae} z)`O}NCEmDuf$kG_cyl`8*FHwYB03?n_TK+!f7PO+U;@0Ab^X!%t483s;vc)eikqg; zmgWccSM5fus3j=lEbV+JfB)8L50G6GL zkq?&Bi8vo)^{R%K>fRbgC%){YJ4-I)4ha!Ax%8cN23@O(0q&4g6wCYravM*{yyvpr znT=OMg6u-Z6#c!Yu4fnz1FPQ%U(tlnepXv73{`@M*>E#>+{rY6e4ndaPUDuB2Zohg z2J3B=02ziI6eFIbN%>G*p%w3YD9<{*$Y?84q*yra*;S9?^BHhUq@t^vo&*WXuH&5F@f*0gv1d3K(W%F_|Ig;pYE-zJq~$#!b@y zc%Mj{j4`nP+ND=4|}@PPnC+9q44ID<+HBYDm{(pG`aS8_*mGOi?m9b*(d} z{8AXM)hpw9rba21_Gvw(KU7@iWaQ>J+}ra72Ld}!&+0}McWE|9DQi=}M2Lfyo-^Bn zXFi0DQ{;vQEdZc8sNG}Lfj*?E8N-4lk{oB*2a$X`y^GH z6p!bgL?cSwZN`ezX8L`!{vxju`5~zX&DNNH-`#OM1)WXpgSCsXuN8Gdw+~Wj9p{Qk zmmqbQxT9E~f4i}jILcNSqAB~>&1{^+Y03msy#U@_Y2XC4-4DRdZ$>d)kgf?8mz5Zx z+h%{oS_LvJGn#_N7y@5&wzOKGXfZn1$=S)NrpCD;5~uB_7tnh~n+}m4Hna0S)s|M~ z(c<^f;;Cws4#oHdAeSHv$R3^Ik&XzyEwYN>4=N<*m5z)X^a4}N76Yze0vy`>@r2Wv(n~4VTT0i@>+kA;z0jur+cIS#LljL zsIFZo7f$#1HS}~(VlmzO<#ix{Hmscn{N-T}lXCg79RNpDq=^7YU9=-etzjEVSn3T~ zEVm~*sbDsH{|w5)-M;B9(#QYN7x3>PU3;y}QOiLS&+Y~)j!ykz)p;BK?2belF-bAr zGJf&#Do#zuqD-1Zq=B^Lln*@bf-mF53xXiEPOL1u8eBTP$VZKYe)UX zED^M9ma^n@P;mWZA#immq}?d<(<{G~odHY=Atj9)UOfrFT^JS_e>a*)SBlwxQ79>6q> zf#KOu)Aehzrku%#mMbU(smB*Y%H_QPa|z7^*hXU$(h?HV2BM#qA~4W(TS_r;E?*8! z5#{m`%!@OLuJ?u5L;6zMXv!Xn(f3l2=znCav5L7oEdQuO3=JHZXBPBLUcZkiLP+Sm29q0`j~P4g7CW1%3?xP_hK}*CrAW$c!WR3(@oHXYA=pdK zHqlBkn6EzHDEEren2!EIDKVFWo{KwVC@W$_c6PDE>)DBV^eIr3Ks_uK?RwqoY~GRA z^AWVO7}F-J>lU~@1=~jbL8F)qXtG`aNQCgks%3KR8aS6<<|Cn5g2de`tT{!hw&3iSbG;h#U}xCCD)TFOMVXIvQ$V58X(LFyuz`CIO3C!tL1o=~R0!In+s zRsysw=Eo1O&8|V*YagTL3Pm>IzgtFS_J{rHwo0>Nm^S=>=1GMB=ucNF$~VO| zh&7g$XPwEq^?QxyhF+#giOYo*>YP_}nvF!iWn4As8;dIr zrKSfRR@M8sK!;?3xtXIdZ!R;dtVOXxN+na&%`E=`l*)f3O66>tvo5DlE>vJ{CY1B( zRpuZ)^{oI(xtW;DPp>u=ngX*=5R?pLdK=lD^^Ojj$EAe91PiSb7=2k^Go091cApUX zJFvg}d+kZhVQKB@;+M5Oqv=7sotu)x3lrG(+-Z$ud%6@uwWo{c^`(O;Hkiet>4DPi zmko`Qw&%t4*Ne4y2*S4KF`DAP(4OOn&7k%y4dqF0W-&OZ)U3I>#mO<|M+WlX9gIGUs|ChZl9^+RZ zYIu^?kZo{vV2L@{`DslK$_Q>Cs>tM0l7Z1GjLK>)a4pMNw~26T1|h0Zqab3{&papJ zvp`X*+Q<&d=CD2hE2GKk@Go~jt3O)Y9v`)l$Ml1+L(w={aRD?VL%V9SPpzwE514K^ z{YcMsW5X%AkZTkA)O6ujrPmYJ3X$4Cg<~&~*Dh2s52&5oZfCJG{cu`$`G_u2U5iN;g zC-vzqb?@S^L8R&NX4v@BqPbafIa@5R?ey{?wtwuQd!=4YsN#HmZAP(kNEeX1g>}c3 z8fQQk6o`lHdz8^SWZ%b-U<5HvKx~Vwi*VTxKuqe9eFZsuXHP3f@*X_LN?7M^RpcvX zlNE*B>PX&&?YhW@L+iLIlEZg){|uhpcvds%E>Z%Mv|+M_C*-k=OZd)aCL>!O&nZT@ zwf3n1Dh?mBtL zJvI|R#+eb|JKklWb``E$am{L2NBRvShc=}UYySpTjhT>B6k>1mr{8b`t`%ZEX1I8n zNP1Op@3=^afg8Od`=h21zsP;a_g^lZit8^oT`aG8a6%heHoE>YnkqJeWvUyb&Wfb8 zlIm6;)WghPQq^H#mHJCvWPot@A#dX{S;3z|(jvXeFnJ&Hhr2`Q3>Uy$=aNNrGfgyq z+3PFqQ`Io*na4@klO`lqFuAakloUk7@1z)CgvsCpN5vVcg< z@=<5IC^2y7Qm6T-Q(TmG_tddI>S!0G%h9PreAI7T6ht8pBayYsNdt#IdH@VBC*i*V z|2N@(KK@_9f22LZZ=Cn4vnF}jcHAE2Jkn`AcvZLx@0P1@km$KE_9uA>gA^OC$6Q7$ zg}V&yLWG9%qkp@+RhL%Y=poB1i}9W{HoD5}F#JDVU zmLC$*TjUao&EM!E>;}n*|3y&w06gF^h7{cIQcZsM=M!XZmTKg|U=uEo*Fw{xngJ2d zZhy+UHs$|hf6C`5>j(CyT%<^M1L-a61nC|SbrD$w9m#-k-1!8Z9J2=RPwDD+$^*9| zUclOM9JN~!WAaG%r)=d*d`K%_phWIZ`Lz}}AZ+XRr!1%Wd!WeeW6LfFlCnSLz#FkY z<$E1mLma~WDgTlG+NeqlYPXVcf3*MF#1oM91ZH(I-$@t4ObiC$FXpe90vz>%4+ zfI~HT5iSEB@_xb#b_QsU#7OIgT4i?`5u*ERbbrn|U%2Md{W&Y+8^coUe25V@$cU0S zA0j^g+~L-c*H3^D|A z#BC}ziA}{9jq_>-hEh?)%rLHt%MGJRebAm4l%*06?K?>26dTS_*45W$;40EGGDqo# zOQiXLlTJP6p$}D|G<9q_=U}bd%gUC`VH?ZA-e{D~VOMUVmqT{~|Bju2|3}CzKEvZC zc9&ejmXxooxClFPbY~LVRP3STFR*BPq;7Un4b~lILgPSDd0Tl^9>rg*`uRl*%ufY5rHEuDZ=}?R*F506A)o)QU zP`QHh8!v#x?SST0@jA9Rs3+mz`_^lOyb+ZxNS&ZQUM=96_b^riHb>f4B&4{^lgr`P zdp%CkH1~5%p+}Y#r+D@-9n-73MY`2`j@>uQf^wc?5AhT;9te`1GzWFSlf9dJo1sX# z{6Xp{hXUn_TRlNSks{{331}xI{y!G#Bo7CAd9P_>@VIn?UD*F6KCOb&I!SVXWVH*O z2Gg4s4W@fY+du+Ap1ij#B>;q!v(V!k_8p7u~00E&AJBAR7#-X>`Ah0 zLnz3i7Y^o^xV;IPF*&ay`a}9>mKD^;3*z%2m;e8__{8+v(i?;$^5C=cn&q{Sc-_7a ze6}BlJ1W+Yv%**K8gyAmgj5kb0{ZP#Rnj6eXgOvS+4d#%gVb8FY@-;6Y?m#Pszb#}80)T|tY?G1wmD=l? zk=JUqv=_~2G1CWa)3n-bmtA*$58EG5Ds9^>SZUaVXj2RgUbKO2T%&;Z%4do;+hw)c z^~IwEKzJAWM0iGNd*b;(HB`)C&6LE&K-7Fstzfb+qViseIQxuCx`)-Jk zrQWoza{MawAgw{_sCC!N?^3a^z_Mo6-vlMgqHI(i`1s`u##c*zwcl?0JHeeDVl#a$ z)FFOOA7AjwiDda8RTN1nE5)q%=AvpC^D@&?2qm-ykN=dgeBRd_q>2?Bh5s;pEhPN^ zBxhizTYpNr;uiTc1@Sf%H6ZhSDk{)>E|mdMRyrZ0)zAP+eNr!c&?>GMsulGJmO299 z9ochxmCE3mTO+gZEgbRooQlXrLq$SpqKwf*NU$h^PNmmfq`Q-+2A6N^wJNZmYE^$` zon)AdwqF_P^TYlM=WQeufKg2+^r1d3`K=6wmO=l0j1Rd<#)$DKG5?R8FM!TXao2+i zp+-JmrgI_mmn8?y~086(Od+#Sa3eBPsMBLrWLz)fAv+*h_{5wChBlLqy$;qM`VbyM^dhM5nD=#ext{Tp< z9YqX7hem!$rx-WBEOcnpKc|C>;u@Z~K=O*M0Q4dO>O9AbJRBK2-6d_8h-}H}e&2EF=8{WPrikx52-xgV zUHk_?Emu@qtRlI*W()$sQzoUlz3qIqxROt%ZrDkObsSV^vd~7!mr^R|hbC70uBDRO z8LZCmwt4DBB#PZSS2?N;KywxA;9(wK9zszk7M|&Apw7rZ)cX^$cnkaQuMN7x9FLI> z!(#2?Fsy2_UfwD*XFK0o1Rw$q1@RrN+zb_=Rg81kr*3XLut3j)rQZ=lyvc8 z#gMM4C0i}bl70PgS3OE{ zv9ZkahZLyadqhMVU44Y1!`yyUfrRZo;hz3=GGA4Ub`;S((uQl9W@^XFWA;{KVgHMg zG#GL4Ic#f{+yPeN{hVbajIscvSpyZzVqmYqJOU%A)#xsLn?tU!4-U7X{24AwxysO7 z7XHTxapZpm3>~jf5_g34m1+d3`)7OpQ^>ktBx3_ocT^QGZ_v6iD4w;YAE1mP0|Oap z(L;vBzD#^U)pF})sz2fUv$vd0hx_dGXuuL7VtQa|XVr!%W<7oel@Ga;gV*nxZB(&n z7R#`H_ws`vo9J{NADn-tU<%qx%bY${=zO3>+p?yGwc5mt&y^R#6MZ0}2bjMR*dYA@ z++MkkqX0DivG`sY-&6>eti8?i7^9(q444t{^U<0`?Po#dEF2cNwDrU(s9z6&QCA$5 zC0tks;6RO21o2wHUSYNq$(8P7TSF-ru+Ka=n*(xBp#ixkHX!#z2IO~t4Ke-?X63rj z)uXW_@dS6zq?Y(ENlPX2!9}68E+xTAQj9@p(B^&1`&7GX1)eUL>TH1@e5wGK17#F@*x>fMVgf zbR^!_f{_g3qcRDjq*?@#=o>|wk`bC0?SxkI`j*m6<)IcQB356apfX#KI;Y8&?2fN@ zn@I$o%$~-N3Ux0Hv#n@PILTki(AT*Ym8 zn4P}afVtM3M4si{!g4G9yLG;D923GN?%E zCFBQLSLXuwcE3$xHO3}c**@VzNwM3P3Ft4xr6)ND$V?oGR$oDvMJZRK79J;WTbVcO z=F`IhHokVSV8mQep+r}ki3%Vk4de~TpyxehvU0Bl7RS-aCL@K}1g1Fi7d7~SEyCTj zGL3$a;n8XI?F`V%9L5q2j{X4_n?E7Su-SQK>IOz@O4_*X>yDC13JH}=9)n9Nz)Mck zTMhFo*p5W+jH{RPbT2zH=^c9NywM`MrRKNl?s*pbi6~g?!%3gomjbyU-O@vD=uKn^9kj{l(O~$kW=_H?pBd1Njomsr!&2Wle+m#bMO=`xmjjnG;A1BAo29Ak zo7WHqUFFG+`oqaA9rcIt0cudhA^~5k?Q4hJXo@s@XwtMz+KQ4XLOSXvFl0ibJi!>y zcxDWYFPYahzKv#-eS(Q?=IrCx3bHrYldT^81_cq2>dPSy3X;DR#PtdfO(j-4eO(^C z5`))UIu&js6(VVZ)GeY9Dk*Wgw2a|q`*nezE0WkRl!R zS0f>`4%v6tunL(Zp+UQPxHsnwc_WMu?NXxtsJ_R1zp zxe{sUqeM0aaT}#6O3bMwC#`dY@TZ;%V7g4+0FdEN2Z442;J%_Ld)zk z9M~%e+r?jz6}+%{%^jFc_ufj(G}+op`A4x@Vms6ikX(;UDMa$EZxfQ2<6(|^2PA(6 zLuz9^$qFAa=|GM0%P(?_KS8BmzTN)#U1UrY#t_R8?By4S=vll)chM?H8f6zW@Js*> z8~CSO`^#0_aw{<#c`F}*?6@;;X*-XR)S3zUtbWz-0mGnvHRxA29?~OiJF^_~Q$Xo` zA0f7#wQy-?0ix|J5PUn^#yx0?uT#8n=l!!_E#2CdWg#h1}sfJtS?AveVu$D$YqibOz7pqjr5AhRosM!nfE4`bps#@ z_R({@td0D2?*9zhyHHKYhYbM0Tzk972L_?PNNUIc{gNZVV5HM8IhSy-e2_!G-njz} zbr0qhmT$CF;Tr*>e4{5DE=4}9b(n9>I18N)&DOSKR6cC6Qj&!pkVQeyLXE!xW)~4N zR z{zDc6edFGRd3NvZL`NI<=SsaBMGe$sZDMx2Ydjo{u(EKTOjo0_P;xj~ zsLEH0s6ugW6Du`mT1(E93eVIE%OhLgOeRTIcmk;uNF``%D*4YynXb2BCNZ9;W_g5sC~# zXOYx6Dnh@e@c~6&zozR~va>LYdG;1?=e41GVW6c-XAvOUSp7&M~_Ly|ly6q(SI{I`D;k{^tR z*$OAH_FjVtaAQ5mN-?-6ShrDr`9+S23PpYw5QiZ{4xqpnc$m6HVAYRg?oclW zg1afz9lWO_XzwPT^X6^}0Or_ckq!(3CXyOTl798^fn_B98qlvK*D#B@_Xaf6xhzq+ zMoSg05g^Jn0>N|5VCnGY|3&B#n^IN%y&wa9^_`rq(u(2SGSEd4EtCv&P&F_+&`;j1 zbeMijSW;uKRFX%fL!9I%a{WJ7aS|S;6w<5r9Iz8E6qa^r5JN+w{8BoQW1`Z5-vy+@ z*2>>^MHIh5(m~RM(xDiDLh0~?oEuc})-}XzbNQVP27wOOh`an9! z1LtCsT1nmEEa+Gr_4go((t%05bl3-9F@p;OmL?sZiW(TK!G$1~Njfm0mkw`Ujf&?g z-onEigL^c3yJ_CRd>pAl=D7sN(STj1APmysUOdcR*Nb#u5V%HC!)aT;YWRTtNxvHO zE6Fv?Vt)SzG}B=$QMpD-6|NB=$~6MPbIoAs@MyJf*7)$U;j;x9=(Vqs3^YyFr@YR+ z<37Nwf|x0vSm|)U5n)Mc;Em3r=JO}BKjMZrNuP*cfl#IkYPTZ{YFh~W>7pc(x zQ>crlgyC~@nH(oqOBD5UoFaAtjjvqK1Pf9p^rNIcoo?xZXe%X zRn|GAPhi)()LM@ALLdOrX^=EP-k`k+FJ|ID@v{g&Xs$d0r2e4p6eKo13=eeC&xJk3 zFa@|P(x9ZNva+TnS&KG|L}NJP+FJBT0qjlL52|gCC{+PMzrc5My>dnd*6?N<`8U4E zN*1Z5kLRo93JtL>J8Ytm7xQk1s3Z+i?W*?Kh;qaO1Sui7!V>}%wTFNuP+o~~u|lrj z#}@*gw8Nut$sMngjB)~3CYZ}8b8$a-z|{&KQL{Az)|Xy-K-m;bYi&qD7jqnk)oj+z z@*;)+ErJ~^H(QeIfh4`#d4dRS;M9An$4pV)J*1Qp3=TfFGS=wcrFI4(jHSk;uW$$} z#%>TvT5cb}u&X%|*bx%M7CU87vFSm@u3%OJZK7a2S9pHk3~9jc0L84rn!}zXmdXj~{%|BexIepb^vm&iUrIvG%J76QsM~^+!4`?NIR{ z&o}>P6B;L1@dh4dH^__L1xlpQwWRVXP4Tom;ETEHMmQ!C&wVz+(m@s6swQkyYOel* ztrK-f`W-Pm$=2{cIrjVzE&otr*!&bQTtAK>ymb5+q5|qH5}E6?dJSfQ{Walv$nao+ zgR`#ZUCom()Y%bIq)fkz_SzoXIU%q5V2D+o?2NaUgH*Tj}M7M>&;`835*9`2@^1dd;0z79w& z9>-R^nj*!K!9XY8D4om#qbTCyI5rB7)YnMMe)%ncF&jWIUS3{ivq?>fVmt*IK~;G` z3zOm#7-tk?DhtRDNV;6UFDd8Nc@r3qRE(L$V@wc9u^Pgm zCkl-xBO@@DM^?`C#jGdJ2UlUD1R6IWrNy`jujYDU6`mFxr}0tDqIVW~jEQ5T;7E+g z)BW;W0OR8v#vGi$xn-pBpW$$eh4E@+1jh1!Aq-!GFn$NwfbmSkS&W&?h;EH}j$}#D z_+Dm#TQK50#!(#A3+f)?qnvxZe~m~i35`oEoBkXsj<~gUcM-lukWhCQy>ZlxdsH;? z9>iGJsoAP3+q4vJu(MOJnUCj%X{}}C#KS#Yx-eGmin&jZ5`rLQhze5Ms@+sU>NbxaI+HVo~PHuQK!-zGNeQ42pUHIPecE6CO;aK%3~`gU zz__-D7#Id8HD^C5lb0%z2Htf-q3}dxfB_y7Xtx<-ofSz?He00Jzp}RHF*Hd1a}Q4x zZMBmnV#MY+6Ax1qC4-&51Y@K`ePjbdv`tsTO!g8s+!qips+N&CJ)w4-;9(sbVK{QU zqNS$hiuuxA=0-Sx%1YRBP64QJ%Ll_{dybsQo7kcAr*FSn()%4bDksr^Gs?r6PL%58 z`XuKpY?su>$zWJ=$p(V7Ua(}nsct0H_BcMT`@!2|-Ah^(_oR zv=W4x1k?f4`tJr~iR8jJm*+W~IrZPS4!z3<0*N!oXC5RAn$4dN2~$UOgH%b{H>aie zlKl9RraY=&49MgA^KLqW1%o1U);FNi%WQ_6JBye^@5NZ{NG@F$M;5B7R`@{~dh5N}>x6U$&!n{t8V&Su8oRkCI? z~nTGd9iUBH`jR_taVeaV;+A8$9T z=(CdZWbm3=a^!PU5%vMXrea%3$(SdnmW+J<(~`;0eOhu@H!;R3XxJ8_5Y8lmQIx32 z*rmz_vZV~^)?*doT2ax5phBM;_EBoiF+h~^7SOH)qzbU^i3;zW$Ot?ER2HZB1-p2P z=VFre&Gt}QTFE+YuV~uo0#haH?0dtsRSU}Yi@5+d(5uLViZ0tZ? zwc3{BZWm*vLe+?~Nssu@VGerMPumE_t6Cfxd+}dnPDdI{+lpk`=C{Dx^Npw2`P=g{ zmdO0=0DT>5{&wHf;MHB8Az%N;^S4Wh=RzwKK`{;t>$4|Bl+NS9j)l#{^> zb^}%Js?k+=;NmM&-uFM7roBsdhg`*bc$lx|0}($>Qvo`7n)W;h3RLawREhH_%h*0Y zykB--v^CnJ$8BI4V!!Ot_P@p;6h5ze)cz<%&&gJMmz)oi8g>_Z3!G`W?V7&TwF}{~ z12Rm)v=X+I4)g2*Va7!LFmc8X<`PkFK?3?b!}_@2fy^E~d@1DTLFI=9BdZ)RCp&@x zmKj?V3pZzhDdzNTyB8K};H`n(oUIJ0tstG+i zdkRA_6IkxuF#Tx8-~efLEs{3I@XhwzvB}=~X|d9N9?TZdS#kFTXf8Pry1Dxu017KW zvf@)x&7Y2Ut;f4K4Gh+zXMJ6!`#dw5M;16VaT^kc2`{KYq^+a)y<%6s+HWI#c_}+; zkm|4StmV${`9@A5sh=hkm_3~jthULQ-Hs~e7T8erE9G}6Psd<|qwYgJs1ino|ilWw%>bH?pJSIq+ zcmqj}&+r_XKk8hh1&}>IT02hz0yp$nM|zTkN>AcxJ`F&vl}O5Kr#YT5wLoEKo(??k z79pD^WCS#05TG*>fVKl5 z5H4QTkwOt4$UV-Yp4pU?6^hbSN1FBKk$;aSGodUaq;L9&5 zajKn*uM$NkNbMo>HypNudkxFkndOkJMFfpKO9t6+2BNtQ+-0Equ(+ydagqJlI4|-R zM{C_*d^^5rkB{yzzH5I+nfU(V^=)1dwZM7B?*2>cXTe#G%Ba)W`CZcL7l^eO|%cyb&*Z+uF?twXkidPKD zwaxZDle@P?UN3LugZFu#cAn&D@;i0rGD=Ic(rL8%LV0S6IKp5S%xE^NH-^MVG7^9F z2=NupZj8`ZO%rLng;;s-NDt6(!J1DN#8Pi1i!34tXw1(G{?P`kM@Vmt4OY=bKtO`X zTsX;d!XRXr24&;_tL5V5A30R{(tmKYmS-T56%WyWpdUX|IccbUtQq*Aixtw3r7u7I z4`3&P+0P$hpkKfql@=_sP<{fJ51X5uXaqK^u7>7?IO2E&`)! zc|3p;)ljYxlQcmqqq6OEF_f86{QxUb`!#-6mE$7awgpXL_d4K069;fV00fCQP+Cbz z>}=3y39_!84<}K#XIjOBoN8b9^sf@C4v%O=(Nn)uPg>%RDF=lofj8r`t*EFJ`~KzK zS}-F8NE>Nckpi^k#G_IRNcCRt3$TLY_ydGpY+V+4!Lbu%3>*+qxNrJHBtI{XWsUUo zW=N)1D%R{H<{fV4#AY(^Bg4qtrki20#k*=mD+t-2ZC}fM=ve@+!Q`Si>d^MhT05z0OF*3VUCP6Y5qw5e~)t8gz5GHuP{+e~ed;;RM2*^?Dt{c;zRN}yY-^c{l20nME20@i zRKM)m9Q6_yyVe!#R)f+hd+^HH6kBpC!9so0)jlDqMp$0CblV6bx^vll|1T-NT#Fy8 z#p{ROr~ zwm#$+DX-m9a+(uvE0FC(pKXT6a!>y%p+SA0)Y}fJmvgIb&|b{2KyJx3Tg?~X5`=Tv z7=x8Y$s~JD@ij`niW0=K!k<~poF^gtUlH^zjG#zzVY;tiWd3fi4aMk7-!YdHN8>2`I#&)0mw)QDE00s%OW z>55Pn(UZ1v+VNkx!#^p|=Yh<<_j+1e#$EDrUzEkTVi3mnL`veoarzTUjQ_Be2jejQ zj-yo)4Qq7>Ip=EB#aSH~2&K%{QWo2S)Dw}imDUl~kTg+skqSIXtt1+8LxyOHn8TD z;&$c#AFY?|avadlRqTp~IpF5ldKoMUm0N3cIUZau>sbI6jM-7h3;z|j#uujvA}`@# zo`4NGvR+oq#xLO3xEyK8iHSX2_Cll!?|ZTS*O;(jxhF^+v!^su8(u%$LteWuYsfPL z%rxC7fL*KzdyP$w8;;eClivjK$nv1iVwi70pAFg-l@61`jh5)J9Nm#!Fraq;s`+i1ql~BlF7|82 zlFmFV+xjp-$V<)aA)Wt^yf*=_sz~04FW|+9BDkR7dRVQEV68EU1#y##Q4k~T|$A#~GtGdrQ_a>k? z&d>kze0kuWKD|^`S65e8S1%{r^n+wl^I?L-8b(YP?H6tut~g4yx z|H%a34P6>(P`lM#Fa^~OXmv@IcSD!tcW>wt0|xvap|q)mqkM?0$RPcZ{@lFlBmkCs z*Z3aHjZ!1=)K-$O-X-F-BVy9}@)-?2Yn#m2O+jrCVh8PzEX zcHav{5Obf^vNjtzCJUC%1`f~@qI_iZyKaqsJ8VVQqOzSRDx1tXu}%df=WHH01~K9Z zkP6Sw!aCG6tTD*s^y*j0?69vknKZXiA_c`e1(+o*lLl1OtZ|rCvR&msv)SZj_Vf1A zxI~f-I{K52FFTYDy{swRG!~J>V%#OghbAn@ zOs!p$*+`i~%d{bCYAsh}S|uc=j`Qi$NHiB)M9hH&vm`_7#A#+aD#`|etafIaii-A_ z#ugXWMKY!VaH>?&-mX%oZxU&iNMrmCq;XXUaCQ0Xk&9q+n617*H~|T37UNV6)LUeQ zsGZ0%>2A@LG>e@#&eqdU%mM*y@9b&!b{>Sb@06le8v2oX06j#2QmFMCl#IruGwOYB zfmJGyAFn{qNHay!HP25Ow&H13Jkb?NS%io4QGR^0-h(Dbb4xSqQK31LnS|X{n3lt77A)BT1LXofN%yH?l;`|Wcy7fMkNOT0+nZZVIoPWH|+lje7 z)bZUOdV5c3WZAt)q`?BA6nB|o)^f<_G)Vnj|1jcXdy)Ve5q%#1EGl9#rVc6 z*yY9k4RL2O`m5s-Y(~$!2AWpZfzBDQ8lzkcT5k30IAViQoz7D{1#M5Uc-x`u`cA2D zvq3vNzE~~|cA#N_yADA|gAJ%cJ>b%aXas%y$k}5!eJkH|MACjF8uo+DP1UHMb*bN< zNgz;_Pq==tzPG}LXfaD+MilCYFsXWBt99rO;ya-4Yo1I8#vUCQ0jS|))x z_+1|NepF1`xtG$}d9Hpq_dVY_Vco~r<{W;HCrF!MW$~M>mOr!1`qxe3{ZRW?gPXK} zKSb9b!K2Cl581!P+}jaJDZ#@z<{Aj`ZNeb#7fXQsdzvQC!b9xe2mfdGZ%{GyCLvGb zTe`o-{*`0ikf`qL-)S79xO|DPcpgHr)lJ;d;1?4_h^sK*%}2jRbt$|x$Q@l-fC%S@ z_wjQfPXVj%hq;W4zF9}QD#$H*d4ReLJ^ZiiNio+Zz6RBi71d2O1A)Lfp5UyP-utFe z6R{({MV?U@(bn5ML<$Ine`cO&aEzr})LO=T)Myqc!&(O)wrji~0HxfyUU0F3D1rrv zN>!no);kYgFJ>@n2gxUfKaDfVk%di|{kJ$Tokyw#*m!gtWI1eSH%lwBv^n=&E)D`h z8ANtOgFW|kk+eG-(`C-ibVSL{tu8Po2`}j8Vw4cX;9bVUF|LO<}m>I(} zmLD;fnK6TzG;n&vrc&G6xD?g#sf;!AhEx>6qEaFrX5P?<(a_YrTI)XAvJP9;kmqA%!yxuZ}3IGC{MjmE+RSY*|ZZ$zB3Wggq*qt?x5#}MO z24D3`W(POe(*RWpNA!~;GMCbkMRFlILvVu(cRF?8A>hd%jIUm*H=`10?u?36H)LE0 zY-<*8ggvLcG@C1|?-zAE&-J*eY0m$IH>~?Hje=*ghhi(WkoDpg?SHYg#GWxV;QqLOJ8%frI|t3_IF7TNwYI( zdC?};Nwg=ocJr6+0W-ZMW*&V9Hy%V%?!?1c`8SzI`&c>>sD-5+m(#bWNG>K{qrsPC zxh-7PDV^O)z>Ugu&WaEs6YISor7)_o3>wz%xxHI2?QqK4y|Kg(zAYtBuma47yU0ZF zc#}wX(&a*r22%`e;HhR^Mk*jTtxl?5ti;TQuSs6hrXn`W@>O2^d^HNvJ)l=Zm_`xD zFg5R3VQM}ePQeZFOnq}(%hZwB#Ng{LOUasO-}&Mj&91^A(}WoR=E*-VAWvil&I(*6 z1!Ow6Dg$BX&)3kBw|gGz5u8sN{)st&ojb=T9 zBYU%)Y(!QDXCaRXlAtRYOD^xY9Rj*55|E}5l6%r@roKre3=_U7mzSY5P6iVs`h;d% zA?Y-CHmRU4M5THBkp*KF)bOpTHW_cHn`U8*w4S3j$lta#(g)*+nEPEYoR!cMr|y?v zGP3r=2NA!=gj6QkCKWpSk*(csdX-c@_=v3Hg{wMt1$NXdl~9?al{7=(KejVyW6s%; zt~hHTB(>7BaK^!+fQ&Ve$n*)~c`>atytj+&8YO9nAqfT`vwPNn6pptBG&0^ANKC=V z_cjd;F)CxN0T%JB0oK^m_OB$s9F#MIO=Ow2tXv)JJo1(A(}kaI_YHmj%Go(9dz ztqmHpJ{nPz0*kYN=``wgMiOAU=008(xZ)}VsDK#jl;xn@#QUfVZFm!BOH9vXVf0KU zn4Wn%rO$3{lOWxdJ_LpZXW7YD^-7_@d@e4c3%(e}L4bQ&RM159Fs5s#o}Yx?nnrZy zFsnT+D!E-7m2GH*|7LPu={Mu@;@&RbB%k(Q=OP({WDygpy@i!@FOO~2H;Ke;7<^NZ z0zDeM{$LAog=SS>EJutwy>W=`V8-QZymk|+?YJy23f9;=ra>ANyF3ivV}|8-xN{+r z@-80EOIO7Y%T(-Y>tui{{@!Wis1gLolsF=i1KWbV!FjzJBS4Hw@;M2`5WR)0jRxxu z(()ZLY-M2H zL;Su97o8J*0RGCc%SOz3ATHu&Z31?F)IJTL773SgFY=ihFkX5!wCTAnCEQ9TcO^I%GrE>6Q2t8cAp z5wzf;?I3p)vMFQ-wX@B$=&V=b2PGZmm1UXcRl|_mxsLJCa20jUEJj2m!niVxDmj~R zF`mH?#(W|}Eb(&qgh-qz3qj&B%5tybn^EO7-%G55+*|O!3T!dOA4c)caFtboALDh+ z;)huulcCW=b+;FkSX4$kMZKv%B(Ta^c8}PajO&7UPa=l)M%t2unkexskzX>V1`8uv zC)1gee?o37O$#LX@5#rg?s+>~@#oe^xfE16xDV)$NAcJ9!4+Bgg0D_Fr zckL|0SZ4A*rbut~h+eap2fWxZaUbA7CP!AN$6IdBpu+ihruspd5xdTW5cdkLyWp?r z6c~1vvM2SFlJ*b6)1a?uC03f2dn9L(Qg^R2mvQj6oT#**+2U9vCYj;0N^mfh;6dR2 z_#~$uc%=$iwv>fyrzIdLaB6X}2fIac2J08_IXEAii&mEJEKUj;bVf1;!ejv*-AKmS zw7317S0*Rk;xgGt#+@PQ&jNzY`IoyP8S~Y>L%CW->Y-})@v?2E5!TH>rQ*BUNGuE+ zT2>R9=pos*;AAZ5CjZ85-26}3{84Fcr|OMv^1q1u#vw+E(HDtsAle8aKO@WLfGO^` zookSn84PL0j6A`|(q{2~`SO^loH!iy%TTCnsWhbe%#`ECkgQ_D1W7Q4K1mXv(~5p}&y5WlQDZxfhijlmsmp4kt>&C_(VnKddqZ+GDqwE*`f5 zR9gu)2Mbc=6OS`+brDjsNc69A2D%8M!87*qNo%YZK=h|mfSXGUE1MmY`>q zpxdFLJc20AcuOTJd!dwmOL(w4cUb%9Q4$;K5TZ~I7dLW=;*Oo^rl z*A)9B3N*{Zz1NEQjDUxjj(v7`7y*CW)2gyi91XVb;Z>u0B};gdB`Gh)RHnDAsF5_N zK!YpdpN1gfpTJ5KagAG6WRaPysVpn9-lonk3Pbu4DY%wJjo^OqlW%4hC!`GQ_kYMz z-i3MSQEVE!ozdJ)wnJ8A3JkYqXCqpWJ%l(q<<|}{Gs3(4eM}57@NabH+~AH( zQY;$0O=dx6aHEczPjGUuLrPTe_E?w*mdmd(S;rQiY2Z9x$>xjec-LWeVe0t0Ddz0| zZZ{dry^L*=k!-h);-3G8yVq_uV?5@FbRd8I8RKP2vyg?f+1{|_;~m8=M0SP9Wda1d z8Y!QV6^VFwj$$usY9k`eR4QW0{V@&G(o7{$a+oRGn)T*yhz(}Io zP}A5@E3b1KN{U5;KgrIpZW~HUJo~JxY~Qgwh*Zr|UcCS+V|ZAg@v9_WczBIR-MhAY zbtChkH;=P11|oPkHL^&6#PASimgvw(l$J9%dO&hagKa63V2W8dus zB{trW41fjzE#Sl5pg_%F49Wd|^zlE=kbLW2@RO#ZUJ#m9D_8s{2q=70Q3(*N7}j=m zyDrd~QDhzP;Ejv`@(p~`LdL9Iz0QYR2h6b?Fcqhi<_82KvXvR=Ls^lSX~} z=VIi61BCN$IzR$(_s3nXPLC$AZ$}MoYCqr=kDlFY`s|gQoegd&L$!A@Pi7q{5RKp4^~V=NXR3lAY@Mh zm3?XR-?FX!0JImf&pw5!Yb~Ml=5nL=oM}zY|7nt4os{Z{5J7Bn> zoxUnO|7D)$oz?>gQ|ArlfpFPmZ*Y!F3k1SRO_OoLfcsr1WVdGayJ2-Ej&4n^$$rl{ z9Hja-md=X5uVK;JrBX?5AqK=+II*I^cXWqU1A+%=unF`u5ns~6Y$CT zi=|WKaX>&4pn!njr8}}GV?S*5!sRd}w`VN;j40sryLfkbTeuuCj%PgHxeJB?6;q}&5-Iq8e&;0(*u;Zmpwt!y9_T(pEkY0@E zyTRY;-%=vV(!*|p#7+hZwd|Xk4W{EFOTz;-+nW^%9Di}NMt0t zKC4!bjiC6F@R#s21MQ4;+}OUsIq+LbUUs|JXZoO|NW1(v*MLbV<=+PHwm|HDcy&l~ z9pFBhN=O@w`UEt0-v*cR?hI7xJdzp>Zew#&5X=$8Dy>C(R&}avi31pgQWt0vx*52L z_r>zQ5LJVENA;Wl+Q@lp1zGzPbZnRVZsG-#r&QtvlT7vt@5$iSnsBF$8%TkMg)QYe zJHwq;pnc^e&;C;GJ6moT%e4bG@qO1B{;r#Hl4tEV#P_W&m&kJUrrfuk;cvSsCwU%} za^Ki;sVrA&%6-!r{-&F9lIL70_q8pT!E&jl+}EAque&KHc_yP=*Y4@wzdB3$C$2Aq zHbQ$fp|y9{U^n)WbN2n{n>`0tc&ZAyVRjW z9xl{`>(JR6v_rORjp9qf>mji~n+=7xgZ9a*)=8gqHrXeGU=9k}J}J^&#p)XUJI$vL z7i#6m^V>f#^(5c$2g3mqXBZBRPOtlu*V?)8<&)*vE^)05%)=_CR7za>a%@BsMS_13ef=px}3&!YHdYh;%j z^5nUWgb_?%N_jMRxWVjf_Zn_Prx{j@J3`eIYr}IX;@V>&rU0Tk+Qao&J$9k{ZuRVU zG^T#MAGbMNWf2-PaH9$dsw&2cO*NJvhvI@P^F;x7VqD5m3pA@)Xp9_l@4Xm@v$xVp z!C+yf$}DfHSJEKzT#aHL>Anmc^xl`Oh)5RHP*JsJ{Dk{ey1#nS`F15@mA z%Qsj_R2Fk+01#@-4E~FF15hp(DDE!Of!*cv zwvhUC!k>Y|v%5NOV8N*S@iu9)zISPpVF^X*WSZ`7Oi-lhqKgZ_2dGKCa^c;-<0Y~X z&AEc{&Z*d8;Uo;L*Tc*G+X!h5WiV zBV13Oqm)dO2WO0vJk>2J zw`Bv0NE|j z+}M@i*V;l0G6bBdAQt{Z+8ciVq1bD4YAZYG?}-Lep{~KTCIm;nA;DJEg5!nXWSe$7 zU?CbxnU(8fa;^z~5$N}Lb|>h={le3B9QP8OPfeLs?QlMYzvv8qVfFOh0LM(|lLNC@ zBC>PMgc<8H`dw+Rzo`6TN%#xeT3*2hc&X~+5JQyIX2mJ;2H;GS;^(e0p)V-SgU zNF(l*Lam&uZxh1X)+Pu6O^9sIil#MY+Y5lP>B`v`7==2yGdS)((~P8-fo3lc6d`QZSkK0D!T%p`zz=+K!UN|LzFBkpGaA)LYmGm7OhRB z$ayZ8e*fkx>;iml75a~j3^q5ifX_EscMH1gLAQdXa;TOfA(U|f!G^1oca*z@@zG$^ z2Wq9rc;5tx$`R%hR&THa z7e6_-TphX>>_xQltc&7a!s-J>JF`_BlpR*#_AFO-e_D-wEl$8)&jh%#50yt7x1@Q*wzhI$)hR_Eu*~MrX*T z(pQX<&i)QCl$QmDYNzviHk2;V0>9)GUaJ0D!HkrHQ<0Gbs`dyz;}WRd2)0h3<3Yn( z?fYJWuVRmUuOxKTFfR~wX6$1J(FNopP`t`#H26MLrlEG0r8a^0W|;dLEL+7QxT3d~ zHT*lqpaBL*@(Pw`B?gU)7v_^tPF1te60)=i9P*)het*cX;3xrI7%V*|{L{nIPF(^l z!Xrb(^P(@L6E+^Ib?R&DM9{PsX+!V#RJ@G-6ZksLaJ>*R4F&+=jsovnYLt;v8PoiI zlY}O}TJL)t{Clq6iY!pI?(}UH>sRK=sFI<1kfj-BA!`#&xsm{*1J3@4K&;@keh0zZ z8&vwZ@vvJ|TOOR1WYNUY;N$BFAl%d;JK}&*G%lV8u;U9qGE&ij`a2JN4#Y97n`S`a zG)ipNENtA1&AKDA+QKg*zqGFNw@zmCPe`8s&Zm5CQNX%xBbP@245$|$h6e305ZwA} zq-ZZ11{N{ZX&`uWIR&cZ^`Z=-tI)5OMlWPzZARE5EB97V|;}Vs3>gMFW8?CoNtpi;{&ia>WLd5l5zpJMnncI<|C@R92N;TD1sS) z?oL}sgOe|5b_+$K!WU4+qk|8gOQh~>{bV;1;2%`PeTO=lY0Jqkl5X?@d)bCPLYzt{ zkFcWn>oRSTR8;q@XJI_o>Bx6#0qG?7Q*=Gd`By_YkNd zb1#Txof#Z5nEnCo2J2WYWy4l;ydwS2jLo{&+U(T>litS%7-EU7M(G$`HOMl7HHWUE zMx!K-jAdVuAB}uG1Pbc>$K%0MTXZ~QiVB-`@{G8xKd* zr@5#W9dOfoBmqi|Rd9ZQySw8EL!=q!K5$Db+tBV(hl5b}j;Bz{Re*-CXupjee3g;)RqN;S(VubC$O%p7HXiP|kBN}A(z3E9j`aQl?ChcGO z0udVSN=Xa8^%By^MHT{R%ltkBxed1t!jYpF7od>VYQT0?{1xI*9<+ke6l z3B0+H==Ao+Ged&9dI8|87xZKnb0G#Fb(LbcF;yu`c*aMW?dMflUm6n+f9gC?fzHc2E zFMd}z*PWx{_N%1AE#m5m250+n;^<1CF=J9ch|0a;b-JAG#Lbu6E&$76d4U!#0l_!W zTWigEdCZEExu5Nq)_eH9M&xnVf5Gx&aXlM79sW%Tn1d1J1`c3(uYo09wja3ufG+U1 z`UQA9ZysJL>2o$NqrAx8n|0C_-hxrPd2ch%Rz4peh#%c9@h@CSh@!2a9}bzm*N(D|UTS2lSvi>6#+5zHf<3JZ*n=$CV^L~J7=W^u8uz5{!%H&eAtw-^ zT5{82oWHF>DMP+)Lo)>ITJUz)uCuQK+aRX#%uzxyUZjAE!Z+|_b?s1g{ThI~ zB5HWAE291`A|>V@FL&LaG2fKi-2RLUq+IO&j0{t5bNe%>rY(mf`TgZ`4h1dk%T-APJ*XR9mk^>>>R&8an*-R zGpIa&;-}(~|aiqC6?@#;`S88s`pV-@y4rDX6yDJc=IH6g>}SMD@~}Zn0@-aUR%oXC9qXm;oAW1L=J9xzrMBiqVJqJu zq`p?|X}oF%O;3YHCE4{SKD~duFhA4V%qfr)zRfN3Csuk`q^_V!G=U*vp{P^ogw`vt z@?WL}$Q|oXd-RK1BR>8_?2f1(2K8xr8zP0nCUb;w|&*55brjMDj7-`+B7 zHhRnTC$4-f#-C_tep+-Kr>EARIGL4<4p;y)+Y`L1_aS(f1QF$84$igJH7$=iXh&1c zT4Eq~{DcG+6OD^!3e$xj*1uC#%BTs!(;ws}mBEA)n?7IDkCAjx5$Kq2km1xsZ071l zX2vX=lk+$*f`;QpWJ)Uj!?W}VGvg4}j&YecF4eq#k)uZd8d;#KBzo@4_V+2Ee)r|} zh;en@mbfpo-T?+t<#ODL2%WD8{#Up!Pk2{5EzDQyy0!1Spaz;AwMqBoKvoPU?vM_E z*b?{UtMFgIefb(6#(nvOaDx(`krD5{yiL-6wfk~tZ!*^33~}zu>mN0B{B7>bhaZCf zVRp^0c3-ZQZlQf#4S?W)V8`{FK!*hc8$zC00i6sa}JfSr_`KF)o4w{$9FL%f&BB=(`o48vrm|+6abFI*ev|G?)A}{);c1F- zU-lt4q61Q%B?%b3nb$ewZRpS=3}4K!x}T_Os$U&F(eA>w|AG5*I0p3Y-IpKU1Eia9 zU+%GzRWJm`yDyJu?B0EuEj)>FU;gVKg!7x-mp`~l(RE)=S>dCsJNMwUE+hM zy_`cKgpGk`{yJeZ{>Pc6;2A76b`|wMURW(;|Bn90f8k=S&G{ccT8$BC3;d54`~tiy zHxI9r{s8B^MQrfjI|FZw_ZwF{QiL@nOMJ@D;{>LM?-U9#QDmu31 zd%EI(9O+Wkh}bqXZ@mBU3lPNB?i4x>XQmUaFS* z=KPNbbBoLt`ya>Xmppuce;5Dbdk@4DbCC2JFz~*JPz)!vwI%C zXrjQtF~s4TAF>nX?B}az0xmDifdclx z=-*iaca=F;^pshXFKMX(mH`za5Snza6us-dY=sKJasJc=f^6LZIma;zJP*xyh{S_o zSKKeW^Z^PfpmomtE=i(Vk&N{?)>>CZ{QEOQ&&w-{|4Frb}zNpl2I5k{@%w9VQ6 zRG|QCaxv#;s@F<+@ecxkuRNEF2*BAN0Ksh8(0Ju)exow`(PHp-+Y8vL@sg|OTv?Suf@mZzE9&4MB&iqKvpv}ka!#oOih zGYaf3#pU>OyLbHg?{8pmfgM1|ken_DpIZqz60XBU3bTd;FdGcV5%cL-Q*)i~fMq5DsaMdJT z0D%tK3xNv)_7uiKq2xS2ON!sq0O;ECF5_Z?l}{ zz>$?T&PK|H7VKud>P%DKUFJ3GRh0aAQ!8e@svdp;ungSwtydjd-<<(w*Q-jUJ}TeW zJSaU8~s%bc$sX$wUV4V|@#3lDzt`Ra#eL*Ncqc0u5O z@qG1|2SnyJeZKlTXqL^LuSS1|;bSk~#Rrzvg+tq;OoL6Rej^#=Td>5~8gQ`Zfo$S} zrQO0l(H0RCpsGr9v@^$vtdv+)i)EC_<~!m~;*)a89**}@^c|JQyf}h=J=nAFe91`e z=?O32hylRwFpTSC9O)rmrLo7e(S>973q{jb46;XbyxS`JDe4V#nlqqA_2Zk-w1~~w z@A0gCt5=WhZDmYPg6=w06G)eQEmL6 z-``lk8ysAZCAO3|2@y^ZmU9XV8*Ng>7}Gu>_J7^=R=FOSX_rzyEC$L0%p>nQlL4B( zVM+FS*ys?Feh+=+n3kj+CCm3-`?J0t{Ah5lnnINK={Ie%zK^peV8d`C!?i`eoZ~g> zI4`OlF(BD$lj%nbSY;212b>XF==~cFM(HjA-N>Y-Zd;tGd;O`N2}GL;{OIBEN=#*< z`#sP2{=Dv4LBaanq`~gm^F2)XoYPrJ)1PN4fhD$x_U9U3f6if!Zu;|V#{2qnp1#+` z^yj?=)vxK#Da^T<{v0pA*XVf3`rfa8wC?KrC62H-=jbdK+;pW2jpUQxJILM`W#h>& zJjdP0@1nIhWQk5=RcdzoRJM36PUz$OtkP45;I10v$RcA8x)!<^ru@sDV@cY3a>NEM zBc#t&27=70rOJPfg!Ki=e|$_<_36m10KlC8!IN`(zE|nfU2SL4LMBNQ>BmH?!kpnT7IMxK5W3dz%1n z;94v(;)wI@?U%cU4V{T7qQP)Inv%V3xOOct%Uv>KEnuA5TENUD9(j1@@2Rv9JB*1F zWLv+P>t04S0>bGEe@P2oWjmhctu^1Z4A;w9iD+!R|L)Xjz1m>273rqa`2 z`7RH`VHL&$B~M!Fr_7o%4iD$Yk+f9&hu_afGjt$hpyN1pG=M&b4HFI4-{4j{0~p-Z zUj23;1}ORKa%O>fISYH@uix{_b*l-n2wAaIbNd=XoY8=Bx(0HYAk2&MVMHPe`J~K* zY_OEmWV}H?W!Gda>Ht+J{ets!3mEzwU*M;7$J;8rRb}a(i;h7|_1!#TE)j5dWYo{o z;;kq!i&TKd5{+s{)J#U1Yv5h`M-~d5wb=iRRj2~Vp?7S6z}gp(J%Bhdi+oow3>HGd z^?#=5MT0Z0XBB9(E<`u1T&HT>AhN;@VS=5Yb@L zeFCr!!6W`@V52UC=u>7FVd2BskqFfP-G*l?_=W$To&}fNr=oW_kNk&K^oxk6Z-*0z z+0a=m9M3^Sx)RZZ;G<6oJ=Buu*+NenVt6;udYn3P&IeJTg9C9(8PZYYB3ncz z%T>!MhkCtCOF46h{iULv!FQCb;FG&d%>+{)@66~%%Ls_5u@gw!o+1@&#iYK|=(DBPhfyd8xSjZr+B00j( zMQfW_^+@mwvNJ*^z~I7RcbrZYD)e{<4#Vo3bfjhxK*E?~znPmAT`A{7F8Y@3FZ9`K zQJR<$3>1?RPZ1eB;ig1<6w_?G)%is53w?>wy-3T*pyt~f-uN%*6g^hE6uYo<`r5Ub zrHF+eOv?V5WwFWIIgxvw>~ZR4viRqoo~}nXk{D@CDR(Z*RWGc!hW8sngCs3vFq&5Q z0k(sKUjgUw-Ke!C?Jr)obG)F&hMN#$>m)X6G&lrtph`H&@qhGSxXTrkQHR%D=(1tdY0>QEPTOhS zK;c15LtYioc7~T*-{3Z&5h*<6jsylrh&{055p=v+)I&NDT@ZrY4RuV zMj(OC#@UrsuGNp|#@F`A-bhp484O4IFz}p!Ij0aMNM879Pb-|+7w=lKT4`JF<9Z~! zQJkyIi>fGV%%FKMV9-mYan3)Jx|l&Pm8K*AOzMRUdZ|=+{4=Q+G3cdIm+{Y}$`m`= zciu|G)XE@g5*9H}3`eC0K+v?848lS=(%D{FQTZ&5+t-W9Jj}-QTv5F+$lP9_-v`zz zE9&6a|L_ozv2UP zp}<9hi?~P6e3!+1^|^L&9W%yIIkh_~rzw>JHnL0#fy(zh3BZR1Eu#&=p9!N?Lv%;* z6X?VshXN0RYy1T7sstx)kQ|Z}(TwIJGYU^|f-^Af07z7k%hp*+u$DESlWBHt@CY8l zR*we%-Gxd+{y|+5V)@-m$!8}8`Sbnc&)iBtzpvy=5(1*w+Uzb=` zXxU{|3f*};)z#ORD*20jjpbvq1|^RLDIO6~^+to|J?gQIN}_D@ULj(H7_ne?NA#AOT8d9+hvT61Y6!B9kjlJ|I{FyciwlBN&Ls7 zK|E|zGAdrf6^kfHTEB-VWn=#1-)+{wT%&?(GmVi9#xCU4Lc4ik8;6Yzs3DU?De)iTy+mFp7Nx#F%3T1ZLR+`B=ZM2 zY@9RDlae~oJsenzFyUvcb5fBN7`ii{VLQXK=&k8nc(crW-7g@h}xlV%J*zd^D z;N*6|M*adng4)~T(URXwu)~zoMbCZ@?T}IPTJ;A#xI9`r|%Kl3Ex%iV5i3= zjQEPR#tfxVx@&lYoV~*}_qDBAgJDYrYF9HQ@Jf4idk;Fl7w^vkm^|2wS&_8jHb$kC z;NkS#5mUw6Y#x3EBJDIyo`nbR&tEzmQW3+avyuIGxj#Rsn0k|t1v`L{Jq;o5{Ci!8 zD-t@P?MYth`M+6R{N2+``&5fy!^0L0E>V{u*D+cFob%Uq)Se&BY=#6n$DlW&4c0Mz z8L|7k&sX!^o6I!emG7-4zI7nqaoroXwgW^PxlEgf{CA$==4Y9c!;+WzO1O2o=3l?U z=0`W^xwY2EGpvs=SPb+JAMoYA<>#L_c1VkYjB6EKy#*Idd-YX2XW16tdsK$K#C{gH z=_Y@NTpx-=F*zt>c56!f)o7m|244}`3()QG81BqqBStj- z!L1SWt%Zh5(zIGB%Mk9I(a6&q`&b|S`fRhZkUh8MDOHX$FKcyKp z3%>+lUXBX3ueMJIWn~llDT!VAZMT7d#Z#3UsJVq-I$1rW z!sF?5(fL{O zCe3b-6_z#h&QhmMw=k<0I@U*0$t2+Tn|WUEe~+XUyoBUPN+BN3by(u4fxB9+gNB<` zK2r;)G`GUVTsip;hcUn$sAxOUGeByCbc%<+hq8OyWT?{&kAVe}!7KBGTL#i;)$fto znAFK_(tyZ+qk@=kL9pXhABS&5;C?WCC!z{Z$h`kTOmja#{Y@y@8E&<%iE;u0z?;p} zGJ@~U`_O|my7W@JY(Dxu{JN!l2oL1`=dNsc%|J42`0{Qa8yYr%4N&ZY@>V{h!3Xa( z89;@_E=iat02eYL7rt$O3%|*1{L?YM*L>#CE3#?r^ZvXVbx_wXo25k0^oW+2E^W6D zVR-E@-cR%o>p^r#kbujd;|(p*;`Nvyl2q7}-uHxk(NmOgPu_J&Y=evdx|5O~>UMYo ze-s9&!#vveRuKW^Ev83?1Ly};6{via_-{`jw zi*NLoqFxT$=t;O*DYntqobTn@qDKGZFD@w4XrK5{ydK>SJ%D_q73(iRFc_4J06s0m~pY zx&TtE-fsOqAXZ>irLf}->$VN{?Cs(;9q%;Y_qV}*L*v^Z`(iJLZG*e<*_PNgn6${t zwMA_(d!Y-;w83m2No<4A*Jy*09_6qU*zxv(p0bp4WaWA)K2`k!;`&SF&9@WH8)x=r zO`kg zP>?L&&L%+tB`ARpU11fQBBHJkU0tHC!#s!tHN-3$H~1Efue=i&jwgmKCT4~GTKR)nEf}J6o=3nO@Ef&x#(DSOXfuy$t{cIghwZ~P z@$5z{zcx*UU6U1E>A+#;yog}|)n*u_mLs@MgLMeP*kEiuEnsiBuINR~(n#=T`Il)v z@frzk8fIz*1cV?H7&xY*8ell%Vj=EJh{nGjN#&UVrbyN<93)wjREY?u%WC49;Fqv^DDUuU%FzxT1CP@bzek@1j+Y zR61I;koNz~{-CUhF}0Zk4Hr#!FNMj7D$l1Nl3kF3b8HD>WcS1BUqGvmGnSt=ZkALb~ou{{6rMvrpxylJ0! zo_}_sm&5Y>h%a468J@rQXD`W34<#g5CI7onHT33I_IEaJRjB| z>p|wA*_X~?Al7$80Cxh$?bi)qa?jb$I!v75mQh$75u9g-kf3h&yQ11pEJ3RBYLW)K z;T1A8IIp~n0pQeEz%=zTtwTkHBY&hndVA;#SX2G*aLRtbuy`AZqR(3V(HmDwasbKn zM+bIAfBoP1qigyzj0zcdeS0ZNCGKvAsR?ji`y zF+Eu-Ts4YWy9!O!Xv8-rFcG(>w&@o5rnoKef5i^cj%^62dSO#{($y3rT}?jedhrw# zeL)4c5m?xuP0l0Sl1igk+k|rr*u8GGs+bSlnU9AsSw4#~uys%qxP?x?e4 ztF*C6zr!LfhWJmhd^#M|9w&&53qlyy@gxl~(2%My6Rx!|r4u!v%IIL2VIYeYF3HM0 zZ`z6K@!a6-`aIys+Jtl>b{2FZZ+!s%a5hLSM@;;mfl(7DC!&3~l6Fz2YqW3eUzsPn z%BL35lWGtdRrg`-O5MbOvzoHG!MXQYbgl8v0lChOG`V?IA_#D9g1Zuww) zd6Gy#4%g8WJq%&zOer9p`kzb_i$l$l4!*0lUgHIy@`4g;H(3}0_947T+ISeY7&9l} z;f%m~LAT!9h;G{8*(Kuy74vwxcZl&CNP!`tk$9uQa;$Em;#C-n>YN966Wf^c6XW-L zL2O4Pi_)xYb&}*tMXBFFg^*++&<*hQ`!HqeJS-xh82^?VELwe2a{W~%*1wWk)gcbL zHX}FfhTNwW*_{T^n#ISnw}HJlOl7=tjOmp4&3Wg#=JK`6GhSo(+C^gH+NJhAX_xyO zQH4m#19&)BVfCd(_qEq9%K|ZI2JN!Gc9D3UNBY{O$JPL&ya6P(%UjC~Z`dw-42o}; zF>3jG?Q#t_#Kv&<8ViB#aw6u?9SOjqL#?#m^MYx>@zQ=Xs_;ShI9Cki0KR5&c?(@J z2jO<_j)QxnC|xn{gj`olBH2>AELFIpXES6sxzQ-FJhTok677V_mKaN*#b*g@a}6*& zgW1NG6L-n+D0(T2($eYTia8AqKEEr5T)-k1+DEsb`&}{9-;`0uQvC|Ef!&xBKow(2 zHJV-LyjM&~2ru`v_D;mD_52q~bcXA!z`jm5N!0kvnpcI8>g@dv%In@5ys}^dC^A91 za!in}91|qTuWDWf52o8G8rZO0=xpcsY&=Ji1ndv(4`BE# zDT4zw*dM`=1TzK##xMr8W=4TTb%?3LZcZ(&e!=L<0J1ve2gyb;5;>kqBO07vWQfGa zG6k;LQLKB=%O|?|WeqJFyyi-qUmyYvx#OIUMg%>}#Yv!BGu6L<$TmhsjKfDixfN4w zo)JO1WV603^JOk|HE9K3CxatG7qF81&dzcgA=YzY-t0bObz7)^C+P)emOf zNV>gNv9@{5>eEoZ*f)^DIkKIqXuj57+)}uDRjTb%Me44KA0qxO)iN%;=u812E-i6# z(WMnJUb@T>g6bE`9A;YGwBr4zyRAYAb@{^^3uDBixYEr?fw0Z@>^p8oqYs~@F>J@F z?RJjWheKRAH107@)p`&HvPQ7|EClMqBi@2O+#m*?=t4vHe+pf4{B)n}xa1hIeyGCD z=%;%pVvT858j&4)dWhPUm=7*9<&_)0rj!hEgUudqfHj!hft4tZ%3w?=pf?ED*b007 z+GPcE=ypgt)9T)(D9mEE+GPcjJ1TE}YeC|>j7nz^k`icIA$+MJn-pBQV|**rVX0gi z$yy7&aFL#YU|OMoYpCJ52X^Ch?`e@pIaXn`;AgX|6ljCESC z@E^MW?}Y}?97%Z*52xp682e)VEstw*6CSevFNjwC-}qbd71JCNvH+^!SNL0cl9!wE zw@hQV;{F(3wN#6Fd^Fg1skBcOg6F9uEJZWauo*B7SdPS~e8by$&pT5EDXUghZ2!bT{+Cg(0(KFxH~ z=Pr%7>8;MR*U;y#G5|i-Ivfj^iU9D+oaC1AZL|649kI>nK50RI_JW#E6~qn(#G1u( zQ3+aQ?XF?Ym`;hecFxWyB$nue>^8e>-ZhtHqhr`-*(mRkwBzmu)sd9r@o;u~oot+@ zY@DfV)Hh+H#ORI|9~;wX_;_smDc5C_vN2z5YL|^!OWgEUXPZ~S#-j~@&y)v!FE$y( zW7c))vMpxm((f_*VJdpVJv7tkRlhzAE604)%FZOryn+r6^;1wE#e7t)rb?-}b*`bJ z+4uFeaLpp7M%3h{k3$z-%VFZ7A$XU5jg0)!zK2W8^GIkt2%^aXHOUP=Nd*nWwW60&sb$cFMD6{?>u|~luqU1Vn88245%T#)u68T!Kfdar* z#3d<`R(&U_Ot}CLXDpTzYRoe3GPO>kj*u)OE-_t1{6w^`PsDd~2{xMI{P$usMgB#$ zLfB0<kpWPxv}U=gMkUE?nU(zzaW1}xcSlv5Hysfs~=R!BV)%gI>JBAqmog^t5 z{KPWZ*WQxUEYk~QLM~hw`C2cr@LGh-aJ@HwT+AGL_KOzYDiMrEsm8JQ~NTDg;>ZE9^crrN>5DoHg6R%;t9M-5>R$k<XL4cZ5WlIX#|D%*Xsc^BE0hSP(uB-XxQS+5=~Xzq`%uzmKR0EDdN&FEs=2 zE*Bu5colJE`SlmTwX02r9(=;fqg)X>O_>kS)3l6l*V-8vv=P~afwu`yc(=n#r2(SB z=JVbBEm=V!0D9&K!iR^|6B-$#P)z*I(O{0nEFRZv4Citrm4Jg<)aj0k zmV^Nyy8+9%{JMC9XBfF+L=p@`FLN1$MmXkqkvtz?+#=3Z4?!pvJyit+{?!}rzD77Z zxJHXx6!+`{vgB?j&p&Ox-zMq3x=o*E<`b7F?;9ZiZ)$6^L7RY=MrtcSv-|J50)l!I ze!!J>q;p6hYia%P*|aTr8Vz1;L39<=rtKt4+R3+ALH$4`OyMS+t```FNAr~VFzj%t z?1<+esCO77+bfb}iv)O0nQ?9zpP)YRiU=xXhh`&|$dJFEg7{L~L2*1A80lA#fk#m9b6P#OhB;4Q$&B3G%*#=58Q9t6U44e|DZ27Wz zO?5wE$Faw~Z)=u2xI}{os*q4##t6+a+liN#^7}yV&-k(Ok{QRWuav+BJVfl`+5f$ak6X|3D<$*`i>LGUC@MXMks?kny@I>?CdZd z1(1aOKV*xX@bctO<>8$wVitLLQ+(2!l!u)fz~3A2W94CYub~s1Wn8n5Y3LJ46y!n9 z+p5^~cYf}YZIsC-emTjO6~dmxVK^?}tW&;qD?JsYBu;wleJ}nFXZAOhLie=G-X6U) z>{j)K!`%?PMT6X0AhH1+)I@&5?X~y4sPmopF#=-s{ss_@2G)~FvP)V-BN#u>HxZ6J*1KIZmgq>$t+RY~#gV}AG^sreS%$LuILw%7X_?5@2^ zlm>er^TReL7d0ap3FwlWyN~&$9GQUqarZIz-yR)yTM;ejBNB_t2qUbMIh|?R6YUeC ze*ES8+A$Mg)3pOYhysye_xnkCX-)ZuDjQk!ezsJe%O!+-g zeovO)Q{{J-{LYr&Jo%j?zXkGpy8IT&Z?XKA%5RzcR><#J@;e{DQ=@w>z$0_|#=(C& zHxO7_06qjdu=!(SK|hAxW@tZ#*pCWQ8ERo@DnqLnn#~aGk&OjdAr5rh$KMA3 zp{p3WnW2jrx{smr8G4+d`3ybJ5Y{a>7QD+)9z%2wb)3l1_Y6&Ah{k`%VGL0*cO1gd zfea-x#Pf6=!x%b>p}iQI#n8?SvCnqk+KG(?7coS)OTkSHbz+z=xQ`+1F5Otr#Lx!} zJUIISkb>RLRg^ z7`l+53Wk<3bUH$)ZNg1&2kyFVYGB+qje#APKN|Bs?a+}i@56`x7<>o=i+kOiD~n9F;gaF(q+K;@HI0#BoW9Nl8h`Nu!cRC#58fNgA7!nlvssF*zwY zIeAp_=;V~-G09_-QgaJPi781b$tj~!MyI5tj7b@rlA1DZOyZcNG09^_jTt>AWz3i{W5=Y988z^IyyBabxi8m)YQ~*<3Qp#pdSa&<4|lI zq97am%NVB509urP83%{t8Q4l68D|t0=P_v0$A>h5!zTVR^2^Ff$`G*ca|-i|Sir*P zktoT9A4 z@`{o&tU0;xatm^bi}QOWq6IHKf_eW(r??>^2P8!VC!q! z)ADIvVR<=#PtGqb7r+*dZAS|S?Ot4h!WK?wmeOJKo7cde8jbcVE-tAEmE~8I73QCn zADY9ul$MkiRuq;LBhSFteC7ESU9w1y-DC5eT?T%H$^jG%sVI>$n#25V4D{&H6MwzT z-&S#d!C(06{a^lV{RjWK`i=S#e>*B)GS12=s>~0SR8~;Z$|zu(aF9tyx6hw%(`T1d z7Uz{8EE36%1u>`Sm51`@l~%Af1_Hff%6a`Z#8xjX4kd<0j0hpm&L&@1{3?l7zE}>$ zTs>rpyYy4|hlfhaLZB?aY)(-LW)1wa@@M7V;tS>G6cv?+O6C<-ROII!0B|GVi1PAV z`L^XH5$RTbk1Bzb<>a0bswm6J&7aLs&RIEyMLDyJ@|kyE0)w78)=eHZucVv;p9?i4 z*h57*i`iDg}Xn)hncb>Qs-cl2Ynzg+)+@c6 zUg24VjAkR8lV4V1lHGnX)IGZsMQ&ZW!Xe?;DpsU*E0W zl9-e{YIMq&v8m%SCmlLDe3+&N0?Rb;d)W(PlYgbXpd;Zgn+!V{`nu8cl49kvoAmJ^ z@W|SGLqmt~HDKF)XlM?!V!k!+0y`KyC!JJ=j#LQgmX18$s=;0+{ghKQW>@oGToTHk zp9{@I*%cKar2~7IbfYILi=ox>fX~aVhzd z5kQ7Q3Apvi%*zwg1q!FIcn&Qg{j+jm`|Z)wRnOS+W_$@aw&IgaPsb-MCC|*mH;Bz! z*O+*i9Eq$i8RiXh*W|nWeGs z**R(l*z_YRW8oc9Srh{=vvO|C`}BM@`EB{5bG75!_oGU*quck%`MFYlYxxaifd0xH z%nYm?g8njz&~#T`QIFgL#98@8Jqk(LRu)cWu?U9uUL+N>_6_K+EC*?JJ_EWjOwBg4 zia@~91NuuCYv}>~{%meM>Jbxf>z8dbxqUyjQsvdYA8)#teLuE9Edcv|SXrUe$i7d{ ziRI^X(>}Idz?a7+wDbdCIU{U6fv;F&lu@=`z*{C6HQKcUfnVU+e868>CNY}P;sqVP zSOWwPGrrsLHekAOK&31YSZ=aDWS*~@=eOp$qv>c#=6SU3cqZM#*G?A*&^^vSquv8_ z2k~!(J_7$T&u`3g2LmtBJn6=fzYkaKFE;lT*S*PiW0r3DI8a(ymOrwB(_xu0CMBkh zIXIM@iYa4W#fW(@!VAE+6EUKP_DKsR&I-*aE-Z#df>Ce|v|(OO1#Fyo`M)FnvEzOV zeyewrjDc&|lrc@Y<=O?A=H2F>maP%?J=45f`3zU&j+}Aqp>Fx{ro4G%*w#UT^||Z=L-!z>zMrV%A$&CWrb&f!9!iH%OtK4 zbK?*Us!+uO%x#8h)}f(FI+#L3OJa(K(iFik1OM2v1;(YL6GFA3-~$7->N`LK!%L*u z1A#cY@?(Ji4s;FK6kSS;OsO%U3@KjEuVCuq>M84Iu=Yg=e*`TyANYJyWpR0Fer_T7 znSg=iqS4$<+6`44D9O5NZcdh#>t*B{aERGv*AdjkEN2+7wh*qw4@SF7Ik9T;T3YnUN3&{ z|JUR$j-KDWe_m$z80!cBzmbciG1hA??NNSIVbQSM*`;MAx$bbF>pkx_o~vZym;EQR z-^jo=w`K;;olq4R^xPPUdwQ2M+&r5JL^bXItRKvgZfVr?I6LI~>#KF$l)kY2V3<)f zJq-P(o4E6w5GJ`yvgy`-vhSjMkiH``L9b-8lS+rLEDu%Wl%Eljc(HEIOx}9dv*ms{k*}4RzBg*zBzRz^eyUG+hE{4v|DX06AdMiI~pTG?!|NoWz z`P*a6m{G$W(ib`@N zz{1uZLV5_<-S))$VTENFI}BxX!}!bX<-whv5AS2%CNf%i>|+%1<)&P0`~Bv1G`B^5 zuXVKD4Sl9LUH7kF2ASpBZtL;C(}R9FOioNSQ;|Z^ftohL4yfW9vl`L*-=zPBs4FqR zL9(n}l5Fa6KxhG1Zqa{d!N)%9;7|@SEx^)2&e=JI6+>x@6#-$Qn04*1zrM##R zkaDmjIk$Ko5-HL87Z2x;w&M@6gqf%5A8u@Xx=rYze_W!(U+f~KS(-E}kY*t7wjHmZ20e(j5>=hvwo;R{t*g!}?jOH6~)%w)799XPoW#UHLWIWmn)2q>tlQ z_wDJU@6tbtf1?sN#Xs?z-1tY)g*}hp8^@Uf?B>WX8*z3aEKGQFrqNP3jK=4YSZp3K zRrbHR4gH7d_mmVax&L8y${*HF*qCbMd-LsdTn_f!Rs8YoG&g!{p!ki&V_8N?wvD>o;~jYn({5`PFlxdd>BNOp;OdXl#noy@7p=-ZSNnEh(8) zI2Unt-|M8DyyKyej>Sra-4+R&#LbG?RWb;nEvFImyf*vp2yNl=gnySN6M4w zIsF$ke%$lf^p6fH&pb5rO8Vt5Z}aW5Gv7+zSijR($E^M^{Xa#oT=LSowdwbqbky_# zdEceK`rL_qvVPc@etzBO9~^#I!o>EZtM46h=Z+J5)I4_1fI)jsylKdP&b@Mnp%ZIg znex!1*CkIpHznu6Fga66& z7oPqkII71p>2s#8-fiwHFQxzKjnVHN_h4K4gBKieRoSHX)8G7g{M!#qchc`T;kapA z7krg|>_`32EI;u3^p}5F^ZE@Z^qhFy#}}8KGi=+5J?`pw^`ujGp7`UuqnEaQvDd`9 zK~HUc){jFc{^`4euJ89^^2D`?Lw;JhbNa+xioee~;+(9BcVu7p_LtL+ojBm)BR<<| zbk4-d&lDWK*I`ZR`y5pC)U`+bGrj7fpT6H=x98HezAvXQx_0GmX?@;EuYO|ni5IVJ zPuF^Xnm(j|)2^lMU#2hk|Jb_^z$ohUfBdtX1R}P@g0V6PDi&bqQI5<|1*I%aK*elG zHY5^~HJd=d!hi}WqKggeW5=_N9jq%h?5m!No@EpZw!86c*niJwp7)cGm3WH!{eAzx zf8rgR*FK*sr4%g;rbcVGEeMYlHQDb?Gzf8(ytr_Y?+>xH6ABZH?Nv)?O4 zmwa*A4V~_Lqv(!#ALmVb>fNFhpI>|3&JS%Ynt#vx>uP5EMK3-5R{o$Le=O=fyWzn} z%W}=LA9(hKi;myU{PgIaJEh*=*?ddu{r1CS_rkbzF=zFExc}%Yx|wgZAG7UoU-mVh zOXL)pXIbXXC6ByxaD1fM``hwM_IzoAx&4g|oxfODZ2o8Ef~PipQ)y0mZO$$N(w_d6@Tn>%5FxqI$WJ9N8!nfc(k7awxX?H?B1 zbI$%<&sqI>(H`4QjEw&Ht0JCn-xqya{>kar|Dc(?p5&P)|NYhp<4W3_i|(EJ>}iP( z<~_wlQ+pn}x0(4@YPvnNvzb1xL-!lq1F`&jnmfMo^P$hI=x^qY?KJu0sg`+HV(RJ7 zYKNOY-0=B}qo+sB+eSO_SP~W1qTaQ9o^4 zv+LBA&*xM|%#Qn|zdK`>T}+-Q1?KPzpSkV+8}~7f`h55Y%gwG>kGh)&P3*th{D1Z~ zM;~92{LbM_e@-@M@FUgl3LU%BqK2l|-Fa5O%)KtS zWYx86hMAA;^ZFC*PC3$CvwL;=!^PuFH7j;~{3tVDzw3%Ftg&%Zok>Y~C6&BfPG zeyZ1_SDG(>c>KX%uejM99D6^r??2a=a~qyt@P7V*X3hnl|GRhhL(K1DyYG4LYdz49 zUS{!r9q-%r{61zUy?Aim;{N79d)O&IMh2K?-?sB{3n!RnsPA1>H}@E9UUo^p4Sj|V zLwO_3vU8W;;a)%5T{x>kjDz= z@7(SLESFmIpWmv1O=8~Hnd8b&9o4ILwt3b3g-dts+h8`lFgaCz$UIY(vd^rOOmp%v zw>|XfDdwo4BHNtW=d#PTJA0w|_*EZ$T9!D?9JKJ=Csy9K$XwP{Er~PCs)l*j9x~)C z)PIgytD4dATytn;jeq)+=VN)TM7m4OgKpS4GjzRUb~t|Y7iUkn#_W2^S!-r)bA!3- z-cP=7UURFdmTtiXcbW?>7_zkL!~4uvuTBhX_v#}iO^$-xqnXLr+j~yV{WtO<;NZPv}4ZecVp4yW3Du}_qwH=O;?(<5>r)Io5ALHr)w|{*O-rd z)%DnO)?SPLTxW(4Ufkie=dL%~`W8Gw7cK0LZarchgE`0D4=E-JX`t=!;7HUk7&+(492&9iBR4O?PY1eNO7`5M1w4Mc;bz z_j!HjTKu|rQtzSDWd!P54OPQm{W;?IUcZvnobOf! zbuCg!X=UBqL-a1aHXB%CZ(Utx)p(OjlD?;+u~*l*R0g+zb)mtf1*&dpniZ$7Q0MZ} zYr4K)R|oO*^Cy1~`Ip_#x92h3-Vnc7v-q{~`}ASz4lKGehc5I9x+>qBkL5eN_|7f* z+AIh8^&&m^O};0hi_#4B#&0;^0GN7{Zer3H1`}8x6zSH~n*eq)gKL3d;9Mnav>RcM$RM)bquOIam z``0OGy=JLTQuOT(eRa;a0Ma!=Sgq)-;Uh;4<8<2DNZT~H ze)Xl3DC!EPpmB6*Lv0=1Fi_jnJ+w}?Q%#>MoB9>p3#8VJ-~;KR|FM41_jOI(pmW1p zTs+!-XwQUrt-9to$yXNeMv!k*4Zdp*ZYI?!t<2xX3l=y(m9tN%OQ^HfN$VKuNbku! zoj86-kU~6k@Zrroa?J2%9y4}gGfy5rrkRJ0AK%Qw2Q^QR%kUb%pWgErBUsg>-FlF_ z={|uykLel2<@$J>xEYd$mNeof=O~E16zdMO*ukbRSLQ@~^8b3zEwD6m+NYzP8Qs1=l-B zxsCI(KDY$6yk6bKxcQaw!HwY9;ZUZ|oN=@5NmF8d^RyVcPQNuh8kDsk{nO76{%_l_ z%XLmoQ>TUT4|gGG#woS&?X)1H28`RL$ahhnl`seF8W zEw3KCa6YRxjxF}QV2jL_*1585O7g93HB#7JE+ z6m+pZp;n!qs6V^^o2|#AORDJx;M!jf398WS)4C7h-#u)ulnnaa7$#}>RlTQvjA4K7 zya;ZR;EN^xq~|vLx$XP&pDXcKZ@;q2|Im7x4-u9Pe12S_@|$L`gu#KbbfQQ{h6%I@n$QQ zD7hdP3eMpe2{(NpF7Tf z{&p9~&ldM5IJQuO_RHPTVfql>1n47&s*8Zt$sIb2Bu_s1|J(Z0x!FAU)o}|_;`5$0 zxulkEP@O@esSbPU6Tcj28eDaWKOYy4nKWt?o$67y_H%`D+`WZ-oJ^g(Q@J>~Cfj8k ztwOX<|kNw`vv`U z5>{Ooyw&;Xe*PeTxBdP=5%Nr!;Ovb?%?TdkL%mczqmx-%U9`Gwg`VM+ES}vfXeE_J z$K_j5TwNJmQXSl6*`us-2A$%pucO;PHY;-^T?V0=N?R-X5EVQuV^EUz{aaZXU2{)) z>8=m1V=I?#(7y8ER2?@aXeB)oZ8+TqTeTI#zzR+SZ@zxyp2Cv(CDtUDjpO0T)ow`&ze=HZeLX!H#%k3^p!+A>N2$}N*{KUT2<8` z1?sPAV6?uDexnv76Ldx_Xj?B{si~C{YtY8>+IXC`I4bgpSa`~=nWG4VNLrysA;f0^rHmRvo4TYb zplQL=f(}~7b4x8;n(NelEl#`Q!Ijk$O6Y+{?V7s6j|-tSQ$1_*_iycZ{Zb93%RrN| zm!JU|S6@Sqd{b?kNcXvvl+g$7tu4JSD4?>8H=@b<>9lyXW2Oz<>H_KVV!EA-i#ui- ztq|&tOKqfj(jj&qhYu;PjhAcmqP9onT7uTmLG;CqR+-#v`OGRwBKB1mu5v`5S4z`S{fk6k< zCRJ5mnH<#k>;>8s(`I8*bv-?Gi+bBwOidEo1Z;xn(2_c-(YH8tp zz>&5uqbRba_hkMiX~m$YA_lWmO)BO^_6w%%XIp>m^MyT!I1NMFr@LxcPMmdunhX;=`!@Up2oLC;EzoIwvu zj8CYWOM6;1ykmk#C#ok0sl{AQ-^$U&5p>HYEnwP7)eWzzp?30H{Ci!^sG2$P+CjG;wJ(kzts8~RosLAp8 zOnSP^$Yjk_nrgql&gRc(QX4%gN)<}`kf6lii8b25ff&1}y7jxZ8q)ZIm1-y4EjZp8 zTF;M~r1hv~*04lPX$3v~hSum&w37*nqY5^A9*$O5)0l`OW6M?LsvVSUYWC+Jr?UEJdQa^s6jhvx9aMHa?H?LcL8Iti@v5=q<+OQGJ4V_L z&>C1$r7~p~R2e+Ic?)qWE~qQW8SENVTju9j#%4qoMaD=`(rOjXPfrwV4 z$}%;as&aak+)Qlb)Kw|Jzvf{6sI1s2sb7be)XviA%!EcEUz0)OGqUs)aVYH@!Fht$xPa+^zNmuqL~nnmnFCGR#3*Ipu~Q`oSUe& zs$1D|99^joi9Ld?^HzS`35MYpg*9#!XjG1j&!vO%IoRXItLbAJee)Eo&J^O6yz!T0 zRZU%T3=IHn&3^X|_!n(a%Y=?|@K`6+io@y1sxnERU+8QVtvC&Jv=h_R)n()3Dlw8A zsUF)pVu+@mL_0g4q}^7Wj@h=ZJz*>>f`iaz^yBF^AV?eeG+s4OBWH* zyw;L5yJ$C@pwDlbiVUG+M4Ef_;V40;%xkNGlu!G#}b#&7xy$`s!L;3)Ppdg*w#e8SfP@GYSiP z_A|=MN~af=mzDRP-n(bt(m35PUlK1X?Oon~dPxst3kJGbRl&YXZ64L}2DKRcS*0(z9okm@m{5c<%PXVjIw?uC1t%z z`;^BE<2_WK9@9&b@t#J|60S@eLua?+!L8PG0VEyL(Pb^clbPc>9Y0p8$18K&{$Kes z2($;n0g{{y9UR;^G(mm)K?i7!7pDY+geP8gPgYShc%nvE*=HX}I|w=#ve{!gG%0Zc zy^qtyTC%p3_Nc*GuwR*3sAp@RtVNa3u9nwi+EZq4ADT_#KUme~{Z+enb;eLTtb`sm zHg{G{z1orUMF=Bldo?_GLe5~CbLzuNz1nuw&ZUnRwD!>xZhmco|G`Gq(cuQ4)(d|7 z3u~&RBT)5duw)PUjgCf(XEtqF|GI@k8@PNS&D zzR+WE`N*3-cLrx^@j`z&BX}0u5c;sI9>o@{7HZEnC^}Ldk#3fswu-+fQ+*dQp@!z0 zs!%OrUIqC{a%u}N<^GQi!scs3>2!@JJUSa}9wsD8=2WY$jl|%MS38^}Ck(nDoIM>* zgP@+Jr9PX{FB(7pijKc0P*^>mPNVOI_=#A2?9+G?B&U>)4@6FW93UOa2DeJ8Rg?=> zH3TQ;B^|vHoXFteR3Age&{4YD{|28l)Z1fd<<<^Xhr@K*_P=e&wtCOR#p64ZpsHV6 zh+AKc`qHf?@n;>k(nS0di>j25#cGupK}VJog45UPQ1sUZ5qZXDc)MzhHZA( ztBw=~sS{zpvH{!br9h|oWf@e}%;-fYHmXYp(;v5>jl*A3ADyqG`gn5v75%A-Pw&~Q zFxdar)eKhmdIX>7`M1U%(&2U8B)+}**LwMfo=P%1xJf@~32i~8Hu_r)v(>r(n)2ZI zH+TR8ANKrZ4UtDcWj_u|3oa~H2fg%ZhMo$cehW@jX~~(D3I2`V3eMT7*!bX-8E(6# zgSTKz2M_zTc5n5xjMM32S{HbpB?zSR6~a2mVme2H`=&7`fUguga!R*X!E(dvwB za1RunEj;q~7am-`8Wg5BQvCFBI!D|1r?%7w;xWOFr@k((wqeu*`m-_WgbJmaNgpzU zum5li-mGuG<&SFxpVsNb4WF6}+QGl_%%P=M8Jy%CqMjbGb*0nstNL>?ynIxFG*Iyw z!I|nI>U*)EX!T8pI*}6G=@Fb07^J?{jF$x`>D9^cnUm=c&(L2an^-f9{-7EioG7a- z>Kwe9+088FskG`8KYa$I*+yS_^J*F|(?n(|4V614+|Yz(L)?*T9V}K{`5>LMQUop<6V;=iK9O*hP_H;@ zw0<{TKu%{SdUfy9tyj-@@A5;-N_v*kXMjE>y{8)`{mZ5omQ3$g-jB{&^rJtNNRJro z)w@Tt%sqmWB3yNCd8s-8rETgjzOrmqdvE|0+zF#jil}E(_dm4UIF$YjV_BcFL#NZ< zLhM&o)~mczhx&`OBW%~;1&nFnqpe9 zX^R|`xY?CzLCI7D?}s-F@Ei1jYdn{-`Mybg(y6BJMT0v~=xfAsdLYd2Z(Y+VqT;6S zaGj>`VqmNfn}J!r*mx{6Tk5+>Hj-?t3%Z{F5s?fNZyMw+H^n#1a;>9jy; z!txrazCdly?`#TdZF#mZssu?H_+=5d;mR z6Rc`{8&BOy!EMJEWUqwAse|}Cq^@sNQGjLQ~ zU#;@0MMkIc%OtP5YKH!H9vvpq`72tJN2`x#Y6mu{*_GEwo^|A=TAH<@|5=aHpH)&? z%a>#|Tfo0%*5Io!x(F&!7mQ`oo@t0WlcNq;c$K29aBW=_7m!X=*N#mPWFN{1UXSsc7|3|HhKl+l_z3v~l5V9+qaSgObMgX}`UN zIkUAR$a~(#Pw+!py6Bk>6Nd1Y05q(06x`&oGn;;=7+ssN3$vO|jMbFVl}kf# zTs>)v^H+U+nLU5U%Oz4cC70BKLs}UzUeM~2kfv7CrD5gt234mHO0^)U8pYj`m^38_ zOMBG!Cw#$@gr(&{QL0!8sQXp-;!BX5y@u&Mk1lfVL$B)p&oAUVM%C}?KAG+4&f|#O zecX5(G6h=ractaiinyv*{p2s^_f>uBrvS!%^jg=fcwv?$eI94mMr6hRTly(2q?h(p zATDmHy|}MQYiOao?EcA3%BkO&9`_|`?r%&l?OFF5)63HFeq(w(-%aydNH62{i}72M zwY*_T-xbDvE?Qw$`t?~Z_>1yOdp5REpN!Y0ta$zzTkfBXS3y=>(o1~?;!?hql|Bkf z`WTGAtD+@f+*hQng!jbyk%o7IwWVAW?sw93xDDb{V3~gv@Ggkku(a2KW&L$wsV@yn z`#o67^IM2Z`p8*alURqP{|3CTv>%r4E`fXDjg@dcydGB1Oi({lmT`UZTmT!E_&RtG zPOkZ|jCaA=oL`<(Z^5{)S6c$({$gzvygSNE!?L~D2uuI-&*Ad%_b9XiShhEXusn}o z1pMEYcRuQmA$|7pl=>SGzX0hgQq7l-#CJwKe>umc|6Sq6?Kdp-Pua@!s7{mRjr**% z1j-7KfGoXN76Wk1W>1>7=ee*~8H>ag_3fTjH- zvhv5W;)$&I5_k?KY~n($N!E|ViY;5VA2#CRR91Q?%PuVaNoVEHz_R{$zcD@@8GNLd z_D5GXZ+{Gy^a*%2@@L@e`elA<7jtB9nZ2!^nesBKY+upyr{6Bj<{%Co>x4)8JmiPXc z4~3U*dA`W}tw3Dd0L%7v2`tCYE8!j}e?9EICtFYi@UjB0T`%Ky$hfS_@_Ja>u@OE1 z`8UCGoZR(tE^j&F))meB8AV*i!G&d^I;h$?Mlus@ko|+ zcqge3mi|OxJl|YvfaP&nDfoZ7eX`wJh59c?`_r&9T=q-|{4am0xQdq(o=2rMz|xB} zEaSc&md__XEc=Vd)m)w|M;*?N<34|FL<@15X9>j5#W>oqd>+%U;rcE?d;~1VpFZ3R z@yNBD{s1@%%e=K=*&e5|;_G19U#-uId)IOKpP~Hx>)A_SZB=uxgwIFZxS@Ie3@rKA z{k?hq*o|yi?>E7VQQpd%IG%#L-rU^l;ByeKxP{|?wEb72Jnh!z<+-rLSGmpOQ*L9+ zb}4%MZ?m-5MS3Z}rTS&Nvg!^lU*=01mig|%vYpuk%lV(kot$6dU12%iv0zT6X|b&I ziLCTX-~kvv{{hZ92`+q)T>>w8h%M{OCRo;&{4~e2E#tcq<;i|w6D;wrS>>-nc_Gxl z8kX@~2g`QSgJo~HsfD<#fB6q{d$Y@1jQR=??*ymevthr5xRkdlt9&uCYfIL0{j&U4 z!i$h#bqn$R5Fhaf=a=zmfTjOVmfb9;vz*DYmt{Z8+M`^*)E9wee05mbXS85RZ?%wL zK95CPh)eku|E2uw_N4zydD32K-*3$?+w)9Td-5OS@fw2VR{%@Z_F?A%R~CkC@}Ik*VGBNVA-F?p5VBoUj@tdU_C7R5re~)Kks- zV?5p5DOl#SpA~N@y)3`{XPTGSQhF)B>u*fYrP6bbeq(xB9#X$7uV_~OR15w4Z|QZ6 zw}`$?{*7UdFEi z?UU~>@-y5%S--6p*z)}71T5Q!)h$^1w-IqUKU?r3mzSMCJAHOswzn4YH*Q~GOXdqa z81`Wq-zfSg^|`Rby)6G#>CwE_m(~$z9f8&nXdQvp5ojHO))8nOfz}ad9f8&nXdQvp z5ojHO))8nOfz}ad9f8&nXdQvp5ojHO))8nOfz}ad9f8&nXdQvp5ojHO))Dys%m}PI zm9P7F5wCCH^#i>6c>NBqxuD-^4@VXaX_s6S&*Te8S6tA*? z)w34Vj}`n&&qcsr?2aOxJ_LcRmjvF=&KE;Iw}pJ#P%fw`A73GvKt2octm?GXFY@IC zNm9s{X(69JEW19==OAAU@$CBC7V^2s=eLm08qOt+K!GxzY2>pJ&#o_n_pQc!JT4jJ ziyWSvgB`>BP5HQgKJqy&%r*^yq}NP814(S5zoq|W$=DQW4=)ETN(2C zE#xy|+#jnkA6v(Ld<(U#`{hAcwVHDFWo}E*gv!D;{qeNZ_GwKyS~Kx z7+(Zr`R;;zDa5n$W$=EwF(1#90_5{s$QRv)`yb@b z9AEMwo}Dj^^7O`hyx?*jo)=m>E+;#mQPd`QYZaEWjEl35^Frul3$?`}13PKhnbcUJLJU zY~g*sh4(kL@cx!t+4^ql2(*qs>j<=tKj<=tKj<=tKj<=tKj<=t zKj<=tKj<=t!2higXx~XsL~K8l zKYob4cm8-|RmgrZls|4?Eq1`5L}dKnKl1!R&jB0vaY0bW^rl7%;FjK zCADSRxD&J#zh4%wtxYtdroN6*S2eqMdQDATvaYryq1AekbR?3p%H~#;QCaoVi>Fss zQ%>!Kf>bTnK*iM5YALNYKd5k4d{${D=1tL~Uht zUAes5mEUdbLwQMMl`7Vt_e-ndCACz!a$(?_WL&`_#2YH>)bAtc_wv#zM50QK?VX}j zUR9s0P$^?dRW+qE%PXsbVk*=dwegZN6-_84*^|J#cRsTO6ICkR;o8=o=_jJ57Ib_R7OdaN~IF4;&*1K-(B_ltdi1- z;*#mfnyUJ`c(Ei~-565uOfN~siz}Z^mX zPAMfTXH=I2%X($Nx?1$X0UH#FFI9q_!YD zyfz*mqAd<<;rN^_RDWZra+da3I9Id3+)K;Vyk+#qA;YwKY$54}(2UAtUA%S(b#OYZ z+)3^GP_C9V^gD>m6a$RencX6P6yT z1lmKY9bc<__P0UqA609H#%YsKGxzYSn&~A~N$u_M=#t86?R`q?{}iNJfInd4ogT8H zTmH`r**Ur!^0xS2DrARrCv1mOAwAPhPlZ#VbdF*9%6?e4LtYz764sq<4NE0T&|9fo zJM2@gJU`^p|Giua1ieMN*znB0=fGUamux z+hHdZqiRB#oJ1<@g*+-D6N-5`cF50HB_%RcluiFn<+~v_oC&+(m={hMQ6m%fbA77C z&DZU)o14z_^HO1hnn49n?c1fo>5$VVYUg-VZZs1%V!B7a+ab4II^^Y8RA`RjQR}>r zAC9F%u}s)$=d^LCZ9b*4-0i#^H%I+SNw!ZoAvcFwW<*nA%Ly5jjJlG^wYODcn9lKY zogCHbOxO#j!|t|LD$k?dP?w#yRy08^S2ZSRP^mIEtW!}@J52whmbg@*9>fhh&kfu8 zE_E!GYj2kcMV*k}mX=WvjV7oZFDLkiniIBjqa29oy4S%-hYTyz#-S!;sAl@NUCdAe z6r;sTLtwb=GT|Vv#s5-sRB@_V!K*6EqfS{-8mPv1IhM*vwMnQ!GTd;~r($SOGPzbN z6!F3_%St$5H{^xH%#-Jy}!(|I%y zl$ZvB2A7hnX{JYYD^1IUW{RETgwky(q0>f>x}kK~3Hx>Fpis3~QnV!fT$}!LsTyxv zdq8JfNBc2oj2$jR~Aq{CEK zj!XYnd8k%e81xP`*b7I!u;qlgB8Lj0VtiUdZAzF(g`&EXuesT}H4PRww2AVr-V)kVrnWrV0)i{^_>Dg3Z1C0CWBJ2`69Q#3~@MzhqXmZfqW znx(N6(N?3H>xYBi!+uWiCbf)GPCVWrzq<+|I>X%|i9(p&9Pxin1lp4UdV!!euI z=tP2sCT7u`rrJE!6`eXjD+?8oQjMYJsm{{Y!3k58=46cijZ$W6wnLGqZijTsZDZ$H zdM4~rOckW70(9z_Za73g9Me;3K15Y=Dp9wnY*m{|Oj9PPinc>ES!`OXoKV!;MvW3J zs&ts@qy~l@`i}~Y#T@DkHIf=&(Snas+o>?0I^a@ksK74N3R{(tq4iO1$_k>XHmMv} z4NQ(I!waQp=|uh93>E3O4LWBT3OwXA%hd=OmbVQx(GKf0y~0M6#$PRUs*IZDwN2&v z+t{H@8@G*<6AVVwN>PfaPQyV3>6sAy7pCDzhy0L}o2JUC`PBKK6fP>$&Zl6eU1o18 zFBp40O)G&DvNF^k+Dz=EJ0UfTwpZ;|BVeR=@@VApX;`=OcJ+5~+Bog)oxJV*9a1zL z6moJrRRgt5EsJoP8bF(PDvVZs-P?}l6?IcJJkJiN@|-rQwuVjR#%L%r?J2Dv_Gs4A zi$eq8Q-{<5xb!=1EYuLIe|0^fM-5Wg4!Jq5+N9XIPOcMQQ={Bnr~$iVa#K0!P{MNB*lJ%&od`-+y{3g8(rGh5#ajeFVuu|HTB%@$Wp<^+ zdWyCInH(p_re5eVpSE^t*lBP>KCK=xYH*O>4qIvJDYcJQ>X?zq(`kTd{!w+?t4gRO zJI8OA&T+c?dFdRxz{#;J-J%8u|M+T6jOx@$yAAc4qUnf3jqwkn0q*Ef-RV5qXu7m2 zP!mEi-ENO+(|f8iqR~_y?So>vyBCxWQ)g9!92#QX3Nq6M-dBrW^@>JO{hryz31vcd z$lsOLCO7PaoSaxH?C1Hr(V}s3oZNI9e-~=UjyCnk58IT5rimB!LJ>D)MAT2vPmO<^ z>X7DzasR!6pMB_&G~QsYXLouWkFq@1tS2nbGn)j<^UG$z+EC8F9Jb&a z;1v8UoPpKjgo66;yfF1xA7y#&*a5JM_>r&=m%{Q~vBj`FN9<}?o*(uEEYAyj8;%{$ z?a!g-LaF*4cu!cK2WG{>W6mVGW9jk0fojdAR!;K+FPd$14x z1ZO62ynr4f6x2VF-4{;b4_}WZtNtX8;`mfpo6N3J{Mkq z{292hedV0~3X~UvABR0y%D0Z^^dCrhu#}gX$?-3d--o3?sS`LZ{Yk^S(I323{n2VU zF7?@PZ;Gq&iX=HM_1W-L%wu`tihb`l!H?ZGE+=91n$L;gxaom72 zC$f)&?Nitb;KY2k^gpwJE&bOPvM)k<3zq(;Pvy9@FM1kV`k#RBK>idg{f#W)^v@w4 zIfMPFq=)nA57YJhGh2YkoZ}xLo`J(VaQoaVIKDes)o)+P?v1z)kAk(UIUa*O_(bHluI2cJ za2mc7PF=_GXOZ8BKSMmTisL!-2gB9;jo!eP?S1-Yc1Mb<_FA{F2f!KlDCDERoZK6)F+pMoQ|v)@B{{ciU6k{{kR!tK#kbG#6au3?vvRe$Vz*(bstd@gL= z&+*3f3%*{`!)syV0ZzXGj=|r;?t>iPwmsLcKg{k3N7k}?!P+Bi**+Ohu#cd)8t*7v zjP%iU9B+W_r`Tt~*0bzY$ZurW_euN(_A77#{svCLZFa(Zg*(8;i=2NySbK>*08Ycx z$ie#cI>%2y-1;YbvE+Y)eGSsVM*2?7UsjzJIej!I96|{oyD)8qUBq zaOw+AzZ_1(*TDK$9DkIo>UUu|UQK#v<^1}$96y8{tWR(eocWI9 zN5KBi>|^0b4mE;)WPfVpvX7^DFhBCx3z6Pw!@eBW+p^Pe49>u*?K%D#oY;}QiLA=k z+p{Abxc#Y}*mC?B*_quLaR-*;C3_E!4@2CCXGnQ_a{L6?+M7L}tm=;h2L+n86!8SS z3ULQsjkpi5M_kjnyw4D~;O%zf@;$g4S!IoM;`HNTV_$X+(!224h{rl}{07+FkG&4* zjf2^5Bc6u8g{?z4-m!q|*SfP0Bdh)=4EAI=(u>`I^nP#l1#qGd`yM#mm;E}d_h)|% z#|qgy?2i5yu@8Wwa6j0yIDQPA9>hK#)`zeckyZOG_;SSEp&Y*nj*eijg;THxdvM+! z+`i~YPJb|LAHg0c@lotKa0Z%?k@j37`=^J5ZwnD{8R9PfIQ+2aw{r?AV&s=d*v z?2`~rAI)9?d+_bBdo0JFg?)Gx*q*_j3MVSq z^U13H_VH}`ZjHC63HE9@dII}J*n#Prw;;V$%ki9jxIAMvdoQwD|6RB@oPm#kod!-{ z0()=+9GlDW^I#YLJFL&+_zQ3f{uWN3$Z@?Rx5qh|eK;IBgI1R6b z{e>J~FFuX^J#3xM-c{%NV{i}HSj_P#oPbY&efTOkx`fl;A?e{);S`+TiR<&v z`uXg^;56Y+b~D5>8#rejAQm!p`59+mpVOt;3Pa*(2cC z)$C$P56^>r_)^%rhSNU?XRc*$fQ{?e`JK6b>w0!KIJ$~G6gF;Pm%%akbU1Yj$FG6C zTiK7oQJ4KbY~RLi(*?`_4)y`C1CM|scXIrA*t&~-7OdaHz6FlKPrx4hH5^^d>G$7{ z>$lgikAh?Ou@}J(d^fD$&++%*6uk5PSe_4Xd@$@h#6AJ`UvevJi_rYum>-MjYm0t8ytl_i9gQq9lLUQ3AhOM;aPC(2~K|*oLa|zR`Nf^ z{t7BdX3{J!WsA~$^Qn&ABSV`df11L zJcP^F-sJQ#IQAA>&Nrpuxsv{Ej$a5{u$&Ke;TtKw4<*fboc?Lpeuw=59DA27=ch8C zup7@ueaddzjmxv)onh_s=J~z;3{VfUc88h>pQTRzX& z@BnGgw;Vqb_P=M>!^V&7B`D9*!c?fH-GX>D#C{3Za@g{D#om+s2I7&u*ghQF8|l0A z__+JB<@`pfGrMtl!n+~8)`jE!VI7v`VeQ9pSsod964LvyjGx<;(ZUoL>6xz;eFJgEyi)`THwvdtkod z@1}Hy5It0_Q+(9MBKI5$0M$v$d={n!HW?0 zPU5(%U(xw&nI9S0LHRM8Jwh3pJv5$f2 ztMFj`oCoU{vM-YSm$C1LQU+AbY0xA@*X}gYSf`M>+l? z?7(t9%6g3BpCPV4&Ti9(>rXww?g%H=u@8gYC)wj*`ziKJ*n{W5k!Lu5I;=g*J_q(; zSMp~#F53hD1-9(Z5-+l4|Cf4+{S4(-%O?ZB2kZafxNLu7uxx))@V_NL`~%t(eVOyi z`t7{JZd`v~W$)4#^9z>sKl%a34a5`h5pd))j>jdx&$i*%*KFB7q~S{?|2G`J3(mmL z!p>-Il=mT z3mk=Cg43{!w;ty7GTtsMp7fW#y^tF?$jUa7d)68q|f7cDdO5T>_u<} zz7ck|<@j^RpJ~tj3Xbl?-m{SF^I?mu>eC81UJg6zLK6Bp2kEuF*|NR1_F>Y?ZYx(jUF7A`5J>|d*Z;dJ<$zLpEH2_ zW2p;y=tt&X2A260>&5ZYklu#ncp=f7^HsA<>upG2(hZw$zt`Wq#}ZIWF}l z;7)(z_NL&*^0_{rp9jnM#Y|2w%g?sh zI}YUbrC~YW=?vodp@?S&vtzI^guN7w!7@IvBRDSo_2D&?UiCL}B*))?)3A)6F^c0_ z5w|Z29{_u!IWFr{dJOv*#H}d%EZBh`hBNTDWYr#jGN<3)WII#XvV0>`*%K+QwwE#Z zbXYrvQcS5l_`{{8iXUuy+{D^%=G7L*Y!49f#BP?8UG@n|&EyV`sd!saaq4Iuza7Ixr^g( zBENArJLhojj|&&V`aK+<1*hQiU=4pKRF+QymgVEXYmi?4uBa#Fui^4{8o~9;-w!<$ zmcJJ|6V~tL^s+rlz{?T$@8h_9Ub63JuSGoe09(d41Izfv9_082q_^SSMsoWy@CZ2i z5T}>KzaU|ETKfyi%cHvoYWF5z^l=M%sUx01+OG*C}$2*MT@)Ph# zI1S78L4TUl%lhNMjoS;j0r|COIlU}z2bSe!JjZca{x*Cy@;k6BAN~2}^;_`Z(cFF; zmig(v$m!=GE`JAB%1hwyzTS*@3YO*Xz0CPNiNC_$X$;rr!-vDxs~ng4pMmEh?yl#! zj7J8R@r}L4aTyN}mhshI=lHECPyZ+TU0D8(Z^2lM2jU}P7nb%#-{Aam{9(Mwo{RL( zTkM-)?QOOP>#+34eV5}hzSah|EbkaB$IC7({ng&%^fDeg+&JIh?V{X24;}%_-y=Q+ zmcKvj!t!^AKY-=$3>S>!@|+L2e(6u-L$iEuuWqC$_;P@xV@4y`=aC?0CSlIiK)1L$DKeN}uhL#%~ulxs2!JQ_e zJa{5((LF2b=X5v?-wnsY9Dj$b+OOrXe?r`bdr!iAfM>v3E~j4s$Ka=6yA8)>{%UR6 zvVXQ=*?+jOtlvH?^F5+&RH2`FM{#@P?_ayH{JrZ9u>8I1-6wN;`TNwP;3)oHwaiZk zmiee}$Mwm4vfu^C@58cwcsp?VyD6^5GqEFE=8GO-%leamUq^W+ z*`3*P{A6@t%leRlry+f6KaMX%dB*1kQBjxGazKf$W}BF@6WJ%V8b97*4=4 z|5N=q{R@bDaOh|*&p(voe}nA->}uHk8(Y@b=s>otubCqD)kvQ(*>6et@UF-3_+>1P zA3;{1k5hx#^WpSh_MLEK2>T=Cw}-L!JeKoEhqEWaKD>;qmX~(~$7TLU)s0m2Bl9~0 z%l!67aa`69V>J6Alox|Pg^e*BZ#ND7gZq$!&;MgNF7wlkvX4S~YaCnVqYckOeg~HI zAw7}P%Y5@-X|Fel<1&9DN3kzKc~Mx}V;sZr#`59D@?mM8cPyuu`m|}y>oeeIP+tQ6 zkN7xFUvM0cj{_IMJ}m9iW6j&=!pBj1wR|(Mv@c!4=@+3q50>>mHJ#%(OB{Yd$}8pg z7l^wv*agMh-gG5<09n=VRr27X-pI|Iz8}Ta z_RoMTVBh8VC1llJ{SLN_cN%^Y>9spKF73F zmigeoe?$5-TmoDBa{6U(q%->#I03&Q`Qf(5bN!hvS@n<3svlPOsjBrM4NH5iahzV} za|V|Aq>tx#obs#jNx{-TYXZj?p!^st^F2M4<2NF|2S0}N_AwmyVEtJ34@mFE*llNG zyi3?}e4v%Fb;PwedoY}u!JY=Y$Fmz?tD3z6PQZ7-KKwkKs^Ro9pL|%>Un9YBnO`yZ z-^lO4GX9CVoLkjIlwK|G$SLf(usxqG?R9Ln zv^N7^Ecq9pytdpPdm&re8#$FN?J;0!k8v8uA3%9gSn9V==eX4G!XG2O56ky`u|=GI zms#9Ddof$Cr;IFN4?sK(%XoWda9rA-IFl{yO~Ese--XYH^`)GC4Q#<1;1s-lHP$z{ z4;(#<^UM6Um$6F`*Um=y19`mNbJ*uoT&;hx6#IUpch6GsKO?L9-AmZJB)EM2YPM`Y^c&g3D6Y~cVEO#x-^_9OJ~eR*Tjq}k z%lzp#zX8^QGXQ9J%QV!r8(Xcc46ti@i50{{gFpG{uS~Yu;foa z-aLQw3AXe<0e7zD2zwmG)$-N5u}?z!ba(d6aI^>eO*jR& zYvA%7gX6v7NH2B??834bgV~MS zlc8)mKkN)+Pe%IaaQ4Y?0+#cc8Tcy1tr47FmcKueEz8?Jf-TD{180!mhh=-2I+D}> zN9rHN-eVs3FGkO&Qa=OX3><^4F&tk2JFv|E$T*J6{4-#ge?BbpFE*aj%lz?RnUCHC zj^BX#^oi_uU=QwaBG0$fQ5^404vu#xvrFKZdJq%+oC&Aldte{-;OJCNzx_#Eo(-F1 zHNT_Ba(oJ$fMtJ>g5~^fWE!WJ`Dz@;mid~1WxhJ_38>$LWj?rZ&M)I{m9u4j#9%4k zg&W5gmieR4;QW`PJ`27NPFHYzJ#197wUc>#{2KN?aAYxi1UcB=pUI9Ro?gm6AMx}G zwv12gB6j0=z_%m62fqeu7jya_VGHhZ3YH%{0@g3#^fj;rpC{?zd*L+v796{j^ULzc zT*+=jFRH(>tJtzUY8;P%qhJS4!f9BxXV!O| zUbbi2_iWjoC1BZ}`S9OSp8o@hfB`^R6qZMeYnFy?oVo4jt_)gxD?j53a@;{YqO+fX4fr$IhIc-V>&w7{ z;aF$RFYCM0g)QGNc(8oGVC={71mzFf1IzYSKY-)1y>(#O{-wKeT(&1Zd`_P`8NseX+=Z7Q9z6o(!7ltT(mO|UT$ZnM3|qEu8Tb{XPfX+Ze^6eknB9Ic z+Bb_W+tcV=wro!m@Bv6~pUCkcpX(%Uv+sms@B?rHej2vn z*I@^q+Lqhz!ZQDj1r(qkS-+wS*)soA@P}014!LwZb2`V{E@8*u1KqhJG`Mc#+nZ^7pyp1+v$-vJlEFT!2n&*4J2 z{h3_<2)HLa1s(@iz$d^B@Nzf>-v+zz3-CJlbJ&C1FXj4uxF?*yg!?ldE`XD8SNMFm z5WX8;53h$e!r#H0;Jwb``t#4=`ikHJI0hT=LfC?@grjg8j=^uk3HWDtCERft*Pn(> zvRb}Ad@SPrncTipU~MV;3Rs8J@D%tRxB?EJ&Gp%EXV`&nnf{g1f?_;6k_>9s#G|3ix(7 ze>s=`54bD*wd98j&gc54z=y#J_*ggvp8`9u1E=A&@J9GOcoW>_0$yM9)q{fRr#o5g zUn1~W*nq2H3tk4t;G4;6{kP$#5l_RPz#HLhFGPLkas3CwI(#H-z%yYBUJ6Iy8{ruI zG@O7xfo*u(6GbFM|(*6Y$Zn56_eM z3NG(r*oN7v2}vFX8em*np3NE%;>E zfiH#E!}r03mvVWp!xiuka09&072KXBum!J#OJNsY0H@(A;PvnWaO5(s|4n!o_$Rmk z?&xs+U11Ym2gl&`@B(-vd=OnBz8_u>zfM-$gDKZ>`FYo| zE8xCx1007_@Tp{Ve3F5$f<5?QIRAPs|7}=X#r_dq3Ga11muK9-@d0oKJ{n&4caG16 zV>hx_!kgfG;FULV{1v$C&Frt>b?`2$xc-V;INlr9Ze@>$UHAlemCNxIJmog_t#I^q z_H&XS{!H@U!SU^H;QG^WH`s$m!<*n)aO6(TzYOjQ-wa#uvv3Ul1Wv%){GIDx0v`bT z4{-Uz;lc;mad;(s8oUX<8t(cKr+)-q0&kG?aL$cfe}0iU=flUs7s4mPE8&abi{Ul!rSN*#fj7Y}TyP85pN0$J3_Jz);0D--SHjw( z+~3u31YQs8@Fv)R3vT85Ew~Vl!c*W1xB<4|m9PV^hSTtRI0J8j^B?2(7Pwr00bEE{ z+sg{L9`OeF0(c307wo_n0uw`U4$!E@mRd@-DX?}N1`IR6`P z4E_;b1@Ch^*S{V%;f8gbKL$JSe0UXnIlK;j0QTTF;Z5+5aKV#Y{@!=R!X577`W?70?7|b_G@OJp@VT%DyKv-L?$2{@0{#?s;C6R&{n~S!{y^A)N5C0) z2Auyqr(XmY!q>tv_))k5eoyjeIDgJPTz?eq47>1P*n_9T)(f0}A)J7(f>*<9;f?US zaKVe5KfIdjx8Qx@26!;+z|&zLUZ}hc-7lf#YwG7p*n-n=6n-0y!9T+ZxZ@fw&xTDn z1sB5(JRf%9E8sNz5S)SEhCTRa*oQmb%k^s^?vDva;9^*Z=fehk1#H0&!BO~aI0pX= zC*Y3vq5rT6r{H4Pf#<_6dU z_;T2Q)361<3rFG5LtI}B*5L$f!ZutCr{MXp1788Va2ig-@4y*2oaXvHxHIg-Lt!nK z`yYoR@M2hpZ-5Q>Y1o24gQM_{52OEZPdEWjfNeMlr{D`<2fhn-;aA}_{4Jb;_gstq z!vkR-E{3%{?*9Tf0$&a5@MEw6e+XOfHji+9QTSju29Jgla1Ct3%i$D!2kgKv!!G;{ zoQ8LQlnXkH9+oK5W2kALIHg_&_)c9|_0cS#SbA2e#qc z;1v84?7&~aF1*|0Tz?uq6wbiMz#e=u?88^Unz~S#ejbJ+@CI0i^Pb@P4EO-pf=9wp zcqSZ!m%$16R@jDLfK%`numkV9j_Y^f{%{(e3TNOGVGq6x_Th(MEk8f#|2uF5&UupS z)8Q_#0S|#Kcsd+~7n1kchOT#muZL}T9nyR4xc-f>59dF{^=sR5yek}mN5DE<0UPiV z*n(HVQFt93gEzv7|I^%;07aOXk%IaEr83{DD!Ty0AiorG@kck+K4YIMt1Yre2G7$rTjlduVW6&2Ln-Poo z7!boE^sNQ^+?VHNWo75hthU1r2sM9B-TU_Y?z`{4`(6@1^`E@*?-IYB_#W{B@qOZb z;s?af5%duP2v>scMv~A{3FC`#J@m% zi}(+TyTo7gi)=sf*Am|&o+rLf><~X7{x;%=#6L*EyO9}w-G->{4U}(;`bBZBK`<*m-t2EyTq^hC9gjBhzrE`iMNO!5D$nS z68{t8N5nry{FwNciJuTZA)b1<*Zx;L^2)zJ{08ES#LL7f;ui5U#Q%_Zjrd;^-y;4w z;x6$E#CM5b^2=;L@!urAPkfp90dbx9A@ScMenkAwi60aH6!8<{-zJ`Vh1dSi`_F7Y z@z)SvB)&qNBHjlU{qqd*ebR3bKP28K{wVPY@n`>vSKhP4Uq$>*;!DKuCU%J5NBr%? zA0+-E;^&BemiPtY7l>aZ{`~*qmH*TQul;|6_-W!x#IGl=5toSnF7X2K4-nrVen`Ae z{F}rl#D7WrEb(i9)vM1tiNBHf-NbJuejo82;tvvkFY$B4?<0PJ_`}3668{D9Q(x@0 z|I2>OEB|TY9P#Uk*NIEShs2MG?-4&C{!!woFY)sK5b*`#KO(+J{L&A5<)?_hj`$hk zE5vKWP2yX`&k}cuf0+0#@qZ+~NBq0Q_lZCEIj{T u}Hka&jp5pjk1G4b1ppAdgP z@zj@k?f(Gr1>#>PzDWEcu*|0varz@(eV!p+C0-+L6W=2KN5oy?A0fU={PV>3h<~5> zKJin(&h`_34e>+bIpRme4)J5+ZzFy}{DZ_(uk_mg)5I5uKT3R&cz4AUnKqnaf;s?a{h<}OrKJgzD zKOla^e`EWJ-$?w3c$N4uu}l1f_#MPkU+%U4J;WD?f06hi@gEYWh+p=bY(McEiPwm) z5#J*26L*Qfi})__j}zY`{xI=<;!hAiAb$EW+fQ63enfne_%ZP*@e|_jA)b1b*Z%hs zUm*S!;)}$8N}M9T@KLs(_zlEs#4E(Nh&#kx;&%|=C4LX_J>m}$-zWYU@dM(Q{}$U% z{08Dj#4E&)i95tkh~Ggx^)$zy_yX~Vh%XXiKkxewg3IZ7l@xHzDWFO;uP^~evj=ZeiQK;@tcWn5xNCiGPbYMf_QR#P$q{)e4qGv;s?Z^B7R8xnvZ$)c|`ms;>W~qCVoQvR^qAGdF_7} z@de@!5MLyIo;XGPDdJ~{U-QRa`D?^)BECiZX5udKTZ!)yzl-=D@%xGI6aPB#1L98- zKO}zj6SklD8;Bnh?+`yBzC%3qm0tV5Pw*E_O_ioS{I7st2mB22&k>&x{{is>;+Ox4 z$NvKH8;LK@c=^e9&LzJa#C_s>#Q&7|gT()icxu*5|6$@1@r%S=;;;BqFaLKFmx&(} z?+`zI$;Q{te>ih(AUAg!pU!%q#z?%U=H5#21N=h)cxZMZ8A* zUgBqof0g(l@yCf@B>wV0_sUDndF2&}_la*3-zPpLevbJ2h%d~0=|4ccK>R%MUE)s@ zzmNEJANR_CLj29duV3);yCwLg@c$AIiBE{%L41$+-w?l>_-BY868{$QbHr1B;pP8? z_-W#&7QOQG#21Mx#3katOT0$>1H}8pkBILQf0Fo}#IO8>SN;RyuP6Q>@f`7E;(q}A z@|R(uz2epHUlKn}{IkUGdz(l981X~mSG?$@{~&RJ_!042h@T_=R^rFR|AP1h;*Su& zNc=hfllA)+ul%ngeu}t8e1Z78i60aH1n~>R&l5i({tWSp#Pgp-|Ggaj@vUBYd&Hkh z{BGi>h<~2=0`cz?KTZ4@;)}$8{Zn54uP6Rn#3|w$af$dlh`*8e0r4}$zec=3{2Agk z;;;U+SKbZcE#eOne>-vM?OuD|OT0$>+r<0Cul$Uc-(BL@5kE`(HN^LbKO0^7iqD#w zdOY_M{A+6JwZv0z_3#^s?|rL>XNd2<&BGhSk2@aTx9PvZ!*3_)kp3kh{Mrzf&&&q-3n6?Zgx5oOCxmZ>@O}ulL-_B6@OOoqmqZ2Wx={yrCfpNGHC$KOlv_Z0rV0DoVIzc0eyOY!$I{7FpKEAV##e_xEh zFTvlJ;_sFC`!f7}IsRUSzo+r{75IBK{{8~xeFA?k;_o%Uf0gTcacXzA=m&SrbL((Fv_t~-0p{=n(YR$8rUrFH-s z%5(-%`D_d-y}_E(Yr6GjZL`uBW?Rjg(>!wO%TB+KR!!|nRab|DJ-6A}^MBmkb-V`d z?zWwFt$Vs#+dr7vHK^?#IRS_oSk&)yd(F#>b`K7R&Je$XuhNp=<)3>~ zyX{JCf45TYyRG5C+4TtKH~D9^(sy>7od$}Keru!dUjO00ZD~n+*fIa@y2n$y-NC+8 z4?hl^6C{&1jsGT<4FBd;eQLK?X-Zf0++hbT>^Jv174$KB%oL0NvRCl0mIL|epZ3v` z)>QqpRR`O!x?62RCef)qw3}jwAv%SSwRfD8n$sOL-A;dZm@lBm4>1%qN5;@F><)9q zY&JPPcPjn9(_?SsN)zM&p0hPC zmGkN3w8ilrL+KECnT;5U;sm`WJZHy)^urrZacM{Er;?P z6BBRJolTd|hyX^`zvT7d*)*keD%7&E;Yo*^;CFu3>*BdyMRaGo*%|h`POs*427!?% zr7)MfZkJq@dVQo|GUYso_-Rp+^wB~rFGrPuvr}*GH3$9SpxMHlNS9Crk882rZN+dF zP@@U5L!lV*>3V&3ztX$zrICO3W3o=mP}bb;>9W%vwIE#-=|yI<9tD$Ml=igICSGnq z&5}XM(5`cpL50m2qhiQq9d+tn`cY%YxU!J8y4z}1dg$iW)t!E?hJJGgZgto|XQc|# zr(H2eHU?O&A>U!{-pKTU?$4Fc1fPYggNM=in74^NnvuRyb4a6uYpAbN6aBjBdbQf! z?H=syw3^j!rt4RK2SPMzN**7zA7z`&E_yqvAokICs|%uq{W?dp$TBf;hIyG^@fqfe z!Jd}I8N(xeEULu_&gI2bPip$7FeTmHVOctF->DryU5!)HBJ9SnnHe@xsmy+c}C{J<$#M!q}oG!cg1qxgEE^1B2A*!8F1ej!ttrd(Do6d5}edN()94N~Ow5 z7cvkL)6uI(P7hY(vGBkK+raF1>M71R%U(3joptsSy6Ue!k62a-h%7-o! z0bmw|ysQGv{ze;(o82FF4g$1X76XYs+i(W+uPGBVw2ZfAhah>WkzESr+*JF+V< zdCm1)Y*?ULP6AA+ENTM7w+o40?1(KjBIe7oTp1I8raAVzs5020q6_`fM9#b+8V*() zV;!9@7NOgEmE&#Co;O3chUN#Wn-+cJ_NQgoLNrWKG_ln(v_P5ZGXRQqbRfiy%UL3D_4!QTc*io8($^=R%NWoofUd}F%#S+>y?AEdDt@WIv@ewZM z#T1qiUW6qd?C^XR1ZZYc)TVoOKuV}NrevtcWddN!5*Pz4MX}N%SZu|D z(pMB?m=zyoQB0>%EvQxz%CVoN@bHgj=j8E*6_VMScqFg7VFpR>`c}ttop99F!}BOz7R}r3IbE#cNQSv@lbmUeu~nfLmmC?rP_@Kp@=6}HGM6sN zkeK?6{fg#Qh9_nzf;X;qV78D!j=aoyE>@8oX0XQuJ(rV>xN|5Q4R-0^wCmJ8KN3vE zOa>i?kzMS_zSi5(hQ=V2K(xA<`84eE`?!tH5y9Z(E*qhn2*VhOdU8a!)k8Pye-re`>$rryx)4favYb(Be&FhZ0X z^?tf6DheHi3awUeBi)(W)K3x4#)p#u5)QdVj&G zbeB9OVQs*)*xfw`{@MOuwQuZ{;2N8k_8PC~FtAwVi=sD1=GUl$3I*e0in3q>EiRqgPgzOOE)#ojT+hd+8ucNvsZ(5N(2?bV!pKqfxC2r5t(@C{`sfy`BCBlz~w#xgBc=o8*7z}u;0~Ka3Hn870h_5#4j(Zv5=8@BPS-FbD;sBA10ksY4>;F8$suR zD<^VomnGRoMspcco~wk;CHohfO(4QqF1mrFpJxuw>%tF z#E~*SYMHETBTScHY97s;iv1AP&H0QB`&buheNdG7i=u-rR7o1J1oSqGK%&ht15p$c zz;E#QKxRdEn-$kv$D7ddcSQ531r|KV_F3;{wkUEHY%qO2)t2kFAvLlHM38&%SYa<) z&KtgR9;Z#1m*Sv@{&#Bo?o6|@QEABejL7+1(`ktscY7jUXV#irNsK-#cA*+bM_7v_ zOp-Z4(_@^J7Nc4tnIX0|gfB|6jWLxSE!tpgOD1#_hN!3)#(%}Epw^(OwJL4Q$>4Zl ztwlAV%C8OGfmt5{o?N#N<<=HYe_D1S;JS>h08AQjxQ?cFDKEApRM@6DF})Gy_{<@Yr$1x3GIHoL zL8-=6ouJf==ovQFj%>ClE3PfX|Fs}<*=FhgYP-~;nQc;Y?Y;=2z`LJ{zg%JnMJ9Jt+n1{zF!R5$W7 zH}aR9L#&pGrIcl{9?w+H<3`JR~j%+g@opXm?l;9cA@`9p}*) zfkAq}&gW!c3aG)Ai{fMCYhb;vp4VbwJ=O8(8 zo!K4}-H^ba6|H7Fa1wqAJFxYfgkLoKTSw&4|5m zj=IZ8Oo>LUM;W- ziy!;4G45zBPmp^)Fa;-Jhn!D7?FzEUOg{E-d5Ek`+}3n{V{MFcS6hkL+?z=xO*LALk2v#=!38?7M_5q z-T7I_L?cds{7x;3RfnyU=Xo|s<;Z)&#Ik3A3&ZUVwmSR9tK{vLL%wKHI8kh)EnF_g zu%k^l2hE1ti{Yva+I4q;|5XP4_Ac>WZTJOW=7e$Kr1-A!p4=J?Y5pFQGdjyAxoG5P%8YPm4oo3Cg zBQhduTuQ@QZ`g5+AG*^Yt|NT8f@AAS55@L}h{rN`DQ3>? zp;Dd;fn{OSO_Ms4H_Ls0INRZ#BJ;s5;rBxYlvAT zZq*gZ-}--~3xc_uw)BV7^?Jk9+^ftgys6VYoLQRR8m5A9>mpEKFoy#r)E$lVekOKJ zgrJcpuQsEQ%yb5-(Cr)Aa)0j(*)xAuHzE_uR>9v2Sxr>Ro{8Us!WorVhHf-7Sjp7H zD~#z7QCNZW5T3CR*x=p@F_XxC6h9iIVO4>Oj7ti#lC&rXE@SpUU{mQWKPt5-dmBuU zpsUe4+k)vaXx0qThG-fczKwA2{$gjb@7{zzJ~RX5d;oeLL}A0}=UJYdtZ#5jVKR;T zvhto=(%VS~TVPf!=g^b$K19<<)mmjB(MRK%WQsE3P40*^AE%{ra>$6YV>racq74*L z63ymiJ5I>uQdSuf`$svhwv!>l>0v=e4Lm$Y#M71GU zXjt7e5%QS9-eerl+w92YkoMBBXS~znA57j#OIq zQW#C7!hkPF44Fj23|u8^@w5_uUk5Yx_SApHbh>=$tL>AlF!yIV}rFM zW9g#t)M@WvL~eNW4(w^|9T%Yo!Yh$f5ot;i1JLa3fGw0;Nep7&(g?~ph>aZf?)m$3jyo7oSpAi`c~b^KgCqei!VdKT&0J&W>dUR z6AKYHOK_zkM9Io#1r!vA6V$OpIoW`Ngm9uQ7waB5itr2%JJCf*FGN4WCFv2eD$ zGtKwLWhAe5I}r3y6-6lp7sE&R{1|s#DnBdh`blx(uve6DmWpb@DVzQmDA?c!Y^f}X%#gIBr>k%UaJ#)@d3KB_uuJ%J}MBoEA znUeb~U6x>_^A%H)3H<+bt1J>MdudpKM@}DsFpk-ek8PaK+0L{~;d2dITHFoNGZI{M zO|E%j>L*G%f^<<(AM2BxCnxil^I|&sGjxIkDLMSuN1d=dPgDW|YrNpRNx0LQlpMrk zS(}8rRFWg7@K8iY!;HnINIRq1WTQN`E!9~i9@;tS!V|RE@Rubm>oF6Sy-H0yWmB2?>mdp09V|So3Bx&bKF<$$7Cc&ZRMMRr8!>U|)*4 zIqoaLxWfUBR|3QdEvk0B4n9rd8-sliwYY~ba*BNT8RXDDV>+yx;v_P#MwyQ9f9Ncnd3~j5NS41e%_i}+n7o4AIgB*<|{7qeE8<=c#&C& zB8cdWgj`Kz-FQD}buEa^6jMUbw$F+$BZ7An^JA_xvf#k4zBM@Bz2n0!TGJc4KuQU; zkC3KObU{{@o!B}d8Z;v3g52JT$ay^Gpd>C3)=Fv{8{v{RPOgZ$aI{91E=xy76dvI4 zZUJHQJl zm z@fpt#WFzeYg0Bok&IBvsNF=nM8RZy$a3Walc&64NfW4Aw9b-@@Ng!^bGj_fm4z(0n zyBMlFNg)jNH=(^je!s10uNos)TaatK7Jizn1i^^&S0d=g=c~_yPW`xPQll)@PM4BHN%v>}uyspu>zjMHHPtB3mL$ zx4C$C<^2MRvam%qSxI2@w!Qcl>~}v)6MwDE03}ym@=ugRzYx)_k=6D&tWB$nQ6~H@ zO0YRfMa2=AEX#f+M3ix+G89)t?-VzTv5mn?1>=J^z&Qc#7eFW`_s_tq0=F;REvR!p zga2|8nlOf(gfQSQYmigRAjBU2^+M696^n&xqu`XY^-Lw*sMH$iTDDrRWw5~9D4+oz3u(>b8k{`1=Uu7NrPCHrI z&R>pMdL}O?lNI;co_UT?R+ovoPePp{HLud$Cf))%(7WCvx6vyDTqcDNBDuRW=AMAr zimc+nh>2Yt;hSB_CE?1dr`f%G^P%-vX&O#CJ=f9n+Tujb5w|_W^qid_p>gz=BsZk& z-9?zhHnQTD$;yo~IsY~{u+CY#oLJI0Y;SG2VZ$oA+i)99lXT*nUlu!gvp9oIl)Ykv#K+!G%V7d&2}!0iqJQ&1J5xZ zP+?~zdB};m2g;0fj6kacGHCGvTp!nOEU74tjnV$ zMLE+scR^+Eh&Or37!_3V?vPEQU`C0G;$_5Pfn9IoMA}bfUMfHwXcGY|a?T&vCHp)X zaiN?$W0@_r>UfrRC_@`0^OB4AHs3h^s0!j=#2Ys?ygwULPqS>Euh-1Ya3fb6-O6!j z*Q(W5qRg?zEYj_^F8;#)oY^-fSvh`_(&lNW2{-zFDswC{nXxxYW1b$9XYLSS95K*J zD>HJ4=84Ams3`nd@wa$mg!r}%dCX!cQ8PiAQj+Gy^CHhQc((&5NWn1MbB?umEWH}q zN#ft>jJC=BJ}ioUrvOH{H(wQq+sXJ%rZFP(UqqScyG$)b5L zF}_9C%qSJ*j;B007qS~@448Og9D|#nSsC~hIHATnmz)yLhxl2%`!UiR=KitwBOL$I z5P2Lh9Ej*A^zw~87Rt+l9*Dn^`4ykQyN5cOT~Y4kY}&i2o5ZD@G>si|;Vm?@6WR%u zSY%l#36AZ@hS|Z$k&sI?Rq|Ot4B3VjNS8G?OyVQyAm&)XyihZxQh0*QaKr`M<-Bmj zxL~_%S&nsMg6+JPiJxnN$hREc{gp0|#}gyF(%j!l3be}>C1gtO$V5l>c~uf?`>&3n z2n(x&C+2#v6XB~f?_z|lM0sF-+Pvl&Tw_KFcW|wzvWF*^<-r@{QHYan|IT{a3;Uah zH^W%8;Hw&ex!~t%qN2ylgR`SKV)lGs^clr5N(8R&T8Lpxi{|yWUa^eEFBsVQ#4&qD z_t=vnQH?htW_D|7^HTyCiV|dvdm0&Bi|W*7hImS*Njq-*DF@ReKTs!D0gh!kfrgc+ zkAXXb*DEB-JW0Kp2+qkWQWSmWH*SKw&3j0bSEVRH2(p+@T6a8@0HufPFk9Cvcsq^$ ztk}-X%AjK=;(u5#&1L&R4>Pe@lb~qy+_`cqihC4}l*!A7-w7J=NS^I{)Cue&Ud0jX*0=1a3+N!m>ugj;AnT;v6))WJu1@ynBos>6PYCp;` zD-OMw67jg6p=;^$5&)0%-u+dluJILk!)fA*mqdq*DxTcZqLeTepAkEpVwjHUz!(WP zhUIak8&H5T++rAGUqM$%Y$Y(@kdT3E)CgY4yX>84ho-ySIh%N_P#Y0^b|BDSk-0(GB1`l>5dk5pdf#utCzo)E+So$$4ExzdvdUgBXcHp- z1m+m8ADe##at_;Pkcs70+}&Kk!`l5hw|CW-Y8yp~iUcN|T(yy{6sm|-1~kzW-g|a4 z@&X<1ugJS{))2Oth`yn>pN+8;9$5yBGm>!Q>TH)0h z3|)?i&Qwf|ps1;NnmFC$hMO-b$R=~zdokR5o?p$iEI~cuM?a8vp$85=cXHXP;>Ze{ zK(Q`v9Vc8$F!wakFh7nZGPjI`a={NSh093Elf0g#5Xo-#*-&T`vKybj6@r9jg=W0k zVR>U+qnZf+jH#&@qXWF{(ejL4ryf`fBbx>fB~;be-JEDX5iPeW_Z8Qzc;i+|OjTs# zCEqh@_F`|5q~#>WSd8*flnvi^8LWkOYac5^M!sv&?BlUqId*MTPG`jzj&dLvi3Q>A z81#^Q7;l1-va&ZZ-+q~h8H+}6rS!H)SRy0;aV8om&{h+JWTKIfG-VLtbsDvllW*X< zT(y!f)EZU1k_xQ~0d5rP2p}t@Qu%5T#RW0~Vz-4?W`5DeD0w`s(m=PPYt19ykzsa$ zOz{mFEPBFid`ivsj0;of`0Rt)m@H?1oH+N4Xs5nw9tj93Pg?X`xN9T`!IFr|z!XijYKXtVbfK%+g!ZCUMZiV5E8HEQC-?+?7Ud693x z3<*6DBANy!=#mQ)z2^1;4>2mwa;PTigpW7v z&EXqpu#Y?)tTiMpC!9vV;_>(-UU3l^4LM}CE-iak_$D5LvK-HZcM4i<%u8KZW)gd{9Q~ewBKYRZ zU2>KR`yr`$ve1kLYS;v$OG&=(+`NrF3IsXJiBHI35QBE_Ssp*PT=JpVh&Oyk_-ww| zdYe63ta}|M&LoFy_}C0~uuh|bE0nWtr_scw?QDsD?Z!N4XZfU1C<)&wbCzS26Gr2V z@Qg-6-bwM^0SGDOAWI?TU6a<14ls%3F&iTvflYGM;lk*XU`x>GI4=rl_n20gAWLWx zXgNf-@!5G?jAU?>~}lynvhsu+}LoGM|2SFO|~;M^X4rL2^_tR^x_SGeG)Nmq~_+SzhH>>+35{7ek&tBD>0&E9UqAwvZckp|o-`-ibVriov!9udF4%nHYJA88IuNQ>whH(XV$(UEt{un& zfD*+L)i35vrkI?vB8w1B`Jf@5Ep@T&+_R@;QTdtE2JZ`acuN9p$K*z3#VNYI7D zjKLhlRXsDkJT=@$%$U1aWpXd^ZwKF}#O_;K)6{)uP1@cOMBMg$*MiyCu$rfL%N zrI6z{2mDCr$joxyjn1S|kXe78<{6!okg0jPGjVA1Q4aMnu`Lw5=N4j@Q3y#v&W>y& z#J?3g8Sr5>bhH1=U1aB_MOcz$st~>x6`5Hf?3sw>l4FtcGy)@mU3PD}98SF`%(@$Z0GciZ7N9YbchE2FB9SQL%Kn?GVp^i5$-W znTcme>Lc0n#OHustT*>?N}f)o#$WjMewMfbm{qLF)<$u#wYG76;rMjBdVEx_&Ezlj zy4Q9S$gG8ynmw(NZAYqf_JT_1NNaRCV3tl&=?T@BIQF>oGWBEWlvJ&J+0n+OmxFtu zcXH)QxpK3cpXpU^9F;4D)!FWqo9)!zZXyF~py$9Q>I`;}VmR0hI)@#I7!D3~3W8E!R?+nV7<6Ywbl(y>}ltz_7?3mab zBwQn&ffH6OLgLY4bC7jCmI2x>kt3;^FaneEkSD$3>mk8<@f>zmsJ)TY8RkwzY#E8Q z6r(UUhqN4;#&g(NrM3f4_a^3%SPzMyPpAhMZoM92rN`$XF4P2$#F~oL7oUgh0uwkA z$6mtd;`5L#a{@=Ae8{D-_&g*gErBDkE#fFj$Rn{HvI~mOL(KOCj>MXZzce9_q?($? zwPW+Z1?z-TGV;(=LLNyq&4|k?J`eHD#B<24$9N8jicH{0tZAaGXA|3k3uFoP$jS?Z zu{F&~yhj2@Qfsrai^r#fDg#6k;=?_gu6)o3hwX5l1wXB0-cFFRuFTiU)pB(|b1B=| ztZ%IsH|I|eOO@$eIqnjMbZ7l)>hNgk^4!w&%v`y$(^(lz-|&qYjm%Eh$kJU1wj69b z&Aom3+PSG9Luu1?`%ze_UOGO$ou9jjZ_8EFdv`L^{pp=+yK-Mm>Za0Jca_d=ROu8u zmCn|wbS@?;ol`@lQ&cp%?Cj&(FW$IVdP4tMQ%o&Cq5rI9`6Q+Z8L}=0^9@V(=CCWICE@y4A^o0E7$TBW{!fcT%uW`xc zAR(5XAcb;KI4*rca`X0VT>7*e0LL=et$;RwX{(TO8}5AO>iV_Qth?MUSGMkKEDh#+ z)4Lo1jV$g57l*v?W;g2_=Cc!=0ApXG@NRQTO;_rBH&^ltTbaRW>Tr26?^fFM|E^U^p&H0<~ zpU&jF<=Tz8?fH}a{)TUj#c;5TV>sBt7!GUX&Mpm?u9iAis)vmOr(4)OS-Ufw_1%RE zl~SruS-lht%+=1;waaA$jh`&vto75S!|RKCyR4i_x1I)_At?urftrEct>_G#=Q;x? zy2>C?uOhxGgFMU^%OJ1i$1>Pmh+2d^^%k207w*I5xz^6jtF7tg+F&qj*4Jkbvgu=c z`l3+f+J2nijO15SIwFWO2e#oP9swj zYUKE;SyzUV+B(2BGRr=w&L3QvZWKEQbEnSc>SE_|XQAgWp9+;}8P} zZ_E{E=eLgU&8L`*eRTzdE~Gy1l(TUFcV#RFE}Z29>yBoX8_wYEd3O zgE8Po47C{+ITZCq))ze~a`p#jkas7HHi&GL$tZKIrkT-XDZDZhWZnj#pYu#aM=Gv}RZwfg+ zF;_Pwt*w|w=44XH_9Q_gb2?~bPDO=mPdPO*#Y!W`x7&K;mDG0Qp^&ZJtC4BcDP-#p zR>;=Jp^&YMLLnk@>>)k@7w^pmBrtKWn$ZWSprmSmZ z_KHTfCZ>Pk%1jxtx3>>2H`lr+H>c~Zy=&HZ)5t8{xpD1iX6>+C zOFIZ0sCC@M`6Z`!wFAGbH|RQp)$=hN9K09~ivDt`aZ;|{7?!I`3-g`f?A+>=8}9JP zA3>GQ5>z@{q0((5+H;M4r*x%VymHvd>~wnBQZC)_W%Jmroo;rEi>vd?wT-RS?$OT7 z&Os8DP21a_?;jl$7iw1)tAq7st#PB;Iq)}m3YBubcIS96Tdf=whr^S(a&_@WYwe^x z=O@<4obMW$eWsBq85%jEYV2?=H9JKk+exF+6Pji%e>HtV_3VyHOK(+~N>8Yt-Px+? z6Y6JecrCp>Jy+=oqbKhIiYnLA+dZF3PiVij^tJTX+*avH!iiUwDeX<4Gv&c>{r|?*V~N5e=x)S^vfP%E9_UshX`_J6t%}n%$e- zsbyew#gpwGMoDdb6&jg!Q^>Yy3Rxb%la?uDdDuISOrcX!$0z2PC~4#C72lzDt|(dC z$U22={Zbm46Imh4~W2rL8_l0B_bOw%- z&OjZdGRRl4V~ennacT~J>l6+LcVt!v@6Z91?LD-xhmX z8IwoS*qiIn@ukR%3ke*F@*&S}CghP=QyX!ux7Nl?s~j1-eTv~oYHdcIu8VDpd6po7 zBdI^kr$^%Run~WHTWl;(3`dfTnJ>x2)+3v&U+lW2)+3uZE?IjYAtsL`O_;SNlb(m& z9>;Jb$%lDuFuuoZ#E)7^+D7lka3o1k+D72(dDs~H7>=aYnkPkKTk8j&#*~sY_szo@ zv880><+lWmB>6B8geByWSX1lY(J%FI@zAd2upJti!>*BKsx>lRT+HZsOT44DSI&FS z`r?&5`Q`(UTbA5f#eAVpE+_Hs4_?uwiqnFL?M70ivyCb}A%E-O)6(1XD3#7((&#q! zOr^7zReD1H^7f<%l9t}apQ&`JWtE=LzlDVUwIOO+{&s26=(OQAvYi7e-QMw584~(G zozy`8Zk<{}QpCP*7^wmAtfNLJSqX#ZELW)PUnLfu!lzK}wnQT{>{26BNor&YmO{3h z6^+bRYh+5jMyAkfn$nisBg9EhG@x5k!j#}#YUbD8Y zmYPDYk>h*KZpF0J@p5jRl}c*6i_^&QqG%T&Ep@yo+TEX)I-y(QJJp_WD4E++VvQVM zwzYp_E}*dEVmMg;7!HnX42Rt^C|6ZbguH@=hsj%`C&&CJz1=>(H-PYDeEP-v%(VS# ztGx!M-n`&!Q0aD`qBBr3bOtIKmBA_tmBBh~RR)fbO1J)4oq^_y&cIeGG3=Bvg=%+U z8aW|#e9=~bmCS9^HFA9B)~?Y~b7(bke8cRxE2-@&ppoNiZoO|>YRbJvj&GPfmeNvl zdDF;L1`0X8XuAj~iEVJXMo!2)e!#2;Ps!W{W@zO20h3S8$PPkFO&zO|6Z(|%TS;vl zj~Y3?Z2KCBmO8#_*88udwthtA{tGpqLS?;``!DfSyB;aGV~}`b*p-Lmo%%Mu%C~vi zl@C+MiWK{SK)VrCV*J@2h02~(sCFNqkty5?*;?`%nc}ICtuE8Z@$ItuL`xmtZfp1{ zsjX$Fk>eX?9S2Hkc@kGASSG$h7>eQKHgWKjpRzXNyAR(ydTAFxqVt zX04Gq88ouBUA56iArZnRl04c&cGRs0M#?Jjh9+zcTO`p(y zYcQ$lIez+m6t8@hPNk&Mlk#W#)bv&X=nU*Zogt};b_v&Wpb+W|oTVy*^|`1Fb{^{t z6f~V7sUNH#Tg}1hBAp?r2pa;WUC&`RX=H25sC4#$N@x94Iwy-tPpF?=47BvN1GNh{ z6hw{8siKiNQ#7)*FH}0$VU^C#Q|Sq{w^!}e^z2-fp3pvPNNefs6jSL5?YDvVYI+Kf zN>3O*JHyrV3GKIm_gZ@E998L@JSv^zuiO}7?)x)-?&RiIhMOB3r5k&@KD{}MW9qHNdgiD-e|l$a@y1TM zGPAKA;JC82P{C2@aVmA==HAS7W`Iv};7OF}YokoA-kCnWRx2$R%eBf;?`CCqy4EWc z19@x?2D3-|`2*)#b@pH#@4{R@$W5;tk8&86D+hZk_{P#o=em38@?hb1dTr*UTnprJ z$91b6_as#)*9NQ2rRCY-!Ju9WFkD{1n_dxb?-S}OS@efVtw$j=h66-d;)_h# ztZYpu=N8w#UbBq6z7azf|G5+0@Mb(aobq zwtl&WukQF2SiOC%Q!H1mU*DXcuhcSo3)@%jEM5vQ+`yx4*=BFc9h7UETl32crE=x8 zgwIs_SsY%fF3)eT)Mlsqi%Vd>ax>Lh4T{HhfBV##sT?`8C-ZZ2S8wCnKZjQW88mNf zWbdF3{o-0-tGVyAayPc8ZwKmdb#LWz@5JQI zHh;6YpW5844a>EyKsRIxYt!zbbGzs6;7OA0^jvEHdbySgRC2Ri*<8O-$zL8^#<%<$ zcWQIlVtp-;#l}u$`l`F<)Ydn03rDv%=PO8pM`rO^L)VqZ`t65-vMCAHG@qcW;QP@d zLNP6eRfb!>df(r7q5MY4GIE`w(W|tbHTkff%`StlQyOWiwAL%lzO#Uj5sj#jTj*(g z^AFDv_Ihp)Uxvfi@NC*#PPFU*g;nZ{fwJ&nBG}ipVXuczhC1Cr)5Yi8{X{AGya=+C zN>=KZ0A|S6iztO(mb309ZMZ1sBA3BxxW~;x^atDFh8{&9;cTsGK z2r>EULF?$N<%`6syaYJn1Sh~2EkOYWGg^u$1=!+bD!>*kTmgm{DGP8-E^dKD333E#2-l5iU4VG`W<7aPGA*!=u%p+PNFk$4P&*j?6l9QR?OPrnbc>vpkloj*QXnc z9cNIWVhO#%E*s<^TQrx%l3K26(CMAd^&I@SQ#-u`M%%wopK@=chwqAq z*;XRi(9G%1>2$r0PU}ncgE{pooxX(8^mp(z@irEUp}C1WN-zOGn%-!(98VOk^Fw-4 zN~6*rV0nQa?eBP(VMKAuEji&|>_Bof_NEZQotFis?X>46O^^{&uhy>5y2B0x1pit> P)GCDQa_49Y|M$NEtXUEP literal 0 HcmV?d00001 diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..25c9fb4 --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module sds-bindings + +go 1.22.5 diff --git a/reliability.nimble b/reliability.nimble index 8c60032..170f644 100644 --- a/reliability.nimble +++ b/reliability.nimble @@ -9,7 +9,6 @@ srcDir = "src" requires "nim >= 2.0.8" requires "chronicles" requires "libp2p" -requires "genny >= 0.1.0" # Tasks task test, "Run the test suite": diff --git a/sds_wrapper.go b/sds_wrapper.go new file mode 100644 index 0000000..69204c4 --- /dev/null +++ b/sds_wrapper.go @@ -0,0 +1,307 @@ +package main + +/* +#cgo CFLAGS: -I${SRCDIR}/bindings +#cgo LDFLAGS: -L${SRCDIR}/bindings/generated -lbindings +#cgo LDFLAGS: -Wl,-rpath,${SRCDIR}/bindings/generated + +#include // For C.free +#include "bindings/bindings.h" // Update include path + +// Forward declarations for Go callback functions exported to C +// These are the functions Nim will eventually call via the pointers we give it. +extern void goMessageReadyCallback(char* messageID); +extern void goMessageSentCallback(char* messageID); +extern void goMissingDependenciesCallback(char* messageID, char** missingDeps, size_t missingDepsCount); +extern void goPeriodicSyncCallback(); + +// Helper function to call the C memory freeing functions +static void callFreeCResultError(CResult res) { FreeCResultError(res); } +static void callFreeCWrapResult(CWrapResult res) { FreeCWrapResult(res); } +static void callFreeCUnwrapResult(CUnwrapResult res) { FreeCUnwrapResult(res); } + +*/ +import "C" +import ( + "errors" + "fmt" + "sync" + "unsafe" +) + +// --- Go Types --- + +// ReliabilityManagerHandle represents the opaque handle to the Nim object +type ReliabilityManagerHandle unsafe.Pointer + +// MessageID is a type alias for string for clarity +type MessageID string + +// Callbacks holds the Go functions to be called by the Nim library +type Callbacks struct { + OnMessageReady func(messageId MessageID) + OnMessageSent func(messageId MessageID) + OnMissingDependencies func(messageId MessageID, missingDeps []MessageID) + OnPeriodicSync func() +} + +// Global map to store callbacks associated with handles (necessary due to cgo limitations) +var ( + callbackRegistry = make(map[ReliabilityManagerHandle]*Callbacks) + registryMutex sync.RWMutex +) + +// --- Go Wrapper Functions --- + +// NewReliabilityManager creates a new instance of the Nim ReliabilityManager +func NewReliabilityManager(channelId string) (ReliabilityManagerHandle, error) { + cChannelId := C.CString(channelId) + defer C.free(unsafe.Pointer(cChannelId)) + + handle := C.NewReliabilityManager(cChannelId) + if handle == nil { + // Note: Nim side currently just prints to stdout on creation failure + return nil, errors.New("failed to create ReliabilityManager (check Nim logs/stdout)") + } + return ReliabilityManagerHandle(handle), nil +} + +// CleanupReliabilityManager frees the resources associated with the handle +func CleanupReliabilityManager(handle ReliabilityManagerHandle) { + if handle == nil { + return + } + registryMutex.Lock() + delete(callbackRegistry, handle) + registryMutex.Unlock() + C.CleanupReliabilityManager(unsafe.Pointer(handle)) +} + +// ResetReliabilityManager resets the state of the manager +func ResetReliabilityManager(handle ReliabilityManagerHandle) error { + if handle == nil { + return errors.New("handle is nil") + } + cResult := C.ResetReliabilityManager(unsafe.Pointer(handle)) + if !cResult.is_ok { + errMsg := C.GoString(cResult.error_message) + C.callFreeCResultError(cResult) // Free the error message + return errors.New(errMsg) + } + return nil +} + +// WrapOutgoingMessage wraps a message with reliability metadata +func WrapOutgoingMessage(handle ReliabilityManagerHandle, message []byte, messageId MessageID) ([]byte, error) { + if handle == nil { + return nil, errors.New("handle is nil") + } + cMessageId := C.CString(string(messageId)) + defer C.free(unsafe.Pointer(cMessageId)) + + var cMessagePtr unsafe.Pointer + if len(message) > 0 { + cMessagePtr = C.CBytes(message) // C.CBytes allocates memory that needs to be freed + defer C.free(cMessagePtr) + } else { + cMessagePtr = nil + } + cMessageLen := C.size_t(len(message)) + + cWrapResult := C.WrapOutgoingMessage(unsafe.Pointer(handle), cMessagePtr, cMessageLen, cMessageId) + + if !cWrapResult.base_result.is_ok { + errMsg := C.GoString(cWrapResult.base_result.error_message) + C.callFreeCWrapResult(cWrapResult) // Free error and potentially allocated message + return nil, errors.New(errMsg) + } + + // Copy the wrapped message from C memory to Go slice + // Explicitly cast the message pointer to unsafe.Pointer + wrappedMessage := C.GoBytes(unsafe.Pointer(cWrapResult.message), C.int(cWrapResult.message_len)) + C.callFreeCWrapResult(cWrapResult) // Free the C-allocated message buffer + + return wrappedMessage, nil +} + +// UnwrapReceivedMessage unwraps a received message +func UnwrapReceivedMessage(handle ReliabilityManagerHandle, message []byte) ([]byte, []MessageID, error) { + if handle == nil { + return nil, nil, errors.New("handle is nil") + } + + var cMessagePtr unsafe.Pointer + if len(message) > 0 { + cMessagePtr = C.CBytes(message) + defer C.free(cMessagePtr) + } else { + cMessagePtr = nil + } + cMessageLen := C.size_t(len(message)) + + cUnwrapResult := C.UnwrapReceivedMessage(unsafe.Pointer(handle), cMessagePtr, cMessageLen) + + if !cUnwrapResult.base_result.is_ok { + errMsg := C.GoString(cUnwrapResult.base_result.error_message) + C.callFreeCUnwrapResult(cUnwrapResult) // Free error and potentially allocated fields + return nil, nil, errors.New(errMsg) + } + + // Copy unwrapped message content + // Explicitly cast the message pointer to unsafe.Pointer + unwrappedContent := C.GoBytes(unsafe.Pointer(cUnwrapResult.message), C.int(cUnwrapResult.message_len)) + + // Copy missing dependencies + missingDeps := make([]MessageID, cUnwrapResult.missing_deps_count) + if cUnwrapResult.missing_deps_count > 0 { + // Convert C array of C strings to Go slice of strings + cDepsArray := (*[1 << 30]*C.char)(unsafe.Pointer(cUnwrapResult.missing_deps))[:cUnwrapResult.missing_deps_count:cUnwrapResult.missing_deps_count] + for i, s := range cDepsArray { + missingDeps[i] = MessageID(C.GoString(s)) + } + } + + C.callFreeCUnwrapResult(cUnwrapResult) // Free C-allocated message, deps array, and strings + + return unwrappedContent, missingDeps, nil +} + +// MarkDependenciesMet informs the library that dependencies are met +func MarkDependenciesMet(handle ReliabilityManagerHandle, messageIDs []MessageID) error { + if handle == nil { + return errors.New("handle is nil") + } + if len(messageIDs) == 0 { + return nil // Nothing to do + } + + // Convert Go string slice to C array of C strings (char**) + cMessageIDs := make([]*C.char, len(messageIDs)) + for i, id := range messageIDs { + cMessageIDs[i] = C.CString(string(id)) + defer C.free(unsafe.Pointer(cMessageIDs[i])) // Ensure each CString is freed + } + + // Create a pointer (**C.char) to the first element of the slice + var cMessageIDsPtr **C.char + if len(cMessageIDs) > 0 { + cMessageIDsPtr = &cMessageIDs[0] + } else { + cMessageIDsPtr = nil // Handle empty slice case + } + + // Pass the address of the pointer variable (&cMessageIDsPtr), which is of type ***C.char + cResult := C.MarkDependenciesMet(unsafe.Pointer(handle), &cMessageIDsPtr, C.size_t(len(messageIDs))) + + if !cResult.is_ok { + errMsg := C.GoString(cResult.error_message) + C.callFreeCResultError(cResult) + return errors.New(errMsg) + } + return nil +} + +// RegisterCallbacks sets the Go callback functions +func RegisterCallbacks(handle ReliabilityManagerHandle, callbacks Callbacks) error { + if handle == nil { + return errors.New("handle is nil") + } + + registryMutex.Lock() + callbackRegistry[handle] = &callbacks + registryMutex.Unlock() + + // Pass the C relay functions to Nim + // Nim will store these function pointers. When Nim calls them, they execute the C relay, + // Pass pointers to the exported Go functions directly. + // Nim expects function pointers matching the C callback typedefs. + // Cgo makes the exported Go functions available as C function pointers. + // Cast these function pointers to unsafe.Pointer to match the void* expected by the C function. + C.RegisterCallbacks( + unsafe.Pointer(handle), + unsafe.Pointer(C.goMessageReadyCallback), + unsafe.Pointer(C.goMessageSentCallback), + unsafe.Pointer(C.goMissingDependenciesCallback), + unsafe.Pointer(C.goPeriodicSyncCallback), + unsafe.Pointer(handle), // Pass handle as user_data + ) + return nil +} + +// StartPeriodicTasks starts the background tasks in the Nim library +func StartPeriodicTasks(handle ReliabilityManagerHandle) error { + if handle == nil { + return errors.New("handle is nil") + } + C.StartPeriodicTasks(unsafe.Pointer(handle)) + // Assuming StartPeriodicTasks doesn't return an error status in C API + return nil +} + +// --- Go Callback Implementations (Exported to C) --- + +func goMessageReadyCallback(messageID *C.char) { + msgIdStr := C.GoString(messageID) + registryMutex.RLock() + defer registryMutex.RUnlock() + + // Find the correct Go callback based on handle (this is tricky without handle passed) + // For now, iterate through all registered callbacks. This is NOT ideal for multiple managers. + // A better approach would involve passing the handle back through user_data if possible, + // or maintaining a single global callback handler if only one manager instance is expected. + // Let's assume a single instance for simplicity for now. + for _, callbacks := range callbackRegistry { + if callbacks != nil && callbacks.OnMessageReady != nil { + // Run in a goroutine to avoid blocking the C thread + go callbacks.OnMessageReady(MessageID(msgIdStr)) + } + } + fmt.Printf("Go: Message Ready: %s\n", msgIdStr) // Debug print +} + +func goMessageSentCallback(messageID *C.char) { + msgIdStr := C.GoString(messageID) + registryMutex.RLock() + defer registryMutex.RUnlock() + + for _, callbacks := range callbackRegistry { + if callbacks != nil && callbacks.OnMessageSent != nil { + go callbacks.OnMessageSent(MessageID(msgIdStr)) + } + } + fmt.Printf("Go: Message Sent: %s\n", msgIdStr) // Debug print +} + +func goMissingDependenciesCallback(messageID *C.char, missingDeps **C.char, missingDepsCount C.size_t) { + msgIdStr := C.GoString(messageID) + deps := make([]MessageID, missingDepsCount) + if missingDepsCount > 0 { + // Convert C array of C strings to Go slice + cDepsArray := (*[1 << 30]*C.char)(unsafe.Pointer(missingDeps))[:missingDepsCount:missingDepsCount] + for i, s := range cDepsArray { + deps[i] = MessageID(C.GoString(s)) + } + } + + registryMutex.RLock() + defer registryMutex.RUnlock() + + for _, callbacks := range callbackRegistry { + if callbacks != nil && callbacks.OnMissingDependencies != nil { + go callbacks.OnMissingDependencies(MessageID(msgIdStr), deps) + } + } + fmt.Printf("Go: Missing Deps for %s: %v\n", msgIdStr, deps) // Debug print +} + +func goPeriodicSyncCallback() { + registryMutex.RLock() + defer registryMutex.RUnlock() + + for _, callbacks := range callbackRegistry { + if callbacks != nil && callbacks.OnPeriodicSync != nil { + go callbacks.OnPeriodicSync() + } + } + fmt.Println("Go: Periodic Sync Requested") // Debug print +} diff --git a/sds_wrapper_test.go b/sds_wrapper_test.go new file mode 100644 index 0000000..4ef5edf --- /dev/null +++ b/sds_wrapper_test.go @@ -0,0 +1,262 @@ +package main +import ( + // "fmt" + // "sync" + "testing" + // "time" +) + +// Test basic creation, cleanup, and reset +func TestLifecycle(t *testing.T) { + channelID := "test-lifecycle" + handle, err := NewReliabilityManager(channelID) + if err != nil { + t.Fatalf("NewReliabilityManager failed: %v", err) + } + if handle == nil { + t.Fatal("NewReliabilityManager returned a nil handle") + } + defer CleanupReliabilityManager(handle) // Ensure cleanup even on test failure + + err = ResetReliabilityManager(handle) + if err != nil { + t.Errorf("ResetReliabilityManager failed: %v", err) + } +} + +// Test wrapping and unwrapping a simple message +func TestWrapUnwrap(t *testing.T) { + channelID := "test-wrap-unwrap" + handle, err := NewReliabilityManager(channelID) + if err != nil { + t.Fatalf("NewReliabilityManager failed: %v", err) + } + defer CleanupReliabilityManager(handle) + + originalPayload := []byte("hello reliability") + messageID := MessageID("msg-wrap-1") + + wrappedMsg, err := WrapOutgoingMessage(handle, originalPayload, messageID) + if err != nil { + t.Fatalf("WrapOutgoingMessage failed: %v", err) + } + if len(wrappedMsg) == 0 { + t.Fatal("WrapOutgoingMessage returned empty bytes") + } + + // Simulate receiving the wrapped message + unwrappedPayload, missingDeps, err := UnwrapReceivedMessage(handle, wrappedMsg) + if err != nil { + t.Fatalf("UnwrapReceivedMessage failed: %v", err) + } + + if string(unwrappedPayload) != string(originalPayload) { + t.Errorf("Unwrapped payload mismatch: got %q, want %q", unwrappedPayload, originalPayload) + } + if len(missingDeps) != 0 { + t.Errorf("Expected 0 missing dependencies, got %d: %v", len(missingDeps), missingDeps) + } +} + +// // Test dependency handling +// func TestDependencies(t *testing.T) { +// channelID := "test-deps" +// handle, err := NewReliabilityManager(channelID) +// if err != nil { +// t.Fatalf("NewReliabilityManager failed: %v", err) +// } +// defer CleanupReliabilityManager(handle) + +// // 1. Send message 1 (will become a dependency) +// payload1 := []byte("message one") +// msgID1 := MessageID("msg-dep-1") +// wrappedMsg1, err := WrapOutgoingMessage(handle, payload1, msgID1) +// if err != nil { +// t.Fatalf("WrapOutgoingMessage (1) failed: %v", err) +// } +// // Simulate receiving msg1 to add it to history (implicitly acknowledges it) +// _, _, err = UnwrapReceivedMessage(handle, wrappedMsg1) +// if err != nil { +// t.Fatalf("UnwrapReceivedMessage (1) failed: %v", err) +// } + +// // 2. Send message 2 (depends on message 1 implicitly via causal history) +// payload2 := []byte("message two") +// msgID2 := MessageID("msg-dep-2") +// wrappedMsg2, err := WrapOutgoingMessage(handle, payload2, msgID2) +// if err != nil { +// t.Fatalf("WrapOutgoingMessage (2) failed: %v", err) +// } + +// // 3. Create a new manager to simulate a different peer receiving msg2 without msg1 +// handle2, err := NewReliabilityManager(channelID) // Same channel ID +// if err != nil { +// t.Fatalf("NewReliabilityManager (2) failed: %v", err) +// } +// defer CleanupReliabilityManager(handle2) + +// // 4. Unwrap message 2 on the second manager - should report msg1 as missing +// _, missingDeps, err := UnwrapReceivedMessage(handle2, wrappedMsg2) +// if err != nil { +// t.Fatalf("UnwrapReceivedMessage (2) on handle2 failed: %v", err) +// } + +// if len(missingDeps) == 0 { +// t.Fatalf("Expected missing dependencies, got none") +// } +// foundDep1 := false +// for _, dep := range missingDeps { +// if dep == msgID1 { +// foundDep1 = true +// break +// } +// } +// if !foundDep1 { +// t.Errorf("Expected missing dependency %q, got %v", msgID1, missingDeps) +// } + +// // 5. Mark the dependency as met +// err = MarkDependenciesMet(handle2, []MessageID{msgID1}) +// if err != nil { +// t.Fatalf("MarkDependenciesMet failed: %v", err) +// } + +// // Ideally, we'd check if the message is now moved from an internal buffer, +// // but the current API doesn't expose buffer state. We rely on callbacks for this. +// } + +// // Test callbacks +// func TestCallbacks(t *testing.T) { +// channelID := "test-callbacks" +// handle, err := NewReliabilityManager(channelID) +// if err != nil { +// t.Fatalf("NewReliabilityManager failed: %v", err) +// } +// defer CleanupReliabilityManager(handle) + +// var wg sync.WaitGroup +// receivedReady := make(map[MessageID]bool) +// receivedSent := make(map[MessageID]bool) +// receivedMissing := make(map[MessageID][]MessageID) +// syncRequested := false +// var cbMutex sync.Mutex // Protect access to callback tracking maps/vars + +// callbacks := Callbacks{ +// OnMessageReady: func(messageId MessageID) { +// fmt.Printf("Test: OnMessageReady received: %s\n", messageId) +// cbMutex.Lock() +// receivedReady[messageId] = true +// cbMutex.Unlock() +// wg.Done() +// }, +// OnMessageSent: func(messageId MessageID) { +// fmt.Printf("Test: OnMessageSent received: %s\n", messageId) +// cbMutex.Lock() +// receivedSent[messageId] = true +// cbMutex.Unlock() +// wg.Done() +// }, +// OnMissingDependencies: func(messageId MessageID, missingDeps []MessageID) { +// fmt.Printf("Test: OnMissingDependencies received for %s: %v\n", messageId, missingDeps) +// cbMutex.Lock() +// receivedMissing[messageId] = missingDeps +// cbMutex.Unlock() +// wg.Done() +// }, +// OnPeriodicSync: func() { +// fmt.Println("Test: OnPeriodicSync received") +// cbMutex.Lock() +// syncRequested = true +// cbMutex.Unlock() +// // Don't wg.Done() here, it might be called multiple times +// }, +// } + +// err = RegisterCallbacks(handle, callbacks) +// if err != nil { +// t.Fatalf("RegisterCallbacks failed: %v", err) +// } + +// // Start tasks AFTER registering callbacks +// err = StartPeriodicTasks(handle) +// if err != nil { +// t.Fatalf("StartPeriodicTasks failed: %v", err) +// } + +// // --- Test Scenario --- + +// // 1. Send msg1 +// wg.Add(1) // Expect OnMessageSent for msg1 eventually +// payload1 := []byte("callback test 1") +// msgID1 := MessageID("cb-msg-1") +// wrappedMsg1, err := WrapOutgoingMessage(handle, payload1, msgID1) +// if err != nil { +// t.Fatalf("WrapOutgoingMessage (1) failed: %v", err) +// } + +// // 2. Receive msg1 (triggers OnMessageReady for msg1, OnMessageSent for msg1 via causal history) +// wg.Add(1) // Expect OnMessageReady for msg1 +// _, _, err = UnwrapReceivedMessage(handle, wrappedMsg1) +// if err != nil { +// t.Fatalf("UnwrapReceivedMessage (1) failed: %v", err) +// } + +// // 3. Send msg2 (depends on msg1) +// wg.Add(1) // Expect OnMessageSent for msg2 eventually +// payload2 := []byte("callback test 2") +// msgID2 := MessageID("cb-msg-2") +// wrappedMsg2, err := WrapOutgoingMessage(handle, payload2, msgID2) +// if err != nil { +// t.Fatalf("WrapOutgoingMessage (2) failed: %v", err) +// } + +// // 4. Receive msg2 (triggers OnMessageReady for msg2, OnMessageSent for msg2) +// wg.Add(1) // Expect OnMessageReady for msg2 +// _, _, err = UnwrapReceivedMessage(handle, wrappedMsg2) +// if err != nil { +// t.Fatalf("UnwrapReceivedMessage (2) failed: %v", err) +// } + +// // --- Verification --- +// // Wait for expected callbacks with a timeout +// waitTimeout(&wg, 5*time.Second, t) + +// cbMutex.Lock() +// defer cbMutex.Unlock() + +// if !receivedReady[msgID1] { +// t.Errorf("OnMessageReady not called for %s", msgID1) +// } +// if !receivedReady[msgID2] { +// t.Errorf("OnMessageReady not called for %s", msgID2) +// } +// if !receivedSent[msgID1] { +// t.Errorf("OnMessageSent not called for %s", msgID1) +// } +// if !receivedSent[msgID2] { +// t.Errorf("OnMessageSent not called for %s", msgID2) +// } +// // We didn't explicitly test missing deps in this path +// if len(receivedMissing) > 0 { +// t.Errorf("Unexpected OnMissingDependencies calls: %v", receivedMissing) +// } +// // Periodic sync is harder to guarantee in a short test, just check if it was ever true +// if !syncRequested { +// t.Logf("Warning: OnPeriodicSync might not have been called within the test timeout") +// } +// } + +// // Helper function to wait for WaitGroup with a timeout +// func waitTimeout(wg *sync.WaitGroup, timeout time.Duration, t *testing.T) { +// c := make(chan struct{}) +// go func() { +// defer close(c) +// wg.Wait() +// }() +// select { +// case <-c: +// // Completed normally +// case <-time.After(timeout): +// t.Fatalf("Timed out waiting for callbacks") +// } +// } diff --git a/src/reliability_utils.nim b/src/reliability_utils.nim index 28b63f2..02daf3b 100644 --- a/src/reliability_utils.nim +++ b/src/reliability_utils.nim @@ -24,11 +24,19 @@ type channelId*: string config*: ReliabilityConfig lock*: Lock + # Nim callbacks (used internally or if not using C bindings) onMessageReady*: proc(messageId: MessageID) {.gcsafe.} onMessageSent*: proc(messageId: MessageID) {.gcsafe.} onMissingDependencies*: proc(messageId: MessageID, missingDeps: seq[MessageID]) {.gcsafe.} onPeriodicSync*: PeriodicSyncCallback + # C callback pointers and user data (for FFI) + cMessageReadyCallback*: pointer + cMessageSentCallback*: pointer + cMissingDependenciesCallback*: pointer + cPeriodicSyncCallback*: pointer + cUserData*: pointer + ReliabilityError* = enum reInvalidArgument reOutOfMemory @@ -92,4 +100,4 @@ proc getOutgoingBuffer*(rm: ReliabilityManager): seq[UnacknowledgedMessage] = proc getIncomingBuffer*(rm: ReliabilityManager): seq[Message] = withLock rm.lock: - result = rm.incomingBuffer \ No newline at end of file + result = rm.incomingBuffer