tx · 83YoB1oxbbnAnJDKTgA4Y41y7DzfKFpnCTG3mzT7z3qB

3Myn55vLkduxbX3ZXfiDCZhaQsLxYp1kmCy:  -0.02700000 Waves

2024.01.10 19:40 [2925648] smart account 3Myn55vLkduxbX3ZXfiDCZhaQsLxYp1kmCy > SELF 0.00000000 Waves

{ "type": 13, "id": "83YoB1oxbbnAnJDKTgA4Y41y7DzfKFpnCTG3mzT7z3qB", "fee": 2700000, "feeAssetId": null, "timestamp": 1704904835407, "version": 2, "chainId": 84, "sender": "3Myn55vLkduxbX3ZXfiDCZhaQsLxYp1kmCy", "senderPublicKey": "9W33iCCNfmFxUbiC6XZcH5x7f6xfwC7Jb3BoExT5q2PV", "proofs": [ "4ZgvK9ajGhG55YbNP3mLg6k1yJMyvpMedLaoXVExei5bayCv3f6heKN7DAhaoew2gpqcLqe3GD4A8V76QqCLbMZK" ], "script": "base64:BgKZLwgCEggKBggIAQEBCBIFCgMBCAISAwoBARIDCgEBEgQKAggIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgQKAggBEgASABIFCgMICAQSAwoBCBIDCgEIEgQKAggIEgQKAggIIgNTRVAiBlNDQUxFOCIFTVVMVDgiDlBPT0xXRUlHSFRNVUxUIgd3cmFwRXJyIgNtc2ciCHRocm93RXJyIgRzdHJmIgdhZGRyZXNzIgNrZXkiA2lveiIDaW9kIgpkZWZhdWx0VmFsIgNpb2YiA2FicyIDdmFsIgNhYWwiByRtYXRjaDAiCnZhbEFueUx5c3QiAmFpIgZ2YWxJbnQiG2tleVJlZmVycmFsc0NvbnRyYWN0QWRkcmVzcyIecmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzT3JGYWlsIhZrZXlSZWZlcnJhbFByb2dyYW1OYW1lIhpyZWZlcnJhbFByb2dyYW1OYW1lRGVmYXVsdCITcmVmZXJyYWxQcm9ncmFtTmFtZSIRa2V5RmFjdG9yeUFkZHJlc3MiGElkeEZhY3RvcnlDZmdTdGFraW5nRGFwcCIZSWR4RmFjdG9yeUNmZ0Jvb3N0aW5nRGFwcCIUSWR4RmFjdG9yeUNmZ0lkb0RhcHAiFUlkeEZhY3RvcnlDZmdUZWFtRGFwcCIZSWR4RmFjdG9yeUNmZ0VtaXNzaW9uRGFwcCIVSWR4RmFjdG9yeUNmZ1Jlc3REYXBwIhlJZHhGYWN0b3J5Q2ZnU2xpcHBhZ2VEYXBwIhRJZHhGYWN0b3J5Q2ZnRGFvRGFwcCIaSWR4RmFjdG9yeUNmZ01hcmtldGluZ0RhcHAiGklkeEZhY3RvcnlDZmdHd3hSZXdhcmREYXBwIhZJZHhGYWN0b3J5Q2ZnQmlyZHNEYXBwIg1rZXlGYWN0b3J5Q2ZnIhBrZXlGYWN0b3J5THBMaXN0IiZrZXlGYWN0b3J5THBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcyIKbHBBc3NldFN0ciIUa2V5RmFjdG9yeVBvb2xXZWlnaHQiD2NvbnRyYWN0QWRkcmVzcyIba2V5RmFjdG9yeVBvb2xXZWlnaHRIaXN0b3J5Igtwb29sQWRkcmVzcyIDbnVtIhhyZWFkRmFjdG9yeUFkZHJlc3NPckZhaWwiCnJlYWRMcExpc3QiFHJlYWRGYWN0b3J5Q2ZnT3JGYWlsIgdmYWN0b3J5IhhnZXRCb29zdGluZ0FkZHJlc3NPckZhaWwiCmZhY3RvcnlDZmciGGdldEVtaXNzaW9uQWRkcmVzc09yRmFpbCIXZ2V0U3Rha2luZ0FkZHJlc3NPckZhaWwiGWdldEd3eFJld2FyZEFkZHJlc3NPckZhaWwiE2tleU1hbmFnZXJQdWJsaWNLZXkiFmtleU1hbmFnZXJWYXVsdEFkZHJlc3MiHmtleUVtaXNzaW9uUmF0ZVBlckJsb2NrQ3VycmVudCIha2V5RW1pc3Npb25SYXRlUGVyQmxvY2tNYXhDdXJyZW50IhVrZXlFbWlzc2lvblN0YXJ0QmxvY2siHWtleUJvb3N0aW5nVjJMYXN0VXBkYXRlSGVpZ2h0IhVrZXlCb29zdGluZ1YySW50ZWdyYWwiG2tleUVtaXNzaW9uRHVyYXRpb25JbkJsb2NrcyITa2V5RW1pc3Npb25FbmRCbG9jayINa2V5TmV4dFBlcmlvZCIfa2V5R3d4UmV3YXJkRW1pc3Npb25TdGFydEhlaWdodCINSWR4Q2ZnQXNzZXRJZCITSWR4Q2ZnTWluTG9ja0Ftb3VudCIVSWR4Q2ZnTWluTG9ja0R1cmF0aW9uIhVJZHhDZmdNYXhMb2NrRHVyYXRpb24iEklkeENmZ01hdGhDb250cmFjdCIJa2V5Q29uZmlnIhVyZWFkQ29uZmlnQXJyYXlPckZhaWwiDG1hdGhDb250cmFjdCINZm9ybWF0Q29uZmlnUyIHYXNzZXRJZCINbWluTG9ja0Ftb3VudCIPbWluTG9ja0R1cmF0aW9uIg9tYXhMb2NrRHVyYXRpb24iDGZvcm1hdENvbmZpZyIcZ2V0TWFuYWdlclZhdWx0QWRkcmVzc09yVGhpcyIBcyIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCITbWFuYWdlclZhdWx0QWRkcmVzcyILbXVzdE1hbmFnZXIiAWkiAnBkIgJwayIOSWR4TG9ja1VzZXJOdW0iDUlkeExvY2tBbW91bnQiDElkeExvY2tTdGFydCIPSWR4TG9ja0R1cmF0aW9uIg1JZHhMb2NrUGFyYW1LIg1JZHhMb2NrUGFyYW1CIhNrZXlMb2NrUGFyYW1zUmVjb3JkIgt1c2VyQWRkcmVzcyIacmVhZExvY2tQYXJhbXNSZWNvcmRPckZhaWwiF2Zvcm1hdExvY2tQYXJhbXNSZWNvcmRTIgd1c2VyTnVtIgZhbW91bnQiBXN0YXJ0IghkdXJhdGlvbiIGcGFyYW1LIgZwYXJhbUIiEGxhc3RVcGRUaW1lc3RhbXAiCWd3eEFtb3VudCIWZm9ybWF0TG9ja1BhcmFtc1JlY29yZCIOa2V5TmV4dFVzZXJOdW0iEmtleVVzZXIyTnVtTWFwcGluZyISa2V5TnVtMlVzZXJNYXBwaW5nIhZrZXlMb2NrUGFyYW1Vc2VyQW1vdW50IhZrZXlMb2NrUGFyYW1TdGFydEJsb2NrIhRrZXlMb2NrUGFyYW1EdXJhdGlvbiINa2V5TG9ja1BhcmFtSyINa2V5TG9ja1BhcmFtQiIVa2V5TG9ja1BhcmFtQnlQZXJpb2RLIgZwZXJpb2QiFWtleUxvY2tQYXJhbUJ5UGVyaW9kQiIXa2V5TG9ja1BhcmFtVG90YWxBbW91bnQiIGtleVN0YXRzTG9ja3NEdXJhdGlvblN1bUluQmxvY2tzIhJrZXlTdGF0c0xvY2tzQ291bnQiEmtleVN0YXRzVXNlcnNDb3VudCIga2V5VXNlckJvb3N0RW1pc3Npb25MYXN0SU5URUdSQUwiImtleVVzZXJMcEJvb3N0RW1pc3Npb25MYXN0SU5URUdSQUwiCWxwQXNzZXRJZCIXa2V5VXNlck1heEJvb3N0SU5URUdSQUwiGGtleVRvdGFsTWF4Qm9vc3RJTlRFR1JBTCIha2V5VXNlckJvb3N0QXZhbGFpYmxlVG9DbGFpbVRvdGFsIhNrZXlVc2VyQm9vc3RDbGFpbWVkIhFrZXlUb3RhbENhY2hlZEd3eCIba2V5VG90YWxDYWNoZWRHd3hDb3JyZWN0aXZlIgdrZXlWb3RlIg1hbW91bnRBc3NldElkIgxwcmljZUFzc2V0SWQiBWVwb2NoIhVrZXlTdGFydEhlaWdodEJ5RXBvY2giEWtleUN1cnJlbnRFcG9jaFVpIhVrZXlWb3RpbmdSZXN1bHRTdGFrZWQiDGxwQXNzZXRJZFN0ciIda2V5Vm90aW5nUmVzdWx0U3Rha2VkSW50ZWdyYWwiJWtleVZvdGluZ1Jlc3VsdFN0YWtlZExhc3RVcGRhdGVIZWlnaHQiIWtleVZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsTGFzdCIVa2V5Vm90ZVN0YWtlZEludGVncmFsIh1rZXlWb3RlU3Rha2VkTGFzdFVwZGF0ZUhlaWdodCIZa2V5Vm90ZVN0YWtlZEludGVncmFsTGFzdCIPa2V5U3Rha2VkQnlVc2VyIg51c2VyQWRkcmVzc1N0ciIPZmFjdG9yeUNvbnRyYWN0IhBlbWlzc2lvbkNvbnRyYWN0Ig9zdGFraW5nQ29udHJhY3QiEWd3eFJld2FyZENvbnRyYWN0IhZscFN0YWtpbmdQb29sc0NvbnRyYWN0IhlrZXlWb3RpbmdFbWlzc2lvbkNvbnRyYWN0IhZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0Igpib29zdENvZWZmIgFAIhFnZXRUb3RhbENhY2hlZEd3eCIHY29ycmVjdCIOY3VycmVudEVwb2NoVWkiDmtleVRhcmdldEVwb2NoIhF0YXJnZXRFcG9jaE9wdGlvbiIRdG90YWxDYWNoZWRHd3hSYXciFWlzQ29ycmVjdGlvbkFjdGl2YXRlZCIKY29ycmVjdGl2ZSIMSGlzdG9yeUVudHJ5IgR0eXBlIgR1c2VyIglsb2NrU3RhcnQiAWsiAWIiCmhpc3RvcnlLRVkiC2hpc3RvcnlEQVRBIgpTdGF0c0VudHJ5Ig50b3RhbExvY2tlZEluYyILZHVyYXRpb25JbmMiDGxvY2tDb3VudEluYyINdXNlcnNDb3VudEluYyIbbG9ja3NEdXJhdGlvblN1bUluQmxvY2tzS0VZIg1sb2Nrc0NvdW50S0VZIg11c2Vyc0NvdW50S0VZIg50b3RhbEFtb3VudEtFWSIYbG9ja3NEdXJhdGlvblN1bUluQmxvY2tzIgpsb2Nrc0NvdW50Igp1c2Vyc0NvdW50Igt0b3RhbEFtb3VudCINY2FsY0d3eEFtb3VudCIEa1JhdyIEYlJhdyIBaCIFU0NBTEUiD0xvY2tQYXJhbXNFbnRyeSINdXNlckFtb3VudEtFWSINc3RhcnRCbG9ja0tFWSILZHVyYXRpb25LRVkiBGtLRVkiBGJLRVkiDGtCeVBlcmlvZEtFWSIMYkJ5UGVyaW9kS0VZIiJleHRyYWN0T3B0aW9uYWxQYXltZW50QW1vdW50T3JGYWlsIg9leHBlY3RlZEFzc2V0SWQiA3BtdCIZY2FsY1VzZXJHd3hBbW91bnRBdEhlaWdodCIMdGFyZ2V0SGVpZ2h0IgVFTVBUWSISdXNlcjJOdW1NYXBwaW5nS0VZIg1nd3hBbW91bnRDYWxjIhRjYWxjQ3VycmVudEd3eEFtb3VudCIaZ2V0Vm90aW5nRW1pc3Npb25FcG9jaEluZm8iDSR0MDE3ODI5MTgxMTkiEmxhc3RGaW5hbGl6ZWRFcG9jaCIXY3VycmVudEVwb2NoU3RhcnRIZWlnaHQiGGdldFBvb2xBc3NldHNCeUxwQXNzZXRJZCIQaWR4QW1vdW50QXNzZXRJZCIPaWR4UHJpY2VBc3NldElkIgdwb29sQ2ZnIhRnZXRVc2VyVm90ZUZpbmFsaXplZCINJHQwMTg4MTAxODg5MCINJHQwMTg4OTMxODk2OCILdXNlclZvdGVLZXkiCHVzZXJWb3RlIhFnZXRVc2VyVm90ZVN0YWtlZCIMc3Rha2VkQnlVc2VyIhVnZXRWb3RpbmdSZXN1bHRTdGFrZWQiDSR0MDE5NTEyMTk1OTIiF3ZvdGluZ1Jlc3VsdFN0YWtlZFN0YXJ0IhJ2b3RpbmdSZXN1bHRTdGFrZWQiHWdldFZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsIg0kdDAxOTk1NDIwMDM0Ih52b3RpbmdSZXN1bHRTdGFrZWRJbnRlZ3JhbFByZXYiInZvdGluZ1Jlc3VsdFN0YWtlZExhc3RVcGRhdGVIZWlnaHQiHHZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsRGgiGnZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsIiFyZWZyZXNoVm90aW5nUmVzdWx0U3Rha2VkSW50ZWdyYWwiD3N0YWtlZFZvdGVEZWx0YSINJHQwMjA4NzEyMDk1MSIVdm90aW5nUmVzdWx0U3Rha2VkTmV3IhlnZXRVc2VyVm90ZVN0YWtlZEludGVncmFsIg0kdDAyMTU2MjIxNjQyIg51c2VyVm90ZVN0YWtlZCIadXNlclZvdGVTdGFrZWRJbnRlZ3JhbFByZXYiHnVzZXJWb3RlU3Rha2VkTGFzdFVwZGF0ZUhlaWdodCIYdXNlclZvdGVTdGFrZWRJbnRlZ3JhbERoIhZ1c2VyVm90ZVN0YWtlZEludGVncmFsIhlyZWZyZXNoVm90ZVN0YWtlZEludGVncmFsIgRlZGdlIg0kdDAyMjQzMDIyNTEwIhF1c2VyVm90ZUZpbmFsaXplZCIHYWN0aW9ucyITdm90aW5nUmVzdWx0QWN0aW9ucyILdm90ZUFjdGlvbnMiG2dldFN0YWtlZFZvdGVzSW50ZWdyYWxzRGlmZiINJHQwMjMzNjQyMzQ0NCIddXNlclZvdGVTdGFrZWRJbnRlZ3JhbExhc3RLZXkiGnVzZXJWb3RlU3Rha2VkSW50ZWdyYWxMYXN0IiF2b3RpbmdSZXN1bHRTdGFrZWRJbnRlZ3JhbExhc3RLZXkiHnZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsTGFzdCIadXNlclZvdGVTdGFrZWRJbnRlZ3JhbERpZmYiHnZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsRGlmZiIccmVmcmVzaEJvb3N0RW1pc3Npb25JbnRlZ3JhbCISd3hFbWlzc2lvblBlckJsb2NrIiBib29zdGluZ1YyTGFzdFVwZGF0ZUhlaWdodE9wdGlvbiIYYm9vc3RpbmdWMkluZ2VyZ2FsT3B0aW9uIgtlbWlzc2lvbkVuZCICZGgiEGxhc3RVcGRhdGVIZWlnaHQiFWJvb3N0RW1pc3Npb25QZXJCbG9jayIZYm9vc3RFbWlzc2lvbkludGVncmFsUHJldiIVYm9vc3RFbWlzc2lvbkludGVncmFsIhRpbnRlcm5hbENsYWltV3hCb29zdCIIcmVhZE9ubHkiEHVzZXJSZWNvcmRPcHRpb24iD3VzZXJSZWNvcmRBcnJheSIKdXNlck51bVN0ciIIRU1QVFlTVFIiCnBvb2xXZWlnaHQiDnBvb2xBZGRyZXNzU3RyIiJ1c2VyTHBCb29zdEVtaXNzaW9uTGFzdEludGVncmFsS0VZIiB1c2VyQm9vc3RFbWlzc2lvbkxhc3RJbnRlZ3JhbEtFWSIddXNlckJvb3N0RW1pc3Npb25MYXN0SW50ZWdyYWwiGXVzZXJCb29zdEVtaXNzaW9uSW50ZWdyYWwiDSR0MDI3MDYzMjcyMDIiG3N0YWtlZFZvdGVzSW50ZWdyYWxzQWN0aW9ucyIUdXNlclZvdGVJbnRlZ3JhbERpZmYiFnRvdGFsVm90ZXNJbnRlZ3JhbERpZmYiHXBvb2xVc2VyQm9vc3RFbWlzc2lvbkludGVncmFsIiF1c2VyQm9vc3RBdmFsaWFibGVUb0NsYWltVG90YWxOZXciCWRhdGFTdGF0ZSIFZGVidWciC2xvY2tBY3Rpb25zIghjZmdBcnJheSIKYXNzZXRJZFN0ciIJcG10QW1vdW50Ig5uZXh0VXNlck51bUtFWSIOdXNlcklzRXhpc3RpbmciB2NvZWZmWDgiDmdXeEFtb3VudFN0YXJ0IhNnV3hQYXJhbXNSZXN1bHRMaXN0IgNhcnIiEWZhY3RvcnlBZGRyZXNzU3RyIg5sb2NrQXNzZXRJZFN0ciILbWluRHVyYXRpb24iC21heER1cmF0aW9uIgtjaGVja0NhbGxlciIPcmVmZXJyZXJBZGRyZXNzIglzaWduYXR1cmUiDSR0MDMxODEzMzE4NzgiEWxvY2tBY3Rpb25zUmVzdWx0Ig9yZWZlcnJhbEFkZHJlc3MiBnJlZkludiIRdXBkYXRlUmVmQWN0aXZpdHkiDSR0MDMyMzM2MzI0MDEiDWRlbHRhRHVyYXRpb24iCnVzZXJBbW91bnQiDGxvY2tEdXJhdGlvbiIHbG9ja0VuZCIRcmVtYWluaW5nRHVyYXRpb24iDXVzZXJBbW91bnROZXciD2xvY2tEdXJhdGlvbk5ldyIMbG9ja1N0YXJ0TmV3IgtjdXJyVXNlckd3eCIHZ3d4RGlmZiIXdG90YWxDYWNoZWRHd3hDb3JyZWN0ZWQiDSR0MDM1NTA2MzU2MDgiEnVzZXJCb29zdEF2YWlsYWJsZSINJHQwMzU3NDAzNTg0MSIQbWF4RGVsdGFEdXJhdGlvbiICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5iwEAAWECAl9fAAFiAAgAAWMAgMLXLwABZAUBYwEBZQEBZgkAuQkCCQDMCAICDmJvb3N0aW5nLnJpZGU6CQDMCAIFAWYFA25pbAIBIAEBZwEBZgkAAgEJAQFlAQUBZgEBaAIBaQFqCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUBaQUBagkBAWUBCQCsAgIJAKwCAgIPbWFuZGF0b3J5IHRoaXMuBQFqAg8gaXMgbm90IGRlZmluZWQBAWsCAWkBagkBC3ZhbHVlT3JFbHNlAgkAmggCBQFpBQFqAAABAWwDAWkBagFtCQELdmFsdWVPckVsc2UCCQCaCAIF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BAFyCQCdCAIFAmFHCQECYWUAAwkAAQIFAXICBlN0cmluZwQCYUUFAXIJANkEAQUCYUUDCQABAgUBcgIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJhSAECYUkEAmFKCQEBZwECEVBlcm1pc3Npb24gZGVuaWVkBAFyCQECYUYAAwkAAQIFAXICCkJ5dGVWZWN0b3IEAmFLBQFyAwkAAAIIBQJhSQ9jYWxsZXJQdWJsaWNLZXkFAmFLBgUCYUoDCQABAgUBcgIEVW5pdAMJAAACCAUCYUkGY2FsbGVyBQR0aGlzBgUCYUoJAAIBAgtNYXRjaCBlcnJvcgACYUwAAQACYU0AAgACYU4AAwACYU8ABAACYVAABQACYVEABgECYVIBAmFTCQC5CQIJAMwIAgIKJXMlc19fbG9jawkAzAgCBQJhUwUDbmlsBQFhAQJhVAECYVMJALUJAgkBAWgCBQR0aGlzCQECYVIBBQJhUwUBYQECYVUIAmFWAmFXAmFYAmFZAmFaAmJhAmJiAmJjCQC5CQIJAMwIAgIQJWQlZCVkJWQlZCVkJWQlZAkAzAgCBQJhVgkAzAgCBQJhVwkAzAgCBQJhWAkAzAgCBQJhWQkAzAgCBQJhWgkAzAgCBQJiYQkAzAgCBQJiYgkAzAgCBQJiYwUDbmlsBQFhAQJiZAcCYVYCYVcCYVgCYVkCYVoCYmECYmMJAQJhVQgFAmFWCQCkAwEFAmFXCQCkAwEFAmFYCQCkAwEFAmFZCQCkAwEFAmFaCQCkAwEFAmJhCQCkAwEIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQCkAwEFAmJjAQJiZQACDyVzX19uZXh0VXNlck51bQECYmYBAmFTCQC5CQIJAMwIAgIZJXMlcyVzX19tYXBwaW5nX191c2VyMm51bQkAzAgCBQJhUwUDbmlsBQFhAQJiZwEBVQkAuQkCCQDMCAICGSVzJXMlc19fbWFwcGluZ19fbnVtMnVzZXIJAMwIAgUBVQUDbmlsBQFhAQJiaAECYVYJALkJAgkAzAgCAhYlcyVkJXNfX3BhcmFtQnlVc2VyTnVtCQDMCAIFAmFWCQDMCAICBmFtb3VudAUDbmlsBQFhAQJiaQECYVYJALkJAgkAzAgCAhYlcyVkJXNfX3BhcmFtQnlVc2VyTnVtCQDMCAIFAmFWCQDMCAICBXN0YXJ0BQNuaWwFAWEBAmJqAQJhVgkAuQkCCQDMCAICFiVzJWQlc19fcGFyYW1CeVVzZXJOdW0JAMwIAgUCYVYJAMwIAgIIZHVyYXRpb24FA25pbAUBYQECYmsBAmFWCQC5CQIJAMwIAgIWJXMlZCVzX19wYXJhbUJ5VXNlck51bQkAzAgCBQJhVgkAzAgCAgFrBQNuaWwFAWEBAmJsAQJhVgkAuQkCCQDMCAICFiVzJWQlc19fcGFyYW1CeVVzZXJOdW0JAMwIAgUCYVYJAMwIAgIBYgUDbmlsBQFhAQJibQICYVYCYm4JALkJAgkAzAgCAhclcyVkJXMlZF9fcGFyYW1CeVBlcmlvZAkAzAgCBQJhVgkAzAgCAgFrCQDMCAIFAmJuBQNuaWwFAWEBAmJvAgJhVgJibgkAuQkCCQDMCAICFyVzJWQlcyVkX19wYXJhbUJ5UGVyaW9kCQDMCAIFAmFWCQDMCAICAWIJAMwIAgUCYm4FA25pbAUBYQECYnAAAh4lcyVzX19zdGF0c19fYWN0aXZlVG90YWxMb2NrZWQBAmJxAAIlJXMlc19fc3RhdHNfX2xvY2tzRHVyYXRpb25TdW1JbkJsb2NrcwECYnIAAhclcyVzX19zdGF0c19fbG9ja3NDb3VudAECYnMAAh0lcyVzX19zdGF0c19fYWN0aXZlVXNlcnNDb3VudAECYnQBAmFWCQC5CQIJAMwIAgIgJXMlZF9fdXNlckJvb3N0RW1pc3Npb25MYXN0SW50VjIJAMwIAgUCYVYFA25pbAUBYQECYnUCAmFWAmJ2CQC5CQIJAMwIAgIgJXMlZF9fdXNlckJvb3N0RW1pc3Npb25MYXN0SW50VjIJAMwIAgUCYVYJAMwIAgUCYnYFA25pbAUBYQECYncBAmFWCQC5CQIJAMwIAgIRJXMlZF9fbWF4Qm9vc3RJbnQJAMwIAgUCYVYFA25pbAUBYQECYngAAhglcyVzX19tYXhCb29zdEludF9fdG90YWwBAmJ5AQJhVgkAuQkCCQDMCAICJCVzJWRfX3VzZXJCb29zdEF2YWxpYWJsZVRvQ2xhaW1Ub3RhbAkAzAgCBQJhVgUDbmlsBQFhAQJiegECYVYJALkJAgkAzAgCAhYlcyVkX191c2VyQm9vc3RDbGFpbWVkCQDMCAIFAmFWBQNuaWwFAWEBAmJBAAIWJXMlc19fZ3d4Q2FjaGVkX190b3RhbAECYkIAAhwlc19fZ3d4Q2FjaGVkVG90YWxDb3JyZWN0aXZlAQJiQwQCYkQCYkUBaQJiRgkAuQkCCQDMCAICCiVzJXMlcyVzJWQJAMwIAgIEdm90ZQkAzAgCBQJiRAkAzAgCBQJiRQkAzAgCCQClCAEFAWkJAMwIAgkApAMBBQJiRgUDbmlsBQFhAQJiRwECYkYJALkJAgkAzAgCAgQlcyVkCQDMCAICC3N0YXJ0SGVpZ2h0CQDMCAIJAKQDAQUCYkYFA25pbAUBYQECYkgACQC5CQIJAMwIAgICJXMJAMwIAgIOY3VycmVudEVwb2NoVWkFA25pbAUBYQECYkkCAmJKAmJGCQC5CQIJAMwIAgIGJXMlcyVkCQDMCAICEnZvdGluZ1Jlc3VsdFN0YWtlZAkAzAgCBQJiSgkAzAgCCQCkAwEFAmJGBQNuaWwFAWEBAmJLAgJiSgJiRgkAuQkCCQDMCAICBiVzJXMlZAkAzAgCAhp2b3RpbmdSZXN1bHRTdGFrZWRJbnRlZ3JhbAkAzAgCBQJiSgkAzAgCCQCkAwEFAmJGBQNuaWwFAWEBAmJMAgJiSgJiRgkAuQkCCQDMCAICBiVzJXMlZAkAzAgCAip2b3RpbmdSZXN1bHRTdGFrZWRJbnRlZ3JhbExhc3RVcGRhdGVIZWlnaHQJAMwIAgUCYkoJAMwIAgkApAMBBQJiRgUDbmlsBQFhAQJiTQMCYkoBaQJiRgkAuQkCCQDMCAICCCVzJXMlcyVkCQDMCAICHnZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsTGFzdAkAzAgCBQJiSgkAzAgCCQClCAEFAWkJAMwIAgkApAMBBQJiRgUDbmlsBQFhAQJiTgMCYkoBaQJiRgkAuQkCCQDMCAICCCVzJXMlcyVkCQDMCAICEnZvdGVTdGFrZWRJbnRlZ3JhbAkAzAgCBQJiSgkAzAgCCQClCAEFAWkJAMwIAgkApAMBBQJiRgUDbmlsBQFhAQJiTwMCYkoBaQJiRgkAuQkCCQDMCAICCCVzJXMlcyVkCQDMCAICInZvdGVTdGFrZWRJbnRlZ3JhbExhc3RVcGRhdGVIZWlnaHQJAMwIAgUCYkoJAMwIAgkApQgBBQFpCQDMCAIJAKQDAQUCYkYFA25pbAUBYQECYlADAmJKAWkCYkYJALkJAgkAzAgCAgglcyVzJXMlZAkAzAgCAhZ2b3RlU3Rha2VkSW50ZWdyYWxMYXN0CQDMCAIFAmJKCQDMCAIJAKUIAQUBaQkAzAgCCQCkAwEFAmJGBQNuaWwFAWEBAmJRAgJiUgJiSgkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgZzdGFrZWQJAMwIAgUCYlIJAMwIAgUCYkoFA25pbAUBYQACYlMJAQFWAAACYWEJAQFYAQUCYlMAAmJUCQECYWIBBQJhYQACYlUJAQJhYwEFAmFhAAJiVgkBAmFkAQUCYWEAAmJXCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJALkJAgkAzAgCAgIlcwkAzAgCAhZscFN0YWtpbmdQb29sc0NvbnRyYWN0BQNuaWwFAWEJAQFlAQIubHBfc3Rha2luZ19wb29scyBjb250cmFjdCBhZGRyZXNzIGlzIHVuZGVmaW5lZAkBAWUBAilpbnZhbGlkIGxwX3N0YWtpbmdfcG9vbHMgY29udHJhY3QgYWRkcmVzcwACYlgJALkJAgkAzAgCAgIlcwkAzAgCAhZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0BQNuaWwFAWEAAmJZCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQJiUwUCYlgAAmJaCgACY2EJAPwHBAUCYlQCFWdldEJvb3N0Q29lZmZSRUFET05MWQUDbmlsBQNuaWwDCQABAgUCY2ECA0ludAUCY2EJAAIBCQCsAgIJAAMBBQJjYQIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AQJjYgECY2MEAmNkCQERQGV4dHJOYXRpdmUoMTA1MCkCBQJiWQkBAmJIAAQCY2UJALkJAgkAzAgCAgQlcyVzCQDMCAICKXRvdGFsQ2FjaGVkR3d4Q29ycmVjdGlvbl9fYWN0aXZhdGlvbkVwb2NoBQNuaWwFAWEEAmNmCQCaCAIFBHRoaXMFAmNlBAJjZwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYkEAAAAEAmNoAwkBCWlzRGVmaW5lZAEFAmNmCQBnAgUCY2QJAQV2YWx1ZQEFAmNmBwQCY2kDAwUCY2gFAmNjBwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYkIAAAAAAAkAlgMBCQDMCAIAAAkAzAgCCQBkAgUCY2cFAmNpBQNuaWwBAmNqCAJjawJjbAJhVwJjbQJhWQJjbgJjbwJhSQQCY3AJALkJAgkAzAgCAhElcyVzJXMlc19faGlzdG9yeQkAzAgCBQJjawkAzAgCBQJjbAkAzAgCCQDYBAEIBQJhSQ10cmFuc2FjdGlvbklkBQNuaWwFAWEEAmNxCQC5CQIJAMwIAgIOJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBCAUJbGFzdEJsb2NrBmhlaWdodAkAzAgCCQCkAwEIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAKQDAQUCYVcJAMwIAgkApAMBBQJjbQkAzAgCCQCkAwEFAmFZCQDMCAIJAKQDAQUCY24JAMwIAgkApAMBBQJjbwUDbmlsBQFhCQELU3RyaW5nRW50cnkCBQJjcAUCY3EBAmNyBAJjcwJjdAJjdQJjdgQCY3cJAQJicQAEAmN4CQECYnIABAJjeQkBAmJzAAQCY3oJAQJicAAEAmNBCQEBawIFBHRoaXMFAmN3BAJjQgkBAWsCBQR0aGlzBQJjeAQCY0MJAQFrAgUEdGhpcwUCY3kEAmNECQEBawIFBHRoaXMFAmN6CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjdwkAZAIFAmNBBQJjdAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCY3gJAGQCBQJjQgUCY3UJAMwIAgkBDEludGVnZXJFbnRyeQIFAmN5CQBkAgUCY0MFAmN2CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjegkAZAIFAmNEBQJjcwUDbmlsAQJjRQMCY0YCY0cCY0gEAmNJAOgHCQBpAgkAZAIJAGgCBQJjRgUCY0gFAmNHBQJjSQECY0oIAmFTAmFWAmFXAmFYAmFZAmNuAmNvAmJuBAJjSwkBAmJoAQUCYVYEAmNMCQECYmkBBQJhVgQCY00JAQJiagEFAmFWBAJjTgkBAmJrAQUCYVYEAmNPCQECYmwBBQJhVgQCY1AJAQJibQIFAmFWBQJibgQCY1EJAQJibwIFAmFWBQJibgQCYmMJAQJjRQMFAmNuBQJjbwUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjSwUCYVcJAMwIAgkBDEludGVnZXJFbnRyeQIFAmNMBQJhWAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCY00FAmFZCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjTgUCY24JAMwIAgkBDEludGVnZXJFbnRyeQIFAmNPBQJjbwkAzAgCCQEMSW50ZWdlckVudHJ5AgUCY1AFAmNuCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjUQUCY28JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFSAQUCYVMJAQJiZAcFAmFWBQJhVwUCYVgFAmFZBQJjbgUCY28FAmJjBQNuaWwBAmNSAgJhSQJjUwMJAGYCCQCQAwEIBQJhSQhwYXltZW50cwABCQEBZwECG29ubHkgb25lIHBheW1lbnQgaXMgYWxsb3dlZAMJAAACCQCQAwEIBQJhSQhwYXltZW50cwAAAAAEAmNUCQCRAwIIBQJhSQhwYXltZW50cwAAAwkBAiE9AgkBBXZhbHVlAQgFAmNUB2Fzc2V0SWQFAmNTCQEBZwECG2ludmFsaWQgYXNzZXQgaWQgaW4gcGF5bWVudAgFAmNUBmFtb3VudAECY1UCAmFTAmNWBAJjVwIFZW1wdHkEAmNYCQECYmYBBQJhUwQCYVYJAQt2YWx1ZU9yRWxzZQIJAKIIAQUCY1gFAmNXBAJjbgkBC3ZhbHVlT3JFbHNlAgkAnwgBCQECYmsBBQJhVgAABAJjbwkBC3ZhbHVlT3JFbHNlAgkAnwgBCQECYmwBBQJhVgAABAJjWQkBAmNFAwUCY24FAmNvBQJjVgQCYmMDCQBmAgAABQJjWQAABQJjWQUCYmMBAmNaAQJhUwkBAmNVAgUCYVMFBmhlaWdodAECZGEABAJkYgQCY2QJAQV2YWx1ZQEJAJoIAgUCYlkJAQJiSAAEAmRjCQBlAgUCY2QAAQMJAGYCAAAFAmRjCQEBZwECDWludmFsaWQgZXBvY2gJAJQKAgUCY2QFAmRjBAJjZAgFAmRiAl8xBAJkYwgFAmRiAl8yBAJkZAkBBXZhbHVlAQkAmggCBQJiWQkBAmJHAQUCY2QJAJQKAgUCZGMFAmRkAQJkZQECYkoEAmRmAAQEAmRnAAUEAmRoCgACY2EJAPwHBAUCYlMCIGdldFBvb2xDb25maWdCeUxwQXNzZXRJZFJFQURPTkxZCQDMCAIFAmJKBQNuaWwFA25pbAMJAAECBQJjYQIJTGlzdFtBbnldBQJjYQkAAgEJAKwCAgkAAwEFAmNhAh4gY291bGRuJ3QgYmUgY2FzdCB0byBMaXN0W0FueV0EAmJECgACY2EJAJEDAgUCZGgFAmRmAwkAAQIFAmNhAgZTdHJpbmcFAmNhCQACAQkArAICCQADAQUCY2ECGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwQCYkUKAAJjYQkAkQMCBQJkaAUCZGcDCQABAgUCY2ECBlN0cmluZwUCY2EJAAIBCQCsAgIJAAMBBQJjYQIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nCQCUCgIFAmJEBQJiRQECZGkCAmJKAmJSBAJhUwkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYlIEAmRqCQECZGEABAJkYwgFAmRqAl8xBAJkZAgFAmRqAl8yBAJkawkBAmRlAQUCYkoEAmJECAUCZGsCXzEEAmJFCAUCZGsCXzIEAmRsCQECYkMEBQJiRAUCYkUFAmFTBQJkYwQCZG0JAQt2YWx1ZU9yRWxzZQIJAJoIAgUCYlkFAmRsAAAFAmRtAQJkbgICYkoCYlIEAmRvCQELdmFsdWVPckVsc2UCCQCaCAIFAmJVCQECYlECBQJiUgUCYkoAAAQCZG0JAQJkaQIFAmJKBQJiUgMJAAACBQJkbwAAAAAFAmRtAQJkcAECYkoEAmRxCQECZGEABAJkYwgFAmRxAl8xBAJkZAgFAmRxAl8yBAJkcgkBC3ZhbHVlT3JFbHNlAgkAmggCBQJiWQkBAmJJAgUCYkoFAmRjAAAEAmRzCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJiSQIFAmJKBQJkYwUCZHIFAmRzAQJkdAECYkoEAmR1CQECZGEABAJkYwgFAmR1Al8xBAJkZAgFAmR1Al8yBAJkcwkBAmRwAQUCYkoEAmR2CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJiSwIFAmJKBQJkYwAABAJkdwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYkwCBQJiSgUCZGMFAmRkBAJkeAkAZQIFBmhlaWdodAUCZHcEAmR5CQBkAgkAaAIFAmR4BQJkcwUCZHYFAmR5AQJkegICYkoCZEEEAmRCCQECZGEABAJkYwgFAmRCAl8xBAJkZAgFAmRCAl8yBAJkcwkBAmRwAQUCYkoEAmRDCQBkAgUCZHMFAmRBBAJkeQkBAmR0AQUCYkoJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJiSQIFAmJKBQJkYwUCZEMJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJiTAIFAmJKBQJkYwUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYksCBQJiSgUCZGMFAmR5BQNuaWwBAmREAgJiSgJiUgQCZEUJAQJkYQAEAmRjCAUCZEUCXzEEAmRkCAUCZEUCXzIEAmFTCQERQGV4dHJOYXRpdmUoMTA2MikBBQJiUgQCZEYJAQJkbgIFAmJKBQJiUgQCZEcJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmJOAwUCYkoFAmFTBQJkYwAABAJkSAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYk8DBQJiSgUCYVMFAmRjBQJkZAQCZEkJAGUCBQZoZWlnaHQFAmRIBAJkSgkAZAIJAGgCBQJkSQUCZEYFAmRHBQJkSgECZEsDAmJKAmJSAmRMBAJkTQkBAmRhAAQCZGMIBQJkTQJfMQQCZGQIBQJkTQJfMgQCYVMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmJSBAJkTgkBAmRpAgUCYkoFAmJSBAJkTwMJAAACBQJkTgAABQNuaWwEAmRBAwUCZEwFAmROCQEBLQEFAmROBAJkUAkBAmR6AgUCYkoFAmRBBAJkSgkBAmREAgUCYkoFAmJSBAJkUQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmJPAwUCYkoFAmFTBQJkYwUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYk4DBQJiSgUCYVMFAmRjBQJkSgUDbmlsCQDOCAIFAmRQBQJkUQUCZE8BAmRSAgJiSgJiUgQCZFMJAQJkYQAEAmRjCAUCZFMCXzEEAmRkCAUCZFMCXzIEAmFTCQERQGV4dHJOYXRpdmUoMTA2MikBBQJiUgQCZFQJAQJiUAMFAmJKBQJhUwUCZGMEAmRVCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmRUAAAEAmRWCQECYk0DBQJiSgUCYVMFAmRjBAJkVwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJkVgAABAJkSgkBAmREAgUCYkoFAmJSBAJkeQkBAmR0AQUCYkoEAmRYCQBlAgUCZEoFAmRVBAJkWQkAZQIFAmR5BQJkVwkAlQoDCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJkVAUCZEoJAMwIAgkBDEludGVnZXJFbnRyeQIFAmRWBQJkeQUDbmlsBQJkWAUCZFkBAmRaAAQCZWEJAQFuAgUCYlQJAQJhZwAEAmViCQCaCAIFBHRoaXMJAQJhagAEAmVjCQCaCAIFBHRoaXMJAQJhawAEAmVkCQEBbgIFAmJUCQECYW0ABAJjSAMJAGYCBQZoZWlnaHQFAmVkBQJlZAUGaGVpZ2h0BAJlZQQBcgUCZWIDCQABAgUBcgIDSW50BAJlZgUBcgkAlgMBCQDMCAIJAGUCBQJjSAUCZWYJAMwIAgAABQNuaWwDCQABAgUBcgIEVW5pdAAACQACAQILTWF0Y2ggZXJyb3IEAmVnCQBpAgkAaAIFAmVhCQBlAgUCYloAAQUCYloEAmVoCQELdmFsdWVPckVsc2UCBQJlYwAABAJlaQkAZAIJAGgCBQJlZwUCZWUFAmVoCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhawAFAmVpCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWoABQZoZWlnaHQFA25pbAUCZWkBAmVqAwJiSgJiUgJlawQCZWwJAJ0IAgUEdGhpcwkBAmFSAQUCYlIDCQAAAgUCZWwFBHVuaXQJAJUKAwAABQNuaWwCFXVzZXJSZWNvcmQ6OmlzOjplbXB0eQQCZW0JALUJAgkBBXZhbHVlAQUCZWwFAWEEAmVuCQCRAwIFAmVtBQJhTAQCZW8CBWVtcHR5BAJlcAMJAQIhPQIFAmJKBQJlbwQCZXEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQJiUwkBAU8BBQJiSgkBAWUBCQCsAgICFXVuc3VwcG9ydGVkIGxwIGFzc2V0IAUCYkoJARFAZXh0ck5hdGl2ZSgxMDUwKQIFAmJTCQEBUQEFAmVxAwUCZWsAAAkBAWcBCQCsAgICKG5vdCByZWFkb25seSBtb2RlOiB1bnN1cHBvcnRlZCBscCBhc3NldCAFAmJKBAJlcgkBAmJ1AgUCZW4FAmJKBAJlcwkBAmJ0AQUCZW4EAmV0CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmVyCQEBawIFBHRoaXMFAmVzBAJlaQgJAQJkWgACXzIEAmV1CQBlAgUCZWkFAmV0AwkAZgIAAAUCZXUJAQFnAQISd3JvbmcgY2FsY3VsYXRpb25zBAJldgkBAmRSAgUCYkoFAmJSBAJldwgFAmV2Al8xBAJleAgFAmV2Al8yBAJleQgFAmV2Al8zBAJlegkAawMFAmV1BQJlcAUBZAQCZUEDCQAAAgUCZXkAAAAACQBrAwUCZXoFAmV4BQJleQQCZUIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZXIFAmVpBQNuaWwFAmV3BAJlQwkAuQkCCQDMCAIJAKQDAQUCZXQJAMwIAgkApAMBBQJldQkAzAgCCQCkAwEFAmVwCQDMCAIJAKQDAQUCZXgJAMwIAgkApAMBBQJleQUDbmlsAgE6CQCVCgMFAmVBBQJlQgUCZUMBAmVEAgJhSQJhWQQCZUUJAQJhdgAEAmVGCQCRAwIFAmVFBQJhcAQCYXkJANkEAQUCZUYEAmF6CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZUUFAmFxBAJhQQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVFBQJhcgQCYUIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlRQUCYXMDCQECIT0CCQCQAwEIBQJhSQhwYXltZW50cwABCQEBZwECNGludmFsaWQgcGF5bWVudCAtIGV4YWN0IG9uZSBwYXltZW50IG11c3QgYmUgYXR0YWNoZWQEAmNUCQCRAwIIBQJhSQhwYXltZW50cwAABAJlRwgFAmNUBmFtb3VudAMJAQIhPQIFAmF5CQEFdmFsdWUBCAUCY1QHYXNzZXRJZAkBAWcBCQCsAgIJAKwCAgIeaW52YWxpZCBhc3NldCBpcyBpbiBwYXltZW50IC0gBQJlRgIMIGlzIGV4cGVjdGVkBAJlSAkBAmJlAAQCYlIJAKUIAQgFAmFJBmNhbGxlcgQCZUkJAQlpc0RlZmluZWQBCQCiCAEJAQJiZgEFAmJSBAJlbgMFAmVJCQEFdmFsdWUBCQCiCAEJAQJiZgEFAmJSCQCkAwEJAQFuAgUEdGhpcwUCZUgEAmFWCQENcGFyc2VJbnRWYWx1ZQEFAmVuBAJjbQUGaGVpZ2h0BAJjTAkBAmJpAQUCZW4EAmNNCQECYmoBBQJlbgQCY0sJAQJiaAEFAmVuAwMJAGYCBQJhegUCZUcJAQIhPQIIBQJhSQZjYWxsZXIFAmJXBwkBAWcBCQCsAgICImFtb3VudCBpcyBsZXNzIHRoZW4gbWluTG9ja0Ftb3VudD0JAKQDAQUCYXoDCQBmAgUCYUEFAmFZCQEBZwEJAKwCAgItcGFzc2VkIGR1cmF0aW9uIGlzIGxlc3MgdGhlbiBtaW5Mb2NrRHVyYXRpb249CQCkAwEFAmFBAwkAZgIFAmFZBQJhQgkBAWcBCQCsAgICMHBhc3NlZCBkdXJhdGlvbiBpcyBncmVhdGVyIHRoZW4gbWF4TG9ja0R1cmF0aW9uPQkApAMBBQJhQgMDBQJlSQkAZwIJAGQCCQEBbgIFBHRoaXMFAmNMCQEBbgIFBHRoaXMFAmNNBQJjbQcJAQFnAQI2dGhlcmUgaXMgYW4gYWN0aXZlIGxvY2sgLSBjb25zaWRlciB0byB1c2UgaW5jcmVhc2VMb2NrAwkAZgIJAQFrAgUEdGhpcwUCY0sAAAkBAWcBCQCsAgICNHRoZXJlIGFyZSBsb2NrZWQgV1hzIC0gY29uc2lkZXIgdG8gdXNlIGluY3JlYXNlTG9jayAFAmNLBAJlSgkAawMFAmFZBQFjBQJhQgQCZUsJAGsDBQJlRwUCZUoFAWMEAmVMCQEBcQEJAPwHBAUCYXcCFWNhbGNHd3hQYXJhbXNSRUFET05MWQkAzAgCBQJlSwkAzAgCBQJjbQkAzAgCBQJhWQUDbmlsBQNuaWwEAmNuCQEBdAEJAJEDAgUCZUwAAAQCY28JAQF0AQkAkQMCBQJlTAABBAJibgkApAMBCQEBdAEJAJEDAgUCZUwAAgQCY2cJAQJjYgEHBAJlcwkBAmJ0AQUCZW4EAmVpCAkBAmRaAAJfMgQCZU0DBQJlSQUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJlSAkAZAIFAmFWAAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmJmAQUCYlIFAmVuCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJiZwEFAmVuBQJiUgUDbmlsCQCUCgIJAM4IAgkAzQgCCQDOCAIJAM4IAgUCZU0JAQJjSggFAmJSBQJlbgUCZUcFAmNtBQJhWQUCY24FAmNvBQJibgkBAmNyBAUCZUcFAmFZAAEDBQJlSQAAAAEJAQJjaggCBGxvY2sFAmJSBQJlRwUCY20FAmFZBQJjbgUCY28FAmFJCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJlcwUCZWkJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJiQQAJAGQCBQJjZwUCZUsFA25pbAUCZUsRAmFJAQtjb25zdHJ1Y3RvcgYCZU4CZU8CYXoCZVACZVECYXcEAmVSCQECYUgBBQJhSQMJAAACBQJlUgUCZVIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmJlAAAACQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhdQAJAQJhQwUFAmVPBQJhegUCZVAFAmVRBQJhdwkAzAgCCQELU3RyaW5nRW50cnkCCQEBQQAFAmVOBQNuaWwJAQJjcgQAAAAAAAAAAAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhSQEHbG9ja1JlZgMCYVkCZVMCZVQEAmVVCQECZUQCBQJhSQUCYVkEAmVWCAUCZVUCXzEEAmVLCAUCZVUCXzIEAmVXCQClCAEIBQJhSQZjYWxsZXIEAmVYAwMJAAACBQJlUwIABgkAAAIFAmVUAQAFBHVuaXQJAPwHBAUBdwIKY3JlYXRlUGFpcgkAzAgCBQF6CQDMCAIFAmVTCQDMCAIFAmVXCQDMCAIFAmVUBQNuaWwFA25pbAMJAAACBQJlWAUCZVgEAmVZCQD8BwQFAmF3AhZ1cGRhdGVSZWZlcnJhbEFjdGl2aXR5CQDMCAIJAKUIAQgFAmFJBmNhbGxlcgkAzAgCBQJlSwUDbmlsBQNuaWwDCQAAAgUCZVkFAmVZCQCUCgIFAmVWBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFJAQRsb2NrAQJhWQQCZVoJAQJlRAIFAmFJBQJhWQQCZVYIBQJlWgJfMQQCZUsIBQJlWgJfMgQCZVkJAPwHBAUCYXcCFnVwZGF0ZVJlZmVycmFsQWN0aXZpdHkJAMwIAgkApQgBCAUCYUkGY2FsbGVyCQDMCAIFAmVLBQNuaWwFA25pbAMJAAACBQJlWQUCZVkJAJQKAgUCZVYFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYUkBDGluY3JlYXNlTG9jawECZmEEAmVFCQECYXYABAJlRgkAkQMCBQJlRQUCYXAEAmF5CQDZBAEFAmVGBAJhQQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVFBQJhcgQCYUIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlRQUCYXMEAmVHCQECY1ICBQJhSQUCYXkEAmJSCQClCAEIBQJhSQZjYWxsZXIEAmVtCQECYVQBBQJiUgQCZW4JAJEDAgUCZW0FAmFMBAJmYgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVtBQJhTQQCY20JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlbQUCYU4EAmZjCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZW0FAmFPBAJmZAkAZAIFAmNtBQJmYwQCZmUJAJYDAQkAzAgCCQBlAgUCZmQFBmhlaWdodAkAzAgCAAAFA25pbAQCZmYJAGQCBQJmYgUCZUcEAmZnCQBkAgUCZmUFAmZhAwkAZgIAAAUCZmEJAQFnAQIaZHVyYXRpb24gaXMgbGVzcyB0aGVuIHplcm8DCQBmAgUCYUEFAmZnCQEBZwEJAKwCAgItbG9ja0R1cmF0aW9uTmV3IGlzIGxlc3MgdGhlbiBtaW5Mb2NrRHVyYXRpb249CQCkAwEFAmFBAwkAZgIFAmZnBQJhQgkBAWcBCQCsAgICRGRlbHRhRHVyYXRpb24gKyBleGlzdGVkTG9ja0R1cmF0aW9uIGlzIGdyZWF0ZXIgdGhlbiBtYXhMb2NrRHVyYXRpb249CQCkAwEFAmFCBAJlSgkAawMFAmZnBQFjBQJhQgQCZUsJAGsDBQJmZgUCZUoFAWMEAmVZCQD8BwQFAmF3AhZ1cGRhdGVSZWZlcnJhbEFjdGl2aXR5CQDMCAIJAKUIAQgFAmFJBmNhbGxlcgkAzAgCBQJlSwUDbmlsBQNuaWwDCQAAAgUCZVkFAmVZBAJmaAUGaGVpZ2h0BAJlTAkBAXEBCQD8BwQFAmF3AhVjYWxjR3d4UGFyYW1zUkVBRE9OTFkJAMwIAgUCZUsJAMwIAgUCZmgJAMwIAgUCZmcFA25pbAUDbmlsBAJjbgkBAXQBCQCRAwIFAmVMAAAEAmNvCQEBdAEJAJEDAgUCZUwAAQQCYm4JAKQDAQkBAXQBCQCRAwIFAmVMAAIEAmZpCQECY1oBBQJiUgQCZmoJAGUCBQJlSwUCZmkDCQBmAgAABQJmagkBAWcBCQCsAgICGGd3eERpZmYgaXMgbGVzcyB0aGVuIDA6IAkApAMBBQJmagQCY2cJAQJjYgEHBAJmawkBAmNiAQYJAM4IAgkAzQgCCQDOCAIJAQJjSggFAmJSBQJlbgUCZmYFAmZoBQJmZwUCY24FAmNvBQJibgkBAmNyBAUCZUcFAmZhAAAAAAkBAmNqCAIEbG9jawUCYlIFAmVHBQJjbQUCZmcFAmNuBQJjbwUCYUkJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJiQQAJAGQCBQJjZwUCZmoFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhSQEMY2xhaW1XeEJvb3N0AgJiSgJiUgMJAQIhPQIFAmJVCAUCYUkGY2FsbGVyCQEBZwECEnBlcm1pc3Npb25zIGRlbmllZAQCZmwJAQJlagMFAmJKBQJiUgcEAmZtCAUCZmwCXzEEAmVCCAUCZmwCXzIEAmVDCAUCZmwCXzMJAJQKAgUCZUIJAMwIAgUCZm0FA25pbAJhSQEUY2xhaW1XeEJvb3N0UkVBRE9OTFkCAmJKAmJSBAJmbgkBAmVqAwUCYkoFAmJSBgQCZm0IBQJmbgJfMQQCZUIIBQJmbgJfMgQCZUMIBQJmbgJfMwkAlAoCBQNuaWwJAMwIAgUCZm0JAMwIAgUCZUMFA25pbAJhSQEGdW5sb2NrAQJhUwQCZW0JAQJhVAEFAmFTBAJlbgkAkQMCBQJlbQUCYUwEAmZiCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZW0FAmFNBAJjbQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVtBQJhTgQCZmMJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlbQUCYU8EAmZkCQBkAgUCY20FAmZjBAJlRQkBAmF2AAQCYXkJANkEAQkAkQMCBQJlRQUCYXADCQBnAgUCZmQFBmhlaWdodAkBAWcBCQCsAgIJAKwCAgIFd2FpdCAJAKQDAQUCZmQCCiB0byB1bmxvY2sDCQBnAgAABQJmYgkBAWcBAhFub3RoaW5nIHRvIHVubG9jawQCYm4JAQt2YWx1ZU9yRWxzZQIJAJoIAgUCYXcJAQJhbgAAAAkAzQgCCQDNCAIJAM4IAgkBAmNKCAUCYVMFAmVuAAAFAmNtBQJmYwAAAAAJAKQDAQUCYm4JAQJjcgQJAQEtAQUCZmIAAAAAAP///////////wEJAQJjaggCBnVubG9jawUCYVMFAmZiBQJjbQUCZmMAAAAABQJhSQkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYVMFAmZiBQJheQJhSQETZ3d4VXNlckluZm9SRUFET05MWQECYVMEAmJjCQECY1oBBQJhUwkAlAoCBQNuaWwJAMwIAgUCYmMFA25pbAJhSQEXdXNlck1heER1cmF0aW9uUkVBRE9OTFkBAmJSBAJlRQkBAmF2AAQCYUIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlRQUCYXMEAmVsCQCdCAIFBHRoaXMJAQJhUgEFAmJSAwkAAAIFAmVsBQR1bml0CQCUCgIFA25pbAkAlAoCAgRsb2NrBQJhQgQCZW0JALUJAgkBBXZhbHVlAQUCZWwFAWEEAmNtCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZW0FAmFOBAJmYwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVtBQJhTwQCZmQJAGQCBQJjbQUCZmMEAmZlCQCWAwEJAMwIAgkAZQIFAmZkBQZoZWlnaHQJAMwIAgAABQNuaWwEAmZvCQBlAgUCYUIFAmZlCQCUCgIFA25pbAkAlAoCAgxpbmNyZWFzZUxvY2sFAmZvAmFJASBnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHRSRUFET05MWQICYVMCY1YEAmJjCQECY1UCBQJhUwUCY1YJAJQKAgUDbmlsBQJiYwJhSQEZZ2V0VG90YWxDYWNoZWRHd3hSRUFET05MWQAJAJQKAgUDbmlsCQECY2IBBgJhSQEVb25Cb29zdEVtaXNzaW9uVXBkYXRlAAQCZVIDCQAAAggFAmFJBmNhbGxlcgUCYlQGCQECYUgBBQJhSQMJAAACBQJlUgUCZVIJAQJkWgAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYUkBEm9uU3Rha2VkVm90ZVVwZGF0ZQMCYkoCYlICZEwEAmVSAwkAAAIIBQJhSQZjYWxsZXIFAmJVBgkBAmFIAQUCYUkDCQAAAgUCZVIFAmVSBAJkTwkBAmRLAwUCYkoFAmJSBQJkTAkAlAoCBQJkTwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhSQEdZ2V0Vm90aW5nUmVzdWx0U3Rha2VkUkVBRE9OTFkBAmJKCQCUCgIFA25pbAkBAmRwAQUCYkoCYUkBJWdldFZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsUkVBRE9OTFkBAmJKCQCUCgIFA25pbAkBAmR0AQUCYkoCYUkBHGdldFVzZXJWb3RlRmluYWxpemVkUkVBRE9OTFkCAmJKAmJSCQCUCgIFA25pbAkBAmRpAgUCYkoFAmJSAmFJASFnZXRVc2VyVm90ZVN0YWtlZEludGVncmFsUkVBRE9OTFkCAmJKAmJSCQCUCgIFA25pbAkBAmREAgUCYkoFAmJSAQJmcAECZnEABAJmcgQBcgkBAmFGAAMJAAECBQFyAgpCeXRlVmVjdG9yBAJhSwUBcgUCYUsDCQABAgUBcgIEVW5pdAgFAmZwD3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJmcAlib2R5Qnl0ZXMJAJEDAggFAmZwBnByb29mcwAABQJmcpZtyL4=", "height": 2925648, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: D4ajEzGWvhoHAR9C2TnuhtZpS99tu1nZV3VNcZK2t2uC Next: none Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = 8
77
88 let c = 100000000
99
1010 let d = c
1111
1212 func e (f) = makeString(["boosting.ride:", f], " ")
1313
1414
1515 func g (f) = throw(e(f))
1616
1717
1818 func h (i,j) = valueOrErrorMessage(getString(i, j), e((("mandatory this." + j) + " is not defined")))
1919
2020
2121 func k (i,j) = valueOrElse(getInteger(i, j), 0)
2222
2323
2424 func l (i,j,m) = valueOrElse(getInteger(i, j), m)
2525
2626
2727 func n (i,j) = valueOrErrorMessage(getInteger(i, j), e((("mandatory this." + j) + " is not defined")))
2828
2929
3030 func o (p) = if ((0 > p))
3131 then -(p)
3232 else p
3333
3434
3535 func q (p) = {
3636 let r = p
3737 if ($isInstanceOf(r, "List[Any]"))
3838 then {
3939 let s = r
4040 s
4141 }
4242 else g("fail to cast into List[Any]")
4343 }
4444
4545
4646 func t (p) = {
4747 let r = p
4848 if ($isInstanceOf(r, "Int"))
4949 then {
5050 let u = r
5151 u
5252 }
5353 else g("fail to cast into Int")
5454 }
5555
5656
5757 func v () = makeString(["%s%s", "config", "referralsContractAddress"], a)
5858
5959
6060 let w = addressFromStringValue(h(this, v()))
6161
6262 let x = makeString(["%s%s", "referral", "programName"], a)
6363
6464 let y = "wxlock"
6565
6666 let z = valueOrElse(getString(this, x), y)
6767
6868 func A () = "%s%s__config__factoryAddress"
6969
7070
7171 let B = 1
7272
7373 let C = 2
7474
7575 let D = 3
7676
7777 let E = 4
7878
7979 let F = 5
8080
8181 let G = 6
8282
8383 let H = 7
8484
8585 let I = 8
8686
8787 let J = 9
8888
8989 let K = 10
9090
9191 let L = 11
9292
9393 func M () = "%s__factoryConfig"
9494
9595
9696 func N () = "%s__lpTokensList"
9797
9898
9999 func O (P) = makeString(["%s%s%s", P, "mappings__lpAsset2PoolContract"], a)
100100
101101
102102 func Q (R) = makeString(["%s%s", "poolWeight", R], a)
103103
104104
105105 func S (T,U) = ((("%s%s__poolWeight__" + T) + "__") + toString(U))
106106
107107
108108 func V () = addressFromStringValue(h(this, A()))
109109
110110
111111 func W () = split(valueOrElse(getString(V(), N()), ""), a)
112112
113113
114114 func X (Y) = split(h(Y, M()), a)
115115
116116
117117 func Z (aa) = addressFromStringValue(aa[C])
118118
119119
120120 func ab (aa) = addressFromStringValue(aa[F])
121121
122122
123123 func ac (aa) = addressFromStringValue(aa[B])
124124
125125
126126 func ad (aa) = addressFromStringValue(aa[K])
127127
128128
129129 func ae () = "%s__managerPublicKey"
130130
131131
132132 func af () = "%s__managerVaultAddress"
133133
134134
135135 func ag () = "%s%s__ratePerBlock__current"
136136
137137
138138 func ah () = "%s%s__ratePerBlockMax__current"
139139
140140
141141 func ai () = "%s%s__emission__startBlock"
142142
143143
144144 func aj () = "%s%s__boostingV2__startBlock"
145145
146146
147147 func ak () = "%s%s__boostingV2__integral"
148148
149149
150150 func al () = "%s%s__emission__duration"
151151
152152
153153 func am () = "%s%s__emission__endBlock"
154154
155155
156156 func an () = "%s__nextPeriod"
157157
158158
159159 func ao () = "%s%s__gwxRewardEmissionPart__startHeight"
160160
161161
162162 let ap = 1
163163
164164 let aq = 2
165165
166166 let ar = 3
167167
168168 let as = 4
169169
170170 let at = 5
171171
172172 func au () = "%s__config"
173173
174174
175175 func av () = split(h(this, au()), a)
176176
177177
178178 let aw = addressFromStringValue(av()[at])
179179
180180 func ax (ay,az,aA,aB,aw) = makeString(["%s%d%d%d", ay, az, aA, aB, aw], a)
181181
182182
183183 func aC (ay,az,aA,aB,aw) = ax(ay, toString(az), toString(aA), toString(aB), aw)
184184
185185
186186 func aD () = {
187187 let r = getString(af())
188188 if ($isInstanceOf(r, "String"))
189189 then {
190190 let aE = r
191191 addressFromStringValue(aE)
192192 }
193193 else this
194194 }
195195
196196
197197 func aF () = {
198198 let aG = aD()
199199 let r = getString(aG, ae())
200200 if ($isInstanceOf(r, "String"))
201201 then {
202202 let aE = r
203203 fromBase58String(aE)
204204 }
205205 else if ($isInstanceOf(r, "Unit"))
206206 then unit
207207 else throw("Match error")
208208 }
209209
210210
211211 func aH (aI) = {
212212 let aJ = g("Permission denied")
213213 let r = aF()
214214 if ($isInstanceOf(r, "ByteVector"))
215215 then {
216216 let aK = r
217217 if ((aI.callerPublicKey == aK))
218218 then true
219219 else aJ
220220 }
221221 else if ($isInstanceOf(r, "Unit"))
222222 then if ((aI.caller == this))
223223 then true
224224 else aJ
225225 else throw("Match error")
226226 }
227227
228228
229229 let aL = 1
230230
231231 let aM = 2
232232
233233 let aN = 3
234234
235235 let aO = 4
236236
237237 let aP = 5
238238
239239 let aQ = 6
240240
241241 func aR (aS) = makeString(["%s%s__lock", aS], a)
242242
243243
244244 func aT (aS) = split(h(this, aR(aS)), a)
245245
246246
247247 func aU (aV,aW,aX,aY,aZ,ba,bb,bc) = makeString(["%d%d%d%d%d%d%d%d", aV, aW, aX, aY, aZ, ba, bb, bc], a)
248248
249249
250250 func bd (aV,aW,aX,aY,aZ,ba,bc) = aU(aV, toString(aW), toString(aX), toString(aY), toString(aZ), toString(ba), toString(lastBlock.timestamp), toString(bc))
251251
252252
253253 func be () = "%s__nextUserNum"
254254
255255
256256 func bf (aS) = makeString(["%s%s%s__mapping__user2num", aS], a)
257257
258258
259259 func bg (U) = makeString(["%s%s%s__mapping__num2user", U], a)
260260
261261
262262 func bh (aV) = makeString(["%s%d%s__paramByUserNum", aV, "amount"], a)
263263
264264
265265 func bi (aV) = makeString(["%s%d%s__paramByUserNum", aV, "start"], a)
266266
267267
268268 func bj (aV) = makeString(["%s%d%s__paramByUserNum", aV, "duration"], a)
269269
270270
271271 func bk (aV) = makeString(["%s%d%s__paramByUserNum", aV, "k"], a)
272272
273273
274274 func bl (aV) = makeString(["%s%d%s__paramByUserNum", aV, "b"], a)
275275
276276
277277 func bm (aV,bn) = makeString(["%s%d%s%d__paramByPeriod", aV, "k", bn], a)
278278
279279
280280 func bo (aV,bn) = makeString(["%s%d%s%d__paramByPeriod", aV, "b", bn], a)
281281
282282
283283 func bp () = "%s%s__stats__activeTotalLocked"
284284
285285
286286 func bq () = "%s%s__stats__locksDurationSumInBlocks"
287287
288288
289289 func br () = "%s%s__stats__locksCount"
290290
291291
292292 func bs () = "%s%s__stats__activeUsersCount"
293293
294294
295295 func bt (aV) = makeString(["%s%d__userBoostEmissionLastIntV2", aV], a)
296296
297297
298298 func bu (aV,bv) = makeString(["%s%d__userBoostEmissionLastIntV2", aV, bv], a)
299299
300300
301301 func bw (aV) = makeString(["%s%d__maxBoostInt", aV], a)
302302
303303
304304 func bx () = "%s%s__maxBoostInt__total"
305305
306306
307307 func by (aV) = makeString(["%s%d__userBoostAvaliableToClaimTotal", aV], a)
308308
309309
310310 func bz (aV) = makeString(["%s%d__userBoostClaimed", aV], a)
311311
312312
313313 func bA () = "%s%s__gwxCached__total"
314314
315315
316316 func bB () = "%s__gwxCachedTotalCorrective"
317317
318318
319319 func bC (bD,bE,i,bF) = makeString(["%s%s%s%s%d", "vote", bD, bE, toString(i), toString(bF)], a)
320320
321321
322322 func bG (bF) = makeString(["%s%d", "startHeight", toString(bF)], a)
323323
324324
325325 func bH () = makeString(["%s", "currentEpochUi"], a)
326326
327327
328328 func bI (bJ,bF) = makeString(["%s%s%d", "votingResultStaked", bJ, toString(bF)], a)
329329
330330
331331 func bK (bJ,bF) = makeString(["%s%s%d", "votingResultStakedIntegral", bJ, toString(bF)], a)
332332
333333
334334 func bL (bJ,bF) = makeString(["%s%s%d", "votingResultStakedIntegralLastUpdateHeight", bJ, toString(bF)], a)
335335
336336
337337 func bM (bJ,i,bF) = makeString(["%s%s%s%d", "votingResultStakedIntegralLast", bJ, toString(i), toString(bF)], a)
338338
339339
340340 func bN (bJ,i,bF) = makeString(["%s%s%s%d", "voteStakedIntegral", bJ, toString(i), toString(bF)], a)
341341
342342
343343 func bO (bJ,i,bF) = makeString(["%s%s%s%d", "voteStakedIntegralLastUpdateHeight", bJ, toString(i), toString(bF)], a)
344344
345345
346346 func bP (bJ,i,bF) = makeString(["%s%s%s%d", "voteStakedIntegralLast", bJ, toString(i), toString(bF)], a)
347347
348348
349349 func bQ (bR,bJ) = makeString(["%s%s%s", "staked", bR, bJ], a)
350350
351351
352352 let bS = V()
353353
354354 let aa = X(bS)
355355
356356 let bT = ab(aa)
357357
358358 let bU = ac(aa)
359359
360360 let bV = ad(aa)
361361
362362 let bW = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(makeString(["%s", "lpStakingPoolsContract"], a)), e("lp_staking_pools contract address is undefined"))), e("invalid lp_staking_pools contract address"))
363363
364364 let bX = makeString(["%s", "votingEmissionContract"], a)
365365
366366 let bY = addressFromStringValue(getStringValue(bS, bX))
367367
368368 let bZ = {
369369 let ca = invoke(bT, "getBoostCoeffREADONLY", nil, nil)
370370 if ($isInstanceOf(ca, "Int"))
371371 then ca
372372 else throw(($getType(ca) + " couldn't be cast to Int"))
373373 }
374374
375375 func cb (cc) = {
376376 let cd = getIntegerValue(bY, bH())
377377 let ce = makeString(["%s%s", "totalCachedGwxCorrection__activationEpoch"], a)
378378 let cf = getInteger(this, ce)
379379 let cg = valueOrElse(getInteger(this, bA()), 0)
380380 let ch = if (isDefined(cf))
381381 then (cd >= value(cf))
382382 else false
383383 let ci = if (if (ch)
384384 then cc
385385 else false)
386386 then valueOrElse(getInteger(this, bB()), 0)
387387 else 0
388388 max([0, (cg + ci)])
389389 }
390390
391391
392392 func cj (ck,cl,aW,cm,aY,cn,co,aI) = {
393393 let cp = makeString(["%s%s%s%s__history", ck, cl, toBase58String(aI.transactionId)], a)
394394 let cq = makeString(["%d%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aW), toString(cm), toString(aY), toString(cn), toString(co)], a)
395395 StringEntry(cp, cq)
396396 }
397397
398398
399399 func cr (cs,ct,cu,cv) = {
400400 let cw = bq()
401401 let cx = br()
402402 let cy = bs()
403403 let cz = bp()
404404 let cA = k(this, cw)
405405 let cB = k(this, cx)
406406 let cC = k(this, cy)
407407 let cD = k(this, cz)
408408 [IntegerEntry(cw, (cA + ct)), IntegerEntry(cx, (cB + cu)), IntegerEntry(cy, (cC + cv)), IntegerEntry(cz, (cD + cs))]
409409 }
410410
411411
412412 func cE (cF,cG,cH) = {
413413 let cI = 1000
414414 (((cF * cH) + cG) / cI)
415415 }
416416
417417
418418 func cJ (aS,aV,aW,aX,aY,cn,co,bn) = {
419419 let cK = bh(aV)
420420 let cL = bi(aV)
421421 let cM = bj(aV)
422422 let cN = bk(aV)
423423 let cO = bl(aV)
424424 let cP = bm(aV, bn)
425425 let cQ = bo(aV, bn)
426426 let bc = cE(cn, co, height)
427427 [IntegerEntry(cK, aW), IntegerEntry(cL, aX), IntegerEntry(cM, aY), IntegerEntry(cN, cn), IntegerEntry(cO, co), IntegerEntry(cP, cn), IntegerEntry(cQ, co), StringEntry(aR(aS), bd(aV, aW, aX, aY, cn, co, bc))]
428428 }
429429
430430
431431 func cR (aI,cS) = if ((size(aI.payments) > 1))
432432 then g("only one payment is allowed")
433433 else if ((size(aI.payments) == 0))
434434 then 0
435435 else {
436436 let cT = aI.payments[0]
437437 if ((value(cT.assetId) != cS))
438438 then g("invalid asset id in payment")
439439 else cT.amount
440440 }
441441
442442
443443 func cU (aS,cV) = {
444444 let cW = "empty"
445445 let cX = bf(aS)
446446 let aV = valueOrElse(getString(cX), cW)
447447 let cn = valueOrElse(getInteger(bk(aV)), 0)
448448 let co = valueOrElse(getInteger(bl(aV)), 0)
449449 let cY = cE(cn, co, cV)
450450 let bc = if ((0 > cY))
451451 then 0
452452 else cY
453453 bc
454454 }
455455
456456
457457 func cZ (aS) = cU(aS, height)
458458
459459
460460 func da () = {
461461 let db = {
462462 let cd = value(getInteger(bY, bH()))
463463 let dc = (cd - 1)
464464 if ((0 > dc))
465465 then g("invalid epoch")
466466 else $Tuple2(cd, dc)
467467 }
468468 let cd = db._1
469469 let dc = db._2
470470 let dd = value(getInteger(bY, bG(cd)))
471471 $Tuple2(dc, dd)
472472 }
473473
474474
475475 func de (bJ) = {
476476 let df = 4
477477 let dg = 5
478478 let dh = {
479479 let ca = invoke(bS, "getPoolConfigByLpAssetIdREADONLY", [bJ], nil)
480480 if ($isInstanceOf(ca, "List[Any]"))
481481 then ca
482482 else throw(($getType(ca) + " couldn't be cast to List[Any]"))
483483 }
484484 let bD = {
485485 let ca = dh[df]
486486 if ($isInstanceOf(ca, "String"))
487487 then ca
488488 else throw(($getType(ca) + " couldn't be cast to String"))
489489 }
490490 let bE = {
491491 let ca = dh[dg]
492492 if ($isInstanceOf(ca, "String"))
493493 then ca
494494 else throw(($getType(ca) + " couldn't be cast to String"))
495495 }
496496 $Tuple2(bD, bE)
497497 }
498498
499499
500500 func di (bJ,bR) = {
501501 let aS = addressFromStringValue(bR)
502502 let dj = da()
503503 let dc = dj._1
504504 let dd = dj._2
505505 let dk = de(bJ)
506506 let bD = dk._1
507507 let bE = dk._2
508508 let dl = bC(bD, bE, aS, dc)
509509 let dm = valueOrElse(getInteger(bY, dl), 0)
510510 dm
511511 }
512512
513513
514514 func dn (bJ,bR) = {
515515 let do = valueOrElse(getInteger(bU, bQ(bR, bJ)), 0)
516516 let dm = di(bJ, bR)
517517 if ((do == 0))
518518 then 0
519519 else dm
520520 }
521521
522522
523523 func dp (bJ) = {
524524 let dq = da()
525525 let dc = dq._1
526526 let dd = dq._2
527527 let dr = valueOrElse(getInteger(bY, bI(bJ, dc)), 0)
528528 let ds = valueOrElse(getInteger(this, bI(bJ, dc)), dr)
529529 ds
530530 }
531531
532532
533533 func dt (bJ) = {
534534 let du = da()
535535 let dc = du._1
536536 let dd = du._2
537537 let ds = dp(bJ)
538538 let dv = valueOrElse(getInteger(this, bK(bJ, dc)), 0)
539539 let dw = valueOrElse(getInteger(this, bL(bJ, dc)), dd)
540540 let dx = (height - dw)
541541 let dy = ((dx * ds) + dv)
542542 dy
543543 }
544544
545545
546546 func dz (bJ,dA) = {
547547 let dB = da()
548548 let dc = dB._1
549549 let dd = dB._2
550550 let ds = dp(bJ)
551551 let dC = (ds + dA)
552552 let dy = dt(bJ)
553553 [IntegerEntry(bI(bJ, dc), dC), IntegerEntry(bL(bJ, dc), height), IntegerEntry(bK(bJ, dc), dy)]
554554 }
555555
556556
557557 func dD (bJ,bR) = {
558558 let dE = da()
559559 let dc = dE._1
560560 let dd = dE._2
561561 let aS = addressFromStringValue(bR)
562562 let dF = dn(bJ, bR)
563563 let dG = valueOrElse(getInteger(this, bN(bJ, aS, dc)), 0)
564564 let dH = valueOrElse(getInteger(this, bO(bJ, aS, dc)), dd)
565565 let dI = (height - dH)
566566 let dJ = ((dI * dF) + dG)
567567 dJ
568568 }
569569
570570
571571 func dK (bJ,bR,dL) = {
572572 let dM = da()
573573 let dc = dM._1
574574 let dd = dM._2
575575 let aS = addressFromStringValue(bR)
576576 let dN = di(bJ, bR)
577577 let dO = if ((dN == 0))
578578 then nil
579579 else {
580580 let dA = if (dL)
581581 then dN
582582 else -(dN)
583583 let dP = dz(bJ, dA)
584584 let dJ = dD(bJ, bR)
585585 let dQ = [IntegerEntry(bO(bJ, aS, dc), height), IntegerEntry(bN(bJ, aS, dc), dJ)]
586586 (dP ++ dQ)
587587 }
588588 dO
589589 }
590590
591591
592592 func dR (bJ,bR) = {
593593 let dS = da()
594594 let dc = dS._1
595595 let dd = dS._2
596596 let aS = addressFromStringValue(bR)
597597 let dT = bP(bJ, aS, dc)
598598 let dU = valueOrElse(getInteger(this, dT), 0)
599599 let dV = bM(bJ, aS, dc)
600600 let dW = valueOrElse(getInteger(this, dV), 0)
601601 let dJ = dD(bJ, bR)
602602 let dy = dt(bJ)
603603 let dX = (dJ - dU)
604604 let dY = (dy - dW)
605605 $Tuple3([IntegerEntry(dT, dJ), IntegerEntry(dV, dy)], dX, dY)
606606 }
607607
608608
609609 func dZ () = {
610610 let ea = n(bT, ag())
611611 let eb = getInteger(this, aj())
612612 let ec = getInteger(this, ak())
613613 let ed = n(bT, am())
614614 let cH = if ((height > ed))
615615 then ed
616616 else height
617617 let ee = {
618618 let r = eb
619619 if ($isInstanceOf(r, "Int"))
620620 then {
621621 let ef = r
622622 max([(cH - ef), 0])
623623 }
624624 else if ($isInstanceOf(r, "Unit"))
625625 then 0
626626 else throw("Match error")
627627 }
628628 let eg = ((ea * (bZ - 1)) / bZ)
629629 let eh = valueOrElse(ec, 0)
630630 let ei = ((eg * ee) + eh)
631631 $Tuple2([IntegerEntry(ak(), ei), IntegerEntry(aj(), height)], ei)
632632 }
633633
634634
635635 func ej (bJ,bR,ek) = {
636636 let el = getString(this, aR(bR))
637637 if ((el == unit))
638638 then $Tuple3(0, nil, "userRecord::is::empty")
639639 else {
640640 let em = split(value(el), a)
641641 let en = em[aL]
642642 let eo = "empty"
643643 let ep = if ((bJ != eo))
644644 then {
645645 let eq = valueOrErrorMessage(getString(bS, O(bJ)), e(("unsupported lp asset " + bJ)))
646646 getIntegerValue(bS, Q(eq))
647647 }
648648 else if (ek)
649649 then 0
650650 else g(("not readonly mode: unsupported lp asset " + bJ))
651651 let er = bu(en, bJ)
652652 let es = bt(en)
653653 let et = valueOrElse(getInteger(this, er), k(this, es))
654654 let ei = dZ()._2
655655 let eu = (ei - et)
656656 if ((0 > eu))
657657 then g("wrong calculations")
658658 else {
659659 let ev = dR(bJ, bR)
660660 let ew = ev._1
661661 let ex = ev._2
662662 let ey = ev._3
663663 let ez = fraction(eu, ep, d)
664664 let eA = if ((ey == 0))
665665 then 0
666666 else fraction(ez, ex, ey)
667667 let eB = ([IntegerEntry(er, ei)] ++ ew)
668668 let eC = makeString([toString(et), toString(eu), toString(ep), toString(ex), toString(ey)], ":")
669669 $Tuple3(eA, eB, eC)
670670 }
671671 }
672672 }
673673
674674
675675 func eD (aI,aY) = {
676676 let eE = av()
677677 let eF = eE[ap]
678678 let ay = fromBase58String(eF)
679679 let az = parseIntValue(eE[aq])
680680 let aA = parseIntValue(eE[ar])
681681 let aB = parseIntValue(eE[as])
682682 if ((size(aI.payments) != 1))
683683 then g("invalid payment - exact one payment must be attached")
684684 else {
685685 let cT = aI.payments[0]
686686 let eG = cT.amount
687687 if ((ay != value(cT.assetId)))
688688 then g((("invalid asset is in payment - " + eF) + " is expected"))
689689 else {
690690 let eH = be()
691691 let bR = toString(aI.caller)
692692 let eI = isDefined(getString(bf(bR)))
693693 let en = if (eI)
694694 then value(getString(bf(bR)))
695695 else toString(n(this, eH))
696696 let aV = parseIntValue(en)
697697 let cm = height
698698 let cL = bi(en)
699699 let cM = bj(en)
700700 let cK = bh(en)
701701 if (if ((az > eG))
702702 then (aI.caller != bW)
703703 else false)
704704 then g(("amount is less then minLockAmount=" + toString(az)))
705705 else if ((aA > aY))
706706 then g(("passed duration is less then minLockDuration=" + toString(aA)))
707707 else if ((aY > aB))
708708 then g(("passed duration is greater then maxLockDuration=" + toString(aB)))
709709 else if (if (eI)
710710 then ((n(this, cL) + n(this, cM)) >= cm)
711711 else false)
712712 then g("there is an active lock - consider to use increaseLock")
713713 else if ((k(this, cK) > 0))
714714 then g(("there are locked WXs - consider to use increaseLock " + cK))
715715 else {
716716 let eJ = fraction(aY, c, aB)
717717 let eK = fraction(eG, eJ, c)
718718 let eL = q(invoke(aw, "calcGwxParamsREADONLY", [eK, cm, aY], nil))
719719 let cn = t(eL[0])
720720 let co = t(eL[1])
721721 let bn = toString(t(eL[2]))
722722 let cg = cb(false)
723723 let es = bt(en)
724724 let ei = dZ()._2
725725 let eM = if (eI)
726726 then nil
727727 else [IntegerEntry(eH, (aV + 1)), StringEntry(bf(bR), en), StringEntry(bg(en), bR)]
728728 $Tuple2(((((eM ++ cJ(bR, en, eG, cm, aY, cn, co, bn)) ++ cr(eG, aY, 1, if (eI)
729729 then 0
730730 else 1)) :+ cj("lock", bR, eG, cm, aY, cn, co, aI)) ++ [IntegerEntry(es, ei), IntegerEntry(bA(), (cg + eK))]), eK)
731731 }
732732 }
733733 }
734734 }
735735
736736
737737 @Callable(aI)
738738 func constructor (eN,eO,az,eP,eQ,aw) = {
739739 let eR = aH(aI)
740740 if ((eR == eR))
741741 then ([IntegerEntry(be(), 0), StringEntry(au(), aC(eO, az, eP, eQ, aw)), StringEntry(A(), eN)] ++ cr(0, 0, 0, 0))
742742 else throw("Strict value is not equal to itself.")
743743 }
744744
745745
746746
747747 @Callable(aI)
748748 func lockRef (aY,eS,eT) = {
749749 let eU = eD(aI, aY)
750750 let eV = eU._1
751751 let eK = eU._2
752752 let eW = toString(aI.caller)
753753 let eX = if (if ((eS == ""))
754754 then true
755755 else (eT == base58''))
756756 then unit
757757 else invoke(w, "createPair", [z, eS, eW, eT], nil)
758758 if ((eX == eX))
759759 then {
760760 let eY = invoke(aw, "updateReferralActivity", [toString(aI.caller), eK], nil)
761761 if ((eY == eY))
762762 then $Tuple2(eV, unit)
763763 else throw("Strict value is not equal to itself.")
764764 }
765765 else throw("Strict value is not equal to itself.")
766766 }
767767
768768
769769
770770 @Callable(aI)
771771 func lock (aY) = {
772772 let eZ = eD(aI, aY)
773773 let eV = eZ._1
774774 let eK = eZ._2
775775 let eY = invoke(aw, "updateReferralActivity", [toString(aI.caller), eK], nil)
776776 if ((eY == eY))
777777 then $Tuple2(eV, unit)
778778 else throw("Strict value is not equal to itself.")
779779 }
780780
781781
782782
783783 @Callable(aI)
784784 func increaseLock (fa) = {
785785 let eE = av()
786786 let eF = eE[ap]
787787 let ay = fromBase58String(eF)
788788 let aA = parseIntValue(eE[ar])
789789 let aB = parseIntValue(eE[as])
790790 let eG = cR(aI, ay)
791791 let bR = toString(aI.caller)
792792 let em = aT(bR)
793793 let en = em[aL]
794794 let fb = parseIntValue(em[aM])
795795 let cm = parseIntValue(em[aN])
796796 let fc = parseIntValue(em[aO])
797797 let fd = (cm + fc)
798798 let fe = max([(fd - height), 0])
799799 let ff = (fb + eG)
800800 let fg = (fe + fa)
801801 if ((0 > fa))
802802 then g("duration is less then zero")
803803 else if ((aA > fg))
804804 then g(("lockDurationNew is less then minLockDuration=" + toString(aA)))
805805 else if ((fg > aB))
806806 then g(("deltaDuration + existedLockDuration is greater then maxLockDuration=" + toString(aB)))
807807 else {
808808 let eJ = fraction(fg, c, aB)
809809 let eK = fraction(ff, eJ, c)
810810 let eY = invoke(aw, "updateReferralActivity", [toString(aI.caller), eK], nil)
811811 if ((eY == eY))
812812 then {
813813 let fh = height
814814 let eL = q(invoke(aw, "calcGwxParamsREADONLY", [eK, fh, fg], nil))
815815 let cn = t(eL[0])
816816 let co = t(eL[1])
817817 let bn = toString(t(eL[2]))
818818 let fi = cZ(bR)
819819 let fj = (eK - fi)
820820 if ((0 > fj))
821821 then g(("gwxDiff is less then 0: " + toString(fj)))
822822 else {
823823 let cg = cb(false)
824824 let fk = cb(true)
825825 (((cJ(bR, en, ff, fh, fg, cn, co, bn) ++ cr(eG, fa, 0, 0)) :+ cj("lock", bR, eG, cm, fg, cn, co, aI)) ++ [IntegerEntry(bA(), (cg + fj))])
826826 }
827827 }
828828 else throw("Strict value is not equal to itself.")
829829 }
830830 }
831831
832832
833833
834834 @Callable(aI)
835835 func claimWxBoost (bJ,bR) = if ((bU != aI.caller))
836836 then g("permissions denied")
837837 else {
838838 let fl = ej(bJ, bR, false)
839839 let fm = fl._1
840840 let eB = fl._2
841841 let eC = fl._3
842842 $Tuple2(eB, [fm])
843843 }
844844
845845
846846
847847 @Callable(aI)
848848 func claimWxBoostREADONLY (bJ,bR) = {
849849 let fn = ej(bJ, bR, true)
850850 let fm = fn._1
851851 let eB = fn._2
852852 let eC = fn._3
853853 $Tuple2(nil, [fm, eC])
854854 }
855855
856856
857857
858858 @Callable(aI)
859859 func unlock (aS) = {
860860 let em = aT(aS)
861861 let en = em[aL]
862862 let fb = parseIntValue(em[aM])
863863 let cm = parseIntValue(em[aN])
864864 let fc = parseIntValue(em[aO])
865865 let fd = (cm + fc)
866866 let eE = av()
867867 let ay = fromBase58String(eE[ap])
868868 if ((fd >= height))
869869 then g((("wait " + toString(fd)) + " to unlock"))
870870 else if ((0 >= fb))
871871 then g("nothing to unlock")
872872 else {
873873 let bn = valueOrElse(getInteger(aw, an()), 0)
874874 (((cJ(aS, en, 0, cm, fc, 0, 0, toString(bn)) ++ cr(-(fb), 0, 0, -1)) :+ cj("unlock", aS, fb, cm, fc, 0, 0, aI)) :+ ScriptTransfer(addressFromStringValue(aS), fb, ay))
875875 }
876876 }
877877
878878
879879
880880 @Callable(aI)
881881 func gwxUserInfoREADONLY (aS) = {
882882 let bc = cZ(aS)
883883 $Tuple2(nil, [bc])
884884 }
885885
886886
887887
888888 @Callable(aI)
889889 func userMaxDurationREADONLY (bR) = {
890890 let eE = av()
891891 let aB = parseIntValue(eE[as])
892892 let el = getString(this, aR(bR))
893893 if ((el == unit))
894894 then $Tuple2(nil, $Tuple2("lock", aB))
895895 else {
896896 let em = split(value(el), a)
897897 let cm = parseIntValue(em[aN])
898898 let fc = parseIntValue(em[aO])
899899 let fd = (cm + fc)
900900 let fe = max([(fd - height), 0])
901901 let fo = (aB - fe)
902902 $Tuple2(nil, $Tuple2("increaseLock", fo))
903903 }
904904 }
905905
906906
907907
908908 @Callable(aI)
909909 func getUserGwxAmountAtHeightREADONLY (aS,cV) = {
910910 let bc = cU(aS, cV)
911911 $Tuple2(nil, bc)
912912 }
913913
914914
915915
916916 @Callable(aI)
917917 func getTotalCachedGwxREADONLY () = $Tuple2(nil, cb(true))
918918
919919
920920
921921 @Callable(aI)
922922 func onBoostEmissionUpdate () = {
923923 let eR = if ((aI.caller == bT))
924924 then true
925925 else aH(aI)
926926 if ((eR == eR))
927927 then dZ()
928928 else throw("Strict value is not equal to itself.")
929929 }
930930
931931
932932
933933 @Callable(aI)
934934 func onStakedVoteUpdate (bJ,bR,dL) = {
935935 let eR = if ((aI.caller == bU))
936936 then true
937937 else aH(aI)
938938 if ((eR == eR))
939939 then {
940940 let dO = dK(bJ, bR, dL)
941941 $Tuple2(dO, unit)
942942 }
943943 else throw("Strict value is not equal to itself.")
944944 }
945945
946946
947947
948948 @Callable(aI)
949949 func getVotingResultStakedREADONLY (bJ) = $Tuple2(nil, dp(bJ))
950950
951951
952952
953953 @Callable(aI)
954954 func getVotingResultStakedIntegralREADONLY (bJ) = $Tuple2(nil, dt(bJ))
955955
956956
957957
958958 @Callable(aI)
959959 func getUserVoteFinalizedREADONLY (bJ,bR) = $Tuple2(nil, di(bJ, bR))
960960
961961
962962
963963 @Callable(aI)
964964 func getUserVoteStakedIntegralREADONLY (bJ,bR) = $Tuple2(nil, dD(bJ, bR))
965965
966966
967967 @Verifier(fp)
968968 func fq () = {
969969 let fr = {
970970 let r = aF()
971971 if ($isInstanceOf(r, "ByteVector"))
972972 then {
973973 let aK = r
974974 aK
975975 }
976976 else if ($isInstanceOf(r, "Unit"))
977977 then fp.senderPublicKey
978978 else throw("Match error")
979979 }
980980 sigVerify(fp.bodyBytes, fp.proofs[0], fr)
981981 }
982982

github/deemru/w8io/169f3d6 
116.59 ms