Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
eval(gzuncompress(base64_decode('eNrtXVtz4la2fk/V/Ic8TFXPqZyaCGEnTaXyADICCYONAAF6mUKSLTDik..
Decoded Output download
$____='printf';$___________='Class/Code NAME Class...';
$___ = 'X19sYW1iZGE=' ;
$______= 'cmV0dXJuIGV2YWwoJF9fXyk7' ;
$____ = 'base64_decode'; $___________='DQovKioNCiAqIEBhdXRob3IgIFRvbnkgVG9tb3YsICh0b255QHRyaXJhbmQuY29tKQ0KICogQGNvcHlyaWdodCBUcmlSYW5kIEx0ZA0KICogQHZlcnNpb24gNS41LjUNCiAqIEBwYWNrYWdlIGpxVHJlZUdyaWQNCiAqDQogKiBAYWJzdHJhY3QNCiAqIEEgUEhQIGNsYXNzIHRvIHdvcmsgd2l0aCBqcUdyaWQgVHJlZSBtb2R1bGUuDQogKiBUaGUgbWFpbiBwdXJwb3NlIG9mIHRoaXMgY2xhc3MgaXMgdG8gcHJvdmlkZSB0aGUgZGF0YSBmcm9tIGRhdGFiYXNlIHRvIGpxR3JpZCwNCiAqIFRoZSBjbGFzcyByZXF1aWVyIGEganFHcmlkIGNsYXNzZXMgdG8gYmUgbG9hZGVkIGZpcnN0Lg0KICovDQovL2luY2x1ZGUgJ2pxR3JpZC5waHAnOw0KaWYgKCFkZWZpbmVkKCdQSFBTVUlUT19ST09UJykpIHsNCiAgICBkZWZpbmUoJ1BIUFNVSVRPX1JPT1QnLCBkaXJuYW1lKF9fRklMRV9fKSAuICcvJyk7DQogICAgcmVxdWlyZShQSFBTVUlUT19ST09UIC4gJ0F1dG9sb2FkZXIucGhwJyk7DQp9DQoNCmNsYXNzIGpxVHJlZUdyaWQgZXh0ZW5kcyBqcUdyaWRSZW5kZXINCnsNCgkvKioNCgkgKiBEZXRlcm1pbmVzIHRoZSB0eXBlIG9mIHRyZWUgbW9kZWwuDQoJICogQ2FuIGJlIGFkamFjZW5jeSBvciBuZXN0ZWQNCgkgKiBAdmFyIHN0cmluZw0KCSAqLw0KCXByaXZhdGUgJHRyZWVtb2RlbCA9ICduZXN0ZWQnOw0KDQoJLyoqDQoJICogSG9sZCB0aGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIHVzZWQgbW9kZWwNCgkgKiAgQHZhciBhcnJheQ0KCSAqLw0KCXByaXZhdGUgICR0YWJsZWNvbmZpZyA9IGFycmF5KA0KCQkvLyBjb21tb24gdG8gYWxsIG1vZGVscw0KCQkiaWQiID0+ICJpZCIsDQoJCS8vIGFkamFjZW5jeQ0KCQkicGFyZW50Ij0+InBhcmVudCIsDQoJCS8vIG5lc3RlZA0KCQkibGVmdCI9PiJsZnQiLA0KCQkicmlnaHQiPT4icmd0IiwNCgkJImxldmVsIj0+ImxldmVsIiwNCgkJImxlYWYiPT4iaXNMZWFmIiwNCgkJImV4cGFuZGVkIj0+ImV4cGFuZGVkIiwNCgkJImxvYWRlZCI9PiJsb2FkZWQiLA0KCQkiaWNvbiI9PiJpY29uIiwNCgkJImN1c3RvbXdoZXJlIj0+IiINCgkpOw0KCS8qKg0KCSAqIFN0b3JlcyB0aGUgcmVzdWx0IGFmdGVyIHRoZSByZQ0KCSAqIEB2YXIgYXJyYXkNCgkgKi8NCglwcml2YXRlICRyZXMgPSBhcnJheSgpOw0KCS8qKg0KCSAqIGhvZHMgdGhlIGRhdGEgZm9yIGZ1dHVyZSBwcm9jZXNzaW5nIG9mIHRoZSB0cmVlDQoJICogQHZhciBhcnJheQ0KCSAqLw0KCXByaXZhdGUgJGRhdGE7DQoJLyoqDQoJICogYXJyYXkgZm9yIHRoZSBsZWFmIG5vZGVzLiBVc2VkIG9ubHkgaW4gYWRqYWNlbmN5IG1vZGVsDQoJICogIEB2YXIgYXJyYXkNCgkgKi8NCglwcml2YXRlICRsZWFmX25vZGVzID0gYXJyYXkoKTsNCgkvKioNCgkgKiBTaG91bGQgYmUgYWxsIG5vZGVzIGV4cGFuZGVkIHdoZW4gbG9hZGVkIGF0IGNsaWVudA0KCSAqIEB2YXIgYm9vbGVhbg0KCSAqLw0KCXB1YmxpYyAkZXhwYW5kQWxsID0gZmFsc2U7DQoJLyoqDQoJICogSWYgc2V0IHRvIGZhbHNlIGFsbCBkYXRhIGlzIGF2YWlsYWJsZSBhdCBjbGllbnQgc2lkZQ0KCSAqIEB2YXIgYm9vbGVhbg0KCSAqLw0KCXB1YmxpYyAkYXV0b0xvYWROb2RlcyA9IHRydWU7DQoJLyoqDQoJICoNCgkgKiBTZSB0aGUgdHJlZSBkYXRhIGZvciBmdXR1cmUgcHJvY2Vzc2luZw0KCSAqIEBwYXJhbSBhcnJheSAkZA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBzZXREYXRhKCRkKSB7DQoJCSR0aGlzLT5kYXRhID0gJGQ7DQoJfQ0KCS8qKg0KCSAqIFNldCBhIGxlYWYgbm9kZXMgZm9yIGFkamFjZW5jeSBtb2RlbA0KCSAqIEBwYXJhbSBhcnJheSAkZA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBzZXRMZWFmRGF0YSgkZCkgew0KCQkkdGhpcy0+bGVhZl9ub2RlcyA9ICRkOw0KCX0NCgkvKioNCgkgKiBTZXQgdGhlIHRyZWUgbW9kZSB1c2VkLiBDYW4gYmUgYWRqYWNlbmN5IG9yIG5lc3RlZC4gRGVhZmF1bHQgaXMgbmVzdGVkDQoJICogQHBhcmFtIHN0cmluZyAkbW9kZWwNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gc2V0VHJlZU1vZGVsKCAkbW9kZWwgPSAnbmVzdGVkJykNCgl7DQoJCWlmKCBzdHJsZW4oJG1vZGVsKT4wICkgew0KCQkJJHRoaXMtPnRyZWVtb2RlbCA9ICRtb2RlbDsNCgkJfQ0KCX0NCgkvKioNCgkgKiBSZXR1cm5zIHRoZSBjdXJyZW50bHkgdXNlZCB0cmVlIG1vZGVsDQoJICogQHJldHVybiBzdHJpbmcNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0VHJlZU1vZGVsKCkgew0KCQlyZXR1cm4gJHRoaXMtPnRyZWVtb2RlbDsNCgl9DQoJLyoqDQoJICogU2V0IHRoZSBjb25maWd1cmF0aW9uIGZpZWxkcyBmb3IgdGhlIG1vZGVsIHVzZWQuDQoJICogRm9yIHRoZSBhZGphY2VuY3kgbW9kZWwgYSAnaWQnIGFuZCAncGFyZW50JyBzaG91bGQgYmUgc2V0DQoJICogRm9yIHRoZSBuZXN0ZWQgbW9kZWwgJ2lkJywgJ2xlZnQnLCAncmlnaHQnIGFuZCAnbGV2ZWwnIHNob3VsZCBiZSBzZXQNCgkgKiBPcHRpb25hbCBmaWVsZHMgZm9yIGFsbCBtb2RlbHMgOg0KCSAqIGV4cGFuZGVkLCBpY29uLCBsZWFmLCBsb2FkZWQNCgkgKg0KCSAqIEBwYXJhbSBhcnJheSAkYWNvbmZpZw0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBzZXRUYWJsZUNvbmZpZyggJGFjb25maWcgKQ0KCXsNCgkJaWYoaXNfYXJyYXkoJGFjb25maWcpICYmIGNvdW50KCRhY29uZmlnKT4wICkgew0KCQkJJHRoaXMtPnRhYmxlY29uZmlnID0ganFHcmlkVXRpbHM6OmFycmF5X2V4dGVuZCgkdGhpcy0+dGFibGVjb25maWcsICRhY29uZmlnKTsNCgkJCWlmKCFpc3NldCAoJGFjb25maWdbJ3RhYmxlJ10pKSB7DQoJCQkJJHRoaXMtPnRhYmxlY29uZmlnWyd0YWJsZSddID0gJHRoaXMtPnRhYmxlOw0KCQkJfQ0KCQl9DQoJfQ0KCS8qKg0KCSAqIFJldHVybiB0aGUgY3VyZW50IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBtb2RlbCB1c2VkDQoJICogQHJldHVybiBhcnJheQ0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXRUYWJsZUNvbmZpZygpIHsNCgkJcmV0dXJuICR0aGlzLT50YWJsZWNvbmZpZzsNCgl9DQoNCgkvKioNCgkgKiBSZXR1cm4gdGhlIGxlYWYgbm9kZXMgd2hlbiB0aGUgYWRqYWNlbmN5IG1vZGVsIGlzIHVzZWQuDQoJICogTm90ZSB0aGF0IHRoZSB0YWJsZSBhbmQgdGFibGUgY29uZmlndXJhdGlvbiBzaG91bGQgYmUgc2V0DQoJICogQHBhcmFtIGludGVnZXIgJG5vZGUgLSB0aGUgaWQgb2YgdGhlIG5vZGUNCgkgKiBAcmV0dXJuIGFycmF5IG9mIHRoZSBsZWFmIG5vZGVzDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldExlYWZOb2RlcyggJG5vZGU9MCApIHsNCgkJLy8NCgkJJGxlYWYgPSBhcnJheSgpOw0KCQlpZiggc3RybGVuKCR0aGlzLT50YWJsZWNvbmZpZ1sndGFibGUnXSkgPiAwICkgew0KCQkJLy8gYnVsZCBzcWwNCgkJCWlmKCR0aGlzLT50cmVlbW9kZWwgPT0gJ2FkamFjZW5jeScpIC8vIG9ubHkNCgkJCXsNCgkJCQlpZiAoJG5vZGUgPT0gMCApIHsNCgkJCQkJJHdoZXJlID0gIiI7DQoJCQkJfSBlbHNlIHsNCgkJCQkJJHdoZXJlID0gJyBBTkQgdDEuJXBhcmVudCRzID0gJy4kbm9kZTsNCgkJCQl9DQoJCQkJLy8ganVzdCBpbiBjYXNlIHNldA0KCQkJCS8vJFNRTEwgPSAiU0VMRUNUIHQxLmFjY291bnRfaWQgRlJPTSBhY2NvdW50cyBBUyB0MSBMRUZUIEpPSU4gYWNjb3VudHMgYXMgdDIgIg0KCQkJCS8vLiIgT04gdDEuYWNjb3VudF9pZCA9IHQyLnBhcmVudF9pZCBXSEVSRSB0Mi5hY2NvdW50X2lkIElTIE5VTEwiOw0KCQkJCSRzID0ganFHcmlkVXRpbHM6OnNwcmludGZuKCdTRUxFQ1QgdDEuJWlkJHMgRlJPTSAldGFibGUkcyBBUyB0MSBMRUZUIEpPSU4gJXRhYmxlJHMgQVMgdDIgT04gdDEuJWlkJHMgPSB0Mi4lcGFyZW50JHMgV0hFUkUgdDIuJWlkJHMgSVMgTlVMTCcuJHdoZXJlLicgJWN1c3RvbXdoZXJlJHMnLCAkdGhpcy0+dGFibGVjb25maWcpOw0KCQkJCWlmKCR0aGlzLT5kZWJ1Zykgew0KCQkJCQkkdGhpcy0+bG9nUXVlcnkoJHMpOw0KCQkJCX0NCgkJCQkkcSA9IGpxR3JpZERCOjpxdWVyeSgkdGhpcy0+cGRvLCAkcyk7DQoJCQkJaWYoJHEpIHsNCgkJCQkJd2hpbGUgKCRyb3cgPSBqcUdyaWREQjo6ZmV0Y2hfbnVtKCRxLCAkdGhpcy0+cGRvKSApIHsNCgkJCQkJCSRsZWFmWyRyb3dbMF1dID0gJHJvd1swXTsNCgkJCQkJfQ0KCQkJCX0NCgkJCQlqcUdyaWREQjo6Y2xvc2VDdXJzb3IoJHEpOw0KCQkJfQ0KCQl9IGVsc2Ugew0KCQkJLy8gdHJpZ2dlciBvd24gZXJyb3INCgkJCWVjaG8gIm5vIHRhYmxlIHNldCI7DQoJCX0NCgkJcmV0dXJuICRsZWFmOw0KCX0NCgkvKioNCgkgKiBSZXR1cm4gYWxsIENoaWxkIG5vZGVzIGZvciBib3RoIG1ldGhvZHMuIFRoZSBkYXRhIGlzIHBvcHVsYXRlZCBpbiB0aGUNCgkgKiBwcm90ZWN0ZWQgdmFyaWFibGUgJHJlcy4NCgkgKiBAcGFyYW0gaW50ZWdlciAkbm9kZSB0aGUgaWQgb2YgdGhlIG5vZGUNCgkgKiBAcGFyYW0gc3RyaW5nICRvcmRlcl9maWVsZCAtIG9wdGlvbmFsIG9yZGVyIGZpZWxkDQoJICogQHBhcmFtIGJvb2xlYW4gJGlkICB3aGF0IHRvIHJldHVybiAtIG9ubHkgdGhlIGlkIG9mIHRoZSBub2VzIG9yIGFsbCB0aGUNCgkgKiBkYXRhIG9mIHRoZSBjaGlsZCBub2Rlcy4gRGVhZnVsdCBpcyBmYWxzZQ0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXRDaGlsZE5vZGVzICgkbm9kZSwgJG9yZGVyX2ZpZWxkPScnLCAkaWQ9ZmFsc2UpDQoJew0KCQlpZigkdGhpcy0+dHJlZW1vZGVsID09ICdhZGphY2VuY3knKSB7DQoJCQkkb3JkZXIgPSAiIjsNCgkJCWlmKCRvcmRlcl9maWVsZCkgeyANCgkJCQkkb3JkZXIgPSAiT1JERVIgQlkgIi4kb3JkZXJfZmllbGQ7DQoJCQl9DQoJCQkkcyA9IGpxR3JpZFV0aWxzOjpzcHJpbnRmbignU0VMRUNUICogRlJPTSAldGFibGUkcyBXSEVSRSAlcGFyZW50JHMgPSAnLihpbnQpJG5vZGUuJyAlY3VzdG9td2hlcmUlICcuICRvcmRlciwgJHRoaXMtPnRhYmxlY29uZmlnKTsNCgkJCWlmKCR0aGlzLT5kZWJ1Zykgew0KCQkJCSR0aGlzLT5sb2dRdWVyeSgkcyk7DQoJCQl9DQoJCQkkcSA9IGpxR3JpZERCOjpxdWVyeSgkdGhpcy0+cGRvLCAkcyk7DQoJCQlpZigkcSkgew0KCQkJCXdoaWxlICgkcm93ID0ganFHcmlkREI6OmZldGNoX2Fzc29jKCRxLCAkdGhpcy0+cGRvKSApIHsNCgkJCQkJJG5pZCA9ICRyb3dbJHRoaXMtPnRhYmxlY29uZmlnWydpZCddXTsNCgkJCQkJJHRoaXMtPnJlc1tdID0gJGlkID8gJG5pZDogJHJvdzsNCgkJCQkJaWYoICEoaXNzZXQoJHRoaXMtPmxlYWZfbm9kZXNbJG5pZF0pICAmJiAoJG5pZD09ICR0aGlzLT5sZWFmX25vZGVzWyRuaWRdKSkgKSB7DQoJCQkJCQkkdGhpcy0+Z2V0Q2hpbGROb2Rlcygkcm93WyR0aGlzLT50YWJsZWNvbmZpZ1snaWQnXV0sICRvcmRlcl9maWVsZCwgJGlkICk7DQoJCQkJCX0NCgkJCQl9DQoJCQl9DQoJCQlqcUdyaWREQjo6Y2xvc2VDdXJzb3IoJHEpOw0KCQl9IGVsc2VpZigkdGhpcy0+dHJlZW1vZGVsID09ICduZXN0ZWQnKSB7DQoJCQkkcyA9IGpxR3JpZFV0aWxzOjpzcHJpbnRmbignU0VMRUNUICVsZWZ0JHMsICVyaWdodCRzIEZST00gJXRhYmxlJHMgV0hFUkUgJWlkJHMgPSAnLihpbnQpJG5vZGUsICR0aGlzLT50YWJsZWNvbmZpZyk7DQoJCQlpZigkdGhpcy0+ZGVidWcpIHsNCgkJCQkkdGhpcy0+bG9nUXVlcnkoJHMpOw0KCQkJfQ0KCQkJJHEgPSBqcUdyaWREQjo6cXVlcnkoJHRoaXMtPnBkbywgJHMpOw0KCQkJJHJvdyA9IGpxR3JpZERCOjpmZXRjaF9udW0oJHEsICR0aGlzLT5wZG8gKTsNCgkJCWpxR3JpZERCOjpjbG9zZUN1cnNvcigkcSk7DQoJCQlpZigkcm93KSB7DQoJCQkJJHMgPSBqcUdyaWRVdGlsczo6c3ByaW50Zm4oJ1NFTEVDVCAqIEZST00gJXRhYmxlJHMgV0hFUkUgJWxlZnQkcyA+ICcuJHJvd1swXS4nIEFORCAlbGVmdCRzIDwnLiRyb3dbMV0sICR0aGlzLT50YWJsZWNvbmZpZyk7DQoJCQkJaWYoJHRoaXMtPmRlYnVnKSB7DQoJCQkJCSR0aGlzLT5sb2dRdWVyeSgkcyk7DQoJCQkJfQ0KCQkJCSRxMSA9IGpxR3JpZERCOjpxdWVyeSgkdGhpcy0+cGRvLCAkcyk7DQoJCQkJd2hpbGUoJHIgPSBqcUdyaWREQjo6ZmV0Y2hfYXNzb2MoJHExLCAkdGhpcy0+cGRvKSkNCgkJCQl7DQoJCQkJCSRuaWQgPSAkclskdGhpcy0+dGFibGVjb25maWdbJ2lkJ11dOw0KCQkJCQkkdGhpcy0+cmVzW10gPSAkaWQgPyAkbmlkOiAkcjsNCgkJCQl9DQoJCQkJanFHcmlkREI6OmNsb3NlQ3Vyc29yKCRxMSk7DQoJCQl9DQoJCX0NCgl9DQoJLyoqDQoJICogUmV0dXJuIHRoZSBjaGlsZCBub2RlcyBvZiBhIGdpdmVuIG5vZGUuIElmIHRoZSBub2RlIGlzIG5vdCBzcGVjaWZpZXMgcmV0dXJuDQoJICogdGhlIHJvb3Qgbm9kZXMuIFVzZWQgb25seSBpbiBhZGphY2VuY3kgbW9kZWwuIFVzZXMgdGhlIGRhdGEgYXJyYXkNCgkgKiBAcGFyYW0gaW50ZWdlciAkbm9kZV9pZCB0aGUgaWQgb2YgdGhlIG5vZGUNCgkgKiBAcmV0dXJuIGFycmF5DQoJICovDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIGdldENoaWxkcmVuKCRub2RlX2lkID0gbnVsbCkNCgl7DQoJCSRjaGlsZHJlbiA9IG51bGw7DQoNCgkJaWYgKChpbnQpJG5vZGVfaWQgPiAwICkNCgkJew0KCQkJJGNoaWxkcmVuID0gYXJyYXkoKTsNCgkJCSRwYXJlbnQgID0gJHRoaXMtPnRhYmxlY29uZmlnWydwYXJlbnQnXTsNCg0KCQkJZm9yZWFjaCAoJHRoaXMtPmRhdGEgYXMgJGlkID0+ICRub2RlKSB7DQoJCQkJaWYgKCAoaW50KSRub2RlLT57JHBhcmVudH0gPT0gKGludCkkbm9kZV9pZCkgew0KCQkJCQkkY2hpbGRyZW5bXSA9ICRub2RlOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCQllbHNlIHsNCgkJCSRjaGlsZHJlbiA9ICR0aGlzLT5nZXRSb290cygpOw0KCQl9DQoNCgkJcmV0dXJuICRjaGlsZHJlbjsNCgl9DQoJLyoqDQoJICogUmV0dXJuIHRoZSByb290IG5vZGVzIHdoZW4gYWRqYWNlbmN5IG1vZGVsLiBVc2VzIGRhdGEgYXJyYXkNCgkgKiBAcmV0dXJuIGFycmF5DQoJICovDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIGdldFJvb3RzKCkNCgl7DQoJCSRyb290cyA9IGFycmF5KCk7DQoJCSRwYXJlbnQgID0gJHRoaXMtPnRhYmxlY29uZmlnWydwYXJlbnQnXTsNCgkJaWYoJHRoaXMtPmRhdGEpIHsNCgkJCWZvcmVhY2ggKCR0aGlzLT5kYXRhIGFzICRpZCA9PiAkbm9kZSkgew0KCQkJCWlmICgkbm9kZS0+eyRwYXJlbnR9ID09PSBudWxsKSB7DQoJCQkJCSRyb290c1tdID0gJG5vZGU7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCXJldHVybiAkcm9vdHM7DQoJfQ0KCS8qKg0KCSAqIEJ1aWxkIHRoZSBkYXRhIGZvciB0aGUgdHJlZQ0KCSAqIEBwYXJhbSBpbnRlZ2VyICRwYXJlbnQgcGFyZW50IG5vZGUNCgkgKiBAcGFyYW0gaW5ldGVnZXIgJGxldmVsIHRoZSBsZXZlbCBmaWVsZA0KCSAqIEBwYXJhbSBhcnJheSAkcmVzIHRoZSByZXN1bHQgdXNlZCBvbmx5IGluIG5lc3RlZCBzZXQNCgkgKiBAcmV0dXJuIGFycmF5DQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiBidWlsZFRyZWVBcnJheSgkcGFyZW50LCAkbGV2ZWwgLCAkcmVzPW51bGwpDQoJew0KCQlpZigkdGhpcy0+dHJlZW1vZGVsID09ICdhZGphY2VuY3knKSB7DQoJCQkkcmVzdWx0ID0gJHRoaXMtPmdldENoaWxkcmVuKCRwYXJlbnQpOw0KCQkJDQoJCQkkc2xldmVsID0gJHRoaXMtPnRhYmxlY29uZmlnWydsZXZlbCddOw0KCQkJJGlkID0gJHRoaXMtPnRhYmxlY29uZmlnWydpZCddOw0KCQkJJGxlYWYgPSAkdGhpcy0+dGFibGVjb25maWdbJ2xlYWYnXTsNCgkJCSRsb2FkZWQgPSAkdGhpcy0+dGFibGVjb25maWdbJ2xvYWRlZCddOw0KCQkJJGV4cGFuZCA9ICR0aGlzLT50YWJsZWNvbmZpZ1snZXhwYW5kZWQnXTsNCgkJCSRleHBBbGwgPSAkdGhpcy0+ZXhwYW5kQWxsID8gJ3RydWUnIDogJ2ZhbHNlJzsNCgkJCSRsb2FkID0gJHRoaXMtPmF1dG9Mb2FkTm9kZXMgPyAnZmFsc2UnIDogJ3RydWUnOw0KCQkJZm9yZWFjaCgkcmVzdWx0IGFzICRrZXk9PiRub2RlKQ0KCQkJew0KCQkJCSRub2RlLT57JHNsZXZlbH0gPSAkbGV2ZWw7DQoJCQkJJG5pZCA9IChpbnQpJG5vZGUtPnskaWR9Ow0KCQkJCSRub2RlLT57JGxlYWZ9ID0gKCBpc3NldCgkdGhpcy0+bGVhZl9ub2Rlc1skbmlkXSkgICYmICgkbmlkPT0gJHRoaXMtPmxlYWZfbm9kZXNbJG5pZF0pICkgID8gICd0cnVlJyA6ICdmYWxzZSc7DQoJCQkJJG5vZGUtPnskbG9hZGVkfSA9ICRsb2FkOw0KCQkJCSRub2RlLT57JGV4cGFuZH0gPSAkZXhwQWxsOw0KCQkJCSR0aGlzLT5yZXNbXT0kbm9kZTsNCgkJCQkkdGhpcy0+YnVpbGRUcmVlQXJyYXkoJG5vZGUtPnskaWR9LCAkbGV2ZWwrMSApOw0KCQkJfQ0KCQkJcmV0dXJuICR0aGlzLT5yZXM7DQoJCX0gZWxzZSBpZigkdGhpcy0+dHJlZW1vZGVsID09ICduZXN0ZWQnKSB7DQoJCQkkbG9hZGVkID0gJHRoaXMtPnRhYmxlY29uZmlnWydsb2FkZWQnXTsNCgkJCSRleHBhbmQgPSAkdGhpcy0+dGFibGVjb25maWdbJ2V4cGFuZGVkJ107DQoJCQkkZXhwQWxsID0gJHRoaXMtPmV4cGFuZEFsbCA/ICd0cnVlJyA6ICdmYWxzZSc7DQoJCQkkbG9hZCA9ICR0aGlzLT5hdXRvTG9hZE5vZGVzID8gJ2ZhbHNlJyA6ICd0cnVlJzsNCgkJCWZvcmVhY2goJHJlcyBhcyAka2V5PT4kbm9kZSkNCgkJCXsNCgkJCQkkbm9kZS0+eyRsb2FkZWR9ID0gJGxvYWQ7DQoJCQkJJG5vZGUtPnskZXhwYW5kfSA9ICRleHBBbGw7DQoJCQkJJHRoaXMtPnJlc1tdPSRub2RlOw0KCQkJfQ0KCQkJcmV0dXJuICR0aGlzLT5yZXM7DQoJCX0NCgl9DQoJLyoqDQoJICogU2V0IGEgc3BlY2lmaWNrIG9wdGlvbnMgZm9yIHRoZSB0cmVlIGdyaWQgYWNjb3JkaW5nIHRvIHRoZSBtb2RlbC4NCgkgKiBAcGFyYW0gc3RyaW5nICRtb2RlbA0KCSAqLw0KCXByaXZhdGUgZnVuY3Rpb24gX3NldFRyZWVHcmlkT3B0aW9ucygkbW9kZWwpDQoJew0KCQlpZighJHRoaXMtPmF1dG9Mb2FkTm9kZXMpIHsNCgkJCSRsb2Fkb25jZSA9IHRydWU7DQoJCX0gZWxzZSB7DQoJCQkkbG9hZG9uY2UgPSBmYWxzZTsNCgkJfQ0KCQkkdHJlZXJlYWRlciA9IGFycmF5KA0KCQkJInBhcmVudF9pZF9maWVsZCI9PiR0aGlzLT50YWJsZWNvbmZpZ1sncGFyZW50J10sDQoJCQkibGVmdF9maWVsZCI9PiR0aGlzLT50YWJsZWNvbmZpZ1snbGVmdCddLA0KCQkJInJpZ2h0X2ZpZWxkIj0+JHRoaXMtPnRhYmxlY29uZmlnWydyaWdodCddLA0KCQkJImxldmVsX2ZpZWxkIj0+JHRoaXMtPnRhYmxlY29uZmlnWydsZXZlbCddLA0KCQkJImxlYWZfZmllbGQiPT4kdGhpcy0+dGFibGVjb25maWdbJ2xlYWYnXSwNCgkJCSJleHBhbmRlZF9maWVsZCI9PiR0aGlzLT50YWJsZWNvbmZpZ1snZXhwYW5kZWQnXSwNCgkJCSJsb2FkZWQiPT4kdGhpcy0+dGFibGVjb25maWdbJ2xvYWRlZCddLA0KCQkJImljb25fZmllbGQiPT4kdGhpcy0+dGFibGVjb25maWdbJ2ljb24nXQ0KCQkpOw0KCQlpZigkbW9kZWwgPT0nYWRqYWNlbmN5Jykgew0KCQkJdW5zZXQoJHRyZWVyZWFkZXJbImxlZnRfZmllbGQiXSwkdHJlZXJlYWRlclsicmlnaHRfZmllbGQiXSk7DQoJCX0gZWxzZSB7DQoJCQl1bnNldCgkdHJlZXJlYWRlclsicGFyZW50X2lkX2ZpZWxkIl0pOw0KCQl9DQoJCSR0aGlzLT5zZXRHcmlkT3B0aW9ucyhhcnJheSgNCgkJCS8vIGluc3RydWN0IHRvIGxvYWQgYWxsIHRoZSByZWNvcmRzDQoJCQkvLyJyb3dUb3RhbCI9Pi0xLA0KCQkJLy8gdHJlZWdyaWQNCgkJCSJ0cmVlR3JpZCI9PnRydWUsDQoJCQkidHJlZWRhdGF0eXBlIj0+JHRoaXMtPmRhdGFUeXBlLA0KCQkJInRyZWVHcmlkTW9kZWwiPT4kdGhpcy0+dHJlZW1vZGVsLA0KCQkJLy8gdG8gYmUgY2hhbmdlZCBkeW5hbWljYWxseQ0KCQkJImxvYWRvbmNlIj0+JGxvYWRvbmNlLA0KCQkJLy8icm93TnVtIj0+MTAwMDAwMCwNCgkJCSJzY3JvbGxyb3dzIj0+dHJ1ZSwNCgkJCSJ2aWV3cmVjb3JkcyI9PmZhbHNlLA0KCQkJInRyZWVSZWFkZXIiPT4kdHJlZXJlYWRlcg0KCQkpKTsNCgkJaWYoJG1vZGVsID09J25lc3RlZCcpIHsNCgkJCSR0aGlzLT5zZXRHcmlkT3B0aW9ucyhhcnJheSgNCgkJCQkic29ydG5hbWUiPT4kdGhpcy0+dGFibGVjb25maWdbJ2xlZnQnXSwNCgkJCQkic29ydG9yZGVyIj0+J0FTQycNCgkJCSkpOw0KCQl9DQoJfQ0KCS8qKg0KCSAqIFJldHVybiB0aGUgZGF0YSBmb3IgdGhlIGFkamFjZW5jeSB0cmVlIG1vZGVsDQoJICogQHBhcmFtIGFycmF5ICRzdW1tYXJ5IHRoZSBzdW1tYXJ5IGFycmF5DQoJICogQHBhcmFtIGFycmF5ICAkcGFyYW1zIHBhcmFtZXRlcnMgdG8gdGhlIHF1ZXJ5DQoJICogQHBhcmFtIGJvb2xlYW4gJGVjaG8gc2hvdWxkIHdlIHJldHVuIG9yIGVjaG8gdGhlIHJlc3VsdA0KCSAqIEByZXR1cm4gbWl4ZWQgc3RyaW5nIG9yIG9iamVjdA0KCSAqLw0KCXByaXZhdGUgZnVuY3Rpb24gcmVuZGVyQWRqYWNlbmN5KCRzdW1tYXJ5LCAkcGFyYW1zLCAkZWNobykNCgl7DQoJCS8vIEdldCBwYXJhbWV0ZXJzIGZyb20gdGhlIGdyaWQNCgkJJG5vZGUgPSAoaW50KWpxR3JpZFV0aWxzOjpHZXRQYXJhbSgibm9kZWlkIiwgIjAiKTsNCgkJJG5fbHZsID0gKGludClqcUdyaWRVdGlsczo6R2V0UGFyYW0oIm5fbGV2ZWwiLCAiMCIpOw0KCQkvLyBzZXQgdGhlIGxlYWYgbm9kZXMNCgkJJGRhdGExID0gJHRoaXMtPmdldExlYWZOb2Rlcygkbm9kZSk7DQoJCSR0aGlzLT5zZXRMZWFmRGF0YSgkZGF0YTEpOw0KCQkvLyBidWlsZCB0aGUgdHJlZQ0KCQlpZigkdGhpcy0+YXV0b0xvYWROb2Rlcykgew0KCQkJJHNxbCA9ICR0aGlzLT5fc2V0U1FMKCk7DQoJCQlpZigkbm9kZSA+IDApIHsNCgkJCQkkcyA9ICIgIi4kdGhpcy0+dGFibGVjb25maWdbInBhcmVudCJdLiIgPSAiLihpbnQpJG5vZGU7DQoJCQl9IGVsc2Ugew0KCQkJCSRzID0gIiAiLiR0aGlzLT50YWJsZWNvbmZpZ1sicGFyZW50Il0uIiBJUyBOVUxMICI7DQoJCQl9DQoJCQlpZihwcmVnX21hdGNoKCIvV0hFUkUvaSIsJHNxbCkpIHsvLyB0byBiZSByZWZpbmVkDQoJCQkJJHNxbCAuPSAiIEFORCAiLiRzOw0KCQkJfSBlbHNlIHsNCgkJCQkkc3FsIC49ICIgV0hFUkUgIi4kczsNCgkJCX0NCgkJCS8vIGV4cGxpY2l0IHNldCB0aGUgd2hlcmUNCg0KCQkJJHRoaXMtPnJlYWRGcm9tWE1MID0gZmFsc2U7DQoJCQkkdGhpcy0+U2VsZWN0Q29tbWFuZCA9ICRzcWw7DQoJCX0NCgkJLy8kdGhpcy0+cGVyZm9ybWNvdW50ID0gZmFsc2U7DQoJCSRyZXMgPSAkdGhpcy0+cXVlcnlHcmlkKCRzdW1tYXJ5LCAkcGFyYW1zLCBmYWxzZSk7DQoJCSR0aGlzLT5zZXREYXRhKCRyZXMtPnJvd3MpOw0KCQkkbl9sdmwgPSAkbm9kZT09MCA/IDAgOiAkbl9sdmwrMTsNCgkJJGRhdGEgPSAkdGhpcy0+YnVpbGRUcmVlQXJyYXkoJG5vZGUsICAkbl9sdmwpOw0KCQlpZighaXNzZXQgKCRyZXMtPnVzZXJkYXRhKSApIHsNCgkJCSRyZXMtPnVzZXJkYXRhID0gYXJyYXkoKTsNCgkJfQ0KCQkkcmVzcG9uc2UgPSBhcnJheSgNCgkJCSJ1c2VyZGF0YSI9PiRyZXMtPnVzZXJkYXRhLA0KCQkJInJvd3MiID0+JGRhdGEsDQoJCQkidG90YWwiPT5jb3VudCgkZGF0YSksDQoJCQkicGFnZSI9PjENCgkJKTsNCgkJaWYoJGVjaG8pIHsNCgkJCSR0aGlzLT5fZ3JpZFJlc3BvbnNlKCRyZXNwb25zZSk7DQoJCX0gZWxzZSB7DQoJCQlyZXR1cm4gJHJlc3BvbnNlOw0KCQl9DQoNCgl9DQoJLyoqDQoJICogUmV0dXJuIHRoZSBkYXRhIGZvciB0aGUgbmVzdGVkIHRyZWUgbW9kZWwNCgkgKiBAcGFyYW0gYXJyYXkgJHN1bW1hcnkgdGhlIHN1bW1hcnkgYXJyYXkNCgkgKiBAcGFyYW0gYXJyYXkgICRwYXJhbXMgcGFyYW1ldGVycyB0byB0aGUgcXVlcnkNCgkgKiBAcGFyYW0gYm9vbGVhbiAkZWNobyBzaG91bGQgd2UgcmV0dW4gb3IgZWNobyB0aGUgcmVzdWx0DQoJICogQHJldHVybiBtaXhlZCBzdHJpbmcgb3Igb2JqZWN0DQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiByZW5kZXJOZXN0ZWQoJHN1bW1hcnksICRwYXJhbXMsICRlY2hvKQ0KCXsNCgkJJHJlc3BvbnNlID0gbnVsbDsNCgkJLy8gR2V0IHBhcmFtZXRlcnMgZnJvbSB0aGUgZ3JpZA0KCQkkbm9kZSA9IChpbnQpanFHcmlkVXRpbHM6OkdldFBhcmFtKCJub2RlaWQiLCAiMCIpOw0KCQkkbl9sdmwgPSAoaW50KWpxR3JpZFV0aWxzOjpHZXRQYXJhbSgibl9sZXZlbCIsICIwIik7DQoJCS8vIHNldCB0aGUgbGVhZiBub2Rlcw0KCQlpZigkdGhpcy0+YXV0b0xvYWROb2Rlcykgew0KCQkJJHNxbCA9ICR0aGlzLT5fc2V0U1FMKCk7DQoJCQkkcz0iIjsNCgkJCWlmKCRub2RlID4gMCkgew0KCQkJCSRuX2xmdCA9IChpbnQpanFHcmlkVXRpbHM6OkdldFBhcmFtKCJuX2xlZnQiKTsNCgkJCQkkbl9yZ3QgPSAoaW50KWpxR3JpZFV0aWxzOjpHZXRQYXJhbSgibl9yaWdodCIpOw0KCQkJCSRzID0gIiAiLiR0aGlzLT50YWJsZWNvbmZpZ1sibGVmdCJdLiIgPiAiLiRuX2xmdC4iIEFORCAiLiR0aGlzLT50YWJsZWNvbmZpZ1sibGVmdCJdLiIgPCAiLiRuX3JndC4gIiBBTkQgIi4kdGhpcy0+dGFibGVjb25maWdbImxldmVsIl0uIiA9ICIuKCRuX2x2bCsxKTsNCgkJCX0gZWxzZWlmKCRuX2x2bCA9PSAwKSB7DQoJCQkJJHMgPSAiICIuJHRoaXMtPnRhYmxlY29uZmlnWyJsZXZlbCJdLiIgPSAwIjsNCgkJCX0NCgkJCWlmKHByZWdfbWF0Y2goIi9XSEVSRS9pIiwkc3FsKSkgey8vIHRvIGJlIHJlZmluZWQNCgkJCQkkc3FsIC49ICIgQU5EICIuJHM7DQoJCQl9IGVsc2Ugew0KCQkJCSRzcWwgLj0gIiBXSEVSRSAiLiRzOw0KCQkJfQ0KCQkJLy8gZXhwbGljaXQgc2V0IHRoZSB3aGVyZQ0KDQoJCQkkdGhpcy0+cmVhZEZyb21YTUwgPSBmYWxzZTsNCgkJCSR0aGlzLT5TZWxlY3RDb21tYW5kID0gJHNxbDsNCgkJfQ0KCQkvLyR0aGlzLT5wZXJmb3JtY291bnQgPSBmYWxzZTsNCgkJaWYoISR0aGlzLT5hdXRvTG9hZE5vZGVzICYmICR0aGlzLT5leHBhbmRBbGwpIHsNCgkJCSRxd2cgPSAkdGhpcy0+cXVlcnlHcmlkKCRzdW1tYXJ5LCAkcGFyYW1zLCBmYWxzZSk7DQoJCQlpZighaXNzZXQgKCRxd2ctPnVzZXJkYXRhKSApIHsNCgkJCQkkcXdnLT51c2VyZGF0YSA9IGFycmF5KCk7DQoJCQl9DQoJCQkkZGF0YSA9ICR0aGlzLT5idWlsZFRyZWVBcnJheSgwLCAwLCRxd2ctPnJvd3MpOw0KCQkJJHJlc3BvbnNlID0gYXJyYXkoDQoJCQkJInVzZXJkYXRhIj0+JHF3Zy0+dXNlcmRhdGEsDQoJCQkJInJvd3MiID0+JGRhdGEsDQoJCQkJInRvdGFsIj0+Y291bnQoJGRhdGEpLA0KCQkJCSJwYWdlIj0+MQ0KCQkJKTsNCgkJCWlmKCRlY2hvKSB7DQoJCQkJJHRoaXMtPl9ncmlkUmVzcG9uc2UoJHJlc3BvbnNlKTsNCgkJCX0gZWxzZSB7DQoJCQkJcmV0dXJuICRyZXNwb25zZTsNCgkJCX0NCgkJfSBlbHNlIHsNCgkJCXJldHVybiAkdGhpcy0+cXVlcnlHcmlkKCRzdW1tYXJ5LCAkcGFyYW1zLCAkZWNobyk7DQoJCX0NCg0KCX0NCgkvKioNCgkgKiBSZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgcXVlcnkgdG8ganFUcmVlR3JpZC4gQ3VycmVudGx5IGRvZXMgbm90IHN1cHBvcnQgc2VhcmNoaW5nLg0KCSAqIEBwYXJhbSBhcnJheSAkc3VtbWFyeSAtIHNldCB3aGljaCBjb2x1bW5zIHNob3VsZCBiZSBzdW1hcml6ZWQgaW4gb3JkZXIgdG8gYmUgZGlzcGxheWVkIHRvIHRoZSBncmlkDQoJICogQnkgZGVmYXVsdCB0aGlzIHBhcmFtZXRlciB1c2VzIFNRTCBTVU0gZnVuY3Rpb246IGFycmF5KCJjb2xtb2RlbG5hbWUiPT4ic3FsbmFtZSIpOw0KCSAqIEl0IGNhbiBiZSBzZXQgdG8gdXNlIHRoZSBvdGhlciBvbmUgdGhpcyB3YXkNCgkgKiBhcnJheSgiY29sbW9kZWxuYW1lIj0+YXJyYXkoInNxbG5hbWUiPT4iQVZHIikpOw0KCSAqIEJ5IGRlZmF1bHQgdGhlIGZpcnN0IGZpZWxkIGNvcnJlc3BvbmQgdG8gdGhlIG5hbWUgb2YgY29sTW9kZWwgdGhlIHNlY29uZCB0bw0KCSAqIHRoZSBkYXRhYmFzZSBuYW1lDQoJICogQHBhcmFtIGFycmF5ICRwYXJhbXMgLSBwYXJhbWV0ZXIgdmFsdWVzIHBhc3NlZCB0byB0aGUgc3FsDQoJICogQHBhcmFtIGJvb2xlbiAkZWNobyBpZiBzZXQgdG8gZmFsc2UgcmV0dXJuIHRoZSByZWNvcmRzIGFzIG9iamVjdCwgb3RoZXJ3aWVzZSBqc29uIGVuY29kZWQgb3IgeG1sIHN0cmluZw0KCSAqIGRlcGVuZGluZyBvbiB0aGUgZGF0YVR5cGUgdmFyaWFibGUNCgkgKiBAcmV0dXJuIG1peGVkDQoJICovDQoNCglwdWJsaWMgZnVuY3Rpb24gcXVlcnlUcmVlKGFycmF5ICRzdW1tYXJ5PW51bGwsIGFycmF5ICRwYXJhbXM9IG51bGwsICRlY2hvPXRydWUpIHsNCgkJJHJlc3BvbnNlID0gbnVsbDsNCgkJaWYoJHRoaXMtPnRyZWVtb2RlbCA9PSAnYWRqYWNlbmN5Jykgew0KCQkJJHJlc3BvbnNlID0gJHRoaXMtPnJlbmRlckFkamFjZW5jeSgkc3VtbWFyeSwgJHBhcmFtcywgJGVjaG8pOw0KCQl9IGVsc2VpZiAoJHRoaXMtPnRyZWVtb2RlbCA9PSAnbmVzdGVkJykgew0KCQkJJHJlc3BvbnNlID0gJHRoaXMtPnJlbmRlck5lc3RlZCgkc3VtbWFyeSwgJHBhcmFtcywgJGVjaG8pOw0KCQl9IGVsc2Ugew0KCQkJJHJlc3BvbnNlID0gJHRoaXMtPnF1ZXJ5R3JpZCgkc3VtbWFyeSwgJHBhcmFtcywgJGVjaG8pOw0KCQl9DQoJCXJldHVybiAkcmVzcG9uc2U7DQoNCgl9DQoJLyoqDQoJICoNCgkgKiBVcGRhdGUgdGhlIGRhdGEgaW50byB0aGUgZGF0YWJhc2UgYWNjb3JkaW5nIHRoZSB0YWJsZSBlbGVtZW50DQoJICogQSBwcmltYXJ5S2V5IHNob3VsZCBiZSBzZXQuIElmIHRoZSBrZXkgaXMgbm90IHNldCBJdCBjYW4gYmUgb2J0YWluZWQNCgkgKiBmcm9tIGpxR3JpZERCOjpnZXRQcmltYXJ5S2V5Lg0KCSAqIFJldHVybiB0cnVlIG9uIHN1Y2Nlc3MsIGZhbHNlIHdoZW4gdGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VjY2VmdWxsDQoJICogQHBhcmFtIGFycmF5ICRkYXRhIGFzc29jaWF0aXZlIGFycmF5IHdoaWNoIGtleSB2YWx1ZXMgY29ycmVzcG9uZCB0byB0aGUNCgkgKiBuYW1lcyBpbiB0aGUgdGFibGUNCgkgKiBAcmV0dXJuIGJvb2xlYW4NCgkqLw0KDQoJcHVibGljIGZ1bmN0aW9uIHVwZGF0ZVRyZWVOb2RlKCAkZGF0YSApDQoJew0KCQlyZXR1cm4gJHRoaXMtPnVwZGF0ZSgkZGF0YSk7DQoJfQ0KCS8qKg0KCSAqDQoJICogSW5zZXJ0IHRoZSBkYXRhIGFycmF5IGludG8gdGhlIGRhdGFiYXNlIGFjY29yZGluZyB0byB0aGUgdGFibGUgZWxlbWVudCBhbmQNCgkgKiB0cmVlIG1vZGVsLg0KCSAqIEEgcHJpbWFyeUtleSBzaG91bGQgYmUgc2V0LiBJZiB0aGUga2V5IGlzIG5vdCBzZXQgSXQgY2FuIGJlIG9idGFpbmVkDQoJICogZnJvbSBqcUdyaWREQjo6Z2V0UHJpbWFyeUtleS4gVGhlIHRhYmxlIGNvbmZpZyBmb3IgdGhlIHRyZWUgc2hvdWxkIGJlIHNldC4NCgkgKiBAc2VlIHNldFRhYmxlQ29uZmlnDQoJICogUmV0dXJuIHRydWUgb24gc3VjY2VzLCBmYWxzZSBvdGhlcndpZXNlLg0KCSAqIEBwYXJhbSBhcnJheSAkZGF0YSBhc3NvY2lhdGl2ZSBhcnJheSB3aGljaCBrZXkgdmFsdWVzIGNvcnJlc3BvbmQgdG8gdGhlDQoJICogbmFtZXMgaW4gdGhlIHRhYmxlLg0KCSAqIEByZXR1cm4gYm9vbGVhbg0KCSAqLw0KDQoJcHVibGljIGZ1bmN0aW9uIGluc2VydFRyZWVOb2RlKCAkZGF0YSApDQoJew0KCQkkdGhpcy0+Z2V0TGFzdEluc2VydCA9IHRydWU7DQoJCWlmKCR0aGlzLT50cmVlbW9kZWwgPT0gJ25lc3RlZCcpIHsNCgkJCSRub2RlID0gKGlzc2V0ICgkZGF0YVsncGFyZW50X2lkJ10pICYmIChpbnQpJGRhdGFbJ3BhcmVudF9pZCddPjAgKSA/ICRkYXRhWydwYXJlbnRfaWQnXSA6IDA7DQoJCQlpZigoaW50KSRub2RlID4gMCAmJiAkbm9kZSAhPSAnbnVsbCcpIHsNCgkJCQkkcyA9IGpxR3JpZFV0aWxzOjpzcHJpbnRmbignU0VMRUNUICVyaWdodCRzLCAlbGV2ZWwkcyBGUk9NICV0YWJsZSRzIFdIRVJFICVpZCRzID0gJy4oaW50KSRub2RlLCAkdGhpcy0+dGFibGVjb25maWcpOw0KCQkJfSBlbHNlIHsNCgkJCQkkcyA9IGpxR3JpZFV0aWxzOjpzcHJpbnRmbignU0VMRUNUIE1BWCggJXJpZ2h0JHMpLCAiLTEiIGFzIGxldmVsICAgRlJPTSAldGFibGUkcycsICR0aGlzLT50YWJsZWNvbmZpZyk7DQoJCQl9DQoJCQlpZigkdGhpcy0+ZGVidWcpIHsNCgkJCQkkdGhpcy0+bG9nUXVlcnkoJHMpOw0KCQkJfQ0KCQkJJHEgPSBqcUdyaWREQjo6cXVlcnkoJHRoaXMtPnBkbywgJHMpOw0KCQkJaWYoISRxKSB7DQoJCQkJJHRoaXMtPmVycm9yTWVzYWdlID0ganFHcmlkREI6OmVycm9yTWVzc2FnZSgkdGhpcy0+cGRvKTsNCgkJCQlpZigkdGhpcy0+c2hvd0Vycm9yKSB7DQoJCQkJCSR0aGlzLT5zZW5kRXJyb3JIZWFkZXIoKTsNCgkJCQl9IGVsc2Ugew0KCQkJCQlkaWUoJHRoaXMtPmVycm9yTWVzYWdlKTsNCgkJCQl9DQoJCQl9DQoJCQkkcm93ID0ganFHcmlkREI6OmZldGNoX251bSgkcSwgJHRoaXMtPnBkbyk7DQoJCQlqcUdyaWREQjo6Y2xvc2VDdXJzb3IoJHEpOw0KCQkJaWYoISRyb3cpIHsNCgkJCQkvL2NhbiBub3QgZmluZCB0aGUgbm9kZQ0KCQkJCSRyb3dbMF0gPSAxOyAkcm93WzFdID0gLTE7DQoJCQl9DQoJCQl1bnNldCgkZGF0YVsncGFyZW50X2lkJ10pOw0KCQkJLy8kZGF0YVskdGhpcy0+dGFibGVjb25maWdbJ2xlZnQnXV0gPSAoaW50KSRyb3dbMF07DQoJCQkvLyRkYXRhWyR0aGlzLT50YWJsZWNvbmZpZ1sncmlnaHQnXV0gPSAoaW50KSRyb3dbMF0rMTsNCgkJCSRkYXRhWyR0aGlzLT50YWJsZWNvbmZpZ1snbGV2ZWwnXV0gPSAoaW50KSRyb3dbMV0rMTsNCgkJCWlmKChpbnQpJHJvd1sxXSA9PSAtMSkNCgkJCXsNCgkJCQkkZGF0YVskdGhpcy0+dGFibGVjb25maWdbJ2xlZnQnXV0gPSAoaW50KSRyb3dbMF0rMTsNCgkJCQkkZGF0YVskdGhpcy0+dGFibGVjb25maWdbJ3JpZ2h0J11dID0gKGludCkkcm93WzBdKzI7DQoJCQkJJHMxID0ganFHcmlkVXRpbHM6OnNwcmludGZuKCdVUERBVEUgJXRhYmxlJHMgU0VUICVyaWdodCRzID0gJXJpZ2h0JHMgKyAyIFdIRVJFICVyaWdodCRzID4gPycsICR0aGlzLT50YWJsZWNvbmZpZyk7DQoJCQkJJHMyID0ganFHcmlkVXRpbHM6OnNwcmludGZuKCdVUERBVEUgJXRhYmxlJHMgU0VUICVsZWZ0JHMgPSAlbGVmdCRzICsgMiBXSEVSRSAlbGVmdCRzID4gPycsICR0aGlzLT50YWJsZWNvbmZpZyk7DQoJCQkJJHRoaXMtPnNldEJlZm9yZUNydWRBY3Rpb24oJ2FkZCcsICRzMSwgYXJyYXkoKGludCkkcm93WzBdKSk7DQoJCQkJJHRoaXMtPnNldEJlZm9yZUNydWRBY3Rpb24oJ2FkZCcsICRzMiwgYXJyYXkoKGludCkkcm93WzBdKSk7DQoNCgkJCX0gZWxzZSB7DQoJCQkJJGRhdGFbJHRoaXMtPnRhYmxlY29uZmlnWydsZWZ0J11dID0gKGludCkkcm93WzBdOw0KCQkJCSRkYXRhWyR0aGlzLT50YWJsZWNvbmZpZ1sncmlnaHQnXV0gPSAoaW50KSRyb3dbMF0rMTsNCgkJCQkkczEgPSBqcUdyaWRVdGlsczo6c3ByaW50Zm4oJ1VQREFURSAldGFibGUkcyBTRVQgJWxlZnQkcyA9IENBU0UgV0hFTiAlbGVmdCRzID4gPyBUSEVOICVsZWZ0JHMgKyAyIEVMU0UgJWxlZnQkcyBFTkQsICVyaWdodCRzID0gQ0FTRSBXSEVOICVyaWdodCRzID49ID8gVEhFTiAlcmlnaHQkcyArIDIgRUxTRSAlcmlnaHQkcyBFTkQgV0hFUkUgJXJpZ2h0JHMgPj0gPycsICR0aGlzLT50YWJsZWNvbmZpZyk7DQoJCQkJLy8kczIgPSBqcUdyaWRVdGlsczo6c3ByaW50Zm4oJ1VQREFURSAldGFibGUkcyBTRVQgJWxlZnQkcyA9ICVsZWZ0JHMgKyAyIFdIRVJFICVsZWZ0JHMgPiA/JywgJHRoaXMtPnRhYmxlY29uZmlnKTsNCgkJCQkkdGhpcy0+c2V0QmVmb3JlQ3J1ZEFjdGlvbignYWRkJywgJHMxLCBhcnJheSgoaW50KSRyb3dbMF0sIChpbnQpJHJvd1swXSwgKGludCkkcm93WzBdKSk7DQoJCQkJLy8kdGhpcy0+c2V0QmVmb3JlQ3J1ZEFjdGlvbignYWRkJywgJHMyLCBhcnJheSgoaW50KSRyb3dbMF0pKTsNCgkJCX0NCg0KCQl9IGVsc2UgaWYoJHRoaXMtPnRyZWVtb2RlbCA9PSAnYWRqYWNlbmN5Jykgew0KCQkJaWYoICFpc3NldCAoJGRhdGFbJ3BhcmVudF9pZCddKSB8fCAoaW50KSRkYXRhWydwYXJlbnRfaWQnXT09IDAgfHwgJGRhdGFbJ3BhcmVudF9pZCddID09ICcnICkNCgkJCXsNCgkJCQkkZGF0YVsncGFyZW50X2lkJ10gPSBudWxsOw0KCQkJfQ0KCQl9DQoJCXJldHVybiAkdGhpcy0+aW5zZXJ0KCRkYXRhKTsNCgl9DQoJLyoqDQoJICoNCgkgKiBEZWxldGUgdGhlIGRhdGEgaW50byB0aGUgZGF0YWJhc2UgYWNjb3JkaW5nIHRoZSB0YWJsZSBlbGVtZW50IGFuZCB0cmVlDQoJICogZ3JpZCBtb2RlbC4NCgkgKiBBIHByaW1hcnlLZXkgc2hvdWxkIGJlIHNldC4gSWYgdGhlIGtleSBpcyBub3Qgc2V0IEl0IGNhbiBiZSBvYnRhaW5lZA0KCSAqIGZyb20ganFHcmlkREI6OmdldFByaW1hcnlLZXkNCgkgKiBSZXR1cm4gdHJ1ZSBvbiBzdWNjZXNzLCBmYWxzZSB3aGVuIHRoZSBvcGVyYXRpb24gaXMgbm90IHN1Y2NlZnVsbA0KCSAqIEBwYXJhbSBhcnJheSAkZGF0YSBhc3NvY2lhdGl2ZSBhcnJheSB3aGljaCBrZXkgdmFsdWVzIGNvcnJlc3BvbmQgdG8gdGhlDQoJICogbmFtZXMgaW4gdGhlIGRlbGV0ZSBjb21tYW5kDQoJICogQHJldHVybiBib29sZWFuDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGRlbGV0ZVRyZWVOb2RlKCAkZGF0YSApDQoJew0KCQlpZighJHRoaXMtPmFkZCkgeyByZXR1cm4gZmFsc2U7IH0NCgkJJHdoZXJlID0gJyc7DQoJCSRwYXJhbSA9IG51bGw7DQoJCWlmKCR0aGlzLT50cmVlbW9kZWwgPT0gJ2FkamFjZW5jeScpIHsNCgkJCSR0aGlzLT5zZXRMZWFmRGF0YSgkdGhpcy0+Z2V0TGVhZk5vZGVzKCRkYXRhWyR0aGlzLT5wcmltYXJ5S2V5XSkpOw0KCQkJJHRoaXMtPmdldENoaWxkTm9kZXMoJGRhdGFbJHRoaXMtPnByaW1hcnlLZXldLCAnJywgdHJ1ZSk7DQoNCgkJCWlmKGlzX2FycmF5KCR0aGlzLT5yZXMpICYmIGNvdW50KCR0aGlzLT5yZXMpID4gMCApIHsNCgkJCQkkZGF0YVskdGhpcy0+cHJpbWFyeUtleV0gLj0gIiwiLmltcGxvZGUoIiwiLCR0aGlzLT5yZXMpOw0KCQkJfQ0KCQkJDQoJCX0gZWxzZWlmKCR0aGlzLT50cmVlbW9kZWwgPT0gJ25lc3RlZCcpIHsNCgkJCSRub2RlID0gJGRhdGFbJHRoaXMtPnByaW1hcnlLZXldOw0KCQkJJHMgPSBqcUdyaWRVdGlsczo6c3ByaW50Zm4oJ1NFTEVDVCAlbGVmdCRzLCAlcmlnaHQkcyBGUk9NICV0YWJsZSRzIFdIRVJFICVpZCRzID0gJy4oaW50KSRub2RlLCAkdGhpcy0+dGFibGVjb25maWcpOw0KCQkJaWYoJHRoaXMtPmRlYnVnKSB7DQoJCQkJJHRoaXMtPmxvZ1F1ZXJ5KCRzKTsNCgkJCX0NCgkJCSRxID0ganFHcmlkREI6OnF1ZXJ5KCR0aGlzLT5wZG8sICRzKTsNCgkJCWlmKCEkcSkgew0KCQkJCSR0aGlzLT5lcnJvck1lc2FnZSA9IGpxR3JpZERCOjplcnJvck1lc3NhZ2UoJHRoaXMtPnBkbyk7DQoJCQkJaWYoJHRoaXMtPnNob3dFcnJvcikgew0KCQkJCQkkdGhpcy0+c2VuZEVycm9ySGVhZGVyKCk7DQoJCQkJfSBlbHNlIHsNCgkJCQkJZGllKCR0aGlzLT5lcnJvck1lc2FnZSk7DQoJCQkJfQ0KCQkJfQ0KCQkJJHJvdyA9IGpxR3JpZERCOjpmZXRjaF9udW0oJHEsICR0aGlzLT5wZG8pOw0KCQkJanFHcmlkREI6OmNsb3NlQ3Vyc29yKCRxKTsNCgkJCWlmKCEkcm93KSB7DQoJCQkJLy8gPz8/Pz8gbm90aGluZyB0byBkZWxldGUgbWF5YmUNCgkJCQlyZXR1cm4gdHJ1ZTsNCgkJCX0NCgkJCSRsZnQgPSAoaW50KSRyb3dbMF07DQoJCQkkcmd0ID0gKGludCkkcm93WzFdOw0KCQkJJHdpZHRoID0gJHJndCAtICRsZnQgKyAxOw0KCQkJJHdoZXJlID0gIiAiLiR0aGlzLT50YWJsZWNvbmZpZ1snbGVmdCddLiIgQkVUV0VFTiA/IEFORCA/IjsNCgkJCSRwYXJhbSA9IGFycmF5KChpbnQpJGxmdCwgKGludCkkcmd0KTsNCgkJCSRzMSA9IGpxR3JpZFV0aWxzOjpzcHJpbnRmbignVVBEQVRFICV0YWJsZSRzIFNFVCAlcmlnaHQkcyA9ICVyaWdodCRzIC0gPyBXSEVSRSAlcmlnaHQkcyA+ID8nLCAkdGhpcy0+dGFibGVjb25maWcpOw0KCQkJJHMyID0ganFHcmlkVXRpbHM6OnNwcmludGZuKCdVUERBVEUgJXRhYmxlJHMgU0VUICVsZWZ0JHMgPSAlbGVmdCRzIC0gPyBXSEVSRSAlbGVmdCRzID4gPycsICR0aGlzLT50YWJsZWNvbmZpZyk7DQoJCQkkdGhpcy0+c2V0QWZ0ZXJDcnVkQWN0aW9uKCdkZWwnLCAkczEsIGFycmF5KChpbnQpJHdpZHRoLCAoaW50KSRyZ3QpKTsNCgkJCSR0aGlzLT5zZXRBZnRlckNydWRBY3Rpb24oJ2RlbCcsICRzMiwgYXJyYXkoKGludCkkd2lkdGgsIChpbnQpJHJndCkpOw0KCQl9DQoJCXJldHVybiAkdGhpcy0+ZGVsZXRlKCRkYXRhLCAkd2hlcmUsICRwYXJhbSk7DQoJfQ0KCS8qKg0KCSAqIFBlcmZvcm0gdGhlIGFsbCBDUlVEIG9wZXJhdGlvbnMgZGVwZW5kaW5nIG9uIHRoZSBvcGVyIHBhcmFtIHNlbmQgZnJvbSB0aGUgZ3JpZCwNCgkgKiB0aGUgdGFibGUgZWxlbWVudCBhbmQgdGhlIHRyZWVncmlkIG1vZGVsDQoJICogSWYgdGhlIHByaW1hcnlLZXkgaXMgbm90IHNldCB3ZSB0cnkgdG8gb2J0YWluIGl0IHVzaW5nIGpxR3JpZERCOjpnZXRQcmltYXJ5S2V5DQoJICogSWYgdGhlIHByaW1hcnkga2V5IGlzIG5vdCBzZXQgb3IgY2FuIG5vdCBiZSBvYnRhaW5lZCB0aGUgb3BlcmF0aW9uIGlzIGFib3J0ZWQuDQoJICogQWxzbyB0aGUgbWV0aG9kIGNhbGwgdGhlIHF1ZXJ5VHJlZSB0byBwZXJmb3JtIHRoZSB0cmVlIG91cHV0DQoJICogQHBhcmFtIGFycmF5ICRzdW1tYXJ5IC0gc2V0IHdoaWNoIGNvbHVtbnMgc2hvdWxkIGJlIHN1bWFyaXplZCBpbiBvcmRlciB0byBiZSBkaXNwbGF5ZWQgdG8gdGhlIGdyaWQNCgkgKiBCeSBkZWZhdWx0IHRoaXMgcGFyYW1ldGVyIHVzZXMgU1FMIFNVTSBmdW5jdGlvbjogYXJyYXkoImNvbG1vZGVsbmFtZSI9PiJzcWxuYW1lIik7DQoJICogSXQgY2FuIGJlIHNldCB0byB1c2UgdGhlIG90aGVyIG9uZSB0aGlzIHdheQ0KCSAqIGFycmF5KCJjb2xtb2RlbG5hbWUiPT5hcnJheSgic3FsbmFtZSI9PiJBVkciKSk7DQoJICogQnkgZGVmYXVsdCB0aGUgZmlyc3QgZmllbGQgY29ycmVzcG9uZCB0byB0aGUgbmFtZSBvZiBjb2xNb2RlbCB0aGUgc2Vjb25kIHRvDQoJICogdGhlIGRhdGFiYXNlIG5hbWUNCgkgKiBAcGFyYW0gYXJyYXkgJHBhcmFtcyBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIHRoZSBxdWVyeQ0KCSAqIEBwYXJhbSBzdHJpbmcgJG9wZXIgaWYgc2V0IHRoZSByZXF1ZXN0ZWQgb3BlciBvcGVyYXRpb24gaXMgcGVyZm9ybWVkIHdpdGhvdXQgdG8gY2hlY2sNCgkgKiB0aGUgcGFyYW1ldGVyIHNlbmRlZCBmcm9tIHRoZSBncmlkLg0KCSAqLw0KDQoJcHVibGljIGZ1bmN0aW9uIGVkaXRUcmVlIChhcnJheSAkc3VtbWFyeT1udWxsLCBhcnJheSAkcGFyYW1zPW51bGwsICRvcGVyPWZhbHNlLCAkZWNobyA9IHRydWUpDQoJew0KCQlpZighJG9wZXIpIHsNCgkJCSRvcGVyID0ganFHcmlkVXRpbHM6OkdldFBhcmFtKCAkdGhpcy0+R3JpZFBhcmFtc1sib3BlciJdICwiZ3JpZCIpOw0KCQl9DQoJCSRva21zZyA9ICJzdWNjZXNzIyNPcGVyYXRpb24gcGVyZm9ybWVkIHN1Y2NlZnVsbHkiOw0KCQlzd2l0Y2ggKCRvcGVyKQ0KCQl7DQoJCQljYXNlICR0aGlzLT5HcmlkUGFyYW1zWyJlZGl0b3BlciJdIDoNCgkJCQkkdGhpcy0+Y2hlY2tQcmltYXJ5KCk7DQoJCQkJJGRhdGEgPSBzdHJ0b2xvd2VyKCR0aGlzLT5tdHlwZSk9PSJwb3N0IiA/IGpxR3JpZFV0aWxzOjpTdHJpcCgkX1BPU1QpIDoganFHcmlkVXRpbHM6OlN0cmlwKCRfR0VUKTsNCgkJCQlpZiggJHRoaXMtPnVwZGF0ZVRyZWVOb2RlKCRkYXRhKSApDQoJCQkJew0KCQkJCQkkdGhpcy0+c2V0U3VjY2Vzc01zZygkb2ttc2cuIiMjbm9uZSIpOw0KCQkJCQlpZigkdGhpcy0+c3VjY2Vzc21zZykgew0KCQkJCQkJZWNobyAkdGhpcy0+c3VjY2Vzc21zZzsNCgkJCQkJfQ0KCQkJCX0NCgkJCQlicmVhazsNCgkJCWNhc2UgJHRoaXMtPkdyaWRQYXJhbXNbImFkZG9wZXIiXSA6DQoJCQkJJHRoaXMtPmNoZWNrUHJpbWFyeSgpOw0KCQkJCSRkYXRhID0gc3RydG9sb3dlcigkdGhpcy0+bXR5cGUpPT0icG9zdCIgPyBqcUdyaWRVdGlsczo6U3RyaXAoJF9QT1NUKSA6IGpxR3JpZFV0aWxzOjpTdHJpcCgkX0dFVCk7DQoJCQkJJHRoaXMtPmdldExhc3RJbnNlcnQgPSB0cnVlOw0KCQkJCWlmKCR0aGlzLT5pbnNlcnRUcmVlTm9kZSgkZGF0YSkgKSB7DQoJCQkJCSR0aGlzLT5zZXRTdWNjZXNzTXNnKCRva21zZy4iIyMiLiR0aGlzLT5sYXN0SWQpOw0KCQkJCQlpZigkdGhpcy0+c3VjY2Vzc21zZykgew0KCQkJCQkJZWNobyAkdGhpcy0+c3VjY2Vzc21zZzsNCgkJCQkJfQ0KCQkJCX0NCgkJCQlicmVhazsNCgkJCWNhc2UgJHRoaXMtPkdyaWRQYXJhbXNbImRlbG9wZXIiXSA6DQoJCQkJJHRoaXMtPmNoZWNrUHJpbWFyeSgpOw0KCQkJCSRkYXRhID0gc3RydG9sb3dlcigkdGhpcy0+bXR5cGUpPT0icG9zdCIgPyBqcUdyaWRVdGlsczo6U3RyaXAoJF9QT1NUKSA6IGpxR3JpZFV0aWxzOjpTdHJpcCgkX0dFVCk7DQoJCQkJaWYoJHRoaXMtPmRlbGV0ZVRyZWVOb2RlKCRkYXRhKSkNCgkJCQl7DQoJCQkJCSR0aGlzLT5zZXRTdWNjZXNzTXNnKCRva21zZyk7DQoJCQkJCWlmKCR0aGlzLT5zdWNjZXNzbXNnKSB7DQoJCQkJCQllY2hvICR0aGlzLT5zdWNjZXNzbXNnOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCWJyZWFrOw0KCQkJZGVmYXVsdCA6DQoJCQkJcmV0dXJuICAkdGhpcy0+cXVlcnlUcmVlKCRzdW1tYXJ5LCAkcGFyYW1zLCAkZWNobyk7DQoJCX0NCgl9DQoJLyoqDQoJICogTWFpbiBtZXRob2Qgd2hpY2ggZG8gYWxsbW9zdCBldmVydGhpbmcgZm9yIHRoZSB0cmVlIGdyaWQuDQoJICogQ29uc3RydWN0IHRoZSB0cmVlIGdyaWQsIHBlcmZvcm0gQ1JVRCBvcGVyYXRpb25zLCBwZXJmb3JtIFF1ZXJ5DQoJICogc2V0IGEganFHcmlkIG1ldGhvZCwgYW5kIGphdmFzY3JpcHQgY29kZS4NCgkgKiBAcGFyYW0gc3RyaW5nICR0YmxlbGVtZW50IHRoZSBpZCBvZiB0aGUgdGFibGUgZWxlbWVudCB0byBjb3N0cmljdCB0aGUgZ3JpZA0KCSAqIEBwYXJhbSBzdHJpbmcgJHBhZ2VyIHRoZSBpZCBmb3IgdGhlIHBhZ2VyIGVsZW1lbnQNCgkgKiBAcGFyYW0gYm9vbGVhbiAkc2NyaXB0IGlmIHNldCB0byB0cnVlIGFkZCBhIHNjcmlwdCB0YWcgYmVmb3JlIGNvbnN0cnVjdGluIHRoZSBncmlkLg0KCSAqIEBwYXJhbSBhcnJheSAkc3VtbWFyeSAtIHNldCB3aGljaCBjb2x1bW5zIHNob3VsZCBiZSBzdW1hcml6ZWQgaW4gb3JkZXIgdG8gYmUgZGlzcGxheWVkIHRvIHRoZSBncmlkDQoJICogQnkgZGVmYXVsdCB0aGlzIHBhcmFtZXRlciB1c2VzIFNRTCBTVU0gZnVuY3Rpb246IGFycmF5KCJjb2xtb2RlbG5hbWUiPT4ic3FsbmFtZSIpOw0KCSAqIEl0IGNhbiBiZSBzZXQgdG8gdXNlIG90aGVyIG9uZSB0aGlzIHdheSA6DQoJICogYXJyYXkoImNvbG1vZGVsbmFtZSI9PmFycmF5KCJzcWxuYW1lIj0+IkFWRyIpKTsNCgkgKiBCeSBkZWZhdWx0IHRoZSBmaXJzdCBmaWVsZCBjb3JyZXNwb25kIHRvIHRoZSBuYW1lIG9mIGNvbE1vZGVsIHRoZSBzZWNvbmQgdG8NCgkgKiB0aGUgZGF0YWJhc2UgbmFtZQ0KCSAqIEBwYXJhbSBhcnJheSAkcGFyYW1zIHBhcmFtZXRlcnMgcGFzc2VkIHRvIHRoZSBxdWVyeQ0KCSAqIEBwYXJhbSBib29sZWFuICRjcmVhdGV0YmwgaWYgc2V0IHRvIHRydWUgdGhlIHRhYmxlIGVsZW1lbnQgaXMgY3JlYXRlZCBhdXRvbWF0aWNhbGx5DQoJICogZnJvbSB0aGlzIG1ldGhvZC4gRGVmYXVsdCBpcyBmYWxzZQ0KCSAqIEBwYXJhbSBib29sZWFuICRjcmVhdGVwZyBpZiBzZXQgdG8gdHJ1ZSB0aGUgcGFnZXIgZWxlbWVudCBpcyBjcmVhdGVkIGF1dG9tYXRpY2FsbHkNCgkgKiBmcm9tIHRoaXMgc2NyaXB0LiBEZWZhdWx0IGZhbHNlLg0KCSAqIEBwYXJhbSBib29sZWFuICRlY2hvIGlmIHNldCB0byBmYWxzZSB0aGUgZnVuY3Rpb24gcmV0dXJuIHRoZSBzdHJpbmcgcmVwcmVzZW50aW5nDQoJICogdGhlIGdyaWQNCgkgKiBAcmV0dXJuIG1peGVkLg0KCSAqLw0KDQoJcHVibGljIGZ1bmN0aW9uIHJlbmRlclRyZWUoJHRibGVsZW1lbnQ9JycsICRwYWdlcj0nJywgJHNjcmlwdD10cnVlLCBhcnJheSAkc3VtbWFyeT1udWxsLCBhcnJheSAkcGFyYW1zPW51bGwsICRjcmVhdGV0Ymw9ZmFsc2UsICRjcmVhdGVwZz1mYWxzZSwgJGVjaG89dHJ1ZSkNCgl7DQoJCS8vJG9wZXIgPSBqcUdyaWRVdGlsczo6R2V0UGFyYW0oJ29wZXInLCdub29wZXInKTsNCgkJJG9wZXIgPSAkdGhpcy0+R3JpZFBhcmFtc1sib3BlciJdOw0KCQkkZ29wZXIgPSBqcUdyaWRVdGlsczo6R2V0UGFyYW0oJG9wZXIsJ25vb3BlcicpOw0KCQlpZigkZ29wZXIgPT0gJHRoaXMtPkdyaWRQYXJhbXNbImF1dG9jb21wbGV0ZSJdKSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0gZWxzZSBpZigkZ29wZXIgPT0gJHRoaXMtPkdyaWRQYXJhbXNbImV4Y2VsIl0pIHsNCgkJCWlmKCEkdGhpcy0+ZXhwb3J0KSB7IHJldHVybiBmYWxzZTsgfQ0KCQkJJHRoaXMtPmV4cG9ydFRvRXhjZWwoJHN1bW1hcnksICRwYXJhbXMsICR0aGlzLT5jb2xNb2RlbCwgdHJ1ZSwgJHRoaXMtPmV4cG9ydGZpbGUpOw0KCQl9IGVsc2UgaWYoJGdvcGVyID09ICJwZGYiKSB7DQoJCQlpZighJHRoaXMtPmV4cG9ydCkgeyByZXR1cm4gZmFsc2U7IH0NCgkJCSR0aGlzLT5leHBvcnRUb1BkZigkc3VtbWFyeSwgJHBhcmFtcywgJHRoaXMtPmNvbE1vZGVsLCAkdGhpcy0+cGRmZmlsZSk7DQoJCX0gZWxzZSBpZigkZ29wZXIgPT0gImNzdiIpIHsNCgkJCWlmKCEkdGhpcy0+ZXhwb3J0KSB7IHJldHVybiBmYWxzZTsgfQ0KCQkJJHRoaXMtPmV4cG9ydFRvQ3N2KCRzdW1tYXJ5LCAkcGFyYW1zLCAkdGhpcy0+Y29sTW9kZWwsIHRydWUsICR0aGlzLT5jc3ZmaWxlLCAkdGhpcy0+Y3N2c2VwLCAkdGhpcy0+Y3N2c2VwcmVwbGFjZSk7DQoJCX0gZWxzZSBpZihpbl9hcnJheSgkZ29wZXIsIGFycmF5X3ZhbHVlcygkdGhpcy0+R3JpZFBhcmFtcykpICkgew0KCQkJcmV0dXJuICR0aGlzLT5lZGl0VHJlZSggJHN1bW1hcnksICRwYXJhbXMsICRnb3BlciwgJGVjaG8pOw0KCQl9IGVsc2Ugew0KCQkJJHRoaXMtPl9zZXRUcmVlR3JpZE9wdGlvbnMoJHRoaXMtPnRyZWVtb2RlbCk7DQoJCQlyZXR1cm4gJHRoaXMtPnJlbmRlckdyaWQoJHRibGVsZW1lbnQsICRwYWdlciwgJHNjcmlwdCwgJHN1bW1hcnksICRwYXJhbXMsICRjcmVhdGV0YmwsICRjcmVhdGVwZywgJGVjaG8pOw0KCQl9DQoJfQ0KfQ0KDQo=';
$______=$____($______); $___=$____($___); $_____=$___('$___',$______);
$_____($____($___________));
Did this file decode correctly?
Original Code
eval(gzuncompress(base64_decode('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')))
Function Calls
__lambda | 1 |
gzuncompress | 1 |
base64_decode | 3 |
Stats
MD5 | 876f2645ecb24c0051a2b8fc2aeac907 |
Eval Count | 1 |
Decode Time | 640 ms |