@@ -1045,60 +1045,60 @@ static DWORD OnlineStorage_Test(PFN_RUN_TEST PfnRunTest, LPCSTR szCodeName, LPCS
10451045static STORAGE_INFO1 StorageInfo1[] =
10461046{
10471047 // - Name of the storage folder -------- Compound file name hash ----------- Compound file data hash ----------- Example file to extract -----------------------------------------------------------
1048- // {"Beta TVFS/00001", "44833489ccf495e78d3a8f2ee9688ba6", "96e6457b649b11bcee54d52fa4be12e5", "ROOT"},
1049- // {"Beta TVFS/00002", "0ada2ba6b0decfa4013e0465f577abf1", "4da83fa60e0e505d14a5c21284142127", "ENCODING"},
1048+ {" Beta TVFS/00001" , " 44833489ccf495e78d3a8f2ee9688ba6" , " 96e6457b649b11bcee54d52fa4be12e5" , " ROOT" },
1049+ {" Beta TVFS/00002" , " 0ada2ba6b0decfa4013e0465f577abf1" , " 4da83fa60e0e505d14a5c21284142127" , " ENCODING" },
10501050
1051- // {"CoD4/3376209", "e01180b36a8cfd82cb2daa862f5bbf3e", "79cd4cfc9eddad53e4b4d394c36b8b0c", "zone/base.xpak" },
1051+ {" CoD4/3376209" , " e01180b36a8cfd82cb2daa862f5bbf3e" , " 79cd4cfc9eddad53e4b4d394c36b8b0c" , " zone/base.xpak" },
10521052
1053- // {"Diablo III/30013", "86ba76b46c88eb7c6188d28a27d00f49", "19e37cc3c178ea0521369c09d67791ac", "ENCODING"},
1054- // {"Diablo III/50649", "18cd3eb87a46e2d3aa0c57d1d8f8b8ff", "9225b3fa85dd958209ad20495ff6457e", "ENCODING"},
1055- // {"Diablo III/58979", "3c5e033739bb58ce1107e59b8d30962a", "901dd9dde4e793ee42414c81874d1c8f", "ENCODING"},
1056- // {"Diablo III/68722", "34cb5a5cea775b7194d9cd0ec3458d3b", "eeaa6a963aa19d93bdafc049fe6d3aaf", "ENCODING"},
1053+ {" Diablo III/30013" , " 86ba76b46c88eb7c6188d28a27d00f49" , " 19e37cc3c178ea0521369c09d67791ac" , " ENCODING" },
1054+ {" Diablo III/50649" , " 18cd3eb87a46e2d3aa0c57d1d8f8b8ff" , " 9225b3fa85dd958209ad20495ff6457e" , " ENCODING" },
1055+ {" Diablo III/58979" , " 3c5e033739bb58ce1107e59b8d30962a" , " 901dd9dde4e793ee42414c81874d1c8f" , " ENCODING" },
1056+ {" Diablo III/68722" , " 34cb5a5cea775b7194d9cd0ec3458d3b" , " eeaa6a963aa19d93bdafc049fe6d3aaf" , " ENCODING" },
10571057
10581058 {" Heroes of the Storm/29049" , " 98396c1a521e5dee511d835b9e8086c7" , " b37e7edc07d465a8e97b47cabcd3fc04" , " mods\\ core.stormmod\\ base.stormassets\\ assets\\ textures\\ aicommand_autoai1.dds" },
1059- // {"Heroes of the Storm/30027", "6bcbe7c889cc465e4993f92d6ae1ee75", "978f6332a2f2149d74d48414b834c8f6", "mods\\core.stormmod\\base.stormassets\\assets\\textures\\aicommand_claim1.dds"},
1060- // {"Heroes of the Storm/30414", "4b377fa69dab736b2ae495920663832e", "367eef337676c902bf6855f54bbda182", "mods\\heromods\\murky.stormmod\\base.stormdata\\gamedata\\buttondata.xml"},
1061- // {"Heroes of the Storm/31726", "f997a06b3f8c10d9095e542f1ef83a74", "0eb064b28fc6203a48321a15d17f7df8", "mods\\heroes.stormmod\\base.stormassets\\Assets\\modeltextures.db"},
1062- // {"Heroes of the Storm/39445", "c672b26f8f14ab2e68a9f9d7d6ca6062", "62376a66045c7806e865ef4b056c7060", "versions.osxarchive\\Versions\\Base39153\\Heroes.app\\Contents\\_CodeSignature\\CodeResources"},
1063- // {"Heroes of the Storm/50286", "d1d57e83cbd72cbecd76916c22f6c4b6", "c1fe97f5fc04a2824449b6c43cf31ce5", "mods\\gameplaymods\\percentscaling.stormmod\\base.stormdata\\GameData\\EffectData.xml"},
1064- // {"Heroes of the Storm/65943", "c5d75f4e12dbc05d4560fe61c4b88773", "f046b2ed9ecc7b27d2a114e16c34c8fd", "mods\\gameplaymods\\percentscaling.stormmod\\base.stormdata\\GameData\\EffectData.xml"},
1065- // {"Heroes of the Storm/75589", "ae2209f1fcb26c730e9757a42bcce17e", "a7f7fbf1e04c87ead423fb567cd6fa5c", "mods\\gameplaymods\\percentscaling.stormmod\\base.stormdata\\GameData\\EffectData.xml"},
1066- // {"Heroes of the Storm/81376", "25597a3f8adc3fa79df243197fecd1cc", "2c36eb3dde7d545a0fa413ccebf84202", "mods\\gameplaymods\\percentscaling.stormmod\\base.stormdata\\GameData\\EffectData.xml"},
1067-
1068- // {"Overwatch/24919/data/casc", "53afa15570c29bd40bba4707b607657e", "6f9131fc0e7ad558328bbded2c996959", "ROOT"},
1069- // {"Overwatch/47161", "53db1f3da005211204997a6b50aa71e1", "12be32a2f86ea1f4e0bf2b62fe4b7f6e", "TactManifest\\Win_SPWin_RCN_LesMX_EExt.apm"},
1070- // {"Overwatch/72127", "bef17230badb29e5c7dad18a2b30df8a", "bae70b787316d724646b954978284c14", "TactManifest\\Win_SPWin_RCN_LesMX_EExt.apm"},
1071-
1072- // {"Starcraft/2457", "3eabb81825735cf66c0fc10990f423fa", "ce752a323819c369fba03401ba400332", "music\\radiofreezerg.ogg"},
1073- // {"Starcraft/4037", "bb2b76d657a841953fe093b75c2bdaf6", "2f1e9df40da0f6f682ffecbbd920d4fc", "music\\radiofreezerg.ogg"},
1074- // {"Starcraft/4261", "59ea96addacccb73938fdf688d7aa29b", "4e07a768999c7887c8c21364961ab07a", "music\\radiofreezerg.ogg"},
1075- // {"Starcraft/6434", "e3f929b881ad07028578d202f97c107e", "9bf9597b1f10d32944194334e8dc442a", "music\\radiofreezerg.ogg"},
1076- // {"Starcraft/8713", "57da9e2768368d3e31473a70a9286a69", "6a425e9d9e7f3b44773a021ea89f85e3", "music\\radiofreezerg.ogg"},
1077-
1078- // {"Starcraft II/45364/\\/", "28f8b15b5bbd87c16796246eac3f800c", "f9cd7fc20fa53701846109d3d6947d08", "mods\\novastoryassets.sc2mod\\base2.sc2maps\\maps\\campaign\\nova\\nova04.sc2map\\base.sc2data\\GameData\\ActorData.xml"},
1079- // {"Starcraft II/75025", "79c044e1286b7b18478556e571901294", "e290febb90e06e97b4db6f0eb519ca91", "mods\\novastoryassets.sc2mod\\base2.sc2maps\\maps\\campaign\\nova\\nova04.sc2map\\base.sc2data\\GameData\\ActorData.xml"},
1080- // {"Starcraft II/81102", "cb6bea299820895f6dcbc72067553743", "63b47f03b1717ded751e0d24d3ddff4f", "mods\\novastoryassets.sc2mod\\base2.sc2maps\\maps\\campaign\\nova\\nova04.sc2map\\base.sc2data\\GameData\\ActorData.xml"},
1081-
1082- // {"Warcraft III/09231", "8147106d7c05eaaf3f3611cc6f5314fe", "1b47c84d9b4ce58beeb2604a934cf83c", "frFR-War3Local.mpq:Maps/FrozenThrone/Campaign/NightElfX06Interlude.w3x:war3map.j" },
1083- // {"Warcraft III/09655", "f3f5470aa0ab4939fa234d3e29c3d347", "e45792b7459dc0c78ecb25130fa34d88", "frFR-War3Local.mpq:Maps/FrozenThrone/Campaign/NightElfX06Interlude.w3x:war3map.j" },
1084- // {"Warcraft III/11889", "ff36cd4f58aae23bd77d4a90c333bdb5", "4cba488e57f7dccfb77eca8c86578a37", "frFR-War3Local.mpq:Maps/FrozenThrone/Campaign/NightElfX06Interlude.w3x:war3map.j" },
1085- // {"Warcraft III/13369", "9c3fce648bf75d93a8765e84dcd10377", "4ac831db9bf0734f01b9d20455a68ab6", "ENCODING" },
1086- // {"Warcraft III/14883", "a4b269415f1f4adec4df8bb736dc1297", "3fd108674117ad4f93885bdd1a525f30", NULL },
1087- // {"Warcraft III/15801", "e1c3cfa897c8a25ef493455469955186", "f162cd3448219fd9956f9ff8fb5ba915", NULL },
1088-
1089- // {"WoW/18125", "b31531af094f78f58592249c4d216a8e", "e5c9b3f0da7806d8b239c13bff1d836e", "Sound\\music\\Draenor\\MUS_60_FelWasteland_A.mp3"},
1090- // {"WoW/18379", "fab30626cf94ed1523519729c3701812", "606e4bfd6f8100ae875eb4c00789233b", "Sound\\music\\Draenor\\MUS_60_FelWasteland_A.mp3"},
1091- // {"WoW/18865", "7f252a8c6001938f601b0c91abbb0f2a", "cee96fa43cddc008f564b4615fdbd109", "Sound\\music\\Draenor\\MUS_60_FelWasteland_A.mp3"},
1092- // {"WoW/18888", "a007d0433c71ddc6e9acaa45cbdc4e61", "a093c596240a6b71de125eaa83ea8568", "Sound\\music\\Draenor\\MUS_60_FelWasteland_A.mp3"},
1093- // {"WoW/19116", "a3be9cfd4a15ba184e21eed9ec90417b", "11a973871aef6ab3236676a25381a1e6", "Sound\\music\\Draenor\\MUS_60_FelWasteland_A.mp3"},
1094- // {"WoW/19342", "66f0de0cff477e1d8e982683771f1ada", "69b4c91c977b875fd0a6ffbf89b06408", "Sound\\music\\Draenor\\MUS_60_FelWasteland_A.mp3"},
1095- // {"WoW/21742", "a357c3cbed98e83ac5cd394ceabc01e8", "90ce1aac44299aa2ac6fb44d249d2561", "Sound\\music\\Draenor\\MUS_60_FelWasteland_A.mp3"},
1096- // {"WoW/22267", "101949dfbed06d417d24a65054e8a6b6", "4ef8df3cf9b00b5c7b2c1b9f4166ec0d", "Sound\\music\\Draenor\\MUS_60_FelWasteland_A.mp3"},
1097- // {"WoW/23420", "e62a798989e6db00044b079e74faa1eb", "854e58816e6eb2795d14fe81470ad19e", "Sound\\music\\Draenor\\MUS_60_FelWasteland_A.mp3"},
1098- // {"WoW/29981", "a35f7de61584644d4877aac1380ef090", "3cba30b5e439a6e59b0953d17da9ac6c", "dbfilesclient\\battlepetspeciesstate.db2"},
1099- // {"WoW/31299:wow", "6220549f2b8936af6e63179f6ece78ab", "05627c131969bd9394fb345f4037e249", "Sound\\music\\Draenor\\MUS_60_FelWasteland_A.mp3"},
1100- // {"WoW/31299:wowt", "959fa63cbcd9ced02a8977ed128df828", "423c1b99b14a615a02d8ffc7a7eff4ef", "Sound\\music\\Draenor\\MUS_60_FelWasteland_A.mp3"},
1101- // {"WoW/31299:wow_classic", "184794b8a191429e2aae9b8a5334651b", "b46bd2f81ead285e810e5a049ca2db74", "Sound\\music\\Draenor\\MUS_60_FelWasteland_A.mp3"},
1059+ {" Heroes of the Storm/30027" , " 6bcbe7c889cc465e4993f92d6ae1ee75" , " 978f6332a2f2149d74d48414b834c8f6" , " mods\\ core.stormmod\\ base.stormassets\\ assets\\ textures\\ aicommand_claim1.dds" },
1060+ {" Heroes of the Storm/30414" , " 4b377fa69dab736b2ae495920663832e" , " 367eef337676c902bf6855f54bbda182" , " mods\\ heromods\\ murky.stormmod\\ base.stormdata\\ gamedata\\ buttondata.xml" },
1061+ {" Heroes of the Storm/31726" , " f997a06b3f8c10d9095e542f1ef83a74" , " 0eb064b28fc6203a48321a15d17f7df8" , " mods\\ heroes.stormmod\\ base.stormassets\\ Assets\\ modeltextures.db" },
1062+ {" Heroes of the Storm/39445" , " c672b26f8f14ab2e68a9f9d7d6ca6062" , " 62376a66045c7806e865ef4b056c7060" , " versions.osxarchive\\ Versions\\ Base39153\\ Heroes.app\\ Contents\\ _CodeSignature\\ CodeResources" },
1063+ {" Heroes of the Storm/50286" , " d1d57e83cbd72cbecd76916c22f6c4b6" , " c1fe97f5fc04a2824449b6c43cf31ce5" , " mods\\ gameplaymods\\ percentscaling.stormmod\\ base.stormdata\\ GameData\\ EffectData.xml" },
1064+ {" Heroes of the Storm/65943" , " c5d75f4e12dbc05d4560fe61c4b88773" , " f046b2ed9ecc7b27d2a114e16c34c8fd" , " mods\\ gameplaymods\\ percentscaling.stormmod\\ base.stormdata\\ GameData\\ EffectData.xml" },
1065+ {" Heroes of the Storm/75589" , " ae2209f1fcb26c730e9757a42bcce17e" , " a7f7fbf1e04c87ead423fb567cd6fa5c" , " mods\\ gameplaymods\\ percentscaling.stormmod\\ base.stormdata\\ GameData\\ EffectData.xml" },
1066+ {" Heroes of the Storm/81376" , " 25597a3f8adc3fa79df243197fecd1cc" , " 2c36eb3dde7d545a0fa413ccebf84202" , " mods\\ gameplaymods\\ percentscaling.stormmod\\ base.stormdata\\ GameData\\ EffectData.xml" },
1067+
1068+ {" Overwatch/24919/data/casc" , " 53afa15570c29bd40bba4707b607657e" , " 6f9131fc0e7ad558328bbded2c996959" , " ROOT" },
1069+ {" Overwatch/47161" , " 53db1f3da005211204997a6b50aa71e1" , " 12be32a2f86ea1f4e0bf2b62fe4b7f6e" , " TactManifest\\ Win_SPWin_RCN_LesMX_EExt.apm" },
1070+ {" Overwatch/72127" , " bef17230badb29e5c7dad18a2b30df8a" , " bae70b787316d724646b954978284c14" , " TactManifest\\ Win_SPWin_RCN_LesMX_EExt.apm" },
1071+
1072+ {" Starcraft/2457" , " 3eabb81825735cf66c0fc10990f423fa" , " ce752a323819c369fba03401ba400332" , " music\\ radiofreezerg.ogg" },
1073+ {" Starcraft/4037" , " bb2b76d657a841953fe093b75c2bdaf6" , " 2f1e9df40da0f6f682ffecbbd920d4fc" , " music\\ radiofreezerg.ogg" },
1074+ {" Starcraft/4261" , " 59ea96addacccb73938fdf688d7aa29b" , " 4e07a768999c7887c8c21364961ab07a" , " music\\ radiofreezerg.ogg" },
1075+ {" Starcraft/6434" , " e3f929b881ad07028578d202f97c107e" , " 9bf9597b1f10d32944194334e8dc442a" , " music\\ radiofreezerg.ogg" },
1076+ {" Starcraft/8713" , " 57da9e2768368d3e31473a70a9286a69" , " 6a425e9d9e7f3b44773a021ea89f85e3" , " music\\ radiofreezerg.ogg" },
1077+
1078+ {" Starcraft II/45364/\\ /" , " 28f8b15b5bbd87c16796246eac3f800c" , " f9cd7fc20fa53701846109d3d6947d08" , " mods\\ novastoryassets.sc2mod\\ base2.sc2maps\\ maps\\ campaign\\ nova\\ nova04.sc2map\\ base.sc2data\\ GameData\\ ActorData.xml" },
1079+ {" Starcraft II/75025" , " 79c044e1286b7b18478556e571901294" , " e290febb90e06e97b4db6f0eb519ca91" , " mods\\ novastoryassets.sc2mod\\ base2.sc2maps\\ maps\\ campaign\\ nova\\ nova04.sc2map\\ base.sc2data\\ GameData\\ ActorData.xml" },
1080+ {" Starcraft II/81102" , " cb6bea299820895f6dcbc72067553743" , " 63b47f03b1717ded751e0d24d3ddff4f" , " mods\\ novastoryassets.sc2mod\\ base2.sc2maps\\ maps\\ campaign\\ nova\\ nova04.sc2map\\ base.sc2data\\ GameData\\ ActorData.xml" },
1081+
1082+ {" Warcraft III/09231" , " 8147106d7c05eaaf3f3611cc6f5314fe" , " 1b47c84d9b4ce58beeb2604a934cf83c" , " frFR-War3Local.mpq:Maps/FrozenThrone/Campaign/NightElfX06Interlude.w3x:war3map.j" },
1083+ {" Warcraft III/09655" , " f3f5470aa0ab4939fa234d3e29c3d347" , " e45792b7459dc0c78ecb25130fa34d88" , " frFR-War3Local.mpq:Maps/FrozenThrone/Campaign/NightElfX06Interlude.w3x:war3map.j" },
1084+ {" Warcraft III/11889" , " ff36cd4f58aae23bd77d4a90c333bdb5" , " 4cba488e57f7dccfb77eca8c86578a37" , " frFR-War3Local.mpq:Maps/FrozenThrone/Campaign/NightElfX06Interlude.w3x:war3map.j" },
1085+ {" Warcraft III/13369" , " 9c3fce648bf75d93a8765e84dcd10377" , " 4ac831db9bf0734f01b9d20455a68ab6" , " ENCODING" },
1086+ {" Warcraft III/14883" , " a4b269415f1f4adec4df8bb736dc1297" , " 3fd108674117ad4f93885bdd1a525f30" , NULL },
1087+ {" Warcraft III/15801" , " e1c3cfa897c8a25ef493455469955186" , " f162cd3448219fd9956f9ff8fb5ba915" , NULL },
1088+
1089+ {" WoW/18125" , " b31531af094f78f58592249c4d216a8e" , " e5c9b3f0da7806d8b239c13bff1d836e" , " Sound\\ music\\ Draenor\\ MUS_60_FelWasteland_A.mp3" },
1090+ {" WoW/18379" , " fab30626cf94ed1523519729c3701812" , " 606e4bfd6f8100ae875eb4c00789233b" , " Sound\\ music\\ Draenor\\ MUS_60_FelWasteland_A.mp3" },
1091+ {" WoW/18865" , " 7f252a8c6001938f601b0c91abbb0f2a" , " cee96fa43cddc008f564b4615fdbd109" , " Sound\\ music\\ Draenor\\ MUS_60_FelWasteland_A.mp3" },
1092+ {" WoW/18888" , " a007d0433c71ddc6e9acaa45cbdc4e61" , " a093c596240a6b71de125eaa83ea8568" , " Sound\\ music\\ Draenor\\ MUS_60_FelWasteland_A.mp3" },
1093+ {" WoW/19116" , " a3be9cfd4a15ba184e21eed9ec90417b" , " 11a973871aef6ab3236676a25381a1e6" , " Sound\\ music\\ Draenor\\ MUS_60_FelWasteland_A.mp3" },
1094+ {" WoW/19342" , " 66f0de0cff477e1d8e982683771f1ada" , " 69b4c91c977b875fd0a6ffbf89b06408" , " Sound\\ music\\ Draenor\\ MUS_60_FelWasteland_A.mp3" },
1095+ {" WoW/21742" , " a357c3cbed98e83ac5cd394ceabc01e8" , " 90ce1aac44299aa2ac6fb44d249d2561" , " Sound\\ music\\ Draenor\\ MUS_60_FelWasteland_A.mp3" },
1096+ {" WoW/22267" , " 101949dfbed06d417d24a65054e8a6b6" , " 4ef8df3cf9b00b5c7b2c1b9f4166ec0d" , " Sound\\ music\\ Draenor\\ MUS_60_FelWasteland_A.mp3" },
1097+ {" WoW/23420" , " e62a798989e6db00044b079e74faa1eb" , " 854e58816e6eb2795d14fe81470ad19e" , " Sound\\ music\\ Draenor\\ MUS_60_FelWasteland_A.mp3" },
1098+ {" WoW/29981" , " a35f7de61584644d4877aac1380ef090" , " 3cba30b5e439a6e59b0953d17da9ac6c" , " dbfilesclient\\ battlepetspeciesstate.db2" },
1099+ {" WoW/31299:wow" , " 6220549f2b8936af6e63179f6ece78ab" , " 05627c131969bd9394fb345f4037e249" , " Sound\\ music\\ Draenor\\ MUS_60_FelWasteland_A.mp3" },
1100+ {" WoW/31299:wowt" , " 959fa63cbcd9ced02a8977ed128df828" , " 423c1b99b14a615a02d8ffc7a7eff4ef" , " Sound\\ music\\ Draenor\\ MUS_60_FelWasteland_A.mp3" },
1101+ {" WoW/31299:wow_classic" , " 184794b8a191429e2aae9b8a5334651b" , " b46bd2f81ead285e810e5a049ca2db74" , " Sound\\ music\\ Draenor\\ MUS_60_FelWasteland_A.mp3" },
11021102};
11031103
11041104static STORAGE_INFO2 StorageInfo2[] =
@@ -1125,10 +1125,6 @@ int main(int argc, char * argv[])
11251125#endif // defined(_MSC_VER) && defined(_DEBUG)
11261126
11271127#ifdef _DEBUG
1128- // CASC_MIME Mime;
1129- // Mime.Load(_T("e:\\ribbit_response.txt"));
1130- // Mime.Print();
1131-
11321128 // PCASC_SOCKET pSocket;
11331129 // const char * request;
11341130 // char * response;
@@ -1158,25 +1154,25 @@ int main(int argc, char * argv[])
11581154 //
11591155 // Run the tests for every local storage in my collection
11601156 //
1161- // for(size_t i = 0; i < _countof(StorageInfo1); i++)
1162- // {
1163- // // Attempt to open the storage and extract single file
1164- // dwErrCode = LocalStorage_Test(Storage_ReadFiles, StorageInfo1[i].szPath, StorageInfo1[i].szNameHash, StorageInfo1[i].szDataHash);
1165- // if(dwErrCode != ERROR_SUCCESS && dwErrCode != ERROR_FILE_NOT_FOUND)
1166- // break;
1167- // }
1168-
1169- //
1170- // Run the tests for every available online storage in my collection
1171- //
1172- for (size_t i = 0 ; i < _countof (StorageInfo2); i++)
1157+ for (size_t i = 0 ; i < _countof (StorageInfo1); i++)
11731158 {
11741159 // Attempt to open the storage and extract single file
1175- dwErrCode = OnlineStorage_Test (Storage_EnumFiles, StorageInfo2 [i].szCodeName , StorageInfo2 [i].szRegion , StorageInfo2 [i].szFile );
1176- if (dwErrCode != ERROR_SUCCESS)
1160+ dwErrCode = LocalStorage_Test (Storage_ReadFiles, StorageInfo1 [i].szPath , StorageInfo1 [i].szNameHash , StorageInfo1 [i].szDataHash );
1161+ if (dwErrCode != ERROR_SUCCESS && dwErrCode != ERROR_FILE_NOT_FOUND )
11771162 break ;
11781163 }
11791164
1165+ //
1166+ // Run the tests for every available online storage in my collection
1167+ //
1168+ // for (size_t i = 0; i < _countof(StorageInfo2); i++)
1169+ // {
1170+ // // Attempt to open the storage and extract single file
1171+ // dwErrCode = OnlineStorage_Test(Storage_EnumFiles, StorageInfo2[i].szCodeName, StorageInfo2[i].szRegion, StorageInfo2[i].szFile);
1172+ // if (dwErrCode != ERROR_SUCCESS)
1173+ // break;
1174+ // }
1175+
11801176#ifdef _MSC_VER
11811177 // _CrtDumpMemoryLeaks();
11821178#endif // _MSC_VER
0 commit comments