From e85001b45f5a7f775922d7bd71ac6d158c6c8aee Mon Sep 17 00:00:00 2001 From: RainbowHype123 Date: Tue, 14 Jul 2026 16:35:12 -0700 Subject: [PATCH 1/3] Add Multi Icons Support + 2 Unicode Ports + Update DarkExt.json Redo of my original update for the same things, now in the most up-to-date version of the repo (as of the time I'm writing this). --- .gitignore | 2 + AllExts VS2017.sln | 2 +- AllExts VS2019.sln | 2 +- DarkEdif/DarkEdif Template/DarkExt.json | 12 +- DarkEdif/DarkEdif Template/Edittime.cpp | 4 + DarkEdif/DarkEdif Template/Ext.rc | 3 + DarkEdif/DarkEdif Template/Image.png | Bin 0 -> 1306 bytes DarkEdif/DarkEdif Template/Resource.h | 3 + DarkEdif/Inc/Shared/Edif.hpp | 4 + DarkEdif/Lib/Shared/DarkEdif.cpp | 1 + DarkEdif/Lib/Shared/Edif.cpp | 47 + MMF2SDK/VOLINFO/Ext.rc | 214 ----- MMF2SDK/VOLINFO/VOLINFO Example.mfa | Bin 217415 -> 0 bytes MMF2SDK/VOLINFO/VOLINFO.vcxproj | 103 --- {MMF2SDK => MMF2SDK_Unicode}/VOLINFO/Common.h | 16 +- .../VOLINFO/Edittime.cpp | 113 +-- .../VOLINFO/Examples/VOLINFO Example.mfa | Bin 0 -> 113551 bytes {MMF2SDK => MMF2SDK_Unicode}/VOLINFO/Ext.def | 0 MMF2SDK_Unicode/VOLINFO/Ext.rc | 215 +++++ .../VOLINFO/General.cpp | 63 +- .../VOLINFO/MMF2SDK - VOLINFO.vcxproj | 678 ++++++++++++++ .../VOLINFO/MMF2SDK - VOLINFO.vcxproj.filters | 12 +- {MMF2SDK => MMF2SDK_Unicode}/VOLINFO/Main.cpp | 22 +- {MMF2SDK => MMF2SDK_Unicode}/VOLINFO/Main.h | 20 +- .../VOLINFO/Resource.h | 20 +- .../VOLINFO/Runtime.cpp | 98 +- .../VOLINFO/res/EXTICON.BMP | Bin .../VOLINFO/res/EXTIMG.BMP | Bin rSDK/Inc/zconf.h | 67 +- rSDK/Inc/zlib.h | 845 ++++++++++-------- rSDK/Lib/zlib.lib | Bin 331624 -> 344806 bytes rSDK/ZlibStream/Data.h | 28 +- rSDK/ZlibStream/Edittime.cpp | 195 ++-- rSDK/ZlibStream/Ext.rc | 8 +- rSDK/ZlibStream/General.cpp | 65 +- .../{EXTICON.BMP => Icons/Icon.bmp} | Bin rSDK/ZlibStream/{EXTIMG.BMP => Icons/Img.bmp} | Bin rSDK/ZlibStream/Information.h | 12 +- rSDK/ZlibStream/Main.cpp | 599 +++++++------ rSDK/ZlibStream/Runtime.cpp | 68 +- 40 files changed, 2203 insertions(+), 1338 deletions(-) create mode 100644 DarkEdif/DarkEdif Template/Image.png delete mode 100644 MMF2SDK/VOLINFO/Ext.rc delete mode 100644 MMF2SDK/VOLINFO/VOLINFO Example.mfa delete mode 100644 MMF2SDK/VOLINFO/VOLINFO.vcxproj rename {MMF2SDK => MMF2SDK_Unicode}/VOLINFO/Common.h (87%) rename {MMF2SDK => MMF2SDK_Unicode}/VOLINFO/Edittime.cpp (95%) create mode 100644 MMF2SDK_Unicode/VOLINFO/Examples/VOLINFO Example.mfa rename {MMF2SDK => MMF2SDK_Unicode}/VOLINFO/Ext.def (100%) create mode 100644 MMF2SDK_Unicode/VOLINFO/Ext.rc rename {MMF2SDK => MMF2SDK_Unicode}/VOLINFO/General.cpp (90%) create mode 100644 MMF2SDK_Unicode/VOLINFO/MMF2SDK - VOLINFO.vcxproj rename MMF2SDK/VOLINFO/VOLINFO.vcxproj.filters => MMF2SDK_Unicode/VOLINFO/MMF2SDK - VOLINFO.vcxproj.filters (98%) rename {MMF2SDK => MMF2SDK_Unicode}/VOLINFO/Main.cpp (88%) rename {MMF2SDK => MMF2SDK_Unicode}/VOLINFO/Main.h (86%) rename {MMF2SDK => MMF2SDK_Unicode}/VOLINFO/Resource.h (78%) rename {MMF2SDK => MMF2SDK_Unicode}/VOLINFO/Runtime.cpp (86%) rename {MMF2SDK => MMF2SDK_Unicode}/VOLINFO/res/EXTICON.BMP (100%) rename {MMF2SDK => MMF2SDK_Unicode}/VOLINFO/res/EXTIMG.BMP (100%) rename rSDK/ZlibStream/{EXTICON.BMP => Icons/Icon.bmp} (100%) rename rSDK/ZlibStream/{EXTIMG.BMP => Icons/Img.bmp} (100%) diff --git a/.gitignore b/.gitignore index 01880e6d..ee78e3ef 100644 --- a/.gitignore +++ b/.gitignore @@ -204,3 +204,5 @@ DarkEdif*.sln *.sdf *.db *.001 +*.mf2backup.mfa +*.mfacfg \ No newline at end of file diff --git a/AllExts VS2017.sln b/AllExts VS2017.sln index 52d95c11..8428a228 100644 --- a/AllExts VS2017.sln +++ b/AllExts VS2017.sln @@ -45,7 +45,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BitMask", "MMF2SDK\Bit Mask EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PackX", "MMF2SDK\PackX\PackX.vcxproj", "{29B44557-9BC0-43BC-BBF6-0AB4C9B69198}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VOLINFO", "MMF2SDK\VOLINFO\VOLINFO.vcxproj", "{2196C17D-EDAC-43AD-AF88-1D7D6CBD9145}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VOLINFO", "MMF2SDK_Unicode\VOLINFO\VOLINFO.vcxproj", "{2196C17D-EDAC-43AD-AF88-1D7D6CBD9145}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Stochastic Utility", "Edif\Stochastic Utility\Stochastic Utility.vcxproj", "{5BC0EA76-0F7D-4F52-ADC9-CE378742E9B9}" EndProject diff --git a/AllExts VS2019.sln b/AllExts VS2019.sln index 56346ce9..01928f41 100644 --- a/AllExts VS2019.sln +++ b/AllExts VS2019.sln @@ -47,7 +47,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BitMask", "MMF2SDK\Bit Mask EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PackX", "MMF2SDK\PackX\PackX.vcxproj", "{29B44557-9BC0-43BC-BBF6-0AB4C9B69198}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VOLINFO", "MMF2SDK\VOLINFO\VOLINFO.vcxproj", "{2196C17D-EDAC-43AD-AF88-1D7D6CBD9145}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VOLINFO", "MMF2SDK_Unicode\VOLINFO\VOLINFO.vcxproj", "{2196C17D-EDAC-43AD-AF88-1D7D6CBD9145}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Stochastic Utility", "Edif\Stochastic Utility\Stochastic Utility.vcxproj", "{5BC0EA76-0F7D-4F52-ADC9-CE378742E9B9}" EndProject diff --git a/DarkEdif/DarkEdif Template/DarkExt.json b/DarkEdif/DarkEdif Template/DarkExt.json index 3cb749d2..437f7d78 100644 --- a/DarkEdif/DarkEdif Template/DarkExt.json +++ b/DarkEdif/DarkEdif Template/DarkExt.json @@ -77,6 +77,11 @@ { "Type": "FolderEnd" }, + { + "Title": "Props outside folder", + "Info": "This blue header is called a group inside the DarkExt.json file.", + "Type": "Group" + }, { "Title": "Static text 1", "Info": "Blank text", @@ -139,7 +144,7 @@ "About": { "Name": "Exemple objet", "Author": "Votre Nom", - "Copyright": "Copyright \u00A9 2022 par Votre Nom", + "Copyright": "Copyright \u00A9 2026 par Votre Nom", "Comment": "Une ou deux phrases pour décrire votre poste", "Help": "Help/Example.chm", "URL": "http://www.example.com/" @@ -209,6 +214,11 @@ { "Type": "FolderEnd" }, + { + "Title": "Groupe", + "Info": "Voir le fichier DarkExt.json.", + "Type": "Group" + }, { "Title": "Texte statique 1", "Info": "Texte vide", diff --git a/DarkEdif/DarkEdif Template/Edittime.cpp b/DarkEdif/DarkEdif Template/Edittime.cpp index 95885540..dbb92370 100644 --- a/DarkEdif/DarkEdif Template/Edittime.cpp +++ b/DarkEdif/DarkEdif Template/Edittime.cpp @@ -19,7 +19,11 @@ int FusionAPI MakeIconEx(mv * mV, cSurface * pIconSf, TCHAR * lpName, ObjInfo * { #pragma DllExportHint pIconSf->Delete(); + #ifdef DARKEDIF_MULTIPLE_ICONS + pIconSf->Clone(*Edif::SDK->Image); + #else pIconSf->Clone(*Edif::SDK->Icon); + #endif pIconSf->SetTransparentColor(RGB(255, 0, 255)); return 0; diff --git a/DarkEdif/DarkEdif Template/Ext.rc b/DarkEdif/DarkEdif Template/Ext.rc index 7a032d2a..55f2825d 100644 --- a/DarkEdif/DarkEdif Template/Ext.rc +++ b/DarkEdif/DarkEdif Template/Ext.rc @@ -154,6 +154,9 @@ END #if EditorBuild IDR_EDIF_ICON Edif "Icon.png" +#ifdef DARKEDIF_MULTIPLE_ICONS +IDR_EDIF_IMAGE Edif "Image.png" +#endif #if !defined(DARKEXT_JSON_FILE_EXTERNAL) IDR_EDIF_JSON Edif "DarkExt.json" #endif diff --git a/DarkEdif/DarkEdif Template/Image.png b/DarkEdif/DarkEdif Template/Image.png new file mode 100644 index 0000000000000000000000000000000000000000..e5e942d41a8b9fe51c04ec0c6e4bc456e4650cca GIT binary patch literal 1306 zcmV+#1?BpQP)$bC{XBax3jymvokw0K5Qv%fwo&zUO35@`Tyr~ z&iT${zJYtV%MbvntE;W-?Ck$dR1`&gKA!*}0Zf@Ph3D6-NnDivJ7FW9IMy9GGI&k` z@cDc~C={|>PA9*&t8|1+BvAxF(_>hsIgBW77=vrO-Hy$6!?h9D2G@ekhQppRxG#MG zJnj_g>gsOXGnCkjg{`x_CeI#_=u{<~f=)ObAsSHu$aD*+hJY%E5)X(HnI0!Ly8}hl zkwg)RI6+wjDFs)mleDx{LYm0#5}h{|3Yh%sBL0WVjvl zDHdip1sfukB_Rn;LaN0Vf0$hB6R0eV0kE(3n~_qtHURML{_lut7OyVSF?4~_`A*80 z=iturpv3Jgnw7??Wi$Bf|ijDRZ}hr@|YO2>3$5l5sy>S4npaSHQHI8JLmoNPWfIQ4FYTfTzpXl=W|ys0MJN@OsyflMG1K^iDC9n4fPT?3U0F%S7u{8D)L4v-g=estdLo696@>DFR`MnXxYixO@Ar?{{kRPP^aP^J zncl_P$J!wX#D-J|?w{1h`X^iH4;%dW!}sH*9lwF~FTE(p5tG#m&ybTLC%TT2h&~4E z3Y(Dxh33;|sjaOYSNBO7065!z3Adx4(t?&m3K|fGnfG0@o3V#7Ix;1DLS*9U0iM;{!oeb EdittimeProperties; #ifndef NOPROPS diff --git a/DarkEdif/Lib/Shared/DarkEdif.cpp b/DarkEdif/Lib/Shared/DarkEdif.cpp index 00b3556b..190b4196 100644 --- a/DarkEdif/Lib/Shared/DarkEdif.cpp +++ b/DarkEdif/Lib/Shared/DarkEdif.cpp @@ -5,6 +5,7 @@ #include "Extension.hpp" #include #include +#include #ifdef _WIN32 extern HINSTANCE hInstLib; diff --git a/DarkEdif/Lib/Shared/Edif.cpp b/DarkEdif/Lib/Shared/Edif.cpp index 2ea50e53..9f9fca8b 100644 --- a/DarkEdif/Lib/Shared/Edif.cpp +++ b/DarkEdif/Lib/Shared/Edif.cpp @@ -699,6 +699,53 @@ Edif::SDKClass::SDKClass(mv * mV, json_value &_json) : json (_json) DarkEdif::MsgBox::Error(_T("DarkEdif error"), _T("Blitting to ext icon surface failed. Last error: %i."), tempIcon->GetLastError()); } ExtIcon = new DarkEdif::Surface(nullptr, Icon); + + #ifdef DARKEDIF_MULTIPLE_ICONS + Image = new cSurface(); + char * ImageData; + size_t ImageSize; + + int resultTwo = Edif::GetDependency (ImageData, ImageSize, _T("png"), IDR_EDIF_IMAGE); + if (resultTwo != Edif::DependencyNotFound) + { + CInputMemFile * File = CInputMemFile::NewInstance(); + File->Create((LPBYTE)ImageData, ImageSize); + + const std::unique_ptr tempImage = std::make_unique(); + const bool loadedOK = ImportImageFromInputFile(mV->ImgFilterMgr, File, tempImage.get(), NULL, 0); + if (!loadedOK) + { + // Read PNG bit depth: Skip 8 byte PNG header, IHDR 4 byte chunk length/type, img width/height, + // and then get bit depth byte. + // 4 bit or less bit depth is not loadable by Fusion's PNG filter. + const std::uint8_t bitDepth = File->GetMemBuffer()[8 + 4 + 4 + 4 + 4]; + + if (bitDepth <= 4) + DarkEdif::MsgBox::Error(_T("Failed to load ext image"), _T("" PROJECT_NAME "'s Image.png uses a bit depth of %hhu, which is too small."), bitDepth); + else + DarkEdif::MsgBox::Error(_T("Failed to load ext image"), _T("" PROJECT_NAME "'s Image.png failed to load.")); + } + + File->Delete(); + + if (!tempImage->HasAlpha()) + tempImage->SetTransparentColor(RGB(255, 0, 255)); + + if (resultTwo != Edif::DependencyWasResource) + free(ImageData); + + Image->Create(tempImage->GetWidth(), tempImage->GetHeight(), proto); + + if (!tempImage->HasAlpha()) + Image->SetTransparentColor(RGB(255, 0, 255)); + else + Image->CreateAlpha(); + + if (loadedOK && tempImage->Blit(*Image) == FALSE) + DarkEdif::MsgBox::Error(_T("DarkEdif error"), _T("Blitting to ext image surface failed. Last error: %i."), tempImage->GetLastError()); + } + ExtImage = new DarkEdif::Surface(nullptr, Image); + #endif } #if USE_DARKEDIF_UPDATE_CHECKER diff --git a/MMF2SDK/VOLINFO/Ext.rc b/MMF2SDK/VOLINFO/Ext.rc deleted file mode 100644 index 99921718..00000000 --- a/MMF2SDK/VOLINFO/Ext.rc +++ /dev/null @@ -1,214 +0,0 @@ -//Microsoft Developer Studio generated resource script. -// -#include "resource.h" - -// Wraps str into double-quotes, like "str". This function cannot be defined via /D. -#define sub_asStr(str) "" #str "" -#define asStr(str) sub_asStr(str) - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "..\Inc\ccx.h" -#define APSTUDIO_HIDDEN_SYMBOLS -#include -#undef APSTUDIO_HIDDEN_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif // _WIN32 - -#ifndef _MAC -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -1 VERSIONINFO - FILEVERSION 1,0,0,EXTENSION_VERSION - PRODUCTVERSION 1,0,0,EXTENSION_VERSION - FILEFLAGSMASK VS_FFI_FILEFLAGSMASK -#ifdef _DEBUG - FILEFLAGS VS_FF_DEBUG -#else - FILEFLAGS 0 -#endif - FILEOS VOS__WINDOWS32 - FILETYPE VFT_DLL - FILESUBTYPE VFT2_UNKNOWN -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904e4" - BEGIN - VALUE "ProductName", PROJECT_NAME "\0" - VALUE "CompanyName", COMPANY_NAME "\0" - VALUE "FileDescription", PROJECT_NAME ", " asStr(CONFIG) " build " asStr(EXTENSION_VERSION) ".\0" - VALUE "FileVersion", "2.00" "\0" - VALUE "InternalName", PROJECT_NAME ".mfx\0" - VALUE "LegalCopyright", "Copyright \xA9 " YEAR " " COMPANY_NAME "\0" - VALUE "OriginalFilename", PROJECT_NAME ".mfx\0" - VALUE "ProductVersion", "Build " asStr(EXTENSION_VERSION) ", date " BUILD_DATE ".\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0409, 1252 - END -END - -#endif // !_MAC - - -///////////////////////////////////////////////////////////////////////////// -// -// Data -// - -KPX_MAGICNUMBER RCDATA -BEGIN - 0x9978, 0x8989 -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Bitmap -// - -#if defined(APSTUDIO_INVOKED) || defined(EDITOR) -#if defined(APSTUDIO_INVOKED) -EXO_ICON$(EDITOR) BITMAP "RES\\EXTICON.BMP" -#else -EXO_ICON BITMAP "RES\\EXTICON.BMP" -#endif -#endif -#if defined(APSTUDIO_INVOKED) || defined(EDITOR) -#if defined(APSTUDIO_INVOKED) -EXO_IMAGE$(EDITOR) BITMAP "RES\\EXTIMG.BMP" -#else -EXO_IMAGE BITMAP "RES\\EXTIMG.BMP" -#endif -#endif - -///////////////////////////////////////////////////////////////////////////// -// -// Menu -// - -#if defined(APSTUDIO_INVOKED) || defined(EDITOR) -#if defined(APSTUDIO_INVOKED) -MN_CONDITIONS$(EDITOR) MENU -#else -MN_CONDITIONS MENU -#endif -BEGIN - MENUITEM "", 65535 -END -#endif - -#if defined(APSTUDIO_INVOKED) || defined(EDITOR) -#if defined(APSTUDIO_INVOKED) -MN_ACTIONS$(EDITOR) MENU -#else -MN_ACTIONS MENU -#endif -BEGIN - MENUITEM "", 65535 -END -#endif - -#if defined(APSTUDIO_INVOKED) || defined(EDITOR) -#if defined(APSTUDIO_INVOKED) -MN_EXPRESSIONS$(EDITOR) MENU -#else -MN_EXPRESSIONS MENU -#endif -BEGIN - POPUP "" - BEGIN - MENUITEM "Get Volume Label", IDMN_EXPRESSION2 - END -END -#endif - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""..\\Inc\\ccx.h""\r\n" - "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" - "#include \r\n" - "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE -BEGIN - KPX_MARK "MF2" - KPX_NAME "NRG753 Volume Information" -END - -STRINGTABLE -BEGIN - M_EXPRESSION2 "VolInfo$(" -END - -STRINGTABLE -BEGIN - IDST_OBJNAME "NRG753 Volume Information" - IDST_AUTHOR "Jack Webster" - IDST_COPYRIGHT "Copyright \xA9 2006 Jack Webster" - IDST_COMMENT "Given a root path, will give the volumes label. By request of NRG753" - IDST_HTTP "(No webpage right now)" -END - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/MMF2SDK/VOLINFO/VOLINFO Example.mfa b/MMF2SDK/VOLINFO/VOLINFO Example.mfa deleted file mode 100644 index 8444a92917fe5ddf769a123a6d9736b7d419741f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 217415 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 diff --git a/MMF2SDK/VOLINFO/VOLINFO.vcxproj b/MMF2SDK/VOLINFO/VOLINFO.vcxproj deleted file mode 100644 index 3532a72d..00000000 --- a/MMF2SDK/VOLINFO/VOLINFO.vcxproj +++ /dev/null @@ -1,103 +0,0 @@ - - - - - Debug - Win32 - - - Edittime - Win32 - - - Runtime - Win32 - - - Vitalize - Win32 - - - - {2196C17D-EDAC-43AD-AF88-1D7D6CBD9145} - VOLINFO - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/MMF2SDK/VOLINFO/Common.h b/MMF2SDK_Unicode/VOLINFO/Common.h similarity index 87% rename from MMF2SDK/VOLINFO/Common.h rename to MMF2SDK_Unicode/VOLINFO/Common.h index 40061092..5ec7b90f 100644 --- a/MMF2SDK/VOLINFO/Common.h +++ b/MMF2SDK_Unicode/VOLINFO/Common.h @@ -6,24 +6,26 @@ #define _CRTDBG_MAP_ALLOC 1 #endif +#define IN_EXT_VERSION2 + // ---------------------------------------------- // VERSION AND BUILD YOUR EXTENSION CAN WORK WITH // ---------------------------------------------- -//#define TGFEXT // TGF, MMF Standard and MMF Pro +//#define TGFEXT // TGF, MMF Standard and MMF Pro #define MMFEXT // MMF Standard and MMF Pro -//#define PROEXT // MMF Pro only +//#define PROEXT // MMF Pro only // Build number of the minimum required version of MMF #define MINBUILD 228 // General includes -#include "ccxhdr.h" -#include "Surface.h" +#include "ccxhdr.h" +#include "Surface.h" // Specific to this cox -#include "resource.h" -#include "main.h" -#include "TigsExt.hpp" +#include "resource.h" +#include "main.h" +#include "TigsExt.hpp" // Globals and Prototypes extern HINSTANCE hInstLib; diff --git a/MMF2SDK/VOLINFO/Edittime.cpp b/MMF2SDK_Unicode/VOLINFO/Edittime.cpp similarity index 95% rename from MMF2SDK/VOLINFO/Edittime.cpp rename to MMF2SDK_Unicode/VOLINFO/Edittime.cpp index 3ef1adaf..ac2ea78f 100644 --- a/MMF2SDK/VOLINFO/Edittime.cpp +++ b/MMF2SDK_Unicode/VOLINFO/Edittime.cpp @@ -5,7 +5,7 @@ // under the Frame and Event editors. // // Including creating, display, and setting up your object. -// +// // ============================================================================ // Common @@ -21,8 +21,8 @@ enum { // Example // ------- -// PROPID_TEXTTITLE, -// PROPID_TEXT, +// PROPID_TEXTTITLE, +// PROPID_TEXT, // PROPID_CHECK, // PROPID_COMBO, // PROPID_COLOR, @@ -31,9 +31,9 @@ enum { // Example of content of the PROPID_COMBO combo box //LPCSTR ComboList[] = { // 0, // reserved -// MAKEINTRESOURCE(IDS_FIRSTOPTION), -// MAKEINTRESOURCE(IDS_SECONDOPTION), -// MAKEINTRESOURCE(IDS_THIRDOPTION), +// MAKEINTRESOURCE(IDS_FIRSTOPTION), +// MAKEINTRESOURCE(IDS_SECONDOPTION), +// MAKEINTRESOURCE(IDS_THIRDOPTION), // NULL //}; @@ -78,7 +78,7 @@ typedef struct tagSetP // Info displayed in the object's About properties // Note: ObjComment is also displayed in the Quick Description box in the Insert Object dialog box // -void WINAPI DLLExport GetObjInfos (mv _far *mV, LPEDATA edPtr, LPSTR ObjName, LPSTR ObjAuthor, LPSTR ObjCopyright, LPSTR ObjComment, LPSTR ObjHttp) +void WINAPI DLLExport GetObjInfos (mv _far *mV, LPEDATA edPtr, LPTSTR ObjName, LPTSTR ObjAuthor, LPTSTR ObjCopyright, LPTSTR ObjComment, LPTSTR ObjHttp) { #ifndef RUN_ONLY // Name @@ -103,7 +103,7 @@ void WINAPI DLLExport GetObjInfos (mv _far *mV, LPEDATA edPtr, LPSTR ObjName, LP // ----------------- // Returns the help filename of the object. // -LPCSTR WINAPI GetHelpFileName() +LPCTSTR WINAPI GetHelpFileName() { #ifndef RUN_ONLY // Return a file without path if your help file can be loaded by the MMF help file. @@ -111,7 +111,7 @@ LPCSTR WINAPI GetHelpFileName() // Or return the path of your file, relatively to the MMF directory // if your file is not loaded by the MMF help file. - return "Help\\MyExt.chm"; + return _T("Help\\MyExt.chm"); #else return NULL; #endif // !defined(RUN_ONLY) @@ -161,7 +161,7 @@ WORD BmpToImg(int bmID, npAppli idApp, short HotX = 0, short HotY = 0, short Act // ============================================================================ // // ROUTINES USED UNDER FRAME EDITOR -// +// // ============================================================================ @@ -176,7 +176,7 @@ WORD BmpToImg(int bmID, npAppli idApp, short HotX = 0, short HotY = 0, short Act // If you need to draw the icon manually, remove the comments around this function and in the .def file. // /* -int WINAPI DLLExport MakeIconEx ( mv _far *mV, cSurface* pIconSf, LPSTR lpName, fpObjInfo oiPtr, LPEDATA edPtr ) +int WINAPI DLLExport MakeIconEx ( mv _far *mV, cSurface* pIconSf, LPTSTR lpName, fpObjInfo oiPtr, LPEDATA edPtr ) { int error = -1; #ifndef RUN_ONLY @@ -196,7 +196,7 @@ int WINAPI DLLExport MakeIconEx ( mv _far *mV, cSurface* pIconSf, LPSTR lpName, // -------------------- // CreateObject // -------------------- -// Called when you choose "Create new object". It should display the setup box +// Called when you choose "Create new object". It should display the setup box // and initialize everything in the datazone. int WINAPI DLLExport CreateObject(mv _far *mV, fpLevObj loPtr, LPEDATA edPtr) @@ -276,7 +276,7 @@ void WINAPI DLLExport RemoveObject(mv _far *mV, fpLevObj loPtr, LPEDATA edPtr, u { #ifndef RUN_ONLY // Is the last object removed? - if (0 == cpt) + if (0 == cpt) { // Do whatever necessary to remove our data } @@ -355,7 +355,7 @@ void WINAPI DLLExport EditorDisplay(mv _far *mV, fpObjInfo oiPtr, fpLevObj loPtr // IsTransparent // -------------------- // This routine tells CC&C if the mouse pointer is over a transparent zone of the object. -// +// extern "C" BOOL WINAPI DLLExport IsTransparent(mv _far *mV, fpLevObj loPtr, LPEDATA edPtr, int dx, int dy) { @@ -369,7 +369,7 @@ extern "C" BOOL WINAPI DLLExport IsTransparent(mv _far *mV, fpLevObj loPtr, LPED // PrepareToWriteObject // -------------------- // Just before writing the datazone when saving the application, CC&C calls this routine. -// +// void WINAPI DLLExport PrepareToWriteObject(mv _far *mV, LPEDATA edPtr, fpObjInfo adoi) { #ifndef RUN_ONLY @@ -401,20 +401,20 @@ BOOL WINAPI GetFilters(LPMV mV, LPEDATA edPtr, DWORD dwFlags, LPVOID pReserved) // Triggers when a file is dropped onto the frame // Return TRUE if you can create an object from the given file // -BOOL WINAPI DLLExport UsesFile (LPMV mV, LPSTR fileName) +BOOL WINAPI DLLExport UsesFile (LPMV mV, LPTSTR fileName) { BOOL r = FALSE; #ifndef RUN_ONLY // Example: return TRUE if file extension is ".txt" -/* - LPSTR ext, npath; +/* + LPTSTR ext, npath; if ( fileName != NULL ) { - if ( (ext=(LPSTR)malloc(_MAX_EXT)) != NULL ) + if ( (ext=(LPTSTR)malloc(_MAX_EXT)) != NULL ) { - if ( (npath=(LPSTR)malloc(_MAX_PATH)) != NULL ) + if ( (npath=(LPTSTR)malloc(_MAX_PATH)) != NULL ) { strcpy(npath, fileName); _splitpath(npath, NULL, NULL, NULL, ext); @@ -435,7 +435,7 @@ BOOL WINAPI DLLExport UsesFile (LPMV mV, LPSTR fileName) // -------------------- // Creates a new object from file // -void WINAPI DLLExport CreateFromFile (LPMV mV, LPSTR fileName, LPEDATA edPtr) +void WINAPI DLLExport CreateFromFile (LPMV mV, LPTSTR fileName, LPEDATA edPtr) { #ifndef RUN_ONLY // Initialize your extension data from the given file @@ -450,7 +450,7 @@ void WINAPI DLLExport CreateFromFile (LPMV mV, LPSTR fileName, LPEDATA edPtr) // ============================================================================ // // PROPERTIES -// +// // ============================================================================ // -------------------- @@ -536,7 +536,7 @@ LPVOID WINAPI DLLExport GetPropValue(LPMV mV, LPEDATA edPtr, UINT nPropID) // // // Returns a string // case PROPID_TEXT: -// return new CPropDataValue(&edPtr->szText[0]); +// return new CPropStringValue(&edPtr->szText[0]); // // // Returns the value of the combo box // case PROPID_COMBO: @@ -595,7 +595,7 @@ void WINAPI DLLExport SetPropValue(LPMV mV, LPEDATA edPtr, UINT nPropID, LPVOID // case PROPID_TEXT: // { // // Gets the string -// LPSTR pStr = (LPSTR)((CPropDataValue*)pValue)->m_pData; +// LPTSTR pStr = ((CPropStringValue*)pValue)->GetString(); // // // You can simply poke the string if your EDITDATA structure has a fixed size, // // or have an adaptive size of structure like below @@ -605,7 +605,7 @@ void WINAPI DLLExport SetPropValue(LPMV mV, LPEDATA edPtr, UINT nPropID, LPVOID // { // // Asks MMF to reallocate the structure with the new size // LPEDATA pNewPtr = (LPEDATA)mvReAllocEditData(mV, edPtr, sizeof(EDITDATA)+strlen(pStr)); -// +// // // If reallocation worked // if (pNewPtr!=NULL) // { @@ -615,7 +615,7 @@ void WINAPI DLLExport SetPropValue(LPMV mV, LPEDATA edPtr, UINT nPropID, LPVOID // } // } // else -// { +// { // // Same size : simply copy // strcpy(edPtr->text, pStr); // } @@ -699,7 +699,7 @@ BOOL WINAPI IsPropEnabled(LPMV mV, LPEDATA edPtr, UINT nPropID) // ============================================================================ // // TEXT PROPERTIES -// +// // ============================================================================ // -------------------- @@ -718,7 +718,7 @@ DWORD WINAPI DLLExport GetTextCaps(mv _far *mV, LPEDATA edPtr) // Return the font used the object. // Note: the pStyle and cbSize parameters are obsolete and passed for compatibility reasons only. // -BOOL WINAPI DLLExport GetTextFont(mv _far *mV, LPEDATA edPtr, LPLOGFONT plf, LPSTR pStyle, UINT cbSize) +BOOL WINAPI DLLExport GetTextFont(mv _far *mV, LPEDATA edPtr, LPLOGFONT plf, LPTSTR pStyle, UINT cbSize) { #if !defined(RUN_ONLY) // Example: copy LOGFONT structure from EDITDATA @@ -830,24 +830,24 @@ void WINAPI DLLExport SetTextAlignment(mv _far *mV, LPEDATA edPtr, DWORD dwAlign // // ROUTINES USED UNDER EVENT / TIME / STEP-THROUGH EDITOR // You should not need to change these routines -// +// // ============================================================================ // ----------------- // menucpy // ----------------- // Internal routine used later, copy one menu onto another -// -#ifndef RUN_ONLY +// void menucpy(HMENU hTargetMenu, HMENU hSourceMenu) { +#ifndef RUN_ONLY int n, id, nMn; - NPSTR strBuf; + LPTSTR strBuf; HMENU hSubMenu; - + nMn = GetMenuItemCount(hSourceMenu); - strBuf = (NPSTR)LocalAlloc(LPTR, 80); - for (n=0; ninfos.code != code) eiPtr = EVINFO2_NEXT(eiPtr); - + return eiPtr; } -#endif // !defined(RUN_ONLY) +//#endif // !defined(RUN_ONLY) // ---------------------------------------------------- @@ -951,7 +952,7 @@ HMENU WINAPI DLLExport GetExpressionMenu(mv _far *mV, fpObjInfo oiPtr, LPEDATA e // #ifndef RUN_ONLY -void GetCodeTitle(LPEVENTINFOS2 eiPtr, short code, short param, short mn, LPSTR strBuf, WORD maxLen) +void GetCodeTitle(LPEVENTINFOS2 eiPtr, short code, short param, short mn, LPTSTR strBuf, WORD maxLen) { HMENU hMn; @@ -965,7 +966,7 @@ void GetCodeTitle(LPEVENTINFOS2 eiPtr, short code, short param, short mn, LPSTR LoadString(hInstLib, strID, strBuf, maxLen); else { - // Otherwise, returns the menu option + // Otherwise, returns the menu option if ((hMn = LoadMenu(hInstLib, MAKEINTRESOURCE(mn))) != NULL ) { GetMenuString(hMn, eiPtr->menu, strBuf, maxLen, MF_BYCOMMAND); @@ -977,15 +978,15 @@ void GetCodeTitle(LPEVENTINFOS2 eiPtr, short code, short param, short mn, LPSTR #define GetCodeTitle(a,b,c,d,e,f) #endif // !defined(RUN_ONLY) -void WINAPI DLLExport GetConditionTitle(mv _far *mV, short code, short param, LPSTR strBuf, short maxLen) +void WINAPI DLLExport GetConditionTitle(mv _far *mV, short code, short param, LPTSTR strBuf, short maxLen) { GetCodeTitle((LPEVENTINFOS2)conditionsInfos, code, param, MN_CONDITIONS, strBuf, maxLen); } -void WINAPI DLLExport GetActionTitle(mv _far *mV, short code, short param, LPSTR strBuf, short maxLen) +void WINAPI DLLExport GetActionTitle(mv _far *mV, short code, short param, LPTSTR strBuf, short maxLen) { GetCodeTitle((LPEVENTINFOS2)actionsInfos, code, param, MN_ACTIONS, strBuf, maxLen); } -void WINAPI DLLExport GetExpressionTitle(mv _far *mV, short code, LPSTR strBuf, short maxLen) +void WINAPI DLLExport GetExpressionTitle(mv _far *mV, short code, LPTSTR strBuf, short maxLen) { GetCodeTitle((LPEVENTINFOS2)expressionsInfos, code, 0, MN_EXPRESSIONS, strBuf, maxLen); } @@ -1005,7 +1006,7 @@ short WINAPI DLLExport GetConditionCodeFromMenu(mv _far *mV, short menuId) for (n=CND_LAST, eiPtr=(LPEVENTINFOS2)conditionsInfos; n>0 && eiPtr->menu!=menuId; n--) eiPtr = EVINFO2_NEXT(eiPtr); - if (n>0) + if (n>0) return eiPtr->infos.code; #endif // !defined(RUN_ONLY) return -1; @@ -1019,7 +1020,7 @@ short WINAPI DLLExport GetActionCodeFromMenu(mv _far *mV, short menuId) for (n=ACT_LAST, eiPtr=(LPEVENTINFOS2)actionsInfos; n>0 && eiPtr->menu!=menuId; n--) eiPtr = EVINFO2_NEXT(eiPtr); - if (n>0) + if (n>0) return eiPtr->infos.code; #endif // !defined(RUN_ONLY) return -1; @@ -1033,7 +1034,7 @@ short WINAPI DLLExport GetExpressionCodeFromMenu(mv _far *mV, short menuId) for (n=EXP_LAST, eiPtr=(LPEVENTINFOS2)expressionsInfos; n>0 && eiPtr->menu!=menuId; n--) eiPtr = EVINFO2_NEXT(eiPtr); - if (n>0) + if (n>0) return eiPtr->infos.code; #endif // !defined(RUN_ONLY) return -1; @@ -1043,8 +1044,8 @@ short WINAPI DLLExport GetExpressionCodeFromMenu(mv _far *mV, short menuId) // ------------------------------------------------------- // GetConditionInfos / GetActionInfos / GetExpressionInfos // ------------------------------------------------------- -// From a action / condition / expression code, returns -// an infosEvents structure. +// From a action / condition / expression code, returns +// an infosEvents structure. // LPINFOEVENTSV2 WINAPI DLLExport GetConditionInfos(mv _far *mV, short code) @@ -1078,11 +1079,11 @@ LPINFOEVENTSV2 WINAPI DLLExport GetExpressionInfos(mv _far *mV, short code) // ---------------------------------------------------------- // GetConditionString / GetActionString / GetExpressionString // ---------------------------------------------------------- -// From a action / condition / expression code, returns +// From a action / condition / expression code, returns // the string to use for displaying it under the event editor // -void WINAPI DLLExport GetConditionString(mv _far *mV, short code, LPSTR strPtr, short maxLen) +void WINAPI DLLExport GetConditionString(mv _far *mV, short code, LPTSTR strPtr, short maxLen) { #ifndef RUN_ONLY // Check compatibility @@ -1091,7 +1092,7 @@ void WINAPI DLLExport GetConditionString(mv _far *mV, short code, LPSTR strPtr, #endif // !defined(RUN_ONLY) } -void WINAPI DLLExport GetActionString(mv _far *mV, short code, LPSTR strPtr, short maxLen) +void WINAPI DLLExport GetActionString(mv _far *mV, short code, LPTSTR strPtr, short maxLen) { #ifndef RUN_ONLY // Check compatibility @@ -1100,7 +1101,7 @@ void WINAPI DLLExport GetActionString(mv _far *mV, short code, LPSTR strPtr, sho #endif // !defined(RUN_ONLY) } -void WINAPI DLLExport GetExpressionString(mv _far *mV, short code, LPSTR strPtr, short maxLen) +void WINAPI DLLExport GetExpressionString(mv _far *mV, short code, LPTSTR strPtr, short maxLen) { #ifndef RUN_ONLY // Check compatibility @@ -1114,7 +1115,7 @@ void WINAPI DLLExport GetExpressionString(mv _far *mV, short code, LPSTR strPtr, // ---------------------------------------------------------- // Returns the parameter name to display in the expression editor // -void WINAPI DLLExport GetExpressionParam(mv _far *mV, short code, short param, LPSTR strBuf, short maxLen) +void WINAPI DLLExport GetExpressionParam(mv _far *mV, short code, short param, LPTSTR strBuf, short maxLen) { #if !defined(RUN_ONLY) short strID; @@ -1216,7 +1217,7 @@ void WINAPI EditParameter(mv _far *mV, short code, paramExt* pExt) // -------------------- // Initialize the parameter. // -void WINAPI GetParameterString(mv _far *mV, short code, paramExt* pExt, LPSTR pDest, short size) +void WINAPI GetParameterString(mv _far *mV, short code, paramExt* pExt, LPTSTR pDest, short size) { #if !defined(RUN_ONLY) diff --git a/MMF2SDK_Unicode/VOLINFO/Examples/VOLINFO Example.mfa b/MMF2SDK_Unicode/VOLINFO/Examples/VOLINFO Example.mfa new file mode 100644 index 0000000000000000000000000000000000000000..c50093082477f93ac74e4c447b1a4270892a7944 GIT binary patch literal 113551 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


58!+A-B1*9^W_`}O^%eiAb$_6 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 literal 0 HcmV?d00001 diff --git a/MMF2SDK/VOLINFO/Ext.def b/MMF2SDK_Unicode/VOLINFO/Ext.def similarity index 100% rename from MMF2SDK/VOLINFO/Ext.def rename to MMF2SDK_Unicode/VOLINFO/Ext.def diff --git a/MMF2SDK_Unicode/VOLINFO/Ext.rc b/MMF2SDK_Unicode/VOLINFO/Ext.rc new file mode 100644 index 00000000..a4072c0c --- /dev/null +++ b/MMF2SDK_Unicode/VOLINFO/Ext.rc @@ -0,0 +1,215 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "..\Inc\ccx.h" +#define APSTUDIO_HIDDEN_SYMBOLS +#include "windows.h" +#undef APSTUDIO_HIDDEN_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +1 VERSIONINFO + FILEVERSION 1,0,0,0 + PRODUCTVERSION 1,0,0,0 + FILEFLAGSMASK 0x0L +#ifdef _DEBUG + FILEFLAGS 0x21L +#else + FILEFLAGS 0x20L +#endif + FILEOS 0x10001L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904e4" + BEGIN + VALUE "Comments", "\0" + VALUE "CompanyName", "Clickteam\0" + VALUE "FileDescription", "NRG753 Volume Information\0" + VALUE "FileVersion", "2.00\0" + VALUE "InternalName", "VOLINFO\0" + VALUE "LegalCopyright", "Copyright � 2006 Jack Webster\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "VOLINFO.mfx\0" + VALUE "PrivateBuild", "\0" + VALUE "ProductName", "\0" + VALUE "ProductVersion", "1, 0, 0, 0\0" + VALUE "SpecialBuild", "00000001\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// Data +// + +KPX_MAGICNUMBER RCDATA MOVEABLE PURE +BEGIN + 0x9978, 0x8989 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +#if defined(APSTUDIO_INVOKED) || defined(EDITOR) +#if defined(APSTUDIO_INVOKED) +EXO_ICON$(EDITOR) BITMAP MOVEABLE PURE "RES\\EXTICON.BMP" +#else +EXO_ICON BITMAP MOVEABLE PURE "RES\\EXTICON.BMP" +#endif +#endif +#if defined(APSTUDIO_INVOKED) || defined(EDITOR) +#if defined(APSTUDIO_INVOKED) +EXO_IMAGE$(EDITOR) BITMAP MOVEABLE PURE "RES\\EXTIMG.BMP" +#else +EXO_IMAGE BITMAP MOVEABLE PURE "RES\\EXTIMG.BMP" +#endif +#endif + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +#if defined(APSTUDIO_INVOKED) || defined(EDITOR) +#if defined(APSTUDIO_INVOKED) +MN_CONDITIONS$(EDITOR) MENU DISCARDABLE +#else +MN_CONDITIONS MENU DISCARDABLE +#endif +BEGIN + MENUITEM "", 65535 +END +#endif + +#if defined(APSTUDIO_INVOKED) || defined(EDITOR) +#if defined(APSTUDIO_INVOKED) +MN_ACTIONS$(EDITOR) MENU DISCARDABLE +#else +MN_ACTIONS MENU DISCARDABLE +#endif +BEGIN + MENUITEM "", 65535 +END +#endif + +#if defined(APSTUDIO_INVOKED) || defined(EDITOR) +#if defined(APSTUDIO_INVOKED) +MN_EXPRESSIONS$(EDITOR) MENU DISCARDABLE +#else +MN_EXPRESSIONS MENU DISCARDABLE +#endif +BEGIN + POPUP "" + BEGIN + MENUITEM "Get Volume Label", IDMN_EXPRESSION2 + MENUITEM SEPARATOR + END +END +#endif + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""..\\Inc\\ccx.h""\r\n" + "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" + "#include ""windows.h""\r\n" + "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + KPX_MARK "MF2" + KPX_NAME "NRG753 Volume Information" +END + +STRINGTABLE DISCARDABLE +BEGIN + M_EXPRESSION2 "VolInfo$(" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDST_OBJNAME "NRG753 Volume Information" + IDST_AUTHOR "Jack Webster" + IDST_COPYRIGHT "Copyright \xA9 2006-2026 Jack Webster" + IDST_COMMENT "Given a root path, will give the volumes label. By request of NRG753" + IDST_HTTP "(No webpage right now)" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/MMF2SDK/VOLINFO/General.cpp b/MMF2SDK_Unicode/VOLINFO/General.cpp similarity index 90% rename from MMF2SDK/VOLINFO/General.cpp rename to MMF2SDK_Unicode/VOLINFO/General.cpp index 670cbf39..986a4647 100644 --- a/MMF2SDK/VOLINFO/General.cpp +++ b/MMF2SDK_Unicode/VOLINFO/General.cpp @@ -4,7 +4,7 @@ // The following routines are used internally by MMF, and should not need to // be modified. // -// +// // ============================================================================ // Common Include @@ -15,13 +15,13 @@ HINSTANCE hInstLib; // ============================================================================ // // LIBRARY ENTRY & QUIT POINTS -// +// // ============================================================================ // ----------------- // Entry points // ----------------- -// Usually you do not need to do any initialization here: you will prefer to +// Usually you do not need to do any initialization here: you will prefer to // do them in "Initialize" found in Edittime.cpp BOOL WINAPI DllMain(HINSTANCE hDLL, DWORD dwReason, LPVOID lpReserved) { @@ -29,7 +29,7 @@ BOOL WINAPI DllMain(HINSTANCE hDLL, DWORD dwReason, LPVOID lpReserved) { // DLL is attaching to the address space of the current process. case DLL_PROCESS_ATTACH: - + hInstLib = hDLL; // Store HINSTANCE break; @@ -42,10 +42,10 @@ BOOL WINAPI DllMain(HINSTANCE hDLL, DWORD dwReason, LPVOID lpReserved) break; // The calling process is detaching the DLL from its address space. - case DLL_PROCESS_DETACH: + case DLL_PROCESS_DETACH: break; } - + return TRUE; } @@ -66,7 +66,7 @@ extern "C" int WINAPI DLLExport Initialize(mv _far *mV, int quiet) // ----------------- // Where you want to kill and initialized data opened in the above routine // Called just before freeing the DLL. -// +// extern "C" int WINAPI DLLExport Free(mv _far *mV) { // No error @@ -76,18 +76,18 @@ extern "C" int WINAPI DLLExport Free(mv _far *mV) // ============================================================================ // // GENERAL INFO -// +// // ============================================================================ // ----------------- // Get Infos // ----------------- -// -extern "C" +// +extern "C" { DWORD WINAPI DLLExport GetInfos(int info) { - + switch (info) { case KGI_VERSION: @@ -98,6 +98,12 @@ extern "C" return PRODUCT_VERSION_STANDARD; // Works with MMF Standard or above case KGI_BUILD: return 240; // Works with build 240 or above + case KGI_UNICODE: + #ifdef _UNICODE + return TRUE; + #else + return FALSE; + #endif default: return 0; } @@ -109,7 +115,7 @@ extern "C" // ---------------------------------------------------------- // Fills an information structure that tells CC&C everything // about the object, its actions, conditions and expressions -// +// short WINAPI DLLExport GetRunObjectInfos(mv _far *mV, fpKpxRunInfos infoPtr) { @@ -131,10 +137,10 @@ short WINAPI DLLExport GetRunObjectInfos(mv _far *mV, fpKpxRunInfos infoPtr) // Identifier, for run-time identification infoPtr->identifier = IDENTIFIER; - + // Current version infoPtr->version = KCX_CURRENT_VERSION; - + return TRUE; } @@ -144,14 +150,14 @@ short WINAPI DLLExport GetRunObjectInfos(mv _far *mV, fpKpxRunInfos infoPtr) // Returns the name of the external modules that you wish MMF to include // with stand-alone applications (these modules must be in the MMF // Data\Runtime folder). -// +// -//LPCSTR szDep[] = { -// "MyDll.dll", +//LPCTSTR szDep[] = { +// _T("MyDll.dll"), // NULL //}; -LPCSTR* WINAPI DLLExport GetDependencies() +LPCTSTR* WINAPI DLLExport GetDependencies() { return NULL; // szDep; } @@ -183,7 +189,7 @@ void WINAPI DLLExport UnloadObject(mv _far *mV, LPEDATA edPtr, int reserved) // -------------------- // For you to update your object structure to newer versions // Called at both edit time and run time -// +// HGLOBAL WINAPI DLLExport UpdateEditStructure(mv __far *mV, void __far * OldEdPtr) { // We do nothing here @@ -198,9 +204,10 @@ HGLOBAL WINAPI DLLExport UpdateEditStructure(mv __far *mV, void __far * OldEdPtr // Called at edit time and run time. // // Call lpfnUpdate to update your file pathname (refer to the documentation) -// -void WINAPI DLLExport UpdateFileNames(mv _far *mV, LPSTR appName, LPEDATA edPtr, void (WINAPI * lpfnUpdate)(LPSTR, LPSTR)) +// +void WINAPI DLLExport UpdateFileNames(mv _far *mV, LPTSTR appName, LPEDATA edPtr, void (WINAPI * lpfnUpdate)(LPTSTR, LPTSTR)) { + } // --------------------- @@ -209,22 +216,22 @@ void WINAPI DLLExport UpdateFileNames(mv _far *mV, LPSTR appName, LPEDATA edPtr, // // Uncomment this function if you need to store an image in the image bank. // -// Note: do not forget to enable the function in the .def file +// Note: do not forget to enable the function in the .def file // if you remove the comments below. // /* int WINAPI DLLExport EnumElts (mv __far *mV, LPEDATA edPtr, ENUMELTPROC enumProc, ENUMELTPROC undoProc, LPARAM lp1, LPARAM lp2) -{ +{ int error = 0; // Replace wImgIdx with the name of the WORD variable you create within the edit structure - - // Enum images + + // Enum images if ( (error = enumProc(&edPtr->wImgIdx, IMG_TAB, lp1, lp2)) != 0 ) { - // Undo enum images - undoProc (&edPtr->wImgIdx, IMG_TAB, lp1, lp2); - } + // Undo enum images + undoProc (&edPtr->wImgIdx, IMG_TAB, lp1, lp2); + } return error; } diff --git a/MMF2SDK_Unicode/VOLINFO/MMF2SDK - VOLINFO.vcxproj b/MMF2SDK_Unicode/VOLINFO/MMF2SDK - VOLINFO.vcxproj new file mode 100644 index 00000000..632b655b --- /dev/null +++ b/MMF2SDK_Unicode/VOLINFO/MMF2SDK - VOLINFO.vcxproj @@ -0,0 +1,678 @@ + + + + + Debug Unicode + Win32 + + + Debug + Win32 + + + Edittime Unicode + Win32 + + + Edittime + Win32 + + + Runtime Unicode + Win32 + + + Runtime + Win32 + + + Vitalize + Win32 + + + + {2196C17D-EDAC-43AD-AF88-1D7D6CBD9145} + MMF2SDK - VOLINFO + 10.0.19041.0 + + + + DynamicLibrary + false + v141 + + + DynamicLibrary + false + v141 + + + DynamicLibrary + false + v141 + + + DynamicLibrary + false + v141 + + + DynamicLibrary + false + v141 + + + DynamicLibrary + false + v141 + + + DynamicLibrary + false + v141 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + .\Vitalize_Small\ + .\Vitalize_Small\ + false + .\Release_Small\ + .\Release_Small\Unicode\ + .\Release_Small\ + .\Release_Small\Unicode\ + false + false + .\Debug\ + .\Debug\Unicode\ + .\Debug\ + .\Debug\Unicode\ + true + true + .\Run_Only_Small\ + .\Run_Only_Small\Unicode\ + .\Run_Only_Small\ + .\Run_Only_Small\Unicode\ + false + false + AllRules.ruleset + AllRules.ruleset + + + + + AllRules.ruleset + AllRules.ruleset + + + + + AllRules.ruleset + AllRules.ruleset + + + + + AllRules.ruleset + + + false + false + false + false + false + false + false + false + false + + + + NDEBUG;RUN_ONLY;%(PreprocessorDefinitions) + true + true + Win32 + .\Vitalize_Small/Template.tlb + + + + + MinSpace + OnlyExplicitInline + ..\Inc;.\;..\..\Inc;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WINDOWS;STRICT;RUN_ONLY;VITALIZE;COXSDK;%(PreprocessorDefinitions) + true + Sync + MultiThreaded + true + true + .\Vitalize_Small/Template.pch + .\Vitalize_Small/ + .\Vitalize_Small/ + .\Vitalize_Small/ + Level3 + true + + + NDEBUG;RUN_ONLY;VITALIZE;%(PreprocessorDefinitions) + 0x0409 + ..\..\Inc;%(AdditionalIncludeDirectories) + .\Vitalize_Small\Ext.res + + + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;..\lib\mmfs2.lib;%(AdditionalDependencies) + $(ProjectDir)MOX\$(ProjectName).mox + true + false + .\Ext.def + .\Vitalize_Small/Template.pdb + false + + + .\Vitalize_Small/Template.lib + MachineX86 + false + ..\..\lib\;%(AdditionalLibraryDirectories) + + + true + .\Vitalize_Small/Template.bsc + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release_Small/Template.tlb + + + + + MinSpace + OnlyExplicitInline + ..\Inc;.\;..\..\Inc;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WINDOWS;STRICT;COXSDK;%(PreprocessorDefinitions) + true + Sync + MultiThreaded + true + true + .\Release_Small/Template.pch + .\Release_Small/ + .\Release_Small/ + .\Release_Small/ + Level3 + true + + + NDEBUG;EDITOR;%(PreprocessorDefinitions) + 0x0409 + ..\..\Inc;%(AdditionalIncludeDirectories) + .\Release_Small\Ext.res + + + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;..\lib\mmfs2.lib;%(AdditionalDependencies) + $(ProjectDir)MFX\Extensions\$(ProjectName).mfx + true + false + .\Ext.def + .\Release_Small/Template.pdb + false + + + .\Release_Small/Template.lib + MachineX86 + ..\..\lib\;%(AdditionalLibraryDirectories) + + + true + .\Release_Small/Template.bsc + + + + + + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release_Small/Template.tlb + + + + + MinSpace + OnlyExplicitInline + ..\Inc;.\;..\..\Inc;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WINDOWS;STRICT;COXSDK;_UNICODE;UNICODE;%(PreprocessorDefinitions) + true + Sync + MultiThreaded + true + true + .\Release_Small/Template.pch + .\Release_Small/ + .\Release_Small/ + .\Release_Small/ + Level3 + true + + + NDEBUG;EDITOR;%(PreprocessorDefinitions) + 0x0409 + ..\..\Inc;%(AdditionalIncludeDirectories) + .\Release_Small\Ext.res + + + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;..\lib\mmfs2.lib;%(AdditionalDependencies) + $(ProjectDir)MFX\Extensions\Unicode\$(ProjectName).mfx + true + false + .\Ext.def + .\Release_Small/Template.pdb + false + + + .\Release_Small/Template.lib + MachineX86 + ..\..\lib\;%(AdditionalLibraryDirectories) + + + true + .\Release_Small/Template.bsc + + + + + + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/Template.tlb + + + + + Disabled + ..\Inc;.\;..\..\Inc;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;STRICT;COXSDK;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + + + .\Debug/ + .\Debug/ + .\Debug/ + Level3 + true + ProgramDatabase + + + _DEBUG;EDITOR;%(PreprocessorDefinitions) + 0x0409 + ..\..\Inc;%(AdditionalIncludeDirectories) + .\Debug\Ext.res + + + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;..\lib\mmfs2.lib;%(AdditionalDependencies) + $(ProjectDir)MFX\Extensions\$(ProjectName).mfx + true + ..\lib\;..\..\lib\;%(AdditionalLibraryDirectories) + .\Ext.def + false + .\Debug/Template.pdb + false + + + .\Debug/Template.lib + MachineX86 + + + true + .\Debug/Template.bsc + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/Template.tlb + + + + + Disabled + ..\Inc;.\;..\..\Inc;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;STRICT;COXSDK;_UNICODE;UNICODE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + + + .\Debug/ + .\Debug/ + .\Debug/ + Level3 + true + ProgramDatabase + + + _DEBUG;EDITOR;%(PreprocessorDefinitions) + 0x0409 + ..\..\Inc;%(AdditionalIncludeDirectories) + .\Debug\Ext.res + + + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;..\lib\mmfs2.lib;%(AdditionalDependencies) + $(ProjectDir)MFX\DEBUG\Extensions\Unicode\$(ProjectName).mfx + true + ..\lib\;..\..\lib\;%(AdditionalLibraryDirectories) + .\Ext.def + false + .\Debug/Template.pdb + false + + + .\Debug/Template.lib + MachineX86 + + + true + .\Debug/Template.bsc + + + + + NDEBUG;RUN_ONLY;%(PreprocessorDefinitions) + true + true + Win32 + .\Run_Only_Small/Template.tlb + + + + + MinSpace + OnlyExplicitInline + ..\Inc;.\;..\..\Inc;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WINDOWS;STRICT;RUN_ONLY;COXSDK;%(PreprocessorDefinitions) + true + Sync + MultiThreaded + true + true + .\Run_Only_Small/Template.pch + .\Run_Only_Small/ + .\Run_Only_Small/ + .\Run_Only_Small/ + Level3 + true + + + NDEBUG;RUN_ONLY;%(PreprocessorDefinitions) + 0x0409 + ..\..\Inc;%(AdditionalIncludeDirectories) + .\Run_Only_Small\Ext.res + + + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;..\lib\mmfs2.lib;%(AdditionalDependencies) + $(ProjectDir)MFX\Data\Runtime\$(ProjectName).mfx + true + false + .\Ext.def + $(ProjectDir)..\..\MFX\Data\Runtime\$(ProjectName)_Full.pdb + false + + + .\Run_Only_Small/Template.lib + MachineX86 + true + $(ProjectDir)..\..\MFX\Data\Runtime\$(ProjectName).pdb + ..\..\lib\;%(AdditionalLibraryDirectories) + + + true + .\Run_Only_Small/Template.bsc + + + + + + + + + + + NDEBUG;RUN_ONLY;%(PreprocessorDefinitions) + true + true + Win32 + .\Run_Only_Small/Template.tlb + + + + + MinSpace + OnlyExplicitInline + ..\Inc;.\;..\..\Inc;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WINDOWS;STRICT;RUN_ONLY;COXSDK;_UNICODE;UNICODE;%(PreprocessorDefinitions) + true + Sync + MultiThreaded + true + true + .\Run_Only_Small/Template.pch + .\Run_Only_Small/ + .\Run_Only_Small/ + .\Run_Only_Small/ + Level3 + true + + + NDEBUG;RUN_ONLY;%(PreprocessorDefinitions) + 0x0409 + ..\..\Inc;%(AdditionalIncludeDirectories) + .\Run_Only_Small\Ext.res + + + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;..\lib\mmfs2.lib;%(AdditionalDependencies) + $(ProjectDir)MFX\Data\Runtime\Unicode\$(ProjectName).mfx + true + false + .\Ext.def + $(ProjectDir)..\..\MFX\Data\Runtime\$(ProjectName)_Full.pdb + false + + + .\Run_Only_Small/Template.lib + MachineX86 + true + $(ProjectDir)..\..\MFX\Data\Runtime\$(ProjectName).pdb + ..\..\lib\;%(AdditionalLibraryDirectories) + + + true + .\Run_Only_Small/Template.bsc + + + + + + + + + + + %(AdditionalIncludeDirectories) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + %(PreprocessorDefinitions) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + + + + + + \ No newline at end of file diff --git a/MMF2SDK/VOLINFO/VOLINFO.vcxproj.filters b/MMF2SDK_Unicode/VOLINFO/MMF2SDK - VOLINFO.vcxproj.filters similarity index 98% rename from MMF2SDK/VOLINFO/VOLINFO.vcxproj.filters rename to MMF2SDK_Unicode/VOLINFO/MMF2SDK - VOLINFO.vcxproj.filters index 794fd3f0..8b5e055f 100644 --- a/MMF2SDK/VOLINFO/VOLINFO.vcxproj.filters +++ b/MMF2SDK_Unicode/VOLINFO/MMF2SDK - VOLINFO.vcxproj.filters @@ -32,15 +32,15 @@ + + Source Files + Resource Files Resource Files - - Resource Files - @@ -49,6 +49,9 @@ Header Files + + Header Files + MMF Headers @@ -139,9 +142,6 @@ MMF Headers - - Resource Files - diff --git a/MMF2SDK/VOLINFO/Main.cpp b/MMF2SDK_Unicode/VOLINFO/Main.cpp similarity index 88% rename from MMF2SDK/VOLINFO/Main.cpp rename to MMF2SDK_Unicode/VOLINFO/Main.cpp index 8f25bdf5..3b94af8b 100644 --- a/MMF2SDK/VOLINFO/Main.cpp +++ b/MMF2SDK_Unicode/VOLINFO/Main.cpp @@ -38,7 +38,7 @@ short expressionsInfos[]= // ============================================================================ // // CONDITION ROUTINES -// +// // ============================================================================ @@ -47,20 +47,20 @@ short expressionsInfos[]= // ============================================================================ // // EXPRESSIONS ROUTINES -// +// // ============================================================================ long WINAPI DLLExport GetVol(LPRDATA rdPtr,long param1) { long p1 = CNC_GetFirstExpressionParameter(rdPtr, param1, TYPE_STRING); //Reversing the string. - LPSTR buf = (LPSTR)callRunTimeFunction(rdPtr, RFUNCTION_GETSTRINGSPACE, MAX_PATH , 0); + LPTSTR buf = (LPTSTR)callRunTimeFunction(rdPtr, RFUNCTION_GETSTRINGSPACE, MAX_PATH , 0); buf[0] = '\0'; DWORD w1,w2,w3; - char ignore[10]; + TCHAR ignore[10]; //None of the info is null because sometimes that crashes Win9x machines. - GetVolumeInformation( (LPSTR)p1 , buf , MAX_PATH , &w1 , &w2 , &w3 , ignore , 9 ); - + GetVolumeInformation( (LPTSTR)p1 , buf , MAX_PATH , &w1 , &w2 , &w3 , ignore , 9 ); + rdPtr->rHo.hoFlags |= HOF_STRING; return (long)buf; } @@ -74,18 +74,18 @@ long WINAPI DLLExport GetVol(LPRDATA rdPtr,long param1) // Located at the end of the source for convinience // Must finish with a 0 // -long (WINAPI * ConditionJumps[])(LPRDATA rdPtr, long param1, long param2) = - { +long (WINAPI * ConditionJumps[])(LPRDATA rdPtr, long param1, long param2) = + { 0 }; - + short (WINAPI * ActionJumps[])(LPRDATA rdPtr, long param1, long param2) = { 0 }; -long (WINAPI * ExpressionJumps[])(LPRDATA rdPtr, long param) = - { +long (WINAPI * ExpressionJumps[])(LPRDATA rdPtr, long param) = + { GetVol, 0 }; \ No newline at end of file diff --git a/MMF2SDK/VOLINFO/Main.h b/MMF2SDK_Unicode/VOLINFO/Main.h similarity index 86% rename from MMF2SDK/VOLINFO/Main.h rename to MMF2SDK_Unicode/VOLINFO/Main.h index 43918d48..821d95c6 100644 --- a/MMF2SDK/VOLINFO/Main.h +++ b/MMF2SDK_Unicode/VOLINFO/Main.h @@ -2,6 +2,14 @@ // and then remove the #pragma message above. If you do not do this, MMF2 // could confuse your object with another in the event editor. +#ifdef _UNICODE + #define EDITDATA EDITDATAW + #define LPEDATA LPEDATAW +#else + #define EDITDATA EDITDATAA + #define LPEDATA LPEDATAA +#endif + // ------------------------------ // DEFINITION OF CONDITIONS CODES // ------------------------------ @@ -20,10 +28,10 @@ #define EXP_EXPRESSION2 0 -#define EXP_LAST 1 +#define EXP_LAST 1 // --------------------- -// OBJECT DATA STRUCTURE +// OBJECT DATA STRUCTURE // --------------------- // Used at edit time and saved in the MFA/CCN/EXE files @@ -48,7 +56,7 @@ typedef EDITDATA * LPEDATA; // Used at runtime. Initialize it in the CreateRunObject function. // Free any allocated memory or object in the DestroyRunObject function. // -// Note: if you store C++ objects in this structure and do not store +// Note: if you store C++ objects in this structure and do not store // them as pointers, you must call yourself their constructor in the // CreateRunObject function and their destructor in the DestroyRunObject // function. As the RUNDATA structure is a simple C structure and not a C++ object. @@ -75,11 +83,11 @@ typedef RUNDATA * LPRDATA; // Default flags - see documentation for more info // ------------- -#define OEFLAGS 0 -#define OEPREFS 0 +#define OEFLAGS 0 +#define OEPREFS 0 // If to handle message, specify the priority of the handling procedure -// 0= low, 255= very high. You should use 100 as normal. +// 0= low, 255= very high. You should use 100 as normal. // -------------------------------------------------------------------- #define WINDOWPROC_PRIORITY 100 diff --git a/MMF2SDK/VOLINFO/Resource.h b/MMF2SDK_Unicode/VOLINFO/Resource.h similarity index 78% rename from MMF2SDK/VOLINFO/Resource.h rename to MMF2SDK_Unicode/VOLINFO/Resource.h index 01025157..8eb5246f 100644 --- a/MMF2SDK/VOLINFO/Resource.h +++ b/MMF2SDK_Unicode/VOLINFO/Resource.h @@ -2,7 +2,7 @@ // App Studio generated include file. // Used by Ext.rc // -#define _APS_NO_MFC 1 +#define _APS_NO_MFC 1 // About box information #define IDST_OBJNAME 128 @@ -12,10 +12,10 @@ #define IDST_HTTP 132 // Dialog Box ID -#define DB_SETUP 20003 +#define DB_SETUP 20003 // Help ID -#define ID_HELP 20004 +#define ID_HELP 20004 // Actions @@ -25,10 +25,10 @@ #define MN_ACTIONS 20000 // Commands of action menu -#define IDMN_ACTION 25000 +#define IDMN_ACTION 25000 // Action strings -#define M_ACTION 5000 +#define M_ACTION 5000 // Titles of action parameters #define M_ACT_P1 5501 @@ -73,13 +73,13 @@ #define M_EXP_P2 7501 // Next default values for new objects -// +// #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 101 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1001 -#define _APS_NEXT_SYMED_VALUE 101 +#define _APS_NEXT_RESOURCE_VALUE 101 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 #endif #endif diff --git a/MMF2SDK/VOLINFO/Runtime.cpp b/MMF2SDK_Unicode/VOLINFO/Runtime.cpp similarity index 86% rename from MMF2SDK/VOLINFO/Runtime.cpp rename to MMF2SDK_Unicode/VOLINFO/Runtime.cpp index 8f3f4a81..e26da1eb 100644 --- a/MMF2SDK/VOLINFO/Runtime.cpp +++ b/MMF2SDK_Unicode/VOLINFO/Runtime.cpp @@ -44,7 +44,7 @@ WORD DebugTree[]= // GetRunObjectDataSize // -------------------- // Returns the size of the runtime datazone of the object -// +// ushort WINAPI DLLExport GetRunObjectDataSize(fprh rhPtr, LPEDATA edPtr) { return(sizeof(RUNDATA)); @@ -55,15 +55,15 @@ ushort WINAPI DLLExport GetRunObjectDataSize(fprh rhPtr, LPEDATA edPtr) // CreateRunObject // --------------- // The routine where the object is actually created -// +// short WINAPI DLLExport CreateRunObject(LPRDATA rdPtr, LPEDATA edPtr, fpcob cobPtr) { /* - This routine runs when your object is created, as you might have guessed. - It is here that you must transfer any data you need in rdPtr from edPtr, - because after this has finished you cannot access it again! - Also, if you have anything to initialise (e.g. dynamic arrays, surface objects) - you should do it here, and free your resources in DestroyRunObject. + This routine runs when your object is created, as you might have guessed. + It is here that you must transfer any data you need in rdPtr from edPtr, + because after this has finished you cannot access it again! + Also, if you have anything to initialise (e.g. dynamic arrays, surface objects) + you should do it here, and free your resources in DestroyRunObject. */ // No errors return 0; @@ -74,12 +74,12 @@ short WINAPI DLLExport CreateRunObject(LPRDATA rdPtr, LPEDATA edPtr, fpcob cobPt // DestroyRunObject // ---------------- // Destroys the run-time object -// +// short WINAPI DLLExport DestroyRunObject(LPRDATA rdPtr, long fast) { /* - When your object is destroyed (either with a Destroy action or at the end of - the frame) this routine is called. You must free any resources you have allocated! + When your object is destroyed (either with a Destroy action or at the end of + the frame) this routine is called. You must free any resources you have allocated! */ // No errors return 0; @@ -90,38 +90,38 @@ short WINAPI DLLExport DestroyRunObject(LPRDATA rdPtr, long fast) // HandleRunObject // ---------------- // Called (if you want) each loop, this routine makes the object live -// +// short WINAPI DLLExport HandleRunObject(LPRDATA rdPtr) { /* - If your extension will draw to the MMF window you should first - check if anything about its display has changed : - - if (rdPtr->roc.rcChanged) - return REFLAG_DISPLAY; - else - return 0; + If your extension will draw to the MMF window you should first + check if anything about its display has changed : - You will also need to make sure you change this flag yourself - to 1 whenever you want to redraw your object + if (rdPtr->roc.rcChanged) + return REFLAG_DISPLAY; + else + return 0; - If your extension won't draw to the window, but it still needs - to do something every MMF loop use : + You will also need to make sure you change this flag yourself + to 1 whenever you want to redraw your object + + If your extension won't draw to the window, but it still needs + to do something every MMF loop use : - return 0; + return 0; - If you don't need to do something every loop, use : + If you don't need to do something every loop, use : - return REFLAG_ONESHOT; + return REFLAG_ONESHOT; - This doesn't mean this function can never run again. If you want MMF - to handle your object again (causing this code to run) use this function: + This doesn't mean this function can never run again. If you want MMF + to handle your object again (causing this code to run) use this function: - callRun-timeFunction(rdPtr, RFUNCTION_REHANDLE, 0, 0); + callRun-timeFunction(rdPtr, RFUNCTION_REHANDLE, 0, 0); - At the end of the loop this code will run + At the end of the loop this code will run */ - // Will not be called next loop + // Will not be called next loop return REFLAG_ONESHOT; } @@ -129,11 +129,11 @@ short WINAPI DLLExport HandleRunObject(LPRDATA rdPtr) // DisplayRunObject // ---------------- // Draw the object in the application screen. -// +// short WINAPI DLLExport DisplayRunObject(LPRDATA rdPtr) { /* - If you return REFLAG_DISPLAY in HandleRunObject this routine will run. + If you return REFLAG_DISPLAY in HandleRunObject this routine will run. */ // Ok return 0; @@ -147,7 +147,7 @@ short WINAPI DLLExport DisplayRunObject(LPRDATA rdPtr) // in DisplayRunObject too, but this is automatically done if you implement // GetRunObjectSurface (MMF applies the ink effect to the surface). // -// Note: do not forget to enable the function in the .def file +// Note: do not forget to enable the function in the .def file // if you remove the comments below. /* cSurface* WINAPI DLLExport GetRunObjectSurface(LPRDATA rdPtr) @@ -164,7 +164,7 @@ cSurface* WINAPI DLLExport GetRunObjectSurface(LPRDATA rdPtr) // // Should return NULL if the object is not transparent. // -// Note: do not forget to enable the function in the .def file +// Note: do not forget to enable the function in the .def file // if you remove the comments below. // /* @@ -208,7 +208,7 @@ LPSMASK WINAPI DLLExport GetRunObjectCollisionMask(LPRDATA rdPtr, LPARAM lParam) // PauseRunObject // ---------------- // Enters the pause mode -// +// short WINAPI DLLExport PauseRunObject(LPRDATA rdPtr) { // Ok @@ -231,7 +231,7 @@ short WINAPI DLLExport ContinueRunObject(LPRDATA rdPtr) // ============================================================================ // // START APP / END APP / START FRAME / END FRAME routines -// +// // ============================================================================ // ------------------- @@ -239,7 +239,7 @@ short WINAPI DLLExport ContinueRunObject(LPRDATA rdPtr) // ------------------- // Called when the application starts or restarts. // Useful for storing global data -// +// void WINAPI DLLExport StartApp(mv _far *mV, CRunApp* pApp) { // Example @@ -257,7 +257,7 @@ void WINAPI DLLExport StartApp(mv _far *mV, CRunApp* pApp) // EndApp // ------------------- // Called when the application ends. -// +// void WINAPI DLLExport EndApp(mv _far *mV, CRunApp* pApp) { // Example @@ -275,7 +275,7 @@ void WINAPI DLLExport EndApp(mv _far *mV, CRunApp* pApp) // StartFrame // ------------------- // Called when the frame starts or restarts. -// +// void WINAPI DLLExport StartFrame(mv _far *mV, DWORD dwReserved, int nFrameIndex) { } @@ -284,7 +284,7 @@ void WINAPI DLLExport StartFrame(mv _far *mV, DWORD dwReserved, int nFrameIndex) // EndFrame // ------------------- // Called when the frame ends. -// +// void WINAPI DLLExport EndFrame(mv _far *mV, DWORD dwReserved, int nFrameIndex) { } @@ -292,17 +292,17 @@ void WINAPI DLLExport EndFrame(mv _far *mV, DWORD dwReserved, int nFrameIndex) // ============================================================================ // // TEXT ROUTINES (if OEFLAG_TEXT) -// +// // ============================================================================ // ------------------- // GetRunObjectFont // ------------------- // Return the font used by the object. -// +// /* - // Note: do not forget to enable the functions in the .def file + // Note: do not forget to enable the functions in the .def file // if you remove the comments below. void WINAPI GetRunObjectFont(LPRDATA rdPtr, LOGFONT* pLf) @@ -316,7 +316,7 @@ void WINAPI GetRunObjectFont(LPRDATA rdPtr, LOGFONT* pLf) // SetRunObjectFont // ------------------- // Change the font used by the object. -// +// void WINAPI SetRunObjectFont(LPRDATA rdPtr, LOGFONT* pLf, RECT* pRc) { // Example @@ -336,7 +336,7 @@ void WINAPI SetRunObjectFont(LPRDATA rdPtr, LOGFONT* pLf, RECT* pRc) // GetRunObjectTextColor // --------------------- // Return the text color of the object. -// +// COLORREF WINAPI GetRunObjectTextColor(LPRDATA rdPtr) { // Example @@ -348,7 +348,7 @@ COLORREF WINAPI GetRunObjectTextColor(LPRDATA rdPtr) // SetRunObjectTextColor // --------------------- // Change the text color of the object. -// +// void WINAPI SetRunObjectTextColor(LPRDATA rdPtr, COLORREF rgb) { // Example @@ -364,7 +364,7 @@ void WINAPI SetRunObjectTextColor(LPRDATA rdPtr, COLORREF rgb) // WINDOWPROC (interception of messages sent to hMainWin and hEditWin) // // Do not forget to enable the WindowProc function in the .def file if you implement it -// +// // ============================================================================ /* // Get the pointer to the object's data from its window handle @@ -416,7 +416,7 @@ LRESULT CALLBACK DLLExport WindowProc(LPRH rhPtr, HWND hWnd, UINT nMsg, WPARAM w // ============================================================================ // // DEBUGGER ROUTINES -// +// // ============================================================================ // ----------------- @@ -438,7 +438,7 @@ LPWORD WINAPI DLLExport GetDebugTree(LPRDATA rdPtr) // ----------------- // This routine returns the text of a given item. // -void WINAPI DLLExport GetDebugItem(LPSTR pBuffer, LPRDATA rdPtr, int id) +void WINAPI DLLExport GetDebugItem(LPTSTR pBuffer, LPRDATA rdPtr, int id) { #if !defined(RUN_ONLY) diff --git a/MMF2SDK/VOLINFO/res/EXTICON.BMP b/MMF2SDK_Unicode/VOLINFO/res/EXTICON.BMP similarity index 100% rename from MMF2SDK/VOLINFO/res/EXTICON.BMP rename to MMF2SDK_Unicode/VOLINFO/res/EXTICON.BMP diff --git a/MMF2SDK/VOLINFO/res/EXTIMG.BMP b/MMF2SDK_Unicode/VOLINFO/res/EXTIMG.BMP similarity index 100% rename from MMF2SDK/VOLINFO/res/EXTIMG.BMP rename to MMF2SDK_Unicode/VOLINFO/res/EXTIMG.BMP diff --git a/rSDK/Inc/zconf.h b/rSDK/Inc/zconf.h index 5e1d68a0..828ca617 100644 --- a/rSDK/Inc/zconf.h +++ b/rSDK/Inc/zconf.h @@ -1,5 +1,5 @@ /* zconf.h -- configuration of the zlib compression library - * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler + * Copyright (C) 1995-2026 Jean-loup Gailly, Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -33,14 +33,21 @@ # ifndef Z_SOLO # define compress z_compress # define compress2 z_compress2 +# define compress_z z_compress_z +# define compress2_z z_compress2_z # define compressBound z_compressBound +# define compressBound_z z_compressBound_z # endif # define crc32 z_crc32 # define crc32_combine z_crc32_combine # define crc32_combine64 z_crc32_combine64 +# define crc32_combine_gen z_crc32_combine_gen +# define crc32_combine_gen64 z_crc32_combine_gen64 +# define crc32_combine_op z_crc32_combine_op # define crc32_z z_crc32_z # define deflate z_deflate # define deflateBound z_deflateBound +# define deflateBound_z z_deflateBound_z # define deflateCopy z_deflateCopy # define deflateEnd z_deflateEnd # define deflateGetDictionary z_deflateGetDictionary @@ -56,6 +63,7 @@ # define deflateSetDictionary z_deflateSetDictionary # define deflateSetHeader z_deflateSetHeader # define deflateTune z_deflateTune +# define deflateUsed z_deflateUsed # define deflate_copyright z_deflate_copyright # define get_crc_table z_get_crc_table # ifndef Z_SOLO @@ -125,9 +133,12 @@ # define inflate_copyright z_inflate_copyright # define inflate_fast z_inflate_fast # define inflate_table z_inflate_table +# define inflate_fixed z_inflate_fixed # ifndef Z_SOLO # define uncompress z_uncompress # define uncompress2 z_uncompress2 +# define uncompress_z z_uncompress_z +# define uncompress2_z z_uncompress2_z # endif # define zError z_zError # ifndef Z_SOLO @@ -231,14 +242,20 @@ # endif #endif -#if defined(ZLIB_CONST) && !defined(z_const) -# define z_const const -#else -# define z_const +#ifndef z_const +# ifdef ZLIB_CONST +# define z_const const +# else +# define z_const +# endif #endif #ifdef Z_SOLO - typedef unsigned long z_size_t; +# ifdef _WIN64 + typedef unsigned long long z_size_t; +# else + typedef unsigned long z_size_t; +# endif #else # define z_longlong long long # if defined(NO_SIZE_T) @@ -293,14 +310,6 @@ # endif #endif -#ifndef Z_ARG /* function prototypes for stdarg */ -# if defined(STDC) || defined(Z_HAVE_STDARG_H) -# define Z_ARG(args) args -# else -# define Z_ARG(args) () -# endif -#endif - /* The following definitions for FAR are needed only for MSDOS mixed * model programming (small or medium model with some far allocations). * This was tested only with MSC; for other MSDOS compilers you may have @@ -349,6 +358,9 @@ # ifdef FAR # undef FAR # endif +# ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN +# endif # include /* No need for _export, use ZLIB.DEF instead. */ /* For complete Windows compatibility, use WINAPI, not __stdcall. */ @@ -431,11 +443,11 @@ typedef uLong FAR uLongf; typedef unsigned long z_crc_t; #endif -#ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */ +#if HAVE_UNISTD_H-0 /* may be set to #if 1 by ./configure */ # define Z_HAVE_UNISTD_H #endif -#ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */ +#if HAVE_STDARG_H-0 /* may be set to #if 1 by ./configure */ # define Z_HAVE_STDARG_H #endif @@ -467,11 +479,14 @@ typedef uLong FAR uLongf; # undef _LARGEFILE64_SOURCE #endif -#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H) -# define Z_HAVE_UNISTD_H +#ifndef Z_HAVE_UNISTD_H +# if defined(__WATCOMC__) || defined(__GO32__) || \ + (defined(_LARGEFILE64_SOURCE) && !defined(_WIN32)) +# define Z_HAVE_UNISTD_H +# endif #endif #ifndef Z_SOLO -# if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE) +# if defined(Z_HAVE_UNISTD_H) # include /* for SEEK_*, off_t, and _LFS64_LARGEFILE */ # ifdef VMS # include /* for off_t */ @@ -501,17 +516,19 @@ typedef uLong FAR uLongf; #endif #ifndef z_off_t -# define z_off_t long +# define z_off_t long long #endif #if !defined(_WIN32) && defined(Z_LARGE64) # define z_off64_t off64_t +#elif defined(__MINGW32__) +# define z_off64_t long long +#elif defined(_WIN32) && !defined(__GNUC__) +# define z_off64_t __int64 +#elif defined(__GO32__) +# define z_off64_t offset_t #else -# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO) -# define z_off64_t __int64 -# else -# define z_off64_t z_off_t -# endif +# define z_off64_t z_off_t #endif /* MVS linker does not support external names larger than 8 bytes */ diff --git a/rSDK/Inc/zlib.h b/rSDK/Inc/zlib.h index f09cdaf1..a57d3361 100644 --- a/rSDK/Inc/zlib.h +++ b/rSDK/Inc/zlib.h @@ -1,7 +1,7 @@ /* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.2.11, January 15th, 2017 + version 1.3.2, February 17th, 2026 - Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler + Copyright (C) 1995-2026 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -24,24 +24,28 @@ The data format used by the zlib library is described by RFCs (Request for - Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950 + Comments) 1950 to 1952 at https://datatracker.ietf.org/doc/html/rfc1950 (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format). */ #ifndef ZLIB_H #define ZLIB_H -#include "zconf.h" +#ifdef ZLIB_BUILD +# include +#else +# include "zconf.h" +#endif #ifdef __cplusplus extern "C" { #endif -#define ZLIB_VERSION "1.2.11" -#define ZLIB_VERNUM 0x12b0 +#define ZLIB_VERSION "1.3.2" +#define ZLIB_VERNUM 0x1320 #define ZLIB_VER_MAJOR 1 -#define ZLIB_VER_MINOR 2 -#define ZLIB_VER_REVISION 11 +#define ZLIB_VER_MINOR 3 +#define ZLIB_VER_REVISION 2 #define ZLIB_VER_SUBREVISION 0 /* @@ -78,8 +82,8 @@ extern "C" { even in the case of corrupted input. */ -typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); -typedef void (*free_func) OF((voidpf opaque, voidpf address)); +typedef voidpf (*alloc_func)(voidpf opaque, uInt items, uInt size); +typedef void (*free_func)(voidpf opaque, voidpf address); struct internal_state; @@ -217,7 +221,7 @@ typedef gz_header FAR *gz_headerp; /* basic functions */ -ZEXTERN const char * ZEXPORT zlibVersion OF((void)); +ZEXTERN const char * ZEXPORT zlibVersion(void); /* The application can compare zlibVersion and ZLIB_VERSION for consistency. If the first character differs, the library code actually used is not compatible with the zlib.h header file used by the application. This check @@ -225,12 +229,12 @@ ZEXTERN const char * ZEXPORT zlibVersion OF((void)); */ /* -ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); +ZEXTERN int ZEXPORT deflateInit(z_streamp strm, int level); Initializes the internal stream state for compression. The fields zalloc, zfree and opaque must be initialized before by the caller. If zalloc and zfree are set to Z_NULL, deflateInit updates them to use default - allocation functions. + allocation functions. total_in, total_out, adler, and msg are initialized. The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: 1 gives best speed, 9 gives best compression, 0 gives no compression at all @@ -247,7 +251,7 @@ ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); */ -ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); +ZEXTERN int ZEXPORT deflate(z_streamp strm, int flush); /* deflate compresses as much data as possible, and stops when the input buffer becomes empty or the output buffer becomes full. It may introduce @@ -276,7 +280,7 @@ ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); == 0), or after each call of deflate(). If deflate returns Z_OK and with zero avail_out, it must be called again after making room in the output buffer because there might be more output pending. See deflatePending(), - which can be used if desired to determine whether or not there is more ouput + which can be used if desired to determine whether or not there is more output in that case. Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to @@ -320,8 +324,8 @@ ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); with the same value of the flush parameter and more output space (updated avail_out), until the flush is complete (deflate returns with non-zero avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that - avail_out is greater than six to avoid repeated flush markers due to - avail_out == 0 on return. + avail_out is greater than six when the flush marker begins, in order to avoid + repeated flush markers upon calling deflate() again when avail_out == 0. If the parameter flush is set to Z_FINISH, pending input is processed, pending output is flushed and deflate returns with Z_STREAM_END if there was @@ -360,7 +364,7 @@ ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); */ -ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); +ZEXTERN int ZEXPORT deflateEnd(z_streamp strm); /* All dynamically allocated data structures for this stream are freed. This function discards any unprocessed input and does not flush any pending @@ -375,7 +379,7 @@ ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); /* -ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); +ZEXTERN int ZEXPORT inflateInit(z_streamp strm); Initializes the internal stream state for decompression. The fields next_in, avail_in, zalloc, zfree and opaque must be initialized before by @@ -383,7 +387,8 @@ ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); read or consumed. The allocation of a sliding window will be deferred to the first call of inflate (if the decompression does not complete on the first call). If zalloc and zfree are set to Z_NULL, inflateInit updates - them to use default allocation functions. + them to use default allocation functions. total_in, total_out, adler, and + msg are initialized. inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_VERSION_ERROR if the zlib library version is incompatible with the @@ -397,7 +402,7 @@ ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); */ -ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); +ZEXTERN int ZEXPORT inflate(z_streamp strm, int flush); /* inflate decompresses as much data as possible, and stops when the input buffer becomes empty or the output buffer becomes full. It may introduce @@ -440,7 +445,7 @@ ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); The Z_BLOCK option assists in appending to or combining deflate streams. To assist in this, on return inflate() always sets strm->data_type to the - number of unused bits in the last byte taken from strm->next_in, plus 64 if + number of unused bits in the input taken from strm->next_in, plus 64 if inflate() is currently decoding the last block in the deflate stream, plus 128 if inflate() returned immediately after decoding an end-of-block code or decoding the complete header up to just before the first byte of the deflate @@ -517,7 +522,7 @@ ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); */ -ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); +ZEXTERN int ZEXPORT inflateEnd(z_streamp strm); /* All dynamically allocated data structures for this stream are freed. This function discards any unprocessed input and does not flush any pending @@ -535,16 +540,15 @@ ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); */ /* -ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, - int level, - int method, - int windowBits, - int memLevel, - int strategy)); +ZEXTERN int ZEXPORT deflateInit2(z_streamp strm, + int level, + int method, + int windowBits, + int memLevel, + int strategy); This is another version of deflateInit with more compression options. The - fields next_in, zalloc, zfree and opaque must be initialized before by the - caller. + fields zalloc, zfree and opaque must be initialized before by the caller. The method parameter is the compression method. It must be Z_DEFLATED in this version of the library. @@ -587,18 +591,21 @@ ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, The strategy parameter is used to tune the compression algorithm. Use the value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a - filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no - string match), or Z_RLE to limit match distances to one (run-length - encoding). Filtered data consists mostly of small values with a somewhat - random distribution. In this case, the compression algorithm is tuned to - compress them better. The effect of Z_FILTERED is to force more Huffman - coding and less string matching; it is somewhat intermediate between - Z_DEFAULT_STRATEGY and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as - fast as Z_HUFFMAN_ONLY, but give better compression for PNG image data. The - strategy parameter only affects the compression ratio but not the - correctness of the compressed output even if it is not set appropriately. - Z_FIXED prevents the use of dynamic Huffman codes, allowing for a simpler - decoder for special applications. + filter (or predictor), Z_RLE to limit match distances to one (run-length + encoding), or Z_HUFFMAN_ONLY to force Huffman encoding only (no string + matching). Filtered data consists mostly of small values with a somewhat + random distribution, as produced by the PNG filters. In this case, the + compression algorithm is tuned to compress them better. The effect of + Z_FILTERED is to force more Huffman coding and less string matching than the + default; it is intermediate between Z_DEFAULT_STRATEGY and Z_HUFFMAN_ONLY. + Z_RLE is almost as fast as Z_HUFFMAN_ONLY, but should give better + compression for PNG image data than Huffman only. The degree of string + matching from most to none is: Z_DEFAULT_STRATEGY, Z_FILTERED, Z_RLE, then + Z_HUFFMAN_ONLY. The strategy parameter affects the compression ratio but + never the correctness of the compressed output, even if it is not set + optimally for the given data. Z_FIXED uses the default string matching, but + prevents the use of dynamic Huffman codes, allowing for a simpler decoder + for special applications. deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_STREAM_ERROR if any parameter is invalid (such as an invalid @@ -608,9 +615,9 @@ ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, compression: this will be done by deflate(). */ -ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); +ZEXTERN int ZEXPORT deflateSetDictionary(z_streamp strm, + const Bytef *dictionary, + uInt dictLength); /* Initializes the compression dictionary from the given byte sequence without producing any compressed output. When using the zlib format, this @@ -652,16 +659,16 @@ ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, not perform any compression: this will be done by deflate(). */ -ZEXTERN int ZEXPORT deflateGetDictionary OF((z_streamp strm, - Bytef *dictionary, - uInt *dictLength)); +ZEXTERN int ZEXPORT deflateGetDictionary(z_streamp strm, + Bytef *dictionary, + uInt *dictLength); /* Returns the sliding dictionary being maintained by deflate. dictLength is set to the number of bytes in the dictionary, and that many bytes are copied to dictionary. dictionary must have enough space, where 32768 bytes is always enough. If deflateGetDictionary() is called with dictionary equal to Z_NULL, then only the dictionary length is returned, and nothing is copied. - Similary, if dictLength is Z_NULL, then it is not set. + Similarly, if dictLength is Z_NULL, then it is not set. deflateGetDictionary() may return a length less than the window size, even when more than the window size in input has been provided. It may return up @@ -674,8 +681,8 @@ ZEXTERN int ZEXPORT deflateGetDictionary OF((z_streamp strm, stream state is inconsistent. */ -ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, - z_streamp source)); +ZEXTERN int ZEXPORT deflateCopy(z_streamp dest, + z_streamp source); /* Sets the destination stream as a complete copy of the source stream. @@ -692,31 +699,32 @@ ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, destination. */ -ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); +ZEXTERN int ZEXPORT deflateReset(z_streamp strm); /* This function is equivalent to deflateEnd followed by deflateInit, but does not free and reallocate the internal compression state. The stream will leave the compression level and any other attributes that may have been - set unchanged. + set unchanged. total_in, total_out, adler, and msg are initialized. deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source stream state was inconsistent (such as zalloc or state being Z_NULL). */ -ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, - int level, - int strategy)); +ZEXTERN int ZEXPORT deflateParams(z_streamp strm, + int level, + int strategy); /* Dynamically update the compression level and compression strategy. The interpretation of level and strategy is as in deflateInit2(). This can be used to switch between compression and straight copy of the input data, or to switch to a different kind of input data requiring a different strategy. If the compression approach (which is a function of the level) or the - strategy is changed, and if any input has been consumed in a previous - deflate() call, then the input available so far is compressed with the old - level and strategy using deflate(strm, Z_BLOCK). There are three approaches - for the compression levels 0, 1..3, and 4..9 respectively. The new level - and strategy will take effect at the next call of deflate(). + strategy is changed, and if there have been any deflate() calls since the + state was initialized or reset, then the input available so far is + compressed with the old level and strategy using deflate(strm, Z_BLOCK). + There are three approaches for the compression levels 0, 1..3, and 4..9 + respectively. The new level and strategy will take effect at the next call + of deflate(). If a deflate(strm, Z_BLOCK) is performed by deflateParams(), and it does not have enough output space to complete, then the parameter change will not @@ -729,7 +737,7 @@ ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, Then no more input data should be provided before the deflateParams() call. If this is done, the old level and strategy will be applied to the data compressed before deflateParams(), and the new level and strategy will be - applied to the the data compressed after deflateParams(). + applied to the data compressed after deflateParams(). deflateParams returns Z_OK on success, Z_STREAM_ERROR if the source stream state was inconsistent or if a parameter was invalid, or Z_BUF_ERROR if @@ -740,11 +748,11 @@ ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, retried with more output space. */ -ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, - int good_length, - int max_lazy, - int nice_length, - int max_chain)); +ZEXTERN int ZEXPORT deflateTune(z_streamp strm, + int good_length, + int max_lazy, + int nice_length, + int max_chain); /* Fine tune deflate's internal compression parameters. This should only be used by someone who understands the algorithm used by zlib's deflate for @@ -757,8 +765,8 @@ ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream. */ -ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, - uLong sourceLen)); +ZEXTERN uLong ZEXPORT deflateBound(z_streamp strm, uLong sourceLen); +ZEXTERN z_size_t ZEXPORT deflateBound_z(z_streamp strm, z_size_t sourceLen); /* deflateBound() returns an upper bound on the compressed size after deflation of sourceLen bytes. It must be called after deflateInit() or @@ -770,11 +778,14 @@ ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, to return Z_STREAM_END. Note that it is possible for the compressed size to be larger than the value returned by deflateBound() if flush options other than Z_FINISH or Z_NO_FLUSH are used. + + delfateBound_z() is the same, but takes and returns a size_t length. Note + that a long is 32 bits on Windows. */ -ZEXTERN int ZEXPORT deflatePending OF((z_streamp strm, - unsigned *pending, - int *bits)); +ZEXTERN int ZEXPORT deflatePending(z_streamp strm, + unsigned *pending, + int *bits); /* deflatePending() returns the number of bytes and bits of output that have been generated, but not yet provided in the available output. The bytes not @@ -784,12 +795,27 @@ ZEXTERN int ZEXPORT deflatePending OF((z_streamp strm, or bits are Z_NULL, then those values are not set. deflatePending returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. If an int is 16 bits and memLevel is 9, then + it is possible for the number of pending bytes to not fit in an unsigned. In + that case Z_BUF_ERROR is returned and *pending is set to the maximum value + of an unsigned. + */ + +ZEXTERN int ZEXPORT deflateUsed(z_streamp strm, + int *bits); +/* + deflateUsed() returns in *bits the most recent number of deflate bits used + in the last byte when flushing to a byte boundary. The result is in 1..8, or + 0 if there has not yet been a flush. This helps determine the location of + the last bit of a deflate stream. + + deflateUsed returns Z_OK if success, or Z_STREAM_ERROR if the source stream state was inconsistent. */ -ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, - int bits, - int value)); +ZEXTERN int ZEXPORT deflatePrime(z_streamp strm, + int bits, + int value); /* deflatePrime() inserts bits in the deflate output stream. The intent is that this function is used to start off the deflate output with the bits @@ -804,8 +830,8 @@ ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, source stream state was inconsistent. */ -ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, - gz_headerp head)); +ZEXTERN int ZEXPORT deflateSetHeader(z_streamp strm, + gz_headerp head); /* deflateSetHeader() provides gzip header information for when a gzip stream is requested by deflateInit2(). deflateSetHeader() may be called @@ -821,16 +847,17 @@ ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, gzip file" and give up. If deflateSetHeader is not used, the default gzip header has text false, - the time set to zero, and os set to 255, with no extra, name, or comment - fields. The gzip header is returned to the default state by deflateReset(). + the time set to zero, and os set to the current operating system, with no + extra, name, or comment fields. The gzip header is returned to the default + state by deflateReset(). deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source stream state was inconsistent. */ /* -ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, - int windowBits)); +ZEXTERN int ZEXPORT inflateInit2(z_streamp strm, + int windowBits); This is another version of inflateInit with an extra parameter. The fields next_in, avail_in, zalloc, zfree and opaque must be initialized @@ -865,9 +892,11 @@ ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, detection, or add 16 to decode only the gzip format (the zlib format will return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is a CRC-32 instead of an Adler-32. Unlike the gunzip utility and gzread() (see - below), inflate() will not automatically decode concatenated gzip streams. - inflate() will return Z_STREAM_END at the end of the gzip stream. The state - would need to be reset to continue decoding a subsequent gzip stream. + below), inflate() will *not* automatically decode concatenated gzip members. + inflate() will return Z_STREAM_END at the end of the gzip member. The state + would need to be reset to continue decoding a subsequent gzip member. This + *must* be done if there is more data after a gzip member, in order for the + decompression to be compliant with the gzip standard (RFC 1952). inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_VERSION_ERROR if the zlib library version is incompatible with the @@ -881,9 +910,9 @@ ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, deferred until inflate() is called. */ -ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); +ZEXTERN int ZEXPORT inflateSetDictionary(z_streamp strm, + const Bytef *dictionary, + uInt dictLength); /* Initializes the decompression dictionary from the given uncompressed byte sequence. This function must be called immediately after a call of inflate, @@ -904,22 +933,22 @@ ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, inflate(). */ -ZEXTERN int ZEXPORT inflateGetDictionary OF((z_streamp strm, - Bytef *dictionary, - uInt *dictLength)); +ZEXTERN int ZEXPORT inflateGetDictionary(z_streamp strm, + Bytef *dictionary, + uInt *dictLength); /* Returns the sliding dictionary being maintained by inflate. dictLength is set to the number of bytes in the dictionary, and that many bytes are copied to dictionary. dictionary must have enough space, where 32768 bytes is always enough. If inflateGetDictionary() is called with dictionary equal to Z_NULL, then only the dictionary length is returned, and nothing is copied. - Similary, if dictLength is Z_NULL, then it is not set. + Similarly, if dictLength is Z_NULL, then it is not set. inflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the stream state is inconsistent. */ -ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); +ZEXTERN int ZEXPORT inflateSync(z_streamp strm); /* Skips invalid compressed data until a possible full flush point (see above for the description of deflate with Z_FULL_FLUSH) can be found, or until all @@ -932,14 +961,14 @@ ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); inflateSync returns Z_OK if a possible full flush point has been found, Z_BUF_ERROR if no more input was provided, Z_DATA_ERROR if no flush point has been found, or Z_STREAM_ERROR if the stream structure was inconsistent. - In the success case, the application may save the current current value of - total_in which indicates where valid compressed data was found. In the - error case, the application may repeatedly call inflateSync, providing more - input each time, until success or end of the input data. + In the success case, the application may save the current value of total_in + which indicates where valid compressed data was found. In the error case, + the application may repeatedly call inflateSync, providing more input each + time, until success or end of the input data. */ -ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, - z_streamp source)); +ZEXTERN int ZEXPORT inflateCopy(z_streamp dest, + z_streamp source); /* Sets the destination stream as a complete copy of the source stream. @@ -954,18 +983,19 @@ ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, destination. */ -ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); +ZEXTERN int ZEXPORT inflateReset(z_streamp strm); /* This function is equivalent to inflateEnd followed by inflateInit, but does not free and reallocate the internal decompression state. The stream will keep attributes that may have been set by inflateInit2. + total_in, total_out, adler, and msg are initialized. inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source stream state was inconsistent (such as zalloc or state being Z_NULL). */ -ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, - int windowBits)); +ZEXTERN int ZEXPORT inflateReset2(z_streamp strm, + int windowBits); /* This function is the same as inflateReset, but it also permits changing the wrap and window size requests. The windowBits parameter is interpreted @@ -978,17 +1008,19 @@ ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, the windowBits parameter is invalid. */ -ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, - int bits, - int value)); +ZEXTERN int ZEXPORT inflatePrime(z_streamp strm, + int bits, + int value); /* - This function inserts bits in the inflate input stream. The intent is - that this function is used to start inflating at a bit position in the - middle of a byte. The provided bits will be used before any bytes are used - from next_in. This function should only be used with raw inflate, and - should be used before the first inflate() call after inflateInit2() or - inflateReset(). bits must be less than or equal to 16, and that many of the - least significant bits of value will be inserted in the input. + This function inserts bits in the inflate input stream. The intent is to + use inflatePrime() to start inflating at a bit position in the middle of a + byte. The provided bits will be used before any bytes are used from + next_in. This function should be used with raw inflate, before the first + inflate() call, after inflateInit2() or inflateReset(). It can also be used + after an inflate() return indicates the end of a deflate block or header + when using Z_BLOCK. bits must be less than or equal to 16, and that many of + the least significant bits of value will be inserted in the input. The + other bits in value can be non-zero, and will be ignored. If bits is negative, then the input stream bit buffer is emptied. Then inflatePrime() can be called again to put bits in the buffer. This is used @@ -996,10 +1028,18 @@ ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, to feeding inflate codes. inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. + stream state was inconsistent, or if bits is out of range. If inflate was + in the middle of processing a header, trailer, or stored block lengths, then + it is possible for there to be only eight bits available in the bit buffer. + In that case, bits > 8 is considered out of range. However, when used as + outlined above, there will always be 16 bits available in the buffer for + insertion. As noted in its documentation above, inflate records the number + of bits in the bit buffer on return in data_type. 32 minus that is the + number of bits available for insertion. inflatePrime does not update + data_type with the new number of bits in buffer. */ -ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm)); +ZEXTERN long ZEXPORT inflateMark(z_streamp strm); /* This function returns two values, one in the lower 16 bits of the return value, and the other in the remaining upper bits, obtained by shifting the @@ -1027,8 +1067,8 @@ ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm)); source stream state was inconsistent. */ -ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, - gz_headerp head)); +ZEXTERN int ZEXPORT inflateGetHeader(z_streamp strm, + gz_headerp head); /* inflateGetHeader() requests that gzip header information be stored in the provided gz_header structure. inflateGetHeader() may be called after @@ -1042,20 +1082,22 @@ ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, The text, time, xflags, and os fields are filled in with the gzip header contents. hcrc is set to true if there is a header CRC. (The header CRC - was valid if done is set to one.) If extra is not Z_NULL, then extra_max - contains the maximum number of bytes to write to extra. Once done is true, - extra_len contains the actual extra field length, and extra contains the - extra field, or that field truncated if extra_max is less than extra_len. - If name is not Z_NULL, then up to name_max characters are written there, - terminated with a zero unless the length is greater than name_max. If - comment is not Z_NULL, then up to comm_max characters are written there, - terminated with a zero unless the length is greater than comm_max. When any - of extra, name, or comment are not Z_NULL and the respective field is not - present in the header, then that field is set to Z_NULL to signal its - absence. This allows the use of deflateSetHeader() with the returned - structure to duplicate the header. However if those fields are set to - allocated memory, then the application will need to save those pointers - elsewhere so that they can be eventually freed. + was valid if done is set to one.) The extra, name, and comment pointers + much each be either Z_NULL or point to space to store that information from + the header. If extra is not Z_NULL, then extra_max contains the maximum + number of bytes that can be written to extra. Once done is true, extra_len + contains the actual extra field length, and extra contains the extra field, + or that field truncated if extra_max is less than extra_len. If name is not + Z_NULL, then up to name_max characters, including the terminating zero, are + written there. If comment is not Z_NULL, then up to comm_max characters, + including the terminating zero, are written there. The application can tell + that the name or comment did not fit in the provided space by the absence of + a terminating zero. If any of extra, name, or comment are not present in + the header, then that field's pointer is set to Z_NULL. This allows the use + of deflateSetHeader() with the returned structure to duplicate the header. + Note that if those fields initially pointed to allocated memory, then the + application will need to save them elsewhere so that they can be eventually + freed. If inflateGetHeader is not used, then the header information is simply discarded. The header is always checked for validity, including the header @@ -1068,8 +1110,8 @@ ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, */ /* -ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, - unsigned char FAR *window)); +ZEXTERN int ZEXPORT inflateBackInit(z_streamp strm, int windowBits, + unsigned char FAR *window); Initialize the internal stream state for decompression using inflateBack() calls. The fields zalloc, zfree and opaque in strm must be initialized @@ -1089,13 +1131,13 @@ ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, the version of the header file. */ -typedef unsigned (*in_func) OF((void FAR *, - z_const unsigned char FAR * FAR *)); -typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); +typedef unsigned (*in_func)(void FAR *, + z_const unsigned char FAR * FAR *); +typedef int (*out_func)(void FAR *, unsigned char FAR *, unsigned); -ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, - in_func in, void FAR *in_desc, - out_func out, void FAR *out_desc)); +ZEXTERN int ZEXPORT inflateBack(z_streamp strm, + in_func in, void FAR *in_desc, + out_func out, void FAR *out_desc); /* inflateBack() does a raw inflate with a single call using a call-back interface for input and output. This is potentially more efficient than @@ -1163,7 +1205,7 @@ ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, cannot return Z_OK. */ -ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); +ZEXTERN int ZEXPORT inflateBackEnd(z_streamp strm); /* All memory allocated by inflateBackInit() is freed. @@ -1171,7 +1213,7 @@ ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); state was inconsistent. */ -ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); +ZEXTERN uLong ZEXPORT zlibCompileFlags(void); /* Return flags indicating compile-time options. Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other: @@ -1203,13 +1245,14 @@ ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); 21: FASTEST -- deflate algorithm with only one, lowest compression level 22,23: 0 (reserved) - The sprintf variant used by gzprintf (zero is best): + The sprintf variant used by gzprintf (all zeros is best): 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format - 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure! + 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() is not secure! 26: 0 = returns value, 1 = void -- 1 means inferred string length returned + 27: 0 = gzprintf() present, 1 = not -- 1 means gzprintf() returns an error Remainder: - 27-31: 0 (reserved) + 28-31: 0 (reserved) */ #ifndef Z_SOLO @@ -1221,11 +1264,14 @@ ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); stream-oriented functions. To simplify the interface, some default options are assumed (compression level and memory usage, standard memory allocation functions). The source code of these utility functions can be modified if - you need special options. + you need special options. The _z versions of the functions use the size_t + type for lengths. Note that a long is 32 bits on Windows. */ -ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); +ZEXTERN int ZEXPORT compress(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen); +ZEXTERN int ZEXPORT compress_z(Bytef *dest, z_size_t *destLen, + const Bytef *source, z_size_t sourceLen); /* Compresses the source buffer into the destination buffer. sourceLen is the byte length of the source buffer. Upon entry, destLen is the total size @@ -1239,9 +1285,12 @@ ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, buffer. */ -ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen, - int level)); +ZEXTERN int ZEXPORT compress2(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen, + int level); +ZEXTERN int ZEXPORT compress2_z(Bytef *dest, z_size_t *destLen, + const Bytef *source, z_size_t sourceLen, + int level); /* Compresses the source buffer into the destination buffer. The level parameter has the same meaning as in deflateInit. sourceLen is the byte @@ -1255,22 +1304,25 @@ ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, Z_STREAM_ERROR if the level parameter is invalid. */ -ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); +ZEXTERN uLong ZEXPORT compressBound(uLong sourceLen); +ZEXTERN z_size_t ZEXPORT compressBound_z(z_size_t sourceLen); /* compressBound() returns an upper bound on the compressed size after compress() or compress2() on sourceLen bytes. It would be used before a compress() or compress2() call to allocate the destination buffer. */ -ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); +ZEXTERN int ZEXPORT uncompress(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen); +ZEXTERN int ZEXPORT uncompress_z(Bytef *dest, z_size_t *destLen, + const Bytef *source, z_size_t sourceLen); /* Decompresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total size + the byte length of the source buffer. On entry, *destLen is the total size of the destination buffer, which must be large enough to hold the entire uncompressed data. (The size of the uncompressed data must have been saved previously by the compressor and transmitted to the decompressor by some - mechanism outside the scope of this compression library.) Upon exit, destLen + mechanism outside the scope of this compression library.) On exit, *destLen is the actual size of the uncompressed data. uncompress returns Z_OK if success, Z_MEM_ERROR if there was not @@ -1280,8 +1332,10 @@ ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, buffer with the uncompressed data up to that point. */ -ZEXTERN int ZEXPORT uncompress2 OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong *sourceLen)); +ZEXTERN int ZEXPORT uncompress2(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong *sourceLen); +ZEXTERN int ZEXPORT uncompress2_z(Bytef *dest, z_size_t *destLen, + const Bytef *source, z_size_t *sourceLen); /* Same as uncompress, except that sourceLen is a pointer, where the length of the source is *sourceLen. On return, *sourceLen is the number of @@ -1300,22 +1354,26 @@ ZEXTERN int ZEXPORT uncompress2 OF((Bytef *dest, uLongf *destLen, typedef struct gzFile_s *gzFile; /* semi-opaque gzip file descriptor */ /* -ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); +ZEXTERN gzFile ZEXPORT gzopen(const char *path, const char *mode); - Opens a gzip (.gz) file for reading or writing. The mode parameter is as - in fopen ("rb" or "wb") but can also include a compression level ("wb9") or - a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman-only - compression as in "wb1h", 'R' for run-length encoding as in "wb1R", or 'F' - for fixed code compression as in "wb9F". (See the description of - deflateInit2 for more information about the strategy parameter.) 'T' will - request transparent writing or appending with no compression and not using - the gzip format. + Open the gzip (.gz) file at path for reading and decompressing, or + compressing and writing. The mode parameter is as in fopen ("rb" or "wb") + but can also include a compression level ("wb9") or a strategy: 'f' for + filtered data as in "wb6f", 'h' for Huffman-only compression as in "wb1h", + 'R' for run-length encoding as in "wb1R", or 'F' for fixed code compression + as in "wb9F". (See the description of deflateInit2 for more information + about the strategy parameter.) 'T' will request transparent writing or + appending with no compression and not using the gzip format. 'T' cannot be + used to force transparent reading. Transparent reading is automatically + performed if there is no gzip header at the start. Transparent reading can + be disabled with the 'G' option, which will instead return an error if there + is no gzip header. 'N' will open the file in non-blocking mode. - "a" can be used instead of "w" to request that the gzip stream that will - be written be appended to the file. "+" will result in an error, since + 'a' can be used instead of 'w' to request that the gzip stream that will + be written be appended to the file. '+' will result in an error, since reading and writing to the same gzip file is not supported. The addition of - "x" when writing will create the file exclusively, which fails if the file - already exists. On systems that support it, the addition of "e" when + 'x' when writing will create the file exclusively, which fails if the file + already exists. On systems that support it, the addition of 'e' when reading or writing will set the flag to close the file on an execve() call. These functions, as well as gzip, will read and decode a sequence of gzip @@ -1334,14 +1392,22 @@ ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); insufficient memory to allocate the gzFile state, or if an invalid mode was specified (an 'r', 'w', or 'a' was not provided, or '+' was provided). errno can be checked to determine if the reason gzopen failed was that the - file could not be opened. + file could not be opened. Note that if 'N' is in mode for non-blocking, the + open() itself can fail in order to not block. In that case gzopen() will + return NULL and errno will be EAGAIN or ENONBLOCK. The call to gzopen() can + then be re-tried. If the application would like to block on opening the + file, then it can use open() without O_NONBLOCK, and then gzdopen() with the + resulting file descriptor and 'N' in the mode, which will set it to non- + blocking. */ -ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); +ZEXTERN gzFile ZEXPORT gzdopen(int fd, const char *mode); /* - gzdopen associates a gzFile with the file descriptor fd. File descriptors - are obtained from calls like open, dup, creat, pipe or fileno (if the file - has been previously opened with fopen). The mode parameter is as in gzopen. + Associate a gzFile with the file descriptor fd. File descriptors are + obtained from calls like open, dup, creat, pipe or fileno (if the file has + been previously opened with fopen). The mode parameter is as in gzopen. An + 'e' in mode will set fd's flag to close the file on an execve() call. An 'N' + in mode will set fd's non-blocking flag. The next call of gzclose on the returned gzFile will also close the file descriptor fd, just like fclose(fdopen(fd, mode)) closes the file descriptor @@ -1360,15 +1426,15 @@ ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); will not detect if fd is invalid (unless fd is -1). */ -ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); +ZEXTERN int ZEXPORT gzbuffer(gzFile file, unsigned size); /* - Set the internal buffer size used by this library's functions. The - default buffer size is 8192 bytes. This function must be called after - gzopen() or gzdopen(), and before any other calls that read or write the - file. The buffer memory allocation is always deferred to the first read or - write. Three times that size in buffer space is allocated. A larger buffer - size of, for example, 64K or 128K bytes will noticeably increase the speed - of decompression (reading). + Set the internal buffer size used by this library's functions for file to + size. The default buffer size is 8192 bytes. This function must be called + after gzopen() or gzdopen(), and before any other calls that read or write + the file. The buffer memory allocation is always deferred to the first read + or write. Three times that size in buffer space is allocated. A larger + buffer size of, for example, 64K or 128K bytes will noticeably increase the + speed of decompression (reading). The new buffer size also affects the maximum length for gzprintf(). @@ -1376,20 +1442,20 @@ ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); too late. */ -ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); +ZEXTERN int ZEXPORT gzsetparams(gzFile file, int level, int strategy); /* - Dynamically update the compression level or strategy. See the description - of deflateInit2 for the meaning of these parameters. Previously provided - data is flushed before the parameter change. + Dynamically update the compression level and strategy for file. See the + description of deflateInit2 for the meaning of these parameters. Previously + provided data is flushed before applying the parameter changes. gzsetparams returns Z_OK if success, Z_STREAM_ERROR if the file was not opened for writing, Z_ERRNO if there is an error writing the flushed data, or Z_MEM_ERROR if there is a memory allocation error. */ -ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); +ZEXTERN int ZEXPORT gzread(gzFile file, voidp buf, unsigned len); /* - Reads the given number of uncompressed bytes from the compressed file. If + Read and decompress up to len uncompressed bytes from file into buf. If the input file is not in gzip format, gzread copies the given number of bytes into the buffer directly from the file. @@ -1411,20 +1477,26 @@ ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); stream. Alternatively, gzerror can be used before gzclose to detect this case. + gzread can be used to read a gzip file on a non-blocking device. If the + input stalls and there is no uncompressed data to return, then gzread() will + return -1, and errno will be EAGAIN or EWOULDBLOCK. gzread() can then be + called again. + gzread returns the number of uncompressed bytes actually read, less than len for end of file, or -1 for error. If len is too large to fit in an int, then nothing is read, -1 is returned, and the error state is set to - Z_STREAM_ERROR. + Z_STREAM_ERROR. If some data was read before an error, then that data is + returned until exhausted, after which the next call will signal the error. */ -ZEXTERN z_size_t ZEXPORT gzfread OF((voidp buf, z_size_t size, z_size_t nitems, - gzFile file)); +ZEXTERN z_size_t ZEXPORT gzfread(voidp buf, z_size_t size, z_size_t nitems, + gzFile file); /* - Read up to nitems items of size size from file to buf, otherwise operating - as gzread() does. This duplicates the interface of stdio's fread(), with - size_t request and return types. If the library defines size_t, then - z_size_t is identical to size_t. If not, then z_size_t is an unsigned - integer type that can contain a pointer. + Read and decompress up to nitems items of size size from file into buf, + otherwise operating as gzread() does. This duplicates the interface of + stdio's fread(), with size_t request and return types. If the library + defines size_t, then z_size_t is identical to size_t. If not, then z_size_t + is an unsigned integer type that can contain a pointer. gzfread() returns the number of full items read of size size, or zero if the end of the file was reached and a full item could not be read, or if @@ -1435,26 +1507,29 @@ ZEXTERN z_size_t ZEXPORT gzfread OF((voidp buf, z_size_t size, z_size_t nitems, In the event that the end of file is reached and only a partial item is available at the end, i.e. the remaining uncompressed data length is not a - multiple of size, then the final partial item is nevetheless read into buf + multiple of size, then the final partial item is nevertheless read into buf and the end-of-file flag is set. The length of the partial item read is not provided, but could be inferred from the result of gztell(). This behavior - is the same as the behavior of fread() implementations in common libraries, - but it prevents the direct use of gzfread() to read a concurrently written - file, reseting and retrying on end-of-file, when size is not 1. + is the same as that of fread() implementations in common libraries. This + could result in data loss if used with size != 1 when reading a concurrently + written file or a non-blocking file. In that case, use size == 1 or gzread() + instead. */ -ZEXTERN int ZEXPORT gzwrite OF((gzFile file, - voidpc buf, unsigned len)); +ZEXTERN int ZEXPORT gzwrite(gzFile file, voidpc buf, unsigned len); /* - Writes the given number of uncompressed bytes into the compressed file. - gzwrite returns the number of uncompressed bytes written or 0 in case of - error. + Compress and write the len uncompressed bytes at buf to file. gzwrite + returns the number of uncompressed bytes written, or 0 in case of error or + if len is 0. If the write destination is non-blocking, then gzwrite() may + return a number of bytes written that is not 0 and less than len. + + If len does not fit in an int, then 0 is returned and nothing is written. */ -ZEXTERN z_size_t ZEXPORT gzfwrite OF((voidpc buf, z_size_t size, - z_size_t nitems, gzFile file)); +ZEXTERN z_size_t ZEXPORT gzfwrite(voidpc buf, z_size_t size, + z_size_t nitems, gzFile file); /* - gzfwrite() writes nitems items of size size from buf to file, duplicating + Compress and write nitems items of size size from buf to file, duplicating the interface of stdio's fwrite(), with size_t request and return types. If the library defines size_t, then z_size_t is identical to size_t. If not, then z_size_t is an unsigned integer type that can contain a pointer. @@ -1463,76 +1538,117 @@ ZEXTERN z_size_t ZEXPORT gzfwrite OF((voidpc buf, z_size_t size, if there was an error. If the multiplication of size and nitems overflows, i.e. the product does not fit in a z_size_t, then nothing is written, zero is returned, and the error state is set to Z_STREAM_ERROR. + + If writing a concurrently read file or a non-blocking file with size != 1, + a partial item could be written, with no way of knowing how much of it was + not written, resulting in data loss. In that case, use size == 1 or + gzwrite() instead. */ -ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...)); +#if defined(STDC) || defined(Z_HAVE_STDARG_H) +ZEXTERN int ZEXPORTVA gzprintf(gzFile file, const char *format, ...); +#else +ZEXTERN int ZEXPORTVA gzprintf(); +#endif /* - Converts, formats, and writes the arguments to the compressed file under - control of the format string, as in fprintf. gzprintf returns the number of + Convert, format, compress, and write the arguments (...) to file under + control of the string format, as in fprintf. gzprintf returns the number of uncompressed bytes actually written, or a negative zlib error code in case of error. The number of uncompressed bytes written is limited to 8191, or one less than the buffer size given to gzbuffer(). The caller should assure that this limit is not exceeded. If it is exceeded, then gzprintf() will - return an error (0) with nothing written. In this case, there may also be a - buffer overflow with unpredictable consequences, which is possible only if - zlib was compiled with the insecure functions sprintf() or vsprintf() - because the secure snprintf() or vsnprintf() functions were not available. - This can be determined using zlibCompileFlags(). + return an error (0) with nothing written. + + In that last case, there may also be a buffer overflow with unpredictable + consequences, which is possible only if zlib was compiled with the insecure + functions sprintf() or vsprintf(), because the secure snprintf() and + vsnprintf() functions were not available. That would only be the case for + a non-ANSI C compiler. zlib may have been built without gzprintf() because + secure functions were not available and having gzprintf() be insecure was + not an option, in which case, gzprintf() returns Z_STREAM_ERROR. All of + these possibilities can be determined using zlibCompileFlags(). + + If a Z_BUF_ERROR is returned, then nothing was written due to a stall on + the non-blocking write destination. */ -ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); +ZEXTERN int ZEXPORT gzputs(gzFile file, const char *s); /* - Writes the given null-terminated string to the compressed file, excluding + Compress and write the given null-terminated string s to file, excluding the terminating null character. gzputs returns the number of characters written, or -1 in case of error. + The number of characters written may be less than the length of the string + if the write destination is non-blocking. + + If the length of the string does not fit in an int, then -1 is returned + and nothing is written. */ -ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); +ZEXTERN char * ZEXPORT gzgets(gzFile file, char *buf, int len); /* - Reads bytes from the compressed file until len-1 characters are read, or a - newline character is read and transferred to buf, or an end-of-file - condition is encountered. If any characters are read or if len == 1, the - string is terminated with a null character. If no characters are read due - to an end-of-file or len < 1, then the buffer is left untouched. + Read and decompress bytes from file into buf, until len-1 characters are + read, or until a newline character is read and transferred to buf, or an + end-of-file condition is encountered. If any characters are read or if len + is one, the string is terminated with a null character. If no characters + are read due to an end-of-file or len is less than one, then the buffer is + left untouched. gzgets returns buf which is a null-terminated string, or it returns NULL - for end-of-file or in case of error. If there was an error, the contents at - buf are indeterminate. + for end-of-file or in case of error. If some data was read before an error, + then that data is returned until exhausted, after which the next call will + return NULL to signal the error. + + gzgets can be used on a file being concurrently written, and on a non- + blocking device, both as for gzread(). However lines may be broken in the + middle, leaving it up to the application to reassemble them as needed. */ -ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); +ZEXTERN int ZEXPORT gzputc(gzFile file, int c); /* - Writes c, converted to an unsigned char, into the compressed file. gzputc + Compress and write c, converted to an unsigned char, into file. gzputc returns the value that was written, or -1 in case of error. */ -ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); +ZEXTERN int ZEXPORT gzgetc(gzFile file); /* - Reads one byte from the compressed file. gzgetc returns this byte or -1 - in case of end of file or error. This is implemented as a macro for speed. - As such, it does not do all of the checking the other functions do. I.e. - it does not check to see if file is NULL, nor whether the structure file - points to has been clobbered or not. + Read and decompress one byte from file. gzgetc returns this byte or -1 in + case of end of file or error. If some data was read before an error, then + that data is returned until exhausted, after which the next call will return + -1 to signal the error. + + This is implemented as a macro for speed. As such, it does not do all of + the checking the other functions do. I.e. it does not check to see if file + is NULL, nor whether the structure file points to has been clobbered or not. + + gzgetc can be used to read a gzip file on a non-blocking device. If the + input stalls and there is no uncompressed data to return, then gzgetc() will + return -1, and errno will be EAGAIN or EWOULDBLOCK. gzread() can then be + called again. */ -ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); +ZEXTERN int ZEXPORT gzungetc(int c, gzFile file); /* - Push one character back onto the stream to be read as the first character - on the next read. At least one character of push-back is allowed. + Push c back onto the stream for file to be read as the first character on + the next read. At least one character of push-back is always allowed. gzungetc() returns the character pushed, or -1 on failure. gzungetc() will fail if c is -1, and may fail if a character has been pushed but not read yet. If gzungetc is used immediately after gzopen or gzdopen, at least the output buffer size of pushed characters is allowed. (See gzbuffer above.) The pushed character will be discarded if the stream is repositioned with gzseek() or gzrewind(). + + gzungetc(-1, file) will force any pending seek to execute. Then gztell() + will report the position, even if the requested seek reached end of file. + This can be used to determine the number of uncompressed bytes in a gzip + file without having to read it into a buffer. */ -ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); +ZEXTERN int ZEXPORT gzflush(gzFile file, int flush); /* - Flushes all pending output into the compressed file. The parameter flush - is as in the deflate() function. The return value is the zlib error number - (see function gzerror below). gzflush is only permitted when writing. + Flush all pending output to file. The parameter flush is as in the + deflate() function. The return value is the zlib error number (see function + gzerror below). gzflush is only permitted when writing. If the flush parameter is Z_FINISH, the remaining data is written and the gzip stream is completed in the output. If gzwrite() is called again, a new @@ -1544,18 +1660,19 @@ ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); */ /* -ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, - z_off_t offset, int whence)); +ZEXTERN z_off_t ZEXPORT gzseek(gzFile file, + z_off_t offset, int whence); - Sets the starting position for the next gzread or gzwrite on the given - compressed file. The offset represents a number of bytes in the + Set the starting position to offset relative to whence for the next gzread + or gzwrite on file. The offset represents a number of bytes in the uncompressed data stream. The whence parameter is defined as in lseek(2); the value SEEK_END is not supported. If the file is opened for reading, this function is emulated but can be extremely slow. If the file is opened for writing, only forward seeks are supported; gzseek then compresses a sequence of zeroes up to the new - starting position. + starting position. For reading or writing, any actual seeking is deferred + until the next read or write operation, or close operation when writing. gzseek returns the resulting offset location as measured in bytes from the beginning of the uncompressed stream, or -1 in case of error, in @@ -1563,52 +1680,52 @@ ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, would be before the current position. */ -ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); +ZEXTERN int ZEXPORT gzrewind(gzFile file); /* - Rewinds the given file. This function is supported only for reading. + Rewind file. This function is supported only for reading. - gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) + gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET). */ /* -ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); +ZEXTERN z_off_t ZEXPORT gztell(gzFile file); - Returns the starting position for the next gzread or gzwrite on the given - compressed file. This position represents a number of bytes in the - uncompressed data stream, and is zero when starting, even if appending or - reading a gzip stream from the middle of a file using gzdopen(). + Return the starting position for the next gzread or gzwrite on file. + This position represents a number of bytes in the uncompressed data stream, + and is zero when starting, even if appending or reading a gzip stream from + the middle of a file using gzdopen(). gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) */ /* -ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file)); +ZEXTERN z_off_t ZEXPORT gzoffset(gzFile file); - Returns the current offset in the file being read or written. This offset - includes the count of bytes that precede the gzip stream, for example when - appending or when using gzdopen() for reading. When reading, the offset - does not include as yet unused buffered input. This information can be used - for a progress indicator. On error, gzoffset() returns -1. + Return the current compressed (actual) read or write offset of file. This + offset includes the count of bytes that precede the gzip stream, for example + when appending or when using gzdopen() for reading. When reading, the + offset does not include as yet unused buffered input. This information can + be used for a progress indicator. On error, gzoffset() returns -1. */ -ZEXTERN int ZEXPORT gzeof OF((gzFile file)); +ZEXTERN int ZEXPORT gzeof(gzFile file); /* - Returns true (1) if the end-of-file indicator has been set while reading, - false (0) otherwise. Note that the end-of-file indicator is set only if the - read tried to go past the end of the input, but came up short. Therefore, - just like feof(), gzeof() may return false even if there is no more data to - read, in the event that the last read request was for the exact number of - bytes remaining in the input file. This will happen if the input file size - is an exact multiple of the buffer size. + Return true (1) if the end-of-file indicator for file has been set while + reading, false (0) otherwise. Note that the end-of-file indicator is set + only if the read tried to go past the end of the input, but came up short. + Therefore, just like feof(), gzeof() may return false even if there is no + more data to read, in the event that the last read request was for the exact + number of bytes remaining in the input file. This will happen if the input + file size is an exact multiple of the buffer size. If gzeof() returns true, then the read functions will return no more data, unless the end-of-file indicator is reset by gzclearerr() and the input file has grown since the previous end of file was detected. */ -ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); +ZEXTERN int ZEXPORT gzdirect(gzFile file); /* - Returns true (1) if file is being copied directly while reading, or false + Return true (1) if file is being copied directly while reading, or false (0) if file is a gzip stream being decompressed. If the input file is empty, gzdirect() will return true, since the input @@ -1616,8 +1733,11 @@ ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); If gzdirect() is used immediately after gzopen() or gzdopen() it will cause buffers to be allocated to allow reading the file to determine if it - is a gzip file. Therefore if gzbuffer() is used, it should be called before - gzdirect(). + is a gzip file. Therefore if gzbuffer() is used, it should be called before + gzdirect(). If the input is being written concurrently or the device is non- + blocking, then gzdirect() may give a different answer once four bytes of + input have been accumulated, which is what is needed to confirm or deny a + gzip header. Before this, gzdirect() will return true (1). When writing, gzdirect() returns true (1) if transparent writing was requested ("wT" for the gzopen() mode), or false (0) otherwise. (Note: @@ -1627,10 +1747,10 @@ ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); gzip file reading and decompression, which may not be desired.) */ -ZEXTERN int ZEXPORT gzclose OF((gzFile file)); +ZEXTERN int ZEXPORT gzclose(gzFile file); /* - Flushes all pending output if necessary, closes the compressed file and - deallocates the (de)compression state. Note that once file is closed, you + Flush all pending output for file, if necessary, close file and + deallocate the (de)compression state. Note that once file is closed, you cannot call gzerror with file, since its structures have been deallocated. gzclose must not be called more than once on the same file, just as free must not be called more than once on the same allocation. @@ -1640,8 +1760,8 @@ ZEXTERN int ZEXPORT gzclose OF((gzFile file)); last read ended in the middle of a gzip stream, or Z_OK on success. */ -ZEXTERN int ZEXPORT gzclose_r OF((gzFile file)); -ZEXTERN int ZEXPORT gzclose_w OF((gzFile file)); +ZEXTERN int ZEXPORT gzclose_r(gzFile file); +ZEXTERN int ZEXPORT gzclose_w(gzFile file); /* Same as gzclose(), but gzclose_r() is only for use when reading, and gzclose_w() is only for use when writing or appending. The advantage to @@ -1652,12 +1772,13 @@ ZEXTERN int ZEXPORT gzclose_w OF((gzFile file)); zlib library. */ -ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); +ZEXTERN const char * ZEXPORT gzerror(gzFile file, int *errnum); /* - Returns the error message for the last error which occurred on the given - compressed file. errnum is set to zlib error number. If an error occurred - in the file system and not in the compression library, errnum is set to - Z_ERRNO and the application may consult errno to get the exact error code. + Return the error message for the last error which occurred on file. + If errnum is not NULL, *errnum is set to zlib error number. If an error + occurred in the file system and not in the compression library, *errnum is + set to Z_ERRNO and the application may consult errno to get the exact error + code. The application must not modify the returned string. Future calls to this function may invalidate the previously returned string. If file is @@ -1668,9 +1789,9 @@ ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); functions above that do not distinguish those cases in their return values. */ -ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); +ZEXTERN void ZEXPORT gzclearerr(gzFile file); /* - Clears the error and end-of-file flags for file. This is analogous to the + Clear the error and end-of-file flags for file. This is analogous to the clearerr() function in stdio. This is useful for continuing to read a gzip file that is being written concurrently. */ @@ -1685,11 +1806,12 @@ ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); library. */ -ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); +ZEXTERN uLong ZEXPORT adler32(uLong adler, const Bytef *buf, uInt len); /* Update a running Adler-32 checksum with the bytes buf[0..len-1] and - return the updated checksum. If buf is Z_NULL, this function returns the - required initial value for the checksum. + return the updated checksum. An Adler-32 value is in the range of a 32-bit + unsigned integer. If buf is Z_NULL, this function returns the required + initial value for the checksum. An Adler-32 checksum is almost as reliable as a CRC-32 but can be computed much faster. @@ -1704,15 +1826,16 @@ ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); if (adler != original_adler) error(); */ -ZEXTERN uLong ZEXPORT adler32_z OF((uLong adler, const Bytef *buf, - z_size_t len)); +ZEXTERN uLong ZEXPORT adler32_z(uLong adler, const Bytef *buf, + z_size_t len); /* - Same as adler32(), but with a size_t length. + Same as adler32(), but with a size_t length. Note that a long is 32 bits + on Windows. */ /* -ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, - z_off_t len2)); +ZEXTERN uLong ZEXPORT adler32_combine(uLong adler1, uLong adler2, + z_off_t len2); Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for @@ -1722,12 +1845,13 @@ ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, negative, the result has no meaning or utility. */ -ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); +ZEXTERN uLong ZEXPORT crc32(uLong crc, const Bytef *buf, uInt len); /* Update a running CRC-32 with the bytes buf[0..len-1] and return the - updated CRC-32. If buf is Z_NULL, this function returns the required - initial value for the crc. Pre- and post-conditioning (one's complement) is - performed within this function so it shouldn't be done by the application. + updated CRC-32. A CRC-32 value is in the range of a 32-bit unsigned integer. + If buf is Z_NULL, this function returns the required initial value for the + crc. Pre- and post-conditioning (one's complement) is performed within this + function so it shouldn't be done by the application. Usage example: @@ -1739,20 +1863,35 @@ ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); if (crc != original_crc) error(); */ -ZEXTERN uLong ZEXPORT crc32_z OF((uLong adler, const Bytef *buf, - z_size_t len)); +ZEXTERN uLong ZEXPORT crc32_z(uLong crc, const Bytef *buf, + z_size_t len); /* - Same as crc32(), but with a size_t length. + Same as crc32(), but with a size_t length. Note that a long is 32 bits on + Windows. */ /* -ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); +ZEXTERN uLong ZEXPORT crc32_combine(uLong crc1, uLong crc2, z_off_t len2); Combine two CRC-32 check values into one. For two sequences of bytes, seq1 and seq2 with lengths len1 and len2, CRC-32 check values were calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32 check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and - len2. + len2. len2 must be non-negative, otherwise zero is returned. +*/ + +/* +ZEXTERN uLong ZEXPORT crc32_combine_gen(z_off_t len2); + + Return the operator corresponding to length len2, to be used with + crc32_combine_op(). len2 must be non-negative, otherwise zero is returned. +*/ + +ZEXTERN uLong ZEXPORT crc32_combine_op(uLong crc1, uLong crc2, uLong op); +/* + Give the same result as crc32_combine(), using op in place of len2. op is + is generated from len2 by crc32_combine_gen(). This will be faster than + crc32_combine() if the generated op is used more than once. */ @@ -1761,20 +1900,20 @@ ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); /* deflateInit and inflateInit are macros to allow checking the zlib version * and the compiler's view of z_stream: */ -ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, - int windowBits, int memLevel, - int strategy, const char *version, - int stream_size)); -ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, - unsigned char FAR *window, - const char *version, - int stream_size)); +ZEXTERN int ZEXPORT deflateInit_(z_streamp strm, int level, + const char *version, int stream_size); +ZEXTERN int ZEXPORT inflateInit_(z_streamp strm, + const char *version, int stream_size); +ZEXTERN int ZEXPORT deflateInit2_(z_streamp strm, int level, int method, + int windowBits, int memLevel, + int strategy, const char *version, + int stream_size); +ZEXTERN int ZEXPORT inflateInit2_(z_streamp strm, int windowBits, + const char *version, int stream_size); +ZEXTERN int ZEXPORT inflateBackInit_(z_streamp strm, int windowBits, + unsigned char FAR *window, + const char *version, + int stream_size); #ifdef Z_PREFIX_SET # define z_deflateInit(strm, level) \ deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream)) @@ -1819,7 +1958,7 @@ struct gzFile_s { unsigned char *next; z_off64_t pos; }; -ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ +ZEXTERN int ZEXPORT gzgetc_(gzFile file); /* backward compatibility */ #ifdef Z_PREFIX_SET # undef z_gzgetc # define z_gzgetc(g) \ @@ -1836,12 +1975,13 @@ ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ * without large file support, _LFS64_LARGEFILE must also be true */ #ifdef Z_LARGE64 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int)); - ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t)); + ZEXTERN gzFile ZEXPORT gzopen64(const char *, const char *); + ZEXTERN z_off64_t ZEXPORT gzseek64(gzFile, z_off64_t, int); + ZEXTERN z_off64_t ZEXPORT gztell64(gzFile); + ZEXTERN z_off64_t ZEXPORT gzoffset64(gzFile); + ZEXTERN uLong ZEXPORT adler32_combine64(uLong, uLong, z_off64_t); + ZEXTERN uLong ZEXPORT crc32_combine64(uLong, uLong, z_off64_t); + ZEXTERN uLong ZEXPORT crc32_combine_gen64(z_off64_t); #endif #if !defined(ZLIB_INTERNAL) && defined(Z_WANT64) @@ -1852,6 +1992,7 @@ ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ # define z_gzoffset z_gzoffset64 # define z_adler32_combine z_adler32_combine64 # define z_crc32_combine z_crc32_combine64 +# define z_crc32_combine_gen z_crc32_combine_gen64 # else # define gzopen gzopen64 # define gzseek gzseek64 @@ -1859,49 +2000,53 @@ ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ # define gzoffset gzoffset64 # define adler32_combine adler32_combine64 # define crc32_combine crc32_combine64 +# define crc32_combine_gen crc32_combine_gen64 # endif # ifndef Z_LARGE64 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); + ZEXTERN gzFile ZEXPORT gzopen64(const char *, const char *); + ZEXTERN z_off_t ZEXPORT gzseek64(gzFile, z_off_t, int); + ZEXTERN z_off_t ZEXPORT gztell64(gzFile); + ZEXTERN z_off_t ZEXPORT gzoffset64(gzFile); + ZEXTERN uLong ZEXPORT adler32_combine64(uLong, uLong, z_off64_t); + ZEXTERN uLong ZEXPORT crc32_combine64(uLong, uLong, z_off64_t); + ZEXTERN uLong ZEXPORT crc32_combine_gen64(z_off64_t); # endif #else - ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); + ZEXTERN gzFile ZEXPORT gzopen(const char *, const char *); + ZEXTERN z_off_t ZEXPORT gzseek(gzFile, z_off_t, int); + ZEXTERN z_off_t ZEXPORT gztell(gzFile); + ZEXTERN z_off_t ZEXPORT gzoffset(gzFile); + ZEXTERN uLong ZEXPORT adler32_combine(uLong, uLong, z_off_t); + ZEXTERN uLong ZEXPORT crc32_combine(uLong, uLong, z_off_t); + ZEXTERN uLong ZEXPORT crc32_combine_gen(z_off_t); #endif #else /* Z_SOLO */ - ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); + ZEXTERN uLong ZEXPORT adler32_combine(uLong, uLong, z_off_t); + ZEXTERN uLong ZEXPORT crc32_combine(uLong, uLong, z_off_t); + ZEXTERN uLong ZEXPORT crc32_combine_gen(z_off_t); #endif /* !Z_SOLO */ /* undocumented functions */ -ZEXTERN const char * ZEXPORT zError OF((int)); -ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp)); -ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table OF((void)); -ZEXTERN int ZEXPORT inflateUndermine OF((z_streamp, int)); -ZEXTERN int ZEXPORT inflateValidate OF((z_streamp, int)); -ZEXTERN unsigned long ZEXPORT inflateCodesUsed OF ((z_streamp)); -ZEXTERN int ZEXPORT inflateResetKeep OF((z_streamp)); -ZEXTERN int ZEXPORT deflateResetKeep OF((z_streamp)); -#if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(Z_SOLO) -ZEXTERN gzFile ZEXPORT gzopen_w OF((const wchar_t *path, - const char *mode)); +ZEXTERN const char * ZEXPORT zError(int); +ZEXTERN int ZEXPORT inflateSyncPoint(z_streamp); +ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table(void); +ZEXTERN int ZEXPORT inflateUndermine(z_streamp, int); +ZEXTERN int ZEXPORT inflateValidate(z_streamp, int); +ZEXTERN unsigned long ZEXPORT inflateCodesUsed(z_streamp); +ZEXTERN int ZEXPORT inflateResetKeep(z_streamp); +ZEXTERN int ZEXPORT deflateResetKeep(z_streamp); +#if defined(_WIN32) && !defined(Z_SOLO) +ZEXTERN gzFile ZEXPORT gzopen_w(const wchar_t *path, + const char *mode); #endif #if defined(STDC) || defined(Z_HAVE_STDARG_H) # ifndef Z_SOLO -ZEXTERN int ZEXPORTVA gzvprintf Z_ARG((gzFile file, - const char *format, - va_list va)); +ZEXTERN int ZEXPORTVA gzvprintf(gzFile file, + const char *format, + va_list va); # endif #endif diff --git a/rSDK/Lib/zlib.lib b/rSDK/Lib/zlib.lib index 9d76f3d1948eb6e27f35b37c156283ca2862fdfa..a59d65165925e222fd0d84317151105293d6709a 100644 GIT binary patch literal 344806 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 qL-L#RcUe`;^kYCrY1;5|ZpZVMD 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 z zo3;mL?o0c2b#8DH2H5+8tFTNi?EG8zVQ{~`ud~II9IQ?b7RGN_FP7jFdfu0K(s~9G zoOuA24iR9m{*d?OPxjay-@BWh@dnn@`+%_74H<)Y2NA4=p8;%4ZlozNbFaJU$`NtM zliBMe0r8xX7yR_CXspG;JgFgm)}R6ysm$XI9|gH`5C#1s0H)(`Zw=W#b6U& z@975Lyq$$7j^_gcD`;pzH_tsuF=E@}3cj#;cc%>jg4o`ax$1u4_08|w1M~K|o2GTQ zyPJ}`GrGv!y+1E=S$9nSwv9e&%=+;9u(wU-?mbNAVm%n;K5y^ZH{5Gh!5GZjr?T~4 zQ9EBA@*p`(?&dNlgYW2!ecK!O>0A{N`dntI%FC|amp}Hpesnx5^U)jF#L!TI(`0kI z=(qSCG1SF}Wf4DQM}2fRUC!CkkauKcf?tH!%1rN#ewOFLLI{Czq39tA|RQIbzf!c0ekMKR*z7X~fHFKmt zJoz7P|7S7VlA-N~{d=$<8L?c)IMFT7RPuJ{U$#bF@b_GA|)IU)jr?{SBoWnhphW*J=f6C-M2f2|`Kht+4`p1j?*1~U>lz}+S6 zdKv#i{zd+b=M!Q6%hzD(2mLQZ>G1xlj-$?fJq2ae)8lIlLAiI%sUN2n6Y0`A)#1j^ zXdR0Hm~{T8Qi{M=13$x|_sSt2mJ5fRGty6Nx;QSyCe;p%5SbVJ#k>@O|L6#XC+3R` zk8_m|h4qEDA=WV4JR5)OO3w?$L%Sk;@^ukOnq_lXgR^Wh4vt-xsHcA55Pz?3C}SG zfhUZ>NcwB}ZG)`_G2>%k(&Is>@x}wSt41HD3m2V?5A(!#g*6ySVANOy0f9M1&bE&J zRahmy9g7VaNe9EC9B(_v-a0g0&%P5rZA4u9pm2dmE2*xJ1^`rxe20kB&^->VMx_jH?HcDQBu~L`&p}QBI!NxJ!k5&1rcFQBO>d(SgjU2JUg_Pplst*4EZ@>!fXi3z>LHtpedlg z1w8@ua?n#juK;EBzX~)P^lH#;pg5E3R#6D7dPI2~6Vm}&;a~_FxRVJr6UnQ}j2Fo#gQw(;t!8oI%3#V8& zl5Q&vw!!diG#DGD(IE5gdZI)kCcD-3m9x&4d5{%Wun4fcw`b{gyh zgB>*3A%n36%Cz-YCa1N=VCxO0b~eS8;?(W(QZcR+$9eJVAK`b3_jvt}Z9;DFQnCNB zM}+BQn4T7<{tu>r%4@}5{}`)2DeO-1XQ|EDklcid#EnUW+-6tsd|*_xqbde3&03!) z(2#xPt{^W@jE)#)&`-Lrg6;WZ&7Z@R|_xYKb`*^TuQGk>nVraU3>wQ9R@0+?^sZNa~c0%pt+!!n2Qr{J3!~C zZ~E~LzRN*h1!WoVo5{EkTJ8eUBzFO6a*BuZBzC9bbBeuAi8UK+r!u+3PZ>(L`wVu# z@FAZ>Xf7*8nVfj6Tw}=w8)dMu2Fo_sWP@E|FfM`1aM67Hdk0~E(LK9a?k^?=C&gfY z5tA^?8nC%oofyd52`rHJ0p<_xBtQ3}0(pm0x4}FOX0>NlzazLt?4)@E(=M_Hui$oC zM#Fd9fpj;rziSk`bDIb>Cj55D6PW9zZVzPdn;jgBAGvLec@zo9rrw(l{8TQM20WM$ zPHV6SpGr@A-krZ06Y4S#>Cg zs3ts!)dC0ZSWk4{v(@Go*XFZ#Vjr?+aNe8PAamHUn+khciY>{!1AKj8$vzw6rzGa~dCdjoCB) z;b6g`#tRQk3FN&Qn7K18Z|{Yp#rngH4fepy9ci!D9gm4z@YNwRcVG=Ah?KbR!ItEk zwkt$BXJU?5x4|BqxpNYJfcXC4s(t>??TEDhGh6-D>UV%+kgCYp*0(67LBJ^*s3^uL zdC1Gz7S~+E?eB+$o^6ru{RsOOI#j-`fr+QB!`<_Ta`fD8KTN&BAGuG*IMMH~K)Hx6 zRl}mP$|7u9aK|8grp0Li8@rrMd}!m_VSmDi@^C_sGmBPxbMhEkXAx4OajG+g@{^Mj zDbmQ)uZjAIlv=t5ZlzIX_d{6J-V~;Xx2S=@F^st z`J)_if;OK{tt)N)AsGs6BaAHmLipK9#BV2Runr@%;Z}v?e%^|zWy* zX0#U^=W|ns>+=@gZ1ZCSkU15x{l^|7AiU^hV#i(szieciiYKscvJDhLu}~fnUL}~= zzA3&PBDT!UespI2J8W;yY)dgiPZI2L!a0M@5Z|YZVA<&nfQFd2#bI`xWaIvt-1zhe zK6Zq14{w^_`?IawHUvC+uCZK%#loTA{}epqA>J81=}%`B-B4z>+P$PRtkghp7Aj|j zeZ}`%;VHsTtSBE@*QuBxa;`g0d_Rt|h`zh{x#5?wJWhPe85Vn0wlNHFP~TTzRp4on zVpf9_1-{+3+LnQ^CM4|??Wpwx`6R(}AJ!=D6!G~0?oJWdbGA?wTq3G3lgi(_jbqCHgvHoa`^ES49twPPG?Yu4O1{WND0WC{Y`a;=2H4u8FGWW$^57$|a z0cAxz7L>)(50v@UAC&ogDk!^q%(TS$JAO0&Fyj(?T&bY9;2ZM--(#R-K(~O717(kZ z{Yf8d30Aj!Z-7n!-3y8x6CY~|{pFGLbWp~55-4jd*1*K=;HjWB_{Lg`Z#n20pcjD7 z0cD=yeyNWlOO7|aw(qHZb zm4PzvmqW|hAWd>MNR!+Plh}KTPtFD<_M^d$gKrWWs7y{gNT9K?2IEjf@^L6alT-98 z5-T&<`G&9FU=0RaYp|;fcCEp<7bgANY_NYB>~({EXt3P|;|`c~%e_Mxzg`AIeNxyU zgPm+Jl%jIWT`}nvC8RL!ib)JRuL|Qy8HxD~cCo>*bE^1$XE5%C(S^(6UYKjltF%>`H@O zW3c-Tw#i^m8tiF7ciE)d z#RjV|*dqpOHkcSj54Z)TBoFLyDBYO-HV*$Mrf#3j_Gt~-*BFzJfoJTStT7#Aa= zoFgG!V$f9|VgD=!Z2DkUFW8+IVc!#yS3hGze@Y|lYblvkX!~K>g$fvX@SAa>+ttwe zr<8E?fCE0R{PGvF$O?w;#q-Eb_;DMKKUnr0>xzw+?rI^KrDX7M{zse0^ZXz(PDZ@-NWg_n z*I?%wj7zyPTrTCxFzzzgpAAOwDEZipOFkY|k=P-Fv3r(SqB1$Hp$5aiO}WKTOz~wH ztifPhtd(K>)?il|>~99cAtS}N#b8?vw%cHQ%tQLeu1>}eTLcP2$ACxN9y%6@m?a;! zNd3Ce6XOk3AM$@T70wWER(RYk6g064)&3Ab^1v^{Lp-r zLaGM7auH=$RL-mPuIPo33vG8q^;;Kg$J#$q9cvgbioEw8+R>R4=0vBL?RuKRk$pbK z_Yu$(P*gwP1klGo=YuwbmVjbRDV6}A0A<>?fHIGkLd&HSN^(tF_yV~d2w zk&oeg&8i8(M=n|bhT#1dk&owW@^DyXUZ@!#T$Na#xZ#qcBzsSirM(09i^v3b$hbM05uuGMAoAu1 zWHgJ!nSfw+;{2k(8o?`oR<W^Mlg?Dgssv6mz4 zDH`(Zxs6M~6YFQ+@cw)8q=BBU=ikT%<=zh8$huAP? z(~D%NDp3Ez(dZZ~7Q`6$I)n8}SE%KMuXLRYez{U6S2>=>)uFDa`g%06RK%ZowoQc7 zRfNm<_7>kyS;t`;_)efqC(j6+FL3TGWQdMct_S@?Y!I;Ev!i1m3Mhj<<*gX_29S%iDYzM6dj`Nc~Mz<5_O`te^ z>iY{Qjv4rPEXWPI85A9r?yvIdLziwj2bWmDV7D0Tc7xq# zu)iCOCsU={mkjo)!S)*rIj{Jz3aY~Gp-e9EVwa4|K!Xi7d}|E0-e6*87S9KX6H>R$ zew-`uTeEqvq{ZEYyE-pIj%6oervulX*2S%DcCV*!_O9K&iH-R24fyBIKA5`QoA!ER zPFx^60o?AZp71~6@L-n$r}+Z&5`$l2F+Sbh)FG+^Q?r`LALz3jjD zoQg?Z&$RkOb@AA%5RkXU_Xurz_`h{t*co5V{OSb5lQ7^aSN$PA{2{_`Jj1c4XWGm7 z;_Rt$_78jFA7|uX@@FSt%i^HTy|x|+I?T#G>paDRZaOSo)_2x%`t>n%xcx!oU-)~a zA4b?`qTAFHJ^J%@g#FFzR#j;GVZv%un~5IdM7N(o^A$#^8fr_5E8AXqq>LcX0>KqD zvMMAOLKo7bh}EOuOp3di#%Z{iq{z{E!##?_OcV!-7>vTvkeIizJNrbya7=MTC35jwvq_OzVUr&b$_g??z1K)}aK9BM~hqAM`y?_7(4ga_{p4(5;{!f<6n1 zvmZW=X+8$UM39Rm;uR&vZ!f<0fU@GPgqD2=O|tKx$%zq&v~_W!DEOS>-7U$-@t5T5 z1!*9$zRKjZPBs{CW=OvA2J;w?b52`w5A4gG7;7Pi1m)ZC_z07%azNQw(;l!72^5(qO9%c7wrgHdqWKn+!KzndFFF zJb8~_x!`HtM)A7(Z28u@|63PcSYMUUu(bu(;q^P~IC}jee$>Jn=-%p$^-Nnkzn1Zp z`n8N>8q;I-lidli!bd(S?((|$oVYjO&=0&fGu&*9;0um4$lhT=CQkB34-UTslE7pp z`?nrqMAUQgzciURmo9!3q*r5lj7}!rP{-+gye0nxJm&pm$JkZL?u~0ueS=r?Z2V>J z2QJ13j^(?X)`(~Lab;S#aKHr~eD{CXWpz4!kAzbplIZNEKV2j2 z@1RT!>$Sw1_=t zs8bkXzu7j=^l4Zal&imb(y^Sev;wwRoS)VGk?fj7XRAY=g(gC}lf)UM)*kK=9uBhE ztP_lfzZV$$bQ#<5ex6GcEEC-~b3s`8$mlRrC>psSqN69T;f02tdhO9*w|$ks}<`P6~@A5Z8QVtuULEV1hVLEr+^;B z_f*jHkO&-O^!Y$>UCZ~m`sQTfOnhTHW?}2f$ND-Ol!;jdExS#cWVcC^JPs?dj})Jr za!KqvgYhz;#GK0H#E+b5>{NqIG+3s=_!yyd%f|?5!jq>4V>%?plUkDRN`u{IusaR* zyur2`>}`X+XD}Y`kp6vbu-?cOiBS^Ca8ENBHo6ry(_q+~Rv0%nrCV-nO1G%;3S(y} zF|LE+5sSUOrn{Tw*k|GO3jgyhV^<}*FL6PLt$pLcPRN3XHsGH-`=!)vxO8*XW`8p# zTnGJ|9hh@rwzUs8sB#1I5-{Tm%sb$2!dWpqj1iyq-Kx%M^A5S!+=uF#_N}||K6ui& zo)fReglhwNyTrO`=+05o4VUrB8h2At=%!JWYi9@2_OH$fPC^eY?z!NGSup#+Pha3t zcZ@=JW}e-HcWjR3O*V0jCYXnVYr;qW=a{yYVcNEvk9f;pXt@Dpf}hX9fwwhRF)NyG zSkJfyaVtt(L&F6$k+8$Yd{>m1?>ds07qq(ZgG*$by2=Q#%f03?eCj(}QF5}wy({^2fSF*z7R;HuL}&-i^b;`S8AATOw!WxFYh z8uRVDEtZWa1%HdveJRJxaN8`Z(lt*oN6f{w|IJM3(lMDJf1S-_!U;%iW4=S?JQg0r z{XBP*xZ8-I$qC)6+|3njpI4zqylY(5ivYJCxdjZGSG`2zl06;Mmi5?7RegiuIc*KkVu9 z5T#usOpf5ZL;mc8Sj5=}Y0&5U!!F_sgQVnOKzGF)39^r6H;sI@`bXHO0+iS4P!_Q7 z8(~k;VpAhQ`g3%I{TuXDg|;82)d(nZx1MpL+mk^#Y>=vd|m{@CD%!@HytaoDgJGAmFVV1Dl z8#5fQRPMH}wcTQmw>{|SW7C64xp}PDaG1y$!bO}|HsU~$D;CJ|*c|Jc7-y_JM9F1M z?Xw=|;>J~IF^JJR1+|7(E}3L*Ec*G083Dg}zW*6v@5Z-W$I>1~E)+2-tc~;&^)hyj zeFh$co?$JI$+2ETqUEU9X6+Uw$)Eo;S!EWI^v}nfB>ZTJnPuH<4X`b@{negid&UuG z`&SH}e1>286oOCi-HTyGuI&ul97ia-^gS)p;)pQ|qv1izjoZNcV zZl~b>2xkD~d0@K0eFdl!Y$xIenL}ZO5A(TfVd2A}_{hVo1Cd<@)()*gZLsb1;g>G(A+wC4{GmDq`hYOuX?ZM+ zG2&l=QZ{`J%KGpFC~Gs0y@{J2Euf3=ZNrSf2WkiH1HVzdd?$gTRryAN;+mC@<=GkZ zugGQmM2+t;P=53HoeLC;gjND5F53zFEuj2nsgnOwP&X)ZuN&xBpxr@vL_Qf5mE7t9 zngH4pv@7UQpuIpD&px1x|4E=nlMnIb>VcfW&?ILtG|7cOiM^}%@WZ=Efy6p1lU(GJ z7#I1ZTaV$(GFYL(W*Cf%e9|o!`J`Je?MduXgI#a1n+%2xbj8QzKI!%ygS~ICB;=~} zuZJ=@t>X;FEgiHX7`5gWYQ|9;%e-Xg1iB27B9J z?-}e1gMDo<9-x$Q;g7{g|3(;Ww83%=HpO5(HYwfm*ras3&R~=g65~(FNWL2lw#i^T zXes$pQ0pb%0A+GoTVN{|%LagIg__e!=~Ln4-48tnI`Te$xEuaLic~)FgA>JdZ+vrb{r2-) z2JGIoXUB;zeYxa<$Mf=1&i``#jyv+t+x4gW^7{Pv{R^)gyUu%EZ`-RQ4!8!rJNn$a zzbN_amWJO9xX1DL$1hC$Y|SSl_f>u~{*v#1|Ib@{y#L)*jV%cezi`gNyMB0i;CDM* zb8i@U=kQCnTr%R{Z?F1c=$Kij95?NQ*mJH;TmRbZPWhWhEO|9B;k|$UVaNT~&beY^ z_a(m@H)>1yQy&zL&42jjo}(rlyz!scuH5p;oELvHX~MSyr|dg0w8t^)swVgQc5$$N z)|At}s~@}ij@#e;`?)twn){viwBI~_O8%~l>s~tMrte1G`r5~v&KTNbfAQ^C=cPI~ zt|*%Kb(in{zAb0=q;Y$;Jw9mQtNZ%D_V27?&lvu`r>4Gs{oX4oHhg;DHxu4y_@dKC zpH3gsaMssLKRoK#HAmfd`kg($yX5l1GweV7f9#!iU{qDw|If^%F-e$&5Q?+_QA#L* zPz{jAP=r8eVgW-9MKG8`5z)aR!Z5O8XVtYWu5}g5BDj_W(14(#uq&2TbS)sLxFSW- z{65dQcTOt1zPs-G{`0%Zo$qs=dwRd;KIb_f-E>j&)rq^CJu+^0+ZV2T=!uMBEjMKi zUX)()Y1fC^Jixo4b!CcfhaU50JuxrLAs>)kDzjkr^pYN_sW(xM7N^IoBKBo2o-Hn< zAiIl}NqY|AC5(%1G!LU1|S5p|g+x2_t`M@Sr~n(-ka*x5t0a-igDRL>t-lXp1^ z_|>^EwGoTDb^Vbk0kx$@x}xj(BVTo04sj~^6PK~*&-MM0Hw%~JVJyh&fn2fm{E^p5 zm*YwK-`BU3MzBeRA-ayn$~{E_a~<&at+SK=%0?XK^S-i%w zbvY;`eSH+y^F)1rWSZ`BY{DOjy<7?P{7HoCaxBzO(L?uG#ntuwk#51|m{KD?iS_)E zR}h!u8-As3wD0l-ue>;@Rqir9b~!|-RZ3T`=Jot(3D@Pg7CTaFdp@4AvA#djf4CeQ zu%J5@OfBpA(@NWsJ@pcwiw`~getmyhYdf+hb0m~pt?KzB(`=XHO8t~CN1l_)HQ@T9`O`()ktIy5 zsq_6EUaRjC*E-6by2QF!;zIzx!M~}FPqcdaI$PpN5jdrIp-SA#Wts% z;mo!No72f~R2K5$7P_3O$IQ8x7x(L<89n)Rv9J?*8p0EB^5rPuIVE!~WwQDCqEE`E^%m9q z1$ui-zGawI(=fw+#P*BAqFJ+x6lcWgDZ8cZCuFiT{p8PJ@2wq{vJ6^vRmj$Ye6371 zWSmvoND$UzIf+ic5#$SH9YCc?eQJ&^=U$T`s&%z_`ht0LuCT~jN7=EF-JHWBv~~QB zQ1($5`PG}BBuqPvRwQZ&*XP#|OV&=vDp?`Qw@wn!%dz>@;&u7ei?p^4(r8<%{UM*y zsHNMCoT#IOBr_l1SZJJAvMhh*+}WHvJhQOy@_Dl}`;gumk2F)c=Uq`yzzN(v3TMpk znZ(tr|A0QJ{rdOr*Go**SFhC6e*O9-B@O5`fM2<$xks~Z_u{h`&Y#Oz6q-8MoP0~w zlIj*}3Zbf|+;O$KE8)xP%42mZWu}VDt~m)8d(*hL%LrWK()Mah8Rb!X2H1{_utV(; zUAm2=xV&jKyGiW@bF~@RnIZE8t{``29O2fO*b85V(!DY+*SIp{QZwt?lPSs9zrdbY z36n9r#-;tM(NyKp2=1gh_T&=-1<-S-cUab>(Gy3H%s#&ZKRLM*JJe>59X)hRR<3tK zha_@Czjdz#M=OVZx6V0#%A{hB9GWs~(SqsArVK@nenH{%S;bS1-Fw6Oq@1}$g$rjV zRdcUeFmFcpUOm!!^qx|q(x~&*AnAme%_Q*o;fZRr9Wxlaxapp0|KL!iv*Eial0E#@|J(GBPG!oF{9bmT_E0cGghVJEQdGvZCU7 zSIy2Z5t*6zKFn#aqWu-kp1v@@7za`DGP@`pU3kSD#-ynDXYoyMD-_r5d9-Ba-0AcZ z+I2Fnk&Y>xnO{(P#Z2NG72mCfhl{iiBuZs3E16A#qIBd)_JZjpv-1~7IQ7+KYlSKO|}zl(E(P3gG(-i;meew*I) zkqdu+@=Cq!4Sw4@W^G@2eB7#^1`U7okAH|ht(1)A*E6$FGtZw=TBEYbri~hvZKhS( zs<{nRwwdC`qN2h%Mbj516;OYQlR7UQ(67rB>6#0d6enFy_dcapDz$Uwg3?*DA$z3u z=ru64Pp=-SQ%YwRl}w?!Q2%<&{m*@xS;!hgQHeeH<`@5(el9W5OrDsUlstRJqNKsV zyhTZ3?vs>~beU$r7lvghwhRM!Iyg!FyAG3*dlMp__Un_>UHkkidWGj{mgfWhH#{e} zK03Jmy+grS{f(>^M5xj6@&Q!(#YxZvKDNtXC%a9O77)qr=8 z>#xDAZk!+!%;JEV9l@+VXj=+q4d9TKU{+qhdoY+a5#3B%r0F7x6Yw4tRlVNhfk``q z;|2vsUbJuavEYa)LGRJ3+++I=jtERWgB^R*qQA;hob1``3ck7T;JUFpm874jh%3!HQIY8> z`;xXT3ZkBu*zEh{f{v47#Lt81pI+}+7q*@aa4DzJqHH@YePwN?b4|ps!y>jM;z$0E zJ%QYqk}m0|ixb&9U*$dH+3b+Wv2D(^*IyZ>lSwK%Zrk^z>p;qBNkB(z+SY2OK|9t- z(D7%t=LZeMU*g_h$9;UmasQyfxZ|v3m!wo;>^()KiE_{Ch!9mBWjjB4*o6EHzDcC& zB!>K;P*!{@DRQuJ<<%5U5kjRFih*}}uK$sIOxc;9yJIm$aNNIThpZQP%3daaIo~F@ z;!sLOSykyd!4(Hwr_y&9FHU)PZREOZ9ptJ1u%q<5Bhy@Lg*lX7Q9RVO;y}ty@*i7y zDetEItc9=EhV{3tevh@_iv8)^i+cxmrW~;AM{Um%aND#_2*ICIR-E$x=v+Kt-Kd|o zJof0LkDmPatuM1}_nys>{v)n65uVM%9czZ6fqb~rU+G#iOjMA|F58cY5JzWEUK=UV z_|ZYVTO6?#yAi{JD?UBq4Ze|rGV;xibtCZvpFEqhe%AhERoR~W=v?vdR0QAj zmxl*(!h+sCDX)e*$mBpyoL%J*^`h1VmSv)6Ict!;lkzyeov27EX;hgRmXU$v|HjH3 zSv^vi$BFq?3C?@GHuvyy!~u9vhbtmypD{6&sb_?eFT71P6;H23-vm#(r|-E}afdFM z*$%=W-I!ech_!TAVwZ`bD#xFi&kK3()K9JDtv}a!E=@Nidm{d9t@FIO4Bt8gtNWbB zth%=vE)g`B#7W!=o?rrFU2HeDCQR~%!Hi^xo@6=Xpq7RDBetv+S}QoMc!99C(OggP zas=d160?A}{W9*5(61!Xx~e5nL>NM5HsbB{qG}Zoq3n?-wf7Xg&FpSSe3JHT-W6J+ zK@zi3`+TV*l7j%>P}k`Q$%3aykD}JV8O08to|MEE^?*afXQZs;mKn8teQMDGY1l&Gp*NT`rLwup%*I_8cvbAlZ?upXQQiOYUPQbwsbH zt7lx*+L{X&X$KPRWbJ*tBSD=;Uxp>`vQv9)pfvnEs-`X z#>@5d&8{YDo8wc*b&l0qn#?K)kAC*DYl@nHdn*j9&09@G^ia>$cDB}NB88<^IY=2; zOAV1>kGrC1B%wxRy#<&o8l}Au6?NJ1a?}L}5MhrH=jvUZIy?0&j)h_x z)U`WW*KX-xlXRYc?Q}U~m6yJ0l5+(+0h{Ro#cHMnELCXd($aft=YzF#iR@Gz+2>do zj!``*$QcyfRdjD6$tF^EwL86MoKlHp5Bw|I-5)9HSe1qE^Y|6f1FPupm`fU$eX&_G zPKE2n0B2UA?v41&R?U$Gz>q#0S#8k6U`R2#WP>$;g#;Ls9-u7WWn7g@8t8GIJ{f~8 z^?KB7pERmGP@2a$P`ah@U?*?_C>3T3D6L>BC>`)+pmd`7;0$mYD0xBS_T2^+fOms5 zM&D+Tl^wlFlE&?m=EA2rpA0mNPQKT`LU0eb2z(p768tN;1mqi+YT{77Pr(E*o+2g1 zzUJU}U~6zGC`HXuwoe9{tH93Sa!|HFUJVWb$pfD>!)w7&ppXBt;7V{DxC*=wECZ*3 ztHH(K8gLoN5}0olcmpV(p4WkE!QX&4fH#6SgXD$p4ls)N-UlM9<&(V~H^GD0n+4pWf~Oqp3?9KpAoF0u#UoLD@0(5GcE09tQh@kASl0<56%B z_!u}Ed<7KMcCUh{5LA_*)NRVZHyzvs&IEUZmxGjrZxQ$=SOo3`mxFJCB40%r`F!9$ za5cCeTn|!azT3ffz`MYA!3V+jz=uG}(zglx8@L7h5PT8*1bi9%4BQTW4oVw31hTOg z;ac(y{0ckFU;0Z7Vq;B|9!5=Wo#N`Y)0Q?yo3|4{T zK!v>vK?isV=mhgYKDPVjfQSkBMAlO3T@fh$`oWH%3`EJ`dJwro9|r}MjF&qw8ho7i zB!W+XtwD)b49St(k}VXECY4ev+8 zLn76VA2O$QxUCGYo#CBtctZ@2eRZ~5cGB5yFEhLuhIfVGNqx4`w$AW49K+__Z+H(H zUb*3kT%zT6zu}3BM~ipL@Z?|si`Sf5Dil*8n{um8hL>V^!wqkg;T0NQvElg*Z?)mw zVR&~L-gAccXT#fPc<&hA7lwDl@J<@ukA{~R9!f_`n?ePh;SDjo3k+|J;mtF=g@$*N z;oW9dcd6m!8{Trm zyVmgTFuc1A?=i!B((v9fy!Q?7d&4_zc;S(uI5)B>4#Y6L0fsl!@J1NkEW?{?cvl;q z&+wjxYOL$zW}9-W9Z<2Fx6`IrCy5Hhg}oqleV%s(^7Hd%CCSun`V}*0CzTWyCKXIC zN}4f!=H+~Wsq<8ST?%m*%qy8)G<`u&>jQd{eijlEomsi^xzBH#F!R#q$NuBf_jmuH zW%6}TPMG}mB}1|wo21Tb^!}9LM>BJlIbKOf9m4?o!Ijyz@Of|*xXhhg)4~T7NlfH{(0In^LB7rda(p3bZKkSl$R{)>SCkVK?I`4_gpFg zuA14;H{E{C=hd#54eLwn)OJNR!BuPPu?kzZziYLtP`boUZE=f6+SLf#RW-Z>iSR;= z^|9nxg;bv8Ua9>Qq|`y^{(KS5&&kYB%^sWS&B@En8asS=rd{VU`i3fMMqg@bMqjFG zMqjC`na0)d%+cASMvfUdDz70|QcJ7t=4K8XHf(fWc6Ls+UAtOm^s?%8MqkSb5f|}< z;*i+Dzmgj0)jM@ypCq}er3Ox>h-i*={ku{Fd#G9>HLygAi%ZH>O9NQqz4Dr)uW9^F zkiw~PX?rzlg*@6saXnMdUS?*^8ZY*exo1*QS4(B(k~-IrbU`X{y9+zJ6SOtG*r}xp z>PRbyl>WI*c^8ovRxbLd2K^gN8~PSIgU{90A2R%k$K;7Rhg)`h1Oz`r9kAk{nf z*N_@8mF7Pa8{m~ewIa{ks@V8<;zNlHwWgVci%LqC2>TARf{$pv3f9k!FbLiE#U$vlvmiCg7Oe7sVH0Ot*Wmt)pg$7Nz zl`Ii>H19{7a_bZ7<1{ah!AmH&Y6}&uc^#n6(UdIF3D2!M+dNc2Ls>6`y^XzoHqXtM z3Ck^tNujI>dA6}P%;ve(2xD&ylr@dkGhDPxlW_?Dj_l*dMWn+%zIUQBo#VpE_Y|ln?O8> zTEjg8^D*30Bcho7MKx84QGdsM3Umo~AD-{TJ+&`t7I!k{he5HwihC&LL%0|Jrf@Ue zZ?r)*jhp~|HTNLQ2S`tI=mp%}FmC~4xNqPdjrkPrc^Qft&)tOZe^2-wp^LbC^Lz*4 zQ!}GxaCgAG5p;52$DNJ&Q{0n*QI~Mj)*9VP_&Ly5ai5QQKjAZyC2W@5I(Iws(|}E%#VYT-`8^w!+aF?%!8vY z(cOeU6Z#tNA(%fP{8rFcaQDFc0!S;3`VIFO%xCQKABQ=f^!x4dzY=pVo^Qi{iSKmo z_Lv_4srXSVxw9~T!gGnw#oR41-)xsZ9|ocZVt(5$|9P0ZV162u_y)K~V*Us2r93Bb z($r0<|A2cbf2lJGq<_0z{>7Lnheog33!TdSyrTj1D zCZ8MKZkPXZ%;}i_YM1}zn5ox|HiJ^1g50AppTNDOXEJy58s)zPbAO({VVD0L%$+bl z0ZMqQxrbx^8uyZ)yb4FrZrR{wmH)MvGcbQ>mwzGVo|s<(r9R!rJr?uN|Dyd@;J=jr zH0~tq-w!HoA9p6^k9jWTe-U>J%s1KPzZCNT%x~G{KNoXn%uj(*UTe5VVEz{OQvPRa z|GVt+pM{-d>^}mE{Z-sUF(1ag_&0^SHRj*i<$pEiL73mQ%YOmpZkV@%G2AzBkH&l& z_fno`YyYp<&{g!>%Kx7p=?73T9X|HUr<`Ix(6{u3zq zxt99^%-`c)%KvQb|8=|k3$Sw@_WuYW|#jJ zn0sJ;5p2x;8}2cffBF~ge>?t5e5Z4_$Nuj@2lqBOzd>T{zIVH_jBi9{sQ+>{+DvM!hDBa z{>w3^V}8dj|I0C_V15pa<_>a?!h905b; zX>lB;jeA$q@Lu9RwMlraxQ}TTUZLG<6?ajUnan^$GVdZ%1JEA`$hJx~b-VD0HS^=< z{KjdDT2oJtK{7nK*YM#AspI?^`qqwtV46ecS|s*hH^)GNOOhKCPC7(>5C73 zK8ZV@`+U@DbtTvoECQ*Gsu+}Xm4Nhm%>3l@Bz?7}EWHWBbIS*Kn-{PtxB9K&{m$?X z8QxLDqXbtTU61j8ZtEbgptp5!Qd6xyesXX{i-7mOwDLgds=%Z*ffuhvsHD;>_E9N+ zs|61Wgbs)GpGxxh8&QU7yEqg#`~!cv(|@Y%;zOM5fiS6Oz2~{GFspz|h#2{1s0B>9$3OMg3z*x8S7vf~Bh@iwZayw+W$mu@;l9Ipo<3 zS!CM5;G|~>DEO-XkSgirKjbJ$-VXNF;>RvS99-KTC=#y&L%j zHd%mb2P9}6!Q2h|{vPl?9^4+7dUwEk!@3bwfptqI|9*Cqwi!H;L@(}?f7urC;?mj~ z>HpbT8Z$VLBro|;l)c@(c3W5PrZwKJLGOK@=Td`jtjltwdmk=#zv|sWrj$N^>K8ahPx_!VG5sCSs*ms-6`a9b zN~mcT)gtKKkiOS*eM`x)KS}0vf>R&&cq@WCgJlxY zK<=h>t^GRh0#hFkzL)ZDaQD80>F*$K|BrPOCvjA>8{zZvYodqc__sMZZRTXrQ7Lro zad5YGD6;N1xON7-cgukcxi|PvIZC5eo|b~4VVt4}R-TqJ@T|TN72K3|pp>&U*R01I}zr}gbdqc%RXTHO3 zMkHO@R9boMvd84#$)OBsuU~2!mL~Qv5234-Q9!C8vpwFZUx$*OF9InxYyBZY{S7Kw z^FD==elJ2@KsqcJ!{}Hn>JmfEgktuBe-L_9*$9R%S@4(ciutX+WK?MfC3czfsf;?$ zMff6IKehVQ^g7R9;CYyyMqB=fQlOgt%WAn5Z?-z}OnUsYJ(p2!RTLdWol#BVEO8V( z83&;+GpdzLpRqu;#SPJ`#~cZ`Y*F=~_KFNC>}D6CI~i~Dh%ckABL@l0qi`D<>_l3S zXxP^rEn_Puyy=taiWx7n<5y8_yJ`!A!({wy0&NL3N0N!`Z3QJw&ARMVX#-mV7Z@-8tP8fgu8yVpaZzERB|h{dcTME65A zb(XfCj5#}g6TVyW=$TI08DK>kRhHVe#HU2tjyC0w{213n*LCV8U7r)E&s#Om>3E3g zrwHv!w{AtE2?Dc?`5O{HQ&$q}Un_?N4{x8gH`WWduvr z_SzxaG=7+66s*sqV0(s;|*cUw2JLw)#(wMD>uXU5)&kTUt0uG3)Ek-~z4Vx5;S z@K~yjl{BsW!9+ohZj`qjDXLqsmnBAZo^B!~nqDxwz&fZ#a`##tn}OQ7R1o=OATLUi zvvMHL7<#DMO@?j5vrI|1*P+EaTfxatyUp&97qz!m=P0`ttV+~{H-)iuMSDFQodU-*1GzrWsYYYvmG*=NDbet`5T-r1b6?ao>U(?)CAa=Dt`*q;wn3=2j5C&JQm-rGv-1-pi)#h`-8!-0)*MU-tSQqh$ zxb1q-Yx75eH)Ea&-VVzAZUZPfV(tQO0q+K%u+7r3zl8ZUa3}Z{xC?v_+zx&W?f?&g zuYlixuY%u#<=`oBFDR3V{h-wSzkt%Q9smb}k}lcVA!bq3Ng939N$`T91}!KUDEZ2qkvW$pVd*bMv~*c^NSYymz6ilFy4kh-7+z&n7S zW9|rk3nqg!bWPNAap zX<9h0;;AXOgk)O9Odsnr(m0mFO3@SZljZH6bxi7mHMvn{t$w=Le6h9?8K#ghdb%U-Na zxm8QUYh!r53{PHsEVo|68)SB1^4R5&NiQu>u?qtKe)bK7hJP|9m>|JYkB35qk zwi@1xhWEPRy=8bu4eyxYoiRL-UA6oZRnS63t9FLh)9}&^FURnP8{Q1VD=@tEhIgys zJ!yE)7~acHM~BCCxYWvdPQ*D%7e=d zuh8&Bgxs>{H#`w0w|F8t%SO4KL5|W*MFcm|JlvF}$UQx5n^pFuVu{Iby={?+wFy+wi_Lysr)K zXTxJVrR_Eos*SE|Lv6~fUV@TUsc5y$rrhdnC>bT9)n9GOtv`>+idM9WX=JT!xm9Z@ zzS_Y{vMIM33T4Gvbi-P44hgY8zUlqkw4NPq%e&={rOnnoGk@L--|u^V!~5$pKJ|6& z*6or{2COK2YR4Np6ZVb2HS5*8n(t1?h}rPc#m`(%5c>M>39*Y1u(gyB3hNgMvDXm& zrD-!e5aD0BZn?P4FpH93c_x=2oimrbwxn`vSHfTsL2rAk!5I%{6L+292dgb+Pt(AT_-H4Dj!N9s^oNRt z9hpVT%IArD&M+CS>kriiJ0fcQAe3B|HeI2Z)7n>(og0tX=13LdY_U1vhEo}Gq&fDB z4C_SVv$YnfXOqU(FB75v9{WawzFO!vL%*wJX7tL)2uTF%cb?45ftdqU#sc0o&iYWl zoSgmXKXHm~y`tHR3Q-BgX>oIAYt4HF)8{QHWtqZ6(t7tYMoODk+y9xuK08Sv!TW!y zudmO*)ByvM56LKwsYr^gEYhuan*Kq{?QVMPJ|8 z+O5;FSEKn!Q0H+!SVW-`$put~X63Pg~RCkPS)R zXY)AW63b5Lw;@UX8)zkyu=nw$mM!T{8}jcO?9H5ly{VQx<~$9?Zw(Ksu(Nu)Wv~5N z{F@2?tr?b`&~HQW+eEm1u>9#P%huWA=i_m~Y+lZ|<#KX2aXZLOxm8P?A*LgThoFG4aILDkMH}9WheC8Q2eBxzKgw)>n&SnE8i^a?Z!^b&6d5h z#ZO+vx?<;^+bnx6frjEY7XF6YEjyv#hTfVd&)1c*9LoqzrbEH_HOtE_9Pvfet|uC8QJv< z?466fzyAVzt+5yN2tPHhhRUNE&y#cVta|cU%asQ05)+R%FHXy@$5xWkJ+ku!Tj?d!D zo@M#`3{ln0_Y}*Ro{=*)H`hC6qOmY2V?@sQ96Dah!r+XdBXcH>9BQ5q(F|j>H7SRz zXKKaDL&qBTSs4>1jveol}(Xa#7VTShB5ndF;5d+st)FQve#!)l>cZZ8urWH_N@91DezyFq&%xuX(}1& zDyZNEt0j7cRp0ZiO%?d-We)yhpwh)|Z=UJU6yzChC>z9>#R%MIn{J@H% zY~W}#@TxFRS*qn`u;~6SJ*P4&EE56;*g_@07_cpx`mc)9o(3-o6Q%rDW(HOq46Hbi zRux#WH;9d?#{!d11xgPErtV}Pif8o!<{AZBLwi+n8Tm)Vh{TSv^3oVPki++5#s70$ zard(KJ*)2Ey$@aM!8i6D^uHQ43ZF!A|FPlX>x!dTD|#3Gd)vRG1>UBekmzQ$ zCOUmd=HVtpCzzGYhLFh0%v9vIs)+K#4$rECcrg-Z9PtY->+JtJtm4bC;I_buJ^q6p zqTnx&A`WF$aw@`#qoomntj-*l;6LSAa&fwM&ytD3+#O~U!f`8ofvgslS+WMALh14E zh@rlakU(}SajEz+>g3!0Pn;`X8!Ux4E-dYBQmV`5a8HRxz1X#Ekn4ggrPEbP=QOJ+ z|GIPn}3{XZuacalgC zt&a34Q<J03MC*EO)qjb~)+Q$Z>PIEcib^O;ynD!xc+ci-fnia^FIc)KuqY<@YAAxgI7@YP`Hjy0`Qs|aW6 zv9;c+RpljN>HCUy*pUpb{};5#2}& zq#F0K^H(zbVx0c#{z+$FThDV@t<(25)HB5~(5Ka?xK@!hBY!J?XypII5yr3g@8GEv#g4_HDU4C{_ zE|Hy-8S>MCp{U|Zr~hl09Zu~*^E!gF9ut9~M8L9jcs~4bhjiu0J?`HT#sMr?7%qA6 z11af1#Pl#&?eXFMHNDEJ_NpCxo!*ph_kC%3Z$^)Z>I618AxUCFvd#0{YbW;xa?2SZ z(mC_yctf>Hq@{x1ay<-Z4fU^xiLjHK6_!m@Jge?TFohK4V31zMTTVZ5!9cpY?HpL- z8RjidukZ|GKWw?o^$M{(ZgN%W2UZSv%cbV!9#1*Y#e2|o%HjQhw9{Q#-N4}?gpJp_ zF7}4@|J>NBi=FZ2ti{)u;`1I4zE<&Nxc}pJ!5>yuIH>XdFWSKv9vCqzuyn5f>&Af< z<-u*i6~~#%_{(KtVVc6%F}Ie;#nOb4p)>jAv`0kIrn&F7T>~kq`W%43(~Wu z70;1sl~SWU2lzUA*62y?lITg;A4gVv>9T52FmnNe4O@7<5&)Z`hnEE3Bq~)|3xZh^ zOwn)srxJ==VW4j|)+T0^V8g#`K|;}I>sI#R^L%C2MP!v)H*QgYgQ>Fe{1q1koP-!I zyN&Z8#*Lq!;4d%9n_puN)`EQJ{40vCXZ;!0bNC8Zl3%-y-=l*I<;XB{q|&=zAec4R zl{IT%)&h@g)K(mVWlsdzAWRIX3>{w!F3k(9*bxl7F}Snha8&SA#W!(*-2I--y8(_PdUy46FiRbUy5( zHWc_*9EvMlB;IY_#kOpclKyS+xza)2LT~BW+?;oSPewT=of@79Y#47f-S{F_v&Ru%(V}{DD{C_7*EnAdvbS_j`3Hx2)4VY zoz9<@HA2SHa6%_=?AYOdOJlc#mtZ0ZgL+38TR4xY>Il9?;#*Jsz9T8wMaL3KNlpJE z8}{#7e|dDpmyzP%Y5Ys6sAT@jMP|B=$&6;?0y3E)K@LTex2$01T-WefQpnQlEXfW| z-5;E^$C__azY7A?YO;iLw5TD0WefaA9Hn1SY9zv{SvVc&-Ql_J_i~<8R@jl2^(!qK zf~d6n2g@l?9=+4Pz`wPG%BV^knAPv+foVSErqz7%)@_wW6L3ymmvs?Sn7r{-SI%0O zRYI)t<~yt|jJLZTEu`A$)*}%imUY_6Vrc`D%BxCuRAx<)RqG(HcN5oTP00&p&BD*Q z{)&=yVOe?eotB?6FrZLDnq$Kro~u2qHEIx{}@rUWaWy3PAXT?6%wfx zA5@hd2rP{W^5VNRjtmS82wW7F7Z^7vaAl_58%OzfLMAM=#`K{9yf%fv)U$FkS6`CZTE zovz(9?|okccaLR?-f_jLecuoT4rdG7s{0N6aqT7&6FF#4mKsDCcyQ{`5uE53d_((1 zi{hZZoP7s5B+m1k_l>~Rqn^zl@@DPYt-aNL%4u)=gJD~0`nlwBYCpBtv-u4QNP2+4 zjgnz#J%BHrAAvhGO9pb`#0ACXWKp7q@$=D-~_o-!8h&hJ>?{^=9D%EZvt8N{nm9V-HIVBgVT*y>Pz z((S)S%%nd2{ukGW9cQl(Tctbs_v*ur`t@PzajP;&c{_r3WtduB88oYUR!8Y3N*m^l zf9f&2Z#mpt6gKRn0I4pr9y4l$^_)^9i$_To>%zR4!t9|7(?>?=@!~Mu$N#82>9ZYK zBkC3@!Hkw*Rvav=@~pa5`Xujxl*-_;5$UHEk4ia}zASZd3;$MqWMYY@x_Ta-BHi}5 zKIl-1;b_g2A5tn^Sp$wla;PTMHd#Z-8k&BJmOJd7z@#0#RCzy0skGRP!@)@hgFg(M zv?Dlmk7wA59Vzed4A!I%Qr-(>4P6_Su*R9~|He`Jy^QmdWJWn~*-%f}*X-dW#?m_; z{sh{;;vfUVhjbG-U7Izu%KJf8?!h%q?1!wqB-WP2VC@@nPUhAr>!m6_f+M?sqW0Ba z?UTv1to9x3!l|Ls_a1O8Z5pg}WF@gCN2`1|tR&sP;(#jYOUme$Q@jWK%bKd-xYl{& zOCoh=d?dVjD5$YOhI5+R)PsSk2S^?MjMWaem3GtbS<6z$D9uQ4?b%WeUwdWtmq5Y!#C?~>s>En`0 zMpah^f{`Km@OT2(b^L<>BT(+azz97VlR-*k$y7eW)MboTy4$K)cuL-n=&O&MXRp-o z=9?9khfkH>z0&oI3Y)z$y^)hsCz0zkpAUjlj|awT-^b$n(ZFy{nmiTo_?LH6f#S>{ z17yyi(pKq9;z}}tIbnM4u%ho^d40S(-2X#ZNf%BB9UhlgwIpV;E*{=q7^4#^bHc`B zhmMsBV|A=S@6MFrVJS=E9K)j=OPV^0lTPHsu(rK3PL>q zvU2xHsJ;4WH)Q3cbRyJYsAW)1RXTEPmuo5;%5t#->KbitC)Bl?+5_d&)Ly8Sn%WO_ zou&>z`8D+c)GAFKgeue2r%=~x>JZdwO&x_=qp4$10Zko;TC1s3P(e+dfx1CciccEr zG!+K*8%>Ei%NsQn10~fyLd8Mdq^YJ*vW^>}T0q^Rsn$@pYAOlpHccf%-L9$5P>%dkT+;-~FUAQ9_j=eZih5p?x^(abvzRPq?*;_h?<;mlln1XzFOMUg|Z4u6NHYunwofzy4f+% zd3E?pk(a4tG;&Uk`XNR%lMrEbCp8!K7LMtpApu1yAw@lsqt+!SZPwItl-XiQ^IX1d z4v84ad|ie*tprCS)QaTB zN)#k>`qQ1F4nV6Mk;)P-OwJ)5P6M0D$8M|89ZEiF%gzR?&>c#@(yR2ibLsY;RpVnD zHSVT00LiJ9^3fX!XpYI;@60B1_^@3i-6hkzJbZr)>`xE0xe|Eea7aH;-R(+}>9nW&K=NPphEJZa9 zZ=+t}&X1nzY~FZ-DvlrF=!%>DxM?aiPHl=#QEo@JW3sx>F;XpMog_YNp2HV@AZ)7p zJeo!50M|wK5wDVfN#YO%=}8n>NDtO_1{G2k5v@uh$|5G&N>>=*bgqp=*_x$AMmIZc zSI*Ow(hF6YNX*$k~g$o8rO9ms6d@vcC%@g{I5s#(W0TBAN})KPiescMBg zUOnr+T8)feslJNtqz1(FV5%0W9*P;HzKh9JIdlLEV)r{P_2jEJJq2nZszaispGR_X4D0&R z;h)fHcIcs5>QWze(A-HG#5y*pw;e6ensl+c3DryAIi0GtD_V7RU80@e0Y)? z7Cu0215biQ5iQiF2)Ak<8Kv@3b-N`pQGJa{^p2?e%|>PV)u^*w2mT@ITJ^_9QR+aW zp=z`{O3kLeNPWFOx+B^Ilhxpu#%g>_AN71poN~v;sXnnD)!frc-Q?k{*SG;{VqBCe zjPt7fap#csSk*JWrP>&Oj%wXxfXZ*;R#!L4P+v5ORaH$|s}795-_hapPHd&tB}S>Q z69=pA%_?;bl6IA#%RYiOXdPiI6C$P)%~wZXr`pGiRvTho)MJroy+Lw6bZ)eC12^mb zu_I^U{-m46o*K<5(Xn2&bB^QC+VQG)*aPaL=)XBi6FlmM1d&A^65m05Q?(9%ep(MH zEp`2G!o#h)mF=WEd?@@wN=bs;D6Z79#BPYoFIPDz3+azql4dGECwh+~PQB$wQ_Y-9 z)!nGf+UXpn+Pm6t9P=2p$(6*R#H*df5xvyri214;itZ;x_EI-Tc2eb$9n@*e=SGF8 z>rsro8>P$R8s)0TshJ;BN+T#8pS!Vo&YiEOM^977qC2R>m^td{n2{=uq4oCILF!QK zGF8%eh3$mR3@t736Ibtwo=`ic2)&V zpHt^1%0c8-d;U=8K{qBJoj9CA(p+6L&u6bHc=xY z+p6V}E!Af7;ZthuPmvF(hoe@gDUFiV?;AByFE+|o+3qH4hP#Wp&D~7>*?pC|ExM=r zJi3eO6?2Zti|MBxi$RlLOrrV`Y!|yo{UNrQ`XTmD>dVF>RGFu}+UB`aT^X07q$fTT z*I5l>Xe^5#sNRmhLtWEku-ermMR^ip)TIf8kuX$!o^X!p+_Z_hqUpKn+on-!Kw_f0 zEipz_CeBj*o4u&}yi-&;nanfAZ7x#_(F`2Y4Qw6Y%-|_AJoQrKxhO{3$mzb#9AT=x zW4U_Nany0I>wCwY;mw@V^GTgc5vwY(#eVkrwLs@iZ|;TEufIFo%1IAjM8Cfk!{p!lx9B~IYK2xxzvRyG+%;p>MH1A zjYg@zH|nJNxjFXPoy!YMl6pKkLLH5MRNYI@_iW5Cl@hx}9f@tNb~J9JTA=IaM$b9w zuxEf{33>Nmd~fwpJVSAlG)HzqyeduTt)5N@SAS~SRkdbn(J|4b-cD?znm3D41L_siF08rQ9QKf!AO5tX3w0?ca;e%0eiFGnVqW78 zYD44Z>Z!($I_AbTS1aSraXcKq(Q#42Wx6+#DbSC){zvJuJxDz&>K{HbP%;xg{ani*)hb~GOV4tJS>sI&rzeod#P)~Z&N)Y z+NtGa-Te%OU1(eqJsGSQ>#nvfMc>55QK{(m4owmC0p$`~se_N}RAgyqQdHJBe#+6A zQFxn*rqx^J_=fI&dodn=q;v*1Y6F}1M-|&rM>|y+7N=6(Y3en1vU)ALHKR(3 z`fE&E^;GOR>ciO1>dMCL)Bul1rNrH^JSK@E43CGyV5z?INU z9d8`x8O>ZrvMLmPnM!5HA0#@DYJ0cq=p^aa7=8M>Rd`ea9ZYv#8KrhMH^D8`{5Vt^ zTF2Fg=93K#fPe9b;OHuv(j-LJ3FTKE3L4(gxJw^ch&6)4!gbe)TxL z>v9Ivb2XrET|52z)Z^5RVV{2W?DVT=r*CRqfBMu*MX&mtdZ|cFtLsl{y>zA44J&P6 zT~}!X>c%;(f8DgF^{X47w0h}EORMXuSKoS^dS%)xwJ(Dg2QgR|<=!u~4nu2|tZ5^y zHyT6@1C=AFtC_xdHqI>FlijFV#U(`x$)0GvtWbjI)?{IR=JjnZtuNR1xIo|*<3>*fAgVR7- zxYpJf2`<6RhFRa$pd0jq(coGz2HXlV!|+vrIv!wa%)~{t0SQyJ1#u&XoBLXT=YgWB z6b+5OJg_r(3CQ}hFCT0N&I6OcMPPfd6pRN&S6vhEdXQes7X-V3&x75;7r`Fjt6&=V z2G|Gu6dVAa00)B1(A4>00+!?;6@Nx4Bunm67Xs8Dp2&d@$JA@30@8E1+M`` zbDIx523`j`sNjAu23!TU2g|_oLCV-S2wV*g1=oP1!2mc0TnkPDsRKS)FhVn@Pu5#G ztI{_gTn{b*ZvsVM+s)ug@K$gQcsqDMxB+|`{4Mw*cqb@3A@2f@fOmsmfxiRg(C>S| zpTK*;D)2s#Hz{>L7zaK8HU}RBlfgfLmw*p}qIvCM@EY)Oa4q-*coX;}_&abD_z?Is zSOGo@?ggI%PlH>)&MbXy1$%Z#o&kRb zSsheWAZsv+H#c82$lIE)1IXK&uNz1o;Oh-C4fkb$jleuG2AmACNbZ{g^0wtG1LMH8 zU_7`UYy#c|(uepS1bNHyZ3CNw?}P2Y&%h+`DA*A^4km-i^!4Y0J;C$9OTo_IG_VV} z9PA3N1iOK^gWbWWKs3AhDnR-y-#cIn@ICMx@EF(^JPGy#!x=aRg0fJV4thZ}!us;S z!Qic62KW@11-=JngCBuI!OuZn?|iLTBpU{bFzs-#FE|z)2j+nng5$sfa6EV?I03vD zoCH1uUI;!7P6nR^(bDPr61)Wb21Fr=?<6=CWc5PjgPC9fm=8)it^`xU=$}9tZ*H*p zH-eY*{7&!+a3fd!4mL!P?Q6_0LuQd7eQHkmwf*{xRP>s0<3^9bDwSCOW-Tu zE8wf(aj+8n3ETxzox!)jG2q+aByb=28}KjS?ciU*4d4N=5_}Kb z3%(B~^8)xGI1m*3gTRBJZ29>ZoCtmbUIhLfycGNtybSydTnK&v7J`SsRp4PT2p$D* z2EPJ#fM|a8y$*f@egqx^kAOdb{{Vjie*%97oxBuQfsN$lko<}U9bg>j1Y3eGup`J^ z!PgmV2KEG7fCE8v$@4^E1I0BLHxnKU|SFw0ACNV zKR6Q{2+jl1@a%g8%U}+;3mgva1up;(fuq1Syj6|{&jWM8LEuaD;}gJ_!6~5B zyV>9em=}NxFkcCd1Fr%nfh)m_z%};swIJGbeX>*`_MZh8g0jqtMqS@=a1nS06#r$J zqZo_@OF&ksM3cNP0bC3=1DAj;!KGjqa2Y5c7MFuJg4cjgg5uv6+x&uUrd!qfPWd!o zQ_&n;VDa4gw1<35(drY!%VtJx@no(plv@=T-h9Km&hV}`yqgX0cEj6jcydgW<=?A@ zCtBDo-sgt*rQt<0i?-t8u_?Dct={6bGrSaIuczT%V0dE;ufXu;8y>S7I}FO-jtesr zoAC#|%#~`?lf|W>an%y=@*JxHaXLk<{j;8Qx68n`3x>!&_~5^!Bz}`gPmC z#|)3Y*5>`$@Lo2&cMOld%eHsK@aR`;9xYH)(bDE@-b}-rV|c$ay!#FBDZ~4d;q5X! z(Ftvp@81mXW5fH(@V+&?pA3(4Hf*(6Zw<)*!3Q8mhqt&-IRs8M0_~gH5^Bolv)Fd-vFsTRjeStLAO8DYTA5-J*HhY|5?n zLfx!+`)$gtK7qPP^FFsJw>l2BPV-LLlv_nG`@KQ)kZsVETeW~%t9h+$%B{LW1vIaR zO}Y6vYRTnA^GU{{+$_Lb@_R@d*_2yNgDTT*XW5in6+x}iJekJ}<<{aee$870Pbjy# z9qKyGyVIuJ>R~96IgD11+mu^95A_?(lX<>SZv9azsCj$g3B~*cYPIHlVpDE)3~Ht3 z$vc5iZpBw6<f%LU|k_OzZ^Mk zZ<3q@C0_$&{aKF9Wd&M3Q;BUxNv?l>YHr;x-{O{>(8o0LLZJPUuXuyCUmRIn=Sxqt zi_bg>eCA1X$!8w<45Mw<|EcpCrrx@FjrHykHC%`CO%gN6=KI2}_3rDy9`IIy>0lWs z5fy%>ZDtTqS8`kD@d{;~$19Xu*Ex$P_0Zx;KV$LkHN5SHS7~_r4DTJo8%il!Zb#UZ zu1^Pzr<~!r zq+(r|Kai6b95ylK)ldVf=1&X`ThtJL5gX5Gn@y?~r&cWR_ zC+7Kje-%U#IdC<1Q}sE&%QbZwfm>9lrLKY>x6R+?m)3bMr~f$g zQ_J3!b)L%?kC1N@q1x1W-qb12bx~=(Lke@RIz55JN#Y=1Rb*_iuIiousm$t5fNr5$ z(4j(G?V=m9d^-9{o68UzI{Q)Dp6dRju(W8Vb*P{?wzA|3$74{RA^aWkB$QQ>5%P`L zN{obbjl)M`{;ZzY@v~%Xv=C`X6k&#rkH?XRKxp00NbKpG0D6F#z{`MHz&n5#cX{ps<^mrB<^d^NmlEPq!T+ImB~+t8rFP7p1hrF!puaX z8Av=SGo#-Pai5|YuvoCPR_QVoXuYgDUKn&QnH?74Sr(C?^AJ)2!H$B)3sE4Sy9Ss7 zyaJdH#5AvG9B?ggGVn^^dBAnRX~4^X%s1Y%a?QepwVRgBDZ50{9CAAXZBD_)fHsGC z#4rvbM){j)XjDj-7dsgRZK33;=SrTs44RBkPR~z^ zuAdyl>?|4W&rgBZfr@Ez_fF0q0xlud4p3YE{KZ4y1!Xifd9%Gi@c`JZU+OPPKpBsM z8_zorDzRgbTGio`*;h8^Dob$%E^R!PMK|~?#VkzpOI#A>9$bot!;N2vMu!jX`dP}! zft?*z$~~YnZVsKWwBItilowRGbF0eTRn?2iYJ>auW*Gg>r!4DjtbWoaDgyDT1#L_d zO+OPsaDT41$uI&4w9)l4g0Yp0=DO7$91a)e%LuT5xS2z~83Ai=c<-)ya&@K_=JHI> z&O*w;OLL3LSV0p`T0sNJ{?!WF*6OE|@J2xyLNe3J7Y%w%-6eaNGRt@@ggi&ME&Da7 zZFbnN2Xer|dwyHq4*>oJcn5uFufc8QNbB?N&oejnMIpuxvpC?sVBW43&+;05#z5jRAM};126FsNjllx56mE zClzVojnF$;om2Be@3Hg)ql*V?HNO&THESi`F?{IFF!aMlJEFN-IjXXZtF!`KcQZBe z)I)Cuoq@t;!;!#c6|(sAL2O6Zg6OKGQ%#S$E;d({SPf5?VYy4qT4ycqW18~2f7qy< z!+4fRzKDE{pke$h`E>Q8zd>-{wiTtBdE5ZxFdmZ)o*}>;K(>KAX(08s5{UhWE6o;k}}9c&}(TTQ;ZQ@Ltij7~0E*_O_wDXJ{u3Edpgmg>7ls zu#wTwt}(Rh4Gn$Zcz<4kWX`aYe*zplsRLbW3SsfCNKAFD$%JjqPxZ0u@=wh4e?DWY zKR>AvE1y zld(++5f4Bf!6Ea^PQJknIjIbc4fIl|1*Q>-BtVdiqieN~)?z4%J&wNh67Y`~1y{#K zYZ{j&cpJaFxUzxT01=HU1-xPoD+R&5iO!eEzVfoXwAXPWrz z1;BT7#6oinqZd`V2l2>?5SbwNNpdLdWCWtj)(ua+5Z4r2q-kkn(xkg;Y4{BG`phw# zP{Zr&DtDa;Ko80UnkFnVZ`BTo!k&f7+B)zp)*c4M^{{G9D#7 zFmHqx{Srz1NsPnC(aAtFTUoZSw61D-rAbF1gi1#u;%d6dbbIarTIIV7Ys-v#+x!+~UEVw6g1y z?f;E1C&@y!>*7!HVb6#MktBXH<~8`t+OisxZ%SfQgzgC2M8RSz0f$YnF~TSuv|*rS zOTOhxNxKBOh8Yz^7rd#7;n+!RlzuLP+*|GZl^b$ozO+P`>{isD!3L3A<~jtuKNrvQ z{Uhyd$$>>v-m7K4fuf@euZ#f0q?TBEkDgv`3t$d5k^5>+jBg%N#uO*UvJ@yuPPq+< zUW3a4B`OQ#0|OG3PV$Wcqc5^AG+M#}E5~25B_$n(^@@hY=OJmsQYfLuUylQOg7yy} z`>MBqgMd#1Gl9}Ez$byM_q=DtS%^ysO=wd>6WSc&Gt1Q}_E|P{7`pNoi#U`&9H}mC zPLXD46oDvz<%UL4jiOy*XnsSx+R$DwG%oR0&-m2PzBIHLlnNCe7l$Z+SRicCC<0Nm z8x0N1Yc1L%hW3P^Z8fw8L;KRu4j391eOk}Ja!)HhCt6vR7MEpnaPgW&!*Vst9~Pcj zG%P){Xdf6FmW^4oBZhX|(9r)k)+aR9$IW*&*2nUjKt`Vc8N2m$0{u^Sx><&e7L9Hs z!+F=Uke`FX`Ui%=W6^+MX&I`IGQs^rlkP#c#esSp=mMIy=-PL4?f4hwoZ-Z2|0x z&!kQ9nY1ZBQ_;w0DjHe}X>&?xilVW3R{jncf2_@l#`Z_~Q}PnXK<3L4QH2~4%~T_z zDHst=@Q;sNcd4bJe@Wh|Uve@qW=-%*C4m0%xlli4-!fzCs$ZxZ43j&5qS80znrvLv zJ=D=F&l|Ar@Fa7W6qwNH(h*(=kHal|#)4s(iOX=cFzkyighgew7lgAY9JJ6Q2hRK$ zx|Hds>N3Mp7v8t20goO4O@q4{0I?A8qcxHA=>bqXyY9lI&!#`WCh60nfq6keb$&TO zV`o594{0~^V<~U|@FE}wGb@1w)_u8kPj-~B0 zFw8w%dUq52hqtwSCc|EW>jaw}X>>6!sjXUAdFpbWbjotBSwfpIS~ptb34`TR$o44~ znki5wz=*Sou;73ZFI!MwDXRpl7yCI*GU>27w{-R5OEg!#+JKH$1ZIYei~D$0j<#r4 zRL3c`KSWfgMGSlynG4)ur(1aSZh^M_FEWMdN0$fsz0#t;Z?)|o0@={;p1H^S6yQfd zN?<+#rU5?%W&%G0vYH+Q76H+cdpM`D4>%k66_C{x?YgHPNPn!Z^taNwXHL(>r6hN> zDajpe4swjr)k$7a+8hEskwrr~E!qh~qYOfYrQ|`y*Ur$+HnejLt=P~wJF3DiHnio2 z#_28<-&#ZK6rpKJmQ6|SCdKlwg+%!CE~n_gA#GgOfC9oJX1LgaRh8$Ct$N8yAM`Iww|QGS{&EqSA)=ym4sh3Fo_Ce)o93W zukPf7piU9(Rx}mMXQyb5!&3O+%d!-958l*}r9x)0^dQzmjEbPUvc2%|uDc?twk#`C z-mRjNO}uiDF5Xj$C3!404VyBW@LqKV+{2q2hOxshCu2CaR7N*9=T_ELx|?fmSa(&o z+Rdixy?(5&_k7*v>OI?=9`ZRLqXzlS-6_%r6MeA*7eGP4sp}k~i=;3jC6jt*Ln^1i|2m?=CKdc1-vb zKYs|p;LBPt80$Sj!QdAzOaMB(Ct@#7^`3BDGT5KP+32=ub-mqG@rl(G%oDbGy@X-=-ZA$*6Xsq#yhIT>P)I6u6Z8bEOWoK za7i-TS*|2=t-f8_$c(cc@vrPe)?h8HX~SJ>E+uJPBv$xBy(U-2yS%@koH;mdy0(dLA&4Pu&@hE2F^>^!8={K14%tqsx>elar0GvHDq z&^1JW*ADdN&DAu{R&_*Q*<_s%AMcZqK?&I@d6JyX+9cDfespz+lS442|bXj421Z4Sy;q^nb|7*#ZeofCjI@{(Ee&@&l%cAL)&X;MWgF|c<25O+=h#M)6mc_ z!?0iv$Hf_7WlR&~#yBNsUS;{ONb^s<5-Pk}vih~ggHD$ZQ`MNW)Pv-GOp}VG(j^(EI^@jG6p=~p?w+wB!p>brdp23m5dIpNh_z7z5 zw`+9|kX5hUQQFvRw}Q<-69abF>S$Qg2D{c!nCKr9=(Sy!A0#C|5-W~cc`wS0t#i)Y zz+)=psT5OI9i4#A+&#@dArpt^T{ME{JRVAZ1M8AHO>cfAy7&WjQW}S;b-sNh%@%FT zkM(9my5lg^Cu^Y2%E-Y%zsJ2ta0+!p4l`dIi1e1n9rLe@#q_FwapFGGATxlRz_&Ek zSA!Ebj+gp!5;5g~)bfZ98BfqbOl*mk<4WYLyk#SA!BJN8JVO>-S($<>RJ3&;1!OA} z>`oN`dd7kN28OwFE?G+$%3<4#D>!_be2{!wxpHwA!iP`1F-?q{b8e^qeJ=8(yD(5N~u3ou@1T5?x zhL(#y>gD|cD9lts2xyFvl+IAbsgz{4#yvYW=rTg96A)^$#dA`iz_CQvke=R-$MVvG zg+Pu3ctphaYdw8SOlC06d<(vVX{_*;#_*fcoPq1Gv_Xjs`b>W3Bfvu7FF-U{;!I2s zvg|$p#>4#td>>9Z z@}4D~@1l4C+7vH9o7xtnXkS?V9FhxCw4V%(vm=Vu&a$bU3yQ{_3$$U>WBi?GXxwI| z{E<^o{;TGZ?u1bwr-{=TXG0kR1oGcZcV^}n9l$3woyHB~-L{pfsSlQ-6) z_eNo5z9a(&0Q&*6f&GEG)_uNp&xF$-^N{W=i6t)4fu=P=ett$%KnZZnEs|GXCC41vj z&T;XbX_!|u;bknRnKH&O%uD85Op`J;X%Uv)FRWVhE7R(yW;nT|$&Ki-VZMGgRu}SE zl#|b-H|Y@c;*qxY@O~?lbM0vgD=H`72Ce(=+9R*mJ2CA#<)*_>6+%8p=zNdH?FdB@ zI9*GY(HX%0pj84#0-?dv!}O8PJm)>jWHl~TCTUY;k~UQ)6^&(5(O4!Gjb&2N*o`RK zzYLASVnrisrTmeHRWx=CiniL&CO;eXpbW!OdoIH@DYcW!7F1PWsB|*ci{A-d zo+*a9O%7(SSk_dbEtdnXQx(}$m&+lhT(S+~S3X4%|D8oPSRJxTx00x`RjrXvS3f$> zow%*A=v63*%+m!xme@tWbYL|w3s?)x0oDO2zPJ!L+Mi7MdU3pvbaUSeH5!bX*pUwX=1f&FtM(OWIT&rJS$vopZ{1#1Vm#aFXBFEp{jQoYPE5UH5ej!s1w9XJ6Isra(Xtc1^ZY<7Ks~uf3bO~e|(TG8b9@~JHCF#-XWu;x7^uU+p zz$spmCV~OM*+OATR{{^`=tGM`m}4@(IO3oe=7GuqYtJKSd@of$CEMeXPfh&lkzR~reJGz^3n8Tu7YF9Tc?z)i)^JQXX27Sa(87+$y>2wD>XQd znL}hWGQ4f&5PxyswBjM$lqM5_-Pq}y>!R!p@H9;=_*{qtT!br8>hw~!#|*8xhU#l3 z8AcavHdGX_&@ZnqanWe^;D(C+K9#Nk_uz(V7Thima}RH*DE=K3)=)7`jQapCiu;vW zRbRu7-cm*qwhN23mraIhT!xCisPwuU=W8evSb865swx)+W;gDa-cCIW!v|CBVG~l@ zik7FSO1xThL9UhI(ht}97TjLxC^*#sg)(}sge)Uh4`8bh#F|Wnnk$(u=>xG&qv<@0 zmME#FaxYecM4$jfKrhU1ZM~#E6{XxN(0Vab*t{|G`Lgm=xg?{9OpDqKWcXv`g)zE3 zodL>Wi+WrreJb$hVM6V|*1$;M0ALJ|jaqNu*+5J?NG=2%t*03G@xVzyYzUQGfFO48 z%*A~h;Dx}pz$HKkJv?iGjOPj-V0qG+s7igwJhIR*I+ zMeBl`RQ@PtRpQ0m}y`Z}Mf+Y8{no2{e zb63|^RwOAGbh^-`P$%5g)kzD>7A;Fsgrw@)B-XsLMdg)Ab;}mcu3k`QA}ELQH_M+& zfO%MzTZgZ$tf?$>hX(1_kLjzcS~NEawWnY8oPIJ5#?yi-cV%taf&o^V{ltHzP|f!U4G2md8zH4MTI@Sy(<6hpJH-4oON^EaOV-n-yXcgJt$&r`FVev z8olDIhp#Ccy6gQe)1K(@=a>uLn|j3^X|KKf#o7LYH=OzLnx`_N*PgZh;#DtS8Fza3 zgYWO3HEzt-)PHZeW5i8Su2;vOF`|B2e(@tKUbJ0v(+jIpHvGM+0cJ%Sn_l*82V??iyee>?^dGwLRr@b^_;}@~V zA4~n|)^SH_CY_t>y5jNK9p~=caboXfFMhu6!Pg>wiQ6Cb$;N~3i*6e+vhj+R$=PF8 zPVJTXjqR@)w|zD1oyFVlj$B<)R{GNef2kd|{n<`q?*6<_<<$?&nl|~1#8>0%_8si_ zZEC+XZ=1Z~o%bBMb?@GGi;6cmFS#!B!GE{8;E}Hz&pGt^^N*B2yldkH*S9MC_QY8m zHs{X0>EirHM}KqKfS>I{Fa6U)+3!9gE?)AVeZM^W_;Syf*4xhe`lWxT$A7VT$-Du7 z?)}8l7H|CU=5=*%Uh(e^t)CrsTOHz@YjBLVD_b7 zH#~XXr+x3b%6a6!VdQ^w1KioYvFI6;+ zhnIF8 zXA6IEmDm0|ziB*4($6jMz|_-pZW2!yQ0=xf=?aY^$z8xnhNq{i^uscyzgL$g@pO}Z zvfzj586h5dvuQltr5`su@T<^tYZ6ZnQ0+F3(P_?~a_pt1@vu!p`xBI&9!=uuCH){% zq}kE!n%buE^p<{hARg96nqE!f=>w|WCL3MYQXa{?v1vSKNk6Q4I-WjF;$h9R+sg4v zv*WxOARs`gk4ZvE`?uq4+JzX@>Gw zi_+Fm?zJc`NhvL>SWsDuV{%k{l5p*C2d+8D~q7NwP;{M(}RFcc0vXnGmS zQANPGQolQQn9;--N+*kQhNP4(FE3jFo?H2nDO_GYr?#?E5lpE5R;WOlxn?2|ing&$ zDCb+0E+R>l0i5!y!t^tgi!4gAq?9hKTv!ebt;)#sfWlEjfPym!({LW7cnL+1ZK$26 zQSx*{xd)JxXh~tV`%yv-1qT%hk%_WqD8nf9!I3%v3eQax6Vd+|KRjDe@QAkn1?Mjc z9>x}+;EYDWW6=T>oa2ZypMxkoNm1~qG2>@Q3LekH#eyhEbVVoy@$i5#<7XhwXcRok z%TR_4#EbEOgdhsi%;UNYg=akq9=K&FLvdQC;L%wD3S*7}YhfruaPp<#F-!ppPRA5H zkSRc6j!|WK5CyrxLx%#C;qb%beu60Q!vlQ+6rAWOcw|lx1z(wmb$R8eS6GXwg zuR=E+L_sJXNuwzEz~XY0u^SBqrG@8`%JYeppI}~e0Q}o+C|c6I-zEpCLLrjo2CJ;n zPlN~##d2h~>AoxW)^4){p|)C~=qEH3G6kXVg3@#vx8wOhD6Wa5p`XxDEZ26M?w4Nt zs0+F}ox(FM3;l$KLNN+@)>W^6ds`qB4~wCppU_bFNC<_`B+Xs@E75`IXK@7v4gG|M zLY5(v<}3!sJ(wK`wcZLvKcS)UArXo_FHL&uooLSVv)-~S^b;Bi9~+@`Zrm7iNo62Z zJZd%#{e*_X=SL`VQ#9`->;ZeLpEc47ML(gT(m=7>dN2sg25)P0ZaNeWMw5nqLPJpi zX1D3S>m|?Vp97(Ate7^A+ZM{ij9Mc`Q@tWfk58j3xw-9`?Orti*}7XqQ?S)u4BG*kvCb{nd& zG_zK$SRM!k-Hy`GPiUx2Py)5`yrLi94}^k_J89?#p~~l7P={lFX|izHZRD0i%})rC zA&-vD%ov!FVeuN7nQ576LUSH@5SVIv=eKiUSpl>zp!3zV+RNz+&gp5Gj9Y(Bx!yWV|{WxO-Y^s>sMF&B-iH$sUzC zc64@8(ddG#Oe53E7^l*an1bA_yu3_H;0P}P0cFNeC7}!i$ji(t z8ds1rwqP7$mr~1&p-OC-F_d!4fX~9r?6KL|Ipd1P1)|oekkU*9sB{PX=Vca*D;_g8 zucRnbdjq$J6j(yefY02_lER$q(Yd*SBuLR>#!yN=1OAFL#};H|}t>d@qxc&^e*KXAD&`Rr7$H{LI{f+@h@9oS@fM56DQvAM=UA z){LQ$wq~SN&&fzLVY7=eM~^Nl$QoUo6L^>qfxHWtfhj4&h7F_puwki^Jj*c_y~7JnPM-f2I*%f&F%6a$l0>d( zwbh?lUNBRV5HfBg{VnjxPr%>h;5}*Bd}oS;>|m)O>9cS>V)@}cjr12JIV7zoE|(TR zkN}e@QZj>OJ)|82pEMNyQY>bHJ#tb)$*f>`2K^<0a~%cNU>*m#Fi+shOhEdAWRIki z7nwtrDabSzAEgnuz+W6$9vCLIx%fT-eL4J0XT&hf%I4x@9xsQV6J#}DI^vS?h2;ym zwm7l~K_)W+`4Z-jd|Kz<;IBLUjra}zn7y-pgFj@kSoRzIk>9%RH~8cC-0&OxwS&L6 zeuF>8_tkIk$M~XAFM>^T`Akl!Q*-`;I2Ok7D6X@^{9(pXpehc?&CAc4GavQu z>EGUdbHFRgi^PX`+IhmRPa+bSn@<&bZvX2@u$*dz%=W zS3JQuM~K|f6DBI>o8dhpW8!%wc@SU4wBl`6#)OIE&dtk}{z=Hqn3$D4HV?}il!s9n zh)zaM*OH9fam4}0@fq1!49XL{0;VNaCD!8>I$4)jmbxKojcqj~0hO*)E6GFbv2y=L z{n+Y7b5WyXTk()y_7I3IwpAB|UQ#}tv?smz*P$%UrfHnR&?D`q5Yue;AfoxX^Nn1lx*!=e)P<%-BczwcB*h)MI-V zL=Bj3{{E;d`A&aoRcj?Ag=ngDM6N#|f?&<*H%?sLfQ2a>h|pTRpe7 zY+=$Il=Zr#-b+)5^_i}i%etfspbmKYz!cP^@&)x3m9X|t=|3g8&-?u`fd!~UjFvR5wC<0LbBRf2_lYS<-79C;B#i`A)gU z|BcAaCm1$FKkhqJO~^hW&>h?AD4HFLp~(^AY)jZEq;txJxTL9#%%nkiFMiJ#ZQEY* z;P*ul@8o7b`02iFHC?ZJ4H8lD-}iy6_5EuqW{d9<&?kUPMA~AoJ3ksvj6zBx(Zbo$ zuJPn88(ML-QrUZO2vtBm2JX{8zLRg#Vd{Xp3wP9z2Gfu&cUU%L^F?u&Lh#$LV{BKGb&+8UgpOM+omRdtJJ#b0!t)x5a+blJSj`;{4x2 zn-q0g>|&gG$Nk&ATVsn|Pl?97<4`tPlwd!CaJ4)9lMeeE-Z&%`#Krm>ynF55eZoD@ zyU*s%;1AY8#%?|o;XPniPi)|Py?p8MNX-5u#IBr?yj;GGN>?oC*5b=ahp{a+B#P|F zQ4IST7-IiU($XA zff2H{LB6Ex>775n?kn1}d0#^MHg`L`SJ=BuL_C8VeTBL5+aMx-_8alC{=9>(&bjiy zf-{`QL&7v?7K^yM8y;*mPn8aI~5`&S&X z3f}%(P-)D<-+!m~K+DaCqP!n>_BY_Qy?Z<3E_2mp8|tVp zZ-*~?9t(zR^Px!Zrbu65g)i@QU-m3y?y93_!i($jmQhH-iXCUVE{}u_t8B9uu#lwX zy}o!6OXo=cq~os6ET0{k$-jY2Av`=4;orV%Z#K%QZ_@GNpz@i$z`qm4Ve=uoDTc16 zBgsREIli&k?nZdXUXY$WtM*#&kv4VRT%A|bO@KJ~m2jWle!lKfp554xJr(mg zVqIa4FT2ENTbDi6SF~f@+QZ;($Cn_ty<6P=q8;Psw>ft{GGg~W87aR{dsOUZN>FRG zPyXzA*6Z7|D_pCuMO-F5dApxQehGi9Kkx9aPYS!e!~-B-`jNv5-cLW}o>D?5gq94Zgsk!n!{{JNY zOT3$$n-3w%&o&%oHJ@}id2>VFUc8d9@AenYLz%W0R@hlc*a4((UNXzS;xqq@y{KPs zo8z0F?M7a$8*TFyF7O_*)qmxm@h!3u#S-N)eVgmj#n3CTYI!7^Z`bNskmbzrKI=v) z71&eOq)p6(dsFIJpf=X;F_nnja!@5g2UJ_JF56u)-zKY!sxPM_9=uLiqx%u6p}**` zf6@*_*pM|HF=Nu#mo;%+*7Op8R>irE7tZr;cCU-fDw!Ygs}=B1vQo?L#d{*!b*Z1R z6&+l4G=lBar5E#d5^CQ*Uv`{-i*Hl{R6DTcKJK&mE{tUFynKZ3{LHk%l)6~|=43Rv z*(v@RvE$V_v;G_$B*S;`*F~}$&q+X|>_=HR?q5E_e}1O=B>SiQl)K`SxZT6k0=(|4k?;PWs^jWtVM|K@RBZ$Hm z`B(oo6egL{qkejQ#g6?Gix-?E#pm&jCw-oV}($e89BhD__Bd1%4G>FnBz_Qrms7y&X_mI}wFzgzo~RYXueb{(>1 z=O$YmpFew|zi@i+m!8<92$j1!dyv;B>u)!svY)ghO=n4(7#@GqlEf19GM@2=l%Tpf zn!jqU{p6V{EJrIWCRUbw6rq>`XiHZG2)%|ZUd@RoBzxM+3~O| z1)tz692NNDvrhfRiy2N<-rxMiN1@Nl9)%B~(t~1*R;lBrZg~fjx1|;BSlkTzaUH(L zZz=R_0hpTXQT}uL`oUqo?%$cbEq&6#b&+SgayFwo1Lx`Ami%h^>+t5v+2+sAP2YwV zBL59k`{XUYNgOu#vUAaD_nCBXtqr}+6)^?guWa={&|$?sWUhC4u5hhc$UY3(@j1}p z5a+TperRk|CtIP4PdYfwKdNu~8+B(UzdF9LCKWuhW|iGeZ=+4B<8kGpIf(Ta9rx8l z`Y=Q(l}BDRObh>cX(bKnWzjN{67zbpm^?%YV_IR|c*$GGx*v1{o0q$b)H9UT!J z9Ssf6(nLmG1iwkRqU8|-U8LdgUdw0OnX zTA?k3d#%i`wzpvGE^WJE>mhA>VCyAqdtvJ> zZJ)u`N7|71COd06FT?rzL|io7uttu6ewo@SVeZs6tXG_8!!{|*eTQ_%Yr#y%6&vQ> z2f3=Zw^6`QfH76LW+0}CX(0Xp!GkhdGf*}+VTA2hJIC6j8jI8maaCMrXv8}p21N9; zZ;WV+vWvFSL&dD%Opm2FoV#3{g~u{E zOZimcjc~=?Cyu-wdvSJyvEsy!eZF!Vs+bGR8K245- z&Vw5H>06mJQ0^@gp_8mj2BV>OiVy-@?&MBgy=`u^Ou^&v5s<=+i;on`kUpltE$P&b z*wy+_ZCSp=efD_FUUU-)_L25>qSD?;TxD;AcT}4XXW;WgUXB@$R+#pTh0?<)F%uUz z@=;mh3-Y7f2>*+N5+wK5>Brm-zKdrfL_;)`2=!=-fva&8+1o(w6Xdu3O6FV~WyFGH4EkCMU zJQ{VLxH|S$@rL7WL4V8$IWHt?@G*K?8Bro*T@~jPdu_*Uokfp`IZ@Zd3>I(3+;6+G z#b*(E+xOS35TdNis92Wk#j$`#8JU8AtU}`;elkGVZ(L=i}*tFD8$sPy zRhdB_B6t6Vyj8j{XUbrc<4;3VG8$#k2Ydw?^D!P4WsAoCz8Fyy(Np-KnQ2l~tT-z= zOWYsbPL#&fi63IdK$mK+I37Dp6gX# zf)sB$KFeQG+Be`?dvG1b6>sZfn;y|lEQz=WI{VKT_eHN4*T;+!z3>co>;{qA;wJl{ zxKuF|ugQ$&2m2PUUnSq;+W6Lyw~4KhRXF$kZE>EJ6`U}_E^@A#VOFpld?V}hR6M9} zM29BdbauqGctu9foMc;!IqK>KYO^bYw~#p*iOr^}^qwod+#mm6Gd+12B^xKApRD$T?~nd z7ZYO!ikD&%#POIGq9!&$yche3*w&(@NXO!XXK{6MJ|+6aC5RW|T8cN~x`^Yzg!ndM zG~V~`GX1JH`($mmi~ce_HaQWC?i9HZj}+Z6z5#Z!`NcnN=^`!yw1~xyN8@JW{j*yg zMxIdijH({b&!fKXyvo{2s5w#Dq1ME0kLiLB^dJh@o6yTN+}24zl6|R^`;^vq(XpmHr*UKz^Al5D_BIZY| zwf$^=MBE>FhbW0!Cq9X4Eq;zF5LwX=W3G0mcq^v8I2`jtlhz_FDqh?l1wnRnaY$>y z*HEp6RHwimfnRlpe9K#$EpXV^H#o?(MZ}h8Cowjw|FsEKINHbxa1hB{AfI=2{A8;>s+^jG8FZ_a!7&c9 zfmF>olh{rsVW3nR70n zK!Gl+`j6;Fe-65Sf}IL3hRCF;ADIMYg@TKC5hq(6%R|_0LO@TMTv4Bj8DgWkOj3r2 zQ&I+nQ3he1IktZ3ry$hOVPS;91GyPX`!H(&;mavcVKDpG<1OtQY62QLuePs~QPFG) z6?CxKu%^oqu~Tvf^kdivM$GP!byBvsB(SLQn^~$t;#zIhDH3vJD86D^t7oi?VhVVF zvt;hTHCXo@Wg!aOkGAfa92q{$eVVKf0sre{T?pKtD_iiu{rh3}>54lv&tIjuTysBI zcF}?G?^^ddJ!3hpfYIsS9(I2bSm9vzbFAW{{l8}2>-gNVM62vK$^%lZL^2}s&onRL z>TA(A38e|;4IoE6khgkz0^b4l1MUX02)_&D_~t!eF7SO|5%5DGyS9&jxupU_9^#AeAA2 zdzDHM*!^PM=otv4@&mS79e~`n-w{|3Oak5x>;}9SNM!~O0;%laOCWX>diDb`dFttc z0+<3E4#YcoGJ)y9Jm3i6Mjr0>16^p0WoUzybsIfuC6SKL97=9-23C-m>sOqb52Cd9&%d(W-FN+7xIIl!lYbAitR=K)^^Rsqq=2uS}u3BU!w_P~X}Zooyr z9zd+u^Hc&a1l9oSfJ=dHpcja5>viB>$ zz)w+b&H!GE`!T@lf#ZOG2A&JN0ay;a5jYR{SKuPx&A=Ogw*uD#Zv#F6ydB6ni1omy zfOi2oFu4!-Z{YpFZ-Ea0PXHeTMx)_)2$%qT7|2~ne+Q-mA*Ax;0S5!e0*3&{1D^oa z0-ppf2L1#1Ch%$CCqPIXJ)Z$Fm*i=KhUa-;Z{Q2S>wyrhc_4gh`x zOa<-*o(=pMxB~bIkZVyt1zr!_5Bvx4E8r&J0bnOIj9&x015sB!J%Qf>Cjq|))&PG1 zegOOt_!aPH;Bnv)AckJzD9{1?1xT$@$AImC{{eOZqRxBH0@{Fmff2xJAXMpkmH{Jy zR|0XGwC6S;_BD9!1GWG@0(1bM1ftFGd<2Bt)AKp7127KlFghy__X=V0ou?NNdxbm$ zfSrLufJwjtAj{`eV1L|m06YYE0dOdgTu>VDYT((x>w!3p!Sfg32;eP1`hNg;8s6(k zU=Q3s1MCTW4%i2{33wK83-C=muK~#LNUmJgp_HzWp;k&)Xj58j73~YlpM$Dgtc4&w zEt`Wan?*w#CT$M3LKdyq(9m*NwAqGsxuN+D?J+|`nYZFY>9N9oZfN9DRr*|(4QVm7 za}2G_&?*hhZ)jH=8qaQ4@$u|tl?OWwZI_{aZ)iUmT06ANDr^VK<`Df2jWZD{zH69wEUGB+CoFS(9j+;w0{`d zD~9$jL;Kp$zB9CV^bYEMTUj=TIK$Ao7}~9dc88%oY-o=e+6RXAv7sF|G^|y!@}R`B zIWctBv?~qm8bjM^XbpyT$k2W;G&@>-^&T;n4dvd@&M~y}4Q-~OVRe!fcBP@MHMFY? z?M_3x*U+9dv=`Wf2guqDa1$#2;-9efkhE7U8_qL@t*fNHZ`mATKWyD4 zjj}k}9O4()x=Gpz%jOVH^jbY7&1Kmf;&#~ZkM{H~%jS@~E7W&;0yLEe8!a0SOf1=7=%Z-Y zSBgc~?o@Y+P$^_4eaL**gHypu3Uo>^lQ4+-LMOy*W z55@e{XDWp&=+p^B;2;H^Mnu3tHfPdk^r3>^!_IM`Haag*;iaY^($N=t79M`@2MMox~<=9C8_(B=^LSguY843$5Jc)`#%8yYf5 z#)4&|md(Kto<-|qXk0{^mne$`7GG>bcu(p;wfe%lqJ64s%|AezAderr12!nHzIm-9A1sUe?f6j)~1#+Tn4N0Hm4~*8sGT3RHX?;o3W+S)@2_@k@HRNPw5Tw)#jxS&pz$kV#Em(VfceC-CR)hS%>qWh zL`V*#(eA;eo9*I5VeZfHH824|(+k%F(iWJJOaxaIJYzTr_u=aPnI=AaFRt&KtsQFD zZdm=$^HyjjVcy0}M+Af=5ja-m)b)f%hq)2LCe;3dZ0s(Om5pC`B;yiuaE@s}&8~Vo z($yRqOEC`xOG2jUNMr=ev_bSImf-mEfYMC{P$n?D$9cncva&-nJQV`U7$E#YIGT4M zsJ;m_HS=h4#YzI7lxW^V@2$a}8xul*K%Hp5T=;AQXA>yky$ly8tHWE6K)Rc4LG#yYy}Y^)648pWF$(-8u`Ndb=!f)L@{*m3$R_f6f_!c{!xm8*)lyUY3he%hK9+% zTiRr)_kbaW+#AveU{~O1Ancwgz_Wl0f&GAWz=6Q!z`;Nta47IPU?%X-z~R8Z0M7=p zZGuEio-dXGd=2-RK#ai1L&&pBcn^u2NCNH!W&)XoY$esGj5akYqs>8in{;(b^{$E* zgBqp$IV~GzHVrM+(8d}Xq$o0kL)07EGDBNuXn!&^$Q`U_JZES-4Gq!(D?VF<_7`Q@ z92|pMVfz`{vxfGfp}l2jyA4h2cvKoG|F5n}ogaF0byA3~O09qL)rDi$M|Atgv01}1 zA3kgUk!@Q4dz2J@)uJ~xw-jts!du5N@Se}x9)3F0fBTKeC{?N_ycRswf za!C6jGx|i8CEf79(wm4vEY1H;Pa^j{vxf?p;2qDb^Z!ddiIl{Xcf9K#6VSP$a){u4 z&up&kwxrf-w=-_A$RUb;g7!SKceC3xH+4gD@v)}yu$NIf{=n2qb22@NpU@|+hYzpX z-!vX}hjtrxI+F{aQF;<-OX3eq6l|!JFlY;C9lh(NNY zuLm>eO)t!zop&Ea_P(+L;!b7zLKRU@n@VB zihe>vkp(!J#vhLrihe>vkpT*5;R)6F1F5()^b;Bil@FoXDQ6L?@#l~gihe>vk#`6@ zD^%l;o}Q$i&`@No0?!K7_@lK!(NAcowlWkr6KO&<{w!A&M(PnosGvRVd?V=ev_b{o zQG{r!g@WtUqPY@F8hKl4z(uC0XiE`40xW9;*s8r$2@Bi6I8dmxB9gy5*wz<-B6B zIhp>H3^o`+M*0it)9J*hZil~nEWd1On$tUS81zTr=PouUFysfC(_?~pEwLYdK4WtM zL+{PSw;RmRooF1ETU~r-_-igcKKD_uE_Yjk9`*>$#rG20lb&dtzDj}z7`Cv@#WxxB z>$|`oE*dsm&BeDG?{NZtF6}10$@Rd^#n%J=_P~#=hw{h#Y%ab;yzfZ(8Q(|wqxa_G zTZRN}#V~I~Kjn|v*j#)Y5MN6Or(PbU{4v_*;$zD@YY65A!Ew;Ez|~xQJY9J{{M-Qk zfrh<&bMcjf9tnI9EOy%!n@B1hcem?v-a+N<8ujb<00D9j%lxJKtCw*U}FCrhhFh?nW zrvaLaZzZiRi=8o42-WsOH99T8(@Qlv<>*CzMfnev^K?bsoVz?9T3?{%=JzWAVhlB? z#*52J7w|kGCW)PMY4w~r(Az^*IUVpsYTA)*EFoZ!wN9UBkor<6buL44l$M|FGJQ~A z1l2q>5c|fq>KR0lad5??r8$VN+!5~5|F9udP*}|rx$%_$1Jyx{g-uLpDYQUU4jW=6 z{ADCAf3#H46x%8Z?o@fCv;if_G%*)t66@gz4M|D|6SIJXpj$@Hs1dPt#kP^f)-9h? zT2;+c+d@aKMUZNB5!OXsY}`}V8C&(l8Gc?`17tEB&?I*E2mdQ+W5eer+<+s2aN={YkT|A`p- z!8uVc-MK`Fm6HD6&TB4uucYvpv*O3IyC=W*1?C1My{Qf(iZT;y_Aa-c-uaW|~FXZjy2Rr-V8SEsVhjR;H2s~63w`a@Mp1=K(N?hLJ4RtKF|ID=-M)Z^5@ zwrqktwNk2&vh+!XsE?v@sgX(lwbG~mIv_L?{SWm{DP2(i6TMTRQ5ywIe~8{Gr7r7# z5tYgAfq#TjtFUx7jT{t}PtXANKiB>B$CW|zHFe1`@9_tI6Qhaicc^SrA3(=s@?R(W z_vFa0ME%F+h$1BXS82r&6f*>;U>`4(XcHXGTANgg&zkhzI+o@G}or zV9^EG9b-8B2{zn%K*O|shif&i?64(6ItMt% zs~6QZnZHL+%Oqh1P$%qQ>ZS>zlqyCMXadd%ESp=25#+d5-@`S<_)y}lrMTy?UB3@T zj~;rN4rJOeT9cF9qhMF3UDL+Bpcs1La)>+e%e--ldo7zoZfa5fwt=SnSxdO4cvp53 z>sHp(Cr;i6Hvtu9-Xo3m(WOqV-14sMD<-&BUrmQgBB4g-PGtRaxXZjo`fgwl97&r> z@E1gm1Z27jaGLD!#>I(NgmG&&Ep6SWAkr4YIO<=v4vbZ|L5`np82pM% zGuElK_3vKurrYiPC9*!sd(>7xUpn{;;?naY7oQ^ot9SAjBfRxmamkz2i;dd~jXxpp zRcOnP^yf#W6~rys;xA3WgV(%Y-xh1)d<6;q{NBETIR3&*WwJdTBhmBaJ+`twidyo=L$$MMK4T+pe2-!alwfnN@x z6UC*5#t))g*Bjg4V58V0QLYbxkQlbz_=UIzwzhb>3NZpU6`vb63WgH7kHm7l#n>J- zHm;ITF>iuR#rzp;7b0x5IA~~*xc?E?YFye-l1me-K-`HcPdoie|6%U$!#z^ED1X=? zA&m~-gLTk~4FXQ?=#WOcd!&1uq_Ig^jQIM69VN^((LZ)mn4t_#fPq3xC$teuaXp3WWvmQ&50_q_#8*;At#IOF7#|0|HZf;Gece2{ zcatCbW$AG{wv*b$1RUP}I6j1qN52k3aaSu}C{zal*DN8C+=>PhVeJT&ThVxLOBQ9~ zE~xML2I=MsO70fLwkeoDVPUUYWXaJm+N3fZ*GMmkxZ&Of?u2z9sG`}pyA9?L=6?6f zM5tig|IZz-OvEJV;{fFJFJZw}EC$nBT>|GjWZLL$p7hoq6O?u=PI^{+E~q(KZ9~qK zZc#EQ*JjGaPzz<|x5o`7Z`@bIv-}p~dKgi>V1u3jTNFz8`BJvA2f?Co?YEG2UT@)g z4p)|SPxnriJ=_odonrad+Sb^ts`i+&h^PWW3O^7(viihm!x{Apfm~x*2h0H?uRI07kgZ{ahx-74G_EKxZc5YDbNpOS-ld-^;{^E9_&_wZVc>X0zwMnX#ny)u=`8CFIRS5 zjr)HCuK|7tWPa?m+_8I$N0ZAPlni&oqVwC9;ZkeYXj5y~XmfB6sdRO6*ORn4czCr% zxQ`}={FB#f4L)&d=dkhWx$E>g? z46O@V$}$;W56k8dBMmLf(710@`I}{E)IFwXoh+M!s%yFAcnTH`gNw0m(ns4z`trMD z`S5A7F_?cmxDPA^W8=^7yJnMX%?(IN6B-v!oF6;C^ZeMx#U-l0_r8<_zM~h`#mhKP5_h5%H@B~#*yZ>27bp3O zv9i8C&Nt5DB)~?L%JuY=u#(|R6kYJkdKfMG;I~xL^6{%&Q5yxO72uC`R{5)hP5DC^ zX8l3fTk%W3iE_QM3h^ZFmF*eWRM^e1sj%#Te#C`(Y0P2EMmL)9KA82EM!Sdi!Cxw8 z;~v}xe+Rc*Thl(4&y2-IR+{ayGVEikaPm--K31<`mYIx2p#9OK&1e6LOZSO7dAd(z z^r3wsJ1n%y;tu(=;pj9vhxaFZ5c`vs(#yx_3hiPxt`~8gg?^+3=r16>><5T1TK06y zuJ6P92qwld7-BT-BU*}?GHF~vl?0Ex&yxYvy&iU;mo`R!w=+P|b|=~;W<)%Y&qT63 zoq%|4PZAI%Q1%mTfJ1PPMOvQWz|(-)KuDQACBP2AiNKCPmPy3nLEBB8VxAfx!=bI_ zaL02uuqW_7U@zdKz}~G?7%(4?F9A(?gpj+KLid2egZ_AJf8#62YL4A1s<7Ooia7t7`pw^%lZ*l1{54ecXC`_#~)kdw1;=j5(=X>)KtyG5hu zoURT*j#v3xZ)gu08o6NQk8P{+$F^0`tTxVHT!Vpyz1VHf@1DMGar^l~wQBx+H&tM7 zs(1SHyZiEMWE+8vI5oPh0U4T>;R2s&`JHBV-1PJA8C&s9WNVrzM!+@)SEArIXT8qF zrOjl^LN^-LYufcSR#HRjwZ3CsKZa{S7;nrt8J=b1vjqG|!+N{8teo6%ICsoChr(rX z$D?tG>#1w31C^Qjzrx6iQ4p84(_mdO?xK^`C z_UF%X=2y7GT>b@@^qHON7W?z!e0d2mnV{0iK}xY1>K^-8kFISnuRGVOx=q{E>TsF4i0-LlW@-w1p0SC3$OF zacb#ISMKI%)N<%u=@#yUP@nD*OiO-^cW0ybSmS)*%04#Px6-{2DHX|lPOSBu&xKIdff5-Ff7!v(jpUK&2o8ZhQwQ=!59Nx!pv*{@ zd|J759)KP(LNW;|0;zb9&utH93{GH1$mh04if76Dr_gzhKv^4)x75#FB=d}6_Der~ zOc<5cS!gPHpcCwauuAh1nW7JIaV}L~Y!3r@94MKHvf1{Ks*9MT{F?lhyoXh)(c{+$ z3_}x8p0r^ZqhT``Y1y9_s+oKN$nv)tNVemjz@flbfa8E@U1W2(8#oL1Zvy86cLA3G z-v)Ys?*P{T-vwR^d=JRZ{C(iFR{yMP+j^lttsSl)tW)%_*onLeV(TRq;`cgrZS-grZS-gre0L8bxu6hK|Paca5Qu zMNwhb8`_J8w#Cq1Gqg7i?XaP7IIEt~1}%?@?=;Ki5W@_O>L!%Gd_yZVwE2d%$k4cO zTgA81&?4=c2F-F-d|;Q@&9Qf5KQRU4LU&?lU*THKhx&_WZ9r;;e=<&bIF3GSHEwV_ zvr|Lf5!!q+V$&uaxg`4H7U}OUj`F|jD*~J4ZaZN<#(8Rph~CRm(CaIOAh^3P#*fYk zJ!#v}o)oHZC?BUh-L?8kM2*qsYIZBoW-ogv_TiZg_-RI*zWG$*^v#1e?axN+GM4{i z@$r6EP0G^U9l=1xAg-T~0zGmyBJ|5Vph9%MseZmCE6E*y!j>_U<6LM3#Gi=wWc18E>zVI-gKb&zkBBc3G)zpuwWd~Vf>w3 z8flvui$XzWBzZeZh4($-E1u{!UZs^oMzW+TaT{a9u=}gMi$(5XrSj%uF zN)hB-X}bcyv!soD@EB=Bb7jfK(O_6K8@_{b4am?tfp)$O!N#;y+HzqlmbSSj#C5Pi za)#&bfNiX_9Wbsx8e0pLdG!ox>ryeF4x5U(8*CRMY_v!=v`E~eaSLH+xav0+G`i7{ zp<#Ex`xsoTu)*$RXj)jlNv{fXCqok}L#TLWg}H|_G?NiuxU8LNl3fyz-JLQVPb{yj ztwxU(Dr?uH39|AS`b5lt)~n`t8S)NHvNFpeibU6lP~L$9{Z?>B4*^pJo~Qsl_PydL zK9ZI>S0hmzkO%kU#^P*jB2&_bMnE02t%I$tjob!PqUdQ6 zTG}5g=2X>U;axkCV-5V}MqBtC8W9b}MT(9R0Fx# z1WP8)Od_k%Mmo=km>3a@BN~hNw$hNDi0iO2I@W$hbVOXN!

Ni;l3L;p`tBXOASw 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Ðye;X>R+vFohr z#aVU>)|l$KBsh0pizYYyVb~Q{jh%MFWo7#=?)ljV$@k2-{+`oX-SW3qr~m8Emlqv= z+pOc8lzn>73F&!N+bTDlv-!l5RnNY<=c~VeI{A)nTaSLG{*yDGyY~Gd-G1D?^2xI9 z?;qK#|A+6t`1W7NFPnKwa_+)z-qY(Zdgz^+#py*^1rP67ciHuO-aoBZ$I=VWytp)X zXVu4FHk=)NbWH1ZZ~f!cDTki_!FP8oo%6=09k=_2teiFKrQL)7GWn)6@4E2x!aqF! zVa}Boze8@cCX`%V;&Iz{P_|E;=pIvv}1w+SQ^!?1mpY?cq>Ylr+ zy$cGrtz5RX^x95IBkx}N_;*A0jJ@T0%2~?gQ!`PY`4zX%Px3T^)q9=%xs_0RnVWka z__kmojRBxFVXKb~J=#SY0syxI4NU<=y8|*Q6kz~>-OcOasxa@`s>z-`)JKH%){4p# z1M{+#fWU~DZ?+Hrbo(+560%h%7c+16q7m9`C{@R zn}Gos(C`V5`|H+)vH7s1UJup#_dtj)EhZl>^m;u!_}>PhZkJC24|3N}x}u?4|3eX? zYY~$V`MwxaVVOrecVZdHoeyip>!CV-(>yX_^5HP+^-yx;fcVFpZ&t?U!#C;m`~}&Y zd|JiiL-y|VoQz+#q3hMYf-|iiY*f=PLcYWp->nT&Ksg zqrjaJqH7zIPkUf-FaE+``*9`KsNMB*kfOnXV5PDi7Z`Zl<>{bkR^XSKlxHrygMKE zDzArX`B_tRU1IXd0@mxH49e%au(UmznmeDaiiRDBEs`!PCZBG=dOaMpLFRP6@1cid z`9^m|LpA&+pKdB2pw-<4W~m&+*fBA@8}n4A3Ki_8Fy-Y+`MAOe4YYl$kyKD7Rk5ZB z=QBA5Gb;vDtudYCUS>7}Y?dw0shTF!V$RT*wk8!eooW@XLj-1y!n8LSIRy<|E1S=` zI-d-S;fkv`^ISLU>n@hY4lt7Q+?vWtlSnX&Fw$4c-F1zrj}HtHb1s)zn?{*?J!(iK zAEWpO*i>M=PB}12-5xM07Nb521g3?;FpH=71D9qoFAD;kR^=08KCK*>Mb*%0r<^Jw zFxYO;=}ZaV#x=(Zx@aR+U>swx4%D~uZT7J%JKFWmoKZ;6EcL%+|2ZLW&KO{d>kP|%P=vevLl7Y z8Qz}4g+7UmkjXUs5spbp6Jq_!*{;pvEecel1a{Tf!y)M}AT&C4@?1)2^Yi-V`spkvA}$usDCh_|mb(g%c*^+j&Rc zK$&zkW9XwaantbPLq#aQS%_ZZo)VB3up%6WYR{DD~LO7kDMg|4QQ z#3Ee2lQA+A7&8L8(9 ziOP2@%C{ag?`r-=fh=Brn{eNMcE^4!IXD~#hj`_?74_Ew{Q4pCQ8o< zlLx{jdfus!u^t0Wdo~<66d`VYKLEch7waUHr{EIhSB3Ij2O8f1q2t6OUisDle->z( z4-~pY^~Xc}Q$Tah;Qi+}6wxh*V6_9D4%HdA{;Ci$6*PZg0=Pu)H;A~lM`BAEo{pku zy!WvM<$DA)tB+P>3ELlqgVN!sYj`>&i<{q*DBtU#xh9`fN)KP$`eT0GMxcD~bcynN z0r}kwnv)BJF46noV(C86bSM(KMDOe(m0O(j>XCD9^C!6;k03G?nGY3FNHuc5<&~*jf-UFaxeg{p(PlQwT7a?philWvK z7ab&P2ZPs;Ktj%S@~mBPnb=i=6Jh9}lKS1+{RMAo^qwB$U6`5)ar z_`mA#+sN-NQ=4_t{JPrdeRHSJUp!}FprR7NKDmAR4$U3Vw@>c$ z01U!SH|Dco=IZ}@gIw8_Coai4IxD+U+v1}6EwRT1JPiUx8Rr^;*rT(4i&>m#Yd*hU zPO%1d{&UuheqWPA|3Rx`QrW+U5vJ%uq5`6`{!iA3&HMLw4k`BUXgteig~|@-s}gKe`5g_f*>c8aZW{~Cy=gmda#V!t$SJV2^(Mw%PDSHc+Tt+$>t$k&$bFVn zoalU|kBQ-QFg{64uHXA(ptOGVXeTgz%Cr!^DSroF9~~Sj$;QWt!(OawGxyvLO*W44 ztRK<1ak8iW3s2z7(9F7xMX9Cuq%mhZezU#XOU?1IjPetp9wv~&kBji#Vo|E6xK6%( zSLe!(!4ph_4VQxoFX2plGZkRXDmC>u zJ}S<{SEvAYSLGd?2zke?Pnl&R8F%5H&~lMFU|T+W+3fiXF)xU(e~|Br-$Ts8#NC{i zG54k9*fvW4;K?|V<-^IGc0a{#a(A{H&|Q}dX(fx6><#ePo4SEVgGMKX9j`VSiYp8D7F5SBq(1qUkfUw zPg97i8@|BN$|}BuCbm#P#;~H)THlUQxk&2Zvi|3v>#FL1Zc;a={^xyl$JGD)Q{BPf zGnMr}djdD_!q<#LoWQYFBwq02uHw-0s$FC2Ps{ZL4%$(mT5JDrcZ?d162tt;08;JB z2^F+|kRhDTD|&L$f}f0**L}O1Nx zTrbRAAQ2#9K^-e1l-ro=h(&# zGrX$V706SRuB!DPsG>=M1q8u)^nrqINYMg+qBNDOar_n+&c2d=#)A z@Na-zQF{&WT)@8rUIX|h;B|m+0p11p4j{^`w6Xsg@MT=1tV&xu@}>rJWsKz`K$L+; z7L_*jPXRy2^)A5g0KWwM5%3GZCLXzFo$^_Pi!vl!lp!CVNX7c`jwB=>ZVTN{7RT?O z1lL@Ld`?e`<4TF-H^$;7SlkSYn{9DREiPbjJeV){;AV~Fx7*^rv^Xn24XEGg)E!a3 z(^IzqKY@vmh`d`G&IqE^unk$(P<$#X3delK@MZ@Qij1hFSnBTj)dQTmvGv29KoMoI zx|{h4XkfFFmdJY|b(d+Os<=}bjA20=rpYOT8u_jhYm_QsZ=_@KGo5_=Qh3OOa3P;( zrl^lJgc1_hmglDX}GXJ?Nmz?ib5IB_lWnGSz0 z2#hoJk`BaLjRX@`VhWbelz4(e>PkHE15!M}(62Nl@Q^$^{Li2p&$PIPsNu8*oCC;s zzV-~j75bVTI~ms(0X7A^LgU%7P9RPRrwqwqdxm_@HTV_WW*ri3l7f58;R30sOa!iZRF!=O#Q_F7m_I@@P# z=eSV_p9xJvqFo_V**_B85*tgVC^){^N${D@rT9%ejI;c7Xh_PrhjFq`Iuq|6#_y15 z8}A;*Z+FGJhw(<#id#22%fwgk06bf_ID7_!b1oQ6-JL0V5WmH_99=QqAZ|Jlhvuv# zwoy?}B13b&x=VOgld5k^y2Rhba3t=mC@+Ue#c*miVsVn1Pr<=Fpzdomsc`UYujsCX zRXCyE|?*T$JPNy=L_5|bn)dZ5OF zC@5;i~M5RXGEPSh1}Dz3W$&IarbSP7U7cq(8IK#CTJ z0Iml-6!02AOumAf0gnK@39vUH%XB#4JsQs^=6EBb07D`QFeG}X1owfa^U>^zO5vyB z6&3P1ozWA7uB#6D9Da`{xPcZo&ElXxMyG{d3QbpQaTi(KWfph4#oc9buUOpc7Pr&l zC@8Q5J}0G#xra}Oz>O`A=VOFUixI|5clx?pkldK8gpEtsy$l<@Ooai<`qkM^T?OV+ zvk;|CRW3MqT0?QC9cP@2v~)Yp*dzgjE-|6vIu*r6tc{60mVs=B8;#mVo%W7mv9uSbDP^!Kr?rc{)WwInqO}aB(@h_^3 z7$ZwyhauiQ%J80~I3JL*lsFk>s!xg;Wuis4kmr6d*n#-G{6zTujW(_+9J2xM(#N)g zo?B3dy{!!QdU_3csbx)z-s~L0savXZ7#S4@HD_z0I}_?EN7krxDVGz8|;8G zUk1qUrLO?wduO`gfSUme0nv(s(A1@@K9H9({v^O4{yBX@*@EPv#FMih2QRvO7!qAR z42i`}!EM)c!tDh|ZZCA4N(&D1v&Nlnac5W@TcXgBcT3t^E$$AB1BVSAlTp7rjRvFE zy_CN85JYKp7%nSL5YQdaPU*j;|C`eqiuR-*TnH`&dxK9kHmus)FkxT)4~@0H&<_pA z?89~F=}-z7XzyWLYm-BJVPOhFFSNKOX--tM51a_rkPd|&R_N}UUH?quuIZuT(MSTV zfpy@O>+#H?vH|N}syjhV8izeuGr9f;PoUk#qP>)$r|A{-&?@MF&Dhl$sIrDff=Fd1 zm7(F}VkyADdJ{_SS(TRanrGD>SVC;TGeddcu6DwWSp_l!O@UOMUidoh+LpEB#s3^;nD*rC9hRIV%2a6)!z_2xxwSk4(Qy#mn8kLflf^&&}0X zCf=JZ{u%HHapY<|zZ=8V%+ghJMc3DJnCF*eXD^;WWM^X`W|2x=jT;w0m4)B(!!R>S zBtw%Oa{XI9nbXqK8I18r2z`414OcbQYb0?#RitGiK0_|i=&ng zDIc|bNcoPoxDggN$Kq%cN$8ea98_>=9F%V9{GfJA<9M20?$KU{tjeirYDgOtT3rG2 z2_>_Jy>^=K)TCismnVf@*wrNTqNgk=XPc)iwIM~>(0dxz^XlJm8dg_)%GRUSF7?>P zwUtn@S{u#f+UR7ijjr1N+Gs~Tr-+(A>{5%PeYq6WTixJ~YH{@XU0sk_yfx5=WDQhC z`1Ex-=#L`SSD{F*l~hg(Rst*I7o~X05t+(5xQuQe;(953ioMCf+TRf8k2+mdVLM+@lxo$w6Z;JXxDKj$XAV&F6k^^fIc^k=s}~HaNjU_j-#U9+rzEANzMtj4m&6+LQHKq7?in!&bsx)BNMs*Tz z6}t&-)^Kl9BzT;C&!x(FY+`) zB2P0U^0eT#YdRmdbW{pIH*-|T=QLWJ7i~z=Vx?KrwX?V_7WbINaSa&8GuORYw|LDd z8528UEvmBq6qx1ew6VY#)$xEpo-dtrlc3{)il~T zSFNlIPYHdg@G#4T)dZ-!E80tA1z6Noc7*hfEF~40ipyjhi%WXiJq{u1l2a^B4Tmbl z9E)Si{sw+6ym4!Ez_faHScZ*1#TCz`T#2Pw5q0)JQJC~x$~9ktQXD;6#hMf-F<7mU zFgP^wWw_PCuuRPFH24e9jK!fti>a;}wJ4g^k{#5V>dFL>^yn4Nl3(b}VHvDOFLAa* z>J!y%GL@WFr^1xbC{wk^Ri45OLa&zv&^J&nGtFklWH^!WE;eB8&_QGLnc3ycOAHmD zc`tl?b{x8OO=R-C0gzMvjevY^YL4sxNX?Pm0jVi62XGVMAV6x090_1FeK+c1oxq)lk*>f+h=iI@U{il zO^1BWQ5KhPahomfCX3Tcgs^FntTy(b)l2onOpc6!791Iy*&(z47Ocp5W~Oi2A_}`? zJY%C`2PlL$Zm140j?Ucyas{m#B!ljqz1x9v+ty&7%#R)9CB8xB(10uE*Hq4_i`RbH z0;T;P4){x>k(@%}0+f3x$2fqskYXJGYjAvt+057|749RXBLq4_NDY)x3osWkDR0=u{7#SS_DmIed!JTQ0bTxTZuIp7~ec%DA8o zmgw`TiszwGV|% zT-LBC1F%2+&soD-4%xH`rrhB!Vjl~I<20KrF+5o|N-rthNIM_wWZ~=%89S|EQ4-)= zG)H2{%;~uf;_h7RAKIaFnFD=h8cfE{md|PLziACi^~m)mZ@{1qv&WsP!w*0f;=6np zknDd8AfFX-irQCy01m<2odoyM%7H#i4ptE`BFThkQy4r_e#hQ?WkI+ch0#=o+`g z;_57pE1Z&+yHiq@n=Ov}RDz>Q1fk;>wSu$5N8KF5IgXFv9HS$&LZ(23!y;ve(X>F) zkP<3R;$&|_YCg7F((l`fDboTEERopbzBEEo(=`3QB0r*JSEx5?LO27(v1rav2#j%c zI>5I}=jIHH1+98AgOQwpLexLu-F8EmC-bX;Hy<&9OV2wQ+qwzuhR6tX64aV?Z z{2OS=%=~RY_L%no*<(HeKo;^dK=OuNfJXxE2FwTi9FSc1Ye0(DUjZ_2Uh_WV z;AMv{Tmk-jFUU_4tk^Ocs( zkhE-uL~*I$uG4fr9_iG|+aIyGr!DTU7MFv!Drt|=k6*(FW{HcyRbC67FWixhf$v4 z+ot1~!!TP5TM*YqBIA1}bGMhVf=_qFFGswwb;W#quJ~6FZ|=r1D-ZW`k6A1e({e{v zjM6cU^zazV7G@X9PZ}I5Y~l%P7?xrZ?;fwZcvd?X<0eLtt2xcZVS#fn$N52thM7p& z2F2h*8@ZU(Auf7niXBh19-GyIZi;NKO=&8bbQDoD5O2x=VX;ou8Cn9{RNa$@y5(4w zlpzV%Bh{V?1vMyMMMpHdL1OHcYZN!CxH24H;x{$27qwpD&IYaw>psmCm!yD7GqH2) z6d5IB8A-3iLZ%-}Hbu)%@^hWXpY6>XMsX6eUY@ zMb>OGg)30rv&t;~MAayBrmEV=Jto#QMS8nv^19B1fbEBlmGP_!InE%=M|t1jfH{EJ zI}kfvfF-yd1$ZprSU^@xDIlM65+I*v3Lr=GV*oi{oeubCz!`v#0?q_{N?-GyvvK_j z;E8~50Ahzit#noZzK82dKr*hmfb0j@w+Q|OSO!Qbc_E-5a0wur%~*I@bYVyqT^JHO zUxH)4g5&Cj;J&xGWaK8eW;!It#RW&6ENKT@I_^0MZk)yO^n>7*T3o>5)>$0(s5IRz z7WXHM<4%y=_fd;`#^Rp0I7nuiZkNSzcSzDUT3k195y2gzLq6w7i^Drtu|B?CO;=)Z z)ZQa$QRkZOU5oqB;;fvNzBY(THL}+77+I?_Vx%!TuQ zom~I@kAW`AT5iXkxR(@0{Cai{FDP@SE~?QTW~Gs zk`;3l;^ODH1X3FrDSI{>j03^D(VL-vLaNLtP1cntUM%F1ri(Wjx=#$ zrZzkao9G-YD?qz=OLKCc60bU9?0Psq{;eb~Gk`dkmI290Exxv|hHvm=w-Uzr9@Q;98@VX6<)kAu=fzj|H zDl#OZB119>65O?#&ga~#Lw+?K61sOR?gL9lrX^{~w1f_uQX0qYYr!3Eaa>Li92QD6 z-CryYotW|@3<0LECEK-f=;4WENw#sdS(LthJ%ZCh!`C$i+J(wG zg-UwuNI`*|jcJp{G?XN*KWNufIq_PKbTWL3^GEzf^N6*;7?;Y&fJ+sigh$GEY@7^`4ME>qYcb18Hvx;AcC z;3z;G23OP3=75WF-4bvmU>m?7U^_teqxOL0aUB6K20R$>8o(^TI{>=^lB4tod;qWq z;5NXXfUGMVBMH6$co-n->Tp2vm_C4?0v-Xl3lP@Ff?ojk1N<3~`LPYR0wgEmHS1

{H&-sUr^*itCkWbZ)(CxLjj>t`L*jiU1pF_b*a1^{GzZn)c+v0c}TIeW( z2_3k-#)02!+!Ypgjm7aBXGu#9UXnJRafARYiZ8()6$}zoF0P>M1l1OdHdA9WVgBN{ zHWT>0Y)xftEmBv^uA42?nBUO6g3GQ#tjUA}w5Xs?qIoj~8A2=&MJ+(yRAb zkKes4tI5bduV3)yyqagHoYgaTv^VtD_g#B-|6$mtcWroi$hO;7pL3ntNJ4$fRh?RO zJZ!-2w`F{NPUp++IN{Of&;8qg$%j{UDVgxz@YQR_pa1-AYyPk{*BDPY_JcPrAG#!D zBn&72KV~$6+F7IBuQQs!fdlQ`xolDS1_?zPJ0N@VdN!l+x6?OEWHf;T2xZT#A#-n! z&4)2CF5ngItIR5q(S&Oe$GhJ9_9qx;ShC3SG{d#m10hO(N6x{H)RDSoeTs&12k&~q zh_7eG=EKVKdX7bTIwC}u$Y{bQ+>3(ZDeVsK8k}LSY2TI2 z-;B+Nsl6U*TJ6qE;1U^4_yKXu=c$3GUKX1VMj_&n&>hurk@}nW112ktuaie%EO$?iR@r$ zIM9nzG{4Ryfq5vEk-0l32jcYIY=*^{BDD|<%@$PE=ya+)#4MpmNk>ed2%WgyfJkF=I}zk6ycp6ypA(A!(vh^#I1}F+J(Db3QH&r}|8%B29EE?rC~) z%wODsGnRwI+^f4su%wAj#k+)SBlp=!pfstt>PJVK=u~W>UJrXK-ABbwd>&3k@sy4< z(Wwpv#_Q?INVsUD3Eau2BTaOw!+;6jYf;`zbQn{@4|OWiAXS7$-W-*R%Tdv;6Oxwe zKCg@y=&&|kFz;kNVMKe?=d}`f-(9wUo!i!n3`P*<5ZPz(H)Vq|Il=<$UkMi!6zC0hkFH?X+Q zCM@{XMh_Y86#zNc)#pN?~!Yjl%~XR%;yYIJ*ad>K&^0%J3Mj&rw*E}xbN#0=O} zlfx_oc5opf!YR54lVXfYf$s@X=x~ZdaO@QEG`#NtelTcqASuu_g^#D99DHYUt0s3He7*(BYC|1SiVm*4e99O<@XrypM&mBia&6?Z@m0UFaUi3n!XfE z;0WU7cPnl@1>B^OEEtYsYP|f;0)94_;OAt7aEa>g6-0aonrFzw;3zA`%WnkmJ;<^m zT)gs8W}geXAIQw$DC@<`Zwm0I_I8}-;pq~UkNLd;nnittE>Zc$BYFpDS|1^FiQX?3 zPMjjp1o{dcn^(N@QNrnOL>M8B`#!QzzDb~4+Fytgm2VWHp8-v)0Yb;oAYT1#Mt+BY z=IMb#m#F?GBYONGEQZ6=C91#I5pfe})D|M>INOQ$ycn*XwnOpm;OP?O_beiofaa)S zLYF8%_M4YL^NFTQlwTntz5>laEgUAQKjwE1Xf|uQMEQ+I#OVRsXr zZh!ezgXaExMV7FClpwn02#nM4bcxAk5iSWnUi+&+#9g3i%MJxcc`06dnFaj#3HXU{@$%b=``!w= zO%sJMQG1?+=(cQx5iVYSRmg7{=-!?rgo)~pU3UmN$pUs1xJ2(`H}YFex~W2!sC;A> zyFt_W7@L;E<>e~lE$90mA4}cDj z>+Ff4%ZRxz%lAzTU2OT9f^Kg-x(K-zB(y{CG`i?8@p2%F{2EIW>yhPH$D?N4zh0}Z z6`p>Rp^2|h7B(Y4%rImjJaT1SCFYCai@8`)`X4Yr!JF{($+Fqy3u)=OIj&owJmuAM z=a$#0;&niUQP@>+T^TojaW&#-LE^y-T*BJl?1hyYlMQNqlt}6Le~V2CJ`^{6=AB%O z83TqhsaTYf#=_*m0(h{9OAhgM^A|Tl|0NwwNns8u^9TR_V0l;P=c)L$3#B#VtfOsJrSET+YU$1nzQDihD*0*9ktFB^s}Eym5rryUpH+8s=GoK-vlAJBq7#5F7_oL(AHS{)((3GC>|Xi)mFXT3HTrQbA4$@~+o4O;d`MSY;PD{NAR7?0r`2Czli>q+joQSQ% zJ*D(=B9^6MnW%>FG*zBt=zQR!g!IVu3MW72{c}Qps>bKwG#BfQr@^?Oz|&xD0C^g$ z3m{K}^#B|II2dpsAlJ!;0*(WOA|iECmY))whwB1Bwn`i=SDy;-lY+nNYu3$5csVu3 zkenK0Nc1KM?n6x{dJ_b<&*DFJNl8X!eSjMq@|- z!J_SFAh{8ElP9}kw#HAzJ7JKYS&$3!GY!6*li`I6GbCJ?A)m6oBDhO5o#MEY>Q|*Y zWz%*P@$Eo+;q9mxe2_*)dOd1+832!?}J zI@Ki7hT+?F_1xg;==8KL5gqg4Tu`aiX+$I+~lhtPJM z2UGD>4|tGqdg0Uj0Pi6W8b^B3Hvf}ro??Tk|FJQUQFR{(CYkYRS8MeMRqQzy8G0RG z_chGSBz=d*Wuo85e6o?+e+x!5e!7QppoRjy7Bt~Oa``Y2IxY2UGW1EICp5hj`mhC_ zFnL39K2mhw)=*YR>ryRt6zAg^(3T1bVzaOqTL`KFV`0*{82xWLe?sSJ5{~lXW7!Co z%y5dosYRtS)XdilHz(iDRBESIA(VnI+eBGKic^aEU8-WM5fZvh7Kg7Al)B**=T3y? zC_27Tjun|aN31@4&*aHpEk$svO5}-BglZMtEQC%`q0=mmy;yMfA|xqZK&Sz9Db6bh zQBF#6UPtIm75WE4>~|^7y9ljUA$~rzMum1FRIft25n8K4Un0bjE5+G^P*8>TB6PY6 z?L%mT3MJu}T$ZVf+$$}GoU@rlG$}tN|xYC>Unr`+?s6) zf_UB%)tGH=?f_0mbW4N%{_TBZjyUgWZThZiKrWeck2g%W}wv6l~+Fg*Vr#VAyid zW*LttM+vTMnUq|6s#-{Py5p&Ny;!}EXi4@a^;V_2*th5=!(XBC*Z~T%zGne;1FQh- z3s?y_6mTA3K42B#D8TuEC4dV6j{#f+I2~{?;2c13yCCAoZG%ez;e$cI8bIRo`QPZwBwj^{Idl0BP_Zv3@`T}9&4~Vh`M*}_$cmm*afb2Ja1zZXEJm4BY zls$L`;H!We0I~lNq-69u;5C460A2_9HsAw*9|3*^_#GfrE>Lx4Fa_`Q2S7jIkAMdO zLhcV90*G(mf|#Z7qxv9aK|E7%7+`0>e8A>_qXAn0P6JE_#D~cazL*Q*17j-J51s@_ z`Xzw)xIefYFcYu=5TAJmuLUIi&48q*U`u*($rn%_jvKu17L9)ba5nHy>TC9Oymvj* zVMt~=4EfZTN`iY|)A`hHiQw?uDy@$SCsoMr@W7&^Ew;F^7B|!4PPDihi(6)KR1_rl zxXR)v&I#@zi~G#t{%LXeN=ehT&>_saEROF(%Ey|Q{Ki|{bc>s1aeqUIQjXvGyAJuB zj}SsH0q#>B@;Q_a*xR7fS%-WMH2o{d!tW&O5a!X6Urju7P&ztdBPe9i!b z)+yW&9r8Iv2(4APF*@XP$`GnoxZ`!m=gdRsbcH)fhkVWogw`nBsXF9y8W0L9+(sSp zIhP?sDaY?zr9=2m3L&YhcXi0;?6$ZsEiNg^(532-UGLJLZpt!Npv#Wp(YOZ$;PCt=S2rUZ>0#cC+qA=X2%I#rIuA{(N3G2c+1#k}Dd zM|Tb0Bg4k?4bhqSY&^HQ`U;_cz`M zIKfO%;&MjV+3=n$77mc=sYC(~u?){tni=a%fK2x}RGaqhpn=sTD|4 z6xp!-wkC?&QnvRNGiNXAhHcqHI7z@q>s z1G4UT%_3C7%R&-EvXI1(Pq9G3)oVJRQiLElh&U>(Xi*Xz#1M^xprJy3nxoV>F2x94 zt`1q&2)&p^X04;HnY60`yRb$u8mSG7-0yaQW_#dp!;m5|heK~sj!lft&EX~pS~Woi z-5d@Q5!7r&@8B>`=7*l?JQUd^=Pbl-G*^IK-(g3yxUsfnnL?SC#g^95#p1lZ{XKsN z{ua|Dr3I?5rq#%UThp2PVo}B`45TouL9(dr0R4a+06PJ80qg?Eubq1UW&!pFgt8O$ z)pU12Ho5um!l4)v4#kkqxmL&eDG@6=(YzpZl+1;W97=HHP=eFyPNvoW+*mhsLF=6$ zc0#bcl7wZqL(8goxuCTek)je42~D#qtg}K-aQ8-Z&GRKLfzMP2AJ0Q5MSV&#N8$S7 z_f!=cir?tARsoE0roLErbZl!3v+n3ILMUhA+18R&jL@;0(wX?h?DzVL>=9iaGxg}U z$a|80Ed1?}ZLvbFXt zvcb2<1;;^_S*|_020Um3!_{#v9_Uh$EEc&Jmy3*&0J9y#g&H$yS0wr;Tn?GEhm{2A zsVoZ?HI+?QDZ^7&T#^OPQfT=x@30vzF~TZ$7+5Et4Kpw`qW1+P%f(Dgnfn+7n2&4B z$btocLjWNKI7a}E(bp_X1-vLKWk?j2GUUS=jKun#Ejr}mTur6$E0aA!*JyEGv<1N( zqCW!zjeinVv@m$A{-jCWE4PGbpAZO%XiLnu>$`CVR-Pk&>@9EWV8Z zi%Q!si%REGC2sHG#_Qt1BE?K7#L2trVH2AoM>4H{vrV)#i)FZEZ~tV>?AVO7CP z!(vDp7DGNYT^HQxn$G83q(gpnJVEFlwYcq;?q!R6&Ef`t9Y}s)a4Hlb&jnH;_4{AI zh-&3JJzw}lc7+<3i4lp=lWJRt=C7YKD#}uFO6uzW?u4kUm~F8ZK734~5Ld=c)&aZ% z<=6rlHr}vr6Ym!1z>;HT7|fIOrSSJhwon|P=7cp)6Ah1|V^Goi=RDma1iJf>eOl8b ze>F6;woGZ_ZS5Zg?W`%y%)FIr)ojvi!KqluSNCt_6sSG{oMt;*q9+ay1IJcIa^k3L zhtDEnZ8C~h($d|`P2GSDa}}e&l|_p$Byxxx4R4%z2V}iRX(X1Vg3R}GK$hnVKt2So zSr#l-1xq!at#%Q-h=dG@NXU?A-51>TnohLt3+~Srhb2Lki{ELlLq4aM#c}Q-`B8L~ zv=ki$cdo^4vN$bHVrFu*y9M`-*Mgs}|Gu%Vm1)5(a*FF_q6w?Xuj&Seprnc0G3$cP zybE_brZ`7u;@$0-Tfy#W3G*a978LA(ZMC^2?P$<|{kP;%c$r}xqUOeiU#23{xGj@| zFx_G5S6U|DJToX(xF(S33Y6_;UP?$<$LqLk)9|5xD(CrvxX+HpDo${J(cLlt(U52FX zG9=R(!ErhxI8I^&hsAr1``F?>vp6m-3*FBahh=h&Yo$Xzr^4cROh)d3wu>pw0$8#$ zN7K?~Y-dqVg%2~*Y+M;f8HJATm5vRN!!#?3!}u%kZtaLnLmIx`Tk*=oVJNqorYd8Jk7a%M{EkiQYGUQXM%z|5oYr);BLw@HDizCw#Ix;Px`wzUlzu|`Nb+pKr zcN=O%oPK$lH~jB^eKKMDr5D&kzd%fl)C=sXUtjaWhWi z?y@+(Hlf4TlL{#rh`sOU-?8`o(hK~P`vsOSSIpfH{QvF#$1)`De+TvgF=(qEc(i_j zI4`JJ?_#_Nd4UYc3uH)Mpy2od1$Vm+`IRAW!SMwO9bcf}B8Gl5o(~YUn#nkhj8jms z@Lt%sEZ>N*-M2x6r2yL^;?NRAS4hD4?Tx$2z)#`m6!eC%yl-ZP-P0h&$vJ>ofEe=B;`Rc-0$iU2$f0^6AnU6Vkk8KRG{Cv=GE_4p zLp4JpW(w|lO($Ze;3#Ga9XYn(*m4A?ICdru+@aftJAKBC?Whu3`i^+v*|;+9ARQnT zoqNdTQjL4aWg0I$CmeU1ggmfRTUmKh?CVTCgye`VbvRpCGv#z@q*Y&H%J9Vwor)`;=-Wui^i}vBGhfvYpUClx>D_~=_VMc0b zRa$69hIj9d;#nxD(|Shgj^YZ2cBLUI2Sy)eWOST~oAMxP`ntOj1HHq@{*MTSic`Hi zm}PNV>+KCi`_k860PJZ#9yU%tovb(Xd}w=4iv^zg*PYTyZjPD0_9vCeLfI6L-tW-` z(xpkfSc*dq!E>-2qFxPr}mf^PZBVoUNV` zV`=yM`Zrlss+bL{XO%b1tZ4nR6igY-^}nDB`4);)3!h25rFvuGEQADi1wzro$6C-D zw->P#-c6SzHzCVQf^Q0snRitDAVfsk#rV_}zXtJgYufa2&4B1f+Do9&kP2I>1eU=##-`0nY|}5AYno zF90tD`KUpy_-({HId*mCa(I!@)a^OV=SWoGNMg%tCjp zrJHVXbry&Bqv`M_bbfdT8b`h;`Jp~E?s1EI%Hqhugzh7Yj@W#zTfUViEM{<4&&%Evpp9>!u z{|4d>HJ5hUqc+@f<}Bcu$8`96Ek^?9uB%+Q&@E?@qqPQM3Or8?q~X?mF^CzCW(sE5 zA`25OCCY-JN{*CtM}RS>sD(o2%p3+24JC`2;1<~toQQfU(!AcZq!j-mST##(nUB7BOja0@$qGYaph9rhYC5sfCpfMv3LX2V z;6AZ9_EN!-GYK90m*BtwH7=qh*NqLi8t~9x-GFVM;EVWoT5@;L=fdx=CEtK}w+u21 zIMb4i3KKO2W=oDQgM{018NN8p#94}_`)$jd!z5^92R`j(Iq6u|sVbxfaMiNF%T-GP zS5pUUz|+*xz^4I6f|l1)0C_zP@CiV+BwnWhE{B(v#E`TkhGg0+xa&2YPgyb++@ltk zigqEmG#ygwTpNorOZiP)_2o6>c zgx?F^N4ghD`H2Fw`qmRG7Ha| zF!j(*?_=|MHO@S(eEz|wD%a1Xrq+~kawG1=x~F{2`Zw?K%%;K>Lx7|`8;}(-2VQ2@ z49U!zA)h+_Ew~MuPPm%j$kl|7yi9PrEN%!|gy4?SAsnKyxGfeZOEv#SlWm1t%!1E! zvhX`wh2k|?8MUIPUtUm~CVMH0;Qoe~X-IPfJYSBuHOv0Dw%L|wj6BqZPBEfp-gqh( zGabT~9+76!lDO?k8)=S#{CFkyo7SFqF(?a+^f$NN)_SFg&tRWG){4}*uOa3Y0P@|i zN%Q^nhNrtKS(-F7V+HvL*8}q1Z3bl1J`rA;Hbc_18S<&G9RwHBbaHG~aF19VS*GB2 zTUWRHsBPPEY!=g2IlM=k%X;gJ{H_Gs){ zyKBXCEZrGvkh*kGw8BL^+* z+vMp<7ta6ble>`uOg@ z_K*&@`cG{>X7{F(uk27$c;-ue9`HZe;e!D)?;P;v#~&?PJvsNn!MERb-p=p-boPu_ z2EMhs$*kim&%XKl?N^Tf=9(T~jcYQr?E2hRtE-QD`SvbtR`q$jeq+j&KR;luUmSMm z`%hFqJaPW6)XVNkK6lvhIdA>*^rZ!FrL=$fl~0Ba?UwoIUC(b{b?f^lO`W`^<1KHO zT{rEuPuEpCyMomZciQ;Zz3mDn9{xqY0av!@y0%@%pKpJ6&JoLQxqQn-gB#Df?3U)4 zOUIY=PhaJ%pVV~T6R(|~HKY4iX&3a%>H4Sle6Iw&cTT(b#TL81`Eby+91~J$%?3-LWOqJlOUCm$(5!K~L=vS-w4Q@cRyOTF*ctbisn`jn0}ERlg}ZFW-n;S z(b_d`ofn%=PeoG!0@f7WAu;*%0yfMuKO0i2}+Dw>@U<>?iZ&tXyd?3{naxY&Gh z6ipTKG4*p;Og_C8O+Wmyp8x!y53@vuBKyVRie`62d3wj>(?`)zMq=vD_dNvZ+?@|4 zBN&_l+VqP)Dj%R#tqROi>BMXaF^*#}!{ibZJ%cIMnBEFQGZ*Th5wNW+4f_~f3yV2k z5LoeMK1jvWXrV^S>UIgLrRnAbHX4Hz+_V~XTc7^+JEBSbUdSV;iPpj?DrK&!DBC@K&e;l!kn z2D%LJ@gIB`(;rt4MqviwYFiX$Fs`17!cgLWB?>bXS8qjP`msD8M`2i=FQPCk&)!H3 z)Ifkg>!(mz9FoY|&uqq8*+LRDmAIgyisUp;k^Zk20cSIKvxW|Ag z->-H>#MahT%&#to>A*$Ri_4eQ>NO;U%yLqBIAlLP1#i*kY7nyD{voVSDli1KGB}%6 zzI;w?UG<_9Yf+Mgu&97cuo1Z^4f2gs#)30z`!MHJFN(%GyvI~l9tu>p$MI%ebl@yOH0lsj; z+={&ZjIY4OL`yRuN zU=56iLa&W>9K4d;O(%}Mo3s?z2XWEmC$M*uXIiknhoW=YyWs$RHRztvv~1?_>>nJ9 zd%gpj!FsGGQ1%%jIsk7&CUKsT2Z*2p2SQc+8h!g4kb3;@pl@GUrQ*x`O&a%QF_;^f z`_Z`{rOo}n3iz#_|6Un5zE)FNSw1(gcn(Cg)RqH)p_+f#s9S`Nk*fCe%FC%Uf6xG^ z$!AScO@8s1@kNlGQzI4d^D=Pc`R>%I|6u!&F72DVBnY8w&qek6)+YSEj zmF;Ha6RTtYU%2n>?9abNH@wr@iB=ZrX>o^7uD{2qF?x$(?zi}8W#&(MW4WBZyF8A=CcGn_M= z@hR@&*Z^nV&EYeZX5bbo#PWRupAByuhgCYp(FM>CDP8lL&v!4p`$JVVR|dX2{5g1T zaX12@`XFvApR9Yt=)5`A1$h823v=)$IAxV$H%QE#Id3=LAe-%v3y}Nu@QJrSBEM&` zXJI3DE@r8_%8z+gj`~wI9?MoiJ}+kCLC!yLvmj^XSOW`E1ZoY)bt7JL^^Mnu=KOm61sgBXH1{xy|?Uw-4%BocTS&HZ?vd* zV|BK_d)^VBopt5rQSW|Qx@|@S5-9hdTLGsy7wz=Qh^k1|V0bkrOc%QX-W!o*^_}nU zIy`ozhCKzQuQ7fY$xK$jA;C-ALVOb15OWB(S+**{@Xd)MCUVZh;$w}~L|fPaA(MM~ zO*pvR@l{kpKV)6y0ZY<@2K4QlYbEIsN|Ii%OR1<+w~Hr9AH_Bo>EcMzub>^C1iHLV zLdedXpFom+M$?!q6`jkn))R=#L7V=H?HZ0n$anJdBVQKrZO}81L7QLDjaSk*mBj6m z%-ezPeb9V=h|sZo@#re?cGscLe8x5a$LkRyaEL4kw_383LH*>EV}!Y07-3|@F& zSglgE9@PSBs|g^%qZOsCQmse5P_$lDK`i-xzxls6yV)$*TKvB6!R9ybH^-ZqH^+be zGj9fZie352nK2lU=p;54rD+9Ny@MYwl&*x~jfcg2xOp+4oT(z1C_Ju1>{Ez$GECeZ zD!kpO6?JekWu&-cIueD)#i*~0GK|L2(dQ;g?;wQtG2HYXC+?^gPZZwW;Lk+0++nqG zhl*c@6JL75&9@~IUbjPpR}OxADNY-mDDL1bVg7NQb1vLG2PFhAG?fYCw-V`CG6~g} z0prr;C1whX{926Su7#UEGk7O^1tdyuPuP7r3ytoj%Gn{`?;FU7ZgBJYW#W$AW1{d_ z4(3+lM2p$tj`bta`{<5zoID5h@^W#9E+S!g$U5W18mytkkJq8z$Jxlg6>#%(P~5S8 zB#Phd;HP6q(TX3hL%k1fDcW_uVLZA}+#TwDusqLRgm&r*amV_SD817WUZ*Rub?6dt zcc}ck1=f4v=IW*5jvaiW@ZQC9pM;yWA#sPUIAMApggfUlOu{V}cS(Rm;qAbK-iDh; zR*JiG4iVmI;F}^S2l(+q@Cm~U!Qwl(Szsz>=+qO(?;`LYT5iN;;_#{w-uYMKd$2}v zb*TKyhjsQEd~$~$uS3P}TD*^iaO1g7+#TxuveVlJH{V+B4i(SiuRS8}F0jLkOUG8UFT);39G?<*;|}322zSGwj(v8ExEo=+i|Yqd zklu&UxjwO7+`(JI`0YkH-48eK{ZZWYKSX#%;NN)#;`a`5hu{;2w-@hiFx;H;nz%bu zIb|~Mg`3Gc#oeLm(JF+u25ye}i@4)^OZYzEZl2{vTqcg+JUrT!OPZFDsuucMd}k(upDJoLRLqd4y+8uyQ(v z%VOcOEtK<2Y;zv{rgYleIaRY})YVjQhM+uHaS4vu>}1UE9Q!7zHRRU;;n z0AZ(Jof!(z8@fXHtD80xL9{&rwF~Z<7>TyH?`DOf4%wVjQO$VcEY+hy^DATC&6-vY zJ!K^h@T{Gtbd|BnOGJbxnXZM~X~FX86~PKHJc+dzBQbLB93H{r>D&`{3#QGisIiU! zjiy9}*azM#s*#(bA!Uf!pll84ytYbbrhFM6ICu6u%)-=)C#IZ_DV|%aG^Q>ziu32r znm(^e#b+L@7y&tR)N;tB%AU^i5f&zNW>!{A$EK!?ZcK92qwC=LLIzAr3RB#J%09*Q zN3^@Pz8r6)N+otm?BnLCH>NVHnkOj5#m36aOgxfj+*TFepyVa|96?3ndF0vx9nbcGgON7#EW5P+@10-&BXNGX zP53=% znY`Tn3mOP=+#G`@obLk@RZ~8r5hm(#ed_!^ayZVy;=Gt|O}wgs{E=AIkZFzZGS57{ z|LJFC4zU$OnP(0daL#FG^*ig_%;A+4b55(CTQ@JWuwqtq^`gv*Iny&oRn%OTIe2_djrI(8AW z%MO^8XBBOu7%n)_O;#I2&>~rF{46FaA;c7di3-MKbt;aSIAJ2D`?TpXZGz_6vc>w3 z@Mjt0O3XT*5T0rlWrv#%Q+s)+2sNMZr&0=?C!Vfs=yB>b9!PJW1ABE|p)>arh zg_}-o-t96kO3Qu2zZ|>9VcV?gtT(cXCe!Z+W}e&CY>rCJ-R#fbk-O6$_*?Fj-L=Oz zyotR!_PhNJec^$J!}bIsfQDm$u&C>h`$k<-arSR5<&mZ(ktLt)Ru3;qH+N!Z zr{+&Rt0p^sFmW63tQzn5_v)Q6fBTx;9aL_h>ZRu=CX!#jTg8wbrDH(*m4ok!nuZYmWNTQJm@+ljbN+ z?^~SKcT9R+vN_lj8JuPod;nklbGMiW{DFODAjcJ$Tv}`bg{fw8--T&r zvSVSoW9j6qcg!W9HM|+@VJ44*!(w@uaygMMC(`A_beLou4Bim1V25W~(E2JqZVqvdN#Uq@%zfv!ps} zb8hp3L1s}-*3Pk!lIljcuUPgEFjZ*q7~bcsP05R>TX?{;2i(MP<|juKn#p5KBdfWX ziM7snH&@Vs$}7B?YzH2*-7KrleHG942VQh-kF24CJuZ*~?%E1tZE{2*jtn`fyk$ib zC=cRDC66K7b;+^xJ;M9k!DGzi@Itpy*EzRra$Rb9*(Q`0L+#^*tikIal=TwI+<;;3 z`Qy#NWVK0J_J9J<;s6d(LYdqiDXWg4U>4=Ln#UbBwWB_86=fsM@d-93x^rLh2X^6| zoq=SJ<6-pYN?z-fBiUt4c1d;aE`Q)9JIw=bvXZM%s*qWfD%B@zJI=~R4cP84+>SGn zvq~nz7--JjQJcZ!zgCBBFx_>NQNku#Sx}t&>VlEEubO}J7w!r#Np;tCwJdzOf2&J* zjv2$cV->`4#j=fB>$#4y$tu1m`p9x`G{?Vt=eXAJ$4;}QT(bSw2;rCbrK=CM*D2HS z2=+J1G*z2c!*svm{;WA3hbQg=+QdU^h0DXc6(1kLB+uY+ZV#zY&=^@Q(UepkWNik5 zzeq;NwY{yK-~vJH1SgcI;Z1)%r&$_s=<`Nkc%Q3ghPkvF$u>)dnMD(K{=>gvXpXb@ z(zE;T=v{(RG1M%|ilb?$VYAUZ|HeV^F$_+sBI(1BIX%#l@nyVn z8lRuLeL=@ki9&d*ClZ*7z5MVv|8jm0Zmzin1vlG;B3Fe&ld7@;^ZXm%FjuStyDGzB zzSOFW%eJUC^Cr^f3VLb&#Iq{ZDYoXCD32|TR;4?hVhpxVm7qKRh7*}Y%)ZdJ=3=C5n17>t zBC>Fd%IKl~jYu}`!hxx+bNe!PjuQk<(d6&&K1o`YAw7vtFZ5A|Mf zyJs%yW&bykd#lqO5^KrTZTKpneFi0Fk!L!)m;-AW2bJ}b14w&oQBacD@Fva}_t)R? zZ=O&-x#5L{DXc8bs5MQO8d>{Gttw;oK$IeAO|Wm{l^Jq|kvR#w5vC6)N2gJqjwkW8L|T#q?z*eYlF1FPNxU|zcsa6O9P_iqt5g3b)cpa2)BHC!g`1q%P4`(ANF#_^ z5*H8S=ZuHsPyM^-@$4pk$`-CadjP+5<8J(=^qS5yN0n@vtUd^#Y?^GG4^B*1BS+~r zU2SHwPMMm(Nh8GV{KYm0Cb69elh{72ZJV_1yV_RCOCD*ZtR@OY>F}-8HFz>xshbf> z|5jGGLaUmUv7JIqlZNW`o$t4;W@xFTnxT;@sqXz^yOs)7`e_y(GcYewv@jBwj%vnx zv|!_nYlC=LZ@C-9d7xz)Hm1us;r{vRTrY#_&4s7njBg3!~cuMux(RlB99;l zss<6wwGtt)acCgeIQU>Buu#3vvg#oa6>{HMZ~;4#rO_AE-MRB)zMg%(myYiZDRgLL zDciw?=8_-UH-(UK!hwaYb&sKS7^3${RqqC&4=C8@Z`ho;@!4hf*FRh1bD`b%aI?Jd z(wT<8ehuim&m>05Hsk;1pF=a*lKsSg${EL+@``#=MVjWPjGi9y{o=u^)!U zzPWL*Qx${%+s*xGPh@l&Mv#lp9oElLB{C|}pMWfp1|LhGtOkE2-W3P1$=sLIYUbB# zQx#f0Y0|HNX&v098@ItEP5MQ;NuRBobRIw~wsRm*iQnZgiQiwsB)0psZEBKjn+=oL zs_r0lT&cOlBjN#1Ky30iyn%rX`i1a;B>&2nVJT$ng+v1{Au3o&hQT`n%|= z2wNL7su&d?z^HgNxbRhJ1`f1YnvQ~TN~G+RV0Rrjt^D;9=rQ2lGbVhM8wWSlUD&@V zGHP%5d-qdZSmhtx?0PM0NBKj4oU=-2#i>S;UzMfwisl78lz zdb-{3Tzq19fASLV(|NdU9G?Ag1#-PIcI@GxzckW5IGqeLn;fvj8y|BmmxEtY@aV<)AE$G>IV3|FJv0jIc5V;n8j$`# zAt~}C#4eCw7J2*|^4zQ3d>$igQ%UWqWQ&3mI8+`}K>b(Aw4QATu{tl+3L&5}oK1P~ zB*ci}w|`tWi&F6nFU&TAUBIiC`*lu+6PToqq}qNmibqi&8Toy*Jix|_v6gGG*=)K$`FsMV6Uag zK`O|j7AT0)V|zT=N}D6S+9g)Df!8 z$UuX0FK>_wyAYM!veddfWrJiLm%B^Sv};_uG{q%o9a`L$f_(_d;8+g@D-$|7jQAP{ zJ0gKh7Q1vPhteT`rPuTD#8Lb9++aUPW#6G66-@*_0x&l5Pk7%Xe*@R2sv!ErCBlC~ z2v){VP0OFraIX3e=EMlkh=6-@UjQ%{)KP^KHF!NeJ{WMc+Q_b6@&Outm7`(fgD1nI`>Fv&C4 zqH;*S+^tRPVG`T-V3IsV($x31^+5aL$8D*&0jTR-&{o}dmUI`Tr(TH zMahZPKIQ6D&$C97@kNTq*y!;XfAXXlA9xag&9k^qPq)sLG&0NKiZmJE@AR;T+XOXQ~Y_D+3aFm zqBw`a2^s82=1DhPn4wF;={QL^05-{Jz&6fZ9X~kwx;{3hxRZ@p?xPITJ>2My?I9El(VO+>^Y257YU|f#5fOVKiUT5@ob~1)Kvy8>gj>fZ2r?Jhs z%Xrzf&=~E$z&HwrkL*M1^MwlYD|eFPcI>r%yDCGy7!(p)#m#Z${cvJ|b*aB`AyS#& zndAMh757g!i=BAkw*s)1V)B`?zTUcb7&}y%NR3MyKRWM%pubS@zX91e$EblDJCv^! z@4_bzbmuVks{7Aez0nMufmDn@gqo1vRgO-^t&S}0OyAMyinJbwwDv?=?{hJ&jFIhk zx9eymYpSu>)y2vKJIv>e+Yb@DCs7$W_3p&^c#C3Uw?XkKl#cHIX*EGY7g#3l0a0PA08L?eaG4>nA9LY0_~QiqQo zu#ta~afNZAgAeG8r2a*@Np>XTg`R+eV3uQ>V%FP1DDzzRJv`>;usANbr`^fc@5juv zxBV2sJQlw(_+5nGIQ(LtLo@dVkoJx7m)2EGv3mpX0|nK5rCED=v&oRgqLVS8^O-7P zIG+j5^hVxkD%&J1wvoK3d~jR*UtDrn$}Zq3;NJqWw!Z@`0lp8UxPl56nhE?A$U*rY z;FZ9=z!30zAX_De+X%e?^kUcKKUw^%KveJ0+khnC=fGs(ULYFC(0*VCAgg&Qusg65 zkUDoi@MK^bkQ4Zwf!va*EASVmyTIYVZ-66!$!H!%0*?ZY0`>($?g&w>GzNGXa4c{k za2&7!I39QxumpG?uoSofcoFaqz>9$|0H*+71C{~tj*Y26Hl7tgyd&chpc6O^cnq)# z$Od!<5OFeQ0w(}x0n34NfS4vX<^it-)&Oq;)&jQxgTNPo^MQW_!fogs;3D8>z$<`k zWR?K;1D67iN7=jzcoHxK><6p|4gjtIjsUI%P6Vz3RsbWwRlwE2Yk*e+ZwIacVh3;I z8sOtV#4*Gs<_6&Nz_q|nfHwla1|sgEAAq+3(P2{1tFM@P6Q8-~+(bz=wg?0UrTw0zLuU4tx^$8t@OmZ-LFg{;1H~fO)_c zU?K1Y;6xzuGE@P49asr`12_-33s?vI8?YYuHZTH2o`*I9-v#~w_#TiSkNyM5?a1B- zvSs`j_%;w9c!qWZ(fNeF0)7enH<0z(iFO3Ucfj+3`+!A2ywgw_ z@O$7K-~r%L;156(_-|k%(1CDo0Xl*A1JOQ(9tJ`X3q1qu0DKVVQ84lIHR>H&JtwHP@iIh~^&9+(Vk< zw@s3c7R?>dT&w1Kp+yjPCs`)1ajxbDYHot&*fvReD>XMub79SK;{6g!Ps`*pPSo50&HX}iY|SKXXj?76mus$0b7)a4ca54ut+lw{ zYVI}7v3--cJcJfRp7E$<@)}z;w_S5k=gXc)V2tbViyj`^2Y2?>!7_L(E4e>%q1ajE}qI?{9A_v4$sIW#w_HhpkR<7u7MjWB^0tu&c>uRP| zj;x$>*b$9=I@~Y>|DWxAq@|m5OS<9Xq7S1)LtRimiJAIq=L^$m=hr=`=)6ZKh`s|u zU?3~}wfM>AMl{LhMl{Ls4Z@k0J2@OyII0)KT_5DSa8z^)r&bVQHYU~luKAxH^Y!LW zJGj1ceQmaIo#H#;Cb#*z>r0%9l>41O|I6k*DXw>#KlPa{k-F68-AS&$@ieif6xSPA zk=5Fo`_5Q@{u{gTJgjPSWBt|9x!*iRi*kSA+hvVIy5w$|gf$yj!cl`+mF~Cp-<-8M zyxR!Q4DWUX$KuZ>juz@BnMD~5F9gSPsw;>UgX!U>baPAwj=%I*UAx-bIM$I@|3clj zaAl6^1GZxuF1!f3zwTI)v8O8)Hr3G3H@X|pA#sUUlUdX+yx(7U`hcS1y1qF3^Y!LW zI=Qwte|n7Bf*F+EsZ30>inFUF7puDvT`W1tEh=7+8h*B(DGRzVP377m>B`+=xflnV z_4q}Lzj90uxVX6ouh`3Ss*J`EO1b8npbCs_rwryDYU5|an23m#`MLd4u9uB8g4Uzncw)A=J%`e|25FB zb^a-4AhUIc$>r)?H9iahh!1N*L*0xkjV#SjkG#~`x*$7pp6yR=3v*)cM@9Wjt+nZ`wQ1J$XQ9WnQpIv5SJ<{bu}=M^SsXO3T+7&P?H5_u9m?j$m0TwqS=mRK z7kg>$2QyYfPAZ$S#hzkvmrvS6H6kcA_W@*+zaGDIoP%s@^B2SP8^wLEO{@{ZvBrt1 zSesbVh5Hpu5#^U{;=k~#$IrgF&W@Kyz+hMy{HZ>b_`5iJYFxw?Ix?76#@TZOZHIO` zOjpI(*D8ByRKJ4#?XW*HuE%AZ`0U>UN4D#6`N>U8cZ;1vL_^Ci;W+#Zs6bahFL*c^ zmuf{z99A-})hkFxk6B*F7^B=_2ViFn`&v#5F!DYGV5!b)mFIMjr}E)Oy<@(^72{yK zIACvnk#aEJ5pcNCFUgr{>~oIC??3N%REq6`l$9(kX`p6sf_egEWQ553#<=@C151I^fY25xjo>6; zJ?v12F+1#DdByrxoNN55w=ebSs7-jK^-ju&kie9Of|>x-mBKn}I%K z(5j>N;Ib8uIc#V`HZLKYlYqr{Na&9GsM-FOKnAiFZR%54=GPi-y}aB%w7E?aYBzZ- ze)h$p#*22m*yPb{|87-m)IPS!%Y@ycIQysI-){2Qr1ivozqlq%DdJ(r`p4QXmpzCm zNHjth!JX|OXS2IP&bAvQJK}bO#0JVfo*uFxwpFU*ZbCAGI7tOidsrDa+QKE2an+QA z3P$EScwZQIKPB$IHtv3T%zey;$1*MvJNvz);>t>4!xds8%c{>+ws+bfYa@@a0gZn2w))m0Jd8FfUdx_78O11HTLK<7L~& zR-aM43@+5+f}f_%HYsh)3^g#MNO>mpyt@@vAU8>*bf^8 zox33zMpv%rSiP$?wsaWNqv6>eqSYuWD9{5njp6~iH0%qf>SkvIO=Sqj_;vtxhS(LG z>4+W8Go~CNA5U*+W8~hUKIdfB#ks67Dc7z>kH4$dJM74zY%GL4o(W~NcssiiQJhL*xp2;r;xaLH9+A9b@Nwe=|$ZgWby zzhD$sn>M_;s7wFX@T~BGul!ekj<|gH<{m6}^Dp&1jTWnLHA+deIBec2NzzF z=E0{WFf|U@7v7iRU%7$o{to_?zfsm1ZvV=AX*%GkOAUXIRdzSh@x>mqFtfxOV74xx zB!DlZQzLbm9E(=Li8YiIVZto-VtRGBzxrC7(eI}zyGylqGyPbAC{WMh6S)-guH_rYuy z?2Cl!5sF!mQ5p%af@wDc6-9BUvS-wCIdh9zC5N^DErlF<;Ki#7Zk30Y!fa$LR&I93 z+SitVauErnHN3DW>APK#BCMcvZepHZYCO%}(?4|crA8#+z7&NO$^RCQbp$aykme>%pZP*TQtOGTjW*P0I8j zOm`{M8!(BFuVG@oBMGRhV(O$#8QN3|69+xX##ERn10+_Bb2`lf+f4j;u~TLCFvCv6 zZ&aN9zm()iTP$tBFA!&+$H1&%Kb3G{#5XqlJC(ikNR(TS7XjPK@5<#ve6?ZlEWSCWzA^6Gw2Voe9po|oF=pkmYlH0@SJ zQ-u}nbZueSVa%=!&YU}4J5JQWvWJ#{Wk<#QSwWGW`OapmkbjE+WcAbxq?8+6aJvq> z*VYNQVoQHihfAQ?ba5nC%;`>_MT-ezknGF{;6-9fX_S&u9VCO0OA^Hliw22GGs zWR)4^h~x0?C@$GCQhfp`D@K%Y38@IscLzE&u5hh2-oqL!k$vbx zE=DxJbEbU@)$x9G(p(NG=|g02&Qv+K0M*Zrx|Znof$vy3Mpl4fiH=J8FlRR$c6gKH zHkCzG<9wr@maXo&W=(S4W7*sHGV{S_?N{!vzzRQ!6~qioTj(6`tR8c=N-$-RPRjWr z*ZanDEDn@)e9Q=}U2&aaj1nX61|z#t9m|hPO-)Hn>gem3>~_`oCM3I4=QvY)&*L-$ zvjAH8O3^^^t#Mm?3`3ycS%R6QXjpj+%enk<-+14UWRI&)veT96J3ZN%>g(hiBLoQ4*W{-v!994qkiTE>X|j_nS8D-T-wU2XvK?4>Iiyy7v%HI z&a5Yl9n;Nx^h1!O4?XuAyRuDcG*wz~sYFMs-ctNzt}>rvYG+r_EaRkg{UXU?OH$X6 zE+8{Ou;kn2{wQ!Pk(NVUdXL7w$@m1wx@Ipbw>@yYOFa}XTTwPgm8t0c(ztuBK#O%R zW0*L_8b@yS#kQ0e6=zgZ@q!2$V*9!pm<>drYP5SDFo63Tfun#o0mlPx1zrri6IcPf zAGi?s0B{Kq&kL;pJ_uX|dV5Lavr5@IF8vbqrarRRZE%xwdX25tvV1-=NJ2Yd+_0=^8SVr~bJis1dgXMo=W zw*r3vQi%m&IRrZ#L~n%H*5NSXPzJCwu$Oh81H>}D5Y<(*AA$Vj{b=Apgi``+1x{i< zgJ+upEpccrknVy&D7!;fSoceTIAb8hzK!6axxZ`fJ1W=D4Vc zwm4D?k`wg_K4ZCM!iHrqiQk(olh?Rca}Q|l3C(TP+!oEXXl|$GUf0}bn)_077;LuI zrMK4cgI3R_{!2a3_O#Y{b|ZQiVPsC(!e*5biwdEAXlGqLEwo!nR(9lv5<x#E8evh_HUUoSa#~Bt04~1|X_VOty9cPt0 zHwMKGY#O1EY<-SBo>`mWFIbWqZiRY*fk6|Ay{h~xeK6;)VBb}jA%n}t)T^T30Oq>6 z!qfK%(TDtKJ{{Bjt-osxRs&+u8iaTbtm`>ED{@TRq zNL?>;$-c(JmX}?j*dlO1LAU%B#o0q&XCx^b8Ey`ZvyWY|#c=ZD>`!8Gww}foXCv(6 zhoy`Y{f-3&biK7(oZ<@Xq|aj<^b|0^6SIdTGT$=7aSddI!H^G*R8y2-^u_@o#~SD2 zhw+)?XyZ%$I6FJ-5gbzyE2PseM@lErD`uQ7#fX&J;G@wx4Ody_L?+n-6r3obZ27dy zm5**}FvO2!)~Nd}Xbye{?qVglt94L#WDb7u?OHTu|6#jExt!4t;-}?uJ-6JX9xs3F zvc%5vNsCX$3L=&xFYs7k7vKfJqk*%4#{wDhaX^Z=#{((KLI4Qe0?Y*759|qKm{{)| zdJ5PZxD|LJka}#CE488tUtomTj-3kRL|zu~3}7~JAni=cX^yic5?-z5ZqVG#nuE}9xr3N*g$Kdh z;$G0)Uo^K%a}!ZZ_^6*6WlwduEO_JhEPzO+fsDPKL== zWCDIeSTfb6n}^Cd({Z3heEZOLl4y*ssEo8+Q4vM0o`i+Nm}doMSJ!^Z>4`=rS{J)z z@z?>ty}i6dDKbGe}>nWEK81uqW^@z--`OfoB6>2Mz*4hZ-6R+yxvC z{2Q?UunVc1$`; zFWvHYW1KzvdbhF>ca$i3+5U6rNrix}2Bz`6#bw*$%PoD!zCMWO#g8r+C&q!2WdSos zUAi*Y;L!W{s?5sB@<@@16Vm)(*{+Q0iHeU_XIra?Gr3q9+e!-8V_~xsYWu_2=cw{} zenoX%R8eZDv~2~}OUqQJ&8YTOQJQYuJ5-UPpV&oYwLhU} zT(*B`P;sd@tm2TUY2!2Lz5qxSx?FbCHny@B(++W?7+cPeQH=SctH#canMY;pi+xI~9!Gw9QjK+#M3x>rsN4=9NI!h*dz=h+hGjkJ$b|N%A)Ui*dgeI01;+ z0JUiAcHnZ{uLH8v|0R&`<~|_vk>Rk0P|%PXLX*@Gn!KuB2=|iZP8M|u$M#*^xlrDP zOR-E|W2)w+YYw#`{8^gPO4=$zHV7YWsK)%a7AWnwC|1UKy}ZVwcpiZ?l(u^NQW;?UkSDoj9lrCxFinPvUaN*JE+xE zaVO#CgFN=(1Z+N*Bl|`7-s#`4xO;SGcJ4`xm|;g^Y#F^!ZAWbFW}h)^NO<-Sj=HTS zSe(-m2(qnh`-s{*q2+aOyL)bRZWip7a~j~5xskAckGRZ&FC#qC3`4CcbIu?|&D?CoNIK+Ft|B!Z5UvUtX#LoS@Lkwf^gSh1A=%4_S+Eib;~zYNQadFc@A z<$1u9fdhc20tW*70ds+4fmpN>ngq-Pa$GPJconb!7zPG_zXVAH?rhEFXs%du<28q=L(A_n&0+nC#jzcf@P4g1tR}IzS2VX%bMI*Gea&HA zh83O*y@-V8w@g0up^|VXXs)+*hc|Ee#k;rs;;mZTXwBgbSsdPpP@;EeuF)(57sUvaQkV8_@8Kl_qq$L`9cW5jb*$M_ZS zpZLX#!1O~mS@`Aa#=;hX(Qyr{tl;VAaf4MhNo?t;4`37ZV>-Ag2-;zA!$9pcQFmld z$|w4mUp-0wB$|}B^!HV~Y{n+VhM6`)7U858agF$CoFUE=KsQ zt#ZiB%4wG+Dn|@R%25wpIP7P$)No>jg(ZF%#ZLYh^`HS(7wItAkMO0$51$k*e-afQ zRaU-+{lplDc0TagBQ5?|yn3edc;Hb$v}z&7Arn{x%mT8wLF1?Tv>rg_3GZ2C*5fBd zh9)U8G>uq z=CqpwXxsJ-I&7JVt_zwmckc9ZY;D4Cxa`)7sgWx>eHWeVpIx!Ayt?9wMcO%EV61b- zHu``$v!+$XKR~C)D#pwhdly+OaK{6t&8(Oe-J{9QIJ?+W%aEwpbD)m-Z`d7r!caMp zKZ%MwSJE;;LHuI#CU(kS=KviuZgd=*PVS(>IFgU1M%Sj9pzX^p8(t8TEfVYdRBbvB z$Y9O~QWuc}WD*Ae+3@0vsn8j~Two4x5b%89FMxSK`eRzC$&=belhiJnyvB0N)@Q7+ zOkOqq6nD32Zo78(vgRl=in{}v>x+^s+-a6cz7iE~ismSR2}cQxCa-ad)8^1BSX?_P zAo}&^s8l^c--IS7;`s4;*bmR)WtZ>xdbl5U@%4~?SPxIfZ>TP}b_+hCwzAzuWNqu= zsk)jZYP;3I2^Q8ooIRqEa@ z#b$m$@>6B=BOuG>`@o*S4}jUg4}r`x+B3R0;3s8}CMkn7Nf{K5Wl*@AER#6pM4!|y%0NdSsJL)AkClpssL!)bL!V#=9L8A z8|NQl68wp4hLaR$kL5VHm>05+V;$_zijx-@C;H{;+tKYxTX|IlHU_a9K2B6nw{bMw z%TrU_A7cl~1+M5(bBELYMlYZRN% zC5q2h8Ag50uho5%|c&D?4c6 zi`$yFpOn8#*^Ne&MXe>zN^%dv>ssO{G+K~VQ=Rpw-O0vjt_jBPT%!?EQRj9^4EO&j zNu>UYMY+GKDiiTWC0WJlzHPFwnhjSpS=i4Dmpfsyxcet|x;sQvpZO_K2TodGUoQN5O3H5QK2;ozX>tF zcnM!>FP}x_mKPIYmMqn!NCLq6@p*=R0Gj0X01>Oeig!~}STt+schudVCM1MujYrLzu4=j_{ z_(5}c!OE`}ALfb4hn2H7$KH&g_>4TwP1PKmOnF8`bB&s#c1`?JlO^srOE26XG{;;M z?p4j9pjjN7Iq}Q6XK{zGhb#_SJd5L3O5zThMT>(j(c+*Tw76NCgW|yAc4&@Y&B!x8 z(;ODqSR6$$c?RE%xJ%RADVodH9Asw89i(H+@1vS~LUa5EM#9^oxt*GOU32ei?qkih zYR-l7Ao07{GWob!xy8-V95x!axaFE#p}FfdhYh_gcig;J;>XQ<Cbi~K!v^mnJ3zzV0$$V2Cmx*)Kt#gJO z=0ani;8@{T$Np@`_gcpae~Se}_OZg84h??YqNf}AVMfDp=7@FHWb7H7j-T@k&O@Fp zoSP^rvB!bpn9g%CC#l{lj!xc+lhk2v)3 zjWU&>ArRY3VG>&^^~Lr*ZTnA{9#TF~0^3bV`cQFsv76x)FJg-X6}4Xm_pu^2K5|r- z?LS_`-XCWlFJd<%ym%3tabkDH4+MF#g@9X^K)YV?U0rSQmwAj3@8Oxic+OOgGS3(|J#{4mhdJuTU`0R7!?6qevdw(PwRyNbnSXlm&++`zoqxLWPbdEA zz(4NX%{70{+T3_8Jw-~U=Dt2ZDYA5``MMdH8vY*Vr8lCKm}}Od5NEsaOmhYI6T)L~ z%B-W+I&GV_Vgc4@&#p>$^nXEU|Ax)}4IzYS@O<-I+}OB5j(2K%+_}gjh=YG^vy}sV z13^cidJh--;Jk0jLn>B>d+vV{8$Nd})2Py7$w6zIAsykUZ5&Z7;Em1#FP5uy&jv<_Ul+Sf*es3oXuVtXA-V*5BuV(US*7F+JCB(@yE zh%E|nJ7KF9w!CZsB3{_S#_MhDdYO^#IjbeHnLW&YZ|@{ejO7U-#W$`S34)-Ys$nb%`S*Qw#tZC zoyS57%yYW2gr)|w+|jjVb{59UV75vVDs$0~P&i^>N}*zGhI%QW1RS1bCrKUc=xX$a zf^imXSE}tyGx_4wXYbe^l?uA9xV?&;agNgWSq`RE$bv1-0oN$&L0W&;r0!)q=1gUd z(Meu{f(Dg}a!j2h6(gL$XeT5t`}U_uR<;hA?-VP2To)tL|Ab5rBf~qz=pnfgFTdoC z)kCtI9QJH|5kxR%7?`fBbp z&4n~queo)ayH9gZYL0Uw@{FyT+pf8HHOKrHcVB9bdST&4yTs%(##tsWk2+DdK4Y5Z zSbFb8%6*uRv;BrOw^DO=YwljneXqHLnxm%qUKL&!%j7kBY3?M=ou#>RHCLp$v6`b+ zQo_4Lb8l(xUCqJJPSU7M5-G#(CMjvKbkZ&7iZ70{=e~`$T8Dnd#n}(^(XWKYaEjvW zZ-%`+5BU{LJhe4mt;0CcZw0Wpy`)iFJ$FGuQ9}id?e?F=o{i7CJ83lx(;`>=%xPuP z8ID^VGhG23`*^XDlGI+zuqQh)M!~h)JrFw#mbs_tuwZe7Yl}N}noqzn7ZdT~XXC|x=jM#F%umV`Yg=)rTBR*2FK~>1C~;?@vKy`Pq5VsZ zzJr9KPk81}Nt!*I98KCSj`(CXs2pyaEVgyAa>XO+KCxVJnX(&_pm?<}s|k}_XKC zEg6Reu`={QE4t#w!S60{-HM^h8py`&=ksykD6XhvC+=^6=H)siNB6)?axz>bnn|Xl zM+q<5TG?$d!~ChU$@5fuph7U%X7kFzZ@R_bhuKt?$wz@)2K5-QH}G*_4)94}9`I>k zKJXb}A@KLWHNa-zb->NQ`+-}5TYxVDcL4tg{2KT=@F4K-z%F<;j*Sg<1HKQWnsX2E zufWfMY{UKu+yndqcq(!o$I6DN^7|G@DIxHBped3gO(HqcB6XxpkVODd95!FF{9@In#bJG>#a*a5?sYBCsMOpn&Eb$b z%P*I?h`V<+_kreq&>V#^ahGP9d`7zFGBwvnbJX8RI`T9(Qgg+cdq#85X$}V&TYg{B z91d-^xc4=O1DP%E8_oGpO69qJ%j7kxGOyf;)XU7I=>b9x&YnDQl84~h(&TfqyiZtlN1iy-HR4CTKo zVxNT9%B3B4%*EZ^YJ+geusSYAmc&9&tP+1GvWpA#MbX$tMPW1)swXKagTYELOjoYn zIQ(Sg?w?pkYQGDfeQJl2t8C9gsp+NiiR&Z-ihB-uajY@lvC-(~EOgL4cRH6RyywEl zJg(SHG}Kba(5Dca`uavZ`lrMkMn z?ud=sQq@~zS(8LBLAe_2V0er#zswc>Ll?zedkT468WdF4k7j!cnGJw_v0_`-PgusM zCXm;wqAr23t>85lzdJ0xK3OD%2(TOYYk*wOcO8(?z6Hp4e=CsR^xO$70p10i3S1B5 zO8&=yoVj=$$k~b~fsX-y2iykS0Q@s>Bk)7u(?GtGEx-}LZNTZk7GO1SJCM`6F97EQ zUj!}!z64wfd=wvEV*(AIJd;<6`@G0O2z$V~_z!!lZ z0p9?A4CF$W-9Ub!vk&+Ma1W64IsXK9Lf(A=GfM)`~2A&7p3mgvo7B~&a zaOMNQ2QCF30M-K!0#^ZBft*5yxE8tvm;I|9D|b^`tY z^aH(U^3s6({<1UhXkZs0wv05o0#5;U1D*yv8pwsR-GM`a#{$`8W&k;NbUct+tv*0X zAtwRX08a*92RsFME3hx{DPT5`lJ051H-TpWKLwr%{0?{y@Br{!ARD*yfPNs;$Ku{m zWx*!PBoZq*Ihv3rA2!VqcU}WS8s$UIEE9K>>&4wsmPz)u6OMb^i92d?g)7orndUCh zT!ZGg+EV=9skwVJ$5JKXaU>z`UeFx1qry?f6?ZIW!ciwG9C|K`>u#BRY6*h4W62VC zx!PT!=0<3)RCALwH&=7Dnp>$kQ*$?K?sm=b8)11azY&(WuoD&zpN3l8+nQq;6?b22 z?pw`q^``huw@hB6kLFlD#c!VGST=>bQ*-xd?l+oyTyxEudtP&|YVI$Zdrxy8YL3#B z#E)&JJh!LjPSo5vnj4@wj?={N7|p$`xgDCrS59MOfhIRC!+}6JFlyA@eaj{fP^%c{Cr1>@ zx(_V+a2+svVE+^@F5oN+*EEy_U7KBjoZMHi%EBMm-_RPou(Y**)+@!45$@fnS%x_T z2VAC_dEL2Hbf;46s&4Q5vIn2fI_tW`QrHBB>kD!nS9%b#xrS#HH)agP0Y{B)9~P7N zmtV~wnW~(u{n(l%vc%)xke(AM8Rp+GG{>>?AN@D?4vY^!OOH4rX;`q_e?kbxn4MfE zz{ld8Lv7_^F7d?f<}zqlVXKOT#Dy8V#Di?(!WQI1-TGw*xX(dtDi=SvvG`#n7hSB` zipL}Sb6=^Q0WYqy>fD!VPus-yCF?-$K7Zjp#J|+FE{$Qj z&fQ*nQr51l{nlNJKOjDvV|+TEjq%3L^*8vXs&)$d6jV3z{PE&&g(C{yW9-AjB-+@&hry3MT!E2?R z{tgxSJP5RI9U1majBwP;ES!sFWfMM}P+qE`x=hBYn!Yy5c*?n{&Z~S$*f%f5cRK!M z`|^D!`l@}W;4~kX%ijId0e3vjhmWvMwdR)Qk{$R)L`Bp-qR7tT1sEPphY*g*0+eig zQ(0Gq3I+KEDwOEJfKn-s^`UTXe~4x87j9P_x=1XHtE9F0rbd78TdZ<~ zULn<~%#)MGWh8?7Wyqm87^#H#PTUUpeExXgX}CWDcmc2{a0IXykRo_*UM4;M>p4T8;eHU1W#kvYy}Fr@aZuxQ{unGvlDHH_K-$LM6AWQos;H|*Pz`KFvz=SBc!1T2>-A{HjlO zW&!^O`#He3fOCN#03rUXPj_m7EPQm&m+%07qST~GL`0foI$XH-Eq7kE%aU*hG?#+V zh2zAy_&r&3S(-!6S?)MlF7A*@i$nS>Zn@@GXzqH=aabaLf2+9-n%k_oZJPV5=9n+y z_an`HsyR1ug|IH&E;zD0?pl`xjQrmkx9gYMUp;>I#X85!ZVcFuvP0rMf5Y(OW!o=9`t5#{%B~^GHfql$b`DF4$Z!V7*~c%j zdkOaa#r<@T26hiFDql;Z+4l7~JX*zSaF4G247X#g)kJ(GPF zeq^6!>|C07XGTuMtda<;zjpreeJr;44KCT3aTAcweHuv3-!nk=b$Fgi zx?KL{s@I9yRHaSqdc>9$f|Y3~e)h!=ka*dZg_VhB`}c&hjoPC#(5}CNi6Zc6ag~8# z(*H*M@}iZYdUm;zQ0%fCyT`B8fyWM82jUmH*-^$*P`2BCNUJ;jYhi0&c3S-)>Mas; zNg)RG5Rj4h4X_^&Yk<|scfSQ*g8L_c^MF{%q|SfG2t2eL_Zxu`;3goS^%Rghc3@l{ zS`Wm6gV3YE-vgN+e*m%q{Te?xTYx4xTYx6nib*)??}TFr!ts3w$3ib01Q&}#VGe)R zXByxY6Qzj080?vlOpz2VtkB7WIW9-9Skaq0j& zR$zXvF4wZ^xpQVz)&|RGR|KccMCpr;_3SB=GvI+8DDS(&#L`Qt{czoty^hLZU>IYC zZTk-^{~v4rb|%HoKV8n8HRjb+&euZ)>6v8LOiJjZRn+9jAr2i`6tQ>!gQ8dAC%^N% zcwJ)@*9*I4%7BE+u$WXvhhf~J?AIeYG7kZ%8rP|4OuM1KwEggmG;6UqyWSDXQ>LRE z9MmbZ+A1l!!;;K{un~qT7xCe^Q|2D7RNOu_rpi=Ftc_h~-lD80tLU-S?xF7Ok)WN# zcQCQC98pH}ls$teM+DDQ$zTd5DSiTyF+_#s!hN1f8ly6}vjf>BNtHb+xOPkKnZ5a) zk#nt7fIu_tuy>upidYsEPD3$>&amvMoXFsu@<4&QKiy#(V~kI&Lc^Ju9g63pWX6c4 zo9{0=8n2!;8>3gg1!geA!h8&p&y7p-J99_T0g4;waH8Ri`dcu&qV_T!pYh5K?PX@M zRNZH&BxEYHomFa}%nYee^ln79AM)yM6;#{Y$?uE?vvs<1=Z7}JKK)8WBa;`>1Ldc?S_CAyMmKgfR7T82we9`5 z^A)Qpi)OR}syPl4IMJ;1YoI7l*tQL*tk5Tjw^D_|b*YarA9EfAws zV;_+1*7rchhw&8YkS381Y4RHHS++joL(Ak<#~_G1w$tJ+384ws!7_P`Gc|XP<}miQ z+%Z1lmr|tor4%XLV$Fp#$1%9LyH<1SGG zSj}+>j>M0nOL521rEuJ?R5*?^h2x}zaGaD7juQ~VaRNd(h)WjtsOBK*Sln}(UxI&NJeU(`CY8D>jQO(cHzF;}U*xH%D`v zIuq`C&E2KBUuq8H7|R_eFXXwqG{+@k!hNE-&o#$I2GY$U55CE4r6C<7?^PKzbLmEa>8Vv&FI0qZ}}UL=`j?CYgGvgz0AdqWgT-0Q|EVg`S%wGOP zUW?kZW3hMOr@MLh@nW{~;`EMPZ24*?@)nnEpRS6v+_6~Chx^mxM#PL0!(N0RHPmt~ ztHGAT<5bfIYAQx9_L=?AHimm!yupr4=sba7{9ls%;oU#slggp)*ys!mqL z%0$wcVbo+X9~oyAONPiatcLU3Tp8#h8>Hcyc-BCQGJEr!2{6vVMNrV`h zL~Sk{;-K8gS7gGqY7P?-%GSpz2g}_6&0$)>;wVCiUsh>(#%j%RwT^JNY3?q~QGG3b zDQbv2=~!^gvU%l5bI4G0Tz2Ex3;i354mQp|Xg0SLu%u&8oZJ`v8=L(31(*&_4u9dO z`@1UJnT^V8r+2pF@?BmtIQ{wE|J;e^P zC&k&vtAS5K-1^1UbH<5-?0NWc&PuLjwbiqxSC(@>#CE+`v=^GCE2y0!#)ktLm7gjo zZmMgKIAsvl9Xv}D+a=mrqh{5^u?gv>?22)3`-@I{a`?--YZy~w!j<_w^2aEOqAFtum7yI6B&nq!Y4ey`Bn3eB;m$}_fW?q$vOPO17o z#Qh08RnPwij^FFruRVz(LMpNsAwrf?){1P|_ceQ>lq88rT1b>gN!eu&MN!#FvLuvH zNJS;TnRD(vMDNe%^Z$Q8pWkmDj(N>YukGtTqiOT){*##Y0nM1`FKS&U$40cbvaHSeX?f=M#+RE~Xn9(#x;Sa` zuG@x&1*L!4q)if4WzV=`r16Jlz0%6^!6 zYpcxRV7Jfg{b4P-%|3)$s*&&b*hJd1?{Zh1Dp)nLoo5xVY8bIR>+)u<{Pvv(+xb7vXu` z=J#NNrk~@my1BE0sNW%tYeinCe^$s89UA)9;N26KJ-DWG%G*V4bn^!t7|Q6Waz#>351%*pn? z6D58gOc4Z}vb~*^kC=o+Eci@|B4V~)b~ZlXJU1|)0pSREaU|^Ge`2o0bdLL(}RaXN$4hu!~f*54%!qr zF(05}M$pY2`cQ#~fG3})FObj{MpF&_;K&9I6^;+2U~wpFfD-WVhD?~|a>^`cp5Naz70t^ij3Q{}4vkN>(z94|C2_FF)MHZ(Aj@<-i52T-*z&CtMA9N<}0JFs*K_zF^7LEk0g zmdjyAc;N4^;JOMLre$*ABuT(0ga0rUUNKz;%jLj2A>iTq1D%23;hd%EVMBNRz86g2G14AAA;BA2%a`~)XCWjBR2q8Si;6F6M?Tjau%h>>Y2za<1NiH9uWpXwmJgVS7V8c1*CH`gn z*@W=KEUK@K%jAH;7sMq&l9S`>29gFPE-q&gga>YWlG7uM%2_n0Y({u2!7#lOP|#2> ziwl+>0Z#~A4X%V<+mhng-Jm7X@(zhYlj+Ty5(g+VcdIs2VEuFJ&%hR(3 z;rRgC803aVdYK&9`UrR(@E?f6Rk-MlESDpL@W89|$Zc%vGC8scPcirpQ(Ew?En~SH zxWXpj&j2~FE})TJCPxmSpqycI048b0r@!zK=XE6 z9~c0j(8X>DDy4rb3!!7{~%)5n+mkrsy7_kUk;DHqU+yV^;5(-lLNC-QISd$Pw1hELT zv2u0wuz|cJ$$>WZUUo>qlMv|RLkflRK;+mm#LLOS(Psf7{XiCDL6mJ^F606k5X{})$-&pl%E!sW-NMJp8eCwv!|jNL zpPiRCK$Le#?$|-A)hSqPvxg%RPzs&sAO~}NG%o+)sjy3 z(zEiia`VPK5yensKUELkMG+z{(Co>+df=L&k}l#q~-k>TT$l9SxF4FN6b_u_eR zW%-8ArY`93F=4A+{Jsp`a6K^wmzj$VJvV2lyS<+i{Hnf7mTL?PW+1uAB&#l;`tNt!h=uq zfUg}c0Dyt35oH#TzD4hM5Qj7V8n6Hmgo^-RKrr0j*&Abmj}ww z1ZRT41I<6BF9UdN1UyZ_bOG-{l+PPje@h=+ zQ#F}^H)nH{4|bKm$=e9hCj)p69YXnFJNuhF4S+ucJikeN|0HiSkSAmT(r5Xv<$;$D z+&#dPOXB;d@_P#S$^g$PD?k7Py7FJs2lHD<;(>h7{4Kxm3*j{2qqRkOSb_Do{6+vg z7w{;M7BBylK2OkI)B#U{BPtJTFN@}1=raQz8)uXU`ws>QFyx7=scWbl*t>u4ZdG}H z@NcK~e*Ql}-Mwl$D%$G%`1xS5PlD$Rc(icfC>1a}<;}oM<>hT=>*;EB#7xb@-`&;2 z%GTR#BKcel-%dv_4>vo$1vJpr$y!uWOj=CJ3>&1uHEP>gaeT1*tN;t*`%Z8vj@sHz zHeMdy9`-(b8x1z`>3aHrvtfZ?mgL(BHaVTZ+7d|*T$pm;7+8(r9ui`JY|?UI^)lSr z$${j@4g5_02xIMKIWeHScDn6KBB*Ex@k~ z9%%SUWs(kP0TNvX==CJp26O`v5?v3PF#JUsH1J2jUx57y_A?uKGjM|j*05~H7pw_!PCpb0W8S)!1BY+n{Q*lHknOk=&u>Q`CPy<$4pYf%*oxx)z{VzkYW;I zl5!GTB*i4md~LjZ%)nVs(ALBp|L>A)zz-6EM7X{ND{c$#|E5fTESZA)CHTa=toGSi zdD%GfDe?*0IeGFy@DSqgMjc!DM1T_qaX~w4&&7Pu3*`m)vVhzEZvpuPr9g}z)-8OZ zNG$(uMf6g>{kA@G%gh;NDQ${QHPy^_AD(*h$Grs8(Enjw17{*JPg`qbX@a{XLF2#K zis@5{KHXKW$8I#|r=2~wrrC_7#@k+(I@8T`>*1RtYe(Aq&vdn17TH@!S00pej7Id~ z`&gdJ7+aPio+-X;=Us=3zx1k9oCxxGiF1CTQ)^lUe z?9S?%;n}-fscmc&nSXp`q>XyY=dN&w#cA)Lie{j1`+R?@4qC$>VzUL-aeJa#%H07EI@_ z6L_3wcs0JHkvXmW;q`|U8)?r_S>$#x)C!IebHal>#98+`9?ayis!|lSFN{%n<41kC z8(+rPaz&V>{c}WE&SBnyLh7`^%4F%bhaYY}qY2nDi(`(?pu5C*h3Rc6qw{f5MK{{Z zuC}pwGn?UQeHRyND_8DU5_VxaIP0nLcxu<9Y4|l&)3hgz9y5Qf?aH>(8!2M@_^=`} z=uGjiKAs-y-J-8oehF$lXScWQ=RvDn?U(um@;F+)ZV(i&|m`d-i3dIH%7GlL|K89!O z3mlE|!aVrs+U$#y2d!Q*&GsI;@~mqU|COff{EW`JRf>7WCm8d^6wJztvRq3Z@r6Dd zFU+eGPQB(&uC$Z58JeBj@bv{I;>GL++uHyhFB-6;jzi%QOJj2R}*fy73p!K8V* zxDEGl^f}jQg4N=fCt6Zz!yTvaYkyZ$JDD3P#5gj zBa^%9wFu*@y=&+neA6PxSO!w6)O@z=JJ9El@j2RE@<@e~#<@JJhSj0=WhpHl>tzNU z4dVS7o)a{QrNtZ+{Nh4X2Pzawo@^wR=Uy<$7ol{{GrK+CSuNSvR1kT+YctRNUeoMq z+eD!$o3U%D&c5_8|aNVHyo{pz&H^grhpCRTqgyU8 zRCa=fQJ@hs23yz8trb5Nv-uh>I_-ht%4x7-P@pNXM zuUDY9HzVR%=datHce-yq(>m{BrQYbu5imfX@~MTfbAKqMPIVqZ&PvGP_ID1;CT&fp z-QE7~N?Oj%_urUwblDU8lqVEk$?m&fcIV0U(%$2Zxtb&M1rpp-<>hCqOX?-!^7f^t z<_l8EG?m0rcfQzU)VsgZp-Vt4&_3^>mepg5HIC*NMLdLMD~S0wq8Vz|^ii2aeWnlv z!w67|DRJo&lhx*{bowPUZjZSbeX(!2U~Td-Tt;OKN)fqrOfSltTOD~7f% z8IR_yX9LgLJsV@ko9Wt6yLSCxRcjFh=8Y5&uUk-^p{-@;%FQ8;2#R|Ig&%a>%UWf{lUZml zs_6GdB?jMpnEFZ!U)kq&7U9D=VG-1Y1-!|XgJ~Zgwn+!jJiEz^o85AWE+hIa(-qF+ z&WxqBZi=F@wyu|lZOrg4F8b5lu2$Azb`r0qtZ_Q7)bZnM@M%X+(oR=>WqxdAm)%v% zRy3j)S@H1Wui`U7);&CZD_@K5KGz!b#CeN**RL#xGa9cgA2z8`ih4^Ec!uuM@3rV*40@(Vb$I&*3YEJR zL>88341A}J91GU-d4%N^+qcoZv>Hr4)H}(hj zG6tC%iE(uEN%Xk;8-i)B=S(oisfE*~wyecZIXY2S|Nd@mWFBJY(7@#?bJ*R5`u*>= zHGUDTBK<6{15F%yw4Tov_jyEDe4brZRI$@CJG#B2BlW|L=D1_qUR6KV?VB=aE_Ikp zFEeu3Q9#|ZD_3UED@Kvm59rtIl_6+-Q=tsB?6dq_li|>JK+-+>vxZZ}kp`>0b7l6S ztJiz9q!>63$UJB8k1r)^68I@NiVsi;i9ab(sK_lRZWPHkxnP#(Oj+GIf4iWmQF3$F z^+?m+`#g!Z)!AbQgWWm5m-Y49cODpzj_dF?ofT8Vs3=p>7f<=JnW$xq%3k@{^;I@37H|=LdKK$ z%fURs%^HE6Yly8y<`VfWFE33vvlT5iexwcwC6fjZhmadHPN>YuQ^Uru$YQx8Cvdo`lOa&Q|O$_ z-rd>N@0cUgPIIKpY}HFl)=TJ+nSV2`pP;*E-!4|SGj zg{Z9=v7+FMrhMwQAv4-g`Q-zlzT6R>hn)g?tO0f|emvh^Nd3zGcHnAY=`We>A&L98 znN~L*vrN02FUmkQ#o=OUl`Vc^L*%Z(@!Ge0GUrZ0cZV9+1=l@1p^?(Fhe+qeDB-?}Zd5i>w@L3)SkkOYP5N~~J>2Uj917(r zZ~WMq6STdZOBKgB=BOjRW%uyEIqa!kJkWtZcx&8V(LJT{!p6jm?;BVc4_k>ivuE1Z zl#ZL<>OJ}X4zoIC)31)y zmKPW)N*iL;LhemRzo0UG`psI&R8Odn$3>;2Q|QCWSf2Bq*={Th-wgeowy)`}4dg3M z9XUOx`k*{vgB@sw0uB4e<@@Ol1$DbC6ke*kIFXeyX+s=jSuYXl`#D(n^&JiE$}=)8 zH7^+p(kYd>=~Ry%b#3n15p{X^;0N=}NzFAem-u=2G*%dUW^~6X;(gkw?O8Qa_$P3Q z>hbj*WAf+5BQ3I$*ab$@y*1X2z8-OCDnB>vH|v(GeVsM{Cwp5-L9bde`>UFNdtihi(`C7?m{UA#cm>zU$$mC30@Q35&k%b(YhH+w^-9{)}0dX5V=vDE;T(>;9_BS`{P^Sn>*9L-1Z~h9}gtn z+S&SoX3akFruHYt< zy`TGHMI=-=nH$8Rkz;6NGlSXN~*DrQoV`hqXjONR{JO zYYu@5Gqa;g6_G6uKWsd^jecGyzViXc%B=yFaW>uWSDawDccoHen$tYi{5nyJYVF8S z!x_KyINFPc<)f=xteNdfY_xRn+IBYU`edzvjl1wp92CYQ)9n);H~lg`E8l?q|81ec=TMh6D(jxp zAE`Sti0`d_42G2jG1=0Ky=AzsziOP5FmwJ%7@NCy=N$c!S?n{>`V*TT_k;L`$ipKRx{e65vhEa{|Q&VzZ)lxbxUlrQ!C+^eAw%$bQ zOB`)atWLD7=ggZ|5)U=Zo0-^i^I9()G_ZSAB;)bPu(PYIxPVfA-~L?3vh5tJw0ct1 z(<*~&bPqMerpQ-Ss&xC0-!H!FqIQs5E_37HkoPl#qHCGwCH=JIY_5t)YX>xj@m|h4 zcr|$Mr-loHTKTq5eho+7UT0~gaak&wKZ)C;Mnos%#j zNs&d=v%kGQC!E#)(9rYAe9FL7Q`g=%Sy7JBs-FvJGnfb_n$C1S>5-K}yGN{3Qfb?! z_6BSgyLdGr=;%+)AF-<^Gmahmc{({+yUlYh#vp-P2a=H8?{Tm*!8!gA(OzTvd{5l`y!Jsupt?g5-LotIjg+vH$*YDwTGU89kH?QurXiiQU5B{7wg6NSW+KXrB8~yy)+C? zYvup6o|9q?-DCOty^0Pm^>^+GTj7M&Vb`919p6?&V2Bk*+tn~G^+iW zA8ou`e4*}3UYQUZ)u(5kuN(zp-Q}M*i>2(AxH6S)pzgCb?~71s=Pa$NjIK%6{tIt3 z3k0JxdO{`-ZI?;SIW)T7w9?!^zuU<8fc#rx$-(VWdc|k^DxY}~95z1IKcmIfX`T5X zEUGar(^YK6Z0O#X$DOhQL{C3?W8f+1j7!!iI_-NK-9YL|M z|L<%_53h^a-ge3~VPE40TJLjX_or!#w%pzmbb;@>F3WJwsX{B`zRgmr+0Pc}J95Ue zrB<+Anh{iKmp)k=d{uvylEL?w5<0h<+3E(h+zMmcN#FT*zG8OSGD9`8?>bZ_Q+VF{ z32FqdcZlk~xp{K;Ne}tYRHIhDh8cHTn}0~9iWSdN-BG-m{NtFDT=3SFndW}IjIXD{ zE=T0(NHW<5=RMs}xKcND{5*HR(5A#plhV=;u{_&d>%%?7@#{W>XHLmIw%lK#tnhN2 zFyZLD>)a15qNdr4^W3%9pLbevaSaainTV?$?Dgp-CRGNU>!|s7FP?U<2gTH@B&a`0tD1{2Jfdx{uB1%rh1CogTFoJLZPDr%kP{JgAcDwsk1*ewlA8LB;ki z|InH2@9|=?Wg}&)=J{9096b_Jvn^LhZT!TollQeKsDxRs7&^UHYUWSBH)-WY?>8h9 zvp#)J=H`cnb0wKLVMTG%Y?voa z`ly+UQ!k4DaFoh8CY|w9afT@<-k>L|oA|c(a#eU6Ck>6z_loI8 z5qVzh+126l{CU)5@_7v-&d2gkwuMjHR1)sajwxGNxUkKNU(}b1SkdmZLiy6og1VmG z4ezh7JYl(7XN|ORSb6@r!W~|X!B@ZT5hA41j;F2L87qs&fdSwYp4eVjpJm`-c`S5u z<}1pK300#}g~6s2O}~kE=bHQ-I<*7^xyMo`#og_42cHheR2t;?`b^6x(b{ta*F1`y zy<$>bvhSBV_x<|!7IveuXJCs=b`>fQME zM5Ld7&N#=NtRqvx3HyI|dc)4P?J;%x5=>8d({5;-zCU*E_Ld@Az6(KnhFNs4TNR$_ zk=op6TyU0sbv&n|K3hd9n~LDfrP`Cy?W^>!2FH9iP^xjGD^Y8xp0zcu$bC2OJDF`K z<||t>Br~bf@y_o(Ps;jW4Z)k;Q4S|}Pj06AEbn3HYc<;3dN)HXRqDqbs@dWn$u|{) z<(!V0XRh4(nz7d};&Rv&lcY}0)4X6?-IawKxX+KLCT2#Ha?(ZAM3p56$5h(yXn{c_lqI|ze+Q`QSubiQB}C}AtK<1SIe*9Hm=H2Lt*Fb z6K^+pIG1F7cz*cP(?g7Dx-+%I++YAmd~CQ*Yt^ra7df)^*F{`)xT0<|%JFt@$b*WyRvZuL1)=%xeDmnvf$$)r4}loxF8ooQgv0zTp*C;bx`R zPLuc2`TgkKtk%cK4BeEOOD{Rs@Ig@+m+78uDn7yy*ajW`4YoWFgZdNJ7Nwe9 zJLT6cueEcu#nj>qDaRi_Go+6NG0iAu^%%qpAHCXfR`KQF!j_)!@c-g3z9IY2&nb+1Q<@V@+`F zMEog(topjpW0oG2uQE3qsZL}x4JwRI_-Us2H=TPYsMYC^I>s$%=Po`u@N_UY$DmS1 zX4=P>!=6?t_EAl6waJxP^)p==KP6LqisqG77k${K&MI)!F4RI|VEsk!oXW=UGF+7T&z!Ce z>ogjr@f=`Sm++;|y2Pqi`p12XzJ6@IGktPFa0=9k&w>7wq= z9n)vDZ9SPsA4vCZqe?Ws{_+()WxQF`%|pCd68!sxFO94^!jK#H`|gpZZ5y?yDx*(m zjIqD2cFAQuv4_vC{`u+jh-B_LM$Qr$_`3|;XM@7GRBbMyA5ZsK6Eixg2Y*<-X9_9{ zdn-n7yGs8)!wi9QoGt9h`MFMSckbCE^j|U?N4Z4VBEB8JUp(=+*>Rro=WJQmL$x zzd!EZt>$vKI8%=Mp!d+=#%o0e&-^6MXI{0D(+bd*7Q4(F2BwUISr-~U?X}I<5{w-F z^~B0@-R)?p%NicsN&F!?A~nuWzugE+P*yI9^0YkAS9_w;c+ERKVirZt`rG!0{8_{E zC!Y_QrUp`Gz3FvTjdqO6pe^{UX+mI1_n~v%EmRqqnqob&cdCu{qS)quqd^H*V}EG= zJeD!JI{Ea^W1el=$q5EAbG|qs?$F~WeOyJi#GlR_`R+7p!EvVZfR{tqySONV(xkQi z8J71APxWZ89?KcvO>Je=UMV$Z!)r*8yi+t%1h$igs<%ue*qiY_Z7Tn&!`Qc)yHx3? zRE`O|B~9t?;n!WP`L5fZIbPf)B+q~6dD(n}z^C29)sJ@Sh+g>mppJdxi;WuBH}}fP zt4X??OY0ujuiH}jUZ_2GTvfitG_^_nbk&Yk5`6bvhEJ%-=~-r0Mp3AZE4)jqkqp<0 z4YyBOWkRW|J~mV=zbnen@waQ)Cjq8?W$~YLFC<5rKicG6q%lo~oc1BQ4#MZKb-8Mdwp*s5#Cd~jzOD{s zu=o|No%|wtD2My_2fc5zTcx-%LtAIUB8paZ?l7FwAK1c1*xx=FG*M0z(=dCRk*LJ< zL$vR6+lEpc7yv%v_HLsx_|er9O>sx+P5!P|CQib#w0#X7LhTRad~9@Drz$pYPoaHL z-*+!UTsaGcm+kSm|EsRjKZG3Dfnt|G8pZkd9(0N+k&!g|Pjp-R1PB{)-m5Pv8ub*vS z6~wtC_C{b+&8kGnai00!%FMM}>h%(TYP*%e|=$6xL} zEgF#JY4GMrGR|4h_jHj)LL2_}(I3Q`iy7to$HXj^V}m-7_y5j;kb^$?)RU=(r|*n7 zG7c!6jVeicLtLSy6uF1)22WV;&ZM5;m1}(Neox%o|BS^!RwQP}#bAz0JCiTHT%oE! z|2U=8z~P(X&usSc)E~k!A4H!PW=CI_;4%)%R$2W{===+OdZ)V)-?8F?6rnGXB5s0C znOnnmh+fm{$$Bhw%8z~0{@Y#y3D2RhmWlGlv7_HOnSS0cJs3>mS~6!LzTPEvrf&3^ zX{?*&Iq&gpwc7UHtPh4oa%U}1+O6q-y|q?*?SSA54Hd6FpD)EU6ur5x{EN8v(XEWt z8jQzhY7cC8&`TT*YpU7RYUrFS*&)@=Y<`4dyl35wQqwbj#@$WYv|}3+KDv6!m3{2` zbjbO{Ez7s{-Y2atG_}1~ppkK~QM)sl6}RW`R|%f)X7A_yDYL46=>`e}t?KgqQNeUM zaQKi`Cx1kSQK0be=GHlG{m3Hz*N-e8nOv#4^hT21$IQuSwElJooz}d7#dE{y^1VzI zp>^s`R+>EZvQ_y!?J8p~=MuJ;xv#e6-FEH8)7RYbCkHS09-v-z`kP*?__|zHe{0e3 z;(|t+w;Web?5aA7XNgolYif3zo-jXo?(W7F3{wFwZ^%5@yw05=@OEAIl?}G#?+ z)Ha_RV!OLuYC<^put!;5dert&s_qii7CHIVS7>tdb%!MB#`20%6!c|h5?Ej9X@5CL z`zfvWhMeZ1S??q5xwjGze585Ny0b}q-QV10YXl{RcLoK%dMcYGzsrNk z^<`~Ww9fU2eeX;T<=9Zny&uXHrn38DsqpDxQI~r^`}q&MYup@JL#BTB8L=D-pVpWW z6Sx)N=ale8u_D0Rjz{e4^ZMt$7t7-BtGW1#aX(#`QNUZXas0qsYWhiDf#2(Prx|_A zT+dvvC9lf5L;7k}NPz^0^;SnSvkHO83ZuMT8enxd}w4XRl47qhQk+W<65et<*E3XtaaChZMyP{>afDy&{t!-2qB$Z zTLN%k07%V}ity3RZB{xgmoO4nT&?wFhfC6iO6lH*o95_D?xfuX8-T%|9_*KG66Ecd zx}~|(mjBbm(>Dtrn=*T?C_XQo{h2P*fia?6RGK2@NAt<2#^ID!(RQcgUi@JDzMAvG zgJK^@$a`fS6@c8d}5-oBi3XN);box7A-_Ztvv3tRTt_3!_YOVM_7pznzNR>fJROD@MR zt3=E<5{rCJy*V)b<~YI2H{yor zGd#G2vvW|;sDJ5q?!g`HdY$o6W0A8>yr%?`+TW_B$0c=lwf9VmAC%R}iNeP7)9N?+i&su6A=@-I& zz3)Zu&xhZxgl{-qJfK`YuRSucbz^jc_p^Gp{(D)5=>*C(uJ$&3!awAHiY1#ra+H{k zx_Kb3a4^4<#lJaQMDiGy{m(VW%*!3#ie95Q&G9-*+?3_%E=$8r47E@8y3B>XtIpni zIxUiU>r4uVUUH(|yi7+zg8ulMqbv95uJ!Vy%js6EX)B`+%MkFp^+HX1z1N#M;oS~Rvh7Ml>1<;OU*3t}%D~GSvx%+!&cE}!H|z6U8r~9^m9lH7 z=Y;6V;kuI|nT+rE#_XY{m3d|3!Fc_7t@8dmH;%H2Q%>+`*)*6A)t`G-Keo4LfcJ;uwY?)uBf%_6ewl`LrZo8Xi zd5nrdG~d#NW9o!>w$@|*Cb>v7syueJ~N zvl)kW?|%qB0QRJ4obaL}?pft7!5Aq!O7}^xNmpeyDNOKsdd-v9IK7l|1rBC*zc)N^n6_sABjdmcWB?-)?DAHQ{>F~$9RM&ic9j4T`2okgrlYwR<7Z<&wp z=>K`lB>d5~uVPVCF}n-%$2w}`BXZ_ig*dahb{>zkxTzreyv~f{tm9WxWyTAZ)Ugev z6w~)Y)J&;fL@QZ;d)g&GJw`?bW!*8{{YqqBr^98ETogUec zQ2yYI^n~5`{sw_Vbp7%Q?%hEb>n;^eresa93=(a8LnYR~77qSgsjYFRrbXsVdI950 zI&Ni3*P};OqjvN(e>gaNS#vVeoc~hHnu^9fyxkd|#y)t(I97Y=_6hzJjd=A$ocvfv zy+!2sIRW;hEDi7U(UI4q>&}%oIk?UGP19c2&b=**3#ispP*VGvExGPOq<^$RZTYC# z+)sK=Q%8^EmST@OL9-s{MQh?sINehzW+hAA2XX&lfik`B+X@sr#3Q%YAr}Zg&1#{}-WB;Y%tZuKrX) z^K8~U#pMlp-mmVtz+Y!8gNF}1;AmqA@(0g^UC18JS+(9d<$kdBxPw~r8Ry@novg>z z#yoEvi)IShVB24!seOL`Z#rhtu+Y`wG7>e{OpZEL{gxD_7)yRU9_6YX-my|Au-8JC zsjKAkAssRHo0&R~yl!P&zm%XVED^=tlumrSee=L$a6MNfP$l(r;Z{dMkQB0krz@d> zzv_U-3Y?3CCm*33{>tM#c*K`nYX!qV9(Yo79qH6Q&=O>Q#K+FU+uzC)9JVB19|wP| z@Yjp1sBvn@MOI5Megh)OX3@oOz5qi+A@@g30ha`s3)tj5z%-Hb27b^Q0^MQ2hUtt1 zHvHND9`Mj07qmc%h%+N$KpirPA|k(Rfxh&}J;f+r8^#C9(|iQDklz8R0ej)zL2~5K z7ygO~8W<@wOAD3`6toCV6Z!cJ%7KP~iH2dJq8-$nKz<_w1fjZsz$MyVHvh6rA?F$p zoUCjI)gu8*0X66?fiPi^6P7I=hbj|AImtI_`?1@GpAalzlZ zz?72j>VqkQclALxlnCR6v7%RkAvbGD0EleJ<+r#}bHVkO&|L&Zl5ROG0@P|MQl&nDA6f-rM2mXMFh^5WL6SN%kmT~mA zuWX>@=zvQkby)vhdvrvunuJlngpjqKklLpt0>B)Q04W3jjL20GpoL12nkXE0l)*zb zE5W zLpN-xyTOCDR7jyM6;kxLvm{?4E}BHq;|egW7{mH8Y!JgXfjpw}L`f7q?jD9^V;Is> z8Nl%R0R)BP?c$*oP61!Rvv}HtqZ2gb(QD~|nhN}6mo!Bf1{MVzuY_U8N6ep1(ZT^t zRsS&j!E~So9Vubl|6z@T`I21AFck}<&C)dvIbSfHnp zFFh01;Ik^Ssrgg$$H=FV)m!0W7$|jSR;wO;6M5iQq&7pO`3&>DX8g|PA0TF8JwRY0 z%x8R)4@K5lAbM8xfj~G9pf`-eR&WYDWOEY`uof1#0&3ufH6;KZc=66+|3@$@h%dUb zbX($2M5-8-whj1MFY$Lo{9$)NSIrd^@OqU$7k4mCFb&ti1IGc>EN^9`K@V2=l4%x+ z1PQkEB3L%Clw6o@;je8OCJOKV&_sjmxB(@Vl(-PE7G4efp-h-aI_M2h z=zjztXjssxfq}&bZXN@Tm>MSq6j|tiH4+;V7LSBIiTG23#!6nALUkUfnh$>~eyA%HjoS{aJhp(@exbnNN`s(@7S(Q|8c>5t z2OP|_Fbz;99%u!Diw|}{A3$V^V)4QI<6(MW2ZWsm-n|3W#h@5DPFt{s*oB3GHv&U> zFpbFfA&?%(zch{H_<;%zgddL2dtnqf8H9fomM3daiZXvJh{#PJa-;PHDR@Uc6PRKs z010yqo66q@AY?(l3kie%yGf#98{ST$q24#>hI-%NLbnXqYk>{*yup43`c(*Q@6Zhs z0hh$+WxJ3q*cwo>Xj*tl6ws-NVd5ADHEW=JP_qW4=y8!4b{@l$ zF)S6spgs*WYz>A%eHtj%ieaBI>#!aE z{hbEhO9BnK)h(TZg+O7+EEybO7!WsdGbs5|fTgQJ3-Ai?zgZ6c^(_OoYuGu+uTJFb zz~Nx&TQTfP|9V|V?qvKxCRpSC<*kE}^j-`(Ku#BK%2oyd*^tY2@jJ&e(79mQflCxZ z=z;x$)Y+Z`d(9%ZI-t>I0i@7n0i-~~1OHJBZug*AA%>M;ST~0CVc2I3`+{MPpoUR- zt|SV1a}FKjgUTVox_xP+A0e|iSY80#bS&SSL+4j9pPUA5^IHwUhm*OGuv5CKY6K`2 zeZy}i@C5mLi;xKIU~)-NSsxlI7!UX>;;fj z5-gK^`ynGDniK%AEfHNq;*a#5fYPV_nhsEQm~(#FYa|cM{F{W6k}Y{)8dNH% zALg(tP*-~}OXLdaW}wv`6dq7B14RS#A3CJ#BlpotYlDJ^)gNifK&pP!{cj!8&C(s9 zqS44eeg6L#`DR);{R zFCW^!K%b2=U79%9Ylpu#TSTJD5fwnj;0Q&HXexyRDmA>nADJnrad3+j#ol7nBt|iT zzKr^=#Hh6xwGE?GF$(U6pdp+v$`hlGVALgyO2Mex7*&T+FEOeequ>$%%@Mq%45e0L z6hB7EW0WRF?Z+r9j0(W0FpRo@QE)MU#*u?j@KpoFpvDT6dWBKr81)0AXuxEF^08x- z3P$b6Cv4?~mkFFe6El3x`cJ zQ3aoHVGr*LglZ+BN=7fl{{mq*PGXTdN|}dv zg(MLwx(q@5-S8|pQ&5Vi!cGSSOZqd{3xx(JKsX_gMQR`-VIiur!i|VSh=2N$94;hj z6!BlkVH)D*M&!X9-bdtdAo5^Ehamn-awq}zG0*~n%^z&3QBdPbaCnf1R{U8kXTd|~UMQVgi%Mq( z1h+-}QwS>;ZEL`r))=TyzGD!hA-6O<4$;Gbjzgeff`JkTHc!B1aX`Hf4fv!)13ov= zApIO>Yz@-S-{SaiiQro(Gw3EdVEkIxI6-3Aax&vD;$e}?BI54=?Z7l(dyWPd3!dxX zfnxrWP*(;qy1z(*r3YW3p{^`VFl-nB3AW%l3?8^^0^1v!&=HW4?0=Fj_IK%U7@tB4 zGZY842^s*Y7T|FO&)>6qV(K3fiC)>P1QJ05HnwQM*h>SpxKJ_h?T`=Vfn*j&O1LG% z2DW5iQNyq4uuO%(^MCk`8iV8qjS0?c(7?U3QzYCAXdQ=hoe!|#cm>r9t_1c`;N}8$ z2(aNK5)SOmz>Wa68nB~)Z2;^7U|RtjYCDGw4{AAw<7O?eLx5cmZ1{5Y9N3qD{Sw&M zfDM{kNCB|>f!zS?0bq9n8*Ee{3ShxDMMx${<5ytAahVdN3vRbi0~^*6bPIu&0Nopb zO$%%>l6woV>46)zIp}Xk@^=C@18}>N+#v6W+n3~q+bS^J8xjt?L_Bc6Be_RN?vErl z)T;sgVT(%yHk=BRfDOLz;nIQK4{UIQYse2^-vc&WPr&kp6|M#zbo&cZ==K++=y5$H zUn1@;iJ}LZmeCMI92{>@J~<47`rJ?qZhxWj;Pw}a!8czNgWF#y1~ED^)XF{}#1 z;OZ9T>%y=}4Eu^R&u!)7oHv>;NvpzVo=7zR{;lCUBSE5$I_+R!*&W7sf;eZ;VD7zW!Tnm2k%a#*N} z7R5GUm?(zHVVEL@?Zz-|40FOTHw-(1VZj&{fniY?b``^tFbpcMRYUs+hP7eXD-0XN zFsL6x4e3X;ROGM>Bnn*mhGEU$mNmiv&;tz-$9HyhE4<#|Iu!@Q~ko$Vni-oxm5y z|7_P5Muse$7ItOPZ%HshpdSdekUYZq5*kYibXV2}*x>SV9MD@7vK`o9UP9&q_}vHH zjfE7t8w)A)%o2))0ym1Kk|-kXHik`L*ffU0ZTkbXk=0cnII9N8dvCxwKnoDkZdhbJ zbdCTgQrk2U(!kpj>Eyv`TrlU(Nxpl)G4oPn(hY_R4Cfq8NR zHk|+A-UM3bkV5MmQuN5nE{cVd_~?)&U$9|uoeaynqoJeh! z$hy$Cyrdoy$&E|{|4~PQ2ZDahtFyqV7pm3Eu(@6Tn#YrsTS!M@B|Iqq=M}V=&eLf z!>}PVI!?eNM=UrK!2Rb*88n+v9e_6O5NKua6b;;XfrbzH?*wK(MW7{(6~qHi*r2Cm zoDsjjFKyt4*+L&(jr2cswd8{JVRG@3`!F0v7W(PJ=@ht&1B;J*I)x8$+kwp@$>k?# zr2exLG|Gq!VMHd}u0~~A16vqN!{Spl;t0P2sJ4YuHE5WBK2;-!gn{Qp(G6>qA5Hf{ zJ{QI#*ze&C2>Icu8kFA(XwZ}flNfr$7;S_IBi4L@Ytf-iI2x13EZAb)5f?05SpF{P zbO^SafI|;FWCPnDG;l&uLnxr=1Pnef!ZKj<0lOU7!oUWdHUw7wBVdOByBgRhfn5V^ zSgG3JK?f^Hp@S8qP&M)>_Kw6ykLX!IvF{j0gGZ$haYPaYR#h0b0mF7+*iH;H#W1)j zfyV2BVQ^Cd#g1cGD263tSSp6qU|1c7wPIK&hOGj<8qEhhe}l%c0mI6Gl7UnXKkqUn3WS;#86eJ@vhy4CCYJt%v|sQb5B zyF`aa!iHO)gvjoA)l@0GAVvAh2j|8G4luDzd=YDV`&Mdl=A0|r@cJ0PPjys{)-_CP zeb{elC(&^bEv^I;b;6=GjO5-FtlRum+BDDOV6_dQSj847cpL$5N%q3*<*KQX)d27x!L`BN zP?8~ce`rHl=$wHA&IJU{K=3={0)h-)oQn}P$g`1*ELO4w7rq2MIR|S#vMR&j87u%7 zDNKb6G6EjLaI}DCxnfc1^Y4^H!wG_b4+3)Fs~j{WC8mp%e$fGxfCoth0~b)#+58c# zw3em^rWRG~#|S8B=s=1=H_QMqP(6C+{raGgOlPp38;J*-5(uNd|7flLzJIf zFsgJds7jc~hx}7sPb=)zU1>GF^l9JNbr~L{Kz|4+FVBY zbBSU)QJ@`$zmZx(dhnd;oVr@PljphLrAs))OR96~P6u9%df=zJ=1LdeFA(2m_?f9C zA;nCp_&kW95OTbTavFw0C}sNKun>Npqx^(916Qi}P6OV?#JfzY_$Z{ez+adNgJCk$ z#kWuUQ66zi72g`f=ZBnZ){TgC@lm|>fE)}-htf%xe=ot|H2C?70bp!=3Fm{71tOG( zE>j%LFLoDfI<3cbV}d`npTNRLa~@z6(ak#c^8j6i?wF1QRKuG8jWi{kia8@yn~ zRW(%=wM&(6uHNRc(-NMC_qpGxLX1Rkbr#@Kl>iglQZzK=zN-_e$*$p z9d*F?*-^*sL@gW&e7p|lvQgP&POwK@9qoC0h)PZ|>n3vek>lSc*puWq;)TX722N(? zgz*0iP6#oFckqdvnke%2KRA?HK?`r1w`l8T<0&YGH(7Rn0su3h9~1>_)~EWHUY8X zSTiyT<&>NdJYZI_vc3UBLFt#w2RX!Uz0SnaP-?BQPLMivqz%p77b9!-*v}D@i-Ks44O-JUTLl)!)TX-^1sgmVh3=?*mwyD|u`JIh}Q1WDRifC5)a>q_k`f_(VTxsMdOU1#TYOXQLHSV5R z?s_0iXC{<8#>wz(hnWhAYrAy0D?C004-FTXkS!DG3ts>4w%}0#v;j%s;@wr1%WZ;8 zmePfVly!LO@;8EC0tTdOa{248T&Zz>We&K)VL2Y+^us-FnBCgAcF_p|KK8N~M2TeD z`Hk|0W``H1m6Ae~B-Ai>F(6|MZ}k8$PJ`1>9+}t~p#1C$Kv_;N1SP**1j_O{8kdw; z+N8YF=2J&R3ib=_&*$vXHoxn;6p_E8iY9-R9*T@0ns)}5t)5ps}3LCw!#MQ5OeEp==O z)mr*e(YB&pt);KDF79ZZwY&M*POSIrJ^AzK&cKZAfb%|U+11#m`K!+84h8JaJ6N=f z+F4G^r-9Pg9KKA&8-0a4;k@3M9W8w&I&1fV-*63o=}UQdhsSzqekQYMTk{uK=l@E0 zNwi(9|J#ZMW1X0M=e!}OY$(FBoU3p@1y?R-L7b4Xy@C4(W#juPUf1C=#)GUq3lFA@ zvAxUQBmJ^Q=I?d8@4|DoawRiKlfmuI@xx5ja*}wMlWzBwaA)bIq0kSa&M8O`drTA4 z@FgymQ896`hmoU%7Kf>S>y+0XR&www#Kb4-*#c>VgEUr53xu_|8iPhoGPZtrenAE0 z^kMqdA1PWQvb;p3>c^-lx$0gbkk4kUU0WwC{vKB)Epury8I0q+oxS)KCJvh)Iu8E0 zqZ6DsAl)`xDwrrd@zWXOQ|j3$(ROorgW#P709$*gv~phnvOEh%KZt#{aE2kyA-IN;Lj03GjfwvuDwn5idXay=LDP%> zHQw|}7XNIu@k5w{I{#P$P`GY0DFS7Apy`k6F=bPWxgso|A&B`2pb+_yYd|3fA~m2G z(uwf(7($CMzw<$vk42!ZpyNP)1Ueq{cF>8ScY-1_BAY=cfj$U&4rmPYT+ru1r-Hr$ zS`7LQ=y{-j1uX$R1Udrr3;oQ@WP?d&RcVu1RoZ;cTiVs{uv!s}(nkD!Zn2QZV57Co zhXqCk8)va;7Q4V=D=bF2BkyRjSgXYzwb*Ygw##DATZ}5)lD;DrC4rJye22toc&9OJ zhR~p}D8ssic5{so*t#b+iF+cC6IJUNC&ROlv$G?{)(s^!jn&*X(dco-OCKdyyqh`9 z%2Sg#Ba^cc;~-ZLkb^(|Ol+^#4nuKMbqk&uv%0J3y=2tl=%j6hb z(j=r!nuN5;27iJ*r2YA*KcPbSotVWsEruCYA68?O4cywiQx#PAAJl!8~>m73udGT!O9XcmGO z_>3{l$Z*glpyZJ-D0$?2xP(V&6CR<>N98}|>ZkgjviY2+E!J+a_bhh6VuvlpIzr+r z24~1SD8U5-kEoF_jDvNuYi>3%%U#^g(nY3@kA9KWjnM=Ac64hx93agcekz-r6?jE{ zLUWU0=!cUHgOWu`a%+##R6ve+yHn`J_V|CZfHAw+I z?(H1Ygvock#QYcLv-w}M!D@WI1eAGysb;-Vu#4t0ZKAnMn@`jX6~-ovV87Nj+2K*J zy%u}N`U~REOML92h`-Gi;|!Ky1!IfG7Frdfs>9pwIPKr=d-?MAr)u8Z8p)gTMni4= zAFhbpu(fgJUA-0$8FK&M|GscT=iDC;-MIUMG4Bkm|KQ@y>*s!N&KZXy8*lvR$+AhG z{Nbs)rrdGsCGX}xThim*?dEyc&wsc4rf08?ocY>mP5Yl5(lqb6$M*bffajm92HqMO z)b{2UBwLy9PUVMlqg~B6Qu%Ssh?4!i9yBk0KqI3+Y&4lk z$^}_Kp%8&PL*M_a84ziS@$^)FI1kD?oF*$N9u_dKhmB>X?BJyBZzRXlOZlmV2Q-kC z$xe#Lr~DY9IcN1m%%~=&$FKa5Yx+nu;7)$4TX}~C-0SH+9)|XMINxdF>75i0UJpMk zK}kMyRIH; z2{defc|Gfu-F>?e59a$z(JG{tgi=e0+aTL5TIjO6acNRoZ>BY1V!p7tsv+!5oft9xM12P(~AqHjw_lvuCUlCt5{xHS5#ddZ05B{$sdNKa0|Zg@PG#|fNf+O3a43SGos0;kyZFYV2+n3Pgy}B6 zE8yoZy5OXXk4>B_Q4|NWsKKO*Zye<6DEL{xh6>EdxKe%ZO8kpmCnzuWmMZ_KNH=K! z*7-1lVA#`8@wrL>@mgG&rkW){gM0!j9gR-HO$a^nm~|3d%ztbu399kN0^L_n@z?1Y z{;nDbbR7X-tIL;_)rA|t94=)8IyS%&<6hM@aAeRBo~enDLU$lR`=P5UfzlC_56gb_(N#O1j$RQO@U!#qYfBY=&zin%g_ABR+PY)V-1c2FFmrpW!ZR0*YQJam zs5y5|KJAzDA2__yao$$=usbT+n?AX8-IwRg_|-!X`j3dd!H>WK$DnUuenL6psI9BH zrmk#7Xld2*%KFeLYtEW*>Y~+E)fF|X>qFO7HPkOE$X`@dUB0}rq7v4z`C|*t&L3AW zHh)oLd0oRI3{q89Uo&>uvBy+iQ&))?!z(IRl-FJ#u0Nh}uC~cMTBU*i8~PPRA*SDG zKv+cvtD|tVUuU%|(nf6+A_@wRn{tPF*|FrUXmXgCY$}gOj(knjHqYWYqGS?lKkA5_ zfOZL+RjG7DC?k%Oj!69c4Aujw`@p)Qg?tk;0q>^-Ve&r2#etf{J-k%A7;dE4dPtil zEjl1|&48Lhx*a@A+-)oU+=-c`{pM$AuwS1zEMgK1imogN+4)aK;*zwQIo57Z(cqAK zJ}zTS9x~rd%PZnYe|0S=^Rfw)c?_wp`>V7`f0Z^_n=IJBXn#KEA#L+>wWJE`bN*&e@Vh#u5D^KR@4-_42lF7xATvMaHVDl-Ey#lB8dz!0xw7$6Jr>DJiA-oB!*yX zSRIzZ0Ssm}_IYMIxBFuT5SmI=HIv)}%DlT*Gs!U6Wl)1QVG`P8XL-Rk z;90OIw9T(ZUj=)|V((jj9L|!k9BCDQ7(4qem}C@QkhuN7n@KYHCzLT#!!QZDX$gP+ z|1+B;N|IDea=&Jh2Q-sx)=V-S`6o<5n=lD&K6OrnV4LtP*l)GXuZCX*`?JONTYqE{ z2}>pse_)bmX)g37pw^&{C-}5JtGS~S+J$o$T{$Sn<-j~}}cIM5? z_5Qx8lX#%yaJX$PZRft#>2VgGw5w?!Elsh2)7j~Lw&@7n+M4);iKVt%Xo>9&Hhm?b z_xNK-B!?nK;EKz;bxf-^Pity8lJbr{S_*B_#}nLZ;4ZGRjdpc{`xDAtgcL<`S%N#) z&bW0NPQ>$sgq6}v6W`6*6v`@^#?$9q4EI&?6d@wqp z*vXc9luG9-pV>CBd>cUt>=wYiYuv({ zN|81nFuhE9PZ^9+ipCYPw_!g#$UMeeG-ixOS6$@_L@1Ma=-8R2i(2+BO#1X>Jw8|Vd~w}V~>`V-I}fc_MeyvOi-PY9RH%hM+F z^0fJ|c2iva&R@07=Nz%vmlo@TQW3(F-=Q)cZ9a!3O|VH8qoSr@vn|$WvFk0y*?95S zW-%&*33i{wI9D$i=jv(mIWdd>Z1JWw8vDQ3=~m+x*S|ixpUGyv5k7m-m)h zjN7saHqT<5c^7P(#gw?sri$8v=w}e4vA+eO&(&B6{j|X2jyHC$5_%g%=)KUEIZ1%^ z1j2!mj@Z5+_KS!uT-;72@s>{;v)iV7mW1)#{6(;SYRl^lfxzQgZL2)q4)2lX1D?hY zwH$qvF(?TgDEaX4dl1jq(r9mH-gfU!2vz?M6-Uz-k6?5@u=Y&{tLGp7W%ZK7Z^!og zTjynCf9iF>(9}IZA5U_TdSLi8+#b*Jb_5=u?(rT`G(%IbrkR@d&@@Zao|1PmB^&u+3i=psJ`;^*n2_$5p~Q@TpdGxAAh0a zaKw>@#h-?Sm7|@M-mIFaTS;TwoA8{eT*V*ut1|8&Z;auw(Ezx_nFbYdgse~kNX&}s;avJv<}aUKsSLd21RwJ;=3EP4A0v@uLj)#im;Iv zKr2D1oxBwEGSF*4De0DhQh}@rl$Fy8(2byI9!Bm3tpyzhzFi5*y;RYXh!lc0fO6M* z{L%<3jn$xYLDztCZ&g&sk!nzWC;!1vTv8R&CRH(QK4+hH^*irsn@^44h`&P?>xI+^ z#!6Yj4z}1(i%quJREsUJ7{6J<-e9pNi?J$}cd#lJf2?)|W3?;TUW>8X73`qJKCu|e zgbtgjZ9a$d#1bD>-z2Qr?Bn)pH!mC9>#nkMAIx~|&iG@GOl7{i8F$XWbv5p}H0v6o9?q_v z3>!_l8FwRt3SYfqVsbo`jIuoi`HMzo+{0$96G*1RnQ0p4I8A)^T2KF>0y2I=$_I6z z4N{~L&VpkzfiM=tR#dGLkbc~=*O*d7dLT;@OevmCnm8S;lV=81k^rvJPw*3VeE$pM Cx`QDA literal 331624 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 z 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 diff --git a/rSDK/ZlibStream/Data.h b/rSDK/ZlibStream/Data.h index 5693c099..b311c7ed 100644 --- a/rSDK/ZlibStream/Data.h +++ b/rSDK/ZlibStream/Data.h @@ -1,6 +1,20 @@ class rRundata; typedef rRundata * LPRRDATA; +#ifdef _UNICODE + #define EDITDATA EDITDATAW + #define LPEDATA LPEDATAW + typedef std::wstring tstring; + typedef std::wstringstream tstringstream; + #define t_gzopen(path, mode) gzopen_w(path, mode) +#else + #define EDITDATA EDITDATAA + #define LPEDATA LPEDATAA + typedef std::string tstring; + typedef std::stringstream tstringstream; + #define t_gzopen(path, mode) gzopen(path, mode) +#endif + // -------------------------------- // RUNNING OBJECT DATA STRUCTURE // -------------------------------- @@ -12,18 +26,18 @@ typedef struct tagRDATA #include "MagicRDATA.h" //bool is volatile so it can be changed instantly by threads - unsigned short inbuffersize; // Default size of memory buffer - double PercentageDifference; // Percentage difference input->output - string LastOutput; // Last finished file name - string returnstring; // String to return with statistics or errors - volatile bool threadsafe; // Ensure only one thread accesses rdPtr's variables + unsigned short inbuffersize; //Default size of memory buffer + double PercentageDifference; //Percentage difference input->output + tstring LastOutput; //Last finished file name + tstring returnstring; //String to return with statistics or errors + volatile bool threadsafe; //Ensure only one thread accesses rdPtr's variables - tagRDATA() : inbuffersize(8192), PercentageDifference(0.0), LastOutput(""), returnstring(""), threadsafe(false) // Constructor + tagRDATA() : inbuffersize(8192), PercentageDifference(0.0), LastOutput(_T("")), returnstring(_T("")), threadsafe(false) //Constructor { //vars initialized above in the initializer list } //functions - ~tagRDATA(){} // Destructor + ~tagRDATA(){} //Destructor } RUNDATA; typedef RUNDATA * LPRDATA; diff --git a/rSDK/ZlibStream/Edittime.cpp b/rSDK/ZlibStream/Edittime.cpp index 32bcc5f9..406fa1fd 100644 --- a/rSDK/ZlibStream/Edittime.cpp +++ b/rSDK/ZlibStream/Edittime.cpp @@ -4,7 +4,7 @@ // under the Frame and Event editors. // // Including creating, display, and setting up your object. -// +// // ============================================================================ #include "common.h" @@ -41,7 +41,7 @@ DEBUGGER_ITEMS_START() // DB_CURRENTSTRING, // DB_CURRENTSTRING|DB_EDITABLE, - // DB_CURRENTVALUE|DB_EDITABLE, + // DB_CURRENTVALUE|DB_EDITABLE, // DB_CURRENTCHECK, // DB_CURRENTCOMBO, @@ -202,23 +202,23 @@ void WINAPI DLLExport SetPropValue(LPMV mV, LPEDATA edPtr, UINT nPropID, LPVOID // // or have an adaptive size of structure like below // // // If the length is different -// if (strlen(pStr)!=strlen(edPtr->text)) +// if (_tcslen(pStr)!=_tcslen(edPtr->text)) // { // // Asks MMF to reallocate the structure with the new size -// LPEDATA pNewPtr = (LPEDATA)mvReAllocEditData(mV, edPtr, sizeof(EDITDATA)+strlen(pStr)); -// +// LPEDATA pNewPtr = (LPEDATA)mvReAllocEditData(mV, edPtr, sizeof(EDITDATA)+_tcslen(pStr)); +// // // If reallocation worked // if (pNewPtr!=NULL) // { // // Copy the string // edPtr=pNewPtr; -// strcpy(edPtr->text, pStr); +// _tcscpy(edPtr->text, pStr); // } // } // else -// { +// { // // Same size : simply copy -// strcpy(edPtr->text, pStr); +// _tcscpy(edPtr->text, pStr); // } // } // break; @@ -303,7 +303,7 @@ BOOL WINAPI IsPropEnabled(LPMV mV, LPEDATA edPtr, UINT nPropID) // ============================================================================ // // TEXT PROPERTIES -// +// // ============================================================================ // -------------------- @@ -324,7 +324,7 @@ DWORD WINAPI DLLExport GetTextCaps(mv _far *mV, LPEDATA edPtr) // Note: the pStyle and cbSize parameters are obsolete and passed for compatibility reasons only. // -BOOL WINAPI DLLExport GetTextFont(mv _far *mV, LPEDATA edPtr, LPLOGFONT plf, LPSTR pStyle, UINT cbSize) +BOOL WINAPI DLLExport GetTextFont(mv _far *mV, LPEDATA edPtr, LPLOGFONT plf, LPTSTR pStyle, UINT cbSize) { #if !RUN_ONLY // Example: copy LOGFONT structure from EDITDATA @@ -482,7 +482,7 @@ WORD BmpToImg(int bmID, npAppli idApp, short HotX = 0, short HotY = 0, short Act // ============================================================================ // // ROUTINES USED UNDER FRAME EDITOR -// +// // ============================================================================ // -------------------- @@ -497,7 +497,7 @@ WORD BmpToImg(int bmID, npAppli idApp, short HotX = 0, short HotY = 0, short Act // /* -int WINAPI DLLExport MakeIconEx ( mv _far *mV, cSurface* pIconSf, LPSTR lpName, fpObjInfo oiPtr, LPEDATA edPtr ) +int WINAPI DLLExport MakeIconEx ( mv _far *mV, cSurface* pIconSf, LPTSTR lpName, fpObjInfo oiPtr, LPEDATA edPtr ) { int error = -1; #ifndef RUN_ONLY @@ -512,7 +512,7 @@ int WINAPI DLLExport MakeIconEx ( mv _far *mV, cSurface* pIconSf, LPSTR lpName, // -------------------- // CreateObject // -------------------- -// Called when you choose "Create new object". It should display the setup box +// Called when you choose "Create new object". It should display the setup box // and initialize everything in the datazone. int WINAPI DLLExport CreateObject(mv _far *mV, fpLevObj loPtr, LPEDATA edPtr) @@ -521,7 +521,7 @@ int WINAPI DLLExport CreateObject(mv _far *mV, fpLevObj loPtr, LPEDATA edPtr) // Do some rSDK stuff #include "rCreateObject.h" - + // Set default object settings // edPtr->swidth = 32; @@ -545,7 +545,7 @@ int WINAPI DLLExport CreateObject(mv _far *mV, fpLevObj loPtr, LPEDATA edPtr) BOOL WINAPI EditObject (mv _far *mV, fpObjInfo oiPtr, fpLevObj loPtr, LPEDATA edPtr) { #ifndef RUN_ONLY - + return TRUE; #endif // !RUN_ONLY @@ -594,7 +594,7 @@ void WINAPI DLLExport RemoveObject(mv _far *mV, fpLevObj loPtr, LPEDATA edPtr, u { #ifndef RUN_ONLY // Is the last object removed? - if (0 == cpt) + if (0 == cpt) { // Do whatever necessary to remove our data } @@ -676,7 +676,7 @@ void WINAPI DLLExport EditorDisplay(mv _far *mV, fpObjInfo oiPtr, fpLevObj loPtr // IsTransparent // -------------------- // This routine tells MMF2 if the mouse pointer is over a transparent zone of the object. -// +// extern "C" BOOL WINAPI DLLExport IsTransparent(mv _far *mV, fpLevObj loPtr, LPEDATA edPtr, int dx, int dy) { @@ -690,7 +690,7 @@ extern "C" BOOL WINAPI DLLExport IsTransparent(mv _far *mV, fpLevObj loPtr, LPED // PrepareToWriteObject // -------------------- // Just before writing the datazone when saving the application, MMF2 calls this routine. -// +// void WINAPI DLLExport PrepareToWriteObject(mv _far *mV, LPEDATA edPtr, fpObjInfo adoi) { @@ -725,23 +725,23 @@ BOOL WINAPI GetFilters(LPMV mV, LPEDATA edPtr, DWORD dwFlags, LPVOID pReserved) // Return TRUE if you can create an object from the given file // -BOOL WINAPI DLLExport UsesFile (LPMV mV, LPSTR fileName) +BOOL WINAPI DLLExport UsesFile (LPMV mV, LPTSTR fileName) { BOOL r = FALSE; #ifndef RUN_ONLY // Example: return TRUE if file extension is ".txt" -/* - LPSTR ext, npath; +/* + LPTSTR ext, npath; if ( fileName != NULL ) { - if ( (ext=(LPSTR)malloc(_MAX_EXT)) != NULL ) + if ( (ext=(LPTSTR)malloc(_MAX_EXT)) != NULL ) { - if ( (npath=(LPSTR)malloc(_MAX_PATH)) != NULL ) + if ( (npath=(LPTSTR)malloc(_MAX_PATH)) != NULL ) { - strcpy(npath, fileName); - _splitpath(npath, NULL, NULL, NULL, ext); + _tcscpy(npath, fileName); + _tsplitpath(npath, NULL, NULL, NULL, ext); if ( _stricmp(ext, ".txt") == 0 ) r = TRUE; free(npath); @@ -760,7 +760,7 @@ BOOL WINAPI DLLExport UsesFile (LPMV mV, LPSTR fileName) // Creates a new object from file // -void WINAPI DLLExport CreateFromFile (LPMV mV, LPSTR fileName, LPEDATA edPtr) +void WINAPI DLLExport CreateFromFile (LPMV mV, LPTSTR fileName, LPEDATA edPtr) { #ifndef RUN_ONLY // Initialize your extension data from the given file @@ -768,7 +768,7 @@ void WINAPI DLLExport CreateFromFile (LPMV mV, LPSTR fileName, LPEDATA edPtr) // edPtr->sheight = 32; // Example: store the filename - // strcpy(edPtr->myFileName, fileName); + // _tcscpy(edPtr->myFileName, fileName); #endif // !RUN_ONLY } @@ -778,24 +778,24 @@ void WINAPI DLLExport CreateFromFile (LPMV mV, LPSTR fileName, LPEDATA edPtr) // // ROUTINES USED UNDER EVENT / TIME / STEP-THROUGH EDITOR // You should not need to change these routines -// +// // ============================================================================ // ----------------- // menucpy // ----------------- // Internal routine used later, copy one menu onto another -// -#ifndef RUN_ONLY + void menucpy(HMENU hTargetMenu, HMENU hSourceMenu) { - int n, id, nMn; - TCHAR * strBuf; - HMENU hSubMenu; - +#ifndef RUN_ONLY + int n, id, nMn; + LPTSTR strBuf; + HMENU hSubMenu; + nMn = GetMenuItemCount(hSourceMenu); - strBuf = (TCHAR *)LocalAlloc(LPTR, 80); - for (n=0; n < nMn; n++) + strBuf = (LPTSTR)calloc(80, sizeof(TCHAR)); + for (n = 0; n < nMn; n++) { if (0 == (id = GetMenuItemID(hSourceMenu, n))) AppendMenu(hTargetMenu, MF_SEPARATOR, 0, 0L); @@ -812,26 +812,31 @@ void menucpy(HMENU hTargetMenu, HMENU hSourceMenu) } } } - LocalFree((HLOCAL)strBuf); + free(strBuf); +#endif } // ----------------- // GetPopupMenu // ----------------- // Internal routine used later. Returns the first popup from a menu -// +// HMENU GetPopupMenu(LPEDATA edPtr,short mn) { +#ifndef RUN_ONLY HMENU hPopup = CreatePopupMenu(); if (mn == MN_CONDITIONS) - menucpy(hPopup, ConditionMenu(edPtr)); + menucpy(hPopup,ConditionMenu(/*edPtr*/)); else if (mn == MN_ACTIONS) - menucpy(hPopup, ActionMenu(edPtr)); + menucpy(hPopup,ActionMenu(/*edPtr*/)); else if (mn == MN_EXPRESSIONS) - menucpy(hPopup, ExpressionMenu(edPtr)); + menucpy(hPopup,ExpressionMenu(/*edPtr*/)); return hPopup; +#else + return NULL; +#endif } // -------------------- @@ -842,14 +847,13 @@ HMENU GetPopupMenu(LPEDATA edPtr,short mn) // static LPEVENTINFOS2 GetEventInformations(LPEVENTINFOS2 eiPtr, short code) + { while (eiPtr->infos.code != code) eiPtr = EVINFO2_NEXT(eiPtr); - + return eiPtr; } -#endif // !RUN_ONLY - // ---------------------------------------------------- // GetConditionMenu / GetActionMenu / GetExpressionMenu @@ -862,7 +866,7 @@ HMENU WINAPI DLLExport GetConditionMenu(mv _far *mV, fpObjInfo oiPtr, LPEDATA ed { #ifndef RUN_ONLY // Check compatibility - return GetPopupMenu(edPtr, MN_CONDITIONS); + return GetPopupMenu(edPtr,MN_CONDITIONS); #endif // !RUN_ONLY return NULL; } @@ -871,7 +875,7 @@ HMENU WINAPI DLLExport GetActionMenu(mv _far *mV, fpObjInfo oiPtr, LPEDATA edPtr { #ifndef RUN_ONLY // Check compatibility - return GetPopupMenu(edPtr, MN_ACTIONS); + return GetPopupMenu(edPtr,MN_ACTIONS); #endif // !RUN_ONLY return NULL; } @@ -880,7 +884,7 @@ HMENU WINAPI DLLExport GetExpressionMenu(mv _far *mV, fpObjInfo oiPtr, LPEDATA e { #ifndef RUN_ONLY // Check compatibility - return GetPopupMenu(edPtr, MN_EXPRESSIONS); + return GetPopupMenu(edPtr,MN_EXPRESSIONS); #endif // !RUN_ONLY return NULL; } @@ -897,42 +901,37 @@ HMENU WINAPI DLLExport GetExpressionMenu(mv _far *mV, fpObjInfo oiPtr, LPEDATA e #ifndef RUN_ONLY void GetCodeTitle(LPEVENTINFOS2 eiPtr, short code, short param, short mn, LPTSTR strBuf, WORD maxLen) { - HMENU hMn; + HMENU hMn; // Finds event in array - eiPtr = GetEventInformations(eiPtr, code); + eiPtr=GetEventInformations(eiPtr, code); // If a special string is to be returned short strID = EVINFO2_PARAMTITLE(eiPtr, param); - if (strID) - { - switch(mn) - { + if (strID) { + switch(mn) { case MN_CONDITIONS: - if (code >= 0 && code < (short)Conditions.size()) { - if (param >= 0 && param < (short)Conditions[code]->getParamCount()) - _tcscpy_s(strBuf, maxLen, Conditions[code]->getParamName(param)); + if (code>=0&&code<(short)Conditions.size()) { + if (param>=0&¶m<(short)Conditions[code]->getParamCount()) + _tcscpy(strBuf,Conditions[code]->getParamName(param)); } break; case MN_ACTIONS: - if (code >= 0 && code < (short)Actions.size()) { - if (param >= 0 && param < (short)Actions[code]->getParamCount()) - _tcscpy_s(strBuf, maxLen, Actions[code]->getParamName(param)); + if (code>=0&&code<(short)Actions.size()) { + if (param>=0&¶m<(short)Actions[code]->getParamCount()) + _tcscpy(strBuf,Actions[code]->getParamName(param)); } break; case MN_EXPRESSIONS: - if (code >= 0 && code < (short)Expressions.size()) { - if (param >= 0 && param < (short)Expressions[code]->getParamCount()) - _tcscpy_s(strBuf, maxLen, Expressions[code]->getParamName(param)); + if (code>=0&&code<(short)Expressions.size()) { + if (param>=0&¶m<(short)Expressions[code]->getParamCount()) + _tcscpy(strBuf,Expressions[code]->getParamName(param)); } break; } - } - else - { - if ((hMn = LoadMenu(hInstLib, MAKEINTRESOURCE(mn)))) - { + } else { + if ((hMn=LoadMenu(hInstLib, MAKEINTRESOURCE(mn)))) { GetMenuString(hMn, eiPtr->menu, strBuf, maxLen, MF_BYCOMMAND); DestroyMenu(hMn); } @@ -964,9 +963,9 @@ short WINAPI DLLExport GetConditionCodeFromMenu(mv _far *mV, short menuId) #ifndef RUN_ONLY LPEVENTINFOS2 eiPtr; int n; - for (n = Conditions.size(), eiPtr = (LPEVENTINFOS2)conditionsInfos; n > 0 && eiPtr->menu != menuId; n--) - eiPtr = EVINFO2_NEXT(eiPtr); - if (n > 0) + for (n=Conditions.size(),eiPtr=(LPEVENTINFOS2)conditionsInfos;n>0&&eiPtr->menu!=menuId;n--) + eiPtr=EVINFO2_NEXT(eiPtr); + if (n>0) return eiPtr->infos.code; #endif // !RUN_ONLY return -1; @@ -978,9 +977,9 @@ short WINAPI DLLExport GetActionCodeFromMenu(mv _far *mV, short menuId) LPEVENTINFOS2 eiPtr; int n; - for (n = Actions.size(), eiPtr = (LPEVENTINFOS2)actionsInfos; n > 0 && eiPtr->menu != menuId; n--) + for (n=Actions.size(),eiPtr=(LPEVENTINFOS2)actionsInfos;n>0&&eiPtr->menu!=menuId;n--) eiPtr = EVINFO2_NEXT(eiPtr); - if (n > 0) + if (n>0) return eiPtr->infos.code; #endif // !RUN_ONLY return -1; @@ -991,9 +990,9 @@ short WINAPI DLLExport GetExpressionCodeFromMenu(mv _far *mV, short menuId) #ifndef RUN_ONLY LPEVENTINFOS2 eiPtr; int n; - for (n = Expressions.size(), eiPtr = (LPEVENTINFOS2)expressionsInfos; n > 0 && eiPtr->menu != menuId; n--) + for (n=Expressions.size(),eiPtr=(LPEVENTINFOS2)expressionsInfos;n>0&&eiPtr->menu!=menuId;n--) eiPtr = EVINFO2_NEXT(eiPtr); - if (n > 0) + if (n>0) return eiPtr->infos.code; #endif // !RUN_ONLY return -1; @@ -1003,8 +1002,8 @@ short WINAPI DLLExport GetExpressionCodeFromMenu(mv _far *mV, short menuId) // ------------------------------------------------------- // GetConditionInfos / GetActionInfos / GetExpressionInfos // ------------------------------------------------------- -// From a action / condition / expression code, returns -// an infosEvents structure. +// From a action / condition / expression code, returns +// an infosEvents structure. // LPINFOEVENTSV2 WINAPI DLLExport GetConditionInfos(mv _far *mV, short code) @@ -1038,31 +1037,31 @@ LPINFOEVENTSV2 WINAPI DLLExport GetExpressionInfos(mv _far *mV, short code) // ---------------------------------------------------------- // GetConditionString / GetActionString / GetExpressionString // ---------------------------------------------------------- -// From a action / condition / expression code, returns +// From a action / condition / expression code, returns // the string to use for displaying it under the event editor // void WINAPI DLLExport GetConditionString(mv _far *mV, short code, LPTSTR strPtr, short maxLen) { #ifndef RUN_ONLY - if (code >= 0 && code < (short)Conditions.size()) - _tcscpy(strPtr, Conditions[code]->getName()); + if (code>=0&&code<(short)Conditions.size()) + _tcscpy(strPtr,Conditions[code]->getName()); #endif // !RUN_ONLY } void WINAPI DLLExport GetActionString(mv _far *mV, short code, LPTSTR strPtr, short maxLen) { #ifndef RUN_ONLY - if (code >= 0 && code < (short)Actions.size()) - _tcscpy(strPtr, Actions[code]->getName()); + if (code>=0&&code<(short)Actions.size()) + _tcscpy(strPtr,Actions[code]->getName()); #endif // !RUN_ONLY } void WINAPI DLLExport GetExpressionString(mv _far *mV, short code, LPTSTR strPtr, short maxLen) { #ifndef RUN_ONLY - if (code >= 0 && code < (short)Expressions.size()) - _tcscpy_s(strPtr, maxLen, Expressions[code]->getName()); + if (code>=0&&code<(short)Expressions.size()) + _tcscpy(strPtr,Expressions[code]->getName()); #endif // !RUN_ONLY } @@ -1076,9 +1075,9 @@ void WINAPI DLLExport GetExpressionParam(mv _far *mV, short code, short param, L { #ifndef RUN_ONLY if (_tcslen(Expressions[code]->getParamName(param))) - _tcscpy_s(strBuf, maxLen, Expressions[code]->getParamName(param)); + _tcscpy(strBuf,Expressions[code]->getParamName(param)); else - *strBuf = 0; + *strBuf=0; #endif } @@ -1097,8 +1096,8 @@ void WINAPI InitParameter(mv _far *mV, short code, paramExt* pExt) #if !RUN_ONLY // Example // ------- - // strcpy(&pExt->pextData[0], "Parameter Test"); - // pExt->pextSize = sizeof(paramExt) + strlen(pExt->pextData) + 1; + // _tcscpy(&pExt->pextData[0], "Parameter Test"); + // pExt->pextSize = sizeof(paramExt) + _tcslen(pExt->pextData)+1; #endif // !RUN_ONLY } @@ -1116,7 +1115,7 @@ BOOL CALLBACK DLLExport SetupProc(HWND hDlg, UINT msgType, WPARAM wParam, LPARAM // Save edptr SetWindowLong(hDlg, DWL_USER, lParam); - pExt = (paramExt *)lParam; + pExt=(paramExt*)lParam; SetDlgItemText(hDlg, IDC_EDIT, pExt->pextData); return TRUE; @@ -1130,7 +1129,7 @@ BOOL CALLBACK DLLExport SetupProc(HWND hDlg, UINT msgType, WPARAM wParam, LPARAM { case IDOK: // Exit GetDlgItemText(hDlg, IDC_EDIT, pExt->pextData, 500); - pExt->pextSize = sizeof(paramExt) + strlen(pExt->pextData) + 1; + pExt->pextSize=sizeof(paramExt)+_tcslen(pExt->pextData)+1; EndDialog(hDlg, TRUE); return TRUE; @@ -1170,7 +1169,7 @@ void WINAPI EditParameter(mv _far *mV, short code, paramExt* pExt) // Initialize the parameter. // -void WINAPI GetParameterString(mv _far *mV, short code, paramExt* pExt, LPSTR pDest, short size) +void WINAPI GetParameterString(mv _far *mV, short code, paramExt* pExt, LPTSTR pDest, short size) { #if !RUN_ONLY @@ -1190,14 +1189,14 @@ void WINAPI GetParameterString(mv _far *mV, short code, paramExt* pExt, LPSTR pD // Note: ObjComment is also displayed in the Quick Description box in the Insert Object dialog box // -void WINAPI DLLExport GetObjInfos (mv _far *mV, LPEDATA edPtr, LPSTR ObjName, LPSTR ObjAuthor, LPSTR ObjCopyright, LPSTR ObjComment, LPSTR ObjHttp) +void WINAPI DLLExport GetObjInfos (mv _far *mV, LPEDATA edPtr, LPTSTR ObjName, LPTSTR ObjAuthor, LPTSTR ObjCopyright, LPTSTR ObjComment, LPTSTR ObjHttp) { #ifndef RUN_ONLY - strcpy_s(ObjName, 255, ObjectName); - strcpy_s(ObjAuthor, 255, ObjectAuthor); - strcpy_s(ObjCopyright, 255, ObjectCopyright); - strcpy_s(ObjComment, 1023, ObjectComment); - strcpy_s(ObjHttp, 255, ObjectURL); + _tcscpy(ObjName, ObjectName); + _tcscpy(ObjAuthor,ObjectAuthor); + _tcscpy(ObjCopyright,ObjectCopyright); + _tcscpy(ObjComment,ObjectComment); + _tcscpy(ObjHttp,ObjectURL); #endif } @@ -1207,10 +1206,10 @@ void WINAPI DLLExport GetObjInfos (mv _far *mV, LPEDATA edPtr, LPSTR ObjName, LP // Returns the help filename of the object. // -LPCSTR WINAPI GetHelpFileName() +LPCTSTR WINAPI GetHelpFileName() { #ifndef RUN_ONLY - return ObjectHelp; + return _T(ObjectHelp); #else return NULL; #endif diff --git a/rSDK/ZlibStream/Ext.rc b/rSDK/ZlibStream/Ext.rc index 9f122903..2c9aa0f2 100644 --- a/rSDK/ZlibStream/Ext.rc +++ b/rSDK/ZlibStream/Ext.rc @@ -68,16 +68,16 @@ END #if defined(APSTUDIO_INVOKED) || defined(EDITOR) #if defined(APSTUDIO_INVOKED) -EXO_ICON$(EDITOR) BITMAP "EXTICON.BMP" +EXO_ICON$(EDITOR) BITMAP "Icons\\Icon.bmp" #else -EXO_ICON BITMAP "EXTICON.BMP" +EXO_ICON BITMAP "Icons\\Icon.bmp" #endif #endif #if defined(APSTUDIO_INVOKED) || defined(EDITOR) #if defined(APSTUDIO_INVOKED) -EXO_IMAGE$(EDITOR) BITMAP "EXTIMG.BMP" +EXO_IMAGE$(EDITOR) BITMAP "Icons\\Img.bmp" #else -EXO_IMAGE BITMAP "EXTIMG.BMP" +EXO_IMAGE BITMAP "Icons\\Img.bmp" #endif #endif diff --git a/rSDK/ZlibStream/General.cpp b/rSDK/ZlibStream/General.cpp index 4e2113c6..6b47b6f3 100644 --- a/rSDK/ZlibStream/General.cpp +++ b/rSDK/ZlibStream/General.cpp @@ -1,7 +1,7 @@ /// ===================================================================================== // // The following routines are used internally by MMF, and should not need to be modified -// +// // ===================================================================================== #include "common.h" @@ -12,7 +12,7 @@ EXT_INIT() // ============================================================================ // // LIBRARY ENTRY & QUIT POINTS -// +// // ============================================================================ // ----------------- @@ -27,16 +27,16 @@ BOOL WINAPI DllMain(HINSTANCE hDLL, DWORD dwReason, LPVOID lpReserved) conditionsInfos = getConditionInfos(); actionsInfos = getActionInfos(); expressionsInfos = getExpressionInfos(); - + ConditionJumps = getConditions(); ActionJumps = getActions(); ExpressionJumps = getExpressions(); - + switch (dwReason) { // DLL is attaching to the address space of the current process. case DLL_PROCESS_ATTACH: - + hInstLib = hDLL; // Store HINSTANCE break; @@ -49,10 +49,10 @@ BOOL WINAPI DllMain(HINSTANCE hDLL, DWORD dwReason, LPVOID lpReserved) break; // The calling process is detaching the DLL from its address space. - case DLL_PROCESS_DETACH: + case DLL_PROCESS_DETACH: break; } - + return TRUE; } @@ -73,7 +73,7 @@ extern "C" int WINAPI DLLExport Initialize(mv _far *mV, int quiet) // ----------------- // Where you want to kill and initialized data opened in the above routine // Called just before freeing the DLL. -// +// extern "C" int WINAPI DLLExport Free(mv _far *mV) { // No error @@ -83,18 +83,18 @@ extern "C" int WINAPI DLLExport Free(mv _far *mV) // ============================================================================ // // GENERAL INFO -// +// // ============================================================================ // ----------------- // Get Infos // ----------------- -// -extern "C" +// +extern "C" { DWORD WINAPI DLLExport GetInfos(int info) { - + switch (info) { case KGI_VERSION: @@ -105,6 +105,12 @@ extern "C" return ForVersion; case KGI_BUILD: return MinimumBuild; + case KGI_UNICODE: + #ifdef _UNICODE + return TRUE; + #else + return FALSE; + #endif default: return 0; } @@ -116,7 +122,7 @@ extern "C" // ---------------------------------------------------------- // Fills an information structure that tells MMF2 everything // about the object, its actions, conditions and expressions -// +// short WINAPI DLLExport GetRunObjectInfos(mv _far *mV, fpKpxRunInfos infoPtr) { @@ -129,7 +135,7 @@ short WINAPI DLLExport GetRunObjectInfos(mv _far *mV, fpKpxRunInfos infoPtr) infoPtr->numOfExpressions = (short)Expressions.size(); infoPtr->editDataSize = sizeof(EDITDATA); - + MagicFlags(infoPtr->editFlags); infoPtr->windowProcPriority = WINDOWPROC_PRIORITY; @@ -138,7 +144,7 @@ short WINAPI DLLExport GetRunObjectInfos(mv _far *mV, fpKpxRunInfos infoPtr) infoPtr->identifier = IDENTIFIER; infoPtr->version = 1; - + return TRUE; } @@ -150,13 +156,13 @@ short WINAPI DLLExport GetRunObjectInfos(mv _far *mV, fpKpxRunInfos infoPtr) // Data\Runtime folder). // -LPCSTR* WINAPI DLLExport GetDependencies() +LPCTSTR* WINAPI DLLExport GetDependencies() { // Do some rSDK stuff #include "rGetDependencies.h" - - //LPCSTR szDep[] = { - // "MyDll.dll", + + //LPCTSTR szDep[] = { + // _T("MyDll.dll"), // NULL //}; @@ -190,7 +196,7 @@ void WINAPI DLLExport UnloadObject(mv _far *mV, LPEDATA edPtr, int reserved) // -------------------- // For you to update your object structure to newer versions // Called at both edit time and run time -// +// HGLOBAL WINAPI DLLExport UpdateEditStructure(mv __far *mV, void __far * OldEdPtr) { // We do nothing here @@ -205,9 +211,10 @@ HGLOBAL WINAPI DLLExport UpdateEditStructure(mv __far *mV, void __far * OldEdPtr // Called at edit time and run time. // // Call lpfnUpdate to update your file pathname (refer to the documentation) -// -void WINAPI DLLExport UpdateFileNames(mv _far *mV, LPSTR appName, LPEDATA edPtr, void (WINAPI * lpfnUpdate)(LPSTR, LPSTR)) +// +void WINAPI DLLExport UpdateFileNames(mv _far *mV, LPTSTR appName, LPEDATA edPtr, void (WINAPI * lpfnUpdate)(LPTSTR, LPTSTR)) { + } // --------------------- @@ -216,22 +223,22 @@ void WINAPI DLLExport UpdateFileNames(mv _far *mV, LPSTR appName, LPEDATA edPtr, // // Uncomment this function if you need to store an image in the image bank. // -// Note: do not forget to enable the function in the .def file +// Note: do not forget to enable the function in the .def file // if you remove the comments below. // /* int WINAPI DLLExport EnumElts (mv __far *mV, LPEDATA edPtr, ENUMELTPROC enumProc, ENUMELTPROC undoProc, LPARAM lp1, LPARAM lp2) -{ +{ int error = 0; // Replace wImgIdx with the name of the WORD variable you create within the edit structure - - // Enum images + + // Enum images if ( (error = enumProc(&edPtr->wImgIdx, IMG_TAB, lp1, lp2)) != 0 ) { - // Undo enum images - undoProc (&edPtr->wImgIdx, IMG_TAB, lp1, lp2); - } + // Undo enum images + undoProc (&edPtr->wImgIdx, IMG_TAB, lp1, lp2); + } return error; } diff --git a/rSDK/ZlibStream/EXTICON.BMP b/rSDK/ZlibStream/Icons/Icon.bmp similarity index 100% rename from rSDK/ZlibStream/EXTICON.BMP rename to rSDK/ZlibStream/Icons/Icon.bmp diff --git a/rSDK/ZlibStream/EXTIMG.BMP b/rSDK/ZlibStream/Icons/Img.bmp similarity index 100% rename from rSDK/ZlibStream/EXTIMG.BMP rename to rSDK/ZlibStream/Icons/Img.bmp diff --git a/rSDK/ZlibStream/Information.h b/rSDK/ZlibStream/Information.h index 4c830222..0706502d 100644 --- a/rSDK/ZlibStream/Information.h +++ b/rSDK/ZlibStream/Information.h @@ -3,12 +3,12 @@ // -------------------- // Basic object details -#define ObjectName "ZlibStream object" -#define ObjectAuthor "Darkwire Software" -#define ObjectCopyright "Copyright \xA9 2019 Darkwire Software" -#define ObjectComment "Compress and decompress files with Zlib without loading them into the memory. Allows several actions at once." -#define ObjectURL "http://www.dark-wire.com/" -#define ObjectHelp "Help\\ZlibStream.chm" +#define ObjectName _T("ZlibStream") +#define ObjectAuthor _T("Darkwire Software") +#define ObjectCopyright _T("Copyright \xA9 2011-2026 Darkwire Software") +#define ObjectComment _T("Compress and decompress files with Zlib without loading them into the memory. Allows several actions at once.") +#define ObjectURL _T("http://www.dark-wire.com/") +#define ObjectHelp _T("Help\\ZlibStream.chm") // If you register your object with Clickteam, change this to the ID you were given #define ObjectRegID REGID_PRIVATE diff --git a/rSDK/ZlibStream/Main.cpp b/rSDK/ZlibStream/Main.cpp index 857c206a..8c09820f 100644 --- a/rSDK/ZlibStream/Main.cpp +++ b/rSDK/ZlibStream/Main.cpp @@ -1,7 +1,7 @@ // ============================================================================ // // This file contains the actions, conditions and expressions your object uses -// +// // ============================================================================ #include "Common.h" @@ -12,7 +12,7 @@ { \ Sleep(0); \ } \ - rdPtr -> threadsafe=true + rdPtr -> threadsafe=true #define ThreadSafe_End() rdPtr -> threadsafe=false //Macro for simplicity #define Terminate() \ @@ -21,13 +21,13 @@ rdPtr -> LastOutput = outfilename; \ rdPtr -> rRd -> CallEvent(1); \ ThreadSafe_End(); \ - return 1 + return 1 // Please note: Using GenerateEvent in place of PushEvent is not a good idea, being that // access to rdPtr is blocked by ThreadSafe_Start. Example code: -// ThreadSafe_Start(); -// rdPtr -> GenerateEvent(0); -// ThreadSafe_End(); +// ThreadSafe_Start(); +// rdPtr -> GenerateEvent(0); +// ThreadSafe_End(); // If the user retrieves expressions with GenerateEvent, the ThreadSafe_End is not run // until after they retrieve the variables. So of course the while loop in ThreadSafe_Start // runs without stopping. @@ -39,401 +39,416 @@ //Define struct used to export data from actions to threads struct Params { - char para_infilename [MAX_PATH]; // Input file name - char para_outfilename [MAX_PATH]; // Output file name - bool para_UseAppend; // If true, append; otherwise (over)write output - LPRDATA para_rdPtr; //rdPtr (must be given or threads cannot access rdPtr) + TCHAR para_infilename [MAX_PATH]; //Input file name + TCHAR para_outfilename [MAX_PATH]; //Output file name + bool para_UseAppend; //If true, append; otherwise (over)write output + LPRDATA para_rdPtr; //rdPtr (must be given or threads cannot access rdPtr) }; //Calculate file size -unsigned long file_size(char *filename) { - FILE *pFile = NULL; - if (fopen_s(&pFile, filename, "rb")) // Open file - return 0; // If handle has a problem, return 0, eg no file - fseek(pFile, 0, SEEK_END); // If not, goto end of file - unsigned long size = ftell(pFile); //Get position (Must be stored so fclose can be run) - fclose(pFile); // Close file - return size; // Return +unsigned long file_size(TCHAR *filename) { + FILE *pFile = NULL; + if (_tfopen_s(&pFile, filename, _T("rb"))) // Open file + return 0; // If handle has a problem, return 0, eg no file + fseek(pFile, 0, SEEK_END); //If not, goto end of file + unsigned long size = ftell(pFile); //Get position (Must be stored so fclose can be run) + fclose(pFile); //Close file + return size; //Return } -bool FileSizeCheck(char *infilename, LPRDATA rdPtr) +bool FileSizeCheck(TCHAR *infilename, LPRDATA rdPtr) { - if (file_size(infilename) < 1) - { - ThreadSafe_Start(); - rdPtr -> returnstring = "Input file size 0 or nonexistent."; - ThreadSafe_End(); - return true; - } - else - return false; + if (file_size(infilename) < 1) + { + ThreadSafe_Start(); + rdPtr -> returnstring = _T("Input file size 0 or nonexistent."); + ThreadSafe_End(); + return true; + } + else + return false; } bool HandleCheck(FILE *file, gzFile gzfile, LPRDATA rdPtr) { - if (!file) - { - ThreadSafe_Start(); - rdPtr -> returnstring = "Input file malfunctioned."; - gzclose(gzfile); - ThreadSafe_End(); - return true; - } - else if (!gzfile) - { - ThreadSafe_Start(); - rdPtr -> returnstring = "Output file malfunctioned."; - fclose(file); - ThreadSafe_End(); - return true; - } - else - { - return false; - } + if (!file) + { + ThreadSafe_Start(); + rdPtr -> returnstring = _T("Input file malfunctioned."); + gzclose(gzfile); + ThreadSafe_End(); + return true; + } + else if (!gzfile) + { + ThreadSafe_Start(); + rdPtr -> returnstring = _T("Output file malfunctioned."); + fclose(file); + ThreadSafe_End(); + return true; + } + else + { + return false; + } } //Compress a file DWORD WINAPI compress_one_file(Params *pDataArray) -{ - //Open struct and set variables - char *infilename = new char [MAX_PATH]; // Get input file name - strcpy_s(infilename, MAX_PATH, pDataArray -> para_infilename); - char *outfilename = new char [MAX_PATH]; // Get output file name - strcpy_s(outfilename, MAX_PATH, pDataArray -> para_outfilename); - bool UseAppend = pDataArray -> para_UseAppend; // G et whether to append or write - LPRDATA rdPtr = pDataArray -> para_rdPtr; //Get rdPtr - delete pDataArray; // Container is expendable - - char * WriteType = "wb9"; //User is using write (overwriting) - if (UseAppend) WriteType = "ab9"; // User is using append - +{ + //Open struct and set variables + TCHAR *infilename = new TCHAR [MAX_PATH]; //Get input file name + _tcscpy_s(infilename, MAX_PATH, pDataArray -> para_infilename); + TCHAR *outfilename = new TCHAR [MAX_PATH]; //Get output file name + _tcscpy_s(outfilename, MAX_PATH, pDataArray -> para_outfilename); + bool UseAppend = pDataArray -> para_UseAppend; //G et whether to append or write + LPRDATA rdPtr = pDataArray -> para_rdPtr; //Get rdPtr + delete pDataArray; //Container is expendable + + const char * WriteType = "wb9"; //User is using write (overwriting) + if (UseAppend) WriteType = "ab9"; //User is using append + //Check input file size - no handles to close - if (FileSizeCheck(infilename, rdPtr)) {Terminate();} + if (FileSizeCheck(infilename, rdPtr)) {Terminate();} - //Open handles to both files - FILE *infile = fopen(infilename, "rb"); // r = read, b = binary - gzFile outfile = gzopen(outfilename, WriteType); // a = append (or w=write), b = binary, 9 = max compression + //Open handles to both files + FILE *infile = _tfopen(infilename, _T("rb")); //r = read, b = binary + //gzFile outfile = gzopen(outfilename, WriteType); //a = append (or w=write), b = binary, 9 = max compression + gzFile outfile = t_gzopen(outfilename, WriteType); + //Check handles - HandleCheck() automatically closes handles if invalid - if (HandleCheck(infile, outfile, rdPtr)) {Terminate();} + if (HandleCheck(infile, outfile, rdPtr)) {Terminate();} - //Declare variables - unsigned long PreviousOutputSize = 0; // For calculation purposes - signed int num_read = 0; - unsigned long total_read = 0; - ThreadSafe_Start(); - unsigned short tempinbuffersize = rdPtr -> inbuffersize; - ThreadSafe_End(); + //Declare variables + unsigned long PreviousOutputSize = 0; //For calculation purposes + signed int num_read = 0; + unsigned long total_read = 0; + ThreadSafe_Start(); + unsigned short tempinbuffersize = rdPtr -> inbuffersize; + ThreadSafe_End(); //If using Write, output size should not be included in the calculation later. Otherwise: - if (UseAppend) PreviousOutputSize = file_size(outfilename); - - //This makes sure that the buffer is the right size - if too large, set buffer smaller - if ( file_size(infilename) < tempinbuffersize) - tempinbuffersize = (unsigned short)file_size(infilename); - - //Then declare final variable, the buffer - char *inbuffer = new char[tempinbuffersize]; - - //Iteration through the files - while ((num_read = fread(inbuffer, 1, tempinbuffersize, infile)) > 0) - { - total_read += num_read; - gzwrite(outfile, inbuffer, num_read); - } - - //Close thread - fclose(infile); - gzclose(outfile); - delete[] inbuffer, infilename, outfilename; + if (UseAppend) PreviousOutputSize = file_size(outfilename); + + //This makes sure that the buffer is the right size - if too large, set buffer smaller + if ( file_size(infilename) < tempinbuffersize) + tempinbuffersize = (unsigned short)file_size(infilename); + + //Then declare final variable, the buffer + char *inbuffer = new char[tempinbuffersize]; + + //Iteration through the files + while ((num_read = fread(inbuffer, 1, tempinbuffersize, infile)) > 0) + { + total_read += num_read; + gzwrite(outfile, inbuffer, num_read); + } + + //Close thread + fclose(infile); + gzclose(outfile); + delete[] inbuffer, infilename, outfilename; + //delete[] inbuffer; + //delete[] infilename; + //delete[] outfilename; //Set variables afnter completion - ThreadSafe_Start(); + ThreadSafe_Start(); unsigned long saveoutfilesize = file_size(outfilename); unsigned long saveinfilesize = file_size(infilename); - rdPtr -> PercentageDifference = ((file_size(outfilename)-PreviousOutputSize)*(1.0/file_size(infilename)))*100.0; - - stringstream temp; - temp <<"Buffer used: " - << tempinbuffersize - <<", total bytes read: " - << file_size(infilename) - <<", total bytes written: " - << file_size(outfilename)-PreviousOutputSize - <<", compression rate: " - << rdPtr -> PercentageDifference - <<"%."; - rdPtr -> returnstring = temp.str(); - temp.flush(); - rdPtr -> LastOutput = outfilename; - rdPtr -> rRd -> PushEvent(0); - ThreadSafe_End(); - return 0; + rdPtr -> PercentageDifference = ((file_size(outfilename)-PreviousOutputSize)*(1.0/file_size(infilename)))*100.0; + + tstringstream temp; + temp << _T("Buffer used: ") + << tempinbuffersize + << _T(", total bytes read: ") + << file_size(infilename) + << _T(", total bytes written: ") + << file_size(outfilename)-PreviousOutputSize + << _T(", compression rate: ") + << rdPtr -> PercentageDifference + << _T("%."); + rdPtr -> returnstring = temp.str(); + temp.flush(); + //temp.str(_T("")); + //temp.clear(); + rdPtr -> LastOutput = outfilename; + rdPtr -> rRd -> PushEvent(0); + ThreadSafe_End(); + return 0; } //Decompress a file DWORD WINAPI decompress_one_file(Params *pDataArray) -{ - //Open struct and set variables - char *infilename = new char [MAX_PATH]; // Get input file name - strcpy_s(infilename, MAX_PATH, pDataArray -> para_infilename); - char *outfilename = new char [MAX_PATH]; // Get output file name - strcpy_s(outfilename, MAX_PATH, pDataArray -> para_outfilename); - bool UseAppend = pDataArray -> para_UseAppend; // Get whether to append or write - LPRDATA rdPtr = pDataArray -> para_rdPtr; //Get rdPtr - delete pDataArray; // Container is expendable - - char * WriteType = "wb"; //User is using write (overwriting) - if (UseAppend) WriteType = "ab"; // User is using append - - if (FileSizeCheck(infilename, rdPtr)) {Terminate();} - //Open handles to both files - gzFile infile = gzopen(infilename, "rb"); // r = read, b = binary - FILE *outfile = fopen(outfilename, WriteType); // a = append or w = write, b = binary - - if (HandleCheck(outfile, infile, rdPtr)) {Terminate();} - //Declare variables - unsigned long PreviousOutputSize = 0; // For calculation purposes - int num_read = 0; - unsigned long total_read = 0; - ThreadSafe_Start(); - unsigned short tempinbuffersize = rdPtr -> inbuffersize; - ThreadSafe_End(); - +{ + //Open struct and set variables + TCHAR *infilename = new TCHAR [MAX_PATH]; //Get input file name + _tcscpy_s(infilename, MAX_PATH, pDataArray -> para_infilename); + TCHAR *outfilename = new TCHAR [MAX_PATH]; //Get output file name + _tcscpy_s(outfilename, MAX_PATH, pDataArray -> para_outfilename); + bool UseAppend = pDataArray -> para_UseAppend; //Get whether to append or write + LPRDATA rdPtr = pDataArray -> para_rdPtr; //Get rdPtr + delete pDataArray; //Container is expendable + + TCHAR * WriteType = _T("wb"); //User is using write (overwriting) + if (UseAppend) WriteType = _T("ab"); //User is using append + + if (FileSizeCheck(infilename, rdPtr)) {Terminate();} + //Open handles to both files + //gzFile infile = gzopen(infilename, "rb"); //r = read, b = binary + + gzFile infile = t_gzopen(infilename, "rb"); + + FILE *outfile = _tfopen(outfilename, WriteType); //a = append or w = write, b = binary + + if (HandleCheck(outfile, infile, rdPtr)) {Terminate();} + //Declare variables + unsigned long PreviousOutputSize = 0; //For calculation purposes + int num_read = 0; + unsigned long total_read = 0; + ThreadSafe_Start(); + unsigned short tempinbuffersize = rdPtr -> inbuffersize; + ThreadSafe_End(); + //If using Write, output size should not be included in the calculation later. Otherwise: - if (UseAppend) PreviousOutputSize = file_size(outfilename); - + if (UseAppend) PreviousOutputSize = file_size(outfilename); + //This makes sure that the buffer is the right size - if too large, set buffer smaller - if ( file_size(infilename) < tempinbuffersize) - tempinbuffersize = (unsigned short)file_size(infilename); - - //Then declare final variable, the buffer - char *inbuffer = new char[tempinbuffersize]; - - //Iteration through the files - while ((num_read = gzread(infile, inbuffer, tempinbuffersize)) > 0) - { - total_read += num_read; - fwrite(inbuffer, 1, num_read, outfile); - } - - //Close thread - gzclose(infile); - fclose(outfile); - delete[] inbuffer, infilename, outfilename; - - //Set variables after completion - ThreadSafe_Start(); - rdPtr -> PercentageDifference = ((file_size(outfilename)-PreviousOutputSize)*(1.0/file_size(infilename)))*100.0; - stringstream temp; - temp <<"Buffer used: " - << tempinbuffersize - <<", total bytes read: " - << file_size(infilename) - <<", total bytes written: " - << file_size(outfilename)-PreviousOutputSize - <<", decompression rate: " - << rdPtr -> PercentageDifference - <<"%."; - rdPtr -> returnstring = temp.str(); - temp.flush(); - rdPtr -> LastOutput = outfilename; - rdPtr -> rRd -> CallEvent(0); - ThreadSafe_End(); - return 0; + if ( file_size(infilename) < tempinbuffersize) + tempinbuffersize = (unsigned short)file_size(infilename); + + //Then declare final variable, the buffer + TCHAR *inbuffer = new TCHAR[tempinbuffersize]; + + //Iteration through the files + while ((num_read = gzread(infile, inbuffer, tempinbuffersize)) > 0) + { + total_read += num_read; + fwrite(inbuffer, 1, num_read, outfile); + } + + //Close thread + gzclose(infile); + fclose(outfile); + delete[] inbuffer, infilename, outfilename; + //delete[] inbuffer; + //delete[] infilename; + //delete[] outfilename; + + //Set variables after completion + ThreadSafe_Start(); + rdPtr -> PercentageDifference = ((file_size(outfilename)-PreviousOutputSize)*(1.0/file_size(infilename)))*100.0; + tstringstream temp; + temp <<_T("Buffer used: ") + << tempinbuffersize + << _T(", total bytes read: ") + << file_size(infilename) + << _T(", total bytes written: ") + << file_size(outfilename)-PreviousOutputSize + << _T(", decompression rate: ") + << rdPtr -> PercentageDifference + << _T("%."); + rdPtr -> returnstring = temp.str(); + temp.flush(); + //temp.str(_T("")); + //temp.clear(); + rdPtr -> LastOutput = outfilename; + rdPtr -> rRd -> CallEvent(0); + ThreadSafe_End(); + return 0; } // ============================================================================ // // CONDITIONS -// +// // ============================================================================ CONDITION( - /* ID */ 0, - /* Name */ "%o: On success", - /* Flags */ 0, - /* Params */ (0) + /* ID */ 0, + /* Name */ "%o: On success", + /* Flags */ 0, + /* Params */ (0) ) { - return true; + return true; } CONDITION( - /* ID */ 1, - /* Name */ "%o: On error", - /* Flags */ 0, - /* Params */ (0) + /* ID */ 1, + /* Name */ "%o: On error", + /* Flags */ 0, + /* Params */ (0) ) { - return true; + return true; } // ============================================================================ // // ACTIONS -// +// // ============================================================================ -ACTION( // Old compress function - /* ID */ 0, - /* Name */ "<> Compress a file (%0) --> (%1)", - /* Flags */ 0, - /* Params */ (2, PARAM_STRING, "Input file:", PARAM_STRING, "Output file:") +ACTION( //Old compress function + /* ID */ 0, + /* Name */ "<> Compress a file (%0) --> (%1)", + /* Flags */ 0, + /* Params */ (2, PARAM_STRING, _T("Input file:"), PARAM_STRING, _T("Output file:")) ) { //Old version of compress action: Notify user - MessageBoxA(NULL, "Sorry to interrupt your programming, but you have\nan old \"Compress file\" action in ZlibStream which needs replacing.\nClick the ZlibStream icon in your event editor to see all the events\nZlibStream is in.", "Darkwire Software - Old Event Notice", MB_OK); + MessageBox(NULL, _T("Sorry to interrupt your programming, but you have\nan old \"Compress file\" action in ZlibStream which needs replacing.\nClick the ZlibStream icon in your event editor to see all the events\nZlibStream is in."), _T("Darkwire Software - Old Event Notice"), MB_OK); } -ACTION( // Old decompress function - /* ID */ 1, - /* Name */ "<> Decompress a file (%0) --> (%1)", - /* Flags */ 0, - /* Params */ (2, PARAM_STRING, "Input file:", PARAM_STRING, "Output file:") +ACTION( //Old decompress function + /* ID */ 1, + /* Name */ "<> Decompress a file (%0) --> (%1)", + /* Flags */ 0, + /* Params */ (2, PARAM_STRING, _T("Input file:"), PARAM_STRING, _T("Output file:")) ) { - //Old version of decompress action: Notify user - MessageBoxA(NULL, "Sorry to interrupt your programming, but you have\nan old \"Decompress file\" action in ZlibStream which needs replacing.\nClick the ZlibStream icon in your event editor to see all the events\nZlibStream is in.", "Darkwire Software - Old Event Notice", MB_OK); + //Old version of decompress action: Notify user + MessageBox(NULL, _T("Sorry to interrupt your programming, but you have\nan old \"Decompress file\" action in ZlibStream which needs replacing.\nClick the ZlibStream icon in your event editor to see all the events\nZlibStream is in."), _T("Darkwire Software - Old Event Notice"), MB_OK); } ACTION( - /* ID */ 2, - /* Name */ "Set buffer size to %0 bytes", - /* Flags */ 0, - /* Params */ (1, PARAM_NUMBER, "Buffer size (1 to 16384 bytes):") + /* ID */ 2, + /* Name */ "Set buffer size to %0 bytes", + /* Flags */ 0, + /* Params */ (1, PARAM_NUMBER, _T("Buffer size (1 to 16384 bytes):")) ) { - int p1 = Param(TYPE_INT); - ThreadSafe_Start(); - if (p1 > 0 && p1 < 16385) - rdPtr -> inbuffersize = p1; - else - { - rdPtr -> returnstring = "Buffer is an invalid size. Must be between 0 and 16385 (exclusive)."; - rdPtr -> rRd -> CallEvent(1); - } - ThreadSafe_End(); + int p1 = Param(TYPE_INT); + ThreadSafe_Start(); + if (p1 > 0 && p1 < 16385) + rdPtr -> inbuffersize = p1; + else + { + rdPtr -> returnstring = _T("Buffer is an invalid size. Must be between 0 and 16385 (exclusive)."); + rdPtr -> rRd -> CallEvent(1); + } + ThreadSafe_End(); } ACTION( - /* ID */ 3, - /* Name */ "Compress a file (%0) --> (%1), append = %2", - /* Flags */ 0, - /* Params */ (3, PARAM_STRING, "Input file:", PARAM_STRING, "Output file:", PARAM_NUMBER, "Append if output file already exists? (0 for overwriting, 1 for adding to end)") + /* ID */ 3, + /* Name */ "Compress a file (%0) --> (%1), append = %2", + /* Flags */ 0, + /* Params */ (3, PARAM_STRING, _T("Input file:"), PARAM_STRING, _T("Output file:"), PARAM_NUMBER, _T("Append if output file already exists? (0 for overwriting, 1 for adding to end)")) ) { - //Retrieve variables from parameters - char *p1 = (char *) Param(TYPE_STRING); - char *p2 = (char *) Param(TYPE_STRING); - int p3 = Param(TYPE_INT); - + //Retrieve variables from parameters + TCHAR *p1 = (TCHAR *) Param(TYPE_STRING); + TCHAR *p2 = (TCHAR *) Param(TYPE_STRING); + int p3 = Param(TYPE_INT); + //Set bool for simplicity bool temp = false; if (p3 != 0) temp = true; - //Declare struct and set variables in struct - Params* Parameters = new Params; // Declaration - strcpy_s(Parameters -> para_infilename, MAX_PATH, p1); // Pass the input file name - strcpy_s(Parameters -> para_outfilename, MAX_PATH, p2); // Pass the output file name - Parameters -> para_UseAppend = temp; // Pass the append command - Parameters -> para_rdPtr = rdPtr; // Pass rdPtr - + //Declare struct and set variables in struct + Params* Parameters = new Params; //Declaration + _tcscpy_s(Parameters -> para_infilename, MAX_PATH, p1); //Pass the input file name + _tcscpy_s(Parameters -> para_outfilename, MAX_PATH, p2); //Pass the output file name + Parameters -> para_UseAppend = temp; //Pass the append command + Parameters -> para_rdPtr = rdPtr; //Pass rdPtr + //Create thread - CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)&compress_one_file, Parameters, 0, NULL); + CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)&compress_one_file, Parameters, 0, NULL); } ACTION( - /* ID */ 4, - /* Name */ "Decompress a file (%0) --> (%1), append = %2", - /* Flags */ 0, - /* Params */ (3, PARAM_STRING, "Input file:", PARAM_STRING, "Output file:", PARAM_NUMBER, "Append if output file already exists? (0 for overwriting, 1 for adding to end)") + /* ID */ 4, + /* Name */ "Decompress a file (%0) --> (%1), append = %2", + /* Flags */ 0, + /* Params */ (3, PARAM_STRING, _T("Input file:"), PARAM_STRING, _T("Output file:"), PARAM_NUMBER, _T("Append if output file already exists? (0 for overwriting, 1 for adding to end)")) ) { - //Retrieve variables from parameters - char *p1 = (char *) Param(TYPE_STRING); - char *p2 = (char *) Param(TYPE_STRING); - int p3 = Param(TYPE_INT); - + //Retrieve variables from parameters + TCHAR *p1 = (TCHAR *) Param(TYPE_STRING); + TCHAR *p2 = (TCHAR *) Param(TYPE_STRING); + int p3 = Param(TYPE_INT); + //Set bool for simplicity bool temp = false; if (p3 != 0) temp = true; - //Declare struct and set variables in struct - Params* Parameters = new Params; // Declaration - strcpy_s(Parameters -> para_infilename, MAX_PATH, p1); // Pass the input file name - strcpy_s(Parameters -> para_outfilename, MAX_PATH, p2); // Pass the output file name - Parameters -> para_UseAppend = temp; // Pass the append command - Parameters -> para_rdPtr = rdPtr; // Pass rdPtr - - //Create thread - CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)&decompress_one_file, Parameters, 0, NULL); + //Declare struct and set variables in struct + Params* Parameters = new Params; //Declaration + _tcscpy_s(Parameters -> para_infilename, MAX_PATH, p1); //Pass the input file name + _tcscpy_s(Parameters -> para_outfilename, MAX_PATH, p2); //Pass the output file name + Parameters -> para_UseAppend = temp; //Pass the append command + Parameters -> para_rdPtr = rdPtr; //Pass rdPtr + + //Create thread + CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)&decompress_one_file, Parameters, 0, NULL); } // ============================================================================ // // EXPRESSIONS -// +// // ============================================================================ EXPRESSION( - /* ID */ 0, - /* Name */ "ReturnedCode(", - /* Flags */ 0, - /* Params */ (0) + /* ID */ 0, + /* Name */ "ReturnedCode(", + /* Flags */ 0, + /* Params */ (0) ) { - //Deprecated variable: Notify user - MessageBoxA(NULL, "Sorry to interrupt your programming, but you have\nan old \"ReturnedCode()\" expression from ZlibStream which is removed.\nClick the ZlibStream icon in your event editor to see all the events\nZlibStream is in.", "Darkwire Software - Old Expression Notice", MB_OK); + //Deprecated variable: Notify user + MessageBox(NULL, _T("Sorry to interrupt your programming, but you have\nan old \"ReturnedCode()\" expression from ZlibStream which is removed.\nClick the ZlibStream icon in your event editor to see all the events\nZlibStream is in."), _T("Darkwire Software - Old Expression Notice"), MB_OK); return false; } EXPRESSION( - /* ID */ 1, - /* Name */ "ReturnedString$(", - /* Flags */ EXPFLAG_STRING, - /* Params */ (0) + /* ID */ 1, + /* Name */ "ReturnedString$(", + /* Flags */ EXPFLAG_STRING, + /* Params */ (0) ) { - ThreadSafe_Start(); - string temp = rdPtr -> returnstring; - ThreadSafe_End(); - ReturnStringSafe(temp.c_str()); + ThreadSafe_Start(); + tstring temp = rdPtr -> returnstring; + ThreadSafe_End(); + ReturnStringSafe(temp.c_str()); } EXPRESSION( - /* ID */ 2, - /* Name */ "BufferSize(", - /* Flags */ 0, - /* Params */ (0) + /* ID */ 2, + /* Name */ "BufferSize(", + /* Flags */ 0, + /* Params */ (0) ) { - ThreadSafe_Start(); - unsigned short temp = rdPtr -> inbuffersize; - ThreadSafe_End(); - return temp; + ThreadSafe_Start(); + unsigned short temp = rdPtr -> inbuffersize; + ThreadSafe_End(); + return temp; } EXPRESSION( - /* ID */ 3, - /* Name */ "Percentage(", - /* Flags */ EXPFLAG_DOUBLE, - /* Params */ (0) + /* ID */ 3, + /* Name */ "Percentage(", + /* Flags */ EXPFLAG_DOUBLE, + /* Params */ (0) ) { ThreadSafe_Start(); double temp = rdPtr -> PercentageDifference; - ThreadSafe_End(); + ThreadSafe_End(); //This casts to 2 decimal places - char sprintfdest[20]; - sprintf(sprintfdest,"%.2f", temp); - float temp2 = (float)atof(sprintfdest); + TCHAR sprintfdest[20]; + _stprintf(sprintfdest,_T("%.2f"), temp); + float temp2 = (float)_tstof(sprintfdest); //Voila - ReturnFloat(temp2); + ReturnFloat(temp2); } EXPRESSION( - /* ID */ 4, - /* Name */ "LastOutputFile$(", - /* Flags */ EXPFLAG_STRING, - /* Params */ (0) + /* ID */ 4, + /* Name */ "LastOutputFile$(", + /* Flags */ EXPFLAG_STRING, + /* Params */ (0) ) { - ThreadSafe_Start(); - string temp = rdPtr -> LastOutput; - ThreadSafe_End(); - ReturnStringSafe(temp.c_str()); + ThreadSafe_Start(); + tstring temp = rdPtr -> LastOutput; + ThreadSafe_End(); + ReturnStringSafe(temp.c_str()); } \ No newline at end of file diff --git a/rSDK/ZlibStream/Runtime.cpp b/rSDK/ZlibStream/Runtime.cpp index 97fe6a47..c2ee1db6 100644 --- a/rSDK/ZlibStream/Runtime.cpp +++ b/rSDK/ZlibStream/Runtime.cpp @@ -26,15 +26,15 @@ short WINAPI DLLExport GetRunObjectDataSize(fprh rhPtr, LPEDATA edPtr) short WINAPI DLLExport CreateRunObject(LPRDATA rdPtr, LPEDATA edPtr, fpcob cobPtr) { // Do some rSDK stuff - new (rdPtr) RUNDATA; // Call rdPtr's Constructor + new (rdPtr) RUNDATA; //Call rdPtr's Constructor #include "rCreateRunObject.h" /* - This routine runs when your object is created, as you might have guessed. - It is here that you must transfer any data you need in rdPtr from edPtr, - because after this has finished you cannot access it again! - Also, if you have anything to initialise (e.g. dynamic arrays, surface objects) - you should do it here, and free your resources in DestroyRunObject. - See Graphic_Object_Ex.txt for an example of what you may put here. + This routine runs when your object is created, as you might have guessed. + It is here that you must transfer any data you need in rdPtr from edPtr, + because after this has finished you cannot access it again! + Also, if you have anything to initialise (e.g. dynamic arrays, surface objects) + you should do it here, and free your resources in DestroyRunObject. + See Graphic_Object_Ex.txt for an example of what you may put here. */ // No errors @@ -50,9 +50,9 @@ short WINAPI DLLExport CreateRunObject(LPRDATA rdPtr, LPEDATA edPtr, fpcob cobPt short WINAPI DLLExport DestroyRunObject(LPRDATA rdPtr, long fast) { /* - When your object is destroyed (either with a Destroy action or at the end of - the frame) this routine is called. You must free any resources you have allocated! - See Graphic_Object_Ex.txt for an example of what you may put here. + When your object is destroyed (either with a Destroy action or at the end of + the frame) this routine is called. You must free any resources you have allocated! + See Graphic_Object_Ex.txt for an example of what you may put here. */ // No errors delete rdPtr->rRd; @@ -66,32 +66,32 @@ short WINAPI DLLExport DestroyRunObject(LPRDATA rdPtr, long fast) // short WINAPI DLLExport HandleRunObject(LPRDATA rdPtr) { - //Needs to add fixed value to vector array - /* - If your extension will draw to the MMF window you should first - check if anything about its display has changed : + //Needs to add fixed value to vector array +/* + If your extension will draw to the MMF window you should first + check if anything about its display has changed : - return rdPtr->roc.rcChanged?REFLAG_DISPLAY:0; + return rdPtr->roc.rcChanged?REFLAG_DISPLAY:0; - You will also need to make sure you change this flag yourself - to 1 whenever you want to redraw your object + You will also need to make sure you change this flag yourself + to 1 whenever you want to redraw your object - If your extension won't draw to the window, but it still needs - to do something every MMF loop use : + If your extension won't draw to the window, but it still needs + to do something every MMF loop use : - return 0; + return 0; - If you don't need to do something every loop, use : + If you don't need to do something every loop, use : - return REFLAG_ONESHOT; + return REFLAG_ONESHOT; - This doesn't mean this function can never run again. If you want MMF - to handle your object again (causing this code to run) use this function: + This doesn't mean this function can never run again. If you want MMF + to handle your object again (causing this code to run) use this function: - rdPtr->rRd->Rehandle(); + rdPtr->rRd->Rehandle(); - At the end of the loop this code will run - */ + At the end of the loop this code will run +*/ return 0; } @@ -103,8 +103,8 @@ short WINAPI DLLExport HandleRunObject(LPRDATA rdPtr) short WINAPI DLLExport DisplayRunObject(LPRDATA rdPtr) { /* - If you return REFLAG_DISPLAY in HandleRunObject this routine will run. - See Graphic_Object_Ex.txt for an example of what you may put here. + If you return REFLAG_DISPLAY in HandleRunObject this routine will run. + See Graphic_Object_Ex.txt for an example of what you may put here. */ // Ok return 0; @@ -357,14 +357,14 @@ LPWORD WINAPI DLLExport GetDebugTree(LPRDATA rdPtr) // ----------------- // This routine returns the text of a given item. // -void WINAPI DLLExport GetDebugItem(LPSTR pBuffer, LPRDATA rdPtr, int id) +void WINAPI DLLExport GetDebugItem(LPTSTR pBuffer, LPRDATA rdPtr, int id) { #if !defined(RUN_ONLY) // Example // ------- /* - char temp[DB_BUFFERSIZE]; + TCHAR temp[DB_BUFFERSIZE]; switch (id) { @@ -410,16 +410,16 @@ void WINAPI DLLExport EditDebugItem(LPRDATA rdPtr, int id) case DB_CURRENTSTRING: { EditDebugInfo dbi; - char buffer[256]; + TCHAR buffer[256]; dbi.pText=buffer; dbi.lText=TEXT_MAX; dbi.pTitle=NULL; - strcpy(buffer, rdPtr->text); + _tcscpy(buffer, rdPtr->text); long ret=callRunTimeFunction(rdPtr, RFUNCTION_EDITTEXT, 0, (LPARAM)&dbi); if (ret) - strcpy(rdPtr->text, dbi.pText); + _tcscpy(rdPtr->text, dbi.pText); } break; case DB_CURRENTVALUE: From 2de8dbbf0b20aaef57f6de61c8602c3eb7eef609 Mon Sep 17 00:00:00 2001 From: RainbowHype123 Date: Tue, 14 Jul 2026 16:46:31 -0700 Subject: [PATCH 2/3] Update VOLINFO Project file names To ensure that the SLNs for compiling all the exts doesn't run into an error with them due to mismatched filenames. --- .../VOLINFO/{MMF2SDK - VOLINFO.vcxproj => VOLINFO.vcxproj} | 0 ...{MMF2SDK - VOLINFO.vcxproj.filters => VOLINFO.vcxproj.filters} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename MMF2SDK_Unicode/VOLINFO/{MMF2SDK - VOLINFO.vcxproj => VOLINFO.vcxproj} (100%) rename MMF2SDK_Unicode/VOLINFO/{MMF2SDK - VOLINFO.vcxproj.filters => VOLINFO.vcxproj.filters} (100%) diff --git a/MMF2SDK_Unicode/VOLINFO/MMF2SDK - VOLINFO.vcxproj b/MMF2SDK_Unicode/VOLINFO/VOLINFO.vcxproj similarity index 100% rename from MMF2SDK_Unicode/VOLINFO/MMF2SDK - VOLINFO.vcxproj rename to MMF2SDK_Unicode/VOLINFO/VOLINFO.vcxproj diff --git a/MMF2SDK_Unicode/VOLINFO/MMF2SDK - VOLINFO.vcxproj.filters b/MMF2SDK_Unicode/VOLINFO/VOLINFO.vcxproj.filters similarity index 100% rename from MMF2SDK_Unicode/VOLINFO/MMF2SDK - VOLINFO.vcxproj.filters rename to MMF2SDK_Unicode/VOLINFO/VOLINFO.vcxproj.filters From d4fca23111b30ef0d231ca73510b8b6cc84fa584 Mon Sep 17 00:00:00 2001 From: RainbowHype123 Date: Thu, 16 Jul 2026 15:26:06 -0700 Subject: [PATCH 3/3] Update DE template JS files Changed one specific comment in both of them that's meant to prevent confusion between "getNumOfConditions" and "getNumberOfConditions" --- DarkEdif/DarkEdif Template/HTML5/DarkEdif_Template.js | 2 +- .../Wua/js/runtime/extensions/source/DarkEdif_Template.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/DarkEdif/DarkEdif Template/HTML5/DarkEdif_Template.js b/DarkEdif/DarkEdif Template/HTML5/DarkEdif_Template.js index 0ce08869..219a16da 100644 --- a/DarkEdif/DarkEdif Template/HTML5/DarkEdif_Template.js +++ b/DarkEdif/DarkEdif Template/HTML5/DarkEdif_Template.js @@ -549,7 +549,7 @@ function CRunDarkEdif_Template() { this.$conditionFuncs = [ /* 0 */ this.Condition_AreTwoNumbersEqual - // update getNumOfConditions function if you edit this!!!! + // update getNumberOfConditions function if you edit this!!!! ]; this.$expressionFuncs = [ /* 0 */ this.Expression_Add, diff --git a/DarkEdif/DarkEdif Template/Wua/js/runtime/extensions/source/DarkEdif_Template.js b/DarkEdif/DarkEdif Template/Wua/js/runtime/extensions/source/DarkEdif_Template.js index ac4d0e5f..9b4905c2 100644 --- a/DarkEdif/DarkEdif Template/Wua/js/runtime/extensions/source/DarkEdif_Template.js +++ b/DarkEdif/DarkEdif Template/Wua/js/runtime/extensions/source/DarkEdif_Template.js @@ -554,7 +554,7 @@ function CRunDarkEdif_Template() { this.$conditionFuncs = [ /* 0 */ this.Condition_AreTwoNumbersEqual - // update getNumOfConditions function if you edit this!!!! + // update getNumberOfConditions function if you edit this!!!! ]; this.$expressionFuncs = [ /* 0 */ this.Expression_Add,