tx · 8dMp5q27sxPWtZj45NVoi6oMM7AyYhFGxFUjV6Z5NrPU

3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz:  -0.02200000 Waves

2023.02.15 13:43 [2450617] smart account 3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz > SELF 0.00000000 Waves

{ "type": 13, "id": "8dMp5q27sxPWtZj45NVoi6oMM7AyYhFGxFUjV6Z5NrPU", "fee": 2200000, "feeAssetId": null, "timestamp": 1676457806525, "version": 2, "chainId": 84, "sender": "3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz", "senderPublicKey": "D28XoueZWsMfm8Y5pa6C5ZFuYoWgre2Wm8tzJANJgMnq", "proofs": [ "3hijPbyN4LGNjvTxkFE7KaZ9C14Ra2BNUAU7Lvo8Ah9bPBH3p1TAjBj5hmLouw9vyq8kyab6hqDqbo4vy8vhtGD" ], "script": "base64:BgKBHwgCEgMKAQgSAwoBCBIDCgEIEgASABIECgIIARIDCgEIEgQKAggIEgYKBAEYCBgSBAoCGAgSBAoCCAgSAwoBCBIECgIICCIGU0NBTEU4IgVNVUxUMyIFTVVMVDgiB1NDQUxFMTgiBk1VTFQxOCIDU0VQIg5QT09MV0VJR0hUTVVMVCIKemVyb0JpZ0ludCIJb25lQmlnSW50Iglhc0FueUxpc3QiA3ZhbCIHJG1hdGNoMCIKdmFsQW55THlzdCIFYXNJbnQiBnZhbEludCIIYXNTdHJpbmciBnZhbFN0ciIMYXNCeXRlVmVjdG9yIgZ2YWxCaW4iD2dldFN0cmluZ09yRmFpbCIHYWRkcmVzcyIDa2V5IhhnZXRTdHJpbmdCeUFkZHJlc3NPckZhaWwiDGdldEludE9yWmVybyIPZ2V0SW50T3JEZWZhdWx0IgpkZWZhdWx0VmFsIgxnZXRJbnRPckZhaWwiGWdldEJpZ0ludEZyb21TdHJpbmdPclplcm8iHGdldEJpZ0ludEZyb21TdHJpbmdPckRlZmF1bHQiAXMiBXRvWDE4IgdvcmlnVmFsIg1vcmlnU2NhbGVNdWx0Igdmcm9tWDE4Ig9yZXN1bHRTY2FsZU11bHQiEWtleUZhY3RvcnlBZGRyZXNzIhlrZXlWb3RpbmdFbWlzc2lvbkNvbnRyYWN0IhhJZHhGYWN0b3J5Q2ZnU3Rha2luZ0RhcHAiGUlkeEZhY3RvcnlDZmdCb29zdGluZ0RhcHAiFElkeEZhY3RvcnlDZmdJZG9EYXBwIhVJZHhGYWN0b3J5Q2ZnVGVhbURhcHAiGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHAiFUlkeEZhY3RvcnlDZmdSZXN0RGFwcCIZSWR4RmFjdG9yeUNmZ1NsaXBwYWdlRGFwcCINa2V5RmFjdG9yeUNmZyITa2V5TWFuYWdlclB1YmxpY0tleSIaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiFmtleVN0YWJsZVBvb2xBZGRvbkFkZHIiDGtleUFkZG9uQWRkciIaa2V5RmFjdG9yeUxwMkFzc2V0c01hcHBpbmciCmxwQXNzZXRTdHIiEGtleUZhY3RvcnlMcExpc3QiJmtleUZhY3RvcnlMcEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzIhRrZXlGYWN0b3J5UG9vbFdlaWdodCIPY29udHJhY3RBZGRyZXNzIgpyZWFkTHBMaXN0IgdmYWN0b3J5IhRyZWFkRmFjdG9yeUNmZ09yRmFpbCIYZ2V0Qm9vc3RpbmdBZGRyZXNzT3JGYWlsIgpmYWN0b3J5Q2ZnIhhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwiF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsIh5rZXlFbWlzc2lvblJhdGVQZXJCbG9ja0N1cnJlbnQiIWtleUVtaXNzaW9uUmF0ZVBlckJsb2NrTWF4Q3VycmVudCIVa2V5RW1pc3Npb25TdGFydEJsb2NrIhtrZXlFbWlzc2lvbkR1cmF0aW9uSW5CbG9ja3MiE2tleUVtaXNzaW9uRW5kQmxvY2siD2tleVN0YWtlZEJ5VXNlciIOdXNlckFkZHJlc3NTdHIiDGxwQXNzZXRJZFN0ciIOa2V5U3Rha2VkVG90YWwiEGtleUNsYWltZWRCeVVzZXIiGWtleUNsYWltZWRCeVVzZXJNaW5SZXdhcmQiG2tleUNsYWltZWRCeVVzZXJCb29zdFJld2FyZCIPa2V5Q2xhaW1lZFRvdGFsIgpyZWFkU3Rha2VkIhVrZXlMYXN0VG90YWxMcEJhbGFuY2UiCWxwQXNzZXRJZCIUa2V5TGFzdFVzZXJMcEJhbGFuY2UiC3VzZXJBZGRyZXNzIhlrZXlUb3RhbExwQmFsYW5jZUludGVncmFsIhhrZXlVc2VyTHBCYWxhbmNlSW50ZWdyYWwiJmtleVRvdGFsTHBCYWxhbmNlSW50ZWdyYWxMYXN0VXBkSGVpZ2h0IiVrZXlVc2VyTHBCYWxhbmNlSW50ZWdyYWxMYXN0VXBkSGVpZ2h0IhJrZXlXeFBlckxwSW50ZWdyYWwiH2tleVd4UGVyTHBJbnRlZ3JhbExhc3RVcGRIZWlnaHQiEGtleVd4VG9DbGFpbVVzZXIiI2tleVd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0IgprZXlXeFBlckxwIg1rZXlXeFBlckxwWDE4IhprZXlXeFBlckxwSW50ZWdyYWxVc2VyTGFzdCIZa2V5T3BlcmF0aW9uSGlzdG9yeVJlY29yZCIEdHlwZSIGdHhJZDU4IhNmb3JtYXRIaXN0b3J5UmVjb3JkIgZhbW91bnQiFU9wZXJhdGlvbkhpc3RvcnlFbnRyeSIEdHhJZCIOZmFjdG9yeUFkZHJlc3MiD2ZhY3RvcnlDb250cmFjdCIQZW1pc3Npb25Db250cmFjdCIQYm9vc3RpbmdDb250cmFjdCIKYm9vc3RDb2VmZiIBQCILa2V5TmV4dFVzZXIiEGdldFVzZXJzTGlzdE5hbWUiC2tleUxpc3RIZWFkIghsaXN0TmFtZSILa2V5TGlzdFNpemUiC2tleUxpc3RQcmV2IgJpZCILa2V5TGlzdE5leHQiDGNvbnRhaW5zTm9kZSIKaGVhZE9yVW5pdCIKcHJldk9yVW5pdCIKbmV4dE9yVW5pdCIRaW5zZXJ0Tm9kZUFjdGlvbnMiCGxpc3RTaXplIgljaGVja05vZGUiEWRlbGV0ZU5vZGVBY3Rpb25zIhtjYWxjV3hQZXJMcEludGVncmFsVXNlckxhc3QiDHN0YWtlZEJ5VXNlciImd3hQZXJMcEludGVncmFsVXNlckxhc3RVcGRIZWlnaHRPclplcm8iEnd4UGVyTHBJbnRlZ3JhbE5ldyIad3hQZXJMcEludGVncmFsVXNlckxhc3RLRVkiFHJlZnJlc2hQb29sSU5URUdSQUxTIg5wb29sQWRkcmVzc1N0ciINbHBEZWx0YUFtb3VudCIOc3Rha2VkVG90YWxLRVkiC3N0YWtlZFRvdGFsIhJub25aZXJvU3Rha2VkVG90YWwiCnBvb2xXZWlnaHQiEmVtaXNzaW9uU3RhcnRCbG9jayIUd3hFbWlzc2lvblBlckJsb2NrWDMiGHBvb2xXeEVtaXNzaW9uUGVyQmxvY2tYMyISd3hQZXJMcEludGVncmFsS0VZIh93eFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0S0VZIgp3eFBlckxwS0VZIhx3eFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0Ig93eFBlckxwSW50ZWdyYWwiD3d4UGVyTHBPclplcm9YMyICZGgiCXd4UGVyTHBYMyIOc3Rha2VkVG90YWxOZXciFW5vblplcm9TdGFrZWRUb3RhbE5ldyIMd3hQZXJMcFgzTmV3Ih93eFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0TmV3IgVkZWJ1ZyIQcmVmcmVzaElOVEVHUkFMUyINJHQwMTQyODYxNDQwOCIRcG9vbEludGVncmFsU1RBVEUiCXBvb2xERUJVRyIPc3Rha2VkQnlVc2VyS0VZIhB3eFRvQ2xhaW1Vc2VyS0VZIiN3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodEtFWSINd3hUb0NsYWltVXNlciIXd3hQZXJMcEludGVncmFsVXNlckxhc3QiBk1VTFQxMSIQd3hUb0NsYWltVXNlck5ldyIad3hQZXJMcEludGVncmFsVXNlckxhc3ROZXciI3d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0TmV3IhZtYW5hZ2VyUHVibGljS2V5T3JVbml0Ih1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdCIVcGVybWlzc2lvbkRlbmllZEVycm9yIghtdXN0VGhpcyIBaSILbXVzdE1hbmFnZXIiAnBrIhFmYWN0b3J5QWRkcmVzc1N0ciILY2hlY2tDYWxsZXIiFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QiBWNoZWtzIhdwZW5kaW5nTWFuYWdlclB1YmxpY0tleSIVY2hlY2tNYW5hZ2VyUHVibGljS2V5IgJwbSIFaGFzUE0iB2NoZWNrUE0iA3BtdCIJY2FsbGVyU3RyIg0kdDAxODgyNTE4OTQyIg1pbnRlZ3JhbFNUQVRFIgtsaXN0QWN0aW9ucyIJcG9vbEFkZG9uIhZjbGFpbWVkQnlVc2VyTWluUmV3YXJkIgtwb29sQWRkcmVzcyIQYXZhaWxhYmxlVG9DbGFpbSIBciIGcmVzdWx0IhBjbGFpbWVkQnlVc2VyS0VZIg9jbGFpbWVkVG90YWxLRVkiGWNsYWltZWRCeVVzZXJNaW5SZXdhcmRLRVkiG2NsYWltZWRCeVVzZXJCb29zdFJld2FyZEtFWSINY2xhaW1lZEJ5VXNlciIYY2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkIgxjbGFpbWVkVG90YWwiDSR0MDIyODA3MjI5MTkiEnd4QW1vdW50Qm9vc3RUb3RhbCINbWluUmV3YXJkUGFydCIPYm9vc3RSZXdhcmRQYXJ0Igl3eEFzc2V0SWQiCWVtaXRCb29zdCISY2xhaW1lZEJ5VXNlclZhbHVlIh5jbGFpbWVkQnlVc2VyTWluUmV3YXJkUGx1c1BhcnQiK2NsYWltZWRCeVVzZXJCb29zdFJld2FyZFBsdXNCb29zdFJld2FyZFBhcnQiIGNsYWltZWRUb3RhbFBsdXNBdmFpbGFibGVUb0NsYWltIgtjdXJyZW50SXRlciIKbHBBc3NldElkcyIGcmVzQWNjIgRpbmZvIgl1bmNsYWltZWQiB2NsYWltZWQiA3JlcyIDaW52IhJ3eEVtaXNzaW9uUGVyQmxvY2siDHBhc3NlZEJsb2NrcyIOcG9vbFd4RW1pc3Npb24iDHVzZXJXeFJld2FyZCINJHQwMjY1OTIyNjcwNCIOYm9vc3RJbnZSZXN1bHQiCmJvb3N0RGVidWciC3RvdGFsUmV3YXJkIgp1c2VyT3JVbml0IgckbWF0Y2gxIgRoZWFkIg5uZXh0VXNlck9yVW5pdCIIbmV4dFVzZXIiDSR0MDI5MDU1MjkxNjUiAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleWAAAWEACAABYgDoBwABYwCAwtcvAAFkABIAAWUJALYCAQCAgJC7utat8A0AAWYCAl9fAAFnBQFjAAFoCQC2AgEAAAABaQkAtgIBAAEBAWoBAWsEAWwFAWsDCQABAgUBbAIJTGlzdFtBbnldBAFtBQFsBQFtCQACAQIbZmFpbCB0byBjYXN0IGludG8gTGlzdFtBbnldAQFuAQFrBAFsBQFrAwkAAQIFAWwCA0ludAQBbwUBbAUBbwkAAgECFWZhaWwgdG8gY2FzdCBpbnRvIEludAEBcAEBawQBbAUBawMJAAECBQFsAgZTdHJpbmcEAXEFAWwFAXEJAAIBAhVmYWlsIHRvIGNhc3QgaW50byBJbnQBAXIBAWsEAWwFAWsDCQABAgUBbAIKQnl0ZVZlY3RvcgQBcwUBbAUBcwkAAgECFWZhaWwgdG8gY2FzdCBpbnRvIEludAEBdAIBdQF2CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUBdQUBdgkArAICCQCsAgICD21hbmRhdG9yeSB0aGlzLgUBdgIPIGlzIG5vdCBkZWZpbmVkAQF3AgF1AXYJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQF1BQF2CQCsAgIJAKwCAgkArAICCQCsAgICCm1hbmRhdG9yeSAJAKUIAQUBdQIBLgUBdgIPIGlzIG5vdCBkZWZpbmVkAQF4AgF1AXYJAQt2YWx1ZU9yRWxzZQIJAJoIAgUBdQUBdgAAAQF5AwF1AXYBegkBC3ZhbHVlT3JFbHNlAgkAmggCBQF1BQF2BQF6AQFBAgF1AXYJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQF1BQF2CQCsAgIJAKwCAgIPbWFuZGF0b3J5IHRoaXMuBQF2Ag8gaXMgbm90IGRlZmluZWQBAUICAXUBdgkBBXZhbHVlAQkAqAMBCQELdmFsdWVPckVsc2UCCQCdCAIFAXUFAXYCATABAUMDAXUBdgF6BAFsCQCdCAIFAXUFAXYDCQABAgUBbAIGU3RyaW5nBAFEBQFsCQEFdmFsdWUBCQCoAwEFAUQDCQABAgUBbAIEVW5pdAUBegkAAgECC01hdGNoIGVycm9yAQFFAgFGAUcJALwCAwkAtgIBBQFGBQFlCQC2AgEFAUcBAUgCAWsBSQkAoAMBCQC8AgMFAWsJALYCAQUBSQUBZQEBSgACHCVzJXNfX2NvbmZpZ19fZmFjdG9yeUFkZHJlc3MBAUsAAholc19fdm90aW5nRW1pc3Npb25Db250cmFjdAABTAABAAFNAAIAAU4AAwABTwAEAAFQAAUAAVEABgABUgAHAQFTAAIRJXNfX2ZhY3RvcnlDb25maWcBAVQAAhQlc19fbWFuYWdlclB1YmxpY0tleQEBVQACGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQEBVgACFyVzX19zdGFibGVQb29sQWRkb25BZGRyAQFXAAINJXNfX2FkZG9uQWRkcgEBWAEBWQkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQFZCQDMCAICHm1hcHBpbmdzX19scEFzc2V0MlBvb2xDb250cmFjdAUDbmlsBQFmAQFaAAIQJXNfX2xwVG9rZW5zTGlzdAECYWEBAVkJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUBWQkAzAgCAh5tYXBwaW5nc19fbHBBc3NldDJQb29sQ29udHJhY3QFA25pbAUBZgECYWIBAmFjCQC5CQIJAMwIAgIEJXMlcwkAzAgCAgpwb29sV2VpZ2h0CQDMCAIFAmFjBQNuaWwFAWYBAmFkAQJhZQkAtQkCCQELdmFsdWVPckVsc2UCCQCdCAIFAmFlCQEBWgACAAUBZgECYWYBAmFlCQC1CQIJAQF3AgUCYWUJAQFTAAUBZgECYWcBAmFoCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmFoBQFNAQJhaQECYWgJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYWgFAVABAmFqAQJhaAkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhaAUBTAECYWsAAhslcyVzX19yYXRlUGVyQmxvY2tfX2N1cnJlbnQBAmFsAAIeJXMlc19fcmF0ZVBlckJsb2NrTWF4X19jdXJyZW50AQJhbQACGiVzJXNfX2VtaXNzaW9uX19zdGFydEJsb2NrAQJhbgACGCVzJXNfX2VtaXNzaW9uX19kdXJhdGlvbgECYW8AAhglcyVzX19lbWlzc2lvbl9fZW5kQmxvY2sBAmFwAgJhcQJhcgkAuQkCCQDMCAICDiVzJXMlc19fc3Rha2VkCQDMCAIFAmFxCQDMCAIFAmFyBQNuaWwFAWYBAmFzAQJhcgkArAICAhclcyVzJXNfX3N0YWtlZF9fdG90YWxfXwUCYXIBAmF0AgJhcgJhcQkAuQkCCQDMCAICDyVzJXMlc19fY2xhaW1lZAkAzAgCBQJhcQkAzAgCBQJhcgUDbmlsBQFmAQJhdQICYXICYXEJALkJAgkAzAgCAhglcyVzJXNfX2NsYWltZWRNaW5SZXdhcmQJAMwIAgUCYXEJAMwIAgUCYXIFA25pbAUBZgECYXYCAmFyAmFxCQC5CQIJAMwIAgIaJXMlcyVzX19jbGFpbWVkQm9vc3RSZXdhcmQJAMwIAgUCYXEJAMwIAgUCYXIFA25pbAUBZgECYXcBAmFyCQC5CQIJAMwIAgIWJXMlcyVzX19jbGFpbWVkX190b3RhbAkAzAgCBQJhcgUDbmlsBQFmAQJheAEBdgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQF2AAABAmF5AQJhegkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQJhegkAzAgCAgV0b3RhbAkAzAgCAgNiYWwFA25pbAUBZgECYUECAmF6AmFCCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAIFAmF6CQDMCAIFAmFCCQDMCAICA2JhbAUDbmlsBQFmAQJhQwECYXoJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUCYXoJAMwIAgIFdG90YWwJAMwIAgIGYmFsSU5UBQNuaWwFAWYBAmFEAgJhegJhQgkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQJhegkAzAgCBQJhQgkAzAgCAgZiYWxJTlQFA25pbAUBZgECYUUBAmF6CQC5CQIJAMwIAgIGJXMlcyVzCQDMCAIFAmF6CQDMCAICBXRvdGFsCQDMCAICB2xhc3RVcGQFA25pbAUBZgECYUYCAmF6AmFCCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAIFAmF6CQDMCAIFAmFCCQDMCAICB2xhc3RVcGQFA25pbAUBZgECYUcBAmF6CQC5CQIJAMwIAgIIJXMlcyVzJXMJAMwIAgUCYXoJAMwIAgIGY29tbW9uCQDMCAICBWxwSW50BQNuaWwFAWYBAmFIAQJhegkAuQkCCQDMCAICCCVzJXMlcyVzCQDMCAIFAmF6CQDMCAICBmNvbW1vbgkAzAgCAgZscEludEgFA25pbAUBZgECYUkCAmF6AmFCCQC5CQIJAMwIAgIIJXMlcyVzJXMJAMwIAgUCYXoJAMwIAgUCYUIJAMwIAgIFbHBJbnQFA25pbAUBZgECYUoCAmF6AmFCCQC5CQIJAMwIAgIIJXMlcyVzJXMJAMwIAgUCYXoJAMwIAgUCYUIJAMwIAgIGbHBJbnRIBQNuaWwFAWYBAmFLAQJhegkAuQkCCQDMCAICAiVzCQDMCAIFAmF6CQDMCAICB3d4UGVyTHAFA25pbAUBZgECYUwBAmF6CQC5CQIJAMwIAgICJXMJAMwIAgUCYXoJAMwIAgIKd3hQZXJMcFgxOAUDbmlsBQFmAQJhTQICYXoCYUIJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCBQJhegkAzAgCBQJhQgkAzAgCAgV1SW50TAUDbmlsBQFmAQJhTgMCYU8CYUICYVAJALkJAgkAzAgCAhElcyVzJXMlc19faGlzdG9yeQkAzAgCBQJhTwkAzAgCBQJhQgkAzAgCBQJhUAUDbmlsBQFmAQJhUQQCYUICYXoCYU8CYVIJALkJAgkAzAgCAgwlcyVzJXMlZCVkJWQJAMwIAgUCYUIJAMwIAgUCYXoJAMwIAgUCYU8JAMwIAgkApAMBBQZoZWlnaHQJAMwIAgkApAMBCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQCkAwEFAmFSBQNuaWwFAWYBAmFTBQJhTwJhQgJhegJhUgJhVAkBC1N0cmluZ0VudHJ5AgkBAmFOAwUCYU8FAmFCCQDYBAEFAmFUCQECYVEEBQJhQgUCYXoFAmFPBQJhUgACYVUJAQF0AgUEdGhpcwkBAUoAAAJhVgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYVUAAmFoCQECYWYBBQJhVgACYVcJAQJhaQEFAmFoAAJhWAkBAmFnAQUCYWgAAmFZCgACYVoJAPwHBAUCYVcCFWdldEJvb3N0Q29lZmZSRUFET05MWQUDbmlsBQNuaWwDCQABAgUCYVoCA0ludAUCYVoJAAIBCQCsAgIJAAMBBQJhWgIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AQJiYQECYXoJALkJAgkAzAgCAgQlcyVzCQDMCAIFAmF6CQDMCAICCG5leHRVc2VyBQNuaWwFAWYBAmJiAQJhegkAuQkCCQDMCAICBXVzZXJzCQDMCAIFAmF6BQNuaWwFAWYBAmJjAQJiZAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQJiZAkAzAgCAgRoZWFkBQNuaWwFAWYBAmJlAQJiZAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQJiZAkAzAgCAgRzaXplBQNuaWwFAWYBAmJmAgJiZAJiZwkAuQkCCQDMCAICCCVzJXMlcyVzCQDMCAIFAmJkCQDMCAIFAmJnCQDMCAICBHByZXYFA25pbAUBZgECYmgCAmJkAmJnCQC5CQIJAMwIAgIIJXMlcyVzJXMJAMwIAgUCYmQJAMwIAgUCYmcJAMwIAgIEbmV4dAUDbmlsBQFmAQJiaQICYmQCYmcEAmJqCQCdCAIFBHRoaXMJAQJiYwEFAmJkBAJiawkAnQgCBQR0aGlzCQECYmYCBQJiZAUCYmcEAmJsCQCdCAIFBHRoaXMJAQJiaAIFAmJkBQJiZwMDCQAAAgUCYmcJAQt2YWx1ZU9yRWxzZQIFAmJqAgAGCQECIT0CBQJiawUEdW5pdAYJAQIhPQIFAmJsBQR1bml0AQJibQICYmQCYmcEAmJqCQCdCAIFBHRoaXMJAQJiYwEFAmJkBAJibgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYmUBBQJiZAAABAJibwMJAQEhAQkBAmJpAgUCYmQFAmJnBgkAAgECC05vZGUgZXhpc3RzAwkAAAIFAmJvBQJibwkAzggCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJiZQEFAmJkCQBkAgUCYm4AAQUDbmlsAwkBAiE9AgUCYmoFBHVuaXQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmJoAgUCYmQFAmJnCQEFdmFsdWUBBQJiagkAzAgCCQELU3RyaW5nRW50cnkCCQECYmYCBQJiZAkBBXZhbHVlAQUCYmoFAmJnBQNuaWwFA25pbAkAzAgCCQELU3RyaW5nRW50cnkCCQECYmMBBQJiZAUCYmcFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECYnACAmJkAmJnBAJiagkAnQgCBQR0aGlzCQECYmMBBQJiZAQCYm4JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmJlAQUCYmQAAAQCYmsJAJ0IAgUEdGhpcwkBAmJmAgUCYmQFAmJnBAJibAkAnQgCBQR0aGlzCQECYmgCBQJiZAUCYmcJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmJlAQUCYmQJAGUCBQJibgABBQNuaWwDAwkBAiE9AgUCYmsFBHVuaXQJAQIhPQIFAmJsBQR1bml0BwkAzAgCCQELU3RyaW5nRW50cnkCCQECYmgCBQJiZAkBBXZhbHVlAQUCYmsJAQV2YWx1ZQEFAmJsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJiZgIFAmJkCQEFdmFsdWUBBQJibAkBBXZhbHVlAQUCYmsJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmJmAgUCYmQFAmJnCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJiaAIFAmJkBQJiZwUDbmlsAwkBAiE9AgUCYmwFBHVuaXQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmJjAQUCYmQJAQV2YWx1ZQEFAmJsCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJiaAIFAmJkBQJiZwkAzAgCCQELRGVsZXRlRW50cnkBCQECYmYCBQJiZAkBBXZhbHVlAQUCYmwFA25pbAMJAQIhPQIFAmJrBQR1bml0CQDMCAIJAQtEZWxldGVFbnRyeQEJAQJiZgIFAmJkBQJiZwkAzAgCCQELRGVsZXRlRW50cnkBCQECYmgCBQJiZAkBBXZhbHVlAQUCYmsFA25pbAMJAAACBQJiZwkBC3ZhbHVlT3JFbHNlAgUCYmoCAAkAzAgCCQELRGVsZXRlRW50cnkBCQECYmMBBQJiZAUDbmlsCQACAQkArAICCQCsAgIJAKwCAgIOaW52YWxpZCBub2RlOiAFAmJkAgEuBQJiZwECYnEEAmJyAmJzAmJ0AmJ1AwMJAAACBQJicwUBaAkAvwICBQJicgUBaAcFAWgDCQAAAgUCYnIFAWgFAmJ0AwMJAL8CAgUCYnMFAWgJAL8CAgUCYnIFAWgHCQEFdmFsdWUBCQCoAwEJAQF0AgUEdGhpcwUCYnUJAAIBAi1jYWxjV3hQZXJMcEludGVncmFsVXNlckxhc3Q6IHVuZXhwZWN0ZWQgc3RhdGUBAmJ2AwJhcgJidwJieAQCYnkJAQJhcwEFAmFyBAJiegkAtgIBCQECYXgBBQJieQQCYkEDCQAAAgUCYnoFAWgFAWkFAmJ6BAJiQgkBEUBleHRyTmF0aXZlKDEwNTApAgUCYVYJAQJhYgEFAmJ3BAJiQwkBAUECBQJhVwkBAmFtAAQCYkQJAGgCCQEBQQIFAmFXCQECYWsABQFiBAJiRQkAawMFAmJEBQJiQgkAaAIFAWcFAmFZBAJiRgkBAmFHAQUCYXIEAmJHCQECYUgBBQJhcgQCYkgJAQJhSwEFAmFyBAJiSQkBAXkDBQR0aGlzBQJiRwUCYkMEAmJKCQEBQgIFBHRoaXMFAmJGBAJiSwAABAJiTAkAlgMBCQDMCAIJAGUCBQZoZWlnaHQFAmJJCQDMCAIAAAUDbmlsBAJiTQMJAQIhPQIFAmJLAAAJALYCAQUCYksJALwCAwkAtgIBBQJiRQkAtgIBBQFjBQJiQQQCYk4JALcCAgUCYnoJALYCAQUCYngEAmJPAwkAAAIFAmJOBQFoBQFpBQJiTgQCYnQJALcCAgUCYkoJALkCAgUCYk0JALYCAQUCYkwEAmJQCQC6AgIJALYCAQUCYkUFAmJPBAJiUQUGaGVpZ2h0BAJiUgkAuQkCCQDMCAIJAKYDAQUCYnQJAMwIAgkApAMBBQJiTAkAzAgCCQCmAwEFAmJNCQDMCAIJAKYDAQUCYnoJAMwIAgkApAMBBQJiRQkAzAgCCQCkAwEFAmJECQDMCAIJAKQDAQUCYkIFA25pbAICOjoJAJUKAwUCYnQJAMwIAgkBC1N0cmluZ0VudHJ5AgUCYkYJAKYDAQUCYnQJAMwIAgkBDEludGVnZXJFbnRyeQIFAmJHBQJiUQkAzAgCCQELU3RyaW5nRW50cnkCBQJiSAkApgMBBQJiUAUDbmlsBQJiUgECYlMEAmFyAmFxAmJ3AmJ4BAJiVAkBAmJ2AwUCYXIFAmJ3BQJieAQCYnQIBQJiVAJfMQQCYlUIBQJiVAJfMgQCYlYIBQJiVAJfMwQCYlcJAQJhcAIFAmFxBQJhcgQCYnIJAQJheAEFAmJXBAJiWAkBAmFJAgUCYXIFAmFxBAJiWQkBAmFKAgUCYXIFAmFxBAJidQkBAmFNAgUCYXIFAmFxBAJiWgkBAUICBQR0aGlzBQJiWAQCYnMJAQF4AgUEdGhpcwUCYlkEAmNhCQECYnEECQC2AgEFAmJyCQC2AgEFAmJzBQJidAUCYnUEAmNiCQBoAgUBYwUBYgQCY2MJAJgDAQkAzAgCCQC3AgIFAmJaCQC8AgMJALgCAgUCYnQFAmNhCQC2AgEFAmJyCQC2AgEFAmNiCQDMCAIFAWgFA25pbAQCY2QFAmJ0BAJjZQUGaGVpZ2h0BAJiUgkAuQkCCQDMCAIJAKYDAQUCYloJAMwIAgkApgMBBQJjYQkAzAgCCQCkAwEFAmJyCQDMCAIFAmJWCQDMCAIJAKQDAQUGaGVpZ2h0BQNuaWwCAjo6CQCVCgMFAmNjCQDOCAIFAmJVCQDMCAIJAQtTdHJpbmdFbnRyeQIFAmJYCQCmAwEFAmNjCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJiWQUCY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgUCYnUJAKYDAQUCY2QFA25pbAUCYlIBAmNmAAQBbAkAoggBCQEBVAADCQABAgUBbAIGU3RyaW5nBAFEBQFsCQDZBAEFAUQDCQABAgUBbAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJjZwAEAWwJAKIIAQkBAVUAAwkAAQIFAWwCBlN0cmluZwQBRAUBbAkA2QQBBQFEAwkAAQIFAWwCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgACY2gJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAECY2kBAmNqAwkAAAIIBQJjagZjYWxsZXIFBHRoaXMGBQJjaAECY2sBAmNqBAFsCQECY2YAAwkAAQIFAWwCCkJ5dGVWZWN0b3IEAmNsBQFsAwkAAAIIBQJjag9jYWxsZXJQdWJsaWNLZXkFAmNsBgUCY2gDCQABAgUBbAIEVW5pdAMJAAACCAUCY2oGY2FsbGVyBQR0aGlzBgUCY2gJAAIBAgtNYXRjaCBlcnJvcg0CY2oBC2NvbnN0cnVjdG9yAQJjbQQCY24JAQJjawEFAmNqAwkAAAIFAmNuBQJjbgkAzAgCCQELU3RyaW5nRW50cnkCCQEBSgAFAmNtBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY2oBDWNvbnN0cnVjdG9yVjIBAmNvBAJjcAkAzAgCCQECY2sBBQJjagkAzAgCAwkBAiE9AgkApggBBQJjbwUEdW5pdAYCKGludmFsaWQgdm90aW5nIGVtaXNzaW9uIGNvbnRyYWN0IGFkZHJlc3MFA25pbAMJAAACBQJjcAUCY3AJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUsABQJjbwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNqAQpzZXRNYW5hZ2VyAQJjcQQCY24JAQJjawEFAmNqAwkAAAIFAmNuBQJjbgQCY3IJANkEAQUCY3EDCQAAAgUCY3IFAmNyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFVAAUCY3EFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjagEOY29uZmlybU1hbmFnZXIABAJjcwkBAmNnAAQCY3QDCQEJaXNEZWZpbmVkAQUCY3MGCQACAQISTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmN0BQJjdAQCY3UDCQAAAggFAmNqD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCY3MGCQACAQIbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmN1BQJjdQkAzAgCCQELU3RyaW5nRW50cnkCCQEBVAAJANgEAQkBBXZhbHVlAQUCY3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAVUABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY2oBBXN0YWtlAAMJAQIhPQIJAJADAQgFAmNqCHBheW1lbnRzAAEJAAIBAjRpbnZhbGlkIHBheW1lbnQgLSBleGFjdCBvbmUgcGF5bWVudCBtdXN0IGJlIGF0dGFjaGVkBAJjdgkAkQMCCAUCY2oIcGF5bWVudHMAAAQCYXoJAQV2YWx1ZQEIBQJjdgdhc3NldElkBAJhcgkA2AQBBQJhegQCYVIIBQJjdgZhbW91bnQEAmJ3CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYVYJAQFYAQUCYXIJAKwCAgIVdW5zdXBwb3J0ZWQgbHAgYXNzZXQgBQJhcgQCY3cJAKUIAQgFAmNqBmNhbGxlcgQCYXEDCQAAAgUCY3cFAmJ3CQClCAEIBQJjagxvcmlnaW5DYWxsZXIFAmN3BAJiVwkBAmFwAgUCYXEFAmFyBAJieQkBAmFzAQUCYXIEAmJyCQECYXgBBQJiVwQCYnoJAQJheAEFAmJ5BAJjeAkBAmJTBAUCYXIFAmFxBQJidwUCYVIEAmNjCAUCY3gCXzEEAmN5CAUCY3gCXzIEAmJSCAUCY3gCXzMEAmJkCQECYmIBBQJhcgQCY3oDCQECYmkCBQJiZAUCYXEFA25pbAkBAmJtAgUCYmQFAmFxCQDOCAIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCYlcJAGQCBQJicgUCYVIJAMwIAgkBDEludGVnZXJFbnRyeQIFAmJ5CQBkAgUCYnoFAmFSCQDMCAIJAQJhUwUCBXN0YWtlBQJhcQUCYXIFAmFSCAUCY2oNdHJhbnNhY3Rpb25JZAUDbmlsBQJjeQUCY3oCY2oBB3Vuc3Rha2UCAmFyAmFSBAJhegkA2QQBBQJhcgQCYncJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQJhVgkBAVgBBQJhcgkArAICAhV1bnN1cHBvcnRlZCBscCBhc3NldCAFAmFyBAJjQQkBC3ZhbHVlT3JFbHNlAgkAnQgCCQERQGV4dHJOYXRpdmUoMTA2MikBBQJidwkBAVcABQJidwQCY3cJAKUIAQgFAmNqBmNhbGxlcgQCYXEDAwkAAAIFAmN3BQJidwYJAAACBQJjdwUCY0EJAKUIAQgFAmNqDG9yaWdpbkNhbGxlcgUCY3cEAmJXCQECYXACBQJhcQUCYXIEAmJ5CQECYXMBBQJhcgQCYnIJAQJheAEFAmJXBAJiegkBAmF4AQUCYnkEAmN5CAkBAmJTBAUCYXIFAmFxBQJidwkBAS0BBQJhUgJfMgQCYmQJAQJiYgEFAmFyBAJjegMDCQECYmkCBQJiZAUCYXEJAAACBQJhUgUCYnIHCQECYnACBQJiZAUCYXEFA25pbAQCY0IJAQFCAgUEdGhpcwkBAmF1AgUCYXIFAmFxBAJjQwkBAXcCBQJhVgkBAmFhAQUCYXIEAmNjCAkBAmJTBAUCYXIFAmFxBQJjQwAAAl8xBAJjRAkAuAICBQJjYwUCY0IEAmNFAwkAvwICBQJjRAUBaAkA/AcEBQR0aGlzAg9jbGFpbVd4SU5URVJOQUwJAMwIAgUCYXIJAMwIAgUCYXEFA25pbAUDbmlsBQR1bml0AwkAAAIFAmNFBQJjRQMJAGYCBQJhUgUCYnIJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICDnBhc3NlZCBhbW91bnQ9CQCkAwEFAmFSAhsgaXMgZ3JlYXRlciB0aGFuIGF2YWlsYWJsZT0JAKQDAQUCYnICDC4gbHBBc3NldElkPQUCYXICEi4gc3Rha2VkQnlVc2VyS0VZPQUCYlcJAM4IAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJiVwkAZQIFAmJyBQJhUgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCYnkJAGUCBQJiegUCYVIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmNqBmNhbGxlcgUCYVIFAmF6CQDMCAIJAQJhUwUCB3Vuc3Rha2UFAmFxBQJhcgUCYVIIBQJjag10cmFuc2FjdGlvbklkBQNuaWwFAmN5BQJjegkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjagEHY2xhaW1XeAECYXIEAmFxCQClCAEIBQJjagZjYWxsZXIEAmNGCQD8BwQFBHRoaXMCD2NsYWltV3hJTlRFUk5BTAkAzAgCBQJhcgkAzAgCBQJhcQUDbmlsBQNuaWwJAJQKAgUDbmlsBQJjRgJjagEPY2xhaW1XeElOVEVSTkFMAgJhcgJhcQQCY24JAQJjaQEFAmNqAwkAAAIFAmNuBQJjbgQCYUIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBBQJhcQIlY2xhaW1XeElOVEVSTkFMOiBpbnZhbGlkIHVzZXIgYWRkcmVzcwQCYncJAQF3AgUCYVYJAQJhYQEFAmFyBAJjRwkBAmF0AgUCYXIFAmFxBAJjSAkBAmF3AQUCYXIEAmNJCQECYXUCBQJhcgUCYXEEAmNKCQECYXYCBQJhcgUCYXEEAmNLCQEBQgIFBHRoaXMFAmNHBAJjQgkBAUICBQR0aGlzBQJjSQQCY0wJAQFCAgUEdGhpcwUCY0oEAmNNCQEBQgIFBHRoaXMFAmNIBAJjTgkBAmJTBAUCYXIFAmFxBQJidwAABAJjYwgFAmNOAl8xBAJjeQgFAmNOAl8yBAJiUggFAmNOAl8zBAJjRAkAmAMBCQDMCAIJALgCAgUCY2MFAmNCCQDMCAIFAWgFA25pbAMJAMACAgUBaAUCY0QJAAIBAhBub3RoaW5nIHRvIGNsYWltBAJjTwkAlgMBCQDMCAIJAQFuAQkAkQMCCQEBagEJAPwHBAUCYVgCDGNsYWltV3hCb29zdAkAzAgCBQJhcgkAzAgCBQJhcQUDbmlsBQNuaWwAAAkAzAgCAAAFA25pbAQCY1AFAmNEBAJjUQkAmQMBCQDMCAIJALkCAgUCY1AJALYCAQkAZQIFAmFZAAEJAMwIAgkAtgIBBQJjTwUDbmlsBAJjUgkBAXIBCQCRAwIJAQFqAQkA/AcEBQJhVwIEZW1pdAkAzAgCCQCgAwEFAmNQBQNuaWwFA25pbAAABAJjUwkBAWoBCQD8BwQFAmFXAgRlbWl0CQDMCAIJAKADAQUCY1EFA25pbAUDbmlsAwkAAAIFAmNTBQJjUwQCY1QJALcCAgkAtwICBQJjSwUCY1AFAmNRBAJjVQkAtwICBQJjQgUCY1AEAmNWCQC3AgIFAmNMBQJjUQQCY1cJALcCAgUCY00FAmNECQDMCAIJAQtTdHJpbmdFbnRyeQIFAmNHCQCmAwEFAmNUCQDMCAIJAQtTdHJpbmdFbnRyeQIFAmNJCQCmAwEFAmNVCQDMCAIJAQtTdHJpbmdFbnRyeQIFAmNKCQCmAwEFAmNWCQDMCAIJAQtTdHJpbmdFbnRyeQIFAmNICQCmAwEFAmNXCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFCCQCgAwEFAmNQBQJjUgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhQgkAoAMBBQJjUQUCY1IJAMwIAgkBAmFTBQIFY2xhaW0FAmFxBQJhcgkAoAMBBQJjRAgFAmNqDXRyYW5zYWN0aW9uSWQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjagEbY2xhaW1XeEJ1bGtJbnRlcm5hbFJFQURPTkxZBAJjWAJjWQJhcQJjWgMJAAACBQJjWAkAkAMBBQJjWQkAlAoCBQNuaWwFAmNaBAJhegkAkQMCBQJjWQUCY1gEAmRhCQC1CQIKAAJhWgkA/AcEBQR0aGlzAg9jbGFpbVd4UkVBRE9OTFkJAMwIAgUCYXoJAMwIAgUCYXEFA25pbAUDbmlsAwkAAQIFAmFaAgZTdHJpbmcFAmFaCQACAQkArAICCQADAQUCYVoCGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwUBZgQCZGIJAJEDAgUCZGEAAwQCZGMJAJEDAgUCZGEABAQCZGQJAM0IAgUCY1oJALkJAgkAzAgCAgQlZCVkCQDMCAIFAmRiCQDMCAIFAmRjBQNuaWwFAWYEAmRlCgACYVoJAPwHBAUEdGhpcwIbY2xhaW1XeEJ1bGtJbnRlcm5hbFJFQURPTkxZCQDMCAIJAGQCBQJjWAABCQDMCAIFAmNZCQDMCAIFAmFxCQDMCAIFAmRkBQNuaWwFA25pbAMJAAECBQJhWgIJTGlzdFtBbnldBQJhWgkAAgEJAKwCAgkAAwEFAmFaAh4gY291bGRuJ3QgYmUgY2FzdCB0byBMaXN0W0FueV0DCQAAAgUCZGUFAmRlCQCUCgIFA25pbAUCZGUJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY2oBE2NsYWltV3hCdWxrUkVBRE9OTFkCAmNZAmFxBAJkZAkA/AcEBQR0aGlzAhtjbGFpbVd4QnVsa0ludGVybmFsUkVBRE9OTFkJAMwIAgAACQDMCAIFAmNZCQDMCAIFAmFxCQDMCAIFA25pbAUDbmlsBQNuaWwJAJQKAgUDbmlsBQJkZAJjagEPY2xhaW1XeFJFQURPTkxZAgJhcgJhcQQCYlcJAQJhcAIFAmFxBQJhcgQCYnkJAQJhcwEFAmFyBAJjRwkBAmF0AgUCYXIFAmFxBAJjSQkBAmF1AgUCYXIFAmFxBAJicgkBAmF4AQUCYlcEAmJ6CQECYXgBBQJieQQCY0sJAQFCAgUEdGhpcwUCY0cEAmNCCQEBQgIFBHRoaXMFAmNJBAJidwkBAXcCBQJhVgkBAmFhAQUCYXIEAmJCCQERQGV4dHJOYXRpdmUoMTA1MCkCBQJhVgkBAmFiAQUCYncEAmRmCQEBQQIFAmFXCQECYWsABAJiQwkBAUECBQJhVwkBAmFtAAQCZGcDCQBmAgUCYkMFBmhlaWdodAAACQBlAgUGaGVpZ2h0BQJiQwQCZGgJAGsDCQBoAgUCZGYFAmRnBQJiQgUBZwQCZGkJAGsDBQJkaAUCYnIFAmJ6BAJkagkBAmJTBAUCYXIFAmFxBQJidwAABAJjYwgFAmRqAl8xBAJjeQgFAmRqAl8yBAJiUggFAmRqAl8zBAJjRAkAmAMBCQDMCAIJALgCAgUCY2MFAmNCCQDMCAIFAWgFA25pbAQCZGsJAQFqAQkA/AcEBQJhWAIUY2xhaW1XeEJvb3N0UkVBRE9OTFkJAMwIAgUCYXIJAMwIAgUCYXEFA25pbAUDbmlsBAJjTwkAlgMBCQDMCAIJAQFuAQkAkQMCBQJkawAACQDMCAIAAAUDbmlsBAJkbAkBAXABCQCRAwIFAmRrAAEEAmNQBQJjRAQCY1EJAJkDAQkAzAgCCQC5AgIFAmNQCQC2AgEJAGUCBQJhWQABCQDMCAIJALYCAQUCY08FA25pbAQCZG0JALcCAgUCY1AFAmNRCQCUCgIFA25pbAkAuQkCCQDMCAICDiVzJXMlZCVkJWQlZCVzCQDMCAIFAmFyCQDMCAIFAmFxCQDMCAIJAKYDAQUCZG0JAMwIAgkApgMBBQJjSwkAzAgCCQCmAwEFAmNQCQDMCAIJAKYDAQUCY1EJAMwIAgIEc29vbgUDbmlsBQFmAmNqARJ1c2Vyc0xpc3RUcmF2ZXJzYWwBAmF6BAJjbgMJAAACCQDYBAEICAUCY2oGY2FsbGVyBWJ5dGVzCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQFLAAIABgkBAmNrAQUCY2oDCQAAAgUCY24FAmNuBAJiZAkBAmJiAQUCYXoEAmRuCQCiCAEJAQJiYQEFAmF6BAJiagkAoggBCQECYmMBBQJiZAQBbAUCZG4DCQABAgUBbAIEVW5pdAQCZG8FAmJqAwkAAQIFAmRvAgRVbml0CQCUCgIFA25pbAcDCQABAgUCZG8CBlN0cmluZwQCZHAFAmRvCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmJhAQUCYXoFAmRwBQNuaWwGCQACAQILTWF0Y2ggZXJyb3IDCQABAgUBbAIGU3RyaW5nBAJhQgUBbAQCY0IJAQFCAgUEdGhpcwkBAmF1AgUCYXoFAmFCBAJjQwkBAXcCBQJhVgkBAmFhAQUCYXoEAmNjCAkBAmJTBAUCYXoFAmFCBQJjQwAAAl8xBAJjRAkAuAICBQJjYwUCY0IEAmNFAwkAvwICBQJjRAUBaAkA/AcEBQR0aGlzAg9jbGFpbVd4SU5URVJOQUwJAMwIAgUCYXoJAMwIAgUCYUIFA25pbAUDbmlsBQR1bml0AwkAAAIFAmNFBQJjRQQCZHEJAKIIAQkBAmJoAgUCYmQFAmFCBAJkbwUCZHEDCQABAgUCZG8CBFVuaXQJAJQKAgkAzAgCCQELRGVsZXRlRW50cnkBCQECYmEBBQJhegUDbmlsBwMJAAECBQJkbwIGU3RyaW5nBAJkcgUCZG8JAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQECYmEBBQJhegUCZHIFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECC01hdGNoIGVycm9yCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNqAQ5vbk1vZGlmeVdlaWdodAICYXICYncDCQECIT0CCAUCY2oGY2FsbGVyBQJhVgkAAgECEnBlcm1pc3Npb25zIGRlbmllZAQCZHMJAQJidgMFAmFyBQJidwAABAJidAgFAmRzAl8xBAJiVQgFAmRzAl8yBAJiVggFAmRzAl8zBQJiVQECZHQBAmR1AAQCZHYEAWwJAQJjZgADCQABAgUBbAIKQnl0ZVZlY3RvcgQCY2wFAWwFAmNsAwkAAQIFAWwCBFVuaXQIBQJkdA9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCZHQJYm9keUJ5dGVzCQCRAwIIBQJkdAZwcm9vZnMAAAUCZHZU5e/X", "height": 2450617, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 84N7Zw4RFchFyQEXxV4ri1cWmeA172EEprbaREY9Gt2c Next: 9oVUyT3cLf31dHCmNJ6o5GdSfopCswi7KGYxK7DUdxKb Diff:
OldNewDifferences
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
6-let b = 100000000
6+let b = 1000
77
8-let c = 18
8+let c = 100000000
99
10-let d = toBigInt(1000000000000000000)
10+let d = 18
1111
12-let e = "__"
12+let e = toBigInt(1000000000000000000)
1313
14-let f = b
14+let f = "__"
1515
16-let g = toBigInt(0)
16+let g = c
1717
18-let h = toBigInt(1)
18+let h = toBigInt(0)
1919
20-func i (j) = {
21- let k = j
22- if ($isInstanceOf(k, "List[Any]"))
20+let i = toBigInt(1)
21+
22+func j (k) = {
23+ let l = k
24+ if ($isInstanceOf(l, "List[Any]"))
2325 then {
24- let l = k
25- l
26+ let m = l
27+ m
2628 }
2729 else throw("fail to cast into List[Any]")
2830 }
2931
3032
31-func m (j) = {
32- let k = j
33- if ($isInstanceOf(k, "Int"))
33+func n (k) = {
34+ let l = k
35+ if ($isInstanceOf(l, "Int"))
3436 then {
35- let n = k
36- n
37+ let o = l
38+ o
3739 }
3840 else throw("fail to cast into Int")
3941 }
4042
4143
42-func o (j) = {
43- let k = j
44- if ($isInstanceOf(k, "String"))
44+func p (k) = {
45+ let l = k
46+ if ($isInstanceOf(l, "String"))
4547 then {
46- let p = k
47- p
48+ let q = l
49+ q
4850 }
4951 else throw("fail to cast into Int")
5052 }
5153
5254
53-func q (j) = {
54- let k = j
55- if ($isInstanceOf(k, "ByteVector"))
55+func r (k) = {
56+ let l = k
57+ if ($isInstanceOf(l, "ByteVector"))
5658 then {
57- let r = k
58- r
59+ let s = l
60+ s
5961 }
6062 else throw("fail to cast into Int")
6163 }
6264
6365
64-func s (t,u) = valueOrErrorMessage(getString(t, u), (("mandatory this." + u) + " is not defined"))
66+func t (u,v) = valueOrErrorMessage(getString(u, v), (("mandatory this." + v) + " is not defined"))
6567
6668
67-func v (t,u) = valueOrErrorMessage(getString(t, u), (((("mandatory " + toString(t)) + ".") + u) + " is not defined"))
69+func w (u,v) = valueOrErrorMessage(getString(u, v), (((("mandatory " + toString(u)) + ".") + v) + " is not defined"))
6870
6971
70-func w (t,u) = valueOrElse(getInteger(t, u), 0)
72+func x (u,v) = valueOrElse(getInteger(u, v), 0)
7173
7274
73-func x (t,u,y) = valueOrElse(getInteger(t, u), y)
75+func y (u,v,z) = valueOrElse(getInteger(u, v), z)
7476
7577
76-func z (t,u) = valueOrErrorMessage(getInteger(t, u), (("mandatory this." + u) + " is not defined"))
78+func A (u,v) = valueOrErrorMessage(getInteger(u, v), (("mandatory this." + v) + " is not defined"))
7779
7880
79-func A (t,u) = value(parseBigInt(valueOrElse(getString(t, u), "0")))
81+func B (u,v) = value(parseBigInt(valueOrElse(getString(u, v), "0")))
8082
8183
82-func B (t,u,y) = {
83- let k = getString(t, u)
84- if ($isInstanceOf(k, "String"))
84+func C (u,v,z) = {
85+ let l = getString(u, v)
86+ if ($isInstanceOf(l, "String"))
8587 then {
86- let C = k
87- value(parseBigInt(C))
88+ let D = l
89+ value(parseBigInt(D))
8890 }
89- else if ($isInstanceOf(k, "Unit"))
90- then y
91+ else if ($isInstanceOf(l, "Unit"))
92+ then z
9193 else throw("Match error")
9294 }
9395
9496
95-func D (E,F) = fraction(toBigInt(E), d, toBigInt(F))
97+func E (F,G) = fraction(toBigInt(F), e, toBigInt(G))
9698
9799
98-func G (j,H) = toInt(fraction(j, toBigInt(H), d))
100+func H (k,I) = toInt(fraction(k, toBigInt(I), e))
99101
100102
101-func I () = "%s%s__config__factoryAddress"
103+func J () = "%s%s__config__factoryAddress"
102104
103105
104-func J () = "%s__votingEmissionContract"
106+func K () = "%s__votingEmissionContract"
105107
106108
107-let K = 1
109+let L = 1
108110
109-let L = 2
111+let M = 2
110112
111-let M = 3
113+let N = 3
112114
113-let N = 4
115+let O = 4
114116
115-let O = 5
117+let P = 5
116118
117-let P = 6
119+let Q = 6
118120
119-let Q = 7
121+let R = 7
120122
121-func R () = "%s__factoryConfig"
123+func S () = "%s__factoryConfig"
122124
123125
124-func S () = "%s__managerPublicKey"
126+func T () = "%s__managerPublicKey"
125127
126128
127-func T () = "%s__pendingManagerPublicKey"
129+func U () = "%s__pendingManagerPublicKey"
128130
129131
130-func U () = "%s__stablePoolAddonAddr"
132+func V () = "%s__stablePoolAddonAddr"
131133
132134
133-func V () = "%s__addonAddr"
135+func W () = "%s__addonAddr"
134136
135137
136-func W (X) = makeString(["%s%s%s", X, "mappings__lpAsset2PoolContract"], e)
138+func X (Y) = makeString(["%s%s%s", Y, "mappings__lpAsset2PoolContract"], f)
137139
138140
139-func Y () = "%s__lpTokensList"
141+func Z () = "%s__lpTokensList"
140142
141143
142-func Z (X) = makeString(["%s%s%s", X, "mappings__lpAsset2PoolContract"], e)
144+func aa (Y) = makeString(["%s%s%s", Y, "mappings__lpAsset2PoolContract"], f)
143145
144146
145-func aa (ab) = makeString(["%s%s", "poolWeight", ab], e)
147+func ab (ac) = makeString(["%s%s", "poolWeight", ac], f)
146148
147149
148-func ac (ad) = split(valueOrElse(getString(ad, Y()), ""), e)
150+func ad (ae) = split(valueOrElse(getString(ae, Z()), ""), f)
149151
150152
151-func ae (ad) = split(v(ad, R()), e)
153+func af (ae) = split(w(ae, S()), f)
152154
153155
154-func af (ag) = addressFromStringValue(ag[L])
156+func ag (ah) = addressFromStringValue(ah[M])
155157
156158
157-func ah (ag) = addressFromStringValue(ag[O])
159+func ai (ah) = addressFromStringValue(ah[P])
158160
159161
160-func ai (ag) = addressFromStringValue(ag[K])
162+func aj (ah) = addressFromStringValue(ah[L])
161163
162164
163-func aj () = "%s%s__ratePerBlock__current"
165+func ak () = "%s%s__ratePerBlock__current"
164166
165167
166-func ak () = "%s%s__ratePerBlockMax__current"
168+func al () = "%s%s__ratePerBlockMax__current"
167169
168170
169-func al () = "%s%s__emission__startBlock"
171+func am () = "%s%s__emission__startBlock"
170172
171173
172-func am () = "%s%s__emission__duration"
174+func an () = "%s%s__emission__duration"
173175
174176
175-func an () = "%s%s__emission__endBlock"
177+func ao () = "%s%s__emission__endBlock"
176178
177179
178-func ao (ap,aq) = makeString(["%s%s%s__staked", ap, aq], e)
180+func ap (aq,ar) = makeString(["%s%s%s__staked", aq, ar], f)
179181
180182
181-func ar (aq) = ("%s%s%s__staked__total__" + aq)
183+func as (ar) = ("%s%s%s__staked__total__" + ar)
182184
183185
184-func as (aq,ap) = makeString(["%s%s%s__claimed", ap, aq], e)
186+func at (ar,aq) = makeString(["%s%s%s__claimed", aq, ar], f)
185187
186188
187-func at (aq,ap) = makeString(["%s%s%s__claimedMinReward", ap, aq], e)
189+func au (ar,aq) = makeString(["%s%s%s__claimedMinReward", aq, ar], f)
188190
189191
190-func au (aq,ap) = makeString(["%s%s%s__claimedBoostReward", ap, aq], e)
192+func av (ar,aq) = makeString(["%s%s%s__claimedBoostReward", aq, ar], f)
191193
192194
193-func av (aq) = makeString(["%s%s%s__claimed__total", aq], e)
195+func aw (ar) = makeString(["%s%s%s__claimed__total", ar], f)
194196
195197
196-func aw (u) = valueOrElse(getInteger(this, u), 0)
198+func ax (v) = valueOrElse(getInteger(this, v), 0)
197199
198200
199-func ax (ay) = makeString(["%s%s%s", ay, "total", "bal"], e)
201+func ay (az) = makeString(["%s%s%s", az, "total", "bal"], f)
200202
201203
202-func az (ay,aA) = makeString(["%s%s%s", ay, aA, "bal"], e)
204+func aA (az,aB) = makeString(["%s%s%s", az, aB, "bal"], f)
203205
204206
205-func aB (ay) = makeString(["%s%s%s", ay, "total", "balINT"], e)
207+func aC (az) = makeString(["%s%s%s", az, "total", "balINT"], f)
206208
207209
208-func aC (ay,aA) = makeString(["%s%s%s", ay, aA, "balINT"], e)
210+func aD (az,aB) = makeString(["%s%s%s", az, aB, "balINT"], f)
209211
210212
211-func aD (ay) = makeString(["%s%s%s", ay, "total", "lastUpd"], e)
213+func aE (az) = makeString(["%s%s%s", az, "total", "lastUpd"], f)
212214
213215
214-func aE (ay,aA) = makeString(["%s%s%s", ay, aA, "lastUpd"], e)
216+func aF (az,aB) = makeString(["%s%s%s", az, aB, "lastUpd"], f)
215217
216218
217-func aF (ay) = makeString(["%s%s%s%s", ay, "common", "lpInt"], e)
219+func aG (az) = makeString(["%s%s%s%s", az, "common", "lpInt"], f)
218220
219221
220-func aG (ay) = makeString(["%s%s%s%s", ay, "common", "lpIntH"], e)
222+func aH (az) = makeString(["%s%s%s%s", az, "common", "lpIntH"], f)
221223
222224
223-func aH (ay,aA) = makeString(["%s%s%s%s", ay, aA, "lpInt"], e)
225+func aI (az,aB) = makeString(["%s%s%s%s", az, aB, "lpInt"], f)
224226
225227
226-func aI (ay,aA) = makeString(["%s%s%s%s", ay, aA, "lpIntH"], e)
228+func aJ (az,aB) = makeString(["%s%s%s%s", az, aB, "lpIntH"], f)
227229
228230
229-func aJ (ay) = makeString(["%s", ay, "wxPerLp"], e)
231+func aK (az) = makeString(["%s", az, "wxPerLp"], f)
230232
231233
232-func aK (ay) = makeString(["%s", ay, "wxPerLpX18"], e)
234+func aL (az) = makeString(["%s", az, "wxPerLpX18"], f)
233235
234236
235-func aL (ay,aA) = makeString(["%s%s%s%s", ay, aA, "uIntL"], e)
237+func aM (az,aB) = makeString(["%s%s%s%s", az, aB, "uIntL"], f)
236238
237239
238-func aM (aN,aA,aO) = makeString(["%s%s%s%s__history", aN, aA, aO], e)
240+func aN (aO,aB,aP) = makeString(["%s%s%s%s__history", aO, aB, aP], f)
239241
240242
241-func aP (aA,ay,aN,aQ) = makeString(["%s%s%s%d%d%d", aA, ay, aN, toString(height), toString(lastBlock.timestamp), toString(aQ)], e)
243+func aQ (aB,az,aO,aR) = makeString(["%s%s%s%d%d%d", aB, az, aO, toString(height), toString(lastBlock.timestamp), toString(aR)], f)
242244
243245
244-func aR (aN,aA,ay,aQ,aS) = StringEntry(aM(aN, aA, toBase58String(aS)), aP(aA, ay, aN, aQ))
246+func aS (aO,aB,az,aR,aT) = StringEntry(aN(aO, aB, toBase58String(aT)), aQ(aB, az, aO, aR))
245247
246248
247-let aT = s(this, I())
249+let aU = t(this, J())
248250
249-let aU = addressFromStringValue(aT)
251+let aV = addressFromStringValue(aU)
250252
251-let ag = ae(aU)
253+let ah = af(aV)
252254
253-let aV = ah(ag)
255+let aW = ai(ah)
254256
255-let aW = af(ag)
257+let aX = ag(ah)
256258
257-func aX (ay) = makeString(["%s%s", ay, "nextUser"], e)
259+let aY = {
260+ let aZ = invoke(aW, "getBoostCoeffREADONLY", nil, nil)
261+ if ($isInstanceOf(aZ, "Int"))
262+ then aZ
263+ else throw(($getType(aZ) + " couldn't be cast to Int"))
264+ }
265+
266+func ba (az) = makeString(["%s%s", az, "nextUser"], f)
258267
259268
260-func aY (ay) = makeString(["users", ay], e)
269+func bb (az) = makeString(["users", az], f)
261270
262271
263-func aZ (ba) = makeString(["%s%s%s", ba, "head"], e)
272+func bc (bd) = makeString(["%s%s%s", bd, "head"], f)
264273
265274
266-func bb (ba) = makeString(["%s%s%s", ba, "size"], e)
275+func be (bd) = makeString(["%s%s%s", bd, "size"], f)
267276
268277
269-func bc (ba,bd) = makeString(["%s%s%s%s", ba, bd, "prev"], e)
278+func bf (bd,bg) = makeString(["%s%s%s%s", bd, bg, "prev"], f)
270279
271280
272-func be (ba,bd) = makeString(["%s%s%s%s", ba, bd, "next"], e)
281+func bh (bd,bg) = makeString(["%s%s%s%s", bd, bg, "next"], f)
273282
274283
275-func bf (ba,bd) = {
276- let bg = getString(this, aZ(ba))
277- let bh = getString(this, bc(ba, bd))
278- let bi = getString(this, be(ba, bd))
279- if (if ((bd == valueOrElse(bg, "")))
284+func bi (bd,bg) = {
285+ let bj = getString(this, bc(bd))
286+ let bk = getString(this, bf(bd, bg))
287+ let bl = getString(this, bh(bd, bg))
288+ if (if ((bg == valueOrElse(bj, "")))
280289 then true
281- else (bh != unit))
290+ else (bk != unit))
282291 then true
283- else (bi != unit)
292+ else (bl != unit)
284293 }
285294
286295
287-func bj (ba,bd) = {
288- let bg = getString(this, aZ(ba))
289- let bk = valueOrElse(getInteger(this, bb(ba)), 0)
290- let bl = if (!(bf(ba, bd)))
296+func bm (bd,bg) = {
297+ let bj = getString(this, bc(bd))
298+ let bn = valueOrElse(getInteger(this, be(bd)), 0)
299+ let bo = if (!(bi(bd, bg)))
291300 then true
292301 else throw("Node exists")
293- if ((bl == bl))
294- then (([IntegerEntry(bb(ba), (bk + 1))] ++ (if ((bg != unit))
295- then [StringEntry(be(ba, bd), value(bg)), StringEntry(bc(ba, value(bg)), bd)]
296- else nil)) ++ [StringEntry(aZ(ba), bd)])
302+ if ((bo == bo))
303+ then (([IntegerEntry(be(bd), (bn + 1))] ++ (if ((bj != unit))
304+ then [StringEntry(bh(bd, bg), value(bj)), StringEntry(bf(bd, value(bj)), bg)]
305+ else nil)) ++ [StringEntry(bc(bd), bg)])
297306 else throw("Strict value is not equal to itself.")
298307 }
299308
300309
301-func bm (ba,bd) = {
302- let bg = getString(this, aZ(ba))
303- let bk = valueOrElse(getInteger(this, bb(ba)), 0)
304- let bh = getString(this, bc(ba, bd))
305- let bi = getString(this, be(ba, bd))
306- ([IntegerEntry(bb(ba), (bk - 1))] ++ (if (if ((bh != unit))
307- then (bi != unit)
310+func bp (bd,bg) = {
311+ let bj = getString(this, bc(bd))
312+ let bn = valueOrElse(getInteger(this, be(bd)), 0)
313+ let bk = getString(this, bf(bd, bg))
314+ let bl = getString(this, bh(bd, bg))
315+ ([IntegerEntry(be(bd), (bn - 1))] ++ (if (if ((bk != unit))
316+ then (bl != unit)
308317 else false)
309- then [StringEntry(be(ba, value(bh)), value(bi)), StringEntry(bc(ba, value(bi)), value(bh)), DeleteEntry(bc(ba, bd)), DeleteEntry(be(ba, bd))]
310- else if ((bi != unit))
311- then [StringEntry(aZ(ba), value(bi)), DeleteEntry(be(ba, bd)), DeleteEntry(bc(ba, value(bi)))]
312- else if ((bh != unit))
313- then [DeleteEntry(bc(ba, bd)), DeleteEntry(be(ba, value(bh)))]
314- else if ((bd == valueOrElse(bg, "")))
315- then [DeleteEntry(aZ(ba))]
316- else throw(((("invalid node: " + ba) + ".") + bd))))
318+ then [StringEntry(bh(bd, value(bk)), value(bl)), StringEntry(bf(bd, value(bl)), value(bk)), DeleteEntry(bf(bd, bg)), DeleteEntry(bh(bd, bg))]
319+ else if ((bl != unit))
320+ then [StringEntry(bc(bd), value(bl)), DeleteEntry(bh(bd, bg)), DeleteEntry(bf(bd, value(bl)))]
321+ else if ((bk != unit))
322+ then [DeleteEntry(bf(bd, bg)), DeleteEntry(bh(bd, value(bk)))]
323+ else if ((bg == valueOrElse(bj, "")))
324+ then [DeleteEntry(bc(bd))]
325+ else throw(((("invalid node: " + bd) + ".") + bg))))
317326 }
318327
319328
320-func bn (bo,bp,bq,br) = if (if ((bp == g))
321- then (bo > g)
329+func bq (br,bs,bt,bu) = if (if ((bs == h))
330+ then (br > h)
322331 else false)
323- then g
324- else if ((bo == g))
325- then bq
326- else if (if ((bp > g))
327- then (bo > g)
332+ then h
333+ else if ((br == h))
334+ then bt
335+ else if (if ((bs > h))
336+ then (br > h)
328337 else false)
329- then value(parseBigInt(s(this, br)))
338+ then value(parseBigInt(t(this, bu)))
330339 else throw("calcWxPerLpIntegralUserLast: unexpected state")
331340
332341
333-func bs (aq,bt,bu) = {
334- let bv = ar(aq)
335- let bw = toBigInt(aw(bv))
336- let bx = if ((bw == g))
337- then h
338- else bw
339- let by = getIntegerValue(aU, aa(bt))
340- let bz = z(aV, al())
341- let bA = 1000
342- let bB = (z(aV, aj()) * bA)
343- let bC = fraction(bB, by, (f * 3))
344- let bD = aF(aq)
345- let bE = aG(aq)
346- let bF = aJ(aq)
347- let bG = x(this, bE, bz)
348- let bH = A(this, bD)
349- let bI = 0
350- let bJ = max([(height - bG), 0])
351- let bK = if ((bI != 0))
352- then toBigInt(bI)
353- else fraction(toBigInt(bC), toBigInt(b), bx)
354- let bL = (bw + toBigInt(bu))
355- let bM = if ((bL == g))
356- then h
357- else bL
358- let bq = (bH + (bK * toBigInt(bJ)))
359- let bN = (toBigInt(bC) / bM)
360- let bO = height
361- let bP = makeString([toString(bq), toString(bJ), toString(bK), toString(bw), toString(bC), toString(bB), toString(by)], "::")
362- $Tuple3(bq, [StringEntry(bD, toString(bq)), IntegerEntry(bE, bO), StringEntry(bF, toString(bN))], bP)
342+func bv (ar,bw,bx) = {
343+ let by = as(ar)
344+ let bz = toBigInt(ax(by))
345+ let bA = if ((bz == h))
346+ then i
347+ else bz
348+ let bB = getIntegerValue(aV, ab(bw))
349+ let bC = A(aW, am())
350+ let bD = (A(aW, ak()) * b)
351+ let bE = fraction(bD, bB, (g * aY))
352+ let bF = aG(ar)
353+ let bG = aH(ar)
354+ let bH = aK(ar)
355+ let bI = y(this, bG, bC)
356+ let bJ = B(this, bF)
357+ let bK = 0
358+ let bL = max([(height - bI), 0])
359+ let bM = if ((bK != 0))
360+ then toBigInt(bK)
361+ else fraction(toBigInt(bE), toBigInt(c), bA)
362+ let bN = (bz + toBigInt(bx))
363+ let bO = if ((bN == h))
364+ then i
365+ else bN
366+ let bt = (bJ + (bM * toBigInt(bL)))
367+ let bP = (toBigInt(bE) / bO)
368+ let bQ = height
369+ let bR = makeString([toString(bt), toString(bL), toString(bM), toString(bz), toString(bE), toString(bD), toString(bB)], "::")
370+ $Tuple3(bt, [StringEntry(bF, toString(bt)), IntegerEntry(bG, bQ), StringEntry(bH, toString(bP))], bR)
363371 }
364372
365373
366-func bQ (aq,ap,bt,bu) = {
367- let bR = bs(aq, bt, bu)
368- let bq = bR._1
369- let bS = bR._2
370- let bT = bR._3
371- let bA = 1000
372- let bU = ao(ap, aq)
373- let bo = aw(bU)
374- let bV = aH(aq, ap)
375- let bW = aI(aq, ap)
376- let br = aL(aq, ap)
377- let bX = A(this, bV)
378- let bp = w(this, bW)
379- let bY = bn(toBigInt(bo), toBigInt(bp), bq, br)
380- let bZ = (b * bA)
381- let ca = max([(bX + fraction((bq - bY), toBigInt(bo), toBigInt(bZ))), g])
382- let cb = bq
383- let cc = height
384- let bP = makeString([toString(bX), toString(bY), toString(bo), bT, toString(height)], "::")
385- $Tuple3(ca, (bS ++ [StringEntry(bV, toString(ca)), IntegerEntry(bW, cc), StringEntry(br, toString(cb))]), bP)
374+func bS (ar,aq,bw,bx) = {
375+ let bT = bv(ar, bw, bx)
376+ let bt = bT._1
377+ let bU = bT._2
378+ let bV = bT._3
379+ let bW = ap(aq, ar)
380+ let br = ax(bW)
381+ let bX = aI(ar, aq)
382+ let bY = aJ(ar, aq)
383+ let bu = aM(ar, aq)
384+ let bZ = B(this, bX)
385+ let bs = x(this, bY)
386+ let ca = bq(toBigInt(br), toBigInt(bs), bt, bu)
387+ let cb = (c * b)
388+ let cc = max([(bZ + fraction((bt - ca), toBigInt(br), toBigInt(cb))), h])
389+ let cd = bt
390+ let ce = height
391+ let bR = makeString([toString(bZ), toString(ca), toString(br), bV, toString(height)], "::")
392+ $Tuple3(cc, (bU ++ [StringEntry(bX, toString(cc)), IntegerEntry(bY, ce), StringEntry(bu, toString(cd))]), bR)
386393 }
387394
388395
389-func cd () = {
390- let k = getString(S())
391- if ($isInstanceOf(k, "String"))
396+func cf () = {
397+ let l = getString(T())
398+ if ($isInstanceOf(l, "String"))
392399 then {
393- let C = k
394- fromBase58String(C)
400+ let D = l
401+ fromBase58String(D)
395402 }
396- else if ($isInstanceOf(k, "Unit"))
403+ else if ($isInstanceOf(l, "Unit"))
397404 then unit
398405 else throw("Match error")
399406 }
400407
401408
402-func ce () = {
403- let k = getString(T())
404- if ($isInstanceOf(k, "String"))
409+func cg () = {
410+ let l = getString(U())
411+ if ($isInstanceOf(l, "String"))
405412 then {
406- let C = k
407- fromBase58String(C)
413+ let D = l
414+ fromBase58String(D)
408415 }
409- else if ($isInstanceOf(k, "Unit"))
416+ else if ($isInstanceOf(l, "Unit"))
410417 then unit
411418 else throw("Match error")
412419 }
413420
414421
415-let cf = throw("Permission denied")
422+let ch = throw("Permission denied")
416423
417-func cg (ch) = if ((ch.caller == this))
424+func ci (cj) = if ((cj.caller == this))
418425 then true
419- else cf
426+ else ch
420427
421428
422-func ci (ch) = {
423- let k = cd()
424- if ($isInstanceOf(k, "ByteVector"))
429+func ck (cj) = {
430+ let l = cf()
431+ if ($isInstanceOf(l, "ByteVector"))
425432 then {
426- let cj = k
427- if ((ch.callerPublicKey == cj))
433+ let cl = l
434+ if ((cj.callerPublicKey == cl))
428435 then true
429- else cf
436+ else ch
430437 }
431- else if ($isInstanceOf(k, "Unit"))
432- then if ((ch.caller == this))
438+ else if ($isInstanceOf(l, "Unit"))
439+ then if ((cj.caller == this))
433440 then true
434- else cf
441+ else ch
435442 else throw("Match error")
436443 }
437444
438445
439-@Callable(ch)
440-func constructor (ck) = {
441- let cl = ci(ch)
442- if ((cl == cl))
443- then [StringEntry(I(), ck)]
444- else throw("Strict value is not equal to itself.")
445- }
446-
447-
448-
449-@Callable(ch)
450-func constructorV2 (cm) = {
451- let cn = [ci(ch), if ((addressFromString(cm) != unit))
452- then true
453- else "invalid voting emission contract address"]
446+@Callable(cj)
447+func constructor (cm) = {
448+ let cn = ck(cj)
454449 if ((cn == cn))
455450 then [StringEntry(J(), cm)]
456451 else throw("Strict value is not equal to itself.")
458453
459454
460455
461-@Callable(ch)
462-func setManager (co) = {
463- let cl = ci(ch)
464- if ((cl == cl))
456+@Callable(cj)
457+func constructorV2 (co) = {
458+ let cp = [ck(cj), if ((addressFromString(co) != unit))
459+ then true
460+ else "invalid voting emission contract address"]
461+ if ((cp == cp))
462+ then [StringEntry(K(), co)]
463+ else throw("Strict value is not equal to itself.")
464+ }
465+
466+
467+
468+@Callable(cj)
469+func setManager (cq) = {
470+ let cn = ck(cj)
471+ if ((cn == cn))
465472 then {
466- let cp = fromBase58String(co)
467- if ((cp == cp))
468- then [StringEntry(T(), co)]
473+ let cr = fromBase58String(cq)
474+ if ((cr == cr))
475+ then [StringEntry(U(), cq)]
469476 else throw("Strict value is not equal to itself.")
470477 }
471478 else throw("Strict value is not equal to itself.")
473480
474481
475482
476-@Callable(ch)
483+@Callable(cj)
477484 func confirmManager () = {
478- let cq = ce()
479- let cr = if (isDefined(cq))
485+ let cs = cg()
486+ let ct = if (isDefined(cs))
480487 then true
481488 else throw("No pending manager")
482- if ((cr == cr))
489+ if ((ct == ct))
483490 then {
484- let cs = if ((ch.callerPublicKey == value(cq)))
491+ let cu = if ((cj.callerPublicKey == value(cs)))
485492 then true
486493 else throw("You are not pending manager")
487- if ((cs == cs))
488- then [StringEntry(S(), toBase58String(value(cq))), DeleteEntry(T())]
494+ if ((cu == cu))
495+ then [StringEntry(T(), toBase58String(value(cs))), DeleteEntry(U())]
489496 else throw("Strict value is not equal to itself.")
490497 }
491498 else throw("Strict value is not equal to itself.")
493500
494501
495502
496-@Callable(ch)
497-func stake () = if ((size(ch.payments) != 1))
503+@Callable(cj)
504+func stake () = if ((size(cj.payments) != 1))
498505 then throw("invalid payment - exact one payment must be attached")
499506 else {
500- let ct = ch.payments[0]
501- let ay = value(ct.assetId)
502- let aq = toBase58String(ay)
503- let aQ = ct.amount
504- let bt = valueOrErrorMessage(getString(aU, W(aq)), ("unsupported lp asset " + aq))
505- let cu = toString(ch.caller)
506- let ap = if ((cu == bt))
507- then toString(ch.originCaller)
508- else cu
509- let bU = ao(ap, aq)
510- let bv = ar(aq)
511- let bo = aw(bU)
512- let bw = aw(bv)
513- let cv = bQ(aq, ap, bt, aQ)
514- let ca = cv._1
515- let cw = cv._2
516- let bP = cv._3
517- let ba = aY(aq)
518- let cx = if (bf(ba, ap))
507+ let cv = cj.payments[0]
508+ let az = value(cv.assetId)
509+ let ar = toBase58String(az)
510+ let aR = cv.amount
511+ let bw = valueOrErrorMessage(getString(aV, X(ar)), ("unsupported lp asset " + ar))
512+ let cw = toString(cj.caller)
513+ let aq = if ((cw == bw))
514+ then toString(cj.originCaller)
515+ else cw
516+ let bW = ap(aq, ar)
517+ let by = as(ar)
518+ let br = ax(bW)
519+ let bz = ax(by)
520+ let cx = bS(ar, aq, bw, aR)
521+ let cc = cx._1
522+ let cy = cx._2
523+ let bR = cx._3
524+ let bd = bb(ar)
525+ let cz = if (bi(bd, aq))
519526 then nil
520- else bj(ba, ap)
521- (([IntegerEntry(bU, (bo + aQ)), IntegerEntry(bv, (bw + aQ)), aR("stake", ap, aq, aQ, ch.transactionId)] ++ cw) ++ cx)
527+ else bm(bd, aq)
528+ (([IntegerEntry(bW, (br + aR)), IntegerEntry(by, (bz + aR)), aS("stake", aq, ar, aR, cj.transactionId)] ++ cy) ++ cz)
522529 }
523530
524531
525532
526-@Callable(ch)
527-func unstake (aq,aQ) = {
528- let ay = fromBase58String(aq)
529- let bt = valueOrErrorMessage(getString(aU, W(aq)), ("unsupported lp asset " + aq))
530- let cy = valueOrElse(getString(addressFromStringValue(bt), V()), bt)
531- let cu = toString(ch.caller)
532- let ap = if (if ((cu == bt))
533+@Callable(cj)
534+func unstake (ar,aR) = {
535+ let az = fromBase58String(ar)
536+ let bw = valueOrErrorMessage(getString(aV, X(ar)), ("unsupported lp asset " + ar))
537+ let cA = valueOrElse(getString(addressFromStringValue(bw), W()), bw)
538+ let cw = toString(cj.caller)
539+ let aq = if (if ((cw == bw))
533540 then true
534- else (cu == cy))
535- then toString(ch.originCaller)
536- else cu
537- let bU = ao(ap, aq)
538- let bv = ar(aq)
539- let bo = aw(bU)
540- let bw = aw(bv)
541- let cw = bQ(aq, ap, bt, -(aQ))._2
542- let ba = aY(aq)
543- let cx = if (if (bf(ba, ap))
544- then (aQ == bo)
541+ else (cw == cA))
542+ then toString(cj.originCaller)
543+ else cw
544+ let bW = ap(aq, ar)
545+ let by = as(ar)
546+ let br = ax(bW)
547+ let bz = ax(by)
548+ let cy = bS(ar, aq, bw, -(aR))._2
549+ let bd = bb(ar)
550+ let cz = if (if (bi(bd, aq))
551+ then (aR == br)
545552 else false)
546- then bm(ba, ap)
553+ then bp(bd, aq)
547554 else nil
548- let cz = A(this, at(aq, ap))
549- let cA = v(aU, Z(aq))
550- let ca = bQ(aq, ap, cA, 0)._1
551- let cB = (ca - cz)
552- let cC = if ((cB > g))
553- then invoke(this, "claimWxINTERNAL", [aq, ap], nil)
555+ let cB = B(this, au(ar, aq))
556+ let cC = w(aV, aa(ar))
557+ let cc = bS(ar, aq, cC, 0)._1
558+ let cD = (cc - cB)
559+ let cE = if ((cD > h))
560+ then invoke(this, "claimWxINTERNAL", [ar, aq], nil)
554561 else unit
555- if ((cC == cC))
556- then if ((aQ > bo))
557- then throw(((((((("passed amount=" + toString(aQ)) + " is greater than available=") + toString(bo)) + ". lpAssetId=") + aq) + ". stakedByUserKEY=") + bU))
558- else (([IntegerEntry(bU, (bo - aQ)), IntegerEntry(bv, (bw - aQ)), ScriptTransfer(ch.caller, aQ, ay), aR("unstake", ap, aq, aQ, ch.transactionId)] ++ cw) ++ cx)
562+ if ((cE == cE))
563+ then if ((aR > br))
564+ then throw(((((((("passed amount=" + toString(aR)) + " is greater than available=") + toString(br)) + ". lpAssetId=") + ar) + ". stakedByUserKEY=") + bW))
565+ else (([IntegerEntry(bW, (br - aR)), IntegerEntry(by, (bz - aR)), ScriptTransfer(cj.caller, aR, az), aS("unstake", aq, ar, aR, cj.transactionId)] ++ cy) ++ cz)
559566 else throw("Strict value is not equal to itself.")
560567 }
561568
562569
563570
564-@Callable(ch)
565-func claimWx (aq) = {
566- let ap = toString(ch.caller)
567- let cD = invoke(this, "claimWxINTERNAL", [aq, ap], nil)
568- $Tuple2(nil, cD)
571+@Callable(cj)
572+func claimWx (ar) = {
573+ let aq = toString(cj.caller)
574+ let cF = invoke(this, "claimWxINTERNAL", [ar, aq], nil)
575+ $Tuple2(nil, cF)
569576 }
570577
571578
572579
573-@Callable(ch)
574-func claimWxINTERNAL (aq,ap) = {
575- let cl = cg(ch)
576- if ((cl == cl))
580+@Callable(cj)
581+func claimWxINTERNAL (ar,aq) = {
582+ let cn = ci(cj)
583+ if ((cn == cn))
577584 then {
578- let aA = valueOrErrorMessage(addressFromString(ap), "claimWxINTERNAL: invalid user address")
579- let bt = v(aU, Z(aq))
580- let cE = as(aq, ap)
581- let cF = av(aq)
582- let cG = at(aq, ap)
583- let cH = au(aq, ap)
584- let cI = A(this, cE)
585- let cz = A(this, cG)
586- let cJ = A(this, cH)
587- let cK = A(this, cF)
588- let cL = bQ(aq, ap, bt, 0)
589- let ca = cL._1
590- let cw = cL._2
591- let bP = cL._3
592- let cB = max([(ca - cz), g])
593- if ((g >= cB))
585+ let aB = valueOrErrorMessage(addressFromString(aq), "claimWxINTERNAL: invalid user address")
586+ let bw = w(aV, aa(ar))
587+ let cG = at(ar, aq)
588+ let cH = aw(ar)
589+ let cI = au(ar, aq)
590+ let cJ = av(ar, aq)
591+ let cK = B(this, cG)
592+ let cB = B(this, cI)
593+ let cL = B(this, cJ)
594+ let cM = B(this, cH)
595+ let cN = bS(ar, aq, bw, 0)
596+ let cc = cN._1
597+ let cy = cN._2
598+ let bR = cN._3
599+ let cD = max([(cc - cB), h])
600+ if ((h >= cD))
594601 then throw("nothing to claim")
595602 else {
596- let cM = max([m(i(invoke(aW, "claimWxBoost", [aq, ap], nil))[0]), 0])
597- let cN = cB
598- let cO = min([(cN * toBigInt(2)), toBigInt(cM)])
599- let cP = q(i(invoke(aV, "emit", [toInt(cN)], nil))[0])
600- let cQ = i(invoke(aV, "emit", [toInt(cO)], nil))
601- if ((cQ == cQ))
603+ let cO = max([n(j(invoke(aX, "claimWxBoost", [ar, aq], nil))[0]), 0])
604+ let cP = cD
605+ let cQ = min([(cP * toBigInt((aY - 1))), toBigInt(cO)])
606+ let cR = r(j(invoke(aW, "emit", [toInt(cP)], nil))[0])
607+ let cS = j(invoke(aW, "emit", [toInt(cQ)], nil))
608+ if ((cS == cS))
602609 then {
603- let cR = ((cI + cN) + cO)
604- let cS = (cz + cN)
605- let cT = (cJ + cO)
606- let cU = (cK + cB)
607-[StringEntry(cE, toString(cR)), StringEntry(cG, toString(cS)), StringEntry(cH, toString(cT)), StringEntry(cF, toString(cU)), ScriptTransfer(aA, toInt(cN), cP), ScriptTransfer(aA, toInt(cO), cP), aR("claim", ap, aq, toInt(cB), ch.transactionId)]
610+ let cT = ((cK + cP) + cQ)
611+ let cU = (cB + cP)
612+ let cV = (cL + cQ)
613+ let cW = (cM + cD)
614+[StringEntry(cG, toString(cT)), StringEntry(cI, toString(cU)), StringEntry(cJ, toString(cV)), StringEntry(cH, toString(cW)), ScriptTransfer(aB, toInt(cP), cR), ScriptTransfer(aB, toInt(cQ), cR), aS("claim", aq, ar, toInt(cD), cj.transactionId)]
608615 }
609616 else throw("Strict value is not equal to itself.")
610617 }
614621
615622
616623
617-@Callable(ch)
618-func claimWxBulkInternalREADONLY (cV,cW,ap,cX) = if ((cV == size(cW)))
619- then $Tuple2(nil, cX)
624+@Callable(cj)
625+func claimWxBulkInternalREADONLY (cX,cY,aq,cZ) = if ((cX == size(cY)))
626+ then $Tuple2(nil, cZ)
620627 else {
621- let ay = cW[cV]
622- let cY = split({
623- let cZ = invoke(this, "claimWxREADONLY", [ay, ap], nil)
624- if ($isInstanceOf(cZ, "String"))
625- then cZ
626- else throw(($getType(cZ) + " couldn't be cast to String"))
627- }, e)
628- let da = cY[3]
629- let db = cY[4]
630- let dc = (cX :+ makeString(["%d%d", da, db], e))
631- let dd = {
632- let cZ = invoke(this, "claimWxBulkInternalREADONLY", [(cV + 1), cW, ap, dc], nil)
633- if ($isInstanceOf(cZ, "List[Any]"))
634- then cZ
635- else throw(($getType(cZ) + " couldn't be cast to List[Any]"))
628+ let az = cY[cX]
629+ let da = split({
630+ let aZ = invoke(this, "claimWxREADONLY", [az, aq], nil)
631+ if ($isInstanceOf(aZ, "String"))
632+ then aZ
633+ else throw(($getType(aZ) + " couldn't be cast to String"))
634+ }, f)
635+ let db = da[3]
636+ let dc = da[4]
637+ let dd = (cZ :+ makeString(["%d%d", db, dc], f))
638+ let de = {
639+ let aZ = invoke(this, "claimWxBulkInternalREADONLY", [(cX + 1), cY, aq, dd], nil)
640+ if ($isInstanceOf(aZ, "List[Any]"))
641+ then aZ
642+ else throw(($getType(aZ) + " couldn't be cast to List[Any]"))
636643 }
637- if ((dd == dd))
638- then $Tuple2(nil, dd)
644+ if ((de == de))
645+ then $Tuple2(nil, de)
639646 else throw("Strict value is not equal to itself.")
640647 }
641648
642649
643650
644-@Callable(ch)
645-func claimWxBulkREADONLY (cW,ap) = {
646- let dc = invoke(this, "claimWxBulkInternalREADONLY", [0, cW, ap, nil], nil)
647- $Tuple2(nil, dc)
651+@Callable(cj)
652+func claimWxBulkREADONLY (cY,aq) = {
653+ let dd = invoke(this, "claimWxBulkInternalREADONLY", [0, cY, aq, nil], nil)
654+ $Tuple2(nil, dd)
648655 }
649656
650657
651658
652-@Callable(ch)
653-func claimWxREADONLY (aq,ap) = {
654- let bU = ao(ap, aq)
655- let bv = ar(aq)
656- let cE = as(aq, ap)
657- let cG = at(aq, ap)
658- let bo = aw(bU)
659- let bw = aw(bv)
660- let cI = A(this, cE)
661- let cz = A(this, cG)
662- let bt = v(aU, Z(aq))
663- let by = getIntegerValue(aU, aa(bt))
664- let de = z(aV, aj())
665- let bz = z(aV, al())
666- let df = if ((bz > height))
659+@Callable(cj)
660+func claimWxREADONLY (ar,aq) = {
661+ let bW = ap(aq, ar)
662+ let by = as(ar)
663+ let cG = at(ar, aq)
664+ let cI = au(ar, aq)
665+ let br = ax(bW)
666+ let bz = ax(by)
667+ let cK = B(this, cG)
668+ let cB = B(this, cI)
669+ let bw = w(aV, aa(ar))
670+ let bB = getIntegerValue(aV, ab(bw))
671+ let df = A(aW, ak())
672+ let bC = A(aW, am())
673+ let dg = if ((bC > height))
667674 then 0
668- else (height - bz)
669- let dg = fraction((de * df), by, f)
670- let dh = fraction(dg, bo, bw)
671- let di = bQ(aq, ap, bt, 0)
672- let ca = di._1
673- let cw = di._2
674- let bP = di._3
675- let cB = max([(ca - cz), g])
676- let dj = i(invoke(aW, "claimWxBoostREADONLY", [aq, ap], nil))
677- let cM = max([m(dj[0]), 0])
678- let dk = o(dj[1])
679- let cN = cB
680- let cO = min([(cN * toBigInt(2)), toBigInt(cM)])
681- let dl = (cN + cO)
682- $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", aq, ap, toString(dl), toString(cI), toString(cN), toString(cO), "soon"], e))
675+ else (height - bC)
676+ let dh = fraction((df * dg), bB, g)
677+ let di = fraction(dh, br, bz)
678+ let dj = bS(ar, aq, bw, 0)
679+ let cc = dj._1
680+ let cy = dj._2
681+ let bR = dj._3
682+ let cD = max([(cc - cB), h])
683+ let dk = j(invoke(aX, "claimWxBoostREADONLY", [ar, aq], nil))
684+ let cO = max([n(dk[0]), 0])
685+ let dl = p(dk[1])
686+ let cP = cD
687+ let cQ = min([(cP * toBigInt((aY - 1))), toBigInt(cO)])
688+ let dm = (cP + cQ)
689+ $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", ar, aq, toString(dm), toString(cK), toString(cP), toString(cQ), "soon"], f))
683690 }
684691
685692
686693
687-@Callable(ch)
688-func usersListTraversal (ay) = {
689- let cl = if ((toBase58String(ch.caller.bytes) == valueOrElse(getString(this, J()), "")))
694+@Callable(cj)
695+func usersListTraversal (az) = {
696+ let cn = if ((toBase58String(cj.caller.bytes) == valueOrElse(getString(this, K()), "")))
690697 then true
691- else ci(ch)
692- if ((cl == cl))
698+ else ck(cj)
699+ if ((cn == cn))
693700 then {
694- let ba = aY(ay)
695- let dm = getString(aX(ay))
696- let bg = getString(aZ(ba))
697- let k = dm
698- if ($isInstanceOf(k, "Unit"))
701+ let bd = bb(az)
702+ let dn = getString(ba(az))
703+ let bj = getString(bc(bd))
704+ let l = dn
705+ if ($isInstanceOf(l, "Unit"))
699706 then {
700- let dn = bg
701- if ($isInstanceOf(dn, "Unit"))
707+ let do = bj
708+ if ($isInstanceOf(do, "Unit"))
702709 then $Tuple2(nil, false)
703- else if ($isInstanceOf(dn, "String"))
710+ else if ($isInstanceOf(do, "String"))
704711 then {
705- let do = dn
706- $Tuple2([StringEntry(aX(ay), do)], true)
712+ let dp = do
713+ $Tuple2([StringEntry(ba(az), dp)], true)
707714 }
708715 else throw("Match error")
709716 }
710- else if ($isInstanceOf(k, "String"))
717+ else if ($isInstanceOf(l, "String"))
711718 then {
712- let aA = k
713- let cz = A(this, at(ay, aA))
714- let cA = v(aU, Z(ay))
715- let ca = bQ(ay, aA, cA, 0)._1
716- let cB = (ca - cz)
717- let cC = if ((cB > g))
718- then invoke(this, "claimWxINTERNAL", [ay, aA], nil)
719+ let aB = l
720+ let cB = B(this, au(az, aB))
721+ let cC = w(aV, aa(az))
722+ let cc = bS(az, aB, cC, 0)._1
723+ let cD = (cc - cB)
724+ let cE = if ((cD > h))
725+ then invoke(this, "claimWxINTERNAL", [az, aB], nil)
719726 else unit
720- if ((cC == cC))
727+ if ((cE == cE))
721728 then {
722- let dp = getString(be(ba, aA))
723- let dn = dp
724- if ($isInstanceOf(dn, "Unit"))
725- then $Tuple2([DeleteEntry(aX(ay))], false)
726- else if ($isInstanceOf(dn, "String"))
729+ let dq = getString(bh(bd, aB))
730+ let do = dq
731+ if ($isInstanceOf(do, "Unit"))
732+ then $Tuple2([DeleteEntry(ba(az))], false)
733+ else if ($isInstanceOf(do, "String"))
727734 then {
728- let dq = dn
729- $Tuple2([StringEntry(aX(ay), dq)], true)
735+ let dr = do
736+ $Tuple2([StringEntry(ba(az), dr)], true)
730737 }
731738 else throw("Match error")
732739 }
739746
740747
741748
742-@Callable(ch)
743-func onModifyWeight (aq,bt) = if ((ch.caller != aU))
749+@Callable(cj)
750+func onModifyWeight (ar,bw) = if ((cj.caller != aV))
744751 then throw("permissions denied")
745752 else {
746- let dr = bs(aq, bt, 0)
747- let bq = dr._1
748- let bS = dr._2
749- let bT = dr._3
750- bS
753+ let ds = bv(ar, bw, 0)
754+ let bt = ds._1
755+ let bU = ds._2
756+ let bV = ds._3
757+ bU
751758 }
752759
753760
754-@Verifier(ds)
755-func dt () = {
756- let du = {
757- let k = cd()
758- if ($isInstanceOf(k, "ByteVector"))
761+@Verifier(dt)
762+func du () = {
763+ let dv = {
764+ let l = cf()
765+ if ($isInstanceOf(l, "ByteVector"))
759766 then {
760- let cj = k
761- cj
767+ let cl = l
768+ cl
762769 }
763- else if ($isInstanceOf(k, "Unit"))
764- then ds.senderPublicKey
770+ else if ($isInstanceOf(l, "Unit"))
771+ then dt.senderPublicKey
765772 else throw("Match error")
766773 }
767- sigVerify(ds.bodyBytes, ds.proofs[0], du)
774+ sigVerify(dt.bodyBytes, dt.proofs[0], dv)
768775 }
769776
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
6-let b = 100000000
6+let b = 1000
77
8-let c = 18
8+let c = 100000000
99
10-let d = toBigInt(1000000000000000000)
10+let d = 18
1111
12-let e = "__"
12+let e = toBigInt(1000000000000000000)
1313
14-let f = b
14+let f = "__"
1515
16-let g = toBigInt(0)
16+let g = c
1717
18-let h = toBigInt(1)
18+let h = toBigInt(0)
1919
20-func i (j) = {
21- let k = j
22- if ($isInstanceOf(k, "List[Any]"))
20+let i = toBigInt(1)
21+
22+func j (k) = {
23+ let l = k
24+ if ($isInstanceOf(l, "List[Any]"))
2325 then {
24- let l = k
25- l
26+ let m = l
27+ m
2628 }
2729 else throw("fail to cast into List[Any]")
2830 }
2931
3032
31-func m (j) = {
32- let k = j
33- if ($isInstanceOf(k, "Int"))
33+func n (k) = {
34+ let l = k
35+ if ($isInstanceOf(l, "Int"))
3436 then {
35- let n = k
36- n
37+ let o = l
38+ o
3739 }
3840 else throw("fail to cast into Int")
3941 }
4042
4143
42-func o (j) = {
43- let k = j
44- if ($isInstanceOf(k, "String"))
44+func p (k) = {
45+ let l = k
46+ if ($isInstanceOf(l, "String"))
4547 then {
46- let p = k
47- p
48+ let q = l
49+ q
4850 }
4951 else throw("fail to cast into Int")
5052 }
5153
5254
53-func q (j) = {
54- let k = j
55- if ($isInstanceOf(k, "ByteVector"))
55+func r (k) = {
56+ let l = k
57+ if ($isInstanceOf(l, "ByteVector"))
5658 then {
57- let r = k
58- r
59+ let s = l
60+ s
5961 }
6062 else throw("fail to cast into Int")
6163 }
6264
6365
64-func s (t,u) = valueOrErrorMessage(getString(t, u), (("mandatory this." + u) + " is not defined"))
66+func t (u,v) = valueOrErrorMessage(getString(u, v), (("mandatory this." + v) + " is not defined"))
6567
6668
67-func v (t,u) = valueOrErrorMessage(getString(t, u), (((("mandatory " + toString(t)) + ".") + u) + " is not defined"))
69+func w (u,v) = valueOrErrorMessage(getString(u, v), (((("mandatory " + toString(u)) + ".") + v) + " is not defined"))
6870
6971
70-func w (t,u) = valueOrElse(getInteger(t, u), 0)
72+func x (u,v) = valueOrElse(getInteger(u, v), 0)
7173
7274
73-func x (t,u,y) = valueOrElse(getInteger(t, u), y)
75+func y (u,v,z) = valueOrElse(getInteger(u, v), z)
7476
7577
76-func z (t,u) = valueOrErrorMessage(getInteger(t, u), (("mandatory this." + u) + " is not defined"))
78+func A (u,v) = valueOrErrorMessage(getInteger(u, v), (("mandatory this." + v) + " is not defined"))
7779
7880
79-func A (t,u) = value(parseBigInt(valueOrElse(getString(t, u), "0")))
81+func B (u,v) = value(parseBigInt(valueOrElse(getString(u, v), "0")))
8082
8183
82-func B (t,u,y) = {
83- let k = getString(t, u)
84- if ($isInstanceOf(k, "String"))
84+func C (u,v,z) = {
85+ let l = getString(u, v)
86+ if ($isInstanceOf(l, "String"))
8587 then {
86- let C = k
87- value(parseBigInt(C))
88+ let D = l
89+ value(parseBigInt(D))
8890 }
89- else if ($isInstanceOf(k, "Unit"))
90- then y
91+ else if ($isInstanceOf(l, "Unit"))
92+ then z
9193 else throw("Match error")
9294 }
9395
9496
95-func D (E,F) = fraction(toBigInt(E), d, toBigInt(F))
97+func E (F,G) = fraction(toBigInt(F), e, toBigInt(G))
9698
9799
98-func G (j,H) = toInt(fraction(j, toBigInt(H), d))
100+func H (k,I) = toInt(fraction(k, toBigInt(I), e))
99101
100102
101-func I () = "%s%s__config__factoryAddress"
103+func J () = "%s%s__config__factoryAddress"
102104
103105
104-func J () = "%s__votingEmissionContract"
106+func K () = "%s__votingEmissionContract"
105107
106108
107-let K = 1
109+let L = 1
108110
109-let L = 2
111+let M = 2
110112
111-let M = 3
113+let N = 3
112114
113-let N = 4
115+let O = 4
114116
115-let O = 5
117+let P = 5
116118
117-let P = 6
119+let Q = 6
118120
119-let Q = 7
121+let R = 7
120122
121-func R () = "%s__factoryConfig"
123+func S () = "%s__factoryConfig"
122124
123125
124-func S () = "%s__managerPublicKey"
126+func T () = "%s__managerPublicKey"
125127
126128
127-func T () = "%s__pendingManagerPublicKey"
129+func U () = "%s__pendingManagerPublicKey"
128130
129131
130-func U () = "%s__stablePoolAddonAddr"
132+func V () = "%s__stablePoolAddonAddr"
131133
132134
133-func V () = "%s__addonAddr"
135+func W () = "%s__addonAddr"
134136
135137
136-func W (X) = makeString(["%s%s%s", X, "mappings__lpAsset2PoolContract"], e)
138+func X (Y) = makeString(["%s%s%s", Y, "mappings__lpAsset2PoolContract"], f)
137139
138140
139-func Y () = "%s__lpTokensList"
141+func Z () = "%s__lpTokensList"
140142
141143
142-func Z (X) = makeString(["%s%s%s", X, "mappings__lpAsset2PoolContract"], e)
144+func aa (Y) = makeString(["%s%s%s", Y, "mappings__lpAsset2PoolContract"], f)
143145
144146
145-func aa (ab) = makeString(["%s%s", "poolWeight", ab], e)
147+func ab (ac) = makeString(["%s%s", "poolWeight", ac], f)
146148
147149
148-func ac (ad) = split(valueOrElse(getString(ad, Y()), ""), e)
150+func ad (ae) = split(valueOrElse(getString(ae, Z()), ""), f)
149151
150152
151-func ae (ad) = split(v(ad, R()), e)
153+func af (ae) = split(w(ae, S()), f)
152154
153155
154-func af (ag) = addressFromStringValue(ag[L])
156+func ag (ah) = addressFromStringValue(ah[M])
155157
156158
157-func ah (ag) = addressFromStringValue(ag[O])
159+func ai (ah) = addressFromStringValue(ah[P])
158160
159161
160-func ai (ag) = addressFromStringValue(ag[K])
162+func aj (ah) = addressFromStringValue(ah[L])
161163
162164
163-func aj () = "%s%s__ratePerBlock__current"
165+func ak () = "%s%s__ratePerBlock__current"
164166
165167
166-func ak () = "%s%s__ratePerBlockMax__current"
168+func al () = "%s%s__ratePerBlockMax__current"
167169
168170
169-func al () = "%s%s__emission__startBlock"
171+func am () = "%s%s__emission__startBlock"
170172
171173
172-func am () = "%s%s__emission__duration"
174+func an () = "%s%s__emission__duration"
173175
174176
175-func an () = "%s%s__emission__endBlock"
177+func ao () = "%s%s__emission__endBlock"
176178
177179
178-func ao (ap,aq) = makeString(["%s%s%s__staked", ap, aq], e)
180+func ap (aq,ar) = makeString(["%s%s%s__staked", aq, ar], f)
179181
180182
181-func ar (aq) = ("%s%s%s__staked__total__" + aq)
183+func as (ar) = ("%s%s%s__staked__total__" + ar)
182184
183185
184-func as (aq,ap) = makeString(["%s%s%s__claimed", ap, aq], e)
186+func at (ar,aq) = makeString(["%s%s%s__claimed", aq, ar], f)
185187
186188
187-func at (aq,ap) = makeString(["%s%s%s__claimedMinReward", ap, aq], e)
189+func au (ar,aq) = makeString(["%s%s%s__claimedMinReward", aq, ar], f)
188190
189191
190-func au (aq,ap) = makeString(["%s%s%s__claimedBoostReward", ap, aq], e)
192+func av (ar,aq) = makeString(["%s%s%s__claimedBoostReward", aq, ar], f)
191193
192194
193-func av (aq) = makeString(["%s%s%s__claimed__total", aq], e)
195+func aw (ar) = makeString(["%s%s%s__claimed__total", ar], f)
194196
195197
196-func aw (u) = valueOrElse(getInteger(this, u), 0)
198+func ax (v) = valueOrElse(getInteger(this, v), 0)
197199
198200
199-func ax (ay) = makeString(["%s%s%s", ay, "total", "bal"], e)
201+func ay (az) = makeString(["%s%s%s", az, "total", "bal"], f)
200202
201203
202-func az (ay,aA) = makeString(["%s%s%s", ay, aA, "bal"], e)
204+func aA (az,aB) = makeString(["%s%s%s", az, aB, "bal"], f)
203205
204206
205-func aB (ay) = makeString(["%s%s%s", ay, "total", "balINT"], e)
207+func aC (az) = makeString(["%s%s%s", az, "total", "balINT"], f)
206208
207209
208-func aC (ay,aA) = makeString(["%s%s%s", ay, aA, "balINT"], e)
210+func aD (az,aB) = makeString(["%s%s%s", az, aB, "balINT"], f)
209211
210212
211-func aD (ay) = makeString(["%s%s%s", ay, "total", "lastUpd"], e)
213+func aE (az) = makeString(["%s%s%s", az, "total", "lastUpd"], f)
212214
213215
214-func aE (ay,aA) = makeString(["%s%s%s", ay, aA, "lastUpd"], e)
216+func aF (az,aB) = makeString(["%s%s%s", az, aB, "lastUpd"], f)
215217
216218
217-func aF (ay) = makeString(["%s%s%s%s", ay, "common", "lpInt"], e)
219+func aG (az) = makeString(["%s%s%s%s", az, "common", "lpInt"], f)
218220
219221
220-func aG (ay) = makeString(["%s%s%s%s", ay, "common", "lpIntH"], e)
222+func aH (az) = makeString(["%s%s%s%s", az, "common", "lpIntH"], f)
221223
222224
223-func aH (ay,aA) = makeString(["%s%s%s%s", ay, aA, "lpInt"], e)
225+func aI (az,aB) = makeString(["%s%s%s%s", az, aB, "lpInt"], f)
224226
225227
226-func aI (ay,aA) = makeString(["%s%s%s%s", ay, aA, "lpIntH"], e)
228+func aJ (az,aB) = makeString(["%s%s%s%s", az, aB, "lpIntH"], f)
227229
228230
229-func aJ (ay) = makeString(["%s", ay, "wxPerLp"], e)
231+func aK (az) = makeString(["%s", az, "wxPerLp"], f)
230232
231233
232-func aK (ay) = makeString(["%s", ay, "wxPerLpX18"], e)
234+func aL (az) = makeString(["%s", az, "wxPerLpX18"], f)
233235
234236
235-func aL (ay,aA) = makeString(["%s%s%s%s", ay, aA, "uIntL"], e)
237+func aM (az,aB) = makeString(["%s%s%s%s", az, aB, "uIntL"], f)
236238
237239
238-func aM (aN,aA,aO) = makeString(["%s%s%s%s__history", aN, aA, aO], e)
240+func aN (aO,aB,aP) = makeString(["%s%s%s%s__history", aO, aB, aP], f)
239241
240242
241-func aP (aA,ay,aN,aQ) = makeString(["%s%s%s%d%d%d", aA, ay, aN, toString(height), toString(lastBlock.timestamp), toString(aQ)], e)
243+func aQ (aB,az,aO,aR) = makeString(["%s%s%s%d%d%d", aB, az, aO, toString(height), toString(lastBlock.timestamp), toString(aR)], f)
242244
243245
244-func aR (aN,aA,ay,aQ,aS) = StringEntry(aM(aN, aA, toBase58String(aS)), aP(aA, ay, aN, aQ))
246+func aS (aO,aB,az,aR,aT) = StringEntry(aN(aO, aB, toBase58String(aT)), aQ(aB, az, aO, aR))
245247
246248
247-let aT = s(this, I())
249+let aU = t(this, J())
248250
249-let aU = addressFromStringValue(aT)
251+let aV = addressFromStringValue(aU)
250252
251-let ag = ae(aU)
253+let ah = af(aV)
252254
253-let aV = ah(ag)
255+let aW = ai(ah)
254256
255-let aW = af(ag)
257+let aX = ag(ah)
256258
257-func aX (ay) = makeString(["%s%s", ay, "nextUser"], e)
259+let aY = {
260+ let aZ = invoke(aW, "getBoostCoeffREADONLY", nil, nil)
261+ if ($isInstanceOf(aZ, "Int"))
262+ then aZ
263+ else throw(($getType(aZ) + " couldn't be cast to Int"))
264+ }
265+
266+func ba (az) = makeString(["%s%s", az, "nextUser"], f)
258267
259268
260-func aY (ay) = makeString(["users", ay], e)
269+func bb (az) = makeString(["users", az], f)
261270
262271
263-func aZ (ba) = makeString(["%s%s%s", ba, "head"], e)
272+func bc (bd) = makeString(["%s%s%s", bd, "head"], f)
264273
265274
266-func bb (ba) = makeString(["%s%s%s", ba, "size"], e)
275+func be (bd) = makeString(["%s%s%s", bd, "size"], f)
267276
268277
269-func bc (ba,bd) = makeString(["%s%s%s%s", ba, bd, "prev"], e)
278+func bf (bd,bg) = makeString(["%s%s%s%s", bd, bg, "prev"], f)
270279
271280
272-func be (ba,bd) = makeString(["%s%s%s%s", ba, bd, "next"], e)
281+func bh (bd,bg) = makeString(["%s%s%s%s", bd, bg, "next"], f)
273282
274283
275-func bf (ba,bd) = {
276- let bg = getString(this, aZ(ba))
277- let bh = getString(this, bc(ba, bd))
278- let bi = getString(this, be(ba, bd))
279- if (if ((bd == valueOrElse(bg, "")))
284+func bi (bd,bg) = {
285+ let bj = getString(this, bc(bd))
286+ let bk = getString(this, bf(bd, bg))
287+ let bl = getString(this, bh(bd, bg))
288+ if (if ((bg == valueOrElse(bj, "")))
280289 then true
281- else (bh != unit))
290+ else (bk != unit))
282291 then true
283- else (bi != unit)
292+ else (bl != unit)
284293 }
285294
286295
287-func bj (ba,bd) = {
288- let bg = getString(this, aZ(ba))
289- let bk = valueOrElse(getInteger(this, bb(ba)), 0)
290- let bl = if (!(bf(ba, bd)))
296+func bm (bd,bg) = {
297+ let bj = getString(this, bc(bd))
298+ let bn = valueOrElse(getInteger(this, be(bd)), 0)
299+ let bo = if (!(bi(bd, bg)))
291300 then true
292301 else throw("Node exists")
293- if ((bl == bl))
294- then (([IntegerEntry(bb(ba), (bk + 1))] ++ (if ((bg != unit))
295- then [StringEntry(be(ba, bd), value(bg)), StringEntry(bc(ba, value(bg)), bd)]
296- else nil)) ++ [StringEntry(aZ(ba), bd)])
302+ if ((bo == bo))
303+ then (([IntegerEntry(be(bd), (bn + 1))] ++ (if ((bj != unit))
304+ then [StringEntry(bh(bd, bg), value(bj)), StringEntry(bf(bd, value(bj)), bg)]
305+ else nil)) ++ [StringEntry(bc(bd), bg)])
297306 else throw("Strict value is not equal to itself.")
298307 }
299308
300309
301-func bm (ba,bd) = {
302- let bg = getString(this, aZ(ba))
303- let bk = valueOrElse(getInteger(this, bb(ba)), 0)
304- let bh = getString(this, bc(ba, bd))
305- let bi = getString(this, be(ba, bd))
306- ([IntegerEntry(bb(ba), (bk - 1))] ++ (if (if ((bh != unit))
307- then (bi != unit)
310+func bp (bd,bg) = {
311+ let bj = getString(this, bc(bd))
312+ let bn = valueOrElse(getInteger(this, be(bd)), 0)
313+ let bk = getString(this, bf(bd, bg))
314+ let bl = getString(this, bh(bd, bg))
315+ ([IntegerEntry(be(bd), (bn - 1))] ++ (if (if ((bk != unit))
316+ then (bl != unit)
308317 else false)
309- then [StringEntry(be(ba, value(bh)), value(bi)), StringEntry(bc(ba, value(bi)), value(bh)), DeleteEntry(bc(ba, bd)), DeleteEntry(be(ba, bd))]
310- else if ((bi != unit))
311- then [StringEntry(aZ(ba), value(bi)), DeleteEntry(be(ba, bd)), DeleteEntry(bc(ba, value(bi)))]
312- else if ((bh != unit))
313- then [DeleteEntry(bc(ba, bd)), DeleteEntry(be(ba, value(bh)))]
314- else if ((bd == valueOrElse(bg, "")))
315- then [DeleteEntry(aZ(ba))]
316- else throw(((("invalid node: " + ba) + ".") + bd))))
318+ then [StringEntry(bh(bd, value(bk)), value(bl)), StringEntry(bf(bd, value(bl)), value(bk)), DeleteEntry(bf(bd, bg)), DeleteEntry(bh(bd, bg))]
319+ else if ((bl != unit))
320+ then [StringEntry(bc(bd), value(bl)), DeleteEntry(bh(bd, bg)), DeleteEntry(bf(bd, value(bl)))]
321+ else if ((bk != unit))
322+ then [DeleteEntry(bf(bd, bg)), DeleteEntry(bh(bd, value(bk)))]
323+ else if ((bg == valueOrElse(bj, "")))
324+ then [DeleteEntry(bc(bd))]
325+ else throw(((("invalid node: " + bd) + ".") + bg))))
317326 }
318327
319328
320-func bn (bo,bp,bq,br) = if (if ((bp == g))
321- then (bo > g)
329+func bq (br,bs,bt,bu) = if (if ((bs == h))
330+ then (br > h)
322331 else false)
323- then g
324- else if ((bo == g))
325- then bq
326- else if (if ((bp > g))
327- then (bo > g)
332+ then h
333+ else if ((br == h))
334+ then bt
335+ else if (if ((bs > h))
336+ then (br > h)
328337 else false)
329- then value(parseBigInt(s(this, br)))
338+ then value(parseBigInt(t(this, bu)))
330339 else throw("calcWxPerLpIntegralUserLast: unexpected state")
331340
332341
333-func bs (aq,bt,bu) = {
334- let bv = ar(aq)
335- let bw = toBigInt(aw(bv))
336- let bx = if ((bw == g))
337- then h
338- else bw
339- let by = getIntegerValue(aU, aa(bt))
340- let bz = z(aV, al())
341- let bA = 1000
342- let bB = (z(aV, aj()) * bA)
343- let bC = fraction(bB, by, (f * 3))
344- let bD = aF(aq)
345- let bE = aG(aq)
346- let bF = aJ(aq)
347- let bG = x(this, bE, bz)
348- let bH = A(this, bD)
349- let bI = 0
350- let bJ = max([(height - bG), 0])
351- let bK = if ((bI != 0))
352- then toBigInt(bI)
353- else fraction(toBigInt(bC), toBigInt(b), bx)
354- let bL = (bw + toBigInt(bu))
355- let bM = if ((bL == g))
356- then h
357- else bL
358- let bq = (bH + (bK * toBigInt(bJ)))
359- let bN = (toBigInt(bC) / bM)
360- let bO = height
361- let bP = makeString([toString(bq), toString(bJ), toString(bK), toString(bw), toString(bC), toString(bB), toString(by)], "::")
362- $Tuple3(bq, [StringEntry(bD, toString(bq)), IntegerEntry(bE, bO), StringEntry(bF, toString(bN))], bP)
342+func bv (ar,bw,bx) = {
343+ let by = as(ar)
344+ let bz = toBigInt(ax(by))
345+ let bA = if ((bz == h))
346+ then i
347+ else bz
348+ let bB = getIntegerValue(aV, ab(bw))
349+ let bC = A(aW, am())
350+ let bD = (A(aW, ak()) * b)
351+ let bE = fraction(bD, bB, (g * aY))
352+ let bF = aG(ar)
353+ let bG = aH(ar)
354+ let bH = aK(ar)
355+ let bI = y(this, bG, bC)
356+ let bJ = B(this, bF)
357+ let bK = 0
358+ let bL = max([(height - bI), 0])
359+ let bM = if ((bK != 0))
360+ then toBigInt(bK)
361+ else fraction(toBigInt(bE), toBigInt(c), bA)
362+ let bN = (bz + toBigInt(bx))
363+ let bO = if ((bN == h))
364+ then i
365+ else bN
366+ let bt = (bJ + (bM * toBigInt(bL)))
367+ let bP = (toBigInt(bE) / bO)
368+ let bQ = height
369+ let bR = makeString([toString(bt), toString(bL), toString(bM), toString(bz), toString(bE), toString(bD), toString(bB)], "::")
370+ $Tuple3(bt, [StringEntry(bF, toString(bt)), IntegerEntry(bG, bQ), StringEntry(bH, toString(bP))], bR)
363371 }
364372
365373
366-func bQ (aq,ap,bt,bu) = {
367- let bR = bs(aq, bt, bu)
368- let bq = bR._1
369- let bS = bR._2
370- let bT = bR._3
371- let bA = 1000
372- let bU = ao(ap, aq)
373- let bo = aw(bU)
374- let bV = aH(aq, ap)
375- let bW = aI(aq, ap)
376- let br = aL(aq, ap)
377- let bX = A(this, bV)
378- let bp = w(this, bW)
379- let bY = bn(toBigInt(bo), toBigInt(bp), bq, br)
380- let bZ = (b * bA)
381- let ca = max([(bX + fraction((bq - bY), toBigInt(bo), toBigInt(bZ))), g])
382- let cb = bq
383- let cc = height
384- let bP = makeString([toString(bX), toString(bY), toString(bo), bT, toString(height)], "::")
385- $Tuple3(ca, (bS ++ [StringEntry(bV, toString(ca)), IntegerEntry(bW, cc), StringEntry(br, toString(cb))]), bP)
374+func bS (ar,aq,bw,bx) = {
375+ let bT = bv(ar, bw, bx)
376+ let bt = bT._1
377+ let bU = bT._2
378+ let bV = bT._3
379+ let bW = ap(aq, ar)
380+ let br = ax(bW)
381+ let bX = aI(ar, aq)
382+ let bY = aJ(ar, aq)
383+ let bu = aM(ar, aq)
384+ let bZ = B(this, bX)
385+ let bs = x(this, bY)
386+ let ca = bq(toBigInt(br), toBigInt(bs), bt, bu)
387+ let cb = (c * b)
388+ let cc = max([(bZ + fraction((bt - ca), toBigInt(br), toBigInt(cb))), h])
389+ let cd = bt
390+ let ce = height
391+ let bR = makeString([toString(bZ), toString(ca), toString(br), bV, toString(height)], "::")
392+ $Tuple3(cc, (bU ++ [StringEntry(bX, toString(cc)), IntegerEntry(bY, ce), StringEntry(bu, toString(cd))]), bR)
386393 }
387394
388395
389-func cd () = {
390- let k = getString(S())
391- if ($isInstanceOf(k, "String"))
396+func cf () = {
397+ let l = getString(T())
398+ if ($isInstanceOf(l, "String"))
392399 then {
393- let C = k
394- fromBase58String(C)
400+ let D = l
401+ fromBase58String(D)
395402 }
396- else if ($isInstanceOf(k, "Unit"))
403+ else if ($isInstanceOf(l, "Unit"))
397404 then unit
398405 else throw("Match error")
399406 }
400407
401408
402-func ce () = {
403- let k = getString(T())
404- if ($isInstanceOf(k, "String"))
409+func cg () = {
410+ let l = getString(U())
411+ if ($isInstanceOf(l, "String"))
405412 then {
406- let C = k
407- fromBase58String(C)
413+ let D = l
414+ fromBase58String(D)
408415 }
409- else if ($isInstanceOf(k, "Unit"))
416+ else if ($isInstanceOf(l, "Unit"))
410417 then unit
411418 else throw("Match error")
412419 }
413420
414421
415-let cf = throw("Permission denied")
422+let ch = throw("Permission denied")
416423
417-func cg (ch) = if ((ch.caller == this))
424+func ci (cj) = if ((cj.caller == this))
418425 then true
419- else cf
426+ else ch
420427
421428
422-func ci (ch) = {
423- let k = cd()
424- if ($isInstanceOf(k, "ByteVector"))
429+func ck (cj) = {
430+ let l = cf()
431+ if ($isInstanceOf(l, "ByteVector"))
425432 then {
426- let cj = k
427- if ((ch.callerPublicKey == cj))
433+ let cl = l
434+ if ((cj.callerPublicKey == cl))
428435 then true
429- else cf
436+ else ch
430437 }
431- else if ($isInstanceOf(k, "Unit"))
432- then if ((ch.caller == this))
438+ else if ($isInstanceOf(l, "Unit"))
439+ then if ((cj.caller == this))
433440 then true
434- else cf
441+ else ch
435442 else throw("Match error")
436443 }
437444
438445
439-@Callable(ch)
440-func constructor (ck) = {
441- let cl = ci(ch)
442- if ((cl == cl))
443- then [StringEntry(I(), ck)]
444- else throw("Strict value is not equal to itself.")
445- }
446-
447-
448-
449-@Callable(ch)
450-func constructorV2 (cm) = {
451- let cn = [ci(ch), if ((addressFromString(cm) != unit))
452- then true
453- else "invalid voting emission contract address"]
446+@Callable(cj)
447+func constructor (cm) = {
448+ let cn = ck(cj)
454449 if ((cn == cn))
455450 then [StringEntry(J(), cm)]
456451 else throw("Strict value is not equal to itself.")
457452 }
458453
459454
460455
461-@Callable(ch)
462-func setManager (co) = {
463- let cl = ci(ch)
464- if ((cl == cl))
456+@Callable(cj)
457+func constructorV2 (co) = {
458+ let cp = [ck(cj), if ((addressFromString(co) != unit))
459+ then true
460+ else "invalid voting emission contract address"]
461+ if ((cp == cp))
462+ then [StringEntry(K(), co)]
463+ else throw("Strict value is not equal to itself.")
464+ }
465+
466+
467+
468+@Callable(cj)
469+func setManager (cq) = {
470+ let cn = ck(cj)
471+ if ((cn == cn))
465472 then {
466- let cp = fromBase58String(co)
467- if ((cp == cp))
468- then [StringEntry(T(), co)]
473+ let cr = fromBase58String(cq)
474+ if ((cr == cr))
475+ then [StringEntry(U(), cq)]
469476 else throw("Strict value is not equal to itself.")
470477 }
471478 else throw("Strict value is not equal to itself.")
472479 }
473480
474481
475482
476-@Callable(ch)
483+@Callable(cj)
477484 func confirmManager () = {
478- let cq = ce()
479- let cr = if (isDefined(cq))
485+ let cs = cg()
486+ let ct = if (isDefined(cs))
480487 then true
481488 else throw("No pending manager")
482- if ((cr == cr))
489+ if ((ct == ct))
483490 then {
484- let cs = if ((ch.callerPublicKey == value(cq)))
491+ let cu = if ((cj.callerPublicKey == value(cs)))
485492 then true
486493 else throw("You are not pending manager")
487- if ((cs == cs))
488- then [StringEntry(S(), toBase58String(value(cq))), DeleteEntry(T())]
494+ if ((cu == cu))
495+ then [StringEntry(T(), toBase58String(value(cs))), DeleteEntry(U())]
489496 else throw("Strict value is not equal to itself.")
490497 }
491498 else throw("Strict value is not equal to itself.")
492499 }
493500
494501
495502
496-@Callable(ch)
497-func stake () = if ((size(ch.payments) != 1))
503+@Callable(cj)
504+func stake () = if ((size(cj.payments) != 1))
498505 then throw("invalid payment - exact one payment must be attached")
499506 else {
500- let ct = ch.payments[0]
501- let ay = value(ct.assetId)
502- let aq = toBase58String(ay)
503- let aQ = ct.amount
504- let bt = valueOrErrorMessage(getString(aU, W(aq)), ("unsupported lp asset " + aq))
505- let cu = toString(ch.caller)
506- let ap = if ((cu == bt))
507- then toString(ch.originCaller)
508- else cu
509- let bU = ao(ap, aq)
510- let bv = ar(aq)
511- let bo = aw(bU)
512- let bw = aw(bv)
513- let cv = bQ(aq, ap, bt, aQ)
514- let ca = cv._1
515- let cw = cv._2
516- let bP = cv._3
517- let ba = aY(aq)
518- let cx = if (bf(ba, ap))
507+ let cv = cj.payments[0]
508+ let az = value(cv.assetId)
509+ let ar = toBase58String(az)
510+ let aR = cv.amount
511+ let bw = valueOrErrorMessage(getString(aV, X(ar)), ("unsupported lp asset " + ar))
512+ let cw = toString(cj.caller)
513+ let aq = if ((cw == bw))
514+ then toString(cj.originCaller)
515+ else cw
516+ let bW = ap(aq, ar)
517+ let by = as(ar)
518+ let br = ax(bW)
519+ let bz = ax(by)
520+ let cx = bS(ar, aq, bw, aR)
521+ let cc = cx._1
522+ let cy = cx._2
523+ let bR = cx._3
524+ let bd = bb(ar)
525+ let cz = if (bi(bd, aq))
519526 then nil
520- else bj(ba, ap)
521- (([IntegerEntry(bU, (bo + aQ)), IntegerEntry(bv, (bw + aQ)), aR("stake", ap, aq, aQ, ch.transactionId)] ++ cw) ++ cx)
527+ else bm(bd, aq)
528+ (([IntegerEntry(bW, (br + aR)), IntegerEntry(by, (bz + aR)), aS("stake", aq, ar, aR, cj.transactionId)] ++ cy) ++ cz)
522529 }
523530
524531
525532
526-@Callable(ch)
527-func unstake (aq,aQ) = {
528- let ay = fromBase58String(aq)
529- let bt = valueOrErrorMessage(getString(aU, W(aq)), ("unsupported lp asset " + aq))
530- let cy = valueOrElse(getString(addressFromStringValue(bt), V()), bt)
531- let cu = toString(ch.caller)
532- let ap = if (if ((cu == bt))
533+@Callable(cj)
534+func unstake (ar,aR) = {
535+ let az = fromBase58String(ar)
536+ let bw = valueOrErrorMessage(getString(aV, X(ar)), ("unsupported lp asset " + ar))
537+ let cA = valueOrElse(getString(addressFromStringValue(bw), W()), bw)
538+ let cw = toString(cj.caller)
539+ let aq = if (if ((cw == bw))
533540 then true
534- else (cu == cy))
535- then toString(ch.originCaller)
536- else cu
537- let bU = ao(ap, aq)
538- let bv = ar(aq)
539- let bo = aw(bU)
540- let bw = aw(bv)
541- let cw = bQ(aq, ap, bt, -(aQ))._2
542- let ba = aY(aq)
543- let cx = if (if (bf(ba, ap))
544- then (aQ == bo)
541+ else (cw == cA))
542+ then toString(cj.originCaller)
543+ else cw
544+ let bW = ap(aq, ar)
545+ let by = as(ar)
546+ let br = ax(bW)
547+ let bz = ax(by)
548+ let cy = bS(ar, aq, bw, -(aR))._2
549+ let bd = bb(ar)
550+ let cz = if (if (bi(bd, aq))
551+ then (aR == br)
545552 else false)
546- then bm(ba, ap)
553+ then bp(bd, aq)
547554 else nil
548- let cz = A(this, at(aq, ap))
549- let cA = v(aU, Z(aq))
550- let ca = bQ(aq, ap, cA, 0)._1
551- let cB = (ca - cz)
552- let cC = if ((cB > g))
553- then invoke(this, "claimWxINTERNAL", [aq, ap], nil)
555+ let cB = B(this, au(ar, aq))
556+ let cC = w(aV, aa(ar))
557+ let cc = bS(ar, aq, cC, 0)._1
558+ let cD = (cc - cB)
559+ let cE = if ((cD > h))
560+ then invoke(this, "claimWxINTERNAL", [ar, aq], nil)
554561 else unit
555- if ((cC == cC))
556- then if ((aQ > bo))
557- then throw(((((((("passed amount=" + toString(aQ)) + " is greater than available=") + toString(bo)) + ". lpAssetId=") + aq) + ". stakedByUserKEY=") + bU))
558- else (([IntegerEntry(bU, (bo - aQ)), IntegerEntry(bv, (bw - aQ)), ScriptTransfer(ch.caller, aQ, ay), aR("unstake", ap, aq, aQ, ch.transactionId)] ++ cw) ++ cx)
562+ if ((cE == cE))
563+ then if ((aR > br))
564+ then throw(((((((("passed amount=" + toString(aR)) + " is greater than available=") + toString(br)) + ". lpAssetId=") + ar) + ". stakedByUserKEY=") + bW))
565+ else (([IntegerEntry(bW, (br - aR)), IntegerEntry(by, (bz - aR)), ScriptTransfer(cj.caller, aR, az), aS("unstake", aq, ar, aR, cj.transactionId)] ++ cy) ++ cz)
559566 else throw("Strict value is not equal to itself.")
560567 }
561568
562569
563570
564-@Callable(ch)
565-func claimWx (aq) = {
566- let ap = toString(ch.caller)
567- let cD = invoke(this, "claimWxINTERNAL", [aq, ap], nil)
568- $Tuple2(nil, cD)
571+@Callable(cj)
572+func claimWx (ar) = {
573+ let aq = toString(cj.caller)
574+ let cF = invoke(this, "claimWxINTERNAL", [ar, aq], nil)
575+ $Tuple2(nil, cF)
569576 }
570577
571578
572579
573-@Callable(ch)
574-func claimWxINTERNAL (aq,ap) = {
575- let cl = cg(ch)
576- if ((cl == cl))
580+@Callable(cj)
581+func claimWxINTERNAL (ar,aq) = {
582+ let cn = ci(cj)
583+ if ((cn == cn))
577584 then {
578- let aA = valueOrErrorMessage(addressFromString(ap), "claimWxINTERNAL: invalid user address")
579- let bt = v(aU, Z(aq))
580- let cE = as(aq, ap)
581- let cF = av(aq)
582- let cG = at(aq, ap)
583- let cH = au(aq, ap)
584- let cI = A(this, cE)
585- let cz = A(this, cG)
586- let cJ = A(this, cH)
587- let cK = A(this, cF)
588- let cL = bQ(aq, ap, bt, 0)
589- let ca = cL._1
590- let cw = cL._2
591- let bP = cL._3
592- let cB = max([(ca - cz), g])
593- if ((g >= cB))
585+ let aB = valueOrErrorMessage(addressFromString(aq), "claimWxINTERNAL: invalid user address")
586+ let bw = w(aV, aa(ar))
587+ let cG = at(ar, aq)
588+ let cH = aw(ar)
589+ let cI = au(ar, aq)
590+ let cJ = av(ar, aq)
591+ let cK = B(this, cG)
592+ let cB = B(this, cI)
593+ let cL = B(this, cJ)
594+ let cM = B(this, cH)
595+ let cN = bS(ar, aq, bw, 0)
596+ let cc = cN._1
597+ let cy = cN._2
598+ let bR = cN._3
599+ let cD = max([(cc - cB), h])
600+ if ((h >= cD))
594601 then throw("nothing to claim")
595602 else {
596- let cM = max([m(i(invoke(aW, "claimWxBoost", [aq, ap], nil))[0]), 0])
597- let cN = cB
598- let cO = min([(cN * toBigInt(2)), toBigInt(cM)])
599- let cP = q(i(invoke(aV, "emit", [toInt(cN)], nil))[0])
600- let cQ = i(invoke(aV, "emit", [toInt(cO)], nil))
601- if ((cQ == cQ))
603+ let cO = max([n(j(invoke(aX, "claimWxBoost", [ar, aq], nil))[0]), 0])
604+ let cP = cD
605+ let cQ = min([(cP * toBigInt((aY - 1))), toBigInt(cO)])
606+ let cR = r(j(invoke(aW, "emit", [toInt(cP)], nil))[0])
607+ let cS = j(invoke(aW, "emit", [toInt(cQ)], nil))
608+ if ((cS == cS))
602609 then {
603- let cR = ((cI + cN) + cO)
604- let cS = (cz + cN)
605- let cT = (cJ + cO)
606- let cU = (cK + cB)
607-[StringEntry(cE, toString(cR)), StringEntry(cG, toString(cS)), StringEntry(cH, toString(cT)), StringEntry(cF, toString(cU)), ScriptTransfer(aA, toInt(cN), cP), ScriptTransfer(aA, toInt(cO), cP), aR("claim", ap, aq, toInt(cB), ch.transactionId)]
610+ let cT = ((cK + cP) + cQ)
611+ let cU = (cB + cP)
612+ let cV = (cL + cQ)
613+ let cW = (cM + cD)
614+[StringEntry(cG, toString(cT)), StringEntry(cI, toString(cU)), StringEntry(cJ, toString(cV)), StringEntry(cH, toString(cW)), ScriptTransfer(aB, toInt(cP), cR), ScriptTransfer(aB, toInt(cQ), cR), aS("claim", aq, ar, toInt(cD), cj.transactionId)]
608615 }
609616 else throw("Strict value is not equal to itself.")
610617 }
611618 }
612619 else throw("Strict value is not equal to itself.")
613620 }
614621
615622
616623
617-@Callable(ch)
618-func claimWxBulkInternalREADONLY (cV,cW,ap,cX) = if ((cV == size(cW)))
619- then $Tuple2(nil, cX)
624+@Callable(cj)
625+func claimWxBulkInternalREADONLY (cX,cY,aq,cZ) = if ((cX == size(cY)))
626+ then $Tuple2(nil, cZ)
620627 else {
621- let ay = cW[cV]
622- let cY = split({
623- let cZ = invoke(this, "claimWxREADONLY", [ay, ap], nil)
624- if ($isInstanceOf(cZ, "String"))
625- then cZ
626- else throw(($getType(cZ) + " couldn't be cast to String"))
627- }, e)
628- let da = cY[3]
629- let db = cY[4]
630- let dc = (cX :+ makeString(["%d%d", da, db], e))
631- let dd = {
632- let cZ = invoke(this, "claimWxBulkInternalREADONLY", [(cV + 1), cW, ap, dc], nil)
633- if ($isInstanceOf(cZ, "List[Any]"))
634- then cZ
635- else throw(($getType(cZ) + " couldn't be cast to List[Any]"))
628+ let az = cY[cX]
629+ let da = split({
630+ let aZ = invoke(this, "claimWxREADONLY", [az, aq], nil)
631+ if ($isInstanceOf(aZ, "String"))
632+ then aZ
633+ else throw(($getType(aZ) + " couldn't be cast to String"))
634+ }, f)
635+ let db = da[3]
636+ let dc = da[4]
637+ let dd = (cZ :+ makeString(["%d%d", db, dc], f))
638+ let de = {
639+ let aZ = invoke(this, "claimWxBulkInternalREADONLY", [(cX + 1), cY, aq, dd], nil)
640+ if ($isInstanceOf(aZ, "List[Any]"))
641+ then aZ
642+ else throw(($getType(aZ) + " couldn't be cast to List[Any]"))
636643 }
637- if ((dd == dd))
638- then $Tuple2(nil, dd)
644+ if ((de == de))
645+ then $Tuple2(nil, de)
639646 else throw("Strict value is not equal to itself.")
640647 }
641648
642649
643650
644-@Callable(ch)
645-func claimWxBulkREADONLY (cW,ap) = {
646- let dc = invoke(this, "claimWxBulkInternalREADONLY", [0, cW, ap, nil], nil)
647- $Tuple2(nil, dc)
651+@Callable(cj)
652+func claimWxBulkREADONLY (cY,aq) = {
653+ let dd = invoke(this, "claimWxBulkInternalREADONLY", [0, cY, aq, nil], nil)
654+ $Tuple2(nil, dd)
648655 }
649656
650657
651658
652-@Callable(ch)
653-func claimWxREADONLY (aq,ap) = {
654- let bU = ao(ap, aq)
655- let bv = ar(aq)
656- let cE = as(aq, ap)
657- let cG = at(aq, ap)
658- let bo = aw(bU)
659- let bw = aw(bv)
660- let cI = A(this, cE)
661- let cz = A(this, cG)
662- let bt = v(aU, Z(aq))
663- let by = getIntegerValue(aU, aa(bt))
664- let de = z(aV, aj())
665- let bz = z(aV, al())
666- let df = if ((bz > height))
659+@Callable(cj)
660+func claimWxREADONLY (ar,aq) = {
661+ let bW = ap(aq, ar)
662+ let by = as(ar)
663+ let cG = at(ar, aq)
664+ let cI = au(ar, aq)
665+ let br = ax(bW)
666+ let bz = ax(by)
667+ let cK = B(this, cG)
668+ let cB = B(this, cI)
669+ let bw = w(aV, aa(ar))
670+ let bB = getIntegerValue(aV, ab(bw))
671+ let df = A(aW, ak())
672+ let bC = A(aW, am())
673+ let dg = if ((bC > height))
667674 then 0
668- else (height - bz)
669- let dg = fraction((de * df), by, f)
670- let dh = fraction(dg, bo, bw)
671- let di = bQ(aq, ap, bt, 0)
672- let ca = di._1
673- let cw = di._2
674- let bP = di._3
675- let cB = max([(ca - cz), g])
676- let dj = i(invoke(aW, "claimWxBoostREADONLY", [aq, ap], nil))
677- let cM = max([m(dj[0]), 0])
678- let dk = o(dj[1])
679- let cN = cB
680- let cO = min([(cN * toBigInt(2)), toBigInt(cM)])
681- let dl = (cN + cO)
682- $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", aq, ap, toString(dl), toString(cI), toString(cN), toString(cO), "soon"], e))
675+ else (height - bC)
676+ let dh = fraction((df * dg), bB, g)
677+ let di = fraction(dh, br, bz)
678+ let dj = bS(ar, aq, bw, 0)
679+ let cc = dj._1
680+ let cy = dj._2
681+ let bR = dj._3
682+ let cD = max([(cc - cB), h])
683+ let dk = j(invoke(aX, "claimWxBoostREADONLY", [ar, aq], nil))
684+ let cO = max([n(dk[0]), 0])
685+ let dl = p(dk[1])
686+ let cP = cD
687+ let cQ = min([(cP * toBigInt((aY - 1))), toBigInt(cO)])
688+ let dm = (cP + cQ)
689+ $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", ar, aq, toString(dm), toString(cK), toString(cP), toString(cQ), "soon"], f))
683690 }
684691
685692
686693
687-@Callable(ch)
688-func usersListTraversal (ay) = {
689- let cl = if ((toBase58String(ch.caller.bytes) == valueOrElse(getString(this, J()), "")))
694+@Callable(cj)
695+func usersListTraversal (az) = {
696+ let cn = if ((toBase58String(cj.caller.bytes) == valueOrElse(getString(this, K()), "")))
690697 then true
691- else ci(ch)
692- if ((cl == cl))
698+ else ck(cj)
699+ if ((cn == cn))
693700 then {
694- let ba = aY(ay)
695- let dm = getString(aX(ay))
696- let bg = getString(aZ(ba))
697- let k = dm
698- if ($isInstanceOf(k, "Unit"))
701+ let bd = bb(az)
702+ let dn = getString(ba(az))
703+ let bj = getString(bc(bd))
704+ let l = dn
705+ if ($isInstanceOf(l, "Unit"))
699706 then {
700- let dn = bg
701- if ($isInstanceOf(dn, "Unit"))
707+ let do = bj
708+ if ($isInstanceOf(do, "Unit"))
702709 then $Tuple2(nil, false)
703- else if ($isInstanceOf(dn, "String"))
710+ else if ($isInstanceOf(do, "String"))
704711 then {
705- let do = dn
706- $Tuple2([StringEntry(aX(ay), do)], true)
712+ let dp = do
713+ $Tuple2([StringEntry(ba(az), dp)], true)
707714 }
708715 else throw("Match error")
709716 }
710- else if ($isInstanceOf(k, "String"))
717+ else if ($isInstanceOf(l, "String"))
711718 then {
712- let aA = k
713- let cz = A(this, at(ay, aA))
714- let cA = v(aU, Z(ay))
715- let ca = bQ(ay, aA, cA, 0)._1
716- let cB = (ca - cz)
717- let cC = if ((cB > g))
718- then invoke(this, "claimWxINTERNAL", [ay, aA], nil)
719+ let aB = l
720+ let cB = B(this, au(az, aB))
721+ let cC = w(aV, aa(az))
722+ let cc = bS(az, aB, cC, 0)._1
723+ let cD = (cc - cB)
724+ let cE = if ((cD > h))
725+ then invoke(this, "claimWxINTERNAL", [az, aB], nil)
719726 else unit
720- if ((cC == cC))
727+ if ((cE == cE))
721728 then {
722- let dp = getString(be(ba, aA))
723- let dn = dp
724- if ($isInstanceOf(dn, "Unit"))
725- then $Tuple2([DeleteEntry(aX(ay))], false)
726- else if ($isInstanceOf(dn, "String"))
729+ let dq = getString(bh(bd, aB))
730+ let do = dq
731+ if ($isInstanceOf(do, "Unit"))
732+ then $Tuple2([DeleteEntry(ba(az))], false)
733+ else if ($isInstanceOf(do, "String"))
727734 then {
728- let dq = dn
729- $Tuple2([StringEntry(aX(ay), dq)], true)
735+ let dr = do
736+ $Tuple2([StringEntry(ba(az), dr)], true)
730737 }
731738 else throw("Match error")
732739 }
733740 else throw("Strict value is not equal to itself.")
734741 }
735742 else throw("Match error")
736743 }
737744 else throw("Strict value is not equal to itself.")
738745 }
739746
740747
741748
742-@Callable(ch)
743-func onModifyWeight (aq,bt) = if ((ch.caller != aU))
749+@Callable(cj)
750+func onModifyWeight (ar,bw) = if ((cj.caller != aV))
744751 then throw("permissions denied")
745752 else {
746- let dr = bs(aq, bt, 0)
747- let bq = dr._1
748- let bS = dr._2
749- let bT = dr._3
750- bS
753+ let ds = bv(ar, bw, 0)
754+ let bt = ds._1
755+ let bU = ds._2
756+ let bV = ds._3
757+ bU
751758 }
752759
753760
754-@Verifier(ds)
755-func dt () = {
756- let du = {
757- let k = cd()
758- if ($isInstanceOf(k, "ByteVector"))
761+@Verifier(dt)
762+func du () = {
763+ let dv = {
764+ let l = cf()
765+ if ($isInstanceOf(l, "ByteVector"))
759766 then {
760- let cj = k
761- cj
767+ let cl = l
768+ cl
762769 }
763- else if ($isInstanceOf(k, "Unit"))
764- then ds.senderPublicKey
770+ else if ($isInstanceOf(l, "Unit"))
771+ then dt.senderPublicKey
765772 else throw("Match error")
766773 }
767- sigVerify(ds.bodyBytes, ds.proofs[0], du)
774+ sigVerify(dt.bodyBytes, dt.proofs[0], dv)
768775 }
769776

github/deemru/w8io/169f3d6 
333.32 ms