NFT Airdrops Smart Contract

in #hive-engine2 years ago

{"id":"ssc-mainnet-hive","json":{"contractName":"contract","contractAction":"update","contractPayload":{"name":"nftairdrops","params":"","code":"Y29uc3QgQ09OVFJBQ1RfTkFNRT0ibmZ0YWlyZHJvcHMiLFVUSUxJVFlfVE9LRU5fU1lNQk9MPSJCRUUiLFVUSUxJVFlfVE9LRU5fUFJFQ0lTSU9OPTgsQUxMT1dFRF9UT19UWVBFUz1bInVzZXIiLCJjb250cmFjdCJdLEFMTE9XRURfRlJPTV9UWVBFUz1bInVzZXIiLCJjb250cmFjdCJdLGlzVmFsaWRBY2NvdW50TmFtZT0obmFtZSxhY2NvdW50VHlwZSk9PiEhQUxMT1dFRF9UT19UWVBFUy5pbmNsdWRlcyhhY2NvdW50VHlwZSkmJigiY29udHJhY3QiPT09YWNjb3VudFR5cGU/YXBpLnZhbGlkYXRvci5pc0FscGhhbnVtZXJpYyhuYW1lKSYmbmFtZS5sZW5ndGg+PTMmJm5hbWUubGVuZ3RoPD01MDphcGkuaXNWYWxpZEFjY291bnROYW1lKG5hbWUpKSxhcnJheUhhc0R1cGxpY2F0ZXM9YXJyPT5uZXcgU2V0KGFycikuc2l6ZSE9PWFyci5sZW5ndGgsdG9rZW5UcmFuc2ZlclZlcmlmaWVkPSh7dHJhbnNhY3Rpb246dHJhbnNhY3Rpb24sZnJvbTpmcm9tLGZyb21UeXBlOmZyb21UeXBlLHRvOnRvLHRvVHlwZTp0b1R5cGUscXVhbnRpdHk6cXVhbnRpdHl9KT0+e2NvbnN0e2Vycm9yczplcnJvcnMsZXZlbnRzOmV2ZW50c309dHJhbnNhY3Rpb247bGV0IGV2ZW50VHlwZT0idHJhbnNmZXIiO3JldHVybiJjb250cmFjdCI9PT1mcm9tVHlwZT9ldmVudFR5cGU9InRyYW5zZmVyRnJvbUNvbnRyYWN0IjoiY29udHJhY3QiPT09dG9UeXBlJiYoZXZlbnRUeXBlPSJ0cmFuc2ZlclRvQ29udHJhY3QiKSwhKHZvaWQgMCE9PWVycm9yc3x8IWV2ZW50c3x8dm9pZCAwPT09ZXZlbnRzLmZpbmQoZWw9PiJ0b2tlbnMiPT09ZWwuY29udHJhY3QmJmVsLmV2ZW50PT09ZXZlbnRUeXBlJiYiQkVFIj09PWVsLmRhdGEuc3ltYm9sJiZlbC5kYXRhLmZyb209PT1mcm9tJiZlbC5kYXRhLnRvPT09dG8mJmVsLmRhdGEucXVhbnRpdHk9PT1xdWFudGl0eSkpfSxuZnRUcmFuc2ZlclZlcmlmaWVkPWFzeW5jKHtzeW1ib2w6c3ltYm9sLHRvOnRvLHRvVHlwZTp0b1R5cGUsaWRzOmlkc30pPT57Y29uc3QgbmV3T3duZWRCeT0iY29udHJhY3QiPT09dG9UeXBlPyJjIjoidSI7cmV0dXJuIG51bGw9PT1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoIm5mdCIsc3ltYm9sKyJpbnN0YW5jZXMiLHtfaWQ6eyRpbjppZHMubWFwKHg9PmFwaS5CaWdOdW1iZXIoeCkudG9OdW1iZXIoKSl9LCRvcjpbe2FjY291bnQ6eyRuZTp0b319LHtvd25lZEJ5OnskbmU6bmV3T3duZWRCeX19XX0pfSxidXJuRmVlPWFzeW5jKHtmcm9tOmZyb20sZnJvbVR5cGU6ZnJvbVR5cGUscXVhbnRpdHk6cXVhbnRpdHl9KT0+e2lmKGFwaS5CaWdOdW1iZXIocXVhbnRpdHkpLmVxKDApKXJldHVybiEwO2xldCB0cmFuc2FjdGlvbj1udWxsO3JldHVybiB0cmFuc2FjdGlvbj0iY29udHJhY3QiPT09ZnJvbVR5cGU/YXdhaXQgYXBpLnRyYW5zZmVyVG9rZW5zRnJvbUNhbGxpbmdDb250cmFjdCgibnVsbCIsIkJFRSIscXVhbnRpdHksInVzZXIiKTphd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoInRva2VucyIsInRyYW5zZmVyIix7ZnJvbTpmcm9tLHRvOiJudWxsIixzeW1ib2w6IkJFRSIscXVhbnRpdHk6cXVhbnRpdHl9KSx0b2tlblRyYW5zZmVyVmVyaWZpZWQoe3RyYW5zYWN0aW9uOnRyYW5zYWN0aW9uLGZyb206ZnJvbSxmcm9tVHlwZTpmcm9tVHlwZSx0bzoibnVsbCIsdG9UeXBlOiJ1c2VyIixxdWFudGl0eTpxdWFudGl0eX0pfSxyZXNlcnZlTkZUcz1hc3luYyh7ZnJvbVR5cGU6ZnJvbVR5cGUsc3ltYm9sOnN5bWJvbCxpZHM6aWRzLGJhdGNoU2l6ZTpiYXRjaFNpemV9KT0+e2ZvcihsZXQgaT0wLG49aWRzLmxlbmd0aDtpPG47aSs9YmF0Y2hTaXplKXtpZih2b2lkIDAhPT0oYXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJuZnQiLCJ0cmFuc2ZlciIse2Zyb21UeXBlOmZyb21UeXBlLHRvOiJuZnRhaXJkcm9wcyIsdG9UeXBlOiJjb250cmFjdCIsbmZ0czpbe3N5bWJvbDpzeW1ib2wsaWRzOmlkcy5zbGljZShpLGkrYmF0Y2hTaXplKX1dLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTohMH0pKS5lcnJvcnMpcmV0dXJuITF9cmV0dXJuIG5mdFRyYW5zZmVyVmVyaWZpZWQoe3N5bWJvbDpzeW1ib2wsdG86Im5mdGFpcmRyb3BzIix0b1R5cGU6ImNvbnRyYWN0IixpZHM6aWRzfSl9LHJlaW1idXJzZU5GVHM9YXN5bmMoe3RvOnRvLHRvVHlwZTp0b1R5cGUsc3ltYm9sOnN5bWJvbCxpZHM6aWRzLGJhdGNoU2l6ZTpiYXRjaFNpemV9KT0+e2NvbnN0IHJlc2VydmVkTmZ0cz1bXTtmb3IobGV0IGk9MCxuPWlkcy5sZW5ndGg7aTxuO2krPTFlMyl7Y29uc3QgbmZ0c0luQ29udHJhY3Q9YXdhaXQgYXBpLmRiLmZpbmRJblRhYmxlKCJuZnQiLHN5bWJvbCsiaW5zdGFuY2VzIix7X2lkOnskaW46aWRzLm1hcCh4PT5hcGkuQmlnTnVtYmVyKHgpLnRvTnVtYmVyKCkpfSxhY2NvdW50OiJuZnRhaXJkcm9wcyIsb3duZWRCeToiYyJ9LDFlMyxpLFt7aW5kZXg6Il9pZCIsZGVzY2VuZGluZzohMX1dKTtyZXNlcnZlZE5mdHMucHVzaCguLi5uZnRzSW5Db250cmFjdC5tYXAoeD0+YXBpLkJpZ051bWJlcih4Ll9pZCkudG9TdHJpbmcoKSkpfWZvcihsZXQgaT0wLG49cmVzZXJ2ZWROZnRzLmxlbmd0aDtpPG47aSs9YmF0Y2hTaXplKWF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgibmZ0IiwidHJhbnNmZXIiLHtmcm9tVHlwZToiY29udHJhY3QiLHRvOnRvLHRvVHlwZTp0b1R5cGUsbmZ0czpbe3N5bWJvbDpzeW1ib2wsaWRzOnJlc2VydmVkTmZ0cy5zbGljZShpLGkrYmF0Y2hTaXplKX1dLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTohMH0pO3JldHVybiBuZnRUcmFuc2ZlclZlcmlmaWVkKHtzeW1ib2w6c3ltYm9sLHRvOnRvLHRvVHlwZTp0b1R5cGUsaWRzOnJlc2VydmVkTmZ0c30pfSxwYXJzZUFuZFZhbGlkYXRlQWlyZHJvcD1hc3luYyh7c3ltYm9sOnN5bWJvbCxzZW5kZXI6c2VuZGVyLHNlbmRlclR5cGU6c2VuZGVyVHlwZSxsaXN0Omxpc3Qsc3RhcnRCbG9ja051bWJlcjpzdGFydEJsb2NrTnVtYmVyLHNvZnRGYWlsOnNvZnRGYWlsPSEwLHBhcmFtczpwYXJhbXN9KT0+e2NvbnN0IGluc3RhbmNlVGFibGVOYW1lPXN5bWJvbCsiaW5zdGFuY2VzIixhaXJkcm9wPXtpc1ZhbGlkOiExLHNvZnRGYWlsOiExIT09c29mdEZhaWwsYmxvY2tOdW1iZXI6c3RhcnRCbG9ja051bWJlcnx8YXBpLmJsb2NrTnVtYmVyKzEsYWlyZHJvcElkOmFwaS50cmFuc2FjdGlvbklkLHN5bWJvbDpzeW1ib2wsZnJvbTpzZW5kZXIsZnJvbVR5cGU6c2VuZGVyVHlwZSxsaXN0Omxpc3QsbmZ0SWRzOltdLHRvdGFsRmVlOm51bGx9O2lmKGFwaS5hc3NlcnQocGFyYW1zLmVuYWJsZWRGcm9tVHlwZXMuaW5jbHVkZXMoc2VuZGVyVHlwZSksImludmFsaWQgZnJvbVR5cGUiKSYmYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHN5bWJvbCYmYXBpLnZhbGlkYXRvci5pc0FscGhhKHN5bWJvbCkmJmFwaS52YWxpZGF0b3IuaXNVcHBlcmNhc2Uoc3ltYm9sKSYmc3ltYm9sLmxlbmd0aD4wJiZudWxsIT09YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJuZnQiLCJuZnRzIix7c3ltYm9sOnN5bWJvbH0pLCJpbnZhbGlkIHN5bWJvbCIpJiZhcGkuYXNzZXJ0KEFycmF5LmlzQXJyYXkobGlzdCkmJmxpc3QubGVuZ3RoPjAmJmFwaS5hc3NlcnQobGlzdC5sZW5ndGg8PXBhcmFtcy5tYXhUcmFuc2FjdGlvbnNQZXJBaXJkcm9wLCJleGNlZWRlZCBhaXJkcm9wIHRyYW5zYWN0aW9ucyBsaW1pdCIpJiZsaXN0LmV2ZXJ5KChlbGVtZW50LGluZGV4KT0+e2lmKCJvYmplY3QiPT10eXBlb2YgZWxlbWVudCl7Y29uc3R7dG86dG8saWRzOmlkc309ZWxlbWVudCx0b1R5cGU9ZWxlbWVudC50b1R5cGV8fCJ1c2VyIjtpZihhcGkuYXNzZXJ0KChuYW1lPXRvLGFjY291bnRUeXBlPXRvVHlwZSwhIUFMTE9XRURfVE9fVFlQRVMuaW5jbHVkZXMoYWNjb3VudFR5cGUpJiYoImNvbnRyYWN0Ij09PWFjY291bnRUeXBlP2FwaS52YWxpZGF0b3IuaXNBbHBoYW51bWVyaWMobmFtZSkmJm5hbWUubGVuZ3RoPj0zJiZuYW1lLmxlbmd0aDw9NTA6YXBpLmlzVmFsaWRBY2NvdW50TmFtZShuYW1lKSkpLGBpbnZhbGlkIGFjY291bnQgJHt0b30gYXQgaW5kZXggJHtpbmRleH1gKSYmYXBpLmFzc2VydChBcnJheS5pc0FycmF5KGlkcykmJmlkcy5sZW5ndGg+MCYmaWRzLmxlbmd0aDw9cGFyYW1zLm1heFRyYW5zYWN0aW9uc1BlckFjY291bnQmJmlkcy5ldmVyeShpPT4ic3RyaW5nIj09dHlwZW9mIGkmJmFwaS5CaWdOdW1iZXIoaSkuZ3QoMCkpLGBpbnZhbGlkIG5mdCBpZHMgYXJyYXkgZm9yIGFjY291bnQgJHt0b30gYXQgaW5kZXggJHtpbmRleH1gKSYmYXBpLmFzc2VydChhaXJkcm9wLm5mdElkcy5sZW5ndGg8cGFyYW1zLm1heFRyYW5zYWN0aW9uc1BlckFpcmRyb3AsImV4Y2VlZGVkIGFpcmRyb3AgdHJhbnNhY3Rpb25zIGxpbWl0IikpcmV0dXJuIGFpcmRyb3AubmZ0SWRzLnB1c2goLi4uaWRzKSwhMH12YXIgbmFtZSxhY2NvdW50VHlwZTtyZXR1cm4hMX0pLCJpbnZhbGlkIGxpc3QiKSYmYXBpLmFzc2VydCgoYXJyPWFpcmRyb3AubmZ0SWRzLCEobmV3IFNldChhcnIpLnNpemUhPT1hcnIubGVuZ3RoKSksImFpcmRyb3AgbGlzdCBjb250YWlucyBkdXBsaWNhdGUgbmZ0cyIpKXtjb25zdCBvd25lZEJ5VHlwZT0iY29udHJhY3QiPT09c2VuZGVyVHlwZT8iYyI6InUiLHJlc3VsdD1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoIm5mdCIsaW5zdGFuY2VUYWJsZU5hbWUse19pZDp7JGluOmFpcmRyb3AubmZ0SWRzLm1hcCh4PT5hcGkuQmlnTnVtYmVyKHgpLnRvTnVtYmVyKCkpfSwkb3I6W3thY2NvdW50OnskbmU6c2VuZGVyfX0se293bmVkQnk6eyRuZTpvd25lZEJ5VHlwZX19LHtkZWxlZ2F0ZWRUbzp7JGV4aXN0czohMH19LHtzb3VsQm91bmQ6ITB9XX0pO2FwaS5hc3NlcnQobnVsbD09PXJlc3VsdCwiY2Fubm90IGFpcmRyb3AgbmZ0cyB0aGF0IGFyZSBkZWxlZ2F0ZWQgb3Igbm90IG93bmVkIGJ5IHRoaXMgYWNjb3VudCBvciBzb3VsQm91bmQiKSYmYXBpLmFzc2VydChOdW1iZXIuaXNJbnRlZ2VyKGFpcmRyb3AuYmxvY2tOdW1iZXIpJiZhaXJkcm9wLmJsb2NrTnVtYmVyPmFwaS5ibG9ja051bWJlciwiaW52YWxpZCBzdGFydEJsb2NrTnVtYmVyIikmJihhaXJkcm9wLnRvdGFsRmVlPWFwaS5CaWdOdW1iZXIocGFyYW1zLmZlZVBlclRyYW5zYWN0aW9uKS50aW1lcyhhaXJkcm9wLm5mdElkcy5sZW5ndGgpLnRvRml4ZWQoOCksYWlyZHJvcC5pc1ZhbGlkPSEwKX12YXIgYXJyO3JldHVybiBhaXJkcm9wfSxwcm9jZXNzQWlyZHJvcD1hc3luYyhhaXJkcm9wLGJhdGNoU2l6ZSk9Pntjb25zdHtzb2Z0RmFpbDpzb2Z0RmFpbCxzeW1ib2w6c3ltYm9sLGxpc3Q6bGlzdCxuZnRJZHM6bmZ0SWRzfT1haXJkcm9wLHByb2Nlc3NlZD1bXSxmYWlsZWQ9W107Zm9yKGxldCBpPWxpc3QubGVuZ3RoLTE7aT49MDtpLT0xKXtjb25zdHt0bzp0byx0b1R5cGU6dG9UeXBlLGlkczppZHN9PWxpc3QucG9wKCksYmF0Y2g9aWRzLnNwbGljZSgwLGJhdGNoU2l6ZS1wcm9jZXNzZWQubGVuZ3RoKTtpZihpZHMubGVuZ3RoPjAmJmxpc3QucHVzaCh7dG86dG8sdG9UeXBlOnRvVHlwZSxpZHM6aWRzfSksYmF0Y2gubGVuZ3RoPjApe2NvbnN0IHRyYW5zZmVyPWF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgibmZ0IiwidHJhbnNmZXIiLHtmcm9tVHlwZToiY29udHJhY3QiLHRvOnRvLHRvVHlwZTp0b1R5cGUsbmZ0czpbe3N5bWJvbDpzeW1ib2wsaWRzOmJhdGNofV0saXNTaWduZWRXaXRoQWN0aXZlS2V5OiEwfSk7aWYodm9pZCAwIT09dHJhbnNmZXIuZXJyb3JzKXtjb25zdCBzdWNjZXNzPXRyYW5zZmVyLmV2ZW50cz90cmFuc2Zlci5ldmVudHMubWFwKHg9PnguZGF0YS5pZCk6W107ZmFpbGVkLnB1c2goLi4uYmF0Y2guZmlsdGVyKHg9PiFzdWNjZXNzLmluY2x1ZGVzKHgpKSl9aWYoZmFpbGVkLmxlbmd0aD4wJiYhMCE9PXNvZnRGYWlsKXthaXJkcm9wLmlzVmFsaWQ9ITE7YnJlYWt9fWlmKHByb2Nlc3NlZC5wdXNoKC4uLmJhdGNoKT49YmF0Y2hTaXplKWJyZWFrfXJldHVybiAwPT09bGlzdC5sZW5ndGgmJihhaXJkcm9wLmlzVmFsaWQ9ITEpLG5mdElkcy5zcGxpY2UoMCxuZnRJZHMubGVuZ3RoLC4uLm5mdElkcy5maWx0ZXIoeD0+ZmFpbGVkLmluY2x1ZGVzKHgpfHwhcHJvY2Vzc2VkLmluY2x1ZGVzKHgpKSkscHJvY2Vzc2VkLmxlbmd0aH07YWN0aW9ucy5jcmVhdGVTU0M9YXN5bmMoKT0+e2lmKCExPT09YXdhaXQgYXBpLmRiLnRhYmxlRXhpc3RzKCJwZW5kaW5nQWlyZHJvcHMiKSl7YXdhaXQgYXBpLmRiLmNyZWF0ZVRhYmxlKCJwZW5kaW5nQWlyZHJvcHMiLFsiYWlyZHJvcElkIiwic3ltYm9sIl0pLGF3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZSgicGFyYW1zIik7Y29uc3QgcGFyYW1zPXtmZWVQZXJUcmFuc2FjdGlvbjoiMC4xIixtYXhUcmFuc2FjdGlvbnNQZXJBaXJkcm9wOjFlNCxtYXhUcmFuc2FjdGlvbnNQZXJBY2NvdW50OjUwLG1heFRyYW5zYWN0aW9uc1BlckJsb2NrOjUwMCxtYXhBaXJkcm9wc1BlckJsb2NrOjEscHJvY2Vzc2luZ0JhdGNoU2l6ZTo1MCxlbmFibGVkRnJvbVR5cGVzOlsidXNlciJdfTthd2FpdCBhcGkuZGIuaW5zZXJ0KCJwYXJhbXMiLHBhcmFtcyl9fSxhY3Rpb25zLnVwZGF0ZVBhcmFtcz1hc3luYyBwYXlsb2FkPT57aWYoYXBpLmFzc2VydChhcGkuc2VuZGVyPT09YXBpLm93bmVyLCJub3QgYXV0aG9yaXplZCIpKXtjb25zdHtmZWVQZXJUcmFuc2FjdGlvbjpmZWVQZXJUcmFuc2FjdGlvbixtYXhUcmFuc2FjdGlvbnNQZXJBaXJkcm9wOm1heFRyYW5zYWN0aW9uc1BlckFpcmRyb3AsbWF4VHJhbnNhY3Rpb25zUGVyQWNjb3VudDptYXhUcmFuc2FjdGlvbnNQZXJBY2NvdW50LG1heFRyYW5zYWN0aW9uc1BlckJsb2NrOm1heFRyYW5zYWN0aW9uc1BlckJsb2NrLG1heEFpcmRyb3BzUGVyQmxvY2s6bWF4QWlyZHJvcHNQZXJCbG9jayxwcm9jZXNzaW5nQmF0Y2hTaXplOnByb2Nlc3NpbmdCYXRjaFNpemUsZW5hYmxlZEZyb21UeXBlczplbmFibGVkRnJvbVR5cGVzfT1wYXlsb2FkLHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7fSk7dm9pZCAwIT09ZmVlUGVyVHJhbnNhY3Rpb24mJmFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBmZWVQZXJUcmFuc2FjdGlvbiYmIWFwaS5CaWdOdW1iZXIoZmVlUGVyVHJhbnNhY3Rpb24pLmlzTmFOKCkmJmFwaS5CaWdOdW1iZXIoZmVlUGVyVHJhbnNhY3Rpb24pLmd0ZSgwKSwiaW52YWxpZCBmZWVQZXJUcmFuc2FjdGlvbiIpJiYocGFyYW1zLmZlZVBlclRyYW5zYWN0aW9uPWZlZVBlclRyYW5zYWN0aW9uKSx2b2lkIDAhPT1tYXhUcmFuc2FjdGlvbnNQZXJBaXJkcm9wJiZhcGkuYXNzZXJ0KE51bWJlci5pc0ludGVnZXIobWF4VHJhbnNhY3Rpb25zUGVyQWlyZHJvcCkmJm1heFRyYW5zYWN0aW9uc1BlckFpcmRyb3A+MCwiaW52YWxpZCBtYXhUcmFuc2FjdGlvbnNQZXJBaXJkcm9wIikmJihwYXJhbXMubWF4VHJhbnNhY3Rpb25zUGVyQWlyZHJvcD1tYXhUcmFuc2FjdGlvbnNQZXJBaXJkcm9wKSx2b2lkIDAhPT1tYXhUcmFuc2FjdGlvbnNQZXJBY2NvdW50JiZhcGkuYXNzZXJ0KE51bWJlci5pc0ludGVnZXIobWF4VHJhbnNhY3Rpb25zUGVyQWNjb3VudCkmJm1heFRyYW5zYWN0aW9uc1BlckFjY291bnQ+MCYmbWF4VHJhbnNhY3Rpb25zUGVyQWNjb3VudDw9cGFyYW1zLm1heFRyYW5zYWN0aW9uc1BlckFpcmRyb3AsImludmFsaWQgbWF4VHJhbnNhY3Rpb25zUGVyQWNjb3VudCIpJiYocGFyYW1zLm1heFRyYW5zYWN0aW9uc1BlckFjY291bnQ9bWF4VHJhbnNhY3Rpb25zUGVyQWNjb3VudCksdm9pZCAwIT09bWF4VHJhbnNhY3Rpb25zUGVyQmxvY2smJmFwaS5hc3NlcnQoTnVtYmVyLmlzSW50ZWdlcihtYXhUcmFuc2FjdGlvbnNQZXJCbG9jaykmJm1heFRyYW5zYWN0aW9uc1BlckJsb2NrPjAsImludmFsaWQgbWF4VHJhbnNhY3Rpb25zUGVyQmxvY2siKSYmKHBhcmFtcy5tYXhUcmFuc2FjdGlvbnNQZXJCbG9jaz1tYXhUcmFuc2FjdGlvbnNQZXJCbG9jayksdm9pZCAwIT09bWF4QWlyZHJvcHNQZXJCbG9jayYmYXBpLmFzc2VydChOdW1iZXIuaXNJbnRlZ2VyKG1heEFpcmRyb3BzUGVyQmxvY2spJiZtYXhBaXJkcm9wc1BlckJsb2NrPjAsImludmFsaWQgbWF4QWlyZHJvcHNQZXJCbG9jayIpJiYocGFyYW1zLm1heEFpcmRyb3BzUGVyQmxvY2s9bWF4QWlyZHJvcHNQZXJCbG9jayksdm9pZCAwIT09cHJvY2Vzc2luZ0JhdGNoU2l6ZSYmYXBpLmFzc2VydChOdW1iZXIuaXNJbnRlZ2VyKHByb2Nlc3NpbmdCYXRjaFNpemUpJiZwcm9jZXNzaW5nQmF0Y2hTaXplPjAsImludmFsaWQgcHJvY2Vzc2luZ0JhdGNoU2l6ZSIpJiYocGFyYW1zLnByb2Nlc3NpbmdCYXRjaFNpemU9cHJvY2Vzc2luZ0JhdGNoU2l6ZSksdm9pZCAwIT09ZW5hYmxlZEZyb21UeXBlcyYmYXBpLmFzc2VydChBcnJheS5pc0FycmF5KGVuYWJsZWRGcm9tVHlwZXMpJiZlbmFibGVkRnJvbVR5cGVzLmxlbmd0aD4wJiZlbmFibGVkRnJvbVR5cGVzLmV2ZXJ5KHg9PkFMTE9XRURfRlJPTV9UWVBFUy5pbmNsdWRlcyh4KSksImludmFsaWQgZW5hYmxlZEZyb21UeXBlcyIpJiYocGFyYW1zLmVuYWJsZWRGcm9tVHlwZXM9QXJyYXkuZnJvbShuZXcgU2V0KGVuYWJsZWRGcm9tVHlwZXMpKSksYXdhaXQgYXBpLmRiLnVwZGF0ZSgicGFyYW1zIixwYXJhbXMpLGRlbGV0ZSBwYXJhbXMuX2lkLGFwaS5lbWl0KCJwYXJhbXNVcGRhdGVkIixwYXJhbXMpfX0sYWN0aW9ucy5uZXdBaXJkcm9wPWFzeW5jIHBheWxvYWQ9Pntjb25zdHtzeW1ib2w6c3ltYm9sLGxpc3Q6bGlzdCxzdGFydEJsb2NrTnVtYmVyOnN0YXJ0QmxvY2tOdW1iZXIsc29mdEZhaWw6c29mdEZhaWwsZnJvbVR5cGU6ZnJvbVR5cGUsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleSxjYWxsaW5nQ29udHJhY3RJbmZvOmNhbGxpbmdDb250cmFjdEluZm99PXBheWxvYWQ7aWYoYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgY3VzdG9tX2pzb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5Iikpe2NvbnN0IHNlbmRlclR5cGU9dm9pZCAwPT09Y2FsbGluZ0NvbnRyYWN0SW5mb3x8ImNvbnRyYWN0IiE9PWZyb21UeXBlPyJ1c2VyIjoiY29udHJhY3QiLHNlbmRlcj0idXNlciI9PT1zZW5kZXJUeXBlP2FwaS5zZW5kZXI6Y2FsbGluZ0NvbnRyYWN0SW5mby5uYW1lLHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7fSksYWlyZHJvcD1hd2FpdCBwYXJzZUFuZFZhbGlkYXRlQWlyZHJvcCh7c3ltYm9sOnN5bWJvbCxzZW5kZXI6c2VuZGVyLHNlbmRlclR5cGU6c2VuZGVyVHlwZSxsaXN0Omxpc3Qsc3RhcnRCbG9ja051bWJlcjpzdGFydEJsb2NrTnVtYmVyLHNvZnRGYWlsOnNvZnRGYWlsLHBhcmFtczpwYXJhbXN9KTtpZihhaXJkcm9wLmlzVmFsaWQpe2NvbnN0IHRva2Vuc1RhYmxlPSJjb250cmFjdCI9PT1zZW5kZXJUeXBlPyJjb250cmFjdHNCYWxhbmNlcyI6ImJhbGFuY2VzIix1dGlsaXR5VG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLHRva2Vuc1RhYmxlLHthY2NvdW50OnNlbmRlcixzeW1ib2w6IkJFRSJ9KTtpZihhcGkuYXNzZXJ0KHV0aWxpdHlUb2tlbiYmYXBpLkJpZ051bWJlcih1dGlsaXR5VG9rZW4uYmFsYW5jZSkuZ3RlKGFpcmRyb3AudG90YWxGZWUpLCJ5b3UgbXVzdCBoYXZlIGVub3VnaCB0b2tlbnMgdG8gY292ZXIgdGhlIGFpcmRyb3AgZmVlIikmJmFwaS5hc3NlcnQoYXdhaXQgYnVybkZlZSh7ZnJvbTpzZW5kZXIsZnJvbVR5cGU6c2VuZGVyVHlwZSxxdWFudGl0eTphaXJkcm9wLnRvdGFsRmVlfSksImNvdWxkIG5vdCBzZWN1cmUgYWlyZHJvcCBmZWUiKSl7aWYoYXBpLmFzc2VydChhd2FpdCByZXNlcnZlTkZUcyh7ZnJvbVR5cGU6c2VuZGVyVHlwZSxzeW1ib2w6c3ltYm9sLGlkczphaXJkcm9wLm5mdElkcyxiYXRjaFNpemU6cGFyYW1zLnByb2Nlc3NpbmdCYXRjaFNpemV9KSwiY291bGQgbm90IHNlY3VyZSBORlRzIikpcmV0dXJuIGF3YWl0IGFwaS5kYi5pbnNlcnQoInBlbmRpbmdBaXJkcm9wcyIsYWlyZHJvcCksYXBpLmVtaXQoIm5ld05mdEFpcmRyb3AiLHthaXJkcm9wSWQ6YWlyZHJvcC5haXJkcm9wSWQsc2VuZGVyOnNlbmRlcixzZW5kZXJUeXBlOnNlbmRlclR5cGUsc3ltYm9sOnN5bWJvbCxzdGFydEJsb2NrTnVtYmVyOmFpcmRyb3AuYmxvY2tOdW1iZXJ9KSwhMDthd2FpdCByZWltYnVyc2VORlRzKHt0bzpzZW5kZXIsdG9UeXBlOnNlbmRlclR5cGUsc3ltYm9sOnN5bWJvbCxpZHM6YWlyZHJvcC5uZnRJZHMsYmF0Y2hTaXplOnBhcmFtcy5wcm9jZXNzaW5nQmF0Y2hTaXplfSl9fX1yZXR1cm4hMX0sYWN0aW9ucy50aWNrPWFzeW5jKCk9PntpZihhcGkuYXNzZXJ0KCJudWxsIj09PWFwaS5zZW5kZXIsIm5vdCBhdXRob3JpemVkOiAiK2FwaS5zZW5kZXIpKXtjb25zdCBwYXJhbXM9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBhcmFtcyIse30pLHBlbmRpbmdBaXJkcm9wcz1hd2FpdCBhcGkuZGIuZmluZCgicGVuZGluZ0FpcmRyb3BzIix7YmxvY2tOdW1iZXI6eyRsdGU6YXBpLmJsb2NrTnVtYmVyfX0scGFyYW1zLm1heEFpcmRyb3BzUGVyQmxvY2ssMCxbe2luZGV4OiJfaWQiLGRlc2NlbmRpbmc6ITF9XSk7aWYocGVuZGluZ0FpcmRyb3BzLmxlbmd0aD4wKXtjb25zdCBiYXRjaFNpemU9TWF0aC5mbG9vcihwYXJhbXMubWF4VHJhbnNhY3Rpb25zUGVyQmxvY2svcGVuZGluZ0FpcmRyb3BzLmxlbmd0aCk7Zm9yKGxldCBpPTAsbj1wZW5kaW5nQWlyZHJvcHMubGVuZ3RoO2k8bjtpKz0xKXtjb25zdCBhaXJkcm9wPXBlbmRpbmdBaXJkcm9wc1tpXSxuZnRzUHJvY2Vzc2VkPWF3YWl0IHByb2Nlc3NBaXJkcm9wKGFpcmRyb3AsYmF0Y2hTaXplKTthcGkuZW1pdCgibmZ0QWlyZHJvcERpc3RyaWJ1dGlvbiIse2FpcmRyb3BJZDphaXJkcm9wLmFpcmRyb3BJZCxzeW1ib2w6YWlyZHJvcC5zeW1ib2wsdHJhbnNhY3Rpb25Db3VudDpuZnRzUHJvY2Vzc2VkfSksITA9PT1haXJkcm9wLmlzVmFsaWQ/YXdhaXQgYXBpLmRiLnVwZGF0ZSgicGVuZGluZ0FpcmRyb3BzIixhaXJkcm9wKTooYXdhaXQgYXBpLmRiLnJlbW92ZSgicGVuZGluZ0FpcmRyb3BzIixhaXJkcm9wKSxhd2FpdCByZWltYnVyc2VORlRzKHt0bzphaXJkcm9wLmZyb20sdG9UeXBlOmFpcmRyb3AuZnJvbVR5cGUsc3ltYm9sOmFpcmRyb3Auc3ltYm9sLGlkczphaXJkcm9wLm5mdElkcyxiYXRjaFNpemU6cGFyYW1zLnByb2Nlc3NpbmdCYXRjaFNpemV9KSwhMT09PWFpcmRyb3Auc29mdEZhaWwmJmFpcmRyb3AubmZ0SWRzLmxlbmd0aD4wP2FwaS5lbWl0KCJuZnRBaXJkcm9wRmFpbGVkIix7YWlyZHJvcElkOmFpcmRyb3AuYWlyZHJvcElkLHN5bWJvbDphaXJkcm9wLnN5bWJvbH0pOmFwaS5lbWl0KCJuZnRBaXJkcm9wRmluaXNoZWQiLHthaXJkcm9wSWQ6YWlyZHJvcC5haXJkcm9wSWQsc3ltYm9sOmFpcmRyb3Auc3ltYm9sfSkpfX19fTs="}}}