From 608cf4253deea7b68473ba45b3dff8a85175fba3 Mon Sep 17 00:00:00 2001 From: CallowBlack Date: Tue, 21 Jun 2022 22:47:24 +0300 Subject: [PATCH] minor changes `cheat-base` add x32 build `manual map` and `load library` injection moved to `cheat-base` removed unnecessary packet sniffer functionality fixed several type conversionals `cheat-library` now is startup by default little changes in `Logger`, `PatternScanner`, `ProtoTransfer` updated detours --- akebi-gc.sln | 4 +- cheat-base/cheat-base.vcxproj | 187 +++++- cheat-base/cheat-base.vcxproj.filters | 18 + cheat-base/framework/pch.h | 2 + cheat-base/src/cheat-base/Logger.cpp | 14 +- cheat-base/src/cheat-base/Logger.h | 4 + cheat-base/src/cheat-base/PatternScanner.h | 6 +- cheat-base/src/cheat-base/PipeTransfer.cpp | 2 +- .../src/cheat-base/inject/load-library.cpp | 55 ++ .../src/cheat-base/inject/load-library.h | 3 + .../src/cheat-base/inject/manual-map.cpp | 385 ++++++++++++ cheat-base/src/cheat-base/inject/manual-map.h | 4 + cheat-base/vendor/detours/detours-x64.lib | Bin 852762 -> 853346 bytes cheat-base/vendor/detours/detours-x86.lib | Bin 0 -> 702188 bytes cheat-library/cheat-library.vcxproj | 47 +- cheat-library/cheat-library.vcxproj.filters | 24 - .../user/cheat/misc/sniffer/MessageManager.h | 3 + .../user/cheat/misc/sniffer/PacketInfo.cpp | 145 ----- .../src/user/cheat/misc/sniffer/PacketInfo.h | 35 -- .../user/cheat/misc/sniffer/PacketParser.cpp | 240 -------- .../user/cheat/misc/sniffer/PacketParser.h | 49 -- .../user/cheat/misc/sniffer/PacketSniffer.cpp | 117 +--- .../user/cheat/misc/sniffer/PacketSniffer.h | 24 +- .../user/cheat/misc/sniffer/ProtoManager.cpp | 125 ---- .../user/cheat/misc/sniffer/ProtoManager.h | 41 -- .../user/cheat/misc/sniffer/SnifferWindow.cpp | 547 ------------------ .../user/cheat/misc/sniffer/SnifferWindow.h | 109 ---- .../misc/sniffer/messages/PacketData.cpp | 20 - .../src/user/cheat/visuals/Browser.h | 4 +- .../src/user/cheat/visuals/PaimonFollow.h | 2 +- .../src/user/cheat/visuals/ProfileChanger.h | 4 +- injector/injector.vcxproj | 15 +- injector/src/injector.cpp | 414 +------------ injector/src/injector.h | 40 +- 34 files changed, 704 insertions(+), 1985 deletions(-) create mode 100644 cheat-base/src/cheat-base/inject/load-library.cpp create mode 100644 cheat-base/src/cheat-base/inject/load-library.h create mode 100644 cheat-base/src/cheat-base/inject/manual-map.cpp create mode 100644 cheat-base/src/cheat-base/inject/manual-map.h create mode 100644 cheat-base/vendor/detours/detours-x86.lib delete mode 100644 cheat-library/src/user/cheat/misc/sniffer/PacketInfo.cpp delete mode 100644 cheat-library/src/user/cheat/misc/sniffer/PacketInfo.h delete mode 100644 cheat-library/src/user/cheat/misc/sniffer/PacketParser.cpp delete mode 100644 cheat-library/src/user/cheat/misc/sniffer/PacketParser.h delete mode 100644 cheat-library/src/user/cheat/misc/sniffer/ProtoManager.cpp delete mode 100644 cheat-library/src/user/cheat/misc/sniffer/ProtoManager.h delete mode 100644 cheat-library/src/user/cheat/misc/sniffer/SnifferWindow.cpp delete mode 100644 cheat-library/src/user/cheat/misc/sniffer/SnifferWindow.h diff --git a/akebi-gc.sln b/akebi-gc.sln index 1915763..f0de0a1 100644 --- a/akebi-gc.sln +++ b/akebi-gc.sln @@ -3,11 +3,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.0.32014.148 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "injector", "injector\injector.vcxproj", "{F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cheat-library", "cheat-library\cheat-library.vcxproj", "{CE178784-CB96-45CA-AE16-FC0DA1126970}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cheat-base", "cheat-base\cheat-base.vcxproj", "{ADB35022-823B-4DC0-B495-3EFEFBD3A82F}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cheat-library", "cheat-library\cheat-library.vcxproj", "{CE178784-CB96-45CA-AE16-FC0DA1126970}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "injector", "injector\injector.vcxproj", "{F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/cheat-base/cheat-base.vcxproj b/cheat-base/cheat-base.vcxproj index f755db3..10266a0 100644 --- a/cheat-base/cheat-base.vcxproj +++ b/cheat-base/cheat-base.vcxproj @@ -1,14 +1,26 @@  + + Debug + Win32 + Debug x64 + + Release_WS + Win32 + Release_WS x64 + + Release + Win32 + Release x64 @@ -43,6 +55,24 @@ true MultiByte + + v143 + StaticLibrary + true + MultiByte + + + v143 + StaticLibrary + MultiByte + true + + + v143 + StaticLibrary + MultiByte + true + @@ -60,18 +90,30 @@ true - $(SolutionDir)bin\$(Configuration)\ - $(SolutionDir)bin\$(Configuration)\obj\$(ProjectName)\ + $(SolutionDir)bin\$(Configuration)-$(PlatformShortName)\ + $(SolutionDir)bin\$(Configuration)-$(PlatformShortName)\obj\$(ProjectName)\ false - $(SolutionDir)bin\$(Configuration)\ - $(SolutionDir)bin\$(Configuration)\obj\$(ProjectName)\ + $(SolutionDir)bin\$(Configuration)-$(PlatformShortName)\ + $(SolutionDir)bin\$(Configuration)-$(PlatformShortName)\obj\$(ProjectName)\ false - $(SolutionDir)bin\$(Configuration)\ - $(SolutionDir)bin\$(Configuration)\obj\$(ProjectName)\ + $(SolutionDir)bin\$(Configuration)-$(PlatformShortName)\ + $(SolutionDir)bin\$(Configuration)-$(PlatformShortName)\obj\$(ProjectName)\ + + + $(SolutionDir)bin\$(Configuration)-$(PlatformShortName)\ + $(SolutionDir)bin\$(Configuration)-$(PlatformShortName)\obj\$(ProjectName)\ + + + $(SolutionDir)bin\$(Configuration)-$(PlatformShortName)\ + $(SolutionDir)bin\$(Configuration)-$(PlatformShortName)\obj\$(ProjectName)\ + + + $(SolutionDir)bin\$(Configuration)-$(PlatformShortName)\ + $(SolutionDir)bin\$(Configuration)-$(PlatformShortName)\obj\$(ProjectName)\ @@ -81,8 +123,9 @@ true Use pch.h - stdcpp17 + stdcpp20 $(ProjectDir)framework\;$(ProjectDir)src\;$(ProjectDir)vendor\detours\;$(ProjectDir)vendor\fmt\include\;$(ProjectDir)vendor\imgui\;$(ProjectDir)vendor\magic_enum\include\;$(ProjectDir)vendor\simpleIni\;$(ProjectDir)vendor\json\single_include\;$(ProjectDir)vendor\imgui-notify-v2\;$(ProjectDir)vendor\stb\ + stdc17 @@ -94,26 +137,28 @@ - detours-x64.lib;%(AdditionalDependencies) + detours-$(PlatformShortName).lib - $(ProjectDir)/vendor/detours/;%(AdditionalLibraryDirectories) + $(ProjectDir)vendor\detours\;%(AdditionalLibraryDirectories) Level3 true - false + true true _AMD64_;_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;_CRT_SECURE_NO_WARNINGS;NDEBUG;_LIB;%(PreprocessorDefinitions) true Use pch.h - stdcpp17 + stdcpp20 $(ProjectDir)framework\;$(ProjectDir)src\;$(ProjectDir)vendor\detours\;$(ProjectDir)vendor\fmt\include\;$(ProjectDir)vendor\imgui\;$(ProjectDir)vendor\magic_enum\include\;$(ProjectDir)vendor\simpleIni\;$(ProjectDir)vendor\json\single_include\;$(ProjectDir)vendor\imgui-notify-v2\;$(ProjectDir)vendor\stb\ - Disabled - false + MaxSpeed + true + false + stdc17 @@ -127,26 +172,28 @@ - detours-x64.lib;%(AdditionalDependencies) + detours-$(PlatformShortName).lib - $(ProjectDir)/vendor/detours/;%(AdditionalLibraryDirectories) + $(ProjectDir)vendor\detours\;%(AdditionalLibraryDirectories) Level3 true - false + true true _AMD64_;_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;_CRT_SECURE_NO_WARNINGS;NDEBUG;_LIB;%(PreprocessorDefinitions) true Use pch.h - stdcpp17 + stdcpp20 $(ProjectDir)framework\;$(ProjectDir)src\;$(ProjectDir)vendor\detours\;$(ProjectDir)vendor\fmt\include\;$(ProjectDir)vendor\imgui\;$(ProjectDir)vendor\magic_enum\include\;$(ProjectDir)vendor\simpleIni\;$(ProjectDir)vendor\json\single_include\;$(ProjectDir)vendor\imgui-notify-v2\;$(ProjectDir)vendor\stb\ - Disabled - false + MaxSpeed + true + false + stdc17 @@ -160,10 +207,63 @@ - detours-x64.lib;%(AdditionalDependencies) + detours-$(PlatformShortName).lib - $(ProjectDir)/vendor/detours/;%(AdditionalLibraryDirectories) + $(ProjectDir)vendor\detours\;%(AdditionalLibraryDirectories) + + + + + stdcpp20 + true + Level3 + $(ProjectDir)framework\;$(ProjectDir)src\;$(ProjectDir)vendor\detours\;$(ProjectDir)vendor\fmt\include\;$(ProjectDir)vendor\imgui\;$(ProjectDir)vendor\magic_enum\include\;$(ProjectDir)vendor\simpleIni\;$(ProjectDir)vendor\json\single_include\;$(ProjectDir)vendor\imgui-notify-v2\;$(ProjectDir)vendor\stb\ + _DEBUG;_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;_CRT_SECURE_NO_WARNINGS;_MBCS;%(PreprocessorDefinitions) + Use + pch.h + stdc17 + ProgramDatabase + false + false + + + detours-$(PlatformShortName).lib + $(ProjectDir)vendor\detours\;%(AdditionalLibraryDirectories) + + + + + stdcpp20 + true + Level3 + $(ProjectDir)framework\;$(ProjectDir)src\;$(ProjectDir)vendor\detours\;$(ProjectDir)vendor\fmt\include\;$(ProjectDir)vendor\imgui\;$(ProjectDir)vendor\magic_enum\include\;$(ProjectDir)vendor\simpleIni\;$(ProjectDir)vendor\json\single_include\;$(ProjectDir)vendor\imgui-notify-v2\;$(ProjectDir)vendor\stb\ + true + _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;_CRT_SECURE_NO_WARNINGS;_MBCS;%(PreprocessorDefinitions) + Use + pch.h + stdc17 + + + detours-$(PlatformShortName).lib + $(ProjectDir)vendor\detours\;%(AdditionalLibraryDirectories) + + + + + stdcpp20 + true + Level3 + $(ProjectDir)framework\;$(ProjectDir)src\;$(ProjectDir)vendor\detours\;$(ProjectDir)vendor\fmt\include\;$(ProjectDir)vendor\imgui\;$(ProjectDir)vendor\magic_enum\include\;$(ProjectDir)vendor\simpleIni\;$(ProjectDir)vendor\json\single_include\;$(ProjectDir)vendor\imgui-notify-v2\;$(ProjectDir)vendor\stb\ + true + _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;_CRT_SECURE_NO_WARNINGS;_MBCS;%(PreprocessorDefinitions) + Use + pch.h + stdc17 + + + detours-$(PlatformShortName).lib + $(ProjectDir)vendor\detours\;%(AdditionalLibraryDirectories) @@ -196,6 +296,8 @@ + + @@ -208,6 +310,8 @@ + + @@ -247,12 +351,20 @@ NotUsing NotUsing NotUsing + NotUsing + pch.h + pch.h NotUsing NotUsing NotUsing + NotUsing + pch.h + pch.h + + @@ -269,57 +381,90 @@ Create Create Create + Create + Create + Create NotUsing NotUsing NotUsing + NotUsing + pch.h + pch.h NotUsing NotUsing NotUsing + NotUsing + pch.h + pch.h NotUsing NotUsing NotUsing + NotUsing + pch.h + pch.h NotUsing NotUsing NotUsing + NotUsing + pch.h + pch.h NotUsing NotUsing NotUsing + NotUsing + pch.h + pch.h NotUsing NotUsing NotUsing + NotUsing + pch.h + pch.h NotUsing NotUsing NotUsing + NotUsing + pch.h + pch.h NotUsing NotUsing NotUsing + NotUsing + pch.h + pch.h NotUsing NotUsing NotUsing + NotUsing + pch.h + pch.h NotUsing NotUsing NotUsing + NotUsing + pch.h + pch.h diff --git a/cheat-base/cheat-base.vcxproj.filters b/cheat-base/cheat-base.vcxproj.filters index 95f3a92..c8e131f 100644 --- a/cheat-base/cheat-base.vcxproj.filters +++ b/cheat-base/cheat-base.vcxproj.filters @@ -231,6 +231,18 @@ Header Files + + Header Files + + + Header Files + + + Header Files + + + Header Files + @@ -317,5 +329,11 @@ Source Files + + Source Files + + + Source Files + \ No newline at end of file diff --git a/cheat-base/framework/pch.h b/cheat-base/framework/pch.h index 2cfc048..45f6c66 100644 --- a/cheat-base/framework/pch.h +++ b/cheat-base/framework/pch.h @@ -17,6 +17,8 @@ #include #include #include +#include +#include #include #include #include diff --git a/cheat-base/src/cheat-base/Logger.cpp b/cheat-base/src/cheat-base/Logger.cpp index a2ca152..96ba53c 100644 --- a/cheat-base/src/cheat-base/Logger.cpp +++ b/cheat-base/src/cheat-base/Logger.cpp @@ -88,11 +88,6 @@ Prefix GetLevelPrefix(Logger::Level level) void Logger::Log(Logger::Level logLevel, const char* filepath, int line, const char* fmt, ...) { - if (Logger::s_ConsoleLogLevel == Logger::Level::None && Logger::s_FileLogLevel == Logger::Level::None) - return; - - auto filename = std::filesystem::path(filepath).filename().string(); - auto prefix = GetLevelPrefix(logLevel); char buffer[1024]; va_list args; @@ -100,6 +95,13 @@ void Logger::Log(Logger::Level logLevel, const char* filepath, int line, const c vsprintf_s(buffer, fmt, args); va_end(args); + LogEvent(logLevel, filepath, line, buffer); + if (Logger::s_ConsoleLogLevel == Logger::Level::None && Logger::s_FileLogLevel == Logger::Level::None) + return; + + auto filename = std::filesystem::path(filepath).filename().string(); + auto prefix = GetLevelPrefix(logLevel); + if (Logger::s_ConsoleLogLevel != Logger::Level::None && Logger::s_ConsoleLogLevel >= logLevel) { const std::lock_guard lock(_mutex); @@ -140,4 +142,4 @@ void Logger::PrepareFileLogging(std::string directory) Logger::logfilepath = util::string_format("%s\\log_%04d-%02d-%02d_%02d-%02d.txt", directory.c_str(), 1900 + gmtm.tm_year, gmtm.tm_mon, gmtm.tm_mday, gmtm.tm_hour, gmtm.tm_min); -} +} \ No newline at end of file diff --git a/cheat-base/src/cheat-base/Logger.h b/cheat-base/src/cheat-base/Logger.h index 37fc6e9..d2fe3c7 100644 --- a/cheat-base/src/cheat-base/Logger.h +++ b/cheat-base/src/cheat-base/Logger.h @@ -1,6 +1,8 @@ #pragma once #include #include +#include + #define EXTLOG(level, fmt, ...) Logger::Log(level, __FILE__, __LINE__, fmt, __VA_ARGS__) #define LOG_CRIT(fmt, ...) EXTLOG(Logger::Level::Critical, fmt, __VA_ARGS__) #define LOG_ERROR(fmt, ...) EXTLOG(Logger::Level::Error, fmt, __VA_ARGS__) @@ -37,6 +39,8 @@ public: static void PrepareFileLogging(std::string directory); + static inline TEvent LogEvent; + private: static Level s_FileLogLevel; static Level s_ConsoleLogLevel; diff --git a/cheat-base/src/cheat-base/PatternScanner.h b/cheat-base/src/cheat-base/PatternScanner.h index e6801bc..a5a318a 100644 --- a/cheat-base/src/cheat-base/PatternScanner.h +++ b/cheat-base/src/cheat-base/PatternScanner.h @@ -33,6 +33,9 @@ public: int64_t GetModuleTimestamp(const std::string& moduleName); int64_t GetModuleTimestamp(HMODULE hModule); + + uintptr_t SearchInModule(const std::string& moduleName, const std::string& pattern); + uintptr_t SearchInModule(HMODULE hModule, const std::string& pattern); protected: @@ -97,9 +100,6 @@ protected: uintptr_t SearchXref(const std::string& moduleName, const OffsetSignature& xrefPattern); uintptr_t SearchXref(HMODULE hModule, const OffsetSignature& xrefPattern); - - uintptr_t SearchInModule(const std::string& moduleName, const std::string& pattern); - uintptr_t SearchInModule(HMODULE hModule, const std::string& pattern); uintptr_t GetOffsetInt(const nlohmann::json& value); std::string GetOffsetStr(uintptr_t offset); diff --git a/cheat-base/src/cheat-base/PipeTransfer.cpp b/cheat-base/src/cheat-base/PipeTransfer.cpp index 1dfa028..b4f616f 100644 --- a/cheat-base/src/cheat-base/PipeTransfer.cpp +++ b/cheat-base/src/cheat-base/PipeTransfer.cpp @@ -45,7 +45,7 @@ bool PipeTransfer::Connect() bool PipeTransfer::WaitForConnection() { - return ConnectNamedPipe(m_Pipe, nullptr); + return ConnectNamedPipe(m_Pipe, nullptr) || GetLastError() == ERROR_PIPE_CONNECTED; } void PipeTransfer::ReadBytes(void* buffer, size_t size) diff --git a/cheat-base/src/cheat-base/inject/load-library.cpp b/cheat-base/src/cheat-base/inject/load-library.cpp new file mode 100644 index 0000000..771fc75 --- /dev/null +++ b/cheat-base/src/cheat-base/inject/load-library.cpp @@ -0,0 +1,55 @@ +#include +#include "load-library.h" +#include + +#if defined(DISABLE_OUTPUT) +#define ILog(data, ...) +#define IPrintError(text, ...) +#else +#define ILog(text, ...) printf(text, __VA_ARGS__) +#define ILogError(text, ...) ILog(text, __VA_ARGS__); std::cout << "Error: " << util::GetLastErrorAsString() << std::endl +#endif + +bool LoadLibraryDLL(HANDLE hProc, const std::string& dllpath) +{ + HMODULE hKernel = GetModuleHandle("kernel32.dll"); + if (hKernel == NULL) + { + ILogError("[DLL Injection] Failed to get kernel32.dll module address.\n"); + return false; + } + + LPVOID pLoadLibrary = (LPVOID)GetProcAddress(hKernel, "LoadLibraryA"); + if (pLoadLibrary == NULL) { + ILogError("[DLL Injection] Failed to get LoadLibraryA address.\n"); + return false; + } + + LPVOID pDLLPath = VirtualAllocEx(hProc, NULL, strlen(dllpath.c_str()) + 1, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE); + if (pDLLPath == NULL) { + ILogError("[DLL Injection] Failed to allocate memory for DLLPath in target process.\n"); + return false; + } + + // Write the string name of our DLL in the memory allocated + BOOL writeResult = WriteProcessMemory(hProc, pDLLPath, dllpath.c_str(), strlen(dllpath.c_str()), NULL); + if (writeResult == FALSE) { + ILogError("[DLL Injection] Failed to write remote process memory.\n"); + return false; + } + + // Load our DLL by calling loadlibrary in the other process and passing our dll name + HANDLE hThread = CreateRemoteThread(hProc, NULL, NULL, (LPTHREAD_START_ROUTINE)pLoadLibrary, (LPVOID)pDLLPath, NULL, NULL); + if (hThread == NULL) { + ILogError("[DLL Injection] Failed to create remote thread.\n"); + VirtualFreeEx(hProc, pDLLPath, 0, MEM_RELEASE); + return false; + } + CloseHandle(hThread); + + // TODO: Add waiting for thread end and release unneccessary data. + // VirtualFreeEx(hProc, pDLLPath, 0, MEM_RELEASE); + + ILog("[DLL Injection] Successfully LoadLibraryA injection.\n"); + return true; +} \ No newline at end of file diff --git a/cheat-base/src/cheat-base/inject/load-library.h b/cheat-base/src/cheat-base/inject/load-library.h new file mode 100644 index 0000000..95fc16d --- /dev/null +++ b/cheat-base/src/cheat-base/inject/load-library.h @@ -0,0 +1,3 @@ +#pragma once + +bool LoadLibraryDLL(HANDLE hProc, const std::string& dllpath); \ No newline at end of file diff --git a/cheat-base/src/cheat-base/inject/manual-map.cpp b/cheat-base/src/cheat-base/inject/manual-map.cpp new file mode 100644 index 0000000..2fb11b9 --- /dev/null +++ b/cheat-base/src/cheat-base/inject/manual-map.cpp @@ -0,0 +1,385 @@ +#include +#include "manual-map.h" +#include + +#if defined(DISABLE_OUTPUT) +#define ILog(data, ...) +#define IPrintError(text, ...) +#else +#define ILog(text, ...) printf(text, __VA_ARGS__) +#define ILogError(text, ...) ILog(text, __VA_ARGS__); std::cout << "Error: " << util::GetLastErrorAsString() << std::endl +#endif + +#ifdef _WIN64 +#define CURRENT_ARCH IMAGE_FILE_MACHINE_AMD64 +#else +#define CURRENT_ARCH IMAGE_FILE_MACHINE_I386 +#endif + +using f_LoadLibraryA = HINSTANCE(WINAPI*)(const char* lpLibFilename); +using f_GetProcAddress = FARPROC(WINAPI*)(HMODULE hModule, LPCSTR lpProcName); +using f_DLL_ENTRY_POINT = BOOL(WINAPI*)(void* hDll, DWORD dwReason, void* pReserved); + +#ifdef _WIN64 +using f_RtlAddFunctionTable = BOOL(WINAPIV*)(PRUNTIME_FUNCTION FunctionTable, DWORD EntryCount, DWORD64 BaseAddress); +#endif + +struct MANUAL_MAPPING_DATA +{ + f_LoadLibraryA pLoadLibraryA; + f_GetProcAddress pGetProcAddress; +#ifdef _WIN64 + f_RtlAddFunctionTable pRtlAddFunctionTable; +#endif + BYTE* pbase; + HINSTANCE hMod; + DWORD fdwReasonParam; + LPVOID reservedParam; + BOOL SEHSupport; +}; + + +bool ManualMapDLL(HANDLE hProc, const std::string& filepath) +{ + std::ifstream file(filepath, std::ios::in | std::ios::binary | std::ios::ate); + if (!file.is_open()) + { + std::cout << "Error while reading DLL file!" << std::endl; + return false; + } + + std::streampos size = file.tellg(); + auto memblock = new char[size]; + file.seekg(0, std::ios::beg); + file.read(memblock, size); + file.close(); + + BYTE* fileContent = (BYTE*)memblock; + + // Manual map injection will help us to be like a assasin + bool result = ManualMapDLL(hProc, fileContent, size); + + delete[] memblock; + + return result; +} + +void __stdcall Shellcode(MANUAL_MAPPING_DATA* pData); + +bool ManualMapDLL(HANDLE hProc, BYTE* pSrcData, SIZE_T FileSize, bool ClearHeader, bool ClearNonNeededSections, bool AdjustProtections, bool SEHExceptionSupport, DWORD fdwReason) { + IMAGE_NT_HEADERS* pOldNtHeader = nullptr; + IMAGE_OPTIONAL_HEADER* pOldOptHeader = nullptr; + IMAGE_FILE_HEADER* pOldFileHeader = nullptr; + BYTE* pTargetBase = nullptr; + + if (reinterpret_cast(pSrcData)->e_magic != 0x5A4D) { //"MZ" + ILog("[DLL injection] Invalid file\n"); + return false; + } + + pOldNtHeader = reinterpret_cast(pSrcData + reinterpret_cast(pSrcData)->e_lfanew); + pOldOptHeader = &pOldNtHeader->OptionalHeader; + pOldFileHeader = &pOldNtHeader->FileHeader; + + if (pOldFileHeader->Machine != CURRENT_ARCH) { + ILog("[DLL injection] Invalid platform.\n"); + return false; + } + + ILog("[DLL injection] File ok\n"); + + pTargetBase = reinterpret_cast(VirtualAllocEx(hProc, nullptr, pOldOptHeader->SizeOfImage, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE)); + if (!pTargetBase) { + ILogError("[DLL injection] Target process memory allocation failed (ex)\n"); + return false; + } + + DWORD oldp = 0; + VirtualProtectEx(hProc, pTargetBase, pOldOptHeader->SizeOfImage, PAGE_EXECUTE_READWRITE, &oldp); + + MANUAL_MAPPING_DATA data{ 0 }; + data.pLoadLibraryA = LoadLibraryA; + data.pGetProcAddress = GetProcAddress; +#ifdef _WIN64 + data.pRtlAddFunctionTable = (f_RtlAddFunctionTable)RtlAddFunctionTable; +#else + SEHExceptionSupport = false; +#endif + data.pbase = pTargetBase; + data.fdwReasonParam = fdwReason; + data.SEHSupport = SEHExceptionSupport; + + //File header + if (!WriteProcessMemory(hProc, pTargetBase, pSrcData, 0x1000, nullptr)) { //only first 0x1000 bytes for the header + ILogError("[DLL injection] Can't write file header.\n"); + + VirtualFreeEx(hProc, pTargetBase, 0, MEM_RELEASE); + return false; + } + + IMAGE_SECTION_HEADER* pSectionHeader = IMAGE_FIRST_SECTION(pOldNtHeader); + for (UINT i = 0; i != pOldFileHeader->NumberOfSections; ++i, ++pSectionHeader) { + if (pSectionHeader->SizeOfRawData) { + if (!WriteProcessMemory(hProc, pTargetBase + pSectionHeader->VirtualAddress, pSrcData + pSectionHeader->PointerToRawData, pSectionHeader->SizeOfRawData, nullptr)) { + ILogError("[DLL injection] Can't map sections.\n"); + VirtualFreeEx(hProc, pTargetBase, 0, MEM_RELEASE); + return false; + } + } + } + + //Mapping params + BYTE* MappingDataAlloc = reinterpret_cast(VirtualAllocEx(hProc, nullptr, sizeof(MANUAL_MAPPING_DATA), MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE)); + if (!MappingDataAlloc) { + ILogError("[DLL injection] Target process mapping allocation failed (ex).\n"); + VirtualFreeEx(hProc, pTargetBase, 0, MEM_RELEASE); + return false; + } + + if (!WriteProcessMemory(hProc, MappingDataAlloc, &data, sizeof(MANUAL_MAPPING_DATA), nullptr)) { + ILogError("[DLL injection] Can't write mapping.\n"); + VirtualFreeEx(hProc, pTargetBase, 0, MEM_RELEASE); + VirtualFreeEx(hProc, MappingDataAlloc, 0, MEM_RELEASE); + return false; + } + + //Shell code + void* pShellcode = VirtualAllocEx(hProc, nullptr, 0x1000, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE); + if (!pShellcode) { + ILogError("[DLL injection] Memory shellcode allocation failed (ex).\n"); + VirtualFreeEx(hProc, pTargetBase, 0, MEM_RELEASE); + VirtualFreeEx(hProc, MappingDataAlloc, 0, MEM_RELEASE); + return false; + } + + if (!WriteProcessMemory(hProc, pShellcode, Shellcode, 0x1000, nullptr)) { + ILogError("[DLL injection] Can't write shellcode.\n"); + VirtualFreeEx(hProc, pTargetBase, 0, MEM_RELEASE); + VirtualFreeEx(hProc, MappingDataAlloc, 0, MEM_RELEASE); + VirtualFreeEx(hProc, pShellcode, 0, MEM_RELEASE); + return false; + } + + ILog("[DLL injection] Mapped DLL at %p\n", pTargetBase); + ILog("[DLL injection] Mapping info at %p\n", MappingDataAlloc); + ILog("[DLL injection] Shell code at %p\n", pShellcode); + + ILog("[DLL injection] Data allocated\n"); + +#ifdef _DEBUG + ILog("[DLL injection] My shellcode pointer %p\n", Shellcode); + ILog("[DLL injection] Target point %p\n", pShellcode); +#endif + + HANDLE hThread = CreateRemoteThread(hProc, nullptr, 0, reinterpret_cast(pShellcode), MappingDataAlloc, 0, nullptr); + if (!hThread) { + ILogError("[DLL injection] Thread creation failed.\n"); + VirtualFreeEx(hProc, pTargetBase, 0, MEM_RELEASE); + VirtualFreeEx(hProc, MappingDataAlloc, 0, MEM_RELEASE); + VirtualFreeEx(hProc, pShellcode, 0, MEM_RELEASE); + return false; + } + CloseHandle(hThread); + + ILog("[DLL injection] Thread created at: %p, waiting for return...\n", pShellcode); + + HINSTANCE hCheck = NULL; + while (!hCheck) { + DWORD exitcode = 0; + GetExitCodeProcess(hProc, &exitcode); + if (exitcode != STILL_ACTIVE) { + ILog("[DLL injection] Process crashed, exit code: 0x%x\n", exitcode); + return false; + } + + MANUAL_MAPPING_DATA data_checked{ 0 }; + ReadProcessMemory(hProc, MappingDataAlloc, &data_checked, sizeof(data_checked), nullptr); + hCheck = data_checked.hMod; + + if (hCheck == (HINSTANCE)0x404040) { + ILog("[DLL injection] Wrong mapping ptr.\n"); + VirtualFreeEx(hProc, pTargetBase, 0, MEM_RELEASE); + VirtualFreeEx(hProc, MappingDataAlloc, 0, MEM_RELEASE); + VirtualFreeEx(hProc, pShellcode, 0, MEM_RELEASE); + return false; + } + else if (hCheck == (HINSTANCE)0x505050) { + ILog("[DLL injection] WARNING: Exception support failed!\n"); + } + + Sleep(10); + } + + BYTE* emptyBuffer = (BYTE*)malloc(1024 * 1024 * 20); + if (emptyBuffer == nullptr) { + ILog("[DLL injection] Unable to allocate memory\n"); + return false; + } + memset(emptyBuffer, 0, 1024 * 1024 * 20); + + //CLEAR PE HEAD + if (ClearHeader) { + if (!WriteProcessMemory(hProc, pTargetBase, emptyBuffer, 0x1000, nullptr)) { + ILogError("[DLL injection] WARNING!: Can't clear HEADER\n"); + } + } + //END CLEAR PE HEAD + + + if (ClearNonNeededSections) { + pSectionHeader = IMAGE_FIRST_SECTION(pOldNtHeader); + for (UINT i = 0; i != pOldFileHeader->NumberOfSections; ++i, ++pSectionHeader) { + if (pSectionHeader->Misc.VirtualSize) { + if ((SEHExceptionSupport ? 0 : strcmp((char*)pSectionHeader->Name, ".pdata") == 0) || + strcmp((char*)pSectionHeader->Name, ".rsrc") == 0 || + strcmp((char*)pSectionHeader->Name, ".reloc") == 0) { + ILog("[DLL injection] Processing %s removal\n", pSectionHeader->Name); + if (!WriteProcessMemory(hProc, pTargetBase + pSectionHeader->VirtualAddress, emptyBuffer, pSectionHeader->Misc.VirtualSize, nullptr)) { + ILogError("[DLL injection] Can't clear section %s.\n", pSectionHeader->Name); + } + } + } + } + } + + if (AdjustProtections) { + pSectionHeader = IMAGE_FIRST_SECTION(pOldNtHeader); + for (UINT i = 0; i != pOldFileHeader->NumberOfSections; ++i, ++pSectionHeader) { + if (pSectionHeader->Misc.VirtualSize) { + DWORD old = 0; + DWORD newP = PAGE_READONLY; + + if ((pSectionHeader->Characteristics & IMAGE_SCN_MEM_WRITE) > 0) { + newP = PAGE_READWRITE; + } + else if ((pSectionHeader->Characteristics & IMAGE_SCN_MEM_EXECUTE) > 0) { + newP = PAGE_EXECUTE_READ; + } + if (VirtualProtectEx(hProc, pTargetBase + pSectionHeader->VirtualAddress, pSectionHeader->Misc.VirtualSize, newP, &old)) { + ILog("[DLL injection] Section %s set as %lX\n", (char*)pSectionHeader->Name, newP); + } + else { + ILog("[DLL injection] FAIL: section %s not set as %lX\n", (char*)pSectionHeader->Name, newP); + } + } + } + DWORD old = 0; + VirtualProtectEx(hProc, pTargetBase, IMAGE_FIRST_SECTION(pOldNtHeader)->VirtualAddress, PAGE_READONLY, &old); + } + + if (!WriteProcessMemory(hProc, pShellcode, emptyBuffer, 0x1000, nullptr)) { + ILog("[DLL injection] WARNING: Can't clear shellcode\n"); + } + if (!VirtualFreeEx(hProc, pShellcode, 0, MEM_RELEASE)) { + ILog("[DLL injection] WARNING: can't release shell code memory\n"); + } + if (!VirtualFreeEx(hProc, MappingDataAlloc, 0, MEM_RELEASE)) { + ILog("[DLL injection] WARNING: can't release mapping data memory\n"); + } + + return true; +} + +#define RELOC_FLAG32(RelInfo) ((RelInfo >> 0x0C) == IMAGE_REL_BASED_HIGHLOW) +#define RELOC_FLAG64(RelInfo) ((RelInfo >> 0x0C) == IMAGE_REL_BASED_DIR64) + +#ifdef _WIN64 +#define RELOC_FLAG RELOC_FLAG64 +#else +#define RELOC_FLAG RELOC_FLAG32 +#endif + +#pragma runtime_checks( "", off ) +#pragma optimize( "", off ) +void __stdcall Shellcode(MANUAL_MAPPING_DATA* pData) { + if (!pData) { + pData->hMod = (HINSTANCE)0x404040; + return; + } + + BYTE* pBase = pData->pbase; + auto* pOpt = &reinterpret_cast(pBase + reinterpret_cast((uintptr_t)pBase)->e_lfanew)->OptionalHeader; + + auto _LoadLibraryA = pData->pLoadLibraryA; + auto _GetProcAddress = pData->pGetProcAddress; +#ifdef _WIN64 + auto _RtlAddFunctionTable = pData->pRtlAddFunctionTable; +#endif + auto _DllMain = reinterpret_cast(pBase + pOpt->AddressOfEntryPoint); + + BYTE* LocationDelta = pBase - pOpt->ImageBase; + if (LocationDelta) { + if (pOpt->DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].Size) { + auto* pRelocData = reinterpret_cast(pBase + pOpt->DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress); + const auto* pRelocEnd = reinterpret_cast(reinterpret_cast(pRelocData) + pOpt->DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].Size); + while (pRelocData < pRelocEnd && pRelocData->SizeOfBlock) { + UINT AmountOfEntries = (pRelocData->SizeOfBlock - sizeof(IMAGE_BASE_RELOCATION)) / sizeof(WORD); + WORD* pRelativeInfo = reinterpret_cast(pRelocData + 1); + + for (UINT i = 0; i != AmountOfEntries; ++i, ++pRelativeInfo) { + if (RELOC_FLAG(*pRelativeInfo)) { + UINT_PTR* pPatch = reinterpret_cast(pBase + pRelocData->VirtualAddress + ((*pRelativeInfo) & 0xFFF)); + *pPatch += reinterpret_cast(LocationDelta); + } + } + pRelocData = reinterpret_cast(reinterpret_cast(pRelocData) + pRelocData->SizeOfBlock); + } + } + } + + if (pOpt->DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].Size) { + auto* pImportDescr = reinterpret_cast(pBase + pOpt->DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress); + while (pImportDescr->Name) { + char* szMod = reinterpret_cast(pBase + pImportDescr->Name); + HINSTANCE hDll = _LoadLibraryA(szMod); + + ULONG_PTR* pThunkRef = reinterpret_cast(pBase + pImportDescr->OriginalFirstThunk); + ULONG_PTR* pFuncRef = reinterpret_cast(pBase + pImportDescr->FirstThunk); + + if (!pThunkRef) + pThunkRef = pFuncRef; + + for (; *pThunkRef; ++pThunkRef, ++pFuncRef) { + if (IMAGE_SNAP_BY_ORDINAL(*pThunkRef)) { + *pFuncRef = (ULONG_PTR)_GetProcAddress(hDll, reinterpret_cast(*pThunkRef & 0xFFFF)); + } + else { + auto* pImport = reinterpret_cast(pBase + (*pThunkRef)); + *pFuncRef = (ULONG_PTR)_GetProcAddress(hDll, pImport->Name); + } + } + ++pImportDescr; + } + } + + if (pOpt->DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].Size) { + auto* pTLS = reinterpret_cast(pBase + pOpt->DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].VirtualAddress); + auto* pCallback = reinterpret_cast(pTLS->AddressOfCallBacks); + for (; pCallback && *pCallback; ++pCallback) + (*pCallback)(pBase, DLL_PROCESS_ATTACH, nullptr); + } + + bool ExceptionSupportFailed = false; + +#ifdef _WIN64 + + if (pData->SEHSupport) { + auto excep = pOpt->DataDirectory[IMAGE_DIRECTORY_ENTRY_EXCEPTION]; + if (excep.Size) { + if (!_RtlAddFunctionTable( + reinterpret_cast(pBase + excep.VirtualAddress), + excep.Size / sizeof(IMAGE_RUNTIME_FUNCTION_ENTRY), (DWORD64)pBase)) { + ExceptionSupportFailed = true; + } + } + } + +#endif + + _DllMain(pBase, pData->fdwReasonParam, nullptr); + + if (ExceptionSupportFailed) + pData->hMod = reinterpret_cast(0x505050); + else + pData->hMod = reinterpret_cast(pBase); +} \ No newline at end of file diff --git a/cheat-base/src/cheat-base/inject/manual-map.h b/cheat-base/src/cheat-base/inject/manual-map.h new file mode 100644 index 0000000..3f4d133 --- /dev/null +++ b/cheat-base/src/cheat-base/inject/manual-map.h @@ -0,0 +1,4 @@ +#pragma once + +bool ManualMapDLL(HANDLE hProc, const std::string& filepath); +bool ManualMapDLL(HANDLE hProc, BYTE* pSrcData, SIZE_T FileSize, bool ClearHeader = false, bool ClearNonNeededSections = false, bool AdjustProtections = true, bool SEHExceptionSupport = false, DWORD fdwReason = DLL_PROCESS_ATTACH); \ No newline at end of file diff --git a/cheat-base/vendor/detours/detours-x64.lib b/cheat-base/vendor/detours/detours-x64.lib index 7fda12a5b2fd7a058af05aee72e6af78ca17d66d..49a767c29668d07ca964859d5040aef5449a8975 100644 GIT binary patch delta 35828 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 Skk0eHlzBv-KS*~l`~Lz54cj;X delta 35023 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

CgYcmR<~<6P1@~$e@Qq= zi}ISx_%s1%RRwkv{0<%v86B*Pij5YYK+H%?HlpGN#NcNO{3N&AnbXbPTVe~95#W#Z zVw5D>an=}5pwPqxeB$hP`jtr~_3RxO%{VDQ{@$SxImD(&9^ zoHs`*dDAk+?7UUxb~gkfd6~Mn7<_^>uxD&&f0Aw#HX~`N7-FM3u|aGy0TEN9;&th1 zW(#A&8|4NKiq#4YfJ$B)?`)DYh{+ds0c#>zgBd1EHe{uzXIf0)lq5>^7!B6(ld2`j z2~#KcY7gYK*6A1vOcLRd!Eu<(Q2SHWnH(`$Bzn|lF`mTA!I7k8jfV zG@5!RnIh8588!rtC2urdPhdb3e`kh=#%JI zv+Ul)5i)efRFAhK)Fmb`M5_ynBE^xoW}1Z}NjRieg;-3#aGp6+Zcr*D%M^kLP$5B) zkzv}vh(azoTT}%NaoIl-AC;B*h~8u}7$Iaz9f`~X7%BQi6X+<`iiArI&>I>M7Z%G1 z(*pr&f0=BUxLIpa=OZo{CiNbwcY8mklNu}q_r^3VOpB~i&!lwL1*l-k&GD(_p|SL< zGt+l#t1{JN?MhtolIbTECiYaKEpf@vYa!xfEi3}?*}Zh^I#bfm?Blz3Wk&)F?T~G+ z!{n}AyJr~;_(nt0Gvr)9V}6d&+oqO*9Y@UQZE~2bLa!MZSgV!+2MUE`M(B+OynovT zKC64R)kUJI(Dz2h`3^GTWFg-!SRHV$w#*rZ3RUX*Q`GX{C^(QLspdLNR-so98OEw* z2r^+R39V62Q=vrlO;X2>HzcO|`Lp__JHt?+O7)FV&6AiY)_0J@WC!#D)H2`%P?27! z!(yFAv4ijItZ|;VU#|2=iXg0HcnS5(M6X@zJGtY$-S50mr)%4B zzrAp8=ZiB>On-mEjFI=lqp$?d@cbW?{ixHruLHuiw|%tZ&FLLJDD#@J!V~kAWZA}UIcAr<`xY2D=qNYAKvtF(0OX{zD)D4ds7+&UvYEKK@VlCabA6@SA z`>bsz@Av)nv!^s(9sM^Y|Nc><`GU~343(RDZ0aoGz4k5IZPw4IGCBFi2PcOe8u#>1 z`leBpk(vmTiX)U>%g< z^=LHl>fgsQ=e-oVZ%Hff1qZ+Qb4JTeC-N8lb=Z<~@mPy6LFk~Na{UHun0c%Fz>1%S z53PNr%7eU6ZG#@o^B-6yJvdXaW^K(JL72kuCc8iEQSr55Zjt^+H~$zkIA_X*6J37k zF#1yY>yuk7DL-wWARJ(LtDmTR>+1^{iG2dEE?Hz*<~34(N1y)dm7%w~eI7RRr|M|m z+E5&CO@j-E8vVKH?BRFD>va>}9acN-==llt=WpqEJ)=jz%Qe&RJS3Ijjqjmfv3SdM z%S_+C-vyQ*_^eyf{PqQbOOu~!9htP{&huE`-pugae||LWa`yGsHB&o%d^mF9g6xNH zoN49$<1gd$hadjRecn+#ieq>)_k6$ZqleFTePQ6AZ)TbTe%SWothXwR`DE^Z124bv zwR=8rw0O4RtucJ}`ue%wpItubgO{c(*)^wj#jUd+RlMFdSuy5kKr|H z*!k;m>#qiVd_(i;)k@2L>C&X9kQBW0*p*)WGdjiw-NCXy!`u7INB)NO$!n{8-}{)4 z|DyP%ABJ2!ofq(^P0k0u|5*R|&gd){FugThX5YNid|bny2A-||!j$&sPoA@An|w5T z@$y$9=D$|2Sr~@ymlQyJd!SI!;H^~`Od3rXJ7sOM9c_s@C0 z+@Wq9v=?f&W13M&^@4Q%@DhSNT?y(4-ZZ`S%yt7A`8Y20b* zvk7=Ss$JSzuxZVrR6L24<^4;amchr0fS)++~{$ICM2x4HmH9=y`Wncx4aeO3^X8D8+t zCqJlj&gY{_1=^c^dUc%sy8G>K`)nW5a!TfC_v-f_WedV~hWEv-=xaAd2^(Ik_s#Y# z%bS$l_I#iF*Q$3cd+oU~HAAjlgB@z|1eJSX>gn>6A3S@m`>8$~muD@1KJtCd?eB(< z8TQPocjtB39FD=u!th2nYIc41svfz|ezx~O-Ur?%{O5lE^yuE7{n+gI)PbIl?lwa| zXL#BQs|$ADY*2UY6E%D0^r*M|mF6#gF)H}U=3}OQT(;ZkzN@j_t}>N7?O=^7nJpGp z`u^_txp(sxPI*4$=JroI55Ll`)$pYUKMjE0ox$*geU=@QS2k^X_R{AKhhG?;_Wiod zp*B7TP)j%#M7~Y}=bt{B)`O3dW->nr!ebsLA_?WMb47KD%hs+sJ*YD$l zp@Q&q6)HDz&r@rgUoZ1nKer_-|N1a^!#6pHlCLx!Q|3aqp`Q#N_bc50u?%n4s2aMP zZUK9~>r?Tl`BZb`A3KIWv!g<{!JCcEJbSgj`x+j5GQ7pxT77vhXzs%LbuZt_-~4;v z)=qcJddFU0ZP@wXiAy6duf*asWbLg9jz80*iFfAr*F4O32XEEl~x~q zx@P~>?b~28;u)Ul`>J76r-qa@$DGrz4m_3JT3dDRn$T(IepuvF_U5p5?+U`Z46pT~ z?_aSTdZKp4x=+>Z^-awC?RtH5qg;5RTekaw>nq-D@C>#wVa)W_RGpvdTlVhwmlrkr zxNTOKldGCHIr(z`I)|nvymUc3eewE-f-sEXy`1lL`L*XS%^Vt8B_g?{-}E=9C1>7Q zF>S`Oc9UPbqd5#cUB~c#yHn;yi?`0c|Kn!&1>qOE_wD-Ik?2c});u$3*pC&S`tk~% z8~?@dn!gh9O2y8WW!2w0dM@z&Z!*dy)|P;GUk_dFTLp%CfU7bniG;iEWIQV<)fhoVg+`)hGM#G*-OW%M!*vIfzR{AU?Wy`uBJ9~`C z{&iZ96+2IM-!u2XfX++1r3|`W_qUpYP|u6X-4ikEuCd&tUp^^o**R*+)vl)|oaxiL z(f*^02ALb*IC{1hwh1x3HK&Axp5AK1{u9^9gAZ;kHaJ=482 zbH+Tp(z?r&L9aLJS?j&jRdW(=2I>2@X!KDZ>_ap$yqzslM>Q}Qt9u&ve0cetg4`p^ zqj!#-dp~Y@uaVz0daL^yLD<3Ydi}YmRrP9TR=?}FY0i7~ri5>N>Ewhj6OKk-IJkak z%SrEDL%DFVy*0zDUbq(Zd~Qa^jKvu#_2)00v~ies^|Oh-k+(lPQm55)lpDqHnrth- z@vVvpuQqRe;P?9-yGPbs;rZ+SO1gSWMz(JEDC&bAu=fn_=dE|%+PY@T6Oq>kbqTyR zZ|t!2QQLkPcqz>1^4^ngG+2Rtbe7?r9TPvQRo{NAQkTtqZS2f?6I0vAnG3p4n;6^A zwDHw1_qD{fquRvZQp3(kA8u)P?&65<=Zxc@zOo>BO8uts_eN%p`~38R^a?{@4;Y?L zY~?LO*Nxq~`m4p|7Wn+yyYlo8LO)zwrdNwuYgc90`x*P*@)_R7=(2xJ4sY<{_%$uJ zHVB+|^xOYs+rta<&&@ga+Q;`b=QewPm3w~1i{n>TzWx^a$CGub+`dnA%kO+~ z{jB{z2Yj}v;;n~oeRb@>`}4l*8upjR?34E@cf}SGhWB#E<?;-Pzify&vGwb%m5)YjIG)w3rhf(P>&t(+T|eo{BSF}}@Fvdf+CJdw{Pu&^y#Do< zYt8%o?=79SJg(X83B6Ceer(k}$oT=oJHGn-XZP-|TOTkZrCj5dq1yT8{hr-2vj$~1 zFQ0a1mjU(AK1uu?8Cmt*?Zr#3-oE<%1l_>M=YFqpU9dwtXZ$l*0+J96=u5VKir}+U}Oc~ybvF zadPsK>&AJ1E^r?;r)j+rUv8;c{`Y4E!KXfzn^UJk^5}c3Mx9-7<%=cj@*C}3x~KlC z<0H1^ojiDK*yRh@ZZVeOdA~mP!N*%FjoH((%5X=+4SiR z*gD1VCWpNk(rUuS+=y>e(k~gOuU)kB{+crD53j7hXiS?K1BbmX2$i9$-kLeR%eQ*_ z`wE}EoOt5ib7}qm^lkj&IiKa7-;M6l@BMyX`85@UAq?-O{6vq>ChWd4cFc|4KfQai z&R?J04cifNdh}POsL_?afqNxvWq5fnyjsrRR4ypB$aoI_bf>H_OMaeiLJxFZNJ* zYxDeD=n-=cfY-By? z^Du@NakkdxV-eb~zdSzVw=KQfZ|mFP!ICboj!*tRuHs+Ex8F5kyD`IiwDjui-#%P7 z`Qq&*4cAwmztd-w+xZFIve)!zx;SFltM%hCKWBJzET?00hb?$>MnqcHgQiq;hc0TjU&KnhH}My?y?)E&kCJ0HZ`*X??jMt4CJqjat5JK%)Cm>B-Y(c_ zg56lh@ak_pGOqFL-QCA_-0Hh2KIDFtXIp;L?dZJgEeDlrkg$8!0BoaUcniO2T(^Ei z=FP_EeP&-9eea#GW;H5vaCw!P&zcXt@#wQHsBbUy5pT`uo|~5qT(ooFYT<{*E1piB z7Jj;GiwR{kSOn?*HAnzrxDsYA;)J%g>hPf@vsD!IPPJGCCR-6OE`8%YiNoP4_TidQ|$ z*Isn5R($sLMGFPtb%xjSUPj;5XQ~yXjvltmd*vsgdk)<*SLy$Am1Qw+H?1GA9^--= z`iQrt;XA9&v@+gUykTtFc+b66TO4?2lc~#+0n6U;sQ$#0^)ACFNoRQ8l|n!NDOC(TQ*qnN`o$2SO3-)uO2YG>tPwoX8dls9~NJ=yWf|Yu^(37 z{O+2$S6d~Ve<4uUWes$>F??-r&3H@oU!&S>yV%8Z;rILRlv}l`+OVasZhx@VQZC?j z?hm^U!;Uk&dtKlA!>{j9;jqW>Q?<*S{38Ds{ofu{53JkTe#D~V8*XC#qYej8!_L$IyQ?A>BaXaAN%2H;Iq<7l&YU+g9s z;_EXc)R35-m83_otxsD&KOY~!Az2wiEbOz#nb_eJpP6RXTiT|Uh@v?)-lR_&f@el} zq+v9bkQ(uaoiyXHxdq&noEUqZtQ06Enk+*S@m*{{-RMMm;-JFYkis2^{nO0&l(ct@ zB`Yb-IKN|-wtit``~{kpN>P)#5Nm)Cv!>q z2UI z3T?gqN2?7R5N}FRDWW*7R5-}NDsx)J-p?+3F+4FdvqWtmvXhZ!fGx3dR1&8kL!V(Z zjV*aM6FDLSN|nX5jEs`j zQ}lDv(-KO95~#r_mkK4(TgDdUbfcQLQ+gxYs6%6fl2=%dxn2CI(y+S<_L54W@3UD6`TixZXKK75$dV|s zG8R15J6GwM7QA<3!3$A%@4&>j)|YU>6>~I0Da|d!0j_hYw2^~V%wk!Cj3KFL5A_x) z79m;xEotT0SY}8saUa9_1YVaAeUy?j1&7CMR9l8EJF!<{VA>J%HCGU9P8Vac8>*$i@}L5~@Rl%!I4tRxOY$tGh4W<@2fC*un(Tyi?n z^p8E_GnZV6p?Qu+++x{xsg91G9u=RMNnZ*s1#}%RxhLsyj6o@=Md72>bbU&EBCS)vb7t^Vo;#zU>vx}#Bmaq@9cBALYC099J7BX~Cz$LSYH%h$b4ez*BO3 zMq2vV5>iBe$w(Yiaw4dk31{GxkWgX$XjKHK!aA&D=?x&%zr~X-N;HUwyo(NRhtiRR zIcY>v(g=0MDLoO4#i21~OnOXeiz%g7jDAdFrkZC_dL@h*p&y%=s#kryTzaKgomQ1L zF1=F7v4MYQr<0{uf;m3@AFTnez&~09d=TscFkz)~>_1(bQ5bZSOFXE^W{o=RTQDV- z*ym*9ok4FIUD7=jlJPYdO393irqEYK1B&lFW#I^`k`pSNm6UkNogB>sJo+mY?|{7* zo|%^EV5z7$;u4z?XK5Mq>80^tQY1*rx)yU1+MsEyk9SjjLZ zQA-0T)g!rzkWKvP0kQ8}NCCvVYr-bn6@-CesFHxawk*y=_{18w%Nj>Q%hP)16g0{U zzn^oepwd1PVO-Um(~a^^mxBnKH3EB;KF@_P!@VY-dW6@u_}~0f9(i&1C!c<#+4ZQ> z(cCx)zD`boCcmH-C;{bBk4GXgLVENld-4I4T8$yP=M=c*vmy!c(Ik%OxV`2fC&>`+ z?68a4i+G{k;zGud5cX(+J}wP><|eY zUs0(VNuDB1N$e*z2>WTk5gL`M5#RI^572QyMWt$Z=Y(fxr-4a2K=0jS>qusy4h#dH zbWwds2k^eAfPL!h3aKn)lMH$T;=Ljv6tFd5AHcqVeE|~y!vHOS;edI75r8C@NI>Fz z3vRA66yiEVArGOd8&9ny&>5sW&XLaK|6PV!x`M#}O8SFiltleuYVoLG@_vx6D(RUf z=d>pObOTZ~sKN>n)jj8wTmGp=T*F91xQ03G(b*tLlAzkqrPL6-;bGUKvk^ym#^a8t zfj{iB@6qfig~w74nqDZ?gW8|eqdM*+eL6l1A+^-TjLS#873Tb@F^TRaI17QkCz7QkUc zMxrpP5LJ>cWkW7TTu((;m-3Lx_jl5eK{(CP#ZFFrTI%E`18X7@mk;jrG{XpMo6%V# z);3c%81bcSu+*EHe`C+gRotW|_Sn%QEAQ1*grm66s3IEaf5njCI;v z{Gb(=8;v@W)M%`gsIQUG?E4y>>|$*Q5MwUTgN3`tE@RXGxSS*@zQJ@sTpvW{dV zA4*1&+Ili6R|lz^7R#27LQbkDSt+`dU6AUa^p2!FCZr8=(x&WKpT}xYIhXASV^KtXGrx0&@3V8_k#nejdOdB5OXhe19g{k;o^ogPXfwy`7g)&S#YKz)2 zNpjNIFuRMi<5@{NG&!d<`KKC6delSGBS-G@Qe<|fAfF>WLSdt&Jd2Pv#EF8~oK{sj ziejR(;`pG;6vf^rlSW`VKg+5n+$f}iU+JPckfPv74CYo-{2eqn$>MK7Qj~jutpV=? zY5^YrMgcwq91i#ha2y~;kn9BjZh$0{GNSvw8)2?E6yl0QArFB*a>C=>#n59J4eo^9 zXYQA0&S|&&)AdB(>z<99wwJkSbr_yI^U)fLcs)3tV|RTD_$`aukpcMvY05!C$}W=H4%v_b_TLoy7vbWt5hKPm#oijlvdy-5}Y zfTSO%0LhS?27DIq3}6i4SwKDDZ-6xY{2h>FaSo6S3dxM?1%AaVk0ZU{aonKT z4<_W9!#IgEJE1`G%{C%3eiv$cRDu{e3MMP zaMPt6U=AZrIlxGHrXy{r6a8SP=RLl1kR>2-lX6(Sck2+7RE*gio$XhsD$Kzc2BOkM z^-=0db=UwV7eLaLnt*KqYXOoisSOwhSO+j2ur6Q@U_C&R%aee_JYM@0b%jD)S181% zb3Bfwb3D$0uGHazA9i#h%^L_Me=sSB17Fs-j6&i@}hwDB@0GcVKsvAoPV zVBVR+97MWOVWd2HNK160Fzooo$5$BnCp{fL#GeCfxu@S-!%}4GV?1vQWrFps#xH zI9dhZaZr{#tyffDc-4M+ah}n6TKA~o%!w6pc6$x|0+nEk1YWGUZsAu`+|q?t_1PsK z7c_{WYFx*?8Mo4Jpge>_4tJQ7X0%_%K@1KPrR6tdRk>&_$7Y(xmu^TV)cY~(qt=u9 zzO-~hHj9$^LD6irj`eMC#7P(NOw9$US#4aDXveoAj*FW@T-+4$VAE_KcL%?D922)E z#O>bCDrV22Uw}57xvPtrRtxEJ=YW}4xtM1oUOD_y9>O6_igYSw94lGaTd*`zJPF&+ z$kath{3t~@TomDlNaG@;5EmhZJcJ|o%j3QgL(E0O0w))t+j&GoQ%fvD>X3aD9&T;K zNg|9YmIyOTMTTTFym3nx@uL*s2vLOFk;X+xAud7+aS`%35+RRcS}5!2?nA%uKqAcp z)iqG6J#}olXn>b%U^e2E;-fr-Qw?{VL_n}#jSDgMct@?hf@kGm}5vBn!N(6A<&3Q^Z-iS6-peGGDH z6{dnDFX{RKXU!m6u*3nz#Td&B>>&c_xDRgWqM}HwRCZG_@_mSjes2V%zPCvf+h+)K zu~CSNjY1yGDDXJ406dPFh^nx%p70CYqlasTOSTqXffvxo*Hjl^1EkPJZAF*TSgb@` zm_mS*hnRj6cf1n;DrN)tIRfX27ekKR<0sZgvn3}$ath>5fSngWJSq)JW6|l_k2Ee^ z3UT35h%XKDI8s0!rxdPW^#%TM;l5BT;TnqTaFK^qYQn8A3U`lHxD?{Tr4Sb`k0aso zID6s#%QRP4JmLPIYHkBjxO=U_r4Sb`g}88e90`}lDTQ0+UuPDE6-&6|{!fM5NEGfq zt8gjAg-anWTpo8Gzj+*ln{&BM|J?AKv$R!n=>ffGZulKc%Ja(PpKpY@c$H~2Fa?2& zL3sp?);(8yEl+!`wbt{sT=4M^ai@OXtV6u>Z-m~?Q z_WN_=zR3+gku%}MqwxV$2{^=%Mn^;lliE=w5P?cG&5QfSjwRbl5KEUGvXrO2gC=kA;(LrZQw+D4Fav*SGUFvI#^3K*=qUb@Pwpk0vc}P;QMR%;YHg0^i_jq!7mN_6 zM;{;NdEd6;?Y82PXLSp=-L!HqMzvvyv!JUeKS#S^)gu;KGtawY5_|cqj7wZ z#gvuE{LvbSzXNhjD0i^g5{fiT3-}hC({M?X^oe-uGzrsS4f#Uss*IX6=RrcfhWxCg zSRB-%=Sw2ar~1_5)Ilz5?tBcn~lM@DSiYz$1X;0FMDK13V76 z67V~~F91&f{s#C1U~QE9BVb*?UjaJ;o&uz*{SFufcn&Zb@FL(0z{`N^0IvYP3wQ%? zAK+hrq&K$#N#_pZ=3WwoxH+VdhtLpMJg$it@({ADabvA<+pTe*SmR(eX`dJwmO_VB zvIV>o);0SKsOcdhHL?OP1gvZ?!@z?|_=Q2H3 zVuRK-anK6C#;iXZqi&Mn*51r5gFk$%I-eVNIcLJCSODdlUkDCiWi~^v#_y;XW@pKRH7`Og!p7}jWv~;QfXU1L>%?is<`PQC8`KWxTHii zp|3#-C89ipvk7;4QA(sUnshKOtRl{gXz!+lV$x~ zW`t?=;Jn-f@{MtPwIEwoA(9IzD?QYvHleFNl#^uD01(cD&=9aDpf?~XcVj>rYnuRe z2EjlbPVkPa&@S6!H)Tq6Nh`F(fL# zckz`Uy(A~UEcJ(cxNZfxac5a~U``rTmpf_b4$MhI1as2j&ciLaM!r=QrEkUc`vO_2 zoC#+ijUPC-NmYDnsQe{l4sS*QMv_1@dm%fjKnPo9Qrl$)$48n{S{p8)X$DnNVLQ zal9qQ{|$eDdOxSsV`%8!1^-Op7munz&?mC3z!aA9&k2b1;F`$9)KSJ zdIFvRd;*YcZe_qf0c!x#vve=O)_^qug8=a@ifn4Dx`5QqU*qO|pF+IvQ^-Sz1s0DZ zE5PFDlQ`5oOw z@gGH)i=RSV{1oDT2amgn-#m`ZmSKAD$R^7-CFek#8^_&&r6a#XoFkLpA(`H5wx;)a z(G!8`jbffiAJG$m>FtrnOs_bt6({7_9Ph@bu=y7oVc(79rC{=^y@`Z7%mumdD;Q=b zna!IE@av8V^JbW2HgBc~cXNN(Pn*eb{srvda3k|9mPXTm$*!V=@SB*K^Ahsn3Z$Z8 zS!G3EO2Kk~^2ltazz$3}O)}0G--MG)lqS3f`Yg#Q0I&*RARw9W zo`BTng8|7M(*lw^76M2nJQR>jcwfM`0mA^v4T}V%7Vig0raBt1F<=bfQ-A{j>63he z0L_4d0qN6wLjkF+UI3(aK8~B)5DIY{LLqL#c^sK=9>;75-dwnuGr?WRstA89XII%= zEjl9}dx$Gvxmqm2-I;tEL>f*08-J^2HNr#!J=~pdnGo@+Y}>RWXiD zz6<}w?kHa$K_r!h=oq1Lj8eCt{R^7V7Uxz@F3vtRVNR)?^elB2Y4a!BA{UdE!3!|kdX_<j7WiJFA2T1MuB47dFc)34}3VEKF63XV2gf5Tv&w*7$yI7-&$5;G{0j|pPHA$(FIy_Zk8!iq#@{lQ#+O>7 z7w471Dmb1LgrCO>HvP=&19QiI8 z#_B=O5JdK<5;>ojQLhJI4JvdSK1a29Kc@=v^>Xea(15_*fkxI)07APN9<4}nJhgs4 z45>|lM{Q1*a$Sa84dvr}%0s$M-)S6KL_f#=cI;oq2`=2(rlM3Xv76K2U5dT{bzx=` zL<^wm3y@i$f&a2%;I~=PhM_22AUB`_uk%XKB##!uX-LPp5?OrNTXOWb%W6t8BO5^$ z=v^^B2ZJ)naVj9$h-rZ2B)kMj6lVa^WFZeQ8gLfi%Yd^1=K{_JBu3@~lC!V?klK79 zAldyzfM);~1O5TH1duj4E(NR%_y!<34=Vx5R=fpBZMqte^nu0+ZUZR9Z2*NlgucMy zagk!kL$Fxm##rM@c@mPsCn1=9n})DSNPj*F@y7ndzSc=d{)HO!cum>a>d+)aGy#n; zdyrOkylkBH3%5~0HX)f_M@aQX*^X?K+FBFkp}w^hFtZ37g)Pzl zc@ve33VWrpa(n~z--uhfNG8gON<8{H$teMlY)~R#O+Y;$*`Q=Vny91zlE0D)NE4M2 zfa!o4faC)h06zpA3HSq`8PFT$Spd5LW&w5s90y1v(u;uPH;o5;4{#D7wN*ACwKI9E z-1bn2+a3z>i3*RSi3*Q{o#AI8xaXmVc;;5aYyu0xSVE3-&-K{I{APDSO}Cx~O^PRn zk}l=Lt+j|#`ni;c7HGV2>z(M97Kb3q-AD3ssVw`8wiHTR1+4=h4Ohh05wx`R=`FdY zBp>ov(_}uhH0DqnNf+@+?M-F25hJ7F-x2RIfDHj-0lfj^M8A)EA(uOaxZEkkcMtNo z%lOUXn0+6(62FD^U*>A@memQY_F=-Z$>%&p;>}Ea0+h-haa5BVToaq=S*o`p_2{YG z;3uTSs)dOkQP%v^f|ylKj>YZO763um&Pv#)$r=B|Wg%+_%XRd0&iI=66~Pko3xvtz z%i*CjG_m_|i6tQqEOn&FC_ESQltu*1@MxwNeu6Oq8=bSu4NoC1)Gbq38BV<7UhOwf zLg7*c1gxAKEyzJxm@x0v9+6UyP%4u|{waa;iR6P)@we2@4X$ztw(Qu01Z&I|uW z6MjS!eozyRdFNUYTVt&k=>>n7yptg*34ULlR`5(e{c^5S-D;&y4`KGDQ&&y9OGPy22+?b?YbYAaDB!E7Z$dEr}g!#D2H zUUJ*3J*z>)rHXlYs&mneJ=-}eRC$@6Hs--e51V!w`*N^Trd!;`tXeekR++X0X;rpq zFHPH3W$J83tsp1gEjPRX)Ba1-j#-|cJYgfNKr2vycYSj5b^1w*L!=&iSZV?OQs?p#-iEsEWua{d@wfvBkurD*KU(8%Ahe&w zm4RS6UTuU2b=;%_y%a0!l!tJt0j3pU^sw(V zG$TWwl!g;}*~m(Tsa!eLVOP2`_q!Gzc9I1=0Z}@)fYKXC-XMtMM`+^+)#EAL*sm%U zN{%@_q_H42(TML)pssw=NdZ~YG(Gmw$bEY1+B96^strUa)1xK`;}op;taM8h!zT)t zkl=%aKI`&TR(VLj8DcT#mh^icItpqagm{?Sp+f5C`4ps*l@QE z2~mZ(G&Ldaa2gorjP}|T-h8jWK)qDFsO@MVXn@~0#kjdJ_|%N^0et}%07d}53YZSK z5HK5X5#URJO8|+FWq@Y^mjhk_d>xP^_a@+Yl=&85b?~|x&yV>mgJ-p_R^Qc@t`TOJ4)~dYtp7O zzVt;6P3kXQ#1APJNxYOI% ze4bT~PENurB&W)VGoS`Ie2LyPp@pUVf=c;!DnZn$r(bmfQL2t~DVI2=BOy>>?I;hq z#qDv2I}x;aRt~HkvvcxdkW;+m-d&ek@QLZ*E7}TfU1LP{LIHbA`2dLz5-`*amX2RK z@r{KK@RJLaLR_E}@?awbk0ZZ=$5~zE`*}kC`Eqcj=!KjooXCybLrFOiv{TSgh*Qdq z@=)W~!`;t`-0+4Cy>KJRO~<+sTbEqT8uLxSzrBfT~069%E|66 z4XMY<6>63!sE@%97ZioKpeV$TQsZ&E@SDfU1@*5{sDVyoB_6cmx}e6}3W_Y7H*V=t zQz*QL%7&C(K;m+u5SJ5$xI*zbQYao*`f^g!DS5{m>_kp{J+^p#Z?>(d>~u;^RwqSS zeGWNrSy70~ib7nccpS-z$JxoM2L|$j>iKu7I_iH^w%mFs``;*}J2O%VPGlv%D(|{Z z?XVS;D>~&Pj*hg}#^ppIE+-0co#Jt%Q#{TpCv56>&#RVO)!7n9U1TE>NrRJ8M9Yw- z6cObiJ5JI`b|RvvER&ud=ZP;u$y)+BrAuvfL(Rz`51V{8=6JB3?P|*!#2eXqDy)rI z#8A=ccmWU({RAB#u{}%_FO7p-ycFW%rH}_ZJdDQ`;5Uzhcqd<;fuAdJ^OcQRv&LXB zI8VQE@FS*)URYqRiish1@yU{Grhi@_F9-#=%d-J-6GC1>NBrH)LQrleleAEz5)aa_ zPt8VEqH5D5?F{Y!#mGW=2&W5fQ(?0Ov(x4kk6i!7~IGXHXY#l_(AI4JalaNoM7nvcHKgip1SE^F36Ny)0U)vXK5pLp6ynWKArGM`20|X!LJYB8t89&9=;!Kd zhD4Drk_KJWGUNeEEwdD1<=#iiLpYSjtZbPWy`?AK!w5GfWu@y2+Xbj<7kZP_c?zmy zMV4p71ekXo3-Tm~(FfR~^~riVE?RGnHHt`9iORir;*BIK_u@Z>O{%@SDd~?eYW`3`j16g_<>|&Uuu)dU-NGokIb%l!RUwd>HV_4gb98h$b-spj;*%eDRa+}%m@ zJB~Uzc*vt$9&a4}zUNyD4B6jJZF=eEk!7Ft`|hv5y1(?^VC@$xzIpnsUq1NIJ+5-( z+8(DTs^&c(52>mPj;IB;po$^ zK8V=%V#m|fLqooA^q|AVft#;xm=`y@Rr%L`-hVM=OJvtt32lB&TJ=TK&=w<`_|!|w ze!t2(f#dT zzgX7)jn&o8n0ifbUo&9o?j}2$57#cOKdAq4!&CJazuHRIuG#s|YvnhoaQlbf`uMe) zl^r{A|F2sbY$MCy^|l!9as0g zQ{^^Hy0bWaB2i+>D-{;2Pw>Nor`}?Ks5jN9V>6Hn%!W_$(c*nhYi_xr_$kTHU9P(^GvT_<{daTXvM;FZ)W=^J`7oT z=G$+^uDf?+@E;=++8_P+a{kS$fz`en*=?R?{i|NFJ{y0&u_9=_rSeyo7AAam@`bbe zE038uV)5n6hvQE7y?OqK!DCgOX7^sovuJ!?+1B8ly`8>ItTpZU&!_8bmC~bY_`a~G z`~jWxJG{(=mB03$Kjm7B9}mR;mHPJn+20S|80p^qj^_S^s+Z>MwUJT>!FgY74~-HeTH(rbUX=lbophgHuS zF?HUoiXlIt8?Y+?9{|s6o0fEIbU8O#zSIZ-$@+LpTOXgfZf@CP%qU}e+l(Yybr5(= z+a!}d(K1R;B&bJe+^FB$UTxWDSDVIAEalX=?T)m?z>a?tKByJXV~K*st-KONXd2V2 zeU~m>{3wCpP)r9OA0L0}<2vXsP9=upBctPCM~96HZs8(7Lt5?_ZBOS3MyHL8j;9?R7;o@H zzAjy>D?OKFPp1k}G;XmnI+g9{RAo3ce$n;P3kw45>5zM+aZ8ucscJ_D!xC_&;4fXr z;`;8er$d9F#w|%kr@9>-@*6a6Gl>YU`t1+wv!_!NDYotIWk&}d1#spN5nSUpIDfV>8J=M5*$?8?djt(u4Xjs1>I=jEUk!ero zNrrO`eL4V|(cqU#c8aFwe`gU~4XVSP)ix5BQGrtS4r$e>YxE0{9 z#7{#zI^GP2nHhw3Pk-+J@%9~XQ61geOHmL|K(WTM8te_bVgqEYGzFq28bpeqG-0vD zjv5g)rWm_Pj7Fm|u|AinVb?vK0AaPFCN zXXczaQ|{ckgH7es7d)K}%13P?r-9(nrKhXkhf7W6ye@b$@vBQu0~0x}f`=u*e0BZf z+9Ojr4F!+2L3&(Gk9IZbYbvLyiJT@Ta+(#A z^Sz}Of{pdgr}l-@)67Ip3&Ha%@=i}QscXa&o2DZX1!`(zqH&CrCxUPixinZB{%4D3L?t;fKU)@aP^bkC(WjqFd?_#FDbF^HzoO_ta z@en+G+{IQi_-Nc@)AV=>o;>7>Ei?}g6FFX>T3OHo^H??72?|7nLiW=O|6?x#WLIZD zUM6z91rIgLWB3iHSW`I~T(J^+u;}D?o5<-cc<7~hRMhU7X)31=u2@-I#IH_HZxcCi zHwO7?9MkxTshoa-2OTxNoW3S<`U{@o(}OOWQF{8D$nhzG9ACj>m>wS!IevxYH2W%U zsA;}n;zsH5Gm#S@c-VsTc(2*=@uv1O5LXJf?*S%q1_>UPBzwShD}MgAsT{VFRu;ny z>}QaPoFKs?d>BHL95pjcxuwVI@oRlCvh4qSuwVv{(Bw*G> z7wdh6QeIE_L7~*pQ~p&b-g-(k3rVuoQ#=$(Ej@+(NFKHIlw}H~x1O?3p{VtgOoh@{ zPpQP}iNirpaaSmH^^{13VyCApP$&)blpPACzn*eIp;XdSxXglwkDk&*p;XpW-cTq` zdP=H7anV!0RVa=0l)n{96FsFW4G2dwJw>BXT=kS>h2p2DELAAg^pt}NB|uNfQYapJ zN?pZqw9r$$6-rw@Wwb(RrKc=ZDDCx>?Fz+BPr0H{I_fFq*udlHrl&MlDDHa75QXBU zr=%#99(u|)g`(0^P8OoH!gyIbGDh6%4g6YJDC$%VU4EphtZ^aW!H~LuM`ajmu!yA; zmTLUQJ)LEHVHivBi1-)ucc%wZ`WvjqV!;jCT)}1d(<&@#OcG{ddBANUg-3Ns6g2+a zfz*(qXK_8+y6G;PP9=JDR`u-ZX7rgR508PK8jm4ws(KpD3VWDi4Di(8&n>`H1p0d* zn(n(I9=eTaO(O<+4iJYSyV#`m<#8AVk6pls?N?1D5A@RXXW9)CVU|y%pipuluqdHq zHs(!uDKk?k9%jEhm0&B1Rex_GPI>J6a)}9Q3e?1-9v1( zXqpg(wGb~@u~T62F$`sszhnDX;>Uh&uf&gSAz#kVA{Wm=a6V7OWCPWl8eHd%DiSN>h)pM~9mVm1yJTWC#EBRlhSTHxpFOP0jtm(b*dfDkYJgWRV!VJ2 zzErzHBp=&k50#Ub;j}cbaFBRh;o<*0)J_2-jQOS@JvYG@7Ako-fH%k23w+zb^LV7> z>kgyH1`rQ=eRys6;(7(6Z!QXV@p=Hz*S-VHoc6+R@xEMF}Y#9Z*K871X$ zpe^LdCvr%UJZvGrH42kO(ei&az(eKXVfdJVSJ+>Q8O>0^;h}Q#FfKn%XC)f(DfbuflepY; zCh9Lv9!Rd)`{wdO3hZ?jx#T39x%+MbUys?)@f^ullpXMP>UU8uaq=Lax%^VzFW{M# zD%c9_*{J+DX}%LY=M}!9@}b6sKf&{SUh(oC;&SUWY(zG{fX`g|&OlxucwWa;G!Gk` z=E`Ly^brl7a?0F5(Dx%(ajpYum}t@UHcr!QwC`>PE;n3vort)8KN2weW2?c@!nj8yALvXXQG{S5*4?;_@l*RQp2m6(x`PRfA{5 z`r_sNiOU~=Cw@Z#pE)~S33;D^r~AeNK68F33YX&*9?6MxuwPxIjfdnAwU*PMP^K%NGCW0@fwMb!_wv(LfPeV;5olv@)aeo3Gem2{+iqh{8$ZGFJWMsPw&w%i9zl$!T66;gIL>BUViQRJ^=fxV%Q;DNf!j$V)wlheC&om)8hqTY6rSSbvHaG7uL3(-IEvDT8?JR# zcmyMU%-M?y^2UH~%qhvGmuKWB*?(RIo~@^i_>9`snz(#j;gOu??@M`k;Bz`#ygYAQ z_5#lwg|8^TF%0s)29MqO;^jHuayNxXa+*({1LXAuU(hc`@(d=_d4=u39EC@6;b= zO;E@n&mc`mFMq$FLH<4=8b41jAC0Q5!faVAv#;ln5HC+Z@4@}NgZipkDsilfjpH5I zD5$lH}tCC_pYeH;f2&y7hvl?>KFe%tl z=C2TUVnpQl#LxtD>{e#j6XK~9vuUw5VGl1RE#=H`7m=2ENP2lQ>}JyPx>EGk(+{nx zJwq5#NN>M4LgFJMlOnVsBSVw$-e_$-6E@PZC}2uRjE;?f7qfBZYyCBpJNAx=57oj~ zh4AC9Ay7cHHmO@AiLi$dUsz>yQc`FLzSWtek84|^xS9zG@o^DxNEYLIEBBpNqPU8g zBWhe|;>3^$MHF6lmZ?`wpQ&W5_~b{&v9_3q(G^0;5@V2&&?LNYE0a*KL>UQ0O$d=+ z#psO)rT}1V%+iY9qo!=%XME<BN+zg?`lZWE3DaYc8C0;&N-BDmtRxI-ST`kR`;x`f-?pHBz6)QRZ&RYY>thQW zqD?ch9qSm5dL>JO*^1_4B+Id6vWlo}{(5PsAvlV4-UT*Nbd{r(Fsl`&3wgy?I|G3x z^=^Ps%Cd{Ad!~XSbnS~!Ktl){k5pNyf&$Rl^6~NV>@^@HU{F8*LH&Y;hV=6jJxy$? zVC$?!y3x$HYa7CyVQrn0@qe<8V6PB@`}qZ-DYX?sL(It(vKTip30uNKmJ_%e;D7JI z{)4E_!htblDYVvXB`S`mTM1B%SPFJ;ebm9N-|G zZ8~CAo2_#K@6@ZW=OB?1zWLX;pC9|cy);4y6APm$R24(aG+)oddETi-eBnl4AKN@cpD~zZ)^rInWBK0sBxhoG0}J*l!;K| zzFtFvG}vm!R`l9rWz%&AvFESs0#?OkES{C7ABV@m3ED)YlqJf1j7QS(FD2^A34<(K z=jVpG4ha!S5GCR3?;VVR5B1Nii*m%8D$1kI0{gwG2?@e0lD4AjJ18O{CKRtl_KHvJ z8=i>Wb|Mm^!@MIRqvJ4eVHw1}=|5)h#? zMuAdsu#Z5`-kK1f09uMJnZlHiOqK=>senrulpV;lX4)!KCBzB~paA~oi)HGph-(0G7R7U77am*ZXQpMREEH?6NMc3*w`eXQC9BBmZU$2R zE}Bb7xmeWoHf;=~oG+S7RN50oUDp*2-OZ6AnS_iVi@MxFNeE@^E0Rf750~qkmVPh) zfT0@9z6=%hjNYm*+-0y&kf@YZ@IRd;Dmg0}{fh8S!nLtdvIYyzWL`o|hlR0uuqqEh znBVZxAgZnz<8{$qu>RL)r425q@QSBEe7a4zd-{#eqOs7sMB%rEQxuW)|MKQaGsk=B zQZ24C-E4{Eop|RejI88}|0{PEDdW8pz%6_WFbC%r$b+v}sjY6;nR4H^!LeBj+c>Q~ z6w>zU`wNan^!cz?>gcTHI|J_zM4|%)-^I$B%R8QQ@~B(a<=+LbCCywsb4{N+?b|F& zp5*XkzWqO=4Gm%l@{})dyg$wcZ~A*^{7kOr133A z1thmKn#Z|OI6Y?d1_CCpG#b!Zl#s4qxy4DE_&EuiDskp)O6k zR?d1lW~2Izem}T%w;uW7^>WK5s;8dWzVqZUtP~b}J?l-q|KGWU58mx}ba^xNM<;&z zcW%?I7t@zKKBY~$bFPUGww}W@tJRnC>!+#HvvK-!?X>6D zGuCgYnu7h~1>X$Y7dz%ynV6DU+u@=E&pIfljY@SAH}{Tf^S{L zN{>$8jt%SYd4Ks5?Mj!i5xEgDSMCje)b&T7d4E)feyhWF)K+zFpRD)q)*Gk3oE#A{ z<*O0Zqt9kesr}*hfe&JP4$P_=jS1c;!8f^Q#3xI)KhVx=GvGJR@&^Ycx97fvx$JF%&-Ty!*;&&cG_M-fY40ijk3X9J;?wKRY%l#aIeql0;hn7UQwe2ZFC&-Oi^cZMyHZ_o3DI_w85y)ull% zRk-*5bNBkZ5!)fiD_5oZOYj}}Yfs0xO_3WMFZ4a<)^SPbie0_$TubxFZ;|rt%}cf4 z>Wun=`mVO>vM?vN@ua$c47pMJ?V0T|FW=H?8thrPbk!oi50}+y=z~^!zToS-yvfsr z9=#5?o^_|$d(WFa-SXw$-(4~uH?8+w#!uZhI)8~}41#ZX=$V~Ke%UE4+{*V=WuAGh zXXSINT#s(uZ?iq?`mSaly20*kcwg&s9kwnX(a104=8}4ow{|<=`hE3H_czWvS^tLr z@F_1Az-`SEe5)!pthwRFkP6>jp7g~hd-mS=v)bSvzCZk|>f+zRPdffRzBe8Z3%)N; z+kQXG=ChBTJY9d?e9dj4+ON;~hRshlJ6F-Mey3U8M`AgeE$@3|^zL>@;o+b-(xCebDvVjz=`CN6+897o z;C=gTZL)Mn^V5NU=RQlm`A4ncJ)cebq>Ep`m39L&X8QI|^TH!Z!RKJxyXU?)U*9mN z)!^vWt=;}~IoW;3+6q=T^1kfSZ16`dzs93g!8dx(xI25ZMozu-$GS~T-F#QK&bhnl zvxw(2zN|28c0G?b;S2HwUvHnj8m~7pYK1QxfBpQU@jtKIuL?|`RBdnK`3AFA^iPV% zBQQSdu-cIESXFz%0QcWt?C=Tweaw(UNs$MWQd(@-c4v6TknuYbu&hb&t$cF(>d)T} zo7|!9yZLV}y*_eh{vQKtx2v#eWzLw9TP~eKJ~9QL?f#WbhuzM_}+5 zrT*X@A2@lr{d2Vbvo-Kn9qoDFWzT0k?d=)xC_3z?z29tH{IqMz|b5nw+wiSIq& zcjpK`)luztGd^=|b>r@jbw}SG9erVALS)OC4*xvcbo$Qh6;>#h-vr;1IyG&2cRAj% z%77g<>BLA~D_T(j-o6aBCh(~H6lj_=XOB z+C5#SQvD?OmhNnJ=$Y61AJ?v#^(cMYP0t;jo?5Ge9;}Po|GeVev00yCc?`;0ZRH($ zy=T+E)m_>>KfmUD)@RqAv>4^nV)eadyS`ul^Q_%F;WI)6U*ZKPpINhdTPFqHidg4) zb$WA+(~be$%?oo`>ap!z`xT z9((Y~=XF}*aX8vcwUyI{QEjZBPM*J{;oersT`sR_+~D&3H)@=mHS*otnmJ21y}%Md z!8bqMC2QGRcjpcFcl3*F+IG(8vm+C7KbbvuW$PKsa;;9mPB#d?zjG}gHd%Y)n@ihl zKk~iZZGijVX9nG^x4z|jBQDvze(2ss^mhbb<3)apDs3^P&Iq%lM^-3emjH0a7RujiGXf%DvBAe7%-_;CiIb;4U&qe2)?VUgQ@W=H(&22vX zZ}c|=-`J_=zD%~%*bddmi4W85%qSOJvX&Q(KikzR5kHO8Mu%S0Am~(BrM| zTCKe>r`z+$uwZS6#;2FvI}E!Qd=E3;pH;iZi`F%!-Lm@h(Z~}wgO1I-Ilq0!rCZ_- zPh0UR{J~+t_nG~H-lMi}ywurl%=9a>dw#P2a<{|p9~<0xMb}Y7AJpU+p@s|Zd)RNm z)A(}J{@Q1)-9K*FefO(VuJ>J^7P&3-%tD$dw>YO(;KdjjNRiLwQR}7yx-m${w!zTKMOKeUAU1s zW8A8~XCu~Nc>wOMwhFoPEb-a(_a?l!*SyPXUaRZ%s`ho%n)kwTydnlPskf(pJuJr% zeEXY3jjIzEU)dr4@UE;cGg8m28nl1n`+32u`i%Xh-r8>Ku@p}5_4#*6v&zob*L~G? z>w902`L&TdA=fVwc8_s{P@LXXZbB_D~w#+xcRZ0c^$g>SN+7{%Fp&8wU&=<-a0?v z+n(_Eg742AxodZ<-(J!G!O$+Ak3N_-EPHC zZglUX$eFcWL!XUJnDpbdk78_w!5;`dx1dVfhi{yCWZm(lh?*ZQ*#zT+VHwhXdj?zv})Sf^^JzkIKFeU^X^l(QICEWd{f5m${6_bp;o6pPQUfutz~=jtZr>n zA5YDk`_AOgDm_?>`cbnc?>nGk*YwVJHZA!1PmcpzD?EC!_V~GD-+b_!yU%00g_oaI za>vY};G5rJRm=QT-=O#&r_R0jDD2AGnFI0pFXr9>1fAiD`u|>Zun$M-;1lyt$BuWekSg1bHwN{NCUxZ_uXu-GidMEYMtoQ!9XuIj72hO|O4YyzOyg~1En>V>{ zYLO9a^}9;-hv0i>l4ZvJpRSB-T5su3muD=05dXoyAK8w3&$ZT=L))vCzu6s2;A``~ zDK%^&$3I&$?#4&=ep;)$?#9pAuw;MUddp3x zKC8WCLW{XWMy$rtE7+>q>b<_@n|*P?=D_^0i_dyQzwvLI`tRIwTh;liL0txZGw^s@ zSL|0N_})zqvpX>5;Jt|x9v=MTtDG8-_dWIbuJ^U^#}fm_+y8>@m1>*dOM7>9<+fF7 zA6cjjBZC9H{fyzZ~VM`(7MmjwzaOy^hKOF6aAunhnnlN$}c_f&71L7b02(D!+!CKnPV3< zU)pWUGJGdY@b&)gjSf#9XrIS+X)`AAlirnfS#H_yuxWs*=JTT!0@|d%gK`mkhbvW? zIxTnh%qOh^UT7Ej4^9eb+2E52ulsFq-`i;J<4p8p9pH=9R{Pi4ob_+zVcEUC&v(6! z|32?wZ06c&T^&QdiuP4E99s+a{I=lpyHRc1IX}(mL+6M6y}fU{odeoGU*2W$U*FSpso%=QwL>vZ7JTn% zuLY%!_~`Swe$mO#UAOn^+xuuO@HZn_Japa zhnA}|^5BBOSe`HVKK`YC&DwqmIrTH$7G{rs_T}*f^(;@Ua-7#a>Ex&R2eu=>8q^WB z)wN#RRt{OR|L8i^@AW@v6gAuTn!Eqf83%VnwZGx9?b96eb-xmPHEZqe(bn$mC6!Fi7kj3|^iMwx{<_(BE5~$7 z`FqXn&F_q~z8rfOd|JWx;YweRj)y}2Yx`}D3WEpTUO1=P!il#($UU`f#ydx9x7jfZ zucipTBjMTO8b$QKl-4!zwaah5X?u80gYuD>o^7T6J8|RqXW>u%= zBX-+)cK$THPXEh|I)Ad*p?viv&#Hw^f3W0ZEPEDwO`pXMSa;nyBWnDJmFmy-^*em> zS(4)$e>$!V{KB=i$0oE3{N$C|s_vI-t~ZN+xODSG>rjUyPEC$|xizuN^1&;=w5we4 zwOU!|lZ-}PQd_C*`~CROxiLq+Y_;mYuCpc|uDq?&l}AUK*7;;noi01p{oM+$UkJVj zKCvt3-qhy#ggSL=dnh4jSLJPAt$+W1vyqu^dxmsb4_mH>zP8$GvbOS-fYv+jbaD9j z!q2(o)~saxSrZuko-K`eu=XvyPpA=|ycFZ63k8X7T^Q-lL9BUA%L3?R| zwnlB${O`AhH=39+yw;};XJ-zm?6NRv&e)T;PPF-~%FfNt-DmpZ8H?c4*c|BhsdXoZ zjOwFKd~!Z-_NnWwC!UD*~(A&T8ZG)QN2OBg7B*tSQQ>?l-7P}>> zn@s53vFWhE(Q)DN@aOqVnk?o z0#-hSCPZTuORK0-Nlc0gO^gU1hUY_gnh~E^N@+|VR?SSpLKdX1^uolF(K3(}mZ%*T zhG#3lknv$$x??77!wS|Vz7d_292%nz)Fy{V#}8}k*0$|1tWAtfj>FrR!`|pMEC|J) zG|V>;!8Yw%wR6K?C$|p6q7|J@z(YEG>7pzY!v}mZSbAY5y{}?8ikio0W10CRGt$Z~ z_hDs_`($cN$}yAHSIId{GA=YWA}ImSC(FQ+Vp&y^#)XwKRf;|m;uDarF{KoSEb3kj z#*((O$z^nWnYb4uZFKy|GAVZm8JirDII(RhOG_zwJP=O`jWp*6UeUS|665jYJ1HV= zoSB4`U9H0Bb=zP&)7bd9Qn?kqLP}eV5EMRg6c=RwpJp3AAT)85nOnSymI@jihNla{X96X6WJ*DXq#74x%Cr&JVB~wzCgw=y+cCg6RTs!e9 zwQJ+T67e-T3>re>BF5uo9qc_(${Z;AF4A`XkJ4VsRKw<#o zOV%T0&zR7J1o#fT359W9=~Id!Xbg2$WEsCoE1~EsAt{P|;ZpZYSf})3J?TbDpJ9CT zAtrQOS@>O}WRva2^S{Fp{*I~Rqjc^Hh_T>tx3>`?Sp z;=-az-;shO*}W?prO-Ks#o~J=r7bdLRL!nkDNRM!rfL(*Vi09mCuC=~l*!XgA4JEO zg&>_bLDIq!CWe%W7IZSlV}MgOsT8Y`%QCwnWqjE(GP<^R zuRh@ogG9NAzLe9g7^B6N(bz(1;5wIyj*6JWd_{j31$~&;$SVmlsK2GnoM_A9VoF`d zFgt-4Ba}W$=@W$xPg1)>mlhXgyC*XC@(#sQ$VN`e-JXBJep~%GeSd5BFn@^E0Xt?xpbi+UKfG?@^Mhwd< zy2X7ZUFz~!)U%^k7nT@N23-o+I$mcF$F8hp@vO1n!D>vzsL(LZRqDOw|1w(~niShg znJa$v=*q|VN;xSc^v0*kr8iE@<3`6t@}W@aWuZ@niNaFKQCu`+Ax)8?vC%OTODPfc zB{pnA>4hL~iFjgAN$kF}MX4GQCGARww|&`^L{j*e@bEF_ z4X5miU?R4XNy4Bf(cEN8+1(~$LRf;io<-T+VZxY*iDI8Aq`8(Hc`#bDHkUCTog!%E%f6zyGH zgm!#sS5)YnZ(Lj%xpBo6wlQM?uikk|#>Q5q7gR7RDfN^)JDMZ$=&wwA2VAWao)Dc- z#8lC%6qlk#?3xu95mOcqCKZ94*3~A3LkF%wZfe(vkqPSVfanA@|8K8uu6|n(Kqo=| zlO+G?jH}(%|8qpOYg^nALfdpyw-l1Gq!7z$#rNyVt9+b0;Qf(@miR^%X!fedN=STz zdtj<>UYdqqxQ|S8j>I?aEz|zyC%N%;_LQt9slGY*_&q8<}dk#qu`RzpK)G9a4R>(}J^8gD<9O zvQvJrOx0vl;)3ApK{^R@HTjM^HTfx-mJn*|xXW38g|ZiDa#J;#X}+0h&gpmTQm*w( zxn`-Ya71&X1?1ngK>!P8@frFXDH%P}GwcN8jBEK;`T6!|(lnW=PHDauBh!MBC}bxa zcW@Xu+ERCG$6esbNe!^wVtKa(bCLekcE-~K5SUz%#h7xCy^(7$-A4`)} zf8ume`Qi7G2u0)fu?S7U?_VNBfmrqqJ{F3kxkD9rH3qaKger)TPMO&z%B+ONs{i4o zdZ^S|Q7N*Lt?2MZn(vK)X~DKAI2|bynMGNo+CnE#Z>9lvMw)NNK;}-*E_JBMo&5uJ z=nEZ+;(`u0AX%ePxX=poE`@^|=HZYUoRy}@ibPRH@-A5^KUzvss^%h8oRV&t>YJ4o zoH=NLCQE;J==zA}vMK`^+3A~~a@!KgzHFEd*fG?llZli&1W;Y_&W^i|(w6#DT?Q(V z7o|$tBE?rkVQTOzRWbr0sS+(h88}^3YxE(iLn%N+d{GViz&%u88RMhl z`T0_}tb0n~3%}eMattc9Fc*!jK_>FRKjW%ux+-_ZQ}AXdSCuujfamsausz9zbP29I zX1KN(aJ>**xn{VyRf8hSLvVRyI?g_Y8^c7=Sg6z%S`T?0dV&=E(x3C1qsTOVndw~P zOiS(DZbtc!MR5)MQMp9g_T5!$o5a%CmXwSz{lZN>qtrbzq=ED zkQ-5bSj0-CeT-x*iH4`-23dq8Rc5lcOw*#<-BqeZx9Q!OFqKm#3(6@oxw3Jg-wiju z*XEA!+UP zp>Fz+H$qGsI(7JE>dWIJqq-Qw^r3KlC`KRB>O+(Dp;`LSe0}I6eQ2dVv{oPbN*~&R zkOR*0s(t#3Q7`3%UCGc5{7;>fS7qUsrCMHiO&QA5(-6P`uPM8!@QgfA z*^YQxi%@Xh5iemZs46i2pGc+Cb>&s%Xbu$I%KxVt%MYHA#%h8WAXQ$fJ~~?wT#Q3w z1gpwTXEiE|LOXW3yBGQwMp4pz99amIXe)Lp%cA(aBe0=hHN`F)fQq+Rw28@K+GxB`pf^u`V@!82 z%`8>=JJwPj<6wTw$9N!p(;9OubFcmltxB&PG@IBy0;8NfT z;Bw%vz*RuJo2vQ@NUf{^mP4982UY^E1HKOY63FkmZ36Op65jx0f!l#of!_jG19t)0 zx7h>y5%@juEbs^5b>KnZL*OAGKd62TNF5yqvgqieq_r?4t%V^wy$7=w-$#=)(c{Bl z72^-5=Iom0VSr-W#W!zUCC8n?ws2d`e?)(q1I}CsQE{Bh+UQ``&fLMlH1OnMY-fLf z*2~Dw7>D|4kMs2+?W|X5OjvRZmPcstQc0*VHQh}R&+t%8EyvK*s_RS*j7h@Md?MmT zX`|3Y8QEK)HZ)O-UH|RH=4pB})Wn73p3+0o60xogJ8ENB?f5uFlHMLW8zhE#qdl^o zwNU8Y?WH~T0J4qg31r?qfXotlkBa^nlKNxFPNf^2*`wDg`3&5oL&^`<7=<-InwBnm zS-hvQx1?JpT~|wuz2#@P*4s!wj6-kfg46Eh`tgex?;R1Nl`7)BOb@e;vyeAXHsdq( z2BMVZILpwRGL6RGw49yvrsaW5yA6=#`!J&nowMQ!mrlgnsBjsFh0Dgh!pjR+DVL&K@|PE_k)x#rh6{b^4cM??nLgu!MM+I( znk|4#x200BG&WhV49S9J$WE1kUrA#TOPX*zwdGI~!$UcS$i(A9>%3K z-SHCwwQ(BOSb9qu8t=`SO;01EVjS}9$H}dJG z8c9pgH{ERU=`anOZhF@npwss70)=!JBxWhZ_?U1>8Ek8#q z`VE;NY9TVxCpvD7>>tR|USyCfmJJP>{rp)9eTakf$U}kbAz(|v>FnqZ1G0xO9M~H; z0_Xz_1%?1e0>=TvfRlj{!1=&PAn!RE_$e?JxEB})q)y_2^h6hM$_m4ftS}7OsrVfq zNgJVr%=hcOz)j02$~sQq+E63wU>sUUH=IpMU>%wXSY94CD#Aa}J5(ErcmDY1C|1B> z)7+PL_zI0EN@q3nPpmtAaq14{h1%r!ocZDLpVGcQQ`*-Tz}I;JrQQNy4J2CNEJf*;l@N@(tJ;#U<&5OQZ+Z& zHTAv0N%`C~FYA;{Yd+=Sbah7RKx;lJIckAN0I3%8dcf#PqODO%C@Q-T`udo**Aeuj}i>e_)vQZJAb`-RkpvgvRF+%db zzan&3T)m0Vzao^2kc`{fQa51+Un^p`0(A#JuG<;^6yUh?tnrxQO`VBxR7vyP7#lH^^i=(*RNpTdJxmE9y-gtk8TGfTJdwAaLia5srzE z8zr03KrG-FBZrH)WYV@>R)~e#Ha2)KZQGjRZfC$K8ob~*JOdBM`vUQCp)vBlYyfqm zVm6MyfR}q|k4y~3n?Y^bpeZbmflfhASg#V08yw_6VJ>BCpN&(-2G*q2Jqn^>t6N^Q zytG>nc?)qL>Ya|dA^vNx&=cW+X$wg}x>+rd1)L0|gB}O;2aX3022KJF2fhPL08R#` z0H**`fzyD@8roLT>@EWC!T%otj{#Qze+RAxW&zg#Y4M)}`61kO!0Nyaz_!3IfqV@1 z6|gVxYv6F;Rv?RS2XGt^yNymy1?~c_1nvf|1?~YJ1nvj^4m<$71H{;QdO4KGPrwSm z6F^Q}oC3ZMJO^a`I1gku;UZ4iKrtj6D2D7*HjpN1_DaZ3#i;^GW8Ic~ogq!qx+x*^ z-3d-lG=b!zYV;;t4>YRLj6*GU2R1CWM)xu{T>nIWZB#^}(vjee%^XUlW{*!lHTh~C ziTaRQRHf!a<)-qkFR9cSNPtPD*7afwRcclfYt;vw0 z-ub{;_5sR7n^tKy%OA22g!i-BNDx{nwGqC1h7*4H}asuli4XQO#KE~a`~?}2nx z`Ze@+oE&#LIHf%v3KU6G!!jlf+kLz zI1$TBx;W23JRS|I@gswH@*%oj8zfQuvOHLM=mb_O^gl4?$}+;n&(k@d`X{gv@Gl_! zSq88T@G7u7@CJ~T=q8X&*ezfx@HX%RU>0yG@E&jt@E;)4kPX}pd-jq{fbjo3Wj8*V8~9@5gL{>F2Iqr06mSJL`gGeJyRip)vrBS|3skTLSieXdF~&As5cp#?XaxB9boL64t@jH#!S5 z(mQ%NX{>j-Q3i=;InZkCfWs8}O}H?Y%`G6EQYNq_@D8vk@GejTd{1-@<`v^D= z_!!7?eFCJ`tKyVeXGm(DAv+bjEt2M=gp?7iT+gGdMA6TAVfqcu2_qogd>KY~oK-8B zdc!}uYuO8ebH&0ZuBXZ3Dm4cz8^fw6uAP%i@S)9pGgEF`7oIm`^YZ|w3%)4?+ZQ1= zH8~>Wh2KXa#5~^@A#+wa6IY6}%JOEcl5tq_9Aq^wsZ}b2j^eGd3@18DY?btFw8~0~ zRTgQK!j~CZCCkCsDt|+FlVx)ONUOXEWQ%eM*b?{$upjVGpg-^ma18J&a1!u3kmY&< zNUQuEr?g6jq*XE`ty0oxm6BF4&tAyh-`VFV~DbhN)LIW{$Pc{mTX7)8s<6bM{ zkcXz&vUo#4b@z-57oWNEO~wu)2{94;e^8*9{^E_z9Ol}(lJ!~(8Xq?UxlAt=W(9Or z=#Fsu%!4zK`KYWk0({6O3!Wia@C@0BQN5(Gs!5uz7o>Dgbn`39gqB=}B$iSZOn2Sh zf!K1wOI1%SD59#S9SuIUS)$TSWcT{Pvb%*6566Old8%4PIUkxgYzO&(fvVp z3+rXg(lAr+Zn6%kiI`i;4tUyKl^u|anHb;PBNnI^`NoT!jAvq6BZbngf)S!2x~RU_ z(=zoTbMEIMuF}j6t&Y`)ytFzxt^r14CB`977S0wWwz@z}w&D}dFYj5gTk}7Rk#yZ7 z!Im|t40Gw>sYehcn_WsnJ^OT7o= z^z1*t&cKI2x|tl{+rTHlc;J7)>A+{eIlw&Na^Q2|*T5IRZ9q%Zf`h>F!1F*G;ANma zkmc?Gq~0#^ns`XVkgO#P*{Lkylq8K!h@`pcX`H=~G?anKoY)jxZ322xRxtzD`x;pV z#|Fj*$X)6w6 zD?_0Ei4c40>|*Ul4@S;q3H#Fx#0z!U*bEwW*l4IG4~aMrCJj|Ih!;irApJ&v;BcT1kezy8;B25jZ~<^2a0ze_a5XR#xE44P zxE&Y)JPaHSyb2rxyakK_HbA;!fh~Xuz&^mSzyZKyU>I-$a1?MdkTx_0NDJpFEu0}~ z;SAZ~3)Awdy~+ywlE#@T$#+yw6Kz8i@vuX`{?+jD#l;1|7gK|?x#Zq9{kBueRmYU4 zj#|?Ny341Ox*<*pm1O6JXa-anfi{*0;Yx41sAvj;ifsn3elkMjP=VSHD+~EAX ze;?6gp^?7Lh4Z^1NOeBL9*<1KI_R_tU>9TV^VjV0=7w0BkH@%JLaof%WBGWYhXfgX zNPvO+ZLHG2!I8M;MyeNP_%mi)#fP)Od_y!rdLF#^0iMf}2YJM@eLcfKCK?@Hc9CVf ziKW@>2wSIIvlzt3Cb$3syT#%^!-O$z%6~Rfs+e54>ue%-v;}i-dcV=)b%KGT9Zh36 zjIJo+EHHR@bVP$TZGUE=lFSsV(X$JeWM*oxSk`Zt;5~evY@|8yWQq^TvC?1nj06wK zVLD&QE(mqVa?X)M0i+uGXu3?0^VOgyg(cz}r(*paJz-r860`>2M`dr6uGH9Tvc)JgQ%MI;H_Urs z?`K1|T??1!dBvsVq$tB{1w8`8=Kw52`q_pMrh5)h6)iH$wHlBOKy_e!U=3hn;A_B6 zz}i3`U_GEOumdm<*bz7i*agS|i97HeU{~NQU^gIp3_XGL#~wiXVNW3auNROrlYM}{ z0Q&-IVf}z?=zM`~fP;X1F#iTH0yr4R`Trrn3BWgjd=Bt7@H1d2a4#?dcm@~+ya0>_ zW&%e8p99ALE23QDfc1f6ft;sL1k%=$fb`7l#YlfH`ZHoWfgwB9EJ%^Gxk||V{QhHb zvxO_FcjAKBen!0$#-Vmtml_po^}$#NYV>GI>7($TW{&@Tki;_B+a`^lsFar1!kXCyLm<&7&oCrJyoCZ7&Tnsz`Tmd`<+yun8^`?IdJPZ5|_$!cp z^$*}_;9o%c(<{LHz-vJ2@H&vz#5784Vo3H57_w7wGEma!i6u=pO3YcHvBfOWXzS6c z1-^L$GZ8_Ra?pW|q-Dc=j7G)JSv+>f`z97BOnXdl<87k6^bD8uTo*P8*1`nOBBJ@> zJgYVnNVmy;4ho*Qe`tku)q24onD=Q9dE*=|` zh8N5w|58=oLnRkSNc`ln7Q28)aD2q+WYH}31?mo_nMPC|NWxt!~WL zR2liHcnTw4tazza{e@C^RjXngYU3i#swJ|jwr*u;RX0toil5^)wWMfB^&uD7-FQhY)hDuAs zh4kAsQm$IGOMh}kSZ#I8LE$ax{AqZLI+ZW6=5l0X4;EZVzf%Jy*zVYqv-m&#YBgz! z2lDOHX@^*7gsy)jaBxZsqZ>uG7Vp{#nfVqoj-eD@2)W{w7TcG&Las_+0n_d9Fm{FP zwHUiX#-XxpfYnQ8wDKhv-pI_MG}13~g}SBMQ(>WU0VX{m+vprqGv>GH4bAu=?mOM! z-pm7y7d+Z87a)dZtxMMm_wAW-;Yzx}h0X z(0RP_Fqo992XyUaNm|MfB#TM5#>vCjJhp&l{Nfnnuo#EptW+ZN=un0(&0s1=*HHdg z*cPao0Gzsm>7^;4Yk>ioJeosQ%tH$xO`$cArr-v22etve0c;OsK05$ePJiN*s%1#3 zmLWMYE@?RmU&&P4FdyvVN7vU)J5}3&k)G{eV=Y50HxV1+q>D0GYpmK$g!HoKk@dNd+<_6)0&`prnMJ( zuI4#m_@a1WK1rmn);~!sqR+~-8~0iNfpVCiY#^2RFR&gk2grWyV<7YT1jy9i#wnG^ zkW?Z=cH)gaNmIeWN?OU3i0Gmgre|Ox3XQ!Ly5O(kNolCX>2Wu%_c0n6GfoAZUN~!( zT#v6@3ty(j@}_FkEmIIf4|-I?ipa3B4lh7A%*#a}b@&I6I=l>|?*0NYpI3k^r%aqu zhYU#_GGr&F<|Hjo;VW2ifc-0KVDKoWdk6mz=~zXBsYs2}vXl(Rlxr$`O(v&sv2_h* zaoL$lxn`C2W4m)H8CJNuwLGO3VnSROCGJ*RldDSC%`)YxOvqSJOaHP~P+M8U=@F2eslL&{uK5%`s%1^N(2>XLRIA*#aspqGtL4RIAeIEAeYDJnWr>lqu5Z>WeDcj$RO$6W*+tFh#woXwzw zhKHlTAnf>9)S#MWVr<-YFj|(AJ&?xj0Az7h1Reo80$GMmK<4cUPHEf> zN#kZn&WuQ!ZjM?pZWqx5K#esZD!8XlO+5AR?@eCXbZ&EFE8`7|o_XwvePTdiO0Lz(b;$dtxCqOfPIgD{w z8Y6MK6l*nwCQ5i4Gl#i$heLq^!{IyJoF`_qkafwy?^(IwbqB3>jC=EDh-OHjAc z8qxA-6Gn?#O<(_EUW~Op6(t(7!m%`wf-=E1xY+9>x~HhRgUJ493w}K;2?3pkFMuwTs3}*QmkK_$FGS z4;I5HbGp2%nL{xMs!#7pObvo{oQ1E(nFt@k{s)bq2HG;NuhTbNoegfmbW_``2`v#WRj-a}Ywmm#TLhGat}X>6z@ttjoXdD1r>CQ24pbxlXXRiR|n z8SLW5EsxCTm<_Ddad&+v9HF9Hi8x$+Rc$j4ONgac=hd~Xv>X2?+IA^U+f28ywrv${ zR{##dbvq#QWv^&E3t_2khNQL`lG>IuYFpBTwq3bd8uLERLa zj7`NB2vA|pU9A4jee%0lt&JDIIAXvv(got06Nfsiy&N|7N)+^T33 z*35{M2ZSqnzHU-SPYAZJdeMCGu3P7TAj}m(?PV)dC$DY`)1!Su6-yfHqK*rPw&01&P(c zmbi?YioOsqB?En-40|lUfTe407&e%?&U}V_@D04enHmf`%|K77FNFJMVh2aOq$%E| zkV!H&+F6h;O?5LuMYo;1a8-@7C{yKoBpRbWH{(zhd57bCj$H^}krE zFiPC9kfpLl*cP@__WBKbX2MeWz|^9Ur3zCGFvtPRf~JZNu6}CnnqsPdE2er=G1W{U zP4zbLQ{Y`7%PIEX`&2C6J^*buX^6AFgYRjeRSP-gwC=FgTWn3y{Nus=#%?>OhuJ4Im9N7pF8xhNM9^UFw}q5L-$&X5oEvc(PxdkndDz1*|5D``uAk!S1WGnNbajvQ zLf^SDTlYA1NF_DEX*dIHur|v;Jkx4iUG8HGI;Q_0Af;pjy8<5onWu+9-hoP%3Svkq zh#@=C*OoMPO(jkEZ-+p+uvDzZv=$v}thCG#D=qm-B=@c6GEA;|OlbSVlRmp5xBp+)kS>9~CT7b=-Nz>eAfd`FHCSdl|L!E!m4;-q<0Mvw0j9x~OL1 zH%o-5k4HFNaq5oc2(Scr@~~;bT+7W0X%(k&8e0Y9*x~#TXT6tNg+Zs+0)v3{fMbDbU=pwa za1pQ(kmb`D$g-u=lorO2v@nM3RGgiWG_GHhG`$Nbs-7#`Je$)f6j*FM--PS^jQWL) z!+OFxVpFU}1Eb;-#d{OFweMwF(dj!)Dmv?&p#x@GjUDhK)MKXqF;ESB0%TrtmHPcJ z!m{)klBLg(tlyHx`Ymaqeixc0+l8rm@tDp0JXz5bEc#AaQ4=gb6g9!(Br^RBiE>fB zfnOP#f)ESDeEa(@uCNO52gJ#^vVjSj|4y#JhI>z2C|NHtvdS<4H)h<3U8r!Od#`q`n;yOcW zib<}FQ*PErt+V|%T6suwF_=i#_rHc9qV8Z`s88O@M5`Wy><4YWicrzewv4T0l; z&4Ckue!xjUmc=_jChQtcsc(j)z8R8}=#oY^Eorj(SM-fZF{y9NnN786_rvW2i1*4W z7i+KZ{xQCi(KG!T7YT}KxO^-LlM`;r<3Jaz+!BkoYGE3VOIEQ0(O&G`Aa;eq`o_w- z1vwQJ)5^bMU|QlnRj|ejf9cn-6N9|Z6R_y+lb5C{+W2lEbFXTAj6>tQinCgYjPKQ# zA^uOsXS6_(#&;jSM0tv%H@*o-x9(tGXnZV#7=^e3M#TKB0@C5y-OI1mu1G#wm@HA!(cpN#m3>8mFWcHcpk!IP;}( zzCgVH(KzMonEW*~QB|Jabg;G-D`zX|4DW!k;c@w)FuYni!=w4?3{NaotPblIrk$S2 z1(5BIDvK2>D)vreE@bc3z$I>&ey0{>xBF3932CoO1#MgJS*2q&zxi(?lp)KTCl6!C z`X^|{j+Jq!do{2|$!z?l=J^ni_I?;hd;b|odp`!Gy`KQm-cJH20Z#!J15X2Y1J3|&1J43q!+p*J zS&qK|sRPzEY4;3CyJtu?!ji^DSkm-%&pl=)m&flk(fkfJW9}(pIb(W;m0}|{C=0!f z2p3siXQ}*Nh;YTv!J@O&yvX8w1PAQ!`P0Ffo8m{k#Sh22{;`~WJj;Otnro1 zNY_3aEqJ8S95gl>c1K6x)E&$VZHD<_Bg>;RbjttTfrzi_3akn20c1nn6W9>w3G4&( z0*(fH16d{-Aj|YGoYE#3k~YDR^o5c}UnpsMn_$NbNtX>Z*o*0y;i_1QrI-ez=}iNA zFGa`9oZbyPX3izj`zx=%`k(Y}v_6u0KV?quFYA~EL2uOi8$kMs!9eQ!O(6CC7LXmY z;XprN2#_{20!V#l;FS7iNa~v*sc%W6z9kL%=ET`(E4Dr#ZpX?abQHR zqDEp8lx>UIO<@gW8gvK4tbtZQSA}?686n>RGM#sokumcmOPC>9!VKAAvs0O4d(|&W z$oyM*)GJHJ(BB!B*m7L!X*A!!IOL%(s9$7>1tcd%@Y@W^k`3O(%%Myi6`D>oS5mrB zh$ua=!E?bpVrK)nOdCs&w`-x$+h7)l>1_*Sa@zr!_V&u`4sBePB15ti8L|`aHA-3r z{+BexPQ^ZGnBB!!0gIWorJH=!;$<8rmq~5#(&AN~l>C1xUZ%~scsnV@+ZpJL>s^3M zw!2cizacD(mmyia49Vh^v<&<&X~OLXe1`v3?GB}CF!bJ%$$zjB9cEWuxKaZ1v2vzW zf6X_q-ATy>*We;bFCTHrW2QxZ`o%?5v0w3@i^?6p|A`O_?Ga8_oVvpsfdHJ0$%8J$ z2}oX6t*bbV7eg`*dD`P_Tc9y-@lkTt0Ry+;ImlN`r1BnSj+DwM7k4qdu7)WQKGk5= z6w{*E^90F~qw%4*pXnBLg3WM?I?1LyB4NF%0bzz))UjS|K?AW06(UKC)mCyIMs_9* zD;D!;toeMr9L#)U+2nKzwg9pW$^+Q|oWm(K&ydtSLv|{5{Uoi45)v~pyYY{TOVC)_ z#+so-9)_-pPEx0tWe9gOa#f5&9>!^BteL&K6A_*6?_*zNQu$btPt%h{&I4oTL-zp(| zq{?pdl=V|u{kpQr*KuK=uevvPrmyeS^h$l!ymPvSYRCK|t^0QSIsU7tWdT(k_EfzV zefrzeLl?L0l=#!O&a?ZsyVUi8lUL2R|2Y1mqhr0`;d2+w&am0?c=Y9z@TznC#x1+- z>es1dx35Od-_>pRn&vAy$NF2S+kSFw-pqhDPb*w)Ga~8#oxX3UZrU4a@$L2|9ok(U z)ZpIl)qC8y`|qtbJ?dQ?vafnq&n_#!_4_#V(~19uws`Hv)`SOvR*U;Mz470)j5`C? z_+Fm4`FoF=txl&e-Q8x$uJf+R?=9@t?CAcU=Pi#eS^aPN65GETIxlOub6dP$TBAc_ zW{wFtd}G>M8r$@pRX2Tg)5d$`u%r;5pmz>d>~Up5|1Ak~2JYMb+LGX-v;X$K@3tc? zY~T^+j*p`3*I8yYd2`dW%>5(Ye0!l?bmwWdNwo*hxBct&{U@wnU)T4Wx9)!umjAB9 z_oFXu`EWzd_xbC4?YUEyumME4S+U zyywgpe%D*Szjfj2c2Sx^)g8Wl{@IiKKG!Bc@9%znT$_-fpnY|(R1f*W-tp*vX{i&O z?K;f6^maY>*8AtFKmMTqAGK|l+D^OruK!qdmA_L{Jhl#SJU6m@UeeSam2FY z#@)}`AAeCf@!GPOwQ=1$S+vO3F3*@f-6j0gpCfi!)vL7b&W|g;uNdVw^hnIxF{kWu zg0nR4zl8jAdb(fL^q3wO#|?^l+~Djt-F~`oEo{MoI&X!&o^|FI@3}XB2LeD^$*L>PcOOib(LDRT=Ku)^hKwG`#!jN z*#6AK=OaCu+wQ%+rs=7*dm41Dq5b;Ei^Dr_s>dAIllQr;wsLcO-@;arMNkB5td#|QLgAxTc*Mx$QLcfcGNzTqMSmG8;A^Fgn4ooyjU$B;tSs0);^Fhi z|CW@^|L84vSgF*IWf+TBtSq=e5xr5?p+*M_VzDF2!`dWPIZ&-EdLb6OOkvxH3@C^- zlu>Y$Gl^9mR4a?e_~pG$di4ZAgg8D_u)Iku_LQtFrs9`r)pW_bQxNN@63fOU7VltX z;e}t`;o0cAXts3sV!Ok`)+82lV`ahZvN@%4e|!X^Z$su4uGhRr~i&aKtKh>-cH4?2x38OfSeTsDRy&G4n=9gVJD*4@T^f|FR{cP zd)L@|*CZNa6ni&nEErM0-|W6S9(PAEkng|xZkE~E+1Z)xZ+D-htkQTvF3W%jI-0^p zY0)TBE~9Z8xp!-dPBfMooiJ$Vx(FQ~dm}z1E$l^1;CyC}fqJN}NM&}w-*Oqfyw&k3 zVZ;YxBhZw_FS+ME`ePVu$fp!SiCp2;zJzdvLpDV^7rI4?YG4LEb`DeN-ldQ z;ZvIPk?4>{;aT%;Wt0}>S}voj?@0@OqkZQZr$w!STs9O<1C?xY<&4s*0IXcL4}7Sm zkt<}BRz+atvUB*Q+}JOO7-gJRB}S7D0v(@yspDvU;H%_Y-qd5v1T{*02lvZsu+&IeH zn2#%?ag*?AXv7B{5BMnYOY*#|J!yk6pT>;FTf(Q25uYZEroG7L^12DgC~=hPrzxY6 z=BtSjA2&uruS>|LRR@ej>wtoig-><#K31f2qhtbr+FFDJX%b_Ymd8n0> z%N!+qe2n;XW;7G%7f-i0iBpXEU;qw2-6ecF8}adHG(GW4ZdfxnEGi*FmipBNf6Haz z5k>IUh;C+?&xz$A@yGwE8d_8kLcoR%iYYW0}7}NY-&?A0s~0E6HV4 zqp2>R+qVbmUZm4zpIogy=CxMU1T;^QVZZsK=C`st4CckD(DNxzc(}h=?ht$IKNm z3O(kSh;h_o-iw&3dW;KIRJfXYOm7k6tjCNIFm8YZb!!ig4xUP-zo*jKqo>fC-ZvQB)twu; z(bbvyk7MN))8w_AxkZxfDR*g-8!^8KAp7rt<`iG@efXTn5>)v5JE@Ibooh(x(#0#d zjh}xHW#^!P9v&_pUV@4%-}uFj2ll>+frjrEJlurVt(^_b*2Pol(Ooo|7 zOw|}MM^I5NOu3qBzV6I7RSVOVhZ#kml*x#uThXi$Y4?gGV{dZWT5A@R7tgVoWuStiff9*XNGENH@Wc)3U0gC+;kMUEBnDN6@p*T7N;32_n%R zN~PZTK1QcxbBd<3qT$Jp9O95dJXER#by#A2q-K~ZtiL*Jpeigjc3`C1qmiJJ1~H^y z-Jnq;h19t;Y24V=&82Z;XDL>paKRgjCQTHICQV#iU0G0HYaiJJ!Ku=^&>2`BjF9os zj`ZCZVQ45+j~3vi&e~2lvZ5(2b7e3gZUDM={rKNBUh@#_yf6Zz*Vr^bV{R;ddxzezpks z5j0!Gsd!HO?t!LwB2PCbeicAdOI)JKiC<69Ocd#I;`beB7Gtf0Tu%Hhg66YGmmNQP zKWa4;`>2NH%uj(}FOh~*nl682-%!wX9L}k-lTU%*ks=MJ%%0yu(2X6DGry_`-XYTD z#_t;F4vx&3Ujqcc22GVDPM4kjULv?IXv%+^Ge63zFKAAPbkx3@s=tm%=ssu)C+E!1 z5y8ztqY~+Ik}nc8Jw_t}Tz2;GL6{aaS4Fz)RT_+w9zuM9Qh@JW{F6b6TdZ} znK3zcen&v_T%^m1-+R#9nvyfWjtI7&ioD<PBk&TkcHeiiAm<41tGe2rZTY+Y;NS9rHXCdGiXnM@!{44=X zjj!CyQIV&$Iz%(ckK~&SnicDF=11?Neglou22Ph9zYGMs zfu_+C25a^trjbi4QE%&!%KpNcfO@vFTbZPCv;^XrD-ZlL)|q|2%Nodr$$ft>mIBDl^$ zeBcxhx$Nvg^N-O7QLYX#vTWNIGR0odBp&8;*~vE){APm2=4j6RNWPY!nIzI7n#uNx z2Q7F z`CvfD)+Z%ze~FgHlRd7JPvWd0qe6iYb_DG)puZrqCxWj%%!6BcddG$i;0Jml6Jnzx zLz*;l0tUz8TG-1JG(j#QR1)3}p^d{F`bLJu$0o!^XcV;qYAgKWG&tup9Nz_3w87zq z$S8F@jz&4!t5k!-R3REod}L^%MxB6@YL52()lqTkcq!Hb*bq$=mRB9^6Exx2_JNq~ zLlRV;-ae{?At7-ptk;G_aso}f3+3?@9-O}t>I#K3^bB7?6XPY+4z(AF!j}LC^=h9h8^OJj2zs{;azqUcD zHlF^16IgVCspv3axVw8~j7HrrJ|qgS5b(k6kQhyi(Ae0hdd{uf-3Nz6C93fOZ%g~p zpqC5&u|w4HbS}*|WN2h`VzkgeC}LlqdJE>fl|g>N0jdt3O&Y1Zf;)TrDBaz&zPHz> zEz2=&7k%0lk@k3`Z6>tw3s7}c1_X9MR(w4>(q9d63%;d&b=WG~tR%)H;LVXbT!CCl zvQ!)KQZrSc>JT$Hb|5N2L}E-BPS&}*s{%FgcvIGI7!D|NQc+?(XeeLld_l_k%#9XOCb}~*~l^pqFb0CHz7+kQT67@ z#}-u>%}SE0ZRf5kes`D(*NR0Z;1Dghk9qP;Y~jl!ii?koR--kuw5KzI*c~JSHXhtR^gs4J+*2lHVQ(WcHxY!tVjE2Yc7SkP-r?_HS zN7R^*_+cuw$O<<@DV4BR-UJcY+5hDNE4>y|FEP2M8wiwCQix@z%7o`dw#lvz(=R4vHD)HcYH z%`)=FD4Y7F%S;~Skz@uH%uSS{b>1`~sbMX|n2qulQ=e>R{hWZd_={zp@~)4~$`F-l zifm1F46btCL@-&=d<=LM%Nwt3YMY;)8)^t#j*WL_8OgrNQ7NIU7EWgTa;|m~hDP@S`~o@z^-y)_%!Zq|kip7c z1G&-7yEas5aF2wQeIou&)FEs{L~w`BLFh`Y7*mxgo)`#O+225tG{BG7s0N3qqVPQ) zRV0RAy1Ncqg!K=JSFk~zq7H|xaE8>1-HL=1u)CEcA_?N@a&Aauhrg@hZ|`n?0p2SA zpa6`%t?aLf=}4vw?(XWr)V(IqE)KP)Zi0b>wgnG&}}{FDDazPr092j%=&9{D6Dg!Ge$;DxA%{#8_W zcg70Zs{>+%S}PMGjFuWo-RHTp~A4uRK$>e{o>XAa7-HAOJ+J` z(G7Vf*K4u?qOCO*jTbqb!dK&KVey&i6hVYRn1}lZcMC+3t%W~nMw-)nl+XOA0wN&+ zQ?+)iwCl=$upUG8h353AFSs*_{)(fN+O+o!z&y#y-WQW0<7p7)Nmlm3CWGAFrR2WK zAWv`4AWv5F=nj+i9XiwWv5gX^#;xqDAZ4nGtf{DmKd7m|WJ`nd6IN`}D#@hLq>#;S zD}j(EbE@D#WdJ6YK^?kMo8%v$3{+AwlqI@*#-Fmx8U)Iq*q$&U6iC;rN03se2vVBs z@GeR>g~Ej;eBx9R!L%^Rf@2b+qT)31kd&-L`4|Gx@h4?Vr*oDZ%eAkccQDoms6C== zGX0}{qPWx^1$OAER0ZK;7b`Y73{b~Kh2S!mHnH*T!{a+AMyul^!@SiIkug}}pg4>N zZ{jF_`X)^;47ISZC(+td<^$XN1q9(U6r2_QRtHh~S3h6K;PLvp~9oNV%xpodC|yQLeF5bZ_g7Kf zkXwKe)-rsQh)M`uIIAqgOUw`G$*!n$lsh+8n)P;M1&cIIvBi#tnCZk~;lzyU8P72( zqy*(y6r27QlVV9zVsW5mS;kT>yqmxdg-=k(A6HCz;am0e*r_gdD~_oe-kve#q`KYA zHmL)i&EFCDq6>r!WOUbxD{pLj-_)a0C5OMKlusBld(5(SPa3&QO&o6fezMJ9{jjvk z=t3))1*~4}GP?11N7sB)#@%W7{ck?*A2I3L_>D;u2W9yB^Bd+B@+P0m_cUF5!NX^l z)0f@L$2Zz;HZRt4zO2emPrA%_`^NDjmJuPKLcXKw7N7mAy?#iDobdPLMNj<)-!J#F zOqi9|4>f<@Kf~NI2Cp3$U7(4dHj0PA#C`Ndj0&zwwhF~RPp&0e)!TH zTS^#R+y?s^Lh~R^i(Qu%IX{@P<3>iOTL-Gi9U3>;9PwaJ<(W8WXGZDvzdUw|@RMt; z23ynF^Wx7w3|y<|+ToycOY_i~ zcMHuMrug>a)*a`t{Qrc}wXXc_i+?W1eK(=Q$@z5@v(6s*dt&X)*AC5jcV3h7+^ zympmSx(&N+nDn+q_rgE>_9^|m*e7iVWyRJt4}H>%`gAvK)#{QdSVv@Zqpd!-Em^_6ClOQ+vFExNaqh0k3E-+(sla60qyXSK+_iwuYy*w`7w9Xx^G6e)03B8usQ@9CDyGK@|fQiubXl8-l9?4CybeYa9ZiY+opag{K_eM-kFcZ z`^}k+S7_fcy2_Q@E(~Ay!fWqq`OhzG7T#=DwT%$&z5nv_c3qig7lvVdkox5my=b7`$Rrf(#GMUk}pI__4RF5{t8;pHYXWFMaA2zMo`@2KhyV{j^ zryXgz)*f2}er0rhLN4w|==?IJp0h=J;nBtNt&3k?2)vGPC8fRo?oA&&r{Gyk7ab<4lY%x&fgA&<~qmD z8r8*Z^1You-*m3^>B)yu?mZ6O!WaL9Rt%EpZ+oN!5`)NwEj4J zNwd!Ww_LlVjq&ZM^}?4i7@e(E+t&MfR$D#ZsaxdY2F`yvoNKvlMPd29j5W>bbemNl zTN2hVx&eCzKiT^%^xNxytXx;y*>`b+H%}M+p#C&^P2t|-Dtq)qTR=C~DCBK@+AF=f zrj-kyI^^z^w?j^?+%E(k8eVE|{FSO>7j#UBMQ6b1R;RraDh%!9{`==`J|Vvk?0zgE z;%Gujz13Tu^hxVJWLq3wk1@K1?;qbjwY~Sq#+4>~={fgq=#DRcbgAH4c-_J`14B1m zKaYIi8(v7)YX8F8y&r$Me!5I>@nu`fY>TV8sYw>fLw*gi=k9=Ee&M@3_%;-uE{51 z{_@+)Japb;lcs#rv0dZwi>==O+HqI!+GFB|SQXFsk}L>28Qqb$0WV(<7BjLM=+!afW%0)5FIx>Q+4kj2v_mzEP`Z!D-mw_{spZ2Kw>xfHl(?vu-$wcS-v$ir zTYuU5?;36KMdy{k=!R6T{_5zm)~PKIoH(uBuDI4@#?=}_+8?-H{mR(xwqHI}#}*Jq zr?gy|cJxifva5@fY?IQu+@k3E6@Bl?FT>5P5ZNTtxjb zwtszGcj3vn1#;-+Dx;fIv8-j=W@nm|=(Npp@R>Dur7DgvS8Qqk@B~))@9>;&{ zSol)H?V7QF?H*8nw`KF5TVku*wsZY34;NH0y16^*9Q)`sq6rXS1| zL9bTE?Eh5c>7ZvnpuLB#6>{&8yRB>AS2T0|bYD9KU>AL|pokaT6Cd7(Fjt zejep?4WqlCZuYv?ihCQcZ?T%?`?y6X_xl$Eo>pE}e_G$`mer0u$Lr6xjIQSN&eIFK zX%-e=ap|Gw#$UtBPU^O-o#UZDuS8vOuIhNJ2JU`_t`+iO1FP0Zo-^Gtb?ol4LG?#Z ze&{*f}0EN8F=>YRm-DafhYqHRKYH$ySKYAw)vFtUoN9oqb_bGb>_r=x@jKvgk zi!T`oKqaMna zz70M5An5d%2a_8$nY$_G_^1U-(H@*&bU)Y}Xxne=+UsuC1Cwu!YrSOujTXmeobKkf zpn1O@ugc!XY^$sTrF*>dln=3mM%~5tTQ8%#u=;Lj^d9^E^X6R3 z_^nr;k8k$!rCwYVuz%Q$jNnD>2K`cbMT=E} zu#3^P`+H8E;`Vn}u5Y+`+E3-i_->kTBk5S^rGUq0*Da_$>Zg}Tw-lv2!0z!&|6Zxl zjicvA_p2~-!Kh7r6~*s`x%j<5aIs9C@krN?(N*1Hv1vu&(AhQXo_>(gxP@QICAPOt z*{I6RA5^!&7ys?8(cUw$KW@qAXqm4Nx8jJAt7>nn==t5ndqb+e3O%^_O4Sdu4t(#w zF$^DzD?{m4|7mW^g-=%A?%k-?Pvh?Po>aB^$fD0zTDAJHvSG@p3Nb<0&dKQdq+OqW zI=Of4T{W6qJXEC4w|0w0U0PM6$LKRVHrVev{}}b?G^0xzv@@;Csbfy(zd!VF+QWH! zGvp7qD9)rlnmA(Q4@Fa9JmeTE1r1>GYC+nu1`qSgU=E843uQ+r0^v3UgbN6{? zJ@v-NqV9q)fYD8Eyr}+{RNtW3R_8B&o)va$#h6ZCj-NbH>D;szFP*;qsR};P$ml91 z_*AS>{bAV^LBnJG!iP_slI&aW^V=8h<4(Gi^{Tk=6<$7;qjbxUOLItkIPRS5^5De- zZ@qi9=kHYSyWTa_O;>;8UiIGdH#qFh=ss$OO)p$wa!luI+b(P?da3hX7g`)i9YFZ&2RXE3@e zD<2*B_+jljkBR*XRjJ)UIWysuZS%Oq9?3N=BJUoIK|Z|8lYAEk**$zecm9j_FRmu3 zy8E?yQ0(>j?)%C$^^Gf8uFSR{!?Bf$(apWvRPo{2w42wg*3Eilzst3c&9YBb+pgTO z&V60Iv|#z~*lNS*MhrJg+kfO%Xzj{#kK7nN|5faFf6uZSJk7D(z++oWT0Cfpqh}Q; z-IOwx5ko#M8+>op^CR=u9;&>5!SM>qt_<9vy>a$(-)E1pr(!6hQ!F0#Y46s;gEU2Z zY`I=PYW$s%MHgMH`(oj~DhaXs9cygBwi8A-+Gj-DI!T*SJOA1*>S^rw)pPb|tTJ17 z{)Y;4hSrjT)C-^~_@K*^ND8&|Vl zX&$!HGrG3ByEcCRO7khYnajZVC2foDG~2Y_c3mf-?5C53{ap@?fL<8g@uDTZ9hE+A z%zG#Q&zk9e-4gukS6wo+TIbd7duvR5_Xy+IB4~>g^8G6is~BD9d!@Eq?yS6U>`L$ZTid(t=+x-b{ARO9MqCXp{O-!G z5AoP0%;>%>cro?<&b6bTyq{lbUD28Qod?SvB{ff8)!K1x=Y_K?gy0wgqnoC=6O`I_ z*7Av+BNIP4ZtdXKwu^`QO;U}BTY=}ED0e-<{76Ca`RuAtJ7P~n;FcYmAAk63RN%Kg zJ%dY>?mafi(&xvt{qblw)-bvX+b#~TGWBSSVU4%BYz}FgQLJU{Uz%U~?p5s`g(`*~ zoze|kkQm+fzf>t(p>y1uDvz9}z8vy#&6z2c&CV_=HmPO8xustYY(;+CqK+u!ciL=O z*nQ6alPiVat1PL}f1K|fcfYx#k8bPV=$^-xrEf6S-N5L|mfO{;q4hU&ihpk3u-oU; zw|zDp>b|1Oh|prK|J=Mb=5=#?@1iR4lbu`~bIP`I^u@->OP2=!RA=|XflX8HFMGUU zM5y_V=%=7dWOOqZ`g$}uruwJh_A-UL1w5WQzSPuVkH1Slzh(4@6BS&xjTMAH7~P5R zmxF7lJ6_i|k1v0tXHTo+%Zdk7_pcg0?&Ptteas#2V#{PTN;jrhs>`CLb^GqJ_Hz~CI z2L9++!DAiz1-b)VA+NM%+1)y^ujg(UW*%aD!mifoHJjs`&F{8wjdk%N<;y+8m}DTM zQ`mGk{MY4yC)PME`ltEWk;jW~X?pAJiP{yHOt08%+sgY+*n-LEUim~XocKVK;S*xl zqT#W)pq<6HtY0}!Qd9hve}f%Qn%RDT^;CMHWy|dQE||UR z(>6^ZkN2s+A3cwDoY8%B|LL!Wo%-NwECX(rHoI};&`tF})^?}YZgU+t=gNjRSby2Z z=x*K_RkQf+hxJxX@@U^EAy9s4;2%{^u66%&{i;7sSB+4jzcfQ%qmb9V->XlJVQGEJ zEv-K8QK#Y#QxnDyI`{Cb%MT@XZ206p#uuOTWpql*109x{H?>VG-S6y@D;eX?-)%7L z+{EddqJCXBrO<9~%vI+yy88nY{#w6f?baTlmFBFjFlOhiL2tYLbae8Djmy%@tA8bZs+nrvC|IMx)Ees6q;~Iakul-1LlP97 zumPmEi*xS|F=0`O;c9rDoShmr#QmyH&b-bo2kQl zW5F70tg-R=>8Pn z7!suj)Fg&S#`bRL+^}J9Y&DEdjKP`o-d)@D4ubj(a={)fxYrIydeeDcWo( zUJHb)BMQPW^u~ei2QVS;*AyJl%mX#il=%b`+zKxDVFi%;M6wv?V?x%i$vKK-Oh~jk zAr3E53ZNuKQ&mYA9F|Y1M0>==#zC%u`DBJH>Ml&64_+2XE+b>XCjZR~L>mwrS|AdE z$)H4a{IG`k)Rw4vyrD}7i7?d;d}Zm1i;uDm+Q*a#{_VguU^Lw;f z6{8-4!#DV-NIr8Q+B@5_^B>8cPpMJn#i2yOHI`J5#H+MI;^NSD;A9gfdij?W`|P5~ zX4&faYkCRMUU3QiX)v7cfeF4FdM3dShZIEF>zOL6&C znK-ScpDCV-V+(?jt~G&ZVR6G$1!4sq&moxM6pWN? zlVm|=mq|t^CnF;BTU>bO7J>Cn)0L~>niiat(clOZ_V~xMV*>e_szGeb(P9c{ZXtGX zZUthaY!)%Uvc2mMdziM!S22>*-~48dYdk97bqvcB*s3j#QSvVo20RI|rdDAKuH2Ku4`D1p&fe8+)eOjZV}!}HHi?A|nk zV-xdR`O$`CPTE~fl*EE7LA3IY;bi`rJgUplA)5XsB>lH-0*-CwpC4-&`h^$3TP3j@ ziinSm#;hp6`DAjz!ujW;oBpv=ND28b#3*^$_qbnWOI;qbdwKNr%y5J%{|ZA{$FcNq zH7*_~fMSvPW;F`uyTWL#Qr~L+o8{t=glH#mt@!Jsi=R5q=b{j^8@*P}zpk;48yOQp zZ-w&D3u7uQ6y}qU*hGUDWQquhj*J?XPmZWB(P2aL&jfjk$18(;GRn*!t%~3fWwv=N zxDJHsw|F;2zB&<6c5%Sls9-da5I!(Ge4y!qQ*bI6hI?TWFzJamwU|+?-$zu;2Q4_g1zRA^v>@tskbEVz6mghc(PIp7)iPm{nH1Yb>v$4cd} z|2j8=(dkCyyHk=QQ$WqQ*c7^$C;?wTcuK@A zRrzO>IV;Kck~0&T_-#)GA^5?qOVbxXhz(A6{C(Sh!>M0Lt56=B!t5T zjzP`}M|EhNq9s6NoPz#tq^PU-h9Q6_1pgy}|KWzvmWqEJQQ_Fol`(Zw)Mt!=Xv7dM z4Mj};dAl?*WZuxZz?ka<&%cNQ>%Fg(C+) zr+6E4p#&ZrPr_vbxQ^P}TqupFjH|g&77vbP2sk1kR0uQ|D&oPGW&vB^B`#R|EajP1 z*KVo48M{d8fhUDM3?3G=!B*PD3~h^|TA!lksV&S>eay^R*r7WDqdk-+Xni?NDQ!?G z(8yAQWae6>tv~Qxw7waSD5X?oy3Si{$HkO?ED|f}{vLNwQ(Wf{phzr&R++B)Mti@{ zVJks}_{C%bGB^Of(#$s;J}>4Q51*3xro-2k`OM*aiw8Tr^==7#lqq`1b;TBI+#JAe zGsmubVLP5yLOXj3(>aQRo%X^UJhx#+?qt$CJ9IZ4(x(P-OHXk-9e<*g_;EXCF~P<@ z12;0&f|WG=aX%g*h{OqqIPU}vuG+M*$7xcI@WO_eDE_rBp%enr5j7EkG3*0gUc=}H zPcy-f1b&UDJ06`Qxv$}vCNcLBku$A?WR@4e2Efe)3!i7iLYeB7K|5f!XRU{*v0&3x88SaVm>B zva1#TQ5hh+Zo%VeU{_t776_wjdbl%bS9}Z2i*6ju*|c_|C2^EN=*q6mvT6KB;n6vgnQTh=swW~_SPIFM z_m+T709yf4o>~Kv&FBVmZZq<6n~~3&U6R3ZWIc|9&AMbZ0<28T?mVt@@6#!=)5g?^Y1wanyDB|m& za*`}{0ZE?5Vr6ZwH$3^c;mKz$>;e_X?Gt_0g5K~j&OEB4y5?B^vcx}`iY_TeFkKIE z$|FZr;$#@^H_Y0;QXCS$3Z6gmqDuaCzkj1m)<#OzNogCZv%RR!4uB+6M^T;BzwmlQ zKCVvkSqr2@jyov&xH=_WDOxnGxphifnl{MVeDs|!u;1oFyawIxa|DNh#L{c3eBxMn z7NuT*)RrQS8n+>MybP2|afk-(ps+btrF!F@E@vZ!BC5`1S3HdrO6eLZbd!aUOtNeS zBzd*~Qo~eMuTb)Fg_4h#PmUwia-6<=>P9Czm7;MVl?n&HeA(>8Rf^J^IWD0_2^#-m z$yzXKOsM%PZlV!^UPUu>fiL^sCJdoj>ajtCVagyBhe~-LJX`W)5EmnZSRt(bmR zDCpE@@n+goL2ramsb2F^&?ycTE~?dA^Q6~?MtVh5oy)UcDP2Ro?u8ynmVJOE&wf#_ z<@I_cAJ;4SxL!Gq^vZG2D+b~NgaJkHIOxXEOob^&%U}$hinfG}kuWkoQX287=QiCQ zJ0X-xjjrU7MlJ9+X_=ai@9-FQZ4`%S=oB7ZqsU!$<0ABHF0NrrrMg6PQA7xp(#VxU ztKq@9AWeK?m?jcOG-!N8BU&2zV4E;8GCl4gnMm6tw{F}s2;&=)Gak?pFaeNc)`;Vt zdU~ysk87QL*1|8uh2gG=KGt4ytvf*L7XMqV({-8L<)HP3&LIV(bz+ovt*44wpCoEs zD{6hRsC8$(*2%}UPCl-6jw7veoW87+){FdawSFaUS`RHKt%rVv)@O@a|6bJk98v3Y zMXfi~Yn^;t>*V8F=Qz?j$LY0h`QMlI=}6UZa3XDC&g4bwP5*6Cr`eXIfdL=gpxTXB zF!pPzby15Nj}SH9PtsRycnhb~OzF56ZFO>w~t`xHpXus56__J$JyNuE@( zH!QB#9QnBB$j5s_j-%d?QzfVu3GY03kN~PaYsd;IMA|XOH3z}>6En-$~QEMg`$h&amrEInAw2_ z*M|+@tJ7G4ro|*5JM%7D2fF~BQA|$nXmN~N=^MSTKYad>)%5V07MN+Ks&nDBD1VtN zLn{zqXgP{QORO3^bp1AWIW@te<#>A{P0mUe8~10JSUINA^Batw>0=sUw3O(gA5iO2 z&iW3|Ba@jxGLm%*0n$We zfy}^hVny0bSviEMH(Lgw3H#>ENg;I(*-r``5o(S{=M1|+Q?-ZUQ0-CRIq)?$_;>A+ zQSG7h4Qo$P=#ONw10=cZMSWI=?)b72`M5sG$7>JA9R)qdL7$kWr23{$Qd&(^W+W$N z2%4h!m1&CO*GyCDDPF0hlm3OLW%a&ddS9Wlt_NK&qs=;Ojtj$i?Q{@a;3IoE;Hxk^ zCDZl62ccw1oju4Fw2(l5({yqwp7sVU8O0%*ws`h^jV*E+XVZHV8rm7XNKqi6gs51J zWO&^jD4ipD$TpM@@{@auPJ(272S{_&_kgsLl@8bx@B^SH;733&zzjgj&nG}zzzWbE zw;}ns4avs`gB(YLL5^cKfU~wO-ZU6D&ern>I)TDH+@{Kl_zXd!(CNZ_h&vCTK z&wUs4zW4C)=AEif_6>bAgpwh3&ak1MhycTN5{g3&rYj&_Vai>04ZUyd;HY+StV~N2 zveLyf-NY9an|Lae@gYO>jk$F8LUK@nrb<{(WEX}tYmzM-us*^Q0ZGom;#zhG_<4aP zA1|=vvldPw7RQ|xeUh~ibM(8_|F^UB6S->I4<~rT)w#4Dd0CN)<&5&aHqsGII;}`` z0(1oQ0i+cvU$LpLq1QV3xYo(XXXzYAvviK*O+7R&!{hkhYJC<`^)_g@oq(g(rcZ3T@ zI>(6vmR%sAEfD(oX65WAOt@fC-yf2S496!l)>0a%mg3M@fW}vAa#d}RIvO9h(C{Ly z>v|DW>P(FfGYhV>gp|@Y9Gi?mKSuJT0Fq2&#eU6RuR8K^)sc_C^5VFIpy#;kRcAg9 zM8cs*Rw-%4NRKq)qyE-{Y0hxrg9@B9n}!-4f^fqnC5l5isDbCFTs0bu(~tjdqVyX4 zrP`!)4Ym1$sLf@7B+qhDo2B&HBp=r%`S=u+<7f)Xak*>L_Wwnj8}p>if>{hPrOh8j zZLSivxmwgFZ2{t482Pw1$;Y+HaimR-%Uzpx|1a9ylqYTeyJ<*X%H}#zo9jhwZVYHkjn#(DO+L6{m8wM0eL*?2z3su83qjG1OHu6O;~|NfyI_b9Zqt(L)?e^b`jZ zy~M#pExoqM$F)s9Yk_pkaTi6OWZ-N8ZI}PwYWsBV+HO)1+HUd{+E$6$?kj3LMAUYu zsO{Q%ZIh2{n|xf`97o#bIDOfs0rP)cwrN6WxKUJEw(0wU+-29wbpMyiwv`s`JP(q) zh?))%H618wI!M%XO}(bc$2Cnp-imM>m2i$@nl7W;{K1FGYVqvTeBYEMeB|M}^+VPOh zi!vHvmmwO_8TJUYdTH1WQ5 zqZqj?CgdbXB|wrzAx_Y}^!6Yhw+H#Gg>9hXxLu-8Y-dc_<1^U<`z%}2=4-u4lrV`b zv2|9HjJ_?<&K>N=9DS#ll>lP0%4k>xQt1rS_p1z(f~ZoR85+jaK%U}|LPp`anVVrG ziz?D|5LM^0vyIV`Ev0KXknbrP=Nmwhr>|(7#(LwBj~j=4e6YlEG+5#|R$1&)eP4uKFE`Nu|qnb*be0vamV~i(z}3d^5ZTinmxUgl4L7r zP$}LZ8CEIYP%sw94yBoEeQoQWO!c+JI$6qLyVT(Hr^|S4!M1rfP}w1l>9JH2h2o*{ z6gfi!Jq6BiJ(uE;fyj8j}10TPUj~6ELSqt>#Opdb@eb#K-6302~ajbyF z(HpgwC_r@Nf)}1tCDmZ9@3Su2;77VwV^*okwAA2x*pkmqW1w7OD*}q1E>f`_2UD@+ zipKk~8EeAd$cs$~M_St8H(wlQLtvD;G#ll;#E!DkvXWY3LeTpGVE9r}8~iLlt9<0ont_y~R+}A|k8jM*YSGP> zEQnU?4aFi{x2_@&J8|cHs`6xN@L8;EH4jctDC&CfgmM=|KnJn!sa3IV2P2A=Q0~(D z?n9~B1rajpD$@@=vT;4t#UD}X2B#l-V(xm-9|b0h6m|hRQ6;`q<;B$CUmka$Y7W)jjbUh_ko-E;e7RC~f+ia5YBUIGZ zWOWYslio-OrgYXEy{I$ym_-NCmgCIu{=Qs!WXoHl4P!+yL%vVnzN>!&W!==JUuQ42i znea7WzMb&#G!DVX`CW$3nT4jo$NABhNqMLJA_0@(p~POMmz{-7xqXGP()y zaV|6Tp;zIfS1As{ZTL8sLgpAFFt-Vh!xMIoFfy0`{Ym#JmqUb$z*j>gI-(^Fqg@zj zVjS^}5$!spGk&xSLya5hLy&zN`;#IAWQ7S$FRzIL_f=|eW;1iBLSwdH@xakK2HvzX zf!I2RMHWhbkd#Cz5-G1`rOaIaZ_jBMA(amr)6mLv3lYByvp_04y8$Z!?g4BBxEIhJ za37!t;Lm_@fQJBg0UicC40sffdf-!lB>8DT8ati=q*2USz#@RZ0Fu1F0#eQX4X_vB zRX{c1b-*aVKLNi7ya_lTFb(hr!25u^0UrP!0el2_8t@6=CBT<}O;9&p0WJl64Y(HY zE#Mo#cYy6sYu^KQ0sIGW0pLf#7l1e;lKch`RV}$N^dtkU1Skho0Gb0*NwPy)e9T5Z zK4v4IwXgx9)N0xYn?)a=6i}_VVF!iCXDyJnsCBRr&WS#2;W~WOPS~*4m3-F16X2+w zun}H}K5OA0_H34Y0EEtG<0cs|OB zK5M~4kMq{!`s;B~dK{nJbnRw*pi|fXhzAxD)8GH5P0DzGwOXQ8wIo}uQlSlY)X`K^ zrdJEjpzc03@nve#8?EvshMSp3K>Z;ndK%=G`@Hl%7{#dd3Jb-x3xAIG_&=j z5^A_YOmV2mqf!3xoLkR8$zf1RM(47&nA8RkrW&5FI1EbB6k@ctk?N>$eN#bgQgled zKq$h-o*Fzt7@ikp(^?P2*Ez};)pqGlFE5mG60HqjEkJL;u7FBF%70rxD&^IobzaKJ z$4fc+tl3)tj-&Ad$Dt&2>6&#(hz%=Gm|Iigsn|Cu*#+i$@Mnl{FxA{TRby>VXS_}B zf%Zg9GO^Abg1lr%!o9+ih{waABcwQ#y%u=r^Q7FFT!tf4ifcR4R3v`M`a!dj;)!kE zt}<0qQ>}B9E~%Pg*AtP|&|r`(j(}7WY5~~FVWSxpQ(p_PVWTPJlv@kakr>`Ft zL*GTbQ2#O0wZ(=p@fYTgC#xmrsS!mV0%npE)RHy8)JArxBkj!jY{80I zlef0tLSF78>vv&gXN%rvsucZ#P{QjQEzi3l^?PDOFZGH3Bz&r2!lkmnQC`kG6n zMpuxerAAtfNe;tm?1oZ7vNZ$r18fOMaw^5rLiLH47V`1ZLO#BF&T&M~ak*4uQ`NV& z7}@kPo-0DB(CXA}SZNm{%<$AT#i1sg)~rc+&$5kZKX|lP?^_T0Yi9H9MmWAq&7}(^OM_D z*^FzguHukHyt0^Q`JaCxZ&m&ibJ;Y$Fnpki`WdX= zX!VU~Yu1R8G58tplr#a&9Og!*jbYq`rn4qgG-&ZhBzko^6pl8OSY+Q2V(u;4GX_51 z{F$=sT!enDWhoA6ZaSVld9tkWMw|Rt)(z?E9LZu>vPex0m*H4eog;{@Z`n+4hxL7xYl+Xs-VX>HAK8P6ESsHoT z3Urc)D!2pYT)ZGS2z2ETrEa=A>x)p*o35KN?9T8RYNPoZ#UWeu#Iq|;w#w!8yKaY% ze(XR9l1hPxts+sANg~py)Tqhy2U6$y!b7&B{fXWp^15idKLClrpMW&}yb0J2@D^YX zz}tY7r#pa@m^-w_D;)W_ZOLcNMxz{;CerElpJMz6%i8=(0Wzi1O1ECGFuYQr zGUC&m&a`#t6cy>g4i7o9js+mqE}D}4gvW4fM{$UzA)fQOS_cEW{9P$PqLETD#3M$u zdZ#-CY`A)txke^!3Q1nWrf>*m#gvDkfb{@}0aAX3i?d}~pXQb!AGZwotc91L;kjutUO~k9hH5(u8AZ^UAF@D*A{7tLq&#a^3FWz+IZ%Hs5+M~U6U+^Mfz7! z*S`Uhj8{cn(@{iTq{+v1O+Kz`jw4-j9B;et8x+0z;#>Kz^T639x`oZ1`4Ll{_is4lAqNzbe+3O&@v!I2v z?B^l096|L;XS74L$e;OY=zD}2-pxR9h`ueJLwPb zBe@LgSS9qvBx_|rl2;-2&QUHAcqcYw|4d=Vh`vl;L()`o7$w6%o34?FvAi-ajfxd#dG*;N(ArR zC^?<`mnDM67SF`jxkDnu)z0h^4}*I>i0Gb#D94*Vy6YqYr2J9IBAxh%_-ZIglxIgk zd%)^|WdLgcQbSo2Fa@v{-~zzffTW)~fYc;Z)t5l>@e)WrYqkf9;~eof$5D?;lyQ&yFAG54n}qr>02#6YAT2qsE6X_)#I?3x1Tk>HfDbWTSjh;UZ_)|NaP^ z;WqTXz)^oji(?1BrsC$i8>Xh6BxNg1k{xuJc9izTeL-p17dyaiBzs9f;!+Bb7XL~E zwgW5!NQ-~v04aav0VzcVG|2m6@^L$p&zfDh!*S0b|zv*Nwpz&J18p z{UBaNr)PN;opQ2J%4wN#XAJt3v^Y9jfS1jVkHDVY;6D01B{Z6@+UQFxlj$utC(68x zgr`+m7f_MKre%B{pwIf_ffqzoT$p7b}|VSTXKdMhRgxZa21r|&@Q`=c+zq$vXZkcl#tHp62#x8#vQa_ zkVvRl^^420O+t5nh|wM)l8cIHA;f8fhuko{QYBf31C|CH2}nf~?N2hvKMjz?>WH|! zNRp2iN%HZghvTT};W+9G&=m}z7eA~l(7vA{2yTTarrU;+2$eLfMk@k?5pKAdi{jAq zi8{BtxhlGIY+PRN0?;oAWY%@*FpknS9LC{AWHQNuip4rxbbCy3t@Vl{A6Fdt_|6}W z+lP1@r&FBl|4(uE@}jt}p5o_Sar;HZVV@XN+yPN>9(u)*k1LLRTyY#nisLw);>`a4 z6n8%_iZdQPKxCaWRk8D~ILw?_i8~@H?x?6ZPrc&E#}!9Dt~ib(#c`Z&lz`JgcvYm+ zUa=iGXok;oq^CSF!$Gr@q;&a^UN~&_#c>=7KL7{TB;R`(AoK^)3bS@A{dTlnNKts| zG{7tiUknJdM&)FdtdVdP?+TbsNk|Mp4v%uywK4*0hg5aYUV*HCSG*fjD zsPX5x3GfwVIO+y^v$%8hzJ>7hVYsDwoT+YL1wyI0)wNKDBbV(6Gu$pmaj5qvcqcDq zC6^J4!QT9wciuN)`$=hYy1p$lda=oi8tW$FAfwKaywti;w-7EOe?-}$ysQFj47d)^ z8*n`!O+z*SssJ|v#sF>t90j-;a6I5vKrP@lz$t*+0jXP|{(yHYg-I1aEO;CONTN{3~*RmsP#Nf z%{a%g;%$ew|0$1UOp~scS({o-X;m#4GXn8r0yfHwL@U1U=BYxrm*0+2+9<7Ti1KA> zu(&UuH12>D_{f^phqK>zLyZ6xHG0UA6{v`i%3k4Fj>oVnP#mJ62K;C)R={0h_!5>n zCY&{rx>OKR>R<@n8yqU~*>1L>|ckZOzdzo_7JXkx>JT=PEoUY;V_yHt> z>#%(9;p$NC*9JPInmsM7ZR2o)2tkPx=|!}iY_;|& zPjKq|B3;#RkwUb}ix@DR#pWPg%rdEFS_pO!1u?_*9Ak|_q`lkgumj#`3PK3dwqPgT zyx?;XMgpf~z8&!SFy9&Y{Fsl*j$v)T2Al^TDwpJ9>+t4HSI+32m zY{$C|^6`2?K5K!_ig8?==wr(stf8Y*4`hAAl0qEGS#iKxBsu&XkKV%O_Gmml6?GS4#%a5bk>6680n;^ zP_pFMX^E3f3EvRwX(8y3i(k{D~?K%bt}vZk{^4 z>HX@P-VL~s5?*qAjrp!q@lyV8^MqaO?``CH5MwPn<|KcD>=>-}Iu*;QYLd(Mn>I^Ou6x@x>< z;g98qluerZs{hTtEz<8iyVE~lz`@81{V&?nAZN){O5Npc81*akE)*T-`aNFBn!81+HYMF zlJ?F%zWJnz$LFP#jU2e8bLfWa=I(AqHJ3+T^_~6rl9~M2wJ|+6I&Ao-{?H|>JDbNA zJu`OZ!)ZMmth;{tUFp58l3#D$Uuo^IO1Dy{Ef1UUSL;`bANvO{avObZ);(F@SoMRc z959{uKswhbAvvmYlIbwd@YYHR$}?(n02puJ~_3cR?XHgu9cZ;-Z0~2@z%AP zGhPN4=5#`$g+CI=s_InTDm(%XFwxci(~S4Ab?J;S}@%Lf;{G?90d^U{tS-P_8# zQuSv)eZN1Z*@kX)kICCDY5eEYRr1?WRhIYpv&EH9Hq!^#g-7@CO`A2(Zr;&`n#NVn zRyO7plL@CUc?oA2#k_Nq4duX^b_2F>_=^c2fgbxxH$egAP6H=CbdyYwo% z!_M3%5<|KW0)~-|tt(gpL-TZyb6#BzeHoa@O&SFIBUTe@2*T;7juaeiWeJ!YbB7$dbZBgS(SC!4)s?i$?6)ClC=KUhOM@%X^ zuaaf`_b*07y_`I-`(C$}4lZG5GFp5LNUhwY>h|#$Cy)Ebtjzac)Yq(v?{q!p{zp=? z=f8!1YSHn#oqsC(eGX{v_-8+>gt;~4UXOlpTs3X{`fh_K`|M1(({hNm(1v<#7WMkE z5>8B~wp%}P#k%E>Di#0X!?(*nI`5klbK^+Vr+YtH_nf-Bq1C~CizDX$y=?rZ7T>0L z9bc}K|5VZDC$_v!9$7EE#*_VLHy%6i%eyOXB@Zl*-27$og4))%_sn|VWog2_;-9qk zUnZGt7-6v@^~cTMyGNa<^!MzVa|ZocG1k6Ly($~;1?<`PhhP1NCBI28^v&P1z2y%T z*J^Ct>2G!0V)ujLpWiQhH}p-s`bdj%Q!gtmX1rUIv}SnE@6UPNY<@J*?(@*9`%;Sj zU8-ieu$@!N{#B#-qMmb-FE?*pv)tnoGo4PPkNx1hvM#oXoOyfqQDhmJ}DndVC6C|{F1ibE?xQ3m=EAGvAk!@2crT5d2m+(a8f=c7>yHtiOyAI}Gn{^j zU_nn5YeRV)84bP1*VWT%MtrJs8vIi1b#b(V+K^8TMkAG{x)C3$>2jG5{o+xK>T9AL z)?zetzl=_vnnrwR79y9??lNl8>Q1?iLT4xsCWfFPw2n`0BR;eqlUbg%I~Sl*8uF>f zXr%S4t`Q$d|GDV^KkoXR1`z~(E3}}^4!vhPisa)^_|=So4Fs1`FJ2iE<=aJ zVgq2kgfu1XcRca8T$VzCaK}n*gi;OV@j^&edwCl1X~Sre@Jq3Ooc{5+F&}S6GYbS% zm&vs;;-dssE~6W5s0CR*pxzu~K5ZGzCKL?n704-#__PC7E(@h!Je99rz!1hTUugP4 z(;aAC`Dtgwrvsz$#4ovflQ+g1^I@elOZ(ixh)*ZPmdmIVpKlZ*mE{dyre{d0TK>@{%aaHUM6gw&)YXw08OT?^{MNyith#HM3YDDb4 zV2#F}ScuW6vBVamMx$>mArTcj8a3D=%I`UMW-iO_f*8pA{{HyRXJ^i{XP(>6EpzXk zJ2RJXgo%WkZK6Ln_NNcykoR)Byp8$H z*J#oV)76i0(81#I>1*T)Jv?)945#{N*M^Y@x{)96Q)p~N> zto*BU#{P_89R2=txRF028Rt7XV!vHw&QoK5A{b{30+QQ}kw*SRGL9Ud^>$5djs1yY z9R2u28u^1}6gC`6N9?BSR}AB{(~D2Ekw2ptht@ll0oprd4lapgDgAL=EaT|6W221x ziDMiZJ(26p8wTw(_D9D!_i&W$6KCX4JmbjzG#&pljA|I4(MJBn8~Kxv&!3yNr7sx! zGseiD1S5aOGR}G&t+20dB6&e5EY44D$OjOn6n&y(G7T5Smnzmd+tpIJ#T(eTrwBnkh zlBPA++?6!txTYLs4>lXFX(egwxMq-~X}~qpBu#Cu*)3`6a!rP$smC?ts42k~%{3h* zO*q$tOPY~fvqaKFa?No`Q-*6ENt*6lQ`uY$s|nY1mNcEXCP>n>=bEXKrX$yEmNeD4 z=DeiQaLp@8Q;};_Qb8QVH9aLwGp>o1G@o)!s-&sJHOC~)V6J&2X{vBdB?~d7L%621 zq?yPy!zGP7*Wg3PY#YWkyCqE!*Ibn}AzYIyX|!B}CmGl_fNSsxHn#QUnm9@0$2H3( zO#s*6{g!MS%Qd$pO&r&hwG=t=T+>X_Byde%Nz;XE;v`K^u30Q;dUMTwNn^z|xD(1Y zAFi=2D{8#Crk$iI%QYHF(}-)PNt#hy^OdBTz%{=}n$leJTGCA7nkq^$^dzonDQUzO zNuvphh=?0bT?A}$YvY}dgBQoPLbsH?Csz%r5TGFiTL(ZI3(~YD&5zi*#+mxZ5oY=t z>dCF;8vGFkAgl}dG$GK?yFf*Mh!X`3y#+K+GZq?p4=4|dbrBbW%dU(R9}1kk8;vx1 zF{B=@sA-P-4!U45=~JOqm`P2Ku(HC8&%|qi1{~a)U>oCz2%*ax?iYx2%l@R9hF$Fc z$md1bJY@LDI4n${?Q`tnSeX6gho$hfOPnS)L`zE={DXocv~I>vx45}E_w@+S*L$n| z-96p?-QAqsJOqs=O>}$2YJ*0)ISF0zzu4cTcRfASJ$>B+oZXz5l)S0GD@IFa5PCnCK! zPVCKJ1qG++Ermy{0>jJ4DlkCKDoTF#maU;jE-<4^`TYLK>iPVhIOl(c%e1ZB)dSU< z-js#;*#$%zbW`jCVqE~cfM|0z3KPDG8D}!Wz1=mvHNBl!g+Ywp%ad!C_@UH7yp&4u zz#>pu6@k;{{T#gdr)|)CXp|}Mp~)!}-y~Ed|L~%qLU^)=(z@G1m{PHMKT-A)am1@| z-tXgkdHFmHE~1Bp@tB8{5G)_V3d=%#WXzs%;v-8YdAJ<(p!P?qQKmUm@mOOau?ntm z`mBO0nm()G3MR9tT`V|Wyowjn$nx5X_!rX38qx}m8V?lDC>0d79&-HYIi>9ij%VbD>^Ku#QRW?mQ>ZQmOMiEm^tzK+|xct$yZyso=^SmpJsc&_7 zit1$AN6r%iFOVmP3|b-O9v0ydER4oOMbYuYI=TYmMv0}4oN0o7rwe^HTBc%RA*)+U zC+gABSp=7V@uFKh!A+xy(}u*yhU>;^LWXNYMruN$qeq5o-CP88?Bl6tA1gS9)63N~ zZ5>^l7)BfB=;AEFU`Lmhf@7TcVFyQ-R&b~1CG$*BwrJBvrN241Y2CV2JLlG|o%FRT zl{1#V5VcLqmaW87LzP};1BB)uZ4KUY2@@yi=F_IXyodhND12KvLVBChR_<8KGbVy9 z?p%Bg-XWUp#zxabZi20c{*5ovS3^I(MG%&OhtNOKf0eE8P(vOlLKrwFB_2i36t5NZ z7r-%>1_A}~I)PUnoZj!@*~5bXi32BWGZk({oC()T1WB0UQ98zh_q)U`D1J1(dlwv+ zFwrv_?wIngG4wsaiIsQ-`A5@zKHwu0h!80Qv&6EK2U1@kg+P6JMt zk;E!E+{HLI3Y;?1FrDTYSp4*sw~>3SP!|S(Gk|7eX+s9P32tr}pi&FMOPn=M4VcFm z{NN@y9oAp?Mkg$=hZytR4C~R?;DsCTr1LCaLsKoHl3v z8SrQlbs0Ezs|x4QEslxce7joYm4Pr7KQ;7k!SPrl@(PPze{fE$6?s+=rsAhUxGw9E z<}XAZmFI$Z)4=(1ec`-?u=5pgA~uP8@Nm4733fB#(}eZcj3G# z;GF@-_ZyLC17RvZh<68^5#JWht4alAFY3~FB9E5?y##IF}lj|Ar%i3ew<>p4yw0_Wx7!u>M` zuh9|QPCY8}$`|0D3k>K z9Fd7*b=FVh%e+ZX*T){<`AS@Pk9>2IuY)1Pp^bPSgA-f?UIaM0BJe%~XIc?>bHQ0! z1l~GuwiJPv2F`&Z@J@hpt_Zv<;A9km_W+z{Md0OtV}5~|T_`L+%7at62s{-y4U52Q z2~LM1@I1lsDgv)RIG+@OHyoUpBJjq6Gr0)7ncyrm=28EO-FP6&4#mDo;?RHE*!W2A z<^$>Wq9VRC;Ni(K0i!vp@=vkf!|o%P*+G2p^J8(bA%W4sBgALO!sDVN#Warl!Xvb?coxsm zPNNweq6yOJV#9;ub=o*QoatycTpJOijn&uUR*zkfE`o0P*v08Wg(~E-M^K!`-P21G zmk<=AL3cPPTqNjXomqOnL?5$>P{wYaEp^v>`FLo2JbJ0S`fK{A{WbmE{neVTK7IWA z`FLs6ecU~~)Iv*%T&hsAxBEbihkGB-0X;qad*C&RVgTlay7Bbu>Z|d0?~adoi1adr z()+u6_4L$q^K$R*Cp3nOMTRNp>0>ehttD>01Q>Gt{1JI~FP}bYO@AM+0B^O>UUHT% z4TjFT`Sk0m)&%tF>929`+Ewl6r*Zf4!pnce*jehQ=lxE7`e^)oy7_Cmy88;v;YD8> z4hYEE4jsayblPFDK@phtz&)j)D4lCC9@K5>)VV{4(LoXMTA>>FlfYL9zR?NVSb7Z7 zJ7`RJWPBuSRnD#+UHRG8Rh(q;438Vw#-&4t{CDB-qS7LBow^D2z}{A|V4s8WlxV+5 zp%G}TzL}0d4AJnMs)u%1QK@P?T;B%1>g2EmqhuBM$f|5vvqCNF%q?3JmYoL6mJ+)9 z^wacL_w(zCjPiExMgLkN8fEP0lbHo(RD2Y@&q5ojLLTa6SR=Sg&dXp;MSBT>J@ z;-f92_n3uE(q zL2==6ctBpvAM?Zoc)}u&6cZaBsYOFw#ttuH5UNTcc8iD((xExl=*GrqHOK(m;BpNk zCCY=w8x=1+E-pwD3^jLaStPgWF)`6m+9-TimfU(u;Z7`)Td5|)X;e_`SdCWl3Tpzy z*b9l1rGyn8{qQJi5RAN$jZn16=p`g5PG~Ddp;nO+LU(R7al^yIbV5hTVU;2|4W;jo6lqrvTagV4EQq_WB{S>!eY&pd6;Q!7Q;Gj8iK9R#yhW!6kO$~lu%O3CNlpDuXcJK8r8er1~Ge5Slu)BNGo4o zSO(OCX9o6KK*+757PAP!#dM=7w2d;@R6eafB)ZW4@=hP zM7O9_ON|bTf-UXhVZ3-*VI?U7diL>0*Ta%!g2q%Hz}BMM*tqa<=xU&)v9zlLzdQ%{ z^z+pC`uD@N)zWS)GSOf(*r9`VG<78K<^XN@Xl<;!JWlM;f%RInc=F8BZj~vAk*uT5 z9bnnDrQM<;5V_Cg;9wMn&b|Qy{1C&2_)7!H!iJIJfQ>ALfCP-Ny0gSNK`~znI##C{ z9i)i}kJD+wF(8p&GvgXEJSbMhMm(y+5BGkIO>e>J(X$T?3A?J%QL(g}{ho+wG$BYsM07|{ zgjOT_lN+T;-lp@KdED|b&>oLe*Ez|^+h6iG+E{{6!!W?m|Q3@F+}zP$GE+ z;W46`hFl~M?Z^UtJ$(B4FLQrBX6{^ zu~E^mDxDpL{{xs;%wyuRY$K1!;ysY%0bc&hV;Xr=h9jaxCfhLkvg{#`DHe=LZ4{-u zRZCU~6}aEo1M?kTYB-hKFgnj_Cix|$4t&aL6j4fRJ61b*HnOrtb|>GZMvOd@qs7jX zXH?h3^iwJ-QktY_(|;)_7BmGG12!{&AY=pXfOj;Fs#4sqIpMK)ozqihJKL^5u4#E= z-mFvF?hCpmkH}iS$M11pMADD(u2fK`r@d_J_R&Z7f6b~9H+j+Ib=@DhIM0qBXZ>=f z)t|$#E}QX!9ZL1vw8?o=>-onve^RwW^KrL7d2{g78CRx#Jz@H&9B*H&yJoyLZ_U4J zyX9v$uf5H4_kA(V<(pE=qRT8dtNqo3zVn`EJH8RW)1y-Csk6)L;3ki?ap9l;HFM=d z-_f_LKdBmG>9MxK_Xp>hmx&UD8Aymq;U}a-yzJC@$BndMZvQ!DA2KeX=`i0Zoo7_9 zTw%Gx+FU$ho5grB+wJNL9sPB#doQeXx-)A}dQR`_hw3WqTesO6cIUfV3ozYViu@b? z%amEdSFIYh*rlCrGb!xZH|ayqj;sHh*3oxEnz!d;SbsX>RUWk=$i7j>3R$m5Zc+8` zdDy9wdGLZ;rI(FWeRh8Lp0l`Z@__NW)cWl4-@nAn|Gej^<&9Mf&;0P$^hP_c99i<> zoG$6XFAcqL%T+<)wj8j1#&g$!Wxw|xQst4&+mxQ_nq3+kd8?cF_EyHmO_h=`-OG5B zEZ=o0yKJbLPn!$7u6cZ%H2MCO_J6n}JhXT^so`>qskoJNn(;Q2EC2lG`;j5N+#fGr zqD!?OrG2H1xc+F!^NvToX8cwG`CA1=N2REF|7@+lc4nU2JYK7rux)6S@C)}QI4s!R z_i1F8zFC#RF`+x0@y2)2u3ozPscwdI?_b?526i$FUC=7SeMMN^CO)CNUk$bvgk6kh z`Frlvti-2HDh+SD|D4a_g^BOh+-huj?T_(CMx6V}a{dJ@mtedZCoXUK?%m)HpA7u# zieyxPPTmME$yI>%7aED<^*Q`Q+t?=Ts@1HaoZM z)8>)OetJ`3*pfxKy*HonYJJr1=W$yfd+dLv`2Mj~>L2avbQMB95B~C~d;iGR{vNOJ zHaf;T`Nwx{qPB)@vbo&j7pFE$f>wOn?ZM3yx7?;l-`u(8Ft{D63+l5<(SCOJs|Mpf z`fXsQ!zYtl-Ali#Q`h-!_R^Je`z%;iy`C3ZmYIy#V|l~Zv)#I$XffqM<2i2|zuvKV z|5f{p7maG|%lM(w7Q4-OdmiHr2|B+guFsRCrcM?;gnQ>}bgA&mO2<<>50=@Tb?e*4 z3!K>7BN487>DD`!53S!vb7x7d@jG1)IeuSd>*Fmm&eqQK88YGBEHq1a`6_t6v)gDt z3BT`BE_Kh^m6P&a4U9jqiKuXKKm?veqTJj&v=`Ew)}odnYD{;-5vk4{if4w zRiEw`>oqys_?L1vwcAeV6pY*7xSyp`oE))tLrC?Oop3G9G!UsuO+3)tN zH}Q9Vt3IU5n{lh#_wl{ns&B?*?_Mb$co{I`SzC7Na^T~-o2E4%5WcE~)9?0YJEg5J ztH{jR+`jREh0VSagiVY$;=9og_GblucI~$fTN^ofuWFI~aOGO<+ew?t22QQz_A%Om zT*m9>)kE#kKcjl+?1WnvpC|md;h^AmWL)L_u@~!1S8;>Bxxe*w zXjOJ=YWB$B9oNnw9rqZ|@?dJC!27w^PFD@6ux@wNw3r4vY7a=8Z|mXo=c(Fn)}g&> zgZuI-#j>}PUUzf%eI6e2!~U^9XfeB&wf&1##; zOvOhr4HsKoem#EP>y*Wl2Y1Wfd!XHjM=ctUSaIfiH?+Ic7*9B*+c#;gWAn_1M?V^I ze?<7@EiqxuCR_jcX6w%nrmj%HF26F~lA6`ZbZh@pn~J^D%8dT0#ia3mKb;?!PfH!@Yqosti*G%*UrIU~_Q-Kesrwy=92ha~I(jDw zj5lj^MNPJu+lgO$mAw#mqe1ka`$ja|SEl2~yQ1q^cW?C?OPGFOyrp{@AAjR9Z?QwQ ztmj8|-EmKA``TRP|8zst!MEiej>=k#+oQ0xO5quFt4pKXs`jnkUR-xEYwgXKO^10k zUG=E(x8HC4amwC3Xfrg77kk;(Ys!>v=5c;^wHw@TBsNjop4`}T>fNhLoXoR_w%CT- z%Z%4#$>q7av*oIktyZ^M_e*|Xx9I-ev(nxnW{H-kpRWF*W;5K%$2C)>uw5|R+5GkR znM>;JZyw)1eO-e(=`;IRJv$}%^ZV*)OSitm?NP>?dBi?z+2DsWhWOa@32W4H+80y9 zVqUGDIz6?;q-C!Z=TJ^JG2ZQ0rJglhpZWE*U6u>I@4NQyaQl3}hqX2~n=|xUnYzax zT|s|`@fytSGq-FzU228(7w)=${h!ckGX|{d?s(+)ixC%{>NsAnk7+{KTBR5}vQGWP zC3DLpPuW+^zuBajcirdyVrONydco0+KTK~jj7Ui{0yrctdQkAm<2HF1>7@tsP@Pa{Ax|}$m z9uzPXOHR-iQz*_}JE_&V%)Wu90A1?_KQDW90_C3Zo@LCN z;?VhBi>edvD%Ly?K6A(a^yE7;UD_<&5p`nXiZy5tPB7kDt3%y}?cQ>&opNO2^{HJ} zA53>WG4J$%b}Kp#8}zi=ZH(=z+EchE`pkMAU3%gl2h4Q`M+ZLcaAU%)UQKHKcwxz) zxZ2MyWOf&XAjaExLkRAw+LTeD-Q43s%1?DB9ckdY@!a5@zbtwE`P=WuuECNR#`}5G zt>DP-?1nE}awX^2!9(6;ANX@t#>&f?_a=>A+2ewC9hO%iY?VUu;7#nCTXV*|d(@o*b__{eE*&f>74QqYZs}^p5Gv2|5!$;SQimqTCed61!%^At(SN1zNc3w`v z%I>2s)mrbm5zFHkulrw18dtEpwP9P!opZjbKG}Q6=jjuU2VdxS|IF4EjV6Be1mRYu za7WnQf8skhIkI)+(#T;B3sy|rF;rC{GsM~F<)QOc8&5;HeHgFK9*Z68%LXrM(B$-; zoYt;Bl~!9{|ItcQefg*+EpmOo>4Ns2@qSNxwLWd*?s7g)2eo&9K7Z`ch|znl4t(h4 zlyx$FP0iJ)M>iQSb4<|a#=ZNl8=g92+1MG?KO5dEATGmo>Sz9aV|Oe%eyS0^x>beZ zw<7A`#BX=ExcgwF>)q(_^&c$^o9y5i^k!7dxT7~0MwAIed%$>3{^fTM*)sOzhM$&} zUg&haNBL>r^!#>dsqPJDZCaOD{r8$!dc=4;`kB9&M@2jPqQXg!%5$MwJtEsmFXVj@TzWk#NmYrX3Xqoh*LzF+3 zT{7N~jB9gGCk8g!TffcuBjp-@X1j9Yg^l$GP5NoicDudj?xP<4$aoV*eVftu$K%b< zEk1I0&fR7Ea};-XseVenH~rJ`Ys)`fkNQ!q8im`tT*o8r9&DZUVc9wnqZv9Wc zoc?y^!NlfC_;JD>aI-NKOT>nHclJ#p&fM`!0ee$xE2 zuWIAd0*v=joL9~I_3l<%?>{ceCv@EOS&80F-#vfaVd^R8Y92LHpJLooox-g#HN!ss z?$oobz6e+~^7@OX-~E;BdCRlDw(X`*I@HO0l#OLujQ2)2c5YdRnNfYNr2U*${z9Ma z7vsBEYEwqNYULj<9YP=FVkIKueKxN{E4RlBS`FH`>gVH|;!d@BvtsJXfO;<{^tiI> zmvwJo=QoUZal^esZ(eWN>Nb5?>DrBYsu#rlXx%X;eo$fqi||{AqmYiSH7I`PN7>$e zxpevCmya(`&FrWpZ>t5{~mc%P0dm2vQg>%om`E&U;V((pr_1s#AC1aXSA2<}tTdh%6Rf;)1EE<1#xy+%NAy?jX4)6b$bL~&>I<0KC ztzY}TU-$i~r6ZPFG2Z7#LX?Ll9D6i&%(G*^ZOg9u;=pUKecf&*{1oe(V08)ID`6Mo zrF_1sLd%K{Cs!AL=!T_Yi+N$A@xUs(8W_yX6q79Uakv}ewTzjJ9_ZDW?j(lcLw9IcrC^y{it zi&jh?HMhx9*B#67y?Dm!wy%Hdmrr$XBilQVj9uNW{I{ic9JJorTd4N-R9Ro=BcH-9 zjCZ1Z#m^?bnmYMqbKiHmxjqBpe4Eu-J*IA-O&#{vpZ?+=`mxq%i&Tn(8_HbpY3^34 zlZ)5Bu0LI!@htM*`iUKFG~2?xRrN+yM|u8)@%m&|-t|i#_0PvI2HxJ?qt%|?E^n8& zUo<}KazNP^7x%u7#apu&FL%Y`*|)#lGU>s~LQ0A zjFTB}j_#&^^3a7}Oz#sO|JHGL&vxDVx@of~)DOGvclLpL?*q((s3?A3dmS2ueHZ4p zYtPR6um7Cr_u0qp0TrtRPMJ`~>&uLTv1m6oF`h%(`Ej*pA9EesI?Z`!P`4bLPK_>g zyfFW1qd}!>1|OR>KoDLq-r`HOt2y+E$*z6RY4($ZH=BQ&RjbsQl{Pav#hqP~duTV( zt41ABDQ3xA3oLlW(S|8la8egcgb|ywI&;V-EE9lt@_^1EtQ`v zsqn5x%K`6B-|*UTWZ?R~p9b4>`F-b>sAnDV$VDCU&+OEys2{CsMV@b+xMoejSB>|j zj%=HBd)@u*p9Y(!M?M5k$9M};z1`Xz*Zke`o2q38^t(TMTIJbe@6UgAZr7wwPdYfK zO%a4^jCV5h$>{ppUe{7O#@0yx_+!fx>nilC=UXRq>Z#*XhL}6v!rLnAQn*nz$<8a= zHW|8C>E3QlXw6>f_1mppWNlGp$(zbSiBFd-7KBvBYxE|v_l8?`8N(BXrmEH+=y~Go zn>d^PzuTnxed*}nwiVZfT*muo^SWD&qn|C^KGrJ^zf z{f;ijE6CQhd`=cl+Z^0(TjwsiP?+s5Bc*9lYOdTEAhjY`qv z_TVA)$7T$vzNX&Pd%Y{z&yJfm>g?S!&TA{~+5Wb}WN*v^GoHH4p`L5Z+gfK-8Fps% z#hj_B2zQ|rKRDbL2>PC=+PtRymqZbC$09fFDYen`QQvU#K~k`fsFHQGePO0HIo z!D3~+PCqg_s#whm&yeDp5gvsG52FRx|7x<)1_Z?pGZDmx453xHnOk?A8 z+DJSp9~}`r>|cqahT6u0e9K4jrv2(J1203dK#Q)XSl7E)}mE&-zR74NY>1_$2j}vBVb( zcue?Ma@V!dA+hmTK_02qL}?T7a1NenG7;W~v^r9L7g%=wrMMR})+qB*Pom@+OR7iG z8$yC&V$gQr$tR5SiXT%9K_e*73bgS*$gh~V;nWu{cE5z`6d&t}%}DVRj4!-J1dT3< zcGn4w{@Sv#Bf-Wy5S8pQd%X!7^T;!|fAt>CY`rjW?4q0y{3hOIN zV&+2Z-jz(IP~#YaWvV8}?H`mv@p?mDyJ8j<`I@SWEr~&tew`3Iv&D>_Jbe%zT@oJ2 ztqGzQ5;Im)+=44!tL51!3~)*&mTbjjNhX)Yj2^BG3omYQ5if3GnC>)Pxk|2S!Q&=6 zJO_m3Tis?&mNP5-1jVH&!FG!-7I+u9CN!|75l} zC@!+OG*|rL&e<#bO5h?$Q_Q%lT>Qd`dED@*FuEyJe7_JWOcWN=AE}9kUx-s!P-J+- z*kbyK`Vtv3rud#9ZLzpxP)v{V(nqr*LBq5Krm^HMAXLAl7d#Z}A|l0I>hQXhj3wei zM}~%uG+l5?&IDue>X%STb zb!^bTGb)oMmyWogh<`N&VgmlvAkYWF%b;U1Q#tnEPR(dsbi;~$QPCSU;;qv`u_49o zbFzL)lvbBe+!Yma;~N!KLe03;6grzI0UzFZipPtritkb0sHE6a?$pr?#;v~+=^fB& zozR%@m;$DXKEzy7HsTdhQQC--xG^btNYlEyxKQMQqra2NQ5zhi>I4xUqoV&VswS#W zm;!oIh=1b5Kkaa~lj}Nv zSqU#Bq!d0YP>6Ahvpl9rCGtP6CbV{KW z=d}lV#dw`K&t1|fg|3{}6X*@&d2?Q0Nv9P2IByUTmZ~FdLx5Zv3X*h6Aw<$Cg>axd z>}({^c7{etI#^QDDTT2>_u1JAlFmw)B5I;F4~D1)8d&Urf}ol@A%dHaAaGu}ayC9Qie^kIxEH7GR5x51KXsVHpv0^Qq-0ymPt2k zlD#t}nmMDLPw~E&bfc86R!Ts2(l~QLXPKftpRB&}&?3b3qy%It0xl8Pfw=9+C-3vg-e=%bKxT5lnH2SzWOYW0 zcSf@JD=7-rEDBFjyk9l(ev<5+o-`p#u$h*|e6v*qWX&iwU7c&Q$2)fhmQ3T}`+#>g zd(`jXNTGg}tbTLODD7~8{ay811YZprG_ZN(sn;`x(}j(|b9{<`{u==7n7EAAu3_+o`MJ+k0&H)91XW4vjmmH9NQcX=c5}cjl zZ9B`~4EgdTrH3lnj+uhYG5M-<4h zCKph`Qb_j-IT!FG#l!I=UMfXF!IY&QM($(zZ~_0}ldVnOUuJp~i%CBwf}WQp*3+$R z8SBCgg|{{Ai#Rk1uuVE@j@UOjilR;#67VY7j-|ozq!}xvEI2WTB-4tSnWy^KOGQ_t zgO!S;EEaEdPSO~AA>I!0O=^#7CuIV)En;pU5vUPT-GVVu+K@kDX%pj(=ek&Yb&$W8jYlCCT@ zvV#ZN?qv)R+vA?fc>ofa1Xn>{@ol3r_dgP79`H{o@PwJq8Os*`HlSzfjlxRfS! zLR9ehmm>;WM?7ncC$Vt_$?jO1!Se7EjrPe>)Z#uY2Vc=dP^(-j+3cZpzLSnD9vMza zuWWVJbm2+5;gs}RMNRxG*2IgAc9xhQ=smM8tc6g6qwzr0)wK|&xI;Y<550g8+O(VCuLa{Cny&Dg$$|5k}fmm z7Sqj@T*aF9dWi^-IvB60R^&ATsFi&!tym+P?2C&HHLO(2l8!3+mF#Yb;`}b@rg=Xx7zOePsWul= z&9vx>koFaep;(BT!W$YtSO_jS;=yd>o`&m&aow*#+u2!G&kQU=7de=5dO+?Bb?$U^ zcH)F=OI=+Y%j#TkRO-~GQ{2_CuCkatY--R9i4lHS$)qP@I%s4@<1Y(V=*zO0_Q#Pf z2^PX9IEuPRAR5nE2=QDu1&GF47Q#%ft3!syR-hD5v+w^(FrO&Uo$T-bxn~w=ozH4{ zfBx6@%ZthX2H8o${;y;~sh0Dlp!2d`&ev`R<-L{k|9$C_{rO)>Ii7O-<#@qr60<=}mM!}GHHe=1wESw{LkyCsXshe|o0xs=i) z$5Z;th0K%7i>Cp<6&qC07xcsmAj>+^f7v6hm+MUdQsx^nDFs|m z{siE?7_`Y!{Fir><5`fDnX*0P|FSf6C+lTtc>aC=WqZl)<^KgqnfE?_<@1Jo`M>PH z%#+KJtpER2%JDBq7B}9qJ&G#jc*y)#rDTmLJq`ZnKWqH2xbgo#_o7YzsU75cP>?Lh zUpfEf9F=+Ue_6`GM8%jC8a(e%%l>PZXDdymR%MNmRA!$c5p8rsqVJk%kZ2v@>V=GMuZ2v@xG5_aB z>iyA-i3OYL7Lh&IIdDWK63^01l8EG)Bnx&wn&y-&*sUe;tQY6`a}>x?C`S<->3~FE zXnK<-J1vAM{H#1@V<9Z$x>SzVbF_`4G$7Hx0~{UWXU}kSiKBFmGC9iPC>u!hFNY(# z9U!LHnj@O+7j+ICIdViFzm@C zj_f&d;K-4qrX11dcSX0Z98v#I)Om5_&ru*pp&UhUq~mBjM^k{r+?vVJLXJ{7TF=oo zj?y?fz|k>|&Tw>zqjZikIm+TFo1+|#%yG9+w4^mh_CT)8rVc=2>>Ytb+c)Ki-ZNiY zEPp_b40!^HE@&l=i2OMU#?b+ej&XE` zqe~p6bCk(Z7Dw3}<#1$fE~nC(BYPmxrVd=^$Wc>{TsU&&$de;4j{G?aVmTPkbyGN^uN#Oty^y0+j@AQ-Zntri#?b-JJI2u&jxKSO&QT^uSsZ0^ zl*5sE897$g9NBZ^z>y>wib2J6WT5SKg zZXr+urb`8C%+Pv%b{j`&K+V|M13ZR047qXQfr!msE9LZBb7aqv14oV=HRZ^KBUg?*Ir8GjpQAvILOF`yNXOB5j;3%llcR+k zrE;{Mqir0eadd#AV;r5~=n_Zi9A$Ep#Zfj#IUJc=ar<#(&yfR1jvO`R$b}e$)K#oE=ir`4c(Rhxga5R&ng&d`Fw4S4F9Hnt|fTLqTv^v&8IKy?9fW&f|&QT^m zo5fK!M>!msqj5%Ign!l?*>mK;kt0VV&(SuH(l|Q6(J_wB0EwmU64#}3l*v&R zN7)?ZaAb}Z+fw=C$etqyjvP5^%8?64t{i!C> zKuDT^=L4`V&k{@P9+m|o>1fluHP1a%NfWH;e1J99^5Q%e{T^HW*B;`3AYp|UeB>Rl2+QjhNQT$m_nXwAZ9*spJHE&-9zXu&)MUjAdnj> zAe*sIrx_%+ndSQ$D!zN_$sVWo438U#Z#y~&6>OOeWO|;QTmjQ9R(3fstr8;!-SF@@ zthlqXqbNN>z%enw{&*X$R)^UtD?9RpJ}?>+p~lO3gRmyUha&e3dm?suqc~nc(MRhc z=p7AvL|GHNH0hlI(S2Nfb0e73E3O652O!d6r?ZYY{-6)%OU+B zzl8LMr08wHUPc%wAuAzJLP{Z%>+W$KD@2aS^ONc597`n@W9C?z}T0iLeN zPMVNiCZQV^(dIf%Wjya3oA1q*C9Bivp^?@oFE)ot$$#rpVG!hhRZ;L#>{8s#@c;&% zA$e$NGvIKTO+|G&7T7DiZ57_>$=+EAw~5+%S&DahlT#_`j2cJrs7tc?UWzwjL5q7? zES}(jj50Q#A7b%*BE@6|Jrk2NU70lDUheqH6D^V^WG2Rz$3J1bJ^MFtv^87fizW1! zO%m=W;t+55 z?clmJj%dZL$fK$0y^M$YW7HBH##u+`Ws4ZL1b1=X-Jm5PH&mlY&MB}Za1R|3AE%S* zFf{}ejEM~mK{>%%zo{|!Ya^7F&pLYbY3YP^Lto+C)=)v;l+DL*#;0!e73~fFw=?+P z*5H2|)>OUHZ>nsirb-2)#squD(f6~(W=hof#fC6P)b7V)4+-{(5vqYgh87i~X?()M z@PMmO1*hnGpnu8_Z&pJSEq>9~AM+|!cA1DnMbM)9XcHutq)wOBJ`tgkx+2tBP>a!# zvVlUO7MH#O95Y%}x`&3witQ=2rfjJ-ByE(x)SA`;HV3Bd8CpBa`@bM5ZMad9SPk+W zWIIUsl&FR8dBT?u5kFosg1UE7O>ct^kCTtQDZv!HWGSq!jk!NcGT4pmvmy zQaFPn)nO~)yo8kOAyKO9R>BP&2`Sl!fT<<0VplvuN+B0VYA37&`d&66rCY#yWL#aww_fDurQSZdA62ADT35$-! z8=DPkz1$8^&B$v9Dxi5&!I8K{>xOG%vHVeAHzG1d3zd}}wK0yM#;Buov18E;wYTdn zxvLGeUblx;Ht7_ln<^^Vk*rEvC<-pwVkBf6$OuTXOQckww*ZR;nvhta2`PoUI8we? z2@fTtWKRW9u352SM@T8uM9~r5)|QY`XvcM~TxTkGDJF&GE){OW+$A@ZB5GFVzbALw zwktyJ=IeX@iLvf^jSw~@GTQxRhNMU2 z`an|pd?3j-w30*2B|>5@5mE}*rL$J-0XI?iit8x9L>+IaF;YkxQYVCmR%|hn^20UVQ!3r)hX_uLeh16 zJS3%Kf|MJzfyLY)B<2PorEm{NQI{nlC9|AieQAQTA8Ju@L$RudeR1IyZTr8pD8`#`g$mmQA|anLFYDX6!=7T&`%qoH{7F9Ao&v_&z#YG+CA<`M9?q~d^fr7G?ZD}}CJA{oa@DBdY!^z-o2rZ7Opb=FFs$XP2 z$0OmY6tW5%%>}-dnSOY&ZYf-b#2qtzRF7#UMcybcsnj)xV!WguVJ5b!agbG@*FjRL zi-)AH(P+rdkYgabL5_tCfy5{;Q42W%G79oD$T^S`A?HC(hTIN06_Q3-(;$yPehzsW z67fnT3(SC|%XJDQmEKv9uOa6^QX(dK4f*s1(5Y2F$cs(sCe558=)?Sqz={+ zNX$_ROCd2ADJ+Ae5$kfuP{@^#k&vq(qaoKoB5lH2$VrgvAjxK5LZ(7u<|q+5VKd|j z$gPkUA-6+bhujHy7jhTmYe>u`C1MmWd;?hy@>@u%J9{Ci-cel=YcV0Q786oZ$n2~Y zh0PE;GF*3y>#X6M=+;(3rrS?@xUh%M1=V&-oHv}UCO70aS$uY(?I){rz3}R8R^urg z6Pr}ysp9eR;6JSKRL^LbN0Bm^#-Rp~ZXascFSkYSMNkUGfU zA*VwA0XYjY19BPU4al{ScOZ8_qEsdR3V9Fm7UX@%Y{&jI_=a!PkDdI@r~7n zg^w}11XHNeR)U=xQzH?|aW^?ENQyt@cxgx%Nxz>g415665%M4;^LvceUuPYbhgnk&m+d4)sY8k+k8x-*fN#9Q)UR(M@ zR);PGlBRq^A*qgpL3%?DhwKj-4jBm<0hs_91vv?F6y!EY9VFQ>9+JXw#V+P1Au%@z zDFvE!_><}WmXK0#L<=SI8cN9Yb)vW?Z^1)fsQ~uCqcoj8A2{)XVAva~P_r$)eaEt!8=4EUQ znjG}r@<+#vVv2 z8Q(%u$)Fhpv1AYuO9mmaWMnYiT^tFCB}3#<$q;!|GJa<~Dj9^tk|FY_WQaT}8KRC# zhNz>GA?m1Ph&odxgL)_S*!9~C>Xi_e&NYK;!#0ET#CeE)Md2l*8*7Cr027<3e#<|+ zuIcw$f}Pnt*Sw_-KJhx^#zMd73_#?Dh!Lc5GYzuyFEFE6(a2s0Qna`nLvCznX#;Ki zwvV{xY?G*EN3s{SFJ!7zN&g*63EA*CWF5$pkW`9(gj7SGfutz?0vQQ;5po>lWk?!9 zUxVBL`5WX$$Uh*{ATuEMK;DEr3YiIc4DvQ)I^l*PYV0wSBQ?lBUmNCX# zjVMR46Iva9=(G<`gpusUt@&P(i&d5MnqN!Yp31>HN9oP4?De?fV#eBVv=+NPimm*f zTvG*KgR?Z?rJXjz)dPp2GaUGn8_Kjn*pmw__&uZW*|_)+U3hd9s{wK-aHzkTssTk= zH$>%;=6v*SQ__Ww$}w$nS$qaOloZlN@uz}FY4DeH1270;X@azY?qf*0$Ob~vl+P!S z)bZ0mHiFbbdO(Ijk{yOYQUUrByI6n-i3Ny|*nJUoSrSjlCI&PZk`OM zXSU*;;lN7HS?WryE;N_=YsVOOyeT+o`*((`ZnF1~a*mV+c9HZR7|2k0=>_Qs*&EUg z(hHK( z3`zEBk6pAjA<^1|L~DyWvbLz>jU0PBsWr7^QgcRc5~t=Y>4pNY)g6JCmImaa6%*gX zi$8edcfPldy20so?Di~I3@6Td;f#I`8n$BJ;=JL+H@Tr2PZnAEz8vft9U1xIZJ0IM zCyJH|dt{MTK#>bHXyUYkIGsSPmm79@qj(#3)2)#^l$LUk6(P$*q7Vx>R-g|5cKx({p9 z!hJK!TzVZe*7a9qSc!|$NjI8Tr&rR_yJo9eou;J~xYXSPLI*b7&2yw7wu zxQ=`{z;skg4lIjR78V$pePuC4w=e=4WarlCdg`w%b~ds0*yu5be^!6U6e{d72vS@tO#i}S za8Ee@0>cn(w^r>;=-dmO?vp#f1|5!X;6H70hXasmZ6bDgBU@9gEeC~8QvO*=thIO> z2fLm09I_G4y?}Iqdj^1YkAq6L6+JS?Q)SXeFG$kr2L!f+Lk=D>hgs zq@+heq;JObk&u#lPSW>bf+eIBVu7e8SkcX9hLm*Mmc`VHZrC!Uq+6?!4mVRJovB)| z7=BSoX{XJw7AWD`)u0xT8>$6!v9B$(77UCQZ+XhT!-4*0s`vVj=ba5pD1~jP^Mx+| z;;RrXc+RGjF0e`7B_&e4q_EOSeJFV&TTtnwi(6B!*mTKgfBe-iDCFk$aFuCu8dTAarvr>jhBd6Ndaib~3#FD52Be$fgtr*`_0a4X;1shB#E(z9`V9enC;;y0Kk{YePo* zjg8Z3BiRTNPE2j6gW|mxL%UE|hIZ*{AtX}x-5@Cr-66>?8?lRaAtc&`kdpPAMBNUF z$LxX;ct^EmoH>T+wdlb_GBSEG*2$F^P}_b%QnDUhmbzoN5NhJsgCQDG_GHMEZRPyc zFR%Kx{TeO}d$r_-IL)!IE7-PLUDxPPEfyNZM`+(;*Zc!<5A866j;uN=RH%zK#ug#c zl`YIGJThF@PaCGC&pvA7{G+8{_)V9AV96WB*RbVTgBFC+uolt^65nNGWAY7B<3R_@iwuj%a(XjFITq~|Akh^lQEB?u8LlzecxH$ zGw+d7>@`~Y^8emBttjBXrI zKce~bulOdlRC(ETsT~~2n;QU?4zfp6N!bZAEfl;PqzcjXN>csWn(uaWXlnxEP*ptRJ=rcYno7qFeG*gG~P$}>zF@0W&X5MmWVR%1A z!Kb*yX}4MkXdQNYR7|lTnjWyyy%vfrnVUAscne55;~xPVUW&*Kaj3yqZsnHMp98338uPF8oK8$YN&nCpHr>@&#Gg` zM#Y5Yli!Hc-}gWz1M<j_@a_Oz^ z>hm(ITE44zZeZWXH7nN0wJz05@yVfj0Z~_EUW@bI4eNT2{p-bKi$|pv%wPJSI#Jzg z?cLhLCaBoPOBgGFg_VZ#JCTD!$|Op!$=|EsuZOu|}n2 zO^wtZFJkLXZS>;HU03S*^r&yKyXVz5`{uNc9($tvjOY7XX3p7}w&TT!^rX;A(_&LJ zodOrwetPWt^UIekezyKqL}XNl8(&qPq`JOg=IPoe?sS{j`mbk4uWkQqQkVTLj(zcT zZn;~Yx3|72{a3HEuTOrxEAzV_mZkLePPKXYa&Xv_8%?(^h#GOBPT1?Sf%9`V@BZj; z`OY_o4ofYc(Q?d`&SUOd=DPh^s?ld3%Hq~F#e5p&_KY~}Zb;<3r%l!FOuTLv<`*QW$ zne!98{;J&0$=6D|A@_N^vp45#f0zErk}5YoUAdvdcNzXi$EW-LJ+)q~KQj(qK6UV7 zovvGcI@Lh+>x!962Vd*8IQH(Wm_4hy{JrH+XxH7_qLwvoPnThQ_{#L78=~e5+h#%kmrD`evFPD9F)AyfE_m%%|d{u2l_tHZb&sFHI{&c9x zHd)`~8@G1D@B7u1{~Jn~|8+pj^R<(##>rCVE!t7fY~$7AKl>@p1!pb0`1y_{{uZBR z)YHU|oHBn_*>1m44Wi90Bswytd3fmagwkg8k`0C67N!l-HFt8FXJ&@?0x-?!=!oW# zp=eO)RUD*g9vZ6+(T&!U4^)E`m@6>cnultGHZ;?+s}AG@o4H`@M zhk0aISXIO}8zWb&=URZPBa$myBUg6tO<_ip1XLnZY_E^Y3yWT+OPigME9#^v%rrPs zyf!TVqH>eAUHZ({VgumFRm!dGEmLdP<=-0hf`}XZyl9q7}#T9 z8~-l+x@a-|RGc#x$T*n6-mN zDOB2O82Lk!2?{em9LXl%_VK-J><>-fDa>NvJ+%e2)fD~F3#%5i3bQeK9HkLQ#W?N2 zp|+B?vPSW#4XwgVjU&Y;q53GPwb4&k9mdg*Pi>>H>N1WBVNrRe&B}=52(7|QpJQ#r zsmC}AVMA(jX;T<+>XX*Y5)qceDr3aK01X^By|kMfaT+oXjTU5oEQ~mf7>9wv6L~gj1VKTN|S| zw}Vz;wjTb_b(FSBMx6H0D$J_t#mCYpKDc~>gUcb?j!eq=&Nx0D87Cb_xg2&d^2e2N zSgrw`PqF&l*dOX;Da>efo$QaRkw2Xo#|=knQ=|HhfXU$?Um5Fy|M}a@&PM*YF%Dhv zsr-yfyo|e3hW@xS&RnSFHp-3pqlwf;hQy#F$TpR91$j;p%BLwUCqs}q4w9xb*R+>3 zZd~IhX{vFJPSQAW&00y*fop!0G_G9pOw!cgnp)B&t0vd@OPbnTlPqamxaJ#4(}rvA zN*aM_=>1Ss`V-B>b;Jq*8Y;%@MH+N%vLFo=S~h9THB>}}{@A&O3ZxLKuW3njW{tkj z&Qz<9>T_`a7dJTbX(%vf$rTG7Z?M915BeHs(x7tXh2E0df`oh=@`w8CtX5JgSm>Wi z8s;+#eP2Ee#rb?b4TTlMHO(=$(gjE0KTWz*S*0>a+l@X63&gUj0SCh`wlNNsaO&HH zkg6+oTxD=XbcNMXj<|Hoew305E92yI<(bb_l{1&O=eg=Bxni7ruGINl$!^6%s09 zr*>^AwYQd3X{lQto=RIfUsO8;n2iupU9d1GRyn{RVovdP3vs`IeCt ze<=6WY~=?XU(FcLp}v|SJ%C;!OZnb>iEOA;U3_1`q(jFN8?|p=a+3}vHt}s+auc_b zo0L2+zORs%lGh9^aV~LgU{vxVp!ISkjtQ%GN@SCwOODc$lZHk_#_7#XUHh80dT*(_ zsX;;4wroN->H5W62wuyAOp2RadKO)7T zO-@cs_H>tYK5T;3Q*Yom6zSzJ`RanV!#y#nlx@s!nR<4Vx_5Um>qh%}Y0+y^PwLfM z={b#Vu$w0lbjH=X5V^n-7IS)tSFZuYGroCifrB7jdQpJJuZlJ2$sInZetv#RQt9=L zg%C}B1W|~Q!Nu3R;N~wYErPGrA|IYQU5Y*`H5rS6bWyY# zNEeluI6RhWxjTP}pl5g2?rb1*@hw*W+g2V2J>A3H+Iqs3Od@GGD~&=aRt*$L z6TRuO)PeAqvKa+atcrbET3#)XC}hW-*OPB?hKT~HpaA5Ge)Ry96clIFDKZ764xl)L zn1vKz$+9ShlC&c@d;Uz2c|9$E_A0ZmlxdbyMWs!fd3ePfS1ptnmdlD<7H^=n5C|D6 zSu0H-u4NL6dnrTF8TYBIH2t5_@A_A)`*|ilOzQ#UyusIJD=@)Q1P(aw|+KVNg8}we_7+%7o`@`?a z914#%OW{?Aey*M!7XK{qD1EEJvx(uf!qP_tWDic1%%jsmOX1N~f>Ge?dkK%O{`?9~ z-5~(j3Jb3}j=6&Kw#+LmeJ#Ml+AnE#F?dVB*O;-9DWJ!3V08|`8gH=uYSqaGo#a;T6WCJ412Hus(1( z=TW^`3XkHw1tW6``F;GG3$&S#ugSbnMeZi7>4bJ5`uuPZo%wiL~yyQ8zfslJW#szO*QXX32` zr_~ol^YXy^9-KX2a-Q%%vvStqaH}1t5A3v|8ZDOdV1)NEad0n?Hc@Y8^|1&%UvU2T zn)5`wX1tHV^WTL#ExXNlX6fsV!*6|q_JN%?m|098wWH6#xwePVSij54&n!G^@M?XF z?^x{RJepEi>R;$i>soNmf6sX}AS~6#DvEa>*0KG-d6f&{)dKG{I5`J6Pxz@>`qVi5 z#zD?e{#!~P_4iG|vp&RGg@xyW!|lO|k$Gs&7V}GYU^BoudbsHDJaPCrINgqLo)|C9 z>NgtU#ej48Xwl)(xS9t}pJSX?nE%a2csg+YI?j2*|BUXd(Gjw5_ao|rQQS!* zy)E_*;B}X|2p;w8qKt1*#G#FNe&F;i2JdZfqKd(b2Pd@{yb0jEUku(Ha26MX_X#)~ zioyE=oZZFX9RTOYV(`v_bEz1-+u;0N4Bj(v%Aa7>!}^25>a8j`HH*Qk4^FdU@Z7-Z zQVgCJoPc8R`h%k@1}_$z5yjxW3r>15cr(EHpcuT5z*$oa-WG6n7Ua>YV0M>^YHBd{ z?`01Crj4DK8QrNO-3c_{h9?ObZRiwnsz_bUee5@|2T4{AL@4Q!{*>gX@WjYrd|7{N zN@CpTj_q4RA$68K9IP}nu2q-bkRFbr=S{c_h>c24Oi7F}XqxtGrU^j$*wHF^psW$se;2Cdm8?F2YKs)ynAbVgz5sdp}Kxv zp;}#!Al#q}^4Dnty}bRkQd^l^u1Io#*8rWjSD;USKcCQEcB`?|3);K>eHw_BZg#`JA>Uwwu zDIY3-u;=X$C}Iv4imvw zNx_Mu^vU#ONty+ti4%IfO1!cp4KWRl^*qKk5COt+){yT6?Pv-l&n>eCF?3mwk}F`3QD$|)FY^$ z?oDmK5Iv&W}?=|pi($hPO+dS#mDH-+u)fBV>Y!t3b-84p9vdpy&jbukz|Rk zvOrHtB)_wm7V84^=pxcm-U7Rjv`j&$uVUu5K61Phie)ReWSAyIB#+VQ<)H9#Xr6j0ZIYa^ zqLUw+KpjGXV3dp$FEK_LiAcelzIhVr6)PhlXbHNMp|LRrya|pQ)-0Bxh?E;simB1P zD4B75M9OehXk=@R=ahr!hN(1*7pfvsZyYllCkr$Ss$uFItkTNm6)&Jd+Lw}png8O;Lv_} zPQ%t=1kP)N!}^EdXH)#7v%I3t@%Y&kB@50X;q<2`3rPt(Ola&tAy+{<@#-@Al|(W1 z=;hUqrG(zy(9187PNRBg@zjm2Lw&F*X)MzX@q;qm-W@4#f}?cuW|Xi3Cr9io?+p;? zq(&DOqV0zhtWdu<$$NwQX+yLW4JCtK=@CrHWCcWt8X2LBi^U5=C=nXO>pd`3i)YMi z*{qm%X3At6FNEb&>>49AKt-~|pTl5^oe@`(yF*H98*&=D6Bc*Vg# zLcDynI{#qu6eXF=m5@v-4RWM>7IP>y)O5y0zDlWL!7>k^0O*%@P>{dYD=AsSpjg1fWz|LjQ;GLNm52FSU6fmU%FF>|+m_WXRODV|)o$M64Se)=GZv*le6*V*h)vRGB)tctrSn$+7sj%GI zGS5}vUSls@8}Qd6KBfKAan?{M0dkRmPyPYFrUL57T7{^4=AfN$IJIO+;z{dmt7`Tsm(557T`t$CZq^-tH=x1cjG3K zUYaxGpuXq49+|^(mTV8X+ZP2J!g#+{)1J?M)WP$OHyr<-@p{Un4<@bbdCT2(X6jhG zN7F0)HH5!wTBC||D%WrATGxr~=I&efPOZ+Z$Nu@w)7|e*`*q6a--dtAt8Yp)%FHk{dceRUXc>} z{@>G=-wq!6XPtYsqHMiaH2G%t9P0`R>|=7^g-BU(kGgi-d?|Z~=g$WnqsESEIV3ov z+q62bRa@e;;zbwSwqfBVZE|QVbqO_i>^QmH<=Twx=kxkp*wawu*slGSm}_6vn}^$} z79dDX9xJ)MV;Y8AmF_=Vs(ULvo6(g zo(x~FdDHJ(m#)^4^RAR%JVx{0iEZ1D;Wi6iEDm1xdhgx+_ot+}@B1BG(p)qD==Xn5 zZMNmty$k<2Zb-lNQ&WGu^;ku`w*5Cvd+0Hs;x_?F^W z#-6+}-f7;pzW3w1_syvhiwm|x8E;&7{YQ(o-8W2g?emM5&48{}(evCcdM%A<*di!; z+vB(G@KHR*v;FD5@r#c;=+vNx6z#M7 zr#n60jBgj}{TR138SlU!U$sxz5VN-GnO;A+v|kvp^h@7cm$N)yv`qiv+Bv7UJEFCq z57MYQ&CGq=Wb7Ni4Y=y`&Lp=R=dT;I4ZfPWX!-2Gd5h~b@<$gso$-1tY5HWQXOAD+ zWZY^#>sj+Bo7a7P*74#$&FbyE_-nt)czsabu zVu8Jv^Us?uyUf%C_B_?7#j)l;RjyjULq^v~ys!%Q$uz11!*;BWs?)aH<}J(b_BnTQ z|D!=$JX+;0X)tG0%=2I0?(T)Yo$+q=^Ex~va`N-Xm=$T;3Qx^!UZWDgExws5pFehqnVfoiJOjNb&k@ zX}T!8#g8F>K7N{d?YBCEx<4KJQK!J*3vPWcP73Iq<&EV>jAv)-+kMwt4cAU--9Prj zHZH$A9_yODs-o&@-nvfB`_FIn8E*M9-mtGm-ugNx^1XAvt=`bgCE&w0xwn_E&_A2F zu44G)dY<%xjTemP>)%W3{pQ6w(KAO~IrVVVq1C&kkiBDH`#SklgN&uUQxb7olWtw8 z)?WNaavI&I^V#Rw{t;(~57?g)vo9sR<=U;c23;I5Dmw{py=1&)k8WN%^hNl%c5l4@ z;;ltjBDcTzt*?_?#SP1HhevKccO3b+!Faa2mo*E&`QqH+T4B{zZmX4@)MRu0{@HWw zyWWP=>H*{?;M{H$ik zz)fFUeN=g(ZfCh`|J1yS8f9B8 z??oCu2f}#YKkRq!!ANP-;yR~yY+K&Idi&eG^X^q^XML~R=o-HF?x7!QjQj2wk1{UX zOnlb$y2qv7o0q39e>>=N)uUgAjUL=;<;J=0TLW^jJc{u~)oXNr-^%WpUH2R~ob`p~ z*YB{TWYNVfDp*xpix=tz4r=diOfZXE%BG`;k7cHyNGr zwRM-veOBWwdQ~Xi$w#Z-Nou;F(wQgY<~+$-FzIdI+#S0*4!hH)`LLx&zwt!BJB9J2 zgNB_GS2(x6di%RKhTR+%duDx7Osh$De?8ss^Pj-co zN7_sr7joppAVXF^-&y@@xBdF4AC^K^rFf%$Xt=h?{c?NyS}j@e&zC-%PNyG>x#K*# z+|4e7b`2YQ0ke-$j5lLsbzQEN=MTU1u6Q!#Qj^5Lb`EQ`vqG1*wk9^R>*@AnF>cK< z-lFZz_doTXv%sl#&cnT1uX$y6cw(&yy}vqP_p{2kN93%)D>qQq8kJAPmF~^{)O2!t zc53CRoE4WJwH)H#^20mLzx-y+p^P2d(P!uwFZqnUe@2F{bxO!}{c5jEX)Uz&2iEva zzJ7M0i*@ecHXE@djPY75JTu#Hta8nYwHwy%c{=3tHa)+3P(C2aD$Vxr{f|DW+X@e~ zW6ad3?B@-2wSF>g`oczEw@&SJer1ye=cm6}>sUtQ`!}^y7HxQr?<_Fh^u3Nbi{HLI zZBS6vz?f!jr+hLwCh741 zzuWcJw3;>eT!n`F@BAuBxs2CjcHr!a9SzH>tvY$#>+_$ZYftOHvZwRj-%rJza%tdv zp)oE4qO3KlF~b`)PFpy;LT1L!+M%r`PQUIo`zMD=4j;|?Zq4^oTMYV>e-K%t8u8vw z>r%_@n7-Aj)|#`u^G>#DwW|57Yqy+F{qf_V)vmQLZk=J_)jHhI`nCRZ(s#9Ark)u# z(DAqM)KL}Qo;R>&_aAm?2ZjyCZEMWMG%A}T8#)J9w|RE9<}hh(x3_n;UUg=Q$FrEI zFhjd0KQ6xW1N@%x9$cK0;neMUn_3gDt3G}hdGuQ7;Yrt~ySHDoIpK#1OFu?`@B`zm zsI#eTF2S@rK}?jChl$GvF7;O zTYg&jJ<6Jb2A`yPFOjSvMiE znqA@#U*@d4n0aD(zujZzkS6F$3#cweJ zEajrd=|G{Q>eNjzH-_nHL6TaNm=K8JS9@i7cHNG=HW|EV0#M2Q;W52sR zKdwSJ`UA#u39Yhi(E2e4Rv%eZe!k0vUR9=i;rHdDay^^QSi3T<&hK@xY>e?X_p|wiL0X;+>iWr%c%xW=I>b${CO1Ks#%NTZS>iquFGz%z7+1>^s~uV z!lyN8G_J~>)wbQ9tZtir$SENdFS=p8K^M=>KAaZbY)9kvC-zou{+|8v2`ASy9ysyH z_Dv2uj^9K(I>dP6M|^p)@1gyzk1yDJeb)8GU+1Z=Z`B;hyfO9NaVx6aUxoHjyEet! zr*fCQ9dB)zap-r?JzFY1e7@?)PlrFB`%7p4f7CP2KdsUkkN-2?^mfZzy~qp*P3(63 zr|0vdF07i==fw{P54>?~*4=xp-}|gSKH1B7Z>0FwZQSU3?Ny;;6M~}0PMwh!(DM1i zyPYQ=bgk`OciDZM_tc?yU!Q!@G4=Z7V{V^>eK`EWKli`-JJaWiPh)+DweNIpaP>|u zmH{!|Q^T0q6`iIh1pb=+V|JC3ftyaH_N>vqg7(AZe>`%EzViahaTxEtIi1}+@6K}@ zxaPwj_pePk*#7C#$;-nUJsRKZ*AIVM`4r{+l<`ijzOm=&ll2=srw%D!znPzQUdkc6 zE=j2a)0)`CUimfw`RMUFrSHTD`|FPuExG&X?wRqr0YTlaRef-Lz^*zS0+MRfsg?a{ zG(L*Wc#E!d&^*bR^~bNa8|L44*x@#)(#mHId{=MU(0N14i(#s>_%IUVy*swt#ogau zh-_AG(f8*kF1epL_wV_(BWF3+8NPp84V!CNtJ&I#;!UqrA!gLml_Rgtzw`Z)^?U2> zUiyR6%2UI)XPrO#)8L$&SX42J@iZTfdG__TiX#kF25vpqDsIZQYee&3xjqaW=1 zZDVe&e|A0b-|2gK)RE-iQI$?(dL?aTysY;>tk$-=(}ATQ#19;~qj7b8?w-2q!oMg# zW#zG*?fc&OOOoz0-jk-=9wdC#>V8#Cx6{)C+!Q5&PV|UF|hFHj9pa{#K%D>iy4aRr+A*q!F`QEb`dA7#~Y#Jl~yfwtIBn@GQQQ z>+s}{e5-s}Zu4%t4Sl5A&kj}$cHR3f%7yWMs8apC36CdFdel1jxnXut|CHcX4L%y( zFmP?>uNzPO=LY7ncIb;Vs@(3KV*@meM$~~n zzr%QeS6|!uQ=s<8{inkJ+}6u&dmr~_OFDfpF6K;F#eYuic#@2_-7?;brFUok`Q`eF zw;nBdV?&jByIn?F-5B2`ZB2LQMS;scaEicrGULrMTn^0~JpYrafw8I2oVWRP^zG}Z z&mG@5=0eD^TiPABaKT4I>GR*=)GX$!n2@d8x7>X4*MyMw-tr2oUNbyndSx%Zn5EMGTr-;DnF<^kg^I9a+Vfs*`#(Q?$$#_S0jv7H8(Fpc?_1U< zJm`WK_B5dItPXydaLBG+{E2pHAAcP7S@WIChIdH+bLGuV??zgmkG~C`f$`=o3-D~e zU-xg@FKSin-|yzkDX+~Ob93(F<69@bd%(#xI|CmiW4r^=_eM6>_db`^CHeL9Z@p#v z!^&#?8U;6qo_uhB#vp6wD|oqYLy9+{YNqS*4lM@nPrZs&D>Yby>)#&Q6{iFfP1cyf@aZ zywW`J!J+A|Iq)dwm-Z++im#5Q=4*e{bd{D{c(9hlWIG!w_G#L zvzL2Hi0b6<-|8P+-}(2AYkoW2AV!Pv(h6gZM%Ciaw+A&Ib8%3ej~h+C(Wjc@%#g|-rlh6D${#lc}D>DVnBO0oN?Ne{4c@;;0l&A1spycXbK(ONfd~ zjn)IUc4^(VE#7C>+9fn&yI2O`clAOaO6C&dEDM`3lR0f_D zPfaCdWK=0rCD#WY??$?YmohM9QF*`~>$l1#m$8Xu(!C&Q!xAIQq}&n6h*W*@n6{-X zExG7%cQPd+#!^2}LhnjSPQ-1<6n(--3kfT`Ry7)nk?{s;`iNaAM-W~ir7cF(Y;@!h zT44R3W*dD#MDh>|QIw>X@&`He$~>$Ry@sCFtVb(r)uWPu}LV&Y>H(36Ptlx9kR z7b7Mnk12g4lT((0rE(Z{u%gq_I8l;vr;dqz`Nxo$lo*#dx+lh!O&6bPh%M7OWOQ=uNPRNPbScY^{DwJTnT$b-TSt%7m1z=V ztPqda>k{;%@bC?u zS+WpcNqQZ*z6r=W3EXN8vW zE7Vs~%21jMmwH}8ZAzT$@ouE_8ODdu;vz6 z!;>+wrF9oRxW(Xdr{%^~c3le|Co$kTA1wDy<|~>@d9sXiw1hG`w~z<8j%89ugwe*jSbjSL!x~s}oqIF3(X)pD0XtQW7m)ge^PI&7TOD)uaVu zP;4~bwp=E&G&JE+iKE)PmsMcsuGnM)V^JA+U_7q9@W4Fr|R6jo^DK84KdZW9_rFTwT$Bj*hp_@Xb z4-0cDTqrDMIC2+_u#l#hi1^sJF{KO@-jZ?0pp*gS=Z~(6L=4dvn#Zym zK&XAoFK{T;AR?z-p76StO-ZCg508!>ZrO3lt_a59)i5bI=}ES9F{SLH(T|QwvNW?O zyBJ0f*NwEm~D(8LDwy8=F0cKJw&i2F}-z%%flMu9m9Ub3HzE0tsZ z>)edQpc_-_LB;5-5g!PMNRBG?oRf`r33|h*(ypjbI^TqZGU~?VuF%zj2b6sBl!_Ns zl|G>SvyxI@a;J%AByRnc$?Sku>qIBTCKYn2s3gTDS0i2#m7tF+iyM=2fOJ{ckP?kL za1M3RIO`*mG+iNLlQi_(UDHDI4pTr+3jQO7|LBOLT{W+4sBv!V#sclAX~hCAeMqit zm7uUZm%VP&M)G%_~oWu%r;fO<3C zC>g1x4}tnH-AWm$r9(jeOm|F1YN;Zg{d&N3m4Un&a*%ausk*FFOSOTp6ddWRD|q!~ zomy%rc+G$wGF~gebCq>!$xZM&0X=5Cu7c+!>(o*Y!Se&U$#?-k-5KgD>(o++tW!$^ zfpXZ(o+|;Kc%6W4w5vP7IBZbtp+$rnsQP!!YbXljCGJ(#q zqceauF*HZksik?cPAx44`kftJF6$~uD`cHo`b6;70bOLgO@g;Y)~Tg!g0~as4CCzv zYR}MKS*Mo1mvyLfpp)$AF(5aFPRcs9bV}B#rL#b%+0owx?~<%jOIHN%CeRVay94CH z(0y5_mj0G?YUv3OmNLU%o(Y~+6|PfDDj>3j{{bCjyvjgWhz<(}SqJ}-(0A-;SHbg=b?`sI^8?z+cmY6I#EtO! z$~yR;tb_jn?P5m<30{P(gZ~L$SXNGYj!R}hZdRCWR=K@5Y|}4R&D7>(1=wae?7d~5 zez|I9*o`c$ZI*5NrK*_$=Vh8Tqg~7jxRHLToS|M;SZ?}QYsp}nrM;M`y?WawE8u)) zz}2jwnPHD_*GBL!8qtBSY512~5h+XGYt0h;xJB5#%&-#(CO9j=zHe5TUB4UP zNa_3R(#PME49;2F6F71YM;`af(%J*t_00;%Wh4|>R&PzFRaV%I^vl+UYAB(sUd~w# zkIr$F>A;Ry8SL0^%>gTVFBC#SMzj7L^qn1Z0_u2eq(CeF3I|6i1!x0wjuNW1@0*zc zc{`wyh98u^V)8o_qg__2{WQBOQ|-zz-QLR*Lan;p&VGjDF>s|!_<`0w{aY(aZ~9&< zB;OXvN8ROR1zW%P=^Y+DwQw3AY*0ryx!_g<7#T6?(P0c{=*!z!ohHx8L$xd*h=HzTFFDC!xZR^_s^_p*9v zG95&|0+0tstBL>K1}(L>l5J%72W$1s{J`xpwRy-_ivaudy(&~fi<7A4EYdyBw9N{; zm*wqz0B?b!s89ywZpYK7N~GZ@@f#u8SIz&)$_#B{;-NG!^2^e0s+~P!oxG$9utUKh z4K2d#)4#Ju>RWsVf1{ENdyE>UJUAb)vKG&(Y znU_A=QA%|{v7~oG6O-$jBH)#dvO;T78cL0W5RV zN7s@J1ydf7#~L#CQFs8gRMV8>0aez^+pwON#s%T;NcRDWoI`2+Xd`Gc#%`{`QQ_vi zO7jkQ(o67*Fsg6Sh`wA?Vxw9mG%8r*skM}HABy;qfV>wq$X##0rZjC+J+BTte#FLP z8>y8*G-ElA-G=oV9LbJemeJDGf=9~{MN88N9xX>~$g`)amwigk!(*PeOzpk=){KtK zerf=QoUj+^|JE>6r12pAaii1`aF?pv`#MejiF#kj(pZzb3o$b!#!RDn835ym<^k8(7en>O2B`AhQ{JQ&ChM5$@ovR za=E$KqK|oORvmn}ocQmzpcyox(aXbGSRPs<^`2~OxE;)lUozh0N5IA+$JeGhTA{$u z-SQ!)T;E|<2=N9Yl;qK-IUvoFZ6rKqCT+ydhPd>cQm6RcS4}aqJ9$y=>g93O+GeV? z8XW=#7j!0e>EEgP<>yxJM(g#nkU5&#+eqJ-WzMuVra4+o4TCExGm>w?Hq=qNAH|7T zvE7`DW87nG4K*!NZYRq*z)=>mJe9IeErjolArRawhfI4o>H$xC>Rq@eTK7c*d7ge* z1!q7#TJw5j+80bK*CuyPn)K5tlnq{Lix)v+cVypE&SAQD@ShrrqcjEoxo)P={RFg$ z9c8T;cjZO&ZwA6;36zAuSPC;!X${W|k1JP-&jg%^M89+4R*+|oct^pM?wn8O8EVYxR zgPAPUP6@XVds$t0yf3j=(($VCzpA~G?*Cuxm3;iKRBDz>#ji}Y1%D~+!q?1S-Q?dd zE7yV{{?BTZbSmjrek)Qbhq9JRE?-tYB|YAsO_?RUd6RE1lkFs2eZ*Fne3^X%9!;VB zV{z@3a7ro_|9e%b)U%Lsew1{}KZQ_uiof`n@!drE^9JA`|87v2UTHUlNjZF_T$F?; z=_|Eg+SBO<#=pX(9HA1wxon5mfY7E$#s9eW<$jpYlM6sm$WqCtBFzpL+s_qyrM%3; zQS|0g;VJenljeNow-T;mulSLo|9@SY=fnK>tEOKmkK#%tUWM;gPSJ4bWA@whXu)5v zn(qI#<7HXea!}eqVY0CBmHJm|RN*PV6{+Y8lS;q!e@hmYuKy{$QjX?QiC?J~<+r&s zw^M#AyqDQ4yjPVq<5iijU=DUiEBbQPE%^%2NlpiqIr z1&S6ZP9TFomw~;c0PPt}dBh44OWdf}dXrn;c0__rLpFl?iIxWz7fvyUaBT%kD zc>>YR2D$tMqI(Hk=OmD`K=iFB{qJ%r9jAb){E1qv4^TA(w}}w@c{u33ODT(*m6r=&C?D0_6hn@bZMt8uK-|`~-3o$Vnh) zfm#YgUoqyk9s<$)kL&ye3Kb|^plE^O1TqLTPM{2drVBJ*pk)HB5@@49*#hknXrDkw z1v)Lzd4aA9lp|2CKzRaL<6f#`-K+yul31kpxoIn{sbh8B4Tm_mh&@zEm3A9n5Y=L$Ov`?U;0-YACY z|l%GJ30yzof4CKK)q9qV5W3!Rm#ZeD|d<60rC{&(BLN_0XZn)Y=%Yf(>zKyg>9Nj2T zHV`eEvypZI(Oo?oX`eWHRG`xWofqh;Ksf^C3X}yf?eYg@i(4)Z@CUcdCY3yz!w zat7jc*;44-1@aJxUKh%3{RIjI;0?ij_nLw)q+9*&qklcQSZl6F$#nID3cV6hO3X~&Iu0VMLS*u0) z3FIh{lR(Y_wG_x*AP<3j1o9UsRG@Hyq6LZ*$RN--fieV|F3@~|mI<^CYN^U zaRM0x8YfVOK+^@9FVHf9RtdCGplpG53A7KWKKDN$?sccd(enab6(~obT!HcgvaTY^ zPasEuoCI`TEbo9f<~~3;=!sr{tyw+b#qI*LqmJSzUBHvl$J?^! z5^S-M>~=*k(!Xn&zaqSsCVjje9S^g^5@a05TIFw>X7c67VY!)ovBp0SOEwSSdJ&7A zEgxqXdMtIfl_*^gu{)Di-adz7DynI)0!1+Wa2MUBf9GeuU#k+_juqGpj5=RTz(y%KVrSVs|K6($yAS>~3 zLK>yJCnP1i7o-!UA7o=le@Hrs2!QMi*&EUavJYe+WDsNmWH97R$bOJZAVVNOg$#wH z8jA(5IW{WPMHBW4ru8x+{IRU8~;9IMj+Dy@}}CRkIzdRXM_I}-ovuq8{%1n+gMNe zI0nuclj$&Ve4d1_gpaET@M3}_fvLU09wWdtH|cg`S`LgA`Q?a*+TpwxFDS%-8(Dpw z4-gIcy-M!sXwf|@!kejzSW|&CcTX*jdzrZ>*-$mpM}dbI>YiTF!%|ZWvSX2VQZyDe z**k9-d#AnZof>QSVWbZ}SWFtKdaemcj$$rNO+6KRRAf++R2vk^23PQigJNRv2&YsN zho}oMJ`{p?hoM#SZ|H`i3*s$=@{Y%u2SzR6Kt5Eag$eE;A9z#i= z^GzDbm0r=&$;M6S9)edkDo1KU^q?5?OvndtaVp!tAt`sbI-OP<@;M}(bt9}a4+tyB zZjdU-o{-j%evmeheIYAAhCo(@d<(KVWDKMuBsJI9AgPJfg2dNLq}q@xA?rYX2I&O3 z8S)LtuORC|9);9E{tDRu@*Jcy}OELOTas|DyPP+1Izr0XqlkW?=5at)Ce@*3g~ zE{5YbA+>ZJ|M_E$w`HW3o&tS`y^{1oMrx@p>W|yjmyw!%9+>MqgpN{0wdIUm*(fDN z)h@+iUb|#NIU@g0cuDPc=va)}H5nmaxpu3Y)a1x``i_fK$3&^e$T~uY4@~Hj4I@}R zlVh3HvliK+jlRUk>iGeF7}ql8-@KOlp*E>Z-hp(191Kb269Gx(OXsV+mI?88NQl?+ zPNt(;CZv|~@P8N6QJW^DmYM)@+ZHlXOP)gKBXpK(IRYV&UTMP>n$pC`n(6LC|0VV= zW^I^ksFhJK7XOl3W_3&vD4P+sGz+2@rnF$Wg_#aCmfJ72!U1v=Cbi?K#0yF3rrN>f zb;(`U_dzXCeEyKmkO7eN&`=;Gn7v!Ur*aPBR_gLttzPOGu zZr;Yop^9o_|KPZJ8zUR?r|#I3UQ+tr#c5+@(}P;*ElrypzPJ*FH^~&zh4KfrjG7jk z-gZPDm5uUk-nNoZJ5&~_kZ@dSBqWu~D7n_^1M^xV#A}TZZ(9eMj@lL>we&Ck?`OK_ zGQvw2tdz&lY3&KO?I?8AgL0jv+HHMu$#9nvLO!n;)o(^w>>|@ zpa?8%W!SbX_H>j^^V%4TQm3@P3rWN4I7rIJc)2zR^V%T9YlDzlx`F>(mm?#~GmaKG zYK^@lB}z7wsz%t8i!RX)1$rykDBFKsqLfba5>1m!bRs03@=b!Ie5A`I+60)FC?Q^= zgm{T^9hE58QOTM2K=c3|jY`HPN-c`GHIHMDZ z6S6u=ISr?ib2=a5fy6}&@y2V^SqM3bHXu5JG>m@zb5g{b<)n-~v=;V;~nE-XA#m?3y6X*pcJ<~uGMJOGL22FgZt zNnS@@hkF_2M^VmVmUZh=G^rLB;#m9imMKz;$a z3Gz!w^7$Q*)Ly6!@YY9&w?0B@X(d=(hqxHRJVEHL2%TLyg=a4#%l#hZ4yQDQwo+Rh zH@{>>Hk5`cki%ZyN_*pV#jK@LJQg;&rBZ_tr(3VsQmK8=Sve)@SYm@;h2lDV5&}GZ|6R1Hdn^TbF;in;K2K_T6^_9Oswubx_ z(i8F=WPixtAnBa_Jfs2gcgV?*e?ZQFya-9{_!8s_$ZL?BA+JM{N8f*!ehv?=R|;QJYt&9@4v-yAG7|Q zY;3X9{C5aN$F>3&J8_QAy4m1leN61=0z)UoDsN>tbXuC|KR`5|N?eeXeyZ{EknXbn zYbs&jU69U@yCG@L`3)rHa}OkyIPJW|3Gosq#79)F%aM7w&5E+;I%^rJ3%-yA51w1A z(=XZ@@MtN@|91^#l+H62_BNtYhHN=Q8|={Ly&ao;xHr)NJk+lU&kP+8rEayl}CtI9wD`K zPd-{nqGrc+RFV&|lRGFIm48tsOv9Ddthta4rLGnBp)W7t5dDyNJx+w^0xU&kVf$}N z+4y9N(oCgH31}&&;5(Ee<>PxuD&>8Ul&AfWRJv8M^U@{6OP7$El_}TJi7(et$mXSc z9y)4-6dG;j7YrXkXMVa%Hq=#9_c^Y}($$XCbKj*XENpVA(#Ru5uvhk7N0X~ZQF`x0 zd}j`~Uh*eyNv_gsW+cA^yyG^O(~t@_nM-oPEJr5UA~@=Y~V8Ipz?+WM*Zu=OTn z9sGU^vN`12kUo%6kO7dt(DKxKX zLcFF4@zds;Om`dq38^JJbZ9wDNAIK{#4j>(TRKJNww64CPI^dh>=ERHq@&Z1HQ3Eh zk;#TQ)B~gx=@GtdOWMj_aYiF*(726JI?dbI6r8wG+TVwyng3Ks%10(7l>yZzFL^?| zx$eIxQA5!s>h}LyiB6YGbcS4_GvyMUC6_4mV7x>L@e(D(OO)%VM7hpV zi3Z_lQ9epTzqyZ+4b`(B_SB+F^ndCyPF1tc$mIO77Sc(5KDGipI(MXL7x^=7bbXb6 z_uxOp)$j-S?J4U>P#KtyO~^Q}63`LGt12V4$uosZDbG@FO_UwFpIqCMk(>T*

But(anIm9@(j)+&)_=p46Y;3;5zaQuCwGBh1?GLCnWVa*CEeA-h`w& zx&=w~+a5dbs|azAB!m-k)bbgoqmw>D{FW@|)rXGryk%5L@)f#pp&Kl8Y~2j4m7;Z1 zcpECcLe(Wxi$Ed??BSzP6ycxQV;1383Re>Fa(kuXbpDmK!msh5#m!6uFH{mYSxi)9l00hS*j(P z;8WRA47Bxa%3M-Rt)D?>ezHY2h(V&}@otf|^rn6^pIjSP4<$q1ELG1dpKO_~&WO_c z`-GUxUNnfb36I!9^(wtg4>@T{72_w>G7TllM){{&rcC+EN^hJLQJH8VDH31E){s3R zdqVbxjDqX~IRVlilFBatlFGglc3!)Lc#RDKK5l^z)uMNuXusB48345@~Ui~Rz2OSekv9t0PCk6}lx=1=nm*ioAUSv(fLi!~YUamR}Z;=dpL9dRa_eRpI zB=N#&lQ%|s!gLdM%NHek&$Tkx<9|6r4g6ObUccS&c73|0 zY(>skz}*$QmB^+E3lwMC`Ys&p6=2bwb6u)<2)^zo0&kHQ7%$1j{`fFv$R z4`n~(_bA_fCx0TrJVv~v{GQ@2cxg9W=N?kQUqRbaIba%44dsHjiJC8holQ|%+Tx)6 z9J`G)2LCTIG!g&lPL88Qt;?6`sD07I%tktl|5O)_(pmhcNt%sxN$7HbHZ$El{NKV* zF8*(2=rR6pV~A>jAC*vm99imHY5b)*IA#)TGxz)vIPPn9v6yTqg(OG6%=77rrjhqk zToyJAwUu#hZ*-)pR9^Y%>>udb4%2iKg}b@J6$-QE=&#m(s38KPe?Nx0o^ zK8X9eb+n-KD)gc$jqG&tVK#C50^!qUHmavFCI3fdO|7;vei~%`Uzog8J>abgtUrGU z*$lt`fpmv_1nCL+7?N83bI2sf7m)8m;w|-QA46C{?u4|4JONoA@=wSLkam#NZ}L`8 zh_`w|YPMvayt@*+9YILVe2u)Zl0?}eq-LWq`CujK2mB|54|U-GW~MtMBQ-7Emp?s% zMgI(`CCotO&x}OMNG&A;U1YYnkIxW3M*_sthkN7tdziHXvZ2zSjeUHPtzbYRzbmbT4g=%uKb>Y$+~!^z44vt^wkSP#u9lSUD3kml zC7ur{1?HSo7Upx#iSQmOpZ6i(fXsxXQ^o0!0g$sGqao))z6<#QB$eetNGd6B?A+@J zajzq!X0yx(Om_?a3GsDre=*&2{3oPls|Fr2T{YAnA$(Q^hKwk&(PdsYmjX3bO7#=Ozt(~t;!%zaFcq57!dA!AYu`gnFG4iifo+913C!Mw@1TqrK{ za_M1%wL8%JLQ)!fLQ=U<{qu4m#LI<{n$4TIZnMl|<$^02U9`3-*0|hJ4_7qk!%H-a zvCE_~#1l65pOBPGkA|h**lnb`_}_;iIy3iY$WqxV`JlAXW?r_`Uz^Wr$%gVq=LPQ- zUbcEekHly_)^Mf9>0eT=rWZ84^+U`ivRd48Y=}O_9x>9$7ULfqA8Y8RkI~cD2=ytU ziE=dJ2Gsztl#SAB-t&Bn9)$9+0>Es4dT?HE78 zo}Z!?_5?fLWrY8qVs~V>v)3?0J?3W&S*l@A9HBBJ-=K|Zn95OUJvV{PS3Y_|M;t1- zsQen{kNwd@D@GTult%z54hvg)HIzwbb}8yLv>%#(*@C7*^hvbFovxTtfeu7`Nu&u* zOpIeRN&utLGgov?g>t}Y@?%f*&>&To@k4{Ppqq~A6ZJre;yFcpDp_v4to3$;k+OLL zkatjdw3L-yam9+F_k`3ydO=cI-~uMA{Z+uc_6hOYC#06>VmjB+#dNOY&yvdDnZc(m z=;Vt%5&AlP%!O4md)Sk%c;Yii?5RHa3T7UCEJl3riC?~~hlr@rJF)?ZT+Q+cYY>i5 z$x?CCMip-ZX^ow_%{$o5ha$2ejvw|k^NJ5KZqZ7$Qw$b1be2>*6!%4hGgNM$)QHJ~ zoTbo4OuYdWk_IVFilnwr8d}f5HPk;CUw^0DD6~uf8@UNxe{TRB6)8FeS{N#xB^^ve zd87PNWtE8Bl*xzZ26jkoCfSfxoA#1I_EP9 z$E`qI1w*Fm_NG<^ImOWwjEjfM(@aB~jrb@;(K+RI`JCc}6Gn7w`BpInG>Z#pNb#0b zqejN87cr}sNA_A0?z4W$uLo(REPXe)M4w>Chvi$N1%*e;pJ7jmj+E4!#;+OQ`sZcq z4{y74v(pbA7g}FVtFra(6hocfwKfkrnpo}}aofI2r#<|-?bTUZvN!)T?0kB3jVZ}lx~}2#?B5L= z5b@`lns<)3TKMQfitoxdRFykS(6nvXs@+7_k!Ozi4|d!V6n?_L?%^4)pD%AX`tP-K zE3P@*a6Iztvn!o@z1#WqI-h*@FirE__?yeKFW7Z_effY|Q>M8FrGAk3(NM3%CYvv1 zzhB|Qw$G~{AMo!k>();OXD4hi`*Oj5xKO3`_CCS`~JGMo?SKHPd|D#eeNi?rVi8I4bFZ&_{|O< zE;@ES`Ns9fKb{OM|9o}luP%muH}1UdOzjI+a|ZaHIk@{&gC6UTlxue@VnNIK3(oak zkbHec()K^@{yDm?VbG@=6Bpa(B#z$rW~1+?sOEcXU0B1^t7#qI`cki6?qBbp zVTYdot!by8%vKrB9@*1kqoQx|g=fd1H$& z|2!<|;fjfs#+n~jew!cvU~?m@HD~w#7@|5JnX~xR`e@e%opEjb?Cq!FkE?{kLRUSuFR&MxD+%r!z0`sj#%2wqI zSkZW+vSQaUfu1f;K(>^)w#imD1*~XVsIsEdGTMf|{^W;zD;nKtt5Cp-O}`4sSA98B z+X7ZJ`lzg^$f?A?3=GB<8JSFPM_^mU0#@ua%ql>(ig(2m@xm%owo(_cq6xXmN-JB9 zsxxAKz7-ZSvkhxo%<7BAT$NRG{3nWjTz@00zhx`C0#-D_tE^hcRv+GWU6dbJW6CPF z$_1=2WiYau854x6m7|ab%2rhhSXDK#@=pH?ZlqXYeHYuR7O-OTU@MxbkViKE#~OvI zSnZLm>DH-Jr?#YJ90?kC7Z;cI6f)Ns_kJ|fRat#bbZq0E$6nwi zX59DE#9L(*jp8S7p{))>#^KNjtIDb(IJCX_^+xo_^ustDx>%vI8jZ{<;W+VdjQV-H zJgBltf+_V5v{fv?sRu2>G2*BTa5Rk55ghU#+H4DO>O*T9SET}+28^RYI7*uB3UC@0 z;8ZTaab_IcOlR|Z{J=;=AsUxYBgU~cDj%By91KoKv!_wMtU1SM9K;DAI9>4{G->9f z=rINBqABCh*@%*_CI#YZ#yE7Ut8mH};7~uTvZCu!G;+{ZqX36`U6qw_8CEI4X<2}S zn>^4NmrpCk$v|Ax!_sD7fYTaUm6b8ap#Y~1&NHsIppQ6j${E95=@K*ofm;AU*Dk(;NRmldg^Y%|d$U>{Mk% zKCjf5dx3D;GmbSlG`6*y=4~jLuMUjkj*L?;Ok4W`Y3>NE%4!wDp^=rg*9vetL94Q= zWt5%@1=2$^ER_|8I=1bdnD13Hma33p2ov5Egsi%?n7 zN=GFej{@OzV;oQXr~Wdb?=Td(c{tq}C)y~SZUw@j5cs%E{xdf1%r^zY@nW3W2uJZB zPZo|YULPNoghtCYjXXLuRuU~Kn)U@W0kWo>;0%*Bo`_|0$esH~`FXuA|RY96ma9XL2mVVgJp(|HOT&DlJm z2WhNmJhsCAQGzoDG$o93auqU;iItCuRn4PkHsxFS$ySVGVx={)GL37YY{fVxR=y@y zop+D^B|om;Wh=%pvFd4JWg1rl$}Tp>F|q0eZGLI&nmGdXsFX&mY{fVxR(>W{&2{aJ zO5-!xig8S=sNc(v%QS_5$ySVGV%5jQ>W^pKktJI(j)_%Yu=3+F zEsft~E5Q{tSeRntp;A+iILbto%sU%u5L z*@|(%!;Gjh6YL+ZZ}1s4Wt%NgR#^>ZM~wfqjv6{Vr9Jhd{LyHY)d{881g!x=?M^p> z*ptzoCNG5a^z`%62IJ2=tVdArKy6@Xzk!~vp3t~@zGY;^pQnB`TlwMAS2Lzp0F=m5 zzV%)r8~$pyS1@sLc?F{m9bdu7yW~dg+m|?=_8m%W;@h_5CT=A+DS2LeUm-8PB~BQv zIe!(Sk{1Cjyen}`SO!!gn-pDgl%ASHXhdY3-rUr+uW2{oEp<0Fa4ArLmQCnxU%z+@ z!E0HNN%Gx5+&nD6LD%F((JCC=ax9cn*j>v42EDu_9qyR=N2D0E$;pYyp6-&)hs_y# z>J9wPB)y;~UtRFNx@TJ##m4;Jt7k{4dv_PJez&ie7Tqj$yiHXBwsnWXh*DHE3=f--_Ng$2Q{|8gmQWbbW!(}<2-Mm(R$9L^-3r>F7F9Ma?Mm(t{6xLqH|S#*_7V;?-& z_<}qgsb!5vzvB__2+pIVdfFpiql@WuoWrBO@a z(IxD;;4B!)d31f!Qu^q2(?M`N4cWICUJmq~!D&2+ zSo~7ArSRyY%>Z!L$-KhqBMlLq1gCEX3$D=mc!9$U!C5ew^XS@;rTkt+c>jX)$NQW| z^=2u3bbG>nD(5KwEroX)2j2kify^x`Jm*X$BrYw5_bU#y1y4PVa|#RZ8uH-*PJ`+B zJWJu71}_wxrZe+-mhwyMY2K1KoN2lI=m~{(vm|Na?4rY?3xM0eDL04n%0XC4pAW)& z4V<^;79Ad4uA2_dA2P3~@E(BEetyy6k^c<^XQ#|7D!gOhI4meSJi1KU1DrWB57{a- zze~Znu(0Ux2H~*7BHRMPPFrE=n~I1gfuml+d4=@{bSp6!oX=%mQQ>_LPM>8(hxZW< z&yhKtX*s_akv^B@XiH>(tuTN71joE(4kO~9C4Zst{seFT3eGAlyhI#+By)-iZyCai zS&8yp_44rCWzNgO`vko1pB5e7$2dF!9EUZWhh$jHuLc$MIyha{ab98hU5~@@;M635 zt*G$ogX6W4^9l>E84jn&9L}_yKDvd!47{V8iVn{gho6Jv^BLzA=6`fsa{xHIK7V<5 zcfoPr{POU6fwOT-(cw{k|ByMHS$KXcY{d&8w-p^;XB>`|IYos>{og0xUC(}bc(uP! zLgLa=`=HzJA>d_gFFL&DIJ_I2>oN~!7X6Rv_dYoFcN867{fdYe9K&ADYg|ZpY3QKt zeTN&PhdIvy!qRxu9{M^*&}U))KkR)8d`-vu_lZPA1PQ6F!A0y_>^lj$A!L)qRvK9) zWRrW7&`O(#w9?yjLupY<`JuG6)zVUwiYjX9UaeS)2#QkF_I|%J=ic00H_9*R|9#)j z=YP2Q&Y5{;f1YQanKNe&ud>SLj({9Ki_gJ$I^Nmo{V-BI74L3982N2ka7dY{D`edi=y zS@k`S@~r~Rn-~5$y&pjHBMo0%k4mraMZ8(~hol2LTID}B$3)N!yHY}Dt$%N!9&dss z@0z587+6hj3FuCPX2x|%R~G-dq5XQ^fX#MG(%}i1)%0@U|2=3%-A+Q1e|VrCTR~IA)6#I2#eeG%+|k)aDRhx^H9%{vd@GS&0$wV1 zed^KaQ69#CCR(K=SO*u7=Sw>MW74HR1|8dP%0qOhN2E@NAk#&8wY;*NJ$F79o#L_6e9HsV8IRvI zi+sg;nAx@m(w&FCI&MM7!Aqmju;^Dwf?uFwLrdw2-vHC4MvYC5oG9J`i^7Mx^cniN z4)DOMC4F6NG}J$}l}5^q48GJT(LX*aHCdM&tJky&ZmkJS(c>lP=i-wlXz=hWB|ZV4 za;v4dyM%|QM}jGP&3&<1&Lu*hfY{osR~%qhJ>Q_B zU8(NkhYHHeTN@e}796e}r40|(hJ*$NYr_YJ`Fi7h`ZB17X#Ik;!IG#0N;8}mkpd>^ z-8()>A2T5}A_0#! zq$!E9;ZOp21J0b9BEf_!$@-U~#z!eKQX^8Vk=t4!Pf2DUS}lv+L*&tqC`)B4)Mb?A z6%^gx3b~cCG*g@2F6+yMZrP&w!+ioqgeQxysfI^J=bH9SU53LjmNrB|}1s}*~6@#B*yTn{BHIo@nfSk<4JV2u$Yj8qPZ=$y!1~O$lMj^jP%?Nr{Pyhh9yJNU|u@Ks7DfEa=6o z$Ki<(c1BEeICT^fL;Lucl_%@PCrQJ|mogn=2X}i^ouZS|u+8gX*)m41_IQy^>>&ix zC>9TFA5nVqoW+>)kXW#XsT*vvD&2j&gvyXFV`Uz*JZ6=Ffb~>MG2ro9!c4;YsxiAh zUQAQACGz<)bn$~Kk5zY5Y{5h1X-0OWjNxkhctx-(Xnq!H)qK3P%8<4|Q)<$3c% z8Z<0CDA+eJ*f(@^xNm^4aq;$+gD|r&%y;P=&Xda>T+&d7G^0l~)g#O|AXHF)gZWGN zFmIZDcz@HuWd$s-px{7Zk@^O}O7-^&g?)r!*Fh8@+*!LA($7?stVS^ z#`0D)2>y;4`D^_HgGa;O5Ahv@LYE|84-`BjRkhcA{j}jjv|irYVC89q6eF$-@%9S! z3itL!y0B$OiyE+gsXA+!XiTBav-*P-rmTLvwJMj44}C*vJsv*1>Hj=m5Aw zynM9bL4yLuj2tvXX$5~yY#ueOkrN0uQcqS@7APQ8EocZf&9k{t2?d7cV3E7AJYgmu zCy<~v3fdpXMe;6%r5iNFD_GpobeGn5ZG^2tZ(xEE92yqH*76eFuoRwtLDo8{1){8H z2ddpLC|JvRnUOR&Ff7zJKs!=t47$E0bqEY%XLNUDO{v^j_c_AbCm`H6 zWMtsT?p@WyMbq=JpCP^hoDvPv3U+$Ij48|}A);5wYNoQ8GXt5l3EGIAC@ABRifnEp zW2wwRerIY25KMo(z`i3WSV5RI zX;~Te6i=E8VozeG3e+Sk ztc?p>J7frw#i0YTAfQzzsG@8d)*q$mDelzFz)WPvlcvg-s3g>zij{n3?2QseV@MYi z(5Nf?f{iT55GMDKiW5TafJ%fXBu7OgP~%cP52YYOG9O|E>KQhfn$W{-M*e2coAdWb z!Sxg&qsaILu|dg#J3u>RWPrD5-KHS%3lgf{#2w;J84AhSp0Cjnq(TEiF`3C#3XRS)sjq_f1Pmib#x! zZqEs7d;fS{RR0pjlgz-9@hH5Y5rJ5_F%I!Dsi{fH=m3UJMrkmLsY3|sEvwD;=eS$u zu*+&vkEum3rO4VNY=reN%VMW>>MzO#`BH{JV}|*KiZNy|qN^?VaNm>V5iSNxb;vQ- zld2dQMN){p-~o1+&`DIG*0^32g`)zJ5Zz3DN!_5<(n2{1>G_mQXtr1;m%&6&(7vG1 zq31cg*xI9xSn~7JqRA3auki6XG~{bctu z$IWKZIH;ctGYs_6D&Ywr|LR3%1$ItMTpV!I+9$Af?&i~ zG`2+zGcWr$-9O{CPR`4|4DWpM&HQ~agJ%uOn|SfvO(B~3%ES@mqa-W{I%{nF{9d`!99 zjz`lyQ9zCDrl#xtwyzwxL>K?^pRX<~4od&M!IgSZ4g;68{CxYHc2$zZ2eUyJq8Jix z_Un(6-X?f{x6d`|xr}xbf@bu8r9quq@478{&$+5An% z?+!b$qnWL1x9;m=&wko?7Ph@sV!m-lXXGm%b!pXceay_7*|FC?IX?d2b1i;}aSvL) z(ck+r*aTlG1YMoU%OhM{_o;R9_M{IqBYbyy^s|ecb-MC9Q#CIf-mvN5e(^;l&<$w( z!sWk@ro8pC@4k22Xl5VS{pZZq>werd_pd|xoC`-=`C$tb9wBLLJCFSEl^cCWRsGz5 zT-{4G?-_ix4F|N`bx;4|z0-v&Rz8)3ZGwU>+u{Czs_%@q3G9Ak{m%o(SiM4T}yo{&U@#L#w96glDc9UpM~9`AoN28-`y^95DRiQ}K9s6({JX4TxDZZ^Kpn zE1iaY?`1!#pH1|vE`?t6W1F=NjNWkT87CajF6bP7eUN)G>uTGl;(B~`DDdssS@##8 zZsYLtZ_{>7JoL50TSu^cSJ1t(_lFNYz5h(_XGi_{eoCt6Pn&+uUsh$xwl_!ae|7OU z4!c03#j|FOZPNGet$y=|GYen*iNxct1l1y?3(T8m#Z!Ktyj}QO0@U(qn8GcNbD9m5L+#N6LbZ?ecC-~b?nNTKMXnQ z(S2^j{LMZWP8mEOw9EPA?9Xn`^n}|Up%jX*XGU|-mv(vkrKYmWHZTjhJ z^A^4lFzcNL&HW~0JFB1@@@}i!uXzsI+i}K)Hm~1nb9?Qo&wg?({Ht~2t%bY$ec-YR zU)&OO<01}k(gj?}Y3E@-L^*%>=>fHlE_C0wZhMst7f)|)Gs^>fkG%vMTf55L*1bEv zML_u3xs9i->$}7K^SY}qfAGq|CT9Z2W!}$+)j31Zt@_5{^BGl^yzT7e{@sVCJYLfT z3_jMp?ZGxjtJiGOV@AJ7e9l|Yz53hm4OLt>Zh61qH#c5bK6A<@mulO7zaAKxy0_Wr zX}eRQG+puRRAXB(am(_k2A%t_UAOS^u%C~7d2`&lzU{BS+w{$h*!w>|Gr$WvN6-}o zd+nbPnS1|>BdaIhy0ByR$0rV?83Mokvej?#&rBaR8e7fQ3Od8R22&1rY&zC==IOs0 zoLUndcc^f@F8FeO)k({HJmc@_h9wH@wb9u6u4^@KW7}^+e!q1m?d&fN#tpdh+@f9q zK_|KlFP!c_)G!d=a}{(>4n706jcK;>r4A$G-|Oh{tLwpj8<$nJJ#%+euQnrRx5t*l zm4a^Kr|B0yyBPVx&%Z2R-P*(dy^hz57cPmpm%Xa$*xbgRW1tHj2s$6XA=-f>3L8Yf zmT~&njf}6BZ&yNgJy++m)MHI&%pa;t#?~P|#v@a8$;|6l_};bPH}4o&4&PvD3OWdilYad8Z>cJ@{p~TbHV<7hIndx%THn zsK#;=-e%@a%tk%*E^){xoT-#*i#!}6m+xOSIa8Std~^O?e2Mdzk>%a z^!D8_|A6g{V291SUuZRVDo!;KbWf$<+gM|L^Ak6^=Ka#~yAECjpSfQ>+vLouvF%#Qyl~I; zhV@rge`-+9fCdZSX!-o^bnmBIPMPtUU7u6KmSdZ*pvyf_`%+4)x2yedd)k|~4R23> z#^?H$Z9OMm>ey!D`~#nRLO&M>I%S`JYxWZN4rhwLXf&~CV*C#uq{OzL?)1l<)!$sm zoo|cwt6P)#&TUw~ichbvyVoAJu}b>a9kZu}e0_MF-Vp5b`pEj7KRe)yvk3)V)ZS(* zTVAcSW4O(`Oa9vI{o%Jc2V*a}PpMSYXWX`l&z*p6wnfn8r`Ha@ZsWQ4`=M2j=uWmw z{$uOJ_FJp;8M8jQxzpe-x8K2Y5454icHX8oU)~w`=G$)dFW%U-{;b!=9=Gi@p;wnD zZNFE&c=E+1m>>u`?}*a_TK}%;)#cu?rN=HVId!w$1iyCgU23!W^A%ss*s=+_WwD@3 z{lVF9#ta`jUC6nZd8@Gcwk_WXc%y1h z{eoJ{j-2!Q_`B%(uZ&ze*nQWp#}bZtG<84G0(7Q)EwqMrf^|Ke;kNx(| zxaFPr+EYE)VjA0e`-AQ3jC?a^TlWQyuZ4|v{bg)gMwMq~jjlUj?>6n|u<_W&DCq3J zUfnyWw*9@I>P}Qv_J3w;hh;y!)c0O&RG7Y7%WvMfv=@9Y=&lvMIm500{f_lsJZHQ3 zM&yCBq5G$weYI=%d25sQzBqp|^hOn!gc{o=)pqzy*zm#6Jsl@yoyZ-qX#4TLd*9qY zvgiCh6GmUH|NB$enkeY@2ISvPuKeO}+wAn))5l)!eKPa((6)`gIx=^(uF16{X9i>2 ztDswPQi&X-Sy@=C=Nn%thOe7u?`qk1#i3``9i4mo<$Iq`U5s&G(0#M=bY$YEE^+V7 z{qgSi&y2fsecK=Tg$sW;b3QwL;gBOSOR*4wyfwDr7w)9qIsN*S`F+n%@&$(@Cxtw0Urt`YjKWZ@Df9=c1Grx>H5?pj(_59W^esl%-)?vOAor|sn zJ(HK%EpcAr1h-l9UtBw0Q|nArr@)%ch*67qdr&^6s;zjj&G$T=)_#o($0ocka=ziUJYuUyX8>$Ch9o@_8##>XzC!}xsX;iVF$Hju< ziyJP295us!8IA3kDG}*yh7DgDx8Rj`roPhPg}5$Zy28G>FN6+HT|4K?eXa2YOF=h3 zY5R+tH*`FAVN&07$cD9=c z>y9#Um?PjL!ag(}ylw4i!O;9P2aR%*mSzhkx~D zheL1gI`{gycRssodv3kv>%8+bpP#m*#?@tzk1>L7SoJ=;dR|za|JARaJJwabaevv@ zNB4jH*7v>r{&IZn_?;TP@v#L#_iDF=?H}a%hbH$wboBo0s1wVk4|}k8UqPdTuV22> z;f0Ty;8i+7*GT8rutoE8^_PV{mlPQN+|2we|91CpT<)E_uT%Yj4HsO+ngRBfYHXj* zEp$ygmwT|w`(f`*I`P-lPyfvGKJDEirpL->dpA9E={k<>7j$>@Q{SlS_G(hVj~l<) zSmQ{*hsV+eKh?d8_PvF_-E@n-^Z@e@LHEL&y}Ni`p4DaaiubTgLdxwH1j>S{QQnPw?A0zIdekgCarz7vvglM^+`z^oz>Dl{`Afy)MJLA zJ3QI>+|7CKUcPzxhs^L%f&I_cymn~Rwgx@?Q=V#2Z{vTW73Et&H}7;0&Fzb?|MsK9 z>e*LawsaX+ZRx$HKFdE`-FtPr!Z6#P6vfSr`9A+#rNZsIPeitEJa6~$?02swzxC&A zhxFIo8%+9g!&CNW`{6qYf-a|CmDr3sOViKHzO?(@4|X-)K7X&<(qof08IB(~I{so& z2KZ0VY2KT9@3Re6C+lmBUjK9ZgqKcDtFiEK+sg~KHPIz+cW?0_whV&@HMZG)&-=8= zT$>m0-GqeVnQ_9}oY!v%8|q7j!T0igMhMx#!Z+v;;FQoI{l9&6PK18Y_t&4!h-w>s?}PX4LzlmgF{@J}mM`YO z;rRPqyVYND(SF{6kH;k2&b<0@y=rsjPoMlo+j)K0zJpg?1)a~<5#4TH)!$3()oD`d zBA*(YE3Mt`w0f9Q|K7f;L7jFzuPA#3-QF6tUwH9W?(~}-g6`|z2pp*kYTtCxlx6`d zdw)4jtsj$NY-Glj;U;BOY2iX^H zzT0SZjal10(rwOX_Q_f?zLeu-bLU&d99d_n*S;sn7=> z2s*coho5Wm+Md2syKU^WF2d(-&3>)F?Q`U@ZWy^Ie z(ptgIgPKO??)!4aI6L>#_>4+3=9^SAuhYUFZO3nM^y;}dy5Z2{EqX4R<78iV?wvXj zSy$)2ttjsay4H6Rhb=$tQW%#pet~AmHs8Gm@91id__gMOkpH;5d9H@Ow*l{KY#Xgw zdb&;WwRs;-wTo~naBj7K)w^O_Ct!G}U~+_~YoLf>j+B{@rKB zw7s>~_c(E*pmoDVZ#3++ary5Z@MQ`?chxU(!OXMzyM7VQeLH`d61ut8`ZX)wyxb=8 z{Ig!+y;gvio4|(F*iO^eIuX=y(}iA6Z~ySst;$Q6x{RMcXUn~f`pTX+^M2ZM2;-KZ zyVLulKROQ^ryO#ec(QJ#xb z`QW(&otD(z^x?hU)BUkxCg`+PcK9x~>)}*bcfx^1$L{7HI^A*V!I^KYP55qge&wy+ zn5(`c=zgE1`(w@e4>pXBY&3VJ+w{#RCf^wO(Vka7{J7Ws!udMbG|Cx4S9trq@Imzl zMm7I+$I!%pX02blG~dDg58q1(b3R;n@m%%kc>T8}%Xi+pAT?p2F7c+fc0<(g<2I+} zAGn-3@`C2|jK3Nz`(oXj*ak1?jymZ%W<>GXiaaFXly8&UpLl21kO%fJ9P2D{~jLQ#>T6CHU-aOqhn$# zqGR}&HvyZwtd#dj7)R~qN%}-qUS}n>imQE81=K!`Jtot!Qr0J_IarcU+;k~;3|s-6 zlt@w0rAL*sRBC_V+$5B1QaKYt6^$oXVbg5I)G|J~LevY2HZeJ}LfRdPOiqhQo!Ysa zt)(_SwngY7Vy)?cC*-b_)MRWh(8VOBTPaw@N!1j*n1PS1@T<|~96@A@!jn^{ zmS4!!X3}AQGKL*&qqjCrJW0D#F^NxY>XTEF6Ot$VD`gC4S)(e*4w{e_&yl-gc*LwB z!_!K5r99Rj-^EEzs2CNWrjM^s8!|dIK0PK?RJxq)N4^mZSRrGOk*%ZC!z;9i@rjA$ zt*2_`@C$L}GvkH5gw&vtWlB%1kkaB4Q<78lx(?-5NUW66*iMW{z}_({m8-acF+D0Z z4e#|N#)K!uWZ+Fkd@amMeovydRE8;&`TnJ{m$TFm8r2l3IBiQoRL?|>NJ)Y6!E2(J zD3-sZn8PNp&&q7$|DwNAba6DM%Wc@0^KXXKL*=h9K3$v;kzNss+oE{U6`(xCq=r+6 z^4BviA}PA8@u}kECV`)XF0XY`O3b6c+|~^EC*eb3?j%LUmERIWO47irm`a?7;VL4gFI4J8=D`FOAE)&ukE@$zK>kskC6_Jo>G!&oo39pb|Fs2C&g*B>* zD5cn9ToDNwizZ6O*T-Yy%gZiuaErxysdeG1IMsre0QGn~6E7I0$~QX7Iorl8F{y$k zC+Yy#vqJi)j788V)OT^{59>YhLB(v36@Ii^$*jMN6;7-;4&ur^%*pbtM^Tm&BXGb?Ma*c`XEqg)o=^-EqATF3 zlsXK>rY0w1R#e`4igKZc%b$*M`X`dMc=;JmU&+$YlS#yXbu@af4DOO2@jlLEYs z6E~t`aHdKHutmv}*@T!05m8+1G(Dev;^i3m#lZ>~#kfk1=gQ^hF0ACnC&luyQ2EnB zp|Dg~&U92Ai?mRt*oegVgsJ6B5e%OgHKqKCpl+#H0_f!~_Z&FePsc}^mcB+sXrs1r;@+VX>ttj`J zIW5IVJp8K=>p;9ApAw%^##+ylFofETIGHagCZQr8O{xiUT~@D)MjyC`dT88ZB2zT| z0P!gr-gnis)jTUa;7<>Eqmws15!z4lUq{rqckZI*(q1I2DA-mjjykqi{9K;JUc(iY zaJ0J(k6m7^x*U~*aN(6X_#IJQjtY-s*9kf=)#a#+hf6Q~qE(lpvUPZ+3%`y1#B1K+ zHrJO1~Qk7>yh2rF=Df zzgvTti4m!oZEFzEqk~4I1y3X)w<7w+YU1@IOG?&jQe#pg;;~b)ok%Sq0>>=kI7tnr zJYpwhMtnkopvy>3okU+8ftoP2oko6yQ76lmrpJU$A0LHhl2c6yA`hLF(#0mHYNjTq zHPPVTxaxT459a|W!*Kdsuo8g3eo7Y{c-lenhRYAFig)C7Be}W}BzFUeZ_bN08tEH= z1B`GiHSFgk~?hrF2Mlrw9G;OYH+OAnArZ-aYMNZ!Mi^#afDmrB< zeo0D%qF3UTbR`CUsY)7rqLl>vlO>8#rXU1oB$W}OQJN~vkxo;bOW8~jS%Esta53j% z&jRgTW>uj5Rsvp+;N2}dKu)HElIB>{9L!Us!5@Rxp@6{%aJEUUnw{y469SZUmx&|K z)3@j@c&O+m{uF41M{!ky|M{F`b(UjgsM-oq0<*su{wr=X_DAPuQ(g$0BED#3RfN+Uq$x zEA`Rd($z5dU(en}(mwvTbdE)rkVp{=ig*U?-F!c1r#%0QhOjdRt*gQ5jp3+P+pz1w z2JJ;-qaaH~3$)^~de-2RVOtNUI}>_j=yzE(7*@-S1jl zsd$Yc>^N$P@}noO7wxo;k zabGwq*y63+!OvBB1Ap1%uFB_dT@ilyxNju>L11-jUMO?{V6XSFYaB?PKi-Zrgc+lIWuJ|*YsLA z!>6(_%|Uodk(8E#6Pl~JIDmSWE7Y;+*xPC@cvBYQhgWbjLb10kMjsR(jp9~wVUg*d zgcRZD0;+FuAfF!o!7;kD1fGFb&E*!n7%_?;nMFyex!i>h&ka#? zWl63Zi2}v>syM02)>vTW8ARp}mlH_OtE5S#hz1}uP0-+oifS&0LB!g{@hIwQEap@QKy(pAJUJsp_ngSKuynS^EwVMw zE*$xMjnvfauBh2XnaalU)li;w*)C`*D;i)WCD7#>aEpv6LdYLHBD^c^)~Npb?UXF? z%-6u`zym;b*FoUZz(YXx$zfnC;1OVF;4xqy;CH~G!0&;>fjm!1fWHCf z0#5)J0tGWhHAiuoCcHpe=A2uqyB~pd)Y>uo{q!?+pAMSPNJS z?N}Sw0_X~C1#|ZtH(O&mTegVaGAB+zm4LJIJvzcV}9q;;9&hvrj$1 zYvL1iu**)U{@v8Gd@06N>1T313s)5+ z?W$~rtFLfbQ}X8!N~K?xk|$#iuu$@hLxDYwUngcRE*otU4~4^{KKYq$oo|xSgrmM^ zCRQ%!``XY=RDV1!Db5(B4m`GIf z5{yl}`WRD~QHg7id`hH9gxZkm?mHxs7#Uwmv*sh2K>Tpk1sMkf7A#dHs%9rOav+sH z6~SQ=s~6jb3J&iaD|=MGF^W`hP)b?#;RgZA!n=jaI3N|;cwkpx6wn(O2V@cAfw91e zK=>&sz^TB=z~_NF;7dR~a3=6M;0Hh`yR0?9Ed1XM%m#i1oDTd3m;?L)h`3qDfry)R z5|{@(4SWU2wx<%4f=`zee7YQ!*7z&^+N&-{Wvt1M%1+V=0rZd}b=V|Q27l)~|64Sw z4%>zu&kMU{NdQ6fKTHb^!sZ~OLC{>!qfAQ9t&wS!i7D8RhJK3Qaahs zf8*yWq^UAm&bl#XhY-eh#*de!F*Xw6{Ve2^aqLM9j=)90&cOcw zy8vml_yAd-!N3bZU*HwsFd)l60(cV$KFPWb90j}&91SFY;2_CC`FucXI^01gz9)=9p+&tXASJ+`)*hFPwt9EMqd-oPjsYWq-vi@-KLA;qpMfmsao~L5Ngze} z3~(**cOb-AISWMI96z#ZQ3$Z~ z8;E=9H%WC>Q<6=799$*cVv`@lemE@VoSyjP9HyuS7udL*uA+1h=RH`dbtnKa6aW?s z?S%bu6?fJx&W;EH^N1fnu)p!1u_ocy#e)5faatoxYsUVmF)^iA|Co@K3w9>?!T~|% zOMP5P671k<7KeF}9V!F6s{S3ZWWl68)TN6~Kn?CY16ii7sz1LXDx04!+5B`lQim(j zkKHW&gf?}^$#hbLMbR$~A<|-iDI-?MsnuEtZ&P!tb9WH~n$1ZVCJ(}H(TL!nQyo8h zobHS4k+G}N3a%Q$uM__AYoFG;WjI3FKK${roCuKndRuf0-RQUWt(z&WGNBKm^Y%sR69tHl$^WTz_ zxkX8VesTF*xQLk#olaYpS&SAo7o8#Wn;6?X%;=d1`-u6ttN!CKL+Aao>P$UcMK9D>wh3LbP3Uq| zmVsLOtyEnlZBiwt@Ya9VCb3A%a@;p>lOEREBnVRoN(-*6NNgKSCj5+B@ z4Wyj2&G}p0D0+|5o<9oDr_DSuc-g)xh>=*{(0aw8h>qnQefI5Ym5{3TQ<3Ty7=(~CeFr&++p!0EtNz#L#_;0)k!;LE^KKx{9_nh1Ois0Y3doCkah zxCr<*5bGNX9&~2y1%lPH*dJ5cA!gY2f7@^imvn{t4lx307lUM z*L!pGj=sNGujnb5YSKO-L!a9@Vj-jXRwSY9I%(!rOL!eQNkNlDj$1elF3Q56;#v@% zoFZ%hal&)IoG-A$g!7C_snI2AJ1|<#tpRBPC5fB-dJDfvN903xmPPAeNOOM0wa!de z2a(3ELd7f|!|d#5+Bsqa%8V{MpS3;&aK_5Z$lz7c^LFB&G>zUxnB^RUaVRWow4UY+ zE-r1wY1CdL&>xd2u8#&H&ZD3Stk0k;nNwKT6#fK|k_1KYoKf4PwWJ zw0W+etK-T#=Alqw@iLvOCj766t*Ahf%HKkB>sdEE|I9P2j<_k;P%&yOqlgnvM;;=R7 zMQFhwC_I0sw*I%M-)!-8OlVDzVbaMNy%SF`RyY8-;+d^@#!$v25_XoDKpH#PauWF& z!n-JgT>z$waiC(cjZRTsG=+dk+s z)@J~aed`Tm-}(UAr~W|JH2}zV(x5fvXh4_jTe@W5N$GW-0-bx5n#g;9O2ZiX+E^svvF6t&r!-E4Z{mr|U_xy1X zU5Z~<3$ZoE!Bk6m!J616r%aV{%Tyk|Dpqbw^z(SLtXM{NA^vl!C$5HAe_@F5^Sbmm}A5MQAm#_96Y)wPJ|J za}OtK<@Bo9W;s%+l2z|lK@rtouTO$Xq16g0m3qUAqSXOVokFf3* zy=jcYnto%YH>DE%r~agMNJ&;lPO<9GQmEP#Us=cMfK^57ql)cr zSk|i0k{#X3?B;O@Wn-InGj$WY{wjVnA}qU^aY!>7zjjviaS+ap(Z^QQaBJLCrLuz$ zKhDn2o|fur^T#+?B~hB-hl@rS2Vxp)*n;cFFSnL#kGcj5b3=^vB5PCwM&rlp?b=dT zzXN<4_w#{Fd=ZctEdhD~R{+ThD}h`fUIh#St_F?(egtHDeGFtJO#c@di1o5$psna|)^!_@4D>m$3GfRb8E6mC3%DOh z2KpLE208#F104d=@;?G(dmROmftsR6Bm>bU8Hg^)K+=y4B>mWv(vJ)z{UigaN<`hR zFQ$>cIhk0>7=(>vH9vRA{Yu{pjDee19A-MgCFg;-7rR}sU}Tyi))OxwVBzPk2)bLm zj>&Ofse_nBI^d-YK|;;-97ZiDv%P$hkH`O9C_-?a3)CHF3)TmvMW_&&joOWu<;>tO z`1P<@+h81az&rTObjBZX8Lday7bEd1QA}z@sVhD|VlKv^DIg|;)}}f_(Y|Eijk7}7 zmt;@QjMU*RG>iJ0v$&8zT z)#0}p$l`nk#45V79q0r69LQP84j`Ft7cc_&1uzP@2N(}50Hy->0iOr%2Tlhb1kMD0 z1AGm51o$@aTOj-4J0O{u#-wCox+D|Rq+hSOwS(=m6{ibOiPTRtI_moq-&tYXO6Ru0RgYPXWgP>j7hdZa}tSLm=Cq z6E4X-bV=r+%TckzU+E{-_J!XgnP+ne^FXWpzsfuq+|^4Ra?P3NpY)fJc~s5w-%kZA zhIv|`6Dbrefn=UmKr&AoAepBfkj&E_NapDPB=dLx$vjV&eVQ>jWsEobymMcMbl0 z4&{pZq}lsIIeVPdjX~2e@ZIVYb~n8dl#?xnIP#a6UcyETyN*O@zZEyfz=yYp(&{46 zmal*!n!0wRzRqw9Z;zUdmDf2|UXcb~2b8BaN^9NJTZ~Y$4mCY5OQppX5zAHn#h_#V zP;0+p$#)~8UFxr8M}=C#5v^_~NEjbFZeV`8a6B z2gk_CFW(8EQiuIVqteV)EYXP95WW*X<45&_6L&pId74QlP<~obm1fe{FQ#us!Ls4DKGCg<5bw+A>Y*t)}ztz z<0Pd-0NSVm;D%jAVEuf%p^y}_ne^jH0rzEDmx2#a^Cy)8#$k^x!_Q!1aaH@4k^-rI zO(dW%xy+^DpH|HuPYO!UzyI$^0o%t?3SI-3vCUowQVQMzQVQk(DFq9Fl!7HdO2IN< zFmO4Lw&n`pc;E-X3Bc7rYVI|_$-s|+nZUKcT;O`30k{E}58MQt1>6ec1nD#265!`R z_Tvs9rGV=&QVQsjQb3oK0_jI7kbW2ehMQ09F$Hq!qjgR<+Lh#Q@np^pN#DTF9Y5pM z8V>q1TV7PayyuTAgDdc}v>J_ZI2dM`_{zw7IBl0_t#Ug2Piw&B4r(`5bN=J=n&!wX zDk_eu&thfJv8g7IQG$pY+hF6i>wg+Z2e`vS-nz&*hFz`Z~X@GBtewI9ef;Uf{* z6?Dn2pvzG#*h{~QDxFYB*!;}xGY>D(Ps1S$4=>)sx;MQMA^XW0n%=mo+ZHZbi`LZ! zS(J4#c7bKzeT}ez78buTjwiyhjS&@VeU}t1ZMcf+L>gzz(70q`WxeDv`gaskFkY++ z`b3gqy60@w(664)7d3fL9+JFp+{JkS$Z1Z02n$+hfnx@3RT<)}E} zuk@oLmwptzis^5;2+RJaS@-Yscg|z=w;V3mh7Vun!-cBo%M{xGnf`Xhw4G(G4P<{m z1!RBM1+u^E0omVA1KHn=fS$m{K=wDEX3PGjOZGQivcIJt`&;_`Usbi!AJu&o)oaE_ zv%?*cWz2SBP?MePcTfb0soWLMB7Rju@+s+E3H^e}6| zSm%(6)jmv3uz?BhZK-2nF&6Fct{DvI2k@y=i3`yj2zRqgmcw9g_|cy%!OK#WE`eVM zi|3%mINcdmi?Mjwg!v^WO~4DmVy^Pa!y20*#ddc0YNEaS>brJrhtJ}vuYB(NsJM*|xG#{ioEp8>L8o&~l8 zh6B3*BY~`I6p)3)>%nS&(IxwfF8Lf(`khzlHt}S`at$k10egTA&`C42*^HiH}w%+vXAI;6no^P z-*J`B_^cZJax;c2nBvVXLK$kT#<4z7wLvJ`h$Y}fX`&HEX`oU034R?d zq=|7z(}H0Z(&W#hk+@-xi9UQ$oH*JrR7wsb#HS?Sa5!|0@ztQxLD-OLU9foS2Oqnr z9o)UEDsX1YkDMbIFP57U#=5a5c$L~SHfdq%6}n`v&?VpJk$zlB zmVVH5*%!|vcnQ4ZyR-$l9@vk^+k)IFCRdi~;`(#$G~7(|#5pqgGvP9xs^*kGCk3~` zctt0d{y~O(5|->I!3NT*IonC&sq2-qT_mY*Zpfu0FSi~38uIzqn4n#O2x3tTqEJQS z(GBYBMfr2~fz96h$hu2fys#nd;xyO-!A)lFv_xk6w zf~z2REdDZ1aZQ78bD3T^kmVtS^~xtj&76&(nb-vFxg2Wg;utQ zgE2H259%?tZ7bAi5s1`+JLPPX1y2hU<=%zOyR)maDt*EVQ~PWoWA7@&#>+xm|1-T_ z6|_2cV`O;eNxu@GGw@-(i`w9i@ZNPw$=UXlXr7ugb|FDys>oZkP|e)c@HOQxJ4Tiw zZ%z;jit^R+v{GQ2Zq861XktB6}^y?d4Ojf)HCEVg`AzP zdBU+39jf3QhWA8|=H>Q9U>v;U`(VPekMPtx8Rjrhw!SI58KMGRj&9{#{^r%ZTtCp{ z&v7Rut@DZMsV#e)z}=OLTA--;`8^Rje9|0}Vtq81#Kw12CD{WkwizUuC<2cp%nb#Z zVGjTHnZp#&k3WDeKUc%}c&B~%L}!&+rm~fxbKDS$Oe9f0qZ{Q%Qq5vsf+}y09-)R@ z{>>AzU64BiZZ-$_GoNlA2q+weIlS!?=BgW%FKE#>^nn>Hxic`VK;5LfEi0hswbi&&eQEPhRdQ#?I$o+x+X| z?-}v;y!d+&fAjLY;;&&2Y5L5eTZh<0W9%t#L#jxC=9>mU8>`a9W$avUc;#&8Uj@bT zW3fbO^5(?BuOK&pA-D{JvaMRQ@gmGq4KuQQ&Nd-(ihj7NBqs?*a>cP8uCBKEOmMi7 zp=DugX9$5RDHHgsrpi;jgrWt1Z2p@CVYjG#DBMEF&{OtUAAi@HIp0GLWS7En6~{=5 z9%(CB0`+Gz+X~K*-IW%8YviZ* z;YqDFhaFO2=P3Jx^)JaUG~3~yGW2$IE>Dh=L=9aHqAv@)ZCF%gk`N+SL$2T$Z)sx~ z@5YAQ- zZ}paCGJyIBsMWW2^KbUG8YmccY>lC=aLM$%;i3WOs!W25(;-(S2d;s_wayg! zgDJE(_>mJ+SH%Y|FF`i~E*X~(lCFr*m2kn2?GBD6kM-F$@$MR{m4-2|cM z5o(-c(fqFsI?~eopMn~9vsjm89MaSV_BJ#BQ@EDwD?er{-rKL`%%rVc7H>N{mz>}l ziw|Gv;!HDcTa?3e#vhlU*+zxPQ$6Dkd#U6~r3MSJDe76RJl%xmMN|CbiLUga^wB3O z5?i-K27anfQeZ-~>5x~A>Z#M4j&$Xara?hcBE{ikJTi#dP$VzjqNWU;L;>QH;>4rB z@oH#tNrbVgS3Fv}nhR|VMo*4Jz6zfvQlSk-qo%~i%cTVlpfXeS=p`;9P$Lf`m0sjK z6Su~*1*sWL(R@*I&bTT4dgKrrk`@&e6B8X1Euzy_Fw#zuxwcYMjLyK} zFCy2Ts!wtx`UI(!9F+SpQp8JxytoI!c)Amr#qzLQ+Qx~M1S#i}v|mNj`X=I2E|NcS zkVZ9^zNYMXnw&N@HM#ULQKOLrj)~w!@}1CnzG!^&WaQT6(r4`+K`Adm#Bs49haeXS zBOVL$K{5F?TFo~}Jr9_P@G#tD3Y}6}(cmvgp+Kz17*P-iU!h5%_hp>4(c zmNCG3XyZ5_52K9-@(|idKrdh-kbS8GvM(}#%YajXtAKcbowXl04R{!s2|NmX5qJ`q zh5r|T(}6dDIlu?NT%Z%$@Fie9;9J1%z}dh+AQq*vLV@o9(}DAW&jS|%-vBNGz6V?a zd>^k63fS&=k193pHILPP{a5wI60}Fr}FyTI6Yv6uh2jD?qZ{Q)IH}EiU z1n>xOJn$GW75EGAbKq~l-M~{oGWBU-WANY^U@PERV0+*N;27W~U=;8VU>p!UoRtOq z6Sx3)6ZjDjV{z7Q;BDZKK#ap#SAkec$*O@d?jBGBybtUKgkh646sX{}$#9?zP!9xe zX1xit1AY#y4CJAEc;=IJ4hWke>mm^2a@KtyM)|DT5XY9lRzRMY*bmqi7!2$POb7D3 z#OHzF>8xB}58yIjFW@R*Kj0DI0O0pPEs$ak-p{hDD$h}@0rbN?$4R`4ES8f%r!K_O zC6|-vaugd&K?T1hs3u*G$}VuKr2A5JIVu-TepgI>UBOY3uBYm96qbziOE&o}Hqk9J z`E4=zk$)M({Mjf^DKLA-g-cFY0|t>&%xBg>>|heltewRs7PJ$F88F~OmPU8@(cj$C z;5~m=@mq(Vr^P~}F^&hrYT=K#Y~&$i+?A~!k`|h5e#8n>v~rm((ELr9YYJ;4;n6DOM$&v%Fr=F)zj9`{xT9LEMGfy~7>yb1rOe+-yau%kA zCM-lgv2xX6tD>Phe+)=JMZ>T_L*d@Sbw|*Qg&QTo-{Ep4bB;*Vpw4HE%M;*gtYMOj zjV%hc9SO+7XMaJ@JW&y`qKNa7L~~<#eWF7g!ti~FZKigSk#fFh)mAJz<%R7-f8^{O zg->LtCBgb**fva`Xo;CmE4kpvGPDu}=xZtf(o%Eh5^?S{G_|P!1>)8dWhl^Q@!Z7% z?F`;wbt`Ars679f`En7CYsey^aSmrZHJk!%-XUKyvM5^4PEW}O6YC*c|1%{u40Fx- z0tc<0QNJ&OC2WHOKdBL9hYwyDhQNK@5afgx<&4}=kI~C!g?f6Pxe;LGgL;w=)RN0b z_E19)b5b>f=vu7Dhyy6O%280%4la-ar`QVD7bdu zubfPAdMEwDKqLJOa7n*8aMc8bJ&&Xi8=YOndGwOb34AT-g5Z*VStdUkEYhzkko2DpgROCp`YQ*G(@+FgzANvsV z25Keal!*~JE0GaHll2h^f`)>^(<`HqI5RtgdmcL(tus3qWs6zcuzjiWyP^bZRR2o& zY6IIGts_GZ9*pgRyosRH9M z>wRDg;9+2E;19sIz_Y;iKn~9xfLsXZ2&@J40CJ~pCm@U;r8AJjOBY}~up2N1*aJ8n z*bDd;5DOkz%Yl7>n}L0SJAng$7l2;CtH41(1^lfA)&^pEBn$6mD}#aVz#+i4Kwn^2 zpdT;-7yyg|1_3jG!N8Y+A;33)p}@JoFyJ~M7F)7@0geKm0FD7(295=~p)Z~VYJkze zmcSSw`5#8M799g3m<>T54(tT)sIhL0j}mmEVmt(ni?v#jv>q~ z=agL<_N^7l90b>LhoJ{&hP0lcz#`#-oeqVw7=OFM&z18N+T3vM!CzS0WvHWL2zAGg zRt+!9$H$$~C0-Wlh;d-*b1tIve@GqSd+qud)tnm{uaCnDiQLx4Y^+=`>$uw$wzt@u zn2_R?BAzDm0GWV@#29h*2aPQ*$|a->N={6~lV-no9Pr)<@u)|AVA&<4sCjznaY6|` zo))818X_D)YIvyly0cj@zami&!Fv26eUsv1aC-a@q@94M4C6r46u;<eEtu@o8XmW;GW~;gzN4HDL%}%|^!PJuJ+aQbwDKrr{>{uJB!sXeqIxl*Xp_5_**n z*YzNXRUfRgrH!96iq7z#TDoFfqB@QkE0|ooNPs8oe~4S-ca&&s--RFBMXt^90MB8# zHE5^d~}cbxY!)?7O)QdX9L;xbAZi&^MJ#Fn5Sor z1Y+(ZwgRsJCgXl3PzPKCq^kW8m<9X@I17mNU$Hi_9=HMb8-SaEn}9SIHUswow*tx2 zp90BnRIgIS&?Qw2U5?5aNQLx!R&_awPhd&EDJDNy{5cn0OR1Th%yvpz9h`=pr)@XU znU>i_Gs~GL#G^ zU68_uCaaRVY_)a`xel^WYm7s+Mk{XUYFV5-gcW#N zozzrRT#@+XH$EXpwS*b2xJs*~ovJT^eNMIX6xvXoFbRm|HF1_Wme=IcEN}z-I|8Y8Jb=4_U4UN$y8>we_5hv$ z_5@;CPU!{w3)mM(-s}ftx!R%ZQa#Zn)e~KgN&_e$>DNegIV!Z(q+d^y-~Xy7G@~t= z%w8PF{U`1$)l(;gx+?$E>gf;U`Y81@?D5o-+^GD|>WSOS%eK4tuG0S}c9*P3nReI5 zXo`fC3beb{BS8zhYos-0WZXb3HC8Fz#3Y2t!~tz5e#Xn1Y8nR7=Md$mssKD|7OH7D zkg6#d*cccBq-q)gi~x=YQZ?bsRH2$;f%9=c3AhrN0HkV41X4960jZiM1F4!)fmBUt zK&qy6AXQTakg91akgDl9AXQU)@UK)&bV=1jm!nb_%18P=t-2g}beHN!B_-*EYBEjO z@L9Y^&eZtfurg+9cvrTpncDULp_v-z7*fkT0~h<*mCvPABZ%$)K=|QV&?9DQ2N3Fx zA7=r)9%rV;IOLbT_zid*ogp;_v$1lS88rW^G5*V$npKU#g)Gj>^k{VRnHpzrP2pF8 zGc|9uUrlO9@Z(yu-X_n`B%;Z)O!fZ?Ga~ZQejrWygFu>0hk%@^9RYGN_Bb#I_$x3H zSO}!vISEVv{tnau&jP0c@nlsT5OM*y1oy?jHNcBNmgx^5XOUNcyMWh#qNVDL=qtt)N1af9R`0=t-XEcE<*TKza zXnv2Q&UA8u#(bgX>Z#ZjX*O(hL1|K~n3Hk{N|QUlE{Yftu_PLMjm8$cu|;BxMvW~RO=1$G*u@q! z*4TcpXJ+>}t`Pme`}fy(VDFiI=9y<_=6U9sy0dbdl6fJTiK5zLa3+d|XLP#4e+|#5 zX{72dIjIYTE|O-_C>LD}GDS1Qu0|dpnX1`<)CHOYNL`@0fYb$=2N(so9FR=WDnRP` ztOKN`cRk=vzzu-Z_1OqWU7yW>)b+t;2iEo34oF>}9e~vJ*$GHppWT4e_1Obx1?T|1 ziTdTb$vLFx;`BD|4b5!QFl~U+9bK4K>s(RvhtXu!1ppqyo>eU zCh7lmv5a=HKFlN;>~j5wNz!zW-p3>zMb#&hbWAh>#{tPCodP72bQ+LM(iuQ9N#_8g z0RIFelXL};Owvt2GD)`p$t2wdB$IRpkWA7&Kr%`90ckY$Hz1j$Vn8xUj{wOe{R2oQ z=?Ng2Bj)O^>eBT^VR)L-2ohus=a4hFFmSc$| zKj#H}A^G{HF#A~hCpmxFG>IyF_BT}d{gp!D-?zP?t;F+VVf8X%{cga zGT&PGuw@K55(E{ptw5qMzTSTop;U4t2y(jX{WSmGLuV$M;*bKJ!{w@LROoZg{9BIV z<|($+PmeI*{%=eDG#()X#omGzcT2JJz91EuDW*Kck4cK3N2j_(a-#))17D0>1x~bL z4o5qsNwkH?6zu>nwL>@>1W}BPO`(w3_`}5AT4tChp^I;u6v z#2xWiG&*FZn5}RZi{TN)-TIlUB9HmpAo6^l8>rZK+6F$sz~>1|Tt43O;oNh5a7^PR zVS*)cu?5Mx7j~}{RUY;y;pjB0IrwxeV&{8XU?u&@y?pUW7(F2v?8PNDjG~CsR^n8Z z_B%oeXngltP}gIpPF>9NxhO5&n@S7zyd>4NIa8jnW0ff;Ir>UHD|lLkx27+o(WgS7 znBE#+IDDqS*|MG9Je0P66yvg`oyTH~gBssejqe_O%~)L8tX{D@Hd%gIfR}lpZlitWR;-(LZ`V)6xZkmEFhP^f-&B!o}xXqt%wDhe#?4bnG!V?)P z&3i7|uRV}C+Jp;^-aDaD5b;bdW%+2GirN!6dI;OE1b>Y9;TvgL-W)h~I5D?`^vc0Z zii1}UX#A>~MeYK5NRDJgrjcY#%Rl7so&xKypsd)@T$td`qGCz|YyhYNq(tKTp6siD z8Gz2X9}Uy<@N>XGz=eR}fJ*=e11<$j z1Y8D)&-w^!0LKHa1)L7}B_M5$+5kv8yb+KT3wy-H{u24PDJP$Wumqt23`ez?d=>(k zZB9qEkkirTLXKOc!JX9Le$wD>XmEElIA-##M0>7oBzX*N+rAgd?Goa`u09E&!k6qj zrp#ZkPu@SVR?+s%miPu}E;rcBzGu5xtE!inHBhik$MmV-!=z|bU}mV3lIfw2E5~(* z4?E%!>VaPph^;UbK5m3!G(K7bb`XodI_P`T_0*3*AO4**61762v!ehZiZco2{_vwROo`8^Cs*`dnK=NHJw zm6LoH^r{F8wG>W?KDO_T`pEe>BW;8Uj#K1K7kxU4ijU9i8In$Ygp!jAkfehQv!;WZ zov(1|_F5?p(bUG}t1BI`3Fw~?#ihh2=0Iu4K|b`t7O5fGq1a5m0W<_JsL?(sN)(^4 z)7}R~*5Ballhk8$1cBrztt3H8FPTPiT`ThsZsPSCwhgHpAU%qD=)A2Xa&nJ$&lY;J!MbS2*+Jv9%0^)_!J0>#^Jul6oXf6fM z#1DHYPsMy1dvVRk&ACqrD4<_qf<;j@kq^bsUR(lwZ*D$44;?QnZf!V+{3k$49Yh=z zP?||YVp11BY`@d|v!LZqqaFC(v?qQhP*Ok4>KMEA#`E&?i58n-zN<0yYeeDc!v?54UN9`1d0NjzA+^EYrySzUADPFW!UT{v{{lUV`R~Qw zi_6QQdrpT~T9n6fZXo0da+N=yd>FL;H_Pk-B1OY`&+489R|_iFe5Mv+YM8PZ-~H|i zdQx>W`sl7e!+l#J0>7`AFB8AL!P1sqU}M(Xj9xioA1SkCA3~vuX~sTb)`ZbfH}N0f zY=v$b-yHb3g_2RGlc#q(DLDlmtC{$zd;ZO+G(uVAb8d0>) zCnMz(_id7mr0T)rh#O|vDV|g>%@Gg1NE(WhfnaIF>646aF%Wz3qdrvjwRX8^7N91FMua2(*bfa3vA z08Rir1DFN)2jFBt>gZ(yJ_ei$SQ+`B251BL2_WsY&joA&mrjHpM`K$C)-EBi`);h99d! zPiM0e)ar{_Y z0BEJglsAy`M+2p4Gx53}Zdn7FL$qiH34sY7tp;*FJuy^lC$$^Me99Dd`{w14hqvN+ zTF(?4$oa&XKQfO$h2=jl|2yD$>R1CgpYAywHLEN=jPh8{S%k0#GM{{y1^#cA*#$(Z zX&_0nNErF^DXmg!2wQdoNydXWkeL2M!(yy~gi!(=HIQ;V#+Ke%W@pdhJP+L0VxctM z+mwZl#4m3uX{LqysN(RZ@(O&sseA+(xIl3 z>iT7Btu##~DT^9O)oLn94Yis|swg~;)KpRfN;Q~cr9lRph5@ZPxQPuYnVzP&O_mx^ zQd6x4l->s+>p%&>Y|a3@V4_wg4@ihrdc{Za_LXYxE=sX}`}#fP1xM{G)e3r$Ui-R- z(+JXn)ngD16LA!o)CAT_Vs0jYW20Z7g3PC#m2 zzXqh{bvGb2uloS0dEF1V9`GO_HLphjsd>fh0&8AR1JZ2f89-`Qe*$a)cn*-7)ANAz zisl7C1>kRhX@D02a{zw_oDFyhkjmr=;BCO`fKLH$08(f3CLnb+Zvj$sS_DYV>0Lm2 zW$iv-N5BVwet>@ih65G@4g-7)m;m?$kj|`l21u{6y#>q$d?4$W>E!+4@G+3NI`Jq^XGIfRukHloFQ~`M9*m$A|G8 zS1i)8iId6qtq{BlD5;}E9dWuXS?4^)Ru>6J!&q7b!@!ePt}s9sCtGxvBylLC9gfGW z52EIR97{Ghyx-9=$tAB~4a8+F#}3?3tjJ zmO$u$C6bjG*2xuN!C`2!Ep12%*up5CX2cc(w3kZL6P2X~V7-kdvKeTOV`G;&RZ3UsR4fI7yFkZfs~cb< zhF2f0PfB2t3f0U;yEYbuf<5Z6IV9G@68`jBIKGxdj!z|`nh{fA8B?8@G!2$Ne>4cN zRH^l`aQ+lJQiG;+*!P{9=S9>7kyDDM z6=>AM&CW!Pj|`AE3;iBGALjdA6H4NxUXd+3A&^#3apoU>X~1tQB;(hN`98rfsg0RH z(_g$NzYad*CTlxFNuO-Not*B}6paUUx3E$iGFh}P*W-OmmUxr{J;#9i5TnIxi+C6v znJ6+^q8Tb>qR7ZmmUN9=UEoTL9L;&9LZI3lXnKl_5mh4X(;i6h6Orp!%qeLvj*^m+ zZHJ?1v;^w{vY14E)E#LRJ+S1cJB?*y617GdN{-5vOj~0hXk1S2AD9j*>t}#u+Fk?p z1bhSN2ly5+7_gFzuUnb|rr{okdN9*w0XPNsmVlJhnt*EnKLVun%#MKD0XqXyWyIM{ z%!IiC{)&4~z`p>!0B-;e0Ho{=0wkRq3|IqjC?JhD6@WBt6Ac&y7z;?2W;kF5U;^M+ zz_EY}0mlQ<1nopX(x*v)WGbn-<))H++*Fd!LKuW!jvFfaECk}jam0($!Bp-ABY}Uw zAq99d)(}4h&Yl89M>SO2>Gm(DB2c#mP#g$~9a?-dLXnsf6P2h?sbdpT6shck z=Zch6dih<&nr(@)G?b&0X(w3OG}E9J!8}qJUb)A4foKi+h9O4{1(gI2s=yDWL(0!! z%+t|58oMlWz@dOtn$&3W(j*@*P4Za?s}V|NV@apRF`tESM2um{mg6`b>%HS>>{3%( z%+6&Wu^oDtI;l0m#&8#&6q=k=Qo2RF5n+xx>!cKivO-FqB1IHT6d9^yUa`xyn5piBA={WO%i0K)=6d-;IoH|crLfCE$56x%dgKfAec0`cm zD6QM7mKFugk5c++ew6Z%BX;3GLMd@kkdKRke7pF9WiNFtjN-0%KV_3Meo$=)~s|q&|uAS zqJsXsF9>(hkr>61D%N0Y+%U%~mMF3Ju323WT~}sCtzl;(7G+lMnuRozbag8i z#8awrHHS1QuPp$na*Qn3njcDpl&iLaka;XTOVEyDZvoaisUg#TSq7M0CN+Eiyu-OjAXw z)M+WhBk|R;k?NGx$leKRd73gcMU{Y-IYFsHfI1}|WQhsU4gn1q-vUFH{-~3Fo>d7Z&sa7gKnH}GuS=Clsmz>`CNl`(+)d4LQIi>yfbm-Q`bH9l0 z)6=y_!wD<4pSyN?SLn1i-JF`ei)peweDp7Cx+<1^U9)Jz7hjnUN*I>@%VBw1!HR>$ zMXgRZ@_PJD$HpTTnbp0#!lAm`_=t{nbIhLYd3E>KMxSG-<5j~6bue*L)6vD&g_ zJ^yXe?aKom)BIm=p3~m8MR8BX$;y9xK6GR1)lWCJUgFUD&6O%!?7gP#Gfl3%t>f_q z+k2-E`Eo(iJ=4u@2W9^{;l-r}R;xxezx1NcMX!IKcG{Erb>`qk+bu8FJG%dQx@XUR z=_V~L({FYCrG|P=@}w%4{<-q(S=)QpJ6$<;yl_y|qxB7~aynWKdz!my->rm)%^Uw% zqt3IHMe%u$itAX{J~*$>tu`M&y&CB1)+_Ycj7z-|#$J4}GtB9r5QBPtc6c0@5%{)8AsYZC0)txSG^6A~T`@72rnW?RoSb-N#0aIb&svCU&*-+bhI?`pL#PTFMT2SoNBu&3e0zMozH_)g|nr+r%- zCwW$FU2VvMZj+L2rF&P8+V?j-n{F%7|26g0fW>~{3tm*SH$VAeP@m&JrnbAE-1pgH zpLoXuzINTNI3D!gP^<0i1*ffBI`m((ph~Z!KgBzH4wvWOU-L(r$6o(Cj$b;MH=6%v z(!`#BUMie=s7FSY<=!we*PyT6){klBTRV8nsXy1RKe1@n^VQE57sd7Km%MHL#DXJV z{`=5R{$Vl}M{Z-3r&znp47w&EStzG*q{a#qackxYYvvcOND4VU8RX*GCef@l=_2YlOcXQt& zyN~OAIZyfVuuU^m|Cm)7>h^Ed)m!d6Po2=>_DH8^7tHEE`?qBAF!YqTP6?XI8 zva-$Ly{lS%I>A+bu-jLeIkxJ`V?X*kbbLyUx`+N<96RL3Lhm2#%v!d7G49T=lMmWn z?LL3HeVtFL1blIJ`-_nW+TW@FZu=ydgHkSiCtAl2RQKVxMMKHldjq zncyCWv$h-@9p{>uWQmxJlthQ5SoGvE2hV66V(Cb&3?*?Piz73kR;{#ih*d_X54R5^ zEX93@m#iH*qNyagbqP~(g#<>%XMYS=m9nEzyo$X6wx^!`+39FJ=E{-mpX!b)JCz`0$aCUWcbnIBD!8oXuqt*6Fw6~L$ip*pz3YS`) zXYmjI;?mGAdD=HGGpUOLq>(r|Q*2kptBzWHD7MVxHVebj+Pf<5`g~~mLuS$r&yprW z%=GwB-#}(UB~DMUS~nlV4crLY=|O)KH1z&A`N)~;@jG7$~XlMg2#coyCJwcxjZ8?>h+{Z8F zom_Q2K1^Rt`XP+;xutw+u|6LZ8Te%3K~g#6;|{=S%ZsM1WF{yS>VOD6-gOGn=R?w# zncM&$DLpmy_}DTU${o3rsseOyP!Of$RSWkrlMDEj_}J?4p#ikaMB-zzsQDUwK6Mz) zMJ+zH_4u&bYjR6Wvu)kR2K2ce<8whPUv>5P(5jovL^5%!_I1WkLN{MDn3S2>e5f z`g(lq7!8}Df-ipfkumyws249YAzL8vvD4$zh|z@Nms0V2=Vq8X)lE-hJwA=}_{bRz z=?}#&ntpMmKA$FxMms%nJw8nt4U~rI^U}Dfn3U5^PcuC}P4)QLGn%3JrPv!{hC-oq z`7~!V(@{Q>KHKZ@X~Ad|BA;iT%R}_}wAAC%LXS@?MzaFH~8%Fa5F@ZaOBK1XIZGhoMhF`6z~<>=Ga>0ydj2%;0Xt7V?f!-jqp=5C(r0fyJ|uCO2^~UB zE$hBc3(--~<J~Jw5^N!6%T>6l?Jb(Bnfbh0Np>ekou3djz2w*DW7vC1ob| zTKNjn;{&q}8Yy3UPS&`p&j%(OG zjBa`cF&aOhB|RLd$7e93sgGZZJ)qUi&-M8XVKg+`B=H%n$A`8Z$V_O1I1IcH=`|4# z*G&(#{xTE#eu^c0dgFqk(a>28QvHh7l!J3UE^Mms%;dVG=@P1)(8-jU2C1R0m~Ia%YQ zemr+_mLtr}N(g~4iX>%HOe&OsISHdushanryofPY;gwVt)*29>ZNGK^*eLYMYJq&F_<4%f2 zrC%B|Ob?^d!_e5EbS!!oxHN|9SZU00Jq*3zQJUti9;Om0G+dk@rCBawN=n{M#3XBI z{6$Qn217QHJBd$fnr z_@*F=o722@*mE5z|P6 zp)atJv)5qot~qlpG#I??&0JFr=7fmpslnV4G2Jzow<5+}gQ+D|cnzkV9>zn&gllMq ziWol)1}_US7o@>p2P<=ZG#Ko#W-dU3xhi5pG?+?eoF-I*X(nO@YcRb;%rFgRh=_^Q zV8)4tH9I3^C5 za1-k3NtiTX#^TOXgP8zKC}NRXn+Xn>X;(*6yNM-wTr%2L&)i4FwZGv#PX%Z&8P6P} zDHRJ{2gDL9iQstIwJz_EX~$wTrDCO(inYB~|8U;>(vHPwO2tyKSW*g$m!8SxeI)Hz zjHXm9YE?^8xaw}DIlM=t9gESFij`g})`>{BB0m1oj>Tw7#mXp^!ea+)C-GTO?O2Sa zRIJQWvF=VDlga0nwPP`wQn5ytie-QHR3M*8){ez!O2wjHM@eaH*wV(2k8`zSF&e=k zT1AD)9O;nEM641bPLe||G>RP2aNJ=LL)c2C_>2Qamk&{qyClY9Gz{|`7}Bf~Ohc*D z4=gzI6(82&84rxiWEg%+JBOI~k*ZFv42kYCXlU19Y3B&83U8nA;D}I#&p;oApHD!D zPpG1Igul1YtCu3eeUL|p$3TDg!F1OjcLQ;YJ4J7$TI*{t{iD(nqM{R(9_~)g#=-`$ zu;6rcYP#B+)~oQD--P7h9`3G!!YeUFrR3kEp<6K5eCF2OQBZ_w-y?iLRDv2C4#E&U zQ5hUP0t;mBU05{nJalmjI>q%Ft=W-ItizRQNeRg%pY0Lj5tUa;tn@`0!qRr1Bqjfn z4ojo<*M5*{@GkWgngI+IoT^Ngo=#=aKLH=UiAwZH#Fjsw(eBQOC89t@-!v|b?3b=g z8v~S6CrUt6tjH=*nS_t(u-Nosm6S{^G>VL9Jz}w3s8Uh-15%>!>7eMesI)OinxF_w zPgEy(j!`SaQ>3@D+?|0hb2lPF`7TAQT_&X@V_TiH`A0!p>`L~PXx|b~omk?IAx0%` zcuWLY$u7NKTpRFm*>H9IfRwb6$}|sm_d&h;gm`-Uhj=gz)F&Ark|+k0rs*G*n1JO@ zCH7;eOW0^JDMf%!EV0LyP~w3`h_#+*gu+8&r$t(tAAJq9R2Ds07AdDx(RemXh(taf zJd+`wfF)%8L)i9F!|WW5(CKpw@$fF8^@@q7r;EiwiSyJ6jgm^$aG*ASB)1f2o?hbZ z(Fac@-h)dr9fOml5|Y(%#DT&o&)`ss!ho>o2@wG)$;0UiPhnohLD4tFqpv0uwS!^% zmcmlSD1}z=-8yvopm^>eY9wluh)z=~MKo2b653KH6*6PT!%ABT@iSrWt{R4h!ck+( z49E9){*&Urc&I$wJHkR4Po!#q7J+DqN=~)W%Asx;H}#ycZWud*g4s9Y;fN3W$HNW1 z+obhqL&2g+6*Few)4N*i4Sktcw7)#Q&RI*;r0@W!hwiCwT6{|z`7nIk4Q~v@;8Sg- z66cYoq@dpE39(SHUSzU^)cmMP-?Wq@vFu1W(d@GS2tWUzuyBtcFCT@%-95x3Lg63i z(c4E66ppsr!`mk`%-x;z-6t81R~k$pe+xq8uW6MSGhH@d9^qt!T?jp#cv6Mnc@IOw zh284@$z138Gs;M&r=esr>!el5ByOc1QNq*%OsHQ%x$dip3v0{TR^&8D8I|T4rBd=J zKCHNWoLKD-iHZ$R@y<+1WA(qU4lYEUMsYYgRGFF>6{F-k>!T9sh`dt9iV7lB83R@j zDEbK4;K!cmXFxn25RX>pD%2+|JUG;c3y3SOe^P2nni}uTQ34FHK;e6Ov-J9_2Bc(m zaus!gA1zf9%a76}_A->3z}{db-otZuCmSf*bzfLCWTqq*w82O$JjET2J2V;H zkTHswcxB8;MNCS{$OI*fp}lyRp}n)SmcL_(AJy7Ej@27`*f$Nii;K`p=UoQ(UQXz7 zmhqy5yL(r6S4CeBRL7F;t60Kf|5c@k3xiG|k+JA4O4)Pq^ALKe6sekfBUuG!?VPea z3LTuByUMkkQ>Ts{UAj1R?C7Y4gxAT@u~Vl`a(P#mj;^jOXqZKS$x^|g(WdBPFB4%c z#;WABcX!b}b*4`+-Yt@|z)X&51X45hCw_+0|s6B^>f8RJI-yA~LOjupqDh-Q#q00O3h<}3~4 z;f(R4dHG5hv^S!GJDf3o_Yu|#G`2KUhcm`+7{Yu(^QA~f`e!J=_IS{K&|IcLJe)Cp z7Z7HRA^Qy)w!_ib*ATyf;Ae$FdMpjO;f(R4wX)Aa^N&bpEPZnDtAasxOBzJO8RJLE z9|W4ST6BiecM5csFxWmr18z8~&xZ8b3HbYa)uN3(>CwNxb{60hQU!X~y&FM(*4ap-O{APjX88u*V#?m(p zbgky%+?P)|oiTY>;X%KG=GuHtX9-}a{A|H5KhWIT6zkJX%rv$)N!DWcwD%7Kqpt0J_$OJ0@L;TFaU@B;4 z?&5T$XNLHZy=t)=J9=@EtAxuCzconT1JKOf%gBt@k7fuy44PXa9ikcJ_X7B0(A?Qq zHa}A3`up)|BwXZ-rSAzIbP_ZN4{*Aw0EY5Qeo13Jpe=cCkNjA zI@(NJ^UZO|-# zRyMzR;P(e;lF9JH8IwmpgzW-N<(G_1s03grzuw?i4>Uvn<#fi%F9^Z2LGzbLhiFFm z-3Cot5)7O%e$)*bD$+1Q{1{4KAs+M^beG<8Dr5X;s-!v@RV`>dWdisu5EgBm~YqG+e37Pc(8RZo(H;T&H^?;E~g|t!bL4} zfM8-nK_7Z-g(@v3G9`KhJGvqv2}eyi;0~K&yW5z^sge8$3k^>*>BVOb0~2D>QdB8% zYI&>B)^b`)OG+4v-8ym{JDi%3h%=U|3idX9p$~6z*xO($NQ@#%jU7SJSR+;892#)v)lmtYK%M5q@?8~u&$dDp zo4F`+6QNJAry|(1kB?WlBFHCP5$X}{qwoq23J(nqQ1}FScn0|3z#>jusZ8QPkAVtL zk09>>{@&q!LVGceX_;}n!@NQi;U2vON0GcrndJRF0{p!dz5yP+!?2CMip_l89QX$t z%s@wxwp0dmX=xGJ+an-2$VbsXI3Oa>2Ortsk0_M~-DtkSp;&s32=WhCczAjFgoPJO`m*!z6Wj@SF^RR|^*fcz>lHe5_s_2hZc7LQj(4!CCISZW-OvmFGO?!H>Dq(oC zGFFakY2~3c;^mg)S>d0Yk%Em+in#RT7_2M1xhb$02rJve$6zBnClynyAx%w+Q=l$l zJzkrd)R7oh;`u8@ou-V-Op8i2L@qNxo|;0UFqjroJ@VKx(o)#~wUM;UK+??&kQ+!# zGqLDRvwm1+H<_u9!Z)bDA|);kZtQ6`osY(R|kf2s|k0T`XK@kXDOi-z!6wyFy;+nr#T%XaYDap!YB#YvD zi_e|(UU5a`M$}~N=u;>~R)UYn1?M-487n*aSbaww(PJYO!uusgDE3-<083eH=ZY=}`G4I@Etf3N(6r7B|*kf7wKWSvBLio9f5ut!<%qZ45y3}vi> zY!sNGe0;UilQro>cu0E5`A7opSXQ25Q_`_@Sif#bkuBdZvPL~v<&vt!J6Rd2*M2f< zI`paqNtkSdNmixT@5jhU{gN{Cp6Sub3@TU`F%`YuuOzf;Sa&g|>-)vjJhr5Mega$k zuF8AmT@#z>5a~2UwxBu&*ZBRCV6dVE=YhF$rPRJK0W=4*Or%OCgomJu6%gR*;ni0W66zlu>K{Hx z;UC2Mmw5HY+(wObqnUScR;cl{EOVQ5+^0(jOA!&_9~920f5I3-(bt=HlA+NwxA_hC zA$%L6cW{`v4-t*7IeWaq(9>~vvAInlCT*nNnU_BeEBJOeUyKmYzcaVFphv*Ik6jBv zEzrL!9apFiw2K~^zCNN78X)YI9=GuL^yHB$mXuKFCO~x9dq;P4zG;Y;pGPRW z3&4Z;ZaI>26HrpJSdJ2qVV)x?yL^KwD~)KBv$*rr+s8Aaw^oKJRW!X!`qRl3Ic^CA z4PCS{q&GBRW1L1Hq%OT8A`I`Kc%Y2?lcI)TSDz0yys`w>q~uffn1Tdp(irX+5!6@V zjk0%fW@S$K%!pDXCg1}Dq%iaqO%!jKhp&$!#4Bj9mmh|Y<~Dzp$gMP$VRB zD(p;@5pIcz3Rwvew=zlvF6tL0N0Kuu&6<=PUr8H1{ewJ02VoQ&7>H4sRMA8W zl~zltEPd&bT*P|CM-pUegcpb?wWP9P{)2rK;TYnZ+uYU^TW|nrTN9C1<}6cgcxrn_K9L5fK*mfT{PuJrU?2>De>2+ zfG8PnpD?db{}5C@Mow}M2=SttMftEH{R#7f2yxm8XAS!#j_BCaa*rllpPpwd#@ zQONTEjWMOEwh(4BShc4+QPjMOvKER=mYCa8m99P5^*0=*o6~fso=jw96Z~KtBLc#i zp7cia(pE~RE+CvW7NUr?O`=#ur0T}1KF%580w=LDYiX!9up%dWAm&QPAh23T4ItGi z)Eue=1`QAEc*wBO=ZA@@03W1L>WNTHO-o7Q3gGghn^N)))+t5&=56cKy1J%RZ>B+aN>>Z3tXjG-2yihC{rrB|A2qn<^Um&# z8rlAn-#|5G{*=|d@47n8N*`5&Z|*L8Ckd-LO0 z1>HnZLEkf}Xq)URE0vE8b7-LTZn=u$V^v=F+5tGn+#x6JWY{_ab! z`(8QNOlI4$)AqPq`x}3T)rv~=-1wiT<_lX~T6Nf=oL*yc+~cn=4Ld!y#h*(1khQx4 zy&po}(-~duQEQ`YTX(B@|K-Sy^8WtcIrcD({_J|?MPuX>&+goP`UF17#^`!Ap7`+J zpHn~m#Q*r>Hu8C=4*xT~_4bR07Cbwn&c6F|s{kyW%jmhz12)fi+I?WvZv%(cc~Ij` zp1)7SUM&y3QBQhvy>Q+7TG`kh#^@%SzwK3Z(J+(XPUm*~;W;>aO3}rxmt8aOnLV1^ zYOz_)aX~o2=+;)N{`9A!q?kS)4;L>`FSQ+|e4$Ld@?hxGZr=yY__HSDTL;Q1mo+Rp z-T0sFH_mJruT)I%d7YrJm}2-dY5xQ>rvZU@twap6a4wSthXz#w=w_Y z^7um|&YU#=^qe64%jjkt{cYp^w?o`M9{A4}scG)N@BSlyO_k9H<_r1*>$S!n)R;gBZs6#CtuYZzF_`ALHLx>HEz`9r?HzJ zdVcd*_U%KnuYRMko zyVvsE-?hvB`qm$IL%N{8z!b@4U1vRc(Q<5~KL_5h`*@1WolCdXK27(}TDWXZ&}WP4 zHxC$vt!s?VZ*i-av)sLoc9?p%&FnXAUT)j)&F{8_&ssO$S9rL`Mw<;-&SP{#qt5PD z1r=wvb2Rf4?woDVtLD$k?2m6RsIv3^^*wDqbA;Yw4NopJt=w_@;$ba<6t@;M9>2Z& zLHlp(Y{dkN{fArAmIL?UubTU45?G-Zh2Yw{>}Cy=zbOj+;N*B7O8347u#s zh`noL>O1$`wtd;dzJHwi;rY<*-P=D|+;nbc+}n#odU@a&21ZvD>TzOtbk5uF&utp@ z;_ktDTd$l-&kMfrL#xXPL#7NIge`cR8C~9+`lC-d?mpjr`t@h^uYDC8f2MGlD)eD~ z)sbsE4+(U)gE7Dww_N7Gz16~9ZGQ^8`Qlajtv~Az?e%KximpK+S6uoPP6_Oj=P3vS z8J(56Z?6M`o2{SbFd$)h2gko`PxsihrmF15>kVDo44Bt`3l4E(bR+g>-2LW$^u#~@ zT)U~YW8m@*Pwp*SrF=7aL)FNf#_oe*3tlri-vB=!&;Et=V`pVvKmRoI$F&7Q*rBnt zzezjabn22mD(rjkqh&PN`od>|-RQn1BXXyL%jU8#aF zkI^lCUUc=xuOr8IZ1l;y!3(cP?|%1ZKRcJIo0dKq8NKa~GswqHMrU5Iv~^_ByFX6U zji|YLXWd>GV9)iy2(WyU*9ncIDPuAoBz%wr({n<&G#Ih*lNKT zyzav2YGu6HReeYED^Fc>|LpLKgU7LN>>u4~a$`eeyGec0YR_8=dw@DDm;HY4Y)r9z zk8@4$yUeK_b#6$FyzYUKiKwXjZF zV%VW()#$lJQ?Hp#e$(T2_p5!jElXcEBzUXr`L82J4{N{rt502b1fuauVRV^|n?E|T zx>s(GgU3$feJ#J(Y3^?=GW`zz(fs_>fmZKcHpg}bM(0yyZQ+q84ePD1R?929SN&yk zT8=xM;oYF+=&9eBcDvShtsu0oPS4Fb_0faWR-aq`_Hz8(mwBI08RGk7?}08O9&~6k zV#%p*-C=jL8J%!ky>Id=dxsnMzHc<5Xhgzq8&l)jPqF&@)ux~B<}8t+T+TDP1r6&} z@$GuD(?@-GRmnKnVeycoYoDs;R99Q3{Jn2P`+Zfq4c?K` z+^VzjB#?ales=kKq&_PpKjfOg9twAu6Rx*woVeTCZ8X-WS5QcIdtTapk}m zlPvQSk5+uqus!Ah(PqkJ)}O^YnZ6u9b3yZO9MZd9THUhgrJ4Qfo}L>0Ns-UAg`2Pq zX$Yg6dC2zuq9ONY3=OUk6xZ5$+7~%-sV`RKOkdhz@}d{AGtkqujPB-(N{?Huxv}++ z9p>`_i@Nu9yLmSBUgLG`XAk?MO0ypxToi;yjIQOJpgC2$sF&7UbMCgs)?Z@l%^0w{ zxBa2N&L^ICY-)d{1^+~uTsCH8(-v6^=2Xd@y02b%`^htJd(8RS#?ofRXWy?oJiYDE zo7l1mnaE|MCjPu3z0%&9J51`X`@PTWa~;~RX*2uQUHkKwe;T^hi4Fn3!076p2sN!e zU~cw-PD?FjMGUh2GcrB1%8<_n)#-KgfX|?aVc6D;zL;EQc5;(j$VX;xey=k^Sl@HV zK8H2GP3!(9E+#_VvE@&T9vp?=)|L9^dGV4lCuN4KCx*wf;VnCNA-G&c(RPSajY*|OwQ7$_g zl>aiN@}$cLOw|P$kq_OjPPpEuZQ~!$Ef}O~^7!11-Z*53(XG2GM0?5C7uM`D=LaG0 zWYfuqT6SM|X2|xR7rgxB&9`G#;_x~~_tX08(MkJl;ukHr`1;o&Lti~P@OOUUvfpmp znVhlA@0@Zq)+F(4xlD2QRobiTvq!&u(6(y>&*hE1YHx{OJv-)!r?PLW#{2s;#+Fw` zSI{axqhWGNO{42HZ5sAX-hGlTbrIc!n&w9WJqpO$E1Zx!|gs>GHKf|dCeO! zPQlL)o~_$v8lKyi(KX#|wrx$-==m+%p1Ae8WB1@%E3B^kXsM{bcvRaC??S%Dex!Mf z?yp@h*6dohvs&<@L0vtbemZ7YV#e;@2i^;CynpP{%7!aYkFGGf8>6E#+Vt(WI)3Sl zMPp{vpBV2Fp(^a2Gcmkh+P3*W9B++R(CSe7mLwNU+OxC6?Ykqp-%c6d;=#PQDR%Zz zuSTVg{r=j##43@n2aL`!y!y_e8^;`5dvamrd5%~7s!#jcf6u~7y<6q4U!7I|uZH+~ zC8OIGYWi$)V8e0a*R|f&(BspyH!_<(ivDi<`KB-D9sE3GYYaY@T$i5Pe9OWfOYg3| z8tK|vpKi-A(yF{^fpfd)23J*PQ(M#MV!LbqjcAG3(N+>TWndj?vBRxUBuV z+`#aZo@ai3J1^$SnkjwX9X)=m(dpR_iybCzX@b|m7+oV(K*JWzZ`WHBJ~lZxcI@>0 ztiX0}pFVWUIqp=?v*FT5*dop78srq(rr*vv?eay$@{w1bJ=*_IuJ?8C7Rt`+KXz++ zd!-&Tr>fn|Ah=ps^YVJ+2!YUu@Bw}!g@wGaju(- z`@_#%2CZBE(+}%a$2+}RlCvzL`SS^W7nlFM`W4Fg1*1E^_RhgqFE?&-pFX^Dlh*z| zpQ(Pd>Xw>5D66Ge!u9Wxkq`F<^xU(ftZzSGxcK4ohrdlw3=HmhtH$Fq0}s^i9GF_G ze%)PP#$x*wqg!~rv;5`#*_SVxZ<_bWX0OXo%hhk1`mWu)$!$}+!U);#__Q>m8#lI6 zVZq@m(XAUVJbY>L;zuc;{xi=!W43+$kw5ILWp=9v_Q=@LbF=GKiOYPoI^)K?2ZtAL zJk+>g$x*x2=SS|&yL9U3VfTx$$4AZRnd$Jv&wG4=yuZw4qJ}yA9PhN zo9$=T=F8uz9Gn?*@m0@+{{J{N8F$-pS(mRuyY}1K@1(Om=2;lsCx>Dz4o*1oV9e;p zNB;ckN!@1$UIy&*y_R`0EhN+O0=ieiRz~--)y~Js``bUNA@6x%=KLtN*RM|+WX80O zeY5ckv+%WFpv`)~=#;0NGNKg>Usem9`aFZR#u3dvm;Mh|{5Q7?&}+qt!o}IO#>sl;;j1 zZ`E^x2dF~YH(fEhS=ZhO{s{UDlV}{9{3Ei^R^|D_Wv~<2*6kZu)bhFjh!gGhs`(k=f zLi!u~o&H^X`?)KhOlT2zCG7NFpS^ccfO2|nz+Su7ar@)KcI@6>^z!dXVG{>?M0`{y za_WRC0bdptq`@A_lXU8^~b)@^4j=P+;NBO?4(WCW+Zs$II)Ot|mhS5jz2f#iv zy3a2(sb?3I`lQJn$63XhuQr^_Z(QlrvKljbs7|kZcW@{2D}(OKW!JoREFHL@;P_hM z_a-Y^#ODNFa|>QL`N*z#*BkCTRz5)=b_AoVSATC$XN!*))O_pbJmBq#s{z{%4P4W2 zTy%|Ie{J8G{J0xlJ!f<#$CoGnXw^9BY{#sXDA9aR4Rr7HgW_N3uj^JF5Lz^ATJ2e5iavdDX2;}l$LySTO~v*IHQHK&mVc+ z(i&VEJlOo`>YAa=Lz>3s9RFeJP*eNs7}qkoeJ-`=vSPlK zS)B#1YDZ-~TJSkODbX>z_6C1XtbzMAQ=?06M)f&{lkG@7L)DgK%Zt4I1-#?E$ zw!vZ9zul&eKU#A~=POT-wQjg#PQ$Ld*4}i$D}0RZQ9#nt>9^Fc1EQ?EJO7XxzNhAn zuhz|d*e3eU#~zBV>!725F}m^UnpZ+P?7rL8>hs@zd{KGzYMWt8=I?#8OI_LhdG7B= z&Y;~wUmJGPZOh-zeTNEXEJj?dQ|Z#-Lzk8RT3DahxXWeag7cf7U|wYuqq}@!8?J9v=MwY@oHXp1q0L+h_>o^z*fP1{+j zX`@cxKIOFPqura|xJ?Pfsx8_Yxy+}^LI0JeovjM%3_rEv{Og=E*E@_kJ$=r$#9ub$ zSKjB1F=zy%yE#(z_g6bM?i>`|Xu*2BDSNJrdOBdsk(ryfc70p8M1?+$u#(XgzFe;G zs^=Ng{I7$3l7gDGp7mgfx!K?T4-)5ZUUvU>wJDgtVsv-BkEJDgs*;|2`|OPAcgf`1 zl2Z>S47e+wo%yW(n(w#I#rEu$l)m#rR4;OV`+LHhmang8w5w-jH@{7js}@~-4(vQP z&1!fz$n76gIr~=l!KO?c?tx8jNpe~NRmoe8?$W7sHVbtKMmQ35J5V`v@0K-wZpwzKw6P~kK;d6+sKpKgtG zc64@*#Fo~i^kkfd64~D?G91OPiVO^c*U8nv#S#CV9Xm!Qh%y_Eb--98j1d&`)K+FsYowTl>akZ z6eqnSk&;+3_B~ylP@x^j*tCQUd?1&!r<@gx^oA*5g)~5tG-5Lp6`I6^q@?oZQ|#i< zw}Q*phi9E7aDzRr5Kdx885`kony~?n71yX`#H6L;J&PozB3YS1B#%BTpttCPIg3aI;RKtkRA^5-)?Dmm6z^HOp3CJ`@*s>|C* zl&a=2P;Nt=?+>vXR9nU*$HbSvBLz;pb67D#A>$a6gtr;XTV&#pn!0x7R28XBRi{(ElW-;cOApj1YV~W`zYm46goVr6hkwx6{oo+9pQ@Vw4e=2h)qu-375Z@ zhANy%r;=9`GngyZ*+5%V0UDTuiFdraj={=EWo-HRiOrijBPG4Ol^^9+GH7=(potZy zK{V@*?qvCJyrRY7@B9i#r+^zN_jN4aP;BK(v%g@rGT#E1cX?8{GuWj8cSAH6P3fGVrZ^X zV>Lf`ZWpK1q@<@+Kr2Qw%vcjHzjk3FHX%8VmUPO`3yH!^Upe`RHWs{)rnso2gv2rB zRa)RJasHl*SnqZ}QRYN%^aaZeaMQaOfwb;UsGSKL!Hz0UvXQ>bTx z4w{}$R$M+*QHlT49PkYMPalC!1U|NthN;Fe|Lfdjpw)~kccY>;?8AqG=<_=U%ICxT z2FXfwW_kBRNX9ogxq{5NXbPPwB!}rZ!mRv^N`@8Xo-?POVl>w7Dx`P7-qcP_NHsFo z^C1c$iV-KJB`XsvVr5ZeNb|C4RV-v+AMPl(S4OAGdjKS)%IV%!-d6rGLjX?*exu?y zT@czs{(p`rw|917OkFxT%G)#6K)H%2R}m#(n=Ct8*-QwqvB%!Qe=FhGZxbAKDZCYZ z7WAno>SgLdM1_mUyWcN2@O7Tg>tlk+{!4H30$(5Vz%EJb3ypYv%oFcw!H2-COEU7} z1_YA}r5n&pc_G~p*=y;B_?WT?L?bY-$jVf@Ay($njnC`6n?n!N-BVol6jgL{07WW> znTeg0c#(qPs02pg>Mr!QVS(Zg#UYxRxE^RiOiCXSHLbOuATl8^r6%4x zx3qapM;75t8g)F*kE7IYtBT?g$^kMTIKp#0hRr|b!eWCRR|=WSM?6!l1k)y zn&$af6RMwet~E3RLi^rIa6u@YU2e;SqAS3D2&Lj>+61U8z&*hE>IjhHP{C1Q6j5n2 zrz1din2#hyezK2oQOdPM*~V5Br43|DIe!eV!H9&!^njSQX6Cu{ue@aK|M% zN*@WMGN7x7Tw=n7fuqTpFqQ$Awt|4loOpy zR$5Mkc~3cAHz21F>2ZLR4qdB;Z(lGu`~pnQ=R@gkHJc=i!==FstHL}bjkp`%8JH&~DZb!MZ% z#+K!aj^j5hkzt@?k%$=_Nu(+uv3!JUEG{1%i3|gdXd-c4HYO3?eGsLh=|5;c3b7@p z)y32FA9&M4l8Kkd0Egis$>8)2_IvA;3JF+=v(1 z6JFrdhY==ufiLcWTFCV&zE|a#Pciwm<(ECiTu^s~wDUa8bA6s^ z+I<#H)0lz0WSEydS}v#?({uaDb0hBL`P>O%QAtrKhMdKPI*qj>I_Q%h5_}^s;zlWj zV#m0!T1*{7w9n8PDi^fO@GXFk>(N1tkF-R0)NlbfJ6w{})u?F*=%=Gm6o({u7S}~% z8dcJZ(bV=56l*ZG9}7;B)6y=Tjtyzo9El8&(m~oq^?Ry_Pk~lY+F;d~c8vn;i2F1^ zYG2iWy#dn!69F>-GXOIIvjE2c<^qldTn;!6a6RAz!0mt&0gnPs0;K#;1|%&+KS|U= z@^LLBA8&6t?vzL;YN3^=g`=${b+CpW=J~uRtq#_R#jML%D@h#?^GROBlhW!ysbK0L z2jrsn)A$UDekej&BtUZSBYKKM#XAVsrLslOyGo)-;iA{{m9!rVPLk6Sy-r_=L_bg> z1Eh42=*SQBtIAnc#|;dUewbfgk=k<)G2=K>e0Q|l>C6yT2sBPk{kWCb?c9HYK zr0x$j^|nG2_>319X-`?j^$Eg5b&8APP;pUHR+ZF|IlYe1FjY)cVpO>bsq~B)X>vC5 z#EXc0yoktWtca?QurgXc)Rfxd(ATochX#sel}{eR`|Fes#i89o15%2DTn z>l68SS&@&I6{ae4(Mbuk&Mq>^#qWgILWT_t-@6D~7&BRfRc?g&y+5eNSu-us?SeQW z=cGNXp#vmiBx%zl-0#8VrK3GkoHhunQldSQ$)WWa(bUKjuo*4tJ#0>OjPT6CPKIYI zaMUc_lcJ>KQYcjHo|4G#li9s3?nCjTP{iTBtBus9Asp)w69f917%x5Y@zNuog>Xd- zwG^(4KB+{lYHanfmieHEX^w)WjzWZW_Fa=){PN=UF>i}`M+&8KE~|KH&a~}AwSPpc@2LH=5_OSg0iw{qEt!a=^Kiw?KSrSTFqodJI}GlCz73_< zQS9S50aCi~bv@SS!L*WCc;w@SM?MRI2EQD4K=iS~6NkYxD1lmHl#6kYHT7wD=OyrU zu7@>4+LlJzW=}AGr|!Y&yZOAxa2_FyK&$+sA8dr!k$v$l-PGl~du#~pXWdo|lX%~& zycY?h9xl2;4dFu<99EZ_e4!S5F+C zPavi0&NR<7`@2faXriBPDx<;H>)a3;b?5a%L&a}lQgLf7-D3I8oOI3#23`<6m{zIa z3uHc1_;mG)hKFRB=pv`9Uw;6nt6vm{HxnpHSjawEN`6Ub9lW5d{My=Zkyj7zc~?F^!+PHO0yB6F$9{S(sEOy!9136zmo z#HWQS>7ymu>ZwfDvP&yLBst0(=_O@ro`^h&sZ7f6DL}GYrvXVXe*z?%b{5bB@Eo8I z;03@Cz+V7q?DresSip<_A8&60UsZLr|DTYEF`xvEii#Q#6-ALrMLtJXTt6ADgIs}(I;2UJw7AlOF5ij`OY-)HT8PEPJkuy23w z=f5HM*=Oyw*V)6`^Kig&@I7z|xCvYdegxhKehl6VZU)zapMvYa&p;&|V@0pWvN=7L zEh}irucPI9o3H;;^_aHgm-M)4q{mZeew>DBWj9H6Q}x!(G-dpkN}Cx|S{3VtmG&WA zl_1JpnPjDX8CtT^%8xSf9{#@k|5a(D+4%oTMOATL&tGU14=JdWeuXDKfPyG)4}wzA zhd?RlBcK%YQ7|8T43vUC2}(hq0;hp%!4mKpunb%eE(D(k^^O<7--0iKcY)|fxzh1v zQ2D@QhF474oMOtx=OFlXw5Hyc)G$+h6=rrH+H}s)I;uw1m|3wtje0OKK(h`s;1%mL z?9sLu^uwO1>Qr@TSQ}Ges(MW1Gl#uvdlPEhP?1$9*1yKB)>mrOkSg7RTk;yW{3y9q zvu&(jLvRyXUt~%OQ&sQhgYui;{ zRjksEAu=<4C2fA7iAD5c)s8q(n^2moU0f^{MjOiMMY4;C9xRu=`!a1en%897etNN* z;se!Xqw`ifQ%P5Pms1Eel9vB?;PyW>pfBQ7KP^|)QEaD# ztpchR2#vy>+(o;TE|ubP8Q20`1fB?1fPKIv;Mw5i;7sreP&LXja6VWGs_Rz;Dm|_Q zrAk_Rb*dzrQzhBlz7|K@?fJYa_CL#2VL7)@f=J$ zx2b`ySXdLxZ6$T;*OH;ZuF77yVUIC$>AEtl$jDQ5fhps5*59^LsU-$)6>q`T?!B7M zSulO@R%RY{r4L{oZc8X|OJ%>N2;8FKiuq+$H72kU&IL@ww@39Wo@-=b#!GfMX{d^_ zs!t=DdaVIkmvy%d%frCWA^$5`4_XJy&dR|%EL1zT{p}~nMLR5pJJgjNyhB^TC@?z{ zjTqV^R&{QT>tYTjYOag`jEr#aBNj@-0kE#z%8fYmEa}b;=&>tK?aAV6>arSHByU(~u@+Qr(?;91~Qa1=NV90N`Vi@}-TOmG&+ zid`@pWF;=R0F=&_g3|Xz*j-&Go2%<&%L>ls*U`@Pwk++L@w62Y?VgDCKt$UT(Y8i3 z8_KruD|e6E970(yYg(;d{N;7za`Qu&@l?GiLnT=cTJEJ%JSpscg$v89N7u8ktmS0$ zsfu+z>w*U<2#kQOW`kI}1i_F)?>lPz_#G?;BnyV z;0d70-ihGXV0-W<@FcJa;p+%0JvxCZ8ztCX*^teZ4cW4S`@L%u+rI2*rr+A>QeChM z=b(yC9?cXjCkoV*=~A9DhoT2g(`;hoc=#?vV*S%?U2v7QDJ(L{`Kq`j&p*qL(zHE) zyZ4Z~1l{)m!_J=AAaS{_oA;2ebmcEJii31T zx_*Ku{)IeIyxveAfg3=@@lBss^P{|y&E=JBSwRNBj;8USqlG)WtPV(O;W_-YwVWCMbc?zjQsXrOz(B7b)rD4+2h{qh{C~PpHR`s7Bj&**U#Tu+ ztX1_q-WeK&L#nj>7%$hsX zddgv@;w5hCYj(mUe_7qczDn|_UP4OAgxZ0qRJyfjv-oupA$rk|RRN<*gUth!|N zXNEP-!@mqx}DE#?+RD`ZC5%9ofJ?FAM^x zuq9_gPZC+-%>$JQ`JghPH>f!D0hI}CUGteBo67{*vVu+CwMnqq+fp)N@5kW`Xb5N! zY755m8YGOxrT)}E2G_XCCZ~QG?md%=h5RTsY8H3yIrR(YmQMa(S4ClWED!mi(L0k< zbrh+laEu0(s%L{58vP1X*v5cLRShScYRl$QRW`Q)*wG&Md?~4_6{TOUcg|}tfmJ4z zzzx+qcj1=2vs!)>F_q76_ME`OS)6Hj%X_`O-LTrJ)o%536uw+lF|O7TNolHd^c9iQ z_y45M=}W>Z{QW=)=?_ZX2ZD;zAW-j{6J?BSE@NcN3U+wcCRY16n)O$6G#>L^Qr~a& z^H)^`JL_~<{dCpbCetppx`=!n%T!Utmo04TCDS)8Z2D$b`rw_3!8_EQD%jDEi5f;% z8SOSCifYQ(+*gCl9h#jAM@dZQXx6-)wq-KCt|@a9Z-q}&I~jIfal9#nBI|0t?%3QE zX*sqt%=I_e9G?^8*j7PrecS7 zOaycH?!0cBMvGG9DM7A=;F;knq0PK5Y%*F`R zxDKl3F4Z!-c>!NG7HTfRbbm)Ah+>j173ZizD*~e_o1CB{HmAM$*t!|*oQPJ6ZLran zV{3TWuN+I(=*G~b;a~Ij2!E$1?XZy_@m$Z}+sa-uQA^)vZpnVZs!OuG7U#o~M*X(}?;2JnQHzF0jgaUh_N)#9p@U5!2M0jO>0C zZfUB5yxP-Aw{pdW6f#Ze0n+sg^1!xWKB&P-FYsiL9WLdkfuwx-P_Qqk>4kovG?Ymf zJIg!>T);DVU^_U-v+`9u4*}PJ!$76qa8Me01$pH(R5qufvSnGF;%J|EKDUJ6XuBht zRmFo6gKPYv0jjr`vXKgP+I&+{=CX9w!ql6p+{%Kd!{rjS zY84ACQg=zzA52sZ392cH>VnM*0xL2_n{BmYv%O$*_kK;AReXWV^rFq$7oT33NmE;0 zuu0t21seoagEy%)t+btFEFm==R#mWpm|)e&fwiCvACnx5iKdjd9b>QG6qK>d&En>! z?)|dM`XD7dRwZw2QG2|yXj5&ru+K>Q(;ly-uztk>3^M8+0- z+K?E^V!83?%nl*qkjBH61rNtkWtTsox-E@L!*UcAv{PWax9#&kKmTk>KD@f%HH&M} zYqoZpS?H84WBb_c=T$6x&0hE#Gi#xGzgw~JT{oSOUs?1n0;SU^(7ReMdY3}A{f_O8 zw%=N@um!r~3QY@ACu4i|_Wh;>rbn*t->CCCbwS()WmjQOBP5GSza0AzmI`uCuou6} z%qE`6W_y`m=lVW2=XwLW>}Z^z_p};pu8OBu=Owca>6-@>Hl-tTGp=f2!+JTnBl9Be z`AI_z`B9_(TQFU%y_u-m4>#czOq^Qg7ptrntk=|I=*jFC?4_z$X41H+Gi*bXx+u~7 zN4RX2P83Rdb7_0={IcLs-!X1N*h?n$T5#dG1--ePe>_)<1&8<^@_y!~xyi`sFq{-y z{gg}^zF_9~*)!@mw!m?JbJW+Zrj|vHS~=3y7^$mKZVBuYO%;@c`vdE&KaD|VH~ui{ zQEfzuZ|7`-VSK5o3q0eE(^@$7$?Sy|!600riu-sT?t7dM3D*i(L&6n?&udvy@s?>teJHBk5W?+mrMsYgwPJWo=Nps;r-!7p>lDv9dL9npG$DK8125s*MR(1d~_q z6tqpX@3R#>Y0ZXE;E+ho4o0(A#UZ-cmBN zBTURE$Y{{^F0A!rrnamPG$vYnG*8dURGIMkdY4FnG+OTCUARq+_1wX|CE~a3#`u>e z$GSm*XOn1^V|9bh#lF*vyMdKFmF?ew8Xf)~)LiXNU~BLeP#St0C}sKsm=E3#4g>E1 zrR;Zs;*mpHU`<_7VHD6mz4#w*)wPYvWYX;7i5!Wupjt6*bGcVSM~=Rg9m|4!GpmZ zum#9UTW}btve6Pe20R>OmNPg4WL7iC1yvwggG@;WM}Z^3HsCqnvEX>HEjSH44lDtW z2TQ>d!7{KtI1lUqUIKOm*^v`;0@;ZZoC01Ao(ldN>;|g6>JF-#J&&|@-E7%hH(R!> zKs!Fx80}_n%d#!*j;{h2$EUuRqum?PHbu0}5p8c$&+#?!wk!=>J?)H$RvgikzwRB^ zM>Mtej>e8g?{|GfJCK;UcPI}WAM-e#rgV0+3nSXa5$$&oP4$7}yCwVso8tJxNrUCExw7W67l8;~*Q zIP1vm!>-C|a!7q|j)G@T%XVWH=kJB4jFrz-XO`YtcDnWp8QYQc3oD+ZE16lD#UN!s zMuPp8Y*6Z#Svjm}qOhrn-q*T~729}W(?phaYj?NPnqE2&*?2?Px)yG$(7psCD!(t_{66TyFhr+~Y_9^en4dXYbZg&-BC?Lw!4v(pl3;9}_M;4&}+)EK)lcn6pX zDlPW`l@D5wa+QE=t`d+fD^Qc+XxZKtpL?!crl!h8@CEpZ8=w8ku&8Gp&bqXQF?P|HWnYJw zXN5!A$N!*>r(eTNvBI_*RQT5Tnd8eyGMB8fxnz~iEhReIYw$aom3an;Y}Ru-Y?!uC z7u-)EGmtIVWjhwB6c~2x>OM3>JF0h9X4+|$8V2Lq{>UI&qk3HDHQL^hiMAGV8f|~U ztwq*UtoM_3>@++;HNclGs6DjtzlMUm{ebPi^;OE?rqu*gyK7atGh?&GQ=w`TQ~g=1 zMnjq%7QE!rtqmc`>tymH?Z1w{&l<{FSGuEhGQFc7<8xM%Whn)_b|pcjRchZF{RkH@ z!xF6gpD@1Hf-?34#{0Unper{pVpY{)sxoBKB<_o>!#V^W&5U8hssUWxdLi6j$9;mT z9qu$%_oK9sdTBIygQqv8lq!Ap1(iI_Km{cm)O(tPdEfzHKQIRz4ju>=fd_-X0$YIR zf`@?@fGxpGz{9~MAl)tNinan*@Z1_ytU{HUXS=lR^Z z6-Ud3$MG>2XtpLnVMMEK@-(}_#)W;*e_R92JnaUVQETwB$m4JhRZgtQYBvvB^5|WD zl&nYdw_(p}*MCmI%#yMNHhPc02A|%9`$g(BDYa`+xgj5@_bQ7Ow;WGj7PzDx2hk<1 zY%XbKbH^VY?P>ft8c8b_%D!T2AyCBx=fPIWs+=J!4uxKNwC)2+&Kxyr_6ACrt7vyNC&Db zbH;9BtVr{^%ty0G!fc(oS#---^wW}wdV<{t@0fD}H9vdPwX?fxi#b~NWfpL!ZD7~K z{x;pbD_#5Gx4&j$wMe4qCTF>-fKdOirj(iQp(U3Y`B9mf$=@dpWx1=Wh){Exxs3;6|a$MsdULC*BVN;j!A1}p`XKXdn;9i zbctQVTLo0j);)`^C#8xSX>^OWUI2*z;mb-auhs7yTuvOtVyKjnJw=jde zU$L40{H)ES@u1fOcn&@X}3bWi~l3VX*p(S@3#Ki9v{EY#jbpzDV zd%5&oo5<>{+jMZt=WP2 z9}j>1LlD&jp(bH9ZPMsWw6FOq<1cx1DL>*lg1^nFm6BV@aqZgwX0uq-s!0W;0eSp| zM(>mc>;-o5#J^ApDI9Nr3dWn@A>dy@g>56Klpjm%UCPVmQeHM!Njci%p3esC(=^i) zE)iy)`#ec+w`tU$gea|sMmA6$CB#uD5+#~NhMpB9hh*m`{8#qlyA|F-8|mRU(oqQ zD(ghme7XwNOLO=Yv3h9>Z=>)1Gu3$5%igx%zML4Ut+gx7V`7m)TDe9-DxQ@6XWK;c z3HhiiNBGw$)l+_^_i>TmbMs&=doV4da;d~|fZDB&JKjXErjD)?IQ9;97X&U8tYIhC z^pKyW`fc`D=As`4pF?42K4m>|vhu~woT-z7=rulsVj&#N1nXQ)M|<%Mx=>NwMvD-1(@ zOxLvtmAdH^ljhzz)Tczcy?mHUgNpT|!_azJi!K^n$ZREvpe80vgucAiiEs8;zZpwk zncIBIx|nlYIlDAkY)NCUZ1&jD8C89qcuVPm=af?g&loIH8@p<0# z=h_xV8Rg!czEUE5&=;-OKsgG1_0kSxB4I)qyGFL$$X4cU+nZIckzM;A%o0WGywj@W z(5&JegiMj7>Bi93aa66yj=wN->AGf1?|^AqUL7`$u=>ER$eySGRtNHh*i8V@v zZF}+acqRc}zd4k;I&A~bi8YxxRW8-9PjSok#L_9ES1G(hT{t{_ER>41`VHoyHeySx zaYWgJvVB6=x*42COJ2RSP%Id7!t6SZYnJI%a>{W6D|%!Fb91JfLr!It@TG;8%s7;ANS+YzMiwnO-db$yqfV9fdrm|(1u#iwIitlP7ymkJfu z$|~6sRVDmZtkrKYw|UqlevU?P+gg4qeT?PKeiP$PR9PzcA{cgOePyf1$~6jY?Uown zD?hh#jlE1A=&Wt$>lNqd6-!0+3DG=Jm|cg!_L{<+x|GaBVGBnIJJ|Mu>U=6syolHQhfa2dkJqV7wjsB?~VQL4^wS;sG$9Bk{LquNWQYLv4?mF17+lCKne z!YZ!y<&XnCi1{tUw15oYULVxd@dugrX}1e07B=*>7Aan?Bm}JUb%FUK-CPq zRWI%5g>65g((G2hh*)V173*^xXXP3ZyIVRmtGEvRs$6Ok@{q1%vIlnxmoFWdn?82n z>Dk7##+Z6JHMiGQR#~R!EQ(hjN5foRc0#3T?4nN;+e-7Qjp!!XiDd_SqA+ut_IXt< zok;NND#QpV6>Ieyl=b#L*649kWur-KS*$XK@NO+#R_$KWivp~G`fYSt>fNRl^U5kq zmo*u>bv#s5~rD^lARxjQ{EM#I8KFvy*;;Lpv7T0vCOL3aD=glgzR0>>wY?%ZM z^(}baHgt7!wa3o4Z%V`Z)AvLZ_IgwHI$o<*r>UzDajUDKji7WDEJR_8PvNsF8tHn~ zu&One5Z=%m>&;7ad;L-o69r2u2QO(6DOgvXm!H%L9Amk{pBV;SOwQ7mSlZC~H+| zNjzmE1W&!-#hlgRcz z*qkd1T;8TlVvcqrHs^!seVajQ9AuN}c_yU~Hs`t%+d`vhSBA6o#^$8#OV`QKj=|<= zr($z+VI#1)xiDsAyes>w{9M>QG_ua`OW2&>P1xK_*(vl$oNHNRYnB-vXXt`$3ZdfD zZ`c^>k{StYPRdfcoX+nf*qpqsB)OxF#O7%GGJ;uRep_Kvo-_`+V{>UxitTiB{W{|N zj5^=NO=H}1%(WLb_ue9G*BDKWN%HL8`M7FCEjJlWCTLDW&tLO5g_Q1=w6j)z#4`l^ zIdw82+*v!Uc$`~TlKgs1#s0*un=KX{#57!evwSMtDVqSa2<2|P)S7}yL@pG6=u9)t zs%l&F!dbROcM4B^nUk10bz(`-2ImgmxpdyRA*E9%Yrmy^WvtKCQoDj&D~T+3)p8}d z>LNqc{t`M{LUr=I4TPkfwFg7at(D?#m(iMuf?enxW@%4^yE#C$se(PB_Rww*Nct93 zNuSws`jMP0nn-HbWU0yPE_Wct@BP$ql&9e@A+!^xkj`~?iQa_f*SO5rM$|F2lI=LY z#ZA44fp{;`&5pHXHPuEQG<)`RN7h8_AiYc(GUuXbBDMrt@_uCTs$ZcflNH9Rlo{=5 zvqY)8%&$J<1_~ZV)4Ma^Ox|G|-xa{TTyQVt4dc#JF@dqXQ^|7^ShA##kC_n)wvcRx^m2X4dn57M8t&P5${)>#OY*JkN7D z2gxjOWK_;H@p3PeOFaGObT{Ximf;S@Hv&(@ospH@-Ln^{Rky}qKG*~t4N_0q6|MV% zvv}s)igpiJbMRW8_XmFm9tb`Q9t8dwJQ#cnYzck>9u8`*^axPp`baRHlxPLE09%7? z!J|OcKSzV*U|VoGcpRvdI{|zO>;P^BJA&VXoj^871)V`QLIo#-2Z5)6x!|ebvEXUo zU@#9H1LlL1z+T`?un%}UH~_pK90)!M4gy~Q3&HQep`c32aFDa5!6p>8#+jU>_!eML3RrVE5L1F709mMfUuQk&>pS=*G2LA*e0^SX_1@8s(!27_n!27{b-~-?!@FDP0@DXqs_$asvd<=XT zd>nifWRO>`D(7kNV{k3VtZ(oPcsckiSOu;FuLGY4Rp-12ehIz=eh*fI8B{YbgU!HK zz?R^v;Bnw<;2GfS;6U&%;8^etuoTd=dN`_$K%+_yM>H ztN}j+e*!-O51>==G1wN|3?2`D3ibj&0|$azz)9fW!BX%G@DgwbxCs0QxDxy)xCZB2jr1mL?anzhoKgW*f zin$(R%f)W9l3xwBrq#Ccb&c`oVprQLF(-KX$TYXQwNcL1q}SqA%D3Qe|D=>pIt2M&q`k&YO8eIQ%~HyT$L&-MlrY}Goxu~gQnfXOwqzCu z_d{-dXh8w=StUU(Y}AKM?5i%`#Z$$f3x6ydy^EC|NH#AE7}^@iH(sAq z_DqI~SbJ_ubGHg#F6!Ly4RB#Q7~kA4pK1raPwx7%YHXKp8YhgmFEhj|tCwS;R6M2W z2SIz<)B7}Xl~n<#sGkX{RQ3Z;00)3)f&;<9;8~z{_YVP8X%&Jc;85@?a5#89I0Dq3 z*&^^ka3uI7I0}3VJR95y{t8qNg_+6n9pG3{t8=V$mG4b>CxFVAiJ;Q#JnXIn%H~R- zY*}`R2v<6R?r7$ zwsUe+0tx)C^u@a+%vTupp(D=Egx@03K?mcvQHEQh?2ITK$jo7raJcL?8k<|{T87OP zv74~D35qwdxx%Ju_B;N<>JV%2BY)C*xyd9KtkRKPp&~^<6^+t6R6>e0$G* zN~G7^Nt0N)`Q>gwovL1?B9m8WOfn%{5=xKWr`$e_Ka9$h3X7E=_e$$YYRy6QkA@Pt z{Ki`Qn|KV3;-dm2(W^ai98H7b$R!7M>S_Y0bejma11Eu6W|#sF0jGjRAeSLnmvcHe zf#+GErh8_CDo7WAcYtj9u!}P0f?If=57vMefl5~n{#(Jgn7nocLpE11WXlRv+#Ky4 zZ_BbAakL*InyLp!%kj2&0rEvd%@E_3ewi0$nX+xG#J|dpS4}G{Iviq$N8)$m71O9y zoEDVzlt%Zm?=@F8*DX|Wt=6sj^K!(&$*+_$(ujAt^07-7l2I@+6TN8g>h7z5F8NZ( zZbT<1=!0LU{HnK{@>gK%ZmxG?Yq(W;4A(s=|6RBzUk@oiQj7=q`#4g@q&|*sRVV-> zX8(t3A2lrXsJ+^nNWaH(Xv9|2jwb|lHTxT$730t-tWxa#!5cjB0p{`){s%z?pFIlY zEx|{?V?eUMygT>=m=AJ0iXGd13LM1qGoZ#_&w?|-b>KX3J-8fv9=ry85&SLq5_lW< zGI%%mDyX#kGpL$heFLZ9vN;8p%_+E}Nx>a$hqt*qO&yK?*ifx;U&dK+>gDLZM?1%K z$>CGjwsaYvMzm|h>N0G%dnD#@k}UJ3My7$*p;2-TBnUZyYTH3(%fO~`*@nN+48ylJ=hJFU(c4>2d%%r(_-QE+X^yZHKd{Y@oNi{lzpz2N)V+kzG zMD_{$3kt_v{w7SAVl-)z)H|GvDV<;owW?(0ox2%bg($Td%U@^|#;)jy)Fd2g>lC&^ zlnbhx*BU$$Yy+wuJPzyu9uM{cb#rJxP&bAut{p&yZ!oFpvRgKn-LkopsE)SP^SM!s zO~dcAXrcD=TsBX~u15uXmv7Ih?dbYiD&bD9Eo^4Dkua0v=blx!S-u{J+yM>d=2^HZ zh7INBt+<_%l$)U+#q^DOa&u7etjT3lekni0PbvF+q8)M_NuQTGbEq8_%F4OQa`M*+ zt~WcAb5mhV&dsq$x!jxpYH(c)9tutZRT)eLJAgAlugkO`gZ?VVrK>9?=}OnyYU9pW*cERn zTD-M+!aYlxIYFeI8T9Uzt)0hg3o~JMm-CvJG&kn2R;W*0AB#7g4JLt_%e7g z_$s&vc{z5!kdz6o9nZUmJNZ-Y`;Rpzexk}a9Fnx^U|5_NyL zf%OO!tl2Zom%gRjtusycP$#dJ+c%jK>RJd@RHke#b)@zZKG3_XoxWw3oygXw*s`m6 zlk53d{UoJIZe!GUl#aw}rMLpF$1QmcL4L%e1iK_z0i9m_XDaxARx#n&yJ>UiJt>DrJ)9E z+PxrqUZ@yRvs7QUAIIxNk7v7{^{0AALx|*T5B(@9%9FF*F1g^|DOC->)E}HAQx0F{IwTobNf2{I#1P$bpB5YUg=KP`SXAZ zPwja?JtY=xhSPJojrw*3GBIF81EIZ#&Q6sb{wd@Lq=k`--)xdOHN+Zcgv{Af2#;M_ zoys>FzHN_0;jMUb1EJ!+Wc8zcMD0zLcK$A5hbKMVg6kr{fyNnCgP5(fNGFzC)colK zMYeL4k|j|XMlG5V@)_|K+U&yS-osG}^R`T(X&{Ebm!CTCP!`%@E%~j^v;Kp|CaJL= zkKbxLS}v z3-yvL>3!|6sKUo`N3$d$l`BjL=P&dYFBzh|HxTPPk>O*_mp{G7=@u1^RoLspgByBC zJ-8uiqE~huFBMOxjkd_NOb&_23ETO<{g`Ao#Xp|5?)ZRDgI+m>$%&$cvUEFQ5KdEY z#=?S=&!I;Px*aIt%#S?`jV8-OK6e&FpXxCVU;eBpuiOtkKABl7Au@`D>P?7ceqF)eReP*t=#oU3U%tu0z$=ZAbYBprfjT3xU@ z4}GaFxV}$WX_ov9 zE_~-Md#l2xWlp!_SiYpxIg*@My2XN^-(aC?cO7-F!(Y85y9^y98`k;wx>V?ulUTGv zm9gb+wS8WiYe4PVrSQeOCc8Tc9|b zZMUaQxAuwydD`thEzcBM$JT0`yz~bpFD&k?KxKsbmXTglX-(ex&5gp+B$}PUT>nX< zaGqQ=*FuJ}t|@F0lGjpC*533$3iWcg*J#v*&riQ+Q8#EL+1D zWDoN$wHdl}7kS4*YK*(8N;LX(RaFt+wja@0CngMIPGUf|qYR6AuG2fP=2b(^__=Uv zv%3%F(-E3_b?vD?sh^&onOHhPDQBlsD=uR0V_@w$_bNN_j@pW)*<;E$W2QlmC0CW5 zbH}YMT!pcqZEsa&$KA3`+bw!=sv%Sp?QNOeNp z<(PXJZ0Rd&R1cX>CWc0hwTQm(S*i0%%hxMRjp=1*>CaK)mCF`JA=B*$ZP;USN?fi= zn3Ip{DAen&7vio?Nxkknox8eEJ_f7gC9eB*{2@!77;Ein8)LgKB7QJ4=A@$J&szF6 zk~5o1qH5P9t3FI|P#Y^_J;it*fz53SD=RnQMLfQz_#E5ts_fV=T|Avvs_h%PUYDyU z!e!C=y0|)b;aeq_x&yM?*=gT|9iFeF-=@lTBZ&H;F3;n=UrmtI?fsc5RIaw3YIi$e zJFk76E~SrJx*adC<3jQ&()G(zxo$|F-0GJnm-^++*n>Q|)h|yj+x||`sGEQjyITUz z^TV9VUK7*p@&I2j@+W##SbV=_H|g(E-X+%1oW#mIaq#NV*vs}^IlF_$_pKUxf4(fZebTg6(Dcu3=+(k}6d>v&@6W)*Ant-E>d-lSjGE_4&0 zT~E;YttVO%`0u|?EUiKK9@R%m)ZN(TOql+No?50qBB4+0jfkqX^Ra&W2VX*qR{H#A zj&7w(&qTpWul&B$!{Amcq>ooky>Z9sta%N-QfNFyWAn^#F`z%pkl2U zNW<3&Q^i`5cvxo-U7gEAJosB2V((5Y-5REDm25Upv+6Az=VcJA`uyb}wqmV*UFvR9 z?zxldT=BV;uOairC~Y%hV{1MWpF1o2YkMOzm=&M?#21Oe@qA9z;H?b|4-*m@*SeKj zi}Wcx!Kp+U0pPnsso~ZHY^vvW?)CMA|6zSGzg|FKut{6Okk{!Xg;nE3md z6d>KiRKL_m;g3tz+(N306|)hjjW&~BBn8a=U6c2;!RmUSNM=?xrqZ-cvALa)HK2=*Mi6TY|E zo`W{uY+JC6Gn=@bs|GO_8m)@o8~JM-+z`=Pp?!{zjY3|^)z~gFAA1ux=Q;?Rd&gDS zmYC~5u$7yQqn4g_W@MX)%}L>)o(~mA-+Vl_Vsm?5_Mz!9!$@W^&?WV;TVle`0)i_v}>eVCL&b@|OUEwWu2*{+UkPhnebe5aED zSDI}kHs@Ez)12+<$o42U_qKmxyUcuKGnjR0e+@QA>&S$>%gedgoJL&8{LrQ5V-+^% zdLK5I3ukACd~aiOeE-De`1WNk(D6;j=H%Uh&AD#H=JaJ>WedtcKDoIC%onffkpv_`~)8KpX&&XPfs=4$6en`NivNAsj$ z%_^8*RyrP+r9$LS)0!h9vRVXN55r-=OFP#;2`2ng&ufPbnS7UHm##qY=Lk zppMzs2CqZ(7HuK22yXJc^TrjH7IPn<&QED_K|!9u#RGFooOdOLrn=$@ELy)PK+eBt z8gJ?Lh7#_C=z}uofKK3FO``RxO$jXvYoH;ivto&9`KPqj;p#T94caUuXEHz*gU_1bloXcz`Mrqmxb(B(JDpk)BVEua-N&Z?<-2MvR>aiVGcww7sdBG0FjTna3k^A~NgCfrsF$cI*m64(w6J>UHX!93x|T-fjK*${WXp!1F+DI~)u0 z-Pm9p$dTG$0;sloB3J=V0&fE+gMR|2g7<^;M(iVGGrAhJP+g+z4Bs^>jld7>D0@>E5LH_H{c@hX7F;X49@d0_rMJbI(Qzu7JL!B z7kn993vz8j`Mcn2pssBA3#gjr4Ui9=1slL)z_&njA=n7&s)lz#(l&SxBn^Z2LDEcm zR{neNW00^0n?c?kd;;Pp_zc7?U@ocrAK>TU|A1eDd($`E4mJmOfQNx!fk%VzmUjYc zz^B0PL0v8RZ}2tnNAMkRH@F!@X8D)kPvB1QXYeO5ZEy6R28Qb(%G-i_fg{1j;JM&F zAlu@DEbw<=6L2lKFSs4t5BvrsjODr)bbs&w@Bpwam;;^z9tbW54+d`rxo*O)UN{s~ zm3t(pD;RRY&0uTrTkt4wf9k+C;E^D4FYgE*3##rt9vlIl0L}tW0vCfFz-z&dplV$D z=;il-r-09bT|w2Yr-6IXJM9jt^6UW~2A%d6B3^)gT7Q6_25nK(v1l|u; zgO7o)fHmN&pg!jH7I+XH=)Z!8gKvXpf|Skj!Qgw~4Dfw$4!8-t6Wk2m4SohzgImCN zz|X<=!7sp{z-^$$4qt+(MKGJX-)(M@&24UxElZoR&9#ZPVVf;0SWM0A_%8Rhtl+MQ z#%V*(_g+NPr~jP1Oln`}x2d;rAz4H_Bce@-XsYj>U)Au=FIU=l+TSAD2N8{nMm%2! zZ_5gP717R*Xm>}n`y-n6P;uEllZOR4%p7W-hy|T!ZiHQP*?eD^5>0ByH zi?JzA_3P5zxGK46D$T4o*6op3Fr`aP@R@uhR(@y#gWLK0pN4hmoZ?bDk#D0usgvGQ zkMZiXi>~q>)Jfw|Qzs-$NIf|<8M5~5W5l@|S<H0w4^cnr%*5>8#=le&O_q zR7UUgyF-UCaTMyCCylspw$(fCTz#Rv!~N*}(g4*oeLS5We!0TT1*MiVT|p|3pc|-V zp6=jL;OU^keFmr;yo!`@IVhXULD{l`b>6i}@PfC6C*Go_!%kFHnjPfI%k^CK~%FB$;JNHSt-ZN&;abK2|@On(_@K8GMD)C>kQ}a_pK`z6~_~COW zOemh?Zsb(eQ0F^#endVtCR^cBo~o7`;pxBSHWr2T2Jk?TQHPzP{5^Oi&o_g|gSUW# zz*|9$$o~K;ez$|l*Nxp`YV$+pqr2>cfp*WyOW#7R;E*JZG znMI{h-2>?L<-cs4SImue|{3^UA$OEwJ^!jW$c)g&bElyEN*V)mQz-GgNU&&d>wMD5Xgb zs0=+2RE8b|Dnkze7576yWvDtZE<hTorHyN+vlo?}e6JfamXy#zVI5Nxx|HWgdLJ*UfYRcTRb$t3rju7Z|)N>_f=*p>5_S-*x1 zDPgR<=W&-xb0!j0k=Ne7o>b|^Kd$&SIT?+ErrbP8!&E=YGF4r7Qx#nnl%C-Nv%QL6J3<LmC>!-KzmAsSZF}yw{^DqIHe%{8P2tEelK{yiXWmL^$wU9p zk2+6T^=Dq~<|3s?J%*uwc%0jEWa3o1%x(m^#}-X3SaN14Jjt1nP9j?^0V*^00+kt! zL1o51poJe)W{e_*T#1s+Wrl37F>*9DMvj)vw^p))y$;y#$S3y;9^U8mR*$C*dcD>0 z$Lo#f1P30t^W2EX0rtXhqBpoVVf~^eEZQ|PZ=}OJ-08JI6la_XW<5fpzL~qJe8qWVhkRf5uO}L%-}c-w|GMX~tKOP-*LUAlw(js%vnlIqTK{oy_D_c& zdgY4C8V~!!zdvfRV(cqdO=N#wI`f<*v{A-1^4n)n^^};_0XNZkzY)ZwLQ) zK_}BR(avD`B!wz-hRb5i^m@Oz*CK%S@S~rQ==w)@YmgcTY16!9=!(b`tpFMFWubg zi|@)BPr32j!*;!K>r*GJ-}&4hO7~y6^wXUnJE2UqTW>xr+uJMgjUo7->b@?*Q9H;?@(|MRVL-q?4}gzw%yHkjP`_f@CQ>a%+8 zytfvg_QX$jT>9pavsSFU_2$QS3_NJerwc14Uh+}tDIZ<-e&t28E2a+ob*JNZ-u(OD zKm6UZUmW|-SI%s9=sTN_Sls93cTe3?JZQwulTNr`Qu|-eZoT)nz5cp-+suj=zUwxt z*^-A|JmZB?ujc*hs*Kz6U)}xftp{G8Rqf=TC!-#*+ri<+En>eUfJX(3;x-2 z#gE^f|K`#8d+iMQM`o_S^PtC1Ke$iVim8u&``Nw6X8w4_>~jW9`7GFb)40z@o!It( ze;xVtp&!0<=BjP&*ERdGs(0s~u5a>w@BUA{)as)5PdNO%Tfe$!dH=EJ^!)kTX4m(7 z>hG7mwye+M{@32L;?bX5U(=_{&)JPCvQNuev1;n<;p6^3?zkI%I^feTJG-BF`>k`E z95|}SpO3s{QTdcF9?N~_ghOumsO6M`-QT}A`LbK~e!i&PZ3TIs7k6lJ(sBQ6{_w}g zd|7tSgO`nZ@Z$B`XPkda`Q}5$ynShxCOy75uCn<_-@QCz`lNSPe$j6JEk_*tr`?BK z|MIuPcmDg#H-9tkj{DAh=*MNyH?q1(#^yCT0ZrFd|rZY<3 zICe{~Nkgk&ICW6bSA(zp^!sgZXWjdoyKC0|w66WFIqULUU)8kopYL^=I{BHJcFXSA z{P3gQ3O_mL;Dc9M5QxcS+dKb?{&dGGZ7#tglE;>PO^ zzWnuy&b`Z4&bn;xP2Yap;+uPJAOFGMHov_2>~UY;d3e*`4LM?9%YwD1EZ@{~>P7GF zdg#PkhmCx`=U=}s`Qh7RhF(zq+p9i5yzR$r9($|#ysANC`i^?+%8tiQDL&|0sjx7~Hp+h1RN-EjlYz4F;3nhslb*^j^d*CQi0 zC(hpVdesM+2aNb`&BkN;AN%M&58ijoJ`Y|0MW?^K*tBWu51QPyb4Qn_7X8nGXRVz( zb1q99avG<|vACsaydg7v+mOGehDW2W^t9ZV zoXiwC8e*oWO_mVM*6YssELBbuT+-7tG!NsIl_Ezic6yq6(lQG+9>Od=9)fth*pUKH ziIxNRgu@+4MAZq7|MFQ;$C{RgP_aPg^HW{$vhKkz=JUtvzm%^UyyIot-L2y~Ol1 z3SK0qWr`ft59yJdl5<|FCp8h*q4%1x2e z+IUXqSLVXix9v`qa}+Lh<+M(b)5ds|k}`!kC!usosd)K1n&-N5+N8)i#(0+VD?R+{ ztv|T2O&vMM8jt1|!gw8%BB!nKyu`0Uk#p+FgHyw!-h6u6(=j=1Q{)_PJP&y}H$CxQ z-&8rO<$L>x~mqEjK3TloUB#jYk@yP^^5a4GNwdp3{scGbX2NiX3fIarKXU*X;Y?xKuga zji*CQPPY^}J&Z>hB01CVYW~MmIV#2JX)R-NdZfrX!+2E6B;mJ#p)5~~>jJZr5xsmEh665toZ{vA6CZ|`5oIb{L1HbCQ z^!eedf2YbRFrMp?vo|)GJ}Gj}gqogqGdkZC+ws}$E=`p~6#!2rLZlxuXQs&M2Q@t{ ztT*m_>chXL%IR-Bx5eVsFGbD(<2j07rOGW24!bf{&OqbY#c!Bj15)G+GM?Y@tNQT0 zQO}P~l|vP&eCI{`V3Qe?B8Tn{JYl@QxPRJ~)bcgNc;4kV49{69ate(n)aT>3-gsAP zc!nB}%6ph!g(-4|8P5g$%5-aY?9@~_!*NMZlm3M98kQnwgz>bJ5X`CjPI)3VUPZX1 zrxD>OUL#WE(5-~$XV25>p=Zuc4bLd!iHB!oiX5^BIj#96*ug)3o^ofZ97MwtFQ=nZ zsQ9JiQh24&PkCo#(4BSQ?(r5Z~5%m)bN~ZJRL~nL$Jw= zNs&W$hcM^zt9X4-^gjJM+2Y|jpXc1pwLYgWHy#o$ir2IhIWvq$Yw(%a@?LwsYif9A8c$6ueP*P{nPogb@~e72{SV78 zNtHv_oOsB| zV?2Fg@hVM`Q)WD>U11Aun6!k3I=P(AO_5WUB4?iQ+{mv?v&91lTC$uAaY;|x91G99 z6gl&aM=2?@&#&e!NtLqzm-Mt7VshrE$hpXPj*}3~+<%Y#GF8sSxTL4W`#%?@$RV5I z(c!tl*m`t3|FG2jT4+4_mMD&9E=iF?bB>%g{3@NVet*eRsd6qep2AqXE=`eBZajDE zm%qCg_92}mF$@x`bJlV1EEKZR__7JZz`sMHJ z3v;%mhG(hq#OFztq{zA4cuwM1q4>+d-`tlf=L+MA&nH}-B4?TL^z?E*d8S}fs+@%J z%#X!uS&E$H#&fEd(`PM5?^4pa(s<(I!R0A(Rv1rbFK6D7H||K4Q)N8y^jVQ2hw6`X zRw}6u?|8ELc}v9g`(bxGodfFTeXz)XBN+#z&+x1DKlrgSz?8# zQ6L_^&l=}pZEnI$wI(vg17!xAahwU?rFyU~McQANazjXnVnL_an@|qjiX_S_AtCa$ zIfb$_g`#g5$;`)>Y7E9Yo^nw{8R#kVB1(y;ltOX2qboRM$|B0Wo^oYGdCpUoN0cp| zvLd2*aeTfelzfFOyfBMM(}GIMoAxxiDFMU*N}xi+HQ;weia%4445a!?{) z^OVep=POUyKcZy0gkzaM40BIU85B|Ye2$qJ5#@KD(kr68;whse3Wq$*oE1^_&2W@q z5v7Btlth%_p3*X+lz9q=oqPi8(3?z7M0wIvj)*9qcuLcV!neK6928ObDz}*y5k&`_ zWilelWKYSCDCM3~7*THblra%S->#RrB%*xoDV-upBX#~T-6BdSPw5d+IJ|BqFQTmU zl&%rwX-_#LqI~EnXGWAxz7oGQqMYj~T_Vcmo>CrB?)8*oA_|8s&CH4@Y;`l!KBBZ! z=NL03q73$wNfBkPrwoWF*Lljci1M_jbciTACM`2Eq8zo4qZ}Gh@;qe(6sLeip3)|w z%#~Dc*^k+WuvFG zjVO(pI5~@(j=484oRfv=kZq#(ZTvp~1Rl57KWA&HX-J#$&`kM==e^9p8f;A*bK+=T?`D zG5TpgVaoJ5r?_@ltrnw+Fk%tUM@a42^Zb5!XZIalm_NFI|H4xWzz%um+^mT_cQO7!b z%)`j3#TO2lB$tBuMk|^%Gfu^K&*9utGHY_3uU6y{^#O&w`t&c%w}?8HI$t=5SYizN z%!&W*g>%j~2@<44a8i2vPcYST^y*W`)rBNKdVveW`EC=DJ5Qy}#EN*FR*-z2z|t|! z5!#@m`N?lG9jKL(Us^nz zTYvh_ojMWDo;^FbZ%=C%V4jnemp3%OAg?gLV4!JW#|9WilQU7;<<-xGkiz_;^ZOR{ z?~{kbfgL4L$=NV}eyf5z>?>r%Y|AN^{jOSEM|L#&El|2YLSOUf4PnZ?w5 zPb?~~BWBmf(LcYSpG)QQ`!SsB>z{SbEESV?yWevU}#i9S4c#=oX!>M0KcIn~u32HdUQI zHpAwP8!>xieGwtnCe1h$ydje&F#@kgoQtklEGi9h#6RBMAXD!t#S^Bx0y#$)1Qw^1 z5tqmVJJ6pAdh)R`I|EsdJPMo3%vfDQ;d700&#labB_MFcVMdY*d2fFyVxP^6E zL>@YK+{9ET1+CBAk{MGckPohV5R)j~bio+LN#1dDQaMmK>pO(4-w3-tF%se0KOeok zj(K5j_MTf>T0ASvqf}37>-rDQ?^|&Gh<-(94LrY3{)qg}ovh_kh(pEkiTR)V58odK z*DhrI#n2|bF2$2eCafy!Vrv=R42+p8Yw?J@?#mnaTLYBqhbh#Eqo!7_Z|>i$QHO zOr0#+3duumS7a7{x7L!!S{a1dK_PqV^%;h^Ozf>PP9H}$u8+f>hlw=o?UkWV$2OW7 zeyQfPu40iXUarP;j=$Ji6<)7A`$aIS7tR0{5>Zo(`8=f|L9d zUTg3sgR@rVl@z}=;C&8GUKw~dz^OHi$FDU18iCXIDLk4Njs)iunMb#+*7AjTN5H8+ zoQGQy?-DNig3~OK^D04D^Y26G2ZD1~=9QGs--1_V1h(wLNk>UMJWi3WfU|ETqp>HH z*21OvczaAhe8?vu*wa_Wi)Sy16j`P-RvCbEiyorUfq=awZ*R;7(90#lG97X07Co3S zIlLwJuS{1$(Nbw6gb64ODvzThM*EuGg#jcpRZ z$y?5ORUoXz&mQ^LeFbcPW$FHTBU~dmxvMx&q}OEaI$i0B^IveftmZs8-wdIIpB~YY85$DLS~ebY3oa55QT!p7TmdFXdn5&+vjfGuV>tg?LfmjM`XwxKqLV z1e_L|Ij=f|wR|StZg6~ZOXuAO?+iHKZRI>+FBbVsYioLbffWWg=|C}B&F7);ZzDKP z+Zm0uFV^BW2fP8`+}Oc+B3z4dTMXVHJZmr5Wx=zEUte5~-Hj*eIO%{htMQ|Hv=y8i zUou*e-COu)3!dv9`0*9z(U8Jg`-0DVOY6Wnw~zB^Ws$Y?ehmLU`x+mFKEQdH4z|jx z3*HHEu6@IK!cHyXr@`g=2RTRiZ!La5;i4OOg)+A!|J=cAcL;OuIO#xjwwhjl#BTyP zUwzAHCFY+uF8>8ihr^sF`az5G9SZ+m24}~S()|m?<$Q2@9Ob-{>~ALg3kBzwW1J`2 z4U-vlx&W{W9>D zfU}}FkH%|}N*x>uutDZ1I(A=X^5ls0Cs2W_pHLXGM5BmXMQUp9;Jkt}SW;nt`s}Yn zXQanPr^b%puSF+j#AGD5!%sXn_HtHfXGNtyp=XI z&6t>+I3CY$wAiOA4R_+{*mcm&S+5@*r;jn>$xdu0wll@kbT{YWhNLt@x~UdV1f64y zNf-;eIcFH-@!=Tor_wf(XXN-wS(_?Ur$BK+#O!q+gD81e_&`e2{o!@n$?yqmC zuRhebug))0AEJxYhxR01dR>T*Z;(#vAd_uMB?tQq();>^_zw*9kL)A8 zD7&#O)s26IUzk49r#BY;^7vFPl|H~HD9~RY5aiQ4LTU{cb1hR47-}^Eon)?A0xY=^ zk%+ucP-uuwKOi(HDp-f_hw~uJ(qQQ%juh`Voq_*xab?-hp zCMnZ^HPMxwCxfq+!cxZ=(&^29%KI>JAroC?%c zvvec`p(Yu_4G9L!4Pt-B$W-pX$VXMF`RF0?u>tb&P2{7E z9k6#&WoP=Hdx^!8nUaw>EX5G7MTwadPb;{~E-FraV9My!k*LoJnJIDDXQ6v{Jtj~w zjXG?c)K;d-F&5OcULJ>R^rlB&U)KP2bQ=_X0<{e5HdiY%BJk~u`wBmvfyBsD!54Q;Yg`plc&aump$vSpmV0pG_d?onUi5xU|sr6(fI5SNGurNpFI zM9Nq8OFaqg(WJ82Lhhmr9AEkghm6oRX)J%Let9ac~ z96OZFu`mx-F_miZL|sbkO+#kAVzFvLB}{FDYLZQ1**q$tekqA5V|+{!g9_GFjzzDs z<%CHM^O9Y9md&LIwy1u-g|_%fhT;<40D5+H@G5<=hb|xMct9Sh@Vs^WwvIgVMjS0%!)$#voQ| zDKZSB$DklzAHRP3u<*dp@W9By`oIu2bjAi(quFha9QFVEUE%p*&jzR%`gQD}H)11y zduMv9DpOH7$cm`IkVxF=**ot-c?5;|`1^YI- z%m;DD8b|t-Mj`q2@d;-!$%FeofgyAw<)_0F1$*blU{lmsMl{6_%81UMhpM77CpEwi`iu>0;D*O!4EIV(#htfYw=gEOcmCAuvT}tS(h!@sjLOIzPv7}?U5m@~ zS)3w&8A{1aN=h@P>y0nr3v~9*YD^iK>set@7L7r!AWtZ=N)a&Qcx0NPdOb@W%jDot z|0vv;lQ~eXvLb@=F43w?^FRk0?ek-cL1j=W_3L@ow1A&DspE^YDU?ssh~r|@t7YSj@^PSU-eFKxV#JIwosLoRXS$Fv<5Hua?$^=sEy=(_Yt z4?J36{-v#VZZ7qRGs@RPEBK^QMF=I~u)@N0&Af?(kDnXGx!R zY}tOZVS4q+34eWlZs@V`&3`etg{{a9_P>R^pU!x-N3Do)Y1N}f{)3Tgv;zXaa_?yy z`~Ia$3&v?*Ke1)&F+BFT!FatIy?*Q8Q)%zL6?kZ2Ywet)U;jP5)ux~J&im)MG3&;u zmO5x=a1@-asqV?dbQa5$oR&iOL;3-)yk6CH?g$p$@Y(X zRar1p725ga=Ci&pXHB{OQ@7td$K15LGr8qLyJ>iQgRdOHzZF%h-Tm%*a$H}ZTMOqI z7rTry+&3hh|6|DA9{Yl3{89tuTL*@tRX4bPtkK__E+1b#!JwbGZfKpvlh-D?zQ3ja zo#bBq^J^tu!;2@3H=&o|qxoCz7-x9&`_ad4P)}9-`yKOq79})o6B@te{wr7mu$l4f ze|<77f6|>cwT5@uc|7!kIg=iLe5tkl+21DY9dZ1K{d*_zNSEoTbe|6B` zpQNRG|Gf3=tmT!*?s|9N;h7(QXTKL59iC@t)hR!Ixc1#MmzTWp`CC&Kel@#JmE5y6pPul#bWVT{Y^O?09?rl6OMhUr@hU&?szj%6NSiwtVomx8FDIr`~8i`%&u$ z8&~iA*(L9vR*kmjech97$?^l^4T(9iH6!G9R$F(wKGL-lFZ8N$YKhySO}i^^$-neP z>-XK+m;Vs1ZKY0|77lG5qQ5e)(S%K2d)&UPv-Z}S8OIu54jnS_@hmiL_~IRStG~1V za%$zJA2|8A{jmO```g-(-rqNCbFB5Ls?{5Jnc6cJ8znJb&RZYW=up%3;G((7gGX;` zUei#pr@`vz&nvyT?AZ3s{r~tA-(0|RFs=IFh;1w4>UVf)r9~kd?xXa1Ugq`o$KW|EK-yC1OxXgHt_5r@O?UwsH^tuzkVJB})yDCaA1pp_PZCiioX8j?BTjmHI{9uo14~RW8;Cj?>YIp|9PnK z!)0i%Jn_6-t6uPE@`C`Mu)B$IU+>(oX6}O?SreML`gXZ;X~C*jr5hi0!v=ATH|Ir% zNjE3fO}XBw@S0uFv12#72X0w(RDCzx{)?|)Z#i!qmYOkMtZt!QTSvMmUl4T z*LTBj|20}#zo7o6^4+qcmUx#4*^`lG2A?Iu6!dDZJe z-;GN$m%I|XL4EJX5o3qGxNO~fo|}Wwd8IMlm`2U+>|fR^yXT&RhjTvH{?z&1GtI~J z*>kqp_frQsK6%g#Uo2!iUF8*d`wJS>TUE7|UskXBOWtYm+SjA~UuZFQ>Q37p7yGTi zBk^h!?zE#d|43{3fy0>x6W)E0^TCu?0t&Y6>N?_&_N_-OI{KwI+TE#)Cmk|wpS;wq z-Q}D68jiR=BJs?cw1gL@IR5!??RPh(Em9+2PBY%T2K6cjbUV_yX20CZqmQ(oJR#!9 zi6O?E@POF^>vh<9G!RR8s#Cae-!xs-;*QOp{;Gvb|M|jy{pqY@34geawYlD7$gUCN z&trs>$#}Cy*VGrNyubOeZjMvc z-~GU~UjE&^o3Hrfc6nf{jl8oWW%r}1H%H|!#d1F6wN~vPbE#LW-?iO3KKg#y_xVdN z-fKH7sO^V;wEp7DmETU?wiRv05XMVC;}kS?YJhD<#8txzp9_=P=$sC&44iiL=Xvh7 z1w-4f!;&S&Ycuc6JH}&G>r|=Nv|jJi5gXd~-tkwZ;5gMJ`@?rW`lP{&Sf+$NQ>%7* zf4GP3g9$U|HQU)Pv)j34Et;I0IiT*bsj+We*S$G^?PDzGV!WAqUGf*aa&yLz(CQ%x ztvbB<$+U#D`yWl4zPSD51^3m*VW%|S*Q$TNZ}V5n<(D^{-E2Q6__|lW?!TW1zu9Qz zi?fHGt=#m$A6Ogl7vr^fC*++fU5$%tEI)bGXTuNi^=1rQ*4u6Guiqzq@7~1id~+$uqC|ymQLg!TF>2_pSVTdYd7?qu*z|QLmp`ooTae z=4Mshl|T0_JlX!m<*jF5x#9NxZ{H1B;ZYa;)(?zV_i(sv?Sb!R?drT(^LEr=mtUeY z$5ejh{lRs5eX~n9IBF;!BV#P4Rofj|+dZtN-J_rDjF48n^vd>j%g?;&^(Y}O%GjyJ zcMJab26oSQf91V9)%B&v?d!gARsHeZ*rQh>4^O!=)3fvZjVa%}vFKy82m2Xssl%Rt zVO!Rm?W!3$>HM@_AMHNp_07A72X_0z7(tI_qH15(bBCX@HJ@LGBNl})GS zJ$UQUm*YOhmq{7#yH%HBlXo}|Uoh{d!XIB5@~~jnpR@9ooVk2$^5`XfP8ybBo&#ZP z)%qI`(;r@%J@)Y*ZMwbS`(Y!$+Mf+yHao7s*U+zJqaA%4;fooJx4Y%=(G5~kYdEHU z^F{vZyzCQ8!gr5*w=il+?@^~4E%#c9rJ{`2`|o+JYdBw8v980W*`L*)61?%Pa}y85 zo(#W!bnT*6Z+vze;nt>bM>t)-9rj9ga;N0^$-`XVU-ZVtq1qak<2*v|?Kx4m^_vJc zi1C_iwcEJ7O6=SgZ4O^4?Bo?%>m$eW-#X~)FC5jT{gbfId!fB&ykB$gFV9`MrE2J% z!QFiBzBg`Y(&()}54suTo`3M%#|=J0J<4Oe%VT3kx9-<}+3>|P7L1!w|MlS=qcZZm zroA57KYioe1BY5+32hyU-=dV=Z+x+({nZ;Iy{@KCX#U5Xgek6WF%L(jjo){1PEzG) zv)~@Hze=uJBKGlx7yac^NGDxTfgqK;LV6cE>;1dv*5J1v?AXS2t^qWM7;9+JvRm?kq?Bs8f%^?N_zO z-mW*+&ieLO?>(EU+&_^HQp z;?6Ih((lPPhYmJ8Hv87?cCUZd7~@XHYnTz#pn0>a^_EADPYI15KYiAu;I@zN-s(Q> zkVie=28-`tmXz^cn3m^~d3D;cj-Nz*IP&~IcXs@p?SIL?xuMIdSGza4{6_(n<q>pgu~rN*rSb?;|<>)0bL zbMT}Vc8Qn1NhqZ~nqt_imk;s2>#i(v|9e9Uru-ewX01TJ`JZej1M@ z=8QN0QWx!m{Mo<#WWRRK9p`Nwhd3;I)FfcV`nBEHw#|!D|BMaY81J?5HhH_hJ|Ekv z(fqH^O^}WC6*pHs=R)6GyEw${f^u!mcT`AnGx|I{gJX|*V@|-`uUbtp&quqYJ*Lh>xP9HQB%TqP5Rjqnq!z*bc<2`7(<*$?-FW#xHed+YfxiLn+9}8X>6W1pG(V9=} zB3FEZKI<0a8IGPveC*k&-pYKt`A0XroT{FFXG2|wxr?TZdZ*2NuZ;_^?6e`pFJSwC zPWSE@A0>D57@7W2K(#MyHtu#@+fS4@t~? zU58j@7-xNxKe}I{j&z5eP+B5 zPB*US8j@Df_?r9Mx5qqOePmW6o1;sr&*+(P?BgeUwjjN>uzjuiqTlAlgXZl%v_ks1 z@kh;vPYb@-J#_x${kg+EFMDtPxBz3=k&IWb{==4*G+3u{_25cW{jsg^kK@kj*XH}bei<>$5EfP-oAKbm#p8HU0?rNtnInvo8Wb9 zLgBu@IM}=M0sX%nKCfG4VEFa7->m)ixa;rTKfZbLYX@CDa;M@8;EZ=L{`TnRhQ4QW zdZfQ_?&X*5zgbozyjfV2_-Tg@OdVqDb_riCV!V{<*&a)}v>CchWd>jb#wJz zi}wCY#%s8G*`?O0f6ZS%&NjyJpi|4kt2d>0TR3p>YE6x*FVxS+Sfdr{h*qt22;BGQ zsgVa)w_EaWkEs*Bsj<1s`MU>OHTdYA2HkR3{N4`ttBiLiD0%VpE5^d07$>g|2ht+H zsIht7%6D(Ij=lD(kG|VV*ywMJH^Errd|3OfH@Z1~aOT_lm6k1Y9=d4mwnw?fO5XRf zf8Ku_{T9aBXeYaW_GgEFL!{%H5f|#%ocnt3Z-#$0PKVdzb{skH`}GBwS4n5Q-!8t< zqQ>^CZCB3l?&Fyep*}hCm&S+IbpLhT%3lsQNzkDm{EG3~{Qk<2=Hv2))c?5Iv}^rp zxV)Y5=BQ&=k9sVvxpn=c?o)#C6bF5cR;{bNC-7t2E{=J1h8_Lr`@(6*FSQ?cZ2CJJ zlYUq`tI~FSz(^Xvc)yR#_;cOnHCqP9Hk`N0b;=j#N8KIx+5Va9H*|ZPwm>&6!} z-E_OQoP5)9SPzuj-x6%0CH~=?9%1;HM|w=MmR{`2(6$`gwR5ZJfq2mjro<&>#v1_Jxwq@k0sFqUbC1qUjy4X*UIg)JSXmU4mWY?b+6^z4j~T;b(hc#^ znBT^1Y-)NreWUnc5yyC}t3d3^?-^TSTme4Cr5mH;QnBNIx=}wSj#iRbiCc8h%D(}L z8JRIj+6ZH2d}3;J2loygqUkG@nJIW{E_#4pbR@DrBRV(&(8IG`M|b>naqkqJD3{q- zJVl5%BveGf&?Af_tOT$U-)Au#xtK>9lPU2TR(z|t)W=mo>NBatxIb3n`Yb7jNv7bv z{ERd_U#S2~N~WrkF*>fCv69OpEj11C8d*-ykVNH`POPx1m{caFR!H-LsEtUCt&n_& zC!;bA>Ek+-Gq>cd#{<2Lm;`I>z%yD`T6!v;++`S2Mq7zk#nq~@SRRZoog}BGl&e`0 z1ybH@gh%nQ!)VF#f0}Hx0Ws;rtOW5arBu|(p;fLJzmgME&=3gkp6M%Hv?M*AFGY__ zODk`2Vnf2z^l{~{Vsa*BU@03q9jv&t)=NA~u2Zu#F2iU@#wW{ClTwHMCvntMT;nQe z6f_Kb{fHuc?m=4djMQfqS;}*Ji|nL@<*C@Hp(2J>na0El9YMyYCyvIK>d1P^S;NR~ zm;oZ46*j=lh##%5&?qJ*Czm&!@)(Cc+E>0oJR2>+H#Eo<;*&g5#>&{FRBI!hitE)z z$E9at1$VMRpJEt;mtpV*Q8`l}*S->M=Rb;jIb#i*m&Xwm*H}_Ll6U&RrgdmL@TL*& z^2#4m+<+!gnU$Ew&(cfC<&~B(oJPXs9+gm?5_fvM87Y5)@w!S<%;<_}cP*k9UjcQW z-I36^zx?SO&Ne`_-n~>@y-A|ifXdrRm{s#Q7`L_2_p{g`)s}H7al@^r{uzDZqr-|R z6lxsflCdREd9zHur>3D@IZZ_w;TY2^;ugxZPVm8OIisgc9weq#ghxti!Z!!kS4b%+ zevZNIO~u5Lt);BUN^4whc0^VP-WoNUD{ zUP=YsTgV+;*9s}45@s-;v6UK*@~~ba&*YIw{Vi|eSYMWsRPH*4xd|-%md7aNj}!(x z8L8H$U@OjYiw43KHE2N}lo+3xOeI|YyC_uQF{xuZdsdWZXs*~`1AS2iSYR?{-m$MU zZdOJb;>+)!+`Sn`r)HM7@+04hZrVFqvBZkAAewf^aI$>UNmQ4UV~oSC#PoUF1iX7# ze*aj*Ff6_T9x2J)P(pet_UX1Zclk`|Wbr}?mp8wPZvWWhy^Qi3F)Xj-9{0J@SkjZD zXZI}KPys^<*gD>=jyK@#`3f+LqQ|O9hG8*rG*>BF&1aw7Wjp3oKrcp9%y=kVe(S;rIWcKmIemn|C&!H~zb8mrI%eq0=}}SoXj&s? zn4!cpR$LE26;$3KpRB;4kr6*KK7OQi!>PC|7>Au!GH}rzzkG_)mktAOgEG z)6O{K{_E6?Mz5Jr?oP$zwhuc>$E3%Vd(g=5{tU)3pu4$xi3dqMCT$vTbHSnyf^-DkWug4bTwX(SK9>jHG0@p=ID zVyKs_(?~wDP9yaO%4b*m30|nI(@6aVZy?YW#(M>*8$F16t3}8?sI#O_p^U=`EmN+0`6b=OE3NbsFhi!J7w^$9Rhb z?;}~Kk(LVHN}!XBw-%@)LmOnBM%pCnG}0G9r`gq=g11N3X{5b^cM#|d;~fF&%+PnT zP9vR^bsFgm&=Gd^7a(_r&dWNDbV1f>q^m$!iVQowDR_U%I*oKk@a_Q}V!VeySRf7; zPh=hJuNv3E{(!I~7*`!+9qdom!TtoV4$vOPdjSY9TEImkSqJ-*bsF{=f_?028^LQ2 zL^{}?;B^7o&Uih5um~Ie^^$e4KUoL+1KP!|_7l8NSqJ+Qyr`V~tbF(E;DVee`y89S z*X*v%DPxRJL+1F&OXOJ>q7PH;Bzv~meKNZg0E#=urW5ui7Ln% zZz~z?b98yxy3051a)Qrg2Vc&Kx||(#`lf4+t{|%`T@B954*m&Oqt0bV{gk8oDO-0s zC-`)B@O{}^N9OJAoZ$Oyf^TOBpU9e+FI9gNuUJSqQBLZp{24aWbx*2q4Sq5M%ct?8 zUDV_1TXm1&NUgh{t-FsakFzc~8Ar-&U)6NoBPbtbU8tP(pi*Yv>RY3pOuqOPoMt-Y z=XwRS>hRy|ygE_uE9> z&W<_(Z^Ckdo%-iQIfh>YN6Omom^JaXWOU2XoxqjbxN<){N9P3W*gq$@fRT`4IeoR+ zs+_26Sr=`MHIPF&ecW=K@15l++nHTa86DYg?LigoyaZp6(460g>~myBKn<^*6r$o= zE4WA*Kx?6Mkx;Dt2V@5qZi7Y|c}Uv9+b5@9<-t>pr2fH<1!WRaPE;Y>&v3M#-q#hy z0H=;&BP6)y>1J`q8h&iQA;&W--z7WvHjC)qJV~u{g83cP72+~nG`OfH|9ca(%)Uypk=$==HP?$gcg)rmB3*5QowD|- zQ3!2LqL_0?cR$-cC+c>NFZRhsXGEEj^_9)dWcu`nH1Z^V!zZWeML$`dp-xQxb`lsx zdFeRa(TTB6UQh=+B4ZGTHc?Jl`)m>WHv3?2l#@~SQNol4w}b4fjyyP?wN!TGj+H`@ z>OU{e0HlKzXI4JqU7%zda-6a@>tffef88^y$VGFrvQkF6LY5|816XZ9j-oyBwS97e z$G#~%rgqE@n_u$QuqYTLvoLF{i~jwaxXsIPh8!>yz!I7X_jb%W<4`tkvL1HuQ=NmWCiaSdJ)I8gB4lIbvO&6BWH| zQ*s*a^R#8_ZWq;NG-OWGgVE(gJ<0mFmaz);2U+)nH_;{C&IUIKV&h>f1?*ocG1QFc-a z{s%EM9{*`nZYNE{e;Sp`)x{od%zcaE;N9iqf4>6Fs1=o7?#`kLQ5&iCWPQWUFy{Cv z{Y_B-tS@q@J>5lx3`29vyBwSTBUJG58UmE$-ljDmjfm|eye1~C!^yh1to(Av__gPa zF>`k^Pj2eve%01)x~&Ec0y-BoCXQMA)Zs;`m7CE<;Z_nyLwh^vON+#rm&Obi)$}Ns zqB0`+3T$J2rTI~em}T4b_i&9{jJ>grRm#nDIR&`Ne3pk&wwWdHebEJio8z4A1VcUO z?L@5$w?y0is34ECE~;S+C`Vgfj!gT6Y30)7#z{8^bPHvNZDaA09!?kb#p8UYdlmnw zqPXDO?fe$XPI_DDP64fFS6MAaKV@mJSr;22muBdmOxG1mnpj|OY>NL?jGp+fG3u;m zg`Z_hz%ub>TZ=}Ho8-+}Rz2ZqqZ>lHEwy7e#YJhOTTnZE(^^SyG7#P7+DVy0Hx-C_ zJUeNo&^4h<#!;f=m!(d!bheNsx>Niu!M&_5IozkXSK{%!;Xki?CEovkaj&G~|D;l~ zTq<^Dt}XscsTTnj_S#YY{j_{7?&JTgMv12qf91C#m3*jZsig90`SYyT2eKivgv}KB z@if^x%p5l}fnJE0uB<(jwpFpF$`+#a{d^_#H+5^9tZB z|87!}Ua2=FN!foTf0T$Q`B-kdbfVi0^nWEuIY1?ROW6tAc+jCp#s0YV>2_GelQTe3 z$WlqCA}ubL+0GUBN`6`Tqv$QA!c*KoOPc5m3*|6O882-D8DVGr90)f!h4!~h4;KtDQ88NH#|%C%5O`l#8*l0^Gd~^|C77~ z|EKanu@{ogG@tsMQia2Y{^58YX^W#0{loD*lE?h{|I_G?W>M_eL^?+Z-UTG6=3j1TqRVL7=Gu%@k;kK#K)hF3>uG zas}EY(0+lA3Upeaa{^r!C|{rgfeHn(wG;U#kc&XB0=WTsF^gymM9bLhBu{bGOCW!N zf&_{bC|aO+fszC=3N%5WsRGeQ7I;a|5oobM%LQ5|P%cm{7Smlqw_l*60-YAb6v#y&SApCFYAcYZKwbj*3lt?B)zzGx2PKOkPdE&{m<4LT40c zf5mi^THuItt_>kgGs$ z0<{I=x#1~vUP9+DbU^||3KT6+yg*3;83mdk&{TnD3N%Nc#R4rCXq`a0Kyv*Ry8Qwj z6<1FS-8rGVEKt5c1p*ZcWUCSRCy?{80!0fHFHn*|Mu8>>G*zIP0?iR={bQei>vtp6$n%)kS!W#o(GNsxd`Mckefhl1@aWgOCW!Nf&_{bC|aO+ zfszC=3N%5WsRGRuXpTUO1zIl9I)QQp+9l9_fsP7vTA*_RT^1-`paOvk1+uLw@=qWa zfm{WmPs{LpZYz+dKwbj*3ltE6^^1 z_5(HM_6NkR?zFgiPN2&IE6^^1_6u}Wpwj}K6X>!)`2rOPR49-wZffQF zE0Bvot^&CU)K(x*fxHCr7br-eNP(gSiWewJAfrGN1ez+)Oo8SIv{<0!0<9A$SD;-2 z?HA~%K&J&dC(vbq@&zgos1S(TE=-xNY$VAKW!)Do96rcYSe1Iv2X}l}pBhzo&=+GL zAYAlDE5O#Q9`s>Pf!S3Tag`?Uq^ybd?7akgEF`;G1&pkHZHrcf_t9oebfoK1j#z?> z>sYJ&Rm*I?{5Yy0yFb?W7h=igLChDi(An~FhM~t&cYBHAbr+`_Y2{-BB*l%z6mnJz zZY0FLgL4s1FR8aOXOCZ!L~h8CR^$9cTu~K$j1pg-^k;hq_$OxI!<03gSn9#HIHuIV zM2mxSA=Zn|sfh)I!$Eg}f+F(=JWflCjl{OO1|#ky9GuA$`T%QMk`B8F$6z%^s54u* zHp#?WirY0zS)kRBjItgtB}}6D_J*Wel0J~Gkb#iRA%h_4<{=oeJ7ix-f5?82A&{Yv zDUe~1Z$pMdE`*GL{1h@0k|IaAvNT9W4pOv?G}1Yt%M&_gJg(Wn*AD6~LkTmnSL_a3)cMZq1O>^V(tF@9N0_&tx~6X zS9-BRO|PgFWJg_wuWe|pWI>xlZ2f=T?5KRa$-=zOw=uQ`wl#*_Oot~kf(xhHXH6`e zG{Fx4-*_F%d9R6g5N=`}<^2R0WkR;|GKJgH@y^rEx%9|`L|*t(eCidK}MSrVi+U4By|Cz#?+xn z@v^!m)R&>=(UB8Lq1=a(K3khMnk#+c8pL)tw^&po))`$EI(iL(eWJAaukc}XZLTVv@f@}hL7Sav!B4jg2st?T}X-QE} zNV1KWAgS2a;^ftp5U;L;G!i`t;JWED(pa@pN)7o$Cmohn`WJNFEv%H>P;Lg}{LH$Q z`lY6ga}RKLFGJHwW+0kQG5~5im(;{}(DVtZ>Dc+!!blafrE)AX+ZvLiGkrUlAF0OS zhIFhJGS!VpPBTEoZD|jvX}T0+`Z#<8xtnu8+1*a4S)0tPs;lB1WCTvKD%c=lB~6WNVt0;^<`h=!#U| zOld%8I!cePK^W4FqgWY}QCXC+4r!u8DPyv1(-Nk%Tb6J*N|N&9RY-Tpp^%g}F_4tE zbZ^Q_m=G^vLcD~xGaZ#MA&v9^|93InBN=HVH`P*1URjOF4NolsMQ)ws}%7;wImXM<%DNn}8CDs_2mlz>lVuW~|I>dC>@ShMi zIKck{O!rVm*jPcOylUP^M!ePJ{!yz*$a;U+8ds>ql{!WJVP#oIb!s_I%Q{7Fh(mU` zvE-8N+__ktf&=BKz&b@em}TomakMOn@yKzC_iK>Un@)hFG)$CBf-o-$LcAmh@si*= zDhaN$1+uIsZJ;Clv*aeZp;$G;xv7-g?DD^un-oXO+?*um=442U_7q4;LzbMIEr5A$ z65_c@i03BPQEqabwcMna~0bV2deCMfVaOo!LFaZN)*jA<5)s z;e@P?Q|_|q-ka`uxF<<5!+f#BIrAZ3(FUg~w;Oa9a!yf;5JhWO6hU~P7MZsI@m|HV zh;raDJa`uuV*?Oc26GGzS0SkIWHZMj;qXW9nC1;0Da;7$7ixofZhrFmOTE8xP&tyt zkwwu6kd6^5-jZfO*1>NhBwf#hq+%Qm`4Z$<$NB zZ$W+ti93f$l+YQFTOe~Fzk-|vc?@zkB&FpYNV;2j5Aqh|`;h-a&Vi)6mAR0WAU}X~ zft&}~0CGMgwa^P7+e0pdq}F)}qz~k$kWrAUAYXx84fzJ-CP>6l+6)P|QZD3D$j>3y zLw*5C_P!00>I&IEuX%)c%_F3dJ_3vDK9Lc|1wxl6boMq1&rwF!dk;#T3w$oAhEgu{ zvZ$fthT>2Sa%umDvP+Kdd^x(b%XA@*&X^*Z``Tc z(Qu#NqhqMYZqP|f)sAa1yI^wL&c+H~nWTa8fh@chbh)zr1WJ(d=6gu8@Y9eqGX4RQ z+Q}aw+d=*W=?!@navnkW^l`AgQb=lemQu;uc0oLlbrEssl~YF=X9xV!$@- zDJ{qHyK&ve!g9!sJx&_$(#P5PVcl}V(hUiTV~cf}6r_Aq-~hzhpdO+8h0|LOjReJ? zO1u)JCn<33q#TCa1?dL48V*boLz9P zdP-r2#}qF~I8zR5CHdU9-^yUpTk#!|;%ZrNhfpvS|8F5_%Hl9&GsvTml%`{lR0L~q z@`5A83yzS6?eE2Pw`HF7szP~RTJBOs_O+-gdh$=wLUuw(;ndT4Uhq<+Aq zIR29y?kc?J%YP_`Dg3swejjp>((pAT37Hj~Q=8gdwAB;^hi8Q5|N~bEMQPzj6 zc~><6vOaV#L$-!|1=1ff4l)=r9x@&>0g~JfhnxtR2ssBb36ch1*z1oCzKoERx0#Ss zE_AER>klDb%7plB#C4{-hW~^#5>1BZGhI~~@mpc;mIhngtu<>X@6FrhlC2@2!?V_| z=N!c-rDs~Vtlhl5iJLU4TW>*9w5LN->y-^jxlSd?bDa>+bwWJXxsGz3>;8+}+)_$z zcKm-VH)qPZIZMvXx8>ZNE$1e+T0A!i@!TZDbCc^RH@VJQZieD2=}lWIDnHWQ!Ks2} zTTauE8{!1w%q=B1|EH#Ds#`QbX7`CS3rUSUj$%BzN2DPZ88RI-Z%V)Y_)jszjh~i7 zF3JPTp8Gwyv_62OAm>9;f4K~j^6C>v%4c_+ywnKsQX{01^6>vS(_NMkpX}zmN6>K| z4XKVWo}-L3QavEfqgz7GYbA6q3Z1{u(U6++{tL_aycEm$pPF(iR^q195C4Of@hM84 zYRno)vW#_*WEoo_$uhoxB+KBVt3fj2mO(mh8K;39*ds4O+%o8@gG83Wd1M(UnT{-j z5Vs7@Bg^1CvJ9>x%iub)46Y-~;5uuTaS6UU;WTYCs^GWMX4HXe%Ql1D5a(B%TT8Kw z0M-JN?^X_LW1Hvf&u9#z3{GM_*ppGZ+1DZsX|bW1#^Q~Isp<4ZDHVk^UT+% zC@o7pITgwi8P<+`EGtP+zEC?tSwf>0I(EPsD6bAcHi0|{Nu}{Eqz>{pB!&J1WD?{V z$Q;PCkn)_0ZYNCq%Jf`)=qg=MKmX71m&!%S$%wz!ZE0D>KfRn3}>YoPx1(ShMi5EH9Zc8-yTH_1IBzDGe};5H2n$`2hRg@NtT+5BH`$lmykP1D&7 zcR$EC@H+^S@-7&X^1T~QUb2LE$r9oN&nrxK4gU%8lI1)qS&{doT3`IJXgVJtU$7`V^DL?8$k_FU*q#5A) zkYoW3Ambn#LXrhwYkk(K^n|25dr2ysie#B^i{gt#Se9$5nCktJ{) zSpwIQC2$>C0@sO7f^G9i!y8HN4rl{v>JG9lsIe*P2<-kC^@O&3r2QUg3rK7fZMM^+ zH=M4=X?@bMFRqwcm*wOQb)lBe9>`4mc)gW6!R)?gtIYCmXufxepoe(c|LK>++ zzUsi%VR0QRIcz&yh^;?evhvhewVE}tKxK5oe;Z>h{8t-axY_h(W126fu?5@67i*^L zGOS^%rs=T;?dxfe0!nghrIXk%~y*C z56oJ`#^SdXQ^7{tFq_+m1>ZKdt#ZNKqgu*jwwanQV10*zw00yxxdEr0G!Fms7@Ca# z^pwU$T7drnOh1X6QctZ(*nq z|M^wwUpcbYrc!;RVYdrTIxMX|1=sy7CWFZh#gOC|rCL4BTAEls1!Uzw_gWSA@+McR zOO=$LZb2a)oiHpnQ+Qe`JfN^xMgDwshw?#-GmUvjqaXT}kcP+TmK}FM$F5d%J|#|! zQg2Q-8y17L&*48E<~{i&rsMx8pQ*-H#ZRNG{}Y3CDg*3tz}oSKZDhLBGQuY!kV>in4z%c=A&o>&t*Hh$ z(3q1Ujg$(M$8>mZ&ya?mjLRPv!834%G}1<)%N06nHQ)pIMJc6|4$B%)8Lqoo)Btir zx&IE%U5cej#hx4vO651euTP6JfahUN>4^*}>PnJXSHf;% zO~;s&50+!h$*>&Co3|hvLS{qKZQ)GFV942!@sRig&!pEN=R#6G&V!_k^2Nz5ju5vv zLK-%fpi!=abQS*z@%3weGTlS`C!~=aP-1kChfko$NF!;1sC9H;D@F} z1o0=i$x0uz5fpbFB*i}flG09n7B3k>ykrPzq-*k32llXp>(KjeL$*pozP6U98eB0w zC{HO4#HBnPhSRd&AveUa$N8o8JdKFKchkrD4L8J%j2M?;G$gaTZt$%gsDCV1Ec1lI zvCI=cJFLZlJ^+%!?+r*5Pzi3b+=_6E5odO<5K*VIv&Wzi*>rXxZ!Z=KP!0VHB$0XqJ5b79bDM)7{9{a zb)uT}04Mev!hf2mb77CDS29E`CH11#?@_#Qg|dw7f(|NO%0{Ku(0#Y%3Px|}h(kFS zUR1jL?L2zV#Bz>`0K`P1_r`)WGbBJE_7AhX`+J;TbvX}JISAZ;waJ-=QLqA#HDjON!;rqe>xTmtGLer zW#ANdRa{d%ES@SJXX?)E#0MLSVp!at;+nGf6GdL)DDpX>m}WsS4JlrhYSo%L`$@uz zC9!=LM*FW>_|u^+lqG)Mqo3*f==f}VyFpz$N5{+GNKcE8l{D)ouAJEJhs7}=A5@xi zE_}=Rb{8jA+kERyWBtB$Hx4;kPILLIjaAy1~p%J;%L)X{py}(Q7Jzu*RKS; z(dqBM_ML5iBDiH!|8aj`-tqN zZT%p1i%<57xbbJ*zh2=vMUjmTt^IXi=Axg~n`e&Sz5VmSb6>7=X zsg>~JynE*}0+uy&ek*^;$bEs$LigGXv)OWF-$1`AcGDWVOs`$|b}hBMPqn)3E)6soNL6R%@Zxm9ww?G0&;d4#)h{H=5V~`QZwe5e3cPs{CPx z$2E@+x_bCa&pYAo{Hyt~$NjfnINo{o!q?jF3T*OV)|h&lrn7%-aqNvF(dwFek3Z^| z_V*QsQ?BEG39h-ORqX?RzW#5emd3!Zmo#ZzMRoW|*B7RRHdQ6pdH9#}whbN+lP8Vq zwtL8_kq^$y_iXxG?4mB7|6KX$%*S8X+EpXq(~lm_d~eLK!;^n}r(KRs^;%!pjC^ve zS$5)FsrENxd#vcbBQJ8_gmWJK2YY|q;*{-~L%Y9k;!?%j3x^@s+_Z%e80H$uF2IL zSG4fU)D>M(t77n<;xXjZIyCx(=;*=)TwA)Tgez)QNBk%5nTJzDid?11t|}FCMg5Ih z#pWx49xh2ivXrpa$gb>)xuW5qT1B^EbPRvt!8b*&E^sA!Aj=rCkyi=nsv!qzU(6Nt zK57+ZIpz2lAz^2V!t#|}RVn6*Zim#WVA)l&2VPtk=`zZ$aD#1;^E41wt8}ufG4)5y zDRT9x?8>2-E9!IAs@C{V6vKppCa!*xT{#wWMLoP))kb#p;Z2YEMPbpa2Xs^|=BgUB zMXugX2pwJIs;lg(S}|AE&0P6r{n@?9)o|HW^^L!U|4yxD<0mV*|D79R8E_-)Pttt%ed7ris{5tC*|W z(5qD+;6GV^|2^)bid@kbo9U>{UGXkCjx=>}s#R>E1rqj8r$=OB^6{taia0!D8c^}T z`yx#+X;6GzgI3F!nwcI?9?%VoTBUgRf%eyhq~*s5a)pC9+~*upE&B_RI8{xF+bcQdUx#Bt(ymF8ApP~)7{;@6ZyurJ1G46S)s4#hZ47{?X>@#W>Ust5vz+DCw$Ij6@jRqT zrdADwKZ=dH7YnNcl#U>n=V)5~0oWA%EnsjCKFIM71cc*F<*}PI- zp2hs3$s@JO798r^I?eDk7Ef0f#&Ji&sTHQ9bFnygg;uTl82(VtN=NNtoNmynRdr3` zQ@L1t&^3aCu8tjhCl~H09-khJ^Ar9n>FQq0A1}sXr3Q2&#{tiT5U`p3P>oQl{7vHH zRm`847{?p`sl80;KLS~9=}#}l8EWFsOU3*lA9%k^_A`FcnJdZr^@S!x*0>AJSXt9uXqLzt zFQNHb*0d0s2eQUhXqw6$l&8=H$(qhW^P1?yC>8W9m+TLN1h!I8%`{Zg-jX$TOhffy zyP1Zp|Ad)_tRYQk+Tk9=7@LIO{6UUdMI}SWg^)4t^Agm9gWD8#_~Jj^r?B3fjT8Jx zqoV#;h4Z5nH*{!q}7{${S~96htX$kkcd72}w>(wVt3538AME{tR5D!|ND z_uXTEEDCG5?22*BT=h0{WggZV*%jlMx$0x)YS-JNkQOC3Zpp3~$IMlrnXA_NPA0kG zPFahCam-v%yH`@qr^v1t$IMkfGgrTTH4PpsF{Dk6>0lf)S3%I06xI#d72}w>3NFP} zOSx-g95YuTrMOCvT``WCE4oK0ilKQPZjfCuj+v`4GgtV5L&=T%vMa_hbJZWLqOi!Verux}4+=o^i}vMS)dPSOaBO zjAQ0%fSIdJKWASr3TuJvigCP{AJ-ngu@P66E34bU0IULGwh(3o)dV#;}&g3WTWp}{0 zU3*r(yZf`c=+gCBUHCqui_V>&EriZpo{b;S;TicIpOOEJ@eg>`_y;^&d}xXIGrM@k zG}CIiXA1+1cgpS{L!TaJAPbL-iA^$?x%236Ue$f2Ugm6f^X#(Dr$=?+$(A1Lm}hD7 zb38ouGbf-`@uAQZ0-h9FCzSN0(VX4KN7Cc@W>8FqQJ0>cn(pl>>HXO#&*D+HcL#Un zirMo}@2-lvx53DtJ<>Kh@TXTVchfeqzmE=0A~lmfeU)a>p@L?qLPw3Y;T=H5pMlr`Vj(!h*VY71_<2dXt!@I5dvQ1Kt8&)0BTp;EF~nkaWc zEL!kc5?QB%zutO%h9NF99cy*;akN-RAD5asGLhvn-=WaEmq#zwIk^Wsy|L^d_f6iO zQ5`#Y!`{p`G%TN2Y%5F?FP`4m7mE$;oLN2}_%?DTemuQ9cv>u;!-qJe!jqRuz*C#& zV&Ri(xlEtawG#GIoBC42E}v`jcF;;Kvl2EI3X7zdxsJe=iw0lJsN)O)9epasBV}Nu z6iB&Z6{L$Wjnz{-Ju5kccc4tYcxq2;#S6Aah47>-U8xmMEc4|#y}>$L5tA}>(N-ct zu9U)gZXZ0#?}cZ1ywIDr@~nNAH0?b)ch;I59-TXN>e$tzQzv&5C7_49duL*H>e{s{ zzcf@6qzaPSHC!7z^e85WX_f|u>7!=)jX8LUzFcBOffY&jUQSWJ!uj+!-Q!m59KYr6m^Gob-!v81WR5$Y9lq_rE)`GsC%;8My;TGazJMda(au&@tTJw*l zKBB={EAx;ntLdPL;631|$CU0LO>cAp=S`Vcntuzy`E6|J{(XeYPRi^qr&^6)9^$tF zyxFgn?jIG`UYR3%XVpJ?z~DXs+eJ+*-M?12{8;9c<{vF!Yw@}y4Sb_?|HvS+!TC<+ zm6U(+@b3~hy(gFMp9c0f4xFs1oaYQ-%}$NB*xqCs*8FC39zDin_F~0OH_U)7;G_f5 zuxeK{-TEy!)pCf%+YxKw4uuD8!I?Re^GdSQ7D&gJ;QT(D^GZs`Mx%Xy6; zN=irO2iR*8CmkiFV>m9%2It;9&cnQ|)%?R=wNl6VutE8ubxrU}3O9KX_O!)GM@iwn z0RP?sXW0_Ys|sN)|7Zb%+lSc6e<|ltQ*EuDFGWBzz-jXd=T#}eKfIYJO#^4{r<_+y z@z07K3|om^l5x^eQaY%8nGDVenFsH!rehL3xCKtiYVwUgAhni`KDc%W9H%vmCY4k_ zyx^Z3I78QRUP*R^og1b1z!|ol^Ga&Rrz4>A;0)Wyd8L(avrT9NaneyzzL3520%zwI z&ZGX)TKQ6W^v*@Q@df9VRvxXkVc{}PI!X$c+6_N&R?_nz93|O75aOr8?~5Y%j_eCmkh)+Y8r5 zfU{cWp?Rcodf578F-H0N>WRlbd;7}FK`BxftLi%bW2`rMg|Xo|93O}A>&C-?q9XD z;8D3*9?!%xdFVj?48^%vjvM`^gN>gvm?3Zl{!_Sx7CgzuT{3+@LFA#7VTTEs92(fF zR!d&o!Fd&Dh@^5R!n3Z`&Pb1oPK_PG)@vuTmzXlz;Wsu6@p4vase0Fx8cKIDz*A&! zVqAJ^Mrwjl+cLbBHZ;wMmz2gQrVP_!E-WoE37A>CAqr`paj#w4tVcXQ4#(oWrQ*(WAL@8ch&&lnSvrpJTmm_$x6rhD-8cB+f+ zPpa(vF2>p_sc)#SKGe6b&M#6QqKnjr`$X#WexZ0Y6B?w~h4}ae>7))a*``!-u+Jd9 zuTO~oz(D`VKG-6T2Vh&O8~+HuFny#?Z@fgr>6J^R5AX>J^w$Rj`Sgy!j((M$=US#9 zFw|-SI>}tK1Xyw-A`y9?pwJMVen4nYRIm;&zwjW;(qQQ9<|?b2W1TfE zc|;UOA@+(}a^JT^T#tu%IrQrOc{S<$8D#jyl?++*@mp%m^%*wSm%Eg);KOL zH3jGT%CLcIx|9D^ShedSXi9YY_^5a_D#fVAqL`N<^a-kB zRD1_4Dp_lN5lt^O3ykL9Ra{_vN@)@G(IcV?@Ne2NA}u~P5yCGeI>jba{%TwfX2>J+ zzlw{E5g!*t8HLDDKRqq-W1jq9;?Vk~j7MwWc8@DlTxupBrj{IAT40xd7g+BeVqj{+ z;-SN1a&MWkm>5b73$`$2gPqy_-oK0J5#viM%)iW!MPV?&I;y$o@$YKFVuW>7L$>{Q zA@yX7$LGtC#Sbg~tFr5%MIU0HW?%!y7_PeiE(@g&v|yXKs{FgS9x>Yb>9Jvi;Cig^ zF76|b9&+p@ENUgQi0|>k&LYAR!oq|4g$E575)~9GbWH4X&JybZHS7Q4-r1ejXs87~ZK8PGr?We(#7d?{a8U`7 zL7@XMsXDvY#fm;C#IKjJcW_u#NWZ|yU?cWb(dS#F945S?0{cZo^)~ti8pH8Yzq81A zRB8DZ>D5Av5ko?v1`G)^;#>!00E8%2ag2b1PxUO^2xTo$#P%nuA*^Rq#Q0==M?z4_ zh*ad_Nd&%0Uqt7RbwE&P&wg0OIJ*ZRMm1~3!D0Qv2Sf!1Ax5a9LljT=e~qk1g&0F{ zkF`KVP=E*;9^%KeMd8LHT3NQ9LBU3?a8Dy_5yGma_8Z`55piXBvM$pzuwMdo>xTRK zxDOnJl0=0K2*+-6XZJB!&V@w|iok76++NcQ7n~X$C-+;RWR2m)byz8Wt@s+NUl&x)x`+Ul{A$FIdesa?Pypb^G2ypmi%0WKpbVal`K1zAf6I5q!D&vZ%)rs~fRQW3S*Uv zfS`dKXJJ^x7?}l@pQkf~v3^9$g(5?;&Ik044DA~gh~D7S1|v{bR919UQX-CpsD}IQ z$N?HW!mp<>Dl8!Mxq#kS0z12ZU)+<5#}CWni6Zz986ZaomjY6PYby*KsVdhMj2rKE zN$-@*q@*-cIttBh#wr<$TEH!f#tN62Em_}85ow6NAo6t?cXGf5;WQa2D*Plb$2GgY z+Rs>8i@skKzV{JKZ?mWAc}BF zuPvJ*pwgcOJC}Ij@o7oXI6@^LHNAISdT3^He0pMRAii9a0^0g41lL>YVO4CE>)E-?!O zjqS}&ECfC}F~b$+g4l6{FT_?qx-b))Jza zvawVdugW5F`uFP>Z1f8iJC+O;rC~yNvNR%AHM!t^P*4J+{DVUMpa!sUuIP<}-G*A@un+tMk6>(W4AO@b z6{XqifJtg&voBGNc%&A=VsMU7JDZibYXQH3rTf`dWM=E`qSVNd(i^i;WbgnX8La!f zCK)0_19WXsVHSH8S7gcV&i)I3A^B0cwo{cV##qOcn?g2=`IarfJ|!x#G;tvGmmy4A zAC;x$5N1N508+H8)np^vMGvA#m0;NeIU`cN5td7Kqcp^$by`(HRR;xAp{}TA-%?p*y{W?)IcHrn37J1pjYxrG zy`#{0^x01+7)*2o>rdw1W+XB$R*I@-a1dZWTGC>H8#y9Aj4pC`DqFg-lc{LDV$$eb%NfOG{QKX8_IHVhUiR zq#<2>q*G8!0nPfT&rAr(3m$PC?+nBPUE`U>sK--xZaxO^4myk zw-9_Wwe7>#t!tg#?zIE&yilWa%LzZfaCi5MGtW%_VA6~+_d>$(Xk75Mzwh{QhxK3i z2JdM3@T0e;xBbw5QEJ7-cJbl6sZbMWqU{wp&QU;cB}vZAo8 zpKJYIBi7k}Wus4a&vmSrB0ixBz6d2R=~lPy8!v1f>HGB&kJt%gn~w~e+I?oNr>ZWl zz4BofJaQEArM>6gQ0X$j)OE*+W!}Hc-gfR@-}8H(b?|7{e$$9wKCb&Z4vM#Dx(O$z z&Q{*{Y20da{ERBuBmVgC-0&|aH2gl^D{RfykictbMm|ROba-manrM$EU8-KaGkU$} zz@WX}-5g_HzgS_>c+Z!PZ`t-G9$Vqt3E=Bd_oZuppGc3XGpBH4T)1%S8`=-hFFXpdZS1kvh z78QKi&JTK2S~T3QU;7iAzw>`CXG-CjPCvFCTjX>-yYXVDX?P_0x!_y#MCF@b6(+~_ z@w>KofoZA7nE2cAN#}nZcC*X=;F;f7Mf+Aq@9=b}Q}|`wKQ|Q|duL*N)TDQZS5G`~ zc~b4yxAecB+@t^1YKfQecvbLC>=D0w;g;*BnXUVNNlJ z{NVY{FAV#L+%Wgsf@PCGe0j>^ zy{}fUwDpyTm9Do;Ui8J?sv{T7--E~Og0Jo~9lx5e;hO)>KO8=}=Cbt1PW1znxWL^f zf9*9ex!nN&+t{Wh_zwU0ar=}FBi2>&2v8d<-6L?cf??V z#PoFN^vaFfjV3(v{osPyFHG^deD0FTSpVZ!7A~6;`ud_;4T8sDyN}@Oy}0q6S9}8w zwVHaR>8tmf-r4xh&a)o*e>JK5QU0gh*1NxhZ*vH~VbRC8WrY5o)7;ysw{rRT(>}b z4`yT1nJW0+`O5i|sTEhg;pXS{^?N^gzv3C%>r{hgUp77YM3s6Srgn?L2R;Q~YVe5Z z6@EQb`H3*6AFmc1bgpvY!rd+Xs!zN4lGouWQ=XcNr<=}9_wcA4Yhr7)>ArE(vTJ?6 zJ8|&VuuWZC+*n+H?${9z&OG144_gWaUtzf4=ObgLJ=lL@!{L#$3ey0yM z{xR|SDT9Y>!}cM;mv_I`xTD_NPIaAe@vmAxy&IQsEPr@L__f)UMz87ce26dh0@zn# zx+?Ww))XD>)S0d#6*=LGxO?kL@6WZ`8+GS9V^FdFi|F*KBCw9r9+Y8%4`j z#^29=r_#`Ab$#*q3gv;|>lxhJ=sz&OR@^INFP^$N_Oms+m56;4p4ypys{Yg^eKN4e zt`8qIJFLt9OQ}7sZ|AcQwgyL^9X2>{=dIj$cZ9chA`cw0kVoN5*u&2Y>qT{i@dv!Ze|EkZN zr=m~1Up->TdpqrxKam~vk^L`!RWHC!Rlygy`{@sBT=M?dCEs|XPp@{<-*mq9b)OwW zn@mX?>s(?li%t95H>Az0#{?LDBwaMiq`q{C0iXh!#^^f4jTkt1Hu%IG|p>7JLip z)U4RE(--ZZ?7OvM))%d^Cq{g6e3&UOyyvTfYPQ*VG)PgNt-^F;4?VlC(RKSh{p}X7 z{A+vQd#7{09Pz8yIQzmb!*-3Da31PYmf)M6^<>lyJKsa!^r>_r<3gj<-#!}E;-iXP zp4*(-z_pjpokjSJh2UGbt?9wL{&U}`UGwVAeVc#r+uGrdqvwF@Yf^UKf1+s2)s;Bg z0d?)^5Ey;2N0XmDJNeu{wd&N>l|S8TJ~FuZo4+>Q{>j?Urta7Vnel?)OaIm_cepwefdQ7N;RLY+3R$~2d#R2 z{6~e5SUa=x=hv6NRi_2csl=S=>EQNyLTkr66K5@Gu(M@mr*o?s)jv0DV2v-Q#=Kl; zoW5|w1DwPq_-5_%xVq^1qM5_`RS6x@q|NlVrj1Cuy?ok?rLD3T-F7&Je!5oh{e0X0 zkH)JDKKO34^SqG4u6;ZId_26U?%Ecw4*#y=vj=}YqbPq0zD9FG=Tz!wT3U7WiA#PT zd>vPF=Ac!*y!QQYD(RGWeXsKkv4stF?ddRnbp3|r1#>FqPW`CnfEL-aF8R$l>F(mb z{Pq27Kb_HR*w5I~D)`2{bn=}{`yI13+tpZmw$Hs2ty-*Z`sy!NyiWc2)vz_KYhd2` zM)1}6JlyfAL349=zrL61z{6{TUe>=VF{SmQ|rgn|KTJ-B7^n1bgNB-QYwYxuPRb%ochZQ$tj{Y*> z^C`c~YTJI{#*{;om#lz1I4Jm5y6ovWa?ASfIvPfs&rj>IeD}Gohvt4hsN<3@BZpkC z`ExbQ`yNd9Q0VMCsTC&wxXaPBJ8S5*&KD+K?9;67XD1d6$*A|oiGp6(ek1tSUQl8J zJlEw{?KtP4lJ`aZ?0t>8u08hrrjrZqynO$Y@hfmHvEch^-Nl&XkKGd%EjV-Uo9Bn! zy|L@J+4;-9Ex4SWwXFAv_*Hl|iL^Z(qOROczkBi3aSwiN*6C^gH|qvG^?t&tS7UGZ z$MzXR~b~jGQs*{ph)iw3d_N(vY=N?}czI*)Kdy&g}jX7O+b=S4nmL~Xm z{kfoNRriZ)-fgq#)%R;n3EBAaxk(3OPJ|a8-LRy|2#zUBKYcWbK1DNQq25D%|8F-Uc0XSsx5at|Cviv zt;J)SwR#x#A@<_EA^3jSdVBTOwOgL(cYR1Fznia(AD)!8?d;&9VDGDk&#kDl9OLMM z;42sxoz=8&|5XV~XD%8)v(`%qK9L#uU8lV?pnv+t`3H|QQIsatnZG3|yC-ko((2Nc z(Ooa4PHgz=yb)7sdqv+JlQv=hPxF#04uw1reBJ{pZyC0J{NXiUEUYlk`+V=p(?1N_ zzRyf|@fldX09UOQeew*K{)y_-(ezcX*o8(|;B zVjmIq5_vi_cz9}l zd~P1vWJkmH$M-$a^d+}tlTWN|I3)XvZST47I97;pbVTq?8nZpW|7QnV9(!ZorB^R4 z+Ii36(q_*uaxc$#apKC#*H>eF)TqgH`##ZSU&kvOW`FjB@19MSZa!H3#mUb*3=T zg72A(;5rQ(T&lTxz=V{3aT8|DHitBSaPwN{X-8Vu^slq@Iu;+bnC{cl@;x#yP5aX4 zt;jb=pa1Ln$A9JqUJPs)-(lSgo$D9;dP7lS1m9iL_&Jqo&q@hBv-PX3l~07ecPg`2 zwe}T_Z!Y`sR_(Z7AL6KJ!S~YK&OW}^UiTTY_RX&juFE*m{_c`#%OV@xn$-Kun?Fv=Mn_pixcegcYk_5rb*p}pPtKJd_DEGKj%4Tz3NqK^uaCF zoPOzsE%UXRZcdGgBgWocl~pkB*H0I(-&c3{l0&suof^F@@7&Ro!><-%7hIO$^L%ss z{heDXjWJaoviZ9fNz;FtSb5p;X4jVPs+WANR+B@87*qQMYkssT;F}vykBw~>cYpm`P6O7wg*odt!54q@c;bV$?P{*Q z>a_6a2hXKC%((tR4VU>#ri_`>Y+=`pi=dA`!~FI9Xkfcr*G>16JGCC2zPxAU?e-gY zyKd;K)VzPBQdn!ghA~y}9jg4~OOtO;n{umV*aOp?euFZ?TGU@Y?%B|Fop&~z@z-VO zr$+_f?ll!p^lRyB->q%%M*&})o%u)d<<*nBREc^wF~qaMm|Ezk&p;M=I)oNHwfSVI z@vDQUhW@;zx6ih|ZSODcG=JiVZzC)Hb!x|*bm(D%@8Obbul&4yefE`Gi=Ww0`Sso2 zS$3Bvbuq8);k7Vy>HON!_&|@~d)4&QfZXBp-kK4bn0eo8OHjw2{e9zaOlmmde8iVm zj61GCANORs!8>X<8S(Lmh|SwJ72f%6a>Pr|`9(fiedyFl6@%Z--<=M5kRbSKZ#_Pt z-YW;Xj&HZM^`_{a_o{Sja=Ocj*RD4iQlU=Ff!Tu~p9S9=r|Z?M9h!Ed-evDsejj`H zoiAqBwLiM7%FJ#VU#@t#XA8<(0e#=o;irJjO9wC5ePoStw%+oF3DZJ;>fCQ(_JOSl zZ3}!iui)!jNrJCttsULl7+zRV^+E48gC2Z-A$a4y!K?ef7*nOk51ZDf{Luy9L==2> zN8U{N%(ZUv@pk4FDT?@rAG5KDIgg#ly8*Z=I?riv{1|xZkrH#`pOyuS@#V=bn4c`OvDW;SIv- z$4xtOaOyBeuZ!5yD)>^W7v1v{#tvWVxpG&~p)c=dR2ld~m8B7Hd)4;c0C~Sh@ICX+s*6oi|5*6m zc*khh!)}c~e`iyAr^SPozGJBR#M8B|Lf2@DG2-dq=@PX6x09m}zteKr-(99oJXCda zhx0cNH>tCHPMuC$*ZkZPXM_vB>%qxOXZ&Ki7aZ-@wavk_0o$u?es}HMYfWP=zu*_u zX)XHbdBHc)RP}sVt8G_0xxVr3XSXY?TID``$^0Gnx0)*W-pW0D;27pD=-QqRcRRoT zTbsValw*cb7pmKz`*h!r@qZiKK3~7pXY_(o@7;i1B}4H2_|xP@RX@7aeCzTT1boqu?D?f0M8A7R8ixKHpk`}z4{4aesXtF@xRw99>~dc2Y`eax4aj<#O; zD$Np7o_5MwBVMc7k{GEC}LF zcKZ`DE4MNJVB>OFdMdVlCVTe8F5(Q&#^XA+Z!&aHVoF@<*bL9U*q1l7wfE4Vl-Q)q zxOg~Qdbe!T21h)$^d6d-Jk*qs9v>Z-hP|TEX^9!}rj`k1iZLT0Iz2vaC?1sJfkJ9} z8DnGquqSZ>wh1D4Wsgj3IWLEpV$)4SV^eV?ak?pLY%Cwol#;ih#T&i{CT3(tCwWGg zGUF0chqm!<(`G0SK*;2$MTQOx7&-vepD{Ef0?yWLTl#q8e+Tb&Llf0D8;7UWaq%O{ zqha`@I|&=xO3Ckk={RaLk2WQ<@EN7VR(_?AEr-%)vc+UPrR4R$lpI}>59Kn_@Kn4U zdQvinN=8;}8FQt!2TpZBzDAcZG89oeO9LB*%cqoyspTSGkhM{%G38S4h-6G=eERq{ zWvnf=>ajBa^OGquC(-2?6=5>Psu7JW92uh#^J3H9L3I0NS1L1kquJTYDCM% z#f;>eF8|YFLk2{rk1QpL|I$julN_XS`NWl+m;yndNB5sT8^KqRv{#T~)6&Y?o;Xf4 zHGO>9$Cz468Q7YQSqE+~$v#@iEy{C-z$9^L^V7W{|TDOkNiYnJE zCMGABwVbMw!_UZ+O^X-m5@LfyE|-{8RXI62DJiuyRj2%>wXE3mOuUhl93PbuKNc@R z;)@_kIkL)}Dqr8_f*XZ-AB2j+AlH*7{V=X!@4YC7om|~e%_MBn`n#4AHWF7yP zSwd~Ew2TC*!ev%VIHvTao)jZxFEGAJm=v8=9&* zT^YNIHm91>%VP~?IVPksTgL2Z)`P^<@`y;2Ci2++sIqokIah1OD6DVFCzoPBaCsJ2 zV=zwO1tC>ODSM`%@MNTxW`ixio?EO4mzUCl zIVdp>r=^#RmWClbHg#L8U-n$5|n9@i+~p z9J)pEbJe8yk(q0!O~a8JgG7k zaUoA5qLUMo#+NZhbok`hab=GLWlM*NzKjtSmyc!*yxjW8GM3*AzyYeB_*14?K+U_V zv9>Lrn#hP79Tzvc^o~=0RWKfhXJug3l3toMr2LYJ9~YZenrcvfDU2H(KVEzop_JM$ zzf^Rs^M9HOH4`XkCHiFfl_MiM>3>=RS%Cj(5>O)WJ&bgi8pr>yOOu6Jb3~aZ6^msb zzU2{}9$RLmQ79TI@usn5-4US)-;|Vc662~UY+XtZ`0v_JCXVtedql;{iZa{GsVT9=2rEM{#t)z5RDOSl1XoI{W zH^}mU)}AfXqa(!Ni!eo}n~KZP+PVxZpD00VQ9hIa7q`h{>m&{<40d1Uj(2VBwK=@mnM4Oz@x?IY>4smf?qerElVwcdsWC901tq7YrkgSbBxI(H#_2az-Iz=%*OaRG zIz|_RJ06c8OCzx!7(x zpKq_2S>^>mW@#ai{@hEB1PejhNGof0fM9hbs^f zUL%=YR?;g>1V3ECnclb#S77;g9j@Re9dNOBc^$5RH+RH!xI%5+<*B-m>0wAgWFhYf z#@=7V{uU#b)M})LODYo*REv!8t&373VEQE^U|vc@z-&oY%N%%uI?8#JGCT5yOdS=s zgBci+YrK)u%^5Dm z!tLCUdwG%fvOjmk2*jx7V1CHgFj3|BBQ6m!#`333mtxQf2YN`s>7;n-F6`eILf1+0 zfh!L`51clN?>Y#VFaA;_JBd%};yq)yLh*M2ejef=2kARR=Zk?$rk14BOuB0VT(9Hj zp_p~rOx-n4cfF~**6FUzx@(v2Itmxw;6ScU>a;U(&BxC}`9Y`s1Q%=ANsI%T=WDo^ ze1GbEx8cHDzTmsB(|G8Y9kO|C`6r<0XmJZp3D42>9i!cWLv(Z(_YqHb9C1t-L*=0ZPi_0 z=&qBx>w@mOqPzaoUDY6kWQq8V4o=ceN?o1irPDaBZ{p{LpLR8eFWX4FY-g9oh^?d2 zOP@o?$1s$%je%y}N1a_b$%;9|R4ilHQUPL8siIWSLPy77CPF80ale5HfycK* zXQ3~-io=v-s0>c{BT{jOkE=L#Pg2u_9su%_AhXNMYXr_(kBg2vz`YJrKjQ7XYd!81@do{Ge6R&vxB+Ac=hb(cL`UCE9Y8cX4 zPn@Ni!_B_I%M(?`y2INsX7Fc1j08E;`xN|=WO zF$tMR0lNb;fIWaO0sVk8fd0VOfC0dzK*V8w8)yV>1oi}e4D1Cw0PGF?0@xRL0SI|x zz6A^ex+3r4!1}-eKpyEb5Eud+42%U11!e$;0Ve`ufbRg~fbRoG0(Srtfc#=bBJdC} z3HTi_1$Z7f2FQ9&2mTF2lbRh+kK=$bP$dVi;7MI#w6UPEgYmRfmU0d_V_qLOI;5a+UgYVVi3V52RGA!kA-J=1 zQ!?#~qDDvJ-guhj33hYM4cVI)xi>d5KhKz-)6qBGH7_JTd%RcmCRPLhCypXGT?s@jP#;w_t zwpLJ-y_uB`8-?WIs^K`po8O)A56k1xbhW3;?~N)ePeRD38nZtTofs`iyg-4 z1HU@JJYC$|Vf7alJ)TdHBJlYEoJz>0ojiV4%uCFMcDZQ|#TWAumb30F(14W77ITzW zaA=#>wuH8}gf_N>cD4j>u^4hjdED9;>D3rx-Ejkf^f)2(K(EEHbN zwFkJ*ft%+driGeR=31bh29@WkrKzQsUObVpcq(LXWNqSdMUVmnsSkIG71KCSnj=MA z?qJ#rCQme5T1+5510;%&4^j$~Qj_OATKvPZO%V$>3Ons$TX9Nk00PA!ulMa0Gu!V2 zU?<>4Af_{A6EFz4706<51HJ&<4om><0CLLP38Xr^8%UMx6X0^-9^i+-eZalI{lL$G zp91rNhk>kxqd+Q@UjkX+W5C|P6Tm*e)4=C}Ujw6o-vBd#XMtmZ=YVG555PR&dEjfn zeBf%}PeAtDi@+_w0wAZppMmW2zX0z5F9SK%6#}0E(w}|02`4h!F68Hep6ir&kO0Jc?$=p1I|2bE>6 z1Uv#{wmt_kk60my4#8%Zx(;1Z*P+WGv>8d;i+f3v=BWgX*~znww_%2Ih4IN*uC%el z&6#vhnOH9YlgQ*eqg&W01q{tXZj;9$^0v-~MK5O+SFx;JjL1ExdWsptLsarj+*vkA zKiso+SQWf%7Z^K1^RZcAFpLv^9Q~7v8ze%!G!hV-5D;zhdyK(~jY1m~ljRYLut5dJ zM?s~P$|6*7e9A~uf@n`6;d+BpyO{Tm zXf@`)t4geEkV^lvz`CF{22uhx1@;8C2C}SefXv`B{A9z@B^#D5IWi@UQ=+7yVf%|_ z%`>{9S)HXpM{CkLvPmP|!qKEQ3`MRSR9Q}F<3slFRht&Gl7bU6(6kiGR0c|K+Wzq2 z7_@9!-t%`Izg76PwP{){4AvRSOQkg}zA`V{ma&w)%C~KWaZxnkaEqjvM>Zk;bG;)j z2x2pHi8M-cJr;c~@h(W38ct})UW4^XJ z<}=ZtX%GaV@nb0q)KN`|z|31n1ZrC~KvG4(fYbowNqHJnS`k#Lbu2V7(6+4#k>ZZF z4)JIg%gv6)0mlaC^$ zT89-q72-xb3c52&{*A45x5I5=%To9>}iX-wSeqN-iS1ORTZYh=6xyVbYv=6^dHXV>*$ioVoXxjm0 zzxa1uurivRiL0GQXwJ-t+DGt}ETJwi39a|3-A=PfF*IhKnri=11NKW#9LZ-Zj6n7! zA+;8QS-V&Ub|%I>OCvUroyiW!&SVdy2H^;N7U%?Q4y*`l2XqF);-naW-GEO31A%V9 zKESHLFrWwUd0;i*FklVf2w-g>>#z=x#b*9w=b=k>9=Z&QBN|fDoK+XpNlavxLJktm zwTsa$OY0bqZT2RJmQBoLc~S20UTgNXaN9P!7KT+}wr%!-IG2N)%qbfF?Tn;0`#)+M z4UiZF4_niw-9_X6f&BEwPrH~;Tb*Jbs+eWl4}_ks8~}1+It26teg z1h#GW1^oPNhO8FG7k=4VKt-K1tlBOmP7bm1YD5lACa4YIQs$0-(Y}KbgLbhjY+sK3 zV3qhC+KqMc1F#10Jn$Ld1z;QCPr$aopMe~zmw~>(LLl3ly18s`x@3FPWl(6&l{7ci zCEB}GqvDE38x<+0Gb@i8bQzHr5PIEwPJm@&>pNGv${v`$3o|H-T=FCcpzV( z8xM0~1DuqvSX(RCSw*t0a5t*&BN537lpJ=%eAp2u=7y|>tuW8OHik%n)WuA`B_!+B9C{8T%DoW7Y`fH(3d0ljF_5X;?2*C zJkzCrjSN3w@Lf@5yN6$w$a9(AIg<`BU0Q(;!nY3++D6na2cQq8G{jSEq+#r`C*mW){{`K37nf@(z)*afhw7bPnly|C;j{YpJVH1O5bi>DJP&@R8QdfpE>k&qG*b zR4b_N`n_@cq;GfhQt9F;^)l=k-9_m@;0541X>NKDvzdfn*TZHKu`Fi}w98F% z=%!VEaIX~8Y6lxTsgJh}p-o2{f=>x+Y)N*wx?wB=e`c&meYv^WxOqtQONQ*7R4r;%MPagw;v=wY7F#o3dbL`UuLb>u5e$oz2m$XCEWl+}R z@1KJ9zUne42jDs?Xq=DeGALi;FLgQ><*e#5D8Il(>%5C{MRgezK7eM;yC`>67d{|` znqW*WLXV-#ps+S&Ubyi>=7pAXNvo&23`$R()<>sddzi|%OsDPFX)uea@v%l^eEB*} zlc>l9FK7NCPepYvpjgQ|aW7z|i>@dY)tBpHY!1YRq6CJ?gLO{YWL4uG%`0vYB%07~ z3fD&boWw4nHE@-#NE_k9Txdeq*7(8!Z!6vz#tFY3_|1HzcvtrdKE~>*SXf>EQTkGj zF_ZlITiOU2IZw;P_m-sfMT%wBL)$<|g9^X;hONYY;hzT3n3|mmYJWk*8>_hw9K4NN|mX6j3l%~ny)QY=Hoe&j@#(q z?^;FqZs8I&ti4UpGg9rep&tF%5#fc-e>Bg-PJ61cP7G97MUR7j9m?ezE;Z8%g&&C$ zoMWmvlg=Qs9N*NG&k0TW9JV4rQ_kr+Q!$M{Y&<|dUGs+L8R*E_KY?hb;Y%mrtKQf_ zc%Z1ZPRrSEZ=*{e5qpU1iUf|%cASZ<9YNL(fXy}RVWfwuIHzMw2+k+Cu~9s>=?~w+ zH?Wuz#c~l;StMP0>l(Hz90j1uk8~_J@zutK;C3IxlUD(sf98QOS|IF*of>-`;RZ+6y`@N2e{)U3>~l z+pC9SM7Ne9AOh4_Zt5;}7N!%3pLR8ZXkpGY5o@VoA4EuM*p~jb8g>?Vy4z^jjME3< zo&@sKV)A;#c5Qq&lY6z9hIVOrQFI-97J5Y~IyOd|Qb9`q`x)@nHXDMi((U78!vQT^ zd$v|~DbEk+>EfSKp1SitDBww`KvmvX0XG$JegZHtF)r;9O0%VY8iuB)xf&OXLH(3p z+e;Ih;4=h`YOrd^6FM(dW9r;u>$)Evjw za9eGeKT@2o(9|t8W^Ok;Dzh!-Ox}-{@hPlC-sjrfQ@7*AIks54hBmBU?01|hJA$Ic zj!kt!yY>Q7yKVraYS0iE1cc@(Ou)^6RQCCxi%JZPFJdASMp68>21o zL)^Cq?ge%LQs3(c%m;P_LMkeLKyJVD2UY=Uu0LKBLjwo1x zo8JMx2;2pn2&7z@1f({OILvo|W}qwDj{cMzQ+SX1TZ5m}&gqicIb8;^eUNh3MW~W= z85GLX6N1LJpv$0qi@(PO?R(WFZNyX_U6iZ%OP4{pgTKcF?Y`hEBt(O!ykuaw=cA>M|&==(N{#+M7C!^(D*pzE0b$(>~E@`*j+vCo(VR zbebl$k!@Z=izkoJ;!9QN4m?(&tH50|P;W-n#=8t5TQw7)D~)+u9mE#HQMG3qw_-xi zm!8x1j;&C50ZC@Vx&~pMStBp!Z$V!Fu3aMcj)i(skTb5UZw9s!3ZrV#GB?$@*bptJ41LD=( z51^6w?9F?`4#g{orF4yeYx+F=DFHFla4uy5d`KAW$kE*o4A<9^0UR|;Ly8uF2#p*|G449al0RtOrcO>`L) z>id$mPN!)j0Svr^+*<*MkbBuz9bK?ariahLTy77;HW7=bJq3tHEG&%9@}WuYH0PUG zaqQ+_C6h15?E{N=N;sc1b*(kcQE>6EVsgn7w}lJ9d6`M&PID99{3|1wDALIjkuM78 zwlpM&zq84b=N_IXLge+X@$f|Mw0n4YBzL|-pZRpV2zRENhX=syjMpx1{j@O3k75qGearO=2 z8i>DC`e5+F-*<)U1pdwzuHW!i3i1Fn!csxwLX8#~CnXiGWrDU?cTr)JAz;i@HVa=( z;CtatyI`tR*k7Gh0_|SVdKL0s$Ipy-Y~NyH81lFPvmyNCr3&<(IG0B=u8ZXsV=v{( zk-Nq331Mz8)*sA+x_nT#c2gQtRH#%vUP@yQ1W#l$P1@WkX4xtDH9@{Po0KG$AYv~m zI2m_BdU(8i@s^$PM^v8v4ir~3?74LjIyn_DUxF7dg8(1&@4$V_DYD zoui_X+H~$5z@+hNRZMDV0k;LVOun-|X*N_9=*GC=m`cu7!nOj`9anI$) zAGqtN(&)kZ=VZWkY_8JhpsA3GG8b4A_!`g?_&Si2_99?s;9_6^5Q1OqOL-GG9QRn% zi~T1nfLwCD4V(;I3!DL54}2B)0gx*0M&McC7GORQLe)&g7y{Q!g$u&i+!(kA*b2BG z$jRVS;6UI(;4t7};CSE>;1uBJz+B)_AVn`!V)J`ID9*yv|22?XnJ_V#@fd?a?XgjpASOy{pqW z$|UW8PJ5Is^T?xBU-g-_FgjUm1}WZBd#XMoKbilLcb49C0IbD`H z+ABd-miHD7P=gfp)s^L4*^_ovP?hD=D7a9TPcs}g4NzIuBimsW*^b9p(d2XLJK!%} zXAXtWCj2~O<{`g^!I0eOg(o1}5jN*BeibWvzhGYZ5{yH>)tH*VMod0A@I{_txA znx((3M!f<&9c-*#jME3_Cz~w)CZsw^F&;(Gz9)mC{;PXS|qHGwQvEnq6}X@KhQDF9MqY3xQ366xhvyv_iB1Vg;ah1EJw7t%2Nk(FO?3 zUGV{S0=5OR-?jrL0XqOQfE|I;Re$!&&bViv$3z0bJ5F^;EuS=luqJREx+w49FI@&s z7s@w+_NnSJ2#X5DKKMBF=`tu6@RxTk;ssN>3}Rd7DM4eo=rV8(Bwn?5QMgh$DQMYn zF$XTnG}VPPbQ+ z+b5VmfY!-IkT8rBenI4aj37}h=UUX@w!HB8lH-fM)}xy3Z#k+h#}~%{lg343H1$AD zOjr$Tjv@YVQ7G_1rUNBFmUx-Yauk9Cv%WGMKkZ`qI1noVIiPv@p<^;(e;^|^0x3*; z0y_bF0lNc(fWE*!z+S++MlY+pm?II z$*^9kOKc~^Q8?;*3tX{X2D{#kJQEZ%mn&FXs0$??n1fz~EnHG3kS`cGLcD1YYMQ|X ztq}bO)h4DV%U;tPG&UUlc-i)vMWESEKMW&k5cq0|UXvalZ#n%i@=`AJ88#<<9gw!# zoK)i3!X}VML}bRs#>dCS%NfG5gJj}yx3tTbXmRGvw#ECQ#hBkP;1j?IU`=2okUd}^ zunll9up@8?um^A$&>#2$kS$IzC0m>>+2V8=#M|+bmXCW$dz2oy@zHvquzMO;$TsJ? zS~eyQsQJSV=(#mS7Us}8ou31_4W>4CyDUPLDSuNkX z$5O?jD7zk`J35MPe+lfR>yBOFBNyGA$zQ|ILy5&-DYRGXF1DDY!3L+gXgQNK+Q_8q zE#1Z8c@w`t{Iu(9_zuSn{diewmYk6rfi@gJ&A)wP+@M#$ODyfVEbC!2Auvt~!+pSM zwnH25h4ZW_oZW@9$<-A)AE*vT0PUh8Cof+NalQ{e2jjUE4b%4Z?-KUg*0!&Im$2Wq z_OX#6e8h+qwcJElnpu_-w~x%;W6ZMD^-4F(3UPB=D+Ex;zg4}oog+koAH+kyRo9{~pgcLGNNcLCX7b_0X2La|#uZdHDU)DI+fcR+Ku!lz9Hvro@Jv61(6_OiG=E zoxmAMYKs%4Njzq=I|ZhiYjU3hcWX3HT0l~|dgcco0MY9fjF$p5Af%F5GGm4&b;@kV48(mhkUJ<+fY_@d{Mj$laL@T}C4O?gqf5?rbQ#3r zjUyMQ!s0Jo24x@q?iVzexP{9g><*;62-^l-2IV6D?iDoF4P6ErtAz!`MWK$dN6;$R z;f-auT*RqEbQzQo&{hf>=X1IY%3Pf`U#D@b)7M2gpwqMw3owO7cBqJ zO}L!@i>2e4LTWddgdmH>TWk5SESEM1p0)~hx^RgIhKW|pfmVx$<5sN4i!!vSfbW-u z;gvF7)*rRp!Ks}nbtHSzk;kte_96jQ)>B6-F3o{|TtEB{_Oi+Pe8eE-HOA^=BsWF? zc4HJvW=qL!4?ju=OMhF*T?;(6lACc-ics22Ek$z6bwNbpgm@vj8NGJ7X%1a-bNfUo zYXjT8l_i$~wxS$6H>|f~wr>4M$^8$zB)NL07{o;p{g}mokh-F$Np?ycA$6Wfsh;KARztOrjW2g>a9W;DfQ@* zQjabv^?nyLNCdKYq@AT9Bd%m>7D<$V@yxTW{vQVf`|nu zT@ZDI&nEml#4C?d)NtyTuCuz!5iT*M1GS55i?+C-A1_Ox^DgcwbS(XCg-%U`?`C6` zV4M^>xA2=)iqN6B={G_(JIXy|OhUWdG>0yDc9kx8Y!$-RB^1Jc7EPreQpcxP6eSL* zmeQVHQ3OQDY?9UX$&|J)3>;MTR!C0qmvuuE1gmA9O21|=g$}m83Ssj*&X? zf$Q*-LWC|UMCdXIg^B&oMZ82nmw|f%6h3No5f9$zG6;p~J3-@L{tQBNun)S3BiQIN z2!)9Q%|#r+MwdY-Oy3IH6R0D)uvHc=nU`?YWuVAaX;e35{G5LcCqV z-1so&24YcW<5+}IzVzzvhI{zAkypdPKp%e3018a?>}d6^F~&KUBu=A>+rR1D-}T0r?x5GwFts8I3b-wXE>_2}rPpmKBq~ zNSV7l?q%W5E0G>PwU79Ki<_ zN_D-dyWWF~nqTQp$+()Y4PR|&*bcn<@V9+6iDB5eVP;k4{L{cwAFwiwQm)b;mT~BD zG*}EhDy;0YB*l#li%-YF-w6tjUBRAC`BW`3jYspu`Lr33+PA zZ?WoNj|bMn{Rm();7A~a!zdty!)Tx{FbUWTm;ww1rUD~@V}R*E6L36mEO0S!Ja8v) zB9QaNBp`K}$v{Ws%M7dsoC5R%<^W-8P^JQ7fzyHUz!|_K;7lNmaI=7`fUg4A0p|cW z0p|jD0AB~PPs{_d`6&3MFr!NfGrA07IU#8Y;FmN!Xt$?{6ATKUtPr((x;^mw5I_0# zgdM`A`LBKi|HnH2ZYzG;)j%i_{~n!xzZE}MbEWYg(D@Hr@tYsP|C!ED8R(>^KkE_v z$8>(mf?|H|Z300LPdDr56n?UPsKXTVQz-StR`BCS;AY7cvpHr$; zoBHa*5o?yk^jeezxcCh`{NSAH+9k_4mA;V+QXsq&*y(_5M@K zpIQ-H`0K|-v*vsM{c+l>b6Xtx;r-OCE~YPH#qwoIrz4FY>mauzps8K z;P0F5x2O3|?KryMWfwcsoRrBG&;5D+Gmnk;=Nxf=edf6yi4)G;-csfC(Dd&={OIMh zJAXFpKgPTy=kTWBTFW9HxM$4{9@=Zr_VEP+-wX5hj+xN(xP%n}ysx z?ECbkvwQnTPM$U`cHQ>L`?60Cs$;kDR)Ziv^Mo( zjvYvA+x?S)hn2*QgO{&qRk*EppQV}ZiF-Oa?zuE?QSkbKEzTV{`%T9?d*@WF@!_`z zo^5;o#U_LI9vpf5*DL;K^6uU~*m3pq^PA6gH3wgRt8#SpKhl2*{%h=ks}uZpKIOk) z{ReItH!qF5K7Z01M=ItXtCe=|O4`1wFW-N|cfgbFO;gvliX6G~c=J;+BlCB!+;*eo z*$CtKu;zU##bniJ{>$a>o@(Fme)^g1$1h%;YwvXb!#?pQ(v21spt1I z-kl!u(cp>qH74KK)a105iE%f_RF5Q z%eZu$Af6S^SlHVg>>%uIE_?D+pYr@Z4pYPwD)doOKI(EOKC&p)hd+Fa9c{-G+RnLvn{3l zJZnn3*6miD9@sWPvuq0}Q{Y*Szr3nU>4PY3^HUW*XbX${ zxR;3MNx_rKNN`npK5J^pcsOS|*e$h)=gAWBu!bG%nlKVvnST$zQZk;W;NxKDZ4pnk z67jItIM}gyS(@{sp4?k9o*IIO##XJKtCxtUrr(|EuO)a)=n+rD z#jB=_$D)tX$GVTHJQjVdw%{@HFMfrF_nVhYtB&9qZjtBOCGt!y*uk!mn&;^FuLDZP zQ&;e8M4sv5^-PI8dxC16XO+hy&-DZk^-7NFTYLKWmrSd^;Nhc0_7Yz8N~HBHsMcwz zJQitr2_C++!cnw-;CC;SOsj$5xeXqUSYBQw>Zc*74t6V%XG#aR?-C(MaAVb`jRcPy z>QEc=4NK%%NPjE2q4HSdnLSyKcSNPUe=v7&$+VgZ9HlnlJRsEJW0s27Ec%9ib{@8j>U1? z^72FvBn2OMwWMU2(qog;EGTqRTFHx{c(MP2 zr8Lng@2QmbI^~E;X{J+tP$`{s3Z4~+tBX#-t1IGi(kcEbMbRm+-l&&Wt`}8`3wWgS zZI$AvQ@&9t&N{`F!%19PJdLa|`&N6v~T5RuqnWYYOGg zVk;g>5I0cj0YyAGLcoS1(&B^FVjjv0yVpqK-Pix8xZp|RCjG3uhQ<#>o6%R{l zO<{OHOCCH3S9m0Vcz!0!&Qe%Y7*As>9@dXFh0?r^PFhO)0#Z*;>Q$ZJ+lt2Da_$XD;~D8HHCF}O6P$?>4Y9W z9Oxu|{FoNg`U!uYC)3T;8t-o}hmRP@=Vv<0U-#>P+(}vc#-!2Z5 z`dAcru*5IsQCg1U+T3d#N!{^tu%kYVN>@HEaNIAo3*0CHYGi`PDimkQ;!t1SIF%)J zNQN4%h7vqhp?s}E&8yqJqtq@KYK|I8@K}ZNvkG-Ns@fY;PhhCcYAC^D70TZ#)bf7& z>&sODL!DMb2_CCZ0al?*={K%RJ)EKbRznFMt5AVfp&EYn^BSq0GE{waf)_kip^R3c zp36PvB6Sjm3Q$7{9;;A2twOO57sv*;ys6{(>Fk5#Ck$AoId0f9^K2v@R7;f=kf*A3uZAN(BbhSOrH2yIo<)}d8fPRtTQO3c>sBmM%fPUe|s9upl zfl3tKoZyi$#`N^mbYE{J3g25VzHcl112WUo<5Nsw>8Y{t85v|6n3!(Lj7|c@1S6U+ zM3+YDiFd4gTes2g`)9_dj~4{`1SiI%glnf^-K3Mjn2}sNl9Nr1i#` z;;gYBY4Pagw%skjPAcmyR>A^j{rYm6rF3-gQA21>+`kf@;0p8b4%2S2ApW!>u| zaCEkDTzqV%2^}5-Kt}189#4;6czYbB>7jpaPDXEJ3PB-$y^K+T{UV}z8~p-};l93o z*&#}=LUDv4yGQRZzrlUcwZf3g!Q@ASs?|{9Q<&rj7ZU3o6dEzWFEqdy73J%TP`*)7 z8OU;aqG^0oY(jkO=&0D#)X|CYtlp^jak24frl?B=8@QoTDs6Nw;VM8py`_85)E7Q3+< z#fBO+mL!_QMC>AHG{J}w_4~h>-MiyBNc*EN3}VScXq4NO}TU zhN+Bf8sjJ}re!#^3F%90`COv#iV|9ePfskFu$Ey!mdgsLj_dzxoqpoyuwDCg?Duve z>e?l^ldGH1PkL+2{}Thmg~h=?v;F_X;OPcQK_y56#zaf#(6L81x!%>WTi33gdvxsD z)mhIGWJhP`Zr#Ayt#hX?9huiynYYO(p?%}cp%;E;F9Bm?n*PoWInYGRo0fz0FPW`0 z#s*5xCx!@uANcBwK|eJwt~Lo^?P0atnDJp{f?k%w~{kIw^qiWKmE z#JS3gZ!WwKf@jcF&SwTNmcP#tp9(y+(>Pyw^+ziM!@)C8ARmG~)XZJXfdd_>8qjQ+U_N;5^cQWARxczSiLDG^679Xq_Qk69OCe(nq%Bw#G_|}3ae;(&6uYFx1n0E8A140TN zR~_7}{`B_R$lVsV%|h&M;ie1G8Y3zf2l$43%6ZC@t3Y@!2G2v0 zue@?3Aimm*u`9BK$5);n8UeoR;OV-I^Oe^xgW%x>o|P*&Urm59xf%fXCM)qU8*aKx zaT_Zy?ck?_=a{5^r^ zwKaI(+ZPqb*AU)+gU5a?=R@>H%S-V!22ZVZoUgq6xuZc{!82_m=XcRb^9e9)$H(llBuLORpz_WZOV=K2GT}A}w!Lw>N=c^4c*1k??_`t7m zig6$3D{owA4DY+(G2PGk%4=V1q+1U>?;YTL<<%d>7YrV?$X8K(AA@JX!GDhLBzSI% zeC5UGg#0}R&%1~JIX)loM2mbC#Wxi^Uwl(>d}c`Z2k`uKg!56qG}azHkkF{3DDN>H zpD}q+!n^Kq*r~YbBE4ZOK3k-F0X)B*U~J{ei#5D$PvTTEZn_Z6Xnfzpy*YUP7Wt~< zx3T<)i0>qLUQoetl~>*|@N4q}>{Hxyq4-Agr$Kz%!Q*t5 zvFYN|TPv5s4;6VhC;m5-ms)KlcUl`C3BDwem&)O4>+0HGcfgI<*vkGagZMB%I;y`8 zOMKK$hF2=_@o_as@*4}{lQQvPex$elNxW1Ke;Duy)tpPMff66R4*oAgJ{jszE~hA- z;=YgDS1_>yy!A0xwJL0MeCUKyM_ut-=q2>FGm+BAVm?~Z!AE}YI z3}_|yOVC8cMty+y)X4ke;3B?{q{8!{PIgLVQkXJCqfteLVo6DjSU+ZgyRSrLVAX%m2Mv1N_BEbf-*b;ufgFA8dXPL-i7uMDZ#>SzAbgf zL4NK^Klee3{y|D#MUXPUEl8p4@8=s7;ODJW_`11!D}+uWbF~VYecXmC-Q9dWhIx4e zd16nKCty}#7>~gI{>mV?f!I#u>=qTW4|VhQ@=y-&b{iNdv_^IzGUjP==f_=S$ly3d|D*^+RZrn&dYdcdCcXp|jSQt`kB4Ps~#zn=) zc@wvLd?MaHSs`C=0;G@g*(0eBkyLdd&}*bZ={G<*$j2XD+``Tru4bv>8dZR}#}J?x z=tZUS8tCg56da(yaWILCq|cCRqym}X4B4ilXHbBfkH4R{m#-pF>8}XDmIXx#VYjv` zVV#yrg+lS-sPSriqaNsg)^-|J13W+^e=;N}K0YuuBqj!jNeuk)7G}IdN{Y4#yjgRw zDAdY0|A;uefO%ZdcvVD5xK}t-rf~+go5EtJ@5}HD*-a3`b8pI=gEo42mx^62G=+bC zBmRD9lo0-bNJ(H!DioNGT7hYVik^Wes|o%60+d4)0fE#~K5m2PS10TbTiDT8j?0z5 z#5i@-xVVULIYd)W4qG8yCd(<4TcuZAQhYS@RwRANGG5iIml8WPc(iBSWV|wxvx+&^ zvL?hvDxpQOo21W8Dup7h#>-cVTNM$RtO`jm#%^kaJ%QfX5@9qiW@XsJE67WABi!ZW zWfrn-ZiL-PUfvU{-YoUxN{2LFjRSm#D&r#~aVkm~8lsM(hlhFln9<8dOms{MswjNM zvlo16l3HI(aX?Hw#3XKvTdrB;V1L*c9qYx%Fj(h_?d zb_97?4>8@T|0=Agpb(T^lZ!nE9+jXFW5K(&#e!9weZ1)ndag_~QYHMm%;*&)M2(k8 z@(OJ7uL=@~o}g5ZkBZdb0ahNc-oFZ{O_T?w98;%z^LBw_L)6i%(kQGMdtT|^)SGX- z3Yt$DE44n0W}uh_iss){oJRznuqzwUAZK1QIE6BZm%53;A(=DilNjI3JRx9~;5tY-wq{95m{OA=19ju3#i+=yECiHq(Z!u(- ze-~1ltge543|;)j;$M|r8=A=w$utF)Q6Ixqp?1)8+r(? z3YE7mXXSS}k`gLvjZ_w2#obOX!ZQ7CutCnARMhv%Mie29FRTHYA+luT%2WvQhnei{ z?e5lpu+l%k%P+tyXasiY*&G1}!Y!Gthhe^RC#6Pch~M-AGk?C{?i(a-w+FKCBU;)e zqKt_WvlW=hA=t||2m`349lbwI45{0x#{g`}vZ6GW6U^8w?VOQO=?np;E(3i9Ib7+5 zpGqHvk6*wDOqc?_`m?hI0X}X)WY$u8lM#+*bbyz)Ld+^2{;;$wKv?m}fLoB8(!(nN z6E{S}3QT!csqu;t6xbHbj`-~{%rC%0=^qq;6%b3iiI@cV2M-Ix&zAT}Gr)@Ge|)Az zIWk&zc&6HtnZ%eh4PkD6HB}Iz)MZmtqY3V0uD4A)GJMy*%q5NHU=Zjl9a)L zm`b?y5AqsHa^sJ4Pzs!kV0o%dIiwP>TBZCZg(zd9@O3T9qa5kFj|ft*Jd!=i)re%~ z;+#4+ZtH^A6st1KI}RUPNzkZ}Q)&h(W-_vlpAGQyZxV4a!vG%~pFiM=Hf=%0kFe9?GyRVffKYtQHH*Zni&@Yw7Kaj}CN0%n^xD)J{=3Wf z@71e!Vq6?f(}cGp6SiGqUp(DsX?O5#LKw!O?yGGM>gy0tsvtXR{ydWjbmIixPh5zvu>mZbKDHw*ZA3tBPOrnoN7fhxy#p`RKF}(;6gj z=%Imb0~AVcf9k6w?tLf~T9{D`55jW+mTd0pUuyo$gy{$>#K)~a&iWu5K|ujt?!iHd zK;}gmHIh%#l_VrgRj_w0a7CfZ15+6I6d6;gq!g*mStYQ3OcBs8cRxRGg`2OgPI)B~ zGp#=O5B0+tLrF77s8n(B=m6w95rKzkRRS%{`LiC@1b(C~%T<;X844wMqWcDW2eFjv z;5T&{ltdCuCjP7n{zPn2rRmlcSXZN^0V)B@A=S22*`$l8mxx`@pqsEXrO^U?rVh9p zBQ)=dd~tv^pec52Jh8;&tw7GGMWsMm?M#*A&1;Di4XH+UER%+k*T_KG#-@Qn%$EL0 zLFK06psA1}l4**XC(g=>n8~vT8z!_0f+-r}rksi62xU~NQRYu^BQFAPTWSDD#OCea zU)#EMsQttikXjpwv0_rW5)hg-Hq%DL%p{M!RdOcMg3c7=rumIh9{V_+oj#|d?b?&d zPB-UgpN<%~pnv9s!ex5`9}hvAfsF53ZN>H7&%3)eZfyT&_Pgq7i>9p^_^?aIIf)-w zKc8*&`#ApANV#dKL$!bn8#<xn8nxa zmDz#ro4#}P-q-%k{x4>9`MTQDc#CBwO}9QAGXGhT(@Xw|E4k?&$DQ7XH@L4>M}7R~ z?3D%nNp~AQsUK$PzPiOXhv%DF;0OrbY=?3L3RyAF`}Ey@bN4vcA5PnceURLCod5K` zvl_lrdzr)PH!e8%&-fCy*fkeif;7GNU0UgUFMH4RlEF8Qyk~0PwcC!!dk2~%lbgOXab1XgE0@}Z zFQPZehk6}#?qe3Z;CA(;ljR>>+_mRCwoe{1zJ5(Udi?k0gik*9I=!s5eBrs{f6i>R z<66$*zbemrycCW4wa9s;nfmH>-uex7 z)3IgA_|hz2_p7mVtchQ@OFMsdADKQa|60%Ax+E8vKTT`7%sk^Xj;S!dbv0`}`z}8= zY>?aIWs5Z{>?cMPN5tHCH0GJhG4ENw)JFT(gJ{T28|9yG^5>2_7dB3bP^Nq}wqDew z2PqB5)E(db;03==7pA`c{B~>0pMRT@GvUIwmY-bWN8aV8vrb*z zbl~-rZ=r&R%OV>CpUPXJ>!@on;QpkngnJym z{Al3N*sekD#n?(?e7V0J=oYs*a)ZrP&&$r;7Kbd~JK*81EY~+})4#s=v%{z!=sQp( za?_r3ii%r&(D;|(cO2fI*7?Ep`x=GgfjLW7&huTcv|%&viFm;ayBk(oBJy7Ep9SpNADv}-_+auc+;%&P4D=PNqLuaO>x#9B{j4waH?d-VFjMv95ZJt>C@W{e#H_jzy`F($~Hsxzc;)?Y|n{`YL?QL|uWH!ilbd?& zXt`u}o9_be7Qalq_e;Yu{a${ss;962jm|^zruhuYa>q6q9A z4$i;YpYOAKZ4J{qB^!IT9=5RER=h)v@l808^zdL|=tn>QvTk!LXP?hH6cwyo9q}q{ zV~x=nOIjFkgIDPpbbv$fc+Qu^7 zkoTA1FllhFpI-0w4*4m1_(^r-33Yng4Lcu>$s3-$J3$aWWqd21=ifZ@_2?;G8-M&} z~H zyYug-o4#BFebp6vq;k`xuhL!&aPxl_6?XjKwoQv(xTH^Uba3x}@AlFS?+XuC^@RRo zd<)xIr52>rkIU~`^1$5t{P~Byyml==XZkF_a_{kvS}w+Mu>^$$CkV{+Z1&-Kq z&}3E3H0Azk_x`GP2QOq|d>)72{kr~r=L1%GilRXSyUzH`^7#*g_Kj{eEg{*mcFCJm zyncxB9e)<^0Nk?=Lrh_b_9*DeC11#<#dp1B(GYzwK6M@NSEwZ#$$- z3H3r8$)mPBqEcIv$iEuL08GQ?!r>c94SZ23O@eB>jiN!9XQ z#vGdP!3`K5NsKQ$sgAP9#P!sVgKAt--)s^8`~C^-_FK4&+!^1@dSK@lOYv@L#yt0t=YQ(ZpzvAF&Uoo^S0x>+kW<__1Y0lTISEIpu4F-N6xUIv$1AkQa2{TExJo|Lj7meECL3NCo za#Py{<2#zYm@<2DvxDsudtP7D!twg-q4m#C5B)e_F=NT**Emkf_-5zW7cL!DFl&sT zjc;VDPBXs9h)gJ6l`(TghqR@|rWYWm>lxqO;%a}iTzhBR&pRy_`sDW>-0SYefPyCL z+sz&Ov&DNSA6>&yNXFMb62QCwPSYFQXHa zEk-REQLo>rLy8f>V{rr-wwT=1{M*gF{Og#%`l;RoVME_h``fR*I-~ci$gp5d*B0L` zeRK+P&-nhxn?K#5@9Pfrr`|XH{8{L^dqHQX-J9K|+mh{Zr=~9d9QxoS<6CWYWWcyx zn||&gi%z|f(Qnn^>%C9SKRc|)a+h%5{HjXhvDe(B_7-l; z%e=TU;PB-6CBZ8PPW-;f+TQE&Z4kyc@Xy7qYunvk_f@AIbGJ5}=Cl3d>nSHgF9qbE z+q}Hh)U8jD?mLw31l#;4{-ZKuyT&ew9p|uM`PA)W<+bmGb@Y3F&jXnf~jbzbj`kAjA% zwl6w)x)qKu)}#C_k2^ed@2(E_A4d1SA3vq}qlJ;v9GpU4PE7dV*sX;z7NemL7@u=c ztzBa_P0n5S?UL#Xoo{&7n(?*Q-X+xrw#?qJCbi+OjqsLu#1Q0`f^giG@r}v*dEVL7(XIA1?{+b#X6uh^S5CdOzWIo>Z})7m+jk)!{pd8~ zOPRPgZ^)UG?Jso05dg5AmZW_MlL?oFmoP<-DDmtQXoyRmlK;5VmE z=Qch+_wkeVA8l=l@7yrH#%k|I&70kCur}y}IKS`@W@e}Qw0-^Taj%Ti9UHheTJaQ< zkA{@)yBT@*iT5+kcm5*yv*;UtJw5PerpIlM<`LaDyx+_5&Z8o{c#!eE)J&dN!(n!u z@3r0E?XGpncgvN;fpxoCC_Y>H+jEETM{n?mBjfvMey`51j~8?vvHr8~PHs@2?)Gwd z#>(Jk&r>|FeRg@xOVsn z;r=e=@8U$;`_Gpwd;I+I)fDA$zrOcu{|MsU>`1p;`R!x>1zn-@2Y5XUD zF0@RV>(ns%?yzlq37lmm0|5)^Ha#)-2SDU^t4_fyH#;o5NU&OhK zQLnpnZLq%3e95_OBjZhHKHXN|YSHp(6X&&A(tG<-*yD{Ue*^Xp?fU$w=2dLZj?t=B z18VK9w*9d6=D|XPSEp6|5$M_Dfv$*8f-nCkvF5dh5fBVy{KVl!Oo$6wv{3^;v-fUt+$Z2EfBDtyW zop*L#_Emg$^2+GDyF5GZ8QkU7vYv~kL|zT9@z<4oFI2F@7~h-akLTRoyD9DA^JR@U z*IIDcImzTfic9MHeojk#S1fV}!K3GlZ?5K6Q0CZ$U(EE4N_^$C%d5wLA+8ZcDa|8q z1fGAW*!K|jxSZ1U-sjLN@<3$Z&OJNwU;I8b@S~A#!FB45o}Oai{bk-^74*S)#^+X&_LI#xB^lA0I%cW1Awi;2rQRs>6VbITv@6+#_HgNDwC~Eq^dCrsM zmm9y$Zc^>sN}E}I)aO5cb7U9FTOG15H@($==ZfKr51(Eq{M2++^YIxzw|e<4NjtH7 ze3v_}J3lXi4I9Jw8Z_M3x0CGs#kF61b{h8j>`m|OIm6cu`7qR`->*A1#r@%eW0Q=} zQCzXG9`nrCN zVFCGbX1p_Ja{ed97j~w7nCsAS_jEiy!1!{*pCmPp81!?Ni|XC$BS%`ET2niqnZILr z#_5yO$Cx?Y#v@0JFU}^jn3FBXU!@mDjP~FGuHYY`^kvm+4bZ)!y0t#hwh`x7^%QGn8Wzm+#NNh`Q*GY4L@&|@nCRm`#I_v6VKm2*Ku{7JzHM&n&yMO zL5wwWQ-#G5ug}f8Tj$jqcW%{{l8g(tJ4`-5bKdrtA2w%K-|vAr=rG22H(LGsS35WD z8WGxf@dk%!dv8p9Hf-yO*;}^te4V#k4Vy+-!}#)Ee5UN*z&)(luSW*O`o7m{&ZFg) z=D&MAidnQ}W#Rpr)9{4@#`nM@R~6%~j(zT-*cCS9y2-8O=N_jFdnliq{8z)Z$9Bxe zqdF}pe^*ASi!-kNp7N?i$?c@J4Xhm&wQhP-)>Cn4*QFWO<6O{ge?n(vw!}ZY`x8%M zkg9+jZ)(oe0iWIF+3`MbSLLdokrt8X>4K~9_}4I zwEt+Fa*I)q_6Y>pu}k~T&iL!@+;w!6*k+TkOBEgwSrrXK8(=XwbYUdFZzDKjGe>J; zsqkteu~l8^!>XY4iPT~|9wT{uo03B$X`f4-fGxKwkfd1ZD(a-LO6E#zkA(OH>LPrThPUNyP$eN3z+HI5Bp)WPXiW5dMT zR6FS(g0j!cCNNSDnBxRLmF)B8;vgH(w9D2Kd<*aySE+IB( zXaq*Bk_eXAqff49rOTBL>0{O@Q6+fwOP4!{5GS6*j@?h@ni~D+AN_yrJd?=HB$Me ziNM4zB&jO&u0i&~tDx_*DG3?=l`kiMKb3J)qU!oh3?9VZ%QjTG<@!>|N?QfMYKHiXNS4mNk##D`}D&|o7eS#aamCT;B zdJq*~6%k3=guho?Sy{p5W3{vxh51d@bWo zT-9L}PrJgEmo6;CM#V+arcUMKf>DH(zDmX;>R7~uJVl1YM#W67WQ-8_*sw{Jj|62? zVTrzy5$VcD%Nil$BFZge)r|nuLB+RGRB99u^DbJfU8<%g)Zx+L;nBtgr|PO;GG5=K z#;iqUY&E3nlEM4D6O5S#RhPn~=!nVeHR48Uzv@!aTAlxCDrA|!Kr17YRaXvmNX&m) z0$zasGzl0Hc)2&e1`#&-zb;J@M$O1d4=Q@oKD?MbL={$PqmhkwaS@v2%ASajly6*I z6{&Gi6?QZt0dH^pB;sXam5)d_t*G>xIa!LK*t@F|>wrB~o)DE#&RWmgRF~L{c;8iA zL`+reEQ%4*x~xVWjy7-#a+W(qgeJ)Q0HPA)^t+3^jr@J)0C#fWKh*q35BTB3!lh%Tj)3+jZtA~(o#P)B)tRY)M~e1Vz}l}1;Nj-|^$ zB7&B@-5bs=?frij++F8kCH=?H4ILjK{9vtimB#3d?4AP(;v}pHjRr zDKNu-VV2LEnLe+wg00hTNnWp+*K1*x;`K~LiOn9LR~ctCO>OoBmt=g}PS3N+ z$urCHu}-^*4`08r%E?q%7qkY$D=;|P>`|0t9Mv>r{uF0Uz8Q<3@t)1}u|^bGcgGw@ z4uxm9op4JR&e00wPK`s?92_#G-*i)>oyF}T3_z3VE-B1hIGxAAcYc}hC+GcPfZ{v@ zeNxCRd_p2VO2j{}g4eFpwxw8&T+?dft$<)YKfrAv3>PUYmJYee1bRC%QC94$ zf831(CoRPiuBqypkf7>#@&D9JMM;50uA&6=n=D01d9B$Jp`_LWS*A7P;MPqTSgJLp zFi!B>tZPkvY)IK@T&NOXkijR`%Wpq9+OM`=`-SjNKMA@Tcc#pU7o|rvjz6s=MxwBk z?+HN4M+}f^?t9$4=7{1oN0dz1F8W#tyG2SSXlt%`Y7*5Po)OfqIZNR`tT}o^3cpPB zYA!S)CO-K;t+^1f<{*cx=EB69yMoN{nj?zW98tXHxEs|RccYqP(nZ3IT1r1^0*Omc zDX~k$9XF!x06% z_QT4KBn?VLhz||oQPmYpwOzy=9+Y)l)}m%1-Z)6NIg@bGDE{OvUX*W=Z#=07&B?DB z=3Kr%20FlLCeRs}2_&8@-~b>V{ZFOxW& zu9^P7#-%}ps!@&`jjM}Jzk%K0`Bn`~`8RCfDQGZ?Bn3zf{1LDla4N7rFb${xP6JZ8 z(}9$;d$@T66U7^tD4Fn!=xZh15Gf2%7%n&;**csL4V+%+gb^Ov&P4Ek0A?Zmgc-VT zmQRU`kEP9wy>Q72E^)zQt$5EE?1>T=j461NRV{F&<%6=!^eHL0IKg3pkR5zIK#anA zfMyg-M+;gZ6D+^TWM(-I) zND_4#*K6EXI?egme=08tKAt}o4vFqo)!C;h1#2LlM-^;=lm&ZWZ{RyXPhdUZAYen_ zNZ`A`SfB$i9@q>>d1?W~Gm=6Z;3{BS;96ii;FrMmKq_Vj;2vN{U=FYo@Hnsw@EWi? zkYuI@klLpwkZLjyH}7yn@eW6njL8OfyNTc2jk+0kqsahwbJn`iw*a`C)Cn!i^gnBx zbQ)&M?|(V){rCMZ`v2*FJ<9aI=IDRW0VV?VzuH+o*G+vMl<+vG><_#Pq|xUA zFc_E*91na5gvl-Z38Xwd11l+|b1n6Af;CD6P zMW7k*2Viv|wU0TFIv;gJ-uZ~)osTHq`MBFnkx$0v^W2R(ALpaa$K9y&aW^t?Xr}$< z4GbzpiKYhZnl?TqnLd_qEzcrtieyL>>88ujBBlA;Km&a*g=qvodgCF#BzvEoU{D49SF$=$veDK^7OFQjVK zR<`|qQX{Ooi<#9}oEcnEy|+hPR9LAx49D4n@KYGnJB6V#w#NN+h4r48U{LFnl#%OS z*1G=KYL95@@Tly>L6e#%gspLCCj)GK!Cx;$%DbVlcpi06<@pXsZF3PwQC|W!23`iX z0OHHvsZ{14fYer`KzUmc#oLM~nQ%$;wGyb?akmn!8yZM-W8+l)Y(pNq!UJ zWa(tG{{^+gn9VYIPI#s@-K8A1<=p8XAct}(7cM?eRCV;STa;Wqe+^;2`9pOzxE!rg+jRH&AU z*HUCybH2@>w&S*ErXa1+nhVFYzGt-5Wi3T{<6&=VsfSwXnU*3R&PO_)c#t0Tj>6WUbp&ty`AX?X;F6MMP;k;g&A?h-Q8KC{IcCgnu6cB}HMVQ~v}! zP>zy$=2D=z%{_W zz_mcCgmplF;Fm!9XyVsK-$D zSPwyuq2H9M)T1P0jZLAk$TXQ7Ykc}V9E{RM`6el+6ud>pzGz)4e?K72w1xwz=Z^q7 z0Y?ML1Q-J(X&(!81%?1AQ#WyQsUV6=1yOu4kh_r~z}?WY^gTQw`ZNu7HhauueG2eX zquS40FJWARtF>*~3oOS7no$Rs^Dzv_aJDx|`#X=EJq+VGMy~D4#BrRQ>y?S)9Gnwv zSRDDykU)N8{4<`{0&k_f6-0TyG+==nwDk4hHLE0gpEk-XpptE7c9pOne(Mv zVjEC~Em({N)jA(FzIk_u+6Na&5M9)JAYknGQ{V@<`x|WcP#EH&)V7!DJ>l^Ybfzgh zLWz%L@lQWt`HFQLgfVi_-VfQsx^B}Sp~Wun2LjC03q)yC52yvVDWdy5K}e2 zfRBKSfRBO8fWHGz0iOUb0#PnDw?y2jWY|JdQfUXa2uOPTC2$Au6_BbAb(_j+)`a(% zpAZM{F+}kmLzIl!G2HDaesecwFvAGd>NqT{7Na{zx)48$SnSbyy@WbXqAP2=oIL70 zS@tG~BHP=xx?~Dls_mdDCB;dx6xisQy)2brq+6U>Ez8F?E4V1rj?^lth%315>78?I zcg$WGtEDD_;=UvhhN_lEaZ(v{(`7jGLPKB{S$c1f!kFWxhS^p|SnwTzaOH&91Z61M zDD-8k+O|^c2%vYBBPFzHNCAqV@)8o*2kqEKBBjLL*vISeCUh%1GGZLzjzv^y-GqK( zSx4VgafOo$Zd{UHmZLHf$Sl%L(wG4Sjsikp*ka1hK#Jo!@I&BDU^?&?km~U^kkUaoQ4opZf=HB%M3?zm2__I= z?ndSk=WDBVqk$T7)eJ)Z21D-z&j}=Kl4x2(#nWhv`PU#<%)h{y>CVLdQ`xQ!3V zJ>Wy~LpNQ9L-K66^)?uir7$$fpf5Y{OIjI;gq=u-MfGi8DRzlhL}vRM->D;Ep?!V& zcA)spK&EC$$$08TLwTXLq_*oVx*x`HNhy8r8kAFVPavDK|evnAzf&1W9>>CcQku=!xRJm zlA}A0QfV7JRf+&ed7}oW*)~l#=(>T1r2OUq$^9mXN>eL#(hrMGsf=k>0QmQu>B{@Kb>g^oxO3@LvL?QEVyD0f@n#^~vQxs#@q*v1*Cp zRZEmiIEw$=?Sx42vmdC!^rO|$_gLlTYbzIc}n`< zO%ffL+oe2+0y*KFoNOQUhQpOp?OAVQS8~+U~!Sugv5{DVdTmRB|OaI$LEJE~YQ!y=Uw)3QNZdTJd$@U@h zLjEKqRc2lhnHX(Qcj+&XJaf~VR5VHS5OZlNR*f$CoIDttQgt;FE2+AE@}yGpU!We# zByVGrkqXZ;S!j|NQ#uQ2FNiO3s6j5!K)hN?WrDYC^l80JNG)Kl-vSnhGCu_Q5@VHS ztY`t7j0NyC(h5^cw?f+A(F-q0t(6S9G6+^EsrD9kZ79%H5 zN`m#J8dQwmO^oy<6eAa&Vx>uQ_w-`1c+6d|PoZ=e38dPP`c?XiCVIuoxm8W9=(HES zmBh-fuFIuVJab)TOU1(>6sfcF;^o|u(n0@iB*sPChFVo2qvF|?Q@m?ZesxO|tawKy zcfI1F)Egz|=u1+vtWoE~U2JTrcqn#aib2`L7L62}Pp^D|q6q1g&sB_2N(kj^SGIf& z#kgd;y0X|uV{(DqKq}K-kiq+p3lTq&Ucv>%#4bY{MFm$EgCUc`kVd`=+)-x8j1re2 z@L*|7gzD{072Vm>Cp=5+Kcz{-ATt3)cNofS0irsv0o=@i?*T1=zCaxLP8|-k0)7I- zncY+}k!t~I5eib0ip2+^4lo!JgGJ<2C9odwdtiOwZ@_nfG3fV=fJwlnz>;DF&LHu7pSfHj zMpF;FDLr9k+n!R~HPNPgx4>JZ3*54T3$vhdCrz;rM2>&5EaO(@| zFmBzn+XKI(O938F{GdY6mD>VMjYSOPjn=;KrOeX)-CDu{{*-01N@B!P(dfqP@5_B!}oHgu01G%4zX^A97;sSlegFofj`aU9jbWjXnUI z;1RF(j0nNg+o*YdD2~30n&7JuU8RG(e8v8A9s~PN^+#P1?7~9P9j(Z$VppI$+}wba zD(F-{V1M8kAlf!H0XPsi1qhzhkAZ`L%YfizXJdka_wjoeklJ|!up!dLtTVMWklZ^0 z5oap39j{ijQvpJMod>0UTB1$HV1VuTp65bannee&RZLQXgxJjDD ziwQi1v!Da~>4ml!tcP)UZJd8*QRcMX0@d${xr zO_}9WDkt?5lFJy}bYVFwmCAkwNMX(b>jKXMY52v^#SXb#0#bUHfrEipfRlkg0#kt3 zfV9N%3y|vZI*`)2gPX6s5XFZ#qGTi_%-4#YAmeVde9HM~`INgcX|sNSFgP|=yqaSP z6Q-;oSR>#|crEF)%mn#(idMUt$A96lGenFp;uoAD!LdLjJ8|1X#Yqcv-9a5>Zlosm zGs+DApW$}GEnR^is9@4%C}6+B!_z>)Qy8jbYP4Ni*^vYc@4Ji(!Po4|Ta(jI4G~Be zgpF1kNPuWhb37in3X4#yOG$|vm}w0Xm$CIb{U!P4;1Rn!Ey+vk`0ODsELPBAW4g71 z<P$QCB2TD3k*?Q zV2F|lCq-W?;fzShm`dY(q%1j~9HPVBoJ2}I5oeo@=d}{)P?I}6(o?Jj970rB=OUzb zW+QDxio1PY%qrKP<~2*~%G}r#FU#5%=YXKHO6{-P>^Y4m18b2ctCp#F0s{nx99ba! z?WY1HYLoFb{xgM^lgDPm-$;8<)%YG1*1(vz-d^w<1W6oRX5!W?vAb^4mSrZxW>uC? zk^bp1%$ts4bsNtU6tUH6EOBQlEDO4pnM~wU3XS!Oj&foSlIs!lo8+CM40&QzmppeU1q?2rx5r{J( zVPFj2M;}wV-*iQ)B%HXUKE{=?ktdHxxJmWmqK>0e^t!z)^HQCXntUbWX9098gA_o& zOHwZGaYo98Zb%Swq2DY203S1lIln-4M_sZ$exDQFV0p1FiIq{-)jkK-f!`Wn1K<}x zN8oxOm3|`-_6*r4sZ_$vz$w5jz-d6J&{QhOF5n&@3dYVE?*mf44*>rHLanCOM1Bqd z>jJ+4Vwxo!1!9^dz+g!20z3|+6J+S{7X@SnS# z6)71T{kR+Df%CnG*ti>}Z=xHe$ld7V4dIP^Cu2r${ArqvA%>o@ z(I0=XJZSNN0^sSai~J!OQjvT|r~@cI;Pe2s1GjF*p+DdZfREH`K$ht_sHHLk4uvtt z?T&kAnVyrZiqcdx;OM7@2&4-Gj=psEf;**w>z~G!Cg7nP7j+RDvPjO#jx8j`{=_C; zR1U*|Witi}N_Pv8BHae;4%`le)lc6cPIU$D0#f;R18HFS1vi%-qPX-B#UHigZo5T3 z{#+M#yP8=AXeae-0dz+z2}pIutn(y0KrC-T79M*QhaH%-mF9tUnj@4GN5q;SJ)}v;9x02C7!?x2LZt-41Mx~uEb#EnVtyzK z`p@u8q}DtZ&qR_Alumf*86#tnfOJv$NM>pPgG9#&SffNyFp{n#y^@j%htutCL;_!w8ps? zM~#E6ZT7mGxtzAi@F7>MY3?0@^gfJMA7Ks>%UTxv`?TdLE;dRhcC$McvxldQfk*m z`D(Y02P>+S7S#l;3zeWQ*t$>&P}iA^nIj*AmE83^4*jP4DejMOcQ@!bQkXP^y;!E> zs3HRKRiT0SUIa5pC?X>ldWrP(pbw&miHOuNl}N%x4yveeg(04IaGxzxiyBQx*mzcf@HTd#0?B-%6uJ54AJ5+O$;Kcm zIa4KEnX%~#4JrDyNa-8a;u#CRwtN;y`T7<}anX!}*CJ887K!4u$la(Gxf?SOTyqr< z;DXtOEt_4~^4Udtiaq`Gu_r}OzV+#6aQ)nB{HHbTxDErI{|73E#n7`ld1++(enlHfvTb9oQzVr#}oj;U;M*MUVUhcOuGs7d415c&L^@IComyOPkDlw&rGC;Y+CAPlbyzK)Sk7$BgSI>%2ekQ zLGvz~SRI{!bdE|7$l!PnD~MRZiuy*Yzf^6cp$U+0y+eNd*tE5nx%~Gr=CJfpCQO4$ zP$o;Nnv(RRJ)}^mouW*iJLF48hlxd4% zlNo$5SMfc0WGlY+N4!3FhGYj{(=AzKD(=9ojn73>pYKh5irIYgP8%FG3@)6dD0G5O zEHU-TV=sOvmR&@)Oci-E{d?dkl{P*lsW+P(y$RJ_Vj7&s-V-3p;ruh*dSIEJoodNT zPsy`XRV%2MrMM`S#|-ntY6aEv{ZMwEVRaj1R;p&S<+=2fa{?YUN1NXJohke*n(bTSc^^2T5Si|_kWo4oIt1n*yiR9&+QWDU*da^+}Mbtn8d~$SIM(9V$7+f+boF;iHgzxt;Y9Rke`1$CXvZYncxR! z1MuM#y%%24fjTN0AKI8Fe|U&IXezJs5QjKg{G}y_`WUIpe@uvue$z&aBch0Nqt8dO zb&WDB3dDB}d~#G(La0AJYRUF|=nVxFG%S?n0xT#!UBsQl#R!_%(c?{IF|aR(vR6Wp z{mvuPD7Q^#7Ai3PpveNM={h8+Hh_W*p78e;$7qyIj2`qcx!-0~GQHT%WmR@gZ z1+P3FoF=O0MDDNwe9xLzQECbA+tr8o;aO;*9-?AXi$C!5A|zD0NRG&INQMJRGhLTq zDUfVk0oDZm0Hn#=k3a|DH6T^fPrx?7Uw|Ef*MYr&zX4r=dB8!y+dwh{?gB%A`M?Rl z0-y%?82AD332-{_58!OzpTGscBH#+(GawBx#X#!!FM(K|5lVnqh7n!?j{~hOg;cTz zYXWJaTN_AIg*reQNbP||z`DS{fc1fY108^vunLWUq%WEPvC}Tdf%I6`d%#veCm?Ny zH3RknwgC1Awg%FZrEP$;#M2fy8rTjP3TzLI26hBa1a<;u06PO`1G@r00d@l}2lfE2 z2KEGQ0=fWq0eb@v0{a2a0$qU@fo?#0e5*h3I&c8+7H}Z&AUda^P@a3*aOmi7FntP3;N9qphi~z>k0HDbAi`@p8)fK3xK}^7XqIF7XhCGmjKD!UJ9%MTn4lPZUZ&| z?gYw#yMV2LyMgV2Ujv8M}dQYIlw?5rV6POfG2^;z+B)*z%#&f z;CUdKofm*hfW^Rdz&F5yK+M)tF925>|SUZuD3Eo;af2~`*)=jN-o2hl1t#!lfq15aP&*{+wj52!_xA6&BJ^0W?Ml@YC z9HN%A6R=sJ4G;8C7~&x{^^M_hNKXX~z}vc{Srr{P0H3i-Z^4JnxuhV*SJ!n1eVp|o zqr4bS#%#^`WXujod8`ejS~!QBHyKg9$%x{I{khvkkxyKglZ%J_nYC7WKD7azTQW$+ z`P3qE!lsZk6C-`2Kfg-EZ{7T=*c@rWW-K$mD$b`BW<-9hk_O;>w>pvP7+=4aufF z@3M(Q9;PyiJjn#dREDo(z@Vg|1!))OKLyex%`&SR=fiZ0<_zLfpEOMieqyu7y&K#8 zd6G56mCqE?Q;P6wb9^#JM401I0J2g&JzRXOHD%cXIGZ~FHaF!cJNN-J zj>$kTLq9hh(2kV+GUMXJnqyBt^QYj!2hug~M*qy*t!B)mslB^`TzC zhCmmf6R;n!9ncln9oQe(2j~GD2pjJ`j=nG5*4gr!m z767ER(m>$nz+m7;;BX*KkVXKH14jaB=V~cXHFUG!?gZD?sU^dyN6nate$RS`*1@ri0dJC$(-t8`IbsIOE9 zb`c%xVVtEh)ECFw2Ee-b-4IB5ephrq4Vt$VQM|2);^Q!Pqj8wK{d0X+N86aQvwNJP zJQz;^e<@7Qq|1^R#e?=^l;US z!&rScMtxF>O~iVY1F6270x8dqqWc-pyuOLz^-UD7Z|+9*&E5XFzF&iv*EgsBpZfj+ zaVRQ~?;Iob9mu}?EuMahPmWNrJ;i^Jb4O9mnT1(S3^a6++;c1Rt>wNM>Y3`Gxme#V zfYc5xfz%GIM0e89yd8+*?Ld@FxP$-P?SV)!`|}_4%p36XcHq>1(GJJ{p&i(B+m&hu zy%;Ll4sB7-R0r+E`fd-TcIW`4c5oKmzXi?PfhgV%MDcduZqyFk4gDd#(1Cu_yCrc+ z8!ER!O9KJ3!6#;8<((Fd-R)t{;%tX4+0mS|4q!3Bf=$O$U5SqHPoInpo(7EHRx;Vm z;GXNo>YP0I;V&GPDxy6KabE@VIx>FoLdQ&;y%aAVI~$Amd!+=8GaVmuH{(%bwm>Jg z9$*TPsVJO)jR?`)rr3fXV9%l8tS&Ykr8{%78!6cflmfS$Nh5J<)e982WygV{YOxox z@t@nqpMm0h>p@*-zFY9W2GiQdK={45U2~4tm^Eey( zPxV6Mc?10VUUVOf{zA5|H<0GhK0qqt5FiyJ2B%Te>{Uxv#?W8rDo ztq16_f=fNnq!pgYhPr~nQJ4g^xZJ%J=jM{#peB8rO=QGA7uyOB_FH#GeOfwdTa zWav12j4#7c-1?Vcy@tTka5_L?sEjh)Co8De{_(N&{C>p?aeQ^H%!v_7gX)&jal%a( zUhd86b`p@%o-Ec4sd8R7MDe;Iigz>aM%|3Np>EO&i>rxp-1#KNGg>OsSkZZ>nqb4q zHLJSPgD!npMCwj9%zriU<`*M}xfycorP5FFJ&cRm;&(x&qyKTQAeen*-< zXEBy^eEUVyUu5&ds6C`xfc959wv9Pkmb?s+-;FQ#R-durw^k8C&{^^shf2s)lM={w8$)N5t zYL(V)E2y2!?Eokq_9ZB8S2uxn+s}LlfV$17nV_~ZY7HnJ;%iWR4dgJWyUh0(sOyZ% z1;ulE7ZkU;YeJv$Se!s{-}az*4Y`8i^*0a{ud5-T@>zT!%B-`Df+J~l@}r9eG8%a4 zH?3=}Lw)o!nDALIxArbwwASFGbAJoz{!h< zaA}{340TdVd>xv8k>=qhHLW0%*lQ4&UTYPO99r2?-=swXqmN3B0xJmzE;mjS5kd_kjbz~8XSADv~z^Jha$)?I3Q4|@bXs%jlgr$G%3)Z z5S#@Q?djs8+*2o~vheu?X(Nh7cSc@6C>eo2Lke(FQ0jO3(**59TE#qzjFH-ji~%ww z3q|*N82qX2<^yT&umI=;Tm@X`Q+Sjw5shwgytQwgrv@4gh8V2LiVMJ%RgyUcldg zzChZJ4+gdb4gMgYG6jt6c4MgzA1o@3Xrz9Q-I5X9|1oHP6ciPP6HkSrUP?;9|KPTX91}lX9M$r zbAZo*bAk3~uX#X{!udc);3vSgzy&}$D76Sk+uEN32LP7>sUI!_lJR#OH#h2t;zk`& zGI|XH^R=QEATUZMxM|%KS~seF9yU|!M!PQD?S$6tf!2*=i>JZXUTh_MPuyi)h2)vG z@2Rk4&*II2!vtzrA>U#9xd32CIP+Zkww7|Lu8skKRtP~}=V zIu6=!HJ`!|57}VfNdX0M$9ZU!N|P88BYxtMo_mnK-dOQ8l?Gu;ir5STtMsl28mmcH zQHpWwsUSM+NJ)}Qcru;}lD;KbA0AX_QiTa@WR!fgyIjujmM#i!IQ_N70}@m&J0O*< zj`+aDMbNwriQ;WY6n}>TccUK7-I!)`U|-@=+>s1m`VtpgLe^_69EYH{7Bt6cc(fvB z71D#~m_wCqS~7t7GwIurw7o!PFAbyi?4=~6zU=g?E0ss77aN{%*X`|qTkqBi;EnovCBvRrCVA8SVP0Lj0Dst)-n=6 zW*9BPO0OK@OCo=O*AusNQCUeOsJy*J#}aHp({B@q0;wTWAgOmVAQ?gCK&qP>K*~FH zG%hMcaZw>kCbWfsa5pk)xSK5uW6VL{fI*;_vk*$ZiKb$bGB+2fTt$q+zXaT=D5Nk_ zs9SgX+&7WyR)%^m8||@a*|pPju#rBU9*oaMt4FIfs`zoEJtEZ6IEXxYV3bC#ib#l8 zM`_|!Q4wl*XyOyW784cPet3^=qr>^{_6gyk?A152Eh+0$+W)Yk#;e~x`CnsK0u{xP zhNo$-5D!#TJmR8`f>DN3WONOU%m@g=2ww4OhhY>1X2=`@D{8VqO-x8uU1O5XCMxD_ zOx}8|E5=0KTq17VXi%R-l(-&=o4Bj-AZkpq|6g5wO@Yt&~AE4Zid8*VU=x>rSq%s9v=!shqns zu(0lw)!}WtX&JSyWyL>!`KUC{_G?lCGU>zH)e*;QhYW1`?nZ+Bz@~%QCnF1A zJDA(t(zB+Do4NC2-`RR+#?j6%xDNH4dVJD?g;Bky&zLv1%i!pgX<1W#UD6U#mz-zcWd3`tAotAF1xAdPl!&_fG z{H~9;<_Rx8p1ADM+f7|9=3}*+N0;vUwmPa?nA^9<q z|JLo1?|zbY?sQU3*8JMLZ`qa#&;@LAl|#>%C5Q;#&!5+dhU zjV>6rGM>Z1LT{!5XTE=t5wCwpNS^y_sx*O7c_t6cwCvI`D)1ckFnTlQrNx`gX6$0f zP|F(tNr;Jw8H4Sfgff_Xu(6b})P)>^a_jLYSj4Y?{f!hyZG3S0%X9d8nmiGfUTV?m zU`%)}5=Fo)f4P?`r9-RJ8GLx|Jh-w>C-O_HLq>8%C$}UHashKvtMdq>(}mFqCY&sA z(L(MFfpGxyUaRvc9P?Z{z!)>MU`B_GD_o}JZTL^-9!O}QPB-x7IlRd#>vUywx)aVt za506Ut&?FkAE?uVaPaaPQ-}sH)Pbwb9~{znt{Gg^IoQ0Rfz|0rI9eTPDKV`MPN;cq z2)Jk?N*}w#>huO5o(qHc$mP|Gi4Tr6JZC}?u)B$$Tw`_mfDg}QfsUL%p^Oe0Be`?H zfeL8ItNH@kA{^+-s~^$X3e^Ei4y`YvgX0~~S-{0w6Y|e~D_I?!_Dkg@rz?!n!HY7U z+mBHIyFR;oGg}V_f)AVvII_+FMhB-dJohrV*wW^gd<)a8!20|c;cNmOIe!K*IykN5 zxg>BgN=?F%57=~J&hcERCO(51op8b_0vF?aqsKR&usTBs2On3;=?Z6bh7t}k(P}e? zwX*3N20lE86I@wmD5GN}oUteZcC!X{LuT@4IQT%{qR}xjIwJ_@D|(`duUI#*IuV4k zRiiV4(TOA+yj6kaRne*F6q`RI2}gip#1?`UDd|Xk_#{N|Qj+JewSp8e%F*<_qX6f* z=cs?xi6zk4AY0o8BGJxg2C5q9BCLDZK z6Km)<{SU2X^Du^RrU3zaJ+x>>2L~UX!)(CuX7xA=jGuw=i6fj@n)t*rI`M=v16+*H z^<(29I|FqR2UG94I%dL|2!(|`NYW(7TWoyB5e~dQK~@uk1B02-8BaLaD`I?l6zA?{b?|zG z=k9|mr)xZ;Gl6jMRc9O(p0C^g8msdJ;TWMn<-T_UqmxWH*i&J71-W_@vN{6cbcJ)t z@kwTMQV8e4IujY46h<2gbu0goL0xm=%f*y4sb4PJ3DLb7uozt zC!8cr`$}VUG6+Wm7u)ic<H9dGGB7?i!g(KH zxgX16bYRK|=^6?y*28mqKeV$txrCDdI&!+EGCJ6!@*G~>L(&X4YzsEBI@1V8J2%c# z6fu-!;Up%~VxlS{mO4uvWtAEZB3`FYgWyjb*Cms6u&34|78x+e9O!hZ$%sn^6wV3; z!I_F=a;RDvP(tlxkS`hJ0)yOUkdBc1lF8@7*YorUet4iqo}fsEK@NqZ2wIwgcqo#o zAT<=3q9E^5Bu7C$qR3bUIZhF?f?TA?1O>TCkz@twj@1qsB1Q$N zrN~eP`G_LX3UYxWgA@e6sYDx~AZZjCp&*46i3LOwSWl5C1%cHbiS<&D|57AWL152$ zVj&7*p-6WHfrXlgg((QxYXPvn3i1Qx3|0_$rJL9&1;No8EnGoXQKYMad`gjE1-Va= z4hk~7v!tVzyP!ji`0&J-L|#n5KC_cSLK0%|YiOKZ0D>Q6853etRfL3!P1*$hIO5Bk zSo1a&fmNMxhKKVYoCyO55S%~h5uCkYTU9wY57Q$!3&h8O5(f?pxsVF%gYa6flfeY{ zNqqS*RDex~Kc1t7XGrgO*CLG$B5>eV3NgYlm@4odh_M18oEh>QUSVOCA93XJ+tM5x z4h#;OV}t`EqjKYf+>wT>5+s3Lb1V*(exVDGN{P(`SE_aJn1}TK5@O1SwNR;H|H^Yl z`B3-2k?If*@qusXiH?f&fhb@sR3r)xaWqyD3m_pnWF83rJ$M5kSf`t^uP3HStEjZ><-tWr~`n%K*W3bws!p{mgCb4yx=QeL#n(iCcny4)Mc zCl`>1DxzkoegWEvm~Bh3#$dCd{&9=)#e8RpyBvKpGXs3=`R*l7#s_x+(``zH4A2db zMjC7u*0!g-RIci4!xpVMf50A*NQ71nC$XhW7o|6u#A&%HQ*1d|8QE4rh}DE`doxm$ zNCycGQNLLT5;FCK2P{lV*t68Ee88gFB=Q<6d`;6x4v}wEE;)(=u|h1wj*loTl9k3CUS?(SRqoyxaH85FH3DqaJ6L2!dQR)nA_C-$G(WewF_QPOT;dJ0UJq`pK(+P+;Lm8WN*@0{!Ax{#F@?=_KGn{lFl@E*p&MMXp8C z*bQU75I>plWe;frA){qwlrO`ivyx(_Q}WUnlFpaT8U!6Lr_AZG;|F0ns)7o@7PZAk I3eFJxfA1@gh5!Hn literal 0 HcmV?d00001 diff --git a/cheat-library/cheat-library.vcxproj b/cheat-library/cheat-library.vcxproj index 51c3fc4..3d1fd77 100644 --- a/cheat-library/cheat-library.vcxproj +++ b/cheat-library/cheat-library.vcxproj @@ -40,15 +40,7 @@ false true - - true - true - - - true - true - @@ -93,18 +85,10 @@ - - true - true - false true - - true - true - @@ -154,14 +138,6 @@ false true - - true - true - - - true - true - @@ -204,18 +180,10 @@ - - true - true - false true - - true - true - @@ -871,8 +839,8 @@ true CLibrary - $(SolutionDir)bin\$(Configuration)\ - $(SolutionDir)bin\$(Configuration)\obj\$(ProjectName)\ + $(SolutionDir)bin\$(Configuration)-$(PlatformShortName)\ + $(SolutionDir)bin\$(Configuration)-$(PlatformShortName)\obj\$(ProjectName)\ Run false FinalizeBuildStatus @@ -880,8 +848,8 @@ false CLibrary - $(SolutionDir)bin\$(Configuration)\ - $(SolutionDir)bin\$(Configuration)\obj\$(ProjectName)\ + $(SolutionDir)bin\$(Configuration)-$(PlatformShortName)\ + $(SolutionDir)bin\$(Configuration)-$(PlatformShortName)\obj\$(ProjectName)\ Run true FinalizeBuildStatus @@ -889,8 +857,8 @@ false CLibrary - $(SolutionDir)bin\$(Configuration)\ - $(SolutionDir)bin\$(Configuration)\obj\$(ProjectName)\ + $(SolutionDir)bin\$(Configuration)-$(PlatformShortName)\ + $(SolutionDir)bin\$(Configuration)-$(PlatformShortName)\obj\$(ProjectName)\ Run false FinalizeBuildStatus @@ -911,6 +879,7 @@ false false ProgramDatabase + stdc17 Windows @@ -949,6 +918,7 @@ powershell -nop -c "& {sleep 15}" false Async Speed + stdc17 Windows @@ -986,6 +956,7 @@ powershell -nop -c "& {sleep 15}" Async Speed Classic + stdc17 Windows diff --git a/cheat-library/cheat-library.vcxproj.filters b/cheat-library/cheat-library.vcxproj.filters index 20245a6..3803464 100644 --- a/cheat-library/cheat-library.vcxproj.filters +++ b/cheat-library/cheat-library.vcxproj.filters @@ -48,15 +48,9 @@ Header Files - - Header Files - Header Files - - Header Files - Header Files @@ -195,12 +189,6 @@ Header Files - - Header Files - - - Header Files - Header Files @@ -255,15 +243,9 @@ Source Files - - Source Files - Source Files - - Source Files - Source Files @@ -390,12 +372,6 @@ Source Files - - Source Files - - - Source Files - Source Files diff --git a/cheat-library/src/user/cheat/misc/sniffer/MessageManager.h b/cheat-library/src/user/cheat/misc/sniffer/MessageManager.h index 6f9e448..660a0f6 100644 --- a/cheat-library/src/user/cheat/misc/sniffer/MessageManager.h +++ b/cheat-library/src/user/cheat/misc/sniffer/MessageManager.h @@ -45,6 +45,9 @@ namespace sniffer while (true) { auto messagePtr = ReceiveMessage(); + if (messagePtr == nullptr) + return {}; + if (GetMessageIDByType() != messagePtr->messageID()) { delete messagePtr; diff --git a/cheat-library/src/user/cheat/misc/sniffer/PacketInfo.cpp b/cheat-library/src/user/cheat/misc/sniffer/PacketInfo.cpp deleted file mode 100644 index d7c346a..0000000 --- a/cheat-library/src/user/cheat/misc/sniffer/PacketInfo.cpp +++ /dev/null @@ -1,145 +0,0 @@ -#include "pch-il2cpp.h" -#include "PacketInfo.h" - -#include - -namespace sniffer -{ - PacketInfo::PacketInfo(PacketData packetData) - : m_Data(packetData), - m_JObject(nlohmann::json::parse(packetData.messageJson)), - m_Time(util::GetCurrentTimeMillisec()), - m_DrawBeauty(false) - { - - } - - PacketIOType PacketInfo::type() const - { - return m_Data.ioType; - } - - uint32_t PacketInfo::id() const - { - return m_Data.messageID; - } - - size_t PacketInfo::size() const - { - return m_Data.messageRawData.size(); - } - - int64_t PacketInfo::time() const - { - return m_Time; - } - - std::string PacketInfo::name() const - { - return m_Data.name; - } - - nlohmann::json PacketInfo::object() const - { - return m_JObject; - } - - void DrawPrimitive(const std::string& key, nlohmann::json& jsonPrimitive) - { - if (jsonPrimitive.is_boolean()) - { - bool primitive = jsonPrimitive; - ImGui::Checkbox(key.c_str(), &primitive); - } - else if (jsonPrimitive.is_number_integer() || jsonPrimitive.is_number_unsigned()) - { - int primitive = jsonPrimitive; - ImGui::InputInt(key.c_str(), &primitive); - } - else if (jsonPrimitive.is_number_float()) - { - float primitive = jsonPrimitive; - ImGui::InputFloat(key.c_str(), &primitive); - } - else if (jsonPrimitive.is_string()) - { - std::string primitive = jsonPrimitive; - ImGui::InputText(key.c_str(), &primitive); - } - else if (jsonPrimitive.is_null()) - { - ImGui::Text("%s: ", key.c_str()); - } - } - - void DrawObject(const std::string& key, nlohmann::json& jsonObject); - - void DrawArray(const std::string& key, nlohmann::json& jsonArray) - { - ImGui::PushID(key.c_str()); - - if (ImGui::TreeNode(key.c_str())) - { - int i = 0; - for (auto& el : jsonArray) - { - DrawObject(std::to_string(i), el); - i++; - } - ImGui::TreePop(); - } - - ImGui::PopID(); - } - - void DrawObject(const std::string& key, nlohmann::json& jsonObject) - { - if (jsonObject.is_array()) - DrawArray(key, jsonObject); - else if (jsonObject.is_primitive()) - DrawPrimitive(key, jsonObject); - else - { - ImGui::PushID(key.c_str()); - - if (ImGui::TreeNode(key.c_str())) - { - for (auto& el : jsonObject.items()) - DrawObject(el.key(), el.value()); - - ImGui::TreePop(); - } - - ImGui::PopID(); - } - } - - void PacketInfo::Draw() - { - ImGui::PushID(this); - - if (m_Header.empty()) - m_Header = fmt::format("[{}] {} | {}. Size: {}", magic_enum::enum_name(type()), id(), name(), size()); - - if (ImGui::TreeNode(m_Header.c_str())) - { - if (ImGui::Checkbox("## Beauty", &m_DrawBeauty) && m_DrawBeauty && m_JsonMessageBeauty.empty()) - { - m_JsonMessageBeauty = m_JObject.dump(2); - } - ImGui::SameLine(); - - if (m_DrawBeauty) - ImGui::InputTextMultiline("JSON Message", &m_JsonMessageBeauty); - else - ImGui::InputText("JSON Message", &m_Data.messageJson); - - - DrawObject("Data", m_JObject); - ImGui::TreePop(); - } - - ImGui::PopID(); - } -} - diff --git a/cheat-library/src/user/cheat/misc/sniffer/PacketInfo.h b/cheat-library/src/user/cheat/misc/sniffer/PacketInfo.h deleted file mode 100644 index 0434814..0000000 --- a/cheat-library/src/user/cheat/misc/sniffer/PacketInfo.h +++ /dev/null @@ -1,35 +0,0 @@ -#pragma once - -#include - -#include "messages/PacketData.h" - -namespace sniffer -{ - class PacketInfo - { - public: - PacketInfo(PacketData packetData); - - PacketIOType type() const; - uint32_t id() const; - size_t size() const; - int64_t time() const; - std::string name() const; - nlohmann::json object() const; - - void Draw(); - - private: - nlohmann::json m_JObject; - int64_t m_Time; - - bool m_DrawBeauty; - std::string m_JsonMessageBeauty; - std::string m_Header; - - PacketData m_Data; - }; -} - - diff --git a/cheat-library/src/user/cheat/misc/sniffer/PacketParser.cpp b/cheat-library/src/user/cheat/misc/sniffer/PacketParser.cpp deleted file mode 100644 index ca0cdf4..0000000 --- a/cheat-library/src/user/cheat/misc/sniffer/PacketParser.cpp +++ /dev/null @@ -1,240 +0,0 @@ -#include "pch-il2cpp.h" -#include "PacketParser.h" - -#include "MessageManager.h" -namespace sniffer -{ - - PacketParser::PacketParser(const std::string& protoDirPath, const std::string& protoIDPath) - : m_ProtoManager() - { - m_ProtoManager.Load(protoIDPath, protoDirPath); - UpdateUnionPacketIDs(); - } - - void PacketParser::SetProtoDir(const std::string& protoDir) - { - m_ProtoManager.LoadProtoDir(protoDir); - UpdateUnionPacketIDs(); - } - - void PacketParser::SetProtoIDPath(const std::string& protoIDPath) - { - m_ProtoManager.LoadProtoDir(protoIDPath); - UpdateUnionPacketIDs(); - } - - bool PacketParser::Parse(PacketData& data) - { - auto name = m_ProtoManager.GetName(data.messageID); - if (!name) - return false; - - auto head = m_ProtoManager.GetJson("PacketHead", data.headRawData); - if (!head) - return false; - - auto message = m_ProtoManager.GetJson(data.messageID, data.messageRawData); - if (!message) - return false; - - data.name = *name; - data.headJson = *head; - data.messageJson = *message; - return true; - } - - bool PacketParser::IsUnionPacket(const PacketData& data) - { - return m_UnionPacketIds.count(data.messageID) > 0; - } - - std::vector PacketParser::ParseUnionPacket(const PacketData& data) - { - if (!IsUnionPacket(data)) - return {}; - - auto parseFunction = m_UnionPacketIds[data.messageID]; - return (this->*parseFunction)(data); - } - - PacketData PacketParser::CreateNestedPacket(const PacketData& parent, std::string bodyEncoded, int16_t packetID) - { - PacketData nestedPacketData = MessageManager::CreateMessage(); - nestedPacketData.headRawData = parent.headRawData; - nestedPacketData.headJson = parent.headJson; - nestedPacketData.messageRawData = util::base64_decode(bodyEncoded); - nestedPacketData.messageID = packetID; - nestedPacketData.valid = true; - nestedPacketData.ioType = parent.ioType; - nestedPacketData.parentPacketID = parent.sequenceID(); - - if (packetID != 0) - Parse(nestedPacketData); - - return nestedPacketData; - } - - std::vector PacketParser::ParseUnionCmdNotify(const PacketData& data) - { - nlohmann::json cmdListObject = nlohmann::json::parse(data.messageJson); - - std::vector packets; - for (auto& cmd : cmdListObject["cmdList"]) - { - auto nestedPacketData = CreateNestedPacket(data, cmd["body"], cmd["messageId"]); - packets.push_back(nestedPacketData); - - if (IsUnionPacket(nestedPacketData)) - { - auto nestedNestedPackets = ParseUnionPacket(nestedPacketData); - packets.insert(packets.end(), nestedNestedPackets.begin(), nestedNestedPackets.end()); - } - continue; - } - return packets; - } - - std::optional PacketParser::ParseAbilityInvokeEntry(const PacketData& parent, const nlohmann::json& entry) - { - static std::map abilityArgument2Proto = - { - { "ABILITY_META_MODIFIER_CHANGE", "AbilityMetaModifierChange" }, - { "ABILITY_META_COMMAND_MODIFIER_CHANGE_REQUEST", "AbilityMetaCommandModifierChangeRequest" }, - { "ABILITY_META_SPECIAL_FLOAT_ARGUMENT", "AbilityMetaSpecialFloatArgument" }, - { "ABILITY_META_OVERRIDE_PARAM", "AbilityMetaOverrideParam" }, - { "ABILITY_META_CLEAR_OVERRIDE_PARAM", "AbilityMetaClearOverrideParam" }, - { "ABILITY_META_REINIT_OVERRIDEMAP", "AbilityMetaReinitOverridemap" }, - { "ABILITY_META_GLOBAL_FLOAT_VALUE", "AbilityMetaGlobalFloatValue" }, - { "ABILITY_META_CLEAR_GLOBAL_FLOAT_VALUE", "AbilityMetaClearGlobalFloatValue" }, - { "ABILITY_META_ABILITY_ELEMENT_STRENGTH", "AbilityMetaAbilityElementStrength" }, - { "ABILITY_META_ADD_OR_GET_ABILITY_AND_TRIGGER", "AbilityMetaAddOrGetAbilityAndTrigger" }, - { "ABILITY_META_SET_KILLED_SETATE", "AbilityMetaSetKilledSetate" }, - { "ABILITY_META_SET_ABILITY_TRIGGER", "AbilityMetaSetAbilityTrigger" }, - { "ABILITY_META_ADD_NEW_ABILITY", "AbilityMetaAddNewAbility" }, - { "ABILITY_META_REMOVE_ABILITY", "AbilityMetaRemoveAbility" }, - { "ABILITY_META_SET_MODIFIER_APPLY_ENTITY", "AbilityMetaSetModifierApplyEntity" }, - { "ABILITY_META_MODIFIER_DURABILITY_CHANGE", "AbilityMetaModifierDurabilityChange" }, - { "ABILITY_META_ELEMENT_REACTION_VISUAL", "AbilityMetaElementReactionVisual" }, - { "ABILITY_META_SET_POSE_PARAMETER", "AbilityMetaSetPoseParameter" }, - { "ABILITY_META_UPDATE_BASE_REACTION_DAMAGE", "AbilityMetaUpdateBaseReactionDamage" }, - { "ABILITY_META_TRIGGER_ELEMENT_REACTION", "AbilityMetaTriggerElementReaction" }, - { "ABILITY_META_LOSE_HP", "AbilityMetaLoseHp" }, - { "ABILITY_ACTION_TRIGGER_ABILITY", "AbilityActionTriggerAbility" }, - { "ABILITY_ACTION_SET_CRASH_DAMAGE", "AbilityActionSetCrashDamage" }, - { "ABILITY_ACTION_EFFECT", "AbilityActionEffect" }, - { "ABILITY_ACTION_SUMMON", "AbilityActionSummon" }, - { "ABILITY_ACTION_BLINK", "AbilityActionBlink" }, - { "ABILITY_ACTION_CREATE_GADGET", "AbilityActionCreateGadget" }, - { "ABILITY_ACTION_APPLY_LEVEL_MODIFIER", "AbilityActionApplyLevelModifier" }, - { "ABILITY_ACTION_GENERATE_ELEM_BALL", "AbilityActionGenerateElemBall" }, - { "ABILITY_ACTION_SET_RANDOM_OVERRIDE_MAP_VALUE", "AbilityActionSetRandomOverrideMapValue" }, - { "ABILITY_ACTION_SERVER_MONSTER_LOG", "AbilityActionServerMonsterLog" }, - { "ABILITY_ACTION_CREATE_TILE", "AbilityActionCreateTile" }, - { "ABILITY_ACTION_DESTROY_TILE", "AbilityActionDestroyTile" }, - { "ABILITY_ACTION_FIRE_AFTER_IMAGE", "AbilityActionFireAfterImage" }, - { "ABILITY_MIXIN_AVATAR_STEER_BY_CAMERA", "AbilityMixinAvatarSteerByCamera" }, - { "ABILITY_MIXIN_MONSTER_DEFEND", "AbilityMixinMonsterDefend" }, - { "ABILITY_MIXIN_WIND_ZONE", "AbilityMixinWindZone" }, - { "ABILITY_MIXIN_COST_STAMINA", "AbilityMixinCostStamina" }, - { "ABILITY_MIXIN_ELITE_SHIELD", "AbilityMixinEliteShield" }, - { "ABILITY_MIXIN_ELEMENT_SHIELD", "AbilityMixinElementShield" }, - { "ABILITY_MIXIN_GLOBAL_SHIELD", "AbilityMixinGlobalShield" }, - { "ABILITY_MIXIN_SHIELD_BAR", "AbilityMixinShieldBar" }, - { "ABILITY_MIXIN_WIND_SEED_SPAWNER", "AbilityMixinWindSeedSpawner" }, - { "ABILITY_MIXIN_DO_ACTION_BY_ELEMENT_REACTION", "AbilityMixinDoActionByElementReaction" }, - { "ABILITY_MIXIN_FIELD_ENTITY_COUNT_CHANGE", "AbilityMixinFieldEntityCountChange" }, - { "ABILITY_MIXIN_SCENE_PROP_SYNC", "AbilityMixinScenePropSync" }, - { "ABILITY_MIXIN_WIDGET_MP_SUPPORT", "AbilityMixinWidgetMpSupport" } - }; - - if (entry.count("abilityData") == 0 || entry.count("argumentType") == 0) - return {}; - - std::string argumentType = entry["argumentType"]; - if (abilityArgument2Proto.count(argumentType) == 0) - return {}; - - PacketData nestedPacketData = CreateNestedPacket(parent, entry["abilityData"]); - nestedPacketData.name = abilityArgument2Proto[argumentType]; - - auto jsonData = m_ProtoManager.GetJson(nestedPacketData.name, nestedPacketData.messageRawData); - nestedPacketData.messageJson = jsonData ? *jsonData : "{}"; - return nestedPacketData; - } - - std::vector PacketParser::ParseAbilityInvocationsNotify(const PacketData& data) - { - auto combatJsonObject = nlohmann::json::parse(data.messageJson); - std::vector packets = {}; - for (auto& invokeEntry : combatJsonObject["invokes"]) - { - auto abilityPacketData = ParseAbilityInvokeEntry(data, invokeEntry); - if (abilityPacketData) - packets.push_back(*abilityPacketData); - } - return packets; - } - - std::optional PacketParser::ParseCombatInvokeEntry(const PacketData& parent, const nlohmann::json& entry) - { - static std::map combateTypeProtos = { - { "ENTITY_MOVE", "EntityMoveInfo" }, - { "COMBAT_EVT_BEING_HIT", "EvtBeingHitInfo" }, - { "COMBAT_ANIMATOR_STATE_CHANGED", "EvtAnimatorStateChangedInfo" }, - { "COMBAT_FACE_TO_DIR", "EvtFaceToDirInfo" }, - { "COMBAT_SET_ATTACK_TARGET", "EvtSetAttackTargetInfo" }, - { "COMBAT_RUSH_MOVE", "EvtRushMoveInfo" }, - { "COMBAT_ANIMATOR_PARAMETER_CHANGED", "EvtAnimatorParameterInfo" }, - { "SYNC_ENTITY_POSITION", "EvtSyncEntityPositionInfo" }, - { "COMBAT_STEER_MOTION_INFO", "EvtCombatSteerMotionInfo" }, - { "COMBAT_FORCE_SET_POSITION_INFO", "EvtCombatForceSetPosInfo" }, - { "COMBAT_FORCE_SET_POS_INFO", "EvtCombatForceSetPosInfo" }, - { "COMBAT_COMPENSATE_POS_DIFF", "EvtCompensatePosDiffInfo" }, - { "COMBAT_MONSTER_DO_BLINK", "EvtMonsterDoBlink" }, - { "COMBAT_FIXED_RUSH_MOVE", "EvtFixedRushMove" }, - { "COMBAT_SYNC_TRANSFORM", "EvtSyncTransform" }, - { "COMBAT_LIGHT_CORE_MOVE", "EvtLightCoreMove" } - }; - - if (!entry["argumentType"].is_string()) - return {}; - - std::string argumentType = entry["argumentType"]; - - if (combateTypeProtos.count(argumentType) == 0) - { - LOG_WARNING("Failed to find argument type %s", argumentType.c_str()); - return {}; - } - - PacketData nestedPacketData = CreateNestedPacket(parent, entry["combatData"]); - nestedPacketData.name = combateTypeProtos[argumentType]; - - auto jsonData = m_ProtoManager.GetJson(nestedPacketData.name, nestedPacketData.messageRawData); - nestedPacketData.messageJson = jsonData ? *jsonData : "{}"; - return nestedPacketData; - } - - std::vector PacketParser::ParseCombatInvocationsNotify(const PacketData& data) - { - auto combatJsonObject = nlohmann::json::parse(data.messageJson); - std::vector packets = {}; - for (auto& invokeEntry : combatJsonObject["invokeList"]) - { - auto combatPacketData = ParseCombatInvokeEntry(data, invokeEntry); - if (combatPacketData) - packets.push_back(*combatPacketData); - } - return packets; - } - - void PacketParser::UpdateUnionPacketIDs() - { - m_UnionPacketIds.clear(); - for (auto& [unionPacketName, parserFunc] : s_UnionPacketNames) - { - m_UnionPacketIds[m_ProtoManager.GetId(unionPacketName)] = parserFunc; - } - } -} \ No newline at end of file diff --git a/cheat-library/src/user/cheat/misc/sniffer/PacketParser.h b/cheat-library/src/user/cheat/misc/sniffer/PacketParser.h deleted file mode 100644 index 700a623..0000000 --- a/cheat-library/src/user/cheat/misc/sniffer/PacketParser.h +++ /dev/null @@ -1,49 +0,0 @@ -#pragma once -#include "messages/PacketData.h" -#include "ProtoManager.h" - -namespace sniffer -{ - class PacketParser - { - public: - PacketParser(const std::string& protoDirPath, const std::string& protoIDPath); - - void SetProtoDir(const std::string& protoDir); - void SetProtoIDPath(const std::string& protoIDPath); - - bool Parse(PacketData& data); - bool IsUnionPacket(const PacketData& data); - std::vector ParseUnionPacket(const PacketData& data); - - private: - PacketData CreateNestedPacket(const PacketData& parent, std::string bodyEncoded, int16_t packetID = 0); - std::vector ParseUnionCmdNotify(const PacketData& data); - - std::optional ParseAbilityInvokeEntry(const PacketData& parent, const nlohmann::json& entry); - std::vector ParseAbilityInvocationsNotify(const PacketData& data); - - std::optional ParseCombatInvokeEntry(const PacketData& parent, const nlohmann::json& entry); - std::vector ParseCombatInvocationsNotify(const PacketData& data); - - using UnionPacketParserFunc = std::vector(PacketParser::*)(const PacketData& data); - inline static std::map s_UnionPacketNames = - { - { "UnionCmdNotify", &ParseUnionCmdNotify}, - - { "EntityAbilityInvokeEntry", &ParseAbilityInvocationsNotify }, - { "ClientAbilityInitFinishNotify", &ParseAbilityInvocationsNotify }, - { "ClientAbilityChangeNotify", &ParseAbilityInvocationsNotify }, - { "AbilityInvocationsNotify", &ParseAbilityInvocationsNotify }, - - { "CombatInvocationsNotify", &ParseCombatInvocationsNotify} - }; - - sniffer::ProtoManager m_ProtoManager; - std::map m_UnionPacketIds; - - void UpdateUnionPacketIDs(); - }; -} - - diff --git a/cheat-library/src/user/cheat/misc/sniffer/PacketSniffer.cpp b/cheat-library/src/user/cheat/misc/sniffer/PacketSniffer.cpp index 534f669..c8f1771 100644 --- a/cheat-library/src/user/cheat/misc/sniffer/PacketSniffer.cpp +++ b/cheat-library/src/user/cheat/misc/sniffer/PacketSniffer.cpp @@ -11,18 +11,12 @@ namespace cheat::feature { PacketSniffer::PacketSniffer() : Feature(), - NF(m_CapturingEnabled, "Capturing", "PacketSniffer", false), - NF(m_ManipulationEnabled, "Manipulation", "PacketSniffer", false), - NF(m_PipeEnabled, "Pipe", "PacketSniffer", false) - -#ifdef _PACKET_SNIFFER - , NF(m_ProtoDirPath, "Proto Dir Path", "PacketSniffer", ""), - NF(m_ProtoIDFilePath, "Proto ID File Path", "PacketSniffer", ""), - m_PacketParser(m_ProtoDirPath, m_ProtoIDFilePath) -#endif + NF(f_CaptureEnabled, "Capturing", "PacketSniffer", false), + NF(f_ManipulationEnabled, "Manipulation", "PacketSniffer", false), + NF(f_PipeName, "Pipe name", "PacketSniffer", "genshin_packet_pipe") { - sniffer::MessageManager::Connect("genshin_packet_pipe"); + sniffer::MessageManager::Connect(f_PipeName.value()); HookManager::install(app::Kcp_KcpNative_kcp_client_send_packet, KcpNative_kcp_client_send_packet_Hook); HookManager::install(app::MoleMole_KcpClient_TryDequeueEvent, KcpClient_TryDequeueEvent_Hook); @@ -34,80 +28,14 @@ namespace cheat::feature return info; } - bool PacketSniffer::OnCapturingChanged() - { -#ifdef _PACKET_SNIFFER - if (!m_CapturingEnabled) - return true; - - if (!m_ProtoDirPath.value().empty() && !m_ProtoIDFilePath.value().empty()) - { - m_PacketParser.SetProtoIDPath(m_ProtoIDFilePath); - m_PacketParser.SetProtoDir(m_ProtoDirPath); - return true; - } - - return false; -#endif - - return true; - } - void PacketSniffer::DrawMain() { - - //ImGui::Text("Dev: for working needs server for named pipe 'genshin_packet_pipe'.\nCheck 'packet-handler' project like example."); - if (ConfigWidget(m_CapturingEnabled, "Enabling capturing of packet info and sending to pipe, if it exists.")) - { - bool result = OnCapturingChanged(); - if (!result) - { - m_CapturingEnabled = false; - ImGui::OpenPopup("Error"); - } - } - - if (ImGui::BeginPopup("Error")) - { - ImGui::Text("Please fill 'Proto Dir Path' and 'Proto ID File Path' before enabling capture."); - ImGui::EndPopup(); - } - -#ifdef _PACKET_SNIFFER - auto& window = sniffer::SnifferWindow::GetInstance(); - ConfigWidget(window.m_Show, "Show capturing window."); - - ConfigWidget(m_PipeEnabled, "Enable sending of packet data to pipe with name 'genshin_packet_pipe'.\n"\ - "This feature can be used with external monitoring tools."); - //ConfigWidget(m_ManipulationEnabled, "Enabling manipulation packet feature, that allows to replace, block incoming/outcoming packets." \ - // "\nThis feature often needs, to read-write pipe operation, so can decrease network bandwidth."); - - if (m_CapturingEnabled) - { - ImGui::Text("These parameters can only be changed when 'Capturing' is disabled."); - ImGui::BeginDisabled(); - } - - ConfigWidget(m_ProtoDirPath, "Path to directory containing Genshin .proto files."); - ConfigWidget(m_ProtoIDFilePath, "Path to JSON file containing packet id->packet name info."); - - if (m_CapturingEnabled) - ImGui::EndDisabled(); -#else - ImGui::Text("When capture is enabled, raw packet data will be send to named pipe: 'genshin_packet_pipe'."); - ImGui::Text("'Raw' means that you should to parse protobuf structure by yourself."); -#endif + ImGui::Text("Dev: for working needs server for named pipe with specified name.\nCheck 'packet-handler' project like example."); + ConfigWidget(f_PipeName, "Pipe name for connecting. Changes will apply after next game launch."); + ConfigWidget(f_CaptureEnabled, "Enable capturing of packet info and sending to pipe, if it exists."); + ConfigWidget(f_ManipulationEnabled, "Enable blocking and modifying packets by sniffer, can cause network lags."); } - void PacketSniffer::DrawExternal() - { -#ifdef _PACKET_SNIFFER - auto& window = sniffer::SnifferWindow::GetInstance(); - if (window.m_Show) - window.Draw(); -#endif - } - PacketSniffer& PacketSniffer::GetInstance() { static PacketSniffer instance; @@ -141,7 +69,10 @@ namespace cheat::feature bool PacketSniffer::OnPacketIO(app::KcpPacket_1* packet, PacketIOType type) { - if (!m_CapturingEnabled) + if (!sniffer::MessageManager::IsConnected()) + return true; + + if (!f_CaptureEnabled) return true; PacketData packetData = ParseRawPacketData((char*)packet->data, packet->dataLen); @@ -149,30 +80,10 @@ namespace cheat::feature return true; packetData.ioType = type; - packetData.blockModeEnabled = m_ManipulationEnabled; - -#ifdef _PACKET_SNIFFER - bool parsed = m_PacketParser.Parse(packetData); - if (!parsed) - return true; - - sniffer::SnifferWindow::GetInstance().OnPacketIO({packetData}); -#endif - + packetData.blockModeEnabled = f_ManipulationEnabled; sniffer::MessageManager::Send(packetData); - bool canceled = m_ManipulationEnabled && ProcessModifiedData(packet); - -#ifdef _PACKET_SNIFFER - if (m_PacketParser.IsUnionPacket(packetData)) - { - for (auto& nestedPacketData : m_PacketParser.ParseUnionPacket(packetData)) - { - sniffer::SnifferWindow::GetInstance().OnPacketIO({ nestedPacketData }); - sniffer::MessageManager::Send(nestedPacketData); - } - } -#endif + bool canceled = f_ManipulationEnabled && ProcessModifiedData(packet); return !canceled; } diff --git a/cheat-library/src/user/cheat/misc/sniffer/PacketSniffer.h b/cheat-library/src/user/cheat/misc/sniffer/PacketSniffer.h index 890130b..68a9934 100644 --- a/cheat-library/src/user/cheat/misc/sniffer/PacketSniffer.h +++ b/cheat-library/src/user/cheat/misc/sniffer/PacketSniffer.h @@ -12,41 +12,25 @@ #include "MessageManager.h" -#ifdef _PACKET_SNIFFER -#include "PacketParser.h" -#include "PacketInfo.h" -#endif - namespace cheat::feature { class PacketSniffer : public Feature { public: - config::Field m_CapturingEnabled; - config::Field m_ManipulationEnabled; - config::Field m_PipeEnabled; - -#ifdef _PACKET_SNIFFER - config::Field m_ProtoDirPath; - config::Field m_ProtoIDFilePath; -#endif + config::Field f_CaptureEnabled; + config::Field f_ManipulationEnabled; + config::Field f_PipeName; static PacketSniffer& GetInstance(); const FeatureGUIInfo& GetGUIInfo() const override; void DrawMain() override; - void DrawExternal() final; - private: -#ifdef _PACKET_SNIFFER - sniffer::PacketParser m_PacketParser; -#endif PacketSniffer(); - PacketData ParseRawPacketData(char* encryptedData, uint32_t length); - bool OnCapturingChanged(); + PacketData ParseRawPacketData(char* encryptedData, uint32_t length); static char* EncryptXor(void* content, uint32_t length); static bool KcpClient_TryDequeueEvent_Hook(void* __this, app::ClientKcpEvent* evt, MethodInfo* method); static int32_t KcpNative_kcp_client_send_packet_Hook(void* kcp_client, app::KcpPacket_1* packet, MethodInfo* method); diff --git a/cheat-library/src/user/cheat/misc/sniffer/ProtoManager.cpp b/cheat-library/src/user/cheat/misc/sniffer/ProtoManager.cpp deleted file mode 100644 index 3a82161..0000000 --- a/cheat-library/src/user/cheat/misc/sniffer/ProtoManager.cpp +++ /dev/null @@ -1,125 +0,0 @@ -#include "pch-il2cpp.h" -#include "ProtoManager.h" - -#include - -namespace sniffer -{ - - class ErrorCollector : public google::protobuf::compiler::MultiFileErrorCollector - { - // Inherited via MultiFileErrorCollector - virtual void AddError(const std::string& filename, int line, int column, const std::string& message) override - { - LOG_ERROR("Error while parsing %s file, line %d, column %d, error: %s\n", filename.c_str(), line, column, message.c_str()); - } - }; - - void ProtoManager::LoadProtoDir(const std::string& dirPath) - { - const std::lock_guard lock(_mutex); - - diskTree = std::shared_ptr(new google::protobuf::compiler::DiskSourceTree()); - if (!dirPath.empty()) - diskTree->MapPath("", dirPath); - - auto errorCollector = new ErrorCollector(); - importer = std::shared_ptr(new google::protobuf::compiler::Importer(diskTree.get(), errorCollector)); - factory = std::shared_ptr(new google::protobuf::DynamicMessageFactory(importer->pool())); - } - - void ProtoManager::LoadIDFile(const std::string& filepath) - { - if (filepath.empty()) - return; - - const std::lock_guard lock(_mutex); - - nameMap.clear(); - - std::ifstream file; - file.open(filepath); - if (!file.is_open()) - { - LOG_WARNING("Failed to load proto id file."); - return; - } - - auto content = nlohmann::json::parse(file); - for (nlohmann::json::iterator it = content.begin(); it != content.end(); ++it) - { - auto id = std::stoi(it.key().c_str()); - nameMap[id] = it.value(); - idMap[it.value()] = id; - } - file.close(); - } - - google::protobuf::Message* ProtoManager::ParseMessage(const std::string& name, std::vector data) - { - const std::lock_guard lock(_mutex); - - auto fileDescriptor = importer->Import(name + ".proto"); - if (fileDescriptor == nullptr || fileDescriptor->message_type_count() == 0) - return nullptr; - - auto message = factory->GetPrototype(fileDescriptor->message_type(0))->New(); - - std::string stringData((char*)data.data(), data.size()); - message->ParseFromString(stringData); - return message; - } - - ProtoManager::ProtoManager() {} - - void ProtoManager::Load(const std::string& idFilePath, const std::string& protoDir) - { - LoadIDFile(idFilePath); - LoadProtoDir(protoDir); - } - - std::optional ProtoManager::GetJson(const std::string& name, std::vector& data) - { - auto message = ParseMessage(name, data); - if (message == nullptr) - { - LOG_ERROR("Failed to parse message with name %s.", name.c_str()); - return {}; - } - - std::string jsonMessage = {}; - google::protobuf::util::MessageToJsonString(*message, &jsonMessage); - - delete message; - - return jsonMessage; - } - - std::optional ProtoManager::GetJson(uint32_t id, std::vector& data) - { - auto name = GetName(id); - if (!name) - return {}; - - return GetJson(*name, data); - } - - std::optional ProtoManager::GetName(uint32_t id) - { - const std::lock_guard lock(_mutex); - - if (nameMap.count(id) == 0) - { - LOG_WARNING("Failed to find proto with id %u", id); - return {}; - } - - return nameMap[id]; - } - - uint16_t ProtoManager::GetId(const std::string& name) - { - return idMap.count(name) == 0 ? 0 : idMap[name]; - } - -} \ No newline at end of file diff --git a/cheat-library/src/user/cheat/misc/sniffer/ProtoManager.h b/cheat-library/src/user/cheat/misc/sniffer/ProtoManager.h deleted file mode 100644 index 0809acf..0000000 --- a/cheat-library/src/user/cheat/misc/sniffer/ProtoManager.h +++ /dev/null @@ -1,41 +0,0 @@ -#pragma once - -#include -#include - -#include -#include -#include -#include - -namespace sniffer -{ - class ProtoManager - { - public: - ProtoManager(); - - std::optional GetJson(uint32_t id, std::vector& data); - std::optional GetJson(const std::string& name, std::vector& byte); - std::optional GetName(uint32_t id); - uint16_t GetId(const std::string& name); - - void Load(const std::string& idFilePath, const std::string& protoDir); - void LoadIDFile(const std::string& filepath); - void LoadProtoDir(const std::string& dirPath); - - private: - std::mutex _mutex; - std::shared_ptr importer; - std::shared_ptr factory; - std::shared_ptr diskTree; - - std::map nameMap; - std::map idMap; - - google::protobuf::Message* ParseMessage(const std::string& name, std::vector data); - - }; -} - - diff --git a/cheat-library/src/user/cheat/misc/sniffer/SnifferWindow.cpp b/cheat-library/src/user/cheat/misc/sniffer/SnifferWindow.cpp deleted file mode 100644 index 604ee5c..0000000 --- a/cheat-library/src/user/cheat/misc/sniffer/SnifferWindow.cpp +++ /dev/null @@ -1,547 +0,0 @@ -#include "pch-il2cpp.h" -#include "SnifferWindow.h" -#include -#include -#include - -namespace sniffer -{ - SnifferWindow& SnifferWindow::GetInstance() - { - static SnifferWindow instance; - return instance; - } - - static auto nameCompare = [](const PacketInfo& a, const PacketInfo& b) { return a.name() < b.name(); }; - static auto sizeCompare = [](const PacketInfo& a, const PacketInfo& b) { return a.size() < b.size(); }; - static auto idCompare = [](const PacketInfo& a, const PacketInfo& b) { return a.id() < b.id(); }; - static auto typeCompare = [](const PacketInfo& a, const PacketInfo& b) { return a.type() < b.type(); }; - static auto timeCompare = [](const PacketInfo& a, const PacketInfo& b) { return a.time() < b.time(); }; - - void SnifferWindow::OnPacketIO(const PacketInfo& info) - { - const std::lock_guard lock(m_CapturePacketLock); - - if (m_SortValue == SortValue::Time) - { - m_CapturedPackets.push_back(info); - if (m_FilterGroup.Execute(info)) - m_CachedPackets.push_back(info); - return; - } - - switch (m_SortValue) - { - case sniffer::SnifferWindow::SortValue::Name: - m_CapturedPackets.insert(std::lower_bound(m_CapturedPackets.begin(), m_CapturedPackets.end(), info, nameCompare), info); - if (m_FilterGroup.Execute(info)) - m_CachedPackets.insert(std::lower_bound(m_CapturedPackets.begin(), m_CapturedPackets.end(), info, nameCompare), info); - break; - case sniffer::SnifferWindow::SortValue::Size: - m_CapturedPackets.insert(std::lower_bound(m_CapturedPackets.begin(), m_CapturedPackets.end(), info, sizeCompare), info); - if (m_FilterGroup.Execute(info)) - m_CachedPackets.insert(std::lower_bound(m_CapturedPackets.begin(), m_CapturedPackets.end(), info, nameCompare), info); - break; - case sniffer::SnifferWindow::SortValue::Id: - m_CapturedPackets.insert(std::lower_bound(m_CapturedPackets.begin(), m_CapturedPackets.end(), info, idCompare), info); - if (m_FilterGroup.Execute(info)) - m_CachedPackets.insert(std::lower_bound(m_CapturedPackets.begin(), m_CapturedPackets.end(), info, nameCompare), info); - break; - case sniffer::SnifferWindow::SortValue::Type: - m_CapturedPackets.insert(std::lower_bound(m_CapturedPackets.begin(), m_CapturedPackets.end(), info, typeCompare), info); - if (m_FilterGroup.Execute(info)) - m_CachedPackets.insert(std::lower_bound(m_CapturedPackets.begin(), m_CapturedPackets.end(), info, nameCompare), info); - break; - default: - break; - } - } - -#undef min -#undef max - - void SnifferWindow::Draw() - { - - const std::lock_guard lock(m_CapturePacketLock); - - bool showPrev = m_Show; - bool windowShowed = ImGui::Begin("Packet sniffer", m_Show); - - if (showPrev != m_Show) - m_Show.FireChanged(); - - if (!windowShowed) - { - ImGui::End(); - return; - } - - if (ComboEnum("## SortValue", &m_SortValue)) - { - switch (m_SortValue) - { - case sniffer::SnifferWindow::SortValue::Name: - m_CapturedPackets.sort(nameCompare); - m_CachedPackets.sort(nameCompare); - break; - case sniffer::SnifferWindow::SortValue::Size: - m_CapturedPackets.sort(sizeCompare); - m_CachedPackets.sort(sizeCompare); - break; - case sniffer::SnifferWindow::SortValue::Id: - m_CapturedPackets.sort(idCompare); - m_CachedPackets.sort(idCompare); - break; - case sniffer::SnifferWindow::SortValue::Type: - m_CapturedPackets.sort(typeCompare); - m_CachedPackets.sort(typeCompare); - break; - case sniffer::SnifferWindow::SortValue::Time: - m_CapturedPackets.sort(timeCompare); - m_CachedPackets.sort(timeCompare); - break; - default: - break; - } - } - ImGui::SameLine(); - ComboEnum("Sort ## SortType", &m_SortType); - - m_FilterGroup.Draw(false); - - if (ImGui::Button("Apply filter")) - { - m_CachedPackets.clear(); - for (auto& info : m_CapturedPackets) - { - if (m_FilterGroup.Execute(info)) - { - m_CachedPackets.push_back(info); - } - } - } - ImGui::SameLine(); - - if (ImGui::Button("Clear history")) - { - m_CapturedPackets.clear(); - m_CachedPackets.clear(); - } - - ImGui::BeginChild("Packets"); - - if (m_SortType == SortType::Asc) - { - for (auto& info : m_CachedPackets) - info.Draw(); - } - else - { - for (auto it = m_CachedPackets.rbegin(); it != m_CachedPackets.rend(); it++) - it->Draw(); - } - - ImGui::EndChild(); - - ImGui::End(); - } - - SnifferWindow::SnifferWindow() : - NF(m_Show, "Show capturing window", "SnifferWindow", false), - m_SortType(SortType::Desc), - m_SortValue(SortValue::Time) - { - - } - - bool Filter::Draw(bool canBeRemoved) -{ - ImGui::PushID(this); - ComboEnum("## ObjectType", &m_ObjectType); ImGui::SameLine(); - ComboEnum("## CompareType", &m_CompareType); ImGui::SameLine(); - - if (m_ObjectType != ObjectType::AnyValue) - { - ImGui::SetNextItemWidth(200); - ImGui::InputText("## Key", &m_KeyPattern); ImGui::SameLine(); - } - - if (m_ObjectType == ObjectType::AnyValue || m_ObjectType == ObjectType::KeyValue) - { - ImGui::SetNextItemWidth(200); - ImGui::InputText("## Value", &m_ObjectPattern); ImGui::SameLine(); - } - - bool removed = false; - if (canBeRemoved && ImGui::Button("Remove")) - removed = true; - - ImGui::PopID(); - return removed; - } - - static std::vector StringSplit(const std::string& delimiter, const std::string& content) - { - std::vector tokens; - size_t pos = 0; - size_t prevPos = 0; - std::string token; - while ((pos = content.find(delimiter, prevPos)) != std::string::npos) { - token = content.substr(prevPos, pos - prevPos); - tokens.push_back(token); - prevPos = pos + delimiter.length(); - } - tokens.push_back(content.substr(prevPos)); - return tokens; - } - - static bool ApplyCompareString(const std::string& value, const std::string& pattern, Filter::CompareType compare) - { - std::string lowerValue = value; - std::transform(lowerValue.begin(), lowerValue.end(), lowerValue.begin(), - [](unsigned char c) { return std::tolower(c); }); - - std::string lowerPattern = pattern; - std::transform(lowerPattern.begin(), lowerPattern.end(), lowerPattern.begin(), - [](unsigned char c) { return std::tolower(c); }); - - switch (compare) - { - case sniffer::Filter::CompareType::Regex: - { - std::regex _regex(lowerPattern.c_str()); - return std::regex_match(lowerValue, _regex); - } - case sniffer::Filter::CompareType::Equal: - return lowerValue == lowerPattern; - case sniffer::Filter::CompareType::Contains: - return lowerValue.find(lowerPattern) != std::string::npos; - default: - return false; - } - } - - template - static bool ApplyCompareAnyType(const nlohmann::json& object, const T& value, Filter::CompareType compare) - { - switch (compare) - { - case sniffer::Filter::CompareType::Equal: - return object == value; - case sniffer::Filter::CompareType::Less: - return object < value; - case sniffer::Filter::CompareType::LessEqual: - return object <= value; - case sniffer::Filter::CompareType::More: - return object > value; - case sniffer::Filter::CompareType::MoreEqual: - return object >= value; - default: - return false; - } - } - - static bool ApplyCompareValue(const nlohmann::json& object, const std::string& pattern, Filter::CompareType compare) - { - if (object.is_string()) - return ApplyCompareString(object, pattern, compare); - - if (object.is_boolean()) - { - if (compare != Filter::CompareType::Equal) - return false; - - bool value = pattern == "true" || pattern == "1"; - return object == value; - } - - if (!object.is_number()) - return false; - - if (object.is_number_float()) - { - auto value = std::stof(pattern); - return ApplyCompareAnyType(object, value, compare); - } - - if (object.is_number_integer()) - { - auto value = std::stoi(pattern); - return ApplyCompareAnyType(object, value, compare); - } - - if (object.is_number_unsigned()) - { - auto value = std::stoul(pattern); - return ApplyCompareAnyType(object, value, compare); - } - - return false; - } - - static bool HasValue(const nlohmann::json& object, const std::string& pattern, Filter::CompareType compare) - { - if (object.is_array()) - { - for (auto& nested : object) - { - if (HasValue(nested, pattern, compare)) - return true; - } - return false; - } - - - if (object.is_object()) - { - for (auto& item : object.items()) - { - if (HasValue(item.value(), pattern, compare)) - return true; - } - return false; - } - - return ApplyCompareValue(object, pattern, compare); - } - - bool Filter::FindAnyValue(const sniffer::PacketInfo& info) - { - if (m_ObjectPattern.empty()) - return true; - - return HasValue(info.object(), m_ObjectPattern, m_CompareType); - } - - bool Filter::FindAnyKey(const sniffer::PacketInfo& info) - { - if (m_KeyPattern.empty()) - return true; - - return !FindKeys(info, true).empty(); - } - - bool Filter::FindKeyValue(const sniffer::PacketInfo& info) - { - if (m_KeyPattern.empty()) - return true; - - auto objects = FindKeys(info); - for (auto& obj : objects) - { - if (ApplyCompareValue(info.object(), m_ObjectPattern, m_CompareType)) - return true; - } - return false; - } - - static std::vector FindKey(const nlohmann::json& object, const std::string& pattern, Filter::CompareType compareType, bool onlyFirst, bool recursive) - { - std::vector objects; - - if (object.is_array()) - { - if (!recursive) - return objects; - - for (auto& nested : object) - { - auto nestedResult = FindKey(nested, pattern, compareType, onlyFirst, recursive); - if (nestedResult.size() > 0) - { - objects.insert(objects.end(), nestedResult.begin(), nestedResult.end()); - if (onlyFirst) - return objects; - } - - } - } - else if (object.is_object()) - { - for (auto& item : object.items()) - { - bool correct = ApplyCompareString(item.key(), pattern, compareType); - if (!correct) - { - if (recursive) - { - auto nestedResult = FindKey(item.value(), pattern, compareType, onlyFirst, recursive); - if (nestedResult.size() > 0) - { - objects.insert(objects.end(), nestedResult.begin(), nestedResult.end()); - if (onlyFirst) - return objects; - } - } - continue; - } - - objects.push_back(item.value()); - if (onlyFirst) - return objects; - } - } - return objects; - - } - - std::vector Filter::FindKeys(const sniffer::PacketInfo& info, bool onlyFirst) - { - auto equalType = m_ObjectType == ObjectType::KeyValue ? CompareType::Regex : m_CompareType; - auto tokens = StringSplit("::", m_KeyPattern); - - std::string& mainToken = tokens[0]; - if (tokens.size() == 1) - { - auto mainObjects = FindKey(info.object(), mainToken, equalType, onlyFirst, true); - return mainObjects; - } - - auto objects = FindKey(info.object(), m_KeyPattern, equalType, false, true); - - for (auto it = tokens.begin() + 1; it != tokens.end(); it++) - { - if (objects.empty()) - return {}; - - bool last_token = (tokens.end() - 1) == it; - bool _onlyFirst = onlyFirst && last_token; - - objects = FindKey(objects, *it, equalType, _onlyFirst, false); - } - - return objects; - } - - - bool Filter::Execute(const sniffer::PacketInfo& info) - { - try - { - switch (m_ObjectType) - { - case sniffer::Filter::ObjectType::KeyValue: - return FindKeyValue(info); - case sniffer::Filter::ObjectType::AnyKey: - return FindAnyKey(info); - case sniffer::Filter::ObjectType::AnyValue: - return FindAnyValue(info); - case sniffer::Filter::ObjectType::Name: - return ApplyCompareString(info.name(), m_KeyPattern, m_CompareType); - case sniffer::Filter::ObjectType::PacketId: - return ApplyCompareString(std::to_string(info.id()), m_KeyPattern, m_CompareType); - default: - return true; - } - } - catch (const std::regex_error& e) - { - UNREFERENCED_PARAMETER(e); - return false; - } - } - - nlohmann::json Filter::Serialize() - { - return {}; - } - - Filter::Filter() - : m_CompareType(CompareType::Equal), - m_ObjectType(ObjectType::KeyValue) - { - - } - - Filter::Filter(nlohmann::json& object) - : Filter() - { - - } - - bool FilterGroup::Draw(bool canBeRemoved) -{ - ImGui::PushID(this); - - bool removed = false; - auto name = fmt::format("Group {}", magic_enum::enum_name(m_Rule)); - ImGui::BeginGroupPanel(name.c_str()); - { - ComboEnum("Rule", &m_Rule); - - if (canBeRemoved) - { - ImGui::SameLine(); - if (ImGui::Button("Remove")) - removed = true; - } - - std::optional removeFilter = {}; - for (auto& filter : m_Filters) - { - if (filter->Draw()) - removeFilter = filter; - } - - if (removeFilter) - { - m_Filters.remove(*removeFilter); - delete* removeFilter; - } - - if (ImGui::Button("Add group", ImVec2(70, 0))) - m_Filters.push_back(new FilterGroup()); - - ImGui::SameLine(); - - if (ImGui::Button("Add filter", ImVec2(70, 0))) - m_Filters.push_back(new Filter()); - - } - ImGui::EndGroupPanel(); - - ImGui::PopID(); - - return removed; - } - - - bool FilterGroup::Execute(const sniffer::PacketInfo& info) - { - if (m_Filters.empty()) - return true; - - for (auto& filter : m_Filters) - { - bool result = filter->Execute(info); - if (m_Rule == Rule::AND && !result) - return false; - - if (m_Rule == Rule::NOT && result) - return false; - - if (m_Rule == Rule::OR && result) - return true; - } - return m_Rule != Rule::OR; - } - - - nlohmann::json FilterGroup::Serialize() - { - return {}; - } - - FilterGroup::FilterGroup() : - m_Rule(Rule::AND), - m_Filters() - { - - } - - FilterGroup::FilterGroup(nlohmann::json& object) : FilterGroup() - { - } - -} diff --git a/cheat-library/src/user/cheat/misc/sniffer/SnifferWindow.h b/cheat-library/src/user/cheat/misc/sniffer/SnifferWindow.h deleted file mode 100644 index f7c4d46..0000000 --- a/cheat-library/src/user/cheat/misc/sniffer/SnifferWindow.h +++ /dev/null @@ -1,109 +0,0 @@ -#pragma once -#include "PacketInfo.h" - -namespace sniffer -{ - - class IFilter - { - public: - virtual bool Draw(bool canBeRemoved = true) = 0; - virtual bool Execute(const sniffer::PacketInfo& info) = 0; - virtual nlohmann::json Serialize() = 0; - }; - - - class Filter : public IFilter - { - public: - enum class CompareType - { - Regex, Equal, Contains, Less, LessEqual, More, MoreEqual - }; - - enum class ObjectType - { - KeyValue, AnyKey, AnyValue, Name, PacketId - }; - - virtual bool Draw(bool canBeRemoved = true) override; - virtual bool Execute(const sniffer::PacketInfo& info) override; - - virtual nlohmann::json Serialize() override; - - Filter(); - Filter(nlohmann::json& object); - private: - - bool FindAnyValue(const sniffer::PacketInfo& info); - bool FindAnyKey(const sniffer::PacketInfo& info); - bool FindKeyValue(const sniffer::PacketInfo& info); - std::vector FindKeys(const sniffer::PacketInfo& info, bool onlyFirst = false); - - CompareType m_CompareType; - ObjectType m_ObjectType; - - std::string m_KeyPattern; - std::string m_ObjectPattern; - }; - - class FilterGroup : public IFilter - { - public: - - enum class Rule - { - AND, OR, NOT - }; - - virtual bool Draw(bool canBeRemoved = true) override; - virtual bool Execute(const sniffer::PacketInfo& info) override; - - virtual nlohmann::json Serialize() override; - - FilterGroup(); - FilterGroup(nlohmann::json& object); - - private: - Rule m_Rule; - std::list m_Filters; - - }; - - class SnifferWindow - { - public: - config::Field m_Show; - - SnifferWindow(SnifferWindow const&) = delete; - void operator=(SnifferWindow const&) = delete; - - static SnifferWindow& GetInstance(); - void OnPacketIO(const PacketInfo& info); - void Draw(); - - private: - enum class SortValue - { - Time, Name, Size, Id, Type - }; - - enum class SortType - { - Desc, Asc - }; - - SortValue m_SortValue; - SortType m_SortType; - - std::list m_CapturedPackets; - std::list m_CachedPackets; - - std::mutex m_CapturePacketLock; - - FilterGroup m_FilterGroup; - - SnifferWindow(); - }; -} - diff --git a/cheat-library/src/user/cheat/misc/sniffer/messages/PacketData.cpp b/cheat-library/src/user/cheat/misc/sniffer/messages/PacketData.cpp index d4b63ca..30c695d 100644 --- a/cheat-library/src/user/cheat/misc/sniffer/messages/PacketData.cpp +++ b/cheat-library/src/user/cheat/misc/sniffer/messages/PacketData.cpp @@ -5,36 +5,16 @@ void PacketData::Write(PipeTransfer* transfer) { transfer->Write(blockModeEnabled); transfer->Write(ioType); - transfer->Write(dataType); - transfer->Write(valid); - transfer->Write(parentPacketID); transfer->Write(messageID); transfer->Write(headRawData); transfer->Write(messageRawData); - - if (dataType == PacketDataType::Parsed) - { - transfer->Write(name); - transfer->Write(headJson); - transfer->Write(messageJson); - } } void PacketData::Read(PipeTransfer* transfer) { transfer->Read(blockModeEnabled); transfer->Read(ioType); - transfer->Read(dataType); - transfer->Read(valid); - transfer->Read(parentPacketID); transfer->Read(messageID); transfer->Read(headRawData); transfer->Read(messageRawData); - - if (dataType == PacketDataType::Parsed) - { - transfer->Read(name); - transfer->Read(headJson); - transfer->Read(messageJson); - } } diff --git a/cheat-library/src/user/cheat/visuals/Browser.h b/cheat-library/src/user/cheat/visuals/Browser.h index d6f0760..b325145 100644 --- a/cheat-library/src/user/cheat/visuals/Browser.h +++ b/cheat-library/src/user/cheat/visuals/Browser.h @@ -13,13 +13,13 @@ namespace cheat::feature static Browser& GetInstance(); const FeatureGUIInfo& GetGUIInfo() const override; void DrawMain() override; - virtual bool NeedStatusDraw() const override; + bool NeedStatusDraw() const override; void DrawStatus() override; private: SafeQueue toBeUpdate; SafeValue nextUpdate; - int f_DelayUpdate = 20.f; + int f_DelayUpdate = 20; void OnGameUpdate(); Browser(); }; diff --git a/cheat-library/src/user/cheat/visuals/PaimonFollow.h b/cheat-library/src/user/cheat/visuals/PaimonFollow.h index d5dd65d..3713d98 100644 --- a/cheat-library/src/user/cheat/visuals/PaimonFollow.h +++ b/cheat-library/src/user/cheat/visuals/PaimonFollow.h @@ -18,7 +18,7 @@ namespace cheat::feature private: SafeQueue toBeUpdate; SafeValue nextUpdate; - int f_DelayUpdate = 100.f; + int f_DelayUpdate = 100; void OnGameUpdate(); PaimonFollow(); diff --git a/cheat-library/src/user/cheat/visuals/ProfileChanger.h b/cheat-library/src/user/cheat/visuals/ProfileChanger.h index 6d157d4..b649af6 100644 --- a/cheat-library/src/user/cheat/visuals/ProfileChanger.h +++ b/cheat-library/src/user/cheat/visuals/ProfileChanger.h @@ -27,7 +27,7 @@ namespace cheat::feature const FeatureGUIInfo& GetGUIInfo() const override; void DrawMain() override; - virtual bool NeedStatusDraw() const override; + bool NeedStatusDraw() const override; void DrawStatus() override; bool CheckFile(const std::string& name); @@ -35,7 +35,7 @@ namespace cheat::feature private: SafeQueue toBeUpdate; SafeValue nextUpdate; - int f_DelayUpdate = 100.f; + int f_DelayUpdate = 100; void OnGameUpdate(); ProfileChanger(); diff --git a/injector/injector.vcxproj b/injector/injector.vcxproj index 09882c9..836096f 100644 --- a/injector/injector.vcxproj +++ b/injector/injector.vcxproj @@ -74,18 +74,18 @@ false - $(SolutionDir)bin\$(Configuration)\ - $(SolutionDir)bin\$(Configuration)\obj\$(ProjectName)\ + $(SolutionDir)bin\$(Configuration)-$(PlatformShortName)\ + $(SolutionDir)bin\$(Configuration)-$(PlatformShortName)\obj\$(ProjectName)\ false - $(SolutionDir)bin\$(Configuration)\ - $(SolutionDir)bin\$(Configuration)\obj\$(ProjectName)\ + $(SolutionDir)bin\$(Configuration)-$(PlatformShortName)\ + $(SolutionDir)bin\$(Configuration)-$(PlatformShortName)\obj\$(ProjectName)\ false - $(SolutionDir)bin\$(Configuration)\ - $(SolutionDir)bin\$(Configuration)\obj\$(ProjectName)\ + $(SolutionDir)bin\$(Configuration)-$(PlatformShortName)\ + $(SolutionDir)bin\$(Configuration)-$(PlatformShortName)\obj\$(ProjectName)\ @@ -99,6 +99,7 @@ ProgramDatabase false $(ProjectDir)include/;$(SolutionDir)cheat-base/src;$(SolutionDir)cheat-base/vendor/simpleIni/ + stdc17 Console @@ -128,6 +129,7 @@ true stdcpp17 $(ProjectDir)include/;$(SolutionDir)cheat-base/src;$(SolutionDir)cheat-base/vendor/simpleIni/ + stdc17 Console @@ -154,6 +156,7 @@ true stdcpp17 $(ProjectDir)include/;$(SolutionDir)cheat-base/src;$(SolutionDir)cheat-base/vendor/simpleIni/ + stdc17 Console diff --git a/injector/src/injector.cpp b/injector/src/injector.cpp index e3dcb0c..1fb7bf3 100644 --- a/injector/src/injector.cpp +++ b/injector/src/injector.cpp @@ -1,414 +1,14 @@ #include "injector.h" -#if defined(DISABLE_OUTPUT) -#define ILog(data, ...) -#define IPrintError(text, ...) -#else -#define ILog(text, ...) printf(text, __VA_ARGS__) -#define ILogError(text, ...) ILog(text, __VA_ARGS__); std::cout << "Error: " << util::GetLastErrorAsString() << std::endl -#endif +#include +#include -#ifdef _WIN64 -#define CURRENT_ARCH IMAGE_FILE_MACHINE_AMD64 -#else -#define CURRENT_ARCH IMAGE_FILE_MACHINE_I386 -#endif - -bool InjectDLL(HANDLE hProc, const std::string& filepath) +bool InjectDLL(HANDLE hProc, const std::string& filepath) { -#ifndef MANUAL_MAP - // Using LoadLibrary inject to be able to debug DLL in attached process. - // NOTE. For debug also needs disable mhyprot protection. (See protection-bypass.h in cheat-library) - // NOTE 2. Also need find way to disable antidebug. - bool result = LoadLibraryInject(hProc, filepath); +#ifdef MANUAL_MAP + bool result = ManualMapDLL(hProc, filepath); #else - std::ifstream file(filepath, std::ios::in | std::ios::binary | std::ios::ate); - if (!file.is_open()) - { - std::cout << "Error while reading DLL file!" << std::endl; - return false; - } - - std::streampos size = file.tellg(); - auto memblock = new char[size]; - file.seekg(0, std::ios::beg); - file.read(memblock, size); - file.close(); - - BYTE* fileContent = (BYTE*)memblock; - - // Manual map injection will help us to be like a assasin - bool result = ManualMapDll(hProc, fileContent, size); - - delete[] memblock; + bool result = LoadLibraryDLL(hProc, filepath); #endif - return result; -} - -#ifndef MANUAL_MAP -static bool LoadLibraryInject(HANDLE hProc, const std::string& dllpath) -{ - HMODULE hKernel = GetModuleHandle("kernel32.dll"); - if (hKernel == NULL) { - ILogError("[DLL Injection] Failed to get kernel32.dll module address.\n"); - return false; - } - - LPVOID pLoadLibrary = (LPVOID)GetProcAddress(hKernel, "LoadLibraryA"); - if (pLoadLibrary == NULL) { - ILogError("[DLL Injection] Failed to get LoadLibraryA address.\n"); - return false; - } - - LPVOID pDLLPath = VirtualAllocEx(hProc, NULL, strlen(dllpath.c_str()) + 1, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE); - if (pDLLPath == NULL) { - ILogError("[DLL Injection] Failed to allocate memory for DLLPath in target process.\n"); - return false; - } - - // Write the string name of our DLL in the memory allocated - BOOL writeResult = WriteProcessMemory(hProc, pDLLPath, dllpath.c_str(), strlen(dllpath.c_str()), NULL); - if (writeResult == FALSE) { - ILogError("[DLL Injection] Failed to write remote process memory.\n"); - return false; - } - - // Load our DLL by calling loadlibrary in the other process and passing our dll name - HANDLE hThread = CreateRemoteThread(hProc, NULL, NULL, (LPTHREAD_START_ROUTINE)pLoadLibrary, (LPVOID)pDLLPath, NULL, NULL); - if (hThread == NULL) { - ILogError("[DLL Injection] Failed to create remote thread.\n"); - VirtualFreeEx(hProc, pDLLPath, 0, MEM_RELEASE); - return false; - } - CloseHandle(hThread); - - // TODO: Add waiting for thread end and release unneccessary data. - // VirtualFreeEx(hProc, pDLLPath, 0, MEM_RELEASE); - - ILog("[DLL Injection] Successfully LoadLibraryA injection.\n"); - return true; -} - -#else - -bool ManualMapDll(HANDLE hProc, BYTE* pSrcData, SIZE_T FileSize, bool ClearHeader, bool ClearNonNeededSections, bool AdjustProtections, bool SEHExceptionSupport, DWORD fdwReason) { - IMAGE_NT_HEADERS* pOldNtHeader = nullptr; - IMAGE_OPTIONAL_HEADER* pOldOptHeader = nullptr; - IMAGE_FILE_HEADER* pOldFileHeader = nullptr; - BYTE* pTargetBase = nullptr; - - if (reinterpret_cast(pSrcData)->e_magic != 0x5A4D) { //"MZ" - ILog("[DLL injection] Invalid file\n"); - return false; - } - - pOldNtHeader = reinterpret_cast(pSrcData + reinterpret_cast(pSrcData)->e_lfanew); - pOldOptHeader = &pOldNtHeader->OptionalHeader; - pOldFileHeader = &pOldNtHeader->FileHeader; - - if (pOldFileHeader->Machine != CURRENT_ARCH) { - ILog("[DLL injection] Invalid platform.\n"); - return false; - } - - ILog("[DLL injection] File ok\n"); - - pTargetBase = reinterpret_cast(VirtualAllocEx(hProc, nullptr, pOldOptHeader->SizeOfImage, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE)); - if (!pTargetBase) { - ILogError("[DLL injection] Target process memory allocation failed (ex)\n"); - return false; - } - - DWORD oldp = 0; - VirtualProtectEx(hProc, pTargetBase, pOldOptHeader->SizeOfImage, PAGE_EXECUTE_READWRITE, &oldp); - - MANUAL_MAPPING_DATA data{ 0 }; - data.pLoadLibraryA = LoadLibraryA; - data.pGetProcAddress = GetProcAddress; -#ifdef _WIN64 - data.pRtlAddFunctionTable = (f_RtlAddFunctionTable)RtlAddFunctionTable; -#else - SEHExceptionSupport = false; -#endif - data.pbase = pTargetBase; - data.fdwReasonParam = fdwReason; - data.SEHSupport = SEHExceptionSupport; - - //File header - if (!WriteProcessMemory(hProc, pTargetBase, pSrcData, 0x1000, nullptr)) { //only first 0x1000 bytes for the header - ILogError("[DLL injection] Can't write file header.\n"); - - VirtualFreeEx(hProc, pTargetBase, 0, MEM_RELEASE); - return false; - } - - IMAGE_SECTION_HEADER* pSectionHeader = IMAGE_FIRST_SECTION(pOldNtHeader); - for (UINT i = 0; i != pOldFileHeader->NumberOfSections; ++i, ++pSectionHeader) { - if (pSectionHeader->SizeOfRawData) { - if (!WriteProcessMemory(hProc, pTargetBase + pSectionHeader->VirtualAddress, pSrcData + pSectionHeader->PointerToRawData, pSectionHeader->SizeOfRawData, nullptr)) { - ILogError("[DLL injection] Can't map sections.\n"); - VirtualFreeEx(hProc, pTargetBase, 0, MEM_RELEASE); - return false; - } - } - } - - //Mapping params - BYTE* MappingDataAlloc = reinterpret_cast(VirtualAllocEx(hProc, nullptr, sizeof(MANUAL_MAPPING_DATA), MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE)); - if (!MappingDataAlloc) { - ILogError("[DLL injection] Target process mapping allocation failed (ex).\n"); - VirtualFreeEx(hProc, pTargetBase, 0, MEM_RELEASE); - return false; - } - - if (!WriteProcessMemory(hProc, MappingDataAlloc, &data, sizeof(MANUAL_MAPPING_DATA), nullptr)) { - ILogError("[DLL injection] Can't write mapping.\n"); - VirtualFreeEx(hProc, pTargetBase, 0, MEM_RELEASE); - VirtualFreeEx(hProc, MappingDataAlloc, 0, MEM_RELEASE); - return false; - } - - //Shell code - void* pShellcode = VirtualAllocEx(hProc, nullptr, 0x1000, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE); - if (!pShellcode) { - ILogError("[DLL injection] Memory shellcode allocation failed (ex).\n"); - VirtualFreeEx(hProc, pTargetBase, 0, MEM_RELEASE); - VirtualFreeEx(hProc, MappingDataAlloc, 0, MEM_RELEASE); - return false; - } - - if (!WriteProcessMemory(hProc, pShellcode, Shellcode, 0x1000, nullptr)) { - ILogError("[DLL injection] Can't write shellcode.\n"); - VirtualFreeEx(hProc, pTargetBase, 0, MEM_RELEASE); - VirtualFreeEx(hProc, MappingDataAlloc, 0, MEM_RELEASE); - VirtualFreeEx(hProc, pShellcode, 0, MEM_RELEASE); - return false; - } - - ILog("[DLL injection] Mapped DLL at %p\n", pTargetBase); - ILog("[DLL injection] Mapping info at %p\n", MappingDataAlloc); - ILog("[DLL injection] Shell code at %p\n", pShellcode); - - ILog("[DLL injection] Data allocated\n"); - -#ifdef _DEBUG - ILog("[DLL injection] My shellcode pointer %p\n", Shellcode); - ILog("[DLL injection] Target point %p\n", pShellcode); -#endif - - HANDLE hThread = CreateRemoteThread(hProc, nullptr, 0, reinterpret_cast(pShellcode), MappingDataAlloc, 0, nullptr); - if (!hThread) { - ILogError("[DLL injection] Thread creation failed.\n"); - VirtualFreeEx(hProc, pTargetBase, 0, MEM_RELEASE); - VirtualFreeEx(hProc, MappingDataAlloc, 0, MEM_RELEASE); - VirtualFreeEx(hProc, pShellcode, 0, MEM_RELEASE); - return false; - } - CloseHandle(hThread); - - ILog("[DLL injection] Thread created at: %p, waiting for return...\n", pShellcode); - - HINSTANCE hCheck = NULL; - while (!hCheck) { - DWORD exitcode = 0; - GetExitCodeProcess(hProc, &exitcode); - if (exitcode != STILL_ACTIVE) { - ILog("[DLL injection] Process crashed, exit code: 0x%x\n", exitcode); - return false; - } - - MANUAL_MAPPING_DATA data_checked{ 0 }; - ReadProcessMemory(hProc, MappingDataAlloc, &data_checked, sizeof(data_checked), nullptr); - hCheck = data_checked.hMod; - - if (hCheck == (HINSTANCE)0x404040) { - ILog("[DLL injection] Wrong mapping ptr.\n"); - VirtualFreeEx(hProc, pTargetBase, 0, MEM_RELEASE); - VirtualFreeEx(hProc, MappingDataAlloc, 0, MEM_RELEASE); - VirtualFreeEx(hProc, pShellcode, 0, MEM_RELEASE); - return false; - } - else if (hCheck == (HINSTANCE)0x505050) { - ILog("[DLL injection] WARNING: Exception support failed!\n"); - } - - Sleep(10); - } - - BYTE* emptyBuffer = (BYTE*)malloc(1024 * 1024 * 20); - if (emptyBuffer == nullptr) { - ILog("[DLL injection] Unable to allocate memory\n"); - return false; - } - memset(emptyBuffer, 0, 1024 * 1024 * 20); - - //CLEAR PE HEAD - if (ClearHeader) { - if (!WriteProcessMemory(hProc, pTargetBase, emptyBuffer, 0x1000, nullptr)) { - ILogError("[DLL injection] WARNING!: Can't clear HEADER\n"); - } - } - //END CLEAR PE HEAD - - - if (ClearNonNeededSections) { - pSectionHeader = IMAGE_FIRST_SECTION(pOldNtHeader); - for (UINT i = 0; i != pOldFileHeader->NumberOfSections; ++i, ++pSectionHeader) { - if (pSectionHeader->Misc.VirtualSize) { - if ((SEHExceptionSupport ? 0 : strcmp((char*)pSectionHeader->Name, ".pdata") == 0) || - strcmp((char*)pSectionHeader->Name, ".rsrc") == 0 || - strcmp((char*)pSectionHeader->Name, ".reloc") == 0) { - ILog("[DLL injection] Processing %s removal\n", pSectionHeader->Name); - if (!WriteProcessMemory(hProc, pTargetBase + pSectionHeader->VirtualAddress, emptyBuffer, pSectionHeader->Misc.VirtualSize, nullptr)) { - ILogError("[DLL injection] Can't clear section %s.\n", pSectionHeader->Name); - } - } - } - } - } - - if (AdjustProtections) { - pSectionHeader = IMAGE_FIRST_SECTION(pOldNtHeader); - for (UINT i = 0; i != pOldFileHeader->NumberOfSections; ++i, ++pSectionHeader) { - if (pSectionHeader->Misc.VirtualSize) { - DWORD old = 0; - DWORD newP = PAGE_READONLY; - - if ((pSectionHeader->Characteristics & IMAGE_SCN_MEM_WRITE) > 0) { - newP = PAGE_READWRITE; - } - else if ((pSectionHeader->Characteristics & IMAGE_SCN_MEM_EXECUTE) > 0) { - newP = PAGE_EXECUTE_READ; - } - if (VirtualProtectEx(hProc, pTargetBase + pSectionHeader->VirtualAddress, pSectionHeader->Misc.VirtualSize, newP, &old)) { - ILog("[DLL injection] Section %s set as %lX\n", (char*)pSectionHeader->Name, newP); - } - else { - ILog("[DLL injection] FAIL: section %s not set as %lX\n", (char*)pSectionHeader->Name, newP); - } - } - } - DWORD old = 0; - VirtualProtectEx(hProc, pTargetBase, IMAGE_FIRST_SECTION(pOldNtHeader)->VirtualAddress, PAGE_READONLY, &old); - } - - if (!WriteProcessMemory(hProc, pShellcode, emptyBuffer, 0x1000, nullptr)) { - ILog("[DLL injection] WARNING: Can't clear shellcode\n"); - } - if (!VirtualFreeEx(hProc, pShellcode, 0, MEM_RELEASE)) { - ILog("[DLL injection] WARNING: can't release shell code memory\n"); - } - if (!VirtualFreeEx(hProc, MappingDataAlloc, 0, MEM_RELEASE)) { - ILog("[DLL injection] WARNING: can't release mapping data memory\n"); - } - - return true; -} - -#define RELOC_FLAG32(RelInfo) ((RelInfo >> 0x0C) == IMAGE_REL_BASED_HIGHLOW) -#define RELOC_FLAG64(RelInfo) ((RelInfo >> 0x0C) == IMAGE_REL_BASED_DIR64) - -#ifdef _WIN64 -#define RELOC_FLAG RELOC_FLAG64 -#else -#define RELOC_FLAG RELOC_FLAG32 -#endif - -#pragma runtime_checks( "", off ) -#pragma optimize( "", off ) -void __stdcall Shellcode(MANUAL_MAPPING_DATA* pData) { - - if (!pData) { - pData->hMod = (HINSTANCE)0x404040; - return; - } - - BYTE* pBase = pData->pbase; - auto* pOpt = &reinterpret_cast(pBase + reinterpret_cast((uintptr_t)pBase)->e_lfanew)->OptionalHeader; - - auto _LoadLibraryA = pData->pLoadLibraryA; - auto _GetProcAddress = pData->pGetProcAddress; -#ifdef _WIN64 - auto _RtlAddFunctionTable = pData->pRtlAddFunctionTable; -#endif - auto _DllMain = reinterpret_cast(pBase + pOpt->AddressOfEntryPoint); - - - BYTE* LocationDelta = pBase - pOpt->ImageBase; - if (LocationDelta) { - if (pOpt->DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].Size) { - auto* pRelocData = reinterpret_cast(pBase + pOpt->DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress); - const auto* pRelocEnd = reinterpret_cast(reinterpret_cast(pRelocData) + pOpt->DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].Size); - while (pRelocData < pRelocEnd && pRelocData->SizeOfBlock) { - UINT AmountOfEntries = (pRelocData->SizeOfBlock - sizeof(IMAGE_BASE_RELOCATION)) / sizeof(WORD); - WORD* pRelativeInfo = reinterpret_cast(pRelocData + 1); - - for (UINT i = 0; i != AmountOfEntries; ++i, ++pRelativeInfo) { - if (RELOC_FLAG(*pRelativeInfo)) { - UINT_PTR* pPatch = reinterpret_cast(pBase + pRelocData->VirtualAddress + ((*pRelativeInfo) & 0xFFF)); - *pPatch += reinterpret_cast(LocationDelta); - } - } - pRelocData = reinterpret_cast(reinterpret_cast(pRelocData) + pRelocData->SizeOfBlock); - } - } - } - - if (pOpt->DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].Size) { - auto* pImportDescr = reinterpret_cast(pBase + pOpt->DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress); - while (pImportDescr->Name) { - char* szMod = reinterpret_cast(pBase + pImportDescr->Name); - HINSTANCE hDll = _LoadLibraryA(szMod); - - ULONG_PTR* pThunkRef = reinterpret_cast(pBase + pImportDescr->OriginalFirstThunk); - ULONG_PTR* pFuncRef = reinterpret_cast(pBase + pImportDescr->FirstThunk); - - if (!pThunkRef) - pThunkRef = pFuncRef; - - for (; *pThunkRef; ++pThunkRef, ++pFuncRef) { - if (IMAGE_SNAP_BY_ORDINAL(*pThunkRef)) { - *pFuncRef = (ULONG_PTR)_GetProcAddress(hDll, reinterpret_cast(*pThunkRef & 0xFFFF)); - } - else { - auto* pImport = reinterpret_cast(pBase + (*pThunkRef)); - *pFuncRef = (ULONG_PTR)_GetProcAddress(hDll, pImport->Name); - } - } - ++pImportDescr; - } - } - - if (pOpt->DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].Size) { - auto* pTLS = reinterpret_cast(pBase + pOpt->DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].VirtualAddress); - auto* pCallback = reinterpret_cast(pTLS->AddressOfCallBacks); - for (; pCallback && *pCallback; ++pCallback) - (*pCallback)(pBase, DLL_PROCESS_ATTACH, nullptr); - } - - bool ExceptionSupportFailed = false; - -#ifdef _WIN64 - - if (pData->SEHSupport) { - auto excep = pOpt->DataDirectory[IMAGE_DIRECTORY_ENTRY_EXCEPTION]; - if (excep.Size) { - if (!_RtlAddFunctionTable( - reinterpret_cast(pBase + excep.VirtualAddress), - excep.Size / sizeof(IMAGE_RUNTIME_FUNCTION_ENTRY), (DWORD64)pBase)) { - ExceptionSupportFailed = true; - } - } - } - -#endif - - _DllMain(pBase, pData->fdwReasonParam, nullptr); - - if (ExceptionSupportFailed) - pData->hMod = reinterpret_cast(0x505050); - else - pData->hMod = reinterpret_cast(pBase); -} -#endif // MANUAL_MAP \ No newline at end of file +} \ No newline at end of file diff --git a/injector/src/injector.h b/injector/src/injector.h index e83bddf..3c31a03 100644 --- a/injector/src/injector.h +++ b/injector/src/injector.h @@ -3,46 +3,10 @@ #include #include #include -#include -#include #include #include "util.h" -using f_LoadLibraryA = HINSTANCE(WINAPI*)(const char* lpLibFilename); -using f_GetProcAddress = FARPROC(WINAPI*)(HMODULE hModule, LPCSTR lpProcName); -using f_DLL_ENTRY_POINT = BOOL(WINAPI*)(void* hDll, DWORD dwReason, void* pReserved); +// #define MANUAL_MAP -#ifdef _WIN64 -using f_RtlAddFunctionTable = BOOL(WINAPIV*)(PRUNTIME_FUNCTION FunctionTable, DWORD EntryCount, DWORD64 BaseAddress); -#endif - -struct ConfigInfo { - bool disableMhyprot; - bool consoleLogging; -}; - -struct MANUAL_MAPPING_DATA -{ - f_LoadLibraryA pLoadLibraryA; - f_GetProcAddress pGetProcAddress; -#ifdef _WIN64 - f_RtlAddFunctionTable pRtlAddFunctionTable; -#endif - BYTE* pbase; - HINSTANCE hMod; - DWORD fdwReasonParam; - LPVOID reservedParam; - BOOL SEHSupport; -}; - - -bool InjectDLL(HANDLE hProc, const std::string& filepath); - -#ifdef MANUAL_MAP -// Note: Exception support only x64 with build params /EHa or /EHc -bool ManualMapDll(HANDLE hProc, BYTE* pSrcData, SIZE_T FileSize, bool ClearHeader = false, bool ClearNonNeededSections = false, bool AdjustProtections = true, bool SEHExceptionSupport = false, DWORD fdwReason = DLL_PROCESS_ATTACH); -void __stdcall Shellcode(MANUAL_MAPPING_DATA* pData); -#else -static bool LoadLibraryInject(HANDLE hProc, const std::string& dllpath); -#endif \ No newline at end of file +bool InjectDLL(HANDLE hProc, const std::string& filepath); \ No newline at end of file