tx · 7p38ousfrmmnwAANUTtjcJDT1pbtJwYKiFWETf2a6zDx

3Myn55vLkduxbX3ZXfiDCZhaQsLxYp1kmCy:  -0.02800000 Waves

2023.03.15 16:40 [2491209] smart account 3Myn55vLkduxbX3ZXfiDCZhaQsLxYp1kmCy > SELF 0.00000000 Waves

{ "type": 13, "id": "7p38ousfrmmnwAANUTtjcJDT1pbtJwYKiFWETf2a6zDx", "fee": 2800000, "feeAssetId": null, "timestamp": 1678887687902, "version": 2, "chainId": 84, "sender": "3Myn55vLkduxbX3ZXfiDCZhaQsLxYp1kmCy", "senderPublicKey": "9W33iCCNfmFxUbiC6XZcH5x7f6xfwC7Jb3BoExT5q2PV", "proofs": [ "4KdAZedcP78nnQKKjA34NLoHENX6HPj2a2KT3pWynQD2FpXMNaFMHDN4kntpBJbV1zxA4a293tv9JNPd8bsg26eR" ], "script": "base64:BgLoLwgCEggKBggIAQEBCBIFCgMBCAISAwoBARIDCgEBEgQKAggIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgQKAggBEgASABIFCgMICAQSAwoBCBIDCgEIEgQKAggIEgQKAggIEgMKAQgSACIDU0VQIgZTQ0FMRTgiBU1VTFQ4Ig5QT09MV0VJR0hUTVVMVCIHd3JhcEVyciIDbXNnIgh0aHJvd0VyciIEc3RyZiIHYWRkcmVzcyIDa2V5IgNpb3oiA2lvZCIKZGVmYXVsdFZhbCIDaW9mIgNhYnMiA3ZhbCIDYWFsIgckbWF0Y2gwIgp2YWxBbnlMeXN0IgJhaSIGdmFsSW50IhtrZXlSZWZlcnJhbHNDb250cmFjdEFkZHJlc3MiHnJlZmVycmFsc0NvbnRyYWN0QWRkcmVzc09yRmFpbCIWa2V5UmVmZXJyYWxQcm9ncmFtTmFtZSIacmVmZXJyYWxQcm9ncmFtTmFtZURlZmF1bHQiE3JlZmVycmFsUHJvZ3JhbU5hbWUiEWtleUZhY3RvcnlBZGRyZXNzIhhJZHhGYWN0b3J5Q2ZnU3Rha2luZ0RhcHAiGUlkeEZhY3RvcnlDZmdCb29zdGluZ0RhcHAiFElkeEZhY3RvcnlDZmdJZG9EYXBwIhVJZHhGYWN0b3J5Q2ZnVGVhbURhcHAiGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHAiFUlkeEZhY3RvcnlDZmdSZXN0RGFwcCIZSWR4RmFjdG9yeUNmZ1NsaXBwYWdlRGFwcCIUSWR4RmFjdG9yeUNmZ0Rhb0RhcHAiGklkeEZhY3RvcnlDZmdNYXJrZXRpbmdEYXBwIhpJZHhGYWN0b3J5Q2ZnR3d4UmV3YXJkRGFwcCIWSWR4RmFjdG9yeUNmZ0JpcmRzRGFwcCINa2V5RmFjdG9yeUNmZyIaa2V5RmFjdG9yeUxwMkFzc2V0c01hcHBpbmciCmxwQXNzZXRTdHIiEGtleUZhY3RvcnlMcExpc3QiJmtleUZhY3RvcnlMcEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzIhRrZXlGYWN0b3J5UG9vbFdlaWdodCIPY29udHJhY3RBZGRyZXNzIhtrZXlGYWN0b3J5UG9vbFdlaWdodEhpc3RvcnkiC3Bvb2xBZGRyZXNzIgNudW0iGHJlYWRGYWN0b3J5QWRkcmVzc09yRmFpbCIKcmVhZExwTGlzdCIUcmVhZEZhY3RvcnlDZmdPckZhaWwiB2ZhY3RvcnkiGGdldEJvb3N0aW5nQWRkcmVzc09yRmFpbCIKZmFjdG9yeUNmZyIYZ2V0RW1pc3Npb25BZGRyZXNzT3JGYWlsIhdnZXRTdGFraW5nQWRkcmVzc09yRmFpbCIZZ2V0R3d4UmV3YXJkQWRkcmVzc09yRmFpbCITa2V5TWFuYWdlclB1YmxpY0tleSIaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiHmtleUVtaXNzaW9uUmF0ZVBlckJsb2NrQ3VycmVudCIha2V5RW1pc3Npb25SYXRlUGVyQmxvY2tNYXhDdXJyZW50IhVrZXlFbWlzc2lvblN0YXJ0QmxvY2siHWtleUJvb3N0aW5nVjJMYXN0VXBkYXRlSGVpZ2h0IhVrZXlCb29zdGluZ1YySW50ZWdyYWwiG2tleUVtaXNzaW9uRHVyYXRpb25JbkJsb2NrcyITa2V5RW1pc3Npb25FbmRCbG9jayINa2V5TmV4dFBlcmlvZCIfa2V5R3d4UmV3YXJkRW1pc3Npb25TdGFydEhlaWdodCINSWR4Q2ZnQXNzZXRJZCITSWR4Q2ZnTWluTG9ja0Ftb3VudCIVSWR4Q2ZnTWluTG9ja0R1cmF0aW9uIhVJZHhDZmdNYXhMb2NrRHVyYXRpb24iEklkeENmZ01hdGhDb250cmFjdCIJa2V5Q29uZmlnIhVyZWFkQ29uZmlnQXJyYXlPckZhaWwiDG1hdGhDb250cmFjdCINZm9ybWF0Q29uZmlnUyIHYXNzZXRJZCINbWluTG9ja0Ftb3VudCIPbWluTG9ja0R1cmF0aW9uIg9tYXhMb2NrRHVyYXRpb24iDGZvcm1hdENvbmZpZyIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCIBcyIdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQiC211c3RNYW5hZ2VyIgFpIgJwZCICcGsiDklkeExvY2tVc2VyTnVtIg1JZHhMb2NrQW1vdW50IgxJZHhMb2NrU3RhcnQiD0lkeExvY2tEdXJhdGlvbiINSWR4TG9ja1BhcmFtSyINSWR4TG9ja1BhcmFtQiITa2V5TG9ja1BhcmFtc1JlY29yZCILdXNlckFkZHJlc3MiGnJlYWRMb2NrUGFyYW1zUmVjb3JkT3JGYWlsIhdmb3JtYXRMb2NrUGFyYW1zUmVjb3JkUyIHdXNlck51bSIGYW1vdW50IgVzdGFydCIIZHVyYXRpb24iBnBhcmFtSyIGcGFyYW1CIhBsYXN0VXBkVGltZXN0YW1wIglnd3hBbW91bnQiFmZvcm1hdExvY2tQYXJhbXNSZWNvcmQiDmtleU5leHRVc2VyTnVtIhJrZXlVc2VyMk51bU1hcHBpbmciEmtleU51bTJVc2VyTWFwcGluZyIWa2V5TG9ja1BhcmFtVXNlckFtb3VudCIWa2V5TG9ja1BhcmFtU3RhcnRCbG9jayIUa2V5TG9ja1BhcmFtRHVyYXRpb24iDWtleUxvY2tQYXJhbUsiDWtleUxvY2tQYXJhbUIiFWtleUxvY2tQYXJhbUJ5UGVyaW9kSyIGcGVyaW9kIhVrZXlMb2NrUGFyYW1CeVBlcmlvZEIiF2tleUxvY2tQYXJhbVRvdGFsQW1vdW50IiBrZXlTdGF0c0xvY2tzRHVyYXRpb25TdW1JbkJsb2NrcyISa2V5U3RhdHNMb2Nrc0NvdW50IhJrZXlTdGF0c1VzZXJzQ291bnQiIGtleVVzZXJCb29zdEVtaXNzaW9uTGFzdElOVEVHUkFMIiJrZXlVc2VyTHBCb29zdEVtaXNzaW9uTGFzdElOVEVHUkFMIglscEFzc2V0SWQiF2tleVVzZXJNYXhCb29zdElOVEVHUkFMIhhrZXlUb3RhbE1heEJvb3N0SU5URUdSQUwiIWtleVVzZXJCb29zdEF2YWxhaWJsZVRvQ2xhaW1Ub3RhbCITa2V5VXNlckJvb3N0Q2xhaW1lZCIRa2V5VG90YWxDYWNoZWRHd3giG2tleVRvdGFsQ2FjaGVkR3d4Q29ycmVjdGl2ZSIHa2V5Vm90ZSINYW1vdW50QXNzZXRJZCIMcHJpY2VBc3NldElkIgVlcG9jaCIVa2V5U3RhcnRIZWlnaHRCeUVwb2NoIhFrZXlDdXJyZW50RXBvY2hVaSIVa2V5Vm90aW5nUmVzdWx0U3Rha2VkIgxscEFzc2V0SWRTdHIiHWtleVZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsIiVrZXlWb3RpbmdSZXN1bHRTdGFrZWRMYXN0VXBkYXRlSGVpZ2h0IiFrZXlWb3RpbmdSZXN1bHRTdGFrZWRJbnRlZ3JhbExhc3QiFWtleVZvdGVTdGFrZWRJbnRlZ3JhbCIda2V5Vm90ZVN0YWtlZExhc3RVcGRhdGVIZWlnaHQiGWtleVZvdGVTdGFrZWRJbnRlZ3JhbExhc3QiD2tleVN0YWtlZEJ5VXNlciIOdXNlckFkZHJlc3NTdHIiD2ZhY3RvcnlDb250cmFjdCIQZW1pc3Npb25Db250cmFjdCIPc3Rha2luZ0NvbnRyYWN0IhFnd3hSZXdhcmRDb250cmFjdCIWbHBTdGFraW5nUG9vbHNDb250cmFjdCIZa2V5Vm90aW5nRW1pc3Npb25Db250cmFjdCIWdm90aW5nRW1pc3Npb25Db250cmFjdCIKYm9vc3RDb2VmZiIBQCIRZ2V0VG90YWxDYWNoZWRHd3giB2NvcnJlY3QiDmN1cnJlbnRFcG9jaFVpIg5rZXlUYXJnZXRFcG9jaCIRdGFyZ2V0RXBvY2hPcHRpb24iEXRvdGFsQ2FjaGVkR3d4UmF3IhVpc0NvcnJlY3Rpb25BY3RpdmF0ZWQiCmNvcnJlY3RpdmUiDEhpc3RvcnlFbnRyeSIEdHlwZSIEdXNlciIJbG9ja1N0YXJ0IgFrIgFiIgpoaXN0b3J5S0VZIgtoaXN0b3J5REFUQSIKU3RhdHNFbnRyeSIOdG90YWxMb2NrZWRJbmMiC2R1cmF0aW9uSW5jIgxsb2NrQ291bnRJbmMiDXVzZXJzQ291bnRJbmMiG2xvY2tzRHVyYXRpb25TdW1JbkJsb2Nrc0tFWSINbG9ja3NDb3VudEtFWSINdXNlcnNDb3VudEtFWSIOdG90YWxBbW91bnRLRVkiGGxvY2tzRHVyYXRpb25TdW1JbkJsb2NrcyIKbG9ja3NDb3VudCIKdXNlcnNDb3VudCILdG90YWxBbW91bnQiDWNhbGNHd3hBbW91bnQiBGtSYXciBGJSYXciAWgiBVNDQUxFIg9Mb2NrUGFyYW1zRW50cnkiDXVzZXJBbW91bnRLRVkiDXN0YXJ0QmxvY2tLRVkiC2R1cmF0aW9uS0VZIgRrS0VZIgRiS0VZIgxrQnlQZXJpb2RLRVkiDGJCeVBlcmlvZEtFWSIiZXh0cmFjdE9wdGlvbmFsUGF5bWVudEFtb3VudE9yRmFpbCIPZXhwZWN0ZWRBc3NldElkIgNwbXQiGWNhbGNVc2VyR3d4QW1vdW50QXRIZWlnaHQiDHRhcmdldEhlaWdodCIFRU1QVFkiEnVzZXIyTnVtTWFwcGluZ0tFWSINZ3d4QW1vdW50Q2FsYyIUY2FsY0N1cnJlbnRHd3hBbW91bnQiGmdldFZvdGluZ0VtaXNzaW9uRXBvY2hJbmZvIg0kdDAxNzE5MDE3NDgwIhJsYXN0RmluYWxpemVkRXBvY2giF2N1cnJlbnRFcG9jaFN0YXJ0SGVpZ2h0IhhnZXRQb29sQXNzZXRzQnlMcEFzc2V0SWQiEGlkeEFtb3VudEFzc2V0SWQiD2lkeFByaWNlQXNzZXRJZCIHcG9vbENmZyIUZ2V0VXNlclZvdGVGaW5hbGl6ZWQiDSR0MDE4MTcxMTgyNTEiDSR0MDE4MjU0MTgzMjkiC3VzZXJWb3RlS2V5Igh1c2VyVm90ZSIRZ2V0VXNlclZvdGVTdGFrZWQiDHN0YWtlZEJ5VXNlciIVZ2V0Vm90aW5nUmVzdWx0U3Rha2VkIg0kdDAxODg3MzE4OTUzIhd2b3RpbmdSZXN1bHRTdGFrZWRTdGFydCISdm90aW5nUmVzdWx0U3Rha2VkIh1nZXRWb3RpbmdSZXN1bHRTdGFrZWRJbnRlZ3JhbCINJHQwMTkzMTUxOTM5NSIedm90aW5nUmVzdWx0U3Rha2VkSW50ZWdyYWxQcmV2IiJ2b3RpbmdSZXN1bHRTdGFrZWRMYXN0VXBkYXRlSGVpZ2h0Ihx2b3RpbmdSZXN1bHRTdGFrZWRJbnRlZ3JhbERoIhp2b3RpbmdSZXN1bHRTdGFrZWRJbnRlZ3JhbCIhcmVmcmVzaFZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsIg9zdGFrZWRWb3RlRGVsdGEiDSR0MDIwMjMyMjAzMTIiFXZvdGluZ1Jlc3VsdFN0YWtlZE5ldyIZZ2V0VXNlclZvdGVTdGFrZWRJbnRlZ3JhbCINJHQwMjA5MjMyMTAwMyIOdXNlclZvdGVTdGFrZWQiGnVzZXJWb3RlU3Rha2VkSW50ZWdyYWxQcmV2Ih51c2VyVm90ZVN0YWtlZExhc3RVcGRhdGVIZWlnaHQiGHVzZXJWb3RlU3Rha2VkSW50ZWdyYWxEaCIWdXNlclZvdGVTdGFrZWRJbnRlZ3JhbCIZcmVmcmVzaFZvdGVTdGFrZWRJbnRlZ3JhbCIEZWRnZSINJHQwMjE3OTEyMTg3MSIRdXNlclZvdGVGaW5hbGl6ZWQiB2FjdGlvbnMiE3ZvdGluZ1Jlc3VsdEFjdGlvbnMiC3ZvdGVBY3Rpb25zIhtnZXRTdGFrZWRWb3Rlc0ludGVncmFsc0RpZmYiDSR0MDIyNzI1MjI4MDUiGXVzZXJWb3RlU3Rha2VkSW50ZWdyYWxLZXkiGnVzZXJWb3RlU3Rha2VkSW50ZWdyYWxMYXN0Ih12b3RpbmdSZXN1bHRTdGFrZWRJbnRlZ3JhbEtleSIedm90aW5nUmVzdWx0U3Rha2VkSW50ZWdyYWxMYXN0Ihp1c2VyVm90ZVN0YWtlZEludGVncmFsRGlmZiIedm90aW5nUmVzdWx0U3Rha2VkSW50ZWdyYWxEaWZmIhxyZWZyZXNoQm9vc3RFbWlzc2lvbkludGVncmFsIhJ3eEVtaXNzaW9uUGVyQmxvY2siIGJvb3N0aW5nVjJMYXN0VXBkYXRlSGVpZ2h0T3B0aW9uIhhib29zdGluZ1YySW5nZXJnYWxPcHRpb24iC2VtaXNzaW9uRW5kIgJkaCIQbGFzdFVwZGF0ZUhlaWdodCIVYm9vc3RFbWlzc2lvblBlckJsb2NrIhlib29zdEVtaXNzaW9uSW50ZWdyYWxQcmV2IhVib29zdEVtaXNzaW9uSW50ZWdyYWwiFGludGVybmFsQ2xhaW1XeEJvb3N0IghyZWFkT25seSIQdXNlclJlY29yZE9wdGlvbiIPdXNlclJlY29yZEFycmF5Igp1c2VyTnVtU3RyIghFTVBUWVNUUiIKcG9vbFdlaWdodCIOcG9vbEFkZHJlc3NTdHIiInVzZXJMcEJvb3N0RW1pc3Npb25MYXN0SW50ZWdyYWxLRVkiIHVzZXJCb29zdEVtaXNzaW9uTGFzdEludGVncmFsS0VZIh11c2VyQm9vc3RFbWlzc2lvbkxhc3RJbnRlZ3JhbCIZdXNlckJvb3N0RW1pc3Npb25JbnRlZ3JhbCINJHQwMjczMzAyNzQ2OSIbc3Rha2VkVm90ZXNJbnRlZ3JhbHNBY3Rpb25zIhR1c2VyVm90ZUludGVncmFsRGlmZiIWdG90YWxWb3Rlc0ludGVncmFsRGlmZiIdcG9vbFVzZXJCb29zdEVtaXNzaW9uSW50ZWdyYWwiIXVzZXJCb29zdEF2YWxpYWJsZVRvQ2xhaW1Ub3RhbE5ldyIJZGF0YVN0YXRlIgVkZWJ1ZyILbG9ja0FjdGlvbnMiCGNmZ0FycmF5Igphc3NldElkU3RyIglwbXRBbW91bnQiDm5leHRVc2VyTnVtS0VZIg51c2VySXNFeGlzdGluZyIHY29lZmZYOCIOZ1d4QW1vdW50U3RhcnQiE2dXeFBhcmFtc1Jlc3VsdExpc3QiA2FyciIRZmFjdG9yeUFkZHJlc3NTdHIiDmxvY2tBc3NldElkU3RyIgttaW5EdXJhdGlvbiILbWF4RHVyYXRpb24iC2NoZWNrQ2FsbGVyIg9yZWZlcnJlckFkZHJlc3MiCXNpZ25hdHVyZSINJHQwMzIwNTkzMjEyNCIRbG9ja0FjdGlvbnNSZXN1bHQiD3JlZmVycmFsQWRkcmVzcyIGcmVmSW52IhF1cGRhdGVSZWZBY3Rpdml0eSINJHQwMzI1ODIzMjY0NyINZGVsdGFEdXJhdGlvbiIKdXNlckFtb3VudCIMbG9ja0R1cmF0aW9uIgdsb2NrRW5kIhFyZW1haW5pbmdEdXJhdGlvbiINdXNlckFtb3VudE5ldyIPbG9ja0R1cmF0aW9uTmV3Igxsb2NrU3RhcnROZXciC2N1cnJVc2VyR3d4Igdnd3hEaWZmIhd0b3RhbENhY2hlZEd3eENvcnJlY3RlZCINJHQwMzU3MzQzNTgzNiISdXNlckJvb3N0QXZhaWxhYmxlIg0kdDAzNTk2ODM2MDY5IhBtYXhEZWx0YUR1cmF0aW9uIhdwZW5kaW5nTWFuYWdlclB1YmxpY0tleSIVY2hlY2tNYW5hZ2VyUHVibGljS2V5IgJwbSIFaGFzUE0iB2NoZWNrUE0iAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleYwBAAFhAgJfXwABYgAIAAFjAIDC1y8AAWQFAWMBAWUBAWYJALkJAgkAzAgCAg5ib29zdGluZy5yaWRlOgkAzAgCBQFmBQNuaWwCASABAWcBAWYJAAIBCQEBZQEFAWYBAWgCAWkBagkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFAWkFAWoJAKwCAgkArAICAg9tYW5kYXRvcnkgdGhpcy4FAWoCDyBpcyBub3QgZGVmaW5lZAEBawIBaQFqCQELdmFsdWVPckVsc2UCCQCaCAIFAWkFAWoAAAEBbAMBaQFqAW0JAQt2YWx1ZU9yRWxzZQIJAJoIAgUBaQUBagUBbQEBbgIBaQFqCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUBaQUBagkArAICCQCsAgICD21hbmRhdG9yeSB0aGlzLgUBagIPIGlzIG5vdCBkZWZpbmVkAQFvAQFwAwkAZgIAAAUBcAkBAS0BBQFwBQFwAQFxAQFwBAFyBQFwAwkAAQIFAXICCUxpc3RbQW55XQQBcwUBcgUBcwkAAgECG2ZhaWwgdG8gY2FzdCBpbnRvIExpc3RbQW55XQEBdAEBcAQBcgUBcAMJAAECBQFyAgNJbnQEAXUFAXIFAXUJAAIBAhVmYWlsIHRvIGNhc3QgaW50byBJbnQBAXYACQC5CQIJAMwIAgIEJXMlcwkAzAgCAgZjb25maWcJAMwIAgIYcmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzBQNuaWwFAWEAAXcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQFoAgUEdGhpcwkBAXYAAAF4CQC5CQIJAMwIAgIEJXMlcwkAzAgCAghyZWZlcnJhbAkAzAgCAgtwcm9ncmFtTmFtZQUDbmlsBQFhAAF5AgZ3eGxvY2sAAXoJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUBeAUBeQEBQQACHCVzJXNfX2NvbmZpZ19fZmFjdG9yeUFkZHJlc3MAAUIAAQABQwACAAFEAAMAAUUABAABRgAFAAFHAAYAAUgABwABSQAIAAFKAAkAAUsACgABTAALAQFNAAIRJXNfX2ZhY3RvcnlDb25maWcBAU4BAU8JALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUBTwkAzAgCAh5tYXBwaW5nc19fbHBBc3NldDJQb29sQ29udHJhY3QFA25pbAUBYQEBUAACECVzX19scFRva2Vuc0xpc3QBAVEBAU8JALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUBTwkAzAgCAh5tYXBwaW5nc19fbHBBc3NldDJQb29sQ29udHJhY3QFA25pbAUBYQEBUgEBUwkAuQkCCQDMCAICBCVzJXMJAMwIAgIKcG9vbFdlaWdodAkAzAgCBQFTBQNuaWwFAWEBAVQCAVUBVgkArAICCQCsAgIJAKwCAgISJXMlc19fcG9vbFdlaWdodF9fBQFVAgJfXwkApAMBBQFWAQFXAAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAWgCBQR0aGlzCQEBQQABAVgACQC1CQIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgkBAVcACQEBUAACAAUBYQEBWQEBWgkAtQkCCQEBaAIFAVoJAQFNAAUBYQECYWEBAmFiCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmFiBQFDAQJhYwECYWIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYWIFAUYBAmFkAQJhYgkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhYgUBQgECYWUBAmFiCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmFiBQFLAQJhZgACFCVzX19tYW5hZ2VyUHVibGljS2V5AQJhZwACGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQECYWgAAhslcyVzX19yYXRlUGVyQmxvY2tfX2N1cnJlbnQBAmFpAAIeJXMlc19fcmF0ZVBlckJsb2NrTWF4X19jdXJyZW50AQJhagACGiVzJXNfX2VtaXNzaW9uX19zdGFydEJsb2NrAQJhawACHCVzJXNfX2Jvb3N0aW5nVjJfX3N0YXJ0QmxvY2sBAmFsAAIaJXMlc19fYm9vc3RpbmdWMl9faW50ZWdyYWwBAmFtAAIYJXMlc19fZW1pc3Npb25fX2R1cmF0aW9uAQJhbgACGCVzJXNfX2VtaXNzaW9uX19lbmRCbG9jawECYW8AAg4lc19fbmV4dFBlcmlvZAECYXAAAiglcyVzX19nd3hSZXdhcmRFbWlzc2lvblBhcnRfX3N0YXJ0SGVpZ2h0AAJhcQABAAJhcgACAAJhcwADAAJhdAAEAAJhdQAFAQJhdgACCiVzX19jb25maWcBAmF3AAkAtQkCCQEBaAIFBHRoaXMJAQJhdgAFAWEAAmF4CQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIJAQJhdwAFAmF1AQJheQUCYXoCYUECYUICYUMCYXgJALkJAgkAzAgCAgglcyVkJWQlZAkAzAgCBQJhegkAzAgCBQJhQQkAzAgCBQJhQgkAzAgCBQJhQwkAzAgCBQJheAUDbmlsBQFhAQJhRAUCYXoCYUECYUICYUMCYXgJAQJheQUFAmF6CQCkAwEFAmFBCQCkAwEFAmFCCQCkAwEFAmFDBQJheAECYUUABAFyCQCiCAEJAQJhZgADCQABAgUBcgIGU3RyaW5nBAJhRgUBcgkA2QQBBQJhRgMJAAECBQFyAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBAmFHAAQBcgkAoggBCQECYWcAAwkAAQIFAXICBlN0cmluZwQCYUYFAXIJANkEAQUCYUYDCQABAgUBcgIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJhSAECYUkEAmFKCQACAQIRUGVybWlzc2lvbiBkZW5pZWQEAXIJAQJhRQADCQABAgUBcgIKQnl0ZVZlY3RvcgQCYUsFAXIDCQAAAggFAmFJD2NhbGxlclB1YmxpY0tleQUCYUsGBQJhSgMJAAECBQFyAgRVbml0AwkAAAIIBQJhSQZjYWxsZXIFBHRoaXMGBQJhSgkAAgECC01hdGNoIGVycm9yAAJhTAABAAJhTQACAAJhTgADAAJhTwAEAAJhUAAFAAJhUQAGAQJhUgECYVMJALkJAgkAzAgCAgolcyVzX19sb2NrCQDMCAIFAmFTBQNuaWwFAWEBAmFUAQJhUwkAtQkCCQEBaAIFBHRoaXMJAQJhUgEFAmFTBQFhAQJhVQgCYVYCYVcCYVgCYVkCYVoCYmECYmICYmMJALkJAgkAzAgCAhAlZCVkJWQlZCVkJWQlZCVkCQDMCAIFAmFWCQDMCAIFAmFXCQDMCAIFAmFYCQDMCAIFAmFZCQDMCAIFAmFaCQDMCAIFAmJhCQDMCAIFAmJiCQDMCAIFAmJjBQNuaWwFAWEBAmJkBwJhVgJhVwJhWAJhWQJhWgJiYQJiYwkBAmFVCAUCYVYJAKQDAQUCYVcJAKQDAQUCYVgJAKQDAQUCYVkJAKQDAQUCYVoJAKQDAQUCYmEJAKQDAQgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAKQDAQUCYmMBAmJlAAIPJXNfX25leHRVc2VyTnVtAQJiZgECYVMJALkJAgkAzAgCAhklcyVzJXNfX21hcHBpbmdfX3VzZXIybnVtCQDMCAIFAmFTBQNuaWwFAWEBAmJnAQFWCQC5CQIJAMwIAgIZJXMlcyVzX19tYXBwaW5nX19udW0ydXNlcgkAzAgCBQFWBQNuaWwFAWEBAmJoAQJhVgkAuQkCCQDMCAICFiVzJWQlc19fcGFyYW1CeVVzZXJOdW0JAMwIAgUCYVYJAMwIAgIGYW1vdW50BQNuaWwFAWEBAmJpAQJhVgkAuQkCCQDMCAICFiVzJWQlc19fcGFyYW1CeVVzZXJOdW0JAMwIAgUCYVYJAMwIAgIFc3RhcnQFA25pbAUBYQECYmoBAmFWCQC5CQIJAMwIAgIWJXMlZCVzX19wYXJhbUJ5VXNlck51bQkAzAgCBQJhVgkAzAgCAghkdXJhdGlvbgUDbmlsBQFhAQJiawECYVYJALkJAgkAzAgCAhYlcyVkJXNfX3BhcmFtQnlVc2VyTnVtCQDMCAIFAmFWCQDMCAICAWsFA25pbAUBYQECYmwBAmFWCQC5CQIJAMwIAgIWJXMlZCVzX19wYXJhbUJ5VXNlck51bQkAzAgCBQJhVgkAzAgCAgFiBQNuaWwFAWEBAmJtAgJhVgJibgkAuQkCCQDMCAICFyVzJWQlcyVkX19wYXJhbUJ5UGVyaW9kCQDMCAIFAmFWCQDMCAICAWsJAMwIAgUCYm4FA25pbAUBYQECYm8CAmFWAmJuCQC5CQIJAMwIAgIXJXMlZCVzJWRfX3BhcmFtQnlQZXJpb2QJAMwIAgUCYVYJAMwIAgIBYgkAzAgCBQJibgUDbmlsBQFhAQJicAACHiVzJXNfX3N0YXRzX19hY3RpdmVUb3RhbExvY2tlZAECYnEAAiUlcyVzX19zdGF0c19fbG9ja3NEdXJhdGlvblN1bUluQmxvY2tzAQJicgACFyVzJXNfX3N0YXRzX19sb2Nrc0NvdW50AQJicwACHSVzJXNfX3N0YXRzX19hY3RpdmVVc2Vyc0NvdW50AQJidAECYVYJALkJAgkAzAgCAiAlcyVkX191c2VyQm9vc3RFbWlzc2lvbkxhc3RJbnRWMgkAzAgCBQJhVgUDbmlsBQFhAQJidQICYVYCYnYJALkJAgkAzAgCAiAlcyVkX191c2VyQm9vc3RFbWlzc2lvbkxhc3RJbnRWMgkAzAgCBQJhVgkAzAgCBQJidgUDbmlsBQFhAQJidwECYVYJALkJAgkAzAgCAhElcyVkX19tYXhCb29zdEludAkAzAgCBQJhVgUDbmlsBQFhAQJieAACGCVzJXNfX21heEJvb3N0SW50X190b3RhbAECYnkBAmFWCQC5CQIJAMwIAgIkJXMlZF9fdXNlckJvb3N0QXZhbGlhYmxlVG9DbGFpbVRvdGFsCQDMCAIFAmFWBQNuaWwFAWEBAmJ6AQJhVgkAuQkCCQDMCAICFiVzJWRfX3VzZXJCb29zdENsYWltZWQJAMwIAgUCYVYFA25pbAUBYQECYkEAAhYlcyVzX19nd3hDYWNoZWRfX3RvdGFsAQJiQgACHCVzX19nd3hDYWNoZWRUb3RhbENvcnJlY3RpdmUBAmJDBAJiRAJiRQFpAmJGCQC5CQIJAMwIAgIKJXMlcyVzJXMlZAkAzAgCAgR2b3RlCQDMCAIFAmJECQDMCAIFAmJFCQDMCAIJAKUIAQUBaQkAzAgCCQCkAwEFAmJGBQNuaWwFAWEBAmJHAQJiRgkAuQkCCQDMCAICBCVzJWQJAMwIAgILc3RhcnRIZWlnaHQJAMwIAgkApAMBBQJiRgUDbmlsBQFhAQJiSAAJALkJAgkAzAgCAgIlcwkAzAgCAg5jdXJyZW50RXBvY2hVaQUDbmlsBQFhAQJiSQICYkoCYkYJALkJAgkAzAgCAgYlcyVzJWQJAMwIAgISdm90aW5nUmVzdWx0U3Rha2VkCQDMCAIFAmJKCQDMCAIJAKQDAQUCYkYFA25pbAUBYQECYksCAmJKAmJGCQC5CQIJAMwIAgIGJXMlcyVkCQDMCAICGnZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsCQDMCAIFAmJKCQDMCAIJAKQDAQUCYkYFA25pbAUBYQECYkwCAmJKAmJGCQC5CQIJAMwIAgIGJXMlcyVkCQDMCAICKnZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsTGFzdFVwZGF0ZUhlaWdodAkAzAgCBQJiSgkAzAgCCQCkAwEFAmJGBQNuaWwFAWEBAmJNAwJiSgFpAmJGCQC5CQIJAMwIAgIIJXMlcyVzJWQJAMwIAgIedm90aW5nUmVzdWx0U3Rha2VkSW50ZWdyYWxMYXN0CQDMCAIFAmJKCQDMCAIJAKUIAQUBaQkAzAgCCQCkAwEFAmJGBQNuaWwFAWEBAmJOAwJiSgFpAmJGCQC5CQIJAMwIAgIIJXMlcyVzJWQJAMwIAgISdm90ZVN0YWtlZEludGVncmFsCQDMCAIFAmJKCQDMCAIJAKUIAQUBaQkAzAgCCQCkAwEFAmJGBQNuaWwFAWEBAmJPAwJiSgFpAmJGCQC5CQIJAMwIAgIIJXMlcyVzJWQJAMwIAgIidm90ZVN0YWtlZEludGVncmFsTGFzdFVwZGF0ZUhlaWdodAkAzAgCBQJiSgkAzAgCCQClCAEFAWkJAMwIAgkApAMBBQJiRgUDbmlsBQFhAQJiUAMCYkoBaQJiRgkAuQkCCQDMCAICCCVzJXMlcyVkCQDMCAICFnZvdGVTdGFrZWRJbnRlZ3JhbExhc3QJAMwIAgUCYkoJAMwIAgkApQgBBQFpCQDMCAIJAKQDAQUCYkYFA25pbAUBYQECYlECAmJSAmJKCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICBnN0YWtlZAkAzAgCBQJiUgkAzAgCBQJiSgUDbmlsBQFhAAJiUwkBAVcAAAJhYgkBAVkBBQJiUwACYlQJAQJhYwEFAmFiAAJiVQkBAmFkAQUCYWIAAmJWCQECYWUBBQJhYgACYlcJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkAuQkCCQDMCAICAiVzCQDMCAICFmxwU3Rha2luZ1Bvb2xzQ29udHJhY3QFA25pbAUBYQkBAWUBAi5scF9zdGFraW5nX3Bvb2xzIGNvbnRyYWN0IGFkZHJlc3MgaXMgdW5kZWZpbmVkCQEBZQECKWludmFsaWQgbHBfc3Rha2luZ19wb29scyBjb250cmFjdCBhZGRyZXNzAAJiWAkAuQkCCQDMCAICAiVzCQDMCAICFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QFA25pbAUBYQACYlkJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFAmJTBQJiWAACYloKAAJjYQkA/AcEBQJiVAIVZ2V0Qm9vc3RDb2VmZlJFQURPTkxZBQNuaWwFA25pbAMJAAECBQJjYQIDSW50BQJjYQkAAgEJAKwCAgkAAwEFAmNhAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQBAmNiAQJjYwQCY2QJARFAZXh0ck5hdGl2ZSgxMDUwKQIFAmJZCQECYkgABAJjZQkAuQkCCQDMCAICBCVzJXMJAMwIAgIpdG90YWxDYWNoZWRHd3hDb3JyZWN0aW9uX19hY3RpdmF0aW9uRXBvY2gFA25pbAUBYQQCY2YJAJoIAgUEdGhpcwUCY2UEAmNnCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJiQQAAAAQCY2gDCQEJaXNEZWZpbmVkAQUCY2YJAGcCBQJjZAkBBXZhbHVlAQUCY2YHBAJjaQMDBQJjaAUCY2MHCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJiQgAAAAAACQCWAwEJAMwIAgAACQDMCAIJAGQCBQJjZwUCY2kFA25pbAECY2oIAmNrAmNsAmFXAmNtAmFZAmNuAmNvAmFJBAJjcAkAuQkCCQDMCAICESVzJXMlcyVzX19oaXN0b3J5CQDMCAIFAmNrCQDMCAIFAmNsCQDMCAIJANgEAQgFAmFJDXRyYW5zYWN0aW9uSWQFA25pbAUBYQQCY3EJALkJAgkAzAgCAg4lZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEIBQlsYXN0QmxvY2sGaGVpZ2h0CQDMCAIJAKQDAQgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkApAMBBQJhVwkAzAgCCQCkAwEFAmNtCQDMCAIJAKQDAQUCYVkJAMwIAgkApAMBBQJjbgkAzAgCCQCkAwEFAmNvBQNuaWwFAWEJAQtTdHJpbmdFbnRyeQIFAmNwBQJjcQECY3IEAmNzAmN0AmN1AmN2BAJjdwkBAmJxAAQCY3gJAQJicgAEAmN5CQECYnMABAJjegkBAmJwAAQCY0EJAQFrAgUEdGhpcwUCY3cEAmNCCQEBawIFBHRoaXMFAmN4BAJjQwkBAWsCBQR0aGlzBQJjeQQCY0QJAQFrAgUEdGhpcwUCY3oJAMwIAgkBDEludGVnZXJFbnRyeQIFAmN3CQBkAgUCY0EFAmN0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjeAkAZAIFAmNCBQJjdQkAzAgCCQEMSW50ZWdlckVudHJ5AgUCY3kJAGQCBQJjQwUCY3YJAMwIAgkBDEludGVnZXJFbnRyeQIFAmN6CQBkAgUCY0QFAmNzBQNuaWwBAmNFAwJjRgJjRwJjSAQCY0kA6AcJAGkCCQBkAgkAaAIFAmNGBQJjSAUCY0cFAmNJAQJjSggCYVMCYVYCYVcCYVgCYVkCY24CY28CYm4EAmNLCQECYmgBBQJhVgQCY0wJAQJiaQEFAmFWBAJjTQkBAmJqAQUCYVYEAmNOCQECYmsBBQJhVgQCY08JAQJibAEFAmFWBAJjUAkBAmJtAgUCYVYFAmJuBAJjUQkBAmJvAgUCYVYFAmJuBAJiYwkBAmNFAwUCY24FAmNvBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFAmNLBQJhVwkAzAgCCQEMSW50ZWdlckVudHJ5AgUCY0wFAmFYCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjTQUCYVkJAMwIAgkBDEludGVnZXJFbnRyeQIFAmNOBQJjbgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCY08FAmNvCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjUAUCY24JAMwIAgkBDEludGVnZXJFbnRyeQIFAmNRBQJjbwkAzAgCCQELU3RyaW5nRW50cnkCCQECYVIBBQJhUwkBAmJkBwUCYVYFAmFXBQJhWAUCYVkFAmNuBQJjbwUCYmMFA25pbAECY1ICAmFJAmNTAwkAZgIJAJADAQgFAmFJCHBheW1lbnRzAAEJAAIBAhtvbmx5IG9uZSBwYXltZW50IGlzIGFsbG93ZWQDCQAAAgkAkAMBCAUCYUkIcGF5bWVudHMAAAAABAJjVAkAkQMCCAUCYUkIcGF5bWVudHMAAAMJAQIhPQIJAQV2YWx1ZQEIBQJjVAdhc3NldElkBQJjUwkAAgECG2ludmFsaWQgYXNzZXQgaWQgaW4gcGF5bWVudAgFAmNUBmFtb3VudAECY1UCAmFTAmNWBAJjVwIFZW1wdHkEAmNYCQECYmYBBQJhUwQCYVYJAQt2YWx1ZU9yRWxzZQIJAKIIAQUCY1gFAmNXBAJjbgkBC3ZhbHVlT3JFbHNlAgkAnwgBCQECYmsBBQJhVgAABAJjbwkBC3ZhbHVlT3JFbHNlAgkAnwgBCQECYmwBBQJhVgAABAJjWQkBAmNFAwUCY24FAmNvBQJjVgQCYmMDCQBmAgAABQJjWQAABQJjWQUCYmMBAmNaAQJhUwkBAmNVAgUCYVMFBmhlaWdodAECZGEABAJkYgQCY2QJAQV2YWx1ZQEJAJoIAgUCYlkJAQJiSAAEAmRjCQBlAgUCY2QAAQMJAGYCAAAFAmRjCQEBZwECDWludmFsaWQgZXBvY2gJAJQKAgUCY2QFAmRjBAJjZAgFAmRiAl8xBAJkYwgFAmRiAl8yBAJkZAkBBXZhbHVlAQkAmggCBQJiWQkBAmJHAQUCY2QJAJQKAgUCZGMFAmRkAQJkZQECYkoEAmRmAAQEAmRnAAUEAmRoCgACY2EJAPwHBAUCYlMCIGdldFBvb2xDb25maWdCeUxwQXNzZXRJZFJFQURPTkxZCQDMCAIFAmJKBQNuaWwFA25pbAMJAAECBQJjYQIJTGlzdFtBbnldBQJjYQkAAgEJAKwCAgkAAwEFAmNhAh4gY291bGRuJ3QgYmUgY2FzdCB0byBMaXN0W0FueV0EAmJECgACY2EJAJEDAgUCZGgFAmRmAwkAAQIFAmNhAgZTdHJpbmcFAmNhCQACAQkArAICCQADAQUCY2ECGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwQCYkUKAAJjYQkAkQMCBQJkaAUCZGcDCQABAgUCY2ECBlN0cmluZwUCY2EJAAIBCQCsAgIJAAMBBQJjYQIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nCQCUCgIFAmJEBQJiRQECZGkCAmJKAmJSBAJhUwkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYlIEAmRqCQECZGEABAJkYwgFAmRqAl8xBAJkZAgFAmRqAl8yBAJkawkBAmRlAQUCYkoEAmJECAUCZGsCXzEEAmJFCAUCZGsCXzIEAmRsCQECYkMEBQJiRAUCYkUFAmFTBQJkYwQCZG0JAQt2YWx1ZU9yRWxzZQIJAJoIAgUCYlkFAmRsAAAFAmRtAQJkbgICYkoCYlIEAmRvCQELdmFsdWVPckVsc2UCCQCaCAIFAmJVCQECYlECBQJiUgUCYkoAAAQCZG0JAQJkaQIFAmJKBQJiUgMJAAACBQJkbwAAAAAFAmRtAQJkcAECYkoEAmRxCQECZGEABAJkYwgFAmRxAl8xBAJkZAgFAmRxAl8yBAJkcgkBC3ZhbHVlT3JFbHNlAgkAmggCBQJiWQkBAmJJAgUCYkoFAmRjAAAEAmRzCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJiSQIFAmJKBQJkYwUCZHIFAmRzAQJkdAECYkoEAmR1CQECZGEABAJkYwgFAmR1Al8xBAJkZAgFAmR1Al8yBAJkcwkBAmRwAQUCYkoEAmR2CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJiSwIFAmJKBQJkYwAABAJkdwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYkwCBQJiSgUCZGMFAmRkBAJkeAkAZQIFBmhlaWdodAUCZHcEAmR5CQBkAgkAaAIFAmR4BQJkcwUCZHYFAmR5AQJkegICYkoCZEEEAmRCCQECZGEABAJkYwgFAmRCAl8xBAJkZAgFAmRCAl8yBAJkcwkBAmRwAQUCYkoEAmRDCQBkAgUCZHMFAmRBBAJkeQkBAmR0AQUCYkoJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJiSQIFAmJKBQJkYwUCZEMJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJiTAIFAmJKBQJkYwUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYksCBQJiSgUCZGMFAmR5BQNuaWwBAmREAgJiSgJiUgQCZEUJAQJkYQAEAmRjCAUCZEUCXzEEAmRkCAUCZEUCXzIEAmFTCQERQGV4dHJOYXRpdmUoMTA2MikBBQJiUgQCZEYJAQJkbgIFAmJKBQJiUgQCZEcJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmJOAwUCYkoFAmFTBQJkYwAABAJkSAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYk8DBQJiSgUCYVMFAmRjBQJkZAQCZEkJAGUCBQZoZWlnaHQFAmRIBAJkSgkAZAIJAGgCBQJkSQUCZEYFAmRHBQJkSgECZEsDAmJKAmJSAmRMBAJkTQkBAmRhAAQCZGMIBQJkTQJfMQQCZGQIBQJkTQJfMgQCYVMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmJSBAJkTgkBAmRpAgUCYkoFAmJSBAJkTwMJAAACBQJkTgAABQNuaWwEAmRBAwUCZEwFAmROCQEBLQEFAmROBAJkUAkBAmR6AgUCYkoFAmRBBAJkSgkBAmREAgUCYkoFAmJSBAJkUQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmJPAwUCYkoFAmFTBQJkYwUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYk4DBQJiSgUCYVMFAmRjBQJkSgUDbmlsCQDOCAIFAmRQBQJkUQUCZE8BAmRSAgJiSgJiUgQCZFMJAQJkYQAEAmRjCAUCZFMCXzEEAmRkCAUCZFMCXzIEAmFTCQERQGV4dHJOYXRpdmUoMTA2MikBBQJiUgQCZEYJAQJkbgIFAmJKBQJiUgQCZHMJAQJkcAEFAmJKBAJkRwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYk4DBQJiSgUCYVMFAmRjAAAEAmR2CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJiSwIFAmJKBQJkYwAABAJkSAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYk8DBQJiSgUCYVMFAmRjBQJkZAQCZHcJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmJMAgUCYkoFAmRjBQJkZAQCZFQJAQJiUAMFAmJKBQJhUwUCZGMEAmRVCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmRUAAAEAmRWCQECYk0DBQJiSgUCYVMFAmRjBAJkVwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJkVgAABAJkSQkAZQIFBmhlaWdodAUCZEgEAmR4CQBlAgUGaGVpZ2h0BQJkdwQCZEoJAGQCCQBoAgUCZEkFAmRGBQJkRwQCZHkJAGQCCQBoAgUCZHgFAmRzBQJkdgQCZFgJAGUCBQJkSgUCZFUEAmRZCQBlAgUCZHkFAmRXCQCVCgMJAMwIAgkBDEludGVnZXJFbnRyeQIFAmRUBQJkSgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZFYFAmR5BQNuaWwFAmRYBQJkWQECZFoABAJlYQkBAW4CBQJiVAkBAmFoAAQCZWIJAJoIAgUCYlQJAQJhawAEAmVjCQCaCAIFBHRoaXMJAQJhbAAEAmVkCQEBbgIFAmJUCQECYW4ABAJjSAMJAGYCBQZoZWlnaHQFAmVkBQJlZAUGaGVpZ2h0BAJlZQQBcgUCZWIDCQABAgUBcgIDSW50BAJlZgUBcgkAlgMBCQDMCAIJAGUCBQJjSAUCZWYJAMwIAgAABQNuaWwDCQABAgUBcgIEVW5pdAAACQACAQILTWF0Y2ggZXJyb3IEAmVnCQBpAgkAaAIFAmVhCQBlAgUCYloAAQUCYloEAmVoCQELdmFsdWVPckVsc2UCBQJlYwAABAJlaQkAZAIJAGgCBQJlZwUCZWUFAmVoCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhbAAFAmVpCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWsABQZoZWlnaHQFA25pbAUCZWkBAmVqAwJiSgJiUgJlawQCZWwJAJ0IAgUEdGhpcwkBAmFSAQUCYlIDCQAAAgUCZWwFBHVuaXQJAJUKAwAABQNuaWwCFXVzZXJSZWNvcmQ6OmlzOjplbXB0eQQCZW0JALUJAgkBBXZhbHVlAQUCZWwFAWEEAmVuCQCRAwIFAmVtBQJhTAQCZW8CBWVtcHR5BAJlcAMJAQIhPQIFAmJKBQJlbwQCZXEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQJiUwkBAU4BBQJiSgkArAICAhV1bnN1cHBvcnRlZCBscCBhc3NldCAFAmJKCQERQGV4dHJOYXRpdmUoMTA1MCkCBQJiUwkBAVIBBQJlcQMFAmVrAAAJAAIBCQCsAgICKG5vdCByZWFkb25seSBtb2RlOiB1bnN1cHBvcnRlZCBscCBhc3NldCAFAmJKBAJlcgkBAmJ1AgUCZW4FAmJKBAJlcwkBAmJ0AQUCZW4EAmV0CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmVyCQEBawIFBHRoaXMFAmVzBAJlaQgJAQJkWgACXzIEAmV1CQBlAgUCZWkFAmV0AwkAZgIAAAUCZXUJAAIBAhJ3cm9uZyBjYWxjdWxhdGlvbnMEAmV2CQECZFICBQJiSgUCYlIEAmV3CAUCZXYCXzEEAmV4CAUCZXYCXzIEAmV5CAUCZXYCXzMEAmV6CQBrAwUCZXUFAmVwBQFkBAJlQQMJAAACBQJleQAAAAAJAGsDBQJlegUCZXgFAmV5BAJlQgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJlcgUCZWkFA25pbAUCZXcEAmVDCQC5CQIJAMwIAgkApAMBBQJldAkAzAgCCQCkAwEFAmV1CQDMCAIJAKQDAQUCZXAJAMwIAgkApAMBBQJleAkAzAgCCQCkAwEFAmV5BQNuaWwCAToJAJUKAwUCZUEFAmVCBQJlQwECZUQCAmFJAmFZBAJlRQkBAmF3AAQCZUYJAJEDAgUCZUUFAmFxBAJhegkA2QQBBQJlRgQCYUEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlRQUCYXIEAmFCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZUUFAmFzBAJhQwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVFBQJhdAMJAQIhPQIJAJADAQgFAmFJCHBheW1lbnRzAAEJAAIBAjRpbnZhbGlkIHBheW1lbnQgLSBleGFjdCBvbmUgcGF5bWVudCBtdXN0IGJlIGF0dGFjaGVkBAJjVAkAkQMCCAUCYUkIcGF5bWVudHMAAAQCZUcIBQJjVAZhbW91bnQDCQECIT0CBQJhegkBBXZhbHVlAQgFAmNUB2Fzc2V0SWQJAAIBCQCsAgIJAKwCAgIeaW52YWxpZCBhc3NldCBpcyBpbiBwYXltZW50IC0gBQJlRgIMIGlzIGV4cGVjdGVkBAJlSAkBAmJlAAQCYlIJAKUIAQgFAmFJBmNhbGxlcgQCZUkJAQlpc0RlZmluZWQBCQCiCAEJAQJiZgEFAmJSBAJlbgMFAmVJCQEFdmFsdWUBCQCiCAEJAQJiZgEFAmJSCQCkAwEJAQFuAgUEdGhpcwUCZUgEAmFWCQENcGFyc2VJbnRWYWx1ZQEFAmVuBAJjbQUGaGVpZ2h0BAJjTAkBAmJpAQUCZW4EAmNNCQECYmoBBQJlbgQCY0sJAQJiaAEFAmVuAwMJAGYCBQJhQQUCZUcJAQIhPQIIBQJhSQZjYWxsZXIFAmJXBwkAAgEJAKwCAgIiYW1vdW50IGlzIGxlc3MgdGhlbiBtaW5Mb2NrQW1vdW50PQkApAMBBQJhQQMJAGYCBQJhQgUCYVkJAAIBCQCsAgICLXBhc3NlZCBkdXJhdGlvbiBpcyBsZXNzIHRoZW4gbWluTG9ja0R1cmF0aW9uPQkApAMBBQJhQgMJAGYCBQJhWQUCYUMJAAIBCQCsAgICMHBhc3NlZCBkdXJhdGlvbiBpcyBncmVhdGVyIHRoZW4gbWF4TG9ja0R1cmF0aW9uPQkApAMBBQJhQwMDBQJlSQkAZwIJAGQCCQEBbgIFBHRoaXMFAmNMCQEBbgIFBHRoaXMFAmNNBQJjbQcJAAIBAjZ0aGVyZSBpcyBhbiBhY3RpdmUgbG9jayAtIGNvbnNpZGVyIHRvIHVzZSBpbmNyZWFzZUxvY2sDCQBmAgkBAWsCBQR0aGlzBQJjSwAACQACAQkArAICAjR0aGVyZSBhcmUgbG9ja2VkIFdYcyAtIGNvbnNpZGVyIHRvIHVzZSBpbmNyZWFzZUxvY2sgBQJjSwQCZUoJAGsDBQJhWQUBYwUCYUMEAmVLCQBrAwUCZUcFAmVKBQFjBAJlTAkBAXEBCQD8BwQFAmF4AhVjYWxjR3d4UGFyYW1zUkVBRE9OTFkJAMwIAgUCZUsJAMwIAgUCY20JAMwIAgUCYVkFA25pbAUDbmlsBAJjbgkBAXQBCQCRAwIFAmVMAAAEAmNvCQEBdAEJAJEDAgUCZUwAAQQCYm4JAKQDAQkBAXQBCQCRAwIFAmVMAAIEAmNnCQECY2IBBwQCZXMJAQJidAEFAmVuBAJlaQgJAQJkWgACXzIEAmVNAwUCZUkFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZUgJAGQCBQJhVgABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJiZgEFAmJSBQJlbgkAzAgCCQELU3RyaW5nRW50cnkCCQECYmcBBQJlbgUCYlIFA25pbAkAlAoCCQDOCAIJAM0IAgkAzggCCQDOCAIFAmVNCQECY0oIBQJiUgUCZW4FAmVHBQJjbQUCYVkFAmNuBQJjbwUCYm4JAQJjcgQFAmVHBQJhWQABAwUCZUkAAAABCQECY2oIAgRsb2NrBQJiUgUCZUcFAmNtBQJhWQUCY24FAmNvBQJhSQkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZXMFAmVpCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYkEACQBkAgUCY2cFAmVLBQNuaWwFAmVLEwJhSQELY29uc3RydWN0b3IGAmVOAmVPAmFBAmVQAmVRAmF4BAJlUgkBAmFIAQUCYUkDCQAAAgUCZVIFAmVSCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJiZQAAAAkAzAgCCQELU3RyaW5nRW50cnkCCQECYXYACQECYUQFBQJlTwUCYUEFAmVQBQJlUQUCYXgJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUEABQJlTgUDbmlsCQECY3IEAAAAAAAAAAAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYUkBB2xvY2tSZWYDAmFZAmVTAmVUBAJlVQkBAmVEAgUCYUkFAmFZBAJlVggFAmVVAl8xBAJlSwgFAmVVAl8yBAJlVwkApQgBCAUCYUkGY2FsbGVyBAJlWAMDCQAAAgUCZVMCAAYJAAACBQJlVAEABQR1bml0CQD8BwQFAXcCCmNyZWF0ZVBhaXIJAMwIAgUBegkAzAgCBQJlUwkAzAgCBQJlVwkAzAgCBQJlVAUDbmlsBQNuaWwDCQAAAgUCZVgFAmVYBAJlWQkA/AcEBQJheAIWdXBkYXRlUmVmZXJyYWxBY3Rpdml0eQkAzAgCCQClCAEIBQJhSQZjYWxsZXIJAMwIAgUCZUsFA25pbAUDbmlsAwkAAAIFAmVZBQJlWQkAlAoCBQJlVgUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhSQEEbG9jawECYVkEAmVaCQECZUQCBQJhSQUCYVkEAmVWCAUCZVoCXzEEAmVLCAUCZVoCXzIEAmVZCQD8BwQFAmF4AhZ1cGRhdGVSZWZlcnJhbEFjdGl2aXR5CQDMCAIJAKUIAQgFAmFJBmNhbGxlcgkAzAgCBQJlSwUDbmlsBQNuaWwDCQAAAgUCZVkFAmVZCQCUCgIFAmVWBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFJAQxpbmNyZWFzZUxvY2sBAmZhBAJlRQkBAmF3AAQCZUYJAJEDAgUCZUUFAmFxBAJhegkA2QQBBQJlRgQCYUIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlRQUCYXMEAmFDCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZUUFAmF0BAJlRwkBAmNSAgUCYUkFAmF6BAJiUgkApQgBCAUCYUkGY2FsbGVyBAJlbQkBAmFUAQUCYlIEAmVuCQCRAwIFAmVtBQJhTAQCZmIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlbQUCYU0EAmNtCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZW0FAmFOBAJmYwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVtBQJhTwQCZmQJAGQCBQJjbQUCZmMEAmZlCQCWAwEJAMwIAgkAZQIFAmZkBQZoZWlnaHQJAMwIAgAABQNuaWwEAmZmCQBkAgUCZmIFAmVHBAJmZwkAZAIFAmZlBQJmYQMJAGYCAAAFAmZhCQACAQIaZHVyYXRpb24gaXMgbGVzcyB0aGVuIHplcm8DCQBmAgUCYUIFAmZnCQACAQkArAICAi1sb2NrRHVyYXRpb25OZXcgaXMgbGVzcyB0aGVuIG1pbkxvY2tEdXJhdGlvbj0JAKQDAQUCYUIDCQBmAgUCZmcFAmFDCQACAQkArAICAkRkZWx0YUR1cmF0aW9uICsgZXhpc3RlZExvY2tEdXJhdGlvbiBpcyBncmVhdGVyIHRoZW4gbWF4TG9ja0R1cmF0aW9uPQkApAMBBQJhQwQCZUoJAGsDBQJmZwUBYwUCYUMEAmVLCQBrAwUCZmYFAmVKBQFjBAJlWQkA/AcEBQJheAIWdXBkYXRlUmVmZXJyYWxBY3Rpdml0eQkAzAgCCQClCAEIBQJhSQZjYWxsZXIJAMwIAgUCZUsFA25pbAUDbmlsAwkAAAIFAmVZBQJlWQQCZmgFBmhlaWdodAQCZUwJAQFxAQkA/AcEBQJheAIVY2FsY0d3eFBhcmFtc1JFQURPTkxZCQDMCAIFAmVLCQDMCAIFAmZoCQDMCAIFAmZnBQNuaWwFA25pbAQCY24JAQF0AQkAkQMCBQJlTAAABAJjbwkBAXQBCQCRAwIFAmVMAAEEAmJuCQCkAwEJAQF0AQkAkQMCBQJlTAACBAJmaQkBAmNaAQUCYlIEAmZqCQBlAgUCZUsFAmZpAwkAZgIAAAUCZmoJAAIBCQCsAgICGGd3eERpZmYgaXMgbGVzcyB0aGVuIDA6IAkApAMBBQJmagQCY2cJAQJjYgEHBAJmawkBAmNiAQYJAM4IAgkAzQgCCQDOCAIJAQJjSggFAmJSBQJlbgUCZmYFAmZoBQJmZwUCY24FAmNvBQJibgkBAmNyBAUCZUcFAmZhAAAAAAkBAmNqCAIEbG9jawUCYlIFAmVHBQJjbQUCZmcFAmNuBQJjbwUCYUkJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJiQQAJAGQCBQJjZwUCZmoFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhSQEMY2xhaW1XeEJvb3N0AgJiSgJiUgMJAQIhPQIFAmJVCAUCYUkGY2FsbGVyCQACAQIScGVybWlzc2lvbnMgZGVuaWVkBAJmbAkBAmVqAwUCYkoFAmJSBwQCZm0IBQJmbAJfMQQCZUIIBQJmbAJfMgQCZUMIBQJmbAJfMwkAlAoCBQJlQgkAzAgCBQJmbQUDbmlsAmFJARRjbGFpbVd4Qm9vc3RSRUFET05MWQICYkoCYlIEAmZuCQECZWoDBQJiSgUCYlIGBAJmbQgFAmZuAl8xBAJlQggFAmZuAl8yBAJlQwgFAmZuAl8zCQCUCgIFA25pbAkAzAgCBQJmbQkAzAgCBQJlQwUDbmlsAmFJAQZ1bmxvY2sBAmFTBAJlbQkBAmFUAQUCYVMEAmVuCQCRAwIFAmVtBQJhTAQCZmIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlbQUCYU0EAmNtCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZW0FAmFOBAJmYwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVtBQJhTwQCZmQJAGQCBQJjbQUCZmMEAmVFCQECYXcABAJhegkA2QQBCQCRAwIFAmVFBQJhcQMJAGcCBQJmZAUGaGVpZ2h0CQACAQkArAICCQCsAgICBXdhaXQgCQCkAwEFAmZkAgogdG8gdW5sb2NrAwkAZwIAAAUCZmIJAAIBAhFub3RoaW5nIHRvIHVubG9jawQCYm4JAQt2YWx1ZU9yRWxzZQIJAJoIAgUCYXgJAQJhbwAAAAkAzQgCCQDNCAIJAM4IAgkBAmNKCAUCYVMFAmVuAAAFAmNtBQJmYwAAAAAJAKQDAQUCYm4JAQJjcgQJAQEtAQUCZmIAAAAAAP///////////wEJAQJjaggCBnVubG9jawUCYVMFAmZiBQJjbQUCZmMAAAAABQJhSQkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYVMFAmZiBQJhegJhSQETZ3d4VXNlckluZm9SRUFET05MWQECYVMEAmJjCQECY1oBBQJhUwkAlAoCBQNuaWwJAMwIAgUCYmMFA25pbAJhSQEXdXNlck1heER1cmF0aW9uUkVBRE9OTFkBAmJSBAJlRQkBAmF3AAQCYUMJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlRQUCYXQEAmVsCQCdCAIFBHRoaXMJAQJhUgEFAmJSAwkAAAIFAmVsBQR1bml0CQCUCgIFA25pbAkAlAoCAgRsb2NrBQJhQwQCZW0JALUJAgkBBXZhbHVlAQUCZWwFAWEEAmNtCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZW0FAmFOBAJmYwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVtBQJhTwQCZmQJAGQCBQJjbQUCZmMEAmZlCQCWAwEJAMwIAgkAZQIFAmZkBQZoZWlnaHQJAMwIAgAABQNuaWwEAmZvCQBlAgUCYUMFAmZlCQCUCgIFA25pbAkAlAoCAgxpbmNyZWFzZUxvY2sFAmZvAmFJASBnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHRSRUFET05MWQICYVMCY1YEAmJjCQECY1UCBQJhUwUCY1YJAJQKAgUDbmlsBQJiYwJhSQEZZ2V0VG90YWxDYWNoZWRHd3hSRUFET05MWQAJAJQKAgUDbmlsCQECY2IBBgJhSQEVb25Cb29zdEVtaXNzaW9uVXBkYXRlAAQCZVIDCQAAAggFAmFJBmNhbGxlcgUCYlQGCQECYUgBBQJhSQMJAAACBQJlUgUCZVIJAQJkWgAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYUkBEm9uU3Rha2VkVm90ZVVwZGF0ZQMCYkoCYlICZEwEAmVSAwkAAAIIBQJhSQZjYWxsZXIFAmJVBgkBAmFIAQUCYUkDCQAAAgUCZVIFAmVSBAJkTwkBAmRLAwUCYkoFAmJSBQJkTAkAlAoCBQJkTwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhSQEdZ2V0Vm90aW5nUmVzdWx0U3Rha2VkUkVBRE9OTFkBAmJKCQCUCgIFA25pbAkBAmRwAQUCYkoCYUkBJWdldFZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsUkVBRE9OTFkBAmJKCQCUCgIFA25pbAkBAmR0AQUCYkoCYUkBHGdldFVzZXJWb3RlRmluYWxpemVkUkVBRE9OTFkCAmJKAmJSCQCUCgIFA25pbAkBAmRpAgUCYkoFAmJSAmFJASFnZXRVc2VyVm90ZVN0YWtlZEludGVncmFsUkVBRE9OTFkCAmJKAmJSCQCUCgIFA25pbAkBAmREAgUCYkoFAmJSAmFJAQpzZXRNYW5hZ2VyAQJmcAQCZVIJAQJhSAEFAmFJAwkAAAIFAmVSBQJlUgQCZnEJANkEAQUCZnADCQAAAgUCZnEFAmZxCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhZwAFAmZwBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYUkBDmNvbmZpcm1NYW5hZ2VyAAQCZnIJAQJhRwAEAmZzAwkBCWlzRGVmaW5lZAEFAmZyBgkAAgECEk5vIHBlbmRpbmcgbWFuYWdlcgMJAAACBQJmcwUCZnMEAmZ0AwkAAAIIBQJhSQ9jYWxsZXJQdWJsaWNLZXkJAQV2YWx1ZQEFAmZyBgkAAgECG1lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAACBQJmdAUCZnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFmAAkA2AQBCQEFdmFsdWUBBQJmcgkAzAgCCQELRGVsZXRlRW50cnkBCQECYWcABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmZ1AQJmdgAEAmZ3BAFyCQECYUUAAwkAAQIFAXICCkJ5dGVWZWN0b3IEAmFLBQFyBQJhSwMJAAECBQFyAgRVbml0CAUCZnUPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAmZ1CWJvZHlCeXRlcwkAkQMCCAUCZnUGcHJvb2ZzAAAFAmZ37VCd4g==", "height": 2491209, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 12yZeEmQxn2mM5zoUaNVe8BfiAjibCYzyHGrNZ8FWXyb Next: EXepq5tPQBPsLGktxabqgPovbZJs74uzHgp2aNk3eDX4 Diff:
OldNewDifferences
534534 }
535535
536536
537-func dt (bJ,du) = {
538- let dv = da()
539- let dc = dv._1
540- let dd = dv._2
537+func dt (bJ) = {
538+ let du = da()
539+ let dc = du._1
540+ let dd = du._2
541541 let ds = dp(bJ)
542- let dw = (ds + du)
543- let dx = bK(bJ, dc)
544- let dy = valueOrElse(getInteger(this, dx), 0)
545- let dz = bL(bJ, dc)
546- let dA = valueOrElse(getInteger(this, dz), dd)
547- let dB = (height - dA)
548- let dC = ((dB * ds) + dy)
549- $Tuple2([IntegerEntry(bI(bJ, dc), dw), IntegerEntry(dz, height), IntegerEntry(dx, dC)], dC)
542+ let dv = valueOrElse(getInteger(this, bK(bJ, dc)), 0)
543+ let dw = valueOrElse(getInteger(this, bL(bJ, dc)), dd)
544+ let dx = (height - dw)
545+ let dy = ((dx * ds) + dv)
546+ dy
550547 }
551548
552549
553-func dD (bJ,bR,dE) = {
554- let dF = da()
555- let dc = dF._1
556- let dd = dF._2
550+func dz (bJ,dA) = {
551+ let dB = da()
552+ let dc = dB._1
553+ let dd = dB._2
554+ let ds = dp(bJ)
555+ let dC = (ds + dA)
556+ let dy = dt(bJ)
557+[IntegerEntry(bI(bJ, dc), dC), IntegerEntry(bL(bJ, dc), height), IntegerEntry(bK(bJ, dc), dy)]
558+ }
559+
560+
561+func dD (bJ,bR) = {
562+ let dE = da()
563+ let dc = dE._1
564+ let dd = dE._2
557565 let aS = addressFromStringValue(bR)
558- let df = 4
559- let dg = 5
560- let dh = {
561- let ca = invoke(bS, "getPoolConfigByLpAssetIdREADONLY", [bJ], nil)
562- if ($isInstanceOf(ca, "List[Any]"))
563- then ca
564- else throw(($getType(ca) + " couldn't be cast to List[Any]"))
565- }
566- let bD = {
567- let ca = dh[df]
568- if ($isInstanceOf(ca, "String"))
569- then ca
570- else throw(($getType(ca) + " couldn't be cast to String"))
571- }
572- let bE = {
573- let ca = dh[dg]
574- if ($isInstanceOf(ca, "String"))
575- then ca
576- else throw(($getType(ca) + " couldn't be cast to String"))
577- }
578- let dm = valueOrElse(getInteger(bY, bC(bD, bE, aS, dc)), 0)
579- let dG = if ((dm == 0))
566+ let dF = dn(bJ, bR)
567+ let dG = valueOrElse(getInteger(this, bN(bJ, aS, dc)), 0)
568+ let dH = valueOrElse(getInteger(this, bO(bJ, aS, dc)), dd)
569+ let dI = (height - dH)
570+ let dJ = ((dI * dF) + dG)
571+ dJ
572+ }
573+
574+
575+func dK (bJ,bR,dL) = {
576+ let dM = da()
577+ let dc = dM._1
578+ let dd = dM._2
579+ let aS = addressFromStringValue(bR)
580+ let dN = di(bJ, bR)
581+ let dO = if ((dN == 0))
580582 then nil
581583 else {
582- let du = if (dE)
583- then dm
584- else -(dm)
585- let dH = dt(bJ, du)
586- let dI = dH._1
587- let dC = dH._2
588- let dJ = if (dE)
589- then 0
590- else dm
591- let dK = bN(bJ, aS, dc)
592- let dL = valueOrElse(getInteger(this, dK), 0)
593- let dM = bO(bJ, aS, dc)
594- let dN = valueOrElse(getInteger(this, dM), dd)
595- let dO = (height - dN)
596- let dP = ((dO * dJ) + dL)
597- let dQ = [IntegerEntry(dM, height), IntegerEntry(dK, dP)]
598- (dI ++ dQ)
584+ let dA = if (dL)
585+ then dN
586+ else -(dN)
587+ let dP = dz(bJ, dA)
588+ let dJ = dD(bJ, bR)
589+ let dQ = [IntegerEntry(bO(bJ, aS, dc), height), IntegerEntry(bN(bJ, aS, dc), dJ)]
590+ (dP ++ dQ)
599591 }
600- dG
592+ dO
601593 }
602594
603595
606598 let dc = dS._1
607599 let dd = dS._2
608600 let aS = addressFromStringValue(bR)
609- let dJ = dn(bJ, bR)
601+ let dF = dn(bJ, bR)
610602 let ds = dp(bJ)
611- let dL = valueOrElse(getInteger(this, bN(bJ, aS, dc)), 0)
612- let dy = valueOrElse(getInteger(this, bK(bJ, dc)), 0)
613- let dN = valueOrElse(getInteger(this, bO(bJ, aS, dc)), dd)
614- let dA = valueOrElse(getInteger(this, bL(bJ, dc)), dd)
615- let dK = bP(bJ, aS, dc)
616- let dT = valueOrElse(getInteger(this, dK), 0)
617- let dx = bM(bJ, aS, dc)
618- let dU = valueOrElse(getInteger(this, dx), 0)
619- let dO = (height - dN)
620- let dB = (height - dA)
621- let dP = ((dO * dJ) + dL)
622- let dC = ((dB * ds) + dy)
623- let dV = (dP - dT)
624- let dW = (dC - dU)
625- $Tuple3([IntegerEntry(dK, dP), IntegerEntry(dx, dC)], dV, dW)
603+ let dG = valueOrElse(getInteger(this, bN(bJ, aS, dc)), 0)
604+ let dv = valueOrElse(getInteger(this, bK(bJ, dc)), 0)
605+ let dH = valueOrElse(getInteger(this, bO(bJ, aS, dc)), dd)
606+ let dw = valueOrElse(getInteger(this, bL(bJ, dc)), dd)
607+ let dT = bP(bJ, aS, dc)
608+ let dU = valueOrElse(getInteger(this, dT), 0)
609+ let dV = bM(bJ, aS, dc)
610+ let dW = valueOrElse(getInteger(this, dV), 0)
611+ let dI = (height - dH)
612+ let dx = (height - dw)
613+ let dJ = ((dI * dF) + dG)
614+ let dy = ((dx * ds) + dv)
615+ let dX = (dJ - dU)
616+ let dY = (dy - dW)
617+ $Tuple3([IntegerEntry(dT, dJ), IntegerEntry(dV, dy)], dX, dY)
626618 }
627619
628620
629-func dX () = {
630- let dY = n(bT, ah())
631- let dZ = getInteger(bT, ak())
632- let ea = getInteger(this, al())
633- let eb = n(bT, an())
634- let cH = if ((height > eb))
635- then eb
621+func dZ () = {
622+ let ea = n(bT, ah())
623+ let eb = getInteger(bT, ak())
624+ let ec = getInteger(this, al())
625+ let ed = n(bT, an())
626+ let cH = if ((height > ed))
627+ then ed
636628 else height
637- let ec = {
638- let r = dZ
629+ let ee = {
630+ let r = eb
639631 if ($isInstanceOf(r, "Int"))
640632 then {
641- let ed = r
642- max([(cH - ed), 0])
633+ let ef = r
634+ max([(cH - ef), 0])
643635 }
644636 else if ($isInstanceOf(r, "Unit"))
645637 then 0
646638 else throw("Match error")
647639 }
648- let ee = ((dY * (bZ - 1)) / bZ)
649- let ef = valueOrElse(ea, 0)
650- let eg = ((ee * ec) + ef)
651- $Tuple2([IntegerEntry(al(), eg), IntegerEntry(ak(), height)], eg)
640+ let eg = ((ea * (bZ - 1)) / bZ)
641+ let eh = valueOrElse(ec, 0)
642+ let ei = ((eg * ee) + eh)
643+ $Tuple2([IntegerEntry(al(), ei), IntegerEntry(ak(), height)], ei)
652644 }
653645
654646
655-func eh (bJ,bR,ei) = {
656- let ej = getString(this, aR(bR))
657- if ((ej == unit))
647+func ej (bJ,bR,ek) = {
648+ let el = getString(this, aR(bR))
649+ if ((el == unit))
658650 then $Tuple3(0, nil, "userRecord::is::empty")
659651 else {
660- let ek = split(value(ej), a)
661- let el = ek[aL]
662- let em = "empty"
663- let en = if ((bJ != em))
652+ let em = split(value(el), a)
653+ let en = em[aL]
654+ let eo = "empty"
655+ let ep = if ((bJ != eo))
664656 then {
665- let eo = valueOrErrorMessage(getString(bS, N(bJ)), ("unsupported lp asset " + bJ))
666- getIntegerValue(bS, R(eo))
657+ let eq = valueOrErrorMessage(getString(bS, N(bJ)), ("unsupported lp asset " + bJ))
658+ getIntegerValue(bS, R(eq))
667659 }
668- else if (ei)
660+ else if (ek)
669661 then 0
670662 else throw(("not readonly mode: unsupported lp asset " + bJ))
671- let ep = bu(el, bJ)
672- let eq = bt(el)
673- let er = valueOrElse(getInteger(this, ep), k(this, eq))
674- let eg = dX()._2
675- let es = (eg - er)
676- if ((0 > es))
663+ let er = bu(en, bJ)
664+ let es = bt(en)
665+ let et = valueOrElse(getInteger(this, er), k(this, es))
666+ let ei = dZ()._2
667+ let eu = (ei - et)
668+ if ((0 > eu))
677669 then throw("wrong calculations")
678670 else {
679- let et = dR(bJ, bR)
680- let eu = et._1
681- let ev = et._2
682- let ew = et._3
683- let ex = fraction(es, en, d)
684- let ey = if ((ew == 0))
671+ let ev = dR(bJ, bR)
672+ let ew = ev._1
673+ let ex = ev._2
674+ let ey = ev._3
675+ let ez = fraction(eu, ep, d)
676+ let eA = if ((ey == 0))
685677 then 0
686- else fraction(ex, ev, ew)
687- let ez = ([IntegerEntry(ep, eg)] ++ eu)
688- let eA = makeString([toString(er), toString(es), toString(en), toString(ev), toString(ew)], ":")
689- $Tuple3(ey, ez, eA)
678+ else fraction(ez, ex, ey)
679+ let eB = ([IntegerEntry(er, ei)] ++ ew)
680+ let eC = makeString([toString(et), toString(eu), toString(ep), toString(ex), toString(ey)], ":")
681+ $Tuple3(eA, eB, eC)
690682 }
691683 }
692684 }
693685
694686
695-func eB (aI,aY) = {
696- let eC = aw()
697- let eD = eC[aq]
698- let az = fromBase58String(eD)
699- let aA = parseIntValue(eC[ar])
700- let aB = parseIntValue(eC[as])
701- let aC = parseIntValue(eC[at])
687+func eD (aI,aY) = {
688+ let eE = aw()
689+ let eF = eE[aq]
690+ let az = fromBase58String(eF)
691+ let aA = parseIntValue(eE[ar])
692+ let aB = parseIntValue(eE[as])
693+ let aC = parseIntValue(eE[at])
702694 if ((size(aI.payments) != 1))
703695 then throw("invalid payment - exact one payment must be attached")
704696 else {
705697 let cT = aI.payments[0]
706- let eE = cT.amount
698+ let eG = cT.amount
707699 if ((az != value(cT.assetId)))
708- then throw((("invalid asset is in payment - " + eD) + " is expected"))
700+ then throw((("invalid asset is in payment - " + eF) + " is expected"))
709701 else {
710- let eF = be()
702+ let eH = be()
711703 let bR = toString(aI.caller)
712- let eG = isDefined(getString(bf(bR)))
713- let el = if (eG)
704+ let eI = isDefined(getString(bf(bR)))
705+ let en = if (eI)
714706 then value(getString(bf(bR)))
715- else toString(n(this, eF))
716- let aV = parseIntValue(el)
707+ else toString(n(this, eH))
708+ let aV = parseIntValue(en)
717709 let cm = height
718- let cL = bi(el)
719- let cM = bj(el)
720- let cK = bh(el)
721- if (if ((aA > eE))
710+ let cL = bi(en)
711+ let cM = bj(en)
712+ let cK = bh(en)
713+ if (if ((aA > eG))
722714 then (aI.caller != bW)
723715 else false)
724716 then throw(("amount is less then minLockAmount=" + toString(aA)))
726718 then throw(("passed duration is less then minLockDuration=" + toString(aB)))
727719 else if ((aY > aC))
728720 then throw(("passed duration is greater then maxLockDuration=" + toString(aC)))
729- else if (if (eG)
721+ else if (if (eI)
730722 then ((n(this, cL) + n(this, cM)) >= cm)
731723 else false)
732724 then throw("there is an active lock - consider to use increaseLock")
733725 else if ((k(this, cK) > 0))
734726 then throw(("there are locked WXs - consider to use increaseLock " + cK))
735727 else {
736- let eH = fraction(aY, c, aC)
737- let eI = fraction(eE, eH, c)
738- let eJ = q(invoke(ax, "calcGwxParamsREADONLY", [eI, cm, aY], nil))
739- let cn = t(eJ[0])
740- let co = t(eJ[1])
741- let bn = toString(t(eJ[2]))
728+ let eJ = fraction(aY, c, aC)
729+ let eK = fraction(eG, eJ, c)
730+ let eL = q(invoke(ax, "calcGwxParamsREADONLY", [eK, cm, aY], nil))
731+ let cn = t(eL[0])
732+ let co = t(eL[1])
733+ let bn = toString(t(eL[2]))
742734 let cg = cb(false)
743- let eq = bt(el)
744- let eg = dX()._2
745- let eK = if (eG)
735+ let es = bt(en)
736+ let ei = dZ()._2
737+ let eM = if (eI)
746738 then nil
747- else [IntegerEntry(eF, (aV + 1)), StringEntry(bf(bR), el), StringEntry(bg(el), bR)]
748- $Tuple2(((((eK ++ cJ(bR, el, eE, cm, aY, cn, co, bn)) ++ cr(eE, aY, 1, if (eG)
739+ else [IntegerEntry(eH, (aV + 1)), StringEntry(bf(bR), en), StringEntry(bg(en), bR)]
740+ $Tuple2(((((eM ++ cJ(bR, en, eG, cm, aY, cn, co, bn)) ++ cr(eG, aY, 1, if (eI)
749741 then 0
750- else 1)) :+ cj("lock", bR, eE, cm, aY, cn, co, aI)) ++ [IntegerEntry(eq, eg), IntegerEntry(bA(), (cg + eI))]), eI)
742+ else 1)) :+ cj("lock", bR, eG, cm, aY, cn, co, aI)) ++ [IntegerEntry(es, ei), IntegerEntry(bA(), (cg + eK))]), eK)
751743 }
752744 }
753745 }
755747
756748
757749 @Callable(aI)
758-func constructor (eL,eM,aA,eN,eO,ax) = {
759- let eP = aH(aI)
760- if ((eP == eP))
761- then ([IntegerEntry(be(), 0), StringEntry(av(), aD(eM, aA, eN, eO, ax)), StringEntry(A(), eL)] ++ cr(0, 0, 0, 0))
750+func constructor (eN,eO,aA,eP,eQ,ax) = {
751+ let eR = aH(aI)
752+ if ((eR == eR))
753+ then ([IntegerEntry(be(), 0), StringEntry(av(), aD(eO, aA, eP, eQ, ax)), StringEntry(A(), eN)] ++ cr(0, 0, 0, 0))
762754 else throw("Strict value is not equal to itself.")
763755 }
764756
765757
766758
767759 @Callable(aI)
768-func lockRef (aY,eQ,eR) = {
769- let eS = eB(aI, aY)
770- let eT = eS._1
771- let eI = eS._2
772- let eU = toString(aI.caller)
773- let eV = if (if ((eQ == ""))
760+func lockRef (aY,eS,eT) = {
761+ let eU = eD(aI, aY)
762+ let eV = eU._1
763+ let eK = eU._2
764+ let eW = toString(aI.caller)
765+ let eX = if (if ((eS == ""))
774766 then true
775- else (eR == base58''))
767+ else (eT == base58''))
776768 then unit
777- else invoke(w, "createPair", [z, eQ, eU, eR], nil)
778- if ((eV == eV))
769+ else invoke(w, "createPair", [z, eS, eW, eT], nil)
770+ if ((eX == eX))
779771 then {
780- let eW = invoke(ax, "updateReferralActivity", [toString(aI.caller), eI], nil)
781- if ((eW == eW))
782- then $Tuple2(eT, unit)
772+ let eY = invoke(ax, "updateReferralActivity", [toString(aI.caller), eK], nil)
773+ if ((eY == eY))
774+ then $Tuple2(eV, unit)
783775 else throw("Strict value is not equal to itself.")
784776 }
785777 else throw("Strict value is not equal to itself.")
789781
790782 @Callable(aI)
791783 func lock (aY) = {
792- let eX = eB(aI, aY)
793- let eT = eX._1
794- let eI = eX._2
795- let eW = invoke(ax, "updateReferralActivity", [toString(aI.caller), eI], nil)
796- if ((eW == eW))
797- then $Tuple2(eT, unit)
784+ let eZ = eD(aI, aY)
785+ let eV = eZ._1
786+ let eK = eZ._2
787+ let eY = invoke(ax, "updateReferralActivity", [toString(aI.caller), eK], nil)
788+ if ((eY == eY))
789+ then $Tuple2(eV, unit)
798790 else throw("Strict value is not equal to itself.")
799791 }
800792
801793
802794
803795 @Callable(aI)
804-func increaseLock (eY) = {
805- let eC = aw()
806- let eD = eC[aq]
807- let az = fromBase58String(eD)
808- let aB = parseIntValue(eC[as])
809- let aC = parseIntValue(eC[at])
810- let eE = cR(aI, az)
796+func increaseLock (fa) = {
797+ let eE = aw()
798+ let eF = eE[aq]
799+ let az = fromBase58String(eF)
800+ let aB = parseIntValue(eE[as])
801+ let aC = parseIntValue(eE[at])
802+ let eG = cR(aI, az)
811803 let bR = toString(aI.caller)
812- let ek = aT(bR)
813- let el = ek[aL]
814- let eZ = parseIntValue(ek[aM])
815- let cm = parseIntValue(ek[aN])
816- let fa = parseIntValue(ek[aO])
817- let fb = (cm + fa)
818- let fc = max([(fb - height), 0])
819- let fd = (eZ + eE)
820- let fe = (fc + eY)
821- if ((0 > eY))
804+ let em = aT(bR)
805+ let en = em[aL]
806+ let fb = parseIntValue(em[aM])
807+ let cm = parseIntValue(em[aN])
808+ let fc = parseIntValue(em[aO])
809+ let fd = (cm + fc)
810+ let fe = max([(fd - height), 0])
811+ let ff = (fb + eG)
812+ let fg = (fe + fa)
813+ if ((0 > fa))
822814 then throw("duration is less then zero")
823- else if ((aB > fe))
815+ else if ((aB > fg))
824816 then throw(("lockDurationNew is less then minLockDuration=" + toString(aB)))
825- else if ((fe > aC))
817+ else if ((fg > aC))
826818 then throw(("deltaDuration + existedLockDuration is greater then maxLockDuration=" + toString(aC)))
827819 else {
828- let eH = fraction(fe, c, aC)
829- let eI = fraction(fd, eH, c)
830- let eW = invoke(ax, "updateReferralActivity", [toString(aI.caller), eI], nil)
831- if ((eW == eW))
820+ let eJ = fraction(fg, c, aC)
821+ let eK = fraction(ff, eJ, c)
822+ let eY = invoke(ax, "updateReferralActivity", [toString(aI.caller), eK], nil)
823+ if ((eY == eY))
832824 then {
833- let ff = height
834- let eJ = q(invoke(ax, "calcGwxParamsREADONLY", [eI, ff, fe], nil))
835- let cn = t(eJ[0])
836- let co = t(eJ[1])
837- let bn = toString(t(eJ[2]))
838- let fg = cZ(bR)
839- let fh = (eI - fg)
840- if ((0 > fh))
841- then throw(("gwxDiff is less then 0: " + toString(fh)))
825+ let fh = height
826+ let eL = q(invoke(ax, "calcGwxParamsREADONLY", [eK, fh, fg], nil))
827+ let cn = t(eL[0])
828+ let co = t(eL[1])
829+ let bn = toString(t(eL[2]))
830+ let fi = cZ(bR)
831+ let fj = (eK - fi)
832+ if ((0 > fj))
833+ then throw(("gwxDiff is less then 0: " + toString(fj)))
842834 else {
843835 let cg = cb(false)
844- let fi = cb(true)
845- (((cJ(bR, el, fd, ff, fe, cn, co, bn) ++ cr(eE, eY, 0, 0)) :+ cj("lock", bR, eE, cm, fe, cn, co, aI)) ++ [IntegerEntry(bA(), (cg + fh))])
836+ let fk = cb(true)
837+ (((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))])
846838 }
847839 }
848840 else throw("Strict value is not equal to itself.")
855847 func claimWxBoost (bJ,bR) = if ((bU != aI.caller))
856848 then throw("permissions denied")
857849 else {
858- let fj = eh(bJ, bR, false)
859- let fk = fj._1
860- let ez = fj._2
861- let eA = fj._3
862- $Tuple2(ez, [fk])
850+ let fl = ej(bJ, bR, false)
851+ let fm = fl._1
852+ let eB = fl._2
853+ let eC = fl._3
854+ $Tuple2(eB, [fm])
863855 }
864856
865857
866858
867859 @Callable(aI)
868860 func claimWxBoostREADONLY (bJ,bR) = {
869- let fl = eh(bJ, bR, true)
870- let fk = fl._1
871- let ez = fl._2
872- let eA = fl._3
873- $Tuple2(nil, [fk, eA])
861+ let fn = ej(bJ, bR, true)
862+ let fm = fn._1
863+ let eB = fn._2
864+ let eC = fn._3
865+ $Tuple2(nil, [fm, eC])
874866 }
875867
876868
877869
878870 @Callable(aI)
879871 func unlock (aS) = {
880- let ek = aT(aS)
881- let el = ek[aL]
882- let eZ = parseIntValue(ek[aM])
883- let cm = parseIntValue(ek[aN])
884- let fa = parseIntValue(ek[aO])
885- let fb = (cm + fa)
886- let eC = aw()
887- let az = fromBase58String(eC[aq])
888- if ((fb >= height))
889- then throw((("wait " + toString(fb)) + " to unlock"))
890- else if ((0 >= eZ))
872+ let em = aT(aS)
873+ let en = em[aL]
874+ let fb = parseIntValue(em[aM])
875+ let cm = parseIntValue(em[aN])
876+ let fc = parseIntValue(em[aO])
877+ let fd = (cm + fc)
878+ let eE = aw()
879+ let az = fromBase58String(eE[aq])
880+ if ((fd >= height))
881+ then throw((("wait " + toString(fd)) + " to unlock"))
882+ else if ((0 >= fb))
891883 then throw("nothing to unlock")
892884 else {
893885 let bn = valueOrElse(getInteger(ax, ao()), 0)
894- (((cJ(aS, el, 0, cm, fa, 0, 0, toString(bn)) ++ cr(-(eZ), 0, 0, -1)) :+ cj("unlock", aS, eZ, cm, fa, 0, 0, aI)) :+ ScriptTransfer(addressFromStringValue(aS), eZ, az))
886+ (((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, az))
895887 }
896888 }
897889
907899
908900 @Callable(aI)
909901 func userMaxDurationREADONLY (bR) = {
910- let eC = aw()
911- let aC = parseIntValue(eC[at])
912- let ej = getString(this, aR(bR))
913- if ((ej == unit))
902+ let eE = aw()
903+ let aC = parseIntValue(eE[at])
904+ let el = getString(this, aR(bR))
905+ if ((el == unit))
914906 then $Tuple2(nil, $Tuple2("lock", aC))
915907 else {
916- let ek = split(value(ej), a)
917- let cm = parseIntValue(ek[aN])
918- let fa = parseIntValue(ek[aO])
919- let fb = (cm + fa)
920- let fc = max([(fb - height), 0])
921- let fm = (aC - fc)
922- $Tuple2(nil, $Tuple2("increaseLock", fm))
908+ let em = split(value(el), a)
909+ let cm = parseIntValue(em[aN])
910+ let fc = parseIntValue(em[aO])
911+ let fd = (cm + fc)
912+ let fe = max([(fd - height), 0])
913+ let fo = (aC - fe)
914+ $Tuple2(nil, $Tuple2("increaseLock", fo))
923915 }
924916 }
925917
940932
941933 @Callable(aI)
942934 func onBoostEmissionUpdate () = {
943- let eP = if ((aI.caller == bT))
935+ let eR = if ((aI.caller == bT))
944936 then true
945937 else aH(aI)
946- if ((eP == eP))
947- then dX()
938+ if ((eR == eR))
939+ then dZ()
948940 else throw("Strict value is not equal to itself.")
949941 }
950942
951943
952944
953945 @Callable(aI)
954-func onStakedVoteUpdate (bJ,bR,dE) = {
955- let eP = if ((aI.caller == bU))
946+func onStakedVoteUpdate (bJ,bR,dL) = {
947+ let eR = if ((aI.caller == bU))
956948 then true
957949 else aH(aI)
958- if ((eP == eP))
950+ if ((eR == eR))
959951 then {
960- let dG = dD(bJ, bR, dE)
961- $Tuple2(dG, unit)
952+ let dO = dK(bJ, bR, dL)
953+ $Tuple2(dO, unit)
962954 }
963955 else throw("Strict value is not equal to itself.")
964956 }
971963
972964
973965 @Callable(aI)
966+func getVotingResultStakedIntegralREADONLY (bJ) = $Tuple2(nil, dt(bJ))
967+
968+
969+
970+@Callable(aI)
974971 func getUserVoteFinalizedREADONLY (bJ,bR) = $Tuple2(nil, di(bJ, bR))
975972
976973
977974
978975 @Callable(aI)
979-func setManager (fn) = {
980- let eP = aH(aI)
981- if ((eP == eP))
976+func getUserVoteStakedIntegralREADONLY (bJ,bR) = $Tuple2(nil, dD(bJ, bR))
977+
978+
979+
980+@Callable(aI)
981+func setManager (fp) = {
982+ let eR = aH(aI)
983+ if ((eR == eR))
982984 then {
983- let fo = fromBase58String(fn)
984- if ((fo == fo))
985- then [StringEntry(ag(), fn)]
985+ let fq = fromBase58String(fp)
986+ if ((fq == fq))
987+ then [StringEntry(ag(), fp)]
986988 else throw("Strict value is not equal to itself.")
987989 }
988990 else throw("Strict value is not equal to itself.")
992994
993995 @Callable(aI)
994996 func confirmManager () = {
995- let fp = aG()
996- let fq = if (isDefined(fp))
997+ let fr = aG()
998+ let fs = if (isDefined(fr))
997999 then true
9981000 else throw("No pending manager")
999- if ((fq == fq))
1001+ if ((fs == fs))
10001002 then {
1001- let fr = if ((aI.callerPublicKey == value(fp)))
1003+ let ft = if ((aI.callerPublicKey == value(fr)))
10021004 then true
10031005 else throw("You are not pending manager")
1004- if ((fr == fr))
1005- then [StringEntry(af(), toBase58String(value(fp))), DeleteEntry(ag())]
1006+ if ((ft == ft))
1007+ then [StringEntry(af(), toBase58String(value(fr))), DeleteEntry(ag())]
10061008 else throw("Strict value is not equal to itself.")
10071009 }
10081010 else throw("Strict value is not equal to itself.")
10091011 }
10101012
10111013
1012-@Verifier(fs)
1013-func ft () = {
1014- let fu = {
1014+@Verifier(fu)
1015+func fv () = {
1016+ let fw = {
10151017 let r = aE()
10161018 if ($isInstanceOf(r, "ByteVector"))
10171019 then {
10191021 aK
10201022 }
10211023 else if ($isInstanceOf(r, "Unit"))
1022- then fs.senderPublicKey
1024+ then fu.senderPublicKey
10231025 else throw("Match error")
10241026 }
1025- sigVerify(fs.bodyBytes, fs.proofs[0], fu)
1027+ sigVerify(fu.bodyBytes, fu.proofs[0], fw)
10261028 }
10271029
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), (("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), (("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 throw("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 throw("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 (O) = makeString(["%s%s%s", O, "mappings__lpAsset2PoolContract"], a)
9797
9898
9999 func P () = "%s__lpTokensList"
100100
101101
102102 func Q (O) = makeString(["%s%s%s", O, "mappings__lpAsset2PoolContract"], a)
103103
104104
105105 func R (S) = makeString(["%s%s", "poolWeight", S], a)
106106
107107
108108 func T (U,V) = ((("%s%s__poolWeight__" + U) + "__") + toString(V))
109109
110110
111111 func W () = addressFromStringValue(h(this, A()))
112112
113113
114114 func X () = split(valueOrElse(getString(W(), P()), ""), a)
115115
116116
117117 func Y (Z) = split(h(Z, M()), a)
118118
119119
120120 func aa (ab) = addressFromStringValue(ab[C])
121121
122122
123123 func ac (ab) = addressFromStringValue(ab[F])
124124
125125
126126 func ad (ab) = addressFromStringValue(ab[B])
127127
128128
129129 func ae (ab) = addressFromStringValue(ab[K])
130130
131131
132132 func af () = "%s__managerPublicKey"
133133
134134
135135 func ag () = "%s__pendingManagerPublicKey"
136136
137137
138138 func ah () = "%s%s__ratePerBlock__current"
139139
140140
141141 func ai () = "%s%s__ratePerBlockMax__current"
142142
143143
144144 func aj () = "%s%s__emission__startBlock"
145145
146146
147147 func ak () = "%s%s__boostingV2__startBlock"
148148
149149
150150 func al () = "%s%s__boostingV2__integral"
151151
152152
153153 func am () = "%s%s__emission__duration"
154154
155155
156156 func an () = "%s%s__emission__endBlock"
157157
158158
159159 func ao () = "%s__nextPeriod"
160160
161161
162162 func ap () = "%s%s__gwxRewardEmissionPart__startHeight"
163163
164164
165165 let aq = 1
166166
167167 let ar = 2
168168
169169 let as = 3
170170
171171 let at = 4
172172
173173 let au = 5
174174
175175 func av () = "%s__config"
176176
177177
178178 func aw () = split(h(this, av()), a)
179179
180180
181181 let ax = addressFromStringValue(aw()[au])
182182
183183 func ay (az,aA,aB,aC,ax) = makeString(["%s%d%d%d", az, aA, aB, aC, ax], a)
184184
185185
186186 func aD (az,aA,aB,aC,ax) = ay(az, toString(aA), toString(aB), toString(aC), ax)
187187
188188
189189 func aE () = {
190190 let r = getString(af())
191191 if ($isInstanceOf(r, "String"))
192192 then {
193193 let aF = r
194194 fromBase58String(aF)
195195 }
196196 else if ($isInstanceOf(r, "Unit"))
197197 then unit
198198 else throw("Match error")
199199 }
200200
201201
202202 func aG () = {
203203 let r = getString(ag())
204204 if ($isInstanceOf(r, "String"))
205205 then {
206206 let aF = r
207207 fromBase58String(aF)
208208 }
209209 else if ($isInstanceOf(r, "Unit"))
210210 then unit
211211 else throw("Match error")
212212 }
213213
214214
215215 func aH (aI) = {
216216 let aJ = throw("Permission denied")
217217 let r = aE()
218218 if ($isInstanceOf(r, "ByteVector"))
219219 then {
220220 let aK = r
221221 if ((aI.callerPublicKey == aK))
222222 then true
223223 else aJ
224224 }
225225 else if ($isInstanceOf(r, "Unit"))
226226 then if ((aI.caller == this))
227227 then true
228228 else aJ
229229 else throw("Match error")
230230 }
231231
232232
233233 let aL = 1
234234
235235 let aM = 2
236236
237237 let aN = 3
238238
239239 let aO = 4
240240
241241 let aP = 5
242242
243243 let aQ = 6
244244
245245 func aR (aS) = makeString(["%s%s__lock", aS], a)
246246
247247
248248 func aT (aS) = split(h(this, aR(aS)), a)
249249
250250
251251 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)
252252
253253
254254 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))
255255
256256
257257 func be () = "%s__nextUserNum"
258258
259259
260260 func bf (aS) = makeString(["%s%s%s__mapping__user2num", aS], a)
261261
262262
263263 func bg (V) = makeString(["%s%s%s__mapping__num2user", V], a)
264264
265265
266266 func bh (aV) = makeString(["%s%d%s__paramByUserNum", aV, "amount"], a)
267267
268268
269269 func bi (aV) = makeString(["%s%d%s__paramByUserNum", aV, "start"], a)
270270
271271
272272 func bj (aV) = makeString(["%s%d%s__paramByUserNum", aV, "duration"], a)
273273
274274
275275 func bk (aV) = makeString(["%s%d%s__paramByUserNum", aV, "k"], a)
276276
277277
278278 func bl (aV) = makeString(["%s%d%s__paramByUserNum", aV, "b"], a)
279279
280280
281281 func bm (aV,bn) = makeString(["%s%d%s%d__paramByPeriod", aV, "k", bn], a)
282282
283283
284284 func bo (aV,bn) = makeString(["%s%d%s%d__paramByPeriod", aV, "b", bn], a)
285285
286286
287287 func bp () = "%s%s__stats__activeTotalLocked"
288288
289289
290290 func bq () = "%s%s__stats__locksDurationSumInBlocks"
291291
292292
293293 func br () = "%s%s__stats__locksCount"
294294
295295
296296 func bs () = "%s%s__stats__activeUsersCount"
297297
298298
299299 func bt (aV) = makeString(["%s%d__userBoostEmissionLastIntV2", aV], a)
300300
301301
302302 func bu (aV,bv) = makeString(["%s%d__userBoostEmissionLastIntV2", aV, bv], a)
303303
304304
305305 func bw (aV) = makeString(["%s%d__maxBoostInt", aV], a)
306306
307307
308308 func bx () = "%s%s__maxBoostInt__total"
309309
310310
311311 func by (aV) = makeString(["%s%d__userBoostAvaliableToClaimTotal", aV], a)
312312
313313
314314 func bz (aV) = makeString(["%s%d__userBoostClaimed", aV], a)
315315
316316
317317 func bA () = "%s%s__gwxCached__total"
318318
319319
320320 func bB () = "%s__gwxCachedTotalCorrective"
321321
322322
323323 func bC (bD,bE,i,bF) = makeString(["%s%s%s%s%d", "vote", bD, bE, toString(i), toString(bF)], a)
324324
325325
326326 func bG (bF) = makeString(["%s%d", "startHeight", toString(bF)], a)
327327
328328
329329 func bH () = makeString(["%s", "currentEpochUi"], a)
330330
331331
332332 func bI (bJ,bF) = makeString(["%s%s%d", "votingResultStaked", bJ, toString(bF)], a)
333333
334334
335335 func bK (bJ,bF) = makeString(["%s%s%d", "votingResultStakedIntegral", bJ, toString(bF)], a)
336336
337337
338338 func bL (bJ,bF) = makeString(["%s%s%d", "votingResultStakedIntegralLastUpdateHeight", bJ, toString(bF)], a)
339339
340340
341341 func bM (bJ,i,bF) = makeString(["%s%s%s%d", "votingResultStakedIntegralLast", bJ, toString(i), toString(bF)], a)
342342
343343
344344 func bN (bJ,i,bF) = makeString(["%s%s%s%d", "voteStakedIntegral", bJ, toString(i), toString(bF)], a)
345345
346346
347347 func bO (bJ,i,bF) = makeString(["%s%s%s%d", "voteStakedIntegralLastUpdateHeight", bJ, toString(i), toString(bF)], a)
348348
349349
350350 func bP (bJ,i,bF) = makeString(["%s%s%s%d", "voteStakedIntegralLast", bJ, toString(i), toString(bF)], a)
351351
352352
353353 func bQ (bR,bJ) = makeString(["%s%s%s", "staked", bR, bJ], a)
354354
355355
356356 let bS = W()
357357
358358 let ab = Y(bS)
359359
360360 let bT = ac(ab)
361361
362362 let bU = ad(ab)
363363
364364 let bV = ae(ab)
365365
366366 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"))
367367
368368 let bX = makeString(["%s", "votingEmissionContract"], a)
369369
370370 let bY = addressFromStringValue(getStringValue(bS, bX))
371371
372372 let bZ = {
373373 let ca = invoke(bT, "getBoostCoeffREADONLY", nil, nil)
374374 if ($isInstanceOf(ca, "Int"))
375375 then ca
376376 else throw(($getType(ca) + " couldn't be cast to Int"))
377377 }
378378
379379 func cb (cc) = {
380380 let cd = getIntegerValue(bY, bH())
381381 let ce = makeString(["%s%s", "totalCachedGwxCorrection__activationEpoch"], a)
382382 let cf = getInteger(this, ce)
383383 let cg = valueOrElse(getInteger(this, bA()), 0)
384384 let ch = if (isDefined(cf))
385385 then (cd >= value(cf))
386386 else false
387387 let ci = if (if (ch)
388388 then cc
389389 else false)
390390 then valueOrElse(getInteger(this, bB()), 0)
391391 else 0
392392 max([0, (cg + ci)])
393393 }
394394
395395
396396 func cj (ck,cl,aW,cm,aY,cn,co,aI) = {
397397 let cp = makeString(["%s%s%s%s__history", ck, cl, toBase58String(aI.transactionId)], a)
398398 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)
399399 StringEntry(cp, cq)
400400 }
401401
402402
403403 func cr (cs,ct,cu,cv) = {
404404 let cw = bq()
405405 let cx = br()
406406 let cy = bs()
407407 let cz = bp()
408408 let cA = k(this, cw)
409409 let cB = k(this, cx)
410410 let cC = k(this, cy)
411411 let cD = k(this, cz)
412412 [IntegerEntry(cw, (cA + ct)), IntegerEntry(cx, (cB + cu)), IntegerEntry(cy, (cC + cv)), IntegerEntry(cz, (cD + cs))]
413413 }
414414
415415
416416 func cE (cF,cG,cH) = {
417417 let cI = 1000
418418 (((cF * cH) + cG) / cI)
419419 }
420420
421421
422422 func cJ (aS,aV,aW,aX,aY,cn,co,bn) = {
423423 let cK = bh(aV)
424424 let cL = bi(aV)
425425 let cM = bj(aV)
426426 let cN = bk(aV)
427427 let cO = bl(aV)
428428 let cP = bm(aV, bn)
429429 let cQ = bo(aV, bn)
430430 let bc = cE(cn, co, height)
431431 [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))]
432432 }
433433
434434
435435 func cR (aI,cS) = if ((size(aI.payments) > 1))
436436 then throw("only one payment is allowed")
437437 else if ((size(aI.payments) == 0))
438438 then 0
439439 else {
440440 let cT = aI.payments[0]
441441 if ((value(cT.assetId) != cS))
442442 then throw("invalid asset id in payment")
443443 else cT.amount
444444 }
445445
446446
447447 func cU (aS,cV) = {
448448 let cW = "empty"
449449 let cX = bf(aS)
450450 let aV = valueOrElse(getString(cX), cW)
451451 let cn = valueOrElse(getInteger(bk(aV)), 0)
452452 let co = valueOrElse(getInteger(bl(aV)), 0)
453453 let cY = cE(cn, co, cV)
454454 let bc = if ((0 > cY))
455455 then 0
456456 else cY
457457 bc
458458 }
459459
460460
461461 func cZ (aS) = cU(aS, height)
462462
463463
464464 func da () = {
465465 let db = {
466466 let cd = value(getInteger(bY, bH()))
467467 let dc = (cd - 1)
468468 if ((0 > dc))
469469 then g("invalid epoch")
470470 else $Tuple2(cd, dc)
471471 }
472472 let cd = db._1
473473 let dc = db._2
474474 let dd = value(getInteger(bY, bG(cd)))
475475 $Tuple2(dc, dd)
476476 }
477477
478478
479479 func de (bJ) = {
480480 let df = 4
481481 let dg = 5
482482 let dh = {
483483 let ca = invoke(bS, "getPoolConfigByLpAssetIdREADONLY", [bJ], nil)
484484 if ($isInstanceOf(ca, "List[Any]"))
485485 then ca
486486 else throw(($getType(ca) + " couldn't be cast to List[Any]"))
487487 }
488488 let bD = {
489489 let ca = dh[df]
490490 if ($isInstanceOf(ca, "String"))
491491 then ca
492492 else throw(($getType(ca) + " couldn't be cast to String"))
493493 }
494494 let bE = {
495495 let ca = dh[dg]
496496 if ($isInstanceOf(ca, "String"))
497497 then ca
498498 else throw(($getType(ca) + " couldn't be cast to String"))
499499 }
500500 $Tuple2(bD, bE)
501501 }
502502
503503
504504 func di (bJ,bR) = {
505505 let aS = addressFromStringValue(bR)
506506 let dj = da()
507507 let dc = dj._1
508508 let dd = dj._2
509509 let dk = de(bJ)
510510 let bD = dk._1
511511 let bE = dk._2
512512 let dl = bC(bD, bE, aS, dc)
513513 let dm = valueOrElse(getInteger(bY, dl), 0)
514514 dm
515515 }
516516
517517
518518 func dn (bJ,bR) = {
519519 let do = valueOrElse(getInteger(bU, bQ(bR, bJ)), 0)
520520 let dm = di(bJ, bR)
521521 if ((do == 0))
522522 then 0
523523 else dm
524524 }
525525
526526
527527 func dp (bJ) = {
528528 let dq = da()
529529 let dc = dq._1
530530 let dd = dq._2
531531 let dr = valueOrElse(getInteger(bY, bI(bJ, dc)), 0)
532532 let ds = valueOrElse(getInteger(this, bI(bJ, dc)), dr)
533533 ds
534534 }
535535
536536
537-func dt (bJ,du) = {
538- let dv = da()
539- let dc = dv._1
540- let dd = dv._2
537+func dt (bJ) = {
538+ let du = da()
539+ let dc = du._1
540+ let dd = du._2
541541 let ds = dp(bJ)
542- let dw = (ds + du)
543- let dx = bK(bJ, dc)
544- let dy = valueOrElse(getInteger(this, dx), 0)
545- let dz = bL(bJ, dc)
546- let dA = valueOrElse(getInteger(this, dz), dd)
547- let dB = (height - dA)
548- let dC = ((dB * ds) + dy)
549- $Tuple2([IntegerEntry(bI(bJ, dc), dw), IntegerEntry(dz, height), IntegerEntry(dx, dC)], dC)
542+ let dv = valueOrElse(getInteger(this, bK(bJ, dc)), 0)
543+ let dw = valueOrElse(getInteger(this, bL(bJ, dc)), dd)
544+ let dx = (height - dw)
545+ let dy = ((dx * ds) + dv)
546+ dy
550547 }
551548
552549
553-func dD (bJ,bR,dE) = {
554- let dF = da()
555- let dc = dF._1
556- let dd = dF._2
550+func dz (bJ,dA) = {
551+ let dB = da()
552+ let dc = dB._1
553+ let dd = dB._2
554+ let ds = dp(bJ)
555+ let dC = (ds + dA)
556+ let dy = dt(bJ)
557+[IntegerEntry(bI(bJ, dc), dC), IntegerEntry(bL(bJ, dc), height), IntegerEntry(bK(bJ, dc), dy)]
558+ }
559+
560+
561+func dD (bJ,bR) = {
562+ let dE = da()
563+ let dc = dE._1
564+ let dd = dE._2
557565 let aS = addressFromStringValue(bR)
558- let df = 4
559- let dg = 5
560- let dh = {
561- let ca = invoke(bS, "getPoolConfigByLpAssetIdREADONLY", [bJ], nil)
562- if ($isInstanceOf(ca, "List[Any]"))
563- then ca
564- else throw(($getType(ca) + " couldn't be cast to List[Any]"))
565- }
566- let bD = {
567- let ca = dh[df]
568- if ($isInstanceOf(ca, "String"))
569- then ca
570- else throw(($getType(ca) + " couldn't be cast to String"))
571- }
572- let bE = {
573- let ca = dh[dg]
574- if ($isInstanceOf(ca, "String"))
575- then ca
576- else throw(($getType(ca) + " couldn't be cast to String"))
577- }
578- let dm = valueOrElse(getInteger(bY, bC(bD, bE, aS, dc)), 0)
579- let dG = if ((dm == 0))
566+ let dF = dn(bJ, bR)
567+ let dG = valueOrElse(getInteger(this, bN(bJ, aS, dc)), 0)
568+ let dH = valueOrElse(getInteger(this, bO(bJ, aS, dc)), dd)
569+ let dI = (height - dH)
570+ let dJ = ((dI * dF) + dG)
571+ dJ
572+ }
573+
574+
575+func dK (bJ,bR,dL) = {
576+ let dM = da()
577+ let dc = dM._1
578+ let dd = dM._2
579+ let aS = addressFromStringValue(bR)
580+ let dN = di(bJ, bR)
581+ let dO = if ((dN == 0))
580582 then nil
581583 else {
582- let du = if (dE)
583- then dm
584- else -(dm)
585- let dH = dt(bJ, du)
586- let dI = dH._1
587- let dC = dH._2
588- let dJ = if (dE)
589- then 0
590- else dm
591- let dK = bN(bJ, aS, dc)
592- let dL = valueOrElse(getInteger(this, dK), 0)
593- let dM = bO(bJ, aS, dc)
594- let dN = valueOrElse(getInteger(this, dM), dd)
595- let dO = (height - dN)
596- let dP = ((dO * dJ) + dL)
597- let dQ = [IntegerEntry(dM, height), IntegerEntry(dK, dP)]
598- (dI ++ dQ)
584+ let dA = if (dL)
585+ then dN
586+ else -(dN)
587+ let dP = dz(bJ, dA)
588+ let dJ = dD(bJ, bR)
589+ let dQ = [IntegerEntry(bO(bJ, aS, dc), height), IntegerEntry(bN(bJ, aS, dc), dJ)]
590+ (dP ++ dQ)
599591 }
600- dG
592+ dO
601593 }
602594
603595
604596 func dR (bJ,bR) = {
605597 let dS = da()
606598 let dc = dS._1
607599 let dd = dS._2
608600 let aS = addressFromStringValue(bR)
609- let dJ = dn(bJ, bR)
601+ let dF = dn(bJ, bR)
610602 let ds = dp(bJ)
611- let dL = valueOrElse(getInteger(this, bN(bJ, aS, dc)), 0)
612- let dy = valueOrElse(getInteger(this, bK(bJ, dc)), 0)
613- let dN = valueOrElse(getInteger(this, bO(bJ, aS, dc)), dd)
614- let dA = valueOrElse(getInteger(this, bL(bJ, dc)), dd)
615- let dK = bP(bJ, aS, dc)
616- let dT = valueOrElse(getInteger(this, dK), 0)
617- let dx = bM(bJ, aS, dc)
618- let dU = valueOrElse(getInteger(this, dx), 0)
619- let dO = (height - dN)
620- let dB = (height - dA)
621- let dP = ((dO * dJ) + dL)
622- let dC = ((dB * ds) + dy)
623- let dV = (dP - dT)
624- let dW = (dC - dU)
625- $Tuple3([IntegerEntry(dK, dP), IntegerEntry(dx, dC)], dV, dW)
603+ let dG = valueOrElse(getInteger(this, bN(bJ, aS, dc)), 0)
604+ let dv = valueOrElse(getInteger(this, bK(bJ, dc)), 0)
605+ let dH = valueOrElse(getInteger(this, bO(bJ, aS, dc)), dd)
606+ let dw = valueOrElse(getInteger(this, bL(bJ, dc)), dd)
607+ let dT = bP(bJ, aS, dc)
608+ let dU = valueOrElse(getInteger(this, dT), 0)
609+ let dV = bM(bJ, aS, dc)
610+ let dW = valueOrElse(getInteger(this, dV), 0)
611+ let dI = (height - dH)
612+ let dx = (height - dw)
613+ let dJ = ((dI * dF) + dG)
614+ let dy = ((dx * ds) + dv)
615+ let dX = (dJ - dU)
616+ let dY = (dy - dW)
617+ $Tuple3([IntegerEntry(dT, dJ), IntegerEntry(dV, dy)], dX, dY)
626618 }
627619
628620
629-func dX () = {
630- let dY = n(bT, ah())
631- let dZ = getInteger(bT, ak())
632- let ea = getInteger(this, al())
633- let eb = n(bT, an())
634- let cH = if ((height > eb))
635- then eb
621+func dZ () = {
622+ let ea = n(bT, ah())
623+ let eb = getInteger(bT, ak())
624+ let ec = getInteger(this, al())
625+ let ed = n(bT, an())
626+ let cH = if ((height > ed))
627+ then ed
636628 else height
637- let ec = {
638- let r = dZ
629+ let ee = {
630+ let r = eb
639631 if ($isInstanceOf(r, "Int"))
640632 then {
641- let ed = r
642- max([(cH - ed), 0])
633+ let ef = r
634+ max([(cH - ef), 0])
643635 }
644636 else if ($isInstanceOf(r, "Unit"))
645637 then 0
646638 else throw("Match error")
647639 }
648- let ee = ((dY * (bZ - 1)) / bZ)
649- let ef = valueOrElse(ea, 0)
650- let eg = ((ee * ec) + ef)
651- $Tuple2([IntegerEntry(al(), eg), IntegerEntry(ak(), height)], eg)
640+ let eg = ((ea * (bZ - 1)) / bZ)
641+ let eh = valueOrElse(ec, 0)
642+ let ei = ((eg * ee) + eh)
643+ $Tuple2([IntegerEntry(al(), ei), IntegerEntry(ak(), height)], ei)
652644 }
653645
654646
655-func eh (bJ,bR,ei) = {
656- let ej = getString(this, aR(bR))
657- if ((ej == unit))
647+func ej (bJ,bR,ek) = {
648+ let el = getString(this, aR(bR))
649+ if ((el == unit))
658650 then $Tuple3(0, nil, "userRecord::is::empty")
659651 else {
660- let ek = split(value(ej), a)
661- let el = ek[aL]
662- let em = "empty"
663- let en = if ((bJ != em))
652+ let em = split(value(el), a)
653+ let en = em[aL]
654+ let eo = "empty"
655+ let ep = if ((bJ != eo))
664656 then {
665- let eo = valueOrErrorMessage(getString(bS, N(bJ)), ("unsupported lp asset " + bJ))
666- getIntegerValue(bS, R(eo))
657+ let eq = valueOrErrorMessage(getString(bS, N(bJ)), ("unsupported lp asset " + bJ))
658+ getIntegerValue(bS, R(eq))
667659 }
668- else if (ei)
660+ else if (ek)
669661 then 0
670662 else throw(("not readonly mode: unsupported lp asset " + bJ))
671- let ep = bu(el, bJ)
672- let eq = bt(el)
673- let er = valueOrElse(getInteger(this, ep), k(this, eq))
674- let eg = dX()._2
675- let es = (eg - er)
676- if ((0 > es))
663+ let er = bu(en, bJ)
664+ let es = bt(en)
665+ let et = valueOrElse(getInteger(this, er), k(this, es))
666+ let ei = dZ()._2
667+ let eu = (ei - et)
668+ if ((0 > eu))
677669 then throw("wrong calculations")
678670 else {
679- let et = dR(bJ, bR)
680- let eu = et._1
681- let ev = et._2
682- let ew = et._3
683- let ex = fraction(es, en, d)
684- let ey = if ((ew == 0))
671+ let ev = dR(bJ, bR)
672+ let ew = ev._1
673+ let ex = ev._2
674+ let ey = ev._3
675+ let ez = fraction(eu, ep, d)
676+ let eA = if ((ey == 0))
685677 then 0
686- else fraction(ex, ev, ew)
687- let ez = ([IntegerEntry(ep, eg)] ++ eu)
688- let eA = makeString([toString(er), toString(es), toString(en), toString(ev), toString(ew)], ":")
689- $Tuple3(ey, ez, eA)
678+ else fraction(ez, ex, ey)
679+ let eB = ([IntegerEntry(er, ei)] ++ ew)
680+ let eC = makeString([toString(et), toString(eu), toString(ep), toString(ex), toString(ey)], ":")
681+ $Tuple3(eA, eB, eC)
690682 }
691683 }
692684 }
693685
694686
695-func eB (aI,aY) = {
696- let eC = aw()
697- let eD = eC[aq]
698- let az = fromBase58String(eD)
699- let aA = parseIntValue(eC[ar])
700- let aB = parseIntValue(eC[as])
701- let aC = parseIntValue(eC[at])
687+func eD (aI,aY) = {
688+ let eE = aw()
689+ let eF = eE[aq]
690+ let az = fromBase58String(eF)
691+ let aA = parseIntValue(eE[ar])
692+ let aB = parseIntValue(eE[as])
693+ let aC = parseIntValue(eE[at])
702694 if ((size(aI.payments) != 1))
703695 then throw("invalid payment - exact one payment must be attached")
704696 else {
705697 let cT = aI.payments[0]
706- let eE = cT.amount
698+ let eG = cT.amount
707699 if ((az != value(cT.assetId)))
708- then throw((("invalid asset is in payment - " + eD) + " is expected"))
700+ then throw((("invalid asset is in payment - " + eF) + " is expected"))
709701 else {
710- let eF = be()
702+ let eH = be()
711703 let bR = toString(aI.caller)
712- let eG = isDefined(getString(bf(bR)))
713- let el = if (eG)
704+ let eI = isDefined(getString(bf(bR)))
705+ let en = if (eI)
714706 then value(getString(bf(bR)))
715- else toString(n(this, eF))
716- let aV = parseIntValue(el)
707+ else toString(n(this, eH))
708+ let aV = parseIntValue(en)
717709 let cm = height
718- let cL = bi(el)
719- let cM = bj(el)
720- let cK = bh(el)
721- if (if ((aA > eE))
710+ let cL = bi(en)
711+ let cM = bj(en)
712+ let cK = bh(en)
713+ if (if ((aA > eG))
722714 then (aI.caller != bW)
723715 else false)
724716 then throw(("amount is less then minLockAmount=" + toString(aA)))
725717 else if ((aB > aY))
726718 then throw(("passed duration is less then minLockDuration=" + toString(aB)))
727719 else if ((aY > aC))
728720 then throw(("passed duration is greater then maxLockDuration=" + toString(aC)))
729- else if (if (eG)
721+ else if (if (eI)
730722 then ((n(this, cL) + n(this, cM)) >= cm)
731723 else false)
732724 then throw("there is an active lock - consider to use increaseLock")
733725 else if ((k(this, cK) > 0))
734726 then throw(("there are locked WXs - consider to use increaseLock " + cK))
735727 else {
736- let eH = fraction(aY, c, aC)
737- let eI = fraction(eE, eH, c)
738- let eJ = q(invoke(ax, "calcGwxParamsREADONLY", [eI, cm, aY], nil))
739- let cn = t(eJ[0])
740- let co = t(eJ[1])
741- let bn = toString(t(eJ[2]))
728+ let eJ = fraction(aY, c, aC)
729+ let eK = fraction(eG, eJ, c)
730+ let eL = q(invoke(ax, "calcGwxParamsREADONLY", [eK, cm, aY], nil))
731+ let cn = t(eL[0])
732+ let co = t(eL[1])
733+ let bn = toString(t(eL[2]))
742734 let cg = cb(false)
743- let eq = bt(el)
744- let eg = dX()._2
745- let eK = if (eG)
735+ let es = bt(en)
736+ let ei = dZ()._2
737+ let eM = if (eI)
746738 then nil
747- else [IntegerEntry(eF, (aV + 1)), StringEntry(bf(bR), el), StringEntry(bg(el), bR)]
748- $Tuple2(((((eK ++ cJ(bR, el, eE, cm, aY, cn, co, bn)) ++ cr(eE, aY, 1, if (eG)
739+ else [IntegerEntry(eH, (aV + 1)), StringEntry(bf(bR), en), StringEntry(bg(en), bR)]
740+ $Tuple2(((((eM ++ cJ(bR, en, eG, cm, aY, cn, co, bn)) ++ cr(eG, aY, 1, if (eI)
749741 then 0
750- else 1)) :+ cj("lock", bR, eE, cm, aY, cn, co, aI)) ++ [IntegerEntry(eq, eg), IntegerEntry(bA(), (cg + eI))]), eI)
742+ else 1)) :+ cj("lock", bR, eG, cm, aY, cn, co, aI)) ++ [IntegerEntry(es, ei), IntegerEntry(bA(), (cg + eK))]), eK)
751743 }
752744 }
753745 }
754746 }
755747
756748
757749 @Callable(aI)
758-func constructor (eL,eM,aA,eN,eO,ax) = {
759- let eP = aH(aI)
760- if ((eP == eP))
761- then ([IntegerEntry(be(), 0), StringEntry(av(), aD(eM, aA, eN, eO, ax)), StringEntry(A(), eL)] ++ cr(0, 0, 0, 0))
750+func constructor (eN,eO,aA,eP,eQ,ax) = {
751+ let eR = aH(aI)
752+ if ((eR == eR))
753+ then ([IntegerEntry(be(), 0), StringEntry(av(), aD(eO, aA, eP, eQ, ax)), StringEntry(A(), eN)] ++ cr(0, 0, 0, 0))
762754 else throw("Strict value is not equal to itself.")
763755 }
764756
765757
766758
767759 @Callable(aI)
768-func lockRef (aY,eQ,eR) = {
769- let eS = eB(aI, aY)
770- let eT = eS._1
771- let eI = eS._2
772- let eU = toString(aI.caller)
773- let eV = if (if ((eQ == ""))
760+func lockRef (aY,eS,eT) = {
761+ let eU = eD(aI, aY)
762+ let eV = eU._1
763+ let eK = eU._2
764+ let eW = toString(aI.caller)
765+ let eX = if (if ((eS == ""))
774766 then true
775- else (eR == base58''))
767+ else (eT == base58''))
776768 then unit
777- else invoke(w, "createPair", [z, eQ, eU, eR], nil)
778- if ((eV == eV))
769+ else invoke(w, "createPair", [z, eS, eW, eT], nil)
770+ if ((eX == eX))
779771 then {
780- let eW = invoke(ax, "updateReferralActivity", [toString(aI.caller), eI], nil)
781- if ((eW == eW))
782- then $Tuple2(eT, unit)
772+ let eY = invoke(ax, "updateReferralActivity", [toString(aI.caller), eK], nil)
773+ if ((eY == eY))
774+ then $Tuple2(eV, unit)
783775 else throw("Strict value is not equal to itself.")
784776 }
785777 else throw("Strict value is not equal to itself.")
786778 }
787779
788780
789781
790782 @Callable(aI)
791783 func lock (aY) = {
792- let eX = eB(aI, aY)
793- let eT = eX._1
794- let eI = eX._2
795- let eW = invoke(ax, "updateReferralActivity", [toString(aI.caller), eI], nil)
796- if ((eW == eW))
797- then $Tuple2(eT, unit)
784+ let eZ = eD(aI, aY)
785+ let eV = eZ._1
786+ let eK = eZ._2
787+ let eY = invoke(ax, "updateReferralActivity", [toString(aI.caller), eK], nil)
788+ if ((eY == eY))
789+ then $Tuple2(eV, unit)
798790 else throw("Strict value is not equal to itself.")
799791 }
800792
801793
802794
803795 @Callable(aI)
804-func increaseLock (eY) = {
805- let eC = aw()
806- let eD = eC[aq]
807- let az = fromBase58String(eD)
808- let aB = parseIntValue(eC[as])
809- let aC = parseIntValue(eC[at])
810- let eE = cR(aI, az)
796+func increaseLock (fa) = {
797+ let eE = aw()
798+ let eF = eE[aq]
799+ let az = fromBase58String(eF)
800+ let aB = parseIntValue(eE[as])
801+ let aC = parseIntValue(eE[at])
802+ let eG = cR(aI, az)
811803 let bR = toString(aI.caller)
812- let ek = aT(bR)
813- let el = ek[aL]
814- let eZ = parseIntValue(ek[aM])
815- let cm = parseIntValue(ek[aN])
816- let fa = parseIntValue(ek[aO])
817- let fb = (cm + fa)
818- let fc = max([(fb - height), 0])
819- let fd = (eZ + eE)
820- let fe = (fc + eY)
821- if ((0 > eY))
804+ let em = aT(bR)
805+ let en = em[aL]
806+ let fb = parseIntValue(em[aM])
807+ let cm = parseIntValue(em[aN])
808+ let fc = parseIntValue(em[aO])
809+ let fd = (cm + fc)
810+ let fe = max([(fd - height), 0])
811+ let ff = (fb + eG)
812+ let fg = (fe + fa)
813+ if ((0 > fa))
822814 then throw("duration is less then zero")
823- else if ((aB > fe))
815+ else if ((aB > fg))
824816 then throw(("lockDurationNew is less then minLockDuration=" + toString(aB)))
825- else if ((fe > aC))
817+ else if ((fg > aC))
826818 then throw(("deltaDuration + existedLockDuration is greater then maxLockDuration=" + toString(aC)))
827819 else {
828- let eH = fraction(fe, c, aC)
829- let eI = fraction(fd, eH, c)
830- let eW = invoke(ax, "updateReferralActivity", [toString(aI.caller), eI], nil)
831- if ((eW == eW))
820+ let eJ = fraction(fg, c, aC)
821+ let eK = fraction(ff, eJ, c)
822+ let eY = invoke(ax, "updateReferralActivity", [toString(aI.caller), eK], nil)
823+ if ((eY == eY))
832824 then {
833- let ff = height
834- let eJ = q(invoke(ax, "calcGwxParamsREADONLY", [eI, ff, fe], nil))
835- let cn = t(eJ[0])
836- let co = t(eJ[1])
837- let bn = toString(t(eJ[2]))
838- let fg = cZ(bR)
839- let fh = (eI - fg)
840- if ((0 > fh))
841- then throw(("gwxDiff is less then 0: " + toString(fh)))
825+ let fh = height
826+ let eL = q(invoke(ax, "calcGwxParamsREADONLY", [eK, fh, fg], nil))
827+ let cn = t(eL[0])
828+ let co = t(eL[1])
829+ let bn = toString(t(eL[2]))
830+ let fi = cZ(bR)
831+ let fj = (eK - fi)
832+ if ((0 > fj))
833+ then throw(("gwxDiff is less then 0: " + toString(fj)))
842834 else {
843835 let cg = cb(false)
844- let fi = cb(true)
845- (((cJ(bR, el, fd, ff, fe, cn, co, bn) ++ cr(eE, eY, 0, 0)) :+ cj("lock", bR, eE, cm, fe, cn, co, aI)) ++ [IntegerEntry(bA(), (cg + fh))])
836+ let fk = cb(true)
837+ (((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))])
846838 }
847839 }
848840 else throw("Strict value is not equal to itself.")
849841 }
850842 }
851843
852844
853845
854846 @Callable(aI)
855847 func claimWxBoost (bJ,bR) = if ((bU != aI.caller))
856848 then throw("permissions denied")
857849 else {
858- let fj = eh(bJ, bR, false)
859- let fk = fj._1
860- let ez = fj._2
861- let eA = fj._3
862- $Tuple2(ez, [fk])
850+ let fl = ej(bJ, bR, false)
851+ let fm = fl._1
852+ let eB = fl._2
853+ let eC = fl._3
854+ $Tuple2(eB, [fm])
863855 }
864856
865857
866858
867859 @Callable(aI)
868860 func claimWxBoostREADONLY (bJ,bR) = {
869- let fl = eh(bJ, bR, true)
870- let fk = fl._1
871- let ez = fl._2
872- let eA = fl._3
873- $Tuple2(nil, [fk, eA])
861+ let fn = ej(bJ, bR, true)
862+ let fm = fn._1
863+ let eB = fn._2
864+ let eC = fn._3
865+ $Tuple2(nil, [fm, eC])
874866 }
875867
876868
877869
878870 @Callable(aI)
879871 func unlock (aS) = {
880- let ek = aT(aS)
881- let el = ek[aL]
882- let eZ = parseIntValue(ek[aM])
883- let cm = parseIntValue(ek[aN])
884- let fa = parseIntValue(ek[aO])
885- let fb = (cm + fa)
886- let eC = aw()
887- let az = fromBase58String(eC[aq])
888- if ((fb >= height))
889- then throw((("wait " + toString(fb)) + " to unlock"))
890- else if ((0 >= eZ))
872+ let em = aT(aS)
873+ let en = em[aL]
874+ let fb = parseIntValue(em[aM])
875+ let cm = parseIntValue(em[aN])
876+ let fc = parseIntValue(em[aO])
877+ let fd = (cm + fc)
878+ let eE = aw()
879+ let az = fromBase58String(eE[aq])
880+ if ((fd >= height))
881+ then throw((("wait " + toString(fd)) + " to unlock"))
882+ else if ((0 >= fb))
891883 then throw("nothing to unlock")
892884 else {
893885 let bn = valueOrElse(getInteger(ax, ao()), 0)
894- (((cJ(aS, el, 0, cm, fa, 0, 0, toString(bn)) ++ cr(-(eZ), 0, 0, -1)) :+ cj("unlock", aS, eZ, cm, fa, 0, 0, aI)) :+ ScriptTransfer(addressFromStringValue(aS), eZ, az))
886+ (((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, az))
895887 }
896888 }
897889
898890
899891
900892 @Callable(aI)
901893 func gwxUserInfoREADONLY (aS) = {
902894 let bc = cZ(aS)
903895 $Tuple2(nil, [bc])
904896 }
905897
906898
907899
908900 @Callable(aI)
909901 func userMaxDurationREADONLY (bR) = {
910- let eC = aw()
911- let aC = parseIntValue(eC[at])
912- let ej = getString(this, aR(bR))
913- if ((ej == unit))
902+ let eE = aw()
903+ let aC = parseIntValue(eE[at])
904+ let el = getString(this, aR(bR))
905+ if ((el == unit))
914906 then $Tuple2(nil, $Tuple2("lock", aC))
915907 else {
916- let ek = split(value(ej), a)
917- let cm = parseIntValue(ek[aN])
918- let fa = parseIntValue(ek[aO])
919- let fb = (cm + fa)
920- let fc = max([(fb - height), 0])
921- let fm = (aC - fc)
922- $Tuple2(nil, $Tuple2("increaseLock", fm))
908+ let em = split(value(el), a)
909+ let cm = parseIntValue(em[aN])
910+ let fc = parseIntValue(em[aO])
911+ let fd = (cm + fc)
912+ let fe = max([(fd - height), 0])
913+ let fo = (aC - fe)
914+ $Tuple2(nil, $Tuple2("increaseLock", fo))
923915 }
924916 }
925917
926918
927919
928920 @Callable(aI)
929921 func getUserGwxAmountAtHeightREADONLY (aS,cV) = {
930922 let bc = cU(aS, cV)
931923 $Tuple2(nil, bc)
932924 }
933925
934926
935927
936928 @Callable(aI)
937929 func getTotalCachedGwxREADONLY () = $Tuple2(nil, cb(true))
938930
939931
940932
941933 @Callable(aI)
942934 func onBoostEmissionUpdate () = {
943- let eP = if ((aI.caller == bT))
935+ let eR = if ((aI.caller == bT))
944936 then true
945937 else aH(aI)
946- if ((eP == eP))
947- then dX()
938+ if ((eR == eR))
939+ then dZ()
948940 else throw("Strict value is not equal to itself.")
949941 }
950942
951943
952944
953945 @Callable(aI)
954-func onStakedVoteUpdate (bJ,bR,dE) = {
955- let eP = if ((aI.caller == bU))
946+func onStakedVoteUpdate (bJ,bR,dL) = {
947+ let eR = if ((aI.caller == bU))
956948 then true
957949 else aH(aI)
958- if ((eP == eP))
950+ if ((eR == eR))
959951 then {
960- let dG = dD(bJ, bR, dE)
961- $Tuple2(dG, unit)
952+ let dO = dK(bJ, bR, dL)
953+ $Tuple2(dO, unit)
962954 }
963955 else throw("Strict value is not equal to itself.")
964956 }
965957
966958
967959
968960 @Callable(aI)
969961 func getVotingResultStakedREADONLY (bJ) = $Tuple2(nil, dp(bJ))
970962
971963
972964
973965 @Callable(aI)
966+func getVotingResultStakedIntegralREADONLY (bJ) = $Tuple2(nil, dt(bJ))
967+
968+
969+
970+@Callable(aI)
974971 func getUserVoteFinalizedREADONLY (bJ,bR) = $Tuple2(nil, di(bJ, bR))
975972
976973
977974
978975 @Callable(aI)
979-func setManager (fn) = {
980- let eP = aH(aI)
981- if ((eP == eP))
976+func getUserVoteStakedIntegralREADONLY (bJ,bR) = $Tuple2(nil, dD(bJ, bR))
977+
978+
979+
980+@Callable(aI)
981+func setManager (fp) = {
982+ let eR = aH(aI)
983+ if ((eR == eR))
982984 then {
983- let fo = fromBase58String(fn)
984- if ((fo == fo))
985- then [StringEntry(ag(), fn)]
985+ let fq = fromBase58String(fp)
986+ if ((fq == fq))
987+ then [StringEntry(ag(), fp)]
986988 else throw("Strict value is not equal to itself.")
987989 }
988990 else throw("Strict value is not equal to itself.")
989991 }
990992
991993
992994
993995 @Callable(aI)
994996 func confirmManager () = {
995- let fp = aG()
996- let fq = if (isDefined(fp))
997+ let fr = aG()
998+ let fs = if (isDefined(fr))
997999 then true
9981000 else throw("No pending manager")
999- if ((fq == fq))
1001+ if ((fs == fs))
10001002 then {
1001- let fr = if ((aI.callerPublicKey == value(fp)))
1003+ let ft = if ((aI.callerPublicKey == value(fr)))
10021004 then true
10031005 else throw("You are not pending manager")
1004- if ((fr == fr))
1005- then [StringEntry(af(), toBase58String(value(fp))), DeleteEntry(ag())]
1006+ if ((ft == ft))
1007+ then [StringEntry(af(), toBase58String(value(fr))), DeleteEntry(ag())]
10061008 else throw("Strict value is not equal to itself.")
10071009 }
10081010 else throw("Strict value is not equal to itself.")
10091011 }
10101012
10111013
1012-@Verifier(fs)
1013-func ft () = {
1014- let fu = {
1014+@Verifier(fu)
1015+func fv () = {
1016+ let fw = {
10151017 let r = aE()
10161018 if ($isInstanceOf(r, "ByteVector"))
10171019 then {
10181020 let aK = r
10191021 aK
10201022 }
10211023 else if ($isInstanceOf(r, "Unit"))
1022- then fs.senderPublicKey
1024+ then fu.senderPublicKey
10231025 else throw("Match error")
10241026 }
1025- sigVerify(fs.bodyBytes, fs.proofs[0], fu)
1027+ sigVerify(fu.bodyBytes, fu.proofs[0], fw)
10261028 }
10271029

github/deemru/w8io/026f985 
204.76 ms