{"id":"ssc-mainnet-hive","json":{"contractName":"contract","contractAction":"update","contractPayload":{"name":"distribution","params":"","code":"Y29uc3QgRGlzdFN0cmF0ZWd5PVsiZml4ZWQiLCJwb29sIl07YXN5bmMgZnVuY3Rpb24gdmFsaWRhdGVNaW5QYXlvdXQodG9rZW5NaW5QYXlvdXQpe2lmKCFhcGkuYXNzZXJ0KHRva2VuTWluUGF5b3V0JiZBcnJheS5pc0FycmF5KHRva2VuTWluUGF5b3V0KSwidG9rZW5NaW5QYXlvdXQgbXVzdCBiZSBhbiBhcnJheSIpKXJldHVybiExO2lmKCFhcGkuYXNzZXJ0KHRva2VuTWluUGF5b3V0Lmxlbmd0aD49MSwic3BlY2lmeSBhdCBsZWFzdCBvbmUgbWluaW11bSBwYXlvdXQgY29uZmlndXJhdGlvbiIpKXJldHVybiExO2NvbnN0IHRva2VuTWluUGF5b3V0U3ltYm9scz1uZXcgU2V0O2ZvcihsZXQgaT0wO2k8dG9rZW5NaW5QYXlvdXQubGVuZ3RoO2krPTEpe2NvbnN0IHRva2VuTWluUGF5b3V0Q29uZmlnPXRva2VuTWluUGF5b3V0W2ldO2lmKCFhcGkuYXNzZXJ0KHRva2VuTWluUGF5b3V0Q29uZmlnJiZ0b2tlbk1pblBheW91dENvbmZpZy5zeW1ib2wmJiJzdHJpbmciPT10eXBlb2YgdG9rZW5NaW5QYXlvdXRDb25maWcuc3ltYm9sLCJ0b2tlbk1pblBheW91dCBpbnZhbGlkIikpcmV0dXJuITE7aWYoIWFwaS5hc3NlcnQoIXRva2VuTWluUGF5b3V0U3ltYm9scy5oYXModG9rZW5NaW5QYXlvdXRDb25maWcuc3ltYm9sKSwidG9rZW5NaW5QYXlvdXQgY2Fubm90IGhhdmUgZHVwbGljYXRlIHN5bWJvbHMiKSlyZXR1cm4hMTtpZih0b2tlbk1pblBheW91dFN5bWJvbHMuYWRkKHRva2VuTWluUGF5b3V0Q29uZmlnLnN5bWJvbCksIWFwaS5hc3NlcnQodG9rZW5NaW5QYXlvdXRDb25maWcucXVhbnRpdHkmJmFwaS5CaWdOdW1iZXIodG9rZW5NaW5QYXlvdXRDb25maWcucXVhbnRpdHkpLmRwKCk8PTMmJmFwaS5CaWdOdW1iZXIodG9rZW5NaW5QYXlvdXRDb25maWcucXVhbnRpdHkpLmd0ZSgwKSwiaW52YWxpZCBxdWFudGl0eSIpKXJldHVybiExfXJldHVybiEwfWFzeW5jIGZ1bmN0aW9uIHZhbGlkYXRlUmVjaXBpZW50cyhwYXJhbXMsdG9rZW5SZWNpcGllbnRzKXtpZighYXBpLmFzc2VydCh0b2tlblJlY2lwaWVudHMmJkFycmF5LmlzQXJyYXkodG9rZW5SZWNpcGllbnRzKSwidG9rZW5SZWNpcGllbnRzIG11c3QgYmUgYW4gYXJyYXkiKSlyZXR1cm4hMTtpZighYXBpLmFzc2VydCh0b2tlblJlY2lwaWVudHMubGVuZ3RoPj0xJiZ0b2tlblJlY2lwaWVudHMubGVuZ3RoPD1wYXJhbXMubWF4VHJhbnNmZXJMaW1pdCxgMS0ke3BhcmFtcy5tYXhUcmFuc2ZlckxpbWl0fSB0b2tlblJlY2lwaWVudHMgYXJlIHN1cHBvcnRlZGApKXJldHVybiExO2NvbnN0IHRva2VuUmVjaXBpZW50c0FjY291bnRzPW5ldyBTZXQ7bGV0IHRva2VuUmVjaXBpZW50c1RvdGFsU2hhcmU9MDtmb3IobGV0IGk9MDtpPHRva2VuUmVjaXBpZW50cy5sZW5ndGg7aSs9MSl7Y29uc3QgdG9rZW5SZWNpcGllbnRzQ29uZmlnPXRva2VuUmVjaXBpZW50c1tpXTtpZighYXBpLmFzc2VydCh0b2tlblJlY2lwaWVudHNDb25maWcmJnRva2VuUmVjaXBpZW50c0NvbmZpZy5hY2NvdW50JiYic3RyaW5nIj09dHlwZW9mIHRva2VuUmVjaXBpZW50c0NvbmZpZy5hY2NvdW50LCJ0b2tlblJlY2lwaWVudHMgaW52YWxpZCIpJiYhYXBpLmFzc2VydCh0b2tlblJlY2lwaWVudHNDb25maWcuYWNjb3VudC5sZW5ndGg+PTMmJnRva2VuUmVjaXBpZW50c0NvbmZpZy5hY2NvdW50Lmxlbmd0aDw9MTYsImludmFsaWQgYWNjb3VudCIpKXJldHVybiExO2lmKCFhcGkuYXNzZXJ0KCF0b2tlblJlY2lwaWVudHNBY2NvdW50cy5oYXModG9rZW5SZWNpcGllbnRzQ29uZmlnLmFjY291bnQpLCJ0b2tlblJlY2lwaWVudHMgY2Fubm90IGhhdmUgZHVwbGljYXRlIGFjY291bnRzIikpcmV0dXJuITE7aWYodG9rZW5SZWNpcGllbnRzQWNjb3VudHMuYWRkKHRva2VuUmVjaXBpZW50c0NvbmZpZy5hY2NvdW50KSwhYXBpLmFzc2VydChOdW1iZXIuaXNJbnRlZ2VyKHRva2VuUmVjaXBpZW50c0NvbmZpZy5wY3QpJiZ0b2tlblJlY2lwaWVudHNDb25maWcucGN0Pj0xJiZ0b2tlblJlY2lwaWVudHNDb25maWcucGN0PD0xMDAsInRva2VuUmVjaXBpZW50cyBwY3QgbXVzdCBiZSBhbiBpbnRlZ2VyIGZyb20gMSB0byAxMDAiKSlyZXR1cm4hMTtpZih0b2tlblJlY2lwaWVudHNUb3RhbFNoYXJlKz10b2tlblJlY2lwaWVudHNDb25maWcucGN0LCFhcGkuYXNzZXJ0KFsidXNlciIsImNvbnRyYWN0Il0uaW5jbHVkZXModG9rZW5SZWNpcGllbnRzQ29uZmlnLnR5cGUpLCJ0b2tlblJlY2lwaWVudHMgdHlwZSBtdXN0IGJlIHVzZXIgb3IgY29udHJhY3QiKSlyZXR1cm4hMTtpZigiY29udHJhY3QiPT09dG9rZW5SZWNpcGllbnRzQ29uZmlnLnR5cGUmJiFhcGkuYXNzZXJ0KCJvYmplY3QiPT10eXBlb2YgdG9rZW5SZWNpcGllbnRzQ29uZmlnLmNvbnRyYWN0UGF5bG9hZCwiY29udHJhY3QgcmVjaXBpZW50cyBtdXN0IGhhdmUgY29udHJhY3RQYXlsb2FkIikpcmV0dXJuITF9cmV0dXJuISFhcGkuYXNzZXJ0KDEwMD09PXRva2VuUmVjaXBpZW50c1RvdGFsU2hhcmUsInRva2VuUmVjaXBpZW50cyBwY3QgbXVzdCB0b3RhbCAxMDAiKX1mdW5jdGlvbiB2YWxpZGF0ZUluY29taW5nVG9rZW4oZGlzdCxzeW1ib2wpe2ZvcihsZXQgaT0wO2k8ZGlzdC50b2tlbk1pblBheW91dC5sZW5ndGg7aSs9MSlpZihkaXN0LnRva2VuTWluUGF5b3V0W2ldLnN5bWJvbD09PXN5bWJvbClyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiB2YWxpZGF0ZUJvbnVzQ3VydmUob2JqKXtpZighYXBpLmFzc2VydCgib2JqZWN0Ij09dHlwZW9mIG9iaiYmIk9iamVjdCI9PT1vYmouY29uc3RydWN0b3IubmFtZSwiaW52YWxpZCBib251c0N1cnZlIHNldHRpbmdzIikpcmV0dXJuITE7aWYoInBlcmlvZEJvbnVzUGN0ImluIG9ianx8Im51bVBlcmlvZHMiaW4gb2JqKXtpZighYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIG9iai5wZXJpb2RCb251c1BjdCYmYXBpLkJpZ051bWJlcihvYmoucGVyaW9kQm9udXNQY3QpLmlzSW50ZWdlcigpJiZhcGkuQmlnTnVtYmVyKG9iai5wZXJpb2RCb251c1BjdCkuZ3QoMCkmJmFwaS5CaWdOdW1iZXIob2JqLnBlcmlvZEJvbnVzUGN0KS5sdCgxMDApJiYic3RyaW5nIj09dHlwZW9mIG9iai5udW1QZXJpb2RzJiZhcGkuQmlnTnVtYmVyKG9iai5udW1QZXJpb2RzKS5pc0ludGVnZXIoKSYmYXBpLkJpZ051bWJlcihvYmoubnVtUGVyaW9kcykuZ3QoMCkmJmFwaS5CaWdOdW1iZXIob2JqLm51bVBlcmlvZHMpLmx0KDU1NTUpLCJpbnZhbGlkIGJvbnVzQ3VydmUgc2V0dGluZ3MiKSlyZXR1cm4hMX1lbHNlIGlmKCFhcGkuYXNzZXJ0KDA9PT1PYmplY3Qua2V5cyhvYmopLmxlbmd0aCwiaW52YWxpZCBib251c0N1cnZlIHNldHRpbmdzIikpcmV0dXJuITE7cmV0dXJuITB9YXN5bmMgZnVuY3Rpb24gdmFsaWRhdGVQb29sKHRva2VuUGFpcil7cmV0dXJuIG51bGwhPT1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoIm1hcmtldHBvb2xzIiwicG9vbHMiLHt0b2tlblBhaXI6dG9rZW5QYWlyfSl9YXN5bmMgZnVuY3Rpb24gdXBkYXRlVG9rZW5CYWxhbmNlcyhkaXN0LHRva2VuLHF1YW50aXR5KXtjb25zdCB1cERpc3Q9ZGlzdDtpZih1cERpc3QudG9rZW5CYWxhbmNlcyl7Y29uc3QgdEluZGV4PXVwRGlzdC50b2tlbkJhbGFuY2VzLmZpbmRJbmRleCgodD0+dC5zeW1ib2w9PT10b2tlbi5zeW1ib2wpKTstMT09PXRJbmRleD91cERpc3QudG9rZW5CYWxhbmNlcy5wdXNoKHtzeW1ib2w6dG9rZW4uc3ltYm9sLHF1YW50aXR5OnF1YW50aXR5fSk6dXBEaXN0LnRva2VuQmFsYW5jZXNbdEluZGV4XS5xdWFudGl0eT1hcGkuQmlnTnVtYmVyKHVwRGlzdC50b2tlbkJhbGFuY2VzW3RJbmRleF0ucXVhbnRpdHkpLnBsdXMocXVhbnRpdHkpLnRvRml4ZWQodG9rZW4ucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTil9ZWxzZSB1cERpc3QudG9rZW5CYWxhbmNlcz1be3N5bWJvbDp0b2tlbi5zeW1ib2wscXVhbnRpdHk6cXVhbnRpdHl9XTthd2FpdCBhcGkuZGIudXBkYXRlKCJiYXRjaGVzIix1cERpc3QpfWFzeW5jIGZ1bmN0aW9uIGdldEVmZmVjdGl2ZVNoYXJlcyhwYXJhbXMsZGlzdCxscCl7Y29uc3QgYmxvY2tEYXRlPW5ldyBEYXRlKGAke2FwaS5oaXZlQmxvY2tUaW1lc3RhbXB9LjAwMFpgKSx0aW1lRGlmZj1hcGkuQmlnTnVtYmVyKGJsb2NrRGF0ZS5nZXRUaW1lKCkpLm1pbnVzKGxwLnRpbWVGYWN0b3IpO2lmKHRpbWVEaWZmLmx0ZSgzNjAwKnBhcmFtcy5kaXN0VGlja0hvdXJzKjFlMykpcmV0dXJuIGxwLnNoYXJlcztsZXQgbXVsdGlwbGllcj1hcGkuQmlnTnVtYmVyKCIxIik7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBkaXN0LmJvbnVzQ3VydmUubnVtUGVyaW9kcyYmKG11bHRpcGxpZXI9dGltZURpZmYubHQocGFyYW1zLmRpc3RUaWNrSG91cnMqZGlzdC5ib251c0N1cnZlLm51bVBlcmlvZHMqMzYwMCoxZTMpP2FwaS5CaWdOdW1iZXIoZGlzdC5ib251c0N1cnZlLnBlcmlvZEJvbnVzUGN0KS5kaXZpZGVkQnkoIjEwMCIpLnRpbWVzKHRpbWVEaWZmLmRpdmlkZWRCeSgzNjAwKnBhcmFtcy5kaXN0VGlja0hvdXJzKjFlMykuZHAoMCxhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pKS5wbHVzKG11bHRpcGxpZXIpOmFwaS5CaWdOdW1iZXIoZGlzdC5ib251c0N1cnZlLnBlcmlvZEJvbnVzUGN0KS5kaXZpZGVkQnkoIjEwMCIpLnRpbWVzKGRpc3QuYm9udXNDdXJ2ZS5udW1QZXJpb2RzKS5wbHVzKG11bHRpcGxpZXIpKSxhcGkuQmlnTnVtYmVyKGxwLnNoYXJlcykudGltZXMobXVsdGlwbGllcil9YXN5bmMgZnVuY3Rpb24gZ2V0UG9vbFJlY2lwaWVudHMocGFyYW1zLGRpc3Qpe2NvbnN0IGJsb2NrRGF0ZT1uZXcgRGF0ZShgJHthcGkuaGl2ZUJsb2NrVGltZXN0YW1wfS4wMDBaYCksbWluSG9sZFRpbWU9YXBpLkJpZ051bWJlcihibG9ja0RhdGUuZ2V0VGltZSgpKS5taW51cygzNjAwKnBhcmFtcy5kaXN0VGlja0hvdXJzKjFlMykudG9OdW1iZXIoKSxyZXN1bHQ9W107bGV0IG9mZnNldD0wLHByb2Nlc3NRdWVyeT1bXTtjb25zdCBwb29sPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgibWFya2V0cG9vbHMiLCJwb29scyIse3Rva2VuUGFpcjpkaXN0LnRva2VuUGFpcn0pO2lmKCFwb29sfHxwb29sLnRvdGFsU2hhcmVzPD0wKXJldHVybiByZXN1bHQ7Zm9yKDtudWxsIT09cHJvY2Vzc1F1ZXJ5JiZwcm9jZXNzUXVlcnkubGVuZ3RoPT09cGFyYW1zLnByb2Nlc3NRdWVyeUxpbWl0fHwwPT09b2Zmc2V0Oyl7cHJvY2Vzc1F1ZXJ5PWF3YWl0IGFwaS5kYi5maW5kSW5UYWJsZSgibWFya2V0cG9vbHMiLCJsaXF1aWRpdHlQb3NpdGlvbnMiLHt0b2tlblBhaXI6ZGlzdC50b2tlblBhaXIsYWNjb3VudDp7JG5pbjpkaXN0LmV4Y2x1ZGVBY2NvdW50fSx0aW1lRmFjdG9yOnskbHRlOm1pbkhvbGRUaW1lfX0scGFyYW1zLnByb2Nlc3NRdWVyeUxpbWl0LG9mZnNldCxbe2luZGV4OiJfaWQiLGRlc2NlbmRpbmc6ITF9XSk7Zm9yKGxldCBpPTA7aTxwcm9jZXNzUXVlcnkubGVuZ3RoO2krPTEpe2NvbnN0IGxwPXByb2Nlc3NRdWVyeVtpXTtscC5lZmZTaGFyZXM9YXdhaXQgZ2V0RWZmZWN0aXZlU2hhcmVzKHBhcmFtcyxkaXN0LGxwKSxyZXN1bHQucHVzaChscCl9b2Zmc2V0Kz1wYXJhbXMucHJvY2Vzc1F1ZXJ5TGltaXR9cmV0dXJuIHJlc3VsdH1hc3luYyBmdW5jdGlvbiBwYXlSZWNpcGllbnQoYWNjb3VudCxzeW1ib2wscXVhbnRpdHksdHlwZT0idXNlciIsY29udHJhY3RQYXlsb2FkPW51bGwpe2lmKGFwaS5CaWdOdW1iZXIocXVhbnRpdHkpLmd0KDApKXtjb25zdCByZXM9YXdhaXQgYXBpLnRyYW5zZmVyVG9rZW5zKGFjY291bnQsc3ltYm9sLHF1YW50aXR5LHR5cGUpO3JldHVybiJjb250cmFjdCI9PT10eXBlJiZjb250cmFjdFBheWxvYWQmJmF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdChhY2NvdW50LCJyZWNlaXZlRGlzdFRva2VucyIse2RhdGE6Y29udHJhY3RQYXlsb2FkLHN5bWJvbDpzeW1ib2wscXVhbnRpdHk6cXVhbnRpdHl9KSwhcmVzLmVycm9yc3x8KGFwaS5kZWJ1ZyhgRXJyb3IgcGF5aW5nIG91dCBkaXN0cmlidXRpb24gb2YgJHtxdWFudGl0eX0gJHtzeW1ib2x9IHRvICR7YWNjb3VudH0gKFRYSUQgJHthcGkudHJhbnNhY3Rpb25JZH0pOiBcbiR7cmVzLmVycm9yc31gKSwhMSl9cmV0dXJuITF9YXN5bmMgZnVuY3Rpb24gcnVuRGlzdHJpYnV0aW9uKGRpc3QscGFyYW1zLGZsdXNoPSExKXtjb25zdCBibG9ja0RhdGU9bmV3IERhdGUoYCR7YXBpLmhpdmVCbG9ja1RpbWVzdGFtcH0uMDAwWmApLHVwRGlzdD1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRpc3QpKSxwYXlUb2tlbnM9ZGlzdC50b2tlbkJhbGFuY2VzLmZpbHRlcigoZD0+YXBpLkJpZ051bWJlcihkLnF1YW50aXR5KS5ndCgwKSkpO2lmKHBheVRva2Vucy5sZW5ndGg+MClpZigiZml4ZWQiPT09ZGlzdC5zdHJhdGVneSl7Y29uc3R7dG9rZW5SZWNpcGllbnRzOnRva2VuUmVjaXBpZW50c309ZGlzdDtmb3IoO3Rva2VuUmVjaXBpZW50cy5sZW5ndGg+MDspe2NvbnN0IHRyPXRva2VuUmVjaXBpZW50cy5zaGlmdCgpO2ZvcihsZXQgaT0wO2k8cGF5VG9rZW5zLmxlbmd0aDtpKz0xKXtjb25zdCBwYXlUb2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpwYXlUb2tlbnNbaV0uc3ltYm9sfSksbWluUGF5b3V0PWRpc3QudG9rZW5NaW5QYXlvdXQuZmluZCgocD0+cC5zeW1ib2w9PT1wYXlUb2tlbnNbaV0uc3ltYm9sKSk7aWYoYXBpLkJpZ051bWJlcihwYXlUb2tlbnNbaV0ucXVhbnRpdHkpLmd0KG1pblBheW91dC5xdWFudGl0eSl8fGZsdXNoKXtjb25zdCBwYXlvdXRTaGFyZT1hcGkuQmlnTnVtYmVyKHBheVRva2Vuc1tpXS5xdWFudGl0eSkubXVsdGlwbGllZEJ5KHRyLnBjdCkuZGl2aWRlZEJ5KDEwMCkuZGl2aWRlZEJ5KGRpc3QubnVtVGlja3NMZWZ0KS50b0ZpeGVkKHBheVRva2VuLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pO2lmKGFwaS5CaWdOdW1iZXIocGF5b3V0U2hhcmUpLmd0KDApJiZhd2FpdCBwYXlSZWNpcGllbnQodHIuYWNjb3VudCxwYXlUb2tlbnNbaV0uc3ltYm9sLHBheW91dFNoYXJlLHRyLnR5cGUsdHIuY29udHJhY3RQYXlsb2FkfHxudWxsKSl7Y29uc3QgdGJJbmRleD11cERpc3QudG9rZW5CYWxhbmNlcy5maW5kSW5kZXgoKGI9PmIuc3ltYm9sPT09cGF5VG9rZW5zW2ldLnN5bWJvbCkpO3VwRGlzdC50b2tlbkJhbGFuY2VzW3RiSW5kZXhdLnF1YW50aXR5PWFwaS5CaWdOdW1iZXIodXBEaXN0LnRva2VuQmFsYW5jZXNbdGJJbmRleF0ucXVhbnRpdHkpLm1pbnVzKHBheW91dFNoYXJlKS50b0ZpeGVkKHBheVRva2VuLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pLGFwaS5lbWl0KCJwYXltZW50Iix7ZGlzdElkOmRpc3QuX2lkLHRva2VuUGFpcjpkaXN0LnRva2VuUGFpcixzeW1ib2w6cGF5VG9rZW5zW2ldLnN5bWJvbCxhY2NvdW50OnRyLmFjY291bnQscXVhbnRpdHk6cGF5b3V0U2hhcmV9KX19fX19ZWxzZSBpZigicG9vbCI9PT1kaXN0LnN0cmF0ZWd5KXtjb25zdCB0b2tlblJlY2lwaWVudHM9YXdhaXQgZ2V0UG9vbFJlY2lwaWVudHMocGFyYW1zLGRpc3QpLHNoYXJlVG90YWw9dG9rZW5SZWNpcGllbnRzLnJlZHVjZSgoKGFjYyxjdXIpPT5hY2MucGx1cyhjdXIuZWZmU2hhcmVzKSksYXBpLkJpZ051bWJlcigwKSk7aWYoYXBpLmFzc2VydChzaGFyZVRvdGFsLmd0KDApLCJubyBsaXF1aWRpdHkgc2hhcmVzIGZvciB0aGlzIHRva2VuUGFpciIpKXtsZXQgcGF5VHhDb3VudD0wO2NvbnN0IHN0b3JlUGVuZGluZz1bXTtmb3IoO3Rva2VuUmVjaXBpZW50cy5sZW5ndGg+MDspe2NvbnN0IHRyPXRva2VuUmVjaXBpZW50cy5zaGlmdCgpLHBheW91dFNoYXJlPWFwaS5CaWdOdW1iZXIodHIuZWZmU2hhcmVzKS5kaXZpZGVkQnkoc2hhcmVUb3RhbCk7Zm9yKGxldCBpPTA7aTxwYXlUb2tlbnMubGVuZ3RoO2krPTEpe2NvbnN0IHBheVRva2VuPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOnBheVRva2Vuc1tpXS5zeW1ib2x9KSxwYXlvdXRRdHk9YXBpLkJpZ051bWJlcihwYXlUb2tlbnNbaV0ucXVhbnRpdHkpLm11bHRpcGxpZWRCeShwYXlvdXRTaGFyZSkuZGl2aWRlZEJ5KGRpc3QubnVtVGlja3NMZWZ0KS50b0ZpeGVkKHBheVRva2VuLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pO2lmKGFwaS5CaWdOdW1iZXIocGF5b3V0UXR5KS5ndCgwKSl7bGV0IHBheVJlc3VsdD0hMCxwYXlOb3c9ITA7aWYocGF5VHhDb3VudDxwYXJhbXMubWF4VHJhbnNmZXJMaW1pdD9wYXlSZXN1bHQ9YXdhaXQgcGF5UmVjaXBpZW50KHRyLmFjY291bnQscGF5VG9rZW5zW2ldLnN5bWJvbCxwYXlvdXRRdHkpOihwYXlOb3c9ITEsc3RvcmVQZW5kaW5nLnB1c2goe2Rpc3RJZDpkaXN0Ll9pZCxhY2NvdW50OnRyLmFjY291bnQsc3ltYm9sOnBheVRva2Vuc1tpXS5zeW1ib2wscXVhbnRpdHk6cGF5b3V0UXR5fSkpLHBheVJlc3VsdCl7Y29uc3QgdGJJbmRleD11cERpc3QudG9rZW5CYWxhbmNlcy5maW5kSW5kZXgoKGI9PmIuc3ltYm9sPT09cGF5VG9rZW5zW2ldLnN5bWJvbCkpO3VwRGlzdC50b2tlbkJhbGFuY2VzW3RiSW5kZXhdLnF1YW50aXR5PWFwaS5CaWdOdW1iZXIodXBEaXN0LnRva2VuQmFsYW5jZXNbdGJJbmRleF0ucXVhbnRpdHkpLm1pbnVzKHBheW91dFF0eSkudG9GaXhlZChwYXlUb2tlbi5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSxwYXlOb3cmJmFwaS5lbWl0KCJwYXltZW50Iix7ZGlzdElkOmRpc3QuX2lkLHRva2VuUGFpcjpkaXN0LnRva2VuUGFpcixzeW1ib2w6cGF5VG9rZW5zW2ldLnN5bWJvbCxhY2NvdW50OnRyLmFjY291bnQscXVhbnRpdHk6cGF5b3V0UXR5fSl9cGF5VHhDb3VudCs9MX19fXN0b3JlUGVuZGluZy5sZW5ndGg+MCYmYXdhaXQgYXBpLmRiLmluc2VydCgicGVuZGluZ1BheW1lbnRzIix7ZHVlVGltZTpibG9ja0RhdGUuZ2V0VGltZSgpLGFjY291bnRzOnN0b3JlUGVuZGluZ30pfX11cERpc3QubnVtVGlja3NMZWZ0LT0xLHVwRGlzdC5sYXN0VGlja1RpbWU9YmxvY2tEYXRlLmdldFRpbWUoKSxhd2FpdCBhcGkuZGIudXBkYXRlKCJiYXRjaGVzIix1cERpc3QpfWFzeW5jIGZ1bmN0aW9uIHJ1blBlbmRpbmdQYXkocGVuZGluZ1BheSxwYXJhbXMpe2ZvcihsZXQgaT1NYXRoLm1pbihwYXJhbXMubWF4VHJhbnNmZXJMaW1pdCxwZW5kaW5nUGF5LmFjY291bnRzLmxlbmd0aCktMTtpPj0wO2ktPTEpe2NvbnN0IHA9cGVuZGluZ1BheS5hY2NvdW50c1tpXTthd2FpdCBwYXlSZWNpcGllbnQocC5hY2NvdW50LHAuc3ltYm9sLHAucXVhbnRpdHkpJiYocGVuZGluZ1BheS5hY2NvdW50cy5zcGxpY2UoaSwxKSxhcGkuZW1pdCgicGF5bWVudCIsey4uLnAscGVuZGluZzohMH0pKX0wPT09cGVuZGluZ1BheS5hY2NvdW50cy5sZW5ndGg/YXdhaXQgYXBpLmRiLnJlbW92ZSgicGVuZGluZ1BheW1lbnRzIixwZW5kaW5nUGF5KTphd2FpdCBhcGkuZGIudXBkYXRlKCJwZW5kaW5nUGF5bWVudHMiLHBlbmRpbmdQYXkpfWFjdGlvbnMuY3JlYXRlU1NDPWFzeW5jKCk9PntpZighMT09PWF3YWl0IGFwaS5kYi50YWJsZUV4aXN0cygiYmF0Y2hlcyIpKXthd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoImJhdGNoZXMiKSxhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoInBhcmFtcyIpO2NvbnN0IHBhcmFtcz17ZGlzdENyZWF0aW9uRmVlOiI1MDAiLGRpc3RVcGRhdGVGZWU6IjI1MCJ9O2F3YWl0IGFwaS5kYi5pbnNlcnQoInBhcmFtcyIscGFyYW1zKX1lbHNle2NvbnN0IHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7fSk7aWYocGFyYW1zLnVwZGF0ZUluZGV4KXtpZigxPT09cGFyYW1zLnVwZGF0ZUluZGV4KXtjb25zdCBjbGVhclBlbmRpbmc9YXdhaXQgYXBpLmRiLmZpbmQoInBlbmRpbmdQYXltZW50cyIse30pO2ZvcihsZXQgaT0wO2k8Y2xlYXJQZW5kaW5nLmxlbmd0aDtpKz0xKWF3YWl0IGFwaS5kYi5yZW1vdmUoInBlbmRpbmdQYXltZW50cyIsY2xlYXJQZW5kaW5nW2ldKTtjb25zdCBzeW5jRGlzdHM9YXdhaXQgYXBpLmRiLmZpbmQoImJhdGNoZXMiLHt9KTtmb3IobGV0IGk9MDtpPHN5bmNEaXN0cy5sZW5ndGg7aSs9MSl7Y29uc3QgZGlzdD1zeW5jRGlzdHNbaV07aWYoZGlzdC50b2tlbkJhbGFuY2VzKXtsZXQgdXBkYXRlPSExO2NvbnN0IGhpdmVJbmRleD1kaXN0LnRva2VuQmFsYW5jZXMuZmluZEluZGV4KCh0PT4iU1dBUC5ISVZFIj09PXQuc3ltYm9sKSk7LTEhPT1oaXZlSW5kZXgmJihkaXN0LnRva2VuQmFsYW5jZXNbaGl2ZUluZGV4XS5xdWFudGl0eT1hcGkuQmlnTnVtYmVyKCIwIikudG9GaXhlZCg4KSx1cGRhdGU9ITApO2NvbnN0IHNpbUluZGV4PWRpc3QudG9rZW5CYWxhbmNlcy5maW5kSW5kZXgoKHQ9PiJTSU0iPT09dC5zeW1ib2wpKTstMSE9PXNpbUluZGV4JiYoZGlzdC50b2tlbkJhbGFuY2VzW3NpbUluZGV4XS5xdWFudGl0eT1hcGkuQmlnTnVtYmVyKCIwIikudG9GaXhlZCgzKSx1cGRhdGU9ITApLHVwZGF0ZSYmYXdhaXQgYXBpLmRiLnVwZGF0ZSgiYmF0Y2hlcyIsZGlzdCl9fXBhcmFtcy51cGRhdGVJbmRleD0yLGF3YWl0IGFwaS5kYi51cGRhdGUoInBhcmFtcyIscGFyYW1zKX19ZWxzZSBhd2FpdCBhcGkuZGIuYWRkSW5kZXhlcygiYmF0Y2hlcyIsW3tuYW1lOiJsYXN0VGlja1RpbWUiLGluZGV4OntsYXN0VGlja1RpbWU6MX19XSksYXdhaXQgYXBpLmRiLmNyZWF0ZVRhYmxlKCJwZW5kaW5nUGF5bWVudHMiLFsiZHVlVGltZSJdKSxwYXJhbXMuZGlzdFRpY2tIb3Vycz0iMjQiLHBhcmFtcy5tYXhEaXN0cmlidXRpb25zTGltaXQ9MSxwYXJhbXMubWF4VHJhbnNmZXJMaW1pdD01MCxwYXJhbXMucHJvY2Vzc1F1ZXJ5TGltaXQ9MWUzLHBhcmFtcy51cGRhdGVJbmRleD0xLGF3YWl0IGFwaS5kYi51cGRhdGUoInBhcmFtcyIscGFyYW1zKX19LGFjdGlvbnMudXBkYXRlUGFyYW1zPWFzeW5jIHBheWxvYWQ9PntpZihhcGkuc2VuZGVyIT09YXBpLm93bmVyKXJldHVybjtjb25zdHtkaXN0Q3JlYXRpb25GZWU6ZGlzdENyZWF0aW9uRmVlLGRpc3RVcGRhdGVGZWU6ZGlzdFVwZGF0ZUZlZSxkaXN0VGlja0hvdXJzOmRpc3RUaWNrSG91cnMsbWF4RGlzdHJpYnV0aW9uc0xpbWl0Om1heERpc3RyaWJ1dGlvbnNMaW1pdCxtYXhUcmFuc2ZlckxpbWl0Om1heFRyYW5zZmVyTGltaXQscHJvY2Vzc1F1ZXJ5TGltaXQ6cHJvY2Vzc1F1ZXJ5TGltaXR9PXBheWxvYWQscGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KTtpZihkaXN0Q3JlYXRpb25GZWUpe2lmKCFhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgZGlzdENyZWF0aW9uRmVlJiYhYXBpLkJpZ051bWJlcihkaXN0Q3JlYXRpb25GZWUpLmlzTmFOKCkmJmFwaS5CaWdOdW1iZXIoZGlzdENyZWF0aW9uRmVlKS5ndGUoMCksImludmFsaWQgZGlzdENyZWF0aW9uRmVlIikpcmV0dXJuO3BhcmFtcy5kaXN0Q3JlYXRpb25GZWU9ZGlzdENyZWF0aW9uRmVlfWlmKGRpc3RVcGRhdGVGZWUpe2lmKCFhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgZGlzdFVwZGF0ZUZlZSYmIWFwaS5CaWdOdW1iZXIoZGlzdFVwZGF0ZUZlZSkuaXNOYU4oKSYmYXBpLkJpZ051bWJlcihkaXN0VXBkYXRlRmVlKS5ndGUoMCksImludmFsaWQgZGlzdFVwZGF0ZUZlZSIpKXJldHVybjtwYXJhbXMuZGlzdFVwZGF0ZUZlZT1kaXN0VXBkYXRlRmVlfWlmKGRpc3RUaWNrSG91cnMpe2lmKCFhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgZGlzdFRpY2tIb3VycyYmYXBpLkJpZ051bWJlcihkaXN0VGlja0hvdXJzKS5pc0ludGVnZXIoKSYmYXBpLkJpZ051bWJlcihkaXN0VGlja0hvdXJzKS5ndGUoMSksImludmFsaWQgZGlzdFRpY2tIb3VycyIpKXJldHVybjtwYXJhbXMuZGlzdFRpY2tIb3Vycz1kaXN0VGlja0hvdXJzfWlmKG1heERpc3RyaWJ1dGlvbnNMaW1pdCl7aWYoIWFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBtYXhEaXN0cmlidXRpb25zTGltaXQmJmFwaS5CaWdOdW1iZXIobWF4RGlzdHJpYnV0aW9uc0xpbWl0KS5pc0ludGVnZXIoKSYmYXBpLkJpZ051bWJlcihtYXhEaXN0cmlidXRpb25zTGltaXQpLmd0ZSgxKSwiaW52YWxpZCBtYXhEaXN0cmlidXRpb25zTGltaXQiKSlyZXR1cm47cGFyYW1zLm1heERpc3RyaWJ1dGlvbnNMaW1pdD1hcGkuQmlnTnVtYmVyKG1heERpc3RyaWJ1dGlvbnNMaW1pdCkudG9OdW1iZXIoKX1pZihtYXhUcmFuc2ZlckxpbWl0KXtpZighYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIG1heFRyYW5zZmVyTGltaXQmJmFwaS5CaWdOdW1iZXIobWF4VHJhbnNmZXJMaW1pdCkuaXNJbnRlZ2VyKCkmJmFwaS5CaWdOdW1iZXIobWF4VHJhbnNmZXJMaW1pdCkuZ3RlKDEpLCJpbnZhbGlkIG1heFRyYW5zZmVyTGltaXQiKSlyZXR1cm47cGFyYW1zLm1heFRyYW5zZmVyTGltaXQ9YXBpLkJpZ051bWJlcihtYXhUcmFuc2ZlckxpbWl0KS50b051bWJlcigpfWlmKHByb2Nlc3NRdWVyeUxpbWl0KXtpZighYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHByb2Nlc3NRdWVyeUxpbWl0JiZhcGkuQmlnTnVtYmVyKHByb2Nlc3NRdWVyeUxpbWl0KS5pc0ludGVnZXIoKSYmYXBpLkJpZ051bWJlcihwcm9jZXNzUXVlcnlMaW1pdCkuZ3RlKDEpLCJpbnZhbGlkIHByb2Nlc3NRdWVyeUxpbWl0IikpcmV0dXJuO3BhcmFtcy5wcm9jZXNzUXVlcnlMaW1pdD1hcGkuQmlnTnVtYmVyKHByb2Nlc3NRdWVyeUxpbWl0KS50b051bWJlcigpfWF3YWl0IGFwaS5kYi51cGRhdGUoInBhcmFtcyIscGFyYW1zKX0sYWN0aW9ucy5jcmVhdGU9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3N0cmF0ZWd5OnN0cmF0ZWd5LG51bVRpY2tzOm51bVRpY2tzLGV4Y2x1ZGVBY2NvdW50OmV4Y2x1ZGVBY2NvdW50LHRva2VuUGFpcjp0b2tlblBhaXIsYm9udXNDdXJ2ZTpib251c0N1cnZlLHRva2VuTWluUGF5b3V0OnRva2VuTWluUGF5b3V0LHRva2VuUmVjaXBpZW50czp0b2tlblJlY2lwaWVudHMsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZCxwYXJhbXM9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBhcmFtcyIse30pLHtkaXN0Q3JlYXRpb25GZWU6ZGlzdENyZWF0aW9uRmVlfT1wYXJhbXMsdXRpbGl0eVRva2VuQmFsYW5jZT1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsImJhbGFuY2VzIix7YWNjb3VudDphcGkuc2VuZGVyLHN5bWJvbDoiQkVFIn0pLGF1dGhvcml6ZWRDcmVhdGlvbj0hKCFhcGkuQmlnTnVtYmVyKGRpc3RDcmVhdGlvbkZlZSkubHRlKDApJiZhcGkuc2VuZGVyIT09YXBpLm93bmVyKXx8dXRpbGl0eVRva2VuQmFsYW5jZSYmYXBpLkJpZ051bWJlcih1dGlsaXR5VG9rZW5CYWxhbmNlLmJhbGFuY2UpLmd0ZShkaXN0Q3JlYXRpb25GZWUpO2lmKGFwaS5hc3NlcnQoYXV0aG9yaXplZENyZWF0aW9uLCJ5b3UgbXVzdCBoYXZlIGVub3VnaCB0b2tlbnMgdG8gY292ZXIgdGhlIGNyZWF0aW9uIGZlZSIpJiZhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSB0cmFuc2FjdGlvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSYmYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHN0cmF0ZWd5JiYtMSE9PURpc3RTdHJhdGVneS5pbmRleE9mKHN0cmF0ZWd5KSwiaW52YWxpZCBzdHJhdGVneSIpJiZhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgbnVtVGlja3MmJmFwaS5CaWdOdW1iZXIobnVtVGlja3MpLmlzSW50ZWdlcigpJiZhcGkuQmlnTnVtYmVyKG51bVRpY2tzKS5ndCgwKSYmYXBpLkJpZ051bWJlcihudW1UaWNrcykubHRlKDU1NTUpLCJudW1UaWNrcyBtdXN0IGJlIGEgbnVtYmVyIGJldHdlZW4gMSBhbmQgNTU1NSIpKXtjb25zdCBibG9ja0RhdGU9bmV3IERhdGUoYCR7YXBpLmhpdmVCbG9ja1RpbWVzdGFtcH0uMDAwWmApLG5ld0Rpc3Q9e3N0cmF0ZWd5OnN0cmF0ZWd5LG51bVRpY2tzOm51bVRpY2tzLG51bVRpY2tzTGVmdDphcGkuQmlnTnVtYmVyKG51bVRpY2tzKS50b051bWJlcigpLGFjdGl2ZTohMSxjcmVhdG9yOmFwaS5zZW5kZXIsbGFzdFRpY2tUaW1lOmJsb2NrRGF0ZS5nZXRUaW1lKCl9O2lmKCJmaXhlZCI9PT1zdHJhdGVneSYmYXdhaXQgdmFsaWRhdGVNaW5QYXlvdXQodG9rZW5NaW5QYXlvdXQpJiZhd2FpdCB2YWxpZGF0ZVJlY2lwaWVudHMocGFyYW1zLHRva2VuUmVjaXBpZW50cykpbmV3RGlzdC50b2tlbk1pblBheW91dD10b2tlbk1pblBheW91dCxuZXdEaXN0LnRva2VuUmVjaXBpZW50cz10b2tlblJlY2lwaWVudHM7ZWxzZXtpZigicG9vbCIhPT1zdHJhdGVneSlyZXR1cm47aWYoIWFwaS5hc3NlcnQoYXdhaXQgdmFsaWRhdGVQb29sKHRva2VuUGFpciksImludmFsaWQgdG9rZW5QYWlyIikpcmV0dXJuO2lmKHZvaWQgMCE9PWV4Y2x1ZGVBY2NvdW50JiYhYXBpLmFzc2VydChBcnJheS5pc0FycmF5KGV4Y2x1ZGVBY2NvdW50KSwiZXhjbHVkZUFjY291bnQgbXVzdCBiZSBhbiBhcnJheSIpKXJldHVybjtpZih2b2lkIDAhPT1ib251c0N1cnZlJiYhdmFsaWRhdGVCb251c0N1cnZlKGJvbnVzQ3VydmUpKXJldHVybjtuZXdEaXN0LnRva2VuUGFpcj10b2tlblBhaXIsbmV3RGlzdC5leGNsdWRlQWNjb3VudD1leGNsdWRlQWNjb3VudHx8W10sbmV3RGlzdC5ib251c0N1cnZlPWJvbnVzQ3VydmV8fHt9fWNvbnN0IGNyZWF0ZWREaXN0PWF3YWl0IGFwaS5kYi5pbnNlcnQoImJhdGNoZXMiLG5ld0Rpc3QpO2FwaS5zZW5kZXIhPT1hcGkub3duZXImJmFwaS5CaWdOdW1iZXIoZGlzdENyZWF0aW9uRmVlKS5ndCgwKSYmYXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJ0b2tlbnMiLCJ0cmFuc2ZlciIse3RvOiJudWxsIixzeW1ib2w6IkJFRSIscXVhbnRpdHk6ZGlzdENyZWF0aW9uRmVlLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9KSxhcGkuZW1pdCgiY3JlYXRlIix7aWQ6Y3JlYXRlZERpc3QuX2lkfSl9fSxhY3Rpb25zLnVwZGF0ZT1hc3luYyBwYXlsb2FkPT57Y29uc3R7aWQ6aWQsbnVtVGlja3M6bnVtVGlja3MsZXhjbHVkZUFjY291bnQ6ZXhjbHVkZUFjY291bnQsdG9rZW5QYWlyOnRva2VuUGFpcixib251c0N1cnZlOmJvbnVzQ3VydmUsdG9rZW5NaW5QYXlvdXQ6dG9rZW5NaW5QYXlvdXQsdG9rZW5SZWNpcGllbnRzOnRva2VuUmVjaXBpZW50cyxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkLHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7fSkse2Rpc3RVcGRhdGVGZWU6ZGlzdFVwZGF0ZUZlZX09cGFyYW1zLHV0aWxpdHlUb2tlbkJhbGFuY2U9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJiYWxhbmNlcyIse2FjY291bnQ6YXBpLnNlbmRlcixzeW1ib2w6IkJFRSJ9KSxhdXRob3JpemVkQ3JlYXRpb249ISghYXBpLkJpZ051bWJlcihkaXN0VXBkYXRlRmVlKS5sdGUoMCkmJmFwaS5zZW5kZXIhPT1hcGkub3duZXIpfHx1dGlsaXR5VG9rZW5CYWxhbmNlJiZhcGkuQmlnTnVtYmVyKHV0aWxpdHlUb2tlbkJhbGFuY2UuYmFsYW5jZSkuZ3RlKGRpc3RVcGRhdGVGZWUpO2lmKGFwaS5hc3NlcnQoYXV0aG9yaXplZENyZWF0aW9uLCJ5b3UgbXVzdCBoYXZlIGVub3VnaCB0b2tlbnMgdG8gY292ZXIgdGhlIHVwZGF0ZSBmZWUiKSYmYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgdHJhbnNhY3Rpb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5Iikpe2NvbnN0IGV4RGlzdD1hd2FpdCBhcGkuZGIuZmluZE9uZSgiYmF0Y2hlcyIse19pZDppZH0pO2lmKGFwaS5hc3NlcnQoZXhEaXN0LCJkaXN0cmlidXRpb24gbm90IGZvdW5kIikmJmFwaS5hc3NlcnQoYXBpLnNlbmRlcj09PWFwaS5vd25lcnx8YXBpLnNlbmRlcj09PWV4RGlzdC5jcmVhdG9yLCJtdXN0IGJlIG93bmVyIG9yIGNyZWF0b3IiKSl7aWYobnVtVGlja3MmJmFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBudW1UaWNrcyYmYXBpLkJpZ051bWJlcihudW1UaWNrcykuaXNJbnRlZ2VyKCkmJmFwaS5CaWdOdW1iZXIobnVtVGlja3MpLmd0KDApJiZhcGkuQmlnTnVtYmVyKG51bVRpY2tzKS5sdGUoNTU1NSksIm51bVRpY2tzIG11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiAxIGFuZCA1NTU1IikmJihleERpc3QubnVtVGlja3M9bnVtVGlja3MsZXhEaXN0Lm51bVRpY2tzTGVmdD1hcGkuQmlnTnVtYmVyKG51bVRpY2tzKS50b051bWJlcigpKSwiZml4ZWQiPT09ZXhEaXN0LnN0cmF0ZWd5KXtpZighYXdhaXQgdmFsaWRhdGVNaW5QYXlvdXQodG9rZW5NaW5QYXlvdXQpfHwhYXdhaXQgdmFsaWRhdGVSZWNpcGllbnRzKHBhcmFtcyx0b2tlblJlY2lwaWVudHMpKXJldHVybjtleERpc3QudG9rZW5NaW5QYXlvdXQ9dG9rZW5NaW5QYXlvdXQsZXhEaXN0LnRva2VuUmVjaXBpZW50cz10b2tlblJlY2lwaWVudHN9ZWxzZXtpZigicG9vbCIhPT1leERpc3Quc3RyYXRlZ3kpcmV0dXJuO3ZvaWQgMCE9PWV4Y2x1ZGVBY2NvdW50JiZhcGkuYXNzZXJ0KEFycmF5LmlzQXJyYXkoZXhjbHVkZUFjY291bnQpLCJleGNsdWRlQWNjb3VudCBtdXN0IGJlIGFuIGFycmF5IikmJihleERpc3QuZXhjbHVkZUFjY291bnQ9ZXhjbHVkZUFjY291bnQpLHZvaWQgMCE9PXRva2VuUGFpciYmYXBpLmFzc2VydChhd2FpdCB2YWxpZGF0ZVBvb2wodG9rZW5QYWlyKSwiaW52YWxpZCB0b2tlblBhaXIiKSYmKGV4RGlzdC50b2tlblBhaXI9dG9rZW5QYWlyKSx2b2lkIDAhPT1ib251c0N1cnZlJiZ2YWxpZGF0ZUJvbnVzQ3VydmUoYm9udXNDdXJ2ZSkmJihleERpc3QuYm9udXNDdXJ2ZT1ib251c0N1cnZlKX1hd2FpdCBhcGkuZGIudXBkYXRlKCJiYXRjaGVzIixleERpc3QpLGFwaS5zZW5kZXIhPT1hcGkub3duZXImJmFwaS5CaWdOdW1iZXIoZGlzdFVwZGF0ZUZlZSkuZ3QoMCkmJmF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgidG9rZW5zIiwidHJhbnNmZXIiLHt0bzoibnVsbCIsc3ltYm9sOiJCRUUiLHF1YW50aXR5OmRpc3RVcGRhdGVGZWUsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX0pLGFwaS5lbWl0KCJ1cGRhdGUiLHtpZDpleERpc3QuX2lkfSl9fX0sYWN0aW9ucy5zZXRBY3RpdmU9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e2lkOmlkLGFjdGl2ZTphY3RpdmUsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZighYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgY3VzdG9tX2pzb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5IikpcmV0dXJuO2NvbnN0IGRpc3Q9YXdhaXQgYXBpLmRiLmZpbmRPbmUoImJhdGNoZXMiLHtfaWQ6aWR9KTthcGkuYXNzZXJ0KGRpc3QsImRpc3RyaWJ1dGlvbiBpZCBub3QgZm91bmQiKSYmYXBpLmFzc2VydChkaXN0LmNyZWF0b3I9PT1hcGkuc2VuZGVyfHxhcGkub3duZXI9PT1hcGkuc2VuZGVyLCJ5b3UgbXVzdCBiZSB0aGUgY3JlYXRvciBvZiB0aGlzIGRpc3RyaWJ1dGlvbiIpJiYoZGlzdC5hY3RpdmU9ISFhY3RpdmUsYXdhaXQgYXBpLmRiLnVwZGF0ZSgiYmF0Y2hlcyIsZGlzdCksYXBpLmVtaXQoInNldEFjdGl2ZSIse2lkOmRpc3QuX2lkLGFjdGl2ZTpkaXN0LmFjdGl2ZX0pKX0sYWN0aW9ucy5kZXBvc2l0PWFzeW5jIHBheWxvYWQ9Pntjb25zdHtpZDppZCxzeW1ib2w6c3ltYm9sLHF1YW50aXR5OnF1YW50aXR5LGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQsZGVwVG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJ0b2tlbnMiLHtzeW1ib2w6c3ltYm9sfSk7aWYoIWFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIGN1c3RvbV9qc29uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpfHwhYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHF1YW50aXR5JiZhcGkuQmlnTnVtYmVyKHF1YW50aXR5KS5ndCgwKSwiaW52YWxpZCBxdWFudGl0eSIpfHwhYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKHF1YW50aXR5KS5kcCgpPD1kZXBUb2tlbi5wcmVjaXNpb24sInF1YW50aXR5IHByZWNpc2lvbiBtaXNtYXRjaCIpKXJldHVybjtjb25zdCBkaXN0PWF3YWl0IGFwaS5kYi5maW5kT25lKCJiYXRjaGVzIix7X2lkOmlkfSk7aWYoYXBpLmFzc2VydChkaXN0LCJkaXN0cmlidXRpb24gaWQgbm90IGZvdW5kIikmJmFwaS5hc3NlcnQoZGlzdC5hY3RpdmUsImRpc3RyaWJ1dGlvbiBtdXN0IGJlIGFjdGl2ZSB0byBkZXBvc2l0Iikpe2lmKCJmaXhlZCI9PT1kaXN0LnN0cmF0ZWd5JiYhYXBpLmFzc2VydCh2YWxpZGF0ZUluY29taW5nVG9rZW4oZGlzdCxzeW1ib2wpLGAke3N5bWJvbH0gaXMgbm90IGFjY2VwdGVkIGJ5IHRoaXMgZGlzdHJpYnV0aW9uYCkpcmV0dXJuO2NvbnN0IHJlcz1hd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoInRva2VucyIsInRyYW5zZmVyVG9Db250cmFjdCIse3N5bWJvbDpzeW1ib2wscXVhbnRpdHk6cXVhbnRpdHksdG86ImRpc3RyaWJ1dGlvbiJ9KTt2b2lkIDA9PT1yZXMuZXJyb3JzJiZyZXMuZXZlbnRzJiZ2b2lkIDAhPT1yZXMuZXZlbnRzLmZpbmQoKGVsPT4idG9rZW5zIj09PWVsLmNvbnRyYWN0JiYidHJhbnNmZXJUb0NvbnRyYWN0Ij09PWVsLmV2ZW50JiZlbC5kYXRhLmZyb209PT1hcGkuc2VuZGVyJiYiZGlzdHJpYnV0aW9uIj09PWVsLmRhdGEudG8mJmFwaS5CaWdOdW1iZXIoZWwuZGF0YS5xdWFudGl0eSkuZXEocXVhbnRpdHkpKSkmJihhd2FpdCB1cGRhdGVUb2tlbkJhbGFuY2VzKGRpc3QsZGVwVG9rZW4scXVhbnRpdHkpLGFwaS5lbWl0KCJkZXBvc2l0Iix7ZGlzdElkOmlkLHN5bWJvbDpzeW1ib2wscXVhbnRpdHk6cXVhbnRpdHl9KSl9fSxhY3Rpb25zLnJlY2VpdmVEdGZUb2tlbnM9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e2RhdGE6ZGF0YSxzeW1ib2w6c3ltYm9sLHF1YW50aXR5OnF1YW50aXR5LGNhbGxpbmdDb250cmFjdEluZm86Y2FsbGluZ0NvbnRyYWN0SW5mb309cGF5bG9hZDtpZighYXBpLmFzc2VydChjYWxsaW5nQ29udHJhY3RJbmZvJiYidG9rZW5mdW5kcyI9PT1jYWxsaW5nQ29udHJhY3RJbmZvLm5hbWUsIm5vdCBhdXRob3JpemVkIikpcmV0dXJuO2lmKCFhcGkuYXNzZXJ0KCJvYmplY3QiPT10eXBlb2YgZGF0YSYmIk9iamVjdCI9PT1kYXRhLmNvbnN0cnVjdG9yLm5hbWUmJiJkaXN0SWQiaW4gZGF0YSYmInN0cmluZyI9PXR5cGVvZiBkYXRhLmRpc3RJZCYmYXBpLkJpZ051bWJlcihkYXRhLmRpc3RJZCkuaXNJbnRlZ2VyKCksImludmFsaWQgRFRGIHBheWxvYWQiKSlyZXR1cm47Y29uc3QgZGlzdD1hd2FpdCBhcGkuZGIuZmluZE9uZSgiYmF0Y2hlcyIse19pZDphcGkuQmlnTnVtYmVyKGRhdGEuZGlzdElkKS50b051bWJlcigpfSk7aWYoYXBpLmFzc2VydChkaXN0LCJkaXN0cmlidXRpb24gaWQgbm90IGZvdW5kIikmJmFwaS5hc3NlcnQoZGlzdC5hY3RpdmUsImRpc3RyaWJ1dGlvbiBtdXN0IGJlIGFjdGl2ZSB0byBkZXBvc2l0Iikpe2lmKCJmaXhlZCI9PT1kaXN0LnN0cmF0ZWd5JiYhYXBpLmFzc2VydCh2YWxpZGF0ZUluY29taW5nVG9rZW4oZGlzdCxzeW1ib2wpLGAke3N5bWJvbH0gaXMgbm90IGFjY2VwdGVkIGJ5IHRoaXMgZGlzdHJpYnV0aW9uYCkpcmV0dXJuO2NvbnN0IGRlcFRva2VuPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOnN5bWJvbH0pO2F3YWl0IHVwZGF0ZVRva2VuQmFsYW5jZXMoZGlzdCxkZXBUb2tlbixxdWFudGl0eSksYXBpLmVtaXQoInJlY2VpdmVEdGZUb2tlbnMiLHtkaXN0SWQ6ZGF0YS5kaXN0SWQsc3ltYm9sOnN5bWJvbCxxdWFudGl0eTpxdWFudGl0eX0pfX0sYWN0aW9ucy5mbHVzaD1hc3luYyBwYXlsb2FkPT57Y29uc3R7aWQ6aWQsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZCxkaXN0PWF3YWl0IGFwaS5kYi5maW5kT25lKCJiYXRjaGVzIix7X2lkOmlkfSk7aWYoYXBpLmFzc2VydChkaXN0LCJkaXN0cmlidXRpb24gaWQgbm90IGZvdW5kIikmJmFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIHRyYW5zYWN0aW9uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiZhcGkuYXNzZXJ0KGFwaS5zZW5kZXI9PT1hcGkub3duZXJ8fGFwaS5zZW5kZXI9PT1kaXN0LmNyZWF0b3IsIm11c3QgYmUgb3duZXIgb3IgY3JlYXRvciIpKXtjb25zdCBwYXJhbXM9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBhcmFtcyIse30pO2Rpc3QubnVtVGlja3NMZWZ0PTEsYXdhaXQgYXBpLmRiLnVwZGF0ZSgiYmF0Y2hlcyIsZGlzdCksYXdhaXQgcnVuRGlzdHJpYnV0aW9uKGRpc3QscGFyYW1zLCEwKSxhcGkuZW1pdCgiZmx1c2giLHtkaXN0SWQ6ZGlzdC5faWR9KX19LGFjdGlvbnMuY2hlY2tQZW5kaW5nRGlzdHJpYnV0aW9ucz1hc3luYygpPT57aWYoYXBpLmFzc2VydCgibnVsbCI9PT1hcGkuc2VuZGVyLCJub3QgYXV0aG9yaXplZCIpKXtjb25zdCBwYXJhbXM9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBhcmFtcyIse30pLGJsb2NrRGF0ZT1uZXcgRGF0ZShgJHthcGkuaGl2ZUJsb2NrVGltZXN0YW1wfS4wMDBaYCksdGlja1RpbWU9YXBpLkJpZ051bWJlcihibG9ja0RhdGUuZ2V0VGltZSgpKS5taW51cygzNjAwKnBhcmFtcy5kaXN0VGlja0hvdXJzKjFlMykudG9OdW1iZXIoKSxwZW5kaW5nRGlzdHM9YXdhaXQgYXBpLmRiLmZpbmQoImJhdGNoZXMiLHthY3RpdmU6ITAsbnVtVGlja3NMZWZ0OnskZ3Q6MH0sInRva2VuQmFsYW5jZXMuMCI6eyRleGlzdHM6ITB9LGxhc3RUaWNrVGltZTp7JGx0ZTp0aWNrVGltZX19LHBhcmFtcy5tYXhEaXN0cmlidXRpb25zTGltaXQsMCxbe2luZGV4OiJsYXN0VGlja1RpbWUiLGRlc2NlbmRpbmc6ITF9LHtpbmRleDoiX2lkIixkZXNjZW5kaW5nOiExfV0pO2lmKHBlbmRpbmdEaXN0cy5sZW5ndGg+MClmb3IobGV0IGk9MDtpPHBlbmRpbmdEaXN0cy5sZW5ndGg7aSs9MSlhd2FpdCBydW5EaXN0cmlidXRpb24ocGVuZGluZ0Rpc3RzW2ldLHBhcmFtcyk7ZWxzZXtjb25zdCBwZW5kaW5nUGF5PWF3YWl0IGFwaS5kYi5maW5kKCJwZW5kaW5nUGF5bWVudHMiLHtkdWVUaW1lOnskbHQ6YmxvY2tEYXRlLmdldFRpbWUoKX19LHBhcmFtcy5tYXhEaXN0cmlidXRpb25zTGltaXQsMCxbe2luZGV4OiJkdWVUaW1lIixkZXNjZW5kaW5nOiExfSx7aW5kZXg6Il9pZCIsZGVzY2VuZGluZzohMX1dKTtpZihwZW5kaW5nUGF5Lmxlbmd0aD4wKWZvcihsZXQgaT0wO2k8cGVuZGluZ1BheS5sZW5ndGg7aSs9MSlhd2FpdCBydW5QZW5kaW5nUGF5KHBlbmRpbmdQYXlbaV0scGFyYW1zKX19fTs="}}}
RE: beedollar Smart Contract