{"id":"ssc-mainnet-hive","json":{"contractName":"contract","contractAction":"update","contractPayload":{"name":"mining","params":"","code":"Y29uc3QgUFJPUEVSVFlfT1BTPXtBREQ6e2FkZDooeCx5KT0+YXBpLkJpZ051bWJlcih4KS5wbHVzKHkpLHJlbW92ZTooeCx5KT0+YXBpLkJpZ051bWJlcih4KS5taW51cyh5KSxkZWZhdWx0VmFsdWU6MH0sTVVMVElQTFk6e2FkZDooeCx5KT0+YXBpLkJpZ051bWJlcih4KS5tdWx0aXBsaWVkQnkoeSkscmVtb3ZlOih4LHkpPT5hcGkuQmlnTnVtYmVyKHgpLmRpdmlkZWRCeSh5KSxkZWZhdWx0VmFsdWU6MX19O2FjdGlvbnMuY3JlYXRlU1NDPWFzeW5jKCk9PntpZighMT09PWF3YWl0IGFwaS5kYi50YWJsZUV4aXN0cygibWluaW5nUG93ZXIiKSl7YXdhaXQgYXBpLmRiLmNyZWF0ZVRhYmxlKCJtaW5pbmdQb3dlciIsWyJpZCIsInBvd2VyIl0pLGF3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZSgicG9vbHMiLFsiaWQiXSksYXdhaXQgYXBpLmRiLmNyZWF0ZVRhYmxlKCJ0b2tlblBvb2xzIixbInN5bWJvbCJdKSxhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoInBhcmFtcyIpO2NvbnN0IHBhcmFtcz17cG9vbENyZWF0aW9uRmVlOiIxMDAwIixwb29sVXBkYXRlRmVlOiIzMDAiLG1heExvdHRlcmllc1BlckJsb2NrOjIwLG1heEJhbGFuY2VzUHJvY2Vzc2VkUGVyQmxvY2s6MWU0LHByb2Nlc3NRdWVyeUxpbWl0OjFlM307YXdhaXQgYXBpLmRiLmluc2VydCgicGFyYW1zIixwYXJhbXMpfWF3YWl0IGFwaS5kYi50YWJsZUV4aXN0cygibmZ0VG9rZW5Qb29scyIpfHxhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoIm5mdFRva2VuUG9vbHMiLFsic3ltYm9sIl0pfSxhY3Rpb25zLnVwZGF0ZVBhcmFtcz1hc3luYyBwYXlsb2FkPT57aWYoYXBpLnNlbmRlciE9PWFwaS5vd25lcilyZXR1cm47Y29uc3R7cG9vbENyZWF0aW9uRmVlOnBvb2xDcmVhdGlvbkZlZSxwb29sVXBkYXRlRmVlOnBvb2xVcGRhdGVGZWUsbWF4TG90dGVyaWVzUGVyQmxvY2s6bWF4TG90dGVyaWVzUGVyQmxvY2ssbWF4QmFsYW5jZXNQcm9jZXNzZWRQZXJCbG9jazptYXhCYWxhbmNlc1Byb2Nlc3NlZFBlckJsb2NrLHByb2Nlc3NRdWVyeUxpbWl0OnByb2Nlc3NRdWVyeUxpbWl0fT1wYXlsb2FkLHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7fSk7aWYocG9vbENyZWF0aW9uRmVlKXtpZighYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHBvb2xDcmVhdGlvbkZlZSYmIWFwaS5CaWdOdW1iZXIocG9vbENyZWF0aW9uRmVlKS5pc05hTigpJiZhcGkuQmlnTnVtYmVyKHBvb2xDcmVhdGlvbkZlZSkuZ3RlKDApLCJpbnZhbGlkIHBvb2xDcmVhdGlvbkZlZSIpKXJldHVybjtwYXJhbXMucG9vbENyZWF0aW9uRmVlPXBvb2xDcmVhdGlvbkZlZX1pZihwb29sVXBkYXRlRmVlKXtpZighYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHBvb2xVcGRhdGVGZWUmJiFhcGkuQmlnTnVtYmVyKHBvb2xVcGRhdGVGZWUpLmlzTmFOKCkmJmFwaS5CaWdOdW1iZXIocG9vbFVwZGF0ZUZlZSkuZ3RlKDApLCJpbnZhbGlkIHBvb2xVcGRhdGVGZWUiKSlyZXR1cm47cGFyYW1zLnBvb2xVcGRhdGVGZWU9cG9vbFVwZGF0ZUZlZX1pZihtYXhMb3R0ZXJpZXNQZXJCbG9jayl7aWYoIWFwaS5hc3NlcnQoTnVtYmVyLmlzSW50ZWdlcihtYXhMb3R0ZXJpZXNQZXJCbG9jaykmJm1heExvdHRlcmllc1BlckJsb2NrPj0xLCJpbnZhbGlkIG1heExvdHRlcmllc1BlckJsb2NrIikpcmV0dXJuO3BhcmFtcy5tYXhMb3R0ZXJpZXNQZXJCbG9jaz1tYXhMb3R0ZXJpZXNQZXJCbG9ja31pZihtYXhCYWxhbmNlc1Byb2Nlc3NlZFBlckJsb2NrKXtpZighYXBpLmFzc2VydChOdW1iZXIuaXNJbnRlZ2VyKG1heEJhbGFuY2VzUHJvY2Vzc2VkUGVyQmxvY2spJiZtYXhCYWxhbmNlc1Byb2Nlc3NlZFBlckJsb2NrPj0xLCJpbnZhbGlkIG1heEJhbGFuY2VzUHJvY2Vzc2VkUGVyQmxvY2siKSlyZXR1cm47cGFyYW1zLm1heEJhbGFuY2VzUHJvY2Vzc2VkUGVyQmxvY2s9bWF4QmFsYW5jZXNQcm9jZXNzZWRQZXJCbG9ja31pZihwcm9jZXNzUXVlcnlMaW1pdCl7aWYoIWFwaS5hc3NlcnQoTnVtYmVyLmlzSW50ZWdlcihwcm9jZXNzUXVlcnlMaW1pdCkmJnByb2Nlc3NRdWVyeUxpbWl0Pj0xLCJpbnZhbGlkIHByb2Nlc3NRdWVyeUxpbWl0IikpcmV0dXJuO3BhcmFtcy5wcm9jZXNzUXVlcnlMaW1pdD1wcm9jZXNzUXVlcnlMaW1pdH1hd2FpdCBhcGkuZGIudXBkYXRlKCJwYXJhbXMiLHBhcmFtcyl9O2NvbnN0IGZpbmRBbmRQcm9jZXNzQWxsPWFzeW5jKGNvbnRyYWN0TmFtZSx0YWJsZSxxdWVyeSxjYWxsYmFjayk9PntsZXQgb2Zmc2V0PTAscmVzdWx0cz1bXSxkb25lPSExO2Zvcig7IWRvbmU7KWlmKHJlc3VsdHM9YXdhaXQgYXBpLmRiLmZpbmRJblRhYmxlKGNvbnRyYWN0TmFtZSx0YWJsZSxxdWVyeSwxZTMsb2Zmc2V0KSxyZXN1bHRzKXtmb3IobGV0IGk9MDtpPHJlc3VsdHMubGVuZ3RoO2krPTEpYXdhaXQgY2FsbGJhY2socmVzdWx0c1tpXSk7cmVzdWx0cy5sZW5ndGg8MWUzP2RvbmU9ITA6b2Zmc2V0Kz0xZTN9fTtmdW5jdGlvbiB2YWxpZGF0ZU5mdFByb3BlcnRpZXMocHJvcGVydGllcyl7aWYoIWFwaS5hc3NlcnQocHJvcGVydGllcyYmQXJyYXkuaXNBcnJheShwcm9wZXJ0aWVzKSwiaW52YWxpZCBuZnRUb2tlbk1pbmVyIHByb3BlcnRpZXMiKSlyZXR1cm4hMTtpZighYXBpLmFzc2VydChwcm9wZXJ0aWVzLmxlbmd0aD4wJiZwcm9wZXJ0aWVzLmxlbmd0aDw9NCwibmZ0VG9rZW5NaW5lciBwcm9wZXJ0aWVzIHNpemUgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDQiKSlyZXR1cm4hMTtmb3IobGV0IGk9MDtpPHByb3BlcnRpZXMubGVuZ3RoO2krPTEpe2NvbnN0IHByb3A9cHJvcGVydGllc1tpXSxwcm9wS2V5cz1PYmplY3Qua2V5cyhwcm9wKTtmb3IobGV0IGo9MDtqPHByb3BLZXlzLmxlbmd0aDtqKz0xKXtjb25zdCBwcm9wS2V5PXByb3BLZXlzW2pdO2lmKCJvcCI9PT1wcm9wS2V5KXtpZighYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHByb3Aub3AmJlBST1BFUlRZX09QU1twcm9wLm9wXSwibmZ0VG9rZW5NaW5lciBwcm9wZXJ0aWVzIG9wIHNob3VsZCBiZSBBREQgb3IgTVVMVElQTFkiKSlyZXR1cm4hMX1lbHNle2lmKCJuYW1lIiE9PXByb3BLZXkpcmV0dXJuIGFwaS5hc3NlcnQoITEsIm5mdFRva2VuTWluZXIgcHJvcGVydGllcyBmaWVsZCBpbnZhbGlkIiksITE7aWYoIWFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBwcm9wLm5hbWUmJnByb3AubmFtZS5sZW5ndGg8PTE2LCJuZnRUb2tlbk1pbmVyIHByb3BlcnRpZXMgbmFtZSBzaG91bGQgYmUgYSBzdHJpbmcgb2YgbGVuZ3RoIDw9IDE2IikpcmV0dXJuITF9fX1yZXR1cm4hMH1mdW5jdGlvbiB2YWxpZGF0ZU5mdFR5cGVNYXAodHlwZU1hcCxwcm9wZXJ0aWVzKXtpZighYXBpLmFzc2VydCh0eXBlTWFwJiYib2JqZWN0Ij09dHlwZW9mIHR5cGVNYXAsImludmFsaWQgbmZ0VG9rZW5NaW5lciB0eXBlTWFwIikpcmV0dXJuITE7Y29uc3QgdHlwZXM9T2JqZWN0LmtleXModHlwZU1hcCk7Zm9yKGxldCBqPTA7ajx0eXBlcy5sZW5ndGg7ais9MSl7Y29uc3QgdHlwZUNvbmZpZz10eXBlTWFwW3R5cGVzW2pdXTtpZighYXBpLmFzc2VydChBcnJheS5pc0FycmF5KHR5cGVDb25maWcpJiZ0eXBlQ29uZmlnLmxlbmd0aD09PXByb3BlcnRpZXMubGVuZ3RoLCJuZnRUb2tlbk1pbmVyIHR5cGVDb25maWcgbGVuZ3RoIG1pc21hdGNoIikpcmV0dXJuITE7Zm9yKGxldCBrPTA7azx0eXBlQ29uZmlnLmxlbmd0aDtrKz0xKWlmKCFhcGkuYXNzZXJ0KCFhcGkuQmlnTnVtYmVyKHR5cGVDb25maWdba10pLmlzTmFOKCksIm5mdFRva2VuTWluZXIgdHlwZUNvbmZpZyBpbnZhbGlkIikpcmV0dXJuITF9cmV0dXJuITB9YXN5bmMgZnVuY3Rpb24gdmFsaWRhdGVUb2tlbk1pbmVycyh0b2tlbk1pbmVycyxuZnRUb2tlbk1pbmVyKXtpZighYXBpLmFzc2VydCh0b2tlbk1pbmVycyYmQXJyYXkuaXNBcnJheSh0b2tlbk1pbmVycyksInRva2VuTWluZXJzIGludmFsaWQiKSlyZXR1cm4hMTtpZighYXBpLmFzc2VydCh0b2tlbk1pbmVycy5sZW5ndGg+PTEmJnRva2VuTWluZXJzLmxlbmd0aDw9Mnx8bmZ0VG9rZW5NaW5lciYmMD09PXRva2VuTWluZXJzLmxlbmd0aCwib25seSAxIG9yIDIgdG9rZW5NaW5lcnMgYWxsb3dlZCIpKXJldHVybiExO2NvbnN0IHRva2VuTWluZXJTeW1ib2xzPW5ldyBTZXQ7Zm9yKGxldCBpPTA7aTx0b2tlbk1pbmVycy5sZW5ndGg7aSs9MSl7Y29uc3QgdG9rZW5NaW5lckNvbmZpZz10b2tlbk1pbmVyc1tpXTtpZighYXBpLmFzc2VydCh0b2tlbk1pbmVyQ29uZmlnJiZ0b2tlbk1pbmVyQ29uZmlnLnN5bWJvbCYmInN0cmluZyI9PXR5cGVvZiB0b2tlbk1pbmVyQ29uZmlnLnN5bWJvbCwidG9rZW5NaW5lcnMgaW52YWxpZCIpKXJldHVybiExO2lmKCFhcGkuYXNzZXJ0KCF0b2tlbk1pbmVyU3ltYm9scy5oYXModG9rZW5NaW5lckNvbmZpZy5zeW1ib2wpLCJ0b2tlbk1pbmVycyBjYW5ub3QgaGF2ZSBkdXBsaWNhdGUgc3ltYm9scyIpKXJldHVybiExO3Rva2VuTWluZXJTeW1ib2xzLmFkZCh0b2tlbk1pbmVyQ29uZmlnLnN5bWJvbCk7Y29uc3R7c3ltYm9sOnN5bWJvbH09dG9rZW5NaW5lckNvbmZpZyx0b2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpzeW1ib2x9KTtpZighYXBpLmFzc2VydCh0b2tlbiYmdG9rZW4uc3Rha2luZ0VuYWJsZWQsInRva2VuTWluZXJzIG11c3QgaGF2ZSBzdGFraW5nIGVuYWJsZWQiKSlyZXR1cm4hMTtpZighYXBpLmFzc2VydChOdW1iZXIuaXNJbnRlZ2VyKHRva2VuTWluZXJDb25maWcubXVsdGlwbGllcikmJnRva2VuTWluZXJDb25maWcubXVsdGlwbGllcj49MSYmdG9rZW5NaW5lckNvbmZpZy5tdWx0aXBsaWVyPD0xMDAsInRva2VuTWluZXIgbXVsdGlwbGllciBtdXN0IGJlIGFuIGludGVnZXIgZnJvbSAxIHRvIDEwMCIpKXJldHVybiExfWlmKG5mdFRva2VuTWluZXIpe2lmKCFhcGkuYXNzZXJ0KG5mdFRva2VuTWluZXIuc3ltYm9sJiYic3RyaW5nIj09dHlwZW9mIG5mdFRva2VuTWluZXIuc3ltYm9sLCJuZnRUb2tlbk1pbmVyIGludmFsaWQiKSlyZXR1cm4hMTtjb25zdHtzeW1ib2w6c3ltYm9sLHR5cGVNYXA6dHlwZU1hcCxwcm9wZXJ0aWVzOnByb3BlcnRpZXMsdHlwZUZpZWxkOnR5cGVGaWVsZH09bmZ0VG9rZW5NaW5lcixuZnQ9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJuZnQiLCJuZnRzIix7c3ltYm9sOnN5bWJvbH0pO2lmKCFhcGkuYXNzZXJ0KG5mdCYmbmZ0LmRlbGVnYXRpb25FbmFibGVkLCJuZnRUb2tlbk1pbmVyIG11c3QgaGF2ZSBkZWxlZ2F0aW9uIGVuYWJsZWQiKSlyZXR1cm4hMTtpZighYXBpLmFzc2VydCh0eXBlRmllbGQmJiJzdHJpbmciPT10eXBlb2YgdHlwZUZpZWxkLCJ0eXBlRmllbGQgbXVzdCBiZSBhIHN0cmluZyIpKXJldHVybiExO2lmKCFhcGkuYXNzZXJ0KG5mdC5wcm9wZXJ0aWVzW3R5cGVGaWVsZF0mJiJzdHJpbmciPT09bmZ0LnByb3BlcnRpZXNbdHlwZUZpZWxkXS50eXBlLCJuZnRUb2tlbk1pbmVyIG11c3QgaGF2ZSBzdHJpbmcgdHlwZSBwcm9wZXJ0eSIpKXJldHVybiExO2lmKCF2YWxpZGF0ZU5mdFByb3BlcnRpZXMocHJvcGVydGllcykpcmV0dXJuITE7aWYoIXZhbGlkYXRlTmZ0VHlwZU1hcCh0eXBlTWFwLHByb3BlcnRpZXMpKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIHZhbGlkYXRlVG9rZW5NaW5lcnNDaGFuZ2Uob2xkVG9rZW5NaW5lcnMsdG9rZW5NaW5lcnMsb2xkTmZ0VG9rZW5NaW5lcixuZnRUb2tlbk1pbmVyKXtpZighYXBpLmFzc2VydCh0b2tlbk1pbmVycy5sZW5ndGg9PT1vbGRUb2tlbk1pbmVycy5sZW5ndGgsImNhbm5vdCBjaGFuZ2Ugd2hpY2ggdG9rZW5zIGFyZSBpbiB0b2tlbk1pbmVycyIpKXJldHVybiExO2xldCBjaGFuZ2VkPSExO2ZvcihsZXQgaT0wO2k8dG9rZW5NaW5lcnMubGVuZ3RoO2krPTEpe2NvbnN0IG9sZENvbmZpZz1vbGRUb2tlbk1pbmVyc1tpXSxuZXdDb25maWc9dG9rZW5NaW5lcnNbaV07aWYoIWFwaS5hc3NlcnQob2xkQ29uZmlnLnN5bWJvbD09PW5ld0NvbmZpZy5zeW1ib2wsImNhbm5vdCBjaGFuZ2Ugd2hpY2ggdG9rZW5zIGFyZSBpbiB0b2tlbk1pbmVycyIpKXJldHVybiExO2lmKCFhcGkuYXNzZXJ0KE51bWJlci5pc0ludGVnZXIobmV3Q29uZmlnLm11bHRpcGxpZXIpJiZuZXdDb25maWcubXVsdGlwbGllcj49MSYmbmV3Q29uZmlnLm11bHRpcGxpZXI8PTEwMCwidG9rZW5NaW5lciBtdWx0aXBsaWVyIG11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDEgdG8gMTAwIikpcmV0dXJuITE7b2xkQ29uZmlnLm11bHRpcGxpZXIhPT1uZXdDb25maWcubXVsdGlwbGllciYmKGNoYW5nZWQ9ITApfWlmKCFhcGkuYXNzZXJ0KCEhb2xkTmZ0VG9rZW5NaW5lcj09ISFuZnRUb2tlbk1pbmVyLCJjYW5ub3QgY2hhbmdlIG5mdFRva2VuTWluZXIgdG9rZW4iKSlyZXR1cm4hMTtpZihuZnRUb2tlbk1pbmVyKXtpZighYXBpLmFzc2VydChvbGROZnRUb2tlbk1pbmVyLnN5bWJvbD09PW5mdFRva2VuTWluZXIuc3ltYm9sLCJjYW5ub3QgY2hhbmdlIG5mdFRva2VuTWluZXIgdG9rZW4iKSlyZXR1cm4hMTtjb25zdHt0eXBlTWFwOnR5cGVNYXAscHJvcGVydGllczpwcm9wZXJ0aWVzLHR5cGVGaWVsZDp0eXBlRmllbGR9PW5mdFRva2VuTWluZXI7aWYoIWFwaS5hc3NlcnQodHlwZUZpZWxkJiYic3RyaW5nIj09dHlwZW9mIHR5cGVGaWVsZCYmdHlwZUZpZWxkPT09b2xkTmZ0VG9rZW5NaW5lci50eXBlRmllbGQsImNhbm5vdCBjaGFuZ2UgbmZ0VG9rZW5NaW5lciB0eXBlRmllbGQiKSlyZXR1cm4hMTtpZighYXBpLmFzc2VydCh0eXBlTWFwJiYib2JqZWN0Ij09dHlwZW9mIHR5cGVNYXAsImludmFsaWQgbmZ0VG9rZW5NaW5lciB0eXBlTWFwIikpcmV0dXJuITE7aWYoIXZhbGlkYXRlTmZ0UHJvcGVydGllcyhwcm9wZXJ0aWVzKSlyZXR1cm4hMTtpZihwcm9wZXJ0aWVzLmxlbmd0aCE9PW9sZE5mdFRva2VuTWluZXIucHJvcGVydGllcy5sZW5ndGgpY2hhbmdlZD0hMDtlbHNlIGZvcihsZXQgaT0wO2k8cHJvcGVydGllcy5sZW5ndGg7aSs9MSl7Y29uc3QgcHJvcD1wcm9wZXJ0aWVzW2ldLG9sZFByb3A9b2xkTmZ0VG9rZW5NaW5lci5wcm9wZXJ0aWVzW2ldO3Byb3Aub3AhPT1vbGRQcm9wLm9wJiYoY2hhbmdlZD0hMCl9aWYoIXZhbGlkYXRlTmZ0VHlwZU1hcCh0eXBlTWFwLHByb3BlcnRpZXMpKXJldHVybiExO2NvbnN0IG9sZFR5cGVzPU9iamVjdC5rZXlzKG9sZE5mdFRva2VuTWluZXIudHlwZU1hcCk7Zm9yKGxldCBpPTA7aTxvbGRUeXBlcy5sZW5ndGg7aSs9MSl7Y29uc3Qgb2xkVHlwZT1vbGRUeXBlc1tpXSxvbGRUeXBlQ29uZmlnPW9sZE5mdFRva2VuTWluZXIudHlwZU1hcFtvbGRUeXBlXSx0eXBlQ29uZmlnPXR5cGVNYXBbb2xkVHlwZV07aWYoIWFwaS5hc3NlcnQodHlwZUNvbmZpZywidHlwZUNvbmZpZyB0eXBlcyBtdXN0IGJlIGEgc3VwZXJzZXQgb2Ygb2xkIHR5cGVDb25maWcgdHlwZXMiKSlyZXR1cm4hMTtmb3IobGV0IGo9MDtqPHR5cGVDb25maWcubGVuZ3RoO2orPTEpb2xkVHlwZUNvbmZpZ1tqXSE9PXR5cGVDb25maWdbal0mJihjaGFuZ2VkPSEwKX19cmV0dXJue2NoYW5nZWQ6Y2hhbmdlZH19ZnVuY3Rpb24gY29tcHV0ZU1pbmluZ1Bvd2VyKG1pbmluZ1Bvd2VyLHRva2VuTWluZXJzLG5mdFRva2VuTWluZXIpe2xldCBwb3dlcj1hcGkuQmlnTnVtYmVyKDApO2ZvcihsZXQgaT0wO2k8dG9rZW5NaW5lcnMubGVuZ3RoO2krPTEpbWluaW5nUG93ZXIuYmFsYW5jZXNbaV0mJihwb3dlcj1wb3dlci5wbHVzKGFwaS5CaWdOdW1iZXIobWluaW5nUG93ZXIuYmFsYW5jZXNbaV0pLm11bHRpcGxpZWRCeSh0b2tlbk1pbmVyc1tpXS5tdWx0aXBsaWVyKSkpO2lmKG5mdFRva2VuTWluZXImJm1pbmluZ1Bvd2VyLm5mdEJhbGFuY2VzKXtsZXQgbmZ0UG93ZXI9YXBpLkJpZ051bWJlcigxKTtmb3IobGV0IGk9MDtpPG5mdFRva2VuTWluZXIucHJvcGVydGllcy5sZW5ndGg7aSs9MSluZnRQb3dlcj1uZnRQb3dlci5tdWx0aXBsaWVkQnkobWluaW5nUG93ZXIubmZ0QmFsYW5jZXNbaV0pO3Bvd2VyPXBvd2VyLnBsdXMobmZ0UG93ZXIpfXJldHVybiBwb3dlci5pc1Bvc2l0aXZlKCkmJnBvd2VyLmlzRmluaXRlKCk/cG93ZXI6YXBpLkJpZ051bWJlcigwKX1hc3luYyBmdW5jdGlvbiB1cGRhdGVNaW5pbmdQb3dlcihwb29sLHRva2VuLGFjY291bnQsc3Rha2VkUXVhbnRpdHksZGVsZWdhdGVkUXVhbnRpdHkscmVzZXQpe2xldCBtaW5pbmdQb3dlcj1hd2FpdCBhcGkuZGIuZmluZE9uZSgibWluaW5nUG93ZXIiLHtpZDpwb29sLmlkLGFjY291bnQ6YWNjb3VudH0pLHN0YWtlPWFwaS5CaWdOdW1iZXIoc3Rha2VkUXVhbnRpdHkpLG9sZE1pbmluZ1Bvd2VyPWFwaS5CaWdOdW1iZXIoMCk7c3Rha2U9c3Rha2UucGx1cyhkZWxlZ2F0ZWRRdWFudGl0eSk7Y29uc3QgdG9rZW5JbmRleD1wb29sLnRva2VuTWluZXJzLmZpbmRJbmRleCh0PT50LnN5bWJvbD09PXRva2VuKTtpZihtaW5pbmdQb3dlciltaW5pbmdQb3dlci5iYWxhbmNlc1t0b2tlbkluZGV4XSYmIXJlc2V0fHwobWluaW5nUG93ZXIuYmFsYW5jZXNbdG9rZW5JbmRleF09IjAiKSxtaW5pbmdQb3dlci5iYWxhbmNlc1t0b2tlbkluZGV4XT1zdGFrZS5wbHVzKG1pbmluZ1Bvd2VyLmJhbGFuY2VzW3Rva2VuSW5kZXhdKSxvbGRNaW5pbmdQb3dlcj1taW5pbmdQb3dlci5wb3dlci4kbnVtYmVyRGVjaW1hbDtlbHNle2NvbnN0IGJhbGFuY2VzPXt9O2JhbGFuY2VzW3Rva2VuSW5kZXhdPXN0YWtlLG1pbmluZ1Bvd2VyPXtpZDpwb29sLmlkLGFjY291bnQ6YWNjb3VudCxiYWxhbmNlczpiYWxhbmNlcyxwb3dlcjp7JG51bWJlckRlY2ltYWw6IjAifX0sbWluaW5nUG93ZXI9YXdhaXQgYXBpLmRiLmluc2VydCgibWluaW5nUG93ZXIiLG1pbmluZ1Bvd2VyKX1jb25zdCBuZXdNaW5pbmdQb3dlcj1jb21wdXRlTWluaW5nUG93ZXIobWluaW5nUG93ZXIscG9vbC50b2tlbk1pbmVycyxwb29sLm5mdFRva2VuTWluZXIpO3JldHVybiBtaW5pbmdQb3dlci5wb3dlcj17JG51bWJlckRlY2ltYWw6bmV3TWluaW5nUG93ZXJ9LGF3YWl0IGFwaS5kYi51cGRhdGUoIm1pbmluZ1Bvd2VyIixtaW5pbmdQb3dlciksbmV3TWluaW5nUG93ZXIubWludXMob2xkTWluaW5nUG93ZXIpfWZ1bmN0aW9uIGdldE5mdEFjY291bnQobmZ0KXtyZXR1cm4ibWluaW5nIj09PW5mdC5kZWxlZ2F0ZWRUby5hY2NvdW50JiYiYyI9PT1uZnQuZGVsZWdhdGVkVG8ub3duZWRCeT9uZnQuYWNjb3VudDoidSI9PT1uZnQuZGVsZWdhdGVkVG8ub3duZWRCeT9uZnQuZGVsZWdhdGVkVG8uYWNjb3VudDpudWxsfWFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU5mdE1pbmluZ1Bvd2VyKHBvb2wsbmZ0LHR5cGVQcm9wZXJ0aWVzLGFkZCx1cGRhdGVQb29sVGltZXN0YW1wKXtjb25zdCBhY2NvdW50PWdldE5mdEFjY291bnQobmZ0KTtpZighYWNjb3VudClyZXR1cm4gMDtsZXQgbWluaW5nUG93ZXI9YXdhaXQgYXBpLmRiLmZpbmRPbmUoIm1pbmluZ1Bvd2VyIix7aWQ6cG9vbC5pZCxhY2NvdW50OmFjY291bnR9KSxvbGRNaW5pbmdQb3dlcj1hcGkuQmlnTnVtYmVyKDApO2lmKG1pbmluZ1Bvd2VyKXttaW5pbmdQb3dlci5uZnRCYWxhbmNlc3x8KG1pbmluZ1Bvd2VyLm5mdEJhbGFuY2VzPXt9KTtjb25zdHtuZnRCYWxhbmNlczpuZnRCYWxhbmNlc309bWluaW5nUG93ZXI7Zm9yKGxldCBpPTA7aTxwb29sLm5mdFRva2VuTWluZXIucHJvcGVydGllcy5sZW5ndGg7aSs9MSl7Y29uc3QgcHJvcGVydHk9cG9vbC5uZnRUb2tlbk1pbmVyLnByb3BlcnRpZXNbaV0sb3BJbmZvPVBST1BFUlRZX09QU1twcm9wZXJ0eS5vcF07bmZ0QmFsYW5jZXNbaV0mJm1pbmluZ1Bvd2VyLnVwZGF0ZVBvb2xUaW1lc3RhbXA9PT11cGRhdGVQb29sVGltZXN0YW1wfHwobmZ0QmFsYW5jZXNbaV09b3BJbmZvLmRlZmF1bHRWYWx1ZSksbmZ0QmFsYW5jZXNbaV09YWRkP29wSW5mby5hZGQobmZ0QmFsYW5jZXNbaV0sdHlwZVByb3BlcnRpZXNbaV0pOm9wSW5mby5yZW1vdmUobmZ0QmFsYW5jZXNbaV0sdHlwZVByb3BlcnRpZXNbaV0pfW9sZE1pbmluZ1Bvd2VyPW1pbmluZ1Bvd2VyLnBvd2VyLiRudW1iZXJEZWNpbWFsfWVsc2V7Y29uc3QgbmZ0QmFsYW5jZXM9e307Zm9yKGxldCBpPTA7aTxwb29sLm5mdFRva2VuTWluZXIucHJvcGVydGllcy5sZW5ndGg7aSs9MSl7Y29uc3QgcHJvcGVydHk9cG9vbC5uZnRUb2tlbk1pbmVyLnByb3BlcnRpZXNbaV0sb3BJbmZvPVBST1BFUlRZX09QU1twcm9wZXJ0eS5vcF07YWRkP25mdEJhbGFuY2VzW2ldPW9wSW5mby5hZGQob3BJbmZvLmRlZmF1bHRWYWx1ZSx0eXBlUHJvcGVydGllc1tpXSk6YXBpLmFzc2VydCghMSwidW5leHBlY3RlZCBjb25kaXRpb246IHJlbW92ZSB3aXRob3V0IHByZXZpb3VzIG1pbmluZ1Bvd2VyIil9bWluaW5nUG93ZXI9e2lkOnBvb2wuaWQsYWNjb3VudDphY2NvdW50LGJhbGFuY2VzOnt9LG5mdEJhbGFuY2VzOm5mdEJhbGFuY2VzLHBvd2VyOnskbnVtYmVyRGVjaW1hbDoiMCJ9fSxtaW5pbmdQb3dlcj1hd2FpdCBhcGkuZGIuaW5zZXJ0KCJtaW5pbmdQb3dlciIsbWluaW5nUG93ZXIpfWNvbnN0IG5ld01pbmluZ1Bvd2VyPWNvbXB1dGVNaW5pbmdQb3dlcihtaW5pbmdQb3dlcixwb29sLnRva2VuTWluZXJzLHBvb2wubmZ0VG9rZW5NaW5lcik7cmV0dXJuIG1pbmluZ1Bvd2VyLnBvd2VyPXskbnVtYmVyRGVjaW1hbDpuZXdNaW5pbmdQb3dlcn0sbWluaW5nUG93ZXIudXBkYXRlUG9vbFRpbWVzdGFtcD11cGRhdGVQb29sVGltZXN0YW1wLGF3YWl0IGFwaS5kYi51cGRhdGUoIm1pbmluZ1Bvd2VyIixtaW5pbmdQb3dlciksbmV3TWluaW5nUG93ZXIubWludXMob2xkTWluaW5nUG93ZXIpfWFzeW5jIGZ1bmN0aW9uIGluaXRNaW5pbmdQb3dlcihwb29sLHBhcmFtcyx0b2tlbixsYXN0SWQpe2xldCBiYWxhbmNlcyxhZGp1c3RlZFBvd2VyPWFwaS5CaWdOdW1iZXIoMCksb2Zmc2V0PTAsbGFzdElkUHJvY2Vzc2VkPWxhc3RJZCxjb21wbGV0ZT0hMTtmb3IoOyFjb21wbGV0ZSYmb2Zmc2V0PHBhcmFtcy5tYXhCYWxhbmNlc1Byb2Nlc3NlZFBlckJsb2NrOyl7YmFsYW5jZXM9YXdhaXQgYXBpLmRiLmZpbmRJblRhYmxlKCJ0b2tlbnMiLCJiYWxhbmNlcyIse3N5bWJvbDp0b2tlbixfaWQ6eyRndDpsYXN0SWR9fSxwYXJhbXMucHJvY2Vzc1F1ZXJ5TGltaXQsb2Zmc2V0LFt7aW5kZXg6Il9pZCIsZGVzY2VuZGluZzohMX1dKTtmb3IobGV0IGk9MDtpPGJhbGFuY2VzLmxlbmd0aDtpKz0xKXtjb25zdCBiYWxhbmNlPWJhbGFuY2VzW2ldO2lmKGFwaS5CaWdOdW1iZXIoYmFsYW5jZS5zdGFrZSkuZ3QoMCl8fGFwaS5CaWdOdW1iZXIoYmFsYW5jZS5kZWxlZ2F0aW9uc0luKS5ndCgwKSl7Y29uc3QgYWRqdXN0ZWQ9YXdhaXQgdXBkYXRlTWluaW5nUG93ZXIocG9vbCx0b2tlbixiYWxhbmNlLmFjY291bnQsYmFsYW5jZS5zdGFrZSxiYWxhbmNlLmRlbGVnYXRpb25zSW4sITApO2FkanVzdGVkUG93ZXI9YWRqdXN0ZWRQb3dlci5wbHVzKGFkanVzdGVkKX1sYXN0SWRQcm9jZXNzZWQ9YmFsYW5jZS5faWR9YmFsYW5jZXMubGVuZ3RoPHBhcmFtcy5wcm9jZXNzUXVlcnlMaW1pdCYmKGNvbXBsZXRlPSEwKSxvZmZzZXQrPXBhcmFtcy5wcm9jZXNzUXVlcnlMaW1pdH1yZXR1cm57YWRqdXN0ZWRQb3dlcjphZGp1c3RlZFBvd2VyLG5leHRJZDpsYXN0SWRQcm9jZXNzZWQsY29tcGxldGU6Y29tcGxldGV9fWFzeW5jIGZ1bmN0aW9uIGluaXROZnRNaW5pbmdQb3dlcihwb29sLHVwZGF0ZVBvb2xUaW1lc3RhbXAscGFyYW1zLG5mdFRva2VuTWluZXIsbGFzdElkKXtsZXQgbmZ0cyxhZGp1c3RlZFBvd2VyPWFwaS5CaWdOdW1iZXIoMCksb2Zmc2V0PTAsbGFzdElkUHJvY2Vzc2VkPWxhc3RJZCxjb21wbGV0ZT0hMTtmb3IoOyFjb21wbGV0ZSYmb2Zmc2V0PHBhcmFtcy5tYXhCYWxhbmNlc1Byb2Nlc3NlZFBlckJsb2NrOyl7bmZ0cz1hd2FpdCBhcGkuZGIuZmluZEluVGFibGUoIm5mdCIsbmZ0VG9rZW5NaW5lci5zeW1ib2wrImluc3RhbmNlcyIse19pZDp7JGd0Omxhc3RJZH0sZGVsZWdhdGVkVG86eyRuZTpudWxsfX0scGFyYW1zLnByb2Nlc3NRdWVyeUxpbWl0LG9mZnNldCxbe2luZGV4OiJfaWQiLGRlc2NlbmRpbmc6ITF9XSk7Zm9yKGxldCBpPTA7aTxuZnRzLmxlbmd0aDtpKz0xKXtjb25zdCBuZnQ9bmZ0c1tpXTtpZihuZnRUb2tlbk1pbmVyLnR5cGVNYXBbbmZ0LnByb3BlcnRpZXNbbmZ0VG9rZW5NaW5lci50eXBlRmllbGRdXSl7Y29uc3QgYWRqdXN0ZWQ9YXdhaXQgdXBkYXRlTmZ0TWluaW5nUG93ZXIocG9vbCxuZnQsbmZ0VG9rZW5NaW5lci50eXBlTWFwW25mdC5wcm9wZXJ0aWVzW25mdFRva2VuTWluZXIudHlwZUZpZWxkXV0sITAsdXBkYXRlUG9vbFRpbWVzdGFtcCk7YWRqdXN0ZWRQb3dlcj1hZGp1c3RlZFBvd2VyLnBsdXMoYWRqdXN0ZWQpfWxhc3RJZFByb2Nlc3NlZD1uZnQuX2lkfW5mdHMubGVuZ3RoPHBhcmFtcy5wcm9jZXNzUXVlcnlMaW1pdCYmKGNvbXBsZXRlPSEwKSxvZmZzZXQrPXBhcmFtcy5wcm9jZXNzUXVlcnlMaW1pdH1yZXR1cm57YWRqdXN0ZWRQb3dlcjphZGp1c3RlZFBvd2VyLG5leHRJZDpsYXN0SWRQcm9jZXNzZWQsY29tcGxldGU6Y29tcGxldGV9fWFzeW5jIGZ1bmN0aW9uIHJlc3VtZVBvd2VyVXBkYXRlKHBvb2wscGFyYW1zKXtsZXR7aW5Qcm9ncmVzczppblByb2dyZXNzLHRva2VuSW5kZXg6dG9rZW5JbmRleCxuZnRUb2tlbkluZGV4Om5mdFRva2VuSW5kZXgsbGFzdElkOmxhc3RJZH09cG9vbC51cGRhdGluZztjb25zdHt1cGRhdGVQb29sVGltZXN0YW1wOnVwZGF0ZVBvb2xUaW1lc3RhbXB9PXBvb2wudXBkYXRpbmc7aWYoIWluUHJvZ3Jlc3MpcmV0dXJuO2lmKHRva2VuSW5kZXg8cG9vbC50b2tlbk1pbmVycy5sZW5ndGgpe2NvbnN0IHRva2VuQ29uZmlnPXBvb2wudG9rZW5NaW5lcnNbdG9rZW5JbmRleF0se2FkanVzdGVkUG93ZXI6YWRqdXN0ZWRQb3dlcixuZXh0SWQ6bmV4dElkLGNvbXBsZXRlOmNvbXBsZXRlfT1hd2FpdCBpbml0TWluaW5nUG93ZXIocG9vbCxwYXJhbXMsdG9rZW5Db25maWcuc3ltYm9sLGxhc3RJZCk7cG9vbC50b3RhbFBvd2VyPWFwaS5CaWdOdW1iZXIocG9vbC50b3RhbFBvd2VyKS5wbHVzKGFkanVzdGVkUG93ZXIpLGNvbXBsZXRlPyhsYXN0SWQ9MCx0b2tlbkluZGV4Kz0xKTpsYXN0SWQ9bmV4dElkfWVsc2UgaWYocG9vbC5uZnRUb2tlbk1pbmVyJiZuZnRUb2tlbkluZGV4PDEpe2NvbnN0e25mdFRva2VuTWluZXI6bmZ0VG9rZW5NaW5lcn09cG9vbCx7YWRqdXN0ZWRQb3dlcjphZGp1c3RlZFBvd2VyLG5leHRJZDpuZXh0SWQsY29tcGxldGU6Y29tcGxldGV9PWF3YWl0IGluaXROZnRNaW5pbmdQb3dlcihwb29sLHVwZGF0ZVBvb2xUaW1lc3RhbXAscGFyYW1zLG5mdFRva2VuTWluZXIsbGFzdElkKTtwb29sLnRvdGFsUG93ZXI9YXBpLkJpZ051bWJlcihwb29sLnRvdGFsUG93ZXIpLnBsdXMoYWRqdXN0ZWRQb3dlciksY29tcGxldGU/KGxhc3RJZD0wLG5mdFRva2VuSW5kZXgrPTEpOmxhc3RJZD1uZXh0SWR9dG9rZW5JbmRleCE9PXBvb2wudG9rZW5NaW5lcnMubGVuZ3RofHxwb29sLm5mdFRva2VuTWluZXImJjEhPT1uZnRUb2tlbkluZGV4fHwoaW5Qcm9ncmVzcz0hMSx0b2tlbkluZGV4PTAsbmZ0VG9rZW5JbmRleD0wKTtjb25zdHt1cGRhdGluZzp1cGRhdGluZ309cG9vbDt1cGRhdGluZy5pblByb2dyZXNzPWluUHJvZ3Jlc3MsdXBkYXRpbmcudG9rZW5JbmRleD10b2tlbkluZGV4LHVwZGF0aW5nLm5mdFRva2VuSW5kZXg9bmZ0VG9rZW5JbmRleCx1cGRhdGluZy5sYXN0SWQ9bGFzdElkLGF3YWl0IGFwaS5kYi51cGRhdGUoInBvb2xzIixwb29sKX1mdW5jdGlvbiBnZW5lcmF0ZVBvb2xJZChwb29sKXtjb25zdCB0b2tlbk1pbmVyU3RyaW5nPXBvb2wudG9rZW5NaW5lcnMubWFwKHQ9PnQuc3ltYm9sLnJlcGxhY2UoIi4iLCItIikpLnNvcnQoKS5qb2luKCIsIiksbmZ0VG9rZW5NaW5lclN0cmluZz1wb29sLm5mdFRva2VuTWluZXI/IjoiK3Bvb2wubmZ0VG9rZW5NaW5lci5zeW1ib2w6IiI7cmV0dXJuYCR7cG9vbC5taW5lZFRva2VuLnJlcGxhY2UoIi4iLCItIil9OiR7dG9rZW5NaW5lclN0cmluZ30ke25mdFRva2VuTWluZXJTdHJpbmd9YH1hc3luYyBmdW5jdGlvbiBydW5Mb3R0ZXJ5KHBvb2wscGFyYW1zKXtjb25zdCBibG9ja0RhdGU9bmV3IERhdGUoYXBpLmhpdmVCbG9ja1RpbWVzdGFtcCsiLjAwMFoiKSx3aW5uaW5nTnVtYmVycz1bXSxtaW5lZFRva2VuPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOnBvb2wubWluZWRUb2tlbn0pLHdpbm5pbmdBbW91bnQ9YXBpLkJpZ051bWJlcihwb29sLmxvdHRlcnlBbW91bnQpLmRpdmlkZWRCeShwb29sLmxvdHRlcnlXaW5uZXJzKS50b0ZpeGVkKG1pbmVkVG9rZW4ucHJlY2lzaW9uKTtmb3IobGV0IGk9MDtpPHBvb2wubG90dGVyeVdpbm5lcnM7aSs9MSl3aW5uaW5nTnVtYmVyc1tpXT1hcGkuQmlnTnVtYmVyKHBvb2wudG90YWxQb3dlcikubXVsdGlwbGllZEJ5KGFwaS5yYW5kb20oKSk7bGV0IG1pbmluZ1Bvd2VycyxvZmZzZXQ9MCxjdW11bGF0aXZlUG93ZXI9YXBpLkJpZ051bWJlcigwKSxuZXh0Q3VtdWxhdGl2ZVBvd2VyPWFwaS5CaWdOdW1iZXIoMCksY29tcHV0ZWRXaW5uZXJzPTA7Y29uc3Qgd2lubmVycz1bXTtmb3IoO2NvbXB1dGVkV2lubmVyczxwb29sLmxvdHRlcnlXaW5uZXJzOyl7bWluaW5nUG93ZXJzPWF3YWl0IGFwaS5kYi5maW5kKCJtaW5pbmdQb3dlciIse2lkOnBvb2wuaWQscG93ZXI6eyRndDp7JG51bWJlckRlY2ltYWw6IjAifX19LHBhcmFtcy5wcm9jZXNzUXVlcnlMaW1pdCxvZmZzZXQsW3tpbmRleDoicG93ZXIiLGRlc2NlbmRpbmc6ITB9LHtpbmRleDoiX2lkIixkZXNjZW5kaW5nOiExfV0pO2ZvcihsZXQgaT0wO2k8bWluaW5nUG93ZXJzLmxlbmd0aDtpKz0xKXtjb25zdCBtaW5pbmdQb3dlcj1taW5pbmdQb3dlcnNbaV07bmV4dEN1bXVsYXRpdmVQb3dlcj1jdW11bGF0aXZlUG93ZXIucGx1cyhtaW5pbmdQb3dlci5wb3dlci4kbnVtYmVyRGVjaW1hbCk7Zm9yKGxldCBqPTA7ajxwb29sLmxvdHRlcnlXaW5uZXJzO2orPTEpe2NvbnN0IGN1cnJlbnRXaW5uaW5nTnVtYmVyPXdpbm5pbmdOdW1iZXJzW2pdO2N1bXVsYXRpdmVQb3dlci5sdGUoY3VycmVudFdpbm5pbmdOdW1iZXIpJiZuZXh0Q3VtdWxhdGl2ZVBvd2VyLmd0KGN1cnJlbnRXaW5uaW5nTnVtYmVyKSYmKGNvbXB1dGVkV2lubmVycys9MSx3aW5uZXJzLnB1c2goe3dpbm5lcjptaW5pbmdQb3dlci5hY2NvdW50LHdpbm5pbmdOdW1iZXI6Y3VycmVudFdpbm5pbmdOdW1iZXIsd2lubmluZ0Ftb3VudDp3aW5uaW5nQW1vdW50fSkpfWN1bXVsYXRpdmVQb3dlcj1uZXh0Q3VtdWxhdGl2ZVBvd2VyfWlmKGNvbXB1dGVkV2lubmVycz09PXBvb2wubG90dGVyeVdpbm5lcnN8fG1pbmluZ1Bvd2Vycy5sZW5ndGg8cGFyYW1zLnByb2Nlc3NRdWVyeUxpbWl0KWJyZWFrO29mZnNldCs9cGFyYW1zLnByb2Nlc3NRdWVyeUxpbWl0fWFwaS5lbWl0KCJtaW5pbmdMb3R0ZXJ5Iix7cG9vbElkOnBvb2wuaWQsd2lubmVyczp3aW5uZXJzfSk7Zm9yKGxldCBpPTA7aTx3aW5uZXJzLmxlbmd0aDtpKz0xKXtjb25zdCB3aW5uZXI9d2lubmVyc1tpXTthd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoInRva2VucyIsImlzc3VlIix7dG86d2lubmVyLndpbm5lcixzeW1ib2w6bWluZWRUb2tlbi5zeW1ib2wscXVhbnRpdHk6d2lubmluZ0Ftb3VudH0pfXBvb2wubmV4dExvdHRlcnlUaW1lc3RhbXA9YXBpLkJpZ051bWJlcihibG9ja0RhdGUuZ2V0VGltZSgpKS5wbHVzKDM2MDAqcG9vbC5sb3R0ZXJ5SW50ZXJ2YWxIb3VycyoxZTMpLnRvTnVtYmVyKCksYXdhaXQgYXBpLmRiLnVwZGF0ZSgicG9vbHMiLHBvb2wpfWFjdGlvbnMuc2V0QWN0aXZlPWFzeW5jIHBheWxvYWQ9Pntjb25zdHtpZDppZCxhY3RpdmU6YWN0aXZlLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQ7aWYoIWFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIGN1c3RvbV9qc29uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpKXJldHVybjtjb25zdCBwb29sPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwb29scyIse2lkOmlkfSk7aWYoYXBpLmFzc2VydChwb29sLCJwb29sIGlkIG5vdCBmb3VuZCIpKXtwb29sLmFjdGl2ZT0hIWFjdGl2ZTtjb25zdCBtaW5lZFRva2VuT2JqZWN0PWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOnBvb2wubWluZWRUb2tlbn0pO2lmKGFwaS5hc3NlcnQobWluZWRUb2tlbk9iamVjdCYmKG1pbmVkVG9rZW5PYmplY3QuaXNzdWVyPT09YXBpLnNlbmRlcnx8IkJFRSI9PT1taW5lZFRva2VuT2JqZWN0LnN5bWJvbCYmYXBpLnNlbmRlcj09PWFwaS5vd25lciksIm11c3QgYmUgaXNzdWVyIG9mIG1pbmVkVG9rZW4iKSl7Y29uc3QgYmxvY2tEYXRlPW5ldyBEYXRlKGFwaS5oaXZlQmxvY2tUaW1lc3RhbXArIi4wMDBaIik7cG9vbC5uZXh0TG90dGVyeVRpbWVzdGFtcD1hcGkuQmlnTnVtYmVyKGJsb2NrRGF0ZS5nZXRUaW1lKCkpLnBsdXMoMzYwMCpwb29sLmxvdHRlcnlJbnRlcnZhbEhvdXJzKjFlMykudG9OdW1iZXIoKSxhd2FpdCBhcGkuZGIudXBkYXRlKCJwb29scyIscG9vbCl9fX0sYWN0aW9ucy51cGRhdGVQb29sPWFzeW5jIHBheWxvYWQ9Pntjb25zdHtpZDppZCxsb3R0ZXJ5V2lubmVyczpsb3R0ZXJ5V2lubmVycyxsb3R0ZXJ5SW50ZXJ2YWxIb3Vyczpsb3R0ZXJ5SW50ZXJ2YWxIb3Vycyxsb3R0ZXJ5QW1vdW50OmxvdHRlcnlBbW91bnQsdG9rZW5NaW5lcnM6dG9rZW5NaW5lcnMsbmZ0VG9rZW5NaW5lcjpuZnRUb2tlbk1pbmVyLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQscGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KSx7cG9vbFVwZGF0ZUZlZTpwb29sVXBkYXRlRmVlfT1wYXJhbXMsdXRpbGl0eVRva2VuQmFsYW5jZT1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsImJhbGFuY2VzIix7YWNjb3VudDphcGkuc2VuZGVyLHN5bWJvbDoiQkVFIn0pLGF1dGhvcml6ZWQ9ISghYXBpLkJpZ051bWJlcihwb29sVXBkYXRlRmVlKS5sdGUoMCkmJmFwaS5zZW5kZXIhPT1hcGkub3duZXIpfHx1dGlsaXR5VG9rZW5CYWxhbmNlJiZhcGkuQmlnTnVtYmVyKHV0aWxpdHlUb2tlbkJhbGFuY2UuYmFsYW5jZSkuZ3RlKHBvb2xVcGRhdGVGZWUpO2lmKGFwaS5hc3NlcnQoYXV0aG9yaXplZCwieW91IG11c3QgaGF2ZSBlbm91Z2ggdG9rZW5zIHRvIGNvdmVyIHRoZSB1cGRhdGUgZmVlIikmJmFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIGN1c3RvbV9qc29uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiZhcGkuYXNzZXJ0KGlkJiYic3RyaW5nIj09dHlwZW9mIGlkJiZsb3R0ZXJ5QW1vdW50JiYic3RyaW5nIj09dHlwZW9mIGxvdHRlcnlBbW91bnQmJiFhcGkuQmlnTnVtYmVyKGxvdHRlcnlBbW91bnQpLmlzTmFOKCkmJmFwaS5CaWdOdW1iZXIobG90dGVyeUFtb3VudCkuZ3QoMCksImludmFsaWQgcGFyYW1zIikmJmFwaS5hc3NlcnQoTnVtYmVyLmlzSW50ZWdlcihsb3R0ZXJ5V2lubmVycykmJmxvdHRlcnlXaW5uZXJzPj0xJiZsb3R0ZXJ5V2lubmVyczw9MjAsImludmFsaWQgbG90dGVyeVdpbm5lcnM6IGludGVnZXIgYmV0d2VlbiAxIGFuZCAyMCBvbmx5IikmJmFwaS5hc3NlcnQoTnVtYmVyLmlzSW50ZWdlcihsb3R0ZXJ5SW50ZXJ2YWxIb3VycykmJmxvdHRlcnlJbnRlcnZhbEhvdXJzPj0xJiZsb3R0ZXJ5SW50ZXJ2YWxIb3Vyczw9NzIwLCJpbnZhbGlkIGxvdHRlcnlJbnRlcnZhbEhvdXJzOiBpbnRlZ2VyIGJldHdlZW4gMSBhbmQgNzIwIG9ubHkiKSl7Y29uc3QgcG9vbD1hd2FpdCBhcGkuZGIuZmluZE9uZSgicG9vbHMiLHtpZDppZH0pO2lmKGFwaS5hc3NlcnQocG9vbCwicG9vbCBpZCBub3QgZm91bmQiKSl7Y29uc3QgbWluZWRUb2tlbk9iamVjdD1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpwb29sLm1pbmVkVG9rZW59KTtpZihhcGkuYXNzZXJ0KG1pbmVkVG9rZW5PYmplY3QmJihtaW5lZFRva2VuT2JqZWN0Lmlzc3Vlcj09PWFwaS5zZW5kZXJ8fCJCRUUiPT09bWluZWRUb2tlbk9iamVjdC5zeW1ib2wmJmFwaS5zZW5kZXI9PT1hcGkub3duZXIpLCJtdXN0IGJlIGlzc3VlciBvZiBtaW5lZFRva2VuIikmJmFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihsb3R0ZXJ5QW1vdW50KS5kcCgpPD1taW5lZFRva2VuT2JqZWN0LnByZWNpc2lvbiwibWluZWRUb2tlbiBwcmVjaXNpb24gbWlzbWF0Y2ggZm9yIGxvdHRlcnlBbW91bnQiKSl7Y29uc3QgdmFsaWRNaW5lcnNDaGFuZ2U9dmFsaWRhdGVUb2tlbk1pbmVyc0NoYW5nZShwb29sLnRva2VuTWluZXJzLHRva2VuTWluZXJzLHBvb2wubmZ0VG9rZW5NaW5lcixuZnRUb2tlbk1pbmVyKTtpZih2YWxpZE1pbmVyc0NoYW5nZSl7cG9vbC5sb3R0ZXJ5V2lubmVycz1sb3R0ZXJ5V2lubmVycyxwb29sLmxvdHRlcnlJbnRlcnZhbEhvdXJzPWxvdHRlcnlJbnRlcnZhbEhvdXJzLHBvb2wubG90dGVyeUFtb3VudD1sb3R0ZXJ5QW1vdW50LHBvb2wudG9rZW5NaW5lcnM9dG9rZW5NaW5lcnMscG9vbC5uZnRUb2tlbk1pbmVyPW5mdFRva2VuTWluZXI7Y29uc3QgYmxvY2tEYXRlPW5ldyBEYXRlKGFwaS5oaXZlQmxvY2tUaW1lc3RhbXArIi4wMDBaIik7dmFsaWRNaW5lcnNDaGFuZ2UuY2hhbmdlZCYmKHBvb2wudXBkYXRpbmcudXBkYXRlUG9vbFRpbWVzdGFtcD1hcGkuQmlnTnVtYmVyKGJsb2NrRGF0ZS5nZXRUaW1lKCkpLnRvTnVtYmVyKCkscG9vbC51cGRhdGluZy5pblByb2dyZXNzPSEwLHBvb2wudXBkYXRpbmcudG9rZW5JbmRleD0wLHBvb2wudXBkYXRpbmcubmZ0VG9rZW5JbmRleD0wLHBvb2wudXBkYXRpbmcubGFzdElkPTApLHBvb2wubmV4dExvdHRlcnlUaW1lc3RhbXA9YXBpLkJpZ051bWJlcihibG9ja0RhdGUuZ2V0VGltZSgpKS5wbHVzKDM2MDAqbG90dGVyeUludGVydmFsSG91cnMqMWUzKS50b051bWJlcigpLGF3YWl0IGFwaS5kYi51cGRhdGUoInBvb2xzIixwb29sKSxhcGkuc2VuZGVyIT09YXBpLm93bmVyJiZhcGkuQmlnTnVtYmVyKHBvb2xVcGRhdGVGZWUpLmd0KDApJiZhd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoInRva2VucyIsInRyYW5zZmVyIix7dG86Im51bGwiLHN5bWJvbDoiQkVFIixxdWFudGl0eTpwb29sVXBkYXRlRmVlLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9KX19fX19LGFjdGlvbnMuY3JlYXRlUG9vbD1hc3luYyBwYXlsb2FkPT57Y29uc3R7bG90dGVyeVdpbm5lcnM6bG90dGVyeVdpbm5lcnMsbG90dGVyeUludGVydmFsSG91cnM6bG90dGVyeUludGVydmFsSG91cnMsbG90dGVyeUFtb3VudDpsb3R0ZXJ5QW1vdW50LG1pbmVkVG9rZW46bWluZWRUb2tlbix0b2tlbk1pbmVyczp0b2tlbk1pbmVycyxuZnRUb2tlbk1pbmVyOm5mdFRva2VuTWluZXIsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZCxwYXJhbXM9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBhcmFtcyIse30pLHtwb29sQ3JlYXRpb25GZWU6cG9vbENyZWF0aW9uRmVlfT1wYXJhbXMsdXRpbGl0eVRva2VuQmFsYW5jZT1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsImJhbGFuY2VzIix7YWNjb3VudDphcGkuc2VuZGVyLHN5bWJvbDoiQkVFIn0pLGF1dGhvcml6ZWRDcmVhdGlvbj0hKCFhcGkuQmlnTnVtYmVyKHBvb2xDcmVhdGlvbkZlZSkubHRlKDApJiZhcGkuc2VuZGVyIT09YXBpLm93bmVyKXx8dXRpbGl0eVRva2VuQmFsYW5jZSYmYXBpLkJpZ051bWJlcih1dGlsaXR5VG9rZW5CYWxhbmNlLmJhbGFuY2UpLmd0ZShwb29sQ3JlYXRpb25GZWUpO2lmKGFwaS5hc3NlcnQoYXV0aG9yaXplZENyZWF0aW9uLCJ5b3UgbXVzdCBoYXZlIGVub3VnaCB0b2tlbnMgdG8gY292ZXIgdGhlIGNyZWF0aW9uIGZlZSIpJiZhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSBjdXN0b21fanNvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSYmYXBpLmFzc2VydChtaW5lZFRva2VuJiYic3RyaW5nIj09dHlwZW9mIG1pbmVkVG9rZW4mJmxvdHRlcnlBbW91bnQmJiJzdHJpbmciPT10eXBlb2YgbG90dGVyeUFtb3VudCYmIWFwaS5CaWdOdW1iZXIobG90dGVyeUFtb3VudCkuaXNOYU4oKSYmYXBpLkJpZ051bWJlcihsb3R0ZXJ5QW1vdW50KS5ndCgwKSwiaW52YWxpZCBwYXJhbXMiKSYmYXBpLmFzc2VydChtaW5lZFRva2VuLmxlbmd0aD4wJiZtaW5lZFRva2VuLmxlbmd0aDw9MTAsImludmFsaWQgc3ltYm9sOiB1cHBlcmNhc2UgbGV0dGVycyBvbmx5LCBtYXggbGVuZ3RoIG9mIDEwIikmJmFwaS5hc3NlcnQoTnVtYmVyLmlzSW50ZWdlcihsb3R0ZXJ5V2lubmVycykmJmxvdHRlcnlXaW5uZXJzPj0xJiZsb3R0ZXJ5V2lubmVyczw9MjAsImludmFsaWQgbG90dGVyeVdpbm5lcnM6IGludGVnZXIgYmV0d2VlbiAxIGFuZCAyMCBvbmx5IikmJmFwaS5hc3NlcnQoTnVtYmVyLmlzSW50ZWdlcihsb3R0ZXJ5SW50ZXJ2YWxIb3VycykmJmxvdHRlcnlJbnRlcnZhbEhvdXJzPj0xJiZsb3R0ZXJ5SW50ZXJ2YWxIb3Vyczw9NzIwLCJpbnZhbGlkIGxvdHRlcnlJbnRlcnZhbEhvdXJzOiBpbnRlZ2VyIGJldHdlZW4gMSBhbmQgNzIwIG9ubHkiKSl7Y29uc3QgbWluZWRUb2tlbk9iamVjdD1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDptaW5lZFRva2VufSk7aWYoYXBpLmFzc2VydChtaW5lZFRva2VuT2JqZWN0LCJtaW5lZFRva2VuIGRvZXMgbm90IGV4aXN0IikmJmFwaS5hc3NlcnQobWluZWRUb2tlbk9iamVjdC5pc3N1ZXI9PT1hcGkuc2VuZGVyfHwiQkVFIj09PW1pbmVkVG9rZW5PYmplY3Quc3ltYm9sJiZhcGkuc2VuZGVyPT09YXBpLm93bmVyLCJtdXN0IGJlIGlzc3VlciBvZiBtaW5lZFRva2VuIikmJmFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihsb3R0ZXJ5QW1vdW50KS5kcCgpPD1taW5lZFRva2VuT2JqZWN0LnByZWNpc2lvbiwibWluZWRUb2tlbiBwcmVjaXNpb24gbWlzbWF0Y2ggZm9yIGxvdHRlcnlBbW91bnQiKSYmYXdhaXQgdmFsaWRhdGVUb2tlbk1pbmVycyh0b2tlbk1pbmVycyxuZnRUb2tlbk1pbmVyKSl7Y29uc3QgYmxvY2tEYXRlPW5ldyBEYXRlKGFwaS5oaXZlQmxvY2tUaW1lc3RhbXArIi4wMDBaIiksbmV3UG9vbD17bWluZWRUb2tlbjptaW5lZFRva2VuLGxvdHRlcnlXaW5uZXJzOmxvdHRlcnlXaW5uZXJzLGxvdHRlcnlJbnRlcnZhbEhvdXJzOmxvdHRlcnlJbnRlcnZhbEhvdXJzLGxvdHRlcnlBbW91bnQ6bG90dGVyeUFtb3VudCx0b2tlbk1pbmVyczp0b2tlbk1pbmVycyxuZnRUb2tlbk1pbmVyOm5mdFRva2VuTWluZXIsYWN0aXZlOiExLG5leHRMb3R0ZXJ5VGltZXN0YW1wOmFwaS5CaWdOdW1iZXIoYmxvY2tEYXRlLmdldFRpbWUoKSkucGx1cygzNjAwKmxvdHRlcnlJbnRlcnZhbEhvdXJzKjFlMykudG9OdW1iZXIoKSx0b3RhbFBvd2VyOiIwIn07bmV3UG9vbC5pZD1nZW5lcmF0ZVBvb2xJZChuZXdQb29sKTtjb25zdCBleGlzdGluZ1Bvb2w9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBvb2xzIix7aWQ6bmV3UG9vbC5pZH0pO2lmKGFwaS5hc3NlcnQoIWV4aXN0aW5nUG9vbCwicG9vbCBhbHJlYWR5IGV4aXN0cyIpKXtmb3IobGV0IGk9MDtpPHRva2VuTWluZXJzLmxlbmd0aDtpKz0xKXtjb25zdCB0b2tlbkNvbmZpZz10b2tlbk1pbmVyc1tpXTthd2FpdCBhcGkuZGIuaW5zZXJ0KCJ0b2tlblBvb2xzIix7c3ltYm9sOnRva2VuQ29uZmlnLnN5bWJvbCxpZDpuZXdQb29sLmlkfSl9bmZ0VG9rZW5NaW5lciYmYXdhaXQgYXBpLmRiLmluc2VydCgibmZ0VG9rZW5Qb29scyIse3N5bWJvbDpuZnRUb2tlbk1pbmVyLnN5bWJvbCxpZDpuZXdQb29sLmlkfSksbmV3UG9vbC51cGRhdGluZz17aW5Qcm9ncmVzczohMCx1cGRhdGVQb29sVGltZXN0YW1wOmFwaS5CaWdOdW1iZXIoYmxvY2tEYXRlLmdldFRpbWUoKSkudG9OdW1iZXIoKSx0b2tlbkluZGV4OjAsbmZ0VG9rZW5JbmRleDowLGxhc3RJZDowfTtjb25zdCBpbnNlcnRlZFBvb2w9YXdhaXQgYXBpLmRiLmluc2VydCgicG9vbHMiLG5ld1Bvb2wpO2FwaS5zZW5kZXIhPT1hcGkub3duZXImJmFwaS5CaWdOdW1iZXIocG9vbENyZWF0aW9uRmVlKS5ndCgwKSYmYXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJ0b2tlbnMiLCJ0cmFuc2ZlciIse3RvOiJudWxsIixzeW1ib2w6IkJFRSIscXVhbnRpdHk6cG9vbENyZWF0aW9uRmVlLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9KSxhcGkuZW1pdCgiY3JlYXRlUG9vbCIse2lkOmluc2VydGVkUG9vbC5pZH0pfX19fSxhY3Rpb25zLmNoZWNrUGVuZGluZ0xvdHRlcmllcz1hc3luYygpPT57aWYoYXBpLmFzc2VydCgibnVsbCI9PT1hcGkuc2VuZGVyLCJub3QgYXV0aG9yaXplZCIpKXtjb25zdCB0aW1lc3RhbXA9bmV3IERhdGUoYXBpLmhpdmVCbG9ja1RpbWVzdGFtcCsiLjAwMFoiKS5nZXRUaW1lKCkscGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KSx1cGRhdGluZ0xvdHRlcmllcz1hd2FpdCBhcGkuZGIuZmluZCgicG9vbHMiLHsidXBkYXRpbmcuaW5Qcm9ncmVzcyI6ITB9LHBhcmFtcy5tYXhMb3R0ZXJpZXNQZXJCbG9jaywwLFt7aW5kZXg6ImlkIixkZXNjZW5kaW5nOiExfV0pO2ZvcihsZXQgaT0wO2k8dXBkYXRpbmdMb3R0ZXJpZXMubGVuZ3RoO2krPTEpe2NvbnN0IHBvb2w9dXBkYXRpbmdMb3R0ZXJpZXNbaV07YXdhaXQgcmVzdW1lUG93ZXJVcGRhdGUocG9vbCxwYXJhbXMpfWNvbnN0IHBlbmRpbmdMb3R0ZXJpZXM9YXdhaXQgYXBpLmRiLmZpbmQoInBvb2xzIix7YWN0aXZlOiEwLCJ1cGRhdGluZy5pblByb2dyZXNzIjohMSxuZXh0TG90dGVyeVRpbWVzdGFtcDp7JGx0ZTp0aW1lc3RhbXB9fSxwYXJhbXMubWF4TG90dGVyaWVzUGVyQmxvY2ssMCxbe2luZGV4OiJpZCIsZGVzY2VuZGluZzohMX1dKTtmb3IobGV0IGk9MDtpPHBlbmRpbmdMb3R0ZXJpZXMubGVuZ3RoO2krPTEpe2NvbnN0IHBvb2w9cGVuZGluZ0xvdHRlcmllc1tpXTthd2FpdCBydW5Mb3R0ZXJ5KHBvb2wscGFyYW1zKX19fSxhY3Rpb25zLmhhbmRsZVN0YWtlQ2hhbmdlPWFzeW5jIHBheWxvYWQ9Pntjb25zdHthY2NvdW50OmFjY291bnQsc3ltYm9sOnN5bWJvbCxxdWFudGl0eTpxdWFudGl0eSxkZWxlZ2F0ZWQ6ZGVsZWdhdGVkLGNhbGxpbmdDb250cmFjdEluZm86Y2FsbGluZ0NvbnRyYWN0SW5mb309cGF5bG9hZDthcGkuYXNzZXJ0KGNhbGxpbmdDb250cmFjdEluZm8mJiJ0b2tlbnMiPT09Y2FsbGluZ0NvbnRyYWN0SW5mby5uYW1lLCJtdXN0IGJlIGNhbGxlZCBmcm9tIHRva2VucyBjb250cmFjdCIpJiZhd2FpdCBmaW5kQW5kUHJvY2Vzc0FsbCgibWluaW5nIiwidG9rZW5Qb29scyIse3N5bWJvbDpzeW1ib2x9LGFzeW5jIHRva2VuUG9vbD0+e2NvbnN0IHBvb2w9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBvb2xzIix7aWQ6dG9rZW5Qb29sLmlkfSk7bGV0IGFkanVzdGVkO2FkanVzdGVkPWRlbGVnYXRlZD9hd2FpdCB1cGRhdGVNaW5pbmdQb3dlcihwb29sLHN5bWJvbCxhY2NvdW50LDAscXVhbnRpdHkpOmF3YWl0IHVwZGF0ZU1pbmluZ1Bvd2VyKHBvb2wsc3ltYm9sLGFjY291bnQscXVhbnRpdHksMCkscG9vbC50b3RhbFBvd2VyPWFkanVzdGVkLnBsdXMocG9vbC50b3RhbFBvd2VyKSxhd2FpdCBhcGkuZGIudXBkYXRlKCJwb29scyIscG9vbCl9KX0sYWN0aW9ucy5oYW5kbGVOZnRDaGFuZ2U9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3N5bWJvbDpzeW1ib2wsbmZ0Om5mdCxhZGQ6YWRkLGNhbGxpbmdDb250cmFjdEluZm86Y2FsbGluZ0NvbnRyYWN0SW5mb309cGF5bG9hZDthcGkuYXNzZXJ0KGNhbGxpbmdDb250cmFjdEluZm8mJiJuZnQiPT09Y2FsbGluZ0NvbnRyYWN0SW5mby5uYW1lLCJtdXN0IGJlIGNhbGxlZCBmcm9tIG5mdCBjb250cmFjdCIpJiZhd2FpdCBmaW5kQW5kUHJvY2Vzc0FsbCgibWluaW5nIiwibmZ0VG9rZW5Qb29scyIse3N5bWJvbDpzeW1ib2x9LGFzeW5jIHRva2VuUG9vbD0+e2NvbnN0IHBvb2w9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBvb2xzIix7aWQ6dG9rZW5Qb29sLmlkfSk7aWYocG9vbC51cGRhdGluZy5pblByb2dyZXNzJiZwb29sLnVwZGF0aW5nLnRva2VuSW5kZXg9PT1wb29sLnRva2VuTWluZXJzLmxlbmd0aCYmcG9vbC51cGRhdGluZy5sYXN0SWQ8bmZ0Ll9pZClyZXR1cm47Y29uc3QgdHlwZVByb3BlcnRpZXM9cG9vbC5uZnRUb2tlbk1pbmVyLnR5cGVNYXBbbmZ0LnByb3BlcnRpZXNbcG9vbC5uZnRUb2tlbk1pbmVyLnR5cGVGaWVsZF1dO2lmKHR5cGVQcm9wZXJ0aWVzKXtjb25zdCBhZGp1c3RlZD1hd2FpdCB1cGRhdGVOZnRNaW5pbmdQb3dlcihwb29sLG5mdCx0eXBlUHJvcGVydGllcyxhZGQscG9vbC51cGRhdGluZy51cGRhdGVQb29sVGltZXN0YW1wKTtwb29sLnRvdGFsUG93ZXI9YWRqdXN0ZWQucGx1cyhwb29sLnRvdGFsUG93ZXIpLGF3YWl0IGFwaS5kYi51cGRhdGUoInBvb2xzIixwb29sKX19KX07"}}}