tx · 3F7vGhAhryCexmY6UEx2JvptGAn2849TUBDXxUjqV8Az

3MwukwUkp3PsyCrkjMgqiAnSfc1hBD5FQhH:  -0.02300000 Waves

2023.03.15 01:01 [2490286] smart account 3MwukwUkp3PsyCrkjMgqiAnSfc1hBD5FQhH > SELF 0.00000000 Waves

{ "type": 13, "id": "3F7vGhAhryCexmY6UEx2JvptGAn2849TUBDXxUjqV8Az", "fee": 2300000, "feeAssetId": null, "timestamp": 1678831309192, "version": 2, "chainId": 84, "sender": "3MwukwUkp3PsyCrkjMgqiAnSfc1hBD5FQhH", "senderPublicKey": "5JqBVJpMCyD7dJLJttqYjL6CmJc4zahBHSFjFb7qQTga", "proofs": [ "4px3PsK6tZRVMUJuXEfByW7aqeK4Yyrpos7XFmbHPR69tkh7jsvfv816GZ6jdHRdunzTaCAGtuAHyKRLp1M7EqQn" ], "script": "base64:BgIhCAISBAoCAQESBgoECAgICBIDCgEYEgASAwoBCBIDCgEBRAADU0VQAgFfAA5fbWluTG9ja3BlcmlvZAABAA1fdW5pdERlY2ltYWxzAIDC1y8ADl9taW5Mb2NrQW1vdW50CQBoAgABBQ1fdW5pdERlY2ltYWxzAA5fbWF4TG9ja0Ftb3VudAkAaAIA6AcFDV91bml0RGVjaW1hbHMAA19EdACAuJkpAQRfUHB5AQpsb2NrUGVyaW9kCQBrAwUNX3VuaXREZWNpbWFscwDtAgUKbG9ja1BlcmlvZAANX2luY3JlbWVudFJlZgkAaAIAwIQ9BQ1fdW5pdERlY2ltYWxzAA5fcGVyY2VudGFnZUZlZQkAawMFDV91bml0RGVjaW1hbHMACgBkABpfcGVyY2VudGFnZVJlZHVjdGlvbkZhY3RvcgIpQ3VycmVudF9QZXJjZW50YWdlUmVkdWN0aW9uX0ZhY3Rvcl9Gb3JfTXIAA19NcgIMTWludGluZ19SYXRlAAxfc3Rhd0Fzc2V0SWQCDFN0YXdfQXNzZXRJZAAIX21hbmFnZXICB21hbmFnZXIABF9EZngCA0RmeAAVX2NpcmN1bGF0aW9uSW5jckluZGV4AhlDaXJjdWxhdGlvbkluY3JlbWVudEluZGV4AA5fbGVzc2VlQWRkcmVzcwIJTGVhc2VOb2RlABpfdXNlckVtaXNzaW9uQW1vdW50Q2xhaW1lZAIVRW1pc3Npb25BbW91bnRDbGFpbWVkABtfdXNlckNhbkNsYWltRW1pc3Npb25BbW91bnQCFkNhbkNsYWltRW1pc3Npb25BbW91bnQADF91c2VyQWRkcmVzcwINV2FsbGV0QWRkcmVzcwAUX3VzZXJMb2NhbEluZGV4Q291bnQCFFRvdGFsRW50cnlJbmRleENvdW50ABBfdXNlclRvdGFsTG9ja2VkAgtUb3RhbExvY2tlZAANX2xvY2tEdXJhdGlvbgIMTG9ja0R1cmF0aW9uAApfbG9ja0luZGV4Ag9HbG9iYWxMb2NrSW5kZXgAB19sb2NrSWQCDkxvY2tJZGVudGlmaWVyAAxfd2F2ZXNBbW91bnQCDUFtb3VudEluV2F2ZXMAC19zdGF3QW1vdW50AgxBbW91bnRJblN0YXcADV9zdGF3TFBBbW91bnQCDkFtb3VudEluU3Rhd0xQAAVfdHhJZAIEVFhJRAANX2xvY2tBdEhlaWdodAIMTG9ja0F0SGVpZ2h0ABRfbG9ja1BlcmlvZEluTWlsaVNlYwIUTG9jS1BlcmlvZEluTWlsbGlTZWMAEl90b3RhbFdhdmVzQ2xhaW1lZAIRVG90YWxXYXZlc0NsYWltZWQAD191c2VyTGVhc2VTdGF0ZQIKTGVhc2VTdGF0ZQAKX3RvdGFsU3RhdwIPVG90YWxTdGF3TWludGVkAA5fdG90YWxXYXZlc1JlZgIQVG90YWxXYXZlc0xvY2tlZAAMX3RvdGFsU3Rhd0xQAgtUb3RhbFN0YXdMUAARX2dsb2JhbEluZGV4Q291bnQCCkluZGV4Q291bnQBBV9nZXRJAQNrZXkJAJoIAgUEdGhpcwUDa2V5AQVfZ2V0UwEDa2V5CQCdCAIFBHRoaXMFA2tleQEFX2dldEIBA2tleQkAmwgCBQR0aGlzBQNrZXkBBl9nZXRCVgEDa2V5CQEFdmFsdWUBCQCbCAIFBHRoaXMFA2tleQEGX2dldElWAQNrZXkJAQV2YWx1ZQEJAJoIAgUEdGhpcwUDa2V5AQZfZ2V0U1YBA2tleQkBBXZhbHVlAQkAnQgCBQR0aGlzBQNrZXkBDF9zZXRQYXJhbVZhbAIDa2V5CmRlZmF1bHRWYWwEByRtYXRjaDAFCmRlZmF1bHRWYWwDCQABAgUHJG1hdGNoMAIGU3RyaW5nBApkZWZhdWx0VmFsBQckbWF0Y2gwAwkBCWlzRGVmaW5lZAEJAQVfZ2V0UwEFA2tleQkBBl9nZXRTVgEFA2tleQUKZGVmYXVsdFZhbAMJAAECBQckbWF0Y2gwAgNJbnQECmRlZmF1bHRWYWwFByRtYXRjaDADCQEJaXNEZWZpbmVkAQkBBV9nZXRJAQUDa2V5CQEGX2dldElWAQUDa2V5BQpkZWZhdWx0VmFsAwkAAQIFByRtYXRjaDACB0Jvb2xlYW4ECmRlZmF1bHRWYWwFByRtYXRjaDADCQEJaXNEZWZpbmVkAQkBBV9nZXRCAQUDa2V5CQEGX2dldEJWAQUDa2V5BQpkZWZhdWx0VmFsCQACAQkArAICAh12YWx1ZSB0eXBlIG5vdCBzdXBwb3J0ZWQgZm9yIAUDa2V5AQ9fdGhyb3dPclJldHVyblMCA3ZhbAVlcnJvcgQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACBlN0cmluZwQDdmFsBQckbWF0Y2gwBQN2YWwJAAIBBQVlcnJvcgEPX3Rocm93T3JSZXR1cm5JAgN2YWwFZXJyb3IEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAgNJbnQEA3ZhbAUHJG1hdGNoMAUDdmFsCQACAQUFZXJyb3IBEl90aHJvd09yUmV0dXJuQm9vbAIDdmFsBWVycm9yBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQDdmFsBQckbWF0Y2gwBQN2YWwJAAIBBQVlcnJvcgEJX3dyaXRlSW50AgNrZXkFdmFsdWUDCQBmAgAABQV2YWx1ZQkAAgEJAKwCAgkArAICCQCsAgICF3dyaXRpbmcgbmVnYXRpdmUgdmFsdWUgCQCkAwEFBXZhbHVlAgkgZm9yIGtleSAFA2tleQkBDEludGVnZXJFbnRyeQIFA2tleQUFdmFsdWUBCV93cml0ZVN0cgIDa2V5BXZhbHVlAwkAAAICASAFBXZhbHVlCQACAQkArAICAhh3cml0aW5nIGFuIGVtcHR5IHN0cmluZyAFBXZhbHVlCQELU3RyaW5nRW50cnkCBQNrZXkFBXZhbHVlAQhfdGhyb3dJZgIJY29uZGl0aW9uBWVycm9yAwUJY29uZGl0aW9uCQACAQUFZXJyb3IGARFfd3JpdGVHbG9iYWxQYXJhbQIDa2V5Bl92YWx1ZQQHJG1hdGNoMAUGX3ZhbHVlAwkAAQIFByRtYXRjaDACA0ludAQGX3ZhbHVlBQckbWF0Y2gwBAVlbnRyeQkAuQkCCQDMCAICAiVkCQDMCAIJAKQDAQUGX3ZhbHVlBQNuaWwFA1NFUAkBCV93cml0ZVN0cgIFA2tleQUFZW50cnkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAZfdmFsdWUFByRtYXRjaDAEBWVudHJ5CQC5CQIJAMwIAgICJXMJAMwIAgUGX3ZhbHVlBQNuaWwFA1NFUAkBCV93cml0ZVN0cgIFA2tleQUFZW50cnkDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQGX3ZhbHVlBQckbWF0Y2gwBAVlbnRyeQkAuQkCCQDMCAICAiViCQDMCAIJAKUDAQUGX3ZhbHVlBQNuaWwFA1NFUAkBCV93cml0ZVN0cgIFA2tleQUFZW50cnkJAAIBAhJ0eXBlIG5vdCBzdXBwb3J0ZWQBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBA2tleQQJX3Jhd1ZhbHVlCQEPX3Rocm93T3JSZXR1cm5TAgkBBV9nZXRTAQUDa2V5Ag9lbnRyeSBub3QgZm91bmQDCQAAAgUJX3Jhd1ZhbHVlBQlfcmF3VmFsdWUEAXgJALUJAgUJX3Jhd1ZhbHVlBQNTRVAED2Zvcm1hdFNwZWNpZmllcgkAsgICCQCRAwIFAXgAAAABBAxfdmFsdWVTdHJpbmcJAJEDAgUBeAkAZQIJAJADAQUBeAABBAZfdmFsdWUDCQAAAgUPZm9ybWF0U3BlY2lmaWVyAgFzBQxfdmFsdWVTdHJpbmcDCQAAAgUPZm9ybWF0U3BlY2lmaWVyAgFkCQENcGFyc2VJbnRWYWx1ZQEFDF92YWx1ZVN0cmluZwMJAAACBQ9mb3JtYXRTcGVjaWZpZXICAWIJANkEAQUMX3ZhbHVlU3RyaW5nCQACAQkArAICAiNjb3VsZCBub3QgcGFyc2UgcmVnaXN0cnkgdmFsdWUgZm9yIAUDa2V5BQZfdmFsdWUJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BDl9kYXlzVG9NaWxpU2VjAQRkYXlzBAVjaGVjawkBCF90aHJvd0lmAgkAZwIFBGRheXMAAAIVaW52YWxpZCBsb2NraW5nIGRheXMhAwkAAAIFBWNoZWNrBQVjaGVjawkAaAIFBGRheXMFA19EdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgERX3dyaXRlQ29uc3RTdHJpbmcCA2tleQV2YWx1ZQMJAQEhAQkBCWlzRGVmaW5lZAEJAQVfZ2V0UwEFA2tleQkBCV93cml0ZVN0cgIFA2tleQUFdmFsdWUJAAIBCQCsAgICG2VudHJ5IGFscmVhZHkgaW5pdGlhbGl6ZWQ6IAUDa2V5ARJfd3JpdGVDb25zdEludGVnZXICA2tleQV2YWx1ZQMJAQEhAQkBCWlzRGVmaW5lZAEJAQVfZ2V0UwEFA2tleQkBCV93cml0ZUludAIFA2tleQUFdmFsdWUJAAIBCQCsAgICHCBlbnRyeSBhbHJlYWR5IGluaXRpYWxpemVkOiAFA2tleQEMX29ubHlNYW5hZ2VyAQFpBAlyYXdTdHJpbmcJAQ9fdGhyb3dPclJldHVyblMCCQEFX2dldFMBBQhfbWFuYWdlcgIRbWFuYWdlciBub3QgZm91bmQDCQAAAgUJcmF3U3RyaW5nBQlyYXdTdHJpbmcEB21hbmFnZXIEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUJcmF3U3RyaW5nAwkAAQIFByRtYXRjaDACBlN0cmluZwQDdmFsBQckbWF0Y2gwBQN2YWwCFWZhaWxlZCB0byBnZXQgbWFuYWdlcgMJAAACBQdtYW5hZ2VyBQdtYW5hZ2VyCQEIX3Rocm93SWYCCQECIT0CCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMFB21hbmFnZXICFmFkZHJlc3Mgbm90IGF1dGhvcml6ZWQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BBF9hYnMBA3ZhbAMJAGYCAAAFA3ZhbAkBAS0BBQN2YWwFA3ZhbAEQX3ZhbGlkYXRlQWRkcmVzcwEHYWRkcmVzcwQHJG1hdGNoMAUHYWRkcmVzcwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEB2FkZHJlc3MFByRtYXRjaDAECF9hZGRyZXNzCQCmCAEFB2FkZHJlc3MEByRtYXRjaDEFCF9hZGRyZXNzAwkAAQIFByRtYXRjaDECB0FkZHJlc3MECF9hZGRyZXNzBQckbWF0Y2gxBgkAAgECD2ludmFsaWQgYWRkcmVzcwMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAdhZGRyZXNzBQckbWF0Y2gwBAhfYWRkcmVzcwkApwgBBQdhZGRyZXNzBAckbWF0Y2gxBQhfYWRkcmVzcwMJAAECBQckbWF0Y2gxAgdBZGRyZXNzBAhfYWRkcmVzcwUHJG1hdGNoMQYJAAIBAhJpbnZhbGlkIHB1YmxpYyBrZXkJAAIBAhJpbnZhbGlkIGlucHV0IHR5cGUBDl92YWxpZGF0ZUFzc2V0AQdhc3NldElEBAckbWF0Y2gwCQDsBwEJANkEAQUHYXNzZXRJRAMJAAECBQckbWF0Y2gwAgVBc3NldAQFYXNzZXQFByRtYXRjaDAGCQACAQkArAICAhJpbnZhbGlkIGFzc2V0IGlkOiAFB2Fzc2V0SUQBCl9jb21wdXRlTXIABBBjdXJyZW50Q2lyY0luZGV4CQEPX3Rocm93T3JSZXR1cm5JAgkBBV9nZXRJAQUVX2NpcmN1bGF0aW9uSW5jckluZGV4AiZpbmNyZW1lbnQgaW5kZXggbm90IHByZXZpb3VzbHkgZGVmaW5lZAMJAAACBRBjdXJyZW50Q2lyY0luZGV4BRBjdXJyZW50Q2lyY0luZGV4BAtzdGF3QXNzZXRJZAkBD190aHJvd09yUmV0dXJuUwIJAQVfZ2V0UwEFDF9zdGF3QXNzZXRJZAIeYXNzZXQgaWQgbm90IHByZXZpb3VseSBkZWZpbmVkAwkAAAIFC3N0YXdBc3NldElkBQtzdGF3QXNzZXRJZAQVc3Rhd0NpcmN1bGF0aW5nU3VwcGx5BAckbWF0Y2gwCQDsBwEJANkEAQULc3Rhd0Fzc2V0SWQDCQABAgUHJG1hdGNoMAIFQXNzZXQEBWFzc2V0BQckbWF0Y2gwCAUFYXNzZXQIcXVhbnRpdHkJAAIBCQCsAgICFGFzc2V0IG5vdCBmb3VuZCBmb3IgBQtzdGF3QXNzZXRJZAQNdW5pdEluY3JlbWVudAkAaQIJAQRfYWJzAQkAZQIFFXN0YXdDaXJjdWxhdGluZ1N1cHBseQUNX2luY3JlbWVudFJlZgUNX2luY3JlbWVudFJlZgQXbmV3Q2lyY3VsYXRpb25JbmNySW5kZXgDCQBmAgUNdW5pdEluY3JlbWVudAUQY3VycmVudENpcmNJbmRleAkAZAIFDXVuaXRJbmNyZW1lbnQFEGN1cnJlbnRDaXJjSW5kZXgFEGN1cnJlbnRDaXJjSW5kZXgECWN1cnJlbnRNcgkBD190aHJvd09yUmV0dXJuSQIFA19NcgIkbWluaXRpbmcgcmF0ZSBub3QgcHJldmlvdXNseSBkZWZpbmVkAwkAAAIFF25ld0NpcmN1bGF0aW9uSW5jckluZGV4BRBjdXJyZW50Q2lyY0luZGV4BQljdXJyZW50TXIEEm5ld3JlZHVjdGlvbkZhY3RvcgkAZAIJAQ9fdGhyb3dPclJldHVybkkCBRpfcGVyY2VudGFnZVJlZHVjdGlvbkZhY3RvcgIncmVkdWN0aW9uIGZhY3RvciBub3QgcHJldmlvdXNseSBkZWZpbmVkAAoEDG5ld0N1cnJlbnRNcgkAZQIFCWN1cnJlbnRNcgkAawMFCWN1cnJlbnRNcgUSbmV3cmVkdWN0aW9uRmFjdG9yAGQEBnN0b3JlMQkBCV93cml0ZUludAIFA19NcgUMbmV3Q3VycmVudE1yAwkAAAIFBnN0b3JlMQUGc3RvcmUxBAZzdG9yZTIJAQlfd3JpdGVJbnQCBRpfcGVyY2VudGFnZVJlZHVjdGlvbkZhY3RvcgUSbmV3cmVkdWN0aW9uRmFjdG9yAwkAAAIFBnN0b3JlMgUGc3RvcmUyBAZzdG9yZTMJAQlfd3JpdGVJbnQCBRVfY2lyY3VsYXRpb25JbmNySW5kZXgFF25ld0NpcmN1bGF0aW9uSW5jckluZGV4AwkAAAIFBnN0b3JlMwUGc3RvcmUzBQxuZXdDdXJyZW50TXIJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BEl91cGRhdGVHbG9iYWxFbnRyeQQLd2F2ZXNBbW91bnQKc3Rhd0Ftb3VudAZzdGF3UEwKaW5kZXhDb3VudAQaX25ld0dsb2JhbFRvdGFsV2F2ZXNBbXRSZWYJAGQCCQEPX3Rocm93T3JSZXR1cm5JAgkBBV9nZXRJAQUOX3RvdGFsV2F2ZXNSZWYCJ2dsb2JhbCB3YXZlcyBzdW0gbm90IHByZXZpb3VzbHkgZGVmaW5lZAULd2F2ZXNBbW91bnQEGV9uZXdHbG9iYWxUb3RhbFN0YXdNaW50ZWQJAGQCCQEPX3Rocm93T3JSZXR1cm5JAgkBBV9nZXRJAQUKX3RvdGFsU3RhdwIoZ29iYWwgc3RhdyBtaW50ZWQgbm90IHByZXZpb3VzbHkgZGVmaW5lZAUKc3Rhd0Ftb3VudAQVX25ld0dsb2JhbFRvdGFsU3Rhd1BMCQBkAgkBD190aHJvd09yUmV0dXJuSQIJAQVfZ2V0SQEFDF90b3RhbFN0YXdMUAIkZ2xvYmFsIHN0YXdQTCBub3QgcHJldmlvdXNseSBkZWZpbmVkBQZzdGF3UEwEE19uZXdHbG9iYUluZGV4Q291bnQJAGQCCQEPX3Rocm93T3JSZXR1cm5JAgkBBV9nZXRJAQURX2dsb2JhbEluZGV4Q291bnQCKWdsb2JhbCBpbmRleCBjb3VudCBub3QgcHJldmlvdXNseSBkZWZpbmVkBQppbmRleENvdW50CQDMCAIJAQlfd3JpdGVJbnQCBQ5fdG90YWxXYXZlc1JlZgUaX25ld0dsb2JhbFRvdGFsV2F2ZXNBbXRSZWYJAMwIAgkBCV93cml0ZUludAIFCl90b3RhbFN0YXcFGV9uZXdHbG9iYWxUb3RhbFN0YXdNaW50ZWQJAMwIAgkBCV93cml0ZUludAIFDF90b3RhbFN0YXdMUAUVX25ld0dsb2JhbFRvdGFsU3Rhd1BMCQDMCAIJAQlfd3JpdGVJbnQCBRFfZ2xvYmFsSW5kZXhDb3VudAUTX25ld0dsb2JhSW5kZXhDb3VudAUDbmlsARJfcmVnaXN0ZXJVc2VyRW50cnkNDXRyYW5zYWN0aW9uSUQLdXNlckFkZHJlc3MMbG9ja0R1cmF0aW9uEmxvY2tEdXJhdGlvbkluTWlsaQlsb2NrSW5kZXgLd2F2ZXNBbW91bnQKc3Rhd0Ftb3VudAxzdGF3TFBBbW91bnQMbG9ja0F0SGVpZ2h0BmxvY2tJZAt0b3RhbExvY2tlZA9sb2NhbEluZGV4Q291bnQKbGVhc2VTdGF0ZQQIX3R4SWRLZXkJALkJAgkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFBV90eElkBQNuaWwFA1NFUAQQX2xvY2tEdXJhdGlvbktleQkAuQkCCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIFDXRyYW5zYWN0aW9uSUQJAMwIAgUNX2xvY2tEdXJhdGlvbgUDbmlsBQNTRVAEDV9sb2NrSW5kZXhLZXkJALkJAgkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFCl9sb2NrSW5kZXgFA25pbAUDU0VQBA9fd2F2ZXNBbW91bnRLZXkJALkJAgkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFDF93YXZlc0Ftb3VudAUDbmlsBQNTRVAEDl9zdGF3QW1vdW50S2V5CQC5CQIJAMwIAgULdXNlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBQtfc3Rhd0Ftb3VudAUDbmlsBQNTRVAEEF9zdGF3TFBBbW91bnRLZXkJALkJAgkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFDV9zdGF3TFBBbW91bnQFA25pbAUDU0VQBBBfbG9ja0F0SGVpZ2h0S2V5CQC5CQIJAMwIAgULdXNlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBQ1fbG9ja0F0SGVpZ2h0BQNuaWwFA1NFUAQKX2xvY2tJZEtleQkAuQkCCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIFDXRyYW5zYWN0aW9uSUQJAMwIAgUHX2xvY2tJZAUDbmlsBQNTRVAED190b3RhbExvY2tlZEtleQkAuQkCCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIFEF91c2VyVG90YWxMb2NrZWQFA25pbAUDU0VQBBJfbG9jYWxMb2NrSW5kZXhLZXkJALkJAgkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCBRRfdXNlckxvY2FsSW5kZXhDb3VudAUDbmlsBQNTRVAEF19sb2NrUGVyaW9kSW5NaWxpU2VjS2V5CQC5CQIJAMwIAgULdXNlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBRRfbG9ja1BlcmlvZEluTWlsaVNlYwUDbmlsBQNTRVAEFV90b3RhbFdhdmVzQ2xhaW1lZEtleQkAuQkCCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIFDXRyYW5zYWN0aW9uSUQJAMwIAgUSX3RvdGFsV2F2ZXNDbGFpbWVkBQNuaWwFA1NFUAQSX3VzZXJMZWFzZVN0YXRlS2V5CQC5CQIJAMwIAgULdXNlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBQ9fdXNlckxlYXNlU3RhdGUFA25pbAUDU0VQBAp0cnhJZEVudHJ5CQC5CQIJAMwIAgICJXMJAMwIAgUNdHJhbnNhY3Rpb25JRAUDbmlsBQNTRVAEEWxvY2tEdXJhdGlvbkVudHJ5CQC5CQIJAMwIAgICJWQJAMwIAgkApAMBBQxsb2NrRHVyYXRpb24FA25pbAUDU0VQBA5sb2NrSW5kZXhFbnRyeQkAuQkCCQDMCAICAiVkCQDMCAIJAKQDAQUJbG9ja0luZGV4BQNuaWwFA1NFUAQQd2F2ZXNBbW91bnRFbnRyeQkAuQkCCQDMCAICAiVkCQDMCAIJAKQDAQULd2F2ZXNBbW91bnQFA25pbAUDU0VQBA9zdGF3QW1vdW50RW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFCnN0YXdBbW91bnQFA25pbAUDU0VQBBFzdGF3TFBBbW91bnRFbnRyeQkAuQkCCQDMCAICAiVkCQDMCAIJAKQDAQUMc3Rhd0xQQW1vdW50BQNuaWwFA1NFUAQRbG9ja0F0SGVpZ2h0RW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFDGxvY2tBdEhlaWdodAUDbmlsBQNTRVAEC2xvY2tJZEVudHJ5CQC5CQIJAMwIAgICJWIJAMwIAgUGbG9ja0lkBQNuaWwFA1NFUAQQdG90YWxMb2NrZWRFbnRyeQkAuQkCCQDMCAICAiVkCQDMCAIJAKQDAQULdG90YWxMb2NrZWQFA25pbAUDU0VQBBN1c2VyTG9jYWxJbmRleEVudHJ5CQC5CQIJAMwIAgICJWQJAMwIAgkApAMBBQ9sb2NhbEluZGV4Q291bnQFA25pbAUDU0VQBBhsb2NrUGVyaW9kSW5NaWxpU2VjRW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFEmxvY2tEdXJhdGlvbkluTWlsaQUDbmlsBQNTRVAEFnRvdGFsV2F2ZXNDbGFpbWVkRW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEAAAUDbmlsBQNTRVAEE3VzZXJMZWFzZVN0YXRlRW50cnkJALkJAgkAzAgCAgIlcwkAzAgCBQpsZWFzZVN0YXRlBQNuaWwFA1NFUAkAzAgCCQERX3dyaXRlQ29uc3RTdHJpbmcCBQhfdHhJZEtleQUKdHJ4SWRFbnRyeQkAzAgCCQERX3dyaXRlQ29uc3RTdHJpbmcCBQ1fbG9ja0luZGV4S2V5BQ5sb2NrSW5kZXhFbnRyeQkAzAgCCQEJX3dyaXRlU3RyAgUSX2xvY2FsTG9ja0luZGV4S2V5BRN1c2VyTG9jYWxJbmRleEVudHJ5CQDMCAIJAQlfd3JpdGVTdHICBQ9fdG90YWxMb2NrZWRLZXkFEHRvdGFsTG9ja2VkRW50cnkJAMwIAgkBEV93cml0ZUNvbnN0U3RyaW5nAgUQX2xvY2tEdXJhdGlvbktleQURbG9ja0R1cmF0aW9uRW50cnkJAMwIAgkBEV93cml0ZUNvbnN0U3RyaW5nAgUXX2xvY2tQZXJpb2RJbk1pbGlTZWNLZXkFGGxvY2tQZXJpb2RJbk1pbGlTZWNFbnRyeQkAzAgCCQERX3dyaXRlQ29uc3RTdHJpbmcCBQ9fd2F2ZXNBbW91bnRLZXkFEHdhdmVzQW1vdW50RW50cnkJAMwIAgkBEV93cml0ZUNvbnN0U3RyaW5nAgUOX3N0YXdBbW91bnRLZXkFD3N0YXdBbW91bnRFbnRyeQkAzAgCCQEJX3dyaXRlU3RyAgUQX3N0YXdMUEFtb3VudEtleQURc3Rhd0xQQW1vdW50RW50cnkJAMwIAgkBCV93cml0ZVN0cgIFFV90b3RhbFdhdmVzQ2xhaW1lZEtleQUWdG90YWxXYXZlc0NsYWltZWRFbnRyeQkAzAgCCQERX3dyaXRlQ29uc3RTdHJpbmcCBRBfbG9ja0F0SGVpZ2h0S2V5BRFsb2NrQXRIZWlnaHRFbnRyeQkAzAgCCQERX3dyaXRlQ29uc3RTdHJpbmcCBQpfbG9ja0lkS2V5BQtsb2NrSWRFbnRyeQkAzAgCCQEJX3dyaXRlU3RyAgUSX3VzZXJMZWFzZVN0YXRlS2V5BRN1c2VyTGVhc2VTdGF0ZUVudHJ5BQNuaWwBB19zdGF3TUYCCmxvY2tQZXJpb2QPY29sbGF0ZXJhbFdhdmVzBAtfYWRqdXN0ZWRNcgkBCl9jb21wdXRlTXIACQBoAgkAawMFDV91bml0RGVjaW1hbHMJAGgCBQNfRHQFC19hZGp1c3RlZE1yCQEEX1BweQEFCmxvY2tQZXJpb2QFD2NvbGxhdGVyYWxXYXZlcwESX2VtaXNzaW9uUmF0ZVdhdmVzAgpsb2NrUGVyaW9kCmNvbGxhdGVyYWwED2V4dGVuc2lvbkZhY3RvcgkAawMFCmxvY2tQZXJpb2QADwAKCQBoAgkAaQIFCmNvbGxhdGVyYWwJAGUCCQBoAgUKbG9ja1BlcmlvZAUPZXh0ZW5zaW9uRmFjdG9yBQpsb2NrUGVyaW9kBQNfRHQBEF9pbmNyVG90YWxTdGF3TFABBmFtb3VudAQJb2xkU3Rhd0xQCQEPX3Rocm93T3JSZXR1cm5JAgkBBV9nZXRJAQUMX3RvdGFsU3Rhd0xQAiBjb3VsZCBub3QgZ2V0IHRoZSBydW5uaW5nIFN0YXdMUAkAzAgCCQEJX3dyaXRlSW50AgUMX3RvdGFsU3Rhd0xQCQBkAgUJb2xkU3Rhd0xQBQZhbW91bnQFA25pbAEQX2RlY3JUb3RhbFN0YXdMUAEGYW1vdW50BAlvbGRTdGF3TFAJAQ9fdGhyb3dPclJldHVybkkCCQEFX2dldEkBBQxfdG90YWxTdGF3TFACIGNvdWxkIG5vdCBnZXQgdGhlIHJ1bm5pbmcgU3Rhd0xQCQDMCAIJAQlfd3JpdGVJbnQCBQxfdG90YWxTdGF3TFAJAGUCBQlvbGRTdGF3TFAFBmFtb3VudAUDbmlsARJfaW5jclRvdGFsV2F2ZXNSZWYBBmFtb3VudAQLb2xkV2F2ZXNSZWYJAQ9fdGhyb3dPclJldHVybkkCCQEFX2dldEkBBQ5fdG90YWxXYXZlc1JlZgIgY291bGQgbm90IGdldCB0b3RhbCBsb2NrZWQgd2F2ZXMJAMwIAgkBCV93cml0ZUludAIFDl90b3RhbFdhdmVzUmVmCQBkAgULb2xkV2F2ZXNSZWYFBmFtb3VudAUDbmlsARJfZGVjclRvdGFsV2F2ZXNSZWYBBmFtb3VudAQLb2xkV2F2ZXNSZWYJAQ9fdGhyb3dPclJldHVybkkCCQEFX2dldEkBBQ5fdG90YWxXYXZlc1JlZgIgY291bGQgbm90IGdldCB0b3RhbCBsb2NrZWQgd2F2ZXMJAMwIAgkBCV93cml0ZUludAIFDl90b3RhbFdhdmVzUmVmCQBlAgULb2xkV2F2ZXNSZWYFBmFtb3VudAUDbmlsARBfZ2V0TmV3VGltZVN0YW1wAQtibG9ja0hlaWdodAQEdGltZQQHJG1hdGNoMAkA7QcBBQtibG9ja0hlaWdodAMJAAECBQckbWF0Y2gwAglCbG9ja0luZm8ECHRpbWVJbmZvBQckbWF0Y2gwCAUIdGltZUluZm8JdGltZXN0YW1wCQACAQIUY291bmxkIGdldCB0aW1lc3RhbXAFBHRpbWUGAWkBC2dldEVtaXNzaW9uAgpsb2NrUGVyaW9kCmNvbGxhdGVyYWwEBmNoZWNrMQkBDF9vbmx5TWFuYWdlcgEFAWkDCQAAAgUGY2hlY2sxBQZjaGVjazEJAJQKAgUDbmlsCQESX2VtaXNzaW9uUmF0ZVdhdmVzAgUKbG9ja1BlcmlvZAUKY29sbGF0ZXJhbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQRpbml0BAdtYW5hZ2VyA2RmeAdhc3NldElECWxlYXNlTm9kZQQUbWFuYWdlckFscmVhZHlFeGlzdHMDCQEJaXNEZWZpbmVkAQkBBV9nZXRTAQUIX21hbmFnZXIJAQxfb25seU1hbmFnZXIBBQFpBgMJAAACBRRtYW5hZ2VyQWxyZWFkeUV4aXN0cwUUbWFuYWdlckFscmVhZHlFeGlzdHMEBmNoZWNrMQkBEF92YWxpZGF0ZUFkZHJlc3MBBQdtYW5hZ2VyAwkAAAIFBmNoZWNrMQUGY2hlY2sxBAZjaGVjazIJARBfdmFsaWRhdGVBZGRyZXNzAQUDZGZ4AwkAAAIFBmNoZWNrMgUGY2hlY2syBAZjaGVjazMJARBfdmFsaWRhdGVBZGRyZXNzAQUJbGVhc2VOb2RlAwkAAAIFBmNoZWNrMwUGY2hlY2szBAZjaGVjazQJAQ5fdmFsaWRhdGVBc3NldAEFB2Fzc2V0SUQDCQAAAgUGY2hlY2s0BQZjaGVjazQEEGNpcmN1bGF0aW9uSW5kZXgJAQxfc2V0UGFyYW1WYWwCBRVfY2lyY3VsYXRpb25JbmNySW5kZXgAAAQXcGVyY2VudGFnZVJlZHVjdGlvbkluTXIJAQxfc2V0UGFyYW1WYWwCBRpfcGVyY2VudGFnZVJlZHVjdGlvbkZhY3RvcgAABAJNcgkBDF9zZXRQYXJhbVZhbAIFA19NcgUNX3VuaXREZWNpbWFscwQPdG90YWxTdGF3TWludGVkCQEMX3NldFBhcmFtVmFsAgUKX3RvdGFsU3RhdwAABBh0b3RhbFN0YXdMUEluQ2lyY3VsYXRpb24JAQxfc2V0UGFyYW1WYWwCBQxfdG90YWxTdGF3TFAAAAQQZ2xvYmFsSW5kZXhDb3VudAkBDF9zZXRQYXJhbVZhbAIFEV9nbG9iYWxJbmRleENvdW50AAAEDXRvdGFsV2F2ZXNSZWYJAQxfc2V0UGFyYW1WYWwCBQ5fdG90YWxXYXZlc1JlZgAACQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFCF9tYW5hZ2VyBQdtYW5hZ2VyCQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFBF9EZngFA2RmeAkAzAgCCQERX3dyaXRlR2xvYmFsUGFyYW0CBQxfc3Rhd0Fzc2V0SWQFB2Fzc2V0SUQJAMwIAgkBEV93cml0ZUdsb2JhbFBhcmFtAgUOX2xlc3NlZUFkZHJlc3MFCWxlYXNlTm9kZQkAzAgCCQERX3dyaXRlR2xvYmFsUGFyYW0CBRVfY2lyY3VsYXRpb25JbmNySW5kZXgFEGNpcmN1bGF0aW9uSW5kZXgJAMwIAgkBEV93cml0ZUdsb2JhbFBhcmFtAgUDX01yBQJNcgkAzAgCCQERX3dyaXRlR2xvYmFsUGFyYW0CBRpfcGVyY2VudGFnZVJlZHVjdGlvbkZhY3RvcgUXcGVyY2VudGFnZVJlZHVjdGlvbkluTXIJAMwIAgkBEV93cml0ZUdsb2JhbFBhcmFtAgUOX3RvdGFsV2F2ZXNSZWYFDXRvdGFsV2F2ZXNSZWYJAMwIAgkBEV93cml0ZUdsb2JhbFBhcmFtAgUMX3RvdGFsU3Rhd0xQBRh0b3RhbFN0YXdMUEluQ2lyY3VsYXRpb24JAMwIAgkBEV93cml0ZUdsb2JhbFBhcmFtAgUKX3RvdGFsU3RhdwUPdG90YWxTdGF3TWludGVkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQESbW9kaWZ5R2xvYmFsUGFyYW1zAQN2YWwEBmNoZWNrMQkBDF9vbmx5TWFuYWdlcgEFAWkDCQAAAgUGY2hlY2sxBQZjaGVjazEEBmNoZWNrMgkBCF90aHJvd0lmAgkAAAIJAJADAQUDdmFsAAICIltnbG9iYWxfa2V5LCB2YWx1ZV0gcGFpcnMgZXhwZWN0ZWQDCQAAAgUGY2hlY2syBQZjaGVjazIEA2tleQkAkQMCBQN2YWwAAAQHdmFsVHlwZQkAtgkBCQCRAwIFA3ZhbAABBAckbWF0Y2gwBQd2YWxUeXBlAwkAAQIFByRtYXRjaDACA0ludAQBeAUHJG1hdGNoMAQLdmFsaWRhdGVLZXkJAQhfdGhyb3dJZgIJAAACCQEFX2dldFMBBQNrZXkFBHVuaXQJAKwCAgkArAICAgRrZXkgBQNrZXkCDyBub3QgcmVjb2duaXplZAMJAAACBQt2YWxpZGF0ZUtleQULdmFsaWRhdGVLZXkJAMwIAgkBEV93cml0ZUdsb2JhbFBhcmFtAgUDa2V5BQF4BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQABAgUHJG1hdGNoMAIEVW5pdAQBeAUHJG1hdGNoMAQLdmFsaWRhdGVLZXkJAQhfdGhyb3dJZgIJAAACCQEFX2dldFMBBQNrZXkFBHVuaXQJAKwCAgkArAICAgRrZXkgBQNrZXkCDyBub3QgcmVjb2duaXplZAMJAAACBQt2YWxpZGF0ZUtleQULdmFsaWRhdGVLZXkEC3N0cmluZ1ZhbHVlCQCRAwIFA3ZhbAABBApyZWZBZGRyZXNzCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQECCF9tYW5hZ2VyBAZjaGVjazQEByRtYXRjaDEFCnJlZkFkZHJlc3MDCQABAgUHJG1hdGNoMQIGU3RyaW5nBAdzdHJUeXBlBQckbWF0Y2gxAwkAAAIJALECAQUHc3RyVHlwZQkAsQIBBQtzdHJpbmdWYWx1ZQkBEF92YWxpZGF0ZUFkZHJlc3MBBQtzdHJpbmdWYWx1ZQkBDl92YWxpZGF0ZUFzc2V0AQULc3RyaW5nVmFsdWUJAAIBAhh2YWx1ZSB0eXBlIG5vdCBzdXBwb3J0ZWQDCQAAAgUGY2hlY2s0BQZjaGVjazQJAMwIAgkBEV93cml0ZUdsb2JhbFBhcmFtAgUDa2V5BQtzdHJpbmdWYWx1ZQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQkArAICAhFmYWlsZWQgdG8gbW9kaWZ5IAkAkQMCBQN2YWwAAAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQpyZXZva2VMb2NrAAQGY2hlY2sxCQEMX29ubHlNYW5hZ2VyAQUBaQMJAAACBQZjaGVjazEFBmNoZWNrMQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBWNsYWltAQ10cmFuc2FjdGlvbklEBA1jYWxsZXJBZGRyZXNzCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMEDWNvbGxhdGVyYWxLZXkJALkJAgkAzAgCBQ1jYWxsZXJBZGRyZXNzCQDMCAIFDXRyYW5zYWN0aW9uSUQJAMwIAgUMX3dhdmVzQW1vdW50BQNuaWwFA1NFUAQNbG9ja3BlcmlvZEtleQkAuQkCCQDMCAIFDWNhbGxlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBQ1fbG9ja0R1cmF0aW9uBQNuaWwFA1NFUAQJbG9ja0lkS2V5CQC5CQIJAMwIAgUNY2FsbGVyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFB19sb2NrSWQFA25pbAUDU0VQBBNsb2NrcGVyaW9kSW5NaWxpS2V5CQC5CQIJAMwIAgUNY2FsbGVyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFFF9sb2NrUGVyaW9kSW5NaWxpU2VjBQNuaWwFA1NFUAQUdG90YWxXYXZlc0NsYWltZWRLZXkJALkJAgkAzAgCBQ1jYWxsZXJBZGRyZXNzCQDMCAIFDXRyYW5zYWN0aW9uSUQJAMwIAgUSX3RvdGFsV2F2ZXNDbGFpbWVkBQNuaWwFA1NFUAQPc3Rhd0xQQW1vdW50S2V5CQC5CQIJAMwIAgUNY2FsbGVyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFDV9zdGF3TFBBbW91bnQFA25pbAUDU0VQBA53YXZlc0Ftb3VudEtleQkAuQkCCQDMCAIFDWNhbGxlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBQxfd2F2ZXNBbW91bnQFA25pbAUDU0VQBBd1c2VyVG90YWxXYXZlc0xvY2tlZEtleQkAuQkCCQDMCAIFDWNhbGxlckFkZHJlc3MJAMwIAgUQX3VzZXJUb3RhbExvY2tlZAUDbmlsBQNTRVAEEXVzZXJMZWFzZVN0YXRlS2V5CQC5CQIJAMwIAgUNY2FsbGVyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFD191c2VyTGVhc2VTdGF0ZQUDbmlsBQNTRVAEDWxlYXNlU3RhdGVLZXkJALkJAgkAzAgCBQ1jYWxsZXJBZGRyZXNzCQDMCAIFDXRyYW5zYWN0aW9uSUQJAMwIAgUPX3VzZXJMZWFzZVN0YXRlBQNuaWwFA1NFUAQOZ2xvYmFsV2F2ZXNSZWYJAQZfZ2V0SVYBBQ5fdG90YWxXYXZlc1JlZgMJAAACBQ5nbG9iYWxXYXZlc1JlZgUOZ2xvYmFsV2F2ZXNSZWYEDGdsb2JhbFN0YXdQTAkBBl9nZXRJVgEFDF90b3RhbFN0YXdMUAMJAAACBQxnbG9iYWxTdGF3UEwFDGdsb2JhbFN0YXdQTAQGbG9ja0lkBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFCWxvY2tJZEtleQMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAF0BQckbWF0Y2gwBQF0CQACAQIWZmFpbGVkIHRvIGdldCBsZWFzZSBpZAMJAAACBQZsb2NrSWQFBmxvY2tJZAQUdXNlclRvdGFsV2F2ZXNMb2NrZWQEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUXdXNlclRvdGFsV2F2ZXNMb2NrZWRLZXkDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwBQF0CQACAQIwZmFpbGVkIHRvIGdldCB0b3RhbCB3YXZlcyBsb2NrZWQgYnkgdGhpcyBhZGRyZXNzAwkAAAIFFHVzZXJUb3RhbFdhdmVzTG9ja2VkBRR1c2VyVG90YWxXYXZlc0xvY2tlZAQLd2F2ZXNBbW91bnQEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUOd2F2ZXNBbW91bnRLZXkDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwBQF0CQACAQIgZmFpbGVkIHRvIGdldCB0b3RhbCB3YXZlcyBsb2NrZWQDCQAAAgULd2F2ZXNBbW91bnQFC3dhdmVzQW1vdW50BBF0b3RhbFdhdmVzQ2xhaW1lZAQHJG1hdGNoMAkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBRR0b3RhbFdhdmVzQ2xhaW1lZEtleQMJAAECBQckbWF0Y2gwAgNJbnQEAXQFByRtYXRjaDAFAXQJAAIBAiFmYWlsZWQgdG8gZ2V0IHRvdGFsIHdhdmVzIGNsYWltZWQDCQAAAgURdG90YWxXYXZlc0NsYWltZWQFEXRvdGFsV2F2ZXNDbGFpbWVkBAxzdGF3TFBBbW91bnQEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUPc3Rhd0xQQW1vdW50S2V5AwkAAQIFByRtYXRjaDACA0ludAQBdAUHJG1hdGNoMAUBdAkAAgECFGZhaWxlZCB0byBnZXQgc3Rhd1BMAwkAAAIFDHN0YXdMUEFtb3VudAUMc3Rhd0xQQW1vdW50BBBsb2NrUGVyaW9kSW5NaWxpBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFE2xvY2twZXJpb2RJbk1pbGlLZXkDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwBQF0CQACAQIiZmFpbGVkIHRvIGdldCBsb2NrIHBlcmlvZCB0aW1lc3BhbQMJAAACBRBsb2NrUGVyaW9kSW5NaWxpBRBsb2NrUGVyaW9kSW5NaWxpBBBjdXJyZW50VGltZVN0YW1wBAckbWF0Y2gwCQEQX2dldE5ld1RpbWVTdGFtcAEFBmhlaWdodAMJAAECBQckbWF0Y2gwAgNJbnQEAXQFByRtYXRjaDAFAXQJAAIBAh9mYWlsZWQgdG8gZ2V0IGN1cnJlbnQgdGltZXN0YW1wAwkAAAIFEGN1cnJlbnRUaW1lU3RhbXAFEGN1cnJlbnRUaW1lU3RhbXAECmNvbGxhdGVyYWwEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUNY29sbGF0ZXJhbEtleQMJAAECBQckbWF0Y2gwAgNJbnQEAXQFByRtYXRjaDAFAXQJAAIBAhhmYWlsZWQgdG8gZ2V0IGNvbGxhdGVyYWwDCQAAAgUKY29sbGF0ZXJhbAUKY29sbGF0ZXJhbAQKbG9ja1BlcmlvZAQHJG1hdGNoMAkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBQ1sb2NrcGVyaW9kS2V5AwkAAQIFByRtYXRjaDACA0ludAQBdAUHJG1hdGNoMAUBdAkAAgECGGZhaWxlZCB0byBnZXQgbG9ja1BlcmlvZAMJAAACBQpsb2NrUGVyaW9kBQpsb2NrUGVyaW9kBBFjdXJyZW50TGVhc2VTdGF0ZQQHJG1hdGNoMAkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBRF1c2VyTGVhc2VTdGF0ZUtleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXQFByRtYXRjaDAFAXQJAAIBAhlmYWlsZWQgdG8gZ2V0IGxlYXNlIHN0YXRlAwkAAAIFEWN1cnJlbnRMZWFzZVN0YXRlBRFjdXJyZW50TGVhc2VTdGF0ZQQKbGVhc2VTdGF0ZQQHJG1hdGNoMAkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBQ1sZWFzZVN0YXRlS2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQBdAUHJG1hdGNoMAUBdAkAAgECImZhaWxlZCB0byBnZXQgbGVhc2Ugc3RhdGUgZm9yIHVzZXIDCQAAAgUKbGVhc2VTdGF0ZQUKbGVhc2VTdGF0ZQQGY2hlY2sxCQEIX3Rocm93SWYCCQBmAgUQbG9ja1BlcmlvZEluTWlsaQUQY3VycmVudFRpbWVTdGFtcAIqbG9jayBwZXJpb2QgZm9yIHRoaXMgZW50cnkgaGFzIG5vdCBlbGFwc2VkAwkAAAIFBmNoZWNrMQUGY2hlY2sxBAtsZWFzZUFjdGlvbgMJAAACBRFjdXJyZW50TGVhc2VTdGF0ZQIGbGVhc2VkCQCUCgIJAQtMZWFzZUNhbmNlbAEFBmxvY2tJZAkBCV93cml0ZVN0cgIFEXVzZXJMZWFzZVN0YXRlS2V5AgljYW5jZWxsZWQJAJQKAgkBCV93cml0ZVN0cgIFEXVzZXJMZWFzZVN0YXRlS2V5AgljYW5jZWxsZWQJAQlfd3JpdGVTdHICBRF1c2VyTGVhc2VTdGF0ZUtleQIJY2FuY2VsbGVkAwkAAAIFC2xlYXNlQWN0aW9uBQtsZWFzZUFjdGlvbgQGY2hlY2syCQEIX3Rocm93SWYCAwkAAAIAAAULd2F2ZXNBbW91bnQGCQAAAgAABQxzdGF3TFBBbW91bnQCIWFsbCBjbGFpbXMgZXhoYXVzdGVkIGZvciB0aGlzIHRyeAMJAAACBQZjaGVjazIFBmNoZWNrMgQSZW1pc3Npb25WYWx1ZVBlckRUCQBoAgkBEl9lbWlzc2lvblJhdGVXYXZlcwIFCmxvY2tQZXJpb2QFCmNvbGxhdGVyYWwFA19EdAQLY2xhaW1BY3Rpb24EDXRpbWVTdGFtcERpZmYJAGUCBRBjdXJyZW50VGltZVN0YW1wBRBsb2NrUGVyaW9kSW5NaWxpBBpkYXlzQWZ0ZXJMb2NrUGVyaW9kRWxhc3BlZAkAaQIFDXRpbWVTdGFtcERpZmYFA19EdAMJAAACBRpkYXlzQWZ0ZXJMb2NrUGVyaW9kRWxhc3BlZAAACQACAQIibGVzcyB0aGFuIDI0aHJzIGJlZm9yZSBmaXJzdCBjbGFpbQMJAQIhPQIJAGoCBQ10aW1lU3RhbXBEaWZmBQNfRHQAAAkAAgECNGFscmVhZHkgY2xhaW1lZCBvciBsZXNzIHRoYW4gMjRocnMgYmVmb3JlIG5leHQgY2xhaW0DCQBmAgUaZGF5c0FmdGVyTG9ja1BlcmlvZEVsYXNwZWQFCmxvY2tQZXJpb2QJAAIBAhRhbGwgY2xhaW1zIGV4aGF1c3RlZAQUdG90YWxBbW91bnRDbGFpbWFibGUJAGgCBRpkYXlzQWZ0ZXJMb2NrUGVyaW9kRWxhc3BlZAUSZW1pc3Npb25WYWx1ZVBlckRUBAhjaGVjazNfMQkBCF90aHJvd0lmAgkAAAIFFHRvdGFsQW1vdW50Q2xhaW1hYmxlBRF0b3RhbFdhdmVzQ2xhaW1lZAIcY2FuIG9ubHkgY2xhaW0gb25jZSBpbiAyNGhycwMJAAACBQhjaGVjazNfMQUIY2hlY2szXzEECGNoZWNrM18yCQEIX3Rocm93SWYCCQBmAgkAZAIFFHRvdGFsQW1vdW50Q2xhaW1hYmxlBRF0b3RhbFdhdmVzQ2xhaW1lZAULd2F2ZXNBbW91bnQCFGFsbCBjbGFpbXMgZXhoYXVzdGVkAwkAAAIFCGNoZWNrM18yBQhjaGVjazNfMgQRY2xhaW1BbW91bnRUb1NlbmQDCQAAAgUaZGF5c0FmdGVyTG9ja1BlcmlvZEVsYXNwZWQAAQUUdG90YWxBbW91bnRDbGFpbWFibGUJAGUCBRR0b3RhbEFtb3VudENsYWltYWJsZQURdG90YWxXYXZlc0NsYWltZWQEEm5ld1RvdGFsV2F2ZXNDbGFpbQUUdG90YWxBbW91bnRDbGFpbWFibGUEDm5ld1dhdmVzQW1vdW50AwkAAAIFGmRheXNBZnRlckxvY2tQZXJpb2RFbGFzcGVkAAEJAGUCBQt3YXZlc0Ftb3VudAUUdG90YWxBbW91bnRDbGFpbWFibGUJAGUCBQt3YXZlc0Ftb3VudAkAZQIFFHRvdGFsQW1vdW50Q2xhaW1hYmxlBRF0b3RhbFdhdmVzQ2xhaW1lZAQPbmV3U3Rhd0xQQW1vdW50AwkAAAIFGmRheXNBZnRlckxvY2tQZXJpb2RFbGFzcGVkAAEJAGUCBQxzdGF3TFBBbW91bnQFFHRvdGFsQW1vdW50Q2xhaW1hYmxlCQBlAgUMc3Rhd0xQQW1vdW50CQBlAgUUdG90YWxBbW91bnRDbGFpbWFibGUFEXRvdGFsV2F2ZXNDbGFpbWVkBBBuZXdHbG9iYWxXYXZlUmVmCQBlAgUOZ2xvYmFsV2F2ZXNSZWYFDm5ld1dhdmVzQW1vdW50BA9uZXdHbG9iYWxTdGF3UEwJAGUCBQxnbG9iYWxTdGF3UEwFD25ld1N0YXdMUEFtb3VudAQXbmV3VXNlclRvdGFsV2F2ZXNMb2NrZWQJAGUCBRR1c2VyVG90YWxXYXZlc0xvY2tlZAURY2xhaW1BbW91bnRUb1NlbmQEEHdhdmVzQW1vdW50RW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFDm5ld1dhdmVzQW1vdW50BQNuaWwFA1NFUAQRc3Rhd0xQQW1vdW50RW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFD25ld1N0YXdMUEFtb3VudAUDbmlsBQNTRVAEFnRvdGFsV2F2ZXNDbGFpbWVkRW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFEm5ld1RvdGFsV2F2ZXNDbGFpbQUDbmlsBQNTRVAEHG5ld1VzZXJUb3RhbFdhdmVzTG9ja2VkRW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFF25ld1VzZXJUb3RhbFdhdmVzTG9ja2VkBQNuaWwFA1NFUAkAzAgCCAULbGVhc2VBY3Rpb24CXzEJAMwIAggFC2xlYXNlQWN0aW9uAl8yCQDMCAIJAQlfd3JpdGVTdHICBQ53YXZlc0Ftb3VudEtleQUQd2F2ZXNBbW91bnRFbnRyeQkAzAgCCQEJX3dyaXRlU3RyAgUPc3Rhd0xQQW1vdW50S2V5BRFzdGF3TFBBbW91bnRFbnRyeQkAzAgCCQEJX3dyaXRlU3RyAgUUdG90YWxXYXZlc0NsYWltZWRLZXkFFnRvdGFsV2F2ZXNDbGFpbWVkRW50cnkJAMwIAgkBCV93cml0ZVN0cgIFF3VzZXJUb3RhbFdhdmVzTG9ja2VkS2V5BRxuZXdVc2VyVG90YWxXYXZlc0xvY2tlZEVudHJ5CQDMCAIJAQlfd3JpdGVJbnQCBQ5fdG90YWxXYXZlc1JlZgUQbmV3R2xvYmFsV2F2ZVJlZgkAzAgCCQEJX3dyaXRlSW50AgUMX3RvdGFsU3Rhd0xQBQ9uZXdHbG9iYWxTdGF3UEwJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCAgFAWkGY2FsbGVyBWJ5dGVzBRFjbGFpbUFtb3VudFRvU2VuZAUEdW5pdAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAAIFC2NsYWltQWN0aW9uBQtjbGFpbUFjdGlvbgULY2xhaW1BY3Rpb24JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEIbWludFN0YXcBCmxvY2tQZXJpb2QEDWNhbGxlckFkZHJlc3MJANgEAQgIBQFpBmNhbGxlcgVieXRlcwQFdHJ4SUQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQGY2hlY2sxCQEIX3Rocm93SWYCCQECIT0CAAEJAJADAQgFAWkIcGF5bWVudHMCFG5vIHBheW1lbnRzIGF0dGFjaGVkAwkAAAIFBmNoZWNrMQUGY2hlY2sxBAZjaGVjazIDCQEJaXNEZWZpbmVkAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkCQACAQIUb25seSB3YXZlcyBzdXBwb3J0ZWQGAwkAAAIFBmNoZWNrMgUGY2hlY2syBA1hbW91bnRJbldhdmVzCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQGY2hlY2szAwMJAGYCBQ5fbWluTG9ja0Ftb3VudAUNYW1vdW50SW5XYXZlcwYJAGYCBQ1hbW91bnRJbldhdmVzBQ5fbWF4TG9ja0Ftb3VudAkAAgECHmFtb3VudCB0byBsb2NrIGlzIG91dCBvZiByYW5nZQYDCQAAAgUGY2hlY2szBQZjaGVjazMEBmNoZWNrNAMJAGYCBQ5fbWluTG9ja3BlcmlvZAUKbG9ja1BlcmlvZAkAAgECHm1pbmltdW0gb2YgMTQgZGF5cyBsb2NrIHBlcmlvZAYDCQAAAgUGY2hlY2s0BQZjaGVjazQEDXRvdGFsU3Rhd01pbnQJAQdfc3Rhd01GAgUKbG9ja1BlcmlvZAUNYW1vdW50SW5XYXZlcwQGc3Rhd1BMBQ1hbW91bnRJbldhdmVzBANmZWUJAGsDBQ10b3RhbFN0YXdNaW50AAoAZAQRdXNlckdldFN0YXdBbW91bnQJAGUCBQ10b3RhbFN0YXdNaW50BQNmZWUEE2xvY2tQZXJpb2RUb01pbGlzZWMJAGQCCQEQX2dldE5ld1RpbWVTdGFtcAEFBmhlaWdodAkBDl9kYXlzVG9NaWxpU2VjAQUKbG9ja1BlcmlvZAMJAAACBRNsb2NrUGVyaW9kVG9NaWxpc2VjBRNsb2NrUGVyaW9kVG9NaWxpc2VjBAluZXdfaW5kZXgJAGQCCQEPX3Rocm93T3JSZXR1cm5JAgkBBV9nZXRJAQURX2dsb2JhbEluZGV4Q291bnQCI2dsb2JhbCBpbmRleCBub3QgcHJldmlvdXNseSBkZWZpbmVkAAEDCQAAAgUJbmV3X2luZGV4BQluZXdfaW5kZXgECmFkZHJlc3NGZWUJAQdBZGRyZXNzAQkA2QQBCQEPX3Rocm93T3JSZXR1cm5TAgkBBV9nZXRTAQUEX0RmeAIaZGZ4IG5vdCBwcmV2aW91c2x5IGRlZmluZWQDCQAAAgUKYWRkcmVzc0ZlZQUKYWRkcmVzc0ZlZQQLc3Rhd0Fzc2V0SWQJANkEAQkBD190aHJvd09yUmV0dXJuUwIJAQVfZ2V0UwEFDF9zdGF3QXNzZXRJZAIfYXNzZXQgaWQgbm90IHByZXZpb3VzbHkgZGVmaW5lZAMJAAACBQtzdGF3QXNzZXRJZAULc3Rhd0Fzc2V0SWQEBmxlc3NlZQkBB0FkZHJlc3MBCQDZBAEJAQ9fdGhyb3dPclJldHVyblMCCQEFX2dldFMBBQ5fbGVzc2VlQWRkcmVzcwIhbGVhc2Ugbm9kZSBub3QgcHJldmlvdXNseSBkZWZpbmVkAwkAAAIFBmxlc3NlZQUGbGVzc2VlBBB1c2VyTG9ja0luZGV4S2V5CQC5CQIJAMwIAgUNY2FsbGVyQWRkcmVzcwkAzAgCBRRfdXNlckxvY2FsSW5kZXhDb3VudAUDbmlsBQNTRVAEEnVzZXJUb3RhbExvY2tlZEtleQkAuQkCCQDMCAIFDWNhbGxlckFkZHJlc3MJAMwIAgUQX3VzZXJUb3RhbExvY2tlZAUDbmlsBQNTRVAEDnVzZXJJbmRleENvdW50BAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFEHVzZXJMb2NrSW5kZXhLZXkDCQABAgUHJG1hdGNoMAIDSW50BAF4BQckbWF0Y2gwCQBkAgUBeAABAAADCQAAAgUOdXNlckluZGV4Q291bnQFDnVzZXJJbmRleENvdW50BA91c2VyVG90YWxMb2NrZWQEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUSdXNlclRvdGFsTG9ja2VkS2V5AwkAAQIFByRtYXRjaDACA0ludAQBeAUHJG1hdGNoMAkAZAIFAXgFDWFtb3VudEluV2F2ZXMFDWFtb3VudEluV2F2ZXMDCQAAAgUPdXNlclRvdGFsTG9ja2VkBQ91c2VyVG90YWxMb2NrZWQECGxlYXNlT3V0CQDECAIFBmxlc3NlZQUNYW1vdW50SW5XYXZlcwMJAAACBQhsZWFzZU91dAUIbGVhc2VPdXQECmxlYXNlSWRTdHIJANgEAQkAuQgBBQhsZWFzZU91dAMJAAACBQpsZWFzZUlkU3RyBQpsZWFzZUlkU3RyCQDOCAIJAM4IAgkAzAgCBQhsZWFzZU91dAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQphZGRyZXNzRmVlBQNmZWUFC3N0YXdBc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQgIBQFpBmNhbGxlcgVieXRlcwURdXNlckdldFN0YXdBbW91bnQFC3N0YXdBc3NldElkBQNuaWwJARJfcmVnaXN0ZXJVc2VyRW50cnkNBQV0cnhJRAUNY2FsbGVyQWRkcmVzcwUKbG9ja1BlcmlvZAUTbG9ja1BlcmlvZFRvTWlsaXNlYwUJbmV3X2luZGV4BQ1hbW91bnRJbldhdmVzBRF1c2VyR2V0U3Rhd0Ftb3VudAUGc3Rhd1BMBQZoZWlnaHQFCmxlYXNlSWRTdHIFD3VzZXJUb3RhbExvY2tlZAUOdXNlckluZGV4Q291bnQCBmxlYXNlZAkBEl91cGRhdGVHbG9iYWxFbnRyeQQFDWFtb3VudEluV2F2ZXMFDXRvdGFsU3Rhd01pbnQFBnN0YXdQTAUJbmV3X2luZGV4CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuABqOPek=", "height": 2490286, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BrD3yKLCRSTm1M2QvaYNxdP5oXiDN4K79ZVw6yghUNrx Next: 5RigmQHJEPqUMKNpqDMHvHQ8pSA7ZSQJysAyEBxQRdTG Diff:
OldNewDifferences
191191 }
192192
193193
194-func ai (aj) = {
195- let ak = ad((aj >= 0), "invalid locking days!")
196- if ((ak == ak))
197- then (aj * f)
194+func ai (M) = {
195+ let aj = V(N(M), "entry not found")
196+ if ((aj == aj))
197+ then {
198+ let ak = split(aj, a)
199+ let al = takeRight(ak[0], 1)
200+ let am = ak[(size(ak) - 1)]
201+ let ag = if ((al == "s"))
202+ then am
203+ else if ((al == "d"))
204+ then parseIntValue(am)
205+ else if ((al == "b"))
206+ then fromBase58String(am)
207+ else throw(("could not parse registry value for " + M))
208+ ag
209+ }
198210 else throw("Strict value is not equal to itself.")
199211 }
200212
201213
202-func al (M,ab) = if (!(isDefined(N(M))))
214+func an (ao) = {
215+ let ap = ad((ao >= 0), "invalid locking days!")
216+ if ((ap == ap))
217+ then (ao * f)
218+ else throw("Strict value is not equal to itself.")
219+ }
220+
221+
222+func aq (M,ab) = if (!(isDefined(N(M))))
203223 then ac(M, ab)
204224 else throw(("entry already initialized: " + M))
205225
206226
207-func am (M,ab) = if (!(isDefined(N(M))))
227+func ar (M,ab) = if (!(isDefined(N(M))))
208228 then aa(M, ab)
209229 else throw((" entry already initialized: " + M))
210230
211231
212-func an (ao) = {
213- let ap = V(N(n), "manager not found")
214- if ((ap == ap))
215- then ad((toBase58String(ao.caller.bytes) != ap), "address not authorized")
232+func as (at) = {
233+ let au = V(N(n), "manager not found")
234+ if ((au == au))
235+ then {
236+ let av = {
237+ let U = ai(au)
238+ if ($isInstanceOf(U, "String"))
239+ then {
240+ let W = U
241+ W
242+ }
243+ else "failed to get manager"
244+ }
245+ if ((av == av))
246+ then ad((toBase58String(at.caller.bytes) != av), "address not authorized")
247+ else throw("Strict value is not equal to itself.")
248+ }
216249 else throw("Strict value is not equal to itself.")
217250 }
218251
219252
220-func aq (W) = if ((0 > W))
253+func aw (W) = if ((0 > W))
221254 then -(W)
222255 else W
223256
224257
225-func ar (as) = {
226- let U = as
258+func ax (ay) = {
259+ let U = ay
227260 if ($isInstanceOf(U, "String"))
228261 then {
229- let as = U
230- let at = addressFromString(as)
231- let au = at
232- if ($isInstanceOf(au, "Address"))
262+ let ay = U
263+ let az = addressFromString(ay)
264+ let aA = az
265+ if ($isInstanceOf(aA, "Address"))
233266 then {
234- let at = au
267+ let az = aA
235268 true
236269 }
237270 else throw("invalid address")
238271 }
239272 else if ($isInstanceOf(U, "ByteVector"))
240273 then {
241- let as = U
242- let at = addressFromPublicKey(as)
243- let au = at
244- if ($isInstanceOf(au, "Address"))
274+ let ay = U
275+ let az = addressFromPublicKey(ay)
276+ let aA = az
277+ if ($isInstanceOf(aA, "Address"))
245278 then {
246- let at = au
279+ let az = aA
247280 true
248281 }
249282 else throw("invalid public key")
252285 }
253286
254287
255-func av (aw) = {
256- let U = assetInfo(fromBase58String(aw))
288+func aB (aC) = {
289+ let U = assetInfo(fromBase58String(aC))
257290 if ($isInstanceOf(U, "Asset"))
258291 then {
259- let ax = U
292+ let aD = U
260293 true
261294 }
262- else throw(("invalid asset id: " + aw))
295+ else throw(("invalid asset id: " + aC))
263296 }
264297
265298
266-func ay () = {
267- let az = Y(L(p), "increment index not previously defined")
268- if ((az == az))
299+func aE () = {
300+ let aF = Y(L(p), "increment index not previously defined")
301+ if ((aF == aF))
269302 then {
270- let aA = V(N(m), "asset id not previouly defined")
271- if ((aA == aA))
303+ let aG = V(N(m), "asset id not previouly defined")
304+ if ((aG == aG))
272305 then {
273- let aB = {
274- let U = assetInfo(fromBase58String(aA))
306+ let aH = {
307+ let U = assetInfo(fromBase58String(aG))
275308 if ($isInstanceOf(U, "Asset"))
276309 then {
277- let ax = U
278- ax.quantity
310+ let aD = U
311+ aD.quantity
279312 }
280- else throw(("asset not found for " + aA))
313+ else throw(("asset not found for " + aG))
281314 }
282- let aC = (aq((aB - i)) / i)
283- let aD = if ((aC > az))
284- then (aC + az)
285- else az
286- let aE = Y(l, "miniting rate not previously defined")
287- if ((aD == az))
288- then aE
315+ let aI = (aw((aH - i)) / i)
316+ let aJ = if ((aI > aF))
317+ then (aI + aF)
318+ else aF
319+ let aK = Y(l, "miniting rate not previously defined")
320+ if ((aJ == aF))
321+ then aK
289322 else {
290- let aF = (Y(k, "reduction factor not previously defined") + 10)
291- let aG = (aE - fraction(aE, aF, 100))
292- let aH = aa(l, aG)
293- if ((aH == aH))
323+ let aL = (Y(k, "reduction factor not previously defined") + 10)
324+ let aM = (aK - fraction(aK, aL, 100))
325+ let aN = aa(l, aM)
326+ if ((aN == aN))
294327 then {
295- let aI = aa(k, aF)
296- if ((aI == aI))
328+ let aO = aa(k, aL)
329+ if ((aO == aO))
297330 then {
298- let aJ = aa(p, aD)
299- if ((aJ == aJ))
300- then aG
331+ let aP = aa(p, aJ)
332+ if ((aP == aP))
333+ then aM
301334 else throw("Strict value is not equal to itself.")
302335 }
303336 else throw("Strict value is not equal to itself.")
311344 }
312345
313346
314-func aK (M) = {
315- let aL = V(N(M), "entry not found")
316- if ((aL == aL))
317- then {
318- let aM = split(aL, a)
319- let aN = takeRight(aM[0], 1)
320- let aO = aM[(size(aM) - 1)]
321- let ag = if ((aN == "s"))
322- then aO
323- else if ((aN == "d"))
324- then parseIntValue(aO)
325- else if ((aN == "b"))
326- then fromBase58String(aO)
327- else throw(("could not parse registry value for " + M))
328- ag
329- }
330- else throw("Strict value is not equal to itself.")
347+func aQ (aR,aS,aT,aU) = {
348+ let aV = (Y(L(I), "global waves sum not previously defined") + aR)
349+ let aW = (Y(L(H), "gobal staw minted not previously defined") + aS)
350+ let aX = (Y(L(J), "global stawPL not previously defined") + aT)
351+ let aY = (Y(L(K), "global index count not previously defined") + aU)
352+[aa(I, aV), aa(H, aW), aa(J, aX), aa(K, aY)]
331353 }
332354
333355
334-func aP (aQ,aR,aS,aT) = {
335- let aU = (Y(L(I), "global waves sum not previously defined") + aQ)
336- let aV = (Y(L(H), "gobal staw minted not previously defined") + aR)
337- let aW = (Y(L(J), "global stawPL not previously defined") + aS)
338- let aX = (Y(L(K), "global index count not previously defined") + aT)
339-[aa(I, aU), aa(H, aV), aa(J, aW), aa(K, aX)]
356+func aZ (ba,bb,bc,bd,be,aR,aS,bf,bg,bh,bi,bj,bk) = {
357+ let bl = makeString([bb, ba, C], a)
358+ let bm = makeString([bb, ba, w], a)
359+ let bn = makeString([bb, ba, x], a)
360+ let bo = makeString([bb, ba, z], a)
361+ let bp = makeString([bb, ba, A], a)
362+ let bq = makeString([bb, ba, B], a)
363+ let br = makeString([bb, ba, D], a)
364+ let bs = makeString([bb, ba, y], a)
365+ let bt = makeString([bb, v], a)
366+ let bu = makeString([bb, u], a)
367+ let bv = makeString([bb, ba, E], a)
368+ let bw = makeString([bb, ba, F], a)
369+ let bx = makeString([bb, ba, G], a)
370+ let by = makeString(["%s", ba], a)
371+ let bz = makeString(["%d", toString(bc)], a)
372+ let bA = makeString(["%d", toString(be)], a)
373+ let bB = makeString(["%d", toString(aR)], a)
374+ let bC = makeString(["%d", toString(aS)], a)
375+ let bD = makeString(["%d", toString(bf)], a)
376+ let bE = makeString(["%d", toString(bg)], a)
377+ let bF = makeString(["%b", bh], a)
378+ let bG = makeString(["%d", toString(bi)], a)
379+ let bH = makeString(["%d", toString(bj)], a)
380+ let bI = makeString(["%d", toString(bd)], a)
381+ let bJ = makeString(["%d", toString(0)], a)
382+ let bK = makeString(["%s", bk], a)
383+[aq(bl, by), aq(bn, bA), ac(bu, bH), ac(bt, bG), aq(bm, bz), aq(bv, bI), aq(bo, bB), aq(bp, bC), ac(bq, bD), ac(bw, bJ), aq(br, bE), aq(bs, bF), ac(bx, bK)]
340384 }
341385
342386
343-func aY (aZ,ba,bb,bc,bd,aQ,aR,be,bf,bg,bh,bi,bj) = {
344- let bk = makeString([ba, aZ, C], a)
345- let bl = makeString([ba, aZ, w], a)
346- let bm = makeString([ba, aZ, x], a)
347- let bn = makeString([ba, aZ, z], a)
348- let bo = makeString([ba, aZ, A], a)
349- let bp = makeString([ba, aZ, B], a)
350- let bq = makeString([ba, aZ, D], a)
351- let br = makeString([ba, aZ, y], a)
352- let bs = makeString([ba, v], a)
353- let bt = makeString([ba, u], a)
354- let bu = makeString([ba, aZ, E], a)
355- let bv = makeString([ba, aZ, F], a)
356- let bw = makeString([ba, aZ, G], a)
357- let bx = makeString(["%s", aZ], a)
358- let by = makeString(["%d", toString(bb)], a)
359- let bz = makeString(["%d", toString(bd)], a)
360- let bA = makeString(["%d", toString(aQ)], a)
361- let bB = makeString(["%d", toString(aR)], a)
362- let bC = makeString(["%d", toString(be)], a)
363- let bD = makeString(["%d", toString(bf)], a)
364- let bE = makeString(["%b", bg], a)
365- let bF = makeString(["%d", toString(bh)], a)
366- let bG = makeString(["%d", toString(bi)], a)
367- let bH = makeString(["%d", toString(bc)], a)
368- let bI = makeString(["%d", toString(0)], a)
369- let bJ = makeString(["%s", bj], a)
370-[al(bk, bx), al(bm, bz), ac(bt, bG), ac(bs, bF), al(bl, by), al(bu, bH), al(bn, bA), al(bo, bB), ac(bp, bC), ac(bv, bI), al(bq, bD), al(br, bE), ac(bw, bJ)]
387+func bL (h,bM) = {
388+ let bN = aE()
389+ (fraction(c, (f * bN), g(h)) * bM)
371390 }
372391
373392
374-func bK (h,bL) = {
375- let bM = ay()
376- (fraction(c, (f * bM), g(h)) * bL)
393+func bO (h,bP) = {
394+ let bQ = fraction(h, 15, 10)
395+ ((bP / ((h * bQ) - h)) * f)
377396 }
378397
379398
380-func bN (h,bO) = {
381- let bP = fraction(h, 15, 10)
382- ((bO / ((h * bP) - h)) * f)
399+func bR (bS) = {
400+ let bT = Y(L(J), "could not get the running StawLP")
401+[aa(J, (bT + bS))]
383402 }
384403
385404
386-func bQ (bR) = {
387- let bS = Y(L(J), "could not get the running StawLP")
388-[aa(J, (bS + bR))]
405+func bU (bS) = {
406+ let bT = Y(L(J), "could not get the running StawLP")
407+[aa(J, (bT - bS))]
389408 }
390409
391410
392-func bT (bR) = {
393- let bS = Y(L(J), "could not get the running StawLP")
394-[aa(J, (bS - bR))]
411+func bV (bS) = {
412+ let bW = Y(L(I), "could not get total locked waves")
413+[aa(I, (bW + bS))]
395414 }
396415
397416
398-func bU (bR) = {
399- let bV = Y(L(I), "could not get total locked waves")
400-[aa(I, (bV + bR))]
417+func bX (bS) = {
418+ let bW = Y(L(I), "could not get total locked waves")
419+[aa(I, (bW - bS))]
401420 }
402421
403422
404-func bW (bR) = {
405- let bV = Y(L(I), "could not get total locked waves")
406-[aa(I, (bV - bR))]
423+func bY (bZ) = {
424+ let ca = {
425+ let U = blockInfoByHeight(bZ)
426+ if ($isInstanceOf(U, "BlockInfo"))
427+ then {
428+ let cb = U
429+ cb.timestamp
430+ }
431+ else throw("counld get timestamp")
432+ }
433+ ca
407434 }
408435
409436
410-func bX (bY) = {
411- let bZ = {
412- let U = blockInfoByHeight(bY)
413- if ($isInstanceOf(U, "BlockInfo"))
414- then {
415- let ca = U
416- ca.timestamp
417- }
418- else throw("counld get timestamp")
419- }
420- bZ
421- }
422-
423-
424-@Callable(ao)
425-func getEmission (h,bO) = {
426- let cb = an(ao)
427- if ((cb == cb))
428- then $Tuple2(nil, bN(h, bO))
437+@Callable(at)
438+func getEmission (h,bP) = {
439+ let cc = as(at)
440+ if ((cc == cc))
441+ then $Tuple2(nil, bO(h, bP))
429442 else throw("Strict value is not equal to itself.")
430443 }
431444
432445
433446
434-@Callable(ao)
435-func init (ap,cc,aw,cd) = {
436- let ce = if (isDefined(N(n)))
437- then an(ao)
447+@Callable(at)
448+func init (av,cd,aC,ce) = {
449+ let cf = if (isDefined(N(n)))
450+ then as(at)
438451 else true
439- if ((ce == ce))
452+ if ((cf == cf))
440453 then {
441- let cb = ar(ap)
442- if ((cb == cb))
454+ let cc = ax(av)
455+ if ((cc == cc))
443456 then {
444- let cf = ar(cc)
445- if ((cf == cf))
457+ let cg = ax(cd)
458+ if ((cg == cg))
446459 then {
447- let cg = ar(cd)
448- if ((cg == cg))
460+ let ch = ax(ce)
461+ if ((ch == ch))
449462 then {
450- let ch = av(aw)
451- if ((ch == ch))
463+ let ci = aB(aC)
464+ if ((ci == ci))
452465 then {
453- let ci = S(p, 0)
454- let cj = S(k, 0)
455- let ck = S(l, c)
456- let cl = S(H, 0)
457- let cm = S(J, 0)
458- let cn = S(K, 0)
459- let co = S(I, 0)
460-[af(n, ap), af(o, cc), af(m, aw), af(q, cd), af(p, ci), af(l, ck), af(k, cj), af(I, co), af(J, cm), af(H, cl)]
466+ let cj = S(p, 0)
467+ let ck = S(k, 0)
468+ let cl = S(l, c)
469+ let cm = S(H, 0)
470+ let cn = S(J, 0)
471+ let co = S(K, 0)
472+ let cp = S(I, 0)
473+[af(n, av), af(o, cd), af(m, aC), af(q, ce), af(p, cj), af(l, cl), af(k, ck), af(I, cp), af(J, cn), af(H, cm)]
461474 }
462475 else throw("Strict value is not equal to itself.")
463476 }
472485
473486
474487
475-@Callable(ao)
488+@Callable(at)
476489 func modifyGlobalParams (W) = {
477- let cb = an(ao)
478- if ((cb == cb))
490+ let cc = as(at)
491+ if ((cc == cc))
479492 then {
480- let cf = ad((size(W) == 2), "[global_key, value] pairs expected")
481- if ((cf == cf))
493+ let cg = ad((size(W) == 2), "[global_key, value] pairs expected")
494+ if ((cg == cg))
482495 then {
483496 let M = W[0]
484- let cp = parseInt(W[1])
485- let U = cp
497+ let cq = parseInt(W[1])
498+ let U = cq
486499 if ($isInstanceOf(U, "Int"))
487500 then {
488- let aM = U
489- let cq = ad((N(M) == unit), (("key " + M) + " not recognized"))
490- if ((cq == cq))
491- then [af(M, aM)]
501+ let ak = U
502+ let cr = ad((N(M) == unit), (("key " + M) + " not recognized"))
503+ if ((cr == cr))
504+ then [af(M, ak)]
492505 else throw("Strict value is not equal to itself.")
493506 }
494507 else if ($isInstanceOf(U, "Unit"))
495508 then {
496- let aM = U
497- let cq = ad((N(M) == unit), (("key " + M) + " not recognized"))
498- if ((cq == cq))
509+ let ak = U
510+ let cr = ad((N(M) == unit), (("key " + M) + " not recognized"))
511+ if ((cr == cr))
499512 then {
500- let cr = W[1]
501- let cs = aK("_manager")
502- let ch = {
503- let au = cs
504- if ($isInstanceOf(au, "String"))
513+ let cs = W[1]
514+ let ct = ai("_manager")
515+ let ci = {
516+ let aA = ct
517+ if ($isInstanceOf(aA, "String"))
505518 then {
506- let ct = au
507- if ((size(ct) == size(cr)))
508- then ar(cr)
509- else av(cr)
519+ let cu = aA
520+ if ((size(cu) == size(cs)))
521+ then ax(cs)
522+ else aB(cs)
510523 }
511524 else throw("value type not supported")
512525 }
513- if ((ch == ch))
514- then [af(M, cr)]
526+ if ((ci == ci))
527+ then [af(M, cs)]
515528 else throw("Strict value is not equal to itself.")
516529 }
517530 else throw("Strict value is not equal to itself.")
525538
526539
527540
528-@Callable(ao)
541+@Callable(at)
529542 func revokeLock () = {
530- let cb = an(ao)
531- if ((cb == cb))
543+ let cc = as(at)
544+ if ((cc == cc))
532545 then nil
533546 else throw("Strict value is not equal to itself.")
534547 }
535548
536549
537550
538-@Callable(ao)
539-func claim (aZ) = {
540- let cu = toBase58String(ao.caller.bytes)
541- let cv = makeString([cu, aZ, z], a)
542- let cw = makeString([cu, aZ, w], a)
543- let cx = makeString([cu, aZ, y], a)
544- let cy = makeString([cu, aZ, E], a)
545- let cz = makeString([cu, aZ, F], a)
546- let cA = makeString([cu, aZ, B], a)
547- let cB = makeString([cu, aZ, z], a)
548- let cC = makeString([cu, v], a)
549- let cD = makeString([cu, aZ, G], a)
550- let cE = makeString([cu, aZ, G], a)
551- let cF = Q(I)
552- if ((cF == cF))
551+@Callable(at)
552+func claim (ba) = {
553+ let cv = toBase58String(at.caller.bytes)
554+ let cw = makeString([cv, ba, z], a)
555+ let cx = makeString([cv, ba, w], a)
556+ let cy = makeString([cv, ba, y], a)
557+ let cz = makeString([cv, ba, E], a)
558+ let cA = makeString([cv, ba, F], a)
559+ let cB = makeString([cv, ba, B], a)
560+ let cC = makeString([cv, ba, z], a)
561+ let cD = makeString([cv, v], a)
562+ let cE = makeString([cv, ba, G], a)
563+ let cF = makeString([cv, ba, G], a)
564+ let cG = Q(I)
565+ if ((cG == cG))
553566 then {
554- let cG = Q(J)
555- if ((cG == cG))
567+ let cH = Q(J)
568+ if ((cH == cH))
556569 then {
557- let bg = {
558- let U = aK(cx)
570+ let bh = {
571+ let U = ai(cy)
559572 if ($isInstanceOf(U, "ByteVector"))
560573 then {
561- let cH = U
562- cH
574+ let cI = U
575+ cI
563576 }
564577 else throw("failed to get lease id")
565578 }
566- if ((bg == bg))
579+ if ((bh == bh))
567580 then {
568- let cI = {
569- let U = aK(cC)
581+ let cJ = {
582+ let U = ai(cD)
570583 if ($isInstanceOf(U, "Int"))
571584 then {
572- let cH = U
573- cH
585+ let cI = U
586+ cI
574587 }
575588 else throw("failed to get total waves locked by this address")
576589 }
577- if ((cI == cI))
590+ if ((cJ == cJ))
578591 then {
579- let aQ = {
580- let U = aK(cB)
592+ let aR = {
593+ let U = ai(cC)
581594 if ($isInstanceOf(U, "Int"))
582595 then {
583- let cH = U
584- cH
596+ let cI = U
597+ cI
585598 }
586599 else throw("failed to get total waves locked")
587600 }
588- if ((aQ == aQ))
601+ if ((aR == aR))
589602 then {
590- let cJ = {
591- let U = aK(cz)
603+ let cK = {
604+ let U = ai(cA)
592605 if ($isInstanceOf(U, "Int"))
593606 then {
594- let cH = U
595- cH
607+ let cI = U
608+ cI
596609 }
597610 else throw("failed to get total waves claimed")
598611 }
599- if ((cJ == cJ))
612+ if ((cK == cK))
600613 then {
601- let be = {
602- let U = aK(cA)
614+ let bf = {
615+ let U = ai(cB)
603616 if ($isInstanceOf(U, "Int"))
604617 then {
605- let cH = U
606- cH
618+ let cI = U
619+ cI
607620 }
608621 else throw("failed to get stawPL")
609622 }
610- if ((be == be))
623+ if ((bf == bf))
611624 then {
612- let cK = {
613- let U = aK(cy)
625+ let cL = {
626+ let U = ai(cz)
614627 if ($isInstanceOf(U, "Int"))
615628 then {
616- let cH = U
617- cH
629+ let cI = U
630+ cI
618631 }
619632 else throw("failed to get lock period timespam")
620633 }
621- if ((cK == cK))
634+ if ((cL == cL))
622635 then {
623- let cL = {
624- let U = bX(height)
636+ let cM = {
637+ let U = bY(height)
625638 if ($isInstanceOf(U, "Int"))
626639 then {
627- let cH = U
628- cH
640+ let cI = U
641+ cI
629642 }
630643 else throw("failed to get current timestamp")
631644 }
632- if ((cL == cL))
645+ if ((cM == cM))
633646 then {
634- let bO = {
635- let U = aK(cv)
647+ let bP = {
648+ let U = ai(cw)
636649 if ($isInstanceOf(U, "Int"))
637650 then {
638- let cH = U
639- cH
651+ let cI = U
652+ cI
640653 }
641654 else throw("failed to get collateral")
642655 }
643- if ((bO == bO))
656+ if ((bP == bP))
644657 then {
645658 let h = {
646- let U = aK(cw)
659+ let U = ai(cx)
647660 if ($isInstanceOf(U, "Int"))
648661 then {
649- let cH = U
650- cH
662+ let cI = U
663+ cI
651664 }
652665 else throw("failed to get lockPeriod")
653666 }
654667 if ((h == h))
655668 then {
656- let cM = {
657- let U = aK(cD)
669+ let cN = {
670+ let U = ai(cE)
658671 if ($isInstanceOf(U, "String"))
659672 then {
660- let cH = U
661- cH
673+ let cI = U
674+ cI
662675 }
663676 else throw("failed to get lease state")
664677 }
665- if ((cM == cM))
678+ if ((cN == cN))
666679 then {
667- let bj = {
668- let U = aK(cE)
680+ let bk = {
681+ let U = ai(cF)
669682 if ($isInstanceOf(U, "String"))
670683 then {
671- let cH = U
672- cH
684+ let cI = U
685+ cI
673686 }
674687 else throw("failed to get lease state for user")
675688 }
676- if ((bj == bj))
689+ if ((bk == bk))
677690 then {
678- let cb = ad((cK > cL), "lock period for this entry has not elapsed")
679- if ((cb == cb))
691+ let cc = ad((cL > cM), "lock period for this entry has not elapsed")
692+ if ((cc == cc))
680693 then {
681- let cN = if ((cM == "leased"))
682- then $Tuple2(LeaseCancel(bg), ac(cD, "cancelled"))
683- else $Tuple2(ac(cD, "cancelled"), ac(cD, "cancelled"))
684- if ((cN == cN))
694+ let cO = if ((cN == "leased"))
695+ then $Tuple2(LeaseCancel(bh), ac(cE, "cancelled"))
696+ else $Tuple2(ac(cE, "cancelled"), ac(cE, "cancelled"))
697+ if ((cO == cO))
685698 then {
686- let cf = ad(if ((0 == aQ))
699+ let cg = ad(if ((0 == aR))
687700 then true
688- else (0 == be), "all claims exhausted for this trx")
689- if ((cf == cf))
701+ else (0 == bf), "all claims exhausted for this trx")
702+ if ((cg == cg))
690703 then {
691- let cO = (bN(h, bO) * f)
692- let cP = {
693- let cQ = (cL - cK)
694- let cR = (cQ / f)
695- if ((cR == 0))
704+ let cP = (bO(h, bP) * f)
705+ let cQ = {
706+ let cR = (cM - cL)
707+ let cS = (cR / f)
708+ if ((cS == 0))
696709 then throw("less than 24hrs before first claim")
697- else if (((cQ % f) != 0))
710+ else if (((cR % f) != 0))
698711 then throw("already claimed or less than 24hrs before next claim")
699- else if ((cR > h))
712+ else if ((cS > h))
700713 then throw("all claims exhausted")
701714 else {
702- let cS = (cR * cO)
703- let cT = ad((cS == cJ), "can only claim once in 24hrs")
704- if ((cT == cT))
715+ let cT = (cS * cP)
716+ let cU = ad((cT == cK), "can only claim once in 24hrs")
717+ if ((cU == cU))
705718 then {
706- let cU = ad(((cS + cJ) > aQ), "all claims exhausted")
707- if ((cU == cU))
719+ let cV = ad(((cT + cK) > aR), "all claims exhausted")
720+ if ((cV == cV))
708721 then {
709- let cV = if ((cR == 1))
710- then cS
711- else (cS - cJ)
712- let cW = cS
713- let cX = if ((cR == 1))
714- then (aQ - cS)
715- else (aQ - (cS - cJ))
716- let cY = if ((cR == 1))
717- then (be - cS)
718- else (be - (cS - cJ))
719- let cZ = (cF - cX)
722+ let cW = if ((cS == 1))
723+ then cT
724+ else (cT - cK)
725+ let cX = cT
726+ let cY = if ((cS == 1))
727+ then (aR - cT)
728+ else (aR - (cT - cK))
729+ let cZ = if ((cS == 1))
730+ then (bf - cT)
731+ else (bf - (cT - cK))
720732 let da = (cG - cY)
721- let db = (cI - cV)
722- let bA = makeString(["%d", toString(cX)], a)
723- let bC = makeString(["%d", toString(cY)], a)
724- let bI = makeString(["%d", toString(cW)], a)
725- let dc = makeString(["%d", toString(db)], a)
726-[cN._1, cN._2, ac(cB, bA), ac(cA, bC), ac(cz, bI), ac(cC, dc), aa(I, cZ), aa(J, da), ScriptTransfer(Address(ao.caller.bytes), cV, unit)]
733+ let db = (cH - cZ)
734+ let dc = (cJ - cW)
735+ let bB = makeString(["%d", toString(cY)], a)
736+ let bD = makeString(["%d", toString(cZ)], a)
737+ let bJ = makeString(["%d", toString(cX)], a)
738+ let dd = makeString(["%d", toString(dc)], a)
739+[cO._1, cO._2, ac(cC, bB), ac(cB, bD), ac(cA, bJ), ac(cD, dd), aa(I, da), aa(J, db), ScriptTransfer(Address(at.caller.bytes), cW, unit)]
727740 }
728741 else throw("Strict value is not equal to itself.")
729742 }
730743 else throw("Strict value is not equal to itself.")
731744 }
732745 }
733- if ((cP == cP))
734- then cP
746+ if ((cQ == cQ))
747+ then cQ
735748 else throw("Strict value is not equal to itself.")
736749 }
737750 else throw("Strict value is not equal to itself.")
769782
770783
771784
772-@Callable(ao)
785+@Callable(at)
773786 func mintStaw (h) = {
774- let cu = toBase58String(ao.caller.bytes)
775- let dd = toBase58String(ao.transactionId)
776- let cb = ad((1 != size(ao.payments)), "no payments attached")
777- if ((cb == cb))
787+ let cv = toBase58String(at.caller.bytes)
788+ let de = toBase58String(at.transactionId)
789+ let cc = ad((1 != size(at.payments)), "no payments attached")
790+ if ((cc == cc))
778791 then {
779- let cf = if (isDefined(ao.payments[0].assetId))
792+ let cg = if (isDefined(at.payments[0].assetId))
780793 then throw("only waves supported")
781794 else true
782- if ((cf == cf))
795+ if ((cg == cg))
783796 then {
784- let de = ao.payments[0].amount
785- let cg = if (if ((d > de))
797+ let df = at.payments[0].amount
798+ let ch = if (if ((d > df))
786799 then true
787- else (de > e))
800+ else (df > e))
788801 then throw("amount to lock is out of range")
789802 else true
790- if ((cg == cg))
803+ if ((ch == ch))
791804 then {
792- let ch = if ((b > h))
805+ let ci = if ((b > h))
793806 then throw("minimum of 14 days lock period")
794807 else true
795- if ((ch == ch))
808+ if ((ci == ci))
796809 then {
797- let df = bK(h, de)
798- let aS = de
799- let dg = fraction(df, 10, 100)
800- let dh = (df - dg)
801- let di = (bX(height) + ai(h))
802- if ((di == di))
810+ let dg = bL(h, df)
811+ let aT = df
812+ let dh = fraction(dg, 10, 100)
813+ let di = (dg - dh)
814+ let dj = (bY(height) + an(h))
815+ if ((dj == dj))
803816 then {
804- let dj = (Y(L(K), "global index not previously defined") + 1)
805- if ((dj == dj))
817+ let dk = (Y(L(K), "global index not previously defined") + 1)
818+ if ((dk == dk))
806819 then {
807- let dk = Address(fromBase58String(V(N(o), "dfx not previously defined")))
808- if ((dk == dk))
820+ let dl = Address(fromBase58String(V(N(o), "dfx not previously defined")))
821+ if ((dl == dl))
809822 then {
810- let aA = fromBase58String(V(N(m), "asset id not previously defined"))
811- if ((aA == aA))
823+ let aG = fromBase58String(V(N(m), "asset id not previously defined"))
824+ if ((aG == aG))
812825 then {
813- let dl = Address(fromBase58String(V(N(q), "lease node not previously defined")))
814- if ((dl == dl))
826+ let dm = Address(fromBase58String(V(N(q), "lease node not previously defined")))
827+ if ((dm == dm))
815828 then {
816- let dm = makeString([cu, u], a)
817- let dn = makeString([cu, v], a)
818- let do = {
819- let U = aK(dm)
829+ let dn = makeString([cv, u], a)
830+ let do = makeString([cv, v], a)
831+ let dp = {
832+ let U = ai(dn)
820833 if ($isInstanceOf(U, "Int"))
821834 then {
822- let aM = U
823- (aM + 1)
835+ let ak = U
836+ (ak + 1)
824837 }
825838 else 0
826839 }
827- if ((do == do))
840+ if ((dp == dp))
828841 then {
829- let dp = {
830- let U = aK(dn)
842+ let dq = {
843+ let U = ai(do)
831844 if ($isInstanceOf(U, "Int"))
832845 then {
833- let aM = U
834- (aM + de)
846+ let ak = U
847+ (ak + df)
835848 }
836- else de
849+ else df
837850 }
838- if ((dp == dp))
851+ if ((dq == dq))
839852 then {
840- let dq = Lease(dl, de)
841- if ((dq == dq))
853+ let dr = Lease(dm, df)
854+ if ((dr == dr))
842855 then {
843- let dr = toBase58String(calculateLeaseId(dq))
844- if ((dr == dr))
845- then (([dq, ScriptTransfer(dk, dg, aA), ScriptTransfer(Address(ao.caller.bytes), dh, aA)] ++ aY(dd, cu, h, di, dj, de, dh, aS, height, dr, dp, do, "leased")) ++ aP(de, df, aS, dj))
856+ let ds = toBase58String(calculateLeaseId(dr))
857+ if ((ds == ds))
858+ then (([dr, ScriptTransfer(dl, dh, aG), ScriptTransfer(Address(at.caller.bytes), di, aG)] ++ aZ(de, cv, h, dj, dk, df, di, aT, height, ds, dq, dp, "leased")) ++ aQ(df, dg, aT, dk))
846859 else throw("Strict value is not equal to itself.")
847860 }
848861 else throw("Strict value is not equal to itself.")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "_"
55
66 let b = 1
77
88 let c = 100000000
99
1010 let d = (1 * c)
1111
1212 let e = (1000 * c)
1313
1414 let f = 86400000
1515
1616 func g (h) = fraction(c, 365, h)
1717
1818
1919 let i = (1000000 * c)
2020
2121 let j = fraction(c, 10, 100)
2222
2323 let k = "Current_PercentageReduction_Factor_For_Mr"
2424
2525 let l = "Minting_Rate"
2626
2727 let m = "Staw_AssetId"
2828
2929 let n = "manager"
3030
3131 let o = "Dfx"
3232
3333 let p = "CirculationIncrementIndex"
3434
3535 let q = "LeaseNode"
3636
3737 let r = "EmissionAmountClaimed"
3838
3939 let s = "CanClaimEmissionAmount"
4040
4141 let t = "WalletAddress"
4242
4343 let u = "TotalEntryIndexCount"
4444
4545 let v = "TotalLocked"
4646
4747 let w = "LockDuration"
4848
4949 let x = "GlobalLockIndex"
5050
5151 let y = "LockIdentifier"
5252
5353 let z = "AmountInWaves"
5454
5555 let A = "AmountInStaw"
5656
5757 let B = "AmountInStawLP"
5858
5959 let C = "TXID"
6060
6161 let D = "LockAtHeight"
6262
6363 let E = "LocKPeriodInMilliSec"
6464
6565 let F = "TotalWavesClaimed"
6666
6767 let G = "LeaseState"
6868
6969 let H = "TotalStawMinted"
7070
7171 let I = "TotalWavesLocked"
7272
7373 let J = "TotalStawLP"
7474
7575 let K = "IndexCount"
7676
7777 func L (M) = getInteger(this, M)
7878
7979
8080 func N (M) = getString(this, M)
8181
8282
8383 func O (M) = getBoolean(this, M)
8484
8585
8686 func P (M) = value(getBoolean(this, M))
8787
8888
8989 func Q (M) = value(getInteger(this, M))
9090
9191
9292 func R (M) = value(getString(this, M))
9393
9494
9595 func S (M,T) = {
9696 let U = T
9797 if ($isInstanceOf(U, "String"))
9898 then {
9999 let T = U
100100 if (isDefined(N(M)))
101101 then R(M)
102102 else T
103103 }
104104 else if ($isInstanceOf(U, "Int"))
105105 then {
106106 let T = U
107107 if (isDefined(L(M)))
108108 then Q(M)
109109 else T
110110 }
111111 else if ($isInstanceOf(U, "Boolean"))
112112 then {
113113 let T = U
114114 if (isDefined(O(M)))
115115 then P(M)
116116 else T
117117 }
118118 else throw(("value type not supported for " + M))
119119 }
120120
121121
122122 func V (W,X) = {
123123 let U = W
124124 if ($isInstanceOf(U, "String"))
125125 then {
126126 let W = U
127127 W
128128 }
129129 else throw(X)
130130 }
131131
132132
133133 func Y (W,X) = {
134134 let U = W
135135 if ($isInstanceOf(U, "Int"))
136136 then {
137137 let W = U
138138 W
139139 }
140140 else throw(X)
141141 }
142142
143143
144144 func Z (W,X) = {
145145 let U = W
146146 if ($isInstanceOf(U, "Boolean"))
147147 then {
148148 let W = U
149149 W
150150 }
151151 else throw(X)
152152 }
153153
154154
155155 func aa (M,ab) = if ((0 > ab))
156156 then throw(((("writing negative value " + toString(ab)) + " for key ") + M))
157157 else IntegerEntry(M, ab)
158158
159159
160160 func ac (M,ab) = if ((" " == ab))
161161 then throw(("writing an empty string " + ab))
162162 else StringEntry(M, ab)
163163
164164
165165 func ad (ae,X) = if (ae)
166166 then throw(X)
167167 else true
168168
169169
170170 func af (M,ag) = {
171171 let U = ag
172172 if ($isInstanceOf(U, "Int"))
173173 then {
174174 let ag = U
175175 let ah = makeString(["%d", toString(ag)], a)
176176 ac(M, ah)
177177 }
178178 else if ($isInstanceOf(U, "String"))
179179 then {
180180 let ag = U
181181 let ah = makeString(["%s", ag], a)
182182 ac(M, ah)
183183 }
184184 else if ($isInstanceOf(U, "Boolean"))
185185 then {
186186 let ag = U
187187 let ah = makeString(["%b", toString(ag)], a)
188188 ac(M, ah)
189189 }
190190 else throw("type not supported")
191191 }
192192
193193
194-func ai (aj) = {
195- let ak = ad((aj >= 0), "invalid locking days!")
196- if ((ak == ak))
197- then (aj * f)
194+func ai (M) = {
195+ let aj = V(N(M), "entry not found")
196+ if ((aj == aj))
197+ then {
198+ let ak = split(aj, a)
199+ let al = takeRight(ak[0], 1)
200+ let am = ak[(size(ak) - 1)]
201+ let ag = if ((al == "s"))
202+ then am
203+ else if ((al == "d"))
204+ then parseIntValue(am)
205+ else if ((al == "b"))
206+ then fromBase58String(am)
207+ else throw(("could not parse registry value for " + M))
208+ ag
209+ }
198210 else throw("Strict value is not equal to itself.")
199211 }
200212
201213
202-func al (M,ab) = if (!(isDefined(N(M))))
214+func an (ao) = {
215+ let ap = ad((ao >= 0), "invalid locking days!")
216+ if ((ap == ap))
217+ then (ao * f)
218+ else throw("Strict value is not equal to itself.")
219+ }
220+
221+
222+func aq (M,ab) = if (!(isDefined(N(M))))
203223 then ac(M, ab)
204224 else throw(("entry already initialized: " + M))
205225
206226
207-func am (M,ab) = if (!(isDefined(N(M))))
227+func ar (M,ab) = if (!(isDefined(N(M))))
208228 then aa(M, ab)
209229 else throw((" entry already initialized: " + M))
210230
211231
212-func an (ao) = {
213- let ap = V(N(n), "manager not found")
214- if ((ap == ap))
215- then ad((toBase58String(ao.caller.bytes) != ap), "address not authorized")
232+func as (at) = {
233+ let au = V(N(n), "manager not found")
234+ if ((au == au))
235+ then {
236+ let av = {
237+ let U = ai(au)
238+ if ($isInstanceOf(U, "String"))
239+ then {
240+ let W = U
241+ W
242+ }
243+ else "failed to get manager"
244+ }
245+ if ((av == av))
246+ then ad((toBase58String(at.caller.bytes) != av), "address not authorized")
247+ else throw("Strict value is not equal to itself.")
248+ }
216249 else throw("Strict value is not equal to itself.")
217250 }
218251
219252
220-func aq (W) = if ((0 > W))
253+func aw (W) = if ((0 > W))
221254 then -(W)
222255 else W
223256
224257
225-func ar (as) = {
226- let U = as
258+func ax (ay) = {
259+ let U = ay
227260 if ($isInstanceOf(U, "String"))
228261 then {
229- let as = U
230- let at = addressFromString(as)
231- let au = at
232- if ($isInstanceOf(au, "Address"))
262+ let ay = U
263+ let az = addressFromString(ay)
264+ let aA = az
265+ if ($isInstanceOf(aA, "Address"))
233266 then {
234- let at = au
267+ let az = aA
235268 true
236269 }
237270 else throw("invalid address")
238271 }
239272 else if ($isInstanceOf(U, "ByteVector"))
240273 then {
241- let as = U
242- let at = addressFromPublicKey(as)
243- let au = at
244- if ($isInstanceOf(au, "Address"))
274+ let ay = U
275+ let az = addressFromPublicKey(ay)
276+ let aA = az
277+ if ($isInstanceOf(aA, "Address"))
245278 then {
246- let at = au
279+ let az = aA
247280 true
248281 }
249282 else throw("invalid public key")
250283 }
251284 else throw("invalid input type")
252285 }
253286
254287
255-func av (aw) = {
256- let U = assetInfo(fromBase58String(aw))
288+func aB (aC) = {
289+ let U = assetInfo(fromBase58String(aC))
257290 if ($isInstanceOf(U, "Asset"))
258291 then {
259- let ax = U
292+ let aD = U
260293 true
261294 }
262- else throw(("invalid asset id: " + aw))
295+ else throw(("invalid asset id: " + aC))
263296 }
264297
265298
266-func ay () = {
267- let az = Y(L(p), "increment index not previously defined")
268- if ((az == az))
299+func aE () = {
300+ let aF = Y(L(p), "increment index not previously defined")
301+ if ((aF == aF))
269302 then {
270- let aA = V(N(m), "asset id not previouly defined")
271- if ((aA == aA))
303+ let aG = V(N(m), "asset id not previouly defined")
304+ if ((aG == aG))
272305 then {
273- let aB = {
274- let U = assetInfo(fromBase58String(aA))
306+ let aH = {
307+ let U = assetInfo(fromBase58String(aG))
275308 if ($isInstanceOf(U, "Asset"))
276309 then {
277- let ax = U
278- ax.quantity
310+ let aD = U
311+ aD.quantity
279312 }
280- else throw(("asset not found for " + aA))
313+ else throw(("asset not found for " + aG))
281314 }
282- let aC = (aq((aB - i)) / i)
283- let aD = if ((aC > az))
284- then (aC + az)
285- else az
286- let aE = Y(l, "miniting rate not previously defined")
287- if ((aD == az))
288- then aE
315+ let aI = (aw((aH - i)) / i)
316+ let aJ = if ((aI > aF))
317+ then (aI + aF)
318+ else aF
319+ let aK = Y(l, "miniting rate not previously defined")
320+ if ((aJ == aF))
321+ then aK
289322 else {
290- let aF = (Y(k, "reduction factor not previously defined") + 10)
291- let aG = (aE - fraction(aE, aF, 100))
292- let aH = aa(l, aG)
293- if ((aH == aH))
323+ let aL = (Y(k, "reduction factor not previously defined") + 10)
324+ let aM = (aK - fraction(aK, aL, 100))
325+ let aN = aa(l, aM)
326+ if ((aN == aN))
294327 then {
295- let aI = aa(k, aF)
296- if ((aI == aI))
328+ let aO = aa(k, aL)
329+ if ((aO == aO))
297330 then {
298- let aJ = aa(p, aD)
299- if ((aJ == aJ))
300- then aG
331+ let aP = aa(p, aJ)
332+ if ((aP == aP))
333+ then aM
301334 else throw("Strict value is not equal to itself.")
302335 }
303336 else throw("Strict value is not equal to itself.")
304337 }
305338 else throw("Strict value is not equal to itself.")
306339 }
307340 }
308341 else throw("Strict value is not equal to itself.")
309342 }
310343 else throw("Strict value is not equal to itself.")
311344 }
312345
313346
314-func aK (M) = {
315- let aL = V(N(M), "entry not found")
316- if ((aL == aL))
317- then {
318- let aM = split(aL, a)
319- let aN = takeRight(aM[0], 1)
320- let aO = aM[(size(aM) - 1)]
321- let ag = if ((aN == "s"))
322- then aO
323- else if ((aN == "d"))
324- then parseIntValue(aO)
325- else if ((aN == "b"))
326- then fromBase58String(aO)
327- else throw(("could not parse registry value for " + M))
328- ag
329- }
330- else throw("Strict value is not equal to itself.")
347+func aQ (aR,aS,aT,aU) = {
348+ let aV = (Y(L(I), "global waves sum not previously defined") + aR)
349+ let aW = (Y(L(H), "gobal staw minted not previously defined") + aS)
350+ let aX = (Y(L(J), "global stawPL not previously defined") + aT)
351+ let aY = (Y(L(K), "global index count not previously defined") + aU)
352+[aa(I, aV), aa(H, aW), aa(J, aX), aa(K, aY)]
331353 }
332354
333355
334-func aP (aQ,aR,aS,aT) = {
335- let aU = (Y(L(I), "global waves sum not previously defined") + aQ)
336- let aV = (Y(L(H), "gobal staw minted not previously defined") + aR)
337- let aW = (Y(L(J), "global stawPL not previously defined") + aS)
338- let aX = (Y(L(K), "global index count not previously defined") + aT)
339-[aa(I, aU), aa(H, aV), aa(J, aW), aa(K, aX)]
356+func aZ (ba,bb,bc,bd,be,aR,aS,bf,bg,bh,bi,bj,bk) = {
357+ let bl = makeString([bb, ba, C], a)
358+ let bm = makeString([bb, ba, w], a)
359+ let bn = makeString([bb, ba, x], a)
360+ let bo = makeString([bb, ba, z], a)
361+ let bp = makeString([bb, ba, A], a)
362+ let bq = makeString([bb, ba, B], a)
363+ let br = makeString([bb, ba, D], a)
364+ let bs = makeString([bb, ba, y], a)
365+ let bt = makeString([bb, v], a)
366+ let bu = makeString([bb, u], a)
367+ let bv = makeString([bb, ba, E], a)
368+ let bw = makeString([bb, ba, F], a)
369+ let bx = makeString([bb, ba, G], a)
370+ let by = makeString(["%s", ba], a)
371+ let bz = makeString(["%d", toString(bc)], a)
372+ let bA = makeString(["%d", toString(be)], a)
373+ let bB = makeString(["%d", toString(aR)], a)
374+ let bC = makeString(["%d", toString(aS)], a)
375+ let bD = makeString(["%d", toString(bf)], a)
376+ let bE = makeString(["%d", toString(bg)], a)
377+ let bF = makeString(["%b", bh], a)
378+ let bG = makeString(["%d", toString(bi)], a)
379+ let bH = makeString(["%d", toString(bj)], a)
380+ let bI = makeString(["%d", toString(bd)], a)
381+ let bJ = makeString(["%d", toString(0)], a)
382+ let bK = makeString(["%s", bk], a)
383+[aq(bl, by), aq(bn, bA), ac(bu, bH), ac(bt, bG), aq(bm, bz), aq(bv, bI), aq(bo, bB), aq(bp, bC), ac(bq, bD), ac(bw, bJ), aq(br, bE), aq(bs, bF), ac(bx, bK)]
340384 }
341385
342386
343-func aY (aZ,ba,bb,bc,bd,aQ,aR,be,bf,bg,bh,bi,bj) = {
344- let bk = makeString([ba, aZ, C], a)
345- let bl = makeString([ba, aZ, w], a)
346- let bm = makeString([ba, aZ, x], a)
347- let bn = makeString([ba, aZ, z], a)
348- let bo = makeString([ba, aZ, A], a)
349- let bp = makeString([ba, aZ, B], a)
350- let bq = makeString([ba, aZ, D], a)
351- let br = makeString([ba, aZ, y], a)
352- let bs = makeString([ba, v], a)
353- let bt = makeString([ba, u], a)
354- let bu = makeString([ba, aZ, E], a)
355- let bv = makeString([ba, aZ, F], a)
356- let bw = makeString([ba, aZ, G], a)
357- let bx = makeString(["%s", aZ], a)
358- let by = makeString(["%d", toString(bb)], a)
359- let bz = makeString(["%d", toString(bd)], a)
360- let bA = makeString(["%d", toString(aQ)], a)
361- let bB = makeString(["%d", toString(aR)], a)
362- let bC = makeString(["%d", toString(be)], a)
363- let bD = makeString(["%d", toString(bf)], a)
364- let bE = makeString(["%b", bg], a)
365- let bF = makeString(["%d", toString(bh)], a)
366- let bG = makeString(["%d", toString(bi)], a)
367- let bH = makeString(["%d", toString(bc)], a)
368- let bI = makeString(["%d", toString(0)], a)
369- let bJ = makeString(["%s", bj], a)
370-[al(bk, bx), al(bm, bz), ac(bt, bG), ac(bs, bF), al(bl, by), al(bu, bH), al(bn, bA), al(bo, bB), ac(bp, bC), ac(bv, bI), al(bq, bD), al(br, bE), ac(bw, bJ)]
387+func bL (h,bM) = {
388+ let bN = aE()
389+ (fraction(c, (f * bN), g(h)) * bM)
371390 }
372391
373392
374-func bK (h,bL) = {
375- let bM = ay()
376- (fraction(c, (f * bM), g(h)) * bL)
393+func bO (h,bP) = {
394+ let bQ = fraction(h, 15, 10)
395+ ((bP / ((h * bQ) - h)) * f)
377396 }
378397
379398
380-func bN (h,bO) = {
381- let bP = fraction(h, 15, 10)
382- ((bO / ((h * bP) - h)) * f)
399+func bR (bS) = {
400+ let bT = Y(L(J), "could not get the running StawLP")
401+[aa(J, (bT + bS))]
383402 }
384403
385404
386-func bQ (bR) = {
387- let bS = Y(L(J), "could not get the running StawLP")
388-[aa(J, (bS + bR))]
405+func bU (bS) = {
406+ let bT = Y(L(J), "could not get the running StawLP")
407+[aa(J, (bT - bS))]
389408 }
390409
391410
392-func bT (bR) = {
393- let bS = Y(L(J), "could not get the running StawLP")
394-[aa(J, (bS - bR))]
411+func bV (bS) = {
412+ let bW = Y(L(I), "could not get total locked waves")
413+[aa(I, (bW + bS))]
395414 }
396415
397416
398-func bU (bR) = {
399- let bV = Y(L(I), "could not get total locked waves")
400-[aa(I, (bV + bR))]
417+func bX (bS) = {
418+ let bW = Y(L(I), "could not get total locked waves")
419+[aa(I, (bW - bS))]
401420 }
402421
403422
404-func bW (bR) = {
405- let bV = Y(L(I), "could not get total locked waves")
406-[aa(I, (bV - bR))]
423+func bY (bZ) = {
424+ let ca = {
425+ let U = blockInfoByHeight(bZ)
426+ if ($isInstanceOf(U, "BlockInfo"))
427+ then {
428+ let cb = U
429+ cb.timestamp
430+ }
431+ else throw("counld get timestamp")
432+ }
433+ ca
407434 }
408435
409436
410-func bX (bY) = {
411- let bZ = {
412- let U = blockInfoByHeight(bY)
413- if ($isInstanceOf(U, "BlockInfo"))
414- then {
415- let ca = U
416- ca.timestamp
417- }
418- else throw("counld get timestamp")
419- }
420- bZ
421- }
422-
423-
424-@Callable(ao)
425-func getEmission (h,bO) = {
426- let cb = an(ao)
427- if ((cb == cb))
428- then $Tuple2(nil, bN(h, bO))
437+@Callable(at)
438+func getEmission (h,bP) = {
439+ let cc = as(at)
440+ if ((cc == cc))
441+ then $Tuple2(nil, bO(h, bP))
429442 else throw("Strict value is not equal to itself.")
430443 }
431444
432445
433446
434-@Callable(ao)
435-func init (ap,cc,aw,cd) = {
436- let ce = if (isDefined(N(n)))
437- then an(ao)
447+@Callable(at)
448+func init (av,cd,aC,ce) = {
449+ let cf = if (isDefined(N(n)))
450+ then as(at)
438451 else true
439- if ((ce == ce))
452+ if ((cf == cf))
440453 then {
441- let cb = ar(ap)
442- if ((cb == cb))
454+ let cc = ax(av)
455+ if ((cc == cc))
443456 then {
444- let cf = ar(cc)
445- if ((cf == cf))
457+ let cg = ax(cd)
458+ if ((cg == cg))
446459 then {
447- let cg = ar(cd)
448- if ((cg == cg))
460+ let ch = ax(ce)
461+ if ((ch == ch))
449462 then {
450- let ch = av(aw)
451- if ((ch == ch))
463+ let ci = aB(aC)
464+ if ((ci == ci))
452465 then {
453- let ci = S(p, 0)
454- let cj = S(k, 0)
455- let ck = S(l, c)
456- let cl = S(H, 0)
457- let cm = S(J, 0)
458- let cn = S(K, 0)
459- let co = S(I, 0)
460-[af(n, ap), af(o, cc), af(m, aw), af(q, cd), af(p, ci), af(l, ck), af(k, cj), af(I, co), af(J, cm), af(H, cl)]
466+ let cj = S(p, 0)
467+ let ck = S(k, 0)
468+ let cl = S(l, c)
469+ let cm = S(H, 0)
470+ let cn = S(J, 0)
471+ let co = S(K, 0)
472+ let cp = S(I, 0)
473+[af(n, av), af(o, cd), af(m, aC), af(q, ce), af(p, cj), af(l, cl), af(k, ck), af(I, cp), af(J, cn), af(H, cm)]
461474 }
462475 else throw("Strict value is not equal to itself.")
463476 }
464477 else throw("Strict value is not equal to itself.")
465478 }
466479 else throw("Strict value is not equal to itself.")
467480 }
468481 else throw("Strict value is not equal to itself.")
469482 }
470483 else throw("Strict value is not equal to itself.")
471484 }
472485
473486
474487
475-@Callable(ao)
488+@Callable(at)
476489 func modifyGlobalParams (W) = {
477- let cb = an(ao)
478- if ((cb == cb))
490+ let cc = as(at)
491+ if ((cc == cc))
479492 then {
480- let cf = ad((size(W) == 2), "[global_key, value] pairs expected")
481- if ((cf == cf))
493+ let cg = ad((size(W) == 2), "[global_key, value] pairs expected")
494+ if ((cg == cg))
482495 then {
483496 let M = W[0]
484- let cp = parseInt(W[1])
485- let U = cp
497+ let cq = parseInt(W[1])
498+ let U = cq
486499 if ($isInstanceOf(U, "Int"))
487500 then {
488- let aM = U
489- let cq = ad((N(M) == unit), (("key " + M) + " not recognized"))
490- if ((cq == cq))
491- then [af(M, aM)]
501+ let ak = U
502+ let cr = ad((N(M) == unit), (("key " + M) + " not recognized"))
503+ if ((cr == cr))
504+ then [af(M, ak)]
492505 else throw("Strict value is not equal to itself.")
493506 }
494507 else if ($isInstanceOf(U, "Unit"))
495508 then {
496- let aM = U
497- let cq = ad((N(M) == unit), (("key " + M) + " not recognized"))
498- if ((cq == cq))
509+ let ak = U
510+ let cr = ad((N(M) == unit), (("key " + M) + " not recognized"))
511+ if ((cr == cr))
499512 then {
500- let cr = W[1]
501- let cs = aK("_manager")
502- let ch = {
503- let au = cs
504- if ($isInstanceOf(au, "String"))
513+ let cs = W[1]
514+ let ct = ai("_manager")
515+ let ci = {
516+ let aA = ct
517+ if ($isInstanceOf(aA, "String"))
505518 then {
506- let ct = au
507- if ((size(ct) == size(cr)))
508- then ar(cr)
509- else av(cr)
519+ let cu = aA
520+ if ((size(cu) == size(cs)))
521+ then ax(cs)
522+ else aB(cs)
510523 }
511524 else throw("value type not supported")
512525 }
513- if ((ch == ch))
514- then [af(M, cr)]
526+ if ((ci == ci))
527+ then [af(M, cs)]
515528 else throw("Strict value is not equal to itself.")
516529 }
517530 else throw("Strict value is not equal to itself.")
518531 }
519532 else throw(("failed to modify " + W[0]))
520533 }
521534 else throw("Strict value is not equal to itself.")
522535 }
523536 else throw("Strict value is not equal to itself.")
524537 }
525538
526539
527540
528-@Callable(ao)
541+@Callable(at)
529542 func revokeLock () = {
530- let cb = an(ao)
531- if ((cb == cb))
543+ let cc = as(at)
544+ if ((cc == cc))
532545 then nil
533546 else throw("Strict value is not equal to itself.")
534547 }
535548
536549
537550
538-@Callable(ao)
539-func claim (aZ) = {
540- let cu = toBase58String(ao.caller.bytes)
541- let cv = makeString([cu, aZ, z], a)
542- let cw = makeString([cu, aZ, w], a)
543- let cx = makeString([cu, aZ, y], a)
544- let cy = makeString([cu, aZ, E], a)
545- let cz = makeString([cu, aZ, F], a)
546- let cA = makeString([cu, aZ, B], a)
547- let cB = makeString([cu, aZ, z], a)
548- let cC = makeString([cu, v], a)
549- let cD = makeString([cu, aZ, G], a)
550- let cE = makeString([cu, aZ, G], a)
551- let cF = Q(I)
552- if ((cF == cF))
551+@Callable(at)
552+func claim (ba) = {
553+ let cv = toBase58String(at.caller.bytes)
554+ let cw = makeString([cv, ba, z], a)
555+ let cx = makeString([cv, ba, w], a)
556+ let cy = makeString([cv, ba, y], a)
557+ let cz = makeString([cv, ba, E], a)
558+ let cA = makeString([cv, ba, F], a)
559+ let cB = makeString([cv, ba, B], a)
560+ let cC = makeString([cv, ba, z], a)
561+ let cD = makeString([cv, v], a)
562+ let cE = makeString([cv, ba, G], a)
563+ let cF = makeString([cv, ba, G], a)
564+ let cG = Q(I)
565+ if ((cG == cG))
553566 then {
554- let cG = Q(J)
555- if ((cG == cG))
567+ let cH = Q(J)
568+ if ((cH == cH))
556569 then {
557- let bg = {
558- let U = aK(cx)
570+ let bh = {
571+ let U = ai(cy)
559572 if ($isInstanceOf(U, "ByteVector"))
560573 then {
561- let cH = U
562- cH
574+ let cI = U
575+ cI
563576 }
564577 else throw("failed to get lease id")
565578 }
566- if ((bg == bg))
579+ if ((bh == bh))
567580 then {
568- let cI = {
569- let U = aK(cC)
581+ let cJ = {
582+ let U = ai(cD)
570583 if ($isInstanceOf(U, "Int"))
571584 then {
572- let cH = U
573- cH
585+ let cI = U
586+ cI
574587 }
575588 else throw("failed to get total waves locked by this address")
576589 }
577- if ((cI == cI))
590+ if ((cJ == cJ))
578591 then {
579- let aQ = {
580- let U = aK(cB)
592+ let aR = {
593+ let U = ai(cC)
581594 if ($isInstanceOf(U, "Int"))
582595 then {
583- let cH = U
584- cH
596+ let cI = U
597+ cI
585598 }
586599 else throw("failed to get total waves locked")
587600 }
588- if ((aQ == aQ))
601+ if ((aR == aR))
589602 then {
590- let cJ = {
591- let U = aK(cz)
603+ let cK = {
604+ let U = ai(cA)
592605 if ($isInstanceOf(U, "Int"))
593606 then {
594- let cH = U
595- cH
607+ let cI = U
608+ cI
596609 }
597610 else throw("failed to get total waves claimed")
598611 }
599- if ((cJ == cJ))
612+ if ((cK == cK))
600613 then {
601- let be = {
602- let U = aK(cA)
614+ let bf = {
615+ let U = ai(cB)
603616 if ($isInstanceOf(U, "Int"))
604617 then {
605- let cH = U
606- cH
618+ let cI = U
619+ cI
607620 }
608621 else throw("failed to get stawPL")
609622 }
610- if ((be == be))
623+ if ((bf == bf))
611624 then {
612- let cK = {
613- let U = aK(cy)
625+ let cL = {
626+ let U = ai(cz)
614627 if ($isInstanceOf(U, "Int"))
615628 then {
616- let cH = U
617- cH
629+ let cI = U
630+ cI
618631 }
619632 else throw("failed to get lock period timespam")
620633 }
621- if ((cK == cK))
634+ if ((cL == cL))
622635 then {
623- let cL = {
624- let U = bX(height)
636+ let cM = {
637+ let U = bY(height)
625638 if ($isInstanceOf(U, "Int"))
626639 then {
627- let cH = U
628- cH
640+ let cI = U
641+ cI
629642 }
630643 else throw("failed to get current timestamp")
631644 }
632- if ((cL == cL))
645+ if ((cM == cM))
633646 then {
634- let bO = {
635- let U = aK(cv)
647+ let bP = {
648+ let U = ai(cw)
636649 if ($isInstanceOf(U, "Int"))
637650 then {
638- let cH = U
639- cH
651+ let cI = U
652+ cI
640653 }
641654 else throw("failed to get collateral")
642655 }
643- if ((bO == bO))
656+ if ((bP == bP))
644657 then {
645658 let h = {
646- let U = aK(cw)
659+ let U = ai(cx)
647660 if ($isInstanceOf(U, "Int"))
648661 then {
649- let cH = U
650- cH
662+ let cI = U
663+ cI
651664 }
652665 else throw("failed to get lockPeriod")
653666 }
654667 if ((h == h))
655668 then {
656- let cM = {
657- let U = aK(cD)
669+ let cN = {
670+ let U = ai(cE)
658671 if ($isInstanceOf(U, "String"))
659672 then {
660- let cH = U
661- cH
673+ let cI = U
674+ cI
662675 }
663676 else throw("failed to get lease state")
664677 }
665- if ((cM == cM))
678+ if ((cN == cN))
666679 then {
667- let bj = {
668- let U = aK(cE)
680+ let bk = {
681+ let U = ai(cF)
669682 if ($isInstanceOf(U, "String"))
670683 then {
671- let cH = U
672- cH
684+ let cI = U
685+ cI
673686 }
674687 else throw("failed to get lease state for user")
675688 }
676- if ((bj == bj))
689+ if ((bk == bk))
677690 then {
678- let cb = ad((cK > cL), "lock period for this entry has not elapsed")
679- if ((cb == cb))
691+ let cc = ad((cL > cM), "lock period for this entry has not elapsed")
692+ if ((cc == cc))
680693 then {
681- let cN = if ((cM == "leased"))
682- then $Tuple2(LeaseCancel(bg), ac(cD, "cancelled"))
683- else $Tuple2(ac(cD, "cancelled"), ac(cD, "cancelled"))
684- if ((cN == cN))
694+ let cO = if ((cN == "leased"))
695+ then $Tuple2(LeaseCancel(bh), ac(cE, "cancelled"))
696+ else $Tuple2(ac(cE, "cancelled"), ac(cE, "cancelled"))
697+ if ((cO == cO))
685698 then {
686- let cf = ad(if ((0 == aQ))
699+ let cg = ad(if ((0 == aR))
687700 then true
688- else (0 == be), "all claims exhausted for this trx")
689- if ((cf == cf))
701+ else (0 == bf), "all claims exhausted for this trx")
702+ if ((cg == cg))
690703 then {
691- let cO = (bN(h, bO) * f)
692- let cP = {
693- let cQ = (cL - cK)
694- let cR = (cQ / f)
695- if ((cR == 0))
704+ let cP = (bO(h, bP) * f)
705+ let cQ = {
706+ let cR = (cM - cL)
707+ let cS = (cR / f)
708+ if ((cS == 0))
696709 then throw("less than 24hrs before first claim")
697- else if (((cQ % f) != 0))
710+ else if (((cR % f) != 0))
698711 then throw("already claimed or less than 24hrs before next claim")
699- else if ((cR > h))
712+ else if ((cS > h))
700713 then throw("all claims exhausted")
701714 else {
702- let cS = (cR * cO)
703- let cT = ad((cS == cJ), "can only claim once in 24hrs")
704- if ((cT == cT))
715+ let cT = (cS * cP)
716+ let cU = ad((cT == cK), "can only claim once in 24hrs")
717+ if ((cU == cU))
705718 then {
706- let cU = ad(((cS + cJ) > aQ), "all claims exhausted")
707- if ((cU == cU))
719+ let cV = ad(((cT + cK) > aR), "all claims exhausted")
720+ if ((cV == cV))
708721 then {
709- let cV = if ((cR == 1))
710- then cS
711- else (cS - cJ)
712- let cW = cS
713- let cX = if ((cR == 1))
714- then (aQ - cS)
715- else (aQ - (cS - cJ))
716- let cY = if ((cR == 1))
717- then (be - cS)
718- else (be - (cS - cJ))
719- let cZ = (cF - cX)
722+ let cW = if ((cS == 1))
723+ then cT
724+ else (cT - cK)
725+ let cX = cT
726+ let cY = if ((cS == 1))
727+ then (aR - cT)
728+ else (aR - (cT - cK))
729+ let cZ = if ((cS == 1))
730+ then (bf - cT)
731+ else (bf - (cT - cK))
720732 let da = (cG - cY)
721- let db = (cI - cV)
722- let bA = makeString(["%d", toString(cX)], a)
723- let bC = makeString(["%d", toString(cY)], a)
724- let bI = makeString(["%d", toString(cW)], a)
725- let dc = makeString(["%d", toString(db)], a)
726-[cN._1, cN._2, ac(cB, bA), ac(cA, bC), ac(cz, bI), ac(cC, dc), aa(I, cZ), aa(J, da), ScriptTransfer(Address(ao.caller.bytes), cV, unit)]
733+ let db = (cH - cZ)
734+ let dc = (cJ - cW)
735+ let bB = makeString(["%d", toString(cY)], a)
736+ let bD = makeString(["%d", toString(cZ)], a)
737+ let bJ = makeString(["%d", toString(cX)], a)
738+ let dd = makeString(["%d", toString(dc)], a)
739+[cO._1, cO._2, ac(cC, bB), ac(cB, bD), ac(cA, bJ), ac(cD, dd), aa(I, da), aa(J, db), ScriptTransfer(Address(at.caller.bytes), cW, unit)]
727740 }
728741 else throw("Strict value is not equal to itself.")
729742 }
730743 else throw("Strict value is not equal to itself.")
731744 }
732745 }
733- if ((cP == cP))
734- then cP
746+ if ((cQ == cQ))
747+ then cQ
735748 else throw("Strict value is not equal to itself.")
736749 }
737750 else throw("Strict value is not equal to itself.")
738751 }
739752 else throw("Strict value is not equal to itself.")
740753 }
741754 else throw("Strict value is not equal to itself.")
742755 }
743756 else throw("Strict value is not equal to itself.")
744757 }
745758 else throw("Strict value is not equal to itself.")
746759 }
747760 else throw("Strict value is not equal to itself.")
748761 }
749762 else throw("Strict value is not equal to itself.")
750763 }
751764 else throw("Strict value is not equal to itself.")
752765 }
753766 else throw("Strict value is not equal to itself.")
754767 }
755768 else throw("Strict value is not equal to itself.")
756769 }
757770 else throw("Strict value is not equal to itself.")
758771 }
759772 else throw("Strict value is not equal to itself.")
760773 }
761774 else throw("Strict value is not equal to itself.")
762775 }
763776 else throw("Strict value is not equal to itself.")
764777 }
765778 else throw("Strict value is not equal to itself.")
766779 }
767780 else throw("Strict value is not equal to itself.")
768781 }
769782
770783
771784
772-@Callable(ao)
785+@Callable(at)
773786 func mintStaw (h) = {
774- let cu = toBase58String(ao.caller.bytes)
775- let dd = toBase58String(ao.transactionId)
776- let cb = ad((1 != size(ao.payments)), "no payments attached")
777- if ((cb == cb))
787+ let cv = toBase58String(at.caller.bytes)
788+ let de = toBase58String(at.transactionId)
789+ let cc = ad((1 != size(at.payments)), "no payments attached")
790+ if ((cc == cc))
778791 then {
779- let cf = if (isDefined(ao.payments[0].assetId))
792+ let cg = if (isDefined(at.payments[0].assetId))
780793 then throw("only waves supported")
781794 else true
782- if ((cf == cf))
795+ if ((cg == cg))
783796 then {
784- let de = ao.payments[0].amount
785- let cg = if (if ((d > de))
797+ let df = at.payments[0].amount
798+ let ch = if (if ((d > df))
786799 then true
787- else (de > e))
800+ else (df > e))
788801 then throw("amount to lock is out of range")
789802 else true
790- if ((cg == cg))
803+ if ((ch == ch))
791804 then {
792- let ch = if ((b > h))
805+ let ci = if ((b > h))
793806 then throw("minimum of 14 days lock period")
794807 else true
795- if ((ch == ch))
808+ if ((ci == ci))
796809 then {
797- let df = bK(h, de)
798- let aS = de
799- let dg = fraction(df, 10, 100)
800- let dh = (df - dg)
801- let di = (bX(height) + ai(h))
802- if ((di == di))
810+ let dg = bL(h, df)
811+ let aT = df
812+ let dh = fraction(dg, 10, 100)
813+ let di = (dg - dh)
814+ let dj = (bY(height) + an(h))
815+ if ((dj == dj))
803816 then {
804- let dj = (Y(L(K), "global index not previously defined") + 1)
805- if ((dj == dj))
817+ let dk = (Y(L(K), "global index not previously defined") + 1)
818+ if ((dk == dk))
806819 then {
807- let dk = Address(fromBase58String(V(N(o), "dfx not previously defined")))
808- if ((dk == dk))
820+ let dl = Address(fromBase58String(V(N(o), "dfx not previously defined")))
821+ if ((dl == dl))
809822 then {
810- let aA = fromBase58String(V(N(m), "asset id not previously defined"))
811- if ((aA == aA))
823+ let aG = fromBase58String(V(N(m), "asset id not previously defined"))
824+ if ((aG == aG))
812825 then {
813- let dl = Address(fromBase58String(V(N(q), "lease node not previously defined")))
814- if ((dl == dl))
826+ let dm = Address(fromBase58String(V(N(q), "lease node not previously defined")))
827+ if ((dm == dm))
815828 then {
816- let dm = makeString([cu, u], a)
817- let dn = makeString([cu, v], a)
818- let do = {
819- let U = aK(dm)
829+ let dn = makeString([cv, u], a)
830+ let do = makeString([cv, v], a)
831+ let dp = {
832+ let U = ai(dn)
820833 if ($isInstanceOf(U, "Int"))
821834 then {
822- let aM = U
823- (aM + 1)
835+ let ak = U
836+ (ak + 1)
824837 }
825838 else 0
826839 }
827- if ((do == do))
840+ if ((dp == dp))
828841 then {
829- let dp = {
830- let U = aK(dn)
842+ let dq = {
843+ let U = ai(do)
831844 if ($isInstanceOf(U, "Int"))
832845 then {
833- let aM = U
834- (aM + de)
846+ let ak = U
847+ (ak + df)
835848 }
836- else de
849+ else df
837850 }
838- if ((dp == dp))
851+ if ((dq == dq))
839852 then {
840- let dq = Lease(dl, de)
841- if ((dq == dq))
853+ let dr = Lease(dm, df)
854+ if ((dr == dr))
842855 then {
843- let dr = toBase58String(calculateLeaseId(dq))
844- if ((dr == dr))
845- then (([dq, ScriptTransfer(dk, dg, aA), ScriptTransfer(Address(ao.caller.bytes), dh, aA)] ++ aY(dd, cu, h, di, dj, de, dh, aS, height, dr, dp, do, "leased")) ++ aP(de, df, aS, dj))
856+ let ds = toBase58String(calculateLeaseId(dr))
857+ if ((ds == ds))
858+ then (([dr, ScriptTransfer(dl, dh, aG), ScriptTransfer(Address(at.caller.bytes), di, aG)] ++ aZ(de, cv, h, dj, dk, df, di, aT, height, ds, dq, dp, "leased")) ++ aQ(df, dg, aT, dk))
846859 else throw("Strict value is not equal to itself.")
847860 }
848861 else throw("Strict value is not equal to itself.")
849862 }
850863 else throw("Strict value is not equal to itself.")
851864 }
852865 else throw("Strict value is not equal to itself.")
853866 }
854867 else throw("Strict value is not equal to itself.")
855868 }
856869 else throw("Strict value is not equal to itself.")
857870 }
858871 else throw("Strict value is not equal to itself.")
859872 }
860873 else throw("Strict value is not equal to itself.")
861874 }
862875 else throw("Strict value is not equal to itself.")
863876 }
864877 else throw("Strict value is not equal to itself.")
865878 }
866879 else throw("Strict value is not equal to itself.")
867880 }
868881 else throw("Strict value is not equal to itself.")
869882 }
870883 else throw("Strict value is not equal to itself.")
871884 }
872885
873886

github/deemru/w8io/169f3d6 
379.01 ms