tx · AKXBhjmzRKQcF5pPvNhnS5MyUnxSQ5LkFkuLCkfmahgA

3PHvU5KXYJUAReeActQpS56TCdF8gupEjdR:  -0.01900000 Waves

2022.07.05 18:03 [3192111] smart account 3PHvU5KXYJUAReeActQpS56TCdF8gupEjdR > SELF 0.00000000 Waves

{ "type": 13, "id": "AKXBhjmzRKQcF5pPvNhnS5MyUnxSQ5LkFkuLCkfmahgA", "fee": 1900000, "feeAssetId": null, "timestamp": 1657033278214, "version": 1, "sender": "3PHvU5KXYJUAReeActQpS56TCdF8gupEjdR", "senderPublicKey": "EGGmHBK3xqTV6B19vtf2EhLscX4pB3tBXFKRDH5wdTcz", "proofs": [ "4BVLKCB7fqTM1zveoWRECb8pLda85uwRJAv2u1wusQazMoBX2F1eSASh67XpCwnFz2ZAQGvpQoZZxWmH9sB7SRPf" ], "script": "base64:BgIvCAISABIAEgASBAoCCAgSABIECgIIARIDCgEIEgUKAwgIBBIECgIIBBIAEgMKAQhFAQVhc0ludAEFdmFsdWUEByRtYXRjaDAFBXZhbHVlAwkAAQIFByRtYXRjaDACA0ludAQDaW50BQckbWF0Y2gwBQNpbnQJAAIBAhl3cm9uZyB0eXBlLCBleHBlY3RlZDogSW50AQthc0ludFN0ckludAEFdmFsdWUEByRtYXRjaDAFBXZhbHVlAwkAAQIFByRtYXRjaDACEihJbnQsIFN0cmluZywgSW50KQQJaW50U3RySW50BQckbWF0Y2gwBQlpbnRTdHJJbnQDCQABAgUHJG1hdGNoMAINKEludCwgU3RyaW5nKQQGaW50U3RyBQckbWF0Y2gwCQCVCgMIBQZpbnRTdHICXzEIBQZpbnRTdHICXzIAAAkAAgECI3dyb25nIHR5cGUsIGV4cGVjdGVkOiAoSW50LCBTdHJpbmcpAQtmYWN0b3JDaGVjawEGZmFjdG9yAwMDCQECIT0CBQZmYWN0b3IAAQkBAiE9AgUGZmFjdG9yAAIHCQECIT0CBQZmYWN0b3IABAcJAAIBAgpiYWQgZmFjdG9yBQZmYWN0b3IAEXZpcmVzQXNzZXRJZFN0b3JlAgx2aXJlc0Fzc2V0SWQAEmluaXRpYWxIZWlnaHRTdG9yZQINaW5pdGlhbEhlaWdodAANaW5pdGlhbEhlaWdodAkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwUSaW5pdGlhbEhlaWdodFN0b3JlAAtjb25maWdTdG9yZQIGY29uZmlnAA1jb25maWdBZGRyZXNzCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFC2NvbmZpZ1N0b3JlAh9leHAtZGl2aWRlbmRzOiBubyBjb25maWdBZGRyZXNzAhZpbnZhbGlkIGNvbmZpZyBhZGRyZXNzABJtYXliZU9yYWNsZUFkZHJlc3MEByRtYXRjaDAJAJ0IAgUNY29uZmlnQWRkcmVzcwIOb3JhY2xlX2FkZHJlc3MDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQCmCAEFAXMFBHVuaXQABkhFSUdIVAUGaGVpZ2h0AAp2aXJlc0lkU3RyCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwURdmlyZXNBc3NldElkU3RvcmUCF3ZpcmVzIGFzc2V0SWQgbm90IGZvdW5kAAx2aXJlc0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA2QQBBQp2aXJlc0lkU3RyAhVpbnZhbGlkIHZpcmVzIGFzc2V0SWQBB2Fzc2V0SWQBAXMDCQAAAgUBcwIFV0FWRVMFBHVuaXQJANkEAQUBcwEKYXNzZXRJZFN0cgEDYWlkBAckbWF0Y2gwBQNhaWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCYnYFByRtYXRjaDAJANgEAQUCYnYDCQABAgUHJG1hdGNoMAIEVW5pdAQBdQUHJG1hdGNoMAIFV0FWRVMJAAIBAgtNYXRjaCBlcnJvcgEHdGhyb3dJZgIJY29uZGl0aW9uBWVycm9yAwUJY29uZGl0aW9uCQACAQUFZXJyb3IGAQh3cml0ZUludAIDa2V5BXZhbHVlAwkAZgIAAAUFdmFsdWUJAAIBCQCsAgIJAKwCAgkArAICAhd3cml0aW5nIG5lZ2F0aXZlIHZhbHVlIAkApAMBBQV2YWx1ZQIJIGZvciBrZXkgBQNrZXkJAQxJbnRlZ2VyRW50cnkCBQNrZXkFBXZhbHVlAQt3cml0ZVN0ckludAIDa2V5BXZhbHVlAwkAZgIAAAUFdmFsdWUJAAIBCQCsAgIJAKwCAgkArAICAhd3cml0aW5nIG5lZ2F0aXZlIHZhbHVlIAkApAMBBQV2YWx1ZQIJIGZvciBrZXkgBQNrZXkJAQtTdHJpbmdFbnRyeQIFA2tleQkApAMBBQV2YWx1ZQELd3JpdGVTdHJpbmcCA2tleQV2YWx1ZQkBC1N0cmluZ0VudHJ5AgUDa2V5BQV2YWx1ZQEQd3JpdGVDb25zdFN0cmluZwIDa2V5BXZhbHVlAwkBASEBCQEJaXNEZWZpbmVkAQkAnQgCBQR0aGlzBQNrZXkJAQtTdHJpbmdFbnRyeQIFA2tleQUFdmFsdWUJAAIBCQCsAgICFWFscmVhZHkgaW5pdGlhbGl6ZWQ6IAUDa2V5AQhjaGFuZ2VCeQIDa2V5BXZhbHVlCQEId3JpdGVJbnQCBQNrZXkJAGQCCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFA2tleQAABQV2YWx1ZQELY2hhbmdlQnlTdHICA2tleQV2YWx1ZQkBC3dyaXRlU3RySW50AgUDa2V5CQBkAgkBDXBhcnNlSW50VmFsdWUBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFA2tleQIBMAUFdmFsdWUBDHZpcmVzUGF5bWVudAEBaQMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAAAAAMJAQIhPQIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUMdmlyZXNBc3NldElkCQACAQIJbm90IHZpcmVzCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAEJb3BBbGxvd2VkAQJvcAQHJG1hdGNoMAkA/AcEBQ1jb25maWdBZGRyZXNzAglvcEFsbG93ZWQJAMwIAgUKdmlyZXNJZFN0cgkAzAgCBQJvcAUDbmlsBQNuaWwDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQBYgUHJG1hdGNoMAMFAWIGCQACAQILbm90IGFsbG93ZWQJAAIBAiFvcEFsbG93ZWQ6IHVuZXhwZWN0ZWQgcmVzdWx0IHR5cGUAC3ZpcmVzU3Rha2VyCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFDWNvbmZpZ0FkZHJlc3MCDHZpcmVzX3N0YWtlcgIZbm8gdmlyZXNfc3Rha2VyIGluIGNvbmZpZwIcaW52YWxpZCB2aXJlc19zdGFrZXIgYWRkcmVzcwAEbWFpbgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgkAtQkCCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUNY29uZmlnQWRkcmVzcwIEbWFpbgIHbm8gbWFpbgIBfAAAAgxpbnZhbGlkIG1haW4BCG1haW5Pbmx5AQFpAwkBCGNvbnRhaW5zAgkBEUBleHRyTmF0aXZlKDEwNTMpAgUNY29uZmlnQWRkcmVzcwIEbWFpbgkApQgBCAUBaQZjYWxsZXIGCQACAQIQb25seSBtYWluIGNhbiBkbwASZGl2aWRlbmRhYmxlVG9rZW5zCQELdmFsdWVPckVsc2UCCQCdCAIFDWNvbmZpZ0FkZHJlc3MCEmRpdmlkZW5kYWJsZVRva2VucwIAABVkaXZpZGVuZGFibGVUb2tlbnNBcnIDCQAAAgUSZGl2aWRlbmRhYmxlVG9rZW5zAgAFA25pbAkAvAkCBRJkaXZpZGVuZGFibGVUb2tlbnMCAXwAF2RpdmlkZW5kYWJsZVJlc2VydmVzU3RyCQELdmFsdWVPckVsc2UCCQCdCAIFDWNvbmZpZ0FkZHJlc3MCFGRpdmlkZW5kYWJsZVJlc2VydmVzAgAAFGRpdmlkZW5kYWJsZVJlc2VydmVzBAckbWF0Y2gwBRdkaXZpZGVuZGFibGVSZXNlcnZlc1N0cgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEA3N0cgUHJG1hdGNoMAMJAAACBQNzdHICAAUDbmlsCQC8CQIFA3N0cgIBfAUDbmlsAAhoYWxmTGlmZQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFDWNvbmZpZ0FkZHJlc3MCFHZpcmVzX2xvY2tfaGFsZl9saWZlAhFoYWxmIGxpZmUgbm90IHNldAAGbGFtYmRhCQBpAgDo0uqbggIFCGhhbGZMaWZlAApMQU1CREFCQVNFAAgAAUUA14nPgQEABUVCQVNFAAgBB2Zvcm11bGECAXgCeTAJAGsDBQJ5MAkAbAYFAUUFBUVCQVNFCQBrAwUGbGFtYmRhBQF4AOgHBQpMQU1CREFCQVNFAAgFBkhBTEZVUACAwtcvARV1c2VyRGl2aWRlbmRzQWRqU3RvcmUCBHVzZXIDYWlkCQCsAgIJAKwCAgkArAICBQR1c2VyAgFfBQNhaWQCBF9hZGoBGXVzZXJEaXZpZGVuZHNDbGFpbWVkU3RvcmUCBHVzZXIDYWlkCQCsAgIJAKwCAgkArAICBQR1c2VyAgFfBQNhaWQCCF9jbGFpbWVkARZ1c2VyVmlydHVhbFRva2Vuc1N0b3JlAQR1c2VyCQCsAgIFBHVzZXICCF92aXJ0dWFsARh1c2VyRGVwb3NpdGVkVG9rZW5zU3RvcmUBBHVzZXIJAKwCAgUEdXNlcgIGX3ZpcmVzARh1c2VyV2l0aGRyYXduVG9rZW5zU3RvcmUBBHVzZXIJAKwCAgUEdXNlcgIQX3ZpcmVzX3dpdGhkcmF3bgEUdXNlckVudHJ5SGVpZ2h0U3RvcmUBBHVzZXIJAKwCAgUEdXNlcgIHX2hlaWdodAEPdXNlckZhY3RvclN0b3JlAQR1c2VyCQCsAgIFBHVzZXICB19mYWN0b3IBEHVzZXJEaXZpZGVuZHNBZGoCBHVzZXIDYWlkCQELdmFsdWVPckVsc2UCCQCfCAEJARV1c2VyRGl2aWRlbmRzQWRqU3RvcmUCBQR1c2VyBQNhaWQAAAEUdXNlckRpdmlkZW5kc0NsYWltZWQCBHVzZXIDYWlkCQELdmFsdWVPckVsc2UCCQCfCAEJARl1c2VyRGl2aWRlbmRzQ2xhaW1lZFN0b3JlAgUEdXNlcgUDYWlkAAABEXVzZXJWaXJ0dWFsVG9rZW5zAQR1c2VyCQENcGFyc2VJbnRWYWx1ZQEJAQt2YWx1ZU9yRWxzZQIJAKIIAQkBFnVzZXJWaXJ0dWFsVG9rZW5zU3RvcmUBBQR1c2VyAgEwARN1c2VyRGVwb3NpdGVkVG9rZW5zAQR1c2VyCQELdmFsdWVPckVsc2UCCQCfCAEJARh1c2VyRGVwb3NpdGVkVG9rZW5zU3RvcmUBBQR1c2VyAAABE3VzZXJXaXRoZHJhd25Ub2tlbnMBBHVzZXIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBGHVzZXJXaXRoZHJhd25Ub2tlbnNTdG9yZQEFBHVzZXIAAAEPdXNlckVudHJ5SGVpZ2h0AQR1c2VyCQELdmFsdWVPckVsc2UCCQCfCAEJARR1c2VyRW50cnlIZWlnaHRTdG9yZQEFBHVzZXIAAAEKdXNlckZhY3RvcgEEdXNlcgkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEPdXNlckZhY3RvclN0b3JlAQUEdXNlcgABAQp1c2VyR1ZpcmVzAQR1c2VyCQEHZm9ybXVsYQIJAQEtAQkAZQIFBkhFSUdIVAUNaW5pdGlhbEhlaWdodAkBEXVzZXJWaXJ0dWFsVG9rZW5zAQUEdXNlcgEadG90YWxWaXJ0dWFsRGl2aWRlbmRzU3RvcmUBA2FpZAkArAICBQNhaWQCFl90b3RhbFZpcnR1YWxEaXZpZGVuZHMBF3RvdGFsUmVhbERpdmlkZW5kc1N0b3JlAQNhaWQJAKwCAgUDYWlkAhNfdG90YWxSZWFsRGl2aWRlbmRzAR50b3RhbFJlYWxEaXZpZGVuZHNDbGFpbWVkU3RvcmUBA2FpZAkArAICBQNhaWQCGl90b3RhbFJlYWxEaXZpZGVuZHNDbGFpbWVkABd0b3RhbFZpcnR1YWxUb2tlbnNTdG9yZQISdG90YWxWaXJ0dWFsVG9rZW5zABl0b3RhbERlcG9zaXRlZFRva2Vuc1N0b3JlAhR0b3RhbERlcG9zaXRlZFRva2VucwEbdG90YWxEZXBvc2l0ZWRCeUZhY3RvclN0b3JlAQZmYWN0b3IJAKwCAgIUdG90YWxEZXBvc2l0ZWRUb2tlbnMJAKQDAQkBC2ZhY3RvckNoZWNrAQUGZmFjdG9yARZ0b3RhbERlcG9zaXRlZEJ5RmFjdG9yAQZmYWN0b3IJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBG3RvdGFsRGVwb3NpdGVkQnlGYWN0b3JTdG9yZQEFBmZhY3RvcgAAARV0b3RhbFZpcnR1YWxEaXZpZGVuZHMBA2FpZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEadG90YWxWaXJ0dWFsRGl2aWRlbmRzU3RvcmUBBQNhaWQAAAESdG90YWxSZWFsRGl2aWRlbmRzAQNhaWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBF3RvdGFsUmVhbERpdmlkZW5kc1N0b3JlAQUDYWlkAAAAEnRvdGFsVmlydHVhbFRva2VucwkBDXBhcnNlSW50VmFsdWUBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFF3RvdGFsVmlydHVhbFRva2Vuc1N0b3JlAgEwABR0b3RhbERlcG9zaXRlZFRva2VucwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRl0b3RhbERlcG9zaXRlZFRva2Vuc1N0b3JlAAABDHVzZXJPZmZDbGlmZgEEdXNlcgQLZW50cnlIZWlnaHQJAQ91c2VyRW50cnlIZWlnaHQBBQR1c2VyBAZmYWN0b3IJAQp1c2VyRmFjdG9yAQUEdXNlcgMJAAACBQZmYWN0b3IAAQkAZgIFBkhFSUdIVAkAZAIFC2VudHJ5SGVpZ2h0CQBoAgAEBQhoYWxmTGlmZQMJAAACBQZmYWN0b3IAAgkAZgIFBkhFSUdIVAkAZAIFC2VudHJ5SGVpZ2h0CQBoAgAFBQhoYWxmTGlmZQMJAAACBQZmYWN0b3IABAkAZgIFBkhFSUdIVAkAZAIFC2VudHJ5SGVpZ2h0CQBoAgAGBQhoYWxmTGlmZQkAAgEJAKwCAgILYmFkIGZhY3RvcjoJAKQDAQUGZmFjdG9yAQ11c2VyVmlyZXNEYXRhAQR1c2VyBAlkZXBvc2l0ZWQJARN1c2VyRGVwb3NpdGVkVG9rZW5zAQUEdXNlcgQCZ1YJAQp1c2VyR1ZpcmVzAQUEdXNlcgQOc3VwcG9zZWRMb2NrZWQJAJcDAQkAzAgCBQlkZXBvc2l0ZWQJAMwIAgUCZ1YFA25pbAQGbG9ja2VkAwkBDHVzZXJPZmZDbGlmZgEFBHVzZXIAAAUOc3VwcG9zZWRMb2NrZWQECHVubG9ja2VkCQBlAgUJZGVwb3NpdGVkBQZsb2NrZWQECXdpdGhkcmF3bgkBE3VzZXJXaXRoZHJhd25Ub2tlbnMBBQR1c2VyBAx3aXRoZHJhd2FibGUJAGUCBQh1bmxvY2tlZAUJd2l0aGRyYXduBAppblByb3RvY29sCQBkAgUGbG9ja2VkBQx3aXRoZHJhd2FibGUJAJgKBgUJZGVwb3NpdGVkBQZsb2NrZWQFDHdpdGhkcmF3YWJsZQUJd2l0aGRyYXduBQppblByb3RvY29sBQJnVgEOdXNlclByb2ZpdERhdGEBBHVzZXIEC3RvdGFsVG9rZW5zCQCQAwEFFWRpdmlkZW5kYWJsZVRva2Vuc0FycgQZdG90YWxEaXZpZGVuZGFibGVSZXNlcnZlcwkAkAMBBRRkaXZpZGVuZGFibGVSZXNlcnZlcwMJAQIhPQIFC3RvdGFsVG9rZW5zBRl0b3RhbERpdmlkZW5kYWJsZVJlc2VydmVzCQACAQkArAICCQCsAgIJAKwCAgIoaW5jb25zaXN0ZW50IGNvbmZpZ3VyYXRpb246IHRvdGFsVG9rZW5zPQkApAMBBQt0b3RhbFRva2VucwIeLCB0b3RhbERpdmlkZW5kYWJsZVJlc2VydmVzID0gCQCkAwEFGXRvdGFsRGl2aWRlbmRhYmxlUmVzZXJ2ZXMEDXZpcnR1YWxUb2tlbnMJARF1c2VyVmlydHVhbFRva2VucwEFBHVzZXIECXRva2VuRGF0YQoBBGZvbGQCBnRvdGFscwVpbmRleAMJAGcCBQVpbmRleAULdG90YWxUb2tlbnMFBnRvdGFscwQDYWlkCQCRAwIFFWRpdmlkZW5kYWJsZVRva2Vuc0FycgUFaW5kZXgECyR0MDg0OTc4NzY1BAFyCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBRRkaXZpZGVuZGFibGVSZXNlcnZlcwUFaW5kZXgCI2JhZCByZXNlcnZlIGluIGRpdmlkZW5kYWJsZVJlc2VydmVzCQELYXNJbnRTdHJJbnQBCQD8BwQFAXICEmdldFJlc2VydmVEaXZzSW5mbwUDbmlsBQNuaWwEC3Jlc2VydmVEaXZzCAULJHQwODQ5Nzg3NjUCXzEEDnJlc2VydmVBc3NldElkCAULJHQwODQ5Nzg3NjUCXzIEDG5vbkNsYWltYWJsZQgFCyR0MDg0OTc4NzY1Al8zAwkBAiE9AgUOcmVzZXJ2ZUFzc2V0SWQFA2FpZAkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIraW5jb25zaXN0ZW50IGNvbmZpZ3VyYXRpb246IHJlc2VydmVBc3NldElkPQUOcmVzZXJ2ZUFzc2V0SWQCBiwgYWlkPQUDYWlkAhUsIGRpdmlkZW5kYWJsZVRva2VuczoFEmRpdmlkZW5kYWJsZVRva2VucwIXLCBkaXZpZGVuZGFibGVSZXNlcnZlczoFF2RpdmlkZW5kYWJsZVJlc2VydmVzU3RyBA91c2VyVmlydHVhbERpdnMDCQAAAgUSdG90YWxWaXJ0dWFsVG9rZW5zAAAAAAkAawMJAGQCCQEVdG90YWxWaXJ0dWFsRGl2aWRlbmRzAQUDYWlkBQtyZXNlcnZlRGl2cwUNdmlydHVhbFRva2VucwUSdG90YWxWaXJ0dWFsVG9rZW5zBANhZGoJARB1c2VyRGl2aWRlbmRzQWRqAgUEdXNlcgUDYWlkBAh1c2VyRGl2cwkAZQIFD3VzZXJWaXJ0dWFsRGl2cwUDYWRqBBRub25DbGFpbWFibGVVc2VyRGl2cwMJAAACBRJ0b3RhbFZpcnR1YWxUb2tlbnMAAAAACQBrAwUMbm9uQ2xhaW1hYmxlBQ12aXJ0dWFsVG9rZW5zBRJ0b3RhbFZpcnR1YWxUb2tlbnMEC3VzZXJDbGFpbWVkCQEUdXNlckRpdmlkZW5kc0NsYWltZWQCBQR1c2VyBQNhaWQECWNsYWltYWJsZQkAlgMBCQDMCAIAAAkAzAgCCQBlAgUIdXNlckRpdnMFC3VzZXJDbGFpbWVkBQNuaWwDCQBmAgAABQljbGFpbWFibGUJAAIBCQCsAgICD2NsYWltYWJsZSA8IDA6IAkApAMBBQljbGFpbWFibGUJAM4IAgUGdG90YWxzCQDMCAIJAJYKBAUDYWlkBQt1c2VyQ2xhaW1lZAUJY2xhaW1hYmxlBRRub25DbGFpbWFibGVVc2VyRGl2cwUDbmlsCgACJGwJAMwIAgAACQDMCAIAAQkAzAgCAAIJAMwIAgADCQDMCAIABAkAzAgCAAUJAMwIAgAGCQDMCAIABwkAzAgCAAgJAMwIAgAJCQDMCAIACgkAzAgCAAsJAMwIAgAMCQDMCAIADQkAzAgCAA4JAMwIAgAPCQDMCAIAEAkAzAgCABEJAMwIAgASCQDMCAIAEwUDbmlsCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQRmb2xkAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAyMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQJAJQKAgUNdmlydHVhbFRva2VucwUJdG9rZW5EYXRhARljbGFpbUZyb21SZXNlcnZlc0ludGVybmFsAAQMYXNzZXRJZFN0b3JlAgdhc3NldElkCgEEZm9sZAIGb3V0cHV0B3Jlc2VydmUEDnJlc2VydmVBZGRyZXNzCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQUHcmVzZXJ2ZQIaYWRkZXI6IGJhZCByZXNlcnZlIGFkZHJlc3MEDWFzc2V0SWRTdHJpbmcJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQ5yZXNlcnZlQWRkcmVzcwUMYXNzZXRJZFN0b3JlAhVubyBhc3NldElkIGluIHJlc2VydmUEB2FjdGlvbnMDCQEBIQEJAQhjb250YWlucwIFEmRpdmlkZW5kYWJsZVRva2VucwUNYXNzZXRJZFN0cmluZwkAAgECXmluY29uc2lzdGVudCBjb25maWd1cmF0aW9uOiBkaXZpZGVuZGFibGVSZXNlcnZlJ3MgYXNzZXQgaWQgaXMgbm90IHN0b3JlZCBpbiBkaXZpZGVuZGFibGVUb2tlbnMEBmFtb3VudAkBBWFzSW50AQkA/AcEBQ5yZXNlcnZlQWRkcmVzcwITd2l0aGRyYXdGcm9tUmVzZXJ2ZQkAzAgCAP///////////wEFA25pbAUDbmlsAwkAAAIFBmFtb3VudAUGYW1vdW50AwkAZgIAAAUGYW1vdW50CQACAQIKYmFkIGFtb3VudAMJAAACBQZhbW91bnQAAAUDbmlsCQDMCAIJAQhjaGFuZ2VCeQIJARp0b3RhbFZpcnR1YWxEaXZpZGVuZHNTdG9yZQEFDWFzc2V0SWRTdHJpbmcFBmFtb3VudAkAzAgCCQEIY2hhbmdlQnkCCQEXdG90YWxSZWFsRGl2aWRlbmRzU3RvcmUBBQ1hc3NldElkU3RyaW5nBQZhbW91bnQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAzggCBQZvdXRwdXQFB2FjdGlvbnMKAAIkbAUUZGl2aWRlbmRhYmxlUmVzZXJ2ZXMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBBGZvbGQCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDIwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAEKYWR2aXNlVXNlcgEEdXNlcgQNJHQwMTA5MDYxMDk5NgkBDXVzZXJWaXJlc0RhdGEBBQR1c2VyBAlkZXBvc2l0ZWQIBQ0kdDAxMDkwNjEwOTk2Al8xBAZsb2NrZWQIBQ0kdDAxMDkwNjEwOTk2Al8yBAx3aXRoZHJhd2FibGUIBQ0kdDAxMDkwNjEwOTk2Al8zBAl3aXRoZHJhd24IBQ0kdDAxMDkwNjEwOTk2Al80BAppblByb3RvY29sCAUNJHQwMTA5MDYxMDk5NgJfNQQGZ1ZpcmVzCAUNJHQwMTA5MDYxMDk5NgJfNgQNJHQwMTEwMDMxMTA1NgkBDnVzZXJQcm9maXREYXRhAQUEdXNlcgQNdmlydHVhbFRva2VucwgFDSR0MDExMDAzMTEwNTYCXzEECXRva2VuRGF0YQgFDSR0MDExMDAzMTEwNTYCXzIEBXBvd2VyAwkAAAIFCmluUHJvdG9jb2wAAAAACQBrAwCQTgUGZ1ZpcmVzBQppblByb3RvY29sBARiYXNlCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICDiAgZGVwb3NpdGVkID0gCQCkAwEFCWRlcG9zaXRlZAISLCB2aXJ0dWFsVG9rZW5zID0gCQCkAwEFDXZpcnR1YWxUb2tlbnMCCywgbG9ja2VkID0gCQCkAwEFBmxvY2tlZAIRLCB3aXRoZHJhd2FibGUgPSAJAKQDAQUMd2l0aGRyYXdhYmxlAg4sIHdpdGhkcmF3biA9IAkApAMBBQl3aXRoZHJhd24CDywgaW5Qcm90b2NvbCA9IAkApAMBBQppblByb3RvY29sAhAsIGVudHJ5SGVpZ2h0ID0gCQCkAwEJAQ91c2VyRW50cnlIZWlnaHQBBQR1c2VyAgssIGZhY3RvciA9IAkApAMBCQEKdXNlckZhY3RvcgEFBHVzZXICCywgZ1ZpcmVzID0gCQCkAwEFBmdWaXJlcwIKLCBwb3dlciA9IAkApAMBBQVwb3dlcgQKdG9rZW5zRGF0YQoBA2ZsZAIGdG90YWxzBGl0ZW0EDSR0MDExNzk0MTE4MjEFBGl0ZW0EA2FpZAgFDSR0MDExNzk0MTE4MjECXzEEA2NlZAgFDSR0MDExNzk0MTE4MjECXzIEAmF2CAUNJHQwMTE3OTQxMTgyMQJfMwQCbmMIBQ0kdDAxMTc5NDExODIxAl80CQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFBnRvdGFscwIELCBbIAIKYXNzZXRJZCA9IAUDYWlkAgwsIGNsYWltZWQgPSAJAKQDAQUDY2VkAg4sIGNsYWltYWJsZSA9IAkApAMBBQJhdgIRLCBub25DbGFpbWFibGUgPSAJAKQDAQUCbmMCAV0KAAIkbAUJdG9rZW5EYXRhCgACJHMJAJADAQUCJGwKAAUkYWNjMAIACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQNmbGQCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDIwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAkArAICBQRiYXNlBQp0b2tlbnNEYXRhAQZhZHZpc2UABAt0b3RhbEd2aXJlcwkBB2Zvcm11bGECCQEBLQEJAGUCBQZIRUlHSFQFDWluaXRpYWxIZWlnaHQFEnRvdGFsVmlydHVhbFRva2VucwQEYmFzZQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICGSAgdG90YWxEZXBvc2l0ZWRUb2tlbnMgPSAJAKQDAQUUdG90YWxEZXBvc2l0ZWRUb2tlbnMCGiwgdG90YWxEZXBvc2l0ZWRUb2tlbnMxID0gCQCkAwEJARZ0b3RhbERlcG9zaXRlZEJ5RmFjdG9yAQABAhosIHRvdGFsRGVwb3NpdGVkVG9rZW5zMiA9IAkApAMBCQEWdG90YWxEZXBvc2l0ZWRCeUZhY3RvcgEAAgIaLCB0b3RhbERlcG9zaXRlZFRva2VuczQgPSAJAKQDAQkBFnRvdGFsRGVwb3NpdGVkQnlGYWN0b3IBAAQCFywgdG90YWxWaXJ0dWFsVG9rZW5zID0gCQCkAwEFEnRvdGFsVmlydHVhbFRva2VucwIQLCB0b3RhbEd2aXJlcyA9IAkApAMBBQt0b3RhbEd2aXJlcwoBBGZvbGQCBXRvdGFsA2FpZAkArAICCQCsAgIJAKwCAgkArAICBQV0b3RhbAICLCAFA2FpZAIDID0gCQCkAwEJARJ0b3RhbFJlYWxEaXZpZGVuZHMBBQNhaWQKAAIkbAUVZGl2aWRlbmRhYmxlVG9rZW5zQXJyCgACJHMJAJADAQUCJGwKAAUkYWNjMAUEYmFzZQoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEEZm9sZAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMjAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUAQp1cGRhdGVVc2VyAwR1c2VyBnRva2VucwFmBAZjaGVja3MJAQlvcEFsbG93ZWQBAgpsb2NrX3ZpcmVzAwkAAAIFBmNoZWNrcwUGY2hlY2tzAwMJAQIhPQIFAWYAAQkBC3ZhbHVlT3JFbHNlAgkAmwgCBQ1jb25maWdBZGRyZXNzAgthbGxvd19ib29zdAcHCQACAQIUYm9vc3Rpbmcgbm90IGVuYWJsZWQEBmZhY3RvcgkBC2ZhY3RvckNoZWNrAQUBZgMJAAACBQZmYWN0b3IFBmZhY3RvcgQNY3VycmVudEZhY3RvcgkBCnVzZXJGYWN0b3IBBQR1c2VyAwkAZgIFDWN1cnJlbnRGYWN0b3IFBmZhY3RvcgkAAgECGGNhbid0IGRvd25ncmFkZSBib29zdGluZwQNJHQwMTMxNTExMzIzNwkBDXVzZXJWaXJlc0RhdGEBBQR1c2VyBAlkZXBvc2l0ZWQIBQ0kdDAxMzE1MTEzMjM3Al8xBAZsb2NrZWQIBQ0kdDAxMzE1MTEzMjM3Al8yBAx3aXRoZHJhd2FibGUIBQ0kdDAxMzE1MTEzMjM3Al8zBAl3aXRoZHJhd24IBQ0kdDAxMzE1MTEzMjM3Al80BAppblByb3RvY29sCAUNJHQwMTMxNTExMzIzNwJfNQQCZ1YIBQ0kdDAxMzE1MTEzMjM3Al82BBBvbGRWaXJ0dWFsVG9rZW5zCQERdXNlclZpcnR1YWxUb2tlbnMBBQR1c2VyBBBuZXdWaXJ0dWFsVG9rZW5zCQEHZm9ybXVsYQIJAGUCBQZIRUlHSFQFDWluaXRpYWxIZWlnaHQJAGgCBQZmYWN0b3IJAGQCBQZ0b2tlbnMFCmluUHJvdG9jb2wEBGRpZmYJAGUCBRBuZXdWaXJ0dWFsVG9rZW5zBRBvbGRWaXJ0dWFsVG9rZW5zBARiYXNlCQDMCAIJAQhjaGFuZ2VCeQIFGXRvdGFsRGVwb3NpdGVkVG9rZW5zU3RvcmUFBnRva2VucwkAzAgCCQELY2hhbmdlQnlTdHICBRd0b3RhbFZpcnR1YWxUb2tlbnNTdG9yZQUEZGlmZgkAzAgCCQELY2hhbmdlQnlTdHICCQEWdXNlclZpcnR1YWxUb2tlbnNTdG9yZQEFBHVzZXIFBGRpZmYJAMwIAgkBCGNoYW5nZUJ5AgkBGHVzZXJEZXBvc2l0ZWRUb2tlbnNTdG9yZQEFBHVzZXIFBnRva2VucwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFHVzZXJFbnRyeUhlaWdodFN0b3JlAQUEdXNlcgUGSEVJR0hUCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPdXNlckZhY3RvclN0b3JlAQUEdXNlcgUGZmFjdG9yBQNuaWwECXRva2VuRGF0YQoBBGZvbGQCBXRvdGFsA2FpZAQDYWRqAwkAAAIFEnRvdGFsVmlydHVhbFRva2VucwAAAAAJAGsDBQRkaWZmCQEVdG90YWxWaXJ0dWFsRGl2aWRlbmRzAQUDYWlkBRJ0b3RhbFZpcnR1YWxUb2tlbnMJAM4IAgUFdG90YWwJAMwIAgkBCGNoYW5nZUJ5AgkBGnRvdGFsVmlydHVhbERpdmlkZW5kc1N0b3JlAQUDYWlkBQNhZGoJAMwIAgkBDEludGVnZXJFbnRyeQIJARV1c2VyRGl2aWRlbmRzQWRqU3RvcmUCBQR1c2VyBQNhaWQJAGQCCQEQdXNlckRpdmlkZW5kc0FkagIFBHVzZXIFA2FpZAUDYWRqBQNuaWwKAAIkbAUVZGl2aWRlbmRhYmxlVG9rZW5zQXJyCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQRmb2xkAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAyMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQECm1vbml0b3JpbmcDCQECIT0CBQZmYWN0b3IFDWN1cnJlbnRGYWN0b3IJAMwIAgkBCGNoYW5nZUJ5AgkBG3RvdGFsRGVwb3NpdGVkQnlGYWN0b3JTdG9yZQEFDWN1cnJlbnRGYWN0b3IJAQEtAQUKaW5Qcm90b2NvbAkAzAgCCQEIY2hhbmdlQnkCCQEbdG90YWxEZXBvc2l0ZWRCeUZhY3RvclN0b3JlAQUGZmFjdG9yCQBkAgUGdG9rZW5zBQppblByb3RvY29sBQNuaWwJAMwIAgkBCGNoYW5nZUJ5AgkBG3RvdGFsRGVwb3NpdGVkQnlGYWN0b3JTdG9yZQEFBmZhY3RvcgUGdG9rZW5zBQNuaWwJAM4IAgkAzggCBQRiYXNlBQl0b2tlbkRhdGEFCm1vbml0b3JpbmcJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4LAWkBC3RvdGFsR3ZpcmVzAAkAlAoCBQNuaWwJAQdmb3JtdWxhAgkBAS0BCQBlAgUGSEVJR0hUBQ1pbml0aWFsSGVpZ2h0BRJ0b3RhbFZpcnR1YWxUb2tlbnMBaQETc2hhcmVQcm9maXRNYW51YWxseQAEBmNoZWNrcwkBCW9wQWxsb3dlZAECGHNoYXJlX2RpdmlkZW5kc19tYW51YWxseQMJAAACBQZjaGVja3MFBmNoZWNrcwQOcGF5bWVudEFzc2V0SWQJAQphc3NldElkU3RyAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkAwkBASEBCQEIY29udGFpbnMCBRJkaXZpZGVuZGFibGVUb2tlbnMFDnBheW1lbnRBc3NldElkCQACAQIQYmFkIHByb2ZpdCB0b2tlbgQDYW10CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAkAzAgCCQEIY2hhbmdlQnkCCQEadG90YWxWaXJ0dWFsRGl2aWRlbmRzU3RvcmUBBQ5wYXltZW50QXNzZXRJZAUDYW10CQDMCAIJAQhjaGFuZ2VCeQIJARd0b3RhbFJlYWxEaXZpZGVuZHNTdG9yZQEFDnBheW1lbnRBc3NldElkBQNhbXQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARdzaGFyZVByb2ZpdEZyb21SZXNlcnZlcwAJARljbGFpbUZyb21SZXNlcnZlc0ludGVybmFsAAFpAQRpbml0Ag1jb25maWdBZGRyZXNzBXZpcmVzCQDMCAIJARB3cml0ZUNvbnN0U3RyaW5nAgULY29uZmlnU3RvcmUFDWNvbmZpZ0FkZHJlc3MJAMwIAgkBEHdyaXRlQ29uc3RTdHJpbmcCBRF2aXJlc0Fzc2V0SWRTdG9yZQUFdmlyZXMFA25pbAFpAQVpbml0MgADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhZvbmx5IHNlbGYgY2FuIGNvbnRpbnVlCQDMCAIJAQh3cml0ZUludAIFEmluaXRpYWxIZWlnaHRTdG9yZQUGSEVJR0hUBQNuaWwBaQEHbG9ja0ZvcgIEdXNlcgZmYWN0b3IEBmNoZWNrcwkBB3Rocm93SWYCAwkBAiE9AgkApQgBCAUBaQZjYWxsZXIFBHVzZXIJAQIhPQIIBQFpBmNhbGxlcgUEbWFpbgcCIm9ubHkgbWFpbiBhbmQgdXNlciBkaXJlY3RseSBjYW4gZG8DCQAAAgUGY2hlY2tzBQZjaGVja3MJAQp1cGRhdGVVc2VyAwUEdXNlcgkBDHZpcmVzUGF5bWVudAEFAWkFBmZhY3RvcgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARN3aXRoZHJhd1VubG9ja2VkRm9yAQR1c2VyBAZjaGVja3MDCQEHdGhyb3dJZgIDCQECIT0CCQClCAEIBQFpBmNhbGxlcgUEdXNlcgkBAiE9AggFAWkGY2FsbGVyBQRtYWluBwIib25seSBtYWluIGFuZCB1c2VyIGRpcmVjdGx5IGNhbiBkbwkBCW9wQWxsb3dlZAECF3dpdGhkcmF3X3VubG9ja2VkX3ZpcmVzBwMJAAACBQZjaGVja3MFBmNoZWNrcwQEYWRkcgkBEUBleHRyTmF0aXZlKDEwNjIpAQUEdXNlcgQNJHQwMTU5NDUxNjAyMwkBDXVzZXJWaXJlc0RhdGEBBQR1c2VyBAlkZXBvc2l0ZWQIBQ0kdDAxNTk0NTE2MDIzAl8xBAZsb2NrZWQIBQ0kdDAxNTk0NTE2MDIzAl8yBAx3aXRoZHJhd2FibGUIBQ0kdDAxNTk0NTE2MDIzAl8zBAl3aXRoZHJhd24IBQ0kdDAxNTk0NTE2MDIzAl80BAZnVmlyZXMIBQ0kdDAxNTk0NTE2MDIzAl81AwkAZwIAAAUMd2l0aGRyYXdhYmxlBQNuaWwECnVzZXJVcGRhdGUDCQEMdXNlck9mZkNsaWZmAQUEdXNlcgQNJHQwMTYxMjQxNjE3OAkBDnVzZXJQcm9maXREYXRhAQUEdXNlcgQNdmlydHVhbFRva2VucwgFDSR0MDE2MTI0MTYxNzgCXzEECnRva2Vuc0RhdGEIBQ0kdDAxNjEyNDE2MTc4Al8yBARiYXNlCQDMCAIJAQtEZWxldGVFbnRyeQEJAQ91c2VyRmFjdG9yU3RvcmUBBQR1c2VyCQDMCAIJAQtEZWxldGVFbnRyeQEJARR1c2VyRW50cnlIZWlnaHRTdG9yZQEFBHVzZXIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBGHVzZXJXaXRoZHJhd25Ub2tlbnNTdG9yZQEFBHVzZXIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBGHVzZXJEZXBvc2l0ZWRUb2tlbnNTdG9yZQEFBHVzZXIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBFnVzZXJWaXJ0dWFsVG9rZW5zU3RvcmUBBQR1c2VyCQDMCAIJAQtjaGFuZ2VCeVN0cgIFF3RvdGFsVmlydHVhbFRva2Vuc1N0b3JlCQEBLQEFDHdpdGhkcmF3YWJsZQUDbmlsBAl0b2tlbkRhdGEKAQRmb2xkAgV0b3RhbARpdGVtBA0kdDAxNjY3NTE2NzA0BQRpdGVtBANhaWQIBQ0kdDAxNjY3NTE2NzA0Al8xBANjZWQIBQ0kdDAxNjY3NTE2NzA0Al8yBAJhdggFDSR0MDE2Njc1MTY3MDQCXzMEAm5jCAUNJHQwMTY2NzUxNjcwNAJfNAkAzggCBQV0b3RhbAkAzAgCCQELRGVsZXRlRW50cnkBCQEZdXNlckRpdmlkZW5kc0NsYWltZWRTdG9yZQIFBHVzZXIFA2FpZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFXVzZXJEaXZpZGVuZHNBZGpTdG9yZQIFBHVzZXIFA2FpZAkBAS0BBQJhdgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGnRvdGFsVmlydHVhbERpdmlkZW5kc1N0b3JlAQUDYWlkCQBrAwkBFXRvdGFsVmlydHVhbERpdmlkZW5kcwEFA2FpZAkAZQIFEnRvdGFsVmlydHVhbFRva2VucwUMd2l0aGRyYXdhYmxlBRJ0b3RhbFZpcnR1YWxUb2tlbnMFA25pbAoAAiRsBQp0b2tlbnNEYXRhCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQRmb2xkAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAyMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQJAM4IAgUEYmFzZQUJdG9rZW5EYXRhCQDMCAIJAQhjaGFuZ2VCeQIJARh1c2VyV2l0aGRyYXduVG9rZW5zU3RvcmUBBQR1c2VyBQx3aXRoZHJhd2FibGUFA25pbAkAzggCBQp1c2VyVXBkYXRlCQDMCAIJAQhjaGFuZ2VCeQIJARt0b3RhbERlcG9zaXRlZEJ5RmFjdG9yU3RvcmUBCQEKdXNlckZhY3RvcgEFBHVzZXIJAQEtAQUMd2l0aGRyYXdhYmxlCQDMCAIJAQhjaGFuZ2VCeQIFGXRvdGFsRGVwb3NpdGVkVG9rZW5zU3RvcmUJAQEtAQUMd2l0aGRyYXdhYmxlCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBGFkZHIFDHdpdGhkcmF3YWJsZQUMdmlyZXNBc3NldElkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQELY2xhaW1Qcm9maXQDBGZyb20CdG8GcmVsb2NrBA12YWxpZERlbGVnYXRlAwkAAAIFBGZyb20FAnRvBgQHJG1hdGNoMAkAnQgCBQR0aGlzCQCsAgICEWRlbGVnYXRpb25fY2xhaW1fBQRmcm9tAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAQEZGF0YQkAtQkCBQFzAgF8AwkBAiE9AgUCdG8JAJEDAgUEZGF0YQAACQACAQkArAICAhlubyBkZWxlZ2F0aW9uIHJpZ2h0cyBmb3IgBQJ0bwMDBQZyZWxvY2sJAQIhPQIJAJEDAgUEZGF0YQABAgExBwkAAgECK2F0dGVtcHRpbmcgdG8gcmVsb2NrIHdoaWxlIGl0J3Mgbm90IGFsbG93ZWQGCQACAQkArAICAh5kZWxlZ2F0aW9uIG5vdCBjb25maWd1cmVkIGZvciAFBGZyb20EBmNoZWNrcwMDCQEIbWFpbk9ubHkBBQFpCQEJb3BBbGxvd2VkAQIPY2xhaW1fZGl2aWRlbmRzBwUNdmFsaWREZWxlZ2F0ZQcDCQAAAgUGY2hlY2tzBQZjaGVja3MEBnRvQWRkcgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCdG8EDSR0MDE4MDc1MTgxMjgJAQ51c2VyUHJvZml0RGF0YQEFBGZyb20EDXZpcnR1YWxUb2tlbnMIBQ0kdDAxODA3NTE4MTI4Al8xBAp0b2tlbnNEYXRhCAUNJHQwMTgwNzUxODEyOAJfMgQJcmVsb2NraW5nAwUGcmVsb2NrCQEKdXBkYXRlVXNlcgMFBGZyb20AAAkBCnVzZXJGYWN0b3IBBQRmcm9tBQNuaWwECXRva2VuRGF0YQoBBGZvbGQCBXRvdGFsBGl0ZW0EDSR0MDE4MzMyMTgzNjEFBGl0ZW0EA2FpZAgFDSR0MDE4MzMyMTgzNjECXzEEA2NlZAgFDSR0MDE4MzMyMTgzNjECXzIEAmF2CAUNJHQwMTgzMzIxODM2MQJfMwQCbmMIBQ0kdDAxODMzMjE4MzYxAl80CQDOCAIFBXRvdGFsCQDMCAIJAQhjaGFuZ2VCeQIJARl1c2VyRGl2aWRlbmRzQ2xhaW1lZFN0b3JlAgUEZnJvbQUDYWlkBQJhdgkAzAgCCQEIY2hhbmdlQnkCCQEedG90YWxSZWFsRGl2aWRlbmRzQ2xhaW1lZFN0b3JlAQUDYWlkBQJhdgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQZ0b0FkZHIFAmF2CQEHYXNzZXRJZAEFA2FpZAUDbmlsCgACJGwFCnRva2Vuc0RhdGEKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBBGZvbGQCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDIwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAkAzggCBQlyZWxvY2tpbmcFCXRva2VuRGF0YQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARJzZXRDbGFpbURlbGVnYXRpb24CB2FkZHJlc3MGcmVsb2NrBAZjaGVja3MJAQlvcEFsbG93ZWQBAhRzZXRfZGVsZWdhdGlvbl9jbGFpbQMJAAACBQZjaGVja3MFBmNoZWNrcwMJAQEhAQkBCWlzRGVmaW5lZAEJAKYIAQUHYWRkcmVzcwkAAgECC2JhZCBhZGRyZXNzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgIRZGVsZWdhdGlvbl9jbGFpbV8JAKUIAQgFAWkGY2FsbGVyCQCsAgIJAKwCAgUHYWRkcmVzcwIBfAMFBnJlbG9jawIBMQIBMAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBFXJlbW92ZUNsYWltRGVsZWdhdGlvbgAEBmNoZWNrcwkBCW9wQWxsb3dlZAECFHNldF9kZWxlZ2F0aW9uX2NsYWltAwkAAAIFBmNoZWNrcwUGY2hlY2tzCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgIRZGVsZWdhdGlvbl9jbGFpbV8JAKUIAQgFAWkGY2FsbGVyBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEJdXNlclBvd2VyAQR1c2VyCQCUCgIFA25pbAkBCnVzZXJHVmlyZXMBBQR1c2VyAE0fUKg=", "chainId": 87, "height": 3192111, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4paoA8722FBpwWFuqiBCedYDApq6hAfgTtusyWsgSznc Next: GM1jsZHaBsJLRzFhNquw1aiRwNmreRoYSk4BYjBSm5Sw Diff:
OldNewDifferences
1-{-# STDLIB_VERSION 5 #-}
1+{-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b) = {
146146
147147 let R = if ((Q == ""))
148148 then nil
149- else split(Q, "|")
149+ else split_4C(Q, "|")
150150
151151 let S = valueOrElse(getString(n, "dividendableReserves"), "")
152152
157157 let U = c
158158 if ((U == ""))
159159 then nil
160- else split(U, "|")
160+ else split_4C(U, "|")
161161 }
162162 else nil
163163 }
315315 }
316316 }
317317
318- let bi = [0, 1, 2, 3, 4, 5, 6]
318+ let bi = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
319319 let bj = size(bi)
320320 let bk = nil
321321 func bl (bm,bn) = if ((bn >= bj))
324324
325325 func bo (bm,bn) = if ((bn >= bj))
326326 then bm
327- else throw("List size exceeds 7")
327+ else throw("List size exceeds 20")
328328
329- bo(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7)
329+ bo(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
330330 }
331331 $Tuple2(aS, aT)
332332 }
362362
363363 func bo (bm,bn) = if ((bn >= bj))
364364 then bm
365- else throw("List size exceeds 7")
365+ else throw("List size exceeds 20")
366366
367- bo(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7)
367+ bo(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
368368 }
369369
370370
402402
403403 func bo (bm,bn) = if ((bn >= bj))
404404 then bm
405- else throw("List size exceeds 7")
405+ else throw("List size exceeds 20")
406406
407- bo(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7)
407+ bo(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
408408 }
409409 (bC + bD)
410410 }
424424
425425 func bo (bm,bn) = if ((bn >= bj))
426426 then bm
427- else throw("List size exceeds 7")
427+ else throw("List size exceeds 20")
428428
429- bo(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7)
429+ bo(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
430430 }
431431
432432
473473
474474 func bo (bm,bn) = if ((bn >= bj))
475475 then bm
476- else throw("List size exceeds 7")
476+ else throw("List size exceeds 20")
477477
478- bo(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7)
478+ bo(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
479479 }
480480 let bW = if ((i != bR))
481481 then [G(ay(bR), -(aO)), G(ay(i), (bO + aO))]
585585
586586 func bo (bm,bn) = if ((bn >= bj))
587587 then bm
588- else throw("List size exceeds 7")
588+ else throw("List size exceeds 20")
589589
590- bo(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7)
590+ bo(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
591591 }
592592 (bC ++ aT)
593593 }
653653
654654 func bo (bm,bn) = if ((bn >= bj))
655655 then bm
656- else throw("List size exceeds 7")
656+ else throw("List size exceeds 20")
657657
658- bo(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7)
658+ bo(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
659659 }
660660 (cm ++ aT)
661661 }
Full:
OldNewDifferences
1-{-# STDLIB_VERSION 5 #-}
1+{-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b) = {
55 let c = b
66 if ($isInstanceOf(c, "Int"))
77 then {
88 let d = c
99 d
1010 }
1111 else throw("wrong type, expected: Int")
1212 }
1313
1414
1515 func e (b) = {
1616 let c = b
1717 if ($isInstanceOf(c, "(Int, String, Int)"))
1818 then {
1919 let f = c
2020 f
2121 }
2222 else if ($isInstanceOf(c, "(Int, String)"))
2323 then {
2424 let g = c
2525 $Tuple3(g._1, g._2, 0)
2626 }
2727 else throw("wrong type, expected: (Int, String)")
2828 }
2929
3030
3131 func h (i) = if (if (if ((i != 1))
3232 then (i != 2)
3333 else false)
3434 then (i != 4)
3535 else false)
3636 then throw("bad factor")
3737 else i
3838
3939
4040 let j = "viresAssetId"
4141
4242 let k = "initialHeight"
4343
4444 let l = getIntegerValue(this, k)
4545
4646 let m = "config"
4747
4848 let n = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, m), "exp-dividends: no configAddress")), "invalid config address")
4949
5050 let o = {
5151 let c = getString(n, "oracle_address")
5252 if ($isInstanceOf(c, "String"))
5353 then {
5454 let p = c
5555 addressFromString(p)
5656 }
5757 else unit
5858 }
5959
6060 let q = height
6161
6262 let r = valueOrErrorMessage(getString(this, j), "vires assetId not found")
6363
6464 let s = valueOrErrorMessage(fromBase58String(r), "invalid vires assetId")
6565
6666 func t (p) = if ((p == "WAVES"))
6767 then unit
6868 else fromBase58String(p)
6969
7070
7171 func u (v) = {
7272 let c = v
7373 if ($isInstanceOf(c, "ByteVector"))
7474 then {
7575 let w = c
7676 toBase58String(w)
7777 }
7878 else if ($isInstanceOf(c, "Unit"))
7979 then {
8080 let x = c
8181 "WAVES"
8282 }
8383 else throw("Match error")
8484 }
8585
8686
8787 func y (z,A) = if (z)
8888 then throw(A)
8989 else true
9090
9191
9292 func B (C,b) = if ((0 > b))
9393 then throw(((("writing negative value " + toString(b)) + " for key ") + C))
9494 else IntegerEntry(C, b)
9595
9696
9797 func D (C,b) = if ((0 > b))
9898 then throw(((("writing negative value " + toString(b)) + " for key ") + C))
9999 else StringEntry(C, toString(b))
100100
101101
102102 func E (C,b) = StringEntry(C, b)
103103
104104
105105 func F (C,b) = if (!(isDefined(getString(this, C))))
106106 then StringEntry(C, b)
107107 else throw(("already initialized: " + C))
108108
109109
110110 func G (C,b) = B(C, (valueOrElse(getInteger(this, C), 0) + b))
111111
112112
113113 func H (C,b) = D(C, (parseIntValue(valueOrElse(getString(this, C), "0")) + b))
114114
115115
116116 func I (J) = if ((size(J.payments) == 0))
117117 then 0
118118 else if ((J.payments[0].assetId != s))
119119 then throw("not vires")
120120 else J.payments[0].amount
121121
122122
123123 func K (L) = {
124124 let c = invoke(n, "opAllowed", [r, L], nil)
125125 if ($isInstanceOf(c, "Boolean"))
126126 then {
127127 let M = c
128128 if (M)
129129 then true
130130 else throw("not allowed")
131131 }
132132 else throw("opAllowed: unexpected result type")
133133 }
134134
135135
136136 let N = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(n, "vires_staker"), "no vires_staker in config")), "invalid vires_staker address")
137137
138138 let O = valueOrErrorMessage(addressFromString(split(valueOrErrorMessage(getString(n, "main"), "no main"), "|")[0]), "invalid main")
139139
140140 func P (J) = if (contains(getStringValue(n, "main"), toString(J.caller)))
141141 then true
142142 else throw("only main can do")
143143
144144
145145 let Q = valueOrElse(getString(n, "dividendableTokens"), "")
146146
147147 let R = if ((Q == ""))
148148 then nil
149- else split(Q, "|")
149+ else split_4C(Q, "|")
150150
151151 let S = valueOrElse(getString(n, "dividendableReserves"), "")
152152
153153 let T = {
154154 let c = S
155155 if ($isInstanceOf(c, "String"))
156156 then {
157157 let U = c
158158 if ((U == ""))
159159 then nil
160- else split(U, "|")
160+ else split_4C(U, "|")
161161 }
162162 else nil
163163 }
164164
165165 let V = valueOrErrorMessage(getInteger(n, "vires_lock_half_life"), "half life not set")
166166
167167 let W = (69314718056 / V)
168168
169169 let X = 8
170170
171171 let Y = 271828183
172172
173173 let Z = 8
174174
175175 func aa (ab,ac) = fraction(ac, pow(Y, Z, fraction(W, ab, 1000), X, 8, HALFUP), 100000000)
176176
177177
178178 func ad (ae,v) = (((ae + "_") + v) + "_adj")
179179
180180
181181 func af (ae,v) = (((ae + "_") + v) + "_claimed")
182182
183183
184184 func ag (ae) = (ae + "_virtual")
185185
186186
187187 func ah (ae) = (ae + "_vires")
188188
189189
190190 func ai (ae) = (ae + "_vires_withdrawn")
191191
192192
193193 func aj (ae) = (ae + "_height")
194194
195195
196196 func ak (ae) = (ae + "_factor")
197197
198198
199199 func al (ae,v) = valueOrElse(getInteger(ad(ae, v)), 0)
200200
201201
202202 func am (ae,v) = valueOrElse(getInteger(af(ae, v)), 0)
203203
204204
205205 func an (ae) = parseIntValue(valueOrElse(getString(ag(ae)), "0"))
206206
207207
208208 func ao (ae) = valueOrElse(getInteger(ah(ae)), 0)
209209
210210
211211 func ap (ae) = valueOrElse(getInteger(ai(ae)), 0)
212212
213213
214214 func aq (ae) = valueOrElse(getInteger(aj(ae)), 0)
215215
216216
217217 func ar (ae) = valueOrElse(getInteger(ak(ae)), 1)
218218
219219
220220 func as (ae) = aa(-((q - l)), an(ae))
221221
222222
223223 func at (v) = (v + "_totalVirtualDividends")
224224
225225
226226 func au (v) = (v + "_totalRealDividends")
227227
228228
229229 func av (v) = (v + "_totalRealDividendsClaimed")
230230
231231
232232 let aw = "totalVirtualTokens"
233233
234234 let ax = "totalDepositedTokens"
235235
236236 func ay (i) = ("totalDepositedTokens" + toString(h(i)))
237237
238238
239239 func az (i) = valueOrElse(getInteger(ay(i)), 0)
240240
241241
242242 func aA (v) = valueOrElse(getInteger(this, at(v)), 0)
243243
244244
245245 func aB (v) = valueOrElse(getInteger(this, au(v)), 0)
246246
247247
248248 let aC = parseIntValue(valueOrElse(getString(this, aw), "0"))
249249
250250 let aD = valueOrElse(getInteger(this, ax), 0)
251251
252252 func aE (ae) = {
253253 let aF = aq(ae)
254254 let i = ar(ae)
255255 if ((i == 1))
256256 then (q > (aF + (4 * V)))
257257 else if ((i == 2))
258258 then (q > (aF + (5 * V)))
259259 else if ((i == 4))
260260 then (q > (aF + (6 * V)))
261261 else throw(("bad factor:" + toString(i)))
262262 }
263263
264264
265265 func aG (ae) = {
266266 let aH = ao(ae)
267267 let aI = as(ae)
268268 let aJ = min([aH, aI])
269269 let aK = if (aE(ae))
270270 then 0
271271 else aJ
272272 let aL = (aH - aK)
273273 let aM = ap(ae)
274274 let aN = (aL - aM)
275275 let aO = (aK + aN)
276276 $Tuple6(aH, aK, aN, aM, aO, aI)
277277 }
278278
279279
280280 func aP (ae) = {
281281 let aQ = size(R)
282282 let aR = size(T)
283283 if ((aQ != aR))
284284 then throw(((("inconsistent configuration: totalTokens=" + toString(aQ)) + ", totalDividendableReserves = ") + toString(aR)))
285285 else {
286286 let aS = an(ae)
287287 let aT = {
288288 func aU (aV,aW) = if ((aW >= aQ))
289289 then aV
290290 else {
291291 let v = R[aW]
292292 let aX = {
293293 let aY = valueOrErrorMessage(addressFromString(T[aW]), "bad reserve in dividendableReserves")
294294 e(invoke(aY, "getReserveDivsInfo", nil, nil))
295295 }
296296 let aZ = aX._1
297297 let ba = aX._2
298298 let bb = aX._3
299299 if ((ba != v))
300300 then throw(((((((("inconsistent configuration: reserveAssetId=" + ba) + ", aid=") + v) + ", dividendableTokens:") + Q) + ", dividendableReserves:") + S))
301301 else {
302302 let bc = if ((aC == 0))
303303 then 0
304304 else fraction((aA(v) + aZ), aS, aC)
305305 let bd = al(ae, v)
306306 let be = (bc - bd)
307307 let bf = if ((aC == 0))
308308 then 0
309309 else fraction(bb, aS, aC)
310310 let bg = am(ae, v)
311311 let bh = max([0, (be - bg)])
312312 if ((0 > bh))
313313 then throw(("claimable < 0: " + toString(bh)))
314314 else (aV ++ [$Tuple4(v, bg, bh, bf)])
315315 }
316316 }
317317
318- let bi = [0, 1, 2, 3, 4, 5, 6]
318+ let bi = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
319319 let bj = size(bi)
320320 let bk = nil
321321 func bl (bm,bn) = if ((bn >= bj))
322322 then bm
323323 else aU(bm, bi[bn])
324324
325325 func bo (bm,bn) = if ((bn >= bj))
326326 then bm
327- else throw("List size exceeds 7")
327+ else throw("List size exceeds 20")
328328
329- bo(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7)
329+ bo(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
330330 }
331331 $Tuple2(aS, aT)
332332 }
333333 }
334334
335335
336336 func bp () = {
337337 let bq = "assetId"
338338 func aU (br,bs) = {
339339 let bt = valueOrErrorMessage(addressFromString(bs), "adder: bad reserve address")
340340 let bu = valueOrErrorMessage(getString(bt, bq), "no assetId in reserve")
341341 let bv = if (!(contains(Q, bu)))
342342 then throw("inconsistent configuration: dividendableReserve's asset id is not stored in dividendableTokens")
343343 else {
344344 let bw = a(invoke(bt, "withdrawFromReserve", [-1], nil))
345345 if ((bw == bw))
346346 then if ((0 > bw))
347347 then throw("bad amount")
348348 else if ((bw == 0))
349349 then nil
350350 else [G(at(bu), bw), G(au(bu), bw)]
351351 else throw("Strict value is not equal to itself.")
352352 }
353353 (br ++ bv)
354354 }
355355
356356 let bi = T
357357 let bj = size(bi)
358358 let bk = nil
359359 func bl (bm,bn) = if ((bn >= bj))
360360 then bm
361361 else aU(bm, bi[bn])
362362
363363 func bo (bm,bn) = if ((bn >= bj))
364364 then bm
365- else throw("List size exceeds 7")
365+ else throw("List size exceeds 20")
366366
367- bo(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7)
367+ bo(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
368368 }
369369
370370
371371 func bx (ae) = {
372372 let by = aG(ae)
373373 let aH = by._1
374374 let aK = by._2
375375 let aN = by._3
376376 let aM = by._4
377377 let aO = by._5
378378 let bz = by._6
379379 let bA = aP(ae)
380380 let aS = bA._1
381381 let aT = bA._2
382382 let bB = if ((aO == 0))
383383 then 0
384384 else fraction(10000, bz, aO)
385385 let bC = (((((((((((((((((((" deposited = " + toString(aH)) + ", virtualTokens = ") + toString(aS)) + ", locked = ") + toString(aK)) + ", withdrawable = ") + toString(aN)) + ", withdrawn = ") + toString(aM)) + ", inProtocol = ") + toString(aO)) + ", entryHeight = ") + toString(aq(ae))) + ", factor = ") + toString(ar(ae))) + ", gVires = ") + toString(bz)) + ", power = ") + toString(bB))
386386 let bD = {
387387 func bE (aV,bF) = {
388388 let bG = bF
389389 let v = bG._1
390390 let bH = bG._2
391391 let bI = bG._3
392392 let bJ = bG._4
393393 ((((((((((aV + ", [ ") + "assetId = ") + v) + ", claimed = ") + toString(bH)) + ", claimable = ") + toString(bI)) + ", nonClaimable = ") + toString(bJ)) + "]")
394394 }
395395
396396 let bi = aT
397397 let bj = size(bi)
398398 let bk = ""
399399 func bl (bm,bn) = if ((bn >= bj))
400400 then bm
401401 else bE(bm, bi[bn])
402402
403403 func bo (bm,bn) = if ((bn >= bj))
404404 then bm
405- else throw("List size exceeds 7")
405+ else throw("List size exceeds 20")
406406
407- bo(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7)
407+ bo(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
408408 }
409409 (bC + bD)
410410 }
411411
412412
413413 func bK () = {
414414 let bL = aa(-((q - l)), aC)
415415 let bC = (((((((((((" totalDepositedTokens = " + toString(aD)) + ", totalDepositedTokens1 = ") + toString(az(1))) + ", totalDepositedTokens2 = ") + toString(az(2))) + ", totalDepositedTokens4 = ") + toString(az(4))) + ", totalVirtualTokens = ") + toString(aC)) + ", totalGvires = ") + toString(bL))
416416 func aU (bM,v) = ((((bM + ", ") + v) + " = ") + toString(aB(v)))
417417
418418 let bi = R
419419 let bj = size(bi)
420420 let bk = bC
421421 func bl (bm,bn) = if ((bn >= bj))
422422 then bm
423423 else aU(bm, bi[bn])
424424
425425 func bo (bm,bn) = if ((bn >= bj))
426426 then bm
427- else throw("List size exceeds 7")
427+ else throw("List size exceeds 20")
428428
429- bo(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7)
429+ bo(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
430430 }
431431
432432
433433 func bN (ae,bO,bP) = {
434434 let bQ = K("lock_vires")
435435 if ((bQ == bQ))
436436 then if (if ((bP != 1))
437437 then valueOrElse(getBoolean(n, "allow_boost"), false)
438438 else false)
439439 then throw("boosting not enabled")
440440 else {
441441 let i = h(bP)
442442 if ((i == i))
443443 then {
444444 let bR = ar(ae)
445445 if ((bR > i))
446446 then throw("can't downgrade boosting")
447447 else {
448448 let bS = aG(ae)
449449 let aH = bS._1
450450 let aK = bS._2
451451 let aN = bS._3
452452 let aM = bS._4
453453 let aO = bS._5
454454 let aI = bS._6
455455 let bT = an(ae)
456456 let bU = aa((q - l), (i * (bO + aO)))
457457 let bV = (bU - bT)
458458 let bC = [G(ax, bO), H(aw, bV), H(ag(ae), bV), G(ah(ae), bO), IntegerEntry(aj(ae), q), IntegerEntry(ak(ae), i)]
459459 let aT = {
460460 func aU (bM,v) = {
461461 let bd = if ((aC == 0))
462462 then 0
463463 else fraction(bV, aA(v), aC)
464464 (bM ++ [G(at(v), bd), IntegerEntry(ad(ae, v), (al(ae, v) + bd))])
465465 }
466466
467467 let bi = R
468468 let bj = size(bi)
469469 let bk = nil
470470 func bl (bm,bn) = if ((bn >= bj))
471471 then bm
472472 else aU(bm, bi[bn])
473473
474474 func bo (bm,bn) = if ((bn >= bj))
475475 then bm
476- else throw("List size exceeds 7")
476+ else throw("List size exceeds 20")
477477
478- bo(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7)
478+ bo(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
479479 }
480480 let bW = if ((i != bR))
481481 then [G(ay(bR), -(aO)), G(ay(i), (bO + aO))]
482482 else [G(ay(i), bO)]
483483 ((bC ++ aT) ++ bW)
484484 }
485485 }
486486 else throw("Strict value is not equal to itself.")
487487 }
488488 else throw("Strict value is not equal to itself.")
489489 }
490490
491491
492492 @Callable(J)
493493 func totalGvires () = $Tuple2(nil, aa(-((q - l)), aC))
494494
495495
496496
497497 @Callable(J)
498498 func shareProfitManually () = {
499499 let bQ = K("share_dividends_manually")
500500 if ((bQ == bQ))
501501 then {
502502 let bX = u(J.payments[0].assetId)
503503 if (!(contains(Q, bX)))
504504 then throw("bad profit token")
505505 else {
506506 let bY = J.payments[0].amount
507507 [G(at(bX), bY), G(au(bX), bY)]
508508 }
509509 }
510510 else throw("Strict value is not equal to itself.")
511511 }
512512
513513
514514
515515 @Callable(J)
516516 func shareProfitFromReserves () = bp()
517517
518518
519519
520520 @Callable(J)
521521 func init (n,bZ) = [F(m, n), F(j, bZ)]
522522
523523
524524
525525 @Callable(J)
526526 func init2 () = if ((J.caller != this))
527527 then throw("only self can continue")
528528 else [B(k, q)]
529529
530530
531531
532532 @Callable(J)
533533 func lockFor (ae,i) = {
534534 let bQ = y(if ((toString(J.caller) != ae))
535535 then (J.caller != O)
536536 else false, "only main and user directly can do")
537537 if ((bQ == bQ))
538538 then bN(ae, I(J), i)
539539 else throw("Strict value is not equal to itself.")
540540 }
541541
542542
543543
544544 @Callable(J)
545545 func withdrawUnlockedFor (ae) = {
546546 let bQ = if (y(if ((toString(J.caller) != ae))
547547 then (J.caller != O)
548548 else false, "only main and user directly can do"))
549549 then K("withdraw_unlocked_vires")
550550 else false
551551 if ((bQ == bQ))
552552 then {
553553 let ca = addressFromStringValue(ae)
554554 let cb = aG(ae)
555555 let aH = cb._1
556556 let aK = cb._2
557557 let aN = cb._3
558558 let aM = cb._4
559559 let bz = cb._5
560560 if ((0 >= aN))
561561 then nil
562562 else {
563563 let cc = if (aE(ae))
564564 then {
565565 let cd = aP(ae)
566566 let aS = cd._1
567567 let bD = cd._2
568568 let bC = [DeleteEntry(ak(ae)), DeleteEntry(aj(ae)), DeleteEntry(ai(ae)), DeleteEntry(ah(ae)), DeleteEntry(ag(ae)), H(aw, -(aN))]
569569 let aT = {
570570 func aU (bM,bF) = {
571571 let ce = bF
572572 let v = ce._1
573573 let bH = ce._2
574574 let bI = ce._3
575575 let bJ = ce._4
576576 (bM ++ [DeleteEntry(af(ae, v)), IntegerEntry(ad(ae, v), -(bI)), IntegerEntry(at(v), fraction(aA(v), (aC - aN), aC))])
577577 }
578578
579579 let bi = bD
580580 let bj = size(bi)
581581 let bk = nil
582582 func bl (bm,bn) = if ((bn >= bj))
583583 then bm
584584 else aU(bm, bi[bn])
585585
586586 func bo (bm,bn) = if ((bn >= bj))
587587 then bm
588- else throw("List size exceeds 7")
588+ else throw("List size exceeds 20")
589589
590- bo(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7)
590+ bo(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
591591 }
592592 (bC ++ aT)
593593 }
594594 else [G(ai(ae), aN)]
595595 (cc ++ [G(ay(ar(ae)), -(aN)), G(ax, -(aN)), ScriptTransfer(ca, aN, s)])
596596 }
597597 }
598598 else throw("Strict value is not equal to itself.")
599599 }
600600
601601
602602
603603 @Callable(J)
604604 func claimProfit (cf,cg,ch) = {
605605 let ci = if ((cf == cg))
606606 then true
607607 else {
608608 let c = getString(this, ("delegation_claim_" + cf))
609609 if ($isInstanceOf(c, "String"))
610610 then {
611611 let p = c
612612 let cj = split(p, "|")
613613 if ((cg != cj[0]))
614614 then throw(("no delegation rights for " + cg))
615615 else if (if (ch)
616616 then (cj[1] != "1")
617617 else false)
618618 then throw("attempting to relock while it's not allowed")
619619 else true
620620 }
621621 else throw(("delegation not configured for " + cf))
622622 }
623623 let bQ = if (if (P(J))
624624 then K("claim_dividends")
625625 else false)
626626 then ci
627627 else false
628628 if ((bQ == bQ))
629629 then {
630630 let ck = addressFromStringValue(cg)
631631 let cl = aP(cf)
632632 let aS = cl._1
633633 let bD = cl._2
634634 let cm = if (ch)
635635 then bN(cf, 0, ar(cf))
636636 else nil
637637 let aT = {
638638 func aU (bM,bF) = {
639639 let cn = bF
640640 let v = cn._1
641641 let bH = cn._2
642642 let bI = cn._3
643643 let bJ = cn._4
644644 (bM ++ [G(af(cf, v), bI), G(av(v), bI), ScriptTransfer(ck, bI, t(v))])
645645 }
646646
647647 let bi = bD
648648 let bj = size(bi)
649649 let bk = nil
650650 func bl (bm,bn) = if ((bn >= bj))
651651 then bm
652652 else aU(bm, bi[bn])
653653
654654 func bo (bm,bn) = if ((bn >= bj))
655655 then bm
656- else throw("List size exceeds 7")
656+ else throw("List size exceeds 20")
657657
658- bo(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7)
658+ bo(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bl(bk, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
659659 }
660660 (cm ++ aT)
661661 }
662662 else throw("Strict value is not equal to itself.")
663663 }
664664
665665
666666
667667 @Callable(J)
668668 func setClaimDelegation (co,ch) = {
669669 let bQ = K("set_delegation_claim")
670670 if ((bQ == bQ))
671671 then if (!(isDefined(addressFromString(co))))
672672 then throw("bad address")
673673 else [StringEntry(("delegation_claim_" + toString(J.caller)), ((co + "|") + (if (ch)
674674 then "1"
675675 else "0")))]
676676 else throw("Strict value is not equal to itself.")
677677 }
678678
679679
680680
681681 @Callable(J)
682682 func removeClaimDelegation () = {
683683 let bQ = K("set_delegation_claim")
684684 if ((bQ == bQ))
685685 then [DeleteEntry(("delegation_claim_" + toString(J.caller)))]
686686 else throw("Strict value is not equal to itself.")
687687 }
688688
689689
690690
691691 @Callable(J)
692692 func userPower (ae) = $Tuple2(nil, as(ae))
693693
694694

github/deemru/w8io/0e76f2f 
94.72 ms