tx · 7BvbTSqKTh5uXczr6Us6MpFp5zTXUA3NSgjr8AcrM5kK 3Mxob8GrFQULi64gzNXrbPiruLshtHARzhm: -0.01400000 Waves 2020.11.28 15:23 [1285258] smart account 3Mxob8GrFQULi64gzNXrbPiruLshtHARzhm > SELF 0.00000000 Waves
{ "type": 13, "id": "7BvbTSqKTh5uXczr6Us6MpFp5zTXUA3NSgjr8AcrM5kK", "fee": 1400000, "feeAssetId": null, "timestamp": 1606566190310, "version": 1, "sender": "3Mxob8GrFQULi64gzNXrbPiruLshtHARzhm", "senderPublicKey": "wUMwwN2qmzSfYNyKsGG3eDYhccpG2TXQY3vjsseYH6v", "proofs": [ "Mhm23veHftxGufxmeBRxxqdiWpESKr3fEeyCEA76w2QFmx75rRpdUde9u9rGSJxMV6Lvj73H8xZww8iGtfmRKEL" ], "script": "base64:AAIEAAAAAAAAABwIAhIAEgMKAQESBAoCAQESABIECgIBARIDCgEBAAAASgAAAAAHdmVyc2lvbgIAAAAFMi4wLjAAAAAACmtleVZlcnNpb24CAAAAB3ZlcnNpb24AAAAACWtleUFjdGl2ZQIAAAAGYWN0aXZlAAAAAAtrZXlBc3NldElkQQIAAAAKQV9hc3NldF9pZAAAAAALa2V5QXNzZXRJZEICAAAACkJfYXNzZXRfaWQAAAAAC2tleUJhbGFuY2VBAgAAAA9BX2Fzc2V0X2JhbGFuY2UAAAAAC2tleUJhbGFuY2VCAgAAAA9CX2Fzc2V0X2JhbGFuY2UAAAAAD2tleVNoYXJlQXNzZXRJZAIAAAAOc2hhcmVfYXNzZXRfaWQAAAAAE2tleVNoYXJlQXNzZXRTdXBwbHkCAAAAEnNoYXJlX2Fzc2V0X3N1cHBseQAAAAANa2V5Q29tbWlzc2lvbgIAAAAKY29tbWlzc2lvbgAAAAAba2V5Q29tbWlzc2lvblNjYWxlRGVsaW1pdGVyAgAAABpjb21taXNzaW9uX3NjYWxlX2RlbGltaXRlcgAAAAAXa2V5Q29tbWlzc2lvbkdvdmVybmFuY2UCAAAAFWNvbW1pc3Npb25fZ292ZXJuYW5jZQAAAAAMa2V5SW52YXJpYW50AgAAAAlpbnZhcmlhbnQAAAAACGtleUNhdXNlAgAAAA5zaHV0ZG93bl9jYXVzZQAAAAAMYWRtaW5QdWJLZXkxAQAAACBc6cK5O6jY0XiheSteGSsiFP0z2YXt/wuu937LS8opNQAAAAAMYWRtaW5QdWJLZXkyAQAAACBc6cK5O6jY0XiheSteGSsiFP0z2YXt/wuu937LS8opNQAAAAAMYWRtaW5QdWJLZXkzAQAAACBc6cK5O6jY0XiheSteGSsiFP0z2YXt/wuu937LS8opNQAAAAAUYWRtaW5QdWJLZXlTdGFydFN0b3ABAAAAIFzpwrk7qNjReKF5K14ZKyIU/TPZhe3/C673fstLyik1AAAAABJhZG1pblB1YktleVN0YWtpbmcBAAAAIFzpwrk7qNjReKF5K14ZKyIU/TPZhe3/C673fstLyik1AAAAABFnb3Zlcm5hbmNlQWRkcmVzcwkBAAAAB0FkZHJlc3MAAAABAQAAABoBUyNjJtueclNcp3tuS5x5/S5UQq+BYh9QfQAAAAAOc3Rha2luZ0FkZHJlc3MJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVMjYybbnnJTXKd7bkucef0uVEKvgWIfUH0AAAAABFVTRE4BAAAAILYmKcME9c5TkaQOS3UkL2SMUbH6369UKb1I0h0qsqrRAAAAABBzdGFraW5nRmVlSW5VU0ROCQAAaAAAAAIAAAAAAAAAAAkJAQAAAAV2YWx1ZQAAAAEICQEAAAAFdmFsdWUAAAABCQAD7AAAAAEFAAAABFVTRE4AAAAPbWluU3BvbnNvcmVkRmVlAAAAAAhpc0FjdGl2ZQkBAAAAEUBleHRyTmF0aXZlKDEwNTEpAAAAAgUAAAAEdGhpcwUAAAAJa2V5QWN0aXZlAAAAAAtzdHJBc3NldElkQQkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwUAAAALa2V5QXNzZXRJZEEAAAAAC3N0ckFzc2V0SWRCCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzBQAAAAtrZXlBc3NldElkQgAAAAAIYXNzZXRJZEEDCQAAAAAAAAIFAAAAC3N0ckFzc2V0SWRBAgAAAAVXQVZFUwUAAAAEdW5pdAkAAlkAAAABBQAAAAtzdHJBc3NldElkQQAAAAAIYXNzZXRJZEIDCQAAAAAAAAIFAAAAC3N0ckFzc2V0SWRCAgAAAAVXQVZFUwUAAAAEdW5pdAkAAlkAAAABBQAAAAtzdHJBc3NldElkQgAAAAAKYXNzZXROYW1lQQQAAAAHJG1hdGNoMAUAAAAIYXNzZXRJZEEDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAmlkBQAAAAckbWF0Y2gwCAkBAAAABXZhbHVlAAAAAQkAA+wAAAABBQAAAAJpZAAAAARuYW1lAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0BAAAAAV3YXZlcwUAAAAHJG1hdGNoMAIAAAAFV0FWRVMJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IAAAAACmFzc2V0TmFtZUIEAAAAByRtYXRjaDAFAAAACGFzc2V0SWRCAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAApCeXRlVmVjdG9yBAAAAAJpZAUAAAAHJG1hdGNoMAgJAQAAAAV2YWx1ZQAAAAEJAAPsAAAAAQUAAAACaWQAAAAEbmFtZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAQAAAAFd2F2ZXMFAAAAByRtYXRjaDACAAAABVdBVkVTCQAAAgAAAAECAAAAC01hdGNoIGVycm9yAAAAAAhiYWxhbmNlQQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAALa2V5QmFsYW5jZUEAAAAACGJhbGFuY2VCCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAAAtrZXlCYWxhbmNlQgAAAAAMc2hhcmVBc3NldElkCQACWQAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMFAAAAD2tleVNoYXJlQXNzZXRJZAAAAAAQc2hhcmVBc3NldFN1cHBseQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAATa2V5U2hhcmVBc3NldFN1cHBseQAAAAAJaW52YXJpYW50CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAAAxrZXlJbnZhcmlhbnQAAAAACmNvbW1pc3Npb24AAAAAAAAAAfQAAAAAFGNvbW1pc3Npb25Hb3Zlcm5hbmNlAAAAAAAAAADIAAAAABhjb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIAAAAAAAAPQkAAAAAAC3NjYWxlVmFsdWUzAAAAAAAAAAPoAAAAAAtzY2FsZVZhbHVlOAAAAAAABfXhAAAAAAAMc2NhbGVWYWx1ZTEyAAAAAOjUpRAAAAAAABpzbGlwcGFnZVRvbGVyYW5jZURlbGltaXRlcgAAAAAAAAAD6AAAAAARc2NhbGVWYWx1ZThEaWdpdHMAAAAAAAAAAAgAAAAAEnNjYWxlVmFsdWUxMkRpZ2l0cwAAAAAAAAAADAAAAAANZEFwcFRocmVzaG9sZAAAAAAAAAAAMgAAAAAWZEFwcFRocmVzaG9sZERlbGltaXRlcgAAAAAAAAAAZAAAAAARcmF0aW9UaHJlc2hvbGRNYXgAAAAAAAX14QAAAAAAEXJhdGlvVGhyZXNob2xkTWluAAAAAAAF9d0YAAAAAAVhbHBoYQAAAAAAAAAA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bHVlOERpZ2l0cwUAAAAERE9XTgUAAAALc2NhbGVWYWx1ZTgBAAAAGmNhbGN1bGF0ZUhvd01hbnlTZW5kVG9rZW5BAAAABQAAABVhbW91bnRUb1NlbmRFc3RpbWF0ZWQAAAAVbWluVG9rZW5SZWNlaXZlQW1vdW50AAAADGFtb3VudFRva2VuQQAAAAxhbW91bnRUb2tlbkIAAAASdG9rZW5SZWNlaXZlQW1vdW50BAAAAA1zbGlwcGFnZVZhbHVlCQAAZQAAAAIFAAAAC3NjYWxlVmFsdWU4CQAAaQAAAAIJAABoAAAAAgUAAAALc2NhbGVWYWx1ZTgAAAAAAAAAAAEAAAAAAACYloAEAAAAHmRlbHRhQmV0d2Vlbk1heEFuZE1pblNlbmRWYWx1ZQkAAGUAAAACBQAAABVhbW91bnRUb1NlbmRFc3RpbWF0ZWQFAAAAFW1pblRva2VuUmVjZWl2ZUFtb3VudAQAAAARYW1vdW50VG9TZW5kU3RlcDEJAABlAAAAAgUAAAAVYW1vdW50VG9TZW5kRXN0aW1hdGVkCQAAaQAAAAIJAABoAAAAAgAAAAAAAAAAAQUAAAAeZGVsdGFCZXR3ZWVuTWF4QW5kTWluU2VuZFZhbHVlAAAAAAAAAAAFBAAAABFhbW91bnRUb1NlbmRTdGVwMgkAAGUAAAACBQAAABVhbW91bnRUb1NlbmRFc3RpbWF0ZWQJAABpAAAAAgkAAGgAAAACAAAAAAAAAAACBQAAAB5kZWx0YUJldHdlZW5NYXhBbmRNaW5TZW5kVmFsdWUAAAAAAAAAAAUEAAAAEWFtb3VudFRvU2VuZFN0ZXAzCQAAZQAAAAIFAAAAFWFtb3VudFRvU2VuZEVzdGltYXRlZAkAAGkAAAACCQAAaAAAAAIAAAAAAAAAAAMFAAAAHmRlbHRhQmV0d2Vlbk1heEFuZE1pblNlbmRWYWx1ZQAAAAAAAAAABQQAAAARYW1vdW50VG9TZW5kU3RlcDQJAABlAAAAAgUAAAAVYW1vdW50VG9TZW5kRXN0aW1hdGVkCQAAaQAAAAIJAABoAAAAAgAAAAAAAAAABAUAAAAeZGVsdGFCZXR3ZWVuTWF4QW5kTWluU2VuZFZhbHVlAAAAAAAAAAAFBAAAABFhbW91bnRUb1NlbmRTdGVwNQkAAGUAAAACBQAAABVhbW91bnRUb1NlbmRFc3RpbWF0ZWQJAABpAAAAAgkAAGgAAAACAAAAAAAAAAAFBQAAAB5kZWx0YUJldHdlZW5NYXhBbmRNaW5TZW5kVmFsdWUAAAAAAAAAAAUEAAAAAXkJAABkAAAAAgUAAAAMYW1vdW50VG9rZW5CBQAAABJ0b2tlblJlY2VpdmVBbW91bnQEAAAADGludmFyaWFudE5ldwkBAAAADWludmFyaWFudENhbGMAAAACCQAAZQAAAAIFAAAADGFtb3VudFRva2VuQQUAAAAVYW1vdW50VG9TZW5kRXN0aW1hdGVkBQAAAAF5BAAAABdpbnZhcmlhbnRFc3RpbWF0ZWRSYXRpbwkAAGsAAAADBQAAAAlpbnZhcmlhbnQFAAAAC3NjYWxlVmFsdWU4BQAAAAxpbnZhcmlhbnROZXcDCQAAZwAAAAIAAAAAAAAAAAAJAABlAAAAAgkBAAAADWludmFyaWFudENhbGMAAAACCQAAZQAAAAIFAAAADGFtb3VudFRva2VuQQUAAAARYW1vdW50VG9TZW5kU3RlcDUFAAAAAXkFAAAACWludmFyaWFudAkAAAIAAAABAgAAACRtaW5Ub2tlblJlY2VpdmVBbW91bnQgdG9vIGxhcmdlLmVycjEDAwkAAGYAAAACBQAAABdpbnZhcmlhbnRFc3RpbWF0ZWRSYXRpbwUAAAANc2xpcHBhZ2VWYWx1ZQkAAGYAAAACCQAAZQAAAAIFAAAADGludmFyaWFudE5ldwUAAAAJaW52YXJpYW50AAAAAAAAAAAABwUAAAAVYW1vdW50VG9TZW5kRXN0aW1hdGVkAwkAAGYAAAACCQAAZQAAAAIJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgkAAGUAAAACBQAAAAxhbW91bnRUb2tlbkEFAAAAEWFtb3VudFRvU2VuZFN0ZXAxBQAAAAF5BQAAAAlpbnZhcmlhbnQAAAAAAAAAAAAJAABpAAAAAgkAAGgAAAACBQAAABFhbW91bnRUb1NlbmRTdGVwMQkAAGUAAAACBQAAABhjb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIFAAAACmNvbW1pc3Npb24FAAAAGGNvbW1pc3Npb25TY2FsZURlbGltaXRlcgMJAABmAAAAAgkAAGUAAAACCQEAAAANaW52YXJpYW50Q2FsYwAAAAIJAABlAAAAAgUAAAAMYW1vdW50VG9rZW5BBQAAABFhbW91bnRUb1NlbmRTdGVwMgUAAAABeQUAAAAJaW52YXJpYW50AAAAAAAAAAAACQAAaQAAAAIJAABoAAAAAgUAAAARYW1vdW50VG9TZW5kU3RlcDIJAABlAAAAAgUAAAAYY29tbWlzc2lvblNjYWxlRGVsaW1pdGVyBQAAAApjb21taXNzaW9uBQAAABhjb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIDCQAAZgAAAAIJAABlAAAAAgkBAAAADWludmFyaWFudENhbGMAAAACCQAAZQAAAAIFAAAADGFtb3VudFRva2VuQQUAAAARYW1vdW50VG9TZW5kU3RlcDMFAAAAAXkFAAAACWludmFyaWFudAAAAAAAAAAAAAkAAGkAAAACCQAAaAAAAAIFAAAAEWFtb3VudFRvU2VuZFN0ZXAzCQAAZQAAAAIFAAAAGGNvbW1pc3Npb25TY2FsZURlbGltaXRlcgUAAAAKY29tbWlzc2lvbgUAAAAYY29tbWlzc2lvblNjYWxlRGVsaW1pdGVyAwkAAGYAAAACCQAAZQAAAAIJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgkAAGUAAAACBQAAAAxhbW91bnRUb2tlbkEFAAAAEWFtb3VudFRvU2VuZFN0ZXA0BQAAAAF5BQAAAAlpbnZhcmlhbnQAAAAAAAAAAAAJAABpAAAAAgkAAGgAAAACBQAAABFhbW91bnRUb1NlbmRTdGVwNAkAAGUAAAACBQAAABhjb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIFAAAACmNvbW1pc3Npb24FAAAAGGNvbW1pc3Npb25TY2FsZURlbGltaXRlcgMJAABmAAAAAgkAAGUAAAACCQEAAAANaW52YXJpYW50Q2FsYwAAAAIJAABlAAAAAgUAAAAMYW1vdW50VG9rZW5BBQAAABFhbW91bnRUb1NlbmRTdGVwNQUAAAABeQUAAAAJaW52YXJpYW50AAAAAAAAAAAACQAAaQAAAAIJAABoAAAAAgUAAAARYW1vdW50VG9TZW5kU3RlcDUJAABlAAAAAgUAAAAYY29tbWlzc2lvblNjYWxlRGVsaW1pdGVyBQAAAApjb21taXNzaW9uBQAAABhjb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIJAAACAAAAAQIAAAA+c29tZXRoaW5nIHdlbnQgd3Jvbmcgd2hpbGUgd29ya2luZyB3aXRoIGFtb3VudFRvU2VuZFN0ZXAuIGVycjIBAAAAGmNhbGN1bGF0ZUhvd01hbnlTZW5kVG9rZW5CAAAABQAAABVhbW91bnRUb1NlbmRFc3RpbWF0ZWQAAAAVbWluVG9rZW5SZWNlaXZlQW1vdW50AAAADGFtb3VudFRva2VuQQAAAAxhbW91bnRUb2tlbkIAAAASdG9rZW5SZWNlaXZlQW1vdW50BAAAAA1zbGlwcGFnZVZhbHVlCQAAZQAAAAIFAAAAC3NjYWxlVmFsdWU4CQAAaQAAAAIJAABoAAAAAgUAAAALc2NhbGVWYWx1ZTgAAAAAAAAAAAEAAAAAAACYloAEAAAAHmRlbHRhQmV0d2Vlbk1heEFuZE1pblNlbmRWYWx1ZQkAAGUAAAACBQAAABVhbW91bnRUb1NlbmRFc3RpbWF0ZWQFAAAAFW1pblRva2VuUmVjZWl2ZUFtb3VudAQAAAARYW1vdW50VG9TZW5kU3RlcDEJAABlAAAAAgUAAAAVYW1vdW50VG9TZW5kRXN0aW1hdGVkCQAAaQAAAAIJAABoAAAAAgAAAAAAAAAAAQUAAAAeZGVsdGFCZXR3ZWVuTWF4QW5kTWluU2VuZFZhbHVlAAAAAAAAAAAFBAAAABFhbW91bnRUb1NlbmRTdGVwMgkAAGUAAAACBQAAABVhbW91bnRUb1NlbmRFc3RpbWF0ZWQJAABpAAAAAgkAAGgAAAACAAAAAAAAAAACBQAAAB5kZWx0YUJldHdlZW5NYXhBbmRNaW5TZW5kVmFsdWUAAAAAAAAAAAUEAAAAEWFtb3VudFRvU2VuZFN0ZXAzCQAAZQAAAAIFAAAAFWFtb3VudFRvU2VuZEVzdGltYXRlZAkAAGkAAAACCQAAaAAAAAIAAAAAAAAAAAMFAAAAHmRlbHRhQmV0d2Vlbk1heEFuZE1pblNlbmRWYWx1ZQAAAAAAAAAABQQAAAARYW1vdW50VG9TZW5kU3RlcDQJAABlAAAAAgUAAAAVYW1vdW50VG9TZW5kRXN0aW1hdGVkCQAAaQAAAAIJAABoAAAAAgAAAAAAAAAABAUAAAAeZGVsdGFCZXR3ZWVuTWF4QW5kTWluU2VuZFZhbHVlAAAAAAAAAAAFBAAAABFhbW91bnRUb1NlbmRTdGVwNQkAAGUAAAACBQAAABVhbW91bnRUb1NlbmRFc3RpbWF0ZWQJAABpAAAAAgkAAGgAAAACAAAAAAAAAAAFBQAAAB5kZWx0YUJldHdlZW5NYXhBbmRNaW5TZW5kVmFsdWUAAAAAAAAAAAUEAAAAAXgJAABkAAAAAgUAAAAMYW1vdW50VG9rZW5BBQAAABJ0b2tlblJlY2VpdmVBbW91bnQEAAAADGludmFyaWFudE5ldwkBAAAADWludmFyaWFudENhbGMAAAACBQAAAAF4CQAAZQAAAAIFAAAADGFtb3VudFRva2VuQgUAAAAVYW1vdW50VG9TZW5kRXN0aW1hdGVkBAAAABdpbnZhcmlhbnRFc3RpbWF0ZWRSYXRpbwkAAGsAAAADBQAAAAlpbnZhcmlhbnQFAAAAC3NjYWxlVmFsdWU4BQAAAAxpbnZhcmlhbnROZXcDCQAAZwAAAAIAAAAAAAAAAAAJAABlAAAAAgkBAAAADWludmFyaWFudENhbGMAAAACBQAAAAF4CQAAZQAAAAIFAAAADGFtb3VudFRva2VuQgUAAAARYW1vdW50VG9TZW5kU3RlcDUFAAAACWludmFyaWFudAkAAAIAAAABAgAAACRtaW5Ub2tlblJlY2VpdmVBbW91bnQgdG9vIGxhcmdlLmVycjEDAwkAAGYAAAACBQAAABdpbnZhcmlhbnRFc3RpbWF0ZWRSYXRpbwUAAAANc2xpcHBhZ2VWYWx1ZQkAAGYAAAACCQAAZQAAAAIFAAAADGludmFyaWFudE5ldwUAAAAJaW52YXJpYW50AAAAAAAAAAAABwUAAAAVYW1vdW50VG9TZW5kRXN0aW1hdGVkAwkAAGYAAAACCQAAZQAAAAIJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgUAAAABeAkAAGUAAAACBQAAAAxhbW91bnRUb2tlbkIFAAAAEWFtb3VudFRvU2VuZFN0ZXAxBQAAAAlpbnZhcmlhbnQAAAAAAAAAAAAJAABpAAAAAgkAAGgAAAACBQAAABFhbW91bnRUb1NlbmRTdGVwMQkAAGUAAAACBQAAABhjb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIFAAAACmNvbW1pc3Npb24FAAAAGGNvbW1pc3Npb25TY2FsZURlbGltaXRlcgMJAABmAAAAAgkAAGUAAAACCQEAAAANaW52YXJpYW50Q2FsYwAAAAIFAAAAAXgJAABlAAAAAgUAAAAMYW1vdW50VG9rZW5CBQAAABFhbW91bnRUb1NlbmRTdGVwMgUAAAAJaW52YXJpYW50AAAAAAAAAAAACQAAaQAAAAIJAABoAAAAAgUAAAARYW1vdW50VG9TZW5kU3RlcDIJAABlAAAAAgUAAAAYY29tbWlzc2lvblNjYWxlRGVsaW1pdGVyBQAAAApjb21taXNzaW9uBQAAABhjb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIDCQAAZgAAAAIJAABlAAAAAgkBAAAADWludmFyaWFudENhbGMAAAACBQAAAAF4CQAAZQAAAAIFAAAADGFtb3VudFRva2VuQgUAAAARYW1vdW50VG9TZW5kU3RlcDMFAAAACWludmFyaWFudAAAAAAAAAAAAAkAAGkAAAACCQAAaAAAAAIFAAAAEWFtb3VudFRvU2VuZFN0ZXAzCQAAZQAAAAIFAAAAGGNvbW1pc3Npb25TY2FsZURlbGltaXRlcgUAAAAKY29tbWlzc2lvbgUAAAAYY29tbWlzc2lvblNjYWxlRGVsaW1pdGVyAwkAAGYAAAACCQAAZQAAAAIJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgUAAAABeAkAAGUAAAACBQAAAAxhbW91bnRUb2tlbkIFAAAAEWFtb3VudFRvU2VuZFN0ZXA0BQAAAAlpbnZhcmlhbnQAAAAAAAAAAAAJAABpAAAAAgkAAGgAAAACBQAAABFhbW91bnRUb1NlbmRTdGVwNAkAAGUAAAACBQAAABhjb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIFAAAACmNvbW1pc3Npb24FAAAAGGNvbW1pc3Npb25TY2FsZURlbGltaXRlcgMJAABmAAAAAgkAAGUAAAACCQEAAAANaW52YXJpYW50Q2FsYwAAAAIFAAAAAXgJAABlAAAAAgUAAAAMYW1vdW50VG9rZW5CBQAAABFhbW91bnRUb1NlbmRTdGVwNQUAAAAJaW52YXJpYW50AAAAAAAAAAAACQAAaQAAAAIJAABoAAAAAgUAAAARYW1vdW50VG9TZW5kU3RlcDUJAABlAAAAAgUAAAAYY29tbWlzc2lvblNjYWxlRGVsaW1pdGVyBQAAAApj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AAUAAAAAAAAAAAEFAAAADHBtdERlY2ltYWxzQgUAAAAISEFMRkRPV04JAABsAAAABgAAAAAAAAAACgAAAAAAAAAAAAUAAAANc2hhcmVEZWNpbWFscwAAAAAAAAAAAAAAAAAAAAAAAAUAAAAISEFMRkRPV04EAAAACnNoYXJlSXNzdWUJAARCAAAABQUAAAAJc2hhcmVOYW1lBQAAABBzaGFyZURlc2NyaXB0aW9uBQAAABJzaGFyZUluaXRpYWxTdXBwbHkFAAAADXNoYXJlRGVjaW1hbHMGBAAAAAxzaGFyZUlzc3VlSWQJAAQ4AAAAAQUAAAAKc2hhcmVJc3N1ZQQAAAATaW52YXJpYW50Q2FsY3VsYXRlZAkBAAAADWludmFyaWFudENhbGMAAAACBQAAAApwbXRBbW91bnRBBQAAAApwbXRBbW91bnRCCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAACmtleVZlcnNpb24FAAAAB3ZlcnNpb24JAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIFAAAACWtleUFjdGl2ZQYJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAALa2V5QXNzZXRJZEEFAAAADnBtdFN0ckFzc2V0SWRBCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAC2tleUFzc2V0SWRCBQAAAA5wbXRTdHJBc3NldElkQgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUEFAAAACnBtdEFtb3VudEEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAC2tleUJhbGFuY2VCBQAAAApwbXRBbW91bnRCCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAxrZXlJbnZhcmlhbnQFAAAAE2ludmFyaWFudENhbGN1bGF0ZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADWtleUNvbW1pc3Npb24FAAAACmNvbW1pc3Npb24JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAG2tleUNvbW1pc3Npb25TY2FsZURlbGltaXRlcgUAAAAYY29tbWlzc2lvblNjYWxlRGVsaW1pdGVyCQAETAAAAAIFAAAACnNoYXJlSXNzdWUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAPa2V5U2hhcmVBc3NldElkCQACWAAAAAEFAAAADHNoYXJlSXNzdWVJZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAATa2V5U2hhcmVBc3NldFN1cHBseQUAAAASc2hhcmVJbml0aWFsU3VwcGx5CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAASc2hhcmVJbml0aWFsU3VwcGx5BQAAAAxzaGFyZUlzc3VlSWQFAAAAA25pbAAAAAFpAQAAABZyZXBsZW5pc2hXaXRoVHdvVG9rZW5zAAAAAQAAABFzbGlwcGFnZVRvbGVyYW5jZQQAAAALcG10QXNzZXRJZEEICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQEAAAAC3BtdEFzc2V0SWRCCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQAAAAdhc3NldElkBAAAAApwbXRBbW91bnRBCQEAAAAQZGVkdWN0U3Rha2luZ0ZlZQAAAAIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAUAAAALcG10QXNzZXRJZEEEAAAACnBtdEFtb3VudEIJAQAAABBkZWR1Y3RTdGFraW5nRmVlAAAAAggJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEAAAAGYW1vdW50BQAAAAtwbXRBc3NldElkQgQAAAAKdG9rZW5SYXRpbwkAAGsAAAADCQAAawAAAAMFAAAACGJhbGFuY2VBBQAAAAtzY2FsZVZhbHVlOAUAAAAKcG10QW1vdW50QQUAAAALc2NhbGVWYWx1ZTMJAABrAAAAAwUAAAAIYmFsYW5jZUIFAAAAC3NjYWxlVmFsdWU4BQAAAApwbXRBbW91bnRCBAAAABNyYXRpb1NoYXJlVG9rZW5zSW5BCQAAawAAAAMFAAAACnBtdEFtb3VudEEFAAAAC3NjYWxlVmFsdWU4BQAAAAhiYWxhbmNlQQQAAAATcmF0aW9TaGFyZVRva2Vuc0luQgkAAGsAAAADBQAAAApwbXRBbW91bnRCBQAAAAtzY2FsZVZhbHVlOAUAAAAIYmFsYW5jZUIEAAAAFXNoYXJlVG9rZW5Ub1BheUFtb3VudAkAAGsAAAADCQABlwAAAAEJAARMAAAAAgUAAAATcmF0aW9TaGFyZVRva2Vuc0luQQkABEwAAAACBQAAABNyYXRpb1NoYXJlVG9rZW5zSW5CBQAAAANuaWwFAAAAEHNoYXJlQXNzZXRTdXBwbHkFAAAAC3NjYWxlVmFsdWU4BAAAABNpbnZhcmlhbnRDYWxjdWxhdGVkCQEAAAANaW52YXJpYW50Q2FsYwAAAAIJAABkAAAAAgUAAAAIYmFsYW5jZUEFAAAACnBtdEFtb3VudEEJAABkAAAAAgUAAAAIYmFsYW5jZUIFAAAACnBtdEFtb3VudEIDCQEAAAABIQAAAAEFAAAACGlzQWN0aXZlCQEAAAAPdGhyb3dJc0luYWN0aXZlAAAAAAMDCQAAZgAAAAIAAAAAAAAAAAAFAAAAEXNsaXBwYWdlVG9sZXJhbmNlBgkAAGYAAAACBQAAABFzbGlwcGFnZVRvbGVyYW5jZQUAAAAac2xpcHBhZ2VUb2xlcmFuY2VEZWxpbWl0ZXIJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAApU2xpcHBhZ2UgdG9sZXJhbmNlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAJAAGkAAAAAQUAAAAac2xpcHBhZ2VUb2xlcmFuY2VEZWxpbWl0ZXICAAAAFiBpbmNsdXNpdmVseS4gQWN0dWFsOiAJAAGkAAAAAQUAAAARc2xpcHBhZ2VUb2xlcmFuY2UDCQEAAAACIT0AAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAACCQAAAgAAAAECAAAAHFR3byBhdHRhY2hlZCBhc3NldHMgZXhwZWN0ZWQDAwkBAAAAAiE9AAAAAgUAAAALcG10QXNzZXRJZEEFAAAACGFzc2V0SWRBBgkBAAAAAiE9AAAAAgUAAAALcG10QXNzZXRJZEIFAAAACGFzc2V0SWRCCQEAAAALdGhyb3dBc3NldHMAAAAAAwMJAABmAAAAAgkAAGkAAAACCQAAaAAAAAIFAAAAC3NjYWxlVmFsdWUzCQAAZQAAAAIFAAAAGnNsaXBwYWdlVG9sZXJhbmNlRGVsaW1pdGVyBQAAABFzbGlwcGFnZVRvbGVyYW5jZQUAAAAac2xpcHBhZ2VUb2xlcmFuY2VEZWxpbWl0ZXIFAAAACnRva2VuUmF0aW8GCQAAZgAAAAIFAAAACnRva2VuUmF0aW8JAABpAAAAAgkAAGgAAAACBQAAAAtzY2FsZVZhbHVlMwkAAGQAAAACBQAAABpzbGlwcGFnZVRvbGVyYW5jZURlbGltaXRlcgUAAAARc2xpcHBhZ2VUb2xlcmFuY2UFAAAAGnNsaXBwYWdlVG9sZXJhbmNlRGVsaW1pdGVyCQAAAgAAAAECAAAAPUluY29ycmVjdCBhc3NldHMgYW1vdW50OiBhbW91bnRzIG11c3QgaGF2ZSB0aGUgY29udHJhY3QgcmF0aW8DCQAAAAAAAAIFAAAAFXNoYXJlVG9rZW5Ub1BheUFtb3VudAAAAAAAAAAAAAkAAAIAAAABAgAAAB1Ub28gc21hbGwgYW1vdW50IHRvIHJlcGxlbmlzaAMJAQAAAAEhAAAAAQUAAAAQaGFzRW5vdWdoQmFsYW5jZQkBAAAAEXN1c3BlbmRTdXNwaWNpb3VzAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUEJAABkAAAAAgUAAAAIYmFsYW5jZUEFAAAACnBtdEFtb3VudEEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAC2tleUJhbGFuY2VCCQAAZAAAAAIFAAAACGJhbGFuY2VCBQAAAApwbXRBbW91bnRCCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABNrZXlTaGFyZUFzc2V0U3VwcGx5CQAAZAAAAAIFAAAAEHNoYXJlQXNzZXRTdXBwbHkFAAAAFXNoYXJlVG9rZW5Ub1BheUFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAMa2V5SW52YXJpYW50BQAAABNpbnZhcmlhbnRDYWxjdWxhdGVkCQAETAAAAAIJAQAAAAdSZWlzc3VlAAAAAwUAAAAMc2hhcmVBc3NldElkBQAAABVzaGFyZVRva2VuVG9QYXlBbW91bnQGCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50BQAAAAxzaGFyZUFzc2V0SWQFAAAAA25pbAAAAAFpAQAAABVyZXBsZW5pc2hXaXRoT25lVG9rZW4AAAACAAAAE3ZpcnR1YWxTd2FwVG9rZW5QYXkAAAATdmlydHVhbFN3YXBUb2tlbkdldAQAAAANJHQwMTY0OTgxNjU3MwkABRQAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQEAAAACXBtdEFtb3VudAgFAAAADSR0MDE2NDk4MTY1NzMAAAACXzEEAAAACnBtdEFzc2V0SWQIBQAAAA0kdDAxNjQ5ODE2NTczAAAAAl8yBAAAAA9wbXRNaW5UaHJlc2hvbGQAAAAAAABMS0AEAAAAHXRocmVzaG9sZFZhbHVlRm9yTWluVG9sZXJhbmNlAAAAAAAC+vCABAAAAAl0b2xlcmFuY2UDCQAAZgAAAAIFAAAAHXRocmVzaG9sZFZhbHVlRm9yTWluVG9sZXJhbmNlBQAAAAlwbXRBbW91bnQAAAAAAAABhqAAAAAAAAAAAAEEAAAAHHNsaXBwYWdlVmFsdWVNaW5Gb3JSZXBsZW5pc2gJAABlAAAAAgUAAAALc2NhbGVWYWx1ZTgJAABpAAAAAgkAAGgAAAACBQAAAAtzY2FsZVZhbHVlOAUAAAAJdG9sZXJhbmNlAAAAAAAAmJaABAAAABxzbGlwcGFnZVZhbHVlTWF4Rm9yUmVwbGVuaXNoCQAAZAAAAAIFAAAAC3NjYWxlVmFsdWU4CQAAaQAAAAIJAABoAAAAAgUAAAALc2NhbGVWYWx1ZTgFAAAACXRvbGVyYW5jZQAAAAAAAJiWgAQAAAAXc2xpcHBhZ2VWYWx1ZU1pbkZvclN3YXAJAABlAAAAAgUAAAALc2NhbGVWYWx1ZTgJAABpAAAAAgkAAGgAAAACBQAAAAtzY2FsZVZhbHVlOAAAAAAAAAAAAQAAAAAAAJiWgAQAAAAXc2xpcHBhZ2VWYWx1ZU1heEZvclN3YXAJAABkAAAAAgUAAAALc2NhbGVWYWx1ZTgJAABpAAAAAgkAAGgAAAACBQAAAAtzY2FsZVZhbHVlOAAAAAAAAAAAAQAAAAAAAJiWgAMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAQAAAA90aHJvd0lzSW5hY3RpdmUAAAAAAwkAAGYAAAACBQAAAA9wbXRNaW5UaHJlc2hvbGQFAAAACXBtdEFtb3VudAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAD1BheW1lbnQgYW1vdW50IAkAAaQAAAABBQAAAAlwbXRBbW91bnQCAAAAJyBkb2VzIG5vdCBleGNlZWQgdGhlIG1pbmltdW0gYW1vdW50IG9mIAkAAaQAAAABBQAAAA9wbXRNaW5UaHJlc2hvbGQCAAAAByB0b2tlbnMDCQEAAAACIT0AAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABCQAAAgAAAAECAAAAHU9uZSBhdHRhY2hlZCBwYXltZW50IGV4cGVjdGVkAwkBAAAAASEAAAABBQAAABBoYXNFbm91Z2hCYWxhbmNlCQEAAAARc3VzcGVuZFN1c3BpY2lvdXMAAAAAAwkAAAAAAAACBQAAAApwbXRBc3NldElkBQAAAAhhc3NldElkQQQAAAAcYW1vdW50VmlydHVhbFJlcGxlbmlzaFRva2VuQQkAAGUAAAACBQAAAAlwbXRBbW91bnQFAAAAE3ZpcnR1YWxTd2FwVG9rZW5QYXkEAAAAHGFtb3VudFZpcnR1YWxSZXBsZW5pc2hUb2tlbkIFAAAAE3ZpcnR1YWxTd2FwVG9rZW5HZXQEAAAAGGJhbGFuY2VBZnRlclZpcnR1YWxTd2FwQQkAAGQAAAACBQAAAAhiYWxhbmNlQQUAAAATdmlydHVhbFN3YXBUb2tlblBheQQAAAAYYmFsYW5jZUFmdGVyVmlydHVhbFN3YXBCCQAAZQAAAAIFAAAACGJhbGFuY2VCBQAAABN2aXJ0dWFsU3dhcFRva2VuR2V0BAAAAAxpbnZhcmlhbnROZXcJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgUAAAAYYmFsYW5jZUFmdGVyVmlydHVhbFN3YXBBBQAAABhiYWxhbmNlQWZ0ZXJWaXJ0dWFsU3dhcEIEAAAAF2ludmFyaWFudEVzdGltYXRlZFJhdGlvCQAAawAAAAMFAAAACWludmFyaWFudAUAAAALc2NhbGVWYWx1ZTgFAAAADGludmFyaWFudE5ldwMDCQAAZgAAAAIFAAAAF2ludmFyaWFudEVzdGltYXRlZFJhdGlvBQAAABdzbGlwcGFnZVZhbHVlTWluRm9yU3dhcAkAAGcAAAACCQAAZQAAAAIFAAAADGludmFyaWFudE5ldwUAAAAJaW52YXJpYW50AAAAAAAAAAAABwQAAAAlcmF0aW9WaXJ0dWFsQmFsYW5jZVRvVmlydHVhbFJlcGxlbmlzaAkAAGkAAAACCQAAawAAAAMFAAAAGGJhbGFuY2VBZnRlclZpcnR1YWxTd2FwQQkAAGgAAAACBQAAAAtzY2FsZVZhbHVlOAUAAAALc2NhbGVWYWx1ZTgFAAAAGGJhbGFuY2VBZnRlclZpcnR1YWxTd2FwQgkAAGsAAAADBQAAABxhbW91bnRWaXJ0dWFsUmVwbGVuaXNoVG9rZW5BBQAAAAtzY2FsZVZhbHVlOAUAAAAcYW1vdW50VmlydHVhbFJlcGxlbmlzaFRva2VuQgMGCQAAAgAAAAEJAAGkAAAAAQUAAAAlcmF0aW9WaXJ0dWFsQmFsYW5jZVRvVmlydHVhbFJlcGxlbmlzaAMDCQAAZgAAAAIFAAAAHHNsaXBwYWdlVmFsdWVNaW5Gb3JSZXBsZW5pc2gFAAAAJXJhdGlvVmlydHVhbEJhbGFuY2VUb1ZpcnR1YWxSZXBsZW5pc2gGCQAAZgAAAAIFAAAAJXJhdGlvVmlydHVhbEJhbGFuY2VUb1ZpcnR1YWxSZXBsZW5pc2gFAAAAHHNsaXBwYWdlVmFsdWVNYXhGb3JSZXBsZW5pc2gJAAACAAAAAQIAAABmc3dvcCB3aXRoIHZpcnR1YWxTd2FwVG9rZW5QYXkgYW5kIHZpcnR1YWxTd2FwVG9rZW5HZXQgcG9zc2libGUsIGJ1dCByYXRpbyBhZnRlciB2aXJ0dWFsIHN3YXAgaW5jb3JyZWN0BAAAABNyYXRpb1NoYXJlVG9rZW5zSW5BCQAAawAAAAMJAQAAABBkZWR1Y3RTdGFraW5nRmVlAAAAAgUAAAAcYW1vdW50VmlydHVhbFJlcGxlbmlzaFRva2VuQQUAAAAIYXNzZXRJZEEFAAAAC3NjYWxlVmFsdWU4BQAAABhiYWxhbmNlQWZ0ZXJWaXJ0dWFsU3dhcEEEAAAAE3JhdGlvU2hhcmVUb2tlbnNJbkIJAABrAAAAAwkBAAAAEGRlZHVjdFN0YWtpbmdGZWUAAAACBQAAABxhbW91bnRWaXJ0dWFsUmVwbGVuaXNoVG9rZW5CBQAAAAhhc3NldElkQgUAAAALc2NhbGVWYWx1ZTgFAAAAGGJhbGFuY2VBZnRlclZpcnR1YWxTd2FwQgQAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50CQAAawAAAAMJAAGXAAAAAQkABEwAAAACBQAAABNyYXRpb1NoYXJlVG9rZW5zSW5BCQAETAAAAAIFAAAAE3JhdGlvU2hhcmVUb2tlbnNJbkIFAAAAA25pbAUAAAAQc2hhcmVBc3NldFN1cHBseQUAAAALc2NhbGVWYWx1ZTgEAAAAE2ludmFyaWFudENhbGN1bGF0ZWQJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgkAAGQAAAACBQAAAAhiYWxhbmNlQQUAAAAJcG10QW1vdW50BQAAAAhiYWxhbmNlQgQAAAAPbmV3QW1vdW50VG9rZW5BCQAAZAAAAAIFAAAACGJhbGFuY2VBBQAAAAlwbXRBbW91bnQEAAAAD25ld0Ftb3VudFRva2VuQgUAAAAIYmFsYW5jZUIEAAAAE2RBcHBUaHJlc2hvbGRBbW91bnQJAABrAAAAAwkAAGQAAAACBQAAAA9uZXdBbW91bnRUb2tlbkEFAAAAD25ld0Ftb3VudFRva2VuQgUAAAANZEFwcFRocmVzaG9sZAkAAGgAAAACAAAAAAAAAAACBQAAABZkQXBwVGhyZXNob2xkRGVsaW1pdGVyAwMJAABmAAAAAgUAAAATZEFwcFRocmVzaG9sZEFtb3VudAUAAAAPbmV3QW1vdW50VG9rZW5BBgkAAGYAAAACBQAAABNkQXBwVGhyZXNob2xkQW1vdW50BQAAAA9uZXdBbW91bnRUb2tlbkIJAQAAAA50aHJvd1RocmVzaG9sZAAAAAMFAAAAE2RBcHBUaHJlc2hvbGRBbW91bnQFAAAAD25ld0Ftb3VudFRva2VuQQUAAAAPbmV3QW1vdW50VG9rZW5CCQAETAAAAAIJAQAAAAdSZWlzc3VlAAAAAwUAAAAMc2hhcmVBc3NldElkBQAAABVzaGFyZVRva2VuVG9QYXlBbW91bnQGCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50BQAAAAxzaGFyZUFzc2V0SWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAE2tleVNoYXJlQXNzZXRTdXBwbHkJAABkAAAAAgUAAAAQc2hhcmVBc3NldFN1cHBseQUAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAtrZXlCYWxhbmNlQQUAAAAPbmV3QW1vdW50VG9rZW5BCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAxrZXlJbnZhcmlhbnQFAAAAE2ludmFyaWFudENhbGN1bGF0ZWQFAAAAA25pbAkAAAIAAAABAgAAADppbmNvcnJlY3QgdmlydHVhbFN3YXBUb2tlblBheSBvciB2aXJ0dWFsU3dhcFRva2VuR2V0IHZhbHVlAwkAAAAAAAACBQAAAApwbXRBc3NldElkBQAAAAhhc3NldElkQgQAAAAcYW1vdW50VmlydHVhbFJlcGxlbmlzaFRva2VuQgkAAGUAAAACBQAAAAlwbXRBbW91bnQFAAAAE3ZpcnR1YWxTd2FwVG9rZW5QYXkEAAAAHGFtb3VudFZpcnR1YWxSZXBsZW5pc2hUb2tlbkEFAAAAE3ZpcnR1YWxTd2FwVG9rZW5HZXQEAAAAGGJhbGFuY2VBZnRlclZpcnR1YWxTd2FwQQkAAGUAAAACBQAAAAhiYWxhbmNlQQUAAAATdmlydHVhbFN3YXBUb2tlbkdldAQAAAAYYmFsYW5jZUFmdGVyVmlydHVhbFN3YXBCCQAAZAAAAAIFAAAACGJhbGFuY2VCBQAAABN2aXJ0dWFsU3dhcFRva2VuUGF5BAAAAAxpbnZhcmlhbnROZXcJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgUAAAAYYmFsYW5jZUFmdGVyVmlydHVhbFN3YXBBBQAAABhiYWxhbmNlQWZ0ZXJWaXJ0dWFsU3dhcEIEAAAAF2ludmFyaWFudEVzdGltYXRlZFJhdGlvCQAAawAAAAMFAAAACWludmFyaWFudAUAAAALc2NhbGVWYWx1ZTgFAAAADGludmFyaWFudE5ldwMDCQAAZgAAAAIFAAAAF2ludmFyaWFudEVzdGltYXRlZFJhdGlvBQAAABdzbGlwcGFnZVZhbHVlTWluRm9yU3dhcAkAAGcAAAACCQAAZQAAAAIFAAAADGludmFyaWFudE5ldwUAAAAJaW52YXJpYW50AAAAAAAAAAAABwQAAAAlcmF0aW9WaXJ0dWFsQmFsYW5jZVRvVmlydHVhbFJlcGxlbmlzaAkAAGkAAAACCQAAawAAAAMFAAAAGGJhbGFuY2VBZnRlclZpcnR1YWxTd2FwQQkAAGgAAAACBQAAAAtzY2FsZVZhbHVlOAUAAAALc2NhbGVWYWx1ZTgFAAAAGGJhbGFuY2VBZnRlclZpcnR1YWxTd2FwQgkAAGsAAAADBQAAABxhbW91bnRWaXJ0dWFsUmVwbGVuaXNoVG9rZW5BBQAAAAtzY2FsZVZhbHVlOAUAAAAcYW1vdW50VmlydHVhbFJlcGxlbmlzaFRva2VuQgMDCQAAZgAAAAIFAAAAHHNsaXBwYWdlVmFsdWVNaW5Gb3JSZXBsZW5pc2gFAAAAJXJhdGlvVmlydHVhbEJhbGFuY2VUb1ZpcnR1YWxSZXBsZW5pc2gGCQAAZgAAAAIFAAAAJXJhdGlvVmlydHVhbEJhbGFuY2VUb1ZpcnR1YWxSZXBsZW5pc2gFAAAAHHNsaXBwYWdlVmFsdWVNYXhGb3JSZXBsZW5pc2gJAAACAAAAAQIAAABmc3dvcCB3aXRoIHZpcnR1YWxTd2FwVG9rZW5QYXkgYW5kIHZpcnR1YWxTd2FwVG9rZW5HZXQgcG9zc2libGUsIGJ1dCByYXRpbyBhZnRlciB2aXJ0dWFsIHN3YXAgaW5jb3JyZWN0BAAAABNyYXRpb1NoYXJlVG9rZW5zSW5BCQAAawAAAAMJAQAAABBkZWR1Y3RTdGFraW5nRmVlAAAAAgUAAAAcYW1vdW50VmlydHVhbFJlcGxlbmlzaFRva2VuQQUAAAAIYXNzZXRJZEEFAAAAC3NjYWxlVmFsdWU4BQAAABhiYWxhbmNlQWZ0ZXJWaXJ0dWFsU3dhcEEEAAAAE3JhdGlvU2hhcmVUb2tlbnNJbkIJAABrAAAAAwkBAAAAEGRlZHVjdFN0YWtpbmdGZWUAAAACBQAAABxhbW91bnRWaXJ0dWFsUmVwbGVuaXNoVG9rZW5CBQAAAAhhc3NldElkQgUAAAALc2NhbGVWYWx1ZTgFAAAAGGJhbGFuY2VBZnRlclZpcnR1YWxTd2FwQgQAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50CQAAawAAAAMJAAGXAAAAAQkABEwAAAACBQAAABNyYXRpb1NoYXJlVG9rZW5zSW5BCQAETAAAAAIFAAAAE3JhdGlvU2hhcmVUb2tlbnNJbkIFAAAAA25pbAUAAAAQc2hhcmVBc3NldFN1cHBseQUAAAALc2NhbGVWYWx1ZTgEAAAAE2ludmFyaWFudENhbGN1bGF0ZWQJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgUAAAAIYmFsYW5jZUEJAABkAAAAAgUAAAAIYmFsYW5jZUIFAAAACXBtdEFtb3VudAQAAAAPbmV3QW1vdW50VG9rZW5BBQAAAAhiYWxhbmNlQQQAAAAPbmV3QW1vdW50VG9rZW5CCQAAZAAAAAIFAAAACGJhbGFuY2VCBQAAAAlwbXRBbW91bnQEAAAAE2RBcHBUaHJlc2hvbGRBbW91bnQJAABrAAAAAwkAAGQAAAACBQAAAA9uZXdBbW91bnRUb2tlbkEFAAAAD25ld0Ftb3VudFRva2VuQgUAAAANZEFwcFRocmVzaG9sZAkAAGgAAAACAAAAAAAAAAACBQAAABZkQXBwVGhyZXNob2xkRGVsaW1pdGVyAwMJAABmAAAAAgUAAAATZEFwcFRocmVzaG9sZEFtb3VudAUAAAAPbmV3QW1vdW50VG9rZW5BBgkAAGYAAAACBQAAABNkQXBwVGhyZXNob2xkQW1vdW50BQAAAA9uZXdBbW91bnRUb2tlbkIJAQAAAA50aHJvd1RocmVzaG9sZAAAAAMFAAAAE2RBcHBUaHJlc2hvbGRBbW91bnQFAAAAD25ld0Ftb3VudFRva2VuQQUAAAAPbmV3QW1vdW50VG9rZW5CCQAETAAAAAIJAQAAAAdSZWlzc3VlAAAAAwUAAAAMc2hhcmVBc3NldElkBQAAABVzaGFyZVRva2VuVG9QYXlBbW91bnQGCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50BQAAAAxzaGFyZUFzc2V0SWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAE2tleVNoYXJlQXNzZXRTdXBwbHkJAABkAAAAAgUAAAAQc2hhcmVBc3NldFN1cHBseQUAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAtrZXlCYWxhbmNlQgUAAAAPbmV3QW1vdW50VG9rZW5CCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAxrZXlJbnZhcmlhbnQFAAAAE2ludmFyaWFudENhbGN1bGF0ZWQFAAAAA25pbAkAAAIAAAABAgAAADppbmNvcnJlY3QgdmlydHVhbFN3YXBUb2tlblBheSBvciB2aXJ0dWFsU3dhcFRva2VuR2V0IHZhbHVlCQEAAAALdGhyb3dBc3NldHMAAAAAAAAAAWkBAAAACHdpdGhkcmF3AAAAAAQAAAANJHQwMjMwODMyMzIzMwkABRQAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQEAAAACXBtdEFtb3VudAgFAAAADSR0MDIzMDgzMjMyMzMAAAACXzEEAAAACnBtdEFzc2V0SWQIBQAAAA0kdDAyMzA4MzIzMjMzAAAAAl8yBAAAAAxhbW91bnRUb1BheUEJAQAAABBkZWR1Y3RTdGFraW5nRmVlAAAAAgkAAGsAAAADBQAAAAlwbXRBbW91bnQFAAAACGJhbGFuY2VBBQAAABBzaGFyZUFzc2V0U3VwcGx5BQAAAAhhc3NldElkQQQAAAAMYW1vdW50VG9QYXlCCQEAAAAQZGVkdWN0U3Rha2luZ0ZlZQAAAAIJAABrAAAAAwUAAAAJcG10QW1vdW50BQAAAAhiYWxhbmNlQgUAAAAQc2hhcmVBc3NldFN1cHBseQUAAAAIYXNzZXRJZEIEAAAAE2ludmFyaWFudENhbGN1bGF0ZWQJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgkAAGUAAAACBQAAAAhiYWxhbmNlQQUAAAAMYW1vdW50VG9QYXlBCQAAZQAAAAIFAAAACGJhbGFuY2VCBQAAAAxhbW91bnRUb1BheUIDCQEAAAABIQAAAAEFAAAACGlzQWN0aXZlCQEAAAAPdGhyb3dJc0luYWN0aXZlAAAAAAMJAQAAAAIhPQAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAACAAAAAQIAAAAdT25lIGF0dGFjaGVkIHBheW1lbnQgZXhwZWN0ZWQDCQEAAAACIT0AAAACBQAAAApwbXRBc3NldElkBQAAAAxzaGFyZUFzc2V0SWQJAAACAAAAAQkAASwAAAACAgAAACRJbmNvcnJlY3QgYXNzZXQgYXR0YWNoZWQuIEV4cGVjdGVkOiAJAAJYAAAAAQUAAAAMc2hhcmVBc3NldElkAwkBAAAAASEAAAABBQAAABBoYXNFbm91Z2hCYWxhbmNlCQEAAAARc3VzcGVuZFN1c3BpY2lvdXMAAAAAAwMJAABmAAAAAgUAAAAMYW1vdW50VG9QYXlBBQAAABFhdmFpbGFibGVCYWxhbmNlQQYJAABmAAAAAgUAAAAMYW1vdW50VG9QYXlCBQAAABFhdmFpbGFibGVCYWxhbmNlQgkBAAAAInRocm93SW5zdWZmaWNpZW50QXZhaWxhYmxlQmFsYW5jZXMAAAACBQAAAAxhbW91bnRUb1BheUEFAAAADGFtb3VudFRvUGF5QgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUEJAABlAAAAAgUAAAAIYmFsYW5jZUEFAAAADGFtb3VudFRvUGF5QQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUIJAABlAAAAAgUAAAAIYmFsYW5jZUIFAAAADGFtb3VudFRvUGF5QgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAATa2V5U2hhcmVBc3NldFN1cHBseQkAAGUAAAACBQAAABBzaGFyZUFzc2V0U3VwcGx5BQAAAAlwbXRBbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADGtleUludmFyaWFudAUAAAATaW52YXJpYW50Q2FsY3VsYXRlZAkABEwAAAACCQEAAAAEQnVybgAAAAIFAAAADHNoYXJlQXNzZXRJZAUAAAAJcG10QW1vdW50CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAMYW1vdW50VG9QYXlBBQAAAAhhc3NldElkQQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAADGFtb3VudFRvUGF5QgUAAAAIYXNzZXRJZEIFAAAAA25pbAAAAAFpAQAAAAhleGNoYW5nZQAAAAIAAAAYZXN0aW1hdGVkQW1vdW50VG9SZWNlaXZlAAAAEm1pbkFtb3VudFRvUmVjZWl2ZQQAAAANJHQwMjQ1MjQyNDU5OQkABRQAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQEAAAACXBtdEFtb3VudAgFAAAADSR0MDI0NTI0MjQ1OTkAAAACXzEEAAAACnBtdEFzc2V0SWQIBQAAAA0kdDAyNDUyNDI0NTk5AAAAAl8yAwkBAAAAASEAAAABBQAAAAhpc0FjdGl2ZQkBAAAAD3Rocm93SXNJbmFjdGl2ZQAAAAADCQAAZwAAAAIAAAAAAAAAAAAFAAAAGGVzdGltYXRlZEFtb3VudFRvUmVjZWl2ZQkAAAIAAAABCQABLAAAAAICAAAAK0VzdGltYXRlZCBhbW91bnQgbXVzdCBiZSBwb3NpdGl2ZS4gQWN0dWFsOiAJAAGkAAAAAQUAAAAYZXN0aW1hdGVkQW1vdW50VG9SZWNlaXZlAwkAAGYAAAACBQAAABJtaW5BbW91bnRUb1JlY2VpdmUFAAAAGGVzdGltYXRlZEFtb3VudFRvUmVjZWl2ZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAADtNaW5pbWFsIGFtb3VudCBjYW4ndCBiZSBncmVhdGVyIHRoYW4gZXN0aW1hdGVkLiBFc3RpbWF0ZWQ6IAkAAaQAAAABBQAAABhlc3RpbWF0ZWRBbW91bnRUb1JlY2VpdmUCAAAACy4gTWluaW1hbDogCQABpAAAAAEFAAAAEm1pbkFtb3VudFRvUmVjZWl2ZQMJAQAAAAIhPQAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAACAAAAAQIAAAAdT25lIGF0dGFjaGVkIHBheW1lbnQgZXhwZWN0ZWQDCQEAAAABIQAAAAEFAAAAEGhhc0Vub3VnaEJhbGFuY2UJAQAAABFzdXNwZW5kU3VzcGljaW91cwAAAAADCQAAAAAAAAIFAAAACnBtdEFzc2V0SWQFAAAACGFzc2V0SWRBBAAAAAthc3NldElkU2VuZAUAAAAIYXNzZXRJZEIEAAAAEGFtb3VudFdpdGhvdXRGZWUJAQAAABpjYWxjdWxhdGVIb3dNYW55U2VuZFRva2VuQgAAAAUFAAAAGGVzdGltYXRlZEFtb3VudFRvUmVjZWl2ZQUAAAASbWluQW1vdW50VG9SZWNlaXZlBQAAAAhiYWxhbmNlQQUAAAAIYmFsYW5jZUIFAAAACXBtdEFtb3VudAQAAAANYW1vdW50V2l0aEZlZQkAAGsAAAADBQAAABBhbW91bnRXaXRob3V0RmVlCQAAZQAAAAIFAAAAGGNvbW1pc3Npb25TY2FsZURlbGltaXRlcgUAAAAKY29tbWlzc2lvbgUAAAAYY29tbWlzc2lvblNjYWxlRGVsaW1pdGVyBAAAABBnb3Zlcm5hbmNlUmV3YXJkCQAAawAAAAMFAAAAEGFtb3VudFdpdGhvdXRGZWUFAAAAFGNvbW1pc3Npb25Hb3Zlcm5hbmNlBQAAABhjb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIEAAAAD25ld0Ftb3VudFRva2VuQQkAAGQAAAACBQAAAAhiYWxhbmNlQQUAAAAJcG10QW1vdW50BAAAAA9uZXdBbW91bnRUb2tlbkIJAABlAAAAAgkAAGUAAAACBQAAAAhiYWxhbmNlQgUAAAANYW1vdW50V2l0aEZlZQUAAAAQZ292ZXJuYW5jZVJld2FyZAQAAAATZEFwcFRocmVzaG9sZEFtb3VudAkAAGsAAAADCQAAZAAAAAIFAAAAD25ld0Ftb3VudFRva2VuQQUAAAAPbmV3QW1vdW50VG9rZW5CBQAAAA1kQXBwVGhyZXNob2xkCQAAaAAAAAIAAAAAAAAAAAIFAAAAFmRBcHBUaHJlc2hvbGREZWxpbWl0ZXIDAwkAAGYAAAACBQAAABNkQXBwVGhyZXNob2xkQW1vdW50BQAAAA9uZXdBbW91bnRUb2tlbkEGCQAAZgAAAAIFAAAAE2RBcHBUaHJlc2hvbGRBbW91bnQFAAAAD25ld0Ftb3VudFRva2VuQgkBAAAADnRocm93VGhyZXNob2xkAAAAAwUAAAATZEFwcFRocmVzaG9sZEFtb3VudAUAAAAPbmV3QW1vdW50VG9rZW5BBQAAAA9uZXdBbW91bnRUb2tlbkIDAwMJAAAAAAAAAgUAAAAIYXNzZXRJZEEFAAAABFVTRE4JAABnAAAAAgUAAAAQc3Rha2VkQW1vdW50VVNETgUAAAAPbmV3QW1vdW50VG9rZW5BBwYDCQAAAAAAAAIFAAAACGFzc2V0SWRCBQAAAARVU0ROCQAAZwAAAAIFAAAAEHN0YWtlZEFtb3VudFVTRE4FAAAAD25ld0Ftb3VudFRva2VuQgcJAQAAACF0aHJvd0luc3VmZmljaWVudEF2YWlsYWJsZUJhbGFuY2UAAAADBQAAAA1hbW91bnRXaXRoRmVlBQAAABFhdmFpbGFibGVCYWxhbmNlQgUAAAAKYXNzZXROYW1lQgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUEFAAAAD25ld0Ftb3VudFRva2VuQQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUIFAAAAD25ld0Ftb3VudFRva2VuQgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAMa2V5SW52YXJpYW50CQEAAAANaW52YXJpYW50Q2FsYwAAAAIJAABkAAAAAgUAAAAIYmFsYW5jZUEFAAAACXBtdEFtb3VudAkAAGUAAAACCQAAZQAAAAIFAAAACGJhbGFuY2VCBQAAAA1hbW91bnRXaXRoRmVlBQAAABBnb3Zlcm5hbmNlUmV3YXJkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAANYW1vdW50V2l0aEZlZQUAAAALYXNzZXRJZFNlbmQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAARZ292ZXJuYW5jZUFkZHJlc3MFAAAAEGdvdmVybmFuY2VSZXdhcmQFAAAAC2Fzc2V0SWRTZW5kBQAAAANuaWwDCQAAAAAAAAIFAAAACnBtdEFzc2V0SWQFAAAACGFzc2V0SWRCBAAAAAthc3NldElkU2VuZAUAAAAIYXNzZXRJZEEEAAAAEGFtb3VudFdpdGhvdXRGZWUJAQAAABpjYWxjdWxhdGVIb3dNYW55U2VuZFRva2VuQQAAAAUFAAAAGGVzdGltYXRlZEFtb3VudFRvUmVjZWl2ZQUAAAASbWluQW1vdW50VG9SZWNlaXZlBQAAAAhiYWxhbmNlQQUAAAAIYmFsYW5jZUIFAAAACXBtdEFtb3VudAQAAAANYW1vdW50V2l0aEZlZQkAAGsAAAADBQAAABBhbW91bnRXaXRob3V0RmVlCQAAZQAAAAIFAAAAGGNvbW1pc3Npb25TY2FsZURlbGltaXRlcgUAAAAKY29tbWlzc2lvbgUAAAAYY29tbWlzc2lvblNjYWxlRGVsaW1pdGVyBAAAABBnb3Zlcm5hbmNlUmV3YXJkCQAAawAAAAMFAAAAEGFtb3VudFdpdGhvdXRGZWUFAAAAFGNvbW1pc3Npb25Hb3Zlcm5hbmNlBQAAABhjb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIEAAAAD25ld0Ftb3VudFRva2VuQQkAAGUAAAACCQAAZQAAAAIFAAAACGJhbGFuY2VBBQAAAA1hbW91bnRXaXRoRmVlBQAAABBnb3Zlcm5hbmNlUmV3YXJkBAAAAA9uZXdBbW91bnRUb2tlbkIJAABkAAAAAgUAAAAIYmFsYW5jZUIFAAAACXBtdEFtb3VudAQAAAATZEFwcFRocmVzaG9sZEFtb3VudAkAAGsAAAADCQAAZAAAAAIFAAAAD25ld0Ftb3VudFRva2VuQQUAAAAPbmV3QW1vdW50VG9rZW5CBQAAAA1kQXBwVGhyZXNob2xkCQAAaAAAAAIAAAAAAAAAAAIFAAAAFmRBcHBUaHJlc2hvbGREZWxpbWl0ZXIDAwkAAGYAAAACBQAAABNkQXBwVGhyZXNob2xkQW1vdW50BQAAAA9uZXdBbW91bnRUb2tlbkEGCQAAZgAAAAIFAAAAE2RBcHBUaHJlc2hvbGRBbW91bnQFAAAAD25ld0Ftb3VudFRva2VuQgkBAAAADnRocm93VGhyZXNob2xkAAAAAwUAAAATZEFwcFRocmVzaG9sZEFtb3VudAUAAAAPbmV3QW1vdW50VG9rZW5BBQAAAA9uZXdBbW91bnRUb2tlbkIDAwMJAAAAAAAAAgUAAAAIYXNzZXRJZEEFAAAABFVTRE4JAABnAAAAAgUAAAAQc3Rha2VkQW1vdW50VVNETgUAAAAPbmV3QW1vdW50VG9rZW5BBwYDCQAAAAAAAAIFAAAACGFzc2V0SWRCBQAAAARVU0ROCQAAZwAAAAIFAAAAEHN0YWtlZEFtb3VudFVTRE4FAAAAD25ld0Ftb3VudFRva2VuQgcJAQAAACF0aHJvd0luc3VmZmljaWVudEF2YWlsYWJsZUJhbGFuY2UAAAADBQAAAA1hbW91bnRXaXRoRmVlBQAAABFhdmFpbGFibGVCYWxhbmNlQQUAAAAKYXNzZXROYW1lQQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUEFAAAAD25ld0Ftb3VudFRva2VuQQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUIFAAAAD25ld0Ftb3VudFRva2VuQgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAMa2V5SW52YXJpYW50CQEAAAANaW52YXJpYW50Q2FsYwAAAAIJAABlAAAAAgkAAGUAAAACBQAAAAhiYWxhbmNlQQUAAAANYW1vdW50V2l0aEZlZQUAAAAQZ292ZXJuYW5jZVJld2FyZAkAAGQAAAACBQAAAAhiYWxhbmNlQgUAAAAJcG10QW1vdW50CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAANYW1vdW50V2l0aEZlZQUAAAALYXNzZXRJZFNlbmQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAARZ292ZXJuYW5jZUFkZHJlc3MFAAAAEGdvdmVybmFuY2VSZXdhcmQFAAAAC2Fzc2V0SWRTZW5kBQAAAANuaWwJAQAAAAt0aHJvd0Fzc2V0cwAAAAAAAAABaQEAAAAZdGFrZUludG9BY2NvdW50RXh0cmFGdW5kcwAAAAEAAAALYW1vdW50TGVhdmUEAAAAHXVuY291bnRhYmxlQW1vdW50RW5yb2xsQXNzZXRBCQAAZQAAAAIFAAAAGWFjY291bnRCYWxhbmNlV2l0aFN0YWtlZEEFAAAACGJhbGFuY2VBBAAAAB11bmNvdW50YWJsZUFtb3VudEVucm9sbEFzc2V0QgkAAGUAAAACBQAAABlhY2NvdW50QmFsYW5jZVdpdGhTdGFrZWRCBQAAAAhiYWxhbmNlQgQAAAANYW1vdW50RW5yb2xsQQkAAGUAAAACBQAAAB11bmNvdW50YWJsZUFtb3VudEVucm9sbEFzc2V0QQMJAAAAAAAAAgUAAAAIYXNzZXRJZEEFAAAABFVTRE4FAAAAC2Ftb3VudExlYXZlAAAAAAAAAAAABAAAAA1hbW91bnRFbnJvbGxCCQAAZQAAAAIFAAAAHXVuY291bnRhYmxlQW1vdW50RW5yb2xsQXNzZXRCAwkAAAAAAAACBQAAAAhhc3NldElkQgUAAAAEVVNETgUAAAALYW1vdW50TGVhdmUAAAAAAAAAAAADCQEAAAABIQAAAAEFAAAACGlzQWN0aXZlCQEAAAAPdGhyb3dJc0luYWN0aXZlAAAAAAMJAQAAAAEhAAAAAQkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkxCQAETAAAAAIFAAAADGFkbWluUHViS2V5MgkABEwAAAACBQAAAAxhZG1pblB1YktleTMJAARMAAAAAgUAAAASYWRtaW5QdWJLZXlTdGFraW5nBQAAAANuaWwIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkBAAAADnRocm93T25seUFkbWluAAAAAAMJAABmAAAAAgAAAAAAAAAAAAUAAAALYW1vdW50TGVhdmUJAAACAAAAAQkAASwAAAACAgAAADNBcmd1bWVudCAnYW1vdW50TGVhdmUnIGNhbm5vdCBiZSBuZWdhdGl2ZS4gQWN0dWFsOiAJAAGkAAAAAQUAAAALYW1vdW50TGVhdmUDAwkAAGYAAAACAAAAAAAAAAAABQAAAB11bmNvdW50YWJsZUFtb3VudEVucm9sbEFzc2V0QQYJAABmAAAAAgAAAAAAAAAAAAUAAAAddW5jb3VudGFibGVBbW91bnRFbnJvbGxBc3NldEIJAQAAAAdzdXNwZW5kAAAAAQIAAAAWRW5yb2xsIGFtb3VudCBuZWdhdGl2ZQMDCQAAZgAAAAIAAAAAAAAAAAAFAAAADWFtb3VudEVucm9sbEEGCQAAZgAAAAIAAAAAAAAAAAAFAAAADWFtb3VudEVucm9sbEIJAAACAAAAAQIAAAAVVG9vIGxhcmdlIGFtb3VudExlYXZlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAtrZXlCYWxhbmNlQQkAAGQAAAACBQAAAAhiYWxhbmNlQQUAAAANYW1vdW50RW5yb2xsQQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUIJAABkAAAAAgUAAAAIYmFsYW5jZUIFAAAADWFtb3VudEVucm9sbEIFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAByRtYXRjaDAFAAAAAnR4AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABdJbnZva2VTY3JpcHRUcmFuc2FjdGlvbgQAAAAGaW52b2tlBQAAAAckbWF0Y2gwAwkAAfQAAAADCAUAAAAGaW52b2tlAAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAAGaW52b2tlAAAABnByb29mcwAAAAAAAAAAAAUAAAASYWRtaW5QdWJLZXlTdGFraW5nCQAAAAAAAAIIBQAAAAZpbnZva2UAAAAEZEFwcAUAAAAOc3Rha2luZ0FkZHJlc3MHBAAAABJhZG1pblB1YktleTFTaWduZWQDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAAMYWRtaW5QdWJLZXkxAAAAAAAAAAABAAAAAAAAAAAABAAAABJhZG1pblB1YktleTJTaWduZWQDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAQUAAAAMYWRtaW5QdWJLZXkyAAAAAAAAAAABAAAAAAAAAAAABAAAABJhZG1pblB1YktleTNTaWduZWQDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAgUAAAAMYWRtaW5QdWJLZXkzAAAAAAAAAAABAAAAAAAAAAAACQAAZwAAAAIJAABkAAAAAgkAAGQAAAACBQAAABJhZG1pblB1YktleTFTaWduZWQFAAAAEmFkbWluUHViS2V5MlNpZ25lZAUAAAASYWRtaW5QdWJLZXkzU2lnbmVkAAAAAAAAAAACu+3TBA==", "chainId": 84, "height": 1285258, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 4 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let a = "2.0.0" | |
5 | + | ||
6 | + | let b = "version" | |
7 | + | ||
8 | + | let c = "active" | |
9 | + | ||
10 | + | let d = "A_asset_id" | |
11 | + | ||
12 | + | let e = "B_asset_id" | |
13 | + | ||
14 | + | let f = "A_asset_balance" | |
15 | + | ||
16 | + | let g = "B_asset_balance" | |
17 | + | ||
18 | + | let h = "share_asset_id" | |
19 | + | ||
20 | + | let i = "share_asset_supply" | |
21 | + | ||
22 | + | let j = "commission" | |
23 | + | ||
24 | + | let k = "commission_scale_delimiter" | |
25 | + | ||
26 | + | let l = "commission_governance" | |
27 | + | ||
28 | + | let m = "invariant" | |
29 | + | ||
30 | + | let n = "shutdown_cause" | |
31 | + | ||
32 | + | let o = base58'7FhFLst7Htn4uYxGH7xYMTAmbydLVoiZef3eFghi7CG4' | |
33 | + | ||
34 | + | let p = base58'7FhFLst7Htn4uYxGH7xYMTAmbydLVoiZef3eFghi7CG4' | |
35 | + | ||
36 | + | let q = base58'7FhFLst7Htn4uYxGH7xYMTAmbydLVoiZef3eFghi7CG4' | |
37 | + | ||
38 | + | let r = base58'7FhFLst7Htn4uYxGH7xYMTAmbydLVoiZef3eFghi7CG4' | |
39 | + | ||
40 | + | let s = base58'7FhFLst7Htn4uYxGH7xYMTAmbydLVoiZef3eFghi7CG4' | |
41 | + | ||
42 | + | let t = Address(base58'3MTobDiK1kQpEw4XpwKvTYWXVoAH5wUZxBE') | |
43 | + | ||
44 | + | let u = Address(base58'3MTobDiK1kQpEw4XpwKvTYWXVoAH5wUZxBE') | |
45 | + | ||
46 | + | let v = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p' | |
47 | + | ||
48 | + | let w = (9 * value(value(assetInfo(v)).minSponsoredFee)) | |
49 | + | ||
50 | + | let x = getBooleanValue(this, c) | |
51 | + | ||
52 | + | let y = getStringValue(this, d) | |
53 | + | ||
54 | + | let z = getStringValue(this, e) | |
55 | + | ||
56 | + | let A = if ((y == "WAVES")) | |
57 | + | then unit | |
58 | + | else fromBase58String(y) | |
59 | + | ||
60 | + | let B = if ((z == "WAVES")) | |
61 | + | then unit | |
62 | + | else fromBase58String(z) | |
63 | + | ||
64 | + | let C = { | |
65 | + | let D = A | |
66 | + | if ($isInstanceOf(D, "ByteVector")) | |
67 | + | then { | |
68 | + | let E = D | |
69 | + | value(assetInfo(E)).name | |
70 | + | } | |
71 | + | else if ($isInstanceOf(D, "Unit")) | |
72 | + | then { | |
73 | + | let F = D | |
74 | + | "WAVES" | |
75 | + | } | |
76 | + | else throw("Match error") | |
77 | + | } | |
78 | + | ||
79 | + | let G = { | |
80 | + | let D = B | |
81 | + | if ($isInstanceOf(D, "ByteVector")) | |
82 | + | then { | |
83 | + | let E = D | |
84 | + | value(assetInfo(E)).name | |
85 | + | } | |
86 | + | else if ($isInstanceOf(D, "Unit")) | |
87 | + | then { | |
88 | + | let F = D | |
89 | + | "WAVES" | |
90 | + | } | |
91 | + | else throw("Match error") | |
92 | + | } | |
93 | + | ||
94 | + | let H = getIntegerValue(this, f) | |
95 | + | ||
96 | + | let I = getIntegerValue(this, g) | |
97 | + | ||
98 | + | let J = fromBase58String(getStringValue(this, h)) | |
99 | + | ||
100 | + | let K = getIntegerValue(this, i) | |
101 | + | ||
102 | + | let L = getIntegerValue(this, m) | |
103 | + | ||
104 | + | let M = 500 | |
105 | + | ||
106 | + | let N = 200 | |
107 | + | ||
108 | + | let O = 1000000 | |
109 | + | ||
110 | + | let P = 1000 | |
111 | + | ||
112 | + | let Q = 100000000 | |
113 | + | ||
114 | + | let R = 1000000000000 | |
115 | + | ||
116 | + | let S = 1000 | |
117 | + | ||
118 | + | let T = 8 | |
119 | + | ||
120 | + | let U = 12 | |
121 | + | ||
122 | + | let V = 50 | |
123 | + | ||
124 | + | let W = 100 | |
125 | + | ||
126 | + | let X = 100000000 | |
127 | + | ||
128 | + | let Y = 99999000 | |
129 | + | ||
130 | + | let Z = 50 | |
131 | + | ||
132 | + | let aa = 2 | |
133 | + | ||
134 | + | let ab = 46000000 | |
135 | + | ||
136 | + | let ac = 8 | |
137 | + | ||
138 | + | func ad (ae) = { | |
139 | + | let D = ae | |
140 | + | if ($isInstanceOf(D, "ByteVector")) | |
141 | + | then { | |
142 | + | let E = D | |
143 | + | assetBalance(this, E) | |
144 | + | } | |
145 | + | else if ($isInstanceOf(D, "Unit")) | |
146 | + | then { | |
147 | + | let F = D | |
148 | + | wavesBalance(this).available | |
149 | + | } | |
150 | + | else throw("Match error") | |
151 | + | } | |
152 | + | ||
153 | + | ||
154 | + | let af = { | |
155 | + | let D = getInteger(u, ((("rpd_balance_" + toBase58String(v)) + "_") + toString(this))) | |
156 | + | if ($isInstanceOf(D, "Int")) | |
157 | + | then { | |
158 | + | let ag = D | |
159 | + | ag | |
160 | + | } | |
161 | + | else if ($isInstanceOf(D, "Unit")) | |
162 | + | then { | |
163 | + | let ah = D | |
164 | + | 0 | |
165 | + | } | |
166 | + | else throw("Match error") | |
167 | + | } | |
168 | + | ||
169 | + | let ai = (H - (if ((A == v)) | |
170 | + | then af | |
171 | + | else 0)) | |
172 | + | ||
173 | + | let aj = (I - (if ((B == v)) | |
174 | + | then af | |
175 | + | else 0)) | |
176 | + | ||
177 | + | let ak = (ad(A) + (if ((A == v)) | |
178 | + | then af | |
179 | + | else 0)) | |
180 | + | ||
181 | + | let al = (ad(B) + (if ((B == v)) | |
182 | + | then af | |
183 | + | else 0)) | |
184 | + | ||
185 | + | let am = if ((ak >= H)) | |
186 | + | then (al >= I) | |
187 | + | else false | |
188 | + | ||
189 | + | func an (ao,ap) = (((fraction(R, ao, ap) + fraction(R, ap, ao)) / 2) / 10000) | |
190 | + | ||
191 | + | ||
192 | + | func aq (ao,ap) = { | |
193 | + | let ar = an(ao, ap) | |
194 | + | (fraction((ao + ap), Q, pow(ar, T, Z, aa, T, UP)) + (2 * fraction(pow(fraction(ao, ap, Q), 0, 5, 1, (T / 2), DOWN), pow((ar - ab), T, Z, aa, T, DOWN), Q))) | |
195 | + | } | |
196 | + | ||
197 | + | ||
198 | + | func as (at,au,av,aw,ax) = { | |
199 | + | let ay = (Q - ((Q * 1) / 10000000)) | |
200 | + | let az = (at - au) | |
201 | + | let aA = (at - ((1 * az) / 5)) | |
202 | + | let aB = (at - ((2 * az) / 5)) | |
203 | + | let aC = (at - ((3 * az) / 5)) | |
204 | + | let aD = (at - ((4 * az) / 5)) | |
205 | + | let aE = (at - ((5 * az) / 5)) | |
206 | + | let ap = (aw + ax) | |
207 | + | let aF = aq((av - at), ap) | |
208 | + | let aG = fraction(L, Q, aF) | |
209 | + | if ((0 >= (aq((av - aE), ap) - L))) | |
210 | + | then throw("minTokenReceiveAmount too large.err1") | |
211 | + | else if (if ((aG > ay)) | |
212 | + | then ((aF - L) > 0) | |
213 | + | else false) | |
214 | + | then at | |
215 | + | else if (((aq((av - aA), ap) - L) > 0)) | |
216 | + | then ((aA * (O - M)) / O) | |
217 | + | else if (((aq((av - aB), ap) - L) > 0)) | |
218 | + | then ((aB * (O - M)) / O) | |
219 | + | else if (((aq((av - aC), ap) - L) > 0)) | |
220 | + | then ((aC * (O - M)) / O) | |
221 | + | else if (((aq((av - aD), ap) - L) > 0)) | |
222 | + | then ((aD * (O - M)) / O) | |
223 | + | else if (((aq((av - aE), ap) - L) > 0)) | |
224 | + | then ((aE * (O - M)) / O) | |
225 | + | else throw("something went wrong while working with amountToSendStep. err2") | |
226 | + | } | |
227 | + | ||
228 | + | ||
229 | + | func aH (at,au,av,aw,ax) = { | |
230 | + | let ay = (Q - ((Q * 1) / 10000000)) | |
231 | + | let az = (at - au) | |
232 | + | let aA = (at - ((1 * az) / 5)) | |
233 | + | let aB = (at - ((2 * az) / 5)) | |
234 | + | let aC = (at - ((3 * az) / 5)) | |
235 | + | let aD = (at - ((4 * az) / 5)) | |
236 | + | let aE = (at - ((5 * az) / 5)) | |
237 | + | let ao = (av + ax) | |
238 | + | let aF = aq(ao, (aw - at)) | |
239 | + | let aG = fraction(L, Q, aF) | |
240 | + | if ((0 >= (aq(ao, (aw - aE)) - L))) | |
241 | + | then throw("minTokenReceiveAmount too large.err1") | |
242 | + | else if (if ((aG > ay)) | |
243 | + | then ((aF - L) > 0) | |
244 | + | else false) | |
245 | + | then at | |
246 | + | else if (((aq(ao, (aw - aA)) - L) > 0)) | |
247 | + | then ((aA * (O - M)) / O) | |
248 | + | else if (((aq(ao, (aw - aB)) - L) > 0)) | |
249 | + | then ((aB * (O - M)) / O) | |
250 | + | else if (((aq(ao, (aw - aC)) - L) > 0)) | |
251 | + | then ((aC * (O - M)) / O) | |
252 | + | else if (((aq(ao, (aw - aD)) - L) > 0)) | |
253 | + | then ((aD * (O - M)) / O) | |
254 | + | else if (((aq(ao, (aw - aE)) - L) > 0)) | |
255 | + | then ((aE * (O - M)) / O) | |
256 | + | else throw("something went wrong while working with amountToSendStep. err2") | |
257 | + | } | |
258 | + | ||
259 | + | ||
260 | + | func aI (ae) = { | |
261 | + | let D = ae | |
262 | + | if ($isInstanceOf(D, "ByteVector")) | |
263 | + | then { | |
264 | + | let E = D | |
265 | + | let aJ = toBase58String(E) | |
266 | + | let aK = valueOrErrorMessage(assetInfo(E), (("Asset " + aJ) + " doesn't exist")) | |
267 | + | $Tuple3(aJ, aK.name, aK.decimals) | |
268 | + | } | |
269 | + | else if ($isInstanceOf(D, "Unit")) | |
270 | + | then { | |
271 | + | let F = D | |
272 | + | $Tuple3("WAVES", "WAVES", 8) | |
273 | + | } | |
274 | + | else throw("Match error") | |
275 | + | } | |
276 | + | ||
277 | + | ||
278 | + | func aL (aM) = [BooleanEntry(c, false), StringEntry(n, aM)] | |
279 | + | ||
280 | + | ||
281 | + | func aN (aO,ae) = if ((ae == v)) | |
282 | + | then { | |
283 | + | let aP = (aO - w) | |
284 | + | if ((0 >= aP)) | |
285 | + | then throw((((("Insufficient amount " + toString(aO)) + " to deduct staking fee ") + toString(w)) + " USD-N")) | |
286 | + | else aP | |
287 | + | } | |
288 | + | else aO | |
289 | + | ||
290 | + | ||
291 | + | func aQ () = throw("DApp is already active") | |
292 | + | ||
293 | + | ||
294 | + | func aR () = throw("DApp is inactive at this moment") | |
295 | + | ||
296 | + | ||
297 | + | func aS () = throw("Only admin can call this function") | |
298 | + | ||
299 | + | ||
300 | + | func aT () = throw(((("Incorrect assets attached. Expected: " + y) + " and ") + z)) | |
301 | + | ||
302 | + | ||
303 | + | func aU (aV,aW,aX) = throw(((((((((("New balance in assets of the DApp is less than threshold " + toString(aV)) + ": ") + toString(aW)) + " ") + C) + ", ") + toString(aX)) + " ") + G)) | |
304 | + | ||
305 | + | ||
306 | + | func aY (aO,aZ,ba) = throw((((((((("Insufficient DApp balance to pay " + toString(aO)) + " ") + ba) + " due to staking. Available: ") + toString(aZ)) + " ") + ba) + ". Please contact support in Telegram: https://t.me/swopfisupport")) | |
307 | + | ||
308 | + | ||
309 | + | func bb (aW,aX) = throw((((((((((((((((("Insufficient DApp balance to pay " + toString(aW)) + " ") + C) + " and ") + toString(aX)) + " ") + G) + " due to staking. Available: ") + toString(ai)) + " ") + C) + " and ") + toString(aj)) + " ") + G) + ". Please contact support in Telegram: https://t.me/swopfisupport")) | |
310 | + | ||
311 | + | ||
312 | + | func bc () = aL(((((((((((((((("Suspicious state. Actual balances: " + toString(H)) + " ") + C) + ", ") + toString(I)) + " ") + G) + ". State: ") + toString(ad(A))) + " ") + C) + ", ") + toString(ad(B))) + " ") + G)) | |
313 | + | ||
314 | + | ||
315 | + | @Callable(bd) | |
316 | + | func init () = { | |
317 | + | let be = $Tuple2(bd.payments[0].amount, bd.payments[0].assetId) | |
318 | + | let bf = be._1 | |
319 | + | let bg = be._2 | |
320 | + | let bh = $Tuple2(bd.payments[1].amount, bd.payments[1].assetId) | |
321 | + | let bi = bh._1 | |
322 | + | let bj = bh._2 | |
323 | + | let bk = aI(bg) | |
324 | + | let bl = bk._1 | |
325 | + | let bm = bk._2 | |
326 | + | let bn = bk._3 | |
327 | + | let bo = aI(bj) | |
328 | + | let bp = bo._1 | |
329 | + | let bq = bo._2 | |
330 | + | let br = bo._3 | |
331 | + | if (isDefined(getBoolean(this, c))) | |
332 | + | then aQ() | |
333 | + | else if ((bg == bj)) | |
334 | + | then throw("Assets must be different") | |
335 | + | else { | |
336 | + | let bs = ((("s" + take(bm, 7)) + "_") + take(bq, 7)) | |
337 | + | let bt = ((((("ShareToken of SwopFi protocol for " + bm) + " and ") + bq) + " at address ") + toString(this)) | |
338 | + | let bu = ((bn + br) / 2) | |
339 | + | let bv = fraction(pow(bf, bn, 5, 1, bn, HALFDOWN), pow(bi, br, 5, 1, br, HALFDOWN), pow(10, 0, bu, 0, 0, HALFDOWN)) | |
340 | + | let bw = Issue(bs, bt, bv, bu, true) | |
341 | + | let bx = calculateAssetId(bw) | |
342 | + | let by = aq(bf, bi) | |
343 | + | [StringEntry(b, a), BooleanEntry(c, true), StringEntry(d, bl), StringEntry(e, bp), IntegerEntry(f, bf), IntegerEntry(g, bi), IntegerEntry(m, by), IntegerEntry(j, M), IntegerEntry(k, O), bw, StringEntry(h, toBase58String(bx)), IntegerEntry(i, bv), ScriptTransfer(bd.caller, bv, bx)] | |
344 | + | } | |
345 | + | } | |
346 | + | ||
347 | + | ||
348 | + | ||
349 | + | @Callable(bd) | |
350 | + | func replenishWithTwoTokens (bz) = { | |
351 | + | let bg = bd.payments[0].assetId | |
352 | + | let bj = bd.payments[1].assetId | |
353 | + | let bf = aN(bd.payments[0].amount, bg) | |
354 | + | let bi = aN(bd.payments[1].amount, bj) | |
355 | + | let bA = fraction(fraction(H, Q, bf), P, fraction(I, Q, bi)) | |
356 | + | let bB = fraction(bf, Q, H) | |
357 | + | let bC = fraction(bi, Q, I) | |
358 | + | let bD = fraction(min([bB, bC]), K, Q) | |
359 | + | let by = aq((H + bf), (I + bi)) | |
360 | + | if (!(x)) | |
361 | + | then aR() | |
362 | + | else if (if ((0 > bz)) | |
363 | + | then true | |
364 | + | else (bz > S)) | |
365 | + | then throw(((("Slippage tolerance must be between 0 and " + toString(S)) + " inclusively. Actual: ") + toString(bz))) | |
366 | + | else if ((size(bd.payments) != 2)) | |
367 | + | then throw("Two attached assets expected") | |
368 | + | else if (if ((bg != A)) | |
369 | + | then true | |
370 | + | else (bj != B)) | |
371 | + | then aT() | |
372 | + | else if (if ((((P * (S - bz)) / S) > bA)) | |
373 | + | then true | |
374 | + | else (bA > ((P * (S + bz)) / S))) | |
375 | + | then throw("Incorrect assets amount: amounts must have the contract ratio") | |
376 | + | else if ((bD == 0)) | |
377 | + | then throw("Too small amount to replenish") | |
378 | + | else if (!(am)) | |
379 | + | then bc() | |
380 | + | else [IntegerEntry(f, (H + bf)), IntegerEntry(g, (I + bi)), IntegerEntry(i, (K + bD)), IntegerEntry(m, by), Reissue(J, bD, true), ScriptTransfer(bd.caller, bD, J)] | |
381 | + | } | |
382 | + | ||
383 | + | ||
384 | + | ||
385 | + | @Callable(bd) | |
386 | + | func replenishWithOneToken (bE,bF) = { | |
387 | + | let bG = $Tuple2(bd.payments[0].amount, bd.payments[0].assetId) | |
388 | + | let bH = bG._1 | |
389 | + | let bI = bG._2 | |
390 | + | let bJ = 5000000 | |
391 | + | let bK = 50000000 | |
392 | + | let bL = if ((bK > bH)) | |
393 | + | then 100000 | |
394 | + | else 1 | |
395 | + | let bM = (Q - ((Q * bL) / 10000000)) | |
396 | + | let bN = (Q + ((Q * bL) / 10000000)) | |
397 | + | let bO = (Q - ((Q * 1) / 10000000)) | |
398 | + | let bP = (Q + ((Q * 1) / 10000000)) | |
399 | + | if (!(x)) | |
400 | + | then aR() | |
401 | + | else if ((bJ > bH)) | |
402 | + | then throw((((("Payment amount " + toString(bH)) + " does not exceed the minimum amount of ") + toString(bJ)) + " tokens")) | |
403 | + | else if ((size(bd.payments) != 1)) | |
404 | + | then throw("One attached payment expected") | |
405 | + | else if (!(am)) | |
406 | + | then bc() | |
407 | + | else if ((bI == A)) | |
408 | + | then { | |
409 | + | let bQ = (bH - bE) | |
410 | + | let bR = bF | |
411 | + | let bS = (H + bE) | |
412 | + | let bT = (I - bF) | |
413 | + | let aF = aq(bS, bT) | |
414 | + | let aG = fraction(L, Q, aF) | |
415 | + | if (if ((aG > bO)) | |
416 | + | then ((aF - L) >= 0) | |
417 | + | else false) | |
418 | + | then { | |
419 | + | let bU = (fraction(bS, (Q * Q), bT) / fraction(bQ, Q, bR)) | |
420 | + | if (true) | |
421 | + | then throw(toString(bU)) | |
422 | + | else if (if ((bM > bU)) | |
423 | + | then true | |
424 | + | else (bU > bN)) | |
425 | + | then throw("swop with virtualSwapTokenPay and virtualSwapTokenGet possible, but ratio after virtual swap incorrect") | |
426 | + | else { | |
427 | + | let bB = fraction(aN(bQ, A), Q, bS) | |
428 | + | let bC = fraction(aN(bR, B), Q, bT) | |
429 | + | let bD = fraction(min([bB, bC]), K, Q) | |
430 | + | let by = aq((H + bH), I) | |
431 | + | let bV = (H + bH) | |
432 | + | let bW = I | |
433 | + | let bX = fraction((bV + bW), V, (2 * W)) | |
434 | + | if (if ((bX > bV)) | |
435 | + | then true | |
436 | + | else (bX > bW)) | |
437 | + | then aU(bX, bV, bW) | |
438 | + | else [Reissue(J, bD, true), ScriptTransfer(bd.caller, bD, J), IntegerEntry(i, (K + bD)), IntegerEntry(f, bV), IntegerEntry(m, by)] | |
439 | + | } | |
440 | + | } | |
441 | + | else throw("incorrect virtualSwapTokenPay or virtualSwapTokenGet value") | |
442 | + | } | |
443 | + | else if ((bI == B)) | |
444 | + | then { | |
445 | + | let bR = (bH - bE) | |
446 | + | let bQ = bF | |
447 | + | let bS = (H - bF) | |
448 | + | let bT = (I + bE) | |
449 | + | let aF = aq(bS, bT) | |
450 | + | let aG = fraction(L, Q, aF) | |
451 | + | if (if ((aG > bO)) | |
452 | + | then ((aF - L) >= 0) | |
453 | + | else false) | |
454 | + | then { | |
455 | + | let bU = (fraction(bS, (Q * Q), bT) / fraction(bQ, Q, bR)) | |
456 | + | if (if ((bM > bU)) | |
457 | + | then true | |
458 | + | else (bU > bN)) | |
459 | + | then throw("swop with virtualSwapTokenPay and virtualSwapTokenGet possible, but ratio after virtual swap incorrect") | |
460 | + | else { | |
461 | + | let bB = fraction(aN(bQ, A), Q, bS) | |
462 | + | let bC = fraction(aN(bR, B), Q, bT) | |
463 | + | let bD = fraction(min([bB, bC]), K, Q) | |
464 | + | let by = aq(H, (I + bH)) | |
465 | + | let bV = H | |
466 | + | let bW = (I + bH) | |
467 | + | let bX = fraction((bV + bW), V, (2 * W)) | |
468 | + | if (if ((bX > bV)) | |
469 | + | then true | |
470 | + | else (bX > bW)) | |
471 | + | then aU(bX, bV, bW) | |
472 | + | else [Reissue(J, bD, true), ScriptTransfer(bd.caller, bD, J), IntegerEntry(i, (K + bD)), IntegerEntry(g, bW), IntegerEntry(m, by)] | |
473 | + | } | |
474 | + | } | |
475 | + | else throw("incorrect virtualSwapTokenPay or virtualSwapTokenGet value") | |
476 | + | } | |
477 | + | else aT() | |
478 | + | } | |
479 | + | ||
480 | + | ||
481 | + | ||
482 | + | @Callable(bd) | |
483 | + | func withdraw () = { | |
484 | + | let bY = $Tuple2(bd.payments[0].amount, bd.payments[0].assetId) | |
485 | + | let bH = bY._1 | |
486 | + | let bI = bY._2 | |
487 | + | let bZ = aN(fraction(bH, H, K), A) | |
488 | + | let ca = aN(fraction(bH, I, K), B) | |
489 | + | let by = aq((H - bZ), (I - ca)) | |
490 | + | if (!(x)) | |
491 | + | then aR() | |
492 | + | else if ((size(bd.payments) != 1)) | |
493 | + | then throw("One attached payment expected") | |
494 | + | else if ((bI != J)) | |
495 | + | then throw(("Incorrect asset attached. Expected: " + toBase58String(J))) | |
496 | + | else if (!(am)) | |
497 | + | then bc() | |
498 | + | else if (if ((bZ > ai)) | |
499 | + | then true | |
500 | + | else (ca > aj)) | |
501 | + | then bb(bZ, ca) | |
502 | + | else [IntegerEntry(f, (H - bZ)), IntegerEntry(g, (I - ca)), IntegerEntry(i, (K - bH)), IntegerEntry(m, by), Burn(J, bH), ScriptTransfer(bd.caller, bZ, A), ScriptTransfer(bd.caller, ca, B)] | |
503 | + | } | |
504 | + | ||
505 | + | ||
506 | + | ||
507 | + | @Callable(bd) | |
508 | + | func exchange (cb,cc) = { | |
509 | + | let cd = $Tuple2(bd.payments[0].amount, bd.payments[0].assetId) | |
510 | + | let bH = cd._1 | |
511 | + | let bI = cd._2 | |
512 | + | if (!(x)) | |
513 | + | then aR() | |
514 | + | else if ((0 >= cb)) | |
515 | + | then throw(("Estimated amount must be positive. Actual: " + toString(cb))) | |
516 | + | else if ((cc > cb)) | |
517 | + | then throw(((("Minimal amount can't be greater than estimated. Estimated: " + toString(cb)) + ". Minimal: ") + toString(cc))) | |
518 | + | else if ((size(bd.payments) != 1)) | |
519 | + | then throw("One attached payment expected") | |
520 | + | else if (!(am)) | |
521 | + | then bc() | |
522 | + | else if ((bI == A)) | |
523 | + | then { | |
524 | + | let ce = B | |
525 | + | let cf = aH(cb, cc, H, I, bH) | |
526 | + | let cg = fraction(cf, (O - M), O) | |
527 | + | let ch = fraction(cf, N, O) | |
528 | + | let bV = (H + bH) | |
529 | + | let bW = ((I - cg) - ch) | |
530 | + | let bX = fraction((bV + bW), V, (2 * W)) | |
531 | + | if (if ((bX > bV)) | |
532 | + | then true | |
533 | + | else (bX > bW)) | |
534 | + | then aU(bX, bV, bW) | |
535 | + | else if (if (if ((A == v)) | |
536 | + | then (af >= bV) | |
537 | + | else false) | |
538 | + | then true | |
539 | + | else if ((B == v)) | |
540 | + | then (af >= bW) | |
541 | + | else false) | |
542 | + | then aY(cg, aj, G) | |
543 | + | else [IntegerEntry(f, bV), IntegerEntry(g, bW), IntegerEntry(m, aq((H + bH), ((I - cg) - ch))), ScriptTransfer(bd.caller, cg, ce), ScriptTransfer(t, ch, ce)] | |
544 | + | } | |
545 | + | else if ((bI == B)) | |
546 | + | then { | |
547 | + | let ce = A | |
548 | + | let cf = as(cb, cc, H, I, bH) | |
549 | + | let cg = fraction(cf, (O - M), O) | |
550 | + | let ch = fraction(cf, N, O) | |
551 | + | let bV = ((H - cg) - ch) | |
552 | + | let bW = (I + bH) | |
553 | + | let bX = fraction((bV + bW), V, (2 * W)) | |
554 | + | if (if ((bX > bV)) | |
555 | + | then true | |
556 | + | else (bX > bW)) | |
557 | + | then aU(bX, bV, bW) | |
558 | + | else if (if (if ((A == v)) | |
559 | + | then (af >= bV) | |
560 | + | else false) | |
561 | + | then true | |
562 | + | else if ((B == v)) | |
563 | + | then (af >= bW) | |
564 | + | else false) | |
565 | + | then aY(cg, ai, C) | |
566 | + | else [IntegerEntry(f, bV), IntegerEntry(g, bW), IntegerEntry(m, aq(((H - cg) - ch), (I + bH))), ScriptTransfer(bd.caller, cg, ce), ScriptTransfer(t, ch, ce)] | |
567 | + | } | |
568 | + | else aT() | |
569 | + | } | |
570 | + | ||
571 | + | ||
572 | + | ||
573 | + | @Callable(bd) | |
574 | + | func takeIntoAccountExtraFunds (ci) = { | |
575 | + | let cj = (ak - H) | |
576 | + | let ck = (al - I) | |
577 | + | let cl = (cj - (if ((A == v)) | |
578 | + | then ci | |
579 | + | else 0)) | |
580 | + | let cm = (ck - (if ((B == v)) | |
581 | + | then ci | |
582 | + | else 0)) | |
583 | + | if (!(x)) | |
584 | + | then aR() | |
585 | + | else if (!(containsElement([o, p, q, s], bd.callerPublicKey))) | |
586 | + | then aS() | |
587 | + | else if ((0 > ci)) | |
588 | + | then throw(("Argument 'amountLeave' cannot be negative. Actual: " + toString(ci))) | |
589 | + | else if (if ((0 > cj)) | |
590 | + | then true | |
591 | + | else (0 > ck)) | |
592 | + | then aL("Enroll amount negative") | |
593 | + | else if (if ((0 > cl)) | |
594 | + | then true | |
595 | + | else (0 > cm)) | |
596 | + | then throw("Too large amountLeave") | |
597 | + | else [IntegerEntry(f, (H + cl)), IntegerEntry(g, (I + cm))] | |
598 | + | } | |
599 | + | ||
600 | + | ||
601 | + | @Verifier(cn) | |
602 | + | func co () = { | |
603 | + | let D = cn | |
604 | + | if ($isInstanceOf(D, "InvokeScriptTransaction")) | |
605 | + | then { | |
606 | + | let cp = D | |
607 | + | if (sigVerify(cp.bodyBytes, cp.proofs[0], s)) | |
608 | + | then (cp.dApp == u) | |
609 | + | else false | |
610 | + | } | |
611 | + | else { | |
612 | + | let cq = if (sigVerify(cn.bodyBytes, cn.proofs[0], o)) | |
613 | + | then 1 | |
614 | + | else 0 | |
615 | + | let cr = if (sigVerify(cn.bodyBytes, cn.proofs[1], p)) | |
616 | + | then 1 | |
617 | + | else 0 | |
618 | + | let cs = if (sigVerify(cn.bodyBytes, cn.proofs[2], q)) | |
619 | + | then 1 | |
620 | + | else 0 | |
621 | + | (((cq + cr) + cs) >= 2) | |
622 | + | } | |
623 | + | } | |
624 | + |
github/deemru/w8io/026f985 42.50 ms ◑