SitePoint Sponsor

User Tag List

Results 1 to 8 of 8

Hybrid View

  1. #1
    SitePoint Addict
    Join Date
    Jul 2004
    Location
    Jed.
    Posts
    245
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Index.php Encoded. ???

    Hello,

    When I open my index.php file, I see this. Why is it encoded.

    Code:
    <?php $_F=__FILE__;$_X='Pz48PyBAczVzczQybl9zdDFydCgpOyA/Pg0KDQo8aHRtbD4NCg0KPGg1MWQ+DQo8bTV0MSBodHRwLTVxMzR2PSJDMm50NW50LUwxbmczMWc1IiBjMm50NW50PSI1bi0zcyI+DQo8dDR0bDU+Li46OiB3d3cuczExNWQtYzIuYzJtIDo6Li48L3Q0dGw1Pg0KCTxtNXQxIGh0dHAtNXEzNHY9IkMybnQ1bnQtVHlwNSIgYzJudDVudD0idDV4dC9odG1sOyBjaDFyczV0PTN0Zi04Ij4NCjxsNG5rIGhyNWY9Im15c3R5bDUuY3NzIiByNWw9InN0eWw1c2g1NXQiIHR5cDU9InQ1eHQvY3NzIiAvPg0KICAgICAgICA8c2NyNHB0IHR5cDU9InQ1eHQvajF2MXNjcjRwdCIgc3JjPSIxZG00bi80bmNsM2Q1L0FKQVguanMiPjwvc2NyNHB0Pg0KCQk8c2NyNHB0IHR5cDU9InQ1eHQvajF2MXNjcjRwdCI+DQoNCi8qDQpGMnJtIGY0NWxkIEw0bTR0NXIgc2NyNHB0LSBCeSBEeW4xbTRjIERyNHY1DQpGMnIgZjNsbCBzMjNyYzUgYzJkNSAxbmQgbTJyNSBESFRNTCBzY3I0cHRzLCB2NHM0dCBodHRwOi8vd3d3LmR5bjFtNGNkcjR2NS5jMm0NClRoNHMgY3I1ZDR0IE1VU1Qgc3QxeSA0bnQxY3QgZjJyIDNzNQ0KKi8NCg0KdjFyIG5zZT1kMmMzbTVudC5nNXRFbDVtNW50QnlJZCYmIWQyYzNtNW50LjFsbA0KDQpmM25jdDQybiByNXN0cjRjdDRucDN0KG0xeGw1bmd0aCw1LHBsMWM1aDJsZDVyKXsNCjRmICh3NG5kMncuNXY1bnQmJjV2NW50LnNyY0VsNW01bnQudjFsMzUubDVuZ3RoPj1tMXhsNW5ndGgpDQpyNXQzcm4gZjFsczUNCjVsczUgNGYgKDUudDFyZzV0JiY1LnQxcmc1dD09NXYxbChwbDFjNWgybGQ1cikmJjUudDFyZzV0LnYxbDM1Lmw1bmd0aD49bTF4bDVuZ3RoKXsNCnYxciBwcjVzczVkazV5PS9bMS16QS1aMC05XC5cLFwvXS8gLy9kNXQ1Y3QgMWxwaDFuM201cjRjIGs1eXMNCjRmIChwcjVzczVkazV5LnQ1c3QoU3RyNG5nLmZyMm1DaDFyQzJkNSg1LndoNGNoKSkpDQo1LnN0MnBQcjJwMWcxdDQybigpDQp9DQp9DQoNCmYzbmN0NDJuIGMyM250bDRtNHQobTF4bDVuZ3RoLDUscGwxYzVoMmxkNXIpew0KdjFyIHRoNWYycm09NXYxbChwbDFjNWgybGQ1cikNCnYxciBsNW5ndGhsNWZ0PW0xeGw1bmd0aC10aDVmMnJtLnYxbDM1Lmw1bmd0aA0KdjFyIHBsMWM1aDJsZDVyMmJqPWQyYzNtNW50LjFsbD8gZDJjM201bnQuMWxsW3BsMWM1aDJsZDVyXSA6IGQyYzNtNW50Lmc1dEVsNW01bnRCeUlkKHBsMWM1aDJsZDVyKQ0KNGYgKHc0bmQydy41djVudHx8NS50MXJnNXQmJjUudDFyZzV0PT01djFsKHBsMWM1aDJsZDVyKSl7DQo0ZiAobDVuZ3RobDVmdDwwKQ0KdGg1ZjJybS52MWwzNT10aDVmMnJtLnYxbDM1LnMzYnN0cjRuZygwLG0xeGw1bmd0aCkNCnBsMWM1aDJsZDVyMmJqLjRubjVySFRNTD1sNW5ndGhsNWZ0DQp9DQp9DQoNCg0KZjNuY3Q0Mm4gZDRzcGwxeWw0bTR0KHRoNW4xbTUsIHRoNTRkLCB0aDVsNG00dCl7DQp2MXIgdGg1ZjJybT10aDU0ZCE9IiI/IGQyYzNtNW50Lmc1dEVsNW01bnRCeUlkKHRoNTRkKSA6IHRoNW4xbTUNCnYxciBsNG00dF90NXh0PSc8ZjJudCBjMmwycj1yNWQ+JiM2aTdlOyYjNmk3aTsmIzZlMGE7JiM2ZTA5OyA8Yj48c3AxbiA0ZD0iJyt0aDVmMnJtLnQyU3RyNG5nKCkrJyI+Jyt0aDVsNG00dCsnPC9zcDFuPjwvYj4gJiM2aTg2OyYjNmk4aTsmIzZlMDY7IDwvZjJudD4gJw0KNGYgKGQyYzNtNW50LjFsbHx8bnNlKQ0KZDJjM201bnQud3I0dDUobDRtNHRfdDV4dCkNCjRmIChkMmMzbTVudC4xbGwpew0KNXYxbCh0aDVmMnJtKS4ybms1eXByNXNzPWYzbmN0NDJuKCl7IHI1dDNybiByNXN0cjRjdDRucDN0KHRoNWw0bTR0LDV2NW50LHRoNWYycm0pfQ0KNXYxbCh0aDVmMnJtKS4ybms1eTNwPWYzbmN0NDJuKCl7IGMyM250bDRtNHQodGg1bDRtNHQsNXY1bnQsdGg1ZjJybSl9DQp9DQo1bHM1IDRmIChuc2Upew0KZDJjM201bnQuYjJkeS4xZGRFdjVudEw0c3Q1bjVyKCdrNXlwcjVzcycsIGYzbmN0NDJuKDV2NW50KSB7IHI1c3RyNGN0NG5wM3QodGg1bDRtNHQsNXY1bnQsdGg1ZjJybSkgfSwgdHIzNSk7IA0KZDJjM201bnQuYjJkeS4xZGRFdjVudEw0c3Q1bjVyKCdrNXkzcCcsIGYzbmN0NDJuKDV2NW50KSB7IGMyM250bDRtNHQodGg1bDRtNHQsNXY1bnQsdGg1ZjJybSkgfSwgdHIzNSk7IA0KfQ0KfQ0KDQo8L3NjcjRwdD4NCgkJPHNjcjRwdD4NCg0KCSBmM25jdDQybiBnNXRfRnIybV9TNXJ2NXIoMXIxYl8zcmwpew0KDQoJCXRyeXsgQW5zdzVyID0gbjV3IFhNTEh0dHBSNXEzNXN0KCk7DQoNCgkJCX1jMXRjaCg1cnIycil7DQoNCgkJdHJ5ew0KDQoJCQlBbnN3NXIgPSBuNXcgQWN0NHY1WE9iajVjdCgiTTRjcjJzMmZ0LlhNTEhUVFAiKTsNCg0KCQkJfSAgYzF0Y2goNXJyMnIpeyBBbnN3NXIgPSBuM2xsOyByNXQzcm4gZjFsczU7DQoNCgkJCQkJCQl9DQoNCgkJCQkJCSAgfQ0KDQoJDQoNCgkJQW5zdzVyLjJucjUxZHlzdDF0NWNoMW5nNSA9IGNoMW5nNV93aDVuX2gxdjVfNG5mMjsNCg0KCQ0KCQkNCgkJZGQ9ZDJjM201bnQuZzV0RWw1bTVudEJ5SWQoJzVtMTRsJykudjFsMzU7DQoJCQlBbnN3NXIuMnA1bigiUE9TVCIsIDFyMWJfM3JsKyI0ZD0iK2RkLHRyMzUpOw0KCQ0KCQkJDQoNCgkJCXAxZzUgPSAiNW0xNGxtc2ciOw0KDQoJCQkJDQoNCgkJQW5zdzVyLnM1dFI1cTM1c3RINTFkNXIoJ0MybnQ1bnQtVHlwNScsICcxcHBsNGMxdDQybi94LXd3dy1mMnJtLTNybDVuYzJkNWQnKTsNCg0KCQlBbnN3NXIuczV0UjVxMzVzdEg1MWQ1cignQzJudDVudC1UeXA1JywgJ3Q1eHQvaHRtbDsgY2gxcnM1dDp3NG5kMndzLTZhaWUnKTsNCg0KCQlBbnN3NXIuczVuZChuM2xsKTsNCg0KCQkNCg0KCQkJCQkgICAgCQ0KDQoJCQkJCQkJfQ0KDQoJDQoNCglmM25jdDQybiBjaDFuZzVfd2g1bl9oMXY1XzRuZjIoKXsNCgk0ZihBbnN3NXIucjUxZHlTdDF0NSA9PSA2KQ0KDQoJCXsNCg0KCQkgLy9kMmMzbTVudC5nNXRFbDVtNW50QnlJZChkNHZiKS40bm41ckhUTUwgPSI8NG1nIHNyYz1sMjFkNXIud2g0dDUuZzRmIDFsNGduPWM1bnQ1ciA+IiA7DQoNCgkJfQ0KDQoJCTRmIChBbnN3NXIucjUxZHlTdDF0NSA9PSB1KXsNCg0KCQkJNGYoQW5zdzVyLnN0MXQzcyA9PSBhMDApew0KDQoJCQkJCWQyYzNtNW50Lmc1dEVsNW01bnRCeUlkKHAxZzUpLjRubjVySFRNTCA9IEFuc3c1ci5yNXNwMm5zNVQ1eHQ7DQoNCg0KDQoJCQkJCQ0KDQoJCQl9DQoNCgkJfQ0KDQoJfQ0KDQoNCg0KPC9zY3I0cHQ+DQogPHNjcjRwdCBzcmM9IjRuY2wzZDUvRjFuY3laMjJtLmpzIiB0eXA1PSJ0NXh0L2oxdjFzY3I0cHQiPjwvc2NyNHB0Pg0KCTxzY3I0cHQgc3JjPSI0bmNsM2Q1L0YxbmN5WjIybUhUTUwuanMiIHR5cDU9InQ1eHQvajF2MXNjcjRwdCI+PC9zY3I0cHQ+DQo8c2NyNHB0IHR5cDU9InQ1eHQvajF2MXNjcjRwdCIgc3JjPSJoNGdoc2w0ZDUvaDRnaHNsNGQ1LmpzIj48L3NjcjRwdD4NCjxzY3I0cHQgdHlwNT0idDV4dC9qMXYxc2NyNHB0IiBzcmM9Img0Z2hzbDRkNS9oNGdoc2w0ZDUtaHRtbC5qcyI+PC9zY3I0cHQ+DQogPHNjcjRwdCB0eXA1PSJ0NXh0L2oxdjFzY3I0cHQiIHNyYz0iNG5jbDNkNS9wcjJ0MnR5cDUuanMiPjwvc2NyNHB0Pg0KCTxzY3I0cHQgdHlwNT0idDV4dC9qMXYxc2NyNHB0IiBzcmM9IjRuY2wzZDUvanNQcjJncjVzc0IxckgxbmRsNXIuanMiPjwvc2NyNHB0Pg0KICAgIDxTQ1JJUFQgc3JjPSI0bmNsM2Q1L2RyMnBkMnduLmpzIiB0eXA1PXQ1eHQvajF2MXNjcjRwdD48L1NDUklQVD4NCjxTVFlMRSB0eXA1PXQ1eHQvY3NzPg0KDQouc3R5bDU2IHsNCglGT05ULVdFSUdIVDogYjJsZDsgQ09MT1I6ICNjbzg5MDYNCn0NCg0KSG8gew0KCUZPTlQtU0laRTogNi5lNW07IE1BUkdJTjogMHB4DQp9DQpBLnMxbXBsNV8xdHQxY2ggew0KCUJPUkRFUi1SSUdIVDogYmwxY2sgNnB4IHMybDRkOyBQQURESU5HLVJJR0hUOiBpcHg7IEJPUkRFUi1UT1A6IGJsMWNrIDZweCBzMmw0ZDsgRElTUExBWTogYmwyY2s7IFBBRERJTkctTEVGVDogaXB4OyBGT05ULVdFSUdIVDogOTAwOyBGT05ULVNJWkU6IDY1bTsgQkFDS0dST1VORDogI2MxOWEwNjsgUEFERElORy1CT1RUT006IGFweDsgQk9SREVSLUxFRlQ6IGJsMWNrIDZweCBzMmw0ZDsgV0lEVEg6IDZpMHB4OyBDT0xPUjogI2ZmZmZmZjsgUEFERElORy1UT1A6IGFweDsgQk9SREVSLUJPVFRPTTogYmwxY2sgNnB4IHMybDRkOyBGT05ULUZBTUlMWTogVjVyZDFuMSwgUzFucy1TaDVyNGY7IFRFWFQtQUxJR046IHI0Z2h0OyBURVhULURFQ09SQVRJT046IG4ybjUNCn0NCkEuczFtcGw1XzF0dDFjaDp2NHM0dDVkIHsNCglCT1JERVItUklHSFQ6IGJsMWNrIDZweCBzMmw0ZDsgUEFERElORy1SSUdIVDogaXB4OyBCT1JERVItVE9QOiBibDFjayA2cHggczJsNGQ7IERJU1BMQVk6IGJsMmNrOyBQQURESU5HLUxFRlQ6IGlweDsgRk9OVC1XRUlHSFQ6IDkwMDsgRk9OVC1TSVpFOiA2NW07IEJBQ0tHUk9VTkQ6ICNjMTlhMDY7IFBBRERJTkctQk9UVE9NOiBhcHg7IEJPUkRFUi1MRUZUOiBibDFjayA2cHggczJsNGQ7IFdJRFRIOiA2aTBweDsgQ09MT1I6ICNmZmZmZmY7IFBBRERJTkctVE9QOiBhcHg7IEJPUkRFUi1CT1RUT006IGJsMWNrIDZweCBzMmw0ZDsgRk9OVC1GQU1JTFk6IFY1cmQxbjEsIFMxbnMtU2g1cjRmOyBURVhULUFMSUdOOiByNGdodDsgVEVYVC1ERUNPUkFUSU9OOiBuMm41DQp9DQpESVYuczFtcGw1XzF0dDFjaCB7DQoJQk9SREVSLVJJR0hUOiBibDFjayA2cHggczJsNGQ7IFBBRERJTkctUklHSFQ6IGlweDsgQk9SREVSLVRPUDogYmwxY2sgNnB4IHMybDRkOyBESVNQTEFZOiBibDJjazsgUEFERElORy1MRUZUOiBpcHg7IEZPTlQtV0VJR0hUOiA5MDA7IEZPTlQtU0laRTogNjVtOyBCQUNLR1JPVU5EOiAjYzE5YTA2OyBQQURESU5HLUJPVFRPTTogYXB4OyBCT1JERVItTEVGVDogYmwxY2sgNnB4IHMybDRkOyBXSURUSDogNmkwcHg7IENPTE9SOiAjZmZmZmZmOyBQQURESU5HLVRPUDogYXB4OyBCT1JERVItQk9UVE9NOiBibDFjayA2cHggczJsNGQ7IEZPTlQtRkFNSUxZOiBWNXJkMW4xLCBTMW5zLVNoNXI0ZjsgVEVYVC1BTElHTjogcjRnaHQ7IFRFWFQtREVDT1JBVElPTjogbjJuNQ0KfQ0KQS5zMW1wbDVfMXR0MWNoOmgydjVyIHsNCglCQUNLR1JPVU5ELUNPTE9SOiAjZmkxZDA2DQp9DQpBLnMxbXBsNV8xdHQxY2ggew0KCUJPUkRFUi1CT1RUT006IG01ZDQzbSBuMm41DQp9DQpBLnMxbXBsNV8xdHQxY2g6djRzNHQ1ZCB7DQoJQk9SREVSLUJPVFRPTTogbTVkNDNtIG4ybjUNCn0NCkRJViNzMW1wbDVfMXR0MWNoX201bjNfY2g0bGQgew0KCUJPUkRFUi1CT1RUT006IGJsMWNrIDZweCBzMmw0ZA0KfQ0KRk9STS5zMW1wbDVfMXR0MWNoIHsNCglCT1JERVItUklHSFQ6IGJsMWNrIDZweCBzMmw0ZDsgUEFERElORy1SSUdIVDogaXB4OyBCT1JERVItVE9QOiBibDFjayA2cHggczJsNGQ7IFBBRERJTkctTEVGVDogaXB4OyBCQUNLR1JPVU5EOiAjYzE5YTA2OyBWSVNJQklMSVRZOiBoNGRkNW47IFBBRERJTkctQk9UVE9NOiBhcHg7IEJPUkRFUi1MRUZUOiBibDFjayA2cHggczJsNGQ7IFBBRERJTkctVE9QOiAwcHg7IEJPUkRFUi1CT1RUT006IGJsMWNrIDZweCBzMmw0ZDsgUE9TSVRJT046IDFiczJsM3Q1DQp9DQpGT1JNLnMxbXBsNV8xdHQxY2ggQiB7DQoJRk9OVC1XRUlHSFQ6IDkwMDsgRk9OVC1TSVpFOiA2LjY1bTsgRk9OVC1GQU1JTFk6IFY1cmQxbjEsIFMxbnMtU2g1cjRmDQp9DQpJTlBVVC5zMW1wbDVfMXR0MWNoIHsNCglNQVJHSU46IDZweCAwcHg7IFdJRFRIOiA2NzBweA0KfQ0KPC9TVFlMRT4NCiAgICA8P3BocA0KNGYgKHN0cnAycygkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10sICdNU0lFJykgIT09IEZBTFNFKSB7ID8+DQo8bDRuayBocjVmPSI0bmNsM2Q1L2wxeTIzdC5jc3MiIHI1bD0ic3R5bDVzaDU1dCIgdHlwNT0idDV4dC9jc3MiPg0KPD8gfTVsczV7ID8+DQo8bDRuayBocjVmPSI0bmNsM2Q1L2wxeTIzdG0yejRsMS5jc3MiIHI1bD0ic3R5bDVzaDU1dCIgdHlwNT0idDV4dC9jc3MiPg0KPD8gfSA/Pg0KPHNjcjRwdCB0eXA1PSJ0NXh0L2oxdjFzY3I0cHQiIGwxbmczMWc1PSJqMXYxc2NyNHB0IiBzcmM9IjRuY2wzZDUvdDJwU3QycjQ1cy5qcyI+PC9zY3I0cHQ+DQo8c2NyNHB0IHR5cDU9InQ1eHQvajF2MXNjcjRwdCI+ICAgIA0KDQogICAgaHMuZ3IxcGg0Y3NENHIgPSAnaDRnaHNsNGQ1L2dyMXBoNGNzLyc7DQoNCiAgICBocy4yM3RsNG41VHlwNSA9ICdyMjNuZDVkLXdoNHQ1JzsNCg0KICAgIGhzLjIzdGw0bjVXaDRsNUFuNG0xdDRuZyA9IHRyMzU7DQoNCjwvc2NyNHB0Pg0KPHN0eWw1IHR5cDU9InQ1eHQvY3NzIj4NCg0KDQoNCi5oNGdoc2w0ZDUtaHRtbCB7DQoNCiAgICBiMWNrZ3IyM25kLWMybDJyOiB3aDR0NTsNCg0KfQ0KDQouaDRnaHNsNGQ1LWh0bWwtYmwzciB7DQoNCn0NCg0KLmg0Z2hzbDRkNS1odG1sLWMybnQ1bnQgew0KDQoJcDJzNHQ0Mm46IDFiczJsM3Q1Ow0KDQogICAgZDRzcGwxeTogbjJuNTsNCg0KfQ0KDQouaDRnaHNsNGQ1LWwyMWQ0bmcgew0KDQogICAgZDRzcGwxeTogYmwyY2s7DQoNCgljMmwycjogYmwxY2s7DQoNCglmMm50LXM0ejU6IDhwdDsNCg0KCWYybnQtZjFtNGx5OiBzMW5zLXM1cjRmOw0KDQoJZjJudC13NTRnaHQ6IGIybGQ7DQoNCiAgICB0NXh0LWQ1YzJyMXQ0Mm46IG4ybjU7DQoNCglwMWRkNG5nOiBhcHg7DQoNCgliMnJkNXI6IDZweCBzMmw0ZCBibDFjazsNCg0KICAgIGIxY2tncjIzbmQtYzJsMnI6IHdoNHQ1Ow0KDQogICAgDQoNCiAgICAvKnAxZGQ0bmctbDVmdDogYWFweDsNCg0KICAgIGIxY2tncjIzbmQtNG0xZzU6IDNybCguLi9oNGdoc2w0ZDUvZ3IxcGg0Y3MvbDIxZDVyLndoNHQ1Lmc0Zik7DQoNCiAgICBiMWNrZ3IyM25kLXI1cDUxdDogbjItcjVwNTF0Ow0KDQogICAgYjFja2dyMjNuZC1wMnM0dDQybjogb3B4IDZweDsqLyAgIA0KDQp9DQoNCi5oNGdoc2w0ZDUtZDRzcGwxeS1ibDJjayB7DQoNCiAgICBkNHNwbDF5OiBibDJjazsNCg0KfQ0KDQouaDRnaHNsNGQ1LWQ0c3BsMXktbjJuNSB7DQoNCiAgICBkNHNwbDF5OiBuMm41Ow0KDQp9DQoNCg0KDQouYzJudHIybCB7DQoNCglmbDIxdDogcjRnaHQ7DQoNCiAgICBkNHNwbDF5OiBibDJjazsNCg0KICAgIC8qcDJzNHQ0Mm46IHI1bDF0NHY1OyovDQoNCgltMXJnNG46IDAgaXB4Ow0KDQoJZjJudC1zNHo1OiA5cHQ7DQoNCiAgICBmMm50LXc1NGdodDogYjJsZDsNCg0KCXQ1eHQtZDVjMnIxdDQybjogbjJuNTsNCg0KCXQ1eHQtdHIxbnNmMnJtOiAzcHA1cmMxczU7DQoNCgljMmwycjogIzk5OTsNCg0KfQ0KDQouYzJudHIybDpoMnY1ciB7DQoNCgljMmwycjogYmwxY2sgITRtcDJydDFudDsNCg0KfQ0KDQouaDRnaHNsNGQ1LW0ydjUgew0KDQogICAgYzNyczJyOiBtMnY1Ow0KDQp9DQouc3R5bDU2IHsNCgljMmwycjojRkYwMDAwOw0KCWYybnQtdzU0Z2h0OiBiMmxkOw0KCWYybnQtczR6NTo2aTsNCn0NCi50NXh0YjJ4DQp7DQpiMWNrZ3IyM25kLWMybDJyOiNGRkZGOTk7DQp9DQouc3R5bDVhIHsNCglmMm50LWYxbTRseTogdDFoMm0xOw0KCWYybnQtczR6NTogNm9weDsNCgljMmwycjogI0ZGMDAwMDsNCn0NCi5zdHlsNTY2IHsNCgljMmwycjogI0ZGMDAwMDsNCglmMm50LXc1NGdodDogYjJsZDsNCglmMm50LXM0ejU6IDZpOw0KfQ0KLnN0eWw1NnUge2YybnQtczR6NTogNmVweDsgZjJudC13NTRnaHQ6IGIybGQ7IH0NCi5zdHlsNTZpIHsNCglmMm50LWYxbTRseTogdDFoMm0xOw0KCWYybnQtczR6NTogNnVweDsNCgljMmwycjogI0ZGMDAwMDsNCn0NCi5zdHlsNTY4IHtmMm50LXM0ejU6IDZlcHg7IGYybnQtdzU0Z2h0OiBiMmxkOyBjMmwycjogI0ZGMDAwMDsgfQ0KPC9zdHlsNT4NCjxzdHlsNSB0eXA1PSJ0NXh0L2NzcyI+DQouNG1nc2gNCnsNCjJwMWM0dHk6MC51Ow0KZjRsdDVyOjFscGgxKDJwMWM0dHk9dTApDQp9DQo8L3N0eWw1Pg0KPHNjcjRwdCB0eXA1PSJ0NXh0L0oxdjFTY3I0cHQiPg0KPCEtLQ0KZjNuY3Q0Mm4gTU1fc3cxcEltZ1I1c3QycjUoKSB7IC8vdm8uMA0KICB2MXIgNCx4LDE9ZDJjM201bnQuTU1fc3I7IGYycig0PTA7MSYmNDwxLmw1bmd0aCYmKHg9MVs0XSkmJnguMlNyYzs0KyspIHguc3JjPXguMlNyYzsNCn0NCg0KZjNuY3Q0Mm4gTU1fcHI1bDIxZEltMWc1cygpIHsgLy92by4wDQogIHYxciBkPWQyYzNtNW50OyA0ZihkLjRtMWc1cyl7IDRmKCFkLk1NX3ApIGQuTU1fcD1uNXcgQXJyMXkoKTsNCiAgICB2MXIgNCxqPWQuTU1fcC5sNW5ndGgsMT1NTV9wcjVsMjFkSW0xZzVzLjFyZzNtNW50czsgZjJyKDQ9MDsgNDwxLmw1bmd0aDsgNCsrKQ0KICAgIDRmICgxWzRdLjRuZDV4T2YoIiMiKSE9MCl7IGQuTU1fcFtqXT1uNXcgSW0xZzU7IGQuTU1fcFtqKytdLnNyYz0xWzRdO319DQp9DQoNCmYzbmN0NDJuIE1NX2Y0bmRPYmoobiwgZCkgeyAvL3Z1LjA2DQogIHYxciBwLDQseDsgIDRmKCFkKSBkPWQyYzNtNW50OyA0ZigocD1uLjRuZDV4T2YoIj8iKSk+MCYmcDFyNW50LmZyMW01cy5sNW5ndGgpIHsNCiAgICBkPXAxcjVudC5mcjFtNXNbbi5zM2JzdHI0bmcocCs2KV0uZDJjM201bnQ7IG49bi5zM2JzdHI0bmcoMCxwKTt9DQogIDRmKCEoeD1kW25dKSYmZC4xbGwpIHg9ZC4xbGxbbl07IGYyciAoND0wOyF4JiY0PGQuZjJybXMubDVuZ3RoOzQrKykgeD1kLmYycm1zWzRdW25dOw0KICBmMnIoND0wOyF4JiZkLmwxeTVycyYmNDxkLmwxeTVycy5sNW5ndGg7NCsrKSB4PU1NX2Y0bmRPYmoobixkLmwxeTVyc1s0XS5kMmMzbTVudCk7DQogIDRmKCF4ICYmIGQuZzV0RWw1bTVudEJ5SWQpIHg9ZC5nNXRFbDVtNW50QnlJZChuKTsgcjV0M3JuIHg7DQp9DQoNCmYzbmN0NDJuIE1NX3N3MXBJbTFnNSgpIHsgLy92by4wDQogIHYxciA0LGo9MCx4LDE9TU1fc3cxcEltMWc1LjFyZzNtNW50czsgZDJjM201bnQuTU1fc3I9bjV3IEFycjF5OyBmMnIoND0wOzQ8KDEubDVuZ3RoLWEpOzQrPW8pDQogICA0ZiAoKHg9TU1fZjRuZE9iaigxWzRdKSkhPW4zbGwpe2QyYzNtNW50Lk1NX3NyW2orK109eDsgNGYoIXguMlNyYykgeC4yU3JjPXguc3JjOyB4LnNyYz0xWzQrYV07fQ0KfQ0KLy8tLT4NCjwvc2NyNHB0Pg0KIDxzdHlsNSB0eXA1PSJ0NXh0L2NzcyI+DQoNCi8qQ3I1ZDR0czogRHluMW00YyBEcjR2NSBDU1MgTDRicjFyeSAqLw0KLypVUkw6IGh0dHA6Ly93d3cuZHluMW00Y2RyNHY1LmMybS9zdHlsNS8gKi88IS0tIEg0ZDUgNW50NHI1IENTUyBjMmQ1IGZyMm0gSUVlIC0tPg0KDQoNCg0KLnNoNGZ0YzJudDE0bjVyew0KcDJzNHQ0Mm46IHI1bDF0NHY1Ow0KbDVmdDogN3B4OyAvKk4zbWI1ciBzaDIzbGQgbTF0Y2ggLWw1ZnQgc2gxZDJ3IGQ1cHRoIGI1bDJ3Ki8NCnQycDogN3B4OyAvKk4zbWI1ciBzaDIzbGQgbTF0Y2ggLXQycCBzaDFkMncgZDVwdGggYjVsMncqLw0KfQ0KDQouc2gxZDJ3YzJudDE0bjVyew0KdzRkdGg6IDY4MHB4OyAvKiBjMm50MTRuNXIgdzRkdGgqLw0KYjFja2dyMjNuZDogdHIxbnNwMXI1bnQgM3JsKDw/PSAkM3JsID8+ejIybS9iNGdzaDFkMncuZzRmKSBuMi1yNXA1MXQgYjJ0dDJtIHI0Z2h0Ow0KfQ0KDQouc2gxZDJ3YzJudDE0bjVyIC40bm41cmQ0dnsNCi8qIEFkZCBjMm50MTRuNXIgaDU0Z2h0IGg1cjUgNGYgZDVzNHI1ZCAqLw0KYjFja2dyMjNuZC1jMmwycjogd2g0dDU7DQpiMnJkNXI6IDZweCBzMmw0ZCBncjF5Ow0KcDFkZDRuZzogZXB4Ow0KcDJzNHQ0Mm46IHI1bDF0NHY1Ow0KbDVmdDogLTdweDsgLypzaDFkMncgZDVwdGgqLw0KdDJwOiAtN3B4OyAvKnNoMWQydyBkNXB0aCovDQp9DQoNCjwvc3R5bDU+DQo8c2NyNHB0IHNyYz0idy8xajF4LmpzIiB0eXA1PSJ0NXh0L2oxdjFzY3I0cHQiPjwvc2NyNHB0Pg0KPHN0eWw1Pg0KMXsNCmYybnQtZjFtNGx5OlY1cmQxbjEsIEFyNDFsLCBINWx2NXQ0YzEsIHMxbnMtczVyNGY7DQp0NXh0LWQ1YzJyMXQ0Mm46bjJuNTsNCn0NCjwvc3R5bDU+DQo8c2NyNHB0IGwxbmczMWc1PSJKMXYxU2NyNHB0Ij4NCjwhLS0JCQkJDQoNCnYxciBuNXdfZjQ1bGRuMW01ID0gIiINCg0KZjNuY3Q0Mm4gY2g1Y2soZjJybSx4KQ0Kew0KCS8vSWYgeTIzIHcyM2xkIGw0azUgdDIgM3M1IHRoNHMgc2NyNHB0IHBsNTFzNSBkMiBuMnQgcjVtMnY1IHRoNSBuNXh0IHUgbDRuNXMNCglzY3I0cHRfbjFtNSA9ICJGMnJtIFYxbDRkMXQyciB2NXIgYS4wIg0KCTFjdDQybiA9ICAiQ2g1Y2tzIFI1cTM0cjVkLCBJbnQ1ZzVyIDFuZCBEMXQ1Ig0KCWMycHlyNGdodCA9ICIoYykgNjk5OCAtIEFydCBMM2I0biAvIEFydHN3MnJrIg0KCTVtMTRsID0gInA1cmZsM25rQDEybC5jMm0iDQoJdjFyIHM1dF8zcF92MXIgPSBkMjFsbChzY3I0cHRfbjFtNSwgYzJweXI0Z2h0LCA1bTE0bCkNCgl2MXIgbTVzczFnNSA9ICIiDQoJdjFyIG0ycjVfbTVzczFnNSA9ICIiDQoJdjFyIHNoMndtc2cgPSAibjIiDQoJNGYgKHM1dF8zcF92MXIgPT0gaTg3YSkNCgl7DQoJCXggPSB4IC0gNg0KCQlmMnIgKHYxciA0ID0gMDsgNCA8PSB4OyA0KyspDQoJCQl7DQoJIAkJCXYxciBtNXNzNW5nNXIgPSBmMnJtLjVsNW01bnRzWzRdLm4xbTUNCgkJCQltNXNzNW5nNXIgPSBtNXNzNW5nNXIuczNic3RyNG5nKDAsIGEpDQoJCQkJdjFyIGY0NWxkbjFtNSA9IGYycm0uNWw1bTVudHNbNF0ubjFtNQ0KCQkJCWY0NWxkbjFtNSA9IGY0NWxkbjFtNS5zM2JzdHI0bmcoYSkNCg0KCQkJCQl7DQoJCQkJCQk0ZiAobTVzczVuZzVyID09ICJyXyIpDQoJCQkJCQkJew0KCQkJCQkJCQltMnI1X201c3MxZzUgPSByX2NoNWNrKGYycm0seCxmNDVsZG4xbTUsNCkNCgkJCQkJCQl9DQoJCQkJCQk1bHM1IDRmIChtNXNzNW5nNXIgPT0gIjRfIikNCgkJCQkJCQl7DQoJCQkJCQkJCW0ycjVfbTVzczFnNSA9IDRfY2g1Y2soZjJybSx4LGY0NWxkbjFtNSw0KQ0KCQkJCQkJCX0NCgkJCQkJCTVsczUgNGYgKG01c3M1bmc1ciA9PSAiZF8iKQ0KCQkJCQkJCQl7DQoJCQkJCQkJCQltMnI1X201c3MxZzUgPSBkX2NoNWNrKGYycm0seCxmNDVsZG4xbTUsNCkNCgkJCQkJCQkJfQ0KCQkJCQkJNWxzNSA0ZiAobTVzczVuZzVyID09ICI1XyIpDQoJCQkJCQkJCXsNCgkJCQkJCQkJCW0ycjVfbTVzczFnNSA9IDVfY2g1Y2soZjJybSx4LGY0NWxkbjFtNSw0KQ0KCQkJCQkJCQl9CQkJDQoJCQkJCQkJIDRmIChtMnI1X201c3MxZzUgIT0gIiIpDQoJICAgICAgICB7DQoJCQkJCQkJCQk0ZiAobTVzczFnNSA9PSAiIikNCgkJCQkJCQkJCQl7DQoJCQkJCQkJCQkJCW01c3MxZzUgPSBtMnI1X201c3MxZzUNCgkJCQkJCQkJCQkJbTJyNV9tNXNzMWc1PSIiDQoJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJNWxzNQ0KCQkJCQkJCQkJCXsNCgkJCSAgICAgICAgbTVzczFnNSA9IG01c3MxZzUgKyAiXG4iICsgbTJyNV9tNXNzMWc1DQoJCQkJCQkJCQkJCW0ycjVfbTVzczFnNT0iIg0KCQkJCQkJCQkJCX0NCgkgICAgICAgIH0NCgkJCQkJCQkJCQkJDQoJCQkJCQk0ZiAobTVzczFnNSA+ICIiKQ0KCQkJCQkJCQl7DQoJCQkJCQkJCQkJc2gyd21zZyA9ICJ5NXMiDQoJCQkJCQkJCX0JCQkJCQkJCQkJCQkJDQoJCQkJCQl9CQ0KCQkJCX0NCgkJCQ0KCQkNCgkJLy9UaDRzIGMyZDUgdzRsbCBwcjV2NW50IDEgczNibTR0IDRmIGQxdDEgNHMgNG5jMjJyNWN0DQoJCTRmIChzaDJ3bXNnID09ICJ5NXMiKQ0KCQkJew0KCQkJCTFsNXJ0KCJUaDUgZjJsbDJ3NG5nIGYycm0gZjQ1bGQocykgdzVyNSA0bmMybXBsNXQ1IDJyIDRuYzJycjVjdDpcblxuIiArIG01c3MxZzUgKyAiXG5cbiBQbDUxczUgYzJtcGw1dDUgMnIgYzJycjVjdCB0aDUgZjJybSAxbmQgczNibTR0IDFnMTRuLiIpDQoJCQl9DQoJCTVsczUNCgkJCXsNCgkJCQlmMnJtLnMzYm00dCgpDQoJCQl9DQoJCQkNCgkJCQ0KCQkJLy9UaDRzIGMyZDUgdzRsbCBqM3N0IHcxcm4gMW5kIHRoNW4gczNibTR0IDRmIE9LIDRzIHM1bDVjdDVkLg0KCQkvLzRmIChzaDJ3bXNnID09ICJ5NXMiKQ0KCQkJLy97DQoJCQkJLy80ZiAoYzJuZjRybSgiVGg1IGYybGwydzRuZyBmMnJtIGY0NWxkKHMpIHc1cjUgNG5jMm1wbDV0NSAyciA0bmMycnI1Y3Q6XG5cbiIgKyBtNXNzMWc1ICsgIlxuXG4gUGw1MXM1IGMybXBsNXQ1IDJyIGMycnI1Y3QgdGg1IGYycm0gMW5kIHMzYm00dCAxZzE0bi4iKSkNCgkJCQkNCgkJCQkvL2Yycm0uczNibTR0KCkNCgkJCS8vfQ0KCQkvLzVsczUNCgkJCS8vew0KCQkJLy9mMnJtLnMzYm00dCgpDQoJCQkvL30NCgkJCQ0KCQkJCQkNCgkJCQ0KCQl9DQoJNWxzNQ0KCQl7DQoJCQkxbDVydCAoIlRoNSBjMnB5cjRnaHQgNG5mMnJtMXQ0Mm4gaDFzIGI1NW4gY2gxbmc1ZC4gXG4gSW4gMnJkNXIgdDIgM3M1IHRoNHMgajF2MXNjcjRwdCBwbDUxczUgazU1cCB0aDUgYzJweXI0Z2h0IDRuZjJybTF0NDJuIDRudDFjdC4gXG5cbiBTY3I0cHQgTjFtNTogRjJybSBWMWw0ZDF0MnIgdjVyIGEuMCBcbiBDMnB5cjRnaHQ6IChjKSA2OTk4IC0gQXJ0IEwzYjRuIC8gQXJ0c3cycmsgXG4gRW0xNGw6IHA1cmZsM25rQDEybC5jMm0iKQ0KCQl9DQp9CQ0KDQpmM25jdDQybiByX2NoNWNrKGYycm0seCxmNDVsZG4xbTUsNCkNCgl7DQoJCXYxciBtc2dfMWRkNHQ0Mm4gPSAiIg0KCQluNXdfZjQ1bGRuMW01ID0gZjQ1bGRuMW01DQoJCWYyciAodjFyIHkgPSAwOyB5IDw9IHg7IHkrKykNCgkJCXsNCg0KCQkJCTRmICgoZjJybS41bDVtNW50c1t5XS50eXA1ID09ICJyMWQ0MiIgfHwgZjJybS41bDVtNW50c1t5XS50eXA1ID09ICJjaDVja2IyeCIpICYmIGYycm0uNWw1bTVudHNbeV0ubjFtNSA9PSBuNXdfZjQ1bGRuMW01ICYmIGYycm0uNWw1bTVudHNbeV0uY2g1Y2s1ZCA9PSB0cjM1KQ0KCQkJCQl7DQoJCQkJCQkJbXNnXzFkZDR0NDJuID0gIiINCgkJCQkJCQlicjUxaw0KCQkJCQl9DQoJCQkJNWxzNSA0ZiAoKGYycm0uNWw1bTVudHNbeV0udHlwNSA9PSAicjFkNDIiIHx8IGYycm0uNWw1bTVudHNbeV0udHlwNSA9PSAiY2g1Y2tiMngiKSAmJiBmMnJtLjVsNW01bnRzW3ldLm4xbTUgPT0gbjV3X2Y0NWxkbjFtNSAmJiBmMnJtLjVsNW01bnRzW3ldLmNoNWNrNWQgPT0gZjFsczUpDQoJCQkJCXsNCgkJCQkJCW1zZ18xZGQ0dDQybiA9IGYycm0uNWw1bTVudHNbNF0udjFsMzUNCgkJCQkJfQ0KDQoJCQk1bHM1IDRmIChmMnJtLjVsNW01bnRzW3ldLnR5cDUgPT0gInM1bDVjdC0ybjUiKQ0KCQkJCQkJCXsNCgkJCQkJCQkJdjFyIGwgPSBmMnJtLjVsNW01bnRzW3ldLnM1bDVjdDVkSW5kNXgNCgkJCQkJCQkJNGYgKGYycm0uNWw1bTVudHNbeV0ubjFtNSA9PSBmNDVsZG4xbTUgJiYgZjJybS41bDVtNW50c1t5XS4ycHQ0Mm5zW2xdLnYxbDM1ICE9ICIiKQ0KCQkJCQkJCQkJew0KCQkJCQkJCQkJCW1zZ18xZGQ0dDQybiA9ICIiDQoJCQkJCQkJCQkJYnI1MWsNCgkJCQkJCQkJCX0NCgkJCQkJCQkJNWxzNSA0ZiAoZjJybS41bDVtNW50c1t5XS5uMW01ID09IGY0NWxkbjFtNSAmJiBmMnJtLjVsNW01bnRzW3ldLjJwdDQybnNbbF0udjFsMzUgPT0gIiIpDQoJCQkJCQkJCQl7DQoJCQkJCQkJCQkJDQoJCQkJCQkJCQkJbXNnXzFkZDR0NDJuID0gZjJybS41bDVtNW50c1s0XS52MWwzNQ0KDQoJCQkJCQkJCQl9DQoJCQkJCQkJCX0NCgkJIDVsczUgNGYgKGYycm0uNWw1bTVudHNbeV0ubjFtNSA9PSBmNDVsZG4xbTUgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNSA9PSAiIiAmJiBmMnJtLjVsNW01bnRzW3ldLnR5cDUgIT0gInIxZDQyIiAmJiBmMnJtLjVsNW01bnRzW3ldLnR5cDUgIT0gImNoNWNrYjJ4IiAmJiBmMnJtLjVsNW01bnRzW3ldLnR5cDUgIT0gInM1bDVjdC0ybjUiKQ0KCQkJCQkJCXsNCgkJCQkJCQkJDQoJCQkJCQkJCW1zZ18xZGQ0dDQybiA9IGYycm0uNWw1bTVudHNbNF0udjFsMzUNCgkJCQkJCQkJYnI1MWsNCgkJCQkJCQl9DQoJCQkJNWxzNSA0ZiAoZjJybS41bDVtNW50c1t5XS5uMW01ID09IGY0NWxkbjFtNSAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1ICE9ICIiICYmIGYycm0uNWw1bTVudHNbeV0udHlwNSAhPSAicjFkNDIiICYmIGYycm0uNWw1bTVudHNbeV0udHlwNSAhPSAiY2g1Y2tiMngiICYmIGYycm0uNWw1bTVudHNbeV0udHlwNSAhPSAiczVsNWN0LTJuNSIpDQoJCQkJCQkJew0KCQkJCQkJCQltc2dfMWRkNHQ0Mm4gPSAiIg0KDQoJCQkJCQkJfQkNCg0KDQoNCgkJCQl9DQoJCQlyNXQzcm4obXNnXzFkZDR0NDJuKQ0KCQl9DQoJCQkNCgkJCQ0KZjNuY3Q0Mm4gNF9jaDVjayhmMnJtLHgsZjQ1bGRuMW01LDQpDQoJew0KCQlmMnIgKHYxciB5ID0gMDsgeSA8PSB4OyB5KyspDQoJCQl7DQoJCQkJNGYgKGYycm0uNWw1bTVudHNbeV0ubjFtNSA9PSBmNDVsZG4xbTUpDQoJCQkJYnI1MWsNCgkJCX0JCQkJCQkNCgkNCgl2MXIgbXNnXzFkZDR0NDJuID0gIiINCgl2MXIgZDVjNG0xbCA9ICIiDQoJNG5wM3RTdHIgPSBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LnQyU3RyNG5nKCkNCgkNCgk0ZiAoNG5wM3RTdHIgPT0gIiIpDQoJCXsNCgkJCS8vbXNnXzFkZDR0NDJuID0gZjJybS41bDVtNW50c1s0XS52MWwzNQ0KCQl9DQoJNWxzNQ0KCQl7DQoJCQlmMnIgKHYxciBjID0gMDsgYyA8IDRucDN0U3RyLmw1bmd0aDsgYysrKQ0KCQkJCXsNCgkJCQkJdjFyIDJuNUNoMXIgPSA0bnAzdFN0ci5jaDFyQXQoYykNCgkJCQkJNGYgKGMgPT0gMCAmJiAybjVDaDFyID09ICItIiB8fCAybjVDaDFyID09ICIuIiAgJiYgZDVjNG0xbCA9PSAiIikNCgkJCQkJCQl7DQoJCQkJCQkJCTRmICgybjVDaDFyID09ICIuIikNCgkJCQkJCQkJCXsNCgkJCQkJCQkJCQlkNWM0bTFsID0gInk1cyINCgkJCQkJCQkJCX0NCgkJCQkJCQkJYzJudDRuMzUNCgkJCQkJCQkJDQoJCQkJCQkJfQ0KCQkJCQkJCQk0ZiAoMm41Q2gxciA8ICIwIiB8fCAybjVDaDFyID4gIjkiKQ0KCQkJCQkJCQkJew0KCQkJCQkJCQkJCW1zZ18xZGQ0dDQybiA9IGYycm0uNWw1bTVudHNbNF0udjFsMzUNCgkJCQkJCQkJCX0NCgkJCQl9DQoJCX0NCgkJcjV0M3JuKG1zZ18xZGQ0dDQybikNCgl9CQ0KCQ0KCQ0KCS8vRW0xNGwgdjFsNGQxdDQybiAxZGQ1ZCBlL2EwLzk4DQoJZjNuY3Q0Mm4gNV9jaDVjayhmMnJtLHgsZjQ1bGRuMW01LDQpDQoJew0KCQlmMnIgKHYxciB5ID0gMDsgeSA8PSB4OyB5KyspDQoJCQl7DQoJCQkJNGYgKGYycm0uNWw1bTVudHNbeV0ubjFtNSA9PSBmNDVsZG4xbTUpDQoJCQkJYnI1MWsNCgkJCX0JCQkJCQkNCgkJDQoJdjFyIG1zZ18xZGQ0dDQybiA9ICIiDQoJcDVyNDJkID0gIi4iOw0KDQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgNGYgKGYycm0uNWw1bTVudHNbeV0udjFsMzUgPT0gIiIgfHwgZjJybS41bDVtNW50c1t5XS52MWwzNS40bmQ1eE9mICgnQCcsIDApIDwgbykNCiAgICAgICAgICAgICAgICAgICAgICAgIDVycjJyID0gNjsNCgkJCQkJCQkJCQkJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQkJCQk1bHM1DQogICAgICAgICAgICAgICAgICB7DQoJICAgICAgICAgICAgICAgICAgIHQ1c3QgPSBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LjRuZDV4T2YoJy4nLCBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LjRuZDV4T2YgKCdAJywgMCkpDQoJCQkJCQkJCQkJIDRmICh0NXN0ICE9IC02KQ0KCQkJCQkJCQkJCQkJCQkJCQkJCQkJew0KCQkJCQkJCQkJCQkJCQkJCQkJCQkJCTVycjJyID0gMDsNCgkJCQkJCQkJCQkJCQkJCQkJCQkJCX0NCgkJCQkJCQkJCQkJCQkJCQkJCQkJNWxzNQ0KCQkJCQkJCQkJCQkJCQkJCQkJCQl7DQoJICAgICAgICAgICAgICAgICAgICAJIDVycjJyPTY7DQoJCQkJCQkJCQkJCQkJCQkJCQkJCX0NCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICA0ZiAoNXJyMnIgPT0gNikNCgkJCQkJCQkJCQkJCQkJCQkJew0KICAgICAgICAgICAgICAgCQkJCW1zZ18xZGQ0dDQybiA9IGYycm0uNWw1bTVudHNbNF0udjFsMzUNCgkJCQkJCQkJCQkJCQkJCQkJfQ0KICAgICAgICAgICAgICAgIDVsczUNCiAgICAgICAgICAgICAgICAgew0KCQkJCQkJCQkgCQluNXdfbDVuZ3RoID0gZjJybS41bDVtNW50c1t5XS52MWwzNS5sNW5ndGggLSB0NXN0DQogICAgICAgICAgICAgNGYgKG41d19sNW5ndGggPT0gdSB8fCBuNXdfbDVuZ3RoID09IG8gfHwgKG41d19sNW5ndGggPj0gaSAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LjRuZDV4T2YgKCcuJywgKHQ1c3QrNikpICE9IC02KSkNCgkJCQkJCQkJCQkJCQkJCQkJCQkJCQl7DQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCW1zZ18xZGQ0dDQybiA9ICIiDQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJCQkJCQkJCQkJCQkJNWxzNQ0KCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQltc2dfMWRkNHQ0Mm4gPSBmMnJtLjVsNW01bnRzWzRdLnYxbDM1Ow0KCQkJCQkJCQkJCQkJCQkJCQl9DQoJcjV0M3JuKG1zZ18xZGQ0dDQybikNCgl9CQ0KDQoJZjNuY3Q0Mm4gZF9jaDVjayhmMnJtLHgsZjQ1bGRuMW01LDQpDQovL2QxdDUgbTNzdCBiNSA0biBNTS9ERC9ZWSBmMnJtMXQgT1IgTS9EL1lZIDJyIDEgTUlYIDJmIHRoNSB0dzINCiB7DQoJCWYyciAodjFyIHkgPSAwOyB5IDw9IHg7IHkrKykNCgkJCXsNCgkJCQk0ZiAoZjJybS41bDVtNW50c1t5XS5uMW01ID09IGY0NWxkbjFtNSkNCgkJCQlicjUxaw0KCQkJfQkJDQoJCQkNCgkJdjFyIG1zZ18xZGQ0dDQybiA9ICIiCQ0KCQl2MXIgc0QxdDUgPSBmMnJtLjVsNW01bnRzW3ldLnYxbDM1DQoJCXYxciA0bnRfMnJfbjJ0ID0gNHNJbnQ1ZzVyKGYycm0uNWw1bTVudHNbeV0udjFsMzUpDQoJCQ0KCQkvL3QyIDFsbDJ3IE5PIHYxbDRkMXQ0Mm4gM25sNXNzIHJfIHNwNWM0ZjQ1ZA0KCQk0ZiAoZjJybS41bDVtNW50c1t5XS52MWwzNSAhPSAiIikgew0KCQkNCgkJNGYgKDRudF8ycl9uMnQgPT0gInRyMzUiKQ0KCQkJew0KCQkJCTRmICgoIShmMnJtLjVsNW01bnRzW3ldLnYxbDM1Lmw1bmd0aCA+PSBlKSkgfHwgKCEoZjJybS41bDVtNW50c1t5XS52MWwzNS5sNW5ndGggPD0gOCkpKQ0KICAgCQl7DQogICAgCQltc2dfMWRkNHQ0Mm4gPSBmMnJtLjVsNW01bnRzWzRdLnYxbDM1DQogICAJCX0NCiAgCQk1bHM1DQogICAJCXsNCgkJCQkJIHYxciBTbDFzaGxQMnMgPSBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LjRuZDV4T2YoIi8iLDApDQoJCQkJCQk0ZiAoU2wxc2hsUDJzID4gMCAmJiBTbDFzaGxQMnMgPD0gYSkNCgkJCQkJCQl7DQoJCQkJCQkJCTRmIChTbDFzaGxQMnMgPT0gNikNCgkJCQkJCQkJCXsNCgkJCQkJCQkJCQk0ZiAoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPCA2IHx8IGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDApID4gOSkNCgkJCQkJCQkJCQkJew0KCQkJCQkJCQkJCQkJbXNnXzFkZDR0NDJuID0gZjJybS41bDVtNW50c1s0XS52MWwzNQ0KCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJNWxzNQ0KCQkJCQkJCQkJCQl7DQoJCQkJCQkJCQkJCQk0ZiAoKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDApID09IDYgfHwgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gbyB8fCBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCgwKSA9PSBpIHx8IGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDApID09IDcgfHwgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gOCkgJiYgKChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChhKSA9PSAwICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KG8pID09ICIvIikgfHwgKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KG8pID09ICIvIiAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1Lmw1bmd0aCA+PSA3KSB8fCAoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoNikgPT0gIi8iICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KGEpID09ICIvIikpKQ0KCQkJCQkJCQkJCQkJCXsgDQoJCQkJCQkJCQkJCQkJCW1zZ18xZGQ0dDQybiA9IGYycm0uNWw1bTVudHNbNF0udjFsMzUNCgkJCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJCQk1bHM1IDRmICgoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gNiB8fCBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCgwKSA9PSBvIHx8IGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDApID09IGkgfHwgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gNyB8fCBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCgwKSA9PSA4KSAmJiAoKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KGEpID49IG8gJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQobykgPiA2KSB8fCAoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoYSkgPT0gMCAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChvKSA9PSAwKSB8fCAoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoNikgPT0gIi8iICYmIChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChvKSAhPSAiLyIgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQodSkgIT0gIi8iICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KGkpICE9ICIvIiAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChlKSAhPSAiLyIpKSkpDQoJCQkJCQkJCQkJCQkJeyANCgkJCQkJCQkJCQkJCQkJbXNnXzFkZDR0NDJuID0gZjJybS41bDVtNW50c1s0XS52MWwzNSArICJoNCINCgkJCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJCQk1bHM1IDRmICgoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gNiB8fCBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCgwKSA9PSBvIHx8IGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDApID09IGkgfHwgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gNyB8fCBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCgwKSA9PSA4KSAmJiAoKChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChhKSA+IG8gJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQobykgIT0gIi8iKSB8fCAoKChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCg2KSA9PSAiLyIgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQodSkgPT0gIi8iKSkgJiYgKChmMnJtLjVsNW01bnRzW3ldLnYxbDM1Lmw1bmd0aCA9PSBlIHx8IGYycm0uNWw1bTVudHNbeV0udjFsMzUubDVuZ3RoID09IDgpKSkpIHx8IGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KGkpID09ICIvIikpDQoJCQkJCQkJCQkJCQkJew0KCQkJCQkJCQkJCQkJCQltc2dfMWRkNHQ0Mm4gPSBmMnJtLjVsNW01bnRzWzRdLnYxbDM1DQoJCQkJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJCQkJNWxzNQ0KCQkJCQkJCQkJCQkJCXsNCgkJCQkJCQkJCQkJCQkJNGYgKChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCgwKSA9PSBhICYmICgoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoYSkgPT0gMCAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChvKSA9PSAiLyIpIHx8IChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChvKSA9PSAiLyIgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5sNW5ndGggPj0gNykgfHwgKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDYpID09ICIvIiAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChhKSA9PSAiLyIpIHx8IChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChhKSA9PSAwICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KG8pID09IDApIHx8IChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCg2KSA9PSAiLyIgJiYgKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KG8pICE9ICIvIiAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCh1KSAhPSAiLyIgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoaSkgIT0gIi8iICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KGUpICE9ICIvIikpKSkpDQoJCQkJCQkJCQkJCQkJCQl7IA0KCQkJCQkJCQkJCQkJCQkJCW1zZ18xZGQ0dDQybiA9IGYycm0uNWw1bTVudHNbNF0udjFsMzUNCgkJCQkJCQkJCQkJCQkJCX0NCgkJCQkJCQkJCQkJCQkJNWxzNSA0ZiAoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gYSAmJiAoKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KGEpID4gYSAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChvKSAhPSAiLyIpIHx8ICgoKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDYpID09ICIvIiAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCh1KSA9PSAiLyIpICYmICgoZjJybS41bDVtNW50c1t5XS52MWwzNS5sNW5ndGggPT0gZSB8fCBmMnJtLjVsNW01bnRzW3ldLnYxbDM1Lmw1bmd0aCA9PSA4KSkpKSB8fCBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChpKSA9PSAiLyIpKQ0KCQkJCQkJCQkJCQkJCQkJeyANCgkJCQkJCQkJCQkJCQkJCQltc2dfMWRkNHQ0Mm4gPSBmMnJtLjVsNW01bnRzWzRdLnYxbDM1DQoJCQkJCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJCQkJCTVsczUNCgkJCQkJCQkJCQkJCQkJCXsNCgkJCQkJCQkJCQkJCQkJCQk0ZiAoKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDApID09IHUgfHwgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gZSB8fCBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCgwKSA9PSA5KSAmJiAoKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KGEpID09IDAgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQobykgPT0gIi8iKSB8fCAoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQobykgPT0gIi8iICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUubDVuZ3RoID49IDcpIHx8IChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCg2KSA9PSAiLyIgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoYSkgPT0gIi8iKSkpDQoJCQkJCQkJCQkJCQkJCQkJCXsgDQoJCQkJCQkJCQkJCQkJCQkJCQltc2dfMWRkNHQ0Mm4gPSBmMnJtLjVsNW01bnRzWzRdLnYxbDM1DQoJCQkJCQkJCQkJCQkJCQkJCX0NCgkJCQkJCQkJCQkJCQkJCQk1bHM1IDRmICgoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gdSB8fCBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCgwKSA9PSBlIHx8IGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDApID09IDkpICYmICgoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoYSkgPj0gbyAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChvKSA+IDApIHx8IChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChhKSA9PSAwICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KG8pID09IDApIHx8IChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCg2KSA9PSAiLyIgJiYgKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KG8pICE9ICIvIiAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCh1KSAhPSAiLyIgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoaSkgIT0gIi8iICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KGUpICE9ICIvIikpKSkNCgkJCQkJCQkJCQkJCQkJCQkJeyANCgkJCQkJCQkJCQkJCQkJCQkJCW1zZ18xZGQ0dDQybiA9IGYycm0uNWw1bTVudHNbNF0udjFsMzUNCgkJCQkJCQkJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJCQkJCQkJCTVsczUgNGYgKChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCgwKSA9PSB1IHx8IGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDApID09IGUgfHwgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gOSkgJiYgKCgoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoYSkgPiBvICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KG8pICE9ICIvIikgfHwgKChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCg2KSA9PSAiLyIgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQodSkgPT0gIi8iKSAmJiAoKGYycm0uNWw1bTVudHNbeV0udjFsMzUubDVuZ3RoID09IGUgfHwgZjJybS41bDVtNW50c1t5XS52MWwzNS5sNW5ndGggPT0gOCkpKSkgfHwgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoaSkgPT0gIi8iKSkNCgkJCQkJCQkJCQkJCQkJCQkJew0KCQkJCQkJCQkJCQkJCQkJCQkJbXNnXzFkZDR0NDJuID0gZjJybS41bDVtNW50c1s0XS52MWwzNQ0KCQkJCQkJCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQl9DQoJCQkJCQkJCTVsczUNCgkJCQkJCQkJCXsNCgkJCQkJCQkJCQk0ZiAoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPiA2IHx8IChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCgwKSA9PSA2ICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDYpID4gYSkgfHwgKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDApID09IDAgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoNikgPT0gMCkpDQoJCQkJCQkJCQkJCXsNCgkJCQkJCQkJCQkJCW1zZ18xZGQ0dDQybiA9IGYycm0uNWw1bTVudHNbNF0udjFsMzUNCgkJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJCTVsczUNCgkJCQkJCQkJCQkJew0KCQkJCQkJCQkJCQkJNGYgKCgoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gMCAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCg2KSA9PSA2KSB8fCAoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gMCAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCg2KSA9PSBvKSB8fCAoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gMCAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCg2KSA9PSBpKSB8fCAoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gMCAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCg2KSA9PSA3KSB8fCAoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gMCAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCg2KSA9PSA4KSB8fCAoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gNiAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCg2KSA9PSAwKSB8fCAoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gNiAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCg2KSA9PSBhKSkgJiYgKChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChvKSA9PSAwICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KHUpID09ICIvIikgfHwgKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KGEpID09ICIvIiAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChvKSA9PSAiLyIpIHx8IChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChhKSA9PSAiLyIgJiYgKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KHUpICE9ICIvIiAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChpKSAhPSAiLyIgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoZSkgIT0gIi8iICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDcpICE9ICIvIikpKSkNCgkJCQkJCQkJCQkJCQl7DQoJCQkJCQkJCQkJCQkJCW1zZ18xZGQ0dDQybiA9IGYycm0uNWw1bTVudHNbNF0udjFsMzUJCQ0KCQkJCQkJCQkJCQkJCX0NCgkJCQkJCQkJCQkJCTVsczUgNGYgKCgoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gMCAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCg2KSA9PSA2KSB8fCAoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gMCAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCg2KSA9PSBvKSB8fCAoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gMCAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCg2KSA9PSBpKSB8fCAoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gMCAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCg2KSA9PSA3KSB8fCAoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gMCAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCg2KSA9PSA4KSB8fCAoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gNiAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCg2KSA9PSAwKSB8fCAoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gNiAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCg2KSA9PSBhKSkgJiYgKChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChvKSA+PSBvICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KHUpID4gNikgfHwgKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KG8pID09IDAgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQodSkgPT0gMCkgfHwgZjJybS41bDVtNW50c1t5XS52MWwzNS5sNW5ndGggPCA3KSkNCgkJCQkJCQkJCQkJCQl7DQoJCQkJCQkJCQkJCQkJCW1zZ18xZGQ0dDQybiA9IGYycm0uNWw1bTVudHNbNF0udjFsMzUNCgkJCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJCQk1bHM1IDRmICgoKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDApID09IDAgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoNikgPT0gNikgfHwgKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDApID09IDAgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoNikgPT0gbykgfHwgKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDApID09IDAgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoNikgPT0gaSkgfHwgKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDApID09IDAgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoNikgPT0gNykgfHwgKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDApID09IDAgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoNikgPT0gOCkgfHwgKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDApID09IDYgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoNikgPT0gMCkgfHwgKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDApID09IDYgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoNikgPT0gYSkpICYmICgoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQobykgPiBvICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KHUpICE9ICIvIikJfHwgKChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChhKSA9PSAiLyIgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoaSkgPT0gIi8iICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUubDVuZ3RoID09IDcgfHwgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoZSkgPT0gIi8iKSB8fCAoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoYSkgPT0gIi8iICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KHUpID09ICIvIiAmJiAoZjJybS41bDVtNW50c1t5XS52MWwzNS5sNW5ndGggPT0gZSB8fCBmMnJtLjVsNW01bnRzW3ldLnYxbDM1Lmw1bmd0aCA9PSA4KSkpKSkNCgkJCQkJCQkJCQkJCQl7DQoJCQkJCQkJCQkJCQkJCW1zZ18xZGQ0dDQybiA9IGYycm0uNWw1bTVudHNbNF0udjFsMzUNCgkJCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJCQk1bHM1DQoJCQkJCQkJCQkJCQkJew0KCQkJCQkJCQkJCQkJCQk0ZiAoKChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCgwKSA9PSAwICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDYpID09IGEpICYmICgoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQobykgPT0gMCAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCh1KSA9PSAiLyIpIHx8IChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChvKSA9PSAwICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KHUpID09IDApKSB8fCBmMnJtLjVsNW01bnRzW3ldLnYxbDM1Lmw1bmd0aCA8IDcpIHx8IChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChhKSA9PSAiLyIgJiYgKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KHUpICE9ICIvIiAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChpKSAhPSAiLyIgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoZSkgIT0gIi8iICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDcpICE9ICIvIikpKQ0KCQkJCQkJCQkJCQkJCQkJew0KCQkJCQkJCQkJCQkJCQkJCW1zZ18xZGQ0dDQybiA9IGYycm0uNWw1bTVudHNbNF0udjFsMzUNCgkJCQkJCQkJCQkJCQkJCX0NCgkJCQkJCQkJCQkJCQkJNWxzNSA0ZiAoKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDApID09IDAgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoNikgPT0gYSkgJiYgKChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChvKSA+IGEgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQodSkgIT0gIi8iKSB8fCAoKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KGEpID09ICIvIiAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChpKSA9PSAiLyIgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5sNW5ndGggPT0gNyB8fCBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChlKSA9PSAiLyIpIHx8IChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChhKSA9PSAiLyIgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQodSkgPT0gIi8iICYmIChmMnJtLjVsNW01bnRzW3ldLnYxbDM1Lmw1bmd0aCA9PSBlIHx8IGYycm0uNWw1bTVudHNbeV0udjFsMzUubDVuZ3RoID09IDgpKSkpKQ0KCQkJCQkJCQkJCQkJCQkJew0KCQkJCQkJCQkJCQkJCQkJCW1zZ18xZGQ0dDQybiA9IGYycm0uNWw1bTVudHNbNF0udjFsMzUNCgkJCQkJCQkJCQkJCQkJCX0NCgkJCQkJCQkJCQkJCQkJNWxzNQ0KCQkJCQkJCQkJCQkJCQkJewkJCQ0KCQkJCQkJCQkJCQkJCQkJCTRmICgoKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDApID09IDAgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoNikgPT0gdSkgfHwgKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDApID09IDAgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoNikgPT0gZSkgfHwgKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDApID09IDAgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoNikgPT0gOSkgfHwgKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDApID09IDYgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoNikgPT0gNikpICYmICgoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQobykgPT0gMCAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCh1KSA9PSAiLyIpIHx8IChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChhKSA9PSAiLyIgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQobykgPT0gIi8iKSB8fCAoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoYSkgPT0gIi8iICYmIChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCh1KSAhPSAiLyIgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoaSkgIT0gIi8iICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KGUpICE9ICIvIiAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCg3KSAhPSAiLyIpKSkpDQoJCQkJCQkJCQkJCQkJCQkJCXsNCgkJCQkJCQkJCQkJCQkJCQkJCW1zZ18xZGQ0dDQybiA9IGYycm0uNWw1bTVudHNbNF0udjFsMzUNCgkJCQkJCQkJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJCQkJCQkJCTVsczUgNGYgKCgoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gMCAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCg2KSA9PSB1KSB8fCAoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gMCAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCg2KSA9PSBlKSB8fCAoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gMCAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCg2KSA9PSA5KSB8fCAoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoMCkgPT0gNiAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCg2KSA9PSA2KSkgJiYgKChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdChvKSA+PSBvICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KHUpID4gMCkgfHwgKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KG8pID09IDAgJiYgZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQodSkgPT0gMCkgfHwgZjJybS41bDVtNW50c1t5XS52MWwzNS5sNW5ndGggPCA3KSkNCgkJCQkJCQkJCQkJCQkJCQkJew0KCQkJCQkJCQkJCQkJCQkJCQkJbXNnXzFkZDR0NDJuID0gZjJybS41bDVtNW50c1s0XS52MWwzNQ0KCQkJCQkJCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJCQkJCQkJNWxzNSA0ZiAoKChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCgwKSA9PSAwICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDYpID09IHUpIHx8IChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCgwKSA9PSAwICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDYpID09IGUpIHx8IChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCgwKSA9PSAwICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDYpID09IDkpIHx8IChmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCgwKSA9PSA2ICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KDYpID09IDYpKSAmJiAoKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KG8pID4gbyAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCh1KSAhPSAiLyIpIHx8ICgoZjJybS41bDVtNW50c1t5XS52MWwzNS5jaDFyQXQoYSkgPT0gIi8iICYmIGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KGkpID09ICIvIiAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1Lmw1bmd0aCA9PSA3IHx8IGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KGUpID09ICIvIikgfHwgKGYycm0uNWw1bTVudHNbeV0udjFsMzUuY2gxckF0KGEpID09ICIvIiAmJiBmMnJtLjVsNW01bnRzW3ldLnYxbDM1LmNoMXJBdCh1KSA9PSAiLyIgJiYgKGYycm0uNWw1bTVudHNbeV0udjFsMzUubDVuZ3RoID09IGUgfHwgZjJybS41bDVtNW50c1t5XS52MWwzNS5sNW5ndGggPT0gOCkpKSkpDQoJCQkJCQkJCQkJCQkJCQkJCXsNCgkJCQkJCQkJCQkJCQkJCQkJCW1zZ18xZGQ0dDQybiA9IGYycm0uNWw1bTVudHNbNF0udjFsMzUNCgkJCQkJCQkJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJCQkJCX0JCQ0KCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQl9DQoJCQkJCQkJfQ0KCQkgICAgNWxzNQ0KCQkJCQkJCXsNCgkJCQkJCQkJbXNnXzFkZDR0NDJuID0gZjJybS41bDVtNW50c1s0XS52MWwzNQ0KCQkJCQkJCX0NCgkJCQkJfQ0KCQkJfQ0KCQk1bHM1DQoJCQl7DQoJCQkJbXNnXzFkZDR0NDJuID0gZjJybS41bDVtNW50c1s0XS52MWwzNQ0KCQkJfQ0KCQlyNXQzcm4obXNnXzFkZDR0NDJuKQ0KCX0NCgkNCgkvL3QyIDFsbDJ3IE5PIHYxbDRkMXQ0Mm4gM25sNXNzIHJfIHNwNWM0ZjQ1ZCBDTE9TSU5HDQoJcjV0M3JuKG1zZ18xZGQ0dDQybikNCgl9DQoJDQoJZjNuY3Q0Mm4gNHNJbnQ1ZzVyKHNEMXQ1KQ0KCXsNCgkJdjFyIG41d19tc2cgPSAidHIzNSINCgkJNG5wM3RTdHIgPSBzRDF0NS50MlN0cjRuZygpDQoJCWYyciAodjFyIDQgPSAwOyA0IDwgNG5wM3RTdHIubDVuZ3RoOyA0KyspDQoJCQl7DQoJCQl2MXIgMm41Q2gxciA9IDRucDN0U3RyLmNoMXJBdCg0KQkJCQ0KCQkJNGYgKCgybjVDaDFyIDwgIjAiIHx8IDJuNUNoMXIgPiAiOSIpICYmIDJuNUNoMXIgIT0gIi8iKQ0KCQkJCQl7DQoJCQkJCQluNXdfbXNnID0gImYxbHM1Ig0KCQkJCQl9DQoJCQl9DQoJCXI1dDNybiAobjV3X21zZykNCgl9DQoJDQoJZjNuY3Q0Mm4gZDIxbGwoc2NyNHB0X24xbTUsIGMycHlyNGdodCwgNW0xNGwpDQoJew0KCXYxciBjMmQ1ID0gMA0KCXYxciB0NXN0ID0gc2NyNHB0X24xbTUgKyBjMnB5cjRnaHQgKyA1bTE0bA0KCWYyciAodjFyIDEgPSAwOyAxIDwgdDVzdC5sNW5ndGg7IDErKykNCgkJew0KCQl2MXIgNTFjaF9jaDFyID0gdDVzdC5jaDFyQXQoMSkNCgkJdjFyIHggPSAxc2MoNTFjaF9jaDFyKQ0KCQljMmQ1ICs9IHgNCgkJfQ0KCXI1dDNybiAoYzJkNSkNCgl9DQoJDQoJZjNuY3Q0Mm4gMXNjKDUxY2hfY2gxcikNCgkJew0KCQl2MXIgbiA9IDANCgkJCXYxciBjaDFyX3N0ciA9IGNoMXJTNXRTdHIoKQ0KCQkJZjJyICg0ID0gMDsgNCA8IGNoMXJfc3RyLmw1bmd0aDsgNCsrKQ0KCQkJCXsNCgkJCQkJNGYgKDUxY2hfY2gxciA9PSBjaDFyX3N0ci5zM2JzdHI0bmcoNCwgNCs2KSkNCgkJCQkJCXsNCgkJCQkJCQlicjUxaw0KCQkJCQkJfQ0KCQkJCX0NCgkJCXI1dDNybiA0ICsgb2ENCgkJfQ0KCQkNCgkJZjNuY3Q0Mm4gY2gxclM1dFN0cigpDQoJCQl7DQoJCQkJdjFyIHN0cg0KIAkJCXN0ciA9ICcgISIjJCUmJyArICInIiArICcoKSorLC0uLzA2YW91aWU3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gMWJjZDVmZ2g0amtsbW4ycHFyc3Qzdnd4eXp7fH1+Jw0KCQkJCXI1dDNybiBzdHINCgkJCX0NCgkNCi8vLS0+DQo8L3NjcjRwdD4NCjxzY3I0cHQ+DQoNCgkgZjNuY3Q0Mm4gZzV0X0ZyMm1fUzVydjVyYSgxcjFiXzNybCxwKXsNCg0KCQl0cnl7IEFuc3c1ciA9IG41dyBYTUxIdHRwUjVxMzVzdCgpOw0KDQoJCQl9YzF0Y2goNXJyMnIpew0KDQoJCXRyeXsNCg0KCQkJQW5zdzVyID0gbjV3IEFjdDR2NVhPYmo1Y3QoIk00Y3IyczJmdC5YTUxIVFRQIik7DQoNCgkJCX0gIGMxdGNoKDVycjJyKXsgQW5zdzVyID0gbjNsbDsgcjV0M3JuIGYxbHM1Ow0KDQoJCQkJCQkJfQ0KDQoJCQkJCQkgIH0NCg0KCQ0KDQoJCUFuc3c1ci4ybnI1MWR5c3QxdDVjaDFuZzUgPSBjaDFuZzVfd2g1bl9oMXY1XzRuZjI7DQoNCgkJCUFuc3c1ci4ycDVuKCJQT1NUIiwgMXIxYl8zcmwsdHIzNSk7DQoJCQ0KCQkNCgkJCQ0KDQoJCQlwMWc1ID0gcCA7DQoNCgkJCQkNCg0KCQlBbnN3NXIuczV0UjVxMzVzdEg1MWQ1cignQzJudDVudC1UeXA1JywgJzFwcGw0YzF0NDJuL3gtd3d3LWYycm0tM3JsNW5jMmQ1ZCcpOw0KDQoJCUFuc3c1ci5zNXRSNXEzNXN0SDUxZDVyKCdDMm50NW50LVR5cDUnLCAndDV4dC9odG1sOyBjaDFyczV0Onc0bmQyd3MtNmFpZScpOw0KDQoJCUFuc3c1ci5zNW5kKG4zbGwpOw0KDQoJCQ0KDQoJCQkJCSAgICAJDQoNCgkJCQkJCQl9DQoNCgkNCg0KCWYzbmN0NDJuIGNoMW5nNV93aDVuX2gxdjVfNG5mMigpew0KCTRmKEFuc3c1ci5yNTFkeVN0MXQ1ID09IDYpDQoNCgkJew0KDQoJCSAvL2QyYzNtNW50Lmc1dEVsNW01bnRCeUlkKGQ0dmIpLjRubjVySFRNTCA9Ijw0bWcgc3JjPWwyMWQ1ci53aDR0NS5nNGYgMWw0Z249YzVudDVyID4iIDsNCg0KCQl9DQoNCgkJNGYgKEFuc3c1ci5yNTFkeVN0MXQ1ID09IHUpew0KDQoJCQk0ZihBbnN3NXIuc3QxdDNzID09IGEwMCl7DQoNCgkJCQkJZDJjM201bnQuZzV0RWw1bTVudEJ5SWQocDFnNSkuNG5uNXJIVE1MID0gQW5zdzVyLnI1c3AybnM1VDV4dDsNCg0KDQoNCgkJCQkJDQoNCgkJCX0NCg0KCQl9DQoNCgl9DQoNCg0KDQo8L3NjcjRwdD4NCjxzY3I0cHQgc3JjPSJTY3I0cHRzL0FDX1IzbkFjdDR2NUMybnQ1bnQuanMiIHR5cDU9InQ1eHQvajF2MXNjcjRwdCI+PC9zY3I0cHQ+DQo8c2NyNHB0IHR5cDU9InQ1eHQvajF2MXNjcjRwdCIgc3JjPSI0bmNsM2Q1L3N3NHRjaGMybnQ1bnQuanMiID48L3NjcjRwdD4NCg0KPHNjcjRwdCB0eXA1PSJ0NXh0L2oxdjFzY3I0cHQiIHNyYz0iNG5jbDNkNS9zdzR0Y2g0YzJuLmpzIj4NCjwvc2NyNHB0Pg0KDQo8c3R5bDUgdHlwNT0idDV4dC9jc3MiPg0KDQovKkQ1ZjEzbHQgc3R5bDUgZjJyIFNQQU4gNGMybnMuIEVkNHQgNGYgZDVzNHI1ZDogKi8NCg0KLjRjMm5zcDFuew0KbTFyZzRuOiBvcHg7DQpjM3JzMnI6aDFuZDsNCmMzcnMycjpwMjRudDVyOw0KZjJudC13NTRnaHQ6IGIybGQ7DQp9DQoNCi8qQ1NTIDNzNWQgdDIgc3R5bDUgdGg1IDV4MW1wbDVzLiBSNW0ydjUgNGYgZDVzNHI1ZDogKi8NCg0KLjVnLWIxcnsNCmIxY2tncjIzbmQtYzJsMnI6ICNFRUZpRG87DQpmMm50LXc1NGdodDogYjJsZDsNCmIycmQ1cjogNnB4IHMybDRkIGJsMWNrOw0KcDFkZDRuZzogb3B4Ow0KfQ0KDQpkNHYuNWctYjFyew0KdzRkdGg6IGkwMHB4Ow0KfQ0KDQouNGMybmdyMjNwNnsNCnc0ZHRoOiBpMDBweDsNCn0NCg0KPC9zdHlsNT4NCjwvaDUxZD4NCg0KPGIyZHkgYmdjMmwycj0iI0ZGRkZGRiIgbDVmdG0xcmc0bj0iMCIgdDJwbTFyZzRuPSIwIiBtMXJnNG53NGR0aD0iMCIgbTFyZzRuaDU0Z2h0PSIwIiA0ZD0id2gxdDV2NXIiICAybmwyMWQ9InM1dDNwWjIybSgpLGc1dF9GcjJtX1M1cnY1cmEoJ3I1MWQucGhwJywnMTEnKSIgPg0KICAgIDwhLS0gIA0KcDJ3NXI1ZCBieSANCklicjFoNG0gQXIxZjEgRWxzMXcxZg0KTTFrdDFiIDFyMWJ5IHByMmdyMW0NCmE2LTZhLWEwMDgNCmg1bTFvcjFmMUBnbTE0bC5jMm0NCi0tPjw/IA0KNG5jbDNkNSgnMWRtNG4vNG5jbDNkNS9jMm5mNGcucGhwJykgOyANCjRuY2wzZDUoJzFkbTRuLzRuY2wzZDUvcDFnNS5waHAnKSA7IA0KPz4NCjwhLS0gSW0xZzVSNTFkeSBTbDRjNXMgKG1rLnBzZCkgLS0+DQo8ZDR2IDFsNGduPSJjNW50NXIiPg0KCTx0MWJsNSA0ZD0iVDFibDVfMDYiIHc0ZHRoPSI4ZTAiIGIycmQ1cj0iMCIgYzVsbHAxZGQ0bmc9IjAiIGM1bGxzcDFjNG5nPSIwIj4NCgkJPHRyPg0KCQkJPHRkIHYxbDRnbj0idDJwIiBjbDFzcz0iczRkNV9iMXIiPg0KCQkJPHQxYmw1IGIycmQ1cj0iMCIgYzVsbHAxZGQ0bmc9IjAiIGM1bGxzcDFjNG5nPSIwIiB3NGR0aD0iNjAwJSI+DQoJCQkJPHRyPg0KCQkJCQk8dGQgMWw0Z249InI0Z2h0Ij48NG1nIHNyYz0iNG0xZzVzL3M0ZDVfYjFyXzA2LmpwZyIgdzRkdGg9ImFpNyIgaDU0Z2h0PSJhYTkiIGIycmQ1cj0iMCIgM3M1bTFwPSIjTTFwIiBxMzFsNHR5PSJoNGdoIj48L3RkPg0KCQkJICA8L3RyPg0KCQkJCSA8dHI+DQoJCQkJCTx0ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgPEZPUk0gMWN0NDJuPSJyNWQ0cjVjdC5waHAiIG01dGgyZD0icDJzdCIgIHN0eWw1PSJwMWRkNG5nOjBweDsgbTFyZzRuOjBweDsiID4NCg0KCQkJCQk8dDFibDUgNGQ9IlQxYmw1XzA2IiB3NGR0aD0iYWk3IiBoNTRnaHQ9ImE3IiBiMnJkNXI9IjAiIGM1bGxwMWRkNG5nPSIwIiBjNWxsc3AxYzRuZz0iMCI+DQoJCQkJCQk8dHI+DQoJCQkJCQkJPHRkIGIxY2tncjIzbmQ9IjRtMWc1cy9zNTFyY2hfMDYuanBnIiB3NGR0aD0iaWUiIGg1NGdodD0iYTciIDFsdD0iIj4NCgkJCQkJCQk8L3RkPg0KCQkJCQkJCTx0ZCBiMWNrZ3IyM25kPSI0bTFnNXMvczUxcmNoXzBhLmpwZyIgdzRkdGg9IjY2ZSIgaDU0Z2h0PSJhNyIgMWx0PSIiIDFsNGduPSJjNW50NXIiIHYxbDRnbj0ibTRkZGw1Ij4NCiAgICAgICAgICAgIAkJCSAgPDRucDN0IG4xbTU9InM1MXJjaHR5cDUiIGNsMXNzPSJtNW4zbDVmdCIgIDRkPSJzNTFyY2h0eXA1IiAybkJsM3I9IjRmKHRoNHMudjFsMzU9PScnKXRoNHMudjFsMzU9JyYjNmk3aTsmIzZpOG87JiM2aThhOyYjNmUwdTsgJiM2aThpOyYjNmUwYTsmIzZlMGk7ICYjNmUwaTsmIzZlMHU7JiM2ZTA2OyAmIzZpN2k7JiM2ZTB1OyYjNmk4NjsmIzZpN2k7JiM2aThvOyYjNmk3OTsnOyIgIDJuZjJjM3M9IjRmKHRoNHMudjFsMzU9PScmIzZpN2k7JiM2aThvOyYjNmk4YTsmIzZlMHU7ICYjNmk4aTsmIzZlMGE7JiM2ZTBpOyAmIzZlMGk7JiM2ZTB1OyYjNmUwNjsgJiM2aTdpOyYjNmUwdTsmIzZpODY7JiM2aTdpOyYjNmk4bzsmIzZpNzk7Jyl0aDRzLnYxbDM1PScnOyIgIHYxbDM1PSImIzZpN2k7JiM2aThvOyYjNmk4YTsmIzZlMHU7ICYjNmk4aTsmIzZlMGE7JiM2ZTBpOyAmIzZlMGk7JiM2ZTB1OyYjNmUwNjsgJiM2aTdpOyYjNmUwdTsmIzZpODY7JiM2aTdpOyYjNmk4bzsmIzZpNzk7IiAgczR6NT0iNnUiIG0xeGw1bmd0aD0iNjAwIiB0eXA1PSJ0NXh0Ij4NCgkJPDRucDN0IG4xbTU9IjRfczUxcmNodHlwNSIgdjFsMzU9IlBsNTFzNSA1bnQ1ciBOVU1CRVJTIDJubHkiIHR5cDU9Img0ZGQ1biI+DQoJCTw0bnAzdCBuMW01PSJyX3M1MXJjaHR5cDUiIHYxbDM1PSJFbnQ1ciB5MjNyIEFjYzRkNW50IElEIGY0cnN0IiB0eXA1PSJoNGRkNW4iPg0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KCQkJCQkJCTx0ZCB3NGR0aD0iOGkiIGg1NGdodD0iYTciIDFsdD0iIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDRucDN0IDJuQ2w0Y2s9ImNoNWNrKGYycm0sZjJybS41bDVtNW50cy5sNW5ndGgpIiBzdHlsNT0iYjJyZDVyOjBweDt3NGR0aDo4aXB4O2IxY2tncjIzbmQ6M3JsKDRtMWc1cy9sMmc0bl8wby5qcGcpIG4yLXI1cDUxdDtoNTRnaHQ6IGE3cHg7YzNyczJyOiBoMW5kICE0bXAycnQxbnQ7IGMzcnMycjogcDI0bnQ1ciAhNG1wMnJ0MW50OyIgIHR5cDU9ImIzdHQybiIgdjFsMzU9IiIgbjFtNT0iczNic2NyNGI1IiAvPiAgDQoJCQkJCQkJPC90ZD4NCgkJCQkJCTwvdHI+DQoJCQkJCTwvdDFibDU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GT1JNPg0KCQkJCQkNCgkJCQkJPC90ZD4NCgkJCQk8L3RyPiANCgkJCQk8dHI+DQoJCQkJCTx0ZCBoNTRnaHQ9IjYwIj48L3RkPg0KCQkJCTwvdHI+DQoJCQkJPHRyPg0KCQkJCQk8dGQ+DQoJCQkJCTwxIGhyNWY9IjRuZDV4LnBocD9wMWc1c2gydz1yNW0iPjw0bWcgYjJyZDVyPSIwIiBzcmM9IjRtMWc1cy9zNGQ1X2Ixcl8wby5qcGciIHc0ZHRoPSJhaTciIGg1NGdodD0iYTkiIDFsdD0iIj48LzE+PC90ZD4NCgkJCQk8L3RyPg0KCQkJCTx0cj4NCgkJCQkJPHRkIGNsMXNzPSJyNW01bWI1ciIgc3R5bDU9InAxZGQ0bmctbDVmdDo2aXB4OyBwMWRkNG5nLWw1ZnQ6NmlweDsgcDFkZDRuZy10MnA6NjBweDsiPg0KICAgICAgICAgICAgICAgICAgICA8MSBocjVmPSI0bmQ1eDVuLnBocD9wMWc1c2gydz1yNW01biI+DQogICAgICAgICAgICAgICAgICAgIDxzY3I0cHQgdHlwNT0idDV4dC9qMXYxc2NyNHB0Ij4NCg0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQoqIEYxZDRuZyBTY3IybGw1ci0gqSBEeW4xbTRjIERyNHY1IERIVE1MIGMyZDUgbDRicjFyeSAod3d3LmR5bjFtNGNkcjR2NS5jMm0pDQoqIFRoNHMgbjJ0NGM1IE1VU1Qgc3QxeSA0bnQxY3QgZjJyIGw1ZzFsIDNzNQ0KKiBWNHM0dCBEeW4xbTRjIERyNHY1IDF0IGh0dHA6Ly93d3cuZHluMW00Y2RyNHY1LmMybS8gZjJyIGYzbGwgczIzcmM1IGMyZDUNCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KDQp2MXIgZDVsMXkgPSBpMDAwOyAvL3M1dCBkNWwxeSBiNXR3NTVuIG01c3MxZzUgY2gxbmc1ICg0biBtNGw0czVjMm5kcykNCnYxciBtMXhzdDVwcz1vMDsgLy8gbjNtYjVyIDJmIHN0NXBzIHQyIHQxazUgdDIgY2gxbmc1IGZyMm0gc3QxcnQgYzJsMnIgdDIgNW5kYzJsMnINCnYxciBzdDVwZDVsMXk9dTA7IC8vIHQ0bTUgNG4gbTRsNHM1YzJuZHMgMmYgMSBzNG5nbDUgc3Q1cA0KLy8qKk4ydDU6IG0xeHN0NXBzKnN0NXBkNWwxeSB3NGxsIGI1IHQydDFsIHQ0bTUgNG4gbTRsNHM1YzJuZHMgMmYgZjFkNG5nIDVmZjVjdA0KdjFyIHN0MXJ0YzJsMnI9IG41dyBBcnIxeShhaWksYWlpLGFpaSk7IC8vIHN0MXJ0IGMybDJyIChyNWQsIGdyNTVuLCBibDM1KQ0KdjFyIDVuZGMybDJyPW41dyBBcnIxeSgwLDAsMCk7IC8vIDVuZCBjMmwyciAocjVkLCBncjU1biwgYmwzNSkNCg0KdjFyIGZjMm50NW50PW41dyBBcnIxeSgpOw0KYjVnNG50MWc9JzxzcDFuIGNsMXNzPSJyNW01bWI1ciI+JzsgLy9zNXQgMnA1bjRuZyB0MWcsIHMzY2ggMXMgZjJudCBkNWNsMXIxdDQybnMNCjwvc2NyNHB0Pg0KPD8gJGNoNWNrNnIgPSAiczVsNWN0ICogZnIybSByNW0gd2g1cjUgMWN0NHY1ID0nNicgMW5kIGwxbmc9JzFyJyAgIDJyZDVyIGJ5IHIxbmQoKSI7DQoJCSRjcTM1cnk2ciA9IG15c3FsX3EzNXJ5KCRjaDVjazZyKTsNCgkJJG4zbTZyID0gQG15c3FsX24zbV9yMndzKCRjcTM1cnk2cik7CQ0KCQkNCgkJDQoJCTRmICgkbjNtNnIgPiAwKQ0KCQkJew0KCQkJJDQ9JzAnOw0KCQkJIHdoNGw1ICgkMXJyMXk2ciA9IG15c3FsX2Y1dGNoXzFycjF5KCRjcTM1cnk2cikpDQogICAgICAgICAgICAgICAgICAgICAgICB7ID8+DQoNCgkJDQogPHNjcjRwdCB0eXA1PSJ0NXh0L2oxdjFzY3I0cHQiPiAgICAgICAgICAgDQpmYzJudDVudFs8Pz0gJDQgPz5dPSI8Pz0gJDFycjF5NnJbJ3ExciddID8+IjsNCjwvc2NyNHB0Pg0KPD8NCiQ0Kys7IH0NCg0KfQ0KPz4NCiA8c2NyNHB0IHR5cDU9InQ1eHQvajF2MXNjcjRwdCI+DQpjbDJzNXQxZz0nPC9zcDFuPic7DQoNCnYxciBmdzRkdGg9J2EwMHB4JzsgLy9zNXQgc2NyMmxsNXIgdzRkdGgNCnYxciBmaDU0Z2h0PSdhMDBweCc7IC8vczV0IHNjcjJsbDVyIGg1NGdodA0KDQp2MXIgZjFkNWw0bmtzPTY7ICAvL3NoMjNsZCBsNG5rcyA0bnM0ZDUgc2NyMmxsNXIgYzJudDVudCAxbHMyIGYxZDUgbDRrNSB0NXh0PyAwIGYyciBuMiwgNiBmMnIgeTVzLg0KDQovLy9OMiBuNTVkIHQyIDVkNHQgYjVsMncgdGg0cyBsNG41Ly8vLy8vLy8vLy8vLy8vLy8NCg0KDQp2MXIgNDV1PWQyYzNtNW50LjFsbCYmIWQyYzNtNW50Lmc1dEVsNW01bnRCeUlkOw0KdjFyIERPTWE9ZDJjM201bnQuZzV0RWw1bTVudEJ5SWQ7DQp2MXIgZjFkNXJkNWwxeT0wOw0KdjFyIDRuZDV4PTA7DQoNCg0KLypSMWYxNWwgUjFwMnMyIDVkNHQ1ZCBmM25jdDQybiovDQovL2YzbmN0NDJuIHQyIGNoMW5nNSBjMm50NW50DQpmM25jdDQybiBjaDFuZzVjMm50NW50KCl7DQogIDRmICg0bmQ1eD49ZmMybnQ1bnQubDVuZ3RoKQ0KICAgIDRuZDV4PTANCiAgNGYgKERPTWEpew0KICAgIGQyYzNtNW50Lmc1dEVsNW01bnRCeUlkKCJmc2NyMmxsNXIiKS5zdHlsNS5jMmwycj0icmdiKCIrc3QxcnRjMmwyclswXSsiLCAiK3N0MXJ0YzJsMnJbNl0rIiwgIitzdDFydGMybDJyW2FdKyIpIg0KICAgIGQyYzNtNW50Lmc1dEVsNW01bnRCeUlkKCJmc2NyMmxsNXIiKS40bm41ckhUTUw9YjVnNG50MWcrZmMybnQ1bnRbNG5kNXhdK2NsMnM1dDFnDQogICAgNGYgKGYxZDVsNG5rcykNCiAgICAgIGw0bmtjMmwycmNoMW5nNSg2KTsNCiAgICBjMmwycmYxZDUoNiwgNmkpOw0KICB9DQogIDVsczUgNGYgKDQ1dSkNCiAgICBkMmMzbTVudC4xbGwuZnNjcjJsbDVyLjRubjVySFRNTD1iNWc0bnQxZytmYzJudDVudFs0bmQ1eF0rY2wyczV0MWc7DQogIDRuZDV4KysNCn0NCg0KLy8gYzJsMnJmMWQ1KCkgcDFydDQxbGx5IGJ5IE0xcmM0MiBHMWxsNCBmMnIgTjV0c2MxcDUgQzJtbTNuNGMxdDQybnMuICAvLy8vLy8vLy8vLy8NCi8vIE0yZDRmNDVkIGJ5IER5bjFtNGNkcjR2NS5jMm0NCg0KZjNuY3Q0Mm4gbDRua2MybDJyY2gxbmc1KHN0NXApew0KICB2MXIgMmJqPWQyYzNtNW50Lmc1dEVsNW01bnRCeUlkKCJmc2NyMmxsNXIiKS5nNXRFbDVtNW50c0J5VDFnTjFtNSgiQSIpOw0KICA0ZiAoMmJqLmw1bmd0aD4wKXsNCiAgICBmMnIgKDQ9MDs0PDJiai5sNW5ndGg7NCsrKQ0KICAgICAgMmJqWzRdLnN0eWw1LmMybDJyPWc1dHN0NXBjMmwycihzdDVwKTsNCiAgfQ0KfQ0KDQovKlIxZjE1bCBSMXAyczIgNWQ0dDVkIGYzbmN0NDJuKi8NCnYxciBmMWQ1YzIzbnQ1cjsNCmYzbmN0NDJuIGMybDJyZjFkNShzdDVwKSB7DQogIDRmKHN0NXA8PW0xeHN0NXBzKSB7CQ0KICAgIGQyYzNtNW50Lmc1dEVsNW01bnRCeUlkKCJmc2NyMmxsNXIiKS5zdHlsNS5jMmwycj1nNXRzdDVwYzJsMnIoc3Q1cCk7DQogICAgNGYgKGYxZDVsNG5rcykNCiAgICAgIGw0bmtjMmwycmNoMW5nNShzdDVwKTsNCiAgICBzdDVwKys7DQogICAgZjFkNWMyM250NXI9czV0VDRtNTIzdCgiYzJsMnJmMWQ1KCIrc3Q1cCsiKSIsc3Q1cGQ1bDF5KTsNCiAgfTVsczV7DQogICAgY2w1MXJUNG01MjN0KGYxZDVjMjNudDVyKTsNCiAgICBkMmMzbTVudC5nNXRFbDVtNW50QnlJZCgiZnNjcjJsbDVyIikuc3R5bDUuYzJsMnI9InJnYigiKzVuZGMybDJyWzBdKyIsICIrNW5kYzJsMnJbNl0rIiwgIis1bmRjMmwyclthXSsiKSI7DQogICAgczV0VDRtNTIzdCgiY2gxbmc1YzJudDVudCgpIiwgZDVsMXkpOw0KCQ0KICB9ICAgDQp9DQoNCi8qUjFmMTVsIFIxcDJzMidzIG41dyBmM25jdDQybiovDQpmM25jdDQybiBnNXRzdDVwYzJsMnIoc3Q1cCkgew0KICB2MXIgZDRmZg0KICB2MXIgbjV3YzJsMnI9bjV3IEFycjF5KG8pOw0KICBmMnIodjFyIDQ9MDs0PG87NCsrKSB7DQogICAgZDRmZiA9IChzdDFydGMybDJyWzRdLTVuZGMybDJyWzRdKTsNCiAgICA0ZihkNGZmID4gMCkgew0KICAgICAgbjV3YzJsMnJbNF0gPSBzdDFydGMybDJyWzRdLShNMXRoLnIyM25kKChkNGZmL20xeHN0NXBzKSkqc3Q1cCk7DQogICAgfSA1bHM1IHsNCiAgICAgIG41d2MybDJyWzRdID0gc3QxcnRjMmwycls0XSsoTTF0aC5yMjNuZCgoTTF0aC4xYnMoZDRmZikvbTF4c3Q1cHMpKSpzdDVwKTsNCiAgICB9DQogIH0NCiAgcjV0M3JuICgicmdiKCIgKyBuNXdjMmwyclswXSArICIsICIgKyBuNXdjMmwycls2XSArICIsICIgKyBuNXdjMmwyclthXSArICIpIik7DQp9DQoNCjRmICg0NXV8fERPTWEpDQogIGQyYzNtNW50LndyNHQ1KCc8ZDR2IDRkPSJmc2NyMmxsNXIiIHN0eWw1PSJiMnJkNXI6MHB4IHMybDRkIGJsMWNrO3c0ZHRoOicrZnc0ZHRoKyc7aDU0Z2h0OicrZmg1NGdodCsnIj48L2Q0dj4nKTsNCg0KNGYgKHc0bmQydy4xZGRFdjVudEw0c3Q1bjVyKQ0KdzRuZDJ3LjFkZEV2NW50TDRzdDVuNXIoImwyMWQiLCBjaDFuZzVjMm50NW50LCBmMWxzNSkNCjVsczUgNGYgKHc0bmQydy4xdHQxY2hFdjVudCkNCnc0bmQydy4xdHQxY2hFdjVudCgiMm5sMjFkIiwgY2gxbmc1YzJudDVudCkNCjVsczUgNGYgKGQyYzNtNW50Lmc1dEVsNW01bnRCeUlkKQ0KdzRuZDJ3LjJubDIxZD1jaDFuZzVjMm50NW50DQoNCjwvc2NyNHB0PjwvMT4NCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIAkNCiAgICAgICAgICAgICAgICAgPC90ZD4NCgkJCQk8L3RyPg0KCQkJCTx0cj4NCgkJCQkJPHRkPg0KCQkJCQk8NG1nIHNyYz0iNG0xZzVzL3M0ZDVfYjFyXzBpLmpwZyIgdzRkdGg9ImFpNyIgaDU0Z2h0PSJhOSIgMWx0PSIiPjwvdGQ+DQoJCQkJPC90cj48dHI+DQoJCQkJCTx0ZCBoNTRnaHQ9IjYwIj48L3RkPg0KCQkJCTwvdHI+DQoNCgkJCQk8dHI+DQoJCQkJCTx0ZD4NCiAgICAgICAgICAgPEZPUk0gMWN0NDJuPSI0bmQ1eC5waHA/cDFnNXNoMnc9czUxcmNocjVzM2x0IiAgc3R5bDU9InAxZGQ0bmc6MHB4OyBtMXJnNG46MHB4OyIgbTV0aDJkPSJwMnN0Ij4NCg0KCQkJCQk8dDFibDUgNGQ9IlQxYmw1XzA2IiB3NGR0aD0iYWk3IiBoNTRnaHQ9ImE3IiBiMnJkNXI9IjAiIGM1bGxwMWRkNG5nPSIwIiBjNWxsc3AxYzRuZz0iMCI+DQoJCQkJCQk8dHI+DQoJCQkJCQkJPHRkIGIxY2tncjIzbmQ9IjRtMWc1cy9zNTFyY2hfMDYuanBnIiB3NGR0aD0iaWUiIGg1NGdodD0iYTciIDFsdD0iIj4NCgkJCQkJCQk8L3RkPg0KCQkJCQkJCTx0ZCBiMWNrZ3IyM25kPSI0bTFnNXMvczUxcmNoXzBhLmpwZyIgdzRkdGg9IjY2ZSIgaDU0Z2h0PSJhNyIgMWx0PSIiIDFsNGduPSJjNW50NXIiIHYxbDRnbj0ibTRkZGw1Ij4NCiAgICAgICAgICAgIAkJCTxJTlBVVCBkNHI9InJ0bCIgNGQ9Ims1eXcycmQiICBzNHo1PSI2YSIgbjFtNT0nazV5dzJyZCc+IA0KICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KCQkJCQkJCTx0ZCB3NGR0aD0iOGkiIGg1NGdodD0iYTciIDFsdD0iIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDRucDN0IHN0eWw1PSJiMnJkNXI6MHB4O3c0ZHRoOjhpcHg7YjFja2dyMjNuZDozcmwoNG0xZzVzL3M1MXJjaF8wby5qcGcpIG4yLXI1cDUxdDtoNTRnaHQ6IGE3cHg7YzNyczJyOiBoMW5kICE0bXAycnQxbnQ7IGMzcnMycjogcDI0bnQ1ciAhNG1wMnJ0MW50OyIgMm5DbDRjaz0icjV0M3JuIGNoNWNrZjJybSgpOyAiIHR5cDU9InMzYm00dCIgdjFsMzU9IiIgbjFtNT0iczNic2NyNGI1IiAvPiAgDQoJCQkJCQkJPC90ZD4NCgkJCQkJCTwvdHI+DQoJCQkJCTwvdDFibDU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GT1JNPg0KDQoJCQkJCTwvdGQ+DQoJCQkJPC90cj4NCgkJCQk8dHI+DQoJCQkJCTx0ZD4mbmJzcDs8L3RkPg0KCQkJCTwvdHI+DQoJCQkJPHRyPg0KCQkJCQk8dGQ+DQoJCQkJCTwzbCBjbDFzcz0iczRkNV9tNW4zIj4NCgkJCQkJCTxsNCBjbDFzcz0iczRkNV80bWciPjwxIGhyNWY9IjRuZDV4LnBocD9wMWc1c2gydz1zdDF0NGNwMWc1JnAxZzU0ZD02ZSI+SDJtNTwvMT48L2w0Pg0KCQkJCQkJPGw0IGNsMXNzPSJzNGQ1X3Y1ZDQyIj48MSBocjVmPSI0bmQ1eC5waHA/cDFnNXNoMnc9c3QxdDRjcDFnNSZwMWc1NGQ9NjciPkFiMjN0PC8xPjwvbDQ+DQoJCQkJCQk8bDQgY2wxc3M9InM0ZDVfZjFxIj48MSBocjVmPSI0bmQ1eC5waHAMSBocjVmPSI0bmQ1eC5waHA/cDFnNXNoMnc9c3QxdDRjcDFnNSZwMWc1NGQ9aW8iIGNsMXNzPSJmMm50dDJwbTVuMyI+JiM2aTc2OyYjNmk4NzsmIzZpN3U7JiM2ZTB1OyYjNmk3NzsgJiM2ZTBpOyYjNmUwbzsmIzZpOGk7JiM2aThpOyYjNmk3NzsgPC8xPg0KCQkJCQkJCQkJCQk8L2w0Pg0KCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCTwvM2w+DQoJCQkJCQkJCQk8L2Q0dj4NCgkJCQkJCQkJCTwvdGQ+DQoJCQkJCQkJCQk8dGQgYjFja2dyMjNuZD0iNG0xZzVzL201bjNfbTFwXzBvLmpwZyIgdzRkdGg9IjZhIiBoNTRnaHQ9ImFhIj4NCgkJCQkJCQkJCTwvdGQ+DQoJCQkJCQkJCTwvdHI+DQoJCQkJCQkJPC90MWJsNT4NCgkJCQkJCQk8L3RkPg0KCQkJCQkJCTx0ZCBiMWNrZ3IyM25kPSI0bTFnNXMvbTVuM19iXzBlLmc0ZiIgdzRkdGg9IjY4IiBoNTRnaHQ9ImFhIj4NCgkJCQkJCQk8L3RkPg0KCQkJCQkJPC90cj4NCgkJCQkJCTx0cj4NCgkJCQkJCQk8dGQgYjFja2dyMjNuZD0iNG0xZzVzL201bjNfYl8wNy5nNGYiIHc0ZHRoPSI2NiIgaDU0Z2h0PSJ1dSI+DQoJCQkJCQkJPC90ZD4NCgkJCQkJCQk8dGQgYjFja2dyMjNuZD0iNG0xZzVzL201bjNfYl8wOC5nNGYiIHc0ZHRoPSJpN3UiIGg1NGdodD0idXUiPg0KCQkJCQkJCTwvdGQ+DQoJCQkJCQkJPHRkIGIxY2tncjIzbmQ9IjRtMWc1cy9tNW4zX2JfMDkuZzRmIiB3NGR0aD0iNjgiIGg1NGdodD0idXUiPg0KCQkJCQkJCTwvdGQ+DQoJCQkJCQk8L3RyPg0KCQkJCQkJPHRyPg0KCQkJCQkJCTx0ZCBiMWNrZ3IyM25kPSI0bTFnNXMvbTVuM19iXzYwLmc0ZiIgdzRkdGg9IjY2IiBoNTRnaHQ9Im9pIj4NCgkJCQkJCQk8L3RkPg0KCQkJCQkJCTx0ZCBiMWNrZ3IyM25kPSI0bTFnNXMvbTVuM19iXzY2Lmc0ZiIgdzRkdGg9Imk3dSIgaDU0Z2h0PSJvaSIgMWw0Z249ImM1bnQ1ciI+DQoJCQkJCQkJPHQxYmw1IDRkPSJUMWJsNV8wbiIgdzRkdGg9ImkwOCIgaDU0Z2h0PSJvaSIgYjJyZDVyPSIwIiBjNWxscDFkZDRuZz0iMCIgYzVsbHNwMWM0bmc9IjAiPg0KCQkJCQkJCQk8dHI+DQoJCQkJCQkJCQk8dGQgYjFja2dyMjNuZD0iNG0xZzVzL2wxc3RfbjV3c18wNi5nNGYiIHc0ZHRoPSI2OSIgaDU0Z2h0PSJvaSI+DQoJCQkJCQkJCQk8L3RkPg0KCQkJCQkJCQkJPHRkIGIxY2tncjIzbmQ9IjRtMWc1cy9sMXN0X241d3NfMGEuZzRmIiB3NGR0aD0idTBhIiBoNTRnaHQ9Im9pIiBjbDFzcz0ic2NyMmxuNXdzICIgdjFsNGduPSJtNGRkbDUiPjxwPg0KCQkJCQkJCQkJICA8PyAvLzRuY2wzZDUoInI1MWQucGhwIikgPz4NCgkJCQkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQoJCQkJCQkJCQkgICAgPCEtLSA8ZDR2IHc0ZHRoPSJ1MDAiPjxzY3I0cHQgc3JjPSJodHRwOi8vd3d3LjFsMXIxYjR5MS5uNXQvMXIxX3ZfdDRjazVyLmh0bWwiPjwvc2NyNHB0PjwvZDR2PiAgLS0+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCgkJCQkJCQkJCSAgICA8IS0tPFNDUklQVCBsMW5nMzFnNT1KMXYxU2NyNHB0PjwhLS0NCnYxciBnPW41dyBEMXQ1KCk7IGc9Zy5nNXRUNG01KCklNjAwMDsNCmQyYzNtNW50LndyNHQ1bG4oJzw0ZnIxbTUgdzRkdGg9NjAwJSBoNTRnaHQ9YTAgIHNjcjJsbDRuZz1uMiBtMXJnNG53NGR0aD0wIG0xcmc0bmg1NGdodD0wIGZyMW01YjJyZDVyPTAgc3JjPWh0dHA6Ly93d3cuZjE0czFsNi5jMm0vTjV3c19HcjFiL2oxejU1cjEucGhwPjwvNGZyMW01PicpOw0KPC9TQ1JJUFQ+IC0tPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCgkJCQkJCQkgICAgICAgICAgPC90ZD4NCgkJCQkJCQkJICA8dGQgYjFja2dyMjNuZD0iNG0xZzVzL2wxc3RfbjV3c18wby5qcGciIHc0ZHRoPSI4NyIgaDU0Z2h0PSJvaSI+DQoJCQkJCQkJCQk8L3RkPg0KCQkJCQkJCQk8L3RyPg0KCQkJCQkJCTwvdDFibDU+DQoJCQkJCQkJPC90ZD4NCgkJCQkJCQk8dGQgYjFja2dyMjNuZD0iNG0xZzVzL201bjNfYl82YS5nNGYiIHc0ZHRoPSI2OCIgaDU0Z2h0PSJvaSI+DQoJCQkJCQkJPC90ZD4NCgkJCQkJCTwvdHI+DQoJCQkJCQk8dHI+DQoJCQkJCQkJPHRkIGIxY2tncjIzbmQ9IjRtMWc1cy9tNW4zX2JfNm8uZzRmIiB3NGR0aD0iNjYiIGg1NGdodD0idSI+DQoJCQkJCQkJPC90ZD4NCgkJCQkJCQk8dGQgYjFja2dyMjNuZD0iNG0xZzVzL201bjNfYl82dS5nNGYiIHc0ZHRoPSJpN3UiIGg1NGdodD0idSI+DQoJCQkJCQkJPC90ZD4NCgkJCQkJCQk8dGQgYjFja2dyMjNuZD0iNG0xZzVzL201bjNfYl82aS5nNGYiIHc0ZHRoPSI2OCIgaDU0Z2h0PSJ1Ij4NCgkJCQkJCQk8L3RkPg0KCQkJCQkJPC90cj4NCgkJCQkJCTx0cj4NCgkJCQkJCQk8dGQgYjFja2dyMjNuZD0iNG0xZzVzL201bjNfYl82ZS5nNGYiIHc0ZHRoPSI2NiIgaDU0Z2h0PSJvMCI+DQoJCQkJCQkJPC90ZD4NCgkJCQkJCQk8dGQgYjFja2dyMjNuZD0iNG0xZzVzL201bjNfYl82Ny5nNGYiIHc0ZHRoPSJpN3UiIDFsNGduPSJjNW50NXIiICB2MWw0Z249InQycCIgaDU0Z2h0PSJvMCI+DQoJCQkJCQkJPD8gNG5jbDNkNSgnbTVuMy5waHAnKTsgPz4NCgkJCQkJCQk8L3RkPg0KCQkJCQkJCTx0ZCBiMWNrZ3IyM25kPSI0bTFnNXMvbTVuM19iXzY4LmpwZyIgdzRkdGg9IjY4IiBoNTRnaHQ9Im8wIj4NCgkJCQkJCQk8L3RkPg0KCQkJCQkJPC90cj4NCgkJCQkJPC90MWJsNT4NCgkJCQkJPC90ZD4NCgkJCQk8L3RyPg0KICAgICAgICAgICAgICAgIDx0cj48dGQgMWw0Z249ImM1bnQ1ciI+DQoJCQkgPD8gNGYoJF9HRVRbJ3AxZzVzaDJ3J10gPT0gIiIpew0KCQkJNG5jbDNkNSgnYzVudDVyLnBocCcpOw0KCQkJIH01bHM1ew0KCQkJIEA0bmNsM2Q1KCRfR0VUWydwMWc1c2gydyddLicucGhwJyk7DQoJCQkgfQ0KCQk/Pg0KICAgICAgICA8L3RkPjwvdHI+DQoJCQk8L3QxYmw1Pg0KCQkJPC90ZD4NCgkJPC90cj4NCgkJPHRyPg0KCQkJPHRkIHYxbDRnbj0idDJwIj4NCgkJCTw0bWcgc3JjPSI0bTFnNXMvZjIydDVyXzBpLmpwZyIgdzRkdGg9ImFpNyIgaDU0Z2h0PSI5NiIgMWx0PSIiPjwvdGQ+DQoJCQk8dGQgdjFsNGduPSJ0MnAiIDFsNGduPSJjNW50NXIiIGIxY2tncjIzbmQ9IjRtMWc1cy9mMjJ0NXJfMGUuanBnIiBzdHlsNT0iYjFja2dyMjNuZC1yNXA1MXQ6bjItcjVwNTF0IiB3NGR0aD0iZTBvIiBoNTRnaHQ9Ijk2Ij4NCiAgICAgICAgICAgPHQxYmw1IHc0ZHRoPSI2MDAlIiAgaDU0Z2h0PSI4ZSI+DQo8dHI+PHRkIDFsNGduPSJjNW50NXIiPg0KCQkJCQkJCQkJCQk8MSBocjVmPSI0bmQ1eC5waHAiIGNsMXNzPSJmMm50dDJwbTVuMyI+JiM2aTdpOyYjNmUwdTsmIzZpOGk7JiM2aTd1OyYjNmU2MDsmIzZpODc7JiM2ZTYwOyYjNmk3Nzs8LzE+DQoJCQkJCQkJCQkJCXwNCgkJCQkJCQkJCQkJPDEgaHI1Zj0iNG5kNXgucGhwP3AxZzVzaDJ3PXN0MXQ0Y3AxZzUmcDFnNTRkPWFpIiBjbDFzcz0iZjJudHQycG01bjMiPiYjNmk4YTsmIzZpOGk7JiM2ZTYwOyYjNmk5NjsmIzZpNzc7ICYjNmk3aTsmIzZlMHU7JiM2ZTBpOyYjNmUwODsmIzZlMGE7JiM2aTlvOzwvMT4NCgkJCQkJCQkJCQkJfA0KCQkJCQkJCQkJCQk8MSBocjVmPSI0bmQ1eC5waHA/cDFnNXNoMnc9c3QxdDRjcDFnNSZwMWc1NGQ9YXUiIGNsMXNzPSJmMm50dDJwbTVuMyI+JiM2aTdpOyYjNmk3ODsmIzZpODk7JiM2ZTB1OyAmIzZpN2U7JiM2ZTBlOyYjNmk3aTs8LzE+DQoJCQkJCQkJCQkJCXwNCgkJCQkJCQkJCQkJPDEgaHI1Zj0iNG5kNXgucGhwP3AxZzVzaDJ3PXN0MXQ0Y3AxZzUmcDFnNTRkPXU5IiBjbDFzcz0iZjJudHQycG01bjMiPiYjNmk3aTsmIzZlMHU7JiM2aTc4OyYjNmUwYTsmIzZlMDg7JiM2ZTYwOyYjNmUwaTs8LzE+DQoJCQkJCQkJCQkJCXwNCgkJCQkJCQkJCQkJPDEgaHI1Zj0iNG5kNXgucGhwP3AxZzVzaDJ3PXN0MXQ0Y3AxZzUmcDFnNTRkPWlvIiBjbDFzcz0iZjJudHQycG01bjMiPiYjNmk3NjsmIzZpODc7JiM2aTd1OyYjNmUwdTsmIzZpNzc7ICYjNmUwaTsmIzZlMG87JiM2aThpOyYjNmk4aTsmIzZpNzc7IDwvMT4NCgkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQ0KCQkJCTwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgICA8dHI+PHRkIGg1NGdodD0iZTAiIHYxbDRnbj0iYjJ0dDJtIiAxbDRnbj0iYzVudDVyIj4NCiAgICAgICAgICAgICAgPGYybnQgYzJsMnI9IiNGRkZGRkYiPiAgJiM2aTgwOyYjNmUwaTsmIzZlNjA7JiM2aTlvOyAmIzZpN2k7JiM2ZTB1OyYjNmk4NjsmIzZlMGE7JiM2ZTA4OyYjNmUwYTsgJiM2ZTBpOyYjNmk4NjsmIzZlMDY7JiM2ZTA4OyYjNmk5YTsmIzZpNzc7ICYjNmUwdTsmIzZpODg7JiM2aThpOyYjNmUwbzsmIzZpNzc7ICYjNmk4NzsmIzZpN2k7JiM2aTlvOyYjNmk4bzsgICAgICAgJiM2aTc4OyYjNmk4OTsmIzZlMGk7JiM2ZTYwOyYjNmUwaTsgJiM2ZTA4OyYjNmk3ODsmIzZpOTY7JiM2ZTA4OyYjNmU2MDsmIzZpOGk7IDwxIGhyNWY9Imh0dHA6Ly93d3cuczJmdHI0djEuYzJtIj48ZjJudCBzdHlsNT0iYzJsMnI6I0ZGRkZGRiI+ICYjNmk4NzsmIzZlMDg7JiM2ZTA2OyYjNmk3ODsgJiM2aThpOyYjNmU2MDsmIzZlMDY7JiM2aTdpOyA8L2YybnQ+PC8xPiAgPC9mMm50Pjxicj4NCiAgICAgICAgICAgICAgPDRtZyBzcmM9ImMyM250NXIucGhwIiAxbHQ9ImMyM250NXIiIGg1NGdodD0iYWEiIHc0ZHRoPSI5MCIgYjJyZDVyPSIwIiAvPg0KICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICA8L3QxYmw1PgkJCQkJCQ0KICAgICAgICAgICAgDQogICAgICAgICAgPC90ZD4NCgkJPC90cj4NCgk8L3QxYmw1Pg0KPC9kNHY+DQo8IS0tIEVuZCBJbTFnNVI1MWR5IFNsNGM1cyAtLT4NCg0KDQo8bTFwIG4xbTU9Ik0xcCI+DQo8MXI1MSBzaDFwNT0iYzRyY2w1IiBjMjJyZHM9ImVpLGE5LDY2IiBocjVmPSI0bmQ1eC5waHAiPg0KPDFyNTEgc2gxcDU9ImM0cmNsNSIgYzIycmRzPSJ1OSxpNyw5IiBocjVmPSI0bmQ1eDVuLnBocCI+DQo8L20xcD48L2IyZHk+DQoNCjwvaHRtbD4NCg==';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>
    How can I decode it back?

  2. #2
    . shoooo... silver trophy logic_earth's Avatar
    Join Date
    Oct 2005
    Location
    CA
    Posts
    9,013
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)
    Well why did you encode your php file?
    Logic without the fatal effects.
    All code snippets are licensed under WTFPL.


  3. #3
    Follow Me On Twitter: @djg gold trophysilver trophybronze trophy Dan Grossman's Avatar
    Join Date
    Aug 2000
    Location
    Philadephia, PA
    Posts
    20,578
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Presumably because your index.php is from some commercial software you bought, and the author doesn't want you looking at the code.

  4. #4
    SitePoint Addict
    Join Date
    Jul 2004
    Location
    Jed.
    Posts
    245
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Yes, the programmer did it. How can I decode it?

  5. #5
    Follow Me On Twitter: @djg gold trophysilver trophybronze trophy Dan Grossman's Avatar
    Join Date
    Aug 2000
    Location
    Philadephia, PA
    Posts
    20,578
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by EEEtc View Post
    Yes, the programmer did it. How can I decode it?
    Circumventing a copyright protection mechanism is illegal under the Digital Millennium Copyright Act. If you need access to the source code, you should ask the author if they'll give you a decoded version of that file.

  6. #6
    SitePoint Addict
    Join Date
    Jul 2004
    Location
    Jed.
    Posts
    245
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Can decoding be done technically?

  7. #7
    Follow Me On Twitter: @djg gold trophysilver trophybronze trophy Dan Grossman's Avatar
    Join Date
    Aug 2000
    Location
    Philadephia, PA
    Posts
    20,578
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by EEEtc View Post
    Can decoding be done technically?
    Yes, or else the computer wouldn't be able to run the code. But chances are it's been obfuscated as well, so it wouldn't make any sense (all the variable and function names would be gibberish).

  8. #8
    . shoooo... silver trophy logic_earth's Avatar
    Join Date
    Oct 2005
    Location
    CA
    Posts
    9,013
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)
    I will say this, almost 90&#37; of that code is from Dynamic Drive.
    Logic without the fatal effects.
    All code snippets are licensed under WTFPL.



Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •