tx · 8VC9TU7P6uhQTkta7oti1VYZe7dN5UpBri166An8kncz

3NAefciWv6f9fWvEXdGgpHfanJFG8HqfjuT:  -0.04100000 Waves

2023.05.05 11:40 [2564284] smart account 3NAefciWv6f9fWvEXdGgpHfanJFG8HqfjuT > SELF 0.00000000 Waves

{ "type": 13, "id": "8VC9TU7P6uhQTkta7oti1VYZe7dN5UpBri166An8kncz", "fee": 4100000, "feeAssetId": null, "timestamp": 1683276017055, "version": 2, "chainId": 84, "sender": "3NAefciWv6f9fWvEXdGgpHfanJFG8HqfjuT", "senderPublicKey": "D1BL65meykxFZTCuq7jq9HSGLLnWvQamQPUNrguW5w39", "proofs": [ "3m65ptTXJLbDPu6YQPEAnViL7qmLCPBBHEohzC48SYziRjZkGUgfVrJha2qwi5uBGtt82qXZou4oUi6GHtoZhD3c" ], "script": "base64:BgK4LAgCEgUKAwEEARIHCgUBBAEIARIDCgEIEgMKAQgSABIECgIBBBIECgIBBBIDCgEBEgASBAoCCAESABIECgIIARIECgIIARIECgIBARIDCgEBEgUKAwEBARIFCgMBCAESBAoCAQgSBAoCAQgSBAoCCAgSABIDCgEIEgUKAwEBARIECgIIARIECgIBARIECgIICBILCgkIAQECAQIIBAQSBgoECAgBCBIAIgZzY2FsZTgiDHNjYWxlOEJpZ0ludCIHc2NhbGUxOCIKemVyb0JpZ0ludCIEYmlnMCIEYmlnMSIEYmlnMiIEYmlnMyIEYmlnNCIKc2xpcHBhZ2U0RCILd2F2ZXNTdHJpbmciBUFtdWx0IgVEY29udiIDU0VQIgVFTVBUWSIKUG9vbEFjdGl2ZSIKUG9vbFB1dERpcyIOUG9vbE1hdGNoZXJEaXMiDFBvb2xTaHV0ZG93biIOaWR4UG9vbEFkZHJlc3MiCWlkeFBvb2xTdCIJaWR4TFBBc0lkIglpZHhBbUFzSWQiCWlkeFByQXNJZCILaWR4QW10QXNEY20iDWlkeFByaWNlQXNEY20iC2lkeElBbXRBc0lkIg1pZHhJUHJpY2VBc0lkIg9pZHhGYWN0U3Rha0NudHIiEmlkeEZhY3RvcnlSZXN0Q250ciIQaWR4RmFjdFNsaXBwQ250ciIRaWR4RmFjdEd3eFJld0NudHIiCmZlZURlZmF1bHQiAnQxIgdvcmlnVmFsIg1vcmlnU2NhbGVNdWx0Igh0MUJpZ0ludCICZjEiA3ZhbCIPcmVzdWx0U2NhbGVNdWx0Igxmcm9tWDE4Um91bmQiBXJvdW5kIgJ0MiICZjIiAnRzIgNhbXQiCHJlc1NjYWxlIghjdXJTY2FsZSIDYWJzIglhYnNCaWdJbnQiAmZjIgNtcGsiBHBtcGsiAnBsIgJwaCIBaCIBdCIDcGF1IgJ1YSIEdHhJZCIDZ2F1IgJhYSICcGEiA2FtcCINa2V5QW1wSGlzdG9yeSIMaGVpZ2h0QmxvY2tzIhRrZXlDaGFuZ2VBbXBMYXN0Q2FsbCIGa2V5RmVlIgNmZWUiBmtleURMcCIVa2V5RExwUmVmcmVzaGVkSGVpZ2h0IhJrZXlETHBSZWZyZXNoRGVsYXkiFmRMcFJlZnJlc2hEZWxheURlZmF1bHQiD2RMcFJlZnJlc2hEZWxheSIEZmNmZyIEbXRwayICcGMiBmlBbXRBcyIFaVByQXMiA21iYSIFYkFTdHIiA2FwcyIca2V5QWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaCIWa2V5RmVlQ29sbGVjdG9yQWRkcmVzcyIWa2V5U2tpcE9yZGVyVmFsaWRhdGlvbiILcG9vbEFkZHJlc3MiD3Rocm93T3JkZXJFcnJvciIKb3JkZXJWYWxpZCIOb3JkZXJWYWxpZEluZm8iC3NlbmRlclZhbGlkIgxtYXRjaGVyVmFsaWQiBHN0cmYiBGFkZHIiA2tleSIEaW50ZiIIdGhyb3dFcnIiA21zZyIGZm10RXJyIgNmY2EiBWluRmVlIgFAIgZvdXRGZWUiAUEiA2lncyICbXAiE2ZlZUNvbGxlY3RvckFkZHJlc3MiA2dwYyIFYW10QXMiB3ByaWNlQXMiCGlQcmljZUFzIgxwYXJzZUFzc2V0SWQiBWlucHV0Ig9hc3NldElkVG9TdHJpbmciD3BhcnNlUG9vbENvbmZpZyIKcG9vbENvbmZpZyIQcG9vbENvbmZpZ1BhcnNlZCILJHQwODE2NTgzOTQiDmNmZ1Bvb2xBZGRyZXNzIg1jZmdQb29sU3RhdHVzIgxjZmdMcEFzc2V0SWQiEGNmZ0Ftb3VudEFzc2V0SWQiD2NmZ1ByaWNlQXNzZXRJZCIWY2ZnQW1vdW50QXNzZXREZWNpbWFscyIVY2ZnUHJpY2VBc3NldERlY2ltYWxzIhJjZmdJbkFtb3VudEFzc2VkSWQiEWNmZ0luUHJpY2VBc3NldElkIgNnZmMiDWZhY3RvcnlDb25maWciD3N0YWtpbmdDb250cmFjdCIPc2xpcGFnZUNvbnRyYWN0Igtnd3hDb250cmFjdCIMcmVzdENvbnRyYWN0IhFkYXRhUHV0QWN0aW9uSW5mbyINaW5BbXRBc3NldEFtdCIPaW5QcmljZUFzc2V0QW10IghvdXRMcEFtdCIFcHJpY2UiCnNsaXBCeVVzZXIiDHNsaXBwYWdlUmVhbCIIdHhIZWlnaHQiC3R4VGltZXN0YW1wIgxzbGlwYWdlQW1BbXQiDHNsaXBhZ2VQckFtdCIRZGF0YUdldEFjdGlvbkluZm8iDm91dEFtdEFzc2V0QW10IhBvdXRQcmljZUFzc2V0QW10IgdpbkxwQW10Ig1nZXRBY2NCYWxhbmNlIgdhc3NldElkIgRjcGJpIghwckFtdFgxOCIIYW1BbXRYMTgiBWNwYmlyIgN2YWQiAkExIgJBMiIIc2xpcHBhZ2UiBGRpZmYiBHBhc3MiAnZkIgJEMSICRDAiBHNscGciBGZhaWwiA3BjcCIKYW1Bc3NldERjbSIKcHJBc3NldERjbSIFYW1BbXQiBXByQW10IgthbXRBc0FtdFgxOCIKcHJBc0FtdFgxOCIKY2FsY1ByaWNlcyIFbHBBbXQiCGFtdEFzRGNtIgdwckFzRGNtIghwcmljZVgxOCIIbHBBbXRYMTgiDWxwUHJJbkFtQXNYMTgiDWxwUHJJblByQXNYMTgiD2NhbGN1bGF0ZVByaWNlcyIBcCIHdGFrZUZlZSIGYW1vdW50IglmZWVBbW91bnQiBGdldEQiAnhwIgN4cDAiA3hwMSIBcyIBYSIDYW5uIgt4cDBfeHAxX25fbiIFYW5uX3MiBWFubl8xIgljYWxjRE5leHQiAWQiAmRkIgNkZGQiAmRwIgRjYWxjIgNhY2MiAWkiBWROZXh0IghkRGlmZlJhdyIFZERpZmYiA2FyciINJHQwMTI4OTkxMjk0NyICJGwiAiRzIgUkYWNjMCIFJGYwXzEiAiRhIgIkaSIFJGYwXzIiBWZvdW5kIgNlZ28iBnR4SWQ1OCIKcG10QXNzZXRJZCIIcG10THBBbXQiC3VzZXJBZGRyZXNzIgRscElkIgRhbUlkIgRwcklkIgVhbURjbSIFcHJEY20iA3N0cyIHbHBFbWlzcyIJYW1CYWxhbmNlIgxhbUJhbGFuY2VYMTgiCXByQmFsYW5jZSIMcHJCYWxhbmNlWDE4IgtjdXJQcmljZVgxOCIIY3VyUHJpY2UiC3BtdExwQW10WDE4IgpscEVtaXNzWDE4IgtvdXRBbUFtdFgxOCILb3V0UHJBbXRYMTgiCG91dEFtQW10IghvdXRQckFtdCIFc3RhdGUiA2VwbyIHaW5BbUFtdCIGaW5BbUlkIgdpblByQW10IgZpblBySWQiBmlzRXZhbCIGZW1pdExwIgppc09uZUFzc2V0IhB2YWxpZGF0ZVNsaXBwYWdlIgZwbXRBbXQiBXBtdElkIgdhbUlkU3RyIgdwcklkU3RyIglpbkFtSWRTdHIiCWluUHJJZFN0ciIGYW10RGNtIghwcmljZURjbSIEbHBFbSIPaW5BbUFzc2V0QW10WDE4Ig9pblByQXNzZXRBbXRYMTgiDHVzZXJQcmljZVgxOCIBciIGY2hlY2tEIgtzbGlwcGFnZVgxOCIPc2xpcHBhZ2VSZWFsWDE4Ig1scEVtaXNzaW9uWDE4IgpwclZpYUFtWDE4IgphbVZpYVByWDE4IgxleHBlY3RlZEFtdHMiEWV4cEFtdEFzc2V0QW10WDE4IhNleHBQcmljZUFzc2V0QW10WDE4IgljYWxjTHBBbXQiDmNhbGNBbUFzc2V0UG10Ig5jYWxjUHJBc3NldFBtdCIMc2xpcHBhZ2VDYWxjIgllbWl0THBBbXQiBmFtRGlmZiIGcHJEaWZmIg0kdDAyMDc4NjIxMTMxIgp3cml0ZUFtQW10Igp3cml0ZVByQW10Igtjb21tb25TdGF0ZSIFZ2V0WUQiAUQiAW4iAXgiCmFQcmVjaXNpb24iAWMiAWIiA2N1ciINJHQwMjIzMjYyMjM0NiIBeSIFeU5leHQiBXlEaWZmIg0kdDAyMjY1MzIyNzAwIgdjYWxjRExwIg1hbW91bnRCYWxhbmNlIgxwcmljZUJhbGFuY2UiCmxwRW1pc3Npb24iCnVwZGF0ZWRETHAiDmNhbGNDdXJyZW50RExwIhBhbW91bnRBc3NldERlbHRhIg9wcmljZUFzc2V0RGVsdGEiFGxwQXNzZXRFbWlzc2lvbkRlbHRhIhJhbW91bnRBc3NldEJhbGFuY2UiEXByaWNlQXNzZXRCYWxhbmNlIg9scEFzc2V0RW1pc3Npb24iCmN1cnJlbnRETHAiEnJlZnJlc2hETHBJbnRlcm5hbCIXYW1vdW50QXNzZXRCYWxhbmNlRGVsdGEiFnByaWNlQXNzZXRCYWxhbmNlRGVsdGEiB2FjdGlvbnMiEnZhbGlkYXRlVXBkYXRlZERMcCIGb2xkRExwIht2YWxpZGF0ZU1hdGNoZXJPcmRlckFsbG93ZWQiBW9yZGVyIhFhbW91bnRBc3NldEFtb3VudCIQcHJpY2VBc3NldEFtb3VudCINJHQwMjQ4OTgyNTExMCIDZExwIg0kdDAyNTQ1MjI1NTUyIg11bnVzZWRBY3Rpb25zIgZkTHBOZXciDGlzT3JkZXJWYWxpZCIEaW5mbyICY2ciA3BtdCICY3AiBmNhbGxlciIHYW1Bc1BtdCIHcHJBc1BtdCINY2FsY1B1dE9uZVRrbiIJcG10QW10UmF3Igt3aXRoVGFrZUZlZSINY2hlY2hFbWlzc2lvbiINJHQwMjgyMDgyODY3MCIMYW1CYWxhbmNlT2xkIgxwckJhbGFuY2VPbGQiDSR0MDI4Njc2Mjg4NTIiC2FtQW1vdW50UmF3IgtwckFtb3VudFJhdyINJHQwMjg4NTYyOTExMCIIYW1BbW91bnQiCHByQW1vdW50IgxhbUJhbGFuY2VOZXciDHByQmFsYW5jZU5ldyIIbHBBbW91bnQiDnBvb2xQcm9wb3J0aW9uIg9hbW91bnRBc3NldFBhcnQiDnByaWNlQXNzZXRQYXJ0IglscEFtdEJvdGgiBWJvbnVzIhNnZXRPbmVUa25WMkludGVybmFsIgpvdXRBc3NldElkIgxtaW5PdXRBbW91bnQiCHBheW1lbnRzIgxvcmlnaW5DYWxsZXIiDXRyYW5zYWN0aW9uSWQiCmFtRGVjaW1hbHMiCnByRGVjaW1hbHMiCnBvb2xTdGF0dXMiDSR0MDMxMjIyMzEzMzMiCHRvdGFsR2V0Igt0b3RhbEFtb3VudCINJHQwMzE1MjMzMTgzMCIFb3V0QW0iBW91dFByIghjdXJQclgxOCIFY3VyUHIiEW91dEFzc2V0SWRPcldhdmVzIhBzZW5kRmVlVG9NYXRjaGVyIgRidXJuIg0kdDAzMjYxNTMyOTY1IhBmZWVBbW91bnRGb3JDYWxjIhBvdXRJbkFtb3VudEFzc2V0Ig0kdDAzMjk2ODMzMDc2IhFyZWZyZXNoRExwQWN0aW9ucyIRaXNVcGRhdGVkRExwVmFsaWQiAW0iByRtYXRjaDAiAnBtIgJwZCIJaXNNYW5hZ2VyIgJwayICbW0iBGdldFkiCWlzUmV2ZXJzZSITcG9vbEFtb3VudEluQmFsYW5jZSINJHQwMzQ1MjMzNDU0MyINJHQwMzQ4NzQzNDkyMSITc2tpcE9yZGVyVmFsaWRhdGlvbiINY2xlYW5BbW91bnRJbiINZmVlUG9vbEFtb3VudCINJHQwMzUyNzMzNTY5NyIIYXNzZXRPdXQiAmR5Igt0b3RhbEdldFJhdyIFbmV3WHAiBG5ld0QiDGFtb3VudE91dE1pbiIJYWRkcmVzc1RvIgtzd2FwQ29udGFjdCIGY2hlY2tzIgdhc3NldEluIg0kdDAzNzEzMzM3NTI3IghjaGVja01pbiIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiAmNtIgNocG0iA2NwbSIEc2xpcCIJYXV0b1N0YWtlIgdmYWN0Q2ZnIgtzdGFraW5nQ250ciIIc2xpcENudHIiCmFtQXNzZXRQbXQiCnByQXNzZXRQbXQiAWUiCWxwQXNzZXRJZCICZWwiBmxlZ2FjeSICc2EiAnNwIghscFRybnNmciICc3MiDSR0MDQyMTQ2NDIyODgiBWNoZWNrIhRscEFzc2V0RW1pc3Npb25BZnRlciIgaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiDWlzUHV0RGlzYWJsZWQiDSR0MDQzOTI5NDQwODciB2VzdGltTFAiDSR0MDQ0OTcyNDUzMjEiFHBheW1lbnRJbkFtb3VudEFzc2V0Ig0kdDA0NTMyNDQ1NDMyIgdtYXhTbHBnIgZlc3RQdXQiDSR0MDQ2NDYyNDY1MjciCW91dEFtdEFtdCINJHQwNDc3MDA0Nzc4MiINaXNHZXREaXNhYmxlZCINJHQwNDg0MDA0ODU1NSIYbGFzdFJlZnJlc2hlZEJsb2NrSGVpZ2h0Ih1jaGVja0xhc3RSZWZyZXNoZWRCbG9ja0hlaWdodCINJHQwNDkwNzk0OTE0MyIQZExwVXBkYXRlQWN0aW9ucyINbHBBc3NldEFtb3VudCIFaW5kZXgiBG5ld1kiDSR0MDUwMTUzNTAyMDgiDSR0MDUwNTgzNTA2OTgiDnN1bU9mR2V0QXNzZXRzIhJub0xlc3NUaGVuQW10QXNzZXQiFG5vTGVzc1RoZW5QcmljZUFzc2V0IhRidXJuTFBBc3NldE9uRmFjdG9yeSINJHQwNTE4NjQ1MTk0NSINY2hlY2tQYXltZW50cyIKZmFjdG9yeUNmZyIHc3Rha2luZyIKdW5zdGFrZUludiIBdiIFYnVybkEiDSR0MDUyOTcyNTMwNTMiDXVuc3Rha2VBbW91bnQiFW5vTGVzc1RoZW5BbW91bnRBc3NldCIDcmVzIgxjaGVja0Ftb3VudHMiDSR0MDU0MzA0NTQzODUiF2xwQXNzZXRSZWNpcGllbnRBZGRyZXNzIg0kdDA1NTQwNzU1NTk1IhBwYXltZW50QW1vdW50UmF3Ig5wYXltZW50QXNzZXRJZCINJHQwNTU3MjM1NTgyNiINJHQwNTU5NzQ1NjA3OCIIYW10QXNTdHIiB3ByQXNTdHIiAnByIgxyZXNTY2FsZU11bHQiB3VzckFkZHIiB3BtdEFzSWQiA2NmZyINJHQwNTg0MzI1ODYzMSIEbGlzdCIFZGVsYXkiBWRlbHRhIgZ0YXJnZXQiBmN1ckFtcCIJbmV3QW1wUmF3IgZuZXdBbXAiCGxhc3RDYWxsIgR3YWl0IgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXkiCm1hdGNoZXJQdWIiDSR0MDU5NTQzNTk2NjAiB25ld0hhc2giC2FsbG93ZWRIYXNoIgtjdXJyZW50SGFzaIUBAAFhAIDC1y8AAWIJALYCAQCAwtcvAAFjCQC2AgEAgICQu7rWrfANAAFkCQC2AgEAAAABZQkAtgIBAAAAAWYJALYCAQABAAFnCQC2AgEAAgABaAkAtgIBAAMAAWkJALYCAQAEAAFqCQC2AgEJAGUCBQFhCQBpAgkAaAIFAWEAAQUBYQABawIFV0FWRVMAAWwCAzEwMAABbQIBMQABbgICX18AAW8CAAABcAABAAFxAAIAAXIAAwABcwAEAAF0AAEAAXUAAgABdgADAAF3AAQAAXgABQABeQAGAAF6AAcAAUEACAABQgAJAAFDAAEAAUQABgABRQAHAAFGAAoAAUcJAGsDAAoFAWEAkE4BAUgCAUkBSgkAvAIDCQC2AgEFAUkFAWMJALYCAQUBSgEBSwIBSQFKCQC8AgMFAUkFAWMFAUoBAUwCAU0BTgkAoAMBCQC8AgMFAU0JALYCAQUBTgUBYwEBTwMBTQFOAVAJAKADAQkAvQIEBQFNCQC2AgEFAU4FAWMFAVABAVECAUkBSgkAvAIDBQFJBQFjCQC2AgEFAUoBAVICAU0BTgkAvAIDBQFNCQC2AgEFAU4FAWMBAVMDAVQBVQFWCQBrAwUBVAUBVQUBVgEBVwEBTQMJAL8CAgUBZAUBTQkAvgIBBQFNBQFNAQFYAQFNAwkAvwICBQFkBQFNCQC+AgEFAU0FAU0BAVkAAhMlc19fZmFjdG9yeUNvbnRyYWN0AQFaAAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBAmFhAAIbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AQJhYgACESVzJXNfX3ByaWNlX19sYXN0AQJhYwICYWQCYWUJALkJAgkAzAgCAhglcyVzJWQlZF9fcHJpY2VfX2hpc3RvcnkJAMwIAgkApAMBBQJhZAkAzAgCCQCkAwEFAmFlBQNuaWwFAW4BAmFmAgJhZwJhaAkArAICCQCsAgIJAKwCAgILJXMlcyVzX19QX18FAmFnAgJfXwUCYWgBAmFpAgJhZwJhaAkArAICCQCsAgIJAKwCAgILJXMlcyVzX19HX18FAmFnAgJfXwUCYWgBAmFqAAIPJXNfX2Ftb3VudEFzc2V0AQJhawACDiVzX19wcmljZUFzc2V0AQJhbAACByVzX19hbXABAmFtAQJhbgkArAICAgslcyVkX19hbXBfXwkApAMBBQJhbgECYW8AAhUlc19fY2hhbmdlQW1wTGFzdENhbGwAAmFwAgclc19fZmVlAAJhcQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJhcAUBRwACYXIJALkJAgkAzAgCAgIlcwkAzAgCAgNkTHAFA25pbAUBbgACYXMJALkJAgkAzAgCAgIlcwkAzAgCAhJkTHBSZWZyZXNoZWRIZWlnaHQFA25pbAUBbgACYXQJALkJAgkAzAgCAgIlcwkAzAgCAg9yZWZyZXNoRExwRGVsYXkFA25pbAUBbgACYXUAHgACYXYJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCYXQFAmF1AQJhdwACESVzX19mYWN0b3J5Q29uZmlnAQJheAACGCVzJXNfX21hdGNoZXJfX3B1YmxpY0tleQECYXkCAmF6AmFBCQCsAgIJAKwCAgkArAICCQCsAgICCCVkJWQlc19fBQJhegICX18FAmFBAghfX2NvbmZpZwECYUIBAmFDCQCsAgICKCVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJpbnRlcm5hbElkX18FAmFDAQJhRAACDCVzX19zaHV0ZG93bgECYUUAAh0lc19fYWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaAECYUYAAhclc19fZmVlQ29sbGVjdG9yQWRkcmVzcwECYUcBAmFICQCsAgICGyVzJXNfX3NraXBPcmRlclZhbGlkYXRpb25fXwUCYUgBAmFJBAJhSgJhSwJhTAJhTQkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAiRvcmRlciB2YWxpZGF0aW9uIGZhaWxlZDogb3JkZXJWYWxpZD0JAKUDAQUCYUoCAiAoBQJhSwIBKQINIHNlbmRlclZhbGlkPQkApQMBBQJhTAIOIG1hdGNoZXJWYWxpZD0JAKUDAQUCYU0BAmFOAgJhTwJhUAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFAmFPBQJhUAkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQJhTwkAzAgCAgEuCQDMCAIFAmFQCQDMCAICDCBub3QgZGVmaW5lZAUDbmlsAgABAmFRAgJhTwJhUAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFAmFPBQJhUAkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQJhTwkAzAgCAgEuCQDMCAIFAmFQCQDMCAICDCBub3QgZGVmaW5lZAUDbmlsAgABAmFSAQJhUwkAAgEJALkJAgkAzAgCAg9scF9zdGFibGUucmlkZToJAMwIAgUCYVMFA25pbAIBIAECYVQBAmFTCQC5CQIJAMwIAgIPbHBfc3RhYmxlLnJpZGU6CQDMCAIFAmFTBQNuaWwCASAAAmFVCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYU4CBQR0aGlzCQEBWQAAAmFWCgACYVcJAPwHBAUCYVUCEGdldEluRmVlUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJhVwIDSW50BQJhVwkAAgEJAKwCAgkAAwEFAmFXAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQAAmFYCgACYVcJAPwHBAUCYVUCEWdldE91dEZlZVJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYVcCA0ludAUCYVcJAAIBCQCsAgIJAAMBBQJhVwIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AAJhWQkBAmFOAgUEdGhpcwkBAmFsAAECYVoACQELdmFsdWVPckVsc2UCCQCbCAIFAmFVCQECYUQABwECYmEACQDZBAEJAQJhTgIFAmFVCQECYXgAAAJiYgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmFOAgUCYVUJAQJhRgABAmJjAAQCYmQJAQJhTgIFBHRoaXMJAQJhagAEAmJlCQECYU4CBQR0aGlzCQECYWsABAJiZgkBAmFRAgUCYVUJAQJhQgEFAmJlBAJhegkBAmFRAgUCYVUJAQJhQgEFAmJkCQC1CQIJAQJhTgIFAmFVCQECYXkCCQCkAwEFAmF6CQCkAwEFAmJmBQFuAQJiZwECYmgDCQAAAgUCYmgFAWsFBHVuaXQJANkEAQUCYmgBAmJpAQJiaAMJAAACBQJiaAUEdW5pdAUBawkA2AQBCQEFdmFsdWUBBQJiaAECYmoBAmJrCQCbCgkJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYmsFAXQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiawUBdQkA2QQBCQCRAwIFAmJrBQF2CQECYmcBCQCRAwIFAmJrBQF3CQECYmcBCQCRAwIFAmJrBQF4CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYmsFAXkJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiawUBegkA2QQBCQCRAwIFAmJrBQFBCQDZBAEJAJEDAgUCYmsFAUIAAmJsCQECYmoBCQECYmMAAAJibQUCYmwAAmJuCAUCYm0CXzEAAmJvCAUCYm0CXzIAAmJwCAUCYm0CXzMAAmJxCAUCYm0CXzQAAmJyCAUCYm0CXzUAAmJzCAUCYm0CXzYAAmJ0CAUCYm0CXzcAAmJ1CAUCYm0CXzgAAmJ2CAUCYm0CXzkBAmJ3AAkAtQkCCQECYU4CBQJhVQkBAmF3AAUBbgACYngJAQJidwAAAmJ5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJieAUBQwIgSW52YWxpZCBzdGFraW5nIGNvbnRyYWN0IGFkZHJlc3MAAmJ6CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJieAUBRQIgSW52YWxpZCBzbGlwYWdlIGNvbnRyYWN0IGFkZHJlc3MAAmJBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJieAUBRgIcSW52YWxpZCBnd3ggY29udHJhY3QgYWRkcmVzcwACYkIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmJ4BQFEAhxJbnZhbGlkIGd3eCBjb250cmFjdCBhZGRyZXNzAQJiQwoCYkQCYkUCYkYCYkcCYkgCYkkCYkoCYksCYkwCYk0JALkJAgkAzAgCAhQlZCVkJWQlZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmJECQDMCAIJAKQDAQUCYkUJAMwIAgkApAMBBQJiRgkAzAgCCQCkAwEFAmJHCQDMCAIJAKQDAQUCYkgJAMwIAgkApAMBBQJiSQkAzAgCCQCkAwEFAmJKCQDMCAIJAKQDAQUCYksJAMwIAgkApAMBBQJiTAkAzAgCCQCkAwEFAmJNBQNuaWwFAW4BAmJOBgJiTwJiUAJiUQJiRwJiSgJiSwkAuQkCCQDMCAICDCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmJPCQDMCAIJAKQDAQUCYlAJAMwIAgkApAMBBQJiUQkAzAgCCQCkAwEFAmJHCQDMCAIJAKQDAQUCYkoJAMwIAgkApAMBBQJiSwUDbmlsBQFuAQJiUgECYlMDCQAAAgUCYlMCBVdBVkVTCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQkA8AcCBQR0aGlzCQDZBAEFAmJTAQJiVAICYlUCYlYJALwCAwUCYlUFAWMFAmJWAQJiVwMCYlUCYlYBUAkAvQIEBQJiVQUBYwUCYlYFAVABAmJYAwJiWQJiWgJjYQQCY2IJALwCAwkAuAICBQJiWQUCYloFAWIFAmJaBAJjYwkAvwICCQC4AgIFAmNhCQEBVwEFAmNiBQFkAwkBASEBBQJjYwkAAgEJAKwCAgIKQmlnIHNscGc6IAkApgMBBQJjYgkAlAoCBQJjYwkAmQMBCQDMCAIFAmJZCQDMCAIFAmJaBQNuaWwBAmNkAwJjZQJjZgJjZwQCY2IJALwCAwUCY2YFAWIFAmNlBAJjaAkAvwICBQJjZwUCY2IDAwUCY2gGCQC/AgIFAmNmBQJjZQkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKYDAQUCY2YCASAJAKYDAQUCY2UCASAJAKYDAQUCY2ICASAJAKYDAQUCY2cFAmNoAQJjaQQCY2oCY2sCY2wCY20EAmNuCQEBSAIFAmNsBQJjagQCY28JAQFIAgUCY20FAmNrCQECYlQCBQJjbwUCY24BAmNwAwJjbAJjbQJjcQQCY3IFAmJzBAJjcwUCYnQEAmN0CQECY2kEBQJjcgUCY3MFAmNsBQJjbQQCYlYJAQFIAgUCY2wFAmNyBAJiVQkBAUgCBQJjbQUCY3MEAmN1CQEBSAIFAmNxBQFhBAJjdgkBAmJUAgUCYlYFAmN1BAJjdwkBAmJUAgUCYlUFAmN1CQDMCAIFAmN0CQDMCAIFAmN2CQDMCAIFAmN3BQNuaWwBAmN4AwJjbAJjbQJjcQQCY3kJAQJjcAMFAmNsBQJjbQUCY3EJAMwIAgkBAUwCCQCRAwIFAmN5AAAFAWEJAMwIAgkBAUwCCQCRAwIFAmN5AAEFAWEJAMwIAgkBAUwCCQCRAwIFAmN5AAIFAWEFA25pbAECY3oCAmNBAmFxBAJjQgMJAAACBQJhcQAAAAAJAGsDBQJjQQUCYXEFAWEJAJQKAgkAZQIFAmNBBQJjQgUCY0IBAmNDAQJjRAQCY0UJAJEDAgUCY0QAAAQCY0YJAJEDAgUCY0QAAQQCY0cJALcCAgUCY0UFAmNGAwkAAAIFAmNHBQFlBQFlBAJjSAkBDXBhcnNlSW50VmFsdWUBBQJhWQQCY0kJAGgCBQJjSAACBAJjeQkAvAIDBQJjRQUCY0YFAWYEAmNKCQC8AgMFAmN5BQFpBQFmBAJjSwkAvAIDCQC2AgEFAmNJBQJjRwUBZgQCY0wJALYCAQkAZQIFAmNJAAEKAQJjTQECY04EAmNPCQC8AgMFAmNOBQJjTgUBZgQCY1AJALwCAwUCY08FAmNOBQFmBAJjUQkAvAIDBQJjUAUBZgUCY0oJALwCAwkAtwICBQJjSwkAvAIDBQJjUQUBZwUBZgUCY04JALcCAgkAvAIDBQJjTAUCY04FAWYJALwCAwUBaAUCY1EFAWYKAQJjUgICY1MCY1QDCAUCY1MCXzIFAmNTBAJjTggFAmNTAl8xBAJjVQkBAmNNAQUCY04EAmNWCQC4AgIFAmNVCQEFdmFsdWUBBQJjTgQCY1cDCQC/AgIFAWUFAmNWCQC+AgEFAmNWBQJjVgMJAMACAgUBZgUCY1cJAJQKAgUCY1UGCQCUCgIFAmNVBwQCY1gJAMwIAgAACQDMCAIAAQkAzAgCAAIJAMwIAgADCQDMCAIABAkAzAgCAAUJAMwIAgAGCQDMCAIABwkAzAgCAAgJAMwIAgAJCQDMCAIACgkAzAgCAAsJAMwIAgAMCQDMCAIADQkAzAgCAA4JAMwIAgAPCQDMCAIAEAUDbmlsBAJjWQoAAmNaBQJjWAoAAmRhCQCQAwEFAmNaCgACZGIJAJQKAgUCY0cHCgECZGMCAmRkAmRlAwkAZwIFAmRlBQJkYQUCZGQJAQJjUgIFAmRkCQCRAwIFAmNaBQJkZQoBAmRmAgJkZAJkZQMJAGcCBQJkZQUCZGEFAmRkCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTcJAQJkZgIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIFAmRiAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARBAJjTggFAmNZAl8xBAJkZwgFAmNZAl8yAwUCZGcFAmNOCQACAQkArAICAhlEIGNhbGN1bGF0aW9uIGVycm9yLCBEID0gCQCmAwEFAmNOAQJkaAQCZGkCZGoCZGsCZGwEAmRtBQJicAQCZG4JANgEAQkBBXZhbHVlAQUCYnEEAmRvCQDYBAEJAQV2YWx1ZQEFAmJyBAJkcAUCYnMEAmRxBQJidAQCZHIJAKQDAQUCYm8EAmRzCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmRtAgtXcm9uZyBMUCBpZAhxdWFudGl0eQMJAQIhPQIJANgEAQUCZG0FAmRqCQACAQIPV3JvbmcgcG10IGFzc2V0BAJkdAkBAmJSAQUCZG4EAmR1CQEBSAIFAmR0BQJkcAQCZHYJAQJiUgEFAmRvBAJkdwkBAUgCBQJkdgUCZHEEAmR4CQECYlQCBQJkdwUCZHUEAmR5CQEBTAIFAmR4BQFhBAJkegkBAUgCBQJkawUBYQQCZEEJAQFIAgUCZHMFAWEEAmRCCQC8AgMFAmR1BQJkegUCZEEEAmRDCQC8AgMFAmR3BQJkegUCZEEEAmRECQEBTwMFAmRCBQJkcAUFRkxPT1IEAmRFCQEBTwMFAmRDBQJkcQUFRkxPT1IEAmRGAwkAAAIFAmRpAgAFA25pbAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJkbAUCZEQDCQAAAgUCZG4CBVdBVkVTBQR1bml0CQDZBAEFAmRuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmRsBQJkRQMJAAACBQJkbwIFV0FWRVMFBHVuaXQJANkEAQUCZG8JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFpAgkApQgBBQJkbAUCZGkJAQJiTgYFAmREBQJkRQUCZGsFAmR5BQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWIABQJkeQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFjAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZHkFA25pbAkAnAoKBQJkRAUCZEUFAmRuBQJkbwUCZHQFAmR2BQJkcwUCZHgFAmRyBQJkRgECZEcNAmRpAmNhAmRIAmRJAmRKAmRLAmRsAmRMAmRNAmROAmRPAmRQAmRRBAJkbQUCYnAEAmRSCQDYBAEJAQV2YWx1ZQEFAmJxBAJkUwkA2AQBCQEFdmFsdWUBBQJicgQCZFQFAmJ1BAJkVQUCYnYEAmRWBQJicwQCZFcFAmJ0BAJkcgkApAMBBQJibwQCZFgICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCZG0CCFdyIGxwIGFzCHF1YW50aXR5BAJkdAMFAmRMCQECYlIBBQJkUgMDBQJkTgkAAAIFAmRRBQJkUgcJAGUCCQECYlIBBQJkUgUCZFADBQJkTgkBAmJSAQUCZFIJAGUCCQECYlIBBQJkUgUCZEgEAmR2AwUCZEwJAQJiUgEFAmRTAwMFAmROCQAAAgUCZFEFAmRTBwkAZQIJAQJiUgEFAmRTBQJkUAMFAmROCQECYlIBBQJkUwkAZQIJAQJiUgEFAmRTBQJkSgQCZFkJAQFIAgUCZEgFAmRWBAJkWgkBAUgCBQJkSgUCZFcEAmVhCQECYlQCBQJkWgUCZFkEAmR1CQEBSAIFAmR0BQJkVgQCZHcJAQFIAgUCZHYFAmRXBAJjZgkBAmNDAQkAzAgCBQJkdQkAzAgCBQJkdwUDbmlsBAJlYgMJAAACBQJkWAAABAJjZQkBAmNDAQkAzAgCCQC3AgIFAmR1BQJkWQkAzAgCCQC3AgIFAmR3BQJkWgUDbmlsBAJlYwMJAL8CAgUCY2UFAmNmBgkAAgECHEQxIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gRDADCQAAAgUCZWMFAmVjBAJkeAUBZAQCZWQFAWQEAmN1BQJjZQkAlwoFCQEBTAIFAmN1BQFhCQEBTAIFAmRZBQJkVgkBAUwCBQJkWgUCZFcJAQJiVAIJALcCAgUCZHcFAmRaCQC3AgIFAmR1BQJkWQUCZWQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EAmR4CQECYlQCBQJkdwUCZHUEAmVlCQC8AgMJAQFXAQkAuAICBQJkeAUCZWEFAWMFAmR4BAJlZAkBAUgCBQJjYQUBYQMDAwUCZE8JAQIhPQIFAmR4BQFkBwkAvwICBQJlZQUCZWQHCQACAQkArAICCQCsAgIJAKwCAgIPUHJpY2Ugc2xpcHBhZ2UgCQCmAwEFAmVlAgMgPiAJAKYDAQUCZWQEAmVmCQEBSAIFAmRYBQFhBAJlZwkAvQIEBQJkWQkBAmJXAwUCZHcFAmR1BQdDRUlMSU5HBQFjBQdDRUlMSU5HBAJlaAkAvQIEBQJkWgUBYwkBAmJXAwUCZHcFAmR1BQVGTE9PUgUHQ0VJTElORwQCZWkDCQC/AgIFAmVnBQJkWgkAlAoCBQJlaAUCZFoJAJQKAgUCZFkFAmVnBAJlaggFAmVpAl8xBAJlawgFAmVpAl8yBAJjZQkBAmNDAQkAzAgCCQC3AgIFAmR1BQJlagkAzAgCCQC3AgIFAmR3BQJlawUDbmlsBAJlYwMJAL8CAgUCY2UFAmNmBgkAAgECHEQxIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gRDADCQAAAgUCZWMFAmVjBAJjdQkAvAIDBQJlZgkAuAICBQJjZQUCY2YFAmNmCQCXCgUJAQFPAwUCY3UFAWEFBUZMT09SCQEBTwMFAmVqBQJkVgUHQ0VJTElORwkBAU8DBQJlawUCZFcFB0NFSUxJTkcFAmR4BQJlZAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQCZWwIBQJlYgJfMQQCZW0IBQJlYgJfMgQCZW4IBQJlYgJfMwQCZHkJAQFMAggFAmViAl80BQFhBAJlbwkBAUwCCAUCZWICXzUFAWEDCQBnAgAABQJlbAkAAgECB0xQIDw9IDAEAmVwAwkBASEBBQJkTQAABQJlbAQCZXEJAGUCBQJkSAUCZW0EAmVyCQBlAgUCZEoFAmVuBAJlcwMDBQJkTgkAAAIFAmRRBQJkUgcJAJQKAgUCZFAAAAMDBQJkTgkAAAIFAmRRBQJkUwcJAJQKAgAABQJkUAkAlAoCBQJlbQUCZW4EAmV0CAUCZXMCXzEEAmV1CAUCZXMCXzIEAmV2CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWIABQJkeQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFjAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZHkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFmAgUCZGwFAmRpCQECYkMKBQJldAUCZXUFAmVwBQJkeQUCY2EFAmVvBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJlcQUCZXIFA25pbAkAnwoNBQJlbAUCZXAFAmR5BQJkdAUCZHYFAmRYBQJkbQUCZHIFAmV2BQJlcQUCZXIFAmRJBQJkSwECZXcDAmNEAmNUAmV4BAJleQUBZwQCZXoJAJEDAgUCY0QDCQAAAgUCY1QAAAABAAAEAmVBCQCnAwEFAWwEAmNICQC5AgIJAKcDAQUCYVkFAmVBBAJjRwUCZXoEAmNJCQC5AgIFAmNIBQJleQQCZUIJALoCAgkAuQICCQC5AgIJALoCAgkAuQICBQJleAUCZXgJALkCAgUCZXoFAmV5BQJleAUCZUEJALkCAgUCY0kFAmV5BAJlQwkAuAICCQC3AgIFAmNHCQC6AgIJALkCAgUCZXgFAmVBBQJjSQUCZXgKAQJjUgICY1MCZUQEAmVFBQJjUwQCZUYIBQJlRQJfMQQCZGcIBQJlRQJfMgMJAQIhPQIFAmRnBQR1bml0BQJjUwQCZUcJALoCAgkAtwICCQC5AgIFAmVGBQJlRgUCZUIJALcCAgkAuQICBQFnBQJlRgUCZUMEAmVICQEBWAEJALgCAgUCZUcJAQV2YWx1ZQEFAmVGAwkAwAICBQFmBQJlSAkAlAoCBQJlRwUCZUQJAJQKAgUCZUcFBHVuaXQEAmNYCQDMCAIAAAkAzAgCAAEJAMwIAgACCQDMCAIAAwkAzAgCAAQJAMwIAgAFCQDMCAIABgkAzAgCAAcJAMwIAgAICQDMCAIACQkAzAgCAAoJAMwIAgALCQDMCAIADAkAzAgCAA0JAMwIAgAOBQNuaWwEAmVJCgACY1oFAmNYCgACZGEJAJADAQUCY1oKAAJkYgkAlAoCBQJleAUEdW5pdAoBAmRjAgJkZAJkZQMJAGcCBQJkZQUCZGEFAmRkCQECY1ICBQJkZAkAkQMCBQJjWgUCZGUKAQJkZgICZGQCZGUDCQBnAgUCZGUFAmRhBQJkZAkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDE1CQECZGYCCQECZGMCCQECZGMCCQECZGMCCQECZGMCCQECZGMCCQECZGMCCQECZGMCCQECZGMCCQECZGMCCQECZGMCCQECZGMCCQECZGMCCQECZGMCCQECZGMCCQECZGMCBQJkYgAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPBAJlRggFAmVJAl8xBAJkZwgFAmVJAl8yAwkBAiE9AgUCZGcFBHVuaXQFAmVGCQACAQkArAICAhlZIGNhbGN1bGF0aW9uIGVycm9yLCBZID0gCQCmAwEFAmVGAQJlSgMCZUsCZUwCZU0EAmVOCQC8AgMJAQJjQwEJAMwIAgkBAUsCBQJlSwkAtgIBBQJicwkAzAgCCQEBSwIFAmVMCQC2AgEFAmJ0BQNuaWwFAWMFAmVNAwkAAAIFAmVNBQFlBQFlBQJlTgECZU8DAmVQAmVRAmVSBAJlUwkAuAICCQC2AgEJAQJiUgEJAQJiaQEFAmJxBQJlUAQCZVQJALgCAgkAtgIBCQECYlIBCQECYmkBBQJicgUCZVEEAmVVCQC4AgIJALYCAQgJAQV2YWx1ZQEJAOwHAQUCYnAIcXVhbnRpdHkFAmVSBAJlVgkBAmVKAwUCZVMFAmVUBQJlVQUCZVYBAmVXAwJlWAJlWQJlUgQCZVMJAGQCCQECYlIBCQECYmkBBQJicQUCZVgEAmVUCQBkAgkBAmJSAQkBAmJpAQUCYnIFAmVZBAJlVQkAZAIICQEFdmFsdWUBCQDsBwEFAmJwCHF1YW50aXR5BQJlUgQCZU4JAQJlSgMJALYCAQUCZVMJALYCAQUCZVQJALYCAQUCZVUEAmVaCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJhcwUGaGVpZ2h0CQDMCAIJAQtTdHJpbmdFbnRyeQIFAmFyCQCmAwEFAmVOBQNuaWwJAJQKAgUCZVoFAmVOAQJmYQICZmICZU4DCQDAAgIFAmVOBQJmYgYJAQJhUgECInVwZGF0ZWQgRExwIGxvd2VyIHRoYW4gY3VycmVudCBETHABAmZjAQJmZAQCZVMJAQJiUgEJAQJiaQEFAmJxBAJlVAkBAmJSAQkBAmJpAQUCYnIEAmZlCAUCZmQGYW1vdW50BAJmZgkAbgQIBQJmZAZhbW91bnQIBQJmZAVwcmljZQUBYQUFRkxPT1IEAmZnAwkAAAIIBQJmZAlvcmRlclR5cGUFA0J1eQkAlAoCBQJmZQkBAS0BBQJmZgkAlAoCCQEBLQEFAmZlBQJmZgQCZVgIBQJmZwJfMQQCZVkIBQJmZwJfMgMDAwkBAmFaAAYJAAACBQJibwUBcgYJAAACBQJibwUBcwkAAgECDUFkbWluIGJsb2NrZWQDAwkBAiE9AggIBQJmZAlhc3NldFBhaXILYW1vdW50QXNzZXQFAmJxBgkBAiE9AggIBQJmZAlhc3NldFBhaXIKcHJpY2VBc3NldAUCYnIJAAIBAglXciBhc3NldHMEAmZoCQCnAwEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUCYXICATAEAmZpCQECZVcDBQJlWAUCZVkAAAQCZmoIBQJmaQJfMQQCZmsIBQJmaQJfMgQCZmwJAMACAgUCZmsFAmZoBAJmbQkAuQkCCQDMCAICBGRMcD0JAMwIAgkApgMBBQJmaAkAzAgCAgggZExwTmV3PQkAzAgCCQCmAwEFAmZrCQDMCAICFCBhbW91bnRBc3NldEJhbGFuY2U9CQDMCAIJAKQDAQUCZVMJAMwIAgITIHByaWNlQXNzZXRCYWxhbmNlPQkAzAgCCQCkAwEFAmVUCQDMCAICGSBhbW91bnRBc3NldEJhbGFuY2VEZWx0YT0JAMwIAgkApAMBBQJlWAkAzAgCAhggcHJpY2VBc3NldEJhbGFuY2VEZWx0YT0JAMwIAgkApAMBBQJlWQkAzAgCAgggaGVpZ2h0PQkAzAgCCQCkAwEFBmhlaWdodAUDbmlsAgAJAJQKAgUCZmwFAmZtAQJmbgECY1QDCQECIT0CCQCQAwEIBQJjVAhwYXltZW50cwABCQACAQIKMSBwbW50IGV4cAQCZm8JAQV2YWx1ZQEJAJEDAggFAmNUCHBheW1lbnRzAAAEAmRqCQEFdmFsdWUBCAUCZm8HYXNzZXRJZAQCZFAIBQJmbwZhbW91bnQEAmViCQECZGgECQDYBAEIBQJjVA10cmFuc2FjdGlvbklkCQDYBAEFAmRqBQJkUAgFAmNUBmNhbGxlcgQCZEQIBQJlYgJfMQQCZEUIBQJlYgJfMgQCZHIJAQ1wYXJzZUludFZhbHVlAQgFAmViAl85BAJkRggFAmViA18xMAMDCQECYVoABgkAAAIFAmRyBQFzCQACAQkArAICAg9BZG1pbiBibG9ja2VkOiAJAKQDAQUCZHIJAJcKBQUCZEQFAmRFBQJkUAUCZGoFAmRGAQJmcAoCZnECYWgCZnICZnMCY2ECZE0CZE4CZE8CZFACZFEEAmViCQECZEcNBQJhaAUCY2EICQEFdmFsdWUBBQJmcgZhbW91bnQICQEFdmFsdWUBBQJmcgdhc3NldElkCAkBBXZhbHVlAQUCZnMGYW1vdW50CAkBBXZhbHVlAQUCZnMHYXNzZXRJZAUCZnEJAAACBQJhaAIABQJkTQUCZE4FAmRPBQJkUAUCZFEEAmRyCQENcGFyc2VJbnRWYWx1ZQEIBQJlYgJfOAMDAwkBAmFaAAYJAAACBQJkcgUBcQYJAAACBQJkcgUBcwkAAgEJAKwCAgIIQmxvY2tlZDoJAKQDAQUCZHIFAmViAQJmdAUCZnUCZGoCZGwCYWgCZnYEAmRuCQDYBAEJAQV2YWx1ZQEFAmJxBAJkbwkA2AQBCQEFdmFsdWUBBQJicgQCZG0FAmJwBAJkVgUCYnMEAmRXBQJidAQCZVUJALYCAQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJkbQIQaW52YWxpZCBscCBhc3NldAhxdWFudGl0eQQCZncDCQC/AgIFAmVVBQFlBgkAAgECImluaXRpYWwgZGVwb3NpdCByZXF1aXJlcyBhbGwgY29pbnMDCQAAAgUCZncFAmZ3BAJkdAkBAmJSAQUCZG4EAmR2CQECYlIBBQJkbwQCZngDCQAAAgUCYWgCAAkAlAoCBQJkdAUCZHYDCQAAAgUCZGoFAmRuAwkAZgIFAmZ1BQJkdAkAAgECFmludmFsaWQgcGF5bWVudCBhbW91bnQJAJQKAgkAZQIFAmR0BQJmdQUCZHYDCQAAAgUCZGoFAmRvAwkAZgIFAmZ1BQJkdgkAAgECFmludmFsaWQgcGF5bWVudCBhbW91bnQJAJQKAgUCZHQJAGUCBQJkdgUCZnUJAAIBAhB3cm9uZyBwbXRBc3NldElkBAJmeQgFAmZ4Al8xBAJmeggFAmZ4Al8yBAJmQQMJAAACBQJkagUCZG4JAJQKAgUCZnUAAAMJAAACBQJkagUCZG8JAJQKAgAABQJmdQkAAgECD2ludmFsaWQgcGF5bWVudAQCZkIIBQJmQQJfMQQCZkMIBQJmQQJfMgQCZkQDBQJmdgkAlQoDCAkBAmN6AgUCZkIFAmFWAl8xCAkBAmN6AgUCZkMFAmFWAl8xCAkBAmN6AgUCZnUFAmFWAl8yCQCVCgMFAmZCBQJmQwAABAJmRQgFAmZEAl8xBAJmRggFAmZEAl8yBAJjQggFAmZEAl8zBAJmRwkAZAIFAmZ5BQJmRQQCZkgJAGQCBQJmegUCZkYEAmNmCQECY0MBCQDMCAIJAQFIAgUCZnkFAmJzCQDMCAIJAQFIAgUCZnoFAmJ0BQNuaWwEAmNlCQECY0MBCQDMCAIJAQFIAgUCZkcFAmJzCQDMCAIJAQFIAgUCZkgFAmJ0BQNuaWwEAmVjAwkAvwICBQJjZQUCY2YGCQEFdGhyb3cAAwkAAAIFAmVjBQJlYwQCZkkJAL0CBAUCZVUJALgCAgUCY2UFAmNmBQJjZgUFRkxPT1IEAmR5CQEBTAIJAQJiVAIJAQFIAgUCZkgFAmRXCQEBSAIFAmZHBQJkVgUBYQQCZXYJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhYgAFAmR5CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWMCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJkeQkAzAgCCQELU3RyaW5nRW50cnkCCQECYWYCBQJkbAUCYWgJAQJiQwoFAmZCBQJmQwkAoAMBBQJmSQUCZHkAAAAABQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wAAAAAAUDbmlsBAJmSgkAawMFAmZ6BQFhBQJmeQQCZksJAGsDBQJmdQUBYQkAZAIFAmZKBQFhBAJmTAkAZQIFAmZ1BQJmSwQCZk0JALwCAwUCZVUJALYCAQUCZkwJALYCAQUCZnoEAmZOCQCgAwEJALwCAwkAuAICBQJmSQUCZk0FAWIFAmZNCQCWCgQJAKADAQUCZkkFAmV2BQJjQgUCZk4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmZPBgJmUAJmUQJmUgJmcQJmUwJmVAQCZG0JANgEAQkBBXZhbHVlAQUCYnAEAmRuCQDYBAEJAQV2YWx1ZQEFAmJxBAJkbwkA2AQBCQEFdmFsdWUBBQJicgQCZlUFAmJzBAJmVgUCYnQEAmZXBQJibwQCZGwDCQAAAgUCZnEFAmJCBQJmUwUCZnEEAmZvCQEFdmFsdWUBCQCRAwIFAmZSAAAEAmRqCQEFdmFsdWUBCAUCZm8HYXNzZXRJZAQCZFAIBQJmbwZhbW91bnQEAmVWCQECZU8DBQFlBQFlBQFlAwkAAAIFAmVWBQJlVgQCZGkJANgEAQUCZlQDCQECIT0CBQJkbQkA2AQBBQJkagkAAgECCFdyb25nIExQBAJkdAkBAmJSAQUCZG4EAmR2CQECYlIBBQJkbwQCZlgKAAJhVwkA/AcEBQR0aGlzAhNnZXRPbmVUa25WMlJFQURPTkxZCQDMCAIFAmZQCQDMCAIFAmRQBQNuaWwFA25pbAMJAAECBQJhVwIKKEludCwgSW50KQUCYVcJAAIBCQCsAgIJAAMBBQJhVwIfIGNvdWxkbid0IGJlIGNhc3QgdG8gKEludCwgSW50KQMJAAACBQJmWAUCZlgEAmNCCAUCZlgCXzIEAmZZCAUCZlgCXzEEAmZaAwMJAGYCBQJmUQAACQBmAgUCZlEFAmZZBwkBAmFSAQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJmUQUDbmlsAgAFAmZZBAJnYQMJAAACBQJmUAUCZG4JAJYKBAUCZloAAAkAZQIJAGUCBQJkdAUCZloFAmNCBQJkdgMJAAACBQJmUAUCZG8JAJYKBAAABQJmWgUCZHQJAGUCCQBlAgUCZHYFAmZaBQJjQgkAAgECFGludmFsaWQgb3V0IGFzc2V0IGlkBAJnYggFAmdhAl8xBAJnYwgFAmdhAl8yBAJmRwgFAmdhAl8zBAJmSAgFAmdhAl80BAJnZAkBAmJUAgkBAUgCBQJmSAUCZlYJAQFIAgUCZkcFAmZVBAJnZQkBAUwCBQJnZAUBYQQCZ2YDCQAAAgUCZlACBVdBVkVTBQR1bml0CQDZBAEFAmZQBAJnZwMJAGYCBQJjQgAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmJiBQJjQgUCZ2YFA25pbAUDbmlsBAJkRgkAzggCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmRsBQJmWgUCZ2YJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFpAgkApQgBBQJkbAUCZGkJAQJiTgYFAmdiBQJnYwUCZFAFAmdlBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWIABQJnZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFjAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZ2UFA25pbAUCZ2cDCQAAAgUCZEYFAmRGBAJnaAkA/AcEBQJhVQIEYnVybgkAzAgCBQJkUAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJkagUCZFAFA25pbAMJAAACBQJnaAUCZ2gEAmdpBAJnagMJAAACBQR0aGlzBQJiYgAABQJjQgQCZ2sDCQAAAgkBAmJnAQUCZlAFAmJxBgcDBQJnawkAlAoCCQEBLQEJAGQCBQJmWQUCZ2oAAAkAlAoCAAAJAQEtAQkAZAIFAmZZBQJnagQCZVgIBQJnaQJfMQQCZVkIBQJnaQJfMgQCZ2wJAQJlVwMFAmVYBQJlWQAABAJnbQgFAmdsAl8xBAJlTggFAmdsAl8yBAJnbgkBAmZhAgUCZVYFAmVOAwkAAAIFAmduBQJnbgkAlAoCCQDOCAIFAmRGBQJnbQUCZloJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmdvAAQCZ3AJAKIIAQkBAVoAAwkAAQIFAmdwAgZTdHJpbmcEAmNHBQJncAkA2QQBBQJjRwMJAAECBQJncAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJncQAEAmdwCQCiCAEJAQJhYQADCQABAgUCZ3ACBlN0cmluZwQCY0cFAmdwCQDZBAEFAmNHAwkAAQIFAmdwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAAmdyCQACAQIRUGVybWlzc2lvbiBkZW5pZWQBAmdzAQJjVAQCZ3AJAQJnbwADCQABAgUCZ3ACCkJ5dGVWZWN0b3IEAmd0BQJncAkAAAIIBQJjVA9jYWxsZXJQdWJsaWNLZXkFAmd0AwkAAQIFAmdwAgRVbml0CQAAAggFAmNUBmNhbGxlcgUEdGhpcwkAAgECC01hdGNoIGVycm9yAQJndQECY1QEAmdwCQECZ28AAwkAAQIFAmdwAgpCeXRlVmVjdG9yBAJndAUCZ3ADCQAAAggFAmNUD2NhbGxlclB1YmxpY0tleQUCZ3QGBQJncgMJAAECBQJncAIEVW5pdAMJAAACCAUCY1QGY2FsbGVyBQR0aGlzBgUCZ3IJAAIBAgtNYXRjaCBlcnJvcgECZ3YDAmd3AmV4Amd4BAJiawkBAmJjAAQCZG4JAJEDAgUCYmsFAXcEAmRvCQCRAwIFAmJrBQF4BAJleQUBZwQCZUEJAKcDAQUBbAQCY0gJALkCAgkApwMBBQJhWQUCZUEEAmNEAwkAAAIFAmd3BwkAzAgCCQC3AgIJALYCAQkBAmJSAQUCZG4FAmd4CQDMCAIJALYCAQkBAmJSAQUCZG8FA25pbAkAzAgCCQC3AgIJALYCAQkBAmJSAQUCZG8FAmd4CQDMCAIJALYCAQkBAmJSAQUCZG4FA25pbAQCZXoJAJEDAgUCY0QAAAQCY0cFAmV6BAJjSQkAuQICBQJjSAUCZXkEAmVCCQC6AgIJALkCAgkAuQICCQC6AgIJALkCAgUCZXgFAmV4CQC5AgIFAmV6BQJleQUCZXgFAmVBCQC5AgIFAmNJBQJleQQCZUMJALgCAgkAtwICBQJjRwkAugICCQC5AgIFAmV4BQJlQQUCY0kFAmV4CgECY1ICAmNTAmVEBAJneQUCY1MEAmVGCAUCZ3kCXzEEAmRnCAUCZ3kCXzIDCQECIT0CBQJkZwUEdW5pdAUCY1MEAmVHCQC6AgIJALcCAgkAuQICBQJlRgUCZUYFAmVCCQC3AgIJALkCAgUBZwUCZUYFAmVDBAJlSAkBAVgBCQC4AgIFAmVHCQEFdmFsdWUBBQJlRgMJAMACAgUBZgUCZUgJAJQKAgUCZUcFAmVECQCUCgIFAmVHBQR1bml0BAJjWAkAzAgCAAAJAMwIAgABCQDMCAIAAgkAzAgCAAMJAMwIAgAECQDMCAIABQkAzAgCAAYJAMwIAgAHCQDMCAIACAkAzAgCAAkJAMwIAgAKCQDMCAIACwkAzAgCAAwJAMwIAgANCQDMCAIADgUDbmlsBAJnegoAAmNaBQJjWAoAAmRhCQCQAwEFAmNaCgACZGIJAJQKAgUCZXgFBHVuaXQKAQJkYwICZGQCZGUDCQBnAgUCZGUFAmRhBQJkZAkBAmNSAgUCZGQJAJEDAgUCY1oFAmRlCgECZGYCAmRkAmRlAwkAZwIFAmRlBQJkYQUCZGQJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxNQkBAmRmAgkBAmRjAgkBAmRjAgkBAmRjAgkBAmRjAgkBAmRjAgkBAmRjAgkBAmRjAgkBAmRjAgkBAmRjAgkBAmRjAgkBAmRjAgkBAmRjAgkBAmRjAgkBAmRjAgkBAmRjAgUCZGIAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwQCZUYIBQJnegJfMQQCZGcIBQJnegJfMgMJAQIhPQIFAmRnBQR1bml0BQJlRgkAAgEJAKwCAgIZWSBjYWxjdWxhdGlvbiBlcnJvciwgWSA9IAkApgMBBQJlRgECZ0EACQELdmFsdWVPckVsc2UCCQCbCAIFAmFVCQECYUcBCQClCAEFBHRoaXMHHQJjVAEhY2FsY3VsYXRlQW1vdW50T3V0Rm9yU3dhcFJFQURPTkxZAwJnQgJndwJnQwQCZ0QDCQAAAgUCZ3cHBAJnRQkBAmFOAgUEdGhpcwkBAmFrAAQCZ3gJALcCAgkAtgIBCQECYlIBCQECYU4CBQR0aGlzCQECYWoACQC2AgEFAmdCCQCUCgIFAmdFBQJneAQCZ0UJAQJhTgIFBHRoaXMJAQJhagAEAmd4CQC3AgIJALYCAQkBAmJSAQkBAmFOAgUEdGhpcwkBAmFrAAkAtgIBBQJnQgkAlAoCBQJnRQUCZ3gEAmdFCAUCZ0QCXzEEAmd4CAUCZ0QCXzIEAmJrCQECYmMABAJkbgkAkQMCBQJiawUBdwQCZG8JAJEDAgUCYmsFAXgEAmNECQDMCAIJALYCAQkBAmJSAQUCZG4JAMwIAgkAtgIBCQECYlIBBQJkbwUDbmlsBAJleAkBAmNDAQUCY0QEAmVGCQECZ3YDBQJndwUCZXgJALYCAQUCZ0IEAmdGCQC4AgIJALgCAgkAtgIBCQECYlIBBQJnRQUCZUYJALYCAQABBAJnRwkAlgMBCQDMCAIAAAkAzAgCCQCgAwEFAmdGBQNuaWwEAmdIAwkAAAIFAmd3BwkAzAgCCQC3AgIJALcCAgkAtgIBCQECYlIBBQJkbgkAtgIBBQJnQgkAtgIBBQJnQwkAzAgCCQC4AgIJALYCAQkBAmJSAQUCZG8FAmdGBQNuaWwJAMwIAgkAuAICCQC2AgEJAQJiUgEFAmRuBQJnRgkAzAgCCQC3AgIJALcCAgkAtgIBCQECYlIBBQJkbwkAtgIBBQJnQgkAtgIBBQJnQwUDbmlsBAJnSQkBAmNDAQUCZ0gEAmVjAwkAwAICBQJnSQUCZXgGCQACAQkAuQkCCQDMCAICFG5ldyBEIGlzIGZld2VyIGVycm9yCQDMCAIJAKYDAQUCZXgJAMwIAgkApgMBBQJnSQUDbmlsAgJfXwMJAAACBQJlYwUCZWMJAJQKAgUDbmlsBQJnRwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjVAEmY2FsY3VsYXRlQW1vdW50T3V0Rm9yU3dhcEFuZFNlbmRUb2tlbnMFAmdCAmd3AmdKAmdLAmdDBAJnTAoAAmFXCQD8BwQFAmFVAhdnZXRTd2FwQ29udHJhY3RSRUFET05MWQUDbmlsBQNuaWwDCQABAgUCYVcCBlN0cmluZwUCYVcJAAIBCQCsAgIJAAMBBQJhVwIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nBAJnTQkAzAgCAwkAZwIICQEFdmFsdWUBCQCRAwIIBQJjVAhwYXltZW50cwAABmFtb3VudAUCZ0IGCQECYVIBAgxXcm9uZyBhbW91bnQJAMwIAgMJAAACCAUCY1QGY2FsbGVyCQERQGV4dHJOYXRpdmUoMTA2MikBBQJnTAYJAQJhUgECEVBlcm1pc3Npb24gZGVuaWVkBQNuaWwDCQAAAgUCZ00FAmdNBAJmbwkBBXZhbHVlAQkAkQMCCAUCY1QIcGF5bWVudHMAAAQCZ04JAQJiaQEIBQJmbwdhc3NldElkBAJnTwMJAAACBQJndwcEAmdFCQECYU4CBQR0aGlzCQECYWsABAJneAkAZQIJAQJiUgEFAmdOCAkBBXZhbHVlAQkAkQMCCAUCY1QIcGF5bWVudHMAAAZhbW91bnQJAJQKAgUCZ0UFAmd4BAJnRQkBAmFOAgUEdGhpcwkBAmFqAAQCZ3gJAGUCCQECYlIBBQJnTggJAQV2YWx1ZQEJAJEDAggFAmNUCHBheW1lbnRzAAAGYW1vdW50CQCUCgIFAmdFBQJneAQCZ0UIBQJnTwJfMQQCZ3gIBQJnTwJfMgQCYmsJAQJiYwAEAmRuCQCRAwIFAmJrBQF3BAJkbwkAkQMCBQJiawUBeAQCY0QDCQAAAgUCZ3cHCQDMCAIJALgCAgkAtgIBCQECYlIBBQJkbgkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCY1QIcGF5bWVudHMAAAZhbW91bnQJAMwIAgkAtgIBCQECYlIBBQJkbwUDbmlsCQDMCAIJALYCAQkBAmJSAQUCZG4JAMwIAgkAuAICCQC2AgEJAQJiUgEFAmRvCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJjVAhwYXltZW50cwAABmFtb3VudAUDbmlsBAJleAkBAmNDAQUCY0QEAmVGCQECZ3YDBQJndwUCZXgJALYCAQAABAJnRgkAuAICCQC4AgIJALYCAQkBAmJSAQUCZ0UFAmVGCQC2AgEAAQQCZ0cJAJYDAQkAzAgCAAAJAMwIAgkAoAMBBQJnRgUDbmlsBAJnUAMJAGcCBQJnRwUCZ0oGCQACAQIsRXhjaGFuZ2UgcmVzdWx0IGlzIGZld2VyIGNvaW5zIHRoYW4gZXhwZWN0ZWQDCQAAAgUCZ1AFAmdQBAJnSAMJAAACBQJndwcJAMwIAgkAtwICCQC2AgEJAQJiUgEFAmRuCQC2AgEFAmdDCQDMCAIJALgCAgkAtgIBCQECYlIBBQJkbwUCZ0YFA25pbAkAzAgCCQC4AgIJALYCAQkBAmJSAQUCZG4FAmdGCQDMCAIJALcCAgkAtgIBCQECYlIBBQJkbwkAtgIBBQJnQwUDbmlsBAJnSQkBAmNDAQUCZ0gEAmVjAwkAwAICBQJnSQUCZXgGCQACAQIUbmV3IEQgaXMgZmV3ZXIgZXJyb3IDCQAAAgUCZWMFAmVjCQCUCgIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUCZ0sFAmdHCQECYmcBBQJnRQUDbmlsBQJnRwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjVAELY29uc3RydWN0b3IBAVkEAmVCCQECZ3UBBQJjVAMJAAACBQJlQgUCZUIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVkABQFZBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY1QBCnNldE1hbmFnZXIBAmdRBAJlQgkBAmd1AQUCY1QDCQAAAgUCZUIFAmVCBAJnUgkA2QQBBQJnUQMJAAACBQJnUgUCZ1IJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFhAAUCZ1EFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjVAEOY29uZmlybU1hbmFnZXIABAJjeQkBAmdxAAQCZ1MDCQEJaXNEZWZpbmVkAQUCY3kGCQACAQISTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmdTBQJnUwQCZ1QDCQAAAggFAmNUD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCY3kGCQACAQIbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmdUBQJnVAkAzAgCCQELU3RyaW5nRW50cnkCCQEBWgAJANgEAQkBBXZhbHVlAQUCY3kJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFhAAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNUAQNwdXQCAmdVAmdWBAJnVwkBAmJ3AAQCZ1gJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmdXBQFDAgpXciBzdCBhZGRyBAJnWQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCZ1cFAUUCCldyIHNsIGFkZHIDCQBmAgAABQJnVQkAAgECDldyb25nIHNsaXBwYWdlAwkBAiE9AgkAkAMBCAUCY1QIcGF5bWVudHMAAgkAAgECDDIgcG1udHMgZXhwZAQCZ1oJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmNUCHBheW1lbnRzAAAGYW1vdW50BAJoYQkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCY1QIcGF5bWVudHMAAQZhbW91bnQEAmVTCQC4AgIJALYCAQkBAmJSAQkBAmJpAQUCYnEFAmdaAwkAAAIFAmVTBQJlUwQCZVQJALgCAgkAtgIBCQECYlIBCQECYmkBBQJicgUCaGEDCQAAAgUCZVQFAmVUBAJlVQkAtgIBCAkBBXZhbHVlAQkA7AcBBQJicAhxdWFudGl0eQMJAAACBQJlVQUCZVUEAmVWCQECZU8DBQJnWgUCaGEJALYCAQAAAwkAAAIFAmVWBQJlVgQCaGIJAQJmcAoJAKUIAQgFAmNUBmNhbGxlcgkA2AQBCAUCY1QNdHJhbnNhY3Rpb25JZAkBD0F0dGFjaGVkUGF5bWVudAIICQEFdmFsdWUBCQCRAwIIBQJjVAhwYXltZW50cwAAB2Fzc2V0SWQICQEFdmFsdWUBCQCRAwIIBQJjVAhwYXltZW50cwAABmFtb3VudAkAkQMCCAUCY1QIcGF5bWVudHMAAQUCZ1UGBwYAAAIABAJlcAgFAmhiAl8yBAJoYwgFAmhiAl83BAJkRggFAmhiAl85BAJlcQgFAmhiA18xMAQCZXIIBQJoYgNfMTEEAmRuCAUCaGIDXzEyBAJkbwgFAmhiA18xMwQCZWIJAPwHBAUCYVUCBGVtaXQJAMwIAgUCZXAFA25pbAUDbmlsAwkAAAIFAmViBQJlYgQCaGQEAmdwBQJlYgMJAAECBQJncAIHQWRkcmVzcwQCaGUFAmdwCQD8BwQFAmhlAgRlbWl0CQDMCAIFAmVwBQNuaWwFA25pbAUEdW5pdAMJAAACBQJoZAUCaGQEAmhmAwkAZgIFAmVxAAAJAPwHBAUCZ1kCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJkbgUCZXEFA25pbAUDbmlsAwkAAAIFAmhmBQJoZgQCaGcDCQBmAgUCZXIAAAkA/AcEBQJnWQIDcHV0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRvBQJlcgUDbmlsBQNuaWwDCQAAAgUCaGcFAmhnBAJoaAMFAmdWBAJoaQkA/AcEBQJnWAIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCaGMFAmVwBQNuaWwDCQAAAgUCaGkFAmhpBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmNUBmNhbGxlcgUCZXAFAmhjBQNuaWwEAmhqCQECZVcDAAAAAAAABAJnbQgFAmhqAl8xBAJlTggFAmhqAl8yBAJoawMJAMACAgUCZU4FAmVWBgkBAmFSAQkAuQkCCQDMCAICInVwZGF0ZWQgRExwIGxvd2VyIHRoYW4gY3VycmVudCBETHAJAMwIAgkApgMBBQJlUwkAzAgCCQCmAwEFAmVUCQDMCAIJAKYDAQUCZVUJAMwIAgkApgMBBQJlVgkAzAgCCQCmAwEFAmVOCQDMCAIJAKQDAQUCZXEJAMwIAgkApAMBBQJlcgUDbmlsAgEgAwkAAAIFAmhrBQJoawQCaGwICQEFdmFsdWUBCQDsBwEFAmJwCHF1YW50aXR5AwkAAAIFAmhsBQJobAkAzggCCQDOCAIFAmRGBQJoaAUCZ20JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY1QBC3B1dE9uZVRrblYyAgJmUQJnVgQCaG0KAAJhVwkA/AcEBQJhVQIoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmFXAgdCb29sZWFuBQJhVwkAAgEJAKwCAgkAAwEFAmFXAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJobgMDAwkBAmFaAAYJAAACBQJibwUBcQYJAAACBQJibwUBcwYFAmhtBAJnTQkAzAgCAwMJAQEhAQUCaG4GCQECZ3MBBQJjVAYJAQJhUgECIXB1dCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmNUCHBheW1lbnRzAAEGCQECYVIBAh5leGFjdGx5IDEgcGF5bWVudCBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJnTQUCZ00EAmRuCQDYBAEJAQV2YWx1ZQEFAmJxBAJkbwkA2AQBCQEFdmFsdWUBBQJicgQCZG0FAmJwBAJmVQUCYnMEAmZWBQJidAQCZGwDCQAAAggFAmNUBmNhbGxlcgUEdGhpcwgFAmNUDG9yaWdpbkNhbGxlcggFAmNUBmNhbGxlcgQCZm8JAQV2YWx1ZQEJAJEDAggFAmNUCHBheW1lbnRzAAAEAmRqCQDYBAEJAQV2YWx1ZQEIBQJmbwdhc3NldElkBAJkUAgFAmZvBmFtb3VudAQCZVYDCQAAAggFAmZvB2Fzc2V0SWQFAmJxCQECZU8DCQC2AgEFAmRQCQC2AgEAAAkAtgIBAAAJAQJlTwMJALYCAQAACQC2AgEFAmRQCQC2AgEAAAMJAAACBQJlVgUCZVYEAmhvCQECZnQFBQJkUAUCZGoJAKUIAQUCZGwJANgEAQgFAmNUDXRyYW5zYWN0aW9uSWQGAwkAAAIFAmhvBQJobwQCY0IIBQJobwJfMwQCZEYIBQJobwJfMgQCaHAIBQJobwJfMQQCZXADAwkAZgIFAmZRAAAJAGYCBQJmUQUCaHAHCQECYVIBCQC5CQIJAMwIAgIfYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmZRBQNuaWwCAAUCaHAEAmhiCQD8BwQFAmFVAgRlbWl0CQDMCAIFAmVwBQNuaWwFA25pbAMJAAACBQJoYgUCaGIEAmhkBAJncAUCaGIDCQABAgUCZ3ACB0FkZHJlc3MEAmhlBQJncAkA/AcEBQJoZQIEZW1pdAkAzAgCBQJlcAUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCaGQFAmhkBAJoaAMFAmdWBAJoaQkA/AcEBQJieQIIc3Rha2VGb3IJAMwIAgkApQgBCAUCY1QGY2FsbGVyBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRtBQJlcAUDbmlsAwkAAAIFAmhpBQJoaQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJjVAZjYWxsZXIFAmVwBQJkbQUDbmlsBAJnZwMJAGYCBQJjQgAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmJiBQJjQgkA2QQBBQJkagUDbmlsBQNuaWwEAmhxAwkAAAIFBHRoaXMFAmJiCQCUCgIAAAAABAJocgMJAAACCAUCZm8HYXNzZXRJZAUCYnEGBwMFAmhyCQCUCgIJAQEtAQUCY0IAAAkAlAoCAAAJAQEtAQUCY0IEAmVYCAUCaHECXzEEAmVZCAUCaHECXzIEAmhzCQECZVcDBQJlWAUCZVkAAAQCZ20IBQJocwJfMQQCZU4IBQJocwJfMgQCZ24JAQJmYQIFAmVWBQJlTgMJAAACBQJnbgUCZ24JAJQKAgkAzggCCQDOCAIJAM4IAgUCZEYFAmhoBQJnZwUCZ20FAmVwCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNUAQpwdXRGb3JGcmVlAQJodAMJAGYCAAAFAmh0CQACAQIKV3Jvbmcgc2xwZwMJAQIhPQIJAJADAQgFAmNUCHBheW1lbnRzAAIJAAIBAgwyIHBtbnRzIGV4cGQEAmh1CQECZnAKCQClCAEIBQJjVAZjYWxsZXIJANgEAQgFAmNUDXRyYW5zYWN0aW9uSWQJAQ9BdHRhY2hlZFBheW1lbnQCCAkBBXZhbHVlAQkAkQMCCAUCY1QIcGF5bWVudHMAAAdhc3NldElkCAkBBXZhbHVlAQkAkQMCCAUCY1QIcGF5bWVudHMAAAZhbW91bnQJAJEDAggFAmNUCHBheW1lbnRzAAEFAmh0BwcGAAACAAQCZEYIBQJodQJfOQQCZ1oJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmNUCHBheW1lbnRzAAAGYW1vdW50BAJoYQkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCY1QIcGF5bWVudHMAAQZhbW91bnQEAmVWCQECZU8DBQJnWgUCaGEJALYCAQAAAwkAAAIFAmVWBQJlVgQCaHYJAQJlVwMAAAAAAAAEAmdtCAUCaHYCXzEEAmVOCAUCaHYCXzIEAmduCQECZmECBQJlVgUCZU4DCQAAAgUCZ24FAmduCQDOCAIFAmRGBQJnbQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjVAEDZ2V0AAQCZVYJAQJlTwMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZVYFAmVWBAJlYgkBAmZuAQUCY1QEAmh3CAUCZWICXzEEAmRFCAUCZWICXzIEAmRQCAUCZWICXzMEAmRqCAUCZWICXzQEAmRGCAUCZWICXzUEAmVDCQD8BwQFAmFVAgRidXJuCQDMCAIFAmRQBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRqBQJkUAUDbmlsAwkAAAIFAmVDBQJlQwQCaHgJAQJlVwMJAQEtAQUCaHcJAQEtAQUCZEUAAAQCZ20IBQJoeAJfMQQCZU4IBQJoeAJfMgQCZ24JAQJmYQIFAmVWBQJlTgMJAAACBQJnbgUCZ24JAM4IAgUCZEYFAmdtCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNUAQtnZXRPbmVUa25WMgICZlACZlEEAmhtCgACYVcJAPwHBAUCYVUCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJhVwIHQm9vbGVhbgUCYVcJAAIBCQCsAgIJAAMBBQJhVwIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCaHkDAwkBAmFaAAYJAAACBQJibwUBcwYFAmhtBAJnTQkAzAgCAwMJAQEhAQUCaHkGCQECZ3MBBQJjVAYJAQJhUgECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmNUCHBheW1lbnRzAAEGCQECYVIBAh5leGFjdGx5IDEgcGF5bWVudCBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJnTQUCZ00EAmh6CQECZk8GBQJmUAUCZlEIBQJjVAhwYXltZW50cwgFAmNUBmNhbGxlcggFAmNUDG9yaWdpbkNhbGxlcggFAmNUDXRyYW5zYWN0aW9uSWQEAmRGCAUCaHoCXzEEAmZaCAUCaHoCXzIJAJQKAgUCZEYFAmZaCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNUAQpyZWZyZXNoRExwAAQCaEEJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUCYXMAAAQCaEIDCQBnAgkAZQIFBmhlaWdodAUCaEEFAmF2BQR1bml0CQECYVIBCQC5CQIJAMwIAgkApAMBBQJhdgkAzAgCAi8gYmxvY2tzIGhhdmUgbm90IHBhc3NlZCBzaW5jZSB0aGUgcHJldmlvdXMgY2FsbAUDbmlsAgADCQAAAgUCaEIFAmhCBAJmaAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCoAwEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUCYXICATAJAQJhVAECC2ludmFsaWQgZExwBAJoQwkBAmVXAwAAAAAAAAQCaEQIBQJoQwJfMQQCZU4IBQJoQwJfMgQCZVoDCQECIT0CBQJmaAUCZU4FAmhECQECYVIBAhJub3RoaW5nIHRvIHJlZnJlc2gJAJQKAgUCZVoJAKYDAQUCZU4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY1QBE2dldE9uZVRrblYyUkVBRE9OTFkCAmZQAmhFBAJkbgkA2AQBCQEFdmFsdWUBBQJicQQCZG8JANgEAQkBBXZhbHVlAQUCYnIEAmRtCQDYBAEJAQV2YWx1ZQEFAmJwBAJjRAkAzAgCCQC2AgEJAQJiUgEFAmRuCQDMCAIJALYCAQkBAmJSAQUCZG8FA25pbAQCZU0JALYCAQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBCQDZBAEFAmRtAhBpbnZhbGlkIGxwIGFzc2V0CHF1YW50aXR5BAJjZgkBAmNDAQUCY0QEAmNlCQC4AgIFAmNmCQC8AgMJALYCAQUCaEUFAmNmBQJlTQQCaEYDCQAAAgUCZlAFAmRuAAADCQAAAgUCZlAFAmRvAAEJAAIBAhRpbnZhbGlkIG91dCBhc3NldCBpZAQCaEcJAQJldwMFAmNEBQJoRgUCY2UEAmdGCQC4AgIJAJEDAgUCY0QFAmhGBQJoRwQCZ0cJAJYDAQkAzAgCAAAJAMwIAgkAoAMBCQC4AgIFAmdGBQFmBQNuaWwEAmhICQECY3oCBQJnRwUCYVgEAmZZCAUCaEgCXzEEAmNCCAUCaEgCXzIJAJQKAgUDbmlsCQCUCgIFAmZZBQJjQgJjVAEcZ2V0T25lVGtuVjJXaXRoQm9udXNSRUFET05MWQICZlACaEUEAmRuCQDYBAEJAQV2YWx1ZQEFAmJxBAJkbwkA2AQBCQEFdmFsdWUBBQJicgQCZG0JANgEAQkBBXZhbHVlAQUCYnAEAmR0CQECYlIBBQJkbgQCZHYJAQJiUgEFAmRvBAJoSQoAAmFXCQD8BwQFBHRoaXMCE2dldE9uZVRrblYyUkVBRE9OTFkJAMwIAgUCZlAJAMwIAgUCaEUFA25pbAUDbmlsAwkAAQIFAmFXAgooSW50LCBJbnQpBQJhVwkAAgEJAKwCAgkAAwEFAmFXAh8gY291bGRuJ3QgYmUgY2FzdCB0byAoSW50LCBJbnQpBAJmWQgFAmhJAl8xBAJjQggFAmhJAl8yBAJlYgkBAmRoBAIABQJkbQUCaEUFBHRoaXMEAmRECAUCZWICXzEEAmRFCAUCZWICXzIEAmhKCQBkAgUCZEQFAmRFBAJmTgMJAAACBQJoSgAAAwkAAAIFAmZZAAAAAAkAAgECF2JvbnVzIGNhbGN1bGF0aW9uIGVycm9yCQBrAwkAZQIFAmZZBQJoSgUBYQUCaEoJAJQKAgUDbmlsCQCVCgMFAmZZBQJjQgUCZk4CY1QBCWdldE5vTGVzcwICaEsCaEwEAmViCQECZm4BBQJjVAQCZEQIBQJlYgJfMQQCZEUIBQJlYgJfMgQCZFAIBQJlYgJfMwQCZGoIBQJlYgJfNAQCZEYIBQJlYgJfNQMJAGYCBQJoSwUCZEQJAAIBCQCsAgIJAKwCAgkArAICAglGYWlsZWQ6ICAJAKQDAQUCZEQCAyA8IAkApAMBBQJoSwMJAGYCBQJoTAUCZEUJAAIBCQCsAgIJAKwCAgkArAICAghGYWlsZWQ6IAkApAMBBQJkRQIDIDwgCQCkAwEFAmhMBAJlVgkBAmVPAwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJlVgUCZVYEAmhNCQD8BwQFAmFVAgRidXJuCQDMCAIFAmRQBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRqBQJkUAUDbmlsAwkAAAIFAmhNBQJoTQQCaE4JAQJlVwMJAQEtAQUCZEQJAQEtAQUCZEUAAAQCZ20IBQJoTgJfMQQCZU4IBQJoTgJfMgQCZ24JAQJmYQIFAmVWBQJlTgMJAAACBQJnbgUCZ24JAM4IAgUCZEYFAmdtCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNUAQ11bnN0YWtlQW5kR2V0AQJjQQQCaE8DCQECIT0CCQCQAwEIBQJjVAhwYXltZW50cwAACQACAQINTm8gcG1udHMgZXhwZAYDCQAAAgUCaE8FAmhPBAJoUAkBAmJ3AAQCaGMFAmJwBAJoUQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCaFAFAUMCCldyIHN0IGFkZHIEAmVWCQECZU8DCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmVWBQJlVgQCaFIJAPwHBAUCaFECB3Vuc3Rha2UJAMwIAgkA2AQBBQJoYwkAzAgCBQJjQQUDbmlsBQNuaWwDCQAAAgUCaFIFAmhSBAJlYgkBAmRoBAkA2AQBCAUCY1QNdHJhbnNhY3Rpb25JZAkA2AQBBQJoYwUCY0EIBQJjVAZjYWxsZXIEAmRECAUCZWICXzEEAmRFCAUCZWICXzIEAmRyCQENcGFyc2VJbnRWYWx1ZQEIBQJlYgJfOQQCZEYIBQJlYgNfMTAEAmhTAwMJAQJhWgAGCQAAAgUCZHIFAXMJAAIBCQCsAgICCUJsb2NrZWQ6IAkApAMBBQJkcgYDCQAAAgUCaFMFAmhTBAJoVAkA/AcEBQJhVQIEYnVybgkAzAgCBQJjQQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJoYwUCY0EFA25pbAMJAAACBQJoVAUCaFQEAmhVCQECZVcDCQEBLQEFAmRECQEBLQEFAmRFAAAEAmdtCAUCaFUCXzEEAmVOCAUCaFUCXzIEAmduCQECZmECBQJlVgUCZU4DCQAAAgUCZ24FAmduCQDOCAIFAmRGBQJnbQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjVAETdW5zdGFrZUFuZEdldE5vTGVzcwMCaFYCaFcCaEwEAmh5AwkBAmFaAAYJAAACBQJibwUBcwQCZ00JAMwIAgMJAQEhAQUCaHkGCQACAQIhZ2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCY1QIcGF5bWVudHMAAAYJAAIBAhhubyBwYXltZW50cyBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJnTQUCZ00EAmVWCQECZU8DCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmVWBQJlVgQCaFIJAPwHBAUCYnkCB3Vuc3Rha2UJAMwIAgkA2AQBBQJicAkAzAgCBQJoVgUDbmlsBQNuaWwDCQAAAgUCaFIFAmhSBAJoWAkBAmRoBAkA2AQBCAUCY1QNdHJhbnNhY3Rpb25JZAkA2AQBBQJicAUCaFYIBQJjVAZjYWxsZXIEAmRECAUCaFgCXzEEAmRFCAUCaFgCXzIEAmRGCAUCaFgDXzEwBAJoWQkAzAgCAwkAZwIFAmREBQJoVwYJAAIBCQC5CQIJAMwIAgIsYW1vdW50IGFzc2V0IGFtb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJoVwUDbmlsAgAJAMwIAgMJAGcCBQJkRQUCaEwGCQACAQkAuQkCCQDMCAICK3ByaWNlIGFzc2V0IGFtb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJoTAUDbmlsAgAFA25pbAMJAAACBQJoWQUCaFkEAmhNCQD8BwQFAmFVAgRidXJuCQDMCAIFAmhWBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJwBQJoVgUDbmlsAwkAAAIFAmhNBQJoTQQCaFoJAQJlVwMJAQEtAQUCZEQJAQEtAQUCZEUAAAQCZ20IBQJoWgJfMQQCZU4IBQJoWgJfMgQCZ24JAQJmYQIFAmVWBQJlTgMJAAACBQJnbgUCZ24JAM4IAgUCZEYFAmdtCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNUARV1bnN0YWtlQW5kR2V0T25lVGtuVjIDAmhWAmZQAmZRBAJobQoAAmFXCQD8BwQFAmFVAihpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYVcCB0Jvb2xlYW4FAmFXCQACAQkArAICCQADAQUCYVcCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmh5AwMJAQJhWgAGCQAAAgUCYm8FAXMGBQJobQQCZ00JAMwIAgMDCQEBIQEFAmh5BgkBAmdzAQUCY1QGCQECYVIBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJjVAhwYXltZW50cwAABgkBAmFSAQIYbm8gcGF5bWVudHMgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZ00FAmdNBAJoUAkBAmJ3AAQCaGMFAmJwBAJoUQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCaFAFAUMCCldyIHN0IGFkZHIEAmRsCAUCY1QGY2FsbGVyBAJpYQUEdGhpcwQCaFIJAPwHBAUCaFECD3Vuc3Rha2VJTlRFUk5BTAkAzAgCBQJoYwkAzAgCBQJoVgkAzAgCCAUCZGwFYnl0ZXMJAMwIAggFAmlhBWJ5dGVzBQNuaWwFA25pbAMJAAACBQJoUgUCaFIEAmliCQECZk8GBQJmUAUCZlEJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmhjBQJoVgUDbmlsCAUCY1QGY2FsbGVyCAUCY1QMb3JpZ2luQ2FsbGVyCAUCY1QNdHJhbnNhY3Rpb25JZAQCZEYIBQJpYgJfMQQCZloIBQJpYgJfMgkAlAoCBQJkRgUCZloJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY1QBHHB1dE9uZVRrblYyV2l0aEJvbnVzUkVBRE9OTFkCAmljAmlkBAJpZQkBAmZ0BQUCaWMFAmlkAgACAAYEAmZJCAUCaWUCXzEEAmRGCAUCaWUCXzIEAmNCCAUCaWUCXzMEAmZOCAUCaWUCXzQJAJQKAgUDbmlsCQCVCgMFAmZJBQJjQgUCZk4CY1QBIXB1dE9uZVRrblYyV2l0aG91dFRha2VGZWVSRUFET05MWQICaWMCaWQEAmlmCQECZnQFBQJpYwUCaWQCAAIABwQCZkkIBQJpZgJfMQQCZEYIBQJpZgJfMgQCY0IIBQJpZgJfMwQCZk4IBQJpZgJfNAkAlAoCBQNuaWwJAJUKAwUCZkkFAmNCBQJmTgJjVAEIYWN0aXZhdGUCAmlnAmloAwkBAiE9AgkApQgBCAUCY1QGY2FsbGVyCQClCAEFAmFVCQACAQIGZGVuaWVkCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFqAAUCaWcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFrAAUCaWgFA25pbAIHc3VjY2VzcwJjVAEcZ2V0UG9vbENvbmZpZ1dyYXBwZXJSRUFET05MWQAJAJQKAgUDbmlsCQECYmMAAmNUARxnZXRBY2NCYWxhbmNlV3JhcHBlclJFQURPTkxZAQJiUwkAlAoCBQNuaWwJAQJiUgEFAmJTAmNUARljYWxjUHJpY2VzV3JhcHBlclJFQURPTkxZAwJjbAJjbQJjcQQCaWkJAQJjcAMFAmNsBQJjbQUCY3EJAJQKAgUDbmlsCQDMCAIJAKYDAQkAkQMCBQJpaQAACQDMCAIJAKYDAQkAkQMCBQJpaQABCQDMCAIJAKYDAQkAkQMCBQJpaQACBQNuaWwCY1QBFmZyb21YMThXcmFwcGVyUkVBRE9OTFkCAU0CaWoJAJQKAgUDbmlsCQEBTAIJAKcDAQUBTQUCaWoCY1QBFHRvWDE4V3JhcHBlclJFQURPTkxZAgFJAUoJAJQKAgUDbmlsCQCmAwEJAQFIAgUBSQUBSgJjVAEeY2FsY1ByaWNlQmlnSW50V3JhcHBlclJFQURPTkxZAgJiVQJiVgkAlAoCBQNuaWwJAKYDAQkBAmJUAgkApwMBBQJiVQkApwMBBQJiVgJjVAEjZXN0aW1hdGVQdXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkJAmRpAmNhAmRIAmRJAmRKAmRLAmlrAmRMAmRNCQCUCgIFA25pbAkBAmRHDQUCZGkFAmNhBQJkSAUCZEkFAmRKBQJkSwUCaWsFAmRMBQJkTQYHAAACAAJjVAEjZXN0aW1hdGVHZXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkEAmRpAmlsAmRrAmlrBAJlYgkBAmRoBAUCZGkFAmlsBQJkawkBEUBleHRyTmF0aXZlKDEwNjIpAQUCaWsJAJQKAgUDbmlsCQCcCgoIBQJlYgJfMQgFAmViAl8yCAUCZWICXzMIBQJlYgJfNAgFAmViAl81CAUCZWICXzYIBQJlYgJfNwkApgMBCAUCZWICXzgIBQJlYgJfOQgFAmViA18xMAJjVAEJY2hhbmdlQW1wAAQCaW0JAPwHBAUCYVUCGmdldENoYW5nZUFtcENvbmZpZ1JFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwEAmluBAJncAUCaW0DCQABAgUCZ3ACCUxpc3RbQW55XQQCaW8FAmdwCQCVCgMKAAJhVwkAkQMCBQJpbwAAAwkAAQIFAmFXAgNJbnQFAmFXCQACAQkArAICCQADAQUCYVcCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAoAAmFXCQCRAwIFAmlvAAEDCQABAgUCYVcCA0ludAUCYVcJAAIBCQCsAgIJAAMBBQJhVwIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50CgACYVcJAJEDAgUCaW8AAgMJAAECBQJhVwIDSW50BQJhVwkAAgEJAKwCAgkAAwEFAmFXAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQJAQJhUgECEmludmFsaWQgZW50cnkgdHlwZQQCaXAIBQJpbgJfMQQCaXEIBQJpbgJfMgQCaXIIBQJpbgJfMwQCaXMJAQ1wYXJzZUludFZhbHVlAQkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAmFsAAQCaXQJAGQCBQJpcwUCaXEEAml1AwkAZgIAAAUCaXEDCQBmAgUCaXIFAml0BQJpcgUCaXQDCQBmAgUCaXQFAmlyBQJpcgUCaXQEAml2CQELdmFsdWVPckVsc2UCCQCfCAEJAQJhbwAAAAQCaXcJAGQCBQJpdgUCaXAEAmdNCQDMCAIDCQBmAgUGaGVpZ2h0BQJpdwYJAQJhUgECF3RyeSBhZ2FpbiBpbiBmZXcgYmxvY2tzCQDMCAIDCQECIT0CBQJpcwUCaXUGCQECYVIBAhZhbHJlYWR5IHJlYWNoZWQgdGFyZ2V0BQNuaWwDCQAAAgUCZ00FAmdNCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYW8ABQZoZWlnaHQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFsAAkApAMBBQJpdQkAzAgCCQELU3RyaW5nRW50cnkCCQECYW0BBQZoZWlnaHQJAKQDAQUCaXUFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECaXgBAml5AAQCaXoEAmdwCQECZ28AAwkAAQIFAmdwAgpCeXRlVmVjdG9yBAJndAUCZ3AFAmd0AwkAAQIFAmdwAgRVbml0CAUCaXgPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IEAmdwBQJpeAMJAAECBQJncAIFT3JkZXIEAmZkBQJncAQCaUEJAQJiYQAEAmlCAwkBAmdBAAkAlAoCBgIACQECZmMBBQJmZAQCYUoIBQJpQgJfMQQCYUsIBQJpQgJfMgQCYUwJAPQDAwgFAmZkCWJvZHlCeXRlcwkAkQMCCAUCZmQGcHJvb2ZzAAAIBQJmZA9zZW5kZXJQdWJsaWNLZXkEAmFNCQD0AwMIBQJmZAlib2R5Qnl0ZXMJAJEDAggFAmZkBnByb29mcwABBQJpQQMDAwUCYUoFAmFMBwUCYU0HBgkBAmFJBAUCYUoFAmFLBQJhTAUCYU0DCQABAgUCZ3ACFFNldFNjcmlwdFRyYW5zYWN0aW9uBAJjRwUCZ3ADCQD0AwMIBQJpeAlib2R5Qnl0ZXMJAJEDAggFAml4BnByb29mcwAABQJpegYEAmlDCQD2AwEJAQV2YWx1ZQEIBQJjRwZzY3JpcHQEAmlECQDbBAEJAQV2YWx1ZQEJAJ0IAgUCYVUJAQJhRQAEAmlFCQDxBwEFBHRoaXMDCQAAAgUCaUQFAmlDCQECIT0CBQJpRQUCaUMHCQD0AwMIBQJpeAlib2R5Qnl0ZXMJAJEDAggFAml4BnByb29mcwAABQJpeigbTyU=", "height": 2564284, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2fALsp4rWUCvM7PUj4qiFBKW564nDE9M8sgt55Wyk1XV Next: 7BJiHH1qQiA4gD1dkNzJsk8Pavkw6FnSDgPHVhNoX5Mx Diff:
OldNewDifferences
2323
2424 let k = "WAVES"
2525
26-let l = 50
26+let l = "100"
2727
28-let m = "100"
28+let m = "1"
2929
30-let n = "1"
30+let n = "__"
3131
32-let o = "__"
32+let o = ""
3333
34-let p = ""
34+let p = 1
3535
36-let q = 1
36+let q = 2
3737
38-let r = 2
38+let r = 3
3939
40-let s = 3
40+let s = 4
4141
42-let t = 4
42+let t = 1
4343
44-let u = 1
44+let u = 2
4545
46-let v = 2
46+let v = 3
4747
48-let w = 3
48+let w = 4
4949
50-let x = 4
50+let x = 5
5151
52-let y = 5
52+let y = 6
5353
54-let z = 6
54+let z = 7
5555
56-let A = 7
56+let A = 8
5757
58-let B = 8
58+let B = 9
5959
60-let C = 9
60+let C = 1
6161
62-let D = 1
62+let D = 6
6363
64-let E = 6
64+let E = 7
6565
66-let F = 7
66+let F = 10
6767
68-let G = 10
68+let G = fraction(10, a, 10000)
6969
70-let H = fraction(10, a, 10000)
71-
72-func I (J,K) = fraction(toBigInt(J), c, toBigInt(K))
70+func H (I,J) = fraction(toBigInt(I), c, toBigInt(J))
7371
7472
75-func L (J,K) = fraction(J, c, K)
73+func K (I,J) = fraction(I, c, J)
7674
7775
78-func M (N,O) = toInt(fraction(N, toBigInt(O), c))
76+func L (M,N) = toInt(fraction(M, toBigInt(N), c))
7977
8078
81-func P (N,O,Q) = toInt(fraction(N, toBigInt(O), c, Q))
79+func O (M,N,P) = toInt(fraction(M, toBigInt(N), c, P))
8280
8381
84-func R (J,K) = fraction(J, c, toBigInt(K))
82+func Q (I,J) = fraction(I, c, toBigInt(J))
8583
8684
87-func S (N,O) = fraction(N, toBigInt(O), c)
85+func R (M,N) = fraction(M, toBigInt(N), c)
8886
8987
90-func T (U,V,W) = fraction(U, V, W)
88+func S (T,U,V) = fraction(T, U, V)
9189
9290
93-func X (N) = if ((d > N))
94- then -(N)
95- else N
91+func W (M) = if ((d > M))
92+ then -(M)
93+ else M
9694
9795
98-func Y (N) = if ((d > N))
99- then -(N)
100- else N
96+func X (M) = if ((d > M))
97+ then -(M)
98+ else M
10199
102100
103-func Z () = "%s__factoryContract"
101+func Y () = "%s__factoryContract"
104102
105103
106-func aa () = "%s__managerPublicKey"
104+func Z () = "%s__managerPublicKey"
107105
108106
109-func ab () = "%s__pendingManagerPublicKey"
107+func aa () = "%s__pendingManagerPublicKey"
110108
111109
112-func ac () = "%s%s__price__last"
110+func ab () = "%s%s__price__last"
113111
114112
115-func ad (ae,af) = makeString(["%s%s%d%d__price__history", toString(ae), toString(af)], o)
113+func ac (ad,ae) = makeString(["%s%s%d%d__price__history", toString(ad), toString(ae)], n)
116114
117115
118-func ag (ah,ai) = ((("%s%s%s__P__" + ah) + "__") + ai)
116+func af (ag,ah) = ((("%s%s%s__P__" + ag) + "__") + ah)
119117
120118
121-func aj (ah,ai) = ((("%s%s%s__G__" + ah) + "__") + ai)
119+func ai (ag,ah) = ((("%s%s%s__G__" + ag) + "__") + ah)
122120
123121
124-func ak () = "%s__amountAsset"
122+func aj () = "%s__amountAsset"
125123
126124
127-func al () = "%s__priceAsset"
125+func ak () = "%s__priceAsset"
128126
129127
130-func am () = "%s__amp"
128+func al () = "%s__amp"
131129
132130
133-func an (ao) = ("%s%d__amp__" + toString(ao))
131+func am (an) = ("%s%d__amp__" + toString(an))
134132
135133
136-func ap () = "%s__changeAmpLastCall"
134+func ao () = "%s__changeAmpLastCall"
137135
138136
139-let aq = "%s__fee"
137+let ap = "%s__fee"
140138
141-let ar = valueOrElse(getInteger(this, aq), H)
139+let aq = valueOrElse(getInteger(this, ap), G)
142140
143-let as = makeString(["%s", "dLp"], o)
141+let ar = makeString(["%s", "dLp"], n)
144142
145-let at = makeString(["%s", "dLpRefreshedHeight"], o)
143+let as = makeString(["%s", "dLpRefreshedHeight"], n)
146144
147-let au = makeString(["%s", "refreshDLpDelay"], o)
145+let at = makeString(["%s", "refreshDLpDelay"], n)
148146
149-let av = 30
147+let au = 30
150148
151-let aw = valueOrElse(getInteger(this, au), av)
149+let av = valueOrElse(getInteger(this, at), au)
152150
153-func ax () = "%s__factoryConfig"
151+func aw () = "%s__factoryConfig"
154152
155153
156-func ay () = "%s%s__matcher__publicKey"
154+func ax () = "%s%s__matcher__publicKey"
157155
158156
159-func az (aA,aB) = (((("%d%d%s__" + aA) + "__") + aB) + "__config")
157+func ay (az,aA) = (((("%d%d%s__" + az) + "__") + aA) + "__config")
160158
161159
162-func aC (aD) = ("%s%s%s__mappings__baseAsset2internalId__" + aD)
160+func aB (aC) = ("%s%s%s__mappings__baseAsset2internalId__" + aC)
163161
164162
165-func aE () = "%s__shutdown"
163+func aD () = "%s__shutdown"
166164
167165
168-func aF () = "%s__allowedLpStableScriptHash"
166+func aE () = "%s__allowedLpStableScriptHash"
169167
170168
171-func aG () = "%s__feeCollectorAddress"
169+func aF () = "%s__feeCollectorAddress"
172170
173171
174-func aH (aI) = ("%s%s__skipOrderValidation__" + aI)
172+func aG (aH) = ("%s%s__skipOrderValidation__" + aH)
175173
176174
177-func aJ (aK,aL,aM,aN) = throw((((((((("order validation failed: orderValid=" + toString(aK)) + " (") + aL) + ")") + " senderValid=") + toString(aM)) + " matcherValid=") + toString(aN)))
175+func aI (aJ,aK,aL,aM) = throw((((((((("order validation failed: orderValid=" + toString(aJ)) + " (") + aK) + ")") + " senderValid=") + toString(aL)) + " matcherValid=") + toString(aM)))
178176
179177
180-func aO (aP,aQ) = valueOrErrorMessage(getString(aP, aQ), makeString(["mandatory ", toString(aP), ".", aQ, " not defined"], ""))
178+func aN (aO,aP) = valueOrErrorMessage(getString(aO, aP), makeString(["mandatory ", toString(aO), ".", aP, " not defined"], ""))
181179
182180
183-func aR (aP,aQ) = valueOrErrorMessage(getInteger(aP, aQ), makeString(["mandatory ", toString(aP), ".", aQ, " not defined"], ""))
181+func aQ (aO,aP) = valueOrErrorMessage(getInteger(aO, aP), makeString(["mandatory ", toString(aO), ".", aP, " not defined"], ""))
184182
185183
186-func aS (aT) = throw(makeString(["lp_stable.ride:", aT], " "))
184+func aR (aS) = throw(makeString(["lp_stable.ride:", aS], " "))
187185
188186
189-func aU (aT) = makeString(["lp_stable.ride:", aT], " ")
187+func aT (aS) = makeString(["lp_stable.ride:", aS], " ")
190188
191189
192-let aV = addressFromStringValue(aO(this, Z()))
190+let aU = addressFromStringValue(aN(this, Y()))
193191
194-let aW = {
195- let aX = invoke(aV, "getInFeeREADONLY", [toString(this)], nil)
196- if ($isInstanceOf(aX, "Int"))
197- then aX
198- else throw(($getType(aX) + " couldn't be cast to Int"))
192+let aV = {
193+ let aW = invoke(aU, "getInFeeREADONLY", [toString(this)], nil)
194+ if ($isInstanceOf(aW, "Int"))
195+ then aW
196+ else throw(($getType(aW) + " couldn't be cast to Int"))
199197 }
200198
201-let aY = {
202- let aX = invoke(aV, "getOutFeeREADONLY", [toString(this)], nil)
203- if ($isInstanceOf(aX, "Int"))
204- then aX
205- else throw(($getType(aX) + " couldn't be cast to Int"))
199+let aX = {
200+ let aW = invoke(aU, "getOutFeeREADONLY", [toString(this)], nil)
201+ if ($isInstanceOf(aW, "Int"))
202+ then aW
203+ else throw(($getType(aW) + " couldn't be cast to Int"))
206204 }
207205
208-let aZ = aO(this, am())
206+let aY = aN(this, al())
209207
210-func ba () = valueOrElse(getBoolean(aV, aE()), false)
208+func aZ () = valueOrElse(getBoolean(aU, aD()), false)
211209
212210
213-func bb () = fromBase58String(aO(aV, ay()))
211+func ba () = fromBase58String(aN(aU, ax()))
214212
215213
216-let bc = addressFromStringValue(aO(aV, aG()))
214+let bb = addressFromStringValue(aN(aU, aF()))
217215
218-func bd () = {
219- let be = aO(this, ak())
220- let bf = aO(this, al())
221- let bg = aR(aV, aC(bf))
222- let aA = aR(aV, aC(be))
223- split(aO(aV, az(toString(aA), toString(bg))), o)
216+func bc () = {
217+ let bd = aN(this, aj())
218+ let be = aN(this, ak())
219+ let bf = aQ(aU, aB(be))
220+ let az = aQ(aU, aB(bd))
221+ split(aN(aU, ay(toString(az), toString(bf))), n)
224222 }
225223
226224
227-func bh (bi) = if ((bi == k))
225+func bg (bh) = if ((bh == k))
228226 then unit
229- else fromBase58String(bi)
227+ else fromBase58String(bh)
230228
231229
232-func bj (bi) = if ((bi == unit))
230+func bi (bh) = if ((bh == unit))
233231 then k
234- else toBase58String(value(bi))
232+ else toBase58String(value(bh))
235233
236234
237-func bk (bl) = $Tuple7(addressFromStringValue(bl[u]), parseIntValue(bl[v]), fromBase58String(bl[w]), bh(bl[x]), bh(bl[y]), parseIntValue(bl[z]), parseIntValue(bl[A]))
235+func bj (bk) = $Tuple9(addressFromStringValue(bk[t]), parseIntValue(bk[u]), fromBase58String(bk[v]), bg(bk[w]), bg(bk[x]), parseIntValue(bk[y]), parseIntValue(bk[z]), fromBase58String(bk[A]), fromBase58String(bk[B]))
238236
239237
240-let bm = bk(bd())
238+let bl = bj(bc())
241239
242-let bn = bm
240+let bm = bl
243241
244-let bo = bn._1
242+let bn = bm._1
245243
246-let bp = bn._2
244+let bo = bm._2
247245
248-let bq = bn._3
246+let bp = bm._3
249247
250-let br = bn._4
248+let bq = bm._4
251249
252-let bs = bn._5
250+let br = bm._5
253251
254-let bt = bn._6
252+let bs = bm._6
255253
256-let bu = bn._7
254+let bt = bm._7
257255
258-func bv () = split(aO(aV, ax()), o)
256+let bu = bm._8
257+
258+let bv = bm._9
259+
260+func bw () = split(aN(aU, aw()), n)
259261
260262
261-let bw = bv()
263+let bx = bw()
262264
263-let bx = valueOrErrorMessage(addressFromString(bw[D]), "Invalid staking contract address")
265+let by = valueOrErrorMessage(addressFromString(bx[C]), "Invalid staking contract address")
264266
265-let by = valueOrErrorMessage(addressFromString(bw[F]), "Invalid slipage contract address")
267+let bz = valueOrErrorMessage(addressFromString(bx[E]), "Invalid slipage contract address")
266268
267-let bz = valueOrErrorMessage(addressFromString(bw[G]), "Invalid gwx contract address")
269+let bA = valueOrErrorMessage(addressFromString(bx[F]), "Invalid gwx contract address")
268270
269-let bA = valueOrErrorMessage(addressFromString(bw[E]), "Invalid gwx contract address")
271+let bB = valueOrErrorMessage(addressFromString(bx[D]), "Invalid gwx contract address")
270272
271-func bB (bC,bD,bE,bF,bG,bH,bI,bJ,bK,bL) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bC), toString(bD), toString(bE), toString(bF), toString(bG), toString(bH), toString(bI), toString(bJ), toString(bK), toString(bL)], o)
273+func bC (bD,bE,bF,bG,bH,bI,bJ,bK,bL,bM) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bD), toString(bE), toString(bF), toString(bG), toString(bH), toString(bI), toString(bJ), toString(bK), toString(bL), toString(bM)], n)
272274
273275
274-func bM (bN,bO,bP,bF,bI,bJ) = makeString(["%d%d%d%d%d%d", toString(bN), toString(bO), toString(bP), toString(bF), toString(bI), toString(bJ)], o)
276+func bN (bO,bP,bQ,bG,bJ,bK) = makeString(["%d%d%d%d%d%d", toString(bO), toString(bP), toString(bQ), toString(bG), toString(bJ), toString(bK)], n)
275277
276278
277-func bQ (bR) = if ((bR == "WAVES"))
279+func bR (bS) = if ((bS == "WAVES"))
278280 then wavesBalance(this).available
279- else assetBalance(this, fromBase58String(bR))
281+ else assetBalance(this, fromBase58String(bS))
280282
281283
282-func bS (bT,bU) = fraction(bT, c, bU)
284+func bT (bU,bV) = fraction(bU, c, bV)
283285
284286
285-func bV (bT,bU,Q) = fraction(bT, c, bU, Q)
287+func bW (bU,bV,P) = fraction(bU, c, bV, P)
286288
287289
288-func bW (bX,bY,bZ) = {
289- let ca = fraction((bX - bY), b, bY)
290- let cb = ((bZ - X(ca)) > d)
291- if (!(cb))
292- then throw(("Big slpg: " + toString(ca)))
293- else $Tuple2(cb, min([bX, bY]))
290+func bX (bY,bZ,ca) = {
291+ let cb = fraction((bY - bZ), b, bZ)
292+ let cc = ((ca - W(cb)) > d)
293+ if (!(cc))
294+ then throw(("Big slpg: " + toString(cb)))
295+ else $Tuple2(cc, min([bY, bZ]))
294296 }
295297
296298
297-func cc (cd,ce,cf) = {
298- let ca = fraction(ce, b, cd)
299- let cg = (cf > ca)
300- if (if (cg)
299+func cd (ce,cf,cg) = {
300+ let cb = fraction(cf, b, ce)
301+ let ch = (cg > cb)
302+ if (if (ch)
301303 then true
302- else (ce > cd))
303- then throw(((((((toString(ce) + " ") + toString(cd)) + " ") + toString(ca)) + " ") + toString(cf)))
304- else cg
304+ else (cf > ce))
305+ then throw(((((((toString(cf) + " ") + toString(ce)) + " ") + toString(cb)) + " ") + toString(cg)))
306+ else ch
305307 }
306308
307309
308-func ch (ci,cj,ck,cl) = {
309- let cm = I(ck, ci)
310- let cn = I(cl, cj)
311- bS(cn, cm)
310+func ci (cj,ck,cl,cm) = {
311+ let cn = H(cl, cj)
312+ let co = H(cm, ck)
313+ bT(co, cn)
312314 }
313315
314316
315-func co (ck,cl,cp) = {
316- let cq = bt
317- let cr = bu
318- let cs = ch(cq, cr, ck, cl)
319- let bU = I(ck, cq)
320- let bT = I(cl, cr)
321- let ct = I(cp, a)
322- let cu = bS(bU, ct)
323- let cv = bS(bT, ct)
324-[cs, cu, cv]
317+func cp (cl,cm,cq) = {
318+ let cr = bs
319+ let cs = bt
320+ let ct = ci(cr, cs, cl, cm)
321+ let bV = H(cl, cr)
322+ let bU = H(cm, cs)
323+ let cu = H(cq, a)
324+ let cv = bT(bV, cu)
325+ let cw = bT(bU, cu)
326+[ct, cv, cw]
325327 }
326328
327329
328-func cw (ck,cl,cp) = {
329- let cx = co(ck, cl, cp)
330-[M(cx[0], a), M(cx[1], a), M(cx[2], a)]
330+func cx (cl,cm,cq) = {
331+ let cy = cp(cl, cm, cq)
332+[L(cy[0], a), L(cy[1], a), L(cy[2], a)]
331333 }
332334
333335
334-func cy (cz,ar) = {
335- let cA = if ((ar == 0))
336+func cz (cA,aq) = {
337+ let cB = if ((aq == 0))
336338 then 0
337- else fraction(cz, ar, a)
338- $Tuple2((cz - cA), cA)
339+ else fraction(cA, aq, a)
340+ $Tuple2((cA - cB), cB)
339341 }
340342
341343
342-func cB (cC) = {
343- let cD = cC[0]
344- let cE = cC[1]
345- let cF = (cD + cE)
346- if ((cF == e))
344+func cC (cD) = {
345+ let cE = cD[0]
346+ let cF = cD[1]
347+ let cG = (cE + cF)
348+ if ((cG == e))
347349 then e
348350 else {
349- let cG = parseIntValue(aZ)
350- let cH = (cG * 2)
351- let cx = fraction(cD, cE, f)
352- let cI = fraction(cx, i, f)
353- let cJ = fraction(toBigInt(cH), cF, f)
354- let cK = toBigInt((cH - 1))
355- func cL (cM) = {
356- let cN = fraction(cM, cM, f)
357- let cO = fraction(cN, cM, f)
358- let cP = fraction(cO, f, cI)
359- fraction((cJ + fraction(cP, g, f)), cM, (fraction(cK, cM, f) + fraction(h, cP, f)))
351+ let cH = parseIntValue(aY)
352+ let cI = (cH * 2)
353+ let cy = fraction(cE, cF, f)
354+ let cJ = fraction(cy, i, f)
355+ let cK = fraction(toBigInt(cI), cG, f)
356+ let cL = toBigInt((cI - 1))
357+ func cM (cN) = {
358+ let cO = fraction(cN, cN, f)
359+ let cP = fraction(cO, cN, f)
360+ let cQ = fraction(cP, f, cJ)
361+ fraction((cK + fraction(cQ, g, f)), cN, (fraction(cL, cN, f) + fraction(h, cQ, f)))
360362 }
361363
362- func cQ (cR,cS) = if (cR._2)
363- then cR
364+ func cR (cS,cT) = if (cS._2)
365+ then cS
364366 else {
365- let cM = cR._1
366- let cT = cL(cM)
367- let cU = (cT - value(cM))
368- let cV = if ((e > cU))
369- then -(cU)
370- else cU
371- if ((f >= cV))
372- then $Tuple2(cT, true)
373- else $Tuple2(cT, false)
367+ let cN = cS._1
368+ let cU = cM(cN)
369+ let cV = (cU - value(cN))
370+ let cW = if ((e > cV))
371+ then -(cV)
372+ else cV
373+ if ((f >= cW))
374+ then $Tuple2(cU, true)
375+ else $Tuple2(cU, false)
374376 }
375377
376- let cW = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
377- let cX = {
378- let cY = cW
379- let cZ = size(cY)
380- let da = $Tuple2(cF, false)
381- func db (dc,dd) = if ((dd >= cZ))
382- then dc
383- else cQ(dc, cY[dd])
378+ let cX = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
379+ let cY = {
380+ let cZ = cX
381+ let da = size(cZ)
382+ let db = $Tuple2(cG, false)
383+ func dc (dd,de) = if ((de >= da))
384+ then dd
385+ else cR(dd, cZ[de])
384386
385- func de (dc,dd) = if ((dd >= cZ))
386- then dc
387+ func df (dd,de) = if ((de >= da))
388+ then dd
387389 else throw("List size exceeds 17")
388390
389- de(db(db(db(db(db(db(db(db(db(db(db(db(db(db(db(db(db(da, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17)
391+ df(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(db, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17)
390392 }
391- let cM = cX._1
392- let df = cX._2
393- if (df)
394- then cM
395- else throw(("D calculation error, D = " + toString(cM)))
393+ let cN = cY._1
394+ let dg = cY._2
395+ if (dg)
396+ then cN
397+ else throw(("D calculation error, D = " + toString(cN)))
396398 }
397399 }
398400
399401
400-func dg (dh,di,dj,dk) = {
401- let dl = bq
402- let dm = toBase58String(value(br))
403- let dn = toBase58String(value(bs))
404- let do = bt
405- let dp = bu
406- let dq = toString(bp)
407- let dr = valueOrErrorMessage(assetInfo(dl), "Wrong LP id").quantity
408- if ((toBase58String(dl) != di))
402+func dh (di,dj,dk,dl) = {
403+ let dm = bp
404+ let dn = toBase58String(value(bq))
405+ let do = toBase58String(value(br))
406+ let dp = bs
407+ let dq = bt
408+ let dr = toString(bo)
409+ let ds = valueOrErrorMessage(assetInfo(dm), "Wrong LP id").quantity
410+ if ((toBase58String(dm) != dj))
409411 then throw("Wrong pmt asset")
410412 else {
411- let ds = bQ(dm)
412- let dt = I(ds, do)
413- let du = bQ(dn)
414- let dv = I(du, dp)
415- let dw = bS(dv, dt)
416- let dx = M(dw, a)
417- let dy = I(dj, a)
418- let dz = I(dr, a)
419- let dA = fraction(dt, dy, dz)
420- let dB = fraction(dv, dy, dz)
421- let dC = P(dA, do, FLOOR)
422- let dD = P(dB, dp, FLOOR)
423- let dE = if ((dh == ""))
413+ let dt = bR(dn)
414+ let du = H(dt, dp)
415+ let dv = bR(do)
416+ let dw = H(dv, dq)
417+ let dx = bT(dw, du)
418+ let dy = L(dx, a)
419+ let dz = H(dk, a)
420+ let dA = H(ds, a)
421+ let dB = fraction(du, dz, dA)
422+ let dC = fraction(dw, dz, dA)
423+ let dD = O(dB, dp, FLOOR)
424+ let dE = O(dC, dq, FLOOR)
425+ let dF = if ((di == ""))
424426 then nil
425- else [ScriptTransfer(dk, dC, if ((dm == "WAVES"))
427+ else [ScriptTransfer(dl, dD, if ((dn == "WAVES"))
426428 then unit
427- else fromBase58String(dm)), ScriptTransfer(dk, dD, if ((dn == "WAVES"))
429+ else fromBase58String(dn)), ScriptTransfer(dl, dE, if ((do == "WAVES"))
428430 then unit
429- else fromBase58String(dn)), StringEntry(aj(toString(dk), dh), bM(dC, dD, dj, dx, height, lastBlock.timestamp)), IntegerEntry(ac(), dx), IntegerEntry(ad(height, lastBlock.timestamp), dx)]
430- $Tuple10(dC, dD, dm, dn, ds, du, dr, dw, dq, dE)
431+ else fromBase58String(do)), StringEntry(ai(toString(dl), di), bN(dD, dE, dk, dy, height, lastBlock.timestamp)), IntegerEntry(ab(), dy), IntegerEntry(ac(height, lastBlock.timestamp), dy)]
432+ $Tuple10(dD, dE, dn, do, dt, dv, ds, dx, dr, dF)
431433 }
432434 }
433435
434436
435-func dF (dh,bZ,dG,dH,dI,dJ,dk,dK,dL,dM,dN,dO,dP) = {
436- let dl = bq
437- let dQ = toBase58String(value(br))
438- let dR = toBase58String(value(bs))
439- let dS = bt
437+func dG (di,ca,dH,dI,dJ,dK,dl,dL,dM,dN,dO,dP,dQ) = {
438+ let dm = bp
439+ let dR = toBase58String(value(bq))
440+ let dS = toBase58String(value(br))
440441 let dT = bu
441- let dq = toString(bp)
442- let dU = valueOrErrorMessage(assetInfo(dl), "Wr lp as").quantity
443- let ds = if (dK)
444- then bQ(dQ)
445- else if (if (dM)
446- then (dP == dQ)
442+ let dU = bv
443+ let dV = bs
444+ let dW = bt
445+ let dr = toString(bo)
446+ let dX = valueOrErrorMessage(assetInfo(dm), "Wr lp as").quantity
447+ let dt = if (dL)
448+ then bR(dR)
449+ else if (if (dN)
450+ then (dQ == dR)
447451 else false)
448- then (bQ(dQ) - dO)
449- else if (dM)
450- then bQ(dQ)
451- else (bQ(dQ) - dG)
452- let du = if (dK)
453- then bQ(dR)
454- else if (if (dM)
455- then (dP == dR)
452+ then (bR(dR) - dP)
453+ else if (dN)
454+ then bR(dR)
455+ else (bR(dR) - dH)
456+ let dv = if (dL)
457+ then bR(dS)
458+ else if (if (dN)
459+ then (dQ == dS)
456460 else false)
457- then (bQ(dR) - dO)
458- else if (dM)
459- then bQ(dR)
460- else (bQ(dR) - dI)
461- let dV = I(dG, dS)
462- let dW = I(dI, dT)
463- let dX = bS(dW, dV)
464- let dt = I(ds, dS)
465- let dv = I(du, dT)
466- let ce = cB([dt, dv])
467- let dY = if ((dU == 0))
461+ then (bR(dS) - dP)
462+ else if (dN)
463+ then bR(dS)
464+ else (bR(dS) - dJ)
465+ let dY = H(dH, dV)
466+ let dZ = H(dJ, dW)
467+ let ea = bT(dZ, dY)
468+ let du = H(dt, dV)
469+ let dw = H(dv, dW)
470+ let cf = cC([du, dw])
471+ let eb = if ((dX == 0))
468472 then {
469- let cd = cB([(dt + dV), (dv + dW)])
470- let dZ = if ((cd > ce))
473+ let ce = cC([(du + dY), (dw + dZ)])
474+ let ec = if ((ce > cf))
471475 then true
472476 else throw("D1 should be greater than D0")
473- if ((dZ == dZ))
477+ if ((ec == ec))
474478 then {
475- let dw = d
476- let ea = d
477- let ct = cd
478- $Tuple5(M(ct, a), M(dV, dS), M(dW, dT), bS((dv + dW), (dt + dV)), ea)
479+ let dx = d
480+ let ed = d
481+ let cu = ce
482+ $Tuple5(L(cu, a), L(dY, dV), L(dZ, dW), bT((dw + dZ), (du + dY)), ed)
479483 }
480484 else throw("Strict value is not equal to itself.")
481485 }
482486 else {
483- let dw = bS(dv, dt)
484- let eb = fraction(X((dw - dX)), c, dw)
485- let ea = I(bZ, a)
486- if (if (if (dN)
487- then (dw != d)
487+ let dx = bT(dw, du)
488+ let ee = fraction(W((dx - ea)), c, dx)
489+ let ed = H(ca, a)
490+ if (if (if (dO)
491+ then (dx != d)
488492 else false)
489- then (eb > ea)
493+ then (ee > ed)
490494 else false)
491- then throw(((("Price slippage " + toString(eb)) + " > ") + toString(ea)))
495+ then throw(((("Price slippage " + toString(ee)) + " > ") + toString(ed)))
492496 else {
493- let ec = I(dU, a)
494- let ed = fraction(dV, bV(dv, dt, CEILING), c, CEILING)
495- let ee = fraction(dW, c, bV(dv, dt, FLOOR), CEILING)
496- let ef = if ((ed > dW))
497- then $Tuple2(ee, dW)
498- else $Tuple2(dV, ed)
499- let eg = ef._1
500- let eh = ef._2
501- let cd = cB([(dt + eg), (dv + eh)])
502- let dZ = if ((cd > ce))
497+ let ef = H(dX, a)
498+ let eg = fraction(dY, bW(dw, du, CEILING), c, CEILING)
499+ let eh = fraction(dZ, c, bW(dw, du, FLOOR), CEILING)
500+ let ei = if ((eg > dZ))
501+ then $Tuple2(eh, dZ)
502+ else $Tuple2(dY, eg)
503+ let ej = ei._1
504+ let ek = ei._2
505+ let ce = cC([(du + ej), (dw + ek)])
506+ let ec = if ((ce > cf))
503507 then true
504508 else throw("D1 should be greater than D0")
505- if ((dZ == dZ))
509+ if ((ec == ec))
506510 then {
507- let ct = fraction(ec, (cd - ce), ce)
508- $Tuple5(P(ct, a, FLOOR), P(eg, dS, CEILING), P(eh, dT, CEILING), dw, ea)
511+ let cu = fraction(ef, (ce - cf), cf)
512+ $Tuple5(O(cu, a, FLOOR), O(ej, dV, CEILING), O(ek, dW, CEILING), dx, ed)
509513 }
510514 else throw("Strict value is not equal to itself.")
511515 }
512516 }
513- let ei = dY._1
514- let ej = dY._2
515- let ek = dY._3
516- let dx = M(dY._4, a)
517- let el = M(dY._5, a)
518- if ((0 >= ei))
517+ let el = eb._1
518+ let em = eb._2
519+ let en = eb._3
520+ let dy = L(eb._4, a)
521+ let eo = L(eb._5, a)
522+ if ((0 >= el))
519523 then throw("LP <= 0")
520524 else {
521- let em = if (!(dL))
525+ let ep = if (!(dM))
522526 then 0
523- else ei
524- let en = (dG - ej)
525- let eo = (dI - ek)
526- let ep = if (if (dM)
527- then (dP == dQ)
527+ else el
528+ let eq = (dH - em)
529+ let er = (dJ - en)
530+ let es = if (if (dN)
531+ then (dQ == dR)
528532 else false)
529- then $Tuple2(dO, 0)
530- else if (if (dM)
531- then (dP == dR)
533+ then $Tuple2(dP, 0)
534+ else if (if (dN)
535+ then (dQ == dS)
532536 else false)
533- then $Tuple2(0, dO)
534- else $Tuple2(ej, ek)
535- let eq = ep._1
536- let er = ep._2
537- let es = [IntegerEntry(ac(), dx), IntegerEntry(ad(height, lastBlock.timestamp), dx), StringEntry(ag(dk, dh), bB(eq, er, em, dx, bZ, el, height, lastBlock.timestamp, en, eo))]
538- $Tuple13(ei, em, dx, ds, du, dU, dl, dq, es, en, eo, dH, dJ)
537+ then $Tuple2(0, dP)
538+ else $Tuple2(em, en)
539+ let et = es._1
540+ let eu = es._2
541+ let ev = [IntegerEntry(ab(), dy), IntegerEntry(ac(height, lastBlock.timestamp), dy), StringEntry(af(dl, di), bC(et, eu, ep, dy, ca, eo, height, lastBlock.timestamp, eq, er))]
542+ $Tuple13(el, ep, dy, dt, dv, dX, dm, dr, ev, eq, er, dI, dK)
539543 }
540544 }
541545
542546
543-func et (cC,cS,eu) = {
544- let ev = g
545- let ew = cC[if ((cS == 0))
547+func ew (cD,cT,ex) = {
548+ let ey = g
549+ let ez = cD[if ((cT == 0))
546550 then 1
547551 else 0]
548- let ex = parseBigIntValue(m)
549- let cG = (parseBigIntValue(aZ) * ex)
550- let cF = ew
551- let cH = (cG * ev)
552- let ey = (((((eu * eu) / (ew * ev)) * eu) * ex) / (cH * ev))
553- let ez = ((cF + ((eu * ex) / cH)) - eu)
554- func cQ (cR,eA) = {
555- let eB = cR
556- let eC = eB._1
557- let df = eB._2
558- if ((df != unit))
559- then cR
552+ let eA = parseBigIntValue(l)
553+ let cH = (parseBigIntValue(aY) * eA)
554+ let cG = ez
555+ let cI = (cH * ey)
556+ let eB = (((((ex * ex) / (ez * ey)) * ex) * eA) / (cI * ey))
557+ let eC = ((cG + ((ex * eA) / cI)) - ex)
558+ func cR (cS,eD) = {
559+ let eE = cS
560+ let eF = eE._1
561+ let dg = eE._2
562+ if ((dg != unit))
563+ then cS
560564 else {
561- let eD = (((eC * eC) + ey) / ((g * eC) + ez))
562- let eE = Y((eD - value(eC)))
563- if ((f >= eE))
564- then $Tuple2(eD, eA)
565- else $Tuple2(eD, unit)
565+ let eG = (((eF * eF) + eB) / ((g * eF) + eC))
566+ let eH = X((eG - value(eF)))
567+ if ((f >= eH))
568+ then $Tuple2(eG, eD)
569+ else $Tuple2(eG, unit)
566570 }
567571 }
568572
569- let cW = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
570- let eF = {
571- let cY = cW
572- let cZ = size(cY)
573- let da = $Tuple2(eu, unit)
574- func db (dc,dd) = if ((dd >= cZ))
575- then dc
576- else cQ(dc, cY[dd])
573+ let cX = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
574+ let eI = {
575+ let cZ = cX
576+ let da = size(cZ)
577+ let db = $Tuple2(ex, unit)
578+ func dc (dd,de) = if ((de >= da))
579+ then dd
580+ else cR(dd, cZ[de])
577581
578- func de (dc,dd) = if ((dd >= cZ))
579- then dc
582+ func df (dd,de) = if ((de >= da))
583+ then dd
580584 else throw("List size exceeds 15")
581585
582- de(db(db(db(db(db(db(db(db(db(db(db(db(db(db(db(da, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
586+ df(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(db, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
583587 }
584- let eC = eF._1
585- let df = eF._2
586- if ((df != unit))
587- then eC
588- else throw(("Y calculation error, Y = " + toString(eC)))
588+ let eF = eI._1
589+ let dg = eI._2
590+ if ((dg != unit))
591+ then eF
592+ else throw(("Y calculation error, Y = " + toString(eF)))
589593 }
590594
591595
592-func eG (eH,eI,eJ) = {
593- let eK = fraction(cB([L(eH, toBigInt(bt)), L(eI, toBigInt(bu))]), c, eJ)
594- if ((eJ == e))
596+func eJ (eK,eL,eM) = {
597+ let eN = fraction(cC([K(eK, toBigInt(bs)), K(eL, toBigInt(bt))]), c, eM)
598+ if ((eM == e))
595599 then e
596- else eK
600+ else eN
597601 }
598602
599603
600-func eL (eM,eN,eO) = {
601- let eP = (toBigInt(bQ(bj(br))) - eM)
602- let eQ = (toBigInt(bQ(bj(bs))) - eN)
603- let eR = (toBigInt(value(assetInfo(bq)).quantity) - eO)
604- let eS = eG(eP, eQ, eR)
605- eS
604+func eO (eP,eQ,eR) = {
605+ let eS = (toBigInt(bR(bi(bq))) - eP)
606+ let eT = (toBigInt(bR(bi(br))) - eQ)
607+ let eU = (toBigInt(value(assetInfo(bp)).quantity) - eR)
608+ let eV = eJ(eS, eT, eU)
609+ eV
606610 }
607611
608612
609-func eT (eU,eV,eO) = {
610- let eP = (bQ(bj(br)) + eU)
611- let eQ = (bQ(bj(bs)) + eV)
612- let eR = (value(assetInfo(bq)).quantity + eO)
613- let eK = eG(toBigInt(eP), toBigInt(eQ), toBigInt(eR))
614- let eW = [IntegerEntry(at, height), StringEntry(as, toString(eK))]
615- $Tuple2(eW, eK)
613+func eW (eX,eY,eR) = {
614+ let eS = (bR(bi(bq)) + eX)
615+ let eT = (bR(bi(br)) + eY)
616+ let eU = (value(assetInfo(bp)).quantity + eR)
617+ let eN = eJ(toBigInt(eS), toBigInt(eT), toBigInt(eU))
618+ let eZ = [IntegerEntry(as, height), StringEntry(ar, toString(eN))]
619+ $Tuple2(eZ, eN)
616620 }
617621
618622
619-func eX (eY,eK) = if ((eK >= eY))
623+func fa (fb,eN) = if ((eN >= fb))
620624 then true
621- else aS("updated DLp lower than current DLp")
625+ else aR("updated DLp lower than current DLp")
622626
623627
624-func eZ (fa) = {
625- let eP = bQ(bj(br))
626- let eQ = bQ(bj(bs))
627- let fb = fa.amount
628- let fc = fraction(fa.amount, fa.price, a, FLOOR)
629- let fd = if ((fa.orderType == Buy))
630- then $Tuple2(fb, -(fc))
631- else $Tuple2(-(fb), fc)
632- let eU = fd._1
633- let eV = fd._2
634- if (if (if (ba())
628+func fc (fd) = {
629+ let eS = bR(bi(bq))
630+ let eT = bR(bi(br))
631+ let fe = fd.amount
632+ let ff = fraction(fd.amount, fd.price, a, FLOOR)
633+ let fg = if ((fd.orderType == Buy))
634+ then $Tuple2(fe, -(ff))
635+ else $Tuple2(-(fe), ff)
636+ let eX = fg._1
637+ let eY = fg._2
638+ if (if (if (aZ())
635639 then true
636- else (bp == s))
640+ else (bo == r))
637641 then true
638- else (bp == t))
642+ else (bo == s))
639643 then throw("Admin blocked")
640- else if (if ((fa.assetPair.amountAsset != br))
644+ else if (if ((fd.assetPair.amountAsset != bq))
641645 then true
642- else (fa.assetPair.priceAsset != bs))
646+ else (fd.assetPair.priceAsset != br))
643647 then throw("Wr assets")
644648 else {
645- let fe = parseBigIntValue(valueOrElse(getString(this, as), "0"))
646- let ff = eT(eU, eV, 0)
647- let fg = ff._1
648- let fh = ff._2
649- let fi = (fh >= fe)
650- let fj = makeString(["dLp=", toString(fe), " dLpNew=", toString(fh), " amountAssetBalance=", toString(eP), " priceAssetBalance=", toString(eQ), " amountAssetBalanceDelta=", toString(eU), " priceAssetBalanceDelta=", toString(eV), " height=", toString(height)], "")
651- $Tuple2(fi, fj)
649+ let fh = parseBigIntValue(valueOrElse(getString(this, ar), "0"))
650+ let fi = eW(eX, eY, 0)
651+ let fj = fi._1
652+ let fk = fi._2
653+ let fl = (fk >= fh)
654+ let fm = makeString(["dLp=", toString(fh), " dLpNew=", toString(fk), " amountAssetBalance=", toString(eS), " priceAssetBalance=", toString(eT), " amountAssetBalanceDelta=", toString(eX), " priceAssetBalanceDelta=", toString(eY), " height=", toString(height)], "")
655+ $Tuple2(fl, fm)
652656 }
653657 }
654658
655659
656-func fk (cS) = if ((size(cS.payments) != 1))
660+func fn (cT) = if ((size(cT.payments) != 1))
657661 then throw("1 pmnt exp")
658662 else {
659- let fl = value(cS.payments[0])
660- let di = value(fl.assetId)
661- let dO = fl.amount
662- let dY = dg(toBase58String(cS.transactionId), toBase58String(di), dO, cS.caller)
663- let dC = dY._1
664- let dD = dY._2
665- let dq = parseIntValue(dY._9)
666- let dE = dY._10
667- if (if (ba())
663+ let fo = value(cT.payments[0])
664+ let dj = value(fo.assetId)
665+ let dP = fo.amount
666+ let eb = dh(toBase58String(cT.transactionId), toBase58String(dj), dP, cT.caller)
667+ let dD = eb._1
668+ let dE = eb._2
669+ let dr = parseIntValue(eb._9)
670+ let dF = eb._10
671+ if (if (aZ())
668672 then true
669- else (dq == t))
670- then throw(("Admin blocked: " + toString(dq)))
671- else $Tuple5(dC, dD, dO, di, dE)
673+ else (dr == s))
674+ then throw(("Admin blocked: " + toString(dr)))
675+ else $Tuple5(dD, dE, dP, dj, dF)
672676 }
673677
674678
675-func fm (fn,ai,fo,fp,bZ,dL,dM,dN,dO,dP) = {
676- let dY = dF(ai, bZ, value(fo).amount, value(fo).assetId, value(fp).amount, value(fp).assetId, fn, (ai == ""), dL, dM, dN, dO, dP)
677- let dq = parseIntValue(dY._8)
678- if (if (if (ba())
679+func fp (fq,ah,fr,fs,ca,dM,dN,dO,dP,dQ) = {
680+ let eb = dG(ah, ca, value(fr).amount, value(fr).assetId, value(fs).amount, value(fs).assetId, fq, (ah == ""), dM, dN, dO, dP, dQ)
681+ let dr = parseIntValue(eb._8)
682+ if (if (if (aZ())
679683 then true
680- else (dq == r))
684+ else (dr == q))
681685 then true
682- else (dq == t))
683- then throw(("Blocked:" + toString(dq)))
684- else dY
686+ else (dr == s))
687+ then throw(("Blocked:" + toString(dr)))
688+ else eb
685689 }
686690
687691
688-func fq (fr,di,dk,ai,fs) = {
689- let dm = toBase58String(value(br))
690- let dn = toBase58String(value(bs))
691- let dl = bq
692- let dS = bt
693- let dT = bu
694- let eR = toBigInt(valueOrErrorMessage(assetInfo(dl), "invalid lp asset").quantity)
695- let ft = if ((eR > e))
692+func ft (fu,dj,dl,ah,fv) = {
693+ let dn = toBase58String(value(bq))
694+ let do = toBase58String(value(br))
695+ let dm = bp
696+ let dV = bs
697+ let dW = bt
698+ let eU = toBigInt(valueOrErrorMessage(assetInfo(dm), "invalid lp asset").quantity)
699+ let fw = if ((eU > e))
696700 then true
697701 else throw("initial deposit requires all coins")
698- if ((ft == ft))
702+ if ((fw == fw))
699703 then {
700- let ds = bQ(dm)
701- let du = bQ(dn)
702- let fu = if ((ai == ""))
703- then $Tuple2(ds, du)
704- else if ((di == dm))
705- then if ((fr > ds))
704+ let dt = bR(dn)
705+ let dv = bR(do)
706+ let fx = if ((ah == ""))
707+ then $Tuple2(dt, dv)
708+ else if ((dj == dn))
709+ then if ((fu > dt))
706710 then throw("invalid payment amount")
707- else $Tuple2((ds - fr), du)
708- else if ((di == dn))
709- then if ((fr > du))
711+ else $Tuple2((dt - fu), dv)
712+ else if ((dj == do))
713+ then if ((fu > dv))
710714 then throw("invalid payment amount")
711- else $Tuple2(ds, (du - fr))
715+ else $Tuple2(dt, (dv - fu))
712716 else throw("wrong pmtAssetId")
713- let fv = fu._1
714- let fw = fu._2
715- let fx = if ((di == dm))
716- then $Tuple2(fr, 0)
717- else if ((di == dn))
718- then $Tuple2(0, fr)
719- else throw("invalid payment")
720717 let fy = fx._1
721718 let fz = fx._2
722- let fA = if (fs)
723- then $Tuple3(cy(fy, aW)._1, cy(fz, aW)._1, cy(fr, aW)._2)
724- else $Tuple3(fy, fz, 0)
719+ let fA = if ((dj == dn))
720+ then $Tuple2(fu, 0)
721+ else if ((dj == do))
722+ then $Tuple2(0, fu)
723+ else throw("invalid payment")
725724 let fB = fA._1
726725 let fC = fA._2
727- let cA = fA._3
728- let fD = (fv + fB)
729- let fE = (fw + fC)
730- let ce = cB([I(fv, bt), I(fw, bu)])
731- let cd = cB([I(fD, bt), I(fE, bu)])
732- let dZ = if ((cd > ce))
726+ let fD = if (fv)
727+ then $Tuple3(cz(fB, aV)._1, cz(fC, aV)._1, cz(fu, aV)._2)
728+ else $Tuple3(fB, fC, 0)
729+ let fE = fD._1
730+ let fF = fD._2
731+ let cB = fD._3
732+ let fG = (fy + fE)
733+ let fH = (fz + fF)
734+ let cf = cC([H(fy, bs), H(fz, bt)])
735+ let ce = cC([H(fG, bs), H(fH, bt)])
736+ let ec = if ((ce > cf))
733737 then true
734738 else throw()
735- if ((dZ == dZ))
739+ if ((ec == ec))
736740 then {
737- let fF = fraction(eR, (cd - ce), ce, FLOOR)
738- let dx = M(bS(I(fE, dT), I(fD, dS)), a)
739- let es = [IntegerEntry(ac(), dx), IntegerEntry(ad(height, lastBlock.timestamp), dx), StringEntry(ag(dk, ai), bB(fy, fz, toInt(fF), dx, 0, 0, height, lastBlock.timestamp, 0, 0))]
740- let fG = fraction(fw, a, fv)
741- let fH = fraction(fr, a, (fG + a))
742- let fI = (fr - fH)
743- let fJ = fraction(eR, toBigInt(fI), toBigInt(fw))
744- let fK = toInt(fraction((fF - fJ), b, fJ))
745- $Tuple4(toInt(fF), es, cA, fK)
741+ let fI = fraction(eU, (ce - cf), cf, FLOOR)
742+ let dy = L(bT(H(fH, dW), H(fG, dV)), a)
743+ let ev = [IntegerEntry(ab(), dy), IntegerEntry(ac(height, lastBlock.timestamp), dy), StringEntry(af(dl, ah), bC(fB, fC, toInt(fI), dy, 0, 0, height, lastBlock.timestamp, 0, 0))]
744+ let fJ = fraction(fz, a, fy)
745+ let fK = fraction(fu, a, (fJ + a))
746+ let fL = (fu - fK)
747+ let fM = fraction(eU, toBigInt(fL), toBigInt(fz))
748+ let fN = toInt(fraction((fI - fM), b, fM))
749+ $Tuple4(toInt(fI), ev, cB, fN)
746750 }
747751 else throw("Strict value is not equal to itself.")
748752 }
750754 }
751755
752756
753-func fL (fM,fN,fO,fn,fP,fQ) = {
754- let dl = toBase58String(value(bq))
755- let dm = toBase58String(value(br))
756- let dn = toBase58String(value(bs))
757- let fR = bt
758- let fS = bu
759- let fT = bp
760- let dk = if ((fn == bA))
761- then fP
762- else fn
763- let fl = value(fO[0])
764- let di = value(fl.assetId)
765- let dO = fl.amount
766- let eS = eL(e, e, e)
767- if ((eS == eS))
757+func fO (fP,fQ,fR,fq,fS,fT) = {
758+ let dm = toBase58String(value(bp))
759+ let dn = toBase58String(value(bq))
760+ let do = toBase58String(value(br))
761+ let fU = bs
762+ let fV = bt
763+ let fW = bo
764+ let dl = if ((fq == bB))
765+ then fS
766+ else fq
767+ let fo = value(fR[0])
768+ let dj = value(fo.assetId)
769+ let dP = fo.amount
770+ let eV = eO(e, e, e)
771+ if ((eV == eV))
768772 then {
769- let dh = toBase58String(fQ)
770- if ((dl != toBase58String(di)))
773+ let di = toBase58String(fT)
774+ if ((dm != toBase58String(dj)))
771775 then throw("Wrong LP")
772776 else {
773- let ds = bQ(dm)
774- let du = bQ(dn)
775- let fU = {
776- let aX = invoke(this, "getOneTknV2READONLY", [fM, dO], nil)
777- if ($isInstanceOf(aX, "(Int, Int)"))
778- then aX
779- else throw(($getType(aX) + " couldn't be cast to (Int, Int)"))
777+ let dt = bR(dn)
778+ let dv = bR(do)
779+ let fX = {
780+ let aW = invoke(this, "getOneTknV2READONLY", [fP, dP], nil)
781+ if ($isInstanceOf(aW, "(Int, Int)"))
782+ then aW
783+ else throw(($getType(aW) + " couldn't be cast to (Int, Int)"))
780784 }
781- if ((fU == fU))
785+ if ((fX == fX))
782786 then {
783- let cA = fU._2
784- let fV = fU._1
785- let fW = if (if ((fN > 0))
786- then (fN > fV)
787+ let cB = fX._2
788+ let fY = fX._1
789+ let fZ = if (if ((fQ > 0))
790+ then (fQ > fY)
787791 else false)
788- then aS(makeString(["amount to receive is less than ", toString(fN)], ""))
789- else fV
790- let fX = if ((fM == dm))
791- then $Tuple4(fW, 0, ((ds - fW) - cA), du)
792- else if ((fM == dn))
793- then $Tuple4(0, fW, ds, ((du - fW) - cA))
792+ then aR(makeString(["amount to receive is less than ", toString(fQ)], ""))
793+ else fY
794+ let ga = if ((fP == dn))
795+ then $Tuple4(fZ, 0, ((dt - fZ) - cB), dv)
796+ else if ((fP == do))
797+ then $Tuple4(0, fZ, dt, ((dv - fZ) - cB))
794798 else throw("invalid out asset id")
795- let fY = fX._1
796- let fZ = fX._2
797- let fD = fX._3
798- let fE = fX._4
799- let ga = bS(I(fE, fS), I(fD, fR))
800- let gb = M(ga, a)
801- let gc = if ((fM == "WAVES"))
799+ let gb = ga._1
800+ let gc = ga._2
801+ let fG = ga._3
802+ let fH = ga._4
803+ let gd = bT(H(fH, fV), H(fG, fU))
804+ let ge = L(gd, a)
805+ let gf = if ((fP == "WAVES"))
802806 then unit
803- else fromBase58String(fM)
804- let gd = if ((cA > 0))
805- then [ScriptTransfer(bc, cA, gc)]
807+ else fromBase58String(fP)
808+ let gg = if ((cB > 0))
809+ then [ScriptTransfer(bb, cB, gf)]
806810 else nil
807- let dE = ([ScriptTransfer(dk, fW, gc), StringEntry(aj(toString(dk), dh), bM(fY, fZ, dO, gb, height, lastBlock.timestamp)), IntegerEntry(ac(), gb), IntegerEntry(ad(height, lastBlock.timestamp), gb)] ++ gd)
808- if ((dE == dE))
811+ let dF = ([ScriptTransfer(dl, fZ, gf), StringEntry(ai(toString(dl), di), bN(gb, gc, dP, ge, height, lastBlock.timestamp)), IntegerEntry(ab(), ge), IntegerEntry(ac(height, lastBlock.timestamp), ge)] ++ gg)
812+ if ((dF == dF))
809813 then {
810- let ge = invoke(aV, "burn", [dO], [AttachedPayment(di, dO)])
811- if ((ge == ge))
814+ let gh = invoke(aU, "burn", [dP], [AttachedPayment(dj, dP)])
815+ if ((gh == gh))
812816 then {
813- let gf = {
814- let gg = if ((this == bc))
817+ let gi = {
818+ let gj = if ((this == bb))
815819 then 0
816- else cA
817- let gh = if ((bh(fM) == br))
820+ else cB
821+ let gk = if ((bg(fP) == bq))
818822 then true
819823 else false
820- if (gh)
821- then $Tuple2(-((fV + gg)), 0)
822- else $Tuple2(0, -((fV + gg)))
824+ if (gk)
825+ then $Tuple2(-((fY + gj)), 0)
826+ else $Tuple2(0, -((fY + gj)))
823827 }
824- let eU = gf._1
825- let eV = gf._2
826- let gi = eT(eU, eV, 0)
827- let gj = gi._1
828- let eK = gi._2
829- let gk = eX(eS, eK)
830- if ((gk == gk))
831- then $Tuple2((dE ++ gj), fW)
828+ let eX = gi._1
829+ let eY = gi._2
830+ let gl = eW(eX, eY, 0)
831+ let gm = gl._1
832+ let eN = gl._2
833+ let gn = fa(eV, eN)
834+ if ((gn == gn))
835+ then $Tuple2((dF ++ gm), fZ)
832836 else throw("Strict value is not equal to itself.")
833837 }
834838 else throw("Strict value is not equal to itself.")
842846 }
843847
844848
845-func gl () = {
846- let gm = getString(aa())
847- if ($isInstanceOf(gm, "String"))
849+func go () = {
850+ let gp = getString(Z())
851+ if ($isInstanceOf(gp, "String"))
848852 then {
849- let cF = gm
850- fromBase58String(cF)
853+ let cG = gp
854+ fromBase58String(cG)
851855 }
852- else if ($isInstanceOf(gm, "Unit"))
856+ else if ($isInstanceOf(gp, "Unit"))
853857 then unit
854858 else throw("Match error")
855859 }
856860
857861
858-func gn () = {
859- let gm = getString(ab())
860- if ($isInstanceOf(gm, "String"))
862+func gq () = {
863+ let gp = getString(aa())
864+ if ($isInstanceOf(gp, "String"))
861865 then {
862- let cF = gm
863- fromBase58String(cF)
866+ let cG = gp
867+ fromBase58String(cG)
864868 }
865- else if ($isInstanceOf(gm, "Unit"))
869+ else if ($isInstanceOf(gp, "Unit"))
866870 then unit
867871 else throw("Match error")
868872 }
869873
870874
871-let go = throw("Permission denied")
875+let gr = throw("Permission denied")
872876
873-func gp (cS) = {
874- let gm = gl()
875- if ($isInstanceOf(gm, "ByteVector"))
877+func gs (cT) = {
878+ let gp = go()
879+ if ($isInstanceOf(gp, "ByteVector"))
876880 then {
877- let gq = gm
878- (cS.callerPublicKey == gq)
881+ let gt = gp
882+ (cT.callerPublicKey == gt)
879883 }
880- else if ($isInstanceOf(gm, "Unit"))
881- then (cS.caller == this)
884+ else if ($isInstanceOf(gp, "Unit"))
885+ then (cT.caller == this)
882886 else throw("Match error")
883887 }
884888
885889
886-func gr (cS) = {
887- let gm = gl()
888- if ($isInstanceOf(gm, "ByteVector"))
890+func gu (cT) = {
891+ let gp = go()
892+ if ($isInstanceOf(gp, "ByteVector"))
889893 then {
890- let gq = gm
891- if ((cS.callerPublicKey == gq))
894+ let gt = gp
895+ if ((cT.callerPublicKey == gt))
892896 then true
893- else go
897+ else gr
894898 }
895- else if ($isInstanceOf(gm, "Unit"))
896- then if ((cS.caller == this))
899+ else if ($isInstanceOf(gp, "Unit"))
900+ then if ((cT.caller == this))
897901 then true
898- else go
902+ else gr
899903 else throw("Match error")
900904 }
901905
902906
903-func gs (gt,eu,gu) = {
904- let bl = bd()
905- let dm = bl[x]
906- let dn = bl[y]
907- let ev = g
908- let ex = parseBigIntValue(m)
909- let cG = (parseBigIntValue(aZ) * ex)
910- let cC = if ((gt == false))
911- then [(toBigInt(bQ(dm)) + gu), toBigInt(bQ(dn))]
912- else [(toBigInt(bQ(dn)) + gu), toBigInt(bQ(dm))]
913- let ew = cC[0]
914- let cF = ew
915- let cH = (cG * ev)
916- let ey = (((((eu * eu) / (ew * ev)) * eu) * ex) / (cH * ev))
917- let ez = ((cF + ((eu * ex) / cH)) - eu)
918- func cQ (cR,eA) = {
919- let gv = cR
920- let eC = gv._1
921- let df = gv._2
922- if ((df != unit))
923- then cR
907+func gv (gw,ex,gx) = {
908+ let bk = bc()
909+ let dn = bk[w]
910+ let do = bk[x]
911+ let ey = g
912+ let eA = parseBigIntValue(l)
913+ let cH = (parseBigIntValue(aY) * eA)
914+ let cD = if ((gw == false))
915+ then [(toBigInt(bR(dn)) + gx), toBigInt(bR(do))]
916+ else [(toBigInt(bR(do)) + gx), toBigInt(bR(dn))]
917+ let ez = cD[0]
918+ let cG = ez
919+ let cI = (cH * ey)
920+ let eB = (((((ex * ex) / (ez * ey)) * ex) * eA) / (cI * ey))
921+ let eC = ((cG + ((ex * eA) / cI)) - ex)
922+ func cR (cS,eD) = {
923+ let gy = cS
924+ let eF = gy._1
925+ let dg = gy._2
926+ if ((dg != unit))
927+ then cS
924928 else {
925- let eD = (((eC * eC) + ey) / ((g * eC) + ez))
926- let eE = Y((eD - value(eC)))
927- if ((f >= eE))
928- then $Tuple2(eD, eA)
929- else $Tuple2(eD, unit)
929+ let eG = (((eF * eF) + eB) / ((g * eF) + eC))
930+ let eH = X((eG - value(eF)))
931+ if ((f >= eH))
932+ then $Tuple2(eG, eD)
933+ else $Tuple2(eG, unit)
930934 }
931935 }
932936
933- let cW = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
934- let gw = {
935- let cY = cW
936- let cZ = size(cY)
937- let da = $Tuple2(eu, unit)
938- func db (dc,dd) = if ((dd >= cZ))
939- then dc
940- else cQ(dc, cY[dd])
937+ let cX = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
938+ let gz = {
939+ let cZ = cX
940+ let da = size(cZ)
941+ let db = $Tuple2(ex, unit)
942+ func dc (dd,de) = if ((de >= da))
943+ then dd
944+ else cR(dd, cZ[de])
941945
942- func de (dc,dd) = if ((dd >= cZ))
943- then dc
946+ func df (dd,de) = if ((de >= da))
947+ then dd
944948 else throw("List size exceeds 15")
945949
946- de(db(db(db(db(db(db(db(db(db(db(db(db(db(db(db(da, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
950+ df(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(db, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
947951 }
948- let eC = gw._1
949- let df = gw._2
950- if ((df != unit))
951- then eC
952- else throw(("Y calculation error, Y = " + toString(eC)))
952+ let eF = gz._1
953+ let dg = gz._2
954+ if ((dg != unit))
955+ then eF
956+ else throw(("Y calculation error, Y = " + toString(eF)))
953957 }
954958
955959
956-func gx () = valueOrElse(getBoolean(aV, aH(toString(this))), false)
960+func gA () = valueOrElse(getBoolean(aU, aG(toString(this))), false)
957961
958962
959-@Callable(cS)
960-func calculateAmountOutForSwapREADONLY (gy,gt,gz) = {
961- let gA = if ((gt == false))
963+@Callable(cT)
964+func calculateAmountOutForSwapREADONLY (gB,gw,gC) = {
965+ let gD = if ((gw == false))
962966 then {
963- let gB = aO(this, al())
964- let gu = (toBigInt(bQ(aO(this, ak()))) + toBigInt(gy))
965- $Tuple2(gB, gu)
967+ let gE = aN(this, ak())
968+ let gx = (toBigInt(bR(aN(this, aj()))) + toBigInt(gB))
969+ $Tuple2(gE, gx)
966970 }
967971 else {
968- let gB = aO(this, ak())
969- let gu = (toBigInt(bQ(aO(this, al()))) + toBigInt(gy))
970- $Tuple2(gB, gu)
972+ let gE = aN(this, aj())
973+ let gx = (toBigInt(bR(aN(this, ak()))) + toBigInt(gB))
974+ $Tuple2(gE, gx)
971975 }
972- let gB = gA._1
973- let gu = gA._2
974- let bl = bd()
975- let dm = bl[x]
976- let dn = bl[y]
977- let cC = [toBigInt(bQ(dm)), toBigInt(bQ(dn))]
978- let eu = cB(cC)
979- let eC = gs(gt, eu, toBigInt(gy))
980- let gC = ((toBigInt(bQ(gB)) - eC) - toBigInt(1))
981- let gD = max([0, toInt(gC)])
982- let gE = if ((gt == false))
983- then [((toBigInt(bQ(dm)) + toBigInt(gy)) + toBigInt(gz)), (toBigInt(bQ(dn)) - gC)]
984- else [(toBigInt(bQ(dm)) - gC), ((toBigInt(bQ(dn)) + toBigInt(gy)) + toBigInt(gz))]
985- let gF = cB(gE)
986- let dZ = if ((gF >= eu))
976+ let gE = gD._1
977+ let gx = gD._2
978+ let bk = bc()
979+ let dn = bk[w]
980+ let do = bk[x]
981+ let cD = [toBigInt(bR(dn)), toBigInt(bR(do))]
982+ let ex = cC(cD)
983+ let eF = gv(gw, ex, toBigInt(gB))
984+ let gF = ((toBigInt(bR(gE)) - eF) - toBigInt(1))
985+ let gG = max([0, toInt(gF)])
986+ let gH = if ((gw == false))
987+ then [((toBigInt(bR(dn)) + toBigInt(gB)) + toBigInt(gC)), (toBigInt(bR(do)) - gF)]
988+ else [(toBigInt(bR(dn)) - gF), ((toBigInt(bR(do)) + toBigInt(gB)) + toBigInt(gC))]
989+ let gI = cC(gH)
990+ let ec = if ((gI >= ex))
987991 then true
988- else throw(makeString(["new D is fewer error", toString(eu), toString(gF)], "__"))
989- if ((dZ == dZ))
990- then $Tuple2(nil, gD)
992+ else throw(makeString(["new D is fewer error", toString(ex), toString(gI)], "__"))
993+ if ((ec == ec))
994+ then $Tuple2(nil, gG)
991995 else throw("Strict value is not equal to itself.")
992996 }
993997
994998
995999
996-@Callable(cS)
997-func calculateAmountOutForSwapAndSendTokens (gy,gt,gG,gH,gz) = {
998- let gI = {
999- let aX = invoke(aV, "getSwapContractREADONLY", nil, nil)
1000- if ($isInstanceOf(aX, "String"))
1001- then aX
1002- else throw(($getType(aX) + " couldn't be cast to String"))
1000+@Callable(cT)
1001+func calculateAmountOutForSwapAndSendTokens (gB,gw,gJ,gK,gC) = {
1002+ let gL = {
1003+ let aW = invoke(aU, "getSwapContractREADONLY", nil, nil)
1004+ if ($isInstanceOf(aW, "String"))
1005+ then aW
1006+ else throw(($getType(aW) + " couldn't be cast to String"))
10031007 }
1004- let gJ = [if ((value(cS.payments[0]).amount >= gy))
1008+ let gM = [if ((value(cT.payments[0]).amount >= gB))
10051009 then true
1006- else aS("Wrong amount"), if ((cS.caller == addressFromStringValue(gI)))
1010+ else aR("Wrong amount"), if ((cT.caller == addressFromStringValue(gL)))
10071011 then true
1008- else aS("Permission denied")]
1009- if ((gJ == gJ))
1012+ else aR("Permission denied")]
1013+ if ((gM == gM))
10101014 then {
1011- let fl = value(cS.payments[0])
1012- let gK = bj(fl.assetId)
1013- let gL = if ((gt == false))
1015+ let fo = value(cT.payments[0])
1016+ let gN = bi(fo.assetId)
1017+ let gO = if ((gw == false))
10141018 then {
1015- let gB = aO(this, al())
1016- let gu = (bQ(gK) - value(cS.payments[0]).amount)
1017- $Tuple2(gB, gu)
1019+ let gE = aN(this, ak())
1020+ let gx = (bR(gN) - value(cT.payments[0]).amount)
1021+ $Tuple2(gE, gx)
10181022 }
10191023 else {
1020- let gB = aO(this, ak())
1021- let gu = (bQ(gK) - value(cS.payments[0]).amount)
1022- $Tuple2(gB, gu)
1024+ let gE = aN(this, aj())
1025+ let gx = (bR(gN) - value(cT.payments[0]).amount)
1026+ $Tuple2(gE, gx)
10231027 }
1024- let gB = gL._1
1025- let gu = gL._2
1026- let bl = bd()
1027- let dm = bl[x]
1028- let dn = bl[y]
1029- let cC = if ((gt == false))
1030- then [(toBigInt(bQ(dm)) - toBigInt(value(cS.payments[0]).amount)), toBigInt(bQ(dn))]
1031- else [toBigInt(bQ(dm)), (toBigInt(bQ(dn)) - toBigInt(value(cS.payments[0]).amount))]
1032- let eu = cB(cC)
1033- let eC = gs(gt, eu, toBigInt(0))
1034- let gC = ((toBigInt(bQ(gB)) - eC) - toBigInt(1))
1035- let gD = max([0, toInt(gC)])
1036- let gM = if ((gD >= gG))
1028+ let gE = gO._1
1029+ let gx = gO._2
1030+ let bk = bc()
1031+ let dn = bk[w]
1032+ let do = bk[x]
1033+ let cD = if ((gw == false))
1034+ then [(toBigInt(bR(dn)) - toBigInt(value(cT.payments[0]).amount)), toBigInt(bR(do))]
1035+ else [toBigInt(bR(dn)), (toBigInt(bR(do)) - toBigInt(value(cT.payments[0]).amount))]
1036+ let ex = cC(cD)
1037+ let eF = gv(gw, ex, toBigInt(0))
1038+ let gF = ((toBigInt(bR(gE)) - eF) - toBigInt(1))
1039+ let gG = max([0, toInt(gF)])
1040+ let gP = if ((gG >= gJ))
10371041 then true
10381042 else throw("Exchange result is fewer coins than expected")
1039- if ((gM == gM))
1043+ if ((gP == gP))
10401044 then {
1041- let gE = if ((gt == false))
1042- then [(toBigInt(bQ(dm)) + toBigInt(gz)), (toBigInt(bQ(dn)) - gC)]
1043- else [(toBigInt(bQ(dm)) - gC), (toBigInt(bQ(dn)) + toBigInt(gz))]
1044- let gF = cB(gE)
1045- let dZ = if ((gF >= eu))
1045+ let gH = if ((gw == false))
1046+ then [(toBigInt(bR(dn)) + toBigInt(gC)), (toBigInt(bR(do)) - gF)]
1047+ else [(toBigInt(bR(dn)) - gF), (toBigInt(bR(do)) + toBigInt(gC))]
1048+ let gI = cC(gH)
1049+ let ec = if ((gI >= ex))
10461050 then true
10471051 else throw("new D is fewer error")
1048- if ((dZ == dZ))
1049- then $Tuple2([ScriptTransfer(addressFromStringValue(gH), gD, bh(gB))], gD)
1052+ if ((ec == ec))
1053+ then $Tuple2([ScriptTransfer(addressFromStringValue(gK), gG, bg(gE))], gG)
10501054 else throw("Strict value is not equal to itself.")
10511055 }
10521056 else throw("Strict value is not equal to itself.")
10561060
10571061
10581062
1059-@Callable(cS)
1060-func constructor (Z) = {
1061- let ey = gr(cS)
1062- if ((ey == ey))
1063- then [StringEntry(Z(), Z)]
1063+@Callable(cT)
1064+func constructor (Y) = {
1065+ let eB = gu(cT)
1066+ if ((eB == eB))
1067+ then [StringEntry(Y(), Y)]
10641068 else throw("Strict value is not equal to itself.")
10651069 }
10661070
10671071
10681072
1069-@Callable(cS)
1070-func setManager (gN) = {
1071- let ey = gr(cS)
1072- if ((ey == ey))
1073+@Callable(cT)
1074+func setManager (gQ) = {
1075+ let eB = gu(cT)
1076+ if ((eB == eB))
10731077 then {
1074- let gO = fromBase58String(gN)
1075- if ((gO == gO))
1076- then [StringEntry(ab(), gN)]
1078+ let gR = fromBase58String(gQ)
1079+ if ((gR == gR))
1080+ then [StringEntry(aa(), gQ)]
10771081 else throw("Strict value is not equal to itself.")
10781082 }
10791083 else throw("Strict value is not equal to itself.")
10811085
10821086
10831087
1084-@Callable(cS)
1088+@Callable(cT)
10851089 func confirmManager () = {
1086- let cx = gn()
1087- let gP = if (isDefined(cx))
1090+ let cy = gq()
1091+ let gS = if (isDefined(cy))
10881092 then true
10891093 else throw("No pending manager")
1090- if ((gP == gP))
1094+ if ((gS == gS))
10911095 then {
1092- let gQ = if ((cS.callerPublicKey == value(cx)))
1096+ let gT = if ((cT.callerPublicKey == value(cy)))
10931097 then true
10941098 else throw("You are not pending manager")
1095- if ((gQ == gQ))
1096- then [StringEntry(aa(), toBase58String(value(cx))), DeleteEntry(ab())]
1099+ if ((gT == gT))
1100+ then [StringEntry(Z(), toBase58String(value(cy))), DeleteEntry(aa())]
10971101 else throw("Strict value is not equal to itself.")
10981102 }
10991103 else throw("Strict value is not equal to itself.")
11011105
11021106
11031107
1104-@Callable(cS)
1105-func put (gR,gS) = {
1106- let gT = bv()
1107- let gU = valueOrErrorMessage(addressFromString(gT[D]), "Wr st addr")
1108- let gV = valueOrErrorMessage(addressFromString(gT[F]), "Wr sl addr")
1109- if ((0 > gR))
1108+@Callable(cT)
1109+func put (gU,gV) = {
1110+ let gW = bw()
1111+ let gX = valueOrErrorMessage(addressFromString(gW[C]), "Wr st addr")
1112+ let gY = valueOrErrorMessage(addressFromString(gW[E]), "Wr sl addr")
1113+ if ((0 > gU))
11101114 then throw("Wrong slippage")
1111- else if ((size(cS.payments) != 2))
1115+ else if ((size(cT.payments) != 2))
11121116 then throw("2 pmnts expd")
11131117 else {
1114- let gW = toBigInt(value(cS.payments[0]).amount)
1115- let gX = toBigInt(value(cS.payments[1]).amount)
1116- let eP = (toBigInt(bQ(bj(br))) - gW)
1117- if ((eP == eP))
1118+ let gZ = toBigInt(value(cT.payments[0]).amount)
1119+ let ha = toBigInt(value(cT.payments[1]).amount)
1120+ let eS = (toBigInt(bR(bi(bq))) - gZ)
1121+ if ((eS == eS))
11181122 then {
1119- let eQ = (toBigInt(bQ(bj(bs))) - gX)
1120- if ((eQ == eQ))
1123+ let eT = (toBigInt(bR(bi(br))) - ha)
1124+ if ((eT == eT))
11211125 then {
1122- let eR = toBigInt(value(assetInfo(bq)).quantity)
1123- if ((eR == eR))
1126+ let eU = toBigInt(value(assetInfo(bp)).quantity)
1127+ if ((eU == eU))
11241128 then {
1125- let eS = eL(gW, gX, toBigInt(0))
1126- if ((eS == eS))
1129+ let eV = eO(gZ, ha, toBigInt(0))
1130+ if ((eV == eV))
11271131 then {
1128- let gY = fm(toString(cS.caller), toBase58String(cS.transactionId), AttachedPayment(value(cS.payments[0]).assetId, value(cS.payments[0]).amount), cS.payments[1], gR, true, false, true, 0, "")
1129- let em = gY._2
1130- let gZ = gY._7
1131- let dE = gY._9
1132- let en = gY._10
1133- let eo = gY._11
1134- let dm = gY._12
1135- let dn = gY._13
1136- let dY = invoke(aV, "emit", [em], nil)
1137- if ((dY == dY))
1132+ let hb = fp(toString(cT.caller), toBase58String(cT.transactionId), AttachedPayment(value(cT.payments[0]).assetId, value(cT.payments[0]).amount), cT.payments[1], gU, true, false, true, 0, "")
1133+ let ep = hb._2
1134+ let hc = hb._7
1135+ let dF = hb._9
1136+ let eq = hb._10
1137+ let er = hb._11
1138+ let dn = hb._12
1139+ let do = hb._13
1140+ let eb = invoke(aU, "emit", [ep], nil)
1141+ if ((eb == eb))
11381142 then {
1139- let ha = {
1140- let gm = dY
1141- if ($isInstanceOf(gm, "Address"))
1143+ let hd = {
1144+ let gp = eb
1145+ if ($isInstanceOf(gp, "Address"))
11421146 then {
1143- let hb = gm
1144- invoke(hb, "emit", [em], nil)
1147+ let he = gp
1148+ invoke(he, "emit", [ep], nil)
11451149 }
11461150 else unit
11471151 }
1148- if ((ha == ha))
1152+ if ((hd == hd))
11491153 then {
1150- let hc = if ((en > 0))
1151- then invoke(gV, "put", nil, [AttachedPayment(dm, en)])
1154+ let hf = if ((eq > 0))
1155+ then invoke(gY, "put", nil, [AttachedPayment(dn, eq)])
11521156 else nil
1153- if ((hc == hc))
1157+ if ((hf == hf))
11541158 then {
1155- let hd = if ((eo > 0))
1156- then invoke(gV, "put", nil, [AttachedPayment(dn, eo)])
1159+ let hg = if ((er > 0))
1160+ then invoke(gY, "put", nil, [AttachedPayment(do, er)])
11571161 else nil
1158- if ((hd == hd))
1162+ if ((hg == hg))
11591163 then {
1160- let he = if (gS)
1164+ let hh = if (gV)
11611165 then {
1162- let hf = invoke(gU, "stake", nil, [AttachedPayment(gZ, em)])
1163- if ((hf == hf))
1166+ let hi = invoke(gX, "stake", nil, [AttachedPayment(hc, ep)])
1167+ if ((hi == hi))
11641168 then nil
11651169 else throw("Strict value is not equal to itself.")
11661170 }
1167- else [ScriptTransfer(cS.caller, em, gZ)]
1168- let hg = eT(0, 0, 0)
1169- let gj = hg._1
1170- let eK = hg._2
1171- let hh = if ((eK >= eS))
1171+ else [ScriptTransfer(cT.caller, ep, hc)]
1172+ let hj = eW(0, 0, 0)
1173+ let gm = hj._1
1174+ let eN = hj._2
1175+ let hk = if ((eN >= eV))
11721176 then true
1173- else aS(makeString(["updated DLp lower than current DLp", toString(eP), toString(eQ), toString(eR), toString(eS), toString(eK), toString(en), toString(eo)], " "))
1174- if ((hh == hh))
1177+ else aR(makeString(["updated DLp lower than current DLp", toString(eS), toString(eT), toString(eU), toString(eV), toString(eN), toString(eq), toString(er)], " "))
1178+ if ((hk == hk))
11751179 then {
1176- let hi = value(assetInfo(bq)).quantity
1177- if ((hi == hi))
1178- then ((dE ++ he) ++ gj)
1180+ let hl = value(assetInfo(bp)).quantity
1181+ if ((hl == hl))
1182+ then ((dF ++ hh) ++ gm)
11791183 else throw("Strict value is not equal to itself.")
11801184 }
11811185 else throw("Strict value is not equal to itself.")
12001204
12011205
12021206
1203-@Callable(cS)
1204-func putOneTknV2 (fN,gS) = {
1205- let hj = {
1206- let aX = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1207- if ($isInstanceOf(aX, "Boolean"))
1208- then aX
1209- else throw(($getType(aX) + " couldn't be cast to Boolean"))
1207+@Callable(cT)
1208+func putOneTknV2 (fQ,gV) = {
1209+ let hm = {
1210+ let aW = invoke(aU, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1211+ if ($isInstanceOf(aW, "Boolean"))
1212+ then aW
1213+ else throw(($getType(aW) + " couldn't be cast to Boolean"))
12101214 }
1211- let hk = if (if (if (ba())
1215+ let hn = if (if (if (aZ())
12121216 then true
1213- else (bp == r))
1217+ else (bo == q))
12141218 then true
1215- else (bp == t))
1219+ else (bo == s))
12161220 then true
1217- else hj
1218- let gJ = [if (if (!(hk))
1221+ else hm
1222+ let gM = [if (if (!(hn))
12191223 then true
1220- else gp(cS))
1224+ else gs(cT))
12211225 then true
1222- else aS("put operation is blocked by admin"), if ((size(cS.payments) == 1))
1226+ else aR("put operation is blocked by admin"), if ((size(cT.payments) == 1))
12231227 then true
1224- else aS("exactly 1 payment are expected")]
1225- if ((gJ == gJ))
1228+ else aR("exactly 1 payment are expected")]
1229+ if ((gM == gM))
12261230 then {
1227- let dm = toBase58String(value(br))
1228- let dn = toBase58String(value(bs))
1229- let dl = bq
1230- let fR = bt
1231- let fS = bu
1232- let dk = if ((cS.caller == this))
1233- then cS.originCaller
1234- else cS.caller
1235- let fl = value(cS.payments[0])
1236- let di = toBase58String(value(fl.assetId))
1237- let dO = fl.amount
1238- let eS = if ((fl.assetId == br))
1239- then eL(toBigInt(dO), toBigInt(0), toBigInt(0))
1240- else eL(toBigInt(0), toBigInt(dO), toBigInt(0))
1241- if ((eS == eS))
1231+ let dn = toBase58String(value(bq))
1232+ let do = toBase58String(value(br))
1233+ let dm = bp
1234+ let fU = bs
1235+ let fV = bt
1236+ let dl = if ((cT.caller == this))
1237+ then cT.originCaller
1238+ else cT.caller
1239+ let fo = value(cT.payments[0])
1240+ let dj = toBase58String(value(fo.assetId))
1241+ let dP = fo.amount
1242+ let eV = if ((fo.assetId == bq))
1243+ then eO(toBigInt(dP), toBigInt(0), toBigInt(0))
1244+ else eO(toBigInt(0), toBigInt(dP), toBigInt(0))
1245+ if ((eV == eV))
12421246 then {
1243- let hl = fq(dO, di, toString(dk), toBase58String(cS.transactionId), true)
1244- if ((hl == hl))
1247+ let ho = ft(dP, dj, toString(dl), toBase58String(cT.transactionId), true)
1248+ if ((ho == ho))
12451249 then {
1246- let cA = hl._3
1247- let dE = hl._2
1248- let hm = hl._1
1249- let em = if (if ((fN > 0))
1250- then (fN > hm)
1250+ let cB = ho._3
1251+ let dF = ho._2
1252+ let hp = ho._1
1253+ let ep = if (if ((fQ > 0))
1254+ then (fQ > hp)
12511255 else false)
1252- then aS(makeString(["amount to receive is less than ", toString(fN)], ""))
1253- else hm
1254- let gY = invoke(aV, "emit", [em], nil)
1255- if ((gY == gY))
1256+ then aR(makeString(["amount to receive is less than ", toString(fQ)], ""))
1257+ else hp
1258+ let hb = invoke(aU, "emit", [ep], nil)
1259+ if ((hb == hb))
12561260 then {
1257- let ha = {
1258- let gm = gY
1259- if ($isInstanceOf(gm, "Address"))
1261+ let hd = {
1262+ let gp = hb
1263+ if ($isInstanceOf(gp, "Address"))
12601264 then {
1261- let hb = gm
1262- invoke(hb, "emit", [em], nil)
1265+ let he = gp
1266+ invoke(he, "emit", [ep], nil)
12631267 }
12641268 else unit
12651269 }
1266- if ((ha == ha))
1270+ if ((hd == hd))
12671271 then {
1268- let he = if (gS)
1272+ let hh = if (gV)
12691273 then {
1270- let hf = invoke(bx, "stakeFor", [toString(cS.caller)], [AttachedPayment(dl, em)])
1271- if ((hf == hf))
1274+ let hi = invoke(by, "stakeFor", [toString(cT.caller)], [AttachedPayment(dm, ep)])
1275+ if ((hi == hi))
12721276 then nil
12731277 else throw("Strict value is not equal to itself.")
12741278 }
1275- else [ScriptTransfer(cS.caller, em, dl)]
1276- let gd = if ((cA > 0))
1277- then [ScriptTransfer(bc, cA, fromBase58String(di))]
1279+ else [ScriptTransfer(cT.caller, ep, dm)]
1280+ let gg = if ((cB > 0))
1281+ then [ScriptTransfer(bb, cB, fromBase58String(dj))]
12781282 else nil
1279- let hn = if ((this == bc))
1283+ let hq = if ((this == bb))
12801284 then $Tuple2(0, 0)
12811285 else {
1282- let ho = if ((fl.assetId == br))
1286+ let hr = if ((fo.assetId == bq))
12831287 then true
12841288 else false
1285- if (ho)
1286- then $Tuple2(-(cA), 0)
1287- else $Tuple2(0, -(cA))
1289+ if (hr)
1290+ then $Tuple2(-(cB), 0)
1291+ else $Tuple2(0, -(cB))
12881292 }
1289- let eU = hn._1
1290- let eV = hn._2
1291- let hp = eT(eU, eV, 0)
1292- let gj = hp._1
1293- let eK = hp._2
1294- let gk = eX(eS, eK)
1295- if ((gk == gk))
1296- then $Tuple2((((dE ++ he) ++ gd) ++ gj), em)
1293+ let eX = hq._1
1294+ let eY = hq._2
1295+ let hs = eW(eX, eY, 0)
1296+ let gm = hs._1
1297+ let eN = hs._2
1298+ let gn = fa(eV, eN)
1299+ if ((gn == gn))
1300+ then $Tuple2((((dF ++ hh) ++ gg) ++ gm), ep)
12971301 else throw("Strict value is not equal to itself.")
12981302 }
12991303 else throw("Strict value is not equal to itself.")
13091313
13101314
13111315
1312-@Callable(cS)
1313-func putForFree (hq) = if ((0 > hq))
1316+@Callable(cT)
1317+func putForFree (ht) = if ((0 > ht))
13141318 then throw("Wrong slpg")
1315- else if ((size(cS.payments) != 2))
1319+ else if ((size(cT.payments) != 2))
13161320 then throw("2 pmnts expd")
13171321 else {
1318- let hr = fm(toString(cS.caller), toBase58String(cS.transactionId), AttachedPayment(value(cS.payments[0]).assetId, value(cS.payments[0]).amount), cS.payments[1], hq, false, false, true, 0, "")
1319- let dE = hr._9
1320- let gW = toBigInt(value(cS.payments[0]).amount)
1321- let gX = toBigInt(value(cS.payments[1]).amount)
1322- let eS = eL(gW, gX, toBigInt(0))
1323- if ((eS == eS))
1322+ let hu = fp(toString(cT.caller), toBase58String(cT.transactionId), AttachedPayment(value(cT.payments[0]).assetId, value(cT.payments[0]).amount), cT.payments[1], ht, false, false, true, 0, "")
1323+ let dF = hu._9
1324+ let gZ = toBigInt(value(cT.payments[0]).amount)
1325+ let ha = toBigInt(value(cT.payments[1]).amount)
1326+ let eV = eO(gZ, ha, toBigInt(0))
1327+ if ((eV == eV))
13241328 then {
1325- let hs = eT(0, 0, 0)
1326- let gj = hs._1
1327- let eK = hs._2
1328- let gk = eX(eS, eK)
1329- if ((gk == gk))
1330- then (dE ++ gj)
1329+ let hv = eW(0, 0, 0)
1330+ let gm = hv._1
1331+ let eN = hv._2
1332+ let gn = fa(eV, eN)
1333+ if ((gn == gn))
1334+ then (dF ++ gm)
13311335 else throw("Strict value is not equal to itself.")
13321336 }
13331337 else throw("Strict value is not equal to itself.")
13351339
13361340
13371341
1338-@Callable(cS)
1342+@Callable(cT)
13391343 func get () = {
1340- let eS = eL(toBigInt(0), toBigInt(0), toBigInt(0))
1341- if ((eS == eS))
1344+ let eV = eO(toBigInt(0), toBigInt(0), toBigInt(0))
1345+ if ((eV == eV))
13421346 then {
1343- let dY = fk(cS)
1344- let ht = dY._1
1345- let dD = dY._2
1346- let dO = dY._3
1347- let di = dY._4
1348- let dE = dY._5
1349- let ez = invoke(aV, "burn", [dO], [AttachedPayment(di, dO)])
1350- if ((ez == ez))
1347+ let eb = fn(cT)
1348+ let hw = eb._1
1349+ let dE = eb._2
1350+ let dP = eb._3
1351+ let dj = eb._4
1352+ let dF = eb._5
1353+ let eC = invoke(aU, "burn", [dP], [AttachedPayment(dj, dP)])
1354+ if ((eC == eC))
13511355 then {
1352- let hu = eT(-(ht), -(dD), 0)
1353- let gj = hu._1
1354- let eK = hu._2
1355- let gk = eX(eS, eK)
1356- if ((gk == gk))
1357- then (dE ++ gj)
1356+ let hx = eW(-(hw), -(dE), 0)
1357+ let gm = hx._1
1358+ let eN = hx._2
1359+ let gn = fa(eV, eN)
1360+ if ((gn == gn))
1361+ then (dF ++ gm)
13581362 else throw("Strict value is not equal to itself.")
13591363 }
13601364 else throw("Strict value is not equal to itself.")
13641368
13651369
13661370
1367-@Callable(cS)
1368-func getOneTknV2 (fM,fN) = {
1369- let hj = {
1370- let aX = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1371- if ($isInstanceOf(aX, "Boolean"))
1372- then aX
1373- else throw(($getType(aX) + " couldn't be cast to Boolean"))
1371+@Callable(cT)
1372+func getOneTknV2 (fP,fQ) = {
1373+ let hm = {
1374+ let aW = invoke(aU, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1375+ if ($isInstanceOf(aW, "Boolean"))
1376+ then aW
1377+ else throw(($getType(aW) + " couldn't be cast to Boolean"))
13741378 }
1375- let hv = if (if (ba())
1379+ let hy = if (if (aZ())
13761380 then true
1377- else (bp == t))
1381+ else (bo == s))
13781382 then true
1379- else hj
1380- let gJ = [if (if (!(hv))
1383+ else hm
1384+ let gM = [if (if (!(hy))
13811385 then true
1382- else gp(cS))
1386+ else gs(cT))
13831387 then true
1384- else aS("get operation is blocked by admin"), if ((size(cS.payments) == 1))
1388+ else aR("get operation is blocked by admin"), if ((size(cT.payments) == 1))
13851389 then true
1386- else aS("exactly 1 payment are expected")]
1387- if ((gJ == gJ))
1390+ else aR("exactly 1 payment are expected")]
1391+ if ((gM == gM))
13881392 then {
1389- let hw = fL(fM, fN, cS.payments, cS.caller, cS.originCaller, cS.transactionId)
1390- let dE = hw._1
1391- let fW = hw._2
1392- $Tuple2(dE, fW)
1393+ let hz = fO(fP, fQ, cT.payments, cT.caller, cT.originCaller, cT.transactionId)
1394+ let dF = hz._1
1395+ let fZ = hz._2
1396+ $Tuple2(dF, fZ)
13931397 }
13941398 else throw("Strict value is not equal to itself.")
13951399 }
13961400
13971401
13981402
1399-@Callable(cS)
1403+@Callable(cT)
14001404 func refreshDLp () = {
1401- let hx = valueOrElse(getInteger(at), 0)
1402- let hy = if (((height - hx) >= aw))
1405+ let hA = valueOrElse(getInteger(as), 0)
1406+ let hB = if (((height - hA) >= av))
14031407 then unit
1404- else aS(makeString([toString(aw), " blocks have not passed since the previous call"], ""))
1405- if ((hy == hy))
1408+ else aR(makeString([toString(av), " blocks have not passed since the previous call"], ""))
1409+ if ((hB == hB))
14061410 then {
1407- let fe = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, as), "0")), aU("invalid dLp"))
1408- let hz = eT(0, 0, 0)
1409- let hA = hz._1
1410- let eK = hz._2
1411- let eW = if ((fe != eK))
1412- then hA
1413- else aS("nothing to refresh")
1414- $Tuple2(eW, toString(eK))
1411+ let fh = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, ar), "0")), aT("invalid dLp"))
1412+ let hC = eW(0, 0, 0)
1413+ let hD = hC._1
1414+ let eN = hC._2
1415+ let eZ = if ((fh != eN))
1416+ then hD
1417+ else aR("nothing to refresh")
1418+ $Tuple2(eZ, toString(eN))
14151419 }
14161420 else throw("Strict value is not equal to itself.")
14171421 }
14181422
14191423
14201424
1421-@Callable(cS)
1422-func getOneTknV2READONLY (fM,hB) = {
1423- let dm = toBase58String(value(br))
1424- let dn = toBase58String(value(bs))
1425- let dl = toBase58String(value(bq))
1426- let cC = [toBigInt(bQ(dm)), toBigInt(bQ(dn))]
1427- let eJ = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(dl)), "invalid lp asset").quantity)
1428- let ce = cB(cC)
1429- let cd = (ce - fraction(toBigInt(hB), ce, eJ))
1430- let hC = if ((fM == dm))
1425+@Callable(cT)
1426+func getOneTknV2READONLY (fP,hE) = {
1427+ let dn = toBase58String(value(bq))
1428+ let do = toBase58String(value(br))
1429+ let dm = toBase58String(value(bp))
1430+ let cD = [toBigInt(bR(dn)), toBigInt(bR(do))]
1431+ let eM = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(dm)), "invalid lp asset").quantity)
1432+ let cf = cC(cD)
1433+ let ce = (cf - fraction(toBigInt(hE), cf, eM))
1434+ let hF = if ((fP == dn))
14311435 then 0
1432- else if ((fM == dn))
1436+ else if ((fP == do))
14331437 then 1
14341438 else throw("invalid out asset id")
1435- let hD = et(cC, hC, cd)
1436- let gC = (cC[hC] - hD)
1437- let gD = max([0, toInt((gC - f))])
1438- let hE = cy(gD, aY)
1439- let fV = hE._1
1440- let cA = hE._2
1441- $Tuple2(nil, $Tuple2(fV, cA))
1439+ let hG = ew(cD, hF, ce)
1440+ let gF = (cD[hF] - hG)
1441+ let gG = max([0, toInt((gF - f))])
1442+ let hH = cz(gG, aX)
1443+ let fY = hH._1
1444+ let cB = hH._2
1445+ $Tuple2(nil, $Tuple2(fY, cB))
14421446 }
14431447
14441448
14451449
1446-@Callable(cS)
1447-func getOneTknV2WithBonusREADONLY (fM,hB) = {
1448- let dm = toBase58String(value(br))
1449- let dn = toBase58String(value(bs))
1450- let dl = toBase58String(value(bq))
1451- let ds = bQ(dm)
1452- let du = bQ(dn)
1453- let hF = {
1454- let aX = invoke(this, "getOneTknV2READONLY", [fM, hB], nil)
1455- if ($isInstanceOf(aX, "(Int, Int)"))
1456- then aX
1457- else throw(($getType(aX) + " couldn't be cast to (Int, Int)"))
1450+@Callable(cT)
1451+func getOneTknV2WithBonusREADONLY (fP,hE) = {
1452+ let dn = toBase58String(value(bq))
1453+ let do = toBase58String(value(br))
1454+ let dm = toBase58String(value(bp))
1455+ let dt = bR(dn)
1456+ let dv = bR(do)
1457+ let hI = {
1458+ let aW = invoke(this, "getOneTknV2READONLY", [fP, hE], nil)
1459+ if ($isInstanceOf(aW, "(Int, Int)"))
1460+ then aW
1461+ else throw(($getType(aW) + " couldn't be cast to (Int, Int)"))
14581462 }
1459- let fV = hF._1
1460- let cA = hF._2
1461- let dY = dg("", dl, hB, this)
1462- let dC = dY._1
1463- let dD = dY._2
1464- let hG = (dC + dD)
1465- let fK = if ((hG == 0))
1466- then if ((fV == 0))
1463+ let fY = hI._1
1464+ let cB = hI._2
1465+ let eb = dh("", dm, hE, this)
1466+ let dD = eb._1
1467+ let dE = eb._2
1468+ let hJ = (dD + dE)
1469+ let fN = if ((hJ == 0))
1470+ then if ((fY == 0))
14671471 then 0
14681472 else throw("bonus calculation error")
1469- else fraction((fV - hG), a, hG)
1470- $Tuple2(nil, $Tuple3(fV, cA, fK))
1473+ else fraction((fY - hJ), a, hJ)
1474+ $Tuple2(nil, $Tuple3(fY, cB, fN))
14711475 }
14721476
14731477
14741478
1475-@Callable(cS)
1476-func getNoLess (hH,hI) = {
1477- let dY = fk(cS)
1478- let dC = dY._1
1479- let dD = dY._2
1480- let dO = dY._3
1481- let di = dY._4
1482- let dE = dY._5
1483- if ((hH > dC))
1484- then throw(((("Failed: " + toString(dC)) + " < ") + toString(hH)))
1485- else if ((hI > dD))
1486- then throw(((("Failed: " + toString(dD)) + " < ") + toString(hI)))
1479+@Callable(cT)
1480+func getNoLess (hK,hL) = {
1481+ let eb = fn(cT)
1482+ let dD = eb._1
1483+ let dE = eb._2
1484+ let dP = eb._3
1485+ let dj = eb._4
1486+ let dF = eb._5
1487+ if ((hK > dD))
1488+ then throw(((("Failed: " + toString(dD)) + " < ") + toString(hK)))
1489+ else if ((hL > dE))
1490+ then throw(((("Failed: " + toString(dE)) + " < ") + toString(hL)))
14871491 else {
1488- let eS = eL(toBigInt(0), toBigInt(0), toBigInt(0))
1489- if ((eS == eS))
1492+ let eV = eO(toBigInt(0), toBigInt(0), toBigInt(0))
1493+ if ((eV == eV))
14901494 then {
1491- let hJ = invoke(aV, "burn", [dO], [AttachedPayment(di, dO)])
1492- if ((hJ == hJ))
1495+ let hM = invoke(aU, "burn", [dP], [AttachedPayment(dj, dP)])
1496+ if ((hM == hM))
14931497 then {
1494- let hK = eT(-(dC), -(dD), 0)
1495- let gj = hK._1
1496- let eK = hK._2
1497- let gk = eX(eS, eK)
1498- if ((gk == gk))
1499- then (dE ++ gj)
1498+ let hN = eW(-(dD), -(dE), 0)
1499+ let gm = hN._1
1500+ let eN = hN._2
1501+ let gn = fa(eV, eN)
1502+ if ((gn == gn))
1503+ then (dF ++ gm)
15001504 else throw("Strict value is not equal to itself.")
15011505 }
15021506 else throw("Strict value is not equal to itself.")
15071511
15081512
15091513
1510-@Callable(cS)
1511-func unstakeAndGet (cz) = {
1512- let hL = if ((size(cS.payments) != 0))
1514+@Callable(cT)
1515+func unstakeAndGet (cA) = {
1516+ let hO = if ((size(cT.payments) != 0))
15131517 then throw("No pmnts expd")
15141518 else true
1515- if ((hL == hL))
1519+ if ((hO == hO))
15161520 then {
1517- let hM = bv()
1518- let gZ = bq
1519- let hN = valueOrErrorMessage(addressFromString(hM[D]), "Wr st addr")
1520- let eS = eL(toBigInt(0), toBigInt(0), toBigInt(0))
1521- if ((eS == eS))
1521+ let hP = bw()
1522+ let hc = bp
1523+ let hQ = valueOrErrorMessage(addressFromString(hP[C]), "Wr st addr")
1524+ let eV = eO(toBigInt(0), toBigInt(0), toBigInt(0))
1525+ if ((eV == eV))
15221526 then {
1523- let hO = invoke(hN, "unstake", [toBase58String(gZ), cz], nil)
1524- if ((hO == hO))
1527+ let hR = invoke(hQ, "unstake", [toBase58String(hc), cA], nil)
1528+ if ((hR == hR))
15251529 then {
1526- let dY = dg(toBase58String(cS.transactionId), toBase58String(gZ), cz, cS.caller)
1527- let dC = dY._1
1528- let dD = dY._2
1529- let dq = parseIntValue(dY._9)
1530- let dE = dY._10
1531- let hP = if (if (ba())
1530+ let eb = dh(toBase58String(cT.transactionId), toBase58String(hc), cA, cT.caller)
1531+ let dD = eb._1
1532+ let dE = eb._2
1533+ let dr = parseIntValue(eb._9)
1534+ let dF = eb._10
1535+ let hS = if (if (aZ())
15321536 then true
1533- else (dq == t))
1534- then throw(("Blocked: " + toString(dq)))
1537+ else (dr == s))
1538+ then throw(("Blocked: " + toString(dr)))
15351539 else true
1536- if ((hP == hP))
1540+ if ((hS == hS))
15371541 then {
1538- let hQ = invoke(aV, "burn", [cz], [AttachedPayment(gZ, cz)])
1539- if ((hQ == hQ))
1542+ let hT = invoke(aU, "burn", [cA], [AttachedPayment(hc, cA)])
1543+ if ((hT == hT))
15401544 then {
1541- let hR = eT(-(dC), -(dD), 0)
1542- let gj = hR._1
1543- let eK = hR._2
1544- let gk = eX(eS, eK)
1545- if ((gk == gk))
1546- then (dE ++ gj)
1545+ let hU = eW(-(dD), -(dE), 0)
1546+ let gm = hU._1
1547+ let eN = hU._2
1548+ let gn = fa(eV, eN)
1549+ if ((gn == gn))
1550+ then (dF ++ gm)
15471551 else throw("Strict value is not equal to itself.")
15481552 }
15491553 else throw("Strict value is not equal to itself.")
15591563
15601564
15611565
1562-@Callable(cS)
1563-func unstakeAndGetNoLess (hS,hT,hI) = {
1564- let hv = if (ba())
1566+@Callable(cT)
1567+func unstakeAndGetNoLess (hV,hW,hL) = {
1568+ let hy = if (aZ())
15651569 then true
1566- else (bp == t)
1567- let gJ = [if (!(hv))
1570+ else (bo == s)
1571+ let gM = [if (!(hy))
15681572 then true
1569- else throw("get operation is blocked by admin"), if ((size(cS.payments) == 0))
1573+ else throw("get operation is blocked by admin"), if ((size(cT.payments) == 0))
15701574 then true
15711575 else throw("no payments are expected")]
1572- if ((gJ == gJ))
1576+ if ((gM == gM))
15731577 then {
1574- let eS = eL(toBigInt(0), toBigInt(0), toBigInt(0))
1575- if ((eS == eS))
1578+ let eV = eO(toBigInt(0), toBigInt(0), toBigInt(0))
1579+ if ((eV == eV))
15761580 then {
1577- let hO = invoke(bx, "unstake", [toBase58String(bq), hS], nil)
1578- if ((hO == hO))
1581+ let hR = invoke(by, "unstake", [toBase58String(bp), hV], nil)
1582+ if ((hR == hR))
15791583 then {
1580- let hU = dg(toBase58String(cS.transactionId), toBase58String(bq), hS, cS.caller)
1581- let dC = hU._1
1582- let dD = hU._2
1583- let dE = hU._10
1584- let hV = [if ((dC >= hT))
1584+ let hX = dh(toBase58String(cT.transactionId), toBase58String(bp), hV, cT.caller)
1585+ let dD = hX._1
1586+ let dE = hX._2
1587+ let dF = hX._10
1588+ let hY = [if ((dD >= hW))
15851589 then true
1586- else throw(makeString(["amount asset amount to receive is less than ", toString(hT)], "")), if ((dD >= hI))
1590+ else throw(makeString(["amount asset amount to receive is less than ", toString(hW)], "")), if ((dE >= hL))
15871591 then true
1588- else throw(makeString(["price asset amount to receive is less than ", toString(hI)], ""))]
1589- if ((hV == hV))
1592+ else throw(makeString(["price asset amount to receive is less than ", toString(hL)], ""))]
1593+ if ((hY == hY))
15901594 then {
1591- let hJ = invoke(aV, "burn", [hS], [AttachedPayment(bq, hS)])
1592- if ((hJ == hJ))
1595+ let hM = invoke(aU, "burn", [hV], [AttachedPayment(bp, hV)])
1596+ if ((hM == hM))
15931597 then {
1594- let hW = eT(-(dC), -(dD), 0)
1595- let gj = hW._1
1596- let eK = hW._2
1597- let gk = eX(eS, eK)
1598- if ((gk == gk))
1599- then (dE ++ gj)
1598+ let hZ = eW(-(dD), -(dE), 0)
1599+ let gm = hZ._1
1600+ let eN = hZ._2
1601+ let gn = fa(eV, eN)
1602+ if ((gn == gn))
1603+ then (dF ++ gm)
16001604 else throw("Strict value is not equal to itself.")
16011605 }
16021606 else throw("Strict value is not equal to itself.")
16121616
16131617
16141618
1615-@Callable(cS)
1616-func unstakeAndGetOneTknV2 (hS,fM,fN) = {
1617- let hj = {
1618- let aX = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1619- if ($isInstanceOf(aX, "Boolean"))
1620- then aX
1621- else throw(($getType(aX) + " couldn't be cast to Boolean"))
1619+@Callable(cT)
1620+func unstakeAndGetOneTknV2 (hV,fP,fQ) = {
1621+ let hm = {
1622+ let aW = invoke(aU, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1623+ if ($isInstanceOf(aW, "Boolean"))
1624+ then aW
1625+ else throw(($getType(aW) + " couldn't be cast to Boolean"))
16221626 }
1623- let hv = if (if (ba())
1627+ let hy = if (if (aZ())
16241628 then true
1625- else (bp == t))
1629+ else (bo == s))
16261630 then true
1627- else hj
1628- let gJ = [if (if (!(hv))
1631+ else hm
1632+ let gM = [if (if (!(hy))
16291633 then true
1630- else gp(cS))
1634+ else gs(cT))
16311635 then true
1632- else aS("get operation is blocked by admin"), if ((size(cS.payments) == 0))
1636+ else aR("get operation is blocked by admin"), if ((size(cT.payments) == 0))
16331637 then true
1634- else aS("no payments are expected")]
1635- if ((gJ == gJ))
1638+ else aR("no payments are expected")]
1639+ if ((gM == gM))
16361640 then {
1637- let hM = bv()
1638- let gZ = bq
1639- let hN = valueOrErrorMessage(addressFromString(hM[D]), "Wr st addr")
1640- let dk = cS.caller
1641- let hX = this
1642- let hO = invoke(hN, "unstakeINTERNAL", [gZ, hS, dk.bytes, hX.bytes], nil)
1643- if ((hO == hO))
1641+ let hP = bw()
1642+ let hc = bp
1643+ let hQ = valueOrErrorMessage(addressFromString(hP[C]), "Wr st addr")
1644+ let dl = cT.caller
1645+ let ia = this
1646+ let hR = invoke(hQ, "unstakeINTERNAL", [hc, hV, dl.bytes, ia.bytes], nil)
1647+ if ((hR == hR))
16441648 then {
1645- let hY = fL(fM, fN, [AttachedPayment(gZ, hS)], cS.caller, cS.originCaller, cS.transactionId)
1646- let dE = hY._1
1647- let fW = hY._2
1648- $Tuple2(dE, fW)
1649+ let ib = fO(fP, fQ, [AttachedPayment(hc, hV)], cT.caller, cT.originCaller, cT.transactionId)
1650+ let dF = ib._1
1651+ let fZ = ib._2
1652+ $Tuple2(dF, fZ)
16491653 }
16501654 else throw("Strict value is not equal to itself.")
16511655 }
16541658
16551659
16561660
1657-@Callable(cS)
1658-func putOneTknV2WithBonusREADONLY (hZ,ia) = {
1659- let ib = fq(hZ, ia, "", "", true)
1660- let fF = ib._1
1661- let dE = ib._2
1662- let cA = ib._3
1663- let fK = ib._4
1664- $Tuple2(nil, $Tuple3(fF, cA, fK))
1661+@Callable(cT)
1662+func putOneTknV2WithBonusREADONLY (ic,id) = {
1663+ let ie = ft(ic, id, "", "", true)
1664+ let fI = ie._1
1665+ let dF = ie._2
1666+ let cB = ie._3
1667+ let fN = ie._4
1668+ $Tuple2(nil, $Tuple3(fI, cB, fN))
16651669 }
16661670
16671671
16681672
1669-@Callable(cS)
1670-func putOneTknV2WithoutTakeFeeREADONLY (hZ,ia) = {
1671- let ic = fq(hZ, ia, "", "", false)
1672- let fF = ic._1
1673- let dE = ic._2
1674- let cA = ic._3
1675- let fK = ic._4
1676- $Tuple2(nil, $Tuple3(fF, cA, fK))
1673+@Callable(cT)
1674+func putOneTknV2WithoutTakeFeeREADONLY (ic,id) = {
1675+ let if = ft(ic, id, "", "", false)
1676+ let fI = if._1
1677+ let dF = if._2
1678+ let cB = if._3
1679+ let fN = if._4
1680+ $Tuple2(nil, $Tuple3(fI, cB, fN))
16771681 }
16781682
16791683
16801684
1681-@Callable(cS)
1682-func activate (id,ie) = if ((toString(cS.caller) != toString(aV)))
1685+@Callable(cT)
1686+func activate (ig,ih) = if ((toString(cT.caller) != toString(aU)))
16831687 then throw("denied")
1684- else $Tuple2([StringEntry(ak(), id), StringEntry(al(), ie), StringEntry(am(), toString(l))], "success")
1688+ else $Tuple2([StringEntry(aj(), ig), StringEntry(ak(), ih)], "success")
16851689
16861690
16871691
1688-@Callable(cS)
1689-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bd())
1692+@Callable(cT)
1693+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bc())
16901694
16911695
16921696
1693-@Callable(cS)
1694-func getAccBalanceWrapperREADONLY (bR) = $Tuple2(nil, bQ(bR))
1697+@Callable(cT)
1698+func getAccBalanceWrapperREADONLY (bS) = $Tuple2(nil, bR(bS))
16951699
16961700
16971701
1698-@Callable(cS)
1699-func calcPricesWrapperREADONLY (ck,cl,cp) = {
1700- let if = co(ck, cl, cp)
1701- $Tuple2(nil, [toString(if[0]), toString(if[1]), toString(if[2])])
1702+@Callable(cT)
1703+func calcPricesWrapperREADONLY (cl,cm,cq) = {
1704+ let ii = cp(cl, cm, cq)
1705+ $Tuple2(nil, [toString(ii[0]), toString(ii[1]), toString(ii[2])])
17021706 }
17031707
17041708
17051709
1706-@Callable(cS)
1707-func fromX18WrapperREADONLY (N,ig) = $Tuple2(nil, M(parseBigIntValue(N), ig))
1710+@Callable(cT)
1711+func fromX18WrapperREADONLY (M,ij) = $Tuple2(nil, L(parseBigIntValue(M), ij))
17081712
17091713
17101714
1711-@Callable(cS)
1712-func toX18WrapperREADONLY (J,K) = $Tuple2(nil, toString(I(J, K)))
1715+@Callable(cT)
1716+func toX18WrapperREADONLY (I,J) = $Tuple2(nil, toString(H(I, J)))
17131717
17141718
17151719
1716-@Callable(cS)
1717-func calcPriceBigIntWrapperREADONLY (bT,bU) = $Tuple2(nil, toString(bS(parseBigIntValue(bT), parseBigIntValue(bU))))
1720+@Callable(cT)
1721+func calcPriceBigIntWrapperREADONLY (bU,bV) = $Tuple2(nil, toString(bT(parseBigIntValue(bU), parseBigIntValue(bV))))
17181722
17191723
17201724
1721-@Callable(cS)
1722-func estimatePutOperationWrapperREADONLY (dh,bZ,dG,dH,dI,dJ,ih,dK,dL) = $Tuple2(nil, dF(dh, bZ, dG, dH, dI, dJ, ih, dK, dL, true, false, 0, ""))
1725+@Callable(cT)
1726+func estimatePutOperationWrapperREADONLY (di,ca,dH,dI,dJ,dK,ik,dL,dM) = $Tuple2(nil, dG(di, ca, dH, dI, dJ, dK, ik, dL, dM, true, false, 0, ""))
17231727
17241728
17251729
1726-@Callable(cS)
1727-func estimateGetOperationWrapperREADONLY (dh,ii,dj,ih) = {
1728- let dY = dg(dh, ii, dj, addressFromStringValue(ih))
1729- $Tuple2(nil, $Tuple10(dY._1, dY._2, dY._3, dY._4, dY._5, dY._6, dY._7, toString(dY._8), dY._9, dY._10))
1730+@Callable(cT)
1731+func estimateGetOperationWrapperREADONLY (di,il,dk,ik) = {
1732+ let eb = dh(di, il, dk, addressFromStringValue(ik))
1733+ $Tuple2(nil, $Tuple10(eb._1, eb._2, eb._3, eb._4, eb._5, eb._6, eb._7, toString(eb._8), eb._9, eb._10))
17301734 }
17311735
17321736
17331737
1734-@Callable(cS)
1738+@Callable(cT)
17351739 func changeAmp () = {
1736- let ij = invoke(aV, "getChangeAmpConfigREADONLY", [toString(this)], nil)
1737- let ik = {
1738- let gm = ij
1739- if ($isInstanceOf(gm, "List[Any]"))
1740+ let im = invoke(aU, "getChangeAmpConfigREADONLY", [toString(this)], nil)
1741+ let in = {
1742+ let gp = im
1743+ if ($isInstanceOf(gp, "List[Any]"))
17401744 then {
1741- let il = gm
1745+ let io = gp
17421746 $Tuple3({
1743- let aX = il[0]
1744- if ($isInstanceOf(aX, "Int"))
1745- then aX
1746- else throw(($getType(aX) + " couldn't be cast to Int"))
1747+ let aW = io[0]
1748+ if ($isInstanceOf(aW, "Int"))
1749+ then aW
1750+ else throw(($getType(aW) + " couldn't be cast to Int"))
17471751 }, {
1748- let aX = il[1]
1749- if ($isInstanceOf(aX, "Int"))
1750- then aX
1751- else throw(($getType(aX) + " couldn't be cast to Int"))
1752+ let aW = io[1]
1753+ if ($isInstanceOf(aW, "Int"))
1754+ then aW
1755+ else throw(($getType(aW) + " couldn't be cast to Int"))
17521756 }, {
1753- let aX = il[2]
1754- if ($isInstanceOf(aX, "Int"))
1755- then aX
1756- else throw(($getType(aX) + " couldn't be cast to Int"))
1757+ let aW = io[2]
1758+ if ($isInstanceOf(aW, "Int"))
1759+ then aW
1760+ else throw(($getType(aW) + " couldn't be cast to Int"))
17571761 })
17581762 }
1759- else aS("invalid entry type")
1763+ else aR("invalid entry type")
17601764 }
1761- let im = ik._1
1762- let in = ik._2
1763- let io = ik._3
1764- let ip = parseIntValue(getStringValue(am()))
1765- let iq = (ip + in)
1766- let ir = if ((0 > in))
1767- then if ((io > iq))
1768- then io
1769- else iq
1770- else if ((iq > io))
1771- then io
1772- else iq
1773- let is = valueOrElse(getInteger(ap()), 0)
1774- let it = (is + im)
1775- let gJ = [if ((height > it))
1765+ let ip = in._1
1766+ let iq = in._2
1767+ let ir = in._3
1768+ let is = parseIntValue(getStringValue(al()))
1769+ let it = (is + iq)
1770+ let iu = if ((0 > iq))
1771+ then if ((ir > it))
1772+ then ir
1773+ else it
1774+ else if ((it > ir))
1775+ then ir
1776+ else it
1777+ let iv = valueOrElse(getInteger(ao()), 0)
1778+ let iw = (iv + ip)
1779+ let gM = [if ((height > iw))
17761780 then true
1777- else aS("try again in few blocks"), if ((ip != ir))
1781+ else aR("try again in few blocks"), if ((is != iu))
17781782 then true
1779- else aS("already reached target")]
1780- if ((gJ == gJ))
1781- then [IntegerEntry(ap(), height), StringEntry(am(), toString(ir)), StringEntry(an(height), toString(ir))]
1783+ else aR("already reached target")]
1784+ if ((gM == gM))
1785+ then [IntegerEntry(ao(), height), StringEntry(al(), toString(iu)), StringEntry(am(height), toString(iu))]
17821786 else throw("Strict value is not equal to itself.")
17831787 }
17841788
17851789
1786-@Verifier(iu)
1787-func iv () = {
1788- let iw = {
1789- let gm = gl()
1790- if ($isInstanceOf(gm, "ByteVector"))
1790+@Verifier(ix)
1791+func iy () = {
1792+ let iz = {
1793+ let gp = go()
1794+ if ($isInstanceOf(gp, "ByteVector"))
17911795 then {
1792- let gq = gm
1793- gq
1796+ let gt = gp
1797+ gt
17941798 }
1795- else if ($isInstanceOf(gm, "Unit"))
1796- then iu.senderPublicKey
1799+ else if ($isInstanceOf(gp, "Unit"))
1800+ then ix.senderPublicKey
17971801 else throw("Match error")
17981802 }
1799- let gm = iu
1800- if ($isInstanceOf(gm, "Order"))
1803+ let gp = ix
1804+ if ($isInstanceOf(gp, "Order"))
18011805 then {
1802- let fa = gm
1803- let ix = bb()
1804- let iy = if (gx())
1806+ let fd = gp
1807+ let iA = ba()
1808+ let iB = if (gA())
18051809 then $Tuple2(true, "")
1806- else eZ(fa)
1807- let aK = iy._1
1808- let aL = iy._2
1809- let aM = sigVerify(fa.bodyBytes, fa.proofs[0], fa.senderPublicKey)
1810- let aN = sigVerify(fa.bodyBytes, fa.proofs[1], ix)
1811- if (if (if (aK)
1810+ else fc(fd)
1811+ let aJ = iB._1
1812+ let aK = iB._2
1813+ let aL = sigVerify(fd.bodyBytes, fd.proofs[0], fd.senderPublicKey)
1814+ let aM = sigVerify(fd.bodyBytes, fd.proofs[1], iA)
1815+ if (if (if (aJ)
1816+ then aL
1817+ else false)
18121818 then aM
18131819 else false)
1814- then aN
1815- else false)
18161820 then true
1817- else aJ(aK, aL, aM, aN)
1821+ else aI(aJ, aK, aL, aM)
18181822 }
1819- else if ($isInstanceOf(gm, "SetScriptTransaction"))
1823+ else if ($isInstanceOf(gp, "SetScriptTransaction"))
18201824 then {
1821- let cF = gm
1822- if (sigVerify(iu.bodyBytes, iu.proofs[0], iw))
1825+ let cG = gp
1826+ if (sigVerify(ix.bodyBytes, ix.proofs[0], iz))
18231827 then true
18241828 else {
1825- let iz = blake2b256(value(cF.script))
1826- let iA = fromBase64String(value(getString(aV, aF())))
1827- let iB = scriptHash(this)
1828- if ((iA == iz))
1829- then (iB != iz)
1829+ let iC = blake2b256(value(cG.script))
1830+ let iD = fromBase64String(value(getString(aU, aE())))
1831+ let iE = scriptHash(this)
1832+ if ((iD == iC))
1833+ then (iE != iC)
18301834 else false
18311835 }
18321836 }
1833- else sigVerify(iu.bodyBytes, iu.proofs[0], iw)
1837+ else sigVerify(ix.bodyBytes, ix.proofs[0], iz)
18341838 }
18351839
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 100000000
55
66 let b = toBigInt(100000000)
77
88 let c = toBigInt(1000000000000000000)
99
1010 let d = toBigInt(0)
1111
1212 let e = toBigInt(0)
1313
1414 let f = toBigInt(1)
1515
1616 let g = toBigInt(2)
1717
1818 let h = toBigInt(3)
1919
2020 let i = toBigInt(4)
2121
2222 let j = toBigInt((a - ((a * 1) / a)))
2323
2424 let k = "WAVES"
2525
26-let l = 50
26+let l = "100"
2727
28-let m = "100"
28+let m = "1"
2929
30-let n = "1"
30+let n = "__"
3131
32-let o = "__"
32+let o = ""
3333
34-let p = ""
34+let p = 1
3535
36-let q = 1
36+let q = 2
3737
38-let r = 2
38+let r = 3
3939
40-let s = 3
40+let s = 4
4141
42-let t = 4
42+let t = 1
4343
44-let u = 1
44+let u = 2
4545
46-let v = 2
46+let v = 3
4747
48-let w = 3
48+let w = 4
4949
50-let x = 4
50+let x = 5
5151
52-let y = 5
52+let y = 6
5353
54-let z = 6
54+let z = 7
5555
56-let A = 7
56+let A = 8
5757
58-let B = 8
58+let B = 9
5959
60-let C = 9
60+let C = 1
6161
62-let D = 1
62+let D = 6
6363
64-let E = 6
64+let E = 7
6565
66-let F = 7
66+let F = 10
6767
68-let G = 10
68+let G = fraction(10, a, 10000)
6969
70-let H = fraction(10, a, 10000)
71-
72-func I (J,K) = fraction(toBigInt(J), c, toBigInt(K))
70+func H (I,J) = fraction(toBigInt(I), c, toBigInt(J))
7371
7472
75-func L (J,K) = fraction(J, c, K)
73+func K (I,J) = fraction(I, c, J)
7674
7775
78-func M (N,O) = toInt(fraction(N, toBigInt(O), c))
76+func L (M,N) = toInt(fraction(M, toBigInt(N), c))
7977
8078
81-func P (N,O,Q) = toInt(fraction(N, toBigInt(O), c, Q))
79+func O (M,N,P) = toInt(fraction(M, toBigInt(N), c, P))
8280
8381
84-func R (J,K) = fraction(J, c, toBigInt(K))
82+func Q (I,J) = fraction(I, c, toBigInt(J))
8583
8684
87-func S (N,O) = fraction(N, toBigInt(O), c)
85+func R (M,N) = fraction(M, toBigInt(N), c)
8886
8987
90-func T (U,V,W) = fraction(U, V, W)
88+func S (T,U,V) = fraction(T, U, V)
9189
9290
93-func X (N) = if ((d > N))
94- then -(N)
95- else N
91+func W (M) = if ((d > M))
92+ then -(M)
93+ else M
9694
9795
98-func Y (N) = if ((d > N))
99- then -(N)
100- else N
96+func X (M) = if ((d > M))
97+ then -(M)
98+ else M
10199
102100
103-func Z () = "%s__factoryContract"
101+func Y () = "%s__factoryContract"
104102
105103
106-func aa () = "%s__managerPublicKey"
104+func Z () = "%s__managerPublicKey"
107105
108106
109-func ab () = "%s__pendingManagerPublicKey"
107+func aa () = "%s__pendingManagerPublicKey"
110108
111109
112-func ac () = "%s%s__price__last"
110+func ab () = "%s%s__price__last"
113111
114112
115-func ad (ae,af) = makeString(["%s%s%d%d__price__history", toString(ae), toString(af)], o)
113+func ac (ad,ae) = makeString(["%s%s%d%d__price__history", toString(ad), toString(ae)], n)
116114
117115
118-func ag (ah,ai) = ((("%s%s%s__P__" + ah) + "__") + ai)
116+func af (ag,ah) = ((("%s%s%s__P__" + ag) + "__") + ah)
119117
120118
121-func aj (ah,ai) = ((("%s%s%s__G__" + ah) + "__") + ai)
119+func ai (ag,ah) = ((("%s%s%s__G__" + ag) + "__") + ah)
122120
123121
124-func ak () = "%s__amountAsset"
122+func aj () = "%s__amountAsset"
125123
126124
127-func al () = "%s__priceAsset"
125+func ak () = "%s__priceAsset"
128126
129127
130-func am () = "%s__amp"
128+func al () = "%s__amp"
131129
132130
133-func an (ao) = ("%s%d__amp__" + toString(ao))
131+func am (an) = ("%s%d__amp__" + toString(an))
134132
135133
136-func ap () = "%s__changeAmpLastCall"
134+func ao () = "%s__changeAmpLastCall"
137135
138136
139-let aq = "%s__fee"
137+let ap = "%s__fee"
140138
141-let ar = valueOrElse(getInteger(this, aq), H)
139+let aq = valueOrElse(getInteger(this, ap), G)
142140
143-let as = makeString(["%s", "dLp"], o)
141+let ar = makeString(["%s", "dLp"], n)
144142
145-let at = makeString(["%s", "dLpRefreshedHeight"], o)
143+let as = makeString(["%s", "dLpRefreshedHeight"], n)
146144
147-let au = makeString(["%s", "refreshDLpDelay"], o)
145+let at = makeString(["%s", "refreshDLpDelay"], n)
148146
149-let av = 30
147+let au = 30
150148
151-let aw = valueOrElse(getInteger(this, au), av)
149+let av = valueOrElse(getInteger(this, at), au)
152150
153-func ax () = "%s__factoryConfig"
151+func aw () = "%s__factoryConfig"
154152
155153
156-func ay () = "%s%s__matcher__publicKey"
154+func ax () = "%s%s__matcher__publicKey"
157155
158156
159-func az (aA,aB) = (((("%d%d%s__" + aA) + "__") + aB) + "__config")
157+func ay (az,aA) = (((("%d%d%s__" + az) + "__") + aA) + "__config")
160158
161159
162-func aC (aD) = ("%s%s%s__mappings__baseAsset2internalId__" + aD)
160+func aB (aC) = ("%s%s%s__mappings__baseAsset2internalId__" + aC)
163161
164162
165-func aE () = "%s__shutdown"
163+func aD () = "%s__shutdown"
166164
167165
168-func aF () = "%s__allowedLpStableScriptHash"
166+func aE () = "%s__allowedLpStableScriptHash"
169167
170168
171-func aG () = "%s__feeCollectorAddress"
169+func aF () = "%s__feeCollectorAddress"
172170
173171
174-func aH (aI) = ("%s%s__skipOrderValidation__" + aI)
172+func aG (aH) = ("%s%s__skipOrderValidation__" + aH)
175173
176174
177-func aJ (aK,aL,aM,aN) = throw((((((((("order validation failed: orderValid=" + toString(aK)) + " (") + aL) + ")") + " senderValid=") + toString(aM)) + " matcherValid=") + toString(aN)))
175+func aI (aJ,aK,aL,aM) = throw((((((((("order validation failed: orderValid=" + toString(aJ)) + " (") + aK) + ")") + " senderValid=") + toString(aL)) + " matcherValid=") + toString(aM)))
178176
179177
180-func aO (aP,aQ) = valueOrErrorMessage(getString(aP, aQ), makeString(["mandatory ", toString(aP), ".", aQ, " not defined"], ""))
178+func aN (aO,aP) = valueOrErrorMessage(getString(aO, aP), makeString(["mandatory ", toString(aO), ".", aP, " not defined"], ""))
181179
182180
183-func aR (aP,aQ) = valueOrErrorMessage(getInteger(aP, aQ), makeString(["mandatory ", toString(aP), ".", aQ, " not defined"], ""))
181+func aQ (aO,aP) = valueOrErrorMessage(getInteger(aO, aP), makeString(["mandatory ", toString(aO), ".", aP, " not defined"], ""))
184182
185183
186-func aS (aT) = throw(makeString(["lp_stable.ride:", aT], " "))
184+func aR (aS) = throw(makeString(["lp_stable.ride:", aS], " "))
187185
188186
189-func aU (aT) = makeString(["lp_stable.ride:", aT], " ")
187+func aT (aS) = makeString(["lp_stable.ride:", aS], " ")
190188
191189
192-let aV = addressFromStringValue(aO(this, Z()))
190+let aU = addressFromStringValue(aN(this, Y()))
193191
194-let aW = {
195- let aX = invoke(aV, "getInFeeREADONLY", [toString(this)], nil)
196- if ($isInstanceOf(aX, "Int"))
197- then aX
198- else throw(($getType(aX) + " couldn't be cast to Int"))
192+let aV = {
193+ let aW = invoke(aU, "getInFeeREADONLY", [toString(this)], nil)
194+ if ($isInstanceOf(aW, "Int"))
195+ then aW
196+ else throw(($getType(aW) + " couldn't be cast to Int"))
199197 }
200198
201-let aY = {
202- let aX = invoke(aV, "getOutFeeREADONLY", [toString(this)], nil)
203- if ($isInstanceOf(aX, "Int"))
204- then aX
205- else throw(($getType(aX) + " couldn't be cast to Int"))
199+let aX = {
200+ let aW = invoke(aU, "getOutFeeREADONLY", [toString(this)], nil)
201+ if ($isInstanceOf(aW, "Int"))
202+ then aW
203+ else throw(($getType(aW) + " couldn't be cast to Int"))
206204 }
207205
208-let aZ = aO(this, am())
206+let aY = aN(this, al())
209207
210-func ba () = valueOrElse(getBoolean(aV, aE()), false)
208+func aZ () = valueOrElse(getBoolean(aU, aD()), false)
211209
212210
213-func bb () = fromBase58String(aO(aV, ay()))
211+func ba () = fromBase58String(aN(aU, ax()))
214212
215213
216-let bc = addressFromStringValue(aO(aV, aG()))
214+let bb = addressFromStringValue(aN(aU, aF()))
217215
218-func bd () = {
219- let be = aO(this, ak())
220- let bf = aO(this, al())
221- let bg = aR(aV, aC(bf))
222- let aA = aR(aV, aC(be))
223- split(aO(aV, az(toString(aA), toString(bg))), o)
216+func bc () = {
217+ let bd = aN(this, aj())
218+ let be = aN(this, ak())
219+ let bf = aQ(aU, aB(be))
220+ let az = aQ(aU, aB(bd))
221+ split(aN(aU, ay(toString(az), toString(bf))), n)
224222 }
225223
226224
227-func bh (bi) = if ((bi == k))
225+func bg (bh) = if ((bh == k))
228226 then unit
229- else fromBase58String(bi)
227+ else fromBase58String(bh)
230228
231229
232-func bj (bi) = if ((bi == unit))
230+func bi (bh) = if ((bh == unit))
233231 then k
234- else toBase58String(value(bi))
232+ else toBase58String(value(bh))
235233
236234
237-func bk (bl) = $Tuple7(addressFromStringValue(bl[u]), parseIntValue(bl[v]), fromBase58String(bl[w]), bh(bl[x]), bh(bl[y]), parseIntValue(bl[z]), parseIntValue(bl[A]))
235+func bj (bk) = $Tuple9(addressFromStringValue(bk[t]), parseIntValue(bk[u]), fromBase58String(bk[v]), bg(bk[w]), bg(bk[x]), parseIntValue(bk[y]), parseIntValue(bk[z]), fromBase58String(bk[A]), fromBase58String(bk[B]))
238236
239237
240-let bm = bk(bd())
238+let bl = bj(bc())
241239
242-let bn = bm
240+let bm = bl
243241
244-let bo = bn._1
242+let bn = bm._1
245243
246-let bp = bn._2
244+let bo = bm._2
247245
248-let bq = bn._3
246+let bp = bm._3
249247
250-let br = bn._4
248+let bq = bm._4
251249
252-let bs = bn._5
250+let br = bm._5
253251
254-let bt = bn._6
252+let bs = bm._6
255253
256-let bu = bn._7
254+let bt = bm._7
257255
258-func bv () = split(aO(aV, ax()), o)
256+let bu = bm._8
257+
258+let bv = bm._9
259+
260+func bw () = split(aN(aU, aw()), n)
259261
260262
261-let bw = bv()
263+let bx = bw()
262264
263-let bx = valueOrErrorMessage(addressFromString(bw[D]), "Invalid staking contract address")
265+let by = valueOrErrorMessage(addressFromString(bx[C]), "Invalid staking contract address")
264266
265-let by = valueOrErrorMessage(addressFromString(bw[F]), "Invalid slipage contract address")
267+let bz = valueOrErrorMessage(addressFromString(bx[E]), "Invalid slipage contract address")
266268
267-let bz = valueOrErrorMessage(addressFromString(bw[G]), "Invalid gwx contract address")
269+let bA = valueOrErrorMessage(addressFromString(bx[F]), "Invalid gwx contract address")
268270
269-let bA = valueOrErrorMessage(addressFromString(bw[E]), "Invalid gwx contract address")
271+let bB = valueOrErrorMessage(addressFromString(bx[D]), "Invalid gwx contract address")
270272
271-func bB (bC,bD,bE,bF,bG,bH,bI,bJ,bK,bL) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bC), toString(bD), toString(bE), toString(bF), toString(bG), toString(bH), toString(bI), toString(bJ), toString(bK), toString(bL)], o)
273+func bC (bD,bE,bF,bG,bH,bI,bJ,bK,bL,bM) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bD), toString(bE), toString(bF), toString(bG), toString(bH), toString(bI), toString(bJ), toString(bK), toString(bL), toString(bM)], n)
272274
273275
274-func bM (bN,bO,bP,bF,bI,bJ) = makeString(["%d%d%d%d%d%d", toString(bN), toString(bO), toString(bP), toString(bF), toString(bI), toString(bJ)], o)
276+func bN (bO,bP,bQ,bG,bJ,bK) = makeString(["%d%d%d%d%d%d", toString(bO), toString(bP), toString(bQ), toString(bG), toString(bJ), toString(bK)], n)
275277
276278
277-func bQ (bR) = if ((bR == "WAVES"))
279+func bR (bS) = if ((bS == "WAVES"))
278280 then wavesBalance(this).available
279- else assetBalance(this, fromBase58String(bR))
281+ else assetBalance(this, fromBase58String(bS))
280282
281283
282-func bS (bT,bU) = fraction(bT, c, bU)
284+func bT (bU,bV) = fraction(bU, c, bV)
283285
284286
285-func bV (bT,bU,Q) = fraction(bT, c, bU, Q)
287+func bW (bU,bV,P) = fraction(bU, c, bV, P)
286288
287289
288-func bW (bX,bY,bZ) = {
289- let ca = fraction((bX - bY), b, bY)
290- let cb = ((bZ - X(ca)) > d)
291- if (!(cb))
292- then throw(("Big slpg: " + toString(ca)))
293- else $Tuple2(cb, min([bX, bY]))
290+func bX (bY,bZ,ca) = {
291+ let cb = fraction((bY - bZ), b, bZ)
292+ let cc = ((ca - W(cb)) > d)
293+ if (!(cc))
294+ then throw(("Big slpg: " + toString(cb)))
295+ else $Tuple2(cc, min([bY, bZ]))
294296 }
295297
296298
297-func cc (cd,ce,cf) = {
298- let ca = fraction(ce, b, cd)
299- let cg = (cf > ca)
300- if (if (cg)
299+func cd (ce,cf,cg) = {
300+ let cb = fraction(cf, b, ce)
301+ let ch = (cg > cb)
302+ if (if (ch)
301303 then true
302- else (ce > cd))
303- then throw(((((((toString(ce) + " ") + toString(cd)) + " ") + toString(ca)) + " ") + toString(cf)))
304- else cg
304+ else (cf > ce))
305+ then throw(((((((toString(cf) + " ") + toString(ce)) + " ") + toString(cb)) + " ") + toString(cg)))
306+ else ch
305307 }
306308
307309
308-func ch (ci,cj,ck,cl) = {
309- let cm = I(ck, ci)
310- let cn = I(cl, cj)
311- bS(cn, cm)
310+func ci (cj,ck,cl,cm) = {
311+ let cn = H(cl, cj)
312+ let co = H(cm, ck)
313+ bT(co, cn)
312314 }
313315
314316
315-func co (ck,cl,cp) = {
316- let cq = bt
317- let cr = bu
318- let cs = ch(cq, cr, ck, cl)
319- let bU = I(ck, cq)
320- let bT = I(cl, cr)
321- let ct = I(cp, a)
322- let cu = bS(bU, ct)
323- let cv = bS(bT, ct)
324-[cs, cu, cv]
317+func cp (cl,cm,cq) = {
318+ let cr = bs
319+ let cs = bt
320+ let ct = ci(cr, cs, cl, cm)
321+ let bV = H(cl, cr)
322+ let bU = H(cm, cs)
323+ let cu = H(cq, a)
324+ let cv = bT(bV, cu)
325+ let cw = bT(bU, cu)
326+[ct, cv, cw]
325327 }
326328
327329
328-func cw (ck,cl,cp) = {
329- let cx = co(ck, cl, cp)
330-[M(cx[0], a), M(cx[1], a), M(cx[2], a)]
330+func cx (cl,cm,cq) = {
331+ let cy = cp(cl, cm, cq)
332+[L(cy[0], a), L(cy[1], a), L(cy[2], a)]
331333 }
332334
333335
334-func cy (cz,ar) = {
335- let cA = if ((ar == 0))
336+func cz (cA,aq) = {
337+ let cB = if ((aq == 0))
336338 then 0
337- else fraction(cz, ar, a)
338- $Tuple2((cz - cA), cA)
339+ else fraction(cA, aq, a)
340+ $Tuple2((cA - cB), cB)
339341 }
340342
341343
342-func cB (cC) = {
343- let cD = cC[0]
344- let cE = cC[1]
345- let cF = (cD + cE)
346- if ((cF == e))
344+func cC (cD) = {
345+ let cE = cD[0]
346+ let cF = cD[1]
347+ let cG = (cE + cF)
348+ if ((cG == e))
347349 then e
348350 else {
349- let cG = parseIntValue(aZ)
350- let cH = (cG * 2)
351- let cx = fraction(cD, cE, f)
352- let cI = fraction(cx, i, f)
353- let cJ = fraction(toBigInt(cH), cF, f)
354- let cK = toBigInt((cH - 1))
355- func cL (cM) = {
356- let cN = fraction(cM, cM, f)
357- let cO = fraction(cN, cM, f)
358- let cP = fraction(cO, f, cI)
359- fraction((cJ + fraction(cP, g, f)), cM, (fraction(cK, cM, f) + fraction(h, cP, f)))
351+ let cH = parseIntValue(aY)
352+ let cI = (cH * 2)
353+ let cy = fraction(cE, cF, f)
354+ let cJ = fraction(cy, i, f)
355+ let cK = fraction(toBigInt(cI), cG, f)
356+ let cL = toBigInt((cI - 1))
357+ func cM (cN) = {
358+ let cO = fraction(cN, cN, f)
359+ let cP = fraction(cO, cN, f)
360+ let cQ = fraction(cP, f, cJ)
361+ fraction((cK + fraction(cQ, g, f)), cN, (fraction(cL, cN, f) + fraction(h, cQ, f)))
360362 }
361363
362- func cQ (cR,cS) = if (cR._2)
363- then cR
364+ func cR (cS,cT) = if (cS._2)
365+ then cS
364366 else {
365- let cM = cR._1
366- let cT = cL(cM)
367- let cU = (cT - value(cM))
368- let cV = if ((e > cU))
369- then -(cU)
370- else cU
371- if ((f >= cV))
372- then $Tuple2(cT, true)
373- else $Tuple2(cT, false)
367+ let cN = cS._1
368+ let cU = cM(cN)
369+ let cV = (cU - value(cN))
370+ let cW = if ((e > cV))
371+ then -(cV)
372+ else cV
373+ if ((f >= cW))
374+ then $Tuple2(cU, true)
375+ else $Tuple2(cU, false)
374376 }
375377
376- let cW = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
377- let cX = {
378- let cY = cW
379- let cZ = size(cY)
380- let da = $Tuple2(cF, false)
381- func db (dc,dd) = if ((dd >= cZ))
382- then dc
383- else cQ(dc, cY[dd])
378+ let cX = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
379+ let cY = {
380+ let cZ = cX
381+ let da = size(cZ)
382+ let db = $Tuple2(cG, false)
383+ func dc (dd,de) = if ((de >= da))
384+ then dd
385+ else cR(dd, cZ[de])
384386
385- func de (dc,dd) = if ((dd >= cZ))
386- then dc
387+ func df (dd,de) = if ((de >= da))
388+ then dd
387389 else throw("List size exceeds 17")
388390
389- de(db(db(db(db(db(db(db(db(db(db(db(db(db(db(db(db(db(da, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17)
391+ df(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(db, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17)
390392 }
391- let cM = cX._1
392- let df = cX._2
393- if (df)
394- then cM
395- else throw(("D calculation error, D = " + toString(cM)))
393+ let cN = cY._1
394+ let dg = cY._2
395+ if (dg)
396+ then cN
397+ else throw(("D calculation error, D = " + toString(cN)))
396398 }
397399 }
398400
399401
400-func dg (dh,di,dj,dk) = {
401- let dl = bq
402- let dm = toBase58String(value(br))
403- let dn = toBase58String(value(bs))
404- let do = bt
405- let dp = bu
406- let dq = toString(bp)
407- let dr = valueOrErrorMessage(assetInfo(dl), "Wrong LP id").quantity
408- if ((toBase58String(dl) != di))
402+func dh (di,dj,dk,dl) = {
403+ let dm = bp
404+ let dn = toBase58String(value(bq))
405+ let do = toBase58String(value(br))
406+ let dp = bs
407+ let dq = bt
408+ let dr = toString(bo)
409+ let ds = valueOrErrorMessage(assetInfo(dm), "Wrong LP id").quantity
410+ if ((toBase58String(dm) != dj))
409411 then throw("Wrong pmt asset")
410412 else {
411- let ds = bQ(dm)
412- let dt = I(ds, do)
413- let du = bQ(dn)
414- let dv = I(du, dp)
415- let dw = bS(dv, dt)
416- let dx = M(dw, a)
417- let dy = I(dj, a)
418- let dz = I(dr, a)
419- let dA = fraction(dt, dy, dz)
420- let dB = fraction(dv, dy, dz)
421- let dC = P(dA, do, FLOOR)
422- let dD = P(dB, dp, FLOOR)
423- let dE = if ((dh == ""))
413+ let dt = bR(dn)
414+ let du = H(dt, dp)
415+ let dv = bR(do)
416+ let dw = H(dv, dq)
417+ let dx = bT(dw, du)
418+ let dy = L(dx, a)
419+ let dz = H(dk, a)
420+ let dA = H(ds, a)
421+ let dB = fraction(du, dz, dA)
422+ let dC = fraction(dw, dz, dA)
423+ let dD = O(dB, dp, FLOOR)
424+ let dE = O(dC, dq, FLOOR)
425+ let dF = if ((di == ""))
424426 then nil
425- else [ScriptTransfer(dk, dC, if ((dm == "WAVES"))
427+ else [ScriptTransfer(dl, dD, if ((dn == "WAVES"))
426428 then unit
427- else fromBase58String(dm)), ScriptTransfer(dk, dD, if ((dn == "WAVES"))
429+ else fromBase58String(dn)), ScriptTransfer(dl, dE, if ((do == "WAVES"))
428430 then unit
429- else fromBase58String(dn)), StringEntry(aj(toString(dk), dh), bM(dC, dD, dj, dx, height, lastBlock.timestamp)), IntegerEntry(ac(), dx), IntegerEntry(ad(height, lastBlock.timestamp), dx)]
430- $Tuple10(dC, dD, dm, dn, ds, du, dr, dw, dq, dE)
431+ else fromBase58String(do)), StringEntry(ai(toString(dl), di), bN(dD, dE, dk, dy, height, lastBlock.timestamp)), IntegerEntry(ab(), dy), IntegerEntry(ac(height, lastBlock.timestamp), dy)]
432+ $Tuple10(dD, dE, dn, do, dt, dv, ds, dx, dr, dF)
431433 }
432434 }
433435
434436
435-func dF (dh,bZ,dG,dH,dI,dJ,dk,dK,dL,dM,dN,dO,dP) = {
436- let dl = bq
437- let dQ = toBase58String(value(br))
438- let dR = toBase58String(value(bs))
439- let dS = bt
437+func dG (di,ca,dH,dI,dJ,dK,dl,dL,dM,dN,dO,dP,dQ) = {
438+ let dm = bp
439+ let dR = toBase58String(value(bq))
440+ let dS = toBase58String(value(br))
440441 let dT = bu
441- let dq = toString(bp)
442- let dU = valueOrErrorMessage(assetInfo(dl), "Wr lp as").quantity
443- let ds = if (dK)
444- then bQ(dQ)
445- else if (if (dM)
446- then (dP == dQ)
442+ let dU = bv
443+ let dV = bs
444+ let dW = bt
445+ let dr = toString(bo)
446+ let dX = valueOrErrorMessage(assetInfo(dm), "Wr lp as").quantity
447+ let dt = if (dL)
448+ then bR(dR)
449+ else if (if (dN)
450+ then (dQ == dR)
447451 else false)
448- then (bQ(dQ) - dO)
449- else if (dM)
450- then bQ(dQ)
451- else (bQ(dQ) - dG)
452- let du = if (dK)
453- then bQ(dR)
454- else if (if (dM)
455- then (dP == dR)
452+ then (bR(dR) - dP)
453+ else if (dN)
454+ then bR(dR)
455+ else (bR(dR) - dH)
456+ let dv = if (dL)
457+ then bR(dS)
458+ else if (if (dN)
459+ then (dQ == dS)
456460 else false)
457- then (bQ(dR) - dO)
458- else if (dM)
459- then bQ(dR)
460- else (bQ(dR) - dI)
461- let dV = I(dG, dS)
462- let dW = I(dI, dT)
463- let dX = bS(dW, dV)
464- let dt = I(ds, dS)
465- let dv = I(du, dT)
466- let ce = cB([dt, dv])
467- let dY = if ((dU == 0))
461+ then (bR(dS) - dP)
462+ else if (dN)
463+ then bR(dS)
464+ else (bR(dS) - dJ)
465+ let dY = H(dH, dV)
466+ let dZ = H(dJ, dW)
467+ let ea = bT(dZ, dY)
468+ let du = H(dt, dV)
469+ let dw = H(dv, dW)
470+ let cf = cC([du, dw])
471+ let eb = if ((dX == 0))
468472 then {
469- let cd = cB([(dt + dV), (dv + dW)])
470- let dZ = if ((cd > ce))
473+ let ce = cC([(du + dY), (dw + dZ)])
474+ let ec = if ((ce > cf))
471475 then true
472476 else throw("D1 should be greater than D0")
473- if ((dZ == dZ))
477+ if ((ec == ec))
474478 then {
475- let dw = d
476- let ea = d
477- let ct = cd
478- $Tuple5(M(ct, a), M(dV, dS), M(dW, dT), bS((dv + dW), (dt + dV)), ea)
479+ let dx = d
480+ let ed = d
481+ let cu = ce
482+ $Tuple5(L(cu, a), L(dY, dV), L(dZ, dW), bT((dw + dZ), (du + dY)), ed)
479483 }
480484 else throw("Strict value is not equal to itself.")
481485 }
482486 else {
483- let dw = bS(dv, dt)
484- let eb = fraction(X((dw - dX)), c, dw)
485- let ea = I(bZ, a)
486- if (if (if (dN)
487- then (dw != d)
487+ let dx = bT(dw, du)
488+ let ee = fraction(W((dx - ea)), c, dx)
489+ let ed = H(ca, a)
490+ if (if (if (dO)
491+ then (dx != d)
488492 else false)
489- then (eb > ea)
493+ then (ee > ed)
490494 else false)
491- then throw(((("Price slippage " + toString(eb)) + " > ") + toString(ea)))
495+ then throw(((("Price slippage " + toString(ee)) + " > ") + toString(ed)))
492496 else {
493- let ec = I(dU, a)
494- let ed = fraction(dV, bV(dv, dt, CEILING), c, CEILING)
495- let ee = fraction(dW, c, bV(dv, dt, FLOOR), CEILING)
496- let ef = if ((ed > dW))
497- then $Tuple2(ee, dW)
498- else $Tuple2(dV, ed)
499- let eg = ef._1
500- let eh = ef._2
501- let cd = cB([(dt + eg), (dv + eh)])
502- let dZ = if ((cd > ce))
497+ let ef = H(dX, a)
498+ let eg = fraction(dY, bW(dw, du, CEILING), c, CEILING)
499+ let eh = fraction(dZ, c, bW(dw, du, FLOOR), CEILING)
500+ let ei = if ((eg > dZ))
501+ then $Tuple2(eh, dZ)
502+ else $Tuple2(dY, eg)
503+ let ej = ei._1
504+ let ek = ei._2
505+ let ce = cC([(du + ej), (dw + ek)])
506+ let ec = if ((ce > cf))
503507 then true
504508 else throw("D1 should be greater than D0")
505- if ((dZ == dZ))
509+ if ((ec == ec))
506510 then {
507- let ct = fraction(ec, (cd - ce), ce)
508- $Tuple5(P(ct, a, FLOOR), P(eg, dS, CEILING), P(eh, dT, CEILING), dw, ea)
511+ let cu = fraction(ef, (ce - cf), cf)
512+ $Tuple5(O(cu, a, FLOOR), O(ej, dV, CEILING), O(ek, dW, CEILING), dx, ed)
509513 }
510514 else throw("Strict value is not equal to itself.")
511515 }
512516 }
513- let ei = dY._1
514- let ej = dY._2
515- let ek = dY._3
516- let dx = M(dY._4, a)
517- let el = M(dY._5, a)
518- if ((0 >= ei))
517+ let el = eb._1
518+ let em = eb._2
519+ let en = eb._3
520+ let dy = L(eb._4, a)
521+ let eo = L(eb._5, a)
522+ if ((0 >= el))
519523 then throw("LP <= 0")
520524 else {
521- let em = if (!(dL))
525+ let ep = if (!(dM))
522526 then 0
523- else ei
524- let en = (dG - ej)
525- let eo = (dI - ek)
526- let ep = if (if (dM)
527- then (dP == dQ)
527+ else el
528+ let eq = (dH - em)
529+ let er = (dJ - en)
530+ let es = if (if (dN)
531+ then (dQ == dR)
528532 else false)
529- then $Tuple2(dO, 0)
530- else if (if (dM)
531- then (dP == dR)
533+ then $Tuple2(dP, 0)
534+ else if (if (dN)
535+ then (dQ == dS)
532536 else false)
533- then $Tuple2(0, dO)
534- else $Tuple2(ej, ek)
535- let eq = ep._1
536- let er = ep._2
537- let es = [IntegerEntry(ac(), dx), IntegerEntry(ad(height, lastBlock.timestamp), dx), StringEntry(ag(dk, dh), bB(eq, er, em, dx, bZ, el, height, lastBlock.timestamp, en, eo))]
538- $Tuple13(ei, em, dx, ds, du, dU, dl, dq, es, en, eo, dH, dJ)
537+ then $Tuple2(0, dP)
538+ else $Tuple2(em, en)
539+ let et = es._1
540+ let eu = es._2
541+ let ev = [IntegerEntry(ab(), dy), IntegerEntry(ac(height, lastBlock.timestamp), dy), StringEntry(af(dl, di), bC(et, eu, ep, dy, ca, eo, height, lastBlock.timestamp, eq, er))]
542+ $Tuple13(el, ep, dy, dt, dv, dX, dm, dr, ev, eq, er, dI, dK)
539543 }
540544 }
541545
542546
543-func et (cC,cS,eu) = {
544- let ev = g
545- let ew = cC[if ((cS == 0))
547+func ew (cD,cT,ex) = {
548+ let ey = g
549+ let ez = cD[if ((cT == 0))
546550 then 1
547551 else 0]
548- let ex = parseBigIntValue(m)
549- let cG = (parseBigIntValue(aZ) * ex)
550- let cF = ew
551- let cH = (cG * ev)
552- let ey = (((((eu * eu) / (ew * ev)) * eu) * ex) / (cH * ev))
553- let ez = ((cF + ((eu * ex) / cH)) - eu)
554- func cQ (cR,eA) = {
555- let eB = cR
556- let eC = eB._1
557- let df = eB._2
558- if ((df != unit))
559- then cR
552+ let eA = parseBigIntValue(l)
553+ let cH = (parseBigIntValue(aY) * eA)
554+ let cG = ez
555+ let cI = (cH * ey)
556+ let eB = (((((ex * ex) / (ez * ey)) * ex) * eA) / (cI * ey))
557+ let eC = ((cG + ((ex * eA) / cI)) - ex)
558+ func cR (cS,eD) = {
559+ let eE = cS
560+ let eF = eE._1
561+ let dg = eE._2
562+ if ((dg != unit))
563+ then cS
560564 else {
561- let eD = (((eC * eC) + ey) / ((g * eC) + ez))
562- let eE = Y((eD - value(eC)))
563- if ((f >= eE))
564- then $Tuple2(eD, eA)
565- else $Tuple2(eD, unit)
565+ let eG = (((eF * eF) + eB) / ((g * eF) + eC))
566+ let eH = X((eG - value(eF)))
567+ if ((f >= eH))
568+ then $Tuple2(eG, eD)
569+ else $Tuple2(eG, unit)
566570 }
567571 }
568572
569- let cW = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
570- let eF = {
571- let cY = cW
572- let cZ = size(cY)
573- let da = $Tuple2(eu, unit)
574- func db (dc,dd) = if ((dd >= cZ))
575- then dc
576- else cQ(dc, cY[dd])
573+ let cX = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
574+ let eI = {
575+ let cZ = cX
576+ let da = size(cZ)
577+ let db = $Tuple2(ex, unit)
578+ func dc (dd,de) = if ((de >= da))
579+ then dd
580+ else cR(dd, cZ[de])
577581
578- func de (dc,dd) = if ((dd >= cZ))
579- then dc
582+ func df (dd,de) = if ((de >= da))
583+ then dd
580584 else throw("List size exceeds 15")
581585
582- de(db(db(db(db(db(db(db(db(db(db(db(db(db(db(db(da, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
586+ df(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(db, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
583587 }
584- let eC = eF._1
585- let df = eF._2
586- if ((df != unit))
587- then eC
588- else throw(("Y calculation error, Y = " + toString(eC)))
588+ let eF = eI._1
589+ let dg = eI._2
590+ if ((dg != unit))
591+ then eF
592+ else throw(("Y calculation error, Y = " + toString(eF)))
589593 }
590594
591595
592-func eG (eH,eI,eJ) = {
593- let eK = fraction(cB([L(eH, toBigInt(bt)), L(eI, toBigInt(bu))]), c, eJ)
594- if ((eJ == e))
596+func eJ (eK,eL,eM) = {
597+ let eN = fraction(cC([K(eK, toBigInt(bs)), K(eL, toBigInt(bt))]), c, eM)
598+ if ((eM == e))
595599 then e
596- else eK
600+ else eN
597601 }
598602
599603
600-func eL (eM,eN,eO) = {
601- let eP = (toBigInt(bQ(bj(br))) - eM)
602- let eQ = (toBigInt(bQ(bj(bs))) - eN)
603- let eR = (toBigInt(value(assetInfo(bq)).quantity) - eO)
604- let eS = eG(eP, eQ, eR)
605- eS
604+func eO (eP,eQ,eR) = {
605+ let eS = (toBigInt(bR(bi(bq))) - eP)
606+ let eT = (toBigInt(bR(bi(br))) - eQ)
607+ let eU = (toBigInt(value(assetInfo(bp)).quantity) - eR)
608+ let eV = eJ(eS, eT, eU)
609+ eV
606610 }
607611
608612
609-func eT (eU,eV,eO) = {
610- let eP = (bQ(bj(br)) + eU)
611- let eQ = (bQ(bj(bs)) + eV)
612- let eR = (value(assetInfo(bq)).quantity + eO)
613- let eK = eG(toBigInt(eP), toBigInt(eQ), toBigInt(eR))
614- let eW = [IntegerEntry(at, height), StringEntry(as, toString(eK))]
615- $Tuple2(eW, eK)
613+func eW (eX,eY,eR) = {
614+ let eS = (bR(bi(bq)) + eX)
615+ let eT = (bR(bi(br)) + eY)
616+ let eU = (value(assetInfo(bp)).quantity + eR)
617+ let eN = eJ(toBigInt(eS), toBigInt(eT), toBigInt(eU))
618+ let eZ = [IntegerEntry(as, height), StringEntry(ar, toString(eN))]
619+ $Tuple2(eZ, eN)
616620 }
617621
618622
619-func eX (eY,eK) = if ((eK >= eY))
623+func fa (fb,eN) = if ((eN >= fb))
620624 then true
621- else aS("updated DLp lower than current DLp")
625+ else aR("updated DLp lower than current DLp")
622626
623627
624-func eZ (fa) = {
625- let eP = bQ(bj(br))
626- let eQ = bQ(bj(bs))
627- let fb = fa.amount
628- let fc = fraction(fa.amount, fa.price, a, FLOOR)
629- let fd = if ((fa.orderType == Buy))
630- then $Tuple2(fb, -(fc))
631- else $Tuple2(-(fb), fc)
632- let eU = fd._1
633- let eV = fd._2
634- if (if (if (ba())
628+func fc (fd) = {
629+ let eS = bR(bi(bq))
630+ let eT = bR(bi(br))
631+ let fe = fd.amount
632+ let ff = fraction(fd.amount, fd.price, a, FLOOR)
633+ let fg = if ((fd.orderType == Buy))
634+ then $Tuple2(fe, -(ff))
635+ else $Tuple2(-(fe), ff)
636+ let eX = fg._1
637+ let eY = fg._2
638+ if (if (if (aZ())
635639 then true
636- else (bp == s))
640+ else (bo == r))
637641 then true
638- else (bp == t))
642+ else (bo == s))
639643 then throw("Admin blocked")
640- else if (if ((fa.assetPair.amountAsset != br))
644+ else if (if ((fd.assetPair.amountAsset != bq))
641645 then true
642- else (fa.assetPair.priceAsset != bs))
646+ else (fd.assetPair.priceAsset != br))
643647 then throw("Wr assets")
644648 else {
645- let fe = parseBigIntValue(valueOrElse(getString(this, as), "0"))
646- let ff = eT(eU, eV, 0)
647- let fg = ff._1
648- let fh = ff._2
649- let fi = (fh >= fe)
650- let fj = makeString(["dLp=", toString(fe), " dLpNew=", toString(fh), " amountAssetBalance=", toString(eP), " priceAssetBalance=", toString(eQ), " amountAssetBalanceDelta=", toString(eU), " priceAssetBalanceDelta=", toString(eV), " height=", toString(height)], "")
651- $Tuple2(fi, fj)
649+ let fh = parseBigIntValue(valueOrElse(getString(this, ar), "0"))
650+ let fi = eW(eX, eY, 0)
651+ let fj = fi._1
652+ let fk = fi._2
653+ let fl = (fk >= fh)
654+ let fm = makeString(["dLp=", toString(fh), " dLpNew=", toString(fk), " amountAssetBalance=", toString(eS), " priceAssetBalance=", toString(eT), " amountAssetBalanceDelta=", toString(eX), " priceAssetBalanceDelta=", toString(eY), " height=", toString(height)], "")
655+ $Tuple2(fl, fm)
652656 }
653657 }
654658
655659
656-func fk (cS) = if ((size(cS.payments) != 1))
660+func fn (cT) = if ((size(cT.payments) != 1))
657661 then throw("1 pmnt exp")
658662 else {
659- let fl = value(cS.payments[0])
660- let di = value(fl.assetId)
661- let dO = fl.amount
662- let dY = dg(toBase58String(cS.transactionId), toBase58String(di), dO, cS.caller)
663- let dC = dY._1
664- let dD = dY._2
665- let dq = parseIntValue(dY._9)
666- let dE = dY._10
667- if (if (ba())
663+ let fo = value(cT.payments[0])
664+ let dj = value(fo.assetId)
665+ let dP = fo.amount
666+ let eb = dh(toBase58String(cT.transactionId), toBase58String(dj), dP, cT.caller)
667+ let dD = eb._1
668+ let dE = eb._2
669+ let dr = parseIntValue(eb._9)
670+ let dF = eb._10
671+ if (if (aZ())
668672 then true
669- else (dq == t))
670- then throw(("Admin blocked: " + toString(dq)))
671- else $Tuple5(dC, dD, dO, di, dE)
673+ else (dr == s))
674+ then throw(("Admin blocked: " + toString(dr)))
675+ else $Tuple5(dD, dE, dP, dj, dF)
672676 }
673677
674678
675-func fm (fn,ai,fo,fp,bZ,dL,dM,dN,dO,dP) = {
676- let dY = dF(ai, bZ, value(fo).amount, value(fo).assetId, value(fp).amount, value(fp).assetId, fn, (ai == ""), dL, dM, dN, dO, dP)
677- let dq = parseIntValue(dY._8)
678- if (if (if (ba())
679+func fp (fq,ah,fr,fs,ca,dM,dN,dO,dP,dQ) = {
680+ let eb = dG(ah, ca, value(fr).amount, value(fr).assetId, value(fs).amount, value(fs).assetId, fq, (ah == ""), dM, dN, dO, dP, dQ)
681+ let dr = parseIntValue(eb._8)
682+ if (if (if (aZ())
679683 then true
680- else (dq == r))
684+ else (dr == q))
681685 then true
682- else (dq == t))
683- then throw(("Blocked:" + toString(dq)))
684- else dY
686+ else (dr == s))
687+ then throw(("Blocked:" + toString(dr)))
688+ else eb
685689 }
686690
687691
688-func fq (fr,di,dk,ai,fs) = {
689- let dm = toBase58String(value(br))
690- let dn = toBase58String(value(bs))
691- let dl = bq
692- let dS = bt
693- let dT = bu
694- let eR = toBigInt(valueOrErrorMessage(assetInfo(dl), "invalid lp asset").quantity)
695- let ft = if ((eR > e))
692+func ft (fu,dj,dl,ah,fv) = {
693+ let dn = toBase58String(value(bq))
694+ let do = toBase58String(value(br))
695+ let dm = bp
696+ let dV = bs
697+ let dW = bt
698+ let eU = toBigInt(valueOrErrorMessage(assetInfo(dm), "invalid lp asset").quantity)
699+ let fw = if ((eU > e))
696700 then true
697701 else throw("initial deposit requires all coins")
698- if ((ft == ft))
702+ if ((fw == fw))
699703 then {
700- let ds = bQ(dm)
701- let du = bQ(dn)
702- let fu = if ((ai == ""))
703- then $Tuple2(ds, du)
704- else if ((di == dm))
705- then if ((fr > ds))
704+ let dt = bR(dn)
705+ let dv = bR(do)
706+ let fx = if ((ah == ""))
707+ then $Tuple2(dt, dv)
708+ else if ((dj == dn))
709+ then if ((fu > dt))
706710 then throw("invalid payment amount")
707- else $Tuple2((ds - fr), du)
708- else if ((di == dn))
709- then if ((fr > du))
711+ else $Tuple2((dt - fu), dv)
712+ else if ((dj == do))
713+ then if ((fu > dv))
710714 then throw("invalid payment amount")
711- else $Tuple2(ds, (du - fr))
715+ else $Tuple2(dt, (dv - fu))
712716 else throw("wrong pmtAssetId")
713- let fv = fu._1
714- let fw = fu._2
715- let fx = if ((di == dm))
716- then $Tuple2(fr, 0)
717- else if ((di == dn))
718- then $Tuple2(0, fr)
719- else throw("invalid payment")
720717 let fy = fx._1
721718 let fz = fx._2
722- let fA = if (fs)
723- then $Tuple3(cy(fy, aW)._1, cy(fz, aW)._1, cy(fr, aW)._2)
724- else $Tuple3(fy, fz, 0)
719+ let fA = if ((dj == dn))
720+ then $Tuple2(fu, 0)
721+ else if ((dj == do))
722+ then $Tuple2(0, fu)
723+ else throw("invalid payment")
725724 let fB = fA._1
726725 let fC = fA._2
727- let cA = fA._3
728- let fD = (fv + fB)
729- let fE = (fw + fC)
730- let ce = cB([I(fv, bt), I(fw, bu)])
731- let cd = cB([I(fD, bt), I(fE, bu)])
732- let dZ = if ((cd > ce))
726+ let fD = if (fv)
727+ then $Tuple3(cz(fB, aV)._1, cz(fC, aV)._1, cz(fu, aV)._2)
728+ else $Tuple3(fB, fC, 0)
729+ let fE = fD._1
730+ let fF = fD._2
731+ let cB = fD._3
732+ let fG = (fy + fE)
733+ let fH = (fz + fF)
734+ let cf = cC([H(fy, bs), H(fz, bt)])
735+ let ce = cC([H(fG, bs), H(fH, bt)])
736+ let ec = if ((ce > cf))
733737 then true
734738 else throw()
735- if ((dZ == dZ))
739+ if ((ec == ec))
736740 then {
737- let fF = fraction(eR, (cd - ce), ce, FLOOR)
738- let dx = M(bS(I(fE, dT), I(fD, dS)), a)
739- let es = [IntegerEntry(ac(), dx), IntegerEntry(ad(height, lastBlock.timestamp), dx), StringEntry(ag(dk, ai), bB(fy, fz, toInt(fF), dx, 0, 0, height, lastBlock.timestamp, 0, 0))]
740- let fG = fraction(fw, a, fv)
741- let fH = fraction(fr, a, (fG + a))
742- let fI = (fr - fH)
743- let fJ = fraction(eR, toBigInt(fI), toBigInt(fw))
744- let fK = toInt(fraction((fF - fJ), b, fJ))
745- $Tuple4(toInt(fF), es, cA, fK)
741+ let fI = fraction(eU, (ce - cf), cf, FLOOR)
742+ let dy = L(bT(H(fH, dW), H(fG, dV)), a)
743+ let ev = [IntegerEntry(ab(), dy), IntegerEntry(ac(height, lastBlock.timestamp), dy), StringEntry(af(dl, ah), bC(fB, fC, toInt(fI), dy, 0, 0, height, lastBlock.timestamp, 0, 0))]
744+ let fJ = fraction(fz, a, fy)
745+ let fK = fraction(fu, a, (fJ + a))
746+ let fL = (fu - fK)
747+ let fM = fraction(eU, toBigInt(fL), toBigInt(fz))
748+ let fN = toInt(fraction((fI - fM), b, fM))
749+ $Tuple4(toInt(fI), ev, cB, fN)
746750 }
747751 else throw("Strict value is not equal to itself.")
748752 }
749753 else throw("Strict value is not equal to itself.")
750754 }
751755
752756
753-func fL (fM,fN,fO,fn,fP,fQ) = {
754- let dl = toBase58String(value(bq))
755- let dm = toBase58String(value(br))
756- let dn = toBase58String(value(bs))
757- let fR = bt
758- let fS = bu
759- let fT = bp
760- let dk = if ((fn == bA))
761- then fP
762- else fn
763- let fl = value(fO[0])
764- let di = value(fl.assetId)
765- let dO = fl.amount
766- let eS = eL(e, e, e)
767- if ((eS == eS))
757+func fO (fP,fQ,fR,fq,fS,fT) = {
758+ let dm = toBase58String(value(bp))
759+ let dn = toBase58String(value(bq))
760+ let do = toBase58String(value(br))
761+ let fU = bs
762+ let fV = bt
763+ let fW = bo
764+ let dl = if ((fq == bB))
765+ then fS
766+ else fq
767+ let fo = value(fR[0])
768+ let dj = value(fo.assetId)
769+ let dP = fo.amount
770+ let eV = eO(e, e, e)
771+ if ((eV == eV))
768772 then {
769- let dh = toBase58String(fQ)
770- if ((dl != toBase58String(di)))
773+ let di = toBase58String(fT)
774+ if ((dm != toBase58String(dj)))
771775 then throw("Wrong LP")
772776 else {
773- let ds = bQ(dm)
774- let du = bQ(dn)
775- let fU = {
776- let aX = invoke(this, "getOneTknV2READONLY", [fM, dO], nil)
777- if ($isInstanceOf(aX, "(Int, Int)"))
778- then aX
779- else throw(($getType(aX) + " couldn't be cast to (Int, Int)"))
777+ let dt = bR(dn)
778+ let dv = bR(do)
779+ let fX = {
780+ let aW = invoke(this, "getOneTknV2READONLY", [fP, dP], nil)
781+ if ($isInstanceOf(aW, "(Int, Int)"))
782+ then aW
783+ else throw(($getType(aW) + " couldn't be cast to (Int, Int)"))
780784 }
781- if ((fU == fU))
785+ if ((fX == fX))
782786 then {
783- let cA = fU._2
784- let fV = fU._1
785- let fW = if (if ((fN > 0))
786- then (fN > fV)
787+ let cB = fX._2
788+ let fY = fX._1
789+ let fZ = if (if ((fQ > 0))
790+ then (fQ > fY)
787791 else false)
788- then aS(makeString(["amount to receive is less than ", toString(fN)], ""))
789- else fV
790- let fX = if ((fM == dm))
791- then $Tuple4(fW, 0, ((ds - fW) - cA), du)
792- else if ((fM == dn))
793- then $Tuple4(0, fW, ds, ((du - fW) - cA))
792+ then aR(makeString(["amount to receive is less than ", toString(fQ)], ""))
793+ else fY
794+ let ga = if ((fP == dn))
795+ then $Tuple4(fZ, 0, ((dt - fZ) - cB), dv)
796+ else if ((fP == do))
797+ then $Tuple4(0, fZ, dt, ((dv - fZ) - cB))
794798 else throw("invalid out asset id")
795- let fY = fX._1
796- let fZ = fX._2
797- let fD = fX._3
798- let fE = fX._4
799- let ga = bS(I(fE, fS), I(fD, fR))
800- let gb = M(ga, a)
801- let gc = if ((fM == "WAVES"))
799+ let gb = ga._1
800+ let gc = ga._2
801+ let fG = ga._3
802+ let fH = ga._4
803+ let gd = bT(H(fH, fV), H(fG, fU))
804+ let ge = L(gd, a)
805+ let gf = if ((fP == "WAVES"))
802806 then unit
803- else fromBase58String(fM)
804- let gd = if ((cA > 0))
805- then [ScriptTransfer(bc, cA, gc)]
807+ else fromBase58String(fP)
808+ let gg = if ((cB > 0))
809+ then [ScriptTransfer(bb, cB, gf)]
806810 else nil
807- let dE = ([ScriptTransfer(dk, fW, gc), StringEntry(aj(toString(dk), dh), bM(fY, fZ, dO, gb, height, lastBlock.timestamp)), IntegerEntry(ac(), gb), IntegerEntry(ad(height, lastBlock.timestamp), gb)] ++ gd)
808- if ((dE == dE))
811+ let dF = ([ScriptTransfer(dl, fZ, gf), StringEntry(ai(toString(dl), di), bN(gb, gc, dP, ge, height, lastBlock.timestamp)), IntegerEntry(ab(), ge), IntegerEntry(ac(height, lastBlock.timestamp), ge)] ++ gg)
812+ if ((dF == dF))
809813 then {
810- let ge = invoke(aV, "burn", [dO], [AttachedPayment(di, dO)])
811- if ((ge == ge))
814+ let gh = invoke(aU, "burn", [dP], [AttachedPayment(dj, dP)])
815+ if ((gh == gh))
812816 then {
813- let gf = {
814- let gg = if ((this == bc))
817+ let gi = {
818+ let gj = if ((this == bb))
815819 then 0
816- else cA
817- let gh = if ((bh(fM) == br))
820+ else cB
821+ let gk = if ((bg(fP) == bq))
818822 then true
819823 else false
820- if (gh)
821- then $Tuple2(-((fV + gg)), 0)
822- else $Tuple2(0, -((fV + gg)))
824+ if (gk)
825+ then $Tuple2(-((fY + gj)), 0)
826+ else $Tuple2(0, -((fY + gj)))
823827 }
824- let eU = gf._1
825- let eV = gf._2
826- let gi = eT(eU, eV, 0)
827- let gj = gi._1
828- let eK = gi._2
829- let gk = eX(eS, eK)
830- if ((gk == gk))
831- then $Tuple2((dE ++ gj), fW)
828+ let eX = gi._1
829+ let eY = gi._2
830+ let gl = eW(eX, eY, 0)
831+ let gm = gl._1
832+ let eN = gl._2
833+ let gn = fa(eV, eN)
834+ if ((gn == gn))
835+ then $Tuple2((dF ++ gm), fZ)
832836 else throw("Strict value is not equal to itself.")
833837 }
834838 else throw("Strict value is not equal to itself.")
835839 }
836840 else throw("Strict value is not equal to itself.")
837841 }
838842 else throw("Strict value is not equal to itself.")
839843 }
840844 }
841845 else throw("Strict value is not equal to itself.")
842846 }
843847
844848
845-func gl () = {
846- let gm = getString(aa())
847- if ($isInstanceOf(gm, "String"))
849+func go () = {
850+ let gp = getString(Z())
851+ if ($isInstanceOf(gp, "String"))
848852 then {
849- let cF = gm
850- fromBase58String(cF)
853+ let cG = gp
854+ fromBase58String(cG)
851855 }
852- else if ($isInstanceOf(gm, "Unit"))
856+ else if ($isInstanceOf(gp, "Unit"))
853857 then unit
854858 else throw("Match error")
855859 }
856860
857861
858-func gn () = {
859- let gm = getString(ab())
860- if ($isInstanceOf(gm, "String"))
862+func gq () = {
863+ let gp = getString(aa())
864+ if ($isInstanceOf(gp, "String"))
861865 then {
862- let cF = gm
863- fromBase58String(cF)
866+ let cG = gp
867+ fromBase58String(cG)
864868 }
865- else if ($isInstanceOf(gm, "Unit"))
869+ else if ($isInstanceOf(gp, "Unit"))
866870 then unit
867871 else throw("Match error")
868872 }
869873
870874
871-let go = throw("Permission denied")
875+let gr = throw("Permission denied")
872876
873-func gp (cS) = {
874- let gm = gl()
875- if ($isInstanceOf(gm, "ByteVector"))
877+func gs (cT) = {
878+ let gp = go()
879+ if ($isInstanceOf(gp, "ByteVector"))
876880 then {
877- let gq = gm
878- (cS.callerPublicKey == gq)
881+ let gt = gp
882+ (cT.callerPublicKey == gt)
879883 }
880- else if ($isInstanceOf(gm, "Unit"))
881- then (cS.caller == this)
884+ else if ($isInstanceOf(gp, "Unit"))
885+ then (cT.caller == this)
882886 else throw("Match error")
883887 }
884888
885889
886-func gr (cS) = {
887- let gm = gl()
888- if ($isInstanceOf(gm, "ByteVector"))
890+func gu (cT) = {
891+ let gp = go()
892+ if ($isInstanceOf(gp, "ByteVector"))
889893 then {
890- let gq = gm
891- if ((cS.callerPublicKey == gq))
894+ let gt = gp
895+ if ((cT.callerPublicKey == gt))
892896 then true
893- else go
897+ else gr
894898 }
895- else if ($isInstanceOf(gm, "Unit"))
896- then if ((cS.caller == this))
899+ else if ($isInstanceOf(gp, "Unit"))
900+ then if ((cT.caller == this))
897901 then true
898- else go
902+ else gr
899903 else throw("Match error")
900904 }
901905
902906
903-func gs (gt,eu,gu) = {
904- let bl = bd()
905- let dm = bl[x]
906- let dn = bl[y]
907- let ev = g
908- let ex = parseBigIntValue(m)
909- let cG = (parseBigIntValue(aZ) * ex)
910- let cC = if ((gt == false))
911- then [(toBigInt(bQ(dm)) + gu), toBigInt(bQ(dn))]
912- else [(toBigInt(bQ(dn)) + gu), toBigInt(bQ(dm))]
913- let ew = cC[0]
914- let cF = ew
915- let cH = (cG * ev)
916- let ey = (((((eu * eu) / (ew * ev)) * eu) * ex) / (cH * ev))
917- let ez = ((cF + ((eu * ex) / cH)) - eu)
918- func cQ (cR,eA) = {
919- let gv = cR
920- let eC = gv._1
921- let df = gv._2
922- if ((df != unit))
923- then cR
907+func gv (gw,ex,gx) = {
908+ let bk = bc()
909+ let dn = bk[w]
910+ let do = bk[x]
911+ let ey = g
912+ let eA = parseBigIntValue(l)
913+ let cH = (parseBigIntValue(aY) * eA)
914+ let cD = if ((gw == false))
915+ then [(toBigInt(bR(dn)) + gx), toBigInt(bR(do))]
916+ else [(toBigInt(bR(do)) + gx), toBigInt(bR(dn))]
917+ let ez = cD[0]
918+ let cG = ez
919+ let cI = (cH * ey)
920+ let eB = (((((ex * ex) / (ez * ey)) * ex) * eA) / (cI * ey))
921+ let eC = ((cG + ((ex * eA) / cI)) - ex)
922+ func cR (cS,eD) = {
923+ let gy = cS
924+ let eF = gy._1
925+ let dg = gy._2
926+ if ((dg != unit))
927+ then cS
924928 else {
925- let eD = (((eC * eC) + ey) / ((g * eC) + ez))
926- let eE = Y((eD - value(eC)))
927- if ((f >= eE))
928- then $Tuple2(eD, eA)
929- else $Tuple2(eD, unit)
929+ let eG = (((eF * eF) + eB) / ((g * eF) + eC))
930+ let eH = X((eG - value(eF)))
931+ if ((f >= eH))
932+ then $Tuple2(eG, eD)
933+ else $Tuple2(eG, unit)
930934 }
931935 }
932936
933- let cW = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
934- let gw = {
935- let cY = cW
936- let cZ = size(cY)
937- let da = $Tuple2(eu, unit)
938- func db (dc,dd) = if ((dd >= cZ))
939- then dc
940- else cQ(dc, cY[dd])
937+ let cX = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
938+ let gz = {
939+ let cZ = cX
940+ let da = size(cZ)
941+ let db = $Tuple2(ex, unit)
942+ func dc (dd,de) = if ((de >= da))
943+ then dd
944+ else cR(dd, cZ[de])
941945
942- func de (dc,dd) = if ((dd >= cZ))
943- then dc
946+ func df (dd,de) = if ((de >= da))
947+ then dd
944948 else throw("List size exceeds 15")
945949
946- de(db(db(db(db(db(db(db(db(db(db(db(db(db(db(db(da, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
950+ df(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(dc(db, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
947951 }
948- let eC = gw._1
949- let df = gw._2
950- if ((df != unit))
951- then eC
952- else throw(("Y calculation error, Y = " + toString(eC)))
952+ let eF = gz._1
953+ let dg = gz._2
954+ if ((dg != unit))
955+ then eF
956+ else throw(("Y calculation error, Y = " + toString(eF)))
953957 }
954958
955959
956-func gx () = valueOrElse(getBoolean(aV, aH(toString(this))), false)
960+func gA () = valueOrElse(getBoolean(aU, aG(toString(this))), false)
957961
958962
959-@Callable(cS)
960-func calculateAmountOutForSwapREADONLY (gy,gt,gz) = {
961- let gA = if ((gt == false))
963+@Callable(cT)
964+func calculateAmountOutForSwapREADONLY (gB,gw,gC) = {
965+ let gD = if ((gw == false))
962966 then {
963- let gB = aO(this, al())
964- let gu = (toBigInt(bQ(aO(this, ak()))) + toBigInt(gy))
965- $Tuple2(gB, gu)
967+ let gE = aN(this, ak())
968+ let gx = (toBigInt(bR(aN(this, aj()))) + toBigInt(gB))
969+ $Tuple2(gE, gx)
966970 }
967971 else {
968- let gB = aO(this, ak())
969- let gu = (toBigInt(bQ(aO(this, al()))) + toBigInt(gy))
970- $Tuple2(gB, gu)
972+ let gE = aN(this, aj())
973+ let gx = (toBigInt(bR(aN(this, ak()))) + toBigInt(gB))
974+ $Tuple2(gE, gx)
971975 }
972- let gB = gA._1
973- let gu = gA._2
974- let bl = bd()
975- let dm = bl[x]
976- let dn = bl[y]
977- let cC = [toBigInt(bQ(dm)), toBigInt(bQ(dn))]
978- let eu = cB(cC)
979- let eC = gs(gt, eu, toBigInt(gy))
980- let gC = ((toBigInt(bQ(gB)) - eC) - toBigInt(1))
981- let gD = max([0, toInt(gC)])
982- let gE = if ((gt == false))
983- then [((toBigInt(bQ(dm)) + toBigInt(gy)) + toBigInt(gz)), (toBigInt(bQ(dn)) - gC)]
984- else [(toBigInt(bQ(dm)) - gC), ((toBigInt(bQ(dn)) + toBigInt(gy)) + toBigInt(gz))]
985- let gF = cB(gE)
986- let dZ = if ((gF >= eu))
976+ let gE = gD._1
977+ let gx = gD._2
978+ let bk = bc()
979+ let dn = bk[w]
980+ let do = bk[x]
981+ let cD = [toBigInt(bR(dn)), toBigInt(bR(do))]
982+ let ex = cC(cD)
983+ let eF = gv(gw, ex, toBigInt(gB))
984+ let gF = ((toBigInt(bR(gE)) - eF) - toBigInt(1))
985+ let gG = max([0, toInt(gF)])
986+ let gH = if ((gw == false))
987+ then [((toBigInt(bR(dn)) + toBigInt(gB)) + toBigInt(gC)), (toBigInt(bR(do)) - gF)]
988+ else [(toBigInt(bR(dn)) - gF), ((toBigInt(bR(do)) + toBigInt(gB)) + toBigInt(gC))]
989+ let gI = cC(gH)
990+ let ec = if ((gI >= ex))
987991 then true
988- else throw(makeString(["new D is fewer error", toString(eu), toString(gF)], "__"))
989- if ((dZ == dZ))
990- then $Tuple2(nil, gD)
992+ else throw(makeString(["new D is fewer error", toString(ex), toString(gI)], "__"))
993+ if ((ec == ec))
994+ then $Tuple2(nil, gG)
991995 else throw("Strict value is not equal to itself.")
992996 }
993997
994998
995999
996-@Callable(cS)
997-func calculateAmountOutForSwapAndSendTokens (gy,gt,gG,gH,gz) = {
998- let gI = {
999- let aX = invoke(aV, "getSwapContractREADONLY", nil, nil)
1000- if ($isInstanceOf(aX, "String"))
1001- then aX
1002- else throw(($getType(aX) + " couldn't be cast to String"))
1000+@Callable(cT)
1001+func calculateAmountOutForSwapAndSendTokens (gB,gw,gJ,gK,gC) = {
1002+ let gL = {
1003+ let aW = invoke(aU, "getSwapContractREADONLY", nil, nil)
1004+ if ($isInstanceOf(aW, "String"))
1005+ then aW
1006+ else throw(($getType(aW) + " couldn't be cast to String"))
10031007 }
1004- let gJ = [if ((value(cS.payments[0]).amount >= gy))
1008+ let gM = [if ((value(cT.payments[0]).amount >= gB))
10051009 then true
1006- else aS("Wrong amount"), if ((cS.caller == addressFromStringValue(gI)))
1010+ else aR("Wrong amount"), if ((cT.caller == addressFromStringValue(gL)))
10071011 then true
1008- else aS("Permission denied")]
1009- if ((gJ == gJ))
1012+ else aR("Permission denied")]
1013+ if ((gM == gM))
10101014 then {
1011- let fl = value(cS.payments[0])
1012- let gK = bj(fl.assetId)
1013- let gL = if ((gt == false))
1015+ let fo = value(cT.payments[0])
1016+ let gN = bi(fo.assetId)
1017+ let gO = if ((gw == false))
10141018 then {
1015- let gB = aO(this, al())
1016- let gu = (bQ(gK) - value(cS.payments[0]).amount)
1017- $Tuple2(gB, gu)
1019+ let gE = aN(this, ak())
1020+ let gx = (bR(gN) - value(cT.payments[0]).amount)
1021+ $Tuple2(gE, gx)
10181022 }
10191023 else {
1020- let gB = aO(this, ak())
1021- let gu = (bQ(gK) - value(cS.payments[0]).amount)
1022- $Tuple2(gB, gu)
1024+ let gE = aN(this, aj())
1025+ let gx = (bR(gN) - value(cT.payments[0]).amount)
1026+ $Tuple2(gE, gx)
10231027 }
1024- let gB = gL._1
1025- let gu = gL._2
1026- let bl = bd()
1027- let dm = bl[x]
1028- let dn = bl[y]
1029- let cC = if ((gt == false))
1030- then [(toBigInt(bQ(dm)) - toBigInt(value(cS.payments[0]).amount)), toBigInt(bQ(dn))]
1031- else [toBigInt(bQ(dm)), (toBigInt(bQ(dn)) - toBigInt(value(cS.payments[0]).amount))]
1032- let eu = cB(cC)
1033- let eC = gs(gt, eu, toBigInt(0))
1034- let gC = ((toBigInt(bQ(gB)) - eC) - toBigInt(1))
1035- let gD = max([0, toInt(gC)])
1036- let gM = if ((gD >= gG))
1028+ let gE = gO._1
1029+ let gx = gO._2
1030+ let bk = bc()
1031+ let dn = bk[w]
1032+ let do = bk[x]
1033+ let cD = if ((gw == false))
1034+ then [(toBigInt(bR(dn)) - toBigInt(value(cT.payments[0]).amount)), toBigInt(bR(do))]
1035+ else [toBigInt(bR(dn)), (toBigInt(bR(do)) - toBigInt(value(cT.payments[0]).amount))]
1036+ let ex = cC(cD)
1037+ let eF = gv(gw, ex, toBigInt(0))
1038+ let gF = ((toBigInt(bR(gE)) - eF) - toBigInt(1))
1039+ let gG = max([0, toInt(gF)])
1040+ let gP = if ((gG >= gJ))
10371041 then true
10381042 else throw("Exchange result is fewer coins than expected")
1039- if ((gM == gM))
1043+ if ((gP == gP))
10401044 then {
1041- let gE = if ((gt == false))
1042- then [(toBigInt(bQ(dm)) + toBigInt(gz)), (toBigInt(bQ(dn)) - gC)]
1043- else [(toBigInt(bQ(dm)) - gC), (toBigInt(bQ(dn)) + toBigInt(gz))]
1044- let gF = cB(gE)
1045- let dZ = if ((gF >= eu))
1045+ let gH = if ((gw == false))
1046+ then [(toBigInt(bR(dn)) + toBigInt(gC)), (toBigInt(bR(do)) - gF)]
1047+ else [(toBigInt(bR(dn)) - gF), (toBigInt(bR(do)) + toBigInt(gC))]
1048+ let gI = cC(gH)
1049+ let ec = if ((gI >= ex))
10461050 then true
10471051 else throw("new D is fewer error")
1048- if ((dZ == dZ))
1049- then $Tuple2([ScriptTransfer(addressFromStringValue(gH), gD, bh(gB))], gD)
1052+ if ((ec == ec))
1053+ then $Tuple2([ScriptTransfer(addressFromStringValue(gK), gG, bg(gE))], gG)
10501054 else throw("Strict value is not equal to itself.")
10511055 }
10521056 else throw("Strict value is not equal to itself.")
10531057 }
10541058 else throw("Strict value is not equal to itself.")
10551059 }
10561060
10571061
10581062
1059-@Callable(cS)
1060-func constructor (Z) = {
1061- let ey = gr(cS)
1062- if ((ey == ey))
1063- then [StringEntry(Z(), Z)]
1063+@Callable(cT)
1064+func constructor (Y) = {
1065+ let eB = gu(cT)
1066+ if ((eB == eB))
1067+ then [StringEntry(Y(), Y)]
10641068 else throw("Strict value is not equal to itself.")
10651069 }
10661070
10671071
10681072
1069-@Callable(cS)
1070-func setManager (gN) = {
1071- let ey = gr(cS)
1072- if ((ey == ey))
1073+@Callable(cT)
1074+func setManager (gQ) = {
1075+ let eB = gu(cT)
1076+ if ((eB == eB))
10731077 then {
1074- let gO = fromBase58String(gN)
1075- if ((gO == gO))
1076- then [StringEntry(ab(), gN)]
1078+ let gR = fromBase58String(gQ)
1079+ if ((gR == gR))
1080+ then [StringEntry(aa(), gQ)]
10771081 else throw("Strict value is not equal to itself.")
10781082 }
10791083 else throw("Strict value is not equal to itself.")
10801084 }
10811085
10821086
10831087
1084-@Callable(cS)
1088+@Callable(cT)
10851089 func confirmManager () = {
1086- let cx = gn()
1087- let gP = if (isDefined(cx))
1090+ let cy = gq()
1091+ let gS = if (isDefined(cy))
10881092 then true
10891093 else throw("No pending manager")
1090- if ((gP == gP))
1094+ if ((gS == gS))
10911095 then {
1092- let gQ = if ((cS.callerPublicKey == value(cx)))
1096+ let gT = if ((cT.callerPublicKey == value(cy)))
10931097 then true
10941098 else throw("You are not pending manager")
1095- if ((gQ == gQ))
1096- then [StringEntry(aa(), toBase58String(value(cx))), DeleteEntry(ab())]
1099+ if ((gT == gT))
1100+ then [StringEntry(Z(), toBase58String(value(cy))), DeleteEntry(aa())]
10971101 else throw("Strict value is not equal to itself.")
10981102 }
10991103 else throw("Strict value is not equal to itself.")
11001104 }
11011105
11021106
11031107
1104-@Callable(cS)
1105-func put (gR,gS) = {
1106- let gT = bv()
1107- let gU = valueOrErrorMessage(addressFromString(gT[D]), "Wr st addr")
1108- let gV = valueOrErrorMessage(addressFromString(gT[F]), "Wr sl addr")
1109- if ((0 > gR))
1108+@Callable(cT)
1109+func put (gU,gV) = {
1110+ let gW = bw()
1111+ let gX = valueOrErrorMessage(addressFromString(gW[C]), "Wr st addr")
1112+ let gY = valueOrErrorMessage(addressFromString(gW[E]), "Wr sl addr")
1113+ if ((0 > gU))
11101114 then throw("Wrong slippage")
1111- else if ((size(cS.payments) != 2))
1115+ else if ((size(cT.payments) != 2))
11121116 then throw("2 pmnts expd")
11131117 else {
1114- let gW = toBigInt(value(cS.payments[0]).amount)
1115- let gX = toBigInt(value(cS.payments[1]).amount)
1116- let eP = (toBigInt(bQ(bj(br))) - gW)
1117- if ((eP == eP))
1118+ let gZ = toBigInt(value(cT.payments[0]).amount)
1119+ let ha = toBigInt(value(cT.payments[1]).amount)
1120+ let eS = (toBigInt(bR(bi(bq))) - gZ)
1121+ if ((eS == eS))
11181122 then {
1119- let eQ = (toBigInt(bQ(bj(bs))) - gX)
1120- if ((eQ == eQ))
1123+ let eT = (toBigInt(bR(bi(br))) - ha)
1124+ if ((eT == eT))
11211125 then {
1122- let eR = toBigInt(value(assetInfo(bq)).quantity)
1123- if ((eR == eR))
1126+ let eU = toBigInt(value(assetInfo(bp)).quantity)
1127+ if ((eU == eU))
11241128 then {
1125- let eS = eL(gW, gX, toBigInt(0))
1126- if ((eS == eS))
1129+ let eV = eO(gZ, ha, toBigInt(0))
1130+ if ((eV == eV))
11271131 then {
1128- let gY = fm(toString(cS.caller), toBase58String(cS.transactionId), AttachedPayment(value(cS.payments[0]).assetId, value(cS.payments[0]).amount), cS.payments[1], gR, true, false, true, 0, "")
1129- let em = gY._2
1130- let gZ = gY._7
1131- let dE = gY._9
1132- let en = gY._10
1133- let eo = gY._11
1134- let dm = gY._12
1135- let dn = gY._13
1136- let dY = invoke(aV, "emit", [em], nil)
1137- if ((dY == dY))
1132+ let hb = fp(toString(cT.caller), toBase58String(cT.transactionId), AttachedPayment(value(cT.payments[0]).assetId, value(cT.payments[0]).amount), cT.payments[1], gU, true, false, true, 0, "")
1133+ let ep = hb._2
1134+ let hc = hb._7
1135+ let dF = hb._9
1136+ let eq = hb._10
1137+ let er = hb._11
1138+ let dn = hb._12
1139+ let do = hb._13
1140+ let eb = invoke(aU, "emit", [ep], nil)
1141+ if ((eb == eb))
11381142 then {
1139- let ha = {
1140- let gm = dY
1141- if ($isInstanceOf(gm, "Address"))
1143+ let hd = {
1144+ let gp = eb
1145+ if ($isInstanceOf(gp, "Address"))
11421146 then {
1143- let hb = gm
1144- invoke(hb, "emit", [em], nil)
1147+ let he = gp
1148+ invoke(he, "emit", [ep], nil)
11451149 }
11461150 else unit
11471151 }
1148- if ((ha == ha))
1152+ if ((hd == hd))
11491153 then {
1150- let hc = if ((en > 0))
1151- then invoke(gV, "put", nil, [AttachedPayment(dm, en)])
1154+ let hf = if ((eq > 0))
1155+ then invoke(gY, "put", nil, [AttachedPayment(dn, eq)])
11521156 else nil
1153- if ((hc == hc))
1157+ if ((hf == hf))
11541158 then {
1155- let hd = if ((eo > 0))
1156- then invoke(gV, "put", nil, [AttachedPayment(dn, eo)])
1159+ let hg = if ((er > 0))
1160+ then invoke(gY, "put", nil, [AttachedPayment(do, er)])
11571161 else nil
1158- if ((hd == hd))
1162+ if ((hg == hg))
11591163 then {
1160- let he = if (gS)
1164+ let hh = if (gV)
11611165 then {
1162- let hf = invoke(gU, "stake", nil, [AttachedPayment(gZ, em)])
1163- if ((hf == hf))
1166+ let hi = invoke(gX, "stake", nil, [AttachedPayment(hc, ep)])
1167+ if ((hi == hi))
11641168 then nil
11651169 else throw("Strict value is not equal to itself.")
11661170 }
1167- else [ScriptTransfer(cS.caller, em, gZ)]
1168- let hg = eT(0, 0, 0)
1169- let gj = hg._1
1170- let eK = hg._2
1171- let hh = if ((eK >= eS))
1171+ else [ScriptTransfer(cT.caller, ep, hc)]
1172+ let hj = eW(0, 0, 0)
1173+ let gm = hj._1
1174+ let eN = hj._2
1175+ let hk = if ((eN >= eV))
11721176 then true
1173- else aS(makeString(["updated DLp lower than current DLp", toString(eP), toString(eQ), toString(eR), toString(eS), toString(eK), toString(en), toString(eo)], " "))
1174- if ((hh == hh))
1177+ else aR(makeString(["updated DLp lower than current DLp", toString(eS), toString(eT), toString(eU), toString(eV), toString(eN), toString(eq), toString(er)], " "))
1178+ if ((hk == hk))
11751179 then {
1176- let hi = value(assetInfo(bq)).quantity
1177- if ((hi == hi))
1178- then ((dE ++ he) ++ gj)
1180+ let hl = value(assetInfo(bp)).quantity
1181+ if ((hl == hl))
1182+ then ((dF ++ hh) ++ gm)
11791183 else throw("Strict value is not equal to itself.")
11801184 }
11811185 else throw("Strict value is not equal to itself.")
11821186 }
11831187 else throw("Strict value is not equal to itself.")
11841188 }
11851189 else throw("Strict value is not equal to itself.")
11861190 }
11871191 else throw("Strict value is not equal to itself.")
11881192 }
11891193 else throw("Strict value is not equal to itself.")
11901194 }
11911195 else throw("Strict value is not equal to itself.")
11921196 }
11931197 else throw("Strict value is not equal to itself.")
11941198 }
11951199 else throw("Strict value is not equal to itself.")
11961200 }
11971201 else throw("Strict value is not equal to itself.")
11981202 }
11991203 }
12001204
12011205
12021206
1203-@Callable(cS)
1204-func putOneTknV2 (fN,gS) = {
1205- let hj = {
1206- let aX = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1207- if ($isInstanceOf(aX, "Boolean"))
1208- then aX
1209- else throw(($getType(aX) + " couldn't be cast to Boolean"))
1207+@Callable(cT)
1208+func putOneTknV2 (fQ,gV) = {
1209+ let hm = {
1210+ let aW = invoke(aU, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1211+ if ($isInstanceOf(aW, "Boolean"))
1212+ then aW
1213+ else throw(($getType(aW) + " couldn't be cast to Boolean"))
12101214 }
1211- let hk = if (if (if (ba())
1215+ let hn = if (if (if (aZ())
12121216 then true
1213- else (bp == r))
1217+ else (bo == q))
12141218 then true
1215- else (bp == t))
1219+ else (bo == s))
12161220 then true
1217- else hj
1218- let gJ = [if (if (!(hk))
1221+ else hm
1222+ let gM = [if (if (!(hn))
12191223 then true
1220- else gp(cS))
1224+ else gs(cT))
12211225 then true
1222- else aS("put operation is blocked by admin"), if ((size(cS.payments) == 1))
1226+ else aR("put operation is blocked by admin"), if ((size(cT.payments) == 1))
12231227 then true
1224- else aS("exactly 1 payment are expected")]
1225- if ((gJ == gJ))
1228+ else aR("exactly 1 payment are expected")]
1229+ if ((gM == gM))
12261230 then {
1227- let dm = toBase58String(value(br))
1228- let dn = toBase58String(value(bs))
1229- let dl = bq
1230- let fR = bt
1231- let fS = bu
1232- let dk = if ((cS.caller == this))
1233- then cS.originCaller
1234- else cS.caller
1235- let fl = value(cS.payments[0])
1236- let di = toBase58String(value(fl.assetId))
1237- let dO = fl.amount
1238- let eS = if ((fl.assetId == br))
1239- then eL(toBigInt(dO), toBigInt(0), toBigInt(0))
1240- else eL(toBigInt(0), toBigInt(dO), toBigInt(0))
1241- if ((eS == eS))
1231+ let dn = toBase58String(value(bq))
1232+ let do = toBase58String(value(br))
1233+ let dm = bp
1234+ let fU = bs
1235+ let fV = bt
1236+ let dl = if ((cT.caller == this))
1237+ then cT.originCaller
1238+ else cT.caller
1239+ let fo = value(cT.payments[0])
1240+ let dj = toBase58String(value(fo.assetId))
1241+ let dP = fo.amount
1242+ let eV = if ((fo.assetId == bq))
1243+ then eO(toBigInt(dP), toBigInt(0), toBigInt(0))
1244+ else eO(toBigInt(0), toBigInt(dP), toBigInt(0))
1245+ if ((eV == eV))
12421246 then {
1243- let hl = fq(dO, di, toString(dk), toBase58String(cS.transactionId), true)
1244- if ((hl == hl))
1247+ let ho = ft(dP, dj, toString(dl), toBase58String(cT.transactionId), true)
1248+ if ((ho == ho))
12451249 then {
1246- let cA = hl._3
1247- let dE = hl._2
1248- let hm = hl._1
1249- let em = if (if ((fN > 0))
1250- then (fN > hm)
1250+ let cB = ho._3
1251+ let dF = ho._2
1252+ let hp = ho._1
1253+ let ep = if (if ((fQ > 0))
1254+ then (fQ > hp)
12511255 else false)
1252- then aS(makeString(["amount to receive is less than ", toString(fN)], ""))
1253- else hm
1254- let gY = invoke(aV, "emit", [em], nil)
1255- if ((gY == gY))
1256+ then aR(makeString(["amount to receive is less than ", toString(fQ)], ""))
1257+ else hp
1258+ let hb = invoke(aU, "emit", [ep], nil)
1259+ if ((hb == hb))
12561260 then {
1257- let ha = {
1258- let gm = gY
1259- if ($isInstanceOf(gm, "Address"))
1261+ let hd = {
1262+ let gp = hb
1263+ if ($isInstanceOf(gp, "Address"))
12601264 then {
1261- let hb = gm
1262- invoke(hb, "emit", [em], nil)
1265+ let he = gp
1266+ invoke(he, "emit", [ep], nil)
12631267 }
12641268 else unit
12651269 }
1266- if ((ha == ha))
1270+ if ((hd == hd))
12671271 then {
1268- let he = if (gS)
1272+ let hh = if (gV)
12691273 then {
1270- let hf = invoke(bx, "stakeFor", [toString(cS.caller)], [AttachedPayment(dl, em)])
1271- if ((hf == hf))
1274+ let hi = invoke(by, "stakeFor", [toString(cT.caller)], [AttachedPayment(dm, ep)])
1275+ if ((hi == hi))
12721276 then nil
12731277 else throw("Strict value is not equal to itself.")
12741278 }
1275- else [ScriptTransfer(cS.caller, em, dl)]
1276- let gd = if ((cA > 0))
1277- then [ScriptTransfer(bc, cA, fromBase58String(di))]
1279+ else [ScriptTransfer(cT.caller, ep, dm)]
1280+ let gg = if ((cB > 0))
1281+ then [ScriptTransfer(bb, cB, fromBase58String(dj))]
12781282 else nil
1279- let hn = if ((this == bc))
1283+ let hq = if ((this == bb))
12801284 then $Tuple2(0, 0)
12811285 else {
1282- let ho = if ((fl.assetId == br))
1286+ let hr = if ((fo.assetId == bq))
12831287 then true
12841288 else false
1285- if (ho)
1286- then $Tuple2(-(cA), 0)
1287- else $Tuple2(0, -(cA))
1289+ if (hr)
1290+ then $Tuple2(-(cB), 0)
1291+ else $Tuple2(0, -(cB))
12881292 }
1289- let eU = hn._1
1290- let eV = hn._2
1291- let hp = eT(eU, eV, 0)
1292- let gj = hp._1
1293- let eK = hp._2
1294- let gk = eX(eS, eK)
1295- if ((gk == gk))
1296- then $Tuple2((((dE ++ he) ++ gd) ++ gj), em)
1293+ let eX = hq._1
1294+ let eY = hq._2
1295+ let hs = eW(eX, eY, 0)
1296+ let gm = hs._1
1297+ let eN = hs._2
1298+ let gn = fa(eV, eN)
1299+ if ((gn == gn))
1300+ then $Tuple2((((dF ++ hh) ++ gg) ++ gm), ep)
12971301 else throw("Strict value is not equal to itself.")
12981302 }
12991303 else throw("Strict value is not equal to itself.")
13001304 }
13011305 else throw("Strict value is not equal to itself.")
13021306 }
13031307 else throw("Strict value is not equal to itself.")
13041308 }
13051309 else throw("Strict value is not equal to itself.")
13061310 }
13071311 else throw("Strict value is not equal to itself.")
13081312 }
13091313
13101314
13111315
1312-@Callable(cS)
1313-func putForFree (hq) = if ((0 > hq))
1316+@Callable(cT)
1317+func putForFree (ht) = if ((0 > ht))
13141318 then throw("Wrong slpg")
1315- else if ((size(cS.payments) != 2))
1319+ else if ((size(cT.payments) != 2))
13161320 then throw("2 pmnts expd")
13171321 else {
1318- let hr = fm(toString(cS.caller), toBase58String(cS.transactionId), AttachedPayment(value(cS.payments[0]).assetId, value(cS.payments[0]).amount), cS.payments[1], hq, false, false, true, 0, "")
1319- let dE = hr._9
1320- let gW = toBigInt(value(cS.payments[0]).amount)
1321- let gX = toBigInt(value(cS.payments[1]).amount)
1322- let eS = eL(gW, gX, toBigInt(0))
1323- if ((eS == eS))
1322+ let hu = fp(toString(cT.caller), toBase58String(cT.transactionId), AttachedPayment(value(cT.payments[0]).assetId, value(cT.payments[0]).amount), cT.payments[1], ht, false, false, true, 0, "")
1323+ let dF = hu._9
1324+ let gZ = toBigInt(value(cT.payments[0]).amount)
1325+ let ha = toBigInt(value(cT.payments[1]).amount)
1326+ let eV = eO(gZ, ha, toBigInt(0))
1327+ if ((eV == eV))
13241328 then {
1325- let hs = eT(0, 0, 0)
1326- let gj = hs._1
1327- let eK = hs._2
1328- let gk = eX(eS, eK)
1329- if ((gk == gk))
1330- then (dE ++ gj)
1329+ let hv = eW(0, 0, 0)
1330+ let gm = hv._1
1331+ let eN = hv._2
1332+ let gn = fa(eV, eN)
1333+ if ((gn == gn))
1334+ then (dF ++ gm)
13311335 else throw("Strict value is not equal to itself.")
13321336 }
13331337 else throw("Strict value is not equal to itself.")
13341338 }
13351339
13361340
13371341
1338-@Callable(cS)
1342+@Callable(cT)
13391343 func get () = {
1340- let eS = eL(toBigInt(0), toBigInt(0), toBigInt(0))
1341- if ((eS == eS))
1344+ let eV = eO(toBigInt(0), toBigInt(0), toBigInt(0))
1345+ if ((eV == eV))
13421346 then {
1343- let dY = fk(cS)
1344- let ht = dY._1
1345- let dD = dY._2
1346- let dO = dY._3
1347- let di = dY._4
1348- let dE = dY._5
1349- let ez = invoke(aV, "burn", [dO], [AttachedPayment(di, dO)])
1350- if ((ez == ez))
1347+ let eb = fn(cT)
1348+ let hw = eb._1
1349+ let dE = eb._2
1350+ let dP = eb._3
1351+ let dj = eb._4
1352+ let dF = eb._5
1353+ let eC = invoke(aU, "burn", [dP], [AttachedPayment(dj, dP)])
1354+ if ((eC == eC))
13511355 then {
1352- let hu = eT(-(ht), -(dD), 0)
1353- let gj = hu._1
1354- let eK = hu._2
1355- let gk = eX(eS, eK)
1356- if ((gk == gk))
1357- then (dE ++ gj)
1356+ let hx = eW(-(hw), -(dE), 0)
1357+ let gm = hx._1
1358+ let eN = hx._2
1359+ let gn = fa(eV, eN)
1360+ if ((gn == gn))
1361+ then (dF ++ gm)
13581362 else throw("Strict value is not equal to itself.")
13591363 }
13601364 else throw("Strict value is not equal to itself.")
13611365 }
13621366 else throw("Strict value is not equal to itself.")
13631367 }
13641368
13651369
13661370
1367-@Callable(cS)
1368-func getOneTknV2 (fM,fN) = {
1369- let hj = {
1370- let aX = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1371- if ($isInstanceOf(aX, "Boolean"))
1372- then aX
1373- else throw(($getType(aX) + " couldn't be cast to Boolean"))
1371+@Callable(cT)
1372+func getOneTknV2 (fP,fQ) = {
1373+ let hm = {
1374+ let aW = invoke(aU, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1375+ if ($isInstanceOf(aW, "Boolean"))
1376+ then aW
1377+ else throw(($getType(aW) + " couldn't be cast to Boolean"))
13741378 }
1375- let hv = if (if (ba())
1379+ let hy = if (if (aZ())
13761380 then true
1377- else (bp == t))
1381+ else (bo == s))
13781382 then true
1379- else hj
1380- let gJ = [if (if (!(hv))
1383+ else hm
1384+ let gM = [if (if (!(hy))
13811385 then true
1382- else gp(cS))
1386+ else gs(cT))
13831387 then true
1384- else aS("get operation is blocked by admin"), if ((size(cS.payments) == 1))
1388+ else aR("get operation is blocked by admin"), if ((size(cT.payments) == 1))
13851389 then true
1386- else aS("exactly 1 payment are expected")]
1387- if ((gJ == gJ))
1390+ else aR("exactly 1 payment are expected")]
1391+ if ((gM == gM))
13881392 then {
1389- let hw = fL(fM, fN, cS.payments, cS.caller, cS.originCaller, cS.transactionId)
1390- let dE = hw._1
1391- let fW = hw._2
1392- $Tuple2(dE, fW)
1393+ let hz = fO(fP, fQ, cT.payments, cT.caller, cT.originCaller, cT.transactionId)
1394+ let dF = hz._1
1395+ let fZ = hz._2
1396+ $Tuple2(dF, fZ)
13931397 }
13941398 else throw("Strict value is not equal to itself.")
13951399 }
13961400
13971401
13981402
1399-@Callable(cS)
1403+@Callable(cT)
14001404 func refreshDLp () = {
1401- let hx = valueOrElse(getInteger(at), 0)
1402- let hy = if (((height - hx) >= aw))
1405+ let hA = valueOrElse(getInteger(as), 0)
1406+ let hB = if (((height - hA) >= av))
14031407 then unit
1404- else aS(makeString([toString(aw), " blocks have not passed since the previous call"], ""))
1405- if ((hy == hy))
1408+ else aR(makeString([toString(av), " blocks have not passed since the previous call"], ""))
1409+ if ((hB == hB))
14061410 then {
1407- let fe = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, as), "0")), aU("invalid dLp"))
1408- let hz = eT(0, 0, 0)
1409- let hA = hz._1
1410- let eK = hz._2
1411- let eW = if ((fe != eK))
1412- then hA
1413- else aS("nothing to refresh")
1414- $Tuple2(eW, toString(eK))
1411+ let fh = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, ar), "0")), aT("invalid dLp"))
1412+ let hC = eW(0, 0, 0)
1413+ let hD = hC._1
1414+ let eN = hC._2
1415+ let eZ = if ((fh != eN))
1416+ then hD
1417+ else aR("nothing to refresh")
1418+ $Tuple2(eZ, toString(eN))
14151419 }
14161420 else throw("Strict value is not equal to itself.")
14171421 }
14181422
14191423
14201424
1421-@Callable(cS)
1422-func getOneTknV2READONLY (fM,hB) = {
1423- let dm = toBase58String(value(br))
1424- let dn = toBase58String(value(bs))
1425- let dl = toBase58String(value(bq))
1426- let cC = [toBigInt(bQ(dm)), toBigInt(bQ(dn))]
1427- let eJ = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(dl)), "invalid lp asset").quantity)
1428- let ce = cB(cC)
1429- let cd = (ce - fraction(toBigInt(hB), ce, eJ))
1430- let hC = if ((fM == dm))
1425+@Callable(cT)
1426+func getOneTknV2READONLY (fP,hE) = {
1427+ let dn = toBase58String(value(bq))
1428+ let do = toBase58String(value(br))
1429+ let dm = toBase58String(value(bp))
1430+ let cD = [toBigInt(bR(dn)), toBigInt(bR(do))]
1431+ let eM = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(dm)), "invalid lp asset").quantity)
1432+ let cf = cC(cD)
1433+ let ce = (cf - fraction(toBigInt(hE), cf, eM))
1434+ let hF = if ((fP == dn))
14311435 then 0
1432- else if ((fM == dn))
1436+ else if ((fP == do))
14331437 then 1
14341438 else throw("invalid out asset id")
1435- let hD = et(cC, hC, cd)
1436- let gC = (cC[hC] - hD)
1437- let gD = max([0, toInt((gC - f))])
1438- let hE = cy(gD, aY)
1439- let fV = hE._1
1440- let cA = hE._2
1441- $Tuple2(nil, $Tuple2(fV, cA))
1439+ let hG = ew(cD, hF, ce)
1440+ let gF = (cD[hF] - hG)
1441+ let gG = max([0, toInt((gF - f))])
1442+ let hH = cz(gG, aX)
1443+ let fY = hH._1
1444+ let cB = hH._2
1445+ $Tuple2(nil, $Tuple2(fY, cB))
14421446 }
14431447
14441448
14451449
1446-@Callable(cS)
1447-func getOneTknV2WithBonusREADONLY (fM,hB) = {
1448- let dm = toBase58String(value(br))
1449- let dn = toBase58String(value(bs))
1450- let dl = toBase58String(value(bq))
1451- let ds = bQ(dm)
1452- let du = bQ(dn)
1453- let hF = {
1454- let aX = invoke(this, "getOneTknV2READONLY", [fM, hB], nil)
1455- if ($isInstanceOf(aX, "(Int, Int)"))
1456- then aX
1457- else throw(($getType(aX) + " couldn't be cast to (Int, Int)"))
1450+@Callable(cT)
1451+func getOneTknV2WithBonusREADONLY (fP,hE) = {
1452+ let dn = toBase58String(value(bq))
1453+ let do = toBase58String(value(br))
1454+ let dm = toBase58String(value(bp))
1455+ let dt = bR(dn)
1456+ let dv = bR(do)
1457+ let hI = {
1458+ let aW = invoke(this, "getOneTknV2READONLY", [fP, hE], nil)
1459+ if ($isInstanceOf(aW, "(Int, Int)"))
1460+ then aW
1461+ else throw(($getType(aW) + " couldn't be cast to (Int, Int)"))
14581462 }
1459- let fV = hF._1
1460- let cA = hF._2
1461- let dY = dg("", dl, hB, this)
1462- let dC = dY._1
1463- let dD = dY._2
1464- let hG = (dC + dD)
1465- let fK = if ((hG == 0))
1466- then if ((fV == 0))
1463+ let fY = hI._1
1464+ let cB = hI._2
1465+ let eb = dh("", dm, hE, this)
1466+ let dD = eb._1
1467+ let dE = eb._2
1468+ let hJ = (dD + dE)
1469+ let fN = if ((hJ == 0))
1470+ then if ((fY == 0))
14671471 then 0
14681472 else throw("bonus calculation error")
1469- else fraction((fV - hG), a, hG)
1470- $Tuple2(nil, $Tuple3(fV, cA, fK))
1473+ else fraction((fY - hJ), a, hJ)
1474+ $Tuple2(nil, $Tuple3(fY, cB, fN))
14711475 }
14721476
14731477
14741478
1475-@Callable(cS)
1476-func getNoLess (hH,hI) = {
1477- let dY = fk(cS)
1478- let dC = dY._1
1479- let dD = dY._2
1480- let dO = dY._3
1481- let di = dY._4
1482- let dE = dY._5
1483- if ((hH > dC))
1484- then throw(((("Failed: " + toString(dC)) + " < ") + toString(hH)))
1485- else if ((hI > dD))
1486- then throw(((("Failed: " + toString(dD)) + " < ") + toString(hI)))
1479+@Callable(cT)
1480+func getNoLess (hK,hL) = {
1481+ let eb = fn(cT)
1482+ let dD = eb._1
1483+ let dE = eb._2
1484+ let dP = eb._3
1485+ let dj = eb._4
1486+ let dF = eb._5
1487+ if ((hK > dD))
1488+ then throw(((("Failed: " + toString(dD)) + " < ") + toString(hK)))
1489+ else if ((hL > dE))
1490+ then throw(((("Failed: " + toString(dE)) + " < ") + toString(hL)))
14871491 else {
1488- let eS = eL(toBigInt(0), toBigInt(0), toBigInt(0))
1489- if ((eS == eS))
1492+ let eV = eO(toBigInt(0), toBigInt(0), toBigInt(0))
1493+ if ((eV == eV))
14901494 then {
1491- let hJ = invoke(aV, "burn", [dO], [AttachedPayment(di, dO)])
1492- if ((hJ == hJ))
1495+ let hM = invoke(aU, "burn", [dP], [AttachedPayment(dj, dP)])
1496+ if ((hM == hM))
14931497 then {
1494- let hK = eT(-(dC), -(dD), 0)
1495- let gj = hK._1
1496- let eK = hK._2
1497- let gk = eX(eS, eK)
1498- if ((gk == gk))
1499- then (dE ++ gj)
1498+ let hN = eW(-(dD), -(dE), 0)
1499+ let gm = hN._1
1500+ let eN = hN._2
1501+ let gn = fa(eV, eN)
1502+ if ((gn == gn))
1503+ then (dF ++ gm)
15001504 else throw("Strict value is not equal to itself.")
15011505 }
15021506 else throw("Strict value is not equal to itself.")
15031507 }
15041508 else throw("Strict value is not equal to itself.")
15051509 }
15061510 }
15071511
15081512
15091513
1510-@Callable(cS)
1511-func unstakeAndGet (cz) = {
1512- let hL = if ((size(cS.payments) != 0))
1514+@Callable(cT)
1515+func unstakeAndGet (cA) = {
1516+ let hO = if ((size(cT.payments) != 0))
15131517 then throw("No pmnts expd")
15141518 else true
1515- if ((hL == hL))
1519+ if ((hO == hO))
15161520 then {
1517- let hM = bv()
1518- let gZ = bq
1519- let hN = valueOrErrorMessage(addressFromString(hM[D]), "Wr st addr")
1520- let eS = eL(toBigInt(0), toBigInt(0), toBigInt(0))
1521- if ((eS == eS))
1521+ let hP = bw()
1522+ let hc = bp
1523+ let hQ = valueOrErrorMessage(addressFromString(hP[C]), "Wr st addr")
1524+ let eV = eO(toBigInt(0), toBigInt(0), toBigInt(0))
1525+ if ((eV == eV))
15221526 then {
1523- let hO = invoke(hN, "unstake", [toBase58String(gZ), cz], nil)
1524- if ((hO == hO))
1527+ let hR = invoke(hQ, "unstake", [toBase58String(hc), cA], nil)
1528+ if ((hR == hR))
15251529 then {
1526- let dY = dg(toBase58String(cS.transactionId), toBase58String(gZ), cz, cS.caller)
1527- let dC = dY._1
1528- let dD = dY._2
1529- let dq = parseIntValue(dY._9)
1530- let dE = dY._10
1531- let hP = if (if (ba())
1530+ let eb = dh(toBase58String(cT.transactionId), toBase58String(hc), cA, cT.caller)
1531+ let dD = eb._1
1532+ let dE = eb._2
1533+ let dr = parseIntValue(eb._9)
1534+ let dF = eb._10
1535+ let hS = if (if (aZ())
15321536 then true
1533- else (dq == t))
1534- then throw(("Blocked: " + toString(dq)))
1537+ else (dr == s))
1538+ then throw(("Blocked: " + toString(dr)))
15351539 else true
1536- if ((hP == hP))
1540+ if ((hS == hS))
15371541 then {
1538- let hQ = invoke(aV, "burn", [cz], [AttachedPayment(gZ, cz)])
1539- if ((hQ == hQ))
1542+ let hT = invoke(aU, "burn", [cA], [AttachedPayment(hc, cA)])
1543+ if ((hT == hT))
15401544 then {
1541- let hR = eT(-(dC), -(dD), 0)
1542- let gj = hR._1
1543- let eK = hR._2
1544- let gk = eX(eS, eK)
1545- if ((gk == gk))
1546- then (dE ++ gj)
1545+ let hU = eW(-(dD), -(dE), 0)
1546+ let gm = hU._1
1547+ let eN = hU._2
1548+ let gn = fa(eV, eN)
1549+ if ((gn == gn))
1550+ then (dF ++ gm)
15471551 else throw("Strict value is not equal to itself.")
15481552 }
15491553 else throw("Strict value is not equal to itself.")
15501554 }
15511555 else throw("Strict value is not equal to itself.")
15521556 }
15531557 else throw("Strict value is not equal to itself.")
15541558 }
15551559 else throw("Strict value is not equal to itself.")
15561560 }
15571561 else throw("Strict value is not equal to itself.")
15581562 }
15591563
15601564
15611565
1562-@Callable(cS)
1563-func unstakeAndGetNoLess (hS,hT,hI) = {
1564- let hv = if (ba())
1566+@Callable(cT)
1567+func unstakeAndGetNoLess (hV,hW,hL) = {
1568+ let hy = if (aZ())
15651569 then true
1566- else (bp == t)
1567- let gJ = [if (!(hv))
1570+ else (bo == s)
1571+ let gM = [if (!(hy))
15681572 then true
1569- else throw("get operation is blocked by admin"), if ((size(cS.payments) == 0))
1573+ else throw("get operation is blocked by admin"), if ((size(cT.payments) == 0))
15701574 then true
15711575 else throw("no payments are expected")]
1572- if ((gJ == gJ))
1576+ if ((gM == gM))
15731577 then {
1574- let eS = eL(toBigInt(0), toBigInt(0), toBigInt(0))
1575- if ((eS == eS))
1578+ let eV = eO(toBigInt(0), toBigInt(0), toBigInt(0))
1579+ if ((eV == eV))
15761580 then {
1577- let hO = invoke(bx, "unstake", [toBase58String(bq), hS], nil)
1578- if ((hO == hO))
1581+ let hR = invoke(by, "unstake", [toBase58String(bp), hV], nil)
1582+ if ((hR == hR))
15791583 then {
1580- let hU = dg(toBase58String(cS.transactionId), toBase58String(bq), hS, cS.caller)
1581- let dC = hU._1
1582- let dD = hU._2
1583- let dE = hU._10
1584- let hV = [if ((dC >= hT))
1584+ let hX = dh(toBase58String(cT.transactionId), toBase58String(bp), hV, cT.caller)
1585+ let dD = hX._1
1586+ let dE = hX._2
1587+ let dF = hX._10
1588+ let hY = [if ((dD >= hW))
15851589 then true
1586- else throw(makeString(["amount asset amount to receive is less than ", toString(hT)], "")), if ((dD >= hI))
1590+ else throw(makeString(["amount asset amount to receive is less than ", toString(hW)], "")), if ((dE >= hL))
15871591 then true
1588- else throw(makeString(["price asset amount to receive is less than ", toString(hI)], ""))]
1589- if ((hV == hV))
1592+ else throw(makeString(["price asset amount to receive is less than ", toString(hL)], ""))]
1593+ if ((hY == hY))
15901594 then {
1591- let hJ = invoke(aV, "burn", [hS], [AttachedPayment(bq, hS)])
1592- if ((hJ == hJ))
1595+ let hM = invoke(aU, "burn", [hV], [AttachedPayment(bp, hV)])
1596+ if ((hM == hM))
15931597 then {
1594- let hW = eT(-(dC), -(dD), 0)
1595- let gj = hW._1
1596- let eK = hW._2
1597- let gk = eX(eS, eK)
1598- if ((gk == gk))
1599- then (dE ++ gj)
1598+ let hZ = eW(-(dD), -(dE), 0)
1599+ let gm = hZ._1
1600+ let eN = hZ._2
1601+ let gn = fa(eV, eN)
1602+ if ((gn == gn))
1603+ then (dF ++ gm)
16001604 else throw("Strict value is not equal to itself.")
16011605 }
16021606 else throw("Strict value is not equal to itself.")
16031607 }
16041608 else throw("Strict value is not equal to itself.")
16051609 }
16061610 else throw("Strict value is not equal to itself.")
16071611 }
16081612 else throw("Strict value is not equal to itself.")
16091613 }
16101614 else throw("Strict value is not equal to itself.")
16111615 }
16121616
16131617
16141618
1615-@Callable(cS)
1616-func unstakeAndGetOneTknV2 (hS,fM,fN) = {
1617- let hj = {
1618- let aX = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1619- if ($isInstanceOf(aX, "Boolean"))
1620- then aX
1621- else throw(($getType(aX) + " couldn't be cast to Boolean"))
1619+@Callable(cT)
1620+func unstakeAndGetOneTknV2 (hV,fP,fQ) = {
1621+ let hm = {
1622+ let aW = invoke(aU, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1623+ if ($isInstanceOf(aW, "Boolean"))
1624+ then aW
1625+ else throw(($getType(aW) + " couldn't be cast to Boolean"))
16221626 }
1623- let hv = if (if (ba())
1627+ let hy = if (if (aZ())
16241628 then true
1625- else (bp == t))
1629+ else (bo == s))
16261630 then true
1627- else hj
1628- let gJ = [if (if (!(hv))
1631+ else hm
1632+ let gM = [if (if (!(hy))
16291633 then true
1630- else gp(cS))
1634+ else gs(cT))
16311635 then true
1632- else aS("get operation is blocked by admin"), if ((size(cS.payments) == 0))
1636+ else aR("get operation is blocked by admin"), if ((size(cT.payments) == 0))
16331637 then true
1634- else aS("no payments are expected")]
1635- if ((gJ == gJ))
1638+ else aR("no payments are expected")]
1639+ if ((gM == gM))
16361640 then {
1637- let hM = bv()
1638- let gZ = bq
1639- let hN = valueOrErrorMessage(addressFromString(hM[D]), "Wr st addr")
1640- let dk = cS.caller
1641- let hX = this
1642- let hO = invoke(hN, "unstakeINTERNAL", [gZ, hS, dk.bytes, hX.bytes], nil)
1643- if ((hO == hO))
1641+ let hP = bw()
1642+ let hc = bp
1643+ let hQ = valueOrErrorMessage(addressFromString(hP[C]), "Wr st addr")
1644+ let dl = cT.caller
1645+ let ia = this
1646+ let hR = invoke(hQ, "unstakeINTERNAL", [hc, hV, dl.bytes, ia.bytes], nil)
1647+ if ((hR == hR))
16441648 then {
1645- let hY = fL(fM, fN, [AttachedPayment(gZ, hS)], cS.caller, cS.originCaller, cS.transactionId)
1646- let dE = hY._1
1647- let fW = hY._2
1648- $Tuple2(dE, fW)
1649+ let ib = fO(fP, fQ, [AttachedPayment(hc, hV)], cT.caller, cT.originCaller, cT.transactionId)
1650+ let dF = ib._1
1651+ let fZ = ib._2
1652+ $Tuple2(dF, fZ)
16491653 }
16501654 else throw("Strict value is not equal to itself.")
16511655 }
16521656 else throw("Strict value is not equal to itself.")
16531657 }
16541658
16551659
16561660
1657-@Callable(cS)
1658-func putOneTknV2WithBonusREADONLY (hZ,ia) = {
1659- let ib = fq(hZ, ia, "", "", true)
1660- let fF = ib._1
1661- let dE = ib._2
1662- let cA = ib._3
1663- let fK = ib._4
1664- $Tuple2(nil, $Tuple3(fF, cA, fK))
1661+@Callable(cT)
1662+func putOneTknV2WithBonusREADONLY (ic,id) = {
1663+ let ie = ft(ic, id, "", "", true)
1664+ let fI = ie._1
1665+ let dF = ie._2
1666+ let cB = ie._3
1667+ let fN = ie._4
1668+ $Tuple2(nil, $Tuple3(fI, cB, fN))
16651669 }
16661670
16671671
16681672
1669-@Callable(cS)
1670-func putOneTknV2WithoutTakeFeeREADONLY (hZ,ia) = {
1671- let ic = fq(hZ, ia, "", "", false)
1672- let fF = ic._1
1673- let dE = ic._2
1674- let cA = ic._3
1675- let fK = ic._4
1676- $Tuple2(nil, $Tuple3(fF, cA, fK))
1673+@Callable(cT)
1674+func putOneTknV2WithoutTakeFeeREADONLY (ic,id) = {
1675+ let if = ft(ic, id, "", "", false)
1676+ let fI = if._1
1677+ let dF = if._2
1678+ let cB = if._3
1679+ let fN = if._4
1680+ $Tuple2(nil, $Tuple3(fI, cB, fN))
16771681 }
16781682
16791683
16801684
1681-@Callable(cS)
1682-func activate (id,ie) = if ((toString(cS.caller) != toString(aV)))
1685+@Callable(cT)
1686+func activate (ig,ih) = if ((toString(cT.caller) != toString(aU)))
16831687 then throw("denied")
1684- else $Tuple2([StringEntry(ak(), id), StringEntry(al(), ie), StringEntry(am(), toString(l))], "success")
1688+ else $Tuple2([StringEntry(aj(), ig), StringEntry(ak(), ih)], "success")
16851689
16861690
16871691
1688-@Callable(cS)
1689-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bd())
1692+@Callable(cT)
1693+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bc())
16901694
16911695
16921696
1693-@Callable(cS)
1694-func getAccBalanceWrapperREADONLY (bR) = $Tuple2(nil, bQ(bR))
1697+@Callable(cT)
1698+func getAccBalanceWrapperREADONLY (bS) = $Tuple2(nil, bR(bS))
16951699
16961700
16971701
1698-@Callable(cS)
1699-func calcPricesWrapperREADONLY (ck,cl,cp) = {
1700- let if = co(ck, cl, cp)
1701- $Tuple2(nil, [toString(if[0]), toString(if[1]), toString(if[2])])
1702+@Callable(cT)
1703+func calcPricesWrapperREADONLY (cl,cm,cq) = {
1704+ let ii = cp(cl, cm, cq)
1705+ $Tuple2(nil, [toString(ii[0]), toString(ii[1]), toString(ii[2])])
17021706 }
17031707
17041708
17051709
1706-@Callable(cS)
1707-func fromX18WrapperREADONLY (N,ig) = $Tuple2(nil, M(parseBigIntValue(N), ig))
1710+@Callable(cT)
1711+func fromX18WrapperREADONLY (M,ij) = $Tuple2(nil, L(parseBigIntValue(M), ij))
17081712
17091713
17101714
1711-@Callable(cS)
1712-func toX18WrapperREADONLY (J,K) = $Tuple2(nil, toString(I(J, K)))
1715+@Callable(cT)
1716+func toX18WrapperREADONLY (I,J) = $Tuple2(nil, toString(H(I, J)))
17131717
17141718
17151719
1716-@Callable(cS)
1717-func calcPriceBigIntWrapperREADONLY (bT,bU) = $Tuple2(nil, toString(bS(parseBigIntValue(bT), parseBigIntValue(bU))))
1720+@Callable(cT)
1721+func calcPriceBigIntWrapperREADONLY (bU,bV) = $Tuple2(nil, toString(bT(parseBigIntValue(bU), parseBigIntValue(bV))))
17181722
17191723
17201724
1721-@Callable(cS)
1722-func estimatePutOperationWrapperREADONLY (dh,bZ,dG,dH,dI,dJ,ih,dK,dL) = $Tuple2(nil, dF(dh, bZ, dG, dH, dI, dJ, ih, dK, dL, true, false, 0, ""))
1725+@Callable(cT)
1726+func estimatePutOperationWrapperREADONLY (di,ca,dH,dI,dJ,dK,ik,dL,dM) = $Tuple2(nil, dG(di, ca, dH, dI, dJ, dK, ik, dL, dM, true, false, 0, ""))
17231727
17241728
17251729
1726-@Callable(cS)
1727-func estimateGetOperationWrapperREADONLY (dh,ii,dj,ih) = {
1728- let dY = dg(dh, ii, dj, addressFromStringValue(ih))
1729- $Tuple2(nil, $Tuple10(dY._1, dY._2, dY._3, dY._4, dY._5, dY._6, dY._7, toString(dY._8), dY._9, dY._10))
1730+@Callable(cT)
1731+func estimateGetOperationWrapperREADONLY (di,il,dk,ik) = {
1732+ let eb = dh(di, il, dk, addressFromStringValue(ik))
1733+ $Tuple2(nil, $Tuple10(eb._1, eb._2, eb._3, eb._4, eb._5, eb._6, eb._7, toString(eb._8), eb._9, eb._10))
17301734 }
17311735
17321736
17331737
1734-@Callable(cS)
1738+@Callable(cT)
17351739 func changeAmp () = {
1736- let ij = invoke(aV, "getChangeAmpConfigREADONLY", [toString(this)], nil)
1737- let ik = {
1738- let gm = ij
1739- if ($isInstanceOf(gm, "List[Any]"))
1740+ let im = invoke(aU, "getChangeAmpConfigREADONLY", [toString(this)], nil)
1741+ let in = {
1742+ let gp = im
1743+ if ($isInstanceOf(gp, "List[Any]"))
17401744 then {
1741- let il = gm
1745+ let io = gp
17421746 $Tuple3({
1743- let aX = il[0]
1744- if ($isInstanceOf(aX, "Int"))
1745- then aX
1746- else throw(($getType(aX) + " couldn't be cast to Int"))
1747+ let aW = io[0]
1748+ if ($isInstanceOf(aW, "Int"))
1749+ then aW
1750+ else throw(($getType(aW) + " couldn't be cast to Int"))
17471751 }, {
1748- let aX = il[1]
1749- if ($isInstanceOf(aX, "Int"))
1750- then aX
1751- else throw(($getType(aX) + " couldn't be cast to Int"))
1752+ let aW = io[1]
1753+ if ($isInstanceOf(aW, "Int"))
1754+ then aW
1755+ else throw(($getType(aW) + " couldn't be cast to Int"))
17521756 }, {
1753- let aX = il[2]
1754- if ($isInstanceOf(aX, "Int"))
1755- then aX
1756- else throw(($getType(aX) + " couldn't be cast to Int"))
1757+ let aW = io[2]
1758+ if ($isInstanceOf(aW, "Int"))
1759+ then aW
1760+ else throw(($getType(aW) + " couldn't be cast to Int"))
17571761 })
17581762 }
1759- else aS("invalid entry type")
1763+ else aR("invalid entry type")
17601764 }
1761- let im = ik._1
1762- let in = ik._2
1763- let io = ik._3
1764- let ip = parseIntValue(getStringValue(am()))
1765- let iq = (ip + in)
1766- let ir = if ((0 > in))
1767- then if ((io > iq))
1768- then io
1769- else iq
1770- else if ((iq > io))
1771- then io
1772- else iq
1773- let is = valueOrElse(getInteger(ap()), 0)
1774- let it = (is + im)
1775- let gJ = [if ((height > it))
1765+ let ip = in._1
1766+ let iq = in._2
1767+ let ir = in._3
1768+ let is = parseIntValue(getStringValue(al()))
1769+ let it = (is + iq)
1770+ let iu = if ((0 > iq))
1771+ then if ((ir > it))
1772+ then ir
1773+ else it
1774+ else if ((it > ir))
1775+ then ir
1776+ else it
1777+ let iv = valueOrElse(getInteger(ao()), 0)
1778+ let iw = (iv + ip)
1779+ let gM = [if ((height > iw))
17761780 then true
1777- else aS("try again in few blocks"), if ((ip != ir))
1781+ else aR("try again in few blocks"), if ((is != iu))
17781782 then true
1779- else aS("already reached target")]
1780- if ((gJ == gJ))
1781- then [IntegerEntry(ap(), height), StringEntry(am(), toString(ir)), StringEntry(an(height), toString(ir))]
1783+ else aR("already reached target")]
1784+ if ((gM == gM))
1785+ then [IntegerEntry(ao(), height), StringEntry(al(), toString(iu)), StringEntry(am(height), toString(iu))]
17821786 else throw("Strict value is not equal to itself.")
17831787 }
17841788
17851789
1786-@Verifier(iu)
1787-func iv () = {
1788- let iw = {
1789- let gm = gl()
1790- if ($isInstanceOf(gm, "ByteVector"))
1790+@Verifier(ix)
1791+func iy () = {
1792+ let iz = {
1793+ let gp = go()
1794+ if ($isInstanceOf(gp, "ByteVector"))
17911795 then {
1792- let gq = gm
1793- gq
1796+ let gt = gp
1797+ gt
17941798 }
1795- else if ($isInstanceOf(gm, "Unit"))
1796- then iu.senderPublicKey
1799+ else if ($isInstanceOf(gp, "Unit"))
1800+ then ix.senderPublicKey
17971801 else throw("Match error")
17981802 }
1799- let gm = iu
1800- if ($isInstanceOf(gm, "Order"))
1803+ let gp = ix
1804+ if ($isInstanceOf(gp, "Order"))
18011805 then {
1802- let fa = gm
1803- let ix = bb()
1804- let iy = if (gx())
1806+ let fd = gp
1807+ let iA = ba()
1808+ let iB = if (gA())
18051809 then $Tuple2(true, "")
1806- else eZ(fa)
1807- let aK = iy._1
1808- let aL = iy._2
1809- let aM = sigVerify(fa.bodyBytes, fa.proofs[0], fa.senderPublicKey)
1810- let aN = sigVerify(fa.bodyBytes, fa.proofs[1], ix)
1811- if (if (if (aK)
1810+ else fc(fd)
1811+ let aJ = iB._1
1812+ let aK = iB._2
1813+ let aL = sigVerify(fd.bodyBytes, fd.proofs[0], fd.senderPublicKey)
1814+ let aM = sigVerify(fd.bodyBytes, fd.proofs[1], iA)
1815+ if (if (if (aJ)
1816+ then aL
1817+ else false)
18121818 then aM
18131819 else false)
1814- then aN
1815- else false)
18161820 then true
1817- else aJ(aK, aL, aM, aN)
1821+ else aI(aJ, aK, aL, aM)
18181822 }
1819- else if ($isInstanceOf(gm, "SetScriptTransaction"))
1823+ else if ($isInstanceOf(gp, "SetScriptTransaction"))
18201824 then {
1821- let cF = gm
1822- if (sigVerify(iu.bodyBytes, iu.proofs[0], iw))
1825+ let cG = gp
1826+ if (sigVerify(ix.bodyBytes, ix.proofs[0], iz))
18231827 then true
18241828 else {
1825- let iz = blake2b256(value(cF.script))
1826- let iA = fromBase64String(value(getString(aV, aF())))
1827- let iB = scriptHash(this)
1828- if ((iA == iz))
1829- then (iB != iz)
1829+ let iC = blake2b256(value(cG.script))
1830+ let iD = fromBase64String(value(getString(aU, aE())))
1831+ let iE = scriptHash(this)
1832+ if ((iD == iC))
1833+ then (iE != iC)
18301834 else false
18311835 }
18321836 }
1833- else sigVerify(iu.bodyBytes, iu.proofs[0], iw)
1837+ else sigVerify(ix.bodyBytes, ix.proofs[0], iz)
18341838 }
18351839

github/deemru/w8io/169f3d6 
747.03 ms