tx · 5kig3UQyBqXAuNNrokWxkS13UtjRKtYo9Wb1kxx7NotR

3NCWFHDzdPHZC6636ZkMLNDup9mjpbTLs7h:  -0.02700000 Waves

2024.10.21 15:48 [3336628] smart account 3NCWFHDzdPHZC6636ZkMLNDup9mjpbTLs7h > SELF 0.00000000 Waves

{ "type": 13, "id": "5kig3UQyBqXAuNNrokWxkS13UtjRKtYo9Wb1kxx7NotR", "fee": 2700000, "feeAssetId": null, "timestamp": 1729514894849, "version": 1, "sender": "3NCWFHDzdPHZC6636ZkMLNDup9mjpbTLs7h", "senderPublicKey": "3z8Q6Zu3KppVmn6fJJvrLc1Wo3krVHSvfaNcerm82md2", "proofs": [ "47yg1wMNPaABADn3XH5NkemQTCAoUuVguAcvwkZBx6kBRyu33kmfsD9ajmphGvt5qFviCNNJzN8NL3QoLyEyAbKd" ], "script": "base64:BgJQCAISAwoBARIAEgMKAQQSAwoBBBIDCgEIEgQKAggIEgMKAQgSBAoCCAgSAwoBCBIECgIIARIECgIIARIDCgEBEgASAwoBCBIDCgEBEgMKAQhOAAxjb250cmFjdEZpbGUCEWwybXBfbGVhc2luZy5yaWRlAANTRVACAl9fABJCTE9DS1NfSU5fSU5URVJWQUwA6AcABnNjYWxlOACAwtcvAQh0aHJvd0VycgEDbXNnCQACAQkArAICCQCsAgIFDGNvbnRyYWN0RmlsZQICOiAFA21zZwAMa2V5TDJBc3NldElkCQC5CQIJAMwIAgICJXMJAMwIAgIHYXNzZXRJZAUDbmlsBQNTRVAADGtleUZvcmNlU3RvcAkAuQkCCQDMCAICAiVzCQDMCAICCWZvcmNlU3RvcAUDbmlsBQNTRVAAD2tleUZvcmNlT3V0U3RvcAkAuQkCCQDMCAICAiVzCQDMCAICDGZvcmNlT3V0U3RvcAUDbmlsBQNTRVAAD2tleVVuaXRzQXNzZXRJZAkAuQkCCQDMCAICAiVzCQDMCAICDHVuaXRzQXNzZXRJZAUDbmlsBQNTRVAAFmtleVVuaXRzUGVyQmxvY2tTY2FsZTgJALkJAgkAzAgCAgIlcwkAzAgCAg11bml0c1BlckJsb2NrBQNuaWwFA1NFUAARa2V5UGVyaW9kT2Zmc2V0SWQJALkJAgkAzAgCAgIlcwkAzAgCAghvZmZzZXRJZAUDbmlsBQNTRVAAFWtleVBlcmlvZE9mZnNldEhlaWdodAkAuQkCCQDMCAICAiVzCQDMCAICDG9mZnNldEhlaWdodAUDbmlsBQNTRVAAD2tleVBlcmlvZExlbmd0aAkAuQkCCQDMCAICAiVzCQDMCAICDHBlcmlvZExlbmd0aAUDbmlsBQNTRVAAGGtleVVuaXRzQ2xhaW1TdGFydEhlaWdodAkAuQkCCQDMCAICAiVzCQDMCAICFXVuaXRzQ2xhaW1TdGFydEhlaWdodAUDbmlsBQNTRVAAFWtleVVuaXRzQ2xhaW1JbnRlcnZhbAkAuQkCCQDMCAICAiVzCQDMCAICEnVuaXRzQ2xhaW1JbnRlcnZhbAUDbmlsBQNTRVAADnBlcmlvZE9mZnNldElkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFEWtleVBlcmlvZE9mZnNldElkAAAADHBlcmlvZExlbmd0aAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQ9rZXlQZXJpb2RMZW5ndGgAkE4AEnBlcmlvZE9mZnNldEhlaWdodAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRVrZXlQZXJpb2RPZmZzZXRIZWlnaHQA////////////AQAPY3VycmVudFBlcmlvZElkAwMJAGYCBQZoZWlnaHQFEnBlcmlvZE9mZnNldEhlaWdodAkBAiE9AgUScGVyaW9kT2Zmc2V0SGVpZ2h0AP///////////wEHCQBkAgkAaQIJAGUCBQZoZWlnaHQFEnBlcmlvZE9mZnNldEhlaWdodAUMcGVyaW9kTGVuZ3RoBQ5wZXJpb2RPZmZzZXRJZAkAlgMBCQDMCAIAAAkAzAgCCQBlAgUOcGVyaW9kT2Zmc2V0SWQAAQUDbmlsABNjdXJyZW50UGVyaW9kSGVpZ2h0AwMJAAACBRJwZXJpb2RPZmZzZXRIZWlnaHQA////////////AQYDCQAAAgUPY3VycmVudFBlcmlvZElkAAAJAGYCBRJwZXJpb2RPZmZzZXRIZWlnaHQFBmhlaWdodAcAAAkAZAIFEnBlcmlvZE9mZnNldEhlaWdodAkAaAIJAGUCBQ9jdXJyZW50UGVyaW9kSWQFDnBlcmlvZE9mZnNldElkBQxwZXJpb2RMZW5ndGgAEG5leHRQZXJpb2RIZWlnaHQDAwkAAAIFEnBlcmlvZE9mZnNldEhlaWdodAD///////////8BBgMJAAACBQ9jdXJyZW50UGVyaW9kSWQAAAkAZgIFEnBlcmlvZE9mZnNldEhlaWdodAUGaGVpZ2h0BwAACQBkAgUTY3VycmVudFBlcmlvZEhlaWdodAUMcGVyaW9kTGVuZ3RoABV1bml0c0NsYWltU3RhcnRIZWlnaHQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUYa2V5VW5pdHNDbGFpbVN0YXJ0SGVpZ2h0BQZoZWlnaHQAEnVuaXRzQ2xhaW1JbnRlcnZhbAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRVrZXlVbml0c0NsYWltSW50ZXJ2YWwAAAESa2V5TGVhc2luZ05vZGVEYXRhAQtub2RlQWRkcmVzcwkAuQkCCQDMCAICAiVzCQDMCAIFC25vZGVBZGRyZXNzBQNuaWwFA1NFUAEWa2V5VXNlckxlYXNpbmdOb2RlRGF0YQILdXNlckFkZHJlc3MLbm9kZUFkZHJlc3MJALkJAgkAzAgCAgQlcyVzCQDMCAIFC25vZGVBZGRyZXNzCQDMCAIFC3VzZXJBZGRyZXNzBQNuaWwFA1NFUAEOa2V5VXNlclRvQ2xhaW0BC3VzZXJBZGRyZXNzCQC5CQIJAMwIAgIEJXMlcwkAzAgCAgd0b0NsYWltCQDMCAIFC3VzZXJBZGRyZXNzBQNuaWwFA1NFUAESa2V5VXNlclRvdGFsTG9ja2VkAQt1c2VyQWRkcmVzcwkAuQkCCQDMCAICBCVzJXMJAMwIAgIPdXNlclRvdGFsTG9ja2VkCQDMCAIFC3VzZXJBZGRyZXNzBQNuaWwFA1NFUAEUa2V5VW5pdHNDbGFpbWVkQmxvY2sBC3VzZXJBZGRyZXNzCQC5CQIJAMwIAgIEJXMlcwkAzAgCAhF1bml0c0NsYWltZWRCbG9jawkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsBQNTRVABEGtleVVubG9ja2VkVW5pdHMBC3VzZXJBZGRyZXNzCQC5CQIJAMwIAgIEJXMlcwkAzAgCAg11bmxvY2tlZFVuaXRzCQDMCAIFC3VzZXJBZGRyZXNzBQNuaWwFA1NFUAEUa2V5VG90YWxVbml0c0NsYWltZWQBC3VzZXJBZGRyZXNzCQC5CQIJAMwIAgIEJXMlcwkAzAgCAhF0b3RhbFVuaXRzQ2xhaW1lZAkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsBQNTRVABC2tleUwyVG9CdXJuAQt1c2VyQWRkcmVzcwkAuQkCCQDMCAICBCVzJXMJAMwIAgIIbDJUb0J1cm4JAMwIAgULdXNlckFkZHJlc3MFA25pbAUDU0VQARBrZXlMMkJ1cm5lZFRvdGFsAQt1c2VyQWRkcmVzcwkAuQkCCQDMCAICBCVzJXMJAMwIAgINbDJCdXJuZWRUb3RhbAkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsBQNTRVABFmtleU5vZGVMZWFzaW5nQnlIZWlnaHQBC25vZGVBZGRyZXNzBAFoAwkAAAIFEnBlcmlvZE9mZnNldEhlaWdodAD///////////8BAAAFBmhlaWdodAkAuQkCCQDMCAICBCVzJWQJAMwIAgULbm9kZUFkZHJlc3MJAMwIAgkApAMBBQFoBQNuaWwFA1NFUAEWa2V5VXNlckxlYXNpbmdCeUhlaWdodAILbm9kZUFkZHJlc3MLdXNlckFkZHJlc3MEAWgDCQAAAgUScGVyaW9kT2Zmc2V0SGVpZ2h0AP///////////wEAAAUGaGVpZ2h0CQC5CQIJAMwIAgIGJXMlcyVkCQDMCAIFC25vZGVBZGRyZXNzCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIJAKQDAQUBaAUDbmlsBQNTRVABEmFzc2V0U3RyaW5nVG9CeXRlcwENYXNzZXRJZFN0cmluZwMJAAACBQ1hc3NldElkU3RyaW5nAgVXQVZFUwUEdW5pdAkA2QQBBQ1hc3NldElkU3RyaW5nARJhc3NldEJ5dGVzVG9TdHJpbmcBB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYQUHJG1hdGNoMAkA2AQBBQFhAgVXQVZFUwAPbDJBc3NldElkU3RyaW5nCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFDGtleUwyQXNzZXRJZAIFV0FWRVMAEnVuaXRzQXNzZXRJZFN0cmluZwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQ9rZXlVbml0c0Fzc2V0SWQCBVdBVkVTAA5sMkFzc2V0SWRCeXRlcwkBEmFzc2V0U3RyaW5nVG9CeXRlcwEFD2wyQXNzZXRJZFN0cmluZwARdW5pdHNBc3NldElkQnl0ZXMJARJhc3NldFN0cmluZ1RvQnl0ZXMBBRJ1bml0c0Fzc2V0SWRTdHJpbmcAC2lzRm9yY2VTdG9wCQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFDGtleUZvcmNlU3RvcAcADmlzRm9yY2VPdXRTdG9wCQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFD2tleUZvcmNlT3V0U3RvcAcBDmlzVmFsaWRBZGRyZXNzAQdhZGRyZXNzBAckbWF0Y2gwCQCmCAEFB2FkZHJlc3MDCQABAgUHJG1hdGNoMAIHQWRkcmVzcwQBYQUHJG1hdGNoMAYHAA9BRE1JTl9MSVNUX1NJWkUABQAGUVVPUlVNAAMAEVRYSURfQllURVNfTEVOR1RIACABGGtleUFsbG93ZWRUeElkVm90ZVByZWZpeAEEdHhJZAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAglhbGxvd1R4SWQJAMwIAgUEdHhJZAUDbmlsBQNTRVABEGtleUZ1bGxBZG1pblZvdGUCBnByZWZpeAxhZG1pbkFkZHJlc3MJALkJAgkAzAgCBQZwcmVmaXgJAMwIAgUMYWRtaW5BZGRyZXNzBQNuaWwFA1NFUAETa2V5QWRtaW5BZGRyZXNzTGlzdAAJALkJAgkAzAgCAgIlcwkAzAgCAhBhZG1pbkFkZHJlc3NMaXN0BQNuaWwFA1NFUAEOa2V5QWxsb3dlZFR4SWQACQC5CQIJAMwIAgICJXMJAMwIAgIEdHhJZAUDbmlsBQNTRVABDGdldEFkbWluVm90ZQIGcHJlZml4BWFkbWluBAd2b3RlS2V5CQEQa2V5RnVsbEFkbWluVm90ZQIFBnByZWZpeAUFYWRtaW4JAQt2YWx1ZU9yRWxzZQIJAJ8IAQUHdm90ZUtleQAAAQ1nZXRBZG1pbnNMaXN0AAQHJG1hdGNoMAkAnQgCBQR0aGlzCQETa2V5QWRtaW5BZGRyZXNzTGlzdAADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQC1CQIFAXMFA1NFUAUDbmlsAQ1pc0luQWRtaW5MaXN0AQdhZGRyZXNzCQEPY29udGFpbnNFbGVtZW50AgkBDWdldEFkbWluc0xpc3QABQdhZGRyZXNzARJnZW5Wb3Rlc0tleXNIZWxwZXICAWEMYWRtaW5BZGRyZXNzBAskdDA1MTQ3NTE3MQUBYQQGcmVzdWx0CAULJHQwNTE0NzUxNzECXzEEBnByZWZpeAgFCyR0MDUxNDc1MTcxAl8yCQCUCgIJAM0IAgUGcmVzdWx0CQEQa2V5RnVsbEFkbWluVm90ZQIFBnByZWZpeAUMYWRtaW5BZGRyZXNzBQZwcmVmaXgBDGdlblZvdGVzS2V5cwEJa2V5UHJlZml4BAlhZG1pbkxpc3QJARNrZXlBZG1pbkFkZHJlc3NMaXN0AAQLJHQwNTMxODU0MDIKAAIkbAkBDWdldEFkbWluc0xpc3QACgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCBQNuaWwFCWtleVByZWZpeAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQESZ2VuVm90ZXNLZXlzSGVscGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA1CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQQGcmVzdWx0CAULJHQwNTMxODU0MDICXzEEBnByZWZpeAgFCyR0MDUzMTg1NDAyAl8yBQZyZXN1bHQBEGNvdW50Vm90ZXNIZWxwZXICBnJlc3VsdAd2b3RlS2V5CQBkAgUGcmVzdWx0CQELdmFsdWVPckVsc2UCCQCfCAEFB3ZvdGVLZXkAAAEKY291bnRWb3RlcwEGcHJlZml4BAV2b3RlcwkBDGdlblZvdGVzS2V5cwEFBnByZWZpeAoAAiRsBQV2b3RlcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEQY291bnRWb3Rlc0hlbHBlcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgNQkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUBEGNsZWFyVm90ZXNIZWxwZXICBnJlc3VsdANrZXkJAM0IAgUGcmVzdWx0CQELRGVsZXRlRW50cnkBBQNrZXkBE2dldENsZWFyVm90ZUVudHJpZXMBBnByZWZpeAQFdm90ZXMJAQxnZW5Wb3Rlc0tleXMBBQZwcmVmaXgKAAIkbAUFdm90ZXMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBEGNsZWFyVm90ZXNIZWxwZXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDUJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAQx2b3RlSU5URVJOQUwEE2NhbGxlckFkZHJlc3NTdHJpbmcJa2V5UHJlZml4CG1pblZvdGVzCnZvdGVSZXN1bHQEB3ZvdGVLZXkJARBrZXlGdWxsQWRtaW5Wb3RlAgUJa2V5UHJlZml4BRNjYWxsZXJBZGRyZXNzU3RyaW5nBBBhZG1pbkN1cnJlbnRWb3RlCQEMZ2V0QWRtaW5Wb3RlAgUJa2V5UHJlZml4BRNjYWxsZXJBZGRyZXNzU3RyaW5nBANlcnIDCQEBIQEJAQ1pc0luQWRtaW5MaXN0AQUTY2FsbGVyQWRkcmVzc1N0cmluZwkBCHRocm93RXJyAQkArAICCQCsAgICCUFkZHJlc3M6IAUTY2FsbGVyQWRkcmVzc1N0cmluZwISIG5vdCBpbiBBZG1pbiBsaXN0AwkAAAIFEGFkbWluQ3VycmVudFZvdGUAAQkBCHRocm93RXJyAQkArAICBQd2b3RlS2V5AhIgeW91IGFscmVhZHkgdm90ZWQFBHVuaXQDCQAAAgUDZXJyBQNlcnIEBXZvdGVzCQEKY291bnRWb3RlcwEFCWtleVByZWZpeAMJAGcCCQBkAgUFdm90ZXMAAQUIbWluVm90ZXMEEGNsZWFyVm90ZUVudHJpZXMJARNnZXRDbGVhclZvdGVFbnRyaWVzAQUJa2V5UHJlZml4CQDOCAIFEGNsZWFyVm90ZUVudHJpZXMFCnZvdGVSZXN1bHQJAMwIAgkBDEludGVnZXJFbnRyeQIFB3ZvdGVLZXkAAQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuARNnZXRMZWFzaW5nTm9kZUVudHJ5Awtub2RlQWRkcmVzcw1jdXJyZW50TGVhc2VkCm5leHRMZWFzZWQEC3ZhbHVlU3RyaW5nCQC5CQIJAMwIAgIIJWQlZCVkJWQJAMwIAgkApAMBBRNjdXJyZW50UGVyaW9kSGVpZ2h0CQDMCAIJAKQDAQUNY3VycmVudExlYXNlZAkAzAgCCQCkAwEFEG5leHRQZXJpb2RIZWlnaHQJAMwIAgkApAMBBQpuZXh0TGVhc2VkBQNuaWwFA1NFUAkBC1N0cmluZ0VudHJ5AgkBEmtleUxlYXNpbmdOb2RlRGF0YQEFC25vZGVBZGRyZXNzBQt2YWx1ZVN0cmluZwESZ2V0TGVhc2luZ05vZGVEYXRhAQtub2RlQWRkcmVzcwQYbGVhc2luZ05vZGVEYXRhU3RyaW5nUmF3CQCdCAIFBHRoaXMJARJrZXlMZWFzaW5nTm9kZURhdGEBBQtub2RlQWRkcmVzcwQHJG1hdGNoMAUYbGVhc2luZ05vZGVEYXRhU3RyaW5nUmF3AwkAAQIFByRtYXRjaDACBlN0cmluZwQCZHMFByRtYXRjaDAECGRhdGFMaXN0CQC1CQIFAmRzBQNTRVAEEW5vZGVDdXJyZW50UGVyaW9kCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZGF0YUxpc3QAAQQRbm9kZUN1cnJlbnRMZWFzZWQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhkYXRhTGlzdAACBA5ub2RlTmV4dFBlcmlvZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCGRhdGFMaXN0AAMEDm5vZGVOZXh0TGVhc2VkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZGF0YUxpc3QABAMDCQBmAgUObm9kZU5leHRQZXJpb2QFBmhlaWdodAYJAAACBRJwZXJpb2RPZmZzZXRIZWlnaHQA////////////AQkAlAoCBRFub2RlQ3VycmVudExlYXNlZAUObm9kZU5leHRMZWFzZWQJAJQKAgUObm9kZU5leHRMZWFzZWQFDm5vZGVOZXh0TGVhc2VkCQCUCgIAAAAAARNnZXRVc2VyTGVhc2luZ0VudHJ5BAtub2RlQWRkcmVzcwt1c2VyQWRkcmVzcxF1c2VyQ3VycmVudExlYXNlZA51c2VyTmV4dExlYXNlZAQLdmFsdWVTdHJpbmcJALkJAgkAzAgCAgglZCVkJWQlZAkAzAgCCQCkAwEFE2N1cnJlbnRQZXJpb2RIZWlnaHQJAMwIAgkApAMBBRF1c2VyQ3VycmVudExlYXNlZAkAzAgCCQCkAwEFEG5leHRQZXJpb2RIZWlnaHQJAMwIAgkApAMBBQ51c2VyTmV4dExlYXNlZAUDbmlsBQNTRVAJAQtTdHJpbmdFbnRyeQIJARZrZXlVc2VyTGVhc2luZ05vZGVEYXRhAgULdXNlckFkZHJlc3MFC25vZGVBZGRyZXNzBQt2YWx1ZVN0cmluZwESZ2V0VXNlckxlYXNpbmdEYXRhAgtub2RlQWRkcmVzcwt1c2VyQWRkcmVzcwQYbGVhc2luZ1VzZXJEYXRhU3RyaW5nUmF3CQCdCAIFBHRoaXMJARZrZXlVc2VyTGVhc2luZ05vZGVEYXRhAgULdXNlckFkZHJlc3MFC25vZGVBZGRyZXNzBAckbWF0Y2gwBRhsZWFzaW5nVXNlckRhdGFTdHJpbmdSYXcDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAJkcwUHJG1hdGNoMAQIZGF0YUxpc3QJALUJAgUCZHMFA1NFUAQRdXNlckN1cnJlbnRQZXJpb2QJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhkYXRhTGlzdAABBBF1c2VyQ3VycmVudExlYXNlZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCGRhdGFMaXN0AAIEDnVzZXJOZXh0UGVyaW9kCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZGF0YUxpc3QAAwQOdXNlck5leHRMZWFzZWQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhkYXRhTGlzdAAEAwMJAGYCBQ51c2VyTmV4dFBlcmlvZAUGaGVpZ2h0BgkAAAIFEnBlcmlvZE9mZnNldEhlaWdodAD///////////8BCQCUCgIFEXVzZXJDdXJyZW50TGVhc2VkBQ51c2VyTmV4dExlYXNlZAkAlAoCBQ51c2VyTmV4dExlYXNlZAUOdXNlck5leHRMZWFzZWQJAJQKAgAAAAABE2dldFVzZXJUb0NsYWltRW50cnkDC3VzZXJBZGRyZXNzB3RvQ2xhaW0IdG9VbmxvY2sEC3ZhbHVlU3RyaW5nCQC5CQIJAMwIAgIIJWQlZCVkJWQJAMwIAgkApAMBBRNjdXJyZW50UGVyaW9kSGVpZ2h0CQDMCAIJAKQDAQUHdG9DbGFpbQkAzAgCCQCkAwEFEG5leHRQZXJpb2RIZWlnaHQJAMwIAgkApAMBBQh0b1VubG9jawUDbmlsBQNTRVAJAQtTdHJpbmdFbnRyeQIJAQ5rZXlVc2VyVG9DbGFpbQEFC3VzZXJBZGRyZXNzBQt2YWx1ZVN0cmluZwEVZ2V0VXNlclRvQ2xhaW1CYWxhbmNlAQt1c2VyQWRkcmVzcwQYdXNlclRvQ2xhaW1EYXRhU3RyaW5nUmF3CQCdCAIFBHRoaXMJAQ5rZXlVc2VyVG9DbGFpbQEFC3VzZXJBZGRyZXNzBAckbWF0Y2gwBRh1c2VyVG9DbGFpbURhdGFTdHJpbmdSYXcDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAJkcwUHJG1hdGNoMAQIZGF0YUxpc3QJALUJAgUCZHMFA1NFUAQNY3VycmVudFBlcmlvZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCGRhdGFMaXN0AAEEB3RvQ2xhaW0JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhkYXRhTGlzdAACBApuZXh0UGVyaW9kCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZGF0YUxpc3QAAwQIdG9VbmxvY2sJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhkYXRhTGlzdAAEAwMJAGYCBQpuZXh0UGVyaW9kBQZoZWlnaHQGCQAAAgUPY3VycmVudFBlcmlvZElkAAAJAJQKAgUHdG9DbGFpbQUIdG9VbmxvY2sJAJQKAgkAZAIFB3RvQ2xhaW0FCHRvVW5sb2NrAAAJAJQKAgAAAAABF2dldFVzZXJUb3RhbExvY2tlZEVudHJ5Agt1c2VyQWRkcmVzcw91c2VyVG90YWxMb2NrZWQJAQxJbnRlZ2VyRW50cnkCCQESa2V5VXNlclRvdGFsTG9ja2VkAQULdXNlckFkZHJlc3MFD3VzZXJUb3RhbExvY2tlZAESZ2V0VXNlclRvdGFsTG9ja2VkAQt1c2VyQWRkcmVzcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQESa2V5VXNlclRvdGFsTG9ja2VkAQULdXNlckFkZHJlc3MAAAEVY2FsY3VsYXRlVW5pdHNUb0NsYWltAQt1c2VyQWRkcmVzcwQPY2xhaW1lZEJsb2NrS2V5CQEUa2V5VW5pdHNDbGFpbWVkQmxvY2sBBQt1c2VyQWRkcmVzcwQMY2xhaW1lZEJsb2NrCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFD2NsYWltZWRCbG9ja0tleQUVdW5pdHNDbGFpbVN0YXJ0SGVpZ2h0BBN1bml0c1BlckJsb2NrU2NhbGU4CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFFmtleVVuaXRzUGVyQmxvY2tTY2FsZTgAAAQMY3VycmVudEJsb2NrCQCXAwEJAMwIAgkAZAIFFXVuaXRzQ2xhaW1TdGFydEhlaWdodAUSdW5pdHNDbGFpbUludGVydmFsCQDMCAIFBmhlaWdodAUDbmlsBAxibG9ja3NQYXNzZWQJAGUCBQxjdXJyZW50QmxvY2sFDGNsYWltZWRCbG9jawQMYW1vdW50U3Rha2VkCQESZ2V0VXNlclRvdGFsTG9ja2VkAQULdXNlckFkZHJlc3MED3VuaXRzVG9DbGFpbU5vdwkAawMJAGgCBRN1bml0c1BlckJsb2NrU2NhbGU4BQxibG9ja3NQYXNzZWQFDGFtb3VudFN0YWtlZAUGc2NhbGU4BAhsMlRvQnVybgkAawMFDGFtb3VudFN0YWtlZAUMYmxvY2tzUGFzc2VkBRJ1bml0c0NsYWltSW50ZXJ2YWwJAJUKAwUPdW5pdHNUb0NsYWltTm93BQhsMlRvQnVybgUMY2xhaW1lZEJsb2NrARRnZXRVbmxvY2tVbml0c0FjdGlvbgELdXNlckFkZHJlc3MEDmtVbmxvY2tlZFVuaXRzCQEQa2V5VW5sb2NrZWRVbml0cwEFC3VzZXJBZGRyZXNzBA11bmxvY2tlZFVuaXRzCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFDmtVbmxvY2tlZFVuaXRzAAAECWtMMlRvQnVybgkBC2tleUwyVG9CdXJuAQULdXNlckFkZHJlc3MECGwyVG9CdXJuCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFCWtMMlRvQnVybgAABA0kdDAxMTM0MzExNDI4CQEVY2FsY3VsYXRlVW5pdHNUb0NsYWltAQULdXNlckFkZHJlc3MED3VuaXRzVG9DbGFpbU5vdwgFDSR0MDExMzQzMTE0MjgCXzEEC2wyVG9CdXJuTm93CAUNJHQwMTEzNDMxMTQyOAJfMgQMY2xhaW1lZEJsb2NrCAUNJHQwMTEzNDMxMTQyOAJfMwMJAGcCAAAFD3VuaXRzVG9DbGFpbU5vdwUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEUa2V5VW5pdHNDbGFpbWVkQmxvY2sBBQt1c2VyQWRkcmVzcwUMY2xhaW1lZEJsb2NrCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQlrTDJUb0J1cm4JAGQCBQhsMlRvQnVybgULbDJUb0J1cm5Ob3cJAMwIAgkBDEludGVnZXJFbnRyeQIFDmtVbmxvY2tlZFVuaXRzCQBkAgUNdW5sb2NrZWRVbml0cwUPdW5pdHNUb0NsYWltTm93BQNuaWwBEWdldFVuc3Rha2VBY3Rpb25zAwtub2RlQWRkcmVzcwt1c2VyQWRkcmVzcw11bnN0YWtlQW1vdW50BA0kdDAxMTgyMzExODk2CQESZ2V0TGVhc2luZ05vZGVEYXRhAQULbm9kZUFkZHJlc3MEEW5vZGVDdXJyZW50TGVhc2VkCAUNJHQwMTE4MjMxMTg5NgJfMQQObm9kZU5leHRMZWFzZWQIBQ0kdDAxMTgyMzExODk2Al8yBA0kdDAxMTkwMTExOTg3CQESZ2V0VXNlckxlYXNpbmdEYXRhAgULbm9kZUFkZHJlc3MFC3VzZXJBZGRyZXNzBBF1c2VyQ3VycmVudExlYXNlZAgFDSR0MDExOTAxMTE5ODcCXzEEDnVzZXJOZXh0TGVhc2VkCAUNJHQwMTE5MDExMTk4NwJfMgQGY2hlY2tzCQDMCAIDCQEBIQEFC2lzRm9yY2VTdG9wBgkBCHRocm93RXJyAQIdY29udHJhY3QgaXMgdGVtcG9yYXJ5IHN0b3BwZWQJAMwIAgMJAQEhAQUOaXNGb3JjZU91dFN0b3AGCQEIdGhyb3dFcnIBAh11bnN0YWtlIGlzIHRlbXBvcmFyeSBkaXNhYmxlZAkAzAgCAwkAZgIFDXVuc3Rha2VBbW91bnQAAAYJAQh0aHJvd0VycgECJ3Vuc3Rha2UgYW1vdW50IHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMAkAzAgCAwkAZwIFDnVzZXJOZXh0TGVhc2VkBQ11bnN0YWtlQW1vdW50BgkBCHRocm93RXJyAQI5dW5zdGFrZSBhbW91bnQgc2hvdWxkIGJlIGxlc3Mgb3IgZXF1YWwgdXNlciBzdGFrZWQgYW1vdW50CQDMCAIDCQBnAgUObm9kZU5leHRMZWFzZWQFDXVuc3Rha2VBbW91bnQGCQEIdGhyb3dFcnIBAjl1bnN0YWtlIGFtb3VudCBzaG91bGQgYmUgbGVzcyBvciBlcXVhbCBub2RlIHN0YWtlZCBhbW91bnQJAMwIAgMJAQ5pc1ZhbGlkQWRkcmVzcwEFC25vZGVBZGRyZXNzBgkBCHRocm93RXJyAQkAuQkCCQDMCAICGm5vZGUgYWRkcmVzcyBpcyBub3QgdmFsaWQ6CQDMCAIFC25vZGVBZGRyZXNzBQNuaWwCASAJAMwIAgMJAQ5pc1ZhbGlkQWRkcmVzcwEFC3VzZXJBZGRyZXNzBgkBCHRocm93RXJyAQkAuQkCCQDMCAICGnVzZXIgYWRkcmVzcyBpcyBub3QgdmFsaWQ6CQDMCAIFC3VzZXJBZGRyZXNzBQNuaWwCASAFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQQbmV3Tm9kZU5leHRMZWFzZQkAZQIFDm5vZGVOZXh0TGVhc2VkBQ11bnN0YWtlQW1vdW50BBFuZXdVc2VyTmV4dExlYXNlZAkAZQIFDnVzZXJOZXh0TGVhc2VkBQ11bnN0YWtlQW1vdW50BA0kdDAxMjg3MTEyOTMxCQEVZ2V0VXNlclRvQ2xhaW1CYWxhbmNlAQULdXNlckFkZHJlc3MEB3RvQ2xhaW0IBQ0kdDAxMjg3MTEyOTMxAl8xBAh0b1VubG9jawgFDSR0MDEyODcxMTI5MzECXzIEC25ld1RvVW5sb2NrCQBkAgUIdG9VbmxvY2sFDXVuc3Rha2VBbW91bnQED3VzZXJUb3RhbExvY2tlZAkBEmdldFVzZXJUb3RhbExvY2tlZAEFC3VzZXJBZGRyZXNzBBJuZXdVc2VyVG90YWxMb2NrZWQJAGUCBQ91c2VyVG90YWxMb2NrZWQFDXVuc3Rha2VBbW91bnQEFHVuaXRzVW5sb2NrZWRBY3Rpb25zCQEUZ2V0VW5sb2NrVW5pdHNBY3Rpb24BBQt1c2VyQWRkcmVzcwkAzggCCQDMCAIJARNnZXRMZWFzaW5nTm9kZUVudHJ5AwULbm9kZUFkZHJlc3MFEW5vZGVDdXJyZW50TGVhc2VkBRBuZXdOb2RlTmV4dExlYXNlCQDMCAIJARNnZXRVc2VyTGVhc2luZ0VudHJ5BAULbm9kZUFkZHJlc3MFC3VzZXJBZGRyZXNzBRF1c2VyQ3VycmVudExlYXNlZAURbmV3VXNlck5leHRMZWFzZWQJAMwIAgkBE2dldFVzZXJUb0NsYWltRW50cnkDBQt1c2VyQWRkcmVzcwUHdG9DbGFpbQULbmV3VG9VbmxvY2sJAMwIAgkBF2dldFVzZXJUb3RhbExvY2tlZEVudHJ5AgULdXNlckFkZHJlc3MFEm5ld1VzZXJUb3RhbExvY2tlZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFmtleU5vZGVMZWFzaW5nQnlIZWlnaHQBBQtub2RlQWRkcmVzcwUQbmV3Tm9kZU5leHRMZWFzZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFmtleVVzZXJMZWFzaW5nQnlIZWlnaHQCBQtub2RlQWRkcmVzcwULdXNlckFkZHJlc3MFEW5ld1VzZXJOZXh0TGVhc2VkBQNuaWwFFHVuaXRzVW5sb2NrZWRBY3Rpb25zCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuARdnZXRDbGFpbVVubG9ja2VkQWN0aW9ucwILdXNlckFkZHJlc3MLY2xhaW1BbW91bnQEDSR0MDEzNzUwMTM4MTAJARVnZXRVc2VyVG9DbGFpbUJhbGFuY2UBBQt1c2VyQWRkcmVzcwQHdG9DbGFpbQgFDSR0MDEzNzUwMTM4MTACXzEECHRvVW5sb2NrCAUNJHQwMTM3NTAxMzgxMAJfMgQGY2hlY2tzCQDMCAIDCQEBIQEFC2lzRm9yY2VTdG9wBgkBCHRocm93RXJyAQIdY29udHJhY3QgaXMgdGVtcG9yYXJ5IHN0b3BwZWQJAMwIAgMJAQEhAQUOaXNGb3JjZU91dFN0b3AGCQEIdGhyb3dFcnIBAhtjbGFpbSBpcyB0ZW1wb3JhcnkgZGlzYWJsZWQJAMwIAgMJAGYCBQtjbGFpbUFtb3VudAAABgkBCHRocm93RXJyAQIlY2xhaW0gYW1vdW50IHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMAkAzAgCAwkAZwIFB3RvQ2xhaW0FC2NsYWltQW1vdW50BgkBCHRocm93RXJyAQI0Y2xhaW0gYW1vdW50IHNob3VsZCBiZSBsZXNzIG9yIGVxdWFsIHVubG9ja2VkIGFtb3VudAkAzAgCAwkBDmlzVmFsaWRBZGRyZXNzAQULdXNlckFkZHJlc3MGCQEIdGhyb3dFcnIBCQC5CQIJAMwIAgIadXNlciBhZGRyZXNzIGlzIG5vdCB2YWxpZDoJAMwIAgULdXNlckFkZHJlc3MFA25pbAIBIAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBApuZXdUb0NsYWltCQBlAgUHdG9DbGFpbQULY2xhaW1BbW91bnQJAMwIAgkBE2dldFVzZXJUb0NsYWltRW50cnkDBQt1c2VyQWRkcmVzcwUKbmV3VG9DbGFpbQUIdG9VbmxvY2sJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQULdXNlckFkZHJlc3MFC2NsYWltQW1vdW50BQ5sMkFzc2V0SWRCeXRlcwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuARJnZXRTdGFrZUZvckFjdGlvbnMCC3VzZXJBZGRyZXNzAWkEDSR0MDE0NTc2MTQ2MzYJARVnZXRVc2VyVG9DbGFpbUJhbGFuY2UBBQt1c2VyQWRkcmVzcwQHdG9DbGFpbQgFDSR0MDE0NTc2MTQ2MzYCXzEECHRvVW5sb2NrCAUNJHQwMTQ1NzYxNDYzNgJfMgQGY2hlY2tzCQDMCAIDCQEBIQEFC2lzRm9yY2VTdG9wBgkBCHRocm93RXJyAQIdY29udHJhY3QgaXMgdGVtcG9yYXJ5IHN0b3BwZWQJAMwIAgMJAGcCAAEJAJADAQgFAWkIcGF5bWVudHMGCQEIdGhyb3dFcnIBAhFtYXhpbXVtIDEgcGF5bWVudAkAzAgCAwMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAAGCQAAAggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQ5sMkFzc2V0SWRCeXRlcwYJAQh0aHJvd0VycgEJALkJAgkAzAgCAhpwYXltZW50IGFzc2V0SWQgc2hvdWxkIGJlOgkAzAgCBQ9sMkFzc2V0SWRTdHJpbmcFA25pbAIBIAkAzAgCAwkBDmlzVmFsaWRBZGRyZXNzAQULdXNlckFkZHJlc3MGCQEIdGhyb3dFcnIBCQC5CQIJAMwIAgIadXNlciBhZGRyZXNzIGlzIG5vdCB2YWxpZDoJAMwIAgULdXNlckFkZHJlc3MFA25pbAIBIAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBApuZXdUb0NsYWltCQBkAgUHdG9DbGFpbQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQJAMwIAgkBE2dldFVzZXJUb0NsYWltRW50cnkDBQt1c2VyQWRkcmVzcwUKbmV3VG9DbGFpbQUIdG9VbmxvY2sFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEPZ2V0U3Rha2VBY3Rpb25zBAtub2RlQWRkcmVzcwt1c2VyQWRkcmVzcxF1c2VyTGVhc2luZ0Ftb3VudAFpBA0kdDAxNTM2ODE1NDI4CQEVZ2V0VXNlclRvQ2xhaW1CYWxhbmNlAQULdXNlckFkZHJlc3MEB3RvQ2xhaW0IBQ0kdDAxNTM2ODE1NDI4Al8xBAh0b1VubG9jawgFDSR0MDE1MzY4MTU0MjgCXzIEDXBheW1lbnRBbW91bnQDCQAAAgkAkAMBCAUBaQhwYXltZW50cwAAAAAICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAlhdmFpbGFibGUJAGQCCQBkAgUIdG9VbmxvY2sFB3RvQ2xhaW0FDXBheW1lbnRBbW91bnQEBmNoZWNrcwkAzAgCAwkBASEBBQtpc0ZvcmNlU3RvcAYJAQh0aHJvd0VycgECHWNvbnRyYWN0IGlzIHRlbXBvcmFyeSBzdG9wcGVkCQDMCAIDCQBnAgABCQCQAwEIBQFpCHBheW1lbnRzBgkBCHRocm93RXJyAQIRbWF4aW11bSAxIHBheW1lbnQJAMwIAgMDCQAAAgkAkAMBCAUBaQhwYXltZW50cwAABgkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUObDJBc3NldElkQnl0ZXMGCQEIdGhyb3dFcnIBCQC5CQIJAMwIAgIacGF5bWVudCBhc3NldElkIHNob3VsZCBiZToJAMwIAgUPbDJBc3NldElkU3RyaW5nBQNuaWwCASAJAMwIAgMJAGYCBRF1c2VyTGVhc2luZ0Ftb3VudAAABgkBCHRocm93RXJyAQIfYW1vdW50IHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMAkAzAgCAwkAZwIFCWF2YWlsYWJsZQURdXNlckxlYXNpbmdBbW91bnQGCQEIdGhyb3dFcnIBAjthbW91bnQgc2hvdWxkIGJlIGxlc3Mgb3IgZXF1YWwgKHBheW1lbnQgKyBhdmFpbGFibGUpIGFtb3VudAkAzAgCAwkAZwIFEXVzZXJMZWFzaW5nQW1vdW50BQ1wYXltZW50QW1vdW50BgkAAgECMGFtb3VudCBzaG91bGQgYmUgZ3JlYXRlciBvciBlcXVhbCBwYXltZW50IGFtb3VudAkAzAgCAwkBDmlzVmFsaWRBZGRyZXNzAQULbm9kZUFkZHJlc3MGCQEIdGhyb3dFcnIBCQC5CQIJAMwIAgIabm9kZSBhZGRyZXNzIGlzIG5vdCB2YWxpZDoJAMwIAgULbm9kZUFkZHJlc3MFA25pbAIBIAkAzAgCAwkBDmlzVmFsaWRBZGRyZXNzAQULdXNlckFkZHJlc3MGCQEIdGhyb3dFcnIBCQC5CQIJAMwIAgIadXNlciBhZGRyZXNzIGlzIG5vdCB2YWxpZDoJAMwIAgULdXNlckFkZHJlc3MFA25pbAIBIAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBA0kdDAxNjUwMzE2NTc2CQESZ2V0TGVhc2luZ05vZGVEYXRhAQULbm9kZUFkZHJlc3MEEW5vZGVDdXJyZW50TGVhc2VkCAUNJHQwMTY1MDMxNjU3NgJfMQQObm9kZU5leHRMZWFzZWQIBQ0kdDAxNjUwMzE2NTc2Al8yBBBuZXdOb2RlTmV4dExlYXNlCQBkAgUObm9kZU5leHRMZWFzZWQFEXVzZXJMZWFzaW5nQW1vdW50BA0kdDAxNjY0NDE2NzMwCQESZ2V0VXNlckxlYXNpbmdEYXRhAgULbm9kZUFkZHJlc3MFC3VzZXJBZGRyZXNzBBF1c2VyQ3VycmVudExlYXNlZAgFDSR0MDE2NjQ0MTY3MzACXzEEDnVzZXJOZXh0TGVhc2VkCAUNJHQwMTY2NDQxNjczMAJfMgQRbmV3VXNlck5leHRMZWFzZWQJAGQCBQ51c2VyTmV4dExlYXNlZAURdXNlckxlYXNpbmdBbW91bnQEEmZyb21VbmxvY2tlZEFtb3VudAkAZQIFEXVzZXJMZWFzaW5nQW1vdW50BQ1wYXltZW50QW1vdW50BAtuZXdUb1VubG9jawkAlgMBCQDMCAIAAAkAzAgCCQBlAgUIdG9VbmxvY2sFEmZyb21VbmxvY2tlZEFtb3VudAUDbmlsBApuZXdUb0NsYWltCQCXAwEJAMwIAgUHdG9DbGFpbQkAzAgCCQBkAgUHdG9DbGFpbQkAZQIFCHRvVW5sb2NrBRJmcm9tVW5sb2NrZWRBbW91bnQFA25pbAQPdXNlclRvdGFsTG9ja2VkCQESZ2V0VXNlclRvdGFsTG9ja2VkAQULdXNlckFkZHJlc3MEEm5ld1VzZXJUb3RhbExvY2tlZAkAZAIFD3VzZXJUb3RhbExvY2tlZAURdXNlckxlYXNpbmdBbW91bnQEFHVuaXRzVW5sb2NrZWRBY3Rpb25zCQEUZ2V0VW5sb2NrVW5pdHNBY3Rpb24BBQt1c2VyQWRkcmVzcwkAzggCCQDMCAIJARNnZXRMZWFzaW5nTm9kZUVudHJ5AwULbm9kZUFkZHJlc3MFEW5vZGVDdXJyZW50TGVhc2VkBRBuZXdOb2RlTmV4dExlYXNlCQDMCAIJARNnZXRVc2VyTGVhc2luZ0VudHJ5BAULbm9kZUFkZHJlc3MFC3VzZXJBZGRyZXNzBRF1c2VyQ3VycmVudExlYXNlZAURbmV3VXNlck5leHRMZWFzZWQJAMwIAgkBE2dldFVzZXJUb0NsYWltRW50cnkDBQt1c2VyQWRkcmVzcwUKbmV3VG9DbGFpbQULbmV3VG9VbmxvY2sJAMwIAgkBF2dldFVzZXJUb3RhbExvY2tlZEVudHJ5AgULdXNlckFkZHJlc3MFEm5ld1VzZXJUb3RhbExvY2tlZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFmtleU5vZGVMZWFzaW5nQnlIZWlnaHQBBQtub2RlQWRkcmVzcwUQbmV3Tm9kZU5leHRMZWFzZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFmtleVVzZXJMZWFzaW5nQnlIZWlnaHQCBQtub2RlQWRkcmVzcwULdXNlckFkZHJlc3MFEW5ld1VzZXJOZXh0TGVhc2VkBQNuaWwFFHVuaXRzVW5sb2NrZWRBY3Rpb25zCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuARpnZXRTdGFrZUZyb21QYXltZW50QWN0aW9ucwMLbm9kZUFkZHJlc3MLdXNlckFkZHJlc3MBaQQGY2hlY2tzCQDMCAIDCQAAAgkAkAMBCAUBaQhwYXltZW50cwABBgkBCHRocm93RXJyAQIgcGF5bWVudCBzaXplIHNob3VsZCBiZSBleGFjdGx5IDEFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwkBD2dldFN0YWtlQWN0aW9ucwQFC25vZGVBZGRyZXNzBQt1c2VyQWRkcmVzcwgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQFAWkJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BHGdldFNldE5ld1BlcmlvZExlbmd0aEFjdGlvbnMBD25ld1BlcmlvZExlbmd0aAQFY2hlY2sJAMwIAgMJAGYCBQ9uZXdQZXJpb2RMZW5ndGgAAAYJAQh0aHJvd0VycgECJnBlcmlvZCBsZW5ndGggc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAwBQNuaWwDCQAAAgUFY2hlY2sFBWNoZWNrAwkAAAIFEnBlcmlvZE9mZnNldEhlaWdodAD///////////8BCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ9rZXlQZXJpb2RMZW5ndGgFD25ld1BlcmlvZExlbmd0aAkAzAgCCQEMSW50ZWdlckVudHJ5AgUVa2V5UGVyaW9kT2Zmc2V0SGVpZ2h0BQZoZWlnaHQFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgURa2V5UGVyaW9kT2Zmc2V0SWQJAGQCBQ9jdXJyZW50UGVyaW9kSWQAAQkAzAgCCQEMSW50ZWdlckVudHJ5AgUVa2V5UGVyaW9kT2Zmc2V0SGVpZ2h0BRBuZXh0UGVyaW9kSGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ9rZXlQZXJpb2RMZW5ndGgFD25ld1BlcmlvZExlbmd0aAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuARFnZXRVbml0c0NsYWltRGF0YQELdXNlckFkZHJlc3MEDSR0MDE4NjE1MTg3MDAJARVjYWxjdWxhdGVVbml0c1RvQ2xhaW0BBQt1c2VyQWRkcmVzcwQPdW5sb2NrZWRVbml0Tm93CAUNJHQwMTg2MTUxODcwMAJfMQQLbDJUb0J1cm5Ob3cIBQ0kdDAxODYxNTE4NzAwAl8yBAxjbGFpbWVkQmxvY2sIBQ0kdDAxODYxNTE4NzAwAl8zBBF1bmxvY2tlZFVuaXRzUHJldgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEQa2V5VW5sb2NrZWRVbml0cwEFC3VzZXJBZGRyZXNzAAAEC3VuaXRzVG9TZW5kCQBkAgUPdW5sb2NrZWRVbml0Tm93BRF1bmxvY2tlZFVuaXRzUHJldgQMbDJUb0J1cm5QcmV2CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQtrZXlMMlRvQnVybgEFC3VzZXJBZGRyZXNzAAAECGwyVG9CdXJuCQBkAgUMbDJUb0J1cm5QcmV2BQtsMlRvQnVybk5vdwQRdG90YWxVbml0c0NsYWltZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBFGtleVRvdGFsVW5pdHNDbGFpbWVkAQULdXNlckFkZHJlc3MAAAQNdG90YWxMMkJ1cm5lZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEQa2V5TDJCdXJuZWRUb3RhbAEFC3VzZXJBZGRyZXNzAAAJAJcKBQULdW5pdHNUb1NlbmQFEXRvdGFsVW5pdHNDbGFpbWVkBQhsMlRvQnVybgUNdG90YWxMMkJ1cm5lZAUMY2xhaW1lZEJsb2NrARRnZXRDbGFpbVVuaXRzQWN0aW9ucwELdXNlckFkZHJlc3MEDSR0MDE5MjkyMTk0MDAJARFnZXRVbml0c0NsYWltRGF0YQEFC3VzZXJBZGRyZXNzBAt1bml0c1RvU2VuZAgFDSR0MDE5MjkyMTk0MDACXzEEEXRvdGFsVW5pdHNDbGFpbWVkCAUNJHQwMTkyOTIxOTQwMAJfMgQIbDJUb0J1cm4IBQ0kdDAxOTI5MjE5NDAwAl8zBA10b3RhbEwyQnVybmVkCAUNJHQwMTkyOTIxOTQwMAJfNAQMY2xhaW1lZEJsb2NrCAUNJHQwMTkyOTIxOTQwMAJfNQQFY2hlY2sJAMwIAgMJAGcCAAAFC3VuaXRzVG9TZW5kBgkBCHRocm93RXJyAQIQbm90aGluZyB0byBjbGFpbQUDbmlsAwkAAAIFBWNoZWNrBQVjaGVjawQKYnVybkFjdGlvbgQHJG1hdGNoMAUObDJBc3NldElkQnl0ZXMDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCaWQFByRtYXRjaDAJAMwIAgkBBEJ1cm4CBQJpZAUIbDJUb0J1cm4FA25pbAUDbmlsCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJARRrZXlVbml0c0NsYWltZWRCbG9jawEFC3VzZXJBZGRyZXNzBQxjbGFpbWVkQmxvY2sJAMwIAgkBDEludGVnZXJFbnRyeQIJARRrZXlUb3RhbFVuaXRzQ2xhaW1lZAEFC3VzZXJBZGRyZXNzCQBkAgURdG90YWxVbml0c0NsYWltZWQFC3VuaXRzVG9TZW5kCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEQa2V5TDJCdXJuZWRUb3RhbAEFC3VzZXJBZGRyZXNzCQBkAgUNdG90YWxMMkJ1cm5lZAUIbDJUb0J1cm4JAMwIAgkBDEludGVnZXJFbnRyeQIJARBrZXlVbmxvY2tlZFVuaXRzAQULdXNlckFkZHJlc3MAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBC2tleUwyVG9CdXJuAQULdXNlckFkZHJlc3MAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQt1c2VyQWRkcmVzcwULdW5pdHNUb1NlbmQFEXVuaXRzQXNzZXRJZEJ5dGVzBQNuaWwFCmJ1cm5BY3Rpb24JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4QAWkBEnNldE5ld1BlcmlvZExlbmd0aAEPbmV3UGVyaW9kTGVuZ3RoBAZjaGVja3MJAMwIAgMJAQ1pc0luQWRtaW5MaXN0AQkApQgBCAUBaQZjYWxsZXIGCQEIdGhyb3dFcnIBAhpjYWxsZXIgaXMgbm90IGluIGFkbWluTGlzdAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzCQEcZ2V0U2V0TmV3UGVyaW9kTGVuZ3RoQWN0aW9ucwEFD25ld1BlcmlvZExlbmd0aAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQpjbGFpbVVuaXRzAAQLdXNlckFkZHJlc3MJAKUIAQgFAWkGY2FsbGVyCQEUZ2V0Q2xhaW1Vbml0c0FjdGlvbnMBBQt1c2VyQWRkcmVzcwFpARBzZXRGb3JjZVN0b3BGbGFnAQRzdG9wBAVjaGVjawkAzAgCAwkBDWlzSW5BZG1pbkxpc3QBCQClCAEIBQFpBmNhbGxlcgYJAQh0aHJvd0VycgECGmNhbGxlciBpcyBub3QgaW4gYWRtaW5MaXN0BQNuaWwDCQAAAgUFY2hlY2sFBWNoZWNrCQDMCAIJAQxCb29sZWFuRW50cnkCBQxrZXlGb3JjZVN0b3AFBHN0b3AFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARNzZXRGb3JjZU91dFN0b3BGbGFnAQRzdG9wBAVjaGVjawkAzAgCAwkBDWlzSW5BZG1pbkxpc3QBCQClCAEIBQFpBmNhbGxlcgYJAQh0aHJvd0VycgECGmNhbGxlciBpcyBub3QgaW4gYWRtaW5MaXN0BQNuaWwDCQAAAgUFY2hlY2sFBWNoZWNrCQDMCAIJAQxCb29sZWFuRW50cnkCBQ9rZXlGb3JjZU91dFN0b3AFBHN0b3AFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARNnZXROb2RlRGF0YVJFQURPTkxZAQtub2RlQWRkcmVzcwQNJHQwMjExMzMyMTE5NwkBEmdldExlYXNpbmdOb2RlRGF0YQEFC25vZGVBZGRyZXNzBAxjdXJyZW50TGVhc2UIBQ0kdDAyMTEzMzIxMTk3Al8xBApuZXh0TGVhc2VkCAUNJHQwMjExMzMyMTE5NwJfMgkAlAoCBQNuaWwJAJcKBQUTY3VycmVudFBlcmlvZEhlaWdodAUMY3VycmVudExlYXNlBRBuZXh0UGVyaW9kSGVpZ2h0BQpuZXh0TGVhc2VkBQZoZWlnaHQBaQEaZ2V0VXNlckxlYXNpbmdEYXRhUkVBRE9OTFkCC25vZGVBZGRyZXNzC3VzZXJBZGRyZXNzBA0kdDAyMTU2NzIxNjQ0CQESZ2V0VXNlckxlYXNpbmdEYXRhAgULbm9kZUFkZHJlc3MFC3VzZXJBZGRyZXNzBAxjdXJyZW50TGVhc2UIBQ0kdDAyMTU2NzIxNjQ0Al8xBApuZXh0TGVhc2VkCAUNJHQwMjE1NjcyMTY0NAJfMgkAlAoCBQNuaWwJAJcKBQUTY3VycmVudFBlcmlvZEhlaWdodAUMY3VycmVudExlYXNlBRBuZXh0UGVyaW9kSGVpZ2h0BQpuZXh0TGVhc2VkBQZoZWlnaHQBaQETZ2V0VXNlckRhdGFSRUFET05MWQELdXNlckFkZHJlc3MEDSR0MDIyMTYwMjIyMjAJARVnZXRVc2VyVG9DbGFpbUJhbGFuY2UBBQt1c2VyQWRkcmVzcwQHdG9DbGFpbQgFDSR0MDIyMTYwMjIyMjACXzEECHRvVW5sb2NrCAUNJHQwMjIxNjAyMjIyMAJfMgQPdXNlclRvdGFsTG9ja2VkCQESZ2V0VXNlclRvdGFsTG9ja2VkAQULdXNlckFkZHJlc3MEDSR0MDIyMjgzMjIzOTEJARFnZXRVbml0c0NsYWltRGF0YQEFC3VzZXJBZGRyZXNzBAt1bml0c1RvU2VuZAgFDSR0MDIyMjgzMjIzOTECXzEEEXRvdGFsVW5pdHNDbGFpbWVkCAUNJHQwMjIyODMyMjM5MQJfMgQIbDJUb0J1cm4IBQ0kdDAyMjI4MzIyMzkxAl8zBA10b3RhbEwyQnVybmVkCAUNJHQwMjIyODMyMjM5MQJfNAQMY2xhaW1lZEJsb2NrCAUNJHQwMjIyODMyMjM5MQJfNQkAlAoCBQNuaWwJAJ0KCwUTY3VycmVudFBlcmlvZEhlaWdodAUHdG9DbGFpbQUQbmV4dFBlcmlvZEhlaWdodAUIdG9VbmxvY2sFD3VzZXJUb3RhbExvY2tlZAUGaGVpZ2h0BQt1bml0c1RvU2VuZAURdG90YWxVbml0c0NsYWltZWQFCGwyVG9CdXJuBQ10b3RhbEwyQnVybmVkBQxjbGFpbWVkQmxvY2sBaQEObGVhc2VCeUFkZHJlc3MCC25vZGVBZGRyZXNzC3VzZXJBZGRyZXNzCQEaZ2V0U3Rha2VGcm9tUGF5bWVudEFjdGlvbnMDBQtub2RlQWRkcmVzcwULdXNlckFkZHJlc3MFAWkBaQEFbGVhc2UBC25vZGVBZGRyZXNzBAt1c2VyQWRkcmVzcwkApQgBCAUBaQZjYWxsZXIJARpnZXRTdGFrZUZyb21QYXltZW50QWN0aW9ucwMFC25vZGVBZGRyZXNzBQt1c2VyQWRkcmVzcwUBaQFpAQ9sZWFzZUZyb21Mb2NrZWQCC25vZGVBZGRyZXNzBmFtb3VudAQLdXNlckFkZHJlc3MJAKUIAQgFAWkGY2FsbGVyCQEPZ2V0U3Rha2VBY3Rpb25zBAULbm9kZUFkZHJlc3MFC3VzZXJBZGRyZXNzBQZhbW91bnQFAWkBaQELY2FuY2VsTGVhc2UCC25vZGVBZGRyZXNzBmFtb3VudAQLdXNlckFkZHJlc3MJAKUIAQgFAWkGY2FsbGVyCQERZ2V0VW5zdGFrZUFjdGlvbnMDBQtub2RlQWRkcmVzcwULdXNlckFkZHJlc3MFBmFtb3VudAFpAQVjbGFpbQEGYW1vdW50BAt1c2VyQWRkcmVzcwkApQgBCAUBaQZjYWxsZXIJARdnZXRDbGFpbVVubG9ja2VkQWN0aW9ucwIFC3VzZXJBZGRyZXNzBQZhbW91bnQBaQEIY2xhaW1BbGwABAt1c2VyQWRkcmVzcwkApQgBCAUBaQZjYWxsZXIEDSR0MDIzNTgzMjM2NDMJARVnZXRVc2VyVG9DbGFpbUJhbGFuY2UBBQt1c2VyQWRkcmVzcwQHdG9DbGFpbQgFDSR0MDIzNTgzMjM2NDMCXzEECHRvVW5sb2NrCAUNJHQwMjM1ODMyMzY0MwJfMgQGY2hlY2tzCQDMCAIDCQBmAgUHdG9DbGFpbQAABgkBCHRocm93RXJyAQIQbm90aGluZyB0byBjbGFpbQUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzCQEXZ2V0Q2xhaW1VbmxvY2tlZEFjdGlvbnMCBQt1c2VyQWRkcmVzcwUHdG9DbGFpbQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQhzdGFrZUZvcgELdXNlckFkZHJlc3MJARJnZXRTdGFrZUZvckFjdGlvbnMCBQt1c2VyQWRkcmVzcwUBaQFpARFzdGFydFVuaXRzVmVzdGluZwESdW5pdHNDbGFpbUludGVydmFsBAd0b3RhbEwyAICAqOyFr9GxAQQKdG90YWxVbml0cwgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQEE3VuaXRzUGVyQmxvY2tTY2FsZTgJAGkCCQBrAwUHdG90YWxMMgUGc2NhbGU4BQp0b3RhbFVuaXRzBRJ1bml0c0NsYWltSW50ZXJ2YWwEBWNoZWNrCQDMCAIDCQENaXNJbkFkbWluTGlzdAEJAKUIAQgFAWkGY2FsbGVyBgkBCHRocm93RXJyAQIaY2FsbGVyIGlzIG5vdCBpbiBhZG1pbkxpc3QJAMwIAgMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAEGCQEIdGhyb3dFcnIBAhNzaG91bGQgYmUgMSBwYXltZW50CQDMCAIDCQBmAgUTdW5pdHNQZXJCbG9ja1NjYWxlOAAABgkBCHRocm93RXJyAQIodW5pdHMgcGVyIGJsb2NrIHNob3VsZCBiZSBncmVhdGVkIHRoYW4gMAUDbmlsAwkAAAIFBWNoZWNrBQVjaGVjawkAzAgCCQEMSW50ZWdlckVudHJ5AgUWa2V5VW5pdHNQZXJCbG9ja1NjYWxlOAUTdW5pdHNQZXJCbG9ja1NjYWxlOAkAzAgCCQEMSW50ZWdlckVudHJ5AgUYa2V5VW5pdHNDbGFpbVN0YXJ0SGVpZ2h0BQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFFWtleVVuaXRzQ2xhaW1JbnRlcnZhbAUSdW5pdHNDbGFpbUludGVydmFsCQDMCAIJAQtTdHJpbmdFbnRyeQIFD2tleVVuaXRzQXNzZXRJZAkBEmFzc2V0Qnl0ZXNUb1N0cmluZwEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBC3ZvdGVGb3JUeElkAQR0eElkBBNjYWxsZXJBZGRyZXNzU3RyaW5nCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMECWtleVByZWZpeAkBGGtleUFsbG93ZWRUeElkVm90ZVByZWZpeAEFBHR4SWQEBnJlc3VsdAkAzAgCCQELU3RyaW5nRW50cnkCCQEOa2V5QWxsb3dlZFR4SWQABQR0eElkBQNuaWwEEWFsbG93ZWRUeElkT3B0aW9uCQCdCAIFBHRoaXMJAQ5rZXlBbGxvd2VkVHhJZAAEA2VycgkAzAgCAwkAAAIJAMgBAQkA2QQBBQR0eElkBRFUWElEX0JZVEVTX0xFTkdUSAYJAQh0aHJvd0VycgEJAKwCAgUEdHhJZAISIGlzIG5vdCB2YWxpZCB0eElkCQDMCAIDAwkAAAIFEWFsbG93ZWRUeElkT3B0aW9uBQR1bml0BgkBAiE9AgkBBXZhbHVlAQURYWxsb3dlZFR4SWRPcHRpb24FBHR4SWQGCQEIdGhyb3dFcnIBCQCsAgIFBHR4SWQCEyBpcyBhbHJlYWR5IGFsbG93ZWQFA25pbAMJAAACBQNlcnIFA2VycgkBDHZvdGVJTlRFUk5BTAQFE2NhbGxlckFkZHJlc3NTdHJpbmcFCWtleVByZWZpeAUGUVVPUlVNBQZyZXN1bHQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkABAhieUFkbWlucwkAAAIIBQJ0eAJpZAkA2QQBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQ5rZXlBbGxvd2VkVHhJZAACAAQHYnlPd25lcgMJAGcCCQCQAwEJAQ1nZXRBZG1pbnNMaXN0AAUGUVVPUlVNBwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleQMFCGJ5QWRtaW5zBgUHYnlPd25lchdpRxU=", "chainId": 84, "height": 3336628, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: A3kQoQSnGrcqFFfi8DFpr1ZLxcfqckRYfmdsacgFEWWH Next: GSmzqun3281fCHh1SLgmMkoJ5LjoKbiArJYkxg3bzjB9 Diff:
OldNewDifferences
99
1010 let d = 100000000
1111
12-let e = ((365 * 24) * 60)
13-
14-func f (g) = throw(((a + ": ") + g))
12+func e (f) = throw(((a + ": ") + f))
1513
1614
17-let h = makeString(["%s", "assetId"], b)
15+let g = makeString(["%s", "assetId"], b)
1816
19-let i = makeString(["%s", "forceStop"], b)
17+let h = makeString(["%s", "forceStop"], b)
2018
21-let j = makeString(["%s", "forceOutStop"], b)
19+let i = makeString(["%s", "forceOutStop"], b)
2220
23-let k = makeString(["%s", "unitsAssetId"], b)
21+let j = makeString(["%s", "unitsAssetId"], b)
2422
25-let l = makeString(["%s", "unitsPerBlock"], b)
23+let k = makeString(["%s", "unitsPerBlock"], b)
2624
27-let m = makeString(["%s", "offsetId"], b)
25+let l = makeString(["%s", "offsetId"], b)
2826
29-let n = makeString(["%s", "offsetHeight"], b)
27+let m = makeString(["%s", "offsetHeight"], b)
3028
31-let o = makeString(["%s", "periodLength"], b)
29+let n = makeString(["%s", "periodLength"], b)
3230
33-let p = makeString(["%s", "unitsClaimStartHeight"], b)
31+let o = makeString(["%s", "unitsClaimStartHeight"], b)
3432
35-let q = valueOrElse(getInteger(this, m), 0)
33+let p = makeString(["%s", "unitsClaimInterval"], b)
3634
37-let r = valueOrElse(getInteger(this, o), 10000)
35+let q = valueOrElse(getInteger(this, l), 0)
3836
39-let s = valueOrElse(getInteger(this, n), -1)
37+let r = valueOrElse(getInteger(this, n), 10000)
38+
39+let s = valueOrElse(getInteger(this, m), -1)
4040
4141 let t = if (if ((height > s))
4242 then (s != -1)
6060 then 0
6161 else (u + r)
6262
63-let w = valueOrElse(getInteger(this, p), height)
63+let w = valueOrElse(getInteger(this, o), height)
6464
65-func x (y) = makeString(["%s", y], b)
65+let x = valueOrElse(getInteger(this, p), 0)
66+
67+func y (z) = makeString(["%s", z], b)
6668
6769
68-func z (A,y) = makeString(["%s%s", y, A], b)
70+func A (B,z) = makeString(["%s%s", z, B], b)
6971
7072
71-func B (A) = makeString(["%s%s", "toClaim", A], b)
73+func C (B) = makeString(["%s%s", "toClaim", B], b)
7274
7375
74-func C (A) = makeString(["%s%s", "userTotalLocked", A], b)
76+func D (B) = makeString(["%s%s", "userTotalLocked", B], b)
7577
7678
77-func D (A) = makeString(["%s%s", "unitsClaimedBlock", A], b)
79+func E (B) = makeString(["%s%s", "unitsClaimedBlock", B], b)
7880
7981
80-func E (A) = makeString(["%s%s", "unlockedUnits", A], b)
82+func F (B) = makeString(["%s%s", "unlockedUnits", B], b)
8183
8284
83-func F (A) = makeString(["%s%s", "totalUnitsClaimed", A], b)
85+func G (B) = makeString(["%s%s", "totalUnitsClaimed", B], b)
8486
8587
86-func G (A) = makeString(["%s%s", "l2ToBurn", A], b)
88+func H (B) = makeString(["%s%s", "l2ToBurn", B], b)
8789
8890
89-func H (A) = makeString(["%s%s", "l2BurnedTotal", A], b)
91+func I (B) = makeString(["%s%s", "l2BurnedTotal", B], b)
9092
9193
92-func I (y) = {
93- let J = if ((s == -1))
94+func J (z) = {
95+ let K = if ((s == -1))
9496 then 0
9597 else height
96- makeString(["%s%d", y, toString(J)], b)
98+ makeString(["%s%d", z, toString(K)], b)
9799 }
98100
99101
100-func K (y,A) = {
101- let J = if ((s == -1))
102+func L (z,B) = {
103+ let K = if ((s == -1))
102104 then 0
103105 else height
104- makeString(["%s%s%d", y, A, toString(J)], b)
106+ makeString(["%s%s%d", z, B, toString(K)], b)
105107 }
106108
107109
108-func L (M) = if ((M == "WAVES"))
110+func M (N) = if ((N == "WAVES"))
109111 then unit
110- else fromBase58String(M)
112+ else fromBase58String(N)
111113
112114
113-func N (O) = {
114- let P = O
115- if ($isInstanceOf(P, "ByteVector"))
115+func O (P) = {
116+ let Q = P
117+ if ($isInstanceOf(Q, "ByteVector"))
116118 then {
117- let Q = P
118- toBase58String(Q)
119+ let R = Q
120+ toBase58String(R)
119121 }
120122 else "WAVES"
121123 }
122124
123125
124-let R = valueOrElse(getString(this, h), "WAVES")
126+let S = valueOrElse(getString(this, g), "WAVES")
125127
126-let S = valueOrElse(getString(this, k), "WAVES")
128+let T = valueOrElse(getString(this, j), "WAVES")
127129
128-let T = L(R)
130+let U = M(S)
129131
130-let U = L(S)
132+let V = M(T)
131133
132-let V = valueOrElse(getBoolean(this, i), false)
134+let W = valueOrElse(getBoolean(this, h), false)
133135
134-let W = valueOrElse(getBoolean(this, j), false)
136+let X = valueOrElse(getBoolean(this, i), false)
135137
136-func X (Y) = {
137- let P = addressFromString(Y)
138- if ($isInstanceOf(P, "Address"))
138+func Y (Z) = {
139+ let Q = addressFromString(Z)
140+ if ($isInstanceOf(Q, "Address"))
139141 then {
140- let Q = P
142+ let R = Q
141143 true
142144 }
143145 else false
144146 }
145147
146148
147-let Z = 5
149+let aa = 5
148150
149-let aa = 3
151+let ab = 3
150152
151-let ab = 32
153+let ac = 32
152154
153-func ac (ad) = makeString(["%s%s%s", "allowTxId", ad], b)
155+func ad (ae) = makeString(["%s%s%s", "allowTxId", ae], b)
154156
155157
156-func ae (af,ag) = makeString([af, ag], b)
158+func af (ag,ah) = makeString([ag, ah], b)
157159
158160
159-func ah () = makeString(["%s", "adminAddressList"], b)
161+func ai () = makeString(["%s", "adminAddressList"], b)
160162
161163
162-func ai () = makeString(["%s", "txId"], b)
164+func aj () = makeString(["%s", "txId"], b)
163165
164166
165-func aj (af,ak) = {
166- let al = ae(af, ak)
167- valueOrElse(getInteger(al), 0)
167+func ak (ag,al) = {
168+ let am = af(ag, al)
169+ valueOrElse(getInteger(am), 0)
168170 }
169171
170172
171-func am () = {
172- let P = getString(this, ah())
173- if ($isInstanceOf(P, "String"))
173+func an () = {
174+ let Q = getString(this, ai())
175+ if ($isInstanceOf(Q, "String"))
174176 then {
175- let an = P
176- split(an, b)
177+ let ao = Q
178+ split(ao, b)
177179 }
178180 else nil
179181 }
180182
181183
182-func ao (Y) = containsElement(am(), Y)
184+func ap (Z) = containsElement(an(), Z)
183185
184186
185-func ap (Q,ag) = {
186- let aq = Q
187- let ar = aq._1
188- let af = aq._2
189- $Tuple2((ar :+ ae(af, ag)), af)
187+func aq (R,ah) = {
188+ let ar = R
189+ let as = ar._1
190+ let ag = ar._2
191+ $Tuple2((as :+ af(ag, ah)), ag)
190192 }
191193
192194
193-func as (at) = {
194- let au = ah()
195- let av = {
196- let aw = am()
197- let ax = size(aw)
198- let ay = $Tuple2(nil, at)
199- func az (aA,aB) = if ((aB >= ax))
200- then aA
201- else ap(aA, aw[aB])
195+func at (au) = {
196+ let av = ai()
197+ let aw = {
198+ let ax = an()
199+ let ay = size(ax)
200+ let az = $Tuple2(nil, au)
201+ func aA (aB,aC) = if ((aC >= ay))
202+ then aB
203+ else aq(aB, ax[aC])
202204
203- func aC (aA,aB) = if ((aB >= ax))
204- then aA
205+ func aD (aB,aC) = if ((aC >= ay))
206+ then aB
205207 else throw("List size exceeds 5")
206208
207- aC(az(az(az(az(az(ay, 0), 1), 2), 3), 4), 5)
209+ aD(aA(aA(aA(aA(aA(az, 0), 1), 2), 3), 4), 5)
208210 }
209- let ar = av._1
210- let af = av._2
211- ar
211+ let as = aw._1
212+ let ag = aw._2
213+ as
212214 }
213215
214216
215-func aD (ar,al) = (ar + valueOrElse(getInteger(al), 0))
217+func aE (as,am) = (as + valueOrElse(getInteger(am), 0))
216218
217219
218-func aE (af) = {
219- let aF = as(af)
220- let aw = aF
221- let ax = size(aw)
222- let ay = 0
223- func az (aA,aB) = if ((aB >= ax))
224- then aA
225- else aD(aA, aw[aB])
220+func aF (ag) = {
221+ let aG = at(ag)
222+ let ax = aG
223+ let ay = size(ax)
224+ let az = 0
225+ func aA (aB,aC) = if ((aC >= ay))
226+ then aB
227+ else aE(aB, ax[aC])
226228
227- func aC (aA,aB) = if ((aB >= ax))
228- then aA
229+ func aD (aB,aC) = if ((aC >= ay))
230+ then aB
229231 else throw("List size exceeds 5")
230232
231- aC(az(az(az(az(az(ay, 0), 1), 2), 3), 4), 5)
233+ aD(aA(aA(aA(aA(aA(az, 0), 1), 2), 3), 4), 5)
232234 }
233235
234236
235-func aG (ar,aH) = (ar :+ DeleteEntry(aH))
237+func aH (as,aI) = (as :+ DeleteEntry(aI))
236238
237239
238-func aI (af) = {
239- let aF = as(af)
240- let aw = aF
241- let ax = size(aw)
242- let ay = nil
243- func az (aA,aB) = if ((aB >= ax))
244- then aA
245- else aG(aA, aw[aB])
240+func aJ (ag) = {
241+ let aG = at(ag)
242+ let ax = aG
243+ let ay = size(ax)
244+ let az = nil
245+ func aA (aB,aC) = if ((aC >= ay))
246+ then aB
247+ else aH(aB, ax[aC])
246248
247- func aC (aA,aB) = if ((aB >= ax))
248- then aA
249+ func aD (aB,aC) = if ((aC >= ay))
250+ then aB
249251 else throw("List size exceeds 5")
250252
251- aC(az(az(az(az(az(ay, 0), 1), 2), 3), 4), 5)
253+ aD(aA(aA(aA(aA(aA(az, 0), 1), 2), 3), 4), 5)
252254 }
253255
254256
255-func aJ (aK,at,aL,aM) = {
256- let al = ae(at, aK)
257- let aN = aj(at, aK)
258- let aO = if (!(ao(aK)))
259- then f((("Address: " + aK) + " not in Admin list"))
260- else if ((aN == 1))
261- then f((al + " you already voted"))
257+func aK (aL,au,aM,aN) = {
258+ let am = af(au, aL)
259+ let aO = ak(au, aL)
260+ let aP = if (!(ap(aL)))
261+ then e((("Address: " + aL) + " not in Admin list"))
262+ else if ((aO == 1))
263+ then e((am + " you already voted"))
262264 else unit
263- if ((aO == aO))
265+ if ((aP == aP))
264266 then {
265- let aF = aE(at)
266- if (((aF + 1) >= aL))
267+ let aG = aF(au)
268+ if (((aG + 1) >= aM))
267269 then {
268- let aP = aI(at)
269- (aP ++ aM)
270+ let aQ = aJ(au)
271+ (aQ ++ aN)
270272 }
271- else [IntegerEntry(al, 1)]
273+ else [IntegerEntry(am, 1)]
272274 }
273275 else throw("Strict value is not equal to itself.")
274276 }
275277
276278
277-func aQ (y,aR,aS) = {
278- let aT = makeString(["%d%d%d%d", toString(u), toString(aR), toString(v), toString(aS)], b)
279- StringEntry(x(y), aT)
279+func aR (z,aS,aT) = {
280+ let aU = makeString(["%d%d%d%d", toString(u), toString(aS), toString(v), toString(aT)], b)
281+ StringEntry(y(z), aU)
280282 }
281283
282284
283-func aU (y) = {
284- let aV = getString(this, x(y))
285- let P = aV
286- if ($isInstanceOf(P, "String"))
285+func aV (z) = {
286+ let aW = getString(this, y(z))
287+ let Q = aW
288+ if ($isInstanceOf(Q, "String"))
287289 then {
288- let aW = P
289- let aX = split(aW, b)
290- let aY = parseIntValue(aX[1])
291- let aZ = parseIntValue(aX[2])
292- let ba = parseIntValue(aX[3])
293- let bb = parseIntValue(aX[4])
294- if (if ((ba > height))
290+ let aX = Q
291+ let aY = split(aX, b)
292+ let aZ = parseIntValue(aY[1])
293+ let ba = parseIntValue(aY[2])
294+ let bb = parseIntValue(aY[3])
295+ let bc = parseIntValue(aY[4])
296+ if (if ((bb > height))
295297 then true
296298 else (s == -1))
297- then $Tuple2(aZ, bb)
298- else $Tuple2(bb, bb)
299+ then $Tuple2(ba, bc)
300+ else $Tuple2(bc, bc)
299301 }
300302 else $Tuple2(0, 0)
301303 }
302304
303305
304-func bc (y,A,bd,be) = {
305- let aT = makeString(["%d%d%d%d", toString(u), toString(bd), toString(v), toString(be)], b)
306- StringEntry(z(A, y), aT)
306+func bd (z,B,be,bf) = {
307+ let aU = makeString(["%d%d%d%d", toString(u), toString(be), toString(v), toString(bf)], b)
308+ StringEntry(A(B, z), aU)
307309 }
308310
309311
310-func bf (y,A) = {
311- let bg = getString(this, z(A, y))
312- let P = bg
313- if ($isInstanceOf(P, "String"))
312+func bg (z,B) = {
313+ let bh = getString(this, A(B, z))
314+ let Q = bh
315+ if ($isInstanceOf(Q, "String"))
314316 then {
315- let aW = P
316- let aX = split(aW, b)
317- let bh = parseIntValue(aX[1])
318- let bd = parseIntValue(aX[2])
319- let bi = parseIntValue(aX[3])
320- let be = parseIntValue(aX[4])
321- if (if ((bi > height))
317+ let aX = Q
318+ let aY = split(aX, b)
319+ let bi = parseIntValue(aY[1])
320+ let be = parseIntValue(aY[2])
321+ let bj = parseIntValue(aY[3])
322+ let bf = parseIntValue(aY[4])
323+ if (if ((bj > height))
322324 then true
323325 else (s == -1))
324- then $Tuple2(bd, be)
325- else $Tuple2(be, be)
326+ then $Tuple2(be, bf)
327+ else $Tuple2(bf, bf)
326328 }
327329 else $Tuple2(0, 0)
328330 }
329331
330332
331-func bj (A,bk,bl) = {
332- let aT = makeString(["%d%d%d%d", toString(u), toString(bk), toString(v), toString(bl)], b)
333- StringEntry(B(A), aT)
333+func bk (B,bl,bm) = {
334+ let aU = makeString(["%d%d%d%d", toString(u), toString(bl), toString(v), toString(bm)], b)
335+ StringEntry(C(B), aU)
334336 }
335337
336338
337-func bm (A) = {
338- let bn = getString(this, B(A))
339- let P = bn
340- if ($isInstanceOf(P, "String"))
339+func bn (B) = {
340+ let bo = getString(this, C(B))
341+ let Q = bo
342+ if ($isInstanceOf(Q, "String"))
341343 then {
342- let aW = P
343- let aX = split(aW, b)
344- let bo = parseIntValue(aX[1])
345- let bk = parseIntValue(aX[2])
346- let bp = parseIntValue(aX[3])
347- let bl = parseIntValue(aX[4])
348- if (if ((bp > height))
344+ let aX = Q
345+ let aY = split(aX, b)
346+ let bp = parseIntValue(aY[1])
347+ let bl = parseIntValue(aY[2])
348+ let bq = parseIntValue(aY[3])
349+ let bm = parseIntValue(aY[4])
350+ if (if ((bq > height))
349351 then true
350352 else (t == 0))
351- then $Tuple2(bk, bl)
352- else $Tuple2((bk + bl), 0)
353+ then $Tuple2(bl, bm)
354+ else $Tuple2((bl + bm), 0)
353355 }
354356 else $Tuple2(0, 0)
355357 }
356358
357359
358-func bq (A,br) = IntegerEntry(C(A), br)
360+func br (B,bs) = IntegerEntry(D(B), bs)
359361
360362
361-func bs (A) = valueOrElse(getInteger(this, C(A)), 0)
363+func bt (B) = valueOrElse(getInteger(this, D(B)), 0)
362364
363365
364-func bt (A) = {
365- let bu = D(A)
366- let bv = valueOrElse(getInteger(this, bu), w)
367- let bw = valueOrElse(getInteger(this, l), 0)
368- let bx = min([(w + e), height])
369- let by = (bx - bv)
370- let bz = bs(A)
371- let bA = fraction((bw * by), bz, d)
372- let bB = fraction(bz, by, e)
373- $Tuple3(bA, bB, bv)
366+func bu (B) = {
367+ let bv = E(B)
368+ let bw = valueOrElse(getInteger(this, bv), w)
369+ let bx = valueOrElse(getInteger(this, k), 0)
370+ let by = min([(w + x), height])
371+ let bz = (by - bw)
372+ let bA = bt(B)
373+ let bB = fraction((bx * bz), bA, d)
374+ let bC = fraction(bA, bz, x)
375+ $Tuple3(bB, bC, bw)
374376 }
375377
376378
377-func bC (A) = {
378- let bD = E(A)
379- let bE = valueOrElse(getInteger(this, bD), 0)
380- let bF = G(A)
381- let bB = valueOrElse(getInteger(this, bF), 0)
382- let bG = bt(A)
383- let bA = bG._1
384- let bH = bG._2
385- let bv = bG._3
386- if ((0 >= bA))
379+func bD (B) = {
380+ let bE = F(B)
381+ let bF = valueOrElse(getInteger(this, bE), 0)
382+ let bG = H(B)
383+ let bC = valueOrElse(getInteger(this, bG), 0)
384+ let bH = bu(B)
385+ let bB = bH._1
386+ let bI = bH._2
387+ let bw = bH._3
388+ if ((0 >= bB))
387389 then nil
388- else [IntegerEntry(D(A), bv), IntegerEntry(bF, (bB + bH)), IntegerEntry(bD, (bE + bA))]
390+ else [IntegerEntry(E(B), bw), IntegerEntry(bG, (bC + bI)), IntegerEntry(bE, (bF + bB))]
389391 }
390392
391393
392-func bI (y,A,bJ) = {
393- let bK = aU(y)
394- let aZ = bK._1
395- let bb = bK._2
396- let bL = bf(y, A)
397- let bd = bL._1
398- let be = bL._2
399- let bM = [if (!(V))
394+func bJ (z,B,bK) = {
395+ let bL = aV(z)
396+ let ba = bL._1
397+ let bc = bL._2
398+ let bM = bg(z, B)
399+ let be = bM._1
400+ let bf = bM._2
401+ let bN = [if (!(W))
400402 then true
401- else f("contract is temporary stopped"), if (!(W))
403+ else e("contract is temporary stopped"), if (!(X))
402404 then true
403- else f("unstake is temporary disabled"), if ((bJ > 0))
405+ else e("unstake is temporary disabled"), if ((bK > 0))
404406 then true
405- else f("unstake amount should be greater than 0"), if ((be >= bJ))
407+ else e("unstake amount should be greater than 0"), if ((bf >= bK))
406408 then true
407- else f("unstake amount should be less or equal user staked amount"), if ((bb >= bJ))
409+ else e("unstake amount should be less or equal user staked amount"), if ((bc >= bK))
408410 then true
409- else f("unstake amount should be less or equal node staked amount"), if (X(y))
411+ else e("unstake amount should be less or equal node staked amount"), if (Y(z))
410412 then true
411- else f(makeString(["node address is not valid:", y], " ")), if (X(A))
413+ else e(makeString(["node address is not valid:", z], " ")), if (Y(B))
412414 then true
413- else f(makeString(["user address is not valid:", A], " "))]
414- if ((bM == bM))
415+ else e(makeString(["user address is not valid:", B], " "))]
416+ if ((bN == bN))
415417 then {
416- let bN = (bb - bJ)
417- let bO = (be - bJ)
418- let bP = bm(A)
419- let bk = bP._1
420- let bl = bP._2
421- let bQ = (bl + bJ)
422- let br = bs(A)
423- let bR = (br - bJ)
424- let bS = bC(A)
425- ([aQ(y, aZ, bN), bc(y, A, bd, bO), bj(A, bk, bQ), bq(A, bR), IntegerEntry(I(y), bN), IntegerEntry(K(y, A), bO)] ++ bS)
418+ let bO = (bc - bK)
419+ let bP = (bf - bK)
420+ let bQ = bn(B)
421+ let bl = bQ._1
422+ let bm = bQ._2
423+ let bR = (bm + bK)
424+ let bs = bt(B)
425+ let bS = (bs - bK)
426+ let bT = bD(B)
427+ ([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)
426428 }
427429 else throw("Strict value is not equal to itself.")
428430 }
429431
430432
431-func bT (A,bU) = {
432- let bV = bm(A)
433- let bk = bV._1
434- let bl = bV._2
435- let bM = [if (!(V))
433+func bU (B,bV) = {
434+ let bW = bn(B)
435+ let bl = bW._1
436+ let bm = bW._2
437+ let bN = [if (!(W))
436438 then true
437- else f("contract is temporary stopped"), if (!(W))
439+ else e("contract is temporary stopped"), if (!(X))
438440 then true
439- else f("claim is temporary disabled"), if ((bU > 0))
441+ else e("claim is temporary disabled"), if ((bV > 0))
440442 then true
441- else f("claim amount should be greater than 0"), if ((bk >= bU))
443+ else e("claim amount should be greater than 0"), if ((bl >= bV))
442444 then true
443- else f("claim amount should be less or equal unlocked amount"), if (X(A))
445+ else e("claim amount should be less or equal unlocked amount"), if (Y(B))
444446 then true
445- else f(makeString(["user address is not valid:", A], " "))]
446- if ((bM == bM))
447+ else e(makeString(["user address is not valid:", B], " "))]
448+ if ((bN == bN))
447449 then {
448- let bW = (bk - bU)
449-[bj(A, bW, bl), ScriptTransfer(addressFromStringValue(A), bU, T)]
450+ let bX = (bl - bV)
451+[bk(B, bX, bm), ScriptTransfer(addressFromStringValue(B), bV, U)]
450452 }
451453 else throw("Strict value is not equal to itself.")
452454 }
453455
454456
455-func bX (A,bY) = {
456- let bZ = bm(A)
457- let bk = bZ._1
458- let bl = bZ._2
459- let bM = [if (!(V))
457+func bY (B,bZ) = {
458+ let ca = bn(B)
459+ let bl = ca._1
460+ let bm = ca._2
461+ let bN = [if (!(W))
460462 then true
461- else f("contract is temporary stopped"), if ((1 >= size(bY.payments)))
463+ else e("contract is temporary stopped"), if ((1 >= size(bZ.payments)))
462464 then true
463- else f("maximum 1 payment"), if (if ((size(bY.payments) == 0))
465+ else e("maximum 1 payment"), if (if ((size(bZ.payments) == 0))
464466 then true
465- else (bY.payments[0].assetId == T))
467+ else (bZ.payments[0].assetId == U))
466468 then true
467- else f(makeString(["payment assetId should be:", R], " ")), if (X(A))
469+ else e(makeString(["payment assetId should be:", S], " ")), if (Y(B))
468470 then true
469- else f(makeString(["user address is not valid:", A], " "))]
470- if ((bM == bM))
471+ else e(makeString(["user address is not valid:", B], " "))]
472+ if ((bN == bN))
471473 then {
472- let bW = (bk + bY.payments[0].amount)
473-[bj(A, bW, bl)]
474+ let bX = (bl + bZ.payments[0].amount)
475+[bk(B, bX, bm)]
474476 }
475477 else throw("Strict value is not equal to itself.")
476478 }
477479
478480
479-func ca (y,A,cb,bY) = {
480- let cc = bm(A)
481- let bk = cc._1
482- let bl = cc._2
483- let cd = if ((size(bY.payments) == 0))
481+func cb (z,B,cc,bZ) = {
482+ let cd = bn(B)
483+ let bl = cd._1
484+ let bm = cd._2
485+ let ce = if ((size(bZ.payments) == 0))
484486 then 0
485- else bY.payments[0].amount
486- let ce = ((bl + bk) + cd)
487- let bM = [if (!(V))
487+ else bZ.payments[0].amount
488+ let cf = ((bm + bl) + ce)
489+ let bN = [if (!(W))
488490 then true
489- else f("contract is temporary stopped"), if ((1 >= size(bY.payments)))
491+ else e("contract is temporary stopped"), if ((1 >= size(bZ.payments)))
490492 then true
491- else f("maximum 1 payment"), if (if ((size(bY.payments) == 0))
493+ else e("maximum 1 payment"), if (if ((size(bZ.payments) == 0))
492494 then true
493- else (bY.payments[0].assetId == T))
495+ else (bZ.payments[0].assetId == U))
494496 then true
495- else f(makeString(["payment assetId should be:", R], " ")), if ((cb > 0))
497+ else e(makeString(["payment assetId should be:", S], " ")), if ((cc > 0))
496498 then true
497- else f("amount should be greater than 0"), if ((ce >= cb))
499+ else e("amount should be greater than 0"), if ((cf >= cc))
498500 then true
499- else f("amount should be less or equal (payment + available) amount"), if ((cb >= cd))
501+ else e("amount should be less or equal (payment + available) amount"), if ((cc >= ce))
500502 then true
501- else throw("amount should be greater or equal payment amount"), if (X(y))
503+ else throw("amount should be greater or equal payment amount"), if (Y(z))
502504 then true
503- else f(makeString(["node address is not valid:", y], " ")), if (X(A))
505+ else e(makeString(["node address is not valid:", z], " ")), if (Y(B))
504506 then true
505- else f(makeString(["user address is not valid:", A], " "))]
506- if ((bM == bM))
507+ else e(makeString(["user address is not valid:", B], " "))]
508+ if ((bN == bN))
507509 then {
508- let cf = aU(y)
509- let aZ = cf._1
510- let bb = cf._2
511- let bN = (bb + cb)
512- let cg = bf(y, A)
513- let bd = cg._1
514- let be = cg._2
515- let bO = (be + cb)
516- let ch = (cb - cd)
517- let bQ = max([0, (bl - ch)])
518- let bW = min([bk, (bk + (bl - ch))])
519- let br = bs(A)
520- let bR = (br + cb)
521- let bS = bC(A)
522- ([aQ(y, aZ, bN), bc(y, A, bd, bO), bj(A, bW, bQ), bq(A, bR), IntegerEntry(I(y), bN), IntegerEntry(K(y, A), bO)] ++ bS)
510+ let cg = aV(z)
511+ let ba = cg._1
512+ let bc = cg._2
513+ let bO = (bc + cc)
514+ let ch = bg(z, B)
515+ let be = ch._1
516+ let bf = ch._2
517+ let bP = (bf + cc)
518+ let ci = (cc - ce)
519+ let bR = max([0, (bm - ci)])
520+ let bX = min([bl, (bl + (bm - ci))])
521+ let bs = bt(B)
522+ let bS = (bs + cc)
523+ let bT = bD(B)
524+ ([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)
523525 }
524526 else throw("Strict value is not equal to itself.")
525527 }
526528
527529
528-func ci (y,A,bY) = {
529- let bM = [if ((size(bY.payments) == 1))
530+func cj (z,B,bZ) = {
531+ let bN = [if ((size(bZ.payments) == 1))
530532 then true
531- else f("payment size should be exactly 1")]
532- if ((bM == bM))
533- then ca(y, A, bY.payments[0].amount, bY)
533+ else e("payment size should be exactly 1")]
534+ if ((bN == bN))
535+ then cb(z, B, bZ.payments[0].amount, bZ)
534536 else throw("Strict value is not equal to itself.")
535537 }
536538
537539
538-func cj (ck) = {
539- let cl = [if ((ck > 0))
540+func ck (cl) = {
541+ let cm = [if ((cl > 0))
540542 then true
541- else f("period length should be greater than 0")]
542- if ((cl == cl))
543+ else e("period length should be greater than 0")]
544+ if ((cm == cm))
543545 then if ((s == -1))
544- then [IntegerEntry(o, ck), IntegerEntry(n, height)]
545- else [IntegerEntry(m, (t + 1)), IntegerEntry(n, v), IntegerEntry(o, ck)]
546+ then [IntegerEntry(n, cl), IntegerEntry(m, height)]
547+ else [IntegerEntry(l, (t + 1)), IntegerEntry(m, v), IntegerEntry(n, cl)]
546548 else throw("Strict value is not equal to itself.")
547549 }
548550
549551
550-func cm (A) = {
551- let cn = bt(A)
552- let co = cn._1
553- let bH = cn._2
554- let bv = cn._3
555- let cp = valueOrElse(getInteger(this, E(A)), 0)
556- let cq = (co + cp)
557- let cr = valueOrElse(getInteger(this, G(A)), 0)
558- let bB = (cr + bH)
559- let cs = valueOrElse(getInteger(this, F(A)), 0)
560- let ct = valueOrElse(getInteger(this, H(A)), 0)
561- $Tuple5(cq, cs, bB, ct, bv)
552+func cn (B) = {
553+ let co = bu(B)
554+ let cp = co._1
555+ let bI = co._2
556+ let bw = co._3
557+ let cq = valueOrElse(getInteger(this, F(B)), 0)
558+ let cr = (cp + cq)
559+ let cs = valueOrElse(getInteger(this, H(B)), 0)
560+ let bC = (cs + bI)
561+ let ct = valueOrElse(getInteger(this, G(B)), 0)
562+ let cu = valueOrElse(getInteger(this, I(B)), 0)
563+ $Tuple5(cr, ct, bC, cu, bw)
562564 }
563565
564566
565-func cu (A) = {
566- let cv = cm(A)
567- let cq = cv._1
568- let cs = cv._2
569- let bB = cv._3
570- let ct = cv._4
571- let bv = cv._5
572- let cl = [if ((0 >= cq))
567+func cv (B) = {
568+ let cw = cn(B)
569+ let cr = cw._1
570+ let ct = cw._2
571+ let bC = cw._3
572+ let cu = cw._4
573+ let bw = cw._5
574+ let cm = [if ((0 >= cr))
573575 then true
574- else f("nothing to claim")]
575- if ((cl == cl))
576+ else e("nothing to claim")]
577+ if ((cm == cm))
576578 then {
577- let cw = {
578- let P = T
579- if ($isInstanceOf(P, "ByteVector"))
579+ let cx = {
580+ let Q = U
581+ if ($isInstanceOf(Q, "ByteVector"))
580582 then {
581- let cx = P
582-[Burn(cx, bB)]
583+ let cy = Q
584+[Burn(cy, bC)]
583585 }
584586 else nil
585587 }
586- ([IntegerEntry(D(A), bv), IntegerEntry(F(A), (cs + cq)), IntegerEntry(H(A), (ct + bB)), IntegerEntry(E(A), 0), IntegerEntry(G(A), 0), ScriptTransfer(addressFromStringValue(A), cq, U)] ++ cw)
588+ ([IntegerEntry(E(B), bw), IntegerEntry(G(B), (ct + cr)), IntegerEntry(I(B), (cu + bC)), IntegerEntry(F(B), 0), IntegerEntry(H(B), 0), ScriptTransfer(addressFromStringValue(B), cr, V)] ++ cx)
587589 }
588590 else throw("Strict value is not equal to itself.")
589591 }
590592
591593
592-@Callable(bY)
593-func setNewPeriodLength (ck) = {
594- let bM = [if (ao(toString(bY.caller)))
594+@Callable(bZ)
595+func setNewPeriodLength (cl) = {
596+ let bN = [if (ap(toString(bZ.caller)))
595597 then true
596- else f("caller is not in adminList")]
597- if ((bM == bM))
598- then cj(ck)
598+ else e("caller is not in adminList")]
599+ if ((bN == bN))
600+ then ck(cl)
599601 else throw("Strict value is not equal to itself.")
600602 }
601603
602604
603605
604-@Callable(bY)
606+@Callable(bZ)
605607 func claimUnits () = {
606- let A = toString(bY.caller)
607- cu(A)
608+ let B = toString(bZ.caller)
609+ cv(B)
608610 }
609611
610612
611613
612-@Callable(bY)
613-func setForceStopFlag (cy) = {
614- let cl = [if (ao(toString(bY.caller)))
614+@Callable(bZ)
615+func setForceStopFlag (cz) = {
616+ let cm = [if (ap(toString(bZ.caller)))
615617 then true
616- else f("caller is not in adminList")]
617- if ((cl == cl))
618- then [BooleanEntry(i, cy)]
618+ else e("caller is not in adminList")]
619+ if ((cm == cm))
620+ then [BooleanEntry(h, cz)]
619621 else throw("Strict value is not equal to itself.")
620622 }
621623
622624
623625
624-@Callable(bY)
625-func setForceOutStopFlag (cy) = {
626- let cl = [if (ao(toString(bY.caller)))
626+@Callable(bZ)
627+func setForceOutStopFlag (cz) = {
628+ let cm = [if (ap(toString(bZ.caller)))
627629 then true
628- else f("caller is not in adminList")]
629- if ((cl == cl))
630- then [BooleanEntry(j, cy)]
630+ else e("caller is not in adminList")]
631+ if ((cm == cm))
632+ then [BooleanEntry(i, cz)]
631633 else throw("Strict value is not equal to itself.")
632634 }
633635
634636
635637
636-@Callable(bY)
637-func getNodeDataREADONLY (y) = {
638- let cz = aU(y)
639- let cA = cz._1
640- let aS = cz._2
641- $Tuple2(nil, $Tuple5(u, cA, v, aS, height))
638+@Callable(bZ)
639+func getNodeDataREADONLY (z) = {
640+ let cA = aV(z)
641+ let cB = cA._1
642+ let aT = cA._2
643+ $Tuple2(nil, $Tuple5(u, cB, v, aT, height))
642644 }
643645
644646
645647
646-@Callable(bY)
647-func getUserLeasingDataREADONLY (y,A) = {
648- let cB = bf(y, A)
649- let cA = cB._1
650- let aS = cB._2
651- $Tuple2(nil, $Tuple5(u, cA, v, aS, height))
648+@Callable(bZ)
649+func getUserLeasingDataREADONLY (z,B) = {
650+ let cC = bg(z, B)
651+ let cB = cC._1
652+ let aT = cC._2
653+ $Tuple2(nil, $Tuple5(u, cB, v, aT, height))
652654 }
653655
654656
655657
656-@Callable(bY)
657-func getUserDataREADONLY (A) = {
658- let cC = bm(A)
659- let bk = cC._1
660- let bl = cC._2
661- let br = bs(A)
662- let cD = cm(A)
663- let cq = cD._1
664- let cs = cD._2
665- let bB = cD._3
666- let ct = cD._4
667- let bv = cD._5
668- $Tuple2(nil, $Tuple11(u, bk, v, bl, br, height, cq, cs, bB, ct, bv))
658+@Callable(bZ)
659+func getUserDataREADONLY (B) = {
660+ let cD = bn(B)
661+ let bl = cD._1
662+ let bm = cD._2
663+ let bs = bt(B)
664+ let cE = cn(B)
665+ let cr = cE._1
666+ let ct = cE._2
667+ let bC = cE._3
668+ let cu = cE._4
669+ let bw = cE._5
670+ $Tuple2(nil, $Tuple11(u, bl, v, bm, bs, height, cr, ct, bC, cu, bw))
669671 }
670672
671673
672674
673-@Callable(bY)
674-func leaseByAddress (y,A) = ci(y, A, bY)
675+@Callable(bZ)
676+func leaseByAddress (z,B) = cj(z, B, bZ)
675677
676678
677679
678-@Callable(bY)
679-func lease (y) = {
680- let A = toString(bY.caller)
681- ci(y, A, bY)
680+@Callable(bZ)
681+func lease (z) = {
682+ let B = toString(bZ.caller)
683+ cj(z, B, bZ)
682684 }
683685
684686
685687
686-@Callable(bY)
687-func leaseFromLocked (y,cE) = {
688- let A = toString(bY.caller)
689- ca(y, A, cE, bY)
688+@Callable(bZ)
689+func leaseFromLocked (z,cF) = {
690+ let B = toString(bZ.caller)
691+ cb(z, B, cF, bZ)
690692 }
691693
692694
693695
694-@Callable(bY)
695-func cancelLease (y,cE) = {
696- let A = toString(bY.caller)
697- bI(y, A, cE)
696+@Callable(bZ)
697+func cancelLease (z,cF) = {
698+ let B = toString(bZ.caller)
699+ bJ(z, B, cF)
698700 }
699701
700702
701703
702-@Callable(bY)
703-func claim (cE) = {
704- let A = toString(bY.caller)
705- bT(A, cE)
704+@Callable(bZ)
705+func claim (cF) = {
706+ let B = toString(bZ.caller)
707+ bU(B, cF)
706708 }
707709
708710
709711
710-@Callable(bY)
712+@Callable(bZ)
711713 func claimAll () = {
712- let A = toString(bY.caller)
713- let cF = bm(A)
714- let bk = cF._1
715- let bl = cF._2
716- let bM = [if ((bk > 0))
714+ let B = toString(bZ.caller)
715+ let cG = bn(B)
716+ let bl = cG._1
717+ let bm = cG._2
718+ let bN = [if ((bl > 0))
717719 then true
718- else f("nothing to claim")]
719- if ((bM == bM))
720- then bT(A, bk)
720+ else e("nothing to claim")]
721+ if ((bN == bN))
722+ then bU(B, bl)
721723 else throw("Strict value is not equal to itself.")
722724 }
723725
724726
725727
726-@Callable(bY)
727-func stakeFor (A) = bX(A, bY)
728+@Callable(bZ)
729+func stakeFor (B) = bY(B, bZ)
728730
729731
730732
731-@Callable(bY)
732-func startUnitsVesting () = {
733- let cG = 100000000000000000
734- let cH = bY.payments[0].amount
735- let bw = (fraction(cG, d, cH) / e)
736- let cl = [if (ao(toString(bY.caller)))
733+@Callable(bZ)
734+func startUnitsVesting (x) = {
735+ let cH = 100000000000000000
736+ let cI = bZ.payments[0].amount
737+ let bx = (fraction(cH, d, cI) / x)
738+ let cm = [if (ap(toString(bZ.caller)))
737739 then true
738- else f("caller is not in adminList"), if ((size(bY.payments) == 1))
740+ else e("caller is not in adminList"), if ((size(bZ.payments) == 1))
739741 then true
740- else f("should be 1 payment"), if ((bw > 0))
742+ else e("should be 1 payment"), if ((bx > 0))
741743 then true
742- else f("units per block should be greated than 0")]
743- if ((cl == cl))
744- then [IntegerEntry(l, bw), IntegerEntry(p, height), StringEntry(k, N(bY.payments[0].assetId))]
744+ else e("units per block should be greated than 0")]
745+ if ((cm == cm))
746+ then [IntegerEntry(k, bx), IntegerEntry(o, height), IntegerEntry(p, x), StringEntry(j, O(bZ.payments[0].assetId))]
745747 else throw("Strict value is not equal to itself.")
746748 }
747749
748750
749751
750-@Callable(bY)
751-func voteForTxId (ad) = {
752- let aK = toBase58String(bY.caller.bytes)
753- let at = ac(ad)
754- let ar = [StringEntry(ai(), ad)]
755- let cI = getString(this, ai())
756- let aO = [if ((size(fromBase58String(ad)) == ab))
752+@Callable(bZ)
753+func voteForTxId (ae) = {
754+ let aL = toBase58String(bZ.caller.bytes)
755+ let au = ad(ae)
756+ let as = [StringEntry(aj(), ae)]
757+ let cJ = getString(this, aj())
758+ let aP = [if ((size(fromBase58String(ae)) == ac))
757759 then true
758- else f((ad + " is not valid txId")), if (if ((cI == unit))
760+ else e((ae + " is not valid txId")), if (if ((cJ == unit))
759761 then true
760- else (value(cI) != ad))
762+ else (value(cJ) != ae))
761763 then true
762- else f((ad + " is already allowed"))]
763- if ((aO == aO))
764- then aJ(aK, at, aa, ar)
764+ else e((ae + " is already allowed"))]
765+ if ((aP == aP))
766+ then aK(aL, au, ab, as)
765767 else throw("Strict value is not equal to itself.")
766768 }
767769
768770
769-@Verifier(cJ)
770-func cK () = {
771- let cL = (cJ.id == fromBase58String(valueOrElse(getString(this, ai()), "")))
772- let cM = if ((size(am()) >= aa))
771+@Verifier(cK)
772+func cL () = {
773+ let cM = (cK.id == fromBase58String(valueOrElse(getString(this, aj()), "")))
774+ let cN = if ((size(an()) >= ab))
773775 then false
774- else sigVerify(cJ.bodyBytes, cJ.proofs[0], cJ.senderPublicKey)
775- if (cL)
776+ else sigVerify(cK.bodyBytes, cK.proofs[0], cK.senderPublicKey)
777+ if (cM)
776778 then true
777- else cM
779+ else cN
778780 }
779781
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
12-let e = ((365 * 24) * 60)
13-
14-func f (g) = throw(((a + ": ") + g))
12+func e (f) = throw(((a + ": ") + f))
1513
1614
17-let h = makeString(["%s", "assetId"], b)
15+let g = makeString(["%s", "assetId"], b)
1816
19-let i = makeString(["%s", "forceStop"], b)
17+let h = makeString(["%s", "forceStop"], b)
2018
21-let j = makeString(["%s", "forceOutStop"], b)
19+let i = makeString(["%s", "forceOutStop"], b)
2220
23-let k = makeString(["%s", "unitsAssetId"], b)
21+let j = makeString(["%s", "unitsAssetId"], b)
2422
25-let l = makeString(["%s", "unitsPerBlock"], b)
23+let k = makeString(["%s", "unitsPerBlock"], b)
2624
27-let m = makeString(["%s", "offsetId"], b)
25+let l = makeString(["%s", "offsetId"], b)
2826
29-let n = makeString(["%s", "offsetHeight"], b)
27+let m = makeString(["%s", "offsetHeight"], b)
3028
31-let o = makeString(["%s", "periodLength"], b)
29+let n = makeString(["%s", "periodLength"], b)
3230
33-let p = makeString(["%s", "unitsClaimStartHeight"], b)
31+let o = makeString(["%s", "unitsClaimStartHeight"], b)
3432
35-let q = valueOrElse(getInteger(this, m), 0)
33+let p = makeString(["%s", "unitsClaimInterval"], b)
3634
37-let r = valueOrElse(getInteger(this, o), 10000)
35+let q = valueOrElse(getInteger(this, l), 0)
3836
39-let s = valueOrElse(getInteger(this, n), -1)
37+let r = valueOrElse(getInteger(this, n), 10000)
38+
39+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
63-let w = valueOrElse(getInteger(this, p), height)
63+let w = valueOrElse(getInteger(this, o), height)
6464
65-func x (y) = makeString(["%s", y], b)
65+let x = valueOrElse(getInteger(this, p), 0)
66+
67+func y (z) = makeString(["%s", z], b)
6668
6769
68-func z (A,y) = makeString(["%s%s", y, A], b)
70+func A (B,z) = makeString(["%s%s", z, B], b)
6971
7072
71-func B (A) = makeString(["%s%s", "toClaim", A], b)
73+func C (B) = makeString(["%s%s", "toClaim", B], b)
7274
7375
74-func C (A) = makeString(["%s%s", "userTotalLocked", A], b)
76+func D (B) = makeString(["%s%s", "userTotalLocked", B], b)
7577
7678
77-func D (A) = makeString(["%s%s", "unitsClaimedBlock", A], b)
79+func E (B) = makeString(["%s%s", "unitsClaimedBlock", B], b)
7880
7981
80-func E (A) = makeString(["%s%s", "unlockedUnits", A], b)
82+func F (B) = makeString(["%s%s", "unlockedUnits", B], b)
8183
8284
83-func F (A) = makeString(["%s%s", "totalUnitsClaimed", A], b)
85+func G (B) = makeString(["%s%s", "totalUnitsClaimed", B], b)
8486
8587
86-func G (A) = makeString(["%s%s", "l2ToBurn", A], b)
88+func H (B) = makeString(["%s%s", "l2ToBurn", B], b)
8789
8890
89-func H (A) = makeString(["%s%s", "l2BurnedTotal", A], b)
91+func I (B) = makeString(["%s%s", "l2BurnedTotal", B], b)
9092
9193
92-func I (y) = {
93- let J = if ((s == -1))
94+func J (z) = {
95+ let K = if ((s == -1))
9496 then 0
9597 else height
96- makeString(["%s%d", y, toString(J)], b)
98+ makeString(["%s%d", z, toString(K)], b)
9799 }
98100
99101
100-func K (y,A) = {
101- let J = if ((s == -1))
102+func L (z,B) = {
103+ let K = if ((s == -1))
102104 then 0
103105 else height
104- makeString(["%s%s%d", y, A, toString(J)], b)
106+ makeString(["%s%s%d", z, B, toString(K)], b)
105107 }
106108
107109
108-func L (M) = if ((M == "WAVES"))
110+func M (N) = if ((N == "WAVES"))
109111 then unit
110- else fromBase58String(M)
112+ else fromBase58String(N)
111113
112114
113-func N (O) = {
114- let P = O
115- if ($isInstanceOf(P, "ByteVector"))
115+func O (P) = {
116+ let Q = P
117+ if ($isInstanceOf(Q, "ByteVector"))
116118 then {
117- let Q = P
118- toBase58String(Q)
119+ let R = Q
120+ toBase58String(R)
119121 }
120122 else "WAVES"
121123 }
122124
123125
124-let R = valueOrElse(getString(this, h), "WAVES")
126+let S = valueOrElse(getString(this, g), "WAVES")
125127
126-let S = valueOrElse(getString(this, k), "WAVES")
128+let T = valueOrElse(getString(this, j), "WAVES")
127129
128-let T = L(R)
130+let U = M(S)
129131
130-let U = L(S)
132+let V = M(T)
131133
132-let V = valueOrElse(getBoolean(this, i), false)
134+let W = valueOrElse(getBoolean(this, h), false)
133135
134-let W = valueOrElse(getBoolean(this, j), false)
136+let X = valueOrElse(getBoolean(this, i), false)
135137
136-func X (Y) = {
137- let P = addressFromString(Y)
138- if ($isInstanceOf(P, "Address"))
138+func Y (Z) = {
139+ let Q = addressFromString(Z)
140+ if ($isInstanceOf(Q, "Address"))
139141 then {
140- let Q = P
142+ let R = Q
141143 true
142144 }
143145 else false
144146 }
145147
146148
147-let Z = 5
149+let aa = 5
148150
149-let aa = 3
151+let ab = 3
150152
151-let ab = 32
153+let ac = 32
152154
153-func ac (ad) = makeString(["%s%s%s", "allowTxId", ad], b)
155+func ad (ae) = makeString(["%s%s%s", "allowTxId", ae], b)
154156
155157
156-func ae (af,ag) = makeString([af, ag], b)
158+func af (ag,ah) = makeString([ag, ah], b)
157159
158160
159-func ah () = makeString(["%s", "adminAddressList"], b)
161+func ai () = makeString(["%s", "adminAddressList"], b)
160162
161163
162-func ai () = makeString(["%s", "txId"], b)
164+func aj () = makeString(["%s", "txId"], b)
163165
164166
165-func aj (af,ak) = {
166- let al = ae(af, ak)
167- valueOrElse(getInteger(al), 0)
167+func ak (ag,al) = {
168+ let am = af(ag, al)
169+ valueOrElse(getInteger(am), 0)
168170 }
169171
170172
171-func am () = {
172- let P = getString(this, ah())
173- if ($isInstanceOf(P, "String"))
173+func an () = {
174+ let Q = getString(this, ai())
175+ if ($isInstanceOf(Q, "String"))
174176 then {
175- let an = P
176- split(an, b)
177+ let ao = Q
178+ split(ao, b)
177179 }
178180 else nil
179181 }
180182
181183
182-func ao (Y) = containsElement(am(), Y)
184+func ap (Z) = containsElement(an(), Z)
183185
184186
185-func ap (Q,ag) = {
186- let aq = Q
187- let ar = aq._1
188- let af = aq._2
189- $Tuple2((ar :+ ae(af, ag)), af)
187+func aq (R,ah) = {
188+ let ar = R
189+ let as = ar._1
190+ let ag = ar._2
191+ $Tuple2((as :+ af(ag, ah)), ag)
190192 }
191193
192194
193-func as (at) = {
194- let au = ah()
195- let av = {
196- let aw = am()
197- let ax = size(aw)
198- let ay = $Tuple2(nil, at)
199- func az (aA,aB) = if ((aB >= ax))
200- then aA
201- else ap(aA, aw[aB])
195+func at (au) = {
196+ let av = ai()
197+ let aw = {
198+ let ax = an()
199+ let ay = size(ax)
200+ let az = $Tuple2(nil, au)
201+ func aA (aB,aC) = if ((aC >= ay))
202+ then aB
203+ else aq(aB, ax[aC])
202204
203- func aC (aA,aB) = if ((aB >= ax))
204- then aA
205+ func aD (aB,aC) = if ((aC >= ay))
206+ then aB
205207 else throw("List size exceeds 5")
206208
207- aC(az(az(az(az(az(ay, 0), 1), 2), 3), 4), 5)
209+ aD(aA(aA(aA(aA(aA(az, 0), 1), 2), 3), 4), 5)
208210 }
209- let ar = av._1
210- let af = av._2
211- ar
211+ let as = aw._1
212+ let ag = aw._2
213+ as
212214 }
213215
214216
215-func aD (ar,al) = (ar + valueOrElse(getInteger(al), 0))
217+func aE (as,am) = (as + valueOrElse(getInteger(am), 0))
216218
217219
218-func aE (af) = {
219- let aF = as(af)
220- let aw = aF
221- let ax = size(aw)
222- let ay = 0
223- func az (aA,aB) = if ((aB >= ax))
224- then aA
225- else aD(aA, aw[aB])
220+func aF (ag) = {
221+ let aG = at(ag)
222+ let ax = aG
223+ let ay = size(ax)
224+ let az = 0
225+ func aA (aB,aC) = if ((aC >= ay))
226+ then aB
227+ else aE(aB, ax[aC])
226228
227- func aC (aA,aB) = if ((aB >= ax))
228- then aA
229+ func aD (aB,aC) = if ((aC >= ay))
230+ then aB
229231 else throw("List size exceeds 5")
230232
231- aC(az(az(az(az(az(ay, 0), 1), 2), 3), 4), 5)
233+ aD(aA(aA(aA(aA(aA(az, 0), 1), 2), 3), 4), 5)
232234 }
233235
234236
235-func aG (ar,aH) = (ar :+ DeleteEntry(aH))
237+func aH (as,aI) = (as :+ DeleteEntry(aI))
236238
237239
238-func aI (af) = {
239- let aF = as(af)
240- let aw = aF
241- let ax = size(aw)
242- let ay = nil
243- func az (aA,aB) = if ((aB >= ax))
244- then aA
245- else aG(aA, aw[aB])
240+func aJ (ag) = {
241+ let aG = at(ag)
242+ let ax = aG
243+ let ay = size(ax)
244+ let az = nil
245+ func aA (aB,aC) = if ((aC >= ay))
246+ then aB
247+ else aH(aB, ax[aC])
246248
247- func aC (aA,aB) = if ((aB >= ax))
248- then aA
249+ func aD (aB,aC) = if ((aC >= ay))
250+ then aB
249251 else throw("List size exceeds 5")
250252
251- aC(az(az(az(az(az(ay, 0), 1), 2), 3), 4), 5)
253+ aD(aA(aA(aA(aA(aA(az, 0), 1), 2), 3), 4), 5)
252254 }
253255
254256
255-func aJ (aK,at,aL,aM) = {
256- let al = ae(at, aK)
257- let aN = aj(at, aK)
258- let aO = if (!(ao(aK)))
259- then f((("Address: " + aK) + " not in Admin list"))
260- else if ((aN == 1))
261- then f((al + " you already voted"))
257+func aK (aL,au,aM,aN) = {
258+ let am = af(au, aL)
259+ let aO = ak(au, aL)
260+ let aP = if (!(ap(aL)))
261+ then e((("Address: " + aL) + " not in Admin list"))
262+ else if ((aO == 1))
263+ then e((am + " you already voted"))
262264 else unit
263- if ((aO == aO))
265+ if ((aP == aP))
264266 then {
265- let aF = aE(at)
266- if (((aF + 1) >= aL))
267+ let aG = aF(au)
268+ if (((aG + 1) >= aM))
267269 then {
268- let aP = aI(at)
269- (aP ++ aM)
270+ let aQ = aJ(au)
271+ (aQ ++ aN)
270272 }
271- else [IntegerEntry(al, 1)]
273+ else [IntegerEntry(am, 1)]
272274 }
273275 else throw("Strict value is not equal to itself.")
274276 }
275277
276278
277-func aQ (y,aR,aS) = {
278- let aT = makeString(["%d%d%d%d", toString(u), toString(aR), toString(v), toString(aS)], b)
279- StringEntry(x(y), aT)
279+func aR (z,aS,aT) = {
280+ let aU = makeString(["%d%d%d%d", toString(u), toString(aS), toString(v), toString(aT)], b)
281+ StringEntry(y(z), aU)
280282 }
281283
282284
283-func aU (y) = {
284- let aV = getString(this, x(y))
285- let P = aV
286- if ($isInstanceOf(P, "String"))
285+func aV (z) = {
286+ let aW = getString(this, y(z))
287+ let Q = aW
288+ if ($isInstanceOf(Q, "String"))
287289 then {
288- let aW = P
289- let aX = split(aW, b)
290- let aY = parseIntValue(aX[1])
291- let aZ = parseIntValue(aX[2])
292- let ba = parseIntValue(aX[3])
293- let bb = parseIntValue(aX[4])
294- if (if ((ba > height))
290+ let aX = Q
291+ let aY = split(aX, b)
292+ let aZ = parseIntValue(aY[1])
293+ let ba = parseIntValue(aY[2])
294+ let bb = parseIntValue(aY[3])
295+ let bc = parseIntValue(aY[4])
296+ if (if ((bb > height))
295297 then true
296298 else (s == -1))
297- then $Tuple2(aZ, bb)
298- else $Tuple2(bb, bb)
299+ then $Tuple2(ba, bc)
300+ else $Tuple2(bc, bc)
299301 }
300302 else $Tuple2(0, 0)
301303 }
302304
303305
304-func bc (y,A,bd,be) = {
305- let aT = makeString(["%d%d%d%d", toString(u), toString(bd), toString(v), toString(be)], b)
306- StringEntry(z(A, y), aT)
306+func bd (z,B,be,bf) = {
307+ let aU = makeString(["%d%d%d%d", toString(u), toString(be), toString(v), toString(bf)], b)
308+ StringEntry(A(B, z), aU)
307309 }
308310
309311
310-func bf (y,A) = {
311- let bg = getString(this, z(A, y))
312- let P = bg
313- if ($isInstanceOf(P, "String"))
312+func bg (z,B) = {
313+ let bh = getString(this, A(B, z))
314+ let Q = bh
315+ if ($isInstanceOf(Q, "String"))
314316 then {
315- let aW = P
316- let aX = split(aW, b)
317- let bh = parseIntValue(aX[1])
318- let bd = parseIntValue(aX[2])
319- let bi = parseIntValue(aX[3])
320- let be = parseIntValue(aX[4])
321- if (if ((bi > height))
317+ let aX = Q
318+ let aY = split(aX, b)
319+ let bi = parseIntValue(aY[1])
320+ let be = parseIntValue(aY[2])
321+ let bj = parseIntValue(aY[3])
322+ let bf = parseIntValue(aY[4])
323+ if (if ((bj > height))
322324 then true
323325 else (s == -1))
324- then $Tuple2(bd, be)
325- else $Tuple2(be, be)
326+ then $Tuple2(be, bf)
327+ else $Tuple2(bf, bf)
326328 }
327329 else $Tuple2(0, 0)
328330 }
329331
330332
331-func bj (A,bk,bl) = {
332- let aT = makeString(["%d%d%d%d", toString(u), toString(bk), toString(v), toString(bl)], b)
333- StringEntry(B(A), aT)
333+func bk (B,bl,bm) = {
334+ let aU = makeString(["%d%d%d%d", toString(u), toString(bl), toString(v), toString(bm)], b)
335+ StringEntry(C(B), aU)
334336 }
335337
336338
337-func bm (A) = {
338- let bn = getString(this, B(A))
339- let P = bn
340- if ($isInstanceOf(P, "String"))
339+func bn (B) = {
340+ let bo = getString(this, C(B))
341+ let Q = bo
342+ if ($isInstanceOf(Q, "String"))
341343 then {
342- let aW = P
343- let aX = split(aW, b)
344- let bo = parseIntValue(aX[1])
345- let bk = parseIntValue(aX[2])
346- let bp = parseIntValue(aX[3])
347- let bl = parseIntValue(aX[4])
348- if (if ((bp > height))
344+ let aX = Q
345+ let aY = split(aX, b)
346+ let bp = parseIntValue(aY[1])
347+ let bl = parseIntValue(aY[2])
348+ let bq = parseIntValue(aY[3])
349+ let bm = parseIntValue(aY[4])
350+ if (if ((bq > height))
349351 then true
350352 else (t == 0))
351- then $Tuple2(bk, bl)
352- else $Tuple2((bk + bl), 0)
353+ then $Tuple2(bl, bm)
354+ else $Tuple2((bl + bm), 0)
353355 }
354356 else $Tuple2(0, 0)
355357 }
356358
357359
358-func bq (A,br) = IntegerEntry(C(A), br)
360+func br (B,bs) = IntegerEntry(D(B), bs)
359361
360362
361-func bs (A) = valueOrElse(getInteger(this, C(A)), 0)
363+func bt (B) = valueOrElse(getInteger(this, D(B)), 0)
362364
363365
364-func bt (A) = {
365- let bu = D(A)
366- let bv = valueOrElse(getInteger(this, bu), w)
367- let bw = valueOrElse(getInteger(this, l), 0)
368- let bx = min([(w + e), height])
369- let by = (bx - bv)
370- let bz = bs(A)
371- let bA = fraction((bw * by), bz, d)
372- let bB = fraction(bz, by, e)
373- $Tuple3(bA, bB, bv)
366+func bu (B) = {
367+ let bv = E(B)
368+ let bw = valueOrElse(getInteger(this, bv), w)
369+ let bx = valueOrElse(getInteger(this, k), 0)
370+ let by = min([(w + x), height])
371+ let bz = (by - bw)
372+ let bA = bt(B)
373+ let bB = fraction((bx * bz), bA, d)
374+ let bC = fraction(bA, bz, x)
375+ $Tuple3(bB, bC, bw)
374376 }
375377
376378
377-func bC (A) = {
378- let bD = E(A)
379- let bE = valueOrElse(getInteger(this, bD), 0)
380- let bF = G(A)
381- let bB = valueOrElse(getInteger(this, bF), 0)
382- let bG = bt(A)
383- let bA = bG._1
384- let bH = bG._2
385- let bv = bG._3
386- if ((0 >= bA))
379+func bD (B) = {
380+ let bE = F(B)
381+ let bF = valueOrElse(getInteger(this, bE), 0)
382+ let bG = H(B)
383+ let bC = valueOrElse(getInteger(this, bG), 0)
384+ let bH = bu(B)
385+ let bB = bH._1
386+ let bI = bH._2
387+ let bw = bH._3
388+ if ((0 >= bB))
387389 then nil
388- else [IntegerEntry(D(A), bv), IntegerEntry(bF, (bB + bH)), IntegerEntry(bD, (bE + bA))]
390+ else [IntegerEntry(E(B), bw), IntegerEntry(bG, (bC + bI)), IntegerEntry(bE, (bF + bB))]
389391 }
390392
391393
392-func bI (y,A,bJ) = {
393- let bK = aU(y)
394- let aZ = bK._1
395- let bb = bK._2
396- let bL = bf(y, A)
397- let bd = bL._1
398- let be = bL._2
399- let bM = [if (!(V))
394+func bJ (z,B,bK) = {
395+ let bL = aV(z)
396+ let ba = bL._1
397+ let bc = bL._2
398+ let bM = bg(z, B)
399+ let be = bM._1
400+ let bf = bM._2
401+ let bN = [if (!(W))
400402 then true
401- else f("contract is temporary stopped"), if (!(W))
403+ else e("contract is temporary stopped"), if (!(X))
402404 then true
403- else f("unstake is temporary disabled"), if ((bJ > 0))
405+ else e("unstake is temporary disabled"), if ((bK > 0))
404406 then true
405- else f("unstake amount should be greater than 0"), if ((be >= bJ))
407+ else e("unstake amount should be greater than 0"), if ((bf >= bK))
406408 then true
407- else f("unstake amount should be less or equal user staked amount"), if ((bb >= bJ))
409+ else e("unstake amount should be less or equal user staked amount"), if ((bc >= bK))
408410 then true
409- else f("unstake amount should be less or equal node staked amount"), if (X(y))
411+ else e("unstake amount should be less or equal node staked amount"), if (Y(z))
410412 then true
411- else f(makeString(["node address is not valid:", y], " ")), if (X(A))
413+ else e(makeString(["node address is not valid:", z], " ")), if (Y(B))
412414 then true
413- else f(makeString(["user address is not valid:", A], " "))]
414- if ((bM == bM))
415+ else e(makeString(["user address is not valid:", B], " "))]
416+ if ((bN == bN))
415417 then {
416- let bN = (bb - bJ)
417- let bO = (be - bJ)
418- let bP = bm(A)
419- let bk = bP._1
420- let bl = bP._2
421- let bQ = (bl + bJ)
422- let br = bs(A)
423- let bR = (br - bJ)
424- let bS = bC(A)
425- ([aQ(y, aZ, bN), bc(y, A, bd, bO), bj(A, bk, bQ), bq(A, bR), IntegerEntry(I(y), bN), IntegerEntry(K(y, A), bO)] ++ bS)
418+ let bO = (bc - bK)
419+ let bP = (bf - bK)
420+ let bQ = bn(B)
421+ let bl = bQ._1
422+ let bm = bQ._2
423+ let bR = (bm + bK)
424+ let bs = bt(B)
425+ let bS = (bs - bK)
426+ let bT = bD(B)
427+ ([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)
426428 }
427429 else throw("Strict value is not equal to itself.")
428430 }
429431
430432
431-func bT (A,bU) = {
432- let bV = bm(A)
433- let bk = bV._1
434- let bl = bV._2
435- let bM = [if (!(V))
433+func bU (B,bV) = {
434+ let bW = bn(B)
435+ let bl = bW._1
436+ let bm = bW._2
437+ let bN = [if (!(W))
436438 then true
437- else f("contract is temporary stopped"), if (!(W))
439+ else e("contract is temporary stopped"), if (!(X))
438440 then true
439- else f("claim is temporary disabled"), if ((bU > 0))
441+ else e("claim is temporary disabled"), if ((bV > 0))
440442 then true
441- else f("claim amount should be greater than 0"), if ((bk >= bU))
443+ else e("claim amount should be greater than 0"), if ((bl >= bV))
442444 then true
443- else f("claim amount should be less or equal unlocked amount"), if (X(A))
445+ else e("claim amount should be less or equal unlocked amount"), if (Y(B))
444446 then true
445- else f(makeString(["user address is not valid:", A], " "))]
446- if ((bM == bM))
447+ else e(makeString(["user address is not valid:", B], " "))]
448+ if ((bN == bN))
447449 then {
448- let bW = (bk - bU)
449-[bj(A, bW, bl), ScriptTransfer(addressFromStringValue(A), bU, T)]
450+ let bX = (bl - bV)
451+[bk(B, bX, bm), ScriptTransfer(addressFromStringValue(B), bV, U)]
450452 }
451453 else throw("Strict value is not equal to itself.")
452454 }
453455
454456
455-func bX (A,bY) = {
456- let bZ = bm(A)
457- let bk = bZ._1
458- let bl = bZ._2
459- let bM = [if (!(V))
457+func bY (B,bZ) = {
458+ let ca = bn(B)
459+ let bl = ca._1
460+ let bm = ca._2
461+ let bN = [if (!(W))
460462 then true
461- else f("contract is temporary stopped"), if ((1 >= size(bY.payments)))
463+ else e("contract is temporary stopped"), if ((1 >= size(bZ.payments)))
462464 then true
463- else f("maximum 1 payment"), if (if ((size(bY.payments) == 0))
465+ else e("maximum 1 payment"), if (if ((size(bZ.payments) == 0))
464466 then true
465- else (bY.payments[0].assetId == T))
467+ else (bZ.payments[0].assetId == U))
466468 then true
467- else f(makeString(["payment assetId should be:", R], " ")), if (X(A))
469+ else e(makeString(["payment assetId should be:", S], " ")), if (Y(B))
468470 then true
469- else f(makeString(["user address is not valid:", A], " "))]
470- if ((bM == bM))
471+ else e(makeString(["user address is not valid:", B], " "))]
472+ if ((bN == bN))
471473 then {
472- let bW = (bk + bY.payments[0].amount)
473-[bj(A, bW, bl)]
474+ let bX = (bl + bZ.payments[0].amount)
475+[bk(B, bX, bm)]
474476 }
475477 else throw("Strict value is not equal to itself.")
476478 }
477479
478480
479-func ca (y,A,cb,bY) = {
480- let cc = bm(A)
481- let bk = cc._1
482- let bl = cc._2
483- let cd = if ((size(bY.payments) == 0))
481+func cb (z,B,cc,bZ) = {
482+ let cd = bn(B)
483+ let bl = cd._1
484+ let bm = cd._2
485+ let ce = if ((size(bZ.payments) == 0))
484486 then 0
485- else bY.payments[0].amount
486- let ce = ((bl + bk) + cd)
487- let bM = [if (!(V))
487+ else bZ.payments[0].amount
488+ let cf = ((bm + bl) + ce)
489+ let bN = [if (!(W))
488490 then true
489- else f("contract is temporary stopped"), if ((1 >= size(bY.payments)))
491+ else e("contract is temporary stopped"), if ((1 >= size(bZ.payments)))
490492 then true
491- else f("maximum 1 payment"), if (if ((size(bY.payments) == 0))
493+ else e("maximum 1 payment"), if (if ((size(bZ.payments) == 0))
492494 then true
493- else (bY.payments[0].assetId == T))
495+ else (bZ.payments[0].assetId == U))
494496 then true
495- else f(makeString(["payment assetId should be:", R], " ")), if ((cb > 0))
497+ else e(makeString(["payment assetId should be:", S], " ")), if ((cc > 0))
496498 then true
497- else f("amount should be greater than 0"), if ((ce >= cb))
499+ else e("amount should be greater than 0"), if ((cf >= cc))
498500 then true
499- else f("amount should be less or equal (payment + available) amount"), if ((cb >= cd))
501+ else e("amount should be less or equal (payment + available) amount"), if ((cc >= ce))
500502 then true
501- else throw("amount should be greater or equal payment amount"), if (X(y))
503+ else throw("amount should be greater or equal payment amount"), if (Y(z))
502504 then true
503- else f(makeString(["node address is not valid:", y], " ")), if (X(A))
505+ else e(makeString(["node address is not valid:", z], " ")), if (Y(B))
504506 then true
505- else f(makeString(["user address is not valid:", A], " "))]
506- if ((bM == bM))
507+ else e(makeString(["user address is not valid:", B], " "))]
508+ if ((bN == bN))
507509 then {
508- let cf = aU(y)
509- let aZ = cf._1
510- let bb = cf._2
511- let bN = (bb + cb)
512- let cg = bf(y, A)
513- let bd = cg._1
514- let be = cg._2
515- let bO = (be + cb)
516- let ch = (cb - cd)
517- let bQ = max([0, (bl - ch)])
518- let bW = min([bk, (bk + (bl - ch))])
519- let br = bs(A)
520- let bR = (br + cb)
521- let bS = bC(A)
522- ([aQ(y, aZ, bN), bc(y, A, bd, bO), bj(A, bW, bQ), bq(A, bR), IntegerEntry(I(y), bN), IntegerEntry(K(y, A), bO)] ++ bS)
510+ let cg = aV(z)
511+ let ba = cg._1
512+ let bc = cg._2
513+ let bO = (bc + cc)
514+ let ch = bg(z, B)
515+ let be = ch._1
516+ let bf = ch._2
517+ let bP = (bf + cc)
518+ let ci = (cc - ce)
519+ let bR = max([0, (bm - ci)])
520+ let bX = min([bl, (bl + (bm - ci))])
521+ let bs = bt(B)
522+ let bS = (bs + cc)
523+ let bT = bD(B)
524+ ([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)
523525 }
524526 else throw("Strict value is not equal to itself.")
525527 }
526528
527529
528-func ci (y,A,bY) = {
529- let bM = [if ((size(bY.payments) == 1))
530+func cj (z,B,bZ) = {
531+ let bN = [if ((size(bZ.payments) == 1))
530532 then true
531- else f("payment size should be exactly 1")]
532- if ((bM == bM))
533- then ca(y, A, bY.payments[0].amount, bY)
533+ else e("payment size should be exactly 1")]
534+ if ((bN == bN))
535+ then cb(z, B, bZ.payments[0].amount, bZ)
534536 else throw("Strict value is not equal to itself.")
535537 }
536538
537539
538-func cj (ck) = {
539- let cl = [if ((ck > 0))
540+func ck (cl) = {
541+ let cm = [if ((cl > 0))
540542 then true
541- else f("period length should be greater than 0")]
542- if ((cl == cl))
543+ else e("period length should be greater than 0")]
544+ if ((cm == cm))
543545 then if ((s == -1))
544- then [IntegerEntry(o, ck), IntegerEntry(n, height)]
545- else [IntegerEntry(m, (t + 1)), IntegerEntry(n, v), IntegerEntry(o, ck)]
546+ then [IntegerEntry(n, cl), IntegerEntry(m, height)]
547+ else [IntegerEntry(l, (t + 1)), IntegerEntry(m, v), IntegerEntry(n, cl)]
546548 else throw("Strict value is not equal to itself.")
547549 }
548550
549551
550-func cm (A) = {
551- let cn = bt(A)
552- let co = cn._1
553- let bH = cn._2
554- let bv = cn._3
555- let cp = valueOrElse(getInteger(this, E(A)), 0)
556- let cq = (co + cp)
557- let cr = valueOrElse(getInteger(this, G(A)), 0)
558- let bB = (cr + bH)
559- let cs = valueOrElse(getInteger(this, F(A)), 0)
560- let ct = valueOrElse(getInteger(this, H(A)), 0)
561- $Tuple5(cq, cs, bB, ct, bv)
552+func cn (B) = {
553+ let co = bu(B)
554+ let cp = co._1
555+ let bI = co._2
556+ let bw = co._3
557+ let cq = valueOrElse(getInteger(this, F(B)), 0)
558+ let cr = (cp + cq)
559+ let cs = valueOrElse(getInteger(this, H(B)), 0)
560+ let bC = (cs + bI)
561+ let ct = valueOrElse(getInteger(this, G(B)), 0)
562+ let cu = valueOrElse(getInteger(this, I(B)), 0)
563+ $Tuple5(cr, ct, bC, cu, bw)
562564 }
563565
564566
565-func cu (A) = {
566- let cv = cm(A)
567- let cq = cv._1
568- let cs = cv._2
569- let bB = cv._3
570- let ct = cv._4
571- let bv = cv._5
572- let cl = [if ((0 >= cq))
567+func cv (B) = {
568+ let cw = cn(B)
569+ let cr = cw._1
570+ let ct = cw._2
571+ let bC = cw._3
572+ let cu = cw._4
573+ let bw = cw._5
574+ let cm = [if ((0 >= cr))
573575 then true
574- else f("nothing to claim")]
575- if ((cl == cl))
576+ else e("nothing to claim")]
577+ if ((cm == cm))
576578 then {
577- let cw = {
578- let P = T
579- if ($isInstanceOf(P, "ByteVector"))
579+ let cx = {
580+ let Q = U
581+ if ($isInstanceOf(Q, "ByteVector"))
580582 then {
581- let cx = P
582-[Burn(cx, bB)]
583+ let cy = Q
584+[Burn(cy, bC)]
583585 }
584586 else nil
585587 }
586- ([IntegerEntry(D(A), bv), IntegerEntry(F(A), (cs + cq)), IntegerEntry(H(A), (ct + bB)), IntegerEntry(E(A), 0), IntegerEntry(G(A), 0), ScriptTransfer(addressFromStringValue(A), cq, U)] ++ cw)
588+ ([IntegerEntry(E(B), bw), IntegerEntry(G(B), (ct + cr)), IntegerEntry(I(B), (cu + bC)), IntegerEntry(F(B), 0), IntegerEntry(H(B), 0), ScriptTransfer(addressFromStringValue(B), cr, V)] ++ cx)
587589 }
588590 else throw("Strict value is not equal to itself.")
589591 }
590592
591593
592-@Callable(bY)
593-func setNewPeriodLength (ck) = {
594- let bM = [if (ao(toString(bY.caller)))
594+@Callable(bZ)
595+func setNewPeriodLength (cl) = {
596+ let bN = [if (ap(toString(bZ.caller)))
595597 then true
596- else f("caller is not in adminList")]
597- if ((bM == bM))
598- then cj(ck)
598+ else e("caller is not in adminList")]
599+ if ((bN == bN))
600+ then ck(cl)
599601 else throw("Strict value is not equal to itself.")
600602 }
601603
602604
603605
604-@Callable(bY)
606+@Callable(bZ)
605607 func claimUnits () = {
606- let A = toString(bY.caller)
607- cu(A)
608+ let B = toString(bZ.caller)
609+ cv(B)
608610 }
609611
610612
611613
612-@Callable(bY)
613-func setForceStopFlag (cy) = {
614- let cl = [if (ao(toString(bY.caller)))
614+@Callable(bZ)
615+func setForceStopFlag (cz) = {
616+ let cm = [if (ap(toString(bZ.caller)))
615617 then true
616- else f("caller is not in adminList")]
617- if ((cl == cl))
618- then [BooleanEntry(i, cy)]
618+ else e("caller is not in adminList")]
619+ if ((cm == cm))
620+ then [BooleanEntry(h, cz)]
619621 else throw("Strict value is not equal to itself.")
620622 }
621623
622624
623625
624-@Callable(bY)
625-func setForceOutStopFlag (cy) = {
626- let cl = [if (ao(toString(bY.caller)))
626+@Callable(bZ)
627+func setForceOutStopFlag (cz) = {
628+ let cm = [if (ap(toString(bZ.caller)))
627629 then true
628- else f("caller is not in adminList")]
629- if ((cl == cl))
630- then [BooleanEntry(j, cy)]
630+ else e("caller is not in adminList")]
631+ if ((cm == cm))
632+ then [BooleanEntry(i, cz)]
631633 else throw("Strict value is not equal to itself.")
632634 }
633635
634636
635637
636-@Callable(bY)
637-func getNodeDataREADONLY (y) = {
638- let cz = aU(y)
639- let cA = cz._1
640- let aS = cz._2
641- $Tuple2(nil, $Tuple5(u, cA, v, aS, height))
638+@Callable(bZ)
639+func getNodeDataREADONLY (z) = {
640+ let cA = aV(z)
641+ let cB = cA._1
642+ let aT = cA._2
643+ $Tuple2(nil, $Tuple5(u, cB, v, aT, height))
642644 }
643645
644646
645647
646-@Callable(bY)
647-func getUserLeasingDataREADONLY (y,A) = {
648- let cB = bf(y, A)
649- let cA = cB._1
650- let aS = cB._2
651- $Tuple2(nil, $Tuple5(u, cA, v, aS, height))
648+@Callable(bZ)
649+func getUserLeasingDataREADONLY (z,B) = {
650+ let cC = bg(z, B)
651+ let cB = cC._1
652+ let aT = cC._2
653+ $Tuple2(nil, $Tuple5(u, cB, v, aT, height))
652654 }
653655
654656
655657
656-@Callable(bY)
657-func getUserDataREADONLY (A) = {
658- let cC = bm(A)
659- let bk = cC._1
660- let bl = cC._2
661- let br = bs(A)
662- let cD = cm(A)
663- let cq = cD._1
664- let cs = cD._2
665- let bB = cD._3
666- let ct = cD._4
667- let bv = cD._5
668- $Tuple2(nil, $Tuple11(u, bk, v, bl, br, height, cq, cs, bB, ct, bv))
658+@Callable(bZ)
659+func getUserDataREADONLY (B) = {
660+ let cD = bn(B)
661+ let bl = cD._1
662+ let bm = cD._2
663+ let bs = bt(B)
664+ let cE = cn(B)
665+ let cr = cE._1
666+ let ct = cE._2
667+ let bC = cE._3
668+ let cu = cE._4
669+ let bw = cE._5
670+ $Tuple2(nil, $Tuple11(u, bl, v, bm, bs, height, cr, ct, bC, cu, bw))
669671 }
670672
671673
672674
673-@Callable(bY)
674-func leaseByAddress (y,A) = ci(y, A, bY)
675+@Callable(bZ)
676+func leaseByAddress (z,B) = cj(z, B, bZ)
675677
676678
677679
678-@Callable(bY)
679-func lease (y) = {
680- let A = toString(bY.caller)
681- ci(y, A, bY)
680+@Callable(bZ)
681+func lease (z) = {
682+ let B = toString(bZ.caller)
683+ cj(z, B, bZ)
682684 }
683685
684686
685687
686-@Callable(bY)
687-func leaseFromLocked (y,cE) = {
688- let A = toString(bY.caller)
689- ca(y, A, cE, bY)
688+@Callable(bZ)
689+func leaseFromLocked (z,cF) = {
690+ let B = toString(bZ.caller)
691+ cb(z, B, cF, bZ)
690692 }
691693
692694
693695
694-@Callable(bY)
695-func cancelLease (y,cE) = {
696- let A = toString(bY.caller)
697- bI(y, A, cE)
696+@Callable(bZ)
697+func cancelLease (z,cF) = {
698+ let B = toString(bZ.caller)
699+ bJ(z, B, cF)
698700 }
699701
700702
701703
702-@Callable(bY)
703-func claim (cE) = {
704- let A = toString(bY.caller)
705- bT(A, cE)
704+@Callable(bZ)
705+func claim (cF) = {
706+ let B = toString(bZ.caller)
707+ bU(B, cF)
706708 }
707709
708710
709711
710-@Callable(bY)
712+@Callable(bZ)
711713 func claimAll () = {
712- let A = toString(bY.caller)
713- let cF = bm(A)
714- let bk = cF._1
715- let bl = cF._2
716- let bM = [if ((bk > 0))
714+ let B = toString(bZ.caller)
715+ let cG = bn(B)
716+ let bl = cG._1
717+ let bm = cG._2
718+ let bN = [if ((bl > 0))
717719 then true
718- else f("nothing to claim")]
719- if ((bM == bM))
720- then bT(A, bk)
720+ else e("nothing to claim")]
721+ if ((bN == bN))
722+ then bU(B, bl)
721723 else throw("Strict value is not equal to itself.")
722724 }
723725
724726
725727
726-@Callable(bY)
727-func stakeFor (A) = bX(A, bY)
728+@Callable(bZ)
729+func stakeFor (B) = bY(B, bZ)
728730
729731
730732
731-@Callable(bY)
732-func startUnitsVesting () = {
733- let cG = 100000000000000000
734- let cH = bY.payments[0].amount
735- let bw = (fraction(cG, d, cH) / e)
736- let cl = [if (ao(toString(bY.caller)))
733+@Callable(bZ)
734+func startUnitsVesting (x) = {
735+ let cH = 100000000000000000
736+ let cI = bZ.payments[0].amount
737+ let bx = (fraction(cH, d, cI) / x)
738+ let cm = [if (ap(toString(bZ.caller)))
737739 then true
738- else f("caller is not in adminList"), if ((size(bY.payments) == 1))
740+ else e("caller is not in adminList"), if ((size(bZ.payments) == 1))
739741 then true
740- else f("should be 1 payment"), if ((bw > 0))
742+ else e("should be 1 payment"), if ((bx > 0))
741743 then true
742- else f("units per block should be greated than 0")]
743- if ((cl == cl))
744- then [IntegerEntry(l, bw), IntegerEntry(p, height), StringEntry(k, N(bY.payments[0].assetId))]
744+ else e("units per block should be greated than 0")]
745+ if ((cm == cm))
746+ then [IntegerEntry(k, bx), IntegerEntry(o, height), IntegerEntry(p, x), StringEntry(j, O(bZ.payments[0].assetId))]
745747 else throw("Strict value is not equal to itself.")
746748 }
747749
748750
749751
750-@Callable(bY)
751-func voteForTxId (ad) = {
752- let aK = toBase58String(bY.caller.bytes)
753- let at = ac(ad)
754- let ar = [StringEntry(ai(), ad)]
755- let cI = getString(this, ai())
756- let aO = [if ((size(fromBase58String(ad)) == ab))
752+@Callable(bZ)
753+func voteForTxId (ae) = {
754+ let aL = toBase58String(bZ.caller.bytes)
755+ let au = ad(ae)
756+ let as = [StringEntry(aj(), ae)]
757+ let cJ = getString(this, aj())
758+ let aP = [if ((size(fromBase58String(ae)) == ac))
757759 then true
758- else f((ad + " is not valid txId")), if (if ((cI == unit))
760+ else e((ae + " is not valid txId")), if (if ((cJ == unit))
759761 then true
760- else (value(cI) != ad))
762+ else (value(cJ) != ae))
761763 then true
762- else f((ad + " is already allowed"))]
763- if ((aO == aO))
764- then aJ(aK, at, aa, ar)
764+ else e((ae + " is already allowed"))]
765+ if ((aP == aP))
766+ then aK(aL, au, ab, as)
765767 else throw("Strict value is not equal to itself.")
766768 }
767769
768770
769-@Verifier(cJ)
770-func cK () = {
771- let cL = (cJ.id == fromBase58String(valueOrElse(getString(this, ai()), "")))
772- let cM = if ((size(am()) >= aa))
771+@Verifier(cK)
772+func cL () = {
773+ let cM = (cK.id == fromBase58String(valueOrElse(getString(this, aj()), "")))
774+ let cN = if ((size(an()) >= ab))
773775 then false
774- else sigVerify(cJ.bodyBytes, cJ.proofs[0], cJ.senderPublicKey)
775- if (cL)
776+ else sigVerify(cK.bodyBytes, cK.proofs[0], cK.senderPublicKey)
777+ if (cM)
776778 then true
777- else cM
779+ else cN
778780 }
779781

github/deemru/w8io/169f3d6 
285.18 ms