tx · 68G33TYAVsxQs4otucZr4wBknyGhszvmJcG1m8kiJ9RV 3N3BgaByeEjQ2cpoYqusyjmndGDpqX7rg4E: -0.02400000 Waves 2022.07.12 17:20 [2136618] smart account 3N3BgaByeEjQ2cpoYqusyjmndGDpqX7rg4E > SELF 0.00000000 Waves
{ "type": 13, "id": "68G33TYAVsxQs4otucZr4wBknyGhszvmJcG1m8kiJ9RV", "fee": 2400000, "feeAssetId": null, "timestamp": 1657635662739, "version": 1, "sender": "3N3BgaByeEjQ2cpoYqusyjmndGDpqX7rg4E", "senderPublicKey": "CyYB8W6Hen1XmJwa8PyWXrVSDgYUn1KAagXDtaj4DAPG", "proofs": [ "YJXgS4tRREcvModeRpCU17xJcUq1BJrrBnzmehBnrARSiPZS55dY7XRNKobD91YhdejQmoCyrRNGKyqe6LN5ooR" ], "script": "base64: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DmtleVRvdGFsTG9ja2VkAAAAAQAAABVpbnRlcm5hbEJhc2V0QXNzZXRTdHIJAAEsAAAAAgIAAAAXJXMlcyVkX190b3RhbF9fbG9ja2VkX18FAAAAFWludGVybmFsQmFzZXRBc3NldFN0cgEAAAAUa2V5VG90YWxMb2NrZWRCeVVzZXIAAAACAAAAFGludGVybmFsQmFzZUFzc2V0U3RyAAAADnVzZXJBZGRyZXNzU3RyCQAEuQAAAAIJAARMAAAAAgIAAAAXJXMlcyVkJXNfX3RvdGFsX19sb2NrZWQJAARMAAAAAgUAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIJAARMAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIFAAAAA25pbAUAAAADU0VQAQAAAB9rZXlNYXBwaW5nc0ludGVybmFsMmJhc2VBc3NldElkAAAAAQAAABFpbnRlcm5hbEJhc2VBc3NldAkAASwAAAACAgAAACglcyVzJWRfX21hcHBpbmdzX19pbnRlcm5hbDJiYXNlQXNzZXRJZF9fCQABpAAAAAEFAAAAEWludGVybmFsQmFzZUFzc2V0AQAAAB9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkAAAAAQAAAAxiYXNlQXNzZXRTdHIJAAEsAAAAAgIAAAAoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUAAAAMYmFzZUFzc2V0U3RyAQAAABxrZXlNYXBwaW5nc1NoYXJlMmJhc2VBc3NldElkAAAAAQAAAA1zaGFyZUFzc2V0U3RyCQABLAAAAAICAAAAJSVzJXMlc19fbWFwcGluZ3NfX3NoYXJlMmJhc2VBc3NldElkX18FAAAADXNoYXJlQXNzZXRTdHIBAAAAHGtleU1hcHBpbmdzQmFzZUFzc2V0MnNoYXJlSWQAAAABAAAADGJhc2VBc3NldFN0cgkAASwAAAACAgAAACUlcyVzJXNfX21hcHBpbmdzX19iYXNlQXNzZXQyc2hhcmVJZF9fBQAAAAxiYXNlQXNzZXRTdHIBAAAAF2tleVNodXRkb3duUHV0T3BlcmF0aW9uAAAAAQAAABRpbnRlcm5hbEJhc2VBc3NldFN0cgkAASwAAAACAgAAABclcyVzJWRfX3NodXRkb3duX19wdXRfXwUAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIBAAAAEmtleVNodXRkb3duTWFuYWdlcgAAAAEAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIJAAEsAAAAAgIAAAAbJXMlcyVkX19zaHV0ZG93bl9fbWFuYWdlcl9fBQAAABRpbnRlcm5hbEJhc2VBc3NldFN0cgEAAAATYXNzZXRzU3RvcmVDb250cmFjdAAAAAAJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAAAV2YWx1ZQAAAAEJAAQiAAAAAQkBAAAAFmtleUFzc2V0c1N0b3JlQ29udHJhY3QAAAAAAAAAABJJZHhDZmdTaGFyZUFzc2V0SWQAAAAAAAAAAAEAAAAAF0lkeENmZ0ludGVybmFsQmFzZUFzc2V0AAAAAAAAAAACAAAAABxJZHhDZmdEZWNpbWFsc011bHRCb3RoQXNzZXRzAAAAAAAAAAADAAAAABdJZHhDZmdEZWNpbWFsc011bHRQcmljZQAAAAAAAAAABAAAAAAUSWR4Q2ZnR2V0RGVsYXlCbG9ja3MAAAAAAAAAAAUBAAAADGRhdGFBc3NldENmZwAAAAUAAAANc2hhcmVBc3NldFN0cgAAABRpbnRlcm5hbEJhc2VBc3NldFN0cgAAABZkZWNpbWFsc011bHRCb3RoQXNzZXRzAAAAEWRlY2ltYWxzTXVsdFByaWNlAAAAEGdldERlbGF5SW5CbG9ja3MJAAS5AAAAAgkABEwAAAACAgAAAAolcyVkJWQlZCVkCQAETAAAAAIFAAAADXNoYXJlQXNzZXRTdHIJAARMAAAAAgUAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIJAARMAAAAAgkAAaQAAAABBQAAABZkZWNpbWFsc011bHRCb3RoQXNzZXRzCQAETAAAAAIJAAGkAAAAAQUAAAARZGVjaW1hbHNNdWx0UHJpY2UJAARMAAAAAgkAAaQAAAABBQAAABBnZXREZWxheUluQmxvY2tzBQAAAANuaWwFAAAAA1NFUAAAAAATSWR4VG90YWxMb2NrZWRTaGFyZQAAAAAAAAAAAQAAAAASSWR4VG90YWxMb2NrZWRCYXNlAAAAAAAAAAACAQAAAA9kYXRhVG90YWxMb2NrZWQAAAACAAAAEHNoYXJlQXNzZXRBbW91bnQAAAAPYmFzZUFzc2V0QW1vdW50CQAEuQAAAAIJAARMAAAAAgIAAAAEJWQlZAkABEwAAAACCQABpAAAAAEFAAAAEHNoYXJlQXNzZXRBbW91bnQJAARMAAAAAgkAAaQAAAABBQAAAA9iYXNlQXNzZXRBbW91bnQFAAAAA25pbAUAAAADU0VQAQAAAA9yZWFkVG90YWxMb2NrZWQAAAABAAAAA2tleQQAAAAQdG90YWxMb2NrZWRBcnJheQkABLUAAAACCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQkBAAAAD2RhdGFUb3RhbExvY2tlZAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAFAAAAA1NFUAkABEwAAAACAP//////////CQAETAAAAAIJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAABB0b3RhbExvY2tlZEFycmF5BQAAABNJZHhUb3RhbExvY2tlZFNoYXJlCQAETAAAAAIJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAABB0b3RhbExvY2tlZEFycmF5BQAAABJJZHhUb3RhbExvY2tlZEJhc2UFAAAAA25pbAEAAAAMa2V5T3BlcmF0aW9uAAAABAAAAA1vcGVyYXRpb25UeXBlAAAAFGludGVybmFsQmFzZUFzc2V0U3RyAAAAC3VzZXJBZGRyZXNzAAAABHR4SWQJAAS5AAAAAgkABEwAAAACAgAAAAglcyVkJXMlcwkABEwAAAACBQAAAA1vcGVyYXRpb25UeXBlCQAETAAAAAIFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyCQAETAAAAAIFAAAAC3VzZXJBZGRyZXNzCQAETAAAAAIFAAAABHR4SWQFAAAAA25pbAUAAAADU0VQAAAAAA1JZHhPcGVyU3RhdHVzAAAAAAAAAAABAAAAAA9JZHhPcGVySW5BbW91bnQAAAAAAAAAAAIAAAAADElkeE9wZXJQcmljZQAAAAAAAAAAAwAAAAAQSWR4T3Blck91dEFtb3VudAAAAAAAAAAABAAAAAASSWR4T3BlclN0YXJ0SGVpZ2h0AAAAAAAAAAAFAAAAABVJZHhPcGVyU3RhcnRUaW1lc3RhbXAAAAAAAAAAAAYAAAAAEElkeE9wZXJFbmRIZWlnaHQAAAAAAAAAAAcAAAAAE0lkeE9wZXJFbmRUaW1lc3RhbXAAAAAAAAAAAAgBAAAAHnByaXZhdGVEYXRhT3BlcmF0aW9uQWxsU3RyaW5ncwAAAAgAAAAGc3RhdHVzAAAADWluQXNzZXRBbW91bnQAAAAFcHJpY2UAAAAOb3V0QXNzZXRBbW91bnQAAAALc3RhcnRIZWlnaHQAAAAOc3RhcnRUaW1lc3RhbXAAAAAJZW5kSGVpZ2h0AAAADGVuZFRpbWVzdGFtcAkABLkAAAACCQAETAAAAAICAAAAECVzJWQlZCVkJWQlZCVkJWQJAARMAAAAAgUAAAAGc3RhdHVzCQAETAAAAAIFAAAADWluQXNzZXRBbW91bnQJAARMAAAAAgUAAAAFcHJpY2UJAARMAAAAAgUAAAAOb3V0QXNzZXRBbW91bnQJAARMAAAAAgUAAAALc3RhcnRIZWlnaHQJAARMAAAAAgUAAAAOc3RhcnRUaW1lc3RhbXAJAARMAAAAAgUAAAAJZW5kSGVpZ2h0CQAETAAAAAIFAAAADGVuZFRpbWVzdGFtcAUAAAADbmlsBQAAAANTRVABAAAADWRhdGFPcGVyYXRpb24AAAAIAAAABnN0YXR1cwAAAA1pbkFzc2V0QW1vdW50AAAABXByaWNlAAAADm91dEFzc2V0QW1vdW50AAAAC3N0YXJ0SGVpZ2h0AAAADnN0YXJ0VGltZXN0YW1wAAAACWVuZEhlaWdodAAAAAxlbmRUaW1lc3RhbXAJAQAAAB5wcml2YXRlRGF0YU9wZXJhdGlvbkFsbFN0cmluZ3MAAAAIBQAAAAZzdGF0dXMJAAGkAAAAAQUAAAANaW5Bc3NldEFtb3VudAkAAaQAAAABBQAAAAVwcmljZQkAAaQAAAABBQAAAA5vdXRBc3NldEFtb3VudAkAAaQAAAABBQAAAAtzdGFydEhlaWdodAkAAaQAAAABBQAAAA5zdGFydFRpbWVzdGFtcAkAAaQAAAABBQAAAAllbmRIZWlnaHQJAAGkAAAAAQUAAAAMZW5kVGltZXN0YW1wAQAAABxkYXRhT3BlcmF0aW9uRXhlY3V0aW9uVXBkYXRlAAAAAwAAAA1jdXJyT3BlckFycmF5AAAACW5ld1N0YXR1cwAAAA9uZXdFbmRUaW1lc3RhbXAJAQAAAB5wcml2YXRlRGF0YU9wZXJhdGlvbkFsbFN0cmluZ3MAAAAIBQAAAAluZXdTdGF0dXMJAAGRAAAAAgUAAAANY3Vyck9wZXJBcnJheQUAAAAPSWR4T3BlckluQW1vdW50CQABkQAAAAIFAAAADWN1cnJPcGVyQXJyYXkFAAAADElkeE9wZXJQcmljZQkAAZEAAAACBQAAAA1jdXJyT3BlckFycmF5BQAAABBJZHhPcGVyT3V0QW1vdW50CQABkQAAAAIFAAAADWN1cnJPcGVyQXJyYXkFAAAAEklkeE9wZXJTdGFydEhlaWdodAkAAZEAAAACBQAAAA1jdXJyT3BlckFycmF5BQAAABVJZHhPcGVyU3RhcnRUaW1lc3RhbXAJAAGRAAAAAgUAAAANY3Vyck9wZXJBcnJheQUAAAAQSWR4T3BlckVuZEhlaWdodAkAAaQAAAABBQAAAA9uZXdFbmRUaW1lc3RhbXABAAAAEnJlYWRBc3NldENmZ09yRmFpbAAAAAEAAAAMYmFzZUFzc2V0U3RyBAAAAANrZXkJAQAAAAtrZXlBc3NldENmZwAAAAEFAAAADGJhc2VBc3NldFN0cgkABLUAAAACCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAQUAAAADa2V5BQAAAANTRVABAAAAFGluY3JlbWVudFRvdGFsTG9ja2VkAAAAAwAAAANrZXkAAAAQc2hhcmVBc3NldEFtb3VudAAAAA9iYXNlQXNzZXRBbW91bnQEAAAACWRhdGFBcnJheQkBAAAAD3JlYWRUb3RhbExvY2tlZAAAAAEFAAAAA2tleQkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAADa2V5CQEAAAAPZGF0YVRvdGFsTG9ja2VkAAAAAgkAAGQAAAACCQABkQAAAAIFAAAACWRhdGFBcnJheQUAAAATSWR4VG90YWxMb2NrZWRTaGFyZQUAAAAQc2hhcmVBc3NldEFtb3VudAkAAGQAAAACCQABkQAAAAIFAAAACWRhdGFBcnJheQUAAAASSWR4VG90YWxMb2NrZWRCYXNlBQAAAA9iYXNlQXNzZXRBbW91bnQBAAAAFGRlY3JlbWVudFRvdGFsTG9ja2VkAAAAAwAAAANrZXkAAAAQc2hhcmVBc3NldEFtb3VudAAAAA9iYXNlQXNzZXRBbW91bnQEAAAACWRhdGFBcnJheQkBAAAAD3JlYWRUb3RhbExvY2tlZAAAAAEFAAAAA2tleQkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAADa2V5CQEAAAAPZGF0YVRvdGFsTG9ja2VkAAAAAgkAAGUAAAACCQABkQAAAAIFAAAACWRhdGFBcnJheQUAAAATSWR4VG90YWxMb2NrZWRTaGFyZQUAAAAQc2hhcmVBc3NldEFtb3VudAkAAGUAAAACCQABkQAAAAIFAAAACWRhdGFBcnJheQUAAAASSWR4VG90YWxMb2NrZWRCYXNlBQAAAA9iYXNlQXNzZXRBbW91bnQBAAAAFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAAAABAAAAAckbWF0Y2gwCQAEIgAAAAEJAQAAABNrZXlNYW5hZ2VyUHVibGljS2V5AAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwCQACWQAAAAEFAAAAAXMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQFAAAABHVuaXQJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IBAAAAHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0AAAAAAQAAAAHJG1hdGNoMAkABCIAAAABCQEAAAAaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAAAAAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXMFAAAAByRtYXRjaDAJAAJZAAAAAQUAAAABcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAUAAAAEdW5pdAkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgEAAAANYmFsYW5jZU9yWmVybwAAAAEAAAAHYXNzZXRJZAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB8AAAABCQEAAAAKa2V5QmFsYW5jZQAAAAEFAAAAB2Fzc2V0SWQAAAAAAAAAAAABAAAACWNhbGNQcmljZQAAAAYAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIAAAALYmFzZUFzc2V0SWQAAAAPdG9wVXBCYXNlQW1vdW50AAAADHNoYXJlQXNzZXRJZAAAABZkZWNpbWFsc011bHRCb3RoQXNzZXRzAAAAEWRlY2ltYWxzTXVsdFByaWNlBAAAABB0b3RhbExvY2tlZEFycmF5CQEAAAAPcmVhZFRvdGFsTG9ja2VkAAAAAQkBAAAADmtleVRvdGFsTG9ja2VkAAAAAQUAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIEAAAAFXRvdGFsTG9ja2VkQmFzZUFtb3VudAkAAZEAAAACBQAAABB0b3RhbExvY2tlZEFycmF5BQAAABJJZHhUb3RhbExvY2tlZEJhc2UEAAAAEGJhc2VBc3NldEJhbGFuY2UJAQAAAA1iYWxhbmNlT3JaZXJvAAAAAQkAAlgAAAABBQAAAAtiYXNlQXNzZXRJZAQAAAAfYmFzZUFzc2V0QmFsYW5jZUNvbnNpZGVyaW5nTG9jawkAAGQAAAACBQAAABBiYXNlQXNzZXRCYWxhbmNlBQAAAA90b3BVcEJhc2VBbW91bnQDCQAAZgAAAAIAAAAAAAAAAAAFAAAAH2Jhc2VBc3NldEJhbGFuY2VDb25zaWRlcmluZ0xvY2sJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAA2YmFzZUFzc2V0QmFsYW5jZUNvbnNpZGVyaW5nTG9jayA8IDA6IGJhc2VBc3NldEJhbGFuY2U9CQABpAAAAAEFAAAAEGJhc2VBc3NldEJhbGFuY2UCAAAAISBiYXNlQXNzZXRCYWxhbmNlQ29uc2lkZXJpbmdMb2NrPQkAAaQAAAABBQAAAB9iYXNlQXNzZXRCYWxhbmNlQ29uc2lkZXJpbmdMb2NrBAAAAA1zaGFyZUVtaXNzaW9uCAkBAAAABXZhbHVlAAAAAQkAA+wAAAABBQAAAAxzaGFyZUFzc2V0SWQAAAAIcXVhbnRpdHkEAAAABXByaWNlAwkAAAAAAAACBQAAAA1zaGFyZUVtaXNzaW9uAAAAAAAAAAAACQAAaAAAAAIAAAAAAAAAAAEFAAAAEWRlY2ltYWxzTXVsdFByaWNlCQAAawAAAAMFAAAAH2Jhc2VBc3NldEJhbGFuY2VDb25zaWRlcmluZ0xvY2sFAAAAEWRlY2ltYWxzTXVsdFByaWNlBQAAAA1zaGFyZUVtaXNzaW9uCQAFFwAAAAUFAAAABXByaWNlBQAAABBiYXNlQXNzZXRCYWxhbmNlBQAAABV0b3RhbExvY2tlZEJhc2VBbW91bnQFAAAAH2Jhc2VBc3NldEJhbGFuY2VDb25zaWRlcmluZ0xvY2sFAAAADXNoYXJlRW1pc3Npb24BAAAACGdldFByaWNlAAAABQAAABRpbnRlcm5hbEJhc2VBc3NldFN0cgAAAAtiYXNlQXNzZXRJZAAAAAxzaGFyZUFzc2V0SWQAAAAWZGVjaW1hbHNNdWx0Qm90aEFzc2V0cwAAABFkZWNpbWFsc011bHRQcmljZQQAAAAQdG90YWxMb2NrZWRBcnJheQkBAAAAD3JlYWRUb3RhbExvY2tlZAAAAAEJAQAAAA5rZXlUb3RhbExvY2tlZAAAAAEFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyBAAAABV0b3RhbExvY2tlZEJhc2VBbW91bnQJAAGRAAAAAgUAAAAQdG90YWxMb2NrZWRBcnJheQUAAAASSWR4VG90YWxMb2NrZWRCYXNlBAAAABBiYXNlQXNzZXRCYWxhbmNlCQEAAAANYmFsYW5jZU9yWmVybwAAAAEJAAJYAAAAAQUAAAALYmFzZUFzc2V0SWQEAAAAH2Jhc2VBc3NldEJhbGFuY2VDb25zaWRlcmluZ0xvY2sFAAAAEGJhc2VBc3NldEJhbGFuY2UEAAAADXNoYXJlRW1pc3Npb24ICQEAAAAFdmFsdWUAAAABCQAD7AAAAAEFAAAADHNoYXJlQXNzZXRJZAAAAAhxdWFudGl0eQQAAAAFcHJpY2UJAQAAAAV2YWx1ZQAAAAEJAAQfAAAAAQkBAAAADGtleVByaWNlTGFzdAAAAAEFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyCQAFFwAAAAUFAAAABXByaWNlBQAAABBiYXNlQXNzZXRCYWxhbmNlBQAAABV0b3RhbExvY2tlZEJhc2VBbW91bnQFAAAAH2Jhc2VBc3NldEJhbGFuY2VDb25zaWRlcmluZ0xvY2sFAAAADXNoYXJlRW1pc3Npb24BAAAAG3ByaXZhdGVDdXJyZW50U3lzUGFyYW1zUkVTVAAAAAEAAAAMYmFzZUFzc2V0U3RyBAAAAAtiYXNlQXNzZXRJZAkAAlkAAAABBQAAAAxiYXNlQXNzZXRTdHIEAAAACGNmZ0FycmF5CQEAAAAScmVhZEFzc2V0Q2ZnT3JGYWlsAAAAAQUAAAAMYmFzZUFzc2V0U3RyBAAAAA1zaGFyZUFzc2V0U3RyCQABkQAAAAIFAAAACGNmZ0FycmF5BQAAABJJZHhDZmdTaGFyZUFzc2V0SWQEAAAADHNoYXJlQXNzZXRJZAkAAlkAAAABBQAAAA1zaGFyZUFzc2V0U3RyBAAAABZkZWNpbWFsc011bHRCb3RoQXNzZXRzCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAIY2ZnQXJyYXkFAAAAHElkeENmZ0RlY2ltYWxzTXVsdEJvdGhBc3NldHMEAAAAEWRlY2ltYWxzTXVsdFByaWNlCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAIY2ZnQXJyYXkFAAAAF0lkeENmZ0RlY2ltYWxzTXVsdFByaWNlBAAAABRpbnRlcm5hbEJhc2VBc3NldFN0cgkAAZEAAAACBQAAAAhjZmdBcnJheQUAAAAXSWR4Q2ZnSW50ZXJuYWxCYXNlQXNzZXQEAAAACHN5c1N0YXRlCQEAAAAIZ2V0UHJpY2UAAAAFBQAAABRpbnRlcm5hbEJhc2VBc3NldFN0cgUAAAALYmFzZUFzc2V0SWQFAAAADHNoYXJlQXNzZXRJZAUAAAAWZGVjaW1hbHNNdWx0Qm90aEFzc2V0cwUAAAARZGVjaW1hbHNNdWx0UHJpY2UJAAUYAAAABgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAABXByaWNlCAUAAAAIc3lzU3RhdGUAAAACXzEJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABFkZWNpbWFsc011bHRQcmljZQUAAAARZGVjaW1hbHNNdWx0UHJpY2UJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABBiYXNlQXNzZXRCYWxhbmNlCAUAAAAIc3lzU3RhdGUAAAACXzIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABV0b3RhbExvY2tlZEJhc2VBbW91bnQIBQAAAAhzeXNTdGF0ZQAAAAJfMwkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAH2Jhc2VBc3NldEJhbGFuY2VDb25zaWRlcmluZ0xvY2sIBQAAAAhzeXNTdGF0ZQAAAAJfNAkBAAAADEludGVnZXJFbnRyeQAAAAICAAAADXNoYXJlRW1pc3Npb24IBQAAAAhzeXNTdGF0ZQAAAAJfNQEAAAALbXVzdE1hbmFnZXIAAAABAAAAAWkEAAAAAnBkCQAAAgAAAAECAAAAEXBlcm1pc3Npb24gZGVuaWVkBAAAAAckbWF0Y2gwCQEAAAAWbWFuYWdlclB1YmxpY0tleU9yVW5pdAAAAAADCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAnBrBQAAAAckbWF0Y2gwAwkAAAAAAAACCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkFAAAAAnBrBgUAAAACcGQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQDCQAAAAAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwYFAAAAAnBkCQAAAgAAAAECAAAAC01hdGNoIGVycm9yAQAAABBtdXN0UHJveHlBZGRyZXNzAAAAAgAAAAFpAAAAB2Fzc2V0SWQEAAAAB2lzUHJveHkJAAAAAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQiAAAAAQkBAAAAD2tleVByb3h5QWRkcmVzcwAAAAEFAAAAB2Fzc2V0SWQFAAAABUVNUFRZAwUAAAAHaXNQcm94eQYEAAAAC2NoZWNrQ2FsbGVyCQEAAAALbXVzdE1hbmFnZXIAAAABBQAAAAFpAwkAAAAAAAACBQAAAAtjaGVja0NhbGxlcgUAAAALY2hlY2tDYWxsZXIGCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAoAAAABaQEAAAALY29uc3RydWN0b3IAAAABAAAAE2Fzc2V0c1N0b3JlQ29udHJhY3QEAAAAC2NoZWNrQ2FsbGVyCQEAAAALbXVzdE1hbmFnZXIAAAABBQAAAAFpAwkAAAAAAAACBQAAAAtjaGVja0NhbGxlcgUAAAALY2hlY2tDYWxsZXIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAFmtleUFzc2V0c1N0b3JlQ29udHJhY3QAAAAABQAAABNhc3NldHNTdG9yZUNvbnRyYWN0BQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAAEmFkbWluUmVnaXN0ZXJBc3NldAAAAAcAAAAMYmFzZUFzc2V0U3RyAAAADnNoYXJlQXNzZXROYW1lAAAAD3NoYXJlQXNzZXREZXNjcgAAAA5zaGFyZUFzc2V0TG9nbwAAABBnZXREZWxheWluQmxvY2tzAAAAFnNodXRkb3duTWFuYWdlckFkZHJlc3MAAAAMcHJveHlBZGRyZXNzBAAAAAtiYXNlQXNzZXRJZAkAAlkAAAABBQAAAAxiYXNlQXNzZXRTdHIEAAAACGRlY2ltYWxzCAkBAAAABXZhbHVlAAAAAQkAA+wAAAABBQAAAAtiYXNlQXNzZXRJZAAAAAhkZWNpbWFscwQAAAAFY2hlY2sJAQAAAAttdXN0TWFuYWdlcgAAAAEFAAAAAWkDCQAAAAAAAAIFAAAABWNoZWNrBQAAAAVjaGVjawMJAQAAAAIhPQAAAAIJAAQlAAAAAQkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAWc2h1dGRvd25NYW5hZ2VyQWRkcmVzcwUAAAAWc2h1dGRvd25NYW5hZ2VyQWRkcmVzcwkAAAIAAAABAgAAAB5pbnZhbGlkIHNodXRkb3duTWFuYWdlckFkZHJlc3MDCQAAZgAAAAIAAAAAAAAAAAAFAAAAEGdldERlbGF5aW5CbG9ja3MJAAACAAAAAQkAASwAAAACAgAAABlpbnZhbGlkIGdldERlbGF5aW5CbG9ja3M9CQABpAAAAAEFAAAAEGdldERlbGF5aW5CbG9ja3MEAAAAFXNoYXJlQXNzZXRJc3N1ZUFjdGlvbgkABEIAAAAFBQAAAA5zaGFyZUFzc2V0TmFtZQUAAAAPc2hhcmVBc3NldERlc2NyAAAAAAAAAAABBQAAAAhkZWNpbWFscwYEAAAADHNoYXJlQXNzZXRJZAkABDgAAAABBQAAABVzaGFyZUFzc2V0SXNzdWVBY3Rpb24EAAAADXNoYXJlQXNzZXRTdHIJAAJYAAAAAQUAAAAMc2hhcmVBc3NldElkBAAAABFkZWNpbWFsc011bHRQcmljZQkAAGgAAAACCQAAaAAAAAIAAAAAAAAAAGQAAAAAAAAAA+gAAAAAAAAAA+gEAAAAFmRlY2ltYWxzTXVsdEJvdGhBc3NldHMJAABsAAAABgAAAAAAAAAACgAAAAAAAAAAAAUAAAAIZGVjaW1hbHMAAAAAAAAAAAAAAAAAAAAAAAAFAAAABERPV04EAAAACnN0YXJ0UHJpY2UJAABoAAAAAgAAAAAAAAAAAQUAAAARZGVjaW1hbHNNdWx0UHJpY2UEAAAAFGludGVybmFsQmFzZUFzc2V0dElkCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAQAAABZrZXlOZXh0SW50ZXJuYWxBc3NldElkAAAAAAAAAAAAAAAAAAQAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIJAAGkAAAAAQUAAAAUaW50ZXJuYWxCYXNlQXNzZXR0SWQEAAAADmNyZWF0ZU9yVXBkYXRlCQAD/AAAAAQJAQAAABNhc3NldHNTdG9yZUNvbnRyYWN0AAAAAAIAAAAOY3JlYXRlT3JVcGRhdGUJAARMAAAAAgUAAAANc2hhcmVBc3NldFN0cgkABEwAAAACBQAAAA5zaGFyZUFzc2V0TG9nbwkABEwAAAACBwUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAADmNyZWF0ZU9yVXBkYXRlBQAAAA5jcmVhdGVPclVwZGF0ZQQAAAAIYWRkTGFiZWwJAAP8AAAABAkBAAAAE2Fzc2V0c1N0b3JlQ29udHJhY3QAAAAAAgAAAAhhZGRMYWJlbAkABEwAAAACBQAAAA1zaGFyZUFzc2V0U3RyCQAETAAAAAICAAAABERFRkkFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAAAhhZGRMYWJlbAUAAAAIYWRkTGFiZWwJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAC2tleUFzc2V0Q2ZnAAAAAQUAAAAMYmFzZUFzc2V0U3RyCQEAAAAMZGF0YUFzc2V0Q2ZnAAAABQUAAAANc2hhcmVBc3NldFN0cgUAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIFAAAAFmRlY2ltYWxzTXVsdEJvdGhBc3NldHMFAAAAEWRlY2ltYWxzTXVsdFByaWNlBQAAABBnZXREZWxheWluQmxvY2tzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAB9rZXlNYXBwaW5nc0ludGVybmFsMmJhc2VBc3NldElkAAAAAQUAAAAUaW50ZXJuYWxCYXNlQXNzZXR0SWQFAAAADGJhc2VBc3NldFN0cgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZAAAAAEFAAAADGJhc2VBc3NldFN0cgUAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAHGtleU1hcHBpbmdzU2hhcmUyYmFzZUFzc2V0SWQAAAABBQAAAA1zaGFyZUFzc2V0U3RyBQAAAAxiYXNlQXNzZXRTdHIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAHGtleU1hcHBpbmdzQmFzZUFzc2V0MnNoYXJlSWQAAAABBQAAAAxiYXNlQXNzZXRTdHIFAAAADXNoYXJlQXNzZXRTdHIJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIJAQAAABdrZXlTaHV0ZG93blB1dE9wZXJhdGlvbgAAAAEFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyBwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAASa2V5U2h1dGRvd25NYW5hZ2VyAAAAAQUAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIFAAAAFnNodXRkb3duTWFuYWdlckFkZHJlc3MJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABZrZXlOZXh0SW50ZXJuYWxBc3NldElkAAAAAAkAAGQAAAACBQAAABRpbnRlcm5hbEJhc2VBc3NldHRJZAAAAAAAAAAAAQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADGtleVByaWNlTGFzdAAAAAEFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyBQAAAApzdGFydFByaWNlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAPa2V5UHJpY2VIaXN0b3J5AAAAAwUAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIFAAAABmhlaWdodAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAFAAAACnN0YXJ0UHJpY2UJAARMAAAAAgUAAAAVc2hhcmVBc3NldElzc3VlQWN0aW9uCQAETAAAAAIJAQAAAARCdXJuAAAAAgUAAAAMc2hhcmVBc3NldElkAAAAAAAAAAABCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA9rZXlQcm94eUFkZHJlc3MAAAABBQAAAAxiYXNlQXNzZXRTdHIFAAAADHByb3h5QWRkcmVzcwUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAAC3NodXRkb3duUHV0AAAAAQAAABNpbnRlcm5hbEJhc2VBc3NldElkBAAAABZpbnRlcm5hbEJhc2VBc3NldElkU3RyCQABpAAAAAEFAAAAE2ludGVybmFsQmFzZUFzc2V0SWQEAAAADmJhc2VBc3NldElkU3RyCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAQkBAAAAH2tleU1hcHBpbmdzSW50ZXJuYWwyYmFzZUFzc2V0SWQAAAABBQAAABNpbnRlcm5hbEJhc2VBc3NldElkBAAAABZzaHV0ZG93bk1hbmFnZXJBZGRyZXNzCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAQkBAAAAEmtleVNodXRkb3duTWFuYWdlcgAAAAEFAAAAFmludGVybmFsQmFzZUFzc2V0SWRTdHIDCQAAZgAAAAIAAAAAAAAAAAEJAAExAAAAAQUAAAAOYmFzZUFzc2V0SWRTdHIJAAACAAAAAQIAAAAbaW52YWxpZCBpbnRlcm5hbEJhc2VBc3NldElkAwkBAAAAAiE9AAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAFnNodXRkb3duTWFuYWdlckFkZHJlc3MJAAACAAAAAQIAAAANYWNjZXNzIGRlbmllZAkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgkBAAAAF2tleVNodXRkb3duUHV0T3BlcmF0aW9uAAAAAQkAAaQAAAABBQAAABNpbnRlcm5hbEJhc2VBc3NldElkBgUAAAADbmlsAAAAAWkBAAAAA3B1dAAAAAAEAAAAA3BtdAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAALYmFzZUFzc2V0SWQJAQAAAAV2YWx1ZQAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAQAAAAMYmFzZUFzc2V0U3RyCQACWAAAAAEFAAAAC2Jhc2VBc3NldElkBAAAAA51c2VyQWRkcmVzc1N0cgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAACGNmZ0FycmF5CQEAAAAScmVhZEFzc2V0Q2ZnT3JGYWlsAAAAAQUAAAAMYmFzZUFzc2V0U3RyBAAAAA1zaGFyZUFzc2V0U3RyCQABkQAAAAIFAAAACGNmZ0FycmF5BQAAABJJZHhDZmdTaGFyZUFzc2V0SWQEAAAADHNoYXJlQXNzZXRJZAkAAlkAAAABBQAAAA1zaGFyZUFzc2V0U3RyBAAAABZkZWNpbWFsc011bHRCb3RoQXNzZXRzCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAIY2ZnQXJyYXkFAAAAHElkeENmZ0RlY2ltYWxzTXVsdEJvdGhBc3NldHMEAAAAEWRlY2ltYWxzTXVsdFByaWNlCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAIY2ZnQXJyYXkFAAAAF0lkeENmZ0RlY2ltYWxzTXVsdFByaWNlBAAAABRpbnRlcm5hbEJhc2VBc3NldFN0cgkAAZEAAAACBQAAAAhjZmdBcnJheQUAAAAXSWR4Q2ZnSW50ZXJuYWxCYXNlQXNzZXQEAAAADGlzUHV0QmxvY2tlZAkBAAAAEGdldEJvb2xlYW5PckZhaWwAAAABCQEAAAAXa2V5U2h1dGRvd25QdXRPcGVyYXRpb24AAAABBQAAABRpbnRlcm5hbEJhc2VBc3NldFN0cgMFAAAADGlzUHV0QmxvY2tlZAkAAAIAAAABAgAAABhwdXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQEAAAACm5ld0JhbGFuY2UJAABkAAAAAgkBAAAADWJhbGFuY2VPclplcm8AAAABBQAAAAxiYXNlQXNzZXRTdHIIBQAAAANwbXQAAAAGYW1vdW50BAAAAAVwcmljZQgJAQAAAAhnZXRQcmljZQAAAAUFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyBQAAAAtiYXNlQXNzZXRJZAUAAAAMc2hhcmVBc3NldElkBQAAABZkZWNpbWFsc011bHRCb3RoQXNzZXRzBQAAABFkZWNpbWFsc011bHRQcmljZQAAAAJfMQQAAAAQc2hhcmVBc3NldEFtb3VudAkBAAAACGZyYWN0aW9uAAAABAgFAAAAA3BtdAAAAAZhbW91bnQFAAAAEWRlY2ltYWxzTXVsdFByaWNlBQAAAAVwcmljZQUAAAAHQ0VJTElORwkABEwAAAACCQEAAAAHUmVpc3N1ZQAAAAMFAAAADHNoYXJlQXNzZXRJZAUAAAAQc2hhcmVBc3NldEFtb3VudAYJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAABBzaGFyZUFzc2V0QW1vdW50BQAAAAxzaGFyZUFzc2V0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAADGtleU9wZXJhdGlvbgAAAAQCAAAAAVAFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyBQAAAA51c2VyQWRkcmVzc1N0cgkAAlgAAAABCAUAAAABaQAAAA10cmFuc2FjdGlvbklkCQEAAAANZGF0YU9wZXJhdGlvbgAAAAgCAAAACEZJTklTSEVECAUAAAADcG10AAAABmFtb3VudAUAAAAFcHJpY2UFAAAAEHNoYXJlQXNzZXRBbW91bnQFAAAABmhlaWdodAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAFAAAABmhlaWdodAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAABXZhbHVlAAAAAQkABCIAAAABCQEAAAAPa2V5UHJveHlBZGRyZXNzAAAAAQUAAAAMYmFzZUFzc2V0U3RyCAUAAAADcG10AAAABmFtb3VudAUAAAALYmFzZUFzc2V0SWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAprZXlCYWxhbmNlAAAAAQUAAAAMYmFzZUFzc2V0U3RyBQAAAApuZXdCYWxhbmNlBQAAAANuaWwAAAABaQEAAAAQc3VibWl0R2V0UmVxdWVzdAAAAAAEAAAAA3BtdAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAMc2hhcmVBc3NldElkCQEAAAAFdmFsdWUAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQEAAAADXNoYXJlQXNzZXRTdHIJAAJYAAAAAQUAAAAMc2hhcmVBc3NldElkBAAAAAxjYWxsZXJQdWJTdHIJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAt1c2VyQWRkcmVzcwgFAAAAAWkAAAAGY2FsbGVyBAAAAA51c2VyQWRkcmVzc1N0cgkABCUAAAABBQAAAAt1c2VyQWRkcmVzcwQAAAAQc2hhcmVBc3NldEFtb3VudAgFAAAAA3BtdAAAAAZhbW91bnQEAAAADGJhc2VBc3NldFN0cgkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAEJAQAAABxrZXlNYXBwaW5nc1NoYXJlMmJhc2VBc3NldElkAAAAAQUAAAANc2hhcmVBc3NldFN0cgQAAAALYmFzZUFzc2V0SWQJAAJZAAAAAQUAAAAMYmFzZUFzc2V0U3RyBAAAAAhjZmdBcnJheQkBAAAAEnJlYWRBc3NldENmZ09yRmFpbAAAAAEFAAAADGJhc2VBc3NldFN0cgQAAAAWZGVjaW1hbHNNdWx0Qm90aEFzc2V0cwkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACGNmZ0FycmF5BQAAABxJZHhDZmdEZWNpbWFsc011bHRCb3RoQXNzZXRzBAAAABFkZWNpbWFsc011bHRQcmljZQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACGNmZ0FycmF5BQAAABdJZHhDZmdEZWNpbWFsc011bHRQcmljZQQAAAAOZ2V0RGVsYXlCbG9ja3MJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAhjZmdBcnJheQUAAAAUSWR4Q2ZnR2V0RGVsYXlCbG9ja3MEAAAAFGludGVybmFsQmFzZUFzc2V0U3RyCQABkQAAAAIFAAAACGNmZ0FycmF5BQAAABdJZHhDZmdJbnRlcm5hbEJhc2VBc3NldAQAAAAFcHJpY2UICQEAAAAIZ2V0UHJpY2UAAAAFBQAAABRpbnRlcm5hbEJhc2VBc3NldFN0cgUAAAALYmFzZUFzc2V0SWQFAAAADHNoYXJlQXNzZXRJZAUAAAAWZGVjaW1hbHNNdWx0Qm90aEFzc2V0cwUAAAARZGVjaW1hbHNNdWx0UHJpY2UAAAACXzEEAAAAD2Jhc2VBc3NldEFtb3VudAkAAGsAAAADBQAAABBzaGFyZUFzc2V0QW1vdW50BQAAAAVwcmljZQUAAAARZGVjaW1hbHNNdWx0UHJpY2UEAAAADG9wZXJhdGlvbktleQkBAAAADGtleU9wZXJhdGlvbgAAAAQCAAAAAUcFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyBQAAAA51c2VyQWRkcmVzc1N0cgkAAlgAAAABCAUAAAABaQAAAA10cmFuc2FjdGlvbklkBAAAAA1vcGVyYXRpb25EYXRhCQEAAAANZGF0YU9wZXJhdGlvbgAAAAgCAAAAB1BFTkRJTkcFAAAAEHNoYXJlQXNzZXRBbW91bnQFAAAABXByaWNlBQAAAA9iYXNlQXNzZXRBbW91bnQFAAAABmhlaWdodAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAABkAAAAAgUAAAAGaGVpZ2h0BQAAAA5nZXREZWxheUJsb2NrcwAAAAAAAAAAAAkABEwAAAACCQEAAAAEQnVybgAAAAIFAAAADHNoYXJlQXNzZXRJZAUAAAAQc2hhcmVBc3NldEFtb3VudAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAxvcGVyYXRpb25LZXkFAAAADW9wZXJhdGlvbkRhdGEJAARMAAAAAgkBAAAAFGluY3JlbWVudFRvdGFsTG9ja2VkAAAAAwkBAAAADmtleVRvdGFsTG9ja2VkAAAAAQUAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIFAAAAEHNoYXJlQXNzZXRBbW91bnQFAAAAD2Jhc2VBc3NldEFtb3VudAkABEwAAAACCQEAAAAUaW5jcmVtZW50VG90YWxMb2NrZWQAAAADCQEAAAAUa2V5VG90YWxMb2NrZWRCeVVzZXIAAAACBQAAABRpbnRlcm5hbEJhc2VBc3NldFN0cgUAAAAOdXNlckFkZHJlc3NTdHIFAAAAEHNoYXJlQXNzZXRBbW91bnQFAAAAD2Jhc2VBc3NldEFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAACmtleUJhbGFuY2UAAAABBQAAAAxiYXNlQXNzZXRTdHIJAABlAAAAAgkBAAAADWJhbGFuY2VPclplcm8AAAABBQAAAAxiYXNlQXNzZXRTdHIFAAAAD2Jhc2VBc3NldEFtb3VudAUAAAADbmlsAAAAAWkBAAAAEWV4ZWN1dGVHZXRSZXF1ZXN0AAAAAwAAAAxiYXNlQXNzZXRTdHIAAAAOdXNlckFkZHJlc3NTdHIAAAAKZ2V0VHhJZFN0cgQAAAALdXNlckFkZHJlc3MJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAADnVzZXJBZGRyZXNzU3RyBAAAAA1hc3NldENmZ0FycmF5CQEAAAAScmVhZEFzc2V0Q2ZnT3JGYWlsAAAAAQUAAAAMYmFzZUFzc2V0U3RyBAAAAAxzaGFyZUFzc2V0SWQJAAJZAAAAAQkAAZEAAAACBQAAAA1hc3NldENmZ0FycmF5BQAAABJJZHhDZmdTaGFyZUFzc2V0SWQEAAAAC2Jhc2VBc3NldElkCQACWQAAAAEFAAAADGJhc2VBc3NldFN0cgQAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIJAAGRAAAAAgUAAAANYXNzZXRDZmdBcnJheQUAAAAXSWR4Q2ZnSW50ZXJuYWxCYXNlQXNzZXQEAAAADG9wZXJhdGlvbktleQkBAAAADGtleU9wZXJhdGlvbgAAAAQCAAAAAUcFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAKZ2V0VHhJZFN0cgQAAAAOb3BlcmF0aW9uQXJyYXkJAAS1AAAAAgkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAEFAAAADG9wZXJhdGlvbktleQUAAAADU0VQBAAAAAZzdGF0dXMJAAGRAAAAAgUAAAAOb3BlcmF0aW9uQXJyYXkFAAAADUlkeE9wZXJTdGF0dXMEAAAACWVuZEhlaWdodAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAADm9wZXJhdGlvbkFycmF5BQAAABBJZHhPcGVyRW5kSGVpZ2h0BAAAAA1pblNoYXJlQW1vdW50CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAOb3BlcmF0aW9uQXJyYXkFAAAAD0lkeE9wZXJJbkFtb3VudAQAAAANb3V0QmFzZUFtb3VudAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAADm9wZXJhdGlvbkFycmF5BQAAABBJZHhPcGVyT3V0QW1vdW50AwkBAAAAAiE9AAAAAgUAAAAGc3RhdHVzAgAAAAdQRU5ESU5HCQEAAAAOZmFpbEV4ZWN1dGVHZXQAAAAEAgAAABVTdGF0dXMgaXMgbm90IFBFTkRJTkcFAAAADGJhc2VBc3NldFN0cgUAAAAOdXNlckFkZHJlc3NTdHIFAAAACmdldFR4SWRTdHIDCQAAZgAAAAIFAAAACWVuZEhlaWdodAUAAAAGaGVpZ2h0CQEAAAAOZmFpbEV4ZWN1dGVHZXQAAAAECQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAApFbmRIZWlnaHRbCQABpAAAAAEFAAAACWVuZEhlaWdodAIAAAAEXSA+IAkAAaQAAAABBQAAAAZoZWlnaHQFAAAADGJhc2VBc3NldFN0cgUAAAAOdXNlckFkZHJlc3NTdHIFAAAACmdldFR4SWRTdHIJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAALdXNlckFkZHJlc3MFAAAADW91dEJhc2VBbW91bnQFAAAAC2Jhc2VBc3NldElkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAADG9wZXJhdGlvbktleQkBAAAAHGRhdGFPcGVyYXRpb25FeGVjdXRpb25VcGRhdGUAAAADBQAAAA5vcGVyYXRpb25BcnJheQIAAAAIRklOSVNIRUQIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQAETAAAAAIJAQAAABRkZWNyZW1lbnRUb3RhbExvY2tlZAAAAAMJAQAAAA5rZXlUb3RhbExvY2tlZAAAAAEFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyBQAAAA1pblNoYXJlQW1vdW50BQAAAA1vdXRCYXNlQW1vdW50CQAETAAAAAIJAQAAABRkZWNyZW1lbnRUb3RhbExvY2tlZAAAAAMJAQAAABRrZXlUb3RhbExvY2tlZEJ5VXNlcgAAAAIFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyBQAAAA51c2VyQWRkcmVzc1N0cgUAAAANaW5TaGFyZUFtb3VudAUAAAANb3V0QmFzZUFtb3VudAUAAAADbmlsAAAAAWkBAAAADHRvcFVwQmFsYW5jZQAAAAIAAAAMYmFzZUFzc2V0U3RyAAAABWRlbHRhBAAAAA1hc3NldENmZ0FycmF5CQEAAAAScmVhZEFzc2V0Q2ZnT3JGYWlsAAAAAQUAAAAMYmFzZUFzc2V0U3RyBAAAAANwbXQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAACnBtdEFzc2V0SWQJAQAAAAV2YWx1ZQAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAQAAAALcG10QXNzZXRTdHIJAAJYAAAAAQUAAAAKcG10QXNzZXRJZAQAAAAMc2hhcmVBc3NldElkCQACWQAAAAEJAAGRAAAAAgUAAAANYXNzZXRDZmdBcnJheQUAAAASSWR4Q2ZnU2hhcmVBc3NldElkBAAAABZkZWNpbWFsc011bHRCb3RoQXNzZXRzCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAANYXNzZXRDZmdBcnJheQUAAAAcSWR4Q2ZnRGVjaW1hbHNNdWx0Qm90aEFzc2V0cwQAAAARZGVjaW1hbHNNdWx0UHJpY2UJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA1hc3NldENmZ0FycmF5BQAAABdJZHhDZmdEZWNpbWFsc011bHRQcmljZQQAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIJAAGRAAAAAgUAAAANYXNzZXRDZmdBcnJheQUAAAAXSWR4Q2ZnSW50ZXJuYWxCYXNlQXNzZXQEAAAAEnRvcFVwTGFzdEhlaWdodEtFWQkBAAAAEmtleVRvcFVwTGFzdEhlaWdodAAAAAIFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAPdG9wVXBMYXN0SGVpZ2h0CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAEnRvcFVwTGFzdEhlaWdodEtFWQAAAAAAAAAAAAQAAAAGY2hlY2tzCQAETAAAAAIJAQAAABBtdXN0UHJveHlBZGRyZXNzAAAAAgUAAAABaQUAAAAMYmFzZUFzc2V0U3RyCQAETAAAAAIDCQEAAAACIT0AAAACBQAAAA90b3BVcExhc3RIZWlnaHQFAAAABmhlaWdodAYJAAACAAAAAQIAAAAjb25seSBvbmUgdG9wVXAgcGVyIGJsb2NrIGlzIGFsbG93ZWQJAARMAAAAAgMJAABmAAAAAgUAAAAFZGVsdGEAAAAAAAAAAAAGCQAAAgAAAAECAAAAHm9ubHkgcG9zaXRpdmUgZGVsdGEgaXMgYWxsb3dlZAUAAAADbmlsAwkAAAAAAAACBQAAAAZjaGVja3MFAAAABmNoZWNrcwMJAQAAAAIhPQAAAAIFAAAADGJhc2VBc3NldFN0cgUAAAALcG10QXNzZXRTdHIJAAACAAAAAQIAAAA+YXR0YWNoZWQgcGF5bWVudCdzIGFzc2V0IGlkIGlzIE5PVCBtYXRjaGVkIHBhc3NlZCBiYXNlQXNzZXRTdHIDCQAAZgAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAACAAAAAQIAAAAgb25seSBvbmUgcGF5bWVudCBjYW4gYmUgYXR0YWNoZWQEAAAABXByaWNlCAkBAAAACWNhbGNQcmljZQAAAAYFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyBQAAAApwbXRBc3NldElkBQAAAAVkZWx0YQUAAAAMc2hhcmVBc3NldElkBQAAABZkZWNpbWFsc011bHRCb3RoQXNzZXRzBQAAABFkZWNpbWFsc011bHRQcmljZQAAAAJfMQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADGtleVByaWNlTGFzdAAAAAEFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyBQAAAAVwcmljZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAD2tleVByaWNlSGlzdG9yeQAAAAMFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyBQAAAAZoZWlnaHQIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wBQAAAAVwcmljZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAASdG9wVXBMYXN0SGVpZ2h0S0VZBQAAAAZoZWlnaHQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAprZXlCYWxhbmNlAAAAAQUAAAALcG10QXNzZXRTdHIJAABkAAAAAgkBAAAADWJhbGFuY2VPclplcm8AAAABBQAAAAtwbXRBc3NldFN0cgUAAAAFZGVsdGEFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAUY3VycmVudFN5c1BhcmFtc1JFU1QAAAABAAAADGJhc2VBc3NldFN0cgQAAAANc3lzU3RhdGVUdXBsZQkBAAAAG3ByaXZhdGVDdXJyZW50U3lzUGFyYW1zUkVTVAAAAAEFAAAADGJhc2VBc3NldFN0cgQAAAAFcHJpY2UICAUAAAANc3lzU3RhdGVUdXBsZQAAAAJfMQAAAAV2YWx1ZQQAAAARZGVjaW1hbHNNdWx0UHJpY2UICAUAAAANc3lzU3RhdGVUdXBsZQAAAAJfMgAAAAV2YWx1ZQQAAAAQYmFzZUFzc2V0QmFsYW5jZQgIBQAAAA1zeXNTdGF0ZVR1cGxlAAAAAl8zAAAABXZhbHVlBAAAABV0b3RhbExvY2tlZEJhc2VBbW91bnQICAUAAAANc3lzU3RhdGVUdXBsZQAAAAJfNAAAAAV2YWx1ZQQAAAAfYmFzZUFzc2V0QmFsYW5jZUNvbnNpZGVyaW5nTG9jawgIBQAAAA1zeXNTdGF0ZVR1cGxlAAAAAl81AAAABXZhbHVlBAAAAA1zaGFyZUVtaXNzaW9uCAgFAAAADXN5c1N0YXRlVHVwbGUAAAACXzYAAAAFdmFsdWUEAAAACHJlc3REYXRhCQAEuQAAAAIJAARMAAAAAgIAAAAZc3RhcnRDdXJyZW50U3lzUGFyYW1zUkVTVAkABEwAAAACCQABpAAAAAEFAAAABXByaWNlCQAETAAAAAIJAAGkAAAAAQUAAAARZGVjaW1hbHNNdWx0UHJpY2UJAARMAAAAAgkAAaQAAAABBQAAABBiYXNlQXNzZXRCYWxhbmNlCQAETAAAAAIJAAGkAAAAAQUAAAAVdG90YWxMb2NrZWRCYXNlQW1vdW50CQAETAAAAAIJAAGkAAAAAQUAAAAfYmFzZUFzc2V0QmFsYW5jZUNvbnNpZGVyaW5nTG9jawkABEwAAAACCQABpAAAAAEFAAAADXNoYXJlRW1pc3Npb24JAARMAAAAAgIAAAAXZW5kQ3VycmVudFN5c1BhcmFtc1JFU1QFAAAAA25pbAUAAAADU0VQCQAAAgAAAAEFAAAACHJlc3REYXRhAAAAAWkBAAAACnNldE1hbmFnZXIAAAABAAAAF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BAAAAAtjaGVja0NhbGxlcgkBAAAAC211c3RNYW5hZ2VyAAAAAQUAAAABaQMJAAAAAAAAAgUAAAALY2hlY2tDYWxsZXIFAAAAC2NoZWNrQ2FsbGVyBAAAABVjaGVja01hbmFnZXJQdWJsaWNLZXkJAAJZAAAAAQUAAAAXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkDCQAAAAAAAAIFAAAAFWNoZWNrTWFuYWdlclB1YmxpY0tleQUAAAAVY2hlY2tNYW5hZ2VyUHVibGljS2V5CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQAAAAAFAAAAF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAA5jb25maXJtTWFuYWdlcgAAAAAEAAAAAnBtCQEAAAAdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQAAAAABAAAAAVoYXNQTQMJAQAAAAlpc0RlZmluZWQAAAABBQAAAAJwbQYJAAACAAAAAQIAAAASbm8gcGVuZGluZyBtYW5hZ2VyAwkAAAAAAAACBQAAAAVoYXNQTQUAAAAFaGFzUE0EAAAAB2NoZWNrUE0DCQAAAAAAAAIIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkBAAAABXZhbHVlAAAAAQUAAAACcG0GCQAAAgAAAAECAAAAG3lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAAAAAAAAgUAAAAHY2hlY2tQTQUAAAAHY2hlY2tQTQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAATa2V5TWFuYWdlclB1YmxpY0tleQAAAAAJAAJYAAAAAQkBAAAABXZhbHVlAAAAAQUAAAACcG0JAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAAAAAUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAA90YXJnZXRQdWJsaWNLZXkEAAAAByRtYXRjaDAJAQAAABZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAACcGsFAAAAByRtYXRjaDAFAAAAAnBrAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0CAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5CQAAAgAAAAECAAAAC01hdGNoIGVycm9yCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAAPdGFyZ2V0UHVibGljS2V5PngDIw==", "chainId": 84, "height": 2136618, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let a = "__" | |
5 | + | ||
6 | + | let b = "" | |
7 | + | ||
8 | + | func c (d) = valueOrErrorMessage(getString(this, d), ("No data for this.key=" + d)) | |
9 | + | ||
10 | + | ||
11 | + | func e (d) = valueOrErrorMessage(getBoolean(this, d), ("No data for this.key=" + d)) | |
12 | + | ||
13 | + | ||
14 | + | func f () = makeString(["%s", "managerPublicKey"], a) | |
15 | + | ||
16 | + | ||
17 | + | func g () = makeString(["%s", "pendingManagerPublicKey"], a) | |
18 | + | ||
19 | + | ||
20 | + | func h (i,j,k,l) = throw(((((((i + ": baseAssetStr=") + j) + " userAddressStr=") + k) + " getTxIdStr=") + l)) | |
21 | + | ||
22 | + | ||
23 | + | func m () = makeString(["%s", "assetsStoreContract"], a) | |
24 | + | ||
25 | + | ||
26 | + | func n (j) = ("%s%s%s__config__asset__" + j) | |
27 | + | ||
28 | + | ||
29 | + | func o (p) = makeString(["%s%s", "proxyAddress", p], a) | |
30 | + | ||
31 | + | ||
32 | + | func q (p) = makeString(["%s%s", "balance", p], a) | |
33 | + | ||
34 | + | ||
35 | + | func r () = "%s__nextInternalAssetId" | |
36 | + | ||
37 | + | ||
38 | + | func s (t) = ("%s%s%d__price__last__" + t) | |
39 | + | ||
40 | + | ||
41 | + | func u (t,v) = makeString(["%s%s%s%d%s__topup__last__height", t, v], a) | |
42 | + | ||
43 | + | ||
44 | + | func w (t,x,y) = makeString(["%s%s%d%d%d__price__history", t, toString(x), toString(y)], a) | |
45 | + | ||
46 | + | ||
47 | + | func z (t) = ("%s%s%d__total__locked__" + t) | |
48 | + | ||
49 | + | ||
50 | + | func A (B,k) = makeString(["%s%s%d%s__total__locked", B, k], a) | |
51 | + | ||
52 | + | ||
53 | + | func C (D) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(D)) | |
54 | + | ||
55 | + | ||
56 | + | func E (j) = ("%s%s%s__mappings__baseAsset2internalId__" + j) | |
57 | + | ||
58 | + | ||
59 | + | func F (G) = ("%s%s%s__mappings__share2baseAssetId__" + G) | |
60 | + | ||
61 | + | ||
62 | + | func H (j) = ("%s%s%s__mappings__baseAsset2shareId__" + j) | |
63 | + | ||
64 | + | ||
65 | + | func I (B) = ("%s%s%d__shutdown__put__" + B) | |
66 | + | ||
67 | + | ||
68 | + | func J (B) = ("%s%s%d__shutdown__manager__" + B) | |
69 | + | ||
70 | + | ||
71 | + | func K () = addressFromStringValue(value(getString(m()))) | |
72 | + | ||
73 | + | ||
74 | + | let L = 1 | |
75 | + | ||
76 | + | let M = 2 | |
77 | + | ||
78 | + | let N = 3 | |
79 | + | ||
80 | + | let O = 4 | |
81 | + | ||
82 | + | let P = 5 | |
83 | + | ||
84 | + | func Q (G,B,R,S,T) = makeString(["%s%d%d%d%d", G, B, toString(R), toString(S), toString(T)], a) | |
85 | + | ||
86 | + | ||
87 | + | let U = 1 | |
88 | + | ||
89 | + | let V = 2 | |
90 | + | ||
91 | + | func W (X,Y) = makeString(["%d%d", toString(X), toString(Y)], a) | |
92 | + | ||
93 | + | ||
94 | + | func Z (d) = { | |
95 | + | let aa = split(valueOrElse(getString(this, d), W(0, 0)), a) | |
96 | + | [-1, parseIntValue(aa[U]), parseIntValue(aa[V])] | |
97 | + | } | |
98 | + | ||
99 | + | ||
100 | + | func ab (ac,B,ad,ae) = makeString(["%s%d%s%s", ac, B, ad, ae], a) | |
101 | + | ||
102 | + | ||
103 | + | let af = 1 | |
104 | + | ||
105 | + | let ag = 2 | |
106 | + | ||
107 | + | let ah = 3 | |
108 | + | ||
109 | + | let ai = 4 | |
110 | + | ||
111 | + | let aj = 5 | |
112 | + | ||
113 | + | let ak = 6 | |
114 | + | ||
115 | + | let al = 7 | |
116 | + | ||
117 | + | let am = 8 | |
118 | + | ||
119 | + | func an (ao,ap,aq,ar,as,at,au,av) = makeString(["%s%d%d%d%d%d%d%d", ao, ap, aq, ar, as, at, au, av], a) | |
120 | + | ||
121 | + | ||
122 | + | func aw (ao,ap,aq,ar,as,at,au,av) = an(ao, toString(ap), toString(aq), toString(ar), toString(as), toString(at), toString(au), toString(av)) | |
123 | + | ||
124 | + | ||
125 | + | func ax (ay,az,aA) = an(az, ay[ag], ay[ah], ay[ai], ay[aj], ay[ak], ay[al], toString(aA)) | |
126 | + | ||
127 | + | ||
128 | + | func aB (j) = { | |
129 | + | let d = n(j) | |
130 | + | split(c(d), a) | |
131 | + | } | |
132 | + | ||
133 | + | ||
134 | + | func aC (d,X,Y) = { | |
135 | + | let aD = Z(d) | |
136 | + | StringEntry(d, W((aD[U] + X), (aD[V] + Y))) | |
137 | + | } | |
138 | + | ||
139 | + | ||
140 | + | func aE (d,X,Y) = { | |
141 | + | let aD = Z(d) | |
142 | + | StringEntry(d, W((aD[U] - X), (aD[V] - Y))) | |
143 | + | } | |
144 | + | ||
145 | + | ||
146 | + | func aF () = { | |
147 | + | let aG = getString(f()) | |
148 | + | if ($isInstanceOf(aG, "String")) | |
149 | + | then { | |
150 | + | let aH = aG | |
151 | + | fromBase58String(aH) | |
152 | + | } | |
153 | + | else if ($isInstanceOf(aG, "Unit")) | |
154 | + | then unit | |
155 | + | else throw("Match error") | |
156 | + | } | |
157 | + | ||
158 | + | ||
159 | + | func aI () = { | |
160 | + | let aG = getString(g()) | |
161 | + | if ($isInstanceOf(aG, "String")) | |
162 | + | then { | |
163 | + | let aH = aG | |
164 | + | fromBase58String(aH) | |
165 | + | } | |
166 | + | else if ($isInstanceOf(aG, "Unit")) | |
167 | + | then unit | |
168 | + | else throw("Match error") | |
169 | + | } | |
170 | + | ||
171 | + | ||
172 | + | func aJ (p) = valueOrElse(getInteger(q(p)), 0) | |
173 | + | ||
174 | + | ||
175 | + | func aK (B,aL,aM,aN,R,S) = { | |
176 | + | let aa = Z(z(B)) | |
177 | + | let aO = aa[V] | |
178 | + | let aP = aJ(toBase58String(aL)) | |
179 | + | let aQ = (aP + aM) | |
180 | + | if ((0 > aQ)) | |
181 | + | then throw(((("baseAssetBalanceConsideringLock < 0: baseAssetBalance=" + toString(aP)) + " baseAssetBalanceConsideringLock=") + toString(aQ))) | |
182 | + | else { | |
183 | + | let aR = value(assetInfo(aN)).quantity | |
184 | + | let aq = if ((aR == 0)) | |
185 | + | then (1 * S) | |
186 | + | else fraction(aQ, S, aR) | |
187 | + | $Tuple5(aq, aP, aO, aQ, aR) | |
188 | + | } | |
189 | + | } | |
190 | + | ||
191 | + | ||
192 | + | func aS (B,aL,aN,R,S) = { | |
193 | + | let aa = Z(z(B)) | |
194 | + | let aO = aa[V] | |
195 | + | let aP = aJ(toBase58String(aL)) | |
196 | + | let aQ = aP | |
197 | + | let aR = value(assetInfo(aN)).quantity | |
198 | + | let aq = value(getInteger(s(B))) | |
199 | + | $Tuple5(aq, aP, aO, aQ, aR) | |
200 | + | } | |
201 | + | ||
202 | + | ||
203 | + | func aT (j) = { | |
204 | + | let aL = fromBase58String(j) | |
205 | + | let aU = aB(j) | |
206 | + | let G = aU[L] | |
207 | + | let aN = fromBase58String(G) | |
208 | + | let R = parseIntValue(aU[N]) | |
209 | + | let S = parseIntValue(aU[O]) | |
210 | + | let B = aU[M] | |
211 | + | let aV = aS(B, aL, aN, R, S) | |
212 | + | $Tuple6(IntegerEntry("price", aV._1), IntegerEntry("decimalsMultPrice", S), IntegerEntry("baseAssetBalance", aV._2), IntegerEntry("totalLockedBaseAmount", aV._3), IntegerEntry("baseAssetBalanceConsideringLock", aV._4), IntegerEntry("shareEmission", aV._5)) | |
213 | + | } | |
214 | + | ||
215 | + | ||
216 | + | func aW (aX) = { | |
217 | + | let aY = throw("permission denied") | |
218 | + | let aG = aF() | |
219 | + | if ($isInstanceOf(aG, "ByteVector")) | |
220 | + | then { | |
221 | + | let aZ = aG | |
222 | + | if ((aX.callerPublicKey == aZ)) | |
223 | + | then true | |
224 | + | else aY | |
225 | + | } | |
226 | + | else if ($isInstanceOf(aG, "Unit")) | |
227 | + | then if ((aX.caller == this)) | |
228 | + | then true | |
229 | + | else aY | |
230 | + | else throw("Match error") | |
231 | + | } | |
232 | + | ||
233 | + | ||
234 | + | func ba (aX,p) = { | |
235 | + | let bb = (toString(aX.caller) == valueOrElse(getString(o(p)), b)) | |
236 | + | if (bb) | |
237 | + | then true | |
238 | + | else { | |
239 | + | let bc = aW(aX) | |
240 | + | if ((bc == bc)) | |
241 | + | then true | |
242 | + | else throw("Strict value is not equal to itself.") | |
243 | + | } | |
244 | + | } | |
245 | + | ||
246 | + | ||
247 | + | @Callable(aX) | |
248 | + | func constructor (K) = { | |
249 | + | let bc = aW(aX) | |
250 | + | if ((bc == bc)) | |
251 | + | then [StringEntry(m(), K)] | |
252 | + | else throw("Strict value is not equal to itself.") | |
253 | + | } | |
254 | + | ||
255 | + | ||
256 | + | ||
257 | + | @Callable(aX) | |
258 | + | func adminRegisterAsset (j,bd,be,bf,bg,bh,bi) = { | |
259 | + | let aL = fromBase58String(j) | |
260 | + | let bj = value(assetInfo(aL)).decimals | |
261 | + | let bk = aW(aX) | |
262 | + | if ((bk == bk)) | |
263 | + | then if ((toString(addressFromStringValue(bh)) != bh)) | |
264 | + | then throw("invalid shutdownManagerAddress") | |
265 | + | else if ((0 > bg)) | |
266 | + | then throw(("invalid getDelayinBlocks=" + toString(bg))) | |
267 | + | else { | |
268 | + | let bl = Issue(bd, be, 1, bj, true) | |
269 | + | let aN = calculateAssetId(bl) | |
270 | + | let G = toBase58String(aN) | |
271 | + | let S = ((100 * 1000) * 1000) | |
272 | + | let R = pow(10, 0, bj, 0, 0, DOWN) | |
273 | + | let bm = (1 * S) | |
274 | + | let bn = valueOrElse(getInteger(this, r()), 0) | |
275 | + | let B = toString(bn) | |
276 | + | let bo = invoke(K(), "createOrUpdate", [G, bf, false], nil) | |
277 | + | if ((bo == bo)) | |
278 | + | then { | |
279 | + | let bp = invoke(K(), "addLabel", [G, "DEFI"], nil) | |
280 | + | if ((bp == bp)) | |
281 | + | then [StringEntry(n(j), Q(G, B, R, S, bg)), StringEntry(C(bn), j), StringEntry(E(j), B), StringEntry(F(G), j), StringEntry(H(j), G), BooleanEntry(I(B), false), StringEntry(J(B), bh), IntegerEntry(r(), (bn + 1)), IntegerEntry(s(B), bm), IntegerEntry(w(B, height, lastBlock.timestamp), bm), bl, Burn(aN, 1), StringEntry(o(j), bi)] | |
282 | + | else throw("Strict value is not equal to itself.") | |
283 | + | } | |
284 | + | else throw("Strict value is not equal to itself.") | |
285 | + | } | |
286 | + | else throw("Strict value is not equal to itself.") | |
287 | + | } | |
288 | + | ||
289 | + | ||
290 | + | ||
291 | + | @Callable(aX) | |
292 | + | func shutdownPut (bq) = { | |
293 | + | let br = toString(bq) | |
294 | + | let bs = c(C(bq)) | |
295 | + | let bh = c(J(br)) | |
296 | + | if ((1 > size(bs))) | |
297 | + | then throw("invalid internalBaseAssetId") | |
298 | + | else if ((toString(aX.caller) != bh)) | |
299 | + | then throw("access denied") | |
300 | + | else [BooleanEntry(I(toString(bq)), true)] | |
301 | + | } | |
302 | + | ||
303 | + | ||
304 | + | ||
305 | + | @Callable(aX) | |
306 | + | func put () = { | |
307 | + | let bt = value(aX.payments[0]) | |
308 | + | let aL = value(bt.assetId) | |
309 | + | let j = toBase58String(aL) | |
310 | + | let k = toString(aX.caller) | |
311 | + | let aU = aB(j) | |
312 | + | let G = aU[L] | |
313 | + | let aN = fromBase58String(G) | |
314 | + | let R = parseIntValue(aU[N]) | |
315 | + | let S = parseIntValue(aU[O]) | |
316 | + | let B = aU[M] | |
317 | + | let bu = e(I(B)) | |
318 | + | if (bu) | |
319 | + | then throw("put operation is blocked") | |
320 | + | else { | |
321 | + | let bv = (aJ(j) + bt.amount) | |
322 | + | let aq = aS(B, aL, aN, R, S)._1 | |
323 | + | let X = fraction(bt.amount, S, aq, CEILING) | |
324 | + | [Reissue(aN, X, true), ScriptTransfer(aX.caller, X, aN), StringEntry(ab("P", B, k, toBase58String(aX.transactionId)), aw("FINISHED", bt.amount, aq, X, height, lastBlock.timestamp, height, lastBlock.timestamp)), ScriptTransfer(addressFromStringValue(value(getString(o(j)))), bt.amount, aL), IntegerEntry(q(j), bv)] | |
325 | + | } | |
326 | + | } | |
327 | + | ||
328 | + | ||
329 | + | ||
330 | + | @Callable(aX) | |
331 | + | func submitGetRequest () = { | |
332 | + | let bt = value(aX.payments[0]) | |
333 | + | let aN = value(bt.assetId) | |
334 | + | let G = toBase58String(aN) | |
335 | + | let bw = toBase58String(aX.callerPublicKey) | |
336 | + | let ad = aX.caller | |
337 | + | let k = toString(ad) | |
338 | + | let X = bt.amount | |
339 | + | let j = c(F(G)) | |
340 | + | let aL = fromBase58String(j) | |
341 | + | let aU = aB(j) | |
342 | + | let R = parseIntValue(aU[N]) | |
343 | + | let S = parseIntValue(aU[O]) | |
344 | + | let bx = parseIntValue(aU[P]) | |
345 | + | let B = aU[M] | |
346 | + | let aq = aS(B, aL, aN, R, S)._1 | |
347 | + | let Y = fraction(X, aq, S) | |
348 | + | let by = ab("G", B, k, toBase58String(aX.transactionId)) | |
349 | + | let bz = aw("PENDING", X, aq, Y, height, lastBlock.timestamp, (height + bx), 0) | |
350 | + | [Burn(aN, X), StringEntry(by, bz), aC(z(B), X, Y), aC(A(B, k), X, Y), IntegerEntry(q(j), (aJ(j) - Y))] | |
351 | + | } | |
352 | + | ||
353 | + | ||
354 | + | ||
355 | + | @Callable(aX) | |
356 | + | func executeGetRequest (j,k,l) = { | |
357 | + | let ad = addressFromStringValue(k) | |
358 | + | let bA = aB(j) | |
359 | + | let aN = fromBase58String(bA[L]) | |
360 | + | let aL = fromBase58String(j) | |
361 | + | let B = bA[M] | |
362 | + | let by = ab("G", B, k, l) | |
363 | + | let bB = split(c(by), a) | |
364 | + | let ao = bB[af] | |
365 | + | let au = parseIntValue(bB[al]) | |
366 | + | let bC = parseIntValue(bB[ag]) | |
367 | + | let bD = parseIntValue(bB[ai]) | |
368 | + | if ((ao != "PENDING")) | |
369 | + | then h("Status is not PENDING", j, k, l) | |
370 | + | else if ((au > height)) | |
371 | + | then h(((("EndHeight[" + toString(au)) + "] > ") + toString(height)), j, k, l) | |
372 | + | else [ScriptTransfer(ad, bD, aL), StringEntry(by, ax(bB, "FINISHED", lastBlock.timestamp)), aE(z(B), bC, bD), aE(A(B, k), bC, bD)] | |
373 | + | } | |
374 | + | ||
375 | + | ||
376 | + | ||
377 | + | @Callable(aX) | |
378 | + | func topUpBalance (j,bE) = { | |
379 | + | let bA = aB(j) | |
380 | + | let bt = value(aX.payments[0]) | |
381 | + | let bF = value(bt.assetId) | |
382 | + | let bG = toBase58String(bF) | |
383 | + | let aN = fromBase58String(bA[L]) | |
384 | + | let R = parseIntValue(bA[N]) | |
385 | + | let S = parseIntValue(bA[O]) | |
386 | + | let B = bA[M] | |
387 | + | let bH = u(B, toString(aX.caller)) | |
388 | + | let bI = valueOrElse(getInteger(this, bH), 0) | |
389 | + | let bJ = [ba(aX, j), if ((bI != height)) | |
390 | + | then true | |
391 | + | else throw("only one topUp per block is allowed"), if ((bE > 0)) | |
392 | + | then true | |
393 | + | else throw("only positive delta is allowed")] | |
394 | + | if ((bJ == bJ)) | |
395 | + | then if ((j != bG)) | |
396 | + | then throw("attached payment's asset id is NOT matched passed baseAssetStr") | |
397 | + | else if ((size(aX.payments) > 1)) | |
398 | + | then throw("only one payment can be attached") | |
399 | + | else { | |
400 | + | let aq = aK(B, bF, bE, aN, R, S)._1 | |
401 | + | [IntegerEntry(s(B), aq), IntegerEntry(w(B, height, lastBlock.timestamp), aq), IntegerEntry(bH, height), IntegerEntry(q(bG), (aJ(bG) + bE))] | |
402 | + | } | |
403 | + | else throw("Strict value is not equal to itself.") | |
404 | + | } | |
405 | + | ||
406 | + | ||
407 | + | ||
408 | + | @Callable(aX) | |
409 | + | func currentSysParamsREST (j) = { | |
410 | + | let bK = aT(j) | |
411 | + | let aq = bK._1.value | |
412 | + | let S = bK._2.value | |
413 | + | let aP = bK._3.value | |
414 | + | let aO = bK._4.value | |
415 | + | let aQ = bK._5.value | |
416 | + | let aR = bK._6.value | |
417 | + | let bL = makeString(["startCurrentSysParamsREST", toString(aq), toString(S), toString(aP), toString(aO), toString(aQ), toString(aR), "endCurrentSysParamsREST"], a) | |
418 | + | throw(bL) | |
419 | + | } | |
420 | + | ||
421 | + | ||
422 | + | ||
423 | + | @Callable(aX) | |
424 | + | func setManager (bM) = { | |
425 | + | let bc = aW(aX) | |
426 | + | if ((bc == bc)) | |
427 | + | then { | |
428 | + | let bN = fromBase58String(bM) | |
429 | + | if ((bN == bN)) | |
430 | + | then [StringEntry(g(), bM)] | |
431 | + | else throw("Strict value is not equal to itself.") | |
432 | + | } | |
433 | + | else throw("Strict value is not equal to itself.") | |
434 | + | } | |
435 | + | ||
436 | + | ||
437 | + | ||
438 | + | @Callable(aX) | |
439 | + | func confirmManager () = { | |
440 | + | let bO = aI() | |
441 | + | let bP = if (isDefined(bO)) | |
442 | + | then true | |
443 | + | else throw("no pending manager") | |
444 | + | if ((bP == bP)) | |
445 | + | then { | |
446 | + | let bQ = if ((aX.callerPublicKey == value(bO))) | |
447 | + | then true | |
448 | + | else throw("you are not pending manager") | |
449 | + | if ((bQ == bQ)) | |
450 | + | then [StringEntry(f(), toBase58String(value(bO))), DeleteEntry(g())] | |
451 | + | else throw("Strict value is not equal to itself.") | |
452 | + | } | |
453 | + | else throw("Strict value is not equal to itself.") | |
454 | + | } | |
455 | + | ||
456 | + | ||
457 | + | @Verifier(bR) | |
458 | + | func bS () = { | |
459 | + | let bT = { | |
460 | + | let aG = aF() | |
461 | + | if ($isInstanceOf(aG, "ByteVector")) | |
462 | + | then { | |
463 | + | let aZ = aG | |
464 | + | aZ | |
465 | + | } | |
466 | + | else if ($isInstanceOf(aG, "Unit")) | |
467 | + | then bR.senderPublicKey | |
468 | + | else throw("Match error") | |
469 | + | } | |
470 | + | sigVerify(bR.bodyBytes, bR.proofs[0], bT) | |
471 | + | } | |
472 | + |
github/deemru/w8io/c3f4982 34.64 ms ◑