{"id":"ssc-mainnet-hive","json":{"contractName":"contract","contractAction":"update","contractPayload":{"name":"marketpools","params":"","code":"Y29uc3QgVHJhZGVUeXBlPVsiZXhhY3RJbnB1dCIsImV4YWN0T3V0cHV0Il07ZnVuY3Rpb24gZ2V0UXVvdGUoYW1vdW50LGxpcXVpZGl0eUluLGxpcXVpZGl0eU91dCl7cmV0dXJuISghYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKGFtb3VudCkuZ3QoMCksImluc3VmZmljaWVudCBhbW91bnQiKXx8IWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihsaXF1aWRpdHlJbikuZ3QoMCkmJmFwaS5CaWdOdW1iZXIobGlxdWlkaXR5T3V0KS5ndCgwKSwiaW5zdWZmaWNpZW50IGxpcXVpZGl0eSIpKSYmYXBpLkJpZ051bWJlcihhbW91bnQpLnRpbWVzKGxpcXVpZGl0eU91dCkuZGl2aWRlZEJ5KGxpcXVpZGl0eUluKX1mdW5jdGlvbiBnZXRBbW91bnRJbihwYXJhbXMsYW1vdW50T3V0LGxpcXVpZGl0eUluLGxpcXVpZGl0eU91dCl7aWYoIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihhbW91bnRPdXQpLmd0KDApLCJpbnN1ZmZpY2llbnQgb3V0cHV0IGFtb3VudCIpfHwhYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKGxpcXVpZGl0eUluKS5ndCgwKSYmYXBpLkJpZ051bWJlcihsaXF1aWRpdHlPdXQpLmd0KDApJiZhcGkuQmlnTnVtYmVyKGFtb3VudE91dCkubHQobGlxdWlkaXR5T3V0KSwiaW5zdWZmaWNpZW50IGxpcXVpZGl0eSIpKXJldHVybiExO2NvbnN0IG51bT1hcGkuQmlnTnVtYmVyKGxpcXVpZGl0eUluKS50aW1lcyhhbW91bnRPdXQpLGRlbj1hcGkuQmlnTnVtYmVyKGxpcXVpZGl0eU91dCkubWludXMoYW1vdW50T3V0KS50aW1lcyhwYXJhbXMudHJhZGVGZWVNdWwpO3JldHVybiBudW0uZGl2aWRlZEJ5KGRlbil9ZnVuY3Rpb24gZ2V0QW1vdW50T3V0KHBhcmFtcyxhbW91bnRJbixsaXF1aWRpdHlJbixsaXF1aWRpdHlPdXQpe2lmKCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIoYW1vdW50SW4pLmd0KDApLCJpbnN1ZmZpY2llbnQgb3V0cHV0IGFtb3VudCIpfHwhYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKGxpcXVpZGl0eUluKS5ndCgwKSYmYXBpLkJpZ051bWJlcihsaXF1aWRpdHlPdXQpLmd0KDApLCJpbnN1ZmZpY2llbnQgbGlxdWlkaXR5IikpcmV0dXJuITE7Y29uc3QgYW1vdW50SW5XaXRoRmVlPWFwaS5CaWdOdW1iZXIoYW1vdW50SW4pLnRpbWVzKHBhcmFtcy50cmFkZUZlZU11bCksbnVtPWFwaS5CaWdOdW1iZXIoYW1vdW50SW5XaXRoRmVlKS50aW1lcyhsaXF1aWRpdHlPdXQpLGRlbj1hcGkuQmlnTnVtYmVyKGxpcXVpZGl0eUluKS5wbHVzKGFtb3VudEluV2l0aEZlZSksYW1vdW50T3V0PW51bS5kaXZpZGVkQnkoZGVuKTtyZXR1cm4hIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihhbW91bnRPdXQpLmx0KGxpcXVpZGl0eU91dCksImluc3VmZmljaWVudCBsaXF1aWRpdHkiKSYmYW1vdW50T3V0fWFzeW5jIGZ1bmN0aW9uIHZhbGlkYXRlT3JhY2xlKHBvb2wsbmV3UHJpY2UsbWF4RGV2aWF0aW9uPWFwaS5CaWdOdW1iZXIoIjAuMDEiKSl7Y29uc3RbYmFzZVN5bWJvbCxxdW90ZVN5bWJvbF09cG9vbC50b2tlblBhaXIuc3BsaXQoIjoiKSxiYXNlTWV0cmljcz0iU1dBUC5ISVZFIiE9PWJhc2VTeW1ib2w/YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJtYXJrZXQiLCJtZXRyaWNzIix7c3ltYm9sOmJhc2VTeW1ib2x9KTp7bGFzdFByaWNlOjF9LHF1b3RlTWV0cmljcz0iU1dBUC5ISVZFIiE9PXF1b3RlU3ltYm9sP2F3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgibWFya2V0IiwibWV0cmljcyIse3N5bWJvbDpxdW90ZVN5bWJvbH0pOntsYXN0UHJpY2U6MX07aWYoIWJhc2VNZXRyaWNzfHwhcXVvdGVNZXRyaWNzKXJldHVybiBudWxsO2NvbnN0IG9yYWNsZT1hcGkuQmlnTnVtYmVyKGJhc2VNZXRyaWNzLmxhc3RQcmljZSkuZGl2aWRlZEJ5KHF1b3RlTWV0cmljcy5sYXN0UHJpY2UpLGRldj1hcGkuQmlnTnVtYmVyKG5ld1ByaWNlKS5taW51cyhvcmFjbGUpLmFicygpLmRpdmlkZWRCeShvcmFjbGUpO3JldHVybiEhYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKGRldikubHRlKG1heERldmlhdGlvbiksImV4Y2VlZGVkIG1heCBkZXZpYXRpb24gZnJvbSBvcmRlciBib29rIil9YXN5bmMgZnVuY3Rpb24gdmFsaWRhdGVUb2tlblBhaXIodG9rZW5QYWlyKXtpZighYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHRva2VuUGFpciYmLTEhPT10b2tlblBhaXIuaW5kZXhPZigiOiIpLCJpbnZhbGlkIHRva2VuUGFpciBmb3JtYXQiKSlyZXR1cm4hMTtjb25zdFtiYXNlU3ltYm9sLHF1b3RlU3ltYm9sXT10b2tlblBhaXIuc3BsaXQoIjoiKTtyZXR1cm4hIShhcGkuYXNzZXJ0KGJhc2VTeW1ib2whPT1xdW90ZVN5bWJvbCwidG9rZW5QYWlyIGNhbm5vdCBiZSB0aGUgc2FtZSB0b2tlbiIpJiZhcGkuYXNzZXJ0KGF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOmJhc2VTeW1ib2x9KSwiYmFzZVN5bWJvbCBkb2VzIG5vdCBleGlzdCIpJiZhcGkuYXNzZXJ0KGF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOnF1b3RlU3ltYm9sfSksInF1b3RlU3ltYm9sIGRvZXMgbm90IGV4aXN0IikpfWFzeW5jIGZ1bmN0aW9uIHZhbGlkYXRlUG9vbCh0b2tlblBhaXIpe2NvbnN0W2Jhc2VTeW1ib2wscXVvdGVTeW1ib2xdPXRva2VuUGFpci5zcGxpdCgiOiIpLHBvb2w9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBvb2xzIix7dG9rZW5QYWlyOnRva2VuUGFpcn0pLHJldlBvb2w9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBvb2xzIix7dG9rZW5QYWlyOltxdW90ZVN5bWJvbCxiYXNlU3ltYm9sXS5qb2luKCI6Iil9KTtyZXR1cm4hIWFwaS5hc3NlcnQobnVsbD09PXBvb2wmJm51bGw9PT1yZXZQb29sLCJhIHBvb2wgYWxyZWFkeSBleGlzdHMgZm9yIHRoaXMgdG9rZW5QYWlyIil9YXN5bmMgZnVuY3Rpb24gdXBkYXRlUG9vbFN0YXRzKHBvb2wsYmFzZUFkanVzdGVkLHF1b3RlQWRqdXN0ZWQsc2hhcmVzQWRqdXN0ZWQsc3dhcCl7Y29uc3QgdVBvb2w9cG9vbDt1UG9vbC5iYXNlUXVhbnRpdHk9YXBpLkJpZ051bWJlcihwb29sLmJhc2VRdWFudGl0eSkucGx1cyhiYXNlQWRqdXN0ZWQpLnRvRml4ZWQocG9vbC5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9IQUxGX1VQKSx1UG9vbC5xdW90ZVF1YW50aXR5PWFwaS5CaWdOdW1iZXIocG9vbC5xdW90ZVF1YW50aXR5KS5wbHVzKHF1b3RlQWRqdXN0ZWQpLnRvRml4ZWQocG9vbC5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9IQUxGX1VQKSxhcGkuQmlnTnVtYmVyKHVQb29sLmJhc2VRdWFudGl0eSkuZ3QoMCkmJmFwaS5CaWdOdW1iZXIodVBvb2wucXVvdGVRdWFudGl0eSkuZ3QoMCkmJih1UG9vbC5iYXNlUHJpY2U9YXBpLkJpZ051bWJlcih1UG9vbC5xdW90ZVF1YW50aXR5KS5kaXZpZGVkQnkodVBvb2wuYmFzZVF1YW50aXR5KS50b0ZpeGVkKHBvb2wucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTiksdVBvb2wucXVvdGVQcmljZT1hcGkuQmlnTnVtYmVyKHVQb29sLmJhc2VRdWFudGl0eSkuZGl2aWRlZEJ5KHVQb29sLnF1b3RlUXVhbnRpdHkpLnRvRml4ZWQocG9vbC5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSksc2hhcmVzQWRqdXN0ZWQmJih1UG9vbC50b3RhbFNoYXJlcz1hcGkuQmlnTnVtYmVyKHBvb2wudG90YWxTaGFyZXMpLnBsdXMoc2hhcmVzQWRqdXN0ZWQpKSxzd2FwJiYodVBvb2wuYmFzZVZvbHVtZT1hcGkuQmlnTnVtYmVyKHVQb29sLmJhc2VWb2x1bWUpLnBsdXMoTWF0aC5hYnMoYmFzZUFkanVzdGVkKSkudG9GaXhlZChwb29sLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pLHVQb29sLnF1b3RlVm9sdW1lPWFwaS5CaWdOdW1iZXIodVBvb2wucXVvdGVWb2x1bWUpLnBsdXMoTWF0aC5hYnMocXVvdGVBZGp1c3RlZCkpLnRvRml4ZWQocG9vbC5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSksYXdhaXQgYXBpLmRiLnVwZGF0ZSgicG9vbHMiLHVQb29sKX1hY3Rpb25zLmNyZWF0ZVNTQz1hc3luYygpPT57aWYoITE9PT1hd2FpdCBhcGkuZGIudGFibGVFeGlzdHMoInBvb2xzIikpe2F3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZSgicG9vbHMiLFsidG9rZW5QYWlyIl0pLGF3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZSgibGlxdWlkaXR5UG9zaXRpb25zIixbImFjY291bnQiLCJ0b2tlblBhaXIiXSksYXdhaXQgYXBpLmRiLmNyZWF0ZVRhYmxlKCJwYXJhbXMiKTtjb25zdCBwYXJhbXM9e3Bvb2xDcmVhdGlvbkZlZToiMTAwMCJ9O2F3YWl0IGFwaS5kYi5pbnNlcnQoInBhcmFtcyIscGFyYW1zKX1lbHNle2NvbnN0IHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7fSk7aWYocGFyYW1zLnVwZGF0ZUluZGV4KTE9PT1wYXJhbXMudXBkYXRlSW5kZXgmJihwYXJhbXMudHJhZGVGZWVNdWw9IjAuOTk3NSIscGFyYW1zLnVwZGF0ZUluZGV4PTIsYXdhaXQgYXBpLmRiLnVwZGF0ZSgicGFyYW1zIixwYXJhbXMpKTtlbHNle2NvbnN0IGJsb2NrRGF0ZT1uZXcgRGF0ZShgJHthcGkuaGl2ZUJsb2NrVGltZXN0YW1wfS4wMDBaYCk7bGV0IGxwVXBkYXRlPWF3YWl0IGFwaS5kYi5maW5kKCJsaXF1aWRpdHlQb3NpdGlvbnMiLHt0aW1lRmFjdG9yOnskZXhpc3RzOiExfX0pO2Zvcig7bHBVcGRhdGUubGVuZ3RoPjA7KXtmb3IobGV0IGk9MDtpPGxwVXBkYXRlLmxlbmd0aDtpKz0xKXtjb25zdCBscD1scFVwZGF0ZVtpXTtscC50aW1lRmFjdG9yPWJsb2NrRGF0ZS5nZXRUaW1lKCksYXdhaXQgYXBpLmRiLnVwZGF0ZSgibGlxdWlkaXR5UG9zaXRpb25zIixscCl9bHBVcGRhdGU9YXdhaXQgYXBpLmRiLmZpbmQoImxpcXVpZGl0eVBvc2l0aW9ucyIse3RpbWVGYWN0b3I6eyRleGlzdHM6ITF9fSl9cGFyYW1zLnVwZGF0ZUluZGV4PTEsYXdhaXQgYXBpLmRiLnVwZGF0ZSgicGFyYW1zIixwYXJhbXMpfX19LGFjdGlvbnMudXBkYXRlUGFyYW1zPWFzeW5jIHBheWxvYWQ9Pntjb25zdHtwb29sQ3JlYXRpb25GZWU6cG9vbENyZWF0aW9uRmVlfT1wYXlsb2FkO2lmKGFwaS5zZW5kZXIhPT1hcGkub3duZXIpcmV0dXJuO2NvbnN0IHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7fSk7aWYocG9vbENyZWF0aW9uRmVlKXtpZighYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHBvb2xDcmVhdGlvbkZlZSYmIWFwaS5CaWdOdW1iZXIocG9vbENyZWF0aW9uRmVlKS5pc05hTigpJiZhcGkuQmlnTnVtYmVyKHBvb2xDcmVhdGlvbkZlZSkuZ3RlKDApLCJpbnZhbGlkIHBvb2xDcmVhdGlvbkZlZSIpKXJldHVybjtwYXJhbXMucG9vbENyZWF0aW9uRmVlPXBvb2xDcmVhdGlvbkZlZX1hd2FpdCBhcGkuZGIudXBkYXRlKCJwYXJhbXMiLHBhcmFtcyl9LGFjdGlvbnMuY3JlYXRlUG9vbD1hc3luYyBwYXlsb2FkPT57Y29uc3R7dG9rZW5QYWlyOnRva2VuUGFpcixpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkLHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7fSkse3Bvb2xDcmVhdGlvbkZlZTpwb29sQ3JlYXRpb25GZWV9PXBhcmFtcyx1dGlsaXR5VG9rZW5CYWxhbmNlPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwiYmFsYW5jZXMiLHthY2NvdW50OmFwaS5zZW5kZXIsc3ltYm9sOiJCRUUifSksYXV0aG9yaXplZENyZWF0aW9uPSEoIWFwaS5CaWdOdW1iZXIocG9vbENyZWF0aW9uRmVlKS5sdGUoMCkmJmFwaS5zZW5kZXIhPT1hcGkub3duZXIpfHx1dGlsaXR5VG9rZW5CYWxhbmNlJiZhcGkuQmlnTnVtYmVyKHV0aWxpdHlUb2tlbkJhbGFuY2UuYmFsYW5jZSkuZ3RlKHBvb2xDcmVhdGlvbkZlZSk7aWYoYXBpLmFzc2VydChhdXRob3JpemVkQ3JlYXRpb24sInlvdSBtdXN0IGhhdmUgZW5vdWdoIHRva2VucyB0byBjb3ZlciB0aGUgY3JlYXRpb24gZmVlIikmJmF3YWl0IHZhbGlkYXRlVG9rZW5QYWlyKHRva2VuUGFpcikmJmF3YWl0IHZhbGlkYXRlUG9vbCh0b2tlblBhaXIpJiZhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSB0cmFuc2FjdGlvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSl7Y29uc3RbYmFzZVN5bWJvbCxxdW90ZVN5bWJvbF09dG9rZW5QYWlyLnNwbGl0KCI6IiksYmFzZVRva2VuPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOmJhc2VTeW1ib2x9KSxxdW90ZVRva2VuPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOnF1b3RlU3ltYm9sfSksbmV3UG9vbD17dG9rZW5QYWlyOnRva2VuUGFpcixiYXNlUXVhbnRpdHk6MCxiYXNlVm9sdW1lOjAsYmFzZVByaWNlOjAscXVvdGVRdWFudGl0eTowLHF1b3RlVm9sdW1lOjAscXVvdGVQcmljZTowLHRvdGFsU2hhcmVzOjAscHJlY2lzaW9uOk1hdGgubWF4KGJhc2VUb2tlbi5wcmVjaXNpb24scXVvdGVUb2tlbi5wcmVjaXNpb24pLGNyZWF0b3I6YXBpLnNlbmRlcn07YXdhaXQgYXBpLmRiLmluc2VydCgicG9vbHMiLG5ld1Bvb2wpLGFwaS5zZW5kZXIhPT1hcGkub3duZXImJmFwaS5CaWdOdW1iZXIocG9vbENyZWF0aW9uRmVlKS5ndCgwKSYmYXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJ0b2tlbnMiLCJ0cmFuc2ZlciIse3RvOiJudWxsIixzeW1ib2w6IkJFRSIscXVhbnRpdHk6cG9vbENyZWF0aW9uRmVlLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9KSxhcGkuZW1pdCgiY3JlYXRlUG9vbCIse3Rva2VuUGFpcjp0b2tlblBhaXJ9KX19LGFjdGlvbnMuY3JlYXRlUmV3YXJkUG9vbD1hc3luYyBwYXlsb2FkPT57Y29uc3R7dG9rZW5QYWlyOnRva2VuUGFpcixsb3R0ZXJ5V2lubmVyczpsb3R0ZXJ5V2lubmVycyxsb3R0ZXJ5SW50ZXJ2YWxIb3Vyczpsb3R0ZXJ5SW50ZXJ2YWxIb3Vycyxsb3R0ZXJ5QW1vdW50OmxvdHRlcnlBbW91bnQsbWluZWRUb2tlbjptaW5lZFRva2VuLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQscGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgibWluaW5nIiwicGFyYW1zIix7fSkse3Bvb2xDcmVhdGlvbkZlZTpwb29sQ3JlYXRpb25GZWV9PXBhcmFtcyx1dGlsaXR5VG9rZW5CYWxhbmNlPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwiYmFsYW5jZXMiLHthY2NvdW50OmFwaS5zZW5kZXIsc3ltYm9sOiJCRUUifSksYXV0aG9yaXplZENyZWF0aW9uPSEoIWFwaS5CaWdOdW1iZXIocG9vbENyZWF0aW9uRmVlKS5sdGUoMCkmJmFwaS5zZW5kZXIhPT1hcGkub3duZXIpfHx1dGlsaXR5VG9rZW5CYWxhbmNlJiZhcGkuQmlnTnVtYmVyKHV0aWxpdHlUb2tlbkJhbGFuY2UuYmFsYW5jZSkuZ3RlKHBvb2xDcmVhdGlvbkZlZSkscG9vbFBvc2l0aW9ucz1hd2FpdCBhcGkuZGIuZmluZCgibGlxdWlkaXR5UG9zaXRpb25zIix7dG9rZW5QYWlyOnRva2VuUGFpcn0pO2lmKGFwaS5hc3NlcnQoYXV0aG9yaXplZENyZWF0aW9uLCJ5b3UgbXVzdCBoYXZlIGVub3VnaCB0b2tlbnMgdG8gY292ZXIgdGhlIGNyZWF0aW9uIGZlZSIpJiZhd2FpdCB2YWxpZGF0ZVRva2VuUGFpcih0b2tlblBhaXIpJiZhcGkuYXNzZXJ0KHBvb2xQb3NpdGlvbnMmJnBvb2xQb3NpdGlvbnMubGVuZ3RoPjAsInBvb2wgbXVzdCBoYXZlIGxpcXVpZGl0eSBwb3NpdGlvbnMiKSYmYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgdHJhbnNhY3Rpb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5Iikpe2NvbnN0IHJld2FyZFBvb2xJZD1gJHttaW5lZFRva2VufTpFWFQtJHt0b2tlblBhaXIucmVwbGFjZSgiOiIsIiIpfWAscmVzPWF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgibWluaW5nIiwiY3JlYXRlUG9vbCIse2xvdHRlcnlXaW5uZXJzOmxvdHRlcnlXaW5uZXJzLGxvdHRlcnlJbnRlcnZhbEhvdXJzOmxvdHRlcnlJbnRlcnZhbEhvdXJzLGxvdHRlcnlBbW91bnQ6bG90dGVyeUFtb3VudCxtaW5lZFRva2VuOm1pbmVkVG9rZW4sZXh0ZXJuYWxNaW5lcnM6dG9rZW5QYWlyfSk7dm9pZCAwPT09cmVzLmVycm9ycyYmcmVzLmV2ZW50cyYmdm9pZCAwIT09cmVzLmV2ZW50cy5maW5kKChlbD0+Im1pbmluZyI9PT1lbC5jb250cmFjdCYmImNyZWF0ZVBvb2wiPT09ZWwuZXZlbnQpKSYmKGF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgibWluaW5nIiwic2V0QWN0aXZlIix7aWQ6cmV3YXJkUG9vbElkLGFjdGl2ZTohMH0pLGFwaS5lbWl0KCJjcmVhdGVSZXdhcmRQb29sIix7dG9rZW5QYWlyOnRva2VuUGFpcixyZXdhcmRQb29sSWQ6cmV3YXJkUG9vbElkfSkpfX0sYWN0aW9ucy51cGRhdGVSZXdhcmRQb29sPWFzeW5jIHBheWxvYWQ9Pntjb25zdHt0b2tlblBhaXI6dG9rZW5QYWlyLGxvdHRlcnlXaW5uZXJzOmxvdHRlcnlXaW5uZXJzLGxvdHRlcnlJbnRlcnZhbEhvdXJzOmxvdHRlcnlJbnRlcnZhbEhvdXJzLGxvdHRlcnlBbW91bnQ6bG90dGVyeUFtb3VudCxtaW5lZFRva2VuOm1pbmVkVG9rZW4saXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZCxwYXJhbXM9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJtaW5pbmciLCJwYXJhbXMiLHt9KSx7cG9vbFVwZGF0ZUZlZTpwb29sVXBkYXRlRmVlfT1wYXJhbXMsdXRpbGl0eVRva2VuQmFsYW5jZT1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsImJhbGFuY2VzIix7YWNjb3VudDphcGkuc2VuZGVyLHN5bWJvbDoiQkVFIn0pLGF1dGhvcml6ZWRVcGRhdGU9ISghYXBpLkJpZ051bWJlcihwb29sVXBkYXRlRmVlKS5sdGUoMCkmJmFwaS5zZW5kZXIhPT1hcGkub3duZXIpfHx1dGlsaXR5VG9rZW5CYWxhbmNlJiZhcGkuQmlnTnVtYmVyKHV0aWxpdHlUb2tlbkJhbGFuY2UuYmFsYW5jZSkuZ3RlKHBvb2xVcGRhdGVGZWUpLHBvb2xQb3NpdGlvbnM9YXdhaXQgYXBpLmRiLmZpbmQoImxpcXVpZGl0eVBvc2l0aW9ucyIse3Rva2VuUGFpcjp0b2tlblBhaXJ9KTtpZihhcGkuYXNzZXJ0KGF1dGhvcml6ZWRVcGRhdGUsInlvdSBtdXN0IGhhdmUgZW5vdWdoIHRva2VucyB0byBjb3ZlciB0aGUgdXBkYXRlIGZlZSIpJiZhd2FpdCB2YWxpZGF0ZVRva2VuUGFpcih0b2tlblBhaXIpJiZhcGkuYXNzZXJ0KHBvb2xQb3NpdGlvbnMmJnBvb2xQb3NpdGlvbnMubGVuZ3RoPjAsInBvb2wgbXVzdCBoYXZlIGxpcXVpZGl0eSBwb3NpdGlvbnMiKSYmYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgdHJhbnNhY3Rpb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5Iikpe2NvbnN0IHJld2FyZFBvb2xJZD1gJHttaW5lZFRva2VufTpFWFQtJHt0b2tlblBhaXIucmVwbGFjZSgiOiIsIiIpfWAscmVzPWF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgibWluaW5nIiwidXBkYXRlUG9vbCIse2lkOnJld2FyZFBvb2xJZCxsb3R0ZXJ5V2lubmVyczpsb3R0ZXJ5V2lubmVycyxsb3R0ZXJ5SW50ZXJ2YWxIb3Vyczpsb3R0ZXJ5SW50ZXJ2YWxIb3Vycyxsb3R0ZXJ5QW1vdW50OmxvdHRlcnlBbW91bnR9KTt2b2lkIDA9PT1yZXMuZXJyb3JzJiZyZXMuZXZlbnRzJiZ2b2lkIDAhPT1yZXMuZXZlbnRzLmZpbmQoKGVsPT4ibWluaW5nIj09PWVsLmNvbnRyYWN0JiYidXBkYXRlUG9vbCI9PT1lbC5ldmVudCkpJiZhcGkuZW1pdCgidXBkYXRlUmV3YXJkUG9vbCIse3Rva2VuUGFpcjp0b2tlblBhaXIscmV3YXJkUG9vbElkOnJld2FyZFBvb2xJZH0pfX0sYWN0aW9ucy5zZXRSZXdhcmRQb29sQWN0aXZlPWFzeW5jIHBheWxvYWQ9Pntjb25zdHt0b2tlblBhaXI6dG9rZW5QYWlyLG1pbmVkVG9rZW46bWluZWRUb2tlbixhY3RpdmU6YWN0aXZlLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQ7aWYoIWFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIGN1c3RvbV9qc29uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpfHwhYXdhaXQgdmFsaWRhdGVUb2tlblBhaXIodG9rZW5QYWlyKSlyZXR1cm47Y29uc3QgcmV3YXJkUG9vbElkPWAke21pbmVkVG9rZW59OkVYVC0ke3Rva2VuUGFpci5yZXBsYWNlKCI6IiwiIil9YDt2b2lkIDA9PT0oYXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJtaW5pbmciLCJzZXRBY3RpdmUiLHtpZDpyZXdhcmRQb29sSWQsYWN0aXZlOmFjdGl2ZX0pKS5lcnJvcnMmJmFwaS5lbWl0KCJzZXRSZXdhcmRQb29sQWN0aXZlIix7cmV3YXJkUG9vbElkOnJld2FyZFBvb2xJZCxhY3RpdmU6YWN0aXZlfSl9LGFjdGlvbnMuYWRkTGlxdWlkaXR5PWFzeW5jIHBheWxvYWQ9Pntjb25zdHt0b2tlblBhaXI6dG9rZW5QYWlyLGJhc2VRdWFudGl0eTpiYXNlUXVhbnRpdHkscXVvdGVRdWFudGl0eTpxdW90ZVF1YW50aXR5LG1heFByaWNlSW1wYWN0Om1heFByaWNlSW1wYWN0LG1heERldmlhdGlvbjptYXhEZXZpYXRpb24saXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZighKGFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIHRyYW5zYWN0aW9uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiZhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgYmFzZVF1YW50aXR5JiZhcGkuQmlnTnVtYmVyKGJhc2VRdWFudGl0eSkuZ3QoMCksImludmFsaWQgYmFzZVF1YW50aXR5IikmJmFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBxdW90ZVF1YW50aXR5JiZhcGkuQmlnTnVtYmVyKHF1b3RlUXVhbnRpdHkpLmd0KDApLCJpbnZhbGlkIHF1b3RlUXVhbnRpdHkiKSYmYXdhaXQgdmFsaWRhdGVUb2tlblBhaXIodG9rZW5QYWlyKSkpcmV0dXJuO2xldCBhZGRQcmljZUltcGFjdD1hcGkuQmlnTnVtYmVyKCIwLjAxIik7aWYobWF4UHJpY2VJbXBhY3Qpe2lmKCFhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgbWF4UHJpY2VJbXBhY3QmJmFwaS5CaWdOdW1iZXIobWF4UHJpY2VJbXBhY3QpLmd0KDApJiZhcGkuQmlnTnVtYmVyKG1heFByaWNlSW1wYWN0KS5kcCgpPD0zLCJtYXhQcmljZUltcGFjdCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwIikpcmV0dXJuO2FkZFByaWNlSW1wYWN0PWFwaS5CaWdOdW1iZXIobWF4UHJpY2VJbXBhY3QpLmRpdmlkZWRCeSgxMDApfWxldCBhZGREZXZpYXRpb249YXBpLkJpZ051bWJlcigiMC4wMSIpO2lmKG1heERldmlhdGlvbil7aWYoIWFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBtYXhEZXZpYXRpb24mJmFwaS5CaWdOdW1iZXIobWF4RGV2aWF0aW9uKS5pc0ludGVnZXIoKSYmYXBpLkJpZ051bWJlcihtYXhEZXZpYXRpb24pLmd0ZSgwKSwibWF4RGV2aWF0aW9uIG11c3QgYmUgYW4gaW50ZWdlciBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMCIpKXJldHVybjthZGREZXZpYXRpb249YXBpLkJpZ051bWJlcihtYXhEZXZpYXRpb24pLmRpdmlkZWRCeSgxMDApfWNvbnN0W2Jhc2VTeW1ib2wscXVvdGVTeW1ib2xdPXRva2VuUGFpci5zcGxpdCgiOiIpLGJhc2VUb2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpiYXNlU3ltYm9sfSkscXVvdGVUb2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpxdW90ZVN5bWJvbH0pO2lmKCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIoYmFzZVF1YW50aXR5KS5kcCgpPD1iYXNlVG9rZW4ucHJlY2lzaW9uLCJiYXNlUXVhbnRpdHkgcHJlY2lzaW9uIG1pc21hdGNoIil8fCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIocXVvdGVRdWFudGl0eSkuZHAoKTw9cXVvdGVUb2tlbi5wcmVjaXNpb24sInF1b3RlUXVhbnRpdHkgcHJlY2lzaW9uIG1pc21hdGNoIikpcmV0dXJuO2NvbnN0IHBvb2w9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBvb2xzIix7dG9rZW5QYWlyOnRva2VuUGFpcn0pO2lmKGFwaS5hc3NlcnQocG9vbCwibm8gZXhpc3RpbmcgcG9vbCBmb3IgdG9rZW5QYWlyIikpe2lmKGFwaS5CaWdOdW1iZXIocG9vbC5iYXNlUXVhbnRpdHkpLmVxKDApJiZhcGkuQmlnTnVtYmVyKHBvb2wucXVvdGVRdWFudGl0eSkuZXEoMCkmJmFkZERldmlhdGlvbi5ndCgwKSYmITE9PT1hd2FpdCB2YWxpZGF0ZU9yYWNsZShwb29sLGFwaS5CaWdOdW1iZXIocXVvdGVRdWFudGl0eSkuZGl2aWRlZEJ5KGJhc2VRdWFudGl0eSksYWRkRGV2aWF0aW9uKSlyZXR1cm47bGV0IGFtb3VudEFkanVzdGVkO2NvbnN0IGJhc2VNaW49YXBpLkJpZ051bWJlcihiYXNlUXVhbnRpdHkpLnRpbWVzKGFwaS5CaWdOdW1iZXIoIjEiKS5taW51cyhhZGRQcmljZUltcGFjdCkpLHF1b3RlTWluPWFwaS5CaWdOdW1iZXIocXVvdGVRdWFudGl0eSkudGltZXMoYXBpLkJpZ051bWJlcigiMSIpLm1pbnVzKGFkZFByaWNlSW1wYWN0KSk7aWYoYXBpLkJpZ051bWJlcihwb29sLmJhc2VRdWFudGl0eSkuZ3QoMCkmJmFwaS5CaWdOdW1iZXIocG9vbC5xdW90ZVF1YW50aXR5KS5ndCgwKSl7Y29uc3QgcXVvdGVPcHRpbWFsPWdldFF1b3RlKGJhc2VRdWFudGl0eSxwb29sLmJhc2VRdWFudGl0eSxwb29sLnF1b3RlUXVhbnRpdHkpLnRvRml4ZWQocXVvdGVUb2tlbi5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9IQUxGX1VQKTtpZihhcGkuQmlnTnVtYmVyKHF1b3RlT3B0aW1hbCkubHRlKHF1b3RlUXVhbnRpdHkpKXtpZighYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKHF1b3RlT3B0aW1hbCkuZ3RlKHF1b3RlTWluKSwiZXhjZWVkZWQgbWF4IHByaWNlIGltcGFjdCBmb3IgYWRkaW5nIGxpcXVpZGl0eSIpKXJldHVybjthbW91bnRBZGp1c3RlZD1bYmFzZVF1YW50aXR5LHF1b3RlT3B0aW1hbF19ZWxzZXtjb25zdCBiYXNlT3B0aW1hbD1nZXRRdW90ZShxdW90ZVF1YW50aXR5LHBvb2wucXVvdGVRdWFudGl0eSxwb29sLmJhc2VRdWFudGl0eSkudG9GaXhlZChiYXNlVG9rZW4ucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfSEFMRl9VUCk7aWYoYXBpLkJpZ051bWJlcihiYXNlT3B0aW1hbCkubHRlKGJhc2VRdWFudGl0eSkpe2lmKCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIoYmFzZU9wdGltYWwpLmd0ZShiYXNlTWluKSwiZXhjZWVkZWQgbWF4IHByaWNlIGltcGFjdCBmb3IgYWRkaW5nIGxpcXVpZGl0eSIpKXJldHVybjthbW91bnRBZGp1c3RlZD1bYmFzZU9wdGltYWwscXVvdGVRdWFudGl0eV19fX1lbHNlIGFtb3VudEFkanVzdGVkPVtiYXNlUXVhbnRpdHkscXVvdGVRdWFudGl0eV07Y29uc3Qgc2VuZGVyQmFzZT1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsImJhbGFuY2VzIix7YWNjb3VudDphcGkuc2VuZGVyLHN5bWJvbDpiYXNlU3ltYm9sfSksc2VuZGVyUXVvdGU9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJiYWxhbmNlcyIse2FjY291bnQ6YXBpLnNlbmRlcixzeW1ib2w6cXVvdGVTeW1ib2x9KSxzZW5kZXJGdW5kZWQ9c2VuZGVyQmFzZSYmc2VuZGVyUXVvdGUmJmFwaS5CaWdOdW1iZXIoc2VuZGVyQmFzZS5iYWxhbmNlKS5ndGUoYW1vdW50QWRqdXN0ZWRbMF0pJiZhcGkuQmlnTnVtYmVyKHNlbmRlclF1b3RlLmJhbGFuY2UpLmd0ZShhbW91bnRBZGp1c3RlZFsxXSk7aWYoIWFwaS5hc3NlcnQoc2VuZGVyRnVuZGVkLCJpbnN1ZmZpY2llbnQgdG9rZW4gYmFsYW5jZSIpKXJldHVybjtsZXQgbmV3U2hhcmVzO2lmKG5ld1NoYXJlcz1hcGkuQmlnTnVtYmVyKHBvb2wudG90YWxTaGFyZXMpLmVxKDApP2FwaS5CaWdOdW1iZXIoYW1vdW50QWRqdXN0ZWRbMF0pLnRpbWVzKGFtb3VudEFkanVzdGVkWzFdKS5zcXJ0KCk6YXBpLkJpZ051bWJlci5taW4oYXBpLkJpZ051bWJlcihhbW91bnRBZGp1c3RlZFswXSkudGltZXMocG9vbC50b3RhbFNoYXJlcykuZGl2aWRlZEJ5KHBvb2wuYmFzZVF1YW50aXR5KSxhcGkuQmlnTnVtYmVyKGFtb3VudEFkanVzdGVkWzFdKS50aW1lcyhwb29sLnRvdGFsU2hhcmVzKS5kaXZpZGVkQnkocG9vbC5xdW90ZVF1YW50aXR5KSksIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihuZXdTaGFyZXMpLmd0KDApLCJpbnN1ZmZpY2llbnQgbGlxdWlkaXR5IGNyZWF0ZWQiKSlyZXR1cm47Y29uc3QgYmxvY2tEYXRlPW5ldyBEYXRlKGAke2FwaS5oaXZlQmxvY2tUaW1lc3RhbXB9LjAwMFpgKSxscD1hd2FpdCBhcGkuZGIuZmluZE9uZSgibGlxdWlkaXR5UG9zaXRpb25zIix7YWNjb3VudDphcGkuc2VuZGVyLHRva2VuUGFpcjp0b2tlblBhaXJ9KTtpZihscCl7Y29uc3QgZXhpc3RpbmdTaGFyZXM9bHAuc2hhcmVzLGZpbmFsU2hhcmVzPWFwaS5CaWdOdW1iZXIobHAuc2hhcmVzKS5wbHVzKG5ld1NoYXJlcyksdGltZVBhc3NlZD1hcGkuQmlnTnVtYmVyKGJsb2NrRGF0ZS5nZXRUaW1lKCkpLm1pbnVzKGxwLnRpbWVGYWN0b3IpLmFicygpLGRpZmZTaGFyZXM9YXBpLkJpZ051bWJlcihmaW5hbFNoYXJlcykubWludXMoZXhpc3RpbmdTaGFyZXMpLmFicygpLmRpdmlkZWRCeShhcGkuQmlnTnVtYmVyLm1heChmaW5hbFNoYXJlcyxleGlzdGluZ1NoYXJlcykpLHRpbWVPZmZzZXQ9YXBpLkJpZ051bWJlcih0aW1lUGFzc2VkKS50aW1lcyhkaWZmU2hhcmVzKTtscC5zaGFyZXM9ZmluYWxTaGFyZXMsbHAudGltZUZhY3Rvcj1hcGkuQmlnTnVtYmVyLm1pbihhcGkuQmlnTnVtYmVyKGxwLnRpbWVGYWN0b3IpLnBsdXModGltZU9mZnNldCkuZHAoMCxhcGkuQmlnTnVtYmVyLlJPVU5EX0hBTEZfVVApLGJsb2NrRGF0ZS5nZXRUaW1lKCkpLnRvTnVtYmVyKCksYXdhaXQgYXBpLmRiLnVwZGF0ZSgibGlxdWlkaXR5UG9zaXRpb25zIixscCl9ZWxzZXtjb25zdCBuZXdscD17YWNjb3VudDphcGkuc2VuZGVyLHRva2VuUGFpcjp0b2tlblBhaXIsc2hhcmVzOm5ld1NoYXJlcyx0aW1lRmFjdG9yOmJsb2NrRGF0ZS5nZXRUaW1lKCl9O2F3YWl0IGFwaS5kYi5pbnNlcnQoImxpcXVpZGl0eVBvc2l0aW9ucyIsbmV3bHApfWNvbnN0IGJhc2VSZXM9YXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJ0b2tlbnMiLCJ0cmFuc2ZlclRvQ29udHJhY3QiLHtzeW1ib2w6YmFzZVN5bWJvbCxxdWFudGl0eTphbW91bnRBZGp1c3RlZFswXSx0bzoibWFya2V0cG9vbHMifSkscXVvdGVSZXM9YXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJ0b2tlbnMiLCJ0cmFuc2ZlclRvQ29udHJhY3QiLHtzeW1ib2w6cXVvdGVTeW1ib2wscXVhbnRpdHk6YW1vdW50QWRqdXN0ZWRbMV0sdG86Im1hcmtldHBvb2xzIn0pO2lmKCFhcGkuYXNzZXJ0KHZvaWQgMD09PWJhc2VSZXMuZXJyb3JzJiZ2b2lkIDA9PT1xdW90ZVJlcy5lcnJvcnMsImRlcG9zaXQgdHJhbnNmZXIgZXJyb3JzIikpcmV0dXJuO2F3YWl0IHVwZGF0ZVBvb2xTdGF0cyhwb29sLGFtb3VudEFkanVzdGVkWzBdLGFtb3VudEFkanVzdGVkWzFdLG5ld1NoYXJlcywhMSksYXBpLmVtaXQoImFkZExpcXVpZGl0eSIse2Jhc2VTeW1ib2w6YmFzZVN5bWJvbCxxdW90ZVN5bWJvbDpxdW90ZVN5bWJvbH0pfX0sYWN0aW9ucy5yZW1vdmVMaXF1aWRpdHk9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3Rva2VuUGFpcjp0b2tlblBhaXIsc2hhcmVzT3V0OnNoYXJlc091dCxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkO2lmKCFhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSB0cmFuc2FjdGlvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKXx8IWFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBzaGFyZXNPdXQmJmFwaS5CaWdOdW1iZXIoc2hhcmVzT3V0KS5ndCgwKSYmYXBpLkJpZ051bWJlcihzaGFyZXNPdXQpLmx0ZSgxMDApJiZhcGkuQmlnTnVtYmVyKHNoYXJlc091dCkuZHAoKTw9MywiaW52YWxpZCBzaGFyZXNPdXQsIG11c3QgYmUgPiAwIDw9IDEwMCIpfHwhYXdhaXQgdmFsaWRhdGVUb2tlblBhaXIodG9rZW5QYWlyKSlyZXR1cm47Y29uc3RbYmFzZVN5bWJvbCxxdW90ZVN5bWJvbF09dG9rZW5QYWlyLnNwbGl0KCI6IiksYmFzZVRva2VuPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOmJhc2VTeW1ib2x9KSxxdW90ZVRva2VuPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOnF1b3RlU3ltYm9sfSkscG9vbD1hd2FpdCBhcGkuZGIuZmluZE9uZSgicG9vbHMiLHt0b2tlblBhaXI6dG9rZW5QYWlyfSk7aWYoYXBpLmFzc2VydChwb29sLCJubyBleGlzdGluZyBwb29sIGZvciB0b2tlblBhaXIiKSl7Y29uc3QgbHA9YXdhaXQgYXBpLmRiLmZpbmRPbmUoImxpcXVpZGl0eVBvc2l0aW9ucyIse2FjY291bnQ6YXBpLnNlbmRlcix0b2tlblBhaXI6dG9rZW5QYWlyfSk7aWYoYXBpLmFzc2VydChscCwibm8gZXhpc3RpbmcgbGlxdWlkaXR5IHBvc2l0aW9uIikpe2NvbnN0IHNoYXJlc0RlbHRhPWFwaS5CaWdOdW1iZXIobHAuc2hhcmVzKS50aW1lcyhzaGFyZXNPdXQpLmRpdmlkZWRCeSgxMDApLGJhc2VPdXQ9YXBpLkJpZ051bWJlcihzaGFyZXNEZWx0YSkudGltZXMocG9vbC5iYXNlUXVhbnRpdHkpLmRpdmlkZWRCeShwb29sLnRvdGFsU2hhcmVzKS50b0ZpeGVkKGJhc2VUb2tlbi5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSxxdW90ZU91dD1hcGkuQmlnTnVtYmVyKHNoYXJlc0RlbHRhKS50aW1lcyhwb29sLnF1b3RlUXVhbnRpdHkpLmRpdmlkZWRCeShwb29sLnRvdGFsU2hhcmVzKS50b0ZpeGVkKHF1b3RlVG9rZW4ucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTik7aWYoIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihiYXNlT3V0KS5ndCgwKSYmYXBpLkJpZ051bWJlcihxdW90ZU91dCkuZ3QoMCkmJmFwaS5CaWdOdW1iZXIocG9vbC5iYXNlUXVhbnRpdHkpLmd0ZShiYXNlT3V0KSYmYXBpLkJpZ051bWJlcihwb29sLnF1b3RlUXVhbnRpdHkpLmd0ZShxdW90ZU91dCksImluc3VmZmljaWVudCBsaXF1aWRpdHkiKSlyZXR1cm47bHAuc2hhcmVzPWFwaS5CaWdOdW1iZXIobHAuc2hhcmVzKS5taW51cyhzaGFyZXNEZWx0YSksYXBpLkJpZ051bWJlcihscC5zaGFyZXMpLmVxKDApP2F3YWl0IGFwaS5kYi5yZW1vdmUoImxpcXVpZGl0eVBvc2l0aW9ucyIsbHApOmF3YWl0IGFwaS5kYi51cGRhdGUoImxpcXVpZGl0eVBvc2l0aW9ucyIsbHApO2NvbnN0IGJhc2VSZXM9YXdhaXQgYXBpLnRyYW5zZmVyVG9rZW5zKGFwaS5zZW5kZXIsYmFzZVN5bWJvbCxiYXNlT3V0LCJ1c2VyIikscXVvdGVSZXM9YXdhaXQgYXBpLnRyYW5zZmVyVG9rZW5zKGFwaS5zZW5kZXIscXVvdGVTeW1ib2wscXVvdGVPdXQsInVzZXIiKTtpZighYXBpLmFzc2VydCh2b2lkIDA9PT1iYXNlUmVzLmVycm9ycyYmdm9pZCAwPT09cXVvdGVSZXMuZXJyb3JzLCJ3aXRoZHJhd2FsIHRyYW5zZmVyIGVycm9ycyIpKXJldHVybjthd2FpdCB1cGRhdGVQb29sU3RhdHMocG9vbCxhcGkuQmlnTnVtYmVyKGJhc2VPdXQpLm5lZ2F0ZWQoKSxhcGkuQmlnTnVtYmVyKHF1b3RlT3V0KS5uZWdhdGVkKCksYXBpLkJpZ051bWJlcihzaGFyZXNEZWx0YSkubmVnYXRlZCgpLCExKSxhcGkuZW1pdCgicmVtb3ZlTGlxdWlkaXR5Iix7YmFzZVN5bWJvbDpiYXNlU3ltYm9sLHF1b3RlU3ltYm9sOnF1b3RlU3ltYm9sfSl9fX0sYWN0aW9ucy5zd2FwVG9rZW5zPWFzeW5jIHBheWxvYWQ9Pntjb25zdHt0b2tlblBhaXI6dG9rZW5QYWlyLHRva2VuU3ltYm9sOnRva2VuU3ltYm9sLHRva2VuQW1vdW50OnRva2VuQW1vdW50LHRyYWRlVHlwZTp0cmFkZVR5cGUsbWluQW1vdW50T3V0Om1pbkFtb3VudE91dCxtYXhBbW91bnRJbjptYXhBbW91bnRJbixpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkO2lmKCEoYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgdHJhbnNhY3Rpb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5IikmJmFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiB0b2tlblN5bWJvbCwiaW52YWxpZCB0b2tlbiIpJiZhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgdG9rZW5BbW91bnQmJmFwaS5CaWdOdW1iZXIodG9rZW5BbW91bnQpLmd0KDApLCJpbnN1ZmZpY2llbnQgdG9rZW5BbW91bnQiKSYmYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHRyYWRlVHlwZSYmLTEhPT1UcmFkZVR5cGUuaW5kZXhPZih0cmFkZVR5cGUpLCJpbnZhbGlkIHRyYWRlVHlwZSIpJiZhd2FpdCB2YWxpZGF0ZVRva2VuUGFpcih0b2tlblBhaXIpKSlyZXR1cm47aWYobWluQW1vdW50T3V0JiYhYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIG1pbkFtb3VudE91dCYmYXBpLkJpZ051bWJlcihtaW5BbW91bnRPdXQpLmd0KDApLCJpbnN1ZmZpY2llbnQgbWluQW1vdW50T3V0IikpcmV0dXJuO2lmKG1heEFtb3VudEluJiYhYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIG1heEFtb3VudEluJiZhcGkuQmlnTnVtYmVyKG1heEFtb3VudEluKS5ndCgwKSwiaW5zdWZmaWNpZW50IG1heEFtb3VudEluIikpcmV0dXJuO2lmKCFhcGkuYXNzZXJ0KCEobWluQW1vdW50T3V0JiZtYXhBbW91bnRJbiksInNwZWNpZnkgbWluQW1vdW50T3V0IG9yIG1heEFtb3VudEluIGJ1dCBub3QgYm90aCIpKXJldHVybjtjb25zdFtiYXNlU3ltYm9sLHF1b3RlU3ltYm9sXT10b2tlblBhaXIuc3BsaXQoIjoiKSxwb29sPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwb29scyIse3Rva2VuUGFpcjp0b2tlblBhaXJ9KTtpZighYXBpLmFzc2VydChwb29sLCJubyBleGlzdGluZyBwb29sIGZvciB0b2tlblBhaXIiKSlyZXR1cm47bGV0IGxpcXVpZGl0eUluLGxpcXVpZGl0eU91dCxzeW1ib2xJbixzeW1ib2xPdXQ7KCJleGFjdElucHV0Ij09PXRyYWRlVHlwZT90b2tlblN5bWJvbD09PWJhc2VTeW1ib2w6dG9rZW5TeW1ib2whPT1iYXNlU3ltYm9sKT8obGlxdWlkaXR5SW49cG9vbC5iYXNlUXVhbnRpdHksbGlxdWlkaXR5T3V0PXBvb2wucXVvdGVRdWFudGl0eSxzeW1ib2xJbj1iYXNlU3ltYm9sLHN5bWJvbE91dD1xdW90ZVN5bWJvbCk6KGxpcXVpZGl0eUluPXBvb2wucXVvdGVRdWFudGl0eSxsaXF1aWRpdHlPdXQ9cG9vbC5iYXNlUXVhbnRpdHksc3ltYm9sSW49cXVvdGVTeW1ib2wsc3ltYm9sT3V0PWJhc2VTeW1ib2wpO2NvbnN0IHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7fSksdG9rZW5Jbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpzeW1ib2xJbn0pLHRva2VuT3V0PWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOnN5bWJvbE91dH0pLHNlbmRlckJhc2U9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJiYWxhbmNlcyIse2FjY291bnQ6YXBpLnNlbmRlcixzeW1ib2w6c3ltYm9sSW59KTtsZXQgdG9rZW5QYWlyRGVsdGEsdG9rZW5QYWlyRmVlLHRva2VuUXVhbnRpdHksc2VuZGVyQmFzZUZ1bmRlZD0hMTtpZigiZXhhY3RJbnB1dCI9PT10cmFkZVR5cGUpe2NvbnN0IHRva2VuQW1vdW50QWRqdXN0ZWQ9YXBpLkJpZ051bWJlcihnZXRBbW91bnRPdXQocGFyYW1zLHRva2VuQW1vdW50LGxpcXVpZGl0eUluLGxpcXVpZGl0eU91dCkpO2lmKCF0b2tlbkFtb3VudEFkanVzdGVkLmlzRmluaXRlKCkpcmV0dXJuO2lmKHNlbmRlckJhc2VGdW5kZWQ9c2VuZGVyQmFzZSYmYXBpLkJpZ051bWJlcihzZW5kZXJCYXNlLmJhbGFuY2UpLmd0ZSh0b2tlbkFtb3VudCksdG9rZW5QYWlyRGVsdGE9dG9rZW5TeW1ib2w9PT1iYXNlU3ltYm9sP1t0b2tlbkFtb3VudCxhcGkuQmlnTnVtYmVyKHRva2VuQW1vdW50QWRqdXN0ZWQpLm5lZ2F0ZWQoKV06W2FwaS5CaWdOdW1iZXIodG9rZW5BbW91bnRBZGp1c3RlZCkubmVnYXRlZCgpLHRva2VuQW1vdW50XSx0b2tlblBhaXJGZWU9e3N5bWJvbDpzeW1ib2xPdXQsYW1vdW50OmFwaS5CaWdOdW1iZXIodG9rZW5BbW91bnRBZGp1c3RlZCkuZGl2aWRlZEJ5KHBhcmFtcy50cmFkZUZlZU11bCkubWludXModG9rZW5BbW91bnRBZGp1c3RlZCkudG9GaXhlZCh0b2tlbk91dC5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9IQUxGX1VQKX0sdG9rZW5RdWFudGl0eT17aW46dG9rZW5BbW91bnQsb3V0OnRva2VuQW1vdW50QWRqdXN0ZWR9LCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIodG9rZW5RdWFudGl0eS5pbikuZHAoKTw9dG9rZW5Jbi5wcmVjaXNpb24sInN5bWJvbEluIHByZWNpc2lvbiBtaXNtYXRjaCIpKXJldHVybn1lbHNlIGlmKCJleGFjdE91dHB1dCI9PT10cmFkZVR5cGUpe2NvbnN0IHRva2VuQW1vdW50QWRqdXN0ZWQ9YXBpLkJpZ051bWJlcihnZXRBbW91bnRJbihwYXJhbXMsdG9rZW5BbW91bnQsbGlxdWlkaXR5SW4sbGlxdWlkaXR5T3V0KSk7aWYoIXRva2VuQW1vdW50QWRqdXN0ZWQuaXNGaW5pdGUoKSlyZXR1cm47aWYoc2VuZGVyQmFzZUZ1bmRlZD1zZW5kZXJCYXNlJiZhcGkuQmlnTnVtYmVyKHNlbmRlckJhc2UuYmFsYW5jZSkuZ3RlKHRva2VuQW1vdW50QWRqdXN0ZWQudG9GaXhlZCh0b2tlbkluLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0hBTEZfVVApKSx0b2tlblBhaXJEZWx0YT10b2tlblN5bWJvbD09PWJhc2VTeW1ib2w/W2FwaS5CaWdOdW1iZXIodG9rZW5BbW91bnQpLm5lZ2F0ZWQoKSx0b2tlbkFtb3VudEFkanVzdGVkXTpbdG9rZW5BbW91bnRBZGp1c3RlZCxhcGkuQmlnTnVtYmVyKHRva2VuQW1vdW50KS5uZWdhdGVkKCldLHRva2VuUGFpckZlZT17c3ltYm9sOnN5bWJvbEluLGFtb3VudDphcGkuQmlnTnVtYmVyKHRva2VuQW1vdW50QWRqdXN0ZWQpLmRpdmlkZWRCeShwYXJhbXMudHJhZGVGZWVNdWwpLm1pbnVzKHRva2VuQW1vdW50QWRqdXN0ZWQpLnRvRml4ZWQodG9rZW5Jbi5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9IQUxGX1VQKX0sdG9rZW5RdWFudGl0eT17aW46dG9rZW5BbW91bnRBZGp1c3RlZCxvdXQ6dG9rZW5BbW91bnR9LCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIodG9rZW5RdWFudGl0eS5vdXQpLmRwKCk8PXRva2VuT3V0LnByZWNpc2lvbiwic3ltYm9sT3V0IHByZWNpc2lvbiBtaXNtYXRjaCIpKXJldHVybn1pZighYXBpLmFzc2VydChzZW5kZXJCYXNlRnVuZGVkLCJpbnN1ZmZpY2llbnQgaW5wdXQgYmFsYW5jZSIpKXJldHVybjtpZih0b2tlblF1YW50aXR5LmluPWFwaS5CaWdOdW1iZXIodG9rZW5RdWFudGl0eS5pbikuZHAodG9rZW5Jbi5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9DRUlMKSx0b2tlblF1YW50aXR5Lm91dD1hcGkuQmlnTnVtYmVyKHRva2VuUXVhbnRpdHkub3V0KS5kcCh0b2tlbk91dC5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSwhYXBpLmFzc2VydCh0b2tlblF1YW50aXR5LmluLmd0KDApLCJzeW1ib2xJbiBwcmVjaXNpb24gbWlzbWF0Y2giKXx8IWFwaS5hc3NlcnQodG9rZW5RdWFudGl0eS5vdXQuZ3QoMCksInN5bWJvbE91dCBwcmVjaXNpb24gbWlzbWF0Y2giKSlyZXR1cm47aWYobWluQW1vdW50T3V0KXtpZighYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKG1pbkFtb3VudE91dCkuZHAoKTw9dG9rZW5PdXQucHJlY2lzaW9uLCJtaW5BbW91bnRPdXQgcHJlY2lzaW9uIG1pc21hdGNoIikpcmV0dXJuO3Rva2VuUXVhbnRpdHkubWluT3V0PWFwaS5CaWdOdW1iZXIobWluQW1vdW50T3V0KX1pZihtYXhBbW91bnRJbil7aWYoIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihtYXhBbW91bnRJbikuZHAoKTw9dG9rZW5Jbi5wcmVjaXNpb24sIm1heEFtb3VudEluIHByZWNpc2lvbiBtaXNtYXRjaCIpKXJldHVybjt0b2tlblF1YW50aXR5Lm1heEluPWFwaS5CaWdOdW1iZXIobWF4QW1vdW50SW4pfWlmKHZvaWQgMCE9PXRva2VuUXVhbnRpdHkubWluT3V0JiYhYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKHRva2VuUXVhbnRpdHkub3V0KS5ndGUodG9rZW5RdWFudGl0eS5taW5PdXQpLCJleGNlZWRlZCBtYXggc2xpcHBhZ2UgZm9yIHN3YXAiKSlyZXR1cm47aWYodm9pZCAwIT09dG9rZW5RdWFudGl0eS5tYXhJbiYmIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcih0b2tlblF1YW50aXR5LmluKS5sdGUodG9rZW5RdWFudGl0eS5tYXhJbiksImV4Y2VlZGVkIG1heCBzbGlwcGFnZSBmb3Igc3dhcCIpKXJldHVybjtjb25zdCByZXM9YXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJ0b2tlbnMiLCJ0cmFuc2ZlclRvQ29udHJhY3QiLHtzeW1ib2w6c3ltYm9sSW4scXVhbnRpdHk6dG9rZW5RdWFudGl0eS5pbi50b0ZpeGVkKCksdG86Im1hcmtldHBvb2xzIn0pO3ZvaWQgMD09PXJlcy5lcnJvcnMmJnJlcy5ldmVudHMmJnZvaWQgMCE9PXJlcy5ldmVudHMuZmluZCgoZWw9PiJ0b2tlbnMiPT09ZWwuY29udHJhY3QmJiJ0cmFuc2ZlclRvQ29udHJhY3QiPT09ZWwuZXZlbnQmJmVsLmRhdGEuZnJvbT09PWFwaS5zZW5kZXImJiJtYXJrZXRwb29scyI9PT1lbC5kYXRhLnRvJiZhcGkuQmlnTnVtYmVyKGVsLmRhdGEucXVhbnRpdHkpLmVxKHRva2VuUXVhbnRpdHkuaW4pKSkmJihhd2FpdCBhcGkudHJhbnNmZXJUb2tlbnMoYXBpLnNlbmRlcixzeW1ib2xPdXQsdG9rZW5RdWFudGl0eS5vdXQudG9GaXhlZCgpLCJ1c2VyIiksYXdhaXQgdXBkYXRlUG9vbFN0YXRzKHBvb2wsdG9rZW5QYWlyRGVsdGFbMF0sdG9rZW5QYWlyRGVsdGFbMV0sITEsITApLGFwaS5lbWl0KCJzd2FwVG9rZW5zIix7c3ltYm9sSW46c3ltYm9sSW4sc3ltYm9sT3V0OnN5bWJvbE91dCxmZWU6dG9rZW5QYWlyRmVlfSkpfTs="}}}
RE: beedollar Smart Contract