From 64b1e43805b5f5e77128c7b2258ec7453a0fd851 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Mon, 27 Oct 2025 11:40:16 +0800 Subject: [PATCH 01/24] update:depend library --- XEngine_Source/XEngine_DependLibrary | 2 +- XEngine_Source/XEngine_StorageApp.sln | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/XEngine_Source/XEngine_DependLibrary b/XEngine_Source/XEngine_DependLibrary index 5ec8724..b6bed0e 160000 --- a/XEngine_Source/XEngine_DependLibrary +++ b/XEngine_Source/XEngine_DependLibrary @@ -1 +1 @@ -Subproject commit 5ec8724772e4eb6e62733c9582aa10f1fe54c82f +Subproject commit b6bed0eeb6e91426ff1a9bbe31e40fcdcdf0a184 diff --git a/XEngine_Source/XEngine_StorageApp.sln b/XEngine_Source/XEngine_StorageApp.sln index 4f6e796..0cac937 100644 --- a/XEngine_Source/XEngine_StorageApp.sln +++ b/XEngine_Source/XEngine_StorageApp.sln @@ -73,6 +73,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_InfoReport", "XEngi EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_Verification", "XEngine_DependLibrary\XEngine_Module\XEngine_Verification\XEngine_Verification.vcxproj", "{A8E43EC0-698A-4807-8A61-B2BE5FAB7256}" + ProjectSection(ProjectDependencies) = postProject + {F1736B3F-03A2-4FC7-B045-A12BA8D724FB} = {F1736B3F-03A2-4FC7-B045-A12BA8D724FB} + EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution From 750e65b3b7739d79b620acf0c306192c7bfc1933 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Mon, 27 Oct 2025 11:40:25 +0800 Subject: [PATCH 02/24] update:vs copy file --- XEngine_Source/VSCopy_Arm64.bat | 3 +++ XEngine_Source/VSCopy_Debug.bat | 3 +++ XEngine_Source/VSCopy_x64.bat | 3 +++ XEngine_Source/VSCopy_x86.bat | 3 +++ 4 files changed, 12 insertions(+) diff --git a/XEngine_Source/VSCopy_Arm64.bat b/XEngine_Source/VSCopy_Arm64.bat index 2220d92..450a7fb 100644 --- a/XEngine_Source/VSCopy_Arm64.bat +++ b/XEngine_Source/VSCopy_Arm64.bat @@ -7,7 +7,10 @@ copy /y "%XEngine_LibArm64%\XEngine_Core\XEngine_Cryption.dll" "./" copy /y "%XEngine_LibArm64%\XEngine_SystemSdk\XEngine_SystemApi.dll" "./" copy /y "%XEngine_LibArm64%\XEngine_SystemSdk\XEngine_SystemConfig.dll" "./" + copy /y "%XEngine_LibArm64%\XEngine_Client\XClient_APIHelp.dll" "./" +copy /y "%XEngine_LibArm64%\XEngine_Client\XClient_Socket.dll" "./" + copy /y "%XEngine_LibArm64%\XEngine_NetHelp\NetHelp_APIAddr.dll" "./" copy /y "%XEngine_LibArm64%\XEngine_NetHelp\NetHelp_XSocket.dll" "./" diff --git a/XEngine_Source/VSCopy_Debug.bat b/XEngine_Source/VSCopy_Debug.bat index 8665b61..654185d 100644 --- a/XEngine_Source/VSCopy_Debug.bat +++ b/XEngine_Source/VSCopy_Debug.bat @@ -7,7 +7,10 @@ copy /y "D:\XEngine\XEngine_SourceCode\Debug\XEngine_Cryption.dll" "./" copy /y "D:\XEngine\XEngine_SourceCode\Debug\XEngine_SystemApi.dll" "./" copy /y "D:\XEngine\XEngine_SourceCode\Debug\XEngine_SystemConfig.dll" "./" + copy /y "D:\XEngine\XEngine_SourceCode\Debug\XClient_APIHelp.dll" "./" +copy /y "D:\XEngine\XEngine_SourceCode\Debug\XClient_Socket.dll" "./" + copy /y "D:\XEngine\XEngine_SourceCode\Debug\NetHelp_APIAddr.dll" "./" copy /y "D:\XEngine\XEngine_SourceCode\Debug\NetHelp_XSocket.dll" "./" diff --git a/XEngine_Source/VSCopy_x64.bat b/XEngine_Source/VSCopy_x64.bat index 673e575..008422e 100644 --- a/XEngine_Source/VSCopy_x64.bat +++ b/XEngine_Source/VSCopy_x64.bat @@ -7,7 +7,10 @@ copy /y "%XEngine_Lib64%\XEngine_Core\XEngine_Cryption.dll" "./" copy /y "%XEngine_Lib64%\XEngine_SystemSdk\XEngine_SystemApi.dll" "./" copy /y "%XEngine_Lib64%\XEngine_SystemSdk\XEngine_SystemConfig.dll" "./" + copy /y "%XEngine_Lib64%\XEngine_Client\XClient_APIHelp.dll" "./" +copy /y "%XEngine_Lib64%\XEngine_Client\XClient_Socket.dll" "./" + copy /y "%XEngine_Lib64%\XEngine_NetHelp\NetHelp_APIAddr.dll" "./" copy /y "%XEngine_Lib64%\XEngine_NetHelp\NetHelp_XSocket.dll" "./" diff --git a/XEngine_Source/VSCopy_x86.bat b/XEngine_Source/VSCopy_x86.bat index 1162909..933255c 100644 --- a/XEngine_Source/VSCopy_x86.bat +++ b/XEngine_Source/VSCopy_x86.bat @@ -7,7 +7,10 @@ copy /y "%XEngine_Lib32%\XEngine_Core\XEngine_Cryption.dll" "./" copy /y "%XEngine_Lib32%\XEngine_SystemSdk\XEngine_SystemApi.dll" "./" copy /y "%XEngine_Lib32%\XEngine_SystemSdk\XEngine_SystemConfig.dll" "./" + copy /y "%XEngine_Lib32%\XEngine_Client\XClient_APIHelp.dll" "./" +copy /y "%XEngine_Lib32%\XEngine_Client\XClient_Socket.dll" "./" + copy /y "%XEngine_Lib32%\XEngine_NetHelp\NetHelp_APIAddr.dll" "./" copy /y "%XEngine_Lib32%\XEngine_NetHelp\NetHelp_XSocket.dll" "./" From 47ac5c1e343b1a97e638a8dc7e66281f7bb28530 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Mon, 27 Oct 2025 13:43:12 +0800 Subject: [PATCH 03/24] ci:update macos system version --- .github/workflows/macbuild.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/macbuild.yml b/.github/workflows/macbuild.yml index b3e59ec..f00931e 100644 --- a/.github/workflows/macbuild.yml +++ b/.github/workflows/macbuild.yml @@ -17,8 +17,8 @@ jobs: strategy: matrix: include: - - os: macos-13 - - os: macos-14 + - os: macos-15 + - os: macos-15-intel runs-on: ${{ matrix.os }} steps: @@ -46,13 +46,13 @@ jobs: run: echo "TERM=xterm" >> $GITHUB_ENV - name: Set up Dependency x86_64 Environment - if: matrix.os == 'macos-13' + if: matrix.os == 'macos-15-intel' run: | cd libxengine chmod 777 * ./XEngine_LINEnv.sh -i 3 - name: Set up Dependency Arm64 Environment - if: matrix.os == 'macos-14' + if: matrix.os == 'macos-15' run: | latest_tag=$(git ls-remote --tags --sort="v:refname" https://github.com/libxengine/libxengine.git | awk '{print $2}' | sed 's/refs\/tags\///' | tail -n 1) wget https://github.com/libxengine/libxengine/releases/download/$latest_tag/XEngine_Mac_Arm64.zip @@ -80,14 +80,14 @@ jobs: ./XEngine_XStorageApp -t - name: Upload folder as artifact with mac x64 - if: matrix.os == 'macos-13' + if: matrix.os == 'macos-15-intel' uses: actions/upload-artifact@v4 with: name: XEngine_XStorageApp-Mac_x86_64 path: XEngine_Release/ retention-days: 1 - name: Upload folder as artifact with mac arm - if: matrix.os == 'macos-14' + if: matrix.os == 'macos-15' uses: actions/upload-artifact@v4 with: name: XEngine_XStorageApp-Mac_Arm64 From 57b7ea8cf0a77075067e0eb10f8cd110a887d942 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Tue, 23 Dec 2025 10:28:03 +0800 Subject: [PATCH 04/24] update:depend library delete:procfile module depend --- XEngine_Source/StorageModule_APIHelp/pch.h | 1 - XEngine_Source/StorageModule_Database/pch.h | 1 - XEngine_Source/XEngine_DependLibrary | 2 +- XEngine_Source/XEngine_StorageApp/Makefile | 2 +- XEngine_Source/XEngine_StorageApp/StorageApp_Hdr.h | 2 -- 5 files changed, 2 insertions(+), 6 deletions(-) diff --git a/XEngine_Source/StorageModule_APIHelp/pch.h b/XEngine_Source/StorageModule_APIHelp/pch.h index 802a2c5..212e0e7 100644 --- a/XEngine_Source/StorageModule_APIHelp/pch.h +++ b/XEngine_Source/StorageModule_APIHelp/pch.h @@ -35,7 +35,6 @@ using namespace std; #include #include #include -#include #include #include #include diff --git a/XEngine_Source/StorageModule_Database/pch.h b/XEngine_Source/StorageModule_Database/pch.h index d0a850e..188a06c 100644 --- a/XEngine_Source/StorageModule_Database/pch.h +++ b/XEngine_Source/StorageModule_Database/pch.h @@ -43,7 +43,6 @@ using namespace std; #include #include #include -#include #include #include #include "../XStorage_BuildSwitch.h" diff --git a/XEngine_Source/XEngine_DependLibrary b/XEngine_Source/XEngine_DependLibrary index b6bed0e..1db2b64 160000 --- a/XEngine_Source/XEngine_DependLibrary +++ b/XEngine_Source/XEngine_DependLibrary @@ -1 +1 @@ -Subproject commit b6bed0eeb6e91426ff1a9bbe31e40fcdcdf0a184 +Subproject commit 1db2b6460dd13016df0052808bf2f8ae82ba901f diff --git a/XEngine_Source/XEngine_StorageApp/Makefile b/XEngine_Source/XEngine_StorageApp/Makefile index 710447a..e275f16 100644 --- a/XEngine_Source/XEngine_StorageApp/Makefile +++ b/XEngine_Source/XEngine_StorageApp/Makefile @@ -3,7 +3,7 @@ PLATVER = LOADHDR = -I ./ LOADSO = -L ../XEngine_DependLibrary/XEngine_Module/jsoncpp -L ../XEngine_DependLibrary/XEngine_Module/tinyxml2 -L ../XEngine_DependLibrary/XEngine_Module/XEngine_InfoReport -L ../XEngine_DependLibrary/XEngine_Module/XEngine_Verification \ -L ../StorageModule_Database -L ../StorageModule_Config -L ../StorageModule_Session -L ../StorageModule_APIHelp -L ../StorageModule_Protocol -L ../StorageModule_BTorrent -LIB = -lXEngine_BaseLib -lXEngine_Algorithm -lXEngine_Core -lXEngine_ManagePool -lXEngine_Cryption -lXClient_APIHelp -lXEngine_ProcFile -lXEngine_SystemApi -lHelpComponents_XLog -lHelpComponents_Packets -lRfcComponents_HttpProtocol \ +LIB = -lXEngine_BaseLib -lXEngine_Algorithm -lXEngine_Core -lXEngine_ManagePool -lXEngine_Cryption -lXClient_APIHelp -lXEngine_SystemApi -lHelpComponents_XLog -lHelpComponents_Packets -lRfcComponents_HttpProtocol \ -lStorageModule_Database -lStorageModule_Config -lStorageModule_Session -lStorageModule_APIHelp -lStorageModule_Protocol -lStorageModule_BTorrent \ -ljsoncpp -ltinyxml2 -lXEngine_InfoReport -lXEngine_Verification LIBEX = diff --git a/XEngine_Source/XEngine_StorageApp/StorageApp_Hdr.h b/XEngine_Source/XEngine_StorageApp/StorageApp_Hdr.h index 7b66645..36a2ddf 100644 --- a/XEngine_Source/XEngine_StorageApp/StorageApp_Hdr.h +++ b/XEngine_Source/XEngine_StorageApp/StorageApp_Hdr.h @@ -47,8 +47,6 @@ using namespace std; #include #include #include -#include -#include #include #include #include "../XStorage_Protocol.h" From ed58b408e4190bff98c73c47052f21247d63c7d5 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Tue, 10 Feb 2026 15:43:08 +0800 Subject: [PATCH 05/24] update:depend library --- XEngine_Source/XEngine_DependLibrary | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/XEngine_Source/XEngine_DependLibrary b/XEngine_Source/XEngine_DependLibrary index 1db2b64..adf48e2 160000 --- a/XEngine_Source/XEngine_DependLibrary +++ b/XEngine_Source/XEngine_DependLibrary @@ -1 +1 @@ -Subproject commit 1db2b6460dd13016df0052808bf2f8ae82ba901f +Subproject commit adf48e22d68f741ec52f299945f8f8f8fb3df9d2 From a7b4bbd9ebaf49a410ac1011d747e6a839ad6ce4 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Tue, 10 Feb 2026 15:43:33 +0800 Subject: [PATCH 06/24] modify:start parameter and http request name does not case-sensitive --- .../XEngine_StorageApp/StorageApp_Center.cpp | 12 +++++----- .../XEngine_StorageApp/StorageApp_Config.cpp | 22 +++++++++---------- .../Storage_APPTask/Storage_TaskAction.cpp | 4 ++-- .../Storage_APPTask/Storage_TaskManage.cpp | 20 ++++++++--------- .../Storage_APPTask/Storage_TaskPass.cpp | 4 ++-- 5 files changed, 31 insertions(+), 31 deletions(-) diff --git a/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp b/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp index 842d9cc..95586e2 100644 --- a/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp +++ b/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp @@ -162,7 +162,7 @@ bool XEngine_Task_HttpCenter(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,HTTP验证类型:%d 通过"), lpszClientAddr, nVType); } - if (0 == _tcsxnicmp(lpszMethodPost, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodPost))) + if (0 == _tcsxncmp(lpszMethodPost, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodPost))) { LPCXSTR lpszAPIPass = _X("Pass"); LPCXSTR lpszAPIManage = _X("Manage"); @@ -170,21 +170,21 @@ bool XEngine_Task_HttpCenter(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int BaseLib_String_GetKeyValueA(pptszUrlList[0], "=", tszStrKey, tszStrVlu); //通知类型.用于多服务器 - if (0 == _tcsxnicmp(lpszAPIPass, tszStrVlu, _tcsxlen(lpszAPIPass))) + if (0 == _tcsxncmp(lpszAPIPass, tszStrVlu, _tcsxlen(lpszAPIPass))) { //http://127.0.0.1:5100/api?function=pass¶m=xxx memset(tszStrVlu, '\0', sizeof(tszStrVlu)); BaseLib_String_GetKeyValueA(pptszUrlList[1], "=", tszStrKey, tszStrVlu); XEngine_Task_Pass(tszStrVlu, lpszClientAddr, lpszMsgBuffer, nMsgLen, pSt_HTTPParam); } - else if (0 == _tcsxnicmp(lpszAPIManage, tszStrVlu, _tcsxlen(lpszAPIManage))) + else if (0 == _tcsxncmp(lpszAPIManage, tszStrVlu, _tcsxlen(lpszAPIManage))) { //http://127.0.0.1:5100/api?function=manage¶m=xxx memset(tszStrVlu, '\0', sizeof(tszStrVlu)); BaseLib_String_GetKeyValueA(pptszUrlList[1], "=", tszStrKey, tszStrVlu); XEngine_Task_Manage(tszStrVlu, lpszClientAddr, lpszMsgBuffer, nMsgLen, pSt_HTTPParam); } - else if (0 == _tcsxnicmp(lpszAPIAction, tszStrVlu, _tcsxlen(lpszAPIAction))) + else if (0 == _tcsxncmp(lpszAPIAction, tszStrVlu, _tcsxlen(lpszAPIAction))) { //http://127.0.0.1:5100/api?function=action¶m=xxx memset(tszStrVlu, '\0', sizeof(tszStrVlu)); @@ -192,14 +192,14 @@ bool XEngine_Task_HttpCenter(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int Storage_TaskAction(tszStrVlu, lpszClientAddr, lpszMsgBuffer, nMsgLen, pSt_HTTPParam); } } - else if (0 == _tcsxnicmp(lpszMethodGet, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodGet))) + else if (0 == _tcsxncmp(lpszMethodGet, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodGet))) { //用于心跳 //http://127.0.0.1:5100/api?function=heart LPCXSTR lpszAPIHeart = _X("heart"); BaseLib_String_GetKeyValueA(pptszUrlList[0], "=", tszStrKey, tszStrVlu); - if (0 == _tcsxnicmp(lpszAPIHeart, tszStrVlu, _tcsxlen(lpszAPIHeart))) + if (0 == _tcsxncmp(lpszAPIHeart, tszStrVlu, _tcsxlen(lpszAPIHeart))) { LPCXSTR lpszHdrBuffer = _X("Allow: POST GET PUT\r\n"); HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, lpszHdrBuffer); diff --git a/XEngine_Source/XEngine_StorageApp/StorageApp_Config.cpp b/XEngine_Source/XEngine_StorageApp/StorageApp_Config.cpp index 2ace27d..5d9b3b1 100644 --- a/XEngine_Source/XEngine_StorageApp/StorageApp_Config.cpp +++ b/XEngine_Source/XEngine_StorageApp/StorageApp_Config.cpp @@ -48,49 +48,49 @@ bool StorageApp_Config_Parament(int argc,char **argv) for (int i = 0;i < argc;i++) { - if (0 == _tcsxicmp("-h",argv[i])) + if (0 == _tcsxcmp("-h",argv[i])) { StorageApp_Config_ParamentHelp(); return false; } - if (0 == _tcsxicmp("-v", argv[i])) + if (0 == _tcsxcmp("-v", argv[i])) { string m_StrVersion = st_ServiceCfg.st_XVer.pStl_ListStorage->front(); printf("Version:%s\n", m_StrVersion.c_str()); return false; } - else if (0 == _tcsxicmp("-d", argv[i])) + else if (0 == _tcsxcmp("-d", argv[i])) { st_ServiceCfg.bDeamon = _ttxoi(argv[++i]); } - else if (0 == _tcsxicmp("-r", argv[i])) + else if (0 == _tcsxcmp("-r", argv[i])) { st_ServiceCfg.st_Memory.bReload = true; } - else if (0 == _tcsxicmp("-u", argv[i])) + else if (0 == _tcsxcmp("-u", argv[i])) { st_ServiceCfg.bReuseraddr = true; } - else if (0 == _tcsxicmp("-t", argv[i])) + else if (0 == _tcsxcmp("-t", argv[i])) { bIsTest = true; } - else if (0 == _tcsxicmp("-lt", argv[i])) + else if (0 == _tcsxcmp("-lt", argv[i])) { st_ServiceCfg.st_XLog.nLogType = _ttxoi(argv[++i]); } - else if (0 == _tcsxicmp("-l", argv[i])) + else if (0 == _tcsxcmp("-l", argv[i])) { LPCXSTR lpszLogLevel = argv[++i]; - if (0 == _tcsxicmp("debug", lpszLogLevel)) + if (0 == _tcsxcmp("debug", lpszLogLevel)) { st_ServiceCfg.st_XLog.nLogLeave = XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_DEBUG; } - else if (0 == _tcsxicmp("detail", lpszLogLevel)) + else if (0 == _tcsxcmp("detail", lpszLogLevel)) { st_ServiceCfg.st_XLog.nLogLeave = XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_DETAIL; } - else if (0 == _tcsxicmp("info", lpszLogLevel)) + else if (0 == _tcsxcmp("info", lpszLogLevel)) { st_ServiceCfg.st_XLog.nLogLeave = XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO; } diff --git a/XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskAction.cpp b/XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskAction.cpp index 976adc5..711e0e0 100644 --- a/XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskAction.cpp +++ b/XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskAction.cpp @@ -113,7 +113,7 @@ bool Storage_TaskAction(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lps if (0 == st_ActionInfo.byType || 1 == st_ActionInfo.byType) { - if (0 == _tcsxnicmp(lpszAPIDownload, lpszAPIName, _tcsxlen(lpszAPIDownload))) + if (0 == _tcsxncmp(lpszAPIDownload, lpszAPIName, _tcsxlen(lpszAPIDownload))) { XNETHANDLE xhToken = 0; BaseLib_Handle_Create(&xhToken); @@ -138,7 +138,7 @@ bool Storage_TaskAction(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lps XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("业务客户端:%s,处理用户下载动作成功,URL:%s,路径:%s,句柄:%lld,类型:%d"), lpszClientAddr, st_ActionInfo.tszFileUrl, tszFileName, xhToken, st_ActionInfo.byType); } - else if (0 == _tcsxnicmp(lpszAPIUPload, lpszAPIName, _tcsxlen(lpszAPIUPload))) + else if (0 == _tcsxncmp(lpszAPIUPload, lpszAPIName, _tcsxlen(lpszAPIUPload))) { XNETHANDLE xhToken = 0; BaseLib_Handle_Create(&xhToken); diff --git a/XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskManage.cpp b/XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskManage.cpp index 32b5a1b..573f089 100644 --- a/XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskManage.cpp +++ b/XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskManage.cpp @@ -22,14 +22,14 @@ bool XEngine_Task_Manage(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lp st_HDRParam.bIsClose = true; st_HDRParam.nHttpCode = 200; - if (0 == _tcsxnicmp(lpszAPIConfig, lpszAPIName, _tcsxlen(lpszAPIConfig))) + if (0 == _tcsxncmp(lpszAPIConfig, lpszAPIName, _tcsxlen(lpszAPIConfig))) { StorageApp_Config_Parament(0, NULL); HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam); XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("业务客户端:%s,处理用户重载配置文件成功"), lpszClientAddr); } - else if (0 == _tcsxnicmp(lpszAPIQuery, lpszAPIName, _tcsxlen(lpszAPIQuery))) + else if (0 == _tcsxncmp(lpszAPIQuery, lpszAPIName, _tcsxlen(lpszAPIQuery))) { //查询文件列表 int nMode = 0; @@ -164,7 +164,7 @@ bool XEngine_Task_Manage(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lp stl_ListFile.clear(); } } - else if (0 == _tcsxnicmp(lpszAPIInsert, lpszAPIName, _tcsxlen(lpszAPIInsert))) + else if (0 == _tcsxncmp(lpszAPIInsert, lpszAPIName, _tcsxlen(lpszAPIInsert))) { int nListCount = 0; XSTORAGECORE_DBFILE** ppSt_DBFile; @@ -204,7 +204,7 @@ bool XEngine_Task_Manage(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lp XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); BaseLib_Memory_Free((XPPPMEM)&ppSt_DBFile, nListCount); } - else if (0 == _tcsxnicmp(lpszAPIDelete, lpszAPIName, _tcsxlen(lpszAPIDelete))) + else if (0 == _tcsxncmp(lpszAPIDelete, lpszAPIName, _tcsxlen(lpszAPIDelete))) { int nListCount = 0; XSTORAGECORE_DBFILE** ppSt_DBFile; @@ -282,7 +282,7 @@ bool XEngine_Task_Manage(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lp XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); BaseLib_Memory_Free((XPPPMEM)&ppSt_DBFile, nListCount); } - else if (0 == _tcsxnicmp(lpszAPIDir, lpszAPIName, _tcsxlen(lpszAPIDir))) + else if (0 == _tcsxncmp(lpszAPIDir, lpszAPIName, _tcsxlen(lpszAPIDir))) { int nOPCode = 0; int nListCount = 0; @@ -348,7 +348,7 @@ bool XEngine_Task_Manage(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lp XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("业务客户端:%s,请求删除文件夹:%s,成功"), lpszClientAddr, tszRealDir); } } - else if (0 == _tcsxnicmp(lpszAPIBucket, lpszAPIName, _tcsxlen(lpszAPIBucket))) + else if (0 == _tcsxncmp(lpszAPIBucket, lpszAPIName, _tcsxlen(lpszAPIBucket))) { XCHAR tszBuckKey[XPATH_MAX] = {}; Protocol_StorageParse_DirOperator(lpszMsgBuffer, NULL, tszBuckKey, NULL); @@ -375,7 +375,7 @@ bool XEngine_Task_Manage(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lp XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("业务客户端:%s,请求获取BUCKET信息成功"), lpszClientAddr); } - else if (0 == _tcsxnicmp(lpszAPIFlushSize, lpszAPIName, _tcsxlen(lpszAPIFlushSize))) + else if (0 == _tcsxncmp(lpszAPIFlushSize, lpszAPIName, _tcsxlen(lpszAPIFlushSize))) { XCHAR tszBuckKey[XPATH_MAX] = {}; Protocol_StorageParse_DirOperator(lpszMsgBuffer, NULL, tszBuckKey, NULL); @@ -384,7 +384,7 @@ bool XEngine_Task_Manage(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lp XENGINE_STORAGEBUCKET st_StorageBucket = {}; for (auto stl_ListIterator = st_LoadbalanceCfg.st_LoadBalance.pStl_ListBucket->begin(); stl_ListIterator != st_LoadbalanceCfg.st_LoadBalance.pStl_ListBucket->end(); stl_ListIterator++) { - if (0 == _tcsxnicmp(stl_ListIterator->tszBuckKey, tszBuckKey, _tcsxlen(stl_ListIterator->tszBuckKey))) + if (0 == _tcsxncmp(stl_ListIterator->tszBuckKey, tszBuckKey, _tcsxlen(stl_ListIterator->tszBuckKey))) { APIHelp_Api_GetDIRSize(stl_ListIterator->tszFilePath, &stl_ListIterator->nBuckSize); st_StorageBucket = *stl_ListIterator; @@ -398,7 +398,7 @@ bool XEngine_Task_Manage(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lp { for (auto stl_ListIterator = st_LoadbalanceCfg.st_LoadBalance.pStl_ListBucket->begin(); stl_ListIterator != st_LoadbalanceCfg.st_LoadBalance.pStl_ListBucket->end(); stl_ListIterator++) { - if (0 == _tcsxnicmp(stl_ListIterator->tszBuckKey, tszBuckKey, _tcsxlen(stl_ListIterator->tszBuckKey))) + if (0 == _tcsxncmp(stl_ListIterator->tszBuckKey, tszBuckKey, _tcsxlen(stl_ListIterator->tszBuckKey))) { APIHelp_Api_GetDIRSize(stl_ListIterator->tszFilePath, &stl_ListIterator->nBuckSize); } @@ -409,7 +409,7 @@ bool XEngine_Task_Manage(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lp XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("业务客户端:%s,请求刷新BUCKET大小成功"), lpszClientAddr); } - else if (0 == _tcsxnicmp(lpszAPITask, lpszAPIName, _tcsxlen(lpszAPITask))) + else if (0 == _tcsxncmp(lpszAPITask, lpszAPIName, _tcsxlen(lpszAPITask))) { int nDLCount = 0; int nUPCount = 0; diff --git a/XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskPass.cpp b/XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskPass.cpp index fe1ca14..129d386 100644 --- a/XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskPass.cpp +++ b/XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskPass.cpp @@ -14,7 +14,7 @@ bool XEngine_Task_Pass(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lpsz st_HDRParam.bIsClose = true; st_HDRParam.nHttpCode = 200; //下载 - if (0 == _tcsxnicmp(lpszAPIUPFile, lpszAPIName, _tcsxlen(lpszAPIUPFile))) + if (0 == _tcsxncmp(lpszAPIUPFile, lpszAPIName, _tcsxlen(lpszAPIUPFile))) { XCHAR tszClientAddr[128]; XSTORAGECORE_DBFILE st_DBFile; @@ -26,7 +26,7 @@ bool XEngine_Task_Pass(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lpsz XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("业务客户端:%s,请求的上传文件通知协议成功,Bucket:%s,文件名:%s,大小:%d"), lpszClientAddr, st_DBFile.tszBuckKey, st_DBFile.st_ProtocolFile.tszFileName, st_DBFile.st_ProtocolFile.nFileSize); } - else if (0 == _tcsxnicmp(lpszAPIDLFile, lpszAPIName, _tcsxlen(lpszAPIDLFile))) + else if (0 == _tcsxncmp(lpszAPIDLFile, lpszAPIName, _tcsxlen(lpszAPIDLFile))) { __int64x nFileSize = 0; XCHAR tszPathKey[XPATH_MAX]; From 1d4169baee7c33feee0ad0e48e29d2104d195018 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 27 Feb 2026 16:47:05 +0800 Subject: [PATCH 07/24] added:get file size thought head method for http center --- .../XEngine_StorageApp/StorageApp_Center.cpp | 29 ++++++++++++++++++- .../Storage_APPTask/Storage_TaskManage.cpp | 10 ++----- 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp b/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp index 95586e2..060cbb6 100644 --- a/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp +++ b/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp @@ -52,13 +52,14 @@ bool XEngine_Task_HttpCenter(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int LPCXSTR lpszMethodPost = _X("POST"); LPCXSTR lpszMethodGet = _X("GET"); + LPCXSTR lpszMethodHead = _X("HEAD"); XCHAR** pptszUrlList; XCHAR tszUrlName[128]; int nUrlCount = 0; //得到URL参数个数 HttpProtocol_ServerHelp_GetParament(pSt_HTTPParam->tszHttpUri, &pptszUrlList, &nUrlCount, tszUrlName); - if (nUrlCount < 1) + if (nUrlCount < 1 && (0 != _tcsxncmp(lpszMethodHead, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodHead)))) { st_HDRParam.nHttpCode = 400; HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam); @@ -207,6 +208,32 @@ bool XEngine_Task_HttpCenter(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("业务客户端:%s,请求GET心跳方法成功"), lpszClientAddr); } } + else if (0 == _tcsxncmp(lpszMethodHead, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodHead))) + { + //获得文件大小 + XCHAR tszFileExt[64] = {}; + XCHAR tszFileHdr[XPATH_MIN] = {}; + XCHAR tszFilePath[XPATH_MAX] = {}; + SYSTEMAPI_FILE_ATTR st_FileAttr = {}; + + _xstprintf(tszFilePath, _X(".%s"), pSt_HTTPParam->tszHttpUri); + if (0 != _xtaccess(tszFilePath, 0)) + { + st_HDRParam.nHttpCode = 404; + Protocol_StoragePacket_HTTPPacket(tszRVBuffer, &nRVLen, ERROR_STORAGE_PROTOCOL_HTTP_MANAGE_NOTFOUND, "file not found"); + HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("业务客户端:%s,请求文件大小失败,文件:%s 不存在"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); + return false; + } + SystemApi_File_GetFileAttr(tszFilePath, &st_FileAttr); + BaseLib_String_GetFileAndPath(tszFilePath, NULL, NULL, NULL, tszFileExt); + _xstprintf(tszFileHdr, _X("Content-Length: %lld\r\n"), st_FileAttr.nFileSize); + + HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszFileHdr); + XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("业务客户端:%s,请求获取文件:%s 大小:%lld 成功"), lpszClientAddr, tszFilePath, st_FileAttr.nFileSize); + } else { st_HDRParam.bIsClose = true; diff --git a/XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskManage.cpp b/XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskManage.cpp index 573f089..088a9ca 100644 --- a/XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskManage.cpp +++ b/XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskManage.cpp @@ -4,8 +4,8 @@ bool XEngine_Task_Manage(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lp { int nSDLen = 10240; int nRVLen = 10240; - XCHAR tszSDBuffer[10240]; - XCHAR tszRVBuffer[10240]; + XCHAR tszSDBuffer[10240] = {}; + XCHAR tszRVBuffer[10240] = {}; LPCXSTR lpszAPIConfig = _X("Config"); LPCXSTR lpszAPIInsert = _X("Insert"); LPCXSTR lpszAPIDelete = _X("Delete"); @@ -14,11 +14,7 @@ bool XEngine_Task_Manage(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lp LPCXSTR lpszAPIBucket = _X("Bucket"); LPCXSTR lpszAPITask = _X("Task"); LPCXSTR lpszAPIFlushSize = _X("flushsize"); - RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam; - - memset(tszSDBuffer, '\0', sizeof(tszSDBuffer)); - memset(tszRVBuffer, '\0', sizeof(tszRVBuffer)); - memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); + RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam = {}; st_HDRParam.bIsClose = true; st_HDRParam.nHttpCode = 200; From 64ea6ba2aa9c2fabbc712b04e8c25d5cc9695420 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 27 Feb 2026 16:49:32 +0800 Subject: [PATCH 08/24] modify:must set type for http send message --- XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp | 2 +- XEngine_Source/XEngine_StorageApp/StorageApp_Network.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp b/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp index 060cbb6..e3e6ba5 100644 --- a/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp +++ b/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp @@ -63,7 +63,7 @@ bool XEngine_Task_HttpCenter(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int { st_HDRParam.nHttpCode = 400; HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam); - XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen); + XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); BaseLib_Memory_Free((XPPPMEM)&pptszUrlList, nUrlCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); return false; diff --git a/XEngine_Source/XEngine_StorageApp/StorageApp_Network.h b/XEngine_Source/XEngine_StorageApp/StorageApp_Network.h index ac3dfaa..643625d 100644 --- a/XEngine_Source/XEngine_StorageApp/StorageApp_Network.h +++ b/XEngine_Source/XEngine_StorageApp/StorageApp_Network.h @@ -18,5 +18,5 @@ void XCALLBACK XEngine_Callback_HBUPLoader(LPCXSTR lpszClientAddr, XSOCKET hSock void XCALLBACK XEngine_Callback_HBCenter(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam); void XCALLBACK XEngine_Callback_HBWebdav(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam); -bool XEngine_Net_CloseClient(LPCXSTR lpszClientAddr, int nLeaveType, int nClientType = STORAGE_NETTYPE_HTTPDOWNLOAD); -bool XEngine_Net_SendMsg(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType = STORAGE_NETTYPE_HTTPDOWNLOAD); \ No newline at end of file +bool XEngine_Net_CloseClient(LPCXSTR lpszClientAddr, int nLeaveType, int nClientType); +bool XEngine_Net_SendMsg(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file From 0be44acfc900ea1caeee2777056d997755901f6f Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 3 Apr 2026 11:29:30 +0800 Subject: [PATCH 09/24] ci:update last version --- .github/workflows/Alma_build.yml | 8 ++++---- .github/workflows/Centos_build.yml | 8 ++++---- .github/workflows/Rocky_build.yml | 8 ++++---- .github/workflows/codeql.yml | 4 ++-- .github/workflows/cppcheck.yml | 4 ++-- .github/workflows/debian_build.yml | 8 ++++---- .github/workflows/fedora_build.yml | 8 ++++---- .github/workflows/macbuild.yml | 8 ++++---- .github/workflows/msbuild.yml | 12 ++++++------ .github/workflows/release.yml | 18 +++++++++--------- .github/workflows/ubuntu_build.yml | 12 ++++++------ 11 files changed, 49 insertions(+), 49 deletions(-) diff --git a/.github/workflows/Alma_build.yml b/.github/workflows/Alma_build.yml index 2d25911..c941026 100644 --- a/.github/workflows/Alma_build.yml +++ b/.github/workflows/Alma_build.yml @@ -44,16 +44,16 @@ jobs: steps: - name: Checkout main repository code - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Checkout dependency repository (xengine) - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: libxengine/libxengine path: libxengine - name: sub module checkout (opensource) - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: libxengine/XEngine_OPenSource path: XEngine_Source/XEngine_DependLibrary @@ -92,7 +92,7 @@ jobs: ./XEngine_XStorageApp -t - name: Upload folder as artifact with Alma Linux - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: XEngine_XStorageApp-AlmaLinux_${{ matrix.version }}_${{ matrix.artifact }} path: XEngine_Release/ diff --git a/.github/workflows/Centos_build.yml b/.github/workflows/Centos_build.yml index af6c670..56aee55 100644 --- a/.github/workflows/Centos_build.yml +++ b/.github/workflows/Centos_build.yml @@ -48,16 +48,16 @@ jobs: steps: - name: Checkout main repository code - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Checkout dependency repository (xengine) - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: libxengine/libxengine path: libxengine - name: sub module checkout (opensource) - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: libxengine/XEngine_OPenSource path: XEngine_Source/XEngine_DependLibrary @@ -96,7 +96,7 @@ jobs: ./XEngine_XStorageApp -t - name: Upload folder as artifact with CentOS - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: XEngine_XStorageApp-CentOS_${{ matrix.version }}_${{ matrix.artifact }} path: XEngine_Release/ diff --git a/.github/workflows/Rocky_build.yml b/.github/workflows/Rocky_build.yml index 35e1320..8311873 100644 --- a/.github/workflows/Rocky_build.yml +++ b/.github/workflows/Rocky_build.yml @@ -44,18 +44,18 @@ jobs: steps: - name: Checkout main repository code - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: 'develop' - name: Checkout dependency repository (xengine) - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: libxengine/libxengine path: libxengine - name: sub module checkout (opensource) - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: libxengine/XEngine_OPenSource path: XEngine_Source/XEngine_DependLibrary @@ -94,7 +94,7 @@ jobs: ./XEngine_XStorageApp -t - name: Upload folder as artifact with RockyLinux - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: XEngine_XStorageApp-RockyLinux_${{ matrix.version }}_${{ matrix.artifact }} path: XEngine_Release/ diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 2c66e5d..6e5e7d9 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -25,12 +25,12 @@ jobs: - language: c-cpp steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: 'develop' - name: Checkout dependency repository (xengine) - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: libxengine/libxengine path: libxengine diff --git a/.github/workflows/cppcheck.yml b/.github/workflows/cppcheck.yml index 279b03f..0a6eb20 100644 --- a/.github/workflows/cppcheck.yml +++ b/.github/workflows/cppcheck.yml @@ -15,7 +15,7 @@ jobs: steps: - name: Checkout main repository code - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: 'develop' @@ -29,7 +29,7 @@ jobs: continue-on-error: true - name: Upload Cppcheck Results - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: cppcheck_results path: static_analysis/log.xml \ No newline at end of file diff --git a/.github/workflows/debian_build.yml b/.github/workflows/debian_build.yml index 47861b5..cffcaa2 100644 --- a/.github/workflows/debian_build.yml +++ b/.github/workflows/debian_build.yml @@ -36,18 +36,18 @@ jobs: steps: - name: Checkout main repository code - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: 'develop' - name: Checkout dependency repository (xengine) - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: libxengine/libxengine path: libxengine - name: sub module checkout (opensource) - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: libxengine/XEngine_OPenSource path: XEngine_Source/XEngine_DependLibrary @@ -86,7 +86,7 @@ jobs: ./XEngine_XStorageApp -t - name: Upload folder as artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: XEngine_XStorageApp-Debian_${{ matrix.version }}_x86-64 path: XEngine_Release/ diff --git a/.github/workflows/fedora_build.yml b/.github/workflows/fedora_build.yml index 8348f45..4f5590f 100644 --- a/.github/workflows/fedora_build.yml +++ b/.github/workflows/fedora_build.yml @@ -34,16 +34,16 @@ jobs: steps: - name: Checkout main repository code - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Checkout dependency repository (xengine) - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: libxengine/libxengine path: libxengine - name: sub module checkout (opensource) - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: libxengine/XEngine_OPenSource path: XEngine_Source/XEngine_DependLibrary @@ -82,7 +82,7 @@ jobs: ./XEngine_XStorageApp -t - name: Upload folder as artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: XEngine_XStorageApp-Fedora_${{ matrix.fedora-version }}_${{ matrix.artifact }} path: XEngine_Release/ diff --git a/.github/workflows/macbuild.yml b/.github/workflows/macbuild.yml index f00931e..44ee638 100644 --- a/.github/workflows/macbuild.yml +++ b/.github/workflows/macbuild.yml @@ -23,13 +23,13 @@ jobs: steps: - name: Checkout main repository code - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: 'develop' # 检出依赖的xengine仓库到指定的xengine目录 - name: Checkout dependency repository (xengine) - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: libxengine/libxengine path: libxengine @@ -81,14 +81,14 @@ jobs: - name: Upload folder as artifact with mac x64 if: matrix.os == 'macos-15-intel' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: XEngine_XStorageApp-Mac_x86_64 path: XEngine_Release/ retention-days: 1 - name: Upload folder as artifact with mac arm if: matrix.os == 'macos-15' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: XEngine_XStorageApp-Mac_Arm64 path: XEngine_Release/ diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml index b3c60b9..6cbe98d 100644 --- a/.github/workflows/msbuild.yml +++ b/.github/workflows/msbuild.yml @@ -24,12 +24,12 @@ jobs: steps: - name: Checkout main repository code - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: 'develop' - name: Checkout dependency repository (xengine) - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: libxengine/libxengine path: libxengine @@ -76,7 +76,7 @@ jobs: shell: pwsh - name: Setup MSBuild - uses: microsoft/setup-msbuild@v2 + uses: microsoft/setup-msbuild@v3 - name: Build Solution run: msbuild XEngine_Source/XEngine_StorageApp.sln /p:Configuration=${{ matrix.configuration }} /p:Platform=${{ matrix.platform }} @@ -113,21 +113,21 @@ jobs: - name: Upload folder as artifact with x86 if: matrix.configuration == 'Release' && matrix.platform == 'x86' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: XEngine_StorageApp-Windows_x86_32 path: XEngine_Release/ retention-days: 1 - name: Upload folder as artifact with x64 if: matrix.configuration == 'Release' && matrix.platform == 'x64' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: XEngine_StorageApp-Windows_x86_64 path: XEngine_Release/ retention-days: 1 - name: Upload folder as artifact with ARM64 if: matrix.configuration == 'Release' && matrix.platform == 'ARM64' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: XEngine_StorageApp-Windows_Arm64 path: XEngine_Release/ diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 747b314..74ac820 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,12 +12,12 @@ jobs: steps: # 检出代码并包含标签 - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 - name: Download ubuntu build - uses: dawidd6/action-download-artifact@v6 + uses: dawidd6/action-download-artifact@v20 with: workflow: ubuntu_build.yml workflow_conclusion: success @@ -26,7 +26,7 @@ jobs: if_no_artifact_found: fail path: ./XRelease/ - name: Download debian build - uses: dawidd6/action-download-artifact@v6 + uses: dawidd6/action-download-artifact@v20 with: workflow: debian_build.yml workflow_conclusion: success @@ -35,7 +35,7 @@ jobs: if_no_artifact_found: fail path: ./XRelease/ - name: Download fedora build - uses: dawidd6/action-download-artifact@v6 + uses: dawidd6/action-download-artifact@v20 with: workflow: fedora_build.yml workflow_conclusion: success @@ -44,7 +44,7 @@ jobs: if_no_artifact_found: fail path: ./XRelease/ - name: Download Rocky build - uses: dawidd6/action-download-artifact@v6 + uses: dawidd6/action-download-artifact@v20 with: workflow: Rocky_build.yml workflow_conclusion: success @@ -53,7 +53,7 @@ jobs: if_no_artifact_found: fail path: ./XRelease/ - name: Download CentOS build - uses: dawidd6/action-download-artifact@v6 + uses: dawidd6/action-download-artifact@v20 with: workflow: Centos_build.yml workflow_conclusion: success @@ -62,7 +62,7 @@ jobs: if_no_artifact_found: fail path: ./XRelease/ - name: Download Alma build - uses: dawidd6/action-download-artifact@v6 + uses: dawidd6/action-download-artifact@v20 with: workflow: Alma_build.yml workflow_conclusion: success @@ -71,7 +71,7 @@ jobs: if_no_artifact_found: fail path: ./XRelease/ - name: Download macbuild - uses: dawidd6/action-download-artifact@v6 + uses: dawidd6/action-download-artifact@v20 with: workflow: macbuild.yml workflow_conclusion: success @@ -80,7 +80,7 @@ jobs: if_no_artifact_found: fail path: ./XRelease/ - name: Download msbuild - uses: dawidd6/action-download-artifact@v6 + uses: dawidd6/action-download-artifact@v20 with: workflow: msbuild.yml workflow_conclusion: success diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml index 2ece2f2..036aadc 100644 --- a/.github/workflows/ubuntu_build.yml +++ b/.github/workflows/ubuntu_build.yml @@ -27,12 +27,12 @@ jobs: steps: - name: Checkout main repository code - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: 'develop' - name: Checkout dependency repository (xengine) - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: libxengine/libxengine path: libxengine @@ -100,28 +100,28 @@ jobs: - name: Upload folder as artifact with ubuntu22.04 if: matrix.os == 'ubuntu-22.04' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: XEngine_XStorageApp-Ubuntu_22.04_x86_64 path: XEngine_Release/ retention-days: 1 - name: Upload folder as artifact with ubuntu24.04 if: matrix.os == 'ubuntu-24.04' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: XEngine_XStorageApp-Ubuntu_24.04_x86_64 path: XEngine_Release/ retention-days: 1 - name: Upload folder as artifact with ubuntu22.04-arm if: matrix.os == 'ubuntu-22.04-arm' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: XEngine_XStorageApp-Ubuntu_22.04_Arm64 path: XEngine_Release/ retention-days: 1 - name: Upload folder as artifact with ubuntu24.04-arm if: matrix.os == 'ubuntu-24.04-arm' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: XEngine_XStorageApp-Ubuntu_24.04_Arm64 path: XEngine_Release/ From 76214cc83786edb66240b77e7eb3146b3f7e95aa Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 3 Apr 2026 11:29:57 +0800 Subject: [PATCH 10/24] update:depend library --- XEngine_Source/XEngine_DependLibrary | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/XEngine_Source/XEngine_DependLibrary b/XEngine_Source/XEngine_DependLibrary index adf48e2..055db5a 160000 --- a/XEngine_Source/XEngine_DependLibrary +++ b/XEngine_Source/XEngine_DependLibrary @@ -1 +1 @@ -Subproject commit adf48e22d68f741ec52f299945f8f8f8fb3df9d2 +Subproject commit 055db5ab639c8dc656c149eb00b9773ec73585bb From 9243815765471d68c6a3be7d62ac9583a268053d Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 3 Apr 2026 14:13:53 +0800 Subject: [PATCH 11/24] added:The spatial data information displayed when starting printing is more intuitive --- .../APIHelp_Api/APIHelp_Api.cpp | 46 +++++++++++++++++++ .../APIHelp_Api/APIHelp_Api.h | 1 + .../StorageModule_APIHelp/APIHelp_Define.h | 26 ++++++++++- .../StorageModule_APIHelp.def | 3 +- XEngine_Source/StorageModule_APIHelp/pch.cpp | 4 ++ .../XEngine_StorageApp/XEngine_StorageApp.cpp | 10 +++- 6 files changed, 87 insertions(+), 3 deletions(-) diff --git a/XEngine_Source/StorageModule_APIHelp/APIHelp_Api/APIHelp_Api.cpp b/XEngine_Source/StorageModule_APIHelp/APIHelp_Api/APIHelp_Api.cpp index 508acad..ad7eb6a 100644 --- a/XEngine_Source/StorageModule_APIHelp/APIHelp_Api/APIHelp_Api.cpp +++ b/XEngine_Source/StorageModule_APIHelp/APIHelp_Api/APIHelp_Api.cpp @@ -526,4 +526,50 @@ bool CAPIHelp_Api::APIHelp_Api_WDToUrl(LPCXSTR lpszUrl, XCHAR* ptszUrl) xstring m_XUrl = "/api?filename=" + m_StrFile + "&storeagekey=" + m_StrBucket; _tcsxcpy(ptszUrl, m_XUrl.c_str()); return true; +} +/******************************************************************** +函数名称:APIHelp_Api_BSizeToStr +函数功能:大小转字符串函数 + 参数.一:nSize + In/Out:In + 类型:整数型 + 可空:N + 意思:输入要转换大小 + 参数.二:ptszSizeStr + In/Out:Out + 类型:字符指针 + 可空:N + 意思:输出转换后的字符串 + 参数.三:nType + In/Out:In + 类型:整数型 + 可空:N + 意思:输入转换的类型 0-B 1-KB 2-MB 3-GB +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +bool CAPIHelp_Api::APIHelp_Api_BSizeToStr(__int64x nSize, XCHAR* ptszSizeStr, int nType) +{ + APIHelp_IsErrorOccur = false; + + const char* units[] = { "B", "KB", "MB", "GB" }; + if (0 == nType) + { + _xstprintf(ptszSizeStr, _X("%lld %s"), nSize, units[nType]); + } + else if (1 == nType) + { + _xstprintf(ptszSizeStr, _X("%lld %s"), nSize / 1024, units[nType]); + } + else if (2 == nType) + { + _xstprintf(ptszSizeStr, _X("%lld %s"), nSize / 1024 / 1024, units[nType]); + } + else if (3 == nType) + { + _xstprintf(ptszSizeStr, _X("%lld %s"), nSize / 1024 / 1024 / 1024, units[nType]); + } + return true; } \ No newline at end of file diff --git a/XEngine_Source/StorageModule_APIHelp/APIHelp_Api/APIHelp_Api.h b/XEngine_Source/StorageModule_APIHelp/APIHelp_Api/APIHelp_Api.h index 795ded5..71f17ea 100644 --- a/XEngine_Source/StorageModule_APIHelp/APIHelp_Api/APIHelp_Api.h +++ b/XEngine_Source/StorageModule_APIHelp/APIHelp_Api/APIHelp_Api.h @@ -27,6 +27,7 @@ class CAPIHelp_Api bool APIHelp_Api_UrlStr(XCHAR* ptszKeyStr, LPCXSTR lpszUrl); bool APIHelp_Api_GetLastName(XCHAR* ptszLastName, LPCXSTR lpszPathStr); bool APIHelp_Api_WDToUrl(LPCXSTR lpszUrl, XCHAR* ptszUrl); + bool APIHelp_Api_BSizeToStr(__int64x nSize, XCHAR* ptszSizeStr, int nType); protected: private: }; \ No newline at end of file diff --git a/XEngine_Source/StorageModule_APIHelp/APIHelp_Define.h b/XEngine_Source/StorageModule_APIHelp/APIHelp_Define.h index 5c3e755..ea12c6c 100644 --- a/XEngine_Source/StorageModule_APIHelp/APIHelp_Define.h +++ b/XEngine_Source/StorageModule_APIHelp/APIHelp_Define.h @@ -417,4 +417,28 @@ extern "C" bool APIHelp_Api_GetLastName(XCHAR* ptszLastName, LPCXSTR lpszPathStr 意思:是否成功 备注: *********************************************************************/ -extern "C" bool APIHelp_Api_WDToUrl(LPCXSTR lpszUrl, XCHAR* ptszUrl); \ No newline at end of file +extern "C" bool APIHelp_Api_WDToUrl(LPCXSTR lpszUrl, XCHAR* ptszUrl); +/******************************************************************** +函数名称:APIHelp_Api_BSizeToStr +函数功能:大小转字符串函数 + 参数.一:nSize + In/Out:In + 类型:整数型 + 可空:N + 意思:输入要转换大小 + 参数.二:ptszSizeStr + In/Out:Out + 类型:字符指针 + 可空:N + 意思:输出转换后的字符串 + 参数.三:nType + In/Out:In + 类型:整数型 + 可空:N + 意思:输入转换的类型 0-B 1-KB 2-MB 3-GB +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" bool APIHelp_Api_BSizeToStr(__int64x nSize, XCHAR* ptszSizeStr, int nType); \ No newline at end of file diff --git a/XEngine_Source/StorageModule_APIHelp/StorageModule_APIHelp.def b/XEngine_Source/StorageModule_APIHelp/StorageModule_APIHelp.def index b764404..7d46266 100644 --- a/XEngine_Source/StorageModule_APIHelp/StorageModule_APIHelp.def +++ b/XEngine_Source/StorageModule_APIHelp/StorageModule_APIHelp.def @@ -20,4 +20,5 @@ EXPORTS APIHelp_Api_GetDIRSize APIHelp_Api_UrlStr APIHelp_Api_GetLastName - APIHelp_Api_WDToUrl \ No newline at end of file + APIHelp_Api_WDToUrl + APIHelp_Api_BSizeToStr \ No newline at end of file diff --git a/XEngine_Source/StorageModule_APIHelp/pch.cpp b/XEngine_Source/StorageModule_APIHelp/pch.cpp index 032d7d3..3e3fc05 100644 --- a/XEngine_Source/StorageModule_APIHelp/pch.cpp +++ b/XEngine_Source/StorageModule_APIHelp/pch.cpp @@ -101,4 +101,8 @@ extern "C" bool APIHelp_Api_GetLastName(XCHAR* ptszLastName, LPCXSTR lpszPathStr extern "C" bool APIHelp_Api_WDToUrl(LPCXSTR lpszUrl, XCHAR* ptszUrl) { return m_APIHelp.APIHelp_Api_WDToUrl(lpszUrl, ptszUrl); +} +extern "C" bool APIHelp_Api_BSizeToStr(__int64x nSize, XCHAR* ptszSizeStr, int nType) +{ + return m_APIHelp.APIHelp_Api_BSizeToStr(nSize, ptszSizeStr, nType); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_StorageApp/XEngine_StorageApp.cpp b/XEngine_Source/XEngine_StorageApp/XEngine_StorageApp.cpp index 0f4f98c..64bf695 100644 --- a/XEngine_Source/XEngine_StorageApp/XEngine_StorageApp.cpp +++ b/XEngine_Source/XEngine_StorageApp/XEngine_StorageApp.cpp @@ -577,7 +577,15 @@ int main(int argc, char** argv) { __int64u nSetSize = APIHelp_Distributed_GetSize(stl_ListIterator->tszBuckSize); APIHelp_Api_GetDIRSize(stl_ListIterator->tszFilePath, &stl_ListIterator->nBuckSize); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,检查文件目录:%s,名称;%s,可用大小:%lld,使用大小:%lld,剩余大小:%lld"), stl_ListIterator->tszFilePath, stl_ListIterator->tszBuckKey, nSetSize, stl_ListIterator->nBuckSize, nSetSize - stl_ListIterator->nBuckSize); + + XCHAR tszAviSize[XPATH_MIN] = {}; + XCHAR tszUseSize[XPATH_MIN] = {}; + XCHAR tszLeftSize[XPATH_MIN] = {}; + APIHelp_Api_BSizeToStr(nSetSize, tszAviSize, 2); + APIHelp_Api_BSizeToStr(stl_ListIterator->nBuckSize, tszUseSize, 2); + APIHelp_Api_BSizeToStr(nSetSize - stl_ListIterator->nBuckSize, tszLeftSize, 2); + + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,检查文件目录:%s,名称;%s,可用大小:%s,使用大小:%s,剩余大小:%s"), stl_ListIterator->tszFilePath, stl_ListIterator->tszBuckKey, tszAviSize, tszUseSize, tszLeftSize); } #ifndef _DEBUG //发送信息报告 From 598151d424baa8594d38686c161154bf868afbe4 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 3 Apr 2026 14:53:52 +0800 Subject: [PATCH 12/24] fixed:api name case-insensitive --- .../XEngine_StorageApp/StorageApp_Center.cpp | 16 +++++++------- .../XEngine_StorageApp/StorageApp_Config.cpp | 22 +++++++++---------- .../StorageApp_Download.cpp | 2 +- .../StorageApp_UPLoader.cpp | 2 +- .../Storage_APPTask/Storage_TaskManage.cpp | 20 ++++++++--------- .../Storage_APPTask/Storage_TaskPass.cpp | 4 ++-- 6 files changed, 33 insertions(+), 33 deletions(-) diff --git a/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp b/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp index e3e6ba5..425bafd 100644 --- a/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp +++ b/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp @@ -59,7 +59,7 @@ bool XEngine_Task_HttpCenter(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int int nUrlCount = 0; //得到URL参数个数 HttpProtocol_ServerHelp_GetParament(pSt_HTTPParam->tszHttpUri, &pptszUrlList, &nUrlCount, tszUrlName); - if (nUrlCount < 1 && (0 != _tcsxncmp(lpszMethodHead, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodHead)))) + if (nUrlCount < 1 && (0 != _tcsxnicmp(lpszMethodHead, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodHead)))) { st_HDRParam.nHttpCode = 400; HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam); @@ -163,7 +163,7 @@ bool XEngine_Task_HttpCenter(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,HTTP验证类型:%d 通过"), lpszClientAddr, nVType); } - if (0 == _tcsxncmp(lpszMethodPost, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodPost))) + if (0 == _tcsxnicmp(lpszMethodPost, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodPost))) { LPCXSTR lpszAPIPass = _X("Pass"); LPCXSTR lpszAPIManage = _X("Manage"); @@ -171,21 +171,21 @@ bool XEngine_Task_HttpCenter(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int BaseLib_String_GetKeyValueA(pptszUrlList[0], "=", tszStrKey, tszStrVlu); //通知类型.用于多服务器 - if (0 == _tcsxncmp(lpszAPIPass, tszStrVlu, _tcsxlen(lpszAPIPass))) + if (0 == _tcsxnicmp(lpszAPIPass, tszStrVlu, _tcsxlen(lpszAPIPass))) { //http://127.0.0.1:5100/api?function=pass¶m=xxx memset(tszStrVlu, '\0', sizeof(tszStrVlu)); BaseLib_String_GetKeyValueA(pptszUrlList[1], "=", tszStrKey, tszStrVlu); XEngine_Task_Pass(tszStrVlu, lpszClientAddr, lpszMsgBuffer, nMsgLen, pSt_HTTPParam); } - else if (0 == _tcsxncmp(lpszAPIManage, tszStrVlu, _tcsxlen(lpszAPIManage))) + else if (0 == _tcsxnicmp(lpszAPIManage, tszStrVlu, _tcsxlen(lpszAPIManage))) { //http://127.0.0.1:5100/api?function=manage¶m=xxx memset(tszStrVlu, '\0', sizeof(tszStrVlu)); BaseLib_String_GetKeyValueA(pptszUrlList[1], "=", tszStrKey, tszStrVlu); XEngine_Task_Manage(tszStrVlu, lpszClientAddr, lpszMsgBuffer, nMsgLen, pSt_HTTPParam); } - else if (0 == _tcsxncmp(lpszAPIAction, tszStrVlu, _tcsxlen(lpszAPIAction))) + else if (0 == _tcsxnicmp(lpszAPIAction, tszStrVlu, _tcsxlen(lpszAPIAction))) { //http://127.0.0.1:5100/api?function=action¶m=xxx memset(tszStrVlu, '\0', sizeof(tszStrVlu)); @@ -193,14 +193,14 @@ bool XEngine_Task_HttpCenter(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int Storage_TaskAction(tszStrVlu, lpszClientAddr, lpszMsgBuffer, nMsgLen, pSt_HTTPParam); } } - else if (0 == _tcsxncmp(lpszMethodGet, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodGet))) + else if (0 == _tcsxnicmp(lpszMethodGet, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodGet))) { //用于心跳 //http://127.0.0.1:5100/api?function=heart LPCXSTR lpszAPIHeart = _X("heart"); BaseLib_String_GetKeyValueA(pptszUrlList[0], "=", tszStrKey, tszStrVlu); - if (0 == _tcsxncmp(lpszAPIHeart, tszStrVlu, _tcsxlen(lpszAPIHeart))) + if (0 == _tcsxnicmp(lpszAPIHeart, tszStrVlu, _tcsxlen(lpszAPIHeart))) { LPCXSTR lpszHdrBuffer = _X("Allow: POST GET PUT\r\n"); HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, lpszHdrBuffer); @@ -208,7 +208,7 @@ bool XEngine_Task_HttpCenter(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("业务客户端:%s,请求GET心跳方法成功"), lpszClientAddr); } } - else if (0 == _tcsxncmp(lpszMethodHead, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodHead))) + else if (0 == _tcsxnicmp(lpszMethodHead, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodHead))) { //获得文件大小 XCHAR tszFileExt[64] = {}; diff --git a/XEngine_Source/XEngine_StorageApp/StorageApp_Config.cpp b/XEngine_Source/XEngine_StorageApp/StorageApp_Config.cpp index 5d9b3b1..2ace27d 100644 --- a/XEngine_Source/XEngine_StorageApp/StorageApp_Config.cpp +++ b/XEngine_Source/XEngine_StorageApp/StorageApp_Config.cpp @@ -48,49 +48,49 @@ bool StorageApp_Config_Parament(int argc,char **argv) for (int i = 0;i < argc;i++) { - if (0 == _tcsxcmp("-h",argv[i])) + if (0 == _tcsxicmp("-h",argv[i])) { StorageApp_Config_ParamentHelp(); return false; } - if (0 == _tcsxcmp("-v", argv[i])) + if (0 == _tcsxicmp("-v", argv[i])) { string m_StrVersion = st_ServiceCfg.st_XVer.pStl_ListStorage->front(); printf("Version:%s\n", m_StrVersion.c_str()); return false; } - else if (0 == _tcsxcmp("-d", argv[i])) + else if (0 == _tcsxicmp("-d", argv[i])) { st_ServiceCfg.bDeamon = _ttxoi(argv[++i]); } - else if (0 == _tcsxcmp("-r", argv[i])) + else if (0 == _tcsxicmp("-r", argv[i])) { st_ServiceCfg.st_Memory.bReload = true; } - else if (0 == _tcsxcmp("-u", argv[i])) + else if (0 == _tcsxicmp("-u", argv[i])) { st_ServiceCfg.bReuseraddr = true; } - else if (0 == _tcsxcmp("-t", argv[i])) + else if (0 == _tcsxicmp("-t", argv[i])) { bIsTest = true; } - else if (0 == _tcsxcmp("-lt", argv[i])) + else if (0 == _tcsxicmp("-lt", argv[i])) { st_ServiceCfg.st_XLog.nLogType = _ttxoi(argv[++i]); } - else if (0 == _tcsxcmp("-l", argv[i])) + else if (0 == _tcsxicmp("-l", argv[i])) { LPCXSTR lpszLogLevel = argv[++i]; - if (0 == _tcsxcmp("debug", lpszLogLevel)) + if (0 == _tcsxicmp("debug", lpszLogLevel)) { st_ServiceCfg.st_XLog.nLogLeave = XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_DEBUG; } - else if (0 == _tcsxcmp("detail", lpszLogLevel)) + else if (0 == _tcsxicmp("detail", lpszLogLevel)) { st_ServiceCfg.st_XLog.nLogLeave = XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_DETAIL; } - else if (0 == _tcsxcmp("info", lpszLogLevel)) + else if (0 == _tcsxicmp("info", lpszLogLevel)) { st_ServiceCfg.st_XLog.nLogLeave = XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO; } diff --git a/XEngine_Source/XEngine_StorageApp/StorageApp_Download.cpp b/XEngine_Source/XEngine_StorageApp/StorageApp_Download.cpp index c800cb9..d1be7ee 100644 --- a/XEngine_Source/XEngine_StorageApp/StorageApp_Download.cpp +++ b/XEngine_Source/XEngine_StorageApp/StorageApp_Download.cpp @@ -152,7 +152,7 @@ bool XEngine_Task_HttpDownload(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, in memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); LPCXSTR lpszMethodGet = _X("GET"); - if (0 != _tcsxncmp(lpszMethodGet, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodGet))) + if (0 != _tcsxnicmp(lpszMethodGet, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodGet))) { st_HDRParam.bIsClose = true; st_HDRParam.nHttpCode = 405; diff --git a/XEngine_Source/XEngine_StorageApp/StorageApp_UPLoader.cpp b/XEngine_Source/XEngine_StorageApp/StorageApp_UPLoader.cpp index 5c557ce..7c7731a 100644 --- a/XEngine_Source/XEngine_StorageApp/StorageApp_UPLoader.cpp +++ b/XEngine_Source/XEngine_StorageApp/StorageApp_UPLoader.cpp @@ -66,7 +66,7 @@ bool XEngine_Task_HttpUPLoader(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, in LPCXSTR lpszMethodPost = _X("POST"); LPCXSTR lpszMethodPut = _X("PUT"); - if ((0 != _tcsxncmp(lpszMethodPost, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodPost))) && (0 != _tcsxncmp(lpszMethodPut, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodPut)))) + if ((0 != _tcsxnicmp(lpszMethodPost, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodPost))) && (0 != _tcsxnicmp(lpszMethodPut, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodPut)))) { st_HDRParam.bIsClose = true; st_HDRParam.nHttpCode = 405; diff --git a/XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskManage.cpp b/XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskManage.cpp index 088a9ca..ca5f03c 100644 --- a/XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskManage.cpp +++ b/XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskManage.cpp @@ -18,14 +18,14 @@ bool XEngine_Task_Manage(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lp st_HDRParam.bIsClose = true; st_HDRParam.nHttpCode = 200; - if (0 == _tcsxncmp(lpszAPIConfig, lpszAPIName, _tcsxlen(lpszAPIConfig))) + if (0 == _tcsxnicmp(lpszAPIConfig, lpszAPIName, _tcsxlen(lpszAPIConfig))) { StorageApp_Config_Parament(0, NULL); HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam); XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("业务客户端:%s,处理用户重载配置文件成功"), lpszClientAddr); } - else if (0 == _tcsxncmp(lpszAPIQuery, lpszAPIName, _tcsxlen(lpszAPIQuery))) + else if (0 == _tcsxnicmp(lpszAPIQuery, lpszAPIName, _tcsxlen(lpszAPIQuery))) { //查询文件列表 int nMode = 0; @@ -160,7 +160,7 @@ bool XEngine_Task_Manage(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lp stl_ListFile.clear(); } } - else if (0 == _tcsxncmp(lpszAPIInsert, lpszAPIName, _tcsxlen(lpszAPIInsert))) + else if (0 == _tcsxnicmp(lpszAPIInsert, lpszAPIName, _tcsxlen(lpszAPIInsert))) { int nListCount = 0; XSTORAGECORE_DBFILE** ppSt_DBFile; @@ -200,7 +200,7 @@ bool XEngine_Task_Manage(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lp XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); BaseLib_Memory_Free((XPPPMEM)&ppSt_DBFile, nListCount); } - else if (0 == _tcsxncmp(lpszAPIDelete, lpszAPIName, _tcsxlen(lpszAPIDelete))) + else if (0 == _tcsxnicmp(lpszAPIDelete, lpszAPIName, _tcsxlen(lpszAPIDelete))) { int nListCount = 0; XSTORAGECORE_DBFILE** ppSt_DBFile; @@ -278,7 +278,7 @@ bool XEngine_Task_Manage(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lp XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); BaseLib_Memory_Free((XPPPMEM)&ppSt_DBFile, nListCount); } - else if (0 == _tcsxncmp(lpszAPIDir, lpszAPIName, _tcsxlen(lpszAPIDir))) + else if (0 == _tcsxnicmp(lpszAPIDir, lpszAPIName, _tcsxlen(lpszAPIDir))) { int nOPCode = 0; int nListCount = 0; @@ -344,7 +344,7 @@ bool XEngine_Task_Manage(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lp XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("业务客户端:%s,请求删除文件夹:%s,成功"), lpszClientAddr, tszRealDir); } } - else if (0 == _tcsxncmp(lpszAPIBucket, lpszAPIName, _tcsxlen(lpszAPIBucket))) + else if (0 == _tcsxnicmp(lpszAPIBucket, lpszAPIName, _tcsxlen(lpszAPIBucket))) { XCHAR tszBuckKey[XPATH_MAX] = {}; Protocol_StorageParse_DirOperator(lpszMsgBuffer, NULL, tszBuckKey, NULL); @@ -371,7 +371,7 @@ bool XEngine_Task_Manage(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lp XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("业务客户端:%s,请求获取BUCKET信息成功"), lpszClientAddr); } - else if (0 == _tcsxncmp(lpszAPIFlushSize, lpszAPIName, _tcsxlen(lpszAPIFlushSize))) + else if (0 == _tcsxnicmp(lpszAPIFlushSize, lpszAPIName, _tcsxlen(lpszAPIFlushSize))) { XCHAR tszBuckKey[XPATH_MAX] = {}; Protocol_StorageParse_DirOperator(lpszMsgBuffer, NULL, tszBuckKey, NULL); @@ -380,7 +380,7 @@ bool XEngine_Task_Manage(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lp XENGINE_STORAGEBUCKET st_StorageBucket = {}; for (auto stl_ListIterator = st_LoadbalanceCfg.st_LoadBalance.pStl_ListBucket->begin(); stl_ListIterator != st_LoadbalanceCfg.st_LoadBalance.pStl_ListBucket->end(); stl_ListIterator++) { - if (0 == _tcsxncmp(stl_ListIterator->tszBuckKey, tszBuckKey, _tcsxlen(stl_ListIterator->tszBuckKey))) + if (0 == _tcsxnicmp(stl_ListIterator->tszBuckKey, tszBuckKey, _tcsxlen(stl_ListIterator->tszBuckKey))) { APIHelp_Api_GetDIRSize(stl_ListIterator->tszFilePath, &stl_ListIterator->nBuckSize); st_StorageBucket = *stl_ListIterator; @@ -394,7 +394,7 @@ bool XEngine_Task_Manage(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lp { for (auto stl_ListIterator = st_LoadbalanceCfg.st_LoadBalance.pStl_ListBucket->begin(); stl_ListIterator != st_LoadbalanceCfg.st_LoadBalance.pStl_ListBucket->end(); stl_ListIterator++) { - if (0 == _tcsxncmp(stl_ListIterator->tszBuckKey, tszBuckKey, _tcsxlen(stl_ListIterator->tszBuckKey))) + if (0 == _tcsxnicmp(stl_ListIterator->tszBuckKey, tszBuckKey, _tcsxlen(stl_ListIterator->tszBuckKey))) { APIHelp_Api_GetDIRSize(stl_ListIterator->tszFilePath, &stl_ListIterator->nBuckSize); } @@ -405,7 +405,7 @@ bool XEngine_Task_Manage(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lp XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("业务客户端:%s,请求刷新BUCKET大小成功"), lpszClientAddr); } - else if (0 == _tcsxncmp(lpszAPITask, lpszAPIName, _tcsxlen(lpszAPITask))) + else if (0 == _tcsxnicmp(lpszAPITask, lpszAPIName, _tcsxlen(lpszAPITask))) { int nDLCount = 0; int nUPCount = 0; diff --git a/XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskPass.cpp b/XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskPass.cpp index 129d386..fe1ca14 100644 --- a/XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskPass.cpp +++ b/XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskPass.cpp @@ -14,7 +14,7 @@ bool XEngine_Task_Pass(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lpsz st_HDRParam.bIsClose = true; st_HDRParam.nHttpCode = 200; //下载 - if (0 == _tcsxncmp(lpszAPIUPFile, lpszAPIName, _tcsxlen(lpszAPIUPFile))) + if (0 == _tcsxnicmp(lpszAPIUPFile, lpszAPIName, _tcsxlen(lpszAPIUPFile))) { XCHAR tszClientAddr[128]; XSTORAGECORE_DBFILE st_DBFile; @@ -26,7 +26,7 @@ bool XEngine_Task_Pass(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lpsz XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("业务客户端:%s,请求的上传文件通知协议成功,Bucket:%s,文件名:%s,大小:%d"), lpszClientAddr, st_DBFile.tszBuckKey, st_DBFile.st_ProtocolFile.tszFileName, st_DBFile.st_ProtocolFile.nFileSize); } - else if (0 == _tcsxncmp(lpszAPIDLFile, lpszAPIName, _tcsxlen(lpszAPIDLFile))) + else if (0 == _tcsxnicmp(lpszAPIDLFile, lpszAPIName, _tcsxlen(lpszAPIDLFile))) { __int64x nFileSize = 0; XCHAR tszPathKey[XPATH_MAX]; From 55794edfde5de064d1723ac7618a96356a1b56da Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 3 Apr 2026 15:00:11 +0800 Subject: [PATCH 13/24] fixed:build error and request api name failure --- .../APPClient_BTorrent/APPClient_BTorrent.cpp | 12 ++++++------ .../APPClient_Download/APPClient_Download.cpp | 7 +++---- .../APPClient_Download/APPClient_Download.vcxproj | 4 ++-- .../APPClient_RestApi/APPClient_RestApi.cpp | 14 +++++++------- .../APPClient_RestApi/APPClient_RestApi.vcxproj | 4 ++-- .../APPClient_UPFile/APPClient_UPFile.vcxproj | 4 ++-- .../APPClient_UPFile/APPClient_UPHdr.h | 1 - .../APPClient_UPMaker/APPClient_UPMaker.cpp | 5 ++--- .../APPClient_UPMaker/APPClient_UPMaker.vcxproj | 4 ++-- .../APPClient_UPDownload/APPClient_UPDownload.cpp | 2 +- .../APPClient_UPDownload.vcxproj | 4 ++-- XEngine_APPClient/VSCopy_x64.bat | 1 + XEngine_APPClient/VSCopy_x86.bat | 1 + 13 files changed, 31 insertions(+), 32 deletions(-) diff --git a/XEngine_APPClient/APPClient_BTorrent/APPClient_BTorrent.cpp b/XEngine_APPClient/APPClient_BTorrent/APPClient_BTorrent.cpp index 1c7c65b..aa40bb1 100644 --- a/XEngine_APPClient/APPClient_BTorrent/APPClient_BTorrent.cpp +++ b/XEngine_APPClient/APPClient_BTorrent/APPClient_BTorrent.cpp @@ -22,9 +22,9 @@ int BTorrent_Parse(LPCXSTR lpszFile) { - XNETHANDLE xhToken; + XHANDLE xhToken = BTorrent_Parse_Init(lpszFile); - if (!BTorrent_Parse_Init(&xhToken, lpszFile)) + if (NULL == xhToken) { printf("BTorrent_Parse_Init:%lX\n", BTorrent_GetLastError()); return -1; @@ -110,14 +110,14 @@ int BTorrent_Parse(LPCXSTR lpszFile) } int BTorrent_Creator(LPCXSTR lpszFile) { - XNETHANDLE xhToken; #ifdef _MSC_BUILD LPCXSTR lpszFileDir = _X("D:\\321"); #else LPCXSTR lpszFileDir = _X("./321"); #endif - if (!BTorrent_Creator_Init(&xhToken, lpszFileDir)) + XHANDLE xhToken = BTorrent_Creator_Init(lpszFileDir); + if (NULL == xhToken) { printf("BTorrent_Creator_Init:%lX\n", BTorrent_GetLastError()); return -1; @@ -136,7 +136,6 @@ int BTorrent_Creator(LPCXSTR lpszFile) } int BTorrent_Download() { - XNETHANDLE xhToken; #ifdef _MSC_BUILD LPCXSTR lpszBTFile = _X("D:\\123.torrent"); LPCXSTR lpszFileDir = _X("D:\\321"); @@ -145,7 +144,8 @@ int BTorrent_Download() LPCXSTR lpszFileDir = _X("./321"); #endif - if (!BTorrent_DLoader_Create(&xhToken, lpszBTFile, lpszFileDir)) + XHANDLE xhToken = BTorrent_DLoader_Create(lpszBTFile, lpszFileDir); + if (NULL == xhToken) { printf("BTorrent_Creator_Init:%lX\n", BTorrent_GetLastError()); return -1; diff --git a/XEngine_APPClient/APPClient_Download/APPClient_Download.cpp b/XEngine_APPClient/APPClient_Download/APPClient_Download.cpp index 3a71a2c..d456a2a 100644 --- a/XEngine_APPClient/APPClient_Download/APPClient_Download.cpp +++ b/XEngine_APPClient/APPClient_Download/APPClient_Download.cpp @@ -26,7 +26,6 @@ #include #include #include -#include #include #include #include "../../XEngine_Source/XStorage_Protocol.h" @@ -34,7 +33,7 @@ using namespace std; //需要优先配置XEngine //WINDOWS使用VS2022 x86 或者 x64 debug 编译 -//linux macos::g++ -std=c++17 -Wall -g APPClient_Download.cpp -o APPClient_Download.exe -I ../../XEngine_Source/XEngine_Depend/XEngine_Module/jsoncpp -L ../../XEngine_Release -lXEngine_BaseLib -lXClient_APIHelp -lXEngine_SystemApi -ljsoncpp -Wl,-rpath=../../XEngine_Release +//linux macos::g++ -std=c++17 -Wall -g APPClient_Download.cpp -o APPClient_Download.exe -I ../../XEngine_Source/XEngine_DependLibrary/XEngine_Module/jsoncpp -L ../../XEngine_Release -lXEngine_BaseLib -lXClient_APIHelp -lXEngine_SystemApi -ljsoncpp -Wl,-rpath=../../XEngine_Release typedef struct { @@ -136,7 +135,7 @@ void P2PFile_Create(list* pStl_ListFile, LPCXSTR lpszFile) { bComplete = FALSE; } - _xtprintf("DLToken:%p DLTotal:%lf DLNow:%lf DLStatus:%d\n", pSt_P2PFile[i].xhToken, st_TaskInfo.dlTotal, st_TaskInfo.dlNow, st_TaskInfo.en_DownStatus); + _xtprintf("DLToken:%p DLTotal:%lld DLNow:%lld DLStatus:%d\n", pSt_P2PFile[i].xhToken, st_TaskInfo.dlTotal, st_TaskInfo.dlNow, st_TaskInfo.en_DownStatus); } if (bComplete) { @@ -164,7 +163,7 @@ int main() int nBodyLen = 0; XCHAR *ptszMsgBody = NULL; //请求分布式存储文件所有位置 - LPCXSTR lpszUrl = _X("http://127.0.0.1:5100/Api/Manage/Query"); + LPCXSTR lpszUrl = _X("http://127.0.0.1:5100/api?function=manage¶m=query"); LPCXSTR lpszFile = _X("D:\\XEngine_Storage\\XEngine_APPClient\\Debug\\qq.exe"); Json::Value st_JsonRoot; diff --git a/XEngine_APPClient/APPClient_Download/APPClient_Download.vcxproj b/XEngine_APPClient/APPClient_Download/APPClient_Download.vcxproj index 12bf455..af9566e 100644 --- a/XEngine_APPClient/APPClient_Download/APPClient_Download.vcxproj +++ b/XEngine_APPClient/APPClient_Download/APPClient_Download.vcxproj @@ -72,7 +72,7 @@ true - $(XEngine_Include);../../XEngine_Source/XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath) + $(XEngine_Include);../../XEngine_Source/XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath) $(XEngine_Lib32);$(LibraryPath) @@ -80,7 +80,7 @@ true - $(XEngine_Include);../../XEngine_Source/XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath) + $(XEngine_Include);../../XEngine_Source/XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath) $(XEngine_Lib64);$(LibraryPath) diff --git a/XEngine_APPClient/APPClient_RestApi/APPClient_RestApi.cpp b/XEngine_APPClient/APPClient_RestApi/APPClient_RestApi.cpp index f1f57ea..2cb723c 100644 --- a/XEngine_APPClient/APPClient_RestApi/APPClient_RestApi.cpp +++ b/XEngine_APPClient/APPClient_RestApi/APPClient_RestApi.cpp @@ -30,13 +30,13 @@ using namespace std; //需要优先配置XEngine //WINDOWS使用VS2022 x86 或者 x64 debug 编译 //linux使用下面的命令编译 -//g++ -std=c++17 -Wall -g APPClient_RestApi.cpp -o APPClient_RestApi.exe -I ../../XEngine_Source/XEngine_Depend/XEngine_Module/jsoncpp -L ../../XEngine_Release -lXEngine_BaseLib -lXClient_APIHelp -ljsoncpp -Wl,-rpath=../../XEngine_Release +//g++ -std=c++17 -Wall -g APPClient_RestApi.cpp -o APPClient_RestApi.exe -I ../../XEngine_Source/XEngine_DependLibrary/XEngine_Module/jsoncpp -L ../../XEngine_Release -lXEngine_BaseLib -lXClient_APIHelp -ljsoncpp -Wl,-rpath=../../XEngine_Release XCHAR tszBaseBuffer[MAX_PATH]; XCHAR tszHdrBuffer[MAX_PATH]; void API_Manage_Bucket() { - LPCXSTR lpszUrl = _X("http://127.0.0.1:5100/Api/Manage/Bucket"); + LPCXSTR lpszUrl = _X("http://127.0.0.1:5100/api?function=manage¶m=bucket"); int nLen = 0; int nCode = 0; XCHAR* ptszMsgBuffer = NULL; @@ -52,7 +52,7 @@ void API_Manage_Bucket() //查询 void API_Manage_Query() { - LPCXSTR lpszUrl = _X("http://127.0.0.1:5100/Api/Manage/QueryFile"); + LPCXSTR lpszUrl = _X("http://127.0.0.1:5100/api?function=manage¶m=query"); int nLen = 0; int nCode = 0; XCHAR* ptszMsgBuffer = NULL; @@ -73,7 +73,7 @@ void API_Manage_Query() //插入 void API_Manage_Insert() { - LPCXSTR lpszUrl = _X("http://127.0.0.1:5100/Api/Manage/Insert"); + LPCXSTR lpszUrl = _X("http://127.0.0.1:5100/api?function=manage¶m=insert"); int nLen = 0; int nCode = 0; XCHAR* ptszMsgBuffer = NULL; @@ -101,7 +101,7 @@ void API_Manage_Insert() //删除 void API_Manage_Delete() { - LPCXSTR lpszUrl = _X("http://127.0.0.1:5100/Api/Manage/Delete"); + LPCXSTR lpszUrl = _X("http://127.0.0.1:5100/api?function=manage¶m=delete"); int nLen = 0; int nCode = 0; XCHAR* ptszMsgBuffer = NULL; @@ -126,7 +126,7 @@ void API_Manage_Delete() //文件夹 void API_Manage_Dir() { - LPCXSTR lpszUrl = _X("http://127.0.0.1:5100/Api/Manage/Dir"); + LPCXSTR lpszUrl = _X("http://127.0.0.1:5100/api?function=manage¶m=dir"); int nLen = 0; int nCode = 0; XCHAR* ptszMsgBuffer = NULL; @@ -170,7 +170,7 @@ void API_Manage_Dir() //任务管理 void API_Manage_Task() { - LPCXSTR lpszUrl = _X("http://127.0.0.1:5100/Api/Manage/Task"); + LPCXSTR lpszUrl = _X("http://127.0.0.1:5100/api?function=manage¶m=task"); int nLen = 0; int nCode = 0; XCHAR* ptszMsgBuffer = NULL; diff --git a/XEngine_APPClient/APPClient_RestApi/APPClient_RestApi.vcxproj b/XEngine_APPClient/APPClient_RestApi/APPClient_RestApi.vcxproj index 7b14a93..f44b510 100644 --- a/XEngine_APPClient/APPClient_RestApi/APPClient_RestApi.vcxproj +++ b/XEngine_APPClient/APPClient_RestApi/APPClient_RestApi.vcxproj @@ -72,7 +72,7 @@ true - $(XEngine_Include);../../XEngine_Source/XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath) + $(XEngine_Include);../../XEngine_Source/XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath) $(XEngine_Lib32);$(LibraryPath) @@ -80,7 +80,7 @@ true - $(XEngine_Include);../../XEngine_Source/XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath) + $(XEngine_Include);../../XEngine_Source/XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath) $(XEngine_Lib64);$(LibraryPath) diff --git a/XEngine_APPClient/APPClient_UPDate/APPClient_UPFile/APPClient_UPFile.vcxproj b/XEngine_APPClient/APPClient_UPDate/APPClient_UPFile/APPClient_UPFile.vcxproj index 7487c20..4f49951 100644 --- a/XEngine_APPClient/APPClient_UPDate/APPClient_UPFile/APPClient_UPFile.vcxproj +++ b/XEngine_APPClient/APPClient_UPDate/APPClient_UPFile/APPClient_UPFile.vcxproj @@ -71,11 +71,11 @@ - $(XEngine_Include);../../../XEngine_Source/XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath) + $(XEngine_Include);../../../XEngine_Source/XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath) $(XEngine_Lib32);$(LibraryPath) - $(XEngine_Include);../../../XEngine_Source/XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath) + $(XEngine_Include);../../../XEngine_Source/XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath) $(XEngine_Lib64);$(LibraryPath) diff --git a/XEngine_APPClient/APPClient_UPDate/APPClient_UPFile/APPClient_UPHdr.h b/XEngine_APPClient/APPClient_UPDate/APPClient_UPFile/APPClient_UPHdr.h index 2401497..38ebb5c 100644 --- a/XEngine_APPClient/APPClient_UPDate/APPClient_UPFile/APPClient_UPHdr.h +++ b/XEngine_APPClient/APPClient_UPDate/APPClient_UPFile/APPClient_UPHdr.h @@ -26,7 +26,6 @@ using namespace std; #include #include #include -#include #include #include diff --git a/XEngine_APPClient/APPClient_UPDate/APPClient_UPMaker/APPClient_UPMaker.cpp b/XEngine_APPClient/APPClient_UPDate/APPClient_UPMaker/APPClient_UPMaker.cpp index 61c4b36..8b6f5dd 100644 --- a/XEngine_APPClient/APPClient_UPDate/APPClient_UPMaker/APPClient_UPMaker.cpp +++ b/XEngine_APPClient/APPClient_UPDate/APPClient_UPMaker/APPClient_UPMaker.cpp @@ -25,7 +25,6 @@ using namespace std; #include #include #include -#include #include #include #include @@ -103,10 +102,10 @@ bool HelpModule_Api_BuildVer(XCHAR* ptszLocalBuffer, XCHAR* ptszRemoteBuffer, in Json::StreamWriterBuilder st_JsonBuilder; //判断是否是自定义版本 XCHAR tszTimer[64]; - XENGINE_LIBTIMER st_Timer; + XENGINE_LIBTIME st_Timer; memset(tszTimer, '\0', sizeof(tszTimer)); - memset(&st_Timer, '\0', sizeof(XENGINE_LIBTIMER)); + memset(&st_Timer, '\0', sizeof(XENGINE_LIBTIME)); BaseLib_Time_GetSysTime(&st_Timer); _xstprintf(tszTimer, _X("%04d%02d%02d%02d%02d%02d"), st_Timer.wYear, st_Timer.wMonth, st_Timer.wDay, st_Timer.wHour, st_Timer.wMinute, st_Timer.wSecond); diff --git a/XEngine_APPClient/APPClient_UPDate/APPClient_UPMaker/APPClient_UPMaker.vcxproj b/XEngine_APPClient/APPClient_UPDate/APPClient_UPMaker/APPClient_UPMaker.vcxproj index 18745ed..8d867ef 100644 --- a/XEngine_APPClient/APPClient_UPDate/APPClient_UPMaker/APPClient_UPMaker.vcxproj +++ b/XEngine_APPClient/APPClient_UPDate/APPClient_UPMaker/APPClient_UPMaker.vcxproj @@ -71,11 +71,11 @@ - $(XEngine_Include);../../../XEngine_Source/XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath) + $(XEngine_Include);../../../XEngine_Source/XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath) $(XEngine_Lib32);$(LibraryPath) - $(XEngine_Include);../../../XEngine_Source/XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath) + $(XEngine_Include);../../../XEngine_Source/XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath) $(XEngine_Lib64);$(LibraryPath) diff --git a/XEngine_APPClient/APPClient_UPDownload/APPClient_UPDownload.cpp b/XEngine_APPClient/APPClient_UPDownload/APPClient_UPDownload.cpp index 26a3d29..34072a7 100644 --- a/XEngine_APPClient/APPClient_UPDownload/APPClient_UPDownload.cpp +++ b/XEngine_APPClient/APPClient_UPDownload/APPClient_UPDownload.cpp @@ -30,7 +30,7 @@ using namespace std; //需要优先配置XEngine //WINDOWS使用VS2022 x86 或者 x64 debug 编译 -//linux macos::g++ -std=c++17 -Wall -g APPClient_UPDownload.cpp -o APPClient_UPDownload.exe -I ../../XEngine_Source/XEngine_Depend/XEngine_Module/jsoncpp -L ../../XEngine_Release -lXEngine_BaseLib -lXEngine_Cryption -lXClient_APIHelp -ljsoncpp -Wl,-rpath=../../XEngine_Release +//linux macos::g++ -std=c++17 -Wall -g APPClient_UPDownload.cpp -o APPClient_UPDownload.exe -I ../../XEngine_Source/XEngine_DependLibrary/XEngine_Module/jsoncpp -L ../../XEngine_Release -lXEngine_BaseLib -lXEngine_Cryption -lXClient_APIHelp -ljsoncpp -Wl,-rpath=../../XEngine_Release //上传文件 diff --git a/XEngine_APPClient/APPClient_UPDownload/APPClient_UPDownload.vcxproj b/XEngine_APPClient/APPClient_UPDownload/APPClient_UPDownload.vcxproj index 171a902..48174e2 100644 --- a/XEngine_APPClient/APPClient_UPDownload/APPClient_UPDownload.vcxproj +++ b/XEngine_APPClient/APPClient_UPDownload/APPClient_UPDownload.vcxproj @@ -72,7 +72,7 @@ true - $(XEngine_Include);../../XEngine_Source/XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath) + $(XEngine_Include);../../XEngine_Source/XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath) $(XEngine_Lib32);$(LibraryPath) @@ -80,7 +80,7 @@ true - $(XEngine_Include);../../XEngine_Source/XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath) + $(XEngine_Include);../../XEngine_Source/XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath) $(XEngine_Lib64);$(LibraryPath) diff --git a/XEngine_APPClient/VSCopy_x64.bat b/XEngine_APPClient/VSCopy_x64.bat index 78e0725..7d97be4 100644 --- a/XEngine_APPClient/VSCopy_x64.bat +++ b/XEngine_APPClient/VSCopy_x64.bat @@ -1,4 +1,5 @@ copy /y "%XEngine_Lib64%\XEngine_BaseLib\XEngine_BaseLib.dll" "./" +copy /y "%XEngine_Lib64%\XEngine_BaseLib\XEngine_BaseSafe.dll" "./" copy /y "%XEngine_Lib64%\XEngine_BaseLib\XEngine_Algorithm.dll" "./" copy /y "%XEngine_Lib64%\XEngine_Core\XEngine_OPenSsl.dll" "./" copy /y "%XEngine_Lib64%\XEngine_SystemSdk\XEngine_SystemApi.dll" "./" diff --git a/XEngine_APPClient/VSCopy_x86.bat b/XEngine_APPClient/VSCopy_x86.bat index 768ce0e..9b56baf 100644 --- a/XEngine_APPClient/VSCopy_x86.bat +++ b/XEngine_APPClient/VSCopy_x86.bat @@ -1,4 +1,5 @@ copy /y "%XEngine_Lib32%\XEngine_BaseLib\XEngine_BaseLib.dll" "./" +copy /y "%XEngine_Lib32%\XEngine_BaseLib\XEngine_BaseSafe.dll" "./" copy /y "%XEngine_Lib32%\XEngine_BaseLib\XEngine_Algorithm.dll" "./" copy /y "%XEngine_Lib32%\XEngine_Core\XEngine_Cryption.dll" "./" copy /y "%XEngine_Lib32%\XEngine_SystemSdk\XEngine_SystemApi.dll" "./" From 77e8ded5a434dc54ce759348c0fe45d487f3fb6b Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 3 Apr 2026 15:22:30 +0800 Subject: [PATCH 14/24] fixed:process not found api name --- .../XEngine_StorageApp/StorageApp_Center.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp b/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp index 425bafd..b1ecba6 100644 --- a/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp +++ b/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp @@ -192,6 +192,13 @@ bool XEngine_Task_HttpCenter(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int BaseLib_String_GetKeyValueA(pptszUrlList[1], "=", tszStrKey, tszStrVlu); Storage_TaskAction(tszStrVlu, lpszClientAddr, lpszMsgBuffer, nMsgLen, pSt_HTTPParam); } + else + { + Protocol_StoragePacket_HTTPPacket(tszRVBuffer, &nRVLen, ERROR_STORAGE_PROTOCOL_HTTP_MANAGE_APINAME, "unknow api"); + HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("业务客户端:%s,请求的方法:%s 不存在"), lpszClientAddr, tszStrVlu); + } } else if (0 == _tcsxnicmp(lpszMethodGet, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodGet))) { @@ -207,6 +214,13 @@ bool XEngine_Task_HttpCenter(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("业务客户端:%s,请求GET心跳方法成功"), lpszClientAddr); } + else + { + Protocol_StoragePacket_HTTPPacket(tszRVBuffer, &nRVLen, ERROR_STORAGE_PROTOCOL_HTTP_MANAGE_APINAME, "unknow api"); + HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("业务客户端:%s,请求的方法:%s 不存在"), lpszClientAddr, tszStrVlu); + } } else if (0 == _tcsxnicmp(lpszMethodHead, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodHead))) { From 8c6a2cde9373bc2434a671e32cdbd0ef4cbe7ffe Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Thu, 16 Apr 2026 16:34:21 +0800 Subject: [PATCH 15/24] ci:update --- .github/workflows/Alma_build.yml | 2 +- .github/workflows/Centos_build.yml | 2 +- .github/workflows/Rocky_build.yml | 2 +- .github/workflows/cppcheck.yml | 2 +- .github/workflows/debian_build.yml | 2 +- .github/workflows/fedora_build.yml | 2 +- .github/workflows/macbuild.yml | 4 ++-- .github/workflows/msbuild.yml | 6 +++--- .github/workflows/ubuntu_build.yml | 8 ++++---- 9 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/Alma_build.yml b/.github/workflows/Alma_build.yml index c941026..d8f12d2 100644 --- a/.github/workflows/Alma_build.yml +++ b/.github/workflows/Alma_build.yml @@ -92,7 +92,7 @@ jobs: ./XEngine_XStorageApp -t - name: Upload folder as artifact with Alma Linux - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: XEngine_XStorageApp-AlmaLinux_${{ matrix.version }}_${{ matrix.artifact }} path: XEngine_Release/ diff --git a/.github/workflows/Centos_build.yml b/.github/workflows/Centos_build.yml index 56aee55..7bf8887 100644 --- a/.github/workflows/Centos_build.yml +++ b/.github/workflows/Centos_build.yml @@ -96,7 +96,7 @@ jobs: ./XEngine_XStorageApp -t - name: Upload folder as artifact with CentOS - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: XEngine_XStorageApp-CentOS_${{ matrix.version }}_${{ matrix.artifact }} path: XEngine_Release/ diff --git a/.github/workflows/Rocky_build.yml b/.github/workflows/Rocky_build.yml index 8311873..1d9b000 100644 --- a/.github/workflows/Rocky_build.yml +++ b/.github/workflows/Rocky_build.yml @@ -94,7 +94,7 @@ jobs: ./XEngine_XStorageApp -t - name: Upload folder as artifact with RockyLinux - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: XEngine_XStorageApp-RockyLinux_${{ matrix.version }}_${{ matrix.artifact }} path: XEngine_Release/ diff --git a/.github/workflows/cppcheck.yml b/.github/workflows/cppcheck.yml index 0a6eb20..c6884d5 100644 --- a/.github/workflows/cppcheck.yml +++ b/.github/workflows/cppcheck.yml @@ -29,7 +29,7 @@ jobs: continue-on-error: true - name: Upload Cppcheck Results - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: cppcheck_results path: static_analysis/log.xml \ No newline at end of file diff --git a/.github/workflows/debian_build.yml b/.github/workflows/debian_build.yml index cffcaa2..dd26d82 100644 --- a/.github/workflows/debian_build.yml +++ b/.github/workflows/debian_build.yml @@ -86,7 +86,7 @@ jobs: ./XEngine_XStorageApp -t - name: Upload folder as artifact - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: XEngine_XStorageApp-Debian_${{ matrix.version }}_x86-64 path: XEngine_Release/ diff --git a/.github/workflows/fedora_build.yml b/.github/workflows/fedora_build.yml index 4f5590f..4e239df 100644 --- a/.github/workflows/fedora_build.yml +++ b/.github/workflows/fedora_build.yml @@ -82,7 +82,7 @@ jobs: ./XEngine_XStorageApp -t - name: Upload folder as artifact - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: XEngine_XStorageApp-Fedora_${{ matrix.fedora-version }}_${{ matrix.artifact }} path: XEngine_Release/ diff --git a/.github/workflows/macbuild.yml b/.github/workflows/macbuild.yml index 44ee638..8e9c119 100644 --- a/.github/workflows/macbuild.yml +++ b/.github/workflows/macbuild.yml @@ -81,14 +81,14 @@ jobs: - name: Upload folder as artifact with mac x64 if: matrix.os == 'macos-15-intel' - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: XEngine_XStorageApp-Mac_x86_64 path: XEngine_Release/ retention-days: 1 - name: Upload folder as artifact with mac arm if: matrix.os == 'macos-15' - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: XEngine_XStorageApp-Mac_Arm64 path: XEngine_Release/ diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml index 6cbe98d..0437b4e 100644 --- a/.github/workflows/msbuild.yml +++ b/.github/workflows/msbuild.yml @@ -113,21 +113,21 @@ jobs: - name: Upload folder as artifact with x86 if: matrix.configuration == 'Release' && matrix.platform == 'x86' - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: XEngine_StorageApp-Windows_x86_32 path: XEngine_Release/ retention-days: 1 - name: Upload folder as artifact with x64 if: matrix.configuration == 'Release' && matrix.platform == 'x64' - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: XEngine_StorageApp-Windows_x86_64 path: XEngine_Release/ retention-days: 1 - name: Upload folder as artifact with ARM64 if: matrix.configuration == 'Release' && matrix.platform == 'ARM64' - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: XEngine_StorageApp-Windows_Arm64 path: XEngine_Release/ diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml index 036aadc..aab5f1e 100644 --- a/.github/workflows/ubuntu_build.yml +++ b/.github/workflows/ubuntu_build.yml @@ -100,28 +100,28 @@ jobs: - name: Upload folder as artifact with ubuntu22.04 if: matrix.os == 'ubuntu-22.04' - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: XEngine_XStorageApp-Ubuntu_22.04_x86_64 path: XEngine_Release/ retention-days: 1 - name: Upload folder as artifact with ubuntu24.04 if: matrix.os == 'ubuntu-24.04' - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: XEngine_XStorageApp-Ubuntu_24.04_x86_64 path: XEngine_Release/ retention-days: 1 - name: Upload folder as artifact with ubuntu22.04-arm if: matrix.os == 'ubuntu-22.04-arm' - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: XEngine_XStorageApp-Ubuntu_22.04_Arm64 path: XEngine_Release/ retention-days: 1 - name: Upload folder as artifact with ubuntu24.04-arm if: matrix.os == 'ubuntu-24.04-arm' - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: XEngine_XStorageApp-Ubuntu_24.04_Arm64 path: XEngine_Release/ From 8105aac484879e971c034a32ccad36708e39459b Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 17 Apr 2026 10:41:25 +0800 Subject: [PATCH 16/24] update:depend library --- XEngine_Source/XEngine_DependLibrary | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/XEngine_Source/XEngine_DependLibrary b/XEngine_Source/XEngine_DependLibrary index 055db5a..fa19ea8 160000 --- a/XEngine_Source/XEngine_DependLibrary +++ b/XEngine_Source/XEngine_DependLibrary @@ -1 +1 @@ -Subproject commit 055db5ab639c8dc656c149eb00b9773ec73585bb +Subproject commit fa19ea8880dfa312221b5d17ece40c3bbc0f00cf From 4b042877e181adba620fc4396b56992e81deabfe Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 17 Apr 2026 10:46:15 +0800 Subject: [PATCH 17/24] modify:http restful api verification Unification --- XEngine_Source/XEngine_StorageApp/Makefile | 4 +- .../XEngine_StorageApp/StorageApp_Center.cpp | 92 +---------------- .../XEngine_StorageApp/StorageApp_Center.h | 1 + .../StorageApp_Download.cpp | 87 +--------------- .../StorageApp_HTTPHelp.cpp | 99 +++++++++++++++++++ .../XEngine_StorageApp/StorageApp_HTTPHelp.h | 13 +++ .../XEngine_StorageApp/StorageApp_Hdr.h | 1 + .../StorageApp_UPLoader.cpp | 87 +--------------- .../XEngine_StorageApp/StorageApp_Webdav.cpp | 87 +--------------- .../XEngine_StorageApp.vcxproj | 2 + .../XEngine_StorageApp.vcxproj.filters | 6 ++ 11 files changed, 132 insertions(+), 347 deletions(-) create mode 100644 XEngine_Source/XEngine_StorageApp/StorageApp_HTTPHelp.cpp create mode 100644 XEngine_Source/XEngine_StorageApp/StorageApp_HTTPHelp.h diff --git a/XEngine_Source/XEngine_StorageApp/Makefile b/XEngine_Source/XEngine_StorageApp/Makefile index e275f16..bb2728e 100644 --- a/XEngine_Source/XEngine_StorageApp/Makefile +++ b/XEngine_Source/XEngine_StorageApp/Makefile @@ -8,7 +8,7 @@ LIB = -lXEngine_BaseLib -lXEngine_Algorithm -lXEngine_Core -lXEngine_ManagePool -ljsoncpp -ltinyxml2 -lXEngine_InfoReport -lXEngine_Verification LIBEX = OBJECTS = Storage_TaskPass.o Storage_TaskManage.o Storage_TaskP2p.o Storage_TaskAction.o \ - StorageApp_Config.o StorageApp_Download.o StorageApp_Network.o StorageApp_Center.o StorageApp_UPLoader.o StorageApp_Webdav.o XEngine_StorageApp.o + StorageApp_Config.o StorageApp_HTTPHelp.o StorageApp_Download.o StorageApp_Network.o StorageApp_Center.o StorageApp_UPLoader.o StorageApp_Webdav.o XEngine_StorageApp.o ifeq ($(RELEASE),1) FLAGS = -c -D _RELEASE @@ -49,6 +49,8 @@ all:$(OBJECTS) StorageApp_Config.o:./StorageApp_Config.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./StorageApp_Config.cpp +StorageApp_HTTPHelp.o:./StorageApp_HTTPHelp.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./StorageApp_HTTPHelp.cpp StorageApp_Download.o:./StorageApp_Download.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./StorageApp_Download.cpp StorageApp_Network.o:./StorageApp_Network.cpp diff --git a/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp b/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp index b1ecba6..77dc323 100644 --- a/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp +++ b/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp @@ -68,100 +68,16 @@ bool XEngine_Task_HttpCenter(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); return false; } - st_HDRParam.bIsClose = true; - st_HDRParam.nHttpCode = 200; + if (st_ServiceCfg.st_XProxy.bAuthPass) { - int nVType = 0; - RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam = {}; - - st_HDRParam.nHttpCode = 401; - st_HDRParam.bIsClose = true; - st_HDRParam.bAuth = true; - //打包验证信息 - int nHDRLen = 0; - XCHAR tszHDRBuffer[XPATH_MAX] = {}; - if (1 == st_ServiceCfg.st_XProxy.nVType) - { - Verification_HTTP_BasicServerPacket(tszHDRBuffer, &nHDRLen); - } - else - { - XCHAR tszNonceStr[64] = {}; - XCHAR tszOpaqueStr[64] = {}; - Verification_HTTP_DigestServerPacket(tszHDRBuffer, &nHDRLen, tszNonceStr, tszOpaqueStr); - } - //后去验证方法 - if (!Verification_HTTP_GetType(pptszListHdr, nHdrCount, &nVType)) - { - HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszHDRBuffer); - XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,验证方式:%d,错误:%lX"), lpszClientAddr, st_ServiceCfg.st_XProxy.nVType, Verification_GetLastError()); - return false; - } - //验证方式是否一致 - if (st_ServiceCfg.st_XProxy.nVType != nVType) - { - HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszHDRBuffer); - XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,验证方式错误,请求:%d,需求:%d"), lpszClientAddr, nVType, st_ServiceCfg.st_XProxy.nVType); - return false; - } - bool bRet = false; - int nHTTPCode = 0; - int nMSGLen = 0; - XCLIENT_APIHTTP st_APIHttp = {}; - - XCHAR* ptszMSGBuffer = NULL; - if (!APIClient_Http_Request(_X("GET"), st_ServiceCfg.st_XProxy.tszAuthPass, NULL, &nHTTPCode, &ptszMSGBuffer, &nMSGLen, NULL, NULL, &st_APIHttp)) - { - st_HDRParam.nHttpCode = 500; - Protocol_StoragePacket_HTTPPacket(tszRVBuffer, &nRVLen, ERROR_STORAGE_PROTOCOL_HTTP_MANAGE_SERVERDOWN, "api server is down,cant verification"); - HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen, tszHDRBuffer); - XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,GET请求验证服务:%s 失败,错误码:%lX"), lpszClientAddr, st_ServiceCfg.st_XProxy.tszAuthPass, APIClient_GetLastError()); - return false; - } - if (200 != nHTTPCode) - { - st_HDRParam.nHttpCode = 500; - Protocol_StoragePacket_HTTPPacket(tszRVBuffer, &nRVLen, ERROR_STORAGE_PROTOCOL_HTTP_MANAGE_SERVERDOWN, "api server is down,cant verification"); - HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen, tszHDRBuffer); - XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,GET请求验证服务:%s 失败,错误:%d"), lpszClientAddr, st_ServiceCfg.st_XProxy.tszAuthPass, nHTTPCode); - return false; - } - XENGINE_PROTOCOL_USERAUTH st_UserAuth = {}; - if (!Protocol_StorageParse_User(ptszMSGBuffer, nMsgLen, &st_UserAuth)) - { - st_HDRParam.nHttpCode = 500; - Protocol_StoragePacket_HTTPPacket(tszRVBuffer, &nRVLen, ERROR_STORAGE_PROTOCOL_HTTP_MANAGE_AUTHFAIL, "api server reply failure,cant verification"); - HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen, tszHDRBuffer); - XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,返回内容:%s 错误,无法继续"), lpszClientAddr, ptszMSGBuffer); - BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMSGBuffer); - return false; - } - BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMSGBuffer); - - if (1 == nVType) - { - bRet = Verification_HTTP_Basic(st_UserAuth.tszUserName, st_UserAuth.tszUserPass, pptszListHdr, nHdrCount); - } - else if (2 == nVType) - { - bRet = Verification_HTTP_Digest(st_UserAuth.tszUserName, st_UserAuth.tszUserPass, pSt_HTTPParam->tszHttpMethod, pptszListHdr, nHdrCount); - } - - if (!bRet) + if (!StorageApp_HTTPHelp_Verification(lpszClientAddr, pSt_HTTPParam, pptszListHdr, nHdrCount, st_ServiceCfg.st_XProxy.tszAuthPass)) { - HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszHDRBuffer); - XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,验证处理错误,可能用户密码登信息不匹配,类型:%d"), lpszClientAddr, nVType); return false; } - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,HTTP验证类型:%d 通过"), lpszClientAddr, nVType); } + st_HDRParam.bIsClose = true; + st_HDRParam.nHttpCode = 200; if (0 == _tcsxnicmp(lpszMethodPost, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodPost))) { diff --git a/XEngine_Source/XEngine_StorageApp/StorageApp_Center.h b/XEngine_Source/XEngine_StorageApp/StorageApp_Center.h index aace083..b8d55fe 100644 --- a/XEngine_Source/XEngine_StorageApp/StorageApp_Center.h +++ b/XEngine_Source/XEngine_StorageApp/StorageApp_Center.h @@ -11,4 +11,5 @@ // History: *********************************************************************/ XHTHREAD XCALLBACK XEngine_Center_HTTPThread(XPVOID lParam); + bool XEngine_Task_HttpCenter(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, XCHAR** pptszListHdr, int nHdrCount); \ No newline at end of file diff --git a/XEngine_Source/XEngine_StorageApp/StorageApp_Download.cpp b/XEngine_Source/XEngine_StorageApp/StorageApp_Download.cpp index d1be7ee..1d49f9f 100644 --- a/XEngine_Source/XEngine_StorageApp/StorageApp_Download.cpp +++ b/XEngine_Source/XEngine_StorageApp/StorageApp_Download.cpp @@ -179,95 +179,10 @@ bool XEngine_Task_HttpDownload(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, in //验证用户 if (st_ServiceCfg.st_XProxy.bDLPass) { - int nVType = 0; - RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam = {}; - - st_HDRParam.nHttpCode = 401; - st_HDRParam.bIsClose = true; - st_HDRParam.bAuth = true; - //打包验证信息 - int nHDRLen = 0; - XCHAR tszHDRBuffer[XPATH_MAX] = {}; - if (1 == st_ServiceCfg.st_XProxy.nVType) - { - Verification_HTTP_BasicServerPacket(tszHDRBuffer, &nHDRLen); - } - else - { - XCHAR tszNonceStr[64] = {}; - XCHAR tszOpaqueStr[64] = {}; - Verification_HTTP_DigestServerPacket(tszHDRBuffer, &nHDRLen, tszNonceStr, tszOpaqueStr); - } - //后去验证方法 - if (!Verification_HTTP_GetType(pptszListHdr, nHdrCount, &nVType)) - { - HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszHDRBuffer); - XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPDOWNLOAD); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("下载客户端:%s,用户验证失败,验证方式:%d,错误:%lX"), lpszClientAddr, st_ServiceCfg.st_XProxy.nVType, Verification_GetLastError()); - return false; - } - //验证方式是否一致 - if (st_ServiceCfg.st_XProxy.nVType != nVType) - { - HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszHDRBuffer); - XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPDOWNLOAD); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("下载客户端:%s,用户验证失败,验证方式错误,请求:%d,需求:%d"), lpszClientAddr, nVType, st_ServiceCfg.st_XProxy.nVType); - return false; - } - bool bRet = false; - int nHTTPCode = 0; - int nMSGLen = 0; - XCLIENT_APIHTTP st_APIHttp = {}; - - XCHAR* ptszMSGBuffer = NULL; - if (!APIClient_Http_Request(_X("GET"), st_ServiceCfg.st_XProxy.tszDLPass, NULL, &nHTTPCode, &ptszMSGBuffer, &nMSGLen, NULL, NULL, &st_APIHttp)) - { - st_HDRParam.nHttpCode = 500; - Protocol_StoragePacket_HTTPPacket(tszRVBuffer, &nRVLen, ERROR_STORAGE_PROTOCOL_HTTP_MANAGE_SERVERDOWN, "api server is down,cant verification"); - HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen, tszHDRBuffer); - XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPDOWNLOAD); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("下载客户端:%s,用户验证失败,GET请求验证服务:%s 失败,错误码:%lX"), lpszClientAddr, st_ServiceCfg.st_XProxy.tszDLPass, APIClient_GetLastError()); - return false; - } - if (200 != nHTTPCode) - { - st_HDRParam.nHttpCode = 500; - Protocol_StoragePacket_HTTPPacket(tszRVBuffer, &nRVLen, ERROR_STORAGE_PROTOCOL_HTTP_MANAGE_SERVERDOWN, "api server is down,cant verification"); - HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen, tszHDRBuffer); - XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPDOWNLOAD); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("下载客户端:%s,用户验证失败,GET请求验证服务:%s 失败,错误:%d"), lpszClientAddr, st_ServiceCfg.st_XProxy.tszDLPass, nHTTPCode); - return false; - } - XENGINE_PROTOCOL_USERAUTH st_UserAuth = {}; - if (!Protocol_StorageParse_User(ptszMSGBuffer, nMsgLen, &st_UserAuth)) - { - st_HDRParam.nHttpCode = 500; - Protocol_StoragePacket_HTTPPacket(tszRVBuffer, &nRVLen, ERROR_STORAGE_PROTOCOL_HTTP_MANAGE_AUTHFAIL, "api server reply failure,cant verification"); - HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen, tszHDRBuffer); - XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPDOWNLOAD); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("下载客户端:%s,用户验证失败,返回内容:%s 错误,无法继续"), lpszClientAddr, ptszMSGBuffer); - BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMSGBuffer); - return false; - } - BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMSGBuffer); - - if (1 == nVType) - { - bRet = Verification_HTTP_Basic(st_UserAuth.tszUserName, st_UserAuth.tszUserPass, pptszListHdr, nHdrCount); - } - else if (2 == nVType) - { - bRet = Verification_HTTP_Digest(st_UserAuth.tszUserName, st_UserAuth.tszUserPass, pSt_HTTPParam->tszHttpMethod, pptszListHdr, nHdrCount); - } - - if (!bRet) + if (!StorageApp_HTTPHelp_Verification(lpszClientAddr, pSt_HTTPParam, pptszListHdr, nHdrCount, st_ServiceCfg.st_XProxy.tszDLPass)) { - HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszHDRBuffer); - XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPDOWNLOAD); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("下载客户端:%s,用户验证失败,验证处理错误,可能用户密码登信息不匹配,类型:%d"), lpszClientAddr, nVType); return false; } - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("下载客户端:%s,HTTP验证类型:%d 通过"), lpszClientAddr, nVType); } //使用重定向,这是分布式重定向实现 if (st_LoadbalanceCfg.st_LBDistributed.nDownldMode > 0) diff --git a/XEngine_Source/XEngine_StorageApp/StorageApp_HTTPHelp.cpp b/XEngine_Source/XEngine_StorageApp/StorageApp_HTTPHelp.cpp new file mode 100644 index 0000000..d1e33c1 --- /dev/null +++ b/XEngine_Source/XEngine_StorageApp/StorageApp_HTTPHelp.cpp @@ -0,0 +1,99 @@ +#include "StorageApp_Hdr.h" + +bool StorageApp_HTTPHelp_Verification(LPCXSTR lpszClientAddr, RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, XCHAR** pptszListHdr, int nHdrCount, LPCXSTR lpszRestApi) +{ + int nSDLen = 2048; + int nRVLen = 2048; + int nVType = 0; + XCHAR tszSDBuffer[2048] = {}; + XCHAR tszRVBuffer[2048] = {}; + RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam = {}; + + st_HDRParam.nHttpCode = 401; + st_HDRParam.bIsClose = true; + st_HDRParam.bAuth = true; + //打包验证信息 + int nHDRLen = 0; + XCHAR tszHDRBuffer[XPATH_MAX] = {}; + if (1 == st_ServiceCfg.st_XProxy.nVType) + { + Verification_HTTP_BasicServerPacket(tszHDRBuffer, &nHDRLen); + } + else + { + XCHAR tszNonceStr[64] = {}; + XCHAR tszOpaqueStr[64] = {}; + Verification_HTTP_DigestServerPacket(tszHDRBuffer, &nHDRLen, tszNonceStr, tszOpaqueStr); + } + //后去验证方法 + if (!Verification_HTTP_GetType(pptszListHdr, nHdrCount, &nVType)) + { + HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszHDRBuffer); + XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,验证方式:%d,错误:%lX"), lpszClientAddr, st_ServiceCfg.st_XProxy.nVType, Verification_GetLastError()); + return false; + } + //验证方式是否一致 + if (st_ServiceCfg.st_XProxy.nVType != nVType) + { + HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszHDRBuffer); + XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,验证方式错误,请求:%d,需求:%d"), lpszClientAddr, nVType, st_ServiceCfg.st_XProxy.nVType); + return false; + } + bool bRet = false; + int nHTTPCode = 0; + int nMSGLen = 0; + XCLIENT_APIHTTP st_APIHttp = {}; + + XCHAR* ptszMSGBuffer = NULL; + if (!APIClient_Http_Request(_X("GET"), lpszRestApi, NULL, &nHTTPCode, &ptszMSGBuffer, &nMSGLen, NULL, NULL, &st_APIHttp)) + { + st_HDRParam.nHttpCode = 500; + Protocol_StoragePacket_HTTPPacket(tszRVBuffer, &nRVLen, ERROR_STORAGE_PROTOCOL_HTTP_MANAGE_SERVERDOWN, "api server is down,cant verification"); + HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen, tszHDRBuffer); + XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,GET请求验证服务:%s 失败,错误码:%lX"), lpszClientAddr, lpszRestApi, APIClient_GetLastError()); + return false; + } + if (200 != nHTTPCode) + { + st_HDRParam.nHttpCode = 500; + Protocol_StoragePacket_HTTPPacket(tszRVBuffer, &nRVLen, ERROR_STORAGE_PROTOCOL_HTTP_MANAGE_SERVERDOWN, "api server is down,cant verification"); + HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen, tszHDRBuffer); + XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,GET请求验证服务:%s 失败,错误:%d"), lpszClientAddr, lpszRestApi, nHTTPCode); + return false; + } + XENGINE_PROTOCOL_USERAUTH st_UserAuth = {}; + if (!Protocol_StorageParse_User(ptszMSGBuffer, nMSGLen, &st_UserAuth)) + { + st_HDRParam.nHttpCode = 500; + Protocol_StoragePacket_HTTPPacket(tszRVBuffer, &nRVLen, ERROR_STORAGE_PROTOCOL_HTTP_MANAGE_AUTHFAIL, "api server reply failure,cant verification"); + HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen, tszHDRBuffer); + XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,返回内容:%s 错误,无法继续"), lpszClientAddr, ptszMSGBuffer); + BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMSGBuffer); + return false; + } + BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMSGBuffer); + + if (1 == nVType) + { + bRet = Verification_HTTP_Basic(st_UserAuth.tszUserName, st_UserAuth.tszUserPass, pptszListHdr, nHdrCount); + } + else if (2 == nVType) + { + bRet = Verification_HTTP_Digest(st_UserAuth.tszUserName, st_UserAuth.tszUserPass, pSt_HTTPParam->tszHttpMethod, pptszListHdr, nHdrCount); + } + + if (!bRet) + { + HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszHDRBuffer); + XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,验证处理错误,可能用户密码登信息不匹配,类型:%d"), lpszClientAddr, nVType); + return false; + } + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,HTTP验证类型:%d 通过"), lpszClientAddr, nVType); + return true; +} \ No newline at end of file diff --git a/XEngine_Source/XEngine_StorageApp/StorageApp_HTTPHelp.h b/XEngine_Source/XEngine_StorageApp/StorageApp_HTTPHelp.h new file mode 100644 index 0000000..914f9bc --- /dev/null +++ b/XEngine_Source/XEngine_StorageApp/StorageApp_HTTPHelp.h @@ -0,0 +1,13 @@ +#pragma once +/******************************************************************** +// Created: 2026/04/16 17:27:59 +// File Name: D:\XEngine_Storage\XEngine_Source\XEngine_StorageApp\StorageApp_HTTPHelp.h +// File Path: D:\XEngine_Storage\XEngine_Source\XEngine_StorageApp +// File Base: StorageApp_HTTPHelp +// File Ext: h +// Project: XEngine +// Author: qyt +// Purpose: HTTP 帮助函数封装 +// History: +*********************************************************************/ +bool StorageApp_HTTPHelp_Verification(LPCXSTR lpszClientAddr, RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, XCHAR** pptszListHdr, int nHdrCount, LPCXSTR lpszRestApi); \ No newline at end of file diff --git a/XEngine_Source/XEngine_StorageApp/StorageApp_Hdr.h b/XEngine_Source/XEngine_StorageApp/StorageApp_Hdr.h index 36a2ddf..25c2eb0 100644 --- a/XEngine_Source/XEngine_StorageApp/StorageApp_Hdr.h +++ b/XEngine_Source/XEngine_StorageApp/StorageApp_Hdr.h @@ -115,6 +115,7 @@ extern XENGINE_LBCONFIG st_LoadbalanceCfg; #include "StorageApp_Network.h" #include "StorageApp_Config.h" +#include "StorageApp_HTTPHelp.h" #include "StorageApp_Download.h" #include "StorageApp_UPLoader.h" #include "StorageApp_Center.h" diff --git a/XEngine_Source/XEngine_StorageApp/StorageApp_UPLoader.cpp b/XEngine_Source/XEngine_StorageApp/StorageApp_UPLoader.cpp index 7c7731a..22b4c01 100644 --- a/XEngine_Source/XEngine_StorageApp/StorageApp_UPLoader.cpp +++ b/XEngine_Source/XEngine_StorageApp/StorageApp_UPLoader.cpp @@ -93,95 +93,10 @@ bool XEngine_Task_HttpUPLoader(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, in //用户验证 if (st_ServiceCfg.st_XProxy.bUPPass) { - int nVType = 0; - RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam = {}; - - st_HDRParam.nHttpCode = 401; - st_HDRParam.bIsClose = true; - st_HDRParam.bAuth = true; - //打包验证信息 - int nHDRLen = 0; - XCHAR tszHDRBuffer[XPATH_MAX] = {}; - if (1 == st_ServiceCfg.st_XProxy.nVType) - { - Verification_HTTP_BasicServerPacket(tszHDRBuffer, &nHDRLen); - } - else - { - XCHAR tszNonceStr[64] = {}; - XCHAR tszOpaqueStr[64] = {}; - Verification_HTTP_DigestServerPacket(tszHDRBuffer, &nHDRLen, tszNonceStr, tszOpaqueStr); - } - //后去验证方法 - if (!Verification_HTTP_GetType(pptszListHdr, nHdrCount, &nVType)) - { - HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszHDRBuffer); - XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPUPLOADER); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("上传客户端:%s,用户验证失败,验证方式:%d,错误:%lX"), lpszClientAddr, st_ServiceCfg.st_XProxy.nVType, Verification_GetLastError()); - return false; - } - //验证方式是否一致 - if (st_ServiceCfg.st_XProxy.nVType != nVType) - { - HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszHDRBuffer); - XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPUPLOADER); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("上传客户端:%s,用户验证失败,验证方式错误,请求:%d,需求:%d"), lpszClientAddr, nVType, st_ServiceCfg.st_XProxy.nVType); - return false; - } - bool bRet = false; - int nHTTPCode = 0; - int nMSGLen = 0; - XCLIENT_APIHTTP st_APIHttp = {}; - - XCHAR* ptszMSGBuffer = NULL; - if (!APIClient_Http_Request(_X("GET"), st_ServiceCfg.st_XProxy.tszUPPass, NULL, &nHTTPCode, &ptszMSGBuffer, &nMSGLen, NULL, NULL, &st_APIHttp)) - { - st_HDRParam.nHttpCode = 500; - Protocol_StoragePacket_HTTPPacket(tszRVBuffer, &nRVLen, ERROR_STORAGE_PROTOCOL_HTTP_MANAGE_SERVERDOWN, "api server is down,cant verification"); - HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen, tszHDRBuffer); - XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPUPLOADER); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("上传客户端:%s,用户验证失败,GET请求验证服务:%s 失败,错误码:%lX"), lpszClientAddr, st_ServiceCfg.st_XProxy.tszUPPass, APIClient_GetLastError()); - return false; - } - if (200 != nHTTPCode) - { - st_HDRParam.nHttpCode = 500; - Protocol_StoragePacket_HTTPPacket(tszRVBuffer, &nRVLen, ERROR_STORAGE_PROTOCOL_HTTP_MANAGE_SERVERDOWN, "api server is down,cant verification"); - HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen, tszHDRBuffer); - XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPUPLOADER); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("上传客户端:%s,用户验证失败,GET请求验证服务:%s 失败,错误:%d"), lpszClientAddr, st_ServiceCfg.st_XProxy.tszUPPass, nHTTPCode); - return false; - } - XENGINE_PROTOCOL_USERAUTH st_UserAuth = {}; - if (!Protocol_StorageParse_User(ptszMSGBuffer, nMsgLen, &st_UserAuth)) - { - st_HDRParam.nHttpCode = 500; - Protocol_StoragePacket_HTTPPacket(tszRVBuffer, &nRVLen, ERROR_STORAGE_PROTOCOL_HTTP_MANAGE_AUTHFAIL, "api server reply failure,cant verification"); - HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen, tszHDRBuffer); - XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPUPLOADER); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("上传客户端:%s,用户验证失败,返回内容:%s 错误,无法继续"), lpszClientAddr, ptszMSGBuffer); - BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMSGBuffer); - return false; - } - BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMSGBuffer); - - if (1 == nVType) - { - bRet = Verification_HTTP_Basic(st_UserAuth.tszUserName, st_UserAuth.tszUserPass, pptszListHdr, nHdrCount); - } - else if (2 == nVType) - { - bRet = Verification_HTTP_Digest(st_UserAuth.tszUserName, st_UserAuth.tszUserPass, pSt_HTTPParam->tszHttpMethod, pptszListHdr, nHdrCount); - } - - if (!bRet) + if (!StorageApp_HTTPHelp_Verification(lpszClientAddr, pSt_HTTPParam, pptszListHdr, nHdrCount, st_ServiceCfg.st_XProxy.tszUPPass)) { - HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszHDRBuffer); - XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPUPLOADER); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("上传客户端:%s,用户验证失败,验证处理错误,可能用户密码登信息不匹配,类型:%d"), lpszClientAddr, nVType); return false; } - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("上传客户端:%s,HTTP验证类型:%d 通过"), lpszClientAddr, nVType); } //使用重定向? if (st_LoadbalanceCfg.st_LBDistributed.nUPLoadMode > 0) diff --git a/XEngine_Source/XEngine_StorageApp/StorageApp_Webdav.cpp b/XEngine_Source/XEngine_StorageApp/StorageApp_Webdav.cpp index ee6c49f..6ef29e6 100644 --- a/XEngine_Source/XEngine_StorageApp/StorageApp_Webdav.cpp +++ b/XEngine_Source/XEngine_StorageApp/StorageApp_Webdav.cpp @@ -64,95 +64,10 @@ bool XEngine_Task_HttpWebdav(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int if (st_ServiceCfg.st_XProxy.bWDPass) { - int nVType = 0; - RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam = {}; - - st_HDRParam.nHttpCode = 401; - st_HDRParam.bIsClose = true; - st_HDRParam.bAuth = true; - //打包验证信息 - int nHDRLen = 0; - XCHAR tszHDRBuffer[XPATH_MAX] = {}; - if (1 == st_ServiceCfg.st_XProxy.nVType) - { - Verification_HTTP_BasicServerPacket(tszHDRBuffer, &nHDRLen); - } - else - { - XCHAR tszNonceStr[64] = {}; - XCHAR tszOpaqueStr[64] = {}; - Verification_HTTP_DigestServerPacket(tszHDRBuffer, &nHDRLen, tszNonceStr, tszOpaqueStr); - } - //后去验证方法 - if (!Verification_HTTP_GetType(pptszListHdr, nHdrCount, &nVType)) - { - HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszHDRBuffer); - XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPWEBDAV); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("WEBDAV客户端:%s,用户验证失败,验证方式:%d,错误:%lX"), lpszClientAddr, st_ServiceCfg.st_XProxy.nVType, Verification_GetLastError()); - return false; - } - //验证方式是否一致 - if (st_ServiceCfg.st_XProxy.nVType != nVType) + if (!StorageApp_HTTPHelp_Verification(lpszClientAddr, pSt_HTTPParam, pptszListHdr, nHdrCount, st_ServiceCfg.st_XProxy.tszWDPass)) { - HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszHDRBuffer); - XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPWEBDAV); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("WEBDAV客户端:%s,用户验证失败,验证方式错误,请求:%d,需求:%d"), lpszClientAddr, nVType, st_ServiceCfg.st_XProxy.nVType); - return false; - } - bool bRet = false; - int nHTTPCode = 0; - int nMSGLen = 0; - XCLIENT_APIHTTP st_APIHttp = {}; - - XCHAR* ptszMSGBuffer = NULL; - if (!APIClient_Http_Request(_X("GET"), st_ServiceCfg.st_XProxy.tszWDPass, NULL, &nHTTPCode, &ptszMSGBuffer, &nMSGLen, NULL, NULL, &st_APIHttp)) - { - st_HDRParam.nHttpCode = 500; - Protocol_StoragePacket_HTTPPacket(tszRVBuffer, &nRVLen, ERROR_STORAGE_PROTOCOL_HTTP_MANAGE_SERVERDOWN, "api server is down,cant verification"); - HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen, tszHDRBuffer); - XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPWEBDAV); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("WEBDAV客户端:%s,用户验证失败,GET请求验证服务:%s 失败,错误码:%lX"), lpszClientAddr, st_ServiceCfg.st_XProxy.tszWDPass, APIClient_GetLastError()); - return false; - } - if (200 != nHTTPCode) - { - st_HDRParam.nHttpCode = 500; - Protocol_StoragePacket_HTTPPacket(tszRVBuffer, &nRVLen, ERROR_STORAGE_PROTOCOL_HTTP_MANAGE_SERVERDOWN, "api server is down,cant verification"); - HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen, tszHDRBuffer); - XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPWEBDAV); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("WEBDAV客户端:%s,用户验证失败,GET请求验证服务:%s 失败,错误:%d"), lpszClientAddr, st_ServiceCfg.st_XProxy.tszWDPass, nHTTPCode); - return false; - } - XENGINE_PROTOCOL_USERAUTH st_UserAuth = {}; - if (!Protocol_StorageParse_User(ptszMSGBuffer, nMsgLen, &st_UserAuth)) - { - st_HDRParam.nHttpCode = 500; - Protocol_StoragePacket_HTTPPacket(tszRVBuffer, &nRVLen, ERROR_STORAGE_PROTOCOL_HTTP_MANAGE_AUTHFAIL, "api server reply failure,cant verification"); - HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen, tszHDRBuffer); - XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPWEBDAV); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("WEBDAV客户端:%s,用户验证失败,返回内容:%s 错误,无法继续"), lpszClientAddr, ptszMSGBuffer); - BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMSGBuffer); - return false; - } - BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMSGBuffer); - - if (1 == nVType) - { - bRet = Verification_HTTP_Basic(st_UserAuth.tszUserName, st_UserAuth.tszUserPass, pptszListHdr, nHdrCount); - } - else if (2 == nVType) - { - bRet = Verification_HTTP_Digest(st_UserAuth.tszUserName, st_UserAuth.tszUserPass, pSt_HTTPParam->tszHttpMethod, pptszListHdr, nHdrCount); - } - - if (!bRet) - { - HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszHDRBuffer); - XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPWEBDAV); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("WEBDAV客户端:%s,用户验证失败,验证处理错误,可能用户密码登信息不匹配,类型:%d"), lpszClientAddr, nVType); return false; } - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("WEBDAV客户端:%s,HTTP验证类型:%d 通过"), lpszClientAddr, nVType); } //http://127.0.0.1:5103/storagekey1 if (0 == _tcsxnicmp(lpszMethodOption, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodOption))) diff --git a/XEngine_Source/XEngine_StorageApp/XEngine_StorageApp.vcxproj b/XEngine_Source/XEngine_StorageApp/XEngine_StorageApp.vcxproj index d38ee78..173d0d3 100644 --- a/XEngine_Source/XEngine_StorageApp/XEngine_StorageApp.vcxproj +++ b/XEngine_Source/XEngine_StorageApp/XEngine_StorageApp.vcxproj @@ -225,6 +225,7 @@ + @@ -239,6 +240,7 @@ + diff --git a/XEngine_Source/XEngine_StorageApp/XEngine_StorageApp.vcxproj.filters b/XEngine_Source/XEngine_StorageApp/XEngine_StorageApp.vcxproj.filters index 308582a..050ad75 100644 --- a/XEngine_Source/XEngine_StorageApp/XEngine_StorageApp.vcxproj.filters +++ b/XEngine_Source/XEngine_StorageApp/XEngine_StorageApp.vcxproj.filters @@ -54,6 +54,9 @@ 源文件 + + 源文件 + @@ -89,5 +92,8 @@ 头文件 + + 头文件 + \ No newline at end of file From 705277e4608cd1ba9985c1b90e65b44e2fdac96e Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Tue, 21 Apr 2026 11:32:24 +0800 Subject: [PATCH 18/24] ci:test --- .github/workflows/Centos_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Centos_build.yml b/.github/workflows/Centos_build.yml index 7bf8887..2868a34 100644 --- a/.github/workflows/Centos_build.yml +++ b/.github/workflows/Centos_build.yml @@ -68,7 +68,7 @@ jobs: - name: install system package run: | dnf update -y - dnf install gcc g++ make git jq unzip wget -y + dnf install gcc g++ make git jq unzip wget mongo-c-driver-devel -y - name: install xengine library run: | From 1bdce6196106ef49437579a0f030ef3d1b63672b Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Tue, 21 Apr 2026 11:37:17 +0800 Subject: [PATCH 19/24] ci:test --- .github/workflows/Centos_build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/Centos_build.yml b/.github/workflows/Centos_build.yml index 2868a34..e06b1c3 100644 --- a/.github/workflows/Centos_build.yml +++ b/.github/workflows/Centos_build.yml @@ -68,7 +68,7 @@ jobs: - name: install system package run: | dnf update -y - dnf install gcc g++ make git jq unzip wget mongo-c-driver-devel -y + dnf install gcc g++ make git jq unzip wget -y - name: install xengine library run: | @@ -79,7 +79,7 @@ jobs: chmod 777 * ./XEngine_LINEnv.sh -i 3 - + dnf install mongo-c-driver-devel -y - name: make run: | cd XEngine_Source From 31617ff205b20ffdcb8c18985d6aaa4120a91298 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Tue, 21 Apr 2026 16:52:40 +0800 Subject: [PATCH 20/24] ci:test --- .github/workflows/Centos_build.yml | 1 - .github/workflows/macbuild.yml | 6 ++++-- XEngine_Source/XEngine_StorageApp/Makefile | 7 ++++++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/workflows/Centos_build.yml b/.github/workflows/Centos_build.yml index e06b1c3..3309d92 100644 --- a/.github/workflows/Centos_build.yml +++ b/.github/workflows/Centos_build.yml @@ -79,7 +79,6 @@ jobs: chmod 777 * ./XEngine_LINEnv.sh -i 3 - dnf install mongo-c-driver-devel -y - name: make run: | cd XEngine_Source diff --git a/.github/workflows/macbuild.yml b/.github/workflows/macbuild.yml index 8e9c119..d44eba6 100644 --- a/.github/workflows/macbuild.yml +++ b/.github/workflows/macbuild.yml @@ -19,6 +19,8 @@ jobs: include: - os: macos-15 - os: macos-15-intel + - os: macos-26 + - os: macos-26-intel runs-on: ${{ matrix.os }} steps: @@ -46,13 +48,13 @@ jobs: run: echo "TERM=xterm" >> $GITHUB_ENV - name: Set up Dependency x86_64 Environment - if: matrix.os == 'macos-15-intel' + if: matrix.os == 'macos-15-intel' || matrix.os == 'macos-26-intel' run: | cd libxengine chmod 777 * ./XEngine_LINEnv.sh -i 3 - name: Set up Dependency Arm64 Environment - if: matrix.os == 'macos-15' + if: matrix.os == 'macos-15' || matrix.os == 'macos-26' run: | latest_tag=$(git ls-remote --tags --sort="v:refname" https://github.com/libxengine/libxengine.git | awk '{print $2}' | sed 's/refs\/tags\///' | tail -n 1) wget https://github.com/libxengine/libxengine/releases/download/$latest_tag/XEngine_Mac_Arm64.zip diff --git a/XEngine_Source/XEngine_StorageApp/Makefile b/XEngine_Source/XEngine_StorageApp/Makefile index bb2728e..219b124 100644 --- a/XEngine_Source/XEngine_StorageApp/Makefile +++ b/XEngine_Source/XEngine_StorageApp/Makefile @@ -5,7 +5,7 @@ LOADSO = -L ../XEngine_DependLibrary/XEngine_Module/jsoncpp -L ../XEngine_Depen -L ../StorageModule_Database -L ../StorageModule_Config -L ../StorageModule_Session -L ../StorageModule_APIHelp -L ../StorageModule_Protocol -L ../StorageModule_BTorrent LIB = -lXEngine_BaseLib -lXEngine_Algorithm -lXEngine_Core -lXEngine_ManagePool -lXEngine_Cryption -lXClient_APIHelp -lXEngine_SystemApi -lHelpComponents_XLog -lHelpComponents_Packets -lRfcComponents_HttpProtocol \ -lStorageModule_Database -lStorageModule_Config -lStorageModule_Session -lStorageModule_APIHelp -lStorageModule_Protocol -lStorageModule_BTorrent \ - -ljsoncpp -ltinyxml2 -lXEngine_InfoReport -lXEngine_Verification + -ljsoncpp -ltinyxml2 -lXEngine_InfoReport -lXEngine_Verification LIBEX = OBJECTS = Storage_TaskPass.o Storage_TaskManage.o Storage_TaskP2p.o Storage_TaskAction.o \ StorageApp_Config.o StorageApp_HTTPHelp.o StorageApp_Download.o StorageApp_Network.o StorageApp_Center.o StorageApp_UPLoader.o StorageApp_Webdav.o XEngine_StorageApp.o @@ -32,6 +32,11 @@ endif ifeq ($(PLATFORM),linux) ifeq (/etc/redhat-release,$(wildcard /etc/redhat-release)) PLATVER = -D __CENTOS__ + + CENTOS_VERSION := $(shell grep -w "VERSION_ID" /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1) + ifeq ($(CENTOS_VERSION),10) + LIB += -lmongoc2 + endif else PLATVER = -D __UBUNTU__ endif From 40a6bdbbbd775a962a424685f29d4c2dd88875a1 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Thu, 23 Apr 2026 09:59:18 +0800 Subject: [PATCH 21/24] ci:cancel centos build --- .github/workflows/Centos_build.yml | 2 +- .github/workflows/release.yml | 9 --------- CHANGELOG | 22 ++++++++++++++++++++++ XEngine_Source/XEngine_StorageApp/Makefile | 4 ---- 4 files changed, 23 insertions(+), 14 deletions(-) diff --git a/.github/workflows/Centos_build.yml b/.github/workflows/Centos_build.yml index 3309d92..de3c462 100644 --- a/.github/workflows/Centos_build.yml +++ b/.github/workflows/Centos_build.yml @@ -3,7 +3,7 @@ name: centos build workflows on: push: branches: - - 'develop' + - 'develop1' paths: - 'XEngine_Source/**' - 'XEngine_Release/**' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 74ac820..f48abc1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -52,15 +52,6 @@ jobs: skip_unpack: true if_no_artifact_found: fail path: ./XRelease/ - - name: Download CentOS build - uses: dawidd6/action-download-artifact@v20 - with: - workflow: Centos_build.yml - workflow_conclusion: success - check_artifacts: false - skip_unpack: true - if_no_artifact_found: fail - path: ./XRelease/ - name: Download Alma build uses: dawidd6/action-download-artifact@v20 with: diff --git a/CHANGELOG b/CHANGELOG index 33f30ae..b04143f 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,25 @@ +XEngine_Storage V3.22.0.1001 + +增加:当启动的时候打印占用硬盘空间信息 +增加:支持HTTP头获取文件大小 +ci:更新了macos系统版本 +ci:更新了编译库 +更新:依赖库 +修改:启动参数不在区分大小写 +修改:必须设置发送消息类型 +修改:http验证接口统一 +修正:处理没有找到api名称的问题 + +added:The spatial data information displayed when starting printing is more intuitive +added:get file size thought head method for http center +ci:update macos system version +ci:update last version +update:depend library +modify:start parameter and http request name does not case-sensitive +modify:must set type for http send message +modify:http restful api verification Unification +fixed:process not found api name +====================================================================================== XEngine_Storage V3.21.0.1001 added:get use and left size when start log diff --git a/XEngine_Source/XEngine_StorageApp/Makefile b/XEngine_Source/XEngine_StorageApp/Makefile index 219b124..858c735 100644 --- a/XEngine_Source/XEngine_StorageApp/Makefile +++ b/XEngine_Source/XEngine_StorageApp/Makefile @@ -32,10 +32,6 @@ endif ifeq ($(PLATFORM),linux) ifeq (/etc/redhat-release,$(wildcard /etc/redhat-release)) PLATVER = -D __CENTOS__ - - CENTOS_VERSION := $(shell grep -w "VERSION_ID" /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1) - ifeq ($(CENTOS_VERSION),10) - LIB += -lmongoc2 endif else PLATVER = -D __UBUNTU__ From d6a246ca624e8e4ad4be275607960af831169835 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Mon, 27 Apr 2026 11:24:31 +0800 Subject: [PATCH 22/24] update:get file size for example --- .../APPClient_RestApi/APPClient_RestApi.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/XEngine_APPClient/APPClient_RestApi/APPClient_RestApi.cpp b/XEngine_APPClient/APPClient_RestApi/APPClient_RestApi.cpp index 2cb723c..cec9b13 100644 --- a/XEngine_APPClient/APPClient_RestApi/APPClient_RestApi.cpp +++ b/XEngine_APPClient/APPClient_RestApi/APPClient_RestApi.cpp @@ -49,6 +49,20 @@ void API_Manage_Bucket() _xtprintf("API_Manage_Bucket:%d,%s\n", nCode, ptszMsgBuffer); BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer); } +void API_Manage_FileSize() +{ + LPCXSTR lpszUrl = _X("http://127.0.0.1:5100/XEngine_File/DekTec.zip"); + int nCode = 0; + XCLIENT_APIHTTP st_APIHttp = {}; + + st_APIHttp.bNOBody = true; + if (!APIClient_Http_Request(_X("HEAD"), lpszUrl, NULL, &nCode, NULL, NULL, NULL, tszHdrBuffer, &st_APIHttp)) + { + _xtprintf("API_Manage_FileSize:%lX\n", APIClient_GetLastError()); + return; + } + _xtprintf("API_Manage_FileSize:%d,%s\n", nCode, tszHdrBuffer); +} //查询 void API_Manage_Query() { @@ -191,6 +205,7 @@ int main() #endif API_Manage_Bucket(); + API_Manage_FileSize(); API_Manage_Query(); API_Manage_Insert(); API_Manage_Delete(); From a781a9f195a97c3593d7ce8f33f14ebfb7614aa9 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Mon, 27 Apr 2026 11:32:49 +0800 Subject: [PATCH 23/24] fixed:process failure when get file size --- XEngine_Source/XEngine_StorageApp/Makefile | 1 - XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp | 7 +------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/XEngine_Source/XEngine_StorageApp/Makefile b/XEngine_Source/XEngine_StorageApp/Makefile index 858c735..cef0ef7 100644 --- a/XEngine_Source/XEngine_StorageApp/Makefile +++ b/XEngine_Source/XEngine_StorageApp/Makefile @@ -32,7 +32,6 @@ endif ifeq ($(PLATFORM),linux) ifeq (/etc/redhat-release,$(wildcard /etc/redhat-release)) PLATVER = -D __CENTOS__ - endif else PLATVER = -D __UBUNTU__ endif diff --git a/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp b/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp index 77dc323..84de384 100644 --- a/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp +++ b/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp @@ -141,8 +141,6 @@ bool XEngine_Task_HttpCenter(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int else if (0 == _tcsxnicmp(lpszMethodHead, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodHead))) { //获得文件大小 - XCHAR tszFileExt[64] = {}; - XCHAR tszFileHdr[XPATH_MIN] = {}; XCHAR tszFilePath[XPATH_MAX] = {}; SYSTEMAPI_FILE_ATTR st_FileAttr = {}; @@ -157,10 +155,7 @@ bool XEngine_Task_HttpCenter(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int return false; } SystemApi_File_GetFileAttr(tszFilePath, &st_FileAttr); - BaseLib_String_GetFileAndPath(tszFilePath, NULL, NULL, NULL, tszFileExt); - _xstprintf(tszFileHdr, _X("Content-Length: %lld\r\n"), st_FileAttr.nFileSize); - - HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszFileHdr); + HttpProtocol_Server_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, st_FileAttr.nFileSize); XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("业务客户端:%s,请求获取文件:%s 大小:%lld 成功"), lpszClientAddr, tszFilePath, st_FileAttr.nFileSize); } From 3c815131380ecbd089c4ddbc4a4ca1b7da53cf29 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Mon, 27 Apr 2026 13:43:00 +0800 Subject: [PATCH 24/24] update:document and configure --- CHANGELOG | 2 ++ .../APPClient_RestApi/APPClient_RestApi.cpp | 2 +- XEngine_Docment/Docment_en.docx | Bin 131103 -> 128516 bytes XEngine_Docment/Docment_zh.docx | Bin 132593 -> 133569 bytes .../XEngine_Config/XEngine_VersionConfig.json | 1 + .../XEngine_StorageApp/StorageApp_Center.cpp | 24 +++++++++++++++++- 6 files changed, 27 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index b04143f..ae6e359 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -9,6 +9,7 @@ ci:更新了编译库 修改:必须设置发送消息类型 修改:http验证接口统一 修正:处理没有找到api名称的问题 +修正:获取文件大小处理失败 added:The spatial data information displayed when starting printing is more intuitive added:get file size thought head method for http center @@ -19,6 +20,7 @@ modify:start parameter and http request name does not case-sensitive modify:must set type for http send message modify:http restful api verification Unification fixed:process not found api name +fixed:process failure when get file size ====================================================================================== XEngine_Storage V3.21.0.1001 diff --git a/XEngine_APPClient/APPClient_RestApi/APPClient_RestApi.cpp b/XEngine_APPClient/APPClient_RestApi/APPClient_RestApi.cpp index cec9b13..a3dbbe5 100644 --- a/XEngine_APPClient/APPClient_RestApi/APPClient_RestApi.cpp +++ b/XEngine_APPClient/APPClient_RestApi/APPClient_RestApi.cpp @@ -51,7 +51,7 @@ void API_Manage_Bucket() } void API_Manage_FileSize() { - LPCXSTR lpszUrl = _X("http://127.0.0.1:5100/XEngine_File/DekTec.zip"); + LPCXSTR lpszUrl = _X("http://127.0.0.1:5100/storagekey1/DekTec.zip"); int nCode = 0; XCLIENT_APIHTTP st_APIHttp = {}; diff --git a/XEngine_Docment/Docment_en.docx b/XEngine_Docment/Docment_en.docx index df3a3788f14b2168f4dc8e5739a9986482040a00..add094828bed8bf8b9623b1b2072f0aadf387d59 100644 GIT binary patch delta 98980 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

9YQyF;*0n9FUff60Me?;;gMyZNy!$CdBuS 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

j3v0~2k9{D)flYdWX9czB> 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%0DvJRAZ#c^1JD;-X^R|y2J3lLIR zj@IfT>)=|0=l&tJrb8`3ZF0H!OPlpv?*NfNZog97?gh<=?+3}(Lgjc!ZEGKVJmCeI$UJ0TFAkI6jBacKa%07ZXLPtxoRPU>y_&ar)Q*3 zIsR5xxDIr^lF3L_Z67Jd83;+d25lRJhi80YdENHeEu^YuqT#rUkV7q-kijysY0~V= z2w5D9ZaXW%-($@o-`K1a>H+bNecF8>o?}m9xx{{bbAPrUX6^iN$idB}$`Q@xcIhu7 z(o0;o(R{4jiBQPFf^0q&)-o;F$<}(?EmW9xg3D|PwGd8p9a7_Sp=~$!;?edY0puSc zfxF+d=muL{Z3{7!NJ19ZIkesEkJlh3%W-8PgX2hT$GrJ_ z@vsZoWq*!S2sw0PP;@_ z%vo2y4qRV%V>Cvr;~EShhb|OC7N4VRvUb?w64JS^EMw zu|vL$?6Z%IL}z(!(;BYhYBNNRK{k2(+%LM#><`>H^WYOzZQ05ZnYKda6CrJ-%9XNh z<;$RS>ATwm@^;^6u5qoqiHqy~yGfIydEM^5oQ#M~ajivek?E~F8~B939Opytv+lCq zb$>t-pG@uE9Zu1A?+fSWx{s$dkj~`TU=Qx%lY(7N4p%Pr5EIu^bZKXnqjDq$SA6yu z4%%5rIP7+ei|I|~qvxE2kaT)RG|FF^OysTrJq6FvA|aX2eD@SD*1=u&Jx4uy-VM_Z z$mEV6JqOE~yPo45$n|~qHaU!zFP410*nh=xw3qnZjVM1tB3CN)BAbFKzU0b&Nx!V) zIFgV<|3o3{Ad$ogoGtHHICLZFS31biUd^FGrC0B{p1jvkxF1)S1H>Ird)r+g4oKuK z%DtPx85<$_w=IDdtZ zla`rsgn137^W3?jPd_*&)MpIrwF#Mgic!cqtmqVnm4YgJE1?$tUE{(_(Bx2zPt8xH-JXx{GO4$mA%&u%~|bLMlsTA)Qa-4QDg!;NfJ) z^Jp$a=EmXTA)_|L^GrKJ4mSCaDt}>5Vt9M#M?Ab+tWSsEwdRNfbFex`IMoS_Aa~*L zOe~!38#`Z*bUmU?tQ$uRna{qADBZ|2kh#Ozq>(~lJ{2;!E_$T24quwG=Q!Wk1|-u# zc7>}ZMvjer=aKWF)=2_*}@-H77EY0y2xj~N8Me?P6*e#j2a`?pbP2TUu@K5 zI6gXR4r~#RW-_0x7{^|sqs0^THt`(OTi?|djD*2eEu+Un*R9c0Vw-Qsujkm)m_D*K zIA*R~c{P@s2QFFuVw++bYk%3V7g9JO)xO!hVBl@8tLXSJC-n9S-9 zSvVo_z>U=xJ`FD9BzI~EtO12owgzX-^+4Cn9D0QbX`Ex3%{umsX7h(z^JWY4z$Gna zt`-(@9q6FRa$t(@c7Ji)e|CR}US?`&%mQ9B|;Bt0yZR>JAvlSp@uIxn%s)aVdlD9=fls zB!7W9E5(Z??0=Gn%-Jy^ne*stAO1feK5>5vA&uh{D~ChJ-Bq09-0mvbaoloUwsB5k zUAqY$BeK$X)>ocv1*~12&MR8&X&0(%2a2yU@DI;~&X$lIjKeJ@tLDPJn^yCO`wEsc zI(vGn8-G~QZt{Uk`Ysw^#3eq%zPk4uOA}JqvJ-M0_J6d;i)-_Q9PV#iJso-nuAUp` zB-Sv8Dz`OU;Ob2w7uVsh5!!*XM(7;lS|b*YiwU{7--eLGshBlV;F!>wCLDDAw3%}` zOCCRGFV_r)dvpjn_!w)(!ujnrQ{t${l6vNdrjT@4x8(-gy;4|#BbsYv$LGz2OgwR5 zjkN{k!GFH(u;5)wc3;tf6`xi%+CVSInw0tW9cxPJ7;Tjy7C1L$jeI85!PYeAkan!h zH0C*3e9oYyYOTu+tA(xIF>jJc)~3kSOcN^KACsewHfYsFWn=dA5A zRf$Wio!OvgWcQ6^sF|#@p8I-Ow|nFw?YQ0L8h;V5Ek$0ieqU9Fd+KB6j#JiOi8G$o zx4jCCxQN*?>z6ZlQo{zH`82rQXgfH}+;PfgxpPL;xt2Py*leW%0G45jPiWl0wR)(^}4ozD% zazAg|k{o#a(v}W)0@&7a#}k%PG4VnV%y#d%Ngg&8QjGf)_n5|SHwId%qF zFGvS7$fxD^L>sW`$j*`?TI)jcK!3r`?iTOdl68rhJ0Y2KQ*!rn!U($C_YLAHIcIz{ zD65?IpkcQQ8H2fFMf>h*xX`L`vVZV7x9iN6J8BGPrdw#cNYndqnjZg@Lv1vV-I#Bkk;ad3fjcX&JN+ zM2IpT@I7VpYmVsQg|;0cKa{Zkq7+Hd5axDKZaUGjl5HZEV$BbdeBm$76#so}9+oXr6#@-lGNQZsyC z&hCvDFk0ljivy!j+1#EjO^KJ)| zITr1MOAD<4A2eyKVD%wMm+%Zy_Q;JsWY^J0_hH(M87LoJE!LVsj?^W0?GVRTZGcPADJNhT!JSw7hm@O+6+J|)yy8@W(tdFiE&r)K@W zIl7GXK8oroA{k1Rh-EHvB7RH{ue3^(D8(+mE zXvh0%W5)QXkj(iXUqx})55-rBWu~ecQe?WWGON(1^|d(ea^QDAF7yGte$6*?`#J-k zi4>9?=70Eole^87*rWnkm$YabcKY51g~1HFZzX%Iukx+RZ{!(NNm$&uRx|fM@U4f4 zUE+N=o--W2JKwPDiI6ZblI7(#9xR7mcF_VN)g_Eq`QDtvn|OVnX=1NEKlc4%xH|h( zChP6tVq)n(!aj73NQ`{TsUKA`9yxfll(BEC#FLAq8v;iblc=RDf1xZS7MA4l0SkKX zer@9g*Lq$4pf%T!X^AVkrr~aXel1zcv~$7iTd8TS!;W@henIB7DY)Cg$WX*wXfVm} zof?w;mS-L0)_Yu?VC%kggposJPDteQn!z?}QOg9|b42ej*cC7I-bJ8?dpLr#Qko=@ zg7b$PZh{M@B5wyde+3bHTF8}23w_Pt<{{G+d~$p@QSjME^wEQ+kT5bA2vW2=N9b-$pXlsR{`OHM*=sQ?N6sgn>*Re2-YcVWv3jd$BQ2 z9%41zi7@Q@ov~|bh{N%@>V2gy_udTq=2|=_5oDhPyh%sSf38g^m4&3pUn<{yp$!{S zv)oZaNOV|b9n#1KV`)M3(b0Pk`$~0;_X@EUEg^ls9@da)FaLM3eS#{|(tYxkw zkB;r)JRQ=ttz@#IP9(efSSq37K=0+B0oU79SXeG@w(%XEz52(g7_ zRbP%HSz&0>XmN$z4~5?|Y-s2+N%;GO{ZPW#cPa2_f6Yy-)eU20zHKm!6$<7TgdFYz z+sMQyXqb81Nrdd{a+uy$%mFR$-NN6oWw%B&7*h>v$`&IIj=O#nwOKSZUsyd8O>^AO zTgbjA7?EKO_9ck2w+jvP0&1yOE}LkmBKU1dO$JZfSE zwOI`QaO-3Y!6wZA2oW(7m&DLR#uM>T0)abD35geGY+{fUMGh9?4O%ra1`l@*%NR5R z<&F@~CzNB%eqhCPjF)McU5>H_Cq{Lpe5^%jf4TbyJB(~c*>w~BEE)dZqxT_=l?Gbg zF?C-smKG)63a>#fj_Yn?zHCE}GG?hw=HT4ryyBkbkqkyoW0vH@=kUuV#d7(HR%a}`dK2e%8NaY2SiEG8qHc_`(lYACcvX4n ze@InVmtlo8di7*jhE$g(=D=d@t}>U@o&t8Di&Yeg=lEj_v7;v*TXr6;=-95^ub&b5 znz+^*IXqJ%pDB(#xyTZ!H2L^+qN} z>V*XE4=W@VJUty{gm{cA3(1LBbS{5kd^9e3$Slbvbhz{KMh1EXae43X-txGX)Hdx; z+IA{-(a9veT7o3AH=`$>Y>n(M2+7=;e)7&6(WQ#=I>{8`o(U=C;L+YmspN!JM=1?odEGXGwJZAy49*p#GyR)82TEvz3+xn{mACgo-_X1-INuHu>el-DkFAf)(Uf6)#}CGCbw zh-5i|NY_OcKI?^2UBFmpx;FXXXjd}ayD7-5-n}p620Bjy4-4hrl*T3v8}LJ({^L{RE&^)00$B0IZlzf{CbQ< zr@n8lC0i`@U8=-0Xpw8se}%|lK`GX?b3EE`o^NUq68|4vXObkjjswvvi4#CBIo|(B z<;dE;=x@C#w+vAt2{`5-dwPnP9lp=0nftB?@r3n&c3NBL*%qs-A9{=Ij2IlwNZKqd zk7P3DQb%GqcciqN>caT8-TJXFT1d)R4`?^C!tfi2*6|ctdma`qeuRfzr}t?iW0xo>I*i+ZEEd{xnE0dw#^K8uJ5BwG7M`b18c6|K{m7 zt`C+~R1H0vLcC)oe~m|xCo*r(<%gsYQZC9w&owuUB6xJRN1vVN=={QK>m?ySa7o0( z->t;e#uFlKTF@`%Vz68t6)ng)_U`+rns)to?6eB+_eY1M?ijk0QwO17Thz zjwXJ9->rJIHe@7m=Azf$8hTd(;R=7R(HoV2ZU3+vy+w&If38~ElyiPuY<-~p<1(`f z#&U%C!l;!u&mZb-Z&Q>MccCr45;4l_r*oyOBCyh&-H$INB6eV9M$*8GP|v?0NR zaz}LVpe5m=Pu!1Kh~xok3=xEiJycu*;qfi;k~d~_cr+Enj9mAf8qO1UzaMAMc#j|< zKBp(?IYx52f9U=4E|VW)Z9?ioABuOgjr>}OKjb0ar2~-#2q}*J)_v&G^Q|A{$HXg< z(VQ`QDWv|mb7M;O;o8P@o>k@}dJyrdpDs6kw^_7s-0j)Q;gdL4|jtV`xhKkmZR63}k+`D$h^wrZJ}UnN0RJHOA`e`WsowW!kOzj=9LwTkat8`>B$ z-NOrsi0&^-f7voT_1KRdgWcr(__tWkom(f%gL4~Ck?|WDaJaTxoqOo}%juylqe~ji zFA-VhD0li-qJ=Lbd1FMnhyM%xqy6jRJG5#cnWswiZ&hA(504OXK0PH(%$?LJ%m?pJ z7jGEofBETY=7Tz`r=^=uCnRb}KFmkz`7=X*NS6$27{Tqi{>VP-xkYbKMC{}K@m+kh zpL~d$W6DfJ5gYXNP$d#p-K11Eui$@3*k#3xA(#!IVxdgr3bkWWd zQYy~-==CdHIoxahHfpA>&uM5$^xAA7zwT8^e+z4%dX2nwTtRS4^!xW#ZSoBkCFfp8 zy_rouZxQRmh(OozU`xEWl^S|5gy{S5uN~=a+`0Co7w~T))P=f4NNwm1?=mr*@2QyT zLc2sns6Om*Bcx^2Kix*U$P>FbY)2o8kT~;<)Q8?oj-&rhG%GqT$*{?^fY7vcjW4}Fzf(2pby z^9_vP_9aV;&(1o9Yb%7*i5;tZ42#Bye_G$g7j|&$+k9hGq;D|<%#7>%MXNbNPANQL zx}Pd;i6`W=#UL?1EaeB&F=wv4#Jk4Xk2Rp+dhkw)T)i$WTA^BL(>?glK4v9qYN3P*M+kf zhuB-jNJ=0BBgLa!NekT5B8w7xf0mA#+e1!1A}bBMEsbinF`G`ddlaQ0vI@^L8g>7e zZaG>E0mS!d`C~tYkdjfCjIdYu>qH$GMzKe`&K-@0$&|sk*@$!?Q!@VYZgFkvSjIU+ zW9gQnO*{6NGIIa1lMU?te>rsF23C-dpvu_qcI+X`kyo%~+4FOb{m``g`j2yczHebh zhY(BX`5B^hhi}#~NgmwOGupsNm;SXnc2gMVMFATjH)mtr7|B{_V~pFv8H|XR#%$vb z=~LY8yK2LF^l@XvC(5dOt^HWFq$TzS8ZRfF^*7%A(FbFGH9MZFfBE(FuovR|b{<$Q zIsXPc^K+iQHJy-|@>kJMK2!S~wew6}bd+{mh(C;L&a_)by%0!6&)iHW@r)25jpvfi z^in}D+svOG?6)za{~NN~nQP+swh);={G65>MpkDDzcRj04BF#W7kz2W-4`OW0QaQ^mTCs+G)+ZyK_^7^2J*drQvnt{>!**hu`9rg zu2RS;rq9HkaA(Z&MlbdBT@&V$&tBU?jx@V{oNXUSN8iTmy-xHI&mM7S+=agCMqkbB zS1cd*r(fA^xatwT!We0pYY1l;CYY%-M>n=y197ZfFp3piBWFo_#b2noxGw;XqD21en9S`TK`4=L) z5i=k})?-!}A~SdN63n&JW$v=h$8|8WC`fAM*CeJpp*^~qf9ydQN1GlH>b zeau^8JOm=r=qwZOw86Um-olxfLX7(~&if?A@btbfe2s`izZiVZYrmw+^PJGuoKFG{ z^T~y{VFYTvStfdzgvk29U3kYcpSO3*L{HXyGCwerSWEbzSDKpvj>6%~mXMOZoKixKISYvYL83I>Zl;uX^*Fw0;? zMLu?9Sy}82vqV>Zh36fv5`|^B>JkZCxPnq+f7-+kq@oXH#nf{2(5});!Ca43w#<5b zpISbSF0U%v9dmVKR?WjcOhTNyEv@=wZ{jy-k)V$6)5OFuF0-0$J$hGG6L;ZT(qw00 z9{!4(jdtT|H+PH(EX(y_{=qWS>A_#KZ4LG5vSS@ROi_2z_>9_1tbbNaYQcz2v?VZ> ze{U`m8FS2p824_9zAw)A)a}Qd)#Wb!hVSG0Ijj?3E*lIr;PMrLGemR}u`B2DlNWl> zg+w!HL|!`Rw_H7?i8&Zc<^r>))ny&>UFbs!9ar6FJ$yp?mL$i!-M2sERmV(d{09A6 zMz$`*E9<%O+2$`gq6ZM(xnarC)40Y?e+#R@*Le0=*Uua`5|NSz`W%Fmgn0pL_RQ5@ zYmUgdL}VJz)R3($O@}+TdTYE3THFu$wssVP5wc5mjHImHA})_e>;itbZPI7>-FDAB znQm<{1eSbTybiq{fjIgcWPnL6;I9ec={xIG@0h={&WaBIi0trB5^|&AIsVP zoL7AdPY;RsdPhznq;g%s4u>cjf1?M<7Cs}>_> zwk|{*pZ`X0gDiS`cw}$|y?qC@=I&M#_MX|j=a2WN&(hJN+~SrEIr)}iDnF3&W9sA{ zo-0}sd(3FJgvhqaGI2cTe{QB*43evj_pD-Rxaw(%yCe#6?%%uT*7@OI(}_a{x##;H zW)KN6p1iqNjJv>duySdbWw4j13wkH_8tGxL79qY_XRXy9e`~SZi+(X7ZD9;~@8lfC z-rG~hP6GRn!{T%H(TT?saz5FV_-iLM_5h09X092E$82Ub#|uv}e+%Sb#m+vfZoa|d zy*%Y~pOZ7@)C*~Yk^6;h!bll>gKsoo!xM6IVcSedP3ZLyVmy0bN9#@gZnvioW5_#3 zLi0U+DY|PR64^7jf>-1JjMVw#*JPEj27Hmbg17O_Jkj&B-!6`o075FymETVc7VDYL zmkL*M$^feit@raqe{V;U6z6N{qIczdvNf@e@HdPv3$qLX@ccPy? zlf@|T^a?S~29gAk{ee4|$Ja5wASCkB5t;d7U7HX)KYneue}R_k$`I6swv~ zNp++BbBg#0`VWLOmc1vu`g6-op8Or+v~ict)E(8|EVk(WS#%(o#g*7^x2{Mo)`Tro6V8XN3FH zMEP*4)M+9PfBX$vGKM}csD$O%t9W)z;@wW+x3D3jw= z_ammtYtuep2KX7$z`V9m%E8RI6NVmoBhK)|vkQgPe~A%+GkW7*m1hhII9~PjjtnJ` z$r^pU#QCsie%3LTb7r<5Qfy{-ta&)H%?{ezXL<}CLnI~;p>EXYysYczmdS+sBde_= z7dumT9{qf0eLw14&q@)4LL}=h;GV8rFRx(LkGt%g)rvEFk|AMy5?7bq$nUeu!7Pxo zBikPDf6p$Nr@EglO3tTuH{)uevuF5x8L0&`uZ|2lo=R}`D?e_D{-C0N^hl68dffx* z%)E8&D|3po{GtEt=)(<+jvZNgjdlGwHS^aw(mvQ_=iKsRn)kWg8gug7eeemnlB3M< zW9B{PhMzaf$8Y+kcl1h~7ezL>YFS2{@p<0ye~Eto^CC-!o+AU;mLIOONpyY zuPnfU8eK@?K4wB{$IOv1#4mb1ZsaOqUg!O8`;e*L6!td0PZCZ0iEwSwO}%aYZfO+m zjVeT3i1z2E_a)>=H-Dm?bhmF##qiGEtW~3?z1ctJ{x^3UXtCUU%S5Z-mXs%+>syKs zf6U*}WlSGtMBNy(jjU78&kJ)Fgy=3XB5ND-Va4yu#(L*lbmA~$`c@fQDE+TQ{6b&N zt-TD?w714IE?hyCor678uGB2&TmB)Kw{c^#BW6V1mc?Cg1x;o>GP~RCd+2Et;tOND zx4H8ic1adD^wi%b3mGFrx1D5Y*I!X}f9@=Qt;M8mMpEW)VDYASOU%5WKk)`7N6YBy zH9yRrxi+n$UpWxY;=R#eIpa65?FR&AYv)i7~y~b+gg8al7n#^y=ObJ%8~z zqol?+c+|!d$?j-=Flu#&$zZ^5Fw8S{zqzBQj&u9&7?~qocbu|tD$Wh-5bFxADBnbz z=}xnaF&5cAX=9DRl|7fyLcUYHe+E0<-T7=`XY9K~Hh33S3iBP2Y=v*hDmF3tFT@90 zV0Sfdygx#?*Z7sfXc&{Yt4CoQA~$-NAo9{?*14k#AFfRn*vBi_TRaW-bRVy1W88gH z!km(OvP>4-?HK%w(f@m*e?0$M^ux!~duGh#L}ayvd7W2AZ9^OI%4*}ue?UU)q4j=c zoOSe9Mcbl{c73F!@l+fkS{t678}-Jx0$tRHzQKEsE$lIUwYZD%5+UVd26>-z@230G zS6C{)Z0wD=uYQer{B!Xg{5nE5YqK}=MXUPC3gsG(Kqkf{-lqj%ji+p!a?w+w9q@{> z>cu1h)U+|R+|g!w(f0&dfAssNaTV5!8Vb}UFY>ujhD4Xs4|UcPf2yeKU&@8+^n}!d z9$HDN!c($dI$;MQ64^8SoLhN{%*&E3m|^^KPRuQZw2gKAkqXLQ_m{_4u@YLykL=Bt z_qQ=lD^fLPLZ^;THPVpKRKV5w%xFF|@Z|(Rst3e=x7afM?vfB0C3r z{_4`Fg|X0AQ(b7Ay;?-p@rz1UUd(fNRrVZa_PpA~RPlsVaVOMsuS%C7cX{=;4>i+k zsV%hUUaL9r>5WmZ7y}d1GR9b58;!dTN5?ovE%REOUwj{nW+aR>Nf&%mYqrqu|4j1w z2hu<82l-+Q6TgqRe;`*~2&wbOs|Wi@z!h&JIuTlW3m`I z?T2<=*FLnF-V%G^FS<*658rgx#2#lM?P5gWZHpnWi1eS&d1YgUZ&&Xq!E86v~}VP4Ie{DHN9-ae?3!@j`=X6mST|fNBmkyOg6!jDBg>)>J(#6Csp(YA}NBqZKGhcA`ruxRUx+w zzT5UboR1NG?b}D5U?J%nl!Yk7ZSxBJwat>;pZ)lvJ=a2(c#6Rl*tH?WKnctv4#ZK@ zrfBewUMan1DwX<_q-Y`BsB2vy?T5S`(Qg*le>Nkl63^R=+Kb|uqGZ~Sc8rgtC#H#o&9QH>F#4pwUr$~{>lu4E%Q2Rr^ z-IXtYo%bc<6aR8atTCRHCRuGlJa6WfPXdnF#=9}t9T3r)R46kcg;-8_djEtX#aL2Y zhD{7#$S#}wuu-RBk2)3zD7E2M!bt)@* zZ8K69a^+MlQrZ#ehSPVVe*8mEW3-KpQLBWsEaQmowh(vn8VYI6DPK&8`A2=jg-F#> zd_g-}q9;EhHEo)cBE+LBKO(br@)8KSt&%r9&Q#2LAjH29v%&%?4Q;^W#SY~-e+%gi zBSS()DaeSEuk4huCgi4vj7v6SYSg1ch%`ENyAU$C?~0IJCd&BKpOhfppZ;u9#!X7& zOV~eANVh`qMj<1n&Lc88`%K7bIAuY|6N|-Fi$WVp9?A?M4enbLd- zJAR}j;{zj5Lc|}bzj7evRFRm%e-(iJ9E3#oPrO-6+!A$GiYx<~#VEwSMA^bZh8^T$ zX^B3OA2y}^)k+!0LPFK!3EASkRA(e))`QwP?NxqADNc$)@B_tQ4`nf=4zvHTJ%^A5^x+AuM5n~>o?raNve;etpy3l$T z(i%mVrM5pWyg$*}9z8PYH5-(hCuCOa@hN1bNj?39T*pjVAzdML$WaN&m* zSk5_oaEKJg+Djp$vQ-c*e_#t*)qynX(Jo}=Nfn7HW>Yw?t$Zb;wv6kwEE#K z$z^1gRYJ-^uB@Bg5;D77XJa0ctK=Kiu|$i}x+qsyNaa4XLUudIm8E?2b9C#4l#eQ| z1F4fDDMD_26j2lM%A!1!Kw3lpbu=_OG=DoqLnGreYOUa`Ss^Qbf5@J4R4$_i%qCGz z*}{QXr@Vla#YZ!Hb%ce z>SXhWTNW8*cEkddd zmSTH1L;tl7Xkzb*5OFb-Rr~p)_;$(?VuNb2h2(}+j6#lAf6C?-ax>0h7xJu8mxGjV z&X{*AWYj}B=t8D-z6;``KTiD1k;{chm0^vm7VDhIydyF0vP60=iG=U-*0-pyhmiAi zu1Vox~D}7RddJR4vXE|3jD~6$#RfcB4q5I5C}&QuJ-m&MJZqMionR z7D2C6Dbf4}znhMMp&v;|Nf>7;QSnXvErm>(VEEn2cI*-#r4TWdjFEIv!sl=!e0e3BXbHJUdS^L5ImoJJwF zO!P{X;f|HiLZ&yGc_L(|iryj#KF98OLUe&x#!pY1>KBCUuk-1hJ7eGQsLajSwL6uS z+GGj4l5uuZS<)Hk*)CB#hS?@%Eqm09SICZzf0>A!A2F7)yBkK6${smmhF96)Ze=7Y z-*MIZ>A2w+J=r#T(90>gW9C(f(Ki@3D`#3lzgRiT7ka77iMf}!KYAVP!z84Bo%z9y z`e1yYC_ASvi9(JwC_>tYG0O6K&`U(-htsc9j84Sf3_`YJ zf0d7r=N&a|{k~ezOAur24|;xtxKsa-Kcu7Vt)J^8@(Ox!ntLf^*g#9KMrRL^*MR?(YRTaz)th-IAGDx`bj6W>PZm`7Y=@+VdB z2??(Uo)Al)@i(xL%6LnxmW;ldY9k-ays9=6c0d&p(|quRxYmu4uIkOOGDygif8~lh zC$WR|bAQOB8Dc4hRuuH5)jo6^@Eml>7W8b_9>dP@mW=OP7)hxz79O92p*x4Vqz>5& zKc3^ZG1gYcs2wwZ>zKwl&NarMW2QwN&#@0iii?f?VTF|H7$vPSiXJ_Ubw&;#o~kKL zf=so}RW8~kb#613z4LIdS0PtCe;$8rec%3pr09K#NZ9=NoE4%E-)D)fV`f}kt$Y~q zl;Ha%`GhRYp$+7sm#wb(vGrcp5vjpjvXgTZyY8G1TF5mTyR-fg()b(f6>(QYo?ZS1 zCq*wPMk-EBNKuH5wemu=r|4I%N2eNdJ!%AF`5T<*7maT!bD{rOL3hV|e~Nl^=`d@& zo)d8iMt*nz>v>_EF%q4n7%|S;tI;eBvzzL**3oVhBI^U+^mds|xPm(zt3QQoo}?q> zeT{kV`?!mxki=6X0S&BQ*G784)w zjJB8*iMhHhCK{pNMTq0XMIk3mwBFmNgMhcbMV$}&>{^QSFWR4$VrbqEBy%M|OBN>! zk&!FfOf8EdV76n6WE_lrv|LNUZ0_H5HK}evRLtw3_)O7MbW6{G7;?;%`uA&d8OUC|BZBRb$LHew`4$n9(6a&oage zTC46@anRb2{+2>Ue}qL4nYxX*KW!!F)7wtP4rl4lU&iOak}NG;o5`l;U9j*m;SG*S zSiIY&GmlwRQVQi#&&5c?FAceWi_VJFTT6&EFm)>vvRX#3ZnNz;Ejl&-QbDhw*xP3; z6I~J(EpZ__BzUS^dxu)Hxut{lT#Hx^b?Oqbb+mDR{N+X6e_5lj!LaM25UU$=Bf^0( z(YM}uZM1Tl2+C!KGA&_G^FVS(Z)+q@K8)D3+1q37tgWsXMGy(e zgKy(XGK^5Vf2LgnoY^zA?Y5t)4qpa<&~!(HN2BL;I)g=9~lAwt2@q zl(t8dm@rZ}YohJHIe?7#z-;bzqJRKbaBAUry%57LmO`WhX##{0tCN}C*)6ejIp@O( zpE}ghUK!u#MhYpe?S{J-CHWN_MQgWRDQ;$I*KJYve-0tx%EC9jkp+UM_n!7>TBnd_ zgEjhn{)4H$FHOup5F(C*@AE!8e0pV{4vaUpC*q5_EA7QZOw^~Zr-feX_C`!dLS+7^ zNNln-IgiV}&nJ4&B@M!qK%{1_QV`-Cg|n~ci`>$_*$!rom~1J|;AcCBuT6U05og zp4j@Z6B9o1P0!2&Ijj&{7?aRd^dFk`NFt$iC`3XT-}HWBHMoLnF{23)uMHy)e?kl= zRSFs5!bap)N3WE`xEIW2vxsM5RK%XwL>(N3teDJ(i0mxPr4}O9O{dqtR4cM*|0G>d z9{6WIkjML{Ek)~43RpLopK~krXczMG!E^0V5s6>NQ#e@Yi^^up4ZWZqes|>l(pb9q zbQe4wKiC~l)TJ!UQ}tYG#qJ$3fARie4Top(5R_G(m+UEi&dLjI4DF3J0(UN-%8`5_ z5~ciWw{(ml>l8$Q43SYX>IE-HpBs0(+_bTlN5tQ-3wh-Fw~g}6>qy*H(4+1H?Zyx~ z1MLNGtqiPZl5NNnvjd5=IYd^=m;vGTD<15gd{WO}Ath>N5Q!oI(m(Dae;3TrbbaWI z4ALX}09lPkg)+vSrItiT@j3m=8?8g{xps`;x(IASyU}~iI3ZVvIrfhiBK!Eqb0q!w z{`3(SACdVZe(F6&eByWO+b;THy`LX8ppR4IrK+<4`5!mO9jRe_}O}i&TA>X(1$6z9s7`2mJ@GO*oht=gTU0$ne$6#!6^k z;(XZ4&1EbY)|dFYI-_{1_E)fvvyc#rD64jLL%+XA?iczgL`GY}ti7PAg=OLq=S0tT zq~|+YZGQGwS)Yoc6|ByU;R_GrB@!V&a_ar|%su`5&NQ&n$?prof5Qm(%nro4e~7;? z7qlpal*e-C)kpw9#B*Z3@I1&EBBL5+82g*mkW=)pNuSbr>!0a1(r(KtDjBnq`!{Q& znYO7*hE4Qw328W0SBQTLW7R?udn1HY?kL_<_kteHo@NI~$)z2$tdVzjrFH%0`+hktYt6Cx^t&yjhGf0HwWbmxu*(pP2jNwj4b z{cp0e^c?)wCaVBhK)06`GVd;fDWMOtdo(y>#M45rhj`GB+{x~{aHst4Cmr+vc7NI- zeA5t$m`l*3>m%l+^|pm@EnW*3p>< z`A#3ZChSJvE61xD`CFe~9+*YdXR953#C^&(L*H$mk+i_idC@kAkX6dZnrTI60^FbV zla$mT0ZOyM)SW1QA@7}5D`%QdYkzc|x0S>&3`AQZ3EGgh|B`mF@zCT}KINNO*W5n_>TEcA7>^`mx|L2oObM{=g zhh0d$=22JFKUe?9|J1@e*L52(>OT9*9C4n1{rFsUMyz9R#q2j3=3Hlg z#>_l($PY&riYW)xuNFgm@H{RSKY>X1j zot)Yi5tH+Oj<~7xE_d?~h ze$Okg0a?MPy3_YagoJ{zrzM+w;|*S6$r7P=Tj7L@7XAv?d7=n$_7JR05K_43VMQHL z%y6uz-A49~6}^y*q}Yn>BZ9u-j1{8NWJ3#jXt{P2j{d8OMH+RDpo_pyps#eT(w$tgs-p8x0hln_Dyyg)<0T9o&WccDdj1!Rw|=0_C2R2nPrd28}! zFn_w5j4|{zmzT=&8SODo^cz>NjeCYxZ@zno>{zi*b@iJ$L%3web1rlZ*?j2b2#L%M zBqSZoe~Ng4%E!(P=TpE_HF{_mWs~O~IZ7?Wm=Spm$t0G1V~2&kB5Rx$Fu%RV3y)9y z%)wZrPl*?P&g_-z?AG77#MPPChn*9mW0kP?Qb?QV11{PAgXMv9mZB#vq#AnfYs;qK z{gEoY-5jwog6A^R{(*v4Uth%P7kOf4Ae=t~%u->h8$Fx?3UT;3R`}yb6Th zz#D}54W2jT5pqZF7{gz8myHpob*~kyWfPK(SM+-R2UpZ-_xTN;Igbh=B|ePRtXFeJ zD|)?_3fmNKXixF5@tA2q_yY$#yDb@&0(1G-~JV#oSmMArIZB84zM6 zGB>v;RtrWjwht#lA45pJXxVM+`Jt8(e^L^9{M)8aO+{qog4%3LT34*9+;-E!JjTwo zMvVLK+|tFmLD`SqbH+#={5>T&&l)4SW99EI(Fq+8@xgg`4ob>r;Te^ApD^ySi{6<} zNRjQ0weGu|I57LNYp{cMm5@3xi@mF^BlaQ)X&3G5U40@8o?f2?jNE~{#llgKf8D(0 z0avH3$Q?V5JnYZf?Hb$hyGP@BZM$1tyaqkDirwJ5*SJ|;_tO^EaqW@P#;T(|sytWR zpHXW;UuKUfdBDH6VnZFg#|Z zjzvi3Ip2GxHn0}n7h};vYR4#>eT!95mfbO(5S-j}Jf4ZSQHVTBTx*jY#VGaB$r)%< zoNQWc{-2gITB;}a$TO5rUQV)!$PN)>kSD*Iv8wWv6qturNQ!9te+&7T`FM(@fws#j zMZP#c$GZzjBAwF9L%;r%=@V5M`QU9mWyx^hx7K|`3+0rj&BohUUKv=abgD(REqx#+ z_i)H#l3#-FR^^NH>8&q5-kAk1FywFxYBZh~SFlTsG3u;YovcY;wM;?0oXDnlGpfhJEe7EN+hre_+Pm3Tj zbHJ?pk#*ZJSABM92P@W&O#csgEf+arcFd82(N-b$u)qGueU?@n3mo|oBC(8bEo5N@-Z^rfv5xELpFX6^HSc*tr13PcebXzE zztmie(y6*u;=-Hd6AuVE_){%sL5>g8x<4hVM z*03_}e{WS`wY`vXcy(%V%4kG>jQYrrkNfEmxb<%440*^!Ct;CI)L8P`HeV4bz)6=3%NZaKo} zfB!f#F`9Sf<#2E8Juz0yx!xlm2Yd4GDXnA8&plEMSUY*o%o`)8GW{)J&D_1w8=4R? zGk&)_q*3uXPo^^RK?*56!B~>Tsqzu=;h(st@+2B|#mJSBr-!HNwKQ4Fyio?P&RdqT zy7oTl1=O@J#5yno^+HNKJL&~%2N?oie{f!R{-0dA^W+5?A{dQ$q1BEnDx?|4cV3WB zjsErva;q^`<7_Au^9!Eyjo8Pcqhkr>s3QyWfG?UHaoQg_t|_1$^5QgRRey11?!I~P zrG(yxXB)X!UPyZ=kzR_KWB5YKLi<4OcHqh$S)*2viQ_qM5!MMkXSc^_#B<&vf9!aB z^4cO+B@1ah=k8gG3#*Qv<^0gzc~*2Aa1G2S$MSP(tQaYI)}3kY985pbS|i}u^gX3ReDoPiZRmgh~{7>9kXfidU$^2(iWW8Q)JZiUo< z430i*y`m@aN~(v~tvKx$-k)M0f00JXmU#HY7r7D`L4Re)Cg-;vK5r0_8H3?HEk|pL z5~=z$V%&uqY_YVgp)|g8KHnK@%skIkF{b*o)jXB@c|?fisO-9expyz2WqxHLjd|H5 zS-evYks21(x(jKBRR*t(^03GAwVNk;EJ6xT^m{$p!nli&9MD64-A82bf3J;T*pDG3 zb4B6nGZtQhE;k2bs;}>y`6LS2ygyx18MBwKOV40F_zn4|SSkCQ)rr@@Ly#ETc%z4f z{5wKyAg7X$*09g$jg<>p#BZE3S&lj>44<9(RXy|M0v618zFBg|>gP8{;~Kyx?=Z3* zGPmn3LYAy5)>+F_$oQO9e_O`P>Ra+yFlY3Z)AZt(?id$V_B%CA z8~b*T6=Qa9kI4OvZ%a4x{W(4%ijiCw+k9u$!Y5wH!JguGZmn3e{jL-spPid(VVQWd z^J^i}>STFvd*PVFyU!`K7|8=`sfE;uKGSmsRLq|WDa^C|UI`n0e={K#SSow|2YW@{ z8^+av?>SE+?&)*#GrXs7wSc)PM=~-NJY9x`vvZ#|mAe##v_(@ir7&g3ljSWW`#3v9 zJU!}6 zb);Uh`Gi;ZS@TOn&u$dqT#Z*UB~0wLE5>0tADFp(-3O^a4A zJ}N~2Li`j$b{=%I+-WrQF&t^gfhR=vHJ_?H+N5l(`RI^H){_v=zu3fc0~`K_;E^^Aor z?M%^0M-1n_2&oc@coO$WhhlbKab%b8!d~GKx1*5Te>%&9V?Lhm138qJ5u&B$b8u=v zZiYWn$=4LpD@I#|_>5~j*JoQLPh7|;k8)rZt_(QxX@$hl$hLIE7Inl6Nrnt2o+rqI zW#a8|QI5rth8aR3yJFm5$nkb#MD#%v>$LDvDikSk#7CMVV)>BAZ$1ENP&QVG)ERX# z3Rwj^fA57nd0@0|Qdqinbmt_G8pcC}h%|A zh%J^H8%lB^hH(n>@^97)GBqS&@mv?5OMvTEPOek|F67D{#XT*azvN$ga%pk5YcH2F z(n6-p7yQzyb4_)fLUv>yJ=PN|+KEC+LF-A@n;bg4+p?k~di=3fTa-r^GDAk+O!A1U zf7~o~*#~?^yU%RETOy-op`{x8%!A*pPtIaHv3~S9Gm>fB7z~rxpD|F3qGdxp@&QnT4cQs6tYRwS|^y z+{Gq({Be&KSflSLmkv+Wo>~KbgC*w`Psn~HQ@yg3cC^hW~< z#i9BGAvta8pA%AY=Py0OL)(n_L`pQ z-4T0i1^Ccow0pgz{!$gMkQZ>8x5Z}xSx+31$i^>~MI6|E^Fu}XZ6VdOgovE9SvS5T z8wGdnoz|&B(tMbN;ff|%(JaZ6hmTR4X>;j@*qJEF0ODZz`se?j@*`PWhe<4M#44${r zD$8E^ScRp3Dk~!+rDriL5PPnWBRPt9u1J?rF4R)Z^2G6O*V-mZWuG^n(B=~o3;HEO zs$ujv)y;jBLM~6}5b}J6{Re^*yeu`Vhq|zYjJ&Ca*8aS3l)ZE$2h6bu`N$%qw(8)! z(By?;l;A%K9^+!3g1f}#e^Un-Ym(N!D>e#DQ~oUlYAMRvMuC(#F6A=g@(C9C)UMDuYY7>e=H!aZ5#_o>s0LS z5OVDilc$iEGxZsn)0I8eb58HY8r{7Q%)&Y4RQh<%$`5^XrvPeHlO@D^eesOCzd*ee zLPi@b{m%*5qvnWAQao?oSk3!$UR``bt}F-Eb22(R`g7@SuajZKGG^tyS!5IEhL^ zY9>$2Jgj%|P<_RGqea=4#6n>nBtDqMmS2=3vC#|hxyQ8I9$r}}Lp)3{sG{AG%+{^D zdg2Xe^F=Y$lJxc;Fpf0Z1(qA z@Hw(;4py6(&)B9uFd@aqIUv%?LZ8-cTb%GIWcm)_X!`e{3P^!=|wAY`nNXGP^laVxz{0 z7MG1H*9_l!*4!ih+B|V#ELyHdWE)9>FLsOx*(y#iiAW6}nrW@}sPja~Ziyx)2sy?+ zt*u)Q@9CC4$84XIYH*y-yfukeXEzC7{vU66#$7mGXpYkIM0>;|BSfl^rV^MFS`4(w z?c{8Hf9p?afhEO}=w%Ifnq&p8=$Y|g=FZLyTzMrVMV90)dWoAsNX=aLe%&|0_qB2G5(ma?|_^gizh!QGaV#Z}h!O5D`BC8Sy>b_hqx!MK>c6$VBP zg|viGLwlZ-pkK>DQU{|EIrw-@(j_^}ny|t+e}}~^)iRJb|D&O<(oBKE3sQR9@v4Y@wIq_3QyXaYt|#iI5c= zTDL;%VHK~Cb}`PE+pZC#Y>r%vIq1MAe`Kh2q;g$!?x`B;)7+~&;~xn3NqE6_V(H&| zt5~(?X?$eY7a~8Hx+NW{7wZp%G`7<62w@RJh8N~JM;{_CM(}$^k#~slZIotM?U;wt zN8w!=Bi zhwwRAwRNng$gAg0z1TuLuZd@87cWIYq!#2F7qUKTX!Aa1=oRGsn3qi(ozmm;b}Til z-V{{5@I(%!&x9hfm0T;bG=Gzu2%>-aN&#_&HC?mhZNZPJO#VMmf}}E@aCs;9omD z7eUCAup&uOf@~zT>|~0Wp?@l*ejzjAWcxo-@JoeA%<~(}8Zb&-!Zz$~e|MyIJiR4I zAfPAiya)~Nf{<1}R!1v}eJn-pSH%dR5Q$PcJ0<2&us&Y9Q@Ddqw=_KLFDWSouC6V~ z3P)&5l1+@(t&nDDJxN{Ui1u}H#u`2crXxy>Z9=>}5uf9}5qf$;%I0%ztxUYz#fFot zA+oIDtuMB{9|94tGQj6(e?bSa8w-)HM>|BWOysIPxiXb=Q$P1Va%vmQ!^U4ZI&IBWQVGmSU@>_{r z(wqSAVSjyDHBPk2f6Hn)p&ehA&vj=+{tEiEWjz`B{BH6v_#|$3TJZktRwqWx%AV!$ zUD&fVjL?=7cs7xc=G5hgNHbylx}53sg@`N)4Vow zWolT9Q{Ie^IQ@k9L`wdjXA@)5HE2DtQ?Q0qx!%Q*iq(NNSmT<;8gd!Lvn^zLrw=09 zRE%s(Gt1<`UyIJtfxi}Gm{`qSW0E$*?}=Ujj%yITNQLfpjiUz4q&QzS@=gj7#BY#_ zR*vpM)zWl~e;){mhH<{?oxYf{sXikLt$^win()Ne^wPozZFPP#)C)dDn)4+>a^RCF zuaUi}Dmx9Qbvh!$myu=_d5fyFHrH)b^8g&~ocxuAJsdT!ve1gI9+pB4So4b+v!u0T z<9hNc<8osB+K0K~ED|9;n+VU21Zm~Bu2HfIpW`jXe;D(wvWPEM)42edyxTru0R3$t zZK5Qvb<3H+Q&oKmAHTJSzi>sX&rrersb1KLZ_r{p=w~^*rJ?0eo9;G7BWh~_XJrcM z3FlD?nZ}F-wQb2*Jfm%wj@5zQ4q}+AuH9nAXsZybs88MOe&`j{-rGexr1q6?rn)1o zqP6aUf0}_kDRnp(6t2z)En$4Lj^qr>hcYn^Yflb&EDnbR&ezKyfF4Ts2$5o6v$DqEe^jZW;n6jG6QUq}kay=Ms5;5dane$TP6us%_UtWNwNZy{vaduQt` zLxc>r((Y{=*`w-n3Oq*iL3nmrkQl`%K@0MbFY7&CIrKwH_nRj&ela44#ml(#9UoCZTgslDFOx`;9_me{JB3 z_7ypr=i_=h)||F}OJgZEf*sUmZTRNlmyX<+v7k*KFoVz0#&xujym2^T48@Uw{#=_m zC$z66cw@l|h&E?TEO+KkMl9DtJZgx~SuqUE9SVt$@0^V5hj|&94Y6WhXmjz#l5Zs) z1>B!?!bOfki6glZ_y$^nfR$Hmf17btOLHPZc!sNahM~A?09< z%LN~^0khb%QF70f4um-33=$T z2&t7N-+LcCKRx`%>LSv-J_C{7BG$6?aC}BCBG>0nGoq`-&w0{Jv<5wy^9D$i+B?kowSi>gMD0f9TeCt8rpgSho=kJH)ym_Ex?)F|%Tqt*hq=#|xUaVw(YZ=iGV?y#4vSDtjdr1ezm7Np1erou!}^Eu>xaOMGpZ zC#%=j6ZqPH*3 zk={dX*m2!m%^+J$fA4O}qeSW>9IP1VT{?zk?}+)}On^R;d_df}k+LCodLLdLi069L zz`bLA4A<$1OivpjvL*R&b;hY&sno|cW*_L&3Qp1yBJUKV`+Y8(SUcJ04qQ3keHJiA zXuCY4i+pK)1)FGjcW)uYoNHe*1lH(l7Un1K>jj=3A|yw&e>(dP$uQq2#F$&y8?Kox zv+o`kYqLG=p-0)}%OuS9_2UJ`xNaw^DZ{N)}=nqpd>nL5CB3aN9?-W5RZOAhkSYI{L3% zgW;=<^_Ig~b}(i)Z1LBBjj8?Re8ZnkOW|S9*(sI_;u_I*6QH`bYzb_QmV5Q8w;X+zO8)+;b!N9*( zWXR+G2;s_K*&tRi_c7KD1vAoP2VFT_(d{Wpe>|f?Dr=0L>&1+~*j0PP|D$WdD=K$k zq4y!XzXjf(y&_K0bi}!F5IODR)=O;%jG>IG~C8wlNaZlfC4Lbq; ze;yNB0nuK6*Jk!Z*g)2_UnmO1+MzEPv zPnOVGKfPZb}hgRpT;X@`mak+UQK~{)$^l62(jozV5ikMJiOpmFe#+dbM@|h61$fTX8{JesZe-h^t zH&EE?2)NeERSCY^N{QL^{|I_HLh`}hin+Wa9lvy~+_26;NIR^Z zCB_Y-5p(CXF+wY(@Z`X`OG$he_W0m`b7Z2=G*2|18!My?>_wO-%kah(e?3ED2c_~^ zC1736Ji9fVcr~w2;=nhMeLb)~e%_iFvMJ2l%4T_Rw=t)=kW#UBU&z<}xwlo;SuYmu z2A@xs1NwmT6?>SUn{TCoRR;6zz&p2mz%$ygLK^owudoWQ&XUh&7JNl7 zp3ck=F$cEtf3_nc(pgyZv$9vl;fl)I8R%ok21ySk-@mgQt!N>IBeW}D%NP$?rRWCZ z2`MK})QvvTcB1Vfq;Zsbl~;||z%5nG|EzyG65T8xn4K_!u{?{8f0e(olP#kMw(9t> z0#^0pA+Ao{siU>Nsyt+jEa*&^j+Wh$wNubz5mFD@@j}|e$j@r)WAdi^UmJ5dtD78d zT+!b1LpFugWx!z-m5{~9F|BUB%Uz6Bzia2p{(J9_E3(F zQ6}p8<-tzO`mUk7e}FyGOLpQ#zkbbJ3u^Qww~gmS3h@RhL|Wq<@{$F~v6{7{O8CyL zTnuZRmkSZJ?AF>fU8NPu`zKOZEb*D@uMxIks6Y_#|AinkUP8z%m zp0GjdcIhzznZCVrrJ!{yq{0u8Yl$)JfL-spKLg12ZglkCx3|k+E$H?dQIwWD zIEy8nw;f!Hf6aBToVoL)n z)^_Z9VTN$W@zEi+ql7P7#5?XZF~+4|svDzhJKk)_rm)j)hBnepo;Sl4^?FZ?Y;Q~6 zq>PB}DMr7xSJk5>q`kI=y-8a({>3T-?Pr)+ne8*Be9l1gMvZ~Q-d zI++#eu(1FE#S79Ikr}JFZsO!8krmrDisR$6iLEEzi8Y6X)kH$Yhyn zS?8`pek*fU1@~ZyEf4Wa10vKK63y7h1kG z%EpN1UZ-*=+`Vq-7#9;#8hRgFbfY7)6H)`;bK>!aeT(*vX=9D25aUj2dwaVYw0t^R zAGUY*Ffm&$q&|$8ZP)4|v)g+aS160%$AOuggJGa9QV_E}Ch5ILz~ zf31iYOE%>3`&#(0eAnb^;)>o@crwtwU7Vc1ZHb5QXI3lxw(l14#b5eD;9BhcV*5f; zu6!>%A9jSRBj)|Ft6pydJ7b>^<3h!nkQOjcdqPSRV}n2CF-E^m=w`_MPdL_4hjPLV zi=Q9{dHjsTbkX{sm?HNR5>gY|ofCh3f8G%3;^d4BpZbW%tbCiDD31ZV4+#0l5S}Dz zhm82R1_RaULfS$N?MXumhkqxB#`mE@qRjtnDO4}IZm8MdAtW6GKbSgdVHJp zS$MMj={pU!NPXMDt~95MK4DJ$^e29e&nAP!9nOw?3`3RM8M*S@@-uusIzILA$#nb# zBNVJm6=I8Tz~PfX_z70z`OZS><^4}t=a-xvE^+R(8jN!--A1T&B%IkAu00iT|RmSzirpTbw+3R zbg&cQafg8|`IdEI{wA8Xv5SkSf1Q{eJG$%x>L8D3A}h_0{E~pvug__T75e9_cu*58 zBrRr;$EPdvQ{TqDtj~>>e^H@wt~^cVV%Nv|;w^KF%mMDvTg&E?b$8-v(dQn~C;X-N zRi1TmJ6znTl2 zPI2Ys@J!pQCren>e8Z^&BeXZ%IxwPn<+?}IwqBnugITz%Rl7JNfAPkgBA&VHQ`N6M-HAjA&tHF zn`?>K#q#?66wH0xf9y>la90W8Dd;zQqdERP@{rLgUs;`nSso$jU_HkDy$Ad~782{L zgtUpdP#N-S=+_HrT#s?hUmfl@D>0%Ue67ZUF^6lzuRuiRN1xzps|D0oU2~rw_m0V@ zL}kJ?Sp>EeroV(b)oafNM)Ph7K5+^W7tZ5aml7}XDk0V}e+zd@_h>L8+Ed7tZ#ku7 zZ1C2Y9_9|O9KC@|$j5wF^y_b}@u8pP)2cV$CAIm;DMV(;s0tHvi4%3}w^`zPrrV0~ zyn^ff*0EN^JN~l%O+IL4etnxPIabXI5#QmbewF)dU$0WYj;^=Yv@j2NyPleFrv75U z=?8b{a>fXte~=n5ns-NUn{TGEKPnD{6s{n@Gv$toHQnZwRR(vq%Dv$4l!wgrV1=B~ z`?$L1xKrd^IZuq3T^+fC{RZ!9X(5ZgYZT+Ry|x|>S9IO{n7?g{0V_}LF0Ob)L?#|9 zs_x!id4b4{i+9M0vVFJ)r`62X|9Iy-{*0VW%=X>$f7-?w2lskQS^Pa$HktYL%^wx< z_tsz-Z52`;ztcOzLQn5rts2|WyUM`K>eWl-dKn?IJa`(fI5hKvr=`ZK7$Ie_?R~Kx z%-mg{frMJn`%0V`N0Mu13spz=wa6Xc@0+cmn&G~s)ghMlLi|uWzA(eZc%qOP@twY~ zY+>Bxe}(N*3q)?K$Ts8?h@j9Om8+Q+cJmQZ47~!qIO8rzFZNuqQ}K(VEv!&}@qA2~ z6H*K6?4D0iLks(SmIFpXg?RgPM4B1Dh3uWJ@NH+mv+ymr?unmG9$>Z_^nyf&Gg5czFaJpxuwdtV;zB>n2N zfDvaQVqExp>W&xVA+MeiP~G&JcM`xi*Ib;AHl+2Bsnk!bGoT7yNaJacuV=4rK*UQlgs=bK)y&!0Iy6_bz^e`@8ku%bSK>$b{AtVT%T{^ajBmlSv6n%-7} zk;eU9-VS!K>#&fPQJ?s>m>uRz-tM}E@ty8oI>!0lUb3V3)cbt&rW2A_87EIFcFd@~ zlghyfc<)-h$jP5q9H0tbNam{McWavH|GeAVLe<2Rt9SWEmpjEhEuP$*&8OsEe;-vz zh^}YObUj^XTvPnC;dnOqd#_-Z5DOv1MR{5wW}VbCj?_aLC?O()6fqMrQlYqukm=3k z5!pGBBG(ZQe<5-TRtoB(*Qdx@3ehPc3oAstifRajm{npm<}OAj)+uC^LY0E%?_g0p z#OaBw3)pM(nI1+po zT>|xb6(WmBF>mi4A0NeT9chmuGD6(f!zYmCy~M>FDX0SR>h0PnJ}NdGe`6#oCd3-f zh7i)l0&uPC$XG=$cLP}obqYF7Xl5*r9Asv?^C6Ol~yJ~nFWqdzFULbLQ3*L;1pL+H*DBtMv?^>xA zPRQmCO+t?MHbg{sJw*U5h{j`vT}TZ$=}1V6=%Wi6GJa@X)`*W;z#93mg0HVS~@Ax|s~ch!s8m{YtQCV$(jGGw^cue#h35wSPE zOWv-JE$n-u*tl-be8)JYL^A-Ul+E+N$(sdOAE8TVV%5su{L{E&)P zEb0K^lsQLIpg59{+d8gw46h~1%3IW92i!Y91U;h|TOCwAEu`m&x3iFnQ7IwQ%Q6{h zY)7M49a8+-ky_CMi}A%umC%mViB?%}jb{cqk_Ot|m{K;}e~B@bfPG|y^ztaTD`aq7 zOo+}l>4?4BEd*riG0T}j4@_r1W`3vHxGS_H#YpEMq}PFWaFmzRDcdK+8?)gWcu!l3 zCtCE=K$%D(siFE=h#WA=2Rl+C#r=hpJgM`GBlajxA!Me4j4RsKM#N{+->>NZ#8OJ4 zPEbBqOI|4MfB53jViX?0OHR>+Wr!xddK2hx7|@NHY@X9@8P9U{jX-@)>x z7W0FpfA1o-y~Q2ONW1Sy{W#k@#!4z)Au{It)VtP1J(YxbH6EUYy&}%265>VdXp!W~ zRNje41dj4^j^xMo&5I&Qmu5aVH8{|GrbQ@+vS3#BuMeW50Y2IGD2LU$)C~nLs}0Z zJxx-U3K?#G8EK8WF$$TXF;{*o8g*b0vdf|R1xK2Zs#3_aOx0_aJZ(k2Gwe4(3>jn+ ze{(q)DM|V=!}~OOR{-2QDQxj;euAGWn2_jcO*(UOrdlDbu8=GaOK&?xs|%T3iY;Jo zIw32e`q>fhQGv+Gd}AbS>qZr$<|EJ>+G|G^`WQMr-pvz{Ws|Bdgy=9(HIa!Ol#PB? z$~j}tY$3%%B8;R&vx$WClrb`we10%`f7L0kg55iW><@1@nc1SsI!DT)e7%sO*MmF6 zdVXj}lRdk<4@#(w_kp~&h?zV29yK6;OGOl))XzdZ>cM~KMD~M)w1!qJl_!rI*R8y2 z7$fk)2fi2-p3QX@-VBIyyq2WePuz~z{shtrJ69Ff0)|Q zTgAU4!*|i2OP-s;d~oW!Tx3tFAIo?qeI{g;e?uKz&C3oOTO^-iMhY(>o<>GXzO;MM-%j%94k_n_ zc)tz)JF6J)kaca5Ud+-?>F`~$tpxN!<RlX%*v;yPf+!M5V1}^_3zeAeF-cFAJ0VJmV>+>yv=eD zOGAyB5IqF#kQ`d#SWOPYSsx)WM#FQOV=9IjjvSqm@@Gn5B}|SZMvQfOx+Y?*Mu=t1 zN#qnFDn5mzfD?O!?3B?Df6lTK5hKAlhjKB0nzJ{|!EY0}y%=GVt1I?I)XukDgq&~YQ3R!@Dj_ft=c&jzyZI*3+WZ`mI z_2QY!`mTeFE7ue&p6%?FwitKOQp=L#iq=v#Dtm;qim@8GI4M(ae@7v!Zp{DWddkEY zSFSHSwEnrpcKPqLu6@m)>19xjjgZqGdV0Ct5J*q%Z5~R;doFj~3#fC*{gpwrik3&> zX`h0 z=eHv=Tl{$H6&@+gf6WIPC1f>uzQhsd>~j$?$KoSLKKAI6%fdE(t@x;Kgpg~Mt)+Ms z_5n0+th>=O%6q1YI>_wWB2<>X}4uK}cbH;Gt8TL1Dk}B(i7^ z8z$t+?uuvJf7kBnVgFts&!<%ql8bBzzB#7>RJ|sod*}rbx$l_&k?D(->UK^4HD+l7 zYDL~_reA{|nAt9a-?qIpF@o;?@xgqS6_FZbgFd?VVqJmh?`PzELh3~&rj_aaNDx_V zB6F~^V?q6>Rd=k(UOOGd&M!iGIhZ@NdP||cQhGh9e+AS=SnIJzH734x%WPOzlnIvRFLefB1BcyiBXW7U;$^a2hs-f-G z0u=Nc-MBsUSZvH#FxO^dr-HoKhRz6Pt!&Dx#(E~3q7-01(ls zM}53af9(UdA@k+Ic67yt(};y6S#12a<>Nx}304c(Bi9iZ1R-+k7xKbDU(;NJK@$c% zqZkg>FWAmyQ}w5t(b&*O7t$`WPTM06KJ|N8Wh=HvTc{wit%swo!;aL=ckq6?1M!p` zFGs+)aNJtr>Kxq+{N`jTAKTv3WUlb3&qn=Mb|l3+LoM3!0ISR z5_Js{l6`#;sS&#)n%`)})dbXIKuFdNNS30wH2mY+ip({xwM`KETpcw>|v%0*pT z={XMcnM$u8Ovn-J`sj$R8C>h$8ukVf(o>?oY(hkqF^^IDOsruNPmZj6D*c3se~hbi zU8oqT7m~2=z8t;WSf%4Fh#K3`A!~^~dKo>iey5DlE?bH*%ZKe9%ihP|IhkY8WnAy* zz(~a@nsRAVWu91O{!qe{sbhlCeMcr{`-Jc$L?N%?d?q>7AzzH)7j2M@HLJykoulSQ z4y_zyJoT%zkDch<==qje?z!?4f4tUFNmh2u#@59dKCgl2>oMvf#;N<6zioT-CPd!X zjebI8u3XMn4X(?p8t?1l^C0;%HxGyPP{cFtfVP- z)`1+hT%XFx&$cs1-OJVehl(g&G2Cz6cdoZ%M8p*k_yn)Fg7L)SDqd8zf0Xwkc15$Q zd-kILQ$vgy_nVNyRX$p2{T}+ILfXdjQ$rTvpm$n>pHn))HF#Gv{yXDCJtIWhm(HoY z#>90Wzh)O01r=foz0fM|A22(nH!2#BPaRw0iryM~JZML~fBi;&U6TtZ@STdmUbKnT zJqgUyioV5%yQ-#97y1}-e?3Isa7EMPN#l-ug)KF?oD~ zYPz2BG}fMR*135;IxIX{b<5|+eJ!N2?bSbLtdpoM%Oc=8Z8Gzi^{s7IuB)!HN30gE zU4$69n3g~nHzTqkm_?|4#)-Mz>dIgAKI*WB6V`;(urM-LM|a%ao*AZYiW@ z>O(8!$wS6(o6|dhetW=!p5vsJ*zI% z$JetPcPpzm#L0K#)q7(ea}*wie>gdHv2>(PwpA~t$+xqP zLPh2+gr^M((Z#^~`n8Yhj{1go`$lB7h4I7|LhkqkjxhJvb>3J>)Mh z!QyJx7J6tj7eUChL!C*zIjl{Ly9g-(bJZTds2|AjVSk9c%wBbi+6Nc`lxO%+U(%wF zO6Jdamp9tie=Rw|#-~m>E>xDb)IT&oLUicql(aOoL+F$==dc)u6_PKisG1irAWIYC zi3~*UN2P5`UwJd_DX|UwJ=xMh^>dS(h0{lcw8HU3J+f|eJPVcstF@Xd5RfM}8+I|@ z*lgM06}6X`skRb60Q*1$zk2O8PcUGvtrambem|w!#w=+o-GA1{XGX!fV{ks7)8SsOcMj9WIJ*n_H;Hm+akgiP0u;%BCpb>Z2T6PhrF z(&lIfGv93`S12Olt!MDfc|UJd&bK8m5S3SLt%|*@h3t&eY8+{XHJ)uf`IPw7+grlm zx9Q7_EyeB@FdpCbN*6l_3z2=neIOP+(9hBU#b0`k9BY2+S1T&b+b_6+D|$V+f!`)h&Ycy7d~~2|w~Afj8raYSaA z%q{OK8zWimp2%HO+m*+UQ9~~h4;Tw*FNVkG=ZU3Z23PlQG>jw3^v1_FMBJaXlkM$< zb1xmy?SG8B_lZ|w4SNsO23FSfFbnqG7ovlTapfL^m?}M+5Zz34>bo}iA%qIPIU zg?OME5t#$DRoy$6<2&tf$PuR-qsN&ZuR%PaV~$@)?5OnX@r8hy$nKp8KYq`v3G2jr zig}?2CR<$=YS4SCGFP;#ditgR8EG8N>q-A(UVo;iTNj>2510*%hRa_u?j+E&d2>`m zv<rXKMk@Dr5$~=E?OQLy9(o^LzAny*6!PWi^=h_}3H2(Az^Adk z(0`D_3P~3=w7u!OFmfuSG8YrlCcg!_1s$1pZ%Y>)?(60fRl&4SK65M?ftl984*`MD4FL7II>Ye z)W@}pTEjj=s;F7$GX<_q5>hVuGJR&dn17oRQY+?z`_vCb7SN|i^v4s(HN(u1klIn1 z-KWklGP^#P0Nf$2XvbKM5G@<-x9LQl|ITTwX3*BDhxh2xy79fRW=J6gNgeyUZxg2NY7Y-*DZw>_5gj`+pV} zWR|v1HPnms{k%mVBPF30r;DORj4<`%ItM(#N9={I@>w4lwSIQ0s15JOEk$;a3WC0`J z95IJ1#2$9{8Wvi`ULeC_SQz&oUNeeOso_OF$SsHYz+XC9LvM(czr*C8;teRSZUbxB zMV^dp;waX*Pu6fzJzC`79V5X*Jbs~1JG|cp=GsP&AAKW+ zhzQQg6tWx7Ul=2POh+1H<$uXLalD){YB*+Wh7pW0#nv(AFlOFyNtRY0UtJx5_ZZ8peIzV`ScK*makNs<|h)A*Z@tK(m z)(8lxtl}N}*3I_d1lb+@wiD%t;``AR%nFEcvbaC)x6`Wet$B23V1H+Xal9Iw_|7=; z8u{67tP_2ip{p@t9(~-JGjiB*Tg0j1jx?SvI-wco$61&@(FtqeK4NkTNkhrE4x7jM>ec(?C_r%sz>VKO^gcUct;W8-IEq(`VA)X%yn@0g+t> zzf-TD;63V-H!S>4HTz|b4=ZWhb1k0E=b7W!^bha2e@+u*5Vcb%P_jpFcHGuf$T*r(t)!EvY zg%w-h=x=McrHQrjvz^Kv^=1=4LGChp${br4Rc;5hhEufRe0*C;7ghbU*Ag+qK6_6A zwO_N3urZP)BpXHvgp}BE@APf)>&c8*>i z->0I)1*@>8D2ibgVa^yHX1aVVDNdXh(!CuOBBLCvBAGt_2WPlUpYntG?Kw|9%xYFj zi*4eP%a1;wT(ib1x4C9m*fVafql1dJYWcI_TJI1KPKTY_8_uG2*)=w{qr0_-KE~WS zbj;FruYU_CQO&)4lqVv)Z1i&GKB2RvI4N@%3L%Ys&3Q`R7|9Y+4|-tpv@kG!Fuhj` zW)bGmO~y4}zQpZXi^<1E}96W^!T0}J>| zuLr|%$KPrTGY|7>SD^-Q-WfJ32Ik!%FiX2`tAF?jPMerRo-Zbji_MpO{~%JrVh;PN z2tNKEd6Yb9V!ja;s?X+=iRC@|WO&dIULosbF;c@sP1f?6si=@#`kh>J@v`8z}##!v;3Vl@mE?rm+Bd1G$ z#eXnH>_|mcvph3}HJ(e}6!$V%c?O>Iu<|Pr`$aFGfQtNJiN+_?Z7eNY#M-gt-59Y( zTAo?Cn0Z*@!w<6v%hwcDh&peHXCw+~1?wo6-LlYMSn_`se@5q zl8f_t-8mv#D~G?Q+;EVsFKCS6m@AOyQ9J5;S1mrQ1rcxI z#ZSUo7=n3P>LdwEOu)MEuvCGc# zA}oyNt+nJF;@e(24XFKE>wV0ISl-)_S-=*tL%y?i&IRYoEbkV>dvtpUgAuU+j6JRG z)rGj$TXqaJ!E3)bFe9*zm;K=r9DmUOjQ6gSb3N&ez~@H@_ih`+&eW zHrluCt$2~G3uzT6c|3czzxGC+^&|e{mmVaa*+H+jBWsE3)&;m3Nit z0nlIAW`SqY2+4-g@GZxT=iqK1YRIS2WUnzxx;;mToe{QsCRnNA$i*nzmf1_lUBqlZ zI!bttYtDh~a=c$AA~#p;nZ4y|F0A_7)jPW49<41NtXA2zdxw8SWPf{kMYTf>>!x-+ zdGT6{`v=T;?&jTM@NGA<$QHH@AJ2!#^hT#2NXP1d-P{Ah6_t;%v07z!cZ~4c`fu_W zB0i3uzs>T%{uDwA-}T#zQgEur?$Zk?8TqI(-Cl8km8rYmnlT=-M@j*^#B0rRL|=0c z?*hT!);`qfd%U_Zzkj`_m%`x_%#c3b=?wXxXS8R`++}pn(gx<<_mqXj$lRVoON~2m zz7+X36YZnTAeU&5fQ6Iu&7=J0*K5PS{t^4+t`EI;E zHUdwukcBF1A!YIjzTWy0-@+>~@ZNc|vgT*Ml{4SlZU6oz?cm*bl7HwZddMeP>6n#wgtNX!ESh_G9UmZ!k>KNFg0Y6-0p3T)KX9I?)TDtLLP;h>*&ie;{? zINrJ(eZW&z=DuG-e5N=exA2sbQ(jxBY4kP=4HY-1j(@Vy3q3wlmv>^_CGZo}n;-UF zIW6ab)6$MNRsZ^o$F>n^aUeesQXWP}MGHv-V>Q=RC^(Ph260ZDNOr^U_O*!2GEt)` z+kX-t#+7f_!O&LSpjE?eBsZpl&=D_rB(nBB6H*do{(@j-A zIzC%+2MpIO{n2$MS+cA+5Zw~3fFbSvmz1W+>GgUw`gS720|#O1OrvhB%$9fDxS~T` zJtRC?Hz%9ORK)@6K$|GU0$PeIUpMf&<$s+ER@2=wYsW~vkd~1>U2(3A9S66T#2qe< zWUMt5;%aJ$3_F--@*0qVXZzOuG2{B`%qM;}%eFBmA;d)w5h))z*J~Co`t{dma$@xB zTC;}S|5^_ltDmpw62`2RBRmK9>eBwOVs;YOsS2@;(Y$L<-Wi^`78-N0+fp>V&3|rt zHKFytJ^C35wvFh{yI^0XQu`Cy*b5w6y{GJmlT<2ypc zx$tevkg|Hzy`vPqOI~PPadUl+C-X!(&I_xX^jjj=;@r24J>(aB7#01s7d*^IPw-q> z5pQ%MiMywtZf(wQ3;FQGU+`HMwAMn(L2LP9NDDc+3tvw3Twl!bp|>lJrB8D1RaO;RzPfc&hu0!>gPTnIU6E;fq^zlvmV!BU}TYRECkC zC#Qfr1)o=xU{7v`8M-=CYDD$)cA*~=!d|BKQGf*#gdE#U( zU)DW`9O-5K!bAR}kmf^MDh-^7p zWG#ir|KVSHL&csU@zglb#=k1t&!@z@jIh4v&yRPA5Ux{w=CNB`H|y!3e=5YMrz7Gyeq0?_k-1E z#@p=a?Xd3TYd%vJ_kVS>$aN^s`*yMGLYHRcsZ!4ckyw%#p_~=`+ecWbi$p^$0UAJ2w$zB5|blj7m`b7ZWr#_XML ziJ$GPI8cS}$$y*T$-?j4#FI1L&FQl3mGfM%i(ZH=%-p?uQb2E4Na2ZOLMm(ayyp}N ze~(DtL>-wYFDLS;7m~1(=Dpcik@CH*I}1;V5bnBoKAV-iL$QVu2PxDFsR65ng|u>s zR|)C$&{P5;GNcp}sy@W?(Y|)14f6Da?1+=x^vEG&E`P@n*43?^dO2hhh4h?gk2+Ex zb+SYMF}CP4$8R-$uZI#8%MNv@NMTJ|Bydp5hqnTk}&=zWMq*c zM8t=A?|`Erk()bLY;L{PD02EsLm>6i*TXcv7S-+vU(lN zCM_xo!%a390Sy$(j}~+mJbQ zn}0DfEl}l^5U;$&eXzu;s4iNF&M9^DIwDfepP6}*nvalGJ25UHUgM0rN(d@1JJLS5 z*wVc~KDrQ>%f#O!*LhL=KuC?K%`Ifq&Uf&h+9db{+eLEmZ0}`XpV6D68L&dMHWW{+ z!Hc%}mx|zLs=RU}MP_zKw<&WZ`9GDsYJVZCZR!~k@*;NLS5N)t!ALZWA5=fSojhbA z7ExnO$S~|#{UNCL?fC06V|6_VwE;Tn_@2HvNR9P04* z>W6T6-F$Wvp1J6nPP`Lq${lT$5PzPs;Ci7YkQSm3!R4+@pHLDC`t{L!5h#x#XC2qRoRRSXT_rcdq)cp-_*2kQ8v5gChl}1qhMpwRYHD*KaFs1B+iV<=8f@_^b@TsOmh)-Ij{U)ATadNuXMAt*LMUL3R2vbU~ zl#fr4OU2s#>ZyW)QGX91?V$JJL)1D|!c-TJzZhLfK4SsxsE}kB!%sfXfz$_t?25YX zLT*6y4sqKMP`R&q>$0J(O4aofaozO&hiaG{NrCr4l~Kg_TheXHo~t%h2^gnHwi?c# z6LNXFOVx7Pq@GnFB@e1G6Vf9`!&BQOlAe%DOUf)Wa$`qJE`LWe9X|Cv$4CI;7ke>fOBQBCAPP+nTNNojH@jdT(^R4j5*{mGwSBKWiU+PP#GBm&s|Ch}K1j@r|C-ij}H29mxSJZuHu8pVIls>7x85oUInp<`y!oAWxJv2p1#UGX3RZ95(wD zHH-x7eP+}!7LwgCBhuRDv*5_bvvr;U>oY-%QD2UbC*z0vtp*FE0q#ns_K=5Ue|PBD zXYbp^46cwG*dA1qRmA;PyCv%K5i)dR@Mm^A$bY=ESTsj*L$Ec7N6RAE5 z>2Z-rq z>iY|sF`>U*LKG3AU#bgTHwM`QA7s3Yg(2{!>3bqu0Z4PKcrJTuMvW$1h~0@bNuMz8NDYa89DQ zD(1%%xIz*muRWU7BAyyk!q{N(*ncg*1?Qv4AU$X~ux3t3-MmBU%@^5IX}T3Kj`UM8 z!~3VS`q9H7B%$u4kgnCi9nwa)SZz|;DHm@hIV}Eoh@6i)q0)6Xlct{|T5J40BlyTt zL}GZz#e~F)Rib6ohANgqELG$bJ`fpob%j{M>B`lInWB!SYv!ec@q;pVWPfJo$VGoa zezPlH5VA`6_{{1dU<{=!ulVG@HUl$NAEk3KM(iV0K5iyaEd}cEuP(TLkiV5ZOCv3+e*|kzUC^7o!*XiK=oPpK>n2rOA-XlO2HnNa8rIai zkQsLLI+7RP3%7X}2O?r=*ng$q!X6hR^)9$ENtd9y*u)^+2q8HIQd6kEc5v+JDn7#n zJ6ycQGGJA|BdGV}h{s|Pxhzx`TVFdFVd<(a8^t42V} zC#14}>LvOM8CMN{v}hlA`E$lj8ZYoYSi|HOZ6a+)A+lA-9K6hc>wl|$iA{_rdLrd3=dLphEaH6(>-Me(K;CC(Fj;Y6$&&fxQboPoRk zJgB_zuGir%4R3TeNq?2sO|0|d%<23Nj6GGaXF$J1|7$oiNPt;H4y%uRRL=;JM~P2u zfz@*zv4HvQ>cum>6XhIo+@<=g7*dB2GUadc_bhv)dLm@YdBzpBBNvRn=Zg2@FKwYr zj8jxEvm?zoA-Q#|kJnNsu2Zeen-y_&nk*t|2Uc$^f5@JMw10x!zjpcWm?^HkwMObu zLdHi0YwaryWP`QufHN#>9U|W7<;a=(=n$(u8V|ECb;!eD3p<8~4GEbca!+xc$qxE5 zbZzkWLH#)uX1T+ z`EVcX&>qG%bbn#x#^*=K!5Dt^f&tQ86yln)Xb<*n1G~;$oUdX0t)3h*zlD=a#@g_D zif$8Jw^P%>tVlgQb8l=tqZ(Ej)HCx#rdrQUizWjJc`@^f-Vh$DDF`W(l&yrsHh6Vz zs+Y7kg~(oh{Iy*<_g-DX5i5-A3#syLCa+*3!>_N%B7foc=-TcW^R7>K22J@9(gR0I z>Km0iq3c_+|M-5M>;YEj3$cftH1)mAez1iY8s_VDHK&C4oG$c+N`yj6TUgU*!TUZK znGI*Ay1;Zh$b>A4kYXjX#Ss(6?1VI&Sn6aWX7t`ImBQWNmVQzgh`3@Kogd4=Jsn1j zE6pwERDWo$l@J#h#nlmyNA+AGy3*0|S=K#=J>NdNs?i({Av=GpsC+im%yy(syi2Ua zw9pf`B1eyZsc1;TJfMlV;H+~YqwJ5rHgm^FmWv+*L?}dC6r*2` zbW#TwqA$Wb%X^lX^O^OJsG-@2m)FgfNF<&G+bLi?-c0u?c1H=xA7{>9e%P@iS0=K8 ziI9)_cxx$Cem`x>1H(0FA2aKO+_14G*xHK`xw7>X67MPxQe#}qy3Q&3fYx2qkM249 z&3~fDv)yle{7d_*4gEPAvdLH#X2S~VtqbW+*b%w8vvu+LKUnQ(Q@<2z-EEGHiu^)$ zylg|3Cpd6LmnZ*mS1p}IjFi}FDI(*tHOjz9qYg3>wN7-;EQ$GCD!@554fJ-cD1xMf)+j4%mF3-4eT zEO^-A-?BBFNG4>a^YJ|^ABDHifGafoP_^6r&`kuaXvnonfL z_tV5_u-;#Y4UBoa^k+wY(0a)nTW`Imi~0K2N6UQA_1PlUV6?8g5&bzKm6f2{@T@PM zk|9?HSy~&ZB#Z@ULG#7h{eLz}j6*C-iC?ifz7gF-Tj_c-C@R${8(=twn71GnkJDp1>7#(GbBZFylIr4YH# zxZn155=qF(Ws+9EkXj6*hC)92&BRW8J_I5&6pTH!v&+UPP80E8m`xH=BF4#uRPOR| z@twk);yhQjCFEvVW`F!WdVs|2R>;OaaUr5`_-uFBz}QB+SKN}HO)Jgz`gutduIQ7w z#-8u?Vq)DqA;yt~_FOm!&#Ct>pc-R)t3JLP-zQstHwUbK?jeMYovA%U88~`#LUaYu z8uTC!6(hktbXW97WTcFlhaP4)Xm^C9f!zaL`#mE^>M?|i(SMa5y#kxox<}7F@MoH_ zZc&dT8*;uLbunOuqo?K?V}#_GHumxeDFuD>E@x_Cth47DI_`MgB=XO2-SQ3@d-8h` zr@<&rFH^gR_Gm9VAKq0yITlYzuO)L`K(8(*O6RA0z5?UdUElO*;)swL6LwGcdTjHq z(zj%cBME5*`+tzTMOhcJRo%R6h-_82*>E11kQKS&rrUPo`++pftahK{hMq+K^^)TI zX(3Pa+Jw~b@z-=SvPIIBaoAF5V;59j?)sv@ySMLx6Mu!AGO?ng4;>TCUiM*L+Jnf< zhVhU-d{!7fwYD3p;|YPWl1-+$(o^~EO;?`2ItA^Bhgu&<&G zk2_=)o7nr(SC19*r+tmU%40(Ez=&C2+rv+YT;ocME)M&U?+B?MyUN)uGW@=i;e1*l z-Bno-ncCNAueTf%^f81aX178XNT@yt9U#uG>SE5Z2AdL>6>T-_^s_-(%)Gw+Z$%0)et{$}BN<*rMP zeY5_&J|1`Pdp_lpk^1=jyw`Xx!qBbFN)I}VHDSlW2&-1i#*T1HLOwde^YJ%?M3)Sp z)sf%Y21d+Ayou`*hsayQ8d`BqSw7ltLUQ;(ntvd&{zBxQG16nixY$T9J-nSqPN88= zZ{$)Z_B@Q-bHMoZ$kUt15m^>!#@i1$SZy+ViYI0fhL|$5Xd$Iz@7VBsC)VbTl6m4) zb%h)5uXkjk#`GwwEUfC+DgB6s5ASWj6Fh1Qho8DOx%~L%#5yx7Ru5-=XyZqn#tLVn zZhs&Bg2*iuZ$KffW8L5|9|DLgYS9M9DTZa8V0>y5AI1!nkk&BcIjppawGqQC9IWga z)>Fi|%dn>}!Zq*-qsT)>6X(O6_-HLzd>12q?g)b;VyH(XS%5PwowZFcmRxDrO(O3(blnjN-%%M<#ceZx9L3MUlZl5yyK7M%x~dr+ceo;$Z4!SGk?yF z6*-a+pGQx~wOlddIqvWZXhg)7v6f)m<02V^_>>ZioQ~HbE60vEb(!E>cq<#$yNtIR zSAfqDQ$nA1YU3pI7iMssH`-M{1nb4b;=OVY5&6y-+YsUtI}zytr;iHRIbr5oh%MB2 znc4h#*zY_?I}C)uz%xi#w%}%k!PI$nO-`HRh82#%`vh)lSS@Op01RF z@dF_rHH|;<0qm%nIg4!I>SUKO#wYMf3uK+s)kx5zoF!VpIMOUN47_E8)QR?BmR`6^ zdzRsC?1WTNRpjxr_B1iaGR4w(0^SrCGvvLqz7HkB>Gf*JRHu1o5I&o=T7P+8+mKbl zx9!EP=zUCEx@q~@cA4mxOfN{{bJ{#LgFD_4obEE4Pwc@RFP7MN$9pvc#sX#!nN^*1 zIcM&hnmxCJm2tDT(s)<(SsMCG(-{}`F3%Cdz*+(!F=M5ykTS3`LEcJW4l5)M-f!Yn z6YGez+udLzvg9xD_sAwwQ1!h<}CDjJd;kLOYmE z@{u%wEyXDMT=Q@pohgm&I5)`xHV-n4k{JXsySnO?0MBee6anE0j@vN6Ur#g#8sM9n8_z-!h)f>(U9Rrmxle5^^f zlIaZ58mzP|U`}F*xv;9B%xEa+O$jNP*Gi^VCVu&3G*_m$_2w3O(BhW$dX&qF<-x2ivw#Kmv{GJ%wg%@#2SoM z-SXiYSaTs*Mts5xBl?HWW;0xjD+`GeBR|V_;wtN9M|%|af$9Aqds-$-kYa1hT ztA(<$uVA%Q4u9T&OH0s@Ijpu4&tYF(Mw#D27uP_)e)a65RuOTjM*eGlvKSf3Fdnk{ ziahsHNXmGdt-fW;aSi$@JnztjmpA4Cm(K?0XB+YW(aTvnq#Jc{*64X4>lEVCpAiv- z#C*vbFR{L|kka^^&L~QO`(V0;J^s>}YsNV2nx$@xhkvXoVuy7bLej$yq&0hrY~w}b zGe)J>@*5CO$?7_FjEv0sy=(2j^#^NRIaBycT}>O~E<)t7;JS(XH_R>z@$prN_?!~7 zVtd4a405?wfLW`xcZhrg?&Eb~h=@WWS6(N(C^I5H2N!>jyn@BI^Qp0-kG_tabc}ke zBNl*lTz~6aZ=@&WMz0t~BzZRgBH13Z&f8Mtw|%{U2haBPc^~`)yYL(VAvK}4qazP_ z{F0Bcum9`3(9;vrHok=&WUH{#c7J;W9dqwOEMfP6Zl%Ots1W0dsO_!G z{MU5Tb1kS4pZ15yw1b)A9k)--Mnq4I(JxnkXm}Qcw1?Rw-7sNcG-9XRF6zVT{tXG| zj&1MP!Fxf7>*OM$9fy@LJ9!9$pY6qlF^4Vk#M%ryTjfmT_8L*lNbf8LiDzyXy&dEs zyMLs}6;Zp$ZNx0xF1_(A`dx;s7=BL;@_+F6cqj}&q7MXyJYvAGuA7i&zOGkInkWXHFg%+1}k5Bz|V(j}Eatd^jqusJ^6Q9CnY>Ca>rWb}_TM zXDW@KTFAiq10jv8wf6J|LwvSrabm`1&k;KIW9+#tV_m0^Rx!H2=hacbwVu~44}T#m z7OouGtLUb~bz8$CM%{(9hdn8K&BSU;Lh?jjwdI%abY&rJVZFa2JdJCM+6CSr@=Lha zcki6J`%_43sI$Fw&9HXH-aW7a>fYK1s3y1f4Gle`eRS&41CuKgC!eh2W7YYu)wNpuh+StpH>kiWSIY(l@}=xYwfHcp;7;hlA|xE;nRWcf2^B2V#h z3jC!-HVl1D`FUwz-TEowiC8f$gVZASbRD1Dik$D%(i+aJJ5{U`V;iSV3&`V7y@_wy zV<8u;`8i&^iFe7dnB&8-`T-qJi zZJ9l`Z_aypkFFJ1b@*&=h{tu?F)eqH7K<-<{zh>pXYG&bPCWg_=F*Zc7-M zJNN2jeIb)?+9&Uw@5Yy6z=+Iw7Fcgxh{E--I+nPvXWL3Rbn~F!~64M7r1BA~Hfkejp^XI>e3MlutWe$cF;A z)}~F&)7}(Q<9~Ha@uSOB#w8uRw{P<1HQZIYeInLV2+0e544vN+(8k~7W*L8Jc83z5 zO&?$tq?^0A3$At6IYot;n|D0ODQ=c4j`6o!O6=%?U1vxbf4imDh&R(M!-sYw;w1xk ze#%Z4BR{uzH7cGGxtbHTCLCc+zgtBh(MP}j5-^5;Ykw~hdDZn{K3LIl>y|^w-=p=x zs#pE~#F?S%(*GC_5mMR*q8pHHmG`P(=37YVY(s2E_9z|cSf_gJ6rS94?ODY-hucCP z*gtohyd118x~)XR&Y;`$QqcnwQaan-)^fzm>TU8{v2sK5}ac6a%Zp^R? zvA}o92$}T)gp`f>(>vtP@mh~mBA>?LQf7>-6tL>mk<>>|Nac>vJA982v%BMc zbk<#Yp$B8pcb4+7@9@r@cn0~^4^60mdRO+zD}RjG!8o}i7pp+Tk3zusfslAGZh2iQ z3>ooVR=Mi+uGI?miC?e%;&UowV{g)3qTYO)$ygS?oxLLjqsKz*p#IL?DH+>dy|{qY zn?fw{3Em|&jEi0Q&IxP7udD1Nv=n=#h2Dpda{l|zRS zS{HCMtQfdYT#PxnJg|pR_n$gBo`vU?plHcocx~X0e=&$t(CP@ue6~HA#P`pWmvb@V z{9-Q?d%B)zT|uRXmvqS>TYssD+~QNGYJU-Uj`&$$yu zm|hQswHaQIEnyVrb&DCbO@yR`eCPEQIP)OHBHHWMeZDh4+f5T=(L!uv=0P0M{SQP& z;QEj^W*e9beZ%Xx@Cj!4n4IyZkAFzS@0oH6uu}HT92?eOzga(`5pNFJKHLY>Z7i>UuZ-o}|4t`5l6I=2XEg|Q7OI!@q2ZS`%X?!cYz$GKC@eR0IJ{XmHtA~N?=`G#O z7^isR%7*!p=Vkra8T7=JSs(UoztZsucF7t2pSNp{7`GJCE~;w0JwxTQAb(_FWLt=j z3Hd^>+Wwv3GWv)lkxudogfyPg_>Sw8@MkO?J`2ayz0mF)JsegPz9S}rwNgT?V+37D zdsu`1e5NgWl+TA(VGdcWA!n?JdbgH^@tt>@3ppb)jI&nnp4?Dl?Kvsu9e>4P*B! zA(O9ZA=Vh^Zgiv^+VQTcSPxlC^OmJey!Vf;Gf9#qg`wb;7zBbP!Epa0)l;oK?f0tP zvNDnYp;eo_SRS7`e}?@JM0UpB&p{l$9wMiFWS8_vHMyh_|9=k&u2fqgB5j?{ zX^)0enK~;5X>)<32;!*wi;UW+7C}T;E!lt~U%~DjG0C)I-<6&s07adkM5^QLfyg=P z#!s#D`;oUONOy|42JuEw9+9QHk-ulBkIuHp$%7yGZE0xZ~@SjQ>IGPzFR# zmP_TcZKXIxUqm8b41a&AeR>i6Jzv8LF%ezQlw}}t8pf)7YP}5V!Y869qsn2CSvp0_ zgH*J{MOMZR=|RdR-9_X}*h3{qT@*zSIXu}>II3Y^pN)_V2 z_GG%^x=BT9l&2~(JI?48Ssk-yM81l7_(61v@%@Z#ndRurG8piCW_Ij9D$-gdO{hl^ zW20I)k)g%GXOpFONmCX1qNM~8sn?xy4a1hJIHgfUN1NZms_F0z7!$83$4um_*u5j- z;cb4n*6Wl`mVZ$YonhQn>!lwjOD}slm|I-tSKTO(sQGZ?;@jNpY4A#P$LfVkuO^0 zi)~7zM1L(0{?gLYL(M_N5>?-b%!XNRp&`YgL-Kr4=3n=hlq?`DRL*Wd{Ul} z$mfr;&qTI4-ZI&q6cJpvmJ(*41<4DgWo|7`K7T(ghH>#{x@XF!6Y=^`6UwqaumUzJ zKlM&=b=t02#VB$+b{Z0S-6$sBb+r9ZM@o^RgO4lPTiK{v=I*vBcR!{T?~>yK}ywNsbjX5`#Q7i1@z$uiM~omiY`rjf?XSW z&_zN`!acfUYBxXIi20vHPAc;kX@{~}L_A|(9Fg4`TKrKYj+MhfWG~=TpDQ&D-<-fg zn>JswN0}BPo-b#ZN_EF{<+E`DLCu8GpoZ z%A81PANrBr!fHa&`ori;6kcM*fyk;K<>Ca9RzYvBq|dN7 zw}^fZdM8Vc9@F%;gB;5B5E(uwGk-y3$CN505+b;Jr60A9(!Z3Jje1RpNWL+Vd5V*$ zM832s8%Sj5hw-^mPk85uSX_X()@C~RxDTwSPW2cfo)_xM5))ET@GV%(S>aV zqQai?M|kFxs{gZYDOXoyrHZy$kcakyNMGnvEmGbZ)eQAA zB&;YSN~EWZF})y|yCUMz)dI;V*mqLoWb8@S%hdYtXXY(G-u6oQqQ9yv$yk=KtK`MI zY86RK{%bW~^m>#vx}m3}#DACt-aDU89iQ!JDUOzrNQ`MjBDI1#35X0Us9TnANyEo? z`b9Rx}EWz?#FeZK@9uD28m&RL{8$) zJR&vbnIf5eqt;oDv}>9}7^EeP@)W%U%)=MS9jgaKVzxa#+np^_&VRPZ$Gt#AbTgu* zS6)gBebLe@4fDx^M3)RCy6gEqec|iGxBZ&qG_J@DG-FLj8YFw!%3GGvk|=MNN*y*u zZoytUJ-p5Ph}3ILPGs&8$$zOo^bJNxq@yRR=4x0U9Gwew0n#l~b4)PcL#Q1L0> zGDyRE43XRh+Dx@XHy_&9BF0%%wJc*_T9x=;c!Fz8v_R`!7NC?3Cb3KLZR?NqO+i*@~kdD)N$z|~jy{6+c94(q@I_{fyG61i zJ%Y$BdOUomw^>IIM!jLq;M=~_7R!Tse@Xv)rBmR#-RqTVd3t@}^k8D1F^XMfVpPmv z74b&h2SnU9W}AQ1H!9W){gcfy{!N+bxCRo4oX2G;GRkRnEakK?m(5b#sPt?W-edI0 zSZMg@a|p+6MyYH$NtBXQmLgUbN*57x>K`JqDqC$L{ozium_2|oR}pD7bWTnB@I)V% zNOW~Y674PN%$am$N6k*AlyB-+BT~87t4OmCbqcE^7wUgHEb>3u3dz>JfN#5AZ8_SB zBF?!uR-gXi6Ihnu!|&0OUbHcya=D`<*ZnbA22$&S2nBsb$sTanieTKu+3#_pd%?9gmH5epY7 zlTfjdxDGJNsx`_*TSk|u_x^w5%xzhkyhHZXb;{2+`=hCbLHx(w z*^6iF1kvS)CwS}rLmSXeOwPdXIa>-LKJ~fTFfwGf_@h1xA}zDW>_4POz0X8OomjDB zx-J}Z7DT*Jr*Dzf6Kg{Ei-d9{J0Glu5V4K%ABzcISbbynwa0qZ`>*>$l1o8bGsr>T zx;=lFm4mDE+#lvF*qfO>fEIb)eA7lYH^zTj^w!5naZ5GfoFS1`I^L%(g`0p*y-4Lu z*_Ngtf6wiS`aSiQhvW`^PnOk4eau9@)-i(Ha!ebf71f(g87=-+vt`tXMcPAeL=5aM zcrUd2)r}btt-j3r?LT81?YS0Gl%GJV(4v1{@FFomg~?|feReWEvZ1xxLb_pnR%@el z>Ixw8e)uh07eH&b^~isQWxbQrDEi+^_@9KM#QnxcW+)LuW{Y90yt?x#C1dC zy6Gly-lKjU=S}rCS{-Orx8c!wAIXqjg}-MU->8eV88z4VJu{Vr@sc*JF04(8#+!eW z*Lsf5(bzUu%DfNevV@gRZC-zmZzBJRI!J~U)DPOyJx5)3dizQm z)OTM*Cl$R?ZGSRd@u@|)4yD;8=`zzI@MnKUIq2E$ zdF6?^SR{jT?pH4*J@i3Jhc7r;Sftm98gVZ(;SA-tf&JiJ9|C3z48XA_CcTCmP2 zTnil~g-n*HmnRZ^wt2s`ksW_;bX{6jF}F1m04w@;B$hMwF%!9&>pnt^Vb|1{)fs6& zNN!!2K@`!ShdE|lvSni=rH`ch2frsOgD_t#nk+oDY5S;_(PI{5NLqR5x9n@Q zjJIZAGw+A{U>!?XTi!o&obxTxN}afFUyrOpCcaUx>Jn5qOHO3T*u(Sl-6$VJ^6c@Q zwTp~U+=*K&{o^yObCzh|BM-Fa`u?0ffPJ6z@$I}%P8i4NCzl_;^yCQhGx77|uUVg% zFBb0jhrUh`Js<9!GgE(O*?Xo9%-!#2Wk;`JKkc)DRaC9b`-YepHvo`p={x~J?s~anw`g?6)M9ouly`r7yDci+++og|Q zJi#KlVkE^=%N?ueUFKxLx8O;37Wz;`+QLY&Cml!BkzDrIhgp9|o}Nr$+Ep&21m_uv zz5Xvo1thck0M5B4q<3#h#wjH$eyuJvxF^LZ0 zL`=6S#_Qc=f1rOgCABIy%)#(Bcv`f`=^xg<$lC5)IqY5P4s~l5k%~_f21J(31t#}L zg{4RTU|u&b{h_AnZjl;CMEYAso!p0I?!xC%Y6@1f#;_00J@(Oa=Cz(F8QPjYOTl^K zLG(-U_e}kV_o+`$d~f?4wWDn&?NOF1?nG@vob=kGdB}f5|L8x#ShdIeM)dc(OqqyOUFN1XQ;pV=TX{#WK{0TDbgNl4z5GW z+Ms{C+#gT<%Ef#>-^n-nt31-4r~|i%Obm=2`j+%Z|AB9*RxDlih(>QnR-Wh$_ZVD` zmV}6XKc0W!@D$o0QSXc7ri*?{5z81Mj3NoPWjwkYvkZxLPZ(kM(`;d_mB+AIJ|$;W z&cTpvstX$TPE;VVB)?gzH}1q+(!oraNMvTuwumqEIru%HC?biJLj0vywld^3_z7<1-0+c7%0GWdROb93jbl?IS#Nk6M`|*)==Y2i zjq+&?M)Kll6^v-nfmLNA?NZP-6EVY_#*y?+@%@aPxRbPqWt`$1q;Un($dN9FPmm*N z8rLmai(qGwkt6k&zvpGn-4|(GRTh56jyLTnts8o>MhOo#lTmQ;Sr8dh{F!GDEeVmf zvHO4YsM14tMQb(oSB*M&*15>kvf-|ZIeQpY9QCUl!5#l2>u?P$=40U7wi5H?kVMJ= zu8x^=*2FOF5wt>M2B2e%a_Ck6cnh}EMQ`}9qf_^TFlh%^@itnLZi%0f+B-3G zWJE7H)Ko{aHu#semN+w8Ya?5aKNA^v_)CA=*Zc?BoxR~fHt)oC@f9= zC@H?5QDhfAA|tXh zy;AlPj2I2hPcUmwm`OIKY;o)*I_8uLiKj89C-UmdZI312%ErFi5u-cMuROk#a3V~Q zm~w+8>)zzgXuF{YW5f&>jC}u(|G`Xi>7tPZf#jxvd1)eE&?_~zG-bYj!kWTdj}Z;u zQBxJ^AL{;Nhhm3ouvgib?=Ql0?nHmS!o9-A*3F2$D#wXAL%4fmq90b$j57@<;ECwf zVXp}hyOOeM;BkVJ@|_S;O6#zntpre1N5nuvcc2Hf!? zW&R+uwIAe*WIrUk;8YwDS-YsA%oJUeY28Hn!Pt~m^GD~t8QCUi4c<*83R+>;G*YrMxQK{ zy|cMa5WcxK+C|wro5UE_)6SSr{^NU|tQq`kF#!lORHm+At~#I5vl=yr8J&+&lFzPN z6Z76)-U1a)0yK!n4aD01u^$#mTrbmt!evg0FXqKF;R*63J?oWR$XToT?NaM__ zDTBLUM~OL1Dn65F0>R(Y6L(;kLsl@_&NIY6%aB=9MSsYg=08?PKgf8GPDupRDW-(M z#`up&R8S*%-7y+FSCWl^YY;OM`IoLJi9|^eIWidknX6ev+ib3A1Iy&}jd{28OZpo8 zOmxr17}%7;wbA1|Kl6VNb=dhu;uHV1l@rUiZ^z7EA~9u~Pu8w^@=n}lgJsAb{lhHy zsl)SOtYB{4=U7QIxAX(_zs-Gg9C07)Qx|rvoBRIoG|po&vH(dd7i*xjt<#TNQy0_X zyYYDE4jJ>De9*Hn&y8NeNSCclm$g_j9G8@LhjpxnkFo zd83*Y$;)lTkY?w^H z*ol4VXMXrgSInSAnYg48^OS{^YuOn45RtOMpRvReY31G%dT5ul&Wu*u$|q{Xh?JCY z3T+T6s`%7JFAjgt_9`v9I3kJG`%I)aU>%r9G*u#^>y%IZs@1sz-3n(BdNgA;-$5OA z)mt*^Nb6s_B?&9}-Z}QMti{9vBr_Mx4PO@829lOMqkXzsuB_cIS@nkY>1sV0&Zt_^ zuZ_=Kn~{r;LzOw zZ|4;$g=kGJJ-|ed=89A@)cKZs{?*g?PY z8W!C}khCAYbk>L_!nkhZYYA_&HD2AAF)iW;BdaT%HCW-YWN@=bGlqGyk9f^13Co{( znR}m!X#aoW6RhkRZKky>4b(c<8b2y1)|x-M7p^ZA?ya>x*_xOuwLabGXz`0w?ryxK z5kKDXx=bf(-s^j9@Y&wEP4uqFD6otc^4hf=^!$j_iJtAX_m7#jEBf8?9zDr8+P6;e ziMr)F?T0=p(hh3)>u4+Ty&z5XVI+S^ALZ=lb#s5Ym?N`pk@AUy&k&(Pfb+Nk^hfliytVACb%%5SzCX#m zh57McXujxk`1+R8hx@>D^cX{;ors!{bm+v|dQ^^8^nQJ=yBTBRBF#{T{YHp?d~<(8 zMmkHRA#)eKy5ER&YFyFbZDR%b7iklyZG1y}5j9njHhEW#lM?DXUu2tLzRNdm<*cJ` zR#|QM=A?)<^oD;k+EVjpBJj=M^Nh1ZzZG-C@vp6sc>;up7tE>uq~d3+EBMy#5Bsu- zID5>#b^77=^QC$*D*wsM;uy>Ktx|u`=kR^E8){tN*2~5i|0h%PVWq7|43xmQ=8oAA7{!*Q`y-oS zONZr2niv)~xR6tBbkR+h!YhH*Q;v zvnIA}=NgV}*AMEj+g`4CX9fANQhm25UdCVAO6LAZyTw!ueA_W;0`Gs4-9G=Y2ho5!hk?+E*6ZtM^<;0j(M?cbzDc7jOiugqRdiRpXFH#%k5$oD619iR~y}q#%hlow= z|F)x3BWlsRN5B)$c4Ts4{lX55f%kPkiTmMiul6wRygjru{!EW)h)7)46z*$}x@KH! z*HOS;h}&11yyHFkBjJDd4Cxf;rx1~ajPGYy3h3v(Cl6}DHl%R0r9MvRfWy>v`4)+Q2j zgOF(Rp#8I#{v7(&cTB(LeZ3^D(0UiqWzT=@{OHcQKdD?8rxkxOo{cBce*Dree2}=S zV%i|foi8eOaKDLsXc_JA3#|gl$qjR*L|S1@NVeJd@jXv+3_r7D=oaooDI$(N21IQ0 z-qGPcXtnLV3iqzvJ4_?|r6-DD@iZP;)mSIK&lml3nb>As?Cd%)+82cDcK3PxV60%v zC@5%!?wb=&=-7X^827W=S9d*53)r{+m|wqTPB!!_@0iSuv4VY1+E|q-B4Zcdg2-WQ z@anzs9USvZFgmv1Dhqx1`<>(%dl&JJl^Xlq!X765t;(MIlV&TJ<#y7lJP%o`6C$=pz=9@j-7}q*UyudZH>6{i7!uJY%l=$!32%NBZPm9%?lw4|B{0I(d3W zNpW&y{_AKQSO`?vuAKu)o7;8pXphu5Rwt&6qrbRz+F|B8S2-kewBO5iul5~^Qn=m%j8Ih zq*H$^<%56LZlr>4?B5$Trj_5EMPUK%knriE4tq=*KIXrP%N*SyL^(x8gT+llyQWsX4p7G_1Hq(i+S zrtW_^mV9$&!+5aBk2uqrt9{r}@64|nYMp1Eve23mX@>UcnYTRj{G9pXq9d}BE;A;& z99c_SBXcc}h_o~&r%mkLBy%Cgsx#>wt_f$_S1^M|-zx;l-c|jlK z`F9TDTiDGedgjjVY4GmdUJCE{eXFB>efEDV4YRpLyrWHfPV>Z{5#dVPb7n-}k;DWd z{H0;(VW*UHq&u)xaBgQG@sXv+v#`!hS{=L_Z;`HwJMqRyTl}6IBTMo3+?P65Tpy_i z72|UvwpjAL?1y!+S2Oo_IdA5L71!sjXnu+0s|j;{M50qXlG_|}34$!_Wgw!fp4NX_ zT2R@jQ|QH&i~CI^{NYIKM{dMTEf4HPb(8DV(>s-oQxf_*Z(50al3m$=oWrEw60OXT zl<4`+#6PsaWP=vYK8prtY*AiWdIPiIuPnWb75+D$%w66@Y+-cymhK%rbGPUM_75;Y&GrWWE*g0V==MHHb7?HlxqB(CP5>$A~+?{3{^J=aXf9|Jx zSFIVnt#=K{U;a$YZpWuyx*PfTtS=ADP!XvgdL!=I&RzVYK|1%ixnGg|$2;pkT^J>~ z%x&ir9L@gtEqu}}(H9`nxmthneyd)L+==vr8syzI@l1`oPc_t3?~W%WMiLW@@ohitDa?PG2y!s?A!38? zpI4$v42iBev>We>>I#%DZ`;M3tozQ7KF%+-v{6>Q&_^*39`met>b45MzA$x*m=d%hgE-NB2lD9q_&(nMQw}@;eTsOo9YnvEf zc+z1vTCO5}q82UU4Xx^DM{CVb@bcofV9&VM#A~@ZTCT6v!jtV^i}{VXI_>+>H}5rx zf7GHSc_l4LCPq~#dkJ1_9n`o)O2OP?5o;LJdp%4RCYCz->_mU;VkGkQ2qWO{iRoS# z#|Xk+-PheN=3u;-Sb$ZgFFGG%F3yX(b4O_zwgg&jFZKxf0-nxQMypNsc`6tYcs}w$ z-{A9=xw>7%I(mxM7{p5t2!}FWCr>uzN3x3a#-H1Bui^3p`Rz%x8&iE9G?x;vs zr0F2pePZ?J8#jM_KZwpSW+uFt=ZZbr-z+~e@ZM}zQA2stWjErA&Q%`Yr}InPKVGDE zoGi78nqEu(i6)=j-7qnahs(mOy);)P3=56j-DFX4SHg@-53zo)m&Qu*~%d0)R6;fQbUMfCtb!O0(= zdOh4E>EeGWnT$jDYe7mSOHZUpk%v7h;sqyJi>!1gJ}0s(_Jb5T$?0wk(r{8`^dYP` z*O2HFm9R)G$+~?7^9J>mN$V4XpsHal%C5vCArAz)Dk#2`}h=_aQ zCnz!1kjbox-<(bnq}2rB zdDSA%oU}C8QD}`~p(1XJDyl?g?fm9!*`Z2xkuUO2kw_OKTSnw@6@3i!SL{<*@VLh$F-3vveq42Yqgd8jAm_^M;t>uTcg;ah!lSz zivEi<=?*BXPM1!Ozw~(dv2JG+tQ84jjp9Ed(T|>g=@(72nV6GBDRQ`%f$K}Gvpl#l zIvu~~M!^}b&XtMG8u8t>snSW8oD^S{VzP43b`~*PWHX7x2yT3~H`?HPP8N$(d`==% zmkedXcqFi^zXSSdSqx^CSOGkkWCjbJpKO>5`)fIr;E|*r6-~ z5s5cm9TDu`E3)&UK3PHfM={DE-l^w^=TfC4;qNKUH$|YL-&MmLrsz+|-9JTERF@;U z5+Zc!bNI{n*<`O2yaBb}r7q)NtEDcAmx!1yNBpIA9>c&s)RA)i>g9hOQcuV3 zYp(mZEb93yQtQY2!1UPU)fH)GyyI4#E-`dRsbqbL_sjqGf%&rNg zWtOO1Xt89e2afl4?k!LA@H!r{>n`I5&uh*l2wXiOC6a~j?DC>u!R>aXFOlZ{-+ zYbcUiMLi^YvBqak7VV)*Takay2jxnM#O!H&f|0azcz%ZLL%i$rC}s269))L!1+jvf zY975}_Or;$oAQxjrbwJsB+oWwUU{A=+CCzQp)2@HXLKFGr=GVD%7Pbp=~2Cz=cStt z{cj?*QMH#ywU6=>gS1RBagk;R?O>5MDB>wHBoT1kBI}4^5+XODCs=>v)gO}LYvoZ_ zfFNyBWvWQG$9wb}oh|YF=``|=|DIvRj_ab$iMp=^u}RT#kyf4j$|56SE`i8b3&lc3 zc4A8}@5n&FJt~3|Bt1(BF^XdZsg>Wtkz$2DhkOe6{R+}L$ERH~>FDR!u?Kx9N90m)1W&q6pHDs@#C`J{I8 zUpsZ9|DZ^X#=hYqAromQmfWTL#%<445GKhayijIkV;hsdY>qj+E zBCoKd5a|sy$WnCb(N`m4AL`1b$Zo{QLn$q1iYkf>$LW?LU*FU(%|oNuRN3IAMw>ZY z9m%i{Wqhe-6*Ux*Xzhz+)r&sJ$jhGSIW6_XMZ=_3%E=PB>BsvKVa-9hlYS4r1xb)b zmG>eZEf1OW&A)%gqN6yTA6XJknLQ#~iXE<~PTWJQTEr5cdXs=dYpR3}KpE{`TIz-# z^wR$5I@4Xdt}8pgilN_8YW0l}7qHsILAeq@$OBx7v_zO4$g6TWLEgQ_yc8`v`OZJ` zjJwZSdo^>-G26&JAB7aD|9DPwiHB;r32E7*70238RhEBmx#vSQWrd8q&|Vet(mufR zQ^fVi?<^#TKvBFxq^^_i-H=?6g@!Uyr!F#vSg;2oTS^Uoo8&b`6dIDTqq&gdGv6}h zx{fvnAt@j?3pKfce&%U&w#bU5~5Kwp+-+Lc7r+3pFI5uOL`iP|B7R;yrd45F)XR+EeHjS&F0X?LnM_ zkdo1o75d>CtTha0^+XZTg-(@8g(ROSI$cO}k)o`HbcYdzhLp-DYYgXjk7^q(9UTrA4K2@S!JWwDjYLl;F=yYP~zB5)%xJPomwl;_357dCE*OWs1ryH*K0~~_udi~ z+CzWBOYkvDq+4C1i~~brp!!HcURv8fKn7JTu!Pkd(L!tS#hAk(B!z)|A-cwS??Oht zDBpxs*4CqwE=HN^)k=Fg^fN`DBYW z=qAo++CKBQi3VeR3S;{Zn1qmYC~sFtt_3|DF&8(HRmZ$4YtdR!&TkZQ!$J)|7At?z zgsULJG?DSgqCry~O(9~{RPV`J*`ztbDU1b;HCvV?A|rRyYGPedJ9z{* zc(eq^=CemDL2MT1jo;RC9caObZFts4g@lYg32RZm(H<`(PrPNKl+MDVe(5lcZ`w=3 zo^?XR4JrTh1;OlgAw$|X?gOd!mnwhZ3fVE>O>2SSj!%hHWsZA_=3_xSMH~`+yhBDw zg~v85APDDrw7iiAN9q2Ta#DoMkXVLHT?=U2FwwiwJ{o7rjc>ELG^zML%L>%uTrZ6P zBP8SUwe$V6LT>y%OWF%d@+F~+k)?4p-Oo6qYdOa{g%Gy<#H|5fw26>>DJOqLh_}2l zL~<$^Clq(Fu2+bxd?=@@#^ZdzsFrw&NDiK#Bf&%YSwed3$V=jxLU0bwOpU5bRx^$U z^doTxVIhj94N+A|eGCWe{&GSanOt$n2Gm*E*^3Ge-oGpE;$V4>{h; zRqsXFq(S2D6;jzgnp_VTHT-|%o#+&u)8uEuK6gUQt4Q;fyf!wnwj});>#ZA-F=Nzv zWCf4jz7$Hp3_c+<4?HC)>dHcYuyJ>em^OXuQZA2>8w1{rLQ3HEF(!i%pDD%IQHBVq z?3+p{N$}w+q*em2cA9SBJ(r~PvPaEYY7FE*Lb9ifw`!p#8})eIB(Zq-X zu5z?iDwZ^hZ(2gyD3MYTnL%q_vP^OGe5V>hN6jH=<_0pOR4wQef2X#TQMVLQIrb}Q z7c{igr+R9CFoK&KGNaU_k|PI9t+|6aP^op_(8H114gsyLW{BQssZUK;6LPcEOjpLa z))8SZTdMRX$mElZP_YcM<)iz_yb~-T~ zjN?itg^fOmBz?4_M_TG|!G2&uPI++4oa+uUuymu#=sOgW7gcW;G7@$)ui3I@F^eR- zRtugVDe=++XhwgtJ1(K^NeI_qH6&r@CLuR8%%sU?)kW({_BBt;sLFm+tTHO(a0f4` zmCmAM5Q)B_%^?T#>EYNy_W`wl97ZUfPGb(oVaByNByvS7sHMbsl*-w%j4<{%Th1y< zq#Q@V9`QnE3>af3BxCPFA<}!%j$~co9L9$T(GI2^pQV4QVs9@YdJ6rGIrW0wLxfBT z9^4^0go@T8D@e(WQ4f)L6$8V)Q>?=pzNtuK zz<+z_+mAd&+|tmUo?gHLep;>dUw`qW*|&q$}h$kJ>j z=P~9-BseaNQ_UmCNEI@K40lj>$-}zL;p~hXF3+en<3g{m)D!P`hs@}(Cx9Wjv9z=n z;CwgE9un`j+0()7={!d{n5mKH&YREayouRVUQT}qj$paUanX6@Fp){*wQ}M&mHy_b zdzFwA0^geJ#D(z`LJDUw=ItW;__MVF!AMyhd8zVvm+TQAtoFVRdnp*=BidB66qJta zBU{N`wEPIk2`ez!zWxhH;e9zrku+plKrHR8)-@{!AYH^Zcc$*1H3$0($ z9wUF&oHwLi^e>1ndF)Ccq`8Q`kK%@IXa2Ss5?Wh}+Y%Nu*Tvm9QTMmnlI#l=QVQOh zy0#-nmKN)%ff-fBdQ>6DC{lMC+DD7;u2E%DA*QAA?@Z?~9=7Ly?N70@Nww31z1Iwh)A8?IpLl;2bYCpYfhsY$iZW41ni%U|VzhQbh>UPB zKC$TfOK7_-@#><%8I>Ls(fU17mSk2#+y`kT&$E+O z4SY({aR(zlrKno0EFvid%uqIjZ5t(L@6k?CUQ|^^#9J|%q2%EP??kBq7kQ&JG3kF4 z{B0*M)Ln{%NW}X`h%p01tWf>~BrkrS61A~VB8i<2jAbiDQV}gBLj1%?W+4eHlL{H! zMYm|rIr?RrEX~!1(O5DN|n~E zFAXBSG~}nHnYRzuw8zAe*~Rig(cXVsx~15o-08#0ULmq;MTT64WIV>Zlo9>KI20j~ zb8yShu0lJKAq(}lGM05iMC8`ZGdg|cYGq~S2T`w5s-!{U%FU~}MtQKTW;Xtg6r_TD z!J4W&j3c%N=@q?jqHN_LUnr|4k$y(%MD5m$${wv!))YEnzL^khD_n&o-4cHpa@npd zmaseM24uu`6|RrvYohhon#o}&Q6b{N=zXy!Rhgyb-gdYVxuvkKe7t+G<4>?uenzx% zIBKzv!MfNfHSjHSq;Q}$uN;v;%;~Zs`q=B-kXkXWMmoG_i?a~RyF(=AgtksgiaAu- zw_54tj8VMhYG}OQZu1>|$mM^I=veySAr%4lfmN_){v)KbW_K_5)TmYvlIOsXimafD zn|X{H7u`=D&$bXLYBXvq4Y$z#R`s42t2$Y!u7G*`)t$7F16o;{g!+LMlBqb?)mtiqZ3?1iW6^IOG#u8yQN2QPM4*tMD%~7zl1WQ7u&)& z6R&n0iRD3!NBjflI-cUtVpfw#I>zSJ6v9AHN=>nDv`W>K%0TPBNQo{$I;ZAhzi8{M zN!r1KQ7@nIW-=$(!Uz>}m|SGlW+->)udlheM77g}EPs&gR*P}wJ({;&TZo*HG4sCW z8!p~IMvX378cq3+crSmLN*t()ay2D3pk=|7zKoHjLefHp{BotER%6%mM9t1F2Clau z@nYq88Sw>u5<1+0y%k0ZBI?(+u{+CaZC|d!r(wr~@dwhkLdL3sLLNj53(0JAsCB0Y z`?|#vknPqsE#(@K_TLk&;dOXl(8phO{cL21by#u*?s)MZ&Rwp^V*pO7vVpiv@*mKL86-0;8jzUW3J-R~T zEUdap#!jz7YR-RHli85QCwMifo%p6=MuFdFZC5c8#+qP6zU#NI6XR6t*3YmE+1)SX zb9GNk=42!t9>Gbev9@ti=Gt`irCcY@=&_A}BRDH^246kfLS6_F`?%cto6n9bRyW_Q{xl-pMf4B~DG`}#^P_TQgeDEYp(nEW<1d~P zV;C3j(-xd#`%VjbQ{D$*gw1biN$kiQTi7XJriK`(=O}9-p`-U-NOkCmZ02}C9jQg{ z7Dl->tA~G#Uf&i+?3j-sL^=iTs(9)}ZLlRT=8Dgxk}G;1n)m|SR9ia63<$}=(z+0l zmWXiyEteemeZ&_y5~i7K!Dy{!4ttEaY1yjM;40*sJmx$!D^!g2YFe=(XCy6!WUira zNWy%XX2xjh9wKB~UkyaI-Yh9U{jxPeg9wENw#yvYd9kZ>({NU>xM=?WV}F)a~Ycc!yj&Svcz3 z(tR+tkuGZ}_egWV)z()9w48S51Mi*ghHKcFp-aQxSpT4V7YfE;bRWV+zjOCRDg}S- z5UU9tkYjY|ZryG%|Fp**Hb(aJD2{=;zYy&ZoP)SyL~Bt`7G;1VNQL`RTBn-G5o`P za>>vzG4ruYQ*~$;6A~QO3hR~=!l%T1Lp(OKuH#+bUohNNb@+npqgP$E7?~g>XN)lu zQUgjcLl)*u^{Sf|J4E$*<3eq{ivY6cPKb4oN5sd8Rjzvrm3!>;7SljWR&RfnA%<_- zEYk?(fr!?`c)s3r7VzHgQYs2YmUfAx#3SfQXA8frzvL(*(%eETXz!yQmM-1GT5wH8 zwz(o$?>BdhHSEJliN=*1V!`NZ>r!9?-obtJ)X-wqt#=ewMeAb*hko=vuEp^ZGM(dE zAVT6m{Y``=a-9+(mS2vDWC(vo6bkX&Z>mpoSl}wmrhATmXU2%$mp*sq=!`y3yuMEM7}3$U^BZ$g`t}dFX5UpB7k^tb<1Hd1 zA3h7x{U^o=^}X`M7>s_rg-0MFL4ma<`bnNMPx_G)_Rq2NfUWizmf-7O`+fMz+cku(q!Z8TrpRSbsx^hf;akb zF>}o;A*CSu7_QWd9)aPkr39_%Fni2{XQYv$bQ$i1jB#AUM_Cs<*36BD`}3JgDx58kQv$a!%2!}tsd<=BQ|%DI}7n1bM8hQE;Sy3RvWqI zh|3MscSdry6A-c5S~%BfyYt`~-C3A%Fw)VN@d$1`sPhd=ML>T~iVz83Jaakaj5pKB z`9W2uk+(mXAtt1-WqVl1AdF@h#n+3z>QQRs`bdUsjFlRt<&HkEQAUoaR}Je*$`VN* zKNxk@smERl!!m^VeJp1OdtB?DO$BwNAzs4SYtniXcL5ycl19cNM3f&_u3BkdoSk}W zMZIbmV?j&(Xp(=u=%XC1n7aaz7ML%LHY0oPMq6PamlKYol=xJs`O@m+k=vEzfAcAD!QS7C(*72n5-vGcxO zITqw4LwaxJ8)Nmv^^wNXZG!grv4c@$M#98Sh(d}(f0lm`yHgQK@xl7+{vbbVY!L>& zgHL;qUq8+^_ZTAAagE$@UC79{MFHbMemd?;-xWYa4vWX#JDsHv(#i=bY^RtmMUOY_ zbThIwZ@MM+L9%MPYZYD?sT_?e;_5H%s_9#HXf-tCU|i?)-I`G`5-wT*rwdc4bDX6}4y&L`qpaqjC7g zJ0v;lOn``J7Wyb>8o^<8ubE~&D3NA%C88ERbEp;l+cQgv<((+O$C5%w&1l=0*>cE9 z?uZ#mK_OW+vsu4Lh6qWOS38fg(Qh{Mu^RS>T)%&Kee$)=lY|uOt%b8=3C}z`#X_TT zY^8;TzIP!Hta(%NC}T|UEX&>qksUZbaazw(tn)L!biY9)TWdu`#L&?iF-`WP-DOJW z+GwYkb?ZFhTsIds?`shwj}dFrVz$xasa=@3{@c{?W!w5}y|6!cw(+30$!uadd``Qs zY-N9&Jq4~rXh_4maY{=|=~AStPX!TAv-#*kvn%P+u>aA7AAVf=H8hr-OW>c zL!KohW{j8?k^{@CGpy!1A~$mu$&_yC_;!|V>9LFEyeV@Pmw9V!XuFl%trtC!((YYk z>3>H`*a>mo8y0$#w0ToTeN;&1DzMAt$eB*d^^%Z4 zwyr!pN4>7R{lMx(tHk0l18J2a&5oa`g*D=3T@lb8zlucz@$Z~)(O$L6wde>!swPQ2t9Oy!K+!Io~o%K3$2r@_q;KlV)aokviD`qcjRWPuaMEkB_tP&>{(;v#j7x; z^H@tqNNpIYw8ja6Pw=>Dq4jG`mnKFFujwDKP$88o_pPZZi2O{-4y}`hB(y~fse@&& zs02sXE?uY#xr~tFQCD8pHVJ?AswF|nJZniP7S!;UgbvqGS<7l8;3?52ZJ61;^w8n6 zy|yJUGZG!qtk#`pWAVNyqm&7R8J2b6Qy#8Mn@OP-TB-9o>!r_x1Iu zVPxF0;AhsJt~I#9HNC}(4I!d?8@*QR?vT-TDMvRec6`*aR7l8}Gqg=nMU7ZU@~9{7sGWmeZ1J+3&E zTg-Mzq96E7NoIdSq{oAHOChNYJoRPfffkHicJ^2cWLpF}<_zsB36C){yO!87u4Y?x zRP=D{I>JVseAj;$45N8YA*KL)cGyoYX|LI7@SR(4*?Oks?Z$<7NrS zs*gC+#vOm$NdqgO9`PTpJf?F{8v3`7RDguGn&W?K;qDa2H}A3L$ni5dyc>^Sfn%7C zKW?KhREX#g$%Er>YgfyVs6EWr*@2u&`js{07pcydYRF`d9=J@3&mjM2U2=6f3kvpL|?+@IEJO^tlRo;CDX7m5Vlq zQ=+?Q;}YUK-U~tsSJcy$Wo3sEDbl_9nU?~fh%_AqoSm|@uW`SX;|ErpI_2sLMwwWB z@K~Mb)DRlx5FYEaiXQ1>RrJwvdg_QBD_4IUamvV2StlqUr#)6=jZb~Od7@5nES?;r zl27wi4HuD69Om)}sf*=7D}^JOPg|b*iJ!J(!uYDwZsG{M)16d*oP+MlK=1$QlGbRa zI6VZ18orQHkRhKgIm$O+FD_wZj}XtjKaW_BkNC{+xuV7FSjrCHfFqZL+WHyAbN7EL zAt7OA>KQF1)a-;X#A#2c={kQBq%6(N;$-#%=d-=88JvS1636cdkz~eE?;L*{=7F94r~-qK99g>T79yWUk=lwLj$`DE^~8OX zfABsxaVMQ4Wx4T=Ki=wgGm-;#IX&m3j#l?`gS0{1ZzB8w{bpjig}aZQyK+SD@-bfy zavALpAFvASbu~tmme+}ap(X3OT{^Oy>yE@Sz0Vaji|FmUUaAn*EWN(vfpLFn*H6!J z(br3gVRnZW!4J%Qv_9hztL)s6Yer9(=yvtk`{o9#xlzm07m5|iY z<9Sof7j-ddF6M*e#U41xI+Zvxe#issZgg| ziDnm3a!@HBw~nb4$;sfxgfTlMlu9bL=pe~QrlxK_!;H^SG?WPyV?r7XX2zHg%*?*q zd7gXE(|!Nh@9$Z^wf260&))lwwcfSfKKuI5*Dj~0_EFFs%O^t1QV;KUI^E*u?7Y=g zICw(N@SDgftIcAY7oM4Q9H?`0b|0yzHmNg=3XFZ89*2L*8+m(oo`LHNooao5CBpss z>UuZdy7ecY=$Jp)xO2sZoGz~rnwchT6juV7wHUN%A6d+kGdz(p9Y^x!MJGsFLbu%2 zcZtd&u2hKo0+M~7hny=>8Sn{g^po}%mJUyCS}8w}RGv}&S~z7M**iJq)33Lm9gLPn zUifhIvE$f|aLKH3fz?=r_L1sHj&b(|G;#mFc5iphu$u0gPsT33yE;3^$bs@sWA5Hf z;y=IFGzWkG1u|A-6VHd)buM&{U}HBJnm) zm4}tJ-{e%LsSK~RSd$uE823;UT?Vua99?04L^Wci=YgN5zDdX4yvz)0CB5Gm>Gf7+ zq>k^8dwJXPQFFvq=^t(ABKZ-UIgcnXkSxeBxbvc;)Dt3^oD*vuF>=ir==XLFfcWYr zYpIF*y0-39+qR{5Czn=ix}P3h5guT`tg-OZsgaxI`}kXVA+FB&!5ibJ-A) zI!IDh=xB%qJckwe6Th`d9S1I14$SjBXu@odL}FEYZx)xTpASR$C83y~Gm70fQW zV?8p?qtM966fzGf4HbMbi^~pHwa<& z?*J9@$*GsY3Vsi(7^KU&$$3pwze|lxdXuA|7x<-Pf(j|x2zl42c?veCm73Se!MWo> zcY1s#otz0RP)G{Or(h5fkMK|#>QF(^d-j7rdjwpF#4gow-W!Ow5hZ zf8Hv$4ObdIq&FbJHBr9ax47D8`Rs&0Ay9y-vYx1 zDhK^`Z1=1R{{~nC&ZJDnuH2Pyf9^mwiLuIvkz=d16w?7PXRE!w?jq&K5-t3(pL zM0MZr**KbL6f9;I)jn0PJV~J(yFHwekI_M=^vaCtZG%qT!1A)RDHPprB`T>!ty3P1 ze~eZn_MyC z^k3@4rbC*p7Z0t#trw?lh)ejYf3Reaed@@1#=72w(#f7ATBNH_cZI?8g0|s3e2P&+ zQAk11$HzG6CdjoVC`uk3Wk27UZ?XDe?n>T=-!o>g%l0nCS+g~xD5RUYx#+3eIU^AVy6tGk?<87l-oHb& z>2X2a{EWBCLw~D_(6)YirSPH=-XQHtffs4+*bO{PX9Bt^=fiZ=6RITN0V@FV@M^YG zuU{)PeLCp>`j$pwo!Pd;odT<84fY2Iwp(}CIo!m#TVJiSRQolIKeu19fCb+l5?w%AMME=igPMEWIUJt!brbsup4sAxaW^2 zJ(cFlc7FU6w^n#|5om|uSGA$D<`Dup4k zA`&h4*hO6Y0^^)WhzK+>7z~2IElfbGs&pKfR8?zzoS7s#i@{_js>1mKz!U3m0Tu`V z8>81o`I_Fk$uYH{J}i{=DNS?|BX9z>)wZ} ztKn3XwfKRrgzZFtI(E7fu9^X?V7E8G%EbWxXUZ-hlL4%Ob;T$@X9h69;y%DQ5lS6c z1c$m|NCfP|X0hN_5r9K$O28_!fP=EW%s3 zN~GYWhukn=sT52m8cexSN8D^)lUKqiP-UkFQ7016L7xlhR^-oW-_cttGK)sdR7pB2 z#Z>5yx8es!PAgQ8Km1Awju(5ruP)TQP7+NRa>vaO5QC8IJgCyKXB3K9N)ZqN0EZ1f zQEY;7OqBF+F`i6m0s?{5NyP7~QNXwTx8KpMn46CoO*%CkF>?AxKI_7MXecFY@Tq8F z;p^?#ff|V*OES)k>HTVAaQyAXqQ%p}*rJEigB%AZGYogHXOH}G!~U2L0soAYiGcJ$ zDDB?xObewgNh()RcN92G;eKK`K$qClO%mcnD~zimhGr_z5KOo%6p1Zzj~9bHdQXEL z8ifQ}q}nQhOd=6&o|`&@Y=urbh9cZPrARDs(L_OY3L+<4!E82@vhi=Z81QF0FFQ~2 zXm(DzA1HK=0-6e?%Bk8eUc#8PI&-+%k;@;9eETIbxm#3x**MA42GlV&fS_`60zV&L z;sjoW&v*3Nv*QBd>vru&nJ;O&-F5wms4RJQ3T2H36r2E(M6il7RFWf2e1*zCo zIX@P5J<-teviaG}M0MiaixPjulKG{X>~sj*_FuFXte-|J$SVr>w7)r%pLDuA#Cn^V zGql7maWC2OZ_}4jM?>eS_)Q@^?CAea2zEHy@PU+Bt!GOjbz0Rtxzqx#AatgcCC#L1D0aCII6b?}ANeNNZk?)k2Lb^1OgE4L@oel}T z9+6!xM_gkx8dVbr^Ov|G5~4H;(FSJxB!bY$!9ELtA?K zAezcXZjAW|v6_Fuc;JDoc*S&1lT#afu=BzR>+7ir&!ukHilVxgSP^X*x}-o0OQ}janP2rz&q8~?hFO8m6rHWF_L{C+&W6);ZQDfTbpL=* zWMxpmniejM!LUo?Ewm5|5L3OpIA`}buiri;Ofn&Q@r&Sm_++_Nu0XcWfJbe;&Px0T z=eEDUsyJEzpnMiH%uM0;C{0Yxi}R*|J;nT~$(8P->_~kOf~g_`wgs5dOM?B&8D#pR zfmy=W{aJDJKX%m5z=x&T1Js--REh4ngLA=fzgoU}?ZyNv*-i`UKbvne`%4P3g(DQs zOZnAo{F8X7ueWF*=H`!1j_0%=NfoC5dN|5W?|2De0BalB>gMO?5WKLQlx6D~M%uu1 zsN@qZBZ#fFtGH7N_W1XeY*YW^MBF^3P$<=;2 z68xAFz}9z`oFbNm1iRY%Wm~8KWdc-Tg+Zk+SMnI9(@4DBBp~!|A>8p{&hp{LsV#x)Mbit3e#D;@2ZtLU?xzmmgEoYl|t-er9|@sZ-* zPKp(z8inmv(MA^N-WRZvz1?1}k=^8

c2h7Wgo&1!jFMTzXIaQ9M=<5RB&m?+++XT>eBmM@!Ez>q|j?NuV+#X_)WDo zDYdFus?4-Dxiy@Tv@%S0#82OBv8iBy-ei~HD))_>PpG3QG*Yjsc%6INXc4nJII)eN zA&n#PL~TM=vPoM^g!S1kdL?+8TqYX8r4Z`-h)6l|qF06U2iMeZ!tOftQkZysBv>(h2hhdAfqfSMBEO85=yqx8hz8R`Vy#)7J=6& z@x#71<5=78Owx$^5GfnF-bqz;XNC92N4oh7~)kP}TStV&AN z4a>W`?i^WMy)?hXe!M<&%8gt|RDjl`li;N2nxu?0q~R_=9S@(4*|kyrCLKt;3f7i_ZZXjrGb8eEpxH($Ysxcn39jb%0Q;kw zF;_ogS0>^aewS-+pEB*x?L$apkfAJ)sk<~w(Y!woP=RC(15KVJ<^Z{B|spVjT$1FvV ziV8O^6b@v^mu6)ie%N)M&@dnIjd+aQL^Q)SR2`5o$;W%F-2g}WPhfPuWL#WTe6)}raNww2qM^S|# ziM!9IF)Po?o46ej+5qmuki`v))G2N-0j@{SDxlAQ4kv;CvR0#xGu?2Qk7+dvFc;vULMn*Ty3#yiyh_(!~?6ZvkV z>o(~K^+d@;l#t+ahflBIxGd^8><&*>{#rN(^kE|uZRR%6#wjGk-R8_g;eag9iKMUn z5Om79$$3HNK1(F|cw94=SC+G4!a0iZEsRmi4&Z}$2VQh6F!<7s#J=Spkc2v2XS>M; zRgwkgWL6-@%iWD`Fx!oAn&7<;UTL+Z$Vc1=<~EF~>>EPhIOP@uL;0NTx6;1Jh|FFsed8uIqKT#C0Lr z01PUfl+lEhF(&cWgcZl=^*rbV6BzTy2ws4#_mkV{*Ke9jy9)jF~#0uz{=oOh(( zFgoa-!o!cXXXzrx^0Et1X7z{D4OfroXhIbr>% zS;Lks6<`QRun_iZ1-U*`W@z=E1v=6ffTnZGH#y;%QEW-1L#UMQX)coaFEB8r#m)o@ zS3F|e6uNW@St+ss3EEFw!kOB}FAn0jQ2(PYk z9qDry+N`8jKc|*%Hw=vkorwpy>{~G99K+W${!vsA{%7K0)CQ|DJh&qzq3J~v!1Mqo zM{3vlm1tbi`ILe<4E7Zveh@eTd#cMeCs}1N399NQp zapC`Qb9Za3&;QiD01AU#VN{Uyy7t4u%3M%1Aq>E@y~232@Zu>e^i5)1qrAl}-;L;N zmA|g;3L0-_U(JRn;k;U=%L2*NspvK{mBovK=~YwcSK$as6HKR?TwChILulF)ujrL} z!vFp4*=6`1Oe?5O3oQ12CQ=RiQBf>atgNC{H$&Jzt@%_mfUkM}-w`WvbJ;HTlV~oj zLK}zL$8(5L)Nc{gTJ4;_BdFwvM=Ol6`n-k2hLlXQ?^R&`3;wFe`*%rR=FR2ShwJ+h z>oA({5E|WXCbKwM$t?W@N3#$#HFj77NLM<3HR~&=xJ2PG! ztzqX!@$-<0U=?P8M#?=Zf5vcnMtR&FUpeq@4km_!4(*hkXa`DwPh1u%;nFoRD3nad$t0!N_24b_1( ziS8xmW?1uoAjHtbPTJQ|BZ#;6=tx0=k}B`0|&? z6Vy)GG{LxaF1mrwOj$v0nTRR$Y7`C0rQUsDjVQa8pv(^2KtpF?Ruqk~syHTU12tx` z@8j&J%~aRd`4fH%^PIt-zPkqRI3^RXE72$>wrLDk(A>?c?fxVA-tevD$|$BiREg)i z2H?%Xi???METac>fKlCpjRe*ll<1C_KGa4G8L;dzeY7EQtZ)rNnHw#CCW8*wJ!aP9 zOm?bl)Q{_?(emRcjG$5@b_}t(70EkFG!dQJ>&ghQu|v+KX;03D*LD>eMiVYEd|i#A zCSeYymrg+HOu;=7ngtusvHSVAnbiNGqE@6GpSenHZ2@F;U``+s&a=7>qlu*llAE)Z zg!Q8Zf|*JugDwGc3-@EY)5QnEsk+c|4oMLXcro$x}PIXpcT0mu^jew2)OiYaP^8LD12KVA$S zvPysrEZOro1Y<0cg+>5K!SS@6Q?_Xi+L>BZOFnoSxVicK#22E3weG=g1ue3)$eK&zpUnpPi8R!P{gsk(v4OjjSR;~@hCVECC zMV}s0Q?9YYz%9+@Id)S)&s-D}yV#_f7yA<(1UEjigPscjTc-q1_VU1J-B$o{uk)sA z6KaU|MrI7AOpN)nU(y|501V}Cpm)C%Uejh~GN-#Hrq3?-B4r=&!f%n335>a?qe4k; zvr+4SD*G9B)_CFpIB0;R)O2~Ez-fsUqotx1bJ0v zqS))BntkG&R&jago4B!Ct4;DPSH6R9Tm-kiNeDW1LaXXLFsGHFDnH znYmORRdKgV5nlkf)5L1Wb}F#ilC$>nmRFlRg_85&`<2DD=*myO*jF-6q@B_;Y^f~P#K-#8rjoR zoc#M_kum~Me-94Ib`Hr_$WL6EDhz~DIS_BH?D3x_0~yY6G_U?I^%jIOopDDTBp#6#4-U8>x5`)XO`Qz!)8dQ~gF6FHYeX${} zqhYw>{U{v~pvx`KOwMc?SUfAJ9yk98Lgdu^I&Ch9(Xe0k+BgGUQV8z3Ztdu1F56tC z%R%@4wF5SFel@1XVBjGb8N4I75I%0eYmc+~FsTM8x%xbV-I8QkZFON|uKj$>|HfRg z6rCd2o-C%gsV$vVBrBYE5#RgxV(XrSH6EQHp&TP-oY*q|98u3z8HEq#HsbFsZwRw4 zYPm5okSc!s+nVsmK}NmAp7hiS#aT^bweh`uW`NEJ4)cJ9hjpO1C4Z!_baY~&qAqm+ zlPn2{MQqdg_xz1YpUsn8K8_=)8emfM#BH$DH!6}uuNn!t+uSlZCWBjXb9IW_ zft4{z<~$Z&KUiLrBTJ$1PUHgIC?d92FRDmU+iOMa^#$62iNrm?s zYoWT@e(DfO9#m3Xr6=$)a)U@n&8SaP-Dw374MGY_F+L4gi2E$)BmK7To|Cg`_?EJE z=_foEc%AnAdqC%VS_L2|aGgQ!Qf%oJB=GVhfD^zPy?hW9uvS=qS$AilnUn2zE+%k5naxG)X3i82oE;{ILP6&uA+=kE^=5oOa9~b}@ z?AhrI&2WPWxh)b2uD;1Er~n3uILT5V2aq7V>8HmKbG@r8~{Ul?-Z zA%e}aY0ZLfK6aU+#p&S2kA!=pW$_1O(M7;)2mh5YcWC4H?soAd&-#>2J=#3X)q%}OPbET}5`Fz2UIEa%sc@ z7HA^rp|$YJMxuvA;sQLHP*RCZAYqP%!w7FD1pP7atu|07vQLGE^lR24II|n+J0456 zDRGp$g5u1!g5;sR+XJGMA=n?F!~}#Y_HD@i7f3F^cqKiM=uJKHob@5H5r@XPq2$&L zHWHe>E$qboXf}65R0jheb#o%WX+1tp!3~->3gHL%^Pa&B-4h-qtFLy86Sh7Kg^@*+xhT@EvJ(F z=c;;FlUhWw1=QXbxp?v?sJG75N;ofoPBrhS8Av4Wj)Yz+h=Pe;J*E|Z^;f4!CEtv6 z(~Uld%iMgBIM!IReo#VL%SLVZWpfD89f;zDQ``Uuepr*s4D>7j#WwjWUeUhU%>2rS zB$J>2Cwu>-fR;Z~R2O9UH+@j8VYk3O-)XRG-}A(dGBR5>@-TU|SFUx9f;OlX?gK*| z2fu&~iVWO{TD{ow{IG*|s`7ois%hM_5GoRAz4d6^I`eS#FMqSDwH_35SPQ+#wS+jy z8gUC0a!cEsQ(qupFkyT`+x&E5Z#d-su=-_QKbEoo^Z4*?ZJ8JzhEU3IwF3Hg2_6cQ zv%Nv#>g3X>*_9ul`-8@VqGffsi+$Z;X_N|Y?jUUr3Lbal8wzVYQSvG}@@n8Zi`IF% zxd)SzVKKLiZu6_a#e6gUeMm3OHFbI1dS*jMGrLFMu~q=!meL)mnqS@x|6K?Vd#JQX zsx89jL}r-pfmpaIGBh6J^k-W0q2q4$ueY-z?_&#FKRVe;Cyf)cW?2S$(p}Ew;b2$d zc%DA&?D=_23JFfOxxrAiX7M@g=m`k_^|ABVQ1#*7TgVL5X!%~ph?EcV;kDqsdRO7= z)U^zvfU`be%2se=BS(kMwwk9hb$ok@JGK>JR_mouslENkXFV-f)R3ruQwc>*7DS>m z{ZpT7Ng^rwScsTQeO2Ce{-Ipgm}V;uV>u|m?L^c#$_%nzKh)tMUdQsD_IV2v*m4Sq z?h2$&NzF!Uu38K_tKWE7lOD ztw-65tApRWWxdO1_xqy{FDXsoE!%Gf^eauaEAT(loMk=M)BQ5HhnMq5 zsTOv}8-G=Gzv~~K*$z_p2Xyoo>}X(SDCP;26ezh(k9p&H zp}chV=@mA^d;@ig2s*k3E-C-wA|_@ueV!ixw@sA8+j=?``62hKwrEBeoD3bgGsFU} zS2jdi!nJIC#X}xc?ZsC5^Qec91Z?sd=@n5LZ>YMurC%G=Ue}kutOB0bEH*JkDxml8 zGur6&9}R^=mWsu{3mu2Mx?UAmOlEm&R{5~2Tm%!qjZf}>7h}w9r!#v#CKmFQ)G*lr z+TtBL^FXABj%FbhItp0;cj(*8Q1Trb*U2>@|DsPoVwb4LUuD3>>I+9= zMpE~-Ja)hC*vsp2Es>C~Y?Ye8mFM1#Q&jAw!WhQZ=ErR8&Z5J`h=qHf3HY6JHe58n z|0;@>t+ks~6lqdYBM{%U-QBYvw=#YJi0Smcv1^TI1h;d#^!!}w8xYw6BdZ$@$M#9) z#~ZYm%2D-#YX_!Vdq$JLiZRvSTpp|&kj7}D9Dmg+Nd~hX#U5C?XQIee<3w}e* zcvdMiWP&47Wgl+Rcf)LAJdsVnuXE`NcwSUA*&WkLSzuqumir9y&Jx;M%OmTQhYXso zl2Pw?7u?TO@_EY`Qc_~q9l@Io0YXR?_g*hO0gEKkXRfzYT_v>eRe z`rHln#Lo)3pQkcD2VM&#buLH^7DzR=&}TF%r1ke*56#htY#xVd(A1rPVAy=4mDKQ= z@bue-v3@_L5x)mBlH|h8*qd9NAtjDKsX&r_P(%*KP~ar%oVm!_@E<#$?ob{NcdEx% zHm_&S$F0MnMZ11e=?#W!gW>k}Jtao!?Z>1&+mM8PygmOtIy+9;UnjAJ;M(_0d@mU2 z^f^=6ulaAe))b!JUjUvS)y65+^hcS$7j(YALM9*Vjt1D6*W|OTZhn( z^K~NxXBg5%+?;{R;v%g_IjEJY0T3E2e)G6JbiJs2pgx*BE&`y6Cq~7zS|NH1X-RRh$t+w=qmcz@$h7T6dRtL*-EQ&Rd zch5*X-L%`r>-J9PiRVF-_>&(?x49?~RXfT-39KLC+?FA}nSg$>DZF_PCn{s@*8(TN z>IEolb7XJnb$}Y76*0m1V}&ew$if?IAzl0t$Cd1Bz6AK&6y}WMm+4Nh>8Ag&N5?Nd zmwNv}SUg4k{FdQ;$of1++B4+WDPKq#U4|n4hxgmm@t$%q@ulDe8R?g4o9L34&7T76 zESt9hQ}eHy_k;S{xtIR2H`G&LJlg=x3b;!rsRZh=mLPX_yHc6^-PK9Z?93lb2NL>X*Anl%fP2V!N2%CMHbC34N9(ONwbeS_po}u! z=OA<>>f+&VJZktbuf?c9(Z`Uj`)g^$0FmY`5|0AW`ae}tl3(7Wj|cJF)M%wij9({o zRWGFKAD4Eoxtt=AstG20S| zzqW7_SpeYun{6680S=6x{v>eMx?85l6V-c1g(0PX-m`$fxAua&%kBC9f?HW%MM$#$&Ep^Tg&<;ff51ol zGN^iPJ9jR&?n{{K64ZsrSTqfT!%$-1S`?o@e4}QVe%xr#ji%02M8W%$?rZy||EoKS zf~MK>Q^3vDJO+Pz#}igWp6wmbzawk#5z#LUXvV}&C478=#iAmB)us-6NQ#F*-u;D| z59C396f83J>)dA?t@B?{YVr7;*vW{_Mm^Fe2GalD46Y4J7?KZhA7r0>`DkgA<71I9 zK5p@Iofv5Kke0=%LBsWqr0!y3J{muQ8=D90N0v?g{qh=ecY7WNz-CdNBu>u1-q8j8 z#S$q`Z@g^lt~zOe3pXccYZtH>cytt6y_isczSaWo*nCpgjRjbRZQ+CZ6*tuV_8``3 zoFE6~Gk0h=ix+T_w-kiT4IR*dbE&LIB#4Kam->7(3J`? z(#~i?lpgTz7569x{2CL@pz1<=HqRMNzt)S92yJU}N21q#FBpfem`cp?=CtZ@8(L*p zLu7m>5wAhrPJL5vq!zFsg@qLSa%sh|+WoD@wke)2wy3S|ef8zj z4PPe&(dXQN5#}bYejvV6T=9$q`kDK=0^Wb-f5ma->eGZrZ%miu1Htt|7l=JrgI zIY*ny^z%n)(uprjb%)*35FBN%Q|=halVkL=lY#hCY|{!s)D;=!Ej1QIv8 zZhmN$5kGPR5TILMFVX7C{HmwNQ*H9l(|pVKdtzuE-UFn&H=>S-;)OG<=$z8^v|nxf z#WYwuH?)WvgjXfLgeFv3Rf3mAeukCKcvqGd=E+H$R3NXru}VENs3ar2>}1NR{XCSm zl{CF-E6A2+g(YH$A0oRGmu|^4%Y^wjJsnW4rdL>rYw4&TR?J5|FS;ctt%xBs|=7J-c5c5}ihe z)IbW!&$%F|2tZlOQ8;<(ruWh6D7VT1eX4+gRo9gVO4n)=6NJi`yI*qc9|s(m>u&Sw zySfk0MCHDx=9X9F@jLa}b5^&wt5Sc_=UxFmM-H3qpWA|eE2$R&3_rGby3g4FO6sb# zy)#J*Rd{$`tc#|VexD2UEoUQU==ju7Gc*@!Jg@ql=S8bcf%3F(sXH{KrM2`8(F_uv zQFjo3?zUtOD6tQj$8inEy=8fyG<32!%V>dYFB8Hmh=6ijR&TzZSgR^zAm4ge>DmDn zu_$|wxfo(f|H4xFd#j9hK)}~9x^nRk5%yk|C_=tl;ZZO>)InP0-f&({KPS9H#A>!W zkNK=Rk*Rg{Sdj9J&gqWImv;gpJ+%a8i5yx3_AogXB!6e7{{$(Mm(MpM$_rI8+Q<@@ zHq@EIs{CwICNOZB2s9kcuH4826d?flt}yxQqC0Oh$ZHLrKlHGV^iJQBy!+kW_^I9Q z-xNS$YMiA8&%lAK`+ZIR!`~3uNGxtN*?cK)N%AF#HoY*O;>iK?8k<*su{x3ioE@%I zqB;wqtNqt8cXbss_*_^iy+i_dd(Xzc5t8R`F77_d9h8v0CR)=Byh5`zkBxw=%>ZdB z@wB)LI2=fF!pAk^)6mjMTP+BgZ~uiu3t5O)lgO!S=By*2ky>#1TXe~q$yX^jquQ$XVvcQj;sd16f~e%mhsZM=s`TXUoWm$&!(t1i>$ zdxP<90ER*EZ-=N}F228qSq9YqQ;Wy=c{C|V-}6?|_VxQ@R4i^=qpqzZZ0}#t<)L;F z%eL9sdT55uX)j}D@znd!Bjqh2=X}V*y^xZNMPE07sr?;yD7up0*sgfp;DuDv=QZzR zU32<=3 z05}bXoZi^iXVyf-^cK-xKklLJPJ4!*(QDV(@Hjv$zb1x)`boxS9hQ#v`G~osVrB=2 ziXq(^6oy0nu?azR2VOmFKE7h4y~315%bojoNsDZXxs17~WBuiy#L;uxeC5+9avP5v zUEZ~u))m;%_>tJrIfsNZc&_$lgXXhG?($4E|SYYvaOFf$!0Py7}PdB!jbSt zq!X{$WdRoSJ}E^i?~Zkb9;4^CIrcIsfi-9absg>Xs{d%{{HMz4g$4JPJfr0Z;74z_ z<&g5vfrz~orJ&A1@BrPyqQZpjEg#Gi!70c6s*z9v8yV4gqcS$T_8X+-Oy49 z*-ecpWq^?;&<3Vt`Mp1WOvLDI_Jqp+4l48uG!$vt5&sy@?PYe*<;bHd6Z0n{F|Ja{nLI0AXNI)%xYwCz2T>VEmjddalV@a2|gBQqgOoPFQ#`f z4Eu};qPi~nTQU~kUQ{$;O1h-n`m>PuxIe4$EszgNdGGG!ksFeOOZyEunEdLF93T@( zNiY%38tssnBCZXVA?Ah6u=4V?*0VBj`(~dTtw+EG*^dhc{4BM}wjZUO5{NFa{3^7na+I zq*zVX5KczcW;Jt;>?6{4D_t<$JY_?3nhn+-?ThL`kZN6NazxZITgHS3F|I$4#3~A2 z=k4eY6aHl&g7eb@F9U!VHV!h7s7JTycOAGXA@Ofcu1Ow1%;wovWk!1jx0s4+O&f;G3(LbXy@<4N5-w z7~HbW-kKYk+QaKO=iZ_o-qlg)P)`0NG_Yis$NT&Ra9dBjUuFp}9D~avC**$h!EV0m z$6I0sqK~1j3)9*$$QCLv6z=cw*zNSUWYB$KAXOrJFG;6`9s;p2gMtRI;b~ z*0j4A-@7upFG)^5o*g$yA^E@(_6{HSR7wf9i{yu)tR zl+3_VLMm`AZi4*Ed{FdtZEz+(UhQ|vww5KA22M>6eVY23Veu{&$0H-h&jL{Ix`5;m z+zVd=4V;*4NE-;=l>Hf}5A7Jipr#;5OS+M7A<;FU!KKZhJY;Z%G z1SdA{3dp-1KXb0??XZcn6Q2SmRcN5&n>(L4-oS0(Z)oh5*n>Dw=JHbm7qY?_uJ&?~ z=_QE_Iftg?&3E&?za2dhJKJ&MRd&j!EeI5*M;aR!o4s6GWrI)H%ppovGo)n~jeuDtWkhrAlq{$(p zq8*oB>2ajLFx|Z*QrHXYH(3`*Ef1KX5u-O3y0)wzy?~;ZJ*+sr991;W=g!GDrYWzl z(wrHmrtGJz@7o}bCXN+8-42HokM8d8)*kQHC672cC#*TGGBevmp4aGV((9M$?D=bS ze?`aO!7Q~WUvDREuYv=HoNK3KWtWmimWC>u#ueY8UlQivwGG+Q)NUtR{_5+gdBQ{I zcnOo$Mf`E;7!iMFQo^-PCq4iN!!fs2q`&WDELNNFxrr=TVj=7l82WXz6YBWcMnOt2 z`s5B#n5$Ca5%8zaMLWf{h)h`2wZsIwz8#zhe}IG-DWZ~tdk_VX%xkCViijjSXcb{bzR8r!$7;~-J$)fOl||yr*F~U~Ei_XeiyB1ad?-1QR{Pc7 z-o>Z${;Fc@I?xI5Li8pARvM0AX}XY8q|7eLx1q{Z1nak(U$ zkttTC$!=HX@tn?;fZzj~50P5yEkQ5qDqHK+GxSykx%%M2OI6!4DF0AA{PqK)(Y97N zXn0NF6UYH5a0@0`5ygd_Or1E8f*uXlu~IWdW0vwTEd_*v30czSsDTo=!JnYfF6!52 zTr-r8GphUXlQy`~gs7}8H9n)tWpt#$ROzE=J>s;hnLJjECa8ob%T#S8Xo;@+(A0XV z>;IUG%%M8tSY@`=*$+jHW?DqmPoFZ{kBL|g=#?4J;_qAAlGy0-T>F+<6{IYr|&;p>5m5u6BeSVHf;EB9V#THHV(H%wt+HZ1r37_PHleoMoi zw!^W1JHJz>UndXLFJ&MAdWbr9%vzfIue!6wZYrU(Ayi0-qkb#TeM?iL`j0C=P@m*b zMe9mI2>@*TrfVSrjlg5myOA?@+6kFm%G zlDjHl?X01(-0dDf`Nu6j_!r)n#Q|FY7$`_3OoQ;cMI^Gw(Gu;^IPMyX4dRtP8^1Qnyp7t>^# zNo|qH)Od~40**Zyb_*44>5?bv040cBA-SvnP1bTj~V}lD^j|}s0h~mxUqc? zH$11jTTl-`qU+6jzHv`vDfIb*>gtDw8xOBQ7I&(8Nn<*!s}$3_jA(;3eJ)!XztA|S zf~xjfIRQS9#5`|U-uHX*^rZCKy_|Yff zB;`HW&YlOpMW;mOwDI2z_q36ZqY_cLY3xebRN7cTH%Cu54!*^RVlF{Uw~XhxTE>HZDdSURZLOGv?84s(#PTlyvN+Mj()xDZGI2enXmMS z1A&nMz79yXxjU9w1+vg~zFb$(`-REk-Gmi8@=AXmrBxMgbvj%l>PF%T-Qyu(ed*2Q zP8>Go8fuHGPCt;OVkIWYGn+WHh}b z7o&j2=Z0Tm0@2s%KWXVe#Ift0^;&r)F`j`g^cR7{sJDPC0`1vu`o)P`XiBC_mz^8h ziBv8y;Oq2KAg$FM&v;kWC<-h*0{J;UuYr3bR_wnyD<*2+R6uzd(|G4a6f%uz1+!xJ zJOa^#A9IkV`UhChZF7K7F%3g?LuXk~UmCFx|DJkq)hkMl5-}nm>DA2LRs4tw!blVj z+i9z7DKdXDJoHla!|* zfyusfHa1TrGg3eh(IsRygjvVB8WHqlLzbyu#3<`YmMWHlhRMb}SGZ$Fi(9Ix2Pkxc z@cdVLGVpIhrBRpmn6E4{1^8`$F_fa`I8SWM?$y*jB|Z&s{#eO z^sTlcXw$c$2#i7)PGZ&Vq{8O8TLt~CwO0+In_3BW;Ub*FnNo6#uo_-OE8 zVzF43`x4J9-dvpdE;ed2<`O|AuC9S6vJ0%*3ChV)le8%em)Ky3p$)lalki8=U*wYG%M-fB1#P)I~)94+9uVg;qCh}(Oh>v6JAXtZWMNBM0qR=%1FIDLQO&BWlODZP&ZSz>K;}vdrr>8exZBf} zCW>9P-$w!Y*l@Kjn@0mGn$!pM5|k(BQuS(SEuDZ**wvXnWRg>V%6dm0X%UHpIQE2h z65xnuC_^G|6=D&zP_Qy!1vgTdurNub^(mD8x>Rs5lOaUqD@uGZwK^e-uYvv{6T`(u zm9R$R1fW@ae0x+M0FQ75kpqT;cUb;_x{5pSn{+FZEV<3WnG)ml$7yu3n!Y&}of;1& zAqAj8)E$txt-n;`+79k`5UnH9rMQM>^=PYOqpO~0)pUKDDV zEuqVr6cmgc+Eu*_)ILM(1Qgy1LV-n=bagDk1oo#;d_{dcgJa9%1iC%CBt0=l5=N`;c$?=$wgh?n!klE0EOslh%wvBrQ|@S! z|3Y5C9h5PQXN9b^10A|mbkK>C9VuMN;0*fpx+YidYZrxPQvOe zbg2pV8P%IJ0S^2q??}@__OTtn)HAH^w(S3JSl!ry6jsv^n!x5a8)rwo?HZ&TE?0XRYFZ0 z!4u~54C{_q1Y4-64OjjKrxM7>p2TER3=6Nu8}kkN(sp#vNeHOnqTU;jM?@@t8>Wjc z)VK0k1|9h0{J_o$*@cfZ&i%F6`(EcmrA#m&`YO(*ham%@>MyWbs#wptbGN&X}CBmgF{! z!h=|>p+LgTX<(za9^wJC@{Ob>*B!duJ!qL_1s4<4_Y=1(5NW32OO!SmVV?~ervL<{{+KxpU{tyq507q_4rO8=dEW{67GCK!v{`VIWX^_St9AHs1e5 z&OId7pU#2IKmmF!45;voE+Y3G@IG|zdeUY(r|FsQ2XaYgMJ-Hg*ni`?tPx;>mkq2> zJwZ8W*{2X`#1f~&n4sp=Vn33Edp(V$Tqf`}I^-zavnD{ow}{xe_PHJ6`9huZPer-v!P{>h*F z2@;v*bv;bv-z}c}(SOOZ2&s&U5qD7hKr}d|$&_hAr~8SG&iY5e(dhtn09fW5WSG8> zJ|N+0#xm3uTm5v)A+$^>JJ@%!kU!c7g+6&|+Byy7`xrFHa)XT6_t%p|Ax!{vMkl(d zZPUU0<yzV_E$5sp%+8Jt zNd1V%HlQW%NH|e9Ajk7vgzIB!A)n9McO-*-V-tlU$<+l5bV-1=aPO95$aZSPd)8@6 z(}jumBhqpwh6uFfr&X*=9 z{xWtxGhOry3V%6}4~SC8-am8Ncuyoi0w-%a3+>d=CL~yvn*~I>ax5egB$-ilE)o)k zviWnR^Mic=a3X8{PjVVTGaw{tdZ{8o7Is}L$9HpEP_7#+*S7~e;>7?a#tu0A56E+j zsv(A?U8=?)N!*RCHYcvwU(FkLo7IgOV9rC|z@8ngZ+{8w2|LFPcIG`b4x(a(m)EXg z-_$Q+;uFy0c23_4eIzoX&Jh*21%ZA%CVA7LD|c6`x1U!YJjMUK^0fNfZ}q3k^XB!( z=Dp|DrOQ6x*+UhHtgJ$fZOB;kl&jK z1pxwA+n)6FTFQ@sxDr2 zj%G{m-y5>pT=?hq?4|PBY~{gYI#k=&k_r@Rsej6=xyq&0>c%~5Z{@XLDmTA2SC-7> zm*#`n=!+B0Z9j-;ZkzXih`tVF7z)6;HeY-Ey!vFlGPh`6f7lfOGOxTUZ+vggzIAqH zKKZ@&=hNuRx}N;Qil`k3NjPO6Ad8^Q|`rp);^?5NH1UWqIvJ^wo%B=(4P^KqM0hEC+l= zg8PZ>w%0$hUl>SA?3YYRl2izJLzOf;gQ+_X6hl&B{#5oKGudJZ2hfO?@X0D9YHP*f zD;CL48te{W24Vo(fDgufIP>#lwsgKQ9)AKw!Cr-vM5Bv~^5&MM&v1}}Qi=glK_3qc zAoF&DXG&rrNNl)JES;GS*hjBpG-j^+XcMXa$i#ekhpJ4RRL>ecEa3NdMtvL#NC0N*lCl!puybzwIF zw2h7%S=o{V1)e1uJlgq~+RtBBepv3JSm^ebKb7CiZ7Y%(0_Y%=9A_j z?3}+9{w!2AK_?7<6TqJqpfKIj1ylVVv~j<^{M^n(x?|40bZ(N%YuC$fADQ3WEU(?L zlwQ5Y<;i7y-({_{`klFWEBclw7!8%XtLEa*j?qxvxaVAL)ep9FYj2$=`im&u8=CVA zwUw3X(q&(o4Y6Q9g+1AwFn_EK)waIgzA|6kTybi0oxjuGqCfxfj38^OK^CLvwDsJ? zO%^7dyE?~0#K|M~*UZJ6R3c3@c;wL=D#q%WQ|`*NaGQDX)V#TF&Ry*a(A4jrw;oq6 zt{%wg-vLZdK__#QLS(>?}1yp+z@v`N;n#*yCGQ7QGXyxijEQ1!6d}Q zLnuIv?3SCHn7n(=6vuM8_m7;;oG(mf@De-QZ~pAOoG-e*X{^}zmyP+c!bAa6g;Px` za~xk!U@v~5;bS{6c-G7)xvcj=)XD}NX1d&Xl z&H<&~@YUjDyXk96B|XajMA6Ko9cy&jUL&=F_MqL=3i1F5TS2(F@?j%SJi$8n~ruIc=#s!P7AJ1&nLKWZ+l*1p2M0B{TBRP&{p zFV%cKtof)EkbkDSFV%g?)qPG@HO?O0sZDlDf>Yg>>b}H^t2}mTMsi|HE4G)bVHw{R?Z#^(|-zmmOAvQv_$sFDfflEJuT25 z@&bTJRJ;S?B11l=j@;KhXC;~y5bz~$A34=iB(I9n#=+^y6`cr%>GYnZ)EJCH6^}#J zjmGPZf#a4u`orPa%J(m-U%shsyl54@o!MV=rwvL-K6WaTKeumk zQhTxJ=7|A+O{T~q&q+zqWLVGa)LvI^uR1b>Vxtrqgzq#;p|mHvK|u6nsFdN-=`P${ zZrUCiXLwdub$fP9N9|;UEp;C|*&h88=Jb2p$$xa_*ARIqsKMB+kOv|wFdX%{K`}`e zd|XHO)3P%Es#7yEogv}0872y(>|0A`NC#c*PQufc>nrM_K%1xI>65VhyuA6yiF7-# z>z2+Tj{YpaUFxm@s^zs8j{fv*ToOn5K7|~V2ok%uEdSc$=asv+YFqd4G!|P(*e$g2 zUwMHwn)Hi3}M&G1cfQ7^7;w?*@IxY6hm%m#cy(2j=C|mpP4fx7PmI1OV zNTAcvS%i1sWB2g1?H-l_Bh@y4GdI68uUjH}*|VCD?F06$J8?Wm zuRCpYohDNCwo*IOmYn`l)n6&t@HAx3%71?~HdK#suu%_tnsYB* zZN2VUc=^6Id!=rQIggx-Y3n<8zQ@v|w1t^JtwW2O1&*+@c86)*p=@*Ua`oA~(}k=n zDA<`(NNeUDHpPw_G|aI*Z>#(%!IF7`F0%1XiY4*2p})?tTOWo2#GX2b(w&suVt>#U z!=BZAv`$0kw!)u5hJc{#>G8=*Jm6J%ckXa^aH8L6+z{)uq$4z+l9O12RT`&s1}@h> z+y}8OI6ZJpDDjHw01eOCE=>&%3;-zfGk9wJAO{#`ATyQw*RwNudkFjc8T*fa$xKfD z1tV|reS$Xzhs}85Vt%5Kad$}eCx0EJaR#Gt_*~sD#3^084Yu3^?!i`2vi>t@CpyFv zZm|0>(q=1vxbTK72)as5+=tjENl!3FPy}7jsNHe|-)3j0ER230axz-5*Blw_BkHV; zIF?6-j-h-g(NS``oMcNQrS=R|DV7S;nRD3-+0Oyl3^K$Ryhg9bd;$?fp??6I96z8x z`&pKBI-D#i5L>s088ht~@P_TUqGiYxFZNH3O`ex{s zAazpFk|cy87HX_)H_z{^`+sN8$7yx{>}*PURFB<1I#;dO$tHFG8s~3?KP!q*FnACA zEkMgiknJ$+A#?vEiPeN%zn6;p=es6#_b)ggW~K-|Jq~a>&lx;rF6{|V4{CxesA4i2 z@VC*^V+}?S1)bVuQiyF5O&-z>RuVL7L5$$rOg+73dq5PRgd}Q`CVy$@=z32N=n|_y z=Fsv>_j-Dk7&92{P_s@uJ-xGz#b%pp{Q!pb)1ZtbAVF$#C_mGBeU23a;R_@;NtmfnA+4XaK2nU`MA;ZzO z;NAEmN$tT2n63B|>wnd$v_MbilC_Z+;aha%g8(}*+aCc)(=^`lp*qOt=EL>s*K!OT>xZT9@$t_z-}sA%>;xwz(OCB=Ce;(uW~z zSr`Ib`{XL_$tqNs#iFjt@^7S^VyE)?V+N=Y@EYNCbaKq(XMZN0zvL!9o!CK8UF=xT zPBcp3ccfVT2X@gHi~FTzGn2vSIUJwT82VLSTQ^tcD%YRXw(eJ--!K<%nF}v#TZ^^F zH={33VFVc7-?e%FJ^9m`Wi#unj%Zi2btkRm)oi|$ogOYsd&_cTpf?)WT*BJdo}Y@_ z{Ll#f9;G>vbbqg%`I8!>iHZRP+KFymN@^ocSV0>~4z=0Y@^t9TU(^0oKTSi=wx*!^ z6CA553TG&^CmeP+!JQdS4#C;o1L7pOzTq>}CNGl^oWijZlxg4Pb}7MqoE;s{e2S@U z@MB%kRY$qJKr~*pH!cwO(1CHJ>~q^<(Vx zaDVs%%eIt6iV8mt*ZO4Uv$*Lt=HM6sCqPkF8HIXPdAkHt>6nEjr}b-MapiE8dF4`V zWv$VK8iv<0G0Ph4|xl}cl`qm-^+ zDQ$kouJmgEpI(AU)*&> zE`J3&j=se9#@*V=lgjcO0m<-4S49ER?nu=}lEJb{J)a%BkO-prX}0p;H!8n9CiDea zMl?h&xw>S>x4=mHXeJTYhS+dgx@|sLD!;jc(e?0Yd2QCh7zr~8P~iZ*ikyzQ7QWaD zgN}>#da#NKyeyF#$0SuVSchE^fN*f{Qy&6Od#iHyCm<^BErN6}yC?q5Ez2srLkY^2~g> zK!6}t)dZPQl55iAo7KWh{1>aVF%%$Pk93A*X%~L94?~uq8_H%rO#}})x1^58RexQ& zTwQ-=&bh~g_#+AMI>U$%!@dbgNK_<6QSI1X14+Ef>h^Vb3zF(jI)J2LK(Y{u>-3U< z&juzP)~mflgQY1mQn~L=qK2Lw%h7xjW614jJhWWz{5;OwD zOQP2C@ILE52SlVi2Lv1991TN!Cx7%rXp6Ir#ulw8;CKmgx=K%d#bJw&{3G^~<96EO zq1K@g7;H4;-i=*S8mn^h-$(v7M8NQ@$jS<@;2PB=8cV@|GOFh@qsh?2&37@aR6>AQ zf#Vp6sJE&OF3J5T8;D^i8-%L%Rr5h+7GV1K84Kb7iUg<{Ak(D=aI5BnCfPz9IVTk;vg`GX&y&z8<-12&lQ-G35&X;&)rWo^TxZ+d6HeWmG4zBrjH7IU6bd4IG69WqFi zJmHiCNwLv0!|fO@M$t5TyKc_Cst?j}Lda`BTmPihX5@S;G(xQ6GxN-!fFLjM2E%#c zHw=d)R@ZlfHJD5k#6hQrhnIlrPufgCI~#GDj5h7TqNk? zsXTvdzI9(qgj$ov^qu90<+b(d{Xe(Aeb*HmGB15?ZD{-Jc}qE(i~l4ba*l(d%At5$ zdXe}<{*!k^%9D4n=OfT)y}a>Lb@3{x=d;h`9Uwv^a!Q*+Tb4I7JYD$g^SBwe8!nGk zjbkaow|zp~IjLm@M1Kd@aHd#{8`rc$JeJHqXv@*f;re9wxkZv!MM}+{U8+8ONW(f#RKq}M?DY>=N7JtEMLrEhzuec{h7Z7<} zS3y!U8iPU0LT!@7ezU0eL1?HoDR}nIC3tOXx%&Kuv&F91mPPort*@i6L$M=c<-yY~ z0+6}zWo`DW=x^1(0VU&rs{lK)Bh9gJXq>0_J5~#0U&xprM&s5x^%g= zb=$oELv`cZ$`2u1$aMT%=9^dLwcC|PZz}UEj_Gdw9^?BU6S91k3`-B5IykY63-kIz z^P8LIlizE9KCN!t3(`1?5ddOYj&?9%DsXhyf3TiNd4I4Tj_!&yqKo$y&AC^k(cOIp z>oF37A}@7$5m9b3m)xFm#F1c2FCxe#wgw^?R7P#2`lP^g_4Vt9A+?SCo%ep>(E1iZkg2Fr>t!Cl!bUeG>F8ZY255G`JyL41ohy|GY# zasg0e02GoNG;~C#TFB?KV~MEUv``a$krNc|gX@!{w|=PHdg{nc;!;wM=YS}x3GUxx z3z?K^!cYwsb)l#RFoq->Qs>i*{3i#B;U@=TpMO*88-{Z(-U{FbD*%tvCq0UJx$0WB`yxlA;5r}bm!rLuV zok}pL2YDBDnR6Vm>a%aUVmIZtOXaoM>is_*m>q=U=;;dha{9#+3m+t}ij=NE)Y1w8 zMSlVUNa{>S+$l~=%3vvT;h)>Hm#9t5i@pR-kXyfHzS*jL^MZg@AghR);Vr&M60My2 zx1`XDWzL%mcalphJhF^l2GEWH2X`)T7H6w-A=T+CI3V_!)yq)0I>C7^Z+<3qI`$cB z&G0fZfZXns1H!XVV5(T|-PCL_@!$`8PJb38MP+Gw*6kCNquP+KGZF@ErRn%*EFEjk z_Kv=1D&^1)^}E*DgHshGDT10*?`WS+7r0O+nRJ9hu}PyNmSGhZCU~^hsCqn^)PiR= zC5>7jWRYP=hhysX=*OBvS#6<<*z#&<4Vmzr+!JO$&fME2cjv`WOSPH!IR)?xOn+|s z;!^PoY^ti~Gr4@+z9X*3fQ$+iR!(XXQ84h-(K&)8MZo4Sox!J*vFu=# z7^S=@iBOf3TlZZ@(+Anui}dO7oVj{+`x}y~SHu{cigenM;Hkh78@p#qYs3c7RmXP3 z2GD3bvGureX|;0u)%Jbj<`Z^TL4SWVa0V~)h@)1g8pnw!&~q%&n^W1TfZ<(#959B! z7%Ig%6Wy$P5_;|I5Gn3tb)7`I394jpf}GUy@4)7SJbdEJbnMNKskCypQAlh=FoFRT zpwcd%=~_f$n=m(){V%$gDL_*v`H!88Gl=fx2P;zxr4Fbt>^ORB>^G8C=yP-=zZCk*M<_qOLk#Y zD=+zD5h)VSDNMW-0*ywT&O=}8%$B~b)|qYCg#pA~))@`c%$&Pwu6<>`T_Cl~?1FoL z1ONyPRphCq281|{a|&ARqT3P%((~tX`Rpe{idx8@&7JH2&tfpM(SIKotYseq9?-sC z5ALe?4}XdeqjBRpz8T(2zuM#>BO41Z-+QQ%aanlPdTs6Oi}I+!fw>RQAf2G-tL z4T!W;g#yzc=RfyMqCWQwQW43uKOf?@a1Xw&J@)2lw9+8A)A+^DML;?a8I@WkR~+JR zNYQe|(sXWgrj(7pW`Dbjrj$7u%0U{fBVFVGuv3JSXr35TmD}Gy>J05r z8erfr#*WfR3@@+EQ%e8YW0N$L{r1vAWqEyj_FCn}f5o*=8VX_i@w&ObKxv=Hj-u#m zn6uyb?`Xi^F#rb38FGRvDz(DJ{6vBzm)%%)AIas9CthGUL4Pq4+|Q#vVJ|6&a*AGq zBZ?CR2#|qF_Mby3g`GpWk7bQ$xGl@SnaeL7``WXbk7W&Z&ff}usPIVSy4|wg zV@gv8FQFg{7+IE*o5`9m6Lv?wxG%RuEp?$KjWEO_)uqdh(Gaf%n;M5*3FXVnJ858ye2f%F`L3pu?4pDa1P88&Az?Yd+kX#!#3P=sUNKkRI5Q?1u~u{C zhw816CK1u=>2#_0U%Sz~y{^7)uU2k`98^K{KE$|3M$lcofs@+m>&ox$R=57t$^%_u zHJ!HW+dgS->srf)kjKXpQ9MY$h zRUv>cQW#zr6>1J5W%#y%wRe&glBa+n<-_rTr&E#*rw;sfC!w0XCd54>Nl64W9w!4x%El){))Nz9SNID zy3FegwU|*1BycKwaXMF`VJFn>cH3HTfagH2_VZQq>OBHzaX?g9h2CuGWHQW|;kHaQ zOj6XRw(_nu1D1N!hovh&9D^B;KYcrEUVr(6fc|+wRaKGc)+j~W=>JqUGoFanQT1WH zem5a8Fv9kam(98R=Ei#5jNntn=1;JQhfwD<+L;Mct_xI9-`;)~sQxp0rO-2akCiF- z0`bj_{q=5j{TX4c7`M-iUjb=?%ut_H;Km<8;VS1p+DZyN+R7jF9GyzNxq9^ZV1LlF zdxIW9Xz(J67xW~#2RJ*W1@xkGVM-PBRDkb{=?Q>>eOmu>hN2?|(!S8m*)Knvn=Y1y zEC=`fBP?u`%GJ*rf#{qIFek4dIyjG?K0Qo99?{5eXkL&;_X&F03eC%gPD*HAq;hS( z_SL2XtlhgTyGd~L#rs`L_)|X6S$|1|w$|)=%6CZJQ>jpS@YHt@Rb+UDTB5x9$Xr-0 zZ#;GOTKVo}b>p(LQ9Ly3*?eX0``YXk^U0F+_g#eB2iTt7sJ$a8!en%XQ8bZulZkkw z)$;T5=2rFgZh;97quhCA&bq?@p%$l6#<)CdF5a?p!ZGx{#ATbm7UnFWhJP*mD}QX? zc|oOnHwkY-jb}v`#9O=GFigUtcpoiKMbA5!usEi?_6rGfuu$Qx{}QFjlhiX7XCo<@ ziA;VhPzu2w*fIoO)FJJTaIs*kA=@pP<_Pxk+KbBT4fFaVhdP~HA)L%_**{lal{dbx zXRO_$FoD1=FnpKz{{R30|9}7NTkBIA$rk@tEI!>^bt^K%+ghzckd0N@TsL~}-EUhc zqf$YJ8pfFHC)AkW19cMJ)X8w!q$3PHBBtyI6t?LIJy2sP! zoIdAw9^FiIj0VGUr%CWfWp^~_H??e;%Id4B^}KZ4jgo{;G@ zo}|C%i;_h`ig_O(&(to%%lPDHa&1>vN^CZ;R0yc`=UNOH8_BOC}EH4({rs0cyx)ZFq zM86|Mw`~)gwIkw}{Jnurla04Hc$dv)BBQc!U&f;j{RfS9NYP;6PN&Ii_L?m&XHR*^ zD-8R`Lo%MBKPEz*E*=aA(0ju{DJtIzhS3IEd9%)*{)Pd0w125rN;Xc_M0JEbOH0Po z*OO}MQ|-oHbA!z_Zvp1!Nr0L6+Unt7V~o7Z;&Rw57RJUH>6agb1oY}Xf2h-BId6x9 zqIh@AFWn_(f!+yXr?6wfVgDG~$e#zqA)a?~PM6cn8Qsmc`(vSwXv9B+2u36!DoFPP zQ~=!0V`d#p&#a&qSyhF z2Po>Hcn4CuFn)qDIGIDSS;@>@U{C$C=#@XMeZX)A|uOghuZO;ea3sfj<9; z&@Bo6yTl&luHxbm@*}X6R`UB=Y(qVJ431-9d%IZp6>jgV>0R(-LCMUkg#vv3Sjm4> zatsn27P)U>hcd04u7R1jnm&QYQ!x1sB#$s6R5(p*cuWOD%ISvs_zjpl0NFG60;KvVrEQSx_)X;kf98zyhk%2 zm2C~1BPflu1$MW<+>Vlo;bP@*6{h~EB7PYOw;cUtz&{ugZli3hq2-zhlIqKY;$Dtn zknHVap#LWexZqiO)jTN%Zj74+CC7oYF_@gyfqy4X0CNe)a*Cg2D8d#!l?Cxtq~4aW z=rZVQu~|6(Uuw~Mbc#P$V>2{@HNVi!fq}lZJO1!Uwdoo$1LAS;#lCvB1sC`Ap26fs zIhzG9R;diE?WDbK-eR`9y}Z@wyVPQhKcBMHE!N0dwZ$6wS3}ao+~{PwzN=HR=%J)GkjRH-Ge zrN)T#MYRmq()2-l`bpRO+>ZW`exyCwC)HB6wtr@Tfxk6R0vsKKX$Gv^{=WD2PYgUM z6N5V^3{~`Z7Ve!%Xm1wK9)ffh@x{uq8DJr;b@5qRa#nl0R?Pi|a0nhxHBXsEJ%300 z9cL-Hl2!7riaR=PgPD&gxu;qz9_PW=BSe0Mp9jlvfJxp56b4OJ`Zln zUlZ(sOUufqO%$26{F<8DD}zumzmChJ_(@9`0`1wAi=pD?2UJ(ojp3J3*#FcM9zkmV z*&|4DL(4UHnl@kFgcfnaH+pI^SATuVV1QbG|E=bU&@)selcNoJka&;mg0+VmA^{Kg zJ_m7>$XdE{;-4^}``b9sf%B zwz{31%|Xiat8ElG>o*F>fv^$jzjUf=VQ^B3%m_}V;mSvCv%0*i(}r-Cq<^o~zRhPg zJKRoYi90Jbu{qGKR1*RRJ@e1xQ0UbMle6II8zr|%<1UGJIKY)FdvF?qxn;GGW^zu# zqUS*Prh-+LhH&vW5O1ZU91JX(1e|`a?!ML2o(k4mLYF$~kt-~%6wheiymF(-aS!fS zOcxNBaC^U)oM+8zd;LD8*?;b~SiI&-g=ek-cy`r?XRG0)&*%QJN`-Zx)AeQObl7aX z!^5%GOn7{ZJ_JMeLL~)}%7e`HV%E;xRMP+9v-*sfoQ{kMkk6^96a_&gGpC&HXzR;b zY`ZlaBN+qxg>oX=JV7%HwAzAJX2!};PjdL z$BDL@(stJx@Og*R-s5mtaYA&ZK5xgqRmbOThJ9XJe+UZCE_8c)xzevyj+NtmZl{a& zmDq32SMB)dsE%^T?LBtN`F1+>6FQDTI!D`1Ahn@nXD{BvvVqm^q0M8r@HR*H|7O+; zmZsF$G^4vcUtqL~?ti6rfW)z}n*r&@XhUo2ZJ_%5Zs*;c*JZi#TGP(g_g!*cY)Dy` z>bp#CAt#nlV$rDYmUURWhYmaEFk9W%;wuSX@x;sYm_A9A#UU}o%4O zk4|hbbZ#sBLsX$?{6A=HqSNH$UF2I()Di>t2{+`0TmA>)INl&SH5|Mz=oX465hEp{ zD2S8#j>OzM;(r7#3ET8Nz@I)(dc@H9Sh!-oG(hV^@n*L_94LSKH~myf|0{+1UJ3^A z;|ThTXi!l&JFnZzxnZl#s@Iw4hFuoD7jvEl=PH?N#WFJX)ml%eEJR$K)z!^?sr^of z4AI}Z5JUO~5U#5?057k_%Uf$z$ z`Z#vCPYuhfra!>7MFa9;J8M{6&f|7?+#IuSMj8;8UKmkhGX`WO-qWzKb`N6HdzD94 zU0Q4kUmhcuQNJuN{zJ!fe67AA?ey90-8h69mqVW+h!hou@`jp8co@Y%<+SJ-dSv7WKju#s zBWT=eB^E9PM@Eq-oYPD`4vMlYj(wgE3Bwh$R0+*Wo-M4q<>U3lu^rSClM;9{Pgv&?v^s5)+(LrIN=%G4OyqAPVDSLRjwl6SFaH zrve3IRTU1nlihGEe+2jthl!m@lctl~rhNcK2%`x)j3kWx_LTqu4Q>WVeIeu(`{`#_ zyKsAVqPcg(QW4H}es~r59%hIqgdKMN?_W=gt?wxfSpsv;@XkMD<=^eUez`5z7crs7hdou6qfVgMA%Foo)h5+u3eslGy-0-mM>VNi0Je}E_mgK8!uM_4Jd;R9qx zsQd}`f3f8*5>=rWm1xCWFbIA11?!gqclS={(9T7N4&uKk-!>w)ue+nVie06ytl zY3D1)#IAOKoG>c-+MYG)STdM<5{8Ue+4%j*?b%z8UQv3k9=7;##+J0u4cv{fbE$~cxITVM_73vSk3(?WY=V;Ge%P#HL(*#yi@ckyF zJ}2fSe}lqwa*E>T1LG3D=0=ezU(ZyaS7pGC<{;ZkHN~gOZqH9MNpm|%3eUDgf8YBG z^vYPDg&`^|poE%B-dS61_m)z*65{H&|_Bu#$q z{2+K*ZGz~bH9g`K7P;=NSh}=ByEWL~g34w_C{c}0=0(YfGfh}gy=7kB%MUK74{q-7 zx9g|izpB5e;-e?&{Zacr0FyCp6o2WNzGbum006`b000pH004Jya%3-MZe(t6bY*ic zcx`N~mdSFXFc60CQ#J2Ead*Vxm5QB1Jf6yRmIqKIVW^;`Bw_5gABlZ}Ck14D5ORzD z^wX_wczn9j%()P$QqK0S|KPa}VTj|Do%inVU#G>^b(Dq-!;CYscW*?wPk)E6UmlBy zFwD3n$}tG0qC%j(n`kW}02E3Hh3bK(NOHwv{eUlrlTmA6RSiJPSst<(On4ZYX^3=8{FV|DyG`(xb}1zO)`B8@H|5ZU@L! zXG%A|a!l+h_ajF+B}|u51CnGWj-06^6>WE*b7^KVX&{%60&t;ObAMkU{E?;huhw>~ z($E3N$ggupvr75LMBf{cO^awf#z^>k&qfI~C%D^qR%m*`^+z_J1`rGYYeYuAEE>kP zW&qSxx8n~2fi261K@lTA_yBD_F~<8EQK{rrs0|#0qYAjOrUCu zrXt288$m-{_K4L1%YQg(`8a!IWa#IC`>1(D0(?FF5zot6q)jMOa(e+2JC1Kvb~g3axLxl{M3^;vlE;n#!)q{IIned=X7L(KKhxovFayipWqfCfU)CJxdiiNsQmj-sez0>O z0l8k%%{1I?dquhL2V}6dZp~E(fAY3eOl7;u+L#>joVBSl&sle6rd}&m;(650r^#dU zwy{jK-nYW5<5RZ01~OgPUl7vSezQRe^@I%ex21h*LyEUC4)!r@+D_#GDGh1VCMy?= z5$9M3+vGz&AYrkju<4`$Z8isQ%4S=c=WO<_@akmo=>d@!%2bu(vP?TUf0YBp%j)F_ zppaB~t&8kvUh5K@N13=0_CjruLS>|0H8WL7&pF49mqJHrt`+a;2C zKHX2YxU9Z%nCUpK=m?D?e@u2HJ9u@b{>RiSB=QL6H4idmN@p;iPS+27I^*y>pLO}f z>$Wb*WkyUqj9`g>4&QMHf6lJd*k^Lrl{u2-a1~Wi#coMaWfJO(~h%Jjr@!=bMiAT)`@HFybT=rao+WXe|zeDNRhu2WR>$w zMLCDD1(#Wlx*!)BWulP4o}Q50c<1DWR^Dy-jVHt#mOC!W)#KHP=@4yovK%;~>2hkF zzf;U1k0Hdeo)a<;)LTWQJkx4TM?MwOIcn&t?484Rd@Q^MHB`=z%(?qYF92m4zhc5+TL%x;Z}=uYuGIbBQ>iFqa59c)MQY z%UOhtaCF~m>sU8RGnT^7NFs8!PoiaTe8TjxgzI`b_SVaokA?X%tuHQ|?yoGGG5Ym}O!(}gyvh5-rj>v>71=dW#n9Npykjl~4 zAQ$j3ALHBNQJYY?f+(2O*g^^RG8`Wj;yHdGWOCj)*x1-#2=1z!+Z8ezk4=s+dlEs; z8B^j$e>esiyl>1Uat;m0xP%w5VGm)9fs@%`xqg|%+X2FRAe12q;jS>6BNlyep_|dLLDrma|U<&tz5$tlTMo% ze?t}_$kXIJhLDzd)Y6%(X@wMydW3Gxf#Q2u>=}h&OJU9$b{ys--c@wyi4Ia%a}>pJ6>u}BA!h=JqeQGRg7U64q0 z>`@BotO29(fg=k-I#<)lmGK;vio19PegQO@IP6ccj_s;gPWgpceB)S6Ea6ZeBBXQOhJ1I+F-ReSD=maHwxVN|Y02wWt*a;G zaPlNppIDN|8tY-*YMg^tr`g2S8A1-3RUwDkmAEUJnXa3-j(1L073<*G?P=$Pu>T{Z zW|jxt9xU(Jy=SjlNZ@F=kZBL!e~I(-wv^c3iNjc~)s4fNgZ>%TawbxUKkUM=*)r`6 z+qjY}4qpyhW_VeBC&V7cwxa=zNNXOxbE<05N?Xp7#%T|ymg01YqwaBf%hs(B&lXpl zVX>_oXEdBuj58hTP~wieFb6Nm5PoKv$Y%uN@)!F|LI%e+;!2L~Q6ZJ%f4y=WE7#(r z%j6T{Bg@3JkL)1VCnJ0GfcVOhtRyRq{j6kUz3|wCa4b5>?&kV~v|}jzHoF&y5py_A zl&ov)pC$=DuDeaL#F#>oEH2L6X|FGiTP810f_Gb12-i+ZE&0PtgNZChQ?Q-uo>EBF zoRG$u;uJ5#GCoB!`J_{dePJ?xwa;jll+P3G;SC1qPo zNN4GvlDrIFofH$-$0z-Vt(ugtS$U>87>*jIoCfErQ#r-?LnTqg+1t(2EwFC_ChBO#6DbrAz|mPd%;stF;DIjh)E z`1D$FvLN|8vWJ=Li!?23=Z&x(Uz~63&k5;VnO$7+e|&nnNN;m)s`%JB?q9qdO5Rgx z=ffI=VAwY+Azg?0MA!JdOo`$j9)YY7_S(u06EMZ6a5(i>QmQQZiljB4jw;)*;+@O; zNc;iGoChp9RJIRFj)y2)$tiUnTd|Qnej$@B)lzo779$~YU7C>0*`!j^V4Fh7JgiQY zMrXRNe^=-8jiuVeeT#$~YCTGIl{HhTKC*T$H6_mflx7;|vr6-pV*wjs&sE4gNaYp} znQtM5W9y|~?m*XFDuYKLzdrN2b$eAF+s-`jGqSk&^jaA<^VxDCgMH^RY`%{vU*e4vJ=wTwiGhB#<_aCxXM66>|&l1GMV0LxEx!mLJntRYp@6T zew4X1`v@!KalNubk79<2us;F$Zp}$#y=6Ts3I+#A}itjCP0=#^D@T zl}*9tC~J0;;~_Qs!>Og3W95EAHK&X7GD0TTe$`?epVX)_y%*T5lB08M6)hm4s^ZZ#nPqiWA8WuA(3a=wt0DYMz$r=PP<%Yz0j_3f2da$ za;Rx+8X9|GLKa8&+s@4JsLgfA(~3zfd)2$014r4!K9OS%&6<7~n{~q?H#Qq9M|GRs zMcar-V{s)+bHQ>hR7mBHp+XM!Xmc^M{%PJ!w(#3-PQ-NJZDQ-Gd4Hl_9}l_ewvU7$ zF9`A6J*sWtf|5eW;!JVdtv7i-e<2!W8|)ALORzHv~-2T ziYA*lQX=Hg^|2+NI4adrw1=@}TiKUs*(J8cTK0!tAT7sv;Km(lxqzckiD{L*y0k>xf-a|5IJ`!f26Pl*=juW zOb{};F0Hle#KFx}&ib~N4qZ=LzZ~ZQTQ{Chp0sW+uHI}t8um|xkD$B(fT&vrI3@)Y+c?;~H3Rz6oGDaO|UxdWNGtoPae?9dW3hV7IE1n}I zJ?$oi2V^>)Y4VGGjGp45F0H3jSn~C37R%9|!*|yO{QwDE!_>2^4W`kYD*G6{7|XFI zA&35>Le@bd6<4_~pcjAWrPE71$kAS}L;X&#=1?Qkt4-{0_v##<1nAXg?lafr8gajX z-geiK0}{Aba_`sRe+-n6$$c=oL?6e}ghW1%(fjT)z)19Lj|yprweHCrWJphkK3QEm z%K6|vOywwbAF*Rx4@|vdf16@RJGck?LTa?97h^bX6(xh zXAb?zhqH@y@NoN-03!Z6Sj5Ahs=o@&asV7rh^n3d+#HqL&c|%!(9p^UzShOjBG5&uZ5HY^=9$h z;Tdl@W+&uucgM(avWy=&8LmqclDVQ|6nn^$ZiLUZjS?2e28XN-_6kOojl}b*HgMJJ zs4nvP5+Us%#Q=doe!qlposbCBANHq)z$dPSbneeLYP>kAJAc}h4x>Ky;vFp%uEZ2_ zqWC60W$NwM#WC;E{ovZ7(Ziw7+~_f~r8cDw9!ye_lqTwvhl%2|*d4w#^R!nnQt~Qy*6{h$pq0Ba)46cjg*V9JBUiEZ#aGl+B zveJ+nr;CFlW`FyDCG(Gv!Nn`uLcWGPPG1^K5O0i4-Z&OpuV0!P1QKJ~7hIXISYLMrR}DSdvJX}Jtb zzFF*{?r9c3+1s5Z9`2Kv)gnvNbqs zu5PQ%+ z%OtKon}5qy?lwD@FKh*90D&dny8Pij*R^}<;Y^n?7kg97ILG|6Og!W$mo<*{kC4gr zz0119R)CPfvUgd(Sdwpqb9y3b%ldRV4T0yQCE!X~A%UwMg+%Ux zR|~IQkb8K>9%`7DBqGNgmJf^1;4U98jx-7he18wr@+q=56EZpXzQVrriV-uIvsSQ& z8wytl(ev0O!#L`(g4}K9xsVR`fvqU7fH^CM!qRfdcjo-u+I{MI1iJ;p0dbLgjtDuN zGg`?X`bDp7E$5I|PL`vftL#HAjF`rGj8%4{Mn+_%@qEfYcYZ)7+Xrh`=<_aA+YS_8 zWq;uFo>t%4Mv{YZxPfTZl)2;7YVL4D$C9q+^R!DEojtwPQsNV0t6%Q03;jy$y$d~We3}^QcIpAnrkJ?r}2bLJPlzkV={96z85v)Su3-zp1~?nBTHH-+yKH z7mN|Tqh>Ou%eW-!HD;y@{Svcp0Yr^qWR7xg6JxCn$a6-jx#Kx7Bk#xap1R#J2iHIn zzM~}9$oxcUXPEFMJ^*g<2{7Nm))rz5&7s?w_$?p zNAwCz5Qf>ljdYA#n&7U4b-wb5-$xA#HW1`pu&kXI$ZWl&= z%)X}*BQhqoi)+wL?4j~5#OVuq)g~@8nNN40EbQwpByevnle|x;WrU=Rr-@9`iZYF+ zlq^e^RJ_M*pGn)|!aYsn5Op`%1kMARyj4BY=6m2p9nrk}BH%rmj%Xf;2KYE%u@^O+p@R zaVLF&xM{+)mO7rFGp&o>aNU|D2xbJNmO?>q*L1rJY!Pvm zdw6Y;Jg_#x^l=rep*4NRfV~4vU;CPRMy$n{of*z?q(n&IyFbnFhVL>p)5L z7!wkb8lGJ?)606nU6@|JCVwXwk5xxz<`~evHnZEsE4obLERR`!2Y<5=Nf%c)*?qqy z_C2AkRjUHNWdCEYfJ3d zm(AKKiG=g9Yf}j$E`MPJ&^pz<1VJzZ==$cl_RLTx%a)W{USQWUMT;KDmMQ z@j_C=yo~kT7d%sJ_dQTd2Yy}-dkk2=TtuB^_embK{lyBNYk%Es$aY|lLLq@WE6R-! zB_N-MbvVVik%5s$8=dD|j*Z)lM-GlL6znWw<(+bV!R~I&{I;}fC-IqN{Drre?aS63 z=5l0&Tzm_ykWer)ByH{!>MWb{!T+(jNzown<|)p?XNnVZ;WI^|0zEKWf=x{EB|ARl zBV^wdhDfmuEm#y=l~BYtu22E zK}5Dc+f`j$&(gB@tKk_nA)d1cc5KTVcW#8Mp{HlH)m;B(hj>J@8;QL~tgeP3= z7;-o9J9D?$#{H3+a~MIlQ>H&=$271ov3tiZY~^^OoxwS*kC*u-3meyZ4$Jjo+kA6a zfoE4q3#0pXXSy(!W>+_nCG6^MVKsk)i28Eq18yX+MqeXVlvVp;`;OH6?qYkas}cM9 zgtef%cdo}XHtt>9AR3#ydgShF&PZ)zy}vWEHL&{GnH<=vai(0{#YKqqNL5ZQe?uQo zCb{7nbm>{G02*M|yfYlNbD?3ynv)&xP{zAm+k_k}<>Nh`uyn4Zj`n|!b2IV@ zSXpluchnP-IO^{Fz7C9Jh>&z)4AOZG8Y^X;kJ3Lpf|wlgkMqfPj5#EmxoIt7yUOzN*ObEuE=Xci%UpctZAzW3FELr5@)(x6~$q%J=s)OVydb>e+KNr z=W4dxo5AglVCWq>{hIHhcXdXKr~c$cNQB_(G&$l-RV|o?{ol4~zA#_!T22nDs9dY^ z0r@*s5)OBv)x;ebTx%&|w%oPu1LoRXzuZKB&UNb=_G%I02S&_Xcad-Nc5)jJRzT0Y zpaPL*ElY|%<76(`=QUZM4jUp%GVAH)=RNQ=`KwL?`_Coah>~J1 zUzy(46~%Yq?+UplR3e9FcKrUfjLVttD%jcFte>9(Gz$ zzvHc#WAXBuGM=0AmrO{^2m32td>@P79vI$hB@U6?p*@wi9WKn^dO7b7SJdx+q&WKZ zLJqM(A%V}IN@p8`lFyqiGoI*eBLO{1Z&oPiy?c3jeD905Mrxa+rMI$gv1Y+b>Qs~= zUM@z!E+KN6;zD23+m^VGnWX3;cj(=|S_OB(?Pg^-Q|Dbqy7n$wz9q}M}J@F@i^RmS&!P06S-7g~@)Y{uJAe6=!Eanv>JE`f*?=`%#y75MyuZ{ctw zjF3>VKE$_SCR+HuEo~9brw3!O&cXMzTZSFUExyiVzVa zaY+!{bAK@*pq?)jEKc@2~yLL8qUm$Xg}bz=y_1k}z#?8FHAPW2h& zdLjBRBHQG{{6dH!Ow9TQZH_|^EX3|I#{ENFDWexEtJ`OPUY(RJS96CXjfFmXNG(L> z;56ce5$BL3#W3m~vI!N>M22kl1r><6T||qBPYWx+Wh3rOuMjD2qBR)uuHwa+=9Rdw zdnhs!QJV!>PaL5Q`!1|Znl_YbDte)zbQwH2pVA}W)){KI6|)FJqQ|a+p^nR79hVTx zJxfFLp<~Q{A+%&2dWWHveQyIJ@=tLWHgb5T20jfQ+H?a?riLD+WpGb>yCV94nx^$E zk;X1fz||R6?lV$|T=a-}+MS$>EJug@NsQDBaeQ7TjBGMiu!d37Wd0dFB62xv`NAOS5$s$$IMXN zWqT-p;uS8dH^%f6VK) z!_;VtMei*4PZSay-uW1P*zLg)iH=VW$DMY@T$_}3;Al~l@6NYM39)>qhLBLuuaCYZ z?j{%gh!OQ^l!~z!6N+*+8^$1GFqSRvxMM|s*sFgd6{UZa$;CY_grtE!V2o)8>lulI zM;&vD=;_5cTt(UY4#BFUeSr(-Wnwbd;x$OgN3;UOzHwniZcOb;nB|FS+KRc*`2XlS zlkCcM9Efg7>;Q7ecK=JtfOC3Z)%lZ*W1EslFwh13Md=73VyYLjzIr+3$Byq}>ui;O z`%D%4ScK$?F-VJ<-B?3wBQ^=HVA#j1TQ)`n8wn8^&B)1Zp3?XR)a!IqxfW8`(=(Bc zi8*9jF_0O*>FSx41T0u5db_r^+-m-rZ37vKtydrB#BKkzXdxm`9Ba01$J}LNcDAGV z3vJb2y64dDY`xJRKl3uz)#zXsp5-Hdr2Y5`r-<|6^PHMl<3@-l?EbXV+QNvlm|*=- zW5CY%I`fb-(q=1mWM46BW#={41+|;%!tB4@`f>DFNXpnTYB%ca@EwRN^E4C_vE;0x zJr7@)5z$+;E^pKyH~I@LL_7=cw2ZNJd)GVP!9uuu+W(Xm=rsD5b#K#76!K$#E>9Fi zU)0DIQn}{GKhGIsLjH|nXcL9l!0K8d&KW3=Y&|l_PylCTUmMa`2an&tK0~pCR&}Z@{X9hDVE_beAmPd#$%vyQ#{9%oMnYSr|i~AsI z?b%kfrPshKIE^Qpc+=&G{c|pd?!%hkKnB)0yIjB@*3yQ|7+Nt=$b+7Q5V^wmeMI0` zv08{&4c^J6eJftcyYvsOE%eZR4AJ_bNk7OkNot|`` z{y-XcgL}{EVw}%=DT()gbuV>cw8*;^o(&BlZ zkFzkf1oUZr)iSY;%hxWGIp2DDqNauKTpM~UzE{Lf5z)C~>o1>wiRWT_)L@{$;HUoZ zvxKySdYyj!Tga7#B(9nBbL-?&e{SOmM1CX8hHJakdCEczmCsnS;CF_+BOx!RhrXFV zxiYA%s6+ZazA@x|INPds^Fl?Vu1k(p1$#v8Fh< zL+c-tA$T&kzCmP*2`TaE@GA(J$kuhqe1l}Ky>7v&r zq*P??vVNw?(FV*orYdcugwN>@?M81Hvh~i16e?SZ@RLO!}eBfV!fDncVa!R z-pnTNx5!Xp9;3IF8b()yRPMNr?(L4z$!;Mag~IWg6RzKjS;eSCf_ z#94U-BVFWt-B#>UM(V>@w2C3$r5Kqmmf+j>{;cT3Poc(ub!+hwj7bChe$? zeI_Ak7+SG^E?a?J7rn;qHm?gIULu?t@U>`jnDVw}nEFA4{7 z1usU;^3SXo9m|MV1zNGU6K6^Ld%8_%_m1z&?4u7kSv+rdgwh=5z{WRP!FM3U*~`&w z{$rwl#Yok;u4bf>c)q5P#yU(x4tmFLDx|Vv^~hh|IH7&yR0nEIkMOBc)k%n4e%fy% zmvpc;Z)7)~ur~6j6IH54em@lKM=7@P)Q^zwz{vI}y)K-|ImD_mW?upsm|Y&_>g3~> zEAjy`LOW`1ui@?$L+WU&M%1{WPS&Vq8*B4_Mhz8ZUcvq`%T)g4$MFLpC8LcW;Vtkx zXkHV}q#4mWhWYK$uCv~gm_~8T@(7Xf#T7(B5;CD-MQ4kDTPa*=K1@sqBaI_UIxyxi z%-hAgWauOq+Yo!TVg`43G%@1&@mwnUS;Muj`FX?!4Rd-UrU+n!c68A<^y`Oc=Z~F# zD56*}M=5?(2HvMbJdyLxql=|s25JnsS!`X#NE>h3F=pegiy<~>*mF0={V}I&OfQLT z;`GLIzJ-{f&orjq8&*4xzq(so!P?*C@3W3&K8;If5k1PWzwk{MNg2I@v6BtdhaJ1L ziF|bIAzzP?QwK(}gxHT;b6p<9!YRU7t}j~gRckvZIJ?Z?_=#ZYZ&yqtLA z;&}Im8p-@>cGTIPkrY9GJ)@!zBlYv^=^?9`-_8TQY9aC$=$q;;`!-e~26C`}a&e~o zRb;AD*W8CWmYLe;c%#qML*s=Jf0zrMX}A32@9b7F$~MJ1c_z(FPwU3D<(fDnEkt`1 zf2Kt27XMDE$xwe(h=@FXg(8N6Rh9C;>cJB{YqYxJZ>ze4v37FSk~`|*3$YK+>8v%X zIvBB=aMiVaA9C10SgmcIW;3C;^9A#g^{^w^*h)NG5u?k|Bk2DdB=OJtYx69KJjeh>Hb62Y5FJ| zd-7+faUlzsKI1bmVjsqCr|AubGPt~g zRX0XTX1`+6_~p7TM`Vz5gvJ^pV#-+AGe9Xi*^CO*A9ciM@(KOXk~b?@}@MG558Exq^8tE#&0$ti%-^^X$sqlG=!k z6-=f`V#b=Rd38IpO}t(Q*0#<&ZSXs|w{Y#GkRMt{^FCQIJPS{Mv=`NH<_jGc{5!Ax zvPjSB#7eUHJaZIhzTt*Bqxt0LVN6JfJPG`!?_{pq5aOBl=(}ZNRBAps8OXTS_ctI3 zk@7W+TduEG&TFo(m5oejeZ39Lv8;#z;(lA-DIIf0>$`4PO}D;Rc}~hoDL2fCuVf*e zhsZ2EwP>Xq%Bh5Z4y2-uUomSPW00$CIlFXzR(T@W_@uRboIhQ%M+>Va#E|S^?W7QA zJ)u>f{4;z9azZcmA?tF^ti-WesfIa;)x<-1k2XsUedpDG*IWFUvYv_&jF$V%7Mv&}JaZ7f8oDD>^tD?`wOB?}Zi9YB2Y)Tn;LFQ$mb&i$X!g z`JB47jFm7#e$2F8?qX^9Jn~C;T7VF5crz{6NyVsAIJgA1+%e%@C2fD>JRnyb#}xJ2@%~H=!LG^Gi&Gz@r+r; zb)&}<-`mU9_^ubi(|gzJ@^tVlyiqbn7KHf6{7r1#Fg~j9*$Ug8cOuS($W0Z!!xi0y z=%ep{m|u^+%>HuY`RM!8J%^`$f30$EDv*loc1K4O>eTPZ?qV;35Px{r?=OmEXdeji zigf`yeKt@Xe5VxL4v}dEE7o?pp`*-5?x<+AbINIv-Ps~`8SCEy>Db#B_K0V02@!X} zuboF~Sbx29D6tb4+p@_#K}CpP%ppg1yQ3X{6;ioEe@9pu^Cf|B4f-yjxQp+tv{W&# zxr??N@`GJQ+#{60;N1ZJSNoDZJpx7!X69+7K2w|v`|ouAY~1|8R?i`KAz zu2UDSvpUf>OABvJAwIBcc3T&(;^@w*oDz8JF;(iUc<^(^^e26xM)ZRlt1?Wv<8 z%l>2DxPpCZ!g$p_pL}HeZ6`I3PKuI?jPcLZA5p`7yznf!Kv=napH(-X)3c0!XWH&_ za^|mnP8*EeFMKUV3M)zP7*~Ma)DG!Qeo{HrmAP094d*lWQr?)K6H>WiVE@(CpjCb~ z{zIgtf>|peb@M$Z?}IA__M3TPylTHySeS~5n9&Lsn&ryi_1Jvr5cJ6?!! zZILWUx_H;0JidyaxZ$Ke-e*CuG272#D_r=A&&?8@_Vej&PDXDIZESw^K zg1x>%8r$9zxeu&dJjE;DfG39iVKw(Dza|u(a%B2&ZB^t6{e>eRV`H9H`y)D=5xKUI zyPWpv*1-MN^a>K$L?JpRxHh?ftblst0{*Z_^0p^NJwl+iqq3q9Zus>k2=!}j(jdW)w~2-mxu$Vp)3@9A9|0iP$D;rMy_ z5r^fq>8oPZ_~{~6*vT14MX&9Q90CN0L?Vz8PduqoNSzqBJfk;%)~Y-s2EOC-jO!iw zP9T%-`Wf<$_}*qVt|%1Zj`6A^ukD~GF2oONw4WLCjPNVyrCq+!SBhL0B3XMB-{{Kq zB7YN&|5&f)EEy|iHGeWc{M))bJ>&;#)s9h|BcsF9?1Z$9oegIvWA&S}vnU0wZAXPZ zo}XRvWbPtI>!5dkc=jtl_NacKVodeOC_3hh0_n(z&l#oiU9V*i%(Wf)Sq(GALh6SV z#(`waYo7D+k2804$Dqc|x#h`?{ zm@0^xWI`&>2Ml-nVr=7nE9#37x$Q$fdQeb$aBVu+*@|p*wuVv>LhaVTl0@eAh*h$LK}apr-iKM)?Nl`sN5RU zxNvP%Zw_lpZp-2n_%qGEhjG5!JU>45&7J4h>%_aE#?5WJ^3)SrJJcwWz;G>S;egIC}tzC$o%ar@4!4srWS9b>n5gt9NLVAMAF1drydqI`$RVZc)|%rh#?+|g6V zNqcvU%(g zL>w?~c~|~X1#(xhiP?W4I;r^HR!a#Lr-V3vPjU-{b;IwnuVC%uT^m|eN=3u{~N*|njsdF40qY$74{FiLRc>UE4)-5Xq@Bid~2T$zF zdF99h!!K8EJE-6LbeAp6tiGD+LWcipk@G>;|Al@P-n37a_hLQ8tL6(Mw6AvYYkY52 zTo7-~S9ND07kl-#53Ar`OKqX&`dZBiJ<1njXtB=jHF-vu0}C}f)@Xk%b~dhB{A6Js zUA|%C{?lh6u7bbKnyeVU18cT_F!S(C_redPf2>IPY~+XB^2P8demmmB+!gcWA$LA= zru!5#t52+|V_$*ZjIp+(m|)FVx%fP^EAW(rzCWK}dAnSn`24o{!olH;}cO{yx-&)ad+;!A#{g- z=Z^NUe&@*vblxFy0y}1Zt=>KLVfWe-_jlgcp{<26ho|FsF$((hxjR-&KYcc=LDwM- z2jNIc7N=R76UubTHYB32*e8v|({dB{S#Px4QN z4E896$e-g=Qnz>wKhG&nok2o$PWee=MinvqK&+7(mXKuFE1!Z3q9Tisl?rixAzLJX z*CrcJ8Qk>6xN7o$LId$bape>vvp=eC3d9Q8HzCb1za8Ckp-06?a*AIEQZSPeh+%iG zkXr_ydV3#E!3f3s_K|NUBz=Q=iiNbY*^-N?ZeE+N=FRrHe}*+oDaMBs^2Ae&r`Y7> zq!WF$+}9(55%@;M`B0%r$gD=bX8LA-)b8U7W~AD1zX@^jON8_f zb+UwvgnfE})WcSJ4xXp?AK|k-cf+X!Da2<`?N3N*hjJe&WKXaMDuv+2kKMbv=o7AO z%}|9wd+7pZaz5vL($CuCIY$xqSrFli!YijwwQ@Ex2|7oV(CMU`>YrziBl zgpAsMtYGSYPvIUtmn)S5DTn#amBT_&0wG0j2fvR<=OtZ&6eTj5RK$ctRVDu&|7FGQ z%9kQ$ft1Yl?dfVH&q#>pO_8}kd{gEj#egb|sS0_yQLR)G;Yo%1>r|0ZOYO%aU$2*p&RgTo#vFbF8(LX5=dPkf$#WUTxzBwSberYSdBB-+<0Ps3V6 zE$z#NA~Hfs<+G5=XcO6bDyuAH-lL^15`Ai< zZ6c(EGy)+FP_hVvwZyuA7Rj3@4mPdc;Vd@~_`+Shphq-k}dXQWF`E(?C2dA^LdbDB?{ zEB=g}Da?)u5g#VS>Of>iac!$+)Pxbz^5A!{#G>(bPEof(6C}ggq?gKn zx2EV8>VgW%1v}ycsh!t$YtG0m(;e|j88P-)(w%K#6erzP7e*t5v_?7c6ot&rcS#8U zQzfR578xK!X2qb=5sI*koG-^TZM;i_$imX9^PdhM z|F&ZfnNY~@e8{T;LEUiud;1J|qF7LW9;ELgM1B_9s;qy<`3os$t&OIO2`P@fq$xyo z3+ZV7A&vA8ghUpbzIIIEa9%Ios^e<5pwIJ zT$_+r7FEv#(i%qHLpv$B!a{ zi(hV7UFe185gOCD>f!Q@aMfdf)=D+OLRQizVkG0FN+F@<#;e|8%MsC8K>sI?`xUA* z7xG$VWPT0j>4j6`Mx8W5wpF%OLJnqmWM1u~%D6xr_1}bCZq$VpbXxKO(n&$X!b0-jSh{RNRqym!ut!*}fv`-H|yIaZBt)2t=%c z_FITC4qkPXdZ52hbUot~^go0dSIPauo=73HZuB)pM#Zqnx|E_fjb2+3bTG48LU#pi zNGbB_slqD|xmx%Yw5bduWgMZ;EO$ zu0JS|1*CdqA-!=%phOQNT1&l9{f9r(bgnS&qF3!s6`w*%+Em{wq{pl~M22tP*E-n~ zt0s!YWNuuWi6~<1sfhPxj3*WgtyTQm5%0xZPVrJV#x_cL!5CYY1&OJPjI>LAhavOb zCT5q5kK}AA;-;s6sVgzBPW~yrgP4qpaoFNJWT6o`U*i3yi*ewsDa3!+YatJ77E1qQ z`S87U9aOyMO0OSwhzV(pecIAHPmd4PsBw@8T9U%$=2L)DJaGHVb0?V>+|8c{;dk8D!e-3_y2 zWk-k>f7=d~0bEA-H7p^2tqzRLl@JUdtx6#~W$IcA#5UXBd#thbzc(Gsm&j>MmF@M@wT(4DLfVHJ z-12%5Ttw!F)5(Qw$4)09&pUc7_4{hU*hY;~S@ciqSJT0$ln{5UObDc-^{=06kMi1j zahhc+WY|EDvWC72=Gtm>bzz1u3O*Od1cm3+ zvtPWKsyD+PsHD&1*eUpjOsoyBx||Ef-)bK^4fqwhEC@!>Ymf2q_zuSREzIRqIVF#+ z*pQF$XhwArdsDJ7k!yJw;5aVc~}Wo$j#X2n(F$#O?~e|QmBa{643zsJ1a~QKF^An5Wefx z%7^(=nVnyDN5~@8hCk$DWUj7hAJ)6nbwoq(EbQc*6R$hxgZ_5iEgj||dx_ZL+Qe>u zFF)x?p`nF{T)>52E*LS!P->)UdDSQMuW@an@%_hd>+aOkB}7LHy9eqKv%~82dQRjr z82J&+tLKHI#fWj;U=6`E-Uo4^V|BU^aesW$+vT+2+U{`d7!~rq#tia(tnn!%@vMtL ztYa2i7p+h1I0%zmm{UCSh8d_D%JRH_uivPZx!C&~B#p=}mv6IoKGawfBG(8#@ep{v zSZ~=raUra#S;*{!6z&md-%K3a5MpdYT1@}MI^y;>J&JZ>3;lNV zgWIRijVHK8rx8ZkT8e@#`U*|Vm%9{NmTQ7HMj!+06I&F?VC6{5wG`}L3uNOkH^0SP*szpsd z)&;cEYUW*~7f>2{>A{&eMXw@2c z1+|6B03tJIj8ilbp2Rz`p6Zx?Z)`ONm*X3)Vf}g4aZYgsdQ{^b->N%lXGGaLYkUeB zk^Dep>TKiM+Dgu6p`D7#a6(>U@37hT4Xhygi+%A@>zK)DbNM58v8_f`gYMDYpE*kfBx4N+cqIFLbqv5Sb-7Wu}nI1-%S`XC` z+y~=JAI-T7q%7nvLMmsZ+sMhV!mEwy2kX4s*!iHRC!}1=H@0!gK+m;}n>KnMO$6mK zLz$LP@jZ~-F>V=!lMAbVjskg@RcvzIAF}{`>WYyP5tqy{e3`26U{zRK`U-4ebxgS* zqeUG)#^Z(f#>%Uzmub5>*8sL{-m#{n?Geo{+or!h!3noX(w6>@Oe%xoUd=E>)J*;dgO4k-MQb7n$z}wCozp{yHP@lZ}diZ z6jyL-#(Azn#H^UvT{q6Twi^K}d^`7i1GASx+Cx99-P;~U7TSF__^!Xte{kjZrHPdZ zLd3Z6N#AFOcf5Ssff>T~V)iHAr?01l>K*NknD~Uq{L%T?Az^BDGBF-W>g?0Y}5a27ft*hON|!-qA1 zmU1+FF(Uti_M4^33Y#g0%VhMbE$!e|jM(J&CeInCt_0Fh=SRqET+=A}7~}zwEmMVW zM=zRd_l0;yA3bKeH(tSCi!|=4B8P={RT*hwjkA^DNVv9tva4ZFmz8H7ZB;Y^aD|uE z76s6VST1OLqmcT;%(sOm4En)VXX6erlLvN?j|$0rn^}vrE3Tl0Y!LrUDGRgMLh6TJ zwQ0kn%4mqlSSB?rAv<)U7%2;LlonSY#vn}uiSJ;uR&nZz5RXPmL{{c3wt4;z{~gZ_ zCwK+o^T*GB$ZNuT!J<9|RRP4RvSUSu`OI7`Z2nrpC_x}x^JD$9i}eS82>Nr@wWsh# zw_ejh4@^jAZ7u8eIor{0?x=@i{kD#Gy~*rtw&e1RDtbmXahn~TZS)(3$Rwhrke9QtI>WBTG%7^AHjM8GF`U*ZWJK5-kz1YLs63W}9hUZL zd6;3h$bn%d#h%wh8j?bWmWFRMCWY~-e=FwWA)<|qS!{dq=dc?>h%RV43;spX4ZTtS zWOvYp_-8)QU+_;`2brCJOV>TGV4Guf-@jXb8|I8Ws%p@e@z6KM_<_qWsrY?7Mev8d zsr<>@Fhc8*VZd8c_mWHxui*H>+@VNKSyNOrWAo`>!q+Et#H zyg**T$_xDxxviBe20Y)=(Pt9vHdIxQTK~4uCdTm7ik**PbOv&AZ`Cha3U93p>}T?S zHVW4(dz&9;QamcjPmPCT(^XEgMRu~F&^*tYlm<2TSEOGk(Lft{tAg%dx-dtYJ0yu zv*x1TR9^0K*0Qx2VJSV=ho(JheWL87A z(Z8m4+SiQ~V0~_`t|QFEZEI^W95h4gG&~ok^AiCk#ZdM1l~oWW4{8I@IfbU$$3{*Hu|0 zhzN~BgrV;#kb@^!|36RE7~Rs3jDc=nIq2E$7WvA!2HFLV^(EcHPr-jPYr;I@ZZ}P| zAzc<^@VeEUFV?K~y7I=H5;1a-2mCb2V4U|MBy2DLO>f*8L3dA?yhnZcMbDg6mYx9j zf#1*hWcm9Ra{n&D^r5GJvA1aQhELt1EgSz$`xg3Y#A$xyg7&sc#!SE7&WCdqg*?4G zT!S!*m;uqF^Cd0{f+He{we zu;*2uQQVE+6M_<>v0a33@-LmzfauljGg2+^&CMND5s?>dkO*0Sr6j(yR`f=|_p_ui z_>`>nWn@BKJaM7_T8Q)^KK0sWsF3?Q-@;4_A(6_3$on>GjJ`|S$f6}!MDh7=T*ncA zkC2M2vv0{=-lMxU$1IS(W7Z!(!A;!fR7mC6N8i%*{7%J{A8O5hYUSSCLL{be-A?n$ zmhbeBJ8|^0YsW5sA^n`nSycVpS}-rI-(;Ds z#%P5Q+nAZqU-p6Cy#Cx5cIxVH$h_cM3t3ok-QTvs_vt%!G3T^vdnEJ`_xH*}fBZ;A z*8)Ake-I99hDNf)Q+~#0^sf@m|_2GA(gWxh9uiYZ-kKYVV$cGPnc;jBBvgs2qRibV7z`< zG=HH}GAx&dIl)6ZuONdAq@i9I)(cnG4IAa5cT%dTa!v85QNN8VT1VNuN9(NI4?k!K zPW%;8e|V*ThI{I$B%&gJqjDX-v!l0YxXd!H86~y&1XGreEs{iI!|bLpM^wc#63L5*TroRh z0b@SLDcj#zQTmT>Zk@K#7ckbX1C{HDlq`%Qj4i8-nV4hm!kt!y7}t0X@zH|)}qoQ?a^Gh~vEX7%*Vm-B{bLG+wu(8v}J#ARD#JILA9ycZ~a$ zhx6LTjRCCqey)d;RpTl#UP~3@3*)WEeGSKpLS*_qGZh&tMs#VRk`UXGl%O3V#CZnN zOtWrW(V27ysU8h>%l8=N^AtKFG%$>?F4*`hZNBhj{pk@k2+^DUfJIZJCD zz5BDQ!a2cGdHJCYnbDO7xy!T~L*o!>-cU(Q6IaE0jA<)zpR7O(Bc9Wq*fQ>e`c;m; z2=R+Pu37UBP9Dg^J8RbHD9)dD)9v_9Jw+isA|`>1JH(~L6TZ`!Cx4Dz0j9We!HAlW zAGr~MEUaRj-qS^$CFEPko~Af?#Y&CovX)rKGW}+r+B(I&4dZjOMcxMfP5WY=HX`N= zGka##(cs-Un}`tl4}|263}v>Sx$pjL(?0aO%(fCvBNlRe@+oOg8XfIHkAhKLojxNg z3X$D-=GK(3|FAkrNL5~#12{*~3C77puFqZh;4%O!v2&9ktC6rSU`#wruNQfurV^A3gRvGIGRP69Ha zHKQpfKJ_%?-l%~*KJ~MD#d^&(drKHeS)$$>b?}-mJXVCPXn2m#wj^mWH$pVN^30&M z#>Z7yLVnDZUs}?GUGJB^$k7+Qq!*0ug>|$;_uAUlC$q^&Q zyg`Y!NGM07l#3Cyb**w=f_1A8jQ^}V!p(-r{3d#~h1AB(?&VrAYPFsK%0M;0-YDOI z&(e>Z>D|P+xQGxALjcv$I%XNYfkvzn>^Nv~L7*X3X z$rJrz`;$FDJ}N{;k=AX0GgbaQp+C@1vBl#*^yWq5B<@(Sb8ZX$Av+gcX0#J`?p`t9 zf9K&3D=2n8#(np9zNMk(beC2h+MTUa%F{!3iLNyGw#$u~Q-qiVDrSysi!pD1jO6Ud zxVDwnu~K83ekVqgq`tn6H-?bfuoiCHDudrom0;oXQ{6hM!|c^ zj-w0lh8~&SR&H1$z1wROJBIFmUh+Z(rYqPgs>9u-3Q(U4iDtNnXsuC+3-N{CqCIkT z^vCaE+6VkMRVNi!baXoyRor9P#XQJ8bf06iZ~sqI#osez{V~q8$7`3@ZDxO1l_|QD zxSDm({(}wfIb<*S(}pv@-cu(Cb=F?#$84{?V)!+#fi4BE)DTItihiVjt-~|X6D$Q9 zWq*vciN4#tOZ_lgc<-7T#&-9fzA^T(^+yXeQy>?kmwQLLFn-#}VuSc>r<94zd!LyN zeVzNPXlciYbN<0TJ9AWIpI0+h0tjiDZM=|!eu{mgsti9ZDiSekTx8up>^3X1o*#P5 z_Kj&mcoweNWwvpv8T!e8g|vlJ7WVZv(5t)eC<%KD?>pTwlWgCW3Nqq-^>#2bZr@wE zpTmAh8Xe#1D`jAv#D2QB(TgL*E9M06CsB*BkNtMbY%Sl-JU4c~*AmtUoRkvxHPqc4 z{o4_7v1ocWA-=K7=cI0qouK|_)Z^WFlJpODCOs({ozj~-Nm>GvjOsmqyyA_1@|U>o zP>4C^uAE%7ujtMaVjKNCVgTOJFLrV_&cHi)#a|IpQs!!iQ)2Qnu1<;Bwfr~3Isf34 zZ3Ee@kl@~kTem{w+anV1=z}~FU%+Wkk?iQ`Q#}@ae#lx1sRt+N2x%StqsP|Q zk-O-V+TU%9@ksI%36zpELJ3np_Pfs=#12USiX^qBfAw6ZHN$w1|s;>W2cQ3qeAkB97)KJ9{MMekFk3C zNM~_9#+lU(>%h(wf5VIpA;!~p&b;4;dQM1re6r^Afr{lU?J3NEJK^TTu1?~~i6`wz zF4#i_c2=)EMdqx35rv10L_=*vRzwmQiFy@8c4S{6a%;kh#Is%-Y>^`L&RlHQkMq`r zl*+fvuB|Xn+@20rBpz+*!j@tm@2HuMgh@vYctk2#qo3oAD>Y7-3e18(`ay>I{^vX^ z7%dkfvx8^*etGgal>+05N>Z)upa=cvnr#?eK6e*KpWV5C&&B=;dFA82`}#TGK#ztwbt#zXcazu#TE3fhS?K+`Qd5Sk=6)%rrv5;9`kSnES*Td!(|V)#F(IC$`EhkTw~egx zdimHxd!zky!l%~PJ9-JO|E~`s&$(~JZI-z=P-NM0cdskCpV6~$MQtC(nXb;rMOA%u zpBGerl($`+OnST5|Gg|HvvP*uLX(6ON)C+gV9CUo@ zt<#7~{BDn~SBU6B=eu!>?eM+5PvcDHd&H6WESwlYj;nJ@;a+?9)XW{4?(wLVK%{@1 zZ+S!Jpq{(u`9>viZwx8HQ-9aT5w&}daeuLU#rm)!L`Yp255Dh<+7Ccv+ZubA0^tgO zmzQ#yxD#KhxudFnsawID>FH|bj%`A|gPF`PY5Su0>wOX*Xy4w~b#2m$zHh|P5kywG zm^tzyYa8n%#NpdT9`b^XVV0Y;oHQ+dny6DlpQ?~jvGe7NA#-?sp6E4um|h+t%d`_; zUd3>N*Ne&uJaaE^tsK5>UBHXKr$n-UE?JjXWJ7pGBfAQFD*Yp<4qwCy(6{mIi((!` zN*l-mbYJ}Fvh!^Jn3DBs%>!A@t0Qy&gI7=GJg!%-ahKj#U!Isf^E~-P8~^;Pop*>w z;X6K?Ti(dHUgTx-$@11NdRLxzonibvO*$B3Mz2{q7_Wc2u|Aw4^O`s;=I@AqSEh=d zMj_rYo+YGR)XwjJgfi~8UcS!fr<>j$eovP)!W!up4Leb1y*~V)-~aU;Q!x>_ZKG~{ zBgKqqL_SGZv~Q#M!upao+$QFaKJiiRqWnhJIl;XX&2%vTKuB5Wp%u~|`W)U^&Jn^l z_QyF)Z~W5@M8wh1CnTga><<2aqIm|}14-SA-n=(^<@myzBYG?&a-&%oAuE^7_o-wf z`^n#`iF@_G)jmgm)mx#1@sz9`ediGot3bUV?e4oZ}7xZMk(;D~vdS?{QXn$v=f!U}+e4?6q=lEmJcW!lm%*lG^SsQo* z%D{5{_Pg!lSw2DvclUad;)(D2J7xM9xvite`H94G1WHKZ%9AJhbkNuN-mi=fAs^2s z64Eke!blahAGh=K{LsVnbU8kZ={=d{i&-r~%7^Mu-|_LhDIuQtl<3%J%n5#P`}gAs z#F1!*ShR-tHsxdmQaX8mTVr~c;Y6}PD)zh*V#(>*0x6rkQbKgm(&`9_4(0qkqfGLK z3yFzjU|q6gRw`sig?#xV-6*8wPK+xM`{FW`Do*M{$QOm;jMyS2AtXCawvTSAsZ%s5RHLK6O2|ly-;bCW&cPKjx&J{_x5j&?jp}@V7Fxu1@%OZq7qOZgjZqu18X=`VQf)%IH&UTOMDZziQphZi>OzI= z_z#g=2dVd*Mv6RVM09>Ar$k6`qpZpt4ZuHsg3$`r(+bhT@!K9dSMquUQX22k@uF0n zkeN#%{uXYzdij^m))L=Lvwuce@ItQkB7WM^sUt5zj^T5EMm07<#JovwM@MM;h{NWz z{|8thl5JD|wUA;)ia&?bFjK@cke2v9)uG31R3XDQMU#X?G z-=*$RLUhkAQ3O|rZZqQkLROt@{ogiYPVshi%D@wHbwT6rc`<&JzDIhpVa0)vFQ&yH zQv8$T^CAYhqh~IVW|Iu`I4g6U`V~mSXSj+;Q@=koI9eyFkjXPwO9c=?x?o zirfjA+)-S}X_IgCCx4LE=Ea?8EApEVxuWFwdrZ5EI#*=L(^`4Q*TT7Zfz(4i6NH!~ zGM?aCTcye^Aw%jJcYKYGo%rVJ{TAD|`l2f)AyN{UF%XDlstXk&VnbOILc~M({rJm` zJahjD>)?o%U}aq(j#&mmif!@@3ehHIi`1-sZ}CL_o@4vR_vqfH z9L+$qfpLfQrxT3tXB5NwQz2eh>BZoRN&V7<^n}@{IhxL6=cGV9QMQSY_bom@<4J3x zO`NS{CM90*ww5{&F}c-@w466GET;+y(8+#99ADA^$*~6~(ca?ZNpt!XYHPQJhvtwZi-D^nZd?vw^h1Ec%Q(Y399<6_c?E zkqOz9y(vU@CaMn!8LrO?U$14<7?F%q(C_j^9D~pH3!fQ&&ug|R9vp~2=9UqpWETB) z<24A!Hfyt-B0$K9h0;MJ@<+)ghJ&E&>qela%&2f2~G6;{qv8(SIRN9G1>cF1cYRb|EWjHW{%_^)m6$sZwruAkta* z)K>L=@RXQHEM-l^qDkfO6U4Yf+*LNB;}aq$Mhg>CbuUrInh=Q@%A6N6^5ti%C-Sx# z$&OxvELAZ0)O!=j$GzjjFM21l>&C)cQ%J*3(n6M3iU;Qye+Gt~FLQ2RzEnXG@Lm6VY0(RR`PN9WiNKHz7DRB9LO#+awToWNCRfE9j5^M}9n8v&pu14>NwJ z;@5}o`n@W9w)1`;b|1*vpv8F~oRYB$ScvQ8;j^6~fAWn_aHPah)8=zxt|20~82ZJs z#6n^lqV3VqbDHmKn>uKT9wa+#6UCJa#zJ#UC16(b`q%gde3Pes{UeVmC~_nXVh{c3 zB2$cdL|agt@IksstsSA0aj2`6*vCM5eb;zG&G-dsIm4 z$b?GtfA~bT8;GGQDA~l)aCKs867Jq2lZ4%;g=`sRT(?qM!^pSDwR28MDYIR){-vzc zFdwNze}Ae75fat0__n2~7y4m~wOa5FE;d_5OA)ho4$V@CenxJ{ZcEKpFmI#$d#Q21 z>Fe2}S*k})J0jf&RcQ+utsuiMb=$#+jSi1&e+a&XdJQN33VE%d=ch!rJ;rIZs~a=? zKrquU%y|8%f=`HUO|(_w_a#w{bc`^|*cbF4xyWiti?juN>SodJ6_H*R&EU&Xb1{(b z2+<~GWQO2HWVMT4(9*?`sQ0sw*&Zt7GV~1mJwu!mJu*cMva(ek(oB?HE9B;j{7p!! zf9P2#GyLR?l-e*;DUuU04?mEMlj(#s@6=gDNH?qm5HcF}C={|}Fmb=lV_4TFA)als zRbJvQd}oQjF>@$88~Y%I)X8hTO9(1N>USygH;_EhqZ!EM8*odTAsZ~a=fn40G*CpI z7>;$vxJ)_GkPKY~?^LWUR|Bg-3RCRn<<&+rMpPtu-FiI9@Q;r=eg&b`kI*ld+hqEDs zJjbbdF$vfTP2LnDT8=lZ=`RNI1Cte982vXpA7?X|UB{`Q*=h{b!+lUk-e|>y6jp~8 z{eLYnl5cfcqH0MY_e)g87)Uns?wiYwqX*r*Cm9Pw^m}+8_^3G7SIGRZaySqjQ{30> zvqaM^g_KAoMnrc#KU=eg{h}kh;0xKHN$Ym%?;@msMs>SFe&tRIkwC^%(r(6S-r0I` z>>D1fqda34NFW=1#6ns_Mr^&5gB}^{qJK!}(X_tOMNf%!X-&*n6QaF{?`PzCP*K{D z+QfV$6QxNQRW!-qg)vtfUCWJYAY`I1&Bhcb=kM9vflkQLsmHf4Ki%p0OJ`h;xI?D5 zN0q5UM%t(wh189{8k;v6+nrUCV+_oe&I$k0RqKz_DDyh_c3vZT;~*0AAaM;=WPdW_ zn_EXBnV;I$~t?0$6`F^Z&YH4j@{y~+-=;+_6;VwdZP%V4M{Lw1G zP^q7t5YG*xzSX3Q&`Vu)Iac0@CKiCcr>c$Z$hc$-tf7}c%b7dPR>{>r;~J={qunt# zqPpkKr_q~C1^yoI!uW4So?EDlYGj%t3#h(Qp&kQ)Xch3&T8dOiM09>ISE`0zj#pGa zCh^%0+X&-zf8)V)$?o4DWCF%PnyqW^Fw9*btYjOZsZ(tTnMdJVSD z>?sB?pck~B*Bp6#y~#UP9MtlB0k|Vbh5i8iWPRRT^#v8q?uV9ve5UczaN@PUg_t<}d2O?Tg{-w4*u6K4jjdLem zk}~0q;W8m?cU)3}Ev(mCGitLy7Uqz&g*g46=AfQ*uV}=<<2!*&~en>>b zE2=j4(lX{sd1wrOyi43$>*(KcpM^8@g)~E+=)T&-=$QMBroW7QIHf+2-1s!MuW|gx zwa_2lwECfmqZLA0bi4rrxfm%HVvZ`u zTV&wj`)Sv3Ds>LOHqJSk1o0RJ>&a0o54qPg~m@C z`ZdUvh3Ej`Q;*4=eTBrpDclER*NW;xBvG3b&*|Lh!%9w{;vwkk6cX(e2wBnF9-lxD zoq64s*+5O}5no`NxMJE9BP|=B;ME-`2MQVDHTbqybZh2kn_uM}vQ~P07S=5fJwKwu zhSRIE2vTEz&$f1ZDVUAw+cL+*JqF8TywSIpju}LO9Q4Te?%!hTFU|C!&%yVTpu&6M zr243bzL01ogKr^*?_jQBAlQF2ke1OG;4)$bbIi1-ZScK)`uAg3ovp2dx6Ij&vpa-5 z?wy|f_FS3sUD*)oVJu{p!%uMc#~tWA#s#2f&Z8@TC+0YNxT`P^#oq{?gvgadrMIm+ zvrg&(F64_oZ-_(!8vUM@bkE|Q)shs@k0%g=M9)G?{WIi=EpmAAG`2Kj7zrXfQVO&M8$5M9H#ZW73b z9bI)o?8DAULMqN279zfdI#^n&IG+VuVqE-xdsbUmxz+5-T;b|eE1jP@ekkU3>euK> z#otqBl$bE$7kg2)8gp>bjtc3RInrVp7pjjI{e(~lw;1GxdRs{C=u>UcIRiVX=_rce z^QU!@JA7(U?}2$WO;m{E!6D5GMty~}$M&F^J@j!2X$zwW(z@+ntgW??F4nQMCVPN? zF_xGn!8x=-#H$dI*ly@?Ze5H5vnpHfUt;UuS8=|Bd(47oemz&M8~VlXWxU6KH!h%=~Sq zrjDJh+7a)?YGWbZQRTFA%48dIqjfr-?Hh*}pWsGY4Lpsv>dwG5kp98xy+U?>`7lFY zNWG}H+dcW9cfZ}31REz`m zy1el2tvmgCww-ahnD+Zu23m35N7r3PPHHA9mH~GUc`7r->@FDu}?t!rQEOs~K4&)W7bDY2h~&`Gvo{+Q5%bEJznBGp+2KE z4(=T>?@1GKh13ZABBE;!Be;F8bdkFV`37dW_4%tmY@g3JW~27?)r0Iw0xW;n<*hHN zQ1k`#<(Bv?ED0^l)$Qw~!|S$=J$q-bNXy{+IZ{U0`%H*UREPbn9~`!ez;X>#KksAD zT)$C>jK4H4bo6ZZt5c8lW@&WEwx@eR*-&yASxiF#Xz1b;W}>ml8CFlIFJ_|Z#ezgqD2xr|-etE4{FhTMjQ$XSl08)H@^54hz@7^;@xDfGm9GDiR@L^87vf%X}Jr zi>2|pofvL{$ZLx~t);XvqhrLlP`sH&EBZV)w-$it8b{!nXiEB$74gkTfiXgJjp)vc7^nY zp58pcde6v{U4tj_JQ-<-$S-LuDQ@!4C;mpT2zUERJ!1}R-WGqInTX7Ku*!Pgty|Ae zlW&G`7a?v~J2|iXN$l32FG>yZ4PNe(_4X^3yJn|0`>}ofnzL^<-|&aN%zUzLk;iPx z)aaOvT`2`Q9U|TeS^+Da%2R?@y0Wn8-GnseIbG=qquVIND%KLLoEy*oS-Duo)4QTX z6FF{H9`<1jWd(l=EKZqQC8)pfccS+MeVJ9FpO$uel@}A>2(f5N!M7IT*ul4C;d4%6 zS$CXu9!Tf@`ejm%*sCa{eyE+7?X>VNtf->GIi7(WeYKbSQ)qa zOc}GWs|!O5Wp&8|^e9)qT58ZL0NU=H?r)N@l@I3Iuh5|tGLe0AD`Ycy<%P3I=b7){34_|Rul^P!HcubS1xun zujrG&&aHJ$V`i&$ZsQq9>pbVFE9uuLWr~(-Nr2g_Cq^yCkYX}3p<^3 z@$~MT^1>PnA#G!9W9KN0BR^~B?h`8)ca~U2kALSch_?udk`jKmVEx64jxD$7p#~IU z9dG@Ph$7~Hwk#{|3<{*9jkM*5XVj;=+`fPLOQYuj*>ASl4{q*lGcBA~ux&eYC2x~O zj5lk`T2FjJs&olPXoXa+yxO&ES8)xhd{?}4LduUlt+z6_@UBm9fN!n;ov{;OH?xVh z%hq0Bj6Ln3g2D)`5MP+z-fdRy#okS8fE71FI?o;3O`bS*{RxqCh;JP<6xeONJ%)cW zlb+lDH>U)VnR&*6kTNi{x;+>Ra1H$X(P(*uTp|824keKhn$aSILxQBP{>Dr^mz9KS>BMW=1YRI*> z$Cn+ec!gNTeAXT}7qt0=l!?8ULMne}FSmRQ&eQH05(#&EMiv1z(@f=H9&k_dA7^I< zvj?8*Ia0@X;-0!C7+V)&113LaYY>xH;s{9u2wcX)rKwwZtDXMfFj zo}OM!*Ad@3W*cK)j*vRoPW)n)HlE(#p=Bu+9t+>?(~P?=gf#9r*e6=M`Dv#PtRT`G zM>8iO5kA0(*}hQ%f$w&Esu+vjSL=pcl= zVH{~cm-CF@^LpV*^ZllF8&7}LoAvP;ywyI;eeCx|I1iDN2G%(5cjcMTTkHD7m@Gs} zzPNKjO2LTpm!dnB=YMA(GA+TvrC12A-z5V5!3r@iZxrprAP|tmKnq&RwXSW>exYp^YA66lL z@^U8Tz+~G-han?A`Ab_0mOw@ae8Ml4>rpT!^tIkPa+`c@ zINL5?(|7XOX*>Fg8S#IKy$GKtJ7|ju@rhaa&vhNKi$qAj=oNe(lZNo!VvaQCcE6q* z$7;SF%__K}edmW=a$mp3KE^j{ckKQDhUX9Y$-l8$#%hyqe7-TWswef0b!jqp(nZVR zo27hMEA>s6kB<8@-5Yvf-&`f}-JUyl)U@9`X=2pyn=dDfYzu!W6YG(_m4Z=$5t)Pd z1}mHbJUc>|PxTMM%#e`EliZ-o(nUmEFU%#wb~Tfx}Vx8jHJ9IUOE!?Ux# zlGt)sU-chr@G4J_|8}yCIiqjKL_a)LyOzYaWXE)J+|zwh=e3r3J1`m{q&r(E`-LsU zNandbLcHU2mrsA{`S9JA5@!GO(^6;T>x_aZz8EL}-jt}o?~#A^!4)?`T0=kUlV38h66SlS z3_PPJ>8)|yySkdi(Ix{`U8m%9CMko4a(ON%I*Ux_w@iJrxJSM4(a_5B9 z;r%h~Hr9WBotS=&T_h)>y?BF#^o9M-!MT+%x__!^<$fUjU@hpWy;QWXgJC*jtn<|8 zm7ms1Vov7MtW30BPK(}4k|8J9y!jkN?=p5_ou>1PHpOW#@eCIsZQ_*r6DA*4O&qt( zc4CZ;<^GZrvpO-0aD2#X!!__JUk2B}mluqN2eN;$5Ba$KcRr&YRlNMxFF)*s6VkZS zPl$KSxeC!0#uMLT_zj-79;09I>~w1dc`#0NL!f^uq!+Ar3FQ5F15XV-BO%6Kfi$x( zUblYp$7?Wh4BJB_C_WjHV}!B6GkRK>pF1OJSn*58S3c}nmF*@khkxhR53SoXUfpPu zA9;UZk8jqDsv|tt(a?lduYo*_Q=GYtnXS&!LF6x8(;Lh99W6Wfw7qJ=YKF64>Btv- zK1-X=&S!mKFZPi|JX!9@eb1PQ45VSaSBO1iZ8+aZA7-G=r!Qq0AAJQl5BWsu1GD8v zg7oqJoSrgP$_kOnz;_d}v2yVox$js_cl3WpKcvgG=ptl9b|QX{>}%%eIM-{&?DDyz zHO&8Ei=dpYJkArfQN@diJuzn)h8VWjcAo(J+^oHxs5 z=^{Jcuwvl6m6%!nyf1Ma>B_0+Y{iY}4%!DdmA)|MaFb=OL(v}CLF@Kr3m!{Es#kxE z?%&+3p{07Wmxo^H&9fzp$lQE8&-S{dHRh4IrMH4CE;p(PejuNuADyaOu4k-zz2&vc zZ*3uZaji{0E#{B|*?1eHVlJWIcr9rB@vUtno?Uot*ZKoFnWOGk`r=~MgpkG)K5wo0 zV&{pF=qy0QE3+-hr~koiA}cj7tc`!T^(3CqF2QFPtDCO8f{t-mA$BlRETlR{-LE_e z&Tt5keL#}@ws4K`d)lyyywovEXrmo}gEbYknULrMM&uPoKllb~D#|x0j8t*nln`V4 z`f3GuMz4@|_)9$|c;VTRb9k^DLK37fGqw<`ILqh8JUx{Dw-1Ri+|%GIK<$4lq&Lip z-2Tx84e!bMhb}qt zN|0mi9xolMMDJPk!&v7%r#zM+=cSAu|NSdnLFs>Uv~D3{X8hK7N}qq>yFD4V7%35= zV~ua{a^v~ik}NUk0g)KEi|0UILC0Pmxg|P^xH_+w#aiZVt5}u%m$O3o_LB93tdB3n zgaQ7W>fD#}l4rx1-AmmEu7Qwl7?F8t^o)M+OLBx!FGMytV`ZE++X_m)KsM$9bqwSn z1@q80td%IpKas3gOP<{R>Vc(;e-HLt-;5n4c` z>3i^ZX7G07Nt{C`0p-EmwIM&!o2M<7qd|YeXJ`GYU3q`2^vA0s2drV1^sU*s((lOw z%WOHUuW%pbTM&AQ76 z*7Lplg074aU+6Qv;FQJusgTAT?eDepp>HO{5^Ide%G z$djPTd6V4pN8Y;-d3w}wAjEu9=ZTP72GtE(u(B=6mk5ztPjMF^D`koe3OR=Uf{<&C zG_4RFY^t*}EltC?rI4B@X=fobHOff{`Rb$-AMT`~#}Y_Kwm%`V*7@wzpi{+ntE*(P zo`ioyz5;)z$&4qPPe^Il!x4x-iiZdpy1^h51L-)KLCBXA$&f(YsJ|p6OYluF5)D9% zbezp9TVU|4U)$sm!^+h?bKzboNL`X}W?2x~D!bI~i04q~u0*c7gOs8vPGhEZwd zDT*WHlh2R)6Z5ypbG0NPcF7A3#Bi36kd`L($_sIcQ9L`}EQg|bLY7@Vy`SV8%Y!3- zn_>Y%EQUV*Kn_{aLOdbYgplDFZ50wz(DA&T&zvGmLQZ>>n-cQM$G84w+f*whq{z|3 z^LATsDkMLxgO@E}uZUqpr_7I*EVkuZ7f9 zi4RhUJNke^M(TJQg+%i|Az?#OAEgk}&BAvxd7e4J%vx2@%u3KIpo_NWYPT4*oPpge@(3&5rjSv#eQTVjxhA{_=@^98MGD0ND z@&3p>+326lS}^VUB{6?S*{R z_%6tF!Ae;nJ+rSV#3pq|36YOZIeyEsqOs0SNC|ckL|XoF-u5WSuN;UD9Io5m^`a+{ z_p1x-w?Hn<@-ex2`A~LQNa>BZ8H8BhXx(OQ4^Dy?(rlsUDx`PH_6g~|@&0@*AS5m^-Z@?EL!Bo=YWb+=PDrbR-}*Fn>Sq!%V`eEL zN1B0u=lH_dM!u>xpf?I3SdJ7vhm~MC6o@b>lm-UTEh^gpW~|XwiS_rdl>3$2aBcg+%!o zty_`FIni1#GDsJmoswf#Gwoc-tvFS5#Ar+T+jI^}OqfOsvSe8lygK=KBc25d9;ky6 zvl0x`C}CxITcK`aA*+7q|CFd1p!|=#)+BR~^tL?O=&?scP9?^Bi&gumZcs=!mM+D1 zJt*Ugot`m{RP28i>{1Z&GO}3yN2t2i_Al0tfEp;Rss*A2Z7A#NBWF8+UUPo$8`(@=!G($U%o1Sg+a zkumttqb%M0P~Vi0SwE_w6|zbuKKwvxLa$oLkDP=)CUuM~2r08{)lnOnM)lroD@O_RV(Fp%W+_>v-erpdkw;Z-7Rl<1e!ZoYIKpJsutm=VOw(!G2EkEA+G5>*up@_Uv(J$nVKDxyW2)uJT@`jbafmDv!*`L>hPm?9$ zs897TV^zO^pa91=uoh!I5b15Bza17iPKSRLvSQ>sB0Cq1lgl}+7o*1(9IWUsnA9mp zJ>;}SZ5kpvqL`Hr9s%S=joeEc#GN5T+8K4D)!V;@D_Wm5j09WDKk6KWIL>nE4M(_^fipuOZz6;ZHMjOdy&xQJSgjkpXHh)*LznE`ANA!3ImUjl?c0!nF2rc#c%ntC z6@O3A8)J2#eR9%?r%_0>Pvb6pU&uH_j$8(mqbJJN8OipDdq#*2Zq;4a7}=Ln#kl@DeJ?c7wbl37T}tb>CFi8_a+G^2lf2cLG` zI(5kfQn~gkkj3wIM?Ey_LdeTFlO|g6@+3auK>Ejb;YE)Pe(95qgt1N`#+Byw+y?cQ z2ht8k^X%<3F$yZA7mR||Bc$d z_>cN&g?Qd*lM88vk&>E6YG{Ai1>(fCDrD(c^WW%*U`9HS53?_|#K0bWT9G-5x1^RH zeKw3plF`|zWv7c;rk0nGDJ76RP`Xr0*?8w<3Jr{T2anA`AF$R`5_*&}h~3ctskJor zX=|rZ&)Q-XO}xi_O*~^nER-6TE@siolD*`uFgDlqR&*L zJ&RA(lFq=$LS3#c<-a*8W9C~(L)JP8aVr(;AnR_KtLf_YKCpkLr0yZ7d5pT$+$aiKrdcIO=E`mw8 zlh_yo zDFw3?Lj3Ulyxe~`-})!f!`73Khc#LCjn;W}-fV|D?}dCa%JCe$m!0j9_au@CX(>7K zTMB8pqrD>oCE~h>tdfYQBoGNQe%gxG21Gu??)E@@py%3>t`~b zNM2)JM!%ue!7nY=IHK8#>@>8+gmgnoRf4K!tc_?fu?>IgP+IWc@Ge+N3nNTYOV!XX z5z;<9Rn2-^cuSg1p4%tniw*`vZog=UXax$+`V-RHB%WX)@~Tmrwc7I_zCmj`2orN3 zO$)~nXCe8a*VgopJJDpUH)LlG#6P}SZS)U2LbL)uDlJ-*O2?XoK-f}kQCoyDReeqL zrV=8PFY$jp^{8#dw|38k*V^45=4F~kU>Wa^k9^SEZ5~sP@n-c;9yh*QkDMN^XupLc zv~9>Up}9#y8Z%!C@ycCgZOq6|G2)YW!-YgG0sqbVktJ;sq7|!6+LVvZYcPu~mIpzU z!ZKubX-$;Ma|Fj2BFh}>Py*>JEvGCBjCHo9qriWXVogW3Od-n`#-7?vWz&R?V4us# zJ83~?_b{^Ew&#VmW!t?L%&fK@6YLq0)r+1{+fRlkznkn-K8atLzIfg~m%oi`@O58U z1>e3|7FGkbZ?(hs=UcsFY_NT|E$pOeC-F2PAw5XI5s}V9-?^O?^o5A*2%`KzHs7DK z%OHQ&Iw3C|w7gqziJ~Xb?Gib7AdO{_8Vw9>&kRUuKNf{3;o*IIwtydAtH9Q&czT1C8ksMJ2;#Ta(hT&fg=E9nlSij7W;i^iE#Zmx^2)|YqX%0W z>XH~D%`tqJ|JBhGciCykwHJsCUq-q)vJ=UMmIs7qM>YW0Mo23}#XTYNWHxqPcs+m7 zUqMKWK;jc3w*VQZgt#xPs*GW-IJ-m0mYBzLAaUtv`+KzQVjNZux?QaOa-X(XQUq5& z`m{p&LaFTj$z{OR@tBT>Yv56!h)?UeAM}h|hXAL?3+bt$9Q8g5PIeTsjF|+yf0ARk zr!x4)!TlMQ9d)A+bJSTrx;?bxeT;v8QP=y}nKiADm|4w8ceKfU9NTCG2=NcSDWAdK zgzGj_FPP!*>0Z!Bm#dpE-=8^cAY+cpZFQ`731nk*-={29^yhqj(4rOC`-K6AFK0Ct7t3x_en70 z8hke>s|h*LFM~UGf(#zl;N<=xqme{!XXYe7Ve|3RVmd3zwRPb#3*<=!%ehF&f^3FciCddfsvwXt#U*>cPlDj0za&RSWTg{!foCuthu9%aVPI z-&0l{sORJ?WX@J}lM#(s#V&IcCmjiqfr3#s*_?&>(jpXoc~9-+je37BrX3cHvh|u| zJK+A*k_T2=^coGixH`3F<~r(iWt@c-NX)5Xq&KVy?sb=nx-n*3W~}qpDG0tjMk-f7 z%W?J(t*7oi8p0WoIl$ z{GCzChh3RnV(*~FkjGZo3l$=(23IufYm6FpS;PaYH~YBq(NSZJ+d50wne1S#d!Mnb zxCXO!W;y6Fo(bzz`-*Wj_y()wg7KX|CVG@oSaO6>XRVbB%c_61Z6L2XacpzPR{8Ke2QCtrvT3GUC9L&th|LqX!itGAH%V(}y*h{kuUe#Ymgj^U%N7xLaRH$7v`rAl@fd&iCWFV3$Ha zDT zw}rn7#ofKZ-HS^JE+xesiaQi{(iRI4Ae7?v;_mLHgb*n1?hxFiK%qDHf5sUj$v%7S zz1E!1{M_3O8WB^cni-VjHmMi1nYMXNygohu_i{C?A!Lyzq|;s21IVxp@aSyR3>jZb z^beLZ3RhOoI9gXe)NcQZ+^6R5QvMzv)pMoFzPBp071d!|L@QiLJ*l+o4-TG+Zz^Ce zeb@}7ZGSe&p%ZlYOAo+r-a`uWH@#6AlGlYml)e!Vql|GV!c7>|W944km=!9f$AcYc z$5bc_WCl*Nw6)}r!xGjtdJY760qk<(8{MeMu79%bxj-u0St*VE zrt*(hR(`IEeYop+q9HbJaL3CR^{H-6E-~{RGG~tX1miJRLj8pcV7lI!<-~{Z%}UE_ z=$1=*qRSt*kq*{SZCZrrjE8p^b7HVS4mn(J9Ac2yIDQl=7BY7?iV5Ld6D4?owHexQ~>D z!>6TWJX`0}g^&LSRx~IYBf4j){JdJi!m|fPbRp~;5mEbi0Ql7UEPci8p8$HMpQbPfo-Y383BLW2y4h>YS>Ie=nEAqE z+d{Ii?ad==?jTc#bbXm$StE{}E?^rCjmDm_6n)*M+i&*>;A- z`hBG&*zf@)yYn3PTAW$q%T6(Y%n@+Lr}uQ;p9Hn|t!6^ARkb!{WW2^;m>*S9d=H+w zd;1q{62dmVujAV0%vHNXDr%~{pnsvAI#%dJ79vz6&SIbqnp-|){A-Oqln|1A-Jcf7 zDj2>UkV*@_9mhV9)^>t_Hs~?-U`+^2^gmQqe!g(84ryKYt})9Nbj4=9*Bq6tx=9yI zM-5K<3GL8O>MTU%9B^mf6LkNm?@@=qUkt&@<9=S1*pH39lN08utvfPP1v$DQlRax% zv)k|Qw(*-vjQqLbwDvmoYhw=Vu;>twaGqKH^Cz%!4I%e=33Tn7ui3-Rh<-58_G&Xt zIgNN}Ubp88j>cGr!B8Sxri4p{jUmkiCyc5J%Ibigq}@*l7PDi_?9{O9?^?Jtp=LR~ zVWDA}w*=cB!V9SaCL(TEWbXmBWL3&JldE5I|5V9bRW%szhUcd-!x{G~9CCQA;KsMz za4>6)uSPx{anc!7{|%7FyL-%l75>M=_P&r%+{W?st+rO4+gmC4u~5>4O-6@I_qtC8|WC(V>S`*ysoK#fniHddY=w zvMfar8LtT}i=nQdv%kD|=O!yMTsrCz;DvI%9^53gzK~SdgB69l`-$ih8Srlby^xK? zi`p@Fua};vh|lC*u43LJ2cx073b!X)0BV9??Y zV{Knx?w{0^!*CFiepV1y%#K)U4~Pm)UDygz>x}Pwd(+?iD7;@Q*vl)y+B^gb?zUkc z&8v+|?N?uvJ^pMg=txfe#o#iij>4xng$

#Wem4yZb?& zC|AI9&L*x~y}p4P2dSY^c-Nb$j0{7ObS=R`wj%uNrPSuJ5j71z6x;~auo~E7JhLQ) zR+PP41itCe*XTjoz0H#}lr8k#h2HQ13pS~eR_VLT$-AWY=WCHnpD@4?VXTDEFzk!) zwNqzpukhaOgJ?a19qaYM@7j%%T4r8hB)6AHulld`{{uWJtOo{;W4xRG9z3GUZU}$U zcHsT@&h4YBZ4PHOB#c`J*uLn^=eNmaQ604<-0h99)z@ywqH* zVT7r1p1F;U1{MdMY3~@^n}M4{(7K z(xrSpgG4F-9gg@??j&dx$#JPc2iLq!H9F#)}&*>D40v$%k6fPQCk&x-**@Ek*hX92-IT9866?(VgAtZ zQKw2z7x>i3QZ89j7SK?S`FWR$D`+H@9dpag%z^;&0QRwa+`sR2iu%cD}0-y_Voh6#7~ zFU?3tz!Q|Z;}|E1Sp?>~u^W5Mu+NT_%!zZu(d1bJe2vRQ7ie3*!Aooywm)Pd+HZk| zESnwg92jgPI93k3&qZoxRdz$_XKU}iKE0QGIG@ML|8xswj<(y98+`$G_#>|V17I^V z)Zko2_@OiEl>ax(*!lhVH<&>ZBM0tj-lPA%I)M}6GzeSNL<6p%@~7+^o}&T|DAZg7yhPXdtF)(eQSmG zWlS%%M*S7PqVi6_n@ht^@XdYK?zvBDY|c&jv15~x$u5{ql3W} zYy)3XjOwj1J^P!%c?r)8T${^=p_*+1YVuGF+pBYF7}v~!k~&Ij+;CYmb|pwq#akwZ z^0>BZ?Y0C7q5Exw+q&kffeE9xb~6fY?=Hi;g0!M23wM^6v~Q!%Hb`O&9HI}Zdx#eq z(%$d1K#aS9Ja0*tCLP2k+t*CKLG{5UQitV%z6Hf!+moek8wA$cw*QnBu4w!d z`f&Ytl(nSHznstjs}GOqsnom_Gp1VoyAnR9nfdhW6a#=$fXl zHg$_}1}(PC=f1t09~z3%p5mo-y~>K+UI#8|q7azpL`>nA|D_a~a`8oYaCw63CJY<9 zOC=8<%tNTK<-T6O4ElDHDm#Onl=jMg=X6PKkL~2pje{x)p~|A-A7_2}=k?Z3%((Aw zE30?8FfZ+gGXoP9KW>7z2jA|R@P}SW&lhCVH`2Eb2nkA=`=fElWI$&GHJNok;_A9( zR&v5(!D1@w{21c$IjzEt|MLlW_mtIJYB}3n12KCBWW8?gh@^!7UsFee=W7n zL(Kx$S=r!u#s+9*Dh1el@Ld4l^LWIQj(e3L{7DX7M@8#8wj-!0?KiONzi6+M>SXS} z`|A)@n0OR%`YM1*aLiA7ldK<_Me1(EI9@^v)lMQ+Xmd=XJ7|at+Eiprj2Ndd71`+? zd<-cB?ZeU1W#WwZ=EWE(pJNQB9pG@aO1X?sf`hPVE5MW^mP(raySW2QZLm6$T z^MFFa(EXJNvX650WT@YvF6=wvM|NI>^ zFa8F1uyRSr2@k-y+O2hgqp^}_a<%PkuJkg%w_+gfLKkpgqf~kD;leB~S?pRphwG83 zz1V1WFxx}W7YvfMhc8nx3+eU;WiV58!`$eMaaTT^26&TKiHjSU44AapSOg|k+N4UV zU)rp)85{-sSfQ~HV=93>gvTXcGU9;HP$!k_l?mOmnDkd}8Pho{mkv6dAr(Ohqz-R# zWMAHiP=04{DUm&bLr@1&_^DE%X|wjfnOA8V3XY_9)+2gF9i*B8mu&)6p|F)>ld<3C0u{V zXx5kY@ZRY|xs4@q3OUqJ2{>q}?h=eU9F7UDXOw=%8!>HSAIYZF;kPf%BVYa{`P|qr z?g%Ub8-H5t>^i_+t9sW|5I{Q*&DP~-QR*>vX+~ByhOChOOW5aC79Tr3*nqY++C^IT z(g0W+#z+p97oycvaUIE#e;kwV%OI*hc_x_)hT9)eA{SaK80FM8QQ|sYargTdF?)Yq z=i82+BtV%j#&6=MyxZQ0-Jb%s6k4>W*SG*+MBZWydsAL8i`B)4GZ$%oRM!R_ZIV&o zZ4;3V|5zZWSMhY9tQ=L|N#J_$Gkvn>pRY)+jXO`bD5*Pi9(lWAi!q!wL?MCDJMQ_0 zH+>dt*L-n&P}$BzK# zIa$=lK$_#Jzl*IQ>E+yKvIshGftQNo;~!Wlpw#AhW)M%G155r-?~9BTxKYDXxLw{( zM!?$6B1Nq6E-cI&{(52-M5Qw_)m=))R`sXYHzqU~YQldpKe(jLVK zNNO7qtFi2D*05Nc*@d>*(dF<@tif5U?GP|P;(~96hCdH(qA~bq zrFu2A2jWau)xDf-IU+`yXvm1@4j*_6-_!c; zmkX<>Qp$0`FK?w9kp0gG5`YftU#Y$Rd7?#6tC{)WaPP5f*VRNd-gyfrBeXg#OlH|- zCF$R7Dg}bT{WV8CTw;3BYq6eE)twQiD=_yJKYbmqyAvwVm=+aDtAWHe4fka@iY9W#XW2! zsU@);F@8+)YVQZqeJq=lM}j<%4Yk@xb=%Mr9BhumB*rHzrNR=kI9;D=jL6eoIPzRw zfR}BNU#vO;){jmKEZi)A27*n42$hG$64N|04l zoGg;kz<9qh&?>kBgK3^7H{jy*lTqS@wHB_F2zEIJvp;|A+{PjDKb{r&qk&UWF(T@g zx|#=8MvFL?lWC&~IWQM|knXK@@rHST8t`=}kUx4PIl$5njj`JZ1pS?9=q1U8qi(9Y z+;g+yGY?WWR&|IxLb9bl{_fg3DOF?W zV#1|w|6Mt%lFG#NW&A7B@z?QB!&=&Lh~ut+$9A(`U`+utCfIJvB}lw#D$LCw_dg~@ zO|13OlYmL^Tg6^Dvi!wWF5Ll-|HvcbhJ*mfQRTq;$;R)IG#rnLo5(um%xTRdb>G+)G))`;e$^y+_acFA&)!lBno`fot^IU)ms;f|}=kaAkShR>Wgl4a4 z`_!K=HvJDn0(?)K>!BuT1ZmY`vW?}kxgEJm#imLNYz#anBG!1poa-^xF%f>D_=4+l zt+goPo}~u8PtsI9Z1xf9aPKkn{`>Js8sHMtkFN}UM0U~h*vQ^5Z|PHU2XtykZ9N}b zNIkTzS$wztx|>r$ z_qls(qy#RgWO6|E2DFEH*A#H~`c#VrF8c6hy*vMM)C(9(y#Z2BXI20?M^(n>C2S4g zb=_GEJOfxGh$sil=+$C+ssp%l6g)Gww05;}c>v7%mp`yFZjtkxwkSo3CW|HQdYak@ zBX#CI@W;P0l=U|xIzQ^*9vYnF6&_?;mdN!vlOj4FfJI;QQL2Ga5jdg?#_0kyn~3{z z@xfawd8Z6!ovzKH81*_w8=&*GXtc{vbItZQS)!c&aN{F$bOo!%M2+=c3bU{Fn=8}?kO=*8k`AS8S7&&V>h?vNZ2K68#Uxrytij5!_!P1mI@32oKYJ%d7hfB3k}k88Sk0*uY%WqBUZw%AF>X z42C5!U(f@RAEU7(z8eGpqgn$Hy6-H6tt(gq;@HBRJ$sZ%3nH#XxN>tOObeF;0a;Qs z5(VC08VvEg&ap4-Nq3&O}F?I4)i2A`l>lDLG3G`(p zr?>{zB2}{{ZQrWED?eKNUf``dvYXNh`!>&lJomS_ijY+txk3eE>+DYP4n;w76lhW)u9Ec{v;C)Ha^=2o)?N;@l?65 z&PLUH*a0fv2n|bFmP0Dk)rfDt!D1;IU?vPprS(Q*GyLz7n&j;oJW}q%>z<035qS^B zB~>zKH$P}iFzV-wI28txG98t>Kt#!IQKhX12On<_cZ#%flBE@*T!_IDRo5J^#);2F zBOrGZgYO)pOXVq?t};0&uMA==3gp9Mk{y5Hks9D%B8d&)w!M^*D9|0~ z^|n#SA@B5&S&F}~JdX6Q3Ff4$(K;g!rpLah>Hq5{3_9fFR16;0sj`$SfOa{gxKlkIX; zY;;3&#IbnUx?2pln%I_%xrD`VDUnXQiH_>;bV6?UQi1q?FhDuvs6|U~?n?uU0N2@W zN@`g{KAe7OaCB+Xv>&kbi*DYnH5Ims=w=#gCfQON2mmQP(SpxziOCBrhJfmVhk>kc zA-_V(so%vGPYI4n_t;&`g5c$*G4>0d+^e@cue0OXckHvb%nDpHMrocNjEJSB#89KC zlVLy9D#hiSnlilky9=pq+iM=I`ot_>Oa~uv9o*UJpdSlwywifcN*45D_-Dpk&x>t; z3>;xO2nAnF5`ib?pdgae4ndrYYq4idP+SJA<&(~C9kcz6{zoJpVrAX?&RAF`=jAXi z(WQDxP{wy4N2J%pKh?sX*Sm6_xa~&YOXNguG*q21ZW4*I%D~^}J+>FstWv^h1R`^o zPg{sQ?fzwy>WCh0ZGdPgV6Fw0uRSnzL0v z+tGXnt-0Ii)pT{vxQZCM@;Ih8pzX_oUNLfiip|E9T*l!^J$Hn;7W19Rw)fjC zPHPcPeK0TQaI4;9bP6+^YquQ7^WO_Obg(a!+r*N4KYl{qm8z6CSBf-1srjWiv$pCu zX7xt^d8ZxD;z6kN@(03DczO4OfMjadJh3tpy%YX;g8qT>Gt`Kt_A7nP>yU2@-!8Il zKQcD#vrGn~gVh;+Z#dLu`BKK9X z^<;R9(!QW4?V^*7Fa#FklpUT}JF#)OEZfyOEW|4UZ038Yl^Mwv3FQAg)@KA5+dyu`vp>8jSt{NoT`Qn%-C!nbn z-2EhK4?qhy&)sX2@t7l=RvS3Z%8PQQtnfK1-Rkfb*O)2u-0lP>+{tu=cU^I*5q~95 z%-J92ro*U@D7#8{S$g_}!trgC51P_B2aVBKG~e^Z`*U|oVzMUq^i56nA2JWEd_lf=z!7VpyAmI_JQZ_%X)dc5UcnPLwzcw zp>N5Lpb-#L>l!_R)VjD{*d~;WxOS-2oJgn6=Iiky74F&zU5+XkK!}<-BFJ;;^E6{EME&tfpe`q& z%1P{d;99^+d&qLJbHR5Rb{uMTzGkJvzx+jN!kbwXo?0_w?Z=5&R(vY1uX?L%{Iol4 zpN8cLDo@HueM8-w-AC?;t-<&*_U+9L6Vd!|w%TUH5}iQ>K&2Zr%Z~SF5e+SXUwY;X zFu=lhh~ngu)M!4Z-=lG?TRW02*s;)|6Yz1aO-!ha{$BpH6k}w0g0(vQ@LHWAhTTQt zJ1IgV20$wSf zc3F+ucZXW=I2PiTCw6fD2(hV{(FUsG&^;p8Xt17Q?)PW}dN!(wU+P08zsGaY#->&H zk5G)YnwE0u0t&s>z{zPGHYtfPQj%F=2@=men~SNAxG*q(`NN+aG3(;YvrGQ7_oDl1 z%NYLh5dEe#nHQa(qHM8cKW49$26VHT)Z~tx3(W0xNqyWcByy-|l4RInbZl<7yA?>R z3_#%9Yquv;u?zp`Wu}m5r@f^HrONVsZ{94uA7rN z_0^cB;-Qz$U=)+Wo{n7(j6rHP4~N=UoACo7@8gW6qLxO8vTw;7<=x01U$u{?dW9Mz zMXD{g3$KKlanxvYUqMc`t(| zCsqq?Em2}2n*k0dYAJo&R=a(B^anMyDQCWr0IaORe@jPlY3zTIIrt&Fe#b^l2S>7) z>zYmOhKpV3@!~GH%@Kp7fwlvY6b-FWe;!5}BV=nDLiL1mVL3-7I2wR=H0vAYCrn2? z!SFu+;KV5-wo@xy8>Ag5PcR(9Kr1{)M{Q*IvBiOHLv1AymGzVqPn_k|74hQkx~&V* zEIS1@2_azl&Uh5b{Ngvwd3ppRvy9BhF{g@GwC|Gy=cTzg|7HY-ijZMS3OCM>11ji% zVr|+b- z<6D#1{sirPGep$243uV0NuucO8Ktq8o1XytZaJ;4Ah{fy_3sX?L;8{;x>^zGpV0;? zvO1}VQdtdrVV&)5cGyY66$icGSSe9w4RyCAkj6n+^)@=5=f9Gqmk%$UJ1$-k&u(n@W7|~sO(0k_V-(>guc`rrNVgVHCu~X(BV z%_bXY98UCWzW^UqG?^)`g z>F&#Rs!nF(a~V|#4yz7HIRySyn^X~AB~^%<>^xmmVOwZ7rY8;J4q-GKH**Hl-p!=a z&&V}L2TeYguVMyl9{Su>Z=3kbh(3Uio%3RZhv3P~4tcYDyO7)Gz~vvn^;poO}BlM?kx z6ZnG;BhQ=U0m9o|9|7)STaTKxq4L!S%p{Y#mcH*lPbI$K!rek?aez=<4XU!B zl_7C{yIr=#CDDJ=^$Zk^9DQ}~+YJC!>60-{MS28zhd55Fw>3xB-=VQQMp=4iu4a@b zwV<9Ihh^DlLSiS05tif*@CL(1Sc#1i=yPbU#5d4+hyHb)?TuOwn_JN2 zuoJ+b#$hVxu>2r2Vgd0u4WtNsJ38}iUALo;H-J*`Ifs}s=zn(a*lIrCiy`03Rlyo2 zaNMldUTk|W(QDg^xN zyO{dD>q&$my!8I%Op>nHhAQqzjoKC#Mz>_J|8IjY9WIT?$+|&^DmN~&txHH<hnBV^n&#qayEeu!R&2a4sri_4I4E6$$GbgrBqSaL1x z61-gX^E-RP#QUbIkc{a$>dqn9(6_5ESnN2MXJ>{mW+xnL(!vpqbL4grdz=Lp1t~EA z_-B;O8R?yp!FI^F4!^c#$+!56)kL{{?6v`z&WfqL*Tu$I?c1#qzs!u)$HcFOZ6~*0 zlLLg7>VP9I!)=oDK*Fe&5*V_F2Dg!J#946l{!6_xuBlu<@*>|C(lv5hK9Ih^Z$F87 z%JdzsAV4~;Gmgzo^5GwS9s0`9lkRJ4;q}EYmB>FI%vTSW=u~gae=w=BB(X)LgEVVgN1h9%r^^vZhk>ZVShIp zTVxj{))|OAyuYkq)?#kZA=MqbMt;@K#vuKjhr<__i50Jb^`tE=4wdTBj!9kq9p=WF zOi8d|xm z>6pB-F>EC}qCFWdQL@a0uF^~_HBQ?q3V%Lcd~X#6zXR#74*^KPW+qIaou1BLoZ0WzA)`QB+>Z&PUIKu zfm3?I$rAD@k|6xx*g&hOo+cf0BmaeDsQI<;?KNS&u=R1qk=j22i>YZhT#s(BYx%EG ziXiu-qZh%sDS@ivxyVS6Ij{_=5PeRDJ2aWRPYaaXlh@R7{mD)ZA0xVN2VF>#8 zAZ|Nm)KT@|2uZntQ`m4T|bNt?#>kde=U zt8-9V8)aaK2p7}V9Tggk5qv2yQx?YICnRGx_4bn1OjNrE4x#XjheaXyz5j{|lsm|RI%LZO5}mOc zud^S}=w5^Ug!vStDD`z9Lo8JPlV+ls?%OF7#x0KEFz!FI6TpRT=+v zUNd8KCD4^mw1xmE2p6J9Cgwi?%tHZ)uBN2$v6nsQ?7~ruSie@)Cy- z%b!JcJlt)e{v&%qOV@x5VlO*?CD3&_4za$S;;pFj^=1yD{?fv>j_$gJpteuRPpZPz ze@0H>{YJ7;sa+F?O5>D(fq+Tvi=%60sZAS@T>;o1I#2k!fbUPqnrG5k`2ltv&3MvR z1~g)AbAK0hkzAkZbNwAB@5rKQor6=6%=5B@D2c_E00=F0gA&WJY2(wc54gw}7MZ1 zCHP(&;yV6Pai>F8VMk4Gqwyr2Ehrr^#+ZR^L&~+5FFcb0y@yyf%Od zVT6cxE659hNZXApQ?>3wZ^zpxJiR)Y!H7`D!O$&G0PvKX(PVGnVIo{mk)w_M>U?wB z(E)o%9JQQudm%dx?8CzXZ0SSsIs^Rd&#@DHDDBTDv6{SvA@|mElVr>U0b6#_gI~W} zE04SXa)=Z38>z^iB;~%qE*OZow-z2td=w7-Ml}ql_TM>G6h7Gec#Bj24P6qz_kRdN z@^+qHs+x?=ymBZU6VU(~zniXM4Cc}ryC(x4=VRIg<%*dg8Avmzw6hldPhXXj+T`oR z$FSFpWl#SMg9|?@3Oz$vFqXaun{JfO8A)6!Xg6)C64=O;8B?Ca+v5}wx(5GD~ zl(zw?ti0!)Y)@kA*#LuLqY)Q)VN#W(U8{;SH^B zymi!8aFZ8?P~9FQZwx9Sl3RvSx|JAPQtg*h>d>g~9>|JbON`9HtuBs54tPdXG8=FR zYUQOeg1NBk`%(X`MkQ}_e^ncDJkg5FXKo}Vp+q-20`7biS5^?dSJ`0C>kd%uvRye( zoLyn9GP}r!Yb`CQ_+Y?TuF#-SNmaJD_QPE!pGi$)D~;g1%`NeQDCu|HpsqVvK+{vH4W)dUVF{(6uTIKh{}T|A)UO0I3xwOlDOW}YPBkligYKlyIc0&D48G34M;#rv^Mu&fFs9AU+{^!bKppCCAE4T;W1nzHUHPbKSM7t^a8Epe?-A@ayX@gSdNawWk50h5ss7I>0c?+Dk6~9NZ(v?IULQQu`z{V>6x*mXfACx5p>qiBzV9EjLY-7t6T z)Ef~rZNL$=uj17RWCoeBRmSWlxQ(x??C76%HU#}9+}^MBKT79sf!9je>(|J7E6yEY zf&Hf~LU-fzQI%(PXi0k5@aE$*sFP<~MU!5J%B9KPvAMcl_%7IFd#C{Z?(-{hnNkgw z+k8vcY9b~fxbv8~pu1scw+OGkE_rGhgm&RPG)05C-Q_{xvw7Ux1_)|e_TMieL znP=+wWsOLPUrW|3R8^{w(9X@HIrgy;+J{9*ZWM?P%>p*4*oID>4`+SBt2hSdBv7AuBi$Q-r&G?$2+AruYps7imgS#9xZod>W2rVfq? zWDIk@IO^+s(i-LQ&-D@TF7oGoB=l(xoug-x@NKg5;~03ks@!@-k;?_}6MPJeP9i|R z!#mM5A647;Sr_^oAd}_`+G13}tY_(0@;!~KnF=jEg~t5{stI(*|7(&dfwYFHoDeo- z=CD-2l06b*KlyH^E}95B1eY3u#g;M|fLc`bixSQ8#=L9xfP#=^26@C->{KJ8E_>@B zWgVLxianfGPWM_ES5}QiF8sV)s7s}`I5t1oyNy)xNV+cg zuqJ_>6Cv6WV7HXsSl8V`v@O)hS5Ia(8Pt``#v~?|t=Mde#69Bh|1AOjwBs&zwjArR z#KTZkzo>JKTS(rimT>vJe@szzyL7TMAjRIo0K<2`au*B$R{cOuO$FiZFE5C8V;o{m z)$dtlE%UU^Z9UU^JNoaoCz21!qZ&^H@{;f%UUv{$^Iv@4m6O4gj zKyVh;U6ck(()sCrZIS_|n|!m<&$R3fl)XH^3vjc__8TW+u#dq}W0VpLHz4!3LX600 z+*OIfm`^ydf1})P+cGc$kWs!vbh6k)Nru8f-|mJ*>w7$Fxins$jeA)SB8ghzzNX8; zP9#hzYZJ8f#XpN{8Tq7Z2e3+Zd}lS#pdGS?>h1 zk?kdiqJ)+`St*R`84a5~h^Fu3PvYzB(`D1ANnbYO?-2rc-6VxyS+}1O^}Ob8Rqk~7 zxtXyAE?KUYd%Epl^`{k#wy zTj2MeYWe1RZfi_5Ld3w>Jp|eiHvAa6VQcP_ZvMc9ZdeVFDejV;9HQIC^ z(pBDF6I5X{D5I<2|Kj`S(zk!J*Fa;>Jw?|Pxv$M|u?Bza$gL9`_B*VWUfrFUr!dHB z^HJ`1PPW;5VuCwG0v2|!%)Ik7RoO58TzEXHK zyo#V_avwU>b{LvhBnUQuVpsl(nE7@S;?RD~vINfAmH8MzVKCnu<5H(3-WBXGFlQ&l zhw%&S#?Gkn4Pt7yg4x-U@DSqA8YG|`vUB)uWSEiozTZLKCp2GcXpt`>!KGS5+$yaF zX7F+M#eY!0Z=gk}%A$ z_~XQ{wR0bg>GEE|P#?W^t)2eU16tE};E~&d)uQO!O2){jz{ad9{IG8#hsufnN(^5a z?5}6LZW$AKl)b7hCc<^(^wDGVv?|hw7O{Yfn z)Uh;EMd3ZDh0W}3ICh}K_!LA(0Y2i4XnW1cG$ecaoztMdb#bKG#%EV6ZF$3?@#92R zM`LNC7%FnosN4sIy~6yK#Q=(7##sJU|Be3*jiALYQo*gGQ<>KFY5p(rV3jpCQ9H5I zV&fnN=;hevF4YvHUg=+&Xe{gB+I6qIE-Yi4<6rwj@XqtDB}$UjKM(240ltG1E!@T` zHPXbu9%N;0e62+f80M4vWrCW>CoS7he}1wn=61S8tb8Qh%Q*eOD@;lv@3>$U=n*eX zt*Rp|2s`!bL&euoeQF`1c^Sjf7tJko2}eD4$KC7x zM|O|57OO@_7vB&#mb^G(k^*?dq~7u}1juwo4=_u5teS<^H#x}AUzNBw8-VOMxt=KSa~e19b)^Yv#l8M_hVN3BMf8fwKbmWqmF4uTD>D8NzU% z76&AeV(J?)h8~ca|HiKoM9uvUv|@h8!(`Sg)5TH%uaVPs82+3*PWejUWyx-=XPQ_v zU2q8Q)lS02Bx*F)X#8&HgWa{!n)6A4%Kco^SBdUcgGZn{WFLS&R?&t?g0YH48{Hr)o_xMsGV-Q=7#$SUzf46R(`LFvpP|gxY_SbOa1JCU<4;vXe|VD% z=@v7*15|F{T^?T9GVkKhT?~gQYK{6FJ~hAVLOH8m5^&P+v9v0_%LFP8mygLKL1%PH zx_tWJ7@T%rZNAdOZsY&bb6|Ryb~ceaRBHDFNl_Py0HrWmFoJ1p-Ulx8|7biiIiiM3 zHbP^_{MU^&&U(G!&sgO{9P@1Os)-#3K*J9FV}#HAH{cEug^5;dVo8;swnTAxBpiOE zt5?iW&BLeSTNMKG6d>Z6oxmaXhl_u(?ZM_hl8G9A73}xGa`@}}Xm*_5tj*5}A37S; zhA$SqX0V}~_6 zdsDUB)qF{~E1ce{c$SNVG2Z?jt3Gof;g&wW!`tOgTC*KoRR291p6N0{@01jf0w$_V zW)cGKMC+nr{AnW|BWD!#d4UP0xIo1UQPax|>(X2@Kr_9p-1H7QQ8G*6j*xl!D8<%bry|5Y~tPilv9zjii%?Qy|6GSwjZr0APpwj@||p}oO2In6UIuqVV5(4 z;DWYv&&Vk6Z-CB<&E9}Qza9|yZicOoeSyy+4&`(7G@)k>;KzvFn|(`?Q*JO!>?UrO zV-xtXv>Ilg;>;Ye|M&buu)%VXu8s_A9_DE)Eq>_rp-R0jPjv^`-~Wz#iQ?kUHjY9W z|4`J-Wp;#^^-Hh~hhhy?>neXx9TFE)gB$>Dij=C*Hy=38dJC+t^!Wz7k}lJo#rK>` zr4t-*Sco+~&?(sQi$0r5w_k8EVTx@;;dsTZqr+#89ITJ0fM)?;$bo1*a+iwXw#}oJ!f18lsAq z;R8H21G)MDR=loJItj3&0=&kiIFm$Whkv7k92fK6_u8rg>0baU|Ah`~%8T*0{?J~i zMDi<{&5XP8wGP&GA7W*Q(>CVURz{_UDKXfooBZZYCHteOl4pcZzcCc3EOebwFiLeH z8}H}y?L23R8`CX?s5XYFXz0%s&Hi`eA5uQ%Dw7&!M{@&plc!)2^YI^>pWzHjj*-$* zBKaRFyFQ!Z@WIj!O# zB3nn5w**n#nFKDV2J(%MlU(AAZI(^$@=X*%rJ5BbC;+2*bV=34d*hD1+P=xm#c$VR z9*tG(DQ{TAxwa#ARs!xA3jDqox1Bdc9FIa?VN?C@R2j;C?iaya+t%q8^$ySzBSIb~ zT~o58bfs!X-|t~#`9W!1<2@p0W_q!;>w<)!JF3R~Ds3rb4xFVY3 z&!R1v;6sY0De==rkyLW`gsnmk1K55?eu)hTHt0VHdDr}DVV#3zvFKSBz)Dy#L^2hs zO3tM6hBmKbbzu^5B!JMO2C10jAMX;D>)mh_k@t%S9(G&kAc=&Aqdy!^H?~1m2n~{> za9g(ssH;WM)G($3NLV3EBtR)z3wy6|DgZ5_E0yN$v9teO#?1;Z?b_@ZwR+JG&eQ;7 zJx?7ND?Pi2x!Z;VFM(h_-pX*F#gJG>3#xe4%HQ+w#*Ji)r2dlTX~jIz6Dm)1Cq3uw zh<<5~LTQi&fZIp5&vfm_g=Hr`H!4y(gHpPbT`_x&Taf{G7KwFX_mllR)df0H(&&SK z<&a7sR&%rH<#2wN?S^shE14*zOb_NDTfw9v= zUNGJ2_@Z;)ANjFq9Iwl44{%#L@x%?~M~u0oZ;jscPG#*JiiX$^-b<%p5`d|tz2sfw zpza;|Xw%+xEkMGf7)97S$jzk+SS9~-0%-jGY#ZnpBJFUU(a=SgkUr!|z~~>d3rPtBst>0Rf{`t{d!{9k=NDm_ zDA2`|NcZcoL;H+&4fo&l0g8U*>2fLCbf0^mup-9as-uKYp8yR~e={h=kGNUbsxpz? zgGw}2K)?6;?0`#nd1v9?B;5b=88nBWd>u=o`IEF@Vj92lRfvei)@+8pDdydn$eF5& z?To6VJ<#6B$T9^5CZM}Y{XdG%!l9|Z3*$cnDFsG1jua3OkPdaEARs8+A)`||uJnLW zB3(*25TqLh(gQ|!jqY-E%DeY3*xkL`x#xSH=RBXdB$mlH)@gY?L$&V?7-i>1&$^z) z#@pnJb6Dl~oe$A_3i_of*itLjhM{J<7OT4CmFMJ@30drsN~U-XsfD&0OU$@mTAGdAGe{?U4lL zI*+|o@`gxA7>UWgKCXIuNiyd@gtQ_57q0?Uo2PF>gJ zqAD_h%-8voAtGNCuGuV^@~6HSm2f-*Y-!JOh|)%0RK6eOCY8~>EtnT1GN`mC8{y_= zZbQtJ#NyC-)~?uRYsok?P8Y38FE7KSN|OKFG8b8EEb4w}{uePbY|a&yj!&c&4;+pS z(K3MWJpijRa{xnxnL#|IYFAhpB@@2VEe+zRSI4t?J}VY|f*kONG;zzvhJ^r|!df0P zj9D+|S-#WG6@{AtLfsH7W@=^BwZ>v0TI5|rXv-mG5$(Gk=3pH2**^KFA7Q{}Fdc%P z$W_hSe@Ew4qx0IAuIOxUTVrPuK!ah~LgAw=!l+q9^_-u<|J4G*Y>DE8Eh6d_Tj?9g zm{|6YykoA!vO81>w9H5H;0nNk$(63=$9=og<*~xv=bhy0m8G%|YyUnG-&EoYB7H1F zd&%vtWStdjbn>%Lx>Os2;#po5Ru!OP)Boh7_TsK)+4m<5{pV)3N5&W}eeohkZKq)( zqWH0vnM=M-`crOpyWd#8z1jO4Zhf_s%BxjZ^LWa+))>3m;> zX#CUP}ALfGf38Ud_tk zyO$@z``-%+-;!{2I~j{^e`h-V_EKHXy|bo*&K6WGY&Yw%+;V3A0sVC0Qo^R|m#Fim z2&%zp?VpIDwBFqYn63qo{^C+`H@@ICI7M6${d_hdLc7e(SeVC02S_-Qu4vVKsGdo> zXjJqB@$w2a`6nxr8E#5@I{bzzs6Ak5mQ@dL#n9F4q}X@hiM7M8oTt@mS5wrpJoi{U zj38@aD^>bt3RX(b%_c&d_ff_)+NGR5p}+L){R92&K-{k4xyAR+Gt@3mZyfrWbvSgf zk5+H3uXp*T6RIMICILtqtz41GWMsvcS+|4y{VnBP?~Ls(j?&aK-KeM!kmeDpMM%b_ z#du!d6yFwjinG68V?mC0%W^zh+Br=5ZBi?uZgLpbL7lU*y$9ePmnR$iF^6A$#v-T;C1^M5nA*4z5Q8?K2uPz7=Z%bN8H4bphnn*OWNnMO zdy$PL&wM>M{_F)$0kJp>y5ggN7Z|AyF7<+{_{J5j@_>+;o>AXaGy^6_T@_(|Ms{9RKdje-tRHBAQ8) z^2Jd==3FF_VJ7Mxf|?}@WdiwqlUfI^mSwM*`{h~WV0fb=lv-9w*do(gTzpy?ex?qa zyfZ$p`Oa8T&rK$opH0H^(CWXF)nsxV2BexahPd(pyd3YO)S7K4vTR7i`rp*dxNMa7 z=hcNwE?QJ882CZtk+}Y2)H*;G%*F|?O@}^wL2q6}sUuOoHXBqwssG!wA?E_Jm*rL=u;#{ zu=?_0lQl_e*kZZi4RhI4y8)v+Kojs9OjWawv=^5?iAT10=V?=0+-qtZILFs{m9g7o zRukEqGE2K4<}N|$kAO%P?GlgVbX<@7`%(jLdSi>T`M3nY(81((D(m44A;aAMo3xBq z>gC9ra^4U8OG**ZHIzJxRwcch<}}C#fn#hMgXrXep`ReDp&047C3>)NklPnE>FlqU zWqvymE^T7P#aKd8ZH@=M|1qUE2i5FoBp|?QW%s7SdeHhznu8U&@=XHFwwg~Uu>xc# zx3$(b4+rZZO3^|ua&7zZwN@}Q1?+qKIM{09{?;U4i1F-3h|3J~-UNJcD3H%=s)31R zDjZO&4q}_*WFA^z^7Nm^!?YR>vSVkUO`BiL;V@e*lf5XKesXeVUM5H}|sHdGju#J2< z5O(2DBh4}7$4p=g?t4CZeqq!TOmD(h;`X9FUrJbH?~$`$ryRv6<6Is$3|g%jtZHvE z7JU6(0e6ym6FqQ$17f(x@%_GWwD7wUK08cl9Efx3`wMCJR*R4S3WWS=0Lu`*hUo{g zZz}6w)bg{FR)hH(o(Y%6?qROIYni66$wo!pT9QkLitb+5j}`SM)^BOn?k!YY$Vkw1 z?78(gy@I{r{*;lFXjFK+(5HrF)j z5)bTQPKnqy<%*tNy<)$6e-~)zEmW$`A*$o7paNDa>gjKr5^?Y{^N!q zCo(nm<0QL%$8lTzY6OAo(S@ki+bt<#+j*vfPyIB0%(KrDPD#__yt-q5i7LJ*DVlow zjzw%t&lbA_cMRdICYA`gB?mVOyRg6!RbPsQKa{5W*nHUgy`-Lr%NQvVJ$(2lQ$8cv zHMk-^TlTEY$k)zj7bvO=F)A6zpw_YOe-|1i;d&{{!h<`p;*=wpcU3Ts=p$ImFCQxd z{Jci_C?2tY@&R{5R0&y>)Q(T8JXpnd%=&`c50jP{s+W|4S*%JeNVqyX%yE1tX(Xd4 zYvYPXq+G}@AS(>gOfoWc=d}$d|ort*7FlI#!MOf7fW8fxuWAuZ^|33Uwv+AcBto9+!BZQXLWJ7 z@ug;YAE^UWNajV5iSFp0k`WIwxy#eg|28CD5LpD#aa+!tDhKMdj&(f7-H-T}y0Wc}k{{ztJl9!a|3hI?nf{>;buMs$8PaV? z--}310bS^#U+sQ#@e;u)>uwd}BIL&R>u+-45N`TMd~YT2+T-5poKu^~8fZi&TBl?;UBbcG_w27AE8j!7%4v&g zHynr|13_*IZofque+o#YS$!&0We$~N>EYBF^m3G+457rmy{8PMWzEKsL+0WQlL?+a zT!Vbk0~$-LVf9YD8#uRFi%Ob*e~AT!U-*?!G_AzGeQ2yo7vyN^xT-dyfz0O;tVFK$ z>MZuyWbI!7!iM$(m4*16p0d~aQ~94~BEW1GAM_FKXB$aZ5l_0m$uFnv&9XPglhaM1 zkb*tW9A%vw5mrbXHpu2vgzs+n?oQvEb51C`465!I>rR?^V=_@DE^+1}UMUy{?sPwc z!^lwlj6<%t51dgGov2n9$X$TckHo-YO5% z$o-TrE8AxAOPbIMW?vqNA~>phB`dsslITHa?sHDfI@MDNA~%){o^Q zft**;6_xaa{a|p>k{8rX$;h7zyzCLA`GmPueDeG}Y%+@Q|44M{uU=c5=o!8oRVAhC zLvg=Eo5ULJbkhDq$>5^};L?Ecm;Vwz-J_~!lF(}sI*P>GZ~Mz#Z*v=QLvSV-`Yo2p zzoV*6Pg7iFqrqijBAaukCvG&r_bF@fbM)iOlDTLfgPG*GoA$y2hiZ$CCaq!CnAv6o zb%GP#VS^^3LUH+TRZ5QJ{Eh6dO`(oi*a);x zZ=ExrdC!|6U_GMYe8h{nFr6pAG!ELdoVybl-%dZ4*V?HqY1#QlM%1F{9#od7;?HG? zpuuzhp%~`+ZU;DsUi}L|YndFH#AexCf0>=3F6kQKUHYGJz2zBftd|K})B!_RUt|p~ z2$c;I`5Ye@i@1|6$F~l@*LN*paG7ji^Zifybhm3ztZ{xnTJW$Uz*-FG=E(V*-YOM7ui3Wy4vri+86HpR^IMyN5Ovb)7oV~ZWjFNp&u)>+=`ZsdWFInw7qO$_2!?7 zx}McrPb|A1@BOOQ%Xi`zFU?>IFIfwoF$YD4TEn#n7ol)5%G?Cv*BSr6v&<79ng%3_gj`_rbZ(&!MA z)8`{ZlV<3Z2l%dB$p&1rA^HaOsbx79S@)VEt?Bq*zgDK=P&~A3ym~y_sqdGb%9ODZ ziRZIYVsVf5IC~{BJkx*j{Kr2DTMD>miODfu@Vb_#9Sq zZ2Zwc_RGJruU-7eCI6Xr`ru_wUG&hT(WAo$w$dEC5&kzKInLpt@{EmGiBlC?_yn5y zs7w8gW(wNat!mS=TmzE-^Cbpry!lY3PXdC*$qE4Xi(_hX{KL*=@~Df4Zq@Z-wo!)a zdk4csM?f)Q0!L0{j^hL@;YtD%F~!-J!sh$IJ(*OkwMeeVNBA~yhUZ2GLgKbA;nC>& zb14(y=HxZFyZQy>vwn15@=@HAcX!8BUdev^u0Gt0y6(8&@JEIi(B|zWnel z_vvotoTa-r{kcobW5uJcXKnLbZaB1`2L^i`2#hBVQPArSUSE{_fnKAYTRwEjo_utO z^F95sxsa9u_AcBRG@7zlEoem8H`PwfYW|+I4dJwvq7rr)=ei*6ve@$WV@j?=+S~N0 zYm6()Jnl`pHN?9}m$!V}yYpA(+-?CaxfqpknL+!nE4|_Jvx?6XOf(1=Km65Pri%y+ zxDLz{Rk*HwjJ3D?+1PpLvob+6^w{|i2Q{){%(F}L!Q^3yH!E*|)X|Hx>Xk%=c4(rH zWlbwbYvFfOfzJEZzmw}Jcpdum!h>b*LsT~EmfVHkOLY`HesmxYj$xvSbl^qLA6$r0tc%@nPkHm1_cp8IO*r0S*gDq&LdTf9v;^D zUAYPY3{gt^Q#^G~N*47+@&p&;P(QrYz*|utkpH(VAXhR|~lPjJnZ;0J{d7Qb1~Us=gR_cSxx} zE2N(idi}>_juy|D&*uEa*SZ(CRT?ra^yA~sUcD2a}9lulRQVRbYZ2kkuFV=D%^ zzSaI`Ke0*rROqXDsO@Qz5GK9YdEs&Wqg%@CXH8e96+5Ai^##}d*`u5la%{KF+#@Re zyQSkhh_DUku)RM-HTKP;7Y~PktsOPkn%jF_6JHbm1Is>*PiS8#vA?Ed zS5#y~eVqEIa78u)K3b@c(`6uct0ex$wvyP5^;-*g-jbyeLv^h;Nyh=0Nn0^h{8w^c ze>43@cwgfP?>Oi!CLmZ@J#&cMA}(#mk^4wCK2CF_N6)J(dLjrCWj@r=D60kohWMp* z<(1V6g?3PKq&^F50ugt!+{E_LlgB!N)yicly^q(k+C{8qfBeo{NLb(n*%t)LWmaS; zLuFke3dlg(zH?IWT32AfQ%}V5?(FR5{@EEJb|wSX{5gICH$qLD!^{r?YF@%qII+p+ z7pz`~Xg`Dr!GuO0)^|x^QxtERt?Hz<3szdFaRA~0&nR>AaZAKJzg_!Q@)JU+pwl5^ zhu<5Ry#$+^N(T->ZODIIsv;l?_jLe)b*w;Dk26WBzk2@!t_D{kQ-4n@IOETB^K-i; z&GEZE6Rd5CZcvtFo2)o@OW~*ga)`h^%D~#~;91z#_V6NRA`jGQ9)_~F>{NoR3fv9| zt`1%3Y26ew3KLHTJ59C7GyO4!uD4|JsaK6yf{p}_T@C-Zbof75{A|&v!&vuSUgM zhvlf5E>_sv#*N_?Ol{=4qiSSAjM4tl^U2+r{04R5?t75WN4xZaBGEETMJ3W)9*!1xtd(Xv@LQCE9@t?TtMx8F9saBuSR8w>dw#IbV`0;~t|oJ$de-ve$5d_Hpr~(z z+fQI+EsnQAzMTlUqn+35V=?1}_?ulo7LY6ma zoK0}&ZW!?lW`!tRg3uA%4Qa7sW70+7$lj1myRViCbrX zr~1qM-FU{uq%<}8xdCA>UU6Zlze|**pi-tspcR?0j+8Hg)&7cbL_ziJY8tyO46puj zE7X&HpyVH%4B3>~p=#R-%CcteP?RVAB9qWlVERJHE8Uyb`mKgvSksnF@f;Q=5bVM>P<9A_W9m8o7rMGN2Ba!AO}fnw?%!|EFJ_aB}qXhi2sMU|>7Fg@kz88a{U zEZ-$;ZDu2okChDyug#WG?d0jK(%nF9OMvNgUS}o}O?_u+MSCyA7IgV-rt)E&g#wa* z?Szh)Y>WhMX;N@-#>ZkE)o@fhA}1>rDYax+-*8m@#a(p{UGFr82NT5({*CX*ZnD^% zyL95?28NQ(|Ao0|{PO{h>MkGob5oWK(~v(L1$u4q?<(bAOGJliwpJ!{0~mmlMl zf+jZ%5tBPgNxH?-Bav*X>)~1>Il&c&8$5Wqw^3+~$ueFHj#A-n3^MGx7<|&RoNu%J-w|E8e(Z@q)No<yB%h*-Dgs?7tSZ*S+_PL>d3vl1zM#51|b=iJU37 zYQ9Tgh2GlF`EGwC!WkY-S$M;0n5U9_;(bg3r;-&UALqeRlkENbIMfJHPpDIsLn{7f ztIFSYXFqtnk=OX{hY%I$?r7~E@vAm&>8`!nDIOg)BVxeEEN-BNoT1yRbo<8a-Bx3* zprKwBqaZG1wL5*NwimyPh)TZ>y)!nYgWEo?giGpAHKmW>T=0Zlo0H_kEvCy}N; zz7)ctbtx_v4(B{NA-q!ob`Jp!((svzIVIw)b%Kf*?CzXy^9|;TM|w)P#ptSD>Z%8&!o=N3yk;8z?wv{<53ut*AO~NW(HJ?jil*(3;%6wi>2SB+=H%%J< zpqEb53`@mJhrar(8rM{6T$$%H!M{tnX-XMq@;t9A=0)tr5|k5pYR zi=T@N3J=C0Mhqn^o7%qPk ziFpcPIbA0PT@%8~t&cQX6gf)_MuHRxnQn^AZUI&dElf-Y!I)*F+vy9>-TQ@4c>N9l z1{3a36dd1!K1|OHSYAMTcn(2*m(u)9j-!%q!k`Z{CZoZR&^Q+b#bWG*%bL_~*H<2c zd>TGexWg;W!C)S+hV#J1IXj=|&pph!P1+rb^K#j&ExLfc8!}8 z28BsCU*j-qP(P16#JO}(bk!?U{s!QfVSxW#ltz|4s&EAB=6-1)?-@W#;d_+!*fJzm z`lFe*toB2$_GT@<+?G3DPPgdR>iVZdS&HD&vnUvE%j$=zblJ0@J^S{nU$_S5X8b6P zvl6k{M9D^6wjJBn^sk2XcnBsIusUZedq%4fK+)0T_eQyN3+$(q|3jsjY!yhYE3xrO z{p~H<@w)74=FF7_m!Kucf96{qT7j4{L>ET0v2$1%m6iQzAO-WSApbTFIrWI~P$LC9 zu-ybk5l7wCL6>7<%{-5F&BMQzrymS_^B(*aPdyzq!1!dhcd_Ks9B(8;ZjwmXsZqN# zQDjl6VAQaU6*K3oa5!z1&jG9@J4YV>7!4t_92l*uj7ADsbc=mAnhlxYbUuAiPQA&u zFhDEklij~O_N;bL=29awQ~MjvyTFuVM&qidXcwEBM`h2A@(6f_Q z4@|Z9*XTa|y%A>NTS#oactu#n{G7cD0n7j}cSe-wj z4kkr~4PE4aNk!?1+&w&tB1pp%`Dg$WdDN)N$Q|LCYi~FyM_uHTF~%vnrQD_d1e~qh zvq<43|Jzk*G%quO4G4FQ+E`~ynf^|u=^WKc2>MX)VbrLQ_v=AEo5wqGL@e!*3AiyG z1tqT}|K)WtJ`KO(H<_|b&@&*;e#a{EyzIgj*We(aAizDJZXLo@p+d(1{@_Ij43R{u zC&yDr=?j7fM_uBqeGI-OIsfSVc6sw{h5j`RPW{aHxmDOZ0Q6XiM;(J3GervRLDaka z%i|HeSvgBda&%|ZcB)w?kHWURv}nrX6X-uxgrQ;dSFu|$D^-LIpYw?IeYECHQOh$q z5T|yZAF!Ii(e{+Hri6Xh{=r4d0$Je{z*1Qo!#3IV+a%T_XYH4k~``3i!0p?xO4 zKbvF2&djpMQ7NvSy#JB;EU#wTRfwJ9ORWex$cOX4`G+RRs$7p<8z?Rh$R%gv_A&{} z@@MB{^)KRr>=t#hbPaFOMQDiGkfw>{y+Ngw# zG)WR>TrfZ47a{ekF3W(BMCh+DBrLvV#A<{gZ*(wZHAT#0;T zTh=#k#G{3qSzxV!l?^QT6O|JwIp>|B0OZUEiL(24i7M=boy;aADoF@YXt=-;=5b%* z8H6#kS0dai%rQlF`dDP|Q@nJ4&Q7~L9Hfu!$D?{Ss@=WJsY_S+wV8ZL)CQh+39PcC~3?+Pd@vfiJkxHxoC&Bl4z&b6L z7vkIht${+w@qNM9_)l>=i=lfK-ojl+@+NN2Z0@GkvvZ8aalDvphCf|q;dpbHt0fvN%FBQp zp0+;lS4UdnBa5b+OTV^mHU?7y;AF$iDl?99XX@XIB>;ucI>U0>aYf_Dg4ILeSA9#h zTNbJx^>>sNKk*9@twPT1S9G7C4uVa!U&;;|M&~bV8FR}%9+O%k(81;9#>bKK_ zwD(4mGY-X*pPuCYY^u(M{3g>^h-#EtxxyWfqXeCmj2uZpT%s4HUgz62p^O?w{!dTe z*F=&<7gn-aape&-vej5H_A;~xOgM_OhQ~Rd7>#flNeCFfxqFGxV%Fv)7)d(C(nZ&; z9yTODQuJ6|C=Ka>QT@sSC|Lss#P*RsLeVWLr+*Fo6QDnd-g=ld@C9th{P9J51A|Nanb ziYhI9IFWh!Xib?rY4(L%x>ih>Z&Vm6O7QCfVHbkB16rDSM3nIh8oGC3a}^Xn_TGNT zp27ov1o?EZI4|n@d-brglpN0Eh_jQa#6^E5Oc$#$S8Viower1>7pyD&WHEM5#frgz z`7-@tT%>=q2T>}-575pj*KEXQ3QP?4twX{+a4xk<$oD7>@Eo;4{+bN-d`SApazhe=HO`Vs(FbPHnOy*T5JoY;}?rx~Ayc8CxBhFgE_FyRcSS znHXeg8*3H-BXid#miL7OsDin2qx4kWcDaP`)B0>sqNBq=#_A!R>>!n{`ktpIj`g)} zLdz-^u-8eq(xsdXb9-?D&xB~m5)1c!JqG%Zeh!}vVu%z~MvYD_O^58W_6NUGUB0$T zE-LK?v0x*W1qgkd4f0kP?}0yLKRgIwa{G??1ZJ*iXKMAx%PUJe%i(8Ru~WUkoS~TL z0*?qJuLc3zR|onYojq^J-P}z4sblq|izX$s9#}JvKEYJPDLdRNem$xtIe)X**z(A0 z#kd5IRbK4HMtqkRvCbD_ko%IRRC~Tty zM4B-c^pnxOjo%FX+iancEa$_!-Ne;$h1q#NDPzQyyb{lu06}C;-d$p%{q}Gmg;u=| z&+f&1m`0XPhPO)PP~&S2BTT09e{8d^sY*0o%YQBQC?&%-xu60eYlr$3<~2HlT<39% ztCqt6D502cm~&&)UO__x7iH8yQN>4bdu5dDulA2QO?Jn`UH&EERCV+8+r`#T6SGMJ;GPkK3dQe6%T*h*a4@@WUblq)6-rM2hudFKfkXp#*h zcZ#wOR4rSf3+EbpX41BDTWa0MVAge<_t3XB(tf5A4s>S9A7Ffj7TI=UY8)B_{@}_e?Z1G=n^*6j(pn-eLm=Pt!Wi=1{{7nN%jeY2t2EsLh65)sTerx$BZJ2|f(P9$UH z4{t@lWX#eg zJDRiYv5bN>M+NvE5kh>L{RU)zoke+=O39y);CQ5sCA5lxDgq*`s=NW=q1t{0W$hDc z1&62!y4dfNq4B)J!8vr`TtV=l(7QOuL4Oj}l)_;sEc|||9jLO!Ai zY*bKVf)Uac1{YxWrxMV_nD%M!`q^f8a2h|@*3us_Zxu(mH}`7!?UggcmpNYqY=shO zpJ?ge**+vl<9nge++QD^zx9++R$tfQL6uGyBGo)c)3tW6uY?Zi(^f z^p#)erQvczob2ua&QIi?0z;0tDrjU{HEQ(~Y@ErM^R%y+%UBd#EP9ev<9y$4N#d)( zMw;CyU&o;&va$Sr?na@bf}fId0IlDz8I|^H#0HH|4{=2hV$F0r7USn3HK_4aQv9v4 zDNG~V9I)Dk6jbp69In~5c8PAM@Orc7wA@8bzu!_Bzz)a*ooo8P3JY1vsg?rC)K~fw z2+-5G^=pS4k(wd*H$ED~|%tV6= zR}d{FCbJMvD48&E?|G)azcEHhwtY5y{dZ&vV7Rnl!j#1=3PXrebBgoUa5}Wd%c*#! z&e3@$Rf=b2;?u6$$+1fkK&z_VTMJN}=efu41qfk*b z80NuZ3l>d@T@U=pGueBZ$ImM9Vq-t1f^Ve=5L_~P2ri(rPTU#0g=dF~bupgQ?F!4C z4s8V4d}MXt*Gs%m1O)g`NE9ac%%SmssulZ59g~Djv4J=Xj@bPevGUUSwa6MJUpV#1 zmDr^M9bXQaaG>bs8`?StP4=f)sIO#xFuRpvrq*b4P0;l~^GzBr4btesT-t=$u>Eol zV!*t0=k4=!@Tpgz1%BFlRj$3byE6+pU{LiVYd3fEXLfV>s>n;P6TM8>lM*-JxLSb6 zgHR&*Z?=8G#{+Sj0z{Cz*d<^wuWr_YCuT9l1#}Yu2#^$t_V*3Gs z-?TQ%GbyMsr=#YxM4~@X4A51?G}rk&CC=k@97q>zU6{0G?6Tce%w&1KmJ|U>t5twq zW;*?z>w&5m_*Z&58f`9k#xYrvI0~#1_|9=X9|tJNC0Z9c|GvVsMVgd!!m{G-bY}l} z=OX?vE3(bf{lG4GD*}W5QY?ac@W#4T;?Nu{Ryj52SjS;-oq#)xZ`2r^tD}0X_p-ZQ z8eEb3fna7DF=fKd;(Ss=W;0kv7M*c;1-)EFBa_6c($9J9xAh2w*s6)BEgDeu&+}bI zmjuy99!?h8@x8=gt1c+QN6Y~o4HA`OXcczkb zFFxn=@wK{qzVV{GZ`LR?Xv2j7q}Dl070urZKa|X#9ucV6io#U;DSTU%kL%JBU>J%c zOOy3?#w4JedrqGU;=s=G2Q`)XY;atp5Cg5e$$BGwR(3ZLXL1cid|bLJvE@MU`m!A< zY|m}D%u8hqsKD>@C#S-2=&U*B9y%2CFLoh6RC(V2H=3^6h05IWDAB91u8D{h9r5RU zR%R>XXpZf$A@-#z8XK4n zURGJPzSc4p;L{52$skKvJA1@6c6^T2(|pEv+oG#FJ`SDbDB-IoXl8i$->P!0!u7P) z-a#(#4F+!(G_dmP4$^0ylM;iMPRoA6W!o-C&cxO~y3Zr2Jt>}cy-Gh=#04w znLMgbe`dg*Qq>W~AXW3OMQ{*Jx=XSDT=U_)HioZP=dv4@7v4W7D{jgvzecF>cfxaZ z?vfet3)bwb8G_2D4swJ|`*tWtB6lif;8s8;AGg&;9Mhe@0T-_Qn-3V1BfviB&Gu2u z?<>fI?zZ7WhYz>gzW%`3Yb4J~Jh8jMB6ACfGxL^~h?M%{{GLCvXAqUnhNIYz2gtn< zVpZ%+uGrUM^*#Rh&?{w`7L>7S>_<5HNq*HAW>t+EDmd5K+GP|eJE=*-`1%(t6fp5A zw44kW1=($Rxvuvd@@=+*{$wkeQL!sATU#~_J?wgHKE&&O`{s@m!_GSytx?}5!e=5I za`=4>Eok9tvZ_+RzY#F}>a-|7{H8HQU$~pG(QALjaWcS3@+t<$ktm*zcJkdj-4}sz ztq6EHzFkX3_8BiNu5yTNIqyC}0aL3(-V?n4n019NUVF~bM(m$<1|bC&{G?}&YRL4# z$R;PUJLaKab1G$LVcJ8cW1oB8fhR$*3L9`Z1w8Dc1!B*A^hz_VY_1Y+R5GVdT(!RN zIj54Nj_v%xRJGp*gRZ*ML-ky8R?leAPmIjhu-&mZ;tAlX_zW(IOyxcjFrCVI(@89a zEsCI(on$@-QS{u$?U#=ou+@E`HwpOG`O6~!rSvn+1`@8!l5LhV+vohbyFFp41@ebb zGxlPfS3dXP^}lzq;ivd__e`cuS=pW8aZxh91H`OipG$TrEeP|p075^L{|7P$7IzfYSe3H!tP|=kpNx=+@1XcI5gk zJh)0I%%;KToH?f|%ASYi0W^tlCPCXav^u=z;cce(i@r(cLY77MQzGy6(gOqZ{HauX zCq11KiK0hXepJ-q0#p(!k!0GQD15aWGf{pu=kc9`1?&?7W|c4kJ|1K5jWOYhQ*{*G zJgAu<0TVj>d*5bSf1#|3ECq!m+(q9>T(Ll`nxVat}Y|&xP9yO zlB~R9OQF8xXzT;PUN?M`NVa8jrpK?}L{IK~=&wXEtt!I|{F*4-KMm*gO(NQsIgY&7y;L;0Vaw~J(671FZl99{iYQ4`8+VJnBjw8{o)5|+y-YIZ9$&UJByD}PQ zxMrE*EBS0`z8ko=^puK(TLq{0Me~1XO_C{WPsxqTCoiBGP%KWUQ461T>;5-35-xM% z8R5yWc@go+a5_O8y-S8I`VB308#_n9KUgWI=y#(#hRGk6aNxqvC0$N3$#)22O#I6Q zSo!aDF0O{iTok2LK$f8H;zFL%k2R zq569c2Y8!8Ha~~AAO8s-iuttr3aQ5Em^Ag`N122*A6>w#psqS@x! zD$V2jg@0l4w~RhC%Xi(o2I1Y(G?>S1h>IAbfqC2L@HmFsRN_(LQN3N8OsJ8XSgAOk zC&d#1#ja~=dd$)gEGMcA<>I_|YP<0U# ztNes|WG+j@+B&Oh!)O?hRTCD>Xgj$q1JJ=rNNZa4O|z%BUj|%p&F;>~mtPiT1fcoH zBUSJ1K7vYlJPpY-35R8moUjV7NsTo^$;s$M%pY3L9)=Tv-BUM~qE4NC_3x;=Z*Mz@W=}2MEkVLbLg^oDN4>!pU@Xd6 z?Tf+!ehH^fH{sMHiK$hgvHJBA*GjtZcu$|2+X_LsLMj|f0$H_|VeTAM0E;;k5(pwP$$ePvNRNANcUmAIGcO66QJ?f%({Dy)?DGYZQZYrBYzM`v0b0HXK_ zw}P8~jp?F?7ZlY#SVHy6AT;2Vebx3TY&-<+?K>fEc;_zN6N^#>*}qx0$d5kdKejtG zQ!5v>uoJg+#;j0mkzq#!Zs@8)JRrw?S?!WwF#kjtswzs8(MM|=dl0~l{hWX4wqZ*G zaWLl^psX`O`RT$ii74eXny7Y#plXN?Y!G7FxTlL=X}Q3xn68k6aKol1$W9w$E7@VcQa%GOVM)D;Lg3Rg zS_Z{oUFpbcOqa&2BJd_$+6%2r?D_^z{xjZjI;V3-SCXo1Uew(jilK^t*BBQ{OyNFx z2u5ODoDW`}%?D}*Yeei@oap>4d6|Rl_W_R9QZT8=r<*#sGhRz)XkV0Zx9bE zJD_=R(8(W>!Kand6pbC3`0X@KtY;z`lxcBFabM`$x(J8fL}jC}wtsNKdeHKfc<^(_ z$dB4^P}wr;znevA?108!m32S!N4qGy$-N2-4mg=At%R`~F{@5>S;Jg^J&`+uQo*G3 z{`d0=BOrsJ>PVG@c9VVbsM6P8s=t~3Q9>HIBK2gWd9EpIK9!Y`z5NICu0LO^u7@o_ zUmM~+IcDLVkc4gJb}UxmzOmHYDWywIUCFbuc52mjNy@Bv?@O!RQ(Av0lfEDZsgxq4 z(?)!mT6wGVf~Zj)+m;ABK{wQTC^n}i>TUX40qbE_I!M#a+Sq^XjS~F-(2g-wq*GL+ zR~OF0uF`=E`<9*rKHTN8Rq<|u^era;QeF2^5emLSN2!_=N16lWn7^)7u;(e|5P9m* z!<@}y*}wbE3`B$2dGMnSCIR+W;|bU{gEQ=+9Y&9>YQ5rJ$$ikur~?fBSvGs%l|t)B zKzRdm_j~t{6=#dScgUi|fAvnv=o0Tj#_a|Dj_$tRShsSrG(4^-G27P9CaJ4u-8P|S z9((zm0rL4ll{)gVL#%hoUiE_^6ACSoJLa6`@PH3eJ(<{_3$mF6r}ed@t!>g*XMHYk z=EFVn`;}P8&Qe{T;j)Ek23ZE}o5g}hfDUr86cU@X(S+_xqHc0n&HiRwTA_0{`48ot zBUxEa4b^qt??#kzS2j+SHk4Dj=dWhr2LzyssfQvmXUoq0r+ey&kEPi0Hbr9^k^TS{y;J&r{EBSDQqcSkUc`8RmbvD>zy~ zi?Izlw6bq#ire&J;+rqgr$$^yzZO*2F;NSf5l$lqv$}dUbxK536Ufk)Ixl9}dj1^F zs{VbEQiUX8@iVQppR??Cj|222%Z8?l@{}5&&r^I*=mK+2KqEyT*XVDI{3kC>6xrm} zcVzZZ4!2bn7<~ML2)XGv&&R#VRvDg8Ml)-jA9yp$0o;@NRXb$;si~?@srA?d^B@eW zj)Jhb^nY6RX@c z>)=<{w{!V014%1^8ifzquBIH#%OPjn*$zJDKf`1z*4)B!qx6hu!1y!9)Me zw+Q}yhY0v!KG73k51ZEH$Y;-7t_%pI-f?tj=%HH0;u8-Hdqdf5(2v$lC? zt6BXhfuHkBaTb&tm8)Trru{8!dTk*CsY3(Og~-b&A65yev*H7+S&>I_L*}$5nnE&`mR$EW<7Or*A-2%0V+U7O|CNIs zKV_o>&>n<;nNraVcDN7Hiep*}G<|+@5hqPJ2+)WNLl|af--k*o6uUvf-L7C6x^G%$fX>pHv6MJD^L*E?*=;fEl3Yo){2=#( zL0T65Vqt4z@i*&_7q#nGd)`tY+BhkMBxC&V(R|-$v1cVyL{+ znBoRszR1bI;0}l7q%Mq6MN!c|HHpRoADLOD-qcLgq}OhPxx^p)+q!S?sJnR3>Bn&? zFq=$%*cnhI$S^OUjmGAD;PYpl5AhrP%P7SvYy239yXGkT;db(Y%erxJ zvzs8$fxE;frQtB;BYh>f-oMxWe}w;y?z;b`_4)B*^n4^NTTqHK{~cO~prYfvy&rqj z63C`rOX*AxZ5%X|Fw2T3%MtnlBlWfh)+QtEh#;RQ#+s;|LB|Dkc^toK^1iznz52!J zR9LZ^iK7^m7XI}Q>D3xekGe#BacyC+HdCu)I8gE!JLPw@x(6{@dz`RlObVy9f7O3S zgl`!FA)l&jct-DMR%$g+5yR{J%MuThB<7(Ru+&YV=cBJ|H6RZDWI=NI)A~sjz&ZuJ zXE}ar4d6DpKMK-=J2?;Qq#Z2g*EjTu4>8RH<;1Fi7^RYpWKD0#xA-_h&AJP1Rk1NX zG4>J`q&5PSmPNKoF!oynhxgvSy)C5wTs#3sQcXpe|4`!IV5#3xRyKD`G}L`jT@Gnp zr3GP4;Jn0wXK7BSOHW?~NmBshvJ@*wN0_v+T0N0$4(Td?9WoAg`ssXx{ia8dN!rqQ z$9eT`%54dbh)*3+qR|r5nKyF3#SODHsdey8G9o>S!t}ak%j~7B195hRNg*<=`))0B zc;LkbV_A-F3TGOi*%DMPTcoXJ24eS~V(#nA>YOzHK zalE_i28$kgI4CQOzxpA{V()gEW$*4g_)GEXS~65hCk*9)bbAUTaDmc! zUcck$e>Npf-9G)=_0%=)Ad%SZt|>QZ3rv*96BOob~fiuL#`qJ%1@2Vfg%*$^W+^F5-*HFI(Ts%7G@&hZ<|@qZH(6hj7n}B z5B;}HUu|MjlYmmvXw3y0-vygq)5k&t)kKil?pam|$1sEz;3sm~(NaX?ckLT&ENMM$ zdc!qGTNI9vhv9uJ@WIxErBe%p{SnbOaY`HR_u)2B;y*hH3R*Ckb>e=hh-SD?*ejxV z0(73QEJOQ|>?K7s7A2Kz2a}J7;%K#;#ItT9AAVlbmXwtwx)|@8;RCFa4?}_~L&ri-2?~A-SY<2}ld9 zq)2y4N=rARQcEwnG+#-sjF=GxN-xb0*F_pEKwEdB6HV zCS}a@LH^T)-Rta74tXSwNkFQF;F$0$elalH=YR^B2A|h;8kA-xvhB&iN&G_6p0Msc z_1g7?y$<(`uXr}v_qO&i?Vl5Vfa5kaNq5Ze9{;fDPGomd61SP^v_n6FIADbJD4Q4P zXCQogw)`glZB&BPBJ+7_4Jo>7gpF|Jb_LNq`F$4m*ej8P{VX|~{H=)8oY_M12VN5W zit~$Q%xzE8j?V$~q8@rRC;sgMc8eYAXPu?TRCQmMwxW|6etmBHT>o{nn~J0Is2%q1 zx{pG2WerQi+clIZ`;Rmt(Qr)2(#~TXNbsg@mwVb7Nf!2WYAg0jU%l`b`J8xLmWH2t zm7qJ$`|B>b9m}oUxv;Y8OiAH$Qp3*HQpzFeD_qKwx|MRUdBM%1Sj}MPBCAWQt^(@% z+5;y0(n`IQI2}qpDF*qhvq^q>5tod0`|bFWsA^INsz)bTcLhHo@bPta=rzFwQg!cc z5NbB0$_>j{saV#&txo`J8vcc@%tVRhM=#nwmZEIwPqQm9t4 zlorfkpSPPoX}OBvOnx)J`T+hmsC~8Kc1c9c(YHzB^98@^%o9>QY&ho#7W~`l1@3kn zlqadqEwl~V_Hj+}ji!nh8#<5JXmCXvV`?w7w{Ggzi{wWD&KqF;XX$y-&?s_+Pkh`#agKdz{ zYlm89glZTgbK+ldG4*xbky>=6;)f>wE+J*^S8T`LV~bM(Lz2bk#ik2@IHBo5+|=a4 za46@?>H$YQu-6w~X%_7P?1}XFP15+K949~~!c9w_4H6aNKrUN)%)n4Xje?O?3yk^@ zxsq5H>axkr2Q|(Jox&(Oh=wM5>dF<5BldOt@LJtGnw6_(i7usIlW>2a#jA3efKtZ_ z8i(p}5J1YGQwJI*l%giLVqu9@CVinr;m#YRwK|nHv9MI!Eyox79xyHzNNd_zBi;nx zZ`Se4j}c4re@8MD@~AWjrgdHvvz_86<3|eg;8n%+KoKmgbe0~BQ{DEw!xd4imQjBZ zi*^bbiLxA)TfM%E&GPEQ2$=gDQcc8*)auEQVZAT8A>h60C{sYAPHTXT3DuQfnm=IP zEGkj=)Znq{g)ryaplr?cMJn-#T?fS2Hm4v$P0`jPDTMZUqHaIEQ4pC!=#E(=ou-zF z0)C{cQgE#rTY4ufkuAb3^?k9L${?;rxW$Y4C7%D9H+uI^Rbrzv`d39H-X$l?=ZBYd z*8ItBrq;x1It93hr+Xs2!E7vN-LK;@t3Y6(da7&#_g~eIP1|F6uP#P&d1^&Xk{b$X zCuJhKV>o4e-!wX{L}G0$U(WESi`UBZ)SLvgddwDnqMpV&7SAH0Gsh{ia$o8`WbzBK zJSed@{*T}K@&#qwd>A3?hlqd|aUY}u0v)KUao;?&IYa}}C=8->AI-8E*abFbsBi^$ z#mC1c^*{w1v@4U1xR*>Nk|K_vWsGd|j472)*h|C{3sWJa)dT?zZ}w}WPj&qilJPBo z_t#jSZv;9{++(NTznZ$~-zZZT=c3Fub$7`&5+`&=SDp`s>cY42G?%*NGjmsJ53yha zP4PCNF(BPJ@1iWv$PO&O8tTVRKvqO%2puE7sIRCI8q6ZDMjAHaPO~s?9KS8Z=ra7% zqpxOvOV+jCvJ6t);Ag_9{ZpE{R4^zCUgjA@QI>q-5U~Qw?9) ztOUQ}p61CG?Uf1Hgw~*j9bs|iVB;rQ{6=fMQnXpu;Z&qbr~2j*M(04xv@>f!glZcw z(tZ9{0E0s{`1#R)RtnsRiHD=A1o#3GWy2f4D;R9YW^sYRD6`FjK+VEoC~EtviH$e6 zJ5u6va6W82;<6Bd?6naSio@`_i&~f<+#lmiy4o2|V`F#rZKsYndof?EhV1R}ZhF~E z7N1*)mqebgnK(ss^o)tg&6x|#tlADN&SGkwlOo^3_9%a7vW8@c!UCS}ysOcImNHFI zbPBpXFfyzu`}D}vy1g;(DcX?9mL*F1{kSRf(PXk1hyM-Et!PjMC9Ai#eYugXT`(Ax zaMWZb(DUY45fMSkHBH3iHGa&%q*8k#3#}F%aD4&xQ$^kOG!K}(W%7r%E;|4^zpgUFZi+u zoW$;k&xYGp2G%ch7H_j1K=JNMGy~$oaTQ~nb@;t{(3vc<|Guu~z;2rY%V+(0lMl82 z%QcYOwJVF=WEE>dO_ioK;R;le90naoY{rrM7RZ>0Vl_%7(~a2_Lc=ti;$T1bp$+*^ zB{jTxm=O#d#;+;AT1KQy`QCB}vhJKv3&E!-RZ4SB3C{3`?I}JreMl99`zAOUtnhk!NnkNS}_^s3Cq2-ec4^+HGFfnd&BdS*Ef;M-|&h?%L7toaV< zYBEyj$Y{|?ogkFRMF^=&Niu#+R~pT-mH6V6wh-e*+#C5w4&)_0&wGV|#1f9pufmhB zLtk=P)#55js`u5xwo!KZu%oZ+G2nu;k=G3A{&M~CR$+H}7L70)3@YXK`c8r$X@u+J zOjz9ik`DiKIVyl<0tC~FFGOt5xh5EeCAAsu4{Y&<_66=8a~HL2w8~Cg)je`x2Bh{X z`^6BEG?`Duh#EXwL`~NvNkOAii$RwZqff34_ra+4j*MLMt~}12G)nYq6+ll^wXy`I zc60oT%Bjy<*UUZ=VJ8{=8hJ))-)MpxmUbzZCjw2Z9H%1zOh~lVLzn)&9@<~*r8uEp zievQsVnwfAYFZ?kU7+!*4Yo_;`!DaNecT|{X*04~Nx_OkwE0jpYvqjwpk@JK<-p&d zkbzi#*+B}mi`>&>Gxj4(y*_uplS8sPAmt!&3*kO*_`KEWMNj#j18h4}zrNUg=+Jv> z!=a=Mj2v4G;xr>muJ^Xn~vKp28fD3WAf; zr%l1a^?PPU7C%|5hT(l zX>O8KW?1%Cw*tHAdku?um5ywq(+9$Dr-xriLB(P~9PE%m>Fi5p$~bKjHoZuMP3>(O zSz!8&C2t|$jKj1Clrz=y`uPQ9+fDtluJG}tpis8N+3g(XIXO_cB|2V1w0Ppcii1tL zL7~oKy2k3AY8IustlZV~RiJ&n?mCkpk(p7Mxnq(BTKx0i z;7w&gkc{OVc!=1%P8yox**85e@@n`Xyk!o!e*@8x)T+|laCz)37G(SfC%7@HHlx}`b-!?#9WI}AOht|~ z8Em5hdJA52c`~p7VQVLw(u6r=;aYO%-H<;XsUuF!HTU!-b`zf(50R|WUx{hyze^{H zocmb1Z+qv|V{nS8zbmmRa-B5Pk&FWzNq^kY1%2b^564kMmn{@H6ZUSLg*;wj+6Ft^ z$3lxqzfdAkn~i6T@^(Pffr0STjh+fAxHm$|#iNvjvaPH*bbLY?_KO+5PFaTf6!?W` zjk+o??1u(EF{%8C+bdvc{?^J@w@omES1=Q>(K0TFLqVzJ82N3jMzChU#RG6JV)QL= z_>b$;Z_-@1->&`5$_(jB%gsq^BD(^$Q)SNVQj2wzMZtKwxYkVt zYs@JwWnoQ9Cq0B>*o~Og6#~|2g`f9q?j3UJ^cZ1%isU6=$ggvVa~#nC(S4@v7K8VC zVL6Q}@@={&)!6Pq%sKTRYChm}FSCX-*?E$s`lNw|4PP8Qq>Q%CUAp--GzEP6U&EWS z4A$*WKd1A@zIx2KlL~14S(pY(sfc}9KJoG-n8VmBICbl42Fa$VvkYOb7beeV@}Y}o zQlJ~Evi=P6d9#;a$!7o-C^A2G2Wx^bXH^h=Q8JW|*e$8AHNFNW!}b9J{#p0DA&Rz_ z@#NO*1@<(5um^NTl$Jk+)EbQ2ur@Q`e!pZDoA=)(C+%9+$5$k_@SR^CAHPZrNP5hv z8x7PtU}oPuF)B$5s^O%BIBa4|rf-%1x5|taNwcmQMvQY&PhL$s^|bkwT1Q5gqw=(< zrdpdt-INeKqESOk>j(h|>H#8RE%KvOfpnyBm^H`@#utJmXhj{SnY zrNRCwusnHG{f7EwI?6;$$Mc{F&24&GjziQQ1JgR*R(7)Qivv*3>OA}ragiKFEzxjT z859l{*EB|4ym|mP`59}9gC*XLt`f)NdT!ieX$-&}{rDoJo-I?H@t=!>TS|jCmV5cfaS-4cT(h3`y*i+eu5Zk6oubdXAO?=(~ zWL+&p?DG2bg@I8LQXRETk;c_#Sc16q$DOS|D1-uRP-M|(i#HB#Iq#fxON=W5uEaEA zn< z-?FZ0?TC4q5k6Nzh0Nzu7~)oglB7B?nmtCzPrOw z)ff5*BawfXa;TTjPkQU8EM8|Jq!zBr{z5gkPFJo&Pf>)fb|yqCCVWVZfaV;EzZMk} zKa3S_!&fe{SjAj z?nVRg7aN7GE#<5z8zbmYEhF9`!r8m|j#pgs*OF9|uj$Vc-%$4ennl=${%2zCxVG40 z4!~=3H(R2;g3q3gwq(vdnfrV$LS9ukdPokq6aEXeP$U_d_1~m+`wvG(q4`qQdx<%u zKeFg#$qZ~|)**mDWeG2wZDVF+UnpSf$i&LvmQr$YnDESL$SBZ4PAgT{KHAGKWY{N2 zNHpNA4E|kfyt%G(i{L!T(c#^WZuoXm5YXCQng+S0EG9iPakKY}GMF#g48E}LWjEtf zvg?lKu>Z-tNTOdy@I5kx+^idy;|zm}66JqX5}iAkLZyCLZy$@8u9M&N?!UO08K<@( zz-7~U^#hvv>fW(AYBz~pUW>5Ae~@@`)6f;^k;1A~{*wL{8ltyM!@$RiG&BH@06AIJ zGRSAGi(Zia_>tNZ2UZY@7Hi@F%CyEMt}~OHWQK9{8Tuy54!S;z?=xGy zW?a2x?@#hbj!CPm?$ltyy0k8GDGc@@5TxZJU2+`ikaLEpA6p*`g(h9lf= ztCkS9%V^N!St_b**bVMRv5EJ$S5`xd|r-EO`3aZt~w_HP8VR(>aJO%N*0R1aI$R{HTP)fM}3Jm%^NFABL zv^y-6@s0aB(_?=*&15yCfutA@%2KqQm>9vyr2A(eKr286z!Y$iD8A4Dl+K4 zpQyamdFBNTAg=&yEzS+c$X|l@={<)7ost8huWI!b2n81KMc(uVTOQ#o8(l5MHa2as zFNn#M>VSwN(a%tclOK%Gi5WAf-!Qd6IcsmMjeipFEzpU!$tXc+m+p&}(sRNU-$vOB z0r$O&Up{W{Oqxd z3G#TjBL2%wn#uLTb=yw!(CyoGja;^wvgV4Jt2%=~r?9goHhVKE*_zBZa|$emzrmb3TwE+ZlN*q zQhKt^=5ocrMP%*YTV<@?^Plo_MYbWkvW>aRi;02|^Yxg-GFAZ{;sHK-jxTNAF~apG z#wf-H(STlJp0N$>25wm_*29fK_DnKm+3oZs=_5? zJy|ExZMnzq?68|eGCyJ@z?AQ>S?Ks-pDGMdIUx>(+E#xwVl_HApY%LAFm$foVC*Ab zpats8n7@G|FD^|!TU;0{&N2^=lgIPx>wux zHCZ}K!yxS9*aQwyJ-%qKie~!Z0-F`ycMiYtKiu}ere0bnRDN3g6O`^Dzux}eA?=>; zl4gMR?; z`U*vlA`%JuuHx`p_*_{9m@p-slSRg^3WL+CFm+2ORHks-YHKIXj%Elk{8SX0L&JTp zm)RR9hGw{|yE`maJf=n;FuH3r!*~!lzDWxZI!lxYW9{*U{uk*>_RuKJ6yM3$|7E`E zVL{oyY@k48Z6U9(F&k1ahftpShSz}P$Upy+ETK&MsWjukb~6_1W5otEsY%mc0mQaW zIdv;{MOf!?`9Mwo3Z)GD=nWZzV&_%i>Jp!D1!0w3lz~U;543aAJ4CxhMlm4=qqHKQ zuib9NKcObubxIn6cTwS2E?kVsMA+ozZm&qN7PNCIs!%$fc9!9teN8Vaw{sxaJBw(# zFogN*j&(xv+A1aCHUm<`qGwk*o7J^pUeehlrD+aMNM7>s?hhM^$r6E%@;kQk$?Gqz zNRZezLmtw7{oP)2K=b%f0E>-*k*=M&x|P*>57~Cs;~&x9i^eCAL&qWB!}@OG)$skH zd>78X>n$ars1mXUId$!@BL^J)TB)eWu$`!&Agxvd7n_+X}CBL-b<0`Ed6j6+VoqG#S_K>#i3(_yWYX{~KLOBtbo}LTtIpU^@OFD25-$ z93EWAp5a>Q_6I67K$@@kj(>;wl9#AUUg-5~lgIs-%*1-y1A z=#KfH>)y_>X&8tlVP)$JDW%0>U07GQFdFX5Saz*rSD6W((E;Gx`|Ia@uDou6dTs%d zrz)?}^CI$I;p)==k&$_1%onvx%o{-v*G=f?amp@~XI&KzxW5OEcXckJHJZG}NC)JA zsSYnBb9H1x{_)>&Qt{g|qjUPRHS*B|+Gdue=s*SI6G#f5&YIFQl=J3Q9iOMaS=dM1 z*$t=2fVZWl6aa_#uAG#PFKk0xCkDf321aA5KUS6{eoNRFFWJrBRAs$P*zV|)r7h&i zD~!hY*&J>Uw$`POU*CF|e~?z0oy(PT2+KI5|0FgFB^LPEKTkF#yV*Rt^Y_-9x5ah| zjx7MiqteHRzNqdY$TZQ%5BHP8WjiP#eoATd70NK@*23iBXvy_dh#()CXfG?e?-!KTjl|YYp5v1g zkp=@lfc>CUM&XyOk16zz4lI&eN}{0``l6WfK}^7_Uvu7sC@N+|e6SC(Jlx-W!RY$1 z{!kT)7M1vS{+uyiZn!#&+2D+iA$dGn)!0Cfla0xc-V6xfQm+lO+&Agk|d49J+M%F9aO+baEN89~WwHBi*u;8P+75L_Sr4rV*|GO}%z5q5%V+S9KE2&K0 zX9g3RI6WU-CMRh+e{yXh7@ja%vC6t`v0Uai)sr;rmX_1#HSF+L#K`*^s#Q9qpR62R z?S-+!VeO2gNOh<#>&-uoqq8)UO)2y(EKYpfRZm)ra9__Pl+Nts=Uy^GyZ2yEfR1Rd zdGX#c&$_hJ`1EJ=DF#@O5$+?+o9@R<6L<1Vk@`uWO=35{UV{zoW=v^Bk(ZI7JUnXE z`kAXv0gS;!8M?XBXF$yM)4!_Td@Gr7<~!H?>;a>RkN4=hvCrN2%!K5q>zMXM?T7=& z<3}zBQ=W8{??Qj#KP>U)87rhB02y78HFK78_E~e4U@cuyDd{>q9y!-FHtQ0DI~H+g z83Jp6?h$@PSZ4RA|!q)J?w42hGmeQ4Tx#P`$c_v6sPUY|K7p*Q{@%zpPZ~pL61xi*M`L>(; z5Rq5zA9t!I$6vEP&-mHgr-CctX5ajl5ALh-^i2%6c&WiT}c`wg)F_k&VEk%^gWA6~9Ry6DtR$ zt|wS8ogIPulrh*-(g_?;;?o~pZu2Wn~CSwO3e5IMMpBwU}afAN7qaNz$ z6MR?3IqYd>(jCU+Fo`#UXm`iwVFoX>b#V6 zp^adI9#dc~Ny0;ojp|pOq^|23sgg%K34}5Uv$+}vFPO!4wfUYL!}Lg`JQUjhdx=V} zt^VgI2)wJ(vKbTuT5-jovw5B?Id{R7-eQ~+YNFwWc*A)pz(8YoW&%_H!w1t5GW1PU z%oj=bVdFSi!;m}J&_9Y`ORjWb@>Yq|^vg=_{_Eoc71{StX- zX>9wITmu(ZzYg|qTxqfRE^=n_lNe!?qFx}=P6u}QcV|Vw)0WY#ZVfCRt&F3VPv&e< z&QRBgJOA3Bk0JWIP{?M<#ksVl$mOS_^{${6<9H}pprPV+gDgrqyIPCX!d$uKKYyP+ z&Rz1=xy;z}axTwemPBk@!f_uG8Q5+tKZn2xhGfmw?{iXvmqu7Z)*fq#FmExvh9*95 zPdiDt87~4(lLnT&BpjET%Q`G!H;Zx*ofFz&=37zmwN!$M#FQHewU-im18ifAER>9*ZK@RgGLbdMOK-Pp87`eQy=|;LbVa?Fp-#3 zK2%by#*F;dI5_c}zv0y^=A3}JeHcO!-F_&xj!Py|uYsMbRZ2#w`#y+~^czP*OhpK5 z4E1Vj|0qxY*rwVfZHIf%UMmf-)CWcKVFICKkEg;yQ=>9b+e9QkVqQr~zwr1xGl9*< z(pqTVZ_8jWmIDt;t!5SNuaQ!Xa-tUyo%op=kCdt!Yz_RD7?ivmF7XoSU`W^=ej(Mr z{mN`up(SAvJzvY3Q*^r8*=0HY8pmLTHGP%t*yvM^IpImdP!OfFy#HtO_PGK1P;o%g zQ1Wx0vl=2u;gPM}2q}_5vi#wAmhFS*+ji9|0=RdOawPGFb${9-V*(NSv`_akcR%65 zn#W+0t6ZvHz{zfqxL|Oo_Rs#ln9o{|b3GtrF|7p&g^H+odYn}SldU`*97f^2T#8M* zI=NkD$j6ZL?jVvepS#_y?B(dWq$A*y^$u8w!FC(|nTHL~cUPJkburo)6JOAZo zp?qtw1b-oUf7A!)4t8ljPMV%Ylmi1<+`7+eI1E-3{xcrfewA5=%;u*mUNQLgQ=|1c9oG(vn6~S8(C0d(Pa<+3=RD_y zeUhDJyl+S2Y-g{vXq?;HDF@IPg?1=>`WL-F{o9q06h_E&k}~|G=CyV&7tHT}s7iTm zu)m;ASIN5VAt;x~J$v|P!T{*_G((Zqz!5>rC*;v~VYo9^E6&@0aJwhce{*~Oo2*6J zor;l7IPqUqSVT(AO421Vl+CKE!vbG>uXUNiaaWu{XC%U&Mt*l!o+RFTX13UN_3(g(6L!h48e$y7OwSTem|(x@D3DOBB(*RS^b_rodT>IruBF?&V}a1ihv%)`?bkMopq<*4Th$M{`Hdf7JGk8HAsm> z4D1ry9x%(*+GRb7veD3RP{h{tMk%KAKownPE$j67cWc-2#>i<)SE;xkN(!?`U@f zJi~|>EYMex!S3T?K8|)AeXiwoz0#&g3H~_V*lXI;082+1%iI%9W%QiF#}z$^TTr`F^nl&?MDLY6YGD%AbS_1EJbF7hV(X{hCRMMC1~UP>z9 zq2g}s;rw_d0J!P#^}XsY6jtrH%X@Un_Ptsr%zhMKZGDP(I=NM)lWcqR+q^Rkyv7N< zJ0$;m-cs1$d|X&a*8$>DJ~?X9b(RE{DxQ#MtIki?$i2eV_N!Uo6#MD+-$nN0-D>-O z|Lk$LDR5hnEqQ--ihB!JRi%46d7R!~HR&qkQ9=1X1zc@EoOiVPTwNSz12=1T71_Q| z$h`^x>*4Hi`sunsm1iHhcy_Y_wgPCJl^bW*aMltg{CW#`|ks<&%$&&9@o5{E|>QKU`DjV_xyh3 zSQ79*|F=BZVXwPP&UilyJY4Qo&;|NDh5_~|4;!&h*Z37#S#=+H%(t>1*SdM&>rXyp z5_kJ_tGmyDr&%v4fA2ewv8QwRmG9m5`T13alw^Rf@8iiH$7Qw&Z#Ht~z0{+$m+I5S z7SaGW{DMOjdE@-`5%iS3HPa?p;e39!W_a54;8?Qd-@-&`-S9hu=jm#;%g|$tC)t63^w@xRO6lJR z%c)=JygZh1t;blbRbFp?^jmb=7os-V&R``x7E$D1CHJXB-*>mwfH3|5@m6aslxiZg zxVk8DGRWn^Ti?QRF{#te?^+-_Rh(R{3)P@~!N>DanV}KTsW)P*|`EtGytv3${%! z`9szPG|0E~CBatB@l%NTdojFog2@|6L#NFk@&)lh)wfkXJZdDe1Q-;@ywPtYYiJ$T zoJ@Ab$SrdMG&@z0Q`Ea{ljwT09$K-!wIiyhJ7-&Ebb?bq7n7d%kTP4?N?-pubKD^H zcRBKekj8ZU5yw!@|Xv7jM`Y)Q2E>zS*QciVj z9^@jo%fwUzixKEDza%0(n=WW>2FS?z@t$7Kzh&BhNmyEv#O~FdGW`u$->>Kb;1iQ* zuQ0ZBI7fpURxi<5(SUtkqE^OJLiM95MI~ivLq@IOm9!};0wb3D4QOy0b55_joKzYCVLNm62~_IA`_6HUlCY|G-Rlhf&9&FKd|LJtdh;xu z4$Z(S_Dp2g9r){h*c#HY5Fa-E4{uH{zJq>&-kzBs?hvi`(CFR;jCyNrssR9?N)GAG!Pl+r5D@=4I}}& z@`3+E1Bv5{2RwV`y1Dx}Si#>v2fc#h9HSB8{okTT&fq-HLGM8f7jT#7ASUYn>Dg$g zrh=aRe@&pchF3iYF;f4}8;Uw&7Ig&C|1Ai$mURn1c@7c>={>-?F;I delta 110007 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

8E=*<_vm@@o!-+4y+HU^wTt=+4n-_T%|TkxyX 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\gv5&r`>-n9ED?ikl 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%0Ai%$Y*rz+52^~Y$G>q)*c5 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 P;$za`Ts@+%ee%BmLvN@< diff --git a/XEngine_Release/XEngine_Config/XEngine_VersionConfig.json b/XEngine_Release/XEngine_Config/XEngine_VersionConfig.json index 71961f2..85c43b2 100644 --- a/XEngine_Release/XEngine_Config/XEngine_VersionConfig.json +++ b/XEngine_Release/XEngine_Config/XEngine_VersionConfig.json @@ -1,5 +1,6 @@ { "XVer":[ + "3.22.0.1001 Build20260427", "3.21.0.1001 Build20250923", "3.20.0.1001 Build20250620", "3.19.0.1001 Build20250320", diff --git a/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp b/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp index 84de384..e281e5f 100644 --- a/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp +++ b/XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp @@ -141,10 +141,32 @@ bool XEngine_Task_HttpCenter(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int else if (0 == _tcsxnicmp(lpszMethodHead, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodHead))) { //获得文件大小 + XENGINE_STORAGEBUCKET st_StorageBucket = {}; + //分布式存储 + if (!APIHelp_Distributed_DLStorage(pSt_HTTPParam->tszHttpUri, st_LoadbalanceCfg.st_LoadBalance.pStl_ListBucket, &st_StorageBucket)) + { + st_HDRParam.bIsClose = true; + st_HDRParam.nHttpCode = 404; + + HttpProtocol_Server_SendMsgEx(xhDLHttp, tszSDBuffer, &nSDLen, &st_HDRParam); + XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("业务客户端:%s,请求文件失败,可能BUCKET:%s 不正确,错误:%lX"), lpszClientAddr, pSt_HTTPParam->tszHttpUri, StorageHelp_GetLastError()); + return false; + } + if (!st_StorageBucket.bEnable) + { + st_HDRParam.bIsClose = true; + st_HDRParam.nHttpCode = 404; + + HttpProtocol_Server_SendMsgEx(xhDLHttp, tszSDBuffer, &nSDLen, &st_HDRParam); + XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("业务客户端:%s,请求文件失败,请求的BUCKET:%s 已经被禁用"), lpszClientAddr, st_StorageBucket.tszBuckKey); + return false; + } XCHAR tszFilePath[XPATH_MAX] = {}; SYSTEMAPI_FILE_ATTR st_FileAttr = {}; - _xstprintf(tszFilePath, _X(".%s"), pSt_HTTPParam->tszHttpUri); + _xstprintf(tszFilePath, _X("%s%s"), st_StorageBucket.tszFilePath, st_StorageBucket.tszFileName); if (0 != _xtaccess(tszFilePath, 0)) { st_HDRParam.nHttpCode = 404;