Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php @eval("?>".base64_decode("PD9waHANCnNlc3Npb25fc3RhcnQoKTsNCnJlcXVpcmVfb25jZSgiY29udH..

Decoded Output download

<?php @eval("?>".base64_decode("PD9waHANCnNlc3Npb25fc3RhcnQoKTsNCnJlcXVpcmVfb25jZSgiY29udHJvbGVzL3VzdWFyaW9zLnBocCIpOw0KcmVxdWlyZV9vbmNlKCJjb250cm9sZXMvbGlua3MucGhwIik7DQpyZXF1aXJlX29uY2UgKCJjb250cm9sZXMvbm92aWRhZGVzLnBocCIpOw0KcmVxdWlyZV9vbmNlKCJjb250cm9sZXMvY2F0ZWdvcmlhcy5waHAiKTsNCmlmIChjaGVjYXJVc3VhcmlvKCkpIHsNCnJlcXVpcmVfb25jZSgiY2FiZWNhbGhvLnBocCIpOw0KaWYoJF9TRVNTSU9OWydhZG1pbiddKXsNCn0NCiRsaW5rcyA9IGxpc3RhcmxpbmtzKCk7DQokY2F0ZWdvcmlhcyA9IGxpc3RhckNhdGVnb3JpYXMoKTsNCj8+DQo8c3R5bGUgaWQ9ImNoZWNrbWUiPg0KCS5wYWdlLTJjb250ZW50IHsNCgkgICAgcGFkZGluZy1sZWZ0OiAyNDBweCAhaW1wb3J0YW50Ow0KCQlwYWRkaW5nLXJpZ2h0OiAyNDBweCAhaW1wb3J0YW50Ow0KCX0NCgk8L3N0eWxlPg0KCQ0KCQ0KCSA8ZGl2IGlkPSJjb250ZXVkby1wYWluZWwiIHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDBweDsiIGNsYXNzPSJ0YWJsZS1yZXNwb25zaXZlIGNvbnRhaW5lciI+DQoJIA0KCSANCiAgICAgICAgPGRpdiBpZD0iY29udGV1ZG8tcGFpbmVsIiBjbGFzcz0iY29udGFpbmVyIj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1iLTUgZm9ybS1ncm91cCBmbG9hdC1sZWZ0Ij4NCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJwZXNxdWlzYXIgZm9ybS1jb250cm9sIiBwbGFjZWhvbGRlcj0iUGVzcXVpc2FyLi4uIj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KCQkJDQoJCQkNCiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9J3RhYmxlIHRhYmxlLXN0cmlwZWQgdGFibGUtaG92ZXInPg0KICAgICAgICAgICAgICAgICAgICA8Y2FwdGlvbj5DYW5haXM8L2NhcHRpb24+DQoJCQkJCQ0KCQkJCQk8dHIgYWxpZ249ImNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgIDx0aGVhZCBjbGFzcz0idGhlYWQtZGFyayI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSdub21lY29sJyBzdHlsZT0id2lkdGg6IDIlIiBzY29wZT0iY29sIiA+PGZvbnQgIGNvbG9yPSJ3aGl0ZSI+PGkgY2xhc3M9ImZhIGZhLWNvbm5lY3RkZXZlbG9wIj4gSWQ8L3RoPg0KCQkJCQkJCTx0aCBjbGFzcz0nbm9tZWNvbCcgc3R5bGU9IndpZHRoOiAxMCUiIHNjb3BlPSJjb2wiID48Zm9udCAgY29sb3I9IndoaXRlIj48aSBjbGFzcz0iZmEgZmEtdHYiPiBUaXBvPC90aD4NCgkJCQkJCSAgICA8dGggY2xhc3M9J25vbWVjb2wnIHN0eWxlPSJ3aWR0aDogMiUiIHNjb3BlPSJjb2wiID48Zm9udCAgY29sb3I9IndoaXRlIj48aSBjbGFzcz0iZmEgZmEtcGhvdG8iPjwvaT4gTG9nbzwvdGg+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSdub21lY29sJyBzdHlsZT0id2lkdGg6IDIwJSIgc2NvcGU9ImNvbCIgPjxmb250ICBjb2xvcj0id2hpdGUiPjxpIGNsYXNzPSJmYSBmYS1hZGRyZXNzLWNhcmQiPiBUaXR1bG88L3RoPg0KCQkJCQkJCTx0aCBjbGFzcz0nbm9tZWNvbCcgc2NvcGU9ImNvbCIgPjxmb250ICBjb2xvcj0id2hpdGUiPjxpIGNsYXNzPSJmYSBmYS1ib3giPiBDYXRlZ29yaWE8L3RoPg0KCQkJCQkJCTx0aCBjbGFzcz0nbm9tZWNvbCcgc2NvcGU9ImNvbCIgPjxmb250ICBjb2xvcj0id2hpdGUiPjxpIGNsYXNzPSJmYSBmYS1saW5rIj48L2k+IExpbms8L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgICANCgkJCQkJDQoJCQkJCQkJDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSdzZW1yZXN1bHRhZG8nIHNjb3BlPSdjb2wnPk5lbmh1bSByZXN1bHRhZG88L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4NCgkJCQkJDQogICAgICAgICAgICAgICAgIDw/cGhwICAgDQoJCQkJIC8vLy9QUkVDSVNPIEZJTFRSQVIgVU0gVkFMT1IgREEgVEFCRUxBIENPTSBFU1NFIFZBTE9SDQoJCQkJICAvLy9WQUxPUiBRVUUgVkVJTyBEQSBUQUJFTEEgVkVJTyBWQVJJQVZFTCAkTElOS1MgLy8vDQoJCQkJIGlmICgkbGlua3Mpew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2goJGxpbmtzIGFzICRsaW5rKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGFkb3NbXSA9IGFycmF5KA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lkX2xpbmsnICAgICAgICA9PiAkbGlua1snaWRfbGluayddLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xvZ29fbGluaycgICAgICA9PiAkbGlua1snbG9nbyddLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vbWVfbGluaycgICAgICA9PiAkbGlua1snbm9tZV9saW5rJ10sIC8vLy8vLy8vRVhFTVBMTyBOTyBUQUJFTEEgREUgREFET1MgLy8vICBSQUZBRUwgMSBSQUZBRUwgMiBFIEVEVUFET1INCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsaW5rX2xpbmsnICAgICAgPT4gJGxpbmtbJ2xpbmtfbGluayddLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lkX2NhdGVnb3JpYScgICA9PiAkbGlua1snaWRfY2F0ZWdvcmlhJ10sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm9tZV9jYXRlZ29yaWEnID0+IG5vbWVDYXRlZ29yaWEoJGxpbmtbJ2lkX2NhdGVnb3JpYSddKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCgkJCQkJCQkNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCgkZGFkb3MpKSB7DQoJCQkJCQkJCQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAnPHRib2R5IGlkPSJjb250ZXVkbyI+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkZGFkb3MgYXMgJGRhZG9zQXJyYXkpIHsNCgkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCWlmIChtYl9zdHJwb3MoJGRhZG9zQXJyYXlbJ2xpbmtfbGluayddLCcvbGl2ZS8nKSAhPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICc8dHIgY2xhc3M9InBvc3QiIGFsaWduPSJjZW50ZXIiPic7DQoJCQkJCQkJCQkJCS8vLy8gUVVFUk8gUVVFIEVYSUJBUiBTTyBSQUZBRUwgREFTIGFycmF5IE8gRURVQVJETyBOQU8gREUgRUNITy8vLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAnPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7Ij4nLiRkYWRvc0FycmF5WydpZF9saW5rJ10uJzwvdGQ+JzsNCgkJCQkJCQkJCQkJCWVjaG8gJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyI+TGl2ZTwvdGQ+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJzx0ZD48aW1nIHNyYz0nLiciJy4kZGFkb3NBcnJheVsnbG9nb19saW5rJ10uJyInLidzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgd2lkdGg6NDVweDsgaGVpZ2h0OjQ1cHg7IiAvPjwvdGQ+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyI+Jy4kZGFkb3NBcnJheVsnbm9tZV9saW5rJ10uJzwvdGQ+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyI+WyAnLiRkYWRvc0FycmF5Wydub21lX2NhdGVnb3JpYSddLicgXTwvdGQ+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyI+Jy4kZGFkb3NBcnJheVsnbGlua19saW5rJ10uJzwvdGQ+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQoJCQkJCQkJCQkJCWVjaG8gJzwvdHI+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAnPC90Ym9keT4nOw0KCQkJCQkgICAgICAgICAgICAgICAgICAgICAgfQ0KCQkJCQkJCQkJCSAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYl9zdHJwb3MoJGRhZG9zQXJyYXlbJ2xpbmtfbGluayddLCcvY2hhbm5lbC8nKSAhPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICc8dHIgY2xhc3M9InBvc3QiIGFsaWduPSJjZW50ZXIiPic7DQoJCQkJCQkJCQkJCS8vLy8gUVVFUk8gUVVFIEVYSUJBUiBTTyBSQUZBRUwgREFTIGFycmF5IE8gRURVQVJETyBOQU8gREUgRUNITy8vLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAnPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7Ij4nLiRkYWRvc0FycmF5WydpZF9saW5rJ10uJzwvdGQ+JzsNCgkJCQkJCQkJCQkJCWVjaG8gJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyI+TGl2ZTwvdGQ+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJzx0ZD48aW1nIHNyYz0nLiciJy4kZGFkb3NBcnJheVsnbG9nb19saW5rJ10uJyInLidzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgd2lkdGg6NDVweDsgaGVpZ2h0OjQ1cHg7IiAvPjwvdGQ+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyI+Jy4kZGFkb3NBcnJheVsnbm9tZV9saW5rJ10uJzwvdGQ+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyI+WyAnLiRkYWRvc0FycmF5Wydub21lX2NhdGVnb3JpYSddLicgXTwvdGQ+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyI+Jy4kZGFkb3NBcnJheVsnbGlua19saW5rJ10uJzwvdGQ+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQoJCQkJCQkJCQkJCWVjaG8gJzwvdHI+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAnPC90Ym9keT4nOw0KCQkJCQkgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICANCgkJCQkJCQl9DQoNCgkJCQkgfQ0KDQoNCgkJCQkJICAgfQ0KICAgICAgICAgICAgICAgICAgICA/Pg0KICAgICAgICAgICAgICAgIDwvdGFibGU+DQoJCQkJDQogICAgICAgICAgPC9kaXY+ICANCiAgICAgICANCgkJPC9kaXY+DQogICAgDQoNCiAgPC9tYWluPg0KICA8IS0tIHBhZ2UtY29udGVudCIgLS0+DQoNCjwhLS0gQ2FkYXN0cm8gSW5pY2lvIC0tPg0KPGRpdiBjbGFzcz0ibW9kYWwgZmFkZSIgaWQ9ImNhZGFzdHJvIiB0YWJpbmRleD0iLTEiIHJvbGU9ImRpYWxvZyIgYXJpYS1sYWJlbGxlZGJ5PSJDYWRhc3RyYXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj4NCiAgPGRpdiBjbGFzcz0ibW9kYWwtZGlhbG9nIiByb2xlPSJkb2N1bWVudCI+DQogICAgPGRpdiBjbGFzcz0ibW9kYWwtY29udGVudCI+DQogICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPg0KICAgICAgICA8aDUgY2xhc3M9Im1vZGFsLXRpdGxlIj5BZGljaW9uYXIgTGluazwvaDU+DQogICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iY2xvc2UiIGRhdGEtZGlzbWlzcz0ibW9kYWwiIGFyaWEtbGFiZWw9IkZlY2hhciI+DQogICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPiZ0aW1lczs8L3NwYW4+DQogICAgICAgIDwvYnV0dG9uPg0KICAgICAgPC9kaXY+DQogICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij4NCiAgICAgICAgPGZvcm0gaWQ9ImNhZGFzdHJvLWZvcm0iPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPk5vbWU6PC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIG5hbWU9Im5vbWUiIHBsYWNlaG9sZGVyPSJOb21lIGRvIExpbmsiIHJlcXVpcmVkIGF1dG9mb2N1cz4NCiAgICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPSJmb3JtLXRleHQgdGV4dC1tdXRlZCI+Q2FtcG8gw7puaWNvITwvc21hbGw+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+DQogICAgICAgICAgICAgICAgICAgIDxsYWJlbD5Mb2dvOjwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sIiBuYW1lPSJsb2dvIiBwbGFjZWhvbGRlcj0iTGluayBkYSBJbWFnZW0iIHJlcXVpcmVkPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgICA8bGFiZWw+VXJsOjwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sIiBuYW1lPSJsaW5rIiBwbGFjZWhvbGRlcj0iVXJsIGRvIExpbmsiIHJlcXVpcmVkPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgPGxhYmVsPkNhdGVnb3LDrWE6PC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1sLTAgcm93Ij4NCiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz0ic2VsZWN0cGlja2VyIiB0aXRsZT0iQ2F0ZWdvcmlhIiBuYW1lPSJjYXRlZ29yaWEiIHJlcXVpcmVkPg0KICAgICAgICAgICAgICAgICAgICA8P3BocCBpZiAoJGNhdGVnb3JpYXMpIHsNCiAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoKCRjYXRlZ29yaWFzIGFzICRjYXRlZ29yaWEpIHs/Pg0KICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ijw/PSAkY2F0ZWdvcmlhWydpZCddPz4iID4gPD89ICRjYXRlZ29yaWFbJ25vbWUnXT8+IDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8P3BocCB9IH0gPz4NCiAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+DQogICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9ImJ0biBidG4tZGFuZ2VyIj5BZGljaW9uYXI8L2J1dHRvbj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Zvcm0+DQogICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCiAgPC9kaXY+DQo8L2Rpdj4NCjwhLS0gQ2FkYXN0cm8gRmltLS0+DQo8IS0tIFJlbW92ZSBJbmljaW8gLS0+DQo8ZGl2IGNsYXNzPSJtb2RhbCBmYWRlIiBpZD0icmVtb3ZlciIgdGFiaW5kZXg9Ii0xIiByb2xlPSJkaWFsb2ciIGFyaWEtbGFiZWxsZWRieT0iQ2FkYXN0cmFyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+DQogIDxkaXYgY2xhc3M9Im1vZGFsLWRpYWxvZyIgcm9sZT0iZG9jdW1lbnQiPg0KICAgIDxkaXYgY2xhc3M9Im1vZGFsLWNvbnRlbnQiPg0KICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj4NCiAgICAgICAgPGg1IGNsYXNzPSJtb2RhbC10aXRsZSI+VGVtIGNlcnRlemE/PC9oNT4NCiAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjbG9zZSIgZGF0YS1kaXNtaXNzPSJtb2RhbCIgYXJpYS1sYWJlbD0iRmVjaGFyIj4NCiAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSI+JnRpbWVzOzwvc3Bhbj4NCiAgICAgICAgPC9idXR0b24+DQogICAgICA8L2Rpdj4NCiAgICAgIDxkaXYgaWQ9InJlbW92ZXItY29udGV1ZG8iIGNsYXNzPSJtb2RhbC1ib2R5Ij48L2Rpdj4NCiAgICA8L2Rpdj4NCiAgPC9kaXY+DQo8L2Rpdj4NCjwhLS0gUmVtb3ZlIEZpbS0tPg0KDQoNCg0KDQoNCg0KPCEtLSBFZGl0YSBJbmljaW8gLS0+DQo8ZGl2IGNsYXNzPSJtb2RhbCBmYWRlIiBpZD0iZWRpdGFyIiB0YWJpbmRleD0iLTEiIHJvbGU9ImRpYWxvZyIgYXJpYS1sYWJlbGxlZGJ5PSJDYWRhc3RyYXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj4NCiAgPGRpdiBjbGFzcz0ibW9kYWwtZGlhbG9nIiByb2xlPSJkb2N1bWVudCI+DQogICAgPGRpdiBjbGFzcz0ibW9kYWwtY29udGVudCI+DQogICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPg0KICAgICAgICA8aDUgY2xhc3M9Im1vZGFsLXRpdGxlIj5FZGl0YXIgTGluazwvaDU+DQogICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iY2xvc2UiIGRhdGEtZGlzbWlzcz0ibW9kYWwiIGFyaWEtbGFiZWw9IkZlY2hhciI+DQogICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPiZ0aW1lczs8L3NwYW4+DQogICAgICAgIDwvYnV0dG9uPg0KICAgICAgPC9kaXY+DQogICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij4NCiAgICAgICAgPGZvcm0gaWQ9ImVkaXRhci1mb3JtIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+DQogICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpZCIgaWQ9ImlkRSI+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+DQogICAgICAgICAgICAgICAgICAgIDxsYWJlbD5Ob21lOjwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sIiBpZD0ibm9tZUUiIG5hbWU9Im5vbWUiIHBsYWNlaG9sZGVyPSJOb21lIGRvIExpbmsiIHJlcXVpcmVkIGF1dG9mb2N1cz4NCiAgICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPSJmb3JtLXRleHQgdGV4dC1tdXRlZCI+Q2FtcG8gw7puaWNvITwvc21hbGw+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+DQogICAgICAgICAgICAgICAgICAgIDxsYWJlbD5Mb2dvOjwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sIiBpZD0ibG9nb0UiIG5hbWU9ImxvZ28iIHBsYWNlaG9sZGVyPSJMaW5rIGRhIEltYWdlbSIgcmVxdWlyZWQ+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+DQogICAgICAgICAgICAgICAgICAgIDxsYWJlbD5Vcmw6PC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIGlkPSJsaW5rRSIgbmFtZT0ibGluayIgcGxhY2Vob2xkZXI9IlVybCBkbyBMaW5rIiByZXF1aXJlZD4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4NCiAgICAgICAgICAgICAgICAgIDxsYWJlbD5DYXRlZ29yw61hOjwvbGFiZWw+DQogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtbC0wIHJvdyI+DQogICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9InNlbGVjdHBpY2tlciIgdGl0bGU9IkNhdGVnb3LDrWEiIGlkPSJjYXRlZ29yaWFFIiBuYW1lPSJjYXRlZ29yaWEiIHJlcXVpcmVkPg0KICAgICAgICAgICAgICAgICAgPD9waHAgIGlmICgkY2F0ZWdvcmlhcykgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCgkY2F0ZWdvcmlhcyBhcyAkY2F0ZWdvcmlhKSB7Pz4NCiAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSI8Pz0gJGNhdGVnb3JpYVsnaWQnXT8+IiA+IDw/PSAkY2F0ZWdvcmlhWydub21lJ10/PiA8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPD9waHAgfSB9ID8+DQogICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0Pg0KICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJidG4gYnRuLWRhbmdlciI+U2FsdmFyPC9idXR0b24+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9mb3JtPg0KICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogIDwvZGl2Pg0KPC9kaXY+DQo8IS0tIEVkaXRhIEZpbS0tPg0KPC9ib2R5Pg0KPHNjcmlwdD4NCg0KDQoNCg0KZnVuY3Rpb24gUGxheShpZCxub21lLCBsaW5rLCBjYXRlZ29yaWEsIGxvZ28pIHsNCiAgICAgICAgJCgnI2lkRScpLnZhbChpZCk7DQoJCSQoJyNsaW5rRXVybCcpLnZhbChsaW5rKTsNCgkJaWYgKGNhdGVnb3JpYSAhPT0gIiIpIHsNCiAgICAgICAgICAkKCcjY2F0ZWdvcmlhRScpLnZhbChjYXRlZ29yaWEpOw0KICAgICAgICAgICQoJyNjYXRlZ29yaWFFJykuc2VsZWN0cGlja2VyKCdyZW5kZXInKTsNCiAgICAgICAgfQ0KICAgICAgICAkKCcjcGxheScpLm1vZGFsKCk7DQogICAgfQ0KDQoNCg0KDQoNCg0KZnVuY3Rpb24gZWRpdGFyQ29uZmlybWEoaWQsbm9tZSwgbGluaywgY2F0ZWdvcmlhLCBsb2dvKSB7DQogICAgICAgICQoJyNpZEUnKS52YWwoaWQpOw0KICAgICAgICAkKCcjbm9tZUUnKS52YWwobm9tZSk7DQogICAgICAgICQoJyNsb2dvRScpLnZhbChsb2dvKTsNCiAgICAgICAgJCgnI2xpbmtFJykudmFsKGxpbmspOw0KICAgICAgICBpZiAoY2F0ZWdvcmlhICE9PSAiIikgew0KICAgICAgICAgICQoJyNjYXRlZ29yaWFFJykudmFsKGNhdGVnb3JpYSk7DQogICAgICAgICAgJCgnI2NhdGVnb3JpYUUnKS5zZWxlY3RwaWNrZXIoJ3JlbmRlcicpOw0KICAgICAgICB9DQogICAgICAgICQoJyNlZGl0YXInKS5tb2RhbCgpOw0KICAgIH0NCgkNCgkNCiAgICBmdW5jdGlvbiByZW1vdmVyQ29uZmlybWEoaWQsbm9tZSkgew0KICAgICAgICAkKCcjcmVtb3Zlci1jb250ZXVkbycpLmh0bWwoJzxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWRhbmdlciIgcm9sZT0iYWxlcnQiPjxzdHJvbmc+IFJlbW92ZXIgPC9zdHJvbmc+JyArIG5vbWUgKyAnPzwvZGl2PjxidXR0b24gb25jbGljaz0icmVtb3ZlcignICsgaWQgKyAnKSIgdHlwZT0ic3VibWl0IiBjbGFzcz0iYnRuIGJ0bi1kYW5nZXIgZmxvYXQtcmlnaHQiPlJlbW92ZXI8L2J1dHRvbj4nKTsNCiAgICAgICAgJCgnI3JlbW92ZXInKS5tb2RhbCgpOw0KICAgIH0NCgkNCgkNCg0KICAgIGZ1bmN0aW9uIGVkaXRhckNvbmZpcm1hKGlkLG5vbWUsIGxpbmssIGNhdGVnb3JpYSwgbG9nbykgew0KICAgICAgICAkKCcjaWRFJykudmFsKGlkKTsNCiAgICAgICAgJCgnI25vbWVFJykudmFsKG5vbWUpOw0KICAgICAgICAkKCcjbG9nb0UnKS52YWwobG9nbyk7DQogICAgICAgICQoJyNsaW5rRScpLnZhbChsaW5rKTsNCiAgICAgICAgaWYgKGNhdGVnb3JpYSAhPT0gIiIpIHsNCiAgICAgICAgICAkKCcjY2F0ZWdvcmlhRScpLnZhbChjYXRlZ29yaWEpOw0KICAgICAgICAgICQoJyNjYXRlZ29yaWFFJykuc2VsZWN0cGlja2VyKCdyZW5kZXInKTsNCiAgICAgICAgfQ0KICAgICAgICAkKCcjZWRpdGFyJykubW9kYWwoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiByZW1vdmVyKGlkKSB7DQogICAgICAgICQuYWpheCh7DQogICAgICAgICAgICB0eXBlOiAiUE9TVCIsDQogICAgICAgICAgICB1cmw6ICJjb250cm9sZXMvcmVtb3Zlci1saW5rLnBocCIsDQogICAgICAgICAgICBkYXRhOiB7aWQ6IGlkfSwNCiAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsNCiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfQ0KDQogICAgJCggIiNjYWRhc3Ryby1mb3JtIiApLnN1Ym1pdChmdW5jdGlvbiggZXZlbnQgKSB7DQogICAgICAgICQuYWpheCh7DQogICAgICAgICAgICB0eXBlOiAiUE9TVCIsDQogICAgICAgICAgICB1cmw6ICJjb250cm9sZXMvYWRpY2lvbmFyLWxpbmsucGhwIiwNCiAgICAgICAgICAgIGRhdGE6ICQoIiNjYWRhc3Ryby1mb3JtIikuc2VyaWFsaXplKCksDQogICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihkYXRhKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uIChkYXRhKSB7DQogICAgICAgICAgICAgIHJlc3VsdGFkbyhkYXRhLnJlc3BvbnNlVGV4dCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KICAgIH0pOw0KDQogICAgJCggIiNlZGl0YXItZm9ybSIgKS5zdWJtaXQoZnVuY3Rpb24oIGV2ZW50ICkgew0KICAgICAgICAkLmFqYXgoew0KICAgICAgICAgICAgdHlwZTogIlBPU1QiLA0KICAgICAgICAgICAgdXJsOiAiY29udHJvbGVzL2VkaXRhci1saW5rLnBocCIsDQogICAgICAgICAgICBkYXRhOiAkKCIjZWRpdGFyLWZvcm0iKS5zZXJpYWxpemUoKSwNCiAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsNCiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24gKGRhdGEpIHsNCiAgICAgICAgICAgICAgcmVzdWx0YWRvKGRhdGEucmVzcG9uc2VUZXh0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQogICAgfSk7DQoJDQoJDQoJDQoNCjwvc2NyaXB0Pg0KPD9waHAgcmVxdWlyZV9vbmNlKCJjb211bS5waHAiKTsNCnJlcXVpcmVfb25jZSgiYWxlcnRhLnBocCIpOyA/Pg0KPC9odG1sPg0KPD9waHAgDQp9IGVsc2Ugew0KICAgIGhlYWRlcigiTG9jYXRpb246IGluZGV4LnBocCIpOw0KICAgIGRpZSgpOw0KfQ0KPz4

Did this file decode correctly?

Original Code

<?php @eval("?>".base64_decode("PD9waHANCnNlc3Npb25fc3RhcnQoKTsNCnJlcXVpcmVfb25jZSgiY29udHJvbGVzL3VzdWFyaW9zLnBocCIpOw0KcmVxdWlyZV9vbmNlKCJjb250cm9sZXMvbGlua3MucGhwIik7DQpyZXF1aXJlX29uY2UgKCJjb250cm9sZXMvbm92aWRhZGVzLnBocCIpOw0KcmVxdWlyZV9vbmNlKCJjb250cm9sZXMvY2F0ZWdvcmlhcy5waHAiKTsNCmlmIChjaGVjYXJVc3VhcmlvKCkpIHsNCnJlcXVpcmVfb25jZSgiY2FiZWNhbGhvLnBocCIpOw0KaWYoJF9TRVNTSU9OWydhZG1pbiddKXsNCn0NCiRsaW5rcyA9IGxpc3RhcmxpbmtzKCk7DQokY2F0ZWdvcmlhcyA9IGxpc3RhckNhdGVnb3JpYXMoKTsNCj8+DQo8c3R5bGUgaWQ9ImNoZWNrbWUiPg0KCS5wYWdlLTJjb250ZW50IHsNCgkgICAgcGFkZGluZy1sZWZ0OiAyNDBweCAhaW1wb3J0YW50Ow0KCQlwYWRkaW5nLXJpZ2h0OiAyNDBweCAhaW1wb3J0YW50Ow0KCX0NCgk8L3N0eWxlPg0KCQ0KCQ0KCSA8ZGl2IGlkPSJjb250ZXVkby1wYWluZWwiIHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDBweDsiIGNsYXNzPSJ0YWJsZS1yZXNwb25zaXZlIGNvbnRhaW5lciI+DQoJIA0KCSANCiAgICAgICAgPGRpdiBpZD0iY29udGV1ZG8tcGFpbmVsIiBjbGFzcz0iY29udGFpbmVyIj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1iLTUgZm9ybS1ncm91cCBmbG9hdC1sZWZ0Ij4NCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJwZXNxdWlzYXIgZm9ybS1jb250cm9sIiBwbGFjZWhvbGRlcj0iUGVzcXVpc2FyLi4uIj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KCQkJDQoJCQkNCiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9J3RhYmxlIHRhYmxlLXN0cmlwZWQgdGFibGUtaG92ZXInPg0KICAgICAgICAgICAgICAgICAgICA8Y2FwdGlvbj5DYW5haXM8L2NhcHRpb24+DQoJCQkJCQ0KCQkJCQk8dHIgYWxpZ249ImNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgIDx0aGVhZCBjbGFzcz0idGhlYWQtZGFyayI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSdub21lY29sJyBzdHlsZT0id2lkdGg6IDIlIiBzY29wZT0iY29sIiA+PGZvbnQgIGNvbG9yPSJ3aGl0ZSI+PGkgY2xhc3M9ImZhIGZhLWNvbm5lY3RkZXZlbG9wIj4gSWQ8L3RoPg0KCQkJCQkJCTx0aCBjbGFzcz0nbm9tZWNvbCcgc3R5bGU9IndpZHRoOiAxMCUiIHNjb3BlPSJjb2wiID48Zm9udCAgY29sb3I9IndoaXRlIj48aSBjbGFzcz0iZmEgZmEtdHYiPiBUaXBvPC90aD4NCgkJCQkJCSAgICA8dGggY2xhc3M9J25vbWVjb2wnIHN0eWxlPSJ3aWR0aDogMiUiIHNjb3BlPSJjb2wiID48Zm9udCAgY29sb3I9IndoaXRlIj48aSBjbGFzcz0iZmEgZmEtcGhvdG8iPjwvaT4gTG9nbzwvdGg+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSdub21lY29sJyBzdHlsZT0id2lkdGg6IDIwJSIgc2NvcGU9ImNvbCIgPjxmb250ICBjb2xvcj0id2hpdGUiPjxpIGNsYXNzPSJmYSBmYS1hZGRyZXNzLWNhcmQiPiBUaXR1bG88L3RoPg0KCQkJCQkJCTx0aCBjbGFzcz0nbm9tZWNvbCcgc2NvcGU9ImNvbCIgPjxmb250ICBjb2xvcj0id2hpdGUiPjxpIGNsYXNzPSJmYSBmYS1ib3giPiBDYXRlZ29yaWE8L3RoPg0KCQkJCQkJCTx0aCBjbGFzcz0nbm9tZWNvbCcgc2NvcGU9ImNvbCIgPjxmb250ICBjb2xvcj0id2hpdGUiPjxpIGNsYXNzPSJmYSBmYS1saW5rIj48L2k+IExpbms8L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgICANCgkJCQkJDQoJCQkJCQkJDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSdzZW1yZXN1bHRhZG8nIHNjb3BlPSdjb2wnPk5lbmh1bSByZXN1bHRhZG88L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4NCgkJCQkJDQogICAgICAgICAgICAgICAgIDw/cGhwICAgDQoJCQkJIC8vLy9QUkVDSVNPIEZJTFRSQVIgVU0gVkFMT1IgREEgVEFCRUxBIENPTSBFU1NFIFZBTE9SDQoJCQkJICAvLy9WQUxPUiBRVUUgVkVJTyBEQSBUQUJFTEEgVkVJTyBWQVJJQVZFTCAkTElOS1MgLy8vDQoJCQkJIGlmICgkbGlua3Mpew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2goJGxpbmtzIGFzICRsaW5rKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGFkb3NbXSA9IGFycmF5KA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lkX2xpbmsnICAgICAgICA9PiAkbGlua1snaWRfbGluayddLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xvZ29fbGluaycgICAgICA9PiAkbGlua1snbG9nbyddLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vbWVfbGluaycgICAgICA9PiAkbGlua1snbm9tZV9saW5rJ10sIC8vLy8vLy8vRVhFTVBMTyBOTyBUQUJFTEEgREUgREFET1MgLy8vICBSQUZBRUwgMSBSQUZBRUwgMiBFIEVEVUFET1INCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsaW5rX2xpbmsnICAgICAgPT4gJGxpbmtbJ2xpbmtfbGluayddLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lkX2NhdGVnb3JpYScgICA9PiAkbGlua1snaWRfY2F0ZWdvcmlhJ10sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm9tZV9jYXRlZ29yaWEnID0+IG5vbWVDYXRlZ29yaWEoJGxpbmtbJ2lkX2NhdGVnb3JpYSddKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCgkJCQkJCQkNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCgkZGFkb3MpKSB7DQoJCQkJCQkJCQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAnPHRib2R5IGlkPSJjb250ZXVkbyI+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkZGFkb3MgYXMgJGRhZG9zQXJyYXkpIHsNCgkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCWlmIChtYl9zdHJwb3MoJGRhZG9zQXJyYXlbJ2xpbmtfbGluayddLCcvbGl2ZS8nKSAhPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICc8dHIgY2xhc3M9InBvc3QiIGFsaWduPSJjZW50ZXIiPic7DQoJCQkJCQkJCQkJCS8vLy8gUVVFUk8gUVVFIEVYSUJBUiBTTyBSQUZBRUwgREFTIGFycmF5IE8gRURVQVJETyBOQU8gREUgRUNITy8vLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAnPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7Ij4nLiRkYWRvc0FycmF5WydpZF9saW5rJ10uJzwvdGQ+JzsNCgkJCQkJCQkJCQkJCWVjaG8gJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyI+TGl2ZTwvdGQ+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJzx0ZD48aW1nIHNyYz0nLiciJy4kZGFkb3NBcnJheVsnbG9nb19saW5rJ10uJyInLidzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgd2lkdGg6NDVweDsgaGVpZ2h0OjQ1cHg7IiAvPjwvdGQ+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyI+Jy4kZGFkb3NBcnJheVsnbm9tZV9saW5rJ10uJzwvdGQ+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyI+WyAnLiRkYWRvc0FycmF5Wydub21lX2NhdGVnb3JpYSddLicgXTwvdGQ+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyI+Jy4kZGFkb3NBcnJheVsnbGlua19saW5rJ10uJzwvdGQ+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQoJCQkJCQkJCQkJCWVjaG8gJzwvdHI+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAnPC90Ym9keT4nOw0KCQkJCQkgICAgICAgICAgICAgICAgICAgICAgfQ0KCQkJCQkJCQkJCSAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYl9zdHJwb3MoJGRhZG9zQXJyYXlbJ2xpbmtfbGluayddLCcvY2hhbm5lbC8nKSAhPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICc8dHIgY2xhc3M9InBvc3QiIGFsaWduPSJjZW50ZXIiPic7DQoJCQkJCQkJCQkJCS8vLy8gUVVFUk8gUVVFIEVYSUJBUiBTTyBSQUZBRUwgREFTIGFycmF5IE8gRURVQVJETyBOQU8gREUgRUNITy8vLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAnPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7Ij4nLiRkYWRvc0FycmF5WydpZF9saW5rJ10uJzwvdGQ+JzsNCgkJCQkJCQkJCQkJCWVjaG8gJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyI+TGl2ZTwvdGQ+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJzx0ZD48aW1nIHNyYz0nLiciJy4kZGFkb3NBcnJheVsnbG9nb19saW5rJ10uJyInLidzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgd2lkdGg6NDVweDsgaGVpZ2h0OjQ1cHg7IiAvPjwvdGQ+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyI+Jy4kZGFkb3NBcnJheVsnbm9tZV9saW5rJ10uJzwvdGQ+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyI+WyAnLiRkYWRvc0FycmF5Wydub21lX2NhdGVnb3JpYSddLicgXTwvdGQ+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyI+Jy4kZGFkb3NBcnJheVsnbGlua19saW5rJ10uJzwvdGQ+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQoJCQkJCQkJCQkJCWVjaG8gJzwvdHI+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAnPC90Ym9keT4nOw0KCQkJCQkgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICANCgkJCQkJCQl9DQoNCgkJCQkgfQ0KDQoNCgkJCQkJICAgfQ0KICAgICAgICAgICAgICAgICAgICA/Pg0KICAgICAgICAgICAgICAgIDwvdGFibGU+DQoJCQkJDQogICAgICAgICAgPC9kaXY+ICANCiAgICAgICANCgkJPC9kaXY+DQogICAgDQoNCiAgPC9tYWluPg0KICA8IS0tIHBhZ2UtY29udGVudCIgLS0+DQoNCjwhLS0gQ2FkYXN0cm8gSW5pY2lvIC0tPg0KPGRpdiBjbGFzcz0ibW9kYWwgZmFkZSIgaWQ9ImNhZGFzdHJvIiB0YWJpbmRleD0iLTEiIHJvbGU9ImRpYWxvZyIgYXJpYS1sYWJlbGxlZGJ5PSJDYWRhc3RyYXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj4NCiAgPGRpdiBjbGFzcz0ibW9kYWwtZGlhbG9nIiByb2xlPSJkb2N1bWVudCI+DQogICAgPGRpdiBjbGFzcz0ibW9kYWwtY29udGVudCI+DQogICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPg0KICAgICAgICA8aDUgY2xhc3M9Im1vZGFsLXRpdGxlIj5BZGljaW9uYXIgTGluazwvaDU+DQogICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iY2xvc2UiIGRhdGEtZGlzbWlzcz0ibW9kYWwiIGFyaWEtbGFiZWw9IkZlY2hhciI+DQogICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPiZ0aW1lczs8L3NwYW4+DQogICAgICAgIDwvYnV0dG9uPg0KICAgICAgPC9kaXY+DQogICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij4NCiAgICAgICAgPGZvcm0gaWQ9ImNhZGFzdHJvLWZvcm0iPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPk5vbWU6PC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIG5hbWU9Im5vbWUiIHBsYWNlaG9sZGVyPSJOb21lIGRvIExpbmsiIHJlcXVpcmVkIGF1dG9mb2N1cz4NCiAgICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPSJmb3JtLXRleHQgdGV4dC1tdXRlZCI+Q2FtcG8gw7puaWNvITwvc21hbGw+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+DQogICAgICAgICAgICAgICAgICAgIDxsYWJlbD5Mb2dvOjwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sIiBuYW1lPSJsb2dvIiBwbGFjZWhvbGRlcj0iTGluayBkYSBJbWFnZW0iIHJlcXVpcmVkPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgICA8bGFiZWw+VXJsOjwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sIiBuYW1lPSJsaW5rIiBwbGFjZWhvbGRlcj0iVXJsIGRvIExpbmsiIHJlcXVpcmVkPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgPGxhYmVsPkNhdGVnb3LDrWE6PC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1sLTAgcm93Ij4NCiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz0ic2VsZWN0cGlja2VyIiB0aXRsZT0iQ2F0ZWdvcmlhIiBuYW1lPSJjYXRlZ29yaWEiIHJlcXVpcmVkPg0KICAgICAgICAgICAgICAgICAgICA8P3BocCBpZiAoJGNhdGVnb3JpYXMpIHsNCiAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoKCRjYXRlZ29yaWFzIGFzICRjYXRlZ29yaWEpIHs/Pg0KICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ijw/PSAkY2F0ZWdvcmlhWydpZCddPz4iID4gPD89ICRjYXRlZ29yaWFbJ25vbWUnXT8+IDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8P3BocCB9IH0gPz4NCiAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+DQogICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9ImJ0biBidG4tZGFuZ2VyIj5BZGljaW9uYXI8L2J1dHRvbj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Zvcm0+DQogICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCiAgPC9kaXY+DQo8L2Rpdj4NCjwhLS0gQ2FkYXN0cm8gRmltLS0+DQo8IS0tIFJlbW92ZSBJbmljaW8gLS0+DQo8ZGl2IGNsYXNzPSJtb2RhbCBmYWRlIiBpZD0icmVtb3ZlciIgdGFiaW5kZXg9Ii0xIiByb2xlPSJkaWFsb2ciIGFyaWEtbGFiZWxsZWRieT0iQ2FkYXN0cmFyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+DQogIDxkaXYgY2xhc3M9Im1vZGFsLWRpYWxvZyIgcm9sZT0iZG9jdW1lbnQiPg0KICAgIDxkaXYgY2xhc3M9Im1vZGFsLWNvbnRlbnQiPg0KICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj4NCiAgICAgICAgPGg1IGNsYXNzPSJtb2RhbC10aXRsZSI+VGVtIGNlcnRlemE/PC9oNT4NCiAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjbG9zZSIgZGF0YS1kaXNtaXNzPSJtb2RhbCIgYXJpYS1sYWJlbD0iRmVjaGFyIj4NCiAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSI+JnRpbWVzOzwvc3Bhbj4NCiAgICAgICAgPC9idXR0b24+DQogICAgICA8L2Rpdj4NCiAgICAgIDxkaXYgaWQ9InJlbW92ZXItY29udGV1ZG8iIGNsYXNzPSJtb2RhbC1ib2R5Ij48L2Rpdj4NCiAgICA8L2Rpdj4NCiAgPC9kaXY+DQo8L2Rpdj4NCjwhLS0gUmVtb3ZlIEZpbS0tPg0KDQoNCg0KDQoNCg0KPCEtLSBFZGl0YSBJbmljaW8gLS0+DQo8ZGl2IGNsYXNzPSJtb2RhbCBmYWRlIiBpZD0iZWRpdGFyIiB0YWJpbmRleD0iLTEiIHJvbGU9ImRpYWxvZyIgYXJpYS1sYWJlbGxlZGJ5PSJDYWRhc3RyYXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj4NCiAgPGRpdiBjbGFzcz0ibW9kYWwtZGlhbG9nIiByb2xlPSJkb2N1bWVudCI+DQogICAgPGRpdiBjbGFzcz0ibW9kYWwtY29udGVudCI+DQogICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPg0KICAgICAgICA8aDUgY2xhc3M9Im1vZGFsLXRpdGxlIj5FZGl0YXIgTGluazwvaDU+DQogICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iY2xvc2UiIGRhdGEtZGlzbWlzcz0ibW9kYWwiIGFyaWEtbGFiZWw9IkZlY2hhciI+DQogICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPiZ0aW1lczs8L3NwYW4+DQogICAgICAgIDwvYnV0dG9uPg0KICAgICAgPC9kaXY+DQogICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij4NCiAgICAgICAgPGZvcm0gaWQ9ImVkaXRhci1mb3JtIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+DQogICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpZCIgaWQ9ImlkRSI+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+DQogICAgICAgICAgICAgICAgICAgIDxsYWJlbD5Ob21lOjwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sIiBpZD0ibm9tZUUiIG5hbWU9Im5vbWUiIHBsYWNlaG9sZGVyPSJOb21lIGRvIExpbmsiIHJlcXVpcmVkIGF1dG9mb2N1cz4NCiAgICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPSJmb3JtLXRleHQgdGV4dC1tdXRlZCI+Q2FtcG8gw7puaWNvITwvc21hbGw+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+DQogICAgICAgICAgICAgICAgICAgIDxsYWJlbD5Mb2dvOjwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sIiBpZD0ibG9nb0UiIG5hbWU9ImxvZ28iIHBsYWNlaG9sZGVyPSJMaW5rIGRhIEltYWdlbSIgcmVxdWlyZWQ+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+DQogICAgICAgICAgICAgICAgICAgIDxsYWJlbD5Vcmw6PC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIGlkPSJsaW5rRSIgbmFtZT0ibGluayIgcGxhY2Vob2xkZXI9IlVybCBkbyBMaW5rIiByZXF1aXJlZD4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4NCiAgICAgICAgICAgICAgICAgIDxsYWJlbD5DYXRlZ29yw61hOjwvbGFiZWw+DQogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtbC0wIHJvdyI+DQogICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9InNlbGVjdHBpY2tlciIgdGl0bGU9IkNhdGVnb3LDrWEiIGlkPSJjYXRlZ29yaWFFIiBuYW1lPSJjYXRlZ29yaWEiIHJlcXVpcmVkPg0KICAgICAgICAgICAgICAgICAgPD9waHAgIGlmICgkY2F0ZWdvcmlhcykgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCgkY2F0ZWdvcmlhcyBhcyAkY2F0ZWdvcmlhKSB7Pz4NCiAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSI8Pz0gJGNhdGVnb3JpYVsnaWQnXT8+IiA+IDw/PSAkY2F0ZWdvcmlhWydub21lJ10/PiA8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPD9waHAgfSB9ID8+DQogICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0Pg0KICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJidG4gYnRuLWRhbmdlciI+U2FsdmFyPC9idXR0b24+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9mb3JtPg0KICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogIDwvZGl2Pg0KPC9kaXY+DQo8IS0tIEVkaXRhIEZpbS0tPg0KPC9ib2R5Pg0KPHNjcmlwdD4NCg0KDQoNCg0KZnVuY3Rpb24gUGxheShpZCxub21lLCBsaW5rLCBjYXRlZ29yaWEsIGxvZ28pIHsNCiAgICAgICAgJCgnI2lkRScpLnZhbChpZCk7DQoJCSQoJyNsaW5rRXVybCcpLnZhbChsaW5rKTsNCgkJaWYgKGNhdGVnb3JpYSAhPT0gIiIpIHsNCiAgICAgICAgICAkKCcjY2F0ZWdvcmlhRScpLnZhbChjYXRlZ29yaWEpOw0KICAgICAgICAgICQoJyNjYXRlZ29yaWFFJykuc2VsZWN0cGlja2VyKCdyZW5kZXInKTsNCiAgICAgICAgfQ0KICAgICAgICAkKCcjcGxheScpLm1vZGFsKCk7DQogICAgfQ0KDQoNCg0KDQoNCg0KZnVuY3Rpb24gZWRpdGFyQ29uZmlybWEoaWQsbm9tZSwgbGluaywgY2F0ZWdvcmlhLCBsb2dvKSB7DQogICAgICAgICQoJyNpZEUnKS52YWwoaWQpOw0KICAgICAgICAkKCcjbm9tZUUnKS52YWwobm9tZSk7DQogICAgICAgICQoJyNsb2dvRScpLnZhbChsb2dvKTsNCiAgICAgICAgJCgnI2xpbmtFJykudmFsKGxpbmspOw0KICAgICAgICBpZiAoY2F0ZWdvcmlhICE9PSAiIikgew0KICAgICAgICAgICQoJyNjYXRlZ29yaWFFJykudmFsKGNhdGVnb3JpYSk7DQogICAgICAgICAgJCgnI2NhdGVnb3JpYUUnKS5zZWxlY3RwaWNrZXIoJ3JlbmRlcicpOw0KICAgICAgICB9DQogICAgICAgICQoJyNlZGl0YXInKS5tb2RhbCgpOw0KICAgIH0NCgkNCgkNCiAgICBmdW5jdGlvbiByZW1vdmVyQ29uZmlybWEoaWQsbm9tZSkgew0KICAgICAgICAkKCcjcmVtb3Zlci1jb250ZXVkbycpLmh0bWwoJzxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWRhbmdlciIgcm9sZT0iYWxlcnQiPjxzdHJvbmc+IFJlbW92ZXIgPC9zdHJvbmc+JyArIG5vbWUgKyAnPzwvZGl2PjxidXR0b24gb25jbGljaz0icmVtb3ZlcignICsgaWQgKyAnKSIgdHlwZT0ic3VibWl0IiBjbGFzcz0iYnRuIGJ0bi1kYW5nZXIgZmxvYXQtcmlnaHQiPlJlbW92ZXI8L2J1dHRvbj4nKTsNCiAgICAgICAgJCgnI3JlbW92ZXInKS5tb2RhbCgpOw0KICAgIH0NCgkNCgkNCg0KICAgIGZ1bmN0aW9uIGVkaXRhckNvbmZpcm1hKGlkLG5vbWUsIGxpbmssIGNhdGVnb3JpYSwgbG9nbykgew0KICAgICAgICAkKCcjaWRFJykudmFsKGlkKTsNCiAgICAgICAgJCgnI25vbWVFJykudmFsKG5vbWUpOw0KICAgICAgICAkKCcjbG9nb0UnKS52YWwobG9nbyk7DQogICAgICAgICQoJyNsaW5rRScpLnZhbChsaW5rKTsNCiAgICAgICAgaWYgKGNhdGVnb3JpYSAhPT0gIiIpIHsNCiAgICAgICAgICAkKCcjY2F0ZWdvcmlhRScpLnZhbChjYXRlZ29yaWEpOw0KICAgICAgICAgICQoJyNjYXRlZ29yaWFFJykuc2VsZWN0cGlja2VyKCdyZW5kZXInKTsNCiAgICAgICAgfQ0KICAgICAgICAkKCcjZWRpdGFyJykubW9kYWwoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiByZW1vdmVyKGlkKSB7DQogICAgICAgICQuYWpheCh7DQogICAgICAgICAgICB0eXBlOiAiUE9TVCIsDQogICAgICAgICAgICB1cmw6ICJjb250cm9sZXMvcmVtb3Zlci1saW5rLnBocCIsDQogICAgICAgICAgICBkYXRhOiB7aWQ6IGlkfSwNCiAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsNCiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfQ0KDQogICAgJCggIiNjYWRhc3Ryby1mb3JtIiApLnN1Ym1pdChmdW5jdGlvbiggZXZlbnQgKSB7DQogICAgICAgICQuYWpheCh7DQogICAgICAgICAgICB0eXBlOiAiUE9TVCIsDQogICAgICAgICAgICB1cmw6ICJjb250cm9sZXMvYWRpY2lvbmFyLWxpbmsucGhwIiwNCiAgICAgICAgICAgIGRhdGE6ICQoIiNjYWRhc3Ryby1mb3JtIikuc2VyaWFsaXplKCksDQogICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihkYXRhKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uIChkYXRhKSB7DQogICAgICAgICAgICAgIHJlc3VsdGFkbyhkYXRhLnJlc3BvbnNlVGV4dCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KICAgIH0pOw0KDQogICAgJCggIiNlZGl0YXItZm9ybSIgKS5zdWJtaXQoZnVuY3Rpb24oIGV2ZW50ICkgew0KICAgICAgICAkLmFqYXgoew0KICAgICAgICAgICAgdHlwZTogIlBPU1QiLA0KICAgICAgICAgICAgdXJsOiAiY29udHJvbGVzL2VkaXRhci1saW5rLnBocCIsDQogICAgICAgICAgICBkYXRhOiAkKCIjZWRpdGFyLWZvcm0iKS5zZXJpYWxpemUoKSwNCiAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsNCiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24gKGRhdGEpIHsNCiAgICAgICAgICAgICAgcmVzdWx0YWRvKGRhdGEucmVzcG9uc2VUZXh0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQogICAgfSk7DQoJDQoJDQoJDQoNCjwvc2NyaXB0Pg0KPD9waHAgcmVxdWlyZV9vbmNlKCJjb211bS5waHAiKTsNCnJlcXVpcmVfb25jZSgiYWxlcnRhLnBocCIpOyA/Pg0KPC9odG1sPg0KPD9waHAgDQp9IGVsc2Ugew0KICAgIGhlYWRlcigiTG9jYXRpb246IGluZGV4LnBocCIpOw0KICAgIGRpZSgpOw0KfQ0KPz4

Function Calls

None

Variables

None

Stats

MD5 7e8385e637eb90d1605113ca619e52c5
Eval Count 0
Decode Time 135 ms