tx · BJ2NSLraw4CeByAZVxmSexduE9mV6FN3WSKoPD6RD7M9 3N3UHNYQ8xwe2WWLKgXX628JyUtF6kYK4wS: -0.01400000 Waves 2020.11.03 11:25 [1248874] smart account 3N3UHNYQ8xwe2WWLKgXX628JyUtF6kYK4wS > SELF 0.00000000 Waves
{ "type": 13, "id": "BJ2NSLraw4CeByAZVxmSexduE9mV6FN3WSKoPD6RD7M9", "fee": 1400000, "feeAssetId": null, "timestamp": 1604391976485, "version": 1, "sender": "3N3UHNYQ8xwe2WWLKgXX628JyUtF6kYK4wS", "senderPublicKey": "Hxyif8HnnHh34SZ7PZewDcNUgrZfHNJsQvLNCcPbCW27", "proofs": [ "h8TZyR2zuxmhui5BKjcpp2364cerWohJUwASsiKAipCkQqDWHehuDUfQYZvrBEPPNa9n2ZEks29yAR6HfGoyTs9" ], "script": "base64:AAIEAAAAAAAAADwIAhIKCggICAEIAQEICBIRCg8ICAEIAQgBAQEBAQEBAQESAwoBCBIDCgEIEgQKAggBEgQKAggIEgMKAQgAAABpAQAAABZjb252ZXJ0SnNvbkFycmF5VG9MaXN0AAAAAgAAAAlqc29uQXJyYXkAAAALc3BsaXRTeW1ib2wJAAS1AAAAAgUAAAAJanNvbkFycmF5BQAAAAtzcGxpdFN5bWJvbAEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzQW5kS2V5AAAAAgAAAAdhZGRyZXNzAAAAA2tleQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAdhZGRyZXNzBQAAAANrZXkCAAAAAAEAAAAMZ2V0Qm9vbEJ5S2V5AAAAAQAAAANrZXkJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQbAAAAAgUAAAAEdGhpcwUAAAADa2V5BwAAAAADU0VQAgAAAAJfXwAAAAAMa2V5QXNzZXRDb2RlAAAAAAAAAAABAAAAAAprZXlBc3NldElkAAAAAAAAAAACAAAAAA5rZXlBc3NldFN0YXR1cwAAAAAAAAAAAwAAAAAVa2V5QXNzZXRQcmljZURlY2ltYWxzAAAAAAAAAAAEAAAAABNrZXlBc3NldEJha2luZ0Fzc2V0AAAAAAAAAAAFAAAAABtrZXlPdmVyY29sbGF0ZXJhbFBlcmNlbnRhZ2UAAAAAAAAAAAYAAAAACmtleU1pblBvb2wAAAAAAAAAAAcAAAAAFWtleVByaWNlT3JhY2xlQWRkcmVzcwAAAAAAAAAACAAAAAAQa2V5TWluQnV5UGF5bWVudAAAAAAAAAAACQAAAAARa2V5TWluU2VsbFBheW1lbnQAAAAAAAAAAAoAAAAAEmtleUJ1eUxvY2tJbnRlcnZhbAAAAAAAAAAACwAAAAATa2V5U2VsbExvY2tJbnRlcnZhbAAAAAAAAAAADAAAAAAJa2V5QnV5RmVlAAAAAAAAAAANAAAAAAprZXlTZWxsRmVlAAAAAAAAAAAOAAAAABhrZXlQb29sUmVkZW1wdGlvblRpbWVvdXQAAAAAAAAAAA8AAAAAIWtleVdlZWtlbmRzUHJpY2VDaGFuZ2VDb2VmZmljaWVudAAAAAAAAAAAEAAAAAAOYWRtaW5QdWJsaWNLZXkCAAAALEcxRWJ1NUFNSGFUSkZFYlpOa1pRY0pGVVE5S2ZpWVV3dXB5TEc4NTdEY0ZyAAAAABpuZXV0cmlub0NvbnRyYWN0QWRkcmVzc0tleQIAAAArJXMlc19fY29tbW9uQ29uZmlnX19uZXV0cmlub0NvbnRyYWN0QWRkcmVzcwAAAAAZbmV1dHJpbm9TdGFraW5nQWRkcmVzc0tleQIAAAAqJXMlc19fY29tbW9uQ29uZmlnX19uZXV0cmlub1N0YWtpbmdBZGRyZXNzAAAAABttaW5pbXVuUG9vbEZ1bmRpbmdBbW91bnRLZXkCAAAALCVzJXNfX2NvbW1vbkNvbmZpZ19fbWluaW11bVBvb2xGdW5kaW5nQW1vdW50AAAAABBpc0luaXRpYWxpemVkS2V5AgAAAB8lcyVzX19jb21tb25Db25maWdfX2luaXRpYWxpemVkAAAAABRjdXJyZW50QXNzZXRJbmRleEtleQIAAAAvJXMlc19fY29tbW9uQ29uZmlnX19wcmVkZWZpbmVkQXNzZXRzQWN0aXZlSW5kZXgAAAAAFGFzc2V0c0FkZHJlc3NMaXN0S2V5AgAAACglcyVzX19jb21tb25Db25maWdfX3ByZWRlZmluZWRBc3NldHNMaXN0AAAAAA5kZWJ0VG9rZW5JZEtleQIAAAAfJXMlc19fY29tbW9uQ29uZmlnX19kZWJ0QXNzZXRJZAAAAAAZZGVidFRva2VuRXRhbG9uQmFsYW5jZUtleQIAAAAqJXMlc19fY29tbW9uQ29uZmlnX19kZWJ0QXNzZXRFdGFsb25CYWxhbmNlAAAAABVkZWZvU3Rha2luZ0FkZHJlc3NLZXkCAAAAJiVzJXNfX2NvbW1vbkNvbmZpZ19fZGVmb1N0YWtpbmdBZGRyZXNzAAAAABpkZWZvU3Rha2luZ1BhY2VtYWtlclB1YktleQIAAAArJXMlc19fY29tbW9uQ29uZmlnX19kZWZvU3Rha2luZ1BhY2VtYWtlclB1YgAAAAAWbWluUG9vbEludmVzdEFtb3VudEtleQIAAAAnJXMlc19fY29tbW9uQ29uZmlnX19taW5Qb29sSW52ZXN0QW1vdW50AAAAABJuZXV0cmlub0Fzc2V0SWRLZXkCAAAAEW5ldXRyaW5vX2Fzc2V0X2lkAAAAAA5uc2J0QXNzZXRJZEtleQIAAAANYm9uZF9hc3NldF9pZAAAAAAObmV1dHJpbm9ScGRLZXkCAAAADHJwZF9jb250cmFjdAAAAAAOZGVmb0Fzc2V0SWRLZXkCAAAADyVzX19kZWZvQXNzZXRJZAAAAAAVc2V0QXNzZXRTY3JpcHRUeElkS2V5AgAAABMlc19fYXNzZXRTY3JpcHRUeElkAQAAABFnZXRBc3NldENvbmZpZ0tleQAAAAEAAAAMYXNzZXRBZGRyZXNzCQABLAAAAAIJAAEsAAAAAgIAAAATJXMlcyVzX19kZWZvQXNzZXRfXwUAAAAMYXNzZXRBZGRyZXNzAgAAAAhfX2NvbmZpZwEAAAAQZ2V0QXNzZXRQcmljZUtleQAAAAEAAAAJYXNzZXRDb2RlCQABLAAAAAICAAAADSVzJXNfX3ByaWNlX18FAAAACWFzc2V0Q29kZQEAAAAVZ2V0QXNzZXRJbml0SGVpZ2h0S2V5AAAAAQAAAAxhc3NldEFkZHJlc3MJAAEsAAAAAgkAASwAAAACAgAAABMlcyVzJXNfX2RlZm9Bc3NldF9fBQAAAAxhc3NldEFkZHJlc3MCAAAADF9faW5pdEhlaWdodAEAAAAZZ2V0QXNzZXRBY3RpdmF0ZUhlaWdodEtleQAAAAEAAAAMYXNzZXRBZGRyZXNzCQABLAAAAAIJAAEsAAAAAgIAAAATJXMlcyVzX19kZWZvQXNzZXRfXwUAAAAMYXNzZXRBZGRyZXNzAgAAABBfX2FjdGl2YXRlSGVpZ2h0AQAAAB1nZXRBc3NldEN1cnJyZW50UG9vbEFtb3VudEtleQAAAAEAAAAMYXNzZXRBZGRyZXNzCQABLAAAAAIJAAEsAAAAAgIAAAATJXMlcyVzX19kZWZvQXNzZXRfXwUAAAAMYXNzZXRBZGRyZXNzAgAAAA1fX2N1cnJlbnRQb29sAQAAABhnZXRBc3NldE1heFBvb2xBbW91bnRLZXkAAAABAAAADGFzc2V0QWRkcmVzcwkAASwAAAACCQABLAAAAAICAAAAEyVzJXMlc19fZGVmb0Fzc2V0X18FAAAADGFzc2V0QWRkcmVzcwIAAAAJX19tYXhQb29sAQAAAA9nZXRBc3NldE1ldGFLZXkAAAABAAAADGFzc2V0QWRkcmVzcwkAASwAAAACCQABLAAAAAICAAAAEyVzJXMlc19fZGVmb0Fzc2V0X18FAAAADGFzc2V0QWRkcmVzcwIAAAAGX19tZXRhAQAAABVnZXRBc3NldFBvb2xNYWtlcnNLZXkAAAABAAAADGFzc2V0QWRkcmVzcwkAASwAAAACCQABLAAAAAICAAAAEyVzJXMlc19fZGVmb0Fzc2V0X18FAAAADGFzc2V0QWRkcmVzcwIAAAAMX19wb29sTWFrZXJzAQAAABhnZXRBc3NldEFkZHJlc3NCeUNvZGVLZXkAAAABAAAACWFzc2V0Q29kZQkAASwAAAACCQABLAAAAAICAAAAEyVzJXMlc19fZGVmb0Fzc2V0X18FAAAACWFzc2V0Q29kZQIAAAAUX19hZGRyZXNzQnlBc3NldENvZGUBAAAAG2dldEFzc2V0QWRkcmVzc0J5QXNzZXRJZEtleQAAAAEAAAAHYXNzZXRJZAkAASwAAAACCQABLAAAAAICAAAAEyVzJXMlc19fZGVmb0Fzc2V0X18FAAAAB2Fzc2V0SWQCAAAAEl9fYWRkcmVzc0J5QXNzZXRJZAEAAAAiZ2V0UG9vbE1ha2VyUGFydGljaXBhdGlvbkFtb3VudEtleQAAAAIAAAAMYXNzZXRBZGRyZXNzAAAAEHBvb2xNYWtlckFkZHJlc3MJAAS5AAAAAgkABEwAAAACAgAAAA4lcyVzJXMlc19fcG9vbAkABEwAAAACBQAAAAxhc3NldEFkZHJlc3MJAARMAAAAAgUAAAAQcG9vbE1ha2VyQWRkcmVzcwkABEwAAAACAgAAAAZhbW91bnQFAAAAA25pbAUAAAADU0VQAQAAACVnZXRQb29sTWFrZXJQYXJ0aWNpcGF0aW9uTWF4QW1vdW50S2V5AAAAAgAAAAxhc3NldEFkZHJlc3MAAAAQcG9vbE1ha2VyQWRkcmVzcwkABLkAAAACCQAETAAAAAICAAAADiVzJXMlcyVzX19wb29sCQAETAAAAAIFAAAADGFzc2V0QWRkcmVzcwkABEwAAAACBQAAABBwb29sTWFrZXJBZGRyZXNzCQAETAAAAAICAAAACW1heEFtb3VudAUAAAADbmlsBQAAAANTRVABAAAAG2dldFBvb2xNYWtlckxvY2tlZEFtb3VudEtleQAAAAIAAAAMYXNzZXRBZGRyZXNzAAAAEHBvb2xNYWtlckFkZHJlc3MJAAS5AAAAAgkABEwAAAACAgAAAA4lcyVzJXMlc19fcG9vbAkABEwAAAACBQAAAAxhc3NldEFkZHJlc3MJAARMAAAAAgUAAAAQcG9vbE1ha2VyQWRkcmVzcwkABEwAAAACAgAAAAxsb2NrZWRBbW91bnQFAAAAA25pbAUAAAADU0VQAQAAABtnZXRQb29sTWFrZXJVbmxvY2tIZWlnaHRLZXkAAAACAAAADGFzc2V0QWRkcmVzcwAAABBwb29sTWFrZXJBZGRyZXNzCQAEuQAAAAIJAARMAAAAAgIAAAAOJXMlcyVzJXNfX3Bvb2wJAARMAAAAAgUAAAAMYXNzZXRBZGRyZXNzCQAETAAAAAIFAAAAEHBvb2xNYWtlckFkZHJlc3MJAARMAAAAAgIAAAAMdW5sb2NrSGVpZ2h0BQAAAANuaWwFAAAAA1NFUAEAAAAfZ2V0UG9vbE1ha2VyTGlxdWlkaXR5UmVxdWVzdEtleQAAAAMAAAAMYXNzZXRBZGRyZXNzAAAAEHBvb2xNYWtlckFkZHJlc3MAAAABaAkABLkAAAACCQAETAAAAAICAAAAECVzJXMlcyVkJXNfX3Bvb2wJAARMAAAAAgUAAAAMYXNzZXRBZGRyZXNzCQAETAAAAAIFAAAAEHBvb2xNYWtlckFkZHJlc3MJAARMAAAAAgkAAaQAAAABBQAAAAFoCQAETAAAAAICAAAAEGxpcXVpZGl0eVJlcXVlc3QFAAAAA25pbAUAAAADU0VQAQAAABtnZXRQb29sVG90YWxMb2NrZWRBbW91bnRLZXkAAAABAAAADGFzc2V0QWRkcmVzcwkABLkAAAACCQAETAAAAAICAAAADCVzJXMlc19fcG9vbAkABEwAAAACBQAAAAxhc3NldEFkZHJlc3MJAARMAAAAAgIAAAARdG90YWxMb2NrZWRBbW91bnQFAAAAA25pbAUAAAADU0VQAQAAABNnZXRBc3NldENvbmZpZ0FycmF5AAAAAQAAAAxhc3NldEFkZHJlc3MJAQAAABZjb252ZXJ0SnNvbkFycmF5VG9MaXN0AAAAAgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAEdGhpcwkBAAAAEWdldEFzc2V0Q29uZmlnS2V5AAAAAQUAAAAMYXNzZXRBZGRyZXNzCQABLAAAAAIJAAEsAAAAAgIAAAAOTm8gREVGTyBBc3NldCAFAAAADGFzc2V0QWRkcmVzcwIAAAAOY29uZmlnIHByZXNlbnQCAAAAAl9fAAAAAA1tdWx0aXBsaWNhdG9yAAAAAAAAD0JAAAAAABBuZXV0cmlub0NvbnRyYWN0CQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAAabmV1dHJpbm9Db250cmFjdEFkZHJlc3NLZXkCAAAAH05vIG5ldXRyaW5vIGNvbnRyYWN0IHNwZWNpZmllZC4AAAAAEm5ldXRyaW5vQXNzZXRJZFN0cgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QFAAAAEm5ldXRyaW5vQXNzZXRJZEtleQIAAAAXTm8gVVNETiBhc3NldCBpZCBmb3VuZC4AAAAAD25ldXRyaW5vQXNzZXRJZAkAAlkAAAABBQAAABJuZXV0cmlub0Fzc2V0SWRTdHIAAAAAC25zYnRBc3NldElkCQACWQAAAAEJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAABBuZXV0cmlub0NvbnRyYWN0BQAAAA5uc2J0QXNzZXRJZEtleQIAAAAWTm8gTlNCVCBhc3NldCBpZCBmb3VuZAAAAAASbWluaW11bVBvb2xGdW5kaW5nCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAAbbWluaW11blBvb2xGdW5kaW5nQW1vdW50S2V5AgAAAC1NaW5pbXVtIHBvb2wgZnVuZGluZyBhbW91bnQgaXMgbm90IHNwZWNpZmllZC4AAAAAE21pblBvb2xJbnZlc3RBbW91bnQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAAWbWluUG9vbEludmVzdEFtb3VudEtleQkAAGgAAAACAAAAAAAAAAAKBQAAAA1tdWx0aXBsaWNhdG9yAAAAAA1BU1NFdFBST1BPU0VEAgAAAAhQUk9QT1NFRAAAAAAKQVNTRXRSRUFEWQIAAAAFUkVBRFkAAAAAC0FTU0V0SVNTVUVEAgAAAAZJU1NVRUQAAAAAC2Fzc2V0U3RhdHVzCQAFFQAAAAMFAAAADUFTU0V0UFJPUE9TRUQFAAAACkFTU0V0UkVBRFkFAAAAC0FTU0V0SVNTVUVEAAAAABhwcmVkZWZpbmVkQXNzZXRDb250cmFjdHMJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAR0aGlzBQAAABRhc3NldHNBZGRyZXNzTGlzdEtleQIAAAAtTm8gcG9vbCBvZiBwcmVkZXBsb3llZCBhc3NldCBjb250cmFjdHMgZm91bmQuAAAAABRwcmVkZWZpbmVkQXNzZXRzTGlzdAkBAAAAFmNvbnZlcnRKc29uQXJyYXlUb0xpc3QAAAACBQAAABhwcmVkZWZpbmVkQXNzZXRDb250cmFjdHMCAAAAASwAAAAAEWN1cnJlbnRBc3NldEluZGV4CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAFGN1cnJlbnRBc3NldEluZGV4S2V5AAAAAAAAAAAAAAAAAAlkZWJ0VG9rZW4JAAJZAAAAAQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAADmRlYnRUb2tlbklkS2V5AgAAABNObyBkZWJ0IHRva2VuIGZvdW5kAAAAABZkZWJ0VG9rZW5SZWlzc3VlQW1vdW50CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAGWRlYnRUb2tlbkV0YWxvbkJhbGFuY2VLZXkAAAAAAAAAAAAAAAAAE25ldXRyaW5vUnBkQ29udHJhY3QJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QFAAAADm5ldXRyaW5vUnBkS2V5AQAAABVnZXROZXV0cmlub1JwZEJhbGFuY2UAAAABAAAAC3VzZXJBZGRyZXNzBAAAABZ1c2VyTmV1dHJpbm9ScGRCYWxhbmNlCQAEuQAAAAIJAARMAAAAAgIAAAALcnBkX2JhbGFuY2UJAARMAAAAAgUAAAASbmV1dHJpbm9Bc3NldElkU3RyCQAETAAAAAIFAAAAC3VzZXJBZGRyZXNzBQAAAANuaWwCAAAAAV8JAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAATbmV1dHJpbm9ScGRDb250cmFjdAUAAAAWdXNlck5ldXRyaW5vUnBkQmFsYW5jZQAAAAAAAAAAAAEAAAAVZ2V0QXNzZXRBZGRyZXNzQnlDb2RlAAAAAQAAAAthc3NldFN5bWJvbAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAR0aGlzCQEAAAAYZ2V0QXNzZXRBZGRyZXNzQnlDb2RlS2V5AAAAAQUAAAALYXNzZXRTeW1ib2wCAAAAAAEAAAAbZ2V0QXNzZXRBZGRyZXNzQnlDb2RlT3JGYWlsAAAAAQAAAAthc3NldFN5bWJvbAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMJAQAAABhnZXRBc3NldEFkZHJlc3NCeUNvZGVLZXkAAAABBQAAAAthc3NldFN5bWJvbAkAASwAAAACCQABLAAAAAICAAAAHUNhbm5vdCBmaW5kIGFzc2V0IGFkZHJlc3MgYnkgBQAAAAthc3NldFN5bWJvbAIAAAAFIGNvZGUBAAAADGdldEFzc2V0Q29kZQAAAAEAAAALYXNzZXRDb25maWcJAAGRAAAAAgUAAAALYXNzZXRDb25maWcFAAAADGtleUFzc2V0Q29kZQEAAAAKZ2V0QXNzZXRJRAAAAAEAAAALYXNzZXRDb25maWcJAAGRAAAAAgUAAAALYXNzZXRDb25maWcFAAAACmtleUFzc2V0SWQBAAAADmdldEFzc2V0U3RhdHVzAAAAAQAAAAthc3NldENvbmZpZwkAAZEAAAACBQAAAAthc3NldENvbmZpZwUAAAAOa2V5QXNzZXRTdGF0dXMBAAAAFWdldEFzc2V0UHJpY2VEZWNpbWFscwAAAAEAAAALYXNzZXRDb25maWcJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAthc3NldENvbmZpZwUAAAAVa2V5QXNzZXRQcmljZURlY2ltYWxzAQAAABVnZXRBc3NldEJha2luZ0Fzc2V0SWQAAAABAAAAC2Fzc2V0Q29uZmlnCQABkQAAAAIFAAAAC2Fzc2V0Q29uZmlnBQAAABNrZXlBc3NldEJha2luZ0Fzc2V0AQAAAB1nZXRBc3NldE92ZXJDb2xsYXRlcmFsUGVyY2VudAAAAAEAAAALYXNzZXRDb25maWcJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAthc3NldENvbmZpZwUAAAAba2V5T3ZlcmNvbGxhdGVyYWxQZXJjZW50YWdlAQAAAB1nZXRBc3NldE1pblJlcXVpcmVkUG9vbEFtb3VudAAAAAEAAAALYXNzZXRDb25maWcJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAthc3NldENvbmZpZwUAAAAKa2V5TWluUG9vbAEAAAAaZ2V0QXNzZXRQcmljZU9yYWNsZUFkZHJlc3MAAAABAAAAC2Fzc2V0Q29uZmlnCQABkQAAAAIFAAAAC2Fzc2V0Q29uZmlnBQAAABVrZXlQcmljZU9yYWNsZUFkZHJlc3MBAAAAGGdldE1pbkJ1eVBheW1lbnRQZXJBc3NldAAAAAEAAAALYXNzZXRDb25maWcJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAthc3NldENvbmZpZwUAAAAQa2V5TWluQnV5UGF5bWVudAEAAAAZZ2V0TWluU2VsbFBheW1lbnRQZXJBc3NldAAAAAEAAAALYXNzZXRDb25maWcJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAthc3NldENvbmZpZwUAAAARa2V5TWluU2VsbFBheW1lbnQBAAAAGmdldEJ1eUxvY2tJbnRlcnZhbFBlckFzc2V0AAAAAQAAAAthc3NldENvbmZpZwkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAC2Fzc2V0Q29uZmlnBQAAABJrZXlCdXlMb2NrSW50ZXJ2YWwBAAAAG2dldFNlbGxMb2NrSW50ZXJ2YWxQZXJBc3NldAAAAAEAAAALYXNzZXRDb25maWcJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAthc3NldENvbmZpZwUAAAATa2V5U2VsbExvY2tJbnRlcnZhbAEAAAARZ2V0QnV5RmVlUGVyQXNzZXQAAAABAAAAC2Fzc2V0Q29uZmlnCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAALYXNzZXRDb25maWcFAAAACWtleUJ1eUZlZQEAAAASZ2V0U2VsbEZlZVBlckFzc2V0AAAAAQAAAAthc3NldENvbmZpZwkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAC2Fzc2V0Q29uZmlnBQAAAAprZXlTZWxsRmVlAQAAABpnZXRSZWRlbXB0aW9uVGltZW91dEJsb2NrcwAAAAEAAAALYXNzZXRDb25maWcJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAthc3NldENvbmZpZwUAAAAYa2V5UG9vbFJlZGVtcHRpb25UaW1lb3V0AQAAACFnZXRXZWVrZW5kc1ByaWNlQ2hhbmdlQ29lZmZpY2llbnQAAAABAAAAC2Fzc2V0Q29uZmlnCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAALYXNzZXRDb25maWcFAAAAIWtleVdlZWtlbmRzUHJpY2VDaGFuZ2VDb2VmZmljaWVudAEAAAASZ2V0QXNzZXRQb29sTWFrZXJzAAAAAQAAAAxhc3NldEFkZHJlc3MJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwkBAAAAFWdldEFzc2V0UG9vbE1ha2Vyc0tleQAAAAEFAAAADGFzc2V0QWRkcmVzcwIAAAAAAQAAABJnZXRBc3NldEluaXRIZWlnaHQAAAABAAAADGFzc2V0QWRkcmVzcwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQEAAAAVZ2V0QXNzZXRJbml0SGVpZ2h0S2V5AAAAAQUAAAAMYXNzZXRBZGRyZXNzAAAAAAAAAAAAAQAAABZnZXRBc3NldEFjdGl2YXRlSGVpZ2h0AAAAAQAAAAxhc3NldEFkZHJlc3MJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAAGWdldEFzc2V0QWN0aXZhdGVIZWlnaHRLZXkAAAABBQAAAAxhc3NldEFkZHJlc3MAAAAAAAAAAAABAAAAGWdldEFzc2V0Q3VycmVudFBvb2xBbW91bnQAAAABAAAADGFzc2V0QWRkcmVzcwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQEAAAAdZ2V0QXNzZXRDdXJycmVudFBvb2xBbW91bnRLZXkAAAABBQAAAAxhc3NldEFkZHJlc3MAAAAAAAAAAAABAAAAFWdldEFzc2V0TWF4UG9vbEFtb3VudAAAAAEAAAAMYXNzZXRBZGRyZXNzCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAQAAABhnZXRBc3NldE1heFBvb2xBbW91bnRLZXkAAAABBQAAAAxhc3NldEFkZHJlc3MAAAAAAAAAAAABAAAADGdldEFzc2V0TWV0YQAAAAEAAAAMYXNzZXRBZGRyZXNzCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAABHRoaXMJAQAAAA9nZXRBc3NldE1ldGFLZXkAAAABBQAAAAxhc3NldEFkZHJlc3MCAAAAAAEAAAAfZ2V0UG9vbE1ha2VyUGFydGljaXBhdGlvbkFtb3VudAAAAAIAAAAMYXNzZXRBZGRyZXNzAAAAEHBvb2xNYWtlckFkZHJlc3MJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAAImdldFBvb2xNYWtlclBhcnRpY2lwYXRpb25BbW91bnRLZXkAAAACBQAAAAxhc3NldEFkZHJlc3MFAAAAEHBvb2xNYWtlckFkZHJlc3MAAAAAAAAAAAABAAAAImdldFBvb2xNYWtlclBhcnRpY2lwYXRpb25NYXhBbW91bnQAAAACAAAADGFzc2V0QWRkcmVzcwAAABBwb29sTWFrZXJBZGRyZXNzCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAQAAACVnZXRQb29sTWFrZXJQYXJ0aWNpcGF0aW9uTWF4QW1vdW50S2V5AAAAAgUAAAAMYXNzZXRBZGRyZXNzBQAAABBwb29sTWFrZXJBZGRyZXNzAAAAAAAAAAAAAQAAABhnZXRQb29sTWFrZXJMb2NrZWRBbW91bnQAAAACAAAADGFzc2V0QWRkcmVzcwAAABBwb29sTWFrZXJBZGRyZXNzCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAQAAABtnZXRQb29sTWFrZXJMb2NrZWRBbW91bnRLZXkAAAACBQAAAAxhc3NldEFkZHJlc3MFAAAAEHBvb2xNYWtlckFkZHJlc3MAAAAAAAAAAAABAAAAGGdldFBvb2xNYWtlclVubG9ja0hlaWdodAAAAAIAAAAMYXNzZXRBZGRyZXNzAAAAEHBvb2xNYWtlckFkZHJlc3MJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAAG2dldFBvb2xNYWtlclVubG9ja0hlaWdodEtleQAAAAIFAAAADGFzc2V0QWRkcmVzcwUAAAAQcG9vbE1ha2VyQWRkcmVzcwAAAAAAAAAAAAEAAAANZ2V0QXNzZXRQcmljZQAAAAIAAAAScHJpY2VPcmFjbGVBZGRyZXNzAAAACWFzc2V0Q29kZQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAAEnByaWNlT3JhY2xlQWRkcmVzcwkBAAAAEGdldEFzc2V0UHJpY2VLZXkAAAABBQAAAAlhc3NldENvZGUCAAAAFE5vIEFzc2V0IHByaWNlIGZvdW5kAQAAABhnZXRQb29sVG90YWxMb2NrZWRBbW91bnQAAAABAAAADGFzc2V0QWRkcmVzcwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQEAAAAbZ2V0UG9vbFRvdGFsTG9ja2VkQW1vdW50S2V5AAAAAQUAAAAMYXNzZXRBZGRyZXNzAAAAAAAAAAAAAQAAAB9jb21wb3NlQXNzZXRDb25maWd1cmF0aW9uU3RyaW5nAAAAEAAAAAlhc3NldENvZGUAAAAHYXNzZXRJZAAAAAthc3NldFN0YXR1cwAAAA1wcmljZURlY2ltYWxzAAAADmJhY2tpbmdBc3NldElkAAAAFW92ZXJDb2xsYXRlcmFsUGVyY2VudAAAAAdtaW5Qb29sAAAAEnByaWNlT3JhY2xlQWRkcmVzcwAAAA1taW5CdXlQYXltZW50AAAADm1pblNlbGxQYXltZW50AAAAD2J1eUxvY2tJbnRlcnZhbAAAABBzZWxsTG9ja0ludGVydmFsAAAABmJ1eUZlZQAAAAdzZWxsRmVlAAAAFXBvb2xSZWRlbXB0aW9uVGltZW91dAAAAB53ZWVrZW5kc1ByaWNlQ2hhbmdlQ29lZmZpY2llbnQJAAS5AAAAAgkABEwAAAACAgAAAB4lcyVzJXMlZCVzJWQlZCVzJWQlZCVkJWQlZCVkJWQJAARMAAAAAgUAAAAJYXNzZXRDb2RlCQAETAAAAAIFAAAAB2Fzc2V0SWQJAARMAAAAAgUAAAALYXNzZXRTdGF0dXMJAARMAAAAAgkAAaQAAAABBQAAAA1wcmljZURlY2ltYWxzCQAETAAAAAIFAAAADmJhY2tpbmdBc3NldElkCQAETAAAAAIJAAGkAAAAAQUAAAAVb3ZlckNvbGxhdGVyYWxQZXJjZW50CQAETAAAAAIJAAGkAAAAAQUAAAAHbWluUG9vbAkABEwAAAACBQAAABJwcmljZU9yYWNsZUFkZHJlc3MJAARMAAAAAgkAAaQAAAABBQAAAA1taW5CdXlQYXltZW50CQAETAAAAAIJAAGkAAAAAQUAAAAObWluU2VsbFBheW1lbnQJAARMAAAAAgkAAaQAAAABBQAAAA9idXlMb2NrSW50ZXJ2YWwJAARMAAAAAgkAAaQAAAABBQAAABBzZWxsTG9ja0ludGVydmFsCQAETAAAAAIJAAGkAAAAAQUAAAAGYnV5RmVlCQAETAAAAAIJAAGkAAAAAQUAAAAHc2VsbEZlZQkABEwAAAACCQABpAAAAAEFAAAAFXBvb2xSZWRlbXB0aW9uVGltZW91dAkABEwAAAACCQABpAAAAAEFAAAAHndlZWtlbmRzUHJpY2VDaGFuZ2VDb2VmZmljaWVudAUAAAADbmlsAgAAAAJfXwEAAAAUdXBkYXRlQXNzZXRDZmdTdGF0dXMAAAACAAAACW5ld1N0YXR1cwAAABZhc3NldENvbmZpZ3VyYXRpb25MaXN0BAAAAAVhQ29kZQkBAAAADGdldEFzc2V0Q29kZQAAAAEFAAAAFmFzc2V0Q29uZmlndXJhdGlvbkxpc3QEAAAAA2FJRAkBAAAACmdldEFzc2V0SUQAAAABBQAAABZhc3NldENvbmZpZ3VyYXRpb25MaXN0BAAAAA5hUHJpY2VEZWNpbWFscwkBAAAAFWdldEFzc2V0UHJpY2VEZWNpbWFscwAAAAEFAAAAFmFzc2V0Q29uZmlndXJhdGlvbkxpc3QEAAAADmFCYWtpbmdBc3NldElkCQEAAAAVZ2V0QXNzZXRCYWtpbmdBc3NldElkAAAAAQUAAAAWYXNzZXRDb25maWd1cmF0aW9uTGlzdAQAAAAWYU92ZXJDb2xsYXRlcmFsUGVyY2VudAkBAAAAHWdldEFzc2V0T3ZlckNvbGxhdGVyYWxQZXJjZW50AAAAAQUAAAAWYXNzZXRDb25maWd1cmF0aW9uTGlzdAQAAAAQYU1pblJlcXVpcmVkUG9vbAkBAAAAHWdldEFzc2V0TWluUmVxdWlyZWRQb29sQW1vdW50AAAAAQUAAAAWYXNzZXRDb25maWd1cmF0aW9uTGlzdAQAAAATYVByaWNlT3JhY2xlQWRkcmVzcwkBAAAAGmdldEFzc2V0UHJpY2VPcmFjbGVBZGRyZXNzAAAAAQUAAAAWYXNzZXRDb25maWd1cmF0aW9uTGlzdAQAAAAOYU1pbkJ1eVBheW1lbnQJAQAAABhnZXRNaW5CdXlQYXltZW50UGVyQXNzZXQAAAABBQAAABZhc3NldENvbmZpZ3VyYXRpb25MaXN0BAAAAA9hTWluU2VsbFBheW1lbnQJAQAAABlnZXRNaW5TZWxsUGF5bWVudFBlckFzc2V0AAAAAQUAAAAWYXNzZXRDb25maWd1cmF0aW9uTGlzdAQAAAAQYUJ1eUxvY2tJbnRlcnZhbAkBAAAAGmdldEJ1eUxvY2tJbnRlcnZhbFBlckFzc2V0AAAAAQUAAAAWYXNzZXRDb25maWd1cmF0aW9uTGlzdAQAAAARYVNlbGxMb2NrSW50ZXJ2YWwJAQAAABtnZXRTZWxsTG9ja0ludGVydmFsUGVyQXNzZXQAAAABBQAAABZhc3NldENvbmZpZ3VyYXRpb25MaXN0BAAAAAdhQnV5RmVlCQEAAAARZ2V0QnV5RmVlUGVyQXNzZXQAAAABBQAAABZhc3NldENvbmZpZ3VyYXRpb25MaXN0BAAAAAhhU2VsbEZlZQkBAAAAEmdldFNlbGxGZWVQZXJBc3NldAAAAAEFAAAAFmFzc2V0Q29uZmlndXJhdGlvbkxpc3QEAAAAGGFSZWRlbXB0aW9uVGltZW91dEJsb2NrcwkBAAAAGmdldFJlZGVtcHRpb25UaW1lb3V0QmxvY2tzAAAAAQUAAAAWYXNzZXRDb25maWd1cmF0aW9uTGlzdAQAAAAed2Vla2VuZHNQcmljZUNoYW5nZUNvZWZmaWNpZW50CQEAAAAhZ2V0V2Vla2VuZHNQcmljZUNoYW5nZUNvZWZmaWNpZW50AAAAAQUAAAAWYXNzZXRDb25maWd1cmF0aW9uTGlzdAkBAAAAH2NvbXBvc2VBc3NldENvbmZpZ3VyYXRpb25TdHJpbmcAAAAQBQAAAAVhQ29kZQUAAAADYUlEBQAAAAluZXdTdGF0dXMFAAAADmFQcmljZURlY2ltYWxzBQAAAA5hQmFraW5nQXNzZXRJZAUAAAAWYU92ZXJDb2xsYXRlcmFsUGVyY2VudAUAAAAQYU1pblJlcXVpcmVkUG9vbAUAAAATYVByaWNlT3JhY2xlQWRkcmVzcwUAAAAOYU1pbkJ1eVBheW1lbnQFAAAAD2FNaW5TZWxsUGF5bWVudAUAAAAQYUJ1eUxvY2tJbnRlcnZhbAUAAAARYVNlbGxMb2NrSW50ZXJ2YWwFAAAAB2FCdXlGZWUFAAAACGFTZWxsRmVlBQAAABhhUmVkZW1wdGlvblRpbWVvdXRCbG9ja3MFAAAAHndlZWtlbmRzUHJpY2VDaGFuZ2VDb2VmZmljaWVudAEAAAAZY2FsY0FsbG93ZWRBbW91bnRUb1JlZGVlbQAAAAIAAAAJYXNzZXRDb2RlAAAAEHBvb2xNYWtlckFkZHJlc3MEAAAAD2Fzc2V0QWRkcmVzc1N0cgkBAAAAG2dldEFzc2V0QWRkcmVzc0J5Q29kZU9yRmFpbAAAAAEFAAAACWFzc2V0Q29kZQQAAAAMYXNzZXRBZGRyZXNzCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAA9hc3NldEFkZHJlc3NTdHIEAAAAFmFzc2V0Q29uZmlndXJhdGlvbkxpc3QJAQAAABNnZXRBc3NldENvbmZpZ0FycmF5AAAAAQUAAAAPYXNzZXRBZGRyZXNzU3RyBAAAAAphc3NldElkU3RyCQEAAAAKZ2V0QXNzZXRJRAAAAAEFAAAAFmFzc2V0Q29uZmlndXJhdGlvbkxpc3QEAAAAB2Fzc2V0SWQJAAJZAAAAAQUAAAAKYXNzZXRJZFN0cgQAAAAOcG9vbEFjdHVhbFNpemUJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAAHWdldEFzc2V0Q3VycnJlbnRQb29sQW1vdW50S2V5AAAAAQUAAAAPYXNzZXRBZGRyZXNzU3RyAAAAAAAAAAAABAAAAAtwb29sTWF4U2l6ZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQEAAAAYZ2V0QXNzZXRNYXhQb29sQW1vdW50S2V5AAAAAQUAAAAPYXNzZXRBZGRyZXNzU3RyAAAAAAAAAAAABAAAABhwb29sVG90YWxMb2NrZWRBbW91bnRLZXkJAQAAABtnZXRQb29sVG90YWxMb2NrZWRBbW91bnRLZXkAAAABBQAAAA9hc3NldEFkZHJlc3NTdHIEAAAAD3Bvb2xUb3RhbExvY2tlZAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAABhwb29sVG90YWxMb2NrZWRBbW91bnRLZXkAAAAAAAAAAAAEAAAAFWFzc2V0VXNkblN0YWtlZEFtb3VudAkBAAAAFWdldE5ldXRyaW5vUnBkQmFsYW5jZQAAAAEFAAAAD2Fzc2V0QWRkcmVzc1N0cgQAAAAWYXNzZXRVc2RuQmFsYW5jZUFtb3VudAkAA/AAAAACBQAAAAxhc3NldEFkZHJlc3MFAAAAD25ldXRyaW5vQXNzZXRJZAQAAAAUYXNzZXRUb3RhbFVzZG5BbW91bnQJAABlAAAAAgkAAGQAAAACBQAAABVhc3NldFVzZG5TdGFrZWRBbW91bnQFAAAAFmFzc2V0VXNkbkJhbGFuY2VBbW91bnQFAAAAD3Bvb2xUb3RhbExvY2tlZAQAAAALdWNvbGxhdGVyYWwJAABlAAAAAgUAAAAUYXNzZXRUb3RhbFVzZG5BbW91bnQFAAAADnBvb2xBY3R1YWxTaXplBAAAABBkZWZvQXNzZXRCYWxhbmNlCQAD8AAAAAIFAAAADGFzc2V0QWRkcmVzcwUAAAAHYXNzZXRJZAQAAAASYXNzZXRFbWlzc2lvbkRpcnR5CAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAD7AAAAAEFAAAAB2Fzc2V0SWQJAAEsAAAAAgIAAAAYQ2Fubm90IGZpbmQgYXNzZXQgYnkgaWQgBQAAAAphc3NldElkU3RyAAAACHF1YW50aXR5BAAAAA1hc3NldEVtaXNzaW9uCQAAZQAAAAIFAAAAEmFzc2V0RW1pc3Npb25EaXJ0eQUAAAAQZGVmb0Fzc2V0QmFsYW5jZQQAAAAScHJpY2VPcmFjbGVBZGRyZXNzCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAaZ2V0QXNzZXRQcmljZU9yYWNsZUFkZHJlc3MAAAABBQAAABZhc3NldENvbmZpZ3VyYXRpb25MaXN0BAAAAAxjdXJyZW50UHJpY2UJAQAAAA1nZXRBc3NldFByaWNlAAAAAgUAAAAScHJpY2VPcmFjbGVBZGRyZXNzBQAAAAlhc3NldENvZGUEAAAAG3ByaWNlV2l0aE92ZXJjb2xsYXRlcmFsUmF0ZQkAAGkAAAACCQAAaAAAAAIJAABkAAAAAgUAAAANbXVsdGlwbGljYXRvcgkBAAAAHWdldEFzc2V0T3ZlckNvbGxhdGVyYWxQZXJjZW50AAAAAQUAAAAWYXNzZXRDb25maWd1cmF0aW9uTGlzdAUAAAAMY3VycmVudFByaWNlBQAAAA1tdWx0aXBsaWNhdG9yBAAAABl1c2RuTmVlZGVkVG9Db3ZlckVtaXNzaW9uCQAAaAAAAAIFAAAAG3ByaWNlV2l0aE92ZXJjb2xsYXRlcmFsUmF0ZQUAAAANYXNzZXRFbWlzc2lvbgQAAAAScG9vbE1ha2VyTWF4QW1vdW50CQEAAAAiZ2V0UG9vbE1ha2VyUGFydGljaXBhdGlvbk1heEFtb3VudAAAAAIFAAAAD2Fzc2V0QWRkcmVzc1N0cgUAAAAQcG9vbE1ha2VyQWRkcmVzcwQAAAAfcG9vbE1ha2VyUGFydGljaXBhdGlvbkFtb3VudEtleQkBAAAAImdldFBvb2xNYWtlclBhcnRpY2lwYXRpb25BbW91bnRLZXkAAAACBQAAAA9hc3NldEFkZHJlc3NTdHIFAAAAEHBvb2xNYWtlckFkZHJlc3MEAAAAFXBvb2xNYWtlckFjdHVhbEFtb3VudAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAB9wb29sTWFrZXJQYXJ0aWNpcGF0aW9uQW1vdW50S2V5AAAAAAAAAAAABAAAABVwb29sTWFrZXJMb2NrZWRBbW91bnQJAQAAABhnZXRQb29sTWFrZXJMb2NrZWRBbW91bnQAAAACBQAAAA9hc3NldEFkZHJlc3NTdHIFAAAAEHBvb2xNYWtlckFkZHJlc3MEAAAAB3N1cnBsdXMJAABlAAAAAgUAAAALdWNvbGxhdGVyYWwFAAAAGXVzZG5OZWVkZWRUb0NvdmVyRW1pc3Npb24EAAAAEHBlcmNlbnRWaWFBY3R1YWwJAABrAAAAAwUAAAAVcG9vbE1ha2VyQWN0dWFsQW1vdW50BQAAAA1tdWx0aXBsaWNhdG9yBQAAAA5wb29sQWN0dWFsU2l6ZQQAAAANcGVyY2VudFZpYU1heAkAAGsAAAADBQAAABJwb29sTWFrZXJNYXhBbW91bnQFAAAADW11bHRpcGxpY2F0b3IFAAAAC3Bvb2xNYXhTaXplBAAAAApmcm96ZW5QYXJ0AwkAAGcAAAACBQAAAAdzdXJwbHVzAAAAAAAAAAAAAAAAAAAAAAAACQABlgAAAAEJAARMAAAAAgUAAAAQcGVyY2VudFZpYUFjdHVhbAkABEwAAAACBQAAAA1wZXJjZW50VmlhTWF4BQAAAANuaWwEAAAAFWFsbG93ZWRBbW91bnRUb1JlZGVlbQkAAGsAAAADCQAAZQAAAAIFAAAADW11bHRpcGxpY2F0b3IFAAAACmZyb3plblBhcnQFAAAAFXBvb2xNYWtlckFjdHVhbEFtb3VudAUAAAANbXVsdGlwbGljYXRvcgQAAAAOd2l0aGRyYXdIZWlnaHQJAABkAAAAAgUAAAAGaGVpZ2h0CQEAAAAaZ2V0UmVkZW1wdGlvblRpbWVvdXRCbG9ja3MAAAABBQAAABZhc3NldENvbmZpZ3VyYXRpb25MaXN0CQAFGgAAAAgFAAAAD2Fzc2V0QWRkcmVzc1N0cgUAAAAVYWxsb3dlZEFtb3VudFRvUmVkZWVtBQAAAA9wb29sVG90YWxMb2NrZWQFAAAADnBvb2xBY3R1YWxTaXplBQAAABVwb29sTWFrZXJBY3R1YWxBbW91bnQFAAAADndpdGhkcmF3SGVpZ2h0BQAAABVwb29sTWFrZXJMb2NrZWRBbW91bnQJAAS5AAAAAgkABEwAAAACBQAAAA9hc3NldEFkZHJlc3NTdHIJAARMAAAAAgUAAAAKYXNzZXRJZFN0cgkABEwAAAACBQAAABBwb29sTWFrZXJBZGRyZXNzCQAETAAAAAIJAAGkAAAAAQUAAAAVYXNzZXRVc2RuU3Rha2VkQW1vdW50CQAETAAAAAIJAAGkAAAAAQUAAAAWYXNzZXRVc2RuQmFsYW5jZUFtb3VudAkABEwAAAACCQABpAAAAAEFAAAAFGFzc2V0VG90YWxVc2RuQW1vdW50CQAETAAAAAIJAAGkAAAAAQUAAAAOcG9vbEFjdHVhbFNpemUJAARMAAAAAgkAAaQAAAABBQAAAAtwb29sTWF4U2l6ZQkABEwAAAACCQABpAAAAAEFAAAAC3Vjb2xsYXRlcmFsCQAETAAAAAIJAAGkAAAAAQUAAAANYXNzZXRFbWlzc2lvbgkABEwAAAACCQABpAAAAAEFAAAADGN1cnJlbnRQcmljZQkABEwAAAACCQABpAAAAAEFAAAAG3ByaWNlV2l0aE92ZXJjb2xsYXRlcmFsUmF0ZQkABEwAAAACCQABpAAAAAEFAAAAEnBvb2xNYWtlck1heEFtb3VudAkABEwAAAACCQABpAAAAAEFAAAAFXBvb2xNYWtlckFjdHVhbEFtb3VudAkABEwAAAACCQABpAAAAAEFAAAAFXBvb2xNYWtlckxvY2tlZEFtb3VudAkABEwAAAACCQABpAAAAAEFAAAAB3N1cnBsdXMJAARMAAAAAgkAAaQAAAABBQAAABBwZXJjZW50VmlhQWN0dWFsCQAETAAAAAIJAAGkAAAAAQUAAAANcGVyY2VudFZpYU1heAkABEwAAAACCQABpAAAAAEFAAAACmZyb3plblBhcnQJAARMAAAAAgkAAaQAAAABBQAAABVhbGxvd2VkQW1vdW50VG9SZWRlZW0FAAAAA25pbAUAAAADU0VQAAAABwAAAAFpAQAAAARpbml0AAAACAAAABduZXV0cmlub0NvbnRyYWN0QWRkcmVzcwAAABZuZXV0cmlub1N0YWtpbmdBZGRyZXNzAAAAGG1pbmltdW5Qb29sRnVuZGluZ0Ftb3VudAAAABNwcmVkZWZpbmVkQXNzZXRMaXN0AAAAEWN1cnJlbnRBc3NldEluZGV4AAAAEmRlYnRFdGhhbG9uQmFsYW5jZQAAABJkZWZvU3Rha2luZ0FkZHJlc3MAAAAXZGVmb1N0YWtpbmdQYWNlbWFrZXJQdWIDCQEAAAACIT0AAAACCQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQUAAAAOYWRtaW5QdWJsaWNLZXkJAAACAAAAAQIAAAAqT25seSBBZG1pbiBjYW4gcGVyZm9ybSBjb250cmFjdCBvcGVyYXRpb24uAwkAAAAAAAACCQEAAAAMZ2V0Qm9vbEJ5S2V5AAAAAQUAAAAQaXNJbml0aWFsaXplZEtleQYJAAACAAAAAQIAAAAhQ29udHJhY3Qgd2FzIGFscmVhZHkgaW5pdGlhbGl6ZWQuBAAAAAlpc3N1ZURlYnQJAARCAAAABQIAAAAJREVGT19ERUJUAgAAABBERUZPIERlYnQgVG9rZW4uAAAAAAAAAAABAAAAAAAAAAAGBgQAAAALZGVidFRva2VuSWQJAAQ4AAAAAQUAAAAJaXNzdWVEZWJ0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAGm5ldXRyaW5vQ29udHJhY3RBZGRyZXNzS2V5BQAAABduZXV0cmlub0NvbnRyYWN0QWRkcmVzcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABluZXV0cmlub1N0YWtpbmdBZGRyZXNzS2V5BQAAABZuZXV0cmlub1N0YWtpbmdBZGRyZXNzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABttaW5pbXVuUG9vbEZ1bmRpbmdBbW91bnRLZXkFAAAAGG1pbmltdW5Qb29sRnVuZGluZ0Ftb3VudAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABRhc3NldHNBZGRyZXNzTGlzdEtleQUAAAATcHJlZGVmaW5lZEFzc2V0TGlzdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAUY3VycmVudEFzc2V0SW5kZXhLZXkFAAAAEWN1cnJlbnRBc3NldEluZGV4CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABlkZWJ0VG9rZW5FdGFsb25CYWxhbmNlS2V5BQAAABJkZWJ0RXRoYWxvbkJhbGFuY2UJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAOZGVidFRva2VuSWRLZXkJAAJYAAAAAQUAAAALZGVidFRva2VuSWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAVZGVmb1N0YWtpbmdBZGRyZXNzS2V5BQAAABJkZWZvU3Rha2luZ0FkZHJlc3MJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAaZGVmb1N0YWtpbmdQYWNlbWFrZXJQdWJLZXkFAAAAF2RlZm9TdGFraW5nUGFjZW1ha2VyUHViCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACBQAAABBpc0luaXRpYWxpemVkS2V5BgkABEwAAAACBQAAAAlpc3N1ZURlYnQJAARMAAAAAgkBAAAABEJ1cm4AAAACBQAAAAtkZWJ0VG9rZW5JZAAAAAAAAAAAAQUAAAADbmlsAAAAAWkBAAAADHByb3Bvc2VBc3NldAAAAA8AAAAJYXNzZXRDb2RlAAAABG1ldGEAAAAHbWluUG9vbAAAABJwcmljZU9yYWNsZUFkZHJlc3MAAAAVb3ZlckNvbGxhdGVyYWxQZXJjZW50AAAADmJhY2tpbmdBc3NldElkAAAADXByaWNlRGVjaW1hbHMAAAANbWluQnV5UGF5bWVudAAAAA5taW5TZWxsUGF5bWVudAAAAA9idXlMb2NrSW50ZXJ2YWwAAAAQc2VsbExvY2tJbnRlcnZhbAAAAAZidXlGZWUAAAAHc2VsbEZlZQAAABVwb29sUmVkZW1wdGlvblRpbWVvdXQAAAAed2Vla2VuZHNQcmljZUNoYW5nZUNvZWZmaWNpZW50AwkBAAAAAiE9AAAAAgkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkFAAAADmFkbWluUHVibGljS2V5CQAAAgAAAAECAAAAKk9ubHkgQWRtaW4gY2FuIHBlcmZvcm0gY29udHJhY3Qgb3BlcmF0aW9uLgMJAAAAAAAAAgkBAAAADGdldEJvb2xCeUtleQAAAAEFAAAAEGlzSW5pdGlhbGl6ZWRLZXkHCQAAAgAAAAECAAAAGkNvbnRyYWN0IGlzIG5vdCB5ZXQgcmVhZHkuAwkBAAAAAiE9AAAAAgkAAlkAAAABBQAAAA5iYWNraW5nQXNzZXRJZAUAAAAPbmV1dHJpbm9Bc3NldElkCQAAAgAAAAECAAAAI0Jha2luZyBhc3NldCBpZCBjb3VsZCBiZSBVU0ROIG9ubHkuAwkBAAAAAiE9AAAAAgkBAAAAFWdldEFzc2V0QWRkcmVzc0J5Q29kZQAAAAEFAAAACWFzc2V0Q29kZQIAAAAACQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAABdBc3NldCB3aXRoIHBhc3NlZCBjb2RlIAUAAAAJYXNzZXRDb2RlAgAAABsgaGFzIGFscmVhZHkgYmVlbiBwcm9wb3NlZC4DCQAAZgAAAAIFAAAAEm1pbmltdW1Qb29sRnVuZGluZwUAAAAHbWluUG9vbAkAAAIAAAABCQABLAAAAAICAAAAM01pbmltdW0gcG9vbCBhbW91bnQgc2hvdWxkIGJlIGdyZWF0ZXIgb3IgZXF1YWxzIHRvIAkAAaQAAAABBQAAABJtaW5pbXVtUG9vbEZ1bmRpbmcDAwMDAwMDAwkAAGYAAAACAAAAAAAAAAAABQAAABVvdmVyQ29sbGF0ZXJhbFBlcmNlbnQGCQAAZgAAAAIAAAAAAAAAAAAFAAAADXByaWNlRGVjaW1hbHMGCQAAZgAAAAIAAAAAAAAAAAAFAAAADW1pbkJ1eVBheW1lbnQGCQAAZgAAAAIAAAAAAAAAAAAFAAAADm1pblNlbGxQYXltZW50BgkAAGYAAAACAAAAAAAAAAAABQAAAA9idXlMb2NrSW50ZXJ2YWwGCQAAZgAAAAIAAAAAAAAAAAAFAAAAEHNlbGxMb2NrSW50ZXJ2YWwGCQAAZgAAAAIAAAAAAAAAAAAFAAAABmJ1eUZlZQYJAABmAAAAAgAAAAAAAAAAAAUAAAAHc2VsbEZlZQkAAAIAAAABAgAAAChPbmUgb2YgdGhlIHBhc3NlZCBwYXJhbWV0ZXJzIGlzIGludmFsaWQuBAAAABdwcmljZU9yYWNsZUFkZHJlc3NWYWxpZAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAABJwcmljZU9yYWNsZUFkZHJlc3MCAAAAKVBhc3NlZCBQcmljZSBPcmFjbGUgQWRkcmVzcyBpcyBub3QgdmFsaWQuBAAAAAxhc3NldEFkZHJlc3MJAAGRAAAAAgUAAAAUcHJlZGVmaW5lZEFzc2V0c0xpc3QFAAAAEWN1cnJlbnRBc3NldEluZGV4BAAAAAtkZWZvQXNzZXRJZAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCYAAAABBQAAAAxhc3NldEFkZHJlc3MCAAAAAAUAAAAOZGVmb0Fzc2V0SWRLZXkCAAAAF05vIGRlZm8gYXNzZXQgSUQgZm91bmQuCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABFnZXRBc3NldENvbmZpZ0tleQAAAAEFAAAADGFzc2V0QWRkcmVzcwkBAAAAH2NvbXBvc2VBc3NldENvbmZpZ3VyYXRpb25TdHJpbmcAAAAQBQAAAAlhc3NldENvZGUFAAAAC2RlZm9Bc3NldElkCAUAAAALYXNzZXRTdGF0dXMAAAACXzEFAAAADXByaWNlRGVjaW1hbHMFAAAADmJhY2tpbmdBc3NldElkBQAAABVvdmVyQ29sbGF0ZXJhbFBlcmNlbnQFAAAAB21pblBvb2wFAAAAEnByaWNlT3JhY2xlQWRkcmVzcwUAAAANbWluQnV5UGF5bWVudAUAAAAObWluU2VsbFBheW1lbnQFAAAAD2J1eUxvY2tJbnRlcnZhbAUAAAAQc2VsbExvY2tJbnRlcnZhbAUAAAAGYnV5RmVlBQAAAAdzZWxsRmVlBQAAABVwb29sUmVkZW1wdGlvblRpbWVvdXQFAAAAHndlZWtlbmRzUHJpY2VDaGFuZ2VDb2VmZmljaWVudAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAYZ2V0QXNzZXRBZGRyZXNzQnlDb2RlS2V5AAAAAQUAAAAJYXNzZXRDb2RlBQAAAAxhc3NldEFkZHJlc3MJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAD2dldEFzc2V0TWV0YUtleQAAAAEFAAAADGFzc2V0QWRkcmVzcwUAAAAEbWV0YQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAFWdldEFzc2V0SW5pdEhlaWdodEtleQAAAAEFAAAADGFzc2V0QWRkcmVzcwUAAAAGaGVpZ2h0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABRjdXJyZW50QXNzZXRJbmRleEtleQkAAGQAAAACBQAAABFjdXJyZW50QXNzZXRJbmRleAAAAAAAAAAAAQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAbZ2V0QXNzZXRBZGRyZXNzQnlBc3NldElkS2V5AAAAAQUAAAALZGVmb0Fzc2V0SWQFAAAADGFzc2V0QWRkcmVzcwUAAAADbmlsAAAAAWkBAAAAEWZ1bmRMaXF1aWRpdHlQb29sAAAAAQAAAAlhc3NldENvZGUEAAAAD2Fzc2V0QWRkcmVzc1N0cgkBAAAAG2dldEFzc2V0QWRkcmVzc0J5Q29kZU9yRmFpbAAAAAEFAAAACWFzc2V0Q29kZQQAAAAWYXNzZXRDb25maWd1cmF0aW9uTGlzdAkBAAAAE2dldEFzc2V0Q29uZmlnQXJyYXkAAAABBQAAAA9hc3NldEFkZHJlc3NTdHIEAAAAD2F0dGFjaGVkUGF5bWVudAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAQcG9vbE1ha2VyQWRkcmVzcwkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIDCQAAAAAAAAIJAQAAAAxnZXRCb29sQnlLZXkAAAABBQAAABBpc0luaXRpYWxpemVkS2V5BwkAAAIAAAABAgAAABpDb250cmFjdCBpcyBub3QgeWV0IHJlYWR5LgMJAQAAAAIhPQAAAAIIBQAAAA9hdHRhY2hlZFBheW1lbnQAAAAHYXNzZXRJZAUAAAAPbmV1dHJpbm9Bc3NldElkCQAAAgAAAAECAAAALkxpcXVpZGl0eSBwb29sIGNvdWxkIGJlIGZ1bmRlZCB3aXRoIFVTRE4gb25seS4DCQAAZgAAAAIFAAAAE21pblBvb2xJbnZlc3RBbW91bnQIBQAAAA9hdHRhY2hlZFBheW1lbnQAAAAGYW1vdW50CQAAAgAAAAEJAAEsAAAAAgIAAAAxQXR0YWNoZWQgcGF5bWVudCBhbW91bnQgaXMgbGVzcyB0aGEgbWluIGFsbG93ZWQ6IAkAAaQAAAABBQAAABNtaW5Qb29sSW52ZXN0QW1vdW50BAAAABRuZXdDdXJyZW50UG9vbEFtb3VudAkAAGQAAAACCAUAAAAPYXR0YWNoZWRQYXltZW50AAAABmFtb3VudAkBAAAAGWdldEFzc2V0Q3VycmVudFBvb2xBbW91bnQAAAABBQAAAA9hc3NldEFkZHJlc3NTdHIEAAAADW1heFBvb2xBbW91bnQJAQAAABVnZXRBc3NldE1heFBvb2xBbW91bnQAAAABBQAAAA9hc3NldEFkZHJlc3NTdHIEAAAAF2N1cnJlbnRQb29sTWFrZXJCYWxhbmNlCQEAAAAfZ2V0UG9vbE1ha2VyUGFydGljaXBhdGlvbkFtb3VudAAAAAIFAAAAD2Fzc2V0QWRkcmVzc1N0cgUAAAAQcG9vbE1ha2VyQWRkcmVzcwQAAAATbWF4UG9vbE1ha2VyQmFsYW5jZQkBAAAAImdldFBvb2xNYWtlclBhcnRpY2lwYXRpb25NYXhBbW91bnQAAAACBQAAAA9hc3NldEFkZHJlc3NTdHIFAAAAEHBvb2xNYWtlckFkZHJlc3MEAAAAEmN1cnJlbnRBc3NldFN0YXR1cwkBAAAADmdldEFzc2V0U3RhdHVzAAAAAQUAAAAWYXNzZXRDb25maWd1cmF0aW9uTGlzdAQAAAAObmV3QXNzZXRTdGF0dXMDAwkAAAAAAAACBQAAABJjdXJyZW50QXNzZXRTdGF0dXMFAAAADUFTU0V0UFJPUE9TRUQJAABnAAAAAgUAAAAUbmV3Q3VycmVudFBvb2xBbW91bnQJAQAAAB1nZXRBc3NldE1pblJlcXVpcmVkUG9vbEFtb3VudAAAAAEFAAAAFmFzc2V0Q29uZmlndXJhdGlvbkxpc3QHBQAAAApBU1NFdFJFQURZBQAAABJjdXJyZW50QXNzZXRTdGF0dXMEAAAAE25ld1Bvb2xNYWtlckJhbGFuY2UJAABkAAAAAgUAAAAXY3VycmVudFBvb2xNYWtlckJhbGFuY2UIBQAAAA9hdHRhY2hlZFBheW1lbnQAAAAGYW1vdW50BAAAABlpbW1lZGlhdGVUcmFuc2ZlcklmSXNzdWVkAwkAAAAAAAACBQAAABJjdXJyZW50QXNzZXRTdGF0dXMFAAAAC0FTU0V0SVNTVUVECQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAD2Fzc2V0QWRkcmVzc1N0cggFAAAAD2F0dGFjaGVkUGF5bWVudAAAAAZhbW91bnQFAAAAD25ldXRyaW5vQXNzZXRJZAUAAAADbmlsBQAAAANuaWwJAAROAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAImdldFBvb2xNYWtlclBhcnRpY2lwYXRpb25BbW91bnRLZXkAAAACBQAAAA9hc3NldEFkZHJlc3NTdHIFAAAAEHBvb2xNYWtlckFkZHJlc3MFAAAAE25ld1Bvb2xNYWtlckJhbGFuY2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAACVnZXRQb29sTWFrZXJQYXJ0aWNpcGF0aW9uTWF4QW1vdW50S2V5AAAAAgUAAAAPYXNzZXRBZGRyZXNzU3RyBQAAABBwb29sTWFrZXJBZGRyZXNzCQABlgAAAAEJAARMAAAAAgUAAAATbmV3UG9vbE1ha2VyQmFsYW5jZQkABEwAAAACBQAAABNtYXhQb29sTWFrZXJCYWxhbmNlBQAAAANuaWwJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAB1nZXRBc3NldEN1cnJyZW50UG9vbEFtb3VudEtleQAAAAEFAAAAD2Fzc2V0QWRkcmVzc1N0cgUAAAAUbmV3Q3VycmVudFBvb2xBbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABhnZXRBc3NldE1heFBvb2xBbW91bnRLZXkAAAABBQAAAA9hc3NldEFkZHJlc3NTdHIJAAGWAAAAAQkABEwAAAACBQAAAA1tYXhQb29sQW1vdW50CQAETAAAAAIFAAAAFG5ld0N1cnJlbnRQb29sQW1vdW50BQAAAANuaWwJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEWdldEFzc2V0Q29uZmlnS2V5AAAAAQUAAAAPYXNzZXRBZGRyZXNzU3RyCQEAAAAUdXBkYXRlQXNzZXRDZmdTdGF0dXMAAAACBQAAAA5uZXdBc3NldFN0YXR1cwUAAAAWYXNzZXRDb25maWd1cmF0aW9uTGlzdAUAAAADbmlsBQAAABlpbW1lZGlhdGVUcmFuc2ZlcklmSXNzdWVkAAAAAWkBAAAADWFjdGl2YXRlQXNzZXQAAAABAAAACWFzc2V0Q29kZQQAAAAMYXNzZXRBZGRyZXNzCQEAAAAVZ2V0QXNzZXRBZGRyZXNzQnlDb2RlAAAAAQUAAAAJYXNzZXRDb2RlBAAAABZhc3NldENvbmZpZ3VyYXRpb25MaXN0CQEAAAATZ2V0QXNzZXRDb25maWdBcnJheQAAAAEFAAAADGFzc2V0QWRkcmVzcwQAAAAWYXNzZXRDdXJyZW50UG9vbEFtb3VudAkBAAAAGWdldEFzc2V0Q3VycmVudFBvb2xBbW91bnQAAAABBQAAAAxhc3NldEFkZHJlc3MEAAAADmFDdXJyZW50U3RhdHVzCQEAAAAOZ2V0QXNzZXRTdGF0dXMAAAABBQAAABZhc3NldENvbmZpZ3VyYXRpb25MaXN0AwkBAAAAAiE9AAAAAgkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkFAAAADmFkbWluUHVibGljS2V5CQAAAgAAAAECAAAAKk9ubHkgQWRtaW4gY2FuIHBlcmZvcm0gY29udHJhY3Qgb3BlcmF0aW9uLgMJAAAAAAAAAgkBAAAADGdldEJvb2xCeUtleQAAAAEFAAAAEGlzSW5pdGlhbGl6ZWRLZXkHCQAAAgAAAAECAAAAGkNvbnRyYWN0IGlzIG5vdCB5ZXQgcmVhZHkuAwkBAAAAAiE9AAAAAgUAAAAOYUN1cnJlbnRTdGF0dXMIBQAAAAthc3NldFN0YXR1cwAAAAJfMgkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAwQXNzZXQgaXMgbm90IGluIFJFQURZIHN0YXR1cy4gQ3VycmVudCBzdGF0dXMgaXMgBQAAAA5hQ3VycmVudFN0YXR1cwIAAAABLgMJAAAAAAAAAgUAAAAMYXNzZXRBZGRyZXNzAgAAAAAJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAEkNhbm5vdCBmaW5kIGFzc2V0IAUAAAAJYXNzZXRDb2RlAgAAAAEuAwkAAGYAAAACBQAAABJtaW5pbXVtUG9vbEZ1bmRpbmcFAAAAFmFzc2V0Q3VycmVudFBvb2xBbW91bnQJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAC1DYW5ub3QgaXNzdWUgYXNzZXQgYXMgbGlxdWlkaXR5IHBvb2wgYW1vdW50ICgJAAGkAAAAAQUAAAAWYXNzZXRDdXJyZW50UG9vbEFtb3VudAIAAAAZKSBpcyBsZXNzIHRoYW4gcmVxdWlyZWQgKAkAAaQAAAABBQAAABJtaW5pbXVtUG9vbEZ1bmRpbmcCAAAAASkEAAAACWlzc3VlRGVidAkBAAAAB1JlaXNzdWUAAAADBQAAAAlkZWJ0VG9rZW4FAAAAFmRlYnRUb2tlblJlaXNzdWVBbW91bnQGCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAZZ2V0QXNzZXRBY3RpdmF0ZUhlaWdodEtleQAAAAEFAAAADGFzc2V0QWRkcmVzcwUAAAAGaGVpZ2h0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABFnZXRBc3NldENvbmZpZ0tleQAAAAEFAAAADGFzc2V0QWRkcmVzcwkBAAAAFHVwZGF0ZUFzc2V0Q2ZnU3RhdHVzAAAAAggFAAAAC2Fzc2V0U3RhdHVzAAAAAl8zBQAAABZhc3NldENvbmZpZ3VyYXRpb25MaXN0CQAETAAAAAIFAAAACWlzc3VlRGVidAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAAxhc3NldEFkZHJlc3MFAAAAFmFzc2V0Q3VycmVudFBvb2xBbW91bnQFAAAAD25ldXRyaW5vQXNzZXRJZAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAAxhc3NldEFkZHJlc3MFAAAAFmRlYnRUb2tlblJlaXNzdWVBbW91bnQFAAAACWRlYnRUb2tlbgUAAAADbmlsAAAAAWkBAAAADnJlZGVlbUZyb21Qb29sAAAAAgAAAAlhc3NldENvZGUAAAAGYW1vdW50BAAAAA1jYWxsZXJBZGRyZXNzCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAALcmVkZWVtVHVwbGUJAQAAABljYWxjQWxsb3dlZEFtb3VudFRvUmVkZWVtAAAAAgUAAAAJYXNzZXRDb2RlBQAAAA1jYWxsZXJBZGRyZXNzBAAAAA9hc3NldEFkZHJlc3NTdHIIBQAAAAtyZWRlZW1UdXBsZQAAAAJfMQQAAAAVYWxsb3dlZEFtb3VudFRvUmVkZWVtCAUAAAALcmVkZWVtVHVwbGUAAAACXzIEAAAAD3Bvb2xUb3RhbExvY2tlZAgFAAAAC3JlZGVlbVR1cGxlAAAAAl8zBAAAAA5wb29sQWN0dWFsU2l6ZQgFAAAAC3JlZGVlbVR1cGxlAAAAAl80BAAAABVwb29sTWFrZXJBY3R1YWxBbW91bnQIBQAAAAtyZWRlZW1UdXBsZQAAAAJfNQQAAAAOd2l0aGRyYXdIZWlnaHQIBQAAAAtyZWRlZW1UdXBsZQAAAAJfNgQAAAAVcG9vbE1ha2VyTG9ja2VkQW1vdW50CAUAAAALcmVkZWVtVHVwbGUAAAACXzcEAAAACXRyYWNlRGF0YQgFAAAAC3JlZGVlbVR1cGxlAAAAAl84BAAAABxwb29sTWFrZXJMaXF1aWRpdHlSZXF1ZXN0S2V5CQEAAAAfZ2V0UG9vbE1ha2VyTGlxdWlkaXR5UmVxdWVzdEtleQAAAAMFAAAAD2Fzc2V0QWRkcmVzc1N0cgUAAAANY2FsbGVyQWRkcmVzcwUAAAAOd2l0aGRyYXdIZWlnaHQDCQAAAAAAAAIJAQAAAAxnZXRCb29sQnlLZXkAAAABBQAAABBpc0luaXRpYWxpemVkS2V5BwkAAAIAAAABAgAAABpDb250cmFjdCBpcyBub3QgeWV0IHJlYWR5LgMDAwkAAGYAAAACAAAAAAAAAAAABQAAAAZhbW91bnQGCQAAZwAAAAIAAAAAAAAAAAAFAAAAFXBvb2xNYWtlckFjdHVhbEFtb3VudAYJAABmAAAAAgUAAAAGYW1vdW50BQAAABVhbGxvd2VkQW1vdW50VG9SZWRlZW0JAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAIkNhbm5vdCBmaW5kIHBvb2wgbWFrZXIgYnkgYWRkcmVzcyAFAAAADWNhbGxlckFkZHJlc3MCAAAAISBvciBhbW91bnQgcGFzc2VkIGlzIG5vdCBjb3JyZWN0LgMJAABmAAAAAgkAAGgAAAACAAAAAAAAAAABBQAAAA1tdWx0aXBsaWNhdG9yBQAAAAZhbW91bnQJAAACAAAAAQIAAAAmUmVkZWVtIGFtb3VudCBpcyBsZXNzIHRoZW4gbWluIGFsbG93ZWQDCQAAZgAAAAIFAAAAFXBvb2xNYWtlckxvY2tlZEFtb3VudAAAAAAAAAAAAAkAAAIAAAABAgAAAEZQb29sIG1ha2VyIGFscmVhZHkgaGFzIGluaXRpYXRlZCByZWRlbXB0aW9uIHRoYXQgaXMgbm90IHdpdGhkcmF3biB5ZXQuAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQaAAAAAgUAAAAEdGhpcwUAAAAccG9vbE1ha2VyTGlxdWlkaXR5UmVxdWVzdEtleQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAwUG9vbCBtYWtlciBoYXMgYWxyZWFkeSBpbml0aWF0ZWQgcmVkZW1wdGlvbiBmb3IgCQABpAAAAAEFAAAABmhlaWdodAIAAAAHIGhlaWdodAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAG2dldFBvb2xUb3RhbExvY2tlZEFtb3VudEtleQAAAAEFAAAAD2Fzc2V0QWRkcmVzc1N0cgkAAGQAAAACBQAAAA9wb29sVG90YWxMb2NrZWQFAAAABmFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAHWdldEFzc2V0Q3VycnJlbnRQb29sQW1vdW50S2V5AAAAAQUAAAAPYXNzZXRBZGRyZXNzU3RyCQAAZQAAAAIFAAAADnBvb2xBY3R1YWxTaXplBQAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAACJnZXRQb29sTWFrZXJQYXJ0aWNpcGF0aW9uQW1vdW50S2V5AAAAAgUAAAAPYXNzZXRBZGRyZXNzU3RyBQAAAA1jYWxsZXJBZGRyZXNzCQAAZQAAAAIFAAAAFXBvb2xNYWtlckFjdHVhbEFtb3VudAUAAAAGYW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABxwb29sTWFrZXJMaXF1aWRpdHlSZXF1ZXN0S2V5BQAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABtnZXRQb29sTWFrZXJMb2NrZWRBbW91bnRLZXkAAAACBQAAAA9hc3NldEFkZHJlc3NTdHIFAAAADWNhbGxlckFkZHJlc3MFAAAABmFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAG2dldFBvb2xNYWtlclVubG9ja0hlaWdodEtleQAAAAIFAAAAD2Fzc2V0QWRkcmVzc1N0cgUAAAANY2FsbGVyQWRkcmVzcwUAAAAOd2l0aGRyYXdIZWlnaHQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAZJXMlc190cmFjZV9yZWRlZW1Gcm9tUG9vbAUAAAAJdHJhY2VEYXRhBQAAAANuaWwAAAABaQEAAAAbZ2V0TWF4QWxsb3dlZEFtb3VudFRvUmVkZWVtAAAAAgAAAAlhc3NldENvZGUAAAAQcG9vbE1ha2VyQWRkcmVzcwQAAAALcmVkZWVtVHVwbGUJAQAAABljYWxjQWxsb3dlZEFtb3VudFRvUmVkZWVtAAAAAgUAAAAJYXNzZXRDb2RlBQAAABBwb29sTWFrZXJBZGRyZXNzBAAAAA9hc3NldEFkZHJlc3NTdHIIBQAAAAtyZWRlZW1UdXBsZQAAAAJfMQQAAAAVYWxsb3dlZEFtb3VudFRvUmVkZWVtCAUAAAALcmVkZWVtVHVwbGUAAAACXzIEAAAAD3Bvb2xUb3RhbExvY2tlZAgFAAAAC3JlZGVlbVR1cGxlAAAAAl8zBAAAAA5wb29sQWN0dWFsU2l6ZQgFAAAAC3JlZGVlbVR1cGxlAAAAAl80BAAAABVwb29sTWFrZXJBY3R1YWxBbW91bnQIBQAAAAtyZWRlZW1UdXBsZQAAAAJfNQQAAAAOd2l0aGRyYXdIZWlnaHQIBQAAAAtyZWRlZW1UdXBsZQAAAAJfNgQAAAAVcG9vbE1ha2VyTG9ja2VkQW1vdW50CAUAAAALcmVkZWVtVHVwbGUAAAACXzcEAAAACXRyYWNlRGF0YQgFAAAAC3JlZGVlbVR1cGxlAAAAAl84CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAAXsCAAAAF2FsbG93ZWRBbW91bnRUb1JlZGVlbTogCQABpAAAAAEFAAAAFWFsbG93ZWRBbW91bnRUb1JlZGVlbQIAAAANLCBhc3NldENvZGU6IAUAAAAJYXNzZXRDb2RlAgAAAA0sIHBvb2xNYWtlcjogBQAAABBwb29sTWFrZXJBZGRyZXNzAgAAAAksIHRyYWNlOiAFAAAACXRyYWNlRGF0YQIAAAABfQAAAAFpAQAAAAh3aXRoZHJhdwAAAAEAAAAJYXNzZXRDb2RlBAAAAA1jYWxsZXJBZGRyZXNzCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAPYXNzZXRBZGRyZXNzU3RyCQEAAAAbZ2V0QXNzZXRBZGRyZXNzQnlDb2RlT3JGYWlsAAAAAQUAAAAJYXNzZXRDb2RlBAAAAAxhc3NldEFkZHJlc3MJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAD2Fzc2V0QWRkcmVzc1N0cgQAAAAYcG9vbE1ha2VyTG9ja2VkQW1vdW50S2V5CQEAAAAbZ2V0UG9vbE1ha2VyTG9ja2VkQW1vdW50S2V5AAAAAgUAAAAPYXNzZXRBZGRyZXNzU3RyBQAAAA1jYWxsZXJBZGRyZXNzBAAAABlyZWdpc3RlcmVkQW1vdW50NFdpdGhkcmF3CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAGHBvb2xNYWtlckxvY2tlZEFtb3VudEtleQAAAAAAAAAAAAQAAAAYcG9vbE1ha2VyVW5sb2NrSGVpZ2h0S2V5CQEAAAAbZ2V0UG9vbE1ha2VyVW5sb2NrSGVpZ2h0S2V5AAAAAgUAAAAPYXNzZXRBZGRyZXNzU3RyBQAAAA1jYWxsZXJBZGRyZXNzBAAAAA53aXRoZHJhd0hlaWdodAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAABhwb29sTWFrZXJVbmxvY2tIZWlnaHRLZXkAAAAAAAAAAAAEAAAAGHBvb2xUb3RhbExvY2tlZEFtb3VudEtleQkBAAAAG2dldFBvb2xUb3RhbExvY2tlZEFtb3VudEtleQAAAAEFAAAAD2Fzc2V0QWRkcmVzc1N0cgQAAAAPcG9vbFRvdGFsTG9ja2VkCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAGHBvb2xUb3RhbExvY2tlZEFtb3VudEtleQAAAAAAAAAAAAQAAAAccG9vbE1ha2VyTGlxdWlkaXR5UmVxdWVzdEtleQkBAAAAH2dldFBvb2xNYWtlckxpcXVpZGl0eVJlcXVlc3RLZXkAAAADBQAAAA9hc3NldEFkZHJlc3NTdHIFAAAADWNhbGxlckFkZHJlc3MFAAAADndpdGhkcmF3SGVpZ2h0AwkAAAAAAAACCQEAAAAMZ2V0Qm9vbEJ5S2V5AAAAAQUAAAAQaXNJbml0aWFsaXplZEtleQcJAAACAAAAAQIAAAAaQ29udHJhY3QgaXMgbm90IHlldCByZWFkeS4DCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABCQAEGgAAAAIFAAAADGFzc2V0QWRkcmVzcwUAAAAccG9vbE1ha2VyTGlxdWlkaXR5UmVxdWVzdEtleQkAAAIAAAABAgAAADNOZWVkIHRvIHRyYW5zZmVyIGxpcXVpZGl0eSBmcm9tIGFzc2V0IGFjY291bnQgZmlyc3QDCQAAZwAAAAIAAAAAAAAAAAAFAAAAGXJlZ2lzdGVyZWRBbW91bnQ0V2l0aGRyYXcJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAIkNhbm5vdCBmaW5kIHBvb2wgbWFrZXIgYnkgYWRkcmVzcyAFAAAADWNhbGxlckFkZHJlc3MCAAAAFSBvciBubyBsb2NrZWQgYW1vdW50LgMJAABmAAAAAgUAAAAGaGVpZ2h0BQAAAA53aXRoZHJhd0hlaWdodAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAMUGxlYXNlIHdhaXQgCQABpAAAAAEFAAAADndpdGhkcmF3SGVpZ2h0AgAAABEgYmVmb3JlIHdpdGhkcmF3LgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAYcG9vbE1ha2VyTG9ja2VkQW1vdW50S2V5AAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABhwb29sVG90YWxMb2NrZWRBbW91bnRLZXkJAABlAAAAAgUAAAAPcG9vbFRvdGFsTG9ja2VkBQAAABlyZWdpc3RlcmVkQW1vdW50NFdpdGhkcmF3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABhwb29sTWFrZXJVbmxvY2tIZWlnaHRLZXkAAAAAAAAAAAAJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAANY2FsbGVyQWRkcmVzcwUAAAAZcmVnaXN0ZXJlZEFtb3VudDRXaXRoZHJhdwUAAAAPbmV1dHJpbm9Bc3NldElkBQAAAANuaWwAAAAASkMubw==", "chainId": 84, "height": 1248874, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9MqbrqgMMp8aMDgXAZuv5wYQrBUcLtSd7CJFELKmgLHw Next: DTGk32BBivkGKQFqVUq6XgxmZeQdfNtG6Bp3RviDtDzo Diff:
Old | New | Differences | |
---|---|---|---|
467 | 467 | let cj = cR._5 | |
468 | 468 | let cq = cR._6 | |
469 | 469 | let ck = cR._7 | |
470 | - | throw(((((((("{" + "allowedAmountToRedeem: ") + toString(cp)) + ", assetCode: ") + S) + ", poolMaker: ") + ad) + "}")) | |
470 | + | let cS = cR._8 | |
471 | + | throw(((((((((("{" + "allowedAmountToRedeem: ") + toString(cp)) + ", assetCode: ") + S) + ", poolMaker: ") + ad) + ", trace: ") + cS) + "}")) | |
471 | 472 | } | |
472 | 473 | ||
473 | 474 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | func a (b,c) = split(b, c) | |
5 | 5 | ||
6 | 6 | ||
7 | 7 | func d (e,f) = valueOrElse(getString(e, f), "") | |
8 | 8 | ||
9 | 9 | ||
10 | 10 | func g (f) = valueOrElse(getBoolean(this, f), false) | |
11 | 11 | ||
12 | 12 | ||
13 | 13 | let h = "__" | |
14 | 14 | ||
15 | 15 | let i = 1 | |
16 | 16 | ||
17 | 17 | let j = 2 | |
18 | 18 | ||
19 | 19 | let k = 3 | |
20 | 20 | ||
21 | 21 | let l = 4 | |
22 | 22 | ||
23 | 23 | let m = 5 | |
24 | 24 | ||
25 | 25 | let n = 6 | |
26 | 26 | ||
27 | 27 | let o = 7 | |
28 | 28 | ||
29 | 29 | let p = 8 | |
30 | 30 | ||
31 | 31 | let q = 9 | |
32 | 32 | ||
33 | 33 | let r = 10 | |
34 | 34 | ||
35 | 35 | let s = 11 | |
36 | 36 | ||
37 | 37 | let t = 12 | |
38 | 38 | ||
39 | 39 | let u = 13 | |
40 | 40 | ||
41 | 41 | let v = 14 | |
42 | 42 | ||
43 | 43 | let w = 15 | |
44 | 44 | ||
45 | 45 | let x = 16 | |
46 | 46 | ||
47 | 47 | let y = "G1Ebu5AMHaTJFEbZNkZQcJFUQ9KfiYUwupyLG857DcFr" | |
48 | 48 | ||
49 | 49 | let z = "%s%s__commonConfig__neutrinoContractAddress" | |
50 | 50 | ||
51 | 51 | let A = "%s%s__commonConfig__neutrinoStakingAddress" | |
52 | 52 | ||
53 | 53 | let B = "%s%s__commonConfig__minimumPoolFundingAmount" | |
54 | 54 | ||
55 | 55 | let C = "%s%s__commonConfig__initialized" | |
56 | 56 | ||
57 | 57 | let D = "%s%s__commonConfig__predefinedAssetsActiveIndex" | |
58 | 58 | ||
59 | 59 | let E = "%s%s__commonConfig__predefinedAssetsList" | |
60 | 60 | ||
61 | 61 | let F = "%s%s__commonConfig__debtAssetId" | |
62 | 62 | ||
63 | 63 | let G = "%s%s__commonConfig__debtAssetEtalonBalance" | |
64 | 64 | ||
65 | 65 | let H = "%s%s__commonConfig__defoStakingAddress" | |
66 | 66 | ||
67 | 67 | let I = "%s%s__commonConfig__defoStakingPacemakerPub" | |
68 | 68 | ||
69 | 69 | let J = "%s%s__commonConfig__minPoolInvestAmount" | |
70 | 70 | ||
71 | 71 | let K = "neutrino_asset_id" | |
72 | 72 | ||
73 | 73 | let L = "bond_asset_id" | |
74 | 74 | ||
75 | 75 | let M = "rpd_contract" | |
76 | 76 | ||
77 | 77 | let N = "%s__defoAssetId" | |
78 | 78 | ||
79 | 79 | let O = "%s__assetScriptTxId" | |
80 | 80 | ||
81 | 81 | func P (Q) = (("%s%s%s__defoAsset__" + Q) + "__config") | |
82 | 82 | ||
83 | 83 | ||
84 | 84 | func R (S) = ("%s%s__price__" + S) | |
85 | 85 | ||
86 | 86 | ||
87 | 87 | func T (Q) = (("%s%s%s__defoAsset__" + Q) + "__initHeight") | |
88 | 88 | ||
89 | 89 | ||
90 | 90 | func U (Q) = (("%s%s%s__defoAsset__" + Q) + "__activateHeight") | |
91 | 91 | ||
92 | 92 | ||
93 | 93 | func V (Q) = (("%s%s%s__defoAsset__" + Q) + "__currentPool") | |
94 | 94 | ||
95 | 95 | ||
96 | 96 | func W (Q) = (("%s%s%s__defoAsset__" + Q) + "__maxPool") | |
97 | 97 | ||
98 | 98 | ||
99 | 99 | func X (Q) = (("%s%s%s__defoAsset__" + Q) + "__meta") | |
100 | 100 | ||
101 | 101 | ||
102 | 102 | func Y (Q) = (("%s%s%s__defoAsset__" + Q) + "__poolMakers") | |
103 | 103 | ||
104 | 104 | ||
105 | 105 | func Z (S) = (("%s%s%s__defoAsset__" + S) + "__addressByAssetCode") | |
106 | 106 | ||
107 | 107 | ||
108 | 108 | func aa (ab) = (("%s%s%s__defoAsset__" + ab) + "__addressByAssetId") | |
109 | 109 | ||
110 | 110 | ||
111 | 111 | func ac (Q,ad) = makeString(["%s%s%s%s__pool", Q, ad, "amount"], h) | |
112 | 112 | ||
113 | 113 | ||
114 | 114 | func ae (Q,ad) = makeString(["%s%s%s%s__pool", Q, ad, "maxAmount"], h) | |
115 | 115 | ||
116 | 116 | ||
117 | 117 | func af (Q,ad) = makeString(["%s%s%s%s__pool", Q, ad, "lockedAmount"], h) | |
118 | 118 | ||
119 | 119 | ||
120 | 120 | func ag (Q,ad) = makeString(["%s%s%s%s__pool", Q, ad, "unlockHeight"], h) | |
121 | 121 | ||
122 | 122 | ||
123 | 123 | func ah (Q,ad,ai) = makeString(["%s%s%s%d%s__pool", Q, ad, toString(ai), "liquidityRequest"], h) | |
124 | 124 | ||
125 | 125 | ||
126 | 126 | func aj (Q) = makeString(["%s%s%s__pool", Q, "totalLockedAmount"], h) | |
127 | 127 | ||
128 | 128 | ||
129 | 129 | func ak (Q) = a(valueOrErrorMessage(d(this, P(Q)), (("No DEFO Asset " + Q) + "config present")), "__") | |
130 | 130 | ||
131 | 131 | ||
132 | 132 | let al = 1000000 | |
133 | 133 | ||
134 | 134 | let am = addressFromStringValue(valueOrErrorMessage(getString(this, z), "No neutrino contract specified.")) | |
135 | 135 | ||
136 | 136 | let an = valueOrErrorMessage(getString(am, K), "No USDN asset id found.") | |
137 | 137 | ||
138 | 138 | let ao = fromBase58String(an) | |
139 | 139 | ||
140 | 140 | let ap = fromBase58String(valueOrErrorMessage(getString(am, L), "No NSBT asset id found")) | |
141 | 141 | ||
142 | 142 | let aq = valueOrErrorMessage(getInteger(this, B), "Minimum pool funding amount is not specified.") | |
143 | 143 | ||
144 | 144 | let ar = valueOrElse(getInteger(this, J), (10 * al)) | |
145 | 145 | ||
146 | 146 | let as = "PROPOSED" | |
147 | 147 | ||
148 | 148 | let at = "READY" | |
149 | 149 | ||
150 | 150 | let au = "ISSUED" | |
151 | 151 | ||
152 | 152 | let av = $Tuple3(as, at, au) | |
153 | 153 | ||
154 | 154 | let aw = valueOrErrorMessage(getString(this, E), "No pool of predeployed asset contracts found.") | |
155 | 155 | ||
156 | 156 | let ax = a(aw, ",") | |
157 | 157 | ||
158 | 158 | let ay = valueOrElse(getInteger(this, D), 0) | |
159 | 159 | ||
160 | 160 | let az = fromBase58String(valueOrErrorMessage(getString(this, F), "No debt token found")) | |
161 | 161 | ||
162 | 162 | let aA = valueOrElse(getInteger(this, G), 0) | |
163 | 163 | ||
164 | 164 | let aB = addressFromStringValue(getStringValue(am, M)) | |
165 | 165 | ||
166 | 166 | func aC (aD) = { | |
167 | 167 | let aE = makeString(["rpd_balance", an, aD], "_") | |
168 | 168 | valueOrElse(getInteger(aB, aE), 0) | |
169 | 169 | } | |
170 | 170 | ||
171 | 171 | ||
172 | 172 | func aF (aG) = valueOrElse(getString(this, Z(aG)), "") | |
173 | 173 | ||
174 | 174 | ||
175 | 175 | func aH (aG) = valueOrErrorMessage(getString(this, Z(aG)), (("Cannot find asset address by " + aG) + " code")) | |
176 | 176 | ||
177 | 177 | ||
178 | 178 | func aI (aJ) = aJ[i] | |
179 | 179 | ||
180 | 180 | ||
181 | 181 | func aK (aJ) = aJ[j] | |
182 | 182 | ||
183 | 183 | ||
184 | 184 | func aL (aJ) = aJ[k] | |
185 | 185 | ||
186 | 186 | ||
187 | 187 | func aM (aJ) = parseIntValue(aJ[l]) | |
188 | 188 | ||
189 | 189 | ||
190 | 190 | func aN (aJ) = aJ[m] | |
191 | 191 | ||
192 | 192 | ||
193 | 193 | func aO (aJ) = parseIntValue(aJ[n]) | |
194 | 194 | ||
195 | 195 | ||
196 | 196 | func aP (aJ) = parseIntValue(aJ[o]) | |
197 | 197 | ||
198 | 198 | ||
199 | 199 | func aQ (aJ) = aJ[p] | |
200 | 200 | ||
201 | 201 | ||
202 | 202 | func aR (aJ) = parseIntValue(aJ[q]) | |
203 | 203 | ||
204 | 204 | ||
205 | 205 | func aS (aJ) = parseIntValue(aJ[r]) | |
206 | 206 | ||
207 | 207 | ||
208 | 208 | func aT (aJ) = parseIntValue(aJ[s]) | |
209 | 209 | ||
210 | 210 | ||
211 | 211 | func aU (aJ) = parseIntValue(aJ[t]) | |
212 | 212 | ||
213 | 213 | ||
214 | 214 | func aV (aJ) = parseIntValue(aJ[u]) | |
215 | 215 | ||
216 | 216 | ||
217 | 217 | func aW (aJ) = parseIntValue(aJ[v]) | |
218 | 218 | ||
219 | 219 | ||
220 | 220 | func aX (aJ) = parseIntValue(aJ[w]) | |
221 | 221 | ||
222 | 222 | ||
223 | 223 | func aY (aJ) = parseIntValue(aJ[x]) | |
224 | 224 | ||
225 | 225 | ||
226 | 226 | func aZ (Q) = valueOrElse(getString(this, Y(Q)), "") | |
227 | 227 | ||
228 | 228 | ||
229 | 229 | func ba (Q) = valueOrElse(getInteger(this, T(Q)), 0) | |
230 | 230 | ||
231 | 231 | ||
232 | 232 | func bb (Q) = valueOrElse(getInteger(this, U(Q)), 0) | |
233 | 233 | ||
234 | 234 | ||
235 | 235 | func bc (Q) = valueOrElse(getInteger(this, V(Q)), 0) | |
236 | 236 | ||
237 | 237 | ||
238 | 238 | func bd (Q) = valueOrElse(getInteger(this, W(Q)), 0) | |
239 | 239 | ||
240 | 240 | ||
241 | 241 | func be (Q) = valueOrElse(getString(this, X(Q)), "") | |
242 | 242 | ||
243 | 243 | ||
244 | 244 | func bf (Q,ad) = valueOrElse(getInteger(this, ac(Q, ad)), 0) | |
245 | 245 | ||
246 | 246 | ||
247 | 247 | func bg (Q,ad) = valueOrElse(getInteger(this, ae(Q, ad)), 0) | |
248 | 248 | ||
249 | 249 | ||
250 | 250 | func bh (Q,ad) = valueOrElse(getInteger(this, af(Q, ad)), 0) | |
251 | 251 | ||
252 | 252 | ||
253 | 253 | func bi (Q,ad) = valueOrElse(getInteger(this, ag(Q, ad)), 0) | |
254 | 254 | ||
255 | 255 | ||
256 | 256 | func bj (bk,S) = valueOrErrorMessage(getInteger(bk, R(S)), "No Asset price found") | |
257 | 257 | ||
258 | 258 | ||
259 | 259 | func bl (Q) = valueOrElse(getInteger(this, aj(Q)), 0) | |
260 | 260 | ||
261 | 261 | ||
262 | 262 | func bm (S,ab,av,bn,bo,bp,bq,bk,br,bs,bt,bu,bv,bw,bx,by) = makeString(["%s%s%s%d%s%d%d%s%d%d%d%d%d%d%d", S, ab, av, toString(bn), bo, toString(bp), toString(bq), bk, toString(br), toString(bs), toString(bt), toString(bu), toString(bv), toString(bw), toString(bx), toString(by)], "__") | |
263 | 263 | ||
264 | 264 | ||
265 | 265 | func bz (bA,bB) = { | |
266 | 266 | let bC = aI(bB) | |
267 | 267 | let bD = aK(bB) | |
268 | 268 | let bE = aM(bB) | |
269 | 269 | let bF = aN(bB) | |
270 | 270 | let bG = aO(bB) | |
271 | 271 | let bH = aP(bB) | |
272 | 272 | let bI = aQ(bB) | |
273 | 273 | let bJ = aR(bB) | |
274 | 274 | let bK = aS(bB) | |
275 | 275 | let bL = aT(bB) | |
276 | 276 | let bM = aU(bB) | |
277 | 277 | let bN = aV(bB) | |
278 | 278 | let bO = aW(bB) | |
279 | 279 | let bP = aX(bB) | |
280 | 280 | let by = aY(bB) | |
281 | 281 | bm(bC, bD, bA, bE, bF, bG, bH, bI, bJ, bK, bL, bM, bN, bO, bP, by) | |
282 | 282 | } | |
283 | 283 | ||
284 | 284 | ||
285 | 285 | func bQ (S,ad) = { | |
286 | 286 | let bR = aH(S) | |
287 | 287 | let Q = addressFromStringValue(bR) | |
288 | 288 | let bB = ak(bR) | |
289 | 289 | let bS = aK(bB) | |
290 | 290 | let ab = fromBase58String(bS) | |
291 | 291 | let bT = valueOrElse(getInteger(this, V(bR)), 0) | |
292 | 292 | let bU = valueOrElse(getInteger(this, W(bR)), 0) | |
293 | 293 | let bV = aj(bR) | |
294 | 294 | let bW = valueOrElse(getInteger(this, bV), 0) | |
295 | 295 | let bX = aC(bR) | |
296 | 296 | let bY = assetBalance(Q, ao) | |
297 | 297 | let bZ = ((bX + bY) - bW) | |
298 | 298 | let ca = (bZ - bT) | |
299 | 299 | let cb = assetBalance(Q, ab) | |
300 | 300 | let cc = valueOrErrorMessage(assetInfo(ab), ("Cannot find asset by id " + bS)).quantity | |
301 | 301 | let cd = (cc - cb) | |
302 | 302 | let bk = addressFromStringValue(aQ(bB)) | |
303 | 303 | let ce = bj(bk, S) | |
304 | 304 | let cf = (((al + aO(bB)) * ce) / al) | |
305 | 305 | let cg = (cf * cd) | |
306 | 306 | let ch = bg(bR, ad) | |
307 | 307 | let ci = ac(bR, ad) | |
308 | 308 | let cj = valueOrElse(getInteger(this, ci), 0) | |
309 | 309 | let ck = bh(bR, ad) | |
310 | 310 | let cl = (ca - cg) | |
311 | 311 | let cm = fraction(cj, al, bT) | |
312 | 312 | let cn = fraction(ch, al, bU) | |
313 | 313 | let co = if ((cl >= 0)) | |
314 | 314 | then 0 | |
315 | 315 | else max([cm, cn]) | |
316 | 316 | let cp = fraction((al - co), cj, al) | |
317 | 317 | let cq = (height + aX(bB)) | |
318 | 318 | $Tuple8(bR, cp, bW, bT, cj, cq, ck, makeString([bR, bS, ad, toString(bX), toString(bY), toString(bZ), toString(bT), toString(bU), toString(ca), toString(cd), toString(ce), toString(cf), toString(ch), toString(cj), toString(ck), toString(cl), toString(cm), toString(cn), toString(co), toString(cp)], h)) | |
319 | 319 | } | |
320 | 320 | ||
321 | 321 | ||
322 | 322 | @Callable(cr) | |
323 | 323 | func init (cs,ct,cu,cv,ay,cw,cx,cy) = if ((toBase58String(cr.callerPublicKey) != y)) | |
324 | 324 | then throw("Only Admin can perform contract operation.") | |
325 | 325 | else if ((g(C) == true)) | |
326 | 326 | then throw("Contract was already initialized.") | |
327 | 327 | else { | |
328 | 328 | let cz = Issue("DEFO_DEBT", "DEFO Debt Token.", 1, 6, true) | |
329 | 329 | let cA = calculateAssetId(cz) | |
330 | 330 | [StringEntry(z, cs), StringEntry(A, ct), IntegerEntry(B, cu), StringEntry(E, cv), IntegerEntry(D, ay), IntegerEntry(G, cw), StringEntry(F, toBase58String(cA)), StringEntry(H, cx), StringEntry(I, cy), BooleanEntry(C, true), cz, Burn(cA, 1)] | |
331 | 331 | } | |
332 | 332 | ||
333 | 333 | ||
334 | 334 | ||
335 | 335 | @Callable(cr) | |
336 | 336 | func proposeAsset (S,cB,bq,bk,bp,bo,bn,br,bs,bt,bu,bv,bw,bx,by) = if ((toBase58String(cr.callerPublicKey) != y)) | |
337 | 337 | then throw("Only Admin can perform contract operation.") | |
338 | 338 | else if ((g(C) == false)) | |
339 | 339 | then throw("Contract is not yet ready.") | |
340 | 340 | else if ((fromBase58String(bo) != ao)) | |
341 | 341 | then throw("Baking asset id could be USDN only.") | |
342 | 342 | else if ((aF(S) != "")) | |
343 | 343 | then throw((("Asset with passed code " + S) + " has already been proposed.")) | |
344 | 344 | else if ((aq > bq)) | |
345 | 345 | then throw(("Minimum pool amount should be greater or equals to " + toString(aq))) | |
346 | 346 | else if (if (if (if (if (if (if (if ((0 > bp)) | |
347 | 347 | then true | |
348 | 348 | else (0 > bn)) | |
349 | 349 | then true | |
350 | 350 | else (0 > br)) | |
351 | 351 | then true | |
352 | 352 | else (0 > bs)) | |
353 | 353 | then true | |
354 | 354 | else (0 > bt)) | |
355 | 355 | then true | |
356 | 356 | else (0 > bu)) | |
357 | 357 | then true | |
358 | 358 | else (0 > bv)) | |
359 | 359 | then true | |
360 | 360 | else (0 > bw)) | |
361 | 361 | then throw("One of the passed parameters is invalid.") | |
362 | 362 | else { | |
363 | 363 | let cC = valueOrErrorMessage(addressFromStringValue(bk), "Passed Price Oracle Address is not valid.") | |
364 | 364 | let Q = ax[ay] | |
365 | 365 | let cD = valueOrErrorMessage(getString(valueOrErrorMessage(addressFromString(Q), ""), N), "No defo asset ID found.") | |
366 | 366 | [StringEntry(P(Q), bm(S, cD, av._1, bn, bo, bp, bq, bk, br, bs, bt, bu, bv, bw, bx, by)), StringEntry(Z(S), Q), StringEntry(X(Q), cB), IntegerEntry(T(Q), height), IntegerEntry(D, (ay + 1)), StringEntry(aa(cD), Q)] | |
367 | 367 | } | |
368 | 368 | ||
369 | 369 | ||
370 | 370 | ||
371 | 371 | @Callable(cr) | |
372 | 372 | func fundLiquidityPool (S) = { | |
373 | 373 | let bR = aH(S) | |
374 | 374 | let bB = ak(bR) | |
375 | 375 | let cE = value(cr.payments[0]) | |
376 | 376 | let ad = toString(cr.caller) | |
377 | 377 | if ((g(C) == false)) | |
378 | 378 | then throw("Contract is not yet ready.") | |
379 | 379 | else if ((cE.assetId != ao)) | |
380 | 380 | then throw("Liquidity pool could be funded with USDN only.") | |
381 | 381 | else if ((ar > cE.amount)) | |
382 | 382 | then throw(("Attached payment amount is less tha min allowed: " + toString(ar))) | |
383 | 383 | else { | |
384 | 384 | let cF = (cE.amount + bc(bR)) | |
385 | 385 | let cG = bd(bR) | |
386 | 386 | let cH = bf(bR, ad) | |
387 | 387 | let cI = bg(bR, ad) | |
388 | 388 | let cJ = aL(bB) | |
389 | 389 | let cK = if (if ((cJ == as)) | |
390 | 390 | then (cF >= aP(bB)) | |
391 | 391 | else false) | |
392 | 392 | then at | |
393 | 393 | else cJ | |
394 | 394 | let cL = (cH + cE.amount) | |
395 | 395 | let cM = if ((cJ == au)) | |
396 | 396 | then [ScriptTransfer(addressFromStringValue(bR), cE.amount, ao)] | |
397 | 397 | else nil | |
398 | 398 | ([IntegerEntry(ac(bR, ad), cL), IntegerEntry(ae(bR, ad), max([cL, cI])), IntegerEntry(V(bR), cF), IntegerEntry(W(bR), max([cG, cF])), StringEntry(P(bR), bz(cK, bB))] ++ cM) | |
399 | 399 | } | |
400 | 400 | } | |
401 | 401 | ||
402 | 402 | ||
403 | 403 | ||
404 | 404 | @Callable(cr) | |
405 | 405 | func activateAsset (S) = { | |
406 | 406 | let Q = aF(S) | |
407 | 407 | let bB = ak(Q) | |
408 | 408 | let cN = bc(Q) | |
409 | 409 | let cO = aL(bB) | |
410 | 410 | if ((toBase58String(cr.callerPublicKey) != y)) | |
411 | 411 | then throw("Only Admin can perform contract operation.") | |
412 | 412 | else if ((g(C) == false)) | |
413 | 413 | then throw("Contract is not yet ready.") | |
414 | 414 | else if ((cO != av._2)) | |
415 | 415 | then throw((("Asset is not in READY status. Current status is " + cO) + ".")) | |
416 | 416 | else if ((Q == "")) | |
417 | 417 | then throw((("Cannot find asset " + S) + ".")) | |
418 | 418 | else if ((aq > cN)) | |
419 | 419 | then throw((((("Cannot issue asset as liquidity pool amount (" + toString(cN)) + ") is less than required (") + toString(aq)) + ")")) | |
420 | 420 | else { | |
421 | 421 | let cz = Reissue(az, aA, true) | |
422 | 422 | [IntegerEntry(U(Q), height), StringEntry(P(Q), bz(av._3, bB)), cz, ScriptTransfer(addressFromStringValue(Q), cN, ao), ScriptTransfer(addressFromStringValue(Q), aA, az)] | |
423 | 423 | } | |
424 | 424 | } | |
425 | 425 | ||
426 | 426 | ||
427 | 427 | ||
428 | 428 | @Callable(cr) | |
429 | 429 | func redeemFromPool (S,cP) = { | |
430 | 430 | let cQ = toString(cr.caller) | |
431 | 431 | let cR = bQ(S, cQ) | |
432 | 432 | let bR = cR._1 | |
433 | 433 | let cp = cR._2 | |
434 | 434 | let bW = cR._3 | |
435 | 435 | let bT = cR._4 | |
436 | 436 | let cj = cR._5 | |
437 | 437 | let cq = cR._6 | |
438 | 438 | let ck = cR._7 | |
439 | 439 | let cS = cR._8 | |
440 | 440 | let cT = ah(bR, cQ, cq) | |
441 | 441 | if ((g(C) == false)) | |
442 | 442 | then throw("Contract is not yet ready.") | |
443 | 443 | else if (if (if ((0 > cP)) | |
444 | 444 | then true | |
445 | 445 | else (0 >= cj)) | |
446 | 446 | then true | |
447 | 447 | else (cP > cp)) | |
448 | 448 | then throw((("Cannot find pool maker by address " + cQ) + " or amount passed is not correct.")) | |
449 | 449 | else if (((1 * al) > cP)) | |
450 | 450 | then throw("Redeem amount is less then min allowed") | |
451 | 451 | else if ((ck > 0)) | |
452 | 452 | then throw("Pool maker already has initiated redemption that is not withdrawn yet.") | |
453 | 453 | else if (isDefined(getInteger(this, cT))) | |
454 | 454 | then throw((("Pool maker has already initiated redemption for " + toString(height)) + " height")) | |
455 | 455 | else [IntegerEntry(aj(bR), (bW + cP)), IntegerEntry(V(bR), (bT - cP)), IntegerEntry(ac(bR, cQ), (cj - cP)), IntegerEntry(cT, cP), IntegerEntry(af(bR, cQ), cP), IntegerEntry(ag(bR, cQ), cq), StringEntry("%s%s_trace_redeemFromPool", cS)] | |
456 | 456 | } | |
457 | 457 | ||
458 | 458 | ||
459 | 459 | ||
460 | 460 | @Callable(cr) | |
461 | 461 | func getMaxAllowedAmountToRedeem (S,ad) = { | |
462 | 462 | let cR = bQ(S, ad) | |
463 | 463 | let bR = cR._1 | |
464 | 464 | let cp = cR._2 | |
465 | 465 | let bW = cR._3 | |
466 | 466 | let bT = cR._4 | |
467 | 467 | let cj = cR._5 | |
468 | 468 | let cq = cR._6 | |
469 | 469 | let ck = cR._7 | |
470 | - | throw(((((((("{" + "allowedAmountToRedeem: ") + toString(cp)) + ", assetCode: ") + S) + ", poolMaker: ") + ad) + "}")) | |
470 | + | let cS = cR._8 | |
471 | + | throw(((((((((("{" + "allowedAmountToRedeem: ") + toString(cp)) + ", assetCode: ") + S) + ", poolMaker: ") + ad) + ", trace: ") + cS) + "}")) | |
471 | 472 | } | |
472 | 473 | ||
473 | 474 | ||
474 | 475 | ||
475 | 476 | @Callable(cr) | |
476 | 477 | func withdraw (S) = { | |
477 | 478 | let cQ = toString(cr.caller) | |
478 | 479 | let bR = aH(S) | |
479 | 480 | let Q = addressFromStringValue(bR) | |
480 | 481 | let cU = af(bR, cQ) | |
481 | 482 | let cV = valueOrElse(getInteger(this, cU), 0) | |
482 | 483 | let cW = ag(bR, cQ) | |
483 | 484 | let cq = valueOrElse(getInteger(this, cW), 0) | |
484 | 485 | let bV = aj(bR) | |
485 | 486 | let bW = valueOrElse(getInteger(this, bV), 0) | |
486 | 487 | let cT = ah(bR, cQ, cq) | |
487 | 488 | if ((g(C) == false)) | |
488 | 489 | then throw("Contract is not yet ready.") | |
489 | 490 | else if (!(isDefined(getInteger(Q, cT)))) | |
490 | 491 | then throw("Need to transfer liquidity from asset account first") | |
491 | 492 | else if ((0 >= cV)) | |
492 | 493 | then throw((("Cannot find pool maker by address " + cQ) + " or no locked amount.")) | |
493 | 494 | else if ((height > cq)) | |
494 | 495 | then throw((("Please wait " + toString(cq)) + " before withdraw.")) | |
495 | 496 | else [IntegerEntry(cU, 0), IntegerEntry(bV, (bW - cV)), IntegerEntry(cW, 0), ScriptTransfer(addressFromStringValue(cQ), cV, ao)] | |
496 | 497 | } | |
497 | 498 | ||
498 | 499 |
github/deemru/w8io/169f3d6 270.67 ms ◑