{"id":"ssc-mainnet-hive","json":{"contractName":"contract","contractAction":"update","contractPayload":{"name":"marketpools","params":"","code":"Y29uc3QgVHJhZGVUeXBlPVsiZXhhY3RJbnB1dCIsImV4YWN0T3V0cHV0Il07ZnVuY3Rpb24gZ2V0QW1vdW50SW4oYW1vdW50T3V0LGxpcXVpZGl0eUluLGxpcXVpZGl0eU91dCl7aWYoIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihhbW91bnRPdXQpLmd0KDApLCJpbnN1ZmZpY2llbnQgb3V0cHV0IGFtb3VudCIpfHwhYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKGxpcXVpZGl0eUluKS5ndCgwKSYmYXBpLkJpZ051bWJlcihsaXF1aWRpdHlPdXQpLmd0KDApJiZhcGkuQmlnTnVtYmVyKGFtb3VudE91dCkubHQobGlxdWlkaXR5T3V0KSwiaW5zdWZmaWNpZW50IGxpcXVpZGl0eSIpKXJldHVybiExO2NvbnN0IG51bT1hcGkuQmlnTnVtYmVyKGxpcXVpZGl0eUluKS50aW1lcyhhbW91bnRPdXQpLGRlbj1hcGkuQmlnTnVtYmVyKGxpcXVpZGl0eU91dCkubWludXMoYW1vdW50T3V0KTtyZXR1cm4gbnVtLmRpdmlkZWRCeShkZW4pfWZ1bmN0aW9uIGdldEFtb3VudE91dChhbW91bnRJbixsaXF1aWRpdHlJbixsaXF1aWRpdHlPdXQpe2lmKCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIoYW1vdW50SW4pLmd0KDApLCJpbnN1ZmZpY2llbnQgb3V0cHV0IGFtb3VudCIpfHwhYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKGxpcXVpZGl0eUluKS5ndCgwKSYmYXBpLkJpZ051bWJlcihsaXF1aWRpdHlPdXQpLmd0KDApLCJpbnN1ZmZpY2llbnQgbGlxdWlkaXR5IikpcmV0dXJuITE7Y29uc3QgbnVtPWFwaS5CaWdOdW1iZXIoYW1vdW50SW4pLnRpbWVzKGxpcXVpZGl0eU91dCksZGVuPWFwaS5CaWdOdW1iZXIobGlxdWlkaXR5SW4pLnBsdXMoYW1vdW50SW4pLGFtb3VudE91dD1udW0uZGl2aWRlZEJ5KGRlbik7cmV0dXJuISFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIoYW1vdW50T3V0KS5sdChsaXF1aWRpdHlPdXQpLCJpbnN1ZmZpY2llbnQgbGlxdWlkaXR5IikmJmFtb3VudE91dH1hc3luYyBmdW5jdGlvbiB2YWxpZGF0ZU9yYWNsZShwb29sLG5ld1ByaWNlLG1heERldmlhdGlvbj1hcGkuQmlnTnVtYmVyKCIwLjAxIikpe2NvbnN0W2Jhc2VTeW1ib2wscXVvdGVTeW1ib2xdPXBvb2wudG9rZW5QYWlyLnNwbGl0KCI6IiksYmFzZU1ldHJpY3M9IlNXQVAuSElWRSIhPT1iYXNlU3ltYm9sP2F3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgibWFya2V0IiwibWV0cmljcyIse3N5bWJvbDpiYXNlU3ltYm9sfSk6e2xhc3RQcmljZToxfSxxdW90ZU1ldHJpY3M9IlNXQVAuSElWRSIhPT1xdW90ZVN5bWJvbD9hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoIm1hcmtldCIsIm1ldHJpY3MiLHtzeW1ib2w6cXVvdGVTeW1ib2x9KTp7bGFzdFByaWNlOjF9O2lmKCFiYXNlTWV0cmljc3x8IXF1b3RlTWV0cmljcylyZXR1cm4gbnVsbDtjb25zdCBvcmFjbGU9YXBpLkJpZ051bWJlcihiYXNlTWV0cmljcy5sYXN0UHJpY2UpLmRpdmlkZWRCeShxdW90ZU1ldHJpY3MubGFzdFByaWNlKSxkZXY9YXBpLkJpZ051bWJlcihuZXdQcmljZSkubWludXMob3JhY2xlKS5hYnMoKS5kaXZpZGVkQnkob3JhY2xlKTtyZXR1cm4hIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihkZXYpLmx0ZShtYXhEZXZpYXRpb24pLCJleGNlZWRlZCBtYXggZGV2aWF0aW9uIGZyb20gb3JkZXIgYm9vayIpfWZ1bmN0aW9uIHZhbGlkYXRlTGlxdWlkaXR5U3dhcChwb29sLGJhc2VEZWx0YSxxdW90ZURlbHRhKXtjb25zdCBwPWFwaS5CaWdOdW1iZXIocG9vbC5xdW90ZVF1YW50aXR5KS5kaXZpZGVkQnkocG9vbC5iYXNlUXVhbnRpdHkpLnRvRml4ZWQocG9vbC5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9IQUxGX1VQKTtyZXR1cm4hIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihhcGkuQmlnTnVtYmVyKHF1b3RlRGVsdGEpLmRpdmlkZWRCeShiYXNlRGVsdGEpLnRvRml4ZWQocG9vbC5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9IQUxGX1VQKSkuZXEocCksYGNvbnN0YW50IHByaWNlICR7YXBpLkJpZ051bWJlcihxdW90ZURlbHRhKS5kaXZpZGVkQnkoYmFzZURlbHRhKX0sIGV4cGVjdGVkICR7cH1gKX1mdW5jdGlvbiB2YWxpZGF0ZVN3YXAocG9vbCxiYXNlRGVsdGEscXVvdGVEZWx0YSxtYXhTbGlwcGFnZSl7Y29uc3Qgaz1hcGkuQmlnTnVtYmVyKHBvb2wuYmFzZVF1YW50aXR5KS50aW1lcyhwb29sLnF1b3RlUXVhbnRpdHkpLnRvRml4ZWQocG9vbC5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9IQUxGX1VQKSxiYXNlQWRqdXN0ZWQ9YXBpLkJpZ051bWJlcihwb29sLmJhc2VRdWFudGl0eSkucGx1cyhiYXNlRGVsdGEpLHF1b3RlQWRqdXN0ZWQ9YXBpLkJpZ051bWJlcihwb29sLnF1b3RlUXVhbnRpdHkpLnBsdXMocXVvdGVEZWx0YSkscD1hcGkuQmlnTnVtYmVyKHBvb2wucXVvdGVRdWFudGl0eSkuZGl2aWRlZEJ5KHBvb2wuYmFzZVF1YW50aXR5KS50b0ZpeGVkKHBvb2wucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfSEFMRl9VUCkscEFkanVzdGVkPWFwaS5CaWdOdW1iZXIocXVvdGVBZGp1c3RlZCkuZGl2aWRlZEJ5KGJhc2VBZGp1c3RlZCkudG9GaXhlZChwb29sLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0hBTEZfVVApLHNsaXBwYWdlPWFwaS5CaWdOdW1iZXIocEFkanVzdGVkKS5taW51cyhwKS5hYnMoKS5kaXZpZGVkQnkocCk7cmV0dXJuISFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIoc2xpcHBhZ2UpLmx0ZShtYXhTbGlwcGFnZSksImV4Y2VlZGVkIG1heCBzbGlwcGFnZSBmb3Igc3dhcCIpJiYhIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihhcGkuQmlnTnVtYmVyKGJhc2VBZGp1c3RlZCkudGltZXMocXVvdGVBZGp1c3RlZCkudG9GaXhlZChwb29sLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0hBTEZfVVApKS5lcShrKSxgY29uc3RhbnQgcHJvZHVjdCAke2FwaS5CaWdOdW1iZXIoYmFzZUFkanVzdGVkKS50aW1lcyhxdW90ZUFkanVzdGVkKX0sIGV4cGVjdGVkICR7a31gKX1hc3luYyBmdW5jdGlvbiB2YWxpZGF0ZVRva2VuUGFpcih0b2tlblBhaXIpe2lmKCFhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgdG9rZW5QYWlyJiYtMSE9PXRva2VuUGFpci5pbmRleE9mKCI6IiksImludmFsaWQgdG9rZW5QYWlyIGZvcm1hdCIpKXJldHVybiExO2NvbnN0W2Jhc2VTeW1ib2wscXVvdGVTeW1ib2xdPXRva2VuUGFpci5zcGxpdCgiOiIpO3JldHVybiEhKGFwaS5hc3NlcnQoYmFzZVN5bWJvbCE9PXF1b3RlU3ltYm9sLCJ0b2tlblBhaXIgY2Fubm90IGJlIHRoZSBzYW1lIHRva2VuIikmJmFwaS5hc3NlcnQoYXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJ0b2tlbnMiLHtzeW1ib2w6YmFzZVN5bWJvbH0pLCJiYXNlU3ltYm9sIGRvZXMgbm90IGV4aXN0IikmJmFwaS5hc3NlcnQoYXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJ0b2tlbnMiLHtzeW1ib2w6cXVvdGVTeW1ib2x9KSwicXVvdGVTeW1ib2wgZG9lcyBub3QgZXhpc3QiKSl9YXN5bmMgZnVuY3Rpb24gdmFsaWRhdGVQb29sKHRva2VuUGFpcil7Y29uc3RbYmFzZVN5bWJvbCxxdW90ZVN5bWJvbF09dG9rZW5QYWlyLnNwbGl0KCI6IikscG9vbD1hd2FpdCBhcGkuZGIuZmluZE9uZSgicG9vbHMiLHt0b2tlblBhaXI6dG9rZW5QYWlyfSkscmV2UG9vbD1hd2FpdCBhcGkuZGIuZmluZE9uZSgicG9vbHMiLHt0b2tlblBhaXI6W3F1b3RlU3ltYm9sLGJhc2VTeW1ib2xdLmpvaW4oIjoiKX0pO3JldHVybiEhYXBpLmFzc2VydChudWxsPT09cG9vbCYmbnVsbD09PXJldlBvb2wsImEgcG9vbCBhbHJlYWR5IGV4aXN0cyBmb3IgdGhpcyB0b2tlblBhaXIiKX1hc3luYyBmdW5jdGlvbiB1cGRhdGVQb29sU3RhdHMocG9vbCxiYXNlQWRqdXN0ZWQscXVvdGVBZGp1c3RlZCxzaGFyZXNBZGp1c3RlZCxzd2FwKXtjb25zdCB1UG9vbD1wb29sO3VQb29sLmJhc2VRdWFudGl0eT1hcGkuQmlnTnVtYmVyKHBvb2wuYmFzZVF1YW50aXR5KS5wbHVzKGJhc2VBZGp1c3RlZCkudG9GaXhlZChwb29sLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0hBTEZfVVApLHVQb29sLnF1b3RlUXVhbnRpdHk9YXBpLkJpZ051bWJlcihwb29sLnF1b3RlUXVhbnRpdHkpLnBsdXMocXVvdGVBZGp1c3RlZCkudG9GaXhlZChwb29sLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0hBTEZfVVApLGFwaS5CaWdOdW1iZXIodVBvb2wuYmFzZVF1YW50aXR5KS5ndCgwKSYmYXBpLkJpZ051bWJlcih1UG9vbC5xdW90ZVF1YW50aXR5KS5ndCgwKSYmKHVQb29sLmJhc2VQcmljZT1hcGkuQmlnTnVtYmVyKHVQb29sLnF1b3RlUXVhbnRpdHkpLmRpdmlkZWRCeSh1UG9vbC5iYXNlUXVhbnRpdHkpLnRvRml4ZWQocG9vbC5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSx1UG9vbC5xdW90ZVByaWNlPWFwaS5CaWdOdW1iZXIodVBvb2wuYmFzZVF1YW50aXR5KS5kaXZpZGVkQnkodVBvb2wucXVvdGVRdWFudGl0eSkudG9GaXhlZChwb29sLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pKSxzaGFyZXNBZGp1c3RlZCYmKHVQb29sLnRvdGFsU2hhcmVzPWFwaS5CaWdOdW1iZXIocG9vbC50b3RhbFNoYXJlcykucGx1cyhzaGFyZXNBZGp1c3RlZCkpLHN3YXAmJih1UG9vbC5iYXNlVm9sdW1lPWFwaS5CaWdOdW1iZXIodVBvb2wuYmFzZVZvbHVtZSkucGx1cyhNYXRoLmFicyhiYXNlQWRqdXN0ZWQpKS50b0ZpeGVkKHBvb2wucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTiksdVBvb2wucXVvdGVWb2x1bWU9YXBpLkJpZ051bWJlcih1UG9vbC5xdW90ZVZvbHVtZSkucGx1cyhNYXRoLmFicyhxdW90ZUFkanVzdGVkKSkudG9GaXhlZChwb29sLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pKSxhd2FpdCBhcGkuZGIudXBkYXRlKCJwb29scyIsdVBvb2wpfWFjdGlvbnMuY3JlYXRlU1NDPWFzeW5jKCk9PntpZighMT09PWF3YWl0IGFwaS5kYi50YWJsZUV4aXN0cygicG9vbHMiKSl7YXdhaXQgYXBpLmRiLmNyZWF0ZVRhYmxlKCJwb29scyIsWyJ0b2tlblBhaXIiXSksYXdhaXQgYXBpLmRiLmNyZWF0ZVRhYmxlKCJsaXF1aWRpdHlQb3NpdGlvbnMiLFsiYWNjb3VudCIsInRva2VuUGFpciJdKSxhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoInBhcmFtcyIpO2NvbnN0IHBhcmFtcz17cG9vbENyZWF0aW9uRmVlOiIxMDAwIn07YXdhaXQgYXBpLmRiLmluc2VydCgicGFyYW1zIixwYXJhbXMpfX0sYWN0aW9ucy51cGRhdGVQYXJhbXM9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3Bvb2xDcmVhdGlvbkZlZTpwb29sQ3JlYXRpb25GZWV9PXBheWxvYWQ7aWYoYXBpLnNlbmRlciE9PWFwaS5vd25lcilyZXR1cm47Y29uc3QgcGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KTtpZihwb29sQ3JlYXRpb25GZWUpe2lmKCFhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgcG9vbENyZWF0aW9uRmVlJiYhYXBpLkJpZ051bWJlcihwb29sQ3JlYXRpb25GZWUpLmlzTmFOKCkmJmFwaS5CaWdOdW1iZXIocG9vbENyZWF0aW9uRmVlKS5ndGUoMCksImludmFsaWQgcG9vbENyZWF0aW9uRmVlIikpcmV0dXJuO3BhcmFtcy5wb29sQ3JlYXRpb25GZWU9cG9vbENyZWF0aW9uRmVlfWF3YWl0IGFwaS5kYi51cGRhdGUoInBhcmFtcyIscGFyYW1zKX0sYWN0aW9ucy5jcmVhdGVQb29sPWFzeW5jIHBheWxvYWQ9Pntjb25zdHt0b2tlblBhaXI6dG9rZW5QYWlyLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQscGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KSx7cG9vbENyZWF0aW9uRmVlOnBvb2xDcmVhdGlvbkZlZX09cGFyYW1zLHV0aWxpdHlUb2tlbkJhbGFuY2U9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJiYWxhbmNlcyIse2FjY291bnQ6YXBpLnNlbmRlcixzeW1ib2w6IkJFRSJ9KSxhdXRob3JpemVkQ3JlYXRpb249ISghYXBpLkJpZ051bWJlcihwb29sQ3JlYXRpb25GZWUpLmx0ZSgwKSYmYXBpLnNlbmRlciE9PWFwaS5vd25lcil8fHV0aWxpdHlUb2tlbkJhbGFuY2UmJmFwaS5CaWdOdW1iZXIodXRpbGl0eVRva2VuQmFsYW5jZS5iYWxhbmNlKS5ndGUocG9vbENyZWF0aW9uRmVlKTtpZihhcGkuYXNzZXJ0KGF1dGhvcml6ZWRDcmVhdGlvbiwieW91IG11c3QgaGF2ZSBlbm91Z2ggdG9rZW5zIHRvIGNvdmVyIHRoZSBjcmVhdGlvbiBmZWUiKSYmYXdhaXQgdmFsaWRhdGVUb2tlblBhaXIodG9rZW5QYWlyKSYmYXdhaXQgdmFsaWRhdGVQb29sKHRva2VuUGFpcikmJmFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIHRyYW5zYWN0aW9uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpKXtjb25zdFtiYXNlU3ltYm9sLHF1b3RlU3ltYm9sXT10b2tlblBhaXIuc3BsaXQoIjoiKSxiYXNlVG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJ0b2tlbnMiLHtzeW1ib2w6YmFzZVN5bWJvbH0pLHF1b3RlVG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJ0b2tlbnMiLHtzeW1ib2w6cXVvdGVTeW1ib2x9KSxuZXdQb29sPXt0b2tlblBhaXI6dG9rZW5QYWlyLGJhc2VRdWFudGl0eTowLGJhc2VWb2x1bWU6MCxiYXNlUHJpY2U6MCxxdW90ZVF1YW50aXR5OjAscXVvdGVWb2x1bWU6MCxxdW90ZVByaWNlOjAsdG90YWxTaGFyZXM6MCxwcmVjaXNpb246TWF0aC5tYXgoYmFzZVRva2VuLnByZWNpc2lvbixxdW90ZVRva2VuLnByZWNpc2lvbiksY3JlYXRvcjphcGkuc2VuZGVyfTthd2FpdCBhcGkuZGIuaW5zZXJ0KCJwb29scyIsbmV3UG9vbCksYXBpLnNlbmRlciE9PWFwaS5vd25lciYmYXBpLkJpZ051bWJlcihwb29sQ3JlYXRpb25GZWUpLmd0KDApJiZhd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoInRva2VucyIsInRyYW5zZmVyIix7dG86Im51bGwiLHN5bWJvbDoiQkVFIixxdWFudGl0eTpwb29sQ3JlYXRpb25GZWUsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX0pLGFwaS5lbWl0KCJjcmVhdGVQb29sIix7dG9rZW5QYWlyOnRva2VuUGFpcn0pfX0sYWN0aW9ucy5hZGRMaXF1aWRpdHk9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3Rva2VuUGFpcjp0b2tlblBhaXIsYmFzZVF1YW50aXR5OmJhc2VRdWFudGl0eSxxdW90ZVF1YW50aXR5OnF1b3RlUXVhbnRpdHksaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZighKGFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIHRyYW5zYWN0aW9uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiZhcGkuYXNzZXJ0KGJhc2VRdWFudGl0eSYmYXBpLkJpZ051bWJlcihiYXNlUXVhbnRpdHkpLmd0KDApLCJpbnZhbGlkIGJhc2VRdWFudGl0eSIpJiZhcGkuYXNzZXJ0KHF1b3RlUXVhbnRpdHkmJmFwaS5CaWdOdW1iZXIocXVvdGVRdWFudGl0eSkuZ3QoMCksImludmFsaWQgcXVvdGVRdWFudGl0eSIpJiZhd2FpdCB2YWxpZGF0ZVRva2VuUGFpcih0b2tlblBhaXIpKSlyZXR1cm47Y29uc3RbYmFzZVN5bWJvbCxxdW90ZVN5bWJvbF09dG9rZW5QYWlyLnNwbGl0KCI6IiksYmFzZVRva2VuPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOmJhc2VTeW1ib2x9KSxxdW90ZVRva2VuPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOnF1b3RlU3ltYm9sfSk7aWYoIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihiYXNlUXVhbnRpdHkpLmRwKCk8PWJhc2VUb2tlbi5wcmVjaXNpb24sImJhc2VRdWFudGl0eSBwcmVjaXNpb24gbWlzbWF0Y2giKXx8IWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihxdW90ZVF1YW50aXR5KS5kcCgpPD1xdW90ZVRva2VuLnByZWNpc2lvbiwicXVvdGVRdWFudGl0eSBwcmVjaXNpb24gbWlzbWF0Y2giKSlyZXR1cm47Y29uc3QgcG9vbD1hd2FpdCBhcGkuZGIuZmluZE9uZSgicG9vbHMiLHt0b2tlblBhaXI6dG9rZW5QYWlyfSk7aWYoYXBpLmFzc2VydChwb29sLCJubyBleGlzdGluZyBwb29sIGZvciB0b2tlblBhaXIiKSl7aWYoYXBpLkJpZ051bWJlcihwb29sLmJhc2VRdWFudGl0eSkuZXEoMCkmJmFwaS5CaWdOdW1iZXIocG9vbC5xdW90ZVF1YW50aXR5KS5lcSgwKSYmITE9PT1hd2FpdCB2YWxpZGF0ZU9yYWNsZShwb29sLGFwaS5CaWdOdW1iZXIocXVvdGVRdWFudGl0eSkuZGl2aWRlZEJ5KGJhc2VRdWFudGl0eSkpKXJldHVybjtpZihhcGkuQmlnTnVtYmVyKHBvb2wuYmFzZVF1YW50aXR5KS5ndCgwKSYmYXBpLkJpZ051bWJlcihwb29sLnF1b3RlUXVhbnRpdHkpLmd0KDApJiYhdmFsaWRhdGVMaXF1aWRpdHlTd2FwKHBvb2wsYmFzZVF1YW50aXR5LHF1b3RlUXVhbnRpdHkpKXJldHVybjtjb25zdCBzZW5kZXJCYXNlPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwiYmFsYW5jZXMiLHthY2NvdW50OmFwaS5zZW5kZXIsc3ltYm9sOmJhc2VTeW1ib2x9KSxzZW5kZXJRdW90ZT1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsImJhbGFuY2VzIix7YWNjb3VudDphcGkuc2VuZGVyLHN5bWJvbDpxdW90ZVN5bWJvbH0pLHNlbmRlckZ1bmRlZD1zZW5kZXJCYXNlJiZzZW5kZXJRdW90ZSYmYXBpLkJpZ051bWJlcihzZW5kZXJCYXNlLmJhbGFuY2UpLmd0ZShiYXNlUXVhbnRpdHkpJiZhcGkuQmlnTnVtYmVyKHNlbmRlclF1b3RlLmJhbGFuY2UpLmd0ZShxdW90ZVF1YW50aXR5KTtpZighYXBpLmFzc2VydChzZW5kZXJGdW5kZWQsImluc3VmZmljaWVudCB0b2tlbiBiYWxhbmNlIikpcmV0dXJuO2xldCBuZXdTaGFyZXM7aWYobmV3U2hhcmVzPWFwaS5CaWdOdW1iZXIocG9vbC50b3RhbFNoYXJlcykuZXEoMCk/YXBpLkJpZ051bWJlcihiYXNlUXVhbnRpdHkpLnRpbWVzKHF1b3RlUXVhbnRpdHkpLnNxcnQoKTphcGkuQmlnTnVtYmVyLm1pbihhcGkuQmlnTnVtYmVyKGJhc2VRdWFudGl0eSkudGltZXMocG9vbC50b3RhbFNoYXJlcykuZGl2aWRlZEJ5KHBvb2wuYmFzZVF1YW50aXR5KSxhcGkuQmlnTnVtYmVyKHF1b3RlUXVhbnRpdHkpLnRpbWVzKHBvb2wudG90YWxTaGFyZXMpLmRpdmlkZWRCeShwb29sLnF1b3RlUXVhbnRpdHkpKSwhYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKG5ld1NoYXJlcykuZ3QoMCksImluc3VmZmljaWVudCBsaXF1aWRpdHkgY3JlYXRlZCIpKXJldHVybjtjb25zdCBscD1hd2FpdCBhcGkuZGIuZmluZE9uZSgibGlxdWlkaXR5UG9zaXRpb25zIix7YWNjb3VudDphcGkuc2VuZGVyLHRva2VuUGFpcjp0b2tlblBhaXJ9KTtpZihscClscC5zaGFyZXM9YXBpLkJpZ051bWJlcihscC5zaGFyZXMpLnBsdXMobmV3U2hhcmVzKSxhd2FpdCBhcGkuZGIudXBkYXRlKCJsaXF1aWRpdHlQb3NpdGlvbnMiLGxwKTtlbHNle2NvbnN0IG5ld2xwPXthY2NvdW50OmFwaS5zZW5kZXIsdG9rZW5QYWlyOnRva2VuUGFpcixzaGFyZXM6bmV3U2hhcmVzfTthd2FpdCBhcGkuZGIuaW5zZXJ0KCJsaXF1aWRpdHlQb3NpdGlvbnMiLG5ld2xwKX1jb25zdCBiYXNlUmVzPWF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgidG9rZW5zIiwidHJhbnNmZXJUb0NvbnRyYWN0Iix7c3ltYm9sOmJhc2VTeW1ib2wscXVhbnRpdHk6YmFzZVF1YW50aXR5LHRvOiJtYXJrZXRwb29scyJ9KSxxdW90ZVJlcz1hd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoInRva2VucyIsInRyYW5zZmVyVG9Db250cmFjdCIse3N5bWJvbDpxdW90ZVN5bWJvbCxxdWFudGl0eTpxdW90ZVF1YW50aXR5LHRvOiJtYXJrZXRwb29scyJ9KTtpZighYXBpLmFzc2VydCh2b2lkIDA9PT1iYXNlUmVzLmVycm9ycyYmdm9pZCAwPT09cXVvdGVSZXMuZXJyb3JzLCJkZXBvc2l0IHRyYW5zZmVyIGVycm9ycyIpKXJldHVybjthd2FpdCB1cGRhdGVQb29sU3RhdHMocG9vbCxiYXNlUXVhbnRpdHkscXVvdGVRdWFudGl0eSxuZXdTaGFyZXMsITEpLGFwaS5lbWl0KCJhZGRMaXF1aWRpdHkiLHtiYXNlU3ltYm9sOmJhc2VTeW1ib2wscXVvdGVTeW1ib2w6cXVvdGVTeW1ib2x9KX19LGFjdGlvbnMucmVtb3ZlTGlxdWlkaXR5PWFzeW5jIHBheWxvYWQ9Pntjb25zdHt0b2tlblBhaXI6dG9rZW5QYWlyLHNoYXJlc091dDpzaGFyZXNPdXQsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZighYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgdHJhbnNhY3Rpb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5Iil8fCFhcGkuYXNzZXJ0KHNoYXJlc091dCYmYXBpLkJpZ051bWJlcihzaGFyZXNPdXQpLmd0KDApJiZhcGkuQmlnTnVtYmVyKHNoYXJlc091dCkubHRlKDEwMCksImludmFsaWQgc2hhcmVzT3V0LCBtdXN0IGJlID4gMCA8PSAxMDAiKXx8IWF3YWl0IHZhbGlkYXRlVG9rZW5QYWlyKHRva2VuUGFpcikpcmV0dXJuO2NvbnN0W2Jhc2VTeW1ib2wscXVvdGVTeW1ib2xdPXRva2VuUGFpci5zcGxpdCgiOiIpLGJhc2VUb2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpiYXNlU3ltYm9sfSkscXVvdGVUb2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpxdW90ZVN5bWJvbH0pLHBvb2w9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBvb2xzIix7dG9rZW5QYWlyOnRva2VuUGFpcn0pO2lmKGFwaS5hc3NlcnQocG9vbCwibm8gZXhpc3RpbmcgcG9vbCBmb3IgdG9rZW5QYWlyIikpe2NvbnN0IGxwPWF3YWl0IGFwaS5kYi5maW5kT25lKCJsaXF1aWRpdHlQb3NpdGlvbnMiLHthY2NvdW50OmFwaS5zZW5kZXIsdG9rZW5QYWlyOnRva2VuUGFpcn0pO2lmKGFwaS5hc3NlcnQobHAsIm5vIGV4aXN0aW5nIGxpcXVpZGl0eSBwb3NpdGlvbiIpKXtjb25zdCBzaGFyZXNEZWx0YT1hcGkuQmlnTnVtYmVyKGxwLnNoYXJlcykudGltZXMoc2hhcmVzT3V0KS5kaXZpZGVkQnkoMTAwKSxiYXNlT3V0PWFwaS5CaWdOdW1iZXIoc2hhcmVzRGVsdGEpLnRpbWVzKHBvb2wuYmFzZVF1YW50aXR5KS5kaXZpZGVkQnkocG9vbC50b3RhbFNoYXJlcykudG9GaXhlZChiYXNlVG9rZW4ucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTikscXVvdGVPdXQ9YXBpLkJpZ051bWJlcihzaGFyZXNEZWx0YSkudGltZXMocG9vbC5xdW90ZVF1YW50aXR5KS5kaXZpZGVkQnkocG9vbC50b3RhbFNoYXJlcykudG9GaXhlZChxdW90ZVRva2VuLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pO2lmKCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIoYmFzZU91dCkuZ3QoMCkmJmFwaS5CaWdOdW1iZXIocXVvdGVPdXQpLmd0KDApJiZhcGkuQmlnTnVtYmVyKHBvb2wuYmFzZVF1YW50aXR5KS5ndGUoYmFzZU91dCkmJmFwaS5CaWdOdW1iZXIocG9vbC5xdW90ZVF1YW50aXR5KS5ndGUocXVvdGVPdXQpLCJpbnN1ZmZpY2llbnQgbGlxdWlkaXR5IikpcmV0dXJuO2xwLnNoYXJlcz1hcGkuQmlnTnVtYmVyKGxwLnNoYXJlcykubWludXMoc2hhcmVzRGVsdGEpLGFwaS5CaWdOdW1iZXIobHAuc2hhcmVzKS5lcSgwKT9hd2FpdCBhcGkuZGIucmVtb3ZlKCJsaXF1aWRpdHlQb3NpdGlvbnMiLGxwKTphd2FpdCBhcGkuZGIudXBkYXRlKCJsaXF1aWRpdHlQb3NpdGlvbnMiLGxwKTtjb25zdCBiYXNlUmVzPWF3YWl0IGFwaS50cmFuc2ZlclRva2VucyhhcGkuc2VuZGVyLGJhc2VTeW1ib2wsYmFzZU91dCwidXNlciIpLHF1b3RlUmVzPWF3YWl0IGFwaS50cmFuc2ZlclRva2VucyhhcGkuc2VuZGVyLHF1b3RlU3ltYm9sLHF1b3RlT3V0LCJ1c2VyIik7aWYoIWFwaS5hc3NlcnQodm9pZCAwPT09YmFzZVJlcy5lcnJvcnMmJnZvaWQgMD09PXF1b3RlUmVzLmVycm9ycywid2l0aGRyYXdhbCB0cmFuc2ZlciBlcnJvcnMiKSlyZXR1cm47YXdhaXQgdXBkYXRlUG9vbFN0YXRzKHBvb2wsYXBpLkJpZ051bWJlcihiYXNlT3V0KS5uZWdhdGVkKCksYXBpLkJpZ051bWJlcihxdW90ZU91dCkubmVnYXRlZCgpLGFwaS5CaWdOdW1iZXIoc2hhcmVzRGVsdGEpLm5lZ2F0ZWQoKSwhMSksYXBpLmVtaXQoInJlbW92ZUxpcXVpZGl0eSIse2Jhc2VTeW1ib2w6YmFzZVN5bWJvbCxxdW90ZVN5bWJvbDpxdW90ZVN5bWJvbH0pfX19LGFjdGlvbnMuc3dhcFRva2Vucz1hc3luYyBwYXlsb2FkPT57Y29uc3R7dG9rZW5QYWlyOnRva2VuUGFpcix0b2tlblN5bWJvbDp0b2tlblN5bWJvbCx0b2tlbkFtb3VudDp0b2tlbkFtb3VudCx0cmFkZVR5cGU6dHJhZGVUeXBlLG1heFNsaXBwYWdlOm1heFNsaXBwYWdlLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQ7aWYoIShhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSB0cmFuc2FjdGlvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSYmYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHRva2VuU3ltYm9sLCJpbnZhbGlkIHRva2VuIikmJmFwaS5hc3NlcnQodG9rZW5BbW91bnQmJmFwaS5CaWdOdW1iZXIodG9rZW5BbW91bnQpLmd0KDApLCJpbnN1ZmZpY2llbnQgdG9rZW5BbW91bnQiKSYmYXBpLmFzc2VydChtYXhTbGlwcGFnZSYmYXBpLkJpZ051bWJlcihtYXhTbGlwcGFnZSkuZ3QoMCkmJmFwaS5CaWdOdW1iZXIobWF4U2xpcHBhZ2UpLmx0KDUwKSwibWF4U2xpcHBhZ2UgbXVzdCBiZSBncmVhdGVyIHRoYW4gMCBhbmQgbGVzcyB0aGFuIDUwIikmJmFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiB0cmFkZVR5cGUmJi0xIT09VHJhZGVUeXBlLmluZGV4T2YodHJhZGVUeXBlKSwiaW52YWxpZCB0cmFkZVR5cGUiKSYmYXdhaXQgdmFsaWRhdGVUb2tlblBhaXIodG9rZW5QYWlyKSkpcmV0dXJuO2NvbnN0W2Jhc2VTeW1ib2wscXVvdGVTeW1ib2xdPXRva2VuUGFpci5zcGxpdCgiOiIpLHBvb2w9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBvb2xzIix7dG9rZW5QYWlyOnRva2VuUGFpcn0pO2lmKCFhcGkuYXNzZXJ0KHBvb2wsIm5vIGV4aXN0aW5nIHBvb2wgZm9yIHRva2VuUGFpciIpKXJldHVybjtsZXQgbGlxdWlkaXR5SW4sbGlxdWlkaXR5T3V0LHN5bWJvbEluLHN5bWJvbE91dDsoImV4YWN0SW5wdXQiPT09dHJhZGVUeXBlP3Rva2VuU3ltYm9sPT09YmFzZVN5bWJvbDp0b2tlblN5bWJvbCE9PWJhc2VTeW1ib2wpPyhsaXF1aWRpdHlJbj1wb29sLmJhc2VRdWFudGl0eSxsaXF1aWRpdHlPdXQ9cG9vbC5xdW90ZVF1YW50aXR5LHN5bWJvbEluPWJhc2VTeW1ib2wsc3ltYm9sT3V0PXF1b3RlU3ltYm9sKToobGlxdWlkaXR5SW49cG9vbC5xdW90ZVF1YW50aXR5LGxpcXVpZGl0eU91dD1wb29sLmJhc2VRdWFudGl0eSxzeW1ib2xJbj1xdW90ZVN5bWJvbCxzeW1ib2xPdXQ9YmFzZVN5bWJvbCk7Y29uc3QgdG9rZW5Jbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpzeW1ib2xJbn0pLHRva2VuT3V0PWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOnN5bWJvbE91dH0pLHNlbmRlckJhc2U9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJiYWxhbmNlcyIse2FjY291bnQ6YXBpLnNlbmRlcixzeW1ib2w6c3ltYm9sSW59KTtsZXQgdG9rZW5QYWlyRGVsdGEsdG9rZW5RdWFudGl0eSxzZW5kZXJCYXNlRnVuZGVkPSExO2lmKCJleGFjdElucHV0Ij09PXRyYWRlVHlwZSl7Y29uc3QgdG9rZW5BbW91bnRBZGp1c3RlZD1hcGkuQmlnTnVtYmVyKGdldEFtb3VudE91dCh0b2tlbkFtb3VudCxsaXF1aWRpdHlJbixsaXF1aWRpdHlPdXQpKTtpZighdG9rZW5BbW91bnRBZGp1c3RlZC5pc0Zpbml0ZSgpKXJldHVybjtpZihzZW5kZXJCYXNlRnVuZGVkPXNlbmRlckJhc2UmJmFwaS5CaWdOdW1iZXIoc2VuZGVyQmFzZS5iYWxhbmNlKS5ndGUodG9rZW5BbW91bnQpLHRva2VuUGFpckRlbHRhPXRva2VuU3ltYm9sPT09YmFzZVN5bWJvbD9bdG9rZW5BbW91bnQsYXBpLkJpZ051bWJlcih0b2tlbkFtb3VudEFkanVzdGVkKS5uZWdhdGVkKCldOlthcGkuQmlnTnVtYmVyKHRva2VuQW1vdW50QWRqdXN0ZWQpLm5lZ2F0ZWQoKSx0b2tlbkFtb3VudF0sdG9rZW5RdWFudGl0eT17aW46dG9rZW5BbW91bnQsb3V0OnRva2VuQW1vdW50QWRqdXN0ZWR9LCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIodG9rZW5RdWFudGl0eS5pbikuZHAoKTw9dG9rZW5Jbi5wcmVjaXNpb24sInN5bWJvbEluIHByZWNpc2lvbiBtaXNtYXRjaCIpKXJldHVybn1lbHNlIGlmKCJleGFjdE91dHB1dCI9PT10cmFkZVR5cGUpe2NvbnN0IHRva2VuQW1vdW50QWRqdXN0ZWQ9YXBpLkJpZ051bWJlcihnZXRBbW91bnRJbih0b2tlbkFtb3VudCxsaXF1aWRpdHlJbixsaXF1aWRpdHlPdXQpKTtpZighdG9rZW5BbW91bnRBZGp1c3RlZC5pc0Zpbml0ZSgpKXJldHVybjtpZihzZW5kZXJCYXNlRnVuZGVkPXNlbmRlckJhc2UmJmFwaS5CaWdOdW1iZXIoc2VuZGVyQmFzZS5iYWxhbmNlKS5ndGUodG9rZW5BbW91bnRBZGp1c3RlZC50b0ZpeGVkKHRva2VuSW4ucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfSEFMRl9VUCkpLHRva2VuUGFpckRlbHRhPXRva2VuU3ltYm9sPT09YmFzZVN5bWJvbD9bYXBpLkJpZ051bWJlcih0b2tlbkFtb3VudCkubmVnYXRlZCgpLHRva2VuQW1vdW50QWRqdXN0ZWRdOlt0b2tlbkFtb3VudEFkanVzdGVkLGFwaS5CaWdOdW1iZXIodG9rZW5BbW91bnQpLm5lZ2F0ZWQoKV0sdG9rZW5RdWFudGl0eT17aW46dG9rZW5BbW91bnRBZGp1c3RlZCxvdXQ6dG9rZW5BbW91bnR9LCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIodG9rZW5RdWFudGl0eS5vdXQpLmRwKCk8PXRva2VuT3V0LnByZWNpc2lvbiwic3ltYm9sT3V0IHByZWNpc2lvbiBtaXNtYXRjaCIpKXJldHVybn1pZighYXBpLmFzc2VydChzZW5kZXJCYXNlRnVuZGVkLCJpbnN1ZmZpY2llbnQgaW5wdXQgYmFsYW5jZSIpfHwhdmFsaWRhdGVTd2FwKHBvb2wsdG9rZW5QYWlyRGVsdGFbMF0sdG9rZW5QYWlyRGVsdGFbMV0sYXBpLkJpZ051bWJlcihtYXhTbGlwcGFnZSkuZGl2aWRlZEJ5KDEwMCkpKXJldHVybjtjb25zdCByZXM9YXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJ0b2tlbnMiLCJ0cmFuc2ZlclRvQ29udHJhY3QiLHtzeW1ib2w6c3ltYm9sSW4scXVhbnRpdHk6YXBpLkJpZ051bWJlcih0b2tlblF1YW50aXR5LmluKS50b0ZpeGVkKHRva2VuSW4ucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfSEFMRl9VUCksdG86Im1hcmtldHBvb2xzIn0pO3ZvaWQgMD09PXJlcy5lcnJvcnMmJnJlcy5ldmVudHMmJnZvaWQgMCE9PXJlcy5ldmVudHMuZmluZChlbD0+InRva2VucyI9PT1lbC5jb250cmFjdCYmInRyYW5zZmVyVG9Db250cmFjdCI9PT1lbC5ldmVudCYmZWwuZGF0YS5mcm9tPT09YXBpLnNlbmRlciYmIm1hcmtldHBvb2xzIj09PWVsLmRhdGEudG8mJmVsLmRhdGEucXVhbnRpdHk9PT1hcGkuQmlnTnVtYmVyKHRva2VuUXVhbnRpdHkuaW4pLnRvRml4ZWQodG9rZW5Jbi5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9IQUxGX1VQKSkmJihhd2FpdCBhcGkudHJhbnNmZXJUb2tlbnMoYXBpLnNlbmRlcixzeW1ib2xPdXQsYXBpLkJpZ051bWJlcih0b2tlblF1YW50aXR5Lm91dCkudG9GaXhlZCh0b2tlbk91dC5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9IQUxGX1VQKSwidXNlciIpLGF3YWl0IHVwZGF0ZVBvb2xTdGF0cyhwb29sLHRva2VuUGFpckRlbHRhWzBdLHRva2VuUGFpckRlbHRhWzFdLCExLCEwKSxhcGkuZW1pdCgic3dhcFRva2VucyIse3N5bWJvbEluOnN5bWJvbEluLHN5bWJvbE91dDpzeW1ib2xPdXR9KSl9Ow=="}}}