tx · 2mpv6umohyuNVKvESwUrY9acrJvsuqhcR9NVgpvVxMgD

3MwukwUkp3PsyCrkjMgqiAnSfc1hBD5FQhH:  -0.02500000 Waves

2023.03.16 16:09 [2492622] smart account 3MwukwUkp3PsyCrkjMgqiAnSfc1hBD5FQhH > SELF 0.00000000 Waves

{ "type": 13, "id": "2mpv6umohyuNVKvESwUrY9acrJvsuqhcR9NVgpvVxMgD", "fee": 2500000, "feeAssetId": null, "timestamp": 1678972217856, "version": 2, "chainId": 84, "sender": "3MwukwUkp3PsyCrkjMgqiAnSfc1hBD5FQhH", "senderPublicKey": "5JqBVJpMCyD7dJLJttqYjL6CmJc4zahBHSFjFb7qQTga", "proofs": [ "3L1cCUiuDzZc31dtZxdwcNszC13S9vKbUjjn4cbD5BqjnH6c7xsJa6fDPMnyTdWuZWzyTZA1hBQV6BQj1reKY7nm" ], "script": "base64:BgIhCAISBAoCAQESBgoECAgICBIDCgEYEgASAwoBCBIDCgEBRAADU0VQAgFfAA5fbWluTG9ja3BlcmlvZAABAA1fdW5pdERlY2ltYWxzAIDC1y8ADl9taW5Mb2NrQW1vdW50CQBoAgABBQ1fdW5pdERlY2ltYWxzAA5fbWF4TG9ja0Ftb3VudAkAaAIA6AcFDV91bml0RGVjaW1hbHMAA19EdACAuJkpAQRfUHB5AQpsb2NrUGVyaW9kCQBrAwUNX3VuaXREZWNpbWFscwDtAgUKbG9ja1BlcmlvZAANX2luY3JlbWVudFJlZgkAaAIAwIQ9BQ1fdW5pdERlY2ltYWxzAA5fcGVyY2VudGFnZUZlZQkAawMFDV91bml0RGVjaW1hbHMACgBkABpfcGVyY2VudGFnZVJlZHVjdGlvbkZhY3RvcgIpQ3VycmVudF9QZXJjZW50YWdlUmVkdWN0aW9uX0ZhY3Rvcl9Gb3JfTXIAA19NcgIMTWludGluZ19SYXRlAAxfc3Rhd0Fzc2V0SWQCDFN0YXdfQXNzZXRJZAAIX21hbmFnZXICB21hbmFnZXIABF9EZngCA0RmeAAVX2NpcmN1bGF0aW9uSW5jckluZGV4AhlDaXJjdWxhdGlvbkluY3JlbWVudEluZGV4AA5fbGVzc2VlQWRkcmVzcwIJTGVhc2VOb2RlABpfdXNlckVtaXNzaW9uQW1vdW50Q2xhaW1lZAIVRW1pc3Npb25BbW91bnRDbGFpbWVkABtfdXNlckNhbkNsYWltRW1pc3Npb25BbW91bnQCFkNhbkNsYWltRW1pc3Npb25BbW91bnQADF91c2VyQWRkcmVzcwINV2FsbGV0QWRkcmVzcwAUX3VzZXJMb2NhbEluZGV4Q291bnQCFFRvdGFsRW50cnlJbmRleENvdW50ABBfdXNlclRvdGFsTG9ja2VkAgtUb3RhbExvY2tlZAANX2xvY2tEdXJhdGlvbgIMTG9ja0R1cmF0aW9uAApfbG9ja0luZGV4Ag9HbG9iYWxMb2NrSW5kZXgAB19sb2NrSWQCDkxvY2tJZGVudGlmaWVyAAxfd2F2ZXNBbW91bnQCDUFtb3VudEluV2F2ZXMAC19zdGF3QW1vdW50AgxBbW91bnRJblN0YXcADV9zdGF3TFBBbW91bnQCDkFtb3VudEluU3Rhd0xQAAVfdHhJZAIEVFhJRAANX2xvY2tBdEhlaWdodAIMTG9ja0F0SGVpZ2h0ABRfbG9ja1BlcmlvZEluTWlsaVNlYwIUTG9jS1BlcmlvZEluTWlsbGlTZWMAEl90b3RhbFdhdmVzQ2xhaW1lZAIRVG90YWxXYXZlc0NsYWltZWQAD191c2VyTGVhc2VTdGF0ZQIKTGVhc2VTdGF0ZQAKX3RvdGFsU3RhdwIPVG90YWxTdGF3TWludGVkAA5fdG90YWxXYXZlc1JlZgIQVG90YWxXYXZlc0xvY2tlZAAMX3RvdGFsU3Rhd0xQAgtUb3RhbFN0YXdMUAARX2dsb2JhbEluZGV4Q291bnQCCkluZGV4Q291bnQBBV9nZXRJAQNrZXkJAJoIAgUEdGhpcwUDa2V5AQVfZ2V0UwEDa2V5CQCdCAIFBHRoaXMFA2tleQEFX2dldEIBA2tleQkAmwgCBQR0aGlzBQNrZXkBBl9nZXRCVgEDa2V5CQEFdmFsdWUBCQCbCAIFBHRoaXMFA2tleQEGX2dldElWAQNrZXkJAQV2YWx1ZQEJAJoIAgUEdGhpcwUDa2V5AQZfZ2V0U1YBA2tleQkBBXZhbHVlAQkAnQgCBQR0aGlzBQNrZXkBDF9zZXRQYXJhbVZhbAIDa2V5CmRlZmF1bHRWYWwEByRtYXRjaDAFCmRlZmF1bHRWYWwDCQABAgUHJG1hdGNoMAIGU3RyaW5nBApkZWZhdWx0VmFsBQckbWF0Y2gwAwkBCWlzRGVmaW5lZAEJAQVfZ2V0UwEFA2tleQkBBl9nZXRTVgEFA2tleQUKZGVmYXVsdFZhbAMJAAECBQckbWF0Y2gwAgNJbnQECmRlZmF1bHRWYWwFByRtYXRjaDADCQEJaXNEZWZpbmVkAQkBBV9nZXRJAQUDa2V5CQEGX2dldElWAQUDa2V5BQpkZWZhdWx0VmFsAwkAAQIFByRtYXRjaDACB0Jvb2xlYW4ECmRlZmF1bHRWYWwFByRtYXRjaDADCQEJaXNEZWZpbmVkAQkBBV9nZXRCAQUDa2V5CQEGX2dldEJWAQUDa2V5BQpkZWZhdWx0VmFsCQACAQkArAICAh12YWx1ZSB0eXBlIG5vdCBzdXBwb3J0ZWQgZm9yIAUDa2V5AQ9fdGhyb3dPclJldHVyblMCA3ZhbAVlcnJvcgQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACBlN0cmluZwQDdmFsBQckbWF0Y2gwBQN2YWwJAAIBBQVlcnJvcgEPX3Rocm93T3JSZXR1cm5JAgN2YWwFZXJyb3IEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAgNJbnQEA3ZhbAUHJG1hdGNoMAUDdmFsCQACAQUFZXJyb3IBEl90aHJvd09yUmV0dXJuQm9vbAIDdmFsBWVycm9yBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQDdmFsBQckbWF0Y2gwBQN2YWwJAAIBBQVlcnJvcgEJX3dyaXRlSW50AgNrZXkFdmFsdWUDCQBmAgAABQV2YWx1ZQkAAgEJAKwCAgkArAICCQCsAgICF3dyaXRpbmcgbmVnYXRpdmUgdmFsdWUgCQCkAwEFBXZhbHVlAgkgZm9yIGtleSAFA2tleQkBDEludGVnZXJFbnRyeQIFA2tleQUFdmFsdWUBCV93cml0ZVN0cgIDa2V5BXZhbHVlAwkAAAICASAFBXZhbHVlCQACAQkArAICAhh3cml0aW5nIGFuIGVtcHR5IHN0cmluZyAFBXZhbHVlCQELU3RyaW5nRW50cnkCBQNrZXkFBXZhbHVlAQhfdGhyb3dJZgIJY29uZGl0aW9uBWVycm9yAwUJY29uZGl0aW9uCQACAQUFZXJyb3IGARFfd3JpdGVHbG9iYWxQYXJhbQIDa2V5Bl92YWx1ZQQHJG1hdGNoMAUGX3ZhbHVlAwkAAQIFByRtYXRjaDACA0ludAQGX3ZhbHVlBQckbWF0Y2gwBAVlbnRyeQkAuQkCCQDMCAICAiVkCQDMCAIJAKQDAQUGX3ZhbHVlBQNuaWwFA1NFUAkBCV93cml0ZVN0cgIFA2tleQUFZW50cnkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAZfdmFsdWUFByRtYXRjaDAEBWVudHJ5CQC5CQIJAMwIAgICJXMJAMwIAgUGX3ZhbHVlBQNuaWwFA1NFUAkBCV93cml0ZVN0cgIFA2tleQUFZW50cnkDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQGX3ZhbHVlBQckbWF0Y2gwBAVlbnRyeQkAuQkCCQDMCAICAiViCQDMCAIJAKUDAQUGX3ZhbHVlBQNuaWwFA1NFUAkBCV93cml0ZVN0cgIFA2tleQUFZW50cnkJAAIBAhJ0eXBlIG5vdCBzdXBwb3J0ZWQBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBA2tleQQJX3Jhd1ZhbHVlCQEPX3Rocm93T3JSZXR1cm5TAgkBBV9nZXRTAQUDa2V5Ag9lbnRyeSBub3QgZm91bmQDCQAAAgUJX3Jhd1ZhbHVlBQlfcmF3VmFsdWUEAXgJALUJAgUJX3Jhd1ZhbHVlBQNTRVAED2Zvcm1hdFNwZWNpZmllcgkAsgICCQCRAwIFAXgAAAABBAxfdmFsdWVTdHJpbmcJAJEDAgUBeAkAZQIJAJADAQUBeAABBAZfdmFsdWUDCQAAAgUPZm9ybWF0U3BlY2lmaWVyAgFzBQxfdmFsdWVTdHJpbmcDCQAAAgUPZm9ybWF0U3BlY2lmaWVyAgFkCQENcGFyc2VJbnRWYWx1ZQEFDF92YWx1ZVN0cmluZwMJAAACBQ9mb3JtYXRTcGVjaWZpZXICAWIJANkEAQUMX3ZhbHVlU3RyaW5nCQACAQkArAICAiNjb3VsZCBub3QgcGFyc2UgcmVnaXN0cnkgdmFsdWUgZm9yIAUDa2V5BQZfdmFsdWUJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BDl9kYXlzVG9NaWxpU2VjAQRkYXlzBAVjaGVjawkBCF90aHJvd0lmAgkAZwIAAAUEZGF5cwIVaW52YWxpZCBsb2NraW5nIGRheXMhAwkAAAIFBWNoZWNrBQVjaGVjawkAaAIFBGRheXMFA19EdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgERX3dyaXRlQ29uc3RTdHJpbmcCA2tleQV2YWx1ZQMJAQEhAQkBCWlzRGVmaW5lZAEJAQVfZ2V0UwEFA2tleQkBCV93cml0ZVN0cgIFA2tleQUFdmFsdWUJAAIBCQCsAgICG2VudHJ5IGFscmVhZHkgaW5pdGlhbGl6ZWQ6IAUDa2V5ARJfd3JpdGVDb25zdEludGVnZXICA2tleQV2YWx1ZQMJAQEhAQkBCWlzRGVmaW5lZAEJAQVfZ2V0UwEFA2tleQkBCV93cml0ZUludAIFA2tleQUFdmFsdWUJAAIBCQCsAgICHCBlbnRyeSBhbHJlYWR5IGluaXRpYWxpemVkOiAFA2tleQEMX29ubHlNYW5hZ2VyAQFpBAdtYW5hZ2VyBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFCF9tYW5hZ2VyAwkAAQIFByRtYXRjaDACBlN0cmluZwQDdmFsBQckbWF0Y2gwBQN2YWwCFWZhaWxlZCB0byBnZXQgbWFuYWdlcgMJAAACBQdtYW5hZ2VyBQdtYW5hZ2VyCQEIX3Rocm93SWYCCQECIT0CCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMFB21hbmFnZXICFmFkZHJlc3Mgbm90IGF1dGhvcml6ZWQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BBF9hYnMBA3ZhbAMJAGYCAAAFA3ZhbAkBAS0BBQN2YWwFA3ZhbAEQX3ZhbGlkYXRlQWRkcmVzcwEHYWRkcmVzcwQHJG1hdGNoMAUHYWRkcmVzcwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEB2FkZHJlc3MFByRtYXRjaDAECF9hZGRyZXNzCQCmCAEFB2FkZHJlc3MEByRtYXRjaDEFCF9hZGRyZXNzAwkAAQIFByRtYXRjaDECB0FkZHJlc3MECF9hZGRyZXNzBQckbWF0Y2gxBgkAAgECD2ludmFsaWQgYWRkcmVzcwMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAdhZGRyZXNzBQckbWF0Y2gwBAhfYWRkcmVzcwkApwgBBQdhZGRyZXNzBAckbWF0Y2gxBQhfYWRkcmVzcwMJAAECBQckbWF0Y2gxAgdBZGRyZXNzBAhfYWRkcmVzcwUHJG1hdGNoMQYJAAIBAhJpbnZhbGlkIHB1YmxpYyBrZXkJAAIBAhJpbnZhbGlkIGlucHV0IHR5cGUBDl92YWxpZGF0ZUFzc2V0AQdhc3NldElEBAckbWF0Y2gwCQDsBwEJANkEAQUHYXNzZXRJRAMJAAECBQckbWF0Y2gwAgVBc3NldAQFYXNzZXQFByRtYXRjaDAGBwEKX2NvbXB1dGVNcgAEEGN1cnJlbnRDaXJjSW5kZXgEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUVX2NpcmN1bGF0aW9uSW5jckluZGV4AwkAAQIFByRtYXRjaDACA0ludAQBdAUHJG1hdGNoMAUBdAkAAgECKGNpcmN1bGF0aW9uIGluZGV4IG5vdCBwcmV2aW91c2x5IGRlZmluZWQDCQAAAgUQY3VycmVudENpcmNJbmRleAUQY3VycmVudENpcmNJbmRleAQLc3Rhd0Fzc2V0SWQEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUMX3N0YXdBc3NldElkAwkAAQIFByRtYXRjaDACBlN0cmluZwQBdAUHJG1hdGNoMAUBdAkAAgECH2Fzc2V0IGlkIG5vdCBwcmV2aW91c2x5IGRlZmluZWQDCQAAAgULc3Rhd0Fzc2V0SWQFC3N0YXdBc3NldElkBBVzdGF3Q2lyY3VsYXRpbmdTdXBwbHkEByRtYXRjaDAJAOwHAQkA2QQBBQtzdGF3QXNzZXRJZAMJAAECBQckbWF0Y2gwAgVBc3NldAQFYXNzZXQFByRtYXRjaDAIBQVhc3NldAhxdWFudGl0eQkAAgEJAKwCAgIUYXNzZXQgbm90IGZvdW5kIGZvciAFC3N0YXdBc3NldElkBA11bml0SW5jcmVtZW50CQBpAgkBBF9hYnMBCQBlAgUVc3Rhd0NpcmN1bGF0aW5nU3VwcGx5BQ1faW5jcmVtZW50UmVmBQ1faW5jcmVtZW50UmVmBBduZXdDaXJjdWxhdGlvbkluY3JJbmRleAMJAGYCBQ11bml0SW5jcmVtZW50BRBjdXJyZW50Q2lyY0luZGV4CQBkAgUNdW5pdEluY3JlbWVudAUQY3VycmVudENpcmNJbmRleAUQY3VycmVudENpcmNJbmRleAQJY3VycmVudE1yBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFA19NcgMJAAECBQckbWF0Y2gwAgNJbnQEAXQFByRtYXRjaDAFAXQJAAIBAhtmYWlsZWQgdG8gZ2V0IG1pbml0aW5nIHJhdGUDCQAAAgUXbmV3Q2lyY3VsYXRpb25JbmNySW5kZXgFEGN1cnJlbnRDaXJjSW5kZXgJAJQKAgUJY3VycmVudE1yBQNuaWwEEm5ld3JlZHVjdGlvbkZhY3RvcgQHJG1hdGNoMAkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBRpfcGVyY2VudGFnZVJlZHVjdGlvbkZhY3RvcgMJAAECBQckbWF0Y2gwAgNJbnQEAXQFByRtYXRjaDAFAXQJAAIBAilmYWlsZWQgdG8gZ2V0IHBlcmNlbnRhZ2UgcmVkdWN0aW9uIGZhY3RvcgQMbmV3Q3VycmVudE1yCQBlAgUJY3VycmVudE1yCQBrAwUJY3VycmVudE1yBRJuZXdyZWR1Y3Rpb25GYWN0b3IAZAQGc3RvcmUxCQERX3dyaXRlR2xvYmFsUGFyYW0CBQNfTXIFDG5ld0N1cnJlbnRNcgQGc3RvcmUyCQERX3dyaXRlR2xvYmFsUGFyYW0CBRpfcGVyY2VudGFnZVJlZHVjdGlvbkZhY3RvcgUSbmV3cmVkdWN0aW9uRmFjdG9yBAZzdG9yZTMJARFfd3JpdGVHbG9iYWxQYXJhbQIFFV9jaXJjdWxhdGlvbkluY3JJbmRleAUXbmV3Q2lyY3VsYXRpb25JbmNySW5kZXgJAJQKAgUMbmV3Q3VycmVudE1yCQDMCAIFBnN0b3JlMQkAzAgCBQZzdG9yZTIJAMwIAgUGc3RvcmUzBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BEl91cGRhdGVHbG9iYWxFbnRyeQQLd2F2ZXNBbW91bnQKc3Rhd0Ftb3VudAZzdGF3UEwKaW5kZXhDb3VudAQaX25ld0dsb2JhbFRvdGFsV2F2ZXNBbXRSZWYEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUOX3RvdGFsV2F2ZXNSZWYDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwCQBkAgUBdAULd2F2ZXNBbW91bnQJAAIBAiBmYWlsZWQgdG8gZ2V0IGdsb2JhbCB0b3RhbCB3YXZlcwMJAAACBRpfbmV3R2xvYmFsVG90YWxXYXZlc0FtdFJlZgUaX25ld0dsb2JhbFRvdGFsV2F2ZXNBbXRSZWYEGV9uZXdHbG9iYWxUb3RhbFN0YXdNaW50ZWQEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUKX3RvdGFsU3RhdwMJAAECBQckbWF0Y2gwAgNJbnQEAXQFByRtYXRjaDAJAGQCBQF0BQpzdGF3QW1vdW50CQACAQImZmFpbGVkIHRvIGdldCBnbG9iYWwgdG90YWwgc3RhdyBtaW50ZWQDCQAAAgUZX25ld0dsb2JhbFRvdGFsU3Rhd01pbnRlZAUZX25ld0dsb2JhbFRvdGFsU3Rhd01pbnRlZAQVX25ld0dsb2JhbFRvdGFsU3Rhd1BMBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFDF90b3RhbFN0YXdMUAMJAAECBQckbWF0Y2gwAgNJbnQEAXQFByRtYXRjaDAJAGQCBQF0BQZzdGF3UEwJAAIBAiFmYWlsZWQgdG8gZ2V0IGdsb2JhbCB0b3RhbCBzdGF3cGwDCQAAAgUVX25ld0dsb2JhbFRvdGFsU3Rhd1BMBRVfbmV3R2xvYmFsVG90YWxTdGF3UEwEE19uZXdHbG9iYUluZGV4Q291bnQEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQURX2dsb2JhbEluZGV4Q291bnQDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwCQBkAgUBdAUKaW5kZXhDb3VudAkAAgECIGZhaWxlZCB0byBnZXQgZ2xvYmFsIGluZGV4IGNvdW50AwkAAAIFE19uZXdHbG9iYUluZGV4Q291bnQFE19uZXdHbG9iYUluZGV4Q291bnQJAMwIAgkBEV93cml0ZUdsb2JhbFBhcmFtAgUOX3RvdGFsV2F2ZXNSZWYFGl9uZXdHbG9iYWxUb3RhbFdhdmVzQW10UmVmCQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFCl90b3RhbFN0YXcFGV9uZXdHbG9iYWxUb3RhbFN0YXdNaW50ZWQJAMwIAgkBEV93cml0ZUdsb2JhbFBhcmFtAgUMX3RvdGFsU3Rhd0xQBRVfbmV3R2xvYmFsVG90YWxTdGF3UEwJAMwIAgkBEV93cml0ZUdsb2JhbFBhcmFtAgURX2dsb2JhbEluZGV4Q291bnQFE19uZXdHbG9iYUluZGV4Q291bnQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgESX3JlZ2lzdGVyVXNlckVudHJ5DQ10cmFuc2FjdGlvbklEC3VzZXJBZGRyZXNzDGxvY2tEdXJhdGlvbhJsb2NrRHVyYXRpb25Jbk1pbGkJbG9ja0luZGV4C3dhdmVzQW1vdW50CnN0YXdBbW91bnQMc3Rhd0xQQW1vdW50DGxvY2tBdEhlaWdodAZsb2NrSWQLdG90YWxMb2NrZWQPbG9jYWxJbmRleENvdW50CmxlYXNlU3RhdGUECF90eElkS2V5CQC5CQIJAMwIAgULdXNlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBQVfdHhJZAUDbmlsBQNTRVAEEF9sb2NrRHVyYXRpb25LZXkJALkJAgkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFDV9sb2NrRHVyYXRpb24FA25pbAUDU0VQBA1fbG9ja0luZGV4S2V5CQC5CQIJAMwIAgULdXNlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBQpfbG9ja0luZGV4BQNuaWwFA1NFUAQPX3dhdmVzQW1vdW50S2V5CQC5CQIJAMwIAgULdXNlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBQxfd2F2ZXNBbW91bnQFA25pbAUDU0VQBA5fc3Rhd0Ftb3VudEtleQkAuQkCCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIFDXRyYW5zYWN0aW9uSUQJAMwIAgULX3N0YXdBbW91bnQFA25pbAUDU0VQBBBfc3Rhd0xQQW1vdW50S2V5CQC5CQIJAMwIAgULdXNlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBQ1fc3Rhd0xQQW1vdW50BQNuaWwFA1NFUAQQX2xvY2tBdEhlaWdodEtleQkAuQkCCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIFDXRyYW5zYWN0aW9uSUQJAMwIAgUNX2xvY2tBdEhlaWdodAUDbmlsBQNTRVAECl9sb2NrSWRLZXkJALkJAgkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFB19sb2NrSWQFA25pbAUDU0VQBA9fdG90YWxMb2NrZWRLZXkJALkJAgkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCBRBfdXNlclRvdGFsTG9ja2VkBQNuaWwFA1NFUAQSX2xvY2FsTG9ja0luZGV4S2V5CQC5CQIJAMwIAgULdXNlckFkZHJlc3MJAMwIAgUUX3VzZXJMb2NhbEluZGV4Q291bnQFA25pbAUDU0VQBBdfbG9ja1BlcmlvZEluTWlsaVNlY0tleQkAuQkCCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIFDXRyYW5zYWN0aW9uSUQJAMwIAgUUX2xvY2tQZXJpb2RJbk1pbGlTZWMFA25pbAUDU0VQBBVfdG90YWxXYXZlc0NsYWltZWRLZXkJALkJAgkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFEl90b3RhbFdhdmVzQ2xhaW1lZAUDbmlsBQNTRVAEEl91c2VyTGVhc2VTdGF0ZUtleQkAuQkCCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIFDXRyYW5zYWN0aW9uSUQJAMwIAgUPX3VzZXJMZWFzZVN0YXRlBQNuaWwFA1NFUAQKdHJ4SWRFbnRyeQkAuQkCCQDMCAICAiVzCQDMCAIFDXRyYW5zYWN0aW9uSUQFA25pbAUDU0VQBBFsb2NrRHVyYXRpb25FbnRyeQkAuQkCCQDMCAICAiVkCQDMCAIJAKQDAQUMbG9ja0R1cmF0aW9uBQNuaWwFA1NFUAQObG9ja0luZGV4RW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFCWxvY2tJbmRleAUDbmlsBQNTRVAEEHdhdmVzQW1vdW50RW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFC3dhdmVzQW1vdW50BQNuaWwFA1NFUAQPc3Rhd0Ftb3VudEVudHJ5CQC5CQIJAMwIAgICJWQJAMwIAgkApAMBBQpzdGF3QW1vdW50BQNuaWwFA1NFUAQRc3Rhd0xQQW1vdW50RW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFDHN0YXdMUEFtb3VudAUDbmlsBQNTRVAEEWxvY2tBdEhlaWdodEVudHJ5CQC5CQIJAMwIAgICJWQJAMwIAgkApAMBBQxsb2NrQXRIZWlnaHQFA25pbAUDU0VQBAtsb2NrSWRFbnRyeQkAuQkCCQDMCAICAiViCQDMCAIFBmxvY2tJZAUDbmlsBQNTRVAEEHRvdGFsTG9ja2VkRW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFC3RvdGFsTG9ja2VkBQNuaWwFA1NFUAQTdXNlckxvY2FsSW5kZXhFbnRyeQkAuQkCCQDMCAICAiVkCQDMCAIJAKQDAQUPbG9jYWxJbmRleENvdW50BQNuaWwFA1NFUAQYbG9ja1BlcmlvZEluTWlsaVNlY0VudHJ5CQC5CQIJAMwIAgICJWQJAMwIAgkApAMBBRJsb2NrRHVyYXRpb25Jbk1pbGkFA25pbAUDU0VQBBZ0b3RhbFdhdmVzQ2xhaW1lZEVudHJ5CQC5CQIJAMwIAgICJWQJAMwIAgkApAMBAAAFA25pbAUDU0VQBBN1c2VyTGVhc2VTdGF0ZUVudHJ5CQC5CQIJAMwIAgICJXMJAMwIAgUKbGVhc2VTdGF0ZQUDbmlsBQNTRVAJAMwIAgkBEV93cml0ZUNvbnN0U3RyaW5nAgUIX3R4SWRLZXkFCnRyeElkRW50cnkJAMwIAgkBEV93cml0ZUNvbnN0U3RyaW5nAgUNX2xvY2tJbmRleEtleQUObG9ja0luZGV4RW50cnkJAMwIAgkBCV93cml0ZVN0cgIFEl9sb2NhbExvY2tJbmRleEtleQUTdXNlckxvY2FsSW5kZXhFbnRyeQkAzAgCCQEJX3dyaXRlU3RyAgUPX3RvdGFsTG9ja2VkS2V5BRB0b3RhbExvY2tlZEVudHJ5CQDMCAIJARFfd3JpdGVDb25zdFN0cmluZwIFEF9sb2NrRHVyYXRpb25LZXkFEWxvY2tEdXJhdGlvbkVudHJ5CQDMCAIJARFfd3JpdGVDb25zdFN0cmluZwIFF19sb2NrUGVyaW9kSW5NaWxpU2VjS2V5BRhsb2NrUGVyaW9kSW5NaWxpU2VjRW50cnkJAMwIAgkBEV93cml0ZUNvbnN0U3RyaW5nAgUPX3dhdmVzQW1vdW50S2V5BRB3YXZlc0Ftb3VudEVudHJ5CQDMCAIJARFfd3JpdGVDb25zdFN0cmluZwIFDl9zdGF3QW1vdW50S2V5BQ9zdGF3QW1vdW50RW50cnkJAMwIAgkBCV93cml0ZVN0cgIFEF9zdGF3TFBBbW91bnRLZXkFEXN0YXdMUEFtb3VudEVudHJ5CQDMCAIJAQlfd3JpdGVTdHICBRVfdG90YWxXYXZlc0NsYWltZWRLZXkFFnRvdGFsV2F2ZXNDbGFpbWVkRW50cnkJAMwIAgkBEV93cml0ZUNvbnN0U3RyaW5nAgUQX2xvY2tBdEhlaWdodEtleQURbG9ja0F0SGVpZ2h0RW50cnkJAMwIAgkBEV93cml0ZUNvbnN0U3RyaW5nAgUKX2xvY2tJZEtleQULbG9ja0lkRW50cnkJAMwIAgkBCV93cml0ZVN0cgIFEl91c2VyTGVhc2VTdGF0ZUtleQUTdXNlckxlYXNlU3RhdGVFbnRyeQUDbmlsAQdfc3Rhd01GAgpsb2NrUGVyaW9kD2NvbGxhdGVyYWxXYXZlcwQLX2FkanVzdGVkTXIJAQpfY29tcHV0ZU1yAAQDcmV0CQBoAgkAawMFDV91bml0RGVjaW1hbHMJAGgCBQNfRHQIBQtfYWRqdXN0ZWRNcgJfMQkBBF9QcHkBBQpsb2NrUGVyaW9kBQ9jb2xsYXRlcmFsV2F2ZXMDCQAAAgkAkAMBCAULX2FkanVzdGVkTXICXzIAAAkAlAoCBQNyZXQFA25pbAkAlAoCBQNyZXQIBQtfYWRqdXN0ZWRNcgJfMgESX2VtaXNzaW9uUmF0ZVdhdmVzAgpsb2NrUGVyaW9kCmNvbGxhdGVyYWwED2V4dGVuc2lvbkZhY3RvcgkAawMFCmxvY2tQZXJpb2QADwAKCQBoAgkAaQIFCmNvbGxhdGVyYWwJAGUCCQBoAgUKbG9ja1BlcmlvZAUPZXh0ZW5zaW9uRmFjdG9yBQpsb2NrUGVyaW9kBQNfRHQBEF9pbmNyVG90YWxTdGF3TFABBmFtb3VudAQJb2xkU3Rhd0xQCQEPX3Rocm93T3JSZXR1cm5JAgkBBV9nZXRJAQUMX3RvdGFsU3Rhd0xQAiBjb3VsZCBub3QgZ2V0IHRoZSBydW5uaW5nIFN0YXdMUAkAzAgCCQEJX3dyaXRlSW50AgUMX3RvdGFsU3Rhd0xQCQBkAgUJb2xkU3Rhd0xQBQZhbW91bnQFA25pbAEQX2RlY3JUb3RhbFN0YXdMUAEGYW1vdW50BAlvbGRTdGF3TFAJAQ9fdGhyb3dPclJldHVybkkCCQEFX2dldEkBBQxfdG90YWxTdGF3TFACIGNvdWxkIG5vdCBnZXQgdGhlIHJ1bm5pbmcgU3Rhd0xQCQDMCAIJAQlfd3JpdGVJbnQCBQxfdG90YWxTdGF3TFAJAGUCBQlvbGRTdGF3TFAFBmFtb3VudAUDbmlsARJfaW5jclRvdGFsV2F2ZXNSZWYBBmFtb3VudAQLb2xkV2F2ZXNSZWYJAQ9fdGhyb3dPclJldHVybkkCCQEFX2dldEkBBQ5fdG90YWxXYXZlc1JlZgIgY291bGQgbm90IGdldCB0b3RhbCBsb2NrZWQgd2F2ZXMJAMwIAgkBCV93cml0ZUludAIFDl90b3RhbFdhdmVzUmVmCQBkAgULb2xkV2F2ZXNSZWYFBmFtb3VudAUDbmlsARJfZGVjclRvdGFsV2F2ZXNSZWYBBmFtb3VudAQLb2xkV2F2ZXNSZWYJAQ9fdGhyb3dPclJldHVybkkCCQEFX2dldEkBBQ5fdG90YWxXYXZlc1JlZgIgY291bGQgbm90IGdldCB0b3RhbCBsb2NrZWQgd2F2ZXMJAMwIAgkBCV93cml0ZUludAIFDl90b3RhbFdhdmVzUmVmCQBlAgULb2xkV2F2ZXNSZWYFBmFtb3VudAUDbmlsARBfZ2V0TmV3VGltZVN0YW1wAQtibG9ja0hlaWdodAQEdGltZQQHJG1hdGNoMAkA7QcBBQtibG9ja0hlaWdodAMJAAECBQckbWF0Y2gwAglCbG9ja0luZm8ECHRpbWVJbmZvBQckbWF0Y2gwCAUIdGltZUluZm8JdGltZXN0YW1wCQACAQIUY291bmxkIGdldCB0aW1lc3RhbXAFBHRpbWUGAWkBC2dldEVtaXNzaW9uAgpsb2NrUGVyaW9kCmNvbGxhdGVyYWwEBmNoZWNrMQkBDF9vbmx5TWFuYWdlcgEFAWkDCQAAAgUGY2hlY2sxBQZjaGVjazEJAJQKAgUDbmlsCQESX2VtaXNzaW9uUmF0ZVdhdmVzAgUKbG9ja1BlcmlvZAUKY29sbGF0ZXJhbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQRpbml0BAdtYW5hZ2VyA2RmeAdhc3NldElECWxlYXNlTm9kZQQUbWFuYWdlckFscmVhZHlFeGlzdHMDCQEJaXNEZWZpbmVkAQkBBV9nZXRTAQUIX21hbmFnZXIJAQxfb25seU1hbmFnZXIBBQFpBgMJAAACBRRtYW5hZ2VyQWxyZWFkeUV4aXN0cwUUbWFuYWdlckFscmVhZHlFeGlzdHMEBmNoZWNrMQkBEF92YWxpZGF0ZUFkZHJlc3MBBQdtYW5hZ2VyAwkAAAIFBmNoZWNrMQUGY2hlY2sxBAZjaGVjazIJARBfdmFsaWRhdGVBZGRyZXNzAQUDZGZ4AwkAAAIFBmNoZWNrMgUGY2hlY2syBAZjaGVjazMJARBfdmFsaWRhdGVBZGRyZXNzAQUJbGVhc2VOb2RlAwkAAAIFBmNoZWNrMwUGY2hlY2szBAZjaGVjazQDCQEOX3ZhbGlkYXRlQXNzZXQBBQdhc3NldElEBgkAAgECEGludmFsaWQgYXNzZXQgSWQDCQAAAgUGY2hlY2s0BQZjaGVjazQEEGNpcmN1bGF0aW9uSW5kZXgJAQxfc2V0UGFyYW1WYWwCBRVfY2lyY3VsYXRpb25JbmNySW5kZXgAAAQXcGVyY2VudGFnZVJlZHVjdGlvbkluTXIJAQxfc2V0UGFyYW1WYWwCBRpfcGVyY2VudGFnZVJlZHVjdGlvbkZhY3RvcgAABAJNcgkBDF9zZXRQYXJhbVZhbAIFA19NcgUNX3VuaXREZWNpbWFscwQPdG90YWxTdGF3TWludGVkCQEMX3NldFBhcmFtVmFsAgUKX3RvdGFsU3RhdwAABBh0b3RhbFN0YXdMUEluQ2lyY3VsYXRpb24JAQxfc2V0UGFyYW1WYWwCBQxfdG90YWxTdGF3TFAAAAQQZ2xvYmFsSW5kZXhDb3VudAkBDF9zZXRQYXJhbVZhbAIFEV9nbG9iYWxJbmRleENvdW50AAAEDXRvdGFsV2F2ZXNSZWYJAQxfc2V0UGFyYW1WYWwCBQ5fdG90YWxXYXZlc1JlZgAACQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFCF9tYW5hZ2VyBQdtYW5hZ2VyCQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFBF9EZngFA2RmeAkAzAgCCQERX3dyaXRlR2xvYmFsUGFyYW0CBQxfc3Rhd0Fzc2V0SWQFB2Fzc2V0SUQJAMwIAgkBEV93cml0ZUdsb2JhbFBhcmFtAgUOX2xlc3NlZUFkZHJlc3MFCWxlYXNlTm9kZQkAzAgCCQERX3dyaXRlR2xvYmFsUGFyYW0CBRVfY2lyY3VsYXRpb25JbmNySW5kZXgFEGNpcmN1bGF0aW9uSW5kZXgJAMwIAgkBEV93cml0ZUdsb2JhbFBhcmFtAgUDX01yBQJNcgkAzAgCCQERX3dyaXRlR2xvYmFsUGFyYW0CBRpfcGVyY2VudGFnZVJlZHVjdGlvbkZhY3RvcgUXcGVyY2VudGFnZVJlZHVjdGlvbkluTXIJAMwIAgkBEV93cml0ZUdsb2JhbFBhcmFtAgUOX3RvdGFsV2F2ZXNSZWYFDXRvdGFsV2F2ZXNSZWYJAMwIAgkBEV93cml0ZUdsb2JhbFBhcmFtAgUMX3RvdGFsU3Rhd0xQBRh0b3RhbFN0YXdMUEluQ2lyY3VsYXRpb24JAMwIAgkBEV93cml0ZUdsb2JhbFBhcmFtAgUKX3RvdGFsU3RhdwUPdG90YWxTdGF3TWludGVkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQESbW9kaWZ5R2xvYmFsUGFyYW1zAQN2YWwEBmNoZWNrMQkBDF9vbmx5TWFuYWdlcgEFAWkDCQAAAgUGY2hlY2sxBQZjaGVjazEECGVycm9yTXNnCQC5CQIJAMwIAgIDZ290CQDMCAICDGxpc3Qgc2l6ZSBvZgkAzAgCCQCkAwEJAJADAQUDdmFsCQDMCAICJWJ1dCBleHBlY3RlZCBbZ2xvYmFsX2tleSwgdmFsdWVdIHBhaXIFA25pbAIBIAQGY2hlY2syCQEIX3Rocm93SWYCCQECIT0CCQCQAwEFA3ZhbAACBQhlcnJvck1zZwMJAAACBQZjaGVjazIFBmNoZWNrMgQDa2V5CQCRAwIFA3ZhbAAABAd2YWxUeXBlCQC2CQEJAJEDAgUDdmFsAAEEByRtYXRjaDAFB3ZhbFR5cGUDCQABAgUHJG1hdGNoMAIDSW50BAF4BQckbWF0Y2gwBAt2YWxpZGF0ZUtleQkBCF90aHJvd0lmAgkAAAIJAQVfZ2V0UwEFA2tleQUEdW5pdAkArAICCQCsAgICBGtleSAFA2tleQIPIG5vdCByZWNvZ25pemVkAwkAAAIFC3ZhbGlkYXRlS2V5BQt2YWxpZGF0ZUtleQQQZW5zdXJlVmFsaWRQYWlycwQHJG1hdGNoMQkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBQNrZXkDCQABAgUHJG1hdGNoMQIDSW50BAF0BQckbWF0Y2gxBgkAAgECFmludmFsaWQga2V5LXZhbHVlIHBhaXIDCQAAAgUQZW5zdXJlVmFsaWRQYWlycwUQZW5zdXJlVmFsaWRQYWlycwkAzAgCCQERX3dyaXRlR2xvYmFsUGFyYW0CBQNrZXkFAXgFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMJAAECBQckbWF0Y2gwAgRVbml0BAF4BQckbWF0Y2gwBAt2YWxpZGF0ZUtleQkBCF90aHJvd0lmAgkAAAIJAQVfZ2V0UwEFA2tleQUEdW5pdAkArAICCQCsAgICBGtleSAFA2tleQIPIG5vdCByZWNvZ25pemVkAwkAAAIFC3ZhbGlkYXRlS2V5BQt2YWxpZGF0ZUtleQQLc3RyaW5nVmFsdWUJAJEDAgUDdmFsAAEECnJlZkFkZHJlc3MJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUIX21hbmFnZXIEBmNoZWNrNAQHJG1hdGNoMQUKcmVmQWRkcmVzcwMJAAECBQckbWF0Y2gxAgZTdHJpbmcEB3N0clR5cGUFByRtYXRjaDEDCQAAAgkAsQIBBQdzdHJUeXBlCQCxAgEFC3N0cmluZ1ZhbHVlCQEQX3ZhbGlkYXRlQWRkcmVzcwEFC3N0cmluZ1ZhbHVlAwkBDl92YWxpZGF0ZUFzc2V0AQULc3RyaW5nVmFsdWUGCQACAQIjc3RyaW5nIHR5cGUgZm9yIHZhbHVlIG5vdCBzdXBwb3J0ZWQJAAIBAhx0eXBlIGZvciB2YWx1ZSBub3Qgc3VwcG9ydGVkAwkAAAIFBmNoZWNrNAUGY2hlY2s0CQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFA2tleQULc3RyaW5nVmFsdWUFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgEJAKwCAgIRZmFpbGVkIHRvIG1vZGlmeSAJAJEDAgUDdmFsAAAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKcmV2b2tlTG9jawAEBmNoZWNrMQkBDF9vbmx5TWFuYWdlcgEFAWkDCQAAAgUGY2hlY2sxBQZjaGVjazEFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQVjbGFpbQENdHJhbnNhY3Rpb25JRAQNY2FsbGVyQWRkcmVzcwkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBA1jb2xsYXRlcmFsS2V5CQC5CQIJAMwIAgUNY2FsbGVyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFDF93YXZlc0Ftb3VudAUDbmlsBQNTRVAEDWxvY2twZXJpb2RLZXkJALkJAgkAzAgCBQ1jYWxsZXJBZGRyZXNzCQDMCAIFDXRyYW5zYWN0aW9uSUQJAMwIAgUNX2xvY2tEdXJhdGlvbgUDbmlsBQNTRVAECWxvY2tJZEtleQkAuQkCCQDMCAIFDWNhbGxlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBQdfbG9ja0lkBQNuaWwFA1NFUAQTbG9ja3BlcmlvZEluTWlsaUtleQkAuQkCCQDMCAIFDWNhbGxlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBRRfbG9ja1BlcmlvZEluTWlsaVNlYwUDbmlsBQNTRVAEFHRvdGFsV2F2ZXNDbGFpbWVkS2V5CQC5CQIJAMwIAgUNY2FsbGVyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFEl90b3RhbFdhdmVzQ2xhaW1lZAUDbmlsBQNTRVAED3N0YXdMUEFtb3VudEtleQkAuQkCCQDMCAIFDWNhbGxlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBQ1fc3Rhd0xQQW1vdW50BQNuaWwFA1NFUAQOd2F2ZXNBbW91bnRLZXkJALkJAgkAzAgCBQ1jYWxsZXJBZGRyZXNzCQDMCAIFDXRyYW5zYWN0aW9uSUQJAMwIAgUMX3dhdmVzQW1vdW50BQNuaWwFA1NFUAQXdXNlclRvdGFsV2F2ZXNMb2NrZWRLZXkJALkJAgkAzAgCBQ1jYWxsZXJBZGRyZXNzCQDMCAIFEF91c2VyVG90YWxMb2NrZWQFA25pbAUDU0VQBBF1c2VyTGVhc2VTdGF0ZUtleQkAuQkCCQDMCAIFDWNhbGxlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBQ9fdXNlckxlYXNlU3RhdGUFA25pbAUDU0VQBA1sZWFzZVN0YXRlS2V5CQC5CQIJAMwIAgUNY2FsbGVyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFD191c2VyTGVhc2VTdGF0ZQUDbmlsBQNTRVAEDmdsb2JhbFdhdmVzUmVmBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFDl90b3RhbFdhdmVzUmVmAwkAAQIFByRtYXRjaDACA0ludAQBdAUHJG1hdGNoMAUBdAkAAgECIGZhaWxlZCB0byBnZXQgZ2xvYmFsIHRvdGFsIHdhdmVzAwkAAAIFDmdsb2JhbFdhdmVzUmVmBQ5nbG9iYWxXYXZlc1JlZgQMZ2xvYmFsU3Rhd1BMBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFDF90b3RhbFN0YXdMUAMJAAECBQckbWF0Y2gwAgNJbnQEAXQFByRtYXRjaDAFAXQJAAIBAiBmYWlsZWQgdG8gZ2V0IGdsb2JhbCB0b3RhbCB3YXZlcwMJAAACBQxnbG9iYWxTdGF3UEwFDGdsb2JhbFN0YXdQTAQGbG9ja0lkBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFCWxvY2tJZEtleQMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAF0BQckbWF0Y2gwBQF0CQACAQIWZmFpbGVkIHRvIGdldCBsZWFzZSBpZAMJAAACBQZsb2NrSWQFBmxvY2tJZAQUdXNlclRvdGFsV2F2ZXNMb2NrZWQEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUXdXNlclRvdGFsV2F2ZXNMb2NrZWRLZXkDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwBQF0CQACAQIwZmFpbGVkIHRvIGdldCB0b3RhbCB3YXZlcyBsb2NrZWQgYnkgdGhpcyBhZGRyZXNzAwkAAAIFFHVzZXJUb3RhbFdhdmVzTG9ja2VkBRR1c2VyVG90YWxXYXZlc0xvY2tlZAQLd2F2ZXNBbW91bnQEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUOd2F2ZXNBbW91bnRLZXkDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwBQF0CQACAQIgZmFpbGVkIHRvIGdldCB0b3RhbCB3YXZlcyBsb2NrZWQDCQAAAgULd2F2ZXNBbW91bnQFC3dhdmVzQW1vdW50BBF0b3RhbFdhdmVzQ2xhaW1lZAQHJG1hdGNoMAkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBRR0b3RhbFdhdmVzQ2xhaW1lZEtleQMJAAECBQckbWF0Y2gwAgNJbnQEAXQFByRtYXRjaDAFAXQJAAIBAiFmYWlsZWQgdG8gZ2V0IHRvdGFsIHdhdmVzIGNsYWltZWQDCQAAAgURdG90YWxXYXZlc0NsYWltZWQFEXRvdGFsV2F2ZXNDbGFpbWVkBAxzdGF3TFBBbW91bnQEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUPc3Rhd0xQQW1vdW50S2V5AwkAAQIFByRtYXRjaDACA0ludAQBdAUHJG1hdGNoMAUBdAkAAgECFGZhaWxlZCB0byBnZXQgc3Rhd1BMAwkAAAIFDHN0YXdMUEFtb3VudAUMc3Rhd0xQQW1vdW50BBBsb2NrUGVyaW9kSW5NaWxpBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFE2xvY2twZXJpb2RJbk1pbGlLZXkDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwBQF0CQACAQIiZmFpbGVkIHRvIGdldCBsb2NrIHBlcmlvZCB0aW1lc3BhbQMJAAACBRBsb2NrUGVyaW9kSW5NaWxpBRBsb2NrUGVyaW9kSW5NaWxpBBBjdXJyZW50VGltZVN0YW1wBAckbWF0Y2gwCQEQX2dldE5ld1RpbWVTdGFtcAEFBmhlaWdodAMJAAECBQckbWF0Y2gwAgNJbnQEAXQFByRtYXRjaDAFAXQJAAIBAh9mYWlsZWQgdG8gZ2V0IGN1cnJlbnQgdGltZXN0YW1wAwkAAAIFEGN1cnJlbnRUaW1lU3RhbXAFEGN1cnJlbnRUaW1lU3RhbXAECmNvbGxhdGVyYWwEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUNY29sbGF0ZXJhbEtleQMJAAECBQckbWF0Y2gwAgNJbnQEAXQFByRtYXRjaDAFAXQJAAIBAhhmYWlsZWQgdG8gZ2V0IGNvbGxhdGVyYWwDCQAAAgUKY29sbGF0ZXJhbAUKY29sbGF0ZXJhbAQKbG9ja1BlcmlvZAQHJG1hdGNoMAkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBQ1sb2NrcGVyaW9kS2V5AwkAAQIFByRtYXRjaDACA0ludAQBdAUHJG1hdGNoMAUBdAkAAgECGGZhaWxlZCB0byBnZXQgbG9ja1BlcmlvZAMJAAACBQpsb2NrUGVyaW9kBQpsb2NrUGVyaW9kBBFjdXJyZW50TGVhc2VTdGF0ZQQHJG1hdGNoMAkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBRF1c2VyTGVhc2VTdGF0ZUtleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXQFByRtYXRjaDAFAXQJAAIBAhlmYWlsZWQgdG8gZ2V0IGxlYXNlIHN0YXRlAwkAAAIFEWN1cnJlbnRMZWFzZVN0YXRlBRFjdXJyZW50TGVhc2VTdGF0ZQQKbGVhc2VTdGF0ZQQHJG1hdGNoMAkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBQ1sZWFzZVN0YXRlS2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQBdAUHJG1hdGNoMAUBdAkAAgECImZhaWxlZCB0byBnZXQgbGVhc2Ugc3RhdGUgZm9yIHVzZXIDCQAAAgUKbGVhc2VTdGF0ZQUKbGVhc2VTdGF0ZQQGY2hlY2sxCQEIX3Rocm93SWYCCQBmAgUQbG9ja1BlcmlvZEluTWlsaQUQY3VycmVudFRpbWVTdGFtcAIqbG9jayBwZXJpb2QgZm9yIHRoaXMgZW50cnkgaGFzIG5vdCBlbGFwc2VkAwkAAAIFBmNoZWNrMQUGY2hlY2sxBAtsZWFzZUFjdGlvbgMJAAACBRFjdXJyZW50TGVhc2VTdGF0ZQIGbGVhc2VkCQCUCgIJAQtMZWFzZUNhbmNlbAEFBmxvY2tJZAkBCV93cml0ZVN0cgIFEXVzZXJMZWFzZVN0YXRlS2V5AgljYW5jZWxsZWQJAJQKAgkBCV93cml0ZVN0cgIFEXVzZXJMZWFzZVN0YXRlS2V5AgljYW5jZWxsZWQJAQlfd3JpdGVTdHICBRF1c2VyTGVhc2VTdGF0ZUtleQIJY2FuY2VsbGVkAwkAAAIFC2xlYXNlQWN0aW9uBQtsZWFzZUFjdGlvbgQGY2hlY2syCQEIX3Rocm93SWYCAwkAAAIAAAULd2F2ZXNBbW91bnQGCQAAAgAABQxzdGF3TFBBbW91bnQCIWFsbCBjbGFpbXMgZXhoYXVzdGVkIGZvciB0aGlzIHRyeAMJAAACBQZjaGVjazIFBmNoZWNrMgQSZW1pc3Npb25WYWx1ZVBlckRUCQBoAgkBEl9lbWlzc2lvblJhdGVXYXZlcwIFCmxvY2tQZXJpb2QFCmNvbGxhdGVyYWwFA19EdAQLY2xhaW1BY3Rpb24EDXRpbWVTdGFtcERpZmYJAGUCBRBjdXJyZW50VGltZVN0YW1wBRBsb2NrUGVyaW9kSW5NaWxpBBpkYXlzQWZ0ZXJMb2NrUGVyaW9kRWxhc3BlZAkAaQIFDXRpbWVTdGFtcERpZmYFA19EdAMJAAACBRpkYXlzQWZ0ZXJMb2NrUGVyaW9kRWxhc3BlZAAACQACAQIibGVzcyB0aGFuIDI0aHJzIGJlZm9yZSBmaXJzdCBjbGFpbQMJAQIhPQIJAGoCBQ10aW1lU3RhbXBEaWZmBQNfRHQAAAkAAgECNGFscmVhZHkgY2xhaW1lZCBvciBsZXNzIHRoYW4gMjRocnMgYmVmb3JlIG5leHQgY2xhaW0DCQBmAgUaZGF5c0FmdGVyTG9ja1BlcmlvZEVsYXNwZWQFCmxvY2tQZXJpb2QJAAIBAhRhbGwgY2xhaW1zIGV4aGF1c3RlZAQUdG90YWxBbW91bnRDbGFpbWFibGUJAGgCBRpkYXlzQWZ0ZXJMb2NrUGVyaW9kRWxhc3BlZAUSZW1pc3Npb25WYWx1ZVBlckRUBAhjaGVjazNfMQkBCF90aHJvd0lmAgkAAAIFFHRvdGFsQW1vdW50Q2xhaW1hYmxlBRF0b3RhbFdhdmVzQ2xhaW1lZAIcY2FuIG9ubHkgY2xhaW0gb25jZSBpbiAyNGhycwMJAAACBQhjaGVjazNfMQUIY2hlY2szXzEECGNoZWNrM18yCQEIX3Rocm93SWYCCQBmAgkAZAIFFHRvdGFsQW1vdW50Q2xhaW1hYmxlBRF0b3RhbFdhdmVzQ2xhaW1lZAULd2F2ZXNBbW91bnQCFGFsbCBjbGFpbXMgZXhoYXVzdGVkAwkAAAIFCGNoZWNrM18yBQhjaGVjazNfMgQRY2xhaW1BbW91bnRUb1NlbmQDCQAAAgUaZGF5c0FmdGVyTG9ja1BlcmlvZEVsYXNwZWQAAQUUdG90YWxBbW91bnRDbGFpbWFibGUJAGUCBRR0b3RhbEFtb3VudENsYWltYWJsZQURdG90YWxXYXZlc0NsYWltZWQEEm5ld1RvdGFsV2F2ZXNDbGFpbQUUdG90YWxBbW91bnRDbGFpbWFibGUEDm5ld1dhdmVzQW1vdW50AwkAAAIFGmRheXNBZnRlckxvY2tQZXJpb2RFbGFzcGVkAAEJAGUCBQt3YXZlc0Ftb3VudAUUdG90YWxBbW91bnRDbGFpbWFibGUJAGUCBQt3YXZlc0Ftb3VudAkAZQIFFHRvdGFsQW1vdW50Q2xhaW1hYmxlBRF0b3RhbFdhdmVzQ2xhaW1lZAQPbmV3U3Rhd0xQQW1vdW50AwkAAAIFGmRheXNBZnRlckxvY2tQZXJpb2RFbGFzcGVkAAEJAGUCBQxzdGF3TFBBbW91bnQFFHRvdGFsQW1vdW50Q2xhaW1hYmxlCQBlAgUMc3Rhd0xQQW1vdW50CQBlAgUUdG90YWxBbW91bnRDbGFpbWFibGUFEXRvdGFsV2F2ZXNDbGFpbWVkBBBuZXdHbG9iYWxXYXZlUmVmCQBlAgUOZ2xvYmFsV2F2ZXNSZWYFDm5ld1dhdmVzQW1vdW50BA9uZXdHbG9iYWxTdGF3UEwJAGUCBQxnbG9iYWxTdGF3UEwFD25ld1N0YXdMUEFtb3VudAQXbmV3VXNlclRvdGFsV2F2ZXNMb2NrZWQJAGUCBRR1c2VyVG90YWxXYXZlc0xvY2tlZAURY2xhaW1BbW91bnRUb1NlbmQEEHdhdmVzQW1vdW50RW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFDm5ld1dhdmVzQW1vdW50BQNuaWwFA1NFUAQRc3Rhd0xQQW1vdW50RW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFD25ld1N0YXdMUEFtb3VudAUDbmlsBQNTRVAEFnRvdGFsV2F2ZXNDbGFpbWVkRW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFEm5ld1RvdGFsV2F2ZXNDbGFpbQUDbmlsBQNTRVAEHG5ld1VzZXJUb3RhbFdhdmVzTG9ja2VkRW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFF25ld1VzZXJUb3RhbFdhdmVzTG9ja2VkBQNuaWwFA1NFUAkAzAgCCAULbGVhc2VBY3Rpb24CXzEJAMwIAggFC2xlYXNlQWN0aW9uAl8yCQDMCAIJAQlfd3JpdGVTdHICBQ53YXZlc0Ftb3VudEtleQUQd2F2ZXNBbW91bnRFbnRyeQkAzAgCCQEJX3dyaXRlU3RyAgUPc3Rhd0xQQW1vdW50S2V5BRFzdGF3TFBBbW91bnRFbnRyeQkAzAgCCQEJX3dyaXRlU3RyAgUUdG90YWxXYXZlc0NsYWltZWRLZXkFFnRvdGFsV2F2ZXNDbGFpbWVkRW50cnkJAMwIAgkBCV93cml0ZVN0cgIFF3VzZXJUb3RhbFdhdmVzTG9ja2VkS2V5BRxuZXdVc2VyVG90YWxXYXZlc0xvY2tlZEVudHJ5CQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFDl90b3RhbFdhdmVzUmVmBRBuZXdHbG9iYWxXYXZlUmVmCQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFDF90b3RhbFN0YXdMUAUPbmV3R2xvYmFsU3Rhd1BMCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQgIBQFpBmNhbGxlcgVieXRlcwURY2xhaW1BbW91bnRUb1NlbmQFBHVuaXQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMJAAACBQtjbGFpbUFjdGlvbgULY2xhaW1BY3Rpb24FC2NsYWltQWN0aW9uCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCG1pbnRTdGF3AQpsb2NrUGVyaW9kBA1jYWxsZXJBZGRyZXNzCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMEBXRyeElECQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQEBmNoZWNrMQkBCF90aHJvd0lmAgkBAiE9AgABCQCQAwEIBQFpCHBheW1lbnRzAhRubyBwYXltZW50cyBhdHRhY2hlZAMJAAACBQZjaGVjazEFBmNoZWNrMQQGY2hlY2syAwkBCWlzRGVmaW5lZAEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAkAAgECFG9ubHkgd2F2ZXMgc3VwcG9ydGVkBgMJAAACBQZjaGVjazIFBmNoZWNrMgQNYW1vdW50SW5XYXZlcwgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQEBmNoZWNrMwMDCQBmAgUOX21pbkxvY2tBbW91bnQFDWFtb3VudEluV2F2ZXMGCQBmAgUNYW1vdW50SW5XYXZlcwUOX21heExvY2tBbW91bnQJAAIBAj9sb2NrIGFtb3VudCBvdXQgb2YgcmFuZ2UsIG1pbmltdW06IDEgd2F2ZXMsIG1heGltdW06IDEwMDAgd2F2ZXMGAwkAAAIFBmNoZWNrMwUGY2hlY2szBAZjaGVjazQDCQBmAgUOX21pbkxvY2twZXJpb2QFCmxvY2tQZXJpb2QJAAIBAh5taW5pbXVtIG9mIDE0IGRheXMgbG9jayBwZXJpb2QGAwkAAAIFBmNoZWNrNAUGY2hlY2s0BA10b3RhbFN0YXdNaW50CQEHX3N0YXdNRgIFCmxvY2tQZXJpb2QFDWFtb3VudEluV2F2ZXMEBnN0YXdQTAUNYW1vdW50SW5XYXZlcwQDZmVlCQBrAwgFDXRvdGFsU3Rhd01pbnQCXzEACgBkBBF1c2VyR2V0U3Rhd0Ftb3VudAkAZQIIBQ10b3RhbFN0YXdNaW50Al8xBQNmZWUEE2xvY2tQZXJpb2RUb01pbGlzZWMJAGQCCQEQX2dldE5ld1RpbWVTdGFtcAEFBmhlaWdodAkBDl9kYXlzVG9NaWxpU2VjAQUKbG9ja1BlcmlvZAMJAAACBRNsb2NrUGVyaW9kVG9NaWxpc2VjBRNsb2NrUGVyaW9kVG9NaWxpc2VjBAluZXdfaW5kZXgEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQURX2dsb2JhbEluZGV4Q291bnQDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwCQBkAgUBdAABCQACAQIoZmFpbGVkIHRvIGdldCBjdXJyZW50IGdsb2JhbCBpbmRleCBjb3VudAMJAAACBQluZXdfaW5kZXgFCW5ld19pbmRleAQKYWRkcmVzc0ZlZQQHJG1hdGNoMAkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBQRfRGZ4AwkAAQIFByRtYXRjaDACBlN0cmluZwQBdAUHJG1hdGNoMAkBB0FkZHJlc3MBCQDZBAEFAXQJAAIBAhlmYWlsZWQgdG8gZ2V0IGRmeCBhZGRyZXNzAwkAAAIFCmFkZHJlc3NGZWUFCmFkZHJlc3NGZWUEC3N0YXdBc3NldElkBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFDF9zdGF3QXNzZXRJZAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXQFByRtYXRjaDAJANkEAQUBdAkAAgECFmZhaWxlZCB0byBnZXQgYXNzZXQgaWQDCQAAAgULc3Rhd0Fzc2V0SWQFC3N0YXdBc3NldElkBAZsZXNzZWUEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUOX2xlc3NlZUFkZHJlc3MDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAF0BQckbWF0Y2gwCQEHQWRkcmVzcwEJANkEAQUBdAkAAgECIGZhaWxlZCB0byBnZXQgbGVhc2Ugbm9kZSBhZGRyZXNzAwkAAAIFBmxlc3NlZQUGbGVzc2VlBBB1c2VyTG9ja0luZGV4S2V5CQC5CQIJAMwIAgUNY2FsbGVyQWRkcmVzcwkAzAgCBRRfdXNlckxvY2FsSW5kZXhDb3VudAUDbmlsBQNTRVAEEnVzZXJUb3RhbExvY2tlZEtleQkAuQkCCQDMCAIFDWNhbGxlckFkZHJlc3MJAMwIAgUQX3VzZXJUb3RhbExvY2tlZAUDbmlsBQNTRVAEDnVzZXJJbmRleENvdW50BAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFEHVzZXJMb2NrSW5kZXhLZXkDCQABAgUHJG1hdGNoMAIDSW50BAF4BQckbWF0Y2gwCQBkAgUBeAABAAADCQAAAgUOdXNlckluZGV4Q291bnQFDnVzZXJJbmRleENvdW50BA91c2VyVG90YWxMb2NrZWQEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUSdXNlclRvdGFsTG9ja2VkS2V5AwkAAQIFByRtYXRjaDACA0ludAQBeAUHJG1hdGNoMAkAZAIFAXgFDWFtb3VudEluV2F2ZXMFDWFtb3VudEluV2F2ZXMDCQAAAgUPdXNlclRvdGFsTG9ja2VkBQ91c2VyVG90YWxMb2NrZWQECGxlYXNlT3V0CQDECAIFBmxlc3NlZQUNYW1vdW50SW5XYXZlcwMJAAACBQhsZWFzZU91dAUIbGVhc2VPdXQECmxlYXNlSWRTdHIJANgEAQkAuQgBBQhsZWFzZU91dAMJAAACBQpsZWFzZUlkU3RyBQpsZWFzZUlkU3RyCQDOCAIJAM4IAgkAzggCCQDMCAIFCGxlYXNlT3V0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFCmFkZHJlc3NGZWUFA2ZlZQULc3Rhd0Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCAgFAWkGY2FsbGVyBWJ5dGVzBRF1c2VyR2V0U3Rhd0Ftb3VudAULc3Rhd0Fzc2V0SWQFA25pbAkBEl9yZWdpc3RlclVzZXJFbnRyeQ0FBXRyeElEBQ1jYWxsZXJBZGRyZXNzBQpsb2NrUGVyaW9kBRNsb2NrUGVyaW9kVG9NaWxpc2VjBQluZXdfaW5kZXgFDWFtb3VudEluV2F2ZXMFEXVzZXJHZXRTdGF3QW1vdW50BQZzdGF3UEwFBmhlaWdodAUKbGVhc2VJZFN0cgUPdXNlclRvdGFsTG9ja2VkBQ51c2VySW5kZXhDb3VudAIGbGVhc2VkCQESX3VwZGF0ZUdsb2JhbEVudHJ5BAUNYW1vdW50SW5XYXZlcwgFDXRvdGFsU3Rhd01pbnQCXzEFBnN0YXdQTAUJbmV3X2luZGV4CAUNdG90YWxTdGF3TWludAJfMgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgC4vKCX", "height": 2492622, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4sUvwCRrA7CrbAf9mzqWZ75sgoVJDyGtVbZsLYiL6HKp Next: FVXRvsAJjA4HdbRDCngJKawU5UMqKpkf5ATRYw5nxtSC Diff:
OldNewDifferences
287287 let aC = U
288288 true
289289 }
290- else throw(("invalid asset id: " + aB))
290+ else false
291291 }
292292
293293
526526 let ci = aw(cf)
527527 if ((ci == ci))
528528 then {
529- let cj = aA(aB)
529+ let cj = if (aA(aB))
530+ then true
531+ else throw("invalid asset Id")
530532 if ((cj == cj))
531533 then {
532534 let ck = S(p, 0)
568570 let ak = U
569571 let ct = ad((N(M) == unit), (("key " + M) + " not recognized"))
570572 if ((ct == ct))
571- then [af(M, ak)]
573+ then {
574+ let cu = {
575+ let az = ai(M)
576+ if ($isInstanceOf(az, "Int"))
577+ then {
578+ let aF = az
579+ true
580+ }
581+ else throw("invalid key-value pair")
582+ }
583+ if ((cu == cu))
584+ then [af(M, ak)]
585+ else throw("Strict value is not equal to itself.")
586+ }
572587 else throw("Strict value is not equal to itself.")
573588 }
574589 else if ($isInstanceOf(U, "Unit"))
577592 let ct = ad((N(M) == unit), (("key " + M) + " not recognized"))
578593 if ((ct == ct))
579594 then {
580- let cu = W[1]
581- let cv = ai(n)
595+ let cv = W[1]
596+ let cw = ai(n)
582597 let cj = {
583- let az = cv
598+ let az = cw
584599 if ($isInstanceOf(az, "String"))
585600 then {
586- let cw = az
587- if ((size(cw) == size(cu)))
588- then aw(cu)
589- else aA(cu)
601+ let cx = az
602+ if ((size(cx) == size(cv)))
603+ then aw(cv)
604+ else if (aA(cv))
605+ then true
606+ else throw("string type for value not supported")
590607 }
591- else throw("value type not supported")
608+ else throw("type for value not supported")
592609 }
593610 if ((cj == cj))
594- then [af(M, cu)]
611+ then [af(M, cv)]
595612 else throw("Strict value is not equal to itself.")
596613 }
597614 else throw("Strict value is not equal to itself.")
617634
618635 @Callable(at)
619636 func claim (ba) = {
620- let cx = toBase58String(at.caller.bytes)
621- let cy = makeString([cx, ba, z], a)
622- let cz = makeString([cx, ba, w], a)
623- let cA = makeString([cx, ba, y], a)
624- let cB = makeString([cx, ba, E], a)
625- let cC = makeString([cx, ba, F], a)
626- let cD = makeString([cx, ba, B], a)
627- let cE = makeString([cx, ba, z], a)
628- let cF = makeString([cx, v], a)
629- let cG = makeString([cx, ba, G], a)
630- let cH = makeString([cx, ba, G], a)
631- let cI = {
637+ let cy = toBase58String(at.caller.bytes)
638+ let cz = makeString([cy, ba, z], a)
639+ let cA = makeString([cy, ba, w], a)
640+ let cB = makeString([cy, ba, y], a)
641+ let cC = makeString([cy, ba, E], a)
642+ let cD = makeString([cy, ba, F], a)
643+ let cE = makeString([cy, ba, B], a)
644+ let cF = makeString([cy, ba, z], a)
645+ let cG = makeString([cy, v], a)
646+ let cH = makeString([cy, ba, G], a)
647+ let cI = makeString([cy, ba, G], a)
648+ let cJ = {
632649 let U = ai(I)
633650 if ($isInstanceOf(U, "Int"))
634651 then {
637654 }
638655 else throw("failed to get global total waves")
639656 }
640- if ((cI == cI))
657+ if ((cJ == cJ))
641658 then {
642- let cJ = {
659+ let cK = {
643660 let U = ai(J)
644661 if ($isInstanceOf(U, "Int"))
645662 then {
648665 }
649666 else throw("failed to get global total waves")
650667 }
651- if ((cJ == cJ))
668+ if ((cK == cK))
652669 then {
653670 let bh = {
654- let U = ai(cA)
671+ let U = ai(cB)
655672 if ($isInstanceOf(U, "ByteVector"))
656673 then {
657674 let aF = U
661678 }
662679 if ((bh == bh))
663680 then {
664- let cK = {
665- let U = ai(cF)
681+ let cL = {
682+ let U = ai(cG)
666683 if ($isInstanceOf(U, "Int"))
667684 then {
668685 let aF = U
670687 }
671688 else throw("failed to get total waves locked by this address")
672689 }
673- if ((cK == cK))
690+ if ((cL == cL))
674691 then {
675692 let aR = {
676- let U = ai(cE)
693+ let U = ai(cF)
677694 if ($isInstanceOf(U, "Int"))
678695 then {
679696 let aF = U
683700 }
684701 if ((aR == aR))
685702 then {
686- let cL = {
687- let U = ai(cC)
703+ let cM = {
704+ let U = ai(cD)
688705 if ($isInstanceOf(U, "Int"))
689706 then {
690707 let aF = U
692709 }
693710 else throw("failed to get total waves claimed")
694711 }
695- if ((cL == cL))
712+ if ((cM == cM))
696713 then {
697714 let bf = {
698- let U = ai(cD)
715+ let U = ai(cE)
699716 if ($isInstanceOf(U, "Int"))
700717 then {
701718 let aF = U
705722 }
706723 if ((bf == bf))
707724 then {
708- let cM = {
709- let U = ai(cB)
725+ let cN = {
726+ let U = ai(cC)
710727 if ($isInstanceOf(U, "Int"))
711728 then {
712729 let aF = U
714731 }
715732 else throw("failed to get lock period timespam")
716733 }
717- if ((cM == cM))
734+ if ((cN == cN))
718735 then {
719- let cN = {
736+ let cO = {
720737 let U = bZ(height)
721738 if ($isInstanceOf(U, "Int"))
722739 then {
725742 }
726743 else throw("failed to get current timestamp")
727744 }
728- if ((cN == cN))
745+ if ((cO == cO))
729746 then {
730747 let bQ = {
731- let U = ai(cy)
748+ let U = ai(cz)
732749 if ($isInstanceOf(U, "Int"))
733750 then {
734751 let aF = U
739756 if ((bQ == bQ))
740757 then {
741758 let h = {
742- let U = ai(cz)
759+ let U = ai(cA)
743760 if ($isInstanceOf(U, "Int"))
744761 then {
745762 let aF = U
749766 }
750767 if ((h == h))
751768 then {
752- let cO = {
753- let U = ai(cG)
769+ let cP = {
770+ let U = ai(cH)
754771 if ($isInstanceOf(U, "String"))
755772 then {
756773 let aF = U
758775 }
759776 else throw("failed to get lease state")
760777 }
761- if ((cO == cO))
778+ if ((cP == cP))
762779 then {
763780 let bk = {
764- let U = ai(cH)
781+ let U = ai(cI)
765782 if ($isInstanceOf(U, "String"))
766783 then {
767784 let aF = U
771788 }
772789 if ((bk == bk))
773790 then {
774- let cd = ad((cM > cN), "lock period for this entry has not elapsed")
791+ let cd = ad((cN > cO), "lock period for this entry has not elapsed")
775792 if ((cd == cd))
776793 then {
777- let cP = if ((cO == "leased"))
778- then $Tuple2(LeaseCancel(bh), ac(cG, "cancelled"))
779- else $Tuple2(ac(cG, "cancelled"), ac(cG, "cancelled"))
780- if ((cP == cP))
794+ let cQ = if ((cP == "leased"))
795+ then $Tuple2(LeaseCancel(bh), ac(cH, "cancelled"))
796+ else $Tuple2(ac(cH, "cancelled"), ac(cH, "cancelled"))
797+ if ((cQ == cQ))
781798 then {
782799 let ch = ad(if ((0 == aR))
783800 then true
784801 else (0 == bf), "all claims exhausted for this trx")
785802 if ((ch == ch))
786803 then {
787- let cQ = (bP(h, bQ) * f)
788- let cR = {
789- let cS = (cN - cM)
790- let cT = (cS / f)
791- if ((cT == 0))
804+ let cR = (bP(h, bQ) * f)
805+ let cS = {
806+ let cT = (cO - cN)
807+ let cU = (cT / f)
808+ if ((cU == 0))
792809 then throw("less than 24hrs before first claim")
793- else if (((cS % f) != 0))
810+ else if (((cT % f) != 0))
794811 then throw("already claimed or less than 24hrs before next claim")
795- else if ((cT > h))
812+ else if ((cU > h))
796813 then throw("all claims exhausted")
797814 else {
798- let cU = (cT * cQ)
799- let cV = ad((cU == cL), "can only claim once in 24hrs")
800- if ((cV == cV))
815+ let cV = (cU * cR)
816+ let cW = ad((cV == cM), "can only claim once in 24hrs")
817+ if ((cW == cW))
801818 then {
802- let cW = ad(((cU + cL) > aR), "all claims exhausted")
803- if ((cW == cW))
819+ let cX = ad(((cV + cM) > aR), "all claims exhausted")
820+ if ((cX == cX))
804821 then {
805- let cX = if ((cT == 1))
806- then cU
807- else (cU - cL)
808- let cY = cU
809- let cZ = if ((cT == 1))
810- then (aR - cU)
811- else (aR - (cU - cL))
812- let da = if ((cT == 1))
813- then (bf - cU)
814- else (bf - (cU - cL))
815- let db = (cI - cZ)
822+ let cY = if ((cU == 1))
823+ then cV
824+ else (cV - cM)
825+ let cZ = cV
826+ let da = if ((cU == 1))
827+ then (aR - cV)
828+ else (aR - (cV - cM))
829+ let db = if ((cU == 1))
830+ then (bf - cV)
831+ else (bf - (cV - cM))
816832 let dc = (cJ - da)
817- let dd = (cK - cX)
818- let bB = makeString(["%d", toString(cZ)], a)
819- let bD = makeString(["%d", toString(da)], a)
820- let bJ = makeString(["%d", toString(cY)], a)
821- let de = makeString(["%d", toString(dd)], a)
822-[cP._1, cP._2, ac(cE, bB), ac(cD, bD), ac(cC, bJ), ac(cF, de), af(I, db), af(J, dc), ScriptTransfer(Address(at.caller.bytes), cX, unit)]
833+ let dd = (cK - db)
834+ let de = (cL - cY)
835+ let bB = makeString(["%d", toString(da)], a)
836+ let bD = makeString(["%d", toString(db)], a)
837+ let bJ = makeString(["%d", toString(cZ)], a)
838+ let df = makeString(["%d", toString(de)], a)
839+[cQ._1, cQ._2, ac(cF, bB), ac(cE, bD), ac(cD, bJ), ac(cG, df), af(I, dc), af(J, dd), ScriptTransfer(Address(at.caller.bytes), cY, unit)]
823840 }
824841 else throw("Strict value is not equal to itself.")
825842 }
826843 else throw("Strict value is not equal to itself.")
827844 }
828845 }
829- if ((cR == cR))
830- then cR
846+ if ((cS == cS))
847+ then cS
831848 else throw("Strict value is not equal to itself.")
832849 }
833850 else throw("Strict value is not equal to itself.")
867884
868885 @Callable(at)
869886 func mintStaw (h) = {
870- let cx = toBase58String(at.caller.bytes)
871- let df = toBase58String(at.transactionId)
887+ let cy = toBase58String(at.caller.bytes)
888+ let dg = toBase58String(at.transactionId)
872889 let cd = ad((1 != size(at.payments)), "no payments attached")
873890 if ((cd == cd))
874891 then {
877894 else true
878895 if ((ch == ch))
879896 then {
880- let dg = at.payments[0].amount
881- let ci = if (if ((d > dg))
897+ let dh = at.payments[0].amount
898+ let ci = if (if ((d > dh))
882899 then true
883- else (dg > e))
900+ else (dh > e))
884901 then throw("lock amount out of range, minimum: 1 waves, maximum: 1000 waves")
885902 else true
886903 if ((ci == ci))
890907 else true
891908 if ((cj == cj))
892909 then {
893- let dh = bL(h, dg)
894- let aT = dg
895- let di = fraction(dh._1, 10, 100)
896- let dj = (dh._1 - di)
897- let dk = (bZ(height) + an(h))
898- if ((dk == dk))
910+ let di = bL(h, dh)
911+ let aT = dh
912+ let dj = fraction(di._1, 10, 100)
913+ let dk = (di._1 - dj)
914+ let dl = (bZ(height) + an(h))
915+ if ((dl == dl))
899916 then {
900- let dl = {
917+ let dm = {
901918 let U = ai(K)
902919 if ($isInstanceOf(U, "Int"))
903920 then {
906923 }
907924 else throw("failed to get current global index count")
908925 }
909- if ((dl == dl))
926+ if ((dm == dm))
910927 then {
911- let dm = {
928+ let dn = {
912929 let U = ai(o)
913930 if ($isInstanceOf(U, "String"))
914931 then {
917934 }
918935 else throw("failed to get dfx address")
919936 }
920- if ((dm == dm))
937+ if ((dn == dn))
921938 then {
922939 let aG = {
923940 let U = ai(m)
930947 }
931948 if ((aG == aG))
932949 then {
933- let dn = {
950+ let do = {
934951 let U = ai(q)
935952 if ($isInstanceOf(U, "String"))
936953 then {
939956 }
940957 else throw("failed to get lease node address")
941958 }
942- if ((dn == dn))
959+ if ((do == do))
943960 then {
944- let do = makeString([cx, u], a)
945- let dp = makeString([cx, v], a)
946- let dq = {
947- let U = ai(do)
961+ let dp = makeString([cy, u], a)
962+ let dq = makeString([cy, v], a)
963+ let dr = {
964+ let U = ai(dp)
948965 if ($isInstanceOf(U, "Int"))
949966 then {
950967 let ak = U
952969 }
953970 else 0
954971 }
955- if ((dq == dq))
972+ if ((dr == dr))
956973 then {
957- let dr = {
958- let U = ai(dp)
974+ let ds = {
975+ let U = ai(dq)
959976 if ($isInstanceOf(U, "Int"))
960977 then {
961978 let ak = U
962- (ak + dg)
979+ (ak + dh)
963980 }
964- else dg
981+ else dh
965982 }
966- if ((dr == dr))
983+ if ((ds == ds))
967984 then {
968- let ds = Lease(dn, dg)
969- if ((ds == ds))
985+ let dt = Lease(do, dh)
986+ if ((dt == dt))
970987 then {
971- let dt = toBase58String(calculateLeaseId(ds))
972- if ((dt == dt))
973- then ((([ds, ScriptTransfer(dm, di, aG), ScriptTransfer(Address(at.caller.bytes), dj, aG)] ++ aZ(df, cx, h, dk, dl, dg, dj, aT, height, dt, dr, dq, "leased")) ++ aQ(dg, dh._1, aT, dl)) ++ dh._2)
988+ let du = toBase58String(calculateLeaseId(dt))
989+ if ((du == du))
990+ then ((([dt, ScriptTransfer(dn, dj, aG), ScriptTransfer(Address(at.caller.bytes), dk, aG)] ++ aZ(dg, cy, h, dl, dm, dh, dk, aT, height, du, ds, dr, "leased")) ++ aQ(dh, di._1, aT, dm)) ++ di._2)
974991 else throw("Strict value is not equal to itself.")
975992 }
976993 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
194194 func ai (M) = {
195195 let aj = V(N(M), "entry not found")
196196 if ((aj == aj))
197197 then {
198198 let ak = split(aj, a)
199199 let al = takeRight(ak[0], 1)
200200 let am = ak[(size(ak) - 1)]
201201 let ag = if ((al == "s"))
202202 then am
203203 else if ((al == "d"))
204204 then parseIntValue(am)
205205 else if ((al == "b"))
206206 then fromBase58String(am)
207207 else throw(("could not parse registry value for " + M))
208208 ag
209209 }
210210 else throw("Strict value is not equal to itself.")
211211 }
212212
213213
214214 func an (ao) = {
215215 let ap = ad((0 >= ao), "invalid locking days!")
216216 if ((ap == ap))
217217 then (ao * f)
218218 else throw("Strict value is not equal to itself.")
219219 }
220220
221221
222222 func aq (M,ab) = if (!(isDefined(N(M))))
223223 then ac(M, ab)
224224 else throw(("entry already initialized: " + M))
225225
226226
227227 func ar (M,ab) = if (!(isDefined(N(M))))
228228 then aa(M, ab)
229229 else throw((" entry already initialized: " + M))
230230
231231
232232 func as (at) = {
233233 let au = {
234234 let U = ai(n)
235235 if ($isInstanceOf(U, "String"))
236236 then {
237237 let W = U
238238 W
239239 }
240240 else "failed to get manager"
241241 }
242242 if ((au == au))
243243 then ad((toBase58String(at.caller.bytes) != au), "address not authorized")
244244 else throw("Strict value is not equal to itself.")
245245 }
246246
247247
248248 func av (W) = if ((0 > W))
249249 then -(W)
250250 else W
251251
252252
253253 func aw (ax) = {
254254 let U = ax
255255 if ($isInstanceOf(U, "String"))
256256 then {
257257 let ax = U
258258 let ay = addressFromString(ax)
259259 let az = ay
260260 if ($isInstanceOf(az, "Address"))
261261 then {
262262 let ay = az
263263 true
264264 }
265265 else throw("invalid address")
266266 }
267267 else if ($isInstanceOf(U, "ByteVector"))
268268 then {
269269 let ax = U
270270 let ay = addressFromPublicKey(ax)
271271 let az = ay
272272 if ($isInstanceOf(az, "Address"))
273273 then {
274274 let ay = az
275275 true
276276 }
277277 else throw("invalid public key")
278278 }
279279 else throw("invalid input type")
280280 }
281281
282282
283283 func aA (aB) = {
284284 let U = assetInfo(fromBase58String(aB))
285285 if ($isInstanceOf(U, "Asset"))
286286 then {
287287 let aC = U
288288 true
289289 }
290- else throw(("invalid asset id: " + aB))
290+ else false
291291 }
292292
293293
294294 func aD () = {
295295 let aE = {
296296 let U = ai(p)
297297 if ($isInstanceOf(U, "Int"))
298298 then {
299299 let aF = U
300300 aF
301301 }
302302 else throw("circulation index not previously defined")
303303 }
304304 if ((aE == aE))
305305 then {
306306 let aG = {
307307 let U = ai(m)
308308 if ($isInstanceOf(U, "String"))
309309 then {
310310 let aF = U
311311 aF
312312 }
313313 else throw("asset id not previously defined")
314314 }
315315 if ((aG == aG))
316316 then {
317317 let aH = {
318318 let U = assetInfo(fromBase58String(aG))
319319 if ($isInstanceOf(U, "Asset"))
320320 then {
321321 let aC = U
322322 aC.quantity
323323 }
324324 else throw(("asset not found for " + aG))
325325 }
326326 let aI = (av((aH - i)) / i)
327327 let aJ = if ((aI > aE))
328328 then (aI + aE)
329329 else aE
330330 let aK = {
331331 let U = ai(l)
332332 if ($isInstanceOf(U, "Int"))
333333 then {
334334 let aF = U
335335 aF
336336 }
337337 else throw("failed to get miniting rate")
338338 }
339339 if ((aJ == aE))
340340 then $Tuple2(aK, nil)
341341 else {
342342 let aL = {
343343 let U = ai(k)
344344 if ($isInstanceOf(U, "Int"))
345345 then {
346346 let aF = U
347347 aF
348348 }
349349 else throw("failed to get percentage reduction factor")
350350 }
351351 let aM = (aK - fraction(aK, aL, 100))
352352 let aN = af(l, aM)
353353 let aO = af(k, aL)
354354 let aP = af(p, aJ)
355355 $Tuple2(aM, [aN, aO, aP])
356356 }
357357 }
358358 else throw("Strict value is not equal to itself.")
359359 }
360360 else throw("Strict value is not equal to itself.")
361361 }
362362
363363
364364 func aQ (aR,aS,aT,aU) = {
365365 let aV = {
366366 let U = ai(I)
367367 if ($isInstanceOf(U, "Int"))
368368 then {
369369 let aF = U
370370 (aF + aR)
371371 }
372372 else throw("failed to get global total waves")
373373 }
374374 if ((aV == aV))
375375 then {
376376 let aW = {
377377 let U = ai(H)
378378 if ($isInstanceOf(U, "Int"))
379379 then {
380380 let aF = U
381381 (aF + aS)
382382 }
383383 else throw("failed to get global total staw minted")
384384 }
385385 if ((aW == aW))
386386 then {
387387 let aX = {
388388 let U = ai(J)
389389 if ($isInstanceOf(U, "Int"))
390390 then {
391391 let aF = U
392392 (aF + aT)
393393 }
394394 else throw("failed to get global total stawpl")
395395 }
396396 if ((aX == aX))
397397 then {
398398 let aY = {
399399 let U = ai(K)
400400 if ($isInstanceOf(U, "Int"))
401401 then {
402402 let aF = U
403403 (aF + aU)
404404 }
405405 else throw("failed to get global index count")
406406 }
407407 if ((aY == aY))
408408 then [af(I, aV), af(H, aW), af(J, aX), af(K, aY)]
409409 else throw("Strict value is not equal to itself.")
410410 }
411411 else throw("Strict value is not equal to itself.")
412412 }
413413 else throw("Strict value is not equal to itself.")
414414 }
415415 else throw("Strict value is not equal to itself.")
416416 }
417417
418418
419419 func aZ (ba,bb,bc,bd,be,aR,aS,bf,bg,bh,bi,bj,bk) = {
420420 let bl = makeString([bb, ba, C], a)
421421 let bm = makeString([bb, ba, w], a)
422422 let bn = makeString([bb, ba, x], a)
423423 let bo = makeString([bb, ba, z], a)
424424 let bp = makeString([bb, ba, A], a)
425425 let bq = makeString([bb, ba, B], a)
426426 let br = makeString([bb, ba, D], a)
427427 let bs = makeString([bb, ba, y], a)
428428 let bt = makeString([bb, v], a)
429429 let bu = makeString([bb, u], a)
430430 let bv = makeString([bb, ba, E], a)
431431 let bw = makeString([bb, ba, F], a)
432432 let bx = makeString([bb, ba, G], a)
433433 let by = makeString(["%s", ba], a)
434434 let bz = makeString(["%d", toString(bc)], a)
435435 let bA = makeString(["%d", toString(be)], a)
436436 let bB = makeString(["%d", toString(aR)], a)
437437 let bC = makeString(["%d", toString(aS)], a)
438438 let bD = makeString(["%d", toString(bf)], a)
439439 let bE = makeString(["%d", toString(bg)], a)
440440 let bF = makeString(["%b", bh], a)
441441 let bG = makeString(["%d", toString(bi)], a)
442442 let bH = makeString(["%d", toString(bj)], a)
443443 let bI = makeString(["%d", toString(bd)], a)
444444 let bJ = makeString(["%d", toString(0)], a)
445445 let bK = makeString(["%s", bk], a)
446446 [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)]
447447 }
448448
449449
450450 func bL (h,bM) = {
451451 let bN = aD()
452452 let bO = (fraction(c, (f * bN._1), g(h)) * bM)
453453 if ((size(bN._2) == 0))
454454 then $Tuple2(bO, nil)
455455 else $Tuple2(bO, bN._2)
456456 }
457457
458458
459459 func bP (h,bQ) = {
460460 let bR = fraction(h, 15, 10)
461461 ((bQ / ((h * bR) - h)) * f)
462462 }
463463
464464
465465 func bS (bT) = {
466466 let bU = Y(L(J), "could not get the running StawLP")
467467 [aa(J, (bU + bT))]
468468 }
469469
470470
471471 func bV (bT) = {
472472 let bU = Y(L(J), "could not get the running StawLP")
473473 [aa(J, (bU - bT))]
474474 }
475475
476476
477477 func bW (bT) = {
478478 let bX = Y(L(I), "could not get total locked waves")
479479 [aa(I, (bX + bT))]
480480 }
481481
482482
483483 func bY (bT) = {
484484 let bX = Y(L(I), "could not get total locked waves")
485485 [aa(I, (bX - bT))]
486486 }
487487
488488
489489 func bZ (ca) = {
490490 let cb = {
491491 let U = blockInfoByHeight(ca)
492492 if ($isInstanceOf(U, "BlockInfo"))
493493 then {
494494 let cc = U
495495 cc.timestamp
496496 }
497497 else throw("counld get timestamp")
498498 }
499499 cb
500500 }
501501
502502
503503 @Callable(at)
504504 func getEmission (h,bQ) = {
505505 let cd = as(at)
506506 if ((cd == cd))
507507 then $Tuple2(nil, bP(h, bQ))
508508 else throw("Strict value is not equal to itself.")
509509 }
510510
511511
512512
513513 @Callable(at)
514514 func init (au,ce,aB,cf) = {
515515 let cg = if (isDefined(N(n)))
516516 then as(at)
517517 else true
518518 if ((cg == cg))
519519 then {
520520 let cd = aw(au)
521521 if ((cd == cd))
522522 then {
523523 let ch = aw(ce)
524524 if ((ch == ch))
525525 then {
526526 let ci = aw(cf)
527527 if ((ci == ci))
528528 then {
529- let cj = aA(aB)
529+ let cj = if (aA(aB))
530+ then true
531+ else throw("invalid asset Id")
530532 if ((cj == cj))
531533 then {
532534 let ck = S(p, 0)
533535 let cl = S(k, 0)
534536 let cm = S(l, c)
535537 let cn = S(H, 0)
536538 let co = S(J, 0)
537539 let cp = S(K, 0)
538540 let cq = S(I, 0)
539541 [af(n, au), af(o, ce), af(m, aB), af(q, cf), af(p, ck), af(l, cm), af(k, cl), af(I, cq), af(J, co), af(H, cn)]
540542 }
541543 else throw("Strict value is not equal to itself.")
542544 }
543545 else throw("Strict value is not equal to itself.")
544546 }
545547 else throw("Strict value is not equal to itself.")
546548 }
547549 else throw("Strict value is not equal to itself.")
548550 }
549551 else throw("Strict value is not equal to itself.")
550552 }
551553
552554
553555
554556 @Callable(at)
555557 func modifyGlobalParams (W) = {
556558 let cd = as(at)
557559 if ((cd == cd))
558560 then {
559561 let cr = makeString(["got", "list size of", toString(size(W)), "but expected [global_key, value] pair"], " ")
560562 let ch = ad((size(W) != 2), cr)
561563 if ((ch == ch))
562564 then {
563565 let M = W[0]
564566 let cs = parseInt(W[1])
565567 let U = cs
566568 if ($isInstanceOf(U, "Int"))
567569 then {
568570 let ak = U
569571 let ct = ad((N(M) == unit), (("key " + M) + " not recognized"))
570572 if ((ct == ct))
571- then [af(M, ak)]
573+ then {
574+ let cu = {
575+ let az = ai(M)
576+ if ($isInstanceOf(az, "Int"))
577+ then {
578+ let aF = az
579+ true
580+ }
581+ else throw("invalid key-value pair")
582+ }
583+ if ((cu == cu))
584+ then [af(M, ak)]
585+ else throw("Strict value is not equal to itself.")
586+ }
572587 else throw("Strict value is not equal to itself.")
573588 }
574589 else if ($isInstanceOf(U, "Unit"))
575590 then {
576591 let ak = U
577592 let ct = ad((N(M) == unit), (("key " + M) + " not recognized"))
578593 if ((ct == ct))
579594 then {
580- let cu = W[1]
581- let cv = ai(n)
595+ let cv = W[1]
596+ let cw = ai(n)
582597 let cj = {
583- let az = cv
598+ let az = cw
584599 if ($isInstanceOf(az, "String"))
585600 then {
586- let cw = az
587- if ((size(cw) == size(cu)))
588- then aw(cu)
589- else aA(cu)
601+ let cx = az
602+ if ((size(cx) == size(cv)))
603+ then aw(cv)
604+ else if (aA(cv))
605+ then true
606+ else throw("string type for value not supported")
590607 }
591- else throw("value type not supported")
608+ else throw("type for value not supported")
592609 }
593610 if ((cj == cj))
594- then [af(M, cu)]
611+ then [af(M, cv)]
595612 else throw("Strict value is not equal to itself.")
596613 }
597614 else throw("Strict value is not equal to itself.")
598615 }
599616 else throw(("failed to modify " + W[0]))
600617 }
601618 else throw("Strict value is not equal to itself.")
602619 }
603620 else throw("Strict value is not equal to itself.")
604621 }
605622
606623
607624
608625 @Callable(at)
609626 func revokeLock () = {
610627 let cd = as(at)
611628 if ((cd == cd))
612629 then nil
613630 else throw("Strict value is not equal to itself.")
614631 }
615632
616633
617634
618635 @Callable(at)
619636 func claim (ba) = {
620- let cx = toBase58String(at.caller.bytes)
621- let cy = makeString([cx, ba, z], a)
622- let cz = makeString([cx, ba, w], a)
623- let cA = makeString([cx, ba, y], a)
624- let cB = makeString([cx, ba, E], a)
625- let cC = makeString([cx, ba, F], a)
626- let cD = makeString([cx, ba, B], a)
627- let cE = makeString([cx, ba, z], a)
628- let cF = makeString([cx, v], a)
629- let cG = makeString([cx, ba, G], a)
630- let cH = makeString([cx, ba, G], a)
631- let cI = {
637+ let cy = toBase58String(at.caller.bytes)
638+ let cz = makeString([cy, ba, z], a)
639+ let cA = makeString([cy, ba, w], a)
640+ let cB = makeString([cy, ba, y], a)
641+ let cC = makeString([cy, ba, E], a)
642+ let cD = makeString([cy, ba, F], a)
643+ let cE = makeString([cy, ba, B], a)
644+ let cF = makeString([cy, ba, z], a)
645+ let cG = makeString([cy, v], a)
646+ let cH = makeString([cy, ba, G], a)
647+ let cI = makeString([cy, ba, G], a)
648+ let cJ = {
632649 let U = ai(I)
633650 if ($isInstanceOf(U, "Int"))
634651 then {
635652 let aF = U
636653 aF
637654 }
638655 else throw("failed to get global total waves")
639656 }
640- if ((cI == cI))
657+ if ((cJ == cJ))
641658 then {
642- let cJ = {
659+ let cK = {
643660 let U = ai(J)
644661 if ($isInstanceOf(U, "Int"))
645662 then {
646663 let aF = U
647664 aF
648665 }
649666 else throw("failed to get global total waves")
650667 }
651- if ((cJ == cJ))
668+ if ((cK == cK))
652669 then {
653670 let bh = {
654- let U = ai(cA)
671+ let U = ai(cB)
655672 if ($isInstanceOf(U, "ByteVector"))
656673 then {
657674 let aF = U
658675 aF
659676 }
660677 else throw("failed to get lease id")
661678 }
662679 if ((bh == bh))
663680 then {
664- let cK = {
665- let U = ai(cF)
681+ let cL = {
682+ let U = ai(cG)
666683 if ($isInstanceOf(U, "Int"))
667684 then {
668685 let aF = U
669686 aF
670687 }
671688 else throw("failed to get total waves locked by this address")
672689 }
673- if ((cK == cK))
690+ if ((cL == cL))
674691 then {
675692 let aR = {
676- let U = ai(cE)
693+ let U = ai(cF)
677694 if ($isInstanceOf(U, "Int"))
678695 then {
679696 let aF = U
680697 aF
681698 }
682699 else throw("failed to get total waves locked")
683700 }
684701 if ((aR == aR))
685702 then {
686- let cL = {
687- let U = ai(cC)
703+ let cM = {
704+ let U = ai(cD)
688705 if ($isInstanceOf(U, "Int"))
689706 then {
690707 let aF = U
691708 aF
692709 }
693710 else throw("failed to get total waves claimed")
694711 }
695- if ((cL == cL))
712+ if ((cM == cM))
696713 then {
697714 let bf = {
698- let U = ai(cD)
715+ let U = ai(cE)
699716 if ($isInstanceOf(U, "Int"))
700717 then {
701718 let aF = U
702719 aF
703720 }
704721 else throw("failed to get stawPL")
705722 }
706723 if ((bf == bf))
707724 then {
708- let cM = {
709- let U = ai(cB)
725+ let cN = {
726+ let U = ai(cC)
710727 if ($isInstanceOf(U, "Int"))
711728 then {
712729 let aF = U
713730 aF
714731 }
715732 else throw("failed to get lock period timespam")
716733 }
717- if ((cM == cM))
734+ if ((cN == cN))
718735 then {
719- let cN = {
736+ let cO = {
720737 let U = bZ(height)
721738 if ($isInstanceOf(U, "Int"))
722739 then {
723740 let aF = U
724741 aF
725742 }
726743 else throw("failed to get current timestamp")
727744 }
728- if ((cN == cN))
745+ if ((cO == cO))
729746 then {
730747 let bQ = {
731- let U = ai(cy)
748+ let U = ai(cz)
732749 if ($isInstanceOf(U, "Int"))
733750 then {
734751 let aF = U
735752 aF
736753 }
737754 else throw("failed to get collateral")
738755 }
739756 if ((bQ == bQ))
740757 then {
741758 let h = {
742- let U = ai(cz)
759+ let U = ai(cA)
743760 if ($isInstanceOf(U, "Int"))
744761 then {
745762 let aF = U
746763 aF
747764 }
748765 else throw("failed to get lockPeriod")
749766 }
750767 if ((h == h))
751768 then {
752- let cO = {
753- let U = ai(cG)
769+ let cP = {
770+ let U = ai(cH)
754771 if ($isInstanceOf(U, "String"))
755772 then {
756773 let aF = U
757774 aF
758775 }
759776 else throw("failed to get lease state")
760777 }
761- if ((cO == cO))
778+ if ((cP == cP))
762779 then {
763780 let bk = {
764- let U = ai(cH)
781+ let U = ai(cI)
765782 if ($isInstanceOf(U, "String"))
766783 then {
767784 let aF = U
768785 aF
769786 }
770787 else throw("failed to get lease state for user")
771788 }
772789 if ((bk == bk))
773790 then {
774- let cd = ad((cM > cN), "lock period for this entry has not elapsed")
791+ let cd = ad((cN > cO), "lock period for this entry has not elapsed")
775792 if ((cd == cd))
776793 then {
777- let cP = if ((cO == "leased"))
778- then $Tuple2(LeaseCancel(bh), ac(cG, "cancelled"))
779- else $Tuple2(ac(cG, "cancelled"), ac(cG, "cancelled"))
780- if ((cP == cP))
794+ let cQ = if ((cP == "leased"))
795+ then $Tuple2(LeaseCancel(bh), ac(cH, "cancelled"))
796+ else $Tuple2(ac(cH, "cancelled"), ac(cH, "cancelled"))
797+ if ((cQ == cQ))
781798 then {
782799 let ch = ad(if ((0 == aR))
783800 then true
784801 else (0 == bf), "all claims exhausted for this trx")
785802 if ((ch == ch))
786803 then {
787- let cQ = (bP(h, bQ) * f)
788- let cR = {
789- let cS = (cN - cM)
790- let cT = (cS / f)
791- if ((cT == 0))
804+ let cR = (bP(h, bQ) * f)
805+ let cS = {
806+ let cT = (cO - cN)
807+ let cU = (cT / f)
808+ if ((cU == 0))
792809 then throw("less than 24hrs before first claim")
793- else if (((cS % f) != 0))
810+ else if (((cT % f) != 0))
794811 then throw("already claimed or less than 24hrs before next claim")
795- else if ((cT > h))
812+ else if ((cU > h))
796813 then throw("all claims exhausted")
797814 else {
798- let cU = (cT * cQ)
799- let cV = ad((cU == cL), "can only claim once in 24hrs")
800- if ((cV == cV))
815+ let cV = (cU * cR)
816+ let cW = ad((cV == cM), "can only claim once in 24hrs")
817+ if ((cW == cW))
801818 then {
802- let cW = ad(((cU + cL) > aR), "all claims exhausted")
803- if ((cW == cW))
819+ let cX = ad(((cV + cM) > aR), "all claims exhausted")
820+ if ((cX == cX))
804821 then {
805- let cX = if ((cT == 1))
806- then cU
807- else (cU - cL)
808- let cY = cU
809- let cZ = if ((cT == 1))
810- then (aR - cU)
811- else (aR - (cU - cL))
812- let da = if ((cT == 1))
813- then (bf - cU)
814- else (bf - (cU - cL))
815- let db = (cI - cZ)
822+ let cY = if ((cU == 1))
823+ then cV
824+ else (cV - cM)
825+ let cZ = cV
826+ let da = if ((cU == 1))
827+ then (aR - cV)
828+ else (aR - (cV - cM))
829+ let db = if ((cU == 1))
830+ then (bf - cV)
831+ else (bf - (cV - cM))
816832 let dc = (cJ - da)
817- let dd = (cK - cX)
818- let bB = makeString(["%d", toString(cZ)], a)
819- let bD = makeString(["%d", toString(da)], a)
820- let bJ = makeString(["%d", toString(cY)], a)
821- let de = makeString(["%d", toString(dd)], a)
822-[cP._1, cP._2, ac(cE, bB), ac(cD, bD), ac(cC, bJ), ac(cF, de), af(I, db), af(J, dc), ScriptTransfer(Address(at.caller.bytes), cX, unit)]
833+ let dd = (cK - db)
834+ let de = (cL - cY)
835+ let bB = makeString(["%d", toString(da)], a)
836+ let bD = makeString(["%d", toString(db)], a)
837+ let bJ = makeString(["%d", toString(cZ)], a)
838+ let df = makeString(["%d", toString(de)], a)
839+[cQ._1, cQ._2, ac(cF, bB), ac(cE, bD), ac(cD, bJ), ac(cG, df), af(I, dc), af(J, dd), ScriptTransfer(Address(at.caller.bytes), cY, unit)]
823840 }
824841 else throw("Strict value is not equal to itself.")
825842 }
826843 else throw("Strict value is not equal to itself.")
827844 }
828845 }
829- if ((cR == cR))
830- then cR
846+ if ((cS == cS))
847+ then cS
831848 else throw("Strict value is not equal to itself.")
832849 }
833850 else throw("Strict value is not equal to itself.")
834851 }
835852 else throw("Strict value is not equal to itself.")
836853 }
837854 else throw("Strict value is not equal to itself.")
838855 }
839856 else throw("Strict value is not equal to itself.")
840857 }
841858 else throw("Strict value is not equal to itself.")
842859 }
843860 else throw("Strict value is not equal to itself.")
844861 }
845862 else throw("Strict value is not equal to itself.")
846863 }
847864 else throw("Strict value is not equal to itself.")
848865 }
849866 else throw("Strict value is not equal to itself.")
850867 }
851868 else throw("Strict value is not equal to itself.")
852869 }
853870 else throw("Strict value is not equal to itself.")
854871 }
855872 else throw("Strict value is not equal to itself.")
856873 }
857874 else throw("Strict value is not equal to itself.")
858875 }
859876 else throw("Strict value is not equal to itself.")
860877 }
861878 else throw("Strict value is not equal to itself.")
862879 }
863880 else throw("Strict value is not equal to itself.")
864881 }
865882
866883
867884
868885 @Callable(at)
869886 func mintStaw (h) = {
870- let cx = toBase58String(at.caller.bytes)
871- let df = toBase58String(at.transactionId)
887+ let cy = toBase58String(at.caller.bytes)
888+ let dg = toBase58String(at.transactionId)
872889 let cd = ad((1 != size(at.payments)), "no payments attached")
873890 if ((cd == cd))
874891 then {
875892 let ch = if (isDefined(at.payments[0].assetId))
876893 then throw("only waves supported")
877894 else true
878895 if ((ch == ch))
879896 then {
880- let dg = at.payments[0].amount
881- let ci = if (if ((d > dg))
897+ let dh = at.payments[0].amount
898+ let ci = if (if ((d > dh))
882899 then true
883- else (dg > e))
900+ else (dh > e))
884901 then throw("lock amount out of range, minimum: 1 waves, maximum: 1000 waves")
885902 else true
886903 if ((ci == ci))
887904 then {
888905 let cj = if ((b > h))
889906 then throw("minimum of 14 days lock period")
890907 else true
891908 if ((cj == cj))
892909 then {
893- let dh = bL(h, dg)
894- let aT = dg
895- let di = fraction(dh._1, 10, 100)
896- let dj = (dh._1 - di)
897- let dk = (bZ(height) + an(h))
898- if ((dk == dk))
910+ let di = bL(h, dh)
911+ let aT = dh
912+ let dj = fraction(di._1, 10, 100)
913+ let dk = (di._1 - dj)
914+ let dl = (bZ(height) + an(h))
915+ if ((dl == dl))
899916 then {
900- let dl = {
917+ let dm = {
901918 let U = ai(K)
902919 if ($isInstanceOf(U, "Int"))
903920 then {
904921 let aF = U
905922 (aF + 1)
906923 }
907924 else throw("failed to get current global index count")
908925 }
909- if ((dl == dl))
926+ if ((dm == dm))
910927 then {
911- let dm = {
928+ let dn = {
912929 let U = ai(o)
913930 if ($isInstanceOf(U, "String"))
914931 then {
915932 let aF = U
916933 Address(fromBase58String(aF))
917934 }
918935 else throw("failed to get dfx address")
919936 }
920- if ((dm == dm))
937+ if ((dn == dn))
921938 then {
922939 let aG = {
923940 let U = ai(m)
924941 if ($isInstanceOf(U, "String"))
925942 then {
926943 let aF = U
927944 fromBase58String(aF)
928945 }
929946 else throw("failed to get asset id")
930947 }
931948 if ((aG == aG))
932949 then {
933- let dn = {
950+ let do = {
934951 let U = ai(q)
935952 if ($isInstanceOf(U, "String"))
936953 then {
937954 let aF = U
938955 Address(fromBase58String(aF))
939956 }
940957 else throw("failed to get lease node address")
941958 }
942- if ((dn == dn))
959+ if ((do == do))
943960 then {
944- let do = makeString([cx, u], a)
945- let dp = makeString([cx, v], a)
946- let dq = {
947- let U = ai(do)
961+ let dp = makeString([cy, u], a)
962+ let dq = makeString([cy, v], a)
963+ let dr = {
964+ let U = ai(dp)
948965 if ($isInstanceOf(U, "Int"))
949966 then {
950967 let ak = U
951968 (ak + 1)
952969 }
953970 else 0
954971 }
955- if ((dq == dq))
972+ if ((dr == dr))
956973 then {
957- let dr = {
958- let U = ai(dp)
974+ let ds = {
975+ let U = ai(dq)
959976 if ($isInstanceOf(U, "Int"))
960977 then {
961978 let ak = U
962- (ak + dg)
979+ (ak + dh)
963980 }
964- else dg
981+ else dh
965982 }
966- if ((dr == dr))
983+ if ((ds == ds))
967984 then {
968- let ds = Lease(dn, dg)
969- if ((ds == ds))
985+ let dt = Lease(do, dh)
986+ if ((dt == dt))
970987 then {
971- let dt = toBase58String(calculateLeaseId(ds))
972- if ((dt == dt))
973- then ((([ds, ScriptTransfer(dm, di, aG), ScriptTransfer(Address(at.caller.bytes), dj, aG)] ++ aZ(df, cx, h, dk, dl, dg, dj, aT, height, dt, dr, dq, "leased")) ++ aQ(dg, dh._1, aT, dl)) ++ dh._2)
988+ let du = toBase58String(calculateLeaseId(dt))
989+ if ((du == du))
990+ then ((([dt, ScriptTransfer(dn, dj, aG), ScriptTransfer(Address(at.caller.bytes), dk, aG)] ++ aZ(dg, cy, h, dl, dm, dh, dk, aT, height, du, ds, dr, "leased")) ++ aQ(dh, di._1, aT, dm)) ++ di._2)
974991 else throw("Strict value is not equal to itself.")
975992 }
976993 else throw("Strict value is not equal to itself.")
977994 }
978995 else throw("Strict value is not equal to itself.")
979996 }
980997 else throw("Strict value is not equal to itself.")
981998 }
982999 else throw("Strict value is not equal to itself.")
9831000 }
9841001 else throw("Strict value is not equal to itself.")
9851002 }
9861003 else throw("Strict value is not equal to itself.")
9871004 }
9881005 else throw("Strict value is not equal to itself.")
9891006 }
9901007 else throw("Strict value is not equal to itself.")
9911008 }
9921009 else throw("Strict value is not equal to itself.")
9931010 }
9941011 else throw("Strict value is not equal to itself.")
9951012 }
9961013 else throw("Strict value is not equal to itself.")
9971014 }
9981015 else throw("Strict value is not equal to itself.")
9991016 }
10001017
10011018

github/deemru/w8io/169f3d6 
283.34 ms