From 78623390b224059694b9bfaf3dd757945bc4af50 Mon Sep 17 00:00:00 2001 From: yuanyuanxiang <962914132@qq.com> Date: Thu, 17 Jan 2019 20:41:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=BF=9C=E7=A8=8B=E6=A1=8C?= =?UTF-8?q?=E9=9D=A2=E8=B7=9F=E8=B8=AA=E9=BC=A0=E6=A0=87=E4=B8=8D=E5=87=86?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加比zstd更快的压缩库lz4。 --- .gitignore | 1 + ReadMe.txt | 6 + client/IOCPClient.cpp | 11 + client/ScreenManager.cpp | 7 +- client/ScreenManager.h | 2 +- client/ScreenSpy.cpp | 34 +- client/ScreenSpy.h | 30 +- client/StdAfx.h | 6 + client/lz4/lz4.h | 631 +++++++++++++++++++ client/lz4/lz4.lib | Bin 0 -> 314172 bytes server/2015Remote/2015Remote.rc | Bin 48152 -> 48874 bytes server/2015Remote/2015Remote.vcxproj | 6 + server/2015Remote/2015Remote.vcxproj.filters | 18 + server/2015Remote/Buffer.cpp | 6 +- server/2015Remote/Buffer.h | 6 +- server/2015Remote/IOCPServer.cpp | 11 + server/2015Remote/ScreenSpyDlg.cpp | 12 +- server/2015Remote/ScreenSpyDlg.h | 1 + server/2015Remote/lz4/lz4.h | 631 +++++++++++++++++++ server/2015Remote/lz4/lz4.lib | Bin 0 -> 314172 bytes server/2015Remote/res/arrow.cur | Bin 0 -> 326 bytes server/2015Remote/resource.h | Bin 19872 -> 25074 bytes server/2015Remote/stdafx.h | 6 + 23 files changed, 1378 insertions(+), 47 deletions(-) create mode 100644 client/lz4/lz4.h create mode 100644 client/lz4/lz4.lib create mode 100644 server/2015Remote/lz4/lz4.h create mode 100644 server/2015Remote/lz4/lz4.lib create mode 100644 server/2015Remote/res/arrow.cur diff --git a/.gitignore b/.gitignore index 350f6ff..81ebdfa 100644 --- a/.gitignore +++ b/.gitignore @@ -66,3 +66,4 @@ server/2015Remote/2015Remote.aps *.suo server/2015Remote.VC.db server/2015Remote.opensdf +*.7z diff --git a/ReadMe.txt b/ReadMe.txt index 2cc97e5..ee1bfc4 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -95,3 +95,9 @@ 2、采用由Facebook所开发的速度更快的压缩库zstd,提高程序运行效率。 参看:https://github.com/facebook/zstd +2019.1.17 + +1、添加比zstd更快的压缩库(压缩率不如zstd和zlib)lz4 1.8.3,参看 + https://github.com/lz4/lz4 + +2、修复被控端屏幕被缩放显示时远程桌面跟踪鼠标的位置不准的问题。 diff --git a/client/IOCPClient.cpp b/client/IOCPClient.cpp index b2e4ea4..abaeaa2 100644 --- a/client/IOCPClient.cpp +++ b/client/IOCPClient.cpp @@ -10,6 +10,14 @@ #define Z_FAILED(p) (Z_OK != (p)) #define Z_SUCCESS(p) (!Z_FAILED(p)) #else +#if USING_LZ4 +#include "lz4/lz4.h" +#pragma comment(lib, "lz4/lz4.lib") +#define Z_FAILED(p) (0 == (p)) +#define Z_SUCCESS(p) (!Z_FAILED(p)) +#define compress(dest, destLen, source, sourceLen) LZ4_compress_default((const char*)source, (char*)dest, sourceLen, *(destLen)) +#define uncompress(dest, destLen, source, sourceLen) LZ4_decompress_safe((const char*)source, (char*)dest, sourceLen, *(destLen)) +#else #include "zstd/zstd.h" #pragma comment(lib, "zstd/zstd.lib") #define Z_FAILED(p) ZSTD_isError(p) @@ -17,6 +25,7 @@ #define compress(dest, destLen, source, sourceLen) ZSTD_compress(dest, *(destLen), source, sourceLen, ZSTD_CLEVEL_DEFAULT) #define uncompress(dest, destLen, source, sourceLen) ZSTD_decompress(dest, *(destLen), source, sourceLen) #endif +#endif #include #include "Manager.h" @@ -269,6 +278,8 @@ int IOCPClient::OnServerSending(const char* szBuffer, ULONG ulOriginalLength) / //destLen = 448 #if USING_ZLIB unsigned long ulCompressedLength = (double)ulOriginalLength * 1.001 + 12; +#elif USING_LZ4 + unsigned long ulCompressedLength = LZ4_compressBound(ulOriginalLength); #else unsigned long ulCompressedLength = ZSTD_compressBound(ulOriginalLength); #endif diff --git a/client/ScreenManager.cpp b/client/ScreenManager.cpp index 4e985a5..50562b3 100644 --- a/client/ScreenManager.cpp +++ b/client/ScreenManager.cpp @@ -36,7 +36,7 @@ DWORD WINAPI CScreenManager::WorkThreadProc(LPVOID lParam) { CScreenManager *This = (CScreenManager *)lParam; - This->SendBitMapInfor(); //bmpλͼṹ + This->SendBitMapInfo(); //bmpλͼṹ // ȿƶ˶Ի This->WaitForDialogOpen(); @@ -45,6 +45,7 @@ DWORD WINAPI CScreenManager::WorkThreadProc(LPVOID lParam) This->SendFirstScreen(); const int fps = 12;// ֡ const int sleep = 1000 / fps;// ʱ䣨ms + timeBeginPeriod(1); while (This->m_bIsWorking) { ULONG ulNextSendLength = 0; @@ -61,13 +62,13 @@ DWORD WINAPI CScreenManager::WorkThreadProc(LPVOID lParam) szBuffer = NULL; } } - + timeEndPeriod(1); cout<<"ScreenWorkThread Exit\n"; return 0; } -VOID CScreenManager::SendBitMapInfor() +VOID CScreenManager::SendBitMapInfo() { //õbmpṹĴС ULONG ulLength = 1 + m_ScreenSpyObject->GetBISize(); diff --git a/client/ScreenManager.h b/client/ScreenManager.h index 5759e64..320e07f 100644 --- a/client/ScreenManager.h +++ b/client/ScreenManager.h @@ -22,7 +22,7 @@ public: HANDLE m_hWorkThread; static DWORD WINAPI WorkThreadProc(LPVOID lParam); - VOID SendBitMapInfor(); + VOID SendBitMapInfo(); VOID OnReceive(PBYTE szBuffer, ULONG ulLength); CScreenSpy* m_ScreenSpyObject; diff --git a/client/ScreenSpy.cpp b/client/ScreenSpy.cpp index fede197..42ddd42 100644 --- a/client/ScreenSpy.cpp +++ b/client/ScreenSpy.cpp @@ -103,19 +103,6 @@ CScreenSpy::~CScreenSpy() m_RectBufferOffset = 0; } - -ULONG CScreenSpy::GetBISize() -{ - ULONG ColorNum = m_ulbiBitCount <= 8 ? 1 << m_ulbiBitCount : 0; - - return sizeof(BITMAPINFOHEADER) + (ColorNum * sizeof(RGBQUAD)); -} - -LPBITMAPINFO CScreenSpy::GetBIData() -{ - return m_BitmapInfor_Full; -} - LPBITMAPINFO CScreenSpy::ConstructBI(ULONG ulbiBitCount, ULONG ulFullWidth, ULONG ulFullHeight) { @@ -152,19 +139,9 @@ LPVOID CScreenSpy::GetFirstScreenData() return m_BitmapData_Full; //ڴ } - -ULONG CScreenSpy::GetFirstScreenLength() -{ - return m_BitmapInfor_Full->bmiHeader.biSizeImage; -} - +// 㷨+λ+ LPVOID CScreenSpy::GetNextScreenData(ULONG* ulNextSendLength) { - if (m_RectBuffer == NULL) - { - return NULL; - } - // rectָ m_RectBufferOffset = 0; @@ -174,6 +151,8 @@ LPVOID CScreenSpy::GetNextScreenData(ULONG* ulNextSendLength) // дλ POINT CursorPos; GetCursorPos(&CursorPos); + CursorPos.x /= m_wZoom; + CursorPos.y /= m_hZoom; WriteRectBuffer((LPBYTE)&CursorPos, sizeof(POINT)); // д뵱ǰ @@ -199,13 +178,6 @@ LPVOID CScreenSpy::GetNextScreenData(ULONG* ulNextSendLength) } -VOID CScreenSpy::WriteRectBuffer(LPBYTE szBuffer,ULONG ulLength) -{ - memcpy(m_RectBuffer + m_RectBufferOffset, szBuffer, ulLength); - m_RectBufferOffset += ulLength; -} - - VOID CScreenSpy::ScanScreen(HDC hdcDest, HDC hdcSour, ULONG ulWidth, ULONG ulHeight) { AUTO_TICK(70); diff --git a/client/ScreenSpy.h b/client/ScreenSpy.h index 838867d..7285bd2 100644 --- a/client/ScreenSpy.h +++ b/client/ScreenSpy.h @@ -18,8 +18,19 @@ class CScreenSpy public: CScreenSpy(ULONG ulbiBitCount); virtual ~CScreenSpy(); - ULONG GetBISize(); - LPBITMAPINFO GetBIData(); + + ULONG GetBISize() const + { + ULONG ColorNum = m_ulbiBitCount <= 8 ? 1 << m_ulbiBitCount : 0; + + return sizeof(BITMAPINFOHEADER) + (ColorNum * sizeof(RGBQUAD)); + } + + const LPBITMAPINFO& GetBIData() const + { + return m_BitmapInfor_Full; + } + ULONG m_ulbiBitCount; LPBITMAPINFO m_BitmapInfor_Full; ULONG m_ulFullWidth, m_ulFullHeight; //Ļķֱ @@ -33,12 +44,23 @@ public: PVOID m_BitmapData_Full; DWORD m_dwBitBltRop; LPVOID GetFirstScreenData(); - ULONG GetFirstScreenLength(); + + ULONG GetFirstScreenLength() const + { + return m_BitmapInfor_Full->bmiHeader.biSizeImage; + } + LPVOID GetNextScreenData(ULONG* ulNextSendLength); BYTE* m_RectBuffer; ULONG m_RectBufferOffset; BYTE m_bAlgorithm; - VOID WriteRectBuffer(LPBYTE szBuffer,ULONG ulLength); + + FORCEINLINE VOID WriteRectBuffer(LPBYTE szBuffer,ULONG ulLength) + { + memcpy(m_RectBuffer + m_RectBufferOffset, szBuffer, ulLength); + m_RectBufferOffset += ulLength; + } + CCursorInfor m_CursorInfor; HDC m_hDiffMemDC; HBITMAP m_DiffBitmapHandle; diff --git a/client/StdAfx.h b/client/StdAfx.h index e5f4f72..0fd3502 100644 --- a/client/StdAfx.h +++ b/client/StdAfx.h @@ -6,8 +6,14 @@ #if !defined(AFX_STDAFX_H__46CA6496_AAD6_4658_B6E9_D7AEB26CDCD5__INCLUDED_) #define AFX_STDAFX_H__46CA6496_AAD6_4658_B6E9_D7AEB26CDCD5__INCLUDED_ +// ǷʹZLIB #define USING_ZLIB 0 +#if !USING_ZLIB +// ǷʹLZ4 +#define USING_LZ4 1 +#endif + #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 diff --git a/client/lz4/lz4.h b/client/lz4/lz4.h new file mode 100644 index 0000000..059ef7c --- /dev/null +++ b/client/lz4/lz4.h @@ -0,0 +1,631 @@ +/* + * LZ4 - Fast LZ compression algorithm + * Header File + * Copyright (C) 2011-present, Yann Collet. + + BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + You can contact the author at : + - LZ4 homepage : http://www.lz4.org + - LZ4 source repository : https://github.com/lz4/lz4 +*/ +#if defined (__cplusplus) +extern "C" { +#endif + +#ifndef LZ4_H_2983827168210 +#define LZ4_H_2983827168210 + +/* --- Dependency --- */ +#include /* size_t */ + + +/** + Introduction + + LZ4 is lossless compression algorithm, providing compression speed at 500 MB/s per core, + scalable with multi-cores CPU. It features an extremely fast decoder, with speed in + multiple GB/s per core, typically reaching RAM speed limits on multi-core systems. + + The LZ4 compression library provides in-memory compression and decompression functions. + Compression can be done in: + - a single step (described as Simple Functions) + - a single step, reusing a context (described in Advanced Functions) + - unbounded multiple steps (described as Streaming compression) + + lz4.h provides block compression functions. It gives full buffer control to user. + Decompressing an lz4-compressed block also requires metadata (such as compressed size). + Each application is free to encode such metadata in whichever way it wants. + + An additional format, called LZ4 frame specification (doc/lz4_Frame_format.md), + take care of encoding standard metadata alongside LZ4-compressed blocks. + Frame format is required for interoperability. + It is delivered through a companion API, declared in lz4frame.h. +*/ + +/*^*************************************************************** +* Export parameters +*****************************************************************/ +/* +* LZ4_DLL_EXPORT : +* Enable exporting of functions when building a Windows DLL +* LZ4LIB_VISIBILITY : +* Control library symbols visibility. +*/ +#ifndef LZ4LIB_VISIBILITY +# if defined(__GNUC__) && (__GNUC__ >= 4) +# define LZ4LIB_VISIBILITY __attribute__ ((visibility ("default"))) +# else +# define LZ4LIB_VISIBILITY +# endif +#endif +#if defined(LZ4_DLL_EXPORT) && (LZ4_DLL_EXPORT==1) +# define LZ4LIB_API __declspec(dllexport) LZ4LIB_VISIBILITY +#elif defined(LZ4_DLL_IMPORT) && (LZ4_DLL_IMPORT==1) +# define LZ4LIB_API __declspec(dllimport) LZ4LIB_VISIBILITY /* It isn't required but allows to generate better code, saving a function pointer load from the IAT and an indirect jump.*/ +#else +# define LZ4LIB_API LZ4LIB_VISIBILITY +#endif + +/*------ Version ------*/ +#define LZ4_VERSION_MAJOR 1 /* for breaking interface changes */ +#define LZ4_VERSION_MINOR 8 /* for new (non-breaking) interface capabilities */ +#define LZ4_VERSION_RELEASE 3 /* for tweaks, bug-fixes, or development */ + +#define LZ4_VERSION_NUMBER (LZ4_VERSION_MAJOR *100*100 + LZ4_VERSION_MINOR *100 + LZ4_VERSION_RELEASE) + +#define LZ4_LIB_VERSION LZ4_VERSION_MAJOR.LZ4_VERSION_MINOR.LZ4_VERSION_RELEASE +#define LZ4_QUOTE(str) #str +#define LZ4_EXPAND_AND_QUOTE(str) LZ4_QUOTE(str) +#define LZ4_VERSION_STRING LZ4_EXPAND_AND_QUOTE(LZ4_LIB_VERSION) + +LZ4LIB_API int LZ4_versionNumber (void); /**< library version number; useful to check dll version */ +LZ4LIB_API const char* LZ4_versionString (void); /**< library version string; unseful to check dll version */ + + +/*-************************************ +* Tuning parameter +**************************************/ +/*! + * LZ4_MEMORY_USAGE : + * Memory usage formula : N->2^N Bytes (examples : 10 -> 1KB; 12 -> 4KB ; 16 -> 64KB; 20 -> 1MB; etc.) + * Increasing memory usage improves compression ratio + * Reduced memory usage may improve speed, thanks to cache effect + * Default value is 14, for 16KB, which nicely fits into Intel x86 L1 cache + */ +#ifndef LZ4_MEMORY_USAGE +# define LZ4_MEMORY_USAGE 14 +#endif + +/*-************************************ +* Simple Functions +**************************************/ +/*! LZ4_compress_default() : + Compresses 'srcSize' bytes from buffer 'src' + into already allocated 'dst' buffer of size 'dstCapacity'. + Compression is guaranteed to succeed if 'dstCapacity' >= LZ4_compressBound(srcSize). + It also runs faster, so it's a recommended setting. + If the function cannot compress 'src' into a more limited 'dst' budget, + compression stops *immediately*, and the function result is zero. + Note : as a consequence, 'dst' content is not valid. + Note 2 : This function is protected against buffer overflow scenarios (never writes outside 'dst' buffer, nor read outside 'source' buffer). + srcSize : max supported value is LZ4_MAX_INPUT_SIZE. + dstCapacity : size of buffer 'dst' (which must be already allocated) + return : the number of bytes written into buffer 'dst' (necessarily <= dstCapacity) + or 0 if compression fails */ +LZ4LIB_API int LZ4_compress_default(const char* src, char* dst, int srcSize, int dstCapacity); + +/*! LZ4_decompress_safe() : + compressedSize : is the exact complete size of the compressed block. + dstCapacity : is the size of destination buffer, which must be already allocated. + return : the number of bytes decompressed into destination buffer (necessarily <= dstCapacity) + If destination buffer is not large enough, decoding will stop and output an error code (negative value). + If the source stream is detected malformed, the function will stop decoding and return a negative result. + This function is protected against malicious data packets. +*/ +LZ4LIB_API int LZ4_decompress_safe (const char* src, char* dst, int compressedSize, int dstCapacity); + + +/*-************************************ +* Advanced Functions +**************************************/ +#define LZ4_MAX_INPUT_SIZE 0x7E000000 /* 2 113 929 216 bytes */ +#define LZ4_COMPRESSBOUND(isize) ((unsigned)(isize) > (unsigned)LZ4_MAX_INPUT_SIZE ? 0 : (isize) + ((isize)/255) + 16) + +/*! +LZ4_compressBound() : + Provides the maximum size that LZ4 compression may output in a "worst case" scenario (input data not compressible) + This function is primarily useful for memory allocation purposes (destination buffer size). + Macro LZ4_COMPRESSBOUND() is also provided for compilation-time evaluation (stack memory allocation for example). + Note that LZ4_compress_default() compresses faster when dstCapacity is >= LZ4_compressBound(srcSize) + inputSize : max supported value is LZ4_MAX_INPUT_SIZE + return : maximum output size in a "worst case" scenario + or 0, if input size is incorrect (too large or negative) +*/ +LZ4LIB_API int LZ4_compressBound(int inputSize); + +/*! +LZ4_compress_fast() : + Same as LZ4_compress_default(), but allows selection of "acceleration" factor. + The larger the acceleration value, the faster the algorithm, but also the lesser the compression. + It's a trade-off. It can be fine tuned, with each successive value providing roughly +~3% to speed. + An acceleration value of "1" is the same as regular LZ4_compress_default() + Values <= 0 will be replaced by ACCELERATION_DEFAULT (currently == 1, see lz4.c). +*/ +LZ4LIB_API int LZ4_compress_fast (const char* src, char* dst, int srcSize, int dstCapacity, int acceleration); + + +/*! +LZ4_compress_fast_extState() : + Same compression function, just using an externally allocated memory space to store compression state. + Use LZ4_sizeofState() to know how much memory must be allocated, + and allocate it on 8-bytes boundaries (using malloc() typically). + Then, provide this buffer as 'void* state' to compression function. +*/ +LZ4LIB_API int LZ4_sizeofState(void); +LZ4LIB_API int LZ4_compress_fast_extState (void* state, const char* src, char* dst, int srcSize, int dstCapacity, int acceleration); + + +/*! LZ4_compress_destSize() : + * Reverse the logic : compresses as much data as possible from 'src' buffer + * into already allocated buffer 'dst', of size >= 'targetDestSize'. + * This function either compresses the entire 'src' content into 'dst' if it's large enough, + * or fill 'dst' buffer completely with as much data as possible from 'src'. + * note: acceleration parameter is fixed to "default". + * + * *srcSizePtr : will be modified to indicate how many bytes where read from 'src' to fill 'dst'. + * New value is necessarily <= input value. + * @return : Nb bytes written into 'dst' (necessarily <= targetDestSize) + * or 0 if compression fails. +*/ +LZ4LIB_API int LZ4_compress_destSize (const char* src, char* dst, int* srcSizePtr, int targetDstSize); + + +/*! LZ4_decompress_fast() : **unsafe!** + * This function used to be a bit faster than LZ4_decompress_safe(), + * though situation has changed in recent versions, + * and now `LZ4_decompress_safe()` can be as fast and sometimes faster than `LZ4_decompress_fast()`. + * Moreover, LZ4_decompress_fast() is not protected vs malformed input, as it doesn't perform full validation of compressed data. + * As a consequence, this function is no longer recommended, and may be deprecated in future versions. + * It's only remaining specificity is that it can decompress data without knowing its compressed size. + * + * originalSize : is the uncompressed size to regenerate. + * `dst` must be already allocated, its size must be >= 'originalSize' bytes. + * @return : number of bytes read from source buffer (== compressed size). + * If the source stream is detected malformed, the function stops decoding and returns a negative result. + * note : This function requires uncompressed originalSize to be known in advance. + * The function never writes past the output buffer. + * However, since it doesn't know its 'src' size, it may read past the intended input. + * Also, because match offsets are not validated during decoding, + * reads from 'src' may underflow. + * Use this function in trusted environment **only**. + */ +LZ4LIB_API int LZ4_decompress_fast (const char* src, char* dst, int originalSize); + +/*! LZ4_decompress_safe_partial() : + * Decompress an LZ4 compressed block, of size 'srcSize' at position 'src', + * into destination buffer 'dst' of size 'dstCapacity'. + * Up to 'targetOutputSize' bytes will be decoded. + * The function stops decoding on reaching this objective, + * which can boost performance when only the beginning of a block is required. + * + * @return : the number of bytes decoded in `dst` (necessarily <= dstCapacity) + * If source stream is detected malformed, function returns a negative result. + * + * Note : @return can be < targetOutputSize, if compressed block contains less data. + * + * Note 2 : this function features 2 parameters, targetOutputSize and dstCapacity, + * and expects targetOutputSize <= dstCapacity. + * It effectively stops decoding on reaching targetOutputSize, + * so dstCapacity is kind of redundant. + * This is because in a previous version of this function, + * decoding operation would not "break" a sequence in the middle. + * As a consequence, there was no guarantee that decoding would stop at exactly targetOutputSize, + * it could write more bytes, though only up to dstCapacity. + * Some "margin" used to be required for this operation to work properly. + * This is no longer necessary. + * The function nonetheless keeps its signature, in an effort to not break API. + */ +LZ4LIB_API int LZ4_decompress_safe_partial (const char* src, char* dst, int srcSize, int targetOutputSize, int dstCapacity); + + +/*-********************************************* +* Streaming Compression Functions +***********************************************/ +typedef union LZ4_stream_u LZ4_stream_t; /* incomplete type (defined later) */ + +/*! LZ4_createStream() and LZ4_freeStream() : + * LZ4_createStream() will allocate and initialize an `LZ4_stream_t` structure. + * LZ4_freeStream() releases its memory. + */ +LZ4LIB_API LZ4_stream_t* LZ4_createStream(void); +LZ4LIB_API int LZ4_freeStream (LZ4_stream_t* streamPtr); + +/*! LZ4_resetStream() : + * An LZ4_stream_t structure can be allocated once and re-used multiple times. + * Use this function to start compressing a new stream. + */ +LZ4LIB_API void LZ4_resetStream (LZ4_stream_t* streamPtr); + +/*! LZ4_loadDict() : + * Use this function to load a static dictionary into LZ4_stream_t. + * Any previous data will be forgotten, only 'dictionary' will remain in memory. + * Loading a size of 0 is allowed, and is the same as reset. + * @return : dictionary size, in bytes (necessarily <= 64 KB) + */ +LZ4LIB_API int LZ4_loadDict (LZ4_stream_t* streamPtr, const char* dictionary, int dictSize); + +/*! LZ4_compress_fast_continue() : + * Compress 'src' content using data from previously compressed blocks, for better compression ratio. + * 'dst' buffer must be already allocated. + * If dstCapacity >= LZ4_compressBound(srcSize), compression is guaranteed to succeed, and runs faster. + * + * @return : size of compressed block + * or 0 if there is an error (typically, cannot fit into 'dst'). + * + * Note 1 : Each invocation to LZ4_compress_fast_continue() generates a new block. + * Each block has precise boundaries. + * It's not possible to append blocks together and expect a single invocation of LZ4_decompress_*() to decompress them together. + * Each block must be decompressed separately, calling LZ4_decompress_*() with associated metadata. + * + * Note 2 : The previous 64KB of source data is __assumed__ to remain present, unmodified, at same address in memory! + * + * Note 3 : When input is structured as a double-buffer, each buffer can have any size, including < 64 KB. + * Make sure that buffers are separated, by at least one byte. + * This construction ensures that each block only depends on previous block. + * + * Note 4 : If input buffer is a ring-buffer, it can have any size, including < 64 KB. + * + * Note 5 : After an error, the stream status is invalid, it can only be reset or freed. + */ +LZ4LIB_API int LZ4_compress_fast_continue (LZ4_stream_t* streamPtr, const char* src, char* dst, int srcSize, int dstCapacity, int acceleration); + +/*! LZ4_saveDict() : + * If last 64KB data cannot be guaranteed to remain available at its current memory location, + * save it into a safer place (char* safeBuffer). + * This is schematically equivalent to a memcpy() followed by LZ4_loadDict(), + * but is much faster, because LZ4_saveDict() doesn't need to rebuild tables. + * @return : saved dictionary size in bytes (necessarily <= maxDictSize), or 0 if error. + */ +LZ4LIB_API int LZ4_saveDict (LZ4_stream_t* streamPtr, char* safeBuffer, int maxDictSize); + + +/*-********************************************** +* Streaming Decompression Functions +* Bufferless synchronous API +************************************************/ +typedef union LZ4_streamDecode_u LZ4_streamDecode_t; /* tracking context */ + +/*! LZ4_createStreamDecode() and LZ4_freeStreamDecode() : + * creation / destruction of streaming decompression tracking context. + * A tracking context can be re-used multiple times. + */ +LZ4LIB_API LZ4_streamDecode_t* LZ4_createStreamDecode(void); +LZ4LIB_API int LZ4_freeStreamDecode (LZ4_streamDecode_t* LZ4_stream); + +/*! LZ4_setStreamDecode() : + * An LZ4_streamDecode_t context can be allocated once and re-used multiple times. + * Use this function to start decompression of a new stream of blocks. + * A dictionary can optionally be set. Use NULL or size 0 for a reset order. + * Dictionary is presumed stable : it must remain accessible and unmodified during next decompression. + * @return : 1 if OK, 0 if error + */ +LZ4LIB_API int LZ4_setStreamDecode (LZ4_streamDecode_t* LZ4_streamDecode, const char* dictionary, int dictSize); + +/*! LZ4_decoderRingBufferSize() : v1.8.2 + * Note : in a ring buffer scenario (optional), + * blocks are presumed decompressed next to each other + * up to the moment there is not enough remaining space for next block (remainingSize < maxBlockSize), + * at which stage it resumes from beginning of ring buffer. + * When setting such a ring buffer for streaming decompression, + * provides the minimum size of this ring buffer + * to be compatible with any source respecting maxBlockSize condition. + * @return : minimum ring buffer size, + * or 0 if there is an error (invalid maxBlockSize). + */ +LZ4LIB_API int LZ4_decoderRingBufferSize(int maxBlockSize); +#define LZ4_DECODER_RING_BUFFER_SIZE(mbs) (65536 + 14 + (mbs)) /* for static allocation; mbs presumed valid */ + +/*! LZ4_decompress_*_continue() : + * These decoding functions allow decompression of consecutive blocks in "streaming" mode. + * A block is an unsplittable entity, it must be presented entirely to a decompression function. + * Decompression functions only accepts one block at a time. + * The last 64KB of previously decoded data *must* remain available and unmodified at the memory position where they were decoded. + * If less than 64KB of data has been decoded, all the data must be present. + * + * Special : if decompression side sets a ring buffer, it must respect one of the following conditions : + * - Decompression buffer size is _at least_ LZ4_decoderRingBufferSize(maxBlockSize). + * maxBlockSize is the maximum size of any single block. It can have any value > 16 bytes. + * In which case, encoding and decoding buffers do not need to be synchronized. + * Actually, data can be produced by any source compliant with LZ4 format specification, and respecting maxBlockSize. + * - Synchronized mode : + * Decompression buffer size is _exactly_ the same as compression buffer size, + * and follows exactly same update rule (block boundaries at same positions), + * and decoding function is provided with exact decompressed size of each block (exception for last block of the stream), + * _then_ decoding & encoding ring buffer can have any size, including small ones ( < 64 KB). + * - Decompression buffer is larger than encoding buffer, by a minimum of maxBlockSize more bytes. + * In which case, encoding and decoding buffers do not need to be synchronized, + * and encoding ring buffer can have any size, including small ones ( < 64 KB). + * + * Whenever these conditions are not possible, + * save the last 64KB of decoded data into a safe buffer where it can't be modified during decompression, + * then indicate where this data is saved using LZ4_setStreamDecode(), before decompressing next block. +*/ +LZ4LIB_API int LZ4_decompress_safe_continue (LZ4_streamDecode_t* LZ4_streamDecode, const char* src, char* dst, int srcSize, int dstCapacity); +LZ4LIB_API int LZ4_decompress_fast_continue (LZ4_streamDecode_t* LZ4_streamDecode, const char* src, char* dst, int originalSize); + + +/*! LZ4_decompress_*_usingDict() : + * These decoding functions work the same as + * a combination of LZ4_setStreamDecode() followed by LZ4_decompress_*_continue() + * They are stand-alone, and don't need an LZ4_streamDecode_t structure. + * Dictionary is presumed stable : it must remain accessible and unmodified during next decompression. + */ +LZ4LIB_API int LZ4_decompress_safe_usingDict (const char* src, char* dst, int srcSize, int dstCapcity, const char* dictStart, int dictSize); +LZ4LIB_API int LZ4_decompress_fast_usingDict (const char* src, char* dst, int originalSize, const char* dictStart, int dictSize); + + +/*^********************************************** + * !!!!!! STATIC LINKING ONLY !!!!!! + ***********************************************/ + +/*-************************************ + * Unstable declarations + ************************************** + * Declarations in this section should be considered unstable. + * Use at your own peril, etc., etc. + * They may be removed in the future. + * Their signatures may change. + **************************************/ + +#ifdef LZ4_STATIC_LINKING_ONLY + +/*! LZ4_resetStream_fast() : + * Use this, like LZ4_resetStream(), to prepare a context for a new chain of + * calls to a streaming API (e.g., LZ4_compress_fast_continue()). + * + * Note: + * Using this in advance of a non- streaming-compression function is redundant, + * and potentially bad for performance, since they all perform their own custom + * reset internally. + * + * Differences from LZ4_resetStream(): + * When an LZ4_stream_t is known to be in a internally coherent state, + * it can often be prepared for a new compression with almost no work, only + * sometimes falling back to the full, expensive reset that is always required + * when the stream is in an indeterminate state (i.e., the reset performed by + * LZ4_resetStream()). + * + * LZ4_streams are guaranteed to be in a valid state when: + * - returned from LZ4_createStream() + * - reset by LZ4_resetStream() + * - memset(stream, 0, sizeof(LZ4_stream_t)), though this is discouraged + * - the stream was in a valid state and was reset by LZ4_resetStream_fast() + * - the stream was in a valid state and was then used in any compression call + * that returned success + * - the stream was in an indeterminate state and was used in a compression + * call that fully reset the state (e.g., LZ4_compress_fast_extState()) and + * that returned success + * + * When a stream isn't known to be in a valid state, it is not safe to pass to + * any fastReset or streaming function. It must first be cleansed by the full + * LZ4_resetStream(). + */ +LZ4LIB_API void LZ4_resetStream_fast (LZ4_stream_t* streamPtr); + +/*! LZ4_compress_fast_extState_fastReset() : + * A variant of LZ4_compress_fast_extState(). + * + * Using this variant avoids an expensive initialization step. It is only safe + * to call if the state buffer is known to be correctly initialized already + * (see above comment on LZ4_resetStream_fast() for a definition of "correctly + * initialized"). From a high level, the difference is that this function + * initializes the provided state with a call to something like + * LZ4_resetStream_fast() while LZ4_compress_fast_extState() starts with a + * call to LZ4_resetStream(). + */ +LZ4LIB_API int LZ4_compress_fast_extState_fastReset (void* state, const char* src, char* dst, int srcSize, int dstCapacity, int acceleration); + +/*! LZ4_attach_dictionary() : + * This is an experimental API that allows for the efficient use of a + * static dictionary many times. + * + * Rather than re-loading the dictionary buffer into a working context before + * each compression, or copying a pre-loaded dictionary's LZ4_stream_t into a + * working LZ4_stream_t, this function introduces a no-copy setup mechanism, + * in which the working stream references the dictionary stream in-place. + * + * Several assumptions are made about the state of the dictionary stream. + * Currently, only streams which have been prepared by LZ4_loadDict() should + * be expected to work. + * + * Alternatively, the provided dictionary stream pointer may be NULL, in which + * case any existing dictionary stream is unset. + * + * If a dictionary is provided, it replaces any pre-existing stream history. + * The dictionary contents are the only history that can be referenced and + * logically immediately precede the data compressed in the first subsequent + * compression call. + * + * The dictionary will only remain attached to the working stream through the + * first compression call, at the end of which it is cleared. The dictionary + * stream (and source buffer) must remain in-place / accessible / unchanged + * through the completion of the first compression call on the stream. + */ +LZ4LIB_API void LZ4_attach_dictionary(LZ4_stream_t *working_stream, const LZ4_stream_t *dictionary_stream); + +#endif + +/*-************************************ + * Private definitions + ************************************** + * Do not use these definitions. + * They are exposed to allow static allocation of `LZ4_stream_t` and `LZ4_streamDecode_t`. + * Using these definitions will expose code to API and/or ABI break in future versions of the library. + **************************************/ +#define LZ4_HASHLOG (LZ4_MEMORY_USAGE-2) +#define LZ4_HASHTABLESIZE (1 << LZ4_MEMORY_USAGE) +#define LZ4_HASH_SIZE_U32 (1 << LZ4_HASHLOG) /* required as macro for static allocation */ + +#if defined(__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) +#include + +typedef struct LZ4_stream_t_internal LZ4_stream_t_internal; +struct LZ4_stream_t_internal { + uint32_t hashTable[LZ4_HASH_SIZE_U32]; + uint32_t currentOffset; + uint16_t initCheck; + uint16_t tableType; + const uint8_t* dictionary; + const LZ4_stream_t_internal* dictCtx; + uint32_t dictSize; +}; + +typedef struct { + const uint8_t* externalDict; + size_t extDictSize; + const uint8_t* prefixEnd; + size_t prefixSize; +} LZ4_streamDecode_t_internal; + +#else + +typedef struct LZ4_stream_t_internal LZ4_stream_t_internal; +struct LZ4_stream_t_internal { + unsigned int hashTable[LZ4_HASH_SIZE_U32]; + unsigned int currentOffset; + unsigned short initCheck; + unsigned short tableType; + const unsigned char* dictionary; + const LZ4_stream_t_internal* dictCtx; + unsigned int dictSize; +}; + +typedef struct { + const unsigned char* externalDict; + size_t extDictSize; + const unsigned char* prefixEnd; + size_t prefixSize; +} LZ4_streamDecode_t_internal; + +#endif + +/*! + * LZ4_stream_t : + * information structure to track an LZ4 stream. + * init this structure before first use. + * note : only use in association with static linking ! + * this definition is not API/ABI safe, + * it may change in a future version ! + */ +#define LZ4_STREAMSIZE_U64 ((1 << (LZ4_MEMORY_USAGE-3)) + 4) +#define LZ4_STREAMSIZE (LZ4_STREAMSIZE_U64 * sizeof(unsigned long long)) +union LZ4_stream_u { + unsigned long long table[LZ4_STREAMSIZE_U64]; + LZ4_stream_t_internal internal_donotuse; +} ; /* previously typedef'd to LZ4_stream_t */ + + +/*! + * LZ4_streamDecode_t : + * information structure to track an LZ4 stream during decompression. + * init this structure using LZ4_setStreamDecode (or memset()) before first use + * note : only use in association with static linking ! + * this definition is not API/ABI safe, + * and may change in a future version ! + */ +#define LZ4_STREAMDECODESIZE_U64 4 +#define LZ4_STREAMDECODESIZE (LZ4_STREAMDECODESIZE_U64 * sizeof(unsigned long long)) +union LZ4_streamDecode_u { + unsigned long long table[LZ4_STREAMDECODESIZE_U64]; + LZ4_streamDecode_t_internal internal_donotuse; +} ; /* previously typedef'd to LZ4_streamDecode_t */ + + +/*-************************************ +* Obsolete Functions +**************************************/ + +/*! Deprecation warnings + Should deprecation warnings be a problem, + it is generally possible to disable them, + typically with -Wno-deprecated-declarations for gcc + or _CRT_SECURE_NO_WARNINGS in Visual. + Otherwise, it's also possible to define LZ4_DISABLE_DEPRECATE_WARNINGS */ +#ifdef LZ4_DISABLE_DEPRECATE_WARNINGS +# define LZ4_DEPRECATED(message) /* disable deprecation warnings */ +#else +# define LZ4_GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__) +# if defined (__cplusplus) && (__cplusplus >= 201402) /* C++14 or greater */ +# define LZ4_DEPRECATED(message) [[deprecated(message)]] +# elif (LZ4_GCC_VERSION >= 405) || defined(__clang__) +# define LZ4_DEPRECATED(message) __attribute__((deprecated(message))) +# elif (LZ4_GCC_VERSION >= 301) +# define LZ4_DEPRECATED(message) __attribute__((deprecated)) +# elif defined(_MSC_VER) +# define LZ4_DEPRECATED(message) __declspec(deprecated(message)) +# else +# pragma message("WARNING: You need to implement LZ4_DEPRECATED for this compiler") +# define LZ4_DEPRECATED(message) +# endif +#endif /* LZ4_DISABLE_DEPRECATE_WARNINGS */ + +/* Obsolete compression functions */ +LZ4_DEPRECATED("use LZ4_compress_default() instead") LZ4LIB_API int LZ4_compress (const char* source, char* dest, int sourceSize); +LZ4_DEPRECATED("use LZ4_compress_default() instead") LZ4LIB_API int LZ4_compress_limitedOutput (const char* source, char* dest, int sourceSize, int maxOutputSize); +LZ4_DEPRECATED("use LZ4_compress_fast_extState() instead") LZ4LIB_API int LZ4_compress_withState (void* state, const char* source, char* dest, int inputSize); +LZ4_DEPRECATED("use LZ4_compress_fast_extState() instead") LZ4LIB_API int LZ4_compress_limitedOutput_withState (void* state, const char* source, char* dest, int inputSize, int maxOutputSize); +LZ4_DEPRECATED("use LZ4_compress_fast_continue() instead") LZ4LIB_API int LZ4_compress_continue (LZ4_stream_t* LZ4_streamPtr, const char* source, char* dest, int inputSize); +LZ4_DEPRECATED("use LZ4_compress_fast_continue() instead") LZ4LIB_API int LZ4_compress_limitedOutput_continue (LZ4_stream_t* LZ4_streamPtr, const char* source, char* dest, int inputSize, int maxOutputSize); + +/* Obsolete decompression functions */ +LZ4_DEPRECATED("use LZ4_decompress_fast() instead") LZ4LIB_API int LZ4_uncompress (const char* source, char* dest, int outputSize); +LZ4_DEPRECATED("use LZ4_decompress_safe() instead") LZ4LIB_API int LZ4_uncompress_unknownOutputSize (const char* source, char* dest, int isize, int maxOutputSize); + +/* Obsolete streaming functions; degraded functionality; do not use! + * + * In order to perform streaming compression, these functions depended on data + * that is no longer tracked in the state. They have been preserved as well as + * possible: using them will still produce a correct output. However, they don't + * actually retain any history between compression calls. The compression ratio + * achieved will therefore be no better than compressing each chunk + * independently. + */ +LZ4_DEPRECATED("Use LZ4_createStream() instead") LZ4LIB_API void* LZ4_create (char* inputBuffer); +LZ4_DEPRECATED("Use LZ4_createStream() instead") LZ4LIB_API int LZ4_sizeofStreamState(void); +LZ4_DEPRECATED("Use LZ4_resetStream() instead") LZ4LIB_API int LZ4_resetStreamState(void* state, char* inputBuffer); +LZ4_DEPRECATED("Use LZ4_saveDict() instead") LZ4LIB_API char* LZ4_slideInputBuffer (void* state); + +/* Obsolete streaming decoding functions */ +LZ4_DEPRECATED("use LZ4_decompress_safe_usingDict() instead") LZ4LIB_API int LZ4_decompress_safe_withPrefix64k (const char* src, char* dst, int compressedSize, int maxDstSize); +LZ4_DEPRECATED("use LZ4_decompress_fast_usingDict() instead") LZ4LIB_API int LZ4_decompress_fast_withPrefix64k (const char* src, char* dst, int originalSize); + +#endif /* LZ4_H_2983827168210 */ + + +#if defined (__cplusplus) +} +#endif diff --git a/client/lz4/lz4.lib b/client/lz4/lz4.lib new file mode 100644 index 0000000000000000000000000000000000000000..fd83a47f1ffc2f99b638205231a30ce31c63a6d1 GIT binary patch literal 314172 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 + + + + + @@ -113,6 +118,7 @@ + diff --git a/server/2015Remote/2015Remote.vcxproj.filters b/server/2015Remote/2015Remote.vcxproj.filters index ec3dfc6..ac72857 100644 --- a/server/2015Remote/2015Remote.vcxproj.filters +++ b/server/2015Remote/2015Remote.vcxproj.filters @@ -111,6 +111,24 @@ 资源文件 + + 资源文件 + + + 资源文件 + + + 资源文件 + + + 资源文件 + + + 资源文件 + + + 资源文件 + diff --git a/server/2015Remote/Buffer.cpp b/server/2015Remote/Buffer.cpp index 01af94b..82cbe5c 100644 --- a/server/2015Remote/Buffer.cpp +++ b/server/2015Remote/Buffer.cpp @@ -162,7 +162,7 @@ VOID CBuffer::ClearBuffer() LeaveCriticalSection(&m_cs); } -ULONG CBuffer::GetBufferLength() //Чݳ +ULONG CBuffer::GetBufferLength() const //Чݳ { if (m_Base == NULL) return 0; @@ -171,12 +171,12 @@ ULONG CBuffer::GetBufferLength() // } -ULONG CBuffer::GetBufferMaxLength() +ULONG CBuffer::GetBufferMaxLength() const { return m_ulMaxLength; } -PBYTE CBuffer::GetBuffer(ULONG ulPos) +PBYTE CBuffer::GetBuffer(ULONG ulPos) const { if (m_Base==NULL) { diff --git a/server/2015Remote/Buffer.h b/server/2015Remote/Buffer.h index ce12e4b..9efd176 100644 --- a/server/2015Remote/Buffer.h +++ b/server/2015Remote/Buffer.h @@ -7,14 +7,14 @@ public: CBuffer(void); ~CBuffer(void); - ULONG GetBufferMaxLength(); + ULONG GetBufferMaxLength() const; ULONG ReadBuffer(PBYTE Buffer, ULONG ulLength); - ULONG GetBufferLength(); //Чݳ; + ULONG GetBufferLength() const; //Чݳ; ULONG DeAllocateBuffer(ULONG ulLength); VOID ClearBuffer(); ULONG ReAllocateBuffer(ULONG ulLength); BOOL WriteBuffer(PBYTE Buffer, ULONG ulLength); - PBYTE GetBuffer(ULONG ulPos=0); + PBYTE GetBuffer(ULONG ulPos=0) const; ULONG RemoveComletedBuffer(ULONG ulLength); VOID ReleaseMember(); VOID InitMember(); diff --git a/server/2015Remote/IOCPServer.cpp b/server/2015Remote/IOCPServer.cpp index 46c53a5..ec09a52 100644 --- a/server/2015Remote/IOCPServer.cpp +++ b/server/2015Remote/IOCPServer.cpp @@ -8,6 +8,14 @@ #define Z_FAILED(p) (Z_OK != (p)) #define Z_SUCCESS(p) (!Z_FAILED(p)) #else +#if USING_LZ4 +#include "lz4/lz4.h" +#pragma comment(lib, "lz4/lz4.lib") +#define Z_FAILED(p) (0 == (p)) +#define Z_SUCCESS(p) (!Z_FAILED(p)) +#define compress(dest, destLen, source, sourceLen) LZ4_compress_default((const char*)source, (char*)dest, sourceLen, *(destLen)) +#define uncompress(dest, destLen, source, sourceLen) LZ4_decompress_safe((const char*)source, (char*)dest, sourceLen, *(destLen)) +#else #include "zstd/zstd.h" #pragma comment(lib, "zstd/zstd.lib") #define Z_FAILED(p) ZSTD_isError(p) @@ -15,6 +23,7 @@ #define compress(dest, destLen, source, sourceLen) ZSTD_compress(dest, *(destLen), source, sourceLen, ZSTD_CLEVEL_DEFAULT) #define uncompress(dest, destLen, source, sourceLen) ZSTD_decompress(dest, *(destLen), source, sourceLen) #endif +#endif using namespace std; CRITICAL_SECTION IOCPServer::m_cs = {0}; @@ -499,6 +508,8 @@ VOID IOCPServer::OnClientPreSending(CONTEXT_OBJECT* ContextObject, PBYTE szBuffe { #if USING_ZLIB unsigned long ulCompressedLength = (double)ulOriginalLength * 1.001 + 12; +#elif USING_LZ4 + unsigned long ulCompressedLength = LZ4_compressBound(ulOriginalLength); #else unsigned long ulCompressedLength = ZSTD_compressBound(ulOriginalLength); #endif diff --git a/server/2015Remote/ScreenSpyDlg.cpp b/server/2015Remote/ScreenSpyDlg.cpp index c234a67..2063688 100644 --- a/server/2015Remote/ScreenSpyDlg.cpp +++ b/server/2015Remote/ScreenSpyDlg.cpp @@ -37,7 +37,7 @@ CScreenSpyDlg::CScreenSpyDlg(CWnd* Parent, IOCPServer* IOCPServer, CONTEXT_OBJEC GetSystemDirectory(szFullPath, MAX_PATH); lstrcat(szFullPath, "\\shell32.dll"); //ͼ m_hIcon = ExtractIcon(AfxGetApp()->m_hInstance, szFullPath, 17); - m_hCursor = LoadCursor(AfxGetApp()->m_hInstance,IDC_ARROW); + m_hCursor = LoadCursor(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDC_ARROW)); sockaddr_in ClientAddr; memset(&ClientAddr, 0, sizeof(ClientAddr)); @@ -148,6 +148,7 @@ BOOL CScreenSpyDlg::OnInitDialog() m_bIsTraceCursor = FALSE; //Ǹ m_ClientCursorPos.x = 0; m_ClientCursorPos.y = 0; + m_bCursorIndex = 0; SendNext(); @@ -230,6 +231,13 @@ VOID CScreenSpyDlg::DrawNextScreenDiff(void) } // ͷ仯 + BYTE bOldCursorIndex; + memcpy(&bOldCursorIndex, &m_bCursorIndex, sizeof(BYTE)); + memcpy(&m_bCursorIndex, m_ContextObject->InDeCompressedBuffer.GetBuffer(2+sizeof(POINT)), sizeof(BYTE)); + if (bOldCursorIndex != m_bCursorIndex) + { + bChange = TRUE; + } // ĻǷ仯 if (NextScreenLength > 0) @@ -290,7 +298,7 @@ void CScreenSpyDlg::OnPaint() m_hFullDC, m_ClientCursorPos.x - m_ulHScrollPos, m_ClientCursorPos.y - m_ulVScrollPos, - m_hIcon, + m_hCursor, 0,0, 0, NULL, diff --git a/server/2015Remote/ScreenSpyDlg.h b/server/2015Remote/ScreenSpyDlg.h index fc65b71..9b4a749 100644 --- a/server/2015Remote/ScreenSpyDlg.h +++ b/server/2015Remote/ScreenSpyDlg.h @@ -31,6 +31,7 @@ public: HICON m_hIcon; HICON m_hCursor; POINT m_ClientCursorPos; + BYTE m_bCursorIndex; CString m_strClientIP; BOOL m_bIsTraceCursor; VOID CScreenSpyDlg::SendCommand(MSG* Msg); diff --git a/server/2015Remote/lz4/lz4.h b/server/2015Remote/lz4/lz4.h new file mode 100644 index 0000000..059ef7c --- /dev/null +++ b/server/2015Remote/lz4/lz4.h @@ -0,0 +1,631 @@ +/* + * LZ4 - Fast LZ compression algorithm + * Header File + * Copyright (C) 2011-present, Yann Collet. + + BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + You can contact the author at : + - LZ4 homepage : http://www.lz4.org + - LZ4 source repository : https://github.com/lz4/lz4 +*/ +#if defined (__cplusplus) +extern "C" { +#endif + +#ifndef LZ4_H_2983827168210 +#define LZ4_H_2983827168210 + +/* --- Dependency --- */ +#include /* size_t */ + + +/** + Introduction + + LZ4 is lossless compression algorithm, providing compression speed at 500 MB/s per core, + scalable with multi-cores CPU. It features an extremely fast decoder, with speed in + multiple GB/s per core, typically reaching RAM speed limits on multi-core systems. + + The LZ4 compression library provides in-memory compression and decompression functions. + Compression can be done in: + - a single step (described as Simple Functions) + - a single step, reusing a context (described in Advanced Functions) + - unbounded multiple steps (described as Streaming compression) + + lz4.h provides block compression functions. It gives full buffer control to user. + Decompressing an lz4-compressed block also requires metadata (such as compressed size). + Each application is free to encode such metadata in whichever way it wants. + + An additional format, called LZ4 frame specification (doc/lz4_Frame_format.md), + take care of encoding standard metadata alongside LZ4-compressed blocks. + Frame format is required for interoperability. + It is delivered through a companion API, declared in lz4frame.h. +*/ + +/*^*************************************************************** +* Export parameters +*****************************************************************/ +/* +* LZ4_DLL_EXPORT : +* Enable exporting of functions when building a Windows DLL +* LZ4LIB_VISIBILITY : +* Control library symbols visibility. +*/ +#ifndef LZ4LIB_VISIBILITY +# if defined(__GNUC__) && (__GNUC__ >= 4) +# define LZ4LIB_VISIBILITY __attribute__ ((visibility ("default"))) +# else +# define LZ4LIB_VISIBILITY +# endif +#endif +#if defined(LZ4_DLL_EXPORT) && (LZ4_DLL_EXPORT==1) +# define LZ4LIB_API __declspec(dllexport) LZ4LIB_VISIBILITY +#elif defined(LZ4_DLL_IMPORT) && (LZ4_DLL_IMPORT==1) +# define LZ4LIB_API __declspec(dllimport) LZ4LIB_VISIBILITY /* It isn't required but allows to generate better code, saving a function pointer load from the IAT and an indirect jump.*/ +#else +# define LZ4LIB_API LZ4LIB_VISIBILITY +#endif + +/*------ Version ------*/ +#define LZ4_VERSION_MAJOR 1 /* for breaking interface changes */ +#define LZ4_VERSION_MINOR 8 /* for new (non-breaking) interface capabilities */ +#define LZ4_VERSION_RELEASE 3 /* for tweaks, bug-fixes, or development */ + +#define LZ4_VERSION_NUMBER (LZ4_VERSION_MAJOR *100*100 + LZ4_VERSION_MINOR *100 + LZ4_VERSION_RELEASE) + +#define LZ4_LIB_VERSION LZ4_VERSION_MAJOR.LZ4_VERSION_MINOR.LZ4_VERSION_RELEASE +#define LZ4_QUOTE(str) #str +#define LZ4_EXPAND_AND_QUOTE(str) LZ4_QUOTE(str) +#define LZ4_VERSION_STRING LZ4_EXPAND_AND_QUOTE(LZ4_LIB_VERSION) + +LZ4LIB_API int LZ4_versionNumber (void); /**< library version number; useful to check dll version */ +LZ4LIB_API const char* LZ4_versionString (void); /**< library version string; unseful to check dll version */ + + +/*-************************************ +* Tuning parameter +**************************************/ +/*! + * LZ4_MEMORY_USAGE : + * Memory usage formula : N->2^N Bytes (examples : 10 -> 1KB; 12 -> 4KB ; 16 -> 64KB; 20 -> 1MB; etc.) + * Increasing memory usage improves compression ratio + * Reduced memory usage may improve speed, thanks to cache effect + * Default value is 14, for 16KB, which nicely fits into Intel x86 L1 cache + */ +#ifndef LZ4_MEMORY_USAGE +# define LZ4_MEMORY_USAGE 14 +#endif + +/*-************************************ +* Simple Functions +**************************************/ +/*! LZ4_compress_default() : + Compresses 'srcSize' bytes from buffer 'src' + into already allocated 'dst' buffer of size 'dstCapacity'. + Compression is guaranteed to succeed if 'dstCapacity' >= LZ4_compressBound(srcSize). + It also runs faster, so it's a recommended setting. + If the function cannot compress 'src' into a more limited 'dst' budget, + compression stops *immediately*, and the function result is zero. + Note : as a consequence, 'dst' content is not valid. + Note 2 : This function is protected against buffer overflow scenarios (never writes outside 'dst' buffer, nor read outside 'source' buffer). + srcSize : max supported value is LZ4_MAX_INPUT_SIZE. + dstCapacity : size of buffer 'dst' (which must be already allocated) + return : the number of bytes written into buffer 'dst' (necessarily <= dstCapacity) + or 0 if compression fails */ +LZ4LIB_API int LZ4_compress_default(const char* src, char* dst, int srcSize, int dstCapacity); + +/*! LZ4_decompress_safe() : + compressedSize : is the exact complete size of the compressed block. + dstCapacity : is the size of destination buffer, which must be already allocated. + return : the number of bytes decompressed into destination buffer (necessarily <= dstCapacity) + If destination buffer is not large enough, decoding will stop and output an error code (negative value). + If the source stream is detected malformed, the function will stop decoding and return a negative result. + This function is protected against malicious data packets. +*/ +LZ4LIB_API int LZ4_decompress_safe (const char* src, char* dst, int compressedSize, int dstCapacity); + + +/*-************************************ +* Advanced Functions +**************************************/ +#define LZ4_MAX_INPUT_SIZE 0x7E000000 /* 2 113 929 216 bytes */ +#define LZ4_COMPRESSBOUND(isize) ((unsigned)(isize) > (unsigned)LZ4_MAX_INPUT_SIZE ? 0 : (isize) + ((isize)/255) + 16) + +/*! +LZ4_compressBound() : + Provides the maximum size that LZ4 compression may output in a "worst case" scenario (input data not compressible) + This function is primarily useful for memory allocation purposes (destination buffer size). + Macro LZ4_COMPRESSBOUND() is also provided for compilation-time evaluation (stack memory allocation for example). + Note that LZ4_compress_default() compresses faster when dstCapacity is >= LZ4_compressBound(srcSize) + inputSize : max supported value is LZ4_MAX_INPUT_SIZE + return : maximum output size in a "worst case" scenario + or 0, if input size is incorrect (too large or negative) +*/ +LZ4LIB_API int LZ4_compressBound(int inputSize); + +/*! +LZ4_compress_fast() : + Same as LZ4_compress_default(), but allows selection of "acceleration" factor. + The larger the acceleration value, the faster the algorithm, but also the lesser the compression. + It's a trade-off. It can be fine tuned, with each successive value providing roughly +~3% to speed. + An acceleration value of "1" is the same as regular LZ4_compress_default() + Values <= 0 will be replaced by ACCELERATION_DEFAULT (currently == 1, see lz4.c). +*/ +LZ4LIB_API int LZ4_compress_fast (const char* src, char* dst, int srcSize, int dstCapacity, int acceleration); + + +/*! +LZ4_compress_fast_extState() : + Same compression function, just using an externally allocated memory space to store compression state. + Use LZ4_sizeofState() to know how much memory must be allocated, + and allocate it on 8-bytes boundaries (using malloc() typically). + Then, provide this buffer as 'void* state' to compression function. +*/ +LZ4LIB_API int LZ4_sizeofState(void); +LZ4LIB_API int LZ4_compress_fast_extState (void* state, const char* src, char* dst, int srcSize, int dstCapacity, int acceleration); + + +/*! LZ4_compress_destSize() : + * Reverse the logic : compresses as much data as possible from 'src' buffer + * into already allocated buffer 'dst', of size >= 'targetDestSize'. + * This function either compresses the entire 'src' content into 'dst' if it's large enough, + * or fill 'dst' buffer completely with as much data as possible from 'src'. + * note: acceleration parameter is fixed to "default". + * + * *srcSizePtr : will be modified to indicate how many bytes where read from 'src' to fill 'dst'. + * New value is necessarily <= input value. + * @return : Nb bytes written into 'dst' (necessarily <= targetDestSize) + * or 0 if compression fails. +*/ +LZ4LIB_API int LZ4_compress_destSize (const char* src, char* dst, int* srcSizePtr, int targetDstSize); + + +/*! LZ4_decompress_fast() : **unsafe!** + * This function used to be a bit faster than LZ4_decompress_safe(), + * though situation has changed in recent versions, + * and now `LZ4_decompress_safe()` can be as fast and sometimes faster than `LZ4_decompress_fast()`. + * Moreover, LZ4_decompress_fast() is not protected vs malformed input, as it doesn't perform full validation of compressed data. + * As a consequence, this function is no longer recommended, and may be deprecated in future versions. + * It's only remaining specificity is that it can decompress data without knowing its compressed size. + * + * originalSize : is the uncompressed size to regenerate. + * `dst` must be already allocated, its size must be >= 'originalSize' bytes. + * @return : number of bytes read from source buffer (== compressed size). + * If the source stream is detected malformed, the function stops decoding and returns a negative result. + * note : This function requires uncompressed originalSize to be known in advance. + * The function never writes past the output buffer. + * However, since it doesn't know its 'src' size, it may read past the intended input. + * Also, because match offsets are not validated during decoding, + * reads from 'src' may underflow. + * Use this function in trusted environment **only**. + */ +LZ4LIB_API int LZ4_decompress_fast (const char* src, char* dst, int originalSize); + +/*! LZ4_decompress_safe_partial() : + * Decompress an LZ4 compressed block, of size 'srcSize' at position 'src', + * into destination buffer 'dst' of size 'dstCapacity'. + * Up to 'targetOutputSize' bytes will be decoded. + * The function stops decoding on reaching this objective, + * which can boost performance when only the beginning of a block is required. + * + * @return : the number of bytes decoded in `dst` (necessarily <= dstCapacity) + * If source stream is detected malformed, function returns a negative result. + * + * Note : @return can be < targetOutputSize, if compressed block contains less data. + * + * Note 2 : this function features 2 parameters, targetOutputSize and dstCapacity, + * and expects targetOutputSize <= dstCapacity. + * It effectively stops decoding on reaching targetOutputSize, + * so dstCapacity is kind of redundant. + * This is because in a previous version of this function, + * decoding operation would not "break" a sequence in the middle. + * As a consequence, there was no guarantee that decoding would stop at exactly targetOutputSize, + * it could write more bytes, though only up to dstCapacity. + * Some "margin" used to be required for this operation to work properly. + * This is no longer necessary. + * The function nonetheless keeps its signature, in an effort to not break API. + */ +LZ4LIB_API int LZ4_decompress_safe_partial (const char* src, char* dst, int srcSize, int targetOutputSize, int dstCapacity); + + +/*-********************************************* +* Streaming Compression Functions +***********************************************/ +typedef union LZ4_stream_u LZ4_stream_t; /* incomplete type (defined later) */ + +/*! LZ4_createStream() and LZ4_freeStream() : + * LZ4_createStream() will allocate and initialize an `LZ4_stream_t` structure. + * LZ4_freeStream() releases its memory. + */ +LZ4LIB_API LZ4_stream_t* LZ4_createStream(void); +LZ4LIB_API int LZ4_freeStream (LZ4_stream_t* streamPtr); + +/*! LZ4_resetStream() : + * An LZ4_stream_t structure can be allocated once and re-used multiple times. + * Use this function to start compressing a new stream. + */ +LZ4LIB_API void LZ4_resetStream (LZ4_stream_t* streamPtr); + +/*! LZ4_loadDict() : + * Use this function to load a static dictionary into LZ4_stream_t. + * Any previous data will be forgotten, only 'dictionary' will remain in memory. + * Loading a size of 0 is allowed, and is the same as reset. + * @return : dictionary size, in bytes (necessarily <= 64 KB) + */ +LZ4LIB_API int LZ4_loadDict (LZ4_stream_t* streamPtr, const char* dictionary, int dictSize); + +/*! LZ4_compress_fast_continue() : + * Compress 'src' content using data from previously compressed blocks, for better compression ratio. + * 'dst' buffer must be already allocated. + * If dstCapacity >= LZ4_compressBound(srcSize), compression is guaranteed to succeed, and runs faster. + * + * @return : size of compressed block + * or 0 if there is an error (typically, cannot fit into 'dst'). + * + * Note 1 : Each invocation to LZ4_compress_fast_continue() generates a new block. + * Each block has precise boundaries. + * It's not possible to append blocks together and expect a single invocation of LZ4_decompress_*() to decompress them together. + * Each block must be decompressed separately, calling LZ4_decompress_*() with associated metadata. + * + * Note 2 : The previous 64KB of source data is __assumed__ to remain present, unmodified, at same address in memory! + * + * Note 3 : When input is structured as a double-buffer, each buffer can have any size, including < 64 KB. + * Make sure that buffers are separated, by at least one byte. + * This construction ensures that each block only depends on previous block. + * + * Note 4 : If input buffer is a ring-buffer, it can have any size, including < 64 KB. + * + * Note 5 : After an error, the stream status is invalid, it can only be reset or freed. + */ +LZ4LIB_API int LZ4_compress_fast_continue (LZ4_stream_t* streamPtr, const char* src, char* dst, int srcSize, int dstCapacity, int acceleration); + +/*! LZ4_saveDict() : + * If last 64KB data cannot be guaranteed to remain available at its current memory location, + * save it into a safer place (char* safeBuffer). + * This is schematically equivalent to a memcpy() followed by LZ4_loadDict(), + * but is much faster, because LZ4_saveDict() doesn't need to rebuild tables. + * @return : saved dictionary size in bytes (necessarily <= maxDictSize), or 0 if error. + */ +LZ4LIB_API int LZ4_saveDict (LZ4_stream_t* streamPtr, char* safeBuffer, int maxDictSize); + + +/*-********************************************** +* Streaming Decompression Functions +* Bufferless synchronous API +************************************************/ +typedef union LZ4_streamDecode_u LZ4_streamDecode_t; /* tracking context */ + +/*! LZ4_createStreamDecode() and LZ4_freeStreamDecode() : + * creation / destruction of streaming decompression tracking context. + * A tracking context can be re-used multiple times. + */ +LZ4LIB_API LZ4_streamDecode_t* LZ4_createStreamDecode(void); +LZ4LIB_API int LZ4_freeStreamDecode (LZ4_streamDecode_t* LZ4_stream); + +/*! LZ4_setStreamDecode() : + * An LZ4_streamDecode_t context can be allocated once and re-used multiple times. + * Use this function to start decompression of a new stream of blocks. + * A dictionary can optionally be set. Use NULL or size 0 for a reset order. + * Dictionary is presumed stable : it must remain accessible and unmodified during next decompression. + * @return : 1 if OK, 0 if error + */ +LZ4LIB_API int LZ4_setStreamDecode (LZ4_streamDecode_t* LZ4_streamDecode, const char* dictionary, int dictSize); + +/*! LZ4_decoderRingBufferSize() : v1.8.2 + * Note : in a ring buffer scenario (optional), + * blocks are presumed decompressed next to each other + * up to the moment there is not enough remaining space for next block (remainingSize < maxBlockSize), + * at which stage it resumes from beginning of ring buffer. + * When setting such a ring buffer for streaming decompression, + * provides the minimum size of this ring buffer + * to be compatible with any source respecting maxBlockSize condition. + * @return : minimum ring buffer size, + * or 0 if there is an error (invalid maxBlockSize). + */ +LZ4LIB_API int LZ4_decoderRingBufferSize(int maxBlockSize); +#define LZ4_DECODER_RING_BUFFER_SIZE(mbs) (65536 + 14 + (mbs)) /* for static allocation; mbs presumed valid */ + +/*! LZ4_decompress_*_continue() : + * These decoding functions allow decompression of consecutive blocks in "streaming" mode. + * A block is an unsplittable entity, it must be presented entirely to a decompression function. + * Decompression functions only accepts one block at a time. + * The last 64KB of previously decoded data *must* remain available and unmodified at the memory position where they were decoded. + * If less than 64KB of data has been decoded, all the data must be present. + * + * Special : if decompression side sets a ring buffer, it must respect one of the following conditions : + * - Decompression buffer size is _at least_ LZ4_decoderRingBufferSize(maxBlockSize). + * maxBlockSize is the maximum size of any single block. It can have any value > 16 bytes. + * In which case, encoding and decoding buffers do not need to be synchronized. + * Actually, data can be produced by any source compliant with LZ4 format specification, and respecting maxBlockSize. + * - Synchronized mode : + * Decompression buffer size is _exactly_ the same as compression buffer size, + * and follows exactly same update rule (block boundaries at same positions), + * and decoding function is provided with exact decompressed size of each block (exception for last block of the stream), + * _then_ decoding & encoding ring buffer can have any size, including small ones ( < 64 KB). + * - Decompression buffer is larger than encoding buffer, by a minimum of maxBlockSize more bytes. + * In which case, encoding and decoding buffers do not need to be synchronized, + * and encoding ring buffer can have any size, including small ones ( < 64 KB). + * + * Whenever these conditions are not possible, + * save the last 64KB of decoded data into a safe buffer where it can't be modified during decompression, + * then indicate where this data is saved using LZ4_setStreamDecode(), before decompressing next block. +*/ +LZ4LIB_API int LZ4_decompress_safe_continue (LZ4_streamDecode_t* LZ4_streamDecode, const char* src, char* dst, int srcSize, int dstCapacity); +LZ4LIB_API int LZ4_decompress_fast_continue (LZ4_streamDecode_t* LZ4_streamDecode, const char* src, char* dst, int originalSize); + + +/*! LZ4_decompress_*_usingDict() : + * These decoding functions work the same as + * a combination of LZ4_setStreamDecode() followed by LZ4_decompress_*_continue() + * They are stand-alone, and don't need an LZ4_streamDecode_t structure. + * Dictionary is presumed stable : it must remain accessible and unmodified during next decompression. + */ +LZ4LIB_API int LZ4_decompress_safe_usingDict (const char* src, char* dst, int srcSize, int dstCapcity, const char* dictStart, int dictSize); +LZ4LIB_API int LZ4_decompress_fast_usingDict (const char* src, char* dst, int originalSize, const char* dictStart, int dictSize); + + +/*^********************************************** + * !!!!!! STATIC LINKING ONLY !!!!!! + ***********************************************/ + +/*-************************************ + * Unstable declarations + ************************************** + * Declarations in this section should be considered unstable. + * Use at your own peril, etc., etc. + * They may be removed in the future. + * Their signatures may change. + **************************************/ + +#ifdef LZ4_STATIC_LINKING_ONLY + +/*! LZ4_resetStream_fast() : + * Use this, like LZ4_resetStream(), to prepare a context for a new chain of + * calls to a streaming API (e.g., LZ4_compress_fast_continue()). + * + * Note: + * Using this in advance of a non- streaming-compression function is redundant, + * and potentially bad for performance, since they all perform their own custom + * reset internally. + * + * Differences from LZ4_resetStream(): + * When an LZ4_stream_t is known to be in a internally coherent state, + * it can often be prepared for a new compression with almost no work, only + * sometimes falling back to the full, expensive reset that is always required + * when the stream is in an indeterminate state (i.e., the reset performed by + * LZ4_resetStream()). + * + * LZ4_streams are guaranteed to be in a valid state when: + * - returned from LZ4_createStream() + * - reset by LZ4_resetStream() + * - memset(stream, 0, sizeof(LZ4_stream_t)), though this is discouraged + * - the stream was in a valid state and was reset by LZ4_resetStream_fast() + * - the stream was in a valid state and was then used in any compression call + * that returned success + * - the stream was in an indeterminate state and was used in a compression + * call that fully reset the state (e.g., LZ4_compress_fast_extState()) and + * that returned success + * + * When a stream isn't known to be in a valid state, it is not safe to pass to + * any fastReset or streaming function. It must first be cleansed by the full + * LZ4_resetStream(). + */ +LZ4LIB_API void LZ4_resetStream_fast (LZ4_stream_t* streamPtr); + +/*! LZ4_compress_fast_extState_fastReset() : + * A variant of LZ4_compress_fast_extState(). + * + * Using this variant avoids an expensive initialization step. It is only safe + * to call if the state buffer is known to be correctly initialized already + * (see above comment on LZ4_resetStream_fast() for a definition of "correctly + * initialized"). From a high level, the difference is that this function + * initializes the provided state with a call to something like + * LZ4_resetStream_fast() while LZ4_compress_fast_extState() starts with a + * call to LZ4_resetStream(). + */ +LZ4LIB_API int LZ4_compress_fast_extState_fastReset (void* state, const char* src, char* dst, int srcSize, int dstCapacity, int acceleration); + +/*! LZ4_attach_dictionary() : + * This is an experimental API that allows for the efficient use of a + * static dictionary many times. + * + * Rather than re-loading the dictionary buffer into a working context before + * each compression, or copying a pre-loaded dictionary's LZ4_stream_t into a + * working LZ4_stream_t, this function introduces a no-copy setup mechanism, + * in which the working stream references the dictionary stream in-place. + * + * Several assumptions are made about the state of the dictionary stream. + * Currently, only streams which have been prepared by LZ4_loadDict() should + * be expected to work. + * + * Alternatively, the provided dictionary stream pointer may be NULL, in which + * case any existing dictionary stream is unset. + * + * If a dictionary is provided, it replaces any pre-existing stream history. + * The dictionary contents are the only history that can be referenced and + * logically immediately precede the data compressed in the first subsequent + * compression call. + * + * The dictionary will only remain attached to the working stream through the + * first compression call, at the end of which it is cleared. The dictionary + * stream (and source buffer) must remain in-place / accessible / unchanged + * through the completion of the first compression call on the stream. + */ +LZ4LIB_API void LZ4_attach_dictionary(LZ4_stream_t *working_stream, const LZ4_stream_t *dictionary_stream); + +#endif + +/*-************************************ + * Private definitions + ************************************** + * Do not use these definitions. + * They are exposed to allow static allocation of `LZ4_stream_t` and `LZ4_streamDecode_t`. + * Using these definitions will expose code to API and/or ABI break in future versions of the library. + **************************************/ +#define LZ4_HASHLOG (LZ4_MEMORY_USAGE-2) +#define LZ4_HASHTABLESIZE (1 << LZ4_MEMORY_USAGE) +#define LZ4_HASH_SIZE_U32 (1 << LZ4_HASHLOG) /* required as macro for static allocation */ + +#if defined(__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) +#include + +typedef struct LZ4_stream_t_internal LZ4_stream_t_internal; +struct LZ4_stream_t_internal { + uint32_t hashTable[LZ4_HASH_SIZE_U32]; + uint32_t currentOffset; + uint16_t initCheck; + uint16_t tableType; + const uint8_t* dictionary; + const LZ4_stream_t_internal* dictCtx; + uint32_t dictSize; +}; + +typedef struct { + const uint8_t* externalDict; + size_t extDictSize; + const uint8_t* prefixEnd; + size_t prefixSize; +} LZ4_streamDecode_t_internal; + +#else + +typedef struct LZ4_stream_t_internal LZ4_stream_t_internal; +struct LZ4_stream_t_internal { + unsigned int hashTable[LZ4_HASH_SIZE_U32]; + unsigned int currentOffset; + unsigned short initCheck; + unsigned short tableType; + const unsigned char* dictionary; + const LZ4_stream_t_internal* dictCtx; + unsigned int dictSize; +}; + +typedef struct { + const unsigned char* externalDict; + size_t extDictSize; + const unsigned char* prefixEnd; + size_t prefixSize; +} LZ4_streamDecode_t_internal; + +#endif + +/*! + * LZ4_stream_t : + * information structure to track an LZ4 stream. + * init this structure before first use. + * note : only use in association with static linking ! + * this definition is not API/ABI safe, + * it may change in a future version ! + */ +#define LZ4_STREAMSIZE_U64 ((1 << (LZ4_MEMORY_USAGE-3)) + 4) +#define LZ4_STREAMSIZE (LZ4_STREAMSIZE_U64 * sizeof(unsigned long long)) +union LZ4_stream_u { + unsigned long long table[LZ4_STREAMSIZE_U64]; + LZ4_stream_t_internal internal_donotuse; +} ; /* previously typedef'd to LZ4_stream_t */ + + +/*! + * LZ4_streamDecode_t : + * information structure to track an LZ4 stream during decompression. + * init this structure using LZ4_setStreamDecode (or memset()) before first use + * note : only use in association with static linking ! + * this definition is not API/ABI safe, + * and may change in a future version ! + */ +#define LZ4_STREAMDECODESIZE_U64 4 +#define LZ4_STREAMDECODESIZE (LZ4_STREAMDECODESIZE_U64 * sizeof(unsigned long long)) +union LZ4_streamDecode_u { + unsigned long long table[LZ4_STREAMDECODESIZE_U64]; + LZ4_streamDecode_t_internal internal_donotuse; +} ; /* previously typedef'd to LZ4_streamDecode_t */ + + +/*-************************************ +* Obsolete Functions +**************************************/ + +/*! Deprecation warnings + Should deprecation warnings be a problem, + it is generally possible to disable them, + typically with -Wno-deprecated-declarations for gcc + or _CRT_SECURE_NO_WARNINGS in Visual. + Otherwise, it's also possible to define LZ4_DISABLE_DEPRECATE_WARNINGS */ +#ifdef LZ4_DISABLE_DEPRECATE_WARNINGS +# define LZ4_DEPRECATED(message) /* disable deprecation warnings */ +#else +# define LZ4_GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__) +# if defined (__cplusplus) && (__cplusplus >= 201402) /* C++14 or greater */ +# define LZ4_DEPRECATED(message) [[deprecated(message)]] +# elif (LZ4_GCC_VERSION >= 405) || defined(__clang__) +# define LZ4_DEPRECATED(message) __attribute__((deprecated(message))) +# elif (LZ4_GCC_VERSION >= 301) +# define LZ4_DEPRECATED(message) __attribute__((deprecated)) +# elif defined(_MSC_VER) +# define LZ4_DEPRECATED(message) __declspec(deprecated(message)) +# else +# pragma message("WARNING: You need to implement LZ4_DEPRECATED for this compiler") +# define LZ4_DEPRECATED(message) +# endif +#endif /* LZ4_DISABLE_DEPRECATE_WARNINGS */ + +/* Obsolete compression functions */ +LZ4_DEPRECATED("use LZ4_compress_default() instead") LZ4LIB_API int LZ4_compress (const char* source, char* dest, int sourceSize); +LZ4_DEPRECATED("use LZ4_compress_default() instead") LZ4LIB_API int LZ4_compress_limitedOutput (const char* source, char* dest, int sourceSize, int maxOutputSize); +LZ4_DEPRECATED("use LZ4_compress_fast_extState() instead") LZ4LIB_API int LZ4_compress_withState (void* state, const char* source, char* dest, int inputSize); +LZ4_DEPRECATED("use LZ4_compress_fast_extState() instead") LZ4LIB_API int LZ4_compress_limitedOutput_withState (void* state, const char* source, char* dest, int inputSize, int maxOutputSize); +LZ4_DEPRECATED("use LZ4_compress_fast_continue() instead") LZ4LIB_API int LZ4_compress_continue (LZ4_stream_t* LZ4_streamPtr, const char* source, char* dest, int inputSize); +LZ4_DEPRECATED("use LZ4_compress_fast_continue() instead") LZ4LIB_API int LZ4_compress_limitedOutput_continue (LZ4_stream_t* LZ4_streamPtr, const char* source, char* dest, int inputSize, int maxOutputSize); + +/* Obsolete decompression functions */ +LZ4_DEPRECATED("use LZ4_decompress_fast() instead") LZ4LIB_API int LZ4_uncompress (const char* source, char* dest, int outputSize); +LZ4_DEPRECATED("use LZ4_decompress_safe() instead") LZ4LIB_API int LZ4_uncompress_unknownOutputSize (const char* source, char* dest, int isize, int maxOutputSize); + +/* Obsolete streaming functions; degraded functionality; do not use! + * + * In order to perform streaming compression, these functions depended on data + * that is no longer tracked in the state. They have been preserved as well as + * possible: using them will still produce a correct output. However, they don't + * actually retain any history between compression calls. The compression ratio + * achieved will therefore be no better than compressing each chunk + * independently. + */ +LZ4_DEPRECATED("Use LZ4_createStream() instead") LZ4LIB_API void* LZ4_create (char* inputBuffer); +LZ4_DEPRECATED("Use LZ4_createStream() instead") LZ4LIB_API int LZ4_sizeofStreamState(void); +LZ4_DEPRECATED("Use LZ4_resetStream() instead") LZ4LIB_API int LZ4_resetStreamState(void* state, char* inputBuffer); +LZ4_DEPRECATED("Use LZ4_saveDict() instead") LZ4LIB_API char* LZ4_slideInputBuffer (void* state); + +/* Obsolete streaming decoding functions */ +LZ4_DEPRECATED("use LZ4_decompress_safe_usingDict() instead") LZ4LIB_API int LZ4_decompress_safe_withPrefix64k (const char* src, char* dst, int compressedSize, int maxDstSize); +LZ4_DEPRECATED("use LZ4_decompress_fast_usingDict() instead") LZ4LIB_API int LZ4_decompress_fast_withPrefix64k (const char* src, char* dst, int originalSize); + +#endif /* LZ4_H_2983827168210 */ + + +#if defined (__cplusplus) +} +#endif diff --git a/server/2015Remote/lz4/lz4.lib b/server/2015Remote/lz4/lz4.lib new file mode 100644 index 0000000000000000000000000000000000000000..fd83a47f1ffc2f99b638205231a30ce31c63a6d1 GIT binary patch literal 314172 zcmeFa3wTt;`9FS^4G=?cg9M2hb=4?n5EBxv3lb7G2|_Mh0$vCqBpZl^BqrGe)L<}x zuE+J#+KaWdw#91i-deS#Z331ArHG0GN-J$?1)(-5)qvFeKcAU7XYUJ^^!tB)&*Q+! zJM+$a-g(bEw|Cx|bM}&{-B{MT8X3FT&I8DA&lR$29H#=WD=>$F=_#FY5&f+W&)B+4a}wXN=P%D61&1t*foBD6h$Fs9Tv| z-nhcdsH*Wg;3}NCluOtCzbPn+$@g23KJA3a}&F9HR__vcc8pGH-L&R~n^E z$P^S4G9!q^i~zBS2oeh@Ke3Ps6bp#(Vj;sP77~79l{LE>8msGS3*9T1xf-;xIX7mO zl{Yn&SF9+@&p~MwO~@>7SS@oZ>Q>f+Q)7Nka2iVItv-Trh}Sk%*SewP;GCN3mDNqI z$|84Dy&JlUnti%#%37+MR)`u5BV4r1hy|2I6*DmRG?_$|BjN*~CIXejstK=M|D3W) zG~oHww*^&zsMm-&u2oH8mB_n%d1Y1QjZO1pOBb~#8mcL#YPJ9?4O~@ub6vwsm(f1Z zsOHzZT$S><*o;j=(bN2It*I-ooQZ~LP>7~Hzsa8@040QzjQ#KdPt{o7?DA)cE}Ns8 zHYA(lYIfB~28~c(T~*+{3dQmRGis_UU9)P@q_f>sRjvleJAHatPF7i3_ROs8>xzqW zvz-N5&Uy2S=9M)zR1`Ngl(jU})h?f&GGj)TNt%~cn4evA-OQYsinOYse5H%k7>+tW zE4SF0lQ-+S;;fR|#(Gypbyc;ia{72zLqlD|^zjvSm99Yc`B{a|ImNT`3ui0#R8d2- zt1`Eye0dr45JFxsYj(kmqB%ang)B{Vb#uxamIra4m6cPR?R4hnUZ=>H)znqoQUEE+ zs%x9ep`bwav$Aq?3Ul*w@&X=q!RmTfnY;Fu+Paq7VEX)mIWy)I&o=1GYfwNr$0*c# zbqyXpK$)|%!1}sb*Ud5XzQR>r>1tRg$GmU~g<5iQ@^bRC3)K@;HZ~QMuQHx_{z{Y> zTt=buy28Sl`Lm2W{9Ac$7^&uD&6;stL2>a+ql}g1tFoymQA$`v6=dZX&CV&Dooy5% z6q~ccRdGwBdu4d#g8Q7pyxhE^JSCWX_*30fgj;fFJB^z}^UD`%Low{XHLj+hYA?zv zzOE>H21-*Uad2|gHbpP0IICbbO3I&^W8Nia7o!V?eXN`u+?MN{`6i)Lr%XBEvZE39*h zKIPxOiqL$WGjj^e=AP#)bk3WV6VO14vSt_N73IvDW5|oz&N2HXC%;?_=JLt2UCXO$ z#mEzcD|0tO&K!0kxML5Mooa^W}V^bjB=pU zCRc#W65|_bbJ$K+nU5s0115<;f=aVzsUmy`DXyP>s%qRc_=J$0U;O0|=}1yAGl~q$ zT}`4PunHA>16AnLF;GH_vudmAd{k=OQHbhB!APaVR28;dHHnNbC@3t*ot>MNK0R~N z^vn#|$b|8v47SP$)|x26*T&2mH&Ky{iAq;hxw|IFLW^Wp&?E>fNle6%c$3_;D8k)m zSQ{a>hN?Kpy{fLEBG|wYIOnP+vo-i0G>S=gS_WMZk!i98JwPyCG;Bp9;?jHx#jpXW zb_G2%-Y^dxUm6sg9^@^|k|T!DLRe&w;)8Ap>Mx=&KaRpsEpBjCRj-T+d$1!syu&{wO$+0=TF%DOtLIX^lRcQc(q4lnNbWPfDy?%)yYcF*t3QOmbP}Yb;?_cnSsC z(73cO?6nz}Ho@@P#K3Ly%4M4N*bAEW_>2Ks!Ua~kakLoC`ak?P0Q~uHz-j!Gl;QtM zJ_fg78giGVuq0WUj2UqQZ(vDnIjw(D2lX$P4PP!BLKib%E*r#J`pablyait_8@^mN zh^0;BWrP39AdD;bOxFyCH_k9b^K-s*0f+Z@M_Mz4YA~{U817eT?iuR#cl1WiiL_Q@ zd+2W$u(2SaJ0{fakMh1;O9oX`z+%)__d!&rTuYiw@XfO!)d^UdfhF{|bY<2ii`|$```=0h5 z%NJTC!=-3Ei?NVqGxifY1Z~oXT~Id$VGZj4!9x4X?dh<)=BK|seNB+7;#B8L#!Xho zOYBSIW=>h0SKXBFUbeXAw#=*3$4(lXvADUq(Oq7%c;WnUY3XT;msQs;u3L8V;+pDZ zASqi^U7InkY@VyeRo>`YylNHq*2f}WJ3~(3y`rL@7*)})-%q>*n`?}tIqHOtso`{m zFz{(<6DGh5lreFlI^44~ZjNQ1c64~w;w#o_+MnP9Vi;T5;Hqe9cFB~cU4zJhcq64? zTmtA^%iPOT<{LSqhiTgIp_=BnNMg(b+AU_WK|@dqVNjVEGn+?mfGvWn3!n9SD$>0QrLW*?@N`8cC^X;rN|I zW)tY@;Y(wP#LtPm?<*QXh(F=@9RvP-(7l@?sUqP1$iN-Gz@@)a#r@7JjaXh#(5A}hI z0k?&HUXBOXf+jAXRFTK4Z=ph`g68enl5PY*IQ>mUK~K#=eH2K#NaMk;!SCEcP1`v) zI=@}0-|x@UwC0lN{H{VlPl4u*8zo(&`prbS$8JJjFN@BPeGE`x^tA(G}78xsiP%XkJrv zk)HQ@Wb6e^x+^+A2ePrDt39UZP>o^ROAqkRg68{G(fL`dnzjoxZ&gdW;Su<8eEI6l znr5wu&hJU^8xNX&b}zSPKm^JWZayc!WuUo5(M96N_Ur~tX)_`Sk@)eL_XCPX5aLg`@n8?| zkAUvh7D*L}A528;2Z}~ghUd2*nNNf6!Bvtf62Ew4Z&oytGCV)Zw*z!PTpgVs`|ln_ zb1Hs^K-YO&bbcIPK2|i*_#Hv!KurEeX#g;eD_s4O-(`1@!WY8TMeF&fFO#a~8~*l|AKB{K+X;aA_d2XwJ;S83oSym)c{%<|wZFaTRM8wuUoZ zKKd<0r)X1$X?9H;tda4ktrim&R97_AHP%%%*+G`sv+1j~4EM>#ch*(y=9OucZ%WJjs6y756HPuZ`H7=EPjut;` zY65RzSYB3F>(UZIzQkmM!=KA*ap0HCiIq&;wLX0OuxTcT;(4d!&O}Jp+5t+4FS>)g6ta>IJG1szG+Hj zzCZyo^0|zB@FK%d#fP3YRWKV6TZ=e&EY2{IRf}YWiu7j{xezLaEl+R~jgIGBh-H%@ zRy3EDI9nP48@bf*yr~jC7I>o?luAe%`as7()`JTpjh0|}<*oCbPyFM=?ja4WH=e(0 z-IEv^1^)1{bH1_Tl7Cb-x4yRh_ufGdVwooJuV&S`DQ^n=W69TKB`o`V*I@aNt4=@ZZ2I3@np_s-t5 z{TF|GNz;xCd~MBD&pJk|`qqT2hJW~tU-e;t!s#9GZ*HN)i7zrPx!(WhjxZ7E*{}`-Kx& zXA0Jn?ES@h^0@wIWr{g@LccN3RGduSh6;c{Ye0pk_s5g`?^r=j*(}ogLn%RWhB7zx z1nr!8Tam?O^q=G=D^v2!|ACyL%uTgq8V%}9dZ$#&`2K5nCM#3&@%^XsD9lZ@Oz4kV zQ0=@w)DpzXl(Szt(J7guI9bL0*opc@a@GBfwqdrG|Am~P%*|TBY}8+4OFwphla(oX zKX&#g%uTgq8go-Wj4ehL_aiG)E&bBj)fi~V8Oq#L%LKEvXu|gpizUS%ZO*W(uyo|Q zimt&S8dq72#cAWPPT_XM5N(2r#c9_e#-+#*tx(0{v}K6V4LC%rQn5JgHpI>rxHT#k zr+o!6o4|ct#p1LdBbFd=KUc9hZ8KtYhYZo+P!X{>?H$Ch0tN2RDi)`GgxGL_`$Wa! zv^cDx5(VyT6^p|w0dS#eBSy46^y~+ghX!OnS$_FFi!et0q_c5;M zj_TLNE4r;iQ#-3a5p*3x+czgvcQEcKIobT9&W>|Bx5ityc6JT6cImCXuWzw#x#=+E zOc=STasD+mbnGfQakmxJ3EE}TiwCua(vo+z_GjWJln58Aa3dG>==@* zirC%ozTVw=$d=Jvy^W8gzux)5(2Uos-=M1W&7B7m$}%=D(f?k$h4uJvT zu4bT2l!069zh&bV!2%BlTtLa%ISGP?LK}>cY#V^CFk~2W({Woh-(&})A;U;R7gCL@ z79D8FF!E%&kuUHM(27v{M@XjOG6H4DM*{9e@f^hGS+q8~UvC7YY)b&i`UPBrwHH-v zh(^~dadBD-s2CffjaIQZ4Xso!h_`Liow1%+U!_o4MqnprFrJf@LP4l@Luu23l*W5V z!%92bRHsy$&v|8jNQ7zxWw-z}QfVyQjUfZ?j|-(4N~DX)Pid3uu5D|0nnUa+gRpur4n{psS?JdN*IgNzKy>U_qd9QuDeio z$1d`&NwTgP-M%J9^Dazkx>(Om#2Bv^CUkbjTRZi__|DG3gt4!8T01e&=c<8zkR0c) zI6T;I!jS_$hWqxdYPfITjM55{P!U!R1KW8lAk(~lgp0w*{}=N4 zQXm8AzAs|F{K;$^s@JfxZ^1P#sIplm@BJCB7tB#d4NdBMK*9A)dKEAp8J$G*2eH$D zuMC8(e3q4u%fCMyMrHE}{sl-GVE2gr@LR+OYv06Q#)gP0XDm)TV&ZyKtiLLM?0mg6 z{;<_M3)V*aXO^Y`wr$3wAKC`?-GoM9SB>RNW`AE>Scm5^0*77(L)XD=fz6-6$PaD{ z&&X^u-@h%e4z3Q$pDLOWM_P3VBE zD+^+E{C6jIb`FJE3v0Q(HOT@-dVUa(<9dEPtZ!+02k=OJy>s)>_Kt+=H-xqAJZal- zdtYB)=jL<3y0a_Zx*PU3N8{IFbiauQI((L1lCXBOFrrK1z4azCzHOmO^FSQa4S<&evb!?9My2mk>Gdl84Ztgq|1FjNfl70D83lY7;FW-H0A2<7 zH^5ZDBYATDhxAayehFc)7R?ZBT-O2@Y+UmmPT~o;;(}YCe6i@%_Mu@n(6|;S6!6V5X*Y-k-z4xh z0?T9Tp^Re`vKrc<3^xOw4R{M6<*89x!(KGBc0K+wCap)t;Jqs zhcPY&oxSZZ$1^cHqk{vp4MOb06}|!U3|bnlSX>OO8V)OLEJty9ais@Yy}XAsEx4X# zs}Vt2GUEL+F?Nz|n1JdC+j!}|Ut@pz4B;{MgfYBB=lVVW{=sAFhC zLuR@eke z$--p>mP>7NF3nWPLC_Lq!9d+cQDOlT0nY-Yd_w@q`H#4y78#RTWGqfBI3;eAq7zzd zKLVF#!hEszw4B?1ZGzq!f5EmH?I#j0=*SwZMJpyp@NZSHyq;^v`Zpveb+x#Ps`y`h3y7Q!GNrGN_3{UG>81KnVbbQu0JoUZ#P>@n4#a=SHY)M9k z(ByQ8^e(PMZKWBz4>P62vFZLB*E(EA;2R@s2D}(Jm~i+ZEyvD>g7OFA2=hRZ%f~<{=boVapCR8U%^0kLm*|v<_dW{v>)^pkeQlTh$dK8`kuiE+Lq;on{7|@K zc}t-ANB-f=Ly4119xQee(7oap>8-Ke#EUE!w@**-l$>NI`%HDRq8Pnsv^VBFcCY05 z-aK@#g|d5D$^!b9UYf}6^%E3nb}v6_eNhsckX-w}BHF6xXq(N!(UTXeFG@BE;;Y{X zA&A!(*-ZkhenJQm^r93=uuacPRO4^UXuafQs&5qb4PL+ES5y6-Fj|}IYtC#?bLH)(H~`J49r58_ATi= ztqB3SSE3yJZ%r^&0x?mz!`<85h6=*Yi6<`sB%VbW7f*VMV(}!7j~dTQeS042WnnRD z?jW8+V{gu5-9+uJd(bK(_tp=Q8w*}Wr||Esw0g1d4#@Xkow2uK0Uwa>zdB=&!@@rx zKX`Sv5j4S063WDTKLCsmp7dmI^>>m`d?WZeu>bPRw2x1t$A(#-8588=kjDs=F&~L^ zTn{V!TJ%urtR0Z@djRP?xfd`M5aXtBo?wI%j_dmYbAf*ja2DVTfQ5iB0?q@(hG<(U z;8y`}1^gOdlS&w*yj7Y;Vs4!Z9S$?*meAY%A0o8^CM0 zwf!0d6&>Z4NJ8BMPMze>hh8IUig>sujGc zuQ{e~g6zrN)`FfDbn*-@Ii`2oHtxLGw(*sVS8!{1o*acys{ftwo|0pI&2o{d`8-fP?V+F<>4+s4gJs!_Asw(<3g)st>kI-V;YD8qSD;Dz2Z-c*{`d;M7-(ckHFA6(nT-TAd| zab6Kl7Khu+PHJ{-Sx3lAo&-Ax~& zb+5NDwtcteDcI-eZmIXvmtPZ)s35&NL z*ZiQjFve4`9VK7q)AY@n*|$vYBZXjS-y=o;GpfS9-F!fvy;!@O{!>R!qf=~T*nTx= z1)uSe6?|Uf9-qiV43UTUi<}FVCminm4IQFPtioRtWxjqWqbuXpV%gsG9{m;DPj_6n zf(3RSx^M-H&v+%HXYNATs9wqVq%5N|<88UBX~P)y4z5J)2WE`kHi`R-89Qml;Qv#( z@TjTS4QA|!8G}DVKOEzN_W^9ca`>q+= zXU6_x#?rBPkX+`Ou@*D-4Ks#F$a;ith;s?+Z{g4zMp~{%z8#dG0kg*NKhrBl?*8|$ zLB6pbA)ot$^53Odq*gyi5xWal@DUKo#Cv}TI5NP(!P`4rh_FB-_-vXlb_C=yFo<#l zgfirV1WMLYR9U})UyEyy9e|YW4dv(R08Y-RjL8|5F}ckmaih_iB#xfIl6c!IdI7B1 zSlc#Ftfx38yibJY5rgrJG(Ra2%8qyxg!hnU1TK4!^8V|iAYVsy_#XwK@}e9Cp$t?W zklID|KMy$lBqiNg4_S#Y{+h?fKRgrkmKE6rIJp>WpiXqHb=(f*$|0) z9BGLYegr#A}5~Ef%V(m7q|D?8_(xnz)eZ| zs$_pV;m~^)EL-Qt>a*kZ+Y|Jg66urLtT)?f1j53#ZG3OA-iggkSindh(Pt#+Z|XNB z30v@0PwO!(kHvhd=Ovpq;h*)E6x+s+g+2JGm}K=ODS8WdeoVVinS#e?2lfmvg`s&; z@9L|M@2fYg=ZJ<$1beVR${=m{TNCwOiusN-w2DvDChYQADn3I~F($)g!M(We)+B@T zX)+FLZ2B=yk&F$l3(thD`=DNMfQF90WoRwk@6C-JejIvsID1=Kq+7G!O+p&@hCL{a z!S;^W_N}q9*yaaxXRj~|_y6~1;eMKhy?nX=vv8)jG6h@ZXJ8ff_NP_&Hu|WvjW}4# z7+mx!#`U|z%{F68%@{lsDtDt9Mk1t1d=tslE<2O!yIkHC> z+2JemIAbxm+wQ&>T5CUUaSzr9>4h;kesnfYe&@#6x_x?_t2XH(yIoGb{+BL@*zn`M zkYqzMeM=bg7shx>VjVkM=E0MHoJX~~eKW1O>+V~|kaIu+#v~b=VaAr3G2eLqq=^eR^8XsSb~H0NR)>!KzX-|?9{GP9lpj3uKNOT7 zJo4X#vV(UhC=*BiUjbeee&qMxp`iFi@J#>#I}}{)h+jO7dW@4^awAX%&IlQ}ID0c> zs2KrYLu=!#Hy)5aj7fm$fHMJS17e9M_86xCE<)M?cq8Dofb7!K0UuE5r&Ri9D$Nai z=3~2G%L2RrkZJmwn6|4l{Q*p0snXY|bR{6#LtBkX*Qzvk3P^vCO8*uRc0$`9RJu#0 zcd9h^wV1zGrMa|V`YN=)Jiw~~X94oF8P@@>1Dp+rLlN2>z^4EU0AB?x2E_VEn+tdx za2_E2{__E^0$d1~26#OnW?k(Dz;8vmDy|z>AN)*5tPt;#u`-a$= zC^@3i@E5!QG3Wf(1TNnGq06n}U!WIJ8l_duh!$cgzAj3p5Oo+hH z*poOJeosPdNSss*apEJ143o()DFVY|O2U2N8H!DgW1f;rX?o<@Hp3a~n-Md18xHM&O%Abj zu>Z`r4g#2-?5F*R0H$K+H>v4I$$C71Kf7-mR=vl**1V{e$Tf0{8Hj3LS81~YcM8GFWz zyO`jz(r6|$D*H&xSsPr}8(wKVJxv0A2wFgYlH_aItdgoiJx--z zO^SSMjA+;|Y+J3;8&vupz;6Qo2;ifDj{$xM@M*xu06zxAx}vQY@NvN5XoBAZ91pk= zFdOg*z)HX$0^SMuB;dCIe+>9I;7je|Q84T_AC_y99c8F|vWd4uOSO1E%(OwJM4 zm@$q_f%As(D9F$j@ecxPoFTX>ZUb&Y&;fSdLlu~1%@p5T~ zwO_!|GyncL9_%CcLI-jgBK5)+BNzlFH$d5p=P$C!M5MB+9fEpejfrQoEAdVS<YuH1Y+Y6>Usvt#(1QVbzf$O%;cqpvOT@FTPsd-qoJ1Zu={v;O{q7My%N*4JW8puSVL z5zoyA6rId-vn{^Uug0m{2(ByWOvgBWkmp}p_uDq~!8PQ25hoY!yIxN&&PW}@i#S-n zd+=tG^N42&j=AphK!1g-0rLf&(f%*!o8+~F=Hpp*oBx`Flh#BLSu#}kt!@qH@!({{u zMu!w6{AVs&Po(AY^kdxZpPvk*{|iLifbh>>j(lTzNO!$-Xd9iqNMlnp& zi!#YDjSMp*FjT|vqDaFqUJ_cAs2EPti>8v{Br=>DfuS0i7eyMG^O8K`6)5<~^Ro1! znPiwnhBG5DRD<=R2!nNMOTGtrCGnm-JG{|dd1A=+=Gq;bZFm0$TK8sS6JS4H#}aQl zVciK)VsUZ*M^rUhkN)j9B%n4Sx_ekb$He-J`W5Y3E$=nHMj61K9rvdH?+aaUBooh@3T)=!gD8FN%&r8X@&#wjL zbKlp08h9`$KX~7FBX|Vw`%)&#@B_f)@YBE-+xImWI(SU^=6j&yk`M33MaN~7H`DS_ zM@FEG?EY8anyT<0!M3K(jsa5s6M!QDPXb;Ei0MJRnf5s#ZShMmRdB&{Ip7SyD*&B< z0|1Kwt$@n`V*u%>fXBP-ER;0}@J7JFfKLF%0zMCT79fYAc)+cILjkt~o(;%-TpQp4 zzy!b^z+r$`)N9y-Z7TpA0SJ$vb}k^N_mO~3JZBPMAt3zhZA$?!0IUJTy9RAIhOJ!) zxE9b3xE_$t#ddKi;G-)2I3S;sb;{@D6uAeNoFW;MQzT>Z4Kj(N&L!>;aV<>kBc$xOj6l9@ zD3qMeAciW~DpUZSbaD~Km|TQ07N(gX$bp_p+LCu%2t-w)YMg+rW)9Z8ig9<$1v?k8-cuo72#5fcn*0| z5sXPiFczor@g?pl6$?^C;LsLM5r%~rtcVR@7)=qDz}B$RwX&jq^(ho#d{&36}P*$~4)-Sgggsjwo!|+E0ZWffW(PZOiu1?Xl4DU3XO?|)@ znEV?J%L#5YJ!m8>`zRpGM?(`@*^ao>3S&|$j7hCX+)t5~IHi>{+eZnf8ft^$(PS7N zPBo`&I;W=^vJO_w^{V0A0Lb#OAum+33vsC$#-wT(ld6$8sz&0tdToujh;fEzLBo$V z=YXCeR)Ua;X*KY{&4%|-H>h(hCR8_bqBk3!{R`Gj#FKv^pQvKl!TLI^n$i(K%Jfgw zlwL(#>WeX{FUI6XhQxIsEpcB=U-7t)A$b0J2)N)4et&&g!|TiMlY4?~$e+{Hn&F%d z+`R|4k8oxAaW(Wvvn5mE|EBc#J|Iozzbid5O}!pe=~ob!dSy)Nm9aR{@+6Mtp~NY@ zy5oGK`>D4+FTw2$U!+;`9yUv!PCX}_nxl5v(^PPTuiCI|HcNkX&R5-d0U*UG0UQp< zG-YI(&FD>BQk{%RbuuQKsl;_4EpfhP>OM=4)r({F&eAPblxO_sV6i zhG^4m+W={oegqzNTt*;o>coO8Q6Z13u1eRpd}hYvGczXNbd00Jqo-&_ED#vOW zjb}bL9L)kES$kH?ihz73#x_)zHCAEt9|KDH4Llj4|cIa3YNj zz?_d1+l7zja-_th21uEt=}VpZXdFl-1z>WKvIk)1A~iYyvlywg01S_L!MzFe1;1eQj*n0-GeJapNnnLYB`9%2A|;} zd^q-5Ez~5#U;nx8tx!Jfi&o14{5AND2;oC7nbmST{!*SRHpadg%7;C{YDx0b&&Uuy z=Lwo*{AF1B(pPgr`LHiqExq__$a7u@A9i@F<+~`0eKU39i7@rfQmmGGKY1<);d7y& z;a9B4r>l9wuF(3rNYEVctFH?~_;3!lTKFvqa!mU7>j@YMY_x zcl>D%2p7-}FGV`ApI#Ee=Q2TKjIw{Ye~KQ;Cq>X?`swGg5I&a+8l#^+f8&K;59M=( zpz-ggmxu5fC1}0{C9_3NK5tZWC?AfJRttT#M!k;;;d7;+`L*IR>B+dZ(E7Sc(CqT7 zuPa0NqzW3ITxETIrS+-yP(EV>O(x1R?Wk@2p@x7`xThcjqkf1en_ zhhBZFg?j_!bM}!ktPd%f|2RKI(C{5@L!QYYeE39G3-hU;pFi>P<)QLS6*L|AYw&S| z@R=rPIIEJ++<#@k6kyC>o@)io%lK>XnHIulx}b^9Cri-yx5Mcnd}at5&fp9W#DD#_ zq4H!S$7&45GpHJ`Xuo%O?Cao@=g%$?Y88$6!bK#@>bx!&rk%;<&S2jB=W`MqwN# z<{pKaZeku*n7NX({FyO<8z?Z0KB;Jin3!KH%y1L)s=}OQV)iM_NE35NVJtzMmj57n?K_70u-)<~oJB+Qi(XFqfGazGKReVPaM*%tRA& zx5A7vG5D^g2$z@`e34RwYfKE^MrD`*3}+m8CKP72iFsdPW|^3OD~!{`SlQSR&NDFy z3Ny^aq$tdVCT6n2*i1~J!sM73F5MZ5ObpIGi%?)p<_(3pQeev9BdJ;Gu92K%3zwT#ftW^DlSJUI0owcEQC2)}RsnpeW$C`? zIA1iw7tQoV$Ezql!(rTpsBs&j#%+iiw;_t#==E3oiXtvHS|wJ>E8>CP3ZjC3)=Qy$ zZ)F%X=9jS)LLQ1%33ZN4rPK#Rj62I~>uRej%4^J@xKkOSuQM#zVlD+!0i#z`V};Vdm7TiIj_Bo^PrL*#pk#=r?WKTj3$ z{3^j&G^qVTmX?*}@1J4TU6?k1mZ@pi(6~h4cxq25Ug~cP5`P5z3P3ZN#v=k}(X0f> z=jS&fz5>@RiiT;1aQq$wza5}kLL(9(62G0ucn~y8osuq+e7nGJ4QS@k=t79Z@0+ll z)`2FO#s@+qelLQ-6wrL6G#`l{*GDN>Uo61Iz_%@jC{7AA{!oSV=bobm90-0=|UDwfsUj zeym?F=*}72==^3QyH?Re1T@PybX(A071fDlQ4S0L|uibfFPPdNSA z!KMpz?~jPiFBkWpcdn#~#_w^El!2~qWORNrz$BgSO}`LMzD$rbfbNIqMd!B#eD)|B zgJn2=ZD8~0`4;U0y08%<>F*rm6(|}(h(F=@rGQNt=-T3_*rGj+i-C0E_{~A~UqLhW5+7YS`QQT5mV)M0MTc%5mR}aw z48GK&2USC0Bk-4O*RJxgh>5kBJ!F*^AklEsXnN---G7x_~`s-R$Yh>p4afB z=Lq~8PQEl`G=t`c6QlFH0r&3#P5LBB7fHT&WII7KcXD)o>>ur*`LiEgIQce#O~Mq5 zw%rk(Uk3Pn4x03-k}i^bbCB%>%|p|o^W(nH7SQ}f(UCfweB^f+G!v&s=l3A)uLjL= zMHi`m90Z$@S(uMzMCZr;o1TsShKnK6^WKB(+dwm5W^{f}fJY{1_A0ta?KvI=S)3SO z@}l#*6a1zt8p_8IPJi3M=69gGcUE+M^Kt(s(AbpAE7J2qb=qa1sh|Oc5UIam38j4v zG&>a?sl&;40Qh%6^E*~FLL`18k=LVW1R?%};}-)qg9|L$kit{*n+BQ%iY}6T^fWI4 z&2>em=645ZzN+XV@#_V@?||lO#nJh3zU@*ph>8&IdAB3ykDz;GZghSu_f^nrnJ4KY z$@d~M{s@}&3!?L*-T#835yIh5IQjMfzZrDjDv8dI>zD0{=2ZON2HnpWo|@l&MH7u5 z{mUPKZtJ4x{1$?)SJ6b{mjX70*ITrP8=~{${IOBdoQmJapc|c1Sm9|X5u&4mYtg4%b-gD-7ZBNiQh8N4XQXbKiXF-K=*W| zq>aSy3h?`@qCr%IaQYh!HnA>?mR1#=pA8(ADH_Etto}Iu-3q$W<)`NNfTB4SzsEp# z?}|WvcDwzWnaZTRpm8dEwSd!DZW8CQx1w7&D+=3PpPRTxX1U_^ma?w13HQ!iMUFn)t3teZs ztEyZL!TD@B!8l*R<06%1YH{3Y$!4^CHqfxu;@3*U=9f1$l~=4lkHSVmMH7zAmN%@n z(`Y@4%ZsZ>lW&O4oU%Btx+&kiY;nzPnOCQeoisLMadUN}yS!%c!ujLU($f|%tFB#K zx9sM{HPy>NQnskN7P~F;Ts5xpMi*~dQ85ccs0kz6mY*w(8pD_8e%Xx(0`N5hxcw3YVY_9(FOkHCk=m95#I%hm{yC*8IBy z4wp*&00Tc0udL1ITWROxCn2XMkOu>Yn3dJFb6mB{n^xchf`f;htN61=<}|Isu`7wQ zXzoVH<&PdHNE=-BW$xN0@OM=T35kZ00Ca7gl#rMK0)xg`Ro$=>lox?-oM2E@-dxwf z$K^PO+L%|4I)S!iK9(uWpXo9h5-8@^yTD3<9)fj?2S6S3 ztZ_9C8z&%#Mds%SmSrw&C@@J-Mp@a)^l_7dlV>CM5-6#qVnumFSrg7h#}3QI{U{J^ zXJvU48c`EYLB|ergQ^7Eb3+ifBc6T30;iCVPYz9Btc8dea8YJhv8kunVRKF9b!-Ub zHDFH>$)2qq$;eMfzF~?Bedvoo$W|24V*Jz;Ns{o7AFt$Va4m;;OvOuuV%sk;b*gfy zNUFOeeFEO?kx%W$`(XS)+4)HK%DRT?b6Bs{Xmbs-hc0K6!BYrsmgiWKPgOmV8ZC!m`gt4*hDKHl^)Gtn9Gf zMY*rMb-we7f1KDoq@nf3^H;5V661`(H@fEUeQ4OKD|TQ0{_UUL@lROJZwdT^*$>#0 zXKwr8;H0yre|z(|G`v6{@Ue3%R}NhF%&5Jqhp#z*asxaK!|`khmRB=!M!vo2H+Mgp zopSWt8HH=%@DupV2mk)e*C+u`KR}{ zj}hPT0{*=FK7Hc(8>htI`rg@_w*TU9FJZHg;11?a>12n7v6r^-#=RVxa|Q=J1X#6 z&Isp?*RA<%+MxG8|3>0(>hLK5SkVcV1^4w_e(!hqjsAH8bQ zgew=XG$#f*LOBpe@IbT>8d(&J{1j3;L{&! zDX-}VY3gb#+zkz`+KSbU{lTxf-1l%1>*9=iUw?HO9NfAYZ%v(XFRt#tUfj}utZMs@ zRb&6LYU)2$_5H`n)qkv3^&cxgPALo0>|-0s=ex=qDpuI1*;8EA^>!kch(x1IWZF}a z)QC@UEvxsZW0s@^KIFzpXLh4KWn6|}nrXjUl=5GT08Wq{^7lU{Q^-mEE@TL6ATq^c zq>uYw6efB9Po5)?wfSKE_#FKww!!ItDP<^cU)@gVx4NBRJj$7O9FvtP`NaNfgHf29 zYMI!7Y8n4OU}dUhLR!C7pDAZ3b5ku7`fo(*#|kxBnUeQo^+jQBs%29D)xw1F6Epg; zsrzv=mBS+XuTA<39JUBkOQ6i`KSibYqndoY%qK|iM-@e7Z>lG~UzDR}?9Bcci-UPV zRB6|wkMEBrdK&C~)nSfKXEM2{68oiUgL(Os)1UQdiW-K!PdSR3%TB=>WvRzC`y5<@+}DZ4HAtH?>`HjIdl2X0lOe)u z%~+iHw8t`S#E7T?T2%W}&5hyqr&`4RRD;@|YOY96 zPa9ibxlH@`BZ?vpg28z&0{MrFbDzw>Q+6XxXvFP)@hrc1n_rv`dC~)DOL1l4Vw^&> z8SyMcKxDiQj8s4%Juk}202i}J8<4UxZ!j(f#+koJGb0@#L^`8DaexNjUPnVNNpfr49 zKl`v1KTe>>46g2YX7$9!Iu8!hUrUYO;7#1H_BcQJ^CJJ)^15v=bX9ro%cZ#BH~^JCH9Tv)j6(N}rj~SLK*Ftk1T71WBAdlP$LO zae_L*J2wVGw0Fj|cl}4->v*m4Qr(gW^ZFd!jb~Ts z1F9Sr_n`L90qvUyfO_z~1EyHqmKl0y>K5UZ$im=i1iujFJ9c>YuH99i<7jywU_n25G#v z|Ht~ar*xC2U>8arODS#ZKgE+9k~W_2eUud?a}N9EG#v5fgnNKj{U5-&3j&LW*yN2L z?&!9yZwCv9Gof*fj$fx}O~9|SP-{COfTwj6WSF398Bp!REE7MwS#q$wE5^E8Z`}lm zkUi47F$Gyd9(SuD<>~5Eh-2Nu_C~F)nG22jsq=8IslY=s@hdkX)d9_>I(Jz+52YKZ zO;q+TMJ}Tv_wW;fr8{3QJ?V|P$l*NFGR=GY$&78kX4hTcx9S?bbU%Jc*7ib&?S+^e z$L8jNeCjmJQrs<-a* zF6l#ct?zT+su%R=ot+1hGTxoiZF_i&{<`gj&dv`KGPdEv^AC5f-`g~*&)tJhoZ~mE z+B;&3yPWvtF!2pNurA%i@BVkhpjRHg8aWhE#}A(t?6+=}0?tV7L03ZeY2R|PukX-L zK+xVd!2OP+^kBnV;yda+*3Tvnc5f>Ne{Wt)@j*~%s4it^<2>fq?(}88IG;C4Y?=+a<{i8qYb6uv2=IR`cG`@@TvnI z@QC7IYab!fy?ViR3>hzRAe5tq{t$;&j6tcp_4u{8L*JYFjMJJ1!66>~P>D{RXJN1%X z_<>sXkb;wI@Z+hmR*c*S_*27=7ZQAB3U=*cVyAN+@Z?$Vp=Vxqd zKapa4tTUsd{lq!8?{=*3ei5exG#dx~_*6&&HfLeV;;HsTZJ8PKB6h97ArkUyBz!q_ zCh*C)7(PeZ21r^Sj7c`A%UhfCzy`4PV}H1bwoW zGEs&#fd4j(7R@5hb>vppR?exbUG8cq;0X`$F+Dzj5hQD-{J-{iAyid?<1$0lXXvj2 z+v<88_K+Wip3Y=`_3{<+*pBfj`X+FZ$8Q8>5|TvKE|cDMS0lt6GK{L@u^gUg!2ysV z!|XutAd7J_MxKZ9{fOIA> zVcQbVcgd&hCf`>p*Qp03s8Dels|;*_jI)XHD#gWM7(MZ~lWb(J$`NQq{Uj6H=3&X%YXc)K$39+&oEXUFjjvI?MxnSTmOAPSX;E0y8h#xALA+52V=@EtkRndE2=R;q!$|L)3&Pi zVG46NPulKhm3Z(2H_k*)(xI_P2pef1&82;&X_e~S2jg_R-nw&g;Bx{m@S%Z-OpK<1qTh|&$j+MM3f%!uIXF|6z10pI>}nLPY%uju@8rPyZqVYyFu6v8;9|U7)VvnD3 zJru_ESun0YJygarJ`J$1?Pw@y`mnB5r96-WBG`=()*ExK$0D1eGO+Ky0-1--#UEuA zZigv&XozSWFbtVWE!bo2KGe&SpalLBxDS(zj19&>9ob;y*FrM!`2GfCHqxAH+v1E*zIH&#od(vG`Kqmt$V2gfX2M&L6u5E##~0bg*2 z`Gkc#eoY-2F!S2B0y0hAFwN)W3RoJ3jLA8lu{iBv{FS(Gs+gMdvpDCY>nzmU>BG{W z;{c$4Rl2eE>+PK77wN}SKgX1fk}Mj22ogVF=4n0P=z`bkZt1l;qPH7ftIkwsf_|Jo zpJ`G4tL^$${W)QB_I5dUK}^kXV13${fA}oJDbc6L4DwCiJ5uA@y@~C?Zmg|vW93LU z)=AH}T*s$yV{vLfrn`@Lek0si7QHpezmm$I#oPxAVKOX)UxAJ* zR}4izK{TUpvio4uBy?RX1ac;%VsvotOMM$og`%D7-&lPC7j!+|{66Uxy4Nx#=4|(% zqFIg;cYdswaB9`viJU06{s)U%4Bw6&%FL)&)8`IlW~?;QFf-hV-rR7$q#ZtA($Q4+ zPQ4&0_0#sPF^;3Q`z=E5eR@f3J@E=41 zF>vv~qj&W1b9yVCW8OrEr=){V|1;deQM!%I#oDE}9!veqdfd^9U+LRt%WLIBd0TuB zb)~cm(s7sZAdMp)l*loDNX!|h^7F|@i^qdmcQ{^i--a?9-7xI*)}=8ny>hl(X~D zT%b@Ee{Q&SjMj9M#d7z~T6EFM`TTcqd+o~+A84t&*4*DQ|F;n=r_zkE5 zn&E`oHN&xE%>gnKez-Snch{f>Q{OpsANANeT5E#0E!OtJma6tmGkBxLy|le`m*&0^ zPBU*~-}(;snp3*tQsDc7qYS?ykD&vNS5q#t(q6+T+kSW&RES&@j;6Q^Wm>mLaYd5mE1KfXfxQ{h-vsE~Ite?X-w+ZG0YTn;`I4OLw@!oq4 z-(0u;3Vd@g2BA=Q&s^o3Yu)ZmOrq;ziJfe@@kCf- z#U8qxb%{s9gE>>$Thm}QJ`W9Wbo(hFhcwC0*8Xjg##p%@_Ts&M_Ts&!z4)@8d>3xf z-%Neo`gZDOPiY#KbIN4I3%M{xQ-swhM$b8d-+ui?F=Ie&aA~R)3C6vnsUOpUmna>0 ziLe5_OJFr_hsPmRT8+P^>ZSW`3tZE1D+`# zp!{DWKUvvs06;o4t$-f_f>+z;fZ){@i|HU1a3o+HU@{=-9DpdJ?OMQi zK>WgtHWZNGm$dxXz)^q;07nBZ z281r!mH=J_SOEyHP+J=y45v1X+OTG{wx0ry2iy!e0dOZEKEBiT4&aS|9|5wSVljdc ze-0pAO>H9prvhFCh%u%u6%Zp#+Z@2@fC~Y00G9*K1iS^%3Ahpvb<=h$U>@Kaz z<%g|R={b1ysrY#4R|YHGhicN3*ZBQcK~wyYX#(32ED5F z8DnyN#u#3~M5~iHeyvC1aO{B2*cCLIZq^o}b7CZBLb_#Fz(KFe*K z#c$}!7%E?E4b22JLYj&&kAbrVo9PMwxH8E(VPM)M6i|daRLm2=E&(invx>i64n#t<+3=^XJUkyZtN`8l34U^HtZtD68h++$R0 zqb%5E5SpJXG`|WM#)iV$W1*vL`7lM|mJb-IzkSci(X$apjb!Dhhy{}!i+*Rvps6N%t z$Qr-ZXKa%(&4ySFzWni2rdh;F{HeqgXv~(Q&Jp>1bDh5?dM?N~TXMbwSx$L8 zYT+*7qj46knB!`8)!^8WoG;BcozY&UljC|28Ntv?ED&=PGS#ZJ@wvwUa+mOGK!~BG z0}fYd3ULk67brXnXPVE1K?t3Tr7$LcE{m}^4z~(7TE&F(W9^X#K`fmgusY%P*qYi- zvoTe8J*Lsy(U98bws#5F2xzrFcXFRQ2`dA*hx^>|(qY*Ca52JAR>zfvN6HhL;eljHD`0dlG2of~U%Ee>qKZBNi9d<18?UOv>&&;$Q?)9obDH?6C4^T>h{LW`q;K6Wl@OoEJ;aoH9u+hR+*bjx<>e(5%BX&Y?#Q-VkV6%{S3 zxMf??&^8LK5h8rwpL5Q=b7zu3uAilhnp^X+6pDBi<_YX2E*it{f%f!K4epSe?i8%j%U-m!V$I^qb>tix(S+ zl^xIp)NCUHe$#aBOahytfpa_i;}W zCDJ}k<^BoYf|_by;!tcZEfp2@9hhz}*U?3tjxOr|P@sc*qxyzsZY}hZt*K3i z(IgpzRin`)^%zu;yfaX^^!0Q;&OetXNw*wVnS{2Z(b%l^#GYV4fz4`9x?)-LCkYxW z$W~dbUJHU;jm2u4S6VZ;5A(w!F4J`XRZWXi>kcPgiH&@P{9;tfRK6R1IbEi_UaY*u z>h9oTKYzY@hOt5r*FBq6qeok{HmgQ#Ru9?lOuSY(lUj+E@28NwSJD-Wc<(1{j8z03 zp``QQ-WG~OIn><}+u)Tq%4oIck>21&P_&irNtZ55tyO2jYV~u~sgxv5fs!Ov_s@z< zZp@4aw6ql*PTd-F)y`uBm!=<0qWb{5bdbWOnr;KUw2>i&#`Zj~Vymw(sc)GT)KT-R zzRpOMXKJjuDIC>&Eg20iHzur0h~d%HhReFImxu#7Lb>O=J zLSA{jGt&$<7^p*NS`I}IqiH!De<#2|?WttWf6y!6A8&Ftnn%yi6rPnXQ~BE>_w$`- zip?7$=0@(5`viPq_zgp92!Ky#oAZNS*@~`#PbC1K8oX!YTcV(cs+Y&trOWHnWgDFm zbO0ab2;KK7`b$@S4lWyM%0_s5Y%~a!IEYu@g(W1~21%Y}&9b`Kl z#28S&siO5QtNm=J`D!SR4stx*u)4EXwo%1dz1;TeM|#tz)lS!`kdiA<-etj0`z-jW zfiLqvYu+bSY;dcxJ*jsJt1rYlJ)(K>8DW0#RJQRLevt7>m!*@7(xo*Rz6`%BZw1Yk zT7M8_`D348ddGErFc5;fVK`h1f3l9+Q5@dlMyF{6M;5zxQp)03<-h@PFX6 z>GFnjvR-!RO)&m>)C#$2qNN9E!xR_~Sm+Cbow8iCOCmH1RJq*#t5-eMhHnhNm$%jHa zI&gry!R^%M=BVW$#^W|J)%cuB^u%r?*8>)B7CIF5aJ6Hq# zF!kkjgq10A3<57Es#nb3VT4tC^lgOI#*V^@z71NJ+U^{!+a5@&MklGxHj?U9B-N|Y z*O64bDai(3aD6yacseYRx=1H?8QB$lNn%56-X~PJ z)w^X|iPfTUpfA+No2=kT-Dl3>6Uz}@|0tg7hO$4>v_Y8N0|v8O?>!fPDf+T>|0~kT zMh&3LcRS%_#9{SLuW3}e+Au2AVKSr*zP2~!qgdS=rZKmAN8(s6+URua4>MpLd5CsR zr(*G>3u@lW(&i^OCz5+&wG+X`dS#2iRRc0kJX?7!@Fn^bJmGSN!~pHK zq(Mj{49oVkTwwavUiBT>b%Ha~w@z2}mhF*aNvbVceTG-Q%G>6>t&t2Frs`#*9cch+Wl%K#&O zD}6cZ%>VCE?lP{01MG8hcYo}O-_qUWrG$ruk-PJa++EPTjrgGTIk~H5>C4@f%u9{j zt(Dw;imStN_Z`XICCI+$kZ&D{OZd{%i zwB2u|tpOwr?ShRg$(#^Q7%^N!y(?tS+T3dX!^G+kJtw zU34sI+kmuXtZXdszO>!%r0vd*(w33W{B&|b?w4ex?ZQ;`ZlrCE=>d&_w8c(9kD#w< zqIe8x+nANME7Qs4>9YECxj$9BRL@{+B57;b&`%U_eN$x^ps5)xx5$NN6Wwi8XYMjhIqoux5V#K^ za2r6nAPI7e?P~h*1HPl0!rPPSbAD!Mba3f{$`M}a z0%TfhuL=<<%3N!{XM~qy|M21 zMFGE^(nNXkz&XvjL+9>$wmdPGj~Dj4!^W;~Ae#;abC zE?whMbEV6uM-8AD1u=lJb@}#RG*a3XeLY=K%ZTe@iho_S^dMy)Z;b-RQrV}D6jsM* z6B^g?1a2&6ZVgE8;0e^l76uCX+M9Cf;)>(f1@rF?)!|jtcCSV>pk1amd??k_V@i7D zk<_|&({QSHgzCe#mXEj`-jY)v7j{}7y{M0-Y<=WaMz5nI=f_6UEKOz5dBhayuv7r$ z&Ipals6j!Iu2`e-sPt=Fn?L$TYNDDF-b4FntL&xWsoFefMAPP90!%u>HhTD9hZeud zw5bX7WtH-cD&-!2i@!2d%13hBJdZccKKfQpA(yWtEA!7A;WzspnUc%Y?6)}|>dVqS zz2TP?rbmFkEJ_@p?Hi329oe*ewR%_5p<=ep{%J&^vUq(>k5IEeH(Si!(GKlBuY7G| zr*Mm@+UPd#fcG+jD*oIsQ#@r9YHhlFB@AJ`V+e2*Q#{w}-G^ecZ^_*BCM-id!FHoT z!Rtdj!8@Gg3T1nvuiCCAu0Zi5Yv=c-M21m9>n&rr_MG^${&@TBbkrMuc42y0VQNEB z;&sXgpgcMPIKwI$j^zv^kI+OiH-|ZcZHeEMq@jp%TjF^^9*d?l5A5j*Gh4}{RTidWK3pQL3DlUogT^J)TWbKKEU-YFVsC# z^)Y1Bru#3z2pOv#tLMBHfBk0j1pjvK#bvCbl~$IyqIWu3lsXLiOl^2`Q?FJrm-iyh za91l^qw;U1-EL63?KS4Mkrs>@ujm_3_Q9CR_%!ri?xo%?hsk5M?+pI42!Uh4;4efJh!{fhI<|0t1B941vxLNfovYLYTCu(&3Rx_YLe`1c#x3OB#t9Kq-rpi7d^my--_^Ya zHIBEgNBum9M)(7$1%s+6NWE{Egmd_U&M*l99>IGhb1iBpp%GBbyc69bcE*w|8XRH_ zVsKctq^Wcn9}YxdwbSWWeS&*D25~1igG)?~8Tq5kHe3447d($bd7p!S-#`8K7X0-Jvxj%xmlnW{Hx zkqtDIQhb@UI4bt?bjpjNq0>THjr}e)ebdHM=Lwx4O|(TPRJRMAKx^M>R8T@E(Cc&1 z3GGp!6`&Ka`E-s>*cxb|mWH%YeG{)f&_^~O@?yLNWclfUQE1JYdcY`P>T$JTb!aB{ z(mY)wJw&oCRed4V0P+_nn~mt8;%XacMtpYO=TcX=A=T|RJmoLTZ z%$a*$RoQ_*`6kpl3mY!5L1(2~bKwg6j{#TE;z$mz@Gb6j?K5zhe%Pd@h2{dcn09W{^W~j;fVa@-?M=Thw@r|Gf z#)6vCx1L6GgMtxWdvrxI(KBS6Ci`D*&0>nXcFvwvue@ z3a%hff&;B>4R8u;%nZEMSV%tOrn4vHOW7KjM^M6s;0hbFLPl_fy)usoknZ3LTO}55 zrl3}aNBVgtuQAYR*7Z( zE+(06RNE>~m%J9%EyruJo4gUY!d|S^&SnBup`GtDSOplR!74~&iQQ^<^M8?I8qEqA zQA<-0G**)}`Dle7nf{uGR@f&9L?DN9(Fz0Yr)l2n^Z3e=z#L}a3Ie+NY26Y=0bJoc zNup}gwZ-!QOQdG%OnzlMoG4mhMA0X#G38mMI#J||DNZ7;3zdC$g%G+&5DTvevCvpG z&>$A}HOE{l@__Tx$Cy{y#y# ztL$&a=LWy}p5Y9Qf-^|M`EZ6ECkkhPk1q<~3~OXyVFIFpcLo;V$jiNQxYE)NaE6_- zu4Id9-isE_fVeb>hQBk2hJ_etES#a?*l>n@bh9j+L1(7Zbq;5EU4tHGY`_`5@mInb zb{jYYQrd?zly?DVSn9(W@MrID1gV2FZ0!JNKnuH^Xxd1j@3O#f%&2;@co|=itMiF z&`O^MvI{@h>%??x?1|lc7VA%FFrNc$5MbE|1GPj4ZSWgq3y{K<_&;Z%4PWEx4$y`b z64G5j8{+osa2U*fo$+lp@)`fbAiA6K*_gbAZiv<0t2X9O6z`_<3gI9yp&MPV3zeRa zr_jXAFXj^{(IyLM*im(R&)!{uvc8CRe%N-!DKa001c=wasds7Cw#~kvwrb6 z$HFmLK!Zuo12pUnrlzx0DtQpX@kk2;YKYabtlDwJFfc+!c>9sT4o0{$B!dHB!$Jpa z*hv+3B7*@oG*Tmy!Cwtzu!RvW60l(_%_;ykorjBrOM zz=l=_Y+wbJ?A+4A2wRU0Y-qGHc%B-pnO@?`NKaTE$Y5M0IX}J(UY?b~nD~&vJ6STs z$zW@^*=XdYU=D^oNtUXx49wxzDr_I-u)kB71K=_`fLS`gfQKBKfev8eOiw%^gu_CI zaM)3Gm1J-Z!a;o@i*PuLtQmxZcT}7&1aH81XOZ9yt%5f+O8Rb1SF6am!@(OEvLQR1 z^c|K1Z&)q?oGqt$uS)=etjcju7 zE4*QsG0s&m90uM1{L;c3>N~(2{JQ*|fj8{#65gP)&%zsahu{sn47{P+b+MX(g1+{| z;0@G8F1*23M@M)=7d6r~ykS?!?v8zw`snL&m}^x2Yv2vGGU%u1>r0m*{LFA|Rl1_y zs{kxgV-OA&-q6te_8;gnK(so*8(f>ug*S9)@xUAShFj38tCUXw-mt49ykVd0_tm>Q zz#HoSYIp-#{1*hGviLs-Z>aAa-oU%H24WW8usiTXKy*XuP!Hh;mZa95)Y7Z&`Km#LK{2em{}POw z$==r0+8Q`t=>p8KKT1vp2*^+t02y{UAj9#nU}Ba=zn+DYBnJq~us@4sIGU{Y(G1Bx z*g(NF7&LkiN9j` z#Jsf_vRk8fjZ(;8gHmgk3$>tZ{J&h3LF=1e$UB2ohx$eOoO-2!ZRiUpPB+VS04FIr zHBRjGFJCcr;&}F9o=`P@GBAdsQ$J4Z#L*MjKD(0r=R3ddlt?dgx4XZS`(o~j0=;48 ztSYmjgq9)5J|5h!T|Yu?!#`9nI@APeO(+t1wufCmVlPz5Z$m!>{cq^Uq5Gg1g(A(+ z(a_&RCqfy1)o7N;LccY7)}Nq9K+5R;9z00r-+=1;ThKp4)gE-NY8y_wu|NuiERaH> z;>b75f5m;vg^DBEB*k8LtqYm8DC|NHbM`9($HiCtwcv_}HTu_r4+^m0!|%`1EXytU zP*!7Cdq|ft2r7UPE-&2Z$E(oVjYL2(H#_0qI~}&H=B+Xw`=hCi1Dl1b!&9{f6 zS{kyc+Gyy9D)Q?2k*fQRJ!Dg`0t6pZy2fl-vl%mM-Pb7_Q0>PxDKW`I>sivdNlBZ= zP`~tsmQi7Q5*ydl4mA#qKr>l`yG;$bxBrtFjAhm-6UiMwHA^({sVHgw z0dhbKXs$_AtepL0z~E+Qn;(p}uFs=GD`=Lm^fpr^a*&y?l^qgVJku@eu*=`rrg}xD z-#{*5@ywGGZ?p3D+tCAdF~tKck8YOCEMdva!Dag^&s8>?;@P#g$5G5$bz89XRkkqw z&%!6=v8zdLF5#bM*40a43pmr-{-U)920LT^3dB4*eIai=xjAM=AMsLxb=k#cK!q6} z0&hzkYswyH#b-g}ij`p=w30`7#kmfSi-1aFD25T$FfbLyrryH4@Ru@th`FX)Yv2U= z&mPBrfDRq>*BZ#R1hi2-vAKT-x0Erwv|fgL%{;LJ)F&#I#O6lTcX945En#R~zQWi5 zgbZy|YI_BIQZW_sYptN}nlW2MIcu*hit8wRt%kl>F<4dp$wra-iM ziB`9EuKg@3AolivHZR*&>5Ln~KsfHQEii7p2jxHLI)5#J8U70^CsF2^SyuD!7E%uJ z&FuTuW|`>;t{rgDYX4W*8m=~$_=X(i|H01I4lw19@_(n4|2tWY*C_vK<`g~NjC)&# z1?AoxDF6MU&no{FlU+N&q-WO-u&i=cCklUKcZW|JSmH5pXdTuK2pipl1%(&3RG9^Z zyD+-D_C_~W&r1CZN`KrJ6UqIt+9`|*Wt*;mNA68L8%zC8T(f+$v6IG9ujmX1H{<$U zA_Z;P{^llC7Hss%MD>!{|KKI}_%{2xfRhGmJcIL4KO0YX7O;jJSC^#AS2aJ$mO>6p_FlZyw^}dty!S{vpB`Sq^u@ay{6+=gC`UoRBDo@n{?!URr{b59X(swQtZ@z4mpXW`gA zj+zx=PNf#$*I~P@!B=5tVmWBs(6cMTlsL<62YzkvRU>j%5%YE#ON((R6%d_q1e}jJ zXKA@F6em-oSxoHs8?ZgAmCut0P@>w@6p7KAF!gr47vcxuDL|-?I+}LFWpbA{mO}d#~Y5;7~#k%k14xR~|T#MY} zXfz*C&n!N#6E?om*=-w?d}3^Tr6!pUOB}HAr7d6PtxcsXsl86@wgDSwak6@AyH#(3 z$5fQak@(Yv+*Q5bcO+gOOSR}ZrOV|^{58$tV0djnL*-1oSL`vlv$=$o<;BbwY7H6B zW3d(sz>3vup=)8bfT8bk41HG)Lznr_FmyWBvUK_K zjtu>6czN@$jooqY@lAsJ^E{p<0|Jj{c59NyvlzEbg8Mab5X>akB-mhd2^~y=jj_k> zcuyw5-T5ZLh7KOjJL21&JSvRI?>Uy^_q<RW|vAcsWC@;$M+_UbWtYL0lhB zV!Vn)dA^g>O=sTdr6p8{x?Bg}=iRwB2kK;i%i;TH9JG}|Uk8^bnM4Ip?n_N&EC6zX ztGdQIntyI?{{EX{dKv->E);TqMl`w(5V8+8fQQVth+`k*Gd_>hS3%#Frhu~0gg6XK?37D`2(n7yzwZpxcS`o8pb2?;u_ zb3W*}jsyyi{qlOwbrs(&V_}ZhbK?VFG;Ae@k$yPKNG<>D;3~d9uL=3C;-<@5W8n^X zrI|z+;-*v9LAISlAdc7B-%sv9PrhW8v;@8VkidJ2e)D9G{P(oO7vP1}3X?UR_&p!PP&f&;YK?t+f>6)EP&n@ce(EJy80~eRC1eeSW!P(M+~FW} z0s1zZdRu?rQ0Nir+EDn9q}DPD3wty35L9&5!?rFj{j5_-FsUpiPH19Y`b3kSH5A^J zm%iSl%hY3bw21r>IwH?ds5~hTi=n#|Fh^J3%rj;VXHQ|@pIP7HANDQg>~F}QITCq` zEY0#W3Dx)Nzy=(dWI~iMp2Y~ONKYuuz?`cnbUpyu3wohD--gLa=g&ixelO3{`3$Je zRgOAWd5mD_ZVhY-Sp%Cw#Stm!Y}_IjatpiHa2pn_F<#Lc1rwzuV?WsVw&pY1%x9M; zUon>Xt>~97ZOe>4$iA=`-TFqG|DMP#e^1jV5ip;TPQC; zmTO7i2E9(s!uz^(7Tzgm;ct+0Hu5vfNoxt0?vTEsmRR)5JG7IY(aM#x=h#-Zxr!b} zS#i0HTyhtFnyQn#@P9y!nz$|GF1#G2s$B!`mx-5=Cj^G@cf!I`PL=5^sHqxj5TAhpCm&73QC zV!ozYnC0iY32Us3B3paKeH0s5;3RfEHHZwxTqm`!s$g&U%Bo!6FeU3dy_3}D?W zLa^=}Phl2Fl&92{D@Jgq) z*2bf_&EbI55Ecv#9X*BTYhm-OQ4y3JGQ#*D89|{5t8o>+&LHpKqkLfbS;T_fa+QV6 z8*=T9JLM^SbD{MV##m;c{Rz&!vX#gL<9T!j-AJbWB*nB_D%wO1iA5*Z- z7B+9sRb%@Lo9{!pkY{<^XEfPbS=ARSxt_xJ(@1?rXg!4mp2%5XwVS*VFC=s{%CYl8 z0z=WtCz=ITofpzxV}v}IUD$kqWR6|fTtVLmIUf<4^+NhSPmvf786gc6S!*nJv9P%j zH}CVp=KI9Vw6HmQgPX1`p2xCovm}O?*aeH54-C5qZ#An`tfY*QOo9B#H%@l5j9J)x zpEXX_%Q)HYRoBQ(xHd<3*`eUykm+$ER;JCfyh7Sk`%U32J&yIT#^u9U05j5={2xO zv|N%N!a5mV*?grFUwD799Q!Dg*hBx@%w zNvO?GPhv$5J2+?Ef*Y(HTR>;9E=gcV=oVR*q}k@2iayS&tGO;oOX2oex8P6c8Mspi z?nvjFh#meK=f73mfjcqluI{7%b-Kp+C+*NH#|tobV*z3?QTcxvYD}4=)6XKEm-JW zXJUWN)-$-jZ$@UJ^S$0S56|HKOxakCzWE2zalaQ6@?L8~WmN|)1M@;rmJ?+Abtw8x0$2Dt_A6hLtaQqs8v zm%jI1(Km)YgG2JUK36_#wSc)=9aJlMAfFpFVLQXf=cUN!26+av%O>)9qvmWh3QRVu z3@XSWg6P=!3!Sf$XYj$!JcIY;OXZx2o|DKH%;>}N0J3DkjPFq%?=bS1g#*m+Z)@y{ z*Z3q19+b2-FE<)_yt#Q3@n&+MR_Nrh-yr1`Tq}oC?RGw23!X3L>aaXE3!Y;DXzR)= z*lje@pZokypSRJ7TtEDz?(qW_^$r=AB|lj{suSa~M&bUGv+`FnH9z)5=6_cBu99(? zWoS{8&u1~-Zb{#r;yGId4Ppth9Y*?YWHB2feK$MlYdC_?CP7^oju31#V$y?!&P@eL z`r3ugcS!o~G}3o^zG0b#L6#fCayRxA0bUZ4yvsu~&mI2EbBQGH4mvlr2FDA_EA1%) zK(yXD1AjYD@-CI+MM1K&E6FQoU?X`u-%}*J`_+=rtg(aSU4`Uj;GDC{`BpgtBY8J= zbOy$l*l3nZ2!Bad^443)n^GICZeRxa5Fx)aD~ zxuh+gz+2@BTrW@Hjp=HYw^q7G+Oq02qcmiNleWXGCvYv3QLMZx3)k?`)R+H}uj7PwG^8{|qG5gnON#p#5&i8a~T4w)u z4F2sh;qA^b__ua2_>;T8$`iOf&sgOf`&+HCpAj$`IY5&b`!}cYdXSZQH}$CT52K)< zF6~0+2W9M^pEdTk7l8XQ3!SU%ow1+ipyg(iu@}U;ssgBN_v_-lc>+@xxyF859bU!! zJiB2RHB!oe7F0t2j>i7hTw_1=@&0=P+sdHxX!T7>pAN(bZLfhxQJRa;S-AQrUD$k< zS?FALgs`Q*zg818Z5~Vi4!6)bjITqB$I{O?ya!L<){dUQHC{QJj~wh^;ooyCPhgaP z{blA?%kR?6PZr;2PvHK(aeqg!&^fyq)uzkE5OR$BygS#p-~U96`~7o_`=%LU+~3oE z<34ku{o)LJbBz0~9gO>AbDpH+U*`#Y&>8nnjA8b*FFrxberF7m`CP{y>Vru-gXLh{ z?=R#2?!4m3H}3CxZ^r%pdHm8h?wc-Zjr%Z3R2ZOo+vN#7-+2O~iy6>Ep1^FD01B`( zPhj@#$ngZ;#dp1>E&6Ziw;?;6x-_gwDE54bHb?T-rlfIHi*ptDuwsRh4$ zvtS+T3EUR;1m2Tl+-Eq7GjMufrto~XO!==dxmg4I9OiO1w33iDu>U$R$q&J9Yg4BZ zvZ>{G^4Pea1)={UWK-Y3+HSpgd0dAD#@{8ihWG*ebjWx2YN)Q2|Lp#}^#5e#@3={2 zfoszDpc5sS~En z08VgP-x@vE9a&SnoOb(1PBJh6630)UP+2v8`n0OavnNcijGPuq8N){R6Q^FDbM>Uj zTs`yt$+M?SpZP#1R}bp2Z275Shv1pX*%K$@=o;Fnod*UxwO3KZ?Bwq6)ZU-#RG`|a z{k{ngj!IU|N>(Y6EcHH>l89(&Oj2(B!qBR!$@k5wssy)?zh!#|?_l2tS6id`hssyS zTz(}kzPZ4f{(lcu6}3RmhyDS2A@q;Xi=cmk#-RoH(0&@)16mD@LgztyLKi}NL2sii z6+x#$b)JIuRyy<)=y#x}LTAy?&V*J%OQ3V1=R&^*JrDXlsIJ=#{V?=7=trP$Kre#+ z7K)6i`4e;?v>kdG^i^P)tzs5=g&iR-7XjZduWF9 zKS6JU9)^Av+5;%Z=b$G+%b_voSZF`!IOsXh+o1!XpNC!mt$_wW8H$~|=5*-4L;FL&3OyGJ(!6FMbP;qAbTM=o^hxMvptkDd?lnZ$oRL%b-A0BHw{N0sSuYNf-ZPcfJ++PsDG7E{DDV{T}pH z==Y)j4F!5%^GE0pq2jm7hxq69@MR0#QOH7f6e>2`V|>oU9pO5KiX-y9xXr{#Q>IXH zL~DeNF>#l=P_cRHXHA^IKMEn((9_s=6uOXs0I>AHt?#kLHr7^nEUMV#rqO?CBz z7!pL%tCtW;KebT*Gqd!6aV`IGf$Ed7Zu50I_srLLF>kKGM(MiwiUV|g#QS&cPLQr! zLBycOrn)YmxEU~Z=0Tn2R9zDECI zBR9u>vS~_sfz^DNJK3)}`fsiS$9w-(bIGaQVQhQ@uKsNPJVOttdA4A80;_1F^ZkEqAS^lpZY_%bVr0om{&p_v4^&nUab73pIXHK=9h_(BDHQaXVPo$2%p8x z6F@lq%rn(IxKGbmonUmHY2(I)A068(v5~Lf!Y_!^SKf`j6nu^I;x`)zTGypuMfZ@| zYdgB^<9qSjZ^@|SEY@kUDY9qT%3PJ;mx?TzX+8EN4Qp8t;ldKKy zyWHTHun)sp8j3^t?LWU8rM|&4S&O1;mLIig4T+Z@nd;RkGi?56%ir|Cmd}NY+jyRb zBmD9=`wE5=TD}=RGl+n+|EA=4&%6Pztb}Q_58P^#20fE%YX6zI&4bt4K1cpCg{Q=R z(ufbd=~{{P_ZP9FL`GeAXkz;#Z!oX9KZcXjV^4Em{H^8+n+wVS`5RhQ)dxm%BwRSrm=8zlVKwC zBAJ;Q-)ZlkPTpszIfWyfd32`s+=hMD>c-dN3Va8K%Jk7QHA z@R8ZS@YbrvygKE^ELreFvf^hdyJ|tkG_{PmcCl%ov$_CuneXzKF<2~4=oIvqvFZ28 ziMQ~-eT%gW?h+>JK>SUA_lJx+Y~@9^7(COaaj0K!l;V$GEblvWMcOo}pmzMP#oRkj z3!2++PE}t@b(xhqSBp`zGe_+VO3U##`_NcQC`9+Z%)`oO#QUkliRIGXKWN&f9l>Ar zO6J&GQDSY0W+WieYair45GnJ8>5LkJQ{Wfsv4Fqqt6{VUOg*W94FqhJPE9Ab1>H3e z%;%Vn$E@JN`Ca&Xp*VQV@!cXFk5PU-TRY}UWEeC|{*iuZ%j|7WUgrvYwF)Q<6Ek0D zkYZM7tP7XHymlGHpHh{k4o728eEeK;UOg~UHGuwk_`=w?)`7i0d|K?=jdh#tzM*WM zXfF5600I@9sb|ZwwM@*L45qxyMjn``7!aFRuQE2{3-2{4(&M|>GxWkp`l3uhASA8JM*vB#d{newry&RH_BVm!yZ{;73ux-8g&(^h&z*-9_-rGj+bRtll1ZYTe#WX5hg2oYe2wTqCq zDRqP=WNz*Fgb_R;y?P%PWxmuSUALP+Q{7(v+vn^dq~{#>32o*H(RAH@^Mr%J6I#3b zgrdmNqfaxuBKL&^?fWBy^!{{RJI_hH_VA?4+P=gAO@F1!Qu%yA^wrdcXzIx651*O2 z^$+=_HVmzwX;tY53e)4;ZI?^;N{=cUk!tFjIPl1FZ^ODhg_$u0(dRQ6m27l#Q|*gE z;nu$BmoBj?US-uQ7?Q4i(Nsh2i$VF-zUUVqm#UB@p}c}rV-GGiWnKGXP*k-q`ent% zD$l69ILgH;R)f__8yP2z555s3JL$j_AXCd1{%qgji~oO^X^ zNMlk_V<#1(bq4mOZYlwgFP1f%ii`z=uB=Wf(uzQqn2Tz*%p5}e;dPj9WhA(+Rk z+e1fNrA%CVb$V?BfyCk1+&#EKwUmVF(+-I2qs`+y^Ua!t$YXfWubG9Y5C&J6S%``d ztcqqK#piE^Ak8DbnKR-56Aztx&qkH)TiHPcDYZEoeO z@IE;HP2CWo8|0;4r#e^D9m8AGtRP1jm;y*YrIcngf4P&6En$&hMzd?Y#cBeB`o2h5Ho=irAo!@fO>oW)rF9cZlTlSWG)=7T zdz7~4mrLSEEVU?z@D@+v%IIQMMc{L>wuUpnt;{~Msdo19&)ga0(>Z}G3&k<}@L$x8 z3Seo696xef8MgQnyB@jMGjm)PJ2F*awE``7hRZ*Iwgw_uh&zp1!dJC?J$$Au)mrN8 zTm0%z-tC!pV0lQ?so6d-DpT1$=ovEusr$==L){#tFxJTgWC7O?O>DChkh7S&K8E@! z5@ff|Ep1T9Ow)#`AupENNM8Q~@(e^kk>)$I}1#^b~@Y++Q|)BwGz?vNsnKMjf1 zeoYrHR)_IS<$F&pCk&d?)YiL}-;k?__a^Ic=8g8d z{uEs0HSt}2I($>cwDF93fVWuv#$@00Q3DocM~d|<>_$sK#G6S`hJ7FHXz|&^tF!wI z{!)9g7dvV5^n;1*_n(zn{VY$3zsVx{LyullcuMl58xz|fIN%zb8Pl?hW?_P9)J2Iy z4}3U&C~E4v`CwkNjc=kY->KPLwX{ln}Onz(sUT3Bo#5dTD8)vO{`YxETdNLCRPJ^ywx`VjaqA7iU2YGXlD94xNuOc?q#(ZH%T#Tkeh@Z%9(_*NspRF++?mf$_*Mkx^bgbZhEyR?dB4zK1meBp7<&HZEW6VDCY)P zJN%*5=eW`iw(LyK3k|cpth&|=v^pPSsgqHoDD>2J{V|s6{shNZDj$upRD^b5lO1EJ zrJ0u)j+q^EF~<6mWgjhl+^P-Eum68*yyac{Saz88T@AC&VE&dfbaUe?eXqt>)&BTO z5pH~?;>#IdsV)9(kFV4YEGNt#UzyH=QrC{J+}Z#4$5*P7uE$r|)W3!Cl`6-LuUz?O z$5){W$&Ro5IGAs1GoTI?{Za21`fY!$8TfCBFrQ2TD)p4V0=WHgD~8-mZbtOr4n- zZ!l2O($fC8WwUA|;{B*IW%Nr%89h~37-jTALh042O^ul}3bCdsH)fLWih+{bcOwwO z+UWCQbw(SVH(t`zv&~LD#};O8aN{LbD>lW{?SVNLW zuI}zQNN-CU<&U)!dq(+R_e`v|0lknlh$hMg#2%ZDwh#AaW7Cdhw26ebx{8~<`cLf= zc}-f&)3RDiX*};jx0iXOz-vk!RoWhh((5YvesImU~Z@Raxl@2NYXsdYV~(Gz|3kxst% zk%H)<)TXG_zvh*Nbhp;(^HV9@m}^I)TaN$I`tbJ}jqBjmwd6Urz;rmH4$M3yE$bTg zC^{N_1wR7IBdvzs@yO(W2?BzO{~|dDWzA>*Z(@*oz8rY|5cYbvzoD&H5EnIMVmZxt#4BLrV&)S zLx!dCIkvMQ_Ga4@&6<3jfPBr{qU*ExUh`u6lKK5Tqb8t6^oC$rHE*>}GyN{}tc|S0 zB7JYo{)02+noo+8X%(EeC7scoQ_=-}&1k-Dw9 zOy78Gj`8e*pkwOZb-!n6p(#x;7@j_-`3Qw`Q}R!Fmb1vwA@hs;PtrP;) zQ+|9y+R)7WRzA$nzk#>-mN&2bLTv%n+soX}jlzBxv$Fjddurg{Lk0gn-NL`i+6Vp0 z4(tBAVnclUjTR1;Nq6@6I91TdGx-WbGgq9QUah94qW!#@Pp{UI)|Tkje>-6dte$2c zE(@%_+;2F&ZW}qqEd#fDxUQ=WV*oN#?5o`(kJVqLb&lCklSnXaO298 z?(GZxOJ7~DBY!D3HY=KT--PJ~HLfr4k1T3DGKU2$BiEdY2k6l=$#ob(o{I_Zn?;aM zo-uLeB!RWNLYr%|s3KnW4rp|39@Pm}T$d={vna($T|>psuR(pYa8YXrEjeIh*JKT$^db-`amLzxpT^d`)AG`K6&DpS(7JEGMIRcD@Ku` zjiH1Pp8~`7L$v3kty!D-L=M^lQ*tpo^imL%#{V8_M-HG6OsX{b%TR zppDRfhHiy^7rM=z?{w#{y7OO91>YyV3Hoo)UqSx``V#bq&^<2xzo7VE)a-TV&F=h9 zP+j+D7hg%Y(|ezS>UmQEw4yPtxeu!II(Pm!^glRX3H=##t2=Ljg5jw-=;BYot3%g) z9IE&$p}Kywi=XM@lh6&sFM<99x(vDz`k&BE(BDEgL))RxL%-ICb?z7-M0;@`(ABSRs5k5W^3Z9SF-PNvAMbP4HO0xEH{6ui^ymTn z#wuU{9VPSC#OZ*6n?sTr$hwiey`Z18(LwqgA_ecz0keo)VnW&bpC!G}NoGBV3N?rS z{EOg(VaY6v?x*r3v+|^SujIGGzcDMBlQXKWpD^)@MkI4ZaHtaOAxEy05jlF-XL!K0 zSw?p00-fGBp=#pPz}3oJP=;feyrJ;rv6m>q_l6omq<{G3brKO*xX8yNc0tqyP>_I; ze}H}*inOZHH!Onc-Pcm9wuLBUTZlr%CdI}L;oQcRd;7KcNLk-8)N-G3nMdAbXO5=I zlfAx!o=bj2Dx{{_2UrT>bZ5G`x+qyRWL%( zu8Ss6PS$kzbxePJgEtc;rCpp zOjG2fr86cm{Iz4KPm?~&K5@|Hp+U%l!E@=Z zF02PkcVU3*HBrLfgwk^&--7msejCboIkF6@F7SP*n#&5P%Hzk-q0oBhFz9!nWzg?J z_05Xcdok9q}mR=bJ$V8Kl|y%)^y zf3yHM;=p&+JJq|AHDBa?vl-x4&vXxOL}B`ROwUD``->9K0fb?*$z)N%*;BlpQ{pTa zaVo3x0(+Q}?vX0!k=nqnAte#K!VA0?n0uxgHES(J0Xde@wQ@JQrWbp2#O55QF~f+f2TUa1piOq@D% zc0?14eneIAGc5I%$usV$nrc|B`aqV|%JWo(mYq1LBMu;D0Qs3YnU3i5S|PstL*J%@ zK~JQ_g};MGslMT#pepm9K!wVs4I2;B|AY?Z{HM?nQ1B@=Vqk0sXJ!Wt(9gN}yP-Ot z1ziihANn-(E6`s+=R!9?mqRy0S3|c#f9}rLx$}+CUlIR0bQ^RpbUXBS&>hgEDs)cIM^=b`d=V;j4g%b`1=>e??t)m~nKs++$G9S+?MRbA^lRXsxqTLz(!We^G# zM;_+CjjM4XJ90p#I2QmQl-WVSg*?nZPIrMqN7c~9<#euwcn`lpc@0tb=o*?!WUE?= zIb1`O_x0$i*&Rf-e;E{J?az5H({Jil^aBq8zj@ZHwC+rouok)dx zNA7f?V)0!Uw=#%Bz#>_TyeIWx@h4@Cnj>J@kozy5D)qy?5xc>fImygZ)YPM-TZ><6 zWB)!JsG()i9jp$Db8oc~W4Bd6zK zL!n$}L?gvtql%mc7I_P<_vRQ1yswDBE5U32udYM;>;e;>fNbZg&vp z8iC9?XJpM+nGpqO4x{U-E^ib6R0{d^a}jYm{1VEqp8+N{o1R}kDxbl5^`mF%c^C3K z5Y&U~ME*(yqi0WZ%$%!&!_Nl2g{~xZks6K^Gu$Wbjn8362e&ZybYV4};VwLid6^zI z8mjo)peonTLYaO?J_r2}bPQDa)Vb1c3d&s}TkZ-KM|QZ>-jSUyC-cL(hZ5G2M&yn@4Cy=09W}`z0~sa zj}b1QJn2xqAZSgw>U*>ffet@i!&zU~s3IF|QnTqA&icAWJ?B$->G{Liuao|nyn0oh zbnkF}&*#_c?8z(|Q8{_oOeQve{iya9v-pG^)v8;#QLU+dv%Q1*j(_-NrGbX}m=2_y z8PYaDmFK6S66e2wYIf5IRlRS34uo!mUJd;vR72Y)sJ?SERAqdfX%}l;$Vw>1u}3=p z73ytfJT@-WANyweBb{*s4mV|eu&<`xIsM@?QtNzQ5o!3ZFNms_cG*>j@^T%jULE;e zHDRNJ^!%`Bhr!hFmAoRW*!qUDcnaDC$1H?-G_Q9L>)^{O?k; zR*~!YJl#?Gx)WLg#a3VQQRsN61kM+r*Fq;im3N)1nl#w5Y*QiIeHAK>>~*QVjl-sm zvy;;?-hAU%vQQ$=TcQF1G7;S}HeFtncxCqO@mI%rYa|p?Ez!i`%Ap~bi9Tmdd*(+E zUG=SX&8K=V$NSCCTrqzR8;8nco`12C&&7VSeM)-K4eFb?@TadEnK(TAne-ApZM=K! zD!tGv?~|Ty{Nv{<7x6dK^CfiI3UpiA#IQFhYD`3LdZDgQ&(|Zm;2pGSbA%hp`NXI| zRmeXxso91k-qGKrGPoseabCK3hky0Q2$koh=kt!oNKfSP4&_PDUdQkCjt#A<^g+#o zCrsB?GabaY&*ZqbCMy-3Q9&cJ(-9Q9ND_R;>9lOfZtVlW$fQ0v(dRZWjy}YFASS` z-+eP@T>nrN))5Vl{0DPw_y`SP#dq&FMx#EbUKc!W_~h$nC#T(Oo-}%9B?73oF&cfC zt7jvz`vcx{MA2{SB)Q)jZ0l*MS<<~RZxwwl2Coicc7|W%_Qu=SRp$w zR;XBt2{NKM)sI5Okr()XvWa`yg^DBl3E6vFUC5W=aOL!TIh=J~9hwj52zRL{=gPjS zbd5AXKMu-7!=Ul#XeLaYI{t=X<0sMHr_G!(VfI5ETD_j(4qCk| zT6+84yyJnHv%ffP#y#UJt7cE0a343?*8eC;+2{GG!Te*O|1_wdQRVMK7yo^lv(8sQ zmFItP%{v|xyF#|u6)HAUc^kKf>uns(TdKak>Ci^s{RHkT2jvh@GHKoK0b&P2;&VULwrNpWv(%lpKd#z*g z9;U`qOb+`+&LSi*WWR_QmpWlT4Y?zin2;tHHcqcm7p&#yAAVTPNk@1Hrt8Hbbol9E zjp9kfKWtL7>0ync^6yV4{QL9S=mM^}BCky;Pr7$5zyHc@Qxj+2H*5Cf%E}vtb!bWc z8@P#<TPOkNH)k>6CA{Gz_!zWZt2s&iAgX&%34(eBf z-$7M1{kf)-su@DGfB4_5rg?>n97xsZn=XTX40<^N1C`6ay zzm1cT(8d`#V7juY8TI2r@%~fu`Y{upWdCe0?swc?T(O}ynXyb=GdbHg2NJS9cNiht zb8ih&{pz1YjDOtW0^#acvFKX;%Jb62-u<4d>&E1zheye3KELEQEU)M4ox1n){QkS^ z=3`(flPB5r5Ib;lwHSB2$9}AK=Qki$R~%kx7hUY44e_pg*6)`cwH>S zBi*C!pziTzH|ywsp~H6th*Bk%ko78lAs%h(a0rq9;g^ltqrO$gr>H}H`<2j3pjSaJ zb?3T9=VAr2_FGnFUO|gIg~D8_q`MH32V zFs*9pm@0r{oeaSAFn7>pWk~YbKKf>$W*U;ITu+4Ks}uViKd%#aR{!~3*e^F~Dd@s6 zSG^x3(rQr@vRV{{iX$@K*f@1&8)rsu)S>0`6-6+5MsKR^Ud{|j9sBi7WiwFgP~Vyc zYvfbRQ~O0eO32pzwS>B^`x{7A(e~q~L)}}=S#hGDabZ7QgRgMiKh4?Dyt>yjb?v-R4yG!1jU$4r)4hk|Tms4E5o0$c^>d(yoq~#U*VMH?wbCSAc-QyRug!eDqsSd%-jQ3cC~*usE}=xN$W_RS zT!kz-(YO?@IFu@jiYANQY@M3*o=};3#*oOe5bI@VsJZ_`1m{Wr7+;U} zupoj5%E-VP(&>u{WlkHpBneFXn0Pe+N>77U#sqxUtDT`&2fm zjU{Sz;jm`^*YMr_;PB`?OlSfjDdPGW1(6*@yiQ#1AflES|MT{PdNk)k+-LR;xiuX`ZT2c~aBU*X}uPs~vyO|iEMFDI%ykiH*qT>1J4y*uAZz*tL~xMeQfZf*M~|)Lux8 ze_Z7P{?JGjs*%4cQ?u7C{BF*x5Z$9|)Y)3PS0P;sPM+Z(p;_!-BRIPl5N8?70RM$h z|NAMRprTH76?HC=c6OtXo!ux@9O=V<8>iu^jWZQhv?5wnIH<8=gF0>hrWzHb)nfN+ zf?26l)ld62)nq$upQakW(*|IiiVY*U(Dq2(^k;tIYLgt((N(o=C+*g}YSTTcwlaRd z>t?m(4{y1(v*Udm-X5#&-r~&zLT~rWfEozO;bd2JTH)DNokF(i6e>3J2^%M!vyG$b zf_Y1s<}H6&7gQsit6$TcY(4gEnv<=^K23A{dc3V^j$exs3JgQ~S8UK6)AqvAgu1Ry z>49|kwUXZpe?Z!hyz10Fs?Krze(T@Zfi3>OuE5TFng4y1cu-Y+Tvhca(pHs1wyG4e zRyrHk%6&GDs_LfL{Qs#saXm$mZwLsh6aTaGrhtvH!>F%_N4XdSE*3GP`z|LzV(fz|$C2Ax!-9_HS$V!r*J;rLp>28Cb4IKkL$DK>Zp>uJ^ za_Gg-vCvCg`YkTK+@-52DqZjCZJOQ^7qXIAaaO;fP;aBGv~f9HqI*&}+y9lFuBEUP zOgg$^=aRztCJ5c5{(l+2`YtQITY{I`|7*tlG88K3Rs4KAL{|g;EPoin)&Ajszbg9* z7x_Asr0?4UJstW6RF(Z3sJ?kGRF!y|sl?k|$np=xSt+ehZ^QI$9F=%)k6_Yh?Sxr= zeFjhIx|TG_(9u;by+Yc^JT9$!^cBka8^^Du@$#`XJ0ImkSGnIm{%59W0v7b=6{=&se)U~o;A*ni4qB%EnlR`#IDJXTJ5hJm$^?o#ZQIC;1B5 zNxqHKB;UrV9skW*Jfx4xA5>~erzR?fyu0frGWo%(ZkRX_EANkqqbp&eVTKs1SXSr5 z49yvC;O8IuJ{|N%mQb+AFsfGHJRBN>j)a~HErn{7F#@XcP`sMJ$)*WB=t5R|uDIgJ z5dJIF+t^2JT!$v$rNqNNM&l}spjR)+Ds!^nrqq#qX0|EuCd^DbKaCqRC2g=zhC^lN zEsRL|BsN!HaBo5C=Y}_qy$vOSbOYnYBu_OL8`UVh?cPYsuX7?a__F+MA|X3tnNP@a zx_>0pHK+R?sXBa4CQj#bIni&M)NFd#@FodTo0lF|3EfKCn7s6SPS;HOO?gsRdD6T8 ziC;r^n(_E4?2h=^$(56j2Ri-VZqRn%T*G(yhhP4}II1J)xQeE#?;i|RlO6(9lfDM3 zGEG2Lt~&oacP{RCE$3f?ej2&}`Wfg~p}K#OJ6D6+9&gL z`pT28ujY4Ne&fZfqQgASe>g%nG>;Pode)6IBECR2=ViuOTrg=p*j;jqS^dNe^29Hf z@$(PmWi%D2#-j$H@8{48XaiJ@@ZX>+H=RoxT@Tf;Yc*75qIiAsRpiSyK80-KQ^;ZqZQMZ4Z5(_! ztZr{b%TxE4WE4x0)aLV4;iu<2Y|J3-@;nZwXX^Uf`28`jkpKqn2KqokwTQblP@6V`4Og#c zeVob8PtlC2W|8V2{x_)6PjZnTLW83`d>DE<^a7})z(=7HoF9Rn3%wBfQFpEeq4N>$ zT-@j)&h;I-PZfI}WopgS3RwZGkoCQ?aXa00#gVKHMOE6EEZERgN8Yr7xMFugdcG9IbF`7Yv1H|C%>!ns>Q$O8q!t=)ncq@6HT>@F;MMJlrh}k zA2mJTF{4h+AG`R^RyO>x%TyS#Zkq;`0Js;bzIq?@H0T$h%8Slbw5OP&z1@ZEG)!^D z#;T@JZ`1#69DRmG8wNcyxU5fX@wzGL`I=~T4vasGN9s_E(xEmUh5Ci{HNyE23*Dn@ z&fxcppsa@kTO}Y7X`XJ%*tGM3MEQsR9m<#A7#2}@I$sP` zUY~S@d2vvf3faO`sMvT0+PGa@Z{uuX)-_grz}NB{LxJ*iDK~X)p7FDzV$_jetm2ac z^V(pzSpSq)tg|O~21_!Jw*P2*T}Kn=m%PgjS?!cPP4Xr{SzC|SeN?L z;lhWfc*e)xds-YIzAm*d%D6RM+9%OgS?cX->FIWHDU1dCILXCup7AWSPKJShA;J{@ zLhinHo*WFH$lMdiS&CQF8{VwP8p#KCt09_8%_kRznyb8i(hrSBgzO9f|LD)D!G;N%fJX5?b zM7M@?I+S4@`7-7n;_{bX&^_vus+co!D}`asq|2`CFiGJ;|6r1$Nr@Va7RR`6@_j-U z1@dK}e;ris$!7q+r%Ls18e5ItzaOeX(OBOy0EH|AP{^*AVdGZ1>wJ0ARhfv{>Nt@y z(LKtSzU$16Wr7RjF-9*ZP$qiMXud1V6#wMPq!p_7Gd?wCa#>I&3fVGI$d-wXQ<>N} z+fd$XncT~B^4C!bm&sWj%Vhk}&knocJr+xcp<8F=a?q8_pIy1oiA=d%9+ZnhwpKMIv{ipZLw&^gdy?p)uZbG@{0P*)1sx>Cpvvu)fi zcb)CmWkuc`qhy_fUrFm@qt*veomJ8(UZ$g~N|L_x z+Pq5AJ^Faf^`AaQB^gEJaeBmGRa3lQm30F@|M0&@mEun@WST01vm7_}Ze;-#Oho7z?jL+xcnvuu(3X9u z{#MbVkX5uOWT7`UuGL)^RN6StGrg+1FIe!Dx>-CWMEIPeW+2_`7a}c1gPuHcw1@dSco$i%fYPAsks#FjlRoa>A6!PMdekVeJ2fa0vJbI1W4jP6s~)=YpSs72xOKW#B(t#v5<*+L`X@|3->~L0;9nM-_F?P#SZ_K-M=wowOol5LxHz^Z_Z_k>v z9j6X^+5x&h#^!3cr~M{w$~dXMVi-z3 zZdEx+9?hsj37X{Pgo|-Z9?f`uG_`-jPhd0*Rc)(bxV4>7l$d_MX-U0QB3YSUHLWf$sPpN!|8yos_3x8#0Z zI_0;5>jOXC&C){clIqH;aq(@DHkKH?JK>oE_eHCwD-iRH7Z=sZN|$*Kd7-*G0#qA( zE|~AyPj&5M!1Lgr4;F#rUA{)!;;Y8WUj-<4)#X#jN887XvVFWL`vO7Bd()M(dCMy` zr|VtZ*@Zhc#xhfy(qiLNQk%x6Hg4A2nE$t({5c&RGPXbrd!SRJG3F?T2dVfzyf}OX^)Iy-L|{ zKZe5hjKWh!+UXvBTqcMAO}?=$Wo9*}f(kFS#-#sXKmA47^cR)x>_^J-K5{89{TI@| zEo@4QR|F~aOqNTu*Ku8ed;g?_lphr?6|B6ZgsiEqt2*TM8l{lCUgK@3bVnzzhvFp{ zCe1?Aa@|{rru%#G_|&n9_8F)!u?A}rYanvAArfU9B2nqi(@0s~W|ulFiFK8fb&yym zwvkxlOAcRhsTc3Z<(ak;i&>8;VMl`|1KpA}$WJU$HnBw6#In52D7L&J&D;A{SN44F zCDtvJ9YqV-C+^#?-_7W=oW7McRSW7?Rw*RVYgzkX4{RM}Fv zqLFn}ZBcRK%1jeS3Zjw4aYvWxTf@gy=2;7c3YiCVOU#zj{!nNs{mV_p$QVi^&$|*h zCD`sw;Aqr&FZ!&nzI7Z}gCnCpHX6B>)=42d@AD7G+Rz8%g(EWi@GohZPKFBVQNIz5 zEHJKwdHIfgVLhs%(a6Sto-QFhS|y4`c5owwr>-tSolt59!=pAZ8hJIK=ZKIV^(E2B zHwc#W%#VHkMp%#9-e_bK_wwSE5z?a)7LBM(Dik-qc=|VOSqO$lbAf0iH4vU7LwZb; z6Y1{idEwcIZV&5G<%&kG3h2oS>B%uNXEFU375ntXZDBn}8<_$E?8Pf5q^GNqd6Dx7 zis9xR@3BggoX#2(MkCu{D|cnOhV&c*HyXJk&+2*o(e%s1;W^gGNWB-HV?uhg-4~7g ztDEiN7S3s+NGFGfn;_GR;;1mo92e4aJltqRpA=F_$~rifOeR4S$`2J3nUBz;QX+GF zNY9CIqY7MWmvofy)i10T_dW`i;}z4wD2;qYiJCmMM;knbmj^qgX3 zE>Ki3_l)`Ycj55l<3hU;Nas^Rdb%4K<-Sbg<-A8fls>28Lca6w>Mz%@`=J{@Y{t*t3#!S&j zLqJbqNY9x@Mm1Vy^_9o8(f(*HD;g<4kIKBvnIS!A!Hq`LX2^VJR;SV7@TirGMl_@I z^8Kukp8iH=9siPfd;Ql?jE98!rMY)BGCrWEe@Ktk?V^!O`R~k?Q_=gWu%1CirYN9i zU`WqkBcp$n!~E}lNYPFXk9x>xB&cU_NRQUBq7lu&6|aRq>qGyQtVgW@eRm){XNU9* zGcvlP!jm`u^OwSU&I#!m7Sc1^$awMk>9H5VNDj{kBU2d&&+w3*bB)Yc{d4{3nTP%z z*7Fr36HK3TLwe4$GOnKKRY%_!)>C9;g7y8pke-o7=3V}k&eL!B$)2#DQAVa83Fwu> zks&=4U-E)R$Bb#_?0{MxnrA8q8jT9s&|Pe4yeNY5A} zGl_r1oXcXXYs29&xe)0W&@(2aXPnVkZ+EW=>p9=Z1ncRzke&;SOvmMUypiGj zsPT=3N86R+!ExOLBcs}?@RTn8gpOJ<432*$8kt~ypAgccl!->v)5-Up+ke+ae^D0F zGbyBJvXLRPO?kfY_WKwNCWmK=k=Y%H*W{3%sYa&b`ZdkSYzXL?8qzb}$UMk@D%WX6 zIq!wTGsDPa2FmmFke-=F=4$?BUU_xf{Wise={yUUXyk=JcxHz5sN_T=ikzQk0 zg5&2oAwA_rMtT&U@Bbv7CPY*)eJZdsPvPGSPkBhsJR{Swp7}=RKtRvDke&rbMtzse z{e`zZ9}Z6?F60;gUU(LS^i&xc-Al2Vee=Gou%3lRMjL~ko~n?ZMMfrrf0^4JUrJR= zPM^iNL?b)-_w+0Z>8Um{R4QX`%KX|d!g?+-GC@7nAwBBZqmhpFEHN@~^6!P`(vY5| zMn*MAChe2yyTjpGhKn8lczTwG^ei_rYK3Hen6l@)VLdBwNz}7Eq~|gt#~rZS|f7<|H`G7Za@EFSWlgi*&NVQ8`4v6WHjQE`Pt4p>GYEGeI+i5 z{a1ZR&nhG1mFK1lAEpu{>sf7Np61_6=T#v+mmh*2_1e+Mwt$|?Lwc?>GOCF(n;*^D z5Dw2(xI`nt@y3-QJ!_22=~9AORQXC9gL<&5z;2VKs&KIixp8=m1lr`YA3=X2(`oD!e2&gER_b8c}tSNfdqyPR^L z^OVaO>~nUwoMArafXlhu=j3Q;j=9X|^maLueGX4$8Z*h~EOa^bK8F)T#?0|K9Jn-Q zxzBmRT}L=Iam7}_JEAJ#^+q%a@P19zKmkbnLcNU%bDqOR=J$+K8NS$ zjXBci+~IP1_?!n_P8Xl^xXU@w=WKI1C;1#c;A>1zpTj4TjmhviIc_t0gwHw4<(%Sk zN?guyKBwH}9Pe{hxty*(=Nm4k(C0kra*pvizjZk|KIeUxljU=ca65#NKIaUVbDGaN z&*k*?In!KDC!cev%W+Fo`GUol*4Al=fbmMy0(P&g@i=*r-uei)mIJ~Dlz?lH2fwVrx*E1W=eg;c%&ZThH5Y0HJ0nUa5&h2nEa^?7X9>De* z;fZq|hja8vLC$tK1qqx#!tqRsvme`e3zkfqH-AZ0(RuyPJI}t&z&q#Yy)?1BdYSz+ zO;ORXqG3+C-i)}kns?fm&qSV=^gWcK^9CA4iCRkQ(yoBf?cIMAU(%|y zxARzfnU9gFO*j#e;7uPD2|T86-4Y)`Gdwka{s~dT;o}j3L!*WjIB0Jbxkp`e6aO9e z#wBo;DM8W;u@?nACcd#RNqRtHjK_{1(6M}Z@I_Zix)ObMBsrjC$Al1fB$|{c?L|6S z%w&(3Qf-_-F!54`c`|Xu1Cn*QITT8`Bss4H1<#k5+XPC1ckU!1S(Wwvn?gb^UZF@5 zpz@z-ecbnhXF)m4uC%N}BPcQg1 zr}ll?o>n*3Rqn2N++ucxt<^i4U~GwBTr#W$`Zk_XOLV-CiOL1*f+bb+YD`m9>q(d| zS-Q^Smep3(_lv63jX^`=R`d)S zLg134F=)t;u%1Cf&W0He&)}iHRpA*tEUahnkbYr3gNO8Y%7ZCx(%Lzz|Ddz;1E&Ar zL1&-cZ{UET0|QLR{{8w588Re4e=y1i8K;W$@sV2R!>&cM-+$6^=0)rnB6w;-oN3H= zGLQDg7cQn}C#>9wyN(sBid?K0244qE^vZEP7Jx6 zyFzmPiu%S6S{Mzp_}_$F_8?>B%h$SZ(dOWZ47q4+ZJ#S6yG&6w`jYO;@XPt+5adoo zuG3&?iJP|c<>8!v2y&+)H}nwXPC@RXLy$WGxyuhhPU(E>A;@XW{^%jdDZbAgf}HgI z=@8@;kB<*Qjv=v=HH5!_X)ize9D8nOAkR#@womFychq@T^63YUzUm;CIqir|XB_}Z5{3z>_D%4XLl zi?V4qlJsq&9co6VM4K8IHA!vhTfySRr^r;FXT;3PTU+|H2X!Yhg+*3Qlc=`zy-D~k zLuSG#E2l|zTl#K=e>E~kkG68{>Dz(6S;+J%=~$oYbmiJhKdsI+AhWZyV||4< zr;p)`CYMZm`YLcZ51D($TDeX@Tk$;x{%?_a$CYbO-$CT|BeQQ@$NHYa`Q-C?Z#|cc zmRs7&k8YHMgUIA*YZKF6_-?`Nd}Q8q=O% zxu|1(Yms{#nf`OETzmDcjQaLAGK1%JtdHdwXOSyoCEE_)HXN5C*MEM;`XsjinVt)* zTqe+Fd`Xvkkh!|5V}0sk9z*6GR}OD&>eIf^eq{PA>R4YNoaZ9*RadS(eZ@H3hRn{z z9qT)a{7A2++`H>;o!SXsKKXGzGM6mtSYJ2RtL{Q((`qX>tQ~#Zk^A5Z_NLZbxzm8Q z+5-*y`dm+(xn$al@4YxIMkcMv$|)Xg=~H`f4l?^)IhCKb@;8li>GM^_l-i8Lw5P8x zZVQpQ&6R7fzI7vfPb0Il*{Ew*Umu*)Z{&q5Trwnko8eP=nTE{9n~Yey`Uc|sEHWRv za_#9;d*7AL>(ZM$*4Go~yOG)E%Hgfe@F~78A@i;pOiUN9w(_GZ{C>AeB5vBsj{`W5 zMsE0RR<6DL$j5mpGR>|W+1O_Ibgtk&WFEZT>T552I#06~nNPlE<=RU>ol83A>x?7r zuyXB%PvvcuD`O?w4&T!_u0d|tH#^pshx4V#G`e!_<%jyqW@MV~>{#D2oPX}hSjo1- zr+v}hckybqyF1pm2Ioe}e9OwUSKn?!-w0%O+|#kX9Gp|`wKCp+TjgaZj$M)4%O%rZ ze)Prdr29DI#3j>Sd2t9|IWpz#_TL5iD_Hn3x&K$jH+5x9lDRZ@Y+$p zr>|fwD>-ErE~&3woD>@GMm)-w>|!=q61E!JkI*5Ak!~iv$1Pj9Jn2@I{(eT1gV|eY zQ@85y`&@n4KW9#S7UUJ2tGyC@)+IQgWmDRQN^Onq>F?B${{{3dp zuU}FR7l7Ncqg_WdjG4PpM)np|(n%7OFt>MS?FUj?nfuW0oB5(DS*7j}xjF z)GV)EzOXL8*OcD*le9=*eMR-MMfu9q>Lt7wRN*nYDE=)?6(x)emY)VckNKY9<5dQ+WMs>%e4Jl z$)5_Si*r=#;PIIM>2uhjLG4twZDcEYGWW)oQ z5ftNb+X?eln~2mcUp`fbYMe7%eVIW)lg49BbO@em?vg6Lh3nn>$dK%`%U4vD*Dt$t z+45D(oF1;qqe5cl);3|h6wD3^#j7V#DYY^20+(=uLje3)!a!T`@%&lEV)nYjw;W?Uag-@^h8q+-&?m3lrC0DQZHD-8DMx*O^ zlB+S(bCf^RWSHji6xaDk&)NEo3wZvI@&#yjrh07;Eo55GVggJ<=zpQJyxutl_N$g% z%5Iz25voC7zO1&q&iK0v0neqhe%S)p$K$WB=Wj(#6|aJ3C$UOCj>hR3b{*_PK* z0Ml|Ndb|bt#_fr4R3uHqteruV=#=KV`dXURw49shGva|IsK>%o8)ST#)?a12*4!^a zw;Me52S#?j*F=sh#!0&8drqUZ2~7BMVcrOH)~vDgg_PhrN-$q9P0Q&{kF#pQ;(0ZA zZA+?-!&YfI^++X#3-Ob1P#0nxl52V$4_;e;)7ddq`Xr>8;nbmZMO{s0^}>ay%RweF z;3h7*wGFn;1|X;OPfQOTHBHMYi3i2*S(C%=SO#BNNT@(pk_A*>8~Pc^UgG5<1NnSz zJ?g?~C2bcj8$%82r?a(tB=QPst-2~(e%i?(rKdXWc-~DQpWP63ke>3VzS#IPZKY}X zZ3b;maM0+>4MbnhA+ZoE?>dP67gn403TubOK9mQFQkx-fqk`0#DmB21jw$qBGe=yz zp=x1bm8zq=v1io2z*Qwx^S%yd2?Aewvf;|*`W`rQd755Du+?=x!FTy({V(`Srlj$G!IS&#%98RKfelj+}T6 z-}^Q4*M3^^{hpEQKY9F|cdGAOGvH75twq_9Z*@DXD0}|Dk2~_#<<2<`7ahl&R0vRZ zWYEU99~<`0tRcs}ebr+F$IT-=I=P)4S$EQ-OUrUc^lUlh7gzuB?=P^p`D?>J{)SH; zeBz>WGB5k{QBS|{=-+@C?8veuXZ(2hF{{5hD)^<##K7 z{@vX}k2vqHX9x6SP08^0esuKLU+Vr&<;pd`dEuGn&KudgH2m7CsjuIhv-*>z{9dbv4(UC6sXwx}vxfZIy86oM<@x>l z_w6@(<$~Faxt7#dGEvZHAZq(AmYzk`b&C@w984`Vljzvh)KM$)Wdc%LS6NxL@KA2G z;LFCDTM@G_ALIo!bp+W>ye}2^c}osMXqGSIkdgZD%WDsZzLiWhyvVgzG8QlBAj4L# zR#*1rBUWo>hv+Go)-S)HYW|A+bAjp=`LYknFU+5781TigmRf5WitD-g|FOsXf&tvo z+~rK8`0!~$^+2O~XnsI--jqxDQu<%e^~;Ybvlb>!feubD}z{Jb0RUkGPdIUJi%0}o%7 z@>0c5axW(S%??Z4+#-HBs!x(CKb%9osC=1j{0o)G)5%MyFMqqihp!RyRr$#>$94G$)BiB0Oo!_IwCR616KBZa!`S!r4`>S{(BPqmukd`~ zEdt3j_%PPx!_tM=0_m&rljtyxZ8}iyr_5o=aodF)j@BztlOM|X;KDKcx@jyQvAvkn zi*-94C(+pm`}H+Z>CQG|7jL^u*>{0w8rv@ZMWq{ES%&v9|Dw{(x#aoIF~>CA{Nr~c zH>ZsH?!41B%pUZ+BU#RBbE(PQ+g@4Q*539iv$tL2?rpDJ(7%7bzAGx{J0E`Vei!t0 z<3l3aL}X_1`mEdh2ZNdW@lzmO8uE*`&#dhEgb4vV@n*e|JMkrod3$`0r_` zeE!cclw8gu+EO z920h|1N^`iwdL9uQoGyvmKEQ_i*Hj~7n>UGL^>(0lM>PdxxJldtKHjbp1!PhMb(1p zh1FG+`DQsk->m2J6$ZXNeu=~P#art$`G)Rp3XRjaEqBgVRfv;V3~&3BmZ}gksuD8$ zXa}O8D(m}PteA&Bt13T|IiBk-&!eLkwU_!2Y??Dg?0X#TyCWPl4JquT+0Tw?=S-WH zdii&*`}r03<=_6cx&1`4cDTs-(eqZ!TfkGBgdihFRrm}v1U8tY$iDtM^!{swy@E^O zSEZKWwJ8m<^N3D^;`CEc4QLjrX5W7;%D&QBRJwD}bo8^%Ojr+#mhl?}tf0{}T zHm=F;%EykT#^&(-z)i7|Twday*HrRE?J;vVeaxq-E{;t&IPgW2PqDY>Y@K<@(B_hD zmpI<%NHf>}vw8ZqtdiG$dK4OCAH+WY@WI#x`2#mMej3fXdvnwDr;DA z_UzWjH-c`ir#4=hA6?VM*!FfZ(9|gR^_#QSJq0doGT!!{iT|%*uj`A}HQ9+u_GV2^ zVDKXPr|~HH#^FwV=N9FW6N~;-fac;YgBiOh z(W`P=SM*A7NsF!7)VwOSrAz9m6Y?6b%ynX~HBH~N>d3|`vz?Zb&AP|RE)bLl=c^Z_ zW<52!Tf<)>4O>!Do-c@`Y{#CK@_fpK%~+mK*}nNNDUDa=Iay!doU(nxQCUw#3%YFH zmAauc61yNbHaffUxs;48b=@bo)@IMJ@t?klcsD+m)-rmQZq+h+wjg#v-umb3PK<5Y zvO7(lw`@3S%kJzgd-67vrfirPZG0{@_S_{-;j?8^tdkDH(d8{VV*k2KWt{P#1|ING7%hPnxAkfDAAW&Nte zX-Kn<%QJewPF<+l0~xhsr-G7I=l=C1_fAxCI~=ld+UN`VFH;lXevqaJYF?82BgWnQ znU?YsWJV`_XG~!_75=T@oqkK$MoU>@AG#niPV3PR>DU!LhV( zU%mm=X9JXAW7P!fiG0(fD!JNdQuXzsZQNRW`f6<_)^mu=|1`r+^2jracLf#=f?ja> zlGN`gX1zZ452i4xs0M~*u!5hF?;4R>VAkRTK7lC(x7lRLg zyiBX%VQ?<^I9Luo308o=1lj0q*a}vHzXhwnSHOkfU%|!TK5!}cKDZ22-Yy4^B`&q# zFt8r{3b+cK0Imk-f|rArfQsL0@Cxus@G9^ckO$KmZUxE9hC9G(!TZ5=pk6U{9rz4* zJ-7pmfvxLoV9pGs2o8VONPLQ;7?gELca}RhacrU23ejmua zw2|GQ@~QBC&9#3E{2um)UA~H-#t`mTkVeeRhe!UOuLf?Em^g#*Smbr{j{hC4RW=ui|HnzJ@*0f8uEDuSmCl%?c1OpyOk?A@3$0$mX-MIOmK~v~r`M@6 z*(H&WP6o%uF7^7%8RIh3AgMX2<8lY?oGZ)7QG+60aO|e0M{yE=N!7}#C5%Bca`Lgo z8zVI?AHb>L^2|nv3a%r#rg6!s-6i zNOr|*G`VccxF}o3MWs7e@o#wzE@jF%qq}Z1W>T^nKR@(>J=HDw9Tn`l6A}uxTa74+?)6r9GF~wx z$xIeVR+sy@q3^C@-YHPbH^?)_^UufBsRn6=r>wlrP;vK>oy4%kQO)q5xXwu`<_eSi z-pqBM%AqlB6m#Ctlspx&nvIA5M+&TMEMknQ?WF@20dw<9I=)VRil%e?b%>OGHs-~--7bsBitl&~yy)5{d0{7?qU_{TRJy6vme&Wn<(aQAcH4yAS^qqp?Uu5(voCMX)>Dz` zfneL~0fo5Aw3mHv<2EuW`{YMa=*@L+N7?uPtIV_2Q6pH-D4rEuD$0GhWZrYLZ$FrW z{R2?x@FA#dEGDIGHj1*@D9UD|XGnp1CL5vY7_+tYDXK|2YrfSStH+4&*=BmQb zS72xG*>E)|J=ePS>p>ch2G#KkK&3HLQPc3K#jyRoDBItQN_Xn`w>(WxEsutWp={<% zrcw-MnN7K4)W&VujR*FvS~jD3P#&vGEu{y!h0}O-TBN>b^Oy>|SQ*>CWl!3MiILd$ z4V|~_$=i!@0KxR1$DW@XU?kcGb*-ts!P^s`f=32+)nOj`KD_Sb^DwdMfbwiT7#-+ip zODhd!JpaMzS9kbJjceTf8yRB6%lyx<4M}QW6()sYBiDC5#Yqd~`mAMg>l!HN4e{3X zivaWtg^ZMdvT3c<|w>0IwspO-Uk^>PZ;>^%C zOs>_&R4sF+x1`@Kb^s+gQgT&BYyC&N6&AeG2gF(udx0Zx(V|i=Q*81BsHY> z@VXn~!Y{}EIEm1}nV-wGy=M---fuKT!dZ>PSL>Zxf{W2D_PRzD4p6E-((@KBBZCo7HGLdAGcLe(X)0u zt|68`23m~{&nW&CTngC|E}6S&$9sSefy2P>gGJyEz%k$>;AD`+^M*O#kHBj1F>nRQ zT)-@s{t{Hby%|*cZUc3njEGl*aBuoEJfbk zzzX;31PbB|RK^Ny6E|p<=1@Y3&R*k3(`&C=R zqoiE3Pr~`7G6SAjLZ1S7ducnSL_-?v=iHPalW;U%~0oBx8r~lg*^H15z zbc@y#A3kVH))RrIIaabQqhxz*PF`Jl)0}NBCEIng*z_khsTupJMye5`YuWV}UZlzD_lS;MdpJQ7KpDUY@Af6}j?$P~{ zF8tHfL`O4@OD$}PJ{OvDsJz?CR}N(>-xjE;T%Gx(j8_d$gR<37iw;`x&vokg&oR_3 z{HyEDRTGs|UDu(>Gmqn{^3ly@sJg01D(6n(YEE(=NDp|NTU}4ay(!84YTS7o6c?+f zCdvIz>OoD@YCE8_a8KT+Q`%D%-+>L--vifxAGvnz&&hreTnlQDA-UrS8+&dI+PB^ao(VRB8d|Lb zr-180nm*@xP^VnjH6ZK6K<(4r0DcR+2~;_eK4rOvUv@Am%66op(w!arTi&ZK z-rW zYmV6@XeoJ1(D+#-tGMK?y)&dv-_^Pj zU9TF6*v{yjR~xtWXTN=0J58qPzO5@rBr)~he;Rk99@mbh{Utdu?KxLkaHM{W{-D!f-w{gwR zl=@z=k{23>I@+TgzcA1%LM%B*7`S_ODjlhZ-S9YE<{Ra zsex~tG21De^XlB#*0vXyG`K3JRCYE84Ov`(nhj4aduL|>REeP)p=_IfGgJ{g+IOF~ z4{D;}b>-hugP~ZoK#m&eQk#A1?@(inYaaPzsbNsoFMIr2NWt$)sKg;(un*D8T?cV* zwSO||Lrhx)tvyrr{uA809T}g*XadXGf&}+PxO0k|Km z1P_2!AU&^hDR?Zn6zm2r1ABrsU|+Bf)C)oD!E?ctU@3SxI3BzLR9(0VRJl|-sjz9p zX8SBrw$Boku4$xk&2XM@sdQ(PylhS7?_;h4F3)uK2p4}9wS;8f=UTvZUQ#{r{Aen2 zqhC+Fx40x7IOf=EXq60qo@q!Sl_uqwvX}2MLEWQ*izv{RSQB;o>my*=O$1SP6G2qE z^8kXD_dS<#`|Grsm)L_Pu>)$-TkAWOYtpJo@HG^l2p{3P<~cf@)<}KYFJ+(VHt0JM zZ#u=a-AyG2o5rNNp-wft zYoRn^&NU0EeGH}1S|>w&2P)rCKZH8NP*3=-UWr);$1~d?(%eftwcMKgOIFC-Ey4Xn zQ(WX~X9xEuxi2*C(nu}mx}Gbjf2(n~4XjG!bzI5IwF;B&y_xH4eu;FC5ttVg#t-J% zJ0XY(G}{zJEyBuG4XsYnxob!|G$%ndV`7`PO_@S#O05~R;UuGQRB)-pKFlRUtI?pa z{Q>L>z6q+=`(IGAr9Xnbz(0X%LH`VD68{&l82l?Z38b|##|7R37h`8V#bupSd!>P|2k8Z$ zwgoeVVHV->jKWyKrFf0!lIfgc&kA$_RY-VuxG4nLpt{v`@HCKzc}!u*0u@KO>#iEM z*rrdEZTdu|J8!wJ8D@>n@|0OS;3s8PCuS0ER^^jbhmuEq&?3`b9zBd(Nm4fsYD&vngk_PdnZ zP35wck=@wZr8a%jN6g`EAHmF$`I;t|OxHSdm5M0M)?Z%MQx`-zsh+asFKJO7S&z6x z)L?8&`?M>4U zY}pfy?SOAsT4?)TO8u&W%_EA8($74l&8g=%r><9n*;JCvbgr)r_wd(Qs-9{myRnjN zO`_J0XeuotsEUstbkd_!?9(mpr8fS(%ev=RAKTcPTB|_o6o84yKeuF=8y@f&jhjDb zS+aR_syp4Co*jL~p1E(DzW+drX?9a-uf{d|oVu*$^FQ|{?(p-75fP!?BO)f0 zJ&Ba<$k#y);>vY?!T-62dYS)o4D})ZLk*?Y@?)-bT%OSv8&q;lHi5}qbu`KS8jUkd zyK7H!y=OGX{l8$`RbuQjcbWla3lGOv+taI_Ke}RzY>SvdVq2 zrB>Xf+%sMzu+vw23vxfB9ndQj{e!LUEXlOfQeV&IEv|VrUjuc|C_EKdhI7%i8uJxu zu)SWtkusc`+YN#UnJn(!_lO4V)+@Sl72h}A{0M~;P!407F+yIt=w}X?x zJ6--g;0)~F1!sbfy8Oq%S=hBpeKE-B)R_Z556%UD3s!(?|L1{f*%pBR1S>)HySi^0 zxEMSJyaYTR>u2)GV>99$1R1zrzs z12=##f?ow04mmOKAK(q(zrc;4%9-@3_?!>V4s}G?p^hlK4`O+WzvY=7v!eU(=WT*y z$7su@=d#wvV_+}D9JAmT8y?*f{j90v%~(mdra3#Brf+XzG3^fnUuMZ|4NGnZVkJ9h zzngea>4l~VJDVo#ZkqlUZFk8&{e9H5=2e{V!2(l3w*g}44i?Pz8!qO3ipAT=z z8g(F6I$~xg^#Rf6rrOpivUUW_*u)}KNB=y0OV+i$Q8BssI!Tq;8IX6^pHuDaUH43+ zF=YM9sXMBweiuD}KeMA&sqh%bNk=TrB5%aBf;VNXb-M?8cawN+~OHEv2R_ch?e$x_WJ! ze5p0ru~!zm|o_Pp>fc9B?-EMmAiBURpVv$~v__Ev7R4O`hell+bIVx`#` zrMY!odav!(IJb{u)=rPsNr{~tI@;}(78b*IM}HIjGv$0ZcUylFq0vpU*6pHZ5s7&E zlbX(+2%#+eoNoH6BU$Tq>bt~#O@8e?+sl~ti>}R=wIj%wJ|u`8CuBW!Ik_@2Wy{~w zq6Z)%E@9C|(_3s!9eyBd{Y?}WTdv)Lvu8OEXHh3qfLL2T)}*+pV+g44+cQ-HuQbhh zEBgB0vy-Y=xcCIC*RN=dC_t1RlkOuLw;Uv=v!1#thd>wSc%d%N@q(S2bBQyVC`^fZ ziwBts^dF>$7H7@w*o=NGn?IX%?ahQNRysB|kq0g7j=APjtVJu2yk?6QHKJS0hU(<9 zDJ+YVS#Q~T#!^V$`qr!s_oL0!=WJypdF~}prkmwQ#9Hp?UE1sT8FuZyy-X*|P5zqt zx2M^daHQhPaGELWCw7)!FeY3($>St-zQgIMXbLKf!N zXp_XYre)F6Su@MLVH`DyxE_5;B)L9B*0P+xJ61X?`Ww}W(rH=iFZODJO{sr>N_jG^ zed<+ROmnq&GPOj_6OEjT93@W!^rW)Zc5`m3#qiRitZP}=a%iiXzqT2o!{&+&i);#_ z;;jm5hF#oK`>uPc2pxOhYF?5ac#f?tDm>8GlDg-|#HZ~?dt+<1ArSp^4|{GB(J(wo zOYgNsv9)Q`k}=IAe!6FomE)eta&2vZp>cm$@)@Pvo|BZw3gMovqDp&Zl=i8w8CIHB zpFOa(X>CE%+ObV*$M4ZN$xZw<48pyNu958CPF~-UQ9s3NkNnOwT+?lXbRf0%R1*U3 zd?Lah;6FqKrCTffj|MJovJ@F5azul==?`G-i4pL?R)gk zCQ*y(yOD_mf$}rf0<}x=dWIA+4S3f2m!PPf!)A=lTKBBzl2_RV%Ub`G=!pf*Bmdoa zAT6s=!_vl2kEmY|n^;!(tELINOp8)DaT@!Y)at^Cv!WBnUbA+ZDs0n)SJ};5#g5vW zj48(Og!r4ZNyisXf0JFYR|`wtjQ-Ytym=RirtMPdH8q6ZZ2aEy&__MTGT}|N77?em zGkcUL>`gQGggcq1BfRIMwKFLN?8j|K3p;OxbG9?&icNT-iFwuT!jhd$kyuOU$V9A_ z82!gawV{GU?Ce|#Rc0u4)*3nHnkSv?>@5Ym<(&bgjkR1yTh?~*buN@$%&qfzYkc0n zp{y1jAa(uz3Ci+5hO!%NN6>>=ip>-J@_FSn%vSDRpLz|-`q%|EnGke#-hxu9cXoC|X~xpo*#|YvQ2U{# z8|ovd8HPFlrR}25&OxYIhGLqa6IJk1p)N918q^#^WkQ+!bh4q;!t-t#sM&_fgDN)^ z$sC%e>r045@bkE2G*9mdN>=mEpA&{6&~v|>iS3cbl?Q>~Kbqve4R>!dRC>Oj$Gplt)uA?9`PA46qIg&5b#2uNyck-+S<0lRs zl+5Ut#5nuxWX6Cb#t@pV1f_hgJdwe7*%KLqlD!NXoFp+I`L=u~K2b;iWF7sJb@cDg z>O?TM!%$(j8vNypw$Bs!$HFNI9D&u&gSUUIK00wnSi&kH%*wqL4+)4$upihD91Hdb%fJEP z3UDZRH8=v?0G2~}-dBKHx0na602hF(!AkIYunN>bW)XNh zcq#Z0xCHzWNPF4v6L2~BORyGf0qel$!Fuoo@G9{4;A-$s;N{@k;MJhk+#0}-z-z!1 z>SiOT*L$r8Rad_Xo&w$ojskB2bs%CRr~??cfD6IfKwf&_d=2E~2F@KIwbJ<}$jb+u zyTJ#*d%=gm`@yHd?||FD?}M*^KL9o5co^gXZRZhiFZe@{r&FCDfhqJekAd0XkHI|f zaqtxIDNs*s`~+kp-}xCh68t%MKKL{^4SWW?1bhix1^xzPBiz{mvH|Y=7Gwk5c^SM8 zd50|q6TnkIO|83wgTNl(Xpo-2fja20TGTKVJOi8y7J_wP zAMi@BFGv}7&H^dJPCt;c>huS10|$d&2Zw-^NoOcX*>lbTDO=8PkTT>HfxiYvg5KBgl>2mychf* z@H^m3;P=6O;19s}z=y$BkWp2`k&KQ=`-ZOIU$J)wCt>dmP6qpd^T8pmdolQJ?BhYz z=c(ZB;DxUHB5*7AOTg#AI&eF9CAbT`2Go6S232luckK^?qp<(Lwf__(jT(LlmVhzTHdqb53tkF-2rdEjWFu+b5TTD*21dcp3LFKl1;>Gv;3QD-oC7w16(D)o!1|`M z9{ehJ9e5+S0o({Sfp>u9al_r<_29Qb>3IzNG59m^aqwyI3Gi9)C*U^lr{FGd8<@k` z>^bmQumwCB+z$2zp9cqkzXC^szXr#HFM?$tWu~DT+yO2Je+#YxUj{D+Ujf&FuYxy# zuYtF?_HTl}$F8yA>)<2cAHW}hZ-AS?KZCyncY(hK{{p@UDxMnX9Y-H!*V9GW^>k6` zPK1BWiZaYhM^w6#$-l9v z^Ew<+>CS`vYowo{r+5sN?mPvhF@J{hGnYzt)XQu1pJBdQBPv}7Kg>KJLq|RgmCkaf zoe^Z{ScaJ!q&uHMX>O3={M)5Cutl%xrm0Jr9pc!8w8qN|Qm*EhXt$=3V`C-xO(Vy* z))xd{72qvM@uGm&Aj4$@EAgqeDq6xB%@K@kFxnQCV5t1 z&)661WmL%zNP1qthBkKb{(Hku+y*oaWp#C(&6w%_`n%o+LKMxXUJUeA%8;YuuKvMb73CQI2mn z>nyZ?l$#^b;lt2{pL4R{VuEol_bet3ot;ro+Ee5ub5Ny*ng~^5sO3-^q34>9fsZv5 z1D4RtS*uhsUQyJ{S#sX>BjXx(|3n#LTpNb+99u`sM-W4mA~0#DQhfOn!-w?Puqne{`VdtAnfR{I4~T*JYScbA z%q~d-(?f?*wK>GL5!B%|*-rs)2G4ZuXMwk4p8|dpobK9Zx%P`)`&`$)61)?+_250A zW`g&E_k;I=nh8DtDm`^SrIu!Ow&xLLdmd4?u2`N{UM$b8D?E~x-#TPB-q~wRb6E@cTwhNvPx?x9n+>fO0z7Rgb=tR=1i?iCLGMuYi%D(GEt{Kh_ zpBK-gZua>RH-E+(^ztXuG<3SV%^}_2Qu#imm?!6p!X@LSN^-uOZk>Ji9j!F5Ml`SQhQ+q~eQfr@`BosTj}j|#MN0@2MjQ+I>;rm$3S1@kR8#pc^_pz@8! zH5yc+j|WwrPXK#@CxME?$)NJ>C_mps*?bda&#hVBepk+nO7#5w`qsK0Gg?;-jjbxM z8Mms~ptqBssh2{`**b7De`;WCrk&_h-F?c-zDhWr8R!yTdL?I{njRU?{VqdTo1&y9 zO2%`4#}GgdP*h(RNOMbUf@xnib58ssw}(0FT2t~Lpu8)uqgW=u&8wBfa{uJ z-i&N{R7sA9uHS4PxiwGQ^5UG8UCbsPBZ^ct*v_1-%DSms_MPpjc?DdaQ3;bVDGn;@ z)ac3nKGzLg$!EmmM>3~z>B)O*Y!B*vpxB(k?qGCDqo;*UWk5Yw;1jnzUzC}1GIh)v z-^D&D`2pNu%~Dt@xVmr^bICB1X;ApGKm{)wRGX9oYK++xR1Kr|X;2(wSMr~0l3)Fx zC_BOvmG0=Ym(no9dEBLJD{19+xIXM0pd?LC38(5{^(Q;$Y*j)gCwf|M#8ZkYt>LvO@K838$Bu}ZTtzQ!Ca*DWzXLR2Ru1;JU za>)=MlfeH3kHk*tY{&vX0Tn*km7vG_2`b7as3;~-uB#mySf0u=6R1!3tvrgy$tB?w zZi!KX?-My^tL~tyv)Oc+WT>`MHy;<7_EL8pZpo>e4^OG9V)4~>Qg@>Fehg&VGNi88 zf~ZKF*Tx@9SP@Psc`KF)uQ0Xyg{9+X^ODyO6fE| zrA6747L{&ZJ)^YBFi$*)vY)rGa@$?Mrsz&KGZr0li>#f^`_wOST5x70k+qiRK{H!Q z4$8){IC0D==b|)GI_g}MEhGYEvDu`T#IP>4Ij-HDzcx%xl6bH5=3$3S6`wRK zw6{xBmT4Q^@Rxsa$YWcK&I)d+={@fxhZ<+7UqacfVz10q!tsn2PsI1KTFt2PQ9NNZ z$$g_~-{i{siMi%+1^xfQxSNzS&G1XOCzn~>Q@WLtk9aqBCo(j{=6x>uP_$_g?5&WN z2MhWSlv#hTOV1&yOl>6$=EDh6;_YkcKH+_>T)0X5TA66!AXclY!g5D8-Bz}0Q~FI= zc6MR+jN(&)<#?`FUFL)IjEduTK;8NwP%YBK;9~H9z$M@h!DZl&z}4Vm;2PIm>H7rs zTR@iM8}4!W-v*z;{$21V;15BT>CHq&des8`98@`d8hio#1^6=fOHg6tBuT?-;AZd* z@L5n}Cz^e8q*r>BmdC=gJ-aB|vx~CJWR|C8Gt1jliI+Be4lQ5=&9BrrV3fVI3C@LF z$y>#qAEjfnUry{0mU7~LUgQh9y{A{ClZP*jxDQJ@;x0c*HVw8n`srbZ zFNxn6=_pMY!07Emy0Pkm^=MeiZ-qEDzSN!x8Wz$oXZO<)lJMxxCdN!`f>{Q#uG?k18r>Av%#w_qKN|#NF z)|{>GQzc!@GbMDuPo1BtFC#=7cSU$oq&an@`zT1;qa4*onfCHV^>c7i-pG&AUQ8LF5M}dGRJya-bys;=tbB`d7s zlJVS==lS2pExE`@r~F>Y^-a&C+YMGPtFD_`#}lSYLseO~bPZM6D>6~odR#^Cc~M@) z-}54lv@3}AZR*~G|L4(9`k#P`SNDysc7eiJ!Ij0ej!UKw^LZ7kGeO;o$IZ>U^I)(C z_Oro(;5ne4W*GqvbNR(Cf2_+tALJzu=5;WVS8rzI_Yq~+4@B{) z4*o4qLki2I8QG-MC&Nq9PTbtye1-%t#!J)WR(KJv1Cr)5@}uZ0Nt%+gt=5i`JDAFl zXQ9Ei>7!Jm`*C?j_o?90y$ZNw_Bb}_-vxF5y`Yk&3(>YUQ4>P)aXV5ieYjPG9|D+Dpq7xFvs$ zKzgLE<@tMGc=rSEp2;iAZ4B$sQXoLsoE8D$z(-snsUIT zL8F2kP-`DYgQtRBLB&&cg;RE=`B+lIrnxAa=Aw90g6qng5?sopx!!S>#!2{mp2cjf z@76q~wQOed#MH@V?2y;W>wb2|e(k<56|`?l?Y7}$`@YomZ`2Qn{pOnI(by3G$`9Z8 zL1U&q^20+jseJFJEcR!<_v2+>Y)t_xXnmN}l%~2*T-bNAjvv@bgdTX@P&_b|H?wXS zKd>`om*z2%^102ajl5}9SvJvR_;pZ;gPC=3JoBVW8YKWqC>1IoLozur^GW^`pnZ={C%x<~JYT=8aEoP2!7n{E~B0yqPt zt7d_|!$%l~<#dN9qkDM8e6!)$KgGR*>liK-L75%2qDr<`!PCLtfkRxoT4&iug0F!k z;7;%&@O5ymYhU2n7rORp*S^HHFL&*$z&G%>7JL)@D)>k68?OCM*RFj3GkoRIE>LN! z-8s7hBg!tbh)Q?X@o#w>T#5m?&%4*>X*p(knmJcL~5WKV{3VwCEOy zh)bj!jOT~$=NT1M8Ku8WTRrr^r1X{_S`bHi)+ePmL#oR0B?AY95*u011cp^!P4|1~ zp`H+^`&4i#Y<;+7u5)a9vi{PLj{OEu;b;bxZbMDF&2lN*YlvriYEgE*%kor|C#22b zd9yBe%#7^^JI6lDdf=0^E$^h=5#8VQGdP{%c5JEee0S{8BzsDdJ(6e-TA%Cs`|?07 zsU*yvS?3apxr}l}>#4G9a`POMn`+iX+0_wI zwia04KG)S7ceNB1z;RlN##$IJXuI&M0?MRX2o?Uz;TICV$WZ?j98q-2pGx~6O6nzYC!*yi;>4x33FR|&I@LZBFBojIN39S`XaWsirb z9+wzbCA4}3lS81)Sr+^jKe+|kfcuD~7D#>+=`*>$osdZBQOQsX!SB0%Jcm$XZYP&lVRLd{B!Y#Wp zW(+A~$GM_x#)wKcpP0717hE~FjAxn;U&SVk=Lk`>Y0TKz%(2ab(wpkjhVQTEh*>s| zV2v5Cwk1}thu*UbpNr}QPsFLoxVUN6Sl6*}O`cP?AU39W_>TIF=G5aa_B^dBE1Ws2 zaDP*MCTrUfr*PG@=x?vNdYb5!sRRGHx6APQ%&al>nW!zvoKg7N6#LvMniQ5Xv*0r9 zjc)Z64xd?EU&IZDj~TS`B&+hn=G64U=Vp}Q$A4(GY1MeF(J|xo>UN(SDIb5aiAsrm z!B^pj!{5&u^L~P7yva}WIX@t5C=izB)RVn1e4P}uL+w|6>Rq2=1JHHN_bIQeu0zT* z>NR9k!DLicRdyt+cKNI%ceTsGFV3Bra>_>O%dB%6WBdPw-UqTtmz4O_}``NK2R!IRlLh&9%y}VUYCKbGZ+-m|a5!))ljF z-kMrBucpq_t2|eHRdwCs>SfcGt}w%C+pzU>(*hCGYgd3hxHK1*d69-o_2@UC2HG5m zH}l1p!9Lj2I@!JQ*RU61|26@vR_Zd*?P#1@m@LVf`AY zgdIkr*@jq@ZHPtL9@6qQyK-K_s&$QRjr}U?;Vo&Tuh}Qvst>Y=!wLhA8;;F-_}M%b z0AgE}1Erl{&1FF#d&}Ou4RgC_^4S9|9F;Cbnj``v+i8><@!#KYs|G13n6l0)GT54v&F~|8SGV-*72A zo)pi1S6ozv8f+uy_O)s4t!--dA)|bdNv>EihACbP zeF8<;oFMSht{=KQBmEUzx<>(*%;&^i_J4!AFMW(jixDO*)G~^)#a$Giq40SRxKz4R zq_vj5)s;P;dx`fy=nh2-tLD}9?bq+-2oJj$PT$HJMqVqc@T5d!Z+jYLRVMqNi>6qr zZ)Mf|`b7oG6mnlO>rVDcqm^J4(aM<2SIDE0#h#OoeQW61=2@$9AR6iBx-~!h2QO>j zc)4R_j6{~pwVd)%W6j2qQpR%n#ub}^b~K_iQf){y8q>+Bi;gwfxif8Yk*y?*aw7sh=(O*jb2SZHxcyOU5HDi|kDv6i z=Z9Ik8aa$)tR5ZDQB9Hq?O0vaYO1v{YEf<5qT>8N{oWXE+x1`@uF@5a^g%%3km+Wq zpdO`OG@?hNRN7w3?EFAjkJ^W5WCgMG^qd^hlW$};@~^h?(wveP!g{(JnKuLB$q(r{ z)yUlH>iOG?`4hu>dKj4<0X?UN^b{Bwr4nM!N1v>n5!Q2>k(m|HQxMW~x{)b#^-TTs zKi&xI(I_VxsR-yfJ*20Xkx_k7cwYSKy*G#T^fodF`S;SfS4htpM&>F0RVG@Gy{jm! zN1>&qB~Lv)XN2_hF*3LCuaY*XW%-7%9`%RONNPY&pOBuuM&=3rmG5g$ysRv&=PV<` zQF%W+eM5Ts8JPw(;-f*N~8& zp}vgTgGUa0?~$;cVMbg+hV{^t5FU*;z3`k9(nDu}j7pL8 zoWJKCvQ1PlUNo%8XzkI{Ga{ttD@H~y43*3Yzx#1@SkHMzCO?qQUkT|cGBSFRhEn0| zZ5fNhdPW+V?Z})4B~ujAGYW1rqEe*Tv<|!Iwy>VjM&{l?yhere6dM`UQ|0~8j1&GC z)>C3+G_vs0r#Pgi)X1oosa~Y~`g_e`J!6baw?KGGLwd#<8B^<_-q_KX?o=@h=GQnQ z6U_IqAwB0C8B>Fxe)+RrtHOFNFfze*_56^Y@kT~1r$TZ2(UtqddL|ed#Y=6A%=nNV zx(D*h8>N&yw&T^Xo=HZAhQRm+__~WyJlGG?Y@sKgf3m~5|CV+4g!N3uh4wHIp0bdh zDMm(PXNs#cX~vnAVLelgjJ{Ce<@=P7o@qwLYd7wBrSuzNJ=2ZM)BJmSriJv-?GffY z{*}%r{_;08NTP!IKGVnq`<)pfJ+q9=GX7<5x>(C~$$BotB^qJZ)DO?Bke-W-%o_d` zxBFvRZPbg4jm&KUJr{-aaC`2R!@tbQ{kD_6$>EuUOEj{Re=mJzhxE)fGOAz7_q#ux ze^*#fxsj22PtV+to(d!LB>&Pg{^~ReU2=Hl8JXD#c;&ewq-Va7(MUihZ}z>Hg!L@I zB^uG%vKOBDAw3j3WKNe7%wx}V{#RH}6)w@pF8)0|l_5O~jm$d!WtPAD7~M~DycXd? z84HAGVMq_nF)}Af3Fgw@+!YJ!q3K5^SPmD5^pG6LXhfm*@WV6qeiGJmsgcPJgy)iw zo+U=cOT(*n{+h~^9IvHD<~H)nOP?hnJ*pA$*~Ik^e&furp5;bH?S`jkSxCj@q7S^>pmcxOKL>W2TX9IQmR=#Auuk68;`5aE+8#Bb`>~uN(d=BgP#`N_$th5_5 z&F38Ja?bHNgI&&8pEJefbn`h2T~05bbA`(poD~aD6GX<`V#BY(AB9I-@GR&0WM1T0*W2TH#DLH1!43#q3Oj)8* zvdt8@eG$L$W(pjvh~GtK%Fk6wrkV1pN|9sA;&5}Ke#QvGF-cU)v0f=AA~S0qZJ;(Y z<(gh8vwNk`iJ|-%Z!hna^21&!+k2(#?v+9pIgvHfIZk9sPp=e5Vsx3SdZoxCQY>e* zneJ}n&qxVGq~zar+brlvqRP?Y%1SfkW|eY{nR2H}xx-A6jvh4a zE;HpJRVLj`c|xUJVW!ZD4u6-LDK#o(jG6Lxm9o}MIjK^Xn<>K-QoPMfxmcy#Y^ID? zDeKIXECZDy1^6(3)jjtXmvDo@Po%6bSifr1gEGNPfvJfl1-=-^-8fm(n$V^Uq}w&= zoe|FI5MxS$NEwSzjWq@S8DUsrvy{1!)8`dy3OqE5dx*mIz(ph6AjMgpf{#YHLBKT0 z02J?nlSXJcBT{Za3Qk9a%fL+|PCH}GX8?+);Du2*kg}xkU3AA~mVqxv$TzT}%oI3t zL_L^!W(rv}?YCwMW6RBc*0eb7KE(3Z7jDRw3V?iEcxD8}A%0BUjYT*kP`KglV(pe& z^0PAX$Ii>hoIQ8O{JEL4GUm_C&)F!f(Qg?ueR_sbVtz(;mS;wmH+xQoXVIehi}GiB zay*M>XGIjsoR=|s`W)|q1v7F~DZE@5%u*MTU$_DKvBK4nkIc@1 zpOuy2oty2M?O8BGy<*kI4J8E|O0w=LSaol)Z#|7&)str9GZ)~Ynb~t^&B!tzGVl4B zS8#v9x|r|EoSTs~bH<$6bLM%~WAf0GIzX2HK+(nxcSnAWH)GcPxmh`LGiR$O#Mc;Y zi~W{a89APL3ue#CnX8^DDkv@}y1!tx_!KOM$XCqHnB|=}ecpn(Mh6I@Vg=7N=dW2& zxUL|ogHgSA_FV7u`SVou%G5KzWaGwpD~j$eh^!us$jX|TH7nB?La3{~D>jP(#1o52 z!$dxjlQDm0HhR}HQ@uc(p_I3#;ESnXTUSsL^_tn3PdVAM(7)D)Zhdf5LB4Opy&E<@ zup#m#Gc$5#WzL^7BP*i3XjP11n30h=XTgH(Oph^e_-2@T#2T@==>0i4IWuM%BNp~a ziXP35(V^&=c{%vv`NsD~o}r69$n!H6%$c7#9S^GSjhePGpTfs_=Pj6?H8;m-oakCw z;;qK=&0n#OW~mPfyA*S>&(D~fGjo2{?0H5{VGU;C9JcCD^GJ5aE#q#vMPLM+i4+T- z=e;vBresVp7Cq2G_5x4V%-M4mWaMrr-c+!va7`iR*9`)P+;Ri!Qq_ui&fzGIsMlQl zvfh00zCv}{MaHae*JP4m|BeBWs}r9Pl_d`QW^VLtSRE@vrCAPps*2^^dtnBKbG%B;;?!paGFOAg@bu+7~d7ZELo~VaB;kJur#Wb)CH>{s*e5dFSarjw2 z5uU~BtwbuZZ8+rv#xQWI7!8%ZCC<@=+acZi$hgrb;_cR(%pO{$$+Yn2 z87Y<*8%f3|8gcU@XJz&AiAG5@DJwkb#hOy@U2*@$qKKKbcvC@vTvPcGO^EgNc(3v8 z2(qhte?2m+9U#bfS+gc-`h023XT(+)-i;FqqIKCQr>ySfd>?Ju7R3M3W_$YSf`3x&RELQ;bTEjPm7~MG14MOE8Cn-qP1$w zdZk7`)Y~3dz6me2oPU#P^0SGa)i-d~n>U-uG8UW4jQsrKf>l1)wmk@<9ds4mz46|{ zf(-PuHA^IF*N-1RA>HyDcf-URZyY;e{N#w#^z?CK$4;6w32@xl8*aRT58RbB&-S$T z*@%o~LrZO1H%N2-tmZb1uZKvW`&@=BzogU%F)VWu)8T3XQnLGQlI6&8XK1OJN?c2+ zu=w4B|NmQ+QAx6##q@^h>1fYL>R2ql3@szWD*9&DIrzKb7E2)n(^D7RWfc=McMR&A ziE{U5Fea638L4QWMK#TIG68?iU?}{HRo__DcOnDFurp;jN={l1y89A%}`q&*aQD&min^q zKmqw5vRq%^J7zSF!=cQJFZ5sESk(8-@8G5Q_x;y*ImYAim!OEPmgN!wVzn=Y}^HE)@Lws;>?mG4xFsf*+CPP<_n$TF`LM z->~MIWjO~xtnuags6m-`RXH>xW_?sfwV+JuKV*G*I8{x5+Zb|FP!F zLDW}qs$eb%5weHHx*^FJNmEhY-Ddn znQ~RGum0mS{uavQAML-sE0F!9DkDqAo`3w_mr$5I?U+nc!(rtk3oPBjBNzQRenI_M9{dj@3RI z3;haZ{yScl>ubHyJnub}S)bT{eeKBp6UzK5ssH*&;`|L|&P$f%`kF7Bk^ME4`2`0C zzrNac7V-|GOp_|d(y_jm>+NHdi5u2`edi{CCPJCHPFargF;;z}QSL7&(|W!v$9BXT z-|wOSvf%FZ$VIXo9*bFD3$jODY|~Ds%W{2vFAmUXV=u93=~u{dec|U>=-9_m=4~QY z{Q9cz>!>gBYMWN3PF3+cVtp@-AR197g@j-~^{qvHH>1pR6J@!+>f?NlyTPVibYuVZ z!I!eO0A)VpIaU0I;xAVFxL>+(_TWZ3jl{37@7;{NLX>%5l|yr5*0%@MoOQEJ`wLHr z76-{_DFQl^j=P2CDChMK*22;{NLcIjQ|b zmFcfO4%9A`+eJbezrMzo3ZqX@=8{}l4$~s$_p+KBP$sxUmg@^&k-qvsl|fMaVvPse zXIpC1Y`4k!`f4BN?*vswRTr~;2a!1i<%Znee|^uP+>I#no+`)EvD(M=)`~Lk+}VG9 zAlbF#Wj5^<{PEXUeU-@AhcXM6_g^3R)iPB^REYm#wQnq{`5%;fH^2Y-mf`u-yKLGz z{PD+rj#VG0{EtxPlNGWY@no$1h=PfUD{WdO{`l*wzMmuek0`TzwJg^ceb4=;Q<>K!dxP6mU znf}_x`Z7>%bYcJX`B5%MmFcg(b*Sb5%H4Qx|Md~y7otq5D#y~X#-j=8TTx~$E5@&{ z{yPtOKSY@qRk^qU+(L_zN=8|1yu$?@r%`e+>ef++&RVl*GK#}LzPk0#T<`a$ee?62_*y9H(8bG zuf8f|-i&gm2dHlt%8fNnb*TzteQy)%L%ECY@4tQAR~Dem?W!D0$Eq(L8LLp{?gs|0 z?`f3zPgSn3`mROBHk4`D+<$!>kE91>83e^IR{J;}sVH|)mF;VNu)fnM6aRHtC;#uO zzF{b{UzO{tzANy2wQb%s};hfO2nqGpfEQIXcI~CKkI<8~4Gn8R_Zi*U#`| zPtToq>%7^SQ!mATS>9VOjZB{mO!( zm|4=oB{IuU>*TL4ShE5i;3IRRG=Y(s#-lf%`Mkog(GmPrQGo})) zk20&F5TouUGTYKzYTo+H6k5$q@LW;2VqIh*tClq~C#;T)Ot)wRBQp%uWMpdOR~lN_ z$TEgDHZs-PG^!_8M}2&_fw6L-?v$$GSefj%)dfY1pypL>J^Jff(R;C5&WfZJksQSV zOGWCJBR@F0GE)s5S2LB!)G=V`*!^q1EV8oLg>nCb8nVc*3a1;^NAkORuR1v~BcC=_In>eX zV|=b<%wpsg!y>L=_6BsKoQ;uHTc(AWJ?zm1MFndLH&2>)Z=Xel(L-cW3RNg`)$!-m zBUMOUZu zis$u(U&p#j&%!9cQmsg~=_xcWO&dD=#Z)}66>L~Ne?z$YaXX64vB@0KRU8*wiZOKf zOX3l^r1RJK)~(AIhDhQe=Giob`GE4d?D0^_@M+>9zKdH4OeN<@$K~hs%9}KCu9#Lh z{F^eIZW85>j}_lrxaroS!n^OrSByYQHj3O08%yTNg@KdWG7*fTb*Y$z(#DIMB~|9B8syaOt#Bpre(o7v=hmGOSQ9$i(yQ2j!L!3>k4TY z2v2T_Vi+-qSsOR3E)-UYs|)ErqYw@>Mk1T_(;@_BAx82DB=cS!(XYaLb-oWSm=cHY zi%6Uyh7eh2BP$JA`T6U|jh`GH?ejr8Voe-=3C8e&RrjnY$}fRvKXJGZarWi;2=gP^ zHt~U$2A+dF4o?Y3MHnfTi1u-cVYt>k2wN^o@njTFN41%^-|7+XxQy?BT?!k{_Yq^@ z^_L=g5LJY~TYX|l*yiLSl;PZpm_(L$#cEm~-Q3?74lr=+(>^{n#^9AeXDmOosNimV zCu1r228h(h&`R$eOJUHUv^QRO+f_PMZpI>6CeI|%0F(Kbnb@_{dU6a6{x=q-<)cD`z{wf+ zRlserNPqhi$L%|vhvOFf{Fiq>&7m-f7LSBQLpo@E?6dykX?5V z>$w{!J!135HZ6ALRbTZjE7oIIjt4U8#lnbu&7|est1b)qrUrB49>?5 z)}#jmx)yH5zVhf74&FL^VDPHiFnCoJ4_;LzgICq2!KYntQ(#I4OZc1n3auF$(k%{RpL^Y<5DOkD5T8>$=EYf>DIQgqRm_7!!#jJE< z`q#u;zH}3M)r5qJqUyJKC%(+|MFpFH;6_{SM;fgB)C;K(pELjXpZ$)AK7u1+QJ=#M5EXKKX^sBnb&~Qiw|8h8gw7x50&!?z-ta4-pHGDzhz7mMnp1_6G#cvBh%8wft3pZQ z_9hx4CX1U_7{YbA_H5%L+MUe;r+!+4hIENi@rWmvzp4#utTPDTqE zf4Onj1#bXW>~Aao?SnV|2)Fw!bnNmZ20h)ln_T}ee80*VlrnzjAYiw;`4J>!f0dt#toSdmJ}3=J3Uxgj9+E=zC7wusYj*t#LZ@P zGYT?`e1&U8O$#;_Lm!+xyc;(zUy9O2upO~lTC98!nt9#`BJWn3Y z<-wYmaah=v(##yzv8DW$p8}=;Zo+WLt8f^ScY`pL#G6l8hPAvmDzNFex5x^J*D^rk^S5sR`$Y1OcCK2udz_ zm$v?3+K0>-PF>;L?TW+&d%yw~fSm8XC4xMZ%+sYfSIInrL)hIytvMfypJOX$H z;JbiV0X72iyBOy<+-i;D0rfI?X_$^QY zwwS-@QG5bv(RYLM8TL#L{uZN;?xgoq#crzke!>bQ2OKMq)_z z7DMtjaGACPkH|DJr=8*6YD3UB)W``5i$um2XE+$-!Yr4h};}S_ewWv`!TgQ+che z$LEahcHkNART6i^n#05_{PBzUi|+OpkTx}H4)Yl{nTLUREv@`TcDu52?+lu<=&rp)E$dYMYC@<5n zE_RN|fV&E$Xg}qD6aF0ZbYn1ZYp9OBIX7{^!bPF-##eiK)Lok1?g@Vh>~V@GNJ82`ey|VJX!A&$C zj9NE_;lCI`z97bLOC0)Ssvw|70Rb6T6^q4Ev`WN@mBmWI9>6umx0Rr6$`K?DORYnR zTQ1=_Ylb{?04vYr;p{frXRa#QoVjuJg96VH$&IzNhu;%Dxc6Z&`HeWyE;jN~HMrB! zlX6`#BnOwFB*C7@G$-OR4TBqKAB!6a6YojSfC~|Au^cpy6SuMI;l1On7}(IhJG3y> zUZ;D~+`Au23nN8Y1#VNllViVR>6Q~DwjH6d=oVc0u78KLoBporNHDKmf7gCA=t~Pd z{CUvdr2A9#oMVzDBCPx^;xh)4nDcKR@(!o9-|Z_4odWuFz^d4R{o{ zcs`-$)}em;Ye8?Ppmyv|^5Ggby(jJJ-^5y|V;t*a)qI9|_73)Gwn z&5vIbObG0a3)K9ZqwQ^QA1J;`w@rw1l#?F|RL2K)$0N-t(+*hDirQ5jSv~H3#lzO< zackT*UqYZdF0eZej||-!H`V5|P1oOXpLyMvyzHajALE=SSA(5$0-6FRc7I<}l(cNX2CN~0*( zOB|+?ewq_X&L*s)-I$E_jy8K}wzj2}&&={2@A0Ko4r@&Vaz}_0ETJ_S5&dN@@IUgd zNOx|^1#e-1gSnkt+s9nT(X*k6!-KiqdTuI^hb=<$_psciOH zh+tyPYKxmtrF%QjrTPi`0X?s&$J12ZmH-?hR^aDoF7R~F+u=Td9wye!>(bA%H$-)S z9Zl1B2U_AvE}rEZDRHdsX+U=^)%`7~z3m#jwdC@)bIiP8{P$!QzGH|Oeoup=EEB7Q zALl5ajL?+46e7tf{%(aw$LPLpV9=>qJ-!ih=c{b@ahdD;Q1`W?wfY+_Z?~AEoU_%& z3aAhIIs_VhQ=(B{yW7+3sCXA>G;qREG&eN;D0%{m6=?J(PTGei$cbK1$C-W_2=l0% z?U?JY<5l)!g>MOTDv+oL`$~&_cV$9$Thi8Q)FhE8Rzq&L9gDTj^>zsOBpRI_1v*9l z`|1pwLwt&6WuaO9;L~3zKCRQe&1a5JJGlJ}IzDah51(Q_*N5>b zkW|&@#H!uyE=OP_cOf9w+)fj*%0=43_1z-Y_awExfqjE1fwt>i-Yyx`hsuZe#Bw0x zwq-Jl__*!wT-g7Mg1SSmma|`$My;IuqXSq`!D*FprMhb!W%WQqaw_j<2veX#;Op~& zukjG8!bI)j(j0=v+s@{D6C5v%&cdSn8PJ9Kx%iGUq+r3xg;ae(Rfg}8*2R3S+!DHDZ3)e1v?X}OmardN1#p=+jY}mbbi3RV zeC=CKaithr0(Q?>3q|Y;_G5BCXyXHOe8*8&?s5NMxelBmG#=WvaC!O zn_^|U1fz_OiekFRGL`Tzg6Wd{vk)XbflTAaZ{!0G{2Al20z4JJe={R4btp{XZ-wn74@E*Wls&tCJ8UG2|c`x990m6G&>F-tiFL*znXK#^O9;)qB zp=52B3PDYT9L`Rhf>WU+Z3IG`yUE(QDwHJVH)~1Op1}VM2^mUkMm|mVK$7JIaRKql zf`u_y`Lupn`LSr8Tt+t`)Hf^dK`uFM>lC-L^3BMPmM8KVmYImZu^e~ti=2WylKTbN z`2P!`%(>v?jp?>x)hcM-io~rEV)|NG{Fv-LzmX4velo>oH)1OAyE6d!?b&K-P|_vY zdxj)?&rp(Zfh^PLEJLPIrs+uxwBNc!-=3I(H*6=}yC$$R9zZJ@I-zPgd34?DT)I%n zZaky0V}Jnu11ix1dlKE%j(OEVq?Yl~S%I$j;!*D7CFj(NILc_jKeB2aDBHO>G}^(v z_6JP4Kg0cQ@ihH)*8$StHchXt^=xOrG1Ies!fQcM0qS#Pf*x|psJ_=Fl7nTe!F}9O z{xDFOzLoEmwKxLfv10Tx((Uejj=&hk@=|ro-@~pt7n(|mguMow00jx2&Ml`kYAMdT zGvD~yT9(=siXW%@68``~N((;9`gM=f_9&}e6MQ@YAkYO-!gLa~rog}nnrnA3{&5ib zx@WZ9=R*(Ju)|k3fp#CQpBD0jpr;ADVQwQy>}H5GPU^XWa{d@)_F+J(-v<}d2+A+$ z-L9vgs(pdop9j4=g1&=6|4#QwM+J`pLTF%r6ZC|CyQ1}TK`N6C3C5qRdv@rEqOhl~ z=qW`Y?<>+FVo30n>;7HtlY%t%r6|()Nv%|F$^n)hubX2?m62+j2@j-isDuQ^DB8c~KpEt>2{nTgA+mA?E zn1t~`$p@k%{O!7TJ7{8ima)qZ1!reJ;5yWnAjKhi{D`1kpD`jnm=zzWNp!yha@f-y zsOr++0nbWiX|Jn#4T^XgLkr_WIVcpzQTOhHVBlI^P`ZD{03%-s6!sO5l*un6S*3X! zi`qoBCwq$%kdAf+s!k!xlqXx(goJW+GXQnFz4~K&+ZGW)2rWU9{ms^Oc#np8f!_ICKOOX^xH}wy0KYx^G(=j8;LU*~ zp_%06+rg9yJpshLNv68q)TdS0-v~lp;!O-Xx1fXF{<@+|LKTAj+6}6)1i~21uVMNr zi0-oX4%J#8!c@?6!iyoB#ICsrT2DduOlI2C?W%>$I8@nz1{t%<+pT67gbt$n?m%hG zD@PgjNsP_Wz4nf*pcg_&(u9sOh_Q`ldrdI?btPR$v>%Z&1=5iIl*(k?+ueFGaRk^~ zfg_&a5)Wma0@48Mt8hhAFt0J_X_vUdQBgQP zz9mpZFb0aa94MlH1ks3>b2#629R~g~X7d4oC2|`TnrL==+8q^-pF|JlHgYx04P_oB znlSk0GeZ;gVKk9q$AW2;XkxeEn?ot*yH0`B*W=y94{j@d0Ehn$&_Zo!X}s=l08RjY z09pvt{+nYA%?c;GjR(**l1(rYl?6l!<_vPM)gGnSz7jR6n>dZF?Jdco6- zUT~C^p;k&3i5D6p@WORQPx3Q?7upgPxBo;e{9yFE!VirSKQv07SmB4(jlc%IP{bWX z5vfrq;+treKoLz66JY9ufF<4lk|5s*p{Noyab-i?Tj@G%?-H|#vJ`)!8;Bw3{1&7e zL=Qs+dZ-C{nzQzTXDaCrJsfPcQ!068=mDMS?vmS%HySk*O;jkQU$nsS?S&eQjmN$) zYpJ37=vHiH&7Jv@Ix0&6#t3?LmRC6*Nd-7?NI!ASh}L;Pk|)St6jDB8Z07D74T0mua3CLzeo2w?KNO%u?IjH1tD9| zb8riB-@}fIOU|JXa0*fL7S?I|1JT${tbdRzTM`fs^nhG}*@vbl$dO#MHf|wCae-o+ zEm%7Aunp=tlWM`fuE>@~2nT_W{Ow_RBX$=(K2i5Vq|{}HQlPQN(^w5c2E`zFJ?`=~ zk#_Mk2fgj?{f>&oXn@nc*jhCC(u=B=D)?pu+LprJdQLDMh2|`^Z}A)$+sq$Z`~W` z&h5l&6U1v>hcP?s`|T$&h^?QCTDB9fk?5&z4eL_&A%X^y6xuIzDR|7WYqt*BtX(|r z0rlF|O82*TT-3@MTI}{ZqxSEycBs_YboL5nxclwmbZ!;Cd8+^3#z!)~(1;g7HrpA> zj@5T>NA(?)PbbiZw(+9B4;_m9>veQBzv-j|!l{>tPmpqaKf4bp!>I6|k=K}qSi*cp_R z8iXTNP@q}Go-kDRs?7okuA{oM%$>^>@2%4Pb)abcDROJD?+;F_K=VUof`Z&j3UU-E z$f3Sey(SAd16zdaSnIjm1uP8JOd^6XN^0FiV$9b;B69BlL?l*m7Z9`{B7X&pY3>x; zm2zsV**8%fib+6jw-S)P4oN_+MqLW8ZzbL(nm?@XBqG*JnE>44-R0T`8ZMM_v8#(z zC1_-5Nm9Xydbfdm6SSr?=LH`b5e@ab&;%`RFf!|5fX|-Fp=kTY{ z{T9AuP4Eu_(~~hxz~*CO`lVJxpKa5Jm-voU(Fu6qajX?EoV6i!H@PFMDkktzRZ!__Khs6IK2L9iN!2(7dM=TZe>=F21khx*}FG$?|7OFqO5thktgwghXwyv3H*}F;B}^$Nz6ujsX6zi^Tt(#Q)E+qi3G( z@ii($GXM12I9NN9o?O_1OihQZMr{td7hDSrhMd?5Tu0rxL0~A{WZw%iRxkv6^+O~~fE;&`EATbyzEt~Oki@|}P`@bFWH19x)OZHWz{fz)x?K*S!3-!S zXRb~6DfuNCzHb=(z&{d#zR`NEuonpWw$oPNAPPV{p?B!c;VvJ{ptga7vDfH%+w}u5 zhYETR>fWv_A)J84!gk1uD>iUv$lVE&Aa55Y2Wx3Cn1FU2w8l0iuQP@f3qw$h4*ydj-Vf^(|Yu~kRWzsfTW1r9za@=Jjw+@1i7c%0}HR8u_uKMS9pVf zY~hTP!Uhq_|93EVyZcb_Rg(A@@(sBm9D;q7kdnTNC9R0s zLq+Xp!VPR!yFn+pfjquGuZz1uO&7R4kI^0s zwp@b$h~NYcMQsF~5?Ob)QjVy0foip zZB#6Gfv&*bQ*tBFkC>Z4jzRR}+qelVHsWLg#1jMa0SDAJ(AhT5*t8TIunqIFZM2c- zI$+;#&A=|uNee;?BYKNH^MnQS9#oCziRrRYg}A z^dGr{^SIo7FqiD6kyuCOUQpIYTT>K+U|=jV2w@!6n$K+@uLbiS=07gTp1Pvs%w1g0 zZ-=G}IWxNLubh9BGtcK&?d4ve0S^$dbsO7(?w2+~$H^*%l^L|{Q7ahuW1D@qxg%79 z|LLM_kFZt%dRdsUcmXPun*#UA&qOtN?t+i4`F`cJ+Utw6MIN*z2p}f#O`ng{K7s*#gmk5 z3Vy*+b}Ob)hyo+<3}0wxLR(FZbGomQ3t_sAJ%b!@Ipt z27)cM3Xnue!9a+dXa)k4SJ<8j2EtLs#>Ch+t_<%RZD$#+7y8NpLo27A?e*URnrjmOzYm2Db{eg4dZJ6zqmjP4E!S7R+*|c0J72 zq_NssGc*)34c-sq)H-0*BtuJKd?Q0n91oSDdtlQfLyufw)N=i3Bkh;zM(D*$j9eh^ zUIuJU$R#GEB@2HvU_%2mmL+^EDt`&hTSP84d4zr)mH$(bpU6VmefYa0D*v>|2m6KJ zQT%bE&4@b5#WwNXjeud#^u4WzB2UrrD~zA4U&KoP4^GkXY>;6$6nV^x7DX5XVZgS+ zYEfjKDYY4G)HHr4tGOJ16IJ@>uo!|?TI&MjN#Jh4%K)bg(Mqob{5Rs`0Z#+o02qh# zI|1VX3jl`z-U|ppV<}I1CILPG2-2Z60GI+;0eCjx4*-V&{ua;yNN&OjSPM83@FT!c zfWy%?zMqD;jFSvW1DuXI%XAOmg@8){#{jMbyc%!=;5C51Q}N%c_&m((YmvSN#*Ehk z1_8$cei!q29N^P{;{o@ee{KML6A-4JrJN6ZA4iv*lQgztNE+KQl%!SSf0;&eQJE$z zsz&3?l(3Ilyac-Yr9uZN?4;IeOJD^gNj@)+P|4E=_s35d=m3@Du}?A8DI+*!oR|6y zMo$+8NjQP@PB702HpvAp85~n;FgH!`v0dr~;bT&^$0?PzR|mzD>S)xX2}l!1ql96R z2S>Xk2hM|0U_nR26h8-BbGAOrOt1bslzgN0y|tc3e7y!~u;57RT)AmDAC(Kkb*S_j za7t=8RD6c1g5F`rkpM49IcFwC0zT-_Ap32iRA3&t70`QW7Gnk2U(|!pr-(tElsXs3 zipc7~j0qAh-;+2jB?z_CikOSEQ8*ILLnV@k>%u!pGwTOnh?a#@6y(^Y2|{Bp69i~7 zqwutqS8rC7exu+JaWtWq2?8~EF)R=|V1eLmrx5~d4?x?5a5kzYF7)8Pby)Ir!EDK0 zTYQb4I3dYV{&RF~ph}!|sx2Oc`b6q8mQ+v((8td2aaU74m$b&62=!c*IOIhEZ}r@N!LpqI^28c#31jj03k^qH1PhC?RvVSH|f#zdZ8k_H3^peM=V>7^Hy z0fE0$P8v*Am>7*{Eg(yn>!ckDto9v6t3z`l&4mn`^GNnBVkd^FklthRZ=7|x&PC9O znT7yP!w?{Uxv(wYO5>A7m;`;6*eO&QHFDKn(1XCyfylMHCisfEY^P%v<*6t0Jfjm2@hlSD?qh8_AIDjw-7d%y;~$5~ zKSNy6p(0zjuknP<=R*hTr+0EeV||k!Z`66EVIk=RD=Lg6se9Y&+AS<3 z+ogFVxDrf1p0|v$kZgwz37JTaVIkR03rQ^Tm==;w^eV-Tkrt8-#6`!@Ay}V|GExkN zRb)$q_0xEXm4sDf3$34wt`;17EDNX>^#sK_u#jw#7EsNmg(QxoL|8~dM3QE)kQA8e zZ7f4tNOG?h*vdE(lyjQ83@oncYH@L&ODSucic@1Us6$p^Xg**q3qL_9ALm;P?MK@J zS&D~n+75HUy@j$cqKb7U$XQ0U>%>Y!-d(hW^U${dGl!;?SwMXg-U3>J27tooPvc5b z=KHwzh(p^(QjY=~PV1?jlHsC;WL1NW$kX4M-Flo{4yL8Y3F~DHBhGEEwX+kb$1CjrEB;b|m6F}qpy)7==g{K@&cuoEJ_w#<;0hcmU9bcaNo5#?y~tt|m8D4PAJbkav%XQHrZ zFr?>1Of~kSq8s*fq8mKzMA92#kW80`NhWELJ^;NWEou}hGU%lWQ>yO;DuMv1m7C6> z6HSnO!zde8mp|!)Xc|kR2{-_z*v=>sxs$jQhW@{Wrkfeumw$| z3AWIaIxXgv(P%QS-eMF(XGEn?ubqWq$MR01xPHcyha02 zyn76v1M5o1BlQSLGRs66=#n+TFo!e^$f(EHt-k>=yKa-}j-|lyOAN&~bX-t%=h(6h zR>=t+LJ!W_QrD$JgFCwVBa&AB1|2#=u8qTjk^z^KHdBx?Fzjpz`UNR-fTRrHCtrl! zVy#V|wsjE=dX_-c1uH4VPU2vDhqT4V>q%*~6#bC)w&at()5;YA+78(3Rf(;dWedQr zfyi=#$m)n9vY_{B?t!ZF(*!gHG?!*CF98j$o$CmlK?I%cNIn8fHn<9v; z4mceEk=3b)td5`)L>82gEt1IE4Fso%EYa3_Nn~L+a=%R)Yl^?u36=R%hx(j3GF!UH zz&j;#2fJ7p5q9;D-#Xl$Mn^?kM-+am?}gv$`=!1*6@G)odzY!EJv02)4*t)uK(C9m zKnJH>|HUoP>xkcaySj+9K!;<6s3R%phUQPX<~sxpR)#r397hZE<_H?hYJra9Ap=;T z8ykzFznUfe)nrr4Qrkj3B5M(J}>Ruv(l8afU_OJ6o1Y(F$Rgey0u$*Ga$-nD4e-R1 zpy9+xYi9*`5Kvv%wCj0p%Nh6>bk`ivUGivk+YSV181Jc<6I`68{xNVxYb&WNOioW4 zF>G2Ch6Pa?#;_Qext~Z3yRa9AoowzoQL+hBh71gASO{DA*DhM5q*-LiCYzcT#mJt) zA!$kyR5Dx&SIJHEQX(IF_LOfWSpnWn_)BZz*MnWbhb8j?5`w^0oyBJ@2G zYC`DyBGin~4@3x`(Myiqg50r4x5}|0G#8R;h#R#RqVjnVdx*%DPO7#?hc#uj&0maJSc~-?dTqP2>Z*siTjcQZhYV|{Lvez z@#D91OkDU|t;EjEY|kcpUlHs`&LP&I8;hkiH7A z3vi=~KMR-u8Tn6D{GV74cEnLeq|>~b&pFUrOg|rxwpPRq55}UzVp#oTs^^Oq?Mp6K4pz6#UQio~-dGIzvgC1OF2nB#Wcy3?*ql$N%!# z=Tu1gqx6iH2aDS$3V}Hf{(43$AvRo8#&9zx+=kk#DQZt!3YPt`+t6SLbPVQk7ch|H zrAHGoU>{vxRgxL#vir`J5;%MHO%%u#(~lXZ$3s`#Lmm@CdPP!ELO-FZR!GY6)v&J? z)zm&}7+=>unurJZs})Ct8Pb2mO5lB?{BMp&euu$_p|f7+IuwFqo-Uj#RDwPn?gbU< zX%FUgs?Q6{=z~H=Z+n~-^^(vZkCRoNsf0d!TFfG=?=X1PZp!Lu!Uqo3@se{mPNejB zI$*bFkSGHMA#+eNS4f{c2cdC5Eryid1M`9=(6eH{Yc6_9O3<2p zkGW3^st#g%X?+nXuos!`Bhu<3P11C**k~a^2R0Qg1)cik1@av{{;@%{n7xV~>&{<m}7&FLG#C!%+ zLqNm22a9=NXMmk;mvHq#5R?Z0f7GQRB0K?#rT9);IotrsbqKdrX*gH6Mi^eEm;wU0 z1H@c&9T4l#0U5HK1DI+0VX+PmMLPq;v8k?XN`~mUf#xuIN(T#x0gNd}w60W(?~qcb z&F110Uj48)V+YlWA{JkGfK9J{qiL|2Xz!5g4-WmX_$r4P{v=KqE;-h8vjDV01;a+A&ZADPfx5hIQM`<-MfLhysdaozq-7G z5xTrai!QGby1ZYYqb&mQ4jn2yr&QrJLb?P^N6J>A!pjvz#>axlfPaw&Y+OR{g_B%7 z$3Puk4>4G-vtJz^J^;#&X`5izOYst;!D-tOgT&U<;WatRN=zMIlcW6Z*gCvOLZlDn zU3VXZNEq80&I|gNjdzD-<9!e!(z<^D*?4^)vT<>QOW-?c#c#;QMY_OuDxI`Q{h7(e zB`tEaFG2X1upKaD;R4@57Jg9K4&d~zFdYC2JZQ(Y8x({Kfsmn-qqR_Mo!k|XI=PEo zUZ^^SdTzN45+}ATLK>IG9EysZk)ootwne6-sI0f7Xtj_OEe}hIHW6cDVq1holrs@o z457kL2#cV3ZlJKJGg?^mTiLn@C7thwQ1G-~NBV*)xiqTege%n*y;O2vP}WY3T$)uQ z7cKWuu2n4>x#$uGQ}uKrh9D0HmGGC^7hk0`fx_|$e3d9mjnj>H~kJ{6*6jYcKu^$32NPsSAWhSH)j7ei{A>BK-jr zf)JQvZ&-emGt#0E{GtMLLm>!(c^?YFn94wKUxt0L!GCo}@?SVoVBx=NFaXi~7wrv= zG~&GOGm)34^^%vP7jC24K*`JdX34IJV#&g~!87B>T1;6vZ53L1wyhUSwmga@gJG2; zuo)jJP-D9!2f>pqH7Bt;nAtCD1}QoeHj+E5>&=}#XmDpy_ExqtR2`xRM?vEtY+iZ^ zw!a`c^DEWi($-fX+A`FHOIx=iMh5O=Xmk?L0YxtKnw%=|f*6at z*u|>x8$+a^__#%D?I5m~7#>|jBKSF&xeH?|)MZFrXd6I&4m!V1-;-ZJ)DpH0 zXy{*eCT#;2|1$~|gqAfjZJY&_J3Gqz7-kV~}XPP7NL8SL4!54;gXNHI- z4I-NL0v9OO@C)DqY?BfZ%o6m@Fw#5HcA(Ti0AUVM7+j{FAp$_RjcgMLz)?1vwvEOq z3B!IsO`!gzI1-;)WH}&fuxu7CZT%fMG#Up%G$U;-9WRM{ACzT4H<`v&?%iM-;VyZ& zF7Agg$Q3e;Q1T7i@+!#!{3O$OGR!nytpvnN4FNH%45f@%RK#bL07%v>_(oKz_(o9( zkJMHegbrB83X{~SFi0JjCi1e&(L(iXPPe5wxSd1xBe9bA|+AZ zGszl3F7Y~|G=s8PB$TI;z$N~&nkxkS-8Ox%qx_rr99Sy|t4w9GP#0;k0Gk7+G+6+l z)c|8ga&Fs*E@@L`N+hC97V1^^)q|d}=wU$y8zu`45he>J8WlzhiIAp)U-WmwXrUfd zcFMN|Pia^yP;gy`ra8{K7T~4-@lR*i7sts9dm_$|fNV<3KjEJDSZjZ4&AtZ4we&P@$-|NJQEuzx|Ee)ZUL})ZZJ4GlRA!shG_*1UnwNaJ>cB_j^vQ}(bv8u4-LHHE!=Xjm4J>cmt zJQwf|6^ATdgPlO>VL%u^ zmkvRl69CTwWPB^W`9i>RFnmlO1(*()4tNRRl`4L{ithxx6zP9d@jWWOPsQI-@gl4S zT*FoB2V}il0QuZ^Rr-%r`p*Diw@~^Uz$*bS!X&r~@Or?j0q0`fz@DLWIzE{3S%B9u z9q@X<92L)1@ntH$TE+hX$ab`<_-88qxr(2K^~U^E^gG+hxw9C3BW)5Gk~RqpC22|c zpSU1d8>T`@8c!H&<4M@;yc27jmp2m>}@R8gao{E$=qt39CoE zji@o~wOp{QPwikDyc*Y*??MP2paq}WiBRNu3y8BqKS!$LrN_<|wbZ$u5-kpGM{4k? zpWuI8JZI=AMRmatE7e2%RB`a{PxUNbUd8`KadNryNuMR^qC%<2usy|U^{4nsy_}V! z`6I=PMGlo()L)8<9OcVVmn! z`?~CM(K`JN*Xzbs_?d7Br#zj9M5|w9=eWh-I4TNG%bhWg2YJdlY*3F$$8a85$1j-J zA5$#qlYFtLK$ndWFN<)3o)B`Lr-wK}TnA!$d?;rx^L)>dpy+&Eb|PHU3;n3@c8pU# z@>4?`2)7uX;;Fi@p67}PP3K`BeV<#@P@Hbq6Vh>OL`^4-%QQfQa-+5G8XH zrR1O}GYF9)EFnanw2d`|ZK8Q{n!*a=)*dB?lPMIGJEnNRI zPeUCm86j7Q3q`*X@*^nC#Ux)7e9R*zvw4HS2**oudD_cadQI@VVzCCxxelg`1!p}>)Ypo4$`zxFg)FqTV@ceJ&Uft%3K(f~DpsR~#8Y$mY1pZfzRokK zybw`?((~S|Rz$CvY#5)4!m;d6MH@l+iMNJ{zbwO}foy2`b9fg}roD#h-v~ShTxs7M zayk@>e2TL?_#%;`n&$6GB_He?a^)6dh)8rb>tbN}6ooE`i2p z(jG%1ocBnV@j^5?OHV;>zB`l0AZ1*(KrGf!=I6mbiGgo$RD2DuF|?@3`gezLgyrA_ zcZo*K^ zv*P1xlzBa{7_X639XJOHemTmp6>*e3f|rnSjj|W{Di=t;$kCKYOIV7C)&$GBYH`z9 zL61aQ4Kf9$B&~~(1S=9TfA#k`cf~A&Ey*`%OLDGU9>R{q8GKBv3VpXs#8S~^idrtp zJy&hf1yhE@uJT>Et?adHx)_!0*0l;pi6teMfpE|z7gy_l5lM;HyAB0Ki$YsF&_@c- zNOU2Q6mOq2dbRUk5=kv0lAURU zwkZ?-a;Hgw(XuxB{$e-MB%8=}Dla`MApHlF;?x2N$+RA7D@59bNk$row_axFmm`;i zC>a?3=sx8_K$a!z5g(OLb7;ftoa_c|bFI%$0#9O?owJ@(XoofbY4R*unEm@0v74gU zKema_IsnJ_$NsI^ShT7@*qrkf#?Qj>;q0UJCguO%uV9kq<)ubT0r{=$XK*}%fn?Sq zupa4vw*uY*xCAg$#XTy%5O68dp8~uC@MkLS#|&Ux2fQ7SeaQGZfQ+A~;_RevVtz>0 zh9Sw?FeLBsl4&%nmTBV7=2^V6dC5}PHz=jM(4*tNrkiNN9+?<1Qg_tI{X%SqfjN^x_Hi z^?0ISJP_v?-da!GE_KDdwa?a{q-S_j`C;mZg*?H#;~V3*pvos%J;hU}E2f)AG{ zR~3~?aoTQ288x(e0&gUshiX@D!xUIc=c*eC3{P_|9^TDs2MdxjHGy|HixY0@2%Aqi znS-sTypfU|Csbau#QzYYQvdAmnT3h=_|)hDa}jzFqdu zaL)i-3qsF!o}p)Zm$wYm>+c$3U(dlc!4cw;0azWh7*3{l_USYZW?}VVC)2xPIhhuG z#(s<;n2ayxWV)Uv(UF%7bbuERUovp+gi((2M^JU2PU9LWp0->v@THtg?-GJy3=V9S zqMS_QFxxH&ju&%IC@0gqO!uPZB?El4#Xg{u>H3(L4A8&m7k4sU-=~kbT~R*bL`mTz zPUHw5akvKF$ynAGOrbQJ?P}M0&ZVbQF`c6p$6PtWW89R0rEB1+pU*@znt0nLmtb6Hy*g) z#It++Ffkbi-o|c}CbPtIK??9%EqPx)bgy?G0N#rcEr3T)pj; zBU%@jxHgPnj|t4WD+;r=8<-WgJ;1EI9{}iCAlD9fIgrQ|emvi5J?9JHS6n9<6Tbqv zMtXq3NeiLutMwerzy|;y!nMCI!incj>BLh%?eaJ4M|t6k>BzH+ng`zXQU`pi+<5*I ztdPX8F!J=)vqoZA;9oj77Ct<8D)fqbU}(wUie;xONJd$)_7cB1zzUibqPSPZglXSrgGWP@A`0_S5p}ZEJDj{nl z?{tA4Q@Zs(_(k0M8+W=?(Z#a7(?y&u5qG*6Zv79^tv}8DqtLCm)TPPlq!Uj4-E;`G z1g==R;IV%SZq+NFiJcF(a>;vL+Ht819kKv-q9?*0I(H7Phfc$ze*%U*?GjL}@X+aN#EmY9OH|v@x|t6%k%a`R6>gk6+E(($zFKj!jj6T#F$%MxxCH00 zacbxLmNaTD&&chy>@p~efh-+mccY3J2=j}mDW%ipE_o~fYD)G(+Yh3w zUKLGSFseCd|6w?z;rSeSx!-9XP>#IZ?}WIeMWE9L92EgN%}c@2G!T*Sq&Y1BC)~;n zO|8JB3F?X#;YRah>ug}s?A8|qCWTDf#H2-wdtuR=l-OZlENX}xE!ec9azvXTU0|2l zowZPrwz=J|TyfF!AzY6FtI*&ULB@KV`OD?)DEe;UpNkr#Ettekjh8M`+kMgDgD z-4exWu}v&767VLYVNq8t3ogsExnxG+Dyd%MON^haUc{hY8=;hEyhnN79TW3c^N}+- z#T!e9W_X+|HQoit_C~WyHxH55C1(OcovO_MoC@dxybk-B7myciGyW9dOu)_PE2ftM zGJXnh4&YGKKNs*EK<2Ywasc_6MHpkrE-@t8C5Do;1^8d4-Ks)D!xLy<05gxp`uDXA zFmXU|IP-r1+MTPwM(C9(NE9xy4)UPMrLe`-pG-uW9;CgF{+Vk#AEU*w54&Yb+ok#w zB3qakBe~X7rQuiW5%L0Bh7Uy;@7MGik{mli@oGABTZc7NFhP>`T4cgqu11~kW-id9_yNVxukvq4!_&ShQycff{m5kdF zJFZ>A4NY*8pB^|B=NrW$uzACQHE^?|;na^*)o9>pcr8Rz#;7htTf{K13zc7%OK{B^ zJKTf24(a4V<(TAS}IckT{H*)VLk0sk0#i9_LkPo1Oe1VwuA#P2Bo z6rq5>MJr)-JgKm2O5SKvUGTK7PWX<2?G#vEUb!)1?tGOk^=_cZK7@PgAYST8hs*&~ z;pyz47x&uW{;LkmVPE*JGCIe|7WZw`J1Q>4e$#dpd;PK~la)P6RG7@0IZ*NgAZ@ZO zvxJAeou-F9bzZGtC- zm_&~96_|UVp{967JIZqz_HTz01Tsk1Dcllf@4^+YGf&`#kI({nhsVzF9Uiq2Gan{(` zx*M%vc}y}z1F~{;n}@TN!Z2Lb}Mr$7>-FL9yAVchCxWv~yc3q5W(2t-`yA)Xk} ziVcn0?=tT6aJJoumm95Dw|4+zIdOI^oNl?=PAq(j%x5Tbn5&xSt(~DcF!*oe8t^JgGy(kueI6ZC6kVp| z>^P^Y#63KvDy`;3xyU;KkHx)NIVu~I)Z)V($56$cP^Fw4VBhn`nEC^W!CSZsz*r5t z01jx$T|l17!U3%=pd$KDTqc9!fYt(}5!26tE71r?K2lMqk1h*N+bYpFW@XuNe6K`D z|6~YP)ZwI9WA@%St+kBW1>m}&vPoupV8riq`MZcoVL)2eb~bYoaKJhf82dFn7hP-j zUEuaM7rP)BBpOcH!dp4tv3slF^%yu9JwA&0$w(#+M&enJoYEySaPT{N?wANGylI)_ zeX;eG3FMmS_U_DC_!XF_lp zJErvj6ihj7ar!abcn8{B_owrclkW1Kk_D0aUN0S5!EHlGC{n8LzmBv>y6g4X@TMCI zcA)PJrHhAGZxfw&x24c^*(1Nj;Z(90kV4K5-6l0IzK$)YIMoc7Z#e553zZ5KYCpE6 zjb+8H+v$}Tp{bIPPXHkwKKm<_D;;cBk_%olylF6qvAKMy`TAbzVi)Z5K)-u24G-Zj zLAwuB$vYzSsHtS(;gG{3Z3jX;t(BndMCh*~v_KwBHSTzHPGPjM--LcgZxCrKd_$1qVkvV zA&aVpc7;>5Y>~~OsrC48- z8eyn+!{mwJ0!-7r{B^MY%U@SmQc$#FU9mROlCuGxiSpO4C|Pw6xVo1D@O09)k6!!>H*E5iEH3R6HxEnAP zbMViA7Xt!)m0k{53wR~qKESU5!aqjoWWWP}w*dYHa28-4Ak|rK0{#-P5%2}TzX8&Y z?>#`;$ueW;BBd>?0l=exj{qJA#2hH?QTeIZLmx$a1YjlLd4Lsw7Xz}~rGW4nQFcEBKLPw9;D4$3Z&dsR6@O91cLM$h<>~-`4A>0# zGr$voKL_jv`~~2MMBp*N3jm)3Ob7fm;AMc%174xxR|9TC{5rt@2Al}^KY)_}UjTFi z!g*I|2H=Z;vjKk(I2RCWqjVwQ%YaJ&{{*-Rup00OfO`O61gr)86W~F>KLbtx+zU7n zke1gA0sjK{7GNDV(8zXEE&`-cG&02=@=0z3kEE#UtGjstubkS8AA19Ss60cNT6 zJQXhnd>`pPK&<7`uLFJn_)WkM0k;Bv1o&;hj{!-0v;qDU@Dspa0TSPn26z}aQp(jB zl5#bMk~Av)Nogf(r&TCPqpdpWuw?CQ6-v^a2$8Bv*3wicNxK4}cSYJYDwHHV!x57w zYcudaLrL0gz-02h%T!3n?$+91!>OCR8koOmH{(I4Agn$|Yz*_% z?*av}2a6v`G+;7O_9!5?zi20me1>JX)h;p~j1s}Flcd6YK{p6O3Wa0+O5+4sgVEN~ zQJ00RVNY)YmNUs3zKXK^NV0}9W2QzDFNP>~EOLw=+f5RJZ8!R$c&I#_Py)#B@d5J1 zOVDFOH4+UBC2Px6C`s!w)4I(xSemf=(_)N3T3!uByxh)XkHAI9P0)co`5+FQ;$TNb~ z5Mmw>fk2ZS9+hYyARLdWctxd_-eTpp)JuD@rkJ+gHi#GSP0`QdqiSnwiO?1St75C) z|G#EtpMCZ|3Gq?y_qg->owH`v%&a}L=CS6nW+tu#;@@pD5nK>OaXQ9)EDEz6URPgR zS+)R2TT*(GD^fzW<>KaNrFbytOtcu@(SedgCByu^?#QZpC{~ zo!n%3vv2YgcZY`NG#oKIF0=yp(iq;mo74BgmoL|2FQ)fSUXfn*Le z7-=$w>2x=f+jOBc0y6z8bfL@u!&RZsrV53&fV}^vaEB0H;pDY0TuhZZ?K*7t;D(6i zCI1NR!tx(pSqc~Ecb9fy`H$`q#$9{(M9(di&dS_*L&;7&ii9o5LM(py#f4XqupQzr z&3tB-e+Mw=uV4C>72K@TDD@wRVZ8pNsHYRcCI35kl+1Z z8eSuenF$PSN*d7?ur}Ga&Dy4h2!+Y3+m>N?P_pwX;BUR{{hu)lI2<`~$4RH6A;yG8 z2JptPP-w^(8n^UkV{mJfFpkMXkIxF9C@QmsCSo01m5REuaZ2cXOmGB>c?EXFhWZvmdUKiOs zrcLpfHdXl)u1$y2+8#GP2)C8)UQaRZ=e zPat8z$DojA68ERzZqP&GJ`IL@2DhI&#{ZEz%u|mi;##p;+SJgJ+??JcQnI=3^5FKs z+T`H&YkX_R`2f1D9oG%OzjmBITGZm7-uyaphD;T;WKM5>{NO3Ed^SA+b>VGIJB~3a zuPiQMqL+Pyz4S;!OX!v0n(re8czZJw54}fU#qFj0*F{r9kzjOUC@C^2scCm|=o8*K zyczmId-!N!tN+)bopmGcKyvb%r}{!WYmb3-(VgwZ)R3^*+w^JL;=avb@JE>+;)0GI z5nps{QUoV#cO*C8mK=Hp%7qf^T*L|$ZwsF{?YhajhfK{Z*;3k^)X#euatrkUC(!16$^v>OrB7?TaSu^j(d&l#~}7tvKC`&h&|HxFrWFdI-t{^4PU-{tModf8%e#f^r)BP(d|l?p$_J0vAH~B~JK!JsaPa`eY5yls z9&fq}UE3W#Xizne_k}*FJ=Puu!jR;V$`9JhfoW>kmW(v8i$~z#_5$D9G3eq8x~(09 zF22COc8ot-xXnLt_2b|(SX{U*bK>gP(Z$LJXpE(BWA5(8?*LZ zBW0zIT%(5L`=_k@ntO^~Z2O!AMSmp|J6 z7Sfc8gG3q+qEbVnscglzK-$)S(X&x7*O_T`8gD%u=AW7<^3 z)69}h(S{9VLrLpFJZ?!>=BpD9p5kbPQ9LMeYeBSdqi<}gZ)|cYE+KXuke{5nX9^?u6WkKfW3h8aZGNJB!}dD72I+v6ZmRi0wYx#!f)t zT47T$UV%*s7wj8Yt0YEGG+~8fTXu^X+MvJXe`qP-141l4E}JZUqayomPnadY|^k;0A5qu#*?@~am{+g9%jUy{=neW7%? zujAo8de6db>}rDB&yBvgi zNGfg(?G3J3$B#iI?ZuR#cuVM2C6zW#v!zlirPAY&A?WO;WNc#x)hnBK*u4@|KtG9&S=@e4bjCe|6=&})Ke7Fsc`wXz~3o5j>0wCwM@=5F)s8W ztnr=8j*5k0=#SY4bt*_)8}^3E^pAXrvlVV}QgVdx!(6GVdZ|oes5eI*W+A=QUc;7L zZM_^1q7-Cc!BUydUXEV`tTD_p<2$E2&^eK1_h$j0g5Pt1zX7Cs8N$=O29R#@if-tN zi2H8shR%q%@6~Q{<#u!dN=DG8WCU#idGk@>Ho&cLGTm{?2p)NWPHAuK^1n)%tq*nF|69ewg zv5-EiScsplK&GK%-|_in!tGzGOn4eOQayZkTPF0kB>}a3lq8semal9JVN)@niPnis z_$GYWld_wman2{shI^jNpEAL0ol+)Lx%?>;%+@J;Ln9LmeYZ?_1z`$YGJ$DgTuO#{lFquEJp) zh9Ml?dEroRX0i;ka)->56=}ptWWHztCEB87`p8(O)#UkpG&H)QFx<#IJ^;wP-z3bP zscmZej5wt*LtBb>34FZa6QhS&WMCJML+T5 z>CB?F(W3QO3&sJ*NEkQiuf;l45pHdW6t2So z8?6cRxcW6-o@@mRvE8#R^KjE&a71$z)<9|P6$v+D6KM5o^;cki z->>N-U$}4dh2gjdFTpjv*xf5Aoz=AGQ`f2;VqSd0p&#d8N3jvc(O>bFNXgc*ShvQR zKrA0~zJG7q!GI()v=d9%JS+AsCVgN1$)Sc-JdS(tBp#Ts^1_Yu-%;O?)3$maqBSQ` zG1;1|Cwq7v@?8JNYQ_6ywXA?IXYR$}$wk5sGQBhBh}`%u01Js*2-NZ_eBmmB&Ji3+a%A>$tjZa;IZ|JBuh zt54BBAM8JPQY*ZyoTrendw1ltnZ3uh)q6lB{9IGRow(?uwf+q3K7@7!SI$Q0=A;mh z2Fj_~;w@1evQN!HtwW|)odWNswqsmcrs3P)b9|&cba6Gf`R7adfdBizu5o?;q!?%qm>?cL=lO^=Z0RvGSr)3GGzS z&MRyUuKt+}pSM`SRV??+@OpK|&voPLx+$4Eu#)r20VLe=hqr>odL;*q0n7XS^-9hk zun`ouM$d&DZnm2dd;8DfU<#xjY^|S)bVwywJdXRs&x1Q7pTR{8&FNX8U5n4akh`zY z>&7h$?CfIA|6s}#yxY)yuix#s$)XKVg2N;HA;hv*b>`gzP`3BR+yM%ml zb(`!ahhD%U5f;1jBGE?w-q3q>g?E@tyoZ^y*SFk$tD%TVJ zpoq00wLOisp{KDn1e)))FGs}81}^zTWyvSD?aUF2+ID8mRAcoCwvFqy3dd7fYD|wa z5qf{252TUu&4Nw&R@t~^Htwgkts9hvRJb67wu%c+&;G)h@NEQsAbvCy@tJ@O+ZVt0 zK&KJV_#Z-7c&hl~Oce0%y8MSju0pvNK8ntpE`Oe#aIO(OfZSf`nh!8dk_NyL9S$L! zCovmIR2wr`u`Ku6kn=2M`NBoZ^jXR?9Y-wHVaC$R+S-M+woay;snn|Nq%H?4wQ4() z#}S@+E5R%w5vPdB5)#oIZTuABD{Cqy)r{x)OY3Z)IrDi8=tWpmsxF%^8yy(5%JI$q z@H1y7F=b2XnE?b@GJoL`HF6Rx3x`-4X4;EWmjcTJl=k40iFh52km^!UU&|IL#JRM_o3(o>;AIGR z3*Z322Ea1FM!+8;Tod5W0G|T<1>l>2I{@DXd>rskfNg;90zLuw55PTuoMk@^cnRP$ zfIP#9b8n4T13m{>0Qdsn7{L92698WYya^EJ;2Ns{e+xJl@C`tmL$%Nb8h;4*79h_i z;#^!K&Rbd^0s6tib{sHhxzyp9+0sbBEYQRqbM*yCTeyafRRKSsdX9A7_Oa~kTcpl(b zz>5IK0S*Ej4>%O?8o(<7CjgEDoCr7$un2Gx;I)8L04D+705}0Lpz=e zd=en}&3NC&luU&}o+rTb9y20^o1!1`#+DEu& zZpGEOyh8LKiYj_o%^~>yWlq}%uQ;X)yl$vf52)J^RL>Hi#}Boj7ODktAT3jaTIG!q zFjkf^Lgt`#4VBC@KZzy{<8J3L$8IMEW$vxcZOEqNghx&E@E=>NmviEPt8l)JjAEa+ z2j&6WLLUd$WFeG)ui6U5jhoq=$n*t{cg~3FV>Xm5zv%ws7G%!Wi`mjVS@s``Mdjxa zGX4mMmwNwE4KKZWkWls1!^>@=8&hbnk}JKKm*W?jk8^nG+y`6jey)W|w~o7alA%*yCE%9{k+; zkW3Tfac>9>CV0wI+9rL znh_m?JJeDm;q{S*O{#}IT^)*@s@@50dNQp&inyfAPi@4I8TOkXTh?q7S$B%`>o2b8{zP zSES7>%q2uEMWoFV%BZeMn~4ajr45JK)IM}d8>&aZ8yY-99nz)+D^aL=lr~pW+FTtc zZCXU27kBAc?dYjoaXfG zP|?<4(;Z|?A>@Wp4dvv+sD{3%lyKHfwUuy0H8c+^716?VR1M91@j4u;H~=E3veXVO z*%r5cldjiq(h$X#BV4Q|QcaM9P9+?rADTcCQa|)V zEGda3+#EiWlCYPNgqbCxB>D#K5-Zu1`R0UZcsc5sDrJ3r;wqA34?T zkNOz3&<(g?YfN%vR%)kep+mtG_JO@c>%UBFw*tqy(A(;VR$C>u5Nt}ahHV=!c2PK9 z<)WnRf5BEKF*rq0I9NP#m&a?C15cSkL%DkvAj1;(qRao8o-w(5I{aU7`JdS#bWslxbqzHvzBhRPM$rh%z6>bS!|su!1P1vk}2A>1$txg=8eYHKNTV z5Rmz#TqYk|G(Lb0Ip+OTz)Jyp0$vH&8?XTIbij##X97+G>;rf+ATEt*tOq;?kcx=u zfOi7+1H2F4!DTXy4*>QD{0`s%!0!QG2KaA)xLl_3QNW7;p9dTWxDW6Wz~2Hg9Ls~@ z$lGgCx0GC`P04lI0v0tz6pp886;9;((gzXGOyc@Pi_-l?{p0mX)BHPUL`pW`>e)i{ z-Mp@M|B8nGB4LZxbB`rbv<}-5nBg@~F+#R@EtQPI8zI!7g!)xa_++Ygyz{BvzVP{p zrh2m3q~$O&6;nDY*$lN>nX;__zdX|TKY@&w#?)0+Ge0P+ZgDEBLS}6hx&AsLi8SUc zkQzyp%CWAqBW2Z@ki~MVYYS(7yhsZ|F?x7i=d(WyleoxTvRTiu%0%*B!Of!UNTP64 zb1D>EWe(U|`H57 zdLu!j;mr`D?E^(HuaDP`#m?)NIGJqrRFV+dv#0XMc)8sEqLIqQCpffmVyTSm$mDeI z;&PUP)`F7kJ8 z$0|;1`(H#hUxD4Q@Wr8`O-me#vRg9?H*&0kLwT-kv1s9j&J|^kA%jW|rlKU3jVH;J zT*U=)T80j_+6y!v7SKO>I6OglBTmf9PL~_;i;8(p{z9)!My4yBBKr*R`7*Tn!pZYSN~pCT#(08~zmzH(!WN zFMZZOh{=#%f%~WXE7Hx=r6p>umI zg@}|#!$d^#j!6-b?A8Adl#=U3N~V9+QqpmTM5N@UA|+jCNW4-qrYh`1gmrPV*LIhb z{LTN3Qu3lNASDlWDkZmkPASRxn38npMYQb&TS~UuQt|>@O6H({Q&MsQY%18&Q;h8)411q$GZF*uvTlj7#s3 zX<}TwFKLbGTuOT0fMH&YiOI>&qe=kq)kag+5*-_{43lh zZA-8jSkxyE%e2L*!HEEcX=*xo1d~Xt5^s*;HEBQIAKSu9M`Bxouj8{g!~Pbi0{qi2 z9VyumDds|RKR&k6H@bUxa^fAqHln+-BUpcHUU;JjybWfBb{n!1FYr3p4a8ALYz3wu z>mus9!Sb250&8S(7K?jd##SJd0=X4P#koC82Fcnib^<}1JAq63W`43R@it)ey@OXm zG#LH4tG-5Qw{mRP4+v+!|cf&o98&+e(;n}!!3GM7fICGZrg&ZPl2q<3~x@LtjD$4&i5xd1$-TY7M|PZ z!Yr?5i95IN!`>v;y5;r+E|_LGHV#|XC7hPYdHOIVRpAM?0=c-L1i(StmT8L&Uaz49 z#RssdaLo`S%7#9{BPe(>Z7%SfAJ9-x3H>iPN8(f<5$f>H_#vtHtThO+mk& zPLU38*Kqo~HwAx(Fa<6_!89>0HDU@n7Zh40>oaT)nrr-c6aXq=qC&=AauITjJ2kN? z+Tq3^mo?2i3OZbKD(lq^xw326*^Q|ne+0j^_!+}IQXoLC%HlBbxGlSp*=+!%W?v)V zbAT%VU(@bCYWGp?#x3sR|0y8DlV=RS3XpExb}ephAkxhZMEWz!qtN7(V4zJ22HFC0 z{zT!p)TnTB8YLaQ>=_9z%1tZT$#W{va349N63)SqYwQg!#}*>5HFg|UNyE_;Tny^M z_9hm`T3qNpK=Y~|wQOGin_9M?0b3JN*4wIqjUp^|^V(=&j9IEJ&S4N3V6k>*;5XIf z{{d>h@`Vl!Y;0rhvn`}a8jJCp+)wgiwv#tOjxfU^Jx0hR*h0?q~;4@mzBfMtNC+Fb@%4mWv8 ze|~2&N>g3KN1Hk)LtDU_h<}CSzrx9~_y5PbOZ7`VdQ02D#4e3gaFc=BNd7fq$Y5m; zEHPo$!ICx9mFi`TV$_vBL}^418(knCd^my9(r!fH&LCE+A7@;b($X^J9j~-h0c3~6 zl|))g*n);89kk8&U`-s6V_V3Bl=6~ncRKcw|3`P}e{`2jf9@Wp>_x+HpQCf?E~&fU z5GbMUQmOYG9mhn*u-DV(%hhD+STJ-|hv_a16;4Ci{soYo10L=W9VWWp(r%8@>81`7 z{V5&jrVbO`)M28VLlC+-1fiQcOms8*6zggzLYo?j&=#;3;a}nEwN1}aop-<$;*@MM z)tLC^=^pHBMsUIgNAZd`HKzw=;F5%w-FmCs%>1f%GO_O(DPG?-)zyTnv`Dk=v}~Os zr~WGTZ=t_x&sZM?Uq721;N(K&fUUoJo=hmrY^Gy@a8sN>IE0ewqDIjU1l6KoJ7c*- z0f%;G)@tjo&H}Q7y~~dES7#zpOau&8BEZ(s`hQP>b#MH-XV(>2??*(INMS++){UP_ zfptGBmYRbewr%V#)LfNw6y^I}+r|<4`}nQG&zK*;m!nYUT=jCe8J4pI-p1neABCQ! zkNB#&)=HN@Z(2K3&s9l>3arlf?wi)y5oWyWBox!cxV-75&`6Jtg}}50W%K9jb3we| zlb)%>C~~cT1>}Tm6Ch>wgMdsIbdZFFg~+*jRDw2j zMxHk8j3Si6wP>5j*e{=j+&aFZ6BbVBh=p?IPU(PyL?Yv0Wca z2extN0NpsSUQn`=*QK-Wy^o)>UQ)Aw#`F*FdU+rGhP%2Y#$iS-<}aS9ShgBpQ&G8e zQq8!sy1BA)hCqo7ZrxASb&~}*7wty9Bt*RcIf6K{tWG@;$xp;TD5<#4Wv|)z8N+n3 z{+^8Abd4O@O)-5mUp5Nkg-j*5DJyw>#(su_h{|YIi@gktSo9PIvL$0QNKOc+X7KDsj_lN5wlgRUN;{hl zH~{WqK=wbxU#Q*8FWoFC9_Ur=j5bwJv<0lg+Bd~Irfo)!=!dHtQvKnRb{sejE$aZ9 zSEA;_g-IHwn8sZy)Yx{v?87+B5%s^$k1v(E=;MZ*pp)aXJ^UOyxw^`)hbwE!RjH)Z{pXK8(^O+me1wsSh;3|G^sSFXZ z8OD!>pD}EkG)xo?8P9O$$F7#f`18poGg#vA=qLEO3x+fqpD@E)Fhe~B!@%00M>7R; zK2UK5LsIbt(+3YY$8M`!R9n5Ea_CLV>MQF|Fdm=b$|okG^7S_fm{xaTrlPQzv>+hI z1w8@TB%oR=Yu$8{FJW+3tzFZm)~;y_Sg$fReks-)+7^&T!knbYvxKy%w5;>mH7g1S$#$!#J5-$*+MA3tP=B`-*@xckG=YuLAXWTFK+z4OyP|L(&9iKvFCs#OJ8tg!mHhDrGWN7@;meok>vw-~ObAaT* z9GeHUDIU-UH4p8ZVr|kk)saL?(zs;CXA|c3&&T}Nn&E##dXVVO%w5(=hg zk8&M7dY6ST@Y#WyPxVKfwn3`YQ?gV6?rTf)~d*w?f?xv>hbgL z<+TE94AaHBM3KK$BY%LYA$f&EO;U$i0NKvyW;>&s?eaeX&(rP;v^yIRcQ`bT25bWy z2lymlEg+6Y$`--x!aX9gC7zvwqst zte>`kH5~s6ccr#TotBfV!N+dzo{y^9kXD5yfZ3tl;XDo$KlO)uMsH{J^zXQeyVG^& z9qiNeX}9pHD}G5VO#YJK!IPRk_0=ciiA%6``T29{<9Ns}r){^8VCbrd`i>y*r8E*t zL7PPD5M1f*+fxypX7}xE3^coMXKSIs=5`4{eD$snFZG9ZC&p9{R&Ulo78!p(65m+$ z<@R-w_^5DqxcqSqJ`5?S?QK?Hw;13z8R8NAE{(6g&=7~dMdkD|T>9*(!ip*)$zzE@ zJ)|lFh4S+HrKojk>Ubp(u_u6u>U85DkyY(fyMTa{*ax7XVHN zTm;B4wSY?imjm7ocq`!DfGYvnDK-JJx~&3aepdsM*A1vrJ*4r|mLeS}Z2@`kS>e** zRyYyQy_*hnt3PcV-fAgMLuISNG^8q$bPd%a=!P?rbVuS5@1^)64H-e>9`Q1TZlS|C z6bhH%ccF=>CXBeXsO$54qYcBMZ*|2|bX=;KV)K0x_k+pt^L=(A2?|Y?49CIG7^ah@ zhKgxloY@y#X4?A!o(h-&NMU{?1x1++bGNyeuc?2DjTmKy1eNquH9^ctPksz~o~5LDwCD9&66*Yo&Z zcbQA=6We6qc-E=AtY_>M8`Ju0v9Wf(k6#9U#&8fpV~WjP-rM2lULar`@{DkxiD;L1 z7sqC&U?hzA#w1=Z@Rl_{7hl#LPe9pfnR{cHUY0+5hlv`Qi*jXNhUxMi4mcR@Jiu%~ zxr##!IU19yFcdZg61O96Yq|8hX~GdY0$0S5zeorLZz zz%0N5?Ph&j3ZAR_Mw_Z{v<0kh!8Dr^14mmxUa@06NU?qn9Blz> z7i_E%Db~~47O-B1jddeMri-*Gr6=`WDm%h~F}u;=7hA zpo4(?{vkjzel9Ys7*CsGJZ%BF)>z@T>TtSICwIh?0K(CH7M?H;)5$7)hL(jBa9^;ZRD)1tSk#`#?Yo1Lt8*5I|{c=hx?+Hyaq-1jSoq{947SD2e^zR;%lLYv}?!jUfuXGTv@<^74wly*@9H!d!l5&d~` zKAOYN)9}9no!6(I;<{%%jJh)PeBH^rlU5=at{u#LK9agJ|0AwLvJKF%FJtx@mhkKN(HMWH1~1nRX44bK_`9b- zP4IIMw)jobz6HOKyC`cG)-K>2e!8bH%_k7cF^OLX0(>M*Ch?rvv$EFXSA&-lM04EU zX_*VGF-!yd1g3+7D4O46R?PnBZ9vY>-vPW7upMwP;JbkNfCm8!HNFV&FK{ma{3{^y z^d2Bnu|lfG25nQ*9OBe%g0!VrXl4>lnv7m0ioHCLTC$Vlp797>gUn=svu@IS7nRoh1cV~pvnn0Xo&9PQ?}M6j{e;Owj*;N>ubyI@I^@!4>Pby%>mCxa2p zHYOcFpkU2hpUa9|l8G(DJ6nV4cvxT=n$iZ;e$x6DAk%?cZlvI*O2I7!hBmd`L0iDu zYvW$hHYqrDc(92AAR0~Pzbrqe`S)O8?6Yuh$k^k!24(DrGcsR@o!g51LL%%gjXcUY zTo%p-)hc``@v`tl_|mX)(Xbp$rDQ(F2sY-=Wno20HM#h5kJW9=Tv(y>|*w1cV5K>EWN&bYhA@59f1$0XyhHeZO}L>K3cH0hFlQK#2h zQQ$CD{qY5I{DkZCGOC-57{)N2tRbju)@Y6VV|Uec{t1wy-2;Fuk#;~1Z{7tQ0C*6P z`8x#2R7?a5)zpbL)uqy=*31;{kPZi>rT+P!b3^QU&~VFd)+8D%gj?s?{8lf;;sw5i zRb7!ns&f(^^(QfHNSi!DR?uRV`HP+bjIi@eo60k7Y6DE+HX(|_ef~W2@KVS%W^v~E zYl-vBK}(l&&M``V{ESJIZ}eJH)>Ma9WlfvPH*EoH6QV2JW^I#R7>m)-M)st!A$JD+ zjp5*gM%p5vyNxXZ&Ml=Fhi!~?uf)#3tU=Yyudb++%k*{M)Ug&5dpYm$!wfS9gSIjJ z9_xWqN^J!{=>Df_pS0Z?G9jn_?tw0qZ4%Qn>xvCKWBlNcR3QS?#QCOaP7Hhr70M#ms$^gp-li zn}}*PJjTe!e3J*XFVG;)^S5>mc5) z4KKK-TnKqSY+Eg#DaGO9!;aW*?C%moW`0Flx7FIy) zkt@BwXztn6wBbZv=N_|Az5&vCmFjZt59!=rfn2D*oHmtv+EnfpZW9utaB6u^9lTD< z+`BHC+AWeCo!BiYGA^m9EjhHS_Ro%GmC+^_fEQ{z`wbelx&R=XJ0ZswG{)aOQ@IO% z?v+8(WL(y~bem@)1C~_JuNZ~*Ts-XJ_q1^=B6I4Av-n&@W}{>xxULM zPVv8r`@NCm#KM$1Uo^=Ic!cRUfX{L*B{B{Zc?y1gT#T%(uCMI!3M)CJ7vtG+F@po} zTU<6jtRF)5EG_ceWE#Iu#?X9ZDW)9v0>`rfv4XqbRi_ zR*^K#XJHlNFsa;DI4c3Gy1Yi8fK_48?2J`XJo@{FRi9{9LA#`pX+rNTteS7LiZ;b6 z+7zo4t_{Hz?n|gw%R$V&MD46s=Okd(XIQ&Wz^(!KVvJqxaYmwgl?LXp@Ol9XGc~hn zY-Z7>m_?gnmcq3mp2B4f8a^n;%IElLP<6#cyPn6=G%H1ZRb^TIpuvOh233U_R8d=5 zUca~!Q7JVozi$EOC@{Z^HkB*epo+?y!gDgF(ZxBb-Q;_hEs03Vwl-*ab-4!sR1T64s#nY z;IJdicY*0+V+Pe@0U8(@vcd1`C3b8w-g5c_ibGCru)Fm8G7#Sk*-nypPCA^r`h7z* zoniMa{|_%6=FRUL3_6Bs=jHyK!#!OMfvu`i1VmNPvRHGUs+Xy}~mp~EKV z_nFRr!ylHs?WMz>%6w+P`|vyi6}0swDV*&@{L6)z?GkTnTd)sx{k1 z?k9Eoymb0Yn7s}@pX;Fm2IE_MQJ`!g2fh}0M^SXPuk$3#0VJ5UmS%v5&iTOlPf(vT zB+NiZdd~OIxj@2@11zQT3s$c6=8MC*`1*W-ht5S^pfgay40ojGA`hL5B}@VSnV!V$ z{Spbo{?ydNi#>Eu%t$kPVwx9Udh&Z-KC^f7`<`{s$@I`cb3zz?k>#E~;%`6k@&{c2 z!cYd7^jzklb9oo&4EE5u+(QT5F}}q-<}YzgD+SF=2HawH5(mgc;z zmmTrap)`rlSB{6yPzl4UrkVHOe7qHNKzDj_B@EY=4S$Au=nRuEXQ2~AQ?=5@4Mfqo z=?s@J><*xc#4 zQo|{!Z_>Ucn_Tk5{7rp^?>cU{PmA`=}eR`PPsF|L#If> zEX6;PWIfccmoSI%Z`%7b51nEO(>a~%B+Q2nI>jD3 zGb9Y92F)#hC|>PN&rJCEeZw96nc<>u0aSl4yd+6LCVJJ0d zuKC^Xf9p-pjqvgNoOEvR&?%8H94XPf@a#_#)Wccu@%va1hR-D)I;9eZQiH9k?{^m= zfh;*^d!G%r-^Xz#+YU{shfW!=ejmphG!LD$;{z{$Zh}vIddfU>$|VfzAkFtO*FWV= zPX&A+-|=tqRqmlvDPhnlOK$f41n+}-@>L~aob960LkHb4zV)c4^We(+FvxZHKXWC_ zS_hx!c<5A17>-P6mR~aCMQ?ggrSPr64m#ByI`bq9YY6kc_mqzy7~ScaFJUHw4*MvY zc^*0ofJK?&pLDX`e{Z)pJv9<$Gw7J{>H-g)g%XB+Jk9z?7oZ9tLR|e>1h?O}AOEJj z7JBG>UBU$LPjgr5egEmDQwyJXI$!tDsgp3Br>9=RypDg9o;nYmu!QM6J&Qeb!X7$H zBuoSTY2JFIVYxS7lmdR=d`G!2@z7Z&VN8D*+V|YWUOL~9FmK`Cr%}Q*0&UWBn}^N{2{RD?G&5Qr1FPJ0R>CK~pI_mj(Oq+wwY7d-cZI`TC}Waq_v@L+37=4)fKk+p%L_ zI_o@i?()#NTf$t3f0{WJFCOsH`4{;3eFGi&y4yqN9tmUm%Zyj<#Uc$;=4==1CCnlG z8$RFTp>wZb%~F?VRp2*H$=<2t#88_;C#-wS?{Wj)Y zjk(*#T&6K6*_eEd$+R&OH0E4jR8@kKqL}eEX067Q*s<=>m{J?_uNqTkW438bwT*dF zV;0z$*ED9HjX9(-Gi;2}N4UYpa2P<+jhU=5eSuLqt=5>+>@X3H zSz==z(3k=n^AnAkVq<=zF(DgsOk>8{7(A9KCeOwUF~fIYx>=>AsC5g%^HnI5!bz?$ z<#XrN)pL>nBe763%b_NqjKM(X-+`g^deCV^B^?F3O4@v2^1%j<6&2=IV4?`4FgUN6 zot-`0+S5y6{1z~|LvuyNKNco;=ulB_c4CI$7DCiun@;Y~;i|R7z6A{_>k)j`4ufyy zS^J&e${R8a%0LKbhshg)uOD|}hUR8LMkdFFL3;Yz80P)o5aaPU%+G-the<>%Ja(4j3LBj)gf2%y~M6iet&3%6%1lQuFW}U~UBuC)k)l!2AwjIJQ@@@_|_c{=_iF zzOW(>tbM@WCX70avpI!*4WxvYx;mAO{W$jX*HniOD9WzY~KtNgW+W7&Z{RTH?Uu zkn%+Q=HVyhl}$pIXpEvv8pJY;!Z6lVaTs(qSPyoD$<0EPZQwPktD>Bhg$lUPr!Yb% z3mQRkO#;Jc4AQtNK1?2VLTwBJTE7H;%E2EyR&Eyf(dPWtkiqEd!r;6eX2@WCy&)ch zudj7th7LzI*yE^J{MHNj)^liwG0fY*Jc;r`!$g{C-Up@)>4{+iXcOB&Cx%G}W*$-) z!(;(78+1;y>5KyA80wh9u-vn9hgdIxIx)KEM`2unI%bE-9g4yj5r-K9j*XAQ49&q& z7aPMg&(tZj>EK&Ktv@)wl{W+>cs9~(hshg)ub=0{45cK>bYk*`AU#*v7=G(!e5;41 ztT=WXF#VC!0{AM-I$%x)4`Y~zfLVtyQ|vI?fms4f$i_ScOc{7M*2cUF4C_V=^Jidq z!!nqHZ#nf_z6Ffmr@jwuv2Pz9X;~nq4Ei1#hEce_8bfS1YcO1;RI6N2T{E$=W={QF zYsBcvk+tFKn`=hm{x)1+kUt`4#0Unt_NGw_F>n=pU4DLEex5brre!(V`6F^W3?Q^~ zhfJ7Xy`Z{YeW`9<^`hyu)pO=Rd3A*2rnvkOS&9tr3>>QIi@&-rE|I^GkJpEFqO_8z zpp1fdX+>pKS$MuqOhu)Q=kXntLW3H)Fbw6!_}Eot(C`)%)sM|#3U8QF9xs*Sd+~l1 z&=8knr-F8TK1SGqWSUCNBTI@9&N0-Ri;V^2xae5iwUx0$nu4&ey;20AsD&VPa%3&` zy1e+=C!thG$EWlG9l^&w=)~F|bt0LSiptulP}NnZ4-#fwa#_BxroOrcijndSM(jA9 z4qu5Id*~-&WS6&tLF(L|%5B{DOzBC0spP0iS6O|1S@~Q!O{`BC#YJ{i7OC}>6-ou( z<;OQE5>=46IP!8uqEPYNvUwFBIX+NKHD9G9=1!ohuW}_7K!rB7J$8&nf;f2TNT%n^ ziG+2RTKuaV?jURru7^7$i0e{6oeH@k!?r{1)V8aW|KePtwRd9a?0$WE94A#gs(wUNz%JtGKS~rzMd0 z>RdNkf7f{dnFO)3JEyXyvbMThg|o3zhLTU0hv@}fy<}}=?0CP>cknFk3l6+=0MeKo zcl)~|OG415d2@hDikpJtVeo{J9sc>HrFE6%VN|ANrR8%g%jcmNT{y40GJgoC-QoH3 z>*m&48KvszPibXs?ZVoOth{WXc;`Urg0lMZxf$8n7_(-S&Sx#352fOVb{@&cCk;q`!I4p5NZu1{xF;CtyMpBm zCX<}hat4z_o?tHSV*bVqc!H5h@zfGzfpfnMl b{Hzf}hL0GMGa{p)ARoP%qob29&I zbX2J(NGC~Wuu_k}~FZ^i8sFREISx`7ytkO literal 0 HcmV?d00001 diff --git a/server/2015Remote/resource.h b/server/2015Remote/resource.h index 0048cfa78d6ebed07b1565392df8eeaed23c7e7e..3302ec32ae0b38e51740f10f3114f3a6284a2a56 100644 GIT binary patch delta 3307 zcmZu!U1*!<6@EWimSp*}{8{-V%bzUildQ@=seh#S-$^XVsvSFy|J$^sG-=jCDcjnF zbnIee$tY}uu)2OmFV->a;EUa@PD&`dFb>EntI7F|&g z10pYm#EN)L{6M@ZuF`LxxFWts=RaNSdRuG5NG5jvk!{98z%&ZDY#qn-kQZMyIQZ=` zAC>|^BhS*hycofT-z=`ga9 zTs^}Yz~x-rs9-DA3(E*;*=NHMJTZcJE78MJ0@EB$N!x=)DbafG&2Tup6sQ&6H{7BQm@0tOm>h3QZbJkMjYF{HePLSCv#IvnJ#0uPe<{*FN{6I zB2-`43e_!NNT#M+YZIsDvbZ4D#3Fs>MOl=v)pXo&vDFtRWF<_GP={l+x z-pnPi7xXrsCl6)vRTAe2buUGjY)eI$v#z~3FDk_SyjYMCKBowb)sqjyZtIc0-koWc z{>SqcDyB<313EI5ka}W~;{UF&k2utAFXdq-vJ?|BpdY?M;z;RIKa zJp3h?XH99n=uL11jWTv}tvHCdT2ry~F)O@Yu<$6DB^%W?)F`<)pER8%zAq5tMdpW+ z*+Du1d{|Jd*!H7XAIHMy1#YW4B9HqnrPc@`bb^a#HqKJgXT>@CzKC?ByI$T*wD{8a zl_@(|0$rZtv?xHea-%zeo8ge3%Xf~vry`v=AkPP38=*leb`LkKO5q^i&&U*&W1b*$ znda&5CHh^%E1e8p5ggq<*(!HNiTtKgi6QrpV)hm?jo0viQd( z>dyj+29CExrz@JdiNX-$3*+UX5Vpe^{BTI#x!kygcUron;TH{wV{BNWe&H@&qb~*E zyMTkC9()oRAUsXOafVqKj^P)Pq+iXnp~ETEP$EQAl$UvKMqC@_DD}@0z&$&$WK`s1fl*x!i3FA~|8=j&W$je6B@(xHS>LixWXQQRy9l;)9zLG>w}$1p(Zi zU?e8~JYnOFwhTUM$y4v9@z63y%>-@sxuPvjJS9-|Z$B*Yxw|sdjo!VplykmgrV2$p$#DM~8_g zbaoIA)-Du@X%z1@$2St*=2dZqvs9g;d><~ImPQRc0(cf3j+lT1o_Evu__U>4N;SnO zcOtpNgKVzaQKLxvrLdTBNf<-lqyn=t89to263iH1Ft)xqY4KvfZ%A=39mF@2CLT-% z@Hj2klUC+>9b~+8YICh%6_2!wMHBNGn@VM3p+Azk4Mai&B}#mX)aLep@<3 z$SWuBN$Ha)w>Qe=D#!X&UifHf>!gTzT9*78!!_O{9Vgo^he{qT;RL7jpqwP3voWPo zpPjOKg-NDtOH5ho<*67oChsa1>RR5MHu1YDi+xJ8H;zenP&)X2g@kKTKhrkv9UgH~Txyfz!pzY+%8P=!x;|VX@#}69 zw`SNeO*DG`aaU5}EF4z$$&B0={N_}b;uvpr$rlLef5(yjFS=^zUOJ=7c{M#CXWhDf z{)m3>7)k8w=YOAZHjWX>S*1QWEAJtNFzRIpZil^D6Bk_<>sm?4YyudQp<7O<&yuoyb u58_5gf^4FA>~Lkh6zCzny6!*az1tVxx9%3tW)1p}!{uD--Ji^7jsF43L0Y{4 delta 3048 zcmZuz&r@4f6uz&tlu%L#n0b?il!QPj1sYyRNJ2~LO9%uB2?1Kvk!ew@cBXZT+J!Ui zA`2JJsAIfK2Q7>4{4oqG7tYA&!VRri>Wn)40i7w18y6it-@WH0k#XMexViV7@BH}A zIrshfgYn=qE&6*~tc!Q)|7#*BZqm-H;+D8ezi!a)*JvjmO_$HqCmA}K z7E8hwvl>r6UNyt@vjwuYLYjx9$g5C?m;9`pHtAhG?WcFB#d|CUl*&IohJeG%B1;ee zDUgw6cH0t`3^jF;+QXh64%L#LBLFpmK6=|hfUX5$VAEO4pMyw`{%r(JSJc6i+iTF> z2nFc99fIy&sE6L}UdEA^dpl~DN^VHM-#f@VQCV)q&c2ckg`qPUh9CFC{y;sws}xOI zWGG<^Y&i;oSOSUqKMA6UkV<_(t*CdYuSy#^e zv#Ic=DcT|x^5mf3SGUq|f(*#5W>kphT$lW5u#K}4V>UhKPz|MX@c6b`f2G#dh|g`4 zA363U1`bK)na7kDhw3PrxAG7y><;<4&CoQ9*@&j^VmNh7Ju*+0&tU3X%SL4EpzD@bNpf{w3DK zSxVF%BGk`dC}PC|b#iFn*8tOrx!nq+-Oq1G1ZK@G3g z=1WrQTHjA0lF$V7CnwbWn{eje0_iLfx0p@!E>2=H@%)0s3dx{am&Hs&9VB^9l`f#q zDi@q8g$AlKPk)#kl)nqO`Y`7fFz2`q$}47rjYYCiB>z!oD>QXVK?2#IVkmc`K}*`5C`xGFx!j^IhutF}0j{C>5Hwr^ zo+iv=hv~dz1J7f70icL57~zuUUCE!^(BH<7M;riW8G-A`w`X&{x;W&@I8 zKnr_|nHH5cy1r{|f&DKt4w`d`A7p@IP2;^V?PH&|f+k-WApY=G2~^c4Jo=o1TcEhF zqBvCK6q&l}*R#mXRu&ejGbUT`^qLLYhp!}fty}5tjBZ1Vu0G97bq1OA%6uMmaoK&44zi5U$?Rl2fK*;h)vxM^zU=)C2 et2fEXJB3#EBqpLeA6y$TjB%P_=FX$*ea62B>oq?B diff --git a/server/2015Remote/stdafx.h b/server/2015Remote/stdafx.h index 18c9dd7..491c8ca 100644 --- a/server/2015Remote/stdafx.h +++ b/server/2015Remote/stdafx.h @@ -5,8 +5,14 @@ #pragma once +// ǷʹZLIB #define USING_ZLIB 0 +#if !USING_ZLIB +// ǷʹLZ4 +#define USING_LZ4 1 +#endif + #ifndef _SECURE_ATL #define _SECURE_ATL 1 #endif