{"id":"ssc-mainnet-hive","json":{"contractName":"contract","contractAction":"update","contractPayload":{"name":"nftmarket","params":"","code":"Y29uc3QgQ09OVFJBQ1RfTkFNRT0ibmZ0bWFya2V0IixNQVhfTlVNX1VOSVRTX09QRVJBQkxFPTUwO2FjdGlvbnMuY3JlYXRlU1NDPWFzeW5jKCk9PnshMT09PWF3YWl0IGFwaS5kYi50YWJsZUV4aXN0cygicGFyYW1zIikmJmF3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZSgicGFyYW1zIixbInN5bWJvbCJdKX07Y29uc3QgaXNUb2tlblRyYW5zZmVyVmVyaWZpZWQ9KHJlc3VsdCxmcm9tLHRvLHN5bWJvbCxxdWFudGl0eSxldmVudFN0cik9PiEodm9pZCAwIT09cmVzdWx0LmVycm9yc3x8IXJlc3VsdC5ldmVudHN8fHZvaWQgMD09PXJlc3VsdC5ldmVudHMuZmluZChlbD0+InRva2VucyI9PT1lbC5jb250cmFjdCYmZWwuZXZlbnQ9PT1ldmVudFN0ciYmZWwuZGF0YS5mcm9tPT09ZnJvbSYmZWwuZGF0YS50bz09PXRvJiZlbC5kYXRhLnF1YW50aXR5PT09cXVhbnRpdHkmJmVsLmRhdGEuc3ltYm9sPT09c3ltYm9sKSksY291bnREZWNpbWFscz12YWx1ZT0+YXBpLkJpZ051bWJlcih2YWx1ZSkuZHAoKSxpc1ZhbGlkSGl2ZUFjY291bnRMZW5ndGg9YWNjb3VudD0+YWNjb3VudC5sZW5ndGg+PTMmJmFjY291bnQubGVuZ3RoPD0xNixtYWtlTWFwS2V5PShhY2NvdW50LHR5cGUpPT5hY2NvdW50KyItIit0eXBlLG1ha2VHcm91cGluZ0tleT0oZ3JvdXBpbmcsZ3JvdXBCeSk9PntsZXQga2V5PSIiO3JldHVybiBncm91cEJ5LmZvckVhY2gobmFtZT0+e2tleT1rZXkrIjoiK25hbWUrIjoiK2dyb3VwaW5nW25hbWVdfSksa2V5fSxpc1ZhbGlkSWRBcnJheT1hcnI9Pnt0cnl7aWYoIWFwaS5hc3NlcnQoYXJyJiYib2JqZWN0Ij09dHlwZW9mIGFyciYmQXJyYXkuaXNBcnJheShhcnIpLCJpbnZhbGlkIGlkIGxpc3QiKSlyZXR1cm4hMTtpZighYXBpLmFzc2VydChhcnIubGVuZ3RoPD01MCwiY2Fubm90IGFjdCBvbiBtb3JlIHRoYW4gNTAgSURzIGF0IG9uY2UiKSlyZXR1cm4hMTtmb3IobGV0IGk9MDtpPGFyci5sZW5ndGg7aSs9MSl7Y29uc3QgaWQ9YXJyW2ldO2lmKCFhcGkuYXNzZXJ0KGlkJiYic3RyaW5nIj09dHlwZW9mIGlkJiYhYXBpLkJpZ051bWJlcihpZCkuaXNOYU4oKSYmYXBpLkJpZ051bWJlcihpZCkuZ3QoMCksImludmFsaWQgaWQgbGlzdCIpKXJldHVybiExfX1jYXRjaChlKXtyZXR1cm4hMX1yZXR1cm4hMH07YWN0aW9ucy5lbmFibGVNYXJrZXQ9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3N5bWJvbDpzeW1ib2wsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZihhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSBjdXN0b21fanNvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSYmYXBpLmFzc2VydChzeW1ib2wmJiJzdHJpbmciPT10eXBlb2Ygc3ltYm9sLCJpbnZhbGlkIHBhcmFtcyIpKXtjb25zdCBuZnQ9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJuZnQiLCJuZnRzIix7c3ltYm9sOnN5bWJvbH0pO2lmKGFwaS5hc3NlcnQobnVsbCE9PW5mdCwic3ltYm9sIGRvZXMgbm90IGV4aXN0IikmJmFwaS5hc3NlcnQobmZ0Lmlzc3Vlcj09PWFwaS5zZW5kZXIsIm11c3QgYmUgdGhlIGlzc3VlciIpKXtjb25zdCBtYXJrZXRUYWJsZU5hbWU9c3ltYm9sKyJzZWxsQm9vayIsbWV0cmljc1RhYmxlTmFtZT1zeW1ib2wrIm9wZW5JbnRlcmVzdCIsaGlzdG9yeVRhYmxlTmFtZT1zeW1ib2wrInRyYWRlc0hpc3RvcnkiLHRhYmxlRXhpc3RzPWF3YWl0IGFwaS5kYi50YWJsZUV4aXN0cyhtYXJrZXRUYWJsZU5hbWUpO2FwaS5hc3NlcnQoITE9PT10YWJsZUV4aXN0cywibWFya2V0IGFscmVhZHkgZW5hYmxlZCIpJiYoYXdhaXQgYXBpLmRiLmNyZWF0ZVRhYmxlKG1hcmtldFRhYmxlTmFtZSxbIm93bmVkQnkiLCJhY2NvdW50IiwibmZ0SWQiLCJncm91cGluZyIsInByaWNlU3ltYm9sIl0pLGF3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZShtZXRyaWNzVGFibGVOYW1lLFsic2lkZSIsInByaWNlU3ltYm9sIiwiZ3JvdXBpbmciXSksYXdhaXQgYXBpLmRiLmNyZWF0ZVRhYmxlKGhpc3RvcnlUYWJsZU5hbWUsWyJwcmljZVN5bWJvbCIsInRpbWVzdGFtcCJdKSxhcGkuZW1pdCgiZW5hYmxlTWFya2V0Iix7c3ltYm9sOnN5bWJvbH0pKX19fTtjb25zdCB1cGRhdGVPcGVuSW50ZXJlc3Q9YXN5bmMoc2lkZSxzeW1ib2wscHJpY2VTeW1ib2wsZ3JvdXBzLGdyb3VwQnkpPT57Y29uc3QgbWV0cmljc1RhYmxlTmFtZT1zeW1ib2wrIm9wZW5JbnRlcmVzdCIsZ3JvdXBLZXlzPVtdO2Zvcihjb25zdCBpbmZvIG9mIE9iamVjdC52YWx1ZXMoZ3JvdXBzKSlncm91cEtleXMucHVzaChpbmZvLmdyb3VwaW5nKTtpZihncm91cEtleXMubGVuZ3RoPD0wKXJldHVybjtjb25zdCBvcGVuSW50ZXJlc3Q9YXdhaXQgYXBpLmRiLmZpbmQobWV0cmljc1RhYmxlTmFtZSx7c2lkZTpzaWRlLHByaWNlU3ltYm9sOnByaWNlU3ltYm9sLGdyb3VwaW5nOnskaW46Z3JvdXBLZXlzfX0sNTAsMCxbe2luZGV4OiJzaWRlIixkZXNjZW5kaW5nOiExfSx7aW5kZXg6InByaWNlU3ltYm9sIixkZXNjZW5kaW5nOiExfSx7aW5kZXg6Imdyb3VwaW5nIixkZXNjZW5kaW5nOiExfV0pO2ZvcihsZXQgaT0wO2k8b3BlbkludGVyZXN0Lmxlbmd0aDtpKz0xKXtjb25zdCBtZXRyaWM9b3BlbkludGVyZXN0W2ldLGtleT1tYWtlR3JvdXBpbmdLZXkobWV0cmljLmdyb3VwaW5nLGdyb3VwQnkpO2tleSBpbiBncm91cHMmJihncm91cHNba2V5XS5pc0luQ29sbGVjdGlvbj0hMCxtZXRyaWMuY291bnQrPWdyb3Vwc1trZXldLmNvdW50LG1ldHJpYy5jb3VudDwwJiYobWV0cmljLmNvdW50PTApLGF3YWl0IGFwaS5kYi51cGRhdGUobWV0cmljc1RhYmxlTmFtZSxtZXRyaWMpKX1mb3IoY29uc3QgaW5mbyBvZiBPYmplY3QudmFsdWVzKGdyb3VwcykpaWYoIWluZm8uaXNJbkNvbGxlY3Rpb24pe2NvbnN0IGZpbmFsQ291bnQ9aW5mby5jb3VudD4wP2luZm8uY291bnQ6MCxuZXdNZXRyaWM9e3NpZGU6c2lkZSxwcmljZVN5bWJvbDpwcmljZVN5bWJvbCxncm91cGluZzppbmZvLmdyb3VwaW5nLGNvdW50OmZpbmFsQ291bnR9O2F3YWl0IGFwaS5kYi5pbnNlcnQobWV0cmljc1RhYmxlTmFtZSxuZXdNZXRyaWMpfX0sdXBkYXRlVHJhZGVzSGlzdG9yeT1hc3luYyh0eXBlLGFjY291bnQsb3duZWRCeSxjb3VudGVycGFydGllcyxzeW1ib2wscHJpY2VTeW1ib2wscHJpY2UsaXNNYXJrZXRGZWVQYWlkLG1hcmtldEFjY291bnQsZmVlLGlzQWdlbnRGZWVQYWlkLGFnZW50QWNjb3VudCxhZ2VudEZlZSx2b2x1bWUpPT57Y29uc3QgYmxvY2tEYXRlPW5ldyBEYXRlKGFwaS5oaXZlQmxvY2tUaW1lc3RhbXArIi4wMDBaIiksdGltZXN0YW1wU2VjPWJsb2NrRGF0ZS5nZXRUaW1lKCkvMWUzLHRpbWVzdGFtcE1pbnVzMjRocnM9YmxvY2tEYXRlLnNldFVUQ0RhdGUoYmxvY2tEYXRlLmdldFVUQ0RhdGUoKS0xKS8xZTMsaGlzdG9yeVRhYmxlTmFtZT1zeW1ib2wrInRyYWRlc0hpc3RvcnkiO2xldCB0cmFkZXNUb0RlbGV0ZT1hd2FpdCBhcGkuZGIuZmluZChoaXN0b3J5VGFibGVOYW1lLHtwcmljZVN5bWJvbDpwcmljZVN5bWJvbCx0aW1lc3RhbXA6eyRsdDp0aW1lc3RhbXBNaW51czI0aHJzfX0sMWUzLDAsW3tpbmRleDoiX2lkIixkZXNjZW5kaW5nOiExfV0pLG5iVHJhZGVzVG9EZWxldGU9dHJhZGVzVG9EZWxldGUubGVuZ3RoO2Zvcig7bmJUcmFkZXNUb0RlbGV0ZT4wOyl7Zm9yKGxldCBpbmRleD0wO2luZGV4PG5iVHJhZGVzVG9EZWxldGU7aW5kZXgrPTEpe2NvbnN0IHRyYWRlPXRyYWRlc1RvRGVsZXRlW2luZGV4XTthd2FpdCBhcGkuZGIucmVtb3ZlKGhpc3RvcnlUYWJsZU5hbWUsdHJhZGUpfXRyYWRlc1RvRGVsZXRlPWF3YWl0IGFwaS5kYi5maW5kKGhpc3RvcnlUYWJsZU5hbWUse3ByaWNlU3ltYm9sOnByaWNlU3ltYm9sLHRpbWVzdGFtcDp7JGx0OnRpbWVzdGFtcE1pbnVzMjRocnN9fSwxZTMsMCxbe2luZGV4OiJfaWQiLGRlc2NlbmRpbmc6ITF9XSksbmJUcmFkZXNUb0RlbGV0ZT10cmFkZXNUb0RlbGV0ZS5sZW5ndGh9Y29uc3QgbmV3VHJhZGU9e307bmV3VHJhZGUudHlwZT10eXBlLG5ld1RyYWRlLmFjY291bnQ9YWNjb3VudCxuZXdUcmFkZS5vd25lZEJ5PW93bmVkQnksbmV3VHJhZGUuY291bnRlcnBhcnRpZXM9Y291bnRlcnBhcnRpZXMsbmV3VHJhZGUucHJpY2VTeW1ib2w9cHJpY2VTeW1ib2wsbmV3VHJhZGUucHJpY2U9cHJpY2UsaXNNYXJrZXRGZWVQYWlkJiYobmV3VHJhZGUubWFya2V0QWNjb3VudD1tYXJrZXRBY2NvdW50LG5ld1RyYWRlLmZlZT1mZWUpLGlzQWdlbnRGZWVQYWlkJiYobmV3VHJhZGUuYWdlbnRBY2NvdW50PWFnZW50QWNjb3VudCxuZXdUcmFkZS5hZ2VudEZlZT1hZ2VudEZlZSksbmV3VHJhZGUudGltZXN0YW1wPXRpbWVzdGFtcFNlYyxuZXdUcmFkZS52b2x1bWU9dm9sdW1lLGF3YWl0IGFwaS5kYi5pbnNlcnQoaGlzdG9yeVRhYmxlTmFtZSxuZXdUcmFkZSl9O2FjdGlvbnMuc2V0TWFya2V0UGFyYW1zPWFzeW5jIHBheWxvYWQ9Pntjb25zdHtzeW1ib2w6c3ltYm9sLG9mZmljaWFsTWFya2V0Om9mZmljaWFsTWFya2V0LGFnZW50Q3V0OmFnZW50Q3V0LG1pbkZlZTptaW5GZWUsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZighYXBpLmFzc2VydChzeW1ib2wmJiJzdHJpbmciPT10eXBlb2Ygc3ltYm9sLCJpbnZhbGlkIHBhcmFtcyIpKXJldHVybiExO2lmKHZvaWQgMD09PW9mZmljaWFsTWFya2V0JiZ2b2lkIDA9PT1hZ2VudEN1dCYmdm9pZCAwPT09bWluRmVlKXJldHVybiExO2NvbnN0IG1hcmtldFRhYmxlTmFtZT1zeW1ib2wrInNlbGxCb29rIix0YWJsZUV4aXN0cz1hd2FpdCBhcGkuZGIudGFibGVFeGlzdHMobWFya2V0VGFibGVOYW1lKTtpZihhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSBjdXN0b21fanNvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSYmYXBpLmFzc2VydCh0YWJsZUV4aXN0cywibWFya2V0IG5vdCBlbmFibGVkIGZvciBzeW1ib2wiKSYmYXBpLmFzc2VydCgodm9pZCAwPT09b2ZmaWNpYWxNYXJrZXR8fG9mZmljaWFsTWFya2V0JiYic3RyaW5nIj09dHlwZW9mIG9mZmljaWFsTWFya2V0JiZpc1ZhbGlkSGl2ZUFjY291bnRMZW5ndGgob2ZmaWNpYWxNYXJrZXQudHJpbSgpLnRvTG93ZXJDYXNlKCkpKSYmKHZvaWQgMD09PWFnZW50Q3V0fHwibnVtYmVyIj09dHlwZW9mIGFnZW50Q3V0JiZhZ2VudEN1dD49MCYmYWdlbnRDdXQ8PTFlNCYmTnVtYmVyLmlzSW50ZWdlcihhZ2VudEN1dCkpJiYodm9pZCAwPT09bWluRmVlfHwibnVtYmVyIj09dHlwZW9mIG1pbkZlZSYmbWluRmVlPj0wJiZtaW5GZWU8PTFlNCYmTnVtYmVyLmlzSW50ZWdlcihtaW5GZWUpKSwiaW52YWxpZCBwYXJhbXMiKSl7Y29uc3QgbmZ0PWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgibmZ0IiwibmZ0cyIse3N5bWJvbDpzeW1ib2x9KTtpZihuZnQmJmFwaS5hc3NlcnQobmZ0Lmlzc3Vlcj09PWFwaS5zZW5kZXIsIm11c3QgYmUgdGhlIGlzc3VlciIpKXtsZXQgc2hvdWxkVXBkYXRlPSExLGlzRmlyc3RUaW1lU2V0PSExO2NvbnN0IHVwZGF0ZT17c3ltYm9sOnN5bWJvbH07bGV0IHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7c3ltYm9sOnN5bWJvbH0pO3BhcmFtc3x8KGlzRmlyc3RUaW1lU2V0PSEwLHBhcmFtcz17c3ltYm9sOnN5bWJvbH0pO2NvbnN0IGZpbmFsT2ZmaWNpYWxNYXJrZXQ9dm9pZCAwIT09b2ZmaWNpYWxNYXJrZXQ/b2ZmaWNpYWxNYXJrZXQudHJpbSgpLnRvTG93ZXJDYXNlKCk6bnVsbDtpZih2b2lkIDA9PT1vZmZpY2lhbE1hcmtldHx8dm9pZCAwIT09cGFyYW1zLm9mZmljaWFsTWFya2V0JiZmaW5hbE9mZmljaWFsTWFya2V0PT09cGFyYW1zLm9mZmljaWFsTWFya2V0fHwodm9pZCAwIT09cGFyYW1zLm9mZmljaWFsTWFya2V0JiYodXBkYXRlLm9sZE9mZmljaWFsTWFya2V0PXBhcmFtcy5vZmZpY2lhbE1hcmtldCkscGFyYW1zLm9mZmljaWFsTWFya2V0PWZpbmFsT2ZmaWNpYWxNYXJrZXQsdXBkYXRlLm9mZmljaWFsTWFya2V0PWZpbmFsT2ZmaWNpYWxNYXJrZXQsc2hvdWxkVXBkYXRlPSEwKSx2b2lkIDA9PT1hZ2VudEN1dHx8dm9pZCAwIT09cGFyYW1zLmFnZW50Q3V0JiZhZ2VudEN1dD09PXBhcmFtcy5hZ2VudEN1dHx8KHZvaWQgMCE9PXBhcmFtcy5hZ2VudEN1dCYmKHVwZGF0ZS5vbGRBZ2VudEN1dD1wYXJhbXMuYWdlbnRDdXQpLHBhcmFtcy5hZ2VudEN1dD1hZ2VudEN1dCx1cGRhdGUuYWdlbnRDdXQ9YWdlbnRDdXQsc2hvdWxkVXBkYXRlPSEwKSx2b2lkIDA9PT1taW5GZWV8fHZvaWQgMCE9PXBhcmFtcy5taW5GZWUmJm1pbkZlZT09PXBhcmFtcy5taW5GZWV8fCh2b2lkIDAhPT1wYXJhbXMubWluRmVlJiYodXBkYXRlLm9sZE1pbkZlZT1wYXJhbXMubWluRmVlKSxwYXJhbXMubWluRmVlPW1pbkZlZSx1cGRhdGUubWluRmVlPW1pbkZlZSxzaG91bGRVcGRhdGU9ITApLHNob3VsZFVwZGF0ZSlyZXR1cm4gaXNGaXJzdFRpbWVTZXQ/YXdhaXQgYXBpLmRiLmluc2VydCgicGFyYW1zIixwYXJhbXMpOmF3YWl0IGFwaS5kYi51cGRhdGUoInBhcmFtcyIscGFyYW1zKSxhcGkuZW1pdCgic2V0TWFya2V0UGFyYW1zIix1cGRhdGUpLCEwfX1yZXR1cm4hMX0sYWN0aW9ucy5jaGFuZ2VQcmljZT1hc3luYyBwYXlsb2FkPT57Y29uc3R7c3ltYm9sOnN5bWJvbCxuZnRzOm5mdHMscHJpY2U6cHJpY2UsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZighYXBpLmFzc2VydChzeW1ib2wmJiJzdHJpbmciPT10eXBlb2Ygc3ltYm9sLCJpbnZhbGlkIHBhcmFtcyIpKXJldHVybjtjb25zdCBtYXJrZXRUYWJsZU5hbWU9c3ltYm9sKyJzZWxsQm9vayIsdGFibGVFeGlzdHM9YXdhaXQgYXBpLmRiLnRhYmxlRXhpc3RzKG1hcmtldFRhYmxlTmFtZSk7aWYoYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgY3VzdG9tX2pzb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5IikmJmlzVmFsaWRJZEFycmF5KG5mdHMpJiZhcGkuYXNzZXJ0KHByaWNlJiYic3RyaW5nIj09dHlwZW9mIHByaWNlJiYhYXBpLkJpZ051bWJlcihwcmljZSkuaXNOYU4oKSwiaW52YWxpZCBwYXJhbXMiKSYmYXBpLmFzc2VydCh0YWJsZUV4aXN0cywibWFya2V0IG5vdCBlbmFibGVkIGZvciBzeW1ib2wiKSl7Y29uc3Qgb3JkZXJzPWF3YWl0IGFwaS5kYi5maW5kKG1hcmtldFRhYmxlTmFtZSx7bmZ0SWQ6eyRpbjpuZnRzfX0sNTAsMCxbe2luZGV4OiJuZnRJZCIsZGVzY2VuZGluZzohMX1dKTtpZihvcmRlcnMubGVuZ3RoPjApe2xldCBwcmljZVN5bWJvbD0iIjtmb3IobGV0IGk9MDtpPG9yZGVycy5sZW5ndGg7aSs9MSl7Y29uc3Qgb3JkZXI9b3JkZXJzW2ldO2lmKCIiPT09cHJpY2VTeW1ib2wmJih7cHJpY2VTeW1ib2w6cHJpY2VTeW1ib2x9PW9yZGVyKSwhYXBpLmFzc2VydChvcmRlci5hY2NvdW50PT09YXBpLnNlbmRlciYmInUiPT09b3JkZXIub3duZWRCeSwiYWxsIG9yZGVycyBtdXN0IGJlIHlvdXIgb3duIil8fCFhcGkuYXNzZXJ0KHByaWNlU3ltYm9sPT09b3JkZXIucHJpY2VTeW1ib2wsImFsbCBvcmRlcnMgbXVzdCBoYXZlIHRoZSBzYW1lIHByaWNlIHN5bWJvbCIpKXJldHVybn1jb25zdCB0b2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpwcmljZVN5bWJvbH0pO2lmKGFwaS5hc3NlcnQodG9rZW4mJmFwaS5CaWdOdW1iZXIocHJpY2UpLmd0KDApJiZjb3VudERlY2ltYWxzKHByaWNlKTw9dG9rZW4ucHJlY2lzaW9uLCJpbnZhbGlkIHByaWNlIikpe2NvbnN0IGZpbmFsUHJpY2U9YXBpLkJpZ051bWJlcihwcmljZSkudG9GaXhlZCh0b2tlbi5wcmVjaXNpb24pO2ZvcihsZXQgaT0wO2k8b3JkZXJzLmxlbmd0aDtpKz0xKXtjb25zdCBvcmRlcj1vcmRlcnNbaV0sb2xkUHJpY2U9b3JkZXIucHJpY2U7b3JkZXIucHJpY2U9ZmluYWxQcmljZSxvcmRlci5wcmljZURlYz17JG51bWJlckRlY2ltYWw6ZmluYWxQcmljZX0sYXdhaXQgYXBpLmRiLnVwZGF0ZShtYXJrZXRUYWJsZU5hbWUsb3JkZXIpLGFwaS5lbWl0KCJjaGFuZ2VQcmljZSIse3N5bWJvbDpzeW1ib2wsbmZ0SWQ6b3JkZXIubmZ0SWQsb2xkUHJpY2U6b2xkUHJpY2UsbmV3UHJpY2U6b3JkZXIucHJpY2UscHJpY2VTeW1ib2w6b3JkZXIucHJpY2VTeW1ib2wsb3JkZXJJZDpvcmRlci5faWR9KX19fX19LGFjdGlvbnMuY2FuY2VsPWFzeW5jIHBheWxvYWQ9Pntjb25zdHtzeW1ib2w6c3ltYm9sLG5mdHM6bmZ0cyxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkO2lmKCFhcGkuYXNzZXJ0KHN5bWJvbCYmInN0cmluZyI9PXR5cGVvZiBzeW1ib2wsImludmFsaWQgcGFyYW1zIikpcmV0dXJuO2NvbnN0IG1hcmtldFRhYmxlTmFtZT1zeW1ib2wrInNlbGxCb29rIix0YWJsZUV4aXN0cz1hd2FpdCBhcGkuZGIudGFibGVFeGlzdHMobWFya2V0VGFibGVOYW1lKTtpZihhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSBjdXN0b21fanNvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSYmaXNWYWxpZElkQXJyYXkobmZ0cykmJmFwaS5hc3NlcnQodGFibGVFeGlzdHMsIm1hcmtldCBub3QgZW5hYmxlZCBmb3Igc3ltYm9sIikpe2NvbnN0IG5mdD1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoIm5mdCIsIm5mdHMiLHtzeW1ib2w6c3ltYm9sfSk7aWYoIWFwaS5hc3NlcnQobmZ0JiZuZnQuZ3JvdXBCeSYmbmZ0Lmdyb3VwQnkubGVuZ3RoPjAsIm1hcmtldCBncm91cGluZyBub3Qgc2V0IikpcmV0dXJuO2NvbnN0IG9yZGVycz1hd2FpdCBhcGkuZGIuZmluZChtYXJrZXRUYWJsZU5hbWUse25mdElkOnskaW46bmZ0c319LDUwLDAsW3tpbmRleDoibmZ0SWQiLGRlc2NlbmRpbmc6ITF9XSk7aWYob3JkZXJzLmxlbmd0aD4wKXtjb25zdCBpZHM9W10saWRNYXA9e307bGV0IHByaWNlU3ltYm9sPSIiO2ZvcihsZXQgaT0wO2k8b3JkZXJzLmxlbmd0aDtpKz0xKXtjb25zdCBvcmRlcj1vcmRlcnNbaV07aWYoIiI9PT1wcmljZVN5bWJvbCYmKHtwcmljZVN5bWJvbDpwcmljZVN5bWJvbH09b3JkZXIpLCFhcGkuYXNzZXJ0KG9yZGVyLmFjY291bnQ9PT1hcGkuc2VuZGVyJiYidSI9PT1vcmRlci5vd25lZEJ5LCJhbGwgb3JkZXJzIG11c3QgYmUgeW91ciBvd24iKXx8IWFwaS5hc3NlcnQocHJpY2VTeW1ib2w9PT1vcmRlci5wcmljZVN5bWJvbCwiYWxsIG9yZGVycyBtdXN0IGhhdmUgdGhlIHNhbWUgcHJpY2Ugc3ltYm9sIikpcmV0dXJuO2lkcy5wdXNoKG9yZGVyLm5mdElkKSxpZE1hcFtvcmRlci5uZnRJZF09b3JkZXJ9Y29uc3QgbmZ0QXJyYXk9W10sd3JhcHBlZE5mdHM9e3N5bWJvbDpzeW1ib2wsaWRzOmlkc307bmZ0QXJyYXkucHVzaCh3cmFwcGVkTmZ0cyk7Y29uc3QgcmVzPWF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgibmZ0IiwidHJhbnNmZXIiLHtmcm9tVHlwZToiY29udHJhY3QiLHRvOmFwaS5zZW5kZXIsdG9UeXBlOiJ1c2VyIixuZnRzOm5mdEFycmF5LGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9KTtpZihyZXMuZXZlbnRzKXtjb25zdCBncm91cGluZ01hcD17fTtmb3IobGV0IGo9MDtqPHJlcy5ldmVudHMubGVuZ3RoO2orPTEpe2NvbnN0IGV2PXJlcy5ldmVudHNbal07aWYoZXYuY29udHJhY3QmJmV2LmV2ZW50JiZldi5kYXRhJiYibmZ0Ij09PWV2LmNvbnRyYWN0JiYidHJhbnNmZXIiPT09ZXYuZXZlbnQmJiJuZnRtYXJrZXQiPT09ZXYuZGF0YS5mcm9tJiYiYyI9PT1ldi5kYXRhLmZyb21UeXBlJiZldi5kYXRhLnRvPT09YXBpLnNlbmRlciYmInUiPT09ZXYuZGF0YS50b1R5cGUmJmV2LmRhdGEuc3ltYm9sPT09c3ltYm9sKXtjb25zdCBpbnN0YW5jZUlkPWV2LmRhdGEuaWQ7aWYoaW5zdGFuY2VJZCBpbiBpZE1hcCl7Y29uc3Qgb3JkZXI9aWRNYXBbaW5zdGFuY2VJZF07YXdhaXQgYXBpLmRiLnJlbW92ZShtYXJrZXRUYWJsZU5hbWUsb3JkZXIpLGFwaS5lbWl0KCJjYW5jZWxPcmRlciIse2FjY291bnQ6b3JkZXIuYWNjb3VudCxvd25lZEJ5Om9yZGVyLm93bmVkQnksc3ltYm9sOnN5bWJvbCxuZnRJZDpvcmRlci5uZnRJZCx0aW1lc3RhbXA6b3JkZXIudGltZXN0YW1wLHByaWNlOm9yZGVyLnByaWNlLHByaWNlU3ltYm9sOm9yZGVyLnByaWNlU3ltYm9sLGZlZTpvcmRlci5mZWUsb3JkZXJJZDpvcmRlci5faWR9KTtjb25zdCBrZXk9bWFrZUdyb3VwaW5nS2V5KG9yZGVyLmdyb3VwaW5nLG5mdC5ncm91cEJ5KSxncm91cEluZm89a2V5IGluIGdyb3VwaW5nTWFwP2dyb3VwaW5nTWFwW2tleV06e2dyb3VwaW5nOm9yZGVyLmdyb3VwaW5nLGlzSW5Db2xsZWN0aW9uOiExLGNvdW50OjB9O2dyb3VwSW5mby5jb3VudC09MSxncm91cGluZ01hcFtrZXldPWdyb3VwSW5mb319fWF3YWl0IHVwZGF0ZU9wZW5JbnRlcmVzdCgic2VsbCIsc3ltYm9sLHByaWNlU3ltYm9sLGdyb3VwaW5nTWFwLG5mdC5ncm91cEJ5KX19fX0sYWN0aW9ucy5idXk9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3N5bWJvbDpzeW1ib2wsbmZ0czpuZnRzLG1hcmtldEFjY291bnQ6bWFya2V0QWNjb3VudCxleHBQcmljZTpleHBQcmljZSxleHBQcmljZVN5bWJvbDpleHBQcmljZVN5bWJvbCxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkO2lmKCFhcGkuYXNzZXJ0KHN5bWJvbCYmInN0cmluZyI9PXR5cGVvZiBzeW1ib2wmJm1hcmtldEFjY291bnQmJiJzdHJpbmciPT10eXBlb2YgbWFya2V0QWNjb3VudCYmKHZvaWQgMD09PWV4cFByaWNlfHxleHBQcmljZSYmInN0cmluZyI9PXR5cGVvZiBleHBQcmljZSYmIWFwaS5CaWdOdW1iZXIoZXhwUHJpY2UpLmlzTmFOKCkpJiYodm9pZCAwPT09ZXhwUHJpY2VTeW1ib2x8fGV4cFByaWNlU3ltYm9sJiYic3RyaW5nIj09dHlwZW9mIGV4cFByaWNlU3ltYm9sKSwiaW52YWxpZCBwYXJhbXMiKSlyZXR1cm47Y29uc3QgbWFya2V0VGFibGVOYW1lPXN5bWJvbCsic2VsbEJvb2siLHRhYmxlRXhpc3RzPWF3YWl0IGFwaS5kYi50YWJsZUV4aXN0cyhtYXJrZXRUYWJsZU5hbWUpO2lmKGFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIGN1c3RvbV9qc29uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiZpc1ZhbGlkSWRBcnJheShuZnRzKSYmYXBpLmFzc2VydCh0YWJsZUV4aXN0cywibWFya2V0IG5vdCBlbmFibGVkIGZvciBzeW1ib2wiKSl7Y29uc3QgZmluYWxNYXJrZXRBY2NvdW50PW1hcmtldEFjY291bnQudHJpbSgpLnRvTG93ZXJDYXNlKCk7aWYoYXBpLmFzc2VydChpc1ZhbGlkSGl2ZUFjY291bnRMZW5ndGgoZmluYWxNYXJrZXRBY2NvdW50KSwiaW52YWxpZCBtYXJrZXQgYWNjb3VudCIpJiZhcGkuYXNzZXJ0KGZpbmFsTWFya2V0QWNjb3VudCE9PWFwaS5zZW5kZXIsIm1hcmtldCBhY2NvdW50IGNhbm5vdCBiZSBzYW1lIGFzIGJ1eWVyIikpe2NvbnN0IG5mdD1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoIm5mdCIsIm5mdHMiLHtzeW1ib2w6c3ltYm9sfSk7aWYoIWFwaS5hc3NlcnQobmZ0JiZuZnQuZ3JvdXBCeSYmbmZ0Lmdyb3VwQnkubGVuZ3RoPjAsIm1hcmtldCBncm91cGluZyBub3Qgc2V0IikpcmV0dXJuO2NvbnN0IG9yZGVycz1hd2FpdCBhcGkuZGIuZmluZChtYXJrZXRUYWJsZU5hbWUse25mdElkOnskaW46bmZ0c319LDUwLDAsW3tpbmRleDoibmZ0SWQiLGRlc2NlbmRpbmc6ITF9XSk7aWYob3JkZXJzLmxlbmd0aD4wKXtsZXQgcHJpY2VTeW1ib2w9IiI7Zm9yKGxldCBpPTA7aTxvcmRlcnMubGVuZ3RoO2krPTEpe2NvbnN0IG9yZGVyPW9yZGVyc1tpXTtpZigiIj09PXByaWNlU3ltYm9sJiYoe3ByaWNlU3ltYm9sOnByaWNlU3ltYm9sfT1vcmRlciksIWFwaS5hc3NlcnQoISgidSI9PT1vcmRlci5vd25lZEJ5JiZvcmRlci5hY2NvdW50PT09YXBpLnNlbmRlciksImNhbm5vdCBmaWxsIHlvdXIgb3duIG9yZGVycyIpfHwhYXBpLmFzc2VydChwcmljZVN5bWJvbD09PW9yZGVyLnByaWNlU3ltYm9sLCJhbGwgb3JkZXJzIG11c3QgaGF2ZSB0aGUgc2FtZSBwcmljZSBzeW1ib2wiKSlyZXR1cm59aWYoIWFwaS5hc3NlcnQodm9pZCAwPT09ZXhwUHJpY2VTeW1ib2x8fGV4cFByaWNlU3ltYm9sPT09cHJpY2VTeW1ib2wsInVuZXhwZWN0ZWQgcHJpY2Ugc3ltYm9sICIrcHJpY2VTeW1ib2wpKXJldHVybjtjb25zdCB0b2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpwcmljZVN5bWJvbH0pO2lmKCF0b2tlbilyZXR1cm47bGV0IGZlZVRvdGFsPWFwaS5CaWdOdW1iZXIoMCksYWdlbnRGZWVUb3RhbD1hcGkuQmlnTnVtYmVyKDApLHBheW1lbnRUb3RhbD1hcGkuQmlnTnVtYmVyKDApLHNvbGROZnRzPVtdO2NvbnN0IHNlbGxlcnM9W10sc2VsbGVyTWFwPXt9O2ZvcihsZXQgaT0wO2k8b3JkZXJzLmxlbmd0aDtpKz0xKXtjb25zdCBvcmRlcj1vcmRlcnNbaV0sZmluYWxQcmljZT1hcGkuQmlnTnVtYmVyKG9yZGVyLnByaWNlKSxmZWVQZXJjZW50PW9yZGVyLmZlZS8xZTQ7bGV0IGZpbmFsRmVlPWZpbmFsUHJpY2UubXVsdGlwbGllZEJ5KGZlZVBlcmNlbnQpLmRlY2ltYWxQbGFjZXModG9rZW4ucHJlY2lzaW9uKTtmaW5hbEZlZS5ndChmaW5hbFByaWNlKSYmKGZpbmFsRmVlPWZpbmFsUHJpY2UpO2xldCBmaW5hbFBheW1lbnQ9ZmluYWxQcmljZS5taW51cyhmaW5hbEZlZSkuZGVjaW1hbFBsYWNlcyh0b2tlbi5wcmVjaXNpb24pO2ZpbmFsUGF5bWVudC5sdCgwKSYmKGZpbmFsUGF5bWVudD1hcGkuQmlnTnVtYmVyKDApKSxwYXltZW50VG90YWw9cGF5bWVudFRvdGFsLnBsdXMoZmluYWxQYXltZW50KSxmZWVUb3RhbD1mZWVUb3RhbC5wbHVzKGZpbmFsRmVlKTtjb25zdCBrZXk9KGFjY291bnQ9b3JkZXIuYWNjb3VudCx0eXBlPW9yZGVyLm93bmVkQnksYWNjb3VudCsiLSIrdHlwZSksc2VsbGVySW5mbz1rZXkgaW4gc2VsbGVyTWFwP3NlbGxlck1hcFtrZXldOnthY2NvdW50Om9yZGVyLmFjY291bnQsb3duZWRCeTpvcmRlci5vd25lZEJ5LG5mdElkczpbXSxuZnRTYWxlczpbXSxwYXltZW50VG90YWw6YXBpLkJpZ051bWJlcigwKX07c2VsbGVySW5mby5wYXltZW50VG90YWw9c2VsbGVySW5mby5wYXltZW50VG90YWwucGx1cyhmaW5hbFBheW1lbnQpLHNlbGxlckluZm8ubmZ0SWRzLnB1c2gob3JkZXIubmZ0SWQpLHNlbGxlck1hcFtrZXldPXNlbGxlckluZm8sc2VsbGVySW5mby5uZnRTYWxlcy5wdXNoKHtpZDpvcmRlci5uZnRJZCxwcmljZTpmaW5hbFByaWNlLGZlZTpmaW5hbEZlZSxzeW1ib2w6cHJpY2VTeW1ib2x9KX1jb25zdCBwYXJhbXM9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBhcmFtcyIse3N5bWJvbDpzeW1ib2x9KSxvZmZpY2lhbE1hcmtldEFjY291bnQ9cGFyYW1zJiZwYXJhbXMub2ZmaWNpYWxNYXJrZXQ/cGFyYW1zLm9mZmljaWFsTWFya2V0OmZpbmFsTWFya2V0QWNjb3VudDtpZighYXBpLmFzc2VydChvZmZpY2lhbE1hcmtldEFjY291bnQhPT1hcGkuc2VuZGVyLCJvZmZpY2lhbCBtYXJrZXQgYWNjb3VudCBjYW5ub3QgYmUgc2FtZSBhcyBidXllciIpKXJldHVybjtpZihwYXJhbXMmJnBhcmFtcy5vZmZpY2lhbE1hcmtldCYmdm9pZCAwIT09cGFyYW1zLmFnZW50Q3V0JiZwYXJhbXMuYWdlbnRDdXQ+MCYmZmVlVG90YWwuZ3QoMCkpe2NvbnN0IGFnZW50RmVlUGVyY2VudD1wYXJhbXMuYWdlbnRDdXQvMWU0O2FnZW50RmVlVG90YWw9ZmVlVG90YWwubXVsdGlwbGllZEJ5KGFnZW50RmVlUGVyY2VudCkuZGVjaW1hbFBsYWNlcyh0b2tlbi5wcmVjaXNpb24pLGFnZW50RmVlVG90YWwuZ3QoZmVlVG90YWwpJiYoYWdlbnRGZWVUb3RhbD1hcGkuQmlnTnVtYmVyKGZlZVRvdGFsKSksZmVlVG90YWw9ZmVlVG90YWwubWludXMoYWdlbnRGZWVUb3RhbCkuZGVjaW1hbFBsYWNlcyh0b2tlbi5wcmVjaXNpb24pLGZlZVRvdGFsLmx0KDApJiYoZmVlVG90YWw9YXBpLkJpZ051bWJlcigwKSl9Y29uc3QgcmVxdWlyZWRCYWxhbmNlPXBheW1lbnRUb3RhbC5wbHVzKGZlZVRvdGFsKS5wbHVzKGFnZW50RmVlVG90YWwpLnRvRml4ZWQodG9rZW4ucHJlY2lzaW9uKTtpZighYXBpLmFzc2VydCh2b2lkIDA9PT1leHBQcmljZXx8YXBpLkJpZ051bWJlcihleHBQcmljZSkuZXEocmVxdWlyZWRCYWxhbmNlKSxgdG90YWwgcmVxdWlyZWQgcGF5bWVudCAke3JlcXVpcmVkQmFsYW5jZX0gJHtwcmljZVN5bWJvbH0gZG9lcyBub3QgbWF0Y2ggZXhwZWN0ZWQgYW1vdW50YCkpcmV0dXJuO2NvbnN0IGJ1eWVyQmFsYW5jZT1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsImJhbGFuY2VzIix7YWNjb3VudDphcGkuc2VuZGVyLHN5bWJvbDpwcmljZVN5bWJvbH0pO2lmKCFhcGkuYXNzZXJ0KGJ1eWVyQmFsYW5jZSYmYXBpLkJpZ051bWJlcihidXllckJhbGFuY2UuYmFsYW5jZSkuZ3RlKHJlcXVpcmVkQmFsYW5jZSksInlvdSBtdXN0IGhhdmUgZW5vdWdoIHRva2VucyBmb3IgcGF5bWVudCIpKXJldHVybjtwYXltZW50VG90YWw9cGF5bWVudFRvdGFsLnRvRml4ZWQodG9rZW4ucHJlY2lzaW9uKTtsZXQgaXNNYXJrZXRGZWVQYWlkPSExO2lmKGZlZVRvdGFsLmd0KDApKXtpc01hcmtldEZlZVBhaWQ9ITAsZmVlVG90YWw9ZmVlVG90YWwudG9GaXhlZCh0b2tlbi5wcmVjaXNpb24pO2NvbnN0IHJlcz1hd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoInRva2VucyIsInRyYW5zZmVyIix7dG86b2ZmaWNpYWxNYXJrZXRBY2NvdW50LHN5bWJvbDpwcmljZVN5bWJvbCxxdWFudGl0eTpmZWVUb3RhbCxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fSk7aWYoIWFwaS5hc3NlcnQoaXNUb2tlblRyYW5zZmVyVmVyaWZpZWQocmVzLGFwaS5zZW5kZXIsb2ZmaWNpYWxNYXJrZXRBY2NvdW50LHByaWNlU3ltYm9sLGZlZVRvdGFsLCJ0cmFuc2ZlciIpLCJ1bmFibGUgdG8gdHJhbnNmZXIgbWFya2V0IGZlZXMiKSlyZXR1cm59bGV0IGlzQWdlbnRGZWVQYWlkPSExO2lmKGFnZW50RmVlVG90YWwuZ3QoMCkpe2lzQWdlbnRGZWVQYWlkPSEwLGFnZW50RmVlVG90YWw9YWdlbnRGZWVUb3RhbC50b0ZpeGVkKHRva2VuLnByZWNpc2lvbik7Y29uc3QgcmVzPWF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgidG9rZW5zIiwidHJhbnNmZXIiLHt0bzpmaW5hbE1hcmtldEFjY291bnQsc3ltYm9sOnByaWNlU3ltYm9sLHF1YW50aXR5OmFnZW50RmVlVG90YWwsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX0pO2lmKCFhcGkuYXNzZXJ0KGlzVG9rZW5UcmFuc2ZlclZlcmlmaWVkKHJlcyxhcGkuc2VuZGVyLGZpbmFsTWFya2V0QWNjb3VudCxwcmljZVN5bWJvbCxhZ2VudEZlZVRvdGFsLCJ0cmFuc2ZlciIpLCJ1bmFibGUgdG8gdHJhbnNmZXIgYWdlbnQgZmVlcyIpKXJldHVybn1mb3IoY29uc3QgaW5mbyBvZiBPYmplY3QudmFsdWVzKHNlbGxlck1hcCkpaWYoaW5mby5wYXltZW50VG90YWwuZ3QoMCkpe2NvbnN0IGNvbnRyYWN0QWN0aW9uPSJ1Ij09PWluZm8ub3duZWRCeT8idHJhbnNmZXIiOiJ0cmFuc2ZlclRvQ29udHJhY3QiO2luZm8ucGF5bWVudFRvdGFsPWluZm8ucGF5bWVudFRvdGFsLnRvRml4ZWQodG9rZW4ucHJlY2lzaW9uKTtjb25zdCByZXM9YXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJ0b2tlbnMiLGNvbnRyYWN0QWN0aW9uLHt0bzppbmZvLmFjY291bnQsc3ltYm9sOnByaWNlU3ltYm9sLHF1YW50aXR5OmluZm8ucGF5bWVudFRvdGFsLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9KTthcGkuYXNzZXJ0KGlzVG9rZW5UcmFuc2ZlclZlcmlmaWVkKHJlcyxhcGkuc2VuZGVyLGluZm8uYWNjb3VudCxwcmljZVN5bWJvbCxpbmZvLnBheW1lbnRUb3RhbCxjb250cmFjdEFjdGlvbiksInVuYWJsZSB0byB0cmFuc2ZlciBwYXltZW50IHRvICIraW5mby5hY2NvdW50KSYmKHNvbGROZnRzPXNvbGROZnRzLmNvbmNhdChpbmZvLm5mdElkcyksc2VsbGVycy5wdXNoKGluZm8pKX1lbHNlIHNvbGROZnRzPXNvbGROZnRzLmNvbmNhdChpbmZvLm5mdElkcyksc2VsbGVycy5wdXNoKGluZm8pO2NvbnN0IG5mdEFycmF5PVtdLHdyYXBwZWROZnRzPXtzeW1ib2w6c3ltYm9sLGlkczpzb2xkTmZ0c307bmZ0QXJyYXkucHVzaCh3cmFwcGVkTmZ0cyksYXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJuZnQiLCJ0cmFuc2ZlciIse2Zyb21UeXBlOiJjb250cmFjdCIsdG86YXBpLnNlbmRlcix0b1R5cGU6InVzZXIiLG5mdHM6bmZ0QXJyYXksaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX0pO2NvbnN0IGdyb3VwaW5nTWFwPXt9LHNvbGRTZXQ9bmV3IFNldChzb2xkTmZ0cyk7Zm9yKGxldCBpPTA7aTxvcmRlcnMubGVuZ3RoO2krPTEpe2NvbnN0IG9yZGVyPW9yZGVyc1tpXTtpZihzb2xkU2V0LmhhcyhvcmRlci5uZnRJZCkpe2F3YWl0IGFwaS5kYi5yZW1vdmUobWFya2V0VGFibGVOYW1lLG9yZGVyKTtjb25zdCBrZXk9bWFrZUdyb3VwaW5nS2V5KG9yZGVyLmdyb3VwaW5nLG5mdC5ncm91cEJ5KSxncm91cEluZm89a2V5IGluIGdyb3VwaW5nTWFwP2dyb3VwaW5nTWFwW2tleV06e2dyb3VwaW5nOm9yZGVyLmdyb3VwaW5nLGlzSW5Db2xsZWN0aW9uOiExLGNvdW50OjB9O2dyb3VwSW5mby5jb3VudC09MSxncm91cGluZ01hcFtrZXldPWdyb3VwSW5mb319YXdhaXQgdXBkYXRlVHJhZGVzSGlzdG9yeSgiYnV5IixhcGkuc2VuZGVyLCJ1IixzZWxsZXJzLHN5bWJvbCxwcmljZVN5bWJvbCxyZXF1aXJlZEJhbGFuY2UsaXNNYXJrZXRGZWVQYWlkLG9mZmljaWFsTWFya2V0QWNjb3VudCxmZWVUb3RhbCxpc0FnZW50RmVlUGFpZCxmaW5hbE1hcmtldEFjY291bnQsYWdlbnRGZWVUb3RhbCxzb2xkTmZ0cy5sZW5ndGgpO2NvbnN0IGFja1BhY2tldD17c3ltYm9sOnN5bWJvbCxwcmljZVN5bWJvbDpwcmljZVN5bWJvbCxhY2NvdW50OmFwaS5zZW5kZXIsb3duZWRCeToidSIsc2VsbGVyczpzZWxsZXJzLHBheW1lbnRUb3RhbDpwYXltZW50VG90YWx9O2lzTWFya2V0RmVlUGFpZCYmKGFja1BhY2tldC5tYXJrZXRBY2NvdW50PW9mZmljaWFsTWFya2V0QWNjb3VudCxhY2tQYWNrZXQuZmVlVG90YWw9ZmVlVG90YWwpLGlzQWdlbnRGZWVQYWlkJiYoYWNrUGFja2V0LmFnZW50QWNjb3VudD1maW5hbE1hcmtldEFjY291bnQsYWNrUGFja2V0LmFnZW50RmVlVG90YWw9YWdlbnRGZWVUb3RhbCksYXBpLmVtaXQoImhpdFNlbGxPcmRlciIsYWNrUGFja2V0KSxhd2FpdCB1cGRhdGVPcGVuSW50ZXJlc3QoInNlbGwiLHN5bWJvbCxwcmljZVN5bWJvbCxncm91cGluZ01hcCxuZnQuZ3JvdXBCeSl9fX12YXIgYWNjb3VudCx0eXBlfSxhY3Rpb25zLnNlbGw9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3N5bWJvbDpzeW1ib2wsbmZ0czpuZnRzLHByaWNlOnByaWNlLHByaWNlU3ltYm9sOnByaWNlU3ltYm9sLGZlZTpmZWUsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZighYXBpLmFzc2VydChzeW1ib2wmJiJzdHJpbmciPT10eXBlb2Ygc3ltYm9sLCJpbnZhbGlkIHBhcmFtcyIpKXJldHVybjtjb25zdCBtYXJrZXRUYWJsZU5hbWU9c3ltYm9sKyJzZWxsQm9vayIsaW5zdGFuY2VUYWJsZU5hbWU9c3ltYm9sKyJpbnN0YW5jZXMiLHRhYmxlRXhpc3RzPWF3YWl0IGFwaS5kYi50YWJsZUV4aXN0cyhtYXJrZXRUYWJsZU5hbWUpO2lmKGFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIGN1c3RvbV9qc29uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiZhcGkuYXNzZXJ0KG5mdHMmJiJvYmplY3QiPT10eXBlb2YgbmZ0cyYmQXJyYXkuaXNBcnJheShuZnRzKSYmcHJpY2VTeW1ib2wmJiJzdHJpbmciPT10eXBlb2YgcHJpY2VTeW1ib2wmJnByaWNlJiYic3RyaW5nIj09dHlwZW9mIHByaWNlJiYhYXBpLkJpZ051bWJlcihwcmljZSkuaXNOYU4oKSYmIm51bWJlciI9PXR5cGVvZiBmZWUmJmZlZT49MCYmZmVlPD0xZTQmJk51bWJlci5pc0ludGVnZXIoZmVlKSwiaW52YWxpZCBwYXJhbXMiKSYmYXBpLmFzc2VydChuZnRzLmxlbmd0aDw9NTAsImNhbm5vdCBzZWxsIG1vcmUgdGhhbiA1MCBORlQgaW5zdGFuY2VzIGF0IG9uY2UiKSYmYXBpLmFzc2VydCh0YWJsZUV4aXN0cywibWFya2V0IG5vdCBlbmFibGVkIGZvciBzeW1ib2wiKSl7Y29uc3QgbmZ0PWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgibmZ0IiwibmZ0cyIse3N5bWJvbDpzeW1ib2x9KTtpZighYXBpLmFzc2VydChuZnQmJm5mdC5ncm91cEJ5JiZuZnQuZ3JvdXBCeS5sZW5ndGg+MCwibWFya2V0IGdyb3VwaW5nIG5vdCBzZXQiKSlyZXR1cm47Y29uc3QgcGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHtzeW1ib2w6c3ltYm9sfSk7aWYocGFyYW1zJiZ2b2lkIDAhPT1wYXJhbXMubWluRmVlJiYhYXBpLmFzc2VydChmZWU+PXBhcmFtcy5taW5GZWUsImZlZSBtdXN0IGJlID49ICIrcGFyYW1zLm1pbkZlZSkpcmV0dXJuO2NvbnN0IHRva2VuPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOnByaWNlU3ltYm9sfSk7aWYoYXBpLmFzc2VydCh0b2tlbiYmYXBpLkJpZ051bWJlcihwcmljZSkuZ3QoMCkmJmNvdW50RGVjaW1hbHMocHJpY2UpPD10b2tlbi5wcmVjaXNpb24sImludmFsaWQgcHJpY2UiKSl7Y29uc3QgbmZ0QXJyYXk9W10sd3JhcHBlZE5mdHM9e3N5bWJvbDpzeW1ib2wsaWRzOm5mdHN9O25mdEFycmF5LnB1c2god3JhcHBlZE5mdHMpO2NvbnN0IHJlcz1hd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoIm5mdCIsInRyYW5zZmVyIix7ZnJvbVR5cGU6InVzZXIiLHRvOiJuZnRtYXJrZXQiLHRvVHlwZToiY29udHJhY3QiLG5mdHM6bmZ0QXJyYXksaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX0pO2lmKHJlcy5ldmVudHMpe2NvbnN0IHRpbWVzdGFtcD1uZXcgRGF0ZShhcGkuaGl2ZUJsb2NrVGltZXN0YW1wKyIuMDAwWiIpLmdldFRpbWUoKSxmaW5hbFByaWNlPWFwaS5CaWdOdW1iZXIocHJpY2UpLnRvRml4ZWQodG9rZW4ucHJlY2lzaW9uKSxuZnRJbnRlZ2VySWRMaXN0PVtdLG9yZGVyRGF0YU1hcD17fTtmb3IobGV0IGk9MDtpPHJlcy5ldmVudHMubGVuZ3RoO2krPTEpe2NvbnN0IGV2PXJlcy5ldmVudHNbaV07aWYoZXYuY29udHJhY3QmJmV2LmV2ZW50JiZldi5kYXRhJiYibmZ0Ij09PWV2LmNvbnRyYWN0JiYidHJhbnNmZXIiPT09ZXYuZXZlbnQmJmV2LmRhdGEuZnJvbT09PWFwaS5zZW5kZXImJiJ1Ij09PWV2LmRhdGEuZnJvbVR5cGUmJiJuZnRtYXJrZXQiPT09ZXYuZGF0YS50byYmImMiPT09ZXYuZGF0YS50b1R5cGUmJmV2LmRhdGEuc3ltYm9sPT09c3ltYm9sKXtjb25zdCBpbnN0YW5jZUlkPWV2LmRhdGEuaWQsb3JkZXJEYXRhPXtuZnRJZDppbnN0YW5jZUlkLGdyb3VwaW5nOnt9LGdyb3VwaW5nS2V5OiIifSxpbnRlZ2VySWQ9YXBpLkJpZ051bWJlcihpbnN0YW5jZUlkKS50b051bWJlcigpO25mdEludGVnZXJJZExpc3QucHVzaChpbnRlZ2VySWQpLG9yZGVyRGF0YU1hcFtpbnRlZ2VySWRdPW9yZGVyRGF0YX19Y29uc3QgaW5zdGFuY2VzPWF3YWl0IGFwaS5kYi5maW5kSW5UYWJsZSgibmZ0IixpbnN0YW5jZVRhYmxlTmFtZSx7X2lkOnskaW46bmZ0SW50ZWdlcklkTGlzdH19LDUwLDAsW3tpbmRleDoiX2lkIixkZXNjZW5kaW5nOiExfV0pO2ZvcihsZXQgaj0wO2o8aW5zdGFuY2VzLmxlbmd0aDtqKz0xKXtjb25zdCBpbnN0YW5jZT1pbnN0YW5jZXNbal0sZ3JvdXBpbmc9e307bGV0IGdyb3VwaW5nS2V5PSIiO25mdC5ncm91cEJ5LmZvckVhY2gobmFtZT0+e3ZvaWQgMCE9PWluc3RhbmNlLnByb3BlcnRpZXNbbmFtZV0mJm51bGwhPT1pbnN0YW5jZS5wcm9wZXJ0aWVzW25hbWVdP2dyb3VwaW5nW25hbWVdPWluc3RhbmNlLnByb3BlcnRpZXNbbmFtZV0udG9TdHJpbmcoKTpncm91cGluZ1tuYW1lXT0iIixncm91cGluZ0tleT1ncm91cGluZ0tleSsiOiIrbmFtZSsiOiIrZ3JvdXBpbmdbbmFtZV19KSxvcmRlckRhdGFNYXBbaW5zdGFuY2UuX2lkXS5ncm91cGluZz1ncm91cGluZyxvcmRlckRhdGFNYXBbaW5zdGFuY2UuX2lkXS5ncm91cGluZ0tleT1ncm91cGluZ0tleX1jb25zdCBncm91cGluZ01hcD17fTtmb3IobGV0IGs9MDtrPG5mdEludGVnZXJJZExpc3QubGVuZ3RoO2srPTEpe2NvbnN0IG9yZGVySW5mbz1vcmRlckRhdGFNYXBbbmZ0SW50ZWdlcklkTGlzdFtrXV0sb3JkZXI9e2FjY291bnQ6YXBpLnNlbmRlcixvd25lZEJ5OiJ1IixuZnRJZDpvcmRlckluZm8ubmZ0SWQsZ3JvdXBpbmc6b3JkZXJJbmZvLmdyb3VwaW5nLHRpbWVzdGFtcDp0aW1lc3RhbXAscHJpY2U6ZmluYWxQcmljZSxwcmljZURlYzp7JG51bWJlckRlY2ltYWw6ZmluYWxQcmljZX0scHJpY2VTeW1ib2w6cHJpY2VTeW1ib2wsZmVlOmZlZX0scmVzdWx0PWF3YWl0IGFwaS5kYi5pbnNlcnQobWFya2V0VGFibGVOYW1lLG9yZGVyKTthcGkuZW1pdCgic2VsbE9yZGVyIix7YWNjb3VudDpvcmRlci5hY2NvdW50LG93bmVkQnk6b3JkZXIub3duZWRCeSxzeW1ib2w6c3ltYm9sLG5mdElkOm9yZGVyLm5mdElkLHRpbWVzdGFtcDp0aW1lc3RhbXAscHJpY2U6b3JkZXIucHJpY2UscHJpY2VTeW1ib2w6b3JkZXIucHJpY2VTeW1ib2wsZmVlOmZlZSxvcmRlcklkOnJlc3VsdC5faWR9KTtjb25zdCBncm91cEluZm89b3JkZXJJbmZvLmdyb3VwaW5nS2V5IGluIGdyb3VwaW5nTWFwP2dyb3VwaW5nTWFwW29yZGVySW5mby5ncm91cGluZ0tleV06e2dyb3VwaW5nOm9yZGVySW5mby5ncm91cGluZyxpc0luQ29sbGVjdGlvbjohMSxjb3VudDowfTtncm91cEluZm8uY291bnQrPTEsZ3JvdXBpbmdNYXBbb3JkZXJJbmZvLmdyb3VwaW5nS2V5XT1ncm91cEluZm99YXdhaXQgdXBkYXRlT3BlbkludGVyZXN0KCJzZWxsIixzeW1ib2wscHJpY2VTeW1ib2wsZ3JvdXBpbmdNYXAsbmZ0Lmdyb3VwQnkpfX19fTs="}}}