Marketpools Smart Contract

{"id":"ssc-mainnet-hive","json":{"contractName":"contract","contractAction":"update","contractPayload":{"name":"marketpools","params":"","code":"Y29uc3QgVHJhZGVUeXBlPVsiZXhhY3RJbnB1dCIsImV4YWN0T3V0cHV0Il07ZnVuY3Rpb24gZ2V0UXVvdGUoYW1vdW50LGxpcXVpZGl0eUluLGxpcXVpZGl0eU91dCl7cmV0dXJuISghYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKGFtb3VudCkuZ3QoMCksImluc3VmZmljaWVudCBhbW91bnQiKXx8IWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihsaXF1aWRpdHlJbikuZ3QoMCkmJmFwaS5CaWdOdW1iZXIobGlxdWlkaXR5T3V0KS5ndCgwKSwiaW5zdWZmaWNpZW50IGxpcXVpZGl0eSIpKSYmYXBpLkJpZ051bWJlcihhbW91bnQpLnRpbWVzKGxpcXVpZGl0eU91dCkuZGl2aWRlZEJ5KGxpcXVpZGl0eUluKX1mdW5jdGlvbiBnZXRBbW91bnRJbihhbW91bnRPdXQsbGlxdWlkaXR5SW4sbGlxdWlkaXR5T3V0KXtpZighYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKGFtb3VudE91dCkuZ3QoMCksImluc3VmZmljaWVudCBvdXRwdXQgYW1vdW50Iil8fCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIobGlxdWlkaXR5SW4pLmd0KDApJiZhcGkuQmlnTnVtYmVyKGxpcXVpZGl0eU91dCkuZ3QoMCkmJmFwaS5CaWdOdW1iZXIoYW1vdW50T3V0KS5sdChsaXF1aWRpdHlPdXQpLCJpbnN1ZmZpY2llbnQgbGlxdWlkaXR5IikpcmV0dXJuITE7Y29uc3QgbnVtPWFwaS5CaWdOdW1iZXIobGlxdWlkaXR5SW4pLnRpbWVzKGFtb3VudE91dCksZGVuPWFwaS5CaWdOdW1iZXIobGlxdWlkaXR5T3V0KS5taW51cyhhbW91bnRPdXQpO3JldHVybiBudW0uZGl2aWRlZEJ5KGRlbil9ZnVuY3Rpb24gZ2V0QW1vdW50T3V0KGFtb3VudEluLGxpcXVpZGl0eUluLGxpcXVpZGl0eU91dCl7aWYoIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihhbW91bnRJbikuZ3QoMCksImluc3VmZmljaWVudCBvdXRwdXQgYW1vdW50Iil8fCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIobGlxdWlkaXR5SW4pLmd0KDApJiZhcGkuQmlnTnVtYmVyKGxpcXVpZGl0eU91dCkuZ3QoMCksImluc3VmZmljaWVudCBsaXF1aWRpdHkiKSlyZXR1cm4hMTtjb25zdCBudW09YXBpLkJpZ051bWJlcihhbW91bnRJbikudGltZXMobGlxdWlkaXR5T3V0KSxkZW49YXBpLkJpZ051bWJlcihsaXF1aWRpdHlJbikucGx1cyhhbW91bnRJbiksYW1vdW50T3V0PW51bS5kaXZpZGVkQnkoZGVuKTtyZXR1cm4hIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihhbW91bnRPdXQpLmx0KGxpcXVpZGl0eU91dCksImluc3VmZmljaWVudCBsaXF1aWRpdHkiKSYmYW1vdW50T3V0fWFzeW5jIGZ1bmN0aW9uIHZhbGlkYXRlT3JhY2xlKHBvb2wsbmV3UHJpY2UsbWF4RGV2aWF0aW9uPWFwaS5CaWdOdW1iZXIoIjAuMDEiKSl7Y29uc3RbYmFzZVN5bWJvbCxxdW90ZVN5bWJvbF09cG9vbC50b2tlblBhaXIuc3BsaXQoIjoiKSxiYXNlTWV0cmljcz0iU1dBUC5ISVZFIiE9PWJhc2VTeW1ib2w/YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJtYXJrZXQiLCJtZXRyaWNzIix7c3ltYm9sOmJhc2VTeW1ib2x9KTp7bGFzdFByaWNlOjF9LHF1b3RlTWV0cmljcz0iU1dBUC5ISVZFIiE9PXF1b3RlU3ltYm9sP2F3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgibWFya2V0IiwibWV0cmljcyIse3N5bWJvbDpxdW90ZVN5bWJvbH0pOntsYXN0UHJpY2U6MX07aWYoIWJhc2VNZXRyaWNzfHwhcXVvdGVNZXRyaWNzKXJldHVybiBudWxsO2NvbnN0IG9yYWNsZT1hcGkuQmlnTnVtYmVyKGJhc2VNZXRyaWNzLmxhc3RQcmljZSkuZGl2aWRlZEJ5KHF1b3RlTWV0cmljcy5sYXN0UHJpY2UpLGRldj1hcGkuQmlnTnVtYmVyKG5ld1ByaWNlKS5taW51cyhvcmFjbGUpLmFicygpLmRpdmlkZWRCeShvcmFjbGUpO3JldHVybiEhYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKGRldikubHRlKG1heERldmlhdGlvbiksImV4Y2VlZGVkIG1heCBkZXZpYXRpb24gZnJvbSBvcmRlciBib29rIil9ZnVuY3Rpb24gdmFsaWRhdGVTd2FwKHBvb2wsYmFzZURlbHRhLHF1b3RlRGVsdGEsbWF4U2xpcHBhZ2Upe2NvbnN0IGs9YXBpLkJpZ051bWJlcihwb29sLmJhc2VRdWFudGl0eSkudGltZXMocG9vbC5xdW90ZVF1YW50aXR5KS50b0ZpeGVkKHBvb2wucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfSEFMRl9VUCksYmFzZUFkanVzdGVkPWFwaS5CaWdOdW1iZXIocG9vbC5iYXNlUXVhbnRpdHkpLnBsdXMoYmFzZURlbHRhKSxxdW90ZUFkanVzdGVkPWFwaS5CaWdOdW1iZXIocG9vbC5xdW90ZVF1YW50aXR5KS5wbHVzKHF1b3RlRGVsdGEpLGtBZGp1c3RlZD1hcGkuQmlnTnVtYmVyKGJhc2VBZGp1c3RlZCkudGltZXMocXVvdGVBZGp1c3RlZCkudG9GaXhlZChwb29sLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0hBTEZfVVApLHA9YXBpLkJpZ051bWJlcihwb29sLnF1b3RlUXVhbnRpdHkpLmRpdmlkZWRCeShwb29sLmJhc2VRdWFudGl0eSkudG9GaXhlZChwb29sLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0hBTEZfVVApLHBBZGp1c3RlZD1hcGkuQmlnTnVtYmVyKHF1b3RlQWRqdXN0ZWQpLmRpdmlkZWRCeShiYXNlQWRqdXN0ZWQpLnRvRml4ZWQocG9vbC5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9IQUxGX1VQKSxzbGlwcGFnZT1hcGkuQmlnTnVtYmVyKHBBZGp1c3RlZCkubWludXMocCkuYWJzKCkuZGl2aWRlZEJ5KHApO3JldHVybiEhYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKHNsaXBwYWdlKS5sdGUobWF4U2xpcHBhZ2UpLCJleGNlZWRlZCBtYXggc2xpcHBhZ2UgZm9yIHN3YXAiKSYmISFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIoa0FkanVzdGVkKS5lcShrKSxgY29uc3RhbnQgcHJvZHVjdCAke2tBZGp1c3RlZH0sIGV4cGVjdGVkICR7a31gKX1hc3luYyBmdW5jdGlvbiB2YWxpZGF0ZVRva2VuUGFpcih0b2tlblBhaXIpe2lmKCFhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgdG9rZW5QYWlyJiYtMSE9PXRva2VuUGFpci5pbmRleE9mKCI6IiksImludmFsaWQgdG9rZW5QYWlyIGZvcm1hdCIpKXJldHVybiExO2NvbnN0W2Jhc2VTeW1ib2wscXVvdGVTeW1ib2xdPXRva2VuUGFpci5zcGxpdCgiOiIpO3JldHVybiEhKGFwaS5hc3NlcnQoYmFzZVN5bWJvbCE9PXF1b3RlU3ltYm9sLCJ0b2tlblBhaXIgY2Fubm90IGJlIHRoZSBzYW1lIHRva2VuIikmJmFwaS5hc3NlcnQoYXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJ0b2tlbnMiLHtzeW1ib2w6YmFzZVN5bWJvbH0pLCJiYXNlU3ltYm9sIGRvZXMgbm90IGV4aXN0IikmJmFwaS5hc3NlcnQoYXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJ0b2tlbnMiLHtzeW1ib2w6cXVvdGVTeW1ib2x9KSwicXVvdGVTeW1ib2wgZG9lcyBub3QgZXhpc3QiKSl9YXN5bmMgZnVuY3Rpb24gdmFsaWRhdGVQb29sKHRva2VuUGFpcil7Y29uc3RbYmFzZVN5bWJvbCxxdW90ZVN5bWJvbF09dG9rZW5QYWlyLnNwbGl0KCI6IikscG9vbD1hd2FpdCBhcGkuZGIuZmluZE9uZSgicG9vbHMiLHt0b2tlblBhaXI6dG9rZW5QYWlyfSkscmV2UG9vbD1hd2FpdCBhcGkuZGIuZmluZE9uZSgicG9vbHMiLHt0b2tlblBhaXI6W3F1b3RlU3ltYm9sLGJhc2VTeW1ib2xdLmpvaW4oIjoiKX0pO3JldHVybiEhYXBpLmFzc2VydChudWxsPT09cG9vbCYmbnVsbD09PXJldlBvb2wsImEgcG9vbCBhbHJlYWR5IGV4aXN0cyBmb3IgdGhpcyB0b2tlblBhaXIiKX1hc3luYyBmdW5jdGlvbiB1cGRhdGVQb29sU3RhdHMocG9vbCxiYXNlQWRqdXN0ZWQscXVvdGVBZGp1c3RlZCxzaGFyZXNBZGp1c3RlZCxzd2FwKXtjb25zdCB1UG9vbD1wb29sO3VQb29sLmJhc2VRdWFudGl0eT1hcGkuQmlnTnVtYmVyKHBvb2wuYmFzZVF1YW50aXR5KS5wbHVzKGJhc2VBZGp1c3RlZCkudG9GaXhlZChwb29sLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0hBTEZfVVApLHVQb29sLnF1b3RlUXVhbnRpdHk9YXBpLkJpZ051bWJlcihwb29sLnF1b3RlUXVhbnRpdHkpLnBsdXMocXVvdGVBZGp1c3RlZCkudG9GaXhlZChwb29sLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0hBTEZfVVApLGFwaS5CaWdOdW1iZXIodVBvb2wuYmFzZVF1YW50aXR5KS5ndCgwKSYmYXBpLkJpZ051bWJlcih1UG9vbC5xdW90ZVF1YW50aXR5KS5ndCgwKSYmKHVQb29sLmJhc2VQcmljZT1hcGkuQmlnTnVtYmVyKHVQb29sLnF1b3RlUXVhbnRpdHkpLmRpdmlkZWRCeSh1UG9vbC5iYXNlUXVhbnRpdHkpLnRvRml4ZWQocG9vbC5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSx1UG9vbC5xdW90ZVByaWNlPWFwaS5CaWdOdW1iZXIodVBvb2wuYmFzZVF1YW50aXR5KS5kaXZpZGVkQnkodVBvb2wucXVvdGVRdWFudGl0eSkudG9GaXhlZChwb29sLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pKSxzaGFyZXNBZGp1c3RlZCYmKHVQb29sLnRvdGFsU2hhcmVzPWFwaS5CaWdOdW1iZXIocG9vbC50b3RhbFNoYXJlcykucGx1cyhzaGFyZXNBZGp1c3RlZCkpLHN3YXAmJih1UG9vbC5iYXNlVm9sdW1lPWFwaS5CaWdOdW1iZXIodVBvb2wuYmFzZVZvbHVtZSkucGx1cyhNYXRoLmFicyhiYXNlQWRqdXN0ZWQpKS50b0ZpeGVkKHBvb2wucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTiksdVBvb2wucXVvdGVWb2x1bWU9YXBpLkJpZ051bWJlcih1UG9vbC5xdW90ZVZvbHVtZSkucGx1cyhNYXRoLmFicyhxdW90ZUFkanVzdGVkKSkudG9GaXhlZChwb29sLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pKSxhd2FpdCBhcGkuZGIudXBkYXRlKCJwb29scyIsdVBvb2wpfWFjdGlvbnMuY3JlYXRlU1NDPWFzeW5jKCk9PntpZighMT09PWF3YWl0IGFwaS5kYi50YWJsZUV4aXN0cygicG9vbHMiKSl7YXdhaXQgYXBpLmRiLmNyZWF0ZVRhYmxlKCJwb29scyIsWyJ0b2tlblBhaXIiXSksYXdhaXQgYXBpLmRiLmNyZWF0ZVRhYmxlKCJsaXF1aWRpdHlQb3NpdGlvbnMiLFsiYWNjb3VudCIsInRva2VuUGFpciJdKSxhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoInBhcmFtcyIpO2NvbnN0IHBhcmFtcz17cG9vbENyZWF0aW9uRmVlOiIxMDAwIn07YXdhaXQgYXBpLmRiLmluc2VydCgicGFyYW1zIixwYXJhbXMpfX0sYWN0aW9ucy51cGRhdGVQYXJhbXM9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3Bvb2xDcmVhdGlvbkZlZTpwb29sQ3JlYXRpb25GZWV9PXBheWxvYWQ7aWYoYXBpLnNlbmRlciE9PWFwaS5vd25lcilyZXR1cm47Y29uc3QgcGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KTtpZihwb29sQ3JlYXRpb25GZWUpe2lmKCFhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgcG9vbENyZWF0aW9uRmVlJiYhYXBpLkJpZ051bWJlcihwb29sQ3JlYXRpb25GZWUpLmlzTmFOKCkmJmFwaS5CaWdOdW1iZXIocG9vbENyZWF0aW9uRmVlKS5ndGUoMCksImludmFsaWQgcG9vbENyZWF0aW9uRmVlIikpcmV0dXJuO3BhcmFtcy5wb29sQ3JlYXRpb25GZWU9cG9vbENyZWF0aW9uRmVlfWF3YWl0IGFwaS5kYi51cGRhdGUoInBhcmFtcyIscGFyYW1zKX0sYWN0aW9ucy5jcmVhdGVQb29sPWFzeW5jIHBheWxvYWQ9Pntjb25zdHt0b2tlblBhaXI6dG9rZW5QYWlyLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQscGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KSx7cG9vbENyZWF0aW9uRmVlOnBvb2xDcmVhdGlvbkZlZX09cGFyYW1zLHV0aWxpdHlUb2tlbkJhbGFuY2U9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJiYWxhbmNlcyIse2FjY291bnQ6YXBpLnNlbmRlcixzeW1ib2w6IkJFRSJ9KSxhdXRob3JpemVkQ3JlYXRpb249ISghYXBpLkJpZ051bWJlcihwb29sQ3JlYXRpb25GZWUpLmx0ZSgwKSYmYXBpLnNlbmRlciE9PWFwaS5vd25lcil8fHV0aWxpdHlUb2tlbkJhbGFuY2UmJmFwaS5CaWdOdW1iZXIodXRpbGl0eVRva2VuQmFsYW5jZS5iYWxhbmNlKS5ndGUocG9vbENyZWF0aW9uRmVlKTtpZihhcGkuYXNzZXJ0KGF1dGhvcml6ZWRDcmVhdGlvbiwieW91IG11c3QgaGF2ZSBlbm91Z2ggdG9rZW5zIHRvIGNvdmVyIHRoZSBjcmVhdGlvbiBmZWUiKSYmYXdhaXQgdmFsaWRhdGVUb2tlblBhaXIodG9rZW5QYWlyKSYmYXdhaXQgdmFsaWRhdGVQb29sKHRva2VuUGFpcikmJmFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIHRyYW5zYWN0aW9uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpKXtjb25zdFtiYXNlU3ltYm9sLHF1b3RlU3ltYm9sXT10b2tlblBhaXIuc3BsaXQoIjoiKSxiYXNlVG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJ0b2tlbnMiLHtzeW1ib2w6YmFzZVN5bWJvbH0pLHF1b3RlVG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJ0b2tlbnMiLHtzeW1ib2w6cXVvdGVTeW1ib2x9KSxuZXdQb29sPXt0b2tlblBhaXI6dG9rZW5QYWlyLGJhc2VRdWFudGl0eTowLGJhc2VWb2x1bWU6MCxiYXNlUHJpY2U6MCxxdW90ZVF1YW50aXR5OjAscXVvdGVWb2x1bWU6MCxxdW90ZVByaWNlOjAsdG90YWxTaGFyZXM6MCxwcmVjaXNpb246TWF0aC5tYXgoYmFzZVRva2VuLnByZWNpc2lvbixxdW90ZVRva2VuLnByZWNpc2lvbiksY3JlYXRvcjphcGkuc2VuZGVyfTthd2FpdCBhcGkuZGIuaW5zZXJ0KCJwb29scyIsbmV3UG9vbCksYXBpLnNlbmRlciE9PWFwaS5vd25lciYmYXBpLkJpZ051bWJlcihwb29sQ3JlYXRpb25GZWUpLmd0KDApJiZhd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoInRva2VucyIsInRyYW5zZmVyIix7dG86Im51bGwiLHN5bWJvbDoiQkVFIixxdWFudGl0eTpwb29sQ3JlYXRpb25GZWUsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX0pLGFwaS5lbWl0KCJjcmVhdGVQb29sIix7dG9rZW5QYWlyOnRva2VuUGFpcn0pfX0sYWN0aW9ucy5jcmVhdGVSZXdhcmRQb29sPWFzeW5jIHBheWxvYWQ9Pntjb25zdHt0b2tlblBhaXI6dG9rZW5QYWlyLGxvdHRlcnlXaW5uZXJzOmxvdHRlcnlXaW5uZXJzLGxvdHRlcnlJbnRlcnZhbEhvdXJzOmxvdHRlcnlJbnRlcnZhbEhvdXJzLGxvdHRlcnlBbW91bnQ6bG90dGVyeUFtb3VudCxtaW5lZFRva2VuOm1pbmVkVG9rZW4saXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZCxwYXJhbXM9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJtaW5pbmciLCJwYXJhbXMiLHt9KSx7cG9vbENyZWF0aW9uRmVlOnBvb2xDcmVhdGlvbkZlZX09cGFyYW1zLHV0aWxpdHlUb2tlbkJhbGFuY2U9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJiYWxhbmNlcyIse2FjY291bnQ6YXBpLnNlbmRlcixzeW1ib2w6IkJFRSJ9KSxhdXRob3JpemVkQ3JlYXRpb249ISghYXBpLkJpZ051bWJlcihwb29sQ3JlYXRpb25GZWUpLmx0ZSgwKSYmYXBpLnNlbmRlciE9PWFwaS5vd25lcil8fHV0aWxpdHlUb2tlbkJhbGFuY2UmJmFwaS5CaWdOdW1iZXIodXRpbGl0eVRva2VuQmFsYW5jZS5iYWxhbmNlKS5ndGUocG9vbENyZWF0aW9uRmVlKSxwb29sUG9zaXRpb25zPWF3YWl0IGFwaS5kYi5maW5kKCJsaXF1aWRpdHlQb3NpdGlvbnMiLHt0b2tlblBhaXI6dG9rZW5QYWlyfSk7aWYoYXBpLmFzc2VydChhdXRob3JpemVkQ3JlYXRpb24sInlvdSBtdXN0IGhhdmUgZW5vdWdoIHRva2VucyB0byBjb3ZlciB0aGUgY3JlYXRpb24gZmVlIikmJmF3YWl0IHZhbGlkYXRlVG9rZW5QYWlyKHRva2VuUGFpcikmJmFwaS5hc3NlcnQocG9vbFBvc2l0aW9ucyYmcG9vbFBvc2l0aW9ucy5sZW5ndGg+MCwicG9vbCBtdXN0IGhhdmUgbGlxdWlkaXR5IHBvc2l0aW9ucyIpJiZhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSB0cmFuc2FjdGlvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSl7Y29uc3QgcmV3YXJkUG9vbElkPWAke21pbmVkVG9rZW59OkVYVC0ke3Rva2VuUGFpci5yZXBsYWNlKCI6IiwiIil9YCxyZXM9YXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJtaW5pbmciLCJjcmVhdGVQb29sIix7bG90dGVyeVdpbm5lcnM6bG90dGVyeVdpbm5lcnMsbG90dGVyeUludGVydmFsSG91cnM6bG90dGVyeUludGVydmFsSG91cnMsbG90dGVyeUFtb3VudDpsb3R0ZXJ5QW1vdW50LG1pbmVkVG9rZW46bWluZWRUb2tlbixleHRlcm5hbE1pbmVyczp0b2tlblBhaXJ9KTt2b2lkIDA9PT1yZXMuZXJyb3JzJiZyZXMuZXZlbnRzJiZ2b2lkIDAhPT1yZXMuZXZlbnRzLmZpbmQoZWw9PiJtaW5pbmciPT09ZWwuY29udHJhY3QmJiJjcmVhdGVQb29sIj09PWVsLmV2ZW50KSYmKGF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgibWluaW5nIiwic2V0QWN0aXZlIix7aWQ6cmV3YXJkUG9vbElkLGFjdGl2ZTohMH0pLGFwaS5lbWl0KCJjcmVhdGVSZXdhcmRQb29sIix7dG9rZW5QYWlyOnRva2VuUGFpcixyZXdhcmRQb29sSWQ6cmV3YXJkUG9vbElkfSkpfX0sYWN0aW9ucy51cGRhdGVSZXdhcmRQb29sPWFzeW5jIHBheWxvYWQ9Pntjb25zdHt0b2tlblBhaXI6dG9rZW5QYWlyLGxvdHRlcnlXaW5uZXJzOmxvdHRlcnlXaW5uZXJzLGxvdHRlcnlJbnRlcnZhbEhvdXJzOmxvdHRlcnlJbnRlcnZhbEhvdXJzLGxvdHRlcnlBbW91bnQ6bG90dGVyeUFtb3VudCxtaW5lZFRva2VuOm1pbmVkVG9rZW4saXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZCxwYXJhbXM9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJtaW5pbmciLCJwYXJhbXMiLHt9KSx7cG9vbFVwZGF0ZUZlZTpwb29sVXBkYXRlRmVlfT1wYXJhbXMsdXRpbGl0eVRva2VuQmFsYW5jZT1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsImJhbGFuY2VzIix7YWNjb3VudDphcGkuc2VuZGVyLHN5bWJvbDoiQkVFIn0pLGF1dGhvcml6ZWRVcGRhdGU9ISghYXBpLkJpZ051bWJlcihwb29sVXBkYXRlRmVlKS5sdGUoMCkmJmFwaS5zZW5kZXIhPT1hcGkub3duZXIpfHx1dGlsaXR5VG9rZW5CYWxhbmNlJiZhcGkuQmlnTnVtYmVyKHV0aWxpdHlUb2tlbkJhbGFuY2UuYmFsYW5jZSkuZ3RlKHBvb2xVcGRhdGVGZWUpLHBvb2xQb3NpdGlvbnM9YXdhaXQgYXBpLmRiLmZpbmQoImxpcXVpZGl0eVBvc2l0aW9ucyIse3Rva2VuUGFpcjp0b2tlblBhaXJ9KTtpZihhcGkuYXNzZXJ0KGF1dGhvcml6ZWRVcGRhdGUsInlvdSBtdXN0IGhhdmUgZW5vdWdoIHRva2VucyB0byBjb3ZlciB0aGUgdXBkYXRlIGZlZSIpJiZhd2FpdCB2YWxpZGF0ZVRva2VuUGFpcih0b2tlblBhaXIpJiZhcGkuYXNzZXJ0KHBvb2xQb3NpdGlvbnMmJnBvb2xQb3NpdGlvbnMubGVuZ3RoPjAsInBvb2wgbXVzdCBoYXZlIGxpcXVpZGl0eSBwb3NpdGlvbnMiKSYmYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgdHJhbnNhY3Rpb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5Iikpe2NvbnN0IHJld2FyZFBvb2xJZD1gJHttaW5lZFRva2VufTpFWFQtJHt0b2tlblBhaXIucmVwbGFjZSgiOiIsIiIpfWAscmVzPWF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgibWluaW5nIiwidXBkYXRlUG9vbCIse2lkOnJld2FyZFBvb2xJZCxsb3R0ZXJ5V2lubmVyczpsb3R0ZXJ5V2lubmVycyxsb3R0ZXJ5SW50ZXJ2YWxIb3Vyczpsb3R0ZXJ5SW50ZXJ2YWxIb3Vycyxsb3R0ZXJ5QW1vdW50OmxvdHRlcnlBbW91bnR9KTt2b2lkIDA9PT1yZXMuZXJyb3JzJiZyZXMuZXZlbnRzJiZ2b2lkIDAhPT1yZXMuZXZlbnRzLmZpbmQoZWw9PiJtaW5pbmciPT09ZWwuY29udHJhY3QmJiJ1cGRhdGVQb29sIj09PWVsLmV2ZW50KSYmYXBpLmVtaXQoInVwZGF0ZVJld2FyZFBvb2wiLHt0b2tlblBhaXI6dG9rZW5QYWlyLHJld2FyZFBvb2xJZDpyZXdhcmRQb29sSWR9KX19LGFjdGlvbnMuc2V0UmV3YXJkUG9vbEFjdGl2ZT1hc3luYyBwYXlsb2FkPT57Y29uc3R7dG9rZW5QYWlyOnRva2VuUGFpcixtaW5lZFRva2VuOm1pbmVkVG9rZW4sYWN0aXZlOmFjdGl2ZSxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkO2lmKCFhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSBjdXN0b21fanNvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKXx8IWF3YWl0IHZhbGlkYXRlVG9rZW5QYWlyKHRva2VuUGFpcikpcmV0dXJuO2NvbnN0IHJld2FyZFBvb2xJZD1gJHttaW5lZFRva2VufTpFWFQtJHt0b2tlblBhaXIucmVwbGFjZSgiOiIsIiIpfWA7dm9pZCAwPT09KGF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgibWluaW5nIiwic2V0QWN0aXZlIix7aWQ6cmV3YXJkUG9vbElkLGFjdGl2ZTphY3RpdmV9KSkuZXJyb3JzJiZhcGkuZW1pdCgic2V0UmV3YXJkUG9vbEFjdGl2ZSIse3Jld2FyZFBvb2xJZDpyZXdhcmRQb29sSWQsYWN0aXZlOmFjdGl2ZX0pfSxhY3Rpb25zLmFkZExpcXVpZGl0eT1hc3luYyBwYXlsb2FkPT57Y29uc3R7dG9rZW5QYWlyOnRva2VuUGFpcixiYXNlUXVhbnRpdHk6YmFzZVF1YW50aXR5LHF1b3RlUXVhbnRpdHk6cXVvdGVRdWFudGl0eSxtYXhTbGlwcGFnZTptYXhTbGlwcGFnZSxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkO2lmKCEoYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgdHJhbnNhY3Rpb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5IikmJmFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBiYXNlUXVhbnRpdHkmJmFwaS5CaWdOdW1iZXIoYmFzZVF1YW50aXR5KS5ndCgwKSwiaW52YWxpZCBiYXNlUXVhbnRpdHkiKSYmYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHF1b3RlUXVhbnRpdHkmJmFwaS5CaWdOdW1iZXIocXVvdGVRdWFudGl0eSkuZ3QoMCksImludmFsaWQgcXVvdGVRdWFudGl0eSIpJiZhd2FpdCB2YWxpZGF0ZVRva2VuUGFpcih0b2tlblBhaXIpKSlyZXR1cm47bGV0IGFkZFNsaXBwYWdlPWFwaS5CaWdOdW1iZXIoIjAuMDEiKTtpZihtYXhTbGlwcGFnZSl7aWYoIWFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBtYXhTbGlwcGFnZSYmYXBpLkJpZ051bWJlcihtYXhTbGlwcGFnZSkuZ3QoMCkmJmFwaS5CaWdOdW1iZXIobWF4U2xpcHBhZ2UpLmx0KDUwKSYmYXBpLkJpZ051bWJlcihtYXhTbGlwcGFnZSkuZHAoKTw9MywibWF4U2xpcHBhZ2UgbXVzdCBiZSBncmVhdGVyIHRoYW4gMCBhbmQgbGVzcyB0aGFuIDUwIikpcmV0dXJuO2FkZFNsaXBwYWdlPWFwaS5CaWdOdW1iZXIobWF4U2xpcHBhZ2UpLmRpdmlkZWRCeSgxMDApfWNvbnN0W2Jhc2VTeW1ib2wscXVvdGVTeW1ib2xdPXRva2VuUGFpci5zcGxpdCgiOiIpLGJhc2VUb2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpiYXNlU3ltYm9sfSkscXVvdGVUb2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpxdW90ZVN5bWJvbH0pO2lmKCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIoYmFzZVF1YW50aXR5KS5kcCgpPD1iYXNlVG9rZW4ucHJlY2lzaW9uLCJiYXNlUXVhbnRpdHkgcHJlY2lzaW9uIG1pc21hdGNoIil8fCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIocXVvdGVRdWFudGl0eSkuZHAoKTw9cXVvdGVUb2tlbi5wcmVjaXNpb24sInF1b3RlUXVhbnRpdHkgcHJlY2lzaW9uIG1pc21hdGNoIikpcmV0dXJuO2NvbnN0IHBvb2w9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBvb2xzIix7dG9rZW5QYWlyOnRva2VuUGFpcn0pO2lmKGFwaS5hc3NlcnQocG9vbCwibm8gZXhpc3RpbmcgcG9vbCBmb3IgdG9rZW5QYWlyIikpe2lmKGFwaS5CaWdOdW1iZXIocG9vbC5iYXNlUXVhbnRpdHkpLmVxKDApJiZhcGkuQmlnTnVtYmVyKHBvb2wucXVvdGVRdWFudGl0eSkuZXEoMCkmJiExPT09YXdhaXQgdmFsaWRhdGVPcmFjbGUocG9vbCxhcGkuQmlnTnVtYmVyKHF1b3RlUXVhbnRpdHkpLmRpdmlkZWRCeShiYXNlUXVhbnRpdHkpKSlyZXR1cm47bGV0IGFtb3VudEFkanVzdGVkO2NvbnN0IGJhc2VNaW49YXBpLkJpZ051bWJlcihiYXNlUXVhbnRpdHkpLnRpbWVzKGFwaS5CaWdOdW1iZXIoIjEiKS5taW51cyhhZGRTbGlwcGFnZSkpLHF1b3RlTWluPWFwaS5CaWdOdW1iZXIocXVvdGVRdWFudGl0eSkudGltZXMoYXBpLkJpZ051bWJlcigiMSIpLm1pbnVzKGFkZFNsaXBwYWdlKSk7aWYoYXBpLkJpZ051bWJlcihwb29sLmJhc2VRdWFudGl0eSkuZ3QoMCkmJmFwaS5CaWdOdW1iZXIocG9vbC5xdW90ZVF1YW50aXR5KS5ndCgwKSl7Y29uc3QgcXVvdGVPcHRpbWFsPWdldFF1b3RlKGJhc2VRdWFudGl0eSxwb29sLmJhc2VRdWFudGl0eSxwb29sLnF1b3RlUXVhbnRpdHkpLnRvRml4ZWQocXVvdGVUb2tlbi5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9IQUxGX1VQKTtpZihhcGkuQmlnTnVtYmVyKHF1b3RlT3B0aW1hbCkubHRlKHF1b3RlUXVhbnRpdHkpKXtpZighYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKHF1b3RlT3B0aW1hbCkuZ3RlKHF1b3RlTWluKSwiZXhjZWVkZWQgbWF4IHNsaXBwYWdlIGZvciBhZGRpbmcgbGlxdWlkaXR5IikpcmV0dXJuO2Ftb3VudEFkanVzdGVkPVtiYXNlUXVhbnRpdHkscXVvdGVPcHRpbWFsXX1lbHNle2NvbnN0IGJhc2VPcHRpbWFsPWdldFF1b3RlKHF1b3RlUXVhbnRpdHkscG9vbC5xdW90ZVF1YW50aXR5LHBvb2wuYmFzZVF1YW50aXR5KS50b0ZpeGVkKGJhc2VUb2tlbi5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9IQUxGX1VQKTtpZihhcGkuQmlnTnVtYmVyKGJhc2VPcHRpbWFsKS5sdGUoYmFzZVF1YW50aXR5KSl7aWYoIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihiYXNlT3B0aW1hbCkuZ3RlKGJhc2VNaW4pLCJleGNlZWRlZCBtYXggc2xpcHBhZ2UgZm9yIGFkZGluZyBsaXF1aWRpdHkiKSlyZXR1cm47YW1vdW50QWRqdXN0ZWQ9W2Jhc2VPcHRpbWFsLHF1b3RlUXVhbnRpdHldfX19ZWxzZSBhbW91bnRBZGp1c3RlZD1bYmFzZVF1YW50aXR5LHF1b3RlUXVhbnRpdHldO2NvbnN0IHNlbmRlckJhc2U9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJiYWxhbmNlcyIse2FjY291bnQ6YXBpLnNlbmRlcixzeW1ib2w6YmFzZVN5bWJvbH0pLHNlbmRlclF1b3RlPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwiYmFsYW5jZXMiLHthY2NvdW50OmFwaS5zZW5kZXIsc3ltYm9sOnF1b3RlU3ltYm9sfSksc2VuZGVyRnVuZGVkPXNlbmRlckJhc2UmJnNlbmRlclF1b3RlJiZhcGkuQmlnTnVtYmVyKHNlbmRlckJhc2UuYmFsYW5jZSkuZ3RlKGFtb3VudEFkanVzdGVkWzBdKSYmYXBpLkJpZ051bWJlcihzZW5kZXJRdW90ZS5iYWxhbmNlKS5ndGUoYW1vdW50QWRqdXN0ZWRbMV0pO2lmKCFhcGkuYXNzZXJ0KHNlbmRlckZ1bmRlZCwiaW5zdWZmaWNpZW50IHRva2VuIGJhbGFuY2UiKSlyZXR1cm47bGV0IG5ld1NoYXJlcztpZihuZXdTaGFyZXM9YXBpLkJpZ051bWJlcihwb29sLnRvdGFsU2hhcmVzKS5lcSgwKT9hcGkuQmlnTnVtYmVyKGFtb3VudEFkanVzdGVkWzBdKS50aW1lcyhhbW91bnRBZGp1c3RlZFsxXSkuc3FydCgpOmFwaS5CaWdOdW1iZXIubWluKGFwaS5CaWdOdW1iZXIoYW1vdW50QWRqdXN0ZWRbMF0pLnRpbWVzKHBvb2wudG90YWxTaGFyZXMpLmRpdmlkZWRCeShwb29sLmJhc2VRdWFudGl0eSksYXBpLkJpZ051bWJlcihhbW91bnRBZGp1c3RlZFsxXSkudGltZXMocG9vbC50b3RhbFNoYXJlcykuZGl2aWRlZEJ5KHBvb2wucXVvdGVRdWFudGl0eSkpLCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIobmV3U2hhcmVzKS5ndCgwKSwiaW5zdWZmaWNpZW50IGxpcXVpZGl0eSBjcmVhdGVkIikpcmV0dXJuO2NvbnN0IGxwPWF3YWl0IGFwaS5kYi5maW5kT25lKCJsaXF1aWRpdHlQb3NpdGlvbnMiLHthY2NvdW50OmFwaS5zZW5kZXIsdG9rZW5QYWlyOnRva2VuUGFpcn0pO2lmKGxwKWxwLnNoYXJlcz1hcGkuQmlnTnVtYmVyKGxwLnNoYXJlcykucGx1cyhuZXdTaGFyZXMpLGF3YWl0IGFwaS5kYi51cGRhdGUoImxpcXVpZGl0eVBvc2l0aW9ucyIsbHApO2Vsc2V7Y29uc3QgbmV3bHA9e2FjY291bnQ6YXBpLnNlbmRlcix0b2tlblBhaXI6dG9rZW5QYWlyLHNoYXJlczpuZXdTaGFyZXN9O2F3YWl0IGFwaS5kYi5pbnNlcnQoImxpcXVpZGl0eVBvc2l0aW9ucyIsbmV3bHApfWNvbnN0IGJhc2VSZXM9YXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJ0b2tlbnMiLCJ0cmFuc2ZlclRvQ29udHJhY3QiLHtzeW1ib2w6YmFzZVN5bWJvbCxxdWFudGl0eTphbW91bnRBZGp1c3RlZFswXSx0bzoibWFya2V0cG9vbHMifSkscXVvdGVSZXM9YXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJ0b2tlbnMiLCJ0cmFuc2ZlclRvQ29udHJhY3QiLHtzeW1ib2w6cXVvdGVTeW1ib2wscXVhbnRpdHk6YW1vdW50QWRqdXN0ZWRbMV0sdG86Im1hcmtldHBvb2xzIn0pO2lmKCFhcGkuYXNzZXJ0KHZvaWQgMD09PWJhc2VSZXMuZXJyb3JzJiZ2b2lkIDA9PT1xdW90ZVJlcy5lcnJvcnMsImRlcG9zaXQgdHJhbnNmZXIgZXJyb3JzIikpcmV0dXJuO2F3YWl0IHVwZGF0ZVBvb2xTdGF0cyhwb29sLGFtb3VudEFkanVzdGVkWzBdLGFtb3VudEFkanVzdGVkWzFdLG5ld1NoYXJlcywhMSksYXBpLmVtaXQoImFkZExpcXVpZGl0eSIse2Jhc2VTeW1ib2w6YmFzZVN5bWJvbCxxdW90ZVN5bWJvbDpxdW90ZVN5bWJvbH0pfX0sYWN0aW9ucy5yZW1vdmVMaXF1aWRpdHk9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3Rva2VuUGFpcjp0b2tlblBhaXIsc2hhcmVzT3V0OnNoYXJlc091dCxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkO2lmKCFhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSB0cmFuc2FjdGlvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKXx8IWFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBzaGFyZXNPdXQmJmFwaS5CaWdOdW1iZXIoc2hhcmVzT3V0KS5ndCgwKSYmYXBpLkJpZ051bWJlcihzaGFyZXNPdXQpLmx0ZSgxMDApJiZhcGkuQmlnTnVtYmVyKHNoYXJlc091dCkuZHAoKTw9MywiaW52YWxpZCBzaGFyZXNPdXQsIG11c3QgYmUgPiAwIDw9IDEwMCIpfHwhYXdhaXQgdmFsaWRhdGVUb2tlblBhaXIodG9rZW5QYWlyKSlyZXR1cm47Y29uc3RbYmFzZVN5bWJvbCxxdW90ZVN5bWJvbF09dG9rZW5QYWlyLnNwbGl0KCI6IiksYmFzZVRva2VuPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOmJhc2VTeW1ib2x9KSxxdW90ZVRva2VuPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOnF1b3RlU3ltYm9sfSkscG9vbD1hd2FpdCBhcGkuZGIuZmluZE9uZSgicG9vbHMiLHt0b2tlblBhaXI6dG9rZW5QYWlyfSk7aWYoYXBpLmFzc2VydChwb29sLCJubyBleGlzdGluZyBwb29sIGZvciB0b2tlblBhaXIiKSl7Y29uc3QgbHA9YXdhaXQgYXBpLmRiLmZpbmRPbmUoImxpcXVpZGl0eVBvc2l0aW9ucyIse2FjY291bnQ6YXBpLnNlbmRlcix0b2tlblBhaXI6dG9rZW5QYWlyfSk7aWYoYXBpLmFzc2VydChscCwibm8gZXhpc3RpbmcgbGlxdWlkaXR5IHBvc2l0aW9uIikpe2NvbnN0IHNoYXJlc0RlbHRhPWFwaS5CaWdOdW1iZXIobHAuc2hhcmVzKS50aW1lcyhzaGFyZXNPdXQpLmRpdmlkZWRCeSgxMDApLGJhc2VPdXQ9YXBpLkJpZ051bWJlcihzaGFyZXNEZWx0YSkudGltZXMocG9vbC5iYXNlUXVhbnRpdHkpLmRpdmlkZWRCeShwb29sLnRvdGFsU2hhcmVzKS50b0ZpeGVkKGJhc2VUb2tlbi5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSxxdW90ZU91dD1hcGkuQmlnTnVtYmVyKHNoYXJlc0RlbHRhKS50aW1lcyhwb29sLnF1b3RlUXVhbnRpdHkpLmRpdmlkZWRCeShwb29sLnRvdGFsU2hhcmVzKS50b0ZpeGVkKHF1b3RlVG9rZW4ucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTik7aWYoIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihiYXNlT3V0KS5ndCgwKSYmYXBpLkJpZ051bWJlcihxdW90ZU91dCkuZ3QoMCkmJmFwaS5CaWdOdW1iZXIocG9vbC5iYXNlUXVhbnRpdHkpLmd0ZShiYXNlT3V0KSYmYXBpLkJpZ051bWJlcihwb29sLnF1b3RlUXVhbnRpdHkpLmd0ZShxdW90ZU91dCksImluc3VmZmljaWVudCBsaXF1aWRpdHkiKSlyZXR1cm47bHAuc2hhcmVzPWFwaS5CaWdOdW1iZXIobHAuc2hhcmVzKS5taW51cyhzaGFyZXNEZWx0YSksYXBpLkJpZ051bWJlcihscC5zaGFyZXMpLmVxKDApP2F3YWl0IGFwaS5kYi5yZW1vdmUoImxpcXVpZGl0eVBvc2l0aW9ucyIsbHApOmF3YWl0IGFwaS5kYi51cGRhdGUoImxpcXVpZGl0eVBvc2l0aW9ucyIsbHApO2NvbnN0IGJhc2VSZXM9YXdhaXQgYXBpLnRyYW5zZmVyVG9rZW5zKGFwaS5zZW5kZXIsYmFzZVN5bWJvbCxiYXNlT3V0LCJ1c2VyIikscXVvdGVSZXM9YXdhaXQgYXBpLnRyYW5zZmVyVG9rZW5zKGFwaS5zZW5kZXIscXVvdGVTeW1ib2wscXVvdGVPdXQsInVzZXIiKTtpZighYXBpLmFzc2VydCh2b2lkIDA9PT1iYXNlUmVzLmVycm9ycyYmdm9pZCAwPT09cXVvdGVSZXMuZXJyb3JzLCJ3aXRoZHJhd2FsIHRyYW5zZmVyIGVycm9ycyIpKXJldHVybjthd2FpdCB1cGRhdGVQb29sU3RhdHMocG9vbCxhcGkuQmlnTnVtYmVyKGJhc2VPdXQpLm5lZ2F0ZWQoKSxhcGkuQmlnTnVtYmVyKHF1b3RlT3V0KS5uZWdhdGVkKCksYXBpLkJpZ051bWJlcihzaGFyZXNEZWx0YSkubmVnYXRlZCgpLCExKSxhcGkuZW1pdCgicmVtb3ZlTGlxdWlkaXR5Iix7YmFzZVN5bWJvbDpiYXNlU3ltYm9sLHF1b3RlU3ltYm9sOnF1b3RlU3ltYm9sfSl9fX0sYWN0aW9ucy5zd2FwVG9rZW5zPWFzeW5jIHBheWxvYWQ9Pntjb25zdHt0b2tlblBhaXI6dG9rZW5QYWlyLHRva2VuU3ltYm9sOnRva2VuU3ltYm9sLHRva2VuQW1vdW50OnRva2VuQW1vdW50LHRyYWRlVHlwZTp0cmFkZVR5cGUsbWF4U2xpcHBhZ2U6bWF4U2xpcHBhZ2UsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZighKGFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIHRyYW5zYWN0aW9uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiZhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgdG9rZW5TeW1ib2wsImludmFsaWQgdG9rZW4iKSYmYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHRva2VuQW1vdW50JiZhcGkuQmlnTnVtYmVyKHRva2VuQW1vdW50KS5ndCgwKSwiaW5zdWZmaWNpZW50IHRva2VuQW1vdW50IikmJmFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBtYXhTbGlwcGFnZSYmYXBpLkJpZ051bWJlcihtYXhTbGlwcGFnZSkuZ3QoMCkmJmFwaS5CaWdOdW1iZXIobWF4U2xpcHBhZ2UpLmx0KDUwKSYmYXBpLkJpZ051bWJlcihtYXhTbGlwcGFnZSkuZHAoKTw9MywibWF4U2xpcHBhZ2UgbXVzdCBiZSBncmVhdGVyIHRoYW4gMCBhbmQgbGVzcyB0aGFuIDUwIikmJmFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiB0cmFkZVR5cGUmJi0xIT09VHJhZGVUeXBlLmluZGV4T2YodHJhZGVUeXBlKSwiaW52YWxpZCB0cmFkZVR5cGUiKSYmYXdhaXQgdmFsaWRhdGVUb2tlblBhaXIodG9rZW5QYWlyKSkpcmV0dXJuO2NvbnN0W2Jhc2VTeW1ib2wscXVvdGVTeW1ib2xdPXRva2VuUGFpci5zcGxpdCgiOiIpLHBvb2w9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBvb2xzIix7dG9rZW5QYWlyOnRva2VuUGFpcn0pO2lmKCFhcGkuYXNzZXJ0KHBvb2wsIm5vIGV4aXN0aW5nIHBvb2wgZm9yIHRva2VuUGFpciIpKXJldHVybjtsZXQgbGlxdWlkaXR5SW4sbGlxdWlkaXR5T3V0LHN5bWJvbEluLHN5bWJvbE91dDsoImV4YWN0SW5wdXQiPT09dHJhZGVUeXBlP3Rva2VuU3ltYm9sPT09YmFzZVN5bWJvbDp0b2tlblN5bWJvbCE9PWJhc2VTeW1ib2wpPyhsaXF1aWRpdHlJbj1wb29sLmJhc2VRdWFudGl0eSxsaXF1aWRpdHlPdXQ9cG9vbC5xdW90ZVF1YW50aXR5LHN5bWJvbEluPWJhc2VTeW1ib2wsc3ltYm9sT3V0PXF1b3RlU3ltYm9sKToobGlxdWlkaXR5SW49cG9vbC5xdW90ZVF1YW50aXR5LGxpcXVpZGl0eU91dD1wb29sLmJhc2VRdWFudGl0eSxzeW1ib2xJbj1xdW90ZVN5bWJvbCxzeW1ib2xPdXQ9YmFzZVN5bWJvbCk7Y29uc3QgdG9rZW5Jbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpzeW1ib2xJbn0pLHRva2VuT3V0PWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOnN5bWJvbE91dH0pLHNlbmRlckJhc2U9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJiYWxhbmNlcyIse2FjY291bnQ6YXBpLnNlbmRlcixzeW1ib2w6c3ltYm9sSW59KTtsZXQgdG9rZW5QYWlyRGVsdGEsdG9rZW5RdWFudGl0eSxzZW5kZXJCYXNlRnVuZGVkPSExO2lmKCJleGFjdElucHV0Ij09PXRyYWRlVHlwZSl7Y29uc3QgdG9rZW5BbW91bnRBZGp1c3RlZD1hcGkuQmlnTnVtYmVyKGdldEFtb3VudE91dCh0b2tlbkFtb3VudCxsaXF1aWRpdHlJbixsaXF1aWRpdHlPdXQpKTtpZighdG9rZW5BbW91bnRBZGp1c3RlZC5pc0Zpbml0ZSgpKXJldHVybjtpZihzZW5kZXJCYXNlRnVuZGVkPXNlbmRlckJhc2UmJmFwaS5CaWdOdW1iZXIoc2VuZGVyQmFzZS5iYWxhbmNlKS5ndGUodG9rZW5BbW91bnQpLHRva2VuUGFpckRlbHRhPXRva2VuU3ltYm9sPT09YmFzZVN5bWJvbD9bdG9rZW5BbW91bnQsYXBpLkJpZ051bWJlcih0b2tlbkFtb3VudEFkanVzdGVkKS5uZWdhdGVkKCldOlthcGkuQmlnTnVtYmVyKHRva2VuQW1vdW50QWRqdXN0ZWQpLm5lZ2F0ZWQoKSx0b2tlbkFtb3VudF0sdG9rZW5RdWFudGl0eT17aW46dG9rZW5BbW91bnQsb3V0OnRva2VuQW1vdW50QWRqdXN0ZWR9LCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIodG9rZW5RdWFudGl0eS5pbikuZHAoKTw9dG9rZW5Jbi5wcmVjaXNpb24sInN5bWJvbEluIHByZWNpc2lvbiBtaXNtYXRjaCIpKXJldHVybn1lbHNlIGlmKCJleGFjdE91dHB1dCI9PT10cmFkZVR5cGUpe2NvbnN0IHRva2VuQW1vdW50QWRqdXN0ZWQ9YXBpLkJpZ051bWJlcihnZXRBbW91bnRJbih0b2tlbkFtb3VudCxsaXF1aWRpdHlJbixsaXF1aWRpdHlPdXQpKTtpZighdG9rZW5BbW91bnRBZGp1c3RlZC5pc0Zpbml0ZSgpKXJldHVybjtpZihzZW5kZXJCYXNlRnVuZGVkPXNlbmRlckJhc2UmJmFwaS5CaWdOdW1iZXIoc2VuZGVyQmFzZS5iYWxhbmNlKS5ndGUodG9rZW5BbW91bnRBZGp1c3RlZC50b0ZpeGVkKHRva2VuSW4ucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfSEFMRl9VUCkpLHRva2VuUGFpckRlbHRhPXRva2VuU3ltYm9sPT09YmFzZVN5bWJvbD9bYXBpLkJpZ051bWJlcih0b2tlbkFtb3VudCkubmVnYXRlZCgpLHRva2VuQW1vdW50QWRqdXN0ZWRdOlt0b2tlbkFtb3VudEFkanVzdGVkLGFwaS5CaWdOdW1iZXIodG9rZW5BbW91bnQpLm5lZ2F0ZWQoKV0sdG9rZW5RdWFudGl0eT17aW46dG9rZW5BbW91bnRBZGp1c3RlZCxvdXQ6dG9rZW5BbW91bnR9LCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIodG9rZW5RdWFudGl0eS5vdXQpLmRwKCk8PXRva2VuT3V0LnByZWNpc2lvbiwic3ltYm9sT3V0IHByZWNpc2lvbiBtaXNtYXRjaCIpKXJldHVybn1pZih0b2tlblF1YW50aXR5LmluPWFwaS5CaWdOdW1iZXIodG9rZW5RdWFudGl0eS5pbikuZHAodG9rZW5Jbi5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9DRUlMKSx0b2tlblF1YW50aXR5Lm91dD1hcGkuQmlnTnVtYmVyKHRva2VuUXVhbnRpdHkub3V0KS5kcCh0b2tlbk91dC5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSwhYXBpLmFzc2VydCh0b2tlblF1YW50aXR5LmluLmd0KDApLCJzeW1ib2xJbiBwcmVjaXNpb24gbWlzbWF0Y2giKXx8IWFwaS5hc3NlcnQodG9rZW5RdWFudGl0eS5vdXQuZ3QoMCksInN5bWJvbE91dCBwcmVjaXNpb24gbWlzbWF0Y2giKSlyZXR1cm47aWYoIWFwaS5hc3NlcnQoc2VuZGVyQmFzZUZ1bmRlZCwiaW5zdWZmaWNpZW50IGlucHV0IGJhbGFuY2UiKXx8IXZhbGlkYXRlU3dhcChwb29sLHRva2VuUGFpckRlbHRhWzBdLHRva2VuUGFpckRlbHRhWzFdLGFwaS5CaWdOdW1iZXIobWF4U2xpcHBhZ2UpLmRpdmlkZWRCeSgxMDApKSlyZXR1cm47Y29uc3QgcmVzPWF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgidG9rZW5zIiwidHJhbnNmZXJUb0NvbnRyYWN0Iix7c3ltYm9sOnN5bWJvbEluLHF1YW50aXR5OnRva2VuUXVhbnRpdHkuaW4udG9GaXhlZCgpLHRvOiJtYXJrZXRwb29scyJ9KTt2b2lkIDA9PT1yZXMuZXJyb3JzJiZyZXMuZXZlbnRzJiZ2b2lkIDAhPT1yZXMuZXZlbnRzLmZpbmQoZWw9PiJ0b2tlbnMiPT09ZWwuY29udHJhY3QmJiJ0cmFuc2ZlclRvQ29udHJhY3QiPT09ZWwuZXZlbnQmJmVsLmRhdGEuZnJvbT09PWFwaS5zZW5kZXImJiJtYXJrZXRwb29scyI9PT1lbC5kYXRhLnRvJiZlbC5kYXRhLnF1YW50aXR5PT09dG9rZW5RdWFudGl0eS5pbi50b0ZpeGVkKCkpJiYoYXdhaXQgYXBpLnRyYW5zZmVyVG9rZW5zKGFwaS5zZW5kZXIsc3ltYm9sT3V0LHRva2VuUXVhbnRpdHkub3V0LnRvRml4ZWQoKSwidXNlciIpLGF3YWl0IHVwZGF0ZVBvb2xTdGF0cyhwb29sLHRva2VuUGFpckRlbHRhWzBdLHRva2VuUGFpckRlbHRhWzFdLCExLCEwKSxhcGkuZW1pdCgic3dhcFRva2VucyIse3N5bWJvbEluOnN5bWJvbEluLHN5bWJvbE91dDpzeW1ib2xPdXR9KSl9Ow=="}}}

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now
Ecency