tx · DPeUt7wnGvdHELznmS9rTXMcaxf3edHYXYHZXjsHXgfQ

3N9yYa7DXfSFLkgzWHmwzTpwd21GUxQApy9:  -0.05000000 Waves

2021.08.12 17:59 [1655298] smart account 3N9yYa7DXfSFLkgzWHmwzTpwd21GUxQApy9 > SELF 0.00000000 Waves

{ "type": 13, "id": "DPeUt7wnGvdHELznmS9rTXMcaxf3edHYXYHZXjsHXgfQ", "fee": 5000000, "feeAssetId": null, "timestamp": 1628780396162, "version": 2, "chainId": 84, "sender": "3N9yYa7DXfSFLkgzWHmwzTpwd21GUxQApy9", "senderPublicKey": "AzWZ4rwReUMi2EBexU5XceFGKPvTcfdkZnygszAEtnYv", "proofs": [ "24AhF1uX5BqREhw4Sar1STSYpHHyDVkb9s55R2MXaSPMExe8GQxAijoTBxhmBtEy3qWdiKVV4mZ2UA2QuCqqdKhA" ], "script": "base64:AAIFAAAAAAAAABcIAhIDCgEBEgASBwoFCAgICAESAwoBAQAAACsAAAAACmxQZGVjaW1hbHMAAAAAAAAAAAgAAAAAEWRlY2ltYWxzTXVsdFByaWNlCQAAaAAAAAIJAABoAAAAAgAAAAAAAAAAZAAAAAAAAAAD6AAAAAAAAAAD6AAAAAADU0VQAgAAAAJfXwAAAAAKUG9vbEFjdGl2ZQAAAAAAAAAAAQAAAAAPUG9vbFB1dERpc2FibGVkAAAAAAAAAAACAAAAABNQb29sTWF0Y2hlckRpc2FibGVkAAAAAAAAAAADAAAAAAxQb29sU2h1dGRvd24AAAAAAAAAAAQAAAAAEGZhY3RvcnlQdWJsaWNLZXkJAAJZAAAAAQIAAAAsNnBKa3J3Zld5aFpqbTNMb1FXUmpqTlZhTHQ1Q1F6cWZnZ3pYeXFyN25yd0EAAAAADmlkeFBvb2xBZGRyZXNzAAAAAAAAAAABAAAAAA1pZHhQb29sU3RhdHVzAAAAAAAAAAACAAAAABBpZHhQb29sTFBBc3NldElkAAAAAAAAAAADAAAAABBpZHhBbW91bnRBc3NldElkAAAAAAAAAAAEAAAAAA9pZHhQcmljZUFzc2V0SWQAAAAAAAAAAAUAAAAAFmlkeEFtb3VudEFzc2V0RGVjaW1hbHMAAAAAAAAAAAYAAAAAFWlkeFByaWNlQXNzZXREZWNpbWFscwAAAAAAAAAABwAAAAAYaWR4QW1vdW50QXNzZXRJbnRlcm5hbElkAAAAAAAAAAAIAAAAABdpZHhQcmljZUFzc2V0SW50ZXJuYWxJZAAAAAAAAAAACQAAAAANaWR4UG9vbFdlaWdodAAAAAAAAAAACgAAAAAVaWR4UG9vbEFtb3VudEFzc2V0QW10AAAAAAAAAAABAAAAABRpZHhQb29sUHJpY2VBc3NldEFtdAAAAAAAAAAAAgAAAAARaWR4UG9vbExQQXNzZXRBbXQAAAAAAAAAAAMBAAAADGtleVByaWNlTGFzdAAAAAACAAAAESVzJXNfX3ByaWNlX19sYXN0AQAAAA9rZXlQcmljZUhpc3RvcnkAAAACAAAAAWgAAAAJdGltZXN0YW1wCQAEuQAAAAIJAARMAAAAAgIAAAAYJXMlcyVkJWRfX3ByaWNlX19oaXN0b3J5CQAETAAAAAIJAAGkAAAAAQUAAAABaAkABEwAAAACCQABpAAAAAEFAAAACXRpbWVzdGFtcAUAAAADbmlsBQAAAANTRVABAAAAEGtleVBvb2xMaXF1aWRpdHkAAAACAAAAE2ludGVybmFsQW1vdW50QXNzZXQAAAASaW50ZXJuYWxQcmljZUFzc2V0CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACCVkJWQlc19fBQAAABNpbnRlcm5hbEFtb3VudEFzc2V0AgAAAAJfXwUAAAASaW50ZXJuYWxQcmljZUFzc2V0AgAAAAhfX2xvY2tlZAEAAAAWa2V5UG9vbExpcXVpZGl0eUJ5VXNlcgAAAAMAAAATaW50ZXJuYWxBbW91bnRBc3NldAAAABJpbnRlcm5hbFByaWNlQXNzZXQAAAALdXNlckFkZHJlc3MJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACiVkJWQlcyVzX18FAAAAE2ludGVybmFsQW1vdW50QXNzZXQCAAAAAl9fBQAAABJpbnRlcm5hbFByaWNlQXNzZXQCAAAAAl9fBQAAAAt1c2VyQWRkcmVzcwIAAAAIX19sb2NrZWQBAAAAEmtleVB1dEFjdGlvbkJ5VXNlcgAAAAIAAAALdXNlckFkZHJlc3MAAAAEdHhJZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAALJXMlcyVzX19QX18FAAAAC3VzZXJBZGRyZXNzAgAAAAJfXwUAAAAEdHhJZAEAAAASa2V5R2V0QWN0aW9uQnlVc2VyAAAAAgAAAAt1c2VyQWRkcmVzcwAAAAR0eElkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAslcyVzJXNfX0dfXwUAAAALdXNlckFkZHJlc3MCAAAAAl9fBQAAAAR0eElkAQAAAClrZXlNYXBwaW5nUG9vbENvbnRyYWN0QWRkcmVzc1RvUG9vbEFzc2V0cwAAAAEAAAATcG9vbENvbnRyYWN0QWRkcmVzcwkAASwAAAACCQABLAAAAAICAAAACCVzJXMlc19fBQAAABNwb29sQ29udHJhY3RBZGRyZXNzAgAAACBfX21hcHBpbmdzX19wb29sQ29udHJhY3QyTHBBc3NldAEAAAANa2V5UG9vbENvbmZpZwAAAAIAAAATYW1vdW50QXNzZXRJbnRlcm5hbAAAABJwcmljZUFzc2V0SW50ZXJuYWwJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIJWQlZCVzX18FAAAAE2Ftb3VudEFzc2V0SW50ZXJuYWwCAAAAAl9fBQAAABJwcmljZUFzc2V0SW50ZXJuYWwCAAAACF9fY29uZmlnAQAAAA1nZXRQb29sQ29uZmlnAAAAAAQAAAAOZmFjdG9yeUFkZHJlc3MJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAAEGZhY3RvcnlQdWJsaWNLZXkEAAAAEWN1cnJlbnRQb29sQXNzZXRzCQAEtQAAAAIJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAA5mYWN0b3J5QWRkcmVzcwkBAAAAKWtleU1hcHBpbmdQb29sQ29udHJhY3RBZGRyZXNzVG9Qb29sQXNzZXRzAAAAAQkABCUAAAABBQAAAAR0aGlzAgAAAClObyBmYWN0b3J5IGNvbmZpZyBmb3VuZCBmb3IgcG9vbCBhZGRyZXNzLgUAAAADU0VQBAAAABFjdXJyZW50UG9vbENvbmZpZwkABLUAAAACCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAOZmFjdG9yeUFkZHJlc3MJAQAAAA1rZXlQb29sQ29uZmlnAAAAAgkAAZEAAAACBQAAABFjdXJyZW50UG9vbEFzc2V0cwAAAAAAAAAAAQkAAZEAAAACBQAAABFjdXJyZW50UG9vbEFzc2V0cwAAAAAAAAAAAgIAAAAoTm8gZmFjdG9yeSBjb25maWcgZm91bmQgZm9yIHBvb2wgYXNzZXRzLgUAAAADU0VQBQAAABFjdXJyZW50UG9vbENvbmZpZwEAAAAQZ2V0UG9vbExpcXVpZGl0eQAAAAIAAAAVYW1vdW50QXNzZXRJbnRlcm5hbElkAAAAFHByaWNlQXNzZXRJbnRlcm5hbElkBAAAABljdXJyZW50UG9vbExpcXVpZGl0eVZhbHVlCQAEIgAAAAEJAQAAABBrZXlQb29sTGlxdWlkaXR5AAAAAgUAAAAVYW1vdW50QXNzZXRJbnRlcm5hbElkBQAAABRwcmljZUFzc2V0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AAAAEWFtb3VudEFzc2V0TG9ja2VkCQAETAAAAAIJAAGkAAAAAQUAAAAQcHJpY2VBc3NldExvY2tlZAkABEwAAAACCQABpAAAAAEFAAAADWxwVG9rZW5Mb2NrZWQFAAAAA25pbAUAAAADU0VQAQAAAA1nZXRTY3JpcHRIYXNoAAAAAAkAAloAAAABCQEAAAAFdmFsdWUAAAABCQAD8QAAAAEFAAAABHRoaXMBAAAAHHByaXZhdGVDYXN0QXNzZXRUb0xQRGVjaW1hbHMAAAACAAAADWFzc2V0RGVjaW1hbHMAAAALYXNzZXRBbW91bnQEAAAADGRlY2ltYWxzTXVsdAkAAGwAAAAGAAAAAAAAAAAKAAAAAAAAAAAACQAAZQAAAAIFAAAACmxQZGVjaW1hbHMFAAAADWFzc2V0RGVjaW1hbHMAAAAAAAAAAAAAAAAAAAAAAAAFAAAABERPV04JAAUUAAAAAgkAAGgAAAACBQAAAAthc3NldEFtb3VudAUAAAAMZGVjaW1hbHNNdWx0BQAAAAxkZWNpbWFsc011bHQBAAAAIHByaXZhdGVDYXN0QXNzZXRUb09yaWdpbkRlY2ltYWxzAAAAAgAAAA1hc3NldERlY2ltYWxzAAAAC2Fzc2V0QW1vdW50BAAAAAxkZWNpbWFsc011bHQJAABsAAAABgAAAAAAAAAACgAAAAAAAAAAAAkAAGUAAAACBQAAAApsUGRlY2ltYWxzBQAAAA1hc3NldERlY2ltYWxzAAAAAAAAAAAAAAAAAAAAAAAABQAAAARET1dOCQAFFAAAAAIJAABpAAAAAgUAAAALYXNzZXRBbW91bnQFAAAADGRlY2ltYWxzTXVsdAUAAAAMZGVjaW1hbHNNdWx0AQAAABVwcml2YXRlQ2FsY3VsYXRlUHJpY2UAAAAEAAAAEmFtb3V0QXNzZXREZWNpbWFscwAAABJwcmljZUFzc2V0RGVjaW1hbHMAAAAOYW1vdW50QXNzZXRBbXQAAAANcHJpY2VBc3NldEFtdAQAAAAYYW1vdW50QXNzZXRQb29sTG9ja2VkQW10CAkBAAAAHHByaXZhdGVDYXN0QXNzZXRUb0xQRGVjaW1hbHMAAAACBQAAABJhbW91dEFzc2V0RGVjaW1hbHMFAAAADmFtb3VudEFzc2V0QW10AAAAAl8xBAAAABdwcmljZUFzc2V0UG9vbExvY2tlZEFtdAgJAQAAABxwcml2YXRlQ2FzdEFzc2V0VG9MUERlY2ltYWxzAAAAAgUAAAAScHJpY2VBc3NldERlY2ltYWxzBQAAAA1wcmljZUFzc2V0QW10AAAAAl8xCQAAawAAAAMFAAAAF3ByaWNlQXNzZXRQb29sTG9ja2VkQW10BQAAABFkZWNpbWFsc011bHRQcmljZQUAAAAYYW1vdW50QXNzZXRQb29sTG9ja2VkQW10AQAAABhwcml2YXRlR2V0UG9vbFN0YXRpc3RpY3MAAAAABAAAABJwb29sQ29uZmlnRGF0YUxpc3QJAQAAAA1nZXRQb29sQ29uZmlnAAAAAAQAAAAJbHBBc3NldElkCQACWQAAAAEJAAGRAAAAAgUAAAAScG9vbENvbmZpZ0RhdGFMaXN0BQAAABBpZHhQb29sTFBBc3NldElkBAAAAA1hbW91bnRBc3NldElkCQABkQAAAAIFAAAAEnBvb2xDb25maWdEYXRhTGlzdAUAAAAQaWR4QW1vdW50QXNzZXRJZAQAAAAMcHJpY2VBc3NldElkCQABkQAAAAIFAAAAEnBvb2xDb25maWdEYXRhTGlzdAUAAAAPaWR4UHJpY2VBc3NldElkBAAAABVhbW91bnRBc3NldEludGVybmFsSWQJAAGRAAAAAgUAAAAScG9vbENvbmZpZ0RhdGFMaXN0BQAAABhpZHhBbW91bnRBc3NldEludGVybmFsSWQEAAAAFHByaWNlQXNzZXRJbnRlcm5hbElkCQABkQAAAAIFAAAAEnBvb2xDb25maWdEYXRhTGlzdAUAAAAXaWR4UHJpY2VBc3NldEludGVybmFsSWQEAAAAEmFtb3V0QXNzZXREZWNpbWFscwkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAEnBvb2xDb25maWdEYXRhTGlzdAUAAAAWaWR4QW1vdW50QXNzZXREZWNpbWFscwQAAAAScHJpY2VBc3NldERlY2ltYWxzCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAScG9vbENvbmZpZ0RhdGFMaXN0BQAAABVpZHhQcmljZUFzc2V0RGVjaW1hbHMEAAAAFXBvb2xMaXF1aWRpdHlEYXRhTGlzdAkBAAAAEGdldFBvb2xMaXF1aWRpdHkAAAACBQAAABVhbW91bnRBc3NldEludGVybmFsSWQFAAAAFHByaWNlQXNzZXRJbnRlcm5hbElkBAAAABZwb29sQW1vdW50QXNzZXRCYWxhbmNlCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAVcG9vbExpcXVpZGl0eURhdGFMaXN0BQAAABVpZHhQb29sQW1vdW50QXNzZXRBbXQEAAAAFXBvb2xQcmljZUFzc2V0QmFsYW5jZQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAFXBvb2xMaXF1aWRpdHlEYXRhTGlzdAUAAAAUaWR4UG9vbFByaWNlQXNzZXRBbXQEAAAADXBvb2xMUEJhbGFuY2UJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAABVwb29sTGlxdWlkaXR5RGF0YUxpc3QFAAAAEWlkeFBvb2xMUEFzc2V0QW10BAAAABhhbW91bnRBc3NldFBvb2xMb2NrZWRBbXQICQEAAAAccHJpdmF0ZUNhc3RBc3NldFRvTFBEZWNpbWFscwAAAAIFAAAAEmFtb3V0QXNzZXREZWNpbWFscwUAAAAWcG9vbEFtb3VudEFzc2V0QmFsYW5jZQAAAAJfMQQAAAAXcHJpY2VBc3NldFBvb2xMb2NrZWRBbXQICQEAAAAccHJpdmF0ZUNhc3RBc3NldFRvTFBEZWNpbWFscwAAAAIFAAAAEnByaWNlQXNzZXREZWNpbWFscwUAAAAVcG9vbFByaWNlQXNzZXRCYWxhbmNlAAAAAl8xBAAAABRscFByaWNlSW5BbW91bnRBc3NldAkAAGsAAAADBQAAABhhbW91bnRBc3NldFBvb2xMb2NrZWRBbXQJAABoAAAAAgAAAAAAAAAAAQUAAAARZGVjaW1hbHNNdWx0UHJpY2UFAAAADXBvb2xMUEJhbGFuY2UEAAAAE2xwUHJpY2VJblByaWNlQXNzZXQJAABrAAAAAwUAAAAXcHJpY2VBc3NldFBvb2xMb2NrZWRBbXQJAABoAAAAAgAAAAAAAAAAAQUAAAARZGVjaW1hbHNNdWx0UHJpY2UFAAAADXBvb2xMUEJhbGFuY2UEAAAADGN1cnJlbnRQcmljZQkBAAAAFXByaXZhdGVDYWxjdWxhdGVQcmljZQAAAAQFAAAAEmFtb3V0QXNzZXREZWNpbWFscwUAAAAScHJpY2VBc3NldERlY2ltYWxzBQAAABZwb29sQW1vdW50QXNzZXRCYWxhbmNlBQAAABVwb29sUHJpY2VBc3NldEJhbGFuY2UJAARMAAAAAgUAAAAWcG9vbEFtb3VudEFzc2V0QmFsYW5jZQkABEwAAAACBQAAABVwb29sUHJpY2VBc3NldEJhbGFuY2UJAARMAAAAAgUAAAANcG9vbExQQmFsYW5jZQkABEwAAAACBQAAAAxjdXJyZW50UHJpY2UJAARMAAAAAgUAAAAUbHBQcmljZUluQW1vdW50QXNzZXQJAARMAAAAAgUAAAATbHBQcmljZUluUHJpY2VBc3NldAUAAAADbmlsAQAAABtwcml2YXRlRXN0aW1hdGVHZXRPcGVyYXRpb24AAAADAAAAEHBheW1lbnRMcEFzc2V0SWQAAAAPcGF5bWVudExwQW1vdW50AAAAC3VzZXJBZGRyZXNzBAAAAA5wb29sQ29uZmlnTGlzdAkBAAAADWdldFBvb2xDb25maWcAAAAABAAAAAlscEFzc2V0SWQJAAGRAAAAAgUAAAAOcG9vbENvbmZpZ0xpc3QFAAAAEGlkeFBvb2xMUEFzc2V0SWQEAAAADWFtb3VudEFzc2V0SWQJAAGRAAAAAgUAAAAOcG9vbENvbmZpZ0xpc3QFAAAAEGlkeEFtb3VudEFzc2V0SWQEAAAADHByaWNlQXNzZXRJZAkAAZEAAAACBQAAAA5wb29sQ29uZmlnTGlzdAUAAAAPaWR4UHJpY2VBc3NldElkBAAAABVhbW91bnRBc3NldEludGVybmFsSWQJAAGRAAAAAgUAAAAOcG9vbENvbmZpZ0xpc3QFAAAAGGlkeEFtb3VudEFzc2V0SW50ZXJuYWxJZAQAAAAUcHJpY2VBc3NldEludGVybmFsSWQJAAGRAAAAAgUAAAAOcG9vbENvbmZpZ0xpc3QFAAAAF2lkeFByaWNlQXNzZXRJbnRlcm5hbElkBAAAABJhbW91dEFzc2V0RGVjaW1hbHMJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA5wb29sQ29uZmlnTGlzdAUAAAAWaWR4QW1vdW50QXNzZXREZWNpbWFscwQAAAAScHJpY2VBc3NldERlY2ltYWxzCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAOcG9vbENvbmZpZ0xpc3QFAAAAFWlkeFByaWNlQXNzZXREZWNpbWFscwQAAAARdXNlckxpcXVpZGl0eUxpc3QJAQAAABZnZXRQb29sTGlxdWlkaXR5QnlVc2VyAAAAAwUAAAAVYW1vdW50QXNzZXRJbnRlcm5hbElkBQAAABRwcmljZUFzc2V0SW50ZXJuYWxJZAUAAAALdXNlckFkZHJlc3MEAAAADXVzZXJMUEJhbGFuY2UJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAABF1c2VyTGlxdWlkaXR5TGlzdAUAAAARaWR4UG9vbExQQXNzZXRBbXQEAAAAFnVzZXJBbW91bnRBc3NldEJhbGFuY2UJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAABF1c2VyTGlxdWlkaXR5TGlzdAUAAAAVaWR4UG9vbEFtb3VudEFzc2V0QW10BAAAABV1c2VyUHJpY2VBc3NldEJhbGFuY2UJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAABF1c2VyTGlxdWlkaXR5TGlzdAUAAAAUaWR4UG9vbFByaWNlQXNzZXRBbXQEAAAAEXBvb2xMaXF1aWRpdHlMaXN0CQEAAAAQZ2V0UG9vbExpcXVpZGl0eQAAAAIFAAAAFWFtb3VudEFzc2V0SW50ZXJuYWxJZAUAAAAUcHJpY2VBc3NldEludGVybmFsSWQEAAAADXBvb2xMUEJhbGFuY2UJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAABFwb29sTGlxdWlkaXR5TGlzdAUAAAARaWR4UG9vbExQQXNzZXRBbXQEAAAAFnBvb2xBbW91bnRBc3NldEJhbGFuY2UJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAABFwb29sTGlxdWlkaXR5TGlzdAUAAAAVaWR4UG9vbEFtb3VudEFzc2V0QW10BAAAABVwb29sUHJpY2VBc3NldEJhbGFuY2UJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAABFwb29sTGlxdWlkaXR5TGlzdAUAAAAUaWR4UG9vbFByaWNlQXNzZXRBbXQDCQEAAAACIT0AAAACBQAAAAlscEFzc2V0SWQFAAAAEHBheW1lbnRMcEFzc2V0SWQJAAACAAAAAQIAAAAVSW52YWxpZCBhc3NldCBwYXNzZWQuAwkAAGYAAAACBQAAAA9wYXltZW50THBBbW91bnQFAAAADXVzZXJMUEJhbGFuY2UJAAACAAAAAQIAAAAySW52YWxpZCBhbW91bnQgcGFzc2VkLiBBbW91bnQgbGVzcyB0aGFuIGF2YWlsYWJsZS4EAAAAGGFtb3VudEFzc2V0UG9vbExvY2tlZEFtdAgJAQAAABxwcml2YXRlQ2FzdEFzc2V0VG9MUERlY2ltYWxzAAAAAgUAAAASYW1vdXRBc3NldERlY2ltYWxzBQAAABZwb29sQW1vdW50QXNzZXRCYWxhbmNlAAAAAl8xBAAAABdwcmljZUFzc2V0UG9vbExvY2tlZEFtdAgJAQAAABxwcml2YXRlQ2FzdEFzc2V0VG9MUERlY2ltYWxzAAAAAgUAAAAScHJpY2VBc3NldERlY2ltYWxzBQAAABVwb29sUHJpY2VBc3NldEJhbGFuY2UAAAACXzEEAAAAEW91dEFtb3VudEFzc2V0QW10CQAAawAAAAMFAAAAGGFtb3VudEFzc2V0UG9vbExvY2tlZEFtdAUAAAAPcGF5bWVudExwQW1vdW50BQAAAA1wb29sTFBCYWxhbmNlBAAAABBvdXRQcmljZUFzc2V0QW10CQAAawAAAAMFAAAAF3ByaWNlQXNzZXRQb29sTG9ja2VkQW10BQAAAA9wYXltZW50THBBbW91bnQFAAAADXBvb2xMUEJhbGFuY2UEAAAAFm91dEFtb3VudEFzc2V0QW10RmluYWwICQEAAAAgcHJpdmF0ZUNhc3RBc3NldFRvT3JpZ2luRGVjaW1hbHMAAAACBQAAABJhbW91dEFzc2V0RGVjaW1hbHMFAAAAEW91dEFtb3VudEFzc2V0QW10AAAAAl8xBAAAABVvdXRQcmljZUFzc2V0QW10RmluYWwICQEAAAAgcHJpdmF0ZUNhc3RBc3NldFRvT3JpZ2luRGVjaW1hbHMAAAACBQAAABJwcmljZUFzc2V0RGVjaW1hbHMFAAAAEG91dFByaWNlQXNzZXRBbXQAAAACXzEDBgkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABZvdXRBbW91bnRBc3NldEFtdEZpbmFsAgAAAAMgLyAJAAGkAAAAAQUAAAAVb3V0UHJpY2VBc3NldEFtdEZpbmFsBAAAAAxjdXJyZW50UHJpY2UJAABrAAAAAwUAAAAXcHJpY2VBc3NldFBvb2xMb2NrZWRBbXQFAAAAEWRlY2ltYWxzTXVsdFByaWNlBQAAABhhbW91bnRBc3NldFBvb2xMb2NrZWRBbXQJAAUgAAAADgUAAAANYW1vdW50QXNzZXRJZAUAAAAMcHJpY2VBc3NldElkBQAAABVhbW91bnRBc3NldEludGVybmFsSWQFAAAAFHByaWNlQXNzZXRJbnRlcm5hbElkBQAAABZ1c2VyQW1vdW50QXNzZXRCYWxhbmNlBQAAABZvdXRBbW91bnRBc3NldEFtdEZpbmFsBQAAABV1c2VyUHJpY2VBc3NldEJhbGFuY2UFAAAAFW91dFByaWNlQXNzZXRBbXRGaW5hbAUAAAARb3V0QW1vdW50QXNzZXRBbXQFAAAADXVzZXJMUEJhbGFuY2UFAAAAFnBvb2xBbW91bnRBc3NldEJhbGFuY2UFAAAAFXBvb2xQcmljZUFzc2V0QmFsYW5jZQUAAAANcG9vbExQQmFsYW5jZQUAAAAMY3VycmVudFByaWNlAQAAABtwcml2YXRlRXN0aW1hdGVQdXRPcGVyYXRpb24AAAAGAAAAEXNsaXBwYWdlVG9sZXJhbmNlAAAAEGluQW1vdW50QXNzZXRBbXQAAAAPaW5BbW91bnRBc3NldElkAAAAD2luUHJpY2VBc3NldEFtdAAAAA5pblByaWNlQXNzZXRJZAAAAAt1c2VyQWRkcmVzcwQAAAAScG9vbENvbmZpZ0RhdGFMaXN0CQEAAAANZ2V0UG9vbENvbmZpZwAAAAAEAAAACWxwQXNzZXRJZAkAAlkAAAABCQABkQAAAAIFAAAAEnBvb2xDb25maWdEYXRhTGlzdAUAAAAQaWR4UG9vbExQQXNzZXRJZAQAAAANYW1vdW50QXNzZXRJZAkAAZEAAAACBQAAABJwb29sQ29uZmlnRGF0YUxpc3QFAAAAEGlkeEFtb3VudEFzc2V0SWQEAAAADHByaWNlQXNzZXRJZAkAAZEAAAACBQAAABJwb29sQ29uZmlnRGF0YUxpc3QFAAAAD2lkeFByaWNlQXNzZXRJZAQAAAAVYW1vdW50QXNzZXRJbnRlcm5hbElkCQABkQAAAAIFAAAAEnBvb2xDb25maWdEYXRhTGlzdAUAAAAYaWR4QW1vdW50QXNzZXRJbnRlcm5hbElkBAAAABRwcmljZUFzc2V0SW50ZXJuYWxJZAkAAZEAAAACBQAAABJwb29sQ29uZmlnRGF0YUxpc3QFAAAAF2lkeFByaWNlQXNzZXRJbnRlcm5hbElkBAAAABJhbW91dEFzc2V0RGVjaW1hbHMJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAABJwb29sQ29uZmlnRGF0YUxpc3QFAAAAFmlkeEFtb3VudEFzc2V0RGVjaW1hbHMEAAAAEnByaWNlQXNzZXREZWNpbWFscwkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAEnBvb2xDb25maWdEYXRhTGlzdAUAAAAVaWR4UHJpY2VBc3NldERlY2ltYWxzBAAAABVwb29sTGlxdWlkaXR5RGF0YUxpc3QJAQAAABBnZXRQb29sTGlxdWlkaXR5AAAAAgUAAAAVYW1vdW50QXNzZXRJbnRlcm5hbElkBQAAABRwcmljZUFzc2V0SW50ZXJuYWxJZAQAAAAWcG9vbEFtb3VudEFzc2V0QmFsYW5jZQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAFXBvb2xMaXF1aWRpdHlEYXRhTGlzdAUAAAAVaWR4UG9vbEFtb3VudEFzc2V0QW10BAAAABVwb29sUHJpY2VBc3NldEJhbGFuY2UJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAABVwb29sTGlxdWlkaXR5RGF0YUxpc3QFAAAAFGlkeFBvb2xQcmljZUFzc2V0QW10BAAAAA1wb29sTFBCYWxhbmNlCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAVcG9vbExpcXVpZGl0eURhdGFMaXN0BQAAABFpZHhQb29sTFBBc3NldEFtdAQAAAAVdXNlckxpcXVpZGl0eURhdGFMaXN0CQEAAAAWZ2V0UG9vbExpcXVpZGl0eUJ5VXNlcgAAAAMFAAAAFWFtb3VudEFzc2V0SW50ZXJuYWxJZAUAAAAUcHJpY2VBc3NldEludGVybmFsSWQFAAAAC3VzZXJBZGRyZXNzBAAAABZ1c2VyQW1vdW50QXNzZXRCYWxhbmNlCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAVdXNlckxpcXVpZGl0eURhdGFMaXN0BQAAABVpZHhQb29sQW1vdW50QXNzZXRBbXQEAAAAFXVzZXJQcmljZUFzc2V0QmFsYW5jZQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAFXVzZXJMaXF1aWRpdHlEYXRhTGlzdAUAAAAUaWR4UG9vbFByaWNlQXNzZXRBbXQEAAAADXVzZXJMUEJhbGFuY2UJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAABV1c2VyTGlxdWlkaXR5RGF0YUxpc3QFAAAAEWlkeFBvb2xMUEFzc2V0QW10AwMJAQAAAAIhPQAAAAIFAAAADWFtb3VudEFzc2V0SWQFAAAAD2luQW1vdW50QXNzZXRJZAYJAQAAAAIhPQAAAAIFAAAADHByaWNlQXNzZXRJZAUAAAAOaW5QcmljZUFzc2V0SWQJAAACAAAAAQIAAAAlSW52YWxpZCBhbW91bnQgb3IgcHJpY2UgYXNzZXQgcGFzc2VkLgQAAAAfaW5BbW91bnRBc3NldEFtdENhbGN1bGF0ZWRUdXBsZQkBAAAAHHByaXZhdGVDYXN0QXNzZXRUb0xQRGVjaW1hbHMAAAACBQAAABJhbW91dEFzc2V0RGVjaW1hbHMFAAAAEGluQW1vdW50QXNzZXRBbXQEAAAAHmluUHJpY2VBc3NldEFtdENhbGN1bGF0ZWRUdXBsZQkBAAAAHHByaXZhdGVDYXN0QXNzZXRUb0xQRGVjaW1hbHMAAAACBQAAABJwcmljZUFzc2V0RGVjaW1hbHMFAAAAD2luUHJpY2VBc3NldEFtdAQAAAAaaW5BbW91bnRBc3NldEFtdENhbGN1bGF0ZWQIBQAAAB9pbkFtb3VudEFzc2V0QW10Q2FsY3VsYXRlZFR1cGxlAAAAAl8xBAAAABlpblByaWNlQXNzZXRBbXRDYWxjdWxhdGVkCAUAAAAeaW5QcmljZUFzc2V0QW10Q2FsY3VsYXRlZFR1cGxlAAAAAl8xBAAAAAl1c2VyUHJpY2UJAABrAAAAAwUAAAAZaW5QcmljZUFzc2V0QW10Q2FsY3VsYXRlZAUAAAARZGVjaW1hbHNNdWx0UHJpY2UFAAAAGmluQW1vdW50QXNzZXRBbXRDYWxjdWxhdGVkBAAAABhhbW91bnRBc3NldFBvb2xMb2NrZWRBbXQJAABoAAAAAgUAAAAWcG9vbEFtb3VudEFzc2V0QmFsYW5jZQgFAAAAH2luQW1vdW50QXNzZXRBbXRDYWxjdWxhdGVkVHVwbGUAAAACXzIEAAAAF3ByaWNlQXNzZXRQb29sTG9ja2VkQW10CQAAaAAAAAIFAAAAFXBvb2xQcmljZUFzc2V0QmFsYW5jZQgFAAAAHmluUHJpY2VBc3NldEFtdENhbGN1bGF0ZWRUdXBsZQAAAAJfMgQAAAALY3VyZW50UHJpY2UDCQAAAAAAAAIFAAAADXBvb2xMUEJhbGFuY2UAAAAAAAAAAAAAAAAAAAAAAAAJAABrAAAAAwUAAAAXcHJpY2VBc3NldFBvb2xMb2NrZWRBbXQFAAAAEWRlY2ltYWxzTXVsdFByaWNlBQAAABhhbW91bnRBc3NldFBvb2xMb2NrZWRBbXQEAAAAC291dExwQW1vdW50AwkAAAAAAAACBQAAAA1wb29sTFBCYWxhbmNlAAAAAAAAAAAABAAAAAVwYXJ0QQkAAGwAAAAGBQAAABppbkFtb3VudEFzc2V0QW10Q2FsY3VsYXRlZAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAQAAAAAAAAAAAAUAAAAERE9XTgQAAAAFcGFydEIJAABsAAAABgUAAAAZaW5QcmljZUFzc2V0QW10Q2FsY3VsYXRlZAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAQAAAAAAAAAAAAUAAAAERE9XTgkAAGgAAAACBQAAAAVwYXJ0QQUAAAAFcGFydEIEAAAACHNsaXBwYWdlCQAAawAAAAMFAAAAC2N1cmVudFByaWNlAAAAAAAAAABkBQAAAAl1c2VyUHJpY2UDCQAAZgAAAAIFAAAACHNsaXBwYWdlBQAAABFzbGlwcGFnZVRvbGVyYW5jZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAA9QcmljZSBzbGlwcGFnZSAJAAGkAAAAAQUAAAAIc2xpcHBhZ2UCAAAAHiBleGNlZWRlZCB0aGUgcGFzc2VkIGxpbWl0IG9mIAkAAaQAAAABBQAAABFzbGlwcGFnZVRvbGVyYW5jZQQAAAASbHBBbXRCeUFtb3VudEFzc2V0CQAAawAAAAMFAAAADXBvb2xMUEJhbGFuY2UFAAAAGmluQW1vdW50QXNzZXRBbXRDYWxjdWxhdGVkBQAAABhhbW91bnRBc3NldFBvb2xMb2NrZWRBbXQEAAAAEWxwQW10QnlQcmljZUFzc2V0CQAAawAAAAMFAAAADXBvb2xMUEJhbGFuY2UFAAAAGWluUHJpY2VBc3NldEFtdENhbGN1bGF0ZWQFAAAAF3ByaWNlQXNzZXRQb29sTG9ja2VkQW10AwkAAGYAAAACBQAAABFscEFtdEJ5UHJpY2VBc3NldAUAAAASbHBBbXRCeUFtb3VudEFzc2V0BQAAABJscEFtdEJ5QW1vdW50QXNzZXQFAAAAEWxwQW10QnlQcmljZUFzc2V0CQAFHQAAAAsFAAAAC291dExwQW1vdW50BQAAAAtjdXJlbnRQcmljZQUAAAAWdXNlckFtb3VudEFzc2V0QmFsYW5jZQUAAAAVdXNlclByaWNlQXNzZXRCYWxhbmNlBQAAAA11c2VyTFBCYWxhbmNlBQAAABZwb29sQW1vdW50QXNzZXRCYWxhbmNlBQAAABVwb29sUHJpY2VBc3NldEJhbGFuY2UFAAAADXBvb2xMUEJhbGFuY2UFAAAAFWFtb3VudEFzc2V0SW50ZXJuYWxJZAUAAAAUcHJpY2VBc3NldEludGVybmFsSWQFAAAACWxwQXNzZXRJZAAAAAQAAAABaQEAAAADcHV0AAAAAQAAABFzbGlwcGFnZVRvbGVyYW5jZQQAAAAOcG10QW1vdW50QXNzZXQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAAEGluQW1vdW50QXNzZXRBbXQIBQAAAA5wbXRBbW91bnRBc3NldAAAAAZhbW91bnQEAAAAD2luQW1vdW50QXNzZXRJZAMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAA5wbXRBbW91bnRBc3NldAAAAAdhc3NldElkCQACWQAAAAECAAAAAAkBAAAABXZhbHVlAAAAAQgFAAAADnBtdEFtb3VudEFzc2V0AAAAB2Fzc2V0SWQEAAAADXBtdFByaWNlQXNzZXQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEEAAAAD2luUHJpY2VBc3NldEFtdAgFAAAADXBtdFByaWNlQXNzZXQAAAAGYW1vdW50BAAAAA5pblByaWNlQXNzZXRJZAkBAAAABXZhbHVlAAAAAQgFAAAADXBtdFByaWNlQXNzZXQAAAAHYXNzZXRJZAQAAAATZXN0aW1hdGVkUHV0UmVzdWx0cwkBAAAAG3ByaXZhdGVFc3RpbWF0ZVB1dE9wZXJhdGlvbgAAAAYFAAAAEXNsaXBwYWdlVG9sZXJhbmNlBQAAABBpbkFtb3VudEFzc2V0QW10CQACWAAAAAEFAAAAD2luQW1vdW50QXNzZXRJZAUAAAAPaW5QcmljZUFzc2V0QW10CQACWAAAAAEFAAAADmluUHJpY2VBc3NldElkCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAALb3V0THBBbW91bnQIBQAAABNlc3RpbWF0ZWRQdXRSZXN1bHRzAAAAAl8xBAAAAAtjdXJlbnRQcmljZQgFAAAAE2VzdGltYXRlZFB1dFJlc3VsdHMAAAACXzIEAAAAFnVzZXJBbW91bnRBc3NldEJhbGFuY2UIBQAAABNlc3RpbWF0ZWRQdXRSZXN1bHRzAAAAAl8zBAAAABV1c2VyUHJpY2VBc3NldEJhbGFuY2UIBQAAABNlc3RpbWF0ZWRQdXRSZXN1bHRzAAAAAl80BAAAAA11c2VyTFBCYWxhbmNlCAUAAAATZXN0aW1hdGVkUHV0UmVzdWx0cwAAAAJfNQQAAAAWcG9vbEFtb3VudEFzc2V0QmFsYW5jZQgFAAAAE2VzdGltYXRlZFB1dFJlc3VsdHMAAAACXzYEAAAAFXBvb2xQcmljZUFzc2V0QmFsYW5jZQgFAAAAE2VzdGltYXRlZFB1dFJlc3VsdHMAAAACXzcEAAAADXBvb2xMUEJhbGFuY2UIBQAAABNlc3RpbWF0ZWRQdXRSZXN1bHRzAAAAAl84BAAAABVhbW91bnRBc3NldEludGVybmFsSWQIBQAAABNlc3RpbWF0ZWRQdXRSZXN1bHRzAAAAAl85BAAAABRwcmljZUFzc2V0SW50ZXJuYWxJZAgFAAAAE2VzdGltYXRlZFB1dFJlc3VsdHMAAAADXzEwBAAAAAlscEFzc2V0SWQIBQAAABNlc3RpbWF0ZWRQdXRSZXN1bHRzAAAAA18xMQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAMa2V5UHJpY2VMYXN0AAAAAAkAASwAAAACAgAAAAQlc19fCQABpAAAAAEFAAAAC2N1cmVudFByaWNlCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA9rZXlQcmljZUhpc3RvcnkAAAACBQAAAAZoZWlnaHQIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQABLAAAAAICAAAABCVzX18JAAGkAAAAAQUAAAALY3VyZW50UHJpY2UJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEmtleVB1dEFjdGlvbkJ5VXNlcgAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQJAQAAABFkYXRhUHV0QWN0aW9uSW5mbwAAAAcFAAAAEGluQW1vdW50QXNzZXRBbXQFAAAAD2luUHJpY2VBc3NldEFtdAUAAAALb3V0THBBbW91bnQFAAAAC2N1cmVudFByaWNlBQAAABFzbGlwcGFnZVRvbGVyYW5jZQUAAAAGaGVpZ2h0CAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAWa2V5UG9vbExpcXVpZGl0eUJ5VXNlcgAAAAMFAAAAFWFtb3VudEFzc2V0SW50ZXJuYWxJZAUAAAAUcHJpY2VBc3NldEludGVybmFsSWQJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQEAAAARZGF0YVBvb2xMaXF1aWRpdHkAAAADCQAAZAAAAAIFAAAAFnVzZXJBbW91bnRBc3NldEJhbGFuY2UFAAAAEGluQW1vdW50QXNzZXRBbXQJAABkAAAAAgUAAAAVdXNlclByaWNlQXNzZXRCYWxhbmNlBQAAAA9pblByaWNlQXNzZXRBbXQJAABkAAAAAgUAAAANdXNlckxQQmFsYW5jZQUAAAALb3V0THBBbW91bnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEGtleVBvb2xMaXF1aWRpdHkAAAACBQAAABVhbW91bnRBc3NldEludGVybmFsSWQFAAAAFHByaWNlQXNzZXRJbnRlcm5hbElkCQEAAAARZGF0YVBvb2xMaXF1aWRpdHkAAAADCQAAZAAAAAIFAAAAFnBvb2xBbW91bnRBc3NldEJhbGFuY2UFAAAAEGluQW1vdW50QXNzZXRBbXQJAABkAAAAAgUAAAAVcG9vbFByaWNlQXNzZXRCYWxhbmNlBQAAAA9pblByaWNlQXNzZXRBbXQJAABkAAAAAgUAAAANcG9vbExQQmFsYW5jZQUAAAALb3V0THBBbW91bnQJAARMAAAAAgkBAAAAB1JlaXNzdWUAAAADBQAAAAlscEFzc2V0SWQFAAAAC291dExwQW1vdW50BgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAC291dExwQW1vdW50BQAAAAlscEFzc2V0SWQFAAAAA25pbAAAAAFpAQAAAANnZXQAAAAABAAAAA5wbXRBbW91bnRBc3NldAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAKcG10QXNzZXRJZAkBAAAABXZhbHVlAAAAAQgFAAAADnBtdEFtb3VudEFzc2V0AAAAB2Fzc2V0SWQEAAAADnBtdEFzc2V0QW1vdW50CAUAAAAOcG10QW1vdW50QXNzZXQAAAAGYW1vdW50BAAAAAdyZXN1bHRzCQEAAAAbcHJpdmF0ZUVzdGltYXRlR2V0T3BlcmF0aW9uAAAAAwkAAlgAAAABBQAAAApwbXRBc3NldElkBQAAAA5wbXRBc3NldEFtb3VudAkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAADWFtb3VudEFzc2V0SWQIBQAAAAdyZXN1bHRzAAAAAl8xBAAAAAxwcmljZUFzc2V0SWQIBQAAAAdyZXN1bHRzAAAAAl8yBAAAABVhbW91bnRBc3NldEludGVybmFsSWQIBQAAAAdyZXN1bHRzAAAAAl8zBAAAABRwcmljZUFzc2V0SW50ZXJuYWxJZAgFAAAAB3Jlc3VsdHMAAAACXzQEAAAAFnVzZXJBbW91bnRBc3NldEJhbGFuY2UIBQAAAAdyZXN1bHRzAAAAAl81BAAAABFvdXRBbW91bnRBc3NldEFtdAgFAAAAB3Jlc3VsdHMAAAACXzYEAAAAFXVzZXJQcmljZUFzc2V0QmFsYW5jZQgFAAAAB3Jlc3VsdHMAAAACXzcEAAAAEG91dFByaWNlQXNzZXRBbXQIBQAAAAdyZXN1bHRzAAAAAl84BAAAAA11c2VyTFBCYWxhbmNlCAUAAAAHcmVzdWx0cwAAAAJfOQQAAAAWcG9vbEFtb3VudEFzc2V0QmFsYW5jZQgFAAAAB3Jlc3VsdHMAAAADXzExBAAAABVwb29sUHJpY2VBc3NldEJhbGFuY2UIBQAAAAdyZXN1bHRzAAAAA18xMgQAAAANcG9vbExQQmFsYW5jZQgFAAAAB3Jlc3VsdHMAAAADXzEzBAAAAAxjdXJyZW50UHJpY2UIBQAAAAdyZXN1bHRzAAAAA18xNAkABEwAAAACCQEAAAAEQnVybgAAAAIFAAAACnBtdEFzc2V0SWQFAAAADnBtdEFzc2V0QW1vdW50CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAARb3V0QW1vdW50QXNzZXRBbXQDCQAAAAAAAAIFAAAADWFtb3VudEFzc2V0SWQCAAAAAAUAAAAEdW5pdAkAAlkAAAABBQAAAA1hbW91bnRBc3NldElkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAQb3V0UHJpY2VBc3NldEFtdAkAAlkAAAABBQAAAAxwcmljZUFzc2V0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAFmtleVBvb2xMaXF1aWRpdHlCeVVzZXIAAAADBQAAABVhbW91bnRBc3NldEludGVybmFsSWQFAAAAFHByaWNlQXNzZXRJbnRlcm5hbElkCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgkBAAAAEWRhdGFQb29sTGlxdWlkaXR5AAAAAwkAAGUAAAACBQAAABZ1c2VyQW1vdW50QXNzZXRCYWxhbmNlBQAAABFvdXRBbW91bnRBc3NldEFtdAkAAGUAAAACBQAAABV1c2VyUHJpY2VBc3NldEJhbGFuY2UFAAAAEG91dFByaWNlQXNzZXRBbXQJAABlAAAAAgUAAAANdXNlckxQQmFsYW5jZQUAAAAOcG10QXNzZXRBbW91bnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEGtleVBvb2xMaXF1aWRpdHkAAAACBQAAABVhbW91bnRBc3NldEludGVybmFsSWQFAAAAFHByaWNlQXNzZXRJbnRlcm5hbElkCQEAAAARZGF0YVBvb2xMaXF1aWRpdHkAAAADCQAAZQAAAAIFAAAAFnBvb2xBbW91bnRBc3NldEJhbGFuY2UFAAAAEW91dEFtb3VudEFzc2V0QW10CQAAZQAAAAIFAAAAFXBvb2xQcmljZUFzc2V0QmFsYW5jZQUAAAAQb3V0UHJpY2VBc3NldEFtdAkAAGUAAAACBQAAAA1wb29sTFBCYWxhbmNlBQAAAA5wbXRBc3NldEFtb3VudAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAASa2V5R2V0QWN0aW9uQnlVc2VyAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIJAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAkBAAAAEWRhdGFHZXRBY3Rpb25JbmZvAAAABgUAAAARb3V0QW1vdW50QXNzZXRBbXQFAAAAEG91dFByaWNlQXNzZXRBbXQFAAAADnBtdEFzc2V0QW1vdW50BQAAAAxjdXJyZW50UHJpY2UFAAAABmhlaWdodAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAADGtleVByaWNlTGFzdAAAAAAJAAEsAAAAAgIAAAAEJXNfXwkAAaQAAAABBQAAAAxjdXJyZW50UHJpY2UJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAD2tleVByaWNlSGlzdG9yeQAAAAIFAAAABmhlaWdodAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAAEsAAAAAgIAAAAEJXNfXwkAAaQAAAABBQAAAAxjdXJyZW50UHJpY2UFAAAAA25pbAAAAAFpAQAAAAhhY3RpdmF0ZQAAAAUAAAAOYW1vdW50QXNzZXRTdHIAAAANcHJpY2VBc3NldFN0cgAAAAtscEFzc2V0TmFtZQAAAAxscEFzc2V0RGVzY3IAAAAKcG9vbFdlaWdodAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQUAAAAQZmFjdG9yeVB1YmxpY0tleQkAAAIAAAABAgAAABJwZXJtaXNzaW9ucyBkZW5pZWQEAAAADWFtb3VudEFzc2V0SWQJAAJZAAAAAQUAAAAOYW1vdW50QXNzZXRTdHIEAAAAE2Ftb3VudEFzc2V0RGVjaW1hbHMICQEAAAAFdmFsdWUAAAABCQAD7AAAAAEFAAAADWFtb3VudEFzc2V0SWQAAAAIZGVjaW1hbHMEAAAADHByaWNlQXNzZXRJZAkAAlkAAAABBQAAAA1wcmljZUFzc2V0U3RyBAAAABJwcmljZUFzc2V0RGVjaW1hbHMICQEAAAAFdmFsdWUAAAABCQAD7AAAAAEFAAAADHByaWNlQXNzZXRJZAAAAAhkZWNpbWFscwQAAAASbHBBc3NldElzc3VlQWN0aW9uCQAEQgAAAAUFAAAAC2xwQXNzZXROYW1lBQAAAAxscEFzc2V0RGVzY3IAAAAAAAAAAAEAAAAAAAAAAAgGBAAAAAlscEFzc2V0SWQJAAQ4AAAAAQUAAAASbHBBc3NldElzc3VlQWN0aW9uBAAAABFscEFzc2V0SWRBc1N0cmluZwkAAlgAAAABBQAAAAlscEFzc2V0SWQJAAUUAAAAAgkABEwAAAACBQAAABJscEFzc2V0SXNzdWVBY3Rpb24JAARMAAAAAgkBAAAABEJ1cm4AAAACBQAAAAlscEFzc2V0SWQAAAAAAAAAAAEFAAAAA25pbAUAAAARbHBBc3NldElkQXNTdHJpbmcAAAABaQEAAAAGbWFuYWdlAAAAAQAAAAZzdGF0dXMFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5B0lR6A==", "height": 1655298, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: De9XQDZ8XxPaTcmakSZuh13BK719YcNToZRRZuU2DvK1 Next: H2t2ndYUuGgHU8Gna1YaTPfVUgkQNpQMMesszuZGpbUT Diff:
OldNewDifferences
112112 }
113113
114114
115-func ar (as,at,au,av) = {
116- let aw = an(as, au)._1
117- let ax = an(at, av)._1
118- fraction(ax, b, aw)
115+func ar (ao,ap) = {
116+ let aq = pow(10, 0, (a - ao), 0, 0, DOWN)
117+ $Tuple2((ap / aq), aq)
119118 }
120119
121120
122-func ay () = {
123- let az = M()
124- let aA = fromBase58String(az[k])
125- let aB = az[l]
126- let aC = az[m]
127- let R = az[p]
128- let S = az[q]
129- let as = parseIntValue(az[n])
130- let at = parseIntValue(az[o])
131- let aD = Q(R, S)
132- let aE = parseIntValue(aD[s])
133- let aF = parseIntValue(aD[t])
134- let aG = parseIntValue(aD[u])
135- let aw = an(as, aE)._1
136- let ax = an(at, aF)._1
137- let aH = fraction(aw, (1 * b), aG)
138- let aI = fraction(ax, (1 * b), aG)
139- let aJ = ar(as, at, aE, aF)
140-[aE, aF, aG, aJ, aH, aI]
121+func as (at,au,av,aw) = {
122+ let ax = an(at, av)._1
123+ let ay = an(au, aw)._1
124+ fraction(ay, b, ax)
141125 }
142126
143127
144-func aK (aL,aM,D) = {
145- let aN = M()
146- let aA = aN[k]
147- let aB = aN[l]
148- let aC = aN[m]
149- let R = aN[p]
150- let S = aN[q]
151- let as = parseIntValue(aN[n])
152- let at = parseIntValue(aN[o])
153- let aO = U(R, S, D)
154- let aP = parseIntValue(aO[u])
155- let aQ = parseIntValue(aO[s])
156- let aR = parseIntValue(aO[t])
157- let aS = Q(R, S)
158- let aG = parseIntValue(aS[u])
159- let aE = parseIntValue(aS[s])
160- let aF = parseIntValue(aS[t])
161- if ((aA != aL))
128+func az () = {
129+ let aA = M()
130+ let aB = fromBase58String(aA[k])
131+ let aC = aA[l]
132+ let aD = aA[m]
133+ let R = aA[p]
134+ let S = aA[q]
135+ let at = parseIntValue(aA[n])
136+ let au = parseIntValue(aA[o])
137+ let aE = Q(R, S)
138+ let aF = parseIntValue(aE[s])
139+ let aG = parseIntValue(aE[t])
140+ let aH = parseIntValue(aE[u])
141+ let ax = an(at, aF)._1
142+ let ay = an(au, aG)._1
143+ let aI = fraction(ax, (1 * b), aH)
144+ let aJ = fraction(ay, (1 * b), aH)
145+ let aK = as(at, au, aF, aG)
146+[aF, aG, aH, aK, aI, aJ]
147+ }
148+
149+
150+func aL (aM,aN,D) = {
151+ let aO = M()
152+ let aB = aO[k]
153+ let aC = aO[l]
154+ let aD = aO[m]
155+ let R = aO[p]
156+ let S = aO[q]
157+ let at = parseIntValue(aO[n])
158+ let au = parseIntValue(aO[o])
159+ let aP = U(R, S, D)
160+ let aQ = parseIntValue(aP[u])
161+ let aR = parseIntValue(aP[s])
162+ let aS = parseIntValue(aP[t])
163+ let aT = Q(R, S)
164+ let aH = parseIntValue(aT[u])
165+ let aF = parseIntValue(aT[s])
166+ let aG = parseIntValue(aT[t])
167+ if ((aB != aM))
162168 then throw("Invalid asset passed.")
163- else if ((aM > aP))
169+ else if ((aN > aQ))
164170 then throw("Invalid amount passed. Amount less than available.")
165171 else {
166- let aw = an(as, aE)._1
167172 let ax = an(at, aF)._1
168- let ai = fraction(aw, aM, aG)
169- let aj = fraction(ax, aM, aG)
173+ let ay = an(au, aG)._1
174+ let ai = fraction(ax, aN, aH)
175+ let aj = fraction(ay, aN, aH)
176+ let aU = ar(at, ai)._1
177+ let aV = ar(au, aj)._1
170178 if (true)
171- then throw(((toString(ai) + " / ") + toString(aj)))
179+ then throw(((toString(aU) + " / ") + toString(aV)))
172180 else {
173- let aJ = fraction(ax, b, aw)
174- $Tuple14(aB, aC, R, S, aQ, ai, aR, aj, ai, aP, aE, aF, aG, aJ)
181+ let aK = fraction(ay, b, ax)
182+ $Tuple14(aC, aD, R, S, aR, aU, aS, aV, ai, aQ, aF, aG, aH, aK)
175183 }
176184 }
177185 }
178186
179187
180-func aT (aU,aa,aV,ab,aW,D) = {
181- let az = M()
182- let aA = fromBase58String(az[k])
183- let aB = az[l]
184- let aC = az[m]
185- let R = az[p]
186- let S = az[q]
187- let as = parseIntValue(az[n])
188- let at = parseIntValue(az[o])
189- let aD = Q(R, S)
190- let aE = parseIntValue(aD[s])
191- let aF = parseIntValue(aD[t])
192- let aG = parseIntValue(aD[u])
193- let aX = U(R, S, D)
194- let aQ = parseIntValue(aX[s])
195- let aR = parseIntValue(aX[t])
196- let aP = parseIntValue(aX[u])
197- if (if ((aB != aV))
188+func aW (aX,aa,aY,ab,aZ,D) = {
189+ let aA = M()
190+ let aB = fromBase58String(aA[k])
191+ let aC = aA[l]
192+ let aD = aA[m]
193+ let R = aA[p]
194+ let S = aA[q]
195+ let at = parseIntValue(aA[n])
196+ let au = parseIntValue(aA[o])
197+ let aE = Q(R, S)
198+ let aF = parseIntValue(aE[s])
199+ let aG = parseIntValue(aE[t])
200+ let aH = parseIntValue(aE[u])
201+ let ba = U(R, S, D)
202+ let aR = parseIntValue(ba[s])
203+ let aS = parseIntValue(ba[t])
204+ let aQ = parseIntValue(ba[u])
205+ if (if ((aC != aY))
198206 then true
199- else (aC != aW))
207+ else (aD != aZ))
200208 then throw("Invalid amount or price asset passed.")
201209 else {
202- let aY = an(as, aa)
203- let aZ = an(at, ab)
204- let ba = aY._1
205- let bb = aZ._1
206- let bc = fraction(bb, b, ba)
207- let aw = (aE * aY._2)
208- let ax = (aF * aZ._2)
209- let bd = if ((aG == 0))
210+ let bb = an(at, aa)
211+ let bc = an(au, ab)
212+ let bd = bb._1
213+ let be = bc._1
214+ let bf = fraction(be, b, bd)
215+ let ax = (aF * bb._2)
216+ let ay = (aG * bc._2)
217+ let bg = if ((aH == 0))
210218 then 0
211- else fraction(ax, b, aw)
212- let be = if ((aG == 0))
219+ else fraction(ay, b, ax)
220+ let bh = if ((aH == 0))
213221 then {
214- let bf = pow(ba, 0, 5, 1, 0, DOWN)
215- let bg = pow(bb, 0, 5, 1, 0, DOWN)
216- (bf * bg)
222+ let bi = pow(bd, 0, 5, 1, 0, DOWN)
223+ let bj = pow(be, 0, 5, 1, 0, DOWN)
224+ (bi * bj)
217225 }
218226 else {
219- let bh = fraction(bd, 100, bc)
220- if ((bh > aU))
221- then throw(((("Price slippage " + toString(bh)) + " exceeded the passed limit of ") + toString(aU)))
227+ let bk = fraction(bg, 100, bf)
228+ if ((bk > aX))
229+ then throw(((("Price slippage " + toString(bk)) + " exceeded the passed limit of ") + toString(aX)))
222230 else {
223- let bi = fraction(aG, ba, aw)
224- let bj = fraction(aG, bb, ax)
225- if ((bj > bi))
226- then bi
227- else bj
231+ let bl = fraction(aH, bd, ax)
232+ let bm = fraction(aH, be, ay)
233+ if ((bm > bl))
234+ then bl
235+ else bm
228236 }
229237 }
230- $Tuple11(be, bd, aQ, aR, aP, aE, aF, aG, R, S, aA)
238+ $Tuple11(bh, bg, aR, aS, aQ, aF, aG, aH, R, S, aB)
231239 }
232240 }
233241
234242
235-@Callable(bk)
236-func put (aU) = {
237- let bl = value(bk.payments[0])
238- let aa = bl.amount
239- let aV = if (!(isDefined(bl.assetId)))
243+@Callable(bn)
244+func put (aX) = {
245+ let bo = value(bn.payments[0])
246+ let aa = bo.amount
247+ let aY = if (!(isDefined(bo.assetId)))
240248 then fromBase58String("")
241- else value(bl.assetId)
242- let bm = value(bk.payments[1])
243- let ab = bm.amount
244- let aW = value(bm.assetId)
245- let bn = aT(aU, aa, toBase58String(aV), ab, toBase58String(aW), toString(bk.caller))
246- let be = bn._1
247- let bd = bn._2
248- let aQ = bn._3
249- let aR = bn._4
250- let aP = bn._5
251- let aE = bn._6
252- let aF = bn._7
253- let aG = bn._8
254- let R = bn._9
255- let S = bn._10
256- let aA = bn._11
257-[StringEntry(v(), ("%s__" + toString(bd))), StringEntry(w(height, lastBlock.timestamp), ("%s__" + toString(bd))), StringEntry(E(toString(bk.caller), toBase58String(bk.transactionId)), Z(aa, ab, be, bd, aU, height, lastBlock.timestamp)), StringEntry(C(R, S, toString(bk.caller)), V((aQ + aa), (aR + ab), (aP + be))), StringEntry(z(R, S), V((aE + aa), (aF + ab), (aG + be))), Reissue(aA, be, true), ScriptTransfer(bk.caller, be, aA)]
249+ else value(bo.assetId)
250+ let bp = value(bn.payments[1])
251+ let ab = bp.amount
252+ let aZ = value(bp.assetId)
253+ let bq = aW(aX, aa, toBase58String(aY), ab, toBase58String(aZ), toString(bn.caller))
254+ let bh = bq._1
255+ let bg = bq._2
256+ let aR = bq._3
257+ let aS = bq._4
258+ let aQ = bq._5
259+ let aF = bq._6
260+ let aG = bq._7
261+ let aH = bq._8
262+ let R = bq._9
263+ let S = bq._10
264+ let aB = bq._11
265+[StringEntry(v(), ("%s__" + toString(bg))), StringEntry(w(height, lastBlock.timestamp), ("%s__" + toString(bg))), StringEntry(E(toString(bn.caller), toBase58String(bn.transactionId)), Z(aa, ab, bh, bg, aX, height, lastBlock.timestamp)), StringEntry(C(R, S, toString(bn.caller)), V((aR + aa), (aS + ab), (aQ + bh))), StringEntry(z(R, S), V((aF + aa), (aG + ab), (aH + bh))), Reissue(aB, bh, true), ScriptTransfer(bn.caller, bh, aB)]
258266 }
259267
260268
261269
262-@Callable(bk)
270+@Callable(bn)
263271 func get () = {
264- let bl = value(bk.payments[0])
265- let bo = value(bl.assetId)
266- let bp = bl.amount
267- let bq = aK(toBase58String(bo), bp, toString(bk.caller))
268- let aB = bq._1
269- let aC = bq._2
270- let R = bq._3
271- let S = bq._4
272- let aQ = bq._5
273- let ai = bq._6
274- let aR = bq._7
275- let aj = bq._8
276- let aP = bq._9
277- let aE = bq._11
278- let aF = bq._12
279- let aG = bq._13
280- let aJ = bq._14
281-[Burn(bo, bp), ScriptTransfer(bk.caller, ai, if ((aB == ""))
272+ let bo = value(bn.payments[0])
273+ let br = value(bo.assetId)
274+ let bs = bo.amount
275+ let bt = aL(toBase58String(br), bs, toString(bn.caller))
276+ let aC = bt._1
277+ let aD = bt._2
278+ let R = bt._3
279+ let S = bt._4
280+ let aR = bt._5
281+ let ai = bt._6
282+ let aS = bt._7
283+ let aj = bt._8
284+ let aQ = bt._9
285+ let aF = bt._11
286+ let aG = bt._12
287+ let aH = bt._13
288+ let aK = bt._14
289+[Burn(br, bs), ScriptTransfer(bn.caller, ai, if ((aC == ""))
282290 then unit
283- else fromBase58String(aB)), ScriptTransfer(bk.caller, aj, fromBase58String(aC)), StringEntry(C(R, S, toString(bk.caller)), V((aQ - ai), (aR - aj), (aP - bp))), StringEntry(z(R, S), V((aE - ai), (aF - aj), (aG - bp))), StringEntry(G(toString(bk.caller), toBase58String(bk.transactionId)), ah(ai, aj, bp, aJ, height, lastBlock.timestamp)), StringEntry(v(), ("%s__" + toString(aJ))), StringEntry(w(height, lastBlock.timestamp), ("%s__" + toString(aJ)))]
291+ else fromBase58String(aC)), ScriptTransfer(bn.caller, aj, fromBase58String(aD)), StringEntry(C(R, S, toString(bn.caller)), V((aR - ai), (aS - aj), (aQ - bs))), StringEntry(z(R, S), V((aF - ai), (aG - aj), (aH - bs))), StringEntry(G(toString(bn.caller), toBase58String(bn.transactionId)), ah(ai, aj, bs, aK, height, lastBlock.timestamp)), StringEntry(v(), ("%s__" + toString(aK))), StringEntry(w(height, lastBlock.timestamp), ("%s__" + toString(aK)))]
284292 }
285293
286294
287295
288-@Callable(bk)
289-func activate (br,bs,bt,bu,bv) = if ((bk.callerPublicKey != h))
296+@Callable(bn)
297+func activate (bu,bv,bw,bx,by) = if ((bn.callerPublicKey != h))
290298 then throw("permissions denied")
291299 else {
292- let aB = fromBase58String(br)
293- let bw = value(assetInfo(aB)).decimals
294- let aC = fromBase58String(bs)
295- let at = value(assetInfo(aC)).decimals
296- let bx = Issue(bt, bu, 1, 8, true)
297- let aA = calculateAssetId(bx)
298- let by = toBase58String(aA)
299- $Tuple2([bx, Burn(aA, 1)], by)
300+ let aC = fromBase58String(bu)
301+ let bz = value(assetInfo(aC)).decimals
302+ let aD = fromBase58String(bv)
303+ let au = value(assetInfo(aD)).decimals
304+ let bA = Issue(bw, bx, 1, 8, true)
305+ let aB = calculateAssetId(bA)
306+ let bB = toBase58String(aB)
307+ $Tuple2([bA, Burn(aB, 1)], bB)
300308 }
301309
302310
303311
304-@Callable(bk)
305-func manage (bz) = nil
312+@Callable(bn)
313+func manage (bC) = nil
306314
307315
308-@Verifier(bA)
309-func bB () = sigVerify(bA.bodyBytes, bA.proofs[0], bA.senderPublicKey)
316+@Verifier(bD)
317+func bE () = sigVerify(bD.bodyBytes, bD.proofs[0], bD.senderPublicKey)
310318
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
66 let b = ((100 * 1000) * 1000)
77
88 let c = "__"
99
1010 let d = 1
1111
1212 let e = 2
1313
1414 let f = 3
1515
1616 let g = 4
1717
1818 let h = fromBase58String("6pJkrwfWyhZjm3LoQWRjjNVaLt5CQzqfggzXyqr7nrwA")
1919
2020 let i = 1
2121
2222 let j = 2
2323
2424 let k = 3
2525
2626 let l = 4
2727
2828 let m = 5
2929
3030 let n = 6
3131
3232 let o = 7
3333
3434 let p = 8
3535
3636 let q = 9
3737
3838 let r = 10
3939
4040 let s = 1
4141
4242 let t = 2
4343
4444 let u = 3
4545
4646 func v () = "%s%s__price__last"
4747
4848
4949 func w (x,y) = makeString(["%s%s%d%d__price__history", toString(x), toString(y)], c)
5050
5151
5252 func z (A,B) = (((("%d%d%s__" + A) + "__") + B) + "__locked")
5353
5454
5555 func C (A,B,D) = (((((("%d%d%s%s__" + A) + "__") + B) + "__") + D) + "__locked")
5656
5757
5858 func E (D,F) = ((("%s%s%s__P__" + D) + "__") + F)
5959
6060
6161 func G (D,F) = ((("%s%s%s__G__" + D) + "__") + F)
6262
6363
6464 func H (I) = (("%s%s%s__" + I) + "__mappings__poolContract2LpAsset")
6565
6666
6767 func J (K,L) = (((("%d%d%s__" + K) + "__") + L) + "__config")
6868
6969
7070 func M () = {
7171 let N = addressFromPublicKey(h)
7272 let O = split(valueOrErrorMessage(getString(N, H(toString(this))), "No factory config found for pool address."), c)
7373 let P = split(valueOrErrorMessage(getString(N, J(O[1], O[2])), "No factory config found for pool assets."), c)
7474 P
7575 }
7676
7777
7878 func Q (R,S) = {
7979 let T = getString(z(R, S))
8080 if (!(isDefined(T)))
8181 then ["", "0", "0", "0"]
8282 else split(value(T), c)
8383 }
8484
8585
8686 func U (R,S,D) = {
8787 let T = getString(C(R, S, D))
8888 if (!(isDefined(T)))
8989 then ["", "0", "0", "0", "0"]
9090 else split(value(T), c)
9191 }
9292
9393
9494 func V (W,X,Y) = makeString(["%d%d%d", toString(W), toString(X), toString(Y)], c)
9595
9696
9797 func Z (aa,ab,ac,ad,ae,af,ag) = makeString(["%d%d%d%d%d%d%d", toString(aa), toString(ab), toString(ac), toString(ad), toString(ae), toString(af), toString(ag)], c)
9898
9999
100100 func ah (ai,aj,ak,ad,af,ag) = makeString(["%d%d%d%d%d%d", toString(ai), toString(aj), toString(ak), toString(ad), toString(af), toString(ag)], c)
101101
102102
103103 func al (W,X,Y,D) = makeString(["%d%d%d", toString(W), toString(X), toString(Y)], c)
104104
105105
106106 func am () = toBase64String(value(scriptHash(this)))
107107
108108
109109 func an (ao,ap) = {
110110 let aq = pow(10, 0, (a - ao), 0, 0, DOWN)
111111 $Tuple2((ap * aq), aq)
112112 }
113113
114114
115-func ar (as,at,au,av) = {
116- let aw = an(as, au)._1
117- let ax = an(at, av)._1
118- fraction(ax, b, aw)
115+func ar (ao,ap) = {
116+ let aq = pow(10, 0, (a - ao), 0, 0, DOWN)
117+ $Tuple2((ap / aq), aq)
119118 }
120119
121120
122-func ay () = {
123- let az = M()
124- let aA = fromBase58String(az[k])
125- let aB = az[l]
126- let aC = az[m]
127- let R = az[p]
128- let S = az[q]
129- let as = parseIntValue(az[n])
130- let at = parseIntValue(az[o])
131- let aD = Q(R, S)
132- let aE = parseIntValue(aD[s])
133- let aF = parseIntValue(aD[t])
134- let aG = parseIntValue(aD[u])
135- let aw = an(as, aE)._1
136- let ax = an(at, aF)._1
137- let aH = fraction(aw, (1 * b), aG)
138- let aI = fraction(ax, (1 * b), aG)
139- let aJ = ar(as, at, aE, aF)
140-[aE, aF, aG, aJ, aH, aI]
121+func as (at,au,av,aw) = {
122+ let ax = an(at, av)._1
123+ let ay = an(au, aw)._1
124+ fraction(ay, b, ax)
141125 }
142126
143127
144-func aK (aL,aM,D) = {
145- let aN = M()
146- let aA = aN[k]
147- let aB = aN[l]
148- let aC = aN[m]
149- let R = aN[p]
150- let S = aN[q]
151- let as = parseIntValue(aN[n])
152- let at = parseIntValue(aN[o])
153- let aO = U(R, S, D)
154- let aP = parseIntValue(aO[u])
155- let aQ = parseIntValue(aO[s])
156- let aR = parseIntValue(aO[t])
157- let aS = Q(R, S)
158- let aG = parseIntValue(aS[u])
159- let aE = parseIntValue(aS[s])
160- let aF = parseIntValue(aS[t])
161- if ((aA != aL))
128+func az () = {
129+ let aA = M()
130+ let aB = fromBase58String(aA[k])
131+ let aC = aA[l]
132+ let aD = aA[m]
133+ let R = aA[p]
134+ let S = aA[q]
135+ let at = parseIntValue(aA[n])
136+ let au = parseIntValue(aA[o])
137+ let aE = Q(R, S)
138+ let aF = parseIntValue(aE[s])
139+ let aG = parseIntValue(aE[t])
140+ let aH = parseIntValue(aE[u])
141+ let ax = an(at, aF)._1
142+ let ay = an(au, aG)._1
143+ let aI = fraction(ax, (1 * b), aH)
144+ let aJ = fraction(ay, (1 * b), aH)
145+ let aK = as(at, au, aF, aG)
146+[aF, aG, aH, aK, aI, aJ]
147+ }
148+
149+
150+func aL (aM,aN,D) = {
151+ let aO = M()
152+ let aB = aO[k]
153+ let aC = aO[l]
154+ let aD = aO[m]
155+ let R = aO[p]
156+ let S = aO[q]
157+ let at = parseIntValue(aO[n])
158+ let au = parseIntValue(aO[o])
159+ let aP = U(R, S, D)
160+ let aQ = parseIntValue(aP[u])
161+ let aR = parseIntValue(aP[s])
162+ let aS = parseIntValue(aP[t])
163+ let aT = Q(R, S)
164+ let aH = parseIntValue(aT[u])
165+ let aF = parseIntValue(aT[s])
166+ let aG = parseIntValue(aT[t])
167+ if ((aB != aM))
162168 then throw("Invalid asset passed.")
163- else if ((aM > aP))
169+ else if ((aN > aQ))
164170 then throw("Invalid amount passed. Amount less than available.")
165171 else {
166- let aw = an(as, aE)._1
167172 let ax = an(at, aF)._1
168- let ai = fraction(aw, aM, aG)
169- let aj = fraction(ax, aM, aG)
173+ let ay = an(au, aG)._1
174+ let ai = fraction(ax, aN, aH)
175+ let aj = fraction(ay, aN, aH)
176+ let aU = ar(at, ai)._1
177+ let aV = ar(au, aj)._1
170178 if (true)
171- then throw(((toString(ai) + " / ") + toString(aj)))
179+ then throw(((toString(aU) + " / ") + toString(aV)))
172180 else {
173- let aJ = fraction(ax, b, aw)
174- $Tuple14(aB, aC, R, S, aQ, ai, aR, aj, ai, aP, aE, aF, aG, aJ)
181+ let aK = fraction(ay, b, ax)
182+ $Tuple14(aC, aD, R, S, aR, aU, aS, aV, ai, aQ, aF, aG, aH, aK)
175183 }
176184 }
177185 }
178186
179187
180-func aT (aU,aa,aV,ab,aW,D) = {
181- let az = M()
182- let aA = fromBase58String(az[k])
183- let aB = az[l]
184- let aC = az[m]
185- let R = az[p]
186- let S = az[q]
187- let as = parseIntValue(az[n])
188- let at = parseIntValue(az[o])
189- let aD = Q(R, S)
190- let aE = parseIntValue(aD[s])
191- let aF = parseIntValue(aD[t])
192- let aG = parseIntValue(aD[u])
193- let aX = U(R, S, D)
194- let aQ = parseIntValue(aX[s])
195- let aR = parseIntValue(aX[t])
196- let aP = parseIntValue(aX[u])
197- if (if ((aB != aV))
188+func aW (aX,aa,aY,ab,aZ,D) = {
189+ let aA = M()
190+ let aB = fromBase58String(aA[k])
191+ let aC = aA[l]
192+ let aD = aA[m]
193+ let R = aA[p]
194+ let S = aA[q]
195+ let at = parseIntValue(aA[n])
196+ let au = parseIntValue(aA[o])
197+ let aE = Q(R, S)
198+ let aF = parseIntValue(aE[s])
199+ let aG = parseIntValue(aE[t])
200+ let aH = parseIntValue(aE[u])
201+ let ba = U(R, S, D)
202+ let aR = parseIntValue(ba[s])
203+ let aS = parseIntValue(ba[t])
204+ let aQ = parseIntValue(ba[u])
205+ if (if ((aC != aY))
198206 then true
199- else (aC != aW))
207+ else (aD != aZ))
200208 then throw("Invalid amount or price asset passed.")
201209 else {
202- let aY = an(as, aa)
203- let aZ = an(at, ab)
204- let ba = aY._1
205- let bb = aZ._1
206- let bc = fraction(bb, b, ba)
207- let aw = (aE * aY._2)
208- let ax = (aF * aZ._2)
209- let bd = if ((aG == 0))
210+ let bb = an(at, aa)
211+ let bc = an(au, ab)
212+ let bd = bb._1
213+ let be = bc._1
214+ let bf = fraction(be, b, bd)
215+ let ax = (aF * bb._2)
216+ let ay = (aG * bc._2)
217+ let bg = if ((aH == 0))
210218 then 0
211- else fraction(ax, b, aw)
212- let be = if ((aG == 0))
219+ else fraction(ay, b, ax)
220+ let bh = if ((aH == 0))
213221 then {
214- let bf = pow(ba, 0, 5, 1, 0, DOWN)
215- let bg = pow(bb, 0, 5, 1, 0, DOWN)
216- (bf * bg)
222+ let bi = pow(bd, 0, 5, 1, 0, DOWN)
223+ let bj = pow(be, 0, 5, 1, 0, DOWN)
224+ (bi * bj)
217225 }
218226 else {
219- let bh = fraction(bd, 100, bc)
220- if ((bh > aU))
221- then throw(((("Price slippage " + toString(bh)) + " exceeded the passed limit of ") + toString(aU)))
227+ let bk = fraction(bg, 100, bf)
228+ if ((bk > aX))
229+ then throw(((("Price slippage " + toString(bk)) + " exceeded the passed limit of ") + toString(aX)))
222230 else {
223- let bi = fraction(aG, ba, aw)
224- let bj = fraction(aG, bb, ax)
225- if ((bj > bi))
226- then bi
227- else bj
231+ let bl = fraction(aH, bd, ax)
232+ let bm = fraction(aH, be, ay)
233+ if ((bm > bl))
234+ then bl
235+ else bm
228236 }
229237 }
230- $Tuple11(be, bd, aQ, aR, aP, aE, aF, aG, R, S, aA)
238+ $Tuple11(bh, bg, aR, aS, aQ, aF, aG, aH, R, S, aB)
231239 }
232240 }
233241
234242
235-@Callable(bk)
236-func put (aU) = {
237- let bl = value(bk.payments[0])
238- let aa = bl.amount
239- let aV = if (!(isDefined(bl.assetId)))
243+@Callable(bn)
244+func put (aX) = {
245+ let bo = value(bn.payments[0])
246+ let aa = bo.amount
247+ let aY = if (!(isDefined(bo.assetId)))
240248 then fromBase58String("")
241- else value(bl.assetId)
242- let bm = value(bk.payments[1])
243- let ab = bm.amount
244- let aW = value(bm.assetId)
245- let bn = aT(aU, aa, toBase58String(aV), ab, toBase58String(aW), toString(bk.caller))
246- let be = bn._1
247- let bd = bn._2
248- let aQ = bn._3
249- let aR = bn._4
250- let aP = bn._5
251- let aE = bn._6
252- let aF = bn._7
253- let aG = bn._8
254- let R = bn._9
255- let S = bn._10
256- let aA = bn._11
257-[StringEntry(v(), ("%s__" + toString(bd))), StringEntry(w(height, lastBlock.timestamp), ("%s__" + toString(bd))), StringEntry(E(toString(bk.caller), toBase58String(bk.transactionId)), Z(aa, ab, be, bd, aU, height, lastBlock.timestamp)), StringEntry(C(R, S, toString(bk.caller)), V((aQ + aa), (aR + ab), (aP + be))), StringEntry(z(R, S), V((aE + aa), (aF + ab), (aG + be))), Reissue(aA, be, true), ScriptTransfer(bk.caller, be, aA)]
249+ else value(bo.assetId)
250+ let bp = value(bn.payments[1])
251+ let ab = bp.amount
252+ let aZ = value(bp.assetId)
253+ let bq = aW(aX, aa, toBase58String(aY), ab, toBase58String(aZ), toString(bn.caller))
254+ let bh = bq._1
255+ let bg = bq._2
256+ let aR = bq._3
257+ let aS = bq._4
258+ let aQ = bq._5
259+ let aF = bq._6
260+ let aG = bq._7
261+ let aH = bq._8
262+ let R = bq._9
263+ let S = bq._10
264+ let aB = bq._11
265+[StringEntry(v(), ("%s__" + toString(bg))), StringEntry(w(height, lastBlock.timestamp), ("%s__" + toString(bg))), StringEntry(E(toString(bn.caller), toBase58String(bn.transactionId)), Z(aa, ab, bh, bg, aX, height, lastBlock.timestamp)), StringEntry(C(R, S, toString(bn.caller)), V((aR + aa), (aS + ab), (aQ + bh))), StringEntry(z(R, S), V((aF + aa), (aG + ab), (aH + bh))), Reissue(aB, bh, true), ScriptTransfer(bn.caller, bh, aB)]
258266 }
259267
260268
261269
262-@Callable(bk)
270+@Callable(bn)
263271 func get () = {
264- let bl = value(bk.payments[0])
265- let bo = value(bl.assetId)
266- let bp = bl.amount
267- let bq = aK(toBase58String(bo), bp, toString(bk.caller))
268- let aB = bq._1
269- let aC = bq._2
270- let R = bq._3
271- let S = bq._4
272- let aQ = bq._5
273- let ai = bq._6
274- let aR = bq._7
275- let aj = bq._8
276- let aP = bq._9
277- let aE = bq._11
278- let aF = bq._12
279- let aG = bq._13
280- let aJ = bq._14
281-[Burn(bo, bp), ScriptTransfer(bk.caller, ai, if ((aB == ""))
272+ let bo = value(bn.payments[0])
273+ let br = value(bo.assetId)
274+ let bs = bo.amount
275+ let bt = aL(toBase58String(br), bs, toString(bn.caller))
276+ let aC = bt._1
277+ let aD = bt._2
278+ let R = bt._3
279+ let S = bt._4
280+ let aR = bt._5
281+ let ai = bt._6
282+ let aS = bt._7
283+ let aj = bt._8
284+ let aQ = bt._9
285+ let aF = bt._11
286+ let aG = bt._12
287+ let aH = bt._13
288+ let aK = bt._14
289+[Burn(br, bs), ScriptTransfer(bn.caller, ai, if ((aC == ""))
282290 then unit
283- else fromBase58String(aB)), ScriptTransfer(bk.caller, aj, fromBase58String(aC)), StringEntry(C(R, S, toString(bk.caller)), V((aQ - ai), (aR - aj), (aP - bp))), StringEntry(z(R, S), V((aE - ai), (aF - aj), (aG - bp))), StringEntry(G(toString(bk.caller), toBase58String(bk.transactionId)), ah(ai, aj, bp, aJ, height, lastBlock.timestamp)), StringEntry(v(), ("%s__" + toString(aJ))), StringEntry(w(height, lastBlock.timestamp), ("%s__" + toString(aJ)))]
291+ else fromBase58String(aC)), ScriptTransfer(bn.caller, aj, fromBase58String(aD)), StringEntry(C(R, S, toString(bn.caller)), V((aR - ai), (aS - aj), (aQ - bs))), StringEntry(z(R, S), V((aF - ai), (aG - aj), (aH - bs))), StringEntry(G(toString(bn.caller), toBase58String(bn.transactionId)), ah(ai, aj, bs, aK, height, lastBlock.timestamp)), StringEntry(v(), ("%s__" + toString(aK))), StringEntry(w(height, lastBlock.timestamp), ("%s__" + toString(aK)))]
284292 }
285293
286294
287295
288-@Callable(bk)
289-func activate (br,bs,bt,bu,bv) = if ((bk.callerPublicKey != h))
296+@Callable(bn)
297+func activate (bu,bv,bw,bx,by) = if ((bn.callerPublicKey != h))
290298 then throw("permissions denied")
291299 else {
292- let aB = fromBase58String(br)
293- let bw = value(assetInfo(aB)).decimals
294- let aC = fromBase58String(bs)
295- let at = value(assetInfo(aC)).decimals
296- let bx = Issue(bt, bu, 1, 8, true)
297- let aA = calculateAssetId(bx)
298- let by = toBase58String(aA)
299- $Tuple2([bx, Burn(aA, 1)], by)
300+ let aC = fromBase58String(bu)
301+ let bz = value(assetInfo(aC)).decimals
302+ let aD = fromBase58String(bv)
303+ let au = value(assetInfo(aD)).decimals
304+ let bA = Issue(bw, bx, 1, 8, true)
305+ let aB = calculateAssetId(bA)
306+ let bB = toBase58String(aB)
307+ $Tuple2([bA, Burn(aB, 1)], bB)
300308 }
301309
302310
303311
304-@Callable(bk)
305-func manage (bz) = nil
312+@Callable(bn)
313+func manage (bC) = nil
306314
307315
308-@Verifier(bA)
309-func bB () = sigVerify(bA.bodyBytes, bA.proofs[0], bA.senderPublicKey)
316+@Verifier(bD)
317+func bE () = sigVerify(bD.bodyBytes, bD.proofs[0], bD.senderPublicKey)
310318

github/deemru/w8io/169f3d6 
164.69 ms