tx · 54YHmkeSVffCtcssMNrTxWs5LMt75N1HWxhinakBfGP9

3N87pMbUtdD1KCJh22ug94QzXiN2Py95cUm:  -0.02700000 Waves

2022.08.15 11:13 [2185325] smart account 3N87pMbUtdD1KCJh22ug94QzXiN2Py95cUm > SELF 0.00000000 Waves

{ "type": 13, "id": "54YHmkeSVffCtcssMNrTxWs5LMt75N1HWxhinakBfGP9", "fee": 2700000, "feeAssetId": null, "timestamp": 1660551086994, "version": 2, "chainId": 84, "sender": "3N87pMbUtdD1KCJh22ug94QzXiN2Py95cUm", "senderPublicKey": "2qzGZhC36wAyrGHApWNkaeMbsx7112N9uMUHCcDrev5a", "proofs": [ "TEzFof2qnVKS81RZA69sELyrZhUftWruNmUJ3aeMbjcnN5n53wEx7jDBTjkrAUwXxkYMGYFWaapN5FHKW1qfPhq", "PcBRRY1NGo9yRUTWPGSzPQDG3aYZ1kfNDLQxTpUu2axDJDdFdPewDCKJEbYkxnap1fLhD83pBkxcGb2KTsLsZ4P" ], "script": "base64:BgIwCAISAwoBBBIHCgUBAQgIBBIDCgEBEgMKAQESABIDCgEBEgASABIAEgUKAwQBCBIAWgAHdmVyc2lvbgIFMS4wLjAACGtWZXJzaW9uAgd2ZXJzaW9uAAdrQWN0aXZlAgZhY3RpdmUACWtBc3NldElkQQIKQV9hc3NldF9pZAAJa0Fzc2V0SWRCAgpCX2Fzc2V0X2lkAAlrQmFsYW5jZUECD0FfYXNzZXRfYmFsYW5jZQAJa0JhbGFuY2VCAg9CX2Fzc2V0X2JhbGFuY2UADWtCYWxhbmNlSW5pdEECDEFfYXNzZXRfaW5pdAANa0JhbGFuY2VJbml0QgIMQl9hc3NldF9pbml0AA1rU2hhcmVBc3NldElkAg5zaGFyZV9hc3NldF9pZAARa1NoYXJlQXNzZXRTdXBwbHkCEnNoYXJlX2Fzc2V0X3N1cHBseQAEa0ZlZQIKY29tbWlzc2lvbgAGa0NhdXNlAg5zaHV0ZG93bl9jYXVzZQANa0ZpcnN0SGFydmVzdAINZmlyc3RfaGFydmVzdAATa0ZpcnN0SGFydmVzdEhlaWdodAIUZmlyc3RfaGFydmVzdF9oZWlnaHQAC2tTaGFyZUxpbWl0AhxzaGFyZV9saW1pdF9vbl9maXJzdF9oYXJ2ZXN0AAtrQmFzZVBlcmlvZAILYmFzZV9wZXJpb2QADWtQZXJpb2RMZW5ndGgCDXBlcmlvZF9sZW5ndGgADGtTdGFydEhlaWdodAIMc3RhcnRfaGVpZ2h0AAxrVVNETkFkZHJlc3MCGHN0YWtpbmdfdXNkbm5zYnRfYWRkcmVzcwAMa0VVUk5BZGRyZXNzAhRzdGFraW5nX2V1cm5fYWRkcmVzcwAMa0xlYXNpbmdQb29sAg9sZWFzaW5nX2FkZHJlc3MADmtMZWFzaW5nQW1vdW50Ag5sZWFzaW5nX2Ftb3VudAAKa0xlYXNpbmdJZAIKbGVhc2luZ19pZAAKa0Rpc2NvdW50cwIJZGlzY291bnRzAA9rRGlzY291bnRWYWx1ZXMCD2Rpc2NvdW50X3ZhbHVlcwAOa1VzZXJTd29wSW5Hb3YCDF9TV09QX2Ftb3VudAANa0FkbWluUHViS2V5MQILYWRtaW5fcHViXzEADWtBZG1pblB1YktleTICC2FkbWluX3B1Yl8yAA1rQWRtaW5QdWJLZXkzAgthZG1pbl9wdWJfMwASa0FkbWluSW52b2tlUHViS2V5AhBhZG1pbl9pbnZva2VfcHViABBrTW9uZXlCb3hBZGRyZXNzAhFtb25leV9ib3hfYWRkcmVzcwALa0dvdkFkZHJlc3MCEmdvdmVybmFuY2VfYWRkcmVzcwAGb3JhY2xlCQEHQWRkcmVzcwEBGgFU6UWqHpAvOq7xug7mLpqSXxqYhOHzYrMIARNnZXRCYXNlNThGcm9tT3JhY2xlAQNrZXkEByRtYXRjaDAJAJ0IAgUGb3JhY2xlBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAZzdHJpbmcFByRtYXRjaDAJANkEAQUGc3RyaW5nBAdub3RoaW5nBQckbWF0Y2gwCQACAQkArAICBQNrZXkCCGlzIGVtcHR5AAxhZG1pblB1YktleTEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUNa0FkbWluUHViS2V5MQAMYWRtaW5QdWJLZXkyCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDWtBZG1pblB1YktleTIADGFkbWluUHViS2V5MwkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQ1rQWRtaW5QdWJLZXkzABFhZG1pbkludm9rZVB1YktleQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBRJrQWRtaW5JbnZva2VQdWJLZXkAD21vbmV5Qm94QWRkcmVzcwkBB0FkZHJlc3MBCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFEGtNb25leUJveEFkZHJlc3MACmdvdkFkZHJlc3MJAQdBZGRyZXNzAQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQtrR292QWRkcmVzcwANdm90aW5nQWRkcmVzcwkBB0FkZHJlc3MBARoBVBo2ft9Xop0naVz+v/cm1Of7ocNoPiDKfwAEVVNETgEgtiYpwwT1zlORpA5LdSQvZIxRsfrfr1QpvUjSHSqyqtEABFNXT1ABIBL/gSCRSG6zQPbTfRMYQlf9b6H7MtOq7M1qP51pfTv4AARFVVJOASC5Z5NGA24nxYUbEXPdrrZLY4Sxi6STB6sJw8yEwLMudQANc3Rha2luZ0Fzc2V0cwkAzAgCAgVXQVZFUwkAzAgCCQDYBAEFBFVTRE4JAMwIAgkA2AQBBQRFVVJOBQNuaWwAEnN0YWtpbmdVU0ROQWRkcmVzcwkBB0FkZHJlc3MBCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDGtVU0ROQWRkcmVzcwASc3Rha2luZ0VVUk5BZGRyZXNzCQEHQWRkcmVzcwEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUMa0VVUk5BZGRyZXNzAApiYXNlUGVyaW9kCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUNdm90aW5nQWRkcmVzcwULa0Jhc2VQZXJpb2QCEUVtcHR5IGtCYXNlUGVyaW9kAAtzdGFydEhlaWdodAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFDXZvdGluZ0FkZHJlc3MFDGtTdGFydEhlaWdodAISRW1wdHkga1N0YXJ0SGVpZ2h0AAxwZXJpb2RMZW5ndGgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQ12b3RpbmdBZGRyZXNzBQ1rUGVyaW9kTGVuZ3RoAhNFbXB0eSBrUGVyaW9kTGVuZ3RoABVmaXJzdEhhcnZlc3RFbmRQZXJpb2QJAGQCCQBkAgUKYmFzZVBlcmlvZAkAaQIJAGUCBQZoZWlnaHQFC3N0YXJ0SGVpZ2h0BQxwZXJpb2RMZW5ndGgAAwAGYWN0aXZlCQERQGV4dHJOYXRpdmUoMTA1MSkCBQR0aGlzBQdrQWN0aXZlAAtzdHJBc3NldElkQQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUJa0Fzc2V0SWRBAAtzdHJBc3NldElkQgkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUJa0Fzc2V0SWRCAAhhc3NldElkQQMJAAACBQtzdHJBc3NldElkQQIFV0FWRVMFBHVuaXQJANkEAQULc3RyQXNzZXRJZEEACGFzc2V0SWRCAwkAAAIFC3N0ckFzc2V0SWRCAgVXQVZFUwUEdW5pdAkA2QQBBQtzdHJBc3NldElkQgAKYXNzZXROYW1lQQQHJG1hdGNoMAUIYXNzZXRJZEEDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCaWQFByRtYXRjaDAICQEFdmFsdWUBCQDsBwEFAmlkBG5hbWUDCQABAgUHJG1hdGNoMAIEVW5pdAQFd2F2ZXMFByRtYXRjaDACBVdBVkVTCQACAQILTWF0Y2ggZXJyb3IACmFzc2V0TmFtZUIEByRtYXRjaDAFCGFzc2V0SWRCAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAmlkBQckbWF0Y2gwCAkBBXZhbHVlAQkA7AcBBQJpZARuYW1lAwkAAQIFByRtYXRjaDACBFVuaXQEBXdhdmVzBQckbWF0Y2gwAgVXQVZFUwkAAgECC01hdGNoIGVycm9yAAhiYWxhbmNlQQkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwUJa0JhbGFuY2VBAAhiYWxhbmNlQgkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwUJa0JhbGFuY2VCAAxzaGFyZUFzc2V0SWQJANkEAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUNa1NoYXJlQXNzZXRJZAAQc2hhcmVBc3NldFN1cHBseQkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwURa1NoYXJlQXNzZXRTdXBwbHkAA2ZlZQkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwUEa0ZlZQANZmVlR292ZXJuYW5jZQkAawMFA2ZlZQAoAGQACWZlZVNjYWxlNgDAhD0AC3NjYWxlVmFsdWUzAOgHAAtzY2FsZVZhbHVlOACAwtcvABpzbGlwcGFnZVRvbGVyYW5jZURlbGltaXRlcgDoBwARc2NhbGVWYWx1ZThEaWdpdHMACAEOYWNjb3VudEJhbGFuY2UBB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCaWQFByRtYXRjaDAJAPAHAgUEdGhpcwUCaWQDCQABAgUHJG1hdGNoMAIEVW5pdAQFd2F2ZXMFByRtYXRjaDAICQDvBwEFBHRoaXMJYXZhaWxhYmxlCQACAQILTWF0Y2ggZXJyb3IBDHN0YWtlZEFtb3VudAEHYXNzZXRJZAQWc3Rha2VkQW1vdW50Q2FsY3VsYXRlZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBANhSWQFByRtYXRjaDADCQAAAgUDYUlkBQRVU0ROCQCaCAIFEnN0YWtpbmdVU0ROQWRkcmVzcwkArAICCQCsAgIJAKwCAgIMcnBkX2JhbGFuY2VfCQDYBAEFA2FJZAIBXwkApQgBBQR0aGlzAwkAAAIFA2FJZAUERVVSTgkAmggCBRJzdGFraW5nRVVSTkFkZHJlc3MJAKwCAgkArAICCQCsAgICGCVzJXMlc19fc3Rha2luZ0JhbGFuY2VfXwkA2AQBBQNhSWQCAl9fCQClCAEFBHRoaXMAAAMJAAECBQckbWF0Y2gwAgRVbml0CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFDmtMZWFzaW5nQW1vdW50AAAJAAIBAgtNYXRjaCBlcnJvcgQHJG1hdGNoMAUWc3Rha2VkQW1vdW50Q2FsY3VsYXRlZAMJAAECBQckbWF0Y2gwAgNJbnQEAWkFByRtYXRjaDAFAWkAAAANc3Rha2VkQW1vdW50QQkBDHN0YWtlZEFtb3VudAEFCGFzc2V0SWRBAA1zdGFrZWRBbW91bnRCCQEMc3Rha2VkQW1vdW50AQUIYXNzZXRJZEIACmFzc2V0SW5pdEEJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMFDWtCYWxhbmNlSW5pdEEACmFzc2V0SW5pdEIJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMFDWtCYWxhbmNlSW5pdEIAEWF2YWlsYWJsZUJhbGFuY2VBCQBlAgUIYmFsYW5jZUEFDXN0YWtlZEFtb3VudEEAEWF2YWlsYWJsZUJhbGFuY2VCCQBlAgUIYmFsYW5jZUIFDXN0YWtlZEFtb3VudEIAGWFjY291bnRCYWxhbmNlV2l0aFN0YWtlZEEJAGQCCQEOYWNjb3VudEJhbGFuY2UBBQhhc3NldElkQQUNc3Rha2VkQW1vdW50QQAZYWNjb3VudEJhbGFuY2VXaXRoU3Rha2VkQgkAZAIJAQ5hY2NvdW50QmFsYW5jZQEFCGFzc2V0SWRCBQ1zdGFrZWRBbW91bnRCABBoYXNFbm91Z2hCYWxhbmNlAwkAZwIFGWFjY291bnRCYWxhbmNlV2l0aFN0YWtlZEEFCGJhbGFuY2VBCQBnAgUZYWNjb3VudEJhbGFuY2VXaXRoU3Rha2VkQgUIYmFsYW5jZUIHAQxnZXRBc3NldEluZm8BB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCaWQFByRtYXRjaDAECHN0cmluZ0lkCQDYBAEFAmlkBARpbmZvCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCaWQJAKwCAgkArAICAgZBc3NldCAFCHN0cmluZ0lkAg4gZG9lc24ndCBleGlzdAkAlQoDBQhzdHJpbmdJZAgFBGluZm8EbmFtZQgFBGluZm8IZGVjaW1hbHMDCQABAgUHJG1hdGNoMAIEVW5pdAQFd2F2ZXMFByRtYXRjaDAJAJUKAwIFV0FWRVMCBVdBVkVTAAgJAAIBAgtNYXRjaCBlcnJvcgEWZ2V0QXNzZXRJbmZvRnJvbVN0cmluZwEIYXNzZXRTdHIDCQAAAgUIYXNzZXRTdHICBVdBVkVTCQCVCgMCBVdBVkVTAgVXQVZFUwAIBAhzdHJpbmdJZAUIYXNzZXRTdHIEAmlkCQDZBAEFCGFzc2V0U3RyBARpbmZvCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCaWQJAKwCAgkArAICAgZBc3NldCAFCHN0cmluZ0lkAg4gZG9lc24ndCBleGlzdAkAlQoDBQhzdHJpbmdJZAgFBGluZm8EbmFtZQgFBGluZm8IZGVjaW1hbHMBB3N1c3BlbmQBBWNhdXNlCQDMCAIJAQxCb29sZWFuRW50cnkCBQdrQWN0aXZlBwkAzAgCCQELU3RyaW5nRW50cnkCBQZrQ2F1c2UFBWNhdXNlBQNuaWwBGGNhbGNTdGFraW5nRnVuY0FuZEFkZHJlcwIFc3Rha2UHYXNzZXRJZAMFBXN0YWtlAwkAAAIFB2Fzc2V0SWQFBFVTRE4JAJQKAgIMbG9ja05ldXRyaW5vBRJzdGFraW5nVVNETkFkZHJlc3MJAJQKAgIMc3RhcnRTdGFraW5nBRJzdGFraW5nRVVSTkFkZHJlc3MDCQAAAgUHYXNzZXRJZAUEVVNETgkAlAoCAg51bmxvY2tOZXV0cmlubwUSc3Rha2luZ1VTRE5BZGRyZXNzCQCUCgICC3N0b3BTdGFraW5nBRJzdGFraW5nRVVSTkFkZHJlc3MBEWNhbGNTdGFraW5nUGFyYW1zAwVzdGFrZQZhbW91bnQHYXNzZXRJZAMFBXN0YWtlBAskdDA2MjkwNjM1NgkBGGNhbGNTdGFraW5nRnVuY0FuZEFkZHJlcwIFBXN0YWtlBQdhc3NldElkBARjYWxsCAULJHQwNjI5MDYzNTYCXzEEC3N0YWtpbmdBZGRyCAULJHQwNjI5MDYzNTYCXzIJAJYKBAUEY2FsbAULc3Rha2luZ0FkZHIFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUHYXNzZXRJZAUGYW1vdW50BQNuaWwECyR0MDY0NDI2NTA4CQEYY2FsY1N0YWtpbmdGdW5jQW5kQWRkcmVzAgUFc3Rha2UFB2Fzc2V0SWQEBGNhbGwIBQskdDA2NDQyNjUwOAJfMQQLc3Rha2luZ0FkZHIIBQskdDA2NDQyNjUwOAJfMgkAlgoEBQRjYWxsBQtzdGFraW5nQWRkcgkAzAgCBQZhbW91bnQJAMwIAgkA2AQBBQdhc3NldElkBQNuaWwFA25pbAEUY2FsY3VsYXRlRmVlRGlzY291bnQBCHVzZXJBZGRyBApzd29wQW1vdW50CQELdmFsdWVPckVsc2UCCQCaCAIFCmdvdkFkZHJlc3MJAKwCAgkApQgBBQh1c2VyQWRkcgUOa1VzZXJTd29wSW5Hb3YAAAQOZGlzY291bnRWYWx1ZXMJALUJAgkBEUBleHRyTmF0aXZlKDEwNTMpAgUGb3JhY2xlBQ9rRGlzY291bnRWYWx1ZXMCASwECWRpc2NvdW50cwkAtQkCCQERQGV4dHJOYXRpdmUoMTA1MykCBQZvcmFjbGUFCmtEaXNjb3VudHMCASwDAwkAZwIFCnN3b3BBbW91bnQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQ5kaXNjb3VudFZhbHVlcwAACQBmAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFDmRpc2NvdW50VmFsdWVzAAEFCnN3b3BBbW91bnQHCQBlAgUJZmVlU2NhbGU2CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUJZGlzY291bnRzAAADAwkAZwIFCnN3b3BBbW91bnQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQ5kaXNjb3VudFZhbHVlcwABCQBmAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFDmRpc2NvdW50VmFsdWVzAAIFCnN3b3BBbW91bnQHCQBlAgUJZmVlU2NhbGU2CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUJZGlzY291bnRzAAEDAwkAZwIFCnN3b3BBbW91bnQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQ5kaXNjb3VudFZhbHVlcwACCQBmAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFDmRpc2NvdW50VmFsdWVzAAMFCnN3b3BBbW91bnQHCQBlAgUJZmVlU2NhbGU2CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUJZGlzY291bnRzAAIDAwkAZwIFCnN3b3BBbW91bnQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQ5kaXNjb3VudFZhbHVlcwADCQBmAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFDmRpc2NvdW50VmFsdWVzAAQFCnN3b3BBbW91bnQHCQBlAgUJZmVlU2NhbGU2CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUJZGlzY291bnRzAAMDCQBnAgUKc3dvcEFtb3VudAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFDmRpc2NvdW50VmFsdWVzAAQJAGUCBQlmZWVTY2FsZTYJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQlkaXNjb3VudHMABAUJZmVlU2NhbGU2AQ1jYWxjdWxhdGVGZWVzBQlwbXRBbW91bnQSbWluQW1vdW50VG9SZWNlaXZlCXRva2VuRnJvbQd0b2tlblRvBmNhbGxlcgQQYW1vdW50V2l0aG91dEZlZQkAawMFB3Rva2VuVG8FCXBtdEFtb3VudAkAZAIFCXBtdEFtb3VudAUJdG9rZW5Gcm9tBAtmZWVEaXNjb3VudAkBFGNhbGN1bGF0ZUZlZURpc2NvdW50AQUGY2FsbGVyBA1hbW91bnRXaXRoRmVlCQBrAwUQYW1vdW50V2l0aG91dEZlZQkAZQIFCWZlZVNjYWxlNgkAbgQFA2ZlZQULZmVlRGlzY291bnQFCWZlZVNjYWxlNgUHQ0VJTElORwUJZmVlU2NhbGU2BBBnb3Zlcm5hbmNlUmV3YXJkCQBrAwUQYW1vdW50V2l0aG91dEZlZQkAbgQFDWZlZUdvdmVybmFuY2UFC2ZlZURpc2NvdW50BQlmZWVTY2FsZTYFB0NFSUxJTkcFCWZlZVNjYWxlNgMJAGYCBRJtaW5BbW91bnRUb1JlY2VpdmUFDWFtb3VudFdpdGhGZWUJAAIBCQCsAgIJAKwCAgkArAICAh1DYWxjdWxhdGVkIGFtb3VudCB0byByZWNlaXZlIAkApAMBBQ1hbW91bnRXaXRoRmVlAiAgaXMgbGVzcyB0aGFuIHNwZWNpZmllZCBtaW5pbXVtIAkApAMBBRJtaW5BbW91bnRUb1JlY2VpdmUJAJUKAwUQYW1vdW50V2l0aG91dEZlZQUNYW1vdW50V2l0aEZlZQUQZ292ZXJuYW5jZVJld2FyZAERc3VzcGVuZFN1c3BpY2lvdXMACQEHc3VzcGVuZAEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICI1N1c3BpY2lvdXMgc3RhdGUuIEFjdHVhbCBiYWxhbmNlczogCQCkAwEFGWFjY291bnRCYWxhbmNlV2l0aFN0YWtlZEECASAFCmFzc2V0TmFtZUECAiwgCQCkAwEFGWFjY291bnRCYWxhbmNlV2l0aFN0YWtlZEICASAFCmFzc2V0TmFtZUICCS4gU3RhdGU6IAkApAMBBQhiYWxhbmNlQQIBIAUKYXNzZXROYW1lQQICLCAJAKQDAQUIYmFsYW5jZUICASAFCmFzc2V0TmFtZUIBCGlzQWN0aXZlAAMFBmFjdGl2ZQUEdW5pdAkAAgECH0RBcHAgaXMgaW5hY3RpdmUgYXQgdGhpcyBtb21lbnQLAWkBBGluaXQBDGZpcnN0SGFydmVzdAQLJHQwODgzNTg5MTIJAJQKAggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQKcG10QW1vdW50QQgFCyR0MDg4MzU4OTEyAl8xBAtwbXRBc3NldElkQQgFCyR0MDg4MzU4OTEyAl8yBAskdDA4OTE3ODk5NAkAlAoCCAkAkQMCCAUBaQhwYXltZW50cwABBmFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAQdhc3NldElkBApwbXRBbW91bnRCCAULJHQwODkxNzg5OTQCXzEEC3BtdEFzc2V0SWRCCAULJHQwODkxNzg5OTQCXzIECyR0MDg5OTk5MDc2CQEMZ2V0QXNzZXRJbmZvAQULcG10QXNzZXRJZEEEDnBtdFN0ckFzc2V0SWRBCAULJHQwODk5OTkwNzYCXzEEDXBtdEFzc2V0TmFtZUEIBQskdDA4OTk5OTA3NgJfMgQMcG10RGVjaW1hbHNBCAULJHQwODk5OTkwNzYCXzMECyR0MDkwODE5MTU4CQEMZ2V0QXNzZXRJbmZvAQULcG10QXNzZXRJZEIEDnBtdFN0ckFzc2V0SWRCCAULJHQwOTA4MTkxNTgCXzEEDXBtdEFzc2V0TmFtZUIIBQskdDA5MDgxOTE1OAJfMgQMcG10RGVjaW1hbHNCCAULJHQwOTA4MTkxNTgCXzMDCQEBIQEJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFDGFkbWluUHViS2V5MQkAzAgCBQxhZG1pblB1YktleTIJAMwIAgUMYWRtaW5QdWJLZXkzCQDMCAIFEWFkbWluSW52b2tlUHViS2V5BQNuaWwIBQFpD2NhbGxlclB1YmxpY0tleQkAAgECIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgMJAQlpc0RlZmluZWQBCQCbCAIFBHRoaXMFB2tBY3RpdmUJAAIBAhZEQXBwIGlzIGFscmVhZHkgYWN0aXZlAwkAAAIFC3BtdEFzc2V0SWRBBQtwbXRBc3NldElkQgkAAgECGEFzc2V0cyBtdXN0IGJlIGRpZmZlcmVudAQJc2hhcmVOYW1lCQCsAgIJAKwCAgkArAICAgFzCQCvAgIFDXBtdEFzc2V0TmFtZUEABwIBXwkArwICBQ1wbXRBc3NldE5hbWVCAAcEEHNoYXJlRGVzY3JpcHRpb24JAKwCAgkArAICCQCsAgIJAKwCAgkArAICAiJTaGFyZVRva2VuIG9mIFN3b3BGaSBwcm90b2NvbCBmb3IgBQ1wbXRBc3NldE5hbWVBAgUgYW5kIAUNcG10QXNzZXROYW1lQgIMIGF0IGFkZHJlc3MgCQClCAEFBHRoaXMEDXNoYXJlRGVjaW1hbHMJAGkCCQBkAgUMcG10RGVjaW1hbHNBBQxwbXREZWNpbWFsc0IAAgQEYXJnMQkAbAYFCnBtdEFtb3VudEEFDHBtdERlY2ltYWxzQQAFAAEFDHBtdERlY2ltYWxzQQUERE9XTgQEYXJnMgkAbAYFCnBtdEFtb3VudEIFDHBtdERlY2ltYWxzQgAFAAEFDHBtdERlY2ltYWxzQgUERE9XTgQEYXJnMwkAbAYACgAABQ1zaGFyZURlY2ltYWxzAAAAAAUERE9XTgQSc2hhcmVJbml0aWFsU3VwcGx5CQBrAwUEYXJnMQUEYXJnMgUEYXJnMwQKc2hhcmVJc3N1ZQkAwggFBQlzaGFyZU5hbWUFEHNoYXJlRGVzY3JpcHRpb24FEnNoYXJlSW5pdGlhbFN1cHBseQUNc2hhcmVEZWNpbWFscwYEDHNoYXJlSXNzdWVJZAkAuAgBBQpzaGFyZUlzc3VlBAZzdGFrZTEDCQEPY29udGFpbnNFbGVtZW50AgUNc3Rha2luZ0Fzc2V0cwUOcG10U3RyQXNzZXRJZEEJAPwHBAUEdGhpcwIMc3Rha2VVbnN0YWtlCQDMCAIGCQDMCAIFCnBtdEFtb3VudEEJAMwIAgUOcG10U3RyQXNzZXRJZEEFA25pbAUDbmlsAAADCQAAAgUGc3Rha2UxBQZzdGFrZTEEBnN0YWtlMgMJAQ9jb250YWluc0VsZW1lbnQCBQ1zdGFraW5nQXNzZXRzBQ5wbXRTdHJBc3NldElkQgkA/AcEBQR0aGlzAgxzdGFrZVVuc3Rha2UJAMwIAgYJAMwIAgUKcG10QW1vdW50QgkAzAgCBQ5wbXRTdHJBc3NldElkQgUDbmlsBQNuaWwAAAMJAAACBQZzdGFrZTIFBnN0YWtlMgQJYmFzZUVudHJ5CQDMCAIJAQtTdHJpbmdFbnRyeQIFCGtWZXJzaW9uBQd2ZXJzaW9uCQDMCAIJAQxCb29sZWFuRW50cnkCBQdrQWN0aXZlBgkAzAgCCQELU3RyaW5nRW50cnkCBQlrQXNzZXRJZEEFDnBtdFN0ckFzc2V0SWRBCQDMCAIJAQtTdHJpbmdFbnRyeQIFCWtBc3NldElkQgUOcG10U3RyQXNzZXRJZEIJAMwIAgkBDEludGVnZXJFbnRyeQIFCWtCYWxhbmNlQQUKcG10QW1vdW50QQkAzAgCCQEMSW50ZWdlckVudHJ5AgUJa0JhbGFuY2VCBQpwbXRBbW91bnRCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQRrRmVlCQERQGV4dHJOYXRpdmUoMTA1MCkCBQZvcmFjbGUCDWJhc2VfZmVlX2NwbW0JAMwIAgUKc2hhcmVJc3N1ZQkAzAgCCQELU3RyaW5nRW50cnkCBQ1rU2hhcmVBc3NldElkCQDYBAEFDHNoYXJlSXNzdWVJZAkAzAgCCQEMSW50ZWdlckVudHJ5AgURa1NoYXJlQXNzZXRTdXBwbHkFEnNoYXJlSW5pdGlhbFN1cHBseQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFEnNoYXJlSW5pdGlhbFN1cHBseQUMc2hhcmVJc3N1ZUlkBQNuaWwDBQxmaXJzdEhhcnZlc3QJAM4IAgUJYmFzZUVudHJ5CQDMCAIJAQxCb29sZWFuRW50cnkCBQ1rRmlyc3RIYXJ2ZXN0BQxmaXJzdEhhcnZlc3QJAMwIAgkBDEludGVnZXJFbnRyeQIFE2tGaXJzdEhhcnZlc3RIZWlnaHQJAGQCBQtzdGFydEhlaWdodAkAaAIFFWZpcnN0SGFydmVzdEVuZFBlcmlvZAUMcGVyaW9kTGVuZ3RoBQNuaWwFCWJhc2VFbnRyeQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARFpbml0V2l0aEluaXRSYXRpbwUJYW10QXNzZXRBCWFtdEFzc2V0QgtzdHJBc3NldElkQQtzdHJBc3NldElkQgxmaXJzdEhhcnZlc3QEDSR0MDExNjYzMTE3NTAJARZnZXRBc3NldEluZm9Gcm9tU3RyaW5nAQULc3RyQXNzZXRJZEEEDnBtdFN0ckFzc2V0SWRBCAUNJHQwMTE2NjMxMTc1MAJfMQQNcG10QXNzZXROYW1lQQgFDSR0MDExNjYzMTE3NTACXzIEDHBtdERlY2ltYWxzQQgFDSR0MDExNjYzMTE3NTACXzMEDSR0MDExNzU1MTE4NDIJARZnZXRBc3NldEluZm9Gcm9tU3RyaW5nAQULc3RyQXNzZXRJZEIEDnBtdFN0ckFzc2V0SWRCCAUNJHQwMTE3NTUxMTg0MgJfMQQNcG10QXNzZXROYW1lQggFDSR0MDExNzU1MTE4NDICXzIEDHBtdERlY2ltYWxzQggFDSR0MDExNzU1MTE4NDICXzMDCQEBIQEJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFDGFkbWluUHViS2V5MQkAzAgCBQxhZG1pblB1YktleTIJAMwIAgUMYWRtaW5QdWJLZXkzCQDMCAIFEWFkbWluSW52b2tlUHViS2V5BQNuaWwIBQFpD2NhbGxlclB1YmxpY0tleQkAAgECIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgMJAQlpc0RlZmluZWQBCQCbCAIFBHRoaXMFB2tBY3RpdmUJAAIBAhZEQXBwIGlzIGFscmVhZHkgYWN0aXZlAwkAAAIFC3N0ckFzc2V0SWRBBQtzdHJBc3NldElkQgkAAgECGEFzc2V0cyBtdXN0IGJlIGRpZmZlcmVudAQJc2hhcmVOYW1lCQCsAgIJAKwCAgkArAICAgFzCQCvAgIFDXBtdEFzc2V0TmFtZUEABwIBXwkArwICBQ1wbXRBc3NldE5hbWVCAAcEEHNoYXJlRGVzY3JpcHRpb24JAKwCAgkArAICCQCsAgIJAKwCAgkArAICAiJTaGFyZVRva2VuIG9mIFN3b3BGaSBwcm90b2NvbCBmb3IgBQ1wbXRBc3NldE5hbWVBAgUgYW5kIAUNcG10QXNzZXROYW1lQgIMIGF0IGFkZHJlc3MgCQClCAEFBHRoaXMEDXNoYXJlRGVjaW1hbHMJAGkCCQBkAgUMcG10RGVjaW1hbHNBBQxwbXREZWNpbWFsc0IAAgQSc2hhcmVJbml0aWFsU3VwcGx5AAAECnNoYXJlSXNzdWUJAMIIBQUJc2hhcmVOYW1lBRBzaGFyZURlc2NyaXB0aW9uBRJzaGFyZUluaXRpYWxTdXBwbHkFDXNoYXJlRGVjaW1hbHMGBAxzaGFyZUlzc3VlSWQJALgIAQUKc2hhcmVJc3N1ZQQJYmFzZUVudHJ5CQDMCAIJAQtTdHJpbmdFbnRyeQIFCGtWZXJzaW9uBQd2ZXJzaW9uCQDMCAIJAQxCb29sZWFuRW50cnkCBQdrQWN0aXZlBgkAzAgCCQELU3RyaW5nRW50cnkCBQlrQXNzZXRJZEEFDnBtdFN0ckFzc2V0SWRBCQDMCAIJAQtTdHJpbmdFbnRyeQIFCWtBc3NldElkQgUOcG10U3RyQXNzZXRJZEIJAMwIAgkBDEludGVnZXJFbnRyeQIFDWtCYWxhbmNlSW5pdEEFCWFtdEFzc2V0QQkAzAgCCQEMSW50ZWdlckVudHJ5AgUNa0JhbGFuY2VJbml0QgUJYW10QXNzZXRCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQlrQmFsYW5jZUEAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgUJa0JhbGFuY2VCAAAJAMwIAgkBDEludGVnZXJFbnRyeQIFBGtGZWUJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBm9yYWNsZQINYmFzZV9mZWVfY3BtbQkAzAgCBQpzaGFyZUlzc3VlCQDMCAIJAQtTdHJpbmdFbnRyeQIFDWtTaGFyZUFzc2V0SWQJANgEAQUMc2hhcmVJc3N1ZUlkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRFrU2hhcmVBc3NldFN1cHBseQUSc2hhcmVJbml0aWFsU3VwcGx5BQNuaWwDBQxmaXJzdEhhcnZlc3QJAM4IAgUJYmFzZUVudHJ5CQDMCAIJAQxCb29sZWFuRW50cnkCBQ1rRmlyc3RIYXJ2ZXN0BQxmaXJzdEhhcnZlc3QJAMwIAgkBDEludGVnZXJFbnRyeQIFE2tGaXJzdEhhcnZlc3RIZWlnaHQJAGQCBQtzdGFydEhlaWdodAkAaAIFFWZpcnN0SGFydmVzdEVuZFBlcmlvZAUMcGVyaW9kTGVuZ3RoBQNuaWwFCWJhc2VFbnRyeQFpARhrZWVwTGltaXRGb3JGaXJzdEhhcnZlc3QBCnNoYXJlTGltaXQJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQADCQEBIQEJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFDGFkbWluUHViS2V5MQkAzAgCBQxhZG1pblB1YktleTIJAMwIAgUMYWRtaW5QdWJLZXkzCQDMCAIFEWFkbWluSW52b2tlUHViS2V5BQNuaWwIBQFpD2NhbGxlclB1YmxpY0tleQkAAgECIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgkAzAgCCQEMSW50ZWdlckVudHJ5AgULa1NoYXJlTGltaXQFCnNoYXJlTGltaXQFA25pbAFpARZyZXBsZW5pc2hXaXRoVHdvVG9rZW5zARFzbGlwcGFnZVRvbGVyYW5jZQkBC3ZhbHVlT3JFbHNlAgkBCGlzQWN0aXZlAAQLcG10QXNzZXRJZEEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQLcG10QXNzZXRJZEIICQCRAwIIBQFpCHBheW1lbnRzAAEHYXNzZXRJZAQKcG10QW1vdW50QQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQECnBtdEFtb3VudEIICQCRAwIIBQFpCHBheW1lbnRzAAEGYW1vdW50BA0kdDAxNDIyMTE0Mjk4CQEMZ2V0QXNzZXRJbmZvAQULcG10QXNzZXRJZEEEDnBtdFN0ckFzc2V0SWRBCAUNJHQwMTQyMjExNDI5OAJfMQQNcG10QXNzZXROYW1lQQgFDSR0MDE0MjIxMTQyOTgCXzIEDHBtdERlY2ltYWxzQQgFDSR0MDE0MjIxMTQyOTgCXzMEDSR0MDE0MzAzMTQzODAJAQxnZXRBc3NldEluZm8BBQtwbXRBc3NldElkQgQOcG10U3RyQXNzZXRJZEIIBQ0kdDAxNDMwMzE0MzgwAl8xBA1wbXRBc3NldE5hbWVCCAUNJHQwMTQzMDMxNDM4MAJfMgQMcG10RGVjaW1hbHNCCAUNJHQwMTQzMDMxNDM4MAJfMwQGaW5pdGFsAwMJAAACBQhiYWxhbmNlQQAACQAAAgUIYmFsYW5jZUIAAAcGBwQKdG9rZW5SYXRpbwMFBmluaXRhbAkAawMJAGsDBQphc3NldEluaXRBBQtzY2FsZVZhbHVlOAUKcG10QW1vdW50QQULc2NhbGVWYWx1ZTMJAGsDBQphc3NldEluaXRCBQtzY2FsZVZhbHVlOAUKcG10QW1vdW50QgkAawMJAGsDBQhiYWxhbmNlQQULc2NhbGVWYWx1ZTgFCnBtdEFtb3VudEEFC3NjYWxlVmFsdWUzCQBrAwUIYmFsYW5jZUIFC3NjYWxlVmFsdWU4BQpwbXRBbW91bnRCBA1zaGFyZURlY2ltYWxzCQBpAgkAZAIFDHBtdERlY2ltYWxzQQUMcG10RGVjaW1hbHNCAAIEFXNoYXJlVG9rZW5Ub1BheUFtb3VudAMFBmluaXRhbAkAawMJAGwGBQpwbXRBbW91bnRBBQxwbXREZWNpbWFsc0EABQABBQxwbXREZWNpbWFsc0EFBERPV04JAGwGBQpwbXRBbW91bnRCBQxwbXREZWNpbWFsc0IABQABBQxwbXREZWNpbWFsc0IFBERPV04JAGwGAAoAAAUNc2hhcmVEZWNpbWFscwAAAAAFBERPV04JAGsDCQCXAwEJAMwIAgkAawMFCnBtdEFtb3VudEEFC3NjYWxlVmFsdWU4BQhiYWxhbmNlQQkAzAgCCQBrAwUKcG10QW1vdW50QgULc2NhbGVWYWx1ZTgFCGJhbGFuY2VCBQNuaWwFEHNoYXJlQXNzZXRTdXBwbHkFC3NjYWxlVmFsdWU4AwMJAGYCAAAFEXNsaXBwYWdlVG9sZXJhbmNlBgkAZgIFEXNsaXBwYWdlVG9sZXJhbmNlBRpzbGlwcGFnZVRvbGVyYW5jZURlbGltaXRlcgkAAgEJAKwCAgkArAICCQCsAgICKVNsaXBwYWdlIHRvbGVyYW5jZSBtdXN0IGJlIGJldHdlZW4gMCBhbmQgCQCkAwEFGnNsaXBwYWdlVG9sZXJhbmNlRGVsaW1pdGVyAhYgaW5jbHVzaXZlbHkuIEFjdHVhbDogCQCkAwEFEXNsaXBwYWdlVG9sZXJhbmNlAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwACCQACAQIcVHdvIGF0dGFjaGVkIGFzc2V0cyBleHBlY3RlZAMDCQECIT0CBQtwbXRBc3NldElkQQUIYXNzZXRJZEEGCQECIT0CBQtwbXRBc3NldElkQgUIYXNzZXRJZEIJAAIBCQCsAgIJAKwCAgkArAICAiVJbmNvcnJlY3QgYXNzZXRzIGF0dGFjaGVkLiBFeHBlY3RlZDogBQtzdHJBc3NldElkQQIFIGFuZCAFC3N0ckFzc2V0SWRCAwMJAGYCCQBpAgkAaAIFC3NjYWxlVmFsdWUzCQBlAgUac2xpcHBhZ2VUb2xlcmFuY2VEZWxpbWl0ZXIFEXNsaXBwYWdlVG9sZXJhbmNlBRpzbGlwcGFnZVRvbGVyYW5jZURlbGltaXRlcgUKdG9rZW5SYXRpbwYJAGYCBQp0b2tlblJhdGlvCQBpAgkAaAIFC3NjYWxlVmFsdWUzCQBkAgUac2xpcHBhZ2VUb2xlcmFuY2VEZWxpbWl0ZXIFEXNsaXBwYWdlVG9sZXJhbmNlBRpzbGlwcGFnZVRvbGVyYW5jZURlbGltaXRlcgkAAgECPUluY29ycmVjdCBhc3NldHMgYW1vdW50OiBhbW91bnRzIG11c3QgaGF2ZSB0aGUgY29udHJhY3QgcmF0aW8DCQAAAgUVc2hhcmVUb2tlblRvUGF5QW1vdW50AAAJAAIBAh1Ub28gc21hbGwgYW1vdW50IHRvIHJlcGxlbmlzaAMJAQEhAQUQaGFzRW5vdWdoQmFsYW5jZQkAzggCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUKcG10QW1vdW50QQULcG10QXNzZXRJZEEJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQpwbXRBbW91bnRCBQtwbXRBc3NldElkQgUDbmlsCQERc3VzcGVuZFN1c3BpY2lvdXMABAZzdGFrZTEDCQEPY29udGFpbnNFbGVtZW50AgUNc3Rha2luZ0Fzc2V0cwUOcG10U3RyQXNzZXRJZEEJAPwHBAUEdGhpcwIMc3Rha2VVbnN0YWtlCQDMCAIGCQDMCAIFCnBtdEFtb3VudEEJAMwIAgUOcG10U3RyQXNzZXRJZEEFA25pbAUDbmlsAAADCQAAAgUGc3Rha2UxBQZzdGFrZTEEBnN0YWtlMgMJAQ9jb250YWluc0VsZW1lbnQCBQ1zdGFraW5nQXNzZXRzBQ5wbXRTdHJBc3NldElkQgkA/AcEBQR0aGlzAgxzdGFrZVVuc3Rha2UJAMwIAgYJAMwIAgUKcG10QW1vdW50QgkAzAgCBQ5wbXRTdHJBc3NldElkQgUDbmlsBQNuaWwAAAMJAAACBQZzdGFrZTIFBnN0YWtlMgkAzAgCCQEHUmVpc3N1ZQMFDHNoYXJlQXNzZXRJZAUVc2hhcmVUb2tlblRvUGF5QW1vdW50BgkAzAgCCQEMSW50ZWdlckVudHJ5AgUJa0JhbGFuY2VBCQBkAgUIYmFsYW5jZUEFCnBtdEFtb3VudEEJAMwIAgkBDEludGVnZXJFbnRyeQIFCWtCYWxhbmNlQgkAZAIFCGJhbGFuY2VCBQpwbXRBbW91bnRCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRFrU2hhcmVBc3NldFN1cHBseQkAZAIFEHNoYXJlQXNzZXRTdXBwbHkFFXNoYXJlVG9rZW5Ub1BheUFtb3VudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFFXNoYXJlVG9rZW5Ub1BheUFtb3VudAUMc2hhcmVBc3NldElkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEId2l0aGRyYXcACQELdmFsdWVPckVsc2UCCQEIaXNBY3RpdmUABA0kdDAxNzE4MDE3MjU1CQCUCgIICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQECXBtdEFtb3VudAgFDSR0MDE3MTgwMTcyNTUCXzEECnBtdEFzc2V0SWQIBQ0kdDAxNzE4MDE3MjU1Al8yBAxhbW91bnRUb1BheUEJAGsDBQlwbXRBbW91bnQFCGJhbGFuY2VBBRBzaGFyZUFzc2V0U3VwcGx5BAxhbW91bnRUb1BheUIJAGsDBQlwbXRBbW91bnQFCGJhbGFuY2VCBRBzaGFyZUFzc2V0U3VwcGx5AwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABCQACAQIdT25lIGF0dGFjaGVkIHBheW1lbnQgZXhwZWN0ZWQDCQECIT0CBQpwbXRBc3NldElkBQxzaGFyZUFzc2V0SWQJAAIBCQCsAgICJEluY29ycmVjdCBhc3NldCBhdHRhY2hlZC4gRXhwZWN0ZWQ6IAkA2AQBBQxzaGFyZUFzc2V0SWQDCQEBIQEFEGhhc0Vub3VnaEJhbGFuY2UJAM4IAgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFCXBtdEFtb3VudAUKcG10QXNzZXRJZAUDbmlsCQERc3VzcGVuZFN1c3BpY2lvdXMABAZzdGFrZTEDCQEPY29udGFpbnNFbGVtZW50AgUNc3Rha2luZ0Fzc2V0cwULc3RyQXNzZXRJZEEJAPwHBAUEdGhpcwIMc3Rha2VVbnN0YWtlCQDMCAIHCQDMCAIFDGFtb3VudFRvUGF5QQkAzAgCBQtzdHJBc3NldElkQQUDbmlsBQNuaWwAAAMJAAACBQZzdGFrZTEFBnN0YWtlMQQGc3Rha2UyAwkBD2NvbnRhaW5zRWxlbWVudAIFDXN0YWtpbmdBc3NldHMFC3N0ckFzc2V0SWRCCQD8BwQFBHRoaXMCDHN0YWtlVW5zdGFrZQkAzAgCBwkAzAgCBQxhbW91bnRUb1BheUIJAMwIAgULc3RyQXNzZXRJZEIFA25pbAUDbmlsAAADCQAAAgUGc3Rha2UyBQZzdGFrZTIJAMwIAgkBDEludGVnZXJFbnRyeQIFCWtCYWxhbmNlQQkAZQIFCGJhbGFuY2VBBQxhbW91bnRUb1BheUEJAMwIAgkBDEludGVnZXJFbnRyeQIFCWtCYWxhbmNlQgkAZQIFCGJhbGFuY2VCBQxhbW91bnRUb1BheUIJAMwIAgkBDEludGVnZXJFbnRyeQIFEWtTaGFyZUFzc2V0U3VwcGx5CQBlAgUQc2hhcmVBc3NldFN1cHBseQUJcG10QW1vdW50CQDMCAIJAQRCdXJuAgUMc2hhcmVBc3NldElkBQlwbXRBbW91bnQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQxhbW91bnRUb1BheUEFCGFzc2V0SWRBCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUMYW1vdW50VG9QYXlCBQhhc3NldElkQgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCGV4Y2hhbmdlARJtaW5BbW91bnRUb1JlY2VpdmUJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQAEDSR0MDE4NTU0MTg2MjkJAJQKAggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQJcG10QW1vdW50CAUNJHQwMTg1NTQxODYyOQJfMQQKcG10QXNzZXRJZAgFDSR0MDE4NTU0MTg2MjkCXzIDAwkAAAIFCGJhbGFuY2VBAAAGCQAAAgUIYmFsYW5jZUIAAAkAAgECIENhbid0IGV4Y2hhbmdlIHdpdGggemVybyBiYWxhbmNlAwkAZwIAAAUSbWluQW1vdW50VG9SZWNlaXZlCQACAQkArAICAjRNaW5pbWFsIGFtb3VudCB0byByZWNlaXZlIG11c3QgYmUgcG9zaXRpdmUuIEFjdHVhbDogCQCkAwEFEm1pbkFtb3VudFRvUmVjZWl2ZQMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECHU9uZSBhdHRhY2hlZCBwYXltZW50IGV4cGVjdGVkAwkBASEBBRBoYXNFbm91Z2hCYWxhbmNlCQDOCAIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQlwbXRBbW91bnQFCnBtdEFzc2V0SWQFA25pbAkBEXN1c3BlbmRTdXNwaWNpb3VzAAMJAAACBQpwbXRBc3NldElkBQhhc3NldElkQQQLYXNzZXRJZFNlbmQFCGFzc2V0SWRCBA0kdDAxOTE4MDE5MzE4CQENY2FsY3VsYXRlRmVlcwUFCXBtdEFtb3VudAUSbWluQW1vdW50VG9SZWNlaXZlBQhiYWxhbmNlQQUIYmFsYW5jZUIIBQFpDG9yaWdpbkNhbGxlcgQQYW1vdW50V2l0aG91dEZlZQgFDSR0MDE5MTgwMTkzMTgCXzEEDWFtb3VudFdpdGhGZWUIBQ0kdDAxOTE4MDE5MzE4Al8yBBBnb3Zlcm5hbmNlUmV3YXJkCAUNJHQwMTkxODAxOTMxOAJfMwQLbmV3QmFsYW5jZUEJAGQCBQhiYWxhbmNlQQUJcG10QW1vdW50BAtuZXdCYWxhbmNlQgkAZQIJAGUCBQhiYWxhbmNlQgUNYW1vdW50V2l0aEZlZQUQZ292ZXJuYW5jZVJld2FyZAQGc3Rha2UxAwkBD2NvbnRhaW5zRWxlbWVudAIFDXN0YWtpbmdBc3NldHMFC3N0ckFzc2V0SWRBCQD8BwQFBHRoaXMCDHN0YWtlVW5zdGFrZQkAzAgCBgkAzAgCBQlwbXRBbW91bnQJAMwIAgULc3RyQXNzZXRJZEEFA25pbAUDbmlsAAADCQAAAgUGc3Rha2UxBQZzdGFrZTEEBnN0YWtlMgMJAQ9jb250YWluc0VsZW1lbnQCBQ1zdGFraW5nQXNzZXRzBQtzdHJBc3NldElkQgkA/AcEBQR0aGlzAgxzdGFrZVVuc3Rha2UJAMwIAgcJAMwIAgkAZAIFDWFtb3VudFdpdGhGZWUFEGdvdmVybmFuY2VSZXdhcmQJAMwIAgULc3RyQXNzZXRJZEIFA25pbAUDbmlsAAADCQAAAgUGc3Rha2UyBQZzdGFrZTIJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUJa0JhbGFuY2VBBQtuZXdCYWxhbmNlQQkAzAgCCQEMSW50ZWdlckVudHJ5AgUJa0JhbGFuY2VCBQtuZXdCYWxhbmNlQgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFDWFtb3VudFdpdGhGZWUFC2Fzc2V0SWRTZW5kCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFD21vbmV5Qm94QWRkcmVzcwUQZ292ZXJuYW5jZVJld2FyZAULYXNzZXRJZFNlbmQFA25pbAkAlAoCBQ1hbW91bnRXaXRoRmVlBQthc3NldElkU2VuZAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMJAAACBQpwbXRBc3NldElkBQhhc3NldElkQgQLYXNzZXRJZFNlbmQFCGFzc2V0SWRBBA0kdDAyMDMxMDIwNDQ4CQENY2FsY3VsYXRlRmVlcwUFCXBtdEFtb3VudAUSbWluQW1vdW50VG9SZWNlaXZlBQhiYWxhbmNlQgUIYmFsYW5jZUEIBQFpDG9yaWdpbkNhbGxlcgQQYW1vdW50V2l0aG91dEZlZQgFDSR0MDIwMzEwMjA0NDgCXzEEDWFtb3VudFdpdGhGZWUIBQ0kdDAyMDMxMDIwNDQ4Al8yBBBnb3Zlcm5hbmNlUmV3YXJkCAUNJHQwMjAzMTAyMDQ0OAJfMwQLbmV3QmFsYW5jZUEJAGUCCQBlAgUIYmFsYW5jZUEFDWFtb3VudFdpdGhGZWUFEGdvdmVybmFuY2VSZXdhcmQEC25ld0JhbGFuY2VCCQBkAgUIYmFsYW5jZUIFCXBtdEFtb3VudAQGc3Rha2UxAwkBD2NvbnRhaW5zRWxlbWVudAIFDXN0YWtpbmdBc3NldHMFC3N0ckFzc2V0SWRBCQD8BwQFBHRoaXMCDHN0YWtlVW5zdGFrZQkAzAgCBwkAzAgCCQBkAgUNYW1vdW50V2l0aEZlZQUQZ292ZXJuYW5jZVJld2FyZAkAzAgCBQtzdHJBc3NldElkQQUDbmlsBQNuaWwAAAMJAAACBQZzdGFrZTEFBnN0YWtlMQQGc3Rha2UyAwkBD2NvbnRhaW5zRWxlbWVudAIFDXN0YWtpbmdBc3NldHMFC3N0ckFzc2V0SWRCCQD8BwQFBHRoaXMCDHN0YWtlVW5zdGFrZQkAzAgCBgkAzAgCBQlwbXRBbW91bnQJAMwIAgULc3RyQXNzZXRJZEIFA25pbAUDbmlsAAADCQAAAgUGc3Rha2UyBQZzdGFrZTIJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUJa0JhbGFuY2VBBQtuZXdCYWxhbmNlQQkAzAgCCQEMSW50ZWdlckVudHJ5AgUJa0JhbGFuY2VCBQtuZXdCYWxhbmNlQgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFDWFtb3VudFdpdGhGZWUFC2Fzc2V0SWRTZW5kCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFD21vbmV5Qm94QWRkcmVzcwUQZ292ZXJuYW5jZVJld2FyZAULYXNzZXRJZFNlbmQFA25pbAkAlAoCBQ1hbW91bnRXaXRoRmVlBQthc3NldElkU2VuZAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgEJAKwCAgkArAICCQCsAgICJEluY29ycmVjdCBhc3NldCBhdHRhY2hlZC4gRXhwZWN0ZWQ6IAULc3RyQXNzZXRJZEECBCBvciAFC3N0ckFzc2V0SWRCAWkBCHNodXRkb3duAAMJAQEhAQUGYWN0aXZlCQACAQkArAICAiJEQXBwIGlzIGFscmVhZHkgc3VzcGVuZGVkLiBDYXVzZTogCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFBmtDYXVzZQIadGhlIGNhdXNlIHdhc24ndCBzcGVjaWZpZWQDCQEBIQEJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFDGFkbWluUHViS2V5MQkAzAgCBQxhZG1pblB1YktleTIJAMwIAgUMYWRtaW5QdWJLZXkzBQNuaWwIBQFpD2NhbGxlclB1YmxpY0tleQkAAgECIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgkBB3N1c3BlbmQBAg9QYXVzZWQgYnkgYWRtaW4BaQEIYWN0aXZhdGUAAwUGYWN0aXZlCQACAQIWREFwcCBpcyBhbHJlYWR5IGFjdGl2ZQMJAQEhAQkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUMYWRtaW5QdWJLZXkxCQDMCAIFDGFkbWluUHViS2V5MgkAzAgCBQxhZG1pblB1YktleTMFA25pbAgFAWkPY2FsbGVyUHVibGljS2V5CQACAQIhT25seSBhZG1pbiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uCQDMCAIJAQxCb29sZWFuRW50cnkCBQdrQWN0aXZlBgkAzAgCCQELRGVsZXRlRW50cnkBBQZrQ2F1c2UFA25pbAFpARl0YWtlSW50b0FjY291bnRFeHRyYUZ1bmRzAAkBC3ZhbHVlT3JFbHNlAgkBCGlzQWN0aXZlAAQNYW1vdW50RW5yb2xsQQkAZQIFGWFjY291bnRCYWxhbmNlV2l0aFN0YWtlZEEFCGJhbGFuY2VBBA1hbW91bnRFbnJvbGxCCQBlAgUZYWNjb3VudEJhbGFuY2VXaXRoU3Rha2VkQgUIYmFsYW5jZUIDCQECIT0CCAUBaQZjYWxsZXIFD21vbmV5Qm94QWRkcmVzcwkAAgECJk9ubHkgdGhlIHdhbGxldCBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uAwMJAGYCAAAFDWFtb3VudEVucm9sbEEGCQBmAgAABQ1hbW91bnRFbnJvbGxCCQEHc3VzcGVuZAECFkVucm9sbCBhbW91bnQgbmVnYXRpdmUDAwkAAAIFDWFtb3VudEVucm9sbEEAAAkAAAIFDWFtb3VudEVucm9sbEIAAAcJAAIBAhBObyBtb25leSB0byB0YWtlBAZzdGFrZTEDCQEPY29udGFpbnNFbGVtZW50AgUNc3Rha2luZ0Fzc2V0cwULc3RyQXNzZXRJZEEJAPwHBAUEdGhpcwIMc3Rha2VVbnN0YWtlCQDMCAIGCQDMCAIFDWFtb3VudEVucm9sbEEJAMwIAgULc3RyQXNzZXRJZEEFA25pbAUDbmlsAAADCQAAAgUGc3Rha2UxBQZzdGFrZTEEBnN0YWtlMgMJAQ9jb250YWluc0VsZW1lbnQCBQ1zdGFraW5nQXNzZXRzBQtzdHJBc3NldElkQgkA/AcEBQR0aGlzAgxzdGFrZVVuc3Rha2UJAMwIAgYJAMwIAgUNYW1vdW50RW5yb2xsQgkAzAgCBQtzdHJBc3NldElkQgUDbmlsBQNuaWwAAAMJAAACBQZzdGFrZTIFBnN0YWtlMgkAzAgCCQEMSW50ZWdlckVudHJ5AgUJa0JhbGFuY2VBCQBkAgUIYmFsYW5jZUEFDWFtb3VudEVucm9sbEEJAMwIAgkBDEludGVnZXJFbnRyeQIFCWtCYWxhbmNlQgkAZAIFCGJhbGFuY2VCBQ1hbW91bnRFbnJvbGxCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgICDGxhc3RfaW5jb21lXwULc3RyQXNzZXRJZEEFDWFtb3VudEVucm9sbEEJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgIMbGFzdF9pbmNvbWVfBQtzdHJBc3NldElkQgUNYW1vdW50RW5yb2xsQgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDHN0YWtlVW5zdGFrZQMFc3Rha2UGYW1vdW50DWFzc2V0SWRTdHJpbmcDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAi1Pbmx5IGNvbnRyYWN0IGl0c2VsZiBjYW4gaW52b2tlIHRoaXMgZnVuY3Rpb24DCQAAAgUNYXNzZXRJZFN0cmluZwIFV0FWRVMEBHBvb2wJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQZvcmFjbGUFDGtMZWFzaW5nUG9vbAIZTm8gbGVhc2luZyBwb29sIGluIG9yYWNsZQQJbGVhc2luZ0lkCQCcCAIFBHRoaXMFCmtMZWFzaW5nSWQEDWxlYXNpbmdBbW91bnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUOa0xlYXNpbmdBbW91bnQAAAQObmV3TGVhc2VBbW91bnQDBQVzdGFrZQkAZAIFDWxlYXNpbmdBbW91bnQFBmFtb3VudAkAZQIFDWxlYXNpbmdBbW91bnQFBmFtb3VudAQIbmV3TGVhc2UJAMQIAgUEcG9vbAUObmV3TGVhc2VBbW91bnQECm5ld0xlYXNlSWQJALkIAQUIbmV3TGVhc2UECGJhc2VFdHJ5CQDMCAIFCG5ld0xlYXNlCQDMCAIJAQtCaW5hcnlFbnRyeQIFCmtMZWFzaW5nSWQFCm5ld0xlYXNlSWQJAMwIAgkBDEludGVnZXJFbnRyeQIFDmtMZWFzaW5nQW1vdW50BQ5uZXdMZWFzZUFtb3VudAUDbmlsBAckbWF0Y2gwBQlsZWFzaW5nSWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQDbElkBQckbWF0Y2gwCQDOCAIJAMwIAgkBC0xlYXNlQ2FuY2VsAQUDbElkBQNuaWwFCGJhc2VFdHJ5BQhiYXNlRXRyeQQNJHQwMjQyMDIyNDMwNQkBEWNhbGNTdGFraW5nUGFyYW1zAwUFc3Rha2UFBmFtb3VudAkA2QQBBQ1hc3NldElkU3RyaW5nBARjYWxsCAUNJHQwMjQyMDIyNDMwNQJfMQQEYWRkcggFDSR0MDI0MjAyMjQzMDUCXzIEBnBhcmFtcwgFDSR0MDI0MjAyMjQzMDUCXzMECHBheW1lbnRzCAUNJHQwMjQyMDIyNDMwNQJfNAQDaW52CQD8BwQFBGFkZHIFBGNhbGwFBnBhcmFtcwUIcGF5bWVudHMDCQAAAgUDaW52BQNpbnYFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQhzdGFrZUFsbAAJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQADCQEBIQEJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFDGFkbWluUHViS2V5MQkAzAgCBQxhZG1pblB1YktleTIJAMwIAgUMYWRtaW5QdWJLZXkzBQNuaWwIBQFpD2NhbGxlclB1YmxpY0tleQkAAgECIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgQGc3Rha2UxAwkBD2NvbnRhaW5zRWxlbWVudAIFDXN0YWtpbmdBc3NldHMFC3N0ckFzc2V0SWRBBAdhbW91bnRBCQBlAgUIYmFsYW5jZUEFDXN0YWtlZEFtb3VudEEDCQBmAgUHYW1vdW50QQAACQD8BwQFBHRoaXMCDHN0YWtlVW5zdGFrZQkAzAgCBgkAzAgCBQdhbW91bnRBCQDMCAIFC3N0ckFzc2V0SWRBBQNuaWwFA25pbAAAAAADCQAAAgUGc3Rha2UxBQZzdGFrZTEEBnN0YWtlMgMJAQ9jb250YWluc0VsZW1lbnQCBQ1zdGFraW5nQXNzZXRzBQtzdHJBc3NldElkQgQHYW1vdW50QgkAZQIFCGJhbGFuY2VCBQ1zdGFrZWRBbW91bnRCAwkAZgIFB2Ftb3VudEIAAAkA/AcEBQR0aGlzAgxzdGFrZVVuc3Rha2UJAMwIAgYJAMwIAgUHYW1vdW50QgkAzAgCBQtzdHJBc3NldElkQgUDbmlsBQNuaWwAAAAAAwkAAAIFBnN0YWtlMgUGc3Rha2UyBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkABBNtdWx0aVNpZ25lZEJ5QWRtaW5zBBJhZG1pblB1YktleTFTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQxhZG1pblB1YktleTEAAQAABBJhZG1pblB1YktleTJTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwABBQxhZG1pblB1YktleTIAAQAABBJhZG1pblB1YktleTNTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwACBQxhZG1pblB1YktleTMAAQAACQBnAgkAZAIJAGQCBRJhZG1pblB1YktleTFTaWduZWQFEmFkbWluUHViS2V5MlNpZ25lZAUSYWRtaW5QdWJLZXkzU2lnbmVkAAIEByRtYXRjaDAFAnR4AwkAAQIFByRtYXRjaDACF0ludm9rZVNjcmlwdFRyYW5zYWN0aW9uBANpbnYFByRtYXRjaDAEE2NhbGxUYWtlSW50b0FjY291bnQDCQAAAggFA2ludgRkQXBwBQR0aGlzCQAAAggFA2ludghmdW5jdGlvbgIZdGFrZUludG9BY2NvdW50RXh0cmFGdW5kcwcEDXNpZ25lZEJ5QWRtaW4DAwMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFDGFkbWluUHViS2V5MQYJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFDGFkbWluUHViS2V5MgYJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFDGFkbWluUHViS2V5MwYJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFEWFkbWluSW52b2tlUHViS2V5AwMFE2NhbGxUYWtlSW50b0FjY291bnQFDXNpZ25lZEJ5QWRtaW4HBgUTbXVsdGlTaWduZWRCeUFkbWlucwUTbXVsdGlTaWduZWRCeUFkbWlucyQALMI=", "height": 2185325, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7dzKi4qV6vM1CgBicaGEMjsP7BcwvbjmLm8MSWP9S2L Next: none Diff:
OldNewDifferences
9797
9898 let T = Address(base58'3MrJgdL1GniipErHy44YF9idzLaUL2iX5DQ')
9999
100-let U = base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT'
100+let U = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
101101
102102 let V = base58'2HAJrwa8q4SxBx9cHYaBTQdBjdk5wwqdof7ccpAx2uhZ'
103103
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "1.0.0"
55
66 let b = "version"
77
88 let c = "active"
99
1010 let d = "A_asset_id"
1111
1212 let e = "B_asset_id"
1313
1414 let f = "A_asset_balance"
1515
1616 let g = "B_asset_balance"
1717
1818 let h = "A_asset_init"
1919
2020 let i = "B_asset_init"
2121
2222 let j = "share_asset_id"
2323
2424 let k = "share_asset_supply"
2525
2626 let l = "commission"
2727
2828 let m = "shutdown_cause"
2929
3030 let n = "first_harvest"
3131
3232 let o = "first_harvest_height"
3333
3434 let p = "share_limit_on_first_harvest"
3535
3636 let q = "base_period"
3737
3838 let r = "period_length"
3939
4040 let s = "start_height"
4141
4242 let t = "staking_usdnnsbt_address"
4343
4444 let u = "staking_eurn_address"
4545
4646 let v = "leasing_address"
4747
4848 let w = "leasing_amount"
4949
5050 let x = "leasing_id"
5151
5252 let y = "discounts"
5353
5454 let z = "discount_values"
5555
5656 let A = "_SWOP_amount"
5757
5858 let B = "admin_pub_1"
5959
6060 let C = "admin_pub_2"
6161
6262 let D = "admin_pub_3"
6363
6464 let E = "admin_invoke_pub"
6565
6666 let F = "money_box_address"
6767
6868 let G = "governance_address"
6969
7070 let H = Address(base58'3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9')
7171
7272 func I (J) = {
7373 let K = getString(H, J)
7474 if ($isInstanceOf(K, "String"))
7575 then {
7676 let L = K
7777 fromBase58String(L)
7878 }
7979 else {
8080 let M = K
8181 throw((J + "is empty"))
8282 }
8383 }
8484
8585
8686 let N = I(B)
8787
8888 let O = I(C)
8989
9090 let P = I(D)
9191
9292 let Q = I(E)
9393
9494 let R = Address(I(F))
9595
9696 let S = Address(I(G))
9797
9898 let T = Address(base58'3MrJgdL1GniipErHy44YF9idzLaUL2iX5DQ')
9999
100-let U = base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT'
100+let U = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
101101
102102 let V = base58'2HAJrwa8q4SxBx9cHYaBTQdBjdk5wwqdof7ccpAx2uhZ'
103103
104104 let W = base58'DUk2YTxhRoAqMJLus4G2b3fR8hMHVh6eiyFx5r29VR6t'
105105
106106 let X = ["WAVES", toBase58String(U), toBase58String(W)]
107107
108108 let Y = Address(I(t))
109109
110110 let Z = Address(I(u))
111111
112112 let aa = valueOrErrorMessage(getInteger(T, q), "Empty kBasePeriod")
113113
114114 let ab = valueOrErrorMessage(getInteger(T, s), "Empty kStartHeight")
115115
116116 let ac = valueOrErrorMessage(getInteger(T, r), "Empty kPeriodLength")
117117
118118 let ad = ((aa + ((height - ab) / ac)) + 3)
119119
120120 let ae = getBooleanValue(this, c)
121121
122122 let af = getStringValue(this, d)
123123
124124 let ag = getStringValue(this, e)
125125
126126 let ah = if ((af == "WAVES"))
127127 then unit
128128 else fromBase58String(af)
129129
130130 let ai = if ((ag == "WAVES"))
131131 then unit
132132 else fromBase58String(ag)
133133
134134 let aj = {
135135 let K = ah
136136 if ($isInstanceOf(K, "ByteVector"))
137137 then {
138138 let ak = K
139139 value(assetInfo(ak)).name
140140 }
141141 else if ($isInstanceOf(K, "Unit"))
142142 then {
143143 let al = K
144144 "WAVES"
145145 }
146146 else throw("Match error")
147147 }
148148
149149 let am = {
150150 let K = ai
151151 if ($isInstanceOf(K, "ByteVector"))
152152 then {
153153 let ak = K
154154 value(assetInfo(ak)).name
155155 }
156156 else if ($isInstanceOf(K, "Unit"))
157157 then {
158158 let al = K
159159 "WAVES"
160160 }
161161 else throw("Match error")
162162 }
163163
164164 let an = getIntegerValue(this, f)
165165
166166 let ao = getIntegerValue(this, g)
167167
168168 let ap = fromBase58String(getStringValue(this, j))
169169
170170 let aq = getIntegerValue(this, k)
171171
172172 let ar = getIntegerValue(this, l)
173173
174174 let as = fraction(ar, 40, 100)
175175
176176 let at = 1000000
177177
178178 let au = 1000
179179
180180 let av = 100000000
181181
182182 let aw = 1000
183183
184184 let ax = 8
185185
186186 func ay (az) = {
187187 let K = az
188188 if ($isInstanceOf(K, "ByteVector"))
189189 then {
190190 let ak = K
191191 assetBalance(this, ak)
192192 }
193193 else if ($isInstanceOf(K, "Unit"))
194194 then {
195195 let al = K
196196 wavesBalance(this).available
197197 }
198198 else throw("Match error")
199199 }
200200
201201
202202 func aA (az) = {
203203 let aB = {
204204 let K = az
205205 if ($isInstanceOf(K, "ByteVector"))
206206 then {
207207 let aC = K
208208 if ((aC == U))
209209 then getInteger(Y, ((("rpd_balance_" + toBase58String(aC)) + "_") + toString(this)))
210210 else if ((aC == W))
211211 then getInteger(Z, ((("%s%s%s__stakingBalance__" + toBase58String(aC)) + "__") + toString(this)))
212212 else 0
213213 }
214214 else if ($isInstanceOf(K, "Unit"))
215215 then valueOrElse(getInteger(this, w), 0)
216216 else throw("Match error")
217217 }
218218 let K = aB
219219 if ($isInstanceOf(K, "Int"))
220220 then {
221221 let aD = K
222222 aD
223223 }
224224 else 0
225225 }
226226
227227
228228 let aE = aA(ah)
229229
230230 let aF = aA(ai)
231231
232232 let aG = getIntegerValue(this, h)
233233
234234 let aH = getIntegerValue(this, i)
235235
236236 let aI = (an - aE)
237237
238238 let aJ = (ao - aF)
239239
240240 let aK = (ay(ah) + aE)
241241
242242 let aL = (ay(ai) + aF)
243243
244244 let aM = if ((aK >= an))
245245 then (aL >= ao)
246246 else false
247247
248248 func aN (az) = {
249249 let K = az
250250 if ($isInstanceOf(K, "ByteVector"))
251251 then {
252252 let ak = K
253253 let aO = toBase58String(ak)
254254 let aP = valueOrErrorMessage(assetInfo(ak), (("Asset " + aO) + " doesn't exist"))
255255 $Tuple3(aO, aP.name, aP.decimals)
256256 }
257257 else if ($isInstanceOf(K, "Unit"))
258258 then {
259259 let al = K
260260 $Tuple3("WAVES", "WAVES", 8)
261261 }
262262 else throw("Match error")
263263 }
264264
265265
266266 func aQ (aR) = if ((aR == "WAVES"))
267267 then $Tuple3("WAVES", "WAVES", 8)
268268 else {
269269 let aO = aR
270270 let ak = fromBase58String(aR)
271271 let aP = valueOrErrorMessage(assetInfo(ak), (("Asset " + aO) + " doesn't exist"))
272272 $Tuple3(aO, aP.name, aP.decimals)
273273 }
274274
275275
276276 func aS (aT) = [BooleanEntry(c, false), StringEntry(m, aT)]
277277
278278
279279 func aU (aV,az) = if (aV)
280280 then if ((az == U))
281281 then $Tuple2("lockNeutrino", Y)
282282 else $Tuple2("startStaking", Z)
283283 else if ((az == U))
284284 then $Tuple2("unlockNeutrino", Y)
285285 else $Tuple2("stopStaking", Z)
286286
287287
288288 func aW (aV,aX,az) = if (aV)
289289 then {
290290 let aY = aU(aV, az)
291291 let aZ = aY._1
292292 let ba = aY._2
293293 $Tuple4(aZ, ba, nil, [AttachedPayment(az, aX)])
294294 }
295295 else {
296296 let bb = aU(aV, az)
297297 let aZ = bb._1
298298 let ba = bb._2
299299 $Tuple4(aZ, ba, [aX, toBase58String(az)], nil)
300300 }
301301
302302
303303 func bc (bd) = {
304304 let be = valueOrElse(getInteger(S, (toString(bd) + A)), 0)
305305 let bf = split(getStringValue(H, z), ",")
306306 let bg = split(getStringValue(H, y), ",")
307307 if (if ((be >= parseIntValue(bf[0])))
308308 then (parseIntValue(bf[1]) > be)
309309 else false)
310310 then (at - parseIntValue(bg[0]))
311311 else if (if ((be >= parseIntValue(bf[1])))
312312 then (parseIntValue(bf[2]) > be)
313313 else false)
314314 then (at - parseIntValue(bg[1]))
315315 else if (if ((be >= parseIntValue(bf[2])))
316316 then (parseIntValue(bf[3]) > be)
317317 else false)
318318 then (at - parseIntValue(bg[2]))
319319 else if (if ((be >= parseIntValue(bf[3])))
320320 then (parseIntValue(bf[4]) > be)
321321 else false)
322322 then (at - parseIntValue(bg[3]))
323323 else if ((be >= parseIntValue(bf[4])))
324324 then (at - parseIntValue(bg[4]))
325325 else at
326326 }
327327
328328
329329 func bh (bi,bj,bk,bl,bm) = {
330330 let bn = fraction(bl, bi, (bi + bk))
331331 let bo = bc(bm)
332332 let bp = fraction(bn, (at - fraction(ar, bo, at, CEILING)), at)
333333 let bq = fraction(bn, fraction(as, bo, at, CEILING), at)
334334 if ((bj > bp))
335335 then throw(((("Calculated amount to receive " + toString(bp)) + " is less than specified minimum ") + toString(bj)))
336336 else $Tuple3(bn, bp, bq)
337337 }
338338
339339
340340 func br () = aS(((((((((((((((("Suspicious state. Actual balances: " + toString(aK)) + " ") + aj) + ", ") + toString(aL)) + " ") + am) + ". State: ") + toString(an)) + " ") + aj) + ", ") + toString(ao)) + " ") + am))
341341
342342
343343 func bs () = if (ae)
344344 then unit
345345 else throw("DApp is inactive at this moment")
346346
347347
348348 @Callable(aD)
349349 func init (bt) = {
350350 let bu = $Tuple2(aD.payments[0].amount, aD.payments[0].assetId)
351351 let bv = bu._1
352352 let bw = bu._2
353353 let bx = $Tuple2(aD.payments[1].amount, aD.payments[1].assetId)
354354 let by = bx._1
355355 let bz = bx._2
356356 let bA = aN(bw)
357357 let bB = bA._1
358358 let bC = bA._2
359359 let bD = bA._3
360360 let bE = aN(bz)
361361 let bF = bE._1
362362 let bG = bE._2
363363 let bH = bE._3
364364 if (!(containsElement([N, O, P, Q], aD.callerPublicKey)))
365365 then throw("Only admin can call this function")
366366 else if (isDefined(getBoolean(this, c)))
367367 then throw("DApp is already active")
368368 else if ((bw == bz))
369369 then throw("Assets must be different")
370370 else {
371371 let bI = ((("s" + take(bC, 7)) + "_") + take(bG, 7))
372372 let bJ = ((((("ShareToken of SwopFi protocol for " + bC) + " and ") + bG) + " at address ") + toString(this))
373373 let bK = ((bD + bH) / 2)
374374 let bL = pow(bv, bD, 5, 1, bD, DOWN)
375375 let bM = pow(by, bH, 5, 1, bH, DOWN)
376376 let bN = pow(10, 0, bK, 0, 0, DOWN)
377377 let bO = fraction(bL, bM, bN)
378378 let bP = Issue(bI, bJ, bO, bK, true)
379379 let bQ = calculateAssetId(bP)
380380 let bR = if (containsElement(X, bB))
381381 then invoke(this, "stakeUnstake", [true, bv, bB], nil)
382382 else 0
383383 if ((bR == bR))
384384 then {
385385 let bS = if (containsElement(X, bF))
386386 then invoke(this, "stakeUnstake", [true, by, bF], nil)
387387 else 0
388388 if ((bS == bS))
389389 then {
390390 let bT = [StringEntry(b, a), BooleanEntry(c, true), StringEntry(d, bB), StringEntry(e, bF), IntegerEntry(f, bv), IntegerEntry(g, by), IntegerEntry(l, getIntegerValue(H, "base_fee_cpmm")), bP, StringEntry(j, toBase58String(bQ)), IntegerEntry(k, bO), ScriptTransfer(aD.caller, bO, bQ)]
391391 if (bt)
392392 then (bT ++ [BooleanEntry(n, bt), IntegerEntry(o, (ab + (ad * ac)))])
393393 else bT
394394 }
395395 else throw("Strict value is not equal to itself.")
396396 }
397397 else throw("Strict value is not equal to itself.")
398398 }
399399 }
400400
401401
402402
403403 @Callable(aD)
404404 func initWithInitRatio (bU,bV,af,ag,bt) = {
405405 let bW = aQ(af)
406406 let bB = bW._1
407407 let bC = bW._2
408408 let bD = bW._3
409409 let bX = aQ(ag)
410410 let bF = bX._1
411411 let bG = bX._2
412412 let bH = bX._3
413413 if (!(containsElement([N, O, P, Q], aD.callerPublicKey)))
414414 then throw("Only admin can call this function")
415415 else if (isDefined(getBoolean(this, c)))
416416 then throw("DApp is already active")
417417 else if ((af == ag))
418418 then throw("Assets must be different")
419419 else {
420420 let bI = ((("s" + take(bC, 7)) + "_") + take(bG, 7))
421421 let bJ = ((((("ShareToken of SwopFi protocol for " + bC) + " and ") + bG) + " at address ") + toString(this))
422422 let bK = ((bD + bH) / 2)
423423 let bO = 0
424424 let bP = Issue(bI, bJ, bO, bK, true)
425425 let bQ = calculateAssetId(bP)
426426 let bT = [StringEntry(b, a), BooleanEntry(c, true), StringEntry(d, bB), StringEntry(e, bF), IntegerEntry(h, bU), IntegerEntry(i, bV), IntegerEntry(f, 0), IntegerEntry(g, 0), IntegerEntry(l, getIntegerValue(H, "base_fee_cpmm")), bP, StringEntry(j, toBase58String(bQ)), IntegerEntry(k, bO)]
427427 if (bt)
428428 then (bT ++ [BooleanEntry(n, bt), IntegerEntry(o, (ab + (ad * ac)))])
429429 else bT
430430 }
431431 }
432432
433433
434434
435435 @Callable(aD)
436436 func keepLimitForFirstHarvest (bY) = valueOrElse(bs(), if (!(containsElement([N, O, P, Q], aD.callerPublicKey)))
437437 then throw("Only admin can call this function")
438438 else [IntegerEntry(p, bY)])
439439
440440
441441
442442 @Callable(aD)
443443 func replenishWithTwoTokens (bZ) = valueOrElse(bs(), {
444444 let bw = aD.payments[0].assetId
445445 let bz = aD.payments[1].assetId
446446 let bv = aD.payments[0].amount
447447 let by = aD.payments[1].amount
448448 let ca = aN(bw)
449449 let bB = ca._1
450450 let bC = ca._2
451451 let bD = ca._3
452452 let cb = aN(bz)
453453 let bF = cb._1
454454 let bG = cb._2
455455 let bH = cb._3
456456 let cc = if (if ((an == 0))
457457 then (ao == 0)
458458 else false)
459459 then true
460460 else false
461461 let cd = if (cc)
462462 then fraction(fraction(aG, av, bv), au, fraction(aH, av, by))
463463 else fraction(fraction(an, av, bv), au, fraction(ao, av, by))
464464 let bK = ((bD + bH) / 2)
465465 let ce = if (cc)
466466 then fraction(pow(bv, bD, 5, 1, bD, DOWN), pow(by, bH, 5, 1, bH, DOWN), pow(10, 0, bK, 0, 0, DOWN))
467467 else fraction(min([fraction(bv, av, an), fraction(by, av, ao)]), aq, av)
468468 if (if ((0 > bZ))
469469 then true
470470 else (bZ > aw))
471471 then throw(((("Slippage tolerance must be between 0 and " + toString(aw)) + " inclusively. Actual: ") + toString(bZ)))
472472 else if ((size(aD.payments) != 2))
473473 then throw("Two attached assets expected")
474474 else if (if ((bw != ah))
475475 then true
476476 else (bz != ai))
477477 then throw(((("Incorrect assets attached. Expected: " + af) + " and ") + ag))
478478 else if (if ((((au * (aw - bZ)) / aw) > cd))
479479 then true
480480 else (cd > ((au * (aw + bZ)) / aw)))
481481 then throw("Incorrect assets amount: amounts must have the contract ratio")
482482 else if ((ce == 0))
483483 then throw("Too small amount to replenish")
484484 else if (!(aM))
485485 then ([ScriptTransfer(aD.caller, bv, bw), ScriptTransfer(aD.caller, by, bz)] ++ br())
486486 else {
487487 let bR = if (containsElement(X, bB))
488488 then invoke(this, "stakeUnstake", [true, bv, bB], nil)
489489 else 0
490490 if ((bR == bR))
491491 then {
492492 let bS = if (containsElement(X, bF))
493493 then invoke(this, "stakeUnstake", [true, by, bF], nil)
494494 else 0
495495 if ((bS == bS))
496496 then [Reissue(ap, ce, true), IntegerEntry(f, (an + bv)), IntegerEntry(g, (ao + by)), IntegerEntry(k, (aq + ce)), ScriptTransfer(aD.caller, ce, ap)]
497497 else throw("Strict value is not equal to itself.")
498498 }
499499 else throw("Strict value is not equal to itself.")
500500 }
501501 })
502502
503503
504504
505505 @Callable(aD)
506506 func withdraw () = valueOrElse(bs(), {
507507 let cf = $Tuple2(aD.payments[0].amount, aD.payments[0].assetId)
508508 let bi = cf._1
509509 let cg = cf._2
510510 let ch = fraction(bi, an, aq)
511511 let ci = fraction(bi, ao, aq)
512512 if ((size(aD.payments) != 1))
513513 then throw("One attached payment expected")
514514 else if ((cg != ap))
515515 then throw(("Incorrect asset attached. Expected: " + toBase58String(ap)))
516516 else if (!(aM))
517517 then ([ScriptTransfer(aD.caller, bi, cg)] ++ br())
518518 else {
519519 let bR = if (containsElement(X, af))
520520 then invoke(this, "stakeUnstake", [false, ch, af], nil)
521521 else 0
522522 if ((bR == bR))
523523 then {
524524 let bS = if (containsElement(X, ag))
525525 then invoke(this, "stakeUnstake", [false, ci, ag], nil)
526526 else 0
527527 if ((bS == bS))
528528 then [IntegerEntry(f, (an - ch)), IntegerEntry(g, (ao - ci)), IntegerEntry(k, (aq - bi)), Burn(ap, bi), ScriptTransfer(aD.caller, ch, ah), ScriptTransfer(aD.caller, ci, ai)]
529529 else throw("Strict value is not equal to itself.")
530530 }
531531 else throw("Strict value is not equal to itself.")
532532 }
533533 })
534534
535535
536536
537537 @Callable(aD)
538538 func exchange (bj) = valueOrElse(bs(), {
539539 let cj = $Tuple2(aD.payments[0].amount, aD.payments[0].assetId)
540540 let bi = cj._1
541541 let cg = cj._2
542542 if (if ((an == 0))
543543 then true
544544 else (ao == 0))
545545 then throw("Can't exchange with zero balance")
546546 else if ((0 >= bj))
547547 then throw(("Minimal amount to receive must be positive. Actual: " + toString(bj)))
548548 else if ((size(aD.payments) != 1))
549549 then throw("One attached payment expected")
550550 else if (!(aM))
551551 then ([ScriptTransfer(aD.caller, bi, cg)] ++ br())
552552 else if ((cg == ah))
553553 then {
554554 let ck = ai
555555 let cl = bh(bi, bj, an, ao, aD.originCaller)
556556 let bn = cl._1
557557 let bp = cl._2
558558 let bq = cl._3
559559 let cm = (an + bi)
560560 let cn = ((ao - bp) - bq)
561561 let bR = if (containsElement(X, af))
562562 then invoke(this, "stakeUnstake", [true, bi, af], nil)
563563 else 0
564564 if ((bR == bR))
565565 then {
566566 let bS = if (containsElement(X, ag))
567567 then invoke(this, "stakeUnstake", [false, (bp + bq), ag], nil)
568568 else 0
569569 if ((bS == bS))
570570 then $Tuple2([IntegerEntry(f, cm), IntegerEntry(g, cn), ScriptTransfer(aD.caller, bp, ck), ScriptTransfer(R, bq, ck)], $Tuple2(bp, ck))
571571 else throw("Strict value is not equal to itself.")
572572 }
573573 else throw("Strict value is not equal to itself.")
574574 }
575575 else if ((cg == ai))
576576 then {
577577 let ck = ah
578578 let co = bh(bi, bj, ao, an, aD.originCaller)
579579 let bn = co._1
580580 let bp = co._2
581581 let bq = co._3
582582 let cm = ((an - bp) - bq)
583583 let cn = (ao + bi)
584584 let bR = if (containsElement(X, af))
585585 then invoke(this, "stakeUnstake", [false, (bp + bq), af], nil)
586586 else 0
587587 if ((bR == bR))
588588 then {
589589 let bS = if (containsElement(X, ag))
590590 then invoke(this, "stakeUnstake", [true, bi, ag], nil)
591591 else 0
592592 if ((bS == bS))
593593 then $Tuple2([IntegerEntry(f, cm), IntegerEntry(g, cn), ScriptTransfer(aD.caller, bp, ck), ScriptTransfer(R, bq, ck)], $Tuple2(bp, ck))
594594 else throw("Strict value is not equal to itself.")
595595 }
596596 else throw("Strict value is not equal to itself.")
597597 }
598598 else throw(((("Incorrect asset attached. Expected: " + af) + " or ") + ag))
599599 })
600600
601601
602602
603603 @Callable(aD)
604604 func shutdown () = if (!(ae))
605605 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, m), "the cause wasn't specified")))
606606 else if (!(containsElement([N, O, P], aD.callerPublicKey)))
607607 then throw("Only admin can call this function")
608608 else aS("Paused by admin")
609609
610610
611611
612612 @Callable(aD)
613613 func activate () = if (ae)
614614 then throw("DApp is already active")
615615 else if (!(containsElement([N, O, P], aD.callerPublicKey)))
616616 then throw("Only admin can call this function")
617617 else [BooleanEntry(c, true), DeleteEntry(m)]
618618
619619
620620
621621 @Callable(aD)
622622 func takeIntoAccountExtraFunds () = valueOrElse(bs(), {
623623 let cp = (aK - an)
624624 let cq = (aL - ao)
625625 if ((aD.caller != R))
626626 then throw("Only the wallet can call this function")
627627 else if (if ((0 > cp))
628628 then true
629629 else (0 > cq))
630630 then aS("Enroll amount negative")
631631 else if (if ((cp == 0))
632632 then (cq == 0)
633633 else false)
634634 then throw("No money to take")
635635 else {
636636 let bR = if (containsElement(X, af))
637637 then invoke(this, "stakeUnstake", [true, cp, af], nil)
638638 else 0
639639 if ((bR == bR))
640640 then {
641641 let bS = if (containsElement(X, ag))
642642 then invoke(this, "stakeUnstake", [true, cq, ag], nil)
643643 else 0
644644 if ((bS == bS))
645645 then [IntegerEntry(f, (an + cp)), IntegerEntry(g, (ao + cq)), IntegerEntry(("last_income_" + af), cp), IntegerEntry(("last_income_" + ag), cq)]
646646 else throw("Strict value is not equal to itself.")
647647 }
648648 else throw("Strict value is not equal to itself.")
649649 }
650650 })
651651
652652
653653
654654 @Callable(aD)
655655 func stakeUnstake (aV,aX,cr) = if ((aD.caller != this))
656656 then throw("Only contract itself can invoke this function")
657657 else if ((cr == "WAVES"))
658658 then {
659659 let cs = addressFromStringValue(valueOrErrorMessage(getString(H, v), "No leasing pool in oracle"))
660660 let ct = getBinary(this, x)
661661 let cu = valueOrElse(getInteger(this, w), 0)
662662 let cv = if (aV)
663663 then (cu + aX)
664664 else (cu - aX)
665665 let cw = Lease(cs, cv)
666666 let cx = calculateLeaseId(cw)
667667 let cy = [cw, BinaryEntry(x, cx), IntegerEntry(w, cv)]
668668 let K = ct
669669 if ($isInstanceOf(K, "ByteVector"))
670670 then {
671671 let cz = K
672672 ([LeaseCancel(cz)] ++ cy)
673673 }
674674 else cy
675675 }
676676 else {
677677 let cA = aW(aV, aX, fromBase58String(cr))
678678 let aZ = cA._1
679679 let cB = cA._2
680680 let cC = cA._3
681681 let cD = cA._4
682682 let cE = invoke(cB, aZ, cC, cD)
683683 if ((cE == cE))
684684 then nil
685685 else throw("Strict value is not equal to itself.")
686686 }
687687
688688
689689
690690 @Callable(aD)
691691 func stakeAll () = valueOrElse(bs(), if (!(containsElement([N, O, P], aD.callerPublicKey)))
692692 then throw("Only admin can call this function")
693693 else {
694694 let bR = if (containsElement(X, af))
695695 then {
696696 let cF = (an - aE)
697697 if ((cF > 0))
698698 then invoke(this, "stakeUnstake", [true, cF, af], nil)
699699 else 0
700700 }
701701 else 0
702702 if ((bR == bR))
703703 then {
704704 let bS = if (containsElement(X, ag))
705705 then {
706706 let cG = (ao - aF)
707707 if ((cG > 0))
708708 then invoke(this, "stakeUnstake", [true, cG, ag], nil)
709709 else 0
710710 }
711711 else 0
712712 if ((bS == bS))
713713 then nil
714714 else throw("Strict value is not equal to itself.")
715715 }
716716 else throw("Strict value is not equal to itself.")
717717 })
718718
719719
720720 @Verifier(cH)
721721 func cI () = {
722722 let cJ = {
723723 let cK = if (sigVerify(cH.bodyBytes, cH.proofs[0], N))
724724 then 1
725725 else 0
726726 let cL = if (sigVerify(cH.bodyBytes, cH.proofs[1], O))
727727 then 1
728728 else 0
729729 let cM = if (sigVerify(cH.bodyBytes, cH.proofs[2], P))
730730 then 1
731731 else 0
732732 (((cK + cL) + cM) >= 2)
733733 }
734734 let K = cH
735735 if ($isInstanceOf(K, "InvokeScriptTransaction"))
736736 then {
737737 let cE = K
738738 let cN = if ((cE.dApp == this))
739739 then (cE.function == "takeIntoAccountExtraFunds")
740740 else false
741741 let cO = if (if (if (sigVerify(cH.bodyBytes, cH.proofs[0], N))
742742 then true
743743 else sigVerify(cH.bodyBytes, cH.proofs[0], O))
744744 then true
745745 else sigVerify(cH.bodyBytes, cH.proofs[0], P))
746746 then true
747747 else sigVerify(cH.bodyBytes, cH.proofs[0], Q)
748748 if (if (cN)
749749 then cO
750750 else false)
751751 then true
752752 else cJ
753753 }
754754 else cJ
755755 }
756756

github/deemru/w8io/026f985 
68.57 ms