tx · DQwoQdAjHDhhiD7S1vW8Jg5vBr9tEH4dgB6gJCgJxc2M

3NCWFHDzdPHZC6636ZkMLNDup9mjpbTLs7h:  -0.02700000 Waves

2024.10.21 16:05 [3336644] smart account 3NCWFHDzdPHZC6636ZkMLNDup9mjpbTLs7h > SELF 0.00000000 Waves

{ "type": 13, "id": "DQwoQdAjHDhhiD7S1vW8Jg5vBr9tEH4dgB6gJCgJxc2M", "fee": 2700000, "feeAssetId": null, "timestamp": 1729515939311, "version": 1, "sender": "3NCWFHDzdPHZC6636ZkMLNDup9mjpbTLs7h", "senderPublicKey": "3z8Q6Zu3KppVmn6fJJvrLc1Wo3krVHSvfaNcerm82md2", "proofs": [ "3mYkYccRCr1YWWjZYTTGeUehcdjcMUondVkXPyr5kRAzfWUBYQXut4KUgZAWr4vPF9MBzAxesJJFgapX6ot8pQGx" ], "script": "base64:BgJQCAISAwoBARIAEgMKAQQSAwoBBBIDCgEIEgQKAggIEgMKAQgSBAoCCAgSAwoBCBIECgIIARIECgIIARIDCgEBEgASAwoBCBIDCgEBEgMKAQhOAAxjb250cmFjdEZpbGUCEWwybXBfbGVhc2luZy5yaWRlAANTRVACAl9fABJCTE9DS1NfSU5fSU5URVJWQUwA6AcABnNjYWxlOACAwtcvAQh0aHJvd0VycgEDbXNnCQACAQkArAICCQCsAgIFDGNvbnRyYWN0RmlsZQICOiAFA21zZwAMa2V5TDJBc3NldElkCQC5CQIJAMwIAgICJXMJAMwIAgIHYXNzZXRJZAUDbmlsBQNTRVAADGtleUZvcmNlU3RvcAkAuQkCCQDMCAICAiVzCQDMCAICCWZvcmNlU3RvcAUDbmlsBQNTRVAAD2tleUZvcmNlT3V0U3RvcAkAuQkCCQDMCAICAiVzCQDMCAICDGZvcmNlT3V0U3RvcAUDbmlsBQNTRVAAD2tleVVuaXRzQXNzZXRJZAkAuQkCCQDMCAICAiVzCQDMCAICDHVuaXRzQXNzZXRJZAUDbmlsBQNTRVAAFmtleVVuaXRzUGVyQmxvY2tTY2FsZTgJALkJAgkAzAgCAgIlcwkAzAgCAg11bml0c1BlckJsb2NrBQNuaWwFA1NFUAARa2V5UGVyaW9kT2Zmc2V0SWQJALkJAgkAzAgCAgIlcwkAzAgCAghvZmZzZXRJZAUDbmlsBQNTRVAAFWtleVBlcmlvZE9mZnNldEhlaWdodAkAuQkCCQDMCAICAiVzCQDMCAICDG9mZnNldEhlaWdodAUDbmlsBQNTRVAAD2tleVBlcmlvZExlbmd0aAkAuQkCCQDMCAICAiVzCQDMCAICDHBlcmlvZExlbmd0aAUDbmlsBQNTRVAAGGtleVVuaXRzQ2xhaW1TdGFydEhlaWdodAkAuQkCCQDMCAICAiVzCQDMCAICFXVuaXRzQ2xhaW1TdGFydEhlaWdodAUDbmlsBQNTRVAAFWtleVVuaXRzQ2xhaW1JbnRlcnZhbAkAuQkCCQDMCAICAiVzCQDMCAICEnVuaXRzQ2xhaW1JbnRlcnZhbAUDbmlsBQNTRVAADnBlcmlvZE9mZnNldElkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFEWtleVBlcmlvZE9mZnNldElkAAAADHBlcmlvZExlbmd0aAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQ9rZXlQZXJpb2RMZW5ndGgAkE4AEnBlcmlvZE9mZnNldEhlaWdodAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRVrZXlQZXJpb2RPZmZzZXRIZWlnaHQA////////////AQAPY3VycmVudFBlcmlvZElkAwMJAGYCBQZoZWlnaHQFEnBlcmlvZE9mZnNldEhlaWdodAkBAiE9AgUScGVyaW9kT2Zmc2V0SGVpZ2h0AP///////////wEHCQBkAgkAaQIJAGUCBQZoZWlnaHQFEnBlcmlvZE9mZnNldEhlaWdodAUMcGVyaW9kTGVuZ3RoBQ5wZXJpb2RPZmZzZXRJZAkAlgMBCQDMCAIAAAkAzAgCCQBlAgUOcGVyaW9kT2Zmc2V0SWQAAQUDbmlsABNjdXJyZW50UGVyaW9kSGVpZ2h0AwMJAAACBRJwZXJpb2RPZmZzZXRIZWlnaHQA////////////AQYDCQAAAgUPY3VycmVudFBlcmlvZElkAAAJAGYCBRJwZXJpb2RPZmZzZXRIZWlnaHQFBmhlaWdodAcAAAkAZAIFEnBlcmlvZE9mZnNldEhlaWdodAkAaAIJAGUCBQ9jdXJyZW50UGVyaW9kSWQFDnBlcmlvZE9mZnNldElkBQxwZXJpb2RMZW5ndGgAEG5leHRQZXJpb2RIZWlnaHQDAwkAAAIFEnBlcmlvZE9mZnNldEhlaWdodAD///////////8BBgMJAAACBQ9jdXJyZW50UGVyaW9kSWQAAAkAZgIFEnBlcmlvZE9mZnNldEhlaWdodAUGaGVpZ2h0BwAACQBkAgUTY3VycmVudFBlcmlvZEhlaWdodAUMcGVyaW9kTGVuZ3RoABV1bml0c0NsYWltU3RhcnRIZWlnaHQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUYa2V5VW5pdHNDbGFpbVN0YXJ0SGVpZ2h0BQZoZWlnaHQAEnVuaXRzQ2xhaW1JbnRlcnZhbAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRVrZXlVbml0c0NsYWltSW50ZXJ2YWwAAAESa2V5TGVhc2luZ05vZGVEYXRhAQtub2RlQWRkcmVzcwkAuQkCCQDMCAICAiVzCQDMCAIFC25vZGVBZGRyZXNzBQNuaWwFA1NFUAEWa2V5VXNlckxlYXNpbmdOb2RlRGF0YQILdXNlckFkZHJlc3MLbm9kZUFkZHJlc3MJALkJAgkAzAgCAgQlcyVzCQDMCAIFC25vZGVBZGRyZXNzCQDMCAIFC3VzZXJBZGRyZXNzBQNuaWwFA1NFUAEOa2V5VXNlclRvQ2xhaW0BC3VzZXJBZGRyZXNzCQC5CQIJAMwIAgIEJXMlcwkAzAgCAgd0b0NsYWltCQDMCAIFC3VzZXJBZGRyZXNzBQNuaWwFA1NFUAESa2V5VXNlclRvdGFsTG9ja2VkAQt1c2VyQWRkcmVzcwkAuQkCCQDMCAICBCVzJXMJAMwIAgIPdXNlclRvdGFsTG9ja2VkCQDMCAIFC3VzZXJBZGRyZXNzBQNuaWwFA1NFUAEUa2V5VW5pdHNDbGFpbWVkQmxvY2sBC3VzZXJBZGRyZXNzCQC5CQIJAMwIAgIEJXMlcwkAzAgCAhF1bml0c0NsYWltZWRCbG9jawkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsBQNTRVABEGtleVVubG9ja2VkVW5pdHMBC3VzZXJBZGRyZXNzCQC5CQIJAMwIAgIEJXMlcwkAzAgCAg11bmxvY2tlZFVuaXRzCQDMCAIFC3VzZXJBZGRyZXNzBQNuaWwFA1NFUAEUa2V5VG90YWxVbml0c0NsYWltZWQBC3VzZXJBZGRyZXNzCQC5CQIJAMwIAgIEJXMlcwkAzAgCAhF0b3RhbFVuaXRzQ2xhaW1lZAkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsBQNTRVABC2tleUwyVG9CdXJuAQt1c2VyQWRkcmVzcwkAuQkCCQDMCAICBCVzJXMJAMwIAgIIbDJUb0J1cm4JAMwIAgULdXNlckFkZHJlc3MFA25pbAUDU0VQARBrZXlMMkJ1cm5lZFRvdGFsAQt1c2VyQWRkcmVzcwkAuQkCCQDMCAICBCVzJXMJAMwIAgINbDJCdXJuZWRUb3RhbAkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsBQNTRVABFmtleU5vZGVMZWFzaW5nQnlIZWlnaHQBC25vZGVBZGRyZXNzBAFoAwkAAAIFEnBlcmlvZE9mZnNldEhlaWdodAD///////////8BAAAFBmhlaWdodAkAuQkCCQDMCAICBCVzJWQJAMwIAgULbm9kZUFkZHJlc3MJAMwIAgkApAMBBQFoBQNuaWwFA1NFUAEWa2V5VXNlckxlYXNpbmdCeUhlaWdodAILbm9kZUFkZHJlc3MLdXNlckFkZHJlc3MEAWgDCQAAAgUScGVyaW9kT2Zmc2V0SGVpZ2h0AP///////////wEAAAUGaGVpZ2h0CQC5CQIJAMwIAgIGJXMlcyVkCQDMCAIFC25vZGVBZGRyZXNzCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIJAKQDAQUBaAUDbmlsBQNTRVABEmFzc2V0U3RyaW5nVG9CeXRlcwENYXNzZXRJZFN0cmluZwMJAAACBQ1hc3NldElkU3RyaW5nAgVXQVZFUwUEdW5pdAkA2QQBBQ1hc3NldElkU3RyaW5nARJhc3NldEJ5dGVzVG9TdHJpbmcBB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYQUHJG1hdGNoMAkA2AQBBQFhAgVXQVZFUwAPbDJBc3NldElkU3RyaW5nCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFDGtleUwyQXNzZXRJZAIFV0FWRVMAEnVuaXRzQXNzZXRJZFN0cmluZwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQ9rZXlVbml0c0Fzc2V0SWQCBVdBVkVTAA5sMkFzc2V0SWRCeXRlcwkBEmFzc2V0U3RyaW5nVG9CeXRlcwEFD2wyQXNzZXRJZFN0cmluZwARdW5pdHNBc3NldElkQnl0ZXMJARJhc3NldFN0cmluZ1RvQnl0ZXMBBRJ1bml0c0Fzc2V0SWRTdHJpbmcAC2lzRm9yY2VTdG9wCQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFDGtleUZvcmNlU3RvcAcADmlzRm9yY2VPdXRTdG9wCQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFD2tleUZvcmNlT3V0U3RvcAcBDmlzVmFsaWRBZGRyZXNzAQdhZGRyZXNzBAckbWF0Y2gwCQCmCAEFB2FkZHJlc3MDCQABAgUHJG1hdGNoMAIHQWRkcmVzcwQBYQUHJG1hdGNoMAYHAA9BRE1JTl9MSVNUX1NJWkUABQAGUVVPUlVNAAMAEVRYSURfQllURVNfTEVOR1RIACABGGtleUFsbG93ZWRUeElkVm90ZVByZWZpeAEEdHhJZAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAglhbGxvd1R4SWQJAMwIAgUEdHhJZAUDbmlsBQNTRVABEGtleUZ1bGxBZG1pblZvdGUCBnByZWZpeAxhZG1pbkFkZHJlc3MJALkJAgkAzAgCBQZwcmVmaXgJAMwIAgUMYWRtaW5BZGRyZXNzBQNuaWwFA1NFUAETa2V5QWRtaW5BZGRyZXNzTGlzdAAJALkJAgkAzAgCAgIlcwkAzAgCAhBhZG1pbkFkZHJlc3NMaXN0BQNuaWwFA1NFUAEOa2V5QWxsb3dlZFR4SWQACQC5CQIJAMwIAgICJXMJAMwIAgIEdHhJZAUDbmlsBQNTRVABDGdldEFkbWluVm90ZQIGcHJlZml4BWFkbWluBAd2b3RlS2V5CQEQa2V5RnVsbEFkbWluVm90ZQIFBnByZWZpeAUFYWRtaW4JAQt2YWx1ZU9yRWxzZQIJAJ8IAQUHdm90ZUtleQAAAQ1nZXRBZG1pbnNMaXN0AAQHJG1hdGNoMAkAnQgCBQR0aGlzCQETa2V5QWRtaW5BZGRyZXNzTGlzdAADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQC1CQIFAXMFA1NFUAUDbmlsAQ1pc0luQWRtaW5MaXN0AQdhZGRyZXNzCQEPY29udGFpbnNFbGVtZW50AgkBDWdldEFkbWluc0xpc3QABQdhZGRyZXNzARJnZW5Wb3Rlc0tleXNIZWxwZXICAWEMYWRtaW5BZGRyZXNzBAskdDA1MTQ3NTE3MQUBYQQGcmVzdWx0CAULJHQwNTE0NzUxNzECXzEEBnByZWZpeAgFCyR0MDUxNDc1MTcxAl8yCQCUCgIJAM0IAgUGcmVzdWx0CQEQa2V5RnVsbEFkbWluVm90ZQIFBnByZWZpeAUMYWRtaW5BZGRyZXNzBQZwcmVmaXgBDGdlblZvdGVzS2V5cwEJa2V5UHJlZml4BAlhZG1pbkxpc3QJARNrZXlBZG1pbkFkZHJlc3NMaXN0AAQLJHQwNTMxODU0MDIKAAIkbAkBDWdldEFkbWluc0xpc3QACgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCBQNuaWwFCWtleVByZWZpeAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQESZ2VuVm90ZXNLZXlzSGVscGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA1CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQQGcmVzdWx0CAULJHQwNTMxODU0MDICXzEEBnByZWZpeAgFCyR0MDUzMTg1NDAyAl8yBQZyZXN1bHQBEGNvdW50Vm90ZXNIZWxwZXICBnJlc3VsdAd2b3RlS2V5CQBkAgUGcmVzdWx0CQELdmFsdWVPckVsc2UCCQCfCAEFB3ZvdGVLZXkAAAEKY291bnRWb3RlcwEGcHJlZml4BAV2b3RlcwkBDGdlblZvdGVzS2V5cwEFBnByZWZpeAoAAiRsBQV2b3RlcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEQY291bnRWb3Rlc0hlbHBlcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgNQkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUBEGNsZWFyVm90ZXNIZWxwZXICBnJlc3VsdANrZXkJAM0IAgUGcmVzdWx0CQELRGVsZXRlRW50cnkBBQNrZXkBE2dldENsZWFyVm90ZUVudHJpZXMBBnByZWZpeAQFdm90ZXMJAQxnZW5Wb3Rlc0tleXMBBQZwcmVmaXgKAAIkbAUFdm90ZXMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBEGNsZWFyVm90ZXNIZWxwZXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDUJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAQx2b3RlSU5URVJOQUwEE2NhbGxlckFkZHJlc3NTdHJpbmcJa2V5UHJlZml4CG1pblZvdGVzCnZvdGVSZXN1bHQEB3ZvdGVLZXkJARBrZXlGdWxsQWRtaW5Wb3RlAgUJa2V5UHJlZml4BRNjYWxsZXJBZGRyZXNzU3RyaW5nBBBhZG1pbkN1cnJlbnRWb3RlCQEMZ2V0QWRtaW5Wb3RlAgUJa2V5UHJlZml4BRNjYWxsZXJBZGRyZXNzU3RyaW5nBANlcnIDCQEBIQEJAQ1pc0luQWRtaW5MaXN0AQUTY2FsbGVyQWRkcmVzc1N0cmluZwkBCHRocm93RXJyAQkArAICCQCsAgICCUFkZHJlc3M6IAUTY2FsbGVyQWRkcmVzc1N0cmluZwISIG5vdCBpbiBBZG1pbiBsaXN0AwkAAAIFEGFkbWluQ3VycmVudFZvdGUAAQkBCHRocm93RXJyAQkArAICBQd2b3RlS2V5AhIgeW91IGFscmVhZHkgdm90ZWQFBHVuaXQDCQAAAgUDZXJyBQNlcnIEBXZvdGVzCQEKY291bnRWb3RlcwEFCWtleVByZWZpeAMJAGcCCQBkAgUFdm90ZXMAAQUIbWluVm90ZXMEEGNsZWFyVm90ZUVudHJpZXMJARNnZXRDbGVhclZvdGVFbnRyaWVzAQUJa2V5UHJlZml4CQDOCAIFEGNsZWFyVm90ZUVudHJpZXMFCnZvdGVSZXN1bHQJAMwIAgkBDEludGVnZXJFbnRyeQIFB3ZvdGVLZXkAAQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuARNnZXRMZWFzaW5nTm9kZUVudHJ5Awtub2RlQWRkcmVzcw1jdXJyZW50TGVhc2VkCm5leHRMZWFzZWQEC3ZhbHVlU3RyaW5nCQC5CQIJAMwIAgIIJWQlZCVkJWQJAMwIAgkApAMBBRNjdXJyZW50UGVyaW9kSGVpZ2h0CQDMCAIJAKQDAQUNY3VycmVudExlYXNlZAkAzAgCCQCkAwEFEG5leHRQZXJpb2RIZWlnaHQJAMwIAgkApAMBBQpuZXh0TGVhc2VkBQNuaWwFA1NFUAkBC1N0cmluZ0VudHJ5AgkBEmtleUxlYXNpbmdOb2RlRGF0YQEFC25vZGVBZGRyZXNzBQt2YWx1ZVN0cmluZwESZ2V0TGVhc2luZ05vZGVEYXRhAQtub2RlQWRkcmVzcwQYbGVhc2luZ05vZGVEYXRhU3RyaW5nUmF3CQCdCAIFBHRoaXMJARJrZXlMZWFzaW5nTm9kZURhdGEBBQtub2RlQWRkcmVzcwQHJG1hdGNoMAUYbGVhc2luZ05vZGVEYXRhU3RyaW5nUmF3AwkAAQIFByRtYXRjaDACBlN0cmluZwQCZHMFByRtYXRjaDAECGRhdGFMaXN0CQC1CQIFAmRzBQNTRVAEEW5vZGVDdXJyZW50UGVyaW9kCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZGF0YUxpc3QAAQQRbm9kZUN1cnJlbnRMZWFzZWQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhkYXRhTGlzdAACBA5ub2RlTmV4dFBlcmlvZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCGRhdGFMaXN0AAMEDm5vZGVOZXh0TGVhc2VkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZGF0YUxpc3QABAMDCQBmAgUObm9kZU5leHRQZXJpb2QFBmhlaWdodAYJAAACBRJwZXJpb2RPZmZzZXRIZWlnaHQA////////////AQkAlAoCBRFub2RlQ3VycmVudExlYXNlZAUObm9kZU5leHRMZWFzZWQJAJQKAgUObm9kZU5leHRMZWFzZWQFDm5vZGVOZXh0TGVhc2VkCQCUCgIAAAAAARNnZXRVc2VyTGVhc2luZ0VudHJ5BAtub2RlQWRkcmVzcwt1c2VyQWRkcmVzcxF1c2VyQ3VycmVudExlYXNlZA51c2VyTmV4dExlYXNlZAQLdmFsdWVTdHJpbmcJALkJAgkAzAgCAgglZCVkJWQlZAkAzAgCCQCkAwEFE2N1cnJlbnRQZXJpb2RIZWlnaHQJAMwIAgkApAMBBRF1c2VyQ3VycmVudExlYXNlZAkAzAgCCQCkAwEFEG5leHRQZXJpb2RIZWlnaHQJAMwIAgkApAMBBQ51c2VyTmV4dExlYXNlZAUDbmlsBQNTRVAJAQtTdHJpbmdFbnRyeQIJARZrZXlVc2VyTGVhc2luZ05vZGVEYXRhAgULdXNlckFkZHJlc3MFC25vZGVBZGRyZXNzBQt2YWx1ZVN0cmluZwESZ2V0VXNlckxlYXNpbmdEYXRhAgtub2RlQWRkcmVzcwt1c2VyQWRkcmVzcwQYbGVhc2luZ1VzZXJEYXRhU3RyaW5nUmF3CQCdCAIFBHRoaXMJARZrZXlVc2VyTGVhc2luZ05vZGVEYXRhAgULdXNlckFkZHJlc3MFC25vZGVBZGRyZXNzBAckbWF0Y2gwBRhsZWFzaW5nVXNlckRhdGFTdHJpbmdSYXcDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAJkcwUHJG1hdGNoMAQIZGF0YUxpc3QJALUJAgUCZHMFA1NFUAQRdXNlckN1cnJlbnRQZXJpb2QJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhkYXRhTGlzdAABBBF1c2VyQ3VycmVudExlYXNlZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCGRhdGFMaXN0AAIEDnVzZXJOZXh0UGVyaW9kCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZGF0YUxpc3QAAwQOdXNlck5leHRMZWFzZWQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhkYXRhTGlzdAAEAwMJAGYCBQ51c2VyTmV4dFBlcmlvZAUGaGVpZ2h0BgkAAAIFEnBlcmlvZE9mZnNldEhlaWdodAD///////////8BCQCUCgIFEXVzZXJDdXJyZW50TGVhc2VkBQ51c2VyTmV4dExlYXNlZAkAlAoCBQ51c2VyTmV4dExlYXNlZAUOdXNlck5leHRMZWFzZWQJAJQKAgAAAAABE2dldFVzZXJUb0NsYWltRW50cnkDC3VzZXJBZGRyZXNzB3RvQ2xhaW0IdG9VbmxvY2sEC3ZhbHVlU3RyaW5nCQC5CQIJAMwIAgIIJWQlZCVkJWQJAMwIAgkApAMBBRNjdXJyZW50UGVyaW9kSGVpZ2h0CQDMCAIJAKQDAQUHdG9DbGFpbQkAzAgCCQCkAwEFEG5leHRQZXJpb2RIZWlnaHQJAMwIAgkApAMBBQh0b1VubG9jawUDbmlsBQNTRVAJAQtTdHJpbmdFbnRyeQIJAQ5rZXlVc2VyVG9DbGFpbQEFC3VzZXJBZGRyZXNzBQt2YWx1ZVN0cmluZwEVZ2V0VXNlclRvQ2xhaW1CYWxhbmNlAQt1c2VyQWRkcmVzcwQYdXNlclRvQ2xhaW1EYXRhU3RyaW5nUmF3CQCdCAIFBHRoaXMJAQ5rZXlVc2VyVG9DbGFpbQEFC3VzZXJBZGRyZXNzBAckbWF0Y2gwBRh1c2VyVG9DbGFpbURhdGFTdHJpbmdSYXcDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAJkcwUHJG1hdGNoMAQIZGF0YUxpc3QJALUJAgUCZHMFA1NFUAQNY3VycmVudFBlcmlvZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCGRhdGFMaXN0AAEEB3RvQ2xhaW0JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhkYXRhTGlzdAACBApuZXh0UGVyaW9kCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZGF0YUxpc3QAAwQIdG9VbmxvY2sJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhkYXRhTGlzdAAEAwMJAGYCBQpuZXh0UGVyaW9kBQZoZWlnaHQGCQAAAgUPY3VycmVudFBlcmlvZElkAAAJAJQKAgUHdG9DbGFpbQUIdG9VbmxvY2sJAJQKAgkAZAIFB3RvQ2xhaW0FCHRvVW5sb2NrAAAJAJQKAgAAAAABF2dldFVzZXJUb3RhbExvY2tlZEVudHJ5Agt1c2VyQWRkcmVzcw91c2VyVG90YWxMb2NrZWQJAQxJbnRlZ2VyRW50cnkCCQESa2V5VXNlclRvdGFsTG9ja2VkAQULdXNlckFkZHJlc3MFD3VzZXJUb3RhbExvY2tlZAESZ2V0VXNlclRvdGFsTG9ja2VkAQt1c2VyQWRkcmVzcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQESa2V5VXNlclRvdGFsTG9ja2VkAQULdXNlckFkZHJlc3MAAAEVY2FsY3VsYXRlVW5pdHNUb0NsYWltAQt1c2VyQWRkcmVzcwQPY2xhaW1lZEJsb2NrS2V5CQEUa2V5VW5pdHNDbGFpbWVkQmxvY2sBBQt1c2VyQWRkcmVzcwQMY2xhaW1lZEJsb2NrCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFD2NsYWltZWRCbG9ja0tleQUVdW5pdHNDbGFpbVN0YXJ0SGVpZ2h0BBN1bml0c1BlckJsb2NrU2NhbGU4CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFFmtleVVuaXRzUGVyQmxvY2tTY2FsZTgAAAQMY3VycmVudEJsb2NrCQCXAwEJAMwIAgkAZAIFFXVuaXRzQ2xhaW1TdGFydEhlaWdodAUSdW5pdHNDbGFpbUludGVydmFsCQDMCAIFBmhlaWdodAUDbmlsBAxibG9ja3NQYXNzZWQJAGUCBQxjdXJyZW50QmxvY2sFDGNsYWltZWRCbG9jawQMYW1vdW50U3Rha2VkCQESZ2V0VXNlclRvdGFsTG9ja2VkAQULdXNlckFkZHJlc3MECGwyVG9CdXJuCQBrAwUMYW1vdW50U3Rha2VkBQxibG9ja3NQYXNzZWQFEnVuaXRzQ2xhaW1JbnRlcnZhbAQPdW5pdHNUb0NsYWltTm93CQBrAwUIbDJUb0J1cm4FE3VuaXRzUGVyQmxvY2tTY2FsZTgJAGgCBQZzY2FsZTgFBnNjYWxlOAkAlQoDBQ91bml0c1RvQ2xhaW1Ob3cFCGwyVG9CdXJuBQxjbGFpbWVkQmxvY2sBFGdldFVubG9ja1VuaXRzQWN0aW9uAQt1c2VyQWRkcmVzcwQOa1VubG9ja2VkVW5pdHMJARBrZXlVbmxvY2tlZFVuaXRzAQULdXNlckFkZHJlc3MEDXVubG9ja2VkVW5pdHMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUOa1VubG9ja2VkVW5pdHMAAAQJa0wyVG9CdXJuCQELa2V5TDJUb0J1cm4BBQt1c2VyQWRkcmVzcwQIbDJUb0J1cm4JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUJa0wyVG9CdXJuAAAEDSR0MDExMzI5MTE0MTQJARVjYWxjdWxhdGVVbml0c1RvQ2xhaW0BBQt1c2VyQWRkcmVzcwQPdW5pdHNUb0NsYWltTm93CAUNJHQwMTEzMjkxMTQxNAJfMQQLbDJUb0J1cm5Ob3cIBQ0kdDAxMTMyOTExNDE0Al8yBAxjbGFpbWVkQmxvY2sIBQ0kdDAxMTMyOTExNDE0Al8zAwkAZwIAAAUPdW5pdHNUb0NsYWltTm93BQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIJARRrZXlVbml0c0NsYWltZWRCbG9jawEFC3VzZXJBZGRyZXNzBQxjbGFpbWVkQmxvY2sJAMwIAgkBDEludGVnZXJFbnRyeQIFCWtMMlRvQnVybgkAZAIFCGwyVG9CdXJuBQtsMlRvQnVybk5vdwkAzAgCCQEMSW50ZWdlckVudHJ5AgUOa1VubG9ja2VkVW5pdHMJAGQCBQ11bmxvY2tlZFVuaXRzBQ91bml0c1RvQ2xhaW1Ob3cFA25pbAERZ2V0VW5zdGFrZUFjdGlvbnMDC25vZGVBZGRyZXNzC3VzZXJBZGRyZXNzDXVuc3Rha2VBbW91bnQEDSR0MDExODA5MTE4ODIJARJnZXRMZWFzaW5nTm9kZURhdGEBBQtub2RlQWRkcmVzcwQRbm9kZUN1cnJlbnRMZWFzZWQIBQ0kdDAxMTgwOTExODgyAl8xBA5ub2RlTmV4dExlYXNlZAgFDSR0MDExODA5MTE4ODICXzIEDSR0MDExODg3MTE5NzMJARJnZXRVc2VyTGVhc2luZ0RhdGECBQtub2RlQWRkcmVzcwULdXNlckFkZHJlc3MEEXVzZXJDdXJyZW50TGVhc2VkCAUNJHQwMTE4ODcxMTk3MwJfMQQOdXNlck5leHRMZWFzZWQIBQ0kdDAxMTg4NzExOTczAl8yBAZjaGVja3MJAMwIAgMJAQEhAQULaXNGb3JjZVN0b3AGCQEIdGhyb3dFcnIBAh1jb250cmFjdCBpcyB0ZW1wb3Jhcnkgc3RvcHBlZAkAzAgCAwkBASEBBQ5pc0ZvcmNlT3V0U3RvcAYJAQh0aHJvd0VycgECHXVuc3Rha2UgaXMgdGVtcG9yYXJ5IGRpc2FibGVkCQDMCAIDCQBmAgUNdW5zdGFrZUFtb3VudAAABgkBCHRocm93RXJyAQIndW5zdGFrZSBhbW91bnQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAwCQDMCAIDCQBnAgUOdXNlck5leHRMZWFzZWQFDXVuc3Rha2VBbW91bnQGCQEIdGhyb3dFcnIBAjl1bnN0YWtlIGFtb3VudCBzaG91bGQgYmUgbGVzcyBvciBlcXVhbCB1c2VyIHN0YWtlZCBhbW91bnQJAMwIAgMJAGcCBQ5ub2RlTmV4dExlYXNlZAUNdW5zdGFrZUFtb3VudAYJAQh0aHJvd0VycgECOXVuc3Rha2UgYW1vdW50IHNob3VsZCBiZSBsZXNzIG9yIGVxdWFsIG5vZGUgc3Rha2VkIGFtb3VudAkAzAgCAwkBDmlzVmFsaWRBZGRyZXNzAQULbm9kZUFkZHJlc3MGCQEIdGhyb3dFcnIBCQC5CQIJAMwIAgIabm9kZSBhZGRyZXNzIGlzIG5vdCB2YWxpZDoJAMwIAgULbm9kZUFkZHJlc3MFA25pbAIBIAkAzAgCAwkBDmlzVmFsaWRBZGRyZXNzAQULdXNlckFkZHJlc3MGCQEIdGhyb3dFcnIBCQC5CQIJAMwIAgIadXNlciBhZGRyZXNzIGlzIG5vdCB2YWxpZDoJAMwIAgULdXNlckFkZHJlc3MFA25pbAIBIAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBBBuZXdOb2RlTmV4dExlYXNlCQBlAgUObm9kZU5leHRMZWFzZWQFDXVuc3Rha2VBbW91bnQEEW5ld1VzZXJOZXh0TGVhc2VkCQBlAgUOdXNlck5leHRMZWFzZWQFDXVuc3Rha2VBbW91bnQEDSR0MDEyODU3MTI5MTcJARVnZXRVc2VyVG9DbGFpbUJhbGFuY2UBBQt1c2VyQWRkcmVzcwQHdG9DbGFpbQgFDSR0MDEyODU3MTI5MTcCXzEECHRvVW5sb2NrCAUNJHQwMTI4NTcxMjkxNwJfMgQLbmV3VG9VbmxvY2sJAGQCBQh0b1VubG9jawUNdW5zdGFrZUFtb3VudAQPdXNlclRvdGFsTG9ja2VkCQESZ2V0VXNlclRvdGFsTG9ja2VkAQULdXNlckFkZHJlc3MEEm5ld1VzZXJUb3RhbExvY2tlZAkAZQIFD3VzZXJUb3RhbExvY2tlZAUNdW5zdGFrZUFtb3VudAQUdW5pdHNVbmxvY2tlZEFjdGlvbnMJARRnZXRVbmxvY2tVbml0c0FjdGlvbgEFC3VzZXJBZGRyZXNzCQDOCAIJAMwIAgkBE2dldExlYXNpbmdOb2RlRW50cnkDBQtub2RlQWRkcmVzcwURbm9kZUN1cnJlbnRMZWFzZWQFEG5ld05vZGVOZXh0TGVhc2UJAMwIAgkBE2dldFVzZXJMZWFzaW5nRW50cnkEBQtub2RlQWRkcmVzcwULdXNlckFkZHJlc3MFEXVzZXJDdXJyZW50TGVhc2VkBRFuZXdVc2VyTmV4dExlYXNlZAkAzAgCCQETZ2V0VXNlclRvQ2xhaW1FbnRyeQMFC3VzZXJBZGRyZXNzBQd0b0NsYWltBQtuZXdUb1VubG9jawkAzAgCCQEXZ2V0VXNlclRvdGFsTG9ja2VkRW50cnkCBQt1c2VyQWRkcmVzcwUSbmV3VXNlclRvdGFsTG9ja2VkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEWa2V5Tm9kZUxlYXNpbmdCeUhlaWdodAEFC25vZGVBZGRyZXNzBRBuZXdOb2RlTmV4dExlYXNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEWa2V5VXNlckxlYXNpbmdCeUhlaWdodAIFC25vZGVBZGRyZXNzBQt1c2VyQWRkcmVzcwURbmV3VXNlck5leHRMZWFzZWQFA25pbAUUdW5pdHNVbmxvY2tlZEFjdGlvbnMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BF2dldENsYWltVW5sb2NrZWRBY3Rpb25zAgt1c2VyQWRkcmVzcwtjbGFpbUFtb3VudAQNJHQwMTM3MzYxMzc5NgkBFWdldFVzZXJUb0NsYWltQmFsYW5jZQEFC3VzZXJBZGRyZXNzBAd0b0NsYWltCAUNJHQwMTM3MzYxMzc5NgJfMQQIdG9VbmxvY2sIBQ0kdDAxMzczNjEzNzk2Al8yBAZjaGVja3MJAMwIAgMJAQEhAQULaXNGb3JjZVN0b3AGCQEIdGhyb3dFcnIBAh1jb250cmFjdCBpcyB0ZW1wb3Jhcnkgc3RvcHBlZAkAzAgCAwkBASEBBQ5pc0ZvcmNlT3V0U3RvcAYJAQh0aHJvd0VycgECG2NsYWltIGlzIHRlbXBvcmFyeSBkaXNhYmxlZAkAzAgCAwkAZgIFC2NsYWltQW1vdW50AAAGCQEIdGhyb3dFcnIBAiVjbGFpbSBhbW91bnQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAwCQDMCAIDCQBnAgUHdG9DbGFpbQULY2xhaW1BbW91bnQGCQEIdGhyb3dFcnIBAjRjbGFpbSBhbW91bnQgc2hvdWxkIGJlIGxlc3Mgb3IgZXF1YWwgdW5sb2NrZWQgYW1vdW50CQDMCAIDCQEOaXNWYWxpZEFkZHJlc3MBBQt1c2VyQWRkcmVzcwYJAQh0aHJvd0VycgEJALkJAgkAzAgCAhp1c2VyIGFkZHJlc3MgaXMgbm90IHZhbGlkOgkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsAgEgBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MECm5ld1RvQ2xhaW0JAGUCBQd0b0NsYWltBQtjbGFpbUFtb3VudAkAzAgCCQETZ2V0VXNlclRvQ2xhaW1FbnRyeQMFC3VzZXJBZGRyZXNzBQpuZXdUb0NsYWltBQh0b1VubG9jawkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQt1c2VyQWRkcmVzcwULY2xhaW1BbW91bnQFDmwyQXNzZXRJZEJ5dGVzBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BEmdldFN0YWtlRm9yQWN0aW9ucwILdXNlckFkZHJlc3MBaQQNJHQwMTQ1NjIxNDYyMgkBFWdldFVzZXJUb0NsYWltQmFsYW5jZQEFC3VzZXJBZGRyZXNzBAd0b0NsYWltCAUNJHQwMTQ1NjIxNDYyMgJfMQQIdG9VbmxvY2sIBQ0kdDAxNDU2MjE0NjIyAl8yBAZjaGVja3MJAMwIAgMJAQEhAQULaXNGb3JjZVN0b3AGCQEIdGhyb3dFcnIBAh1jb250cmFjdCBpcyB0ZW1wb3Jhcnkgc3RvcHBlZAkAzAgCAwkAZwIAAQkAkAMBCAUBaQhwYXltZW50cwYJAQh0aHJvd0VycgECEW1heGltdW0gMSBwYXltZW50CQDMCAIDAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAAYJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFDmwyQXNzZXRJZEJ5dGVzBgkBCHRocm93RXJyAQkAuQkCCQDMCAICGnBheW1lbnQgYXNzZXRJZCBzaG91bGQgYmU6CQDMCAIFD2wyQXNzZXRJZFN0cmluZwUDbmlsAgEgCQDMCAIDCQEOaXNWYWxpZEFkZHJlc3MBBQt1c2VyQWRkcmVzcwYJAQh0aHJvd0VycgEJALkJAgkAzAgCAhp1c2VyIGFkZHJlc3MgaXMgbm90IHZhbGlkOgkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsAgEgBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MECm5ld1RvQ2xhaW0JAGQCBQd0b0NsYWltCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAkAzAgCCQETZ2V0VXNlclRvQ2xhaW1FbnRyeQMFC3VzZXJBZGRyZXNzBQpuZXdUb0NsYWltBQh0b1VubG9jawUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQ9nZXRTdGFrZUFjdGlvbnMEC25vZGVBZGRyZXNzC3VzZXJBZGRyZXNzEXVzZXJMZWFzaW5nQW1vdW50AWkEDSR0MDE1MzU0MTU0MTQJARVnZXRVc2VyVG9DbGFpbUJhbGFuY2UBBQt1c2VyQWRkcmVzcwQHdG9DbGFpbQgFDSR0MDE1MzU0MTU0MTQCXzEECHRvVW5sb2NrCAUNJHQwMTUzNTQxNTQxNAJfMgQNcGF5bWVudEFtb3VudAMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAAAAAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQECWF2YWlsYWJsZQkAZAIJAGQCBQh0b1VubG9jawUHdG9DbGFpbQUNcGF5bWVudEFtb3VudAQGY2hlY2tzCQDMCAIDCQEBIQEFC2lzRm9yY2VTdG9wBgkBCHRocm93RXJyAQIdY29udHJhY3QgaXMgdGVtcG9yYXJ5IHN0b3BwZWQJAMwIAgMJAGcCAAEJAJADAQgFAWkIcGF5bWVudHMGCQEIdGhyb3dFcnIBAhFtYXhpbXVtIDEgcGF5bWVudAkAzAgCAwMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAAGCQAAAggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQ5sMkFzc2V0SWRCeXRlcwYJAQh0aHJvd0VycgEJALkJAgkAzAgCAhpwYXltZW50IGFzc2V0SWQgc2hvdWxkIGJlOgkAzAgCBQ9sMkFzc2V0SWRTdHJpbmcFA25pbAIBIAkAzAgCAwkAZgIFEXVzZXJMZWFzaW5nQW1vdW50AAAGCQEIdGhyb3dFcnIBAh9hbW91bnQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAwCQDMCAIDCQBnAgUJYXZhaWxhYmxlBRF1c2VyTGVhc2luZ0Ftb3VudAYJAQh0aHJvd0VycgECO2Ftb3VudCBzaG91bGQgYmUgbGVzcyBvciBlcXVhbCAocGF5bWVudCArIGF2YWlsYWJsZSkgYW1vdW50CQDMCAIDCQBnAgURdXNlckxlYXNpbmdBbW91bnQFDXBheW1lbnRBbW91bnQGCQACAQIwYW1vdW50IHNob3VsZCBiZSBncmVhdGVyIG9yIGVxdWFsIHBheW1lbnQgYW1vdW50CQDMCAIDCQEOaXNWYWxpZEFkZHJlc3MBBQtub2RlQWRkcmVzcwYJAQh0aHJvd0VycgEJALkJAgkAzAgCAhpub2RlIGFkZHJlc3MgaXMgbm90IHZhbGlkOgkAzAgCBQtub2RlQWRkcmVzcwUDbmlsAgEgCQDMCAIDCQEOaXNWYWxpZEFkZHJlc3MBBQt1c2VyQWRkcmVzcwYJAQh0aHJvd0VycgEJALkJAgkAzAgCAhp1c2VyIGFkZHJlc3MgaXMgbm90IHZhbGlkOgkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsAgEgBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEDSR0MDE2NDg5MTY1NjIJARJnZXRMZWFzaW5nTm9kZURhdGEBBQtub2RlQWRkcmVzcwQRbm9kZUN1cnJlbnRMZWFzZWQIBQ0kdDAxNjQ4OTE2NTYyAl8xBA5ub2RlTmV4dExlYXNlZAgFDSR0MDE2NDg5MTY1NjICXzIEEG5ld05vZGVOZXh0TGVhc2UJAGQCBQ5ub2RlTmV4dExlYXNlZAURdXNlckxlYXNpbmdBbW91bnQEDSR0MDE2NjMwMTY3MTYJARJnZXRVc2VyTGVhc2luZ0RhdGECBQtub2RlQWRkcmVzcwULdXNlckFkZHJlc3MEEXVzZXJDdXJyZW50TGVhc2VkCAUNJHQwMTY2MzAxNjcxNgJfMQQOdXNlck5leHRMZWFzZWQIBQ0kdDAxNjYzMDE2NzE2Al8yBBFuZXdVc2VyTmV4dExlYXNlZAkAZAIFDnVzZXJOZXh0TGVhc2VkBRF1c2VyTGVhc2luZ0Ftb3VudAQSZnJvbVVubG9ja2VkQW1vdW50CQBlAgURdXNlckxlYXNpbmdBbW91bnQFDXBheW1lbnRBbW91bnQEC25ld1RvVW5sb2NrCQCWAwEJAMwIAgAACQDMCAIJAGUCBQh0b1VubG9jawUSZnJvbVVubG9ja2VkQW1vdW50BQNuaWwECm5ld1RvQ2xhaW0JAJcDAQkAzAgCBQd0b0NsYWltCQDMCAIJAGQCBQd0b0NsYWltCQBlAgUIdG9VbmxvY2sFEmZyb21VbmxvY2tlZEFtb3VudAUDbmlsBA91c2VyVG90YWxMb2NrZWQJARJnZXRVc2VyVG90YWxMb2NrZWQBBQt1c2VyQWRkcmVzcwQSbmV3VXNlclRvdGFsTG9ja2VkCQBkAgUPdXNlclRvdGFsTG9ja2VkBRF1c2VyTGVhc2luZ0Ftb3VudAQUdW5pdHNVbmxvY2tlZEFjdGlvbnMJARRnZXRVbmxvY2tVbml0c0FjdGlvbgEFC3VzZXJBZGRyZXNzCQDOCAIJAMwIAgkBE2dldExlYXNpbmdOb2RlRW50cnkDBQtub2RlQWRkcmVzcwURbm9kZUN1cnJlbnRMZWFzZWQFEG5ld05vZGVOZXh0TGVhc2UJAMwIAgkBE2dldFVzZXJMZWFzaW5nRW50cnkEBQtub2RlQWRkcmVzcwULdXNlckFkZHJlc3MFEXVzZXJDdXJyZW50TGVhc2VkBRFuZXdVc2VyTmV4dExlYXNlZAkAzAgCCQETZ2V0VXNlclRvQ2xhaW1FbnRyeQMFC3VzZXJBZGRyZXNzBQpuZXdUb0NsYWltBQtuZXdUb1VubG9jawkAzAgCCQEXZ2V0VXNlclRvdGFsTG9ja2VkRW50cnkCBQt1c2VyQWRkcmVzcwUSbmV3VXNlclRvdGFsTG9ja2VkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEWa2V5Tm9kZUxlYXNpbmdCeUhlaWdodAEFC25vZGVBZGRyZXNzBRBuZXdOb2RlTmV4dExlYXNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEWa2V5VXNlckxlYXNpbmdCeUhlaWdodAIFC25vZGVBZGRyZXNzBQt1c2VyQWRkcmVzcwURbmV3VXNlck5leHRMZWFzZWQFA25pbAUUdW5pdHNVbmxvY2tlZEFjdGlvbnMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BGmdldFN0YWtlRnJvbVBheW1lbnRBY3Rpb25zAwtub2RlQWRkcmVzcwt1c2VyQWRkcmVzcwFpBAZjaGVja3MJAMwIAgMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAEGCQEIdGhyb3dFcnIBAiBwYXltZW50IHNpemUgc2hvdWxkIGJlIGV4YWN0bHkgMQUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzCQEPZ2V0U3Rha2VBY3Rpb25zBAULbm9kZUFkZHJlc3MFC3VzZXJBZGRyZXNzCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAUBaQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEcZ2V0U2V0TmV3UGVyaW9kTGVuZ3RoQWN0aW9ucwEPbmV3UGVyaW9kTGVuZ3RoBAVjaGVjawkAzAgCAwkAZgIFD25ld1BlcmlvZExlbmd0aAAABgkBCHRocm93RXJyAQImcGVyaW9kIGxlbmd0aCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDAFA25pbAMJAAACBQVjaGVjawUFY2hlY2sDCQAAAgUScGVyaW9kT2Zmc2V0SGVpZ2h0AP///////////wEJAMwIAgkBDEludGVnZXJFbnRyeQIFD2tleVBlcmlvZExlbmd0aAUPbmV3UGVyaW9kTGVuZ3RoCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRVrZXlQZXJpb2RPZmZzZXRIZWlnaHQFBmhlaWdodAUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRFrZXlQZXJpb2RPZmZzZXRJZAkAZAIFD2N1cnJlbnRQZXJpb2RJZAABCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRVrZXlQZXJpb2RPZmZzZXRIZWlnaHQFEG5leHRQZXJpb2RIZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFD2tleVBlcmlvZExlbmd0aAUPbmV3UGVyaW9kTGVuZ3RoBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BEWdldFVuaXRzQ2xhaW1EYXRhAQt1c2VyQWRkcmVzcwQNJHQwMTg2MDExODY4NgkBFWNhbGN1bGF0ZVVuaXRzVG9DbGFpbQEFC3VzZXJBZGRyZXNzBA91bmxvY2tlZFVuaXROb3cIBQ0kdDAxODYwMTE4Njg2Al8xBAtsMlRvQnVybk5vdwgFDSR0MDE4NjAxMTg2ODYCXzIEDGNsYWltZWRCbG9jawgFDSR0MDE4NjAxMTg2ODYCXzMEEXVubG9ja2VkVW5pdHNQcmV2CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJARBrZXlVbmxvY2tlZFVuaXRzAQULdXNlckFkZHJlc3MAAAQLdW5pdHNUb1NlbmQJAGQCBQ91bmxvY2tlZFVuaXROb3cFEXVubG9ja2VkVW5pdHNQcmV2BAxsMlRvQnVyblByZXYJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBC2tleUwyVG9CdXJuAQULdXNlckFkZHJlc3MAAAQIbDJUb0J1cm4JAGQCBQxsMlRvQnVyblByZXYFC2wyVG9CdXJuTm93BBF0b3RhbFVuaXRzQ2xhaW1lZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEUa2V5VG90YWxVbml0c0NsYWltZWQBBQt1c2VyQWRkcmVzcwAABA10b3RhbEwyQnVybmVkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJARBrZXlMMkJ1cm5lZFRvdGFsAQULdXNlckFkZHJlc3MAAAkAlwoFBQt1bml0c1RvU2VuZAURdG90YWxVbml0c0NsYWltZWQFCGwyVG9CdXJuBQ10b3RhbEwyQnVybmVkBQxjbGFpbWVkQmxvY2sBFGdldENsYWltVW5pdHNBY3Rpb25zAQt1c2VyQWRkcmVzcwQNJHQwMTkyNzgxOTM4NgkBEWdldFVuaXRzQ2xhaW1EYXRhAQULdXNlckFkZHJlc3MEC3VuaXRzVG9TZW5kCAUNJHQwMTkyNzgxOTM4NgJfMQQRdG90YWxVbml0c0NsYWltZWQIBQ0kdDAxOTI3ODE5Mzg2Al8yBAhsMlRvQnVybggFDSR0MDE5Mjc4MTkzODYCXzMEDXRvdGFsTDJCdXJuZWQIBQ0kdDAxOTI3ODE5Mzg2Al80BAxjbGFpbWVkQmxvY2sIBQ0kdDAxOTI3ODE5Mzg2Al81BAVjaGVjawkAzAgCAwkAZgIFC3VuaXRzVG9TZW5kAAAGCQEIdGhyb3dFcnIBAhBub3RoaW5nIHRvIGNsYWltBQNuaWwDCQAAAgUFY2hlY2sFBWNoZWNrBApidXJuQWN0aW9uBAckbWF0Y2gwBQ5sMkFzc2V0SWRCeXRlcwMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJpZAUHJG1hdGNoMAkAzAgCCQEEQnVybgIFAmlkBQhsMlRvQnVybgUDbmlsBQNuaWwJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFGtleVVuaXRzQ2xhaW1lZEJsb2NrAQULdXNlckFkZHJlc3MFDGNsYWltZWRCbG9jawkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFGtleVRvdGFsVW5pdHNDbGFpbWVkAQULdXNlckFkZHJlc3MJAGQCBRF0b3RhbFVuaXRzQ2xhaW1lZAULdW5pdHNUb1NlbmQJAMwIAgkBDEludGVnZXJFbnRyeQIJARBrZXlMMkJ1cm5lZFRvdGFsAQULdXNlckFkZHJlc3MJAGQCBQ10b3RhbEwyQnVybmVkBQhsMlRvQnVybgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEGtleVVubG9ja2VkVW5pdHMBBQt1c2VyQWRkcmVzcwAACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQELa2V5TDJUb0J1cm4BBQt1c2VyQWRkcmVzcwAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFC3VzZXJBZGRyZXNzBQt1bml0c1RvU2VuZAURdW5pdHNBc3NldElkQnl0ZXMFA25pbAUKYnVybkFjdGlvbgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLhABaQESc2V0TmV3UGVyaW9kTGVuZ3RoAQ9uZXdQZXJpb2RMZW5ndGgEBmNoZWNrcwkAzAgCAwkBDWlzSW5BZG1pbkxpc3QBCQClCAEIBQFpBmNhbGxlcgYJAQh0aHJvd0VycgECGmNhbGxlciBpcyBub3QgaW4gYWRtaW5MaXN0BQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MJARxnZXRTZXROZXdQZXJpb2RMZW5ndGhBY3Rpb25zAQUPbmV3UGVyaW9kTGVuZ3RoCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCmNsYWltVW5pdHMABAt1c2VyQWRkcmVzcwkApQgBCAUBaQZjYWxsZXIJARRnZXRDbGFpbVVuaXRzQWN0aW9ucwEFC3VzZXJBZGRyZXNzAWkBEHNldEZvcmNlU3RvcEZsYWcBBHN0b3AEBWNoZWNrCQDMCAIDCQENaXNJbkFkbWluTGlzdAEJAKUIAQgFAWkGY2FsbGVyBgkBCHRocm93RXJyAQIaY2FsbGVyIGlzIG5vdCBpbiBhZG1pbkxpc3QFA25pbAMJAAACBQVjaGVjawUFY2hlY2sJAMwIAgkBDEJvb2xlYW5FbnRyeQIFDGtleUZvcmNlU3RvcAUEc3RvcAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBE3NldEZvcmNlT3V0U3RvcEZsYWcBBHN0b3AEBWNoZWNrCQDMCAIDCQENaXNJbkFkbWluTGlzdAEJAKUIAQgFAWkGY2FsbGVyBgkBCHRocm93RXJyAQIaY2FsbGVyIGlzIG5vdCBpbiBhZG1pbkxpc3QFA25pbAMJAAACBQVjaGVjawUFY2hlY2sJAMwIAgkBDEJvb2xlYW5FbnRyeQIFD2tleUZvcmNlT3V0U3RvcAUEc3RvcAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBE2dldE5vZGVEYXRhUkVBRE9OTFkBC25vZGVBZGRyZXNzBA0kdDAyMTExODIxMTgyCQESZ2V0TGVhc2luZ05vZGVEYXRhAQULbm9kZUFkZHJlc3MEDGN1cnJlbnRMZWFzZQgFDSR0MDIxMTE4MjExODICXzEECm5leHRMZWFzZWQIBQ0kdDAyMTExODIxMTgyAl8yCQCUCgIFA25pbAkAlwoFBRNjdXJyZW50UGVyaW9kSGVpZ2h0BQxjdXJyZW50TGVhc2UFEG5leHRQZXJpb2RIZWlnaHQFCm5leHRMZWFzZWQFBmhlaWdodAFpARpnZXRVc2VyTGVhc2luZ0RhdGFSRUFET05MWQILbm9kZUFkZHJlc3MLdXNlckFkZHJlc3MEDSR0MDIxNTUyMjE2MjkJARJnZXRVc2VyTGVhc2luZ0RhdGECBQtub2RlQWRkcmVzcwULdXNlckFkZHJlc3MEDGN1cnJlbnRMZWFzZQgFDSR0MDIxNTUyMjE2MjkCXzEECm5leHRMZWFzZWQIBQ0kdDAyMTU1MjIxNjI5Al8yCQCUCgIFA25pbAkAlwoFBRNjdXJyZW50UGVyaW9kSGVpZ2h0BQxjdXJyZW50TGVhc2UFEG5leHRQZXJpb2RIZWlnaHQFCm5leHRMZWFzZWQFBmhlaWdodAFpARNnZXRVc2VyRGF0YVJFQURPTkxZAQt1c2VyQWRkcmVzcwQNJHQwMjIxNDUyMjIwNQkBFWdldFVzZXJUb0NsYWltQmFsYW5jZQEFC3VzZXJBZGRyZXNzBAd0b0NsYWltCAUNJHQwMjIxNDUyMjIwNQJfMQQIdG9VbmxvY2sIBQ0kdDAyMjE0NTIyMjA1Al8yBA91c2VyVG90YWxMb2NrZWQJARJnZXRVc2VyVG90YWxMb2NrZWQBBQt1c2VyQWRkcmVzcwQNJHQwMjIyNjgyMjM3NgkBEWdldFVuaXRzQ2xhaW1EYXRhAQULdXNlckFkZHJlc3MEC3VuaXRzVG9TZW5kCAUNJHQwMjIyNjgyMjM3NgJfMQQRdG90YWxVbml0c0NsYWltZWQIBQ0kdDAyMjI2ODIyMzc2Al8yBAhsMlRvQnVybggFDSR0MDIyMjY4MjIzNzYCXzMEDXRvdGFsTDJCdXJuZWQIBQ0kdDAyMjI2ODIyMzc2Al80BAxjbGFpbWVkQmxvY2sIBQ0kdDAyMjI2ODIyMzc2Al81CQCUCgIFA25pbAkAnQoLBRNjdXJyZW50UGVyaW9kSGVpZ2h0BQd0b0NsYWltBRBuZXh0UGVyaW9kSGVpZ2h0BQh0b1VubG9jawUPdXNlclRvdGFsTG9ja2VkBQZoZWlnaHQFC3VuaXRzVG9TZW5kBRF0b3RhbFVuaXRzQ2xhaW1lZAUIbDJUb0J1cm4FDXRvdGFsTDJCdXJuZWQFDGNsYWltZWRCbG9jawFpAQ5sZWFzZUJ5QWRkcmVzcwILbm9kZUFkZHJlc3MLdXNlckFkZHJlc3MJARpnZXRTdGFrZUZyb21QYXltZW50QWN0aW9ucwMFC25vZGVBZGRyZXNzBQt1c2VyQWRkcmVzcwUBaQFpAQVsZWFzZQELbm9kZUFkZHJlc3MEC3VzZXJBZGRyZXNzCQClCAEIBQFpBmNhbGxlcgkBGmdldFN0YWtlRnJvbVBheW1lbnRBY3Rpb25zAwULbm9kZUFkZHJlc3MFC3VzZXJBZGRyZXNzBQFpAWkBD2xlYXNlRnJvbUxvY2tlZAILbm9kZUFkZHJlc3MGYW1vdW50BAt1c2VyQWRkcmVzcwkApQgBCAUBaQZjYWxsZXIJAQ9nZXRTdGFrZUFjdGlvbnMEBQtub2RlQWRkcmVzcwULdXNlckFkZHJlc3MFBmFtb3VudAUBaQFpAQtjYW5jZWxMZWFzZQILbm9kZUFkZHJlc3MGYW1vdW50BAt1c2VyQWRkcmVzcwkApQgBCAUBaQZjYWxsZXIJARFnZXRVbnN0YWtlQWN0aW9ucwMFC25vZGVBZGRyZXNzBQt1c2VyQWRkcmVzcwUGYW1vdW50AWkBBWNsYWltAQZhbW91bnQEC3VzZXJBZGRyZXNzCQClCAEIBQFpBmNhbGxlcgkBF2dldENsYWltVW5sb2NrZWRBY3Rpb25zAgULdXNlckFkZHJlc3MFBmFtb3VudAFpAQhjbGFpbUFsbAAEC3VzZXJBZGRyZXNzCQClCAEIBQFpBmNhbGxlcgQNJHQwMjM1NjgyMzYyOAkBFWdldFVzZXJUb0NsYWltQmFsYW5jZQEFC3VzZXJBZGRyZXNzBAd0b0NsYWltCAUNJHQwMjM1NjgyMzYyOAJfMQQIdG9VbmxvY2sIBQ0kdDAyMzU2ODIzNjI4Al8yBAZjaGVja3MJAMwIAgMJAGYCBQd0b0NsYWltAAAGCQEIdGhyb3dFcnIBAhBub3RoaW5nIHRvIGNsYWltBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MJARdnZXRDbGFpbVVubG9ja2VkQWN0aW9ucwIFC3VzZXJBZGRyZXNzBQd0b0NsYWltCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCHN0YWtlRm9yAQt1c2VyQWRkcmVzcwkBEmdldFN0YWtlRm9yQWN0aW9ucwIFC3VzZXJBZGRyZXNzBQFpAWkBEXN0YXJ0VW5pdHNWZXN0aW5nARJ1bml0c0NsYWltSW50ZXJ2YWwEB3RvdGFsTDIAgICo7IWv0bEBBAp0b3RhbFVuaXRzCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQTdW5pdHNQZXJCbG9ja1NjYWxlOAkAaQIJAGsDBQd0b3RhbEwyBQZzY2FsZTgFCnRvdGFsVW5pdHMFEnVuaXRzQ2xhaW1JbnRlcnZhbAQFY2hlY2sJAMwIAgMJAQ1pc0luQWRtaW5MaXN0AQkApQgBCAUBaQZjYWxsZXIGCQEIdGhyb3dFcnIBAhpjYWxsZXIgaXMgbm90IGluIGFkbWluTGlzdAkAzAgCAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQYJAQh0aHJvd0VycgECE3Nob3VsZCBiZSAxIHBheW1lbnQJAMwIAgMJAGYCBRN1bml0c1BlckJsb2NrU2NhbGU4AAAGCQEIdGhyb3dFcnIBAih1bml0cyBwZXIgYmxvY2sgc2hvdWxkIGJlIGdyZWF0ZWQgdGhhbiAwBQNuaWwDCQAAAgUFY2hlY2sFBWNoZWNrCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRZrZXlVbml0c1BlckJsb2NrU2NhbGU4BRN1bml0c1BlckJsb2NrU2NhbGU4CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRhrZXlVbml0c0NsYWltU3RhcnRIZWlnaHQFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgUVa2V5VW5pdHNDbGFpbUludGVydmFsBRJ1bml0c0NsYWltSW50ZXJ2YWwJAMwIAgkBC1N0cmluZ0VudHJ5AgUPa2V5VW5pdHNBc3NldElkCQESYXNzZXRCeXRlc1RvU3RyaW5nAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQELdm90ZUZvclR4SWQBBHR4SWQEE2NhbGxlckFkZHJlc3NTdHJpbmcJANgEAQgIBQFpBmNhbGxlcgVieXRlcwQJa2V5UHJlZml4CQEYa2V5QWxsb3dlZFR4SWRWb3RlUHJlZml4AQUEdHhJZAQGcmVzdWx0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ5rZXlBbGxvd2VkVHhJZAAFBHR4SWQFA25pbAQRYWxsb3dlZFR4SWRPcHRpb24JAJ0IAgUEdGhpcwkBDmtleUFsbG93ZWRUeElkAAQDZXJyCQDMCAIDCQAAAgkAyAEBCQDZBAEFBHR4SWQFEVRYSURfQllURVNfTEVOR1RIBgkBCHRocm93RXJyAQkArAICBQR0eElkAhIgaXMgbm90IHZhbGlkIHR4SWQJAMwIAgMDCQAAAgURYWxsb3dlZFR4SWRPcHRpb24FBHVuaXQGCQECIT0CCQEFdmFsdWUBBRFhbGxvd2VkVHhJZE9wdGlvbgUEdHhJZAYJAQh0aHJvd0VycgEJAKwCAgUEdHhJZAITIGlzIGFscmVhZHkgYWxsb3dlZAUDbmlsAwkAAAIFA2VycgUDZXJyCQEMdm90ZUlOVEVSTkFMBAUTY2FsbGVyQWRkcmVzc1N0cmluZwUJa2V5UHJlZml4BQZRVU9SVU0FBnJlc3VsdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAECGJ5QWRtaW5zCQAAAggFAnR4AmlkCQDZBAEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBDmtleUFsbG93ZWRUeElkAAIABAdieU93bmVyAwkAZwIJAJADAQkBDWdldEFkbWluc0xpc3QABQZRVU9SVU0HCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5AwUIYnlBZG1pbnMGBQdieU93bmVyzNWuvw==", "chainId": 84, "height": 3336644, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GSmzqun3281fCHh1SLgmMkoJ5LjoKbiArJYkxg3bzjB9 Next: 9zGTEQEbiEoghPBeaxnVGUGK299DNztiy5Zypb4YWedX Diff:
OldNewDifferences
371371 let bz = (by - bw)
372372 let bA = bt(B)
373373 let bB = fraction(bA, bz, x)
374- let bC = fraction(bB, bx, d)
374+ let bC = fraction(bB, bx, (d * d))
375375 $Tuple3(bC, bB, bw)
376376 }
377377
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "l2mp_leasing.ride"
55
66 let b = "__"
77
88 let c = 1000
99
1010 let d = 100000000
1111
1212 func e (f) = throw(((a + ": ") + f))
1313
1414
1515 let g = makeString(["%s", "assetId"], b)
1616
1717 let h = makeString(["%s", "forceStop"], b)
1818
1919 let i = makeString(["%s", "forceOutStop"], b)
2020
2121 let j = makeString(["%s", "unitsAssetId"], b)
2222
2323 let k = makeString(["%s", "unitsPerBlock"], b)
2424
2525 let l = makeString(["%s", "offsetId"], b)
2626
2727 let m = makeString(["%s", "offsetHeight"], b)
2828
2929 let n = makeString(["%s", "periodLength"], b)
3030
3131 let o = makeString(["%s", "unitsClaimStartHeight"], b)
3232
3333 let p = makeString(["%s", "unitsClaimInterval"], b)
3434
3535 let q = valueOrElse(getInteger(this, l), 0)
3636
3737 let r = valueOrElse(getInteger(this, n), 10000)
3838
3939 let s = valueOrElse(getInteger(this, m), -1)
4040
4141 let t = if (if ((height > s))
4242 then (s != -1)
4343 else false)
4444 then (((height - s) / r) + q)
4545 else max([0, (q - 1)])
4646
4747 let u = if (if ((s == -1))
4848 then true
4949 else if ((t == 0))
5050 then (s > height)
5151 else false)
5252 then 0
5353 else (s + ((t - q) * r))
5454
5555 let v = if (if ((s == -1))
5656 then true
5757 else if ((t == 0))
5858 then (s > height)
5959 else false)
6060 then 0
6161 else (u + r)
6262
6363 let w = valueOrElse(getInteger(this, o), height)
6464
6565 let x = valueOrElse(getInteger(this, p), 0)
6666
6767 func y (z) = makeString(["%s", z], b)
6868
6969
7070 func A (B,z) = makeString(["%s%s", z, B], b)
7171
7272
7373 func C (B) = makeString(["%s%s", "toClaim", B], b)
7474
7575
7676 func D (B) = makeString(["%s%s", "userTotalLocked", B], b)
7777
7878
7979 func E (B) = makeString(["%s%s", "unitsClaimedBlock", B], b)
8080
8181
8282 func F (B) = makeString(["%s%s", "unlockedUnits", B], b)
8383
8484
8585 func G (B) = makeString(["%s%s", "totalUnitsClaimed", B], b)
8686
8787
8888 func H (B) = makeString(["%s%s", "l2ToBurn", B], b)
8989
9090
9191 func I (B) = makeString(["%s%s", "l2BurnedTotal", B], b)
9292
9393
9494 func J (z) = {
9595 let K = if ((s == -1))
9696 then 0
9797 else height
9898 makeString(["%s%d", z, toString(K)], b)
9999 }
100100
101101
102102 func L (z,B) = {
103103 let K = if ((s == -1))
104104 then 0
105105 else height
106106 makeString(["%s%s%d", z, B, toString(K)], b)
107107 }
108108
109109
110110 func M (N) = if ((N == "WAVES"))
111111 then unit
112112 else fromBase58String(N)
113113
114114
115115 func O (P) = {
116116 let Q = P
117117 if ($isInstanceOf(Q, "ByteVector"))
118118 then {
119119 let R = Q
120120 toBase58String(R)
121121 }
122122 else "WAVES"
123123 }
124124
125125
126126 let S = valueOrElse(getString(this, g), "WAVES")
127127
128128 let T = valueOrElse(getString(this, j), "WAVES")
129129
130130 let U = M(S)
131131
132132 let V = M(T)
133133
134134 let W = valueOrElse(getBoolean(this, h), false)
135135
136136 let X = valueOrElse(getBoolean(this, i), false)
137137
138138 func Y (Z) = {
139139 let Q = addressFromString(Z)
140140 if ($isInstanceOf(Q, "Address"))
141141 then {
142142 let R = Q
143143 true
144144 }
145145 else false
146146 }
147147
148148
149149 let aa = 5
150150
151151 let ab = 3
152152
153153 let ac = 32
154154
155155 func ad (ae) = makeString(["%s%s%s", "allowTxId", ae], b)
156156
157157
158158 func af (ag,ah) = makeString([ag, ah], b)
159159
160160
161161 func ai () = makeString(["%s", "adminAddressList"], b)
162162
163163
164164 func aj () = makeString(["%s", "txId"], b)
165165
166166
167167 func ak (ag,al) = {
168168 let am = af(ag, al)
169169 valueOrElse(getInteger(am), 0)
170170 }
171171
172172
173173 func an () = {
174174 let Q = getString(this, ai())
175175 if ($isInstanceOf(Q, "String"))
176176 then {
177177 let ao = Q
178178 split(ao, b)
179179 }
180180 else nil
181181 }
182182
183183
184184 func ap (Z) = containsElement(an(), Z)
185185
186186
187187 func aq (R,ah) = {
188188 let ar = R
189189 let as = ar._1
190190 let ag = ar._2
191191 $Tuple2((as :+ af(ag, ah)), ag)
192192 }
193193
194194
195195 func at (au) = {
196196 let av = ai()
197197 let aw = {
198198 let ax = an()
199199 let ay = size(ax)
200200 let az = $Tuple2(nil, au)
201201 func aA (aB,aC) = if ((aC >= ay))
202202 then aB
203203 else aq(aB, ax[aC])
204204
205205 func aD (aB,aC) = if ((aC >= ay))
206206 then aB
207207 else throw("List size exceeds 5")
208208
209209 aD(aA(aA(aA(aA(aA(az, 0), 1), 2), 3), 4), 5)
210210 }
211211 let as = aw._1
212212 let ag = aw._2
213213 as
214214 }
215215
216216
217217 func aE (as,am) = (as + valueOrElse(getInteger(am), 0))
218218
219219
220220 func aF (ag) = {
221221 let aG = at(ag)
222222 let ax = aG
223223 let ay = size(ax)
224224 let az = 0
225225 func aA (aB,aC) = if ((aC >= ay))
226226 then aB
227227 else aE(aB, ax[aC])
228228
229229 func aD (aB,aC) = if ((aC >= ay))
230230 then aB
231231 else throw("List size exceeds 5")
232232
233233 aD(aA(aA(aA(aA(aA(az, 0), 1), 2), 3), 4), 5)
234234 }
235235
236236
237237 func aH (as,aI) = (as :+ DeleteEntry(aI))
238238
239239
240240 func aJ (ag) = {
241241 let aG = at(ag)
242242 let ax = aG
243243 let ay = size(ax)
244244 let az = nil
245245 func aA (aB,aC) = if ((aC >= ay))
246246 then aB
247247 else aH(aB, ax[aC])
248248
249249 func aD (aB,aC) = if ((aC >= ay))
250250 then aB
251251 else throw("List size exceeds 5")
252252
253253 aD(aA(aA(aA(aA(aA(az, 0), 1), 2), 3), 4), 5)
254254 }
255255
256256
257257 func aK (aL,au,aM,aN) = {
258258 let am = af(au, aL)
259259 let aO = ak(au, aL)
260260 let aP = if (!(ap(aL)))
261261 then e((("Address: " + aL) + " not in Admin list"))
262262 else if ((aO == 1))
263263 then e((am + " you already voted"))
264264 else unit
265265 if ((aP == aP))
266266 then {
267267 let aG = aF(au)
268268 if (((aG + 1) >= aM))
269269 then {
270270 let aQ = aJ(au)
271271 (aQ ++ aN)
272272 }
273273 else [IntegerEntry(am, 1)]
274274 }
275275 else throw("Strict value is not equal to itself.")
276276 }
277277
278278
279279 func aR (z,aS,aT) = {
280280 let aU = makeString(["%d%d%d%d", toString(u), toString(aS), toString(v), toString(aT)], b)
281281 StringEntry(y(z), aU)
282282 }
283283
284284
285285 func aV (z) = {
286286 let aW = getString(this, y(z))
287287 let Q = aW
288288 if ($isInstanceOf(Q, "String"))
289289 then {
290290 let aX = Q
291291 let aY = split(aX, b)
292292 let aZ = parseIntValue(aY[1])
293293 let ba = parseIntValue(aY[2])
294294 let bb = parseIntValue(aY[3])
295295 let bc = parseIntValue(aY[4])
296296 if (if ((bb > height))
297297 then true
298298 else (s == -1))
299299 then $Tuple2(ba, bc)
300300 else $Tuple2(bc, bc)
301301 }
302302 else $Tuple2(0, 0)
303303 }
304304
305305
306306 func bd (z,B,be,bf) = {
307307 let aU = makeString(["%d%d%d%d", toString(u), toString(be), toString(v), toString(bf)], b)
308308 StringEntry(A(B, z), aU)
309309 }
310310
311311
312312 func bg (z,B) = {
313313 let bh = getString(this, A(B, z))
314314 let Q = bh
315315 if ($isInstanceOf(Q, "String"))
316316 then {
317317 let aX = Q
318318 let aY = split(aX, b)
319319 let bi = parseIntValue(aY[1])
320320 let be = parseIntValue(aY[2])
321321 let bj = parseIntValue(aY[3])
322322 let bf = parseIntValue(aY[4])
323323 if (if ((bj > height))
324324 then true
325325 else (s == -1))
326326 then $Tuple2(be, bf)
327327 else $Tuple2(bf, bf)
328328 }
329329 else $Tuple2(0, 0)
330330 }
331331
332332
333333 func bk (B,bl,bm) = {
334334 let aU = makeString(["%d%d%d%d", toString(u), toString(bl), toString(v), toString(bm)], b)
335335 StringEntry(C(B), aU)
336336 }
337337
338338
339339 func bn (B) = {
340340 let bo = getString(this, C(B))
341341 let Q = bo
342342 if ($isInstanceOf(Q, "String"))
343343 then {
344344 let aX = Q
345345 let aY = split(aX, b)
346346 let bp = parseIntValue(aY[1])
347347 let bl = parseIntValue(aY[2])
348348 let bq = parseIntValue(aY[3])
349349 let bm = parseIntValue(aY[4])
350350 if (if ((bq > height))
351351 then true
352352 else (t == 0))
353353 then $Tuple2(bl, bm)
354354 else $Tuple2((bl + bm), 0)
355355 }
356356 else $Tuple2(0, 0)
357357 }
358358
359359
360360 func br (B,bs) = IntegerEntry(D(B), bs)
361361
362362
363363 func bt (B) = valueOrElse(getInteger(this, D(B)), 0)
364364
365365
366366 func bu (B) = {
367367 let bv = E(B)
368368 let bw = valueOrElse(getInteger(this, bv), w)
369369 let bx = valueOrElse(getInteger(this, k), 0)
370370 let by = min([(w + x), height])
371371 let bz = (by - bw)
372372 let bA = bt(B)
373373 let bB = fraction(bA, bz, x)
374- let bC = fraction(bB, bx, d)
374+ let bC = fraction(bB, bx, (d * d))
375375 $Tuple3(bC, bB, bw)
376376 }
377377
378378
379379 func bD (B) = {
380380 let bE = F(B)
381381 let bF = valueOrElse(getInteger(this, bE), 0)
382382 let bG = H(B)
383383 let bB = valueOrElse(getInteger(this, bG), 0)
384384 let bH = bu(B)
385385 let bC = bH._1
386386 let bI = bH._2
387387 let bw = bH._3
388388 if ((0 >= bC))
389389 then nil
390390 else [IntegerEntry(E(B), bw), IntegerEntry(bG, (bB + bI)), IntegerEntry(bE, (bF + bC))]
391391 }
392392
393393
394394 func bJ (z,B,bK) = {
395395 let bL = aV(z)
396396 let ba = bL._1
397397 let bc = bL._2
398398 let bM = bg(z, B)
399399 let be = bM._1
400400 let bf = bM._2
401401 let bN = [if (!(W))
402402 then true
403403 else e("contract is temporary stopped"), if (!(X))
404404 then true
405405 else e("unstake is temporary disabled"), if ((bK > 0))
406406 then true
407407 else e("unstake amount should be greater than 0"), if ((bf >= bK))
408408 then true
409409 else e("unstake amount should be less or equal user staked amount"), if ((bc >= bK))
410410 then true
411411 else e("unstake amount should be less or equal node staked amount"), if (Y(z))
412412 then true
413413 else e(makeString(["node address is not valid:", z], " ")), if (Y(B))
414414 then true
415415 else e(makeString(["user address is not valid:", B], " "))]
416416 if ((bN == bN))
417417 then {
418418 let bO = (bc - bK)
419419 let bP = (bf - bK)
420420 let bQ = bn(B)
421421 let bl = bQ._1
422422 let bm = bQ._2
423423 let bR = (bm + bK)
424424 let bs = bt(B)
425425 let bS = (bs - bK)
426426 let bT = bD(B)
427427 ([aR(z, ba, bO), bd(z, B, be, bP), bk(B, bl, bR), br(B, bS), IntegerEntry(J(z), bO), IntegerEntry(L(z, B), bP)] ++ bT)
428428 }
429429 else throw("Strict value is not equal to itself.")
430430 }
431431
432432
433433 func bU (B,bV) = {
434434 let bW = bn(B)
435435 let bl = bW._1
436436 let bm = bW._2
437437 let bN = [if (!(W))
438438 then true
439439 else e("contract is temporary stopped"), if (!(X))
440440 then true
441441 else e("claim is temporary disabled"), if ((bV > 0))
442442 then true
443443 else e("claim amount should be greater than 0"), if ((bl >= bV))
444444 then true
445445 else e("claim amount should be less or equal unlocked amount"), if (Y(B))
446446 then true
447447 else e(makeString(["user address is not valid:", B], " "))]
448448 if ((bN == bN))
449449 then {
450450 let bX = (bl - bV)
451451 [bk(B, bX, bm), ScriptTransfer(addressFromStringValue(B), bV, U)]
452452 }
453453 else throw("Strict value is not equal to itself.")
454454 }
455455
456456
457457 func bY (B,bZ) = {
458458 let ca = bn(B)
459459 let bl = ca._1
460460 let bm = ca._2
461461 let bN = [if (!(W))
462462 then true
463463 else e("contract is temporary stopped"), if ((1 >= size(bZ.payments)))
464464 then true
465465 else e("maximum 1 payment"), if (if ((size(bZ.payments) == 0))
466466 then true
467467 else (bZ.payments[0].assetId == U))
468468 then true
469469 else e(makeString(["payment assetId should be:", S], " ")), if (Y(B))
470470 then true
471471 else e(makeString(["user address is not valid:", B], " "))]
472472 if ((bN == bN))
473473 then {
474474 let bX = (bl + bZ.payments[0].amount)
475475 [bk(B, bX, bm)]
476476 }
477477 else throw("Strict value is not equal to itself.")
478478 }
479479
480480
481481 func cb (z,B,cc,bZ) = {
482482 let cd = bn(B)
483483 let bl = cd._1
484484 let bm = cd._2
485485 let ce = if ((size(bZ.payments) == 0))
486486 then 0
487487 else bZ.payments[0].amount
488488 let cf = ((bm + bl) + ce)
489489 let bN = [if (!(W))
490490 then true
491491 else e("contract is temporary stopped"), if ((1 >= size(bZ.payments)))
492492 then true
493493 else e("maximum 1 payment"), if (if ((size(bZ.payments) == 0))
494494 then true
495495 else (bZ.payments[0].assetId == U))
496496 then true
497497 else e(makeString(["payment assetId should be:", S], " ")), if ((cc > 0))
498498 then true
499499 else e("amount should be greater than 0"), if ((cf >= cc))
500500 then true
501501 else e("amount should be less or equal (payment + available) amount"), if ((cc >= ce))
502502 then true
503503 else throw("amount should be greater or equal payment amount"), if (Y(z))
504504 then true
505505 else e(makeString(["node address is not valid:", z], " ")), if (Y(B))
506506 then true
507507 else e(makeString(["user address is not valid:", B], " "))]
508508 if ((bN == bN))
509509 then {
510510 let cg = aV(z)
511511 let ba = cg._1
512512 let bc = cg._2
513513 let bO = (bc + cc)
514514 let ch = bg(z, B)
515515 let be = ch._1
516516 let bf = ch._2
517517 let bP = (bf + cc)
518518 let ci = (cc - ce)
519519 let bR = max([0, (bm - ci)])
520520 let bX = min([bl, (bl + (bm - ci))])
521521 let bs = bt(B)
522522 let bS = (bs + cc)
523523 let bT = bD(B)
524524 ([aR(z, ba, bO), bd(z, B, be, bP), bk(B, bX, bR), br(B, bS), IntegerEntry(J(z), bO), IntegerEntry(L(z, B), bP)] ++ bT)
525525 }
526526 else throw("Strict value is not equal to itself.")
527527 }
528528
529529
530530 func cj (z,B,bZ) = {
531531 let bN = [if ((size(bZ.payments) == 1))
532532 then true
533533 else e("payment size should be exactly 1")]
534534 if ((bN == bN))
535535 then cb(z, B, bZ.payments[0].amount, bZ)
536536 else throw("Strict value is not equal to itself.")
537537 }
538538
539539
540540 func ck (cl) = {
541541 let cm = [if ((cl > 0))
542542 then true
543543 else e("period length should be greater than 0")]
544544 if ((cm == cm))
545545 then if ((s == -1))
546546 then [IntegerEntry(n, cl), IntegerEntry(m, height)]
547547 else [IntegerEntry(l, (t + 1)), IntegerEntry(m, v), IntegerEntry(n, cl)]
548548 else throw("Strict value is not equal to itself.")
549549 }
550550
551551
552552 func cn (B) = {
553553 let co = bu(B)
554554 let cp = co._1
555555 let bI = co._2
556556 let bw = co._3
557557 let cq = valueOrElse(getInteger(this, F(B)), 0)
558558 let cr = (cp + cq)
559559 let cs = valueOrElse(getInteger(this, H(B)), 0)
560560 let bB = (cs + bI)
561561 let ct = valueOrElse(getInteger(this, G(B)), 0)
562562 let cu = valueOrElse(getInteger(this, I(B)), 0)
563563 $Tuple5(cr, ct, bB, cu, bw)
564564 }
565565
566566
567567 func cv (B) = {
568568 let cw = cn(B)
569569 let cr = cw._1
570570 let ct = cw._2
571571 let bB = cw._3
572572 let cu = cw._4
573573 let bw = cw._5
574574 let cm = [if ((cr > 0))
575575 then true
576576 else e("nothing to claim")]
577577 if ((cm == cm))
578578 then {
579579 let cx = {
580580 let Q = U
581581 if ($isInstanceOf(Q, "ByteVector"))
582582 then {
583583 let cy = Q
584584 [Burn(cy, bB)]
585585 }
586586 else nil
587587 }
588588 ([IntegerEntry(E(B), bw), IntegerEntry(G(B), (ct + cr)), IntegerEntry(I(B), (cu + bB)), IntegerEntry(F(B), 0), IntegerEntry(H(B), 0), ScriptTransfer(addressFromStringValue(B), cr, V)] ++ cx)
589589 }
590590 else throw("Strict value is not equal to itself.")
591591 }
592592
593593
594594 @Callable(bZ)
595595 func setNewPeriodLength (cl) = {
596596 let bN = [if (ap(toString(bZ.caller)))
597597 then true
598598 else e("caller is not in adminList")]
599599 if ((bN == bN))
600600 then ck(cl)
601601 else throw("Strict value is not equal to itself.")
602602 }
603603
604604
605605
606606 @Callable(bZ)
607607 func claimUnits () = {
608608 let B = toString(bZ.caller)
609609 cv(B)
610610 }
611611
612612
613613
614614 @Callable(bZ)
615615 func setForceStopFlag (cz) = {
616616 let cm = [if (ap(toString(bZ.caller)))
617617 then true
618618 else e("caller is not in adminList")]
619619 if ((cm == cm))
620620 then [BooleanEntry(h, cz)]
621621 else throw("Strict value is not equal to itself.")
622622 }
623623
624624
625625
626626 @Callable(bZ)
627627 func setForceOutStopFlag (cz) = {
628628 let cm = [if (ap(toString(bZ.caller)))
629629 then true
630630 else e("caller is not in adminList")]
631631 if ((cm == cm))
632632 then [BooleanEntry(i, cz)]
633633 else throw("Strict value is not equal to itself.")
634634 }
635635
636636
637637
638638 @Callable(bZ)
639639 func getNodeDataREADONLY (z) = {
640640 let cA = aV(z)
641641 let cB = cA._1
642642 let aT = cA._2
643643 $Tuple2(nil, $Tuple5(u, cB, v, aT, height))
644644 }
645645
646646
647647
648648 @Callable(bZ)
649649 func getUserLeasingDataREADONLY (z,B) = {
650650 let cC = bg(z, B)
651651 let cB = cC._1
652652 let aT = cC._2
653653 $Tuple2(nil, $Tuple5(u, cB, v, aT, height))
654654 }
655655
656656
657657
658658 @Callable(bZ)
659659 func getUserDataREADONLY (B) = {
660660 let cD = bn(B)
661661 let bl = cD._1
662662 let bm = cD._2
663663 let bs = bt(B)
664664 let cE = cn(B)
665665 let cr = cE._1
666666 let ct = cE._2
667667 let bB = cE._3
668668 let cu = cE._4
669669 let bw = cE._5
670670 $Tuple2(nil, $Tuple11(u, bl, v, bm, bs, height, cr, ct, bB, cu, bw))
671671 }
672672
673673
674674
675675 @Callable(bZ)
676676 func leaseByAddress (z,B) = cj(z, B, bZ)
677677
678678
679679
680680 @Callable(bZ)
681681 func lease (z) = {
682682 let B = toString(bZ.caller)
683683 cj(z, B, bZ)
684684 }
685685
686686
687687
688688 @Callable(bZ)
689689 func leaseFromLocked (z,cF) = {
690690 let B = toString(bZ.caller)
691691 cb(z, B, cF, bZ)
692692 }
693693
694694
695695
696696 @Callable(bZ)
697697 func cancelLease (z,cF) = {
698698 let B = toString(bZ.caller)
699699 bJ(z, B, cF)
700700 }
701701
702702
703703
704704 @Callable(bZ)
705705 func claim (cF) = {
706706 let B = toString(bZ.caller)
707707 bU(B, cF)
708708 }
709709
710710
711711
712712 @Callable(bZ)
713713 func claimAll () = {
714714 let B = toString(bZ.caller)
715715 let cG = bn(B)
716716 let bl = cG._1
717717 let bm = cG._2
718718 let bN = [if ((bl > 0))
719719 then true
720720 else e("nothing to claim")]
721721 if ((bN == bN))
722722 then bU(B, bl)
723723 else throw("Strict value is not equal to itself.")
724724 }
725725
726726
727727
728728 @Callable(bZ)
729729 func stakeFor (B) = bY(B, bZ)
730730
731731
732732
733733 @Callable(bZ)
734734 func startUnitsVesting (x) = {
735735 let cH = 100000000000000000
736736 let cI = bZ.payments[0].amount
737737 let bx = (fraction(cH, d, cI) / x)
738738 let cm = [if (ap(toString(bZ.caller)))
739739 then true
740740 else e("caller is not in adminList"), if ((size(bZ.payments) == 1))
741741 then true
742742 else e("should be 1 payment"), if ((bx > 0))
743743 then true
744744 else e("units per block should be greated than 0")]
745745 if ((cm == cm))
746746 then [IntegerEntry(k, bx), IntegerEntry(o, height), IntegerEntry(p, x), StringEntry(j, O(bZ.payments[0].assetId))]
747747 else throw("Strict value is not equal to itself.")
748748 }
749749
750750
751751
752752 @Callable(bZ)
753753 func voteForTxId (ae) = {
754754 let aL = toBase58String(bZ.caller.bytes)
755755 let au = ad(ae)
756756 let as = [StringEntry(aj(), ae)]
757757 let cJ = getString(this, aj())
758758 let aP = [if ((size(fromBase58String(ae)) == ac))
759759 then true
760760 else e((ae + " is not valid txId")), if (if ((cJ == unit))
761761 then true
762762 else (value(cJ) != ae))
763763 then true
764764 else e((ae + " is already allowed"))]
765765 if ((aP == aP))
766766 then aK(aL, au, ab, as)
767767 else throw("Strict value is not equal to itself.")
768768 }
769769
770770
771771 @Verifier(cK)
772772 func cL () = {
773773 let cM = (cK.id == fromBase58String(valueOrElse(getString(this, aj()), "")))
774774 let cN = if ((size(an()) >= ab))
775775 then false
776776 else sigVerify(cK.bodyBytes, cK.proofs[0], cK.senderPublicKey)
777777 if (cM)
778778 then true
779779 else cN
780780 }
781781

github/deemru/w8io/169f3d6 
81.93 ms